From a1b5c639c505fa7726359f818500f0b338ce553f Mon Sep 17 00:00:00 2001 From: Mathieu Martin Date: Wed, 6 Feb 2019 12:43:20 -0500 Subject: [PATCH 001/332] Fix field name to winlog.api (#10622) `type` is moving to `winlog.api`, but the new field was incorrectly named `winlog.type` instead. --- winlogbeat/_meta/fields.common.yml | 2 +- winlogbeat/docs/fields.asciidoc | 2 +- winlogbeat/include/fields.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/winlogbeat/_meta/fields.common.yml b/winlogbeat/_meta/fields.common.yml index f5d129a8ac0..648003d2f76 100644 --- a/winlogbeat/_meta/fields.common.yml +++ b/winlogbeat/_meta/fields.common.yml @@ -29,7 +29,7 @@ All fields specific to the Windows Event Log are defined here. fields: - - name: type + - name: api required: true description: > The event log API type used to read the record. The possible values are diff --git a/winlogbeat/docs/fields.asciidoc b/winlogbeat/docs/fields.asciidoc index b7003f99662..cbbc84409aa 100644 --- a/winlogbeat/docs/fields.asciidoc +++ b/winlogbeat/docs/fields.asciidoc @@ -3590,7 +3590,7 @@ All fields specific to the Windows Event Log are defined here. -*`winlog.type`*:: +*`winlog.api`*:: + -- required: True diff --git a/winlogbeat/include/fields.go b/winlogbeat/include/fields.go index 6a4821f55ac..934581c10d7 100644 --- a/winlogbeat/include/fields.go +++ b/winlogbeat/include/fields.go @@ -32,5 +32,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "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" + return "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" } From 3dd1f50f6182e752efb593c10666c5d233b2ecaf Mon Sep 17 00:00:00 2001 From: Steffen Siering Date: Wed, 6 Feb 2019 19:06:31 +0100 Subject: [PATCH 002/332] Bump versions for master to 8 (#10621) --- deploy/kubernetes/auditbeat-kubernetes.yaml | 2 +- deploy/kubernetes/filebeat-kubernetes.yaml | 2 +- deploy/kubernetes/metricbeat-kubernetes.yaml | 4 ++-- libbeat/docs/version.asciidoc | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/deploy/kubernetes/auditbeat-kubernetes.yaml b/deploy/kubernetes/auditbeat-kubernetes.yaml index 9589a323260..84333088ef6 100644 --- a/deploy/kubernetes/auditbeat-kubernetes.yaml +++ b/deploy/kubernetes/auditbeat-kubernetes.yaml @@ -71,7 +71,7 @@ spec: dnsPolicy: ClusterFirstWithHostNet containers: - name: auditbeat - image: docker.elastic.co/beats/auditbeat:7.0.0-alpha2 + image: docker.elastic.co/beats/auditbeat:8.0.0 args: [ "-c", "/etc/auditbeat.yml" ] diff --git a/deploy/kubernetes/filebeat-kubernetes.yaml b/deploy/kubernetes/filebeat-kubernetes.yaml index d15197a8ac6..1695f25e887 100644 --- a/deploy/kubernetes/filebeat-kubernetes.yaml +++ b/deploy/kubernetes/filebeat-kubernetes.yaml @@ -69,7 +69,7 @@ spec: terminationGracePeriodSeconds: 30 containers: - name: filebeat - image: docker.elastic.co/beats/filebeat:7.0.0-alpha2 + image: docker.elastic.co/beats/filebeat:8.0.0 args: [ "-c", "/etc/filebeat.yml", "-e", diff --git a/deploy/kubernetes/metricbeat-kubernetes.yaml b/deploy/kubernetes/metricbeat-kubernetes.yaml index 957a412be9a..a6db43a0ef6 100644 --- a/deploy/kubernetes/metricbeat-kubernetes.yaml +++ b/deploy/kubernetes/metricbeat-kubernetes.yaml @@ -104,7 +104,7 @@ spec: dnsPolicy: ClusterFirstWithHostNet containers: - name: metricbeat - image: docker.elastic.co/beats/metricbeat:7.0.0-alpha2 + image: docker.elastic.co/beats/metricbeat:8.0.0 args: [ "-c", "/etc/metricbeat.yml", "-e", @@ -242,7 +242,7 @@ spec: dnsPolicy: ClusterFirstWithHostNet containers: - name: metricbeat - image: docker.elastic.co/beats/metricbeat:7.0.0-alpha2 + image: docker.elastic.co/beats/metricbeat:8.0.0 args: [ "-c", "/etc/metricbeat.yml", "-e", diff --git a/libbeat/docs/version.asciidoc b/libbeat/docs/version.asciidoc index d0e8ea7bae0..b10046ecb5d 100644 --- a/libbeat/docs/version.asciidoc +++ b/libbeat/docs/version.asciidoc @@ -1,7 +1,7 @@ -:stack-version: 7.0.0-alpha2 +:stack-version: 8.0.0 :doc-branch: master :go-version: 1.11.5 -:release-state: prerelease +:release-state: unreleased :python: 2.7.9 :docker: 1.12 :docker-compose: 1.11 From 1bab8f8f1f892a9e3bb707e20fe514a8ad921226 Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Wed, 6 Feb 2019 14:12:20 -0600 Subject: [PATCH 003/332] Bump default beat version to 8.0.0 (#10626) --- libbeat/version/version.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libbeat/version/version.go b/libbeat/version/version.go index 78230c7ca7e..3d66504995e 100644 --- a/libbeat/version/version.go +++ b/libbeat/version/version.go @@ -18,4 +18,4 @@ // Code generated by dev-tools/set_version package version -const defaultBeatVersion = "7.0.0" +const defaultBeatVersion = "8.0.0" From 2cc1c32dc335bc196f7248d3edd518de65e073c6 Mon Sep 17 00:00:00 2001 From: Christoph Wurm Date: Thu, 7 Feb 2019 11:22:06 +0000 Subject: [PATCH 004/332] [Auditbeat] Socket: Remove ecsDirectionString() (#10616) Removes `ecsDirectionString()` from the Auditbeat `socket` dataset following #10339. --- .../auditbeat/module/system/socket/socket.go | 19 ++----------------- 1 file changed, 2 insertions(+), 17 deletions(-) diff --git a/x-pack/auditbeat/module/system/socket/socket.go b/x-pack/auditbeat/module/system/socket/socket.go index 63bdcddb2fd..af3fdd1faa1 100644 --- a/x-pack/auditbeat/module/system/socket/socket.go +++ b/x-pack/auditbeat/module/system/socket/socket.go @@ -127,7 +127,7 @@ func (s Socket) toMapStr() common.MapStr { mapstr := common.MapStr{ "network": common.MapStr{ "type": s.Family.String(), - "direction": ecsDirectionString(s.Direction), + "direction": s.Direction.String(), }, "user": common.MapStr{ "id": s.UID, @@ -190,21 +190,6 @@ func (s Socket) entityID(hostID string) string { return h.Sum() } -// ecsDirectionString is a custom alternative to the existing String() -// to be compatible with recommended ECS values for network.direction. -func ecsDirectionString(direction sock.Direction) string { - switch direction { - case sock.Inbound: - return "inbound" - case sock.Outbound: - return "outbound" - case sock.Listening: - return "listening" - default: - return "unknown" - } -} - // New constructs a new MetricSet. func New(base mb.BaseMetricSet) (mb.MetricSet, error) { cfgwarn.Experimental("The %v/%v dataset is experimental", moduleName, metricsetName) @@ -357,7 +342,7 @@ func socketMessage(socket *Socket, action eventAction) string { } return fmt.Sprintf("%v socket (%v) %v by process %v (PID: %d) and user %v (UID: %d)", - strings.Title(ecsDirectionString(socket.Direction)), endpointString, actionString, + strings.Title(socket.Direction.String()), endpointString, actionString, socket.ProcessName, socket.ProcessPID, socket.Username, socket.UID) } From 97920c9e68794131894c8446b31ba20578456d24 Mon Sep 17 00:00:00 2001 From: Nicolas Ruflin Date: Thu, 7 Feb 2019 15:16:01 +0100 Subject: [PATCH 005/332] [Auditbeat] Skip flaky test_metricset_package test (#10634) See https://github.com/elastic/beats/issues/10633 --- x-pack/auditbeat/tests/system/test_metricsets.py | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/auditbeat/tests/system/test_metricsets.py b/x-pack/auditbeat/tests/system/test_metricsets.py index 47b54b2f49d..965f7ee77c7 100644 --- a/x-pack/auditbeat/tests/system/test_metricsets.py +++ b/x-pack/auditbeat/tests/system/test_metricsets.py @@ -41,6 +41,7 @@ def test_metricset_login(self): # Metricset is experimental and that generates a warning, TODO: remove later self.check_metricset("system", "login", COMMON_FIELDS + fields, config, warnings_allowed=True) + @unittest.skip("Flaky test, see https://github.com/elastic/beats/issues/10633") @unittest.skipIf(sys.platform == "win32", "Not implemented for Windows") @unittest.skipIf(sys.platform == "linux2" and not (os.path.isdir("/var/lib/dpkg") or os.path.isdir("/var/lib/rpm")), "Only implemented for dpkg and rpm") From 15f2f263f885e717c9a52866b0a0e97ebcfcf07b Mon Sep 17 00:00:00 2001 From: Jaime Soriano Pastor Date: Thu, 7 Feb 2019 20:03:50 +0100 Subject: [PATCH 006/332] Fix stopping of modules started by kubernetes autodiscover (#10476) Kubernetes autodiscover only emits events for containers with an ID in pods with an IP, but when a pod is being terminated, their containers can lack of ID and the pod itself can lack of IP. This leads to modules that are never stopped because the delete event that should stop them lacks of the needed information. This change makes two things to avoid this problem: * Don't require the pod to have an IP on stop events. * Use IDs for containers that don't depend on its state. --- CHANGELOG.next.asciidoc | 1 + .../providers/kubernetes/kubernetes.go | 28 ++- .../providers/kubernetes/kubernetes_test.go | 167 +++++++++++++++++- 3 files changed, 186 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 822a62decde..61210cf2fa0 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -165,6 +165,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Fix TLS certificate DoS vulnerability. {pull}10302[10302] - Fix panic and file unlock in spool on atomic operation (arm, x86-32). File lock was not released when panic occurs, leading to the beat deadlocking on startup. {pull}10289[10289] - Fix encoding of timestamps when using disk spool. {issue}10099[10099] +- Fix stopping of modules started by kubernetes autodiscover. {pull}10476[10476] - Fix a issue when remote and local configuration didn't match when fetching configuration from Central Management. {issue}10587[10587] *Auditbeat* diff --git a/libbeat/autodiscover/providers/kubernetes/kubernetes.go b/libbeat/autodiscover/providers/kubernetes/kubernetes.go index 758f083f20a..c3d9a03dda4 100644 --- a/libbeat/autodiscover/providers/kubernetes/kubernetes.go +++ b/libbeat/autodiscover/providers/kubernetes/kubernetes.go @@ -18,6 +18,7 @@ package kubernetes import ( + "fmt" "time" "github.com/gofrs/uuid" @@ -144,12 +145,16 @@ func (p *Provider) emitEvents(pod *kubernetes.Pod, flag string, containers []*ku containerstatuses []*kubernetes.PodContainerStatus) { host := pod.Status.GetPodIP() - // Do not emit events without host (container is still being configured) - if host == "" { + // If the container doesn't exist in the runtime or its network + // is not configured, it won't have an IP. Skip it as we cannot + // generate configs without host, and an update will arrive when + // the container is ready. + // If stopping, emit the event in any case to ensure cleanup. + if host == "" && flag != "stop" { return } - // Collect all container IDs and runtimes from status information. + // Collect all runtimes from status information. containerIDs := map[string]string{} runtimes := map[string]string{} for _, c := range containerstatuses { @@ -160,13 +165,18 @@ func (p *Provider) emitEvents(pod *kubernetes.Pod, flag string, containers []*ku // Emit container and port information for _, c := range containers { + // If it doesn't have an ID, container doesn't exist in + // the runtime, emit only an event if we are stopping, so + // we are sure of cleaning up configurations. cid := containerIDs[c.GetName()] - - // If there is a container ID that is empty then ignore it. It either means that the container is still starting - // up or the container is shutting down. - if cid == "" { + if cid == "" && flag != "stop" { continue } + + // This must be an id that doesn't depend on the state of the container + // so it works also on `stop` if containers have been already deleted. + eventID := fmt.Sprintf("%s.%s", pod.Metadata.GetUid(), c.GetName()) + cmeta := common.MapStr{ "id": cid, "name": c.GetName(), @@ -190,7 +200,7 @@ func (p *Provider) emitEvents(pod *kubernetes.Pod, flag string, containers []*ku if len(c.Ports) == 0 { event := bus.Event{ "provider": p.uuid, - "id": cid, + "id": eventID, flag: true, "host": host, "kubernetes": kubemeta, @@ -204,7 +214,7 @@ func (p *Provider) emitEvents(pod *kubernetes.Pod, flag string, containers []*ku for _, port := range c.Ports { event := bus.Event{ "provider": p.uuid, - "id": cid, + "id": eventID, flag: true, "host": host, "port": port.GetContainerPort(), diff --git a/libbeat/autodiscover/providers/kubernetes/kubernetes_test.go b/libbeat/autodiscover/providers/kubernetes/kubernetes_test.go index e6f8019dfb1..38ba1ab1c01 100644 --- a/libbeat/autodiscover/providers/kubernetes/kubernetes_test.go +++ b/libbeat/autodiscover/providers/kubernetes/kubernetes_test.go @@ -160,6 +160,7 @@ func TestEmitEvent(t *testing.T) { uid := "005f3b90-4b9d-12f8-acf0-31020a840133" containerImage := "elastic/filebeat:6.3.0" node := "node" + cid := "005f3b90-4b9d-12f8-acf0-31020a840133.filebeat" UUID, err := uuid.NewV4() if err != nil { t.Fatal(err) @@ -204,7 +205,7 @@ func TestEmitEvent(t *testing.T) { Expected: bus.Event{ "start": true, "host": "127.0.0.1", - "id": "foobar", + "id": cid, "provider": UUID, "kubernetes": common.MapStr{ "container": common.MapStr{ @@ -270,6 +271,170 @@ func TestEmitEvent(t *testing.T) { }, Expected: nil, }, + { + Message: "Test pod without container id", + Flag: "start", + Pod: &v1.Pod{ + Metadata: &metav1.ObjectMeta{ + Name: &name, + Uid: &uid, + Namespace: &namespace, + Labels: map[string]string{}, + Annotations: map[string]string{}, + }, + Status: &v1.PodStatus{ + PodIP: &podIP, + ContainerStatuses: []*kubernetes.PodContainerStatus{ + { + Name: &name, + }, + }, + }, + Spec: &v1.PodSpec{ + NodeName: &node, + Containers: []*kubernetes.Container{ + { + Image: &containerImage, + Name: &name, + }, + }, + }, + }, + Expected: nil, + }, + { + Message: "Test stop pod without host", + Flag: "stop", + Pod: &v1.Pod{ + Metadata: &metav1.ObjectMeta{ + Name: &name, + Uid: &uid, + Namespace: &namespace, + Labels: map[string]string{}, + Annotations: map[string]string{}, + }, + Status: &v1.PodStatus{ + ContainerStatuses: []*kubernetes.PodContainerStatus{ + { + Name: &name, + }, + }, + }, + Spec: &v1.PodSpec{ + NodeName: &node, + Containers: []*kubernetes.Container{ + { + Image: &containerImage, + Name: &name, + }, + }, + }, + }, + Expected: bus.Event{ + "stop": true, + "host": "", + "id": cid, + "provider": UUID, + "kubernetes": common.MapStr{ + "container": common.MapStr{ + "id": "", + "name": "filebeat", + "image": "elastic/filebeat:6.3.0", + "runtime": "", + }, + "pod": common.MapStr{ + "name": "filebeat", + "uid": "005f3b90-4b9d-12f8-acf0-31020a840133", + }, + "node": common.MapStr{ + "name": "node", + }, + "namespace": "default", + "annotations": common.MapStr{}, + }, + "meta": common.MapStr{ + "kubernetes": common.MapStr{ + "namespace": "default", + "container": common.MapStr{ + "name": "filebeat", + }, "pod": common.MapStr{ + "name": "filebeat", + "uid": "005f3b90-4b9d-12f8-acf0-31020a840133", + }, "node": common.MapStr{ + "name": "node", + }, + }, + }, + "config": []*common.Config{}, + }, + }, + { + Message: "Test stop pod without container id", + Flag: "stop", + Pod: &v1.Pod{ + Metadata: &metav1.ObjectMeta{ + Name: &name, + Uid: &uid, + Namespace: &namespace, + Labels: map[string]string{}, + Annotations: map[string]string{}, + }, + Status: &v1.PodStatus{ + PodIP: &podIP, + ContainerStatuses: []*kubernetes.PodContainerStatus{ + { + Name: &name, + }, + }, + }, + Spec: &v1.PodSpec{ + NodeName: &node, + Containers: []*kubernetes.Container{ + { + Image: &containerImage, + Name: &name, + }, + }, + }, + }, + Expected: bus.Event{ + "stop": true, + "host": "127.0.0.1", + "id": cid, + "provider": UUID, + "kubernetes": common.MapStr{ + "container": common.MapStr{ + "id": "", + "name": "filebeat", + "image": "elastic/filebeat:6.3.0", + "runtime": "", + }, + "pod": common.MapStr{ + "name": "filebeat", + "uid": "005f3b90-4b9d-12f8-acf0-31020a840133", + }, + "node": common.MapStr{ + "name": "node", + }, + "namespace": "default", + "annotations": common.MapStr{}, + }, + "meta": common.MapStr{ + "kubernetes": common.MapStr{ + "namespace": "default", + "container": common.MapStr{ + "name": "filebeat", + }, "pod": common.MapStr{ + "name": "filebeat", + "uid": "005f3b90-4b9d-12f8-acf0-31020a840133", + }, "node": common.MapStr{ + "name": "node", + }, + }, + }, + "config": []*common.Config{}, + }, + }, } for _, test := range tests { From 33cc59ddedbc470fb9e6e47c6b5a7ba90fa33978 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Thu, 7 Feb 2019 11:30:19 -0800 Subject: [PATCH 007/332] [Docs] Explain how to set the data path for CM enrollment on windows (#10503) --- .../docs/shared-central-management.asciidoc | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/libbeat/docs/shared-central-management.asciidoc b/libbeat/docs/shared-central-management.asciidoc index d3e815e2715..7eb6bbd1a3e 100644 --- a/libbeat/docs/shared-central-management.asciidoc +++ b/libbeat/docs/shared-central-management.asciidoc @@ -176,8 +176,33 @@ The URL of the {kib} instance you will use for central management. The enrollment token generated by the {cm-ui} UI. The enrollment token will expire as soon as it's used. +For example: +["source","shell",subs="attributes"] +---------------------------------------------------------------------- +{beatname_lc} enroll http://xyz.gov:5601 70f4b584e8024b96b682c46125a8d81 +---------------------------------------------------------------------- + Repeat this process to enroll additional {beats}. +// Maintainers: If you update the following note, also update the note that +// appears later in this file. + +[IMPORTANT] +===== +*Windows users:* If you installed {beatname_uc} as a service, you must also set +`-path.data` to +"C:{backslash}ProgramData{backslash}{beatname_lc}"+ when you +run the enroll command. For example: + ++.{backslash}{beatname_lc}.exe enroll http://xyz.gov:5601 70f4b584e8024b96b682c46125a8d81a +-path.data "C:{backslash}ProgramData{backslash}{beatname_lc}"+ + +Why? The service installation script, +install-service-{beatname_lc}.ps1+, +changes the default data path to match the convention used for Windows. If you +run the enroll command without specifying the correct data path, {beatname_uc} +will be enrolled in central management with the wrong UUID and unable to receive +the configuration. +===== + [float] [[username-password-enrollment]] === Username and password-based enrollment @@ -203,6 +228,30 @@ The method to use for getting the password. Available options are: *`--force`*:: Overwrites the current settings without asking for confirmation. +For example: + +["source","shell",subs="attributes"] +---------------------------------------------------------------------- +{beatname_lc} enroll http://xyz.gov:5601 --username myuser --password stdin +---------------------------------------------------------------------- + +[IMPORTANT] +===== +*Windows users:* If you installed {beatname_uc} as a service, you must also set +`-path.data` to +"C:{backslash}ProgramData{backslash}{beatname_lc}"+ when you +run the enroll command. For example: + ++.{backslash}{beatname_lc}.exe enroll http://xyz.gov:5601 --username myuser --password stdin +-path.data "C:{backslash}ProgramData{backslash}{beatname_lc}"+ + +Why? The service installation script, +install-service-{beatname_lc}.ps1+, +changes the default data path to match the convention used for Windows. If you +run the enroll command without specifying the correct data path, {beatname_uc} +will be enrolled in central management with the wrong UUID and unable to receive +the configuration. +===== + + //[[central-management-API]] //== Enrollment API (not documented for beta) From 5fb40dd92267f24963572616e1518414422137e9 Mon Sep 17 00:00:00 2001 From: kaiyan-sheng Date: Thu, 7 Feb 2019 21:39:12 -0700 Subject: [PATCH 008/332] Remove filter in DescribeInstances (#10628) * Remove filter DescribeInstances * Add changelog --- CHANGELOG.next.asciidoc | 1 + x-pack/metricbeat/module/aws/ec2/ec2.go | 11 +---------- 2 files changed, 2 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 61210cf2fa0..636ff9a605a 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -133,6 +133,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Update a few kibana.* fields to map to ECS. {pull}10350[10350] - Update rabbitmq.* fields to map to ECS. {pull}10563[10563] - Update haproxy.* fields to map to ECS. {pull}10558[10558] {pull}10568[10568] +- Collect all EC2 meta data from all instances in all states. {pull}10628[10628] *Packetbeat* diff --git a/x-pack/metricbeat/module/aws/ec2/ec2.go b/x-pack/metricbeat/module/aws/ec2/ec2.go index e690cfc4003..a4c0bf18b62 100644 --- a/x-pack/metricbeat/module/aws/ec2/ec2.go +++ b/x-pack/metricbeat/module/aws/ec2/ec2.go @@ -8,7 +8,6 @@ import ( "fmt" "time" - awssdk "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/cloudwatch" "github.com/aws/aws-sdk-go-v2/service/cloudwatch/cloudwatchiface" "github.com/aws/aws-sdk-go-v2/service/ec2" @@ -232,15 +231,7 @@ func getInstancesPerRegion(svc ec2iface.EC2API) (instanceIDs []string, instances init := true for init || output.NextToken != nil { init = false - describeInstanceInput := &ec2.DescribeInstancesInput{ - Filters: []ec2.Filter{ - { - Name: awssdk.String("instance-state-name"), - Values: []string{"running"}, - }, - }, - } - + describeInstanceInput := &ec2.DescribeInstancesInput{} req := svc.DescribeInstancesRequest(describeInstanceInput) output, err := req.Send() if err != nil { From cc9a326ce0143cf89e9195616650d6d4ad021946 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?No=C3=A9mi=20V=C3=A1nyi?= Date: Fri, 8 Feb 2019 15:58:53 +0100 Subject: [PATCH 009/332] New Filebeat subcommand: generate (#9314) This PR exposes the existing Filebeat module generators as `generate` subcommand. ``` $ ./filebeat generate -h Generate Filebeat modules, filesets and fields.yml Usage: filebeat generate [command] Available Commands: fields Generates a new fields.yml file for fileset fileset Generates a new fileset module Generates a new module ``` The subcommands `module`, `fileset` and `fields` use the same code as the scripts. I added E2E tests to validate the functionality. Blocked by #9147 as it contains the refactorings of that PR. --- filebeat/cmd/generate.go | 121 +++++++++++++++++ filebeat/cmd/root.go | 1 + .../system/input/my-module-pipeline.json | 27 ++++ filebeat/tests/system/test_generate.py | 127 ++++++++++++++++++ 4 files changed, 276 insertions(+) create mode 100644 filebeat/cmd/generate.go create mode 100644 filebeat/tests/system/input/my-module-pipeline.json create mode 100644 filebeat/tests/system/test_generate.py diff --git a/filebeat/cmd/generate.go b/filebeat/cmd/generate.go new file mode 100644 index 00000000000..9b081ff6eef --- /dev/null +++ b/filebeat/cmd/generate.go @@ -0,0 +1,121 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package cmd + +import ( + "fmt" + "os" + + "github.com/spf13/cobra" + + "github.com/elastic/beats/filebeat/generator/fields" + "github.com/elastic/beats/filebeat/generator/fileset" + "github.com/elastic/beats/filebeat/generator/module" + "github.com/elastic/beats/libbeat/common/cli" + "github.com/elastic/beats/libbeat/paths" +) + +var ( + defaultHomePath = paths.Resolve(paths.Home, "") +) + +func genGenerateCmd() *cobra.Command { + generateCmd := cobra.Command{ + Use: "generate", + Short: "Generate Filebeat modules, filesets and fields.yml", + } + generateCmd.AddCommand(genGenerateModuleCmd()) + generateCmd.AddCommand(genGenerateFilesetCmd()) + generateCmd.AddCommand(genGenerateFieldsCmd()) + + return &generateCmd +} + +func genGenerateModuleCmd() *cobra.Command { + genModuleCmd := &cobra.Command{ + Use: "module [module]", + Short: "Generates a new module", + Run: cli.RunWith(func(cmd *cobra.Command, args []string) error { + modulesPath, _ := cmd.Flags().GetString("modules-path") + esBeatsPath, _ := cmd.Flags().GetString("es-beats") + + if len(args) != 1 { + fmt.Fprintf(os.Stderr, "Exactly one parameter is required: module name\n") + os.Exit(1) + } + name := args[0] + + return module.Generate(name, modulesPath, esBeatsPath) + }), + } + + genModuleCmd.Flags().String("modules-path", defaultHomePath, "Path to modules directory") + genModuleCmd.Flags().String("es-beats", defaultHomePath, "Path to Elastic Beats") + + return genModuleCmd +} + +func genGenerateFilesetCmd() *cobra.Command { + genFilesetCmd := &cobra.Command{ + Use: "fileset [module] [fileset]", + Short: "Generates a new fileset", + Run: cli.RunWith(func(cmd *cobra.Command, args []string) error { + modulesPath, _ := cmd.Flags().GetString("modules-path") + esBeatsPath, _ := cmd.Flags().GetString("es-beats") + + if len(args) != 2 { + fmt.Fprintf(os.Stderr, "Two parameters are required: module name, fileset name\n") + os.Exit(1) + } + moduleName := args[0] + filesetName := args[1] + + return fileset.Generate(moduleName, filesetName, modulesPath, esBeatsPath) + }), + } + + genFilesetCmd.Flags().String("modules-path", defaultHomePath, "Path to modules directory") + genFilesetCmd.Flags().String("es-beats", defaultHomePath, "Path to Elastic Beats") + + return genFilesetCmd +} + +func genGenerateFieldsCmd() *cobra.Command { + genFieldsCmd := &cobra.Command{ + Use: "fields [module] [fileset]", + Short: "Generates a new fields.yml file for fileset", + Run: cli.RunWith(func(cmd *cobra.Command, args []string) error { + esBeatsPath, _ := cmd.Flags().GetString("es-beats") + noDoc, _ := cmd.Flags().GetBool("without-documentation") + + if len(args) != 2 { + fmt.Fprintf(os.Stderr, "Two parameters are required: module name, fileset name\n") + os.Exit(1) + } + moduleName := args[0] + filesetName := args[1] + + return fields.Generate(esBeatsPath, moduleName, filesetName, noDoc) + }), + } + + genFieldsCmd.Flags().String("es-beats", defaultHomePath, "Path to Elastic Beats") + genFieldsCmd.Flags().Bool("without-documentation", false, "Do not add description fields") + + return genFieldsCmd +} diff --git a/filebeat/cmd/root.go b/filebeat/cmd/root.go index c426c5012d9..31618aee1a1 100644 --- a/filebeat/cmd/root.go +++ b/filebeat/cmd/root.go @@ -43,4 +43,5 @@ func init() { RootCmd.TestCmd.Flags().AddGoFlag(flag.CommandLine.Lookup("modules")) RootCmd.SetupCmd.Flags().AddGoFlag(flag.CommandLine.Lookup("modules")) RootCmd.AddCommand(cmd.GenModulesCmd(Name, "", buildModulesManager)) + RootCmd.AddCommand(genGenerateCmd()) } diff --git a/filebeat/tests/system/input/my-module-pipeline.json b/filebeat/tests/system/input/my-module-pipeline.json new file mode 100644 index 00000000000..c492cc56375 --- /dev/null +++ b/filebeat/tests/system/input/my-module-pipeline.json @@ -0,0 +1,27 @@ +{ + "description": "Pipeline for parsing PostgreSQL logs.", + "processors": [ + { + "grok": { + "field": "message", + "ignore_missing": true, + "patterns": [ + "^%{LOCALDATETIME:postgresql.log.timestamp} %{WORD:postgresql.log.timezone} \\[%{NUMBER:postgresql.log.thread_id}\\] ((\\[%{USERNAME:postgresql.log.user}\\]@\\[%{POSTGRESQL_DB_NAME:postgresql.log.database}\\]|%{USERNAME:postgresql.log.user}@%{POSTGRESQL_DB_NAME:postgresql.log.database}) )?%{WORD:postgresql.log.level}: (duration: %{NUMBER:postgresql.log.duration} ms statement: %{GREEDYDATA:postgresql.log.query}|%{GREEDYDATA:postgresql.log.message})" + ], + "pattern_definitions": { + "LOCALDATETIME": "[-0-9]+ %{TIME}", + "GREEDYDATA": "(.|\n|\t)*", + "POSTGRESQL_DB_NAME": "[a-zA-Z0-9_]+[a-zA-Z0-9_\\$]*" + } + } + } + ], + "on_failure": [ + { + "set": { + "field": "error.message", + "value": "{{ _ingest.on_failure_message }}" + } + } + ] +} diff --git a/filebeat/tests/system/test_generate.py b/filebeat/tests/system/test_generate.py new file mode 100644 index 00000000000..e85c8cdcd55 --- /dev/null +++ b/filebeat/tests/system/test_generate.py @@ -0,0 +1,127 @@ +import os +import shutil +import filebeat + + +class Test(filebeat.BaseTest): + def test_generate_module(self): + """ + Test filebeat generate module my_module generates a new module + """ + + self._create_clean_test_modules() + exit_code = self.run_beat( + extra_args=["generate", "module", "my_module", "-modules-path", "test_modules", "-es-beats", self.beat_path]) + assert exit_code == 0 + + module_root = os.path.join("test_modules", "module", "my_module") + module_meta_root = os.path.join(module_root, "_meta") + self._assert_required_module_directories_are_created(module_root, module_meta_root) + self._assert_required_module_files_are_created_and_substitution_is_done(module_root, module_meta_root) + + shutil.rmtree("test_modules") + + def _assert_required_module_directories_are_created(self, module_root, module_meta_root): + expected_created_directories = [ + module_root, + module_meta_root, + ] + for expected_dir in expected_created_directories: + assert os.path.isdir(expected_dir) + + def _assert_required_module_files_are_created_and_substitution_is_done(self, module_root, module_meta_root): + expected_created_template_files = [ + os.path.join(module_root, "module.yml"), + os.path.join(module_meta_root, "config.yml"), + os.path.join(module_meta_root, "docs.asciidoc"), + os.path.join(module_meta_root, "fields.yml"), + ] + for template_file in expected_created_template_files: + assert os.path.isfile(template_file) + assert '{module}' not in open(template_file) + + def test_generate_fileset(self): + """ + Test filebeat generate fileset my_module my_fileset generates a new fileset + """ + + self._create_clean_test_modules() + exit_code = self.run_beat( + extra_args=["generate", "module", "my_module", "-modules-path", "test_modules", "-es-beats", self.beat_path]) + assert exit_code == 0 + + exit_code = self.run_beat( + extra_args=["generate", "fileset", "my_module", "my_fileset", "-modules-path", "test_modules", "-es-beats", self.beat_path]) + assert exit_code == 0 + + fileset_root = os.path.join("test_modules", "module", "my_module", "my_fileset") + self._assert_required_fileset_directories_are_created(fileset_root) + self._assert_required_fileset_files_are_created_and_substitution_is_done(fileset_root) + + shutil.rmtree("test_modules") + + def _assert_required_fileset_directories_are_created(self, fileset_root): + expected_created_directories = [ + fileset_root, + os.path.join(fileset_root, "config"), + os.path.join(fileset_root, "ingest"), + os.path.join(fileset_root, "_meta"), + os.path.join(fileset_root, "test"), + ] + for expected_dir in expected_created_directories: + assert os.path.isdir(expected_dir) + + def _assert_required_fileset_files_are_created_and_substitution_is_done(self, fileset_root): + expected_created_template_files = [ + os.path.join(fileset_root, "config", "my_fileset.yml"), + os.path.join(fileset_root, "ingest", "pipeline.json"), + os.path.join(fileset_root, "manifest.yml"), + ] + for template_file in expected_created_template_files: + assert os.path.isfile(template_file) + assert '{fileset}' not in open(template_file) + + def test_generate_fields_yml(self): + """ + Test filebeat generate fields my_module my_fileset generates a new fields.yml for my_module/my_fileset + """ + + self._create_clean_test_modules() + exit_code = self.run_beat( + extra_args=["generate", "module", "my_module", "-modules-path", "test_modules", "-es-beats", self.beat_path]) + assert exit_code == 0 + + exit_code = self.run_beat( + extra_args=["generate", "fileset", "my_module", "my_fileset", "-modules-path", "test_modules", "-es-beats", self.beat_path]) + assert exit_code == 0 + + test_pipeline_path = os.path.join(self.beat_path, "tests", "system", "input", "my-module-pipeline.json") + fileset_pipeline = os.path.join("test_modules", "module", + "my_module", "my_fileset", "ingest", "pipeline.json") + + print(os.path.isdir("test_modules")) + print(os.path.isdir(os.path.join("test_modules", "module"))) + print(os.path.isdir(os.path.join("test_modules", "module", "my_module"))) + print(os.path.isdir(os.path.join("test_modules", "module", "my_module", "my_fileset"))) + print(os.path.isdir(os.path.join("test_modules", "module", "my_module", "my_fileset", "ingest"))) + print(os.path.isdir(os.path.join("test_modules", "module", "my_module", "my_fileset", "ingest"))) + print(os.path.exists(os.path.join("test_modules", "module", "my_module", "my_fileset", "ingest", "pipeline.json"))) + print(os.path.exists(fileset_pipeline)) + print(os.path.exists(test_pipeline_path)) + shutil.copyfile(test_pipeline_path, fileset_pipeline) + + print(fileset_pipeline) + print(os.path.abspath(fileset_pipeline)) + exit_code = self.run_beat( + extra_args=["generate", "fields", "my_module", "my_fileset", "-es-beats", "test_modules", "-without-documentation"]) + assert exit_code == 0 + + fields_yml_path = os.path.join("test_modules", "module", "my_module", "my_fileset", "_meta", "fields.yml") + assert os.path.isfile(fields_yml_path) + + shutil.rmtree("test_modules") + + def _create_clean_test_modules(self): + if os.path.isdir("test_modules"): + shutil.rmtree("test_modules") + os.mkdir("test_modules") From 6665d1a200bc5aa84154b34f4ff8c52e8118b27f Mon Sep 17 00:00:00 2001 From: Shaunak Kashyap Date: Mon, 11 Feb 2019 03:38:32 -0800 Subject: [PATCH 010/332] Add system test for libbeat internal x-pack monitoring (#10645) * [WIP] Add system test for libbeat internal x-pack monitoring * Fixing formatting * Fleshing out rest of test * Reverting change that was accidentally checked in * Adding monitoring cluster to docker-compose file * WIP: Debugging docker-compose failure * [WIP] Add docker compose logging for system tests as well * Fixing port in healthcheck * Fixing ports * Fixing ES URL in wait pattern * Removing logging statements used for debugging --- libbeat/docker-compose.yml | 22 +++-- libbeat/tests/system/config/mockbeat.yml.j2 | 8 ++ libbeat/tests/system/test_monitoring.py | 98 +++++++++++++++++++++ 3 files changed, 122 insertions(+), 6 deletions(-) create mode 100644 libbeat/tests/system/test_monitoring.py diff --git a/libbeat/docker-compose.yml b/libbeat/docker-compose.yml index a5927bd2e1f..e0200a1b89b 100644 --- a/libbeat/docker-compose.yml +++ b/libbeat/docker-compose.yml @@ -18,6 +18,8 @@ services: - KAFKA_PORT=9092 - KIBANA_HOST=kibana - KIBANA_PORT=5601 + - ES_MONITORING_HOST=elasticsearch_monitoring + - ES_MONITORING_PORT=9200 env_file: - ${PWD}/build/test.env volumes: @@ -32,12 +34,13 @@ services: proxy_dep: image: busybox depends_on: - elasticsearch: { condition: service_healthy } - logstash: { condition: service_healthy } - kafka: { condition: service_healthy } - redis: { condition: service_healthy } - sredis: { condition: service_healthy } - kibana: { condition: service_healthy } + elasticsearch: { condition: service_healthy } + elasticsearch_monitoring: { condition: service_healthy } + logstash: { condition: service_healthy } + kafka: { condition: service_healthy } + redis: { condition: service_healthy } + sredis: { condition: service_healthy } + kibana: { condition: service_healthy } healthcheck: interval: 1s retries: 1200 @@ -47,6 +50,13 @@ services: file: ${ES_BEATS}/testing/environments/${TESTING_ENVIRONMENT}.yml service: elasticsearch + elasticsearch_monitoring: + extends: + file: ${ES_BEATS}/testing/environments/${TESTING_ENVIRONMENT}.yml + service: elasticsearch + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:9200"] + # This host name is static because of the certificate. logstash: extends: diff --git a/libbeat/tests/system/config/mockbeat.yml.j2 b/libbeat/tests/system/config/mockbeat.yml.j2 index 45893b1bddb..d714bd74d84 100644 --- a/libbeat/tests/system/config/mockbeat.yml.j2 +++ b/libbeat/tests/system/config/mockbeat.yml.j2 @@ -102,4 +102,12 @@ logging.metrics.period: {{ metrics_period }} keystore.path: {{keystore_path}} {% endif %} +{% if xpack and xpack.monitoring -%} +#================================ X-Pack Monitoring ===================================== +xpack.monitoring.elasticsearch.hosts: {{xpack.monitoring.elasticsearch.hosts}} +xpack.monitoring.elasticsearch.metrics.period: 2s # to speed up tests +xpack.monitoring.elasticsearch.state.period: 3s # to speed up tests +{% endif -%} + # vim: set ft=jinja: + diff --git a/libbeat/tests/system/test_monitoring.py b/libbeat/tests/system/test_monitoring.py new file mode 100644 index 00000000000..17ee66dbd5f --- /dev/null +++ b/libbeat/tests/system/test_monitoring.py @@ -0,0 +1,98 @@ +from base import BaseTest +import os +from elasticsearch import Elasticsearch +import re +from nose.plugins.attrib import attr +import unittest + +INTEGRATION_TESTS = os.environ.get('INTEGRATION_TESTS', False) + + +class Test(BaseTest): + + def setUp(self): + super(BaseTest, self).setUp() + + self.es = Elasticsearch([self.get_elasticsearch_url()]) + self.es_monitoring = Elasticsearch([self.get_elasticsearch_monitoring_url()]) + + @unittest.skipUnless(INTEGRATION_TESTS, "integration test") + @attr('integration') + def test_via_output_cluster(self): + """ + Test shipping monitoring data via the elasticsearch output cluster. + Make sure expected documents are indexed in monitoring cluster. + """ + + self.render_config_template( + "mockbeat", + xpack={ + "monitoring": { + "elasticsearch": { + "hosts": [self.get_elasticsearch_url()] + } + } + } + ) + + self.clean() + + proc = self.start_beat(config="mockbeat.yml") + self.wait_until(lambda: self.log_contains("mockbeat start running.")) + self.wait_until(lambda: self.log_contains(re.compile("\[monitoring\].*Publish event"))) + self.wait_until(lambda: self.log_contains(re.compile( + "Connection to .*elasticsearch\("+self.get_elasticsearch_url()+"\).* established"))) + self.wait_until(lambda: self.monitoring_doc_exists('beats_stats')) + self.wait_until(lambda: self.monitoring_doc_exists('beats_state')) + + for monitoring_doc_type in ['beats_stats', 'beats_state']: + field_names = ['cluster_uuid', 'timestamp', 'interval_ms', 'type', 'source_node', monitoring_doc_type] + self.assert_monitoring_doc_contains_fields(monitoring_doc_type, field_names) + + def monitoring_doc_exists(self, monitoring_type): + results = self.es_monitoring.search( + index='.monitoring-beats-*', + q='type:'+monitoring_type, + size=1 + ) + hits = results['hits']['hits'] + return len(hits) == 1 + + def assert_monitoring_doc_contains_fields(self, monitoring_type, field_names): + results = self.es_monitoring.search( + index='.monitoring-beats-*', + q='type:'+monitoring_type, + size=1 + ) + hits = results['hits']['hits'] + source = hits[0]['_source'] + + for field_name in field_names: + assert field_name in source + + def clean(self): + # Setup remote exporter + self.es.cluster.put_settings(body={ + "transient": { + "xpack.monitoring.exporters.my_remote": { + "type": "http", + "host": [self.get_elasticsearch_monitoring_url()] + } + } + }) + + # Enable collection + self.es.cluster.put_settings(body={ + "transient": { + "xpack.monitoring.collection.enabled": True + } + }) + + # Delete any old beats monitoring data + self.es_monitoring.indices.delete(index=".monitoring-beats-*", ignore=[404]) + + def get_elasticsearch_monitoring_url(self): + return "http://{host}:{port}".format( + host=os.getenv("ES_MONITORING_HOST", "localhost"), + port=os.getenv("ES_MONITORING_PORT", "9210") + ) From 6ddaae69afd4fc46c0bbf8c82cd0a676ed7d9fc7 Mon Sep 17 00:00:00 2001 From: Shaunak Kashyap Date: Mon, 11 Feb 2019 04:32:19 -0800 Subject: [PATCH 011/332] Fix missing nodes from Node Listing page when using Metricbeat Elasticsearch module with xpack.enabled: true (#10639) * Add source_node object to node_stats documents * Adding CHANGELOG entry --- CHANGELOG.next.asciidoc | 1 + .../module/elasticsearch/node_stats/data_xpack.go | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 636ff9a605a..8d3a4998af9 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -203,6 +203,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Fixed data type for isr field in `kafka/partition` metricset {pull}10307[10307] - Fixed data types for various hosts fields in `mongodb/replstatus` metricset {pull}10307[10307] - Added function to close sql database connection. {pull}10355[10355] +- Fix issue with `elasticsearch/node_stats` metricset (x-pack) not indexing `source_node` field. {pull}10639[10639] *Packetbeat* diff --git a/metricbeat/module/elasticsearch/node_stats/data_xpack.go b/metricbeat/module/elasticsearch/node_stats/data_xpack.go index e59caa97852..69f9bf9ed87 100644 --- a/metricbeat/module/elasticsearch/node_stats/data_xpack.go +++ b/metricbeat/module/elasticsearch/node_stats/data_xpack.go @@ -35,6 +35,8 @@ import ( var ( schemaXpack = s.Schema{ + "name": c.Str("name"), + "transport_address": c.Str("transport_address"), "indices": c.Dict("indices", s.Schema{ "docs": c.Dict("docs", s.Schema{ "count": c.Int("count"), @@ -197,12 +199,22 @@ func eventsMappingXPack(r mb.ReporterV2, m *MetricSet, info elasticsearch.Info, nodeData["node_master"] = isMaster nodeData["node_id"] = nodeID + // Build source_node object + sourceNode := common.MapStr{ + "uuid": nodeID, + "name": nodeData["name"], + "transport_address": nodeData["transport_address"], + } + nodeData.Delete("name") + nodeData.Delete("transport_address") + event.RootFields = common.MapStr{ "timestamp": time.Now(), "cluster_uuid": info.ClusterID, "interval_ms": m.Module().Config().Period.Nanoseconds() / 1000 / 1000, "type": "node_stats", "node_stats": nodeData, + "source_node": sourceNode, } event.Index = elastic.MakeXPackMonitoringIndexName(elastic.Elasticsearch) From f9be490a48c792421d257bf23fc72ffdb43b240d Mon Sep 17 00:00:00 2001 From: Jaime Soriano Pastor Date: Mon, 11 Feb 2019 18:55:50 +0100 Subject: [PATCH 012/332] Revert changes in timezones in filebeat expected results (#10663) There was a regression in ES when parsing timezones and we adapted the expected results to the incorrect values in #10441. Revert these changes when the fixed ES images are ready. --- .../access/test/ssl-request.log-expected.json | 2 +- .../apache/access/test/test.log-expected.json | 4 +- .../icinga/debug/test/test.log-expected.json | 6 +- .../icinga/main/test/test.log-expected.json | 6 +- .../mongodb-debian-3.2.11.log-expected.json | 68 +++++++++---------- .../nginx/access/test/test.log-expected.json | 8 +-- .../access/test/test.log-expected.json | 2 +- 7 files changed, 48 insertions(+), 48 deletions(-) diff --git a/filebeat/module/apache/access/test/ssl-request.log-expected.json b/filebeat/module/apache/access/test/ssl-request.log-expected.json index 1b48aff6e1b..b714bd934b5 100644 --- a/filebeat/module/apache/access/test/ssl-request.log-expected.json +++ b/filebeat/module/apache/access/test/ssl-request.log-expected.json @@ -1,6 +1,6 @@ [ { - "@timestamp": "2018-08-10T09:45:56.000Z", + "@timestamp": "2018-08-10T07:45:56.000Z", "apache.access.ssl.cipher": "ECDHE-RSA-AES128-GCM-SHA256", "apache.access.ssl.protocol": "TLSv1.2", "ecs.version": "1.0.0-beta2", diff --git a/filebeat/module/apache/access/test/test.log-expected.json b/filebeat/module/apache/access/test/test.log-expected.json index 816ed1bf00e..4ab44d546e0 100644 --- a/filebeat/module/apache/access/test/test.log-expected.json +++ b/filebeat/module/apache/access/test/test.log-expected.json @@ -1,6 +1,6 @@ [ { - "@timestamp": "2016-12-26T16:16:29.000Z", + "@timestamp": "2016-12-26T14:16:29.000Z", "ecs.version": "1.0.0-beta2", "event.dataset": "apache.access", "event.module": "apache", @@ -44,7 +44,7 @@ "user_agent.version": "50.0" }, { - "@timestamp": "2016-12-26T16:16:48.000Z", + "@timestamp": "2016-12-26T14:16:48.000Z", "ecs.version": "1.0.0-beta2", "event.dataset": "apache.access", "event.module": "apache", diff --git a/filebeat/module/icinga/debug/test/test.log-expected.json b/filebeat/module/icinga/debug/test/test.log-expected.json index d3c1157508c..a6f72f16492 100644 --- a/filebeat/module/icinga/debug/test/test.log-expected.json +++ b/filebeat/module/icinga/debug/test/test.log-expected.json @@ -1,6 +1,6 @@ [ { - "@timestamp": "2017-04-04T13:43:09.000Z", + "@timestamp": "2017-04-04T11:43:09.000Z", "ecs.version": "1.0.0-beta2", "event.dataset": "icinga.debug", "event.module": "icinga", @@ -13,7 +13,7 @@ "service.type": "icinga" }, { - "@timestamp": "2017-04-04T13:43:09.000Z", + "@timestamp": "2017-04-04T11:43:09.000Z", "ecs.version": "1.0.0-beta2", "event.dataset": "icinga.debug", "event.module": "icinga", @@ -26,7 +26,7 @@ "service.type": "icinga" }, { - "@timestamp": "2017-04-04T13:43:11.000Z", + "@timestamp": "2017-04-04T11:43:11.000Z", "ecs.version": "1.0.0-beta2", "event.dataset": "icinga.debug", "event.module": "icinga", diff --git a/filebeat/module/icinga/main/test/test.log-expected.json b/filebeat/module/icinga/main/test/test.log-expected.json index 4c3a2088b86..88f2ed51826 100644 --- a/filebeat/module/icinga/main/test/test.log-expected.json +++ b/filebeat/module/icinga/main/test/test.log-expected.json @@ -1,6 +1,6 @@ [ { - "@timestamp": "2017-04-04T11:16:34.000Z", + "@timestamp": "2017-04-04T09:16:34.000Z", "ecs.version": "1.0.0-beta2", "event.dataset": "icinga.main", "event.module": "icinga", @@ -13,7 +13,7 @@ "service.type": "icinga" }, { - "@timestamp": "2017-04-04T11:16:34.000Z", + "@timestamp": "2017-04-04T09:16:34.000Z", "ecs.version": "1.0.0-beta2", "event.dataset": "icinga.main", "event.module": "icinga", @@ -29,7 +29,7 @@ "service.type": "icinga" }, { - "@timestamp": "2017-04-04T11:16:48.000Z", + "@timestamp": "2017-04-04T09:16:48.000Z", "ecs.version": "1.0.0-beta2", "event.dataset": "icinga.main", "event.module": "icinga", diff --git a/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log-expected.json b/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log-expected.json index 0806c0e20df..d1e480cac50 100644 --- a/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log-expected.json +++ b/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log-expected.json @@ -1,6 +1,6 @@ [ { - "@timestamp": "2018-02-05T13:44:56.657Z", + "@timestamp": "2018-02-05T12:44:56.657Z", "ecs.version": "1.0.0-beta2", "event.dataset": "mongodb.log", "event.module": "mongodb", @@ -14,7 +14,7 @@ "service.type": "mongodb" }, { - "@timestamp": "2018-02-05T13:44:56.657Z", + "@timestamp": "2018-02-05T12:44:56.657Z", "ecs.version": "1.0.0-beta2", "event.dataset": "mongodb.log", "event.module": "mongodb", @@ -28,7 +28,7 @@ "service.type": "mongodb" }, { - "@timestamp": "2018-02-05T13:44:56.657Z", + "@timestamp": "2018-02-05T12:44:56.657Z", "ecs.version": "1.0.0-beta2", "event.dataset": "mongodb.log", "event.module": "mongodb", @@ -42,7 +42,7 @@ "service.type": "mongodb" }, { - "@timestamp": "2018-02-05T13:44:56.677Z", + "@timestamp": "2018-02-05T12:44:56.677Z", "ecs.version": "1.0.0-beta2", "event.dataset": "mongodb.log", "event.module": "mongodb", @@ -56,7 +56,7 @@ "service.type": "mongodb" }, { - "@timestamp": "2018-02-05T13:44:56.724Z", + "@timestamp": "2018-02-05T12:44:56.724Z", "ecs.version": "1.0.0-beta2", "event.dataset": "mongodb.log", "event.module": "mongodb", @@ -70,7 +70,7 @@ "service.type": "mongodb" }, { - "@timestamp": "2018-02-05T13:44:56.724Z", + "@timestamp": "2018-02-05T12:44:56.724Z", "ecs.version": "1.0.0-beta2", "event.dataset": "mongodb.log", "event.module": "mongodb", @@ -84,7 +84,7 @@ "service.type": "mongodb" }, { - "@timestamp": "2018-02-05T13:44:56.744Z", + "@timestamp": "2018-02-05T12:44:56.744Z", "ecs.version": "1.0.0-beta2", "event.dataset": "mongodb.log", "event.module": "mongodb", @@ -98,7 +98,7 @@ "service.type": "mongodb" }, { - "@timestamp": "2018-02-05T13:50:55.170Z", + "@timestamp": "2018-02-05T12:50:55.170Z", "ecs.version": "1.0.0-beta2", "event.dataset": "mongodb.log", "event.module": "mongodb", @@ -112,7 +112,7 @@ "service.type": "mongodb" }, { - "@timestamp": "2018-02-05T13:50:55.487Z", + "@timestamp": "2018-02-05T12:50:55.487Z", "ecs.version": "1.0.0-beta2", "event.dataset": "mongodb.log", "event.module": "mongodb", @@ -126,7 +126,7 @@ "service.type": "mongodb" }, { - "@timestamp": "2018-02-05T14:49:45.606Z", + "@timestamp": "2018-02-05T13:49:45.606Z", "ecs.version": "1.0.0-beta2", "event.dataset": "mongodb.log", "event.module": "mongodb", @@ -140,7 +140,7 @@ "service.type": "mongodb" }, { - "@timestamp": "2018-02-05T14:49:45.606Z", + "@timestamp": "2018-02-05T13:49:45.606Z", "ecs.version": "1.0.0-beta2", "event.dataset": "mongodb.log", "event.module": "mongodb", @@ -154,7 +154,7 @@ "service.type": "mongodb" }, { - "@timestamp": "2018-02-05T14:49:45.606Z", + "@timestamp": "2018-02-05T13:49:45.606Z", "ecs.version": "1.0.0-beta2", "event.dataset": "mongodb.log", "event.module": "mongodb", @@ -168,7 +168,7 @@ "service.type": "mongodb" }, { - "@timestamp": "2018-02-05T14:49:45.606Z", + "@timestamp": "2018-02-05T13:49:45.606Z", "ecs.version": "1.0.0-beta2", "event.dataset": "mongodb.log", "event.module": "mongodb", @@ -182,7 +182,7 @@ "service.type": "mongodb" }, { - "@timestamp": "2018-02-05T14:49:45.606Z", + "@timestamp": "2018-02-05T13:49:45.606Z", "ecs.version": "1.0.0-beta2", "event.dataset": "mongodb.log", "event.module": "mongodb", @@ -196,7 +196,7 @@ "service.type": "mongodb" }, { - "@timestamp": "2018-02-05T14:49:45.688Z", + "@timestamp": "2018-02-05T13:49:45.688Z", "ecs.version": "1.0.0-beta2", "event.dataset": "mongodb.log", "event.module": "mongodb", @@ -210,7 +210,7 @@ "service.type": "mongodb" }, { - "@timestamp": "2018-02-05T13:44:56.657Z", + "@timestamp": "2018-02-05T12:44:56.657Z", "ecs.version": "1.0.0-beta2", "event.dataset": "mongodb.log", "event.module": "mongodb", @@ -224,7 +224,7 @@ "service.type": "mongodb" }, { - "@timestamp": "2018-02-05T13:44:56.657Z", + "@timestamp": "2018-02-05T12:44:56.657Z", "ecs.version": "1.0.0-beta2", "event.dataset": "mongodb.log", "event.module": "mongodb", @@ -238,7 +238,7 @@ "service.type": "mongodb" }, { - "@timestamp": "2018-02-05T13:44:56.657Z", + "@timestamp": "2018-02-05T12:44:56.657Z", "ecs.version": "1.0.0-beta2", "event.dataset": "mongodb.log", "event.module": "mongodb", @@ -252,7 +252,7 @@ "service.type": "mongodb" }, { - "@timestamp": "2018-02-05T13:44:56.657Z", + "@timestamp": "2018-02-05T12:44:56.657Z", "ecs.version": "1.0.0-beta2", "event.dataset": "mongodb.log", "event.module": "mongodb", @@ -266,7 +266,7 @@ "service.type": "mongodb" }, { - "@timestamp": "2018-02-05T13:50:55.170Z", + "@timestamp": "2018-02-05T12:50:55.170Z", "ecs.version": "1.0.0-beta2", "event.dataset": "mongodb.log", "event.module": "mongodb", @@ -280,7 +280,7 @@ "service.type": "mongodb" }, { - "@timestamp": "2018-02-05T13:50:56.180Z", + "@timestamp": "2018-02-05T12:50:56.180Z", "ecs.version": "1.0.0-beta2", "event.dataset": "mongodb.log", "event.module": "mongodb", @@ -294,7 +294,7 @@ "service.type": "mongodb" }, { - "@timestamp": "2018-02-05T14:15:42.095Z", + "@timestamp": "2018-02-05T13:15:42.095Z", "ecs.version": "1.0.0-beta2", "event.dataset": "mongodb.log", "event.module": "mongodb", @@ -308,7 +308,7 @@ "service.type": "mongodb" }, { - "@timestamp": "2018-02-05T14:49:45.606Z", + "@timestamp": "2018-02-05T13:49:45.606Z", "ecs.version": "1.0.0-beta2", "event.dataset": "mongodb.log", "event.module": "mongodb", @@ -322,7 +322,7 @@ "service.type": "mongodb" }, { - "@timestamp": "2018-02-05T14:49:45.606Z", + "@timestamp": "2018-02-05T13:49:45.606Z", "ecs.version": "1.0.0-beta2", "event.dataset": "mongodb.log", "event.module": "mongodb", @@ -336,7 +336,7 @@ "service.type": "mongodb" }, { - "@timestamp": "2018-02-05T14:49:45.688Z", + "@timestamp": "2018-02-05T13:49:45.688Z", "ecs.version": "1.0.0-beta2", "event.dataset": "mongodb.log", "event.module": "mongodb", @@ -350,7 +350,7 @@ "service.type": "mongodb" }, { - "@timestamp": "2018-02-05T13:44:56.657Z", + "@timestamp": "2018-02-05T12:44:56.657Z", "ecs.version": "1.0.0-beta2", "event.dataset": "mongodb.log", "event.module": "mongodb", @@ -364,7 +364,7 @@ "service.type": "mongodb" }, { - "@timestamp": "2018-02-05T13:44:56.657Z", + "@timestamp": "2018-02-05T12:44:56.657Z", "ecs.version": "1.0.0-beta2", "event.dataset": "mongodb.log", "event.module": "mongodb", @@ -378,7 +378,7 @@ "service.type": "mongodb" }, { - "@timestamp": "2018-02-05T13:44:56.657Z", + "@timestamp": "2018-02-05T12:44:56.657Z", "ecs.version": "1.0.0-beta2", "event.dataset": "mongodb.log", "event.module": "mongodb", @@ -392,7 +392,7 @@ "service.type": "mongodb" }, { - "@timestamp": "2018-02-05T13:50:55.487Z", + "@timestamp": "2018-02-05T12:50:55.487Z", "ecs.version": "1.0.0-beta2", "event.dataset": "mongodb.log", "event.module": "mongodb", @@ -406,7 +406,7 @@ "service.type": "mongodb" }, { - "@timestamp": "2018-02-05T13:50:56.180Z", + "@timestamp": "2018-02-05T12:50:56.180Z", "ecs.version": "1.0.0-beta2", "event.dataset": "mongodb.log", "event.module": "mongodb", @@ -420,7 +420,7 @@ "service.type": "mongodb" }, { - "@timestamp": "2018-02-05T14:11:41.401Z", + "@timestamp": "2018-02-05T13:11:41.401Z", "ecs.version": "1.0.0-beta2", "event.dataset": "mongodb.log", "event.module": "mongodb", @@ -434,7 +434,7 @@ "service.type": "mongodb" }, { - "@timestamp": "2018-02-05T14:49:45.605Z", + "@timestamp": "2018-02-05T13:49:45.605Z", "ecs.version": "1.0.0-beta2", "event.dataset": "mongodb.log", "event.module": "mongodb", @@ -448,7 +448,7 @@ "service.type": "mongodb" }, { - "@timestamp": "2018-02-05T14:49:45.605Z", + "@timestamp": "2018-02-05T13:49:45.605Z", "ecs.version": "1.0.0-beta2", "event.dataset": "mongodb.log", "event.module": "mongodb", @@ -462,7 +462,7 @@ "service.type": "mongodb" }, { - "@timestamp": "2018-02-05T14:49:45.606Z", + "@timestamp": "2018-02-05T13:49:45.606Z", "ecs.version": "1.0.0-beta2", "event.dataset": "mongodb.log", "event.module": "mongodb", diff --git a/filebeat/module/nginx/access/test/test.log-expected.json b/filebeat/module/nginx/access/test/test.log-expected.json index 4dda867a36b..28e35651b1e 100644 --- a/filebeat/module/nginx/access/test/test.log-expected.json +++ b/filebeat/module/nginx/access/test/test.log-expected.json @@ -1,6 +1,6 @@ [ { - "@timestamp": "2016-12-07T11:05:07.000Z", + "@timestamp": "2016-12-07T10:05:07.000Z", "ecs.version": "1.0.0-beta2", "event.dataset": "nginx.access", "event.module": "nginx", @@ -58,7 +58,7 @@ "user_agent.version": "15.0.a2" }, { - "@timestamp": "2016-12-07T11:05:07.000Z", + "@timestamp": "2016-12-07T10:05:07.000Z", "ecs.version": "1.0.0-beta2", "event.dataset": "nginx.access", "event.module": "nginx", @@ -96,7 +96,7 @@ "user_agent.version": "49.0" }, { - "@timestamp": "2016-12-07T11:05:07.000Z", + "@timestamp": "2016-12-07T10:05:07.000Z", "ecs.version": "1.0.0-beta2", "event.dataset": "nginx.access", "event.module": "nginx", @@ -199,7 +199,7 @@ "user_agent.version": "1.0" }, { - "@timestamp": "2018-04-12T09:48:40.000Z", + "@timestamp": "2018-04-12T07:48:40.000Z", "ecs.version": "1.0.0-beta2", "event.dataset": "nginx.access", "event.module": "nginx", diff --git a/filebeat/module/traefik/access/test/test.log-expected.json b/filebeat/module/traefik/access/test/test.log-expected.json index 3dcfa0ab413..dc261e2b399 100644 --- a/filebeat/module/traefik/access/test/test.log-expected.json +++ b/filebeat/module/traefik/access/test/test.log-expected.json @@ -198,7 +198,7 @@ "user_agent.os.name": "Android" }, { - "@timestamp": "2000-10-10T13:55:36.000Z", + "@timestamp": "2000-10-10T20:55:36.000Z", "ecs.version": "1.0.0-beta2", "event.dataset": "traefik.access", "event.module": "traefik", From 928ac367a673968513db44247d930324487b52bd Mon Sep 17 00:00:00 2001 From: Jaime Soriano Pastor Date: Mon, 11 Feb 2019 19:03:10 +0100 Subject: [PATCH 013/332] Print event in mysql tests when it doesn't contain required fields (#10618) --- metricbeat/tests/system/test_mysql.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/metricbeat/tests/system/test_mysql.py b/metricbeat/tests/system/test_mysql.py index 44b99c31c52..0241079d980 100644 --- a/metricbeat/tests/system/test_mysql.py +++ b/metricbeat/tests/system/test_mysql.py @@ -34,7 +34,7 @@ def test_status(self): self.assertEqual(len(output), 1) evt = output[0] - self.assertItemsEqual(self.de_dot(MYSQL_FIELDS), evt.keys()) + self.assertItemsEqual(self.de_dot(MYSQL_FIELDS), evt.keys(), evt) status = evt["mysql"]["status"] assert status["connections"] > 0 @@ -46,7 +46,6 @@ def get_hosts(self): return ['root:test@tcp({}:3306)/'.format(self.compose_hosts()[0])] -@unittest.skip("Flaky test, see https://github.com/elastic/beats/issues/10608") class TestMysql80(Test): COMPOSE_SERVICES = ['mysql_8_0'] @@ -55,7 +54,6 @@ class TestPercona57(Test): COMPOSE_SERVICES = ['percona_5_7'] -@unittest.skip("Flaky test, see https://github.com/elastic/beats/issues/10608") class TestPercona80(Test): COMPOSE_SERVICES = ['percona_8_0'] From 269caa2702c6cd157ae964f507a19edaf854d609 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Mon, 11 Feb 2019 10:22:30 -0800 Subject: [PATCH 014/332] Document privileges for ILM (#10449) --- libbeat/docs/security/basic-auth.asciidoc | 29 +++++++++++++++++++ libbeat/docs/security/securing-beats.asciidoc | 26 ++++++++++------- 2 files changed, 44 insertions(+), 11 deletions(-) diff --git a/libbeat/docs/security/basic-auth.asciidoc b/libbeat/docs/security/basic-auth.asciidoc index 72848f69df6..9c6ea0ec436 100644 --- a/libbeat/docs/security/basic-auth.asciidoc +++ b/libbeat/docs/security/basic-auth.asciidoc @@ -40,6 +40,7 @@ POST _security/role/{beat_default_index_prefix}_writer ] } --------------------------------------------------------------- +// CONSOLE <1> If you use a custom {beatname_uc} index pattern, specify that pattern instead of the default ++{beat_default_index_prefix}-*++ pattern. endif::[] @@ -65,6 +66,34 @@ instead of the default ++{beat_default_index_prefix}-*++ pattern. endif::[] -- +ifndef::no_ilm[] +. If you plan to use {ref}/getting-started-index-lifecycle-management.html[index +lifecycle management], create a role that has the following privileges. These +privileges are required to load index lifecycle policies and create and manage +rollover indices: ++ +* *Cluster:* `manage_ilm` +* *Index:* `write`, `create_index`, `manage`, and `manage_ilm` on the +{beatname_uc} indices ++ +-- +["source","sh",subs="attributes"] +--------------------------------------------------------------- +POST _xpack/security/role/{beatname_lc}_ilm +{ + "cluster": ["manage_ilm"], + "indices": [ + { + "names": [ "{beatname_lc}-*","shrink-{beatname_lc}-*"], + "privileges": ["write","create_index","manage","manage_ilm"] + } + ] +} +--------------------------------------------------------------- +// CONSOLE +-- +endif::no_ilm[] + . Assign the writer role to the user that {beatname_uc} will use to connect to {es}. Make sure you also assign any roles that are required for specific features. For the list of features and required roles, see <>. diff --git a/libbeat/docs/security/securing-beats.asciidoc b/libbeat/docs/security/securing-beats.asciidoc index 48dd7a87f41..c5c90717918 100644 --- a/libbeat/docs/security/securing-beats.asciidoc +++ b/libbeat/docs/security/securing-beats.asciidoc @@ -44,40 +44,44 @@ password, set it up now. For more information about {security}, see {xpack-ref}/elasticsearch-security.html[Securing the {stack}]. -[float] [[feature-roles]] === {beatname_uc} features that require authorization After securing {beatname_uc}, make sure your users have the roles (or associated -privileges) required to use these {beatname_uc} features. You must create the -++{beat_default_index_prefix}_writer++ and -++{beat_default_index_prefix}_reader++ roles (see <> and -<>). The other roles are -{xpack-ref}/built-in-roles.html[built-in]. +privileges) required to use these {beatname_uc} features. Note that some of the +roles shown here are {xpack-ref}/built-in-roles.html[built-in], and some +are user-defined. [options="header"] |======= |Feature | Role -|Send data to a secured cluster | ++{beat_default_index_prefix}_writer++ +|Send data to a secured cluster | ++{beat_default_index_prefix}_writer++ footnoteref:[noteA,These roles are user-defined.] ifeval::["{beatname_lc}"=="filebeat"] -|Run Filebeat modules | ++{beat_default_index_prefix}_writer++ +|Run Filebeat modules | ++{beat_default_index_prefix}_writer++ footnoteref:[noteA] endif::[] -|Load index templates | ++{beat_default_index_prefix}_writer++ and `kibana_user` +|Load index templates | ++{beat_default_index_prefix}_writer++ footnoteref:[noteA] and `kibana_user` ifndef::no_dashboards[] -|Load {beatname_uc} dashboards into {kib} | ++{beat_default_index_prefix}_writer++ and `kibana_user` +|Load {beatname_uc} dashboards into {kib} | ++{beat_default_index_prefix}_writer++ footnoteref:[noteA] and `kibana_user` endif::[] ifdef::has_ml_jobs[] |Load machine learning jobs | `machine_learning_admin` endif::[] -|Read indices created by {beatname_uc} | ++{beat_default_index_prefix}_reader++ +|Read indices created by {beatname_uc} | ++{beat_default_index_prefix}_reader++ footnoteref:[noteA] ifndef::no_dashboards[] |View {beatname_uc} dashboards in {kib} | `kibana_user` endif::[] ifdef::has_central_config[] |Store and manage configurations in a central location in {kib} | `beats_admin` endif::[] +ifndef::no_ilm[] +|Load index lifecycle policies and use index lifecycle management | +{beatname_lc}_ilm+ footnoteref:[noteA] +endif::[] |======= +To create the user-defined roles shown here, see <> and +<>. You may want to define additional roles to provide more +restrictive access. + include::basic-auth.asciidoc[] include::user-access.asciidoc[] From 79db54a4072540c92fcd88d69a5511d5075321df Mon Sep 17 00:00:00 2001 From: Shaunak Kashyap Date: Mon, 11 Feb 2019 19:32:21 -0800 Subject: [PATCH 015/332] Adding back missing `@timestamp` fields to golden files (#10669) --- .../audit/test/test-access.log-expected.json | 9 +++ .../audit/test/test-audit.log-expected.json | 7 +++ ...lasticsearch_deprecation.log-expected.json | 4 ++ ...lasticsearch_deprecation.log-expected.json | 16 +++++ .../test/test-json.log-expected.json | 13 +++++ .../server/test/test-json.log-expected.json | 58 +++++++++++++++++++ .../server/test/test.log-expected.json | 19 ++++++ ...g_index_indexing_slowlog.log-expected.json | 6 ++ ...ex_indexing_slowlog-json.log-expected.json | 2 + ...ndex_search_slowlog-json.log-expected.json | 3 + .../slowlog/test/test.log-expected.json | 6 ++ .../log/test/logstash-plain.log-expected.json | 2 + .../test/slowlog-plain.log-expected.json | 1 + 13 files changed, 146 insertions(+) diff --git a/filebeat/module/elasticsearch/audit/test/test-access.log-expected.json b/filebeat/module/elasticsearch/audit/test/test-access.log-expected.json index 74b900a1df7..3811a496f12 100644 --- a/filebeat/module/elasticsearch/audit/test/test-access.log-expected.json +++ b/filebeat/module/elasticsearch/audit/test/test-access.log-expected.json @@ -1,5 +1,6 @@ [ { + "@timestamp": "2018-06-19T05:16:15.549Z", "ecs.version": "1.0.0-beta2", "elasticsearch.audit.layer": "rest", "event.dataset": "elasticsearch.audit", @@ -15,6 +16,7 @@ "user.name": "i030648" }, { + "@timestamp": "2018-06-19T05:07:52.304Z", "ecs.version": "1.0.0-beta2", "elasticsearch.audit.layer": "rest", "elasticsearch.node.name": "v_VJhjV", @@ -31,6 +33,7 @@ "user.name": "rado" }, { + "@timestamp": "2018-06-19T05:00:15.778Z", "ecs.version": "1.0.0-beta2", "elasticsearch.audit.action": "indices:data/read/scroll/clear", "elasticsearch.audit.layer": "transport", @@ -48,6 +51,7 @@ "user.name": "_xpack_security" }, { + "@timestamp": "2018-06-19T05:07:45.544Z", "ecs.version": "1.0.0-beta2", "elasticsearch.audit.layer": "rest", "elasticsearch.node.name": "v_VJhjV", @@ -63,6 +67,7 @@ "url.original": "/_xpack/security/_authenticate" }, { + "@timestamp": "2018-06-19T05:26:27.268Z", "ecs.version": "1.0.0-beta2", "elasticsearch.audit.layer": "rest", "event.dataset": "elasticsearch.audit", @@ -78,6 +83,7 @@ "user.name": "N078801" }, { + "@timestamp": "2018-06-19T05:55:26.898Z", "ecs.version": "1.0.0-beta2", "elasticsearch.audit.action": "cluster:monitor/main", "elasticsearch.audit.layer": "transport", @@ -95,6 +101,7 @@ "user.name": "_anonymous" }, { + "@timestamp": "2018-06-19T05:24:15.190Z", "ecs.version": "1.0.0-beta2", "elasticsearch.audit.layer": "rest", "elasticsearch.node.name": "v_VJhjV", @@ -112,6 +119,7 @@ "user.name": "elastic" }, { + "@timestamp": "2019-01-08T14:15:02.011Z", "ecs.version": "1.0.0-beta2", "elasticsearch.audit.action": "indices:data/read/search[free_context]", "elasticsearch.audit.indices": [ @@ -144,6 +152,7 @@ "user.name": "username" }, { + "@timestamp": "2019-01-27T20:04:27.244Z", "ecs.version": "1.0.0-beta2", "elasticsearch.audit.layer": "rest", "elasticsearch.audit.realm": "default_file", diff --git a/filebeat/module/elasticsearch/audit/test/test-audit.log-expected.json b/filebeat/module/elasticsearch/audit/test/test-audit.log-expected.json index 576643ace7c..c3e4ea3d40e 100644 --- a/filebeat/module/elasticsearch/audit/test/test-audit.log-expected.json +++ b/filebeat/module/elasticsearch/audit/test/test-audit.log-expected.json @@ -1,5 +1,6 @@ [ { + "@timestamp": "2018-10-31T09:34:25.109Z", "ecs.version": "1.0.0-beta2", "elasticsearch.audit.layer": "rest", "elasticsearch.audit.origin.type": "rest", @@ -19,6 +20,7 @@ "user.name": "elastic" }, { + "@timestamp": "2018-10-31T09:34:25.207Z", "ecs.version": "1.0.0-beta2", "elasticsearch.audit.layer": "rest", "elasticsearch.audit.origin.type": "rest", @@ -38,6 +40,7 @@ "user.name": "elastic" }, { + "@timestamp": "2018-10-31T09:35:11.428Z", "ecs.version": "1.0.0-beta2", "elasticsearch.audit.action": "cluster:admin/xpack/security/realm/cache/clear", "elasticsearch.audit.layer": "transport", @@ -62,6 +65,7 @@ "user.name": "_xpack_security" }, { + "@timestamp": "2018-10-31T09:35:11.430Z", "ecs.version": "1.0.0-beta2", "elasticsearch.audit.action": "cluster:admin/xpack/security/realm/cache/clear[n]", "elasticsearch.audit.layer": "transport", @@ -86,6 +90,7 @@ "user.name": "_xpack_security" }, { + "@timestamp": "2018-10-31T09:35:12.303Z", "ecs.version": "1.0.0-beta2", "elasticsearch.audit.action": "cluster:admin/xpack/security/user/change_password", "elasticsearch.audit.layer": "transport", @@ -110,6 +115,7 @@ "user.name": "elastic" }, { + "@timestamp": "2018-10-31T09:35:12.314Z", "ecs.version": "1.0.0-beta2", "elasticsearch.audit.action": "indices:admin/create", "elasticsearch.audit.indices": [ @@ -137,6 +143,7 @@ "user.name": "_xpack_security" }, { + "@timestamp": "2019-01-27T20:15:10.380Z", "ecs.version": "1.0.0-beta2", "elasticsearch.audit.layer": "rest", "elasticsearch.audit.origin.type": "rest", diff --git a/filebeat/module/elasticsearch/deprecation/test/elasticsearch_deprecation.log-expected.json b/filebeat/module/elasticsearch/deprecation/test/elasticsearch_deprecation.log-expected.json index ccf53494ba8..156c28f746e 100644 --- a/filebeat/module/elasticsearch/deprecation/test/elasticsearch_deprecation.log-expected.json +++ b/filebeat/module/elasticsearch/deprecation/test/elasticsearch_deprecation.log-expected.json @@ -1,5 +1,6 @@ [ { + "@timestamp": "2018-04-23T16:40:13.737Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.d.a.a.i.t.p.PutIndexTemplateRequest", "event.dataset": "elasticsearch.deprecation", @@ -12,6 +13,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2018-04-23T16:40:13.862Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.d.a.a.i.t.p.PutIndexTemplateRequest", "event.dataset": "elasticsearch.deprecation", @@ -24,6 +26,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2018-04-23T16:40:14.792Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.d.a.a.i.t.p.PutIndexTemplateRequest", "event.dataset": "elasticsearch.deprecation", @@ -36,6 +39,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2018-04-23T16:40:15.127Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.d.a.a.i.t.p.PutIndexTemplateRequest", "event.dataset": "elasticsearch.deprecation", diff --git a/filebeat/module/elasticsearch/deprecation/test/other_elasticsearch_deprecation.log-expected.json b/filebeat/module/elasticsearch/deprecation/test/other_elasticsearch_deprecation.log-expected.json index 740f6f4bb46..1241db9006e 100644 --- a/filebeat/module/elasticsearch/deprecation/test/other_elasticsearch_deprecation.log-expected.json +++ b/filebeat/module/elasticsearch/deprecation/test/other_elasticsearch_deprecation.log-expected.json @@ -1,5 +1,6 @@ [ { + "@timestamp": "2017-11-30T13:38:16.911Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.d.c.ParseField", "event.dataset": "elasticsearch.deprecation", @@ -12,6 +13,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2017-11-30T13:38:16.941Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.d.c.ParseField", "event.dataset": "elasticsearch.deprecation", @@ -24,6 +26,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2017-11-30T13:39:28.986Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.d.i.m.UidFieldMapper", "event.dataset": "elasticsearch.deprecation", @@ -36,6 +39,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2017-11-30T13:39:36.339Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.d.i.m.UidFieldMapper", "event.dataset": "elasticsearch.deprecation", @@ -48,6 +52,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2017-11-30T13:40:49.540Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.d.i.m.UidFieldMapper", "event.dataset": "elasticsearch.deprecation", @@ -60,6 +65,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2017-11-30T14:08:37.413Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.d.i.m.UidFieldMapper", "event.dataset": "elasticsearch.deprecation", @@ -72,6 +78,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2017-11-30T14:08:37.413Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.d.i.m.UidFieldMapper", "event.dataset": "elasticsearch.deprecation", @@ -84,6 +91,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2017-11-30T14:08:46.006Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.d.i.m.UidFieldMapper", "event.dataset": "elasticsearch.deprecation", @@ -96,6 +104,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2017-11-30T14:08:46.006Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.d.i.m.UidFieldMapper", "event.dataset": "elasticsearch.deprecation", @@ -108,6 +117,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2017-12-01T14:05:54.017Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.d.i.m.AllFieldMapper", "event.dataset": "elasticsearch.deprecation", @@ -120,6 +130,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2017-12-01T14:05:54.019Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.d.i.m.AllFieldMapper", "event.dataset": "elasticsearch.deprecation", @@ -132,6 +143,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2017-12-01T14:06:52.059Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.d.i.m.AllFieldMapper", "event.dataset": "elasticsearch.deprecation", @@ -144,6 +156,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2017-12-01T14:46:10.428Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.d.s.a.InternalOrder$Parser", "event.dataset": "elasticsearch.deprecation", @@ -156,6 +169,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2017-12-04T16:17:18.271Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.d.a.a.i.t.p.PutIndexTemplateRequest", "event.dataset": "elasticsearch.deprecation", @@ -168,6 +182,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2017-12-04T16:17:18.282Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.d.i.m.MapperService", "event.dataset": "elasticsearch.deprecation", @@ -180,6 +195,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2017-12-04T16:20:43.248Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.d.i.m.MapperService", "event.dataset": "elasticsearch.deprecation", diff --git a/filebeat/module/elasticsearch/deprecation/test/test-json.log-expected.json b/filebeat/module/elasticsearch/deprecation/test/test-json.log-expected.json index 006ce5d082a..8664764a21a 100644 --- a/filebeat/module/elasticsearch/deprecation/test/test-json.log-expected.json +++ b/filebeat/module/elasticsearch/deprecation/test/test-json.log-expected.json @@ -1,5 +1,6 @@ [ { + "@timestamp": "2019-01-30T22:16:20.233Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "es1", "elasticsearch.cluster.uuid": "S4dWw65ZT1eu3SltmAr84A", @@ -16,6 +17,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-30T22:16:22.388Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "es1", "elasticsearch.cluster.uuid": "S4dWw65ZT1eu3SltmAr84A", @@ -32,6 +34,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-30T22:16:22.566Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "es1", "elasticsearch.cluster.uuid": "S4dWw65ZT1eu3SltmAr84A", @@ -48,6 +51,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-30T22:16:24.538Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "es1", "elasticsearch.cluster.uuid": "S4dWw65ZT1eu3SltmAr84A", @@ -64,6 +68,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-30T22:16:59.311Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "es1", "elasticsearch.cluster.uuid": "S4dWw65ZT1eu3SltmAr84A", @@ -80,6 +85,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-30T22:16:59.922Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "es1", "elasticsearch.cluster.uuid": "S4dWw65ZT1eu3SltmAr84A", @@ -96,6 +102,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-30T22:17:00.095Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "es1", "elasticsearch.cluster.uuid": "S4dWw65ZT1eu3SltmAr84A", @@ -112,6 +119,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-30T22:17:13.226Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "es1", "elasticsearch.cluster.uuid": "S4dWw65ZT1eu3SltmAr84A", @@ -128,6 +136,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-30T22:17:14.747Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "es1", "elasticsearch.cluster.uuid": "S4dWw65ZT1eu3SltmAr84A", @@ -144,6 +153,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-30T22:17:14.801Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "es1", "elasticsearch.cluster.uuid": "S4dWw65ZT1eu3SltmAr84A", @@ -160,6 +170,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-30T22:17:17.546Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "es1", "elasticsearch.cluster.uuid": "S4dWw65ZT1eu3SltmAr84A", @@ -176,6 +187,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-30T22:18:33.367Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "es1", "elasticsearch.cluster.uuid": "S4dWw65ZT1eu3SltmAr84A", @@ -192,6 +204,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-30T22:18:46.493Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "es1", "elasticsearch.cluster.uuid": "S4dWw65ZT1eu3SltmAr84A", diff --git a/filebeat/module/elasticsearch/server/test/test-json.log-expected.json b/filebeat/module/elasticsearch/server/test/test-json.log-expected.json index f86093c7b6c..f4097bd56d3 100644 --- a/filebeat/module/elasticsearch/server/test/test-json.log-expected.json +++ b/filebeat/module/elasticsearch/server/test/test-json.log-expected.json @@ -1,5 +1,6 @@ [ { + "@timestamp": "2019-01-18T07:55:08.159Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.e.NodeEnvironment", @@ -14,6 +15,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:08.163Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.e.NodeEnvironment", @@ -28,6 +30,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:08.165Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.n.Node", @@ -42,6 +45,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:08.166Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.n.Node", @@ -56,6 +60,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:08.166Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.n.Node", @@ -70,6 +75,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:08.167Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.n.Node", @@ -84,6 +90,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:09.492Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", @@ -98,6 +105,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:09.493Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", @@ -112,6 +120,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:09.493Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", @@ -126,6 +135,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:09.493Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", @@ -140,6 +150,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:09.494Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", @@ -154,6 +165,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:09.494Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", @@ -168,6 +180,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:09.494Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", @@ -182,6 +195,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:09.495Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", @@ -196,6 +210,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:09.495Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", @@ -210,6 +225,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:09.495Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", @@ -224,6 +240,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:09.495Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", @@ -238,6 +255,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:09.496Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", @@ -252,6 +270,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:09.496Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", @@ -266,6 +285,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:09.496Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", @@ -280,6 +300,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:09.497Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", @@ -294,6 +315,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:09.497Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", @@ -308,6 +330,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:09.497Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", @@ -322,6 +345,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:09.498Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", @@ -336,6 +360,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:09.498Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", @@ -350,6 +375,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:09.498Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", @@ -364,6 +390,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:09.498Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", @@ -378,6 +405,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:09.499Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", @@ -392,6 +420,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:09.499Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", @@ -406,6 +435,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:09.499Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", @@ -420,6 +450,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:09.499Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", @@ -434,6 +465,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:09.500Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", @@ -448,6 +480,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:09.500Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", @@ -462,6 +495,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:09.500Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", @@ -476,6 +510,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:09.501Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", @@ -490,6 +525,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:12.057Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.x.s.a.s.FileRolesStore", @@ -504,6 +540,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:12.426Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.x.m.p.l.CppLogMessageHandler", @@ -520,6 +557,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:12.709Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.a.ActionModule", @@ -534,6 +572,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:12.922Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.d.DiscoveryModule", @@ -548,6 +587,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:13.507Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.n.Node", @@ -562,6 +602,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:13.508Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.n.Node", @@ -576,6 +617,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:13.642Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.t.TransportService", @@ -590,6 +632,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:13.675Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.d.z.FileBasedUnicastHostsProvider", @@ -604,6 +647,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:13.796Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.c.s.MasterService", @@ -618,6 +662,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:13.871Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.c.s.ClusterApplierService", @@ -632,6 +677,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:13.922Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.cluster.uuid": "GmvrbHlNTiSVYiPf8kxg9g", @@ -648,6 +694,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:13.923Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.cluster.uuid": "GmvrbHlNTiSVYiPf8kxg9g", @@ -664,6 +711,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:14.105Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.cluster.uuid": "GmvrbHlNTiSVYiPf8kxg9g", @@ -680,6 +728,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:14.134Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.cluster.uuid": "GmvrbHlNTiSVYiPf8kxg9g", @@ -696,6 +745,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:51.725Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.cluster.uuid": "GmvrbHlNTiSVYiPf8kxg9g", @@ -712,6 +762,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:51.726Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.cluster.uuid": "GmvrbHlNTiSVYiPf8kxg9g", @@ -728,6 +779,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:51.739Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.cluster.uuid": "GmvrbHlNTiSVYiPf8kxg9g", @@ -744,6 +796,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:52.141Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.cluster.uuid": "GmvrbHlNTiSVYiPf8kxg9g", @@ -760,6 +813,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:52.141Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.cluster.uuid": "GmvrbHlNTiSVYiPf8kxg9g", @@ -776,6 +830,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-18T07:55:52.150Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.cluster.uuid": "GmvrbHlNTiSVYiPf8kxg9g", @@ -792,6 +847,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-10T10:18:58.523Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "elasticsearch", "elasticsearch.component": "test", @@ -858,6 +914,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-10T10:18:58.537Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "elasticsearch", "elasticsearch.component": "o.e.c.l.JsonLoggerTests", @@ -872,6 +929,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-10T10:18:58.560Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "elasticsearch", "elasticsearch.component": "test", diff --git a/filebeat/module/elasticsearch/server/test/test.log-expected.json b/filebeat/module/elasticsearch/server/test/test.log-expected.json index ab741c34abe..4c015f5d02c 100644 --- a/filebeat/module/elasticsearch/server/test/test.log-expected.json +++ b/filebeat/module/elasticsearch/server/test/test.log-expected.json @@ -1,5 +1,6 @@ [ { + "@timestamp": "2018-05-17T08:29:12.177Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.c.m.MetaDataCreateIndexService", "elasticsearch.index.name": "test-filebeat-modules", @@ -14,6 +15,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2018-05-17T08:19:35.939Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.n.Node", "elasticsearch.node.name": "", @@ -27,6 +29,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2018-05-17T08:19:36.089Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.e.NodeEnvironment", "elasticsearch.node.name": "vWNJsZ3", @@ -40,6 +43,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2018-05-17T08:19:36.090Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.e.NodeEnvironment", "elasticsearch.node.name": "vWNJsZ3", @@ -53,6 +57,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2018-05-17T08:19:36.116Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.n.Node", "event.dataset": "elasticsearch.server", @@ -65,6 +70,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2018-05-17T08:23:48.941Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.c.r.a.DiskThresholdMonitor", "elasticsearch.node.name": "vWNJsZ3", @@ -78,6 +84,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2018-05-17T08:29:09.245Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.c.m.MetaDataCreateIndexService", "elasticsearch.index.name": "filebeat-test-input", @@ -92,6 +99,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2018-05-17T08:29:09.576Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.c.m.MetaDataMappingService", "elasticsearch.index.id": "aOGgDwbURfCV57AScqbCgw", @@ -107,6 +115,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2018-07-09T12:47:33.959Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.c.m.MetaDataMappingService", "elasticsearch.index.id": "3tWftqb4RLKdyCAga9syGA", @@ -122,6 +131,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2018-05-17T08:29:25.598Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.n.Node", "elasticsearch.node.name": "vWNJsZ3", @@ -135,6 +145,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2018-05-17T08:29:25.612Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.n.Node", "elasticsearch.node.name": "vWNJsZ3", @@ -148,6 +159,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2018-07-03T11:45:48.548Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.d.z.ZenDiscovery", "elasticsearch.node.name": "srvmulpvlsk252_md", @@ -161,6 +173,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2018-07-03T11:45:48.548Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.d.z.ZenDiscovery", "elasticsearch.node.name": "srvmulpvlsk252_md", @@ -177,6 +190,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2018-07-03T11:45:52.666Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "r.suppressed", "event.dataset": "elasticsearch.server", @@ -192,6 +206,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2018-07-03T11:48:02.552Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "r.suppressed", "event.dataset": "elasticsearch.server", @@ -207,6 +222,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2018-07-03T11:45:27.896Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.m.j.JvmGcMonitorService", "elasticsearch.node.name": "srvmulpvlsk252_md", @@ -225,6 +241,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2018-07-03T11:45:45.604Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.m.j.JvmGcMonitorService", "elasticsearch.node.name": "srvmulpvlsk252_md", @@ -241,6 +258,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2018-07-03T11:48:02.541Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.a.b.TransportShardBulkAction", "elasticsearch.node.name": "srvmulpvlsk252_md", @@ -254,6 +272,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2018-07-03T20:10:07.376Z", "ecs.version": "1.0.0-beta2", "elasticsearch.component": "o.e.x.m.MonitoringService", "elasticsearch.node.name": "srvmulpvlsk252_md", diff --git a/filebeat/module/elasticsearch/slowlog/test/auditlog_index_indexing_slowlog.log-expected.json b/filebeat/module/elasticsearch/slowlog/test/auditlog_index_indexing_slowlog.log-expected.json index 3efd8db6267..e5d67738dfc 100644 --- a/filebeat/module/elasticsearch/slowlog/test/auditlog_index_indexing_slowlog.log-expected.json +++ b/filebeat/module/elasticsearch/slowlog/test/auditlog_index_indexing_slowlog.log-expected.json @@ -1,5 +1,6 @@ [ { + "@timestamp": "2018-07-04T21:51:29.536Z", "ecs.version": "1.0.0-beta2", "elasticsearch.index.id": "VLKxBLvUSYuIMKzpacGjRg", "elasticsearch.index.name": "metricbeat-6.3.0-2018.07.04", @@ -21,6 +22,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2018-07-04T21:51:29.537Z", "ecs.version": "1.0.0-beta2", "elasticsearch.index.id": "VLKxBLvUSYuIMKzpacGjRg", "elasticsearch.index.name": "metricbeat-6.3.0-2018.07.04", @@ -42,6 +44,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2018-07-04T21:51:29.538Z", "ecs.version": "1.0.0-beta2", "elasticsearch.index.id": "VLKxBLvUSYuIMKzpacGjRg", "elasticsearch.index.name": "metricbeat-6.3.0-2018.07.04", @@ -63,6 +66,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2018-07-04T21:51:30.411Z", "ecs.version": "1.0.0-beta2", "elasticsearch.index.id": "VLKxBLvUSYuIMKzpacGjRg", "elasticsearch.index.name": "metricbeat-6.3.0-2018.07.04", @@ -83,6 +87,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2018-07-04T21:51:30.963Z", "ecs.version": "1.0.0-beta2", "elasticsearch.index.id": "VLKxBLvUSYuIMKzpacGjRg", "elasticsearch.index.name": "metricbeat-6.3.0-2018.07.04", @@ -104,6 +109,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2018-07-04T21:51:30.965Z", "ecs.version": "1.0.0-beta2", "elasticsearch.index.id": "VLKxBLvUSYuIMKzpacGjRg", "elasticsearch.index.name": "metricbeat-6.3.0-2018.07.04", diff --git a/filebeat/module/elasticsearch/slowlog/test/es_index_indexing_slowlog-json.log-expected.json b/filebeat/module/elasticsearch/slowlog/test/es_index_indexing_slowlog-json.log-expected.json index 151fe6a48d0..74de3b8a203 100644 --- a/filebeat/module/elasticsearch/slowlog/test/es_index_indexing_slowlog-json.log-expected.json +++ b/filebeat/module/elasticsearch/slowlog/test/es_index_indexing_slowlog-json.log-expected.json @@ -1,5 +1,6 @@ [ { + "@timestamp": "2019-01-29T07:35:54.170Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.cluster.uuid": "oqKkg2eoQh2P_KrKliI3DA", @@ -24,6 +25,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-29T07:35:58.359Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.cluster.uuid": "oqKkg2eoQh2P_KrKliI3DA", diff --git a/filebeat/module/elasticsearch/slowlog/test/es_index_search_slowlog-json.log-expected.json b/filebeat/module/elasticsearch/slowlog/test/es_index_search_slowlog-json.log-expected.json index f8e73ae6343..9ea5fff1821 100644 --- a/filebeat/module/elasticsearch/slowlog/test/es_index_search_slowlog-json.log-expected.json +++ b/filebeat/module/elasticsearch/slowlog/test/es_index_search_slowlog-json.log-expected.json @@ -1,5 +1,6 @@ [ { + "@timestamp": "2019-01-29T07:31:40.426Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.cluster.uuid": "oqKkg2eoQh2P_KrKliI3DA", @@ -20,6 +21,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-29T07:36:01.675Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.cluster.uuid": "oqKkg2eoQh2P_KrKliI3DA", @@ -40,6 +42,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2019-01-29T07:36:01.685Z", "ecs.version": "1.0.0-beta2", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.cluster.uuid": "oqKkg2eoQh2P_KrKliI3DA", diff --git a/filebeat/module/elasticsearch/slowlog/test/test.log-expected.json b/filebeat/module/elasticsearch/slowlog/test/test.log-expected.json index a64cef63e13..ec13bd7ce58 100644 --- a/filebeat/module/elasticsearch/slowlog/test/test.log-expected.json +++ b/filebeat/module/elasticsearch/slowlog/test/test.log-expected.json @@ -1,5 +1,6 @@ [ { + "@timestamp": "2018-06-29T10:06:14.933Z", "ecs.version": "1.0.0-beta2", "elasticsearch.index.name": "metricbeat-6.3.0-2018.06.26", "elasticsearch.node.name": "v_VJhjV", @@ -26,6 +27,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2018-06-29T10:06:14.943Z", "ecs.version": "1.0.0-beta2", "elasticsearch.index.name": "metricbeat-6.3.0-2018.06.26", "elasticsearch.node.name": "v_VJhjV", @@ -49,6 +51,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2018-06-29T09:01:01.821Z", "ecs.version": "1.0.0-beta2", "elasticsearch.index.name": "metricbeat-6.3.0-2018.06.26", "elasticsearch.node.name": "v_VJhjV", @@ -72,6 +75,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2018-06-29T09:01:01.827Z", "ecs.version": "1.0.0-beta2", "elasticsearch.index.name": "metricbeat-6.3.0-2018.06.26", "elasticsearch.node.name": "v_VJhjV", @@ -95,6 +99,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2018-07-04T13:48:07.452Z", "ecs.version": "1.0.0-beta2", "elasticsearch.index.id": "VLKxBLvUSYuIMKzpacGjRg", "elasticsearch.index.name": "metricbeat-6.3.0-2018.07.04", @@ -116,6 +121,7 @@ "service.type": "elasticsearch" }, { + "@timestamp": "2018-07-04T21:51:30.411Z", "ecs.version": "1.0.0-beta2", "elasticsearch.index.id": "VLKxBLvUSYuIMKzpacGjRg", "elasticsearch.index.name": "metricbeat-6.3.0-2018.07.04", diff --git a/filebeat/module/logstash/log/test/logstash-plain.log-expected.json b/filebeat/module/logstash/log/test/logstash-plain.log-expected.json index 73a55af7beb..29a5f2c3498 100644 --- a/filebeat/module/logstash/log/test/logstash-plain.log-expected.json +++ b/filebeat/module/logstash/log/test/logstash-plain.log-expected.json @@ -1,5 +1,6 @@ [ { + "@timestamp": "2017-10-23T14:20:12.046Z", "ecs.version": "1.0.0-beta2", "event.dataset": "logstash.log", "event.module": "logstash", @@ -12,6 +13,7 @@ "service.type": "logstash" }, { + "@timestamp": "2017-11-20T03:55:00.318Z", "ecs.version": "1.0.0-beta2", "event.dataset": "logstash.log", "event.module": "logstash", diff --git a/filebeat/module/logstash/slowlog/test/slowlog-plain.log-expected.json b/filebeat/module/logstash/slowlog/test/slowlog-plain.log-expected.json index 573eadcadb9..bb454ed5b0d 100644 --- a/filebeat/module/logstash/slowlog/test/slowlog-plain.log-expected.json +++ b/filebeat/module/logstash/slowlog/test/slowlog-plain.log-expected.json @@ -1,5 +1,6 @@ [ { + "@timestamp": "2017-10-30T09:57:58.243Z", "ecs.version": "1.0.0-beta2", "event.dataset": "logstash.slowlog", "event.duration": 3027675106, From 5d280da4c4dcf02cfe768e74d8d9e0b4dd7706f9 Mon Sep 17 00:00:00 2001 From: kaiyan-sheng Date: Tue, 12 Feb 2019 11:36:25 -0700 Subject: [PATCH 016/332] Add username password into kibana config before calling NewKibanaClient (#10675) * Add username password into kibana config before calling NewKibanaClient * Add changelog * Add unit test for initKibanaConfig * Run make fmt * Add comment on initKibanaConfig --- CHANGELOG.next.asciidoc | 1 + libbeat/cmd/instance/beat.go | 42 +++++++++++++++++++++++------- libbeat/cmd/instance/beat_test.go | 29 +++++++++++++++++++++ libbeat/cmd/test/filebeat_test.yml | 26 ++++++++++++++++++ libbeat/dashboards/dashboards.go | 14 +--------- 5 files changed, 89 insertions(+), 23 deletions(-) create mode 100644 libbeat/cmd/test/filebeat_test.yml diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 8d3a4998af9..39328c57630 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -168,6 +168,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Fix encoding of timestamps when using disk spool. {issue}10099[10099] - Fix stopping of modules started by kubernetes autodiscover. {pull}10476[10476] - Fix a issue when remote and local configuration didn't match when fetching configuration from Central Management. {issue}10587[10587] +- Fix unauthorized error when loading dashboards by adding username and password into kibana config. {issue}10513[10513] {pull}10675[10675] *Auditbeat* diff --git a/libbeat/cmd/instance/beat.go b/libbeat/cmd/instance/beat.go index 7881199d6f2..41044e07120 100644 --- a/libbeat/cmd/instance/beat.go +++ b/libbeat/cmd/instance/beat.go @@ -681,11 +681,6 @@ func (b *Beat) loadDashboards(ctx context.Context, force bool) error { } if b.Config.Dashboards.Enabled() { - var esConfig *common.Config - if b.Config.Output.Name() == "elasticsearch" { - esConfig = b.Config.Output.Config() - } - var withMigration bool if b.RawConfig.HasField("migration") { sub, err := b.RawConfig.Child("migration", -1) @@ -695,10 +690,11 @@ func (b *Beat) loadDashboards(ctx context.Context, force bool) error { withMigration = sub.Enabled() } - // init kibana config object - kibanaConfig := b.Config.Kibana - if kibanaConfig == nil { - kibanaConfig = common.NewConfig() + // Initialize kibana config. If username and password is set in elasticsearch output config but not in kibana, + // initKibanaConfig will attach the ussername and password into kibana config as a part of the initialization. + kibanaConfig, err := initKibanaConfig(b.Config) + if err != nil { + return fmt.Errorf("error initKibanaConfig: %v", err) } client, err := kibana.NewKibanaClient(kibanaConfig) @@ -720,7 +716,7 @@ func (b *Beat) loadDashboards(ctx context.Context, force bool) error { } err = dashboards.ImportDashboards(ctx, b.Info, paths.Resolve(paths.Home, ""), - kibanaConfig, esConfig, b.Config.Dashboards, nil, pattern) + kibanaConfig, b.Config.Dashboards, nil, pattern) if err != nil { return errw.Wrap(err, "Error importing Kibana dashboards") } @@ -886,3 +882,29 @@ func LoadKeystore(cfg *common.Config, name string) (keystore.Keystore, error) { defaultPathConfig := paths.Resolve(paths.Data, fmt.Sprintf("%s.keystore", name)) return keystore.Factory(keystoreCfg, defaultPathConfig) } + +func initKibanaConfig(beatConfig beatConfig) (*common.Config, error) { + var esConfig *common.Config + if beatConfig.Output.Name() == "elasticsearch" { + esConfig = beatConfig.Output.Config() + } + + // init kibana config object + kibanaConfig := beatConfig.Kibana + if kibanaConfig == nil { + kibanaConfig = common.NewConfig() + } + + if esConfig.Enabled() { + username, _ := esConfig.String("username", -1) + password, _ := esConfig.String("password", -1) + + if !kibanaConfig.HasField("username") && username != "" { + kibanaConfig.SetString("username", -1, username) + } + if !kibanaConfig.HasField("password") && password != "" { + kibanaConfig.SetString("password", -1, password) + } + } + return kibanaConfig, nil +} diff --git a/libbeat/cmd/instance/beat_test.go b/libbeat/cmd/instance/beat_test.go index 4efa7b70977..751995ffaa2 100644 --- a/libbeat/cmd/instance/beat_test.go +++ b/libbeat/cmd/instance/beat_test.go @@ -22,6 +22,8 @@ package instance import ( "testing" + "github.com/elastic/beats/libbeat/cfgfile" + "github.com/gofrs/uuid" "github.com/stretchr/testify/assert" ) @@ -63,3 +65,30 @@ func TestNewInstanceUUID(t *testing.T) { } assert.NotEqual(t, b.Info.ID, differentUUID) } + +func TestInitKibanaConfig(t *testing.T) { + b, err := NewBeat("filebeat", "testidx", "0.9") + if err != nil { + panic(err) + } + + assert.Equal(t, "filebeat", b.Info.Beat) + assert.Equal(t, "testidx", b.Info.IndexPrefix) + assert.Equal(t, "0.9", b.Info.Version) + + cfg, err := cfgfile.Load("../test/filebeat_test.yml", nil) + err = cfg.Unpack(&b.Config) + assert.NoError(t, err) + + kibanaConfig, err := initKibanaConfig(b.Config) + assert.NoError(t, err) + username, err := kibanaConfig.String("username", -1) + password, err := kibanaConfig.String("password", -1) + protocol, err := kibanaConfig.String("protocol", -1) + host, err := kibanaConfig.String("host", -1) + + assert.Equal(t, "elastic-test-username", username) + assert.Equal(t, "elastic-test-password", password) + assert.Equal(t, "https", protocol) + assert.Equal(t, "127.0.0.1:5601", host) +} diff --git a/libbeat/cmd/test/filebeat_test.yml b/libbeat/cmd/test/filebeat_test.yml new file mode 100644 index 00000000000..5376601942b --- /dev/null +++ b/libbeat/cmd/test/filebeat_test.yml @@ -0,0 +1,26 @@ +#============================== Kibana ===================================== + +# Starting with Beats version 6.0.0, the dashboards are loaded via the Kibana API. +# This requires a Kibana endpoint configuration. +setup.kibana: + + # Kibana Host + # Scheme and port can be left out and will be set to the default (http and 5601) + # In case you specify and additional path, the scheme is required: http://localhost:5601/path + # IPv6 addresses should always be defined as: https://[2001:db8::1]:5601 + host: "127.0.0.1:5601" + protocol: https + +#================================ Outputs ===================================== + +# Configure what output to use when sending the data collected by the beat. + +#-------------------------- Elasticsearch output ------------------------------ +output.elasticsearch: + # Array of hosts to connect to. + hosts: ["127.0.0.1:9200"] + + # Optional protocol and basic auth credentials. + username: "elastic-test-username" + password: "elastic-test-password" + protocal: "https" diff --git a/libbeat/dashboards/dashboards.go b/libbeat/dashboards/dashboards.go index f40ea8635dd..c1ba0ca9b1c 100644 --- a/libbeat/dashboards/dashboards.go +++ b/libbeat/dashboards/dashboards.go @@ -33,7 +33,7 @@ import ( func ImportDashboards( ctx context.Context, beatInfo beat.Info, homePath string, - kibanaConfig, esConfig, dashboardsConfig *common.Config, + kibanaConfig, dashboardsConfig *common.Config, msgOutputter MessageOutputter, pattern common.MapStr, ) error { @@ -50,18 +50,6 @@ func ImportDashboards( return err } - if esConfig.Enabled() { - username, _ := esConfig.String("username", -1) - password, _ := esConfig.String("password", -1) - - if !kibanaConfig.HasField("username") && username != "" { - kibanaConfig.SetString("username", -1, username) - } - if !kibanaConfig.HasField("password") && password != "" { - kibanaConfig.SetString("password", -1, password) - } - } - if !kibanaConfig.Enabled() { return errors.New("kibana configuration missing for loading dashboards.") } From 06c3615535097e788cfff298593bc06b4838ecae Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Tue, 12 Feb 2019 14:48:14 -0500 Subject: [PATCH 017/332] Give more time to Mac's test VM (#10681) Everytime that you assert content from disk, you are at the mercy of the FS speed, on VM especially on our mac runner disk access can be slow, there is no need to have low timeout values for theses tests and we do not need to poll the disk on every 0.1s. Let's give more times for data to be flushed to disk and make sure we hit the fresh data instead of cached values. Fixes: #7687 --- filebeat/tests/system/test_crawler.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/filebeat/tests/system/test_crawler.py b/filebeat/tests/system/test_crawler.py index 315198f2841..2c1f1dc6f59 100644 --- a/filebeat/tests/system/test_crawler.py +++ b/filebeat/tests/system/test_crawler.py @@ -392,7 +392,7 @@ def test_multiple_appends(self): self.wait_until( lambda: self.output_has(1), - max_timeout=15) + max_timeout=60, poll_interval=1) lines_written = 0 @@ -407,7 +407,7 @@ def test_multiple_appends(self): self.wait_until( lambda: self.output_has(lines_written + 1), - max_timeout=15) + max_timeout=60, poll_interval=1) filebeat.check_kill_and_wait() From 36a7cb0f2727938ed84778aef21bf4d41f470a20 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Tue, 12 Feb 2019 16:01:56 -0500 Subject: [PATCH 018/332] Give more times to check for Mockbet alive (#10680) Under darwin that test was flaky, I've ran it a few times locally without issues. looking at the previous issue we always fails check that Mockbeat is alived, but since this run on VM, we could hit contention issues with either disk or cpu. Lets give more time to actually assert before timeout. Fixes: #9216 --- libbeat/tests/system/test_base.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libbeat/tests/system/test_base.py b/libbeat/tests/system/test_base.py index a08af980e9f..9287b661662 100644 --- a/libbeat/tests/system/test_base.py +++ b/libbeat/tests/system/test_base.py @@ -124,7 +124,6 @@ def test_logging_metrics(self): lambda: self.log_contains("Total non-zero metrics"), max_timeout=2) - @unittest.skipIf(sys.platform == 'darwin', 'flaky test https://github.com/elastic/beats/issues/9216') def test_persistent_uuid(self): self.render_config_template() @@ -133,7 +132,7 @@ def test_persistent_uuid(self): def run(): proc = self.start_beat(extra_args=["-path.home", self.working_dir]) self.wait_until(lambda: self.log_contains("Mockbeat is alive"), - max_timeout=2) + max_timeout=60) # open meta file before killing the beat, checking the file being # available right after startup From e2f5d569a011365a8f6d8fee737c10e01a8eb3f0 Mon Sep 17 00:00:00 2001 From: Nicolas Ruflin Date: Wed, 13 Feb 2019 08:17:24 +0100 Subject: [PATCH 019/332] Change travis.yml to use TRAVIS_GO_VERSION (#10589) This change is based on https://travis-ci.community/t/go-version-as-environment-variable-stopped-working/2171 --- .travis.yml | 54 ++++++++++++++++++++++++++--------------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/.travis.yml b/.travis.yml index 2ea3ff872af..3e9b8b27611 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,7 +13,7 @@ env: # Cross-compile for amd64 only to speed up testing. - GOX_FLAGS="-arch amd64" - DOCKER_COMPOSE_VERSION=1.21.0 - - GO_VERSION="1.11.5" + - TRAVIS_GO_VERSION=$(cat .go-version) # Newer versions of minikube fail on travis, see: https://github.com/kubernetes/minikube/issues/2704 - TRAVIS_MINIKUBE_VERSION=v0.25.2 @@ -22,129 +22,129 @@ jobs: # General checks - os: linux env: TARGETS="check" - go: 1.11.5 + go: $TRAVIS_GO_VERSION stage: check # Filebeat - os: linux env: TARGETS="-C filebeat testsuite" - go: 1.11.5 + go: $TRAVIS_GO_VERSION stage: test - os: osx env: TARGETS="TEST_ENVIRONMENT=0 -C filebeat testsuite" - go: 1.11.5 + go: $TRAVIS_GO_VERSION stage: test - os: linux env: TARGETS="-C x-pack/filebeat testsuite" - go: 1.11.5 + go: $(GO_VERSION) stage: test # Heartbeat - os: linux env: TARGETS="-C heartbeat testsuite" - go: 1.11.5 + go: $TRAVIS_GO_VERSION stage: test - os: osx env: TARGETS="TEST_ENVIRONMENT=0 -C heartbeat testsuite" - go: 1.11.5 + go: $TRAVIS_GO_VERSION stage: test # Auditbeat - os: linux env: TARGETS="-C auditbeat testsuite" - go: 1.11.5 + go: $TRAVIS_GO_VERSION stage: test - os: osx env: TARGETS="TEST_ENVIRONMENT=0 -C auditbeat testsuite" - go: 1.11.5 + go: $TRAVIS_GO_VERSION stage: test - os: linux env: TARGETS="-C auditbeat crosscompile" - go: 1.11.5 + go: $TRAVIS_GO_VERSION stage: test - os: linux env: TARGETS="-C x-pack/auditbeat testsuite" - go: 1.11.5 + go: $TRAVIS_GO_VERSION stage: test # Libbeat - os: linux env: TARGETS="-C libbeat testsuite" - go: 1.11.5 + go: $TRAVIS_GO_VERSION stage: test - os: linux env: TARGETS="-C libbeat crosscompile" - go: 1.11.5 + go: $TRAVIS_GO_VERSION stage: test - os: linux env: STRESS_TEST_OPTIONS="-timeout=20m -race -v -parallel 1" TARGETS="-C libbeat stress-tests" - go: 1.11.5 + go: $TRAVIS_GO_VERSION stage: test - os: linux env: TARGETS="-C x-pack/libbeat testsuite" - go: 1.11.5 + go: $TRAVIS_GO_VERSION stage: test # Metricbeat - os: linux env: TARGETS="-C metricbeat testsuite" - go: 1.11.5 + go: $TRAVIS_GO_VERSION stage: test - os: osx env: TARGETS="TEST_ENVIRONMENT=0 -C metricbeat testsuite" - go: 1.11.5 + go: $TRAVIS_GO_VERSION stage: test - os: linux env: TARGETS="-C metricbeat crosscompile" - go: 1.11.5 + go: $TRAVIS_GO_VERSION stage: test - os: linux env: TARGETS="-C x-pack/metricbeat testsuite" - go: 1.11.5 + go: $TRAVIS_GO_VERSION stage: test # Packetbeat - os: linux env: TARGETS="-C packetbeat testsuite" - go: 1.11.5 + go: $TRAVIS_GO_VERSION stage: test # Winlogbeat - os: linux env: TARGETS="-C winlogbeat crosscompile" - go: 1.11.5 + go: $TRAVIS_GO_VERSION stage: test # Functionbeat - os: linux env: TARGETS="-C x-pack/functionbeat testsuite" - go: 1.11.5 + go: $TRAVIS_GO_VERSION stage: test - os: osx env: TARGETS="TEST_ENVIRONMENT=0 -C x-pack/functionbeat testsuite" - go: 1.11.5 + go: $TRAVIS_GO_VERSION stage: test # Journalbeat - os: linux env: TARGETS="-C journalbeat testsuite" - go: 1.11.5 + go: $TRAVIS_GO_VERSION stage: test # Generators - os: linux env: TARGETS="-C generator/metricbeat test" - go: 1.11.5 + go: $TRAVIS_GO_VERSION stage: test - os: linux env: TARGETS="-C generator/beat test" - go: 1.11.5 + go: $TRAVIS_GO_VERSION stage: test # Docs - os: linux env: TARGETS="docs" - go: 1.11.5 + go: $TRAVIS_GO_VERSION stage: test # Kubernetes From 5c217778407332adcd30ee16e57aa4298f4aed88 Mon Sep 17 00:00:00 2001 From: Silvia Mitter Date: Wed, 13 Feb 2019 08:53:19 +0100 Subject: [PATCH 020/332] Ensure index pattern version is a string (#10689) * Ensure index pattern version is a string related to https://github.com/elastic/kibana/pull/30789 --- libbeat/kibana/index_pattern_generator.go | 2 +- libbeat/kibana/index_pattern_generator_test.go | 2 +- libbeat/kibana/testdata/beat-6.json | 2 +- libbeat/kibana/testdata/extensive/metricbeat-6.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libbeat/kibana/index_pattern_generator.go b/libbeat/kibana/index_pattern_generator.go index 8252177d27f..fe426d0a033 100644 --- a/libbeat/kibana/index_pattern_generator.go +++ b/libbeat/kibana/index_pattern_generator.go @@ -84,7 +84,7 @@ func (i *IndexPatternGenerator) generatePattern(attrs common.MapStr) common.MapS common.MapStr{ "type": "index-pattern", "id": i.indexName, - "version": 1, + "version": "1", "attributes": attrs, }, }, diff --git a/libbeat/kibana/index_pattern_generator_test.go b/libbeat/kibana/index_pattern_generator_test.go index 38cdc2dc983..6d327c3e3cb 100644 --- a/libbeat/kibana/index_pattern_generator_test.go +++ b/libbeat/kibana/index_pattern_generator_test.go @@ -157,7 +157,7 @@ func testGenerate(t *testing.T, tests []compare, sourceFilters bool) { objExisting := existing["objects"].([]interface{})[0].(map[string]interface{}) objCreated := test.created["objects"].([]common.MapStr)[0] - assert.Equal(t, int(objExisting["version"].(float64)), objCreated["version"]) + assert.Equal(t, objExisting["version"], objCreated["version"]) assert.Equal(t, objExisting["id"], objCreated["id"]) assert.Equal(t, objExisting["type"], objCreated["type"]) diff --git a/libbeat/kibana/testdata/beat-6.json b/libbeat/kibana/testdata/beat-6.json index 8940e8ce813..a58173ffad3 100644 --- a/libbeat/kibana/testdata/beat-6.json +++ b/libbeat/kibana/testdata/beat-6.json @@ -10,7 +10,7 @@ }, "id": "beat-*", "type": "index-pattern", - "version": 1 + "version": "1" } ], "version": "7.0.0-alpha1" diff --git a/libbeat/kibana/testdata/extensive/metricbeat-6.json b/libbeat/kibana/testdata/extensive/metricbeat-6.json index 6dbd5a666ac..408ef23d061 100644 --- a/libbeat/kibana/testdata/extensive/metricbeat-6.json +++ b/libbeat/kibana/testdata/extensive/metricbeat-6.json @@ -8,7 +8,7 @@ "timeFieldName": "@timestamp", "title": "metricbeat-*" }, - "version": 1, + "version": "1", "type": "index-pattern", "id": "metricbeat-*" } From f8c5a8e6ca64f432585bdb8b95ce774a2b20db17 Mon Sep 17 00:00:00 2001 From: Nicolas Ruflin Date: Wed, 13 Feb 2019 10:23:35 +0100 Subject: [PATCH 021/332] Fix more strict params in docs build (#10710) It seems the docs build script has become more strict around params. `--` instead of `-` has to be used. --- script/build_docs.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/script/build_docs.sh b/script/build_docs.sh index a9fd012d30c..b085233911e 100755 --- a/script/build_docs.sh +++ b/script/build_docs.sh @@ -30,11 +30,11 @@ do mkdir -p "$dest_dir" params="--chunk=1" if [ "$PREVIEW" = "1" ]; then - params="$params -open" + params="$params --open" fi if [ -d "$resource_dir" ]; then - params="$params -resource=${resource_dir}" + params="$params --resource=${resource_dir}" fi $docs_dir/build_docs.pl $params --doc "$index" -out "$dest_dir" From 28e0a0b0cd86bfdb384051f38a46c8d23e7c2ac3 Mon Sep 17 00:00:00 2001 From: Ron Cohen Date: Wed, 13 Feb 2019 13:09:41 +0100 Subject: [PATCH 022/332] skip dashboard unpacking for empty objs (#10701) --- libbeat/scripts/unpack_dashboards.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libbeat/scripts/unpack_dashboards.py b/libbeat/scripts/unpack_dashboards.py index a9622797836..194dececf1e 100644 --- a/libbeat/scripts/unpack_dashboards.py +++ b/libbeat/scripts/unpack_dashboards.py @@ -6,6 +6,9 @@ def transform_data(data, method): for obj in data["objects"]: + if "attributes" not in obj: + continue + if "uiStateJSON" in obj["attributes"]: obj["attributes"]["uiStateJSON"] = method(obj["attributes"]["uiStateJSON"]) From 7a515ea293793a198198b9d9fb2a4e9074dfd8a1 Mon Sep 17 00:00:00 2001 From: Andrew Kroh Date: Wed, 13 Feb 2019 12:04:51 -0500 Subject: [PATCH 023/332] Squelch duplicate HTTP packet loss error messages (#10709) Each time a gap is detected a new error message is appended. One message is sufficient to know that packet loss occurred so stop adding errors after the first. I was seeing events with many errors. "error": { "message": [ "Packet loss while capturing the response", "Packet loss while capturing the response", .... ] } --- CHANGELOG.next.asciidoc | 1 + packetbeat/protos/http/http.go | 10 ++++++++-- packetbeat/protos/http/http_parser.go | 4 +++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 39328c57630..3e5f1c6e74b 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -210,6 +210,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Fix DHCPv4 dashboard that wouldn't load in Kibana. {issue}9850[9850] - Fixed a crash when using af_packet capture {pull}10477[10477] +- Prevent duplicate packet loss error messages in HTTP events. {pull}10709[10709] *Winlogbeat* diff --git a/packetbeat/protos/http/http.go b/packetbeat/protos/http/http.go index 0a270642f2b..da80883ac0b 100644 --- a/packetbeat/protos/http/http.go +++ b/packetbeat/protos/http/http.go @@ -189,9 +189,15 @@ func (http *httpPlugin) messageGap(s *stream, nbytes int) (ok bool, complete boo } if m.isRequest { - m.notes = append(m.notes, "Packet loss while capturing the request") + if !m.packetLossReq { + m.packetLossReq = true + m.notes = append(m.notes, "Packet loss while capturing the request") + } } else { - m.notes = append(m.notes, "Packet loss while capturing the response") + if !m.packetLossResp { + m.packetLossResp = true + m.notes = append(m.notes, "Packet loss while capturing the response") + } } if !m.hasContentLength && (bytes.Equal(m.connection, constClose) || (isVersion(m.version, 1, 0) && !bytes.Equal(m.connection, constKeepAlive))) { diff --git a/packetbeat/protos/http/http_parser.go b/packetbeat/protos/http/http_parser.go index 6ec8a53b6b1..8548d0ecf7c 100644 --- a/packetbeat/protos/http/http_parser.go +++ b/packetbeat/protos/http/http_parser.go @@ -73,7 +73,9 @@ type message struct { saveBody bool body []byte - notes []string + notes []string + packetLossReq bool + packetLossResp bool next *message } From 7542db1cb199a55ac9766ed6021a8dbaa81bc3bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?No=C3=A9mi=20V=C3=A1nyi?= Date: Wed, 13 Feb 2019 18:15:16 +0100 Subject: [PATCH 024/332] Follow up renaming of ML modules (#10723) Two renamings has happened which lead to the problem: * the Filebeat module apache2 has been renamed to apache * the ID of ML modules has been suffixed with _ecs As it is still a fragile solution, I have opened an issue for the ML team to add the possibility of listing all available modules with additional meta data: elastic/kibana#30934 --- filebeat/fileset/fileset.go | 2 +- filebeat/fileset/modules.go | 9 +++++++-- filebeat/tests/system/test_ml.py | 4 ++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/filebeat/fileset/fileset.go b/filebeat/fileset/fileset.go index 6b0dc51fed9..e4f50407ac2 100644 --- a/filebeat/fileset/fileset.go +++ b/filebeat/fileset/fileset.go @@ -472,7 +472,7 @@ func (fs *Fileset) GetMLConfigs() []mlimporter.MLConfig { var mlConfigs []mlimporter.MLConfig for _, ml := range fs.manifest.MachineLearning { mlConfigs = append(mlConfigs, mlimporter.MLConfig{ - ID: fmt.Sprintf("filebeat-%s-%s-%s", fs.mcfg.Module, fs.name, ml.Name), + ID: fmt.Sprintf("filebeat-%s-%s-%s_ecs", fs.mcfg.Module, fs.name, ml.Name), JobPath: filepath.Join(fs.modulePath, fs.name, ml.Job), DatafeedPath: filepath.Join(fs.modulePath, fs.name, ml.Datafeed), MinVersion: ml.MinVersion, diff --git a/filebeat/fileset/modules.go b/filebeat/fileset/modules.go index fabdf00ee03..b487461c655 100644 --- a/filebeat/fileset/modules.go +++ b/filebeat/fileset/modules.go @@ -36,8 +36,8 @@ import ( ) var availableMLModules = map[string]string{ - "apache2": "access", - "nginx": "access", + "apache": "access", + "nginx": "access", } type ModuleRegistry struct { @@ -427,6 +427,11 @@ func (reg *ModuleRegistry) SetupML(esClient PipelineLoader, kibanaClient *kibana } for module, fileset := range modules { + // XXX workaround to setup modules after changing the module IDs due to ECS migration + // the proper solution would be to query available modules, and setup the required ones + // related issue: https://github.com/elastic/kibana/issues/30934 + module = module + "_ecs" + prefix := fmt.Sprintf("filebeat-%s-%s-", module, fileset) err := mlimporter.SetupModule(kibanaClient, module, prefix) if err != nil { diff --git a/filebeat/tests/system/test_ml.py b/filebeat/tests/system/test_ml.py index e182318d8b3..0e3e11b679b 100644 --- a/filebeat/tests/system/test_ml.py +++ b/filebeat/tests/system/test_ml.py @@ -119,11 +119,11 @@ def _run_ml_test(self, modules_flag): bufsize=0) # Check result - self.wait_until(lambda: "filebeat-nginx-access-response_code" in + self.wait_until(lambda: "filebeat-nginx_ecs-access-status_code_rate_ecs" in (df["job_id"] for df in self.es.transport.perform_request( "GET", ml_anomaly_detectors_url)["jobs"]), max_timeout=60) - self.wait_until(lambda: "datafeed-filebeat-nginx-access-response_code" in + self.wait_until(lambda: "datafeed-filebeat-nginx_ecs-access-status_code_rate_ecs" in (df["datafeed_id"] for df in self.es.transport.perform_request("GET", ml_datafeeds_url)["datafeeds"])) beat.kill() From edc3d330ead5346b542d12ffbc51308379cee527 Mon Sep 17 00:00:00 2001 From: Mario Castro Date: Wed, 13 Feb 2019 18:18:35 +0100 Subject: [PATCH 025/332] Consul Metricbeat module with Agent Metricset (#8631) --- CHANGELOG.next.asciidoc | 1 + metricbeat/docker-compose.yml | 4 + metricbeat/docs/fields.asciidoc | 120 ++++++ metricbeat/docs/modules/consul.asciidoc | 53 +++ metricbeat/docs/modules/consul/agent.asciidoc | 23 ++ metricbeat/docs/modules_list.asciidoc | 3 + metricbeat/include/list.go | 2 + metricbeat/metricbeat.reference.yml | 9 + metricbeat/module/consul/_meta/Dockerfile | 9 + metricbeat/module/consul/_meta/config.yml | 7 + metricbeat/module/consul/_meta/docs.asciidoc | 15 + metricbeat/module/consul/_meta/env | 2 + metricbeat/module/consul/_meta/fields.yml | 9 + .../module/consul/agent/_meta/data.json | 50 +++ .../module/consul/agent/_meta/docs.asciidoc | 13 + .../module/consul/agent/_meta/fields.yml | 60 +++ metricbeat/module/consul/agent/agent.go | 93 +++++ .../consul/agent/agent_integration_test.go | 64 ++++ metricbeat/module/consul/agent/agent_test.go | 344 ++++++++++++++++++ metricbeat/module/consul/agent/data.go | 178 +++++++++ .../consul/agent/data_integration_test.go | 46 +++ .../module/consul/agent/input_format.go | 55 +++ metricbeat/module/consul/fields.go | 36 ++ metricbeat/module/consul/testing.go | 42 +++ metricbeat/modules.d/consul.yml.disabled | 10 + metricbeat/tests/system/test_consul.py | 61 ++++ x-pack/metricbeat/metricbeat.reference.yml | 9 + 27 files changed, 1318 insertions(+) create mode 100644 metricbeat/docs/modules/consul.asciidoc create mode 100644 metricbeat/docs/modules/consul/agent.asciidoc create mode 100644 metricbeat/module/consul/_meta/Dockerfile create mode 100644 metricbeat/module/consul/_meta/config.yml create mode 100644 metricbeat/module/consul/_meta/docs.asciidoc create mode 100644 metricbeat/module/consul/_meta/env create mode 100644 metricbeat/module/consul/_meta/fields.yml create mode 100644 metricbeat/module/consul/agent/_meta/data.json create mode 100644 metricbeat/module/consul/agent/_meta/docs.asciidoc create mode 100644 metricbeat/module/consul/agent/_meta/fields.yml create mode 100644 metricbeat/module/consul/agent/agent.go create mode 100644 metricbeat/module/consul/agent/agent_integration_test.go create mode 100644 metricbeat/module/consul/agent/agent_test.go create mode 100644 metricbeat/module/consul/agent/data.go create mode 100644 metricbeat/module/consul/agent/data_integration_test.go create mode 100644 metricbeat/module/consul/agent/input_format.go create mode 100644 metricbeat/module/consul/fields.go create mode 100644 metricbeat/module/consul/testing.go create mode 100644 metricbeat/modules.d/consul.yml.disabled create mode 100644 metricbeat/tests/system/test_consul.py diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 3e5f1c6e74b..3a7136a6305 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -326,6 +326,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Added 'server' Metricset to Zookeeper Metricbeat module {issue}8938[8938] {pull}10341[10341] - Release AWS module as GA. {pull}10345[10345] - Add overview dashboard to Zookeeper Metricbeat module {pull}10379[10379] +- Add Consul Metricbeat module with Agent Metricset {pull}8631[8631] *Packetbeat* diff --git a/metricbeat/docker-compose.yml b/metricbeat/docker-compose.yml index 2ac312a65a3..a2e7f60445f 100644 --- a/metricbeat/docker-compose.yml +++ b/metricbeat/docker-compose.yml @@ -14,6 +14,7 @@ services: - ./module/aerospike/_meta/env - ./module/apache/_meta/env - ./module/ceph/_meta/env + - ./module/consul/_meta/env - ./module/couchbase/_meta/env - ./module/couchdb/_meta/env - ./module/dropwizard/_meta/env @@ -58,6 +59,9 @@ services: ceph: build: ./module/ceph/_meta + consul: + build: ./module/consul/_meta + couchbase: build: ./module/couchbase/_meta diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index 4517a823200..42ba7d7799c 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -19,6 +19,7 @@ grouped in the following categories: * <> * <> * <> +* <> * <> * <> * <> @@ -2103,6 +2104,125 @@ required: True The document type. Always set to "doc". +-- + +[[exported-fields-consul]] +== consul fields + +Consul module + + + + +[float] +== agent fields + +Agent Metricset fetches metrics information from a Consul instance running as Agent + + + + +*`consul.agent.autopilot.healthy`*:: ++ +-- +type: boolean + +Overall health of the local server cluster + +-- + +[float] +== runtime fields + +Runtime related metrics + + + +*`consul.agent.runtime.sys.bytes`*:: ++ +-- +type: long + +Number of bytes of memory obtained from the OS. + +-- + +*`consul.agent.runtime.malloc_count`*:: ++ +-- +type: long + +Heap objects allocated + +-- + +*`consul.agent.runtime.heap_objects`*:: ++ +-- +type: long + +Objects allocated on the heap and is a general memory pressure indicator. This may burst from time to time but should return to a steady state value. + +-- + +*`consul.agent.runtime.goroutines`*:: ++ +-- +type: long + +Running goroutines and is a general load pressure indicator. This may burst from time to time but should return to a steady state value. + +-- + + +*`consul.agent.runtime.alloc.bytes`*:: ++ +-- +type: long + +Bytes allocated by the Consul process. + +-- + +[float] +== garbage_collector fields + +Garbage collector metrics + + +*`consul.agent.runtime.garbage_collector.runs`*:: ++ +-- +type: long + +Garbage collector total executions + +-- + +[float] +== pause fields + +Time that the garbage collector has paused the app + + + +*`consul.agent.runtime.garbage_collector.pause.current.ns`*:: ++ +-- +type: long + +Garbage collector pause time in nanoseconds + +-- + + +*`consul.agent.runtime.garbage_collector.pause.total.ns`*:: ++ +-- +type: long + +Nanoseconds consumed by stop-the-world garbage collection pauses since Consul started. + -- [[exported-fields-couchbase]] diff --git a/metricbeat/docs/modules/consul.asciidoc b/metricbeat/docs/modules/consul.asciidoc new file mode 100644 index 00000000000..fce72c1c997 --- /dev/null +++ b/metricbeat/docs/modules/consul.asciidoc @@ -0,0 +1,53 @@ +//// +This file is generated! See scripts/docs_collector.py +//// + +[[metricbeat-module-consul]] +== consul module + +beta[] + +This is the https://www.consul.io[Hashicorp's Consul] Metricbeat module. It is still in beta and under active development to add new Metricsets and introduce enhancements. + +[float] +== Compatibility + +The module is being tested with https://github.com/hashicorp/docker-consul/blob/9bd2aa7ecf2414b8712e055f2374699148e8941c/0.X/Dockerfile[1.4.2] version + +[float] +== Metricsets + +The following Metricset is included: + +=== `agent` + +`agent` Metricset fetches information from a Consul Agent in 'Client' mode. It fetches information about the health of the autopilot, runtime metrics and raft data. + + +[float] +=== Example configuration + +The consul module supports the standard configuration options that are described +in <>. Here is an example configuration: + +[source,yaml] +---- +metricbeat.modules: +- module: consul + metricsets: + - agent + enabled: true + period: 10s + hosts: ["localhost:8500"] + +---- + +[float] +=== Metricsets + +The following metricsets are available: + +* <> + +include::consul/agent.asciidoc[] + diff --git a/metricbeat/docs/modules/consul/agent.asciidoc b/metricbeat/docs/modules/consul/agent.asciidoc new file mode 100644 index 00000000000..5416da785fc --- /dev/null +++ b/metricbeat/docs/modules/consul/agent.asciidoc @@ -0,0 +1,23 @@ +//// +This file is generated! See scripts/docs_collector.py +//// + +[[metricbeat-metricset-consul-agent]] +=== consul agent metricset + +beta[] + +include::../../../module/consul/agent/_meta/docs.asciidoc[] + + +==== Fields + +For a description of each field in the metricset, see the +<> section. + +Here is an example document generated by this metricset: + +[source,json] +---- +include::../../../module/consul/agent/_meta/data.json[] +---- diff --git a/metricbeat/docs/modules_list.asciidoc b/metricbeat/docs/modules_list.asciidoc index bd96f6c3735..d3285354038 100644 --- a/metricbeat/docs/modules_list.asciidoc +++ b/metricbeat/docs/modules_list.asciidoc @@ -19,6 +19,8 @@ This file is generated! See scripts/docs_collector.py |<> |<> |<> +|<> beta[] |image:./images/icon-no.png[No prebuilt dashboards] | +.1+| .1+| |<> beta[] |<> |image:./images/icon-no.png[No prebuilt dashboards] | .3+| .3+| |<> |<> @@ -171,6 +173,7 @@ include::modules/aerospike.asciidoc[] include::modules/apache.asciidoc[] include::modules/aws.asciidoc[] include::modules/ceph.asciidoc[] +include::modules/consul.asciidoc[] include::modules/couchbase.asciidoc[] include::modules/couchdb.asciidoc[] include::modules/docker.asciidoc[] diff --git a/metricbeat/include/list.go b/metricbeat/include/list.go index be46965fc00..eee014afda3 100644 --- a/metricbeat/include/list.go +++ b/metricbeat/include/list.go @@ -38,6 +38,8 @@ import ( _ "github.com/elastic/beats/metricbeat/module/ceph/osd_df" _ "github.com/elastic/beats/metricbeat/module/ceph/osd_tree" _ "github.com/elastic/beats/metricbeat/module/ceph/pool_disk" + _ "github.com/elastic/beats/metricbeat/module/consul" + _ "github.com/elastic/beats/metricbeat/module/consul/agent" _ "github.com/elastic/beats/metricbeat/module/couchbase" _ "github.com/elastic/beats/metricbeat/module/couchbase/bucket" _ "github.com/elastic/beats/metricbeat/module/couchbase/cluster" diff --git a/metricbeat/metricbeat.reference.yml b/metricbeat/metricbeat.reference.yml index d6f0d0a79f7..3d844a437ad 100644 --- a/metricbeat/metricbeat.reference.yml +++ b/metricbeat/metricbeat.reference.yml @@ -154,6 +154,15 @@ metricbeat.modules: hosts: ["localhost:5000"] enabled: true +#------------------------------- consul Module ------------------------------- +- module: consul + metricsets: + - agent + enabled: true + period: 10s + hosts: ["localhost:8500"] + + #------------------------------ Couchbase Module ----------------------------- - module: couchbase metricsets: ["bucket", "cluster", "node"] diff --git a/metricbeat/module/consul/_meta/Dockerfile b/metricbeat/module/consul/_meta/Dockerfile new file mode 100644 index 00000000000..982e0dca81a --- /dev/null +++ b/metricbeat/module/consul/_meta/Dockerfile @@ -0,0 +1,9 @@ +FROM consul:1.4.2 + +ENV CONSUL_BIND_INTERFACE='eth0' + +EXPOSE 8500 + +# Use the same healthcheck as the Windows version of the image. +# https://github.com/Microsoft/mssql-docker/blob/a3020afeec9be1eb2d67645ac739438eb8f2c545/windows/mssql-server-windows/dockerfile#L31 +HEALTHCHECK --interval=1s --retries=90 CMD curl http://0.0.0.0:8500/v1/agent/metrics diff --git a/metricbeat/module/consul/_meta/config.yml b/metricbeat/module/consul/_meta/config.yml new file mode 100644 index 00000000000..0f071def28b --- /dev/null +++ b/metricbeat/module/consul/_meta/config.yml @@ -0,0 +1,7 @@ +- module: consul + metricsets: + - agent + enabled: true + period: 10s + hosts: ["localhost:8500"] + diff --git a/metricbeat/module/consul/_meta/docs.asciidoc b/metricbeat/module/consul/_meta/docs.asciidoc new file mode 100644 index 00000000000..4bd1eb510e7 --- /dev/null +++ b/metricbeat/module/consul/_meta/docs.asciidoc @@ -0,0 +1,15 @@ +This is the https://www.consul.io[Hashicorp's Consul] Metricbeat module. It is still in beta and under active development to add new Metricsets and introduce enhancements. + +[float] +== Compatibility + +The module is being tested with https://github.com/hashicorp/docker-consul/blob/9bd2aa7ecf2414b8712e055f2374699148e8941c/0.X/Dockerfile[1.4.2] version + +[float] +== Metricsets + +The following Metricset is included: + +=== `agent` + +`agent` Metricset fetches information from a Consul Agent in 'Client' mode. It fetches information about the health of the autopilot, runtime metrics and raft data. diff --git a/metricbeat/module/consul/_meta/env b/metricbeat/module/consul/_meta/env new file mode 100644 index 00000000000..211d9aa8769 --- /dev/null +++ b/metricbeat/module/consul/_meta/env @@ -0,0 +1,2 @@ +CONSUL_HOST=consul +CONSUL_PORT=8500 diff --git a/metricbeat/module/consul/_meta/fields.yml b/metricbeat/module/consul/_meta/fields.yml new file mode 100644 index 00000000000..c6a4d895613 --- /dev/null +++ b/metricbeat/module/consul/_meta/fields.yml @@ -0,0 +1,9 @@ +- key: consul + title: "consul" + description: > + Consul module + release: beta + fields: + - name: consul + type: group + fields: diff --git a/metricbeat/module/consul/agent/_meta/data.json b/metricbeat/module/consul/agent/_meta/data.json new file mode 100644 index 00000000000..f1e476c23fc --- /dev/null +++ b/metricbeat/module/consul/agent/_meta/data.json @@ -0,0 +1,50 @@ +{ + "@timestamp": "2017-10-12T08:05:34.853Z", + "agent": { + "hostname": "host.example.com", + "name": "host.example.com" + }, + "consul": { + "agent": { + "autopilot": { + "healthy": true + }, + "raft": { + "commit_time": { + "ms": 0.04560700058937073 + } + }, + "runtime": { + "alloc": { + "bytes": 6900784 + }, + "garbage_collector": { + "pause": { + "total": { + "ns": 99490250 + } + }, + "runs": 287 + }, + "goroutines": 77, + "heap_objects": 42590, + "malloc_count": 7087169, + "sys": { + "bytes": 74119416 + } + } + } + }, + "event": { + "dataset": "consul.agent", + "duration": 115000, + "module": "consul" + }, + "metricset": { + "name": "agent" + }, + "service": { + "address": "localhost:8500", + "type": "consul" + } +} \ No newline at end of file diff --git a/metricbeat/module/consul/agent/_meta/docs.asciidoc b/metricbeat/module/consul/agent/_meta/docs.asciidoc new file mode 100644 index 00000000000..483ead431fc --- /dev/null +++ b/metricbeat/module/consul/agent/_meta/docs.asciidoc @@ -0,0 +1,13 @@ +This is the 'agent' Metricset of the Hashicorp's Consul Metricbeat module. + +* *agent.autopilot.healthy*: Tracks the overall health of the local server cluster. If all servers are considered healthy by Autopilot, this will be set to 1. If any are unhealthy, this will be 0. +* *agent.raft.apply*: This metric gives the number of logs committed since the last interval. +* *agent.raft.commit_time.ms*: This tracks the average time in milliseconds it takes to commit a new entry to the transaction log of the leader +* *agent.runtime.alloc.bytes*: This measures the number of bytes allocated by the Consul process. +* *agent.runtime.garbage_collector.pause.current.ns*: Garbage collector pause time in nanoseconds +* *agent.runtime.garbage_collector.pause.total.ns*: Number of nanoseconds consumed by stop-the-world garbage collection pauses since Consul started. +* *agent.runtime.garbage_collector.runs*: Garbage collector total executions +* *agent.runtime.goroutines*: Number of running goroutines and is a general load pressure indicator. This may burst from time to time but should return to a steady state value. +* *agent.runtime.heap_objects*: This measures the number of objects allocated on the heap and is a general memory pressure indicator. This may burst from time to time but should return to a steady state value. +* *agent.runtime.malloc_count*: Heap objects allocated +* *agent.runtime.sys.bytes*: Total number of bytes of memory obtained from the OS. diff --git a/metricbeat/module/consul/agent/_meta/fields.yml b/metricbeat/module/consul/agent/_meta/fields.yml new file mode 100644 index 00000000000..bc95fffe4e5 --- /dev/null +++ b/metricbeat/module/consul/agent/_meta/fields.yml @@ -0,0 +1,60 @@ +- name: agent + type: group + release: beta + description: > + Agent Metricset fetches metrics information from a Consul instance running as Agent + fields: + - name: autopilot + type: group + fields: + - name: healthy + type: boolean + description: Overall health of the local server cluster + - name: runtime + type: group + description: Runtime related metrics + fields: + - name: sys + type: group + fields: + - name: bytes + type: long + description: Number of bytes of memory obtained from the OS. + - name: malloc_count + type: long + description: Heap objects allocated + - name: heap_objects + type: long + description: Objects allocated on the heap and is a general memory pressure indicator. This may burst from time to time but should return to a steady state value. + - name: goroutines + type: long + description: Running goroutines and is a general load pressure indicator. This may burst from time to time but should return to a steady state value. + - name: alloc + type: group + fields: + - name: bytes + type: long + description: Bytes allocated by the Consul process. + - name: garbage_collector + type: group + description: Garbage collector metrics + fields: + - name: runs + type: long + description: Garbage collector total executions + - name: pause + type: group + description: Time that the garbage collector has paused the app + fields: + - name: current + type: group + fields: + - name: ns + type: long + description: Garbage collector pause time in nanoseconds + - name: total + type: group + fields: + - name: ns + type: long + description: Nanoseconds consumed by stop-the-world garbage collection pauses since Consul started. diff --git a/metricbeat/module/consul/agent/agent.go b/metricbeat/module/consul/agent/agent.go new file mode 100644 index 00000000000..aa353ada434 --- /dev/null +++ b/metricbeat/module/consul/agent/agent.go @@ -0,0 +1,93 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package agent + +import ( + "github.com/elastic/beats/libbeat/common/cfgwarn" + "github.com/elastic/beats/libbeat/logp" + "github.com/elastic/beats/metricbeat/helper" + "github.com/elastic/beats/metricbeat/mb" + "github.com/elastic/beats/metricbeat/mb/parse" +) + +var ( + hostParser = parse.URLHostParserBuilder{ + DefaultScheme: "http", + DefaultPath: "/v1/agent/metrics", + }.Build() +) + +// init registers the MetricSet with the central registry as soon as the program +// starts. The New function will be called later to instantiate an instance of +// the MetricSet for each host defined in the module's configuration. After the +// MetricSet has been created then Fetch will begin to be called periodically. +func init() { + mb.Registry.MustAddMetricSet("consul", "agent", New, + mb.WithHostParser(hostParser), + mb.DefaultMetricSet()) +} + +// MetricSet holds any configuration or state information. It must implement +// the mb.MetricSet interface. And this is best achieved by embedding +// mb.BaseMetricSet because it implements all of the required mb.MetricSet +// interface methods except for Fetch. +type MetricSet struct { + mb.BaseMetricSet + http *helper.HTTP +} + +// New creates a new instance of the MetricSet. New is responsible for unpacking +// any MetricSet specific configuration options if there are any. +func New(base mb.BaseMetricSet) (mb.MetricSet, error) { + cfgwarn.Beta("The consul agent metricset is beta.") + + http, err := helper.NewHTTP(base) + if err != nil { + return nil, err + } + + return &MetricSet{ + BaseMetricSet: base, + http: http, + }, nil +} + +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(report mb.ReporterV2) { + content, err := m.http.FetchContent() + if err != nil { + logp.Error(err) + report.Error(err) + return + } + + mappings, err := eventMapping(content) + if err != nil { + logp.Error(err) + report.Error(err) + return + } + + for _, m := range mappings { + report.Event(mb.Event{ + MetricSetFields: m, + }) + } +} diff --git a/metricbeat/module/consul/agent/agent_integration_test.go b/metricbeat/module/consul/agent/agent_integration_test.go new file mode 100644 index 00000000000..84d9181ef6f --- /dev/null +++ b/metricbeat/module/consul/agent/agent_integration_test.go @@ -0,0 +1,64 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +// +build integration + +package agent + +import ( + "testing" + + "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/tests/compose" + "github.com/elastic/beats/metricbeat/module/consul" + + "github.com/elastic/beats/libbeat/logp" + + "github.com/stretchr/testify/assert" + + mbtest "github.com/elastic/beats/metricbeat/mb/testing" +) + +func TestFetch(t *testing.T) { + logp.TestingSetup() + + compose.EnsureUp(t, "consul") + + f := mbtest.NewReportingMetricSetV2(t, consul.GetConfig([]string{"agent"})) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) + } + assert.NotEmpty(t, events) + + t.Logf("Found '%d' events", len(events)) + + for _, event := range events { + t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) + metricsetFields := event.MetricSetFields + + // Check runtime value + runtime, ok := metricsetFields["runtime"].(common.MapStr) + assert.True(t, ok) + + //Check heapObjects + heapObjects, ok := runtime["heap_objects"].(float64) + assert.True(t, ok) + assert.True(t, heapObjects > float64(0)) + + } +} diff --git a/metricbeat/module/consul/agent/agent_test.go b/metricbeat/module/consul/agent/agent_test.go new file mode 100644 index 00000000000..523c2449b0f --- /dev/null +++ b/metricbeat/module/consul/agent/agent_test.go @@ -0,0 +1,344 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +// +build integration + +package agent + +import ( + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/elastic/beats/libbeat/common" +) + +var jsonExample = `{ + "Timestamp": "2019-02-01 11:08:50 +0000 UTC", + "Gauges": [ + { + "Name": "consul.autopilot.failure_tolerance", + "Value": 0, + "Labels": {} + }, + { + "Name": "consul.autopilot.healthy", + "Value": 1, + "Labels": {} + }, + { + "Name": "consul.runtime.alloc_bytes", + "Value": 5034304, + "Labels": {} + }, + { + "Name": "consul.runtime.free_count", + "Value": 1202914, + "Labels": {} + }, + { + "Name": "consul.runtime.heap_objects", + "Value": 35836, + "Labels": {"service":"service1"} + }, + { + "Name": "consul.runtime.malloc_count", + "Value": 1238750, + "Labels": {} + }, + { + "Name": "consul.runtime.num_goroutines", + "Value": 76, + "Labels": {} + }, + { + "Name": "consul.runtime.sys_bytes", + "Value": 73070840, + "Labels": {} + }, + { + "Name": "consul.runtime.total_gc_pause_ns", + "Value": 7107735, + "Labels": {} + }, + { + "Name": "consul.runtime.total_gc_runs", + "Value": 42, + "Labels": {} + }, + { + "Name": "consul.session_ttl.active", + "Value": 0, + "Labels": {} + } + ], + "Points": [], + "Counters": [ + { + "Name": "consul.raft.apply", + "Count": 1, + "Rate": 0.1, + "Sum": 1, + "Min": 1, + "Max": 1, + "Mean": 1, + "Stddev": 0, + "Labels": {} + }, + { + "Name": "consul.rpc.query", + "Count": 2, + "Rate": 0.2, + "Sum": 2, + "Min": 1, + "Max": 1, + "Mean": 1, + "Stddev": 0, + "Labels": {} + }, + { + "Name": "consul.rpc.request", + "Count": 5, + "Rate": 0.5, + "Sum": 5, + "Min": 1, + "Max": 1, + "Mean": 1, + "Stddev": 0, + "Labels": {} + } + ], + "Samples": [ + { + "Name": "consul.fsm.coordinate.batch-update", + "Count": 1, + "Rate": 0.003936899825930595, + "Sum": 0.039368998259305954, + "Min": 0.039368998259305954, + "Max": 0.039368998259305954, + "Mean": 0.039368998259305954, + "Stddev": 0, + "Labels": {} + }, + { + "Name": "consul.http.GET.v1.agent.metrics", + "Count": 10, + "Rate": 0.2068565994501114, + "Sum": 2.068565994501114, + "Min": 0.14361299574375153, + "Max": 0.46759501099586487, + "Mean": 0.2068565994501114, + "Stddev": 0.09421784218829098, + "Labels": {} + }, + { + "Name": "consul.memberlist.gossip", + "Count": 200, + "Rate": 0.2729187995195389, + "Sum": 2.729187995195389, + "Min": 0.0022559999488294125, + "Max": 0.10744299739599228, + "Mean": 0.013645939975976944, + "Stddev": 0.013672823772901079, + "Labels": {} + }, + { + "Name": "consul.raft.commitTime", + "Count": 1, + "Rate": 0.00219310000538826, + "Sum": 0.0219310000538826, + "Min": 0.0219310000538826, + "Max": 0.0219310000538826, + "Mean": 0.0219310000538826, + "Stddev": 0, + "Labels": {} + }, + { + "Name": "consul.raft.fsm.apply", + "Count": 1, + "Rate": 0.005605699867010117, + "Sum": 0.056056998670101166, + "Min": 0.056056998670101166, + "Max": 0.056056998670101166, + "Mean": 0.056056998670101166, + "Stddev": 0, + "Labels": {} + }, + { + "Name": "consul.raft.leader.dispatchLog", + "Count": 1, + "Rate": 0.001807899959385395, + "Sum": 0.01807899959385395, + "Min": 0.01807899959385395, + "Max": 0.01807899959385395, + "Mean": 0.01807899959385395, + "Stddev": 0, + "Labels": {} + }, + { + "Name": "consul.runtime.gc_pause_ns", + "Count": 1, + "Rate": 12140.1, + "Sum": 121401, + "Min": 121401, + "Max": 121401, + "Mean": 121401, + "Stddev": 0, + "Labels": {} + }, + { + "Name": "consul.serf.queue.Event", + "Count": 2, + "Rate": 0.1, + "Sum": 1, + "Min": 0, + "Max": 1, + "Mean": 0.5, + "Stddev": 0.7071067811865476, + "Labels": {} + }, + { + "Name": "consul.serf.queue.Intent", + "Count": 2, + "Rate": 0, + "Sum": 0, + "Min": 0, + "Max": 0, + "Mean": 0, + "Stddev": 0, + "Labels": {} + }, + { + "Name": "consul.serf.queue.Query", + "Count": 2, + "Rate": 0, + "Sum": 0, + "Min": 0, + "Max": 0, + "Mean": 0, + "Stddev": 0, + "Labels": {} + } + ] +}` + +func TestEventMapping(t *testing.T) { + byt := []byte(jsonExample) + + events, err := eventMapping(byt) + if err != nil { + t.Fatal(err) + } + + assert.Equal(t, 2, len(events)) + + //2 events should be here, one with runtime.heap_objects only and one with everything else + heapObjectsFound := false + var heapObjects interface{} + + goroutinesFound := false + var goroutines interface{} + + for _, event := range events { + runtimeI, ok := event["runtime"] + assert.True(t, ok) + + runtime, ok := runtimeI.(common.MapStr) + assert.True(t, ok) + + //do not overwrite if heapObjectsFound has already been set to true + if !heapObjectsFound { + heapObjects, heapObjectsFound = runtime["heap_objects"] + if heapObjectsFound { + heapObjectsFloat64, ok := heapObjects.(float64) + assert.True(t, ok) + + assert.True(t, heapObjectsFloat64 > 0) + } + } + + //do not overwrite if goroutinesFound has already been set to true + if !goroutinesFound { + goroutines, goroutinesFound = runtime["goroutines"] + if goroutinesFound { + goroutinesFloat64, ok := goroutines.(float64) + assert.True(t, ok) + + assert.True(t, goroutinesFloat64 > 0) + } + } + } + + assert.True(t, goroutinesFound) + assert.True(t, heapObjectsFound) +} + +func TestUniqueKeyForLabelMap(t *testing.T) { + input := []map[string]string{ + { + "a": "b", + "g": "h", + "c": "d", + "e": "f", + "i": "j", + }, + { + "a": "b", + "e": "f", + "c": "d", + "g": "h", + "i": "j", + }, + { + "c": "d", + "a": "b", + "g": "h", + "e": "f", + "i": "j", + }, + { + "c": "d", + "e": "f", + "i": "j", + "a": "b", + "g": "h", + }, + { + "e": "f", + "a": "b", + "c": "d", + "g": "h", + "i": "j", + }, + { + "e": "f", + "i": "j", + "c": "d", + "a": "b", + "g": "h", + }, + } + + keys := make([]string, 0) + for _, i := range input { + keys = append(keys, uniqueKeyForLabelMap(i)) + } + + for i := 1; i < len(keys); i++ { + assert.True(t, keys[i-1] == keys[i]) + } +} diff --git a/metricbeat/module/consul/agent/data.go b/metricbeat/module/consul/agent/data.go new file mode 100644 index 00000000000..022e066b861 --- /dev/null +++ b/metricbeat/module/consul/agent/data.go @@ -0,0 +1,178 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package agent + +import ( + "encoding/json" + "fmt" + + "github.com/elastic/beats/libbeat/common" +) + +type valueConverter interface { + Convert(i interface{}) interface{} +} + +type keyRenamer interface { + Rename() string +} + +type inputConverter interface { + valueConverter + keyRenamer +} + +type valueHelper struct { + renamedTo string + unit string +} + +func (v *valueHelper) Rename() string { + if v.unit == "" { + return v.renamedTo + } + + return fmt.Sprintf("%s.%s", v.renamedTo, v.unit) +} + +type boolValue struct { + valueHelper +} + +func (v *boolValue) Convert(i interface{}) interface{} { + value, ok := i.(float64) + if !ok { + return nil + } + + return value == 1 +} + +type noConversionValue struct { + valueHelper +} + +func (v *noConversionValue) Convert(i interface{}) interface{} { + return i +} + +var ( + allowedValues = map[string]inputConverter{ + "consul.autopilot.healthy": &boolValue{valueHelper{renamedTo: "autopilot.healthy"}}, + "consul.runtime.alloc_bytes": &noConversionValue{valueHelper{renamedTo: "runtime.alloc", unit: "bytes"}}, + "consul.runtime.total_gc_pause_ns": &noConversionValue{valueHelper{renamedTo: "runtime.garbage_collector.pause.total", unit: "ns"}}, + "consul.runtime.gc_pause_ns": &noConversionValue{valueHelper{renamedTo: "runtime.garbage_collector.pause.current", unit: "ns"}}, + "consul.runtime.total_gc_runs": &noConversionValue{valueHelper{renamedTo: "runtime.garbage_collector.runs"}}, + "consul.runtime.num_goroutines": &noConversionValue{valueHelper{renamedTo: "runtime.goroutines"}}, + "consul.runtime.heap_objects": &noConversionValue{valueHelper{renamedTo: "runtime.heap_objects"}}, + "consul.runtime.sys_bytes": &noConversionValue{valueHelper{renamedTo: "runtime.sys", unit: "bytes"}}, + "consul.runtime.malloc_count": &noConversionValue{valueHelper{renamedTo: "runtime.malloc_count"}}, + } + allowedDetailedValues = map[string]inputConverter{} +) + +func eventMapping(content []byte) ([]common.MapStr, error) { + var agent agent + + if err := json.Unmarshal(content, &agent); err != nil { + return nil, err + } + + labels := map[string]common.MapStr{} + + for _, gauge := range agent.Gauges { + metricApply(labels, gauge.consulMetric, gauge.Value) + } + + for _, point := range agent.Points { + metricApply(labels, point.consulMetric, point.Value) + } + + for _, counter := range agent.Counters { + metricApply(labels, counter.consulMetric, consulDetailedValue(counter)) + } + + for _, sample := range agent.Samples { + metricApply(labels, sample.consulMetric, consulDetailedValue(sample)) + } + + data := make([]common.MapStr, 0) + for _, v := range labels { + data = append(data, v) + } + + return data, nil +} + +func metricApply(labels map[string]common.MapStr, m consulMetric, v interface{}) { + prettyName := prettyName(m.Name) + if prettyName == nil { + //omitting unwanted metric + return + } + + labelsCombination := uniqueKeyForLabelMap(m.Labels) + + temp := common.MapStr{} + if len(m.Labels) != 0 { + temp.Put("labels", m.Labels) + } + + var value interface{} + switch v := v.(type) { + case consulDetailedValue: + value = v.Mean + default: + value = v + } + + if _, ok := labels[labelsCombination]; !ok { + temp.Put(prettyName.Rename(), prettyName.Convert(value)) + labels[labelsCombination] = temp + } else { + labels[labelsCombination].Put(prettyName.Rename(), prettyName.Convert(value)) + } +} + +// prettyName is used to translate a name in Consul metrics to a metric name that follows ES naming conventions +// https://www.elastic.co/guide/en/beats/devguide/current/event-conventions.html +func prettyName(s string) inputConverter { + for k, v := range allowedValues { + if s == k { + return v + } + } + + for k, v := range allowedDetailedValues { + if s == k { + return v + } + } + + return nil +} + +// Create a simple unique value for a map of labels without using a hash function +func uniqueKeyForLabelMap(m map[string]string) string { + mm := common.MapStr{} + for k, v := range m { + mm[k] = v + } + + return mm.String() +} diff --git a/metricbeat/module/consul/agent/data_integration_test.go b/metricbeat/module/consul/agent/data_integration_test.go new file mode 100644 index 00000000000..bffe36098be --- /dev/null +++ b/metricbeat/module/consul/agent/data_integration_test.go @@ -0,0 +1,46 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +// +build integration + +package agent + +import ( + "testing" + + "github.com/elastic/beats/metricbeat/module/consul" + + _ "github.com/denisenkom/go-mssqldb" + "github.com/stretchr/testify/assert" + + mbtest "github.com/elastic/beats/metricbeat/mb/testing" +) + +func TestData(t *testing.T) { + t.Skip("Skipping `data.json` generation test") + + f := mbtest.NewReportingMetricSetV2(t, consul.GetConfig([]string{"agent"})) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) + } + assert.NotEmpty(t, events) + + if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { + t.Fatal("write", err) + } +} diff --git a/metricbeat/module/consul/agent/input_format.go b/metricbeat/module/consul/agent/input_format.go new file mode 100644 index 00000000000..68e31034b26 --- /dev/null +++ b/metricbeat/module/consul/agent/input_format.go @@ -0,0 +1,55 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package agent + +type consulMetric struct { + Name string `json:"Name"` + Labels map[string]string `json:"Labels"` +} + +type gauge consulSimpleValue + +type counter consulDetailedValue + +type sample consulDetailedValue + +type consulSimpleValue struct { + consulMetric + Value float64 `json:"Value"` +} + +type consulDetailedValue struct { + consulMetric + Count int `json:"Count"` + Rate float64 `json:"Rate"` + Sum float64 `json:"Sum"` + Min float64 `json:"Min"` + Max float64 `json:"Max"` + Mean float64 `json:"Mean"` + Stddev float64 `json:"Stddev"` +} + +type point consulSimpleValue + +type agent struct { + Timestamp string `json:"Timestamp"` + Gauges []gauge `json:"Gauges"` + Points []point `json:"Points"` + Counters []counter `json:"Counters"` + Samples []sample `json:"Samples"` +} diff --git a/metricbeat/module/consul/fields.go b/metricbeat/module/consul/fields.go new file mode 100644 index 00000000000..5bd61822219 --- /dev/null +++ b/metricbeat/module/consul/fields.go @@ -0,0 +1,36 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package consul + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "consul", asset.ModuleFieldsPri, AssetConsul); err != nil { + panic(err) + } +} + +// AssetConsul returns asset data. +// This is the base64 encoded gzipped contents of ../metricbeat/module/consul. +func AssetConsul() string { + return "eJzcVsFu2zAMvecriN7TD8hhwLbDdlkLdL0XtMzY2mTRIKlu/vtBdtzYiZ2m2IAN0yWBJD6+90gT2sJ36nbgOGoKGwDzFmgHN8PGzQagJHXiW/Mcd/BuAwDwsT+EhssUaAMgFAiVdlCQ4QZg7ymUuuvvbiFiQ5MMeVnX0g4q4dQedqYh0zCsKNrL7lJkXqcExrXAfVzvMzB8IRPvlAz2ZK4mhWbYAR/3LA3mUNgLN4CjbB/VMDoCSTH6WAHqgDbBP5Uzk5SMWx/YZqdr0tbQpog1YbC6OzsfMQvmQBgXzmcG3T+TYAgHOOA9WE0Q2GEAJXkmAReSGsmiLknRfENXq5rlfhiCcyXRqBzL8EYjtDuNuEzhEuYUt+iMlpCP6IFjtXJhpvMuNQVJ9rbHzH8aalg64MLQRyqHbsvO33+9XVXaYAjsnhyneNpHr5KaEfpM2AIX38iZQg+a/b/Uau3T4fpv5b0/TQkce9U5A2AswSsgVBRzU44mtUKqSQh8LL1DY7mFx9orNNhBkUTtYF/uJePht0gGWnMKJQhZkphPENQIyw7U0AieMSRat7ti4WQ+LnbB9aIfDhPjCHeuNDCWf01nX41//BP60H84x74pur5vDtO5FXakeqGUKAVW9OQ4BHLG8ma5MzafBjh4gVsZXdf6JCn+GZvOiRkbBqCf5FK+spxm5NFi0tNZfp09Z0we+yat0fo6VWe8atQhXdlfwHYN9ZJ/U+4uidDiXLxewTX5pjlXqzZPeaF643qlir1TwwfvI0SMrOQ4luv5R4p9/f8HU+6Oood3ZTOMATVut1bT9gdLKE87Lb/kevMU1Of322FiqKEYlbebXwEAAP//P1vjFg==" +} diff --git a/metricbeat/module/consul/testing.go b/metricbeat/module/consul/testing.go new file mode 100644 index 00000000000..135d0292129 --- /dev/null +++ b/metricbeat/module/consul/testing.go @@ -0,0 +1,42 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package consul + +import ( + "fmt" + "os" +) + +//GetConfig returns a config object specific for a Consul module and a provided Metricset in 'ms' +func GetConfig(ms []string) map[string]interface{} { + return map[string]interface{}{ + "module": "consul", + "metricsets": ms, + "hosts": []string{fmt.Sprintf("%s:%s", EnvOr("CONSUL_HOST", "localhost"), EnvOr("CONSUL_PORT", "8500"))}, + } +} + +// EnvOr returns the value of the specified environment variable if it is +// non-empty. Otherwise it return def. +func EnvOr(name, def string) string { + s := os.Getenv(name) + if s == "" { + return def + } + return s +} diff --git a/metricbeat/modules.d/consul.yml.disabled b/metricbeat/modules.d/consul.yml.disabled new file mode 100644 index 00000000000..d9b9dc5085d --- /dev/null +++ b/metricbeat/modules.d/consul.yml.disabled @@ -0,0 +1,10 @@ +# Module: consul +# Docs: https://www.elastic.co/guide/en/beats/metricbeat/master/metricbeat-module-consul.html + +- module: consul + metricsets: + - agent + enabled: true + period: 10s + hosts: ["localhost:8500"] + diff --git a/metricbeat/tests/system/test_consul.py b/metricbeat/tests/system/test_consul.py new file mode 100644 index 00000000000..374ec6b8fe1 --- /dev/null +++ b/metricbeat/tests/system/test_consul.py @@ -0,0 +1,61 @@ +import os +import metricbeat +import unittest +from nose.plugins.attrib import attr + +CONSUL_FIELDS = metricbeat.COMMON_FIELDS + ["consul"] + +# raft fields not included here as it's not consistently returned by Consul +AGENT_FIELDS = [ + "runtime.garbage_collector.pause.current.ns", + "runtime.garbage_collector.pause.total.ns", + "runtime.garbage_collector.runs", + "runtime.alloc.bytes", + "runtime.heap_objects", + "runtime.malloc_count", + "runtime.goroutines", + "runtime.sys.bytes", +] + + +class ConsulAgentTest(metricbeat.BaseTest): + + COMPOSE_SERVICES = ['consul'] + + @unittest.skipUnless(metricbeat.INTEGRATION_TESTS, "integration test") + @attr('integration') + def test_output(self): + """ + Consul agent module outputs an event. + """ + self.render_config_template(modules=[{ + "name": "consul", + "metricsets": ["agent"], + "hosts": self.get_hosts(), + "period": "10s" + }]) + proc = self.start_beat() + self.wait_until(lambda: self.output_lines() > 0, max_timeout=30) + proc.check_kill_and_wait() + self.assert_no_logged_warnings() + + output = self.read_output_json() + self.assertEqual(len(output), 1) + evt = output[0] + + self.assertItemsEqual(self.de_dot(CONSUL_FIELDS), evt.keys()) + consul_agent = evt["consul"]["agent"] + + consul_agent.pop("raft", None) + consul_agent.pop("autopilot", None) + + print(consul_agent) + self.assertItemsEqual(self.de_dot(AGENT_FIELDS), consul_agent.keys()) + + assert(consul_agent["runtime"]["heap_objects"] > 0) + + self.assert_fields_are_documented(evt) + + def get_hosts(self): + return [os.getenv('CONSUL_HOST', 'localhost') + ':' + + os.getenv('CONSUL_PORT', '8500')] diff --git a/x-pack/metricbeat/metricbeat.reference.yml b/x-pack/metricbeat/metricbeat.reference.yml index 6eed891a52a..68362dd1147 100644 --- a/x-pack/metricbeat/metricbeat.reference.yml +++ b/x-pack/metricbeat/metricbeat.reference.yml @@ -163,6 +163,15 @@ metricbeat.modules: hosts: ["localhost:5000"] enabled: true +#-------------------------------- Consul Module -------------------------------- +- module: consul + metricsets: + - agent + enabled: true + period: 10s + hosts: ["localhost:8500"] + + #------------------------------ Couchbase Module ------------------------------ - module: couchbase metricsets: ["bucket", "cluster", "node"] From 1dc58e08ed2065d56f9e55496a73a80ba054fbad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?No=C3=A9mi=20V=C3=A1nyi?= Date: Thu, 14 Feb 2019 13:20:18 +0100 Subject: [PATCH 026/332] Fix waiting for new events (#10593) * Adding more syscalls to the whitelist in `libbeat` I have removed the seccomp policy of `journalbeat`. Four new syscalls has been added to the common policy instead: `fstatfs`, `getrlimit`, `ppoll` and `splice`. * Eliminate possible deadlock when closing the client * Previously, `journalbeat` was unable to read new entries from the journal after it has been started. Now it is fixed, and the reader code is much simpler now. * updated vendored `github.com/coreos/go-systemd/sdjournal` to latest release (no changes) --- CHANGELOG.next.asciidoc | 2 + NOTICE.txt | 4 +- journalbeat/include/seccomp_linux_386.go | 122 ----------------- journalbeat/include/seccomp_linux_amd64.go | 135 ------------------- journalbeat/input/input.go | 2 +- journalbeat/reader/journal.go | 120 ++++++----------- libbeat/common/seccomp/policy_linux_amd64.go | 4 + vendor/vendor.json | 8 +- 8 files changed, 56 insertions(+), 341 deletions(-) delete mode 100644 journalbeat/include/seccomp_linux_386.go delete mode 100644 journalbeat/include/seccomp_linux_amd64.go diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 3a7136a6305..fada3441035 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -357,4 +357,6 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d ==== Known Issue +*Journalbeat* +- Journalbeat requires at least systemd v233 in order to follow entries after journal changes (rotation, vacuum). diff --git a/NOTICE.txt b/NOTICE.txt index 07145abc574..56fa8db63e2 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -241,8 +241,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------- Dependency: github.com/coreos/go-systemd -Version: v17 -Revision: 39ca1b05acc7ad1220e09f133283b8859a8b71ab +Version: v18 +Revision: 9002847aa1425fb6ac49077c0a630b3b67e0fbfd License type (autodetected): Apache-2.0 ./vendor/github.com/coreos/go-systemd/LICENSE: -------------------------------------------------------------------- diff --git a/journalbeat/include/seccomp_linux_386.go b/journalbeat/include/seccomp_linux_386.go deleted file mode 100644 index a22b1e2e4fd..00000000000 --- a/journalbeat/include/seccomp_linux_386.go +++ /dev/null @@ -1,122 +0,0 @@ -// Licensed to Elasticsearch B.V. under one or more contributor -// license agreements. See the NOTICE file distributed with -// this work for additional information regarding copyright -// ownership. Elasticsearch B.V. licenses this file to you under -// the Apache License, Version 2.0 (the "License"); you may -// not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -// Code generated by seccomp-profiler - DO NOT EDIT. - -// +build linux,386 - -package include - -import ( - "github.com/elastic/go-seccomp-bpf" - - beat "github.com/elastic/beats/libbeat/common/seccomp" -) - -func init() { - beat.MustRegisterPolicy(&seccomp.Policy{ - DefaultAction: seccomp.ActionErrno, - Syscalls: []seccomp.SyscallGroup{ - { - Action: seccomp.ActionAllow, - Names: []string{ - "_llseek", - "access", - "brk", - "clock_gettime", - "clone", - "close", - "dup", - "dup2", - "epoll_create", - "epoll_create1", - "epoll_ctl", - "epoll_wait", - "exit", - "exit_group", - "fchdir", - "fchmod", - "fchown32", - "fcntl", - "fcntl64", - "fdatasync", - "flock", - "fstat64", - "fsync", - "ftruncate64", - "futex", - "getcwd", - "getdents", - "getdents64", - "getpid", - "getppid", - "getrandom", - "getrlimit", - "getrusage", - "gettid", - "gettimeofday", - "ioctl", - "kill", - "lstat64", - "madvise", - "mincore", - "mkdirat", - "mmap2", - "mprotect", - "munmap", - "nanosleep", - "open", - "openat", - "pipe", - "pipe2", - "poll", - "pread64", - "prlimit64", - "pwrite64", - "read", - "readlink", - "readlinkat", - "rename", - "renameat", - "rt_sigaction", - "rt_sigprocmask", - "rt_sigreturn", - "sched_getaffinity", - "sched_yield", - "sendfile64", - "set_robust_list", - "set_thread_area", - "setitimer", - "sigaltstack", - "socketcall", - "splice", - "stat", - "stat64", - "tgkill", - "time", - "tkill", - "uname", - "unlink", - "unlinkat", - "wait4", - "write", - "writev", - }, - }, - }, - }) -} diff --git a/journalbeat/include/seccomp_linux_amd64.go b/journalbeat/include/seccomp_linux_amd64.go deleted file mode 100644 index 683d3d576c1..00000000000 --- a/journalbeat/include/seccomp_linux_amd64.go +++ /dev/null @@ -1,135 +0,0 @@ -// Licensed to Elasticsearch B.V. under one or more contributor -// license agreements. See the NOTICE file distributed with -// this work for additional information regarding copyright -// ownership. Elasticsearch B.V. licenses this file to you under -// the Apache License, Version 2.0 (the "License"); you may -// not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -// Code generated by seccomp-profiler - DO NOT EDIT. - -// +build linux,amd64 - -package include - -import ( - "github.com/elastic/go-seccomp-bpf" - - beat "github.com/elastic/beats/libbeat/common/seccomp" -) - -func init() { - beat.MustRegisterPolicy(&seccomp.Policy{ - DefaultAction: seccomp.ActionErrno, - Syscalls: []seccomp.SyscallGroup{ - { - Action: seccomp.ActionAllow, - Names: []string{ - "accept", - "accept4", - "access", - "arch_prctl", - "bind", - "clock_gettime", - "clone", - "close", - "connect", - "dup", - "dup2", - "epoll_create", - "epoll_create1", - "epoll_ctl", - "epoll_pwait", - "exit", - "exit_group", - "fchdir", - "fchmod", - "fchown", - "fcntl", - "fdatasync", - "flock", - "fstat", - "fsync", - "ftruncate", - "futex", - "getcwd", - "getdents", - "getdents64", - "getpeername", - "getpid", - "getppid", - "getrandom", - "getrlimit", - "getrusage", - "getsockname", - "getsockopt", - "gettid", - "gettimeofday", - "ioctl", - "kill", - "listen", - "lseek", - "lstat", - "madvise", - "mincore", - "mkdirat", - "mmap", - "mprotect", - "munmap", - "nanosleep", - "newfstatat", - "open", - "openat", - "pipe", - "pipe2", - "poll", - "pread64", - "pwrite64", - "read", - "readlink", - "readlinkat", - "recvfrom", - "recvmmsg", - "recvmsg", - "rename", - "renameat", - "rt_sigaction", - "rt_sigprocmask", - "rt_sigreturn", - "sched_getaffinity", - "sched_yield", - "sendfile", - "sendmmsg", - "sendmsg", - "sendto", - "set_robust_list", - "setitimer", - "setsockopt", - "shutdown", - "sigaltstack", - "socket", - "splice", - "stat", - "tgkill", - "time", - "tkill", - "uname", - "unlink", - "unlinkat", - "wait4", - "write", - "writev", - }, - }, - }, - }) -} diff --git a/journalbeat/input/input.go b/journalbeat/input/input.go index b59d475316a..70d9bcb6874 100644 --- a/journalbeat/input/input.go +++ b/journalbeat/input/input.go @@ -189,10 +189,10 @@ func (i *Input) publishAll() { // Stop stops all readers of the input. func (i *Input) Stop() { - i.client.Close() for _, r := range i.readers { r.Close() } + i.client.Close() } // Wait waits until all readers are done. diff --git a/journalbeat/reader/journal.go b/journalbeat/reader/journal.go index 482aaa83efb..fac94611020 100644 --- a/journalbeat/reader/journal.go +++ b/journalbeat/reader/journal.go @@ -42,12 +42,11 @@ import ( // Reader reads entries from journal(s). type Reader struct { - journal *sdjournal.Journal - config Config - done chan struct{} - logger *logp.Logger - backoff backoff.Backoff - changesChan chan int + journal *sdjournal.Journal + config Config + done chan struct{} + logger *logp.Logger + backoff backoff.Backoff } // New creates a new journal reader and moves the FP to the configured position. @@ -97,21 +96,16 @@ func newReader(logger *logp.Logger, done chan struct{}, c Config, journal *sdjou } r := &Reader{ - journal: journal, - config: c, - done: done, - logger: logger, - backoff: backoff.NewExpBackoff(done, c.Backoff, c.MaxBackoff), - changesChan: make(chan int), + journal: journal, + config: c, + done: done, + logger: logger, + backoff: backoff.NewExpBackoff(done, c.Backoff, c.MaxBackoff), } r.seek(state.Cursor) instance.AddJournalToMonitor(c.Path, journal) - // waiting for journal changes are done in a separate gorountine - // when the reader is closed, it is stopped - go r.waitForChange() - return r, nil } @@ -188,84 +182,57 @@ func (r *Reader) seek(cursor string) { // Next waits until a new event shows up and returns it. // It blocks until an event is returned or an error occurs. func (r *Reader) Next() (*beat.Event, error) { - event, err := r.readEvent() - if err != nil { - return nil, err - } - if event != nil { - return event, nil - } - - return r.waitUntilNewEventOrError() -} - -func (r *Reader) waitUntilNewEventOrError() (*beat.Event, error) { for { select { case <-r.done: return nil, nil - case c := <-r.changesChan: - switch c { - // no changes - case sdjournal.SD_JOURNAL_NOP: - // new entries are added or the journal has changed (e.g. vacuum, rotate) - case sdjournal.SD_JOURNAL_APPEND, sdjournal.SD_JOURNAL_INVALIDATE: - event, err := r.readEvent() - if err != nil { - return nil, err - } - - if event == nil { - r.backoff.Wait() - continue - } - - r.backoff.Reset() - return event, nil - default: - if c < 0 { - return nil, fmt.Errorf("error while waiting for event: %+v", syscall.Errno(-c)) - } - - r.logger.Errorf("Unknown return code from Wait: %d\n", c) - } + default: } - } -} -func (r *Reader) waitForChange() { - for { - // try to return before waiting for event - select { - case <-r.done: - return - default: + c, err := r.journal.Next() + if err != nil && err != io.EOF { + return nil, err } - c := r.journal.Wait(100 * time.Millisecond) - select { - case <-r.done: - return - case r.changesChan <- c: + // error while reading next entry + if c < 0 { + return nil, fmt.Errorf("error while reading next entry %+v", syscall.Errno(-c)) } - } -} -func (r *Reader) readEvent() (*beat.Event, error) { - n, err := r.journal.Next() - if err != nil && err != io.EOF { - return nil, err - } + // no new entry, so wait + if c == 0 { + hasNewEntry, err := r.checkForNewEvents() + if err != nil { + return nil, err + } + if !hasNewEntry { + continue + } + } - for n == 1 { entry, err := r.journal.GetEntry() if err != nil { return nil, err } event := r.toEvent(entry) + return event, nil } - return nil, nil +} + +func (r *Reader) checkForNewEvents() (bool, error) { + c := r.journal.Wait(100 * time.Millisecond) + switch c { + case sdjournal.SD_JOURNAL_NOP: + return false, nil + // new entries are added or the journal has changed (e.g. vacuum, rotate) + case sdjournal.SD_JOURNAL_APPEND, sdjournal.SD_JOURNAL_INVALIDATE: + return true, nil + default: + } + + r.logger.Errorf("Unknown return code from Wait: %d\n", c) + return false, nil } // toEvent creates a beat.Event from journal entries. @@ -321,5 +288,4 @@ func (r *Reader) convertNamedField(fc fieldConversion, value string) interface{} func (r *Reader) Close() { instance.StopMonitoringJournal(r.config.Path) r.journal.Close() - close(r.changesChan) } diff --git a/libbeat/common/seccomp/policy_linux_amd64.go b/libbeat/common/seccomp/policy_linux_amd64.go index 00e5353b4f9..a131e7f3c34 100644 --- a/libbeat/common/seccomp/policy_linux_amd64.go +++ b/libbeat/common/seccomp/policy_linux_amd64.go @@ -54,6 +54,7 @@ func init() { "fdatasync", "flock", "fstat", + "fstatfs", "fsync", "ftruncate", "futex", @@ -66,6 +67,7 @@ func init() { "getpid", "getppid", "getrandom", + "getrlimit", "getrusage", "getsockname", "getsockopt", @@ -93,6 +95,7 @@ func init() { "pipe", "pipe2", "poll", + "ppoll", "pread64", "pselect6", "pwrite64", @@ -119,6 +122,7 @@ func init() { "shutdown", "sigaltstack", "socket", + "splice", "stat", "statfs", "sysinfo", diff --git a/vendor/vendor.json b/vendor/vendor.json index 221a06217dd..d858864327a 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -498,10 +498,10 @@ { "checksumSHA1": "cEszpxh1szqTb440ze4hm/Vfm40=", "path": "github.com/coreos/go-systemd/sdjournal", - "revision": "39ca1b05acc7ad1220e09f133283b8859a8b71ab", - "revisionTime": "2018-05-11T13:34:05Z", - "version": "v17", - "versionExact": "v17" + "revision": "9002847aa1425fb6ac49077c0a630b3b67e0fbfd", + "revisionTime": "2018-10-31T08:50:51Z", + "version": "v18", + "versionExact": "v18" }, { "checksumSHA1": "nwll5KjH9SKrWxB45OmN09wdipI=", From 69526973de197b5faad4bdac874ee26481be31fe Mon Sep 17 00:00:00 2001 From: Jaime Soriano Pastor Date: Thu, 14 Feb 2019 13:43:07 +0100 Subject: [PATCH 027/332] Add release tag to metricset templates (#10657) We were having contributions of metricsets with the release level in the description, the cause was that our generator scripts did it this way. Add release tag to metricset templates instead of using the description field for this purpouse. Make beta the release level for new modules by default. Experimental should be kept just for real experiments or in some corner cases. The usual level for a new metricset that collects metrics from a known existing service or technology should be beta (or ga if it is really complete). --- CHANGELOG-developer.next.asciidoc | 1 + metricbeat/scripts/module/fields.yml | 3 +-- metricbeat/scripts/module/metricset/metricset.go.tmpl | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG-developer.next.asciidoc b/CHANGELOG-developer.next.asciidoc index 530b638a704..a18201b14e4 100644 --- a/CHANGELOG-developer.next.asciidoc +++ b/CHANGELOG-developer.next.asciidoc @@ -33,3 +33,4 @@ The list below covers the major changes between 7.0.0-alpha2 and master only. - Introduce ILM and IndexManagment support to beat.Settings. {pull}10347[10347] - Introduce ILM and IndexManagement support to beat.Settings. {pull}10347[10347] - Generating index pattern on demand instead of shipping them in the packages. {pull}10478[10478] +- Metricset generator generates beta modules by default now. {pull}10657[10657] diff --git a/metricbeat/scripts/module/fields.yml b/metricbeat/scripts/module/fields.yml index af7f34ab1fe..6d9098501de 100644 --- a/metricbeat/scripts/module/fields.yml +++ b/metricbeat/scripts/module/fields.yml @@ -1,8 +1,7 @@ - key: {module} title: "{module}" + release: beta description: > - experimental[] - {module} module fields: - name: {module} diff --git a/metricbeat/scripts/module/metricset/metricset.go.tmpl b/metricbeat/scripts/module/metricset/metricset.go.tmpl index 4f957fa3464..a32d7c8d51a 100644 --- a/metricbeat/scripts/module/metricset/metricset.go.tmpl +++ b/metricbeat/scripts/module/metricset/metricset.go.tmpl @@ -26,7 +26,7 @@ type MetricSet struct { // New creates a new instance of the MetricSet. New is responsible for unpacking // any MetricSet specific configuration options if there are any. func New(base mb.BaseMetricSet) (mb.MetricSet, error) { - cfgwarn.Experimental("The {module} {metricset} metricset is experimental.") + cfgwarn.Beta("The {module} {metricset} metricset is beta.") config := struct{}{} if err := base.Module().UnpackConfig(&config); err != nil { From 915a1053cd6407ac0b11d33f13901bd134e9f5e1 Mon Sep 17 00:00:00 2001 From: Nicolas Ruflin Date: Thu, 14 Feb 2019 15:07:32 +0100 Subject: [PATCH 028/332] Split up Metricbeat tests into 3 builds on Travis (#10714) The builds on travis for metricbeat exceeded 30min. This splits up the tests into 3 parts. --- .travis.yml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 3e9b8b27611..f39dbc02b1c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -87,9 +87,18 @@ jobs: # Metricbeat - os: linux - env: TARGETS="-C metricbeat testsuite" + env: TARGETS="-C metricbeat unit-tests coverage-report" go: $TRAVIS_GO_VERSION stage: test + - os: linux + env: TARGETS="-C metricbeat integration-tests-environment coverage-report" + go: $TRAVIS_GO_VERSION + stage: test + - os: linux + env: TARGETS="-C metricbeat update system-tests-environment coverage-report" + go: $TRAVIS_GO_VERSION + stage: test + - os: osx env: TARGETS="TEST_ENVIRONMENT=0 -C metricbeat testsuite" go: $TRAVIS_GO_VERSION From f9881364cade6fa2eba6f39b3d373ef0c7c18488 Mon Sep 17 00:00:00 2001 From: Chris Mark Date: Thu, 14 Feb 2019 17:47:56 +0200 Subject: [PATCH 029/332] Nats Filebeat (#10514) --- filebeat/docs/fields.asciidoc | 21 ++++ filebeat/docs/modules/nats.asciidoc | 52 ++++++++ filebeat/docs/modules_list.asciidoc | 2 + filebeat/filebeat.reference.yml | 10 ++ filebeat/include/list.go | 1 + filebeat/module/nats/_meta/config.yml | 8 ++ filebeat/module/nats/_meta/docs.asciidoc | 39 ++++++ filebeat/module/nats/_meta/fields.yml | 11 ++ filebeat/module/nats/fields.go | 36 ++++++ filebeat/module/nats/log/_meta/fields.yml | 6 + filebeat/module/nats/log/config/log.yml | 6 + filebeat/module/nats/log/ingest/pipeline.json | 60 +++++++++ filebeat/module/nats/log/manifest.yml | 15 +++ filebeat/module/nats/log/test/test.log | 9 ++ .../nats/log/test/test.log-expected.json | 119 ++++++++++++++++++ filebeat/modules.d/nats.yml.disabled | 11 ++ x-pack/filebeat/filebeat.reference.yml | 10 ++ 17 files changed, 416 insertions(+) create mode 100644 filebeat/docs/modules/nats.asciidoc create mode 100644 filebeat/module/nats/_meta/config.yml create mode 100644 filebeat/module/nats/_meta/docs.asciidoc create mode 100644 filebeat/module/nats/_meta/fields.yml create mode 100644 filebeat/module/nats/fields.go create mode 100644 filebeat/module/nats/log/_meta/fields.yml create mode 100644 filebeat/module/nats/log/config/log.yml create mode 100644 filebeat/module/nats/log/ingest/pipeline.json create mode 100644 filebeat/module/nats/log/manifest.yml create mode 100644 filebeat/module/nats/log/test/test.log create mode 100644 filebeat/module/nats/log/test/test.log-expected.json create mode 100644 filebeat/modules.d/nats.yml.disabled diff --git a/filebeat/docs/fields.asciidoc b/filebeat/docs/fields.asciidoc index 61f290e26f6..0ca41a546a3 100644 --- a/filebeat/docs/fields.asciidoc +++ b/filebeat/docs/fields.asciidoc @@ -31,6 +31,7 @@ grouped in the following categories: * <> * <> * <> +* <> * <> * <> * <> @@ -7385,6 +7386,26 @@ alias to: source.ip -- +[[exported-fields-nats]] +== nats fields + +Module for parsing NATS log files. + + + +[float] +== nats fields + +Fields from NATS logs. + + + +[float] +== log fields + +Nats log files + + [[exported-fields-netflow]] == NetFlow fields diff --git a/filebeat/docs/modules/nats.asciidoc b/filebeat/docs/modules/nats.asciidoc new file mode 100644 index 00000000000..e160aadeeeb --- /dev/null +++ b/filebeat/docs/modules/nats.asciidoc @@ -0,0 +1,52 @@ +//// +This file is generated! See scripts/docs_collector.py +//// + +[[filebeat-module-nats]] +:modulename: nats +:has-dashboards: false + +== nats module + +This is the nats module. + +include::../include/what-happens.asciidoc[] + +[float] +=== Compatibility + +The +{modulename}+ module was tested with logs from version v1.4.0. + + +include::../include/running-modules.asciidoc[] + +[float] +=== Example dashboard + + +include::../include/configuring-intro.asciidoc[] + + +:fileset_ex: log + +include::../include/config-option-intro.asciidoc[] + + +[float] +==== `log` log fileset settings + +include::../include/var-paths.asciidoc[] + +:has-dashboards!: + +:fileset_ex!: + +:modulename!: + + +[float] +=== Fields + +For a description of each field in the module, see the +<> section. + diff --git a/filebeat/docs/modules_list.asciidoc b/filebeat/docs/modules_list.asciidoc index 8af5a7858b0..1324bcc4996 100644 --- a/filebeat/docs/modules_list.asciidoc +++ b/filebeat/docs/modules_list.asciidoc @@ -15,6 +15,7 @@ This file is generated! See scripts/docs_collector.py * <> * <> * <> + * <> * <> * <> * <> @@ -41,6 +42,7 @@ include::modules/kibana.asciidoc[] include::modules/logstash.asciidoc[] include::modules/mongodb.asciidoc[] include::modules/mysql.asciidoc[] +include::modules/nats.asciidoc[] include::modules/nginx.asciidoc[] include::modules/osquery.asciidoc[] include::modules/postgresql.asciidoc[] diff --git a/filebeat/filebeat.reference.yml b/filebeat/filebeat.reference.yml index f854e0b87fb..187730cd3ab 100644 --- a/filebeat/filebeat.reference.yml +++ b/filebeat/filebeat.reference.yml @@ -290,6 +290,16 @@ filebeat.modules: # can be added under this section. #input: +#--------------------------------- Nats Module --------------------------------- +- module: nats + # All logs + log: + enabled: true + + # Set custom paths for the log files. If left empty, + # Filebeat will choose the paths depending on your OS. + #var.paths: + #-------------------------------- Nginx Module -------------------------------- #- module: nginx # Access logs diff --git a/filebeat/include/list.go b/filebeat/include/list.go index 3b285a14109..4f2f6892930 100644 --- a/filebeat/include/list.go +++ b/filebeat/include/list.go @@ -39,6 +39,7 @@ import ( _ "github.com/elastic/beats/filebeat/module/logstash" _ "github.com/elastic/beats/filebeat/module/mongodb" _ "github.com/elastic/beats/filebeat/module/mysql" + _ "github.com/elastic/beats/filebeat/module/nats" _ "github.com/elastic/beats/filebeat/module/nginx" _ "github.com/elastic/beats/filebeat/module/osquery" _ "github.com/elastic/beats/filebeat/module/postgresql" diff --git a/filebeat/module/nats/_meta/config.yml b/filebeat/module/nats/_meta/config.yml new file mode 100644 index 00000000000..59a63637680 --- /dev/null +++ b/filebeat/module/nats/_meta/config.yml @@ -0,0 +1,8 @@ +- module: nats + # All logs + log: + enabled: true + + # Set custom paths for the log files. If left empty, + # Filebeat will choose the paths depending on your OS. + #var.paths: diff --git a/filebeat/module/nats/_meta/docs.asciidoc b/filebeat/module/nats/_meta/docs.asciidoc new file mode 100644 index 00000000000..f2bbe46925d --- /dev/null +++ b/filebeat/module/nats/_meta/docs.asciidoc @@ -0,0 +1,39 @@ +:modulename: nats +:has-dashboards: false + +== nats module + +This is the nats module. + +include::../include/what-happens.asciidoc[] + +[float] +=== Compatibility + +The +{modulename}+ module was tested with logs from version v1.4.0. + + +include::../include/running-modules.asciidoc[] + +[float] +=== Example dashboard + + +include::../include/configuring-intro.asciidoc[] + + +:fileset_ex: log + +include::../include/config-option-intro.asciidoc[] + + +[float] +==== `log` log fileset settings + +include::../include/var-paths.asciidoc[] + +:has-dashboards!: + +:fileset_ex!: + +:modulename!: diff --git a/filebeat/module/nats/_meta/fields.yml b/filebeat/module/nats/_meta/fields.yml new file mode 100644 index 00000000000..1f17b097637 --- /dev/null +++ b/filebeat/module/nats/_meta/fields.yml @@ -0,0 +1,11 @@ +- key: nats + title: "nats" + description: > + Module for parsing NATS log files. + release: beta + fields: + - name: nats + type: group + description: > + Fields from NATS logs. + fields: diff --git a/filebeat/module/nats/fields.go b/filebeat/module/nats/fields.go new file mode 100644 index 00000000000..1c0dcd1d655 --- /dev/null +++ b/filebeat/module/nats/fields.go @@ -0,0 +1,36 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package nats + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("filebeat", "nats", asset.ModuleFieldsPri, AssetNats); err != nil { + panic(err) + } +} + +// AssetNats returns asset data. +// This is the base64 encoded gzipped contents of module/nats. +func AssetNats() string { + return "eJx8jzGOwyAQRXtO8eXeewCKlbbZbt1sLkDiAaFgBjHjwrePsGLHiqy8jo/03/wed1osslMxgEZNZNG1Z2eAkeRWY9HI2eLbAMAfj3MieK4orkrMAcPP5R+JA3xMJF8GqJTICVlcSZ0BfKQ0il0LemQ30a5s6FLIIlSeyzM5ETd+1x74ytNuXYWNo+QoShz27Mz1wdcYnMpr3eHrfeTGdscjAAD//1hdX78=" +} diff --git a/filebeat/module/nats/log/_meta/fields.yml b/filebeat/module/nats/log/_meta/fields.yml new file mode 100644 index 00000000000..9b061fc0423 --- /dev/null +++ b/filebeat/module/nats/log/_meta/fields.yml @@ -0,0 +1,6 @@ +- name: log + type: group + description: > + Nats log files + release: beta + fields: diff --git a/filebeat/module/nats/log/config/log.yml b/filebeat/module/nats/log/config/log.yml new file mode 100644 index 00000000000..0afd17317d4 --- /dev/null +++ b/filebeat/module/nats/log/config/log.yml @@ -0,0 +1,6 @@ +type: log +paths: +{{ range $i, $path := .paths }} + - {{$path}} +{{ end }} +exclude_files: [".gz$"] diff --git a/filebeat/module/nats/log/ingest/pipeline.json b/filebeat/module/nats/log/ingest/pipeline.json new file mode 100644 index 00000000000..28f1f5a3583 --- /dev/null +++ b/filebeat/module/nats/log/ingest/pipeline.json @@ -0,0 +1,60 @@ +{ + "description": "Pipeline for parsing nats log logs", + "processors": [{ + "grok": { + "field": "message", + "patterns":[ + "\\[%{POSINT:process.pid}\\]( %{NATSTIME:nats.log.timestamp})? \\[%{NATSLOGLEVEL:log.level}\\] %{GREEDYDATA:message}" + ], + "pattern_definitions": { + "NATSTIME": "%{YEAR}/%{MONTHNUM}/%{MONTHDAY} %{TIME}", + "NATSLOGLEVEL":"(INF|DBG|WRN|ERR|FTL|TRC)" + }, + "ignore_missing": true + } + }, + { + "script": { + "lang": "painless", + "source": "if (ctx.log.level == params.inf) {\n ctx.log.level = params.info;\n } else if (ctx.log.level == params.dbg) {\n ctx.log.level = params.debug;\n } else if (ctx.log.level == params.wrn) {\n ctx.log.level = params.warning;\n } else if (ctx.log.level == params.err) {\n ctx.log.level = params.error;\n } else if (ctx.log.level == params.ftl) {\n ctx.log.level = params.fatal;\n } else if (ctx.log.level == params.trc) {\n ctx.log.level = params.trace;\n }", + "params": { + "inf": "INF", + "info": "info", + "dbg": "DBG", + "debug": "debug", + "wrn": "WRN", + "warning": "warning", + "err": "ERR", + "error": "error", + "ftl": "FTL", + "fatal": "fatal", + "trc": "TRC", + "trace": "trace" + } + } + }, + { + "rename": { + "field": "@timestamp", + "target_field": "event.created" + } + }, + { + "date": { + "field": "nats.log.timestamp", + "target_field": "@timestamp", + "formats": ["yyyy/MM/dd HH:mm:ss.SSSSSS"] + } + }, + { + "remove": { + "field": "nats.log.timestamp" + } + }], + "on_failure" : [{ + "set" : { + "field" : "error.message", + "value" : "{{ _ingest.on_failure_message }}" + } + }] +} diff --git a/filebeat/module/nats/log/manifest.yml b/filebeat/module/nats/log/manifest.yml new file mode 100644 index 00000000000..20104d64427 --- /dev/null +++ b/filebeat/module/nats/log/manifest.yml @@ -0,0 +1,15 @@ +module_version: 1.0 + +var: + - name: paths + default: + # This is an example location of where a user can + # set the nats server to log. By default nats + # logs only in stdout. In order to set a nats server + # to log in specific file use -l flag, for instance: + # ./gnatsd -DV -l /var/log/nats/nats.log + # See more on https://nats.io/documentation/server/gnatsd-logging/ + - /var/log/nats/nats.log* + +ingest_pipeline: ingest/pipeline.json +input: config/log.yml diff --git a/filebeat/module/nats/log/test/test.log b/filebeat/module/nats/log/test/test.log new file mode 100644 index 00000000000..c354e2c09f3 --- /dev/null +++ b/filebeat/module/nats/log/test/test.log @@ -0,0 +1,9 @@ +[1] 2019/02/06 07:19:40.624334 [INF] Starting nats-server version 1.3.0 +[1] 2019/02/06 07:19:40.624547 [INF] Git commit [eed4fbc] +[1] 2019/02/06 07:19:40.624674 [INF] Listening for client connections on 0.0.0.0:4222 +[1] 2019/02/06 07:19:40.624690 [INF] Server is ready +[1] 2019/02/06 07:20:08.508891 [DBG] 172.18.0.1:38630 - cid:1 - Client connection created +[1] 2019/02/06 07:20:08.510296 [TRC] 172.18.0.1:38630 - cid:1 - ->> [CONNECT {"verbose":false,"pedantic":false,"tls_required":false,"name":"NATS Benchmark","lang":"go","version":"1.7.0","protocol":1,"echo":true}] +[1] 2019/02/06 07:20:08.512052 [TRC] 172.18.0.1:38630 - cid:1 - ->> [SUB foo 1] +[1] 2019/02/06 07:20:08.512128 [TRC] 172.18.0.1:38630 - cid:1 - ->> [PING] +[1] 2019/02/06 07:20:08.512153 [TRC] 172.18.0.1:38630 - cid:1 - <<- [PONG] diff --git a/filebeat/module/nats/log/test/test.log-expected.json b/filebeat/module/nats/log/test/test.log-expected.json new file mode 100644 index 00000000000..7ea37b515d6 --- /dev/null +++ b/filebeat/module/nats/log/test/test.log-expected.json @@ -0,0 +1,119 @@ +[ + { + "@timestamp": "2019-02-06T07:19:40.624Z", + "ecs.version": "1.0.0-beta2", + "event.dataset": "nats.log", + "event.module": "nats", + "fileset.name": "log", + "input.type": "log", + "log.level": "info", + "log.offset": 0, + "message": "Starting nats-server version 1.3.0", + "process.pid": "1", + "service.type": "nats" + }, + { + "@timestamp": "2019-02-06T07:19:40.624Z", + "ecs.version": "1.0.0-beta2", + "event.dataset": "nats.log", + "event.module": "nats", + "fileset.name": "log", + "input.type": "log", + "log.level": "info", + "log.offset": 72, + "message": "Git commit [eed4fbc]", + "process.pid": "1", + "service.type": "nats" + }, + { + "@timestamp": "2019-02-06T07:19:40.624Z", + "ecs.version": "1.0.0-beta2", + "event.dataset": "nats.log", + "event.module": "nats", + "fileset.name": "log", + "input.type": "log", + "log.level": "info", + "log.offset": 130, + "message": "Listening for client connections on 0.0.0.0:4222", + "process.pid": "1", + "service.type": "nats" + }, + { + "@timestamp": "2019-02-06T07:19:40.624Z", + "ecs.version": "1.0.0-beta2", + "event.dataset": "nats.log", + "event.module": "nats", + "fileset.name": "log", + "input.type": "log", + "log.level": "info", + "log.offset": 216, + "message": "Server is ready", + "process.pid": "1", + "service.type": "nats" + }, + { + "@timestamp": "2019-02-06T07:20:08.508Z", + "ecs.version": "1.0.0-beta2", + "event.dataset": "nats.log", + "event.module": "nats", + "fileset.name": "log", + "input.type": "log", + "log.level": "debug", + "log.offset": 269, + "message": "172.18.0.1:38630 - cid:1 - Client connection created", + "process.pid": "1", + "service.type": "nats" + }, + { + "@timestamp": "2019-02-06T07:20:08.510Z", + "ecs.version": "1.0.0-beta2", + "event.dataset": "nats.log", + "event.module": "nats", + "fileset.name": "log", + "input.type": "log", + "log.level": "trace", + "log.offset": 359, + "message": "172.18.0.1:38630 - cid:1 - ->> [CONNECT {\"verbose\":false,\"pedantic\":false,\"tls_required\":false,\"name\":\"NATS Benchmark\",\"lang\":\"go\",\"version\":\"1.7.0\",\"protocol\":1,\"echo\":true}]", + "process.pid": "1", + "service.type": "nats" + }, + { + "@timestamp": "2019-02-06T07:20:08.512Z", + "ecs.version": "1.0.0-beta2", + "event.dataset": "nats.log", + "event.module": "nats", + "fileset.name": "log", + "input.type": "log", + "log.level": "trace", + "log.offset": 572, + "message": "172.18.0.1:38630 - cid:1 - ->> [SUB foo 1]", + "process.pid": "1", + "service.type": "nats" + }, + { + "@timestamp": "2019-02-06T07:20:08.512Z", + "ecs.version": "1.0.0-beta2", + "event.dataset": "nats.log", + "event.module": "nats", + "fileset.name": "log", + "input.type": "log", + "log.level": "trace", + "log.offset": 653, + "message": "172.18.0.1:38630 - cid:1 - ->> [PING]", + "process.pid": "1", + "service.type": "nats" + }, + { + "@timestamp": "2019-02-06T07:20:08.512Z", + "ecs.version": "1.0.0-beta2", + "event.dataset": "nats.log", + "event.module": "nats", + "fileset.name": "log", + "input.type": "log", + "log.level": "trace", + "log.offset": 728, + "message": "172.18.0.1:38630 - cid:1 - <<- [PONG]", + "process.pid": "1", + "service.type": "nats" + } +] \ No newline at end of file diff --git a/filebeat/modules.d/nats.yml.disabled b/filebeat/modules.d/nats.yml.disabled new file mode 100644 index 00000000000..d203a1735e4 --- /dev/null +++ b/filebeat/modules.d/nats.yml.disabled @@ -0,0 +1,11 @@ +# Module: nats +# Docs: https://www.elastic.co/guide/en/beats/filebeat/master/filebeat-module-nats.html + +- module: nats + # All logs + log: + enabled: true + + # Set custom paths for the log files. If left empty, + # Filebeat will choose the paths depending on your OS. + #var.paths: diff --git a/x-pack/filebeat/filebeat.reference.yml b/x-pack/filebeat/filebeat.reference.yml index b9b7b0d4588..087cbb9fd72 100644 --- a/x-pack/filebeat/filebeat.reference.yml +++ b/x-pack/filebeat/filebeat.reference.yml @@ -302,6 +302,16 @@ filebeat.modules: # can be added under this section. #input: +#--------------------------------- Nats Module --------------------------------- +- module: nats + # All logs + log: + enabled: true + + # Set custom paths for the log files. If left empty, + # Filebeat will choose the paths depending on your OS. + #var.paths: + #-------------------------------- Nginx Module -------------------------------- #- module: nginx # Access logs From d83bb4d2639dc72726f7f6970a54b7539d94fdcd Mon Sep 17 00:00:00 2001 From: Silvia Mitter Date: Thu, 14 Feb 2019 17:46:20 +0100 Subject: [PATCH 030/332] Remove deprecated Init(), pass instance.Settings around. (#10721) * Remove deprecated Init(), pass instance.Settings around. Ensure settings from rootCmd are respected also when calling `export` and `setup`. fixes #10720 --- auditbeat/cmd/root.go | 3 +- docs/devguide/newbeat.asciidoc | 3 +- filebeat/cmd/root.go | 4 +- generator/beat/{beat}/cmd/root.go.tmpl | 3 +- heartbeat/cmd/root.go | 3 +- journalbeat/cmd/root.go | 3 +- libbeat/cmd/completion.go | 4 +- libbeat/cmd/export.go | 12 +++--- libbeat/cmd/export/config.go | 8 ++-- libbeat/cmd/export/dashboard.go | 6 +-- libbeat/cmd/export/ilm_policy.go | 4 +- libbeat/cmd/export/index_pattern.go | 9 ++--- libbeat/cmd/export/template.go | 8 ++-- libbeat/cmd/instance/beat.go | 18 ++++----- libbeat/cmd/keystore.go | 42 +++++++++---------- libbeat/cmd/root.go | 56 +++++--------------------- libbeat/cmd/run.go | 7 ++-- libbeat/cmd/setup.go | 6 +-- libbeat/cmd/test.go | 7 ++-- libbeat/cmd/test/config.go | 6 +-- libbeat/cmd/test/output.go | 8 ++-- libbeat/cmd/version.go | 4 +- libbeat/libbeat.go | 2 +- libbeat/mock/mockbeat.go | 3 ++ metricbeat/cmd/root.go | 4 +- packetbeat/cmd/root.go | 3 +- winlogbeat/cmd/root.go | 7 +++- x-pack/libbeat/libbeat.go | 2 +- 28 files changed, 108 insertions(+), 137 deletions(-) diff --git a/auditbeat/cmd/root.go b/auditbeat/cmd/root.go index 311cf1551f3..64211fd7048 100644 --- a/auditbeat/cmd/root.go +++ b/auditbeat/cmd/root.go @@ -23,6 +23,7 @@ import ( "github.com/elastic/beats/auditbeat/core" "github.com/elastic/beats/libbeat/cmd" + "github.com/elastic/beats/libbeat/cmd/instance" "github.com/elastic/beats/metricbeat/beater" "github.com/elastic/beats/metricbeat/mb/module" ) @@ -46,6 +47,6 @@ func init() { ), ) var runFlags = pflag.NewFlagSet(Name, pflag.ExitOnError) - RootCmd = cmd.GenRootCmdWithRunFlags(Name, "", create, runFlags) + RootCmd = cmd.GenRootCmdWithSettings(create, instance.Settings{RunFlags: runFlags, Name: Name}) RootCmd.AddCommand(ShowCmd) } diff --git a/docs/devguide/newbeat.asciidoc b/docs/devguide/newbeat.asciidoc index 02dc6a022a2..1ae6edc19f2 100644 --- a/docs/devguide/newbeat.asciidoc +++ b/docs/devguide/newbeat.asciidoc @@ -477,11 +477,12 @@ import ( "github.com/elastic/beats/libbeat/beat" "github.com/elastic/beats/libbeat/cmd" + "github.com/elastic/beats/libbeat/cmd/instance" "github.com/kimjmin/countbeat/beater" ) -var RootCmd = cmd.GenRootCmd("countbeat", "", beater.New) +var RootCmd = cmd.GenRootCmdWithSettings(beater.New, instance.Settings{Name: "countbeat"}) func main() { if err := RootCmd.Execute(); err != nil { diff --git a/filebeat/cmd/root.go b/filebeat/cmd/root.go index 31618aee1a1..de591dabebf 100644 --- a/filebeat/cmd/root.go +++ b/filebeat/cmd/root.go @@ -25,6 +25,7 @@ import ( "github.com/elastic/beats/filebeat/beater" cmd "github.com/elastic/beats/libbeat/cmd" + "github.com/elastic/beats/libbeat/cmd/instance" ) // Name of this beat @@ -37,8 +38,7 @@ func init() { var runFlags = pflag.NewFlagSet(Name, pflag.ExitOnError) runFlags.AddGoFlag(flag.CommandLine.Lookup("once")) runFlags.AddGoFlag(flag.CommandLine.Lookup("modules")) - - RootCmd = cmd.GenRootCmdWithRunFlags(Name, "", beater.New, runFlags) + RootCmd = cmd.GenRootCmdWithSettings(beater.New, instance.Settings{RunFlags: runFlags, Name: Name}) RootCmd.PersistentFlags().AddGoFlag(flag.CommandLine.Lookup("M")) RootCmd.TestCmd.Flags().AddGoFlag(flag.CommandLine.Lookup("modules")) RootCmd.SetupCmd.Flags().AddGoFlag(flag.CommandLine.Lookup("modules")) diff --git a/generator/beat/{beat}/cmd/root.go.tmpl b/generator/beat/{beat}/cmd/root.go.tmpl index c9d91a94b53..21cd202d079 100644 --- a/generator/beat/{beat}/cmd/root.go.tmpl +++ b/generator/beat/{beat}/cmd/root.go.tmpl @@ -4,10 +4,11 @@ import ( "{beat_path}/beater" cmd "github.com/elastic/beats/libbeat/cmd" + "github.com/elastic/beats/libbeat/cmd/instance" ) // Name of this beat var Name = "{beat}" // RootCmd to handle beats cli -var RootCmd = cmd.GenRootCmd(Name, "", beater.New) +var RootCmd = cmd.GenRootCmdWithSettings(beater.New, instance.Settings{Name: Name}) diff --git a/heartbeat/cmd/root.go b/heartbeat/cmd/root.go index 0ffda01644e..8557971f524 100644 --- a/heartbeat/cmd/root.go +++ b/heartbeat/cmd/root.go @@ -20,6 +20,7 @@ package cmd import ( // register default heartbeat monitors _ "github.com/elastic/beats/heartbeat/monitors/defaults" + "github.com/elastic/beats/libbeat/cmd/instance" "github.com/elastic/beats/heartbeat/beater" cmd "github.com/elastic/beats/libbeat/cmd" @@ -29,4 +30,4 @@ import ( var Name = "heartbeat" // RootCmd to handle beats cli -var RootCmd = cmd.GenRootCmd(Name, "", beater.New) +var RootCmd = cmd.GenRootCmdWithSettings(beater.New, instance.Settings{Name: Name}) diff --git a/journalbeat/cmd/root.go b/journalbeat/cmd/root.go index d1afa4fdfcc..f9b2d1b31ba 100644 --- a/journalbeat/cmd/root.go +++ b/journalbeat/cmd/root.go @@ -21,10 +21,11 @@ import ( "github.com/elastic/beats/journalbeat/beater" cmd "github.com/elastic/beats/libbeat/cmd" + "github.com/elastic/beats/libbeat/cmd/instance" ) // Name of this beat var Name = "journalbeat" // RootCmd to handle beats cli -var RootCmd = cmd.GenRootCmd(Name, "", beater.New) +var RootCmd = cmd.GenRootCmdWithSettings(beater.New, instance.Settings{Name: Name}) diff --git a/libbeat/cmd/completion.go b/libbeat/cmd/completion.go index 47fb7ef2482..578d943775e 100644 --- a/libbeat/cmd/completion.go +++ b/libbeat/cmd/completion.go @@ -21,10 +21,12 @@ import ( "fmt" "os" + "github.com/elastic/beats/libbeat/cmd/instance" + "github.com/spf13/cobra" ) -func genCompletionCmd(name, version string, rootCmd *BeatsRootCmd) *cobra.Command { +func genCompletionCmd(_ instance.Settings, rootCmd *BeatsRootCmd) *cobra.Command { completionCmd := cobra.Command{ Use: "completion SHELL", Short: "Output shell completion code for the specified shell (bash and zsh only by the moment)", diff --git a/libbeat/cmd/export.go b/libbeat/cmd/export.go index c1d059bcfe0..82e89bb09ee 100644 --- a/libbeat/cmd/export.go +++ b/libbeat/cmd/export.go @@ -24,17 +24,17 @@ import ( "github.com/elastic/beats/libbeat/cmd/instance" ) -func genExportCmd(settings instance.Settings, name, idxPrefix, beatVersion string) *cobra.Command { +func genExportCmd(settings instance.Settings) *cobra.Command { exportCmd := &cobra.Command{ Use: "export", Short: "Export current config or index template", } - exportCmd.AddCommand(export.GenExportConfigCmd(settings, name, idxPrefix, beatVersion)) - exportCmd.AddCommand(export.GenTemplateConfigCmd(settings, name, idxPrefix, beatVersion)) - exportCmd.AddCommand(export.GenIndexPatternConfigCmd(settings, name, idxPrefix, beatVersion)) - exportCmd.AddCommand(export.GenDashboardCmd(name, idxPrefix, beatVersion)) - exportCmd.AddCommand(export.GenGetILMPolicyCmd(settings, name, idxPrefix, beatVersion)) + exportCmd.AddCommand(export.GenExportConfigCmd(settings)) + exportCmd.AddCommand(export.GenTemplateConfigCmd(settings)) + exportCmd.AddCommand(export.GenIndexPatternConfigCmd(settings)) + exportCmd.AddCommand(export.GenDashboardCmd(settings)) + exportCmd.AddCommand(export.GenGetILMPolicyCmd(settings)) return exportCmd } diff --git a/libbeat/cmd/export/config.go b/libbeat/cmd/export/config.go index a678f63c560..86c59ccb891 100644 --- a/libbeat/cmd/export/config.go +++ b/libbeat/cmd/export/config.go @@ -29,18 +29,18 @@ import ( ) // GenExportConfigCmd write to stdout the current configuration in the YAML format. -func GenExportConfigCmd(settings instance.Settings, name, idxPrefix, beatVersion string) *cobra.Command { +func GenExportConfigCmd(settings instance.Settings) *cobra.Command { return &cobra.Command{ Use: "config", Short: "Export current config to stdout", Run: cli.RunWith(func(cmd *cobra.Command, args []string) error { - return exportConfig(settings, name, idxPrefix, beatVersion) + return exportConfig(settings) }), } } -func exportConfig(settings instance.Settings, name, idxPrefix, beatVersion string) error { - b, err := instance.NewBeat(name, idxPrefix, beatVersion) +func exportConfig(settings instance.Settings) error { + b, err := instance.NewBeat(settings.Name, settings.IndexPrefix, settings.Version) if err != nil { return fmt.Errorf("error initializing beat: %s", err) } diff --git a/libbeat/cmd/export/dashboard.go b/libbeat/cmd/export/dashboard.go index 4cf0c7db30e..129a6ac6f71 100644 --- a/libbeat/cmd/export/dashboard.go +++ b/libbeat/cmd/export/dashboard.go @@ -31,7 +31,7 @@ import ( ) // GenDashboardCmd is the command used to export a dashboard. -func GenDashboardCmd(name, idxPrefix, beatVersion string) *cobra.Command { +func GenDashboardCmd(settings instance.Settings) *cobra.Command { genTemplateConfigCmd := &cobra.Command{ Use: "dashboard", Short: "Export defined dashboard to stdout", @@ -40,12 +40,12 @@ func GenDashboardCmd(name, idxPrefix, beatVersion string) *cobra.Command { yml, _ := cmd.Flags().GetString("yml") decode, _ := cmd.Flags().GetBool("decode") - b, err := instance.NewBeat(name, idxPrefix, beatVersion) + b, err := instance.NewBeat(settings.Name, settings.IndexPrefix, settings.Version) if err != nil { fmt.Fprintf(os.Stderr, "Error creating beat: %s\n", err) os.Exit(1) } - err = b.Init() + err = b.InitWithSettings(settings) if err != nil { fmt.Fprintf(os.Stderr, "Error initializing beat: %s\n", err) os.Exit(1) diff --git a/libbeat/cmd/export/ilm_policy.go b/libbeat/cmd/export/ilm_policy.go index 9850da3527c..21363f0a7c6 100644 --- a/libbeat/cmd/export/ilm_policy.go +++ b/libbeat/cmd/export/ilm_policy.go @@ -29,12 +29,12 @@ import ( ) // GenGetILMPolicyCmd is the command used to export the ilm policy. -func GenGetILMPolicyCmd(settings instance.Settings, name, idxPrefix, version string) *cobra.Command { +func GenGetILMPolicyCmd(settings instance.Settings) *cobra.Command { genTemplateConfigCmd := &cobra.Command{ Use: "ilm-policy", Short: "Export ILM policy", Run: func(cmd *cobra.Command, args []string) { - b, err := instance.NewBeat(name, idxPrefix, version) + b, err := instance.NewBeat(settings.Name, settings.IndexPrefix, settings.Version) if err != nil { fmt.Fprintf(os.Stderr, "Error initializing beat: %s\n", err) os.Exit(1) diff --git a/libbeat/cmd/export/index_pattern.go b/libbeat/cmd/export/index_pattern.go index cf9a3a4f684..c5756c0d5de 100644 --- a/libbeat/cmd/export/index_pattern.go +++ b/libbeat/cmd/export/index_pattern.go @@ -29,14 +29,14 @@ import ( ) // GenIndexPatternConfigCmd generates an index pattern for Kibana -func GenIndexPatternConfigCmd(settings instance.Settings, name, idxPrefix, beatVersion string) *cobra.Command { +func GenIndexPatternConfigCmd(settings instance.Settings) *cobra.Command { genTemplateConfigCmd := &cobra.Command{ Use: "index-pattern", Short: "Export kibana index pattern to stdout", Run: func(cmd *cobra.Command, args []string) { version, _ := cmd.Flags().GetString("es.version") - b, err := instance.NewBeat(name, idxPrefix, beatVersion) + b, err := instance.NewBeat(settings.Name, settings.IndexPrefix, settings.Version) if err != nil { fatalf("Error initializing beat: %+v", err) } @@ -63,7 +63,7 @@ func GenIndexPatternConfigCmd(settings instance.Settings, name, idxPrefix, beatV if err != nil { fatalf("Error creating version: %+v", err) } - indexPattern, err := kibana.NewGenerator(b.Info.IndexPrefix, b.Info.Beat, b.Fields, beatVersion, *v, withMigration) + indexPattern, err := kibana.NewGenerator(b.Info.IndexPrefix, b.Info.Beat, b.Fields, settings.Version, *v, withMigration) if err != nil { log.Fatal(err) } @@ -80,8 +80,7 @@ func GenIndexPatternConfigCmd(settings instance.Settings, name, idxPrefix, beatV }, } - genTemplateConfigCmd.Flags().String("es.version", beatVersion, "Elasticsearch version") - genTemplateConfigCmd.Flags().String("index", idxPrefix, "Base index name") + genTemplateConfigCmd.Flags().String("es.version", settings.Version, "Elasticsearch version") return genTemplateConfigCmd } diff --git a/libbeat/cmd/export/template.go b/libbeat/cmd/export/template.go index e804a0df5ce..f24fbed6dee 100644 --- a/libbeat/cmd/export/template.go +++ b/libbeat/cmd/export/template.go @@ -31,7 +31,7 @@ import ( "github.com/elastic/beats/libbeat/template" ) -func GenTemplateConfigCmd(settings instance.Settings, name, idxPrefix, beatVersion string) *cobra.Command { +func GenTemplateConfigCmd(settings instance.Settings) *cobra.Command { genTemplateConfigCmd := &cobra.Command{ Use: "template", Short: "Export index template to stdout", @@ -40,7 +40,7 @@ func GenTemplateConfigCmd(settings instance.Settings, name, idxPrefix, beatVersi index, _ := cmd.Flags().GetString("index") noILM, _ := cmd.Flags().GetBool("noilm") - b, err := instance.NewBeat(name, idxPrefix, beatVersion) + b, err := instance.NewBeat(settings.Name, settings.IndexPrefix, settings.Version) if err != nil { fatalf("Error initializing beat: %+v", err) } @@ -106,8 +106,8 @@ func GenTemplateConfigCmd(settings instance.Settings, name, idxPrefix, beatVersi }, } - genTemplateConfigCmd.Flags().String("es.version", beatVersion, "Elasticsearch version") - genTemplateConfigCmd.Flags().String("index", idxPrefix, "Base index name") + genTemplateConfigCmd.Flags().String("es.version", settings.Version, "Elasticsearch version") + genTemplateConfigCmd.Flags().String("index", settings.IndexPrefix, "Base index name") genTemplateConfigCmd.Flags().Bool("noilm", false, "Generate template with ILM disabled") return genTemplateConfigCmd diff --git a/libbeat/cmd/instance/beat.go b/libbeat/cmd/instance/beat.go index 41044e07120..44615ccef33 100644 --- a/libbeat/cmd/instance/beat.go +++ b/libbeat/cmd/instance/beat.go @@ -394,9 +394,9 @@ func (b *Beat) launch(settings Settings, bt beat.Creator) error { } // TestConfig check all settings are ok and the beat can be run -func (b *Beat) TestConfig(bt beat.Creator) error { +func (b *Beat) TestConfig(settings Settings, bt beat.Creator) error { return handleError(func() error { - err := b.Init() + err := b.InitWithSettings(settings) if err != nil { return err } @@ -422,9 +422,9 @@ type SetupSettings struct { } // Setup registers ES index template, kibana dashboards, ml jobs and pipelines. -func (b *Beat) Setup(bt beat.Creator, settings SetupSettings) error { +func (b *Beat) Setup(settings Settings, bt beat.Creator, setup SetupSettings) error { return handleError(func() error { - err := b.Init() + err := b.InitWithSettings(settings) if err != nil { return err } @@ -438,7 +438,7 @@ func (b *Beat) Setup(bt beat.Creator, settings SetupSettings) error { return err } - if settings.Template || settings.ILMPolicy { + if setup.Template || setup.ILMPolicy { outCfg := b.Config.Output if outCfg.Name() != "elasticsearch" { @@ -455,7 +455,7 @@ func (b *Beat) Setup(bt beat.Creator, settings SetupSettings) error { // prepare index by loading templates, lifecycle policies and write aliases m := b.index.Manager(esClient, idxmgmt.BeatsAssets(b.Fields)) - err = m.Setup(settings.Template, settings.ILMPolicy) + err = m.Setup(setup.Template, setup.ILMPolicy) if err != nil { return err } @@ -463,7 +463,7 @@ func (b *Beat) Setup(bt beat.Creator, settings SetupSettings) error { fmt.Println("Index setup complete.") } - if settings.Dashboard { + if setup.Dashboard { fmt.Println("Loading dashboards (Kibana must be running and reachable)") err = b.loadDashboards(context.Background(), true) @@ -479,7 +479,7 @@ func (b *Beat) Setup(bt beat.Creator, settings SetupSettings) error { } } - if settings.MachineLearning && b.SetupMLCallback != nil { + if setup.MachineLearning && b.SetupMLCallback != nil { err = b.SetupMLCallback(&b.Beat, b.Config.Kibana) if err != nil { return err @@ -487,7 +487,7 @@ func (b *Beat) Setup(bt beat.Creator, settings SetupSettings) error { fmt.Println("Loaded machine learning job configurations") } - if settings.Pipeline && b.OverwritePipelinesCallback != nil { + if setup.Pipeline && b.OverwritePipelinesCallback != nil { esConfig := b.Config.Output.Config() err = b.OverwritePipelinesCallback(esConfig) if err != nil { diff --git a/libbeat/cmd/keystore.go b/libbeat/cmd/keystore.go index aed55d02aaa..b482c1260ab 100644 --- a/libbeat/cmd/keystore.go +++ b/libbeat/cmd/keystore.go @@ -27,7 +27,6 @@ import ( "syscall" "github.com/spf13/cobra" - "github.com/spf13/pflag" tml "golang.org/x/crypto/ssh/terminal" "github.com/elastic/beats/libbeat/cmd/instance" @@ -36,14 +35,14 @@ import ( "github.com/elastic/beats/libbeat/keystore" ) -func getKeystore(name, version string) (keystore.Keystore, error) { - b, err := instance.NewBeat(name, "", version) +func getKeystore(settings instance.Settings) (keystore.Keystore, error) { + b, err := instance.NewBeat(settings.Name, settings.IndexPrefix, settings.Version) if err != nil { return nil, fmt.Errorf("error initializing beat: %s", err) } - if err = b.Init(); err != nil { + if err = b.InitWithSettings(settings); err != nil { return nil, fmt.Errorf("error initializing beat: %s", err) } @@ -56,44 +55,41 @@ func getKeystore(name, version string) (keystore.Keystore, error) { // - add // - remove // - list -func genKeystoreCmd( - name, idxPrefix, version string, - runFlags *pflag.FlagSet, -) *cobra.Command { +func genKeystoreCmd(settings instance.Settings) *cobra.Command { keystoreCmd := cobra.Command{ Use: "keystore", Short: "Manage secrets keystore", } - keystoreCmd.AddCommand(genCreateKeystoreCmd(name, version)) - keystoreCmd.AddCommand(genAddKeystoreCmd(name, version)) - keystoreCmd.AddCommand(genRemoveKeystoreCmd(name, version)) - keystoreCmd.AddCommand(genListKeystoreCmd(name, version)) + keystoreCmd.AddCommand(genCreateKeystoreCmd(settings)) + keystoreCmd.AddCommand(genAddKeystoreCmd(settings)) + keystoreCmd.AddCommand(genRemoveKeystoreCmd(settings)) + keystoreCmd.AddCommand(genListKeystoreCmd(settings)) return &keystoreCmd } -func genCreateKeystoreCmd(name, version string) *cobra.Command { +func genCreateKeystoreCmd(settings instance.Settings) *cobra.Command { var flagForce bool command := &cobra.Command{ Use: "create", Short: "Create keystore", Run: cli.RunWith(func(cmd *cobra.Command, args []string) error { - return createKeystore(name, version, flagForce) + return createKeystore(settings, flagForce) }), } command.Flags().BoolVar(&flagForce, "force", false, "override the existing keystore") return command } -func genAddKeystoreCmd(name, version string) *cobra.Command { +func genAddKeystoreCmd(settings instance.Settings) *cobra.Command { var flagForce bool var flagStdin bool command := &cobra.Command{ Use: "add", Short: "Add secret", Run: cli.RunWith(func(cmd *cobra.Command, args []string) error { - store, err := getKeystore(name, version) + store, err := getKeystore(settings) if err != nil { return err } @@ -105,12 +101,12 @@ func genAddKeystoreCmd(name, version string) *cobra.Command { return command } -func genRemoveKeystoreCmd(name, version string) *cobra.Command { +func genRemoveKeystoreCmd(settings instance.Settings) *cobra.Command { return &cobra.Command{ Use: "remove", Short: "remove secret", Run: cli.RunWith(func(cmd *cobra.Command, args []string) error { - store, err := getKeystore(name, version) + store, err := getKeystore(settings) if err != nil { return err } @@ -119,12 +115,12 @@ func genRemoveKeystoreCmd(name, version string) *cobra.Command { } } -func genListKeystoreCmd(name, version string) *cobra.Command { +func genListKeystoreCmd(settings instance.Settings) *cobra.Command { return &cobra.Command{ Use: "list", Short: "List keystore", Run: cli.RunWith(func(cmd *cobra.Command, args []string) error { - store, err := getKeystore(name, version) + store, err := getKeystore(settings) if err != nil { return err } @@ -133,8 +129,8 @@ func genListKeystoreCmd(name, version string) *cobra.Command { } } -func createKeystore(name, version string, force bool) error { - store, err := getKeystore(name, version) +func createKeystore(settings instance.Settings, force bool) error { + store, err := getKeystore(settings) if err != nil { return err } @@ -156,7 +152,7 @@ func createKeystore(name, version string, force bool) error { return fmt.Errorf("Error creating the keystore: %s", err) } } - fmt.Printf("Created %s keystore\n", name) + fmt.Printf("Created %s keystore\n", settings.Name) return nil } diff --git a/libbeat/cmd/root.go b/libbeat/cmd/root.go index 539bd82499c..e13bd2a7e0e 100644 --- a/libbeat/cmd/root.go +++ b/libbeat/cmd/root.go @@ -24,7 +24,6 @@ import ( "strings" "github.com/spf13/cobra" - "github.com/spf13/pflag" "github.com/elastic/beats/libbeat/beat" "github.com/elastic/beats/libbeat/cfgfile" @@ -53,38 +52,6 @@ type BeatsRootCmd struct { KeystoreCmd *cobra.Command } -// GenRootCmd returns the root command to use for your beat. It takes the beat name, version, -// and run command, which will be called if no args are given (for backwards compatibility). -// -// Deprecated: Use GenRootCmdWithSettings instead. -func GenRootCmd(name, version string, beatCreator beat.Creator) *BeatsRootCmd { - return GenRootCmdWithRunFlags(name, version, beatCreator, nil) -} - -// GenRootCmdWithRunFlags returns the root command to use for your beat. It takes -// beat name, version, run command, and runFlags. runFlags parameter must the flagset used by -// run command. -// -// Deprecated: Use GenRootCmdWithSettings instead. -func GenRootCmdWithRunFlags(name, version string, beatCreator beat.Creator, runFlags *pflag.FlagSet) *BeatsRootCmd { - return GenRootCmdWithIndexPrefixWithRunFlags(name, name, version, beatCreator, runFlags) -} - -// GenRootCmdWithIndexPrefixWithRunFlags returns the root command to use for your beat. It takes -// beat name, index prefix, version, run command, and runFlags. runFlags parameter must the flagset used by -// run command. -// -// Deprecated: Use GenRootCmdWithSettings instead. -func GenRootCmdWithIndexPrefixWithRunFlags(name, indexPrefix, version string, beatCreator beat.Creator, runFlags *pflag.FlagSet) *BeatsRootCmd { - settings := instance.Settings{ - Name: name, - IndexPrefix: indexPrefix, - Version: version, - RunFlags: runFlags, - } - return GenRootCmdWithSettings(beatCreator, settings) -} - // GenRootCmdWithSettings returns the root command to use for your beat. It take the // run command, which will be called if no args are given (for backwards compatibility), // and beat settings @@ -93,29 +60,24 @@ func GenRootCmdWithSettings(beatCreator beat.Creator, settings instance.Settings settings.IndexPrefix = settings.Name } - name := settings.Name - version := settings.Version - indexPrefix := settings.IndexPrefix - runFlags := settings.RunFlags - rootCmd := &BeatsRootCmd{} - rootCmd.Use = name + rootCmd.Use = settings.Name // Due to a dependence upon the beat name, the default config file path - err := cfgfile.ChangeDefaultCfgfileFlag(name) + err := cfgfile.ChangeDefaultCfgfileFlag(settings.Name) if err != nil { panic(fmt.Errorf("failed to set default config file path: %v", err)) } // must be updated prior to CLI flag handling. - rootCmd.RunCmd = genRunCmd(settings, beatCreator, runFlags) - rootCmd.SetupCmd = genSetupCmd(name, indexPrefix, version, beatCreator) - rootCmd.VersionCmd = genVersionCmd(name, version) - rootCmd.CompletionCmd = genCompletionCmd(name, version, rootCmd) - rootCmd.ExportCmd = genExportCmd(settings, name, indexPrefix, version) - rootCmd.TestCmd = genTestCmd(name, version, beatCreator) - rootCmd.KeystoreCmd = genKeystoreCmd(name, indexPrefix, version, runFlags) + rootCmd.RunCmd = genRunCmd(settings, beatCreator) + rootCmd.ExportCmd = genExportCmd(settings) + rootCmd.TestCmd = genTestCmd(settings, beatCreator) + rootCmd.SetupCmd = genSetupCmd(settings, beatCreator) + rootCmd.KeystoreCmd = genKeystoreCmd(settings) + rootCmd.VersionCmd = genVersionCmd(settings) + rootCmd.CompletionCmd = genCompletionCmd(settings, rootCmd) // Root command is an alias for run rootCmd.Run = rootCmd.RunCmd.Run diff --git a/libbeat/cmd/run.go b/libbeat/cmd/run.go index 4ebab4c6f7a..7e52fca3cc6 100644 --- a/libbeat/cmd/run.go +++ b/libbeat/cmd/run.go @@ -22,13 +22,12 @@ import ( "os" "github.com/spf13/cobra" - "github.com/spf13/pflag" "github.com/elastic/beats/libbeat/beat" "github.com/elastic/beats/libbeat/cmd/instance" ) -func genRunCmd(settings instance.Settings, beatCreator beat.Creator, runFlags *pflag.FlagSet) *cobra.Command { +func genRunCmd(settings instance.Settings, beatCreator beat.Creator) *cobra.Command { name := settings.Name runCmd := cobra.Command{ Use: "run", @@ -47,8 +46,8 @@ func genRunCmd(settings instance.Settings, beatCreator beat.Creator, runFlags *p runCmd.Flags().AddGoFlag(flag.CommandLine.Lookup("cpuprofile")) runCmd.Flags().AddGoFlag(flag.CommandLine.Lookup("memprofile")) - if runFlags != nil { - runCmd.Flags().AddFlagSet(runFlags) + if settings.RunFlags != nil { + runCmd.Flags().AddFlagSet(settings.RunFlags) } return &runCmd diff --git a/libbeat/cmd/setup.go b/libbeat/cmd/setup.go index 681776b8a15..eeed4389e8f 100644 --- a/libbeat/cmd/setup.go +++ b/libbeat/cmd/setup.go @@ -40,7 +40,7 @@ const ( ILMPolicyKey = "ilm-policy" ) -func genSetupCmd(name, idxPrefix, version string, beatCreator beat.Creator) *cobra.Command { +func genSetupCmd(settings instance.Settings, beatCreator beat.Creator) *cobra.Command { setup := cobra.Command{ Use: "setup", Short: "Setup index template, dashboards and ML jobs", @@ -53,7 +53,7 @@ func genSetupCmd(name, idxPrefix, version string, beatCreator beat.Creator) *cob * ILM policy (for Elasticsearch 6.5 and newer). `, Run: func(cmd *cobra.Command, args []string) { - beat, err := instance.NewBeat(name, idxPrefix, version) + beat, err := instance.NewBeat(settings.Name, settings.IndexPrefix, settings.Version) if err != nil { fmt.Fprintf(os.Stderr, "Error initializing beat: %s\n", err) os.Exit(1) @@ -103,7 +103,7 @@ func genSetupCmd(name, idxPrefix, version string, beatCreator beat.Creator) *cob } } - if err = beat.Setup(beatCreator, s); err != nil { + if err = beat.Setup(settings, beatCreator, s); err != nil { os.Exit(1) } }, diff --git a/libbeat/cmd/test.go b/libbeat/cmd/test.go index aedc9a97bf6..1b17eca8f03 100644 --- a/libbeat/cmd/test.go +++ b/libbeat/cmd/test.go @@ -21,17 +21,18 @@ import ( "github.com/spf13/cobra" "github.com/elastic/beats/libbeat/beat" + "github.com/elastic/beats/libbeat/cmd/instance" "github.com/elastic/beats/libbeat/cmd/test" ) -func genTestCmd(name, beatVersion string, beatCreator beat.Creator) *cobra.Command { +func genTestCmd(settings instance.Settings, beatCreator beat.Creator) *cobra.Command { exportCmd := &cobra.Command{ Use: "test", Short: "Test config", } - exportCmd.AddCommand(test.GenTestConfigCmd(name, beatVersion, beatCreator)) - exportCmd.AddCommand(test.GenTestOutputCmd(name, beatVersion)) + exportCmd.AddCommand(test.GenTestConfigCmd(settings, beatCreator)) + exportCmd.AddCommand(test.GenTestOutputCmd(settings)) return exportCmd } diff --git a/libbeat/cmd/test/config.go b/libbeat/cmd/test/config.go index 6d2423ff013..e8dfd07dae7 100644 --- a/libbeat/cmd/test/config.go +++ b/libbeat/cmd/test/config.go @@ -27,18 +27,18 @@ import ( "github.com/elastic/beats/libbeat/cmd/instance" ) -func GenTestConfigCmd(name, version string, beatCreator beat.Creator) *cobra.Command { +func GenTestConfigCmd(settings instance.Settings, beatCreator beat.Creator) *cobra.Command { configTestCmd := cobra.Command{ Use: "config", Short: "Test configuration settings", Run: func(cmd *cobra.Command, args []string) { - b, err := instance.NewBeat(name, "", version) + b, err := instance.NewBeat(settings.Name, settings.IndexPrefix, settings.Version) if err != nil { fmt.Fprintf(os.Stderr, "Error initializing beat: %s\n", err) os.Exit(1) } - if err = b.TestConfig(beatCreator); err != nil { + if err = b.TestConfig(settings, beatCreator); err != nil { os.Exit(1) } }, diff --git a/libbeat/cmd/test/output.go b/libbeat/cmd/test/output.go index ee855d8688b..55046b49e35 100644 --- a/libbeat/cmd/test/output.go +++ b/libbeat/cmd/test/output.go @@ -29,18 +29,18 @@ import ( "github.com/elastic/beats/libbeat/testing" ) -func GenTestOutputCmd(name, beatVersion string) *cobra.Command { +func GenTestOutputCmd(settings instance.Settings) *cobra.Command { return &cobra.Command{ Use: "output", - Short: "Test " + name + " can connect to the output by using the current settings", + Short: "Test " + settings.Name + " can connect to the output by using the current settings", Run: func(cmd *cobra.Command, args []string) { - b, err := instance.NewBeat(name, "", beatVersion) + b, err := instance.NewBeat(settings.Name, settings.IndexPrefix, settings.Version) if err != nil { fmt.Fprintf(os.Stderr, "Error initializing beat: %s\n", err) os.Exit(1) } - err = b.Init() + err = b.InitWithSettings(settings) if err != nil { fmt.Fprintf(os.Stderr, "Error initializing beat: %s\n", err) os.Exit(1) diff --git a/libbeat/cmd/version.go b/libbeat/cmd/version.go index 61c11e8e721..5660e627268 100644 --- a/libbeat/cmd/version.go +++ b/libbeat/cmd/version.go @@ -28,13 +28,13 @@ import ( "github.com/elastic/beats/libbeat/version" ) -func genVersionCmd(name, beatVersion string) *cobra.Command { +func genVersionCmd(settings instance.Settings) *cobra.Command { return &cobra.Command{ Use: "version", Short: "Show current version info", Run: cli.RunWith( func(_ *cobra.Command, args []string) error { - beat, err := instance.NewBeat(name, "", beatVersion) + beat, err := instance.NewBeat(settings.Name, settings.IndexPrefix, settings.Version) if err != nil { return fmt.Errorf("error initializing beat: %s", err) } diff --git a/libbeat/libbeat.go b/libbeat/libbeat.go index 381a36fe4ec..03327a00ec1 100644 --- a/libbeat/libbeat.go +++ b/libbeat/libbeat.go @@ -24,7 +24,7 @@ import ( "github.com/elastic/beats/libbeat/mock" ) -var RootCmd = cmd.GenRootCmd(mock.Name, mock.Version, mock.New) +var RootCmd = cmd.GenRootCmdWithSettings(mock.New, mock.Settings) func main() { if err := RootCmd.Execute(); err != nil { diff --git a/libbeat/mock/mockbeat.go b/libbeat/mock/mockbeat.go index 635e0b7a6db..22abab04570 100644 --- a/libbeat/mock/mockbeat.go +++ b/libbeat/mock/mockbeat.go @@ -21,6 +21,7 @@ import ( "time" "github.com/elastic/beats/libbeat/beat" + "github.com/elastic/beats/libbeat/cmd/instance" "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/logp" ) @@ -30,6 +31,8 @@ import ( var Version = "9.9.9" var Name = "mockbeat" +var Settings = instance.Settings{Name: Name, Version: Version} + type Mockbeat struct { done chan struct{} } diff --git a/metricbeat/cmd/root.go b/metricbeat/cmd/root.go index 13b7c4bf200..da441482bad 100644 --- a/metricbeat/cmd/root.go +++ b/metricbeat/cmd/root.go @@ -23,6 +23,7 @@ import ( "github.com/spf13/pflag" cmd "github.com/elastic/beats/libbeat/cmd" + "github.com/elastic/beats/libbeat/cmd/instance" "github.com/elastic/beats/metricbeat/beater" "github.com/elastic/beats/metricbeat/cmd/test" @@ -40,8 +41,7 @@ var RootCmd *cmd.BeatsRootCmd func init() { var runFlags = pflag.NewFlagSet(Name, pflag.ExitOnError) runFlags.AddGoFlag(flag.CommandLine.Lookup("system.hostfs")) - - RootCmd = cmd.GenRootCmdWithRunFlags(Name, "", beater.DefaultCreator(), runFlags) + RootCmd = cmd.GenRootCmdWithSettings(beater.DefaultCreator(), instance.Settings{RunFlags: runFlags, Name: Name}) RootCmd.AddCommand(cmd.GenModulesCmd(Name, "", buildModulesManager)) RootCmd.TestCmd.AddCommand(test.GenTestModulesCmd(Name, "")) } diff --git a/packetbeat/cmd/root.go b/packetbeat/cmd/root.go index ca0f87d6d93..db742e9fe91 100644 --- a/packetbeat/cmd/root.go +++ b/packetbeat/cmd/root.go @@ -26,6 +26,7 @@ import ( _ "github.com/elastic/beats/packetbeat/include" cmd "github.com/elastic/beats/libbeat/cmd" + "github.com/elastic/beats/libbeat/cmd/instance" "github.com/elastic/beats/packetbeat/beater" ) @@ -43,6 +44,6 @@ func init() { runFlags.AddGoFlag(flag.CommandLine.Lookup("l")) runFlags.AddGoFlag(flag.CommandLine.Lookup("dump")) - RootCmd = cmd.GenRootCmdWithRunFlags(Name, "", beater.New, runFlags) + RootCmd = cmd.GenRootCmdWithSettings(beater.New, instance.Settings{RunFlags: runFlags, Name: Name}) RootCmd.AddCommand(genDevicesCommand()) } diff --git a/winlogbeat/cmd/root.go b/winlogbeat/cmd/root.go index 4b89b926a3d..ab075711486 100644 --- a/winlogbeat/cmd/root.go +++ b/winlogbeat/cmd/root.go @@ -17,11 +17,14 @@ package cmd -import cmd "github.com/elastic/beats/libbeat/cmd" +import ( + cmd "github.com/elastic/beats/libbeat/cmd" + "github.com/elastic/beats/libbeat/cmd/instance" +) import "github.com/elastic/beats/winlogbeat/beater" // Name of this beat var Name = "winlogbeat" // RootCmd to handle beats cli -var RootCmd = cmd.GenRootCmd(Name, "", beater.New) +var RootCmd = cmd.GenRootCmdWithSettings(beater.New, instance.Settings{Name: Name}) diff --git a/x-pack/libbeat/libbeat.go b/x-pack/libbeat/libbeat.go index a5418d58bc8..8b789c199a8 100644 --- a/x-pack/libbeat/libbeat.go +++ b/x-pack/libbeat/libbeat.go @@ -13,7 +13,7 @@ import ( ) // RootCmd to test libbeat -var RootCmd = cmd.GenRootCmd(mock.Name, mock.Version, mock.New) +var RootCmd = cmd.GenRootCmdWithSettings(mock.New, mock.Settings) func main() { xpackcmd.AddXPack(RootCmd, mock.Name) From bb9a883e6b7dee8a6f4ade461c90ed7a80116262 Mon Sep 17 00:00:00 2001 From: Andrew Kroh Date: Thu, 14 Feb 2019 12:31:44 -0500 Subject: [PATCH 031/332] Add if/then/else support to processors (#10744) This allows for a condition to be used with a list of processors and for a list of processors to be executed if the condition does not match. This is a contrived example that adds fields and tags to the event if true, otherwise it drops the event. processors: [ { "if": { "and": [ { "equals.type": "login" }, { "range.uid.lt": 500 } ] }, "then": [ { "add_fields": { "target": "", "fields": { "uid_type": "reserved" } } }, { "add_tags": { "tags": [ "reserved_user_login" ] } } ], "else": { "drop_event": null } } ] --- CHANGELOG.next.asciidoc | 1 + libbeat/conditions/conditions.go | 2 +- libbeat/docs/processors-using.asciidoc | 26 +++++ libbeat/processors/actions/common_test.go | 13 ++- libbeat/processors/conditionals.go | 95 +++++++++++++++-- libbeat/processors/conditionals_test.go | 108 +++++++++++++++++++ libbeat/processors/config.go | 3 +- libbeat/processors/namespace.go | 13 +-- libbeat/processors/processor.go | 98 ++++++++++-------- libbeat/processors/processor_test.go | 120 ++++++---------------- libbeat/processors/registry.go | 2 +- 11 files changed, 329 insertions(+), 152 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index fada3441035..5255f24f89c 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -239,6 +239,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Add `overwrite` and `check_exists` settings to ILM support. {pull}10347[10347] - Generate Kibana index pattern on demand instead of using a local file. {pull}10478[10478] - Calls to Elasticsearch X-Pack APIs made by Beats won't cause deprecation logs in Elasticsearch logs. {9656}9656[9656] +- Add if/then/else support to processors. {pull}10744[10744] *Auditbeat* diff --git a/libbeat/conditions/conditions.go b/libbeat/conditions/conditions.go index 96c8d458a8a..c9186c15d78 100644 --- a/libbeat/conditions/conditions.go +++ b/libbeat/conditions/conditions.go @@ -86,7 +86,7 @@ func NewCondition(config *Config) (Condition, error) { condition, err = NewNotCondition(inner) } default: - err = errors.New("missing condition") + err = errors.New("missing or invalid condition") } if err != nil { return nil, err diff --git a/libbeat/docs/processors-using.asciidoc b/libbeat/docs/processors-using.asciidoc index 4332cd74132..809352ab079 100644 --- a/libbeat/docs/processors-using.asciidoc +++ b/libbeat/docs/processors-using.asciidoc @@ -31,6 +31,32 @@ condition is present, then the action is executed only if the condition is fulfilled. If no condition is passed, then the action is always executed. * `` is the list of parameters to pass to the processor. +More complex conditional processing can be accomplished by using the +if-then-else processor configuration. This allows multiple processors to be +executed based on a single condition. + +[source,yaml] +---- +processors: +- if: + + then: <1> + - : + + - : + + ... + else: <2> + - : + + - : + + ... +---- +<1> `then` must contain a single processor or a list of one or more processors +to execute when the condition evaluates to true. +<2> `else` is optional. It can contain a single processor or a list of +processors to execute when the conditional evaluate to false. [[where-valid]] ==== Where are processors valid? diff --git a/libbeat/processors/actions/common_test.go b/libbeat/processors/actions/common_test.go index 513fc3be502..70071f50852 100644 --- a/libbeat/processors/actions/common_test.go +++ b/libbeat/processors/actions/common_test.go @@ -44,12 +44,7 @@ func testProcessors(t *testing.T, cases map[string]testCase) { t.Fatalf("Failed to create config(%v): %+v", i, err) } - var plugin map[string]*common.Config - if err := config.Unpack(&plugin); err != nil { - t.Fatalf("Failed to unpack config: %+v", err) - } - - ps[i], err = processors.New(processors.PluginConfig{plugin}) + ps[i], err = processors.New([]*common.Config{config}) if err != nil { t.Fatalf("Failed to create add_tags processor(%v): %+v", i, err) } @@ -57,7 +52,11 @@ func testProcessors(t *testing.T, cases map[string]testCase) { current := &beat.Event{Fields: test.event.Clone()} for i, processor := range ps { - current = processor.Run(current) + var err error + current, err = processor.Run(current) + if err != nil { + t.Fatal(err) + } if current == nil { t.Fatalf("Event dropped(%v)", i) } diff --git a/libbeat/processors/conditionals.go b/libbeat/processors/conditionals.go index 427aa7b0805..ca563702f86 100644 --- a/libbeat/processors/conditionals.go +++ b/libbeat/processors/conditionals.go @@ -19,19 +19,15 @@ package processors import ( "fmt" + "strings" + + "github.com/pkg/errors" "github.com/elastic/beats/libbeat/beat" "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/conditions" - "github.com/elastic/beats/libbeat/logp" ) -// WhenProcessor is a tuple of condition plus a Processor. -type WhenProcessor struct { - condition conditions.Condition - p Processor -} - // NewConditional returns a constructor suitable for registering when conditionals as a plugin. func NewConditional( ruleFactory Constructor, @@ -60,6 +56,12 @@ func NewConditionList(config []conditions.Config) ([]conditions.Condition, error return out, nil } +// WhenProcessor is a tuple of condition plus a Processor. +type WhenProcessor struct { + condition conditions.Condition + p Processor +} + // NewConditionRule returns a processor that will execute the provided processor if the condition is true. func NewConditionRule( config conditions.Config, @@ -67,8 +69,7 @@ func NewConditionRule( ) (Processor, error) { cond, err := conditions.NewCondition(&config) if err != nil { - logp.Err("Failed to initialize lookup condition: %v", err) - return nil, err + return nil, errors.Wrap(err, "failed to initialize condition") } if cond == nil { @@ -108,3 +109,79 @@ func addCondition( return NewConditionRule(condConfig, p) } + +type ifThenElseConfig struct { + Cond conditions.Config `config:"if" validate:"required"` + Then *common.Config `config:"then" validate:"required"` + Else *common.Config `config:"else"` +} + +// IfThenElseProcessor executes one set of processors (then) if the condition is +// true and another set of processors (else) if the condition is false. +type IfThenElseProcessor struct { + cond conditions.Condition + then *Processors + els *Processors +} + +// NewIfElseThenProcessor construct a new IfThenElseProcessor. +func NewIfElseThenProcessor(cfg *common.Config) (*IfThenElseProcessor, error) { + var config ifThenElseConfig + if err := cfg.Unpack(&config); err != nil { + return nil, err + } + + cond, err := conditions.NewCondition(&config.Cond) + if err != nil { + return nil, err + } + + newProcessors := func(c *common.Config) (*Processors, error) { + if c == nil { + return nil, nil + } + if !c.IsArray() { + return New([]*common.Config{c}) + } + + var pc PluginConfig + if err := c.Unpack(&pc); err != nil { + return nil, err + } + return New(pc) + } + + var ifProcessors, elseProcessors *Processors + if ifProcessors, err = newProcessors(config.Then); err != nil { + return nil, err + } + if elseProcessors, err = newProcessors(config.Else); err != nil { + return nil, err + } + + return &IfThenElseProcessor{cond, ifProcessors, elseProcessors}, nil +} + +// Run checks the if condition and executes the processors attached to the +// then statement or the else statement based on the condition. +func (p *IfThenElseProcessor) Run(event *beat.Event) (*beat.Event, error) { + if p.cond.Check(event) { + return p.then.Run(event) + } else if p.els != nil { + return p.els.Run(event) + } + return event, nil +} + +func (p *IfThenElseProcessor) String() string { + var sb strings.Builder + sb.WriteString("if ") + sb.WriteString(p.cond.String()) + sb.WriteString(" then ") + sb.WriteString(p.then.String()) + if p.els != nil { + sb.WriteString(" else ") + sb.WriteString(p.els.String()) + } + return sb.String() +} diff --git a/libbeat/processors/conditionals_test.go b/libbeat/processors/conditionals_test.go index f07f88d6a2d..baf097b2385 100644 --- a/libbeat/processors/conditionals_test.go +++ b/libbeat/processors/conditionals_test.go @@ -122,3 +122,111 @@ func TestConditionRuleInitErrorPropagates(t *testing.T) { assert.Equal(t, testErr, err) assert.Nil(t, filter) } + +type testCase struct { + event common.MapStr + want common.MapStr + cfg string +} + +func testProcessors(t *testing.T, cases map[string]testCase) { + for name, test := range cases { + test := test + t.Run(name, func(t *testing.T) { + c, err := common.NewConfigWithYAML([]byte(test.cfg), "test "+name) + if err != nil { + t.Fatal(err) + } + + var pluginConfig PluginConfig + if err = c.Unpack(&pluginConfig); err != nil { + t.Fatal(err) + } + + processor, err := New(pluginConfig) + if err != nil { + t.Fatal(err) + } + + result, err := processor.Run(&beat.Event{Fields: test.event.Clone()}) + if err != nil { + t.Fatal(err) + } + assert.Equal(t, test.want, result.Fields) + }) + } +} + +func TestIfElseThenProcessor(t *testing.T) { + const ifThen = ` +- if: + range.uid.lt: 500 + then: + - add_fields: {target: "", fields: {uid_type: reserved}} +` + + const ifThenElse = ` +- if: + range.uid.lt: 500 + then: + - add_fields: {target: "", fields: {uid_type: reserved}} + else: + - add_fields: {target: "", fields: {uid_type: user}} +` + + const ifThenElseSingleProcessor = ` +- if: + range.uid.lt: 500 + then: + add_fields: {target: "", fields: {uid_type: reserved}} + else: + add_fields: {target: "", fields: {uid_type: user}} +` + + const ifThenElseIf = ` +- if: + range.uid.lt: 500 + then: + - add_fields: {target: "", fields: {uid_type: reserved}} + else: + if: + equals.uid: 500 + then: + add_fields: {target: "", fields: {uid_type: "eq_500"}} + else: + add_fields: {target: "", fields: {uid_type: "gt_500"}} +` + + testProcessors(t, map[string]testCase{ + "if-then-true": { + event: common.MapStr{"uid": 411}, + want: common.MapStr{"uid": 411, "uid_type": "reserved"}, + cfg: ifThen, + }, + "if-then-false": { + event: common.MapStr{"uid": 500}, + want: common.MapStr{"uid": 500}, + cfg: ifThen, + }, + "if-then-else-true": { + event: common.MapStr{"uid": 411}, + want: common.MapStr{"uid": 411, "uid_type": "reserved"}, + cfg: ifThenElse, + }, + "if-then-else-false": { + event: common.MapStr{"uid": 500}, + want: common.MapStr{"uid": 500, "uid_type": "user"}, + cfg: ifThenElse, + }, + "if-then-else-false-single-processor": { + event: common.MapStr{"uid": 500}, + want: common.MapStr{"uid": 500, "uid_type": "user"}, + cfg: ifThenElseSingleProcessor, + }, + "if-then-else-if": { + event: common.MapStr{"uid": 500}, + want: common.MapStr{"uid": 500, "uid_type": "eq_500"}, + cfg: ifThenElseIf, + }, + }) +} diff --git a/libbeat/processors/config.go b/libbeat/processors/config.go index 075cff5f72c..46be05753f4 100644 --- a/libbeat/processors/config.go +++ b/libbeat/processors/config.go @@ -21,7 +21,8 @@ import ( "github.com/elastic/beats/libbeat/common" ) -type PluginConfig []map[string]*common.Config +// PluginConfig represents the list of processors. +type PluginConfig []*common.Config // fields that should be always exported var MandatoryExportedFields = []string{"type"} diff --git a/libbeat/processors/namespace.go b/libbeat/processors/namespace.go index 0cba00ec165..cea3e53ef23 100644 --- a/libbeat/processors/namespace.go +++ b/libbeat/processors/namespace.go @@ -18,10 +18,11 @@ package processors import ( - "errors" "fmt" "strings" + "github.com/pkg/errors" + "github.com/elastic/beats/libbeat/common" ) @@ -58,7 +59,7 @@ func (ns *Namespace) add(names []string, p pluginer) error { // register plugin if intermediate node in path being processed if len(names) == 1 { if _, found := ns.reg[name]; found { - return errors.New("exists already") + return errors.Errorf("%v exists already", name) } ns.reg[name] = p @@ -94,20 +95,20 @@ func (ns *Namespace) Plugin() Constructor { } if section != "" { - return nil, fmt.Errorf("Too many lookup modules configured (%v, %v)", - section, name) + return nil, errors.Errorf("too many lookup modules "+ + "configured (%v, %v)", section, name) } section = name } if section == "" { - return nil, errors.New("No lookup module configured") + return nil, errors.New("no lookup module configured") } backend, found := ns.reg[section] if !found { - return nil, fmt.Errorf("Unknown lookup module: %v", section) + return nil, errors.Errorf("unknown lookup module: %v", section) } config, err := cfg.Child(section, -1) diff --git a/libbeat/processors/processor.go b/libbeat/processors/processor.go index f530d01e365..4ca42788a97 100644 --- a/libbeat/processors/processor.go +++ b/libbeat/processors/processor.go @@ -18,16 +18,21 @@ package processors import ( - "fmt" "strings" + "github.com/pkg/errors" + "github.com/elastic/beats/libbeat/beat" "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/logp" ) +const logName = "processors" + +// Processors is type Processors struct { List []Processor + log *logp.Logger } type Processor interface { @@ -36,35 +41,53 @@ type Processor interface { } func New(config PluginConfig) (*Processors, error) { - procs := Processors{} - - for _, processor := range config { + procs := &Processors{ + log: logp.NewLogger(logName), + } - if len(processor) != 1 { - return nil, fmt.Errorf("each processor needs to have exactly one action, but found %d actions", - len(processor)) + for _, procConfig := range config { + // Handle if/then/else processor which has multiple top-level keys. + if procConfig.HasField("if") { + p, err := NewIfElseThenProcessor(procConfig) + if err != nil { + return nil, errors.Wrap(err, "failed to make if/then/else processor") + } + procs.add(p) + continue } - for processorName, cfg := range processor { + if len(procConfig.GetFields()) != 1 { + return nil, errors.Errorf("each processor must have exactly one "+ + "action, but found %d actions (%v)", + len(procConfig.GetFields()), + strings.Join(procConfig.GetFields(), ",")) + } - gen, exists := registry.reg[processorName] - if !exists { - return nil, fmt.Errorf("the processor %s doesn't exist", processorName) - } + actionName := procConfig.GetFields()[0] + actionCfg, err := procConfig.Child(actionName, -1) + if err != nil { + return nil, err + } - cfg.PrintDebugf("Configure processor '%v' with:", processorName) - constructor := gen.Plugin() - plugin, err := constructor(cfg) - if err != nil { - return nil, err - } + gen, exists := registry.reg[actionName] + if !exists { + return nil, errors.Errorf("the processor action %s does not exist", actionName) + } - procs.add(plugin) + actionCfg.PrintDebugf("Configure processor action '%v' with:", actionName) + constructor := gen.Plugin() + plugin, err := constructor(actionCfg) + if err != nil { + return nil, err } + + procs.add(plugin) } - logp.Debug("processors", "Processors: %v", procs) - return &procs, nil + if len(procs.List) > 0 { + procs.log.Debugf("Generated new processors: %v", procs) + } + return procs, nil } func (procs *Processors) add(p Processor) { @@ -78,7 +101,10 @@ func (procs *Processors) add(p Processor) { // Note: this method will be removed, when the publisher pipeline BC-API is to // be removed. func (procs *Processors) RunBC(event common.MapStr) common.MapStr { - ret := procs.Run(&beat.Event{Fields: event}) + ret, err := procs.Run(&beat.Event{Fields: event}) + if err != nil { + procs.log.Debugw("Error in processor pipeline", "error", err) + } if ret == nil { return nil } @@ -97,32 +123,22 @@ func (procs *Processors) All() []beat.Processor { return ret } -// Applies a sequence of processing rules and returns the filtered event -func (procs *Processors) Run(event *beat.Event) *beat.Event { - // Check if processors are set, just return event if not - if len(procs.List) == 0 { - return event - } - +// Run executes the all processors serially and returns the event and possibly +// an error. If the event has been dropped (canceled) by a processor in the +// list then a nil event is returned. +func (procs *Processors) Run(event *beat.Event) (*beat.Event, error) { + var err error for _, p := range procs.List { - var err error event, err = p.Run(event) if err != nil { - // XXX: We don't drop the event, but continue filtering here iff the most - // recent processor did return an event. - // We want processors having this kind of implicit behavior - // on errors? - - logp.Debug("filter", "fail to apply processor %s: %s", p, err) + return event, errors.Wrapf(err, "failed applying processor %v", p) } - if event == nil { - // drop event - return nil + // Drop. + return nil, nil } } - - return event + return event, nil } func (procs Processors) String() string { diff --git a/libbeat/processors/processor_test.go b/libbeat/processors/processor_test.go index f1f2d891432..b6168aa4118 100644 --- a/libbeat/processors/processor_test.go +++ b/libbeat/processors/processor_test.go @@ -31,26 +31,29 @@ import ( _ "github.com/elastic/beats/libbeat/processors/add_cloud_metadata" ) -func GetProcessors(t *testing.T, yml []map[string]interface{}) *processors.Processors { - config := processors.PluginConfig{} +func GetProcessors(t testing.TB, yml []map[string]interface{}) *processors.Processors { + list, err := MakeProcessors(t, yml) + if err != nil { + t.Fatal(err) + } - for _, action := range yml { - c := map[string]*common.Config{} + return list +} - for name, actionYml := range action { - actionConfig, err := common.NewConfigFrom(actionYml) - assert.Nil(t, err) +func MakeProcessors(t testing.TB, yml []map[string]interface{}) (*processors.Processors, error) { + t.Helper() - c[name] = actionConfig + var config processors.PluginConfig + for _, processor := range yml { + processorCfg, err := common.NewConfigFrom(processor) + if err != nil { + t.Fatal(err) } - config = append(config, c) + config = append(config, processorCfg) } - list, err := processors.New(config) - assert.Nil(t, err) - - return list + return processors.New(config) } func TestBadConfig(t *testing.T) { @@ -72,22 +75,8 @@ func TestBadConfig(t *testing.T) { }, } - config := processors.PluginConfig{} - - for _, action := range yml { - c := map[string]*common.Config{} - - for name, actionYml := range action { - actionConfig, err := common.NewConfigFrom(actionYml) - assert.Nil(t, err) - - c[name] = actionConfig - } - config = append(config, c) - } - - _, err := processors.New(config) - assert.NotNil(t, err) + _, err := MakeProcessors(t, yml) + assert.Error(t, err) } func TestIncludeFields(t *testing.T) { @@ -136,7 +125,10 @@ func TestIncludeFields(t *testing.T) { }, } - processedEvent := processors.Run(event) + processedEvent, err := processors.Run(event) + if err != nil { + t.Fatal(err) + } expectedEvent := common.MapStr{ "proc": common.MapStr{ @@ -202,7 +194,7 @@ func TestIncludeFields1(t *testing.T) { }, } - processedEvent := processors.Run(event) + processedEvent, _ := processors.Run(event) expectedEvent := common.MapStr{ "type": "process", @@ -255,7 +247,7 @@ func TestDropFields(t *testing.T) { }, } - processedEvent := processors.Run(event) + processedEvent, _ := processors.Run(event) expectedEvent := common.MapStr{ "proc": common.MapStr{ @@ -362,8 +354,8 @@ func TestMultipleIncludeFields(t *testing.T) { "type": "process", } - actual1 := processors.Run(event1) - actual2 := processors.Run(event2) + actual1, _ := processors.Run(event1) + actual2, _ := processors.Run(event2) assert.Equal(t, expected1, actual1.Fields) assert.Equal(t, expected2, actual2.Fields) @@ -416,7 +408,7 @@ func TestDropEvent(t *testing.T) { }, } - processedEvent := processors.Run(event) + processedEvent, _ := processors.Run(event) assert.Nil(t, processedEvent) } @@ -460,7 +452,7 @@ func TestEmptyCondition(t *testing.T) { }, } - processedEvent := processors.Run(event) + processedEvent, _ := processors.Run(event) assert.Nil(t, processedEvent) } @@ -480,23 +472,7 @@ func TestBadCondition(t *testing.T) { }, } - config := processors.PluginConfig{} - - for _, action := range yml { - c := map[string]*common.Config{} - - for name, actionYml := range action { - actionConfig, err := common.NewConfigFrom(actionYml) - if err != nil { - t.Fatal(err) - } - - c[name] = actionConfig - } - config = append(config, c) - } - - _, err := processors.New(config) + _, err := MakeProcessors(t, yml) assert.Error(t, err) } @@ -515,22 +491,8 @@ func TestMissingFields(t *testing.T) { }, } - config := processors.PluginConfig{} - - for _, action := range yml { - c := map[string]*common.Config{} - - for name, actionYml := range action { - actionConfig, err := common.NewConfigFrom(actionYml) - assert.Nil(t, err) - - c[name] = actionConfig - } - config = append(config, c) - } - - _, err := processors.New(config) - assert.NotNil(t, err) + _, err := MakeProcessors(t, yml) + assert.Error(t, err) } func TestBadConditionConfig(t *testing.T) { @@ -549,22 +511,8 @@ func TestBadConditionConfig(t *testing.T) { }, } - config := processors.PluginConfig{} - - for _, action := range yml { - c := map[string]*common.Config{} - - for name, actionYml := range action { - actionConfig, err := common.NewConfigFrom(actionYml) - assert.Nil(t, err) - - c[name] = actionConfig - } - config = append(config, c) - } - - _, err := processors.New(config) - assert.NotNil(t, err) + _, err := MakeProcessors(t, yml) + assert.Error(t, err) } func TestDropMissingFields(t *testing.T) { @@ -606,7 +554,7 @@ func TestDropMissingFields(t *testing.T) { }, } - processedEvent := processors.Run(event) + processedEvent, _ := processors.Run(event) expectedEvent := common.MapStr{ "proc": common.MapStr{ diff --git a/libbeat/processors/registry.go b/libbeat/processors/registry.go index ca5947fa40c..f8e32c5c78f 100644 --- a/libbeat/processors/registry.go +++ b/libbeat/processors/registry.go @@ -52,7 +52,7 @@ type Constructor func(config *common.Config) (Processor, error) var registry = NewNamespace() func RegisterPlugin(name string, constructor Constructor) { - logp.Debug("processors", "Register plugin %s", name) + logp.L().Named(logName).Debugf("Register plugin %s", name) err := registry.Register(name, constructor) if err != nil { From e9183c2e237b1fd79783b862c93c50b1cb7d40c1 Mon Sep 17 00:00:00 2001 From: Andrew Kroh Date: Thu, 14 Feb 2019 14:07:33 -0500 Subject: [PATCH 032/332] Add network condition for matching IP network ranges (#10743) The `network` condition checks if the field is in a certain IP network range. Both IPv4 and IPv6 addresses are supported. The network range may be specified using CIDR notation, like "192.0.2.0/24" or "2001:db8::/32", or by using one of these named ranges: - `loopback` - Matches loopback addresses in the range of `127.0.0.0/8` or `::1/128`. - `unicast` - Matches global unicast addresses defined in RFC 1122, RFC 4632, and RFC 4291 with the exception of the IPv4 broadcast address (`255.255.255.255`). This includes private address ranges. - `multicast` - Matches multicast addresses. - `interface_local_multicast` - Matches IPv6 interface-local multicast addresses. - `link_local_unicast` - Matches link-local unicast addresses. - `link_local_multicast` - Matches link-local multicast addresses. - `private` - Matches private address ranges defined in RFC 1918 (IPv4) and RFC 4193 (IPv6). - `public` - Matches addresses that are not loopback, unspecified, IPv4 broadcast, link local unicast, link local multicast, interface local multicast, or private. - `unspecified` - Matches unspecified addresses (either the IPv4 address "0.0.0.0" or the IPv6 address "::"). Example GUEST_NET: 172.16.0.0/16 processors: - add_fields: when: or: - source.ip: ${GUEST_NET} - destination.ip: ${GUEST_NET} fields: network.name: guest target: "" --- CHANGELOG.next.asciidoc | 1 + libbeat/conditions/conditions.go | 19 +- libbeat/conditions/conditions_test.go | 6 +- libbeat/conditions/network.go | 263 ++++++++++++++++++++++++ libbeat/conditions/network_test.go | 268 +++++++++++++++++++++++++ libbeat/docs/processors-using.asciidoc | 53 +++++ 6 files changed, 600 insertions(+), 10 deletions(-) create mode 100644 libbeat/conditions/network.go create mode 100644 libbeat/conditions/network_test.go diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 5255f24f89c..7a4b7a95dd8 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -239,6 +239,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Add `overwrite` and `check_exists` settings to ILM support. {pull}10347[10347] - Generate Kibana index pattern on demand instead of using a local file. {pull}10478[10478] - Calls to Elasticsearch X-Pack APIs made by Beats won't cause deprecation logs in Elasticsearch logs. {9656}9656[9656] +- Add `network` condition to processors for matching IP addresses against CIDRs. {pull}10743[10743] - Add if/then/else support to processors. {pull}10744[10744] *Auditbeat* diff --git a/libbeat/conditions/conditions.go b/libbeat/conditions/conditions.go index c9186c15d78..586e185df51 100644 --- a/libbeat/conditions/conditions.go +++ b/libbeat/conditions/conditions.go @@ -28,14 +28,15 @@ const logName = "conditions" // Config represents a configuration for a condition, as you would find it in the config files. type Config struct { - Equals *Fields `config:"equals"` - Contains *Fields `config:"contains"` - Regexp *Fields `config:"regexp"` - Range *Fields `config:"range"` - HasFields []string `config:"has_fields"` - OR []Config `config:"or"` - AND []Config `config:"and"` - NOT *Config `config:"not"` + Equals *Fields `config:"equals"` + Contains *Fields `config:"contains"` + Regexp *Fields `config:"regexp"` + Range *Fields `config:"range"` + HasFields []string `config:"has_fields"` + Network map[string]interface{} `config:"network"` + OR []Config `config:"or"` + AND []Config `config:"and"` + NOT *Config `config:"not"` } // Condition is the interface for all defined conditions @@ -71,6 +72,8 @@ func NewCondition(config *Config) (Condition, error) { condition, err = NewRangeCondition(config.Range.fields) case config.HasFields != nil: condition = NewHasFieldsCondition(config.HasFields) + case config.Network != nil: + condition, err = NewNetworkCondition(config.Network) case len(config.OR) > 0: var conditionsList []Condition conditionsList, err = NewConditionList(config.OR) diff --git a/libbeat/conditions/conditions_test.go b/libbeat/conditions/conditions_test.go index 8eb87569680..8de958a1480 100644 --- a/libbeat/conditions/conditions_test.go +++ b/libbeat/conditions/conditions_test.go @@ -105,10 +105,12 @@ var httpResponseTestEvent = &beat.Event{ } func testConfig(t *testing.T, expected bool, event *beat.Event, config *Config) { + t.Helper() logp.TestingSetup() cond, err := NewCondition(config) - assert.Nil(t, err) - assert.Equal(t, expected, cond.Check(event)) + if assert.NoError(t, err) { + assert.Equal(t, expected, cond.Check(event)) + } } func TestCombinedCondition(t *testing.T) { diff --git a/libbeat/conditions/network.go b/libbeat/conditions/network.go new file mode 100644 index 00000000000..2b0b2df42b7 --- /dev/null +++ b/libbeat/conditions/network.go @@ -0,0 +1,263 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package conditions + +import ( + "fmt" + "net" + "strings" + + "github.com/pkg/errors" + + "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/logp" +) + +var ( + // RFC 1918 + privateIPv4 = []net.IPNet{ + {IP: net.IPv4(10, 0, 0, 0), Mask: net.IPv4Mask(255, 0, 0, 0)}, + {IP: net.IPv4(172, 16, 0, 0), Mask: net.IPv4Mask(255, 240, 0, 0)}, + {IP: net.IPv4(192, 168, 0, 0), Mask: net.IPv4Mask(255, 255, 0, 0)}, + } + + // RFC 4193 + privateIPv6 = net.IPNet{ + IP: net.IP{0xfd, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + Mask: net.IPMask{0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + } + + namedNetworks = map[string]netContainsFunc{ + "loopback": func(ip net.IP) bool { return ip.IsLoopback() }, + "global_unicast": func(ip net.IP) bool { return ip.IsGlobalUnicast() }, + "unicast": func(ip net.IP) bool { return ip.IsGlobalUnicast() }, + "link_local_unicast": func(ip net.IP) bool { return ip.IsLinkLocalUnicast() }, + "interface_local_multicast": func(ip net.IP) bool { return ip.IsInterfaceLocalMulticast() }, + "link_local_multicast": func(ip net.IP) bool { return ip.IsLinkLocalMulticast() }, + "multicast": func(ip net.IP) bool { return ip.IsMulticast() }, + "unspecified": func(ip net.IP) bool { return ip.IsUnspecified() }, + "private": isPrivateNetwork, + "public": func(ip net.IP) bool { return !isLocalOrPrivate(ip) }, + } +) + +// Network is a condition that tests if an IP address is in a network range. +type Network struct { + fields map[string]networkMatcher + log *logp.Logger +} + +type networkMatcher interface { + fmt.Stringer + Contains(net.IP) bool +} + +type netContainsFunc func(net.IP) bool + +type singleNetworkMatcher struct { + name string + netContainsFunc +} + +func (m singleNetworkMatcher) Contains(ip net.IP) bool { return m.netContainsFunc(ip) } +func (m singleNetworkMatcher) String() string { return m.name } + +type multiNetworkMatcher []networkMatcher + +func (m multiNetworkMatcher) Contains(ip net.IP) bool { + for _, network := range m { + if network.Contains(ip) { + return true + } + } + return false +} + +func (m multiNetworkMatcher) String() string { + var names []string + for _, network := range m { + names = append(names, network.String()) + } + return strings.Join(names, " OR ") +} + +// NewNetworkCondition builds a new Network using the given configuration. +func NewNetworkCondition(fields map[string]interface{}) (*Network, error) { + cond := &Network{ + fields: map[string]networkMatcher{}, + log: logp.NewLogger(logName), + } + + makeMatcher := func(network string) (networkMatcher, error) { + m := singleNetworkMatcher{name: network, netContainsFunc: namedNetworks[network]} + if m.netContainsFunc == nil { + subnet, err := parseCIDR(network) + if err != nil { + return nil, err + } + m.netContainsFunc = subnet.Contains + } + return m, nil + } + + invalidTypeError := func(field string, value interface{}) error { + return fmt.Errorf("network condition attempted to set "+ + "'%v' -> '%v' and encountered unexpected type '%T', only "+ + "strings or []strings are allowed", field, value, value) + } + + for field, value := range common.MapStr(fields).Flatten() { + switch v := value.(type) { + case string: + m, err := makeMatcher(v) + if err != nil { + return nil, err + } + cond.fields[field] = m + case []interface{}: + var matchers multiNetworkMatcher + for _, networkIfc := range v { + network, ok := networkIfc.(string) + if !ok { + return nil, invalidTypeError(field, networkIfc) + } + m, err := makeMatcher(network) + if err != nil { + return nil, err + } + matchers = append(matchers, m) + } + cond.fields[field] = matchers + default: + return nil, invalidTypeError(field, value) + } + } + + return cond, nil +} + +// Check determines whether the given event matches this condition. +func (c *Network) Check(event ValuesMap) bool { + for field, network := range c.fields { + value, err := event.GetValue(field) + if err != nil { + return false + } + + ip := extractIP(value) + if ip == nil { + c.log.Debugf("Invalid IP address in field=%v for network condition", field) + return false + } + + if !network.Contains(ip) { + return false + } + } + + return true +} + +// String returns a string representation of the Network condition. +func (c *Network) String() string { + var sb strings.Builder + sb.WriteString("network:(") + var i int + for field, network := range c.fields { + sb.WriteString(field) + sb.WriteString(":") + sb.WriteString(network.String()) + if i < len(c.fields)-1 { + sb.WriteString(" AND ") + } + i++ + } + sb.WriteString(")") + return sb.String() +} + +// parseCIDR parses a network CIDR. +func parseCIDR(value string) (*net.IPNet, error) { + _, mask, err := net.ParseCIDR(value) + return mask, errors.Wrap(err, "failed to parse CIDR, values must be "+ + "an IP address and prefix length, like '192.0.2.0/24' or "+ + "'2001:db8::/32', as defined in RFC 4632 and RFC 4291.") +} + +// extractIP return an IP address if unk is an IP address string or a net.IP. +// Otherwise it returns nil. +func extractIP(unk interface{}) net.IP { + switch v := unk.(type) { + case string: + return net.ParseIP(v) + case net.IP: + return v + default: + return nil + } +} + +func isPrivateNetwork(ip net.IP) bool { + for _, net := range privateIPv4 { + if net.Contains(ip) { + return true + } + } + + return privateIPv6.Contains(ip) +} + +func isLocalOrPrivate(ip net.IP) bool { + return isPrivateNetwork(ip) || + ip.IsLoopback() || + ip.IsUnspecified() || + ip.Equal(net.IPv4bcast) || + ip.IsLinkLocalUnicast() || + ip.IsLinkLocalMulticast() || + ip.IsInterfaceLocalMulticast() +} + +// NetworkContains returns true if the given IP is contained by any of the +// networks. networks can be a CIDR or any of these named networks: +// - loopback +// - global_unicast +// - unicast +// - link_local_unicast +// - interface_local_multicast +// - link_local_multicast +// - multicast +// - unspecified +// - private +// - public +func NetworkContains(ip net.IP, networks ...string) (bool, error) { + for _, net := range networks { + contains, found := namedNetworks[net] + if !found { + subnet, err := parseCIDR(net) + if err != nil { + return false, err + } + contains = subnet.Contains + } + + if contains(ip) { + return true, nil + } + } + return false, nil +} diff --git a/libbeat/conditions/network_test.go b/libbeat/conditions/network_test.go new file mode 100644 index 00000000000..57676eca54d --- /dev/null +++ b/libbeat/conditions/network_test.go @@ -0,0 +1,268 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package conditions + +import ( + "net" + "testing" + "time" + + "github.com/stretchr/testify/assert" + + "github.com/elastic/beats/libbeat/beat" + "github.com/elastic/beats/libbeat/common" +) + +func TestNetworkConfigUnpack(t *testing.T) { + testYAMLConfig := func(t *testing.T, expected bool, evt *beat.Event, yml string) { + c, err := common.NewConfigWithYAML([]byte(yml), "test") + if err != nil { + t.Fatal(err) + } + + var config Config + if err = c.Unpack(&config); err != nil { + t.Fatal(err) + } + + testConfig(t, expected, evt, &config) + } + + t.Run("string values", func(t *testing.T) { + const yaml = ` +network: + client_ip: loopback + ip: loopback +` + testYAMLConfig(t, true, httpResponseTestEvent, yaml) + }) + + t.Run("array values", func(t *testing.T) { + const yaml = ` +network: + client_ip: [loopback] + ip: [loopback] +` + testYAMLConfig(t, true, httpResponseTestEvent, yaml) + }) + + t.Run("nested keys", func(t *testing.T) { + const yaml = ` +network: + ip: + client: [loopback] + server: [loopback] +` + + evt := &beat.Event{Fields: common.MapStr{ + "ip": common.MapStr{ + "client": "127.0.0.1", + "server": "127.0.0.1", + }, + }} + + testYAMLConfig(t, true, evt, yaml) + }) +} + +func TestNetworkCreate(t *testing.T) { + t.Run("all options", func(t *testing.T) { + c, err := NewCondition(&Config{ + Network: map[string]interface{}{ + "ipv4_ip": "192.168.10.1/16", + "ipv6_ip": "fd00::/8", + "loopback_ip": "loopback", + "unicast_ip": "unicast", + "global_unicast_ip": "global_unicast", + "link_local_unicast_ip": "link_local_unicast", + "interface_local_multicast_ip": "interface_local_multicast", + "link_local_multicast_ip": "link_local_multicast", + "multicast_ip": "multicast", + "unspecified_ip": "unspecified", + "private_ip": "private", + "public_ip": "public", + }, + }) + if assert.NoError(t, err) { + t.Log(c) + } + }) + + t.Run("invalid keyword", func(t *testing.T) { + _, err := NewCondition(&Config{ + Network: map[string]interface{}{ + "invalid": "loop-back", + }, + }) + assert.Error(t, err) + }) + + t.Run("bad cidr", func(t *testing.T) { + _, err := NewCondition(&Config{ + Network: map[string]interface{}{ + "bad_cidr": "127.0/8", + }, + }) + assert.Error(t, err) + }) + + t.Run("bad type", func(t *testing.T) { + _, err := NewCondition(&Config{ + Network: map[string]interface{}{ + "bad_type": 1, + }, + }) + assert.Error(t, err) + }) +} + +func TestNetworkCheck(t *testing.T) { + t.Run("match loopback", func(t *testing.T) { + testConfig(t, true, httpResponseTestEvent, &Config{ + Network: map[string]interface{}{ + "ip": "127.0.0.0/8", + }, + }) + }) + + t.Run("negative match", func(t *testing.T) { + testConfig(t, false, httpResponseTestEvent, &Config{ + Network: map[string]interface{}{ + "ip": "192.168.0.0/16", + }, + }) + }) + + t.Run("wrong field value type", func(t *testing.T) { + testConfig(t, false, httpResponseTestEvent, &Config{ + Network: map[string]interface{}{ + "status": "unicast", + }, + }) + }) + + t.Run("multiple fields match", func(t *testing.T) { + testConfig(t, true, httpResponseTestEvent, &Config{ + Network: map[string]interface{}{ + "client_ip": "loopback", + "ip": "127.0.0.0/24", + }, + }) + }) + + // Multiple conditions are treated as an implicit AND. + t.Run("multiple fields negative match", func(t *testing.T) { + testConfig(t, false, httpResponseTestEvent, &Config{ + Network: map[string]interface{}{ + "client_ip": "multicast", + "ip": "127.0.0.0/24", + }, + }) + }) + + t.Run("field not present", func(t *testing.T) { + testConfig(t, false, httpResponseTestEvent, &Config{ + Network: map[string]interface{}{ + "does_not_exist": "multicast", + }, + }) + }) + + t.Run("multiple values match", func(t *testing.T) { + testConfig(t, true, httpResponseTestEvent, &Config{ + Network: map[string]interface{}{ + "client_ip": []interface{}{"public", "loopback"}, + }, + }) + }) +} + +func TestNetworkPrivate(t *testing.T) { + t.Run("ranges", func(t *testing.T) { + var equal = func(cidr string, actual net.IPNet) { + _, network, err := net.ParseCIDR(cidr) + if err != nil { + t.Fatal(err) + } + + assert.True(t, network.IP.Equal(actual.IP)) + assert.EqualValues(t, network.Mask, actual.Mask) + } + + equal("fd00::/8", privateIPv6) + equal("10.0.0.0/8", privateIPv4[0]) + equal("172.16.0.0/12", privateIPv4[1]) + equal("192.168.0.0/16", privateIPv4[2]) + }) + + t.Run("match", func(t *testing.T) { + isPrivate := func(ip string) { assert.True(t, isPrivateNetwork(net.ParseIP(ip)), "%v", ip) } + isPrivate("10.0.0.0") + isPrivate("10.255.255.255") + isPrivate("192.168.0.0") + isPrivate("192.168.255.255") + isPrivate("172.16.0.0") + isPrivate("172.31.255.255") + isPrivate("fd11:3456:789a:1::1") + + isNotPrivate := func(ip string) { assert.False(t, isPrivateNetwork(net.ParseIP(ip)), "%v", ip) } + isNotPrivate("192.0.2.1") + isNotPrivate("2001:db8:ffff:ffff:ffff:ffff:ffff:1") + }) +} + +func TestNetworkContains(t *testing.T) { + ip := net.ParseIP("192.168.0.1") + + contains, err := NetworkContains(ip, "192.168.1.0/24", "192.168.0.0/24") + assert.NoError(t, err) + assert.True(t, contains) + + contains, err = NetworkContains(ip, "192.168.1.1", "192.168.0.0/24") + assert.Error(t, err) + assert.False(t, contains) + + // The second network is invalid but we don't validate them upfront. + contains, err = NetworkContains(ip, "192.168.0.0/24", "192.168.1.1") + assert.NoError(t, err) + assert.True(t, contains) +} + +func BenchmarkNetworkCondition(b *testing.B) { + c, err := NewCondition(&Config{ + Network: map[string]interface{}{ + "ip": "192.168.0.1/16", + }, + }) + if err != nil { + b.Fatal(err) + } + + event := &beat.Event{ + Timestamp: time.Now(), + Fields: common.MapStr{ + "@timestamp": "2015-06-11T09:51:23.642Z", + "ip": "192.168.0.92", + }, + } + + b.ResetTimer() + for i := 0; i < b.N; i++ { + c.Check(event) + } +} diff --git a/libbeat/docs/processors-using.asciidoc b/libbeat/docs/processors-using.asciidoc index 809352ab079..a2091e84292 100644 --- a/libbeat/docs/processors-using.asciidoc +++ b/libbeat/docs/processors-using.asciidoc @@ -227,6 +227,7 @@ The supported conditions are: * <> * <> * <> +* <> * <> * <> * <> @@ -318,6 +319,58 @@ range: system.cpu.user.pct.lt: 0.8 ------ +[float] +[[condition-network]] +===== `network` + +The `network` condition checks if the field is in a certain IP network range. +Both IPv4 and IPv6 addresses are supported. The network range may be specified +using CIDR notation, like "192.0.2.0/24" or "2001:db8::/32", or by using one of +these named ranges: + +- `loopback` - Matches loopback addresses in the range of `127.0.0.0/8` or + `::1/128`. +- `unicast` - Matches global unicast addresses defined in RFC 1122, RFC 4632, + and RFC 4291 with the exception of the IPv4 broadcast address + (`255.255.255.255`). This includes private address ranges. +- `multicast` - Matches multicast addresses. +- `interface_local_multicast` - Matches IPv6 interface-local multicast addresses. +- `link_local_unicast` - Matches link-local unicast addresses. +- `link_local_multicast` - Matches link-local multicast addresses. +- `private` - Matches private address ranges defined in RFC 1918 (IPv4) and + RFC 4193 (IPv6). +- `public` - Matches addresses that are not loopback, unspecified, IPv4 + broadcast, link local unicast, link local multicast, interface local + multicast, or private. +- `unspecified` - Matches unspecified addresses (either the IPv4 address + "0.0.0.0" or the IPv6 address "::"). + +The following condition returns true if the `source.ip` value is within the +private address space. + +[source,yaml] +---- +network: + source.ip: private +---- + +This condition returns true if the `destination.ip` value is within the +IPv4 range of `192.168.1.0` - `192.168.1.255`. + +[source,yaml] +---- +network: + destination.ip: '192.168.1.0/24' +---- + +And this condition returns true when `destination.ip` is within any of the given +subnets. + +[source,yaml] +---- +network: + destination.ip: ['192.168.1.0/24', '10.0.0.0/8', loopback] +---- [float] [[condition-has_fields]] From 072e63cd1f55d3a5d88d46d642fcad7ee33cb1c3 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Thu, 14 Feb 2019 13:28:18 -0800 Subject: [PATCH 033/332] Fix attribute references (#10742) --- libbeat/docs/security/basic-auth.asciidoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libbeat/docs/security/basic-auth.asciidoc b/libbeat/docs/security/basic-auth.asciidoc index 9c6ea0ec436..986b277d630 100644 --- a/libbeat/docs/security/basic-auth.asciidoc +++ b/libbeat/docs/security/basic-auth.asciidoc @@ -79,12 +79,12 @@ rollover indices: -- ["source","sh",subs="attributes"] --------------------------------------------------------------- -POST _xpack/security/role/{beatname_lc}_ilm +POST _xpack/security/role/{beat_default_index_prefix}_ilm { "cluster": ["manage_ilm"], "indices": [ { - "names": [ "{beatname_lc}-*","shrink-{beatname_lc}-*"], + "names": [ "{beat_default_index_prefix}-*","shrink-{beat_default_index_prefix}-*"], "privileges": ["write","create_index","manage","manage_ilm"] } ] From 1eba9522dcc38d50439ab1350b060884eeaed2af Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Thu, 14 Feb 2019 13:51:36 -0800 Subject: [PATCH 034/332] Add systemd compatibility statement (#10740) --- journalbeat/docs/overview.asciidoc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/journalbeat/docs/overview.asciidoc b/journalbeat/docs/overview.asciidoc index 815de9bc8a0..96f7098981b 100644 --- a/journalbeat/docs/overview.asciidoc +++ b/journalbeat/docs/overview.asciidoc @@ -13,3 +13,9 @@ https://www.elastic.co/products/elasticsearch[Elasticsearch] or https://www.elastic.co/products/logstash[Logstash]. include::{libbeat-dir}/docs/shared-libbeat-description.asciidoc[] + +[float] +=== Compatibility + +{beatname_uc} requires systemd v233 or later. Versions prior to systemd v233 +have a defect that prevents {beatname_uc} from reading rotated journals. From 72df5e54015f353a166be373200563a6047d6db7 Mon Sep 17 00:00:00 2001 From: Silvia Mitter Date: Fri, 15 Feb 2019 09:38:24 +0100 Subject: [PATCH 035/332] Intoduce SkipAddHostName setting. (#10728) fixes #apm-server/1846 --- CHANGELOG-developer.next.asciidoc | 1 + libbeat/beat/pipeline.go | 4 ++ libbeat/publisher/pipeline/module.go | 3 -- libbeat/publisher/pipeline/processor.go | 11 ++++- libbeat/publisher/pipeline/processor_test.go | 48 ++++++++++++++++++++ 5 files changed, 63 insertions(+), 4 deletions(-) diff --git a/CHANGELOG-developer.next.asciidoc b/CHANGELOG-developer.next.asciidoc index a18201b14e4..f734ae0438e 100644 --- a/CHANGELOG-developer.next.asciidoc +++ b/CHANGELOG-developer.next.asciidoc @@ -34,3 +34,4 @@ The list below covers the major changes between 7.0.0-alpha2 and master only. - Introduce ILM and IndexManagement support to beat.Settings. {pull}10347[10347] - Generating index pattern on demand instead of shipping them in the packages. {pull}10478[10478] - Metricset generator generates beta modules by default now. {pull}10657[10657] +- Move host name addition to a processor. {pull}10728[10728] \ No newline at end of file diff --git a/libbeat/beat/pipeline.go b/libbeat/beat/pipeline.go index 3db7baae6d2..435f48203ea 100644 --- a/libbeat/beat/pipeline.go +++ b/libbeat/beat/pipeline.go @@ -80,6 +80,10 @@ type ClientConfig struct { // To skip adding that metadata set this to true. SkipAgentMetadata bool + // By default events are decorated with a host name. + // To skip adding that host.name set this to true. + SkipHostName bool + // ACK handler strategies. // Note: ack handlers are run in another go-routine owned by the publisher pipeline. // They should not block for to long, to not block the internal buffers for diff --git a/libbeat/publisher/pipeline/module.go b/libbeat/publisher/pipeline/module.go index 2c854c13676..7af329d8429 100644 --- a/libbeat/publisher/pipeline/module.go +++ b/libbeat/publisher/pipeline/module.go @@ -85,9 +85,6 @@ func Load( Annotations: Annotations{ Event: config.EventMetadata, Builtin: common.MapStr{ - "host": common.MapStr{ - "name": name, - }, "ecs": common.MapStr{ "version": "1.0.0-beta2", }, diff --git a/libbeat/publisher/pipeline/processor.go b/libbeat/publisher/pipeline/processor.go index 81834f7bdff..0dcaa59c98e 100644 --- a/libbeat/publisher/pipeline/processor.go +++ b/libbeat/publisher/pipeline/processor.go @@ -127,12 +127,17 @@ func newProcessorPipeline( processors.add(actions.NewAddFields(meta, needsCopy)) } - // setup 7: add agent metadata + // setup 7: add agent metadata and host name if !config.SkipAgentMetadata { needsCopy := global.alwaysCopy || global.processors != nil processors.add(actions.NewAddFields(createAgentFields(info), needsCopy)) } + if !config.SkipHostName { + needsCopy := global.alwaysCopy || global.processors != nil + processors.add(actions.NewAddFields(addHostName(info), needsCopy)) + } + // setup 8: pipeline processors list processors.add(global.processors) @@ -283,6 +288,10 @@ func createAgentFields(info beat.Info) common.MapStr { return common.MapStr{"agent": metadata} } +func addHostName(info beat.Info) common.MapStr { + return common.MapStr{"host": common.MapStr{"name": info.Name}} +} + func debugPrintProcessor(info beat.Info, monitors Monitors) *processorFn { // ensure only one go-routine is using the encoder (in case // beat.Client is shared between multiple go-routines by accident) diff --git a/libbeat/publisher/pipeline/processor_test.go b/libbeat/publisher/pipeline/processor_test.go index 07b643d0c81..ea1e06c6a78 100644 --- a/libbeat/publisher/pipeline/processor_test.go +++ b/libbeat/publisher/pipeline/processor_test.go @@ -38,6 +38,7 @@ func TestProcessors(t *testing.T) { events []common.MapStr expected []common.MapStr includeAgentMetadata bool + includeHostName bool } tests := []struct { @@ -148,6 +149,52 @@ func TestProcessors(t *testing.T) { }, }, }, + { + name: "add host name", + global: pipelineProcessors{ + fields: common.MapStr{"global": 1, "host": common.MapStr{"name": "host123"}}, + }, + info: &beat.Info{ + Hostname: "test.host.hostname", + Name: "test.host.name", + }, + local: []local{ + { + config: beat.ClientConfig{}, + events: []common.MapStr{{"value": "abc"}}, + expected: []common.MapStr{ + { + "host": common.MapStr{"name": "test.host.name"}, + "value": "abc", "global": 1, + }, + }, + includeHostName: true, + }, + }, + }, + { + name: "add host name to existing host", + global: pipelineProcessors{ + fields: common.MapStr{"global": 1, "host": common.MapStr{"name": "host123"}}, + }, + info: &beat.Info{ + Hostname: "test.host.hostname", + Name: "test.host.name", + }, + local: []local{ + { + config: beat.ClientConfig{}, + events: []common.MapStr{{"value": "abc", "host": common.MapStr{"hostname": "test.other.hostname"}}}, + expected: []common.MapStr{ + { + "host": common.MapStr{"name": "test.host.name", "hostname": "test.other.hostname"}, + "value": "abc", "global": 1, + }, + }, + includeHostName: true, + }, + }, + }, { name: "beat local fields", local: []local{ @@ -393,6 +440,7 @@ func TestProcessors(t *testing.T) { } for i, local := range test.local { local.config.SkipAgentMetadata = !local.includeAgentMetadata + local.config.SkipHostName = !local.includeHostName programs[i] = newProcessorPipeline(info, monitors, test.global, local.config) } From 0bbe207d9e4cf16a57ae49547fad9ebcaffa0969 Mon Sep 17 00:00:00 2001 From: Silvia Mitter Date: Fri, 15 Feb 2019 09:50:39 +0100 Subject: [PATCH 036/332] Add changelog entry for PR#10721 (#10763) --- CHANGELOG-developer.next.asciidoc | 1 + CHANGELOG.next.asciidoc | 1 + 2 files changed, 2 insertions(+) diff --git a/CHANGELOG-developer.next.asciidoc b/CHANGELOG-developer.next.asciidoc index f734ae0438e..381c73c884e 100644 --- a/CHANGELOG-developer.next.asciidoc +++ b/CHANGELOG-developer.next.asciidoc @@ -22,6 +22,7 @@ The list below covers the major changes between 7.0.0-alpha2 and master only. - Outputs receive Index Manager as additional parameter. The index manager can be used to create an index selector. {pull}10347[10347] - Remove support for loading dashboards to Elasticsearch 5. {pull}10451[10451] +- Remove support for deprecated `GenRootCmd` methods. {pull}10721[10721] ==== Bugfixes diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 7a4b7a95dd8..8b69d99d572 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -169,6 +169,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Fix stopping of modules started by kubernetes autodiscover. {pull}10476[10476] - Fix a issue when remote and local configuration didn't match when fetching configuration from Central Management. {issue}10587[10587] - Fix unauthorized error when loading dashboards by adding username and password into kibana config. {issue}10513[10513] {pull}10675[10675] +- Ensure all beat commands respect configured settings. {pull}10721[10721] *Auditbeat* From 6c6df1b6747da0421a9200e1c7abb14f4e7f43bf Mon Sep 17 00:00:00 2001 From: Jaime Soriano Pastor Date: Fri, 15 Feb 2019 11:18:33 +0100 Subject: [PATCH 037/332] Change healthcheck for mysql images (#10755) Use host and port to ensure that network connection is used and not local socket. Use `SHOW STATUS` that is the query used by the metricset. --- metricbeat/module/mysql/_meta/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metricbeat/module/mysql/_meta/Dockerfile b/metricbeat/module/mysql/_meta/Dockerfile index b78cca8523e..443e542717b 100644 --- a/metricbeat/module/mysql/_meta/Dockerfile +++ b/metricbeat/module/mysql/_meta/Dockerfile @@ -3,6 +3,6 @@ FROM $MYSQL_IMAGE ENV MYSQL_ROOT_PASSWORD test -HEALTHCHECK --interval=1s --retries=90 CMD mysql -u root -p$MYSQL_ROOT_PASSWORD -P 3306 -e "SELECT 1" +HEALTHCHECK --interval=1s --retries=90 CMD mysql -u root -p$MYSQL_ROOT_PASSWORD -h$HOSTNAME -P 3306 -e "SHOW STATUS" > /dev/null COPY test.cnf /etc/mysql/conf.d/test.cnf From 7c338ce879cf27958c926d70b89ec9385a09e288 Mon Sep 17 00:00:00 2001 From: Mario Castro Date: Fri, 15 Feb 2019 11:31:16 +0100 Subject: [PATCH 038/332] Cover empty request data, url and version in Apache2 Filebeat module (#10730) --- CHANGELOG.next.asciidoc | 1 + .../module/apache/access/ingest/default.json | 8 +++++--- filebeat/module/apache/access/test/test.log | 1 + .../apache/access/test/test.log-expected.json | 19 +++++++++++++++++++ 4 files changed, 26 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 8b69d99d572..0ee4e2b470c 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -185,6 +185,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Fix bad bytes count in `docker` input when filtering by stream. {pull}10211[10211] - Fixed data types for roles and indices fields in `elasticsearch/audit` fileset {pull}10307[10307] - Ensure `source.address` is always populated by the nginx module (ECS). {pull}10418[10418] +- Cover empty request data, url and version in Apache2 module{pull}10730[10730] *Heartbeat* diff --git a/filebeat/module/apache/access/ingest/default.json b/filebeat/module/apache/access/ingest/default.json index e422cc84f46..fb49fa4d6e0 100644 --- a/filebeat/module/apache/access/ingest/default.json +++ b/filebeat/module/apache/access/ingest/default.json @@ -4,7 +4,7 @@ "grok": { "field": "message", "patterns":[ - "%{IPORHOST:source.address} - %{DATA:user.name} \\[%{HTTPDATE:apache.access.time}\\] \"%{WORD:http.request.method} %{DATA:url.original} HTTP/%{NUMBER:http.version}\" %{NUMBER:http.response.status_code:long} (?:%{NUMBER:http.response.body.bytes:long}|-)( \"%{DATA:http.request.referrer}\")?( \"%{DATA:user_agent.original}\")?", + "%{IPORHOST:source.address} - %{DATA:user.name} \\[%{HTTPDATE:apache.access.time}\\] \"(?:%{WORD:http.request.method} %{DATA:url.original} HTTP/%{NUMBER:http.version}|-)?\" %{NUMBER:http.response.status_code:long} (?:%{NUMBER:http.response.body.bytes:long}|-)( \"%{DATA:http.request.referrer}\")?( \"%{DATA:user_agent.original}\")?", "%{IPORHOST:source.address} - %{DATA:user.name} \\[%{HTTPDATE:apache.access.time}\\] \"-\" %{NUMBER:http.response.status_code:long} -", "\\[%{HTTPDATE:apache.access.time}\\] %{IPORHOST:source.address} %{DATA:apache.access.ssl.protocol} %{DATA:apache.access.ssl.cipher} \"%{WORD:http.request.method} %{DATA:url.original} HTTP/%{NUMBER:http.version}\" %{NUMBER:http.response.body.bytes:long}" ], @@ -31,11 +31,13 @@ "date": { "field": "apache.access.time", "target_field": "@timestamp", - "formats": ["dd/MMM/yyyy:H:m:s Z"] + "formats": ["dd/MMM/yyyy:H:m:s Z"], + "ignore_failure": true } }, { "remove": { - "field": "apache.access.time" + "field": "apache.access.time", + "ignore_failure": true } }, { "user_agent": { diff --git a/filebeat/module/apache/access/test/test.log b/filebeat/module/apache/access/test/test.log index 17ef11fc7dc..7422d4415bd 100644 --- a/filebeat/module/apache/access/test/test.log +++ b/filebeat/module/apache/access/test/test.log @@ -3,3 +3,4 @@ ::1 - - [26/Dec/2016:16:16:48 +0200] "-" 408 - 172.17.0.1 - - [29/May/2017:19:02:48 +0000] "GET /stringpatch HTTP/1.1" 404 612 "-" "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20120716 Firefox/15.0a2" "-" monitoring-server - - [29/May/2017:19:02:48 +0000] "GET /status HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20120716 Firefox/15.0a2" "-" +127.0.0.1 - - [02/Feb/2019:05:38:45 +0100] "-" 408 152 "-" "-" diff --git a/filebeat/module/apache/access/test/test.log-expected.json b/filebeat/module/apache/access/test/test.log-expected.json index 4ab44d546e0..45034b67089 100644 --- a/filebeat/module/apache/access/test/test.log-expected.json +++ b/filebeat/module/apache/access/test/test.log-expected.json @@ -104,5 +104,24 @@ "user_agent.original": "Mozilla/5.0 (Windows NT 6.1; rv:15.0) Gecko/20120716 Firefox/15.0a2", "user_agent.os.name": "Windows 7", "user_agent.version": "15.0.a2" + }, + { + "@timestamp": "2019-02-02T04:38:45.000Z", + "ecs.version": "1.0.0-beta2", + "event.dataset": "apache.access", + "event.module": "apache", + "fileset.name": "access", + "http.request.referrer": "-", + "http.response.body.bytes": 152, + "http.response.status_code": 408, + "input.type": "log", + "log.offset": 603, + "service.type": "apache", + "source.address": "127.0.0.1", + "source.ip": "127.0.0.1", + "user.name": "-", + "user_agent.device.name": "Other", + "user_agent.name": "Other", + "user_agent.original": "-" } ] \ No newline at end of file From faa45957f501f5fd53f9359457873c8b2ae90ea1 Mon Sep 17 00:00:00 2001 From: Mario Castro Date: Fri, 15 Feb 2019 12:28:11 +0100 Subject: [PATCH 039/332] Skip flaky test (#10767) --- metricbeat/module/consul/agent/agent_integration_test.go | 1 + 1 file changed, 1 insertion(+) diff --git a/metricbeat/module/consul/agent/agent_integration_test.go b/metricbeat/module/consul/agent/agent_integration_test.go index 84d9181ef6f..970db3b00a8 100644 --- a/metricbeat/module/consul/agent/agent_integration_test.go +++ b/metricbeat/module/consul/agent/agent_integration_test.go @@ -34,6 +34,7 @@ import ( ) func TestFetch(t *testing.T) { + t.Skip("Skip flaky test on Consul Agent") logp.TestingSetup() compose.EnsureUp(t, "consul") From cb241f34a436f79a969d98d14ab50a2c79ca32b7 Mon Sep 17 00:00:00 2001 From: kaiyan-sheng Date: Fri, 15 Feb 2019 09:17:32 -0700 Subject: [PATCH 040/332] Add syslog support for ISO8601 format timestamp (#10736) * Add syslog support for ISO8601 format timestamp * Add changelog * Change timestamp pattern --- CHANGELOG.next.asciidoc | 1 + .../module/system/syslog/ingest/pipeline.json | 6 ++-- .../module/system/syslog/test/suse-syslog.log | 2 ++ .../syslog/test/suse-syslog.log-expected.json | 28 +++++++++++++++++++ 4 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 filebeat/module/system/syslog/test/suse-syslog.log create mode 100644 filebeat/module/system/syslog/test/suse-syslog.log-expected.json diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 0ee4e2b470c..d297377ce0c 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -278,6 +278,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - New iptables module that receives iptables/ip6tables logs over syslog or file. Supports Ubiquiti Firewall extensions. {issue}8781[8781] {pull}10176[10176] - Added support for ingesting structured Elasticsearch server logs {pull}10428[10428] - Populate more ECS fields in the Suricata module. {pull}10006[10006] +- Add ISO8601 timestamp support in syslog metricset. {issue}8716[8716] {pull}10736[10736] *Heartbeat* diff --git a/filebeat/module/system/syslog/ingest/pipeline.json b/filebeat/module/system/syslog/ingest/pipeline.json index 87a29129cc8..1d5f93d724f 100644 --- a/filebeat/module/system/syslog/ingest/pipeline.json +++ b/filebeat/module/system/syslog/ingest/pipeline.json @@ -6,7 +6,8 @@ "field": "message", "patterns": [ "%{SYSLOGTIMESTAMP:system.syslog.timestamp} %{SYSLOGHOST:host.hostname} %{DATA:process.name}(?:\\[%{POSINT:process.pid:long}\\])?: %{GREEDYMULTILINE:system.syslog.message}", - "%{SYSLOGTIMESTAMP:system.syslog.timestamp} %{GREEDYMULTILINE:system.syslog.message}" + "%{SYSLOGTIMESTAMP:system.syslog.timestamp} %{GREEDYMULTILINE:system.syslog.message}", + "%{TIMESTAMP_ISO8601:system.syslog.timestamp} %{SYSLOGHOST:host.hostname} %{DATA:process.name}(?:\\[%{POSINT:process.pid:long}\\])?: %{GREEDYMULTILINE:system.syslog.message}" ], "pattern_definitions" : { "GREEDYMULTILINE" : "(.|\n)*" @@ -32,7 +33,8 @@ "target_field": "@timestamp", "formats": [ "MMM d HH:mm:ss", - "MMM dd HH:mm:ss" + "MMM dd HH:mm:ss", + "yyyy-MM-dd'T'HH:mm:ss.SSSSSSZZ" ], {< if .convert_timezone >}"timezone": "{{ beat.timezone }}",{< end >} "ignore_failure": true diff --git a/filebeat/module/system/syslog/test/suse-syslog.log b/filebeat/module/system/syslog/test/suse-syslog.log new file mode 100644 index 00000000000..b7682f5e45e --- /dev/null +++ b/filebeat/module/system/syslog/test/suse-syslog.log @@ -0,0 +1,2 @@ +2018-08-14T14:30:02.203151+02:00 linux-sqrz systemd[4179]: Stopped target Basic System. +2018-08-14T14:30:02.203251+02:00 linux-sqrz systemd[4179]: Stopped target Paths. diff --git a/filebeat/module/system/syslog/test/suse-syslog.log-expected.json b/filebeat/module/system/syslog/test/suse-syslog.log-expected.json new file mode 100644 index 00000000000..57f70c29ad8 --- /dev/null +++ b/filebeat/module/system/syslog/test/suse-syslog.log-expected.json @@ -0,0 +1,28 @@ +[ + { + "ecs.version": "1.0.0-beta2", + "event.dataset": "system.syslog", + "event.module": "system", + "fileset.name": "syslog", + "host.hostname": "linux-sqrz", + "input.type": "log", + "log.offset": 0, + "message": "Stopped target Basic System.", + "process.name": "systemd", + "process.pid": 4179, + "service.type": "system" + }, + { + "ecs.version": "1.0.0-beta2", + "event.dataset": "system.syslog", + "event.module": "system", + "fileset.name": "syslog", + "host.hostname": "linux-sqrz", + "input.type": "log", + "log.offset": 88, + "message": "Stopped target Paths.", + "process.name": "systemd", + "process.pid": 4179, + "service.type": "system" + } +] \ No newline at end of file From 2fe5aab1cd752bc62221438b182d39c80944c92b Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Fri, 15 Feb 2019 12:31:01 -0800 Subject: [PATCH 041/332] Add steps for loading journalbeat dashboards (#9167) * Add steps for loading and viewing dashboards * Deprecate global options for backoff, max_backoff, seek, and include_matches * Add screen capture * Move tip to correct place in doc --- journalbeat/docs/general-options.asciidoc | 10 +++--- journalbeat/docs/getting-started.asciidoc | 34 +++++++++++++----- journalbeat/docs/images/journald-log-data.png | Bin 0 -> 215321 bytes .../docs/images/kibana-created-indexes.png | Bin 74532 -> 190642 bytes .../docs/images/kibana-navigation-vis.png | Bin 160418 -> 63908 bytes journalbeat/docs/index.asciidoc | 1 - libbeat/docs/opendashboards.asciidoc | 4 +-- 7 files changed, 34 insertions(+), 15 deletions(-) create mode 100644 journalbeat/docs/images/journald-log-data.png diff --git a/journalbeat/docs/general-options.asciidoc b/journalbeat/docs/general-options.asciidoc index 5b80774711f..12dfc390b31 100644 --- a/journalbeat/docs/general-options.asciidoc +++ b/journalbeat/docs/general-options.asciidoc @@ -29,26 +29,28 @@ data path. See the <> section for details. The default is `${p ---- [float] -==== `backoff` +==== `backoff` deprecated[5.6.1,Use the option under `paths` instead.] + This option is valid as a global setting under the +{beatname_lc}+ namespace or under `paths`. For a description of this option, see <<{beatname_lc}-backoff,`backoff`>>. [float] -==== `max_backoff` +==== `max_backoff` deprecated[5.6.1,Use the option under `paths` instead.] + This option is valid as a global setting under the +{beatname_lc}+ namespace or under `paths`. For a description of this option, see <<{beatname_lc}-max-backoff,`max_backoff`>>. [float] -==== `seek` +==== `seek` deprecated[5.6.1,Use the option under `paths` instead.] This option is valid as a global setting under the +{beatname_lc}+ namespace or under `paths`. For a description of this option, see <<{beatname_lc}-seek,`seek`>>. [float] -==== `include_matches` +==== `include_matches` deprecated[5.6.1,Use the option under `paths` instead.] This option is valid as a global setting under the +{beatname_lc}+ namespace or under `paths`. For a description of this option, see diff --git a/journalbeat/docs/getting-started.asciidoc b/journalbeat/docs/getting-started.asciidoc index f598948a93e..df2f124555e 100644 --- a/journalbeat/docs/getting-started.asciidoc +++ b/journalbeat/docs/getting-started.asciidoc @@ -6,7 +6,9 @@ include::{libbeat-dir}/docs/shared-getting-started-intro.asciidoc[] * <<{beatname_lc}-installation>> * <<{beatname_lc}-configuration>> * <<{beatname_lc}-template>> +* <> * <<{beatname_lc}-starting>> +* <> * <> [id="{beatname_lc}-installation"] @@ -159,8 +161,15 @@ include::{libbeat-dir}/docs/step-look-at-config.asciidoc[] include::{libbeat-dir}/docs/shared-template-load.asciidoc[] +[[load-kibana-dashboards]] +=== Step 4: Set up the Kibana dashboards + +:requires-sudo: yes +include::../../libbeat/docs/dashboards.asciidoc[] +:requires-sudo!: + [id="{beatname_lc}-starting"] -=== Step 4: Start {beatname_uc} +=== Step 5: Start {beatname_uc} Start {beatname_uc} by issuing the appropriate command for your platform. If you are accessing a secured Elasticsearch cluster, make sure you've configured @@ -193,18 +202,27 @@ in the _Beats Platform Reference_. {beatname_uc} is now ready to send journal events to the defined output. [[view-kibana-dashboards]] -=== Step 5: View your data in Kibana +=== Step 6: View the sample Kibana dashboards + +To make it easier for you to visualize your log data, we have created example +{beatname_uc} dashboards. You loaded the dashboards earlier when you ran the +`setup` command. + +include::../../libbeat/docs/opendashboards.asciidoc[] + +The dashboards are provided as examples. We recommend that you +{kibana-ref}/dashboard.html[customize] them to meet your needs. -There are currently no example dashboards available for {beatname_uc}. +[role="screenshot"] +image:./images/journald-log-data.png[Journald data] -To learn how to view and explore your data, see the -_{kibana-ref}/index.html[{kib} User Guide]_. [NOTE] ===== -By default, the Logs UI in {kib} only shows logs from `filebeat-*` -indexes. To show {beatname_uc} indexes, add the following settings to the {kib} -configuration: +You can also use the {infra-guide}/logs-ui-overview.html[Logs UI] in {kib} to +tail logs in real time. By default, however, the Logs UI only shows logs from +`filebeat-*` indexes. To show {beatname_uc} indexes, add the following settings +to the {kib} configuration: [source,yaml] ---- diff --git a/journalbeat/docs/images/journald-log-data.png b/journalbeat/docs/images/journald-log-data.png new file mode 100644 index 0000000000000000000000000000000000000000..9a746e968375c96386a2329d7482c2dd6289cc93 GIT binary patch literal 215321 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
-^jh4b!|u; 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 literal 0 HcmV?d00001 diff --git a/journalbeat/docs/images/kibana-created-indexes.png b/journalbeat/docs/images/kibana-created-indexes.png index ad9c65ae1c7fc3282c14162ff9c59b91d192a809..0906a90e71ce40aba953b828fbd7386bebadee00 100644 GIT binary patch literal 190642 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�-3tp#4& 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�sng4%8SE4H>U8x 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 F`aeRyP;meN literal 74532 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

|7^xmyG)EF8rj~D4dxzF$v38$!pK5 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%0DyELzMmT%`%Tcg znv)d5ZQ@28reT1ye-FqsvO(53f3~|iYahp92Fs((=H@igO3`Su&U&Z+70W=uB%;o* z8|e0FuZ01-)~2Mk|Pp4t;|Igu$+(k3o%%M@=$f7Vj-vnk8lb)s&bNzQ_st^W2K<;%#V63b?MsFBvD8)C(h4 z1E~UM#Ji-__9O4shwPf!#<)|X1i=~s))^-w4hShc<PPH4i4#D^bZX!A7D1^}746 z$}yR$7c8Q&`7f#oBI9q~kd}#y2r6voeHe4i$K#^NKcm<7dNYf*VI!=LB~0}`cud0? z-eaXGQrmA?s4dlwjnTr*n-%O1Va0MzCphE@C;hl>#hDGEYsq;|M63~Gu0{hljcNpbgB-uQ*V;Dh zW1C|Q78QGa&i%&6?{MolGF2 zkd-Q7Bg}Y1Se?6wtOzZ?4+wZ#vD%7|Ly9u7MgHPQ?b=td>EVL>P zY!%3GITr+}-{O%fwz;HFRQSy|%4Mu5$}Nv!T9IlS-0`I$m6C|?91h}1g)$cGm|JZB zRB?_=HJ2`W{<^a+;zZB0D17t2aJib-EbMkG790mq1eH`=ABx|FIWFLZ9uhL}>2mJz z+94Qbx8!)7eey!bJZ48g-7ZOA$1fId2IX`Tfc;#a^D=511h=~GINOM|wU0}XXr$*u z<+>^rtJq^OGK1iy&D8$HHl0ei6}6!}gv36Bd2jVy%adsFS*!e}8$CGfNqBvJB(Ddj z{h4*gs|wD1l(nzW?V<90xVG@}#z*W4oMCPN;^r4m1UxlIcynjUtiessaLcNEARevX zbZ7H!17%=mLthpOJ6yB&5?6qqGMi8#tbZHe?YeT5p0x#J^%Zj*rnUycO~k30z7+k6 z3ezeic%9^4X=!Ix!A%$Ts4$r3Az+^=Y{JLTm{Ae%w#n3Ix@BWd8RLaY4}ZPvrF&1X zwM1lp!bWkMtSDeiM}hs2OcAj(hBNFbWrr8FYj0ObRFpsub{{TRw)76xeDV0= z*Of+9>0E7b!F*G)ijqv*C#!XN|#r!#n;eI)^?S%uhC~2S&l}NlEh_PP^JFH4bcM&8+>QV;XkS{xChy z4Fh+>pPU4}qgkNJdniLWtglcHZ2)w%`FdlIs6*`OqQW4o^b=QQk1^mYTAzlv>IZ6+k0Np+0MdM0J-bZz13f~`F)IDo_Z??Vma{!6cAQ~4U(wCZxh`)8 zgQ)!0$m5W^$zhZkgDfcKOQeMz;4OntbH#EqcDS6<+0qNMzs+b-Xj#iEm)DdZXl$#A z;Ojjzy#x?;UJmmVo=YRWLMMvM6wSZ~F0IT|nRu(d zY(!mQ)%OzK;u^DprqF{d~R>+~;mV^)iShgzlQ8(Gpg92+zUz#rcu)X9d`egbBuHb&so zU2_0X(;Jvo_u(CC*^o@f4Yn@2zsM!sD;xSx;6Ma=(z5g=k9x&U)+5Y1JwFcE2D}l9 zRh2$yQ@)?N;JGtS5GRB8EadaDWQUqA2e-Szr*%tR$r1r<)0JA6(Y`vdVrDWnI-dGr zyWf+Z+>z|@;qFTmX`m*t(jiEVHq-72WJp@6fVGWTuoC1e&)S&|=0 zts1y<_W(?xRE)K>iTomDf?+;wfnlVIrv`2MR-cdX@sglY+4`hE)E>TMk)!lSBX8fo zW?6J;;mkItRpK}lKlMl*tyOOwZgZSYzpaIZdcx9Lj{b?-&vJ(a5PN-Tid zvar&Nz33Y5UbsO-suZJ=`TK{pwA|k9}nGgk7EEI%ORz4eAZ+HX_oxNl%y}p{%<0Jov*ZaJ)=*{n_6Iz_$UrlNG_Yk; z%ikd=wh8r)$Cy9mE?=)dDIr;o#J>%hz_H+>AKkf>>C)|1ucxFG3&ClGuQ}j0E9uUD zkQPxLKHG|iHhA5O@Pe8Tg4aBf0$zsV53I(j5lMv<`r|I*x2ae;x>9w?WI z6WPJnb~zC&s}yf3RYnw##9HUrX_`R9oYA}iKd^>phCw7C-yDMzA(-pps*Bc+GbOE4 z8GM}$^lAXTA&K1~(F|XF7{#|@0z5i@U_CvAs%j5bMXe9+} z(Z>Q6QHDJcsLxV?UjGgECgdE)!FxAi3|&Ag_fQCBsj9K=YnAP_p2iOY27>BhdGy9>{qkiMOOQ`v7UXr>f*-=|CH}zTglX@v0H@4gl&PIdaMBJ8~fN@?(*4& zL+e?baLkfHXQz2;E!*j+nZKW00k%RzHisECcGQTt8x6I@JoEwrzH?Iczg$=X_z z8^J5hrpA6%{h7(Ckig`v>&E$U+YA4f0<~B9)d2kHc!#) zy+b1HuE!WQ1-dn_j|sLj8_%A*5i&gsK?VI&)6T4!*rT%ZuRpAKjWLKgVgN@&`~?*J zAWt&s`cL`vt^`JH=jLZ3-82{p)5L}oE%o*jpN4@CEMB`8w`^83?6$@~(YcXMI(Hka zs75w8oO_>DxEKg-LR&8+-ajSax`Zi6nC~0EH1M%QxR*@3Sw`F)HaeCGji@|4nWgc% zz=?*0R918$yf$y|8y?l;C=-Gn!VrX)lVC4;YayXqF8J!*m_N=OV`}T($IOIt(kk~y zy+MEKa}R|#=`ums2|wcpcqjPr_38BOcgPR$- zzqM_NHd?YLqKw-fxR%E*O3xNoxnEM4J9Kutpd`nSV9Rx3>4EqTCod? z479VDFMCv)-snU->&H{|=~hB*=cQeEeO}gdA8Z6Y zqRj8}nA8gRzlZOedx^KauBMI{&qwne`x8HMbWyD(i&6HooX|HKUr!vN06oMr^?!*8 z5mNfTh7Pn%~iuYGE| z%a8n(AMa-PZK(4x>{jB_cq#zo6?Rq}H1hG7b%+(>)F_0-Iu(ea6SE((G6At25BErK zpM}4nnXwZ-yEGm6Vskx0TkBg|nWH0OpuBom@G11RtiRprF_P?6U-n^;a#FJguCECh za)>t2{~2c%a*}JEI!wjMGb+4+D{ebSQf&W0ZZmb(1&DaSY{KCcp^7NEdPPSue%j0z zX;2)e!LroBUOu7166&1Da+cY;*^jI|%O)Fgg1YQs2^Br7xUS9%g(-IGov={P_S=Pt# ziMlgiH7{tuxdh(FTC0n%VOxLvmfL!qx^05@67Tm4+SY?4Vi0A!)h6pmR6Fo>-)gM9 z)fMq^YbHu?^|bj_NgOx>h3lt@jB|0c@O(dKf`He9pHV^tO-`E>}kr%KiSf59T{S>R3GmgA1NwBTJSe@8$5^$`X5yM5+k6$j$@EHhPU{nZ7GZEDJzi!eY0hS{C-5G3Pai8+F(B&*#?@AQW&L}0$v@i~9-yA8-80Vp`40;ZC_14Q}?&zypyog?|3&h4x zZmG%s>!t{(-~H!Tv#WCIOQu8HmC=={_Zo5ushl4d*XqQ$;>p)#oxF2q5`vuQjqqQa zARGejo9wAni?6S+8oXgGO%8`u(P5cu>CP|6&?V5loux06v!IhrH|2D-idSd;-e%WJ zrqdJa^`2;;YTwJ**%_W!L*ZNQp}SWC}c3(E#?XBjek5(zEoF~~mqlhIk|NH2JC z61`8n4#}BTeJ_BuGLBVf@8m@g@1%u3Obb`T7B(wxXsO zX7Lg!XAn;Zit>;MBIrZu3}EibG5AsCRRZDr6jB@^cUDAdPGBT)A#%wd!^JPt$MlTd zm!8=7kcx@)+FXUHmGII0h$(N$j|wZY?WNOgOVXid?tGu9wf$G3w_iDhnD|oqU0no! z`-$SL+m_C||AYGke%4ezA%mJK-i~N3hYC_u zIjS=O#Uq&qesx4?>;pSL2e5{^tTAvP8Qs==)a7zQ4Ms5c@H z&-58hd8aMNIkHJJCW-lQJ-$CVe<=_la6EF82s2x#cp;hn)%%$3C^93Gh@YK^?Y^n|Q#qE>Y}4== zvwX!xNKcBQmg>sloCaQK_yC!lni6z8xseb6tD9YC_FT=9pN9l}45+B2Z>featwU!N zY5L=aUEB=ah^GRLwo+{0(e^c7wA|};K}#c*>4P}^Hnn+NOxH$*!-&KZZh6LK3g~g! zGQ%lIt#@N$nzKI?(eL^SEY{_YXr;{oKa%MYir0kuHPai*`Ew&&RI1-8KNlYAe&e;) zd@aAOeE?$mr@U%lh1yq)6b_=-I|r;A3y%+C47FMH4<9S@_dC-P+I`kTxvgR^@of^r z59XluV}}?L61pv(&i36=bxXUsQ*W{>MeAy-U^cfIdQWa7hjD@ueod-r6>vfzGiV1k z#fqX-E9!TtHx!yertNT$JGdj%Zr+XFMk~)`T?cGVmUg&5^+wFSIC z+9ZPM+uYb|Xg0BB<2jHebmSD$mH8Kzd>%Bvh}VlY4t?YwiRq4W_m{8V?V$qdNO&ut zOgGE4T0*;mkT=J(g{f(11Pu)-q|>+JY5wTLo&|8iAK>bo6Ts5PKlP3(UMzr7#xrlAB4dKS zy;eZNj4pOSfp9lJ>Oxuy1DsL@iYOBd}H<^tyg~5ESic(14MGGjtO3BR}5*WhvP&S z2BPA|^9QSlXL`OK7ez;B1Rrz?5sa?-X`n9rti)k|25@Kq`-}_B_j`NyEDLE*^>UH! z3~>l2X`P)jsk29DEEH0KAAST2KmtmKCIbM|uV|~3;p}DJ+UB$x$DHz{LaEiF+wdUm z&Wu}lgP2N4cfj$KKfqaAGl9Vt`f=Z5%M84t&=l2)&m*ylYkxDbN8h0Oz4l&7`OFTt z;xhN3P@yDq!RAJ43dk2ADgyx`O)GdSCRNvcbS-i7tINUOcSoo^HD~nn8@@FqOxJ}x zUj{SA?3W@k67I#<8eyrkk7H%{d>^i`6`sIK49v!(1l@gok6%0g+-2a4PpTuD3&Xop zq4D+Ap4e&o)E0y-)Q+^;`_&>%)~bu&3Dc;cGLR zl+ykM{Gr#JjQ1U<_+%hrd2x{VC9c!z5AB=_THhr8E$C>CfrpRo@6kT!}8P&!i z@=`=XlymUjuh2#o>@}GEDRoL$>!DWUp+qXOk3tfeFK?vVF0x^~^WjLpA(h$Iy{O$nJo*>aUaS~ z*gz45^<=@to}>g(=%;{8hagykG=w68ohEC@4x&^#OSJ-%2grDLuL&xZ)>>MEc$!A# z_LC9`prU?a<*f!PI>@2 zh5I%h8F>PkBh8x6Q#CY9_`~3m=MSu+(5$qdCccGZ47I$@X)&Zv_$#?ngo=iP!TX%) z)vlI-k#;gy~s|3&WpO)2n|n3UgQE_NtI;yP^6A>kRfr* z*@YgRzhIaW>ToG26^(FMVcMC=<+YRh!9~;3q~rg!b*AA^wtX1ST2xOnLnx`3kY#Kk zOH!z8gE5w2Vhq_DL<~<-mMkM#Qj?}EEl5mu#ukQzLG~Hh_a!qC*@vEy=fnH9(U~wrBm7inp!XsVj!bhD%{=lejL15M1q+GA9jrk4yR51dKwWwVL%fLf+G8GT0sv9^n2p-O`(Z#_Qz9KGLK@a!b(EOZsy`JQo9 zUv4-O#kfeD2>Qkq7of0G5n>_yrI`Y-nV>6)Q^g(CpJJ`r0gkuyKI*;0TD+#_qTJF-P`WuYyWl6_GRAh@79ygnIH>D-#qC?0xa5$1>P<;fhfg1UN zp6H&we0OXe+lB z(|Ne=RC?#8zw4M5eBQ2XJfeJ!#00ud==fY-mUq$VS9>6sp`_wB!Q!CK)vU+DBh>g3 zgtUPH@jm1AF`{bKcP0CsvDV0Xb%OnibZC)Zi*fag-vZKTd9m<7q@ok3!JK#)D~QGD zwoFPjr3%L}#2egL!K;z#J3?)-H!HG^5!{E~l|5^E!@DE2`guE=t_(x9bl#CW^=sP& zc(v3{$Ei+?NpC);PZrFYCz3Jq=UJIUqZgKE^hT4jFKCrDs0MIUX}3L57)p$9AE5so zyqyLUa?-Uk5@f^7nN%g;W#c=SiGDf_&l52LI&Rc=3X73;_2sJo_U(_S*6feR?_n2M zvX>(G5~&BruL<<`53G=uy~q&bHRBH@Fdnae1to`(!|GCoJ`ghBGc3~QPvm;6*y)xd zU7I-wE@Kr@Ce!)bc_eR`bYCdOmX^FKpGs`3GZq&b^K0|$F_&qPTIeXrYwLTe+t1%L z$+b>Se6KVFaLa;RdwsyOP3*W-upLk!X4;`9ei$@h~S;tV5IiSB%~;t_lw4yYpP?zuUG>mf-0l+hx{uj=dQ$cAxPJ& zMuGj~&Ro5&NhS#-^Mm=T)fNz+A}eh^FH|9W5x;((LsP!s_vzvWggTOxfWcISw>W-O zl{O(m>qu6?hu>z%Xl5+n_suCwip>yC*pPc=);;6bX-IX{0v|!(I!!3l;C+Qc*5}Y> zB84hNP*22w!~r}rMV9qrCKF

g>7f>^D; z6(g@yX^c7gqaF2l6;#FicFpZ@ni%zF3_4MRkiJuGAOgyhfWCM{najvkeQBJ7_urg? z1lg*@)YxynIUgyOv^kagt=s5pU`pK$4Wcz_r7JR5cU-tb!m05HSVg_h1(Q^2Z(45W zI{F(oa>$y!dM$N~63UR+Wul^uPK&*1p|xkhHsjT9!5EXxPmT*u)j*`B4U6uZJ@W?V zHMWoCXS7D{I#ri~43OCa!L6+hoa*!_I0Og?KR z2U#oOoz0-z&-XAUt2GPz!ce{DnrQjPpq9O!g$W_@q19gdtLMu1;@t|L4rE1WKE+Y{ z`?GC6NMTAIK78l}H^Ps)l-T;rb&1>Xw8wRHn6)Jh0CdUIdu|M;C|l8$3nMsZWST$H z1elY)L)!#QhUG^SLB9=+S^$^@{nI7tM)~@x#rmnO?R2iC56>k;mQGn!6lZ4c&-x>rD!d^zCU2wp%+;e#V z9?zSK;fssjo|nVNK8G^IS%1iXj?j5gR`NP9OYz9=r#i&J&MLjc;c!CS5NEzWZ8(R~ q10AjdwFNf}{;$8rnygQ*{lx*u)0l}`0@3!d9)l|;dbv6dVgCRL`z}BL diff --git a/journalbeat/docs/images/kibana-navigation-vis.png b/journalbeat/docs/images/kibana-navigation-vis.png index 8f7ce06c5cd6d7787a2988b4e6b91fc0122e6d17..881157e7a1b97dba436113cc9ed3e0889e5fe8a3 100644 GIT binary patch literal 63908 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 literal 160418 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%0Dbq=UgW6k{=hvrf8G`UbU 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 diff --git a/journalbeat/docs/index.asciidoc b/journalbeat/docs/index.asciidoc index 48194e4607b..c8967c01664 100644 --- a/journalbeat/docs/index.asciidoc +++ b/journalbeat/docs/index.asciidoc @@ -17,7 +17,6 @@ include::{asciidoc-dir}/../../shared/attributes.asciidoc[] :rpm_os: :linux_os: :docker_platform: -:no_dashboards: include::{libbeat-dir}/docs/shared-beats-attributes.asciidoc[] diff --git a/libbeat/docs/opendashboards.asciidoc b/libbeat/docs/opendashboards.asciidoc index 3dbed60dd04..541a4497c3f 100644 --- a/libbeat/docs/opendashboards.asciidoc +++ b/libbeat/docs/opendashboards.asciidoc @@ -21,11 +21,11 @@ pattern is selected to see {beatname_uc} data. [role="screenshot"] image:./images/kibana-created-indexes.png[Discover tab with index selected] -Go to the *Dashboard* page and select the dashboard that you want to open. - TIP: If you don’t see data in {kib}, try changing the date range to a larger range. By default, {kib} shows the last 15 minutes. +Go to the *Dashboard* page and select the dashboard that you want to open. + [role="screenshot"] image:./images/kibana-navigation-vis.png[Navigation widget in Kibana] From e1a9f54340733ef540e9258c87f5867831c5170e Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Sat, 16 Feb 2019 08:26:30 -0600 Subject: [PATCH 042/332] Add snapshots to main README (#10785) Also cleans up old inaccurate snapshot references --- README.md | 4 ++++ metricbeat/README.md | 4 ---- packetbeat/README.md | 4 ---- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 7bb72681625..f6f0bc6bbc8 100644 --- a/README.md +++ b/README.md @@ -81,3 +81,7 @@ Beats](https://github.com/elastic/beats/blob/master/libbeat/docs/communitybeats. See our [CONTRIBUTING](CONTRIBUTING.md) file for information about setting up your dev environment to build Beats from the source. + +## Snapshots + +For testing purposes, we generate snapshot builds that you can find [here](https://beats-ci.elastic.co/job/elastic+beats+master+multijob-package-linux/lastSuccessfulBuild/gcsObjects/). Please be aware that these are built on top of master and are not meant for production. diff --git a/metricbeat/README.md b/metricbeat/README.md index 84c3e3e4b7a..5d817506b0a 100644 --- a/metricbeat/README.md +++ b/metricbeat/README.md @@ -25,7 +25,3 @@ If you are sure you found a bug or have a feature request, open an issue on We love contributions from our community! Please read the [CONTRIBUTING.md](../CONTRIBUTING.md) file. - -## Snapshots - -For testing purposes, we generate snapshot builds that you can find [here](https://beats-nightlies.s3.amazonaws.com/index.html?prefix=metricbeat). Please be aware that these are built on top of master and are not meant for production. diff --git a/packetbeat/README.md b/packetbeat/README.md index f4fab5eb0c9..832e79065c1 100644 --- a/packetbeat/README.md +++ b/packetbeat/README.md @@ -39,7 +39,3 @@ If you are sure you found a bug or have a feature request, open an issue on We love contributions from our community! Please read the [CONTRIBUTING.md](../CONTRIBUTING.md) file. - -## Snapshots - -For testing purposes, we generate snapshot builds that you can find [here](https://beats-nightlies.s3.amazonaws.com/index.html?prefix=packetbeat). Please be aware that these are built on top of master and are not meant for production. From 143832344a71fd60df503d58fc6582b253845452 Mon Sep 17 00:00:00 2001 From: Steffen Siering Date: Mon, 18 Feb 2019 12:42:45 +0100 Subject: [PATCH 043/332] Fix Registrar not removing files when clean_removed is configured (#10747) This PR includes some changes that also did help to clean/stabilize the `text_clean_removed*` tests. Often times the tests have been stopped to early, due to races between the input file states, registrar states, and test code. After stabilizing the tests, I reliably (still needs a few runs) can trigger a data-synchronisation issue between the prospectors state and the registry. This is clearly a bug and results in state not being removed from the registry file at all. After some more testing (yay, heisenbug :/) I found a race condition between harvester shutdown, prospector state cleaning (e.g. if clean_removed is set) and registry updates. The sequence of events goes like this: ``` 1. harvester closes file 2. harvester updates prospectors local file states (marks file as finished) 3. prospector starts GC, cleaning old states 4. prospector sends 'remove state event' to the registrar (TTL=0, Finished=True). Note: state is not removed by prospector until next scan completes. 5. harvestar sends 'finished state event' to the registrar (TTL=-1, Finished=True) 6. registrar reads applies state updates: 1. change state to TTL=0, Finished=True 2. change state to TTL=-1, Finished=True 3. clean local state -> file is not removed from registry, due to TTL=-1 4. write registry ``` The change proposed changes the order the harvester cleanup propagates updates by sending the 'finished event' first before updating the prospectors state. This way we postpone the file being cleaned by the prospector and guarantee the 'finished event' and 'remove event' order (The prospector can not remove the state yet, because Finished is not set until after the 'finished event' has been published). Additions: - Add Registry class (accessed via `self.registry()`). This class is used to check/read the registry - Add InputLogs class for creating/apppending/removing log files used to drive the tests. This reduces path manipulations and reduces repetitive `with open(...) as f:` blocks. - Add LogState class. This class keeps an offset to start reading from. The offset can be advanced via `checkpoint` or is automatically advanced if `next` succeeds. Using `LogState` we can wait for a particular message to appear in the log, by ignoring old messages. This removes the need to have a count on actual messages. - Thanks to `LogState` and some minor adjustments to timings I did shave of like 10s from test_registrar.py on my machine. FB success count: - test_clean_removed: 5 - test_clean_removed_with_clean_inactive: 5 --- CHANGELOG.next.asciidoc | 2 + filebeat/harvester/source.go | 1 + filebeat/input/log/file.go | 7 +- filebeat/input/log/harvester.go | 6 +- filebeat/input/log/log.go | 5 +- filebeat/input/log/stdin.go | 1 + filebeat/registrar/registrar.go | 2 +- filebeat/tests/system/filebeat.py | 155 ++++++++++++++---- filebeat/tests/system/test_registrar.py | 202 +++++++++--------------- libbeat/common/file/file_other.go | 6 + libbeat/common/file/file_windows.go | 39 +++++ 11 files changed, 260 insertions(+), 166 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index d297377ce0c..5cb24e52e0d 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -186,6 +186,8 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Fixed data types for roles and indices fields in `elasticsearch/audit` fileset {pull}10307[10307] - Ensure `source.address` is always populated by the nginx module (ECS). {pull}10418[10418] - Cover empty request data, url and version in Apache2 module{pull}10730[10730] +- Fix registry entries not being cleaned due to race conditions. {pull}10747[10747] +- Improve detection of file deletion on Windows. {pull}10747[10747] *Heartbeat* diff --git a/filebeat/harvester/source.go b/filebeat/harvester/source.go index 6c739ccacce..f7e3c0c6405 100644 --- a/filebeat/harvester/source.go +++ b/filebeat/harvester/source.go @@ -25,6 +25,7 @@ import ( type Source interface { io.ReadCloser Name() string + Removed() bool // check if source has been removed Stat() (os.FileInfo, error) Continuable() bool // can we continue processing after EOF? HasState() bool // does this source have a state? diff --git a/filebeat/input/log/file.go b/filebeat/input/log/file.go index 8c513e0e9d8..59d408c87ad 100644 --- a/filebeat/input/log/file.go +++ b/filebeat/input/log/file.go @@ -17,7 +17,11 @@ package log -import "os" +import ( + "os" + + "github.com/elastic/beats/libbeat/common/file" +) type File struct { *os.File @@ -25,3 +29,4 @@ type File struct { func (File) Continuable() bool { return true } func (File) HasState() bool { return true } +func (f File) Removed() bool { return file.IsRemoved(f.File) } diff --git a/filebeat/input/log/harvester.go b/filebeat/input/log/harvester.go index 07408ffe316..9197793c718 100644 --- a/filebeat/input/log/harvester.go +++ b/filebeat/input/log/harvester.go @@ -391,12 +391,12 @@ func (h *Harvester) SendStateUpdate() { return } - logp.Debug("harvester", "Update state: %s, offset: %v", h.state.Source, h.state.Offset) - h.states.Update(h.state) - d := util.NewData() d.SetState(h.state) h.publishState(d) + + logp.Debug("harvester", "Update state: %s, offset: %v", h.state.Source, h.state.Offset) + h.states.Update(h.state) } // shouldExportLine decides if the line is exported or not based on diff --git a/filebeat/input/log/log.go b/filebeat/input/log/log.go index ba13d91bbda..d0c14c45b81 100644 --- a/filebeat/input/log/log.go +++ b/filebeat/input/log/log.go @@ -152,10 +152,7 @@ func (f *Log) errorChecks(err error) error { if f.config.CloseRemoved { // Check if the file name exists. See https://github.com/elastic/filebeat/issues/93 - _, statErr := os.Stat(f.fs.Name()) - - // Error means file does not exist. - if statErr != nil { + if f.fs.Removed() { return ErrRemoved } } diff --git a/filebeat/input/log/stdin.go b/filebeat/input/log/stdin.go index aff8c2b43d7..07aeb008adb 100644 --- a/filebeat/input/log/stdin.go +++ b/filebeat/input/log/stdin.go @@ -44,3 +44,4 @@ func (p Pipe) Name() string { return p.File.Name() } func (p Pipe) Stat() (os.FileInfo, error) { return p.File.Stat() } func (p Pipe) Continuable() bool { return false } func (p Pipe) HasState() bool { return false } +func (p Pipe) Removed() bool { return false } diff --git a/filebeat/registrar/registrar.go b/filebeat/registrar/registrar.go index f128107b5fc..22fdd1b6066 100644 --- a/filebeat/registrar/registrar.go +++ b/filebeat/registrar/registrar.go @@ -408,7 +408,7 @@ func (r *Registrar) writeRegistry() error { } func writeTmpFile(baseName string, perm os.FileMode, states []file.State) (string, error) { - logp.Debug("registrar", "Write registry file: %s", baseName) + logp.Debug("registrar", "Write registry file: %s (%v)", baseName, len(states)) tempfile := baseName + ".new" f, err := os.OpenFile(tempfile, os.O_RDWR|os.O_CREATE|os.O_TRUNC|os.O_SYNC, perm) diff --git a/filebeat/tests/system/filebeat.py b/filebeat/tests/system/filebeat.py index df2b8483855..39c14518476 100644 --- a/filebeat/tests/system/filebeat.py +++ b/filebeat/tests/system/filebeat.py @@ -6,7 +6,7 @@ curdir = os.path.dirname(__file__) sys.path.append(os.path.join(curdir, '../../../libbeat/tests/system')) -from beat.beat import TestCase +from beat.beat import TestCase, TimeoutError, REGEXP_TYPE default_registry_file = 'registry/filebeat/data.json' @@ -22,27 +22,33 @@ def setUpClass(self): super(BaseTest, self).setUpClass() - def has_registry(self, name=None, data_path=None): - if not name: - name = default_registry_file - if not data_path: - data_path = self.working_dir + @property + def registry(self): + return self.access_registry() - dotFilebeat = os.path.join(data_path, name) - return os.path.isfile(dotFilebeat) + @property + def input_logs(self): + return InputLogs(os.path.join(self.working_dir, "log")) - def get_registry(self, name=None, data_path=None): - if not name: - name = default_registry_file - if not data_path: - data_path = self.working_dir + @property + def logs(self): + return self.log_access() - # Returns content of the registry file - dotFilebeat = os.path.join(data_path, name) - self.wait_until(cond=lambda: os.path.isfile(dotFilebeat)) + def access_registry(self, name=None, data_path=None): + data_path = data_path if data_path else self.working_dir + return Registry(data_path, name) - with open(dotFilebeat) as file: - return json.load(file) + def log_access(self, file=None): + file = file if file else self.beat_name + ".log" + return LogState(os.path.join(self.working_dir, file)) + + def has_registry(self, name=None, data_path=None): + return self.access_registry(name, data_path).exists() + + def get_registry(self, name=None, data_path=None, filter=None): + reg = self.access_registry(name, data_path) + self.wait_until(reg.exists) + return reg.load(filter=filter) def get_registry_entry_by_path(self, path): """ @@ -51,21 +57,112 @@ def get_registry_entry_by_path(self, path): If a path exists multiple times (which is possible because of file rotation) the most recent version is returned """ - registry = self.get_registry() - tmp_entry = None + def hasPath(entry): + return entry["source"] == path - # Checks all entries and returns the most recent one - for entry in registry: - if entry["source"] == path: - if tmp_entry == None: - tmp_entry = entry - else: - if tmp_entry["timestamp"] < entry["timestamp"]: - tmp_entry = entry + entries = self.get_registry(filter=hasPath) + entries.sort(key=lambda x: x["timestamp"]) - return tmp_entry + # return entry with largest timestamp + return None if len(entries) == 0 else entries[-1] def file_permissions(self, path): full_path = os.path.join(self.working_dir, path) return oct(stat.S_IMODE(os.lstat(full_path).st_mode)) + + +class InputLogs: + """ InputLogs is used to write and append to files which are read by filebeat. """ + + def __init__(self, home): + self.home = home + if not os.path.isdir(self.home): + os.mkdir(self.home) + + def write(self, name, contents): + self._write_to(name, 'w', contents) + + def append(self, name, contents): + self._write_to(name, 'a', contents) + + def size(self, name): + return os.path.getsize(self.path_of(name)) + + def _write_to(self, name, mode, contents): + with open(self.path_of(name), mode) as f: + f.write(contents) + + def remove(self, name): + os.remove(self.path_of(name)) + + def path_of(self, name): + return os.path.join(self.home, name) + + +class Registry: + """ Registry provides access to the registry used by filebeat to store its progress """ + + def __init__(self, home, name=None): + if not name: + name = default_registry_file + self.path = os.path.join(home, name) + + def exists(self): + return os.path.isfile(self.path) + + def load(self, filter=None): + with open(self.path) as f: + entries = json.load(f) + + if filter: + entries = [x for x in entries if filter(x)] + return entries + + def count(self, filter=None): + if not self.exists(): + return 0 + return len(self.load(filter=filter)) + + +class LogState: + def __init__(self, path): + self.path = path + self.off = 0 + + def checkpoint(self): + self.off = os.path.getsize(self.path) + + def lines(self, filter=None): + if not filter: + def filter(x): return True + with open(self.path, "r") as f: + f.seek(self.off) + return [l for l in f if filter(l)] + + def contains(self, msg, ignore_case=False, count=1): + if ignore_case: + msg = msg.lower() + + if type(msg) == REGEXP_TYPE: + def match(x): return msg.search(x) is not None + else: + def match(x): return x.find(msg) >= 0 + + pred = match + if ignore_case: + def pred(x): return match(x.lower()) + + return len(self.lines(filter=pred)) >= count + + def next(self, msg, ignore_case=False, count=1): + ok = self.contains(msg, ignore_case, count) + if ok: + self.checkpoint() + return ok + + def nextCheck(self, msg, ignore_case=False, count=1): + return lambda: self.next(msg, ignore_case, count) + + def check(self, msg, ignore_case=False, count=1): + return lambda: self.contains(msg, ignore_case, count) diff --git a/filebeat/tests/system/test_registrar.py b/filebeat/tests/system/test_registrar.py index fc1579745fc..f988867c3d4 100644 --- a/filebeat/tests/system/test_registrar.py +++ b/filebeat/tests/system/test_registrar.py @@ -3,9 +3,10 @@ import os import platform -import time +import re import shutil import stat +import time import unittest from filebeat import BaseTest @@ -778,73 +779,46 @@ def test_clean_inactive(self): """ self.render_config_template( path=os.path.abspath(self.working_dir) + "/log/input*", - clean_inactive="4s", + clean_inactive="3s", ignore_older="2s", close_inactive="0.2s", scan_frequency="0.1s" ) - os.mkdir(self.working_dir + "/log/") - testfile_path1 = self.working_dir + "/log/input1" - testfile_path2 = self.working_dir + "/log/input2" - testfile_path3 = self.working_dir + "/log/input3" - - with open(testfile_path1, 'w') as testfile1: - testfile1.write("first file\n") + file1 = "input1" + file2 = "input2" + file3 = "input3" - with open(testfile_path2, 'w') as testfile2: - testfile2.write("second file\n") + self.input_logs.write(file1, "first file\n") + self.input_logs.write(file2, "second file\n") filebeat = self.start_beat() - self.wait_until( - lambda: self.output_has(lines=2), - max_timeout=10) + self.wait_until(lambda: self.output_has(lines=2), max_timeout=10) # Wait until registry file is created - self.wait_until( - lambda: self.log_contains_count("Registry file updated") > 1, - max_timeout=15) - - # Syncing file on disk is always susceptible to timing issues. - time.sleep(1) - - data = self.get_registry() - assert len(data) == 2 + self.wait_until(lambda: self.registry.exists(), max_timeout=15) + assert self.registry.count() == 2 # Wait until states are removed from inputs - self.wait_until( - lambda: self.log_contains_count( - "State removed for") == 2, - max_timeout=15) - - with open(testfile_path3, 'w') as testfile3: - testfile3.write("2\n") + self.wait_until(self.logs.nextCheck("State removed for", count=2), max_timeout=15) # Write new file to make sure registrar is flushed again - self.wait_until( - lambda: self.output_has(lines=3), - max_timeout=30) + self.input_logs.write(file3, "third file\n") + self.wait_until(lambda: self.output_has(lines=3), max_timeout=30) - # Wait until states are removed from inputs - self.wait_until( - lambda: self.log_contains_count( - "State removed for") >= 3, - max_timeout=15) + # Wait until state of new file is removed + self.wait_until(self.logs.nextCheck("State removed for"), max_timeout=15) filebeat.check_kill_and_wait() # Check that the first two files were removed from the registry - data = self.get_registry() + data = self.registry.load() assert len(data) == 1, "Expected a single file but got: %s" % data # Make sure the last file in the registry is the correct one and has the correct offset - if os.name == "nt": - assert data[0]["offset"] == 3 - else: - assert data[0]["offset"] == 2 + assert data[0]["offset"] == self.input_logs.size(file3) - @unittest.skip("Skipped as flaky: https://github.com/elastic/beats/issues/7690") def test_clean_removed(self): """ Checks that files which were removed, the state is removed @@ -857,58 +831,43 @@ def test_clean_removed(self): close_removed=True ) - os.mkdir(self.working_dir + "/log/") - testfile_path1 = self.working_dir + "/log/input1" - testfile_path2 = self.working_dir + "/log/input2" + file1 = "input1" + file2 = "input2" - with open(testfile_path1, 'w') as testfile1: - testfile1.write("file to be removed\n") - - with open(testfile_path2, 'w') as testfile2: - testfile2.write("2\n") + self.input_logs.write(file1, "file to be removed\n") + self.input_logs.write(file2, "2\n") filebeat = self.start_beat() - self.wait_until( - lambda: self.output_has(lines=2), - max_timeout=10) + self.wait_until(lambda: self.output_has(lines=2), max_timeout=10) # Wait until registry file is created - self.wait_until(lambda: self.log_contains_count("Registry file updated") > 1) + self.wait_until(self.registry.exists) # Wait until registry is updated - self.wait_until(lambda: len(self.get_registry()) == 2) - assert len(self.get_registry()) == 2 + self.wait_until(lambda: self.registry.count() == 2) - os.remove(testfile_path1) + self.input_logs.remove(file1) # Wait until states are removed from inputs - self.wait_until(lambda: self.log_contains("Remove state for file as file removed")) + self.wait_until(self.logs.check("Remove state for file as file removed")) # Add one more line to make sure registry is written - with open(testfile_path2, 'a') as testfile2: - testfile2.write("make sure registry is written\n") - - self.wait_until( - lambda: self.output_has(lines=3), - max_timeout=10) + self.input_logs.append(file2, "make sure registry is written\n") + self.wait_until(lambda: self.output_has(lines=3), max_timeout=10) # Make sure all states are cleaned up - self.wait_until(lambda: self.log_contains("Before: 1, After: 1, Pending: 0")) + self.wait_until(self.logs.nextCheck(re.compile("Registrar.*After: 1"))) filebeat.check_kill_and_wait() # Check that the first to files were removed from the registry - data = self.get_registry() + data = self.registry.load() assert len(data) == 1 # Make sure the last file in the registry is the correct one and has the correct offset - if os.name == "nt": - assert data[0]["offset"] == len("make sure registry is written\n" + "2\n") + 2 - else: - assert data[0]["offset"] == len("make sure registry is written\n" + "2\n") + assert data[0]["offset"] == self.input_logs.size(file2) - @unittest.skip('flaky test https://github.com/elastic/beats/issues/9215') def test_clean_removed_with_clean_inactive(self): """ Checks that files which were removed, the state is removed @@ -918,59 +877,58 @@ def test_clean_removed_with_clean_inactive(self): path=os.path.abspath(self.working_dir) + "/log/input*", scan_frequency="0.1s", clean_removed=True, - clean_inactive="20s", + clean_inactive="60s", ignore_older="15s", close_removed=True ) - os.mkdir(self.working_dir + "/log/") - testfile_path1 = self.working_dir + "/log/input1" - testfile_path2 = self.working_dir + "/log/input2" - - with open(testfile_path1, 'w') as testfile1: - testfile1.write("file to be removed\n") - - with open(testfile_path2, 'w') as testfile2: - testfile2.write("2\n") + file1 = "input1" + file2 = "input2" + contents2 = [ + "2\n", + "make sure registry is written\n", + ] + self.input_logs.write(file1, "file to be removed\n") + self.input_logs.write(file2, contents2[0]) filebeat = self.start_beat() - self.wait_until( - lambda: self.output_has(lines=2), - max_timeout=10) + self.wait_until(lambda: self.output_has(lines=2), max_timeout=10) # Wait until registry file is created self.wait_until( - lambda: self.log_contains_count("Registry file updated. 2 states written.") > 0, + self.logs.nextCheck("Registry file updated. 2 states written."), max_timeout=15) - data = self.get_registry() - assert len(data) == 2 + count = self.registry.count() + print("registry size: {}".format(count)) + assert count == 2 - os.remove(testfile_path1) + self.input_logs.remove(file1) # Wait until states are removed from inputs - self.wait_until(lambda: self.log_contains("Remove state for file as file removed")) + self.wait_until(self.logs.nextCheck("Remove state for file as file removed")) # Add one more line to make sure registry is written - with open(testfile_path2, 'a') as testfile2: - testfile2.write("make sure registry is written\n") + self.input_logs.append(file2, contents2[1]) self.wait_until(lambda: self.output_has(lines=3)) - # Check is > as the same log line might happen before but afterwards it is repeated - self.wait_until(lambda: self.log_contains_count("Before: 1, After: 1, Pending: 1") > 5) + + # wait until next gc and until registry file has been updated + self.wait_until(self.logs.check("Before: 1, After: 1, Pending: 1")) + self.wait_until(self.logs.nextCheck("Registry file updated. 1 states written.")) + count = self.registry.count() + print("registry size after remove: {}".format(count)) + assert count == 1 filebeat.check_kill_and_wait() - # Check that the first to files were removed from the registry - data = self.get_registry() + # Check that the first two files were removed from the registry + data = self.registry.load() assert len(data) == 1 # Make sure the last file in the registry is the correct one and has the correct offset - if os.name == "nt": - assert data[0]["offset"] == len("make sure registry is written\n" + "2\n") + 2 - else: - assert data[0]["offset"] == len("make sure registry is written\n" + "2\n") + assert data[0]["offset"] == self.input_logs.size(file2) def test_symlink_failure(self): """ @@ -1044,56 +1002,44 @@ def test_restart_state(self): self.render_config_template( path=os.path.abspath(self.working_dir) + "/log/*", - close_inactive="1s", - ignore_older="3s", + close_inactive="200ms", + ignore_older="2000ms", ) - os.mkdir(self.working_dir + "/log/") - testfile_path1 = self.working_dir + "/log/test1.log" - testfile_path2 = self.working_dir + "/log/test2.log" - testfile_path3 = self.working_dir + "/log/test3.log" - testfile_path4 = self.working_dir + "/log/test4.log" + init_files = ["test"+str(i)+".log" for i in range(3)] + restart_files = ["test"+str(i+3)+".log" for i in range(1)] - with open(testfile_path1, 'w') as testfile1: - testfile1.write("Hello World\n") - with open(testfile_path2, 'w') as testfile2: - testfile2.write("Hello World\n") - with open(testfile_path3, 'w') as testfile3: - testfile3.write("Hello World\n") + for name in init_files: + self.input_logs.write(name, "Hello World\n") filebeat = self.start_beat() # Make sure states written appears one more time self.wait_until( - lambda: self.log_contains("Ignore file because ignore_older"), + self.logs.check("Ignore file because ignore_older"), max_timeout=10) filebeat.check_kill_and_wait() self.render_config_template( path=os.path.abspath(self.working_dir) + "/log/*", - close_inactive="1s", - ignore_older="3s", - clean_inactive="5s", + close_inactive="200ms", + ignore_older="2000ms", + clean_inactive="3s", ) filebeat = self.start_beat(output="filebeat2.log") + logs = self.log_access("filebeat2.log") # Write additional file - with open(testfile_path4, 'w') as testfile4: - testfile4.write("Hello World\n") + for name in restart_files: + self.input_logs.write(name, "Hello World\n") # Make sure all 4 states are persisted - self.wait_until( - lambda: self.log_contains( - "input states cleaned up. Before: 4, After: 4", logfile="filebeat2.log"), - max_timeout=10) + self.wait_until(logs.nextCheck("input states cleaned up. Before: 4, After: 4")) # Wait until registry file is cleaned - self.wait_until( - lambda: self.log_contains( - "input states cleaned up. Before: 0, After: 0", logfile="filebeat2.log"), - max_timeout=10) + self.wait_until(logs.nextCheck("input states cleaned up. Before: 0, After: 0")) filebeat.check_kill_and_wait() diff --git a/libbeat/common/file/file_other.go b/libbeat/common/file/file_other.go index 1ac4ecb2cd4..894183cee32 100644 --- a/libbeat/common/file/file_other.go +++ b/libbeat/common/file/file_other.go @@ -62,3 +62,9 @@ func ReadOpen(path string) (*os.File, error) { perm := os.FileMode(0) return os.OpenFile(path, flag, perm) } + +// IsRemoved checks wheter the file held by f is removed. +func IsRemoved(f *os.File) bool { + _, err := os.Stat(f.Name()) + return err != nil +} diff --git a/libbeat/common/file/file_windows.go b/libbeat/common/file/file_windows.go index 6572fa78862..55f6ef4e1b2 100644 --- a/libbeat/common/file/file_windows.go +++ b/libbeat/common/file/file_windows.go @@ -23,6 +23,9 @@ import ( "reflect" "strconv" "syscall" + "unsafe" + + "golang.org/x/sys/windows" ) type StateOS struct { @@ -31,6 +34,12 @@ type StateOS struct { Vol uint64 `json:"vol,"` } +var ( + modkernel32 = windows.NewLazyDLL("kernel32.dll") + + procGetFileInformationByHandleEx = modkernel32.NewProc("GetFileInformationByHandleEx") +) + // GetOSState returns the platform specific StateOS func GetOSState(info os.FileInfo) StateOS { // os.SameFile must be called to populate the id fields. Otherwise in case for example @@ -107,3 +116,33 @@ func ReadOpen(path string) (*os.File, error) { return os.NewFile(uintptr(handle), path), nil } + +// IsRemoved checks wheter the file held by f is removed. +// On Windows IsRemoved reads the DeletePending flags using the GetFileInformationByHandleEx. +// A file is not removed/unlinked as long as at least one process still own a +// file handle. A delete file is only marked as deleted, and file attributes +// can still be read. Only opening a file marked with 'DeletePending' will +// fail. +func IsRemoved(f *os.File) bool { + hdl := f.Fd() + if hdl == uintptr(syscall.InvalidHandle) { + return false + } + + info := struct { + AllocationSize int64 + EndOfFile int64 + NumberOfLinks int32 + DeletePending bool + Directory bool + }{} + infoSz := unsafe.Sizeof(info) + + const class = 1 // FileStandardInfo + r1, _, _ := syscall.Syscall6( + procGetFileInformationByHandleEx.Addr(), 4, uintptr(hdl), class, uintptr(unsafe.Pointer(&info)), infoSz, 0, 0) + if r1 == 0 { + return true // assume file is removed if syscall errors + } + return info.DeletePending +} From c8b2f1cafaf7c54649db3b0a5fb0e91270d6bb44 Mon Sep 17 00:00:00 2001 From: tehmoon Date: Mon, 18 Feb 2019 08:10:04 -0500 Subject: [PATCH 044/332] Wrong template for postgresql statement module (#10631) According to: https://github.com/elastic/beats/blob/master/metricbeat/module/postgresql/statement/data.go the default template casts a `long` for a `ms: float` type object --- metricbeat/docs/fields.asciidoc | 36 +++++----- metricbeat/module/postgresql/fields.go | 2 +- .../postgresql/statement/_meta/data.json | 66 +++++++++++-------- .../postgresql/statement/_meta/fields.yml | 36 +++++----- 4 files changed, 75 insertions(+), 65 deletions(-) diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index 42ba7d7799c..53da6d070ff 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -19753,37 +19753,37 @@ Total number of rows returned by query. -- -*`postgresql.statement.time.total`*:: +*`postgresql.statement.query.time.total.ms`*:: + -- -type: long +type: float Total number of milliseconds spent running query. -- -*`postgresql.statement.time.min`*:: +*`postgresql.statement.query.time.min.ms`*:: + -- -type: long +type: float Minimum number of milliseconds spent running query. -- -*`postgresql.statement.time.max`*:: +*`postgresql.statement.query.time.max.ms`*:: + -- -type: long +type: float Maximum number of milliseconds spent running query. -- -*`postgresql.statement.time.mean`*:: +*`postgresql.statement.query.time.mean.ms`*:: + -- type: long @@ -19793,7 +19793,7 @@ Mean number of milliseconds spent running query. -- -*`postgresql.statement.time.stddev`*:: +*`postgresql.statement.query.time.stddev.ms`*:: + -- type: long @@ -19803,7 +19803,7 @@ Population standard deviation of time spent running query, in milliseconds. -- -*`postgresql.statement.memory.shared.hit`*:: +*`postgresql.statement.query.memory.shared.hit`*:: + -- type: long @@ -19813,7 +19813,7 @@ Total number of shared block cache hits by the query. -- -*`postgresql.statement.memory.shared.read`*:: +*`postgresql.statement.query.memory.shared.read`*:: + -- type: long @@ -19823,7 +19823,7 @@ Total number of shared block cache read by the query. -- -*`postgresql.statement.memory.shared.dirtied`*:: +*`postgresql.statement.query.memory.shared.dirtied`*:: + -- type: long @@ -19833,7 +19833,7 @@ Total number of shared block cache dirtied by the query. -- -*`postgresql.statement.memory.shared.written`*:: +*`postgresql.statement.query.memory.shared.written`*:: + -- type: long @@ -19843,7 +19843,7 @@ Total number of shared block cache written by the query. -- -*`postgresql.statement.memory.local.hit`*:: +*`postgresql.statement.query.memory.local.hit`*:: + -- type: long @@ -19853,7 +19853,7 @@ Total number of local block cache hits by the query. -- -*`postgresql.statement.memory.local.read`*:: +*`postgresql.statement.query.memory.local.read`*:: + -- type: long @@ -19863,7 +19863,7 @@ Total number of local block cache read by the query. -- -*`postgresql.statement.memory.local.dirtied`*:: +*`postgresql.statement.query.memory.local.dirtied`*:: + -- type: long @@ -19873,7 +19873,7 @@ Total number of local block cache dirtied by the query. -- -*`postgresql.statement.memory.local.written`*:: +*`postgresql.statement.query.memory.local.written`*:: + -- type: long @@ -19883,7 +19883,7 @@ Total number of local block cache written by the query. -- -*`postgresql.statement.memory.temp.read`*:: +*`postgresql.statement.query.memory.temp.read`*:: + -- type: long @@ -19893,7 +19893,7 @@ Total number of temp block cache read by the query. -- -*`postgresql.statement.memory.temp.written`*:: +*`postgresql.statement.query.memory.temp.written`*:: + -- type: long diff --git a/metricbeat/module/postgresql/fields.go b/metricbeat/module/postgresql/fields.go index ac394555f73..2ded1e5f4ec 100644 --- a/metricbeat/module/postgresql/fields.go +++ b/metricbeat/module/postgresql/fields.go @@ -32,5 +32,5 @@ func init() { // AssetPostgresql returns asset data. // This is the base64 encoded gzipped contents of ../metricbeat/module/postgresql. func AssetPostgresql() string { - return "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" + return "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" } diff --git a/metricbeat/module/postgresql/statement/_meta/data.json b/metricbeat/module/postgresql/statement/_meta/data.json index 6350be5ca4a..2ef8bdde79c 100644 --- a/metricbeat/module/postgresql/statement/_meta/data.json +++ b/metricbeat/module/postgresql/statement/_meta/data.json @@ -16,38 +16,48 @@ "id": 10 }, "database": { - "oid": "12407" + "oid": 175251 }, "query": { - "id": "3240664890", - "text": "SELECT pg_sleep(?);", - "calls": "2", - "rows": "2", + "text": "ROLLBACK", + "memory": { + "shared": { + "hit": 0, + "read": 0, + "dirtied": 0, + "written": 0 + }, + "temp": { + "read": 0, + "written": 0 + }, + "local": { + "hit": 0, + "read": 0, + "dirtied": 0, + "written": 0 + } + }, + "id": "961354038", + "rows": 0, "time": { - "total": 120066.497, - "min": 60029.533, - "max": 60036.964, - "mean": 60033.2485, - "stddev": 3.71549999999843 + "min": { + "ms": 0 + }, + "total": { + "ms": 0.02900000000000002 + }, + "stddev": { + "ms": 0.0003768830273792263 + }, + "max": { + "ms": 0.001 + }, + "mean": { + "ms": 0.0008285714285714287 + } }, - "memory": { - "shared": { - "hit": 0, - "read": 0, - "dirtied": 0, - "written": 0, - }, - "local": { - "hit": 0, - "read": 0, - "dirtied": 0, - "written": 0, - }, - "temp": { - "read": 0, - "written": 0, - } - } + "calls": 35 } } } diff --git a/metricbeat/module/postgresql/statement/_meta/fields.yml b/metricbeat/module/postgresql/statement/_meta/fields.yml index 0974349e2ca..f8e315354a4 100644 --- a/metricbeat/module/postgresql/statement/_meta/fields.yml +++ b/metricbeat/module/postgresql/statement/_meta/fields.yml @@ -29,63 +29,63 @@ type: long description: > Total number of rows returned by query. - - name: time.total - type: long + - name: query.time.total.ms + type: float description: > Total number of milliseconds spent running query. - - name: time.min - type: long + - name: query.time.min.ms + type: float description: > Minimum number of milliseconds spent running query. - - name: time.max - type: long + - name: query.time.max.ms + type: float description: > Maximum number of milliseconds spent running query. - - name: time.mean + - name: query.time.mean.ms type: long description: > Mean number of milliseconds spent running query. - - name: time.stddev + - name: query.time.stddev.ms type: long description: > Population standard deviation of time spent running query, in milliseconds. - - name: memory.shared.hit + - name: query.memory.shared.hit type: long description: > Total number of shared block cache hits by the query. - - name: memory.shared.read + - name: query.memory.shared.read type: long description: > Total number of shared block cache read by the query. - - name: memory.shared.dirtied + - name: query.memory.shared.dirtied type: long description: > Total number of shared block cache dirtied by the query. - - name: memory.shared.written + - name: query.memory.shared.written type: long description: > Total number of shared block cache written by the query. - - name: memory.local.hit + - name: query.memory.local.hit type: long description: > Total number of local block cache hits by the query. - - name: memory.local.read + - name: query.memory.local.read type: long description: > Total number of local block cache read by the query. - - name: memory.local.dirtied + - name: query.memory.local.dirtied type: long description: > Total number of local block cache dirtied by the query. - - name: memory.local.written + - name: query.memory.local.written type: long description: > Total number of local block cache written by the query. - - name: memory.temp.read + - name: query.memory.temp.read type: long description: > Total number of temp block cache read by the query. - - name: memory.temp.written + - name: query.memory.temp.written type: long description: > Total number of temp block cache written by the query. From dd92b6f887c18c40932969d9430be9d54d7f6903 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Mon, 18 Feb 2019 08:26:50 -0500 Subject: [PATCH 045/332] Adding Cisco support for the Syslog parser (#10760) * Adding Cisco support for the Syslog parser Add support for the "sequence" number in the log format send by Cisco switch devices. Fixes: #10654 --- CHANGELOG.next.asciidoc | 3 +- filebeat/_meta/fields.common.yml | 6 + filebeat/docs/fields.asciidoc | 12 + filebeat/include/fields.go | 2 +- filebeat/input/syslog/event.go | 13 + filebeat/input/syslog/input.go | 5 + filebeat/input/syslog/input_test.go | 26 + filebeat/input/syslog/parser.go | 2337 +++++++++++++++-------- filebeat/input/syslog/parser.rl | 27 +- filebeat/input/syslog/parser_test.go | 109 ++ filebeat/input/syslog/syslog_rfc3164.rl | 11 +- 11 files changed, 1711 insertions(+), 840 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 5cb24e52e0d..cafbbbce152 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -81,7 +81,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - The `elasticsearch/deprecation` fileset now indexes the `component` field under `elasticsearch` instead of `elasticsearch.server`. {pull}10445[10445] - Remove field `kafka.log.trace.full` from kafka.log fielset. {pull}10398[10398] - Change field `kafka.log.class` for kafka.log fileset from text to keyword. {pull}10398[10398] -- Address add_kubernetes_metadata processor issue where old source field is +- Address add_kubernetes_metadata processor issue where old source field is still used for matcher. {issue}10505[10505] {pull}10506[10506] - Change type of haproxy.source from text to keyword. {pull}10506[10506] - Rename `event.type` to `suricata.eve.event_type` in Suricata module because event.type is reserved for future use by ECS. {pull}10575[10575] @@ -185,6 +185,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Fix bad bytes count in `docker` input when filtering by stream. {pull}10211[10211] - Fixed data types for roles and indices fields in `elasticsearch/audit` fileset {pull}10307[10307] - Ensure `source.address` is always populated by the nginx module (ECS). {pull}10418[10418] +- Add support for Cisco syslog format used by their switch. {pull}10760[10760] - Cover empty request data, url and version in Apache2 module{pull}10730[10730] - Fix registry entries not being cleaned due to race conditions. {pull}10747[10747] - Improve detection of file deletion on Windows. {pull}10747[10747] diff --git a/filebeat/_meta/fields.common.yml b/filebeat/_meta/fields.common.yml index 9f197949a11..770d781f437 100644 --- a/filebeat/_meta/fields.common.yml +++ b/filebeat/_meta/fields.common.yml @@ -35,6 +35,12 @@ The input type from which the event was generated. This field is set to the value specified for the `type` option in the input section of the Filebeat config file. + - name: event.sequence + type: long + required: false + description: > + The sequence number of this event. + - name: syslog.facility type: long required: false diff --git a/filebeat/docs/fields.asciidoc b/filebeat/docs/fields.asciidoc index 0ca41a546a3..6df8c561056 100644 --- a/filebeat/docs/fields.asciidoc +++ b/filebeat/docs/fields.asciidoc @@ -6585,6 +6585,18 @@ required: True The input type from which the event was generated. This field is set to the value specified for the `type` option in the input section of the Filebeat config file. +-- + +*`event.sequence`*:: ++ +-- +type: long + +required: False + +The sequence number of this event. + + -- *`syslog.facility`*:: diff --git a/filebeat/include/fields.go b/filebeat/include/fields.go index 633614a8eef..4227fc3d3ea 100644 --- a/filebeat/include/fields.go +++ b/filebeat/include/fields.go @@ -32,5 +32,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "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" + return "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" } diff --git a/filebeat/input/syslog/event.go b/filebeat/input/syslog/event.go index 1ffcf074a75..6a83a69d653 100644 --- a/filebeat/input/syslog/event.go +++ b/filebeat/input/syslog/event.go @@ -71,6 +71,7 @@ type event struct { nanosecond int year int loc *time.Location + sequence int } // newEvent() return a new event. @@ -84,6 +85,7 @@ func newEvent() *event { minute: -1, second: -1, year: time.Now().Year(), + sequence: -1, } } @@ -269,6 +271,17 @@ func (s *event) HasPid() bool { return s.pid > 0 } +// SetSequence set the sequence number for this event. +func (s *event) SetSequence(b []byte) { + s.sequence = bytesToInt(b) +} + +// Sequence returns the sequence number of the event when defined, +// otherwise return -1. +func (s *event) Sequence() int { + return s.sequence +} + // SetNanoSecond sets the nanosecond. func (s *event) SetNanosecond(b []byte) { // We assume that we receive a byte array representing a nanosecond, this might not be diff --git a/filebeat/input/syslog/input.go b/filebeat/input/syslog/input.go index 3750d2e5df7..f03f5c1b300 100644 --- a/filebeat/input/syslog/input.go +++ b/filebeat/input/syslog/input.go @@ -37,6 +37,7 @@ import ( // Parser is generated from a ragel state machine using the following command: //go:generate ragel -Z -G2 parser.rl -o parser.go +//go:generate go fmt parser.go // Severity and Facility are derived from the priority, theses are the human readable terms // defined in https://tools.ietf.org/html/rfc3164#section-4.1.1. @@ -250,6 +251,10 @@ func createEvent(ev *event, metadata inputsource.NetworkMetadata, timezone *time f["event"] = event f["process"] = process + if ev.Sequence() != -1 { + f["event.sequence"] = ev.Sequence() + } + return &beat.Event{ Timestamp: ev.Timestamp(timezone), Meta: common.MapStr{ diff --git a/filebeat/input/syslog/input_test.go b/filebeat/input/syslog/input_test.go index 2b1d64184bb..0387feb0bd8 100644 --- a/filebeat/input/syslog/input_test.go +++ b/filebeat/input/syslog/input_test.go @@ -174,6 +174,32 @@ func TestProgram(t *testing.T) { }) } +func TestSequence(t *testing.T) { + t.Run("is set", func(t *testing.T) { + e := newEvent() + e.SetMessage([]byte("hello world")) + e.SetProgram([]byte("sudo")) + e.SetSequence([]byte("123")) + m := dummyMetadata() + event := createEvent(e, m, time.Local, logp.NewLogger("syslog")) + v, err := event.GetValue("event.sequence") + if !assert.NoError(t, err) { + return + } + assert.Equal(t, v, 123) + }) + + t.Run("is not set", func(t *testing.T) { + e := newEvent() + e.SetMessage([]byte("hello world")) + m := dummyMetadata() + event := createEvent(e, m, time.Local, logp.NewLogger("syslog")) + + _, err := event.GetValue("event.sequence") + assert.Error(t, err) + }) +} + func dummyMetadata() inputsource.NetworkMetadata { ip := "127.0.0.1" parsedIP := net.ParseIP(ip) diff --git a/filebeat/input/syslog/parser.go b/filebeat/input/syslog/parser.go index 674ad5930d1..f643bc7d7b3 100644 --- a/filebeat/input/syslog/parser.go +++ b/filebeat/input/syslog/parser.go @@ -21,28 +21,31 @@ package syslog //line parser.go:8 const syslog_start int = 0 -const syslog_first_final int = 1 +const syslog_first_final int = 2 const syslog_error int = -1 const syslog_en_main int = 0 +const syslog_en_catch_all int = 1 //line parser.rl:9 -// syslog -//<34>Oct 11 22:14:15 wopr su: 'su root' failed for foobar -//<13>Feb 5 17:32:18 10.0.0.99 Use the quad dmg. +var ( + noDuplicates = []byte{'-', '.'} +) + +// Parse parses Syslog events. func Parse(data []byte, event *event) { var p, cs int pe := len(data) tok := 0 eof := len(data) -//line parser.go:28 +//line parser.go:31 { cs = syslog_start } -//line parser.go:33 +//line parser.go:36 { if (p) == (pe) { goto _test_eof @@ -50,8 +53,6 @@ func Parse(data []byte, event *event) { switch cs { case 0: goto st_case_0 - case 1: - goto st_case_1 case 2: goto st_case_2 case 3: @@ -262,6 +263,36 @@ func Parse(data []byte, event *event) { goto st_case_105 case 106: goto st_case_106 + case 107: + goto st_case_107 + case 108: + goto st_case_108 + case 109: + goto st_case_109 + case 110: + goto st_case_110 + case 111: + goto st_case_111 + case 112: + goto st_case_112 + case 113: + goto st_case_113 + case 114: + goto st_case_114 + case 115: + goto st_case_115 + case 116: + goto st_case_116 + case 117: + goto st_case_117 + case 118: + goto st_case_118 + case 119: + goto st_case_119 + case 1: + goto st_case_1 + case 120: + goto st_case_120 } goto st_out st_case_0: @@ -290,20 +321,17 @@ func Parse(data []byte, event *event) { } goto tr0 tr0: -//line parser.rl:20 +//line parser.rl:22 tok = p - goto st1 - st1: - if (p)++; (p) == (pe) { - goto _test_eof1 - } - st_case_1: -//line parser.go:291 - goto st1 - tr1: -//line parser.rl:20 + goto st2 + tr75: +//line parser.rl:97 + + event.SetSequence(data[tok:p]) + +//line parser.rl:22 tok = p @@ -313,58 +341,70 @@ func Parse(data []byte, event *event) { goto _test_eof2 } st_case_2: -//line parser.go:304 - if 48 <= data[(p)] && data[(p)] <= 57 { - goto st3 - } - goto st1 +//line parser.go:332 + goto st2 + tr1: +//line parser.rl:22 + + tok = p + + goto st3 st3: if (p)++; (p) == (pe) { goto _test_eof3 } st_case_3: +//line parser.go:345 + if data[(p)] == 58 { + goto st48 + } if 48 <= data[(p)] && data[(p)] <= 57 { goto st4 } - goto st1 + goto st2 st4: if (p)++; (p) == (pe) { goto _test_eof4 } st_case_4: + if data[(p)] == 58 { + goto st48 + } if 48 <= data[(p)] && data[(p)] <= 57 { goto st5 } - goto st1 + goto st2 st5: if (p)++; (p) == (pe) { goto _test_eof5 } st_case_5: - if data[(p)] == 45 { - goto tr15 + if data[(p)] == 58 { + goto st48 } - goto st1 - tr15: -//line parser.rl:36 - - event.SetYear(data[tok:p]) - - goto st6 + if 48 <= data[(p)] && data[(p)] <= 57 { + goto st6 + } + goto st2 st6: if (p)++; (p) == (pe) { goto _test_eof6 } st_case_6: -//line parser.go:347 + switch data[(p)] { + case 45: + goto tr17 + case 58: + goto st48 + } if 48 <= data[(p)] && data[(p)] <= 57 { - goto tr16 + goto st47 } - goto st1 - tr16: -//line parser.rl:20 + goto st2 + tr17: +//line parser.rl:38 - tok = p + event.SetYear(data[tok:p]) goto st7 st7: @@ -372,40 +412,40 @@ func Parse(data []byte, event *event) { goto _test_eof7 } st_case_7: -//line parser.go:363 +//line parser.go:403 if 48 <= data[(p)] && data[(p)] <= 57 { - goto st8 + goto tr19 } - goto st1 + goto st2 + tr19: +//line parser.rl:22 + + tok = p + + goto st8 st8: if (p)++; (p) == (pe) { goto _test_eof8 } st_case_8: - if data[(p)] == 45 { - goto tr18 +//line parser.go:419 + if 48 <= data[(p)] && data[(p)] <= 57 { + goto st9 } - goto st1 - tr18: -//line parser.rl:40 - - event.SetMonthNumeric(data[tok:p]) - - goto st9 + goto st2 st9: if (p)++; (p) == (pe) { goto _test_eof9 } st_case_9: -//line parser.go:388 - if 48 <= data[(p)] && data[(p)] <= 51 { - goto tr19 + if data[(p)] == 45 { + goto tr21 } - goto st1 - tr19: -//line parser.rl:20 + goto st2 + tr21: +//line parser.rl:42 - tok = p + event.SetMonthNumeric(data[tok:p]) goto st10 st10: @@ -413,92 +453,92 @@ func Parse(data []byte, event *event) { goto _test_eof10 } st_case_10: -//line parser.go:404 - if 48 <= data[(p)] && data[(p)] <= 57 { - goto st11 +//line parser.go:444 + if 48 <= data[(p)] && data[(p)] <= 51 { + goto tr22 } - goto st1 + goto st2 + tr22: +//line parser.rl:22 + + tok = p + + goto st11 st11: if (p)++; (p) == (pe) { goto _test_eof11 } st_case_11: +//line parser.go:460 + if 48 <= data[(p)] && data[(p)] <= 57 { + goto st12 + } + goto st2 + st12: + if (p)++; (p) == (pe) { + goto _test_eof12 + } + st_case_12: switch data[(p)] { case 32: - goto tr21 + goto tr24 case 84: - goto tr21 + goto tr24 case 116: - goto tr21 + goto tr24 } if 9 <= data[(p)] && data[(p)] <= 13 { - goto tr21 + goto tr24 } - goto st1 - tr21: -//line parser.rl:44 + goto st2 + tr24: +//line parser.rl:46 event.SetDay(data[tok:p]) - goto st12 - st12: + goto st13 + st13: if (p)++; (p) == (pe) { - goto _test_eof12 + goto _test_eof13 } - st_case_12: -//line parser.go:437 + st_case_13: +//line parser.go:493 if data[(p)] == 50 { - goto tr23 + goto tr26 } if 48 <= data[(p)] && data[(p)] <= 49 { - goto tr22 + goto tr25 } - goto st1 - tr22: -//line parser.rl:20 + goto st2 + tr25: +//line parser.rl:22 tok = p - goto st13 - st13: - if (p)++; (p) == (pe) { - goto _test_eof13 - } - st_case_13: -//line parser.go:456 - if 48 <= data[(p)] && data[(p)] <= 57 { - goto st14 - } - goto st1 + goto st14 st14: if (p)++; (p) == (pe) { goto _test_eof14 } st_case_14: - if data[(p)] == 58 { - goto tr25 +//line parser.go:512 + if 48 <= data[(p)] && data[(p)] <= 57 { + goto st15 } - goto st1 - tr25: -//line parser.rl:48 - - event.SetHour(data[tok:p]) - - goto st15 + goto st2 st15: if (p)++; (p) == (pe) { goto _test_eof15 } st_case_15: -//line parser.go:481 - if 48 <= data[(p)] && data[(p)] <= 53 { - goto tr26 + if data[(p)] == 58 { + goto tr28 } - goto st1 - tr26: -//line parser.rl:20 + goto st2 + tr28: +//line parser.rl:50 - tok = p + event.SetHour(data[tok:p]) goto st16 st16: @@ -506,40 +546,40 @@ func Parse(data []byte, event *event) { goto _test_eof16 } st_case_16: -//line parser.go:497 - if 48 <= data[(p)] && data[(p)] <= 57 { - goto st17 +//line parser.go:537 + if 48 <= data[(p)] && data[(p)] <= 53 { + goto tr29 } - goto st1 + goto st2 + tr29: +//line parser.rl:22 + + tok = p + + goto st17 st17: if (p)++; (p) == (pe) { goto _test_eof17 } st_case_17: - if data[(p)] == 58 { - goto tr28 +//line parser.go:553 + if 48 <= data[(p)] && data[(p)] <= 57 { + goto st18 } - goto st1 - tr28: -//line parser.rl:52 - - event.SetMinute(data[tok:p]) - - goto st18 + goto st2 st18: if (p)++; (p) == (pe) { goto _test_eof18 } st_case_18: -//line parser.go:522 - if 48 <= data[(p)] && data[(p)] <= 53 { - goto tr29 + if data[(p)] == 58 { + goto tr31 } - goto st1 - tr29: -//line parser.rl:20 + goto st2 + tr31: +//line parser.rl:54 - tok = p + event.SetMinute(data[tok:p]) goto st19 st19: @@ -547,99 +587,132 @@ func Parse(data []byte, event *event) { goto _test_eof19 } st_case_19: -//line parser.go:538 - if 48 <= data[(p)] && data[(p)] <= 57 { - goto st20 +//line parser.go:578 + if 48 <= data[(p)] && data[(p)] <= 53 { + goto tr32 } - goto st1 + goto st2 + tr32: +//line parser.rl:22 + + tok = p + + goto st20 st20: if (p)++; (p) == (pe) { goto _test_eof20 } st_case_20: +//line parser.go:594 + if 48 <= data[(p)] && data[(p)] <= 57 { + goto st21 + } + goto st2 + st21: + if (p)++; (p) == (pe) { + goto _test_eof21 + } + st_case_21: switch data[(p)] { case 32: - goto tr31 + goto tr34 case 43: - goto tr32 + goto tr35 case 45: - goto tr32 + goto tr35 case 46: - goto tr33 + goto tr36 + case 58: + goto tr37 case 90: - goto tr34 + goto tr38 case 122: - goto tr34 + goto tr38 } if 9 <= data[(p)] && data[(p)] <= 13 { - goto tr31 + goto tr34 } - goto st1 - tr31: -//line parser.rl:56 + goto st2 + tr34: +//line parser.rl:58 event.SetSecond(data[tok:p]) - goto st21 - tr49: -//line parser.rl:76 + goto st22 + tr61: +//line parser.rl:93 event.SetTimeZone(data[tok:p]) - goto st21 - tr54: -//line parser.rl:60 + goto st22 + tr68: +//line parser.rl:62 event.SetNanosecond(data[tok:p]) - goto st21 - st21: - if (p)++; (p) == (pe) { - goto _test_eof21 - } - st_case_21: -//line parser.go:589 - switch { - case data[(p)] > 95: - if 97 <= data[(p)] && data[(p)] <= 122 { - goto tr35 - } - case data[(p)] >= 46: - goto tr35 - } - goto tr0 - tr35: -//line parser.rl:20 - - tok = p - goto st22 st22: if (p)++; (p) == (pe) { goto _test_eof22 } st_case_22: -//line parser.go:610 - if data[(p)] == 32 { - goto tr36 +//line parser.go:647 + switch data[(p)] { + case 58: + goto tr41 + case 95: + goto tr39 } switch { - case data[(p)] < 46: - if 9 <= data[(p)] && data[(p)] <= 13 { - goto tr36 + case data[(p)] < 48: + if 45 <= data[(p)] && data[(p)] <= 46 { + goto tr39 } - case data[(p)] > 95: - if 97 <= data[(p)] && data[(p)] <= 122 { - goto st22 + case data[(p)] > 57: + switch { + case data[(p)] > 90: + if 97 <= data[(p)] && data[(p)] <= 122 { + goto tr40 + } + case data[(p)] >= 65: + goto tr40 } default: - goto st22 + goto tr40 } - goto st1 - tr36: -//line parser.rl:64 + goto tr0 + tr39: +//line parser.rl:22 - event.SetHostname(data[tok:p]) + tok = p + +//line parser.rl:70 + + if p-1 > 0 { + for _, b := range noDuplicates { + if data[p] == b && data[p-1] == b { + p = tok - 1 + { + goto st1 + } + } + } + } + + goto st23 + tr42: +//line parser.rl:70 + + if p-1 > 0 { + for _, b := range noDuplicates { + if data[p] == b && data[p-1] == b { + p = tok - 1 + { + goto st1 + } + } + } + } goto st23 st23: @@ -647,49 +720,106 @@ func Parse(data []byte, event *event) { goto _test_eof23 } st_case_23: -//line parser.go:638 +//line parser.go:707 switch data[(p)] { - case 32: - goto tr0 - case 91: - goto tr0 - case 93: - goto tr0 + case 58: + goto tr44 + case 95: + goto tr42 } - if 9 <= data[(p)] && data[(p)] <= 13 { - goto tr0 + switch { + case data[(p)] < 48: + if 45 <= data[(p)] && data[(p)] <= 46 { + goto tr42 + } + case data[(p)] > 57: + switch { + case data[(p)] > 90: + if 97 <= data[(p)] && data[(p)] <= 122 { + goto tr43 + } + case data[(p)] >= 65: + goto tr43 + } + default: + goto tr43 } - goto tr38 - tr38: -//line parser.rl:20 + goto st2 + tr40: +//line parser.rl:22 tok = p +//line parser.rl:70 + + if p-1 > 0 { + for _, b := range noDuplicates { + if data[p] == b && data[p-1] == b { + p = tok - 1 + { + goto st1 + } + } + } + } + + goto st24 + tr43: +//line parser.rl:70 + + if p-1 > 0 { + for _, b := range noDuplicates { + if data[p] == b && data[p-1] == b { + p = tok - 1 + { + goto st1 + } + } + } + } + goto st24 st24: if (p)++; (p) == (pe) { goto _test_eof24 } st_case_24: -//line parser.go:662 +//line parser.go:767 switch data[(p)] { case 32: - goto st1 + goto tr45 case 58: - goto tr40 - case 91: - goto tr41 - case 93: - goto st1 + goto tr46 + case 95: + goto tr42 } - if 9 <= data[(p)] && data[(p)] <= 13 { - goto st1 + switch { + case data[(p)] < 48: + switch { + case data[(p)] > 13: + if 45 <= data[(p)] && data[(p)] <= 46 { + goto tr42 + } + case data[(p)] >= 9: + goto tr45 + } + case data[(p)] > 57: + switch { + case data[(p)] > 90: + if 97 <= data[(p)] && data[(p)] <= 122 { + goto tr43 + } + case data[(p)] >= 65: + goto tr43 + } + default: + goto tr43 } - goto st24 - tr40: -//line parser.rl:68 + goto st2 + tr45: +//line parser.rl:81 - event.SetProgram(data[tok:p]) + event.SetHostname(data[tok:p]) goto st25 st25: @@ -697,29 +827,47 @@ func Parse(data []byte, event *event) { goto _test_eof25 } st_case_25: -//line parser.go:688 +//line parser.go:810 switch data[(p)] { case 32: - goto st26 - case 58: - goto tr40 + goto tr0 case 91: - goto tr41 + goto tr0 case 93: - goto st1 + goto tr0 } if 9 <= data[(p)] && data[(p)] <= 13 { - goto st26 + goto tr0 } - goto st24 + goto tr47 + tr47: +//line parser.rl:22 + + tok = p + + goto st26 st26: if (p)++; (p) == (pe) { goto _test_eof26 } st_case_26: - goto tr0 - tr41: -//line parser.rl:68 +//line parser.go:834 + switch data[(p)] { + case 32: + goto st2 + case 58: + goto tr49 + case 91: + goto tr50 + case 93: + goto st2 + } + if 9 <= data[(p)] && data[(p)] <= 13 { + goto st2 + } + goto st26 + tr49: +//line parser.rl:85 event.SetProgram(data[tok:p]) @@ -729,34 +877,31 @@ func Parse(data []byte, event *event) { goto _test_eof27 } st_case_27: -//line parser.go:720 - if 48 <= data[(p)] && data[(p)] <= 57 { - goto tr43 +//line parser.go:860 + switch data[(p)] { + case 32: + goto st28 + case 58: + goto tr49 + case 91: + goto tr50 + case 93: + goto st2 } - goto st1 - tr43: -//line parser.rl:20 - - tok = p - - goto st28 + if 9 <= data[(p)] && data[(p)] <= 13 { + goto st28 + } + goto st26 st28: if (p)++; (p) == (pe) { goto _test_eof28 } st_case_28: -//line parser.go:736 - if data[(p)] == 93 { - goto tr45 - } - if 48 <= data[(p)] && data[(p)] <= 57 { - goto st28 - } - goto st1 - tr45: -//line parser.rl:72 + goto tr0 + tr50: +//line parser.rl:85 - event.SetPid(data[tok:p]) + event.SetProgram(data[tok:p]) goto st29 st29: @@ -764,41 +909,34 @@ func Parse(data []byte, event *event) { goto _test_eof29 } st_case_29: -//line parser.go:755 - if data[(p)] == 58 { - goto st30 +//line parser.go:892 + if 48 <= data[(p)] && data[(p)] <= 57 { + goto tr52 } - goto st1 + goto st2 + tr52: +//line parser.rl:22 + + tok = p + + goto st30 st30: if (p)++; (p) == (pe) { goto _test_eof30 } st_case_30: - if data[(p)] == 32 { - goto st26 +//line parser.go:908 + if data[(p)] == 93 { + goto tr54 } - if 9 <= data[(p)] && data[(p)] <= 13 { - goto st26 + if 48 <= data[(p)] && data[(p)] <= 57 { + goto st30 } - goto st1 - tr32: -//line parser.rl:56 - - event.SetSecond(data[tok:p]) - -//line parser.rl:20 - - tok = p - - goto st31 - tr55: -//line parser.rl:60 - - event.SetNanosecond(data[tok:p]) - -//line parser.rl:20 + goto st2 + tr54: +//line parser.rl:89 - tok = p + event.SetPid(data[tok:p]) goto st31 st31: @@ -806,177 +944,313 @@ func Parse(data []byte, event *event) { goto _test_eof31 } st_case_31: -//line parser.go:797 - if 48 <= data[(p)] && data[(p)] <= 57 { +//line parser.go:927 + if data[(p)] == 58 { goto st32 } - goto st1 + goto st2 st32: if (p)++; (p) == (pe) { goto _test_eof32 } st_case_32: - if 48 <= data[(p)] && data[(p)] <= 57 { - goto st33 + if data[(p)] == 32 { + goto st28 } - goto st1 + if 9 <= data[(p)] && data[(p)] <= 13 { + goto st28 + } + goto st2 + tr46: +//line parser.rl:70 + + if p-1 > 0 { + for _, b := range noDuplicates { + if data[p] == b && data[p-1] == b { + p = tok - 1 + { + goto st1 + } + } + } + } + +//line parser.rl:81 + + event.SetHostname(data[tok:p]) + + goto st33 st33: if (p)++; (p) == (pe) { goto _test_eof33 } st_case_33: +//line parser.go:966 switch data[(p)] { case 32: - goto tr49 + goto st25 case 58: - goto st36 + goto tr57 + case 95: + goto tr42 } switch { - case data[(p)] > 13: - if 48 <= data[(p)] && data[(p)] <= 57 { - goto st34 + case data[(p)] < 48: + switch { + case data[(p)] > 13: + if 45 <= data[(p)] && data[(p)] <= 46 { + goto tr42 + } + case data[(p)] >= 9: + goto st25 + } + case data[(p)] > 57: + switch { + case data[(p)] > 90: + if 97 <= data[(p)] && data[(p)] <= 122 { + goto tr43 + } + case data[(p)] >= 65: + goto tr43 + } + default: + goto tr43 + } + goto st2 + tr57: +//line parser.rl:70 + + if p-1 > 0 { + for _, b := range noDuplicates { + if data[p] == b && data[p-1] == b { + p = tok - 1 + { + goto st1 + } + } + } + } + + goto st34 + tr58: +//line parser.rl:70 + + if p-1 > 0 { + for _, b := range noDuplicates { + if data[p] == b && data[p-1] == b { + p = tok - 1 + { + goto st1 + } + } } - case data[(p)] >= 9: - goto tr49 } - goto st1 + +//line parser.rl:81 + + event.SetHostname(data[tok:p]) + + goto st34 st34: if (p)++; (p) == (pe) { goto _test_eof34 } st_case_34: - if 48 <= data[(p)] && data[(p)] <= 57 { - goto st35 +//line parser.go:1033 + switch data[(p)] { + case 32: + goto tr45 + case 58: + goto tr58 + case 95: + goto tr42 + } + switch { + case data[(p)] < 48: + switch { + case data[(p)] > 13: + if 45 <= data[(p)] && data[(p)] <= 46 { + goto tr42 + } + case data[(p)] >= 9: + goto tr45 + } + case data[(p)] > 57: + switch { + case data[(p)] > 90: + if 97 <= data[(p)] && data[(p)] <= 122 { + goto tr43 + } + case data[(p)] >= 65: + goto tr43 + } + default: + goto tr43 } - goto st1 + goto st2 + tr41: +//line parser.rl:22 + + tok = p + +//line parser.rl:70 + + if p-1 > 0 { + for _, b := range noDuplicates { + if data[p] == b && data[p-1] == b { + p = tok - 1 + { + goto st1 + } + } + } + } + + goto st35 + tr44: +//line parser.rl:70 + + if p-1 > 0 { + for _, b := range noDuplicates { + if data[p] == b && data[p-1] == b { + p = tok - 1 + { + goto st1 + } + } + } + } + + goto st35 st35: if (p)++; (p) == (pe) { goto _test_eof35 } st_case_35: - if data[(p)] == 32 { - goto tr49 +//line parser.go:1100 + switch data[(p)] { + case 58: + goto tr57 + case 95: + goto tr42 } - if 9 <= data[(p)] && data[(p)] <= 13 { - goto tr49 + switch { + case data[(p)] < 48: + if 45 <= data[(p)] && data[(p)] <= 46 { + goto tr42 + } + case data[(p)] > 57: + switch { + case data[(p)] > 90: + if 97 <= data[(p)] && data[(p)] <= 122 { + goto tr43 + } + case data[(p)] >= 65: + goto tr43 + } + default: + goto tr43 } - goto st1 + goto st2 + tr35: +//line parser.rl:58 + + event.SetSecond(data[tok:p]) + +//line parser.rl:22 + + tok = p + + goto st36 + tr69: +//line parser.rl:62 + + event.SetNanosecond(data[tok:p]) + +//line parser.rl:22 + + tok = p + + goto st36 st36: if (p)++; (p) == (pe) { goto _test_eof36 } st_case_36: +//line parser.go:1150 if 48 <= data[(p)] && data[(p)] <= 57 { - goto st34 + goto st37 } - goto st1 - tr33: -//line parser.rl:56 - - event.SetSecond(data[tok:p]) - - goto st37 + goto st2 st37: if (p)++; (p) == (pe) { goto _test_eof37 } st_case_37: -//line parser.go:872 if 48 <= data[(p)] && data[(p)] <= 57 { - goto tr53 + goto st38 } - goto st1 - tr53: -//line parser.rl:20 - - tok = p - - goto st38 + goto st2 st38: if (p)++; (p) == (pe) { goto _test_eof38 } st_case_38: -//line parser.go:888 switch data[(p)] { case 32: - goto tr54 - case 43: - goto tr55 - case 45: - goto tr55 - case 90: - goto tr57 - case 122: - goto tr57 + goto tr61 + case 58: + goto tr63 } switch { case data[(p)] > 13: if 48 <= data[(p)] && data[(p)] <= 57 { - goto st38 + goto st39 } case data[(p)] >= 9: - goto tr54 + goto tr61 } - goto st1 - tr34: -//line parser.rl:56 - - event.SetSecond(data[tok:p]) - -//line parser.rl:20 - - tok = p - - goto st39 - tr57: -//line parser.rl:60 - - event.SetNanosecond(data[tok:p]) - -//line parser.rl:20 - - tok = p - - goto st39 + goto st2 st39: if (p)++; (p) == (pe) { goto _test_eof39 } st_case_39: -//line parser.go:935 - switch data[(p)] { - case 32: - goto tr49 - case 43: - goto st31 - case 45: - goto st31 - } - if 9 <= data[(p)] && data[(p)] <= 13 { - goto tr49 + if 48 <= data[(p)] && data[(p)] <= 57 { + goto st40 } - goto st1 - tr23: -//line parser.rl:20 - - tok = p - - goto st40 + goto st2 st40: if (p)++; (p) == (pe) { goto _test_eof40 } st_case_40: -//line parser.go:959 - if 48 <= data[(p)] && data[(p)] <= 51 { - goto st14 + switch data[(p)] { + case 32: + goto tr61 + case 58: + goto tr65 } - goto st1 - tr2: -//line parser.rl:20 + if 9 <= data[(p)] && data[(p)] <= 13 { + goto tr61 + } + goto st2 + tr37: +//line parser.rl:58 - tok = p + event.SetSecond(data[tok:p]) + + goto st41 + tr65: +//line parser.rl:93 + + event.SetTimeZone(data[tok:p]) + + goto st41 + tr71: +//line parser.rl:62 + + event.SetNanosecond(data[tok:p]) goto st41 st41: @@ -984,15 +1258,18 @@ func Parse(data []byte, event *event) { goto _test_eof41 } st_case_41: -//line parser.go:975 - if 48 <= data[(p)] && data[(p)] <= 57 { - goto tr59 +//line parser.go:1231 + if data[(p)] == 32 { + goto st22 + } + if 9 <= data[(p)] && data[(p)] <= 13 { + goto st22 } - goto st1 - tr59: -//line parser.rl:20 + goto st2 + tr63: +//line parser.rl:93 - tok = p + event.SetTimeZone(data[tok:p]) goto st42 st42: @@ -1000,906 +1277,1259 @@ func Parse(data []byte, event *event) { goto _test_eof42 } st_case_42: -//line parser.go:991 - if data[(p)] == 62 { - goto tr61 +//line parser.go:1250 + if data[(p)] == 32 { + goto st22 } - if 48 <= data[(p)] && data[(p)] <= 57 { - goto st43 + switch { + case data[(p)] > 13: + if 48 <= data[(p)] && data[(p)] <= 57 { + goto st39 + } + case data[(p)] >= 9: + goto st22 } - goto st1 + goto st2 + tr36: +//line parser.rl:58 + + event.SetSecond(data[tok:p]) + + goto st43 st43: if (p)++; (p) == (pe) { goto _test_eof43 } st_case_43: - if data[(p)] == 62 { - goto tr61 - } +//line parser.go:1274 if 48 <= data[(p)] && data[(p)] <= 57 { - goto st44 + goto tr67 } - goto st1 + goto st2 + tr67: +//line parser.rl:22 + + tok = p + + goto st44 st44: if (p)++; (p) == (pe) { goto _test_eof44 } st_case_44: - if data[(p)] == 62 { - goto tr61 +//line parser.go:1290 + switch data[(p)] { + case 32: + goto tr68 + case 43: + goto tr69 + case 45: + goto tr69 + case 58: + goto tr71 + case 90: + goto tr72 + case 122: + goto tr72 } - if 48 <= data[(p)] && data[(p)] <= 57 { - goto st45 + switch { + case data[(p)] > 13: + if 48 <= data[(p)] && data[(p)] <= 57 { + goto st44 + } + case data[(p)] >= 9: + goto tr68 } - goto st1 + goto st2 + tr38: +//line parser.rl:58 + + event.SetSecond(data[tok:p]) + +//line parser.rl:22 + + tok = p + + goto st45 + tr72: +//line parser.rl:62 + + event.SetNanosecond(data[tok:p]) + +//line parser.rl:22 + + tok = p + + goto st45 st45: if (p)++; (p) == (pe) { goto _test_eof45 } st_case_45: - if data[(p)] == 62 { +//line parser.go:1339 + switch data[(p)] { + case 32: goto tr61 + case 43: + goto st36 + case 45: + goto st36 + case 58: + goto tr65 } - if 48 <= data[(p)] && data[(p)] <= 57 { - goto st46 + if 9 <= data[(p)] && data[(p)] <= 13 { + goto tr61 } - goto st1 + goto st2 + tr26: +//line parser.rl:22 + + tok = p + + goto st46 st46: if (p)++; (p) == (pe) { goto _test_eof46 } st_case_46: - if data[(p)] == 62 { - goto tr61 +//line parser.go:1365 + if 48 <= data[(p)] && data[(p)] <= 51 { + goto st15 + } + goto st2 + st47: + if (p)++; (p) == (pe) { + goto _test_eof47 + } + st_case_47: + if data[(p)] == 58 { + goto st48 + } + if 48 <= data[(p)] && data[(p)] <= 57 { + goto st47 + } + goto st2 + st48: + if (p)++; (p) == (pe) { + goto _test_eof48 + } + st_case_48: + if data[(p)] == 32 { + goto tr74 } - goto st1 - tr61: -//line parser.rl:24 + if 9 <= data[(p)] && data[(p)] <= 13 { + goto tr74 + } + goto st2 + tr74: +//line parser.rl:22 - event.SetPriority(data[tok:p]) + tok = p - goto st47 - st47: + goto st49 + st49: if (p)++; (p) == (pe) { - goto _test_eof47 + goto _test_eof49 } - st_case_47: -//line parser.go:1055 + st_case_49: +//line parser.go:1405 switch data[(p)] { case 65: - goto tr3 + goto tr77 case 68: - goto tr4 + goto tr78 case 70: - goto tr5 + goto tr79 case 74: - goto tr6 + goto tr80 case 77: - goto tr7 + goto tr81 case 78: - goto tr8 + goto tr82 case 79: - goto tr9 + goto tr83 case 83: - goto tr10 + goto tr84 } if 48 <= data[(p)] && data[(p)] <= 57 { - goto tr1 + goto tr76 } - goto tr0 + goto tr75 + tr76: +//line parser.rl:97 + + event.SetSequence(data[tok:p]) + +//line parser.rl:22 + + tok = p + + goto st50 + st50: + if (p)++; (p) == (pe) { + goto _test_eof50 + } + st_case_50: +//line parser.go:1443 + if 48 <= data[(p)] && data[(p)] <= 57 { + goto st51 + } + goto st2 + st51: + if (p)++; (p) == (pe) { + goto _test_eof51 + } + st_case_51: + if 48 <= data[(p)] && data[(p)] <= 57 { + goto st52 + } + goto st2 + st52: + if (p)++; (p) == (pe) { + goto _test_eof52 + } + st_case_52: + if 48 <= data[(p)] && data[(p)] <= 57 { + goto st53 + } + goto st2 + st53: + if (p)++; (p) == (pe) { + goto _test_eof53 + } + st_case_53: + if data[(p)] == 45 { + goto tr17 + } + goto st2 tr3: -//line parser.rl:20 +//line parser.rl:22 tok = p - goto st48 - st48: + goto st54 + tr77: +//line parser.rl:97 + + event.SetSequence(data[tok:p]) + +//line parser.rl:22 + + tok = p + + goto st54 + st54: if (p)++; (p) == (pe) { - goto _test_eof48 + goto _test_eof54 } - st_case_48: -//line parser.go:1089 + st_case_54: +//line parser.go:1496 switch data[(p)] { case 112: - goto st49 + goto st55 case 117: - goto st70 + goto st76 } - goto st1 - st49: + goto st2 + st55: if (p)++; (p) == (pe) { - goto _test_eof49 + goto _test_eof55 } - st_case_49: + st_case_55: if data[(p)] == 114 { - goto st50 + goto st56 } - goto st1 - st50: + goto st2 + st56: if (p)++; (p) == (pe) { - goto _test_eof50 + goto _test_eof56 } - st_case_50: + st_case_56: switch data[(p)] { case 32: - goto tr68 + goto tr91 case 105: - goto st68 + goto st74 } if 9 <= data[(p)] && data[(p)] <= 13 { - goto tr68 + goto tr91 } - goto st1 - tr68: -//line parser.rl:32 + goto st2 + tr91: +//line parser.rl:34 event.SetMonth(data[tok:p]) - goto st51 - st51: + goto st57 + st57: if (p)++; (p) == (pe) { - goto _test_eof51 + goto _test_eof57 } - st_case_51: -//line parser.go:1132 + st_case_57: +//line parser.go:1539 switch data[(p)] { case 32: - goto st52 + goto st58 case 51: - goto tr72 + goto tr95 } switch { case data[(p)] < 49: if 9 <= data[(p)] && data[(p)] <= 13 { - goto st52 + goto st58 } case data[(p)] > 50: if 52 <= data[(p)] && data[(p)] <= 57 { - goto tr73 + goto tr96 } default: - goto tr71 + goto tr94 } - goto st1 - st52: + goto st2 + st58: if (p)++; (p) == (pe) { - goto _test_eof52 + goto _test_eof58 } - st_case_52: + st_case_58: if 49 <= data[(p)] && data[(p)] <= 57 { - goto tr73 + goto tr96 } - goto st1 - tr73: -//line parser.rl:20 + goto st2 + tr96: +//line parser.rl:22 tok = p - goto st53 - st53: + goto st59 + st59: if (p)++; (p) == (pe) { - goto _test_eof53 + goto _test_eof59 } - st_case_53: -//line parser.go:1172 + st_case_59: +//line parser.go:1579 if data[(p)] == 32 { - goto tr74 + goto tr97 } if 9 <= data[(p)] && data[(p)] <= 13 { - goto tr74 + goto tr97 } - goto st1 - tr74: -//line parser.rl:44 + goto st2 + tr97: +//line parser.rl:46 event.SetDay(data[tok:p]) - goto st54 - st54: + goto st60 + st60: if (p)++; (p) == (pe) { - goto _test_eof54 + goto _test_eof60 } - st_case_54: -//line parser.go:1191 + st_case_60: +//line parser.go:1598 if data[(p)] == 50 { - goto tr76 + goto tr99 } if 48 <= data[(p)] && data[(p)] <= 49 { - goto tr75 + goto tr98 } - goto st1 - tr75: -//line parser.rl:20 + goto st2 + tr98: +//line parser.rl:22 tok = p - goto st55 - st55: + goto st61 + st61: if (p)++; (p) == (pe) { - goto _test_eof55 + goto _test_eof61 } - st_case_55: -//line parser.go:1210 + st_case_61: +//line parser.go:1617 if 48 <= data[(p)] && data[(p)] <= 57 { - goto st56 + goto st62 } - goto st1 - st56: + goto st2 + st62: if (p)++; (p) == (pe) { - goto _test_eof56 + goto _test_eof62 } - st_case_56: + st_case_62: if data[(p)] == 58 { - goto tr78 + goto tr101 } - goto st1 - tr78: -//line parser.rl:48 + goto st2 + tr101: +//line parser.rl:50 event.SetHour(data[tok:p]) - goto st57 - st57: + goto st63 + st63: if (p)++; (p) == (pe) { - goto _test_eof57 + goto _test_eof63 } - st_case_57: -//line parser.go:1235 + st_case_63: +//line parser.go:1642 if 48 <= data[(p)] && data[(p)] <= 53 { - goto tr79 + goto tr102 } - goto st1 - tr79: -//line parser.rl:20 + goto st2 + tr102: +//line parser.rl:22 tok = p - goto st58 - st58: + goto st64 + st64: if (p)++; (p) == (pe) { - goto _test_eof58 + goto _test_eof64 } - st_case_58: -//line parser.go:1251 + st_case_64: +//line parser.go:1658 if 48 <= data[(p)] && data[(p)] <= 57 { - goto st59 + goto st65 } - goto st1 - st59: + goto st2 + st65: if (p)++; (p) == (pe) { - goto _test_eof59 + goto _test_eof65 } - st_case_59: + st_case_65: if data[(p)] == 58 { - goto tr81 + goto tr104 } - goto st1 - tr81: -//line parser.rl:52 + goto st2 + tr104: +//line parser.rl:54 event.SetMinute(data[tok:p]) - goto st60 - st60: + goto st66 + st66: if (p)++; (p) == (pe) { - goto _test_eof60 + goto _test_eof66 } - st_case_60: -//line parser.go:1276 + st_case_66: +//line parser.go:1683 if 48 <= data[(p)] && data[(p)] <= 53 { - goto tr82 + goto tr105 } - goto st1 - tr82: -//line parser.rl:20 + goto st2 + tr105: +//line parser.rl:22 tok = p - goto st61 - st61: + goto st67 + st67: if (p)++; (p) == (pe) { - goto _test_eof61 + goto _test_eof67 } - st_case_61: -//line parser.go:1292 + st_case_67: +//line parser.go:1699 if 48 <= data[(p)] && data[(p)] <= 57 { - goto st62 + goto st68 } - goto st1 - st62: + goto st2 + st68: if (p)++; (p) == (pe) { - goto _test_eof62 + goto _test_eof68 } - st_case_62: + st_case_68: switch data[(p)] { case 32: - goto tr31 + goto tr34 case 46: - goto tr84 + goto tr107 + case 58: + goto tr37 } if 9 <= data[(p)] && data[(p)] <= 13 { - goto tr31 + goto tr34 } - goto st1 - tr84: -//line parser.rl:56 + goto st2 + tr107: +//line parser.rl:58 event.SetSecond(data[tok:p]) - goto st63 - st63: + goto st69 + st69: if (p)++; (p) == (pe) { - goto _test_eof63 + goto _test_eof69 } - st_case_63: -//line parser.go:1323 + st_case_69: +//line parser.go:1732 if 48 <= data[(p)] && data[(p)] <= 57 { - goto tr85 + goto tr108 } - goto st1 - tr85: -//line parser.rl:20 + goto st2 + tr108: +//line parser.rl:22 tok = p - goto st64 - st64: + goto st70 + st70: if (p)++; (p) == (pe) { - goto _test_eof64 + goto _test_eof70 } - st_case_64: -//line parser.go:1339 - if data[(p)] == 32 { - goto tr54 + st_case_70: +//line parser.go:1748 + switch data[(p)] { + case 32: + goto tr68 + case 58: + goto tr71 } switch { case data[(p)] > 13: if 48 <= data[(p)] && data[(p)] <= 57 { - goto st64 + goto st70 } case data[(p)] >= 9: - goto tr54 + goto tr68 } - goto st1 - tr76: -//line parser.rl:20 + goto st2 + tr99: +//line parser.rl:22 tok = p - goto st65 - st65: + goto st71 + st71: if (p)++; (p) == (pe) { - goto _test_eof65 + goto _test_eof71 } - st_case_65: -//line parser.go:1363 + st_case_71: +//line parser.go:1775 if 48 <= data[(p)] && data[(p)] <= 51 { - goto st56 + goto st62 } - goto st1 - tr71: -//line parser.rl:20 + goto st2 + tr94: +//line parser.rl:22 tok = p - goto st66 - st66: + goto st72 + st72: if (p)++; (p) == (pe) { - goto _test_eof66 + goto _test_eof72 } - st_case_66: -//line parser.go:1379 + st_case_72: +//line parser.go:1791 if data[(p)] == 32 { - goto tr74 + goto tr97 } switch { case data[(p)] > 13: if 48 <= data[(p)] && data[(p)] <= 57 { - goto st53 + goto st59 } case data[(p)] >= 9: - goto tr74 + goto tr97 } - goto st1 - tr72: -//line parser.rl:20 + goto st2 + tr95: +//line parser.rl:22 tok = p - goto st67 - st67: + goto st73 + st73: if (p)++; (p) == (pe) { - goto _test_eof67 + goto _test_eof73 } - st_case_67: -//line parser.go:1403 + st_case_73: +//line parser.go:1815 if data[(p)] == 32 { - goto tr74 + goto tr97 } switch { case data[(p)] > 13: if 48 <= data[(p)] && data[(p)] <= 49 { - goto st53 + goto st59 } case data[(p)] >= 9: - goto tr74 + goto tr97 } - goto st1 - st68: + goto st2 + st74: if (p)++; (p) == (pe) { - goto _test_eof68 + goto _test_eof74 } - st_case_68: + st_case_74: if data[(p)] == 108 { - goto st69 + goto st75 } - goto st1 - st69: + goto st2 + st75: if (p)++; (p) == (pe) { - goto _test_eof69 + goto _test_eof75 } - st_case_69: + st_case_75: if data[(p)] == 32 { - goto tr68 + goto tr91 } if 9 <= data[(p)] && data[(p)] <= 13 { - goto tr68 + goto tr91 } - goto st1 - st70: + goto st2 + st76: if (p)++; (p) == (pe) { - goto _test_eof70 + goto _test_eof76 } - st_case_70: + st_case_76: if data[(p)] == 103 { - goto st71 + goto st77 } - goto st1 - st71: + goto st2 + st77: if (p)++; (p) == (pe) { - goto _test_eof71 + goto _test_eof77 } - st_case_71: + st_case_77: switch data[(p)] { case 32: - goto tr68 + goto tr91 case 117: - goto st72 + goto st78 } if 9 <= data[(p)] && data[(p)] <= 13 { - goto tr68 + goto tr91 } - goto st1 - st72: + goto st2 + st78: if (p)++; (p) == (pe) { - goto _test_eof72 + goto _test_eof78 } - st_case_72: + st_case_78: if data[(p)] == 115 { - goto st73 + goto st79 } - goto st1 - st73: + goto st2 + st79: if (p)++; (p) == (pe) { - goto _test_eof73 + goto _test_eof79 } - st_case_73: + st_case_79: if data[(p)] == 116 { - goto st69 + goto st75 } - goto st1 + goto st2 tr4: -//line parser.rl:20 +//line parser.rl:22 tok = p - goto st74 - st74: + goto st80 + tr78: +//line parser.rl:97 + + event.SetSequence(data[tok:p]) + +//line parser.rl:22 + + tok = p + + goto st80 + st80: if (p)++; (p) == (pe) { - goto _test_eof74 + goto _test_eof80 } - st_case_74: -//line parser.go:1490 + st_case_80: +//line parser.go:1912 if data[(p)] == 101 { - goto st75 + goto st81 } - goto st1 - st75: + goto st2 + st81: if (p)++; (p) == (pe) { - goto _test_eof75 + goto _test_eof81 } - st_case_75: + st_case_81: if data[(p)] == 99 { - goto st76 + goto st82 } - goto st1 - st76: + goto st2 + st82: if (p)++; (p) == (pe) { - goto _test_eof76 + goto _test_eof82 } - st_case_76: + st_case_82: switch data[(p)] { case 32: - goto tr68 + goto tr91 case 101: - goto st77 + goto st83 } if 9 <= data[(p)] && data[(p)] <= 13 { - goto tr68 + goto tr91 } - goto st1 - st77: + goto st2 + st83: if (p)++; (p) == (pe) { - goto _test_eof77 + goto _test_eof83 } - st_case_77: + st_case_83: if data[(p)] == 109 { - goto st78 + goto st84 } - goto st1 - st78: + goto st2 + st84: if (p)++; (p) == (pe) { - goto _test_eof78 + goto _test_eof84 } - st_case_78: + st_case_84: if data[(p)] == 98 { - goto st79 + goto st85 } - goto st1 - st79: + goto st2 + st85: if (p)++; (p) == (pe) { - goto _test_eof79 + goto _test_eof85 } - st_case_79: + st_case_85: if data[(p)] == 101 { - goto st80 + goto st86 } - goto st1 - st80: + goto st2 + st86: if (p)++; (p) == (pe) { - goto _test_eof80 + goto _test_eof86 } - st_case_80: + st_case_86: if data[(p)] == 114 { - goto st69 + goto st75 } - goto st1 + goto st2 tr5: -//line parser.rl:20 +//line parser.rl:22 tok = p - goto st81 - st81: + goto st87 + tr79: +//line parser.rl:97 + + event.SetSequence(data[tok:p]) + +//line parser.rl:22 + + tok = p + + goto st87 + st87: if (p)++; (p) == (pe) { - goto _test_eof81 + goto _test_eof87 } - st_case_81: -//line parser.go:1566 + st_case_87: +//line parser.go:1998 if data[(p)] == 101 { - goto st82 + goto st88 } - goto st1 - st82: + goto st2 + st88: if (p)++; (p) == (pe) { - goto _test_eof82 + goto _test_eof88 } - st_case_82: + st_case_88: if data[(p)] == 98 { - goto st83 + goto st89 } - goto st1 - st83: + goto st2 + st89: if (p)++; (p) == (pe) { - goto _test_eof83 + goto _test_eof89 } - st_case_83: + st_case_89: switch data[(p)] { case 32: - goto tr68 + goto tr91 case 114: - goto st84 + goto st90 } if 9 <= data[(p)] && data[(p)] <= 13 { - goto tr68 + goto tr91 } - goto st1 - st84: + goto st2 + st90: if (p)++; (p) == (pe) { - goto _test_eof84 + goto _test_eof90 } - st_case_84: + st_case_90: if data[(p)] == 117 { - goto st85 + goto st91 } - goto st1 - st85: + goto st2 + st91: if (p)++; (p) == (pe) { - goto _test_eof85 + goto _test_eof91 } - st_case_85: + st_case_91: if data[(p)] == 97 { - goto st86 + goto st92 } - goto st1 - st86: + goto st2 + st92: if (p)++; (p) == (pe) { - goto _test_eof86 + goto _test_eof92 } - st_case_86: + st_case_92: if data[(p)] == 114 { - goto st87 + goto st93 } - goto st1 - st87: + goto st2 + st93: if (p)++; (p) == (pe) { - goto _test_eof87 + goto _test_eof93 } - st_case_87: + st_case_93: if data[(p)] == 121 { - goto st69 + goto st75 } - goto st1 + goto st2 tr6: -//line parser.rl:20 +//line parser.rl:22 tok = p - goto st88 - st88: + goto st94 + tr80: +//line parser.rl:97 + + event.SetSequence(data[tok:p]) + +//line parser.rl:22 + + tok = p + + goto st94 + st94: if (p)++; (p) == (pe) { - goto _test_eof88 + goto _test_eof94 } - st_case_88: -//line parser.go:1642 + st_case_94: +//line parser.go:2084 switch data[(p)] { case 97: - goto st89 + goto st95 case 117: - goto st91 + goto st97 } - goto st1 - st89: + goto st2 + st95: if (p)++; (p) == (pe) { - goto _test_eof89 + goto _test_eof95 } - st_case_89: + st_case_95: if data[(p)] == 110 { - goto st90 + goto st96 } - goto st1 - st90: + goto st2 + st96: if (p)++; (p) == (pe) { - goto _test_eof90 + goto _test_eof96 } - st_case_90: + st_case_96: switch data[(p)] { case 32: - goto tr68 + goto tr91 case 117: - goto st85 + goto st91 } if 9 <= data[(p)] && data[(p)] <= 13 { - goto tr68 + goto tr91 } - goto st1 - st91: + goto st2 + st97: if (p)++; (p) == (pe) { - goto _test_eof91 + goto _test_eof97 } - st_case_91: + st_case_97: switch data[(p)] { case 108: - goto st92 + goto st98 case 110: - goto st93 + goto st99 } - goto st1 - st92: + goto st2 + st98: if (p)++; (p) == (pe) { - goto _test_eof92 + goto _test_eof98 } - st_case_92: + st_case_98: switch data[(p)] { case 32: - goto tr68 + goto tr91 case 121: - goto st69 + goto st75 } if 9 <= data[(p)] && data[(p)] <= 13 { - goto tr68 + goto tr91 } - goto st1 - st93: + goto st2 + st99: if (p)++; (p) == (pe) { - goto _test_eof93 + goto _test_eof99 } - st_case_93: + st_case_99: switch data[(p)] { case 32: - goto tr68 + goto tr91 case 101: - goto st69 + goto st75 } if 9 <= data[(p)] && data[(p)] <= 13 { - goto tr68 + goto tr91 } - goto st1 + goto st2 tr7: -//line parser.rl:20 +//line parser.rl:22 tok = p - goto st94 - st94: + goto st100 + tr81: +//line parser.rl:97 + + event.SetSequence(data[tok:p]) + +//line parser.rl:22 + + tok = p + + goto st100 + st100: if (p)++; (p) == (pe) { - goto _test_eof94 + goto _test_eof100 } - st_case_94: -//line parser.go:1727 + st_case_100: +//line parser.go:2179 if data[(p)] == 97 { - goto st95 + goto st101 } - goto st1 - st95: + goto st2 + st101: if (p)++; (p) == (pe) { - goto _test_eof95 + goto _test_eof101 } - st_case_95: + st_case_101: switch data[(p)] { case 32: - goto tr68 + goto tr91 case 114: - goto st96 + goto st102 case 121: - goto st69 + goto st75 } if 9 <= data[(p)] && data[(p)] <= 13 { - goto tr68 + goto tr91 } - goto st1 - st96: + goto st2 + st102: if (p)++; (p) == (pe) { - goto _test_eof96 + goto _test_eof102 } - st_case_96: + st_case_102: switch data[(p)] { case 32: - goto tr68 + goto tr91 case 99: - goto st97 + goto st103 } if 9 <= data[(p)] && data[(p)] <= 13 { - goto tr68 + goto tr91 } - goto st1 - st97: + goto st2 + st103: if (p)++; (p) == (pe) { - goto _test_eof97 + goto _test_eof103 } - st_case_97: + st_case_103: if data[(p)] == 104 { - goto st69 + goto st75 } - goto st1 + goto st2 tr8: -//line parser.rl:20 +//line parser.rl:22 tok = p - goto st98 - st98: + goto st104 + tr82: +//line parser.rl:97 + + event.SetSequence(data[tok:p]) + +//line parser.rl:22 + + tok = p + + goto st104 + st104: if (p)++; (p) == (pe) { - goto _test_eof98 + goto _test_eof104 } - st_case_98: -//line parser.go:1784 + st_case_104: +//line parser.go:2246 if data[(p)] == 111 { - goto st99 + goto st105 } - goto st1 - st99: + goto st2 + st105: if (p)++; (p) == (pe) { - goto _test_eof99 + goto _test_eof105 } - st_case_99: + st_case_105: if data[(p)] == 118 { - goto st76 + goto st82 } - goto st1 + goto st2 tr9: -//line parser.rl:20 +//line parser.rl:22 tok = p - goto st100 - st100: + goto st106 + tr83: +//line parser.rl:97 + + event.SetSequence(data[tok:p]) + +//line parser.rl:22 + + tok = p + + goto st106 + st106: if (p)++; (p) == (pe) { - goto _test_eof100 + goto _test_eof106 } - st_case_100: -//line parser.go:1809 + st_case_106: +//line parser.go:2281 if data[(p)] == 99 { - goto st101 + goto st107 } - goto st1 - st101: + goto st2 + st107: if (p)++; (p) == (pe) { - goto _test_eof101 + goto _test_eof107 } - st_case_101: + st_case_107: if data[(p)] == 116 { - goto st102 + goto st108 } - goto st1 - st102: + goto st2 + st108: if (p)++; (p) == (pe) { - goto _test_eof102 + goto _test_eof108 } - st_case_102: + st_case_108: switch data[(p)] { case 32: - goto tr68 + goto tr91 case 111: - goto st78 + goto st84 } if 9 <= data[(p)] && data[(p)] <= 13 { - goto tr68 + goto tr91 } - goto st1 + goto st2 tr10: -//line parser.rl:20 +//line parser.rl:22 tok = p - goto st103 - st103: + goto st109 + tr84: +//line parser.rl:97 + + event.SetSequence(data[tok:p]) + +//line parser.rl:22 + + tok = p + + goto st109 + st109: if (p)++; (p) == (pe) { - goto _test_eof103 + goto _test_eof109 } - st_case_103: -//line parser.go:1849 + st_case_109: +//line parser.go:2331 if data[(p)] == 101 { - goto st104 + goto st110 } - goto st1 - st104: + goto st2 + st110: if (p)++; (p) == (pe) { - goto _test_eof104 + goto _test_eof110 } - st_case_104: + st_case_110: if data[(p)] == 112 { - goto st105 + goto st111 } - goto st1 - st105: + goto st2 + st111: if (p)++; (p) == (pe) { - goto _test_eof105 + goto _test_eof111 } - st_case_105: + st_case_111: switch data[(p)] { case 32: - goto tr68 + goto tr91 case 116: - goto st106 + goto st112 } if 9 <= data[(p)] && data[(p)] <= 13 { - goto tr68 + goto tr91 } - goto st1 - st106: + goto st2 + st112: if (p)++; (p) == (pe) { - goto _test_eof106 + goto _test_eof112 } - st_case_106: + st_case_112: if data[(p)] == 101 { - goto st77 + goto st83 + } + goto st2 + tr2: +//line parser.rl:22 + + tok = p + + goto st113 + st113: + if (p)++; (p) == (pe) { + goto _test_eof113 + } + st_case_113: +//line parser.go:2380 + if 48 <= data[(p)] && data[(p)] <= 57 { + goto tr141 + } + goto st2 + tr141: +//line parser.rl:22 + + tok = p + + goto st114 + st114: + if (p)++; (p) == (pe) { + goto _test_eof114 + } + st_case_114: +//line parser.go:2396 + if data[(p)] == 62 { + goto tr143 + } + if 48 <= data[(p)] && data[(p)] <= 57 { + goto st115 + } + goto st2 + st115: + if (p)++; (p) == (pe) { + goto _test_eof115 + } + st_case_115: + if data[(p)] == 62 { + goto tr143 + } + if 48 <= data[(p)] && data[(p)] <= 57 { + goto st116 + } + goto st2 + st116: + if (p)++; (p) == (pe) { + goto _test_eof116 + } + st_case_116: + if data[(p)] == 62 { + goto tr143 + } + if 48 <= data[(p)] && data[(p)] <= 57 { + goto st117 + } + goto st2 + st117: + if (p)++; (p) == (pe) { + goto _test_eof117 + } + st_case_117: + if data[(p)] == 62 { + goto tr143 + } + if 48 <= data[(p)] && data[(p)] <= 57 { + goto st118 + } + goto st2 + st118: + if (p)++; (p) == (pe) { + goto _test_eof118 + } + st_case_118: + if data[(p)] == 62 { + goto tr143 + } + goto st2 + tr143: +//line parser.rl:26 + + event.SetPriority(data[tok:p]) + + goto st119 + st119: + if (p)++; (p) == (pe) { + goto _test_eof119 + } + st_case_119: +//line parser.go:2460 + switch data[(p)] { + case 65: + goto tr3 + case 68: + goto tr4 + case 70: + goto tr5 + case 74: + goto tr6 + case 77: + goto tr7 + case 78: + goto tr8 + case 79: + goto tr9 + case 83: + goto tr10 + } + if 48 <= data[(p)] && data[(p)] <= 57 { + goto tr1 + } + goto tr0 + st1: + if (p)++; (p) == (pe) { + goto _test_eof1 + } + st_case_1: + goto tr11 + tr11: +//line parser.rl:22 + + tok = p + + goto st120 + st120: + if (p)++; (p) == (pe) { + goto _test_eof120 } - goto st1 + st_case_120: +//line parser.go:2500 + goto st120 st_out: - _test_eof1: - cs = 1 - goto _test_eof _test_eof2: cs = 2 goto _test_eof @@ -2215,23 +2845,68 @@ func Parse(data []byte, event *event) { _test_eof106: cs = 106 goto _test_eof + _test_eof107: + cs = 107 + goto _test_eof + _test_eof108: + cs = 108 + goto _test_eof + _test_eof109: + cs = 109 + goto _test_eof + _test_eof110: + cs = 110 + goto _test_eof + _test_eof111: + cs = 111 + goto _test_eof + _test_eof112: + cs = 112 + goto _test_eof + _test_eof113: + cs = 113 + goto _test_eof + _test_eof114: + cs = 114 + goto _test_eof + _test_eof115: + cs = 115 + goto _test_eof + _test_eof116: + cs = 116 + goto _test_eof + _test_eof117: + cs = 117 + goto _test_eof + _test_eof118: + cs = 118 + goto _test_eof + _test_eof119: + cs = 119 + goto _test_eof + _test_eof1: + cs = 1 + goto _test_eof + _test_eof120: + cs = 120 + goto _test_eof _test_eof: { } if (p) == eof { switch cs { - case 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106: -//line parser.rl:28 + case 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120: +//line parser.rl:30 event.SetMessage(data[tok:p]) -//line parser.go:2003 +//line parser.go:2632 } } } -//line parser.rl:84 +//line parser.rl:105 } diff --git a/filebeat/input/syslog/parser.rl b/filebeat/input/syslog/parser.rl index cbfd32362ae..e5b2c1b143f 100644 --- a/filebeat/input/syslog/parser.rl +++ b/filebeat/input/syslog/parser.rl @@ -8,9 +8,11 @@ package syslog variable pe pe; }%% -// syslog -//<34>Oct 11 22:14:15 wopr su: 'su root' failed for foobar -//<13>Feb 5 17:32:18 10.0.0.99 Use the quad dmg. +var ( + noDuplicates = []byte{'-', '.'} +) + +// Parse parses Syslog events. func Parse(data []byte, event *event) { var p, cs int pe := len(data) @@ -61,6 +63,21 @@ func Parse(data []byte, event *event) { event.SetNanosecond(data[tok:p]) } + # NOTES: This allow to bail out of obvious non valid + # hostname, this might not be ideal in all situation, but + # when this happen we just go to the catch all case and at least + # extract the message + action lookahead_duplicates{ + if p-1 > 0 { + for _, b := range noDuplicates { + if data[p] == b && data[p-1] == b { + p = tok -1 + fgoto catch_all; + } + } + } + } + action hostname { event.SetHostname(data[tok:p]) } @@ -77,6 +94,10 @@ func Parse(data []byte, event *event) { event.SetTimeZone(data[tok:p]) } + action sequence { + event.SetSequence(data[tok:p]) + } + include syslog_rfc3164 "syslog_rfc3164.rl"; write init; diff --git a/filebeat/input/syslog/parser_test.go b/filebeat/input/syslog/parser_test.go index 68abc2e3f12..161cc3779df 100644 --- a/filebeat/input/syslog/parser_test.go +++ b/filebeat/input/syslog/parser_test.go @@ -31,6 +31,25 @@ func TestParseSyslog(t *testing.T) { log []byte syslog event }{ + { + title: "Cisco's syslog", + log: []byte("<190>589265: Feb 8 18:55:31.306: %SEC-11-IPACCESSLOGP: list 177 denied udp 10.0.0.1(53640) -> 10.100.0.1(15600), 1 packet"), + syslog: event{ + priority: 190, + message: "%SEC-11-IPACCESSLOGP: list 177 denied udp 10.0.0.1(53640) -> 10.100.0.1(15600), 1 packet", + hostname: "", + program: "", + pid: -1, + month: 2, + day: 8, + year: 2018, + hour: 18, + minute: 55, + second: 31, + nanosecond: 306000000, + sequence: 589265, + }, + }, { title: "no timezone in date", log: []byte("<190>2018-06-19 02:13:38 super mon message"), @@ -507,6 +526,96 @@ func TestParseSyslog(t *testing.T) { second: 18, }, }, + { + title: "ipv6: 1::", + log: []byte("<13>Feb 25 17:32:18 1:: Use the Force!"), + syslog: event{ + message: "Use the Force!", + hostname: "1::", + priority: 13, + pid: -1, + month: 2, + day: 25, + hour: 17, + minute: 32, + second: 18, + }, + }, + { + title: "ipv6: 1::2", + log: []byte("<13>Feb 25 17:32:18 1::2 Use the Force!"), + syslog: event{ + message: "Use the Force!", + hostname: "1::2", + priority: 13, + pid: -1, + month: 2, + day: 25, + hour: 17, + minute: 32, + second: 18, + }, + }, + { + title: "ipv6: 1::2:5", + log: []byte("<13>Feb 25 17:32:18 1::2:5 Use the Force!"), + syslog: event{ + message: "Use the Force!", + hostname: "1::2:5", + priority: 13, + pid: -1, + month: 2, + day: 25, + hour: 17, + minute: 32, + second: 18, + }, + }, + { + title: "ipv4 mapped on ipv6", + log: []byte("<13>Feb 25 17:32:18 ::ffff:0:255.255.255.255 Use the Force!"), + syslog: event{ + message: "Use the Force!", + hostname: "::ffff:0:255.255.255.255", + priority: 13, + pid: -1, + month: 2, + day: 25, + hour: 17, + minute: 32, + second: 18, + }, + }, + { + title: "ipv4 embedded on ipv6", + log: []byte("<13>Feb 25 17:32:18 60::ffff::10.0.1.120 Use the Force!"), + syslog: event{ + message: "Use the Force!", + hostname: "60::ffff::10.0.1.120", + priority: 13, + pid: -1, + month: 2, + day: 25, + hour: 17, + minute: 32, + second: 18, + }, + }, + { + title: "ipv6: 1:2:3:4:5:6:7:8", + log: []byte("<13>Feb 25 17:32:18 1:2:3:4:5:6:7:8 Use the Force!"), + syslog: event{ + message: "Use the Force!", + hostname: "1:2:3:4:5:6:7:8", + priority: 13, + pid: -1, + month: 2, + day: 25, + hour: 17, + minute: 32, + second: 18, + }, + }, { title: "Number inf the host", log: []byte("<164>Oct 26 15:19:25 1.2.3.4 ASA1-2: Deny udp src DRAC:10.1.2.3/43434 dst outside:192.168.0.1/53 by access-group \"acl_drac\" [0x0, 0x0]"), diff --git a/filebeat/input/syslog/syslog_rfc3164.rl b/filebeat/input/syslog/syslog_rfc3164.rl index 2a5638f29a0..e16b9da35da 100644 --- a/filebeat/input/syslog/syslog_rfc3164.rl +++ b/filebeat/input/syslog/syslog_rfc3164.rl @@ -42,10 +42,11 @@ timestamp_rfc3164 = month space day space time; time_separator = "T" | "t"; timestamp_rfc3339 = year "-" month_numeric "-" day_two_digits (time_separator | space) time timezone?; - timestamp = timestamp_rfc3339 | timestamp_rfc3164; + timestamp = (timestamp_rfc3339 | timestamp_rfc3164) ":"?; - hostname = [a-zA-Z0-9.-_:]+>tok %hostname; - header = timestamp space hostname space; + hostname = ([a-zA-Z0-9\.\-_:]*([a-zA-Z0-9] | "::"))+>tok $lookahead_duplicates %hostname; + hostVars = (hostname ":") | hostname; + header = timestamp space hostVars ":"? space; # MSG # https://tools.ietf.org/html/rfc3164#section-4.1.3 @@ -54,7 +55,9 @@ syslogprog = program ("[" pid "]")? ":" space; message = any+>tok %message; msg = syslogprog? message>tok %message; + sequence = digit+ ":" space>tok %sequence; - main := (prio)? (header msg | timestamp space message | message); + main := (prio)?(sequence)? (header msg | timestamp space message | message); + catch_all := message; }%% From 6fbcbff12753fbb5a8f717e19637a0ad3194b5ad Mon Sep 17 00:00:00 2001 From: Christoph Wurm Date: Mon, 18 Feb 2019 17:17:17 +0000 Subject: [PATCH 046/332] [Auditbeat] Package: Disable librpm signal handlers (#10694) Disable librpm signal handlers. Resolves #10633. --- CHANGELOG.next.asciidoc | 1 + .../module/system/package/rpm_linux.go | 88 ++++++++++++++++--- .../auditbeat/tests/system/test_metricsets.py | 1 - 3 files changed, 79 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index cafbbbce152..b08114f212f 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -174,6 +174,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d *Auditbeat* - Enable System module config on Windows. {pull}10237[10237] +- Package: Disable librpm signal handlers. {pull}10694[10694] *Filebeat* diff --git a/x-pack/auditbeat/module/system/package/rpm_linux.go b/x-pack/auditbeat/module/system/package/rpm_linux.go index a1d395f54b1..292db1d5ed6 100644 --- a/x-pack/auditbeat/module/system/package/rpm_linux.go +++ b/x-pack/auditbeat/module/system/package/rpm_linux.go @@ -8,10 +8,12 @@ package pkg import ( "fmt" + "runtime" "time" "unsafe" "github.com/coreos/pkg/dlopen" + "github.com/joeshaw/multierror" ) /* @@ -22,6 +24,7 @@ import ( #include #include #include +#include rpmts my_rpmtsCreate(void *f) { @@ -100,7 +103,42 @@ my_rpmtsFree(void *f, rpmts ts) { rpmtsFree = (rpmts (*)(rpmts))f; rpmtsFree(ts); -}*/ +} + +// By default, librpm is going to trap various UNIX signals including SIGINT and SIGTERM +// which will prevent Beats from shutting down correctly. +// +// This disables that behavior. We should be very dilligent in +// cleaning up in our use of librpm. +// +// More recent versions of librpm have a new function rpmsqSetInterruptSafety() +// to do this, see below. +// +// See also: +// - librpm traps signals and calls exit(1) to terminate the whole process incl. our Go code: https://github.com/rpm-software-management/rpm/blob/rpm-4.11.3-release/lib/rpmdb.c#L640 +// - has caused problems for gdb before, calling rpmsqEnable(_, NULL) is the workaround they also use: https://bugzilla.redhat.com/show_bug.cgi?id=643031 +// - the new rpmsqSetInterruptSafety(), unfortunately only available in librpm>=4.14.0 (CentOS 7 has 4.11.3): https://github.com/rpm-software-management/rpm/commit/56f49d7f5af7c1c8a3eb478431356195adbfdd25 +void +my_disableLibrpmSignalTraps(void *f) { + int (*rpmsqEnable)(int, rpmsqAction_t); + rpmsqEnable = (int (*)(int, rpmsqAction_t))f; + + // Disable all traps + rpmsqEnable(-SIGHUP, NULL); + rpmsqEnable(-SIGINT, NULL); + rpmsqEnable(-SIGTERM, NULL); + rpmsqEnable(-SIGQUIT, NULL); + rpmsqEnable(-SIGPIPE, NULL); +} + +void +my_rpmsqSetInterruptSafety(void *f, int on) { + void (*rpmsqSetInterruptSafety)(int); + rpmsqSetInterruptSafety = (void (*)(int))f; + + rpmsqSetInterruptSafety(on); +} +*/ import "C" // Constants in sync with /usr/include/rpm/rpmtag.h @@ -117,15 +155,17 @@ const ( ) type cFunctions struct { - rpmtsCreate unsafe.Pointer - rpmReadConfigFiles unsafe.Pointer - rpmtsInitIterator unsafe.Pointer - rpmdbNextIterator unsafe.Pointer - headerLink unsafe.Pointer - headerGetEntry unsafe.Pointer - headerFree unsafe.Pointer - rpmdbFreeIterator unsafe.Pointer - rpmtsFree unsafe.Pointer + rpmtsCreate unsafe.Pointer + rpmReadConfigFiles unsafe.Pointer + rpmtsInitIterator unsafe.Pointer + rpmdbNextIterator unsafe.Pointer + headerLink unsafe.Pointer + headerGetEntry unsafe.Pointer + headerFree unsafe.Pointer + rpmdbFreeIterator unsafe.Pointer + rpmtsFree unsafe.Pointer + rpmsqEnable unsafe.Pointer + rpmsqSetInterruptSafety unsafe.Pointer } var cFun *cFunctions @@ -186,10 +226,31 @@ func dlopenCFunctions() (*cFunctions, error) { return nil, err } + // Only available in librpm>=4.13.0 + cFun.rpmsqSetInterruptSafety, err = librpm.GetSymbolPointer("rpmsqSetInterruptSafety") + if err != nil { + var err2 error + // Only available in librpm<4.14.0 + cFun.rpmsqEnable, err2 = librpm.GetSymbolPointer("rpmsqEnable") + if err2 != nil { + var errs multierror.Errors + errs = append(errs, err, err2) + return nil, errs.Err() + } + } + return &cFun, nil } func listRPMPackages() ([]*Package, error) { + // In newer versions, librpm is using the thread-local variable + // `disableInterruptSafety` in rpmio/rpmsq.c to disable signal + // traps. To make sure our settings remain in effect throughout + // our function calls we have to lock the OS thread here, since + // Golang can otherwise use any thread it likes for each C.* call. + runtime.LockOSThread() + defer runtime.UnlockOSThread() + if cFun == nil { var err error cFun, err = dlopenCFunctions() @@ -198,6 +259,10 @@ func listRPMPackages() ([]*Package, error) { } } + if cFun.rpmsqSetInterruptSafety != nil { + C.my_rpmsqSetInterruptSafety(cFun.rpmsqSetInterruptSafety, 0) + } + rpmts := C.my_rpmtsCreate(cFun.rpmtsCreate) if rpmts == nil { return nil, fmt.Errorf("Failed to get rpmts") @@ -212,6 +277,9 @@ func listRPMPackages() ([]*Package, error) { if mi == nil { return nil, fmt.Errorf("Failed to get match iterator") } + if cFun.rpmsqEnable != nil { + C.my_disableLibrpmSignalTraps(cFun.rpmsqEnable) + } defer C.my_rpmdbFreeIterator(cFun.rpmdbFreeIterator, mi) var packages []*Package diff --git a/x-pack/auditbeat/tests/system/test_metricsets.py b/x-pack/auditbeat/tests/system/test_metricsets.py index 965f7ee77c7..47b54b2f49d 100644 --- a/x-pack/auditbeat/tests/system/test_metricsets.py +++ b/x-pack/auditbeat/tests/system/test_metricsets.py @@ -41,7 +41,6 @@ def test_metricset_login(self): # Metricset is experimental and that generates a warning, TODO: remove later self.check_metricset("system", "login", COMMON_FIELDS + fields, config, warnings_allowed=True) - @unittest.skip("Flaky test, see https://github.com/elastic/beats/issues/10633") @unittest.skipIf(sys.platform == "win32", "Not implemented for Windows") @unittest.skipIf(sys.platform == "linux2" and not (os.path.isdir("/var/lib/dpkg") or os.path.isdir("/var/lib/rpm")), "Only implemented for dpkg and rpm") From 3dbc2335a2f6be4f8f90804a98dc9709c7936a9f Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Mon, 18 Feb 2019 15:48:21 -0500 Subject: [PATCH 047/332] Initialize Paths before loading the keystore (#10706) * Initialize Paths before loading the keystore The paths were incorrectly initialized meaning that instead of creating the keystore in the data directory it was created next to the binary. The problem was the call to `paths.InitPaths()` was done after loading the keystore, this was causing a chicken and egg situation and `paths.Resolve(path.Data, "hello")` was returning "hello" instead of `data/hello`. To solve that situation we do a partial extract of the configuration, just enough to initialize the paths and we move on to the keystore and the complete unpack. --- CHANGELOG.next.asciidoc | 1 + libbeat/cmd/instance/beat.go | 28 +++++++++++++++++++++++----- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index b08114f212f..a07d88a2a2a 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -29,6 +29,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Move output.elasticsearch.ilm settings to setup.ilm. {pull}10347[10347] - ILM will be available by default if Elasticsearch > 7.0 is used. {pull}10347[10347] - Allow Central Management to send events back to kibana. {issue}9382[9382] +- Initialize the Paths before the keystore and save the keystore into `data/{beatname}.keystore`. {pull}10706[10706] *Auditbeat* diff --git a/libbeat/cmd/instance/beat.go b/libbeat/cmd/instance/beat.go index 44615ccef33..3ab2507486e 100644 --- a/libbeat/cmd/instance/beat.go +++ b/libbeat/cmd/instance/beat.go @@ -519,6 +519,10 @@ func (b *Beat) configure(settings Settings) error { return fmt.Errorf("error loading config file: %v", err) } + if err := initPaths(cfg); err != nil { + return err + } + // We have to initialize the keystore before any unpack or merging the cloud // options. store, err := LoadKeystore(cfg, b.Info.Beat) @@ -551,11 +555,6 @@ func (b *Beat) configure(settings Settings) error { b.Info.Name = name } - err = paths.InitPaths(&b.Config.Path) - if err != nil { - return fmt.Errorf("error setting default paths: %v", err) - } - if err := configure.Logging(b.Info.Beat, b.Config.Logging); err != nil { return fmt.Errorf("error initializing logging: %v", err) } @@ -908,3 +907,22 @@ func initKibanaConfig(beatConfig beatConfig) (*common.Config, error) { } return kibanaConfig, nil } + +func initPaths(cfg *common.Config) error { + // To Fix the chicken-egg problem with the Keystore and the loading of the configuration + // files we are doing a partial unpack of the configuration file and only take into consideration + // the paths field. After we will unpack the complete configuration and keystore reference + // will be correctly replaced. + partialConfig := struct { + Path paths.Path `config:"path"` + }{} + + if err := cfg.Unpack(&partialConfig); err != nil { + return fmt.Errorf("error extracting default paths: %+v", err) + } + + if err := paths.InitPaths(&partialConfig.Path); err != nil { + return fmt.Errorf("error setting default paths: %+v", err) + } + return nil +} From 0576a7556eebafba20c260c7c4158c7cdc120123 Mon Sep 17 00:00:00 2001 From: Steffen Siering Date: Tue, 19 Feb 2019 10:45:38 +0100 Subject: [PATCH 048/332] Update changelog to 7.0.0-beta1 (#10794) --- CHANGELOG-developer.asciidoc | 18 +- CHANGELOG-developer.next.asciidoc | 15 +- CHANGELOG.asciidoc | 291 +++++++++++++++++++++++++----- CHANGELOG.next.asciidoc | 45 ----- 4 files changed, 267 insertions(+), 102 deletions(-) diff --git a/CHANGELOG-developer.asciidoc b/CHANGELOG-developer.asciidoc index 8bcaa0cdceb..9c44401058d 100644 --- a/CHANGELOG-developer.asciidoc +++ b/CHANGELOG-developer.asciidoc @@ -12,7 +12,23 @@ other Beats should be migrated. Note: This changelog was only started after the 6.3 release. -=== Beats version HEAD +=== Beats version 7.0.0-beta1 +https://github.com/elastic/beats/compare/v7.0.0-alpha2..v7.0.0-beta1[Check the HEAD diff] + +==== Breaking changes +- Outputs receive Index Manager as additional parameter. The index manager can + be used to create an index selector. {pull}10347[10347] +- Remove support for loading dashboards to Elasticsearch 5. {pull}10451[10451] + +==== Added + +- Allow multiple object type configurations per field. {pull}9772[9772] +- Move agent metadata addition to a processor. {pull}9952[9952] +- Add (*common.Config).Has and (*common.Config).Remove. {pull}10363[10363] +- Introduce ILM and IndexManagement support to beat.Settings. {pull}10347[10347] +- Generating index pattern on demand instead of shipping them in the packages. {pull}10478[10478] + +=== Beats version 7.0.0-alpha2 https://github.com/elastic/beats/compare/v6.3.0..v7.0.0-alpha2[Check the HEAD diff] The list below covers the major changes between 6.3.0 and 7.0.0-alpha2 only. diff --git a/CHANGELOG-developer.next.asciidoc b/CHANGELOG-developer.next.asciidoc index 381c73c884e..c0cb2a4e4b4 100644 --- a/CHANGELOG-developer.next.asciidoc +++ b/CHANGELOG-developer.next.asciidoc @@ -14,25 +14,16 @@ Note: This changelog documents the current changes which are not yet present in an actual release. === Beats version HEAD -https://github.com/elastic/beats/compare/v7.0.0-alpha2..master[Check the HEAD diff] +https://github.com/elastic/beats/compare/v7.0.0-beta1..master[Check the HEAD diff] -The list below covers the major changes between 7.0.0-alpha2 and master only. +The list below covers the major changes between 7.0.0-beta1 and master only. ==== Breaking changes -- Outputs receive Index Manager as additional parameter. The index manager can - be used to create an index selector. {pull}10347[10347] -- Remove support for loading dashboards to Elasticsearch 5. {pull}10451[10451] - Remove support for deprecated `GenRootCmd` methods. {pull}10721[10721] ==== Bugfixes ==== Added -- Allow multiple object type configurations per field. {pull}9772[9772] -- Move agent metadata addition to a processor. {pull}9952[9952] -- Add (*common.Config).Has and (*common.Config).Remove. {pull}10363[10363] -- Introduce ILM and IndexManagment support to beat.Settings. {pull}10347[10347] -- Introduce ILM and IndexManagement support to beat.Settings. {pull}10347[10347] -- Generating index pattern on demand instead of shipping them in the packages. {pull}10478[10478] - Metricset generator generates beta modules by default now. {pull}10657[10657] -- Move host name addition to a processor. {pull}10728[10728] \ No newline at end of file +- Move host name addition to a processor. {pull}10728[10728] diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index 3d670ae8933..005c8261dc5 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -3,40 +3,132 @@ :issue: https://github.com/elastic/beats/issues/ :pull: https://github.com/elastic/beats/pull/ -//////////////////////////////////////////////////////////// -// Template, add newest changes here - -=== Beats version HEAD -https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD diff] +[[release-notes-7.0.0-beta1]] +=== Beats version 7.0.0-beta1 +https://github.com/elastic/beats/compare/v7.0.0-alpha2...v7.0.0-beta1[Check the HEAD diff] ==== Breaking changes *Affecting all Beats* -- Update add_cloud_metadata fields to adjust to ECS. {pull}9265[9265] -- Automaticall cap signed integers to 63bits. {pull}8991[8991] -- Rename beat.timezone to event.timezone. {pull}9458[9458] -- Use _doc as document type. {pull}9056[9056]{pull}9573[9573] -- Update to Golang 1.11.3. {pull}9560[9560] -- Migrate add_docker_metadata fields to ECS. +- Embedded html is not escaped anymore by default. {pull}9914[9914] +- Remove port settings from Logstash and Redis output. {pull}9934[9934] +- Rename `process.exe` to `process.executable` in add_process_metadata to align with ECS. {pull}9949[9949] +- Import ECS change https://github.com/elastic/ecs/pull/308[ecs#308]: + leaf field `user.group` is now the `group` field set. {pull}10275[10275] +- Update the code of Central Management to align with the new returned format. {pull}10019[10019] +- Docker and Kubernetes labels/annotations will be "dedoted" by default. {pull}10338[10338] +- Remove --setup command line flag. {pull}10138[10138] +- Remove --version command line flag. {pull}10138[10138] +- Remove --configtest command line flag. {pull}10138[10138] +- Move output.elasticsearch.ilm settings to setup.ilm. {pull}10347[10347] +- ILM will be available by default if Elasticsearch > 7.0 is used. {pull}10347[10347] *Auditbeat* +- Rename `process.exe` to `process.executable` in auditd module to align with ECS. {pull}9949[9949] +- Rename `process.cwd` to `process.working_directory` in auditd module to align with ECS. {pull}10195[10195] +- Change data type of `process.pid` and `process.ppid` to number in JSON output + of the auditd module. {pull}10195[10195] +- Change data type of `file.uid` and `file.gid` to string in JSON output of the + FIM module. {pull}10195[10195] +- Field `file.origin` changed type from `text` to `keyword`. {pull}10544[10544] +- Rename user fields to ECS in auditd module. {pull}10456[10456] +- Rename `event.type` to `auditd.message_type` in auditd module because event.type is reserved for future use by ECS. {pull}10536[10536] +- Rename `auditd.messages` to `event.original` and `auditd.warnings` to `error.message`. {pull}10577[10577] + *Filebeat* +- Rename many `kibana.log.*` fields to map to ECS. {pull}9301[9301] - Modify apache/error dataset to follow ECS. {pull}8963[8963] - Rename many `traefik.access.*` fields to map to ECS. {pull}9005[9005] -- Add module zeek. {issue}9931[9931] {pull}10034[10034] -- Rename many `kibana.log.*` fields to map to ECS. {pull}9301[9301] +- Fix parsing of GC entries in elasticsearch server log. {issue}9513[9513] {pull}9810[9810] +- Rename `read_timestamp` to `event.created` for Redis input. {pull}9924[9924] +- Rename a few `elasticsearch.audit.*` fields to map to ECS. {pull}9293[9293] +- Rename `read_timestamp` to `event.created` for all Filebeat modules using it. {pull}10139[10139] +- Rename many `iis.error.*` fields to map to ECS. {pull}9955[9955] +- Adjust fileset `haproxy.log` to map to ECS. {pull}10143[10143] +- Rename a few `logstash.*` fields to map to ECS, remove logstash.slowlog.message. {pull}9935[9935] +- Rename a few `mongodb.*` fields to map to ECS. {pull}10009[10009] +- Rename a few `mysql.*` fields to map to ECS. {pull}10008[10008] +- Rename a few `nginx.error.*` fields to map to ECS. {pull}10007[10007] +- Rename many `auditd.log.*` fields to map to ECS. {pull}10192[10192] +- Filesets with multiple ingest pipelines added in {pull}8914[8914] only work with Elasticsearch >= 6.5.0 {pull}10001[10001] +- Remove service.name from Elastcsearch module. Replace by service.type. {pull}10042[10042] +- Remove numeric coercions for `user.id` and `group.id`. IDs should be `keyword`. {pull}10233[10233] +- Add grok pattern to support redis 5.0.3 log timestamp. {issue}9819[9819] {pull}10033[10033] +- Now save the 'first seen' timestamp in `event.created` (previously `read_timestamp`), + instead of saving the parsed date. Now aligned with `event.created` semantics elsewhere. {pull}10139[10139] +- Rename `mysql.error.thread_id` and `mysql.slowlog.id` to `mysql.thread_id`. {pull}10161[10161] +- Remove `mysql.error.timestamp` and `mysql.slowlog.timestamp`. {pull}10161[10161] +- Migrate multiple fields to `event.duration`, from modules "apache", "elasticsearch", + "haproxy", "iis", "kibana", "mysql", "nginx", "postgresql" and "traefik", + including `http.response.elapsed_time` (ECS). {pull}10188[10188], {pull}10274[10274] +- Rename multiple fields to `http.response.body.bytes`, from modules "apache", "iis", + "kibana", "nginx" and "traefik", including `http.response.content_length` (ECS). {pull}10188[10188] +- Change type from haproxy.log fileset fields from text to keyword: response.captured_headers, request.captured_headers, `raw_request_line`, `mode`. {pull}10397[10397] +- Change type of field backend_url and frontend_name in traefik.access metricset to type keyword. {pull}10401[10401] +- Ingesting Elasticsearch audit logs is only supported with Elasticsearch 6.5.0 and above {pull}10352[10352] +- Migrate Elasticsearch audit logs fields to ECS {pull}10352[10352] +- Several text fields in the Logstash module are now indexed as `keyword` fields with `text` multi-fields (ECS). {pull}10417[10417] +- Several text fields in the Elasticsearch module are now indexed as `keyword` fields with `text` multi-fields (ECS). {pull}10414[10414] +- Move dissect pattern for traefik.access fileset from Filbeat to Elasticsearch. {pull}10442[10442] +- The `elasticsearch/deprecation` fileset now indexes the `component` field under `elasticsearch` instead of `elasticsearch.server`. {pull}10445[10445] +- Remove field `kafka.log.trace.full` from kafka.log fielset. {pull}10398[10398] +- Change field `kafka.log.class` for kafka.log fileset from text to keyword. {pull}10398[10398] +- Address add_kubernetes_metadata processor issue where old source field is + still used for matcher. {issue}10505[10505] {pull}10506[10506] +- Change type of haproxy.source from text to keyword. {pull}10506[10506] +- Rename `event.type` to `suricata.eve.event_type` in Suricata module because event.type is reserved for future use by ECS. {pull}10575[10575] +- Populate more ECS fields in the Suricata module. {pull}10006[10006] +- Rename setting `filebeat.registry_flush` to `filebeat.registry.flush`. {pull}10504[10504] +- Rename setting `filebeat.registry_file_permission` to `filebeat.registry.file_permission`. {pull}10504[10504] +- Remove setting `filebeat.registry_file` in favor of `filebeat.registry.path`. The registry file will be stored in a sub-directory by now. {pull}10504[10504] *Heartbeat* - Remove monitor generator script that was rarely used. {pull}9648[9648] +- monitor IDs are now configurable. Auto generated monitor IDs now use a different formula based on a hash of their config values. If you wish to have continuity with the old format of monitor IDs you'll need to set the `id` property explicitly. {pull}9697[9697] +- A number of fields have been aliased to their relevant counterparts in the `url.*` field. Existing visualizations should mostly work. The fields that have been moved are `monitor.scheme -> url.scheme`, `monitor.host -> url.domain`, `resolve.host -> url.domain`, `http.url -> url.full`, `tcp.port -> url.port`. In addition to these moves the new fields `url.username`, `url.password`, `url.path`, and `url.query` are now present. It should be noted that the `url.password` field does not contain actual password values, but rather the text `` {pull}9570[9570]. +- The included Kibana HTTP dashboard is now removed in favor of the Uptime app in Kibana. {pull}10294[10294] *Journalbeat* -*Metricbeat* - +- Rename read_timestamp to event.created to align with ECS. {pull}10043[10043], {pull}10139[10139] +- Rename host.name to host.hostname to align with ECS. {pull}10043[10043] +- Fix typo in the field name `container.id_truncated`. {pull}10525[10525] +- Rename `container.image.tag` to `container.log.tag`. {pull}10561[10561] +- Change type of `text` fields to `keyword`. {pull}10542[10542] + +*Metricbeat* + +- Migrate system process metricset fields to ECS. {pull}10332[10332] +- Refactor Prometheus metric mappings {pull}9948[9948] +- Removed Prometheus stats metricset in favor of just using Prometheus collector {pull}9948[9948] +- Migrate system socket metricset fields to ECS. {pull}10339[10339] +- Renamed direction values in sockets to ECS recommendations, from incoming/outcoming to inbound/outbound. {pull}10339[10339] +- Adjust Redis.info metricset fields to ECS. {pull}10319[10319] +- Change type of field docker.container.ip_addresses to `ip` instead of `keyword`. {pull}10364[10364] +- Rename http.request.body field to http.request.body.content. {pull}10315[10315] +- Adjust php_fpm.process metricset fields to ECS. {pull}10366[10366] +- Adjust mongodb.status metricset to to ECS. {pull}10368[10368] +- Refactor munin module to collect an event per plugin and to have more strict field mappings. `namespace` option has been removed, and will be replaced by `service.name`. {pull}10322[10322] +- Change the following fields from type text to keyword: {pull}10318[10318] + - ceph.osd_df.name + - ceph.osd_tree.name + - ceph.osd_tree.children + - kafka.consumergroup.meta + - kibana.stats.name + - mongodb.metrics.replication.executor.network_interface + - php_fpm.process.request_uri + - php_fpm.process.script +- Add `service.name` option to all modules to explicitly set `service.name` if it is unset. {pull}10427[10427] +- Update a few elasticsearch.* fields to map to ECS. {pull}10350[10350] +- Update a few logstash.* fields to map to ECS. {pull}10350[10350] +- Update a few kibana.* fields to map to ECS. {pull}10350[10350] +- Update rabbitmq.* fields to map to ECS. {pull}10563[10563] +- Update haproxy.* fields to map to ECS. {pull}10558[10558] {pull}10568[10568] +- Collect all EC2 meta data from all instances in all states. {pull}10628[10628] - Fix MongoDB dashboard that had some incorrect field names from `status` Metricset {pull}9795[9795] {issue}9715[9715] *Packetbeat* @@ -44,94 +136,205 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Adjust Packetbeat `http` fields to ECS Beta 2 {pull}9645[9645] - `http.request.body` moves to `http.request.body.content` - `http.response.body` moves to `http.response.body.content` +- Changed Packetbeat fields to align with ECS. {issue}7968[7968] +- Removed trailing dot from domain names reported by the DNS protocol. {pull}9941[9941] *Winlogbeat* +- Adjust Winlogbeat fields to map to ECS. {pull}10333[10333] + *Functionbeat* +- Correctly normalize Cloudformation resource name. {issue}10087[10087] +- Functionbeat can now deploy a function for Kinesis. {10116}10116[10116] +- Allow functionbeat to use the keystore. {issue}9009[9009] + ==== Bugfixes *Affecting all Beats* -- Enforce validation for the Central Management access token. {issue}9621[9621] -- Allow to unenroll a Beat from the UI. {issue}9452[9452] +- Fix config appender registration. {pull}9873[9873] +- Gracefully handle TLS options when enrolling a Beat. {issue}9129[9129] +- The backing off now implements jitter to better distribute the load. {issue}10172[10172] +- Fix TLS certificate DoS vulnerability. {pull}10302[10302] +- Fix panic and file unlock in spool on atomic operation (arm, x86-32). File lock was not released when panic occurs, leading to the beat deadlocking on startup. {pull}10289[10289] +- Fix encoding of timestamps when using disk spool. {issue}10099[10099] +- Fix stopping of modules started by kubernetes autodiscover. {pull}10476[10476] +- Fix a issue when remote and local configuration didn't match when fetching configuration from Central Management. {issue}10587[10587] +- Fix unauthorized error when loading dashboards by adding username and password into kibana config. {issue}10513[10513] {pull}10675[10675] - Fix exclude_labels when there are dotted keys {pull}10154[10154] +- Fix registry handle leak on Windows (https://github.com/elastic/go-sysinfo/pull/33). {pull}9920[9920] *Auditbeat* +- Enable System module config on Windows. {pull}10237[10237] + *Filebeat* +- Support IPv6 addresses with zone id in IIS ingest pipeline. + {issue}9836[9836] error log: {pull}9869[9869], access log: {pull}9955[9955]. +- Support haproxy log lines without captured headers. {issue}9463[9463] {pull}9958[9958] +- Make elasticsearch/audit fileset be more lenient in parsing node name. {issue}10035[10035] {pull}10135[10135] +- Fix bad bytes count in `docker` input when filtering by stream. {pull}10211[10211] +- Fixed data types for roles and indices fields in `elasticsearch/audit` fileset {pull}10307[10307] +- Ensure `source.address` is always populated by the nginx module (ECS). {pull}10418[10418] +- Support mysql 5.7.22 slowlog starting with time information. {issue}7892[7892] {pull}9647[9647] + *Heartbeat* - Made monitors.d configuration part of the default config. {pull}9004[9004] +- Fixed rare issue where TLS connections to endpoints with x509 certificates missing either notBefore or notAfter would cause the check to fail with a stacktrace. {pull}9566[9566] *Journalbeat* +- Do not stop collecting events when journal entries change. {pull}9994[9994] + *Metricbeat* +- Fix panics in vsphere module when certain values where not returned by the API. {pull}9784[9784] +- Fix pod UID metadata enrichment in Kubernetes module. {pull}10081[10081] +- Fix issue that would prevent collection of processes without command line on Windows. {pull}10196[10196] +- Fixed data type for tags field in `docker/container` metricset {pull}10307[10307] +- Fixed data type for tags field in `docker/image` metricset {pull}10307[10307] +- Fixed data type for isr field in `kafka/partition` metricset {pull}10307[10307] +- Fixed data types for various hosts fields in `mongodb/replstatus` metricset {pull}10307[10307] +- Added function to close sql database connection. {pull}10355[10355] +- Fix issue with `elasticsearch/node_stats` metricset (x-pack) not indexing `source_node` field. {pull}10639[10639] + *Packetbeat* +- Fix DHCPv4 dashboard that wouldn't load in Kibana. {issue}9850[9850] +- Fixed a crash when using af_packet capture {pull}10477[10477] + *Winlogbeat* +- Close handle on signalEvent. {pull}9838[9838] + *Functionbeat* +- Ensure that functionbeat is logging at info level not debug. {issue}10262[10262] +- Add the required permissions to the role when deployment SQS functions. {issue}9152[9152] + ==== Added *Affecting all Beats* - Update field definitions for `http` to ECS Beta 2 {pull}9645[9645] +- Add `agent.id` and `agent.ephemeral_id` fields to all beats. {pull}9404[9404] +- Add `name` config option to `add_host_metadata` processor. {pull}9943[9943] +- Add `add_labels` and `add_tags` processors. {pull}9973[9973] +- Add missing file encoding to readers. {pull}10080[10080] +- Introduce `migration.enabled` configuration. {pull}9805[9805] +- Add alias field support in Kibana index pattern. {pull}10075[10075] +- Add `add_fields` processor. {pull}10119[10119] +- Add Kibana field formatter to bytes fields. {pull}10184[10184] +- Document a few more `auditd.log.*` fields. {pull}10192[10192] +- Support Kafka 2.1.0. {pull}10440[10440] +- Add ILM mode `auto` to setup.ilm.enabled setting. This new default value detects if ILM is available {pull}10347[10347] +- Add support to read ILM policy from external JSON file. {pull}10347[10347] +- Add `overwrite` and `check_exists` settings to ILM support. {pull}10347[10347] +- Generate Kibana index pattern on demand instead of using a local file. {pull}10478[10478] +- Calls to Elasticsearch X-Pack APIs made by Beats won't cause deprecation logs in Elasticsearch logs. {9656}9656[9656] +- Allow to unenroll a Beat from the UI. {issue}9452[9452] - Release Jolokia autodiscover as GA. {pull}9706[9706] +- Allow Central Management to send events back to kibana. {issue}9382[9382] *Auditbeat* - Add system module. {pull}9546[9546] +- Add `user.id` (UID) and `user.name` for ECS. {pull}10195[10195] +- Add `group.id` (GID) and `group.name` for ECS. {pull}10195[10195] +- System module `process` dataset: Add user information to processes. {pull}9963[9963] +- Add system `package` dataset. {pull}10225[10225] +- Add system module `login` dataset. {pull}9327[9327] +- Add `entity_id` fields. {pull}10500[10500] +- Add seven dashboards for the system module. {pull}10511[10511] *Filebeat* +- Add `convert_timezone` option to Elasticsearch module to convert dates to UTC. {issue}9756[9756] {pull}9761[9761] - Added module for parsing Google Santa logs. {pull}9540[9540] - Added netflow input type that supports NetFlow v1, v5, v6, v7, v8, v9 and IPFIX. {issue}9399[9399] - Add option to modules.yml file to indicate that a module has been moved {pull}9432[9432]. +- Add support for ssl_request_log in apache2 module. {issue}8088[8088] {pull}9833[9833] +- Add support for iis 7.5 log format. {issue}9753[9753] {pull}9967[9967] +- Add service.type field to all Modules. By default the field is set with the module name. It can be overwritten with `service.type` config. {pull}10042[10042] +- Add support for MariaDB in the `slowlog` fileset of `mysql` module. {pull}9731[9731] +- Apache module's error fileset now performs GeoIP lookup, like the access fileset. {pull}10273[10273] +- Elasticsearch module's slowlog now populates `event.duration` (ECS). {pull}9293[9293] +- HAProxy module now populates `event.duration` and `http.response.bytes` (ECS). {pull}10143[10143] +- Teach elasticsearch/audit fileset to parse out some more fields. {issue}10134[10134] {pull}10137[10137] +- Add convert_timezone to nginx module. {issue}9839[9839] {pull}10148[10148] +- Add support for Percona in the `slowlog` fileset of `mysql` module. {issue}6665[6665] {pull}10227[10227] +- Added support for ingesting structured Elasticsearch audit logs {pull}10352[10352] +- Added support for ingesting structured Elasticsearch slow logs {pull}10445[10445] +- Added support for ingesting structured Elasticsearch deprecation logs {pull}10445[10445] +- New iptables module that receives iptables/ip6tables logs over syslog or file. Supports Ubiquiti Firewall extensions. {issue}8781[8781] {pull}10176[10176] +- Added support for ingesting structured Elasticsearch server logs {pull}10428[10428] +- Populate more ECS fields in the Suricata module. {pull}10006[10006] +- Add module zeek. {issue}9931[9931] {pull}10034[10034] *Heartbeat* -- Fixed rare issue where TLS connections to endpoints with x509 certificates missing either notBefore or notAfter would cause the check to fail with a stacktrace. {pull}9566[9566] - +- Autodiscover metadata is now included in events by default. So, if you are using the docker provider for instance, you'll see the correct fields under the `docker` key. {pull}10258[10258] *Journalbeat* +- Migrate registry from previously incorrect path. {pull}10486[10486] + *Metricbeat* - Add `key` metricset to the Redis module. {issue}9582[9582] {pull}9657[9657] {pull}9746[9746] - Add `socket_summary` metricset to system defaults, removing experimental tag and supporting Windows {pull}9709[9709] - -*Packetbeat* - +- Add docker `event` metricset. {pull}9856[9856] +- Add 'performance' metricset to x-pack mssql module {pull}9826[9826] +- Add DeDot for kubernetes labels and annotations. {issue}9860[9860] {pull}9939[9939] +- Add more meaningful metrics to 'performance' Metricset on 'MSSQL' module {pull}10011[10011] +- Rename some fields in `performance` Metricset on MSSQL module to match the updated documentation from Microsoft {pull}10074[10074] +- Add AWS EC2 module. {pull}9257[9257] {issue}9300[9300] +- Release windows Metricbeat module as GA. {pull}10163[10163] +- Release traefik Metricbeat module as GA. {pull}10166[10166] +- Release Elastic stack modules (Elasticsearch, Logstash, and Kibana) as GA. {pull}10094[10094] +- List filesystems on Windows that have an access path but not an assigned letter {issue}8916[8916] {pull}10196[10196] +- Add `nats` module. {issue}10071[10071] +- Release uswgi Metricbeat module GA. {pull}10164[10164] +- Release php_fpm module as GA. {pull}10198[10198] +- Release Memcached module as GA. {pull}10199[10199] +- Release etcd module as GA. {pull}10200[10200] +- Release Ceph module as GA. {pull}10202[10202] +- Release aerospike module as GA. {pull}10203[10203] +- Release kubernetes apiserver and event metricsets as GA {pull}10212[10212] +- Release Couchbase module as GA. {pull}10201[10201] +- Release RabbitMQ module GA. {pull}10165[10165] +- Release envoyproxy module GA. {pull}10223[10223] +- Release mongodb.metrics and mongodb.replstatus as GA. {pull}10242[10242] +- Release mysql.galera_status as GA. {pull}10242[10242] +- Release postgresql.statement as GA. {pull}10242[10242] +- Release RabbitMQ Metricbeat module GA. {pull}10165[10165] +- Release Dropwizard module as GA. {pull}10240[10240] +- Release Graphite module as GA. {pull}10240[10240] +- Release kvm module as beta. {pull}10279[10279] +- Release http.server metricset as GA. {pull}10240[10240] +- Release Nats module as GA. {pull}10281[10281] +- Release munin module as GA. {pull}10311[10311] +- Release Golang module as GA. {pull}10312[10312] +- Release use of xpack.enabled: true flag in Elasticsearch and Kibana modules as GA. {pull}10222[10222] +- Add support for MySQL 8.0 and tests also for Percona and MariaDB. {pull}10261[10261] +- Rename 'db' Metricset to 'transaction_log' in MSSQL Metricbeat module {pull}10109[10109] +- Add process arguments and the path to its executable file in the system process metricset {pull}10332[10332] +- Added 'server' Metricset to Zookeeper Metricbeat module {issue}8938[8938] {pull}10341[10341] +- Release AWS module as GA. {pull}10345[10345] +- Add overview dashboard to Zookeeper Metricbeat module {pull}10379[10379] + +*Packetbeat* + +- Add `network.community_id` to Packetbeat flow events. {pull}10061[10061] +- Add aliases for flow fields that were renamed. {issue}7968[7968] {pull}10063[10063] - Add support to decode mysql prepare statement command. {pull}8084[8084] *Functionbeat* -==== Deprecated - -*Affecting all Beats* - -*Filebeat* - -*Heartbeat* - -*Journalbeat* - -*Metricbeat* - -*Packetbeat* - -*Winlogbeat* - -*Functionbeat* - -==== Known Issue - - -//////////////////////////////////////////////////////////// +- Mark Functionbeat as GA. {pull}10564[10564] [[release-notes-7.0.0-alpha2]] === Beats version 7.0.0-alpha2 diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index a07d88a2a2a..1c7014298da 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -46,51 +46,6 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d *Filebeat* -- Modify apache/error dataset to follow ECS. {pull}8963[8963] -- Rename many `traefik.access.*` fields to map to ECS. {pull}9005[9005] -- Fix parsing of GC entries in elasticsearch server log. {issue}9513[9513] {pull}9810[9810] -- Rename `read_timestamp` to `event.created` for Redis input. {pull}9924[9924] -- Rename a few `elasticsearch.audit.*` fields to map to ECS. {pull}9293[9293] -- Rename `read_timestamp` to `event.created` for all Filebeat modules using it. {pull}10139[10139] -- Rename many `iis.error.*` fields to map to ECS. {pull}9955[9955] -- Adjust fileset `haproxy.log` to map to ECS. {pull}10143[10143] -- Rename a few `logstash.*` fields to map to ECS, remove logstash.slowlog.message. {pull}9935[9935] -- Rename a few `mongodb.*` fields to map to ECS. {pull}10009[10009] -- Rename a few `mysql.*` fields to map to ECS. {pull}10008[10008] -- Rename a few `nginx.error.*` fields to map to ECS. {pull}10007[10007] -- Rename many `auditd.log.*` fields to map to ECS. {pull}10192[10192] -- Filesets with multiple ingest pipelines added in {pull}8914[8914] only work with Elasticsearch >= 6.5.0 {pull}10001[10001] -- Remove service.name from Elastcsearch module. Replace by service.type. {pull}10042[10042] -- Remove numeric coercions for `user.id` and `group.id`. IDs should be `keyword`. {pull}10233[10233] -- Add grok pattern to support redis 5.0.3 log timestamp. {issue}9819[9819] {pull}10033[10033] -- Now save the 'first seen' timestamp in `event.created` (previously `read_timestamp`), - instead of saving the parsed date. Now aligned with `event.created` semantics elsewhere. {pull}10139[10139] -- Rename `mysql.error.thread_id` and `mysql.slowlog.id` to `mysql.thread_id`. {pull}10161[10161] -- Remove `mysql.error.timestamp` and `mysql.slowlog.timestamp`. {pull}10161[10161] -- Migrate multiple fields to `event.duration`, from modules "apache", "elasticsearch", - "haproxy", "iis", "kibana", "mysql", "nginx", "postgresql" and "traefik", - including `http.response.elapsed_time` (ECS). {pull}10188[10188], {pull}10274[10274] -- Rename multiple fields to `http.response.body.bytes`, from modules "apache", "iis", - "kibana", "nginx" and "traefik", including `http.response.content_length` (ECS). {pull}10188[10188] -- Change type from haproxy.log fileset fields from text to keyword: response.captured_headers, request.captured_headers, `raw_request_line`, `mode`. {pull}10397[10397] -- Change type of field backend_url and frontend_name in traefik.access metricset to type keyword. {pull}10401[10401] -- Ingesting Elasticsearch audit logs is only supported with Elasticsearch 6.5.0 and above {pull}10352[10352] -- Migrate Elasticsearch audit logs fields to ECS {pull}10352[10352] -- Several text fields in the Logstash module are now indexed as `keyword` fields with `text` multi-fields (ECS). {pull}10417[10417] -- Several text fields in the Elasticsearch module are now indexed as `keyword` fields with `text` multi-fields (ECS). {pull}10414[10414] -- Move dissect pattern for traefik.access fileset from Filbeat to Elasticsearch. {pull}10442[10442] -- The `elasticsearch/deprecation` fileset now indexes the `component` field under `elasticsearch` instead of `elasticsearch.server`. {pull}10445[10445] -- Remove field `kafka.log.trace.full` from kafka.log fielset. {pull}10398[10398] -- Change field `kafka.log.class` for kafka.log fileset from text to keyword. {pull}10398[10398] -- Address add_kubernetes_metadata processor issue where old source field is - still used for matcher. {issue}10505[10505] {pull}10506[10506] -- Change type of haproxy.source from text to keyword. {pull}10506[10506] -- Rename `event.type` to `suricata.eve.event_type` in Suricata module because event.type is reserved for future use by ECS. {pull}10575[10575] -- Populate more ECS fields in the Suricata module. {pull}10006[10006] -- Rename setting `filebeat.registry_flush` to `filebeat.registry.flush`. {pull}10504[10504] -- Rename setting `filebeat.registry_file_permission` to `filebeat.registry.file_permission`. {pull}10504[10504] -- Remove setting `filebeat.registry_file` in favor of `filebeat.registry.path`. The registry file will be stored in a sub-directory by now. {pull}10504[10504] - *Heartbeat* - Remove monitor generator script that was rarely used. {pull}9648[9648] From 46ff9bf0f91285789df34956218ffa860264edba Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Tue, 19 Feb 2019 08:16:39 -0500 Subject: [PATCH 049/332] Since the snapshot are correctly generate and are available we can turn on (#10679) the integration tests. --- .../libbeat/tests/system/test_management.py | 126 +++++++++--------- 1 file changed, 65 insertions(+), 61 deletions(-) diff --git a/x-pack/libbeat/tests/system/test_management.py b/x-pack/libbeat/tests/system/test_management.py index edab65dfe64..76d68279cb8 100644 --- a/x-pack/libbeat/tests/system/test_management.py +++ b/x-pack/libbeat/tests/system/test_management.py @@ -5,14 +5,16 @@ import string import random import unittest +import time from elasticsearch import Elasticsearch +from os import path from base import BaseTest INTEGRATION_TESTS = os.environ.get('INTEGRATION_TESTS', False) -TIMEOUT = 5 * 60 +TIMEOUT = 2 * 60 class TestManagement(BaseTest): @@ -25,10 +27,13 @@ def setUp(self): self.es_user = "myelastic" self.es_pass = "changeme" self.es = Elasticsearch([self.get_elasticsearch_url()], verify_certs=True) + self.keystore_path = self.working_dir + "/data/keystore" - # @unittest.skipIf(not INTEGRATION_TESTS, - # "integration tests are disabled, run with INTEGRATION_TESTS=1 to enable them.") - @unittest.skip("Skipping because snapshot is not ready yet. see #10481") + if path.exists(self.keystore_path): + os.Remove(self.keystore_path) + + @unittest.skipIf(not INTEGRATION_TESTS, + "integration tests are disabled, run with INTEGRATION_TESTS=1 to enable them.") def test_enroll(self): """ Enroll the beat in Kibana Central Management @@ -37,7 +42,7 @@ def test_enroll(self): # We don't care about this as it will be replaced by enrollment # process: config_path = os.path.join(self.working_dir, "mockbeat.yml") - self.render_config_template("mockbeat", config_path) + self.render_config_template("mockbeat", config_path, keystore_path=self.keystore_path) config_content = open(config_path, 'r').read() @@ -49,7 +54,7 @@ def test_enroll(self): # Enroll creates a keystore (to store access token) assert os.path.isfile(os.path.join( - self.working_dir, "mockbeat.keystore")) + self.working_dir, "data/keystore")) # New settings file is in place now new_content = open(config_path, 'r').read() @@ -61,9 +66,8 @@ def test_enroll(self): backup_content = open(config_path + ".bak", 'r').read() assert config_content == backup_content - # @unittest.skipIf(not INTEGRATION_TESTS, - # "integration tests are disabled, run with INTEGRATION_TESTS=1 to enable them.") - @unittest.skip("Skipping because snapshot is not ready yet. see #10481") + @unittest.skipIf(not INTEGRATION_TESTS, + "integration tests are disabled, run with INTEGRATION_TESTS=1 to enable them.") def test_enroll_bad_pw(self): """ Try to enroll the beat in Kibana Central Management with a bad password @@ -71,7 +75,7 @@ def test_enroll_bad_pw(self): # We don't care about this as it will be replaced by enrollment # process: config_path = os.path.join(self.working_dir, "mockbeat.yml") - self.render_config_template("mockbeat", config_path) + self.render_config_template("mockbeat", config_path, keystore_path=self.keystore_path) config_content = open(config_path, 'r').read() @@ -81,22 +85,21 @@ def test_enroll_bad_pw(self): # Keystore wasn't created assert not os.path.isfile(os.path.join( - self.working_dir, "mockbeat.keystore")) + self.working_dir, "data/keystore")) # Settings hasn't changed new_content = open(config_path, 'r').read() assert config_content == new_content - # @unittest.skipIf(not INTEGRATION_TESTS, - # "integration tests are disabled, run with INTEGRATION_TESTS=1 to enable them.") - @unittest.skip("Skipping because snapshot is not ready yet. see #10446") + @unittest.skipIf(not INTEGRATION_TESTS, + "integration tests are disabled, run with INTEGRATION_TESTS=1 to enable them.") def test_fetch_configs(self): """ Config is retrieved from Central Management and updates are applied """ # Enroll the beat config_path = os.path.join(self.working_dir, "mockbeat.yml") - self.render_config_template("mockbeat", config_path) + self.render_config_template("mockbeat", config_path, keystore_path=self.keystore_path) exit_code = self.enroll(self.es_user, self.es_pass) assert exit_code == 0 @@ -105,29 +108,27 @@ def test_fetch_configs(self): self.create_and_assing_tag([ { "type": "output", - "configs": [ - { - "output": "elasticsearch", - "elasticsearch": { - "hosts": [self.es_host], - "username": self.es_user, - "password": self.es_pass, - "index": index, - } - } - ] + "config": { + "_sub_type": "elasticsearch", + "hosts": [self.es_host], + "username": self.es_user, + "password": self.es_pass, + "index": index, + }, + "id": "myconfig", } ]) # Start beat proc = self.start_beat(extra_args=[ "-E", "management.period=1s", + "-E", "keystore.path=%s" % self.keystore_path, ]) # Wait for beat to apply new conf self.wait_log_contains("Applying settings for output") - self.wait_until(lambda: self.log_contains("PublishEvents: ")) + self.wait_until(lambda: self.log_contains("PublishEvents: "), max_timeout=TIMEOUT) self.wait_documents(index, 1) @@ -137,34 +138,31 @@ def test_fetch_configs(self): self.create_and_assing_tag([ { "type": "output", - "configs": [ - { - "output": "elasticsearch", - "elasticsearch": { - "hosts": [self.es_host], - "username": self.es_user, - "password": self.es_pass, - "index": index2, - } - } - ] + "config": { + "_sub_type": "elasticsearch", + "hosts": [self.es_host], + "username": self.es_user, + "password": self.es_pass, + "index": index2, + }, + "id": "myconfig", } ]) - self.wait_until(lambda: self.log_contains("PublishEvents: ")) + self.wait_log_contains("Applying settings for output") + self.wait_until(lambda: self.log_contains("PublishEvents: "), max_timeout=TIMEOUT) self.wait_documents(index2, 1) proc.check_kill_and_wait() - # @unittest.skipIf(not INTEGRATION_TESTS, - # "integration tests are disabled, run with INTEGRATION_TESTS=1 to enable them.") - @unittest.skip("Skipping because snapshot is not ready yet. see #10446") + @unittest.skipIf(not INTEGRATION_TESTS, + "integration tests are disabled, run with INTEGRATION_TESTS=1 to enable them.") def test_configs_cache(self): """ Config cache is used if Kibana is not available """ # Enroll the beat config_path = os.path.join(self.working_dir, "mockbeat.yml") - self.render_config_template("mockbeat", config_path) + self.render_config_template("mockbeat", config_path, keystore_path=self.keystore_path) exit_code = self.enroll(self.es_user, self.es_pass) assert exit_code == 0 @@ -174,27 +172,23 @@ def test_configs_cache(self): self.create_and_assing_tag([ { "type": "output", - "configs": [ - { - - "output": "elasticsearch", - "elasticsearch": { - "hosts": [self.es_host], - "username": self.es_user, - "password": self.es_pass, - "index": index, - } - } - ] + "config": { + "_sub_type": "elasticsearch", + "hosts": [self.es_host], + "username": self.es_user, + "password": self.es_pass, + "index": index, + } } ]) # Start beat proc = self.start_beat(extra_args=[ "-E", "management.period=1s", + "-E", "keystore.path=%s" % self.keystore_path, ]) - self.wait_until(lambda: self.log_contains("PublishEvents: "), ) + self.wait_until(lambda: self.log_contains("PublishEvents: "), max_timeout=TIMEOUT) self.wait_documents(index, 1) proc.check_kill_and_wait() @@ -206,9 +200,10 @@ def test_configs_cache(self): "-E", "management.period=1s", "-E", "management.kibana.host=wronghost", "-E", "management.kibana.timeout=0.5s", + "-E", "keystore.path=%s" % self.keystore_path, ]) - self.wait_until(lambda: self.log_contains("PublishEvents: ")) + self.wait_until(lambda: self.log_contains("PublishEvents: "), max_timeout=TIMEOUT) self.wait_documents(index, 1) proc.check_kill_and_wait() @@ -231,10 +226,9 @@ def check_kibana_status(self): r = requests.get(url, headers=headers, auth=(self.es_user, self.es_pass)) - print(r.text) def create_and_assing_tag(self, blocks): - tag_name = "test" + tag_name = "test%d" % int(time.time() * 1000) headers = { "kbn-xsrf": "1" } @@ -243,13 +237,22 @@ def create_and_assing_tag(self, blocks): url = self.get_kibana_url() + "/api/beats/tag/" + tag_name data = { "color": "#DD0A73", - "configuration_blocks": blocks, + "name": tag_name, } r = requests.put(url, json=data, headers=headers, auth=(self.es_user, self.es_pass)) assert r.status_code in (200, 201) + # Create blocks + url = self.get_kibana_url() + "/api/beats/configurations" + for b in blocks: + b["tag"] = tag_name + + r = requests.put(url, json=blocks, headers=headers, + auth=(self.es_user, self.es_pass)) + assert r.status_code in (200, 201) + # Retrieve beat ID meta = json.loads( open(os.path.join(self.working_dir, 'data', 'meta.json'), 'r').read()) @@ -273,9 +276,10 @@ def random_index(self): def check_document_count(self, index, count): try: + self.es.indices.refresh(index=index) return self.es.search(index=index, body={"query": {"match_all": {}}})['hits']['total'] >= count except: return False def wait_documents(self, index, count): - self.wait_until(lambda: self.check_document_count(index, count), max_timeout=TIMEOUT) + self.wait_until(lambda: self.check_document_count(index, count), max_timeout=TIMEOUT, poll_interval=1) From 59061d4486260207ffce65fd69146645dd929c22 Mon Sep 17 00:00:00 2001 From: kaiyan-sheng Date: Tue, 19 Feb 2019 08:46:30 -0700 Subject: [PATCH 050/332] Add filters to AWS EC2 kibana dashboard and pie chart to show instance state (#10596) * Add filter to EC2 Overview dashboard * remove buttons from filters * Combine filters into one panel * Add Instance state pie chart * Add changelog --- CHANGELOG.next.asciidoc | 1 + metricbeat/docs/modules/aws.asciidoc | 3 +- x-pack/metricbeat/metricbeat.reference.yml | 3 +- x-pack/metricbeat/module/aws/_meta/config.yml | 3 +- .../Metricbeat-aws-ec2-overview.json | 1332 ++++++++++------- x-pack/metricbeat/modules.d/aws.yml.disabled | 3 +- 6 files changed, 767 insertions(+), 578 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 1c7014298da..0f3cf658a97 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -292,6 +292,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Release AWS module as GA. {pull}10345[10345] - Add overview dashboard to Zookeeper Metricbeat module {pull}10379[10379] - Add Consul Metricbeat module with Agent Metricset {pull}8631[8631] +- Add filters and pie chart for AWS EC2 dashboard. {pull}10596[10596] *Packetbeat* diff --git a/metricbeat/docs/modules/aws.asciidoc b/metricbeat/docs/modules/aws.asciidoc index b2b31db599e..f6c5f0a40d2 100644 --- a/metricbeat/docs/modules/aws.asciidoc +++ b/metricbeat/docs/modules/aws.asciidoc @@ -82,7 +82,8 @@ in <>. Here is an example configuration: metricbeat.modules: - module: aws period: 300s - metricsets: ["ec2"] + metricsets: + - "ec2" access_key_id: '${AWS_ACCESS_KEY_ID:""}' secret_access_key: '${AWS_SECRET_ACCESS_KEY:""}' session_token: '${AWS_SESSION_TOKEN:""}' diff --git a/x-pack/metricbeat/metricbeat.reference.yml b/x-pack/metricbeat/metricbeat.reference.yml index 68362dd1147..cd90ff182a0 100644 --- a/x-pack/metricbeat/metricbeat.reference.yml +++ b/x-pack/metricbeat/metricbeat.reference.yml @@ -150,7 +150,8 @@ metricbeat.modules: #--------------------------------- Aws Module --------------------------------- - module: aws period: 300s - metricsets: ["ec2"] + metricsets: + - "ec2" access_key_id: '${AWS_ACCESS_KEY_ID:""}' secret_access_key: '${AWS_SECRET_ACCESS_KEY:""}' session_token: '${AWS_SESSION_TOKEN:""}' diff --git a/x-pack/metricbeat/module/aws/_meta/config.yml b/x-pack/metricbeat/module/aws/_meta/config.yml index ea00f7efe40..ccb5317ce09 100644 --- a/x-pack/metricbeat/module/aws/_meta/config.yml +++ b/x-pack/metricbeat/module/aws/_meta/config.yml @@ -1,6 +1,7 @@ - module: aws period: 300s - metricsets: ["ec2"] + metricsets: + - "ec2" access_key_id: '${AWS_ACCESS_KEY_ID:""}' secret_access_key: '${AWS_SECRET_ACCESS_KEY:""}' session_token: '${AWS_SESSION_TOKEN:""}' diff --git a/x-pack/metricbeat/module/aws/_meta/kibana/7/dashboard/Metricbeat-aws-ec2-overview.json b/x-pack/metricbeat/module/aws/_meta/kibana/7/dashboard/Metricbeat-aws-ec2-overview.json index 960ee7cdebd..e823874b6cf 100644 --- a/x-pack/metricbeat/module/aws/_meta/kibana/7/dashboard/Metricbeat-aws-ec2-overview.json +++ b/x-pack/metricbeat/module/aws/_meta/kibana/7/dashboard/Metricbeat-aws-ec2-overview.json @@ -1,594 +1,778 @@ { - "objects": [ - { - "attributes": { - "description": "", - "kibanaSavedObjectMeta": { - "searchSourceJSON": { - "filter": [], - "query": { - "language": "kuery", - "query": "" - } - } - }, - "title": "AWS EC2 DiskIO Write Bytes ECS", - "uiStateJSON": {}, - "version": 1, - "visState": { - "aggs": [], - "params": { - "annotations": [], - "axis_formatter": "number", - "axis_position": "left", - "axis_scale": "normal", - "background_color_rules": [ - { - "id": "23428b30-f7f2-11e8-bff8-21537b07dd44" - } - ], - "bar_color_rules": [ - { - "id": "2592bcc0-f7f2-11e8-bff8-21537b07dd44" - } - ], - "id": "61ca57f0-469d-11e7-af02-69e470af7417", - "index_pattern": "metricbeat-*", - "interval": "5m", - "series": [ - { - "axis_position": "right", - "chart_type": "line", - "color": "rgba(104,188,0,1)", - "fill": "0", - "filter": "", - "formatter": "number", - "id": "61ca57f1-469d-11e7-af02-69e470af7417", - "label": "AWS EC2 DiskIO Write Bytes ECS", - "line_width": 1, - "metrics": [ - { - "field": "aws.ec2.diskio.write.bytes", - "id": "61ca57f2-469d-11e7-af02-69e470af7417", - "type": "avg" - } - ], - "point_size": 1, - "separate_axis": 0, - "series_drop_last_bucket": 1, - "split_color_mode": "rainbow", - "split_mode": "terms", - "stacked": "none", - "steps": 0, - "terms_field": "cloud.instance.id", - "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417", - "terms_size": "5" - } - ], - "show_grid": 1, - "show_legend": 1, - "time_field": "@timestamp", - "type": "timeseries" - }, - "title": "AWS EC2 DiskIO Write Bytes ECS", - "type": "metrics" - } - }, - "id": "fed59380-f7f8-11e8-af03-c999c9dea608-ecs", - "type": "visualization", - "updated_at": "2018-12-04T19:15:43.416Z", - "version": 1 - }, - { - "attributes": { - "description": "", - "kibanaSavedObjectMeta": { - "searchSourceJSON": { - "filter": [], - "query": { - "language": "kuery", - "query": "" - } - } - }, - "title": "AWS EC2 Status Check Failed ECS", - "uiStateJSON": {}, - "version": 1, - "visState": { - "aggs": [], - "params": { - "axis_formatter": "number", - "axis_position": "left", - "axis_scale": "normal", - "background_color_rules": [ - { - "id": "d13f6b50-f7f6-11e8-bff8-21537b07dd44" - } - ], - "bar_color_rules": [ - { - "id": "ad6d62d0-f7f7-11e8-bff8-21537b07dd44" - } - ], - "gauge_color_rules": [ - { - "id": "b0c5b590-f7f7-11e8-bff8-21537b07dd44" - } - ], - "gauge_inner_width": 10, - "gauge_style": "half", - "gauge_width": 10, - "id": "61ca57f0-469d-11e7-af02-69e470af7417", - "index_pattern": "metricbeat-*", - "interval": "auto", - "series": [ - { - "axis_position": "right", - "chart_type": "line", - "color": "#68BC00", - "fill": 0.5, - "formatter": "number", - "id": "61ca57f1-469d-11e7-af02-69e470af7417", - "label": "EC2 Status Check Failed", - "line_width": 1, - "metrics": [ - { - "field": "aws.ec2.status.check_failed", - "id": "61ca57f2-469d-11e7-af02-69e470af7417", - "type": "sum" - } - ], - "point_size": 1, - "separate_axis": 0, - "split_mode": "everything", - "stacked": "none", - "terms_field": "cloud.instance.id", - "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417" - } - ], - "show_grid": 1, - "show_legend": 1, - "time_field": "@timestamp", - "type": "metric" - }, - "title": "AWS EC2 Status Check Failed ECS", - "type": "metrics" - } - }, - "id": "9e8c6030-f7f8-11e8-af03-c999c9dea608-ecs", - "type": "visualization", - "updated_at": "2018-12-04T19:13:01.875Z", - "version": 1 - }, - { - "attributes": { - "description": "", - "kibanaSavedObjectMeta": { - "searchSourceJSON": { - "filter": [], - "query": { - "language": "kuery", - "query": "" - } - } - }, - "title": "AWS EC2 Network In Bytes ECS", - "uiStateJSON": {}, - "version": 1, - "visState": { - "aggs": [], - "params": { - "annotations": [], - "axis_formatter": "number", - "axis_position": "left", - "axis_scale": "normal", - "background_color_rules": [ - { - "id": "23428b30-f7f2-11e8-bff8-21537b07dd44" - } - ], - "bar_color_rules": [ - { - "id": "2592bcc0-f7f2-11e8-bff8-21537b07dd44" - } - ], - "id": "61ca57f0-469d-11e7-af02-69e470af7417", - "index_pattern": "metricbeat-*", - "interval": "5m", - "series": [ - { - "axis_position": "right", - "chart_type": "line", - "color": "rgba(104,188,0,1)", - "fill": "0", - "filter": "", - "formatter": "number", - "id": "61ca57f1-469d-11e7-af02-69e470af7417", - "label": "AWS EC2 Network In Bytes ECS", - "line_width": 1, - "metrics": [ - { - "field": "aws.ec2.network.in.bytes", - "id": "61ca57f2-469d-11e7-af02-69e470af7417", - "type": "avg" - } - ], - "point_size": 1, - "separate_axis": 0, - "series_drop_last_bucket": 1, - "split_color_mode": "rainbow", - "split_mode": "terms", - "stacked": "none", - "steps": 0, - "terms_field": "cloud.instance.id", - "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417", - "terms_size": "5" - } - ], - "show_grid": 1, - "show_legend": 1, - "time_field": "@timestamp", - "type": "timeseries" - }, - "title": "AWS EC2 Network In Bytes ECS", - "type": "metrics" - } - }, - "id": "15818fd0-f7f9-11e8-af03-c999c9dea608-ecs", - "type": "visualization", - "updated_at": "2018-12-04T19:16:21.453Z", - "version": 1 - }, - { - "attributes": { - "description": "", - "kibanaSavedObjectMeta": { - "searchSourceJSON": { - "filter": [], - "query": { - "language": "kuery", - "query": "" - } - } - }, - "title": "AWS EC2 Network Out Bytes ECS", - "uiStateJSON": {}, - "version": 1, - "visState": { - "aggs": [], - "params": { - "annotations": [], - "axis_formatter": "number", - "axis_position": "left", - "axis_scale": "normal", - "background_color_rules": [ - { - "id": "23428b30-f7f2-11e8-bff8-21537b07dd44" - } - ], - "bar_color_rules": [ - { - "id": "2592bcc0-f7f2-11e8-bff8-21537b07dd44" - } - ], - "id": "61ca57f0-469d-11e7-af02-69e470af7417", - "index_pattern": "metricbeat-*", - "interval": "5m", - "series": [ - { - "axis_position": "right", - "chart_type": "line", - "color": "rgba(104,188,0,1)", - "fill": "0", - "filter": "", - "formatter": "number", - "id": "61ca57f1-469d-11e7-af02-69e470af7417", - "label": "AWS EC2 Network Out Bytes ECS", - "line_width": 1, - "metrics": [ - { - "field": "aws.ec2.network.out.bytes", - "id": "61ca57f2-469d-11e7-af02-69e470af7417", - "type": "avg" - } - ], - "point_size": 1, - "separate_axis": 0, - "series_drop_last_bucket": 1, - "split_color_mode": "rainbow", - "split_mode": "terms", - "stacked": "none", - "steps": 0, - "terms_field": "cloud.instance.id", - "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417", - "terms_size": "5" - } - ], - "show_grid": 1, - "show_legend": 1, - "time_field": "@timestamp", - "type": "timeseries" - }, - "title": "AWS EC2 Network Out Bytes ECS", - "type": "metrics" - } - }, - "id": "233b3400-f7f9-11e8-af03-c999c9dea608-ecs", - "type": "visualization", - "updated_at": "2018-12-04T19:16:44.480Z", - "version": 1 - }, - { - "attributes": { - "description": "", - "kibanaSavedObjectMeta": { - "searchSourceJSON": { - "filter": [], - "query": { - "language": "kuery", - "query": "" - } - } - }, - "title": "AWS EC2 DiskIO Read Bytes ECS", - "uiStateJSON": {}, - "version": 1, - "visState": { - "aggs": [], - "params": { - "annotations": [], - "axis_formatter": "number", - "axis_position": "left", - "axis_scale": "normal", - "background_color_rules": [ - { - "id": "23428b30-f7f2-11e8-bff8-21537b07dd44" - } - ], - "bar_color_rules": [ - { - "id": "2592bcc0-f7f2-11e8-bff8-21537b07dd44" - } - ], - "id": "61ca57f0-469d-11e7-af02-69e470af7417", - "index_pattern": "metricbeat-*", - "interval": "5m", - "series": [ - { - "axis_position": "right", - "chart_type": "line", - "color": "rgba(104,188,0,1)", - "fill": "0", - "filter": "", - "formatter": "number", - "id": "61ca57f1-469d-11e7-af02-69e470af7417", - "label": "AWS EC2 DiskIO Read Bytes ECS", - "line_width": 1, - "metrics": [ - { - "field": "aws.ec2.diskio.read.bytes", - "id": "61ca57f2-469d-11e7-af02-69e470af7417", - "type": "avg" - } - ], - "point_size": 1, - "separate_axis": 0, - "series_drop_last_bucket": 1, - "split_color_mode": "rainbow", - "split_mode": "terms", - "stacked": "none", - "steps": 0, - "terms_field": "cloud.instance.id", - "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417", - "terms_size": "5" - } - ], - "show_grid": 1, - "show_legend": 1, - "time_field": "@timestamp", - "type": "timeseries" - }, - "title": "AWS EC2 DiskIO Read Bytes ECS", - "type": "metrics" - } - }, - "id": "f1db6ec0-f7f8-11e8-af03-c999c9dea608-ecs", - "type": "visualization", - "updated_at": "2018-12-04T19:15:21.644Z", - "version": 1 - }, - { - "attributes": { - "description": "", - "kibanaSavedObjectMeta": { - "searchSourceJSON": { - "filter": [], - "query": { - "language": "kuery", - "query": "" - } - } - }, - "title": "AWS EC2 CPU Utilization ECS", - "uiStateJSON": {}, - "version": 1, - "visState": { - "aggs": [], - "params": { - "annotations": [], - "axis_formatter": "number", - "axis_position": "left", - "axis_scale": "normal", - "background_color_rules": [ - { - "id": "23428b30-f7f2-11e8-bff8-21537b07dd44" - } - ], - "bar_color_rules": [ - { - "id": "2592bcc0-f7f2-11e8-bff8-21537b07dd44" - } - ], - "id": "61ca57f0-469d-11e7-af02-69e470af7417", - "index_pattern": "metricbeat-*", - "interval": "5m", - "series": [ - { - "axis_position": "right", - "chart_type": "line", - "color": "rgba(104,188,0,1)", - "fill": "0", - "filter": "", - "formatter": "number", - "id": "61ca57f1-469d-11e7-af02-69e470af7417", - "label": "AWS EC2 CPU Utilization ECS", - "line_width": 1, - "metrics": [ - { - "field": "aws.ec2.cpu.total.pct", - "id": "61ca57f2-469d-11e7-af02-69e470af7417", - "type": "avg" - } - ], - "point_size": 1, - "separate_axis": 0, - "series_drop_last_bucket": 1, - "split_color_mode": "rainbow", - "split_mode": "terms", - "stacked": "none", - "steps": 0, - "terms_field": "cloud.instance.id", - "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417", - "terms_size": "5" - } - ], - "show_grid": 1, - "show_legend": 1, - "time_field": "@timestamp", - "type": "timeseries" - }, - "title": "AWS EC2 CPU Utilization ECS", - "type": "metrics" - } - }, - "id": "be8828d0-f7f6-11e8-af03-c999c9dea608-ecs", - "type": "visualization", - "updated_at": "2018-12-04T19:14:42.745Z", - "version": 4 - }, - { - "attributes": { - "description": "Overview of AWS EC2 Metrics", - "hits": 0, - "kibanaSavedObjectMeta": { - "searchSourceJSON": { - "filter": [], - "query": { - "language": "kuery", - "query": "" - } - } - }, - "optionsJSON": { - "darkTheme": false, - "hidePanelTitles": false, - "useMargins": true - }, - "panelsJSON": [ - { - "embeddableConfig": {}, - "gridData": { - "h": 15, - "i": "3", - "w": 24, - "x": 24, - "y": 15 + "objects": [ + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "AWS EC2 DiskIO Write Bytes ECS", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "annotations": [], + "axis_formatter": "number", + "axis_position": "left", + "axis_scale": "normal", + "background_color_rules": [ + { + "id": "23428b30-f7f2-11e8-bff8-21537b07dd44" + } + ], + "bar_color_rules": [ + { + "id": "2592bcc0-f7f2-11e8-bff8-21537b07dd44" + } + ], + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "metricbeat-*", + "interval": "5m", + "series": [ + { + "axis_position": "right", + "chart_type": "line", + "color": "rgba(104,188,0,1)", + "fill": "0", + "filter": "", + "formatter": "number", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "label": "AWS EC2 DiskIO Write Bytes ECS", + "line_width": 1, + "metrics": [ + { + "field": "aws.ec2.diskio.write.bytes", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "avg" + } + ], + "point_size": 1, + "separate_axis": 0, + "series_drop_last_bucket": 1, + "split_color_mode": "rainbow", + "split_mode": "terms", + "stacked": "none", + "steps": 0, + "terms_field": "cloud.instance.id", + "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417", + "terms_size": "5" + } + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "@timestamp", + "type": "timeseries" + }, + "title": "AWS EC2 DiskIO Write Bytes ECS", + "type": "metrics" + } }, "id": "fed59380-f7f8-11e8-af03-c999c9dea608-ecs", - "panelIndex": "3", "type": "visualization", - "version": "6.5.0" - }, - { - "embeddableConfig": {}, - "gridData": { - "h": 15, - "i": "5", - "w": 12, - "x": 36, - "y": 0 + "updated_at": "2019-02-08T23:15:16.726Z", + "version": 6 + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "AWS EC2 Status Check Failed ECS", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "axis_formatter": "number", + "axis_position": "left", + "axis_scale": "normal", + "background_color_rules": [ + { + "id": "d13f6b50-f7f6-11e8-bff8-21537b07dd44" + } + ], + "bar_color_rules": [ + { + "id": "ad6d62d0-f7f7-11e8-bff8-21537b07dd44" + } + ], + "gauge_color_rules": [ + { + "id": "b0c5b590-f7f7-11e8-bff8-21537b07dd44" + } + ], + "gauge_inner_width": 10, + "gauge_style": "half", + "gauge_width": 10, + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "metricbeat-*", + "interval": "auto", + "series": [ + { + "axis_position": "right", + "chart_type": "line", + "color": "#68BC00", + "fill": 0.5, + "formatter": "number", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "label": "EC2 Status Check Failed", + "line_width": 1, + "metrics": [ + { + "field": "aws.ec2.status.check_failed", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "sum" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_mode": "everything", + "stacked": "none", + "terms_field": "cloud.instance.id", + "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417" + } + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "@timestamp", + "type": "metric" + }, + "title": "AWS EC2 Status Check Failed ECS", + "type": "metrics" + } }, "id": "9e8c6030-f7f8-11e8-af03-c999c9dea608-ecs", - "panelIndex": "5", "type": "visualization", - "version": "6.5.0" - }, - { - "embeddableConfig": {}, - "gridData": { - "h": 15, - "i": "11", - "w": 24, - "x": 0, - "y": 30 + "updated_at": "2019-02-08T23:15:16.726Z", + "version": 6 + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "AWS EC2 Network In Bytes ECS", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "annotations": [], + "axis_formatter": "number", + "axis_position": "left", + "axis_scale": "normal", + "background_color_rules": [ + { + "id": "23428b30-f7f2-11e8-bff8-21537b07dd44" + } + ], + "bar_color_rules": [ + { + "id": "2592bcc0-f7f2-11e8-bff8-21537b07dd44" + } + ], + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "metricbeat-*", + "interval": "5m", + "series": [ + { + "axis_position": "right", + "chart_type": "line", + "color": "rgba(104,188,0,1)", + "fill": "0", + "filter": "", + "formatter": "number", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "label": "AWS EC2 Network In Bytes ECS", + "line_width": 1, + "metrics": [ + { + "field": "aws.ec2.network.in.bytes", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "avg" + } + ], + "point_size": 1, + "separate_axis": 0, + "series_drop_last_bucket": 1, + "split_color_mode": "rainbow", + "split_mode": "terms", + "stacked": "none", + "steps": 0, + "terms_field": "cloud.instance.id", + "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417", + "terms_size": "5" + } + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "@timestamp", + "type": "timeseries" + }, + "title": "AWS EC2 Network In Bytes ECS", + "type": "metrics" + } }, "id": "15818fd0-f7f9-11e8-af03-c999c9dea608-ecs", - "panelIndex": "11", "type": "visualization", - "version": "6.5.0" - }, - { - "embeddableConfig": {}, - "gridData": { - "h": 15, - "i": "12", - "w": 24, - "x": 24, - "y": 30 + "updated_at": "2019-02-08T23:15:16.726Z", + "version": 6 + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "AWS EC2 Network Out Bytes ECS", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "annotations": [], + "axis_formatter": "number", + "axis_position": "left", + "axis_scale": "normal", + "background_color_rules": [ + { + "id": "23428b30-f7f2-11e8-bff8-21537b07dd44" + } + ], + "bar_color_rules": [ + { + "id": "2592bcc0-f7f2-11e8-bff8-21537b07dd44" + } + ], + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "metricbeat-*", + "interval": "5m", + "series": [ + { + "axis_position": "right", + "chart_type": "line", + "color": "rgba(104,188,0,1)", + "fill": "0", + "filter": "", + "formatter": "number", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "label": "AWS EC2 Network Out Bytes ECS", + "line_width": 1, + "metrics": [ + { + "field": "aws.ec2.network.out.bytes", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "avg" + } + ], + "point_size": 1, + "separate_axis": 0, + "series_drop_last_bucket": 1, + "split_color_mode": "rainbow", + "split_mode": "terms", + "stacked": "none", + "steps": 0, + "terms_field": "cloud.instance.id", + "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417", + "terms_size": "5" + } + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "@timestamp", + "type": "timeseries" + }, + "title": "AWS EC2 Network Out Bytes ECS", + "type": "metrics" + } }, "id": "233b3400-f7f9-11e8-af03-c999c9dea608-ecs", - "panelIndex": "12", "type": "visualization", - "version": "6.5.0" - }, - { - "embeddableConfig": {}, - "gridData": { - "h": 15, - "i": "15", - "w": 24, - "x": 0, - "y": 15 + "updated_at": "2019-02-08T23:15:16.726Z", + "version": 6 + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "AWS EC2 DiskIO Read Bytes ECS", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "annotations": [], + "axis_formatter": "number", + "axis_position": "left", + "axis_scale": "normal", + "background_color_rules": [ + { + "id": "23428b30-f7f2-11e8-bff8-21537b07dd44" + } + ], + "bar_color_rules": [ + { + "id": "2592bcc0-f7f2-11e8-bff8-21537b07dd44" + } + ], + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "metricbeat-*", + "interval": "5m", + "series": [ + { + "axis_position": "right", + "chart_type": "line", + "color": "rgba(104,188,0,1)", + "fill": "0", + "filter": "", + "formatter": "number", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "label": "AWS EC2 DiskIO Read Bytes ECS", + "line_width": 1, + "metrics": [ + { + "field": "aws.ec2.diskio.read.bytes", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "avg" + } + ], + "point_size": 1, + "separate_axis": 0, + "series_drop_last_bucket": 1, + "split_color_mode": "rainbow", + "split_mode": "terms", + "stacked": "none", + "steps": 0, + "terms_field": "cloud.instance.id", + "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417", + "terms_size": "5" + } + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "@timestamp", + "type": "timeseries" + }, + "title": "AWS EC2 DiskIO Read Bytes ECS", + "type": "metrics" + } }, "id": "f1db6ec0-f7f8-11e8-af03-c999c9dea608-ecs", - "panelIndex": "15", "type": "visualization", - "version": "6.5.0" - }, - { - "embeddableConfig": {}, - "gridData": { - "h": 15, - "i": "17", - "w": 36, - "x": 0, - "y": 0 + "updated_at": "2019-02-08T23:15:16.726Z", + "version": 6 + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "AWS EC2 CPU Utilization ECS", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "annotations": [], + "axis_formatter": "number", + "axis_position": "left", + "axis_scale": "normal", + "background_color_rules": [ + { + "id": "23428b30-f7f2-11e8-bff8-21537b07dd44" + } + ], + "bar_color_rules": [ + { + "id": "2592bcc0-f7f2-11e8-bff8-21537b07dd44" + } + ], + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "metricbeat-*", + "interval": "5m", + "series": [ + { + "axis_position": "right", + "chart_type": "line", + "color": "rgba(104,188,0,1)", + "fill": "0", + "filter": "", + "formatter": "number", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "label": "AWS EC2 CPU Utilization ECS", + "line_width": 1, + "metrics": [ + { + "field": "aws.ec2.cpu.total.pct", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "avg" + } + ], + "point_size": 1, + "separate_axis": 0, + "series_drop_last_bucket": 1, + "split_color_mode": "rainbow", + "split_mode": "terms", + "stacked": "none", + "steps": 0, + "terms_field": "cloud.instance.id", + "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417", + "terms_size": "5" + } + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "@timestamp", + "type": "timeseries" + }, + "title": "AWS EC2 CPU Utilization ECS", + "type": "metrics" + } }, "id": "be8828d0-f7f6-11e8-af03-c999c9dea608-ecs", - "panelIndex": "17", "type": "visualization", - "version": "6.5.0" - } - ], - "timeRestore": false, - "title": "[Metricbeat AWS] EC2 Overview ECS", - "version": 1 - }, - "id": "c5846400-f7fb-11e8-af03-c999c9dea608-ecs", - "type": "dashboard", - "updated_at": "2018-12-04T19:35:35.744Z", - "version": 1 - } - ], - "version": "6.5.0" + "updated_at": "2019-02-08T23:15:16.726Z", + "version": 6 + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "AWS Filters ECS", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "controls": [ + { + "fieldName": "cloud.region", + "id": "1549397251041", + "indexPattern": "metricbeat-*", + "label": "region", + "options": { + "dynamicOptions": true, + "multiselect": true, + "order": "desc", + "size": 5, + "type": "terms" + }, + "parent": "", + "type": "list" + }, + { + "fieldName": "cloud.availability_zone", + "id": "1549512126406", + "indexPattern": "metricbeat-*", + "label": "availability zone", + "options": { + "dynamicOptions": true, + "multiselect": true, + "order": "desc", + "size": 5, + "type": "terms" + }, + "parent": "", + "type": "list" + }, + { + "fieldName": "cloud.machine.type", + "id": "1549512142947", + "indexPattern": "metricbeat-*", + "label": "machine type", + "options": { + "dynamicOptions": true, + "multiselect": true, + "order": "desc", + "size": 5, + "type": "terms" + }, + "parent": "", + "type": "list" + } + ], + "pinFilters": false, + "updateFiltersOnChange": true, + "useTimeFilter": false + }, + "title": "AWS Filters ECS", + "type": "input_control_vis" + } + }, + "id": "deab0260-2981-11e9-86eb-a3a07a77f530", + "type": "visualization", + "updated_at": "2019-02-08T23:32:53.876Z", + "version": 12 + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "index": "metricbeat-*", + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "AWS EC2 Instance State ECS", + "uiStateJSON": { + "vis": { + "colors": { + "16": "#629E51", + "272": "#DEDAF7", + "80": "#E24D42", + "running": "#7EB26D", + "stopped": "#E24D42" + }, + "legendOpen": true + } + }, + "version": 1, + "visState": { + "aggs": [ + { + "enabled": true, + "id": "1", + "params": { + "customLabel": "EC2 Instance State" + }, + "schema": "metric", + "type": "count" + }, + { + "enabled": true, + "id": "2", + "params": { + "customLabel": "", + "field": "aws.ec2.instance.state.name", + "missingBucket": false, + "missingBucketLabel": "Missing", + "order": "desc", + "orderBy": "1", + "otherBucket": false, + "otherBucketLabel": "Other", + "size": 5 + }, + "schema": "segment", + "type": "terms" + } + ], + "params": { + "addLegend": true, + "addTooltip": true, + "isDonut": false, + "labels": { + "last_level": true, + "show": true, + "truncate": 100, + "values": true + }, + "legendPosition": "right", + "type": "pie" + }, + "title": "AWS EC2 Instance State ECS", + "type": "pie" + } + }, + "id": "09db13f0-2bdd-11e9-9fe1-cde861544141", + "type": "visualization", + "updated_at": "2019-02-09T00:03:45.800Z", + "version": 5 + }, + { + "attributes": { + "description": "Overview of AWS EC2 Metrics", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "optionsJSON": { + "darkTheme": false, + "hidePanelTitles": false, + "useMargins": true + }, + "panelsJSON": [ + { + "embeddableConfig": {}, + "gridData": { + "h": 15, + "i": "3", + "w": 24, + "x": 24, + "y": 27 + }, + "id": "fed59380-f7f8-11e8-af03-c999c9dea608-ecs", + "panelIndex": "3", + "type": "visualization", + "version": "6.5.0" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 12, + "i": "5", + "w": 12, + "x": 36, + "y": 0 + }, + "id": "9e8c6030-f7f8-11e8-af03-c999c9dea608-ecs", + "panelIndex": "5", + "type": "visualization", + "version": "6.5.0" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 15, + "i": "11", + "w": 24, + "x": 0, + "y": 42 + }, + "id": "15818fd0-f7f9-11e8-af03-c999c9dea608-ecs", + "panelIndex": "11", + "type": "visualization", + "version": "6.5.0" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 15, + "i": "12", + "w": 24, + "x": 24, + "y": 42 + }, + "id": "233b3400-f7f9-11e8-af03-c999c9dea608-ecs", + "panelIndex": "12", + "type": "visualization", + "version": "6.5.0" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 15, + "i": "15", + "w": 24, + "x": 0, + "y": 27 + }, + "id": "f1db6ec0-f7f8-11e8-af03-c999c9dea608-ecs", + "panelIndex": "15", + "type": "visualization", + "version": "6.5.0" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 15, + "i": "17", + "w": 48, + "x": 0, + "y": 12 + }, + "id": "be8828d0-f7f6-11e8-af03-c999c9dea608-ecs", + "panelIndex": "17", + "type": "visualization", + "version": "6.5.0" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 12, + "i": "18", + "w": 17, + "x": 0, + "y": 0 + }, + "id": "deab0260-2981-11e9-86eb-a3a07a77f530", + "panelIndex": "18", + "type": "visualization", + "version": "6.6.0" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 12, + "i": "19", + "w": 19, + "x": 17, + "y": 0 + }, + "id": "09db13f0-2bdd-11e9-9fe1-cde861544141", + "panelIndex": "19", + "type": "visualization", + "version": "6.6.0" + } + ], + "timeRestore": false, + "title": "[Metricbeat AWS] EC2 Overview ECS", + "version": 1 + }, + "id": "c5846400-f7fb-11e8-af03-c999c9dea608-ecs", + "type": "dashboard", + "updated_at": "2019-02-09T00:05:11.360Z", + "version": 9 + } + ], + "version": "6.6.0" } diff --git a/x-pack/metricbeat/modules.d/aws.yml.disabled b/x-pack/metricbeat/modules.d/aws.yml.disabled index ea00f7efe40..ccb5317ce09 100644 --- a/x-pack/metricbeat/modules.d/aws.yml.disabled +++ b/x-pack/metricbeat/modules.d/aws.yml.disabled @@ -1,6 +1,7 @@ - module: aws period: 300s - metricsets: ["ec2"] + metricsets: + - "ec2" access_key_id: '${AWS_ACCESS_KEY_ID:""}' secret_access_key: '${AWS_SECRET_ACCESS_KEY:""}' session_token: '${AWS_SESSION_TOKEN:""}' From 589fd32ef311ec68369810b05479ca890882f95f Mon Sep 17 00:00:00 2001 From: kaiyan-sheng Date: Tue, 19 Feb 2019 10:05:52 -0700 Subject: [PATCH 051/332] Remove metricIDNameMap and use ListMetrics to construct metric queries (#10627) * Remove metricNameIDMap and use ListMetrics to construct metric queries * Add utils.go to put common functions for all metricsets * Remove fields that dont need to apply schema * Remove s.Optional in schema and use s.FailOnRequired instead * Regenerate data,json * Move GetMetricDataResults into utils.go * Replace with report.error * Separating TestData from TestFetch * Move two functions only used by integration tests into a separate file * Move aws_testing.go under mtest --- x-pack/metricbeat/module/aws/aws.go | 5 + .../metricbeat/module/aws/ec2/_meta/data.json | 34 +-- x-pack/metricbeat/module/aws/ec2/data.go | 81 ++---- x-pack/metricbeat/module/aws/ec2/ec2.go | 255 ++++++++---------- .../module/aws/ec2/ec2_integration_test.go | 145 ++++------ x-pack/metricbeat/module/aws/ec2/ec2_test.go | 164 +++++------ .../module/aws/mtest/integration.go | 83 ++++++ x-pack/metricbeat/module/aws/utils.go | 86 ++++++ x-pack/metricbeat/module/aws/utils_test.go | 171 ++++++++++++ 9 files changed, 611 insertions(+), 413 deletions(-) create mode 100644 x-pack/metricbeat/module/aws/mtest/integration.go create mode 100644 x-pack/metricbeat/module/aws/utils.go create mode 100644 x-pack/metricbeat/module/aws/utils_test.go diff --git a/x-pack/metricbeat/module/aws/aws.go b/x-pack/metricbeat/module/aws/aws.go index 9b2f23cc43c..d120d8d0654 100644 --- a/x-pack/metricbeat/module/aws/aws.go +++ b/x-pack/metricbeat/module/aws/aws.go @@ -81,6 +81,11 @@ func NewMetricSet(base mb.BaseMetricSet) (*MetricSet, error) { } // Calculate duration based on period + if config.Period == "" { + err = errors.New("period is not set in AWS module config") + return nil, err + } + durationString, periodSec, err := convertPeriodToDuration(config.Period) if err != nil { return nil, err diff --git a/x-pack/metricbeat/module/aws/ec2/_meta/data.json b/x-pack/metricbeat/module/aws/ec2/_meta/data.json index d753f58ef13..eba6c8d66cd 100644 --- a/x-pack/metricbeat/module/aws/ec2/_meta/data.json +++ b/x-pack/metricbeat/module/aws/ec2/_meta/data.json @@ -7,12 +7,12 @@ "aws": { "ec2": { "cpu": { - "credit_balance": 169.089216, - "credit_usage": 0.002926, + "credit_balance": 576, + "credit_usage": 0.144723, "surplus_credit_balance": 0, "surplus_credits_charged": 0, "total": { - "pct": 0.033333333333322 + "pct": 1.366194313233248 } }, "diskio": { @@ -27,21 +27,21 @@ }, "instance": { "core": { - "count": 1 + "count": 2 }, "image": { - "id": "ami-01e24be29428c15b2" + "id": "ami-f920cd94" }, "monitoring": { "state": "disabled" }, "private": { - "dns_name": "ip-172-31-26-12.us-west-2.compute.internal", - "ip": "172.31.26.12" + "dns_name": "ip-10-0-0-148.ec2.internal", + "ip": "10.0.0.148" }, "public": { - "dns_name": "ec2-34-217-213-210.us-west-2.compute.amazonaws.com", - "ip": "34.217.213.210" + "dns_name": "ec2-54-226-109-162.compute-1.amazonaws.com", + "ip": "54.226.109.162" }, "state": { "code": 16, @@ -51,12 +51,12 @@ }, "network": { "in": { - "bytes": 296.6, - "packets": 3 + "bytes": 737000.4, + "packets": 1361.2 }, "out": { - "bytes": 269, - "packets": 3.6 + "bytes": 227871.2, + "packets": 1411.2 } }, "status": { @@ -67,15 +67,15 @@ } }, "cloud": { - "availability_zone": "us-west-2a", + "availability_zone": "us-east-1b", "instance": { - "id": "i-077bdaf7e5d81bba3" + "id": "i-77f84332" }, "machine": { - "type": "t2.micro" + "type": "t2.medium" }, "provider": "ec2", - "region": "us-west-2" + "region": "us-east-1" }, "event": { "dataset": "aws.ec2", diff --git a/x-pack/metricbeat/module/aws/ec2/data.go b/x-pack/metricbeat/module/aws/ec2/data.go index e73e8309c1f..12599b32d87 100644 --- a/x-pack/metricbeat/module/aws/ec2/data.go +++ b/x-pack/metricbeat/module/aws/ec2/data.go @@ -5,7 +5,6 @@ package ec2 import ( - "github.com/elastic/beats/libbeat/common" s "github.com/elastic/beats/libbeat/common/schema" c "github.com/elastic/beats/libbeat/common/schema/mapstrstr" ) @@ -14,85 +13,37 @@ var ( schemaMetricSetFields = s.Schema{ "cpu": s.Object{ "total": s.Object{ - "pct": c.Float("cpu.total.pct", s.Optional), + "pct": c.Float("CPUUtilization"), }, - "credit_usage": c.Float("cpu.credit_usage", s.Optional), - "credit_balance": c.Float("cpu.credit_balance", s.Optional), - "surplus_credit_balance": c.Float("cpu.surplus_credit_balance", s.Optional), - "surplus_credits_charged": c.Float("cpu.surplus_credits_charged", s.Optional), + "credit_usage": c.Float("CPUCreditUsage"), + "credit_balance": c.Float("CPUCreditBalance"), + "surplus_credit_balance": c.Float("CPUSurplusCreditBalance"), + "surplus_credits_charged": c.Float("CPUSurplusCreditsCharged"), }, "diskio": s.Object{ "read": s.Object{ - "bytes": c.Float("diskio.read.bytes", s.Optional), - "count": c.Float("diskio.read.count", s.Optional), + "bytes": c.Float("DiskReadBytes"), + "count": c.Float("DiskReadOps"), }, "write": s.Object{ - "bytes": c.Float("diskio.write.bytes", s.Optional), - "count": c.Float("diskio.write.count", s.Optional), + "bytes": c.Float("DiskWriteBytes"), + "count": c.Float("DiskWriteOps"), }, }, "network": s.Object{ "in": s.Object{ - "bytes": c.Float("network.in.bytes", s.Optional), - "packets": c.Float("network.in.packets", s.Optional), + "bytes": c.Float("NetworkIn"), + "packets": c.Float("NetworkPacketsIn"), }, "out": s.Object{ - "bytes": c.Float("network.out.bytes", s.Optional), - "packets": c.Float("network.out.packets", s.Optional), + "bytes": c.Float("NetworkOut"), + "packets": c.Float("NetworkPacketsOut"), }, }, "status": s.Object{ - "check_failed": c.Int("status.check_failed", s.Optional), - "check_failed_instance": c.Int("status.check_failed_instance", s.Optional), - "check_failed_system": c.Int("status.check_failed_system", s.Optional), - }, - "instance": s.Object{ - "image": s.Object{ - "id": c.Str("instance.image.id", s.Optional), - }, - "state": s.Object{ - "name": c.Str("instance.state.name", s.Optional), - "code": c.Int("instance.state.code", s.Optional), - }, - "monitoring": s.Object{ - "state": c.Str("instance.monitoring.state", s.Optional), - }, - "core": s.Object{ - "count": c.Int("instance.core.count", s.Optional), - }, - "threads_per_core": c.Int("instance.threads_per_core", s.Optional), - "public": s.Object{ - "ip": c.Str("instance.public.ip", s.Optional), - "dns_name": c.Str("instance.public.dns_name", s.Optional), - }, - "private": s.Object{ - "ip": c.Str("instance.private.ip", s.Optional), - "dns_name": c.Str("instance.private.dns_name", s.Optional), - }, - }, - } -) - -var ( - schemaRootFields = s.Schema{ - "service": s.Object{ - "name": c.Str("service.name", s.Optional), - }, - "cloud": s.Object{ - "provider": c.Str("cloud.provider", s.Optional), - "availability_zone": c.Str("cloud.availability_zone", s.Optional), - "region": c.Str("cloud.region", s.Optional), - "instance": s.Object{ - "id": c.Str("cloud.instance.id", s.Optional), - "name": c.Str("cloud.instance.name", s.Optional), - }, - "machine": s.Object{ - "type": c.Str("cloud.machine.type", s.Optional), - }, + "check_failed": c.Int("StatusCheckFailed"), + "check_failed_instance": c.Int("StatusCheckFailed_Instance"), + "check_failed_system": c.Int("StatusCheckFailed_System"), }, } ) - -func eventMapping(input map[string]interface{}, schema s.Schema) (common.MapStr, error) { - return schema.Apply(input) -} diff --git a/x-pack/metricbeat/module/aws/ec2/ec2.go b/x-pack/metricbeat/module/aws/ec2/ec2.go index a4c0bf18b62..96b459cc6f2 100644 --- a/x-pack/metricbeat/module/aws/ec2/ec2.go +++ b/x-pack/metricbeat/module/aws/ec2/ec2.go @@ -6,10 +6,10 @@ package ec2 import ( "fmt" - "time" + "strconv" + "strings" "github.com/aws/aws-sdk-go-v2/service/cloudwatch" - "github.com/aws/aws-sdk-go-v2/service/cloudwatch/cloudwatchiface" "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/ec2iface" "github.com/pkg/errors" @@ -41,42 +41,10 @@ type MetricSet struct { logger *logp.Logger } -// metricIDNameMap is a translating map between createMetricDataQuery id -// and aws ec2 module metric name, cloudwatch ec2 metric name. -var metricIDNameMap = map[string][]string{ - "cpu1": {"cpu.total.pct", "CPUUtilization"}, - "cpu2": {"cpu.credit_usage", "CPUCreditUsage"}, - "cpu3": {"cpu.credit_balance", "CPUCreditBalance"}, - "cpu4": {"cpu.surplus_credit_balance", "CPUSurplusCreditBalance"}, - "cpu5": {"cpu.surplus_credits_charged", "CPUSurplusCreditsCharged"}, - "network1": {"network.in.packets", "NetworkPacketsIn"}, - "network2": {"network.out.packets", "NetworkPacketsOut"}, - "network3": {"network.in.bytes", "NetworkIn"}, - "network4": {"network.out.bytes", "NetworkOut"}, - "disk1": {"diskio.read.bytes", "DiskReadBytes"}, - "disk2": {"diskio.write.bytes", "DiskWriteBytes"}, - "disk3": {"diskio.read.count", "DiskReadOps"}, - "disk4": {"diskio.write.count", "DiskWriteOps"}, - "status1": {"status.check_failed", "StatusCheckFailed"}, - "status2": {"status.check_failed_system", "StatusCheckFailed_System"}, - "status3": {"status.check_failed_instance", "StatusCheckFailed_Instance"}, -} - // New creates a new instance of the MetricSet. New is responsible for unpacking // any MetricSet specific configuration options if there are any. func New(base mb.BaseMetricSet) (mb.MetricSet, error) { ec2Logger := logp.NewLogger(aws.ModuleName) - - moduleConfig := aws.Config{} - if err := base.Module().UnpackConfig(&moduleConfig); err != nil { - return nil, err - } - - if moduleConfig.Period == "" { - err := errors.New("period is not set in AWS module config") - ec2Logger.Error(err) - } - metricSet, err := aws.NewMetricSet(base) if err != nil { return nil, errors.Wrap(err, "error creating aws metricset") @@ -102,6 +70,14 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // format. It publishes the event which is then forwarded to the output. In case // of an error set the Error field of mb.Event or simply call report.Error(). func (m *MetricSet) Fetch(report mb.ReporterV2) { + // Get startTime and endTime + startTime, endTime, err := aws.GetStartTimeEndTime(m.DurationString) + if err != nil { + m.logger.Error(errors.Wrap(err, "Error ParseDuration")) + report.Error(err) + return + } + for _, regionName := range m.MetricSet.RegionsList { m.MetricSet.AwsConfig.Region = regionName svcEC2 := ec2.New(*m.MetricSet.AwsConfig) @@ -114,30 +90,46 @@ func (m *MetricSet) Fetch(report mb.ReporterV2) { } svcCloudwatch := cloudwatch.New(*m.MetricSet.AwsConfig) + namespace := "AWS/EC2" + listMetricsOutput, err := aws.GetListMetricsOutput(namespace, regionName, svcCloudwatch) + if err != nil { + m.logger.Error(err.Error()) + report.Error(err) + continue + } + + if listMetricsOutput == nil || len(listMetricsOutput) == 0 { + continue + } + for _, instanceID := range instanceIDs { - init := true - getMetricDataOutput := &cloudwatch.GetMetricDataOutput{NextToken: nil} - for init || getMetricDataOutput.NextToken != nil { - init = false - output, err := getMetricDataPerRegion(m.MetricSet.DurationString, m.MetricSet.PeriodInSec, instanceID, getMetricDataOutput.NextToken, svcCloudwatch) - if err != nil { - err = errors.Wrap(err, "getMetricDataPerRegion failed, skipping region "+regionName+" for instance "+instanceID) - m.logger.Error(err.Error()) - report.Error(err) - continue - } - getMetricDataOutput.MetricDataResults = append(getMetricDataOutput.MetricDataResults, output.MetricDataResults...) + if instanceID != "i-77f84332" { + continue + } + + metricDataQueries := constructMetricQueries(listMetricsOutput, instanceID, m.PeriodInSec) + if len(metricDataQueries) == 0 { + continue } - event, info, err := createCloudWatchEvents(getMetricDataOutput, instanceID, instancesOutputs[instanceID], regionName) + // Use metricDataQueries to make GetMetricData API calls + metricDataOutput, err := aws.GetMetricDataResults(metricDataQueries, svcCloudwatch, startTime, endTime) + if err != nil { + err = errors.Wrap(err, "GetMetricDataResults failed, skipping region "+regionName+" for instance "+instanceID) + m.logger.Error(err.Error()) + report.Error(err) + continue + } + + // Create Cloudwatch Events for EC2 + event, info, err := createCloudWatchEvents(metricDataOutput, instanceID, instancesOutputs[instanceID], regionName) if info != "" { m.logger.Info(info) } if err != nil { m.logger.Error(err.Error()) - event.Error = err - report.Event(event) + report.Error(err) continue } report.Event(event) @@ -145,34 +137,57 @@ func (m *MetricSet) Fetch(report mb.ReporterV2) { } } -func createCloudWatchEvents(getMetricDataOutput *cloudwatch.GetMetricDataOutput, instanceID string, instanceOutput ec2.Instance, regionName string) (event mb.Event, info string, err error) { +func constructMetricQueries(listMetricsOutput []cloudwatch.Metric, instanceID string, periodInSec int) []cloudwatch.MetricDataQuery { + metricDataQueries := []cloudwatch.MetricDataQuery{} + metricDataQueryEmpty := cloudwatch.MetricDataQuery{} + for i, listMetric := range listMetricsOutput { + metricDataQuery := createMetricDataQuery(listMetric, instanceID, i, periodInSec) + if metricDataQuery == metricDataQueryEmpty { + continue + } + metricDataQueries = append(metricDataQueries, metricDataQuery) + } + return metricDataQueries +} + +func createCloudWatchEvents(getMetricDataResults []cloudwatch.MetricDataResult, instanceID string, instanceOutput ec2.Instance, regionName string) (event mb.Event, info string, err error) { event.Service = metricsetName event.RootFields = common.MapStr{} - mapOfRootFieldsResults := make(map[string]interface{}) - mapOfRootFieldsResults["service.name"] = metricsetName - // Cloud fields in ECS - mapOfRootFieldsResults["cloud.provider"] = metricsetName - mapOfRootFieldsResults["cloud.availability_zone"] = *instanceOutput.Placement.AvailabilityZone - mapOfRootFieldsResults["cloud.region"] = regionName - mapOfRootFieldsResults["cloud.instance.id"] = instanceID machineType, err := instanceOutput.InstanceType.MarshalValue() if err != nil { err = errors.Wrap(err, "instance.InstanceType.MarshalValue failed") return } - mapOfRootFieldsResults["cloud.machine.type"] = machineType - resultRootFields, err := eventMapping(mapOfRootFieldsResults, schemaRootFields) + event.RootFields.Put("service.name", metricsetName) + event.RootFields.Put("cloud.provider", metricsetName) + event.RootFields.Put("cloud.availability_zone", *instanceOutput.Placement.AvailabilityZone) + event.RootFields.Put("cloud.region", regionName) + event.RootFields.Put("cloud.instance.id", instanceID) + event.RootFields.Put("cloud.machine.type", machineType) + + // AWS EC2 Metrics + mapOfMetricSetFieldResults := make(map[string]interface{}) + for _, output := range getMetricDataResults { + if len(output.Values) == 0 { + continue + } + labels := strings.Split(*output.Label, " ") + mapOfMetricSetFieldResults[labels[1]] = fmt.Sprint(output.Values[0]) + } + + resultMetricSetFields, err := aws.EventMapping(mapOfMetricSetFieldResults, schemaMetricSetFields) if err != nil { - err = errors.Wrap(err, "Error trying to apply schema schemaRootFields in AWS EC2 metricbeat module.") + err = errors.Wrap(err, "Error trying to apply schema schemaMetricSetFields in AWS EC2 metricbeat module.") return } - event.RootFields = resultRootFields - // AWS EC2 Metrics - mapOfMetricSetFieldResults := make(map[string]interface{}) - mapOfMetricSetFieldResults["instance.image.id"] = *instanceOutput.ImageId + if len(mapOfMetricSetFieldResults) <= 11 { + info = "Missing Cloudwatch data for instance " + instanceID + ". This is expected for a new instance during the " + + "first data collection. If this shows up multiple times, please recheck the period setting in config." + } + instanceStateName, err := instanceOutput.State.Name.MarshalValue() if err != nil { err = errors.Wrap(err, "instance.State.Name.MarshalValue failed") @@ -185,42 +200,23 @@ func createCloudWatchEvents(getMetricDataOutput *cloudwatch.GetMetricDataOutput, return } - mapOfMetricSetFieldResults["instance.state.name"] = instanceStateName - mapOfMetricSetFieldResults["instance.state.code"] = fmt.Sprint(*instanceOutput.State.Code) - mapOfMetricSetFieldResults["instance.monitoring.state"] = monitoringState - mapOfMetricSetFieldResults["instance.core.count"] = fmt.Sprint(*instanceOutput.CpuOptions.CoreCount) - mapOfMetricSetFieldResults["instance.threads_per_core"] = fmt.Sprint(*instanceOutput.CpuOptions.ThreadsPerCore) + resultMetricSetFields.Put("instance.image.id", *instanceOutput.ImageId) + resultMetricSetFields.Put("instance.state.name", instanceStateName) + resultMetricSetFields.Put("instance.state.code", *instanceOutput.State.Code) + resultMetricSetFields.Put("instance.monitoring.state", monitoringState) + resultMetricSetFields.Put("instance.core.count", *instanceOutput.CpuOptions.CoreCount) + resultMetricSetFields.Put("instance.threads_per_core", *instanceOutput.CpuOptions.ThreadsPerCore) publicIP := instanceOutput.PublicIpAddress if publicIP != nil { - mapOfMetricSetFieldResults["instance.public.ip"] = *publicIP + resultMetricSetFields.Put("instance.public.ip", *publicIP) } - - mapOfMetricSetFieldResults["instance.public.dns_name"] = *instanceOutput.PublicDnsName - mapOfMetricSetFieldResults["instance.private.dns_name"] = *instanceOutput.PrivateDnsName + resultMetricSetFields.Put("instance.public.dns_name", *instanceOutput.PublicDnsName) + resultMetricSetFields.Put("instance.private.dns_name", *instanceOutput.PrivateDnsName) privateIP := instanceOutput.PrivateIpAddress if privateIP != nil { - mapOfMetricSetFieldResults["instance.private.ip"] = *privateIP - } - - for _, output := range getMetricDataOutput.MetricDataResults { - if len(output.Values) == 0 { - continue - } - metricKey := metricIDNameMap[*output.Id] - mapOfMetricSetFieldResults[metricKey[0]] = fmt.Sprint(output.Values[0]) + resultMetricSetFields.Put("instance.private.ip", *privateIP) } - if len(mapOfMetricSetFieldResults) <= 11 { - info = "Missing Cloudwatch data for instance " + instanceID + ". This is expected for a new instance during the " + - "first data collection. If this shows up multiple times, please recheck the period setting in config." - return - } - - resultMetricSetFields, err := eventMapping(mapOfMetricSetFieldResults, schemaMetricSetFields) - if err != nil { - err = errors.Wrap(err, "Error trying to apply schema schemaMetricSetFields in AWS EC2 metricbeat module.") - return - } event.MetricSetFields = resultMetricSetFields return } @@ -249,62 +245,27 @@ func getInstancesPerRegion(svc ec2iface.EC2API) (instanceIDs []string, instances return } -func getMetricDataPerRegion(durationString string, periodInSec int, instanceID string, nextToken *string, svc cloudwatchiface.CloudWatchAPI) (*cloudwatch.GetMetricDataOutput, error) { - endTime := time.Now() - duration, err := time.ParseDuration(durationString) - if err != nil { - logp.Error(errors.Wrap(err, "Error ParseDuration")) - return nil, err - } - - startTime := endTime.Add(duration) - - dimName := "InstanceId" - dim := cloudwatch.Dimension{ - Name: &dimName, - Value: &instanceID, - } - - metricDataQueries := []cloudwatch.MetricDataQuery{} - for metricID, metricName := range metricIDNameMap { - metricDataQuery := createMetricDataQuery(metricID, metricName[1], periodInSec, []cloudwatch.Dimension{dim}) - metricDataQueries = append(metricDataQueries, metricDataQuery) - } - - getMetricDataInput := &cloudwatch.GetMetricDataInput{ - NextToken: nextToken, - StartTime: &startTime, - EndTime: &endTime, - MetricDataQueries: metricDataQueries, - } - - req := svc.GetMetricDataRequest(getMetricDataInput) - getMetricDataOutput, err := req.Send() - if err != nil { - logp.Error(errors.Wrap(err, "Error GetMetricDataInput")) - return nil, err - } - return getMetricDataOutput, nil -} - -func createMetricDataQuery(id string, metricName string, periodInSec int, dimensions []cloudwatch.Dimension) (metricDataQuery cloudwatch.MetricDataQuery) { - namespace := "AWS/EC2" +func createMetricDataQuery(metric cloudwatch.Metric, instanceID string, index int, periodInSec int) (metricDataQuery cloudwatch.MetricDataQuery) { statistic := "Average" period := int64(periodInSec) - - metric := cloudwatch.Metric{ - Namespace: &namespace, - MetricName: &metricName, - Dimensions: dimensions, - } - - metricDataQuery = cloudwatch.MetricDataQuery{ - Id: &id, - MetricStat: &cloudwatch.MetricStat{ - Period: &period, - Stat: &statistic, - Metric: &metric, - }, + id := "e" + strconv.Itoa(index) + metricDims := metric.Dimensions + + for _, dim := range metricDims { + if *dim.Name == "InstanceId" && *dim.Value == instanceID { + metricName := *metric.MetricName + label := instanceID + " " + metricName + metricDataQuery = cloudwatch.MetricDataQuery{ + Id: &id, + MetricStat: &cloudwatch.MetricStat{ + Period: &period, + Stat: &statistic, + Metric: &metric, + }, + Label: &label, + } + return + } } return } diff --git a/x-pack/metricbeat/module/aws/ec2/ec2_integration_test.go b/x-pack/metricbeat/module/aws/ec2/ec2_integration_test.go index 1c75f450886..6525e3f3b7c 100644 --- a/x-pack/metricbeat/module/aws/ec2/ec2_integration_test.go +++ b/x-pack/metricbeat/module/aws/ec2/ec2_integration_test.go @@ -2,116 +2,75 @@ // or more contributor license agreements. Licensed under the Elastic License; // you may not use this file except in compliance with the Elastic License. -// +build integration - package ec2 import ( - "os" "testing" "github.com/stretchr/testify/assert" - "github.com/elastic/beats/metricbeat/mb" mbtest "github.com/elastic/beats/metricbeat/mb/testing" + "github.com/elastic/beats/x-pack/metricbeat/module/aws/mtest" ) func TestFetch(t *testing.T) { - accessKeyID, okAccessKeyID := os.LookupEnv("AWS_ACCESS_KEY_ID") - secretAccessKey, okSecretAccessKey := os.LookupEnv("AWS_SECRET_ACCESS_KEY") - sessionToken, okSessionToken := os.LookupEnv("AWS_SESSION_TOKEN") - defaultRegion, _ := os.LookupEnv("AWS_REGION") - - if !okAccessKeyID || accessKeyID == "" { - t.Skip("Skipping TestFetch; $AWS_ACCESS_KEY_ID not set or set to empty") - } else if !okSecretAccessKey || secretAccessKey == "" { - t.Skip("Skipping TestFetch; $AWS_SECRET_ACCESS_KEY not set or set to empty") - } else { - tempCreds := map[string]interface{}{ - "module": "aws", - "period": "300s", - "metricsets": []string{"ec2"}, - "access_key_id": accessKeyID, - "secret_access_key": secretAccessKey, - "default_region": defaultRegion, - } - - if okSessionToken && sessionToken != "" { - tempCreds["session_token"] = sessionToken - } - - ec2MetricSet := mbtest.NewReportingMetricSetV2(t, tempCreds) - events, errs := mbtest.ReportingFetchV2(ec2MetricSet) - if errs != nil { - t.Skip("Skipping TestFetch: failed to make api calls. Please check $AWS_ACCESS_KEY_ID, " + - "$AWS_SECRET_ACCESS_KEY and $AWS_SESSION_TOKEN in config.yml") - } + config, info := mtest.GetConfigForTest("ec2") + if info != "" { + t.Skip("Skipping TestFetch: " + info) + } - assert.Empty(t, errs) - if !assert.NotEmpty(t, events) { - t.FailNow() - } - t.Logf("Module: %s Metricset: %s", ec2MetricSet.Module().Name(), ec2MetricSet.Name()) + ec2MetricSet := mbtest.NewReportingMetricSetV2(t, config) + events, errs := mbtest.ReportingFetchV2(ec2MetricSet) + if errs != nil { + t.Skip("Skipping TestFetch: failed to make api calls. Please check $AWS_ACCESS_KEY_ID, " + + "$AWS_SECRET_ACCESS_KEY and $AWS_SESSION_TOKEN in config.yml") + } - for _, event := range events { - // RootField - checkEventField("service.name", "string", event, t) - checkEventField("cloud.availability_zone", "string", event, t) - checkEventField("cloud.provider", "string", event, t) - checkEventField("cloud.image.id", "string", event, t) - checkEventField("cloud.instance.id", "string", event, t) - checkEventField("cloud.machine.type", "string", event, t) - checkEventField("cloud.provider", "string", event, t) - checkEventField("cloud.region", "string", event, t) - // MetricSetField - checkEventField("cpu.total.pct", "float", event, t) - checkEventField("cpu.credit_usage", "float", event, t) - checkEventField("cpu.credit_balance", "float", event, t) - checkEventField("cpu.surplus_credit_balance", "float", event, t) - checkEventField("cpu.surplus_credits_charged", "float", event, t) - checkEventField("network.in.packets", "float", event, t) - checkEventField("network.out.packets", "float", event, t) - checkEventField("network.in.bytes", "float", event, t) - checkEventField("network.out.bytes", "float", event, t) - checkEventField("diskio.read.bytes", "float", event, t) - checkEventField("diskio.write.bytes", "float", event, t) - checkEventField("diskio.read.ops", "float", event, t) - checkEventField("diskio.write.ops", "float", event, t) - checkEventField("status.check_failed", "int", event, t) - checkEventField("status.check_failed_system", "int", event, t) - checkEventField("status.check_failed_instance", "int", event, t) - } + assert.Empty(t, errs) + if !assert.NotEmpty(t, events) { + t.FailNow() + } + t.Logf("Module: %s Metricset: %s", ec2MetricSet.Module().Name(), ec2MetricSet.Name()) - err := mbtest.WriteEventsReporterV2(ec2MetricSet, t, "/") - if err != nil { - t.Fatal("write", err) - } + for _, event := range events { + // RootField + mtest.CheckEventField("service.name", "string", event, t) + mtest.CheckEventField("cloud.availability_zone", "string", event, t) + mtest.CheckEventField("cloud.provider", "string", event, t) + mtest.CheckEventField("cloud.image.id", "string", event, t) + mtest.CheckEventField("cloud.instance.id", "string", event, t) + mtest.CheckEventField("cloud.machine.type", "string", event, t) + mtest.CheckEventField("cloud.provider", "string", event, t) + mtest.CheckEventField("cloud.region", "string", event, t) + // MetricSetField + mtest.CheckEventField("cpu.total.pct", "float", event, t) + mtest.CheckEventField("cpu.credit_usage", "float", event, t) + mtest.CheckEventField("cpu.credit_balance", "float", event, t) + mtest.CheckEventField("cpu.surplus_credit_balance", "float", event, t) + mtest.CheckEventField("cpu.surplus_credits_charged", "float", event, t) + mtest.CheckEventField("network.in.packets", "float", event, t) + mtest.CheckEventField("network.out.packets", "float", event, t) + mtest.CheckEventField("network.in.bytes", "float", event, t) + mtest.CheckEventField("network.out.bytes", "float", event, t) + mtest.CheckEventField("diskio.read.bytes", "float", event, t) + mtest.CheckEventField("diskio.write.bytes", "float", event, t) + mtest.CheckEventField("diskio.read.ops", "float", event, t) + mtest.CheckEventField("diskio.write.ops", "float", event, t) + mtest.CheckEventField("status.check_failed", "int", event, t) + mtest.CheckEventField("status.check_failed_system", "int", event, t) + mtest.CheckEventField("status.check_failed_instance", "int", event, t) } } -func checkEventField(metricName string, expectedType string, event mb.Event, t *testing.T) { - if ok, err := event.MetricSetFields.HasKey(metricName); ok { - assert.NoError(t, err) - metricValue, err := event.MetricSetFields.GetValue(metricName) - assert.NoError(t, err) +func TestData(t *testing.T) { + config, info := mtest.GetConfigForTest("ec2") + if info != "" { + t.Skip("Skipping TestData: " + info) + } - switch metricValue.(type) { - case float64: - if expectedType != "float" { - t.Log("Failed: Field " + metricName + " is not in type " + expectedType) - t.Fail() - } - case string: - if expectedType != "string" { - t.Log("Failed: Field " + metricName + " is not in type " + expectedType) - t.Fail() - } - case int64: - if expectedType != "int" { - t.Log("Failed: Field " + metricName + " is not in type " + expectedType) - t.Fail() - } - } - t.Log("Succeed: Field " + metricName + " matches type " + expectedType) + ec2MetricSet := mbtest.NewReportingMetricSetV2(t, config) + errs := mbtest.WriteEventsReporterV2(ec2MetricSet, t, "/") + if errs != nil { + t.Fatal("write", errs) } } diff --git a/x-pack/metricbeat/module/aws/ec2/ec2_test.go b/x-pack/metricbeat/module/aws/ec2/ec2_test.go index 3353dedaf15..a24f5326206 100644 --- a/x-pack/metricbeat/module/aws/ec2/ec2_test.go +++ b/x-pack/metricbeat/module/aws/ec2/ec2_test.go @@ -7,7 +7,6 @@ package ec2 import ( - "fmt" "testing" awssdk "github.com/aws/aws-sdk-go-v2/aws" @@ -33,7 +32,27 @@ type MockCloudWatchClient struct { cloudwatchiface.CloudWatchAPI } -var regionName = "us-west-1" +var ( + regionName = "us-west-1" + instanceID = "i-123" + namespace = "AWS/EC2" + + id1 = "cpu1" + metricName1 = "CPUUtilization" + label1 = instanceID + " " + metricName1 + + id2 = "status1" + metricName2 = "StatusCheckFailed" + label2 = instanceID + " " + metricName2 + + id3 = "status2" + metricName3 = "StatusCheckFailed_System" + label3 = instanceID + " " + metricName3 + + id4 = "status3" + metricName4 = "StatusCheckFailed_Instance" + label4 = instanceID + " " + metricName4 +) func (m *MockEC2Client) DescribeRegionsRequest(input *ec2.DescribeRegionsInput) ec2.DescribeRegionsRequest { return ec2.DescribeRegionsRequest{ @@ -59,7 +78,7 @@ func (m *MockEC2Client) DescribeInstancesRequest(input *ec2.DescribeInstancesInp privateIP := "5.6.7.8" instance := ec2.Instance{ - InstanceId: awssdk.String("i-123"), + InstanceId: awssdk.String(instanceID), InstanceType: ec2.InstanceTypeT2Medium, Placement: &ec2.Placement{ AvailabilityZone: awssdk.String("us-west-1a"), @@ -92,93 +111,20 @@ func (m *MockEC2Client) DescribeInstancesRequest(input *ec2.DescribeInstancesInp } } -func (m *MockCloudWatchClient) GetMetricDataRequest(input *cloudwatch.GetMetricDataInput) cloudwatch.GetMetricDataRequest { - id1 := "cpu1" - label1 := "CPUUtilization" - value1 := 0.25 - - id2 := "status1" - label2 := "StatusCheckFailed" - value2 := 0.0 - - id3 := "status2" - label3 := "StatusCheckFailed_System" - value3 := 0.0 - - id4 := "status3" - label4 := "StatusCheckFailed_Instance" - value4 := 0.0 - - return cloudwatch.GetMetricDataRequest{ - Request: &awssdk.Request{ - Data: &cloudwatch.GetMetricDataOutput{ - MetricDataResults: []cloudwatch.MetricDataResult{ - { - Id: &id1, - Label: &label1, - Values: []float64{value1}, - }, - { - Id: &id2, - Label: &label2, - Values: []float64{value2}, - }, - { - Id: &id3, - Label: &label3, - Values: []float64{value3}, - }, - { - Id: &id4, - Label: &label4, - Values: []float64{value4}, - }, - }, - }, - }, - } -} - -func TestGetInstanceIDs(t *testing.T) { +func TestGetinstanceIDs(t *testing.T) { mockSvc := &MockEC2Client{} instanceIDs, instancesOutputs, err := getInstancesPerRegion(mockSvc) if err != nil { - fmt.Println("failed getInstancesPerRegion: ", err) t.FailNow() } assert.Equal(t, 1, len(instanceIDs)) assert.Equal(t, 1, len(instancesOutputs)) - assert.Equal(t, "i-123", instanceIDs[0]) - assert.Equal(t, ec2.InstanceType("t2.medium"), instancesOutputs["i-123"].InstanceType) - assert.Equal(t, awssdk.String("image-123"), instancesOutputs["i-123"].ImageId) - assert.Equal(t, awssdk.String("us-west-1a"), instancesOutputs["i-123"].Placement.AvailabilityZone) -} - -func TestGetMetricDataPerRegion(t *testing.T) { - mockSvc := &MockCloudWatchClient{} - getMetricDataOutput, err := getMetricDataPerRegion("-10m", 300, "i-123", nil, mockSvc) - if err != nil { - fmt.Println("failed getMetricDataPerRegion: ", err) - t.FailNow() - } - assert.Equal(t, 4, len(getMetricDataOutput.MetricDataResults)) - assert.Equal(t, "cpu1", *getMetricDataOutput.MetricDataResults[0].Id) - assert.Equal(t, "CPUUtilization", *getMetricDataOutput.MetricDataResults[0].Label) - assert.Equal(t, 0.25, getMetricDataOutput.MetricDataResults[0].Values[0]) - - assert.Equal(t, "status1", *getMetricDataOutput.MetricDataResults[1].Id) - assert.Equal(t, "StatusCheckFailed", *getMetricDataOutput.MetricDataResults[1].Label) - assert.Equal(t, 0.0, getMetricDataOutput.MetricDataResults[1].Values[0]) - - assert.Equal(t, "status2", *getMetricDataOutput.MetricDataResults[2].Id) - assert.Equal(t, "StatusCheckFailed_System", *getMetricDataOutput.MetricDataResults[2].Label) - assert.Equal(t, 0.0, getMetricDataOutput.MetricDataResults[2].Values[0]) - - assert.Equal(t, "status3", *getMetricDataOutput.MetricDataResults[3].Id) - assert.Equal(t, "StatusCheckFailed_Instance", *getMetricDataOutput.MetricDataResults[3].Label) - assert.Equal(t, 0.0, getMetricDataOutput.MetricDataResults[3].Values[0]) + assert.Equal(t, instanceID, instanceIDs[0]) + assert.Equal(t, ec2.InstanceType("t2.medium"), instancesOutputs[instanceID].InstanceType) + assert.Equal(t, awssdk.String("image-123"), instancesOutputs[instanceID].ImageId) + assert.Equal(t, awssdk.String("us-west-1a"), instancesOutputs[instanceID].Placement.AvailabilityZone) } func TestCreateCloudWatchEvents(t *testing.T) { @@ -224,20 +170,56 @@ func TestCreateCloudWatchEvents(t *testing.T) { assert.NoError(t, err) assert.Equal(t, 1, len(instanceIDs)) instanceID := instanceIDs[0] - assert.Equal(t, "i-123", instanceID) + assert.Equal(t, instanceID, instanceID) - svcCloudwatchMock := &MockCloudWatchClient{} - getMetricDataOutput, err := getMetricDataPerRegion("-600s", 300, instanceID, nil, svcCloudwatchMock) - assert.NoError(t, err) - assert.Equal(t, 4, len(getMetricDataOutput.MetricDataResults)) - assert.Equal(t, "cpu1", *getMetricDataOutput.MetricDataResults[0].Id) - assert.Equal(t, "CPUUtilization", *getMetricDataOutput.MetricDataResults[0].Label) - assert.Equal(t, 0.25, getMetricDataOutput.MetricDataResults[0].Values[0]) + getMetricDataOutput := []cloudwatch.MetricDataResult{ + { + Id: &id1, + Label: &label1, + Values: []float64{0.25}, + }, + { + Id: &id2, + Label: &label2, + Values: []float64{0.0}, + }, + { + Id: &id3, + Label: &label3, + Values: []float64{0.0}, + }, + { + Id: &id4, + Label: &label4, + Values: []float64{0.0}, + }, + } - event, info, err := createCloudWatchEvents(getMetricDataOutput, instanceID, instancesOutputs[instanceID], mockModuleConfig.DefaultRegion) + event, _, err := createCloudWatchEvents(getMetricDataOutput, instanceID, instancesOutputs[instanceID], mockModuleConfig.DefaultRegion) assert.NoError(t, err) - assert.Equal(t, "", info) assert.Equal(t, expectedEvent.RootFields, event.RootFields) assert.Equal(t, expectedEvent.MetricSetFields["cpu"], event.MetricSetFields["cpu"]) assert.Equal(t, expectedEvent.MetricSetFields["instance"], event.MetricSetFields["instance"]) } + +func TestConstructMetricQueries(t *testing.T) { + name := "InstanceId" + dim := cloudwatch.Dimension{ + Name: &name, + Value: &instanceID, + } + + listMetric := cloudwatch.Metric{ + Dimensions: []cloudwatch.Dimension{dim}, + MetricName: &metricName1, + Namespace: &namespace, + } + + listMetricsOutput := []cloudwatch.Metric{listMetric} + metricDataQuery := constructMetricQueries(listMetricsOutput, instanceID, 300) + assert.Equal(t, 1, len(metricDataQuery)) + assert.Equal(t, "i-123 CPUUtilization", *metricDataQuery[0].Label) + assert.Equal(t, "Average", *metricDataQuery[0].MetricStat.Stat) + assert.Equal(t, metricName1, *metricDataQuery[0].MetricStat.Metric.MetricName) + assert.Equal(t, namespace, *metricDataQuery[0].MetricStat.Metric.Namespace) +} diff --git a/x-pack/metricbeat/module/aws/mtest/integration.go b/x-pack/metricbeat/module/aws/mtest/integration.go new file mode 100644 index 00000000000..117ec5e5d42 --- /dev/null +++ b/x-pack/metricbeat/module/aws/mtest/integration.go @@ -0,0 +1,83 @@ +// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one +// or more contributor license agreements. Licensed under the Elastic License; +// you may not use this file except in compliance with the Elastic License. + +package mtest + +import ( + "os" + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/elastic/beats/metricbeat/mb" +) + +// GetConfigForTest function gets aws credentials for integration tests. +func GetConfigForTest(metricSetName string) (map[string]interface{}, string) { + accessKeyID, okAccessKeyID := os.LookupEnv("AWS_ACCESS_KEY_ID") + secretAccessKey, okSecretAccessKey := os.LookupEnv("AWS_SECRET_ACCESS_KEY") + sessionToken, okSessionToken := os.LookupEnv("AWS_SESSION_TOKEN") + defaultRegion, _ := os.LookupEnv("AWS_REGION") + if defaultRegion == "" { + defaultRegion = "us-west-1" + } + + info := "" + config := map[string]interface{}{} + if !okAccessKeyID || accessKeyID == "" { + info = "Skipping TestFetch; $AWS_ACCESS_KEY_ID not set or set to empty" + } else if !okSecretAccessKey || secretAccessKey == "" { + info = "Skipping TestFetch; $AWS_SECRET_ACCESS_KEY not set or set to empty" + } else { + config = map[string]interface{}{ + "module": "aws", + "period": "300s", + "metricsets": []string{metricSetName}, + "access_key_id": accessKeyID, + "secret_access_key": secretAccessKey, + "default_region": defaultRegion, + } + + if okSessionToken && sessionToken != "" { + config["session_token"] = sessionToken + } + } + return config, info +} + +// CheckEventField function checks a given field type and compares it with the expected type for integration tests. +func CheckEventField(metricName string, expectedType string, event mb.Event, t *testing.T) { + if ok, err := event.MetricSetFields.HasKey(metricName); ok { + assert.NoError(t, err) + metricValue, err := event.MetricSetFields.GetValue(metricName) + assert.NoError(t, err) + compareType(metricValue, expectedType, t) + } else if ok, err := event.RootFields.HasKey(metricName); ok { + assert.NoError(t, err) + rootValue, err := event.RootFields.GetValue(metricName) + assert.NoError(t, err) + compareType(rootValue, expectedType, t) + } +} + +func compareType(metricValue interface{}, expectedType string, t *testing.T) { + switch metricValue.(type) { + case float64: + if expectedType != "float" { + t.Log("Failed: Field is not in type " + expectedType) + t.Fail() + } + case string: + if expectedType != "string" { + t.Log("Failed: Field is not in type " + expectedType) + t.Fail() + } + case int64: + if expectedType != "int" { + t.Log("Failed: Field is not in type " + expectedType) + t.Fail() + } + } + t.Log("Succeed: Field matches type " + expectedType) +} diff --git a/x-pack/metricbeat/module/aws/utils.go b/x-pack/metricbeat/module/aws/utils.go new file mode 100644 index 00000000000..e66ad82d605 --- /dev/null +++ b/x-pack/metricbeat/module/aws/utils.go @@ -0,0 +1,86 @@ +// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one +// or more contributor license agreements. Licensed under the Elastic License; +// you may not use this file except in compliance with the Elastic License. + +package aws + +import ( + "time" + + "github.com/aws/aws-sdk-go-v2/service/cloudwatch" + "github.com/aws/aws-sdk-go-v2/service/cloudwatch/cloudwatchiface" + "github.com/pkg/errors" + + "github.com/elastic/beats/libbeat/common" + s "github.com/elastic/beats/libbeat/common/schema" +) + +// GetStartTimeEndTime function uses durationString to create startTime and endTime for queries. +func GetStartTimeEndTime(durationString string) (startTime time.Time, endTime time.Time, err error) { + endTime = time.Now() + duration, err := time.ParseDuration(durationString) + if err != nil { + return + } + startTime = endTime.Add(duration) + return startTime, endTime, nil +} + +// GetListMetricsOutput function gets listMetrics results from cloudwatch per namespace for each region. +// ListMetrics Cloudwatch API is used to list the specified metrics. The returned metrics can be used with GetMetricData +// to obtain statistical data. +func GetListMetricsOutput(namespace string, regionName string, svcCloudwatch cloudwatchiface.CloudWatchAPI) ([]cloudwatch.Metric, error) { + listMetricsInput := &cloudwatch.ListMetricsInput{Namespace: &namespace} + reqListMetrics := svcCloudwatch.ListMetricsRequest(listMetricsInput) + + // List metrics of a given namespace for each region + listMetricsOutput, err := reqListMetrics.Send() + if err != nil { + err = errors.Wrap(err, "ListMetricsRequest failed, skipping region "+regionName) + return nil, err + } + + if listMetricsOutput.Metrics == nil || len(listMetricsOutput.Metrics) == 0 { + // No metrics in this region + return nil, nil + } + return listMetricsOutput.Metrics, nil +} + +func getMetricDataPerRegion(metricDataQueries []cloudwatch.MetricDataQuery, nextToken *string, svc cloudwatchiface.CloudWatchAPI, startTime time.Time, endTime time.Time) (*cloudwatch.GetMetricDataOutput, error) { + getMetricDataInput := &cloudwatch.GetMetricDataInput{ + NextToken: nextToken, + StartTime: &startTime, + EndTime: &endTime, + MetricDataQueries: metricDataQueries, + } + + reqGetMetricData := svc.GetMetricDataRequest(getMetricDataInput) + getMetricDataOutput, err := reqGetMetricData.Send() + if err != nil { + err = errors.Wrap(err, "Error GetMetricDataInput") + return nil, err + } + return getMetricDataOutput, nil +} + +// GetMetricDataResults function uses MetricDataQueries to get metric data output. +func GetMetricDataResults(metricDataQueries []cloudwatch.MetricDataQuery, svc cloudwatchiface.CloudWatchAPI, startTime time.Time, endTime time.Time) ([]cloudwatch.MetricDataResult, error) { + init := true + getMetricDataOutput := &cloudwatch.GetMetricDataOutput{NextToken: nil} + for init || getMetricDataOutput.NextToken != nil { + init = false + output, err := getMetricDataPerRegion(metricDataQueries, getMetricDataOutput.NextToken, svc, startTime, endTime) + if err != nil { + err = errors.Wrap(err, "getMetricDataPerRegion failed") + return getMetricDataOutput.MetricDataResults, err + } + getMetricDataOutput.MetricDataResults = append(getMetricDataOutput.MetricDataResults, output.MetricDataResults...) + } + return getMetricDataOutput.MetricDataResults, nil +} + +// EventMapping maps data in input to a predefined schema. +func EventMapping(input map[string]interface{}, schema s.Schema) (common.MapStr, error) { + return schema.Apply(input, s.FailOnRequired) +} diff --git a/x-pack/metricbeat/module/aws/utils_test.go b/x-pack/metricbeat/module/aws/utils_test.go new file mode 100644 index 00000000000..9b57ecd3e67 --- /dev/null +++ b/x-pack/metricbeat/module/aws/utils_test.go @@ -0,0 +1,171 @@ +// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one +// or more contributor license agreements. Licensed under the Elastic License; +// you may not use this file except in compliance with the Elastic License. + +package aws + +import ( + "fmt" + "testing" + + awssdk "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/cloudwatch" + "github.com/aws/aws-sdk-go-v2/service/cloudwatch/cloudwatchiface" + "github.com/stretchr/testify/assert" +) + +// MockCloudwatchClient struct is used for unit tests. +type MockCloudWatchClient struct { + cloudwatchiface.CloudWatchAPI +} + +var ( + metricName = "CPUUtilization" + namespace = "AWS/EC2" + dimName = "InstanceId" + instanceID = "i-123" + + id1 = "cpu1" + metricName1 = "CPUUtilization" + label1 = instanceID + " " + metricName1 + + id2 = "status1" + metricName2 = "StatusCheckFailed" + label2 = instanceID + " " + metricName2 + + id3 = "status2" + metricName3 = "StatusCheckFailed_System" + label3 = instanceID + " " + metricName3 + + id4 = "status3" + metricName4 = "StatusCheckFailed_Instance" + label4 = instanceID + " " + metricName4 +) + +func (m *MockCloudWatchClient) ListMetricsRequest(input *cloudwatch.ListMetricsInput) cloudwatch.ListMetricsRequest { + dim := cloudwatch.Dimension{ + Name: &dimName, + Value: &instanceID, + } + return cloudwatch.ListMetricsRequest{ + Request: &awssdk.Request{ + Data: &cloudwatch.ListMetricsOutput{ + Metrics: []cloudwatch.Metric{ + { + MetricName: &metricName, + Namespace: &namespace, + Dimensions: []cloudwatch.Dimension{dim}, + }, + }, + }, + }, + } +} + +func (m *MockCloudWatchClient) GetMetricDataRequest(input *cloudwatch.GetMetricDataInput) cloudwatch.GetMetricDataRequest { + value1 := 0.25 + value2 := 0.0 + value3 := 0.0 + value4 := 0.0 + + return cloudwatch.GetMetricDataRequest{ + Request: &awssdk.Request{ + Data: &cloudwatch.GetMetricDataOutput{ + MetricDataResults: []cloudwatch.MetricDataResult{ + { + Id: &id1, + Label: &label1, + Values: []float64{value1}, + }, + { + Id: &id2, + Label: &label2, + Values: []float64{value2}, + }, + { + Id: &id3, + Label: &label3, + Values: []float64{value3}, + }, + { + Id: &id4, + Label: &label4, + Values: []float64{value4}, + }, + }, + }, + }, + } +} + +func TestGetListMetricsOutput(t *testing.T) { + svcCloudwatch := &MockCloudWatchClient{} + listMetricsOutput, err := GetListMetricsOutput("AWS/EC2", "us-west-1", svcCloudwatch) + assert.NoError(t, err) + assert.Equal(t, 1, len(listMetricsOutput)) + assert.Equal(t, namespace, *listMetricsOutput[0].Namespace) + assert.Equal(t, metricName, *listMetricsOutput[0].MetricName) + assert.Equal(t, 1, len(listMetricsOutput[0].Dimensions)) + assert.Equal(t, dimName, *listMetricsOutput[0].Dimensions[0].Name) + assert.Equal(t, instanceID, *listMetricsOutput[0].Dimensions[0].Value) +} + +func TestGetMetricDataPerRegion(t *testing.T) { + startTime, endTime, err := GetStartTimeEndTime("-10m") + assert.NoError(t, err) + + mockSvc := &MockCloudWatchClient{} + metricDataQueries := []cloudwatch.MetricDataQuery{} + getMetricDataOutput, err := getMetricDataPerRegion(metricDataQueries, nil, mockSvc, startTime, endTime) + if err != nil { + fmt.Println("failed getMetricDataPerRegion: ", err) + t.FailNow() + } + + assert.Equal(t, 4, len(getMetricDataOutput.MetricDataResults)) + assert.Equal(t, id1, *getMetricDataOutput.MetricDataResults[0].Id) + assert.Equal(t, label1, *getMetricDataOutput.MetricDataResults[0].Label) + assert.Equal(t, 0.25, getMetricDataOutput.MetricDataResults[0].Values[0]) + + assert.Equal(t, id2, *getMetricDataOutput.MetricDataResults[1].Id) + assert.Equal(t, label2, *getMetricDataOutput.MetricDataResults[1].Label) + assert.Equal(t, 0.0, getMetricDataOutput.MetricDataResults[1].Values[0]) + + assert.Equal(t, id3, *getMetricDataOutput.MetricDataResults[2].Id) + assert.Equal(t, label3, *getMetricDataOutput.MetricDataResults[2].Label) + assert.Equal(t, 0.0, getMetricDataOutput.MetricDataResults[2].Values[0]) + + assert.Equal(t, id4, *getMetricDataOutput.MetricDataResults[3].Id) + assert.Equal(t, label4, *getMetricDataOutput.MetricDataResults[3].Label) + assert.Equal(t, 0.0, getMetricDataOutput.MetricDataResults[3].Values[0]) +} + +func TestGetMetricDataResults(t *testing.T) { + startTime, endTime, err := GetStartTimeEndTime("-10m") + assert.NoError(t, err) + + mockSvc := &MockCloudWatchClient{} + metricDataQueries := []cloudwatch.MetricDataQuery{} + getMetricDataResults, err := GetMetricDataResults(metricDataQueries, mockSvc, startTime, endTime) + if err != nil { + fmt.Println("failed getMetricDataPerRegion: ", err) + t.FailNow() + } + + assert.Equal(t, 4, len(getMetricDataResults)) + assert.Equal(t, id1, *getMetricDataResults[0].Id) + assert.Equal(t, label1, *getMetricDataResults[0].Label) + assert.Equal(t, 0.25, getMetricDataResults[0].Values[0]) + + assert.Equal(t, id2, *getMetricDataResults[1].Id) + assert.Equal(t, label2, *getMetricDataResults[1].Label) + assert.Equal(t, 0.0, getMetricDataResults[1].Values[0]) + + assert.Equal(t, id3, *getMetricDataResults[2].Id) + assert.Equal(t, label3, *getMetricDataResults[2].Label) + assert.Equal(t, 0.0, getMetricDataResults[2].Values[0]) + + assert.Equal(t, id4, *getMetricDataResults[3].Id) + assert.Equal(t, label4, *getMetricDataResults[3].Label) + assert.Equal(t, 0.0, getMetricDataResults[3].Values[0]) +} From 3950fc68be7a53c9638b672fbf78bdebce9722d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?No=C3=A9mi=20V=C3=A1nyi?= Date: Wed, 20 Feb 2019 07:48:22 +0100 Subject: [PATCH 052/332] Do not skip test_file_disappear_appear on Windows anymore --- filebeat/tests/system/test_crawler.py | 1 - 1 file changed, 1 deletion(-) diff --git a/filebeat/tests/system/test_crawler.py b/filebeat/tests/system/test_crawler.py index 2c1f1dc6f59..846772d0a81 100644 --- a/filebeat/tests/system/test_crawler.py +++ b/filebeat/tests/system/test_crawler.py @@ -264,7 +264,6 @@ def test_file_disappear(self): assert len(output) == 5 + 6 - @unittest.skipIf(os.name == 'nt', 'flaky test https://github.com/elastic/beats/issues/9213') def test_file_disappear_appear(self): """ Checks that filebeat keeps running in case a log files is deleted From e7ea5d75437dea48f1827de852ccce0afec20d1c Mon Sep 17 00:00:00 2001 From: Christoph Wurm Date: Wed, 20 Feb 2019 11:59:17 +0000 Subject: [PATCH 053/332] [Auditbeat] Package dataset: Make librpm code compatible across CentOS 6.x, 7.x, and Fedora 29 (#10796) Librpm version 4.14.2.1 on Fedora 29 no longer contains the `headerGetEntry` method we are currently using. It was deprecated and then removed in version 4.14 (https://github.com/rpm-software-management/rpm/commit/c68fa9ab0bac6e3c3a9b826b5a208447ec16da33). Also, the much older version 4.8.0 of librpm on CentOS 6.10 (Final) does not yet contain newer data structures for tags like `rpm_tag_t/rpmTag/rpmTagVal`. This PR makes two changes that should allow this code to work on all three distros (CentOS 6.x, 7.x, Fedora 29 - and hopefully anything in between): 1. Use `headerGetString/headerGetNumber` instead of `headerGetEntry`. 2. Use `int32_t` instead of `rpm_tag_t/rpmTag/rpmTagVal`. Luckily, this seems to work on all three distros. I'd prefer something like a typedef, but unfortunately, C99 does not allow repeating a typedef (C11 does) and so backporting them is not easily possible. It also makes the code more lenient with errors during data collection: Only when no package name can be found do we return an error. Together with https://github.com/elastic/beats/pull/10694 this will hopefully allow RPM package collection to work well. --- .../module/system/package/rpm_linux.go | 110 +++++++----------- 1 file changed, 44 insertions(+), 66 deletions(-) diff --git a/x-pack/auditbeat/module/system/package/rpm_linux.go b/x-pack/auditbeat/module/system/package/rpm_linux.go index 292db1d5ed6..89596b1d785 100644 --- a/x-pack/auditbeat/module/system/package/rpm_linux.go +++ b/x-pack/auditbeat/module/system/package/rpm_linux.go @@ -7,6 +7,7 @@ package pkg import ( + "errors" "fmt" "runtime" "time" @@ -65,28 +66,32 @@ my_headerLink(void *f, Header h) { return headerLink(h); } -int -my_headerGetEntry(void *f, Header h, rpm_tag_t tag, char **p) { - int (*headerGetEntry)(Header, rpm_tag_t, rpm_tagtype_t*, rpm_data_t*, rpm_count_t*); - headerGetEntry = (int (*)(Header, rpm_tag_t, rpm_tagtype_t*, rpm_data_t*, rpm_count_t*))f; +// Note: Using int32_t instead of rpmTag/rpmTagVal in definitions +// to make it work on CentOS 6.x, 7.x, and Fedora 29. +const char * +my_headerGetString(void *f, Header h, int32_t tag) { + const char * (*headerGetString)(Header, int32_t); + headerGetString = (const char * (*)(Header, int32_t))f; - return headerGetEntry(h, tag, NULL, (void**)p, NULL); + return headerGetString(h, tag); } -int -my_headerGetEntryInt(void *f, Header h, rpm_tag_t tag, int **p) { - int (*headerGetEntry)(Header, rpm_tag_t, rpm_tagtype_t*, rpm_data_t*, rpm_count_t*); - headerGetEntry = (int (*)(Header, rpm_tag_t, rpm_tagtype_t*, rpm_data_t*, rpm_count_t*))f; +// Note: Using int32_t instead of rpmTag/rpmTagVal in definitions +// to make it work on CentOS 6.x, 7.x, and Fedora 29. +uint64_t +my_headerGetNumber(void *f, Header h, int32_t tag) { + uint64_t (*headerGetNumber)(Header, int32_t); + headerGetNumber = (uint64_t (*)(Header, int32_t))f; - return headerGetEntry(h, tag, NULL, (void**)p, NULL); + return headerGetNumber(h, tag); } void my_headerFree(void *f, Header h) { - Header (*headerFree)(Header); + Header (*headerFree)(Header); headerFree = (Header (*)(Header))f; - headerFree(h); + headerFree(h); } void @@ -160,7 +165,8 @@ type cFunctions struct { rpmtsInitIterator unsafe.Pointer rpmdbNextIterator unsafe.Pointer headerLink unsafe.Pointer - headerGetEntry unsafe.Pointer + headerGetString unsafe.Pointer + headerGetNumber unsafe.Pointer headerFree unsafe.Pointer rpmdbFreeIterator unsafe.Pointer rpmtsFree unsafe.Pointer @@ -206,7 +212,12 @@ func dlopenCFunctions() (*cFunctions, error) { return nil, err } - cFun.headerGetEntry, err = librpm.GetSymbolPointer("headerGetEntry") + cFun.headerGetString, err = librpm.GetSymbolPointer("headerGetString") + if err != nil { + return nil, err + } + + cFun.headerGetNumber, err = librpm.GetSymbolPointer("headerGetNumber") if err != nil { return nil, err } @@ -306,65 +317,32 @@ func packageFromHeader(header C.Header, cFun *cFunctions) (*Package, error) { pkg := Package{} - var name *C.char - res := C.my_headerGetEntry(cFun.headerGetEntry, header, RPMTAG_NAME, &name) - if res != 1 { - return nil, fmt.Errorf("Failed to call headerGetEntry(name): %d", res) - } - pkg.Name = C.GoString(name) - - var version *C.char - res = C.my_headerGetEntry(cFun.headerGetEntry, header, RPMTAG_VERSION, &version) - if res != 1 { - return nil, fmt.Errorf("Failed to call headerGetEntry(version): %d", res) + name := C.my_headerGetString(cFun.headerGetString, header, RPMTAG_NAME) + if name != nil { + pkg.Name = C.GoString(name) + } else { + return nil, errors.New("Failed to get package name") } - pkg.Version = C.GoString(version) - var release *C.char - res = C.my_headerGetEntry(cFun.headerGetEntry, header, RPMTAG_RELEASE, &release) - if res != 1 { - return nil, fmt.Errorf("Failed to call headerGetEntry(release): %d", res) + version := C.my_headerGetString(cFun.headerGetString, header, RPMTAG_VERSION) + if version != nil { + pkg.Version = C.GoString(version) + } else { + pkg.Error = errors.New("Failed to get package version") } - pkg.Release = C.GoString(release) - var license *C.char - res = C.my_headerGetEntry(cFun.headerGetEntry, header, RPMTAG_LICENSE, &license) - if res != 1 { - return nil, fmt.Errorf("Failed to call headerGetEntry(license): %d", res) - } - pkg.License = C.GoString(license) - - var arch *C.char - res = C.my_headerGetEntry(cFun.headerGetEntry, header, RPMTAG_ARCH, &arch) - if res == 1 { // not always successful - pkg.Arch = C.GoString(arch) - } - - var url *C.char - res = C.my_headerGetEntry(cFun.headerGetEntry, header, RPMTAG_URL, &url) - if res == 1 { // not always successful - pkg.URL = C.GoString(url) - } - - var summary *C.char - res = C.my_headerGetEntry(cFun.headerGetEntry, header, RPMTAG_SUMMARY, &summary) - if res == 1 { // not always successful - pkg.Summary = C.GoString(summary) - } + pkg.Release = C.GoString(C.my_headerGetString(cFun.headerGetString, header, RPMTAG_RELEASE)) + pkg.License = C.GoString(C.my_headerGetString(cFun.headerGetString, header, RPMTAG_LICENSE)) + pkg.Arch = C.GoString(C.my_headerGetString(cFun.headerGetString, header, RPMTAG_ARCH)) + pkg.URL = C.GoString(C.my_headerGetString(cFun.headerGetString, header, RPMTAG_URL)) + pkg.Summary = C.GoString(C.my_headerGetString(cFun.headerGetString, header, RPMTAG_SUMMARY)) - var size *C.int - res = C.my_headerGetEntryInt(cFun.headerGetEntry, header, RPMTAG_SIZE, &size) - if res != 1 { - return nil, fmt.Errorf("Failed to call headerGetEntry(size): %d", res) - } - pkg.Size = uint64(*size) + pkg.Size = uint64(C.my_headerGetNumber(cFun.headerGetNumber, header, RPMTAG_SIZE)) - var installTime *C.int - res = C.my_headerGetEntryInt(cFun.headerGetEntry, header, RPMTAG_INSTALLTIME, &installTime) - if res != 1 { - return nil, fmt.Errorf("Failed to call headerGetEntry(installTime): %d", res) + installTime := C.my_headerGetNumber(cFun.headerGetNumber, header, RPMTAG_INSTALLTIME) + if installTime != 0 { + pkg.InstallTime = time.Unix(int64(installTime), 0) } - pkg.InstallTime = time.Unix(int64(*installTime), 0) return &pkg, nil } From 324b7fccbaa46a647907d028caacd63ff45e3dfc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?No=C3=A9mi=20V=C3=A1nyi?= Date: Wed, 20 Feb 2019 16:10:42 +0100 Subject: [PATCH 054/332] Remove legacy ML assets from Filebeat modules (#10795) * remove legacy ML dashboards from Filebeat modules * rm more machine learning assets --- ...nginx-access-remote-ip-count-explorer.json | 553 ------------------ .../ml-nginx-remote-ip-url-explorer.json | 552 ----------------- .../datafeed_low_request_rate.json | 35 -- .../datafeed_remote_ip_request_rate.json | 14 - .../datafeed_remote_ip_url_count.json | 14 - .../datafeed_response_code.json | 14 - .../datafeed_visitor_rate.json | 40 -- .../machine_learning/low_request_rate.json | 29 - .../remote_ip_request_rate.json | 32 - .../machine_learning/remote_ip_url_count.json | 33 -- .../machine_learning/response_code.json | 36 -- .../access/machine_learning/visitor_rate.json | 29 - ...aefik-access-remote-ip-count-explorer.json | 553 ------------------ .../ml-traefik-remote-ip-url-explorer.json | 552 ----------------- .../datafeed_low_request_rate.json | 35 -- .../datafeed_remote_ip_request_rate.json | 14 - .../datafeed_remote_ip_url_count.json | 14 - .../datafeed_response_code.json | 14 - .../datafeed_visitor_rate.json | 40 -- .../machine_learning/low_request_rate.json | 29 - .../remote_ip_request_rate.json | 32 - .../machine_learning/remote_ip_url_count.json | 33 -- .../machine_learning/response_code.json | 36 -- .../access/machine_learning/visitor_rate.json | 29 - 24 files changed, 2762 deletions(-) delete mode 100644 filebeat/module/nginx/_meta/kibana/7/dashboard/ml-nginx-access-remote-ip-count-explorer.json delete mode 100644 filebeat/module/nginx/_meta/kibana/7/dashboard/ml-nginx-remote-ip-url-explorer.json delete mode 100644 filebeat/module/nginx/access/machine_learning/datafeed_low_request_rate.json delete mode 100644 filebeat/module/nginx/access/machine_learning/datafeed_remote_ip_request_rate.json delete mode 100644 filebeat/module/nginx/access/machine_learning/datafeed_remote_ip_url_count.json delete mode 100644 filebeat/module/nginx/access/machine_learning/datafeed_response_code.json delete mode 100644 filebeat/module/nginx/access/machine_learning/datafeed_visitor_rate.json delete mode 100644 filebeat/module/nginx/access/machine_learning/low_request_rate.json delete mode 100644 filebeat/module/nginx/access/machine_learning/remote_ip_request_rate.json delete mode 100644 filebeat/module/nginx/access/machine_learning/remote_ip_url_count.json delete mode 100644 filebeat/module/nginx/access/machine_learning/response_code.json delete mode 100644 filebeat/module/nginx/access/machine_learning/visitor_rate.json delete mode 100644 filebeat/module/traefik/_meta/kibana/7/dashboard/ml-traefik-access-remote-ip-count-explorer.json delete mode 100644 filebeat/module/traefik/_meta/kibana/7/dashboard/ml-traefik-remote-ip-url-explorer.json delete mode 100644 filebeat/module/traefik/access/machine_learning/datafeed_low_request_rate.json delete mode 100644 filebeat/module/traefik/access/machine_learning/datafeed_remote_ip_request_rate.json delete mode 100644 filebeat/module/traefik/access/machine_learning/datafeed_remote_ip_url_count.json delete mode 100644 filebeat/module/traefik/access/machine_learning/datafeed_response_code.json delete mode 100644 filebeat/module/traefik/access/machine_learning/datafeed_visitor_rate.json delete mode 100644 filebeat/module/traefik/access/machine_learning/low_request_rate.json delete mode 100644 filebeat/module/traefik/access/machine_learning/remote_ip_request_rate.json delete mode 100644 filebeat/module/traefik/access/machine_learning/remote_ip_url_count.json delete mode 100644 filebeat/module/traefik/access/machine_learning/response_code.json delete mode 100644 filebeat/module/traefik/access/machine_learning/visitor_rate.json diff --git a/filebeat/module/nginx/_meta/kibana/7/dashboard/ml-nginx-access-remote-ip-count-explorer.json b/filebeat/module/nginx/_meta/kibana/7/dashboard/ml-nginx-access-remote-ip-count-explorer.json deleted file mode 100644 index 9113043e29f..00000000000 --- a/filebeat/module/nginx/_meta/kibana/7/dashboard/ml-nginx-access-remote-ip-count-explorer.json +++ /dev/null @@ -1,553 +0,0 @@ -{ - "objects": [ - { - "attributes": { - "description": "", - "kibanaSavedObjectMeta": { - "searchSourceJSON": {} - }, - "savedSearchId": "ML-Filebeat-Nginx-Access-ecs", - "title": "Remote IP Timechart [Filebeat Nginx] [ML] ECS", - "uiStateJSON": { - "vis": { - "legendOpen": false - } - }, - "version": 1, - "visState": { - "aggs": [ - { - "enabled": true, - "id": "1", - "params": {}, - "schema": "metric", - "type": "count" - }, - { - "enabled": true, - "id": "2", - "params": { - "customInterval": "2h", - "extended_bounds": {}, - "field": "@timestamp", - "interval": "auto", - "min_doc_count": 1 - }, - "schema": "segment", - "type": "date_histogram" - }, - { - "enabled": true, - "id": "3", - "params": { - "field": "nginx.access.remote_ip", - "order": "desc", - "orderBy": "1", - "size": 5 - }, - "schema": "group", - "type": "terms" - } - ], - "listeners": {}, - "params": { - "addLegend": true, - "addTimeMarker": false, - "addTooltip": true, - "categoryAxes": [ - { - "id": "CategoryAxis-1", - "labels": { - "show": true, - "truncate": 100 - }, - "position": "bottom", - "scale": { - "type": "linear" - }, - "show": true, - "style": {}, - "title": { - "text": "@timestamp per 5 minutes" - }, - "type": "category" - } - ], - "defaultYExtents": false, - "drawLinesBetweenPoints": true, - "grid": { - "categoryLines": false, - "style": { - "color": "#eee" - } - }, - "interpolate": "linear", - "legendPosition": "right", - "radiusRatio": 9, - "scale": "linear", - "seriesParams": [ - { - "data": { - "id": "1", - "label": "Count" - }, - "drawLinesBetweenPoints": true, - "interpolate": "linear", - "mode": "stacked", - "show": "true", - "showCircles": true, - "type": "area", - "valueAxis": "ValueAxis-1" - } - ], - "setYExtents": false, - "showCircles": true, - "times": [], - "valueAxes": [ - { - "id": "ValueAxis-1", - "labels": { - "filter": false, - "rotate": 0, - "show": true, - "truncate": 100 - }, - "name": "LeftAxis-1", - "position": "left", - "scale": { - "mode": "normal", - "type": "linear" - }, - "show": true, - "style": {}, - "title": {}, - "type": "value" - } - ] - }, - "title": "ML Nginx Access Remote IP Timechart ECS", - "type": "area" - } - }, - "id": "ML-Nginx-Access-Remote-IP-Timechart-ecs", - "type": "visualization", - "version": 2 - }, - { - "attributes": { - "description": "", - "kibanaSavedObjectMeta": { - "searchSourceJSON": { - "filter": [] - } - }, - "savedSearchId": "ML-Filebeat-Nginx-Access-ecs", - "title": "Response Code Timechart [Filebeat Nginx] [ML] ECS", - "uiStateJSON": { - "vis": { - "colors": { - "200": "#7EB26D", - "404": "#614D93" - } - } - }, - "version": 1, - "visState": { - "aggs": [ - { - "enabled": true, - "id": "1", - "params": {}, - "schema": "metric", - "type": "count" - }, - { - "enabled": true, - "id": "2", - "params": { - "customInterval": "2h", - "extended_bounds": {}, - "field": "@timestamp", - "interval": "auto", - "min_doc_count": 1 - }, - "schema": "segment", - "type": "date_histogram" - }, - { - "enabled": true, - "id": "3", - "params": { - "field": "http.response.status_code", - "order": "desc", - "orderBy": "1", - "size": 5 - }, - "schema": "group", - "type": "terms" - } - ], - "listeners": {}, - "params": { - "addLegend": true, - "addTimeMarker": false, - "addTooltip": true, - "defaultYExtents": false, - "legendPosition": "right", - "mode": "stacked", - "scale": "linear", - "setYExtents": false, - "shareYAxis": true, - "times": [], - "yAxis": {} - }, - "title": "ML Nginx Access Response Code Timechart ECS", - "type": "histogram" - } - }, - "id": "ML-Nginx-Access-Response-Code-Timechart-ecs", - "type": "visualization", - "version": 3 - }, - { - "attributes": { - "description": "", - "kibanaSavedObjectMeta": { - "searchSourceJSON": {} - }, - "savedSearchId": "ML-Filebeat-Nginx-Access-ecs", - "title": "Top Remote IPs [Filebeat Nginx] [ML] ECS", - "uiStateJSON": { - "vis": { - "params": { - "sort": { - "columnIndex": null, - "direction": null - } - } - } - }, - "version": 1, - "visState": { - "aggs": [ - { - "enabled": true, - "id": "1", - "params": {}, - "schema": "metric", - "type": "count" - }, - { - "enabled": true, - "id": "2", - "params": { - "field": "nginx.access.remote_ip", - "order": "desc", - "orderBy": "1", - "size": 5 - }, - "schema": "bucket", - "type": "terms" - } - ], - "listeners": {}, - "params": { - "perPage": 10, - "showMeticsAtAllLevels": false, - "showPartialRows": false, - "showTotal": false, - "sort": { - "columnIndex": null, - "direction": null - }, - "totalFunc": "sum" - }, - "title": "ML Nginx Access Top Remote IPs Table ECS", - "type": "table" - } - }, - "id": "ML-Nginx-Access-Top-Remote-IPs-Table-ecs", - "type": "visualization", - "version": 3 - }, - { - "attributes": { - "description": "", - "kibanaSavedObjectMeta": { - "searchSourceJSON": { - "filter": [] - } - }, - "savedSearchId": "ML-Filebeat-Nginx-Access-ecs", - "title": "Access Map [Filebeat Nginx] [ML] ECS", - "uiStateJSON": { - "mapCenter": [ - 12.039320557540572, - -0.17578125 - ] - }, - "version": 1, - "visState": { - "aggs": [ - { - "enabled": true, - "id": "1", - "params": {}, - "schema": "metric", - "type": "count" - }, - { - "enabled": true, - "id": "2", - "params": { - "autoPrecision": true, - "field": "source.geo.location" - }, - "schema": "segment", - "type": "geohash_grid" - } - ], - "listeners": {}, - "params": { - "addTooltip": true, - "heatBlur": 15, - "heatMaxZoom": 16, - "heatMinOpacity": 0.1, - "heatNormalizeData": true, - "heatRadius": 25, - "isDesaturated": true, - "legendPosition": "bottomright", - "mapCenter": [ - 15, - 5 - ], - "mapType": "Scaled Circle Markers", - "mapZoom": 2, - "wms": { - "enabled": false, - "options": { - "attribution": "Maps provided by USGS", - "format": "image/png", - "layers": "0", - "styles": "", - "transparent": true, - "version": "1.3.0" - }, - "url": "https://basemap.nationalmap.gov/arcgis/services/USGSTopo/MapServer/WMSServer" - } - }, - "title": "ML Nginx Access Map ECS", - "type": "tile_map" - } - }, - "id": "ML-Nginx-Access-Map-ecs", - "type": "visualization", - "version": 3 - }, - { - "attributes": { - "description": "", - "kibanaSavedObjectMeta": { - "searchSourceJSON": {} - }, - "savedSearchId": "ML-Filebeat-Nginx-Access-ecs", - "title": "Top URLs [Filebeat Nginx] [ML] ECS", - "uiStateJSON": { - "vis": { - "params": { - "sort": { - "columnIndex": null, - "direction": null - } - } - } - }, - "version": 1, - "visState": { - "aggs": [ - { - "enabled": true, - "id": "1", - "params": {}, - "schema": "metric", - "type": "count" - }, - { - "enabled": true, - "id": "2", - "params": { - "field": "url.original", - "order": "desc", - "orderBy": "1", - "size": 1000 - }, - "schema": "bucket", - "type": "terms" - } - ], - "listeners": {}, - "params": { - "perPage": 100, - "showMeticsAtAllLevels": false, - "showPartialRows": false, - "showTotal": false, - "sort": { - "columnIndex": null, - "direction": null - }, - "totalFunc": "sum" - }, - "title": "ML Nginx Access Top URLs Table ECS", - "type": "table" - } - }, - "id": "ML-Nginx-Access-Top-URLs-Table-ecs", - "type": "visualization", - "version": 3 - }, - { - "attributes": { - "columns": [ - "_source" - ], - "description": "Filebeat Nginx Access Data", - "hits": 0, - "kibanaSavedObjectMeta": { - "searchSourceJSON": { - "filter": [], - "highlight": { - "fields": { - "*": {} - }, - "fragment_size": 2147483647, - "post_tags": [ - "@/kibana-highlighted-field@" - ], - "pre_tags": [ - "@kibana-highlighted-field@" - ], - "require_field_match": false - }, - "index": "filebeat-*", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "event.dataset:nginx.access" - } - } - } - }, - "sort": [ - "@timestamp", - "desc" - ], - "title": "ML Access Data [Filebeat Nginx] ECS", - "version": 1 - }, - "id": "ML-Filebeat-Nginx-Access-ecs", - "type": "search", - "version": 3 - }, - { - "attributes": { - "description": "Machine learning dashboard, for the Filebeat Nginx module", - "hits": 0, - "kibanaSavedObjectMeta": { - "searchSourceJSON": { - "filter": [ - { - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } - } - ], - "highlightAll": true, - "version": true - } - }, - "optionsJSON": { - "darkTheme": false - }, - "panelsJSON": [ - { - "col": 1, - "id": "ML-Nginx-Access-Remote-IP-Timechart-ecs", - "panelIndex": 1, - "row": 1, - "size_x": 6, - "size_y": 3, - "type": "visualization" - }, - { - "col": 7, - "id": "ML-Nginx-Access-Response-Code-Timechart-ecs", - "panelIndex": 2, - "row": 1, - "size_x": 6, - "size_y": 3, - "type": "visualization" - }, - { - "col": 1, - "id": "ML-Nginx-Access-Top-Remote-IPs-Table-ecs", - "panelIndex": 3, - "row": 4, - "size_x": 6, - "size_y": 3, - "type": "visualization" - }, - { - "col": 7, - "id": "ML-Nginx-Access-Map-ecs", - "panelIndex": 4, - "row": 4, - "size_x": 6, - "size_y": 3, - "type": "visualization" - }, - { - "col": 1, - "id": "ML-Nginx-Access-Top-URLs-Table-ecs", - "panelIndex": 5, - "row": 7, - "size_x": 12, - "size_y": 9, - "type": "visualization" - } - ], - "timeRestore": false, - "title": "[Filebeat Nginx] [ML] Remote IP Count Explorer ECS", - "uiStateJSON": { - "P-3": { - "vis": { - "params": { - "sort": { - "columnIndex": null, - "direction": null - } - } - } - }, - "P-5": { - "vis": { - "params": { - "sort": { - "columnIndex": null, - "direction": null - } - } - } - } - }, - "version": 1 - }, - "id": "ML-Nginx-Access-Remote-IP-Count-Explorer-ecs", - "type": "dashboard", - "version": 3 - } - ], - "version": "6.0.0-beta1-SNAPSHOT" -} diff --git a/filebeat/module/nginx/_meta/kibana/7/dashboard/ml-nginx-remote-ip-url-explorer.json b/filebeat/module/nginx/_meta/kibana/7/dashboard/ml-nginx-remote-ip-url-explorer.json deleted file mode 100644 index 96dbcefb686..00000000000 --- a/filebeat/module/nginx/_meta/kibana/7/dashboard/ml-nginx-remote-ip-url-explorer.json +++ /dev/null @@ -1,552 +0,0 @@ -{ - "objects": [ - { - "attributes": { - "description": "", - "kibanaSavedObjectMeta": { - "searchSourceJSON": {} - }, - "savedSearchId": "ML-Filebeat-Nginx-Access-ecs", - "title": "Unique Count URL Timechart [Filebeat Nginx] [ML] ECS", - "uiStateJSON": {}, - "version": 1, - "visState": { - "aggs": [ - { - "enabled": true, - "id": "1", - "params": { - "field": "url.original" - }, - "schema": "metric", - "type": "cardinality" - }, - { - "enabled": true, - "id": "2", - "params": { - "customInterval": "2h", - "extended_bounds": {}, - "field": "@timestamp", - "interval": "auto", - "min_doc_count": 1 - }, - "schema": "segment", - "type": "date_histogram" - } - ], - "listeners": {}, - "params": { - "addLegend": true, - "addTimeMarker": false, - "addTooltip": true, - "categoryAxes": [ - { - "id": "CategoryAxis-1", - "labels": { - "show": true, - "truncate": 100 - }, - "position": "bottom", - "scale": { - "type": "linear" - }, - "show": true, - "style": {}, - "title": { - "text": "@timestamp per day" - }, - "type": "category" - } - ], - "defaultYExtents": false, - "drawLinesBetweenPoints": true, - "grid": { - "categoryLines": false, - "style": { - "color": "#eee" - } - }, - "interpolate": "linear", - "legendPosition": "right", - "radiusRatio": 9, - "scale": "linear", - "seriesParams": [ - { - "data": { - "id": "1", - "label": "Unique count of nginx.access.url" - }, - "drawLinesBetweenPoints": true, - "interpolate": "linear", - "lineWidth": 2, - "mode": "normal", - "show": true, - "showCircles": true, - "type": "line", - "valueAxis": "ValueAxis-1" - } - ], - "setYExtents": false, - "showCircles": true, - "times": [], - "valueAxes": [ - { - "id": "ValueAxis-1", - "labels": { - "filter": false, - "rotate": 0, - "show": true, - "truncate": 100 - }, - "name": "LeftAxis-1", - "position": "left", - "scale": { - "mode": "normal", - "type": "linear" - }, - "show": true, - "style": {}, - "title": { - "text": "Unique count of nginx.access.url" - }, - "type": "value" - } - ] - }, - "title": "ML Nginx Access Unique Count URL Timechart ECS", - "type": "line" - } - }, - "id": "ML-Nginx-Access-Unique-Count-URL-Timechart-ecs", - "type": "visualization", - "version": 2 - }, - { - "attributes": { - "description": "", - "kibanaSavedObjectMeta": { - "searchSourceJSON": { - "filter": [] - } - }, - "savedSearchId": "ML-Filebeat-Nginx-Access-ecs", - "title": "Response Code Timechart [Filebeat Nginx] [ML] ECS", - "uiStateJSON": { - "vis": { - "colors": { - "200": "#7EB26D", - "404": "#614D93" - } - } - }, - "version": 1, - "visState": { - "aggs": [ - { - "enabled": true, - "id": "1", - "params": {}, - "schema": "metric", - "type": "count" - }, - { - "enabled": true, - "id": "2", - "params": { - "customInterval": "2h", - "extended_bounds": {}, - "field": "@timestamp", - "interval": "auto", - "min_doc_count": 1 - }, - "schema": "segment", - "type": "date_histogram" - }, - { - "enabled": true, - "id": "3", - "params": { - "field": "http.response.status_code", - "order": "desc", - "orderBy": "1", - "size": 5 - }, - "schema": "group", - "type": "terms" - } - ], - "listeners": {}, - "params": { - "addLegend": true, - "addTimeMarker": false, - "addTooltip": true, - "defaultYExtents": false, - "legendPosition": "right", - "mode": "stacked", - "scale": "linear", - "setYExtents": false, - "shareYAxis": true, - "times": [], - "yAxis": {} - }, - "title": "ML Nginx Access Response Code Timechart ECS", - "type": "histogram" - } - }, - "id": "ML-Nginx-Access-Response-Code-Timechart-ecs", - "type": "visualization", - "version": 3 - }, - { - "attributes": { - "description": "", - "kibanaSavedObjectMeta": { - "searchSourceJSON": {} - }, - "savedSearchId": "ML-Filebeat-Nginx-Access-ecs", - "title": "Top Remote IPs [Filebeat Nginx] [ML] ECS", - "uiStateJSON": { - "vis": { - "params": { - "sort": { - "columnIndex": null, - "direction": null - } - } - } - }, - "version": 1, - "visState": { - "aggs": [ - { - "enabled": true, - "id": "1", - "params": {}, - "schema": "metric", - "type": "count" - }, - { - "enabled": true, - "id": "2", - "params": { - "field": "nginx.access.remote_ip", - "order": "desc", - "orderBy": "1", - "size": 5 - }, - "schema": "bucket", - "type": "terms" - } - ], - "listeners": {}, - "params": { - "perPage": 10, - "showMeticsAtAllLevels": false, - "showPartialRows": false, - "showTotal": false, - "sort": { - "columnIndex": null, - "direction": null - }, - "totalFunc": "sum" - }, - "title": "ML Nginx Access Top Remote IPs Table ECS", - "type": "table" - } - }, - "id": "ML-Nginx-Access-Top-Remote-IPs-Table-ecs", - "type": "visualization", - "version": 3 - }, - { - "attributes": { - "description": "", - "kibanaSavedObjectMeta": { - "searchSourceJSON": { - "filter": [] - } - }, - "savedSearchId": "ML-Filebeat-Nginx-Access-ecs", - "title": "Access Map [Filebeat Nginx] [ML] ECS", - "uiStateJSON": { - "mapCenter": [ - 12.039320557540572, - -0.17578125 - ] - }, - "version": 1, - "visState": { - "aggs": [ - { - "enabled": true, - "id": "1", - "params": {}, - "schema": "metric", - "type": "count" - }, - { - "enabled": true, - "id": "2", - "params": { - "autoPrecision": true, - "field": "source.geo.location" - }, - "schema": "segment", - "type": "geohash_grid" - } - ], - "listeners": {}, - "params": { - "addTooltip": true, - "heatBlur": 15, - "heatMaxZoom": 16, - "heatMinOpacity": 0.1, - "heatNormalizeData": true, - "heatRadius": 25, - "isDesaturated": true, - "legendPosition": "bottomright", - "mapCenter": [ - 15, - 5 - ], - "mapType": "Scaled Circle Markers", - "mapZoom": 2, - "wms": { - "enabled": false, - "options": { - "attribution": "Maps provided by USGS", - "format": "image/png", - "layers": "0", - "styles": "", - "transparent": true, - "version": "1.3.0" - }, - "url": "https://basemap.nationalmap.gov/arcgis/services/USGSTopo/MapServer/WMSServer" - } - }, - "title": "ML Nginx Access Map ECS", - "type": "tile_map" - } - }, - "id": "ML-Nginx-Access-Map-ecs", - "type": "visualization", - "version": 3 - }, - { - "attributes": { - "description": "", - "kibanaSavedObjectMeta": { - "searchSourceJSON": {} - }, - "savedSearchId": "ML-Filebeat-Nginx-Access-ecs", - "title": "Top URLs [Filebeat Nginx] [ML] ECS", - "uiStateJSON": { - "vis": { - "params": { - "sort": { - "columnIndex": null, - "direction": null - } - } - } - }, - "version": 1, - "visState": { - "aggs": [ - { - "enabled": true, - "id": "1", - "params": {}, - "schema": "metric", - "type": "count" - }, - { - "enabled": true, - "id": "2", - "params": { - "field": "url.original", - "order": "desc", - "orderBy": "1", - "size": 1000 - }, - "schema": "bucket", - "type": "terms" - } - ], - "listeners": {}, - "params": { - "perPage": 100, - "showMeticsAtAllLevels": false, - "showPartialRows": false, - "showTotal": false, - "sort": { - "columnIndex": null, - "direction": null - }, - "totalFunc": "sum" - }, - "title": "ML Nginx Access Top URLs Table ECS", - "type": "table" - } - }, - "id": "ML-Nginx-Access-Top-URLs-Table-ecs", - "type": "visualization", - "version": 3 - }, - { - "attributes": { - "columns": [ - "_source" - ], - "description": "Filebeat Nginx Access Data", - "hits": 0, - "kibanaSavedObjectMeta": { - "searchSourceJSON": { - "filter": [], - "highlight": { - "fields": { - "*": {} - }, - "fragment_size": 2147483647, - "post_tags": [ - "@/kibana-highlighted-field@" - ], - "pre_tags": [ - "@kibana-highlighted-field@" - ], - "require_field_match": false - }, - "index": "filebeat-*", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "event.dataset:nginx.access" - } - } - } - }, - "sort": [ - "@timestamp", - "desc" - ], - "title": "ML Access Data [Filebeat Nginx] ECS", - "version": 1 - }, - "id": "ML-Filebeat-Nginx-Access-ecs", - "type": "search", - "version": 3 - }, - { - "attributes": { - "description": "Machine Learning dashboard for the Filebeat Nginx module", - "hits": 0, - "kibanaSavedObjectMeta": { - "searchSourceJSON": { - "filter": [ - { - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } - } - ], - "highlightAll": true, - "version": true - } - }, - "optionsJSON": { - "darkTheme": false - }, - "panelsJSON": [ - { - "col": 1, - "id": "ML-Nginx-Access-Unique-Count-URL-Timechart-ecs", - "panelIndex": 1, - "row": 1, - "size_x": 6, - "size_y": 3, - "type": "visualization" - }, - { - "col": 7, - "id": "ML-Nginx-Access-Response-Code-Timechart-ecs", - "panelIndex": 2, - "row": 1, - "size_x": 6, - "size_y": 3, - "type": "visualization" - }, - { - "col": 1, - "id": "ML-Nginx-Access-Top-Remote-IPs-Table-ecs", - "panelIndex": 3, - "row": 4, - "size_x": 6, - "size_y": 3, - "type": "visualization" - }, - { - "col": 7, - "id": "ML-Nginx-Access-Map-ecs", - "panelIndex": 4, - "row": 4, - "size_x": 6, - "size_y": 3, - "type": "visualization" - }, - { - "col": 1, - "id": "ML-Nginx-Access-Top-URLs-Table-ecs", - "panelIndex": 5, - "row": 7, - "size_x": 12, - "size_y": 8, - "type": "visualization" - } - ], - "timeRestore": false, - "title": "[Filebeat Nginx] [ML] Remote IP URL Explorer ECS", - "uiStateJSON": { - "P-2": { - "vis": { - "params": { - "sort": { - "columnIndex": null, - "direction": null - } - } - } - }, - "P-3": { - "vis": { - "params": { - "sort": { - "columnIndex": null, - "direction": null - } - } - } - }, - "P-5": { - "vis": { - "params": { - "sort": { - "columnIndex": null, - "direction": null - } - } - } - } - }, - "version": 1 - }, - "id": "ML-Nginx-Remote-IP-URL-Explorer-ecs", - "type": "dashboard", - "version": 4 - } - ], - "version": "6.0.0-beta1-SNAPSHOT" -} diff --git a/filebeat/module/nginx/access/machine_learning/datafeed_low_request_rate.json b/filebeat/module/nginx/access/machine_learning/datafeed_low_request_rate.json deleted file mode 100644 index ccad016edd5..00000000000 --- a/filebeat/module/nginx/access/machine_learning/datafeed_low_request_rate.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "job_id": "JOB_ID", - "indexes": [ - "filebeat-*" - ], - "query": { - "bool": { - "filter": [ - { "term": { "fileset.module": "nginx" } }, - { "term": { "fileset.name": "access" } } - ] - } - }, - "aggregations": { - "buckets": { - "date_histogram": { - "field": "@timestamp", - "interval": 900000, - "offset": 0, - "order": { - "_key": "asc" - }, - "keyed": false, - "min_doc_count": 0 - }, - "aggregations": { - "@timestamp": { - "max": { - "field": "@timestamp" - } - } - } - } - } -} diff --git a/filebeat/module/nginx/access/machine_learning/datafeed_remote_ip_request_rate.json b/filebeat/module/nginx/access/machine_learning/datafeed_remote_ip_request_rate.json deleted file mode 100644 index 718b841eccb..00000000000 --- a/filebeat/module/nginx/access/machine_learning/datafeed_remote_ip_request_rate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "job_id": "JOB_ID", - "indexes": [ - "filebeat-*" - ], - "query": { - "bool": { - "filter": [ - { "term": { "fileset.module": "nginx" } }, - { "term": { "fileset.name": "access" } } - ] - } - } -} diff --git a/filebeat/module/nginx/access/machine_learning/datafeed_remote_ip_url_count.json b/filebeat/module/nginx/access/machine_learning/datafeed_remote_ip_url_count.json deleted file mode 100644 index 718b841eccb..00000000000 --- a/filebeat/module/nginx/access/machine_learning/datafeed_remote_ip_url_count.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "job_id": "JOB_ID", - "indexes": [ - "filebeat-*" - ], - "query": { - "bool": { - "filter": [ - { "term": { "fileset.module": "nginx" } }, - { "term": { "fileset.name": "access" } } - ] - } - } -} diff --git a/filebeat/module/nginx/access/machine_learning/datafeed_response_code.json b/filebeat/module/nginx/access/machine_learning/datafeed_response_code.json deleted file mode 100644 index 718b841eccb..00000000000 --- a/filebeat/module/nginx/access/machine_learning/datafeed_response_code.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "job_id": "JOB_ID", - "indexes": [ - "filebeat-*" - ], - "query": { - "bool": { - "filter": [ - { "term": { "fileset.module": "nginx" } }, - { "term": { "fileset.name": "access" } } - ] - } - } -} diff --git a/filebeat/module/nginx/access/machine_learning/datafeed_visitor_rate.json b/filebeat/module/nginx/access/machine_learning/datafeed_visitor_rate.json deleted file mode 100644 index ec6c86b5975..00000000000 --- a/filebeat/module/nginx/access/machine_learning/datafeed_visitor_rate.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "job_id": "JOB_ID", - "indexes": [ - "filebeat-*" - ], - "query": { - "bool": { - "filter": [ - { "term": { "fileset.module": "nginx" } }, - { "term": { "fileset.name": "access" } } - ] - } - }, - "aggregations": { - "buckets": { - "date_histogram": { - "field": "@timestamp", - "interval": 900000, - "offset": 0, - "order": { - "_key": "asc" - }, - "keyed": false, - "min_doc_count": 0 - }, - "aggregations": { - "@timestamp": { - "max": { - "field": "@timestamp" - } - }, - "dc_remote_ips": { - "cardinality": { - "field": "nginx.access.remote_ip" - } - } - } - } - } -} diff --git a/filebeat/module/nginx/access/machine_learning/low_request_rate.json b/filebeat/module/nginx/access/machine_learning/low_request_rate.json deleted file mode 100644 index 3af64d344e7..00000000000 --- a/filebeat/module/nginx/access/machine_learning/low_request_rate.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "description": "Nginx Access Logs: Detect low request rate", - "analysis_config" : { - "bucket_span": "15m", - "summary_count_field_name": "doc_count", - "detectors": [ - { - "detector_description": "nginx_access_low_request_rate", - "function": "low_count" - } - ], - "influencers": [] - }, - "data_description": { - "time_field": "@timestamp", - "time_format": "epoch_ms" - }, - "model_plot_config": { - "enabled": true - }, - "custom_settings": { - "custom_urls": [ - { - "url_name": "Raw Data", - "url_value": "kibana#/discover/ML-Filebeat-Nginx-Access?_g=(refreshInterval:(display:Off,pause:!f,value:0),time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(columns:!(_source),filters:!(),index:\u0027filebeat-*\u0027,interval:auto,query:(query_string:(analyze_wildcard:!t,query:\u0027*\u0027)),sort:!(\u0027@timestamp\u0027,desc))" - } - ] - } -} diff --git a/filebeat/module/nginx/access/machine_learning/remote_ip_request_rate.json b/filebeat/module/nginx/access/machine_learning/remote_ip_request_rate.json deleted file mode 100644 index eaaf9fa4624..00000000000 --- a/filebeat/module/nginx/access/machine_learning/remote_ip_request_rate.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "description": "Nginx Access Logs: Detect unusual remote_ips - high request rates", - "analysis_config" : { - "bucket_span": "1h", - "detectors": [ - { - "detector_description": "nginx_access_remote_ip_high_count", - "function": "high_count", - "over_field_name": "nginx.access.remote_ip" - } - ], - "influencers": [ - "nginx.access.remote_ip" - ] - }, - "data_description": { - "time_field": "@timestamp", - "time_format": "epoch_ms" - }, - "custom_settings": { - "custom_urls": [ - { - "url_name": "Count Explorer", - "url_value": "kibana#/dashboard/ML-Nginx-Access-Remote-IP-Count-Explorer?_g=(refreshInterval:(display:Off,pause:!f,value:0),time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(description:\u0027\u0027,filters:!((\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027filebeat-*\u0027,key:nginx.access.remote_ip,negate:!f,type:phrase,value:\u0027$nginx.access.remote_ip$\u0027),query:(match:(nginx.access.remote_ip:(query:\u0027$nginx.access.remote_ip$\u0027,type:phrase))))),options:(darkTheme:!f),panels:!((col:1,id:ML-Nginx-Access-Remote-IP-Timechart,panelIndex:1,row:1,size_x:6,size_y:3,type:visualization),(col:7,id:ML-Nginx-Access-Response-Code-Timechart,panelIndex:2,row:1,size_x:6,size_y:3,type:visualization),(col:1,id:ML-Nginx-Access-Top-Remote-IPs-Table,panelIndex:3,row:4,size_x:6,size_y:3,type:visualization),(col:7,id:ML-Nginx-Access-Map,panelIndex:4,row:4,size_x:6,size_y:3,type:visualization),(col:1,id:ML-Nginx-Access-Top-URLs-Table,panelIndex:5,row:7,size_x:12,size_y:9,type:visualization)),query:(query_string:(analyze_wildcard:!t,query:\u0027*\u0027)),timeRestore:!f,title:\u0027ML%20Nginx%20Access%20Remote%20IP%20Count%20Explorer\u0027,uiState:(P-3:(vis:(params:(sort:(columnIndex:!n,direction:!n)))),P-5:(vis:(params:(sort:(columnIndex:!n,direction:!n))))),viewMode:view)" - }, - { - "url_name": "Raw Data", - "url_value": "kibana#/discover/ML-Filebeat-Nginx-Access?_g=(refreshInterval:(display:Off,pause:!f,value:0),time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(columns:!(_source),filters:!((\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027filebeat-*\u0027,key:nginx.access.remote_ip,negate:!f,type:phrase,value:\u0027$nginx.access.remote_ip$\u0027),query:(match:(nginx.access.remote_ip:(query:\u0027$nginx.access.remote_ip$\u0027,type:phrase))))),index:\u0027filebeat-*\u0027,interval:auto,query:(query_string:(analyze_wildcard:!t,query:\u0027*\u0027)),sort:!(\u0027@timestamp\u0027,desc))" - } - ] - } -} diff --git a/filebeat/module/nginx/access/machine_learning/remote_ip_url_count.json b/filebeat/module/nginx/access/machine_learning/remote_ip_url_count.json deleted file mode 100644 index d2572547a64..00000000000 --- a/filebeat/module/nginx/access/machine_learning/remote_ip_url_count.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "description": "Nginx Access Logs: Detect unusual remote_ips - high distinct count of urls", - "analysis_config" : { - "bucket_span": "1h", - "detectors": [ - { - "detector_description": "nginx_access_remote_ip_high_dc_url", - "function": "high_distinct_count", - "field_name": "nginx.access.url", - "over_field_name": "nginx.access.remote_ip" - } - ], - "influencers": [ - "nginx.access.remote_ip" - ] - }, - "data_description": { - "time_field": "@timestamp", - "time_format": "epoch_ms" - }, - "custom_settings": { - "custom_urls": [ - { - "url_name": "URL Explorer", - "url_value": "kibana#/dashboard/ML-Nginx-Remote-IP-URL-Explorer?_g=(refreshInterval:(display:Off,pause:!f,value:0),time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(description:\u0027\u0027,filters:!((\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027filebeat-*\u0027,key:nginx.access.remote_ip,negate:!f,type:phrase,value:\u0027$nginx.access.remote_ip$\u0027),query:(match:(nginx.access.remote_ip:(query:\u0027$nginx.access.remote_ip$\u0027,type:phrase))))),options:(darkTheme:!f),panels:!((col:1,id:ML-Nginx-Access-Unique-Count-URL-Timechart,panelIndex:1,row:1,size_x:6,size_y:3,type:visualization),(col:7,id:ML-Nginx-Access-Response-Code-Timechart,panelIndex:2,row:1,size_x:6,size_y:3,type:visualization),(col:1,id:ML-Nginx-Access-Top-Remote-IPs-Table,panelIndex:3,row:4,size_x:6,size_y:3,type:visualization),(col:7,id:ML-Nginx-Access-Map,panelIndex:4,row:4,size_x:6,size_y:3,type:visualization),(col:1,id:ML-Nginx-Access-Top-URLs-Table,panelIndex:5,row:7,size_x:12,size_y:8,type:visualization)),query:(query_string:(analyze_wildcard:!t,query:\u0027*\u0027)),timeRestore:!f,title:\u0027ML%20Nginx%20Access%20Remote%20IP%20URL%20Explorer\u0027,uiState:(P-2:(vis:(params:(sort:(columnIndex:!n,direction:!n)))),P-3:(vis:(params:(sort:(columnIndex:!n,direction:!n)))),P-5:(vis:(params:(sort:(columnIndex:!n,direction:!n))))),viewMode:view)" - }, - { - "url_name": "Raw Data", - "url_value": "kibana#/discover/ML-Filebeat-Nginx-Access?_g=(refreshInterval:(display:Off,pause:!f,value:0),time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(columns:!(_source),filters:!((\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027filebeat-*\u0027,key:nginx.access.remote_ip,negate:!f,type:phrase,value:\u0027$nginx.access.remote_ip$\u0027),query:(match:(nginx.access.remote_ip:(query:\u0027$nginx.access.remote_ip$\u0027,type:phrase))))),index:\u0027filebeat-*\u0027,interval:auto,query:(query_string:(analyze_wildcard:!t,query:\u0027*\u0027)),sort:!(\u0027@timestamp\u0027,desc))" - } - ] - } -} diff --git a/filebeat/module/nginx/access/machine_learning/response_code.json b/filebeat/module/nginx/access/machine_learning/response_code.json deleted file mode 100644 index 25994910d1e..00000000000 --- a/filebeat/module/nginx/access/machine_learning/response_code.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "description": "Nginx Access Logs: Detect unusual response_code rates", - "analysis_config" : { - "bucket_span": "15m", - "detectors": [ - { - "detector_description": "nginx_access_response_code_rate", - "function": "count", - "partition_field_name": "nginx.access.response_code" - } - ], - "influencers": [ - "nginx.access.response_code", - "nginx.access.remote_ip" - ] - }, - "data_description": { - "time_field": "@timestamp", - "time_format": "epoch_ms" - }, - "model_plot_config": { - "enabled": true - }, - "custom_settings": { - "custom_urls": [ - { - "url_name": "Count Explorer", - "url_value": "kibana#/dashboard/ML-Nginx-Access-Remote-IP-Count-Explorer?_g=(refreshInterval:(display:Off,pause:!f,value:0),time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(description:\u0027\u0027,filters:!((\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027filebeat-*\u0027,key:nginx.access.response_code,negate:!f,type:phrase,value:\u0027$nginx.access.response_code$\u0027),query:(match:(nginx.access.response_code:(query:\u0027$nginx.access.response_code$\u0027,type:phrase))))),options:(darkTheme:!f),panels:!((col:1,id:ML-Nginx-Access-Remote-IP-Timechart,panelIndex:1,row:1,size_x:6,size_y:3,type:visualization),(col:7,id:ML-Nginx-Access-Response-Code-Timechart,panelIndex:2,row:1,size_x:6,size_y:3,type:visualization),(col:1,id:ML-Nginx-Access-Top-Remote-IPs-Table,panelIndex:3,row:4,size_x:6,size_y:3,type:visualization),(col:7,id:ML-Nginx-Access-Map,panelIndex:4,row:4,size_x:6,size_y:3,type:visualization),(col:1,id:ML-Nginx-Access-Top-URLs-Table,panelIndex:5,row:7,size_x:12,size_y:9,type:visualization)),query:(query_string:(analyze_wildcard:!t,query:\u0027*\u0027)),timeRestore:!f,title:\u0027ML%20Nginx%20Access%20Remote%20IP%20Count%20Explorer\u0027,uiState:(P-3:(vis:(params:(sort:(columnIndex:!n,direction:!n)))),P-5:(vis:(params:(sort:(columnIndex:!n,direction:!n))))),viewMode:view)" - }, - { - "url_name": "Raw Data", - "url_value": "kibana#/discover/ML-Filebeat-Nginx-Access?_g=(refreshInterval:(display:Off,pause:!f,value:0),time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(columns:!(_source),filters:!((\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027filebeat-*\u0027,key:nginx.access.response_code,negate:!f,type:phrase,value:\u0027$nginx.access.response_code$\u0027),query:(match:(nginx.access.response_code:(query:\u0027$nginx.access.response_code$\u0027,type:phrase))))),index:\u0027filebeat-*\u0027,interval:auto,query:(query_string:(analyze_wildcard:!t,query:\u0027event.dataset:nginx.access\u0027)),sort:!(\u0027@timestamp\u0027,desc))" - } - ] - } -} diff --git a/filebeat/module/nginx/access/machine_learning/visitor_rate.json b/filebeat/module/nginx/access/machine_learning/visitor_rate.json deleted file mode 100644 index 15871e06191..00000000000 --- a/filebeat/module/nginx/access/machine_learning/visitor_rate.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "description": "Nginx Access Logs: Detect unusual visitor rate", - "analysis_config" : { - "bucket_span": "15m", - "summary_count_field_name": "dc_remote_ips", - "detectors": [ - { - "detector_description": "nginx_access_visitor_rate", - "function": "non_zero_count" - } - ], - "influencers": [] - }, - "data_description": { - "time_field": "@timestamp", - "time_format": "epoch_ms" - }, - "model_plot_config": { - "enabled": true - }, - "custom_settings": { - "custom_urls": [ - { - "url_name": "Raw Data", - "url_value": "kibana#/discover/ML-Filebeat-Nginx-Access?_g=(refreshInterval:(display:Off,pause:!f,value:0),time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(columns:!(_source),filters:!(),index:\u0027filebeat-*\u0027,interval:auto,query:(query_string:(analyze_wildcard:!t,query:\u0027*\u0027)),sort:!(\u0027@timestamp\u0027,desc))" - } - ] - } -} diff --git a/filebeat/module/traefik/_meta/kibana/7/dashboard/ml-traefik-access-remote-ip-count-explorer.json b/filebeat/module/traefik/_meta/kibana/7/dashboard/ml-traefik-access-remote-ip-count-explorer.json deleted file mode 100644 index 51cbb1a2312..00000000000 --- a/filebeat/module/traefik/_meta/kibana/7/dashboard/ml-traefik-access-remote-ip-count-explorer.json +++ /dev/null @@ -1,553 +0,0 @@ -{ - "objects": [ - { - "attributes": { - "description": "", - "kibanaSavedObjectMeta": { - "searchSourceJSON": {} - }, - "savedSearchId": "ML-Filebeat-Traefik-Access-ecs", - "title": "Remote IP Timechart [Filebeat Traefik] [ML] ECS", - "uiStateJSON": { - "vis": { - "legendOpen": false - } - }, - "version": 1, - "visState": { - "aggs": [ - { - "enabled": true, - "id": "1", - "params": {}, - "schema": "metric", - "type": "count" - }, - { - "enabled": true, - "id": "2", - "params": { - "customInterval": "2h", - "extended_bounds": {}, - "field": "@timestamp", - "interval": "auto", - "min_doc_count": 1 - }, - "schema": "segment", - "type": "date_histogram" - }, - { - "enabled": true, - "id": "3", - "params": { - "field": "source.address", - "order": "desc", - "orderBy": "1", - "size": 5 - }, - "schema": "group", - "type": "terms" - } - ], - "listeners": {}, - "params": { - "addLegend": true, - "addTimeMarker": false, - "addTooltip": true, - "categoryAxes": [ - { - "id": "CategoryAxis-1", - "labels": { - "show": true, - "truncate": 100 - }, - "position": "bottom", - "scale": { - "type": "linear" - }, - "show": true, - "style": {}, - "title": { - "text": "@timestamp per 5 minutes" - }, - "type": "category" - } - ], - "defaultYExtents": false, - "drawLinesBetweenPoints": true, - "grid": { - "categoryLines": false, - "style": { - "color": "#eee" - } - }, - "interpolate": "linear", - "legendPosition": "right", - "radiusRatio": 9, - "scale": "linear", - "seriesParams": [ - { - "data": { - "id": "1", - "label": "Count" - }, - "drawLinesBetweenPoints": true, - "interpolate": "linear", - "mode": "stacked", - "show": "true", - "showCircles": true, - "type": "area", - "valueAxis": "ValueAxis-1" - } - ], - "setYExtents": false, - "showCircles": true, - "times": [], - "valueAxes": [ - { - "id": "ValueAxis-1", - "labels": { - "filter": false, - "rotate": 0, - "show": true, - "truncate": 100 - }, - "name": "LeftAxis-1", - "position": "left", - "scale": { - "mode": "normal", - "type": "linear" - }, - "show": true, - "style": {}, - "title": {}, - "type": "value" - } - ] - }, - "title": "ML Traefik Access Remote IP Timechart ECS", - "type": "area" - } - }, - "id": "ML-Traefik-Access-Remote-IP-Timechart-ecs", - "type": "visualization", - "version": 2 - }, - { - "attributes": { - "description": "", - "kibanaSavedObjectMeta": { - "searchSourceJSON": { - "filter": [] - } - }, - "savedSearchId": "ML-Filebeat-Traefik-Access-ecs", - "title": "Response Code Timechart [Filebeat Traefik] [ML] ECS", - "uiStateJSON": { - "vis": { - "colors": { - "200": "#7EB26D", - "404": "#614D93" - } - } - }, - "version": 1, - "visState": { - "aggs": [ - { - "enabled": true, - "id": "1", - "params": {}, - "schema": "metric", - "type": "count" - }, - { - "enabled": true, - "id": "2", - "params": { - "customInterval": "2h", - "extended_bounds": {}, - "field": "@timestamp", - "interval": "auto", - "min_doc_count": 1 - }, - "schema": "segment", - "type": "date_histogram" - }, - { - "enabled": true, - "id": "3", - "params": { - "field": "http.response.status_code", - "order": "desc", - "orderBy": "1", - "size": 5 - }, - "schema": "group", - "type": "terms" - } - ], - "listeners": {}, - "params": { - "addLegend": true, - "addTimeMarker": false, - "addTooltip": true, - "defaultYExtents": false, - "legendPosition": "right", - "mode": "stacked", - "scale": "linear", - "setYExtents": false, - "shareYAxis": true, - "times": [], - "yAxis": {} - }, - "title": "ML Traefik Access Response Code Timechart ECS", - "type": "histogram" - } - }, - "id": "ML-Traefik-Access-Response-Code-Timechart-ecs", - "type": "visualization", - "version": 3 - }, - { - "attributes": { - "description": "", - "kibanaSavedObjectMeta": { - "searchSourceJSON": {} - }, - "savedSearchId": "ML-Filebeat-Traefik-Access-ecs", - "title": "Top Remote IPs [Filebeat Traefik] [ML] ECS", - "uiStateJSON": { - "vis": { - "params": { - "sort": { - "columnIndex": null, - "direction": null - } - } - } - }, - "version": 1, - "visState": { - "aggs": [ - { - "enabled": true, - "id": "1", - "params": {}, - "schema": "metric", - "type": "count" - }, - { - "enabled": true, - "id": "2", - "params": { - "field": "source.address", - "order": "desc", - "orderBy": "1", - "size": 5 - }, - "schema": "bucket", - "type": "terms" - } - ], - "listeners": {}, - "params": { - "perPage": 10, - "showMeticsAtAllLevels": false, - "showPartialRows": false, - "showTotal": false, - "sort": { - "columnIndex": null, - "direction": null - }, - "totalFunc": "sum" - }, - "title": "ML Traefik Access Top Remote IPs Table ECS", - "type": "table" - } - }, - "id": "ML-Traefik-Access-Top-Remote-IPs-Table-ecs", - "type": "visualization", - "version": 3 - }, - { - "attributes": { - "description": "", - "kibanaSavedObjectMeta": { - "searchSourceJSON": { - "filter": [] - } - }, - "savedSearchId": "ML-Filebeat-Traefik-Access-ecs", - "title": "Access Map [Filebeat Traefik] [ML] ECS", - "uiStateJSON": { - "mapCenter": [ - 12.039320557540572, - -0.17578125 - ] - }, - "version": 1, - "visState": { - "aggs": [ - { - "enabled": true, - "id": "1", - "params": {}, - "schema": "metric", - "type": "count" - }, - { - "enabled": true, - "id": "2", - "params": { - "autoPrecision": true, - "field": "source.geo.location" - }, - "schema": "segment", - "type": "geohash_grid" - } - ], - "listeners": {}, - "params": { - "addTooltip": true, - "heatBlur": 15, - "heatMaxZoom": 16, - "heatMinOpacity": 0.1, - "heatNormalizeData": true, - "heatRadius": 25, - "isDesaturated": true, - "legendPosition": "bottomright", - "mapCenter": [ - 15, - 5 - ], - "mapType": "Scaled Circle Markers", - "mapZoom": 2, - "wms": { - "enabled": false, - "options": { - "attribution": "Maps provided by USGS", - "format": "image/png", - "layers": "0", - "styles": "", - "transparent": true, - "version": "1.3.0" - }, - "url": "https://basemap.nationalmap.gov/arcgis/services/USGSTopo/MapServer/WMSServer" - } - }, - "title": "ML Traefik Access Map ECS", - "type": "tile_map" - } - }, - "id": "ML-Traefik-Access-Map-ecs", - "type": "visualization", - "version": 3 - }, - { - "attributes": { - "description": "", - "kibanaSavedObjectMeta": { - "searchSourceJSON": {} - }, - "savedSearchId": "ML-Filebeat-Traefik-Access-ecs", - "title": "Top URLs [Filebeat Traefik] [ML] ECS", - "uiStateJSON": { - "vis": { - "params": { - "sort": { - "columnIndex": null, - "direction": null - } - } - } - }, - "version": 1, - "visState": { - "aggs": [ - { - "enabled": true, - "id": "1", - "params": {}, - "schema": "metric", - "type": "count" - }, - { - "enabled": true, - "id": "2", - "params": { - "field": "url.original", - "order": "desc", - "orderBy": "1", - "size": 1000 - }, - "schema": "bucket", - "type": "terms" - } - ], - "listeners": {}, - "params": { - "perPage": 100, - "showMeticsAtAllLevels": false, - "showPartialRows": false, - "showTotal": false, - "sort": { - "columnIndex": null, - "direction": null - }, - "totalFunc": "sum" - }, - "title": "ML Traefik Access Top URLs Table ECS", - "type": "table" - } - }, - "id": "ML-Traefik-Access-Top-URLs-Table-ecs", - "type": "visualization", - "version": 3 - }, - { - "attributes": { - "columns": [ - "_source" - ], - "description": "Filebeat Traefik Access Data", - "hits": 0, - "kibanaSavedObjectMeta": { - "searchSourceJSON": { - "filter": [], - "highlight": { - "fields": { - "*": {} - }, - "fragment_size": 2147483647, - "post_tags": [ - "@/kibana-highlighted-field@" - ], - "pre_tags": [ - "@kibana-highlighted-field@" - ], - "require_field_match": false - }, - "index": "filebeat-*", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "event.dataset:traefik.access" - } - } - } - }, - "sort": [ - "@timestamp", - "desc" - ], - "title": "ML Access Data [Filebeat Traefik] ECS", - "version": 1 - }, - "id": "ML-Filebeat-Traefik-Access-ecs", - "type": "search", - "version": 3 - }, - { - "attributes": { - "description": "Machine learning dashboard, for the Filebeat Traefik module", - "hits": 0, - "kibanaSavedObjectMeta": { - "searchSourceJSON": { - "filter": [ - { - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } - } - ], - "highlightAll": true, - "version": true - } - }, - "optionsJSON": { - "darkTheme": false - }, - "panelsJSON": [ - { - "col": 1, - "id": "ML-Traefik-Access-Remote-IP-Timechart-ecs", - "panelIndex": 1, - "row": 1, - "size_x": 6, - "size_y": 3, - "type": "visualization" - }, - { - "col": 7, - "id": "ML-Traefik-Access-Response-Code-Timechart-ecs", - "panelIndex": 2, - "row": 1, - "size_x": 6, - "size_y": 3, - "type": "visualization" - }, - { - "col": 1, - "id": "ML-Traefik-Access-Top-Remote-IPs-Table-ecs", - "panelIndex": 3, - "row": 4, - "size_x": 6, - "size_y": 3, - "type": "visualization" - }, - { - "col": 7, - "id": "ML-Traefik-Access-Map-ecs", - "panelIndex": 4, - "row": 4, - "size_x": 6, - "size_y": 3, - "type": "visualization" - }, - { - "col": 1, - "id": "ML-Traefik-Access-Top-URLs-Table-ecs", - "panelIndex": 5, - "row": 7, - "size_x": 12, - "size_y": 9, - "type": "visualization" - } - ], - "timeRestore": false, - "title": "[Filebeat Traefik] [ML] Remote IP Count Explorer ECS", - "uiStateJSON": { - "P-3": { - "vis": { - "params": { - "sort": { - "columnIndex": null, - "direction": null - } - } - } - }, - "P-5": { - "vis": { - "params": { - "sort": { - "columnIndex": null, - "direction": null - } - } - } - } - }, - "version": 1 - }, - "id": "ML-Traefik-Access-Remote-IP-Count-Explorer-ecs", - "type": "dashboard", - "version": 3 - } - ], - "version": "6.0.0-beta1-SNAPSHOT" -} diff --git a/filebeat/module/traefik/_meta/kibana/7/dashboard/ml-traefik-remote-ip-url-explorer.json b/filebeat/module/traefik/_meta/kibana/7/dashboard/ml-traefik-remote-ip-url-explorer.json deleted file mode 100644 index d406a5c90f1..00000000000 --- a/filebeat/module/traefik/_meta/kibana/7/dashboard/ml-traefik-remote-ip-url-explorer.json +++ /dev/null @@ -1,552 +0,0 @@ -{ - "objects": [ - { - "attributes": { - "description": "", - "kibanaSavedObjectMeta": { - "searchSourceJSON": {} - }, - "savedSearchId": "ML-Filebeat-Traefik-Access-ecs", - "title": "Unique Count URL Timechart [Filebeat Traefik] [ML] ECS", - "uiStateJSON": {}, - "version": 1, - "visState": { - "aggs": [ - { - "enabled": true, - "id": "1", - "params": { - "field": "url.original" - }, - "schema": "metric", - "type": "cardinality" - }, - { - "enabled": true, - "id": "2", - "params": { - "customInterval": "2h", - "extended_bounds": {}, - "field": "@timestamp", - "interval": "auto", - "min_doc_count": 1 - }, - "schema": "segment", - "type": "date_histogram" - } - ], - "listeners": {}, - "params": { - "addLegend": true, - "addTimeMarker": false, - "addTooltip": true, - "categoryAxes": [ - { - "id": "CategoryAxis-1", - "labels": { - "show": true, - "truncate": 100 - }, - "position": "bottom", - "scale": { - "type": "linear" - }, - "show": true, - "style": {}, - "title": { - "text": "@timestamp per day" - }, - "type": "category" - } - ], - "defaultYExtents": false, - "drawLinesBetweenPoints": true, - "grid": { - "categoryLines": false, - "style": { - "color": "#eee" - } - }, - "interpolate": "linear", - "legendPosition": "right", - "radiusRatio": 9, - "scale": "linear", - "seriesParams": [ - { - "data": { - "id": "1", - "label": "Unique count of traefik.access.url" - }, - "drawLinesBetweenPoints": true, - "interpolate": "linear", - "lineWidth": 2, - "mode": "normal", - "show": true, - "showCircles": true, - "type": "line", - "valueAxis": "ValueAxis-1" - } - ], - "setYExtents": false, - "showCircles": true, - "times": [], - "valueAxes": [ - { - "id": "ValueAxis-1", - "labels": { - "filter": false, - "rotate": 0, - "show": true, - "truncate": 100 - }, - "name": "LeftAxis-1", - "position": "left", - "scale": { - "mode": "normal", - "type": "linear" - }, - "show": true, - "style": {}, - "title": { - "text": "Unique count of traefik.access.url" - }, - "type": "value" - } - ] - }, - "title": "ML Traefik Access Unique Count URL Timechart ECS", - "type": "line" - } - }, - "id": "ML-Traefik-Access-Unique-Count-URL-Timechart-ecs", - "type": "visualization", - "version": 2 - }, - { - "attributes": { - "description": "", - "kibanaSavedObjectMeta": { - "searchSourceJSON": { - "filter": [] - } - }, - "savedSearchId": "ML-Filebeat-Traefik-Access-ecs", - "title": "Response Code Timechart [Filebeat Traefik] [ML] ECS", - "uiStateJSON": { - "vis": { - "colors": { - "200": "#7EB26D", - "404": "#614D93" - } - } - }, - "version": 1, - "visState": { - "aggs": [ - { - "enabled": true, - "id": "1", - "params": {}, - "schema": "metric", - "type": "count" - }, - { - "enabled": true, - "id": "2", - "params": { - "customInterval": "2h", - "extended_bounds": {}, - "field": "@timestamp", - "interval": "auto", - "min_doc_count": 1 - }, - "schema": "segment", - "type": "date_histogram" - }, - { - "enabled": true, - "id": "3", - "params": { - "field": "http.response.status_code", - "order": "desc", - "orderBy": "1", - "size": 5 - }, - "schema": "group", - "type": "terms" - } - ], - "listeners": {}, - "params": { - "addLegend": true, - "addTimeMarker": false, - "addTooltip": true, - "defaultYExtents": false, - "legendPosition": "right", - "mode": "stacked", - "scale": "linear", - "setYExtents": false, - "shareYAxis": true, - "times": [], - "yAxis": {} - }, - "title": "ML Traefik Access Response Code Timechart ECS", - "type": "histogram" - } - }, - "id": "ML-Traefik-Access-Response-Code-Timechart-ecs", - "type": "visualization", - "version": 3 - }, - { - "attributes": { - "description": "", - "kibanaSavedObjectMeta": { - "searchSourceJSON": {} - }, - "savedSearchId": "ML-Filebeat-Traefik-Access-ecs", - "title": "Top Remote IPs [Filebeat Traefik] [ML] ECS", - "uiStateJSON": { - "vis": { - "params": { - "sort": { - "columnIndex": null, - "direction": null - } - } - } - }, - "version": 1, - "visState": { - "aggs": [ - { - "enabled": true, - "id": "1", - "params": {}, - "schema": "metric", - "type": "count" - }, - { - "enabled": true, - "id": "2", - "params": { - "field": "source.address", - "order": "desc", - "orderBy": "1", - "size": 5 - }, - "schema": "bucket", - "type": "terms" - } - ], - "listeners": {}, - "params": { - "perPage": 10, - "showMeticsAtAllLevels": false, - "showPartialRows": false, - "showTotal": false, - "sort": { - "columnIndex": null, - "direction": null - }, - "totalFunc": "sum" - }, - "title": "ML Traefik Access Top Remote IPs Table ECS", - "type": "table" - } - }, - "id": "ML-Traefik-Access-Top-Remote-IPs-Table-ecs", - "type": "visualization", - "version": 3 - }, - { - "attributes": { - "description": "", - "kibanaSavedObjectMeta": { - "searchSourceJSON": { - "filter": [] - } - }, - "savedSearchId": "ML-Filebeat-Traefik-Access-ecs", - "title": "Access Map [Filebeat Traefik] [ML] ECS", - "uiStateJSON": { - "mapCenter": [ - 12.039320557540572, - -0.17578125 - ] - }, - "version": 1, - "visState": { - "aggs": [ - { - "enabled": true, - "id": "1", - "params": {}, - "schema": "metric", - "type": "count" - }, - { - "enabled": true, - "id": "2", - "params": { - "autoPrecision": true, - "field": "source.geo.location" - }, - "schema": "segment", - "type": "geohash_grid" - } - ], - "listeners": {}, - "params": { - "addTooltip": true, - "heatBlur": 15, - "heatMaxZoom": 16, - "heatMinOpacity": 0.1, - "heatNormalizeData": true, - "heatRadius": 25, - "isDesaturated": true, - "legendPosition": "bottomright", - "mapCenter": [ - 15, - 5 - ], - "mapType": "Scaled Circle Markers", - "mapZoom": 2, - "wms": { - "enabled": false, - "options": { - "attribution": "Maps provided by USGS", - "format": "image/png", - "layers": "0", - "styles": "", - "transparent": true, - "version": "1.3.0" - }, - "url": "https://basemap.nationalmap.gov/arcgis/services/USGSTopo/MapServer/WMSServer" - } - }, - "title": "ML Traefik Access Map ECS", - "type": "tile_map" - } - }, - "id": "ML-Traefik-Access-Map-ecs", - "type": "visualization", - "version": 3 - }, - { - "attributes": { - "description": "", - "kibanaSavedObjectMeta": { - "searchSourceJSON": {} - }, - "savedSearchId": "ML-Filebeat-Traefik-Access-ecs", - "title": "Top URLs [Filebeat Traefik] [ML] ECS", - "uiStateJSON": { - "vis": { - "params": { - "sort": { - "columnIndex": null, - "direction": null - } - } - } - }, - "version": 1, - "visState": { - "aggs": [ - { - "enabled": true, - "id": "1", - "params": {}, - "schema": "metric", - "type": "count" - }, - { - "enabled": true, - "id": "2", - "params": { - "field": "url.original", - "order": "desc", - "orderBy": "1", - "size": 1000 - }, - "schema": "bucket", - "type": "terms" - } - ], - "listeners": {}, - "params": { - "perPage": 100, - "showMeticsAtAllLevels": false, - "showPartialRows": false, - "showTotal": false, - "sort": { - "columnIndex": null, - "direction": null - }, - "totalFunc": "sum" - }, - "title": "ML Traefik Access Top URLs Table ECS", - "type": "table" - } - }, - "id": "ML-Traefik-Access-Top-URLs-Table-ecs", - "type": "visualization", - "version": 3 - }, - { - "attributes": { - "columns": [ - "_source" - ], - "description": "Filebeat Traefik Access Data", - "hits": 0, - "kibanaSavedObjectMeta": { - "searchSourceJSON": { - "filter": [], - "highlight": { - "fields": { - "*": {} - }, - "fragment_size": 2147483647, - "post_tags": [ - "@/kibana-highlighted-field@" - ], - "pre_tags": [ - "@kibana-highlighted-field@" - ], - "require_field_match": false - }, - "index": "filebeat-*", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "event.dataset:traefik.access" - } - } - } - }, - "sort": [ - "@timestamp", - "desc" - ], - "title": "ML Access Data [Filebeat Traefik] ECS", - "version": 1 - }, - "id": "ML-Filebeat-Traefik-Access-ecs", - "type": "search", - "version": 3 - }, - { - "attributes": { - "description": "Machine Learning dashboard for the Filebeat Traefik module", - "hits": 0, - "kibanaSavedObjectMeta": { - "searchSourceJSON": { - "filter": [ - { - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } - } - ], - "highlightAll": true, - "version": true - } - }, - "optionsJSON": { - "darkTheme": false - }, - "panelsJSON": [ - { - "col": 1, - "id": "ML-Traefik-Access-Unique-Count-URL-Timechart-ecs", - "panelIndex": 1, - "row": 1, - "size_x": 6, - "size_y": 3, - "type": "visualization" - }, - { - "col": 7, - "id": "ML-Traefik-Access-Response-Code-Timechart-ecs", - "panelIndex": 2, - "row": 1, - "size_x": 6, - "size_y": 3, - "type": "visualization" - }, - { - "col": 1, - "id": "ML-Traefik-Access-Top-Remote-IPs-Table-ecs", - "panelIndex": 3, - "row": 4, - "size_x": 6, - "size_y": 3, - "type": "visualization" - }, - { - "col": 7, - "id": "ML-Traefik-Access-Map-ecs", - "panelIndex": 4, - "row": 4, - "size_x": 6, - "size_y": 3, - "type": "visualization" - }, - { - "col": 1, - "id": "ML-Traefik-Access-Top-URLs-Table-ecs", - "panelIndex": 5, - "row": 7, - "size_x": 12, - "size_y": 8, - "type": "visualization" - } - ], - "timeRestore": false, - "title": "[Filebeat Traefik] [ML] Remote IP URL Explorer ECS", - "uiStateJSON": { - "P-2": { - "vis": { - "params": { - "sort": { - "columnIndex": null, - "direction": null - } - } - } - }, - "P-3": { - "vis": { - "params": { - "sort": { - "columnIndex": null, - "direction": null - } - } - } - }, - "P-5": { - "vis": { - "params": { - "sort": { - "columnIndex": null, - "direction": null - } - } - } - } - }, - "version": 1 - }, - "id": "ML-Traefik-Remote-IP-URL-Explorer-ecs", - "type": "dashboard", - "version": 4 - } - ], - "version": "6.0.0-beta1-SNAPSHOT" -} diff --git a/filebeat/module/traefik/access/machine_learning/datafeed_low_request_rate.json b/filebeat/module/traefik/access/machine_learning/datafeed_low_request_rate.json deleted file mode 100644 index 631a96737c7..00000000000 --- a/filebeat/module/traefik/access/machine_learning/datafeed_low_request_rate.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "job_id": "JOB_ID", - "indexes": [ - "filebeat-*" - ], - "query": { - "bool": { - "filter": [ - { "term": { "fileset.module": "traefik" } }, - { "term": { "fileset.name": "access" } } - ] - } - }, - "aggregations": { - "buckets": { - "date_histogram": { - "field": "@timestamp", - "interval": 900000, - "offset": 0, - "order": { - "_key": "asc" - }, - "keyed": false, - "min_doc_count": 0 - }, - "aggregations": { - "@timestamp": { - "max": { - "field": "@timestamp" - } - } - } - } - } -} diff --git a/filebeat/module/traefik/access/machine_learning/datafeed_remote_ip_request_rate.json b/filebeat/module/traefik/access/machine_learning/datafeed_remote_ip_request_rate.json deleted file mode 100644 index a186622f952..00000000000 --- a/filebeat/module/traefik/access/machine_learning/datafeed_remote_ip_request_rate.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "job_id": "JOB_ID", - "indexes": [ - "filebeat-*" - ], - "query": { - "bool": { - "filter": [ - { "term": { "fileset.module": "traefik" } }, - { "term": { "fileset.name": "access" } } - ] - } - } -} diff --git a/filebeat/module/traefik/access/machine_learning/datafeed_remote_ip_url_count.json b/filebeat/module/traefik/access/machine_learning/datafeed_remote_ip_url_count.json deleted file mode 100644 index a186622f952..00000000000 --- a/filebeat/module/traefik/access/machine_learning/datafeed_remote_ip_url_count.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "job_id": "JOB_ID", - "indexes": [ - "filebeat-*" - ], - "query": { - "bool": { - "filter": [ - { "term": { "fileset.module": "traefik" } }, - { "term": { "fileset.name": "access" } } - ] - } - } -} diff --git a/filebeat/module/traefik/access/machine_learning/datafeed_response_code.json b/filebeat/module/traefik/access/machine_learning/datafeed_response_code.json deleted file mode 100644 index a186622f952..00000000000 --- a/filebeat/module/traefik/access/machine_learning/datafeed_response_code.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "job_id": "JOB_ID", - "indexes": [ - "filebeat-*" - ], - "query": { - "bool": { - "filter": [ - { "term": { "fileset.module": "traefik" } }, - { "term": { "fileset.name": "access" } } - ] - } - } -} diff --git a/filebeat/module/traefik/access/machine_learning/datafeed_visitor_rate.json b/filebeat/module/traefik/access/machine_learning/datafeed_visitor_rate.json deleted file mode 100644 index 5952d450370..00000000000 --- a/filebeat/module/traefik/access/machine_learning/datafeed_visitor_rate.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "job_id": "JOB_ID", - "indexes": [ - "filebeat-*" - ], - "query": { - "bool": { - "filter": [ - { "term": { "fileset.module": "traefik" } }, - { "term": { "fileset.name": "access" } } - ] - } - }, - "aggregations": { - "buckets": { - "date_histogram": { - "field": "@timestamp", - "interval": 900000, - "offset": 0, - "order": { - "_key": "asc" - }, - "keyed": false, - "min_doc_count": 0 - }, - "aggregations": { - "@timestamp": { - "max": { - "field": "@timestamp" - } - }, - "dc_remote_ips": { - "cardinality": { - "field": "traefik.access.remote_ip" - } - } - } - } - } -} diff --git a/filebeat/module/traefik/access/machine_learning/low_request_rate.json b/filebeat/module/traefik/access/machine_learning/low_request_rate.json deleted file mode 100644 index ef1475a1fb3..00000000000 --- a/filebeat/module/traefik/access/machine_learning/low_request_rate.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "description": "Traefik Access Logs: Detect low request rate", - "analysis_config" : { - "bucket_span": "15m", - "summary_count_field_name": "doc_count", - "detectors": [ - { - "detector_description": "traefik_access_low_request_rate", - "function": "low_count" - } - ], - "influencers": [] - }, - "data_description": { - "time_field": "@timestamp", - "time_format": "epoch_ms" - }, - "model_plot_config": { - "enabled": true - }, - "custom_settings": { - "custom_urls": [ - { - "url_name": "Raw Data", - "url_value": "kibana#/discover/ML-Filebeat-Traefik-Access?_g=(refreshInterval:(display:Off,pause:!f,value:0),time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(columns:!(_source),filters:!(),index:\u0027filebeat-*\u0027,interval:auto,query:(query_string:(analyze_wildcard:!t,query:\u0027*\u0027)),sort:!(\u0027@timestamp\u0027,desc))" - } - ] - } -} diff --git a/filebeat/module/traefik/access/machine_learning/remote_ip_request_rate.json b/filebeat/module/traefik/access/machine_learning/remote_ip_request_rate.json deleted file mode 100644 index 0ffcc2d8eba..00000000000 --- a/filebeat/module/traefik/access/machine_learning/remote_ip_request_rate.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "description": "Traefik Access Logs: Detect unusual remote_ips - high request rates", - "analysis_config" : { - "bucket_span": "1h", - "detectors": [ - { - "detector_description": "traefik_access_remote_ip_high_count", - "function": "high_count", - "over_field_name": "traefik.access.remote_ip" - } - ], - "influencers": [ - "traefik.access.remote_ip" - ] - }, - "data_description": { - "time_field": "@timestamp", - "time_format": "epoch_ms" - }, - "custom_settings": { - "custom_urls": [ - { - "url_name": "Count Explorer", - "url_value": "kibana#/dashboard/ML-Traefik-Access-Remote-IP-Count-Explorer?_g=(refreshInterval:(display:Off,pause:!f,value:0),time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(description:\u0027\u0027,filters:!((\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027filebeat-*\u0027,key:traefik.access.remote_ip,negate:!f,type:phrase,value:\u0027$traefik.access.remote_ip$\u0027),query:(match:(traefik.access.remote_ip:(query:\u0027$traefik.access.remote_ip$\u0027,type:phrase))))),options:(darkTheme:!f),panels:!((col:1,id:ML-Traefik-Access-Remote-IP-Timechart,panelIndex:1,row:1,size_x:6,size_y:3,type:visualization),(col:7,id:ML-Traefik-Access-Response-Code-Timechart,panelIndex:2,row:1,size_x:6,size_y:3,type:visualization),(col:1,id:ML-Traefik-Access-Top-Remote-IPs-Table,panelIndex:3,row:4,size_x:6,size_y:3,type:visualization),(col:7,id:ML-Traefik-Access-Map,panelIndex:4,row:4,size_x:6,size_y:3,type:visualization),(col:1,id:ML-Traefik-Access-Top-URLs-Table,panelIndex:5,row:7,size_x:12,size_y:9,type:visualization)),query:(query_string:(analyze_wildcard:!t,query:\u0027*\u0027)),timeRestore:!f,title:\u0027ML%20Traefik%20Access%20Remote%20IP%20Count%20Explorer\u0027,uiState:(P-3:(vis:(params:(sort:(columnIndex:!n,direction:!n)))),P-5:(vis:(params:(sort:(columnIndex:!n,direction:!n))))),viewMode:view)" - }, - { - "url_name": "Raw Data", - "url_value": "kibana#/discover/ML-Filebeat-Traefik-Access?_g=(refreshInterval:(display:Off,pause:!f,value:0),time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(columns:!(_source),filters:!((\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027filebeat-*\u0027,key:traefik.access.remote_ip,negate:!f,type:phrase,value:\u0027$traefik.access.remote_ip$\u0027),query:(match:(traefik.access.remote_ip:(query:\u0027$traefik.access.remote_ip$\u0027,type:phrase))))),index:\u0027filebeat-*\u0027,interval:auto,query:(query_string:(analyze_wildcard:!t,query:\u0027*\u0027)),sort:!(\u0027@timestamp\u0027,desc))" - } - ] - } -} diff --git a/filebeat/module/traefik/access/machine_learning/remote_ip_url_count.json b/filebeat/module/traefik/access/machine_learning/remote_ip_url_count.json deleted file mode 100644 index 82be4d031fc..00000000000 --- a/filebeat/module/traefik/access/machine_learning/remote_ip_url_count.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "description": "Traefik Access Logs: Detect unusual remote_ips - high distinct count of urls", - "analysis_config" : { - "bucket_span": "1h", - "detectors": [ - { - "detector_description": "traefik_access_remote_ip_high_dc_url", - "function": "high_distinct_count", - "field_name": "traefik.access.url", - "over_field_name": "traefik.access.remote_ip" - } - ], - "influencers": [ - "traefik.access.remote_ip" - ] - }, - "data_description": { - "time_field": "@timestamp", - "time_format": "epoch_ms" - }, - "custom_settings": { - "custom_urls": [ - { - "url_name": "URL Explorer", - "url_value": "kibana#/dashboard/ML-Traefik-Remote-IP-URL-Explorer?_g=(refreshInterval:(display:Off,pause:!f,value:0),time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(description:\u0027\u0027,filters:!((\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027filebeat-*\u0027,key:traefik.access.remote_ip,negate:!f,type:phrase,value:\u0027$traefik.access.remote_ip$\u0027),query:(match:(traefik.access.remote_ip:(query:\u0027$traefik.access.remote_ip$\u0027,type:phrase))))),options:(darkTheme:!f),panels:!((col:1,id:ML-Traefik-Access-Unique-Count-URL-Timechart,panelIndex:1,row:1,size_x:6,size_y:3,type:visualization),(col:7,id:ML-Traefik-Access-Response-Code-Timechart,panelIndex:2,row:1,size_x:6,size_y:3,type:visualization),(col:1,id:ML-Traefik-Access-Top-Remote-IPs-Table,panelIndex:3,row:4,size_x:6,size_y:3,type:visualization),(col:7,id:ML-Traefik-Access-Map,panelIndex:4,row:4,size_x:6,size_y:3,type:visualization),(col:1,id:ML-Traefik-Access-Top-URLs-Table,panelIndex:5,row:7,size_x:12,size_y:8,type:visualization)),query:(query_string:(analyze_wildcard:!t,query:\u0027*\u0027)),timeRestore:!f,title:\u0027ML%20Traefik%20Access%20Remote%20IP%20URL%20Explorer\u0027,uiState:(P-2:(vis:(params:(sort:(columnIndex:!n,direction:!n)))),P-3:(vis:(params:(sort:(columnIndex:!n,direction:!n)))),P-5:(vis:(params:(sort:(columnIndex:!n,direction:!n))))),viewMode:view)" - }, - { - "url_name": "Raw Data", - "url_value": "kibana#/discover/ML-Filebeat-Traefik-Access?_g=(refreshInterval:(display:Off,pause:!f,value:0),time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(columns:!(_source),filters:!((\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027filebeat-*\u0027,key:traefik.access.remote_ip,negate:!f,type:phrase,value:\u0027$traefik.access.remote_ip$\u0027),query:(match:(traefik.access.remote_ip:(query:\u0027$traefik.access.remote_ip$\u0027,type:phrase))))),index:\u0027filebeat-*\u0027,interval:auto,query:(query_string:(analyze_wildcard:!t,query:\u0027*\u0027)),sort:!(\u0027@timestamp\u0027,desc))" - } - ] - } -} diff --git a/filebeat/module/traefik/access/machine_learning/response_code.json b/filebeat/module/traefik/access/machine_learning/response_code.json deleted file mode 100644 index 6a89dfc0153..00000000000 --- a/filebeat/module/traefik/access/machine_learning/response_code.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "description": "Traefik Access Logs: Detect unusual response_code rates", - "analysis_config" : { - "bucket_span": "15m", - "detectors": [ - { - "detector_description": "traefik_access_response_code_rate", - "function": "count", - "partition_field_name": "traefik.access.response_code" - } - ], - "influencers": [ - "traefik.access.response_code", - "traefik.access.remote_ip" - ] - }, - "data_description": { - "time_field": "@timestamp", - "time_format": "epoch_ms" - }, - "model_plot_config": { - "enabled": true - }, - "custom_settings": { - "custom_urls": [ - { - "url_name": "Count Explorer", - "url_value": "kibana#/dashboard/ML-Traefik-Access-Remote-IP-Count-Explorer?_g=(refreshInterval:(display:Off,pause:!f,value:0),time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(description:\u0027\u0027,filters:!((\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027filebeat-*\u0027,key:traefik.access.response_code,negate:!f,type:phrase,value:\u0027$traefik.access.response_code$\u0027),query:(match:(traefik.access.response_code:(query:\u0027$traefik.access.response_code$\u0027,type:phrase))))),options:(darkTheme:!f),panels:!((col:1,id:ML-Traefik-Access-Remote-IP-Timechart,panelIndex:1,row:1,size_x:6,size_y:3,type:visualization),(col:7,id:ML-Traefik-Access-Response-Code-Timechart,panelIndex:2,row:1,size_x:6,size_y:3,type:visualization),(col:1,id:ML-Traefik-Access-Top-Remote-IPs-Table,panelIndex:3,row:4,size_x:6,size_y:3,type:visualization),(col:7,id:ML-Traefik-Access-Map,panelIndex:4,row:4,size_x:6,size_y:3,type:visualization),(col:1,id:ML-Traefik-Access-Top-URLs-Table,panelIndex:5,row:7,size_x:12,size_y:9,type:visualization)),query:(query_string:(analyze_wildcard:!t,query:\u0027*\u0027)),timeRestore:!f,title:\u0027ML%20Traefik%20Access%20Remote%20IP%20Count%20Explorer\u0027,uiState:(P-3:(vis:(params:(sort:(columnIndex:!n,direction:!n)))),P-5:(vis:(params:(sort:(columnIndex:!n,direction:!n))))),viewMode:view)" - }, - { - "url_name": "Raw Data", - "url_value": "kibana#/discover/ML-Filebeat-Traefik-Access?_g=(refreshInterval:(display:Off,pause:!f,value:0),time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(columns:!(_source),filters:!((\u0027$state\u0027:(store:appState),meta:(alias:!n,disabled:!f,index:\u0027filebeat-*\u0027,key:traefik.access.response_code,negate:!f,type:phrase,value:\u0027$traefik.access.response_code$\u0027),query:(match:(traefik.access.response_code:(query:\u0027$traefik.access.response_code$\u0027,type:phrase))))),index:\u0027filebeat-*\u0027,interval:auto,query:(query_string:(analyze_wildcard:!t,query:\u0027event.dataset:traefik.access\u0027)),sort:!(\u0027@timestamp\u0027,desc))" - } - ] - } -} diff --git a/filebeat/module/traefik/access/machine_learning/visitor_rate.json b/filebeat/module/traefik/access/machine_learning/visitor_rate.json deleted file mode 100644 index 794f07a1f90..00000000000 --- a/filebeat/module/traefik/access/machine_learning/visitor_rate.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "description": "Traefik Access Logs: Detect unusual visitor rate", - "analysis_config" : { - "bucket_span": "15m", - "summary_count_field_name": "dc_remote_ips", - "detectors": [ - { - "detector_description": "traefik_access_visitor_rate", - "function": "non_zero_count" - } - ], - "influencers": [] - }, - "data_description": { - "time_field": "@timestamp", - "time_format": "epoch_ms" - }, - "model_plot_config": { - "enabled": true - }, - "custom_settings": { - "custom_urls": [ - { - "url_name": "Raw Data", - "url_value": "kibana#/discover/ML-Filebeat-Traefik-Access?_g=(refreshInterval:(display:Off,pause:!f,value:0),time:(from:\u0027$earliest$\u0027,mode:absolute,to:\u0027$latest$\u0027))&_a=(columns:!(_source),filters:!(),index:\u0027filebeat-*\u0027,interval:auto,query:(query_string:(analyze_wildcard:!t,query:\u0027*\u0027)),sort:!(\u0027@timestamp\u0027,desc))" - } - ] - } -} From 2b7d9fe9d41d77bbb06532ed10f630feddb56830 Mon Sep 17 00:00:00 2001 From: Andrew Kroh Date: Wed, 20 Feb 2019 15:10:13 -0500 Subject: [PATCH 055/332] Make @metadata accessible via beat.Event accessor methods (#10761) This implements a TODO from the beat.Event struct that makes it possible to put/get/delete @metadata values via the accessor methods. --- CHANGELOG-developer.next.asciidoc | 1 + libbeat/beat/event.go | 47 +++++++++- libbeat/beat/event_test.go | 139 ++++++++++++++++++++++++++++++ 3 files changed, 186 insertions(+), 1 deletion(-) create mode 100644 libbeat/beat/event_test.go diff --git a/CHANGELOG-developer.next.asciidoc b/CHANGELOG-developer.next.asciidoc index c0cb2a4e4b4..810ef7e3830 100644 --- a/CHANGELOG-developer.next.asciidoc +++ b/CHANGELOG-developer.next.asciidoc @@ -27,3 +27,4 @@ The list below covers the major changes between 7.0.0-beta1 and master only. - Metricset generator generates beta modules by default now. {pull}10657[10657] - Move host name addition to a processor. {pull}10728[10728] +- The `beat.Event` accessor methods now support `@metadata` keys. {pull}10761[10761] diff --git a/libbeat/beat/event.go b/libbeat/beat/event.go index 1191dff23d8..8d1125ed9f7 100644 --- a/libbeat/beat/event.go +++ b/libbeat/beat/event.go @@ -19,6 +19,7 @@ package beat import ( "errors" + "strings" "time" "github.com/elastic/beats/libbeat/common" @@ -40,6 +41,7 @@ type Event struct { var ( errNoTimestamp = errors.New("value is no timestamp") + errNoMapStr = errors.New("value is no map[string]interface{} type") ) // SetID overwrites the "id" field in the events metadata. @@ -54,6 +56,11 @@ func (e *Event) SetID(id string) { func (e *Event) GetValue(key string) (interface{}, error) { if key == "@timestamp" { return e.Timestamp, nil + } else if subKey, ok := metadataKey(key); ok { + if subKey == "" || e.Meta == nil { + return e.Meta, nil + } + return e.Meta.GetValue(subKey) } return e.Fields.GetValue(key) } @@ -68,12 +75,50 @@ func (e *Event) PutValue(key string, v interface{}) (interface{}, error) { default: return nil, errNoTimestamp } + } else if subKey, ok := metadataKey(key); ok { + if subKey == "" { + switch meta := v.(type) { + case common.MapStr: + e.Meta = meta + case map[string]interface{}: + e.Meta = meta + default: + return nil, errNoMapStr + } + } else if e.Meta == nil { + e.Meta = common.MapStr{} + } + return e.Meta.Put(subKey, v) } - // TODO: add support to write into '@metadata'? return e.Fields.Put(key, v) } func (e *Event) Delete(key string) error { + if subKey, ok := metadataKey(key); ok { + if subKey == "" { + e.Meta = nil + return nil + } + if e.Meta == nil { + return nil + } + return e.Meta.Delete(subKey) + } return e.Fields.Delete(key) } + +func metadataKey(key string) (string, bool) { + if !strings.HasPrefix(key, "@metadata") { + return "", false + } + + subKey := key[len("@metadata"):] + if subKey == "" { + return "", true + } + if subKey[0] == '.' { + return subKey[1:], true + } + return "", false +} diff --git a/libbeat/beat/event_test.go b/libbeat/beat/event_test.go new file mode 100644 index 00000000000..b0e7a9abaae --- /dev/null +++ b/libbeat/beat/event_test.go @@ -0,0 +1,139 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package beat + +import ( + "testing" + "time" + + "github.com/stretchr/testify/assert" + + "github.com/elastic/beats/libbeat/common" +) + +func newEmptyEvent() *Event { + return &Event{Fields: common.MapStr{}} +} + +func TestEventPutGetTimestamp(t *testing.T) { + evt := newEmptyEvent() + ts := time.Now() + + evt.PutValue("@timestamp", ts) + + v, err := evt.GetValue("@timestamp") + if err != nil { + t.Fatal(err) + } + + assert.Equal(t, ts, v) + assert.Equal(t, ts, evt.Timestamp) + + // The @timestamp is also written into Fields. + assert.Equal(t, ts, evt.Fields["@timestamp"]) +} + +func TestEventMetadata(t *testing.T) { + const id = "123" + newMeta := func() common.MapStr { return common.MapStr{"id": id} } + + t.Run("put", func(t *testing.T) { + evt := newEmptyEvent() + meta := newMeta() + + evt.PutValue("@metadata", meta) + + assert.Equal(t, meta, evt.Meta) + assert.Empty(t, evt.Fields) + }) + + t.Run("get", func(t *testing.T) { + evt := newEmptyEvent() + evt.Meta = newMeta() + + meta, err := evt.GetValue("@metadata") + + assert.NoError(t, err) + assert.Equal(t, evt.Meta, meta) + }) + + t.Run("put sub-key", func(t *testing.T) { + evt := newEmptyEvent() + + evt.PutValue("@metadata.id", id) + + assert.Equal(t, newMeta(), evt.Meta) + assert.Empty(t, evt.Fields) + }) + + t.Run("get sub-key", func(t *testing.T) { + evt := newEmptyEvent() + evt.Meta = newMeta() + + v, err := evt.GetValue("@metadata.id") + + assert.NoError(t, err) + assert.Equal(t, id, v) + }) + + t.Run("delete", func(t *testing.T) { + evt := newEmptyEvent() + evt.Meta = newMeta() + + err := evt.Delete("@metadata") + + assert.NoError(t, err) + assert.Nil(t, evt.Meta) + }) + + t.Run("delete sub-key", func(t *testing.T) { + evt := newEmptyEvent() + evt.Meta = newMeta() + + err := evt.Delete("@metadata.id") + + assert.NoError(t, err) + assert.Empty(t, evt.Meta) + }) + + t.Run("setID", func(t *testing.T) { + evt := newEmptyEvent() + + evt.SetID(id) + + assert.Equal(t, newMeta(), evt.Meta) + }) + + t.Run("put non-metadata", func(t *testing.T) { + evt := newEmptyEvent() + + evt.PutValue("@metadataSpecial", id) + + assert.Equal(t, common.MapStr{"@metadataSpecial": id}, evt.Fields) + }) + + t.Run("delete non-metadata", func(t *testing.T) { + evt := newEmptyEvent() + evt.Meta = newMeta() + + err := evt.Delete("@metadataSpecial") + + assert.Error(t, err) + assert.Equal(t, newMeta(), evt.Meta) + }) +} From 6e56b993245de7d63290f68bb8ad2ed95230f873 Mon Sep 17 00:00:00 2001 From: Vijay Samuel Date: Thu, 21 Feb 2019 02:48:21 -0800 Subject: [PATCH 056/332] Allow to configure docker input with paths (#10687) Add a paths option to the docker input so paths can be used as an alternative to ids. This will allow some level of support of other runtimes as CRI-O. --- CHANGELOG.asciidoc | 1 + filebeat/autodiscover/builder/hints/config.go | 6 +- .../autodiscover/builder/hints/logs_test.go | 232 ++++++++++++++++++ filebeat/input/docker/config.go | 3 + filebeat/input/docker/input.go | 39 ++- 5 files changed, 273 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index 005c8261dc5..e7de86b334c 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -273,6 +273,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...v7.0.0-beta1[Check the - Added support for ingesting structured Elasticsearch server logs {pull}10428[10428] - Populate more ECS fields in the Suricata module. {pull}10006[10006] - Add module zeek. {issue}9931[9931] {pull}10034[10034] +- Add support for CRI-O based logs autodiscover {pull}10687[10687] *Heartbeat* diff --git a/filebeat/autodiscover/builder/hints/config.go b/filebeat/autodiscover/builder/hints/config.go index 2269daa88de..cae7aa2192c 100644 --- a/filebeat/autodiscover/builder/hints/config.go +++ b/filebeat/autodiscover/builder/hints/config.go @@ -28,8 +28,10 @@ func defaultConfig() config { rawCfg := map[string]interface{}{ "type": "docker", "containers": map[string]interface{}{ - "ids": []string{ - "${data.container.id}", + "paths": []string{ + // To be able to use this builder with CRI-O replace paths with: + // /var/log/pods/${data.kubernetes.pod.uid}/${data.kubernetes.container.name}/*.log + "/var/lib/docker/containers/${data.container.id}/*-json.log", }, }, } diff --git a/filebeat/autodiscover/builder/hints/logs_test.go b/filebeat/autodiscover/builder/hints/logs_test.go index da687231a8a..de56e777765 100644 --- a/filebeat/autodiscover/builder/hints/logs_test.go +++ b/filebeat/autodiscover/builder/hints/logs_test.go @@ -399,3 +399,235 @@ func TestGenerateHints(t *testing.T) { } } + +func TestGenerateHintsWithPaths(t *testing.T) { + tests := []struct { + msg string + event bus.Event + path string + len int + result common.MapStr + }{ + { + msg: "Empty event hints should return default config", + event: bus.Event{ + "host": "1.2.3.4", + "kubernetes": common.MapStr{ + "container": common.MapStr{ + "name": "foobar", + "id": "abc", + }, + "pod": common.MapStr{ + "name": "pod", + "uid": "12345", + }, + }, + "container": common.MapStr{ + "name": "foobar", + "id": "abc", + }, + }, + path: "/var/lib/docker/containers/${data.kubernetes.container.id}/*-json.log", + len: 1, + result: common.MapStr{ + "type": "docker", + "containers": map[string]interface{}{ + "paths": []interface{}{"/var/lib/docker/containers/abc/*-json.log"}, + }, + "close_timeout": "true", + }, + }, + { + msg: "Hint with processors config must have a processors in the input config", + event: bus.Event{ + "host": "1.2.3.4", + "kubernetes": common.MapStr{ + "container": common.MapStr{ + "name": "foobar", + "id": "abc", + }, + "pod": common.MapStr{ + "name": "pod", + "uid": "12345", + }, + }, + "container": common.MapStr{ + "name": "foobar", + "id": "abc", + }, + "hints": common.MapStr{ + "logs": common.MapStr{ + "processors": common.MapStr{ + "1": common.MapStr{ + "dissect": common.MapStr{ + "tokenizer": "%{key1} %{key2}", + }, + }, + "drop_event": common.MapStr{}, + }, + }, + }, + }, + len: 1, + path: "/var/log/pods/${data.kubernetes.pod.uid}/${data.kubernetes.container.name}/*.log", + result: common.MapStr{ + "type": "docker", + "containers": map[string]interface{}{ + "paths": []interface{}{"/var/log/pods/12345/foobar/*.log"}, + }, + "close_timeout": "true", + "processors": []interface{}{ + map[string]interface{}{ + "dissect": map[string]interface{}{ + "tokenizer": "%{key1} %{key2}", + }, + }, + map[string]interface{}{ + "drop_event": nil, + }, + }, + }, + }, + { + msg: "Hint with module should attach input to its filesets", + event: bus.Event{ + "host": "1.2.3.4", + "kubernetes": common.MapStr{ + "container": common.MapStr{ + "name": "foobar", + "id": "abc", + }, + "pod": common.MapStr{ + "name": "pod", + "uid": "12345", + }, + }, + "container": common.MapStr{ + "name": "foobar", + "id": "abc", + }, + "hints": common.MapStr{ + "logs": common.MapStr{ + "module": "apache2", + }, + }, + }, + len: 1, + path: "/var/log/pods/${data.kubernetes.pod.uid}/${data.kubernetes.container.name}/*.log", + result: common.MapStr{ + "module": "apache2", + "error": map[string]interface{}{ + "enabled": true, + "input": map[string]interface{}{ + "type": "docker", + "containers": map[string]interface{}{ + "stream": "all", + "paths": []interface{}{"/var/log/pods/12345/foobar/*.log"}, + }, + "close_timeout": "true", + }, + }, + "access": map[string]interface{}{ + "enabled": true, + "input": map[string]interface{}{ + "type": "docker", + "containers": map[string]interface{}{ + "stream": "all", + "paths": []interface{}{"/var/log/pods/12345/foobar/*.log"}, + }, + "close_timeout": "true", + }, + }, + }, + }, + { + msg: "Hint with module should honor defined filesets", + event: bus.Event{ + "host": "1.2.3.4", + "kubernetes": common.MapStr{ + "container": common.MapStr{ + "name": "foobar", + "id": "abc", + }, + "pod": common.MapStr{ + "name": "pod", + "uid": "12345", + }, + }, + "container": common.MapStr{ + "name": "foobar", + "id": "abc", + }, + "hints": common.MapStr{ + "logs": common.MapStr{ + "module": "apache2", + "fileset": "access", + }, + }, + }, + len: 1, + path: "/var/log/pods/${data.kubernetes.pod.uid}/${data.kubernetes.container.name}/*.log", + result: common.MapStr{ + "module": "apache2", + "access": map[string]interface{}{ + "enabled": true, + "input": map[string]interface{}{ + "type": "docker", + "containers": map[string]interface{}{ + "stream": "all", + "paths": []interface{}{"/var/log/pods/12345/foobar/*.log"}, + }, + "close_timeout": "true", + }, + }, + "error": map[string]interface{}{ + "enabled": false, + "input": map[string]interface{}{ + "type": "docker", + "containers": map[string]interface{}{ + "stream": "all", + "paths": []interface{}{"/var/log/pods/12345/foobar/*.log"}, + }, + "close_timeout": "true", + }, + }, + }, + }, + } + + for _, test := range tests { + cfg, _ := common.NewConfigFrom(map[string]interface{}{ + "config": map[string]interface{}{ + "type": "docker", + "containers": map[string]interface{}{ + "paths": []string{ + test.path, + }, + }, + "close_timeout": "true", + }, + }) + + // Configure path for modules access + abs, _ := filepath.Abs("../../..") + err := paths.InitPaths(&paths.Path{ + Home: abs, + }) + + l, err := NewLogHints(cfg) + if err != nil { + t.Fatal(err) + } + + cfgs := l.CreateConfig(test.event) + assert.Equal(t, len(cfgs), test.len, test.msg) + if test.len != 0 { + config := common.MapStr{} + err := cfgs[0].Unpack(&config) + assert.Nil(t, err, test.msg) + + assert.Equal(t, test.result, config, test.msg) + } + + } +} diff --git a/filebeat/input/docker/config.go b/filebeat/input/docker/config.go index ddd5c1ac629..2f0b1323c7e 100644 --- a/filebeat/input/docker/config.go +++ b/filebeat/input/docker/config.go @@ -27,6 +27,7 @@ var defaultConfig = config{ } type config struct { + // List of containers' log files to tail Containers containers `config:"containers"` // Partial configures the input to join partial lines @@ -43,6 +44,8 @@ type containers struct { IDs []string `config:"ids"` Path string `config:"path"` + Paths []string `config:"paths"` + // Stream can be all, stdout or stderr Stream string `config:"stream"` } diff --git a/filebeat/input/docker/input.go b/filebeat/input/docker/input.go index e762f8f91cc..458745e66dd 100644 --- a/filebeat/input/docker/input.go +++ b/filebeat/input/docker/input.go @@ -51,10 +51,19 @@ func NewInput( return nil, errors.Wrap(err, "reading docker input config") } - // Docker input should make sure that no callers should ever pass empty strings as container IDs + // Docker input should make sure that no callers should ever pass empty strings as container IDs or paths // Hence we explicitly make sure that we catch such things and print stack traces in the event of // an invocation so that it can be fixed. - var ids []string + var ids, paths []string + for _, p := range config.Containers.Paths { + if p != "" { + paths = append(paths, p) + } else { + logger.Error("Docker paths can't be empty for Docker input config") + logger.Debugw("Empty path for Docker logfile was received", logp.Stack("stacktrace")) + } + } + for _, containerID := range config.Containers.IDs { if containerID != "" { ids = append(ids, containerID) @@ -64,12 +73,23 @@ func NewInput( } } - if len(ids) == 0 { - return nil, errors.New("Docker input requires at least one entry under 'containers.ids'") + if len(ids) == 0 && len(paths) == 0 { + return nil, errors.New("Docker input requires at least one entry under 'containers.ids' or 'containers.paths'") } - for idx, containerID := range ids { - cfg.SetString("paths", idx, path.Join(config.Containers.Path, containerID, "*.log")) + // IDs + Path and Paths are mutually exclusive. Ensure that only one of them are set in a given configuration + if len(ids) != 0 && len(paths) != 0 { + return nil, errors.New("can not provide both 'containers.ids' and 'containers.paths' in the same input config") + } + + if len(ids) != 0 { + for idx, containerID := range ids { + cfg.SetString("paths", idx, path.Join(config.Containers.Path, containerID, "*.log")) + } + } else { + for idx, p := range paths { + cfg.SetString("paths", idx, p) + } } if err := checkStream(config.Containers.Stream); err != nil { @@ -92,6 +112,13 @@ func NewInput( return nil, errors.Wrap(err, "update input config") } + if len(paths) != 0 { + // Set symlinks to true as CRI-O paths could point to symlinks instead of the actual path. + if err := cfg.SetBool("symlinks", -1, true); err != nil { + return nil, errors.Wrap(err, "update input config") + } + } + // Add stream to meta to ensure different state per stream if config.Containers.Stream != "all" { if context.Meta == nil { From 06b53f7e7a0143598bce75bea06dd1bf1f76f18e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?No=C3=A9mi=20V=C3=A1nyi?= Date: Thu, 21 Feb 2019 14:54:44 +0100 Subject: [PATCH 057/332] Add more info to message logged when a duplicated symlink file is found (#10845) There was a typo in the message that was logged when symlinks are enabled and the same files are found. I also added more context to the message, so it is more informative. The new message is the following: Same file found as symlink and original. Skipping file: test.log (as it is same as: test-2016.log) --- CHANGELOG.next.asciidoc | 1 + filebeat/input/log/input.go | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 0f3cf658a97..20049780882 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -239,6 +239,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Added support for ingesting structured Elasticsearch server logs {pull}10428[10428] - Populate more ECS fields in the Suricata module. {pull}10006[10006] - Add ISO8601 timestamp support in syslog metricset. {issue}8716[8716] {pull}10736[10736] +- Add more info to message logged when a duplicated symlink file is found {pull}10845[10845] *Heartbeat* diff --git a/filebeat/input/log/input.go b/filebeat/input/log/input.go index 875c3a6b104..3841fc23973 100644 --- a/filebeat/input/log/input.go +++ b/filebeat/input/log/input.go @@ -286,7 +286,7 @@ func (p *Input) getFiles() map[string]os.FileInfo { if p.config.Symlinks { for _, finfo := range paths { if os.SameFile(finfo, fileInfo) { - logp.Info("Same file found as symlink and originap. Skipping file: %s", file) + logp.Info("Same file found as symlink and original. Skipping file: %s (as it same as %s)", file, finfo.Name()) continue OUTER } } From 01156ec824b6e56908c1d2e59128dae55eaf5246 Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Thu, 21 Feb 2019 10:36:23 -0600 Subject: [PATCH 058/332] [Heartbeat] Remove Todo.md. Favor GH Issues. (#10324) --- heartbeat/TODO.md | 37 ------------------------------------- 1 file changed, 37 deletions(-) delete mode 100644 heartbeat/TODO.md diff --git a/heartbeat/TODO.md b/heartbeat/TODO.md deleted file mode 100644 index 0ddfbef0519..00000000000 --- a/heartbeat/TODO.md +++ /dev/null @@ -1,37 +0,0 @@ -## TODO -- add docs: - - configuration -- create kibana dashboards -- fsevent file watcher for module config loading -- all monitors: - - configure local ip/device use to ping remote - - add go based tests -- icmp monitor: - - add windows support - - check for non-root alternative not requiring RAW socket - - add support for optional icmp payload -- http monitor: - - refine allowed HTTP methods - - add cookie jar for request (store new cookies or preset?) - - configure HTTP version (http module might choose 1.1 or 2.0) - - collect and report all response validation failures (ATM first failed validation will - be reported) - - add more compression types (only gzip supported yet) -- tcp monitor: - - if receive validator fails, report received and expected value -- DNS probe: - - collect (validate) known DNS entries right from DNS servers - -## Ideas -- active monitors for more protocols: UDP, DNS, FTP, SIP, FTP, POP3, IMAP, MySQL, ... -- traceroute-ping -- API for listing active monitors and (modifying) schedule? -- API/Support for adding/removing monitoring targets? - - HTTP based API? Need persistent registry with active list of hosts between restarts. - - configure and watch file with potential endpoints (update monitors on file change) - - monitor config file and reload on change? -- passive monitors based on packet sniffing: - - IP, TCP: based monitor by checking for packages with actual payload - - application layer (e.g. HTTP): check responses only + stop - parsing/processing new connections in time interval if server is marked as - up. From 3cdcb4627d444961b04f9d959b0f63c2524d04af Mon Sep 17 00:00:00 2001 From: Christoph Wurm Date: Thu, 21 Feb 2019 17:44:18 +0000 Subject: [PATCH 059/332] [Auditbeat] Login: Recover from panics, safeguard array access (#10872) Fixes two concerns in the login dataset: 1. Since it's using an internal goroutine it should recover from any panics. 2. Puts in a safeguard for any byte arrays coming from C. --- x-pack/auditbeat/module/system/login/utmp.go | 1 + x-pack/auditbeat/module/system/login/utmp_c.go | 3 +++ 2 files changed, 4 insertions(+) diff --git a/x-pack/auditbeat/module/system/login/utmp.go b/x-pack/auditbeat/module/system/login/utmp.go index 318ca94927e..eda2a006c36 100644 --- a/x-pack/auditbeat/module/system/login/utmp.go +++ b/x-pack/auditbeat/module/system/login/utmp.go @@ -94,6 +94,7 @@ func (r *UtmpFileReader) ReadNew() (<-chan LoginRecord, <-chan error) { errorC := make(chan error) go func() { + defer logp.Recover("A panic occurred while collecting login information") defer close(loginRecordC) defer close(errorC) diff --git a/x-pack/auditbeat/module/system/login/utmp_c.go b/x-pack/auditbeat/module/system/login/utmp_c.go index 804683acd53..0d42367a1a8 100644 --- a/x-pack/auditbeat/module/system/login/utmp_c.go +++ b/x-pack/auditbeat/module/system/login/utmp_c.go @@ -104,6 +104,9 @@ func newUtmp(utmp *utmpC) *Utmp { // byteToString converts a NULL terminated char array to a Go string. func byteToString(b []byte) string { n := bytes.IndexByte(b, 0) + if n == -1 { + n = len(b) + } return string(b[:n]) } From b2ce8bccce70db29d2e53b51a13c1dbf50233caa Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Thu, 21 Feb 2019 10:08:27 -0800 Subject: [PATCH 060/332] Fix log path format in logging example (#10647) --- libbeat/docs/loggingconfig.asciidoc | 15 +++++++++++++++ winlogbeat/docs/getting-started.asciidoc | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/libbeat/docs/loggingconfig.asciidoc b/libbeat/docs/loggingconfig.asciidoc index e0e87f66296..62b0577763e 100644 --- a/libbeat/docs/loggingconfig.asciidoc +++ b/libbeat/docs/loggingconfig.asciidoc @@ -19,6 +19,7 @@ ifndef::serverless[] The logging system can write logs to the syslog or rotate log files. If logging is not explicitly configured the file output is used. +ifndef::win_only[] ["source","yaml",subs="attributes"] ---- logging.level: info @@ -29,6 +30,20 @@ logging.files: keepfiles: 7 permissions: 0644 ---- +endif::win_only[] + +ifdef::win_only[] +["source","yaml",subs="attributes"] +---- +logging.level: info +logging.to_files: true +logging.files: + path: C:{backslash}ProgramData{backslash}{beatname_lc}{backslash}Logs + name: {beatname_lc} + keepfiles: 7 + permissions: 0644 +---- +endif::win_only[] TIP: In addition to setting logging options in the config file, you can modify the logging output configuration from the command line. See diff --git a/winlogbeat/docs/getting-started.asciidoc b/winlogbeat/docs/getting-started.asciidoc index 39dfed2dc4d..62459a1ca4b 100644 --- a/winlogbeat/docs/getting-started.asciidoc +++ b/winlogbeat/docs/getting-started.asciidoc @@ -74,7 +74,7 @@ output.elasticsearch: logging.to_files: true logging.files: - path: C:/ProgramData/winlogbeat/Logs + path: C:\ProgramData\winlogbeat\Logs logging.level: info -------------------------------------------------------------------------------- From f18ef4ae2a1767105475975de3cd1228b1ad249e Mon Sep 17 00:00:00 2001 From: Jaime Soriano Pastor Date: Thu, 21 Feb 2019 22:29:22 +0100 Subject: [PATCH 061/332] Use docker compose file version 2.3 as in other files in beats (#10868) 2.1 is required to define healthchecks in the docker compose file. Using 2.3 as is the version used in other beats. --- metricbeat/docker-compose.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/metricbeat/docker-compose.yml b/metricbeat/docker-compose.yml index a2e7f60445f..d1daf15af63 100644 --- a/metricbeat/docker-compose.yml +++ b/metricbeat/docker-compose.yml @@ -1,4 +1,5 @@ -version: '2' +version: '2.3' + services: beat: build: ${PWD}/. From 1e7691533b8fef769c93b28fa771c5daf506235e Mon Sep 17 00:00:00 2001 From: Adrian Serrano Date: Fri, 22 Feb 2019 10:01:45 +0100 Subject: [PATCH 062/332] [Packetbeat] [MongoDB] Report unknown opcodes once (#10878) This changes the mongoDB decoder reporting unknown opcodes to report each unknown opcode only once, to avoid flooding the log file with errors. --- CHANGELOG.next.asciidoc | 1 + packetbeat/protos/mongodb/mongodb_parser.go | 13 ++++++++++++- .../system/pcaps/mongodb_op_msg_opcode.pcap | Bin 0 -> 91849 bytes .../tests/system/test_0025_mongodb_basic.py | 12 ++++++++++++ 4 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 packetbeat/tests/system/pcaps/mongodb_op_msg_opcode.pcap diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 20049780882..59b2424a752 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -173,6 +173,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Fix DHCPv4 dashboard that wouldn't load in Kibana. {issue}9850[9850] - Fixed a crash when using af_packet capture {pull}10477[10477] - Prevent duplicate packet loss error messages in HTTP events. {pull}10709[10709] +- Avoid reporting unknown MongoDB opcodes more than once. {pull}10878[10878] *Winlogbeat* diff --git a/packetbeat/protos/mongodb/mongodb_parser.go b/packetbeat/protos/mongodb/mongodb_parser.go index 58d6aa145da..59fcbb7c206 100644 --- a/packetbeat/protos/mongodb/mongodb_parser.go +++ b/packetbeat/protos/mongodb/mongodb_parser.go @@ -21,6 +21,7 @@ import ( "encoding/json" "errors" "strings" + "sync" "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/logp" @@ -28,6 +29,11 @@ import ( "gopkg.in/mgo.v2/bson" ) +var ( + unknownOpcodes = map[opCode]struct{}{} + mutex sync.Mutex +) + func mongodbMessageParser(s *stream) (bool, bool) { d := newDecoder(s.data) @@ -56,7 +62,12 @@ func mongodbMessageParser(s *stream) (bool, bool) { opCode := opCode(code) if !validOpcode(opCode) { - logp.Err("Unknown operation code: %v", opCode) + mutex.Lock() + defer mutex.Unlock() + if _, reported := unknownOpcodes[opCode]; !reported { + logp.Err("Unknown operation code: %v", opCode) + unknownOpcodes[opCode] = struct{}{} + } return false, false } diff --git a/packetbeat/tests/system/pcaps/mongodb_op_msg_opcode.pcap b/packetbeat/tests/system/pcaps/mongodb_op_msg_opcode.pcap new file mode 100644 index 0000000000000000000000000000000000000000..46b68e45b57afb5d54d205634f62915216ca8884 GIT binary patch literal 91849 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 literal 0 HcmV?d00001 diff --git a/packetbeat/tests/system/test_0025_mongodb_basic.py b/packetbeat/tests/system/test_0025_mongodb_basic.py index 98acdc4e617..b1ff493377a 100644 --- a/packetbeat/tests/system/test_0025_mongodb_basic.py +++ b/packetbeat/tests/system/test_0025_mongodb_basic.py @@ -219,3 +219,15 @@ def test_request_after_reply(self): o = objs[0] assert o["type"] == "mongodb" assert o["event.duration"] >= 0 + + def test_unknown_opcode_flood(self): + """ + Tests that a repeated unknown opcode is reported just once. + """ + self.render_config_template( + mongodb_ports=[9991] + ) + self.run_packetbeat(pcap="mongodb_op_msg_opcode.pcap", + debug_selectors=["mongodb"]) + num_msgs = self.log_contains_count('Unknown operation code: ') + assert num_msgs == 1, "Unknown opcode reported more than once: {0}".format(num_msgs) From 0314b55c34943539df89284f30999e9151f2e9fa Mon Sep 17 00:00:00 2001 From: Mario Castro Date: Fri, 22 Feb 2019 13:04:15 +0100 Subject: [PATCH 063/332] [Filebeat] Fix Logstash example in docs and correct indentation in Yaml (#10754) --- filebeat/docs/modules/logstash.asciidoc | 4 ++-- filebeat/filebeat.reference.yml | 2 +- filebeat/module/logstash/_meta/config.reference.yml | 2 +- filebeat/module/logstash/_meta/docs.asciidoc | 4 ++-- x-pack/filebeat/filebeat.reference.yml | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/filebeat/docs/modules/logstash.asciidoc b/filebeat/docs/modules/logstash.asciidoc index 5decb791935..bdc4923f105 100644 --- a/filebeat/docs/modules/logstash.asciidoc +++ b/filebeat/docs/modules/logstash.asciidoc @@ -53,11 +53,11 @@ file to override the default paths for Logstash logs and set the format to json log: enabled: true var.paths: ["/path/to/log/logstash.log*"] - format: json + var.format: json slowlog: enabled: true var.paths: ["/path/to/log/logstash-slowlog.log*"] - format: json + var.format: json ----- To specify the same settings at the command line, you use: diff --git a/filebeat/filebeat.reference.yml b/filebeat/filebeat.reference.yml index 187730cd3ab..8086b26949d 100644 --- a/filebeat/filebeat.reference.yml +++ b/filebeat/filebeat.reference.yml @@ -245,7 +245,7 @@ filebeat.modules: # Slow logs #slowlog: - #enabled: true + #enabled: true # Set custom paths for the log files. If left empty, # Filebeat will choose the paths depending on your OS. #var.paths: diff --git a/filebeat/module/logstash/_meta/config.reference.yml b/filebeat/module/logstash/_meta/config.reference.yml index 5514a9edc48..ebed7184c0b 100644 --- a/filebeat/module/logstash/_meta/config.reference.yml +++ b/filebeat/module/logstash/_meta/config.reference.yml @@ -9,7 +9,7 @@ # Slow logs #slowlog: - #enabled: true + #enabled: true # Set custom paths for the log files. If left empty, # Filebeat will choose the paths depending on your OS. #var.paths: diff --git a/filebeat/module/logstash/_meta/docs.asciidoc b/filebeat/module/logstash/_meta/docs.asciidoc index 27d6df98d64..dd996c57212 100644 --- a/filebeat/module/logstash/_meta/docs.asciidoc +++ b/filebeat/module/logstash/_meta/docs.asciidoc @@ -48,11 +48,11 @@ file to override the default paths for Logstash logs and set the format to json log: enabled: true var.paths: ["/path/to/log/logstash.log*"] - format: json + var.format: json slowlog: enabled: true var.paths: ["/path/to/log/logstash-slowlog.log*"] - format: json + var.format: json ----- To specify the same settings at the command line, you use: diff --git a/x-pack/filebeat/filebeat.reference.yml b/x-pack/filebeat/filebeat.reference.yml index 087cbb9fd72..8d41832ce47 100644 --- a/x-pack/filebeat/filebeat.reference.yml +++ b/x-pack/filebeat/filebeat.reference.yml @@ -257,7 +257,7 @@ filebeat.modules: # Slow logs #slowlog: - #enabled: true + #enabled: true # Set custom paths for the log files. If left empty, # Filebeat will choose the paths depending on your OS. #var.paths: From 78446a93f7462c8755fdd86b007c7c7c7c3071a0 Mon Sep 17 00:00:00 2001 From: Mario Castro Date: Fri, 22 Feb 2019 13:14:17 +0100 Subject: [PATCH 064/332] Fix flaky test in Elasticsearch module (#10874) An unhandled error was causing panics under certain circumstances --- .../elasticsearch/elasticsearch_integration_test.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/metricbeat/module/elasticsearch/elasticsearch_integration_test.go b/metricbeat/module/elasticsearch/elasticsearch_integration_test.go index a3775d159d4..6e173a95a4c 100644 --- a/metricbeat/module/elasticsearch/elasticsearch_integration_test.go +++ b/metricbeat/module/elasticsearch/elasticsearch_integration_test.go @@ -29,6 +29,8 @@ import ( "os" "testing" + "github.com/pkg/errors" + "github.com/stretchr/testify/assert" "github.com/elastic/beats/libbeat/common" @@ -226,6 +228,9 @@ func createMLJob(host string, version *common.Version) error { } body, resp, err := httpPutJSON(host, jobURL, mlJob) + if err != nil { + return errors.Wrap(err, "error doing PUT request when creating ML job") + } if resp.StatusCode != 200 { return fmt.Errorf("HTTP error loading ml job %d: %s, %s", resp.StatusCode, resp.Status, string(body)) @@ -237,17 +242,17 @@ func createMLJob(host string, version *common.Version) error { func createCCRStats(host string) error { err := setupCCRRemote(host) if err != nil { - return err + return errors.Wrap(err, "error setup CCR remote settings") } err = createCCRLeaderIndex(host) if err != nil { - return err + return errors.Wrap(err, "error creating CCR leader index") } err = createCCRFollowerIndex(host) if err != nil { - return err + return errors.Wrap(err, "error creating CCR follower index") } return nil From 4e76e2fe08e80fd36d558f4e658663faf3064efd Mon Sep 17 00:00:00 2001 From: Mario Castro Date: Fri, 22 Feb 2019 13:24:19 +0100 Subject: [PATCH 065/332] Migrate PostgreSQL database Metricset to use ReporterV2 interface (#10830) --- .../module/postgresql/database/database.go | 27 ++++++++++++------- .../database/database_integration_test.go | 23 +++++++++------- 2 files changed, 31 insertions(+), 19 deletions(-) diff --git a/metricbeat/module/postgresql/database/database.go b/metricbeat/module/postgresql/database/database.go index 818cace9067..447b8614d46 100644 --- a/metricbeat/module/postgresql/database/database.go +++ b/metricbeat/module/postgresql/database/database.go @@ -20,9 +20,10 @@ package database import ( "database/sql" + "github.com/elastic/beats/libbeat/logp" + "github.com/pkg/errors" - "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/module/postgresql" @@ -30,6 +31,8 @@ import ( _ "github.com/lib/pq" ) +var logger = logp.NewLogger("postgresql.database") + // init registers the MetricSet with the central registry. // The New method will be called after the setup of the module and before starting to fetch data func init() { @@ -49,24 +52,30 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { return &MetricSet{BaseMetricSet: base}, nil } -// Fetch methods implements the data gathering and data conversion to the right format -func (m *MetricSet) Fetch() ([]common.MapStr, error) { +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(reporter mb.ReporterV2) { db, err := sql.Open("postgres", m.HostData().URI) if err != nil { - return nil, err + logger.Error(err) + reporter.Error(err) + return } defer db.Close() results, err := postgresql.QueryStats(db, "SELECT * FROM pg_stat_database") if err != nil { - return nil, errors.Wrap(err, "QueryStats") + err = errors.Wrap(err, "QueryStats") + logger.Error(err) + reporter.Error(err) + return } - events := []common.MapStr{} for _, result := range results { data, _ := schema.Apply(result) - events = append(events, data) + reporter.Event(mb.Event{ + MetricSetFields: data, + }) } - - return events, nil } diff --git a/metricbeat/module/postgresql/database/database_integration_test.go b/metricbeat/module/postgresql/database/database_integration_test.go index 50287dce897..907b357062d 100644 --- a/metricbeat/module/postgresql/database/database_integration_test.go +++ b/metricbeat/module/postgresql/database/database_integration_test.go @@ -33,14 +33,13 @@ import ( func TestFetch(t *testing.T) { compose.EnsureUp(t, "postgresql") - f := mbtest.NewEventsFetcher(t, getConfig()) - events, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } - - assert.True(t, len(events) > 0) - event := events[0] + assert.NotEmpty(t, events) + event := events[0].MetricSetFields t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) @@ -62,10 +61,14 @@ func TestFetch(t *testing.T) { func TestData(t *testing.T) { compose.EnsureUp(t, "postgresql") - f := mbtest.NewEventsFetcher(t, getConfig()) + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) + } + assert.NotEmpty(t, events) - err := mbtest.WriteEvents(f, t) - if err != nil { + if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { t.Fatal("write", err) } } From a27edf12154bda0b1563197727f5ee455f6b5641 Mon Sep 17 00:00:00 2001 From: kaiyan-sheng Date: Fri, 22 Feb 2019 05:44:57 -0700 Subject: [PATCH 066/332] Remove debug code (#10884) --- x-pack/metricbeat/module/aws/ec2/ec2.go | 4 ---- x-pack/metricbeat/module/aws/ec2/ec2_test.go | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/x-pack/metricbeat/module/aws/ec2/ec2.go b/x-pack/metricbeat/module/aws/ec2/ec2.go index 96b459cc6f2..60150ee7424 100644 --- a/x-pack/metricbeat/module/aws/ec2/ec2.go +++ b/x-pack/metricbeat/module/aws/ec2/ec2.go @@ -103,10 +103,6 @@ func (m *MetricSet) Fetch(report mb.ReporterV2) { } for _, instanceID := range instanceIDs { - if instanceID != "i-77f84332" { - continue - } - metricDataQueries := constructMetricQueries(listMetricsOutput, instanceID, m.PeriodInSec) if len(metricDataQueries) == 0 { continue diff --git a/x-pack/metricbeat/module/aws/ec2/ec2_test.go b/x-pack/metricbeat/module/aws/ec2/ec2_test.go index a24f5326206..caafbc01201 100644 --- a/x-pack/metricbeat/module/aws/ec2/ec2_test.go +++ b/x-pack/metricbeat/module/aws/ec2/ec2_test.go @@ -111,7 +111,7 @@ func (m *MockEC2Client) DescribeInstancesRequest(input *ec2.DescribeInstancesInp } } -func TestGetinstanceIDs(t *testing.T) { +func TestGetInstanceIDs(t *testing.T) { mockSvc := &MockEC2Client{} instanceIDs, instancesOutputs, err := getInstancesPerRegion(mockSvc) if err != nil { From af41b937ab81de45d75032b7470ed285bd963d70 Mon Sep 17 00:00:00 2001 From: Mario Castro Date: Fri, 22 Feb 2019 14:09:02 +0100 Subject: [PATCH 067/332] [Metricbeat] Migrate ETCD Store to use ReporterV2 interface (#10815) --- metricbeat/module/etcd/store/_meta/data.json | 22 +++++++++----- metricbeat/module/etcd/store/store.go | 18 +++++++++--- .../etcd/store/store_integration_test.go | 29 +++++++++++-------- metricbeat/module/etcd/store/store_test.go | 15 ++++++---- 4 files changed, 55 insertions(+), 29 deletions(-) diff --git a/metricbeat/module/etcd/store/_meta/data.json b/metricbeat/module/etcd/store/_meta/data.json index 55b70924aa6..c74e5adaf74 100644 --- a/metricbeat/module/etcd/store/_meta/data.json +++ b/metricbeat/module/etcd/store/_meta/data.json @@ -1,6 +1,6 @@ { "@timestamp": "2017-10-12T08:05:34.853Z", - "beat": { + "agent": { "hostname": "host.example.com", "name": "host.example.com" }, @@ -26,12 +26,12 @@ "count": 0 }, "gets": { - "fail": 1, - "success": 35 + "fail": 3, + "success": 0 }, "sets": { "fail": 0, - "success": 2 + "success": 4 }, "update": { "fail": 0, @@ -40,10 +40,16 @@ "watchers": 0 } }, + "event": { + "dataset": "etcd.store", + "duration": 115000, + "module": "etcd" + }, "metricset": { - "host": "etcd:2379", - "module": "etcd", - "name": "store", - "rtt": 115 + "name": "store" + }, + "service": { + "address": "127.0.0.1:2379", + "type": "etcd" } } \ No newline at end of file diff --git a/metricbeat/module/etcd/store/store.go b/metricbeat/module/etcd/store/store.go index 40db3d64ab0..7c86c258cea 100644 --- a/metricbeat/module/etcd/store/store.go +++ b/metricbeat/module/etcd/store/store.go @@ -18,7 +18,7 @@ package store import ( - "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" @@ -36,6 +36,8 @@ var ( }.Build() ) +var logger = logp.NewLogger("etcd.store") + func init() { mb.Registry.MustAddMetricSet("etcd", "store", New, mb.WithHostParser(hostParser), @@ -64,10 +66,18 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { }, nil } -func (m *MetricSet) Fetch() (common.MapStr, error) { +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(reporter mb.ReporterV2) { content, err := m.http.FetchContent() if err != nil { - return nil, err + logger.Error(err) + reporter.Error(err) + return } - return eventMapping(content), nil + + reporter.Event(mb.Event{ + MetricSetFields: eventMapping(content), + }) } diff --git a/metricbeat/module/etcd/store/store_integration_test.go b/metricbeat/module/etcd/store/store_integration_test.go index 5b4c49f34c9..932ed5d4925 100644 --- a/metricbeat/module/etcd/store/store_integration_test.go +++ b/metricbeat/module/etcd/store/store_integration_test.go @@ -25,31 +25,36 @@ import ( "github.com/stretchr/testify/assert" + "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/libbeat/tests/compose" mbtest "github.com/elastic/beats/metricbeat/mb/testing" ) -func TestData(t *testing.T) { +func TestFetch(t *testing.T) { + logp.TestingSetup() compose.EnsureUp(t, "etcd") - f := mbtest.NewEventFetcher(t, getConfig()) - err := mbtest.WriteEvent(f, t) - if err != nil { - t.Fatal("write", err) + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } + assert.NotEmpty(t, events) } -func TestFetch(t *testing.T) { +func TestData(t *testing.T) { compose.EnsureUp(t, "etcd") - f := mbtest.NewEventFetcher(t, getConfig()) - event, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } + assert.NotEmpty(t, events) - assert.NotNil(t, event) - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) + if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { + t.Fatal("write", err) + } } func getConfig() map[string]interface{} { diff --git a/metricbeat/module/etcd/store/store_test.go b/metricbeat/module/etcd/store/store_test.go index 1e961c7ed27..511d50c41bd 100644 --- a/metricbeat/module/etcd/store/store_test.go +++ b/metricbeat/module/etcd/store/store_test.go @@ -42,8 +42,11 @@ func TestEventMapping(t *testing.T) { func TestFetchEventContent(t *testing.T) { absPath, err := filepath.Abs("../_meta/test/") + assert.NoError(t, err) response, err := ioutil.ReadFile(absPath + "/storestats.json") + assert.NoError(t, err) + server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(200) w.Header().Set("Content-Type", "application/json;") @@ -56,11 +59,13 @@ func TestFetchEventContent(t *testing.T) { "metricsets": []string{"store"}, "hosts": []string{server.URL}, } - f := mbtest.NewEventFetcher(t, config) - event, err := f.Fetch() - if err != nil { - t.Fatal(err) + + f := mbtest.NewReportingMetricSetV2(t, config) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } + assert.NotEmpty(t, events) - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) + t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), events[0]) } From 86e77e269c4ebcbcb3fe34b37418357e664922cb Mon Sep 17 00:00:00 2001 From: Mario Castro Date: Fri, 22 Feb 2019 14:10:08 +0100 Subject: [PATCH 068/332] [Metricbeat] Migrate ETCD self to use ReporterV2 interface (#10816) --- metricbeat/module/etcd/self/_meta/data.json | 22 +++++++++----- metricbeat/module/etcd/self/self.go | 18 +++++++++--- .../module/etcd/self/self_integration_test.go | 29 +++++++++++-------- metricbeat/module/etcd/self/self_test.go | 12 ++++---- 4 files changed, 52 insertions(+), 29 deletions(-) diff --git a/metricbeat/module/etcd/self/_meta/data.json b/metricbeat/module/etcd/self/_meta/data.json index 350fb8b4e53..3da6ec65805 100644 --- a/metricbeat/module/etcd/self/_meta/data.json +++ b/metricbeat/module/etcd/self/_meta/data.json @@ -1,6 +1,6 @@ { "@timestamp": "2017-10-12T08:05:34.853Z", - "beat": { + "agent": { "hostname": "host.example.com", "name": "host.example.com" }, @@ -9,8 +9,8 @@ "id": "8e9e05c52164694d", "leaderinfo": { "leader": "8e9e05c52164694d", - "starttime": "2017-12-07T07:20:33.241031712Z", - "uptime": "9m4.919923089s" + "starttime": "2019-02-18T21:42:23.191073075Z", + "uptime": "23m12.747903053s" }, "name": "default", "recv": { @@ -27,14 +27,20 @@ "bandwidthrate": 0, "pkgrate": 0 }, - "starttime": "2017-12-07T07:20:32.340598119Z", + "starttime": "2019-02-18T21:42:21.490011868Z", "state": "StateLeader" } }, + "event": { + "dataset": "etcd.self", + "duration": 115000, + "module": "etcd" + }, "metricset": { - "host": "etcd:2379", - "module": "etcd", - "name": "self", - "rtt": 115 + "name": "self" + }, + "service": { + "address": "127.0.0.1:2379", + "type": "etcd" } } \ No newline at end of file diff --git a/metricbeat/module/etcd/self/self.go b/metricbeat/module/etcd/self/self.go index 9035e5b91fb..65f84356538 100644 --- a/metricbeat/module/etcd/self/self.go +++ b/metricbeat/module/etcd/self/self.go @@ -18,7 +18,7 @@ package self import ( - "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" @@ -43,6 +43,8 @@ func init() { ) } +var logger = logp.NewLogger("etcd.self") + type MetricSet struct { mb.BaseMetricSet http *helper.HTTP @@ -65,10 +67,18 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { }, nil } -func (m *MetricSet) Fetch() (common.MapStr, error) { +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(reporter mb.ReporterV2) { content, err := m.http.FetchContent() if err != nil { - return nil, err + logger.Error(err) + reporter.Error(err) + return } - return eventMapping(content), nil + + reporter.Event(mb.Event{ + MetricSetFields: eventMapping(content), + }) } diff --git a/metricbeat/module/etcd/self/self_integration_test.go b/metricbeat/module/etcd/self/self_integration_test.go index 031d6e92c58..90e0b77b41e 100644 --- a/metricbeat/module/etcd/self/self_integration_test.go +++ b/metricbeat/module/etcd/self/self_integration_test.go @@ -29,27 +29,32 @@ import ( mbtest "github.com/elastic/beats/metricbeat/mb/testing" ) -func TestData(t *testing.T) { +func TestFetch(t *testing.T) { compose.EnsureUp(t, "etcd") - f := mbtest.NewEventFetcher(t, getConfig()) - err := mbtest.WriteEvent(f, t) - if err != nil { - t.Fatal("write", err) + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } + assert.NotEmpty(t, events) + + t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), events[0]) } -func TestFetch(t *testing.T) { +func TestData(t *testing.T) { compose.EnsureUp(t, "etcd") - f := mbtest.NewEventFetcher(t, getConfig()) - event, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } + assert.NotEmpty(t, events) - assert.NotNil(t, event) - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) + if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { + t.Fatal("write", err) + } } func getConfig() map[string]interface{} { diff --git a/metricbeat/module/etcd/self/self_test.go b/metricbeat/module/etcd/self/self_test.go index 5111247399c..ec69fc10acb 100644 --- a/metricbeat/module/etcd/self/self_test.go +++ b/metricbeat/module/etcd/self/self_test.go @@ -41,6 +41,7 @@ func TestEventMapping(t *testing.T) { func TestFetchEventContent(t *testing.T) { absPath, err := filepath.Abs("../_meta/test/") + assert.NoError(t, err) response, err := ioutil.ReadFile(absPath + "/selfstats.json") server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { @@ -55,11 +56,12 @@ func TestFetchEventContent(t *testing.T) { "metricsets": []string{"self"}, "hosts": []string{server.URL}, } - f := mbtest.NewEventFetcher(t, config) - event, err := f.Fetch() - if err != nil { - t.Fatal(err) + f := mbtest.NewReportingMetricSetV2(t, config) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } + assert.NotEmpty(t, events) - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) + t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), events[0]) } From 3eb1901bf76aeef6ecd365bde435f59fd7ac4580 Mon Sep 17 00:00:00 2001 From: Mario Castro Date: Fri, 22 Feb 2019 14:10:27 +0100 Subject: [PATCH 069/332] [Metricbeat] Migrate ETCD leader to use ReporterV2 interface (#10817) --- metricbeat/module/etcd/leader/_meta/data.json | 16 +++++++--- metricbeat/module/etcd/leader/leader.go | 18 ++++++++--- .../etcd/leader/leader_integration_test.go | 32 ++++++++++++------- metricbeat/module/etcd/leader/leader_test.go | 17 ++++++---- 4 files changed, 55 insertions(+), 28 deletions(-) diff --git a/metricbeat/module/etcd/leader/_meta/data.json b/metricbeat/module/etcd/leader/_meta/data.json index 6b501fcbc03..ee5f566cd85 100644 --- a/metricbeat/module/etcd/leader/_meta/data.json +++ b/metricbeat/module/etcd/leader/_meta/data.json @@ -1,6 +1,6 @@ { "@timestamp": "2017-10-12T08:05:34.853Z", - "beat": { + "agent": { "hostname": "host.example.com", "name": "host.example.com" }, @@ -10,10 +10,16 @@ "leader": "8e9e05c52164694d" } }, + "event": { + "dataset": "etcd.leader", + "duration": 115000, + "module": "etcd" + }, "metricset": { - "host": "etcd:2379", - "module": "etcd", - "name": "leader", - "rtt": 115 + "name": "leader" + }, + "service": { + "address": "127.0.0.1:2379", + "type": "etcd" } } \ No newline at end of file diff --git a/metricbeat/module/etcd/leader/leader.go b/metricbeat/module/etcd/leader/leader.go index fad601ff58d..ec5ee1f1394 100644 --- a/metricbeat/module/etcd/leader/leader.go +++ b/metricbeat/module/etcd/leader/leader.go @@ -18,7 +18,7 @@ package leader import ( - "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" @@ -36,6 +36,8 @@ var ( }.Build() ) +var logger = logp.NewLogger("etcd.leader") + func init() { mb.Registry.MustAddMetricSet("etcd", "leader", New, mb.WithHostParser(hostParser), @@ -64,10 +66,18 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { }, nil } -func (m *MetricSet) Fetch() (common.MapStr, error) { +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(reporter mb.ReporterV2) { content, err := m.http.FetchContent() if err != nil { - return nil, err + logger.Error(err) + reporter.Error(err) + return } - return eventMapping(content), nil + + reporter.Event(mb.Event{ + MetricSetFields: eventMapping(content), + }) } diff --git a/metricbeat/module/etcd/leader/leader_integration_test.go b/metricbeat/module/etcd/leader/leader_integration_test.go index 8ffee3e5934..f9cfe680796 100644 --- a/metricbeat/module/etcd/leader/leader_integration_test.go +++ b/metricbeat/module/etcd/leader/leader_integration_test.go @@ -25,31 +25,39 @@ import ( "github.com/stretchr/testify/assert" + "github.com/elastic/beats/libbeat/logp" + "github.com/elastic/beats/libbeat/tests/compose" mbtest "github.com/elastic/beats/metricbeat/mb/testing" ) -func TestData(t *testing.T) { +func TestFetch(t *testing.T) { + logp.TestingSetup() + compose.EnsureUp(t, "etcd") - f := mbtest.NewEventFetcher(t, getConfig()) - err := mbtest.WriteEvent(f, t) - if err != nil { - t.Fatal("write", err) + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } + assert.NotEmpty(t, events) + t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), events[0]) } -func TestFetch(t *testing.T) { +func TestData(t *testing.T) { compose.EnsureUp(t, "etcd") - f := mbtest.NewEventFetcher(t, getConfig()) - event, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } + assert.NotEmpty(t, events) - assert.NotNil(t, event) - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) + if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { + t.Fatal("write", err) + } } func getConfig() map[string]interface{} { diff --git a/metricbeat/module/etcd/leader/leader_test.go b/metricbeat/module/etcd/leader/leader_test.go index d991141c8f7..fd3377fd796 100644 --- a/metricbeat/module/etcd/leader/leader_test.go +++ b/metricbeat/module/etcd/leader/leader_test.go @@ -25,9 +25,9 @@ import ( "github.com/stretchr/testify/assert" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - "testing" + + mbtest "github.com/elastic/beats/metricbeat/mb/testing" ) func TestEventMapping(t *testing.T) { @@ -41,6 +41,7 @@ func TestEventMapping(t *testing.T) { func TestFetchEventContent(t *testing.T) { absPath, err := filepath.Abs("../_meta/test/") + assert.NoError(t, err) response, err := ioutil.ReadFile(absPath + "/leaderstats.json") server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { @@ -55,11 +56,13 @@ func TestFetchEventContent(t *testing.T) { "metricsets": []string{"leader"}, "hosts": []string{server.URL}, } - f := mbtest.NewEventFetcher(t, config) - event, err := f.Fetch() - if err != nil { - t.Fatal(err) + + f := mbtest.NewReportingMetricSetV2(t, config) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } + assert.NotEmpty(t, events) - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) + t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), events[0]) } From e5af0199c7c2ad14f031e09fa33693eab3cee90d Mon Sep 17 00:00:00 2001 From: Jaime Soriano Pastor Date: Fri, 22 Feb 2019 18:15:16 +0100 Subject: [PATCH 070/332] Fix flakyness of docker system tests (#10863) Docker system tests depend on containers being run in the docker daemon, this makes the test depend on other tests. Add a dummy container to be running during these tests with a healthcheck for the healthcheck test. The healthcheck also generates events for the events test. --- metricbeat/docker-compose.yml | 9 +++++++++ metricbeat/tests/system/test_docker.py | 2 ++ 2 files changed, 11 insertions(+) diff --git a/metricbeat/docker-compose.yml b/metricbeat/docker-compose.yml index d1daf15af63..c987f374560 100644 --- a/metricbeat/docker-compose.yml +++ b/metricbeat/docker-compose.yml @@ -69,6 +69,15 @@ services: couchdb: build: ./module/couchdb/_meta + # Dummy container for docker tests, so there is a container with + # healthcheck generating events + docker: + image: alpine + command: '/bin/sh -c "trap : TERM INT; sleep 15d"' + healthcheck: + interval: 1s + test: ["CMD", "true"] + dropwizard: build: ./module/dropwizard/_meta diff --git a/metricbeat/tests/system/test_docker.py b/metricbeat/tests/system/test_docker.py index c757eea06f6..696e4cb3089 100644 --- a/metricbeat/tests/system/test_docker.py +++ b/metricbeat/tests/system/test_docker.py @@ -7,6 +7,8 @@ class Test(metricbeat.BaseTest): + COMPOSE_SERVICES = ['docker'] + @unittest.skipUnless(metricbeat.INTEGRATION_TESTS, "integration test") def test_container_fields(self): """ From cf45635bef0b020675145c1251288dbc6ca1b108 Mon Sep 17 00:00:00 2001 From: Christoph Wurm Date: Fri, 22 Feb 2019 17:19:49 +0000 Subject: [PATCH 071/332] Make system module beta. (#10800) The System module has been marked as `experimental` so far. With 7.0 we're moving it to `beta`. --- x-pack/auditbeat/docs/modules/system.asciidoc | 2 +- x-pack/auditbeat/module/system/_meta/docs.asciidoc | 2 +- x-pack/auditbeat/module/system/_meta/fields.yml | 2 +- x-pack/auditbeat/module/system/fields.go | 2 +- .../auditbeat/module/system/host/_meta/docs.asciidoc | 2 +- x-pack/auditbeat/module/system/host/_meta/fields.yml | 2 +- x-pack/auditbeat/module/system/host/host.go | 2 +- .../module/system/login/_meta/docs.asciidoc | 2 +- x-pack/auditbeat/module/system/login/login.go | 2 +- .../module/system/package/_meta/docs.asciidoc | 2 +- .../auditbeat/module/system/package/_meta/fields.yml | 2 +- x-pack/auditbeat/module/system/package/package.go | 2 +- .../module/system/process/_meta/docs.asciidoc | 2 +- x-pack/auditbeat/module/system/process/process.go | 2 +- .../module/system/socket/_meta/docs.asciidoc | 2 +- x-pack/auditbeat/module/system/socket/socket.go | 2 +- .../auditbeat/module/system/user/_meta/docs.asciidoc | 2 +- x-pack/auditbeat/module/system/user/_meta/fields.yml | 2 +- x-pack/auditbeat/module/system/user/user.go | 2 +- x-pack/auditbeat/tests/system/test_metricsets.py | 12 ++++++------ 20 files changed, 25 insertions(+), 25 deletions(-) diff --git a/x-pack/auditbeat/docs/modules/system.asciidoc b/x-pack/auditbeat/docs/modules/system.asciidoc index 0780f361463..7a94aafec27 100644 --- a/x-pack/auditbeat/docs/modules/system.asciidoc +++ b/x-pack/auditbeat/docs/modules/system.asciidoc @@ -7,7 +7,7 @@ This file is generated! See scripts/docs_collector.py == System Module -experimental[] +beta[] The `system` module collects various security related information about a system. All datasets send both periodic state information (e.g. all currently diff --git a/x-pack/auditbeat/module/system/_meta/docs.asciidoc b/x-pack/auditbeat/module/system/_meta/docs.asciidoc index cafbf5d4e8d..0cbd1cd4053 100644 --- a/x-pack/auditbeat/module/system/_meta/docs.asciidoc +++ b/x-pack/auditbeat/module/system/_meta/docs.asciidoc @@ -2,7 +2,7 @@ == System Module -experimental[] +beta[] The `system` module collects various security related information about a system. All datasets send both periodic state information (e.g. all currently diff --git a/x-pack/auditbeat/module/system/_meta/fields.yml b/x-pack/auditbeat/module/system/_meta/fields.yml index c4b9a136dcc..4e1e82d75c1 100644 --- a/x-pack/auditbeat/module/system/_meta/fields.yml +++ b/x-pack/auditbeat/module/system/_meta/fields.yml @@ -2,7 +2,7 @@ title: "System" description: > These are the fields generated by the system module. - release: experimental + release: beta fields: - name: event diff --git a/x-pack/auditbeat/module/system/fields.go b/x-pack/auditbeat/module/system/fields.go index 3c31dbb11b4..a4cbb83c01e 100644 --- a/x-pack/auditbeat/module/system/fields.go +++ b/x-pack/auditbeat/module/system/fields.go @@ -19,5 +19,5 @@ func init() { // AssetSystem returns asset data. // This is the base64 encoded gzipped contents of module/system. func AssetSystem() string { - return "eJzEWV1v2zYUffevuOhLE8BV0GErhjwMaBdgDdCuweICe7Np8VriQvFqJJVU/fUDKcqWLMofiYoJCBDT5DnnfpFX9Bt4wPoaTG0sFjMAK6zEa3h17wdezQA4mlSL0gpS1/DbDABgkaNBYBrB5ggbgZIbyFChZhY5rGs/3mBCQbySmMwANEpkBq8Bv5WoRYHKMjmDAHA9mwG8AcUKN+MRlfVcti7xGjJNVek/t5Pd/+1s0iITyg+1Cx6wfiLNw1jEBvd88euANl6v50xgkQsDKVOwRmCwERKhZDaHC0yyBFZXj0xfScrcX/J2dTnfopH2ME5SCxlckFJRkkJlwebMgqnKUgrkfgpnlrXYCq0U6mF1mXR9URnUJ7sClRW2Xgp+vjdub6BS4t8KZQ2CO6BNLVTmVToNQAoY5GRsArcWnJeoKCsXcWaAwf3H929++uUd5MzkO6c0jnCr4PZm3gC5f5jizQenO+nZYFEXQvnUONOERVjZ0jqCni9LTSka83+7M8g47sdgyBZ068e71ocBCoxl2oIVzpkdgw2lD3h6Jf0gexsVLzC3AQChiOMcJKVMwu1d+19J2s5BY0EW/bBzTPjovut7xNdkwiou4n6J2Nd1VdddTt92cIh00F/uWTmAFaSkLBOq3UNlY7dQG9IFc+uSzqqxXbR99rV2NpLSpUdPQKNYksp6ww3xNfBKe/7el0KVlV22UxRTZDAlxU1vFlW2O42ZG1ZHZ5QaU2G8c972vj/gN/d89daAUF0JScTsNZEdMZwzi+dwfiBqa2zIE6KIWnxHHiFbE0lk6hy+e5fzm5AOrli2HDEBTth3Upi4jxEB/TI+ScCfncOshe/u6XPwJ9eH+8VBQbTZGLSJwfSU7DuiabHT4VBdBhyIvlM5nT8+BrQYk4gF/ZkccHsTo2A6zYXF1FZ6QoN6sKEX+fbru+W7ny9jIgoWi+IzuD+//x0Y5xqNwWjsRBkh2hs8wnF7d5iCTIRifwc/wrIi09nDO9s2sDVV1hcLla45dudhOH/6++1gz+60LJJZh7hHOu71oz75cr8FDdFOUVkyc6jWlbLVHJ6E4vRkLpOookE5vVSNb5kbJZ9Z6kb+HqHesELIelLyBjLQa+Q5s3PguBZMzWGjEdeGH/PII2qzf0y+VFfAjBM+oFYop+NbRFL0tQk0Qynb3GTpA8vwRS1QwDhYQUyBUMYyKZG79yzX2z0ib/mnaY/2e99jTj3o0oPdf1B9djvcPtu2OCB5A8LrQBiJZM9o+T7TxLsOeYwnVhQvpDpgVYj7lGwBcuwgnpKqewLH+KRIUU1rXYCMnrtNrU3SNLd0AXO0ezbi+0mvJieRObAoSVUUTNfPAGwWxjArLacMy9e/Pg332e0VUJfinE3WARztUdwk09zyDJuU8/fVH9UwAHzt3xsNvCX2EV/O1u/Hd1zZtFx/uJiOknGhpzbstYGcCnTQmFrqp3incHKUE7YbAHeaMs0KsAS6UsAsSMrESLfjEnPZydlJPR6uXPxdZPfKBb4o+CRU9W0ONhfGndSuSDJMyTTZPpIRg5eHViGt/8HUnidw5eGONEd1Q2p2V7XCQMm0dQ3ExRprUnz73WsDpRZuN2tW7bW08UqGw9V8LAonRQK2+T8sbThYcjt6oSxmuF8lZ9KPlV/JjIkYN/bOeDy2LeDh8G6jFmbDhSIbGskwIqxBuTk7kk75j4rk+4FsB5vAHRkj1hLhkckKjf8VaWVyxulpufXHCOZFz2jfIbvCVM0ds8fwP9hczne+XXJh2FoiX81HUFeKdsyOoyl2zlSGmirj+3JVk0L/s5CkDIS69O32GGKq69J2QZ9yVP2Q+dg47Vdo0ys/zMEgFmYE1FKbJe51CJXn8O9ADeIg+p3ukRm7THNn0HjpDNq65jkp2Av/Q1bd22NaQ5+Y8QIgCEhm/wUAAP//Pj6ZgA==" + return "eJzEWd9v2zYQfvdfcehLE8BV0GErBj8MaBdgDdCuweICe7Np8SxxoXgaSSVV//qBFGVLNuUfsYoJMGBR5Pd9d8cjT9QbeMR6BqY2FosJgBVW4gxePfiGVxMAjibVorSC1Ax+mwAAzHM0CEwj2BxhLVByAxkq1Mwih1Xt2xtMKIhXEpMJgEaJzOAMVmjZBMLA2WQC8AYUK3AG+ITKeg5blziDTFNV+vu2s/vf9iYtMqF8UzvgEetn0jy0RbS764sfB7T2Oj1nAvNcGEiZghUCg7WQCCWzOVxhkiWwvHli+kZS5n7J2+X1dING2sM4SS1kMD2loiSFyoLNmQVTlaUUyH0XzixrsRVaKdTj8jrp+qIyqE92BSorbL0Q/Hxv3N1CpcS/FcoaBHdA61qozKt0GoAUMMjJ2ATuLDgvUVFWLtLMAIOHj+/f/PTLO8iZybdOaRzhRsHd7bQBcn+Y4s2N0530bLCoC6GYPN+EeRjZ0jqCni9LTSka83+7M8g47sdgyAZ048f71ocBCoxl2oIVzpkdgw2lj3h6Jv0gexsVF5jbAIBQxHEKklIm4e6+/VeStlPQWJBF3+wcE27ds75HfE4mrOIi7peIfV1Xdd3l9G0a95EO+stdSwewhJSUZUK1a6ds7BZqTbpgblzSGbW7erbXrsbOAlK6adEjbpRKUlmvuSGcAa+05+09FKqs7KLtopgigykpbnq9qLLdbszcsjrao9SYCuOd8rb3/IC/3PXVWwNCdSUkEbNXRHbAcM4snsP5gajNrX2eED3U4jvyCNmKSCJT5/A9uLm+DtPAJcmGIybACftOChN3GxHQT9+TBPzZ2cRa+O5aPgW/Y314mB8UROu1QZsYTE+ZfUc0zbc6HKqbAQei71SO54+PAS3GJGJBfyEH3N3GKJhOc2ExtZUe0aAebKhBvv36bvHu5+uYiILFovgC7s/vfwfGuUZjMBo7UUaIdhqPcNzdH6YgE6HYXbmPsCzJdNbuznINbEWV9clCpSuG3T4Y9p3+eru3ZndKFcmsQ9whHfb6UZ98ediAhminqCyZKVSrStlqCs9CcXo210lU0V46XarGl8qNks8sdS1/D1CvWSFkPSp5AxnoNfKc2SlwXAmmprDWiCvDj3nkCbXZ3SYv1RUw44SPqBXK8fjmkSn62gSafSmbucnSR5bhRaVPwDiYQUyBUMYyKZG79ytX0z0hb/kvK4t2a91jzjzoyoPVflB7dvnbXpsyOCB5A0L5H1ois2YwbV9o4n2HPMYTS4YLqQ5YFeI9JluAHNqAx6Tq7rwxPilSVONaFyCj+22TY6MUyy1dwBysmo34ftIryUlkDixKUhUF0/ULAJuBMcxKyzHD8vWvT/vr6+bIp0txzuLqAI7WJq6TaU519ouT09fTH1UgAHztnw/teUnsIl7O1q+/t1zZuFx/uFgOknGhxzbstYGcCnTQmFrqT+1OwuQoRywvAO41ZZoVYAl0pYBZkJSJgerGTchFZ66O6vFwtOLPHLtHK/BFwSehqm9TsLkwbod2yZFhSqaZ7QMzYu9loVVIq38wtecJXHq4I8VQ3ZCa7ZGsMFAybV3hcLXCmhTfPHttoNTCrWLNqJ0SNp7JcDibj0XhpEjAZv7vpzYcTLktvVAWM9zNkjPph9KvZMZEjBt6Rzwe2xbwcHg3UQu94UqRDQVkaBHWoFyfHUmn/EdF8v2ebAebwD0ZI1YS4YnJCo3/SrQ0OeP0vNj4YwDzqme0r4xdYqrmLNlj+A8z19OtbxdcGLaSyJfTAdSloi2z42iSnTOVoabK+Hpc1aTQf/6RlIFQ177MHkJMdV3aLuhzjqofMh8bp/0GbXrjmzkYxMIMgFpqZ4l7/UHlOfw7T4O4F/1O1ciMXaS5M2g4dfbKueY6Kdhz/8Gq7q0xraHPzHgBEAQkk/8CAAD//2oPi7g=" } diff --git a/x-pack/auditbeat/module/system/host/_meta/docs.asciidoc b/x-pack/auditbeat/module/system/host/_meta/docs.asciidoc index 006defed451..511f59ad46c 100644 --- a/x-pack/auditbeat/module/system/host/_meta/docs.asciidoc +++ b/x-pack/auditbeat/module/system/host/_meta/docs.asciidoc @@ -1,6 +1,6 @@ [role="xpack"] -experimental[] +beta[] This is the `host` dataset of the system module. diff --git a/x-pack/auditbeat/module/system/host/_meta/fields.yml b/x-pack/auditbeat/module/system/host/_meta/fields.yml index c2a8d43475c..a8bc7311bf3 100644 --- a/x-pack/auditbeat/module/system/host/_meta/fields.yml +++ b/x-pack/auditbeat/module/system/host/_meta/fields.yml @@ -2,7 +2,7 @@ type: group description: > `host` contains general host information. - release: experimental + release: beta fields: - name: uptime type: long diff --git a/x-pack/auditbeat/module/system/host/host.go b/x-pack/auditbeat/module/system/host/host.go index 0d7f85ba0c1..e8255f4f5ea 100644 --- a/x-pack/auditbeat/module/system/host/host.go +++ b/x-pack/auditbeat/module/system/host/host.go @@ -160,7 +160,7 @@ type MetricSet struct { // New constructs a new MetricSet. func New(base mb.BaseMetricSet) (mb.MetricSet, error) { - cfgwarn.Experimental("The %v/%v dataset is experimental", moduleName, metricsetName) + cfgwarn.Beta("The %v/%v dataset is beta", moduleName, metricsetName) config := defaultConfig() if err := base.Module().UnpackConfig(&config); err != nil { diff --git a/x-pack/auditbeat/module/system/login/_meta/docs.asciidoc b/x-pack/auditbeat/module/system/login/_meta/docs.asciidoc index e57c8bbb5b3..656dfa6dc3b 100644 --- a/x-pack/auditbeat/module/system/login/_meta/docs.asciidoc +++ b/x-pack/auditbeat/module/system/login/_meta/docs.asciidoc @@ -1,6 +1,6 @@ [role="xpack"] -experimental[] +beta[] This is the `login` dataset of the system module. diff --git a/x-pack/auditbeat/module/system/login/login.go b/x-pack/auditbeat/module/system/login/login.go index 23509d67123..064157e7d3a 100644 --- a/x-pack/auditbeat/module/system/login/login.go +++ b/x-pack/auditbeat/module/system/login/login.go @@ -92,7 +92,7 @@ type MetricSet struct { // New constructs a new MetricSet. func New(base mb.BaseMetricSet) (mb.MetricSet, error) { - cfgwarn.Experimental("The %v/%v dataset is experimental", moduleName, metricsetName) + cfgwarn.Beta("The %v/%v dataset is beta", moduleName, metricsetName) config := defaultConfig() if err := base.Module().UnpackConfig(&config); err != nil { diff --git a/x-pack/auditbeat/module/system/package/_meta/docs.asciidoc b/x-pack/auditbeat/module/system/package/_meta/docs.asciidoc index 590c0587eb5..2c5d50a4e9f 100644 --- a/x-pack/auditbeat/module/system/package/_meta/docs.asciidoc +++ b/x-pack/auditbeat/module/system/package/_meta/docs.asciidoc @@ -1,6 +1,6 @@ [role="xpack"] -experimental[] +beta[] This is the `package` dataset of the system module. diff --git a/x-pack/auditbeat/module/system/package/_meta/fields.yml b/x-pack/auditbeat/module/system/package/_meta/fields.yml index 67c894089fa..bba0840aafb 100644 --- a/x-pack/auditbeat/module/system/package/_meta/fields.yml +++ b/x-pack/auditbeat/module/system/package/_meta/fields.yml @@ -2,7 +2,7 @@ type: group description: > `package` contains information about an installed or removed package. - release: experimental + release: beta fields: - name: entity_id type: keyword diff --git a/x-pack/auditbeat/module/system/package/package.go b/x-pack/auditbeat/module/system/package/package.go index fb3fe5fe607..45743010087 100644 --- a/x-pack/auditbeat/module/system/package/package.go +++ b/x-pack/auditbeat/module/system/package/package.go @@ -181,7 +181,7 @@ func getOS() (*types.OSInfo, error) { // New constructs a new MetricSet. func New(base mb.BaseMetricSet) (mb.MetricSet, error) { - cfgwarn.Experimental("The %v/%v dataset is experimental", moduleName, metricsetName) + cfgwarn.Beta("The %v/%v dataset is beta", moduleName, metricsetName) config := defaultConfig() if err := base.Module().UnpackConfig(&config); err != nil { diff --git a/x-pack/auditbeat/module/system/process/_meta/docs.asciidoc b/x-pack/auditbeat/module/system/process/_meta/docs.asciidoc index 0550fc3c564..45e148bb6e0 100644 --- a/x-pack/auditbeat/module/system/process/_meta/docs.asciidoc +++ b/x-pack/auditbeat/module/system/process/_meta/docs.asciidoc @@ -1,6 +1,6 @@ [role="xpack"] -experimental[] +beta[] This is the `process` dataset of the system module. diff --git a/x-pack/auditbeat/module/system/process/process.go b/x-pack/auditbeat/module/system/process/process.go index 408f5d289fc..e63f3203c31 100644 --- a/x-pack/auditbeat/module/system/process/process.go +++ b/x-pack/auditbeat/module/system/process/process.go @@ -124,7 +124,7 @@ func (p Process) entityID(hostID string) string { // New constructs a new MetricSet. func New(base mb.BaseMetricSet) (mb.MetricSet, error) { - cfgwarn.Experimental("The %v/%v dataset is experimental", moduleName, metricsetName) + cfgwarn.Beta("The %v/%v dataset is beta", moduleName, metricsetName) config := defaultConfig if err := base.Module().UnpackConfig(&config); err != nil { diff --git a/x-pack/auditbeat/module/system/socket/_meta/docs.asciidoc b/x-pack/auditbeat/module/system/socket/_meta/docs.asciidoc index 33319a2404b..6a81544b02b 100644 --- a/x-pack/auditbeat/module/system/socket/_meta/docs.asciidoc +++ b/x-pack/auditbeat/module/system/socket/_meta/docs.asciidoc @@ -1,6 +1,6 @@ [role="xpack"] -experimental[] +beta[] This is the `socket` dataset of the system module. diff --git a/x-pack/auditbeat/module/system/socket/socket.go b/x-pack/auditbeat/module/system/socket/socket.go index af3fdd1faa1..763eeb736c3 100644 --- a/x-pack/auditbeat/module/system/socket/socket.go +++ b/x-pack/auditbeat/module/system/socket/socket.go @@ -192,7 +192,7 @@ func (s Socket) entityID(hostID string) string { // New constructs a new MetricSet. func New(base mb.BaseMetricSet) (mb.MetricSet, error) { - cfgwarn.Experimental("The %v/%v dataset is experimental", moduleName, metricsetName) + cfgwarn.Beta("The %v/%v dataset is beta", moduleName, metricsetName) config := defaultConfig if err := base.Module().UnpackConfig(&config); err != nil { diff --git a/x-pack/auditbeat/module/system/user/_meta/docs.asciidoc b/x-pack/auditbeat/module/system/user/_meta/docs.asciidoc index 32551b7b735..243187bed6a 100644 --- a/x-pack/auditbeat/module/system/user/_meta/docs.asciidoc +++ b/x-pack/auditbeat/module/system/user/_meta/docs.asciidoc @@ -1,6 +1,6 @@ [role="xpack"] -experimental[] +beta[] This is the `user` dataset of the system module. diff --git a/x-pack/auditbeat/module/system/user/_meta/fields.yml b/x-pack/auditbeat/module/system/user/_meta/fields.yml index 6717865b280..93ec298502e 100644 --- a/x-pack/auditbeat/module/system/user/_meta/fields.yml +++ b/x-pack/auditbeat/module/system/user/_meta/fields.yml @@ -2,7 +2,7 @@ type: group description: > `user` contains information about the users on a system. - release: experimental + release: beta fields: - name: name type: keyword diff --git a/x-pack/auditbeat/module/system/user/user.go b/x-pack/auditbeat/module/system/user/user.go index 8c3f79fd210..fef8adc1433 100644 --- a/x-pack/auditbeat/module/system/user/user.go +++ b/x-pack/auditbeat/module/system/user/user.go @@ -201,7 +201,7 @@ type MetricSet struct { // New constructs a new MetricSet. func New(base mb.BaseMetricSet) (mb.MetricSet, error) { - cfgwarn.Experimental("The %v/%v dataset is experimental", moduleName, metricsetName) + cfgwarn.Beta("The %v/%v dataset is beta", moduleName, metricsetName) if runtime.GOOS != "linux" { return nil, fmt.Errorf("the %v/%v dataset is only supported on Linux", moduleName, metricsetName) } diff --git a/x-pack/auditbeat/tests/system/test_metricsets.py b/x-pack/auditbeat/tests/system/test_metricsets.py index 47b54b2f49d..3dfa25b3ca1 100644 --- a/x-pack/auditbeat/tests/system/test_metricsets.py +++ b/x-pack/auditbeat/tests/system/test_metricsets.py @@ -20,7 +20,7 @@ def test_metricset_host(self): fields = ["system.audit.host.id", "system.audit.host.uptime", "system.audit.host.ip", "system.audit.host.os.name"] - # Metricset is experimental and that generates a warning, TODO: remove later + # Metricset is beta and that generates a warning, TODO: remove later self.check_metricset("system", "host", COMMON_FIELDS + fields, warnings_allowed=True) @unittest.skipUnless(sys.platform == "linux2", "Only implemented for Linux") @@ -38,7 +38,7 @@ def test_metricset_login(self): "login.btmp_file_pattern": "-1" } - # Metricset is experimental and that generates a warning, TODO: remove later + # Metricset is beta and that generates a warning, TODO: remove later self.check_metricset("system", "login", COMMON_FIELDS + fields, config, warnings_allowed=True) @unittest.skipIf(sys.platform == "win32", "Not implemented for Windows") @@ -51,7 +51,7 @@ def test_metricset_package(self): fields = ["system.audit.package.entity_id", "system.audit.package.name", "system.audit.package.version"] - # Metricset is experimental and that generates a warning, TODO: remove later + # Metricset is beta and that generates a warning, TODO: remove later self.check_metricset("system", "package", COMMON_FIELDS + fields, warnings_allowed=True) def test_metricset_process(self): @@ -67,7 +67,7 @@ def test_metricset_process(self): fields.extend(["user.effective.id", "user.saved.id", "user.effective.group.id", "user.saved.group.id", "user.name", "user.group.name"]) - # Metricset is experimental and that generates a warning, TODO: remove later + # Metricset is beta and that generates a warning, TODO: remove later self.check_metricset("system", "process", COMMON_FIELDS + fields, warnings_allowed=True) @unittest.skipUnless(sys.platform == "linux2", "Only implemented for Linux") @@ -80,7 +80,7 @@ def test_metricset_socket(self): # errors_allowed=True - The socket metricset fills the `error` field if the process enrichment fails # (e.g. process has exited). This should not fail the test. - # warnings_allowed=True - Metricset is experimental and that generates a warning, TODO: remove later + # warnings_allowed=True - Metricset is beta and that generates a warning, TODO: remove later self.check_metricset("system", "socket", COMMON_FIELDS + fields, errors_allowed=True, warnings_allowed=True) @unittest.skipUnless(sys.platform == "linux2", "Only implemented for Linux") @@ -91,5 +91,5 @@ def test_metricset_user(self): fields = ["user.entity_id", "system.audit.user.name"] - # Metricset is experimental and that generates a warning, TODO: remove later + # Metricset is beta and that generates a warning, TODO: remove later self.check_metricset("system", "user", COMMON_FIELDS + fields, warnings_allowed=True) From 94666a837482f17fef0b085594ada30178fbb95d Mon Sep 17 00:00:00 2001 From: Christoph Wurm Date: Fri, 22 Feb 2019 18:39:17 +0000 Subject: [PATCH 072/332] [Auditbeat] Handle different bad login types (#10865) Depending on the distro and the type of login attempt (e.g. ssh, local login) the `ut_type` value in `/var/log/btmp` is different. So far, the login dataset only responded to the rarer login type `7` (`USER_PROCESS`). The more common one (seems to be exclusively used on Fedora 29, but also used on Ubuntu 18.04 for failed SSH login attempts) is `6` (`LOGIN_PROCESS`) that we are currently ignoring. This changes the code to have a separate function to process UTMP records from btmp files that treats both `USER_PROCESS` and `LOGIN_PROCESS` the same. It also adds a unit test for failed logins including a btmp test file from Ubuntu 18.04 with three bad login attempts. --- CHANGELOG.next.asciidoc | 1 + .../module/system/login/login_test.go | 108 ++++++++++++++++-- x-pack/auditbeat/module/system/login/utmp.go | 50 ++++++-- x-pack/auditbeat/tests/files/btmp_ubuntu1804 | Bin 0 -> 1536 bytes 4 files changed, 145 insertions(+), 14 deletions(-) create mode 100644 x-pack/auditbeat/tests/files/btmp_ubuntu1804 diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 59b2424a752..9255004c68d 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -131,6 +131,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Enable System module config on Windows. {pull}10237[10237] - Package: Disable librpm signal handlers. {pull}10694[10694] +- Login: Handle different bad login UTMP types. {pull}10865[10865] *Filebeat* diff --git a/x-pack/auditbeat/module/system/login/login_test.go b/x-pack/auditbeat/module/system/login/login_test.go index 0b350fec131..30926cbf7be 100644 --- a/x-pack/auditbeat/module/system/login/login_test.go +++ b/x-pack/auditbeat/module/system/login/login_test.go @@ -8,10 +8,15 @@ package login import ( "encoding/binary" + "net" "testing" + "time" + + "github.com/stretchr/testify/assert" "github.com/elastic/beats/auditbeat/core" abtest "github.com/elastic/beats/auditbeat/testing" + "github.com/elastic/beats/libbeat/common" mbtest "github.com/elastic/beats/metricbeat/mb/testing" ) @@ -22,7 +27,10 @@ func TestData(t *testing.T) { defer abtest.SetupDataDir(t)() - f := mbtest.NewReportingMetricSetV2(t, getConfig()) + config := getBaseConfig() + config["login.wtmp_file_pattern"] = "../../../tests/files/wtmp" + config["login.btmp_file_pattern"] = "" + f := mbtest.NewReportingMetricSetV2(t, config) events, errs := mbtest.ReportingFetchV2(f) if len(errs) > 0 { @@ -32,18 +40,104 @@ func TestData(t *testing.T) { if len(events) == 0 { t.Fatal("no events were generated") } else if len(events) != 1 { - t.Fatal("only one event expected") + t.Fatalf("only one event expected, got %d", len(events)) } fullEvent := mbtest.StandardizeEvent(f, events[0], core.AddDatasetToEvent) mbtest.WriteEventToDataJSON(t, fullEvent, "") } -func getConfig() map[string]interface{} { +func TestFailedLogins(t *testing.T) { + if byteOrder != binary.LittleEndian { + t.Skip("Test only works on little-endian systems - skipping.") + } + + defer abtest.SetupDataDir(t)() + + config := getBaseConfig() + config["login.wtmp_file_pattern"] = "" + config["login.btmp_file_pattern"] = "../../../tests/files/btmp_ubuntu1804" + f := mbtest.NewReportingMetricSetV2(t, config) + + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("received error: %+v", errs[0]) + } + + if len(events) == 0 { + t.Fatal("no events were generated") + } else if len(events) != 4 { + t.Fatalf("expected 4 events, got %d", len(events)) + } + + // utmpdump: [6] [03307] [ ] [root ] [ssh:notty ] [10.0.2.2 ] [10.0.2.2 ] [2019-02-20T17:42:26,000000+0000] + checkFieldValue(t, events[0].RootFields, "event.kind", "event") + checkFieldValue(t, events[0].RootFields, "event.action", "user_login") + checkFieldValue(t, events[0].RootFields, "event.outcome", "failure") + checkFieldValue(t, events[0].RootFields, "process.pid", 3307) + checkFieldValue(t, events[0].RootFields, "source.ip", "10.0.2.2") + checkFieldValue(t, events[0].RootFields, "user.id", 0) + checkFieldValue(t, events[0].RootFields, "user.name", "root") + checkFieldValue(t, events[0].RootFields, "user.terminal", "ssh:notty") + assert.True(t, events[0].Timestamp.Equal(time.Date(2019, 2, 20, 17, 42, 26, 0, time.UTC)), + "Timestamp is not equal: %+v", events[0].Timestamp) + + // The second UTMP entry in the btmp test file is a duplicate of the first, this is what Ubuntu 18.04 generates. + // utmpdump: [6] [03307] [ ] [root ] [ssh:notty ] [10.0.2.2 ] [10.0.2.2 ] [2019-02-20T17:42:26,000000+0000] + checkFieldValue(t, events[1].RootFields, "event.kind", "event") + checkFieldValue(t, events[1].RootFields, "event.action", "user_login") + checkFieldValue(t, events[1].RootFields, "event.outcome", "failure") + checkFieldValue(t, events[1].RootFields, "process.pid", 3307) + checkFieldValue(t, events[1].RootFields, "source.ip", "10.0.2.2") + checkFieldValue(t, events[1].RootFields, "user.id", 0) + checkFieldValue(t, events[1].RootFields, "user.name", "root") + checkFieldValue(t, events[1].RootFields, "user.terminal", "ssh:notty") + assert.True(t, events[1].Timestamp.Equal(time.Date(2019, 2, 20, 17, 42, 26, 0, time.UTC)), + "Timestamp is not equal: %+v", events[1].Timestamp) + + // utmpdump: [7] [03788] [/0 ] [elastic ] [pts/0 ] [ ] [0.0.0.0 ] [2019-02-20T17:45:08,447344+0000] + checkFieldValue(t, events[2].RootFields, "event.kind", "event") + checkFieldValue(t, events[2].RootFields, "event.action", "user_login") + checkFieldValue(t, events[2].RootFields, "event.outcome", "failure") + checkFieldValue(t, events[2].RootFields, "process.pid", 3788) + checkFieldValue(t, events[2].RootFields, "source.ip", "0.0.0.0") + checkFieldValue(t, events[2].RootFields, "user.name", "elastic") + checkFieldValue(t, events[2].RootFields, "user.terminal", "pts/0") + assert.True(t, events[2].Timestamp.Equal(time.Date(2019, 2, 20, 17, 45, 8, 447344000, time.UTC)), + "Timestamp is not equal: %+v", events[2].Timestamp) + + // utmpdump: [7] [03788] [/0 ] [UNKNOWN ] [pts/0 ] [ ] [0.0.0.0 ] [2019-02-20T17:45:15,765318+0000] + checkFieldValue(t, events[3].RootFields, "event.kind", "event") + checkFieldValue(t, events[3].RootFields, "event.action", "user_login") + checkFieldValue(t, events[3].RootFields, "event.outcome", "failure") + checkFieldValue(t, events[3].RootFields, "process.pid", 3788) + checkFieldValue(t, events[3].RootFields, "source.ip", "0.0.0.0") + contains, err := events[3].RootFields.HasKey("user.id") + if assert.NoError(t, err) { + assert.False(t, contains) + } + checkFieldValue(t, events[3].RootFields, "user.name", "UNKNOWN") + checkFieldValue(t, events[3].RootFields, "user.terminal", "pts/0") + assert.True(t, events[3].Timestamp.Equal(time.Date(2019, 2, 20, 17, 45, 15, 765318000, time.UTC)), + "Timestamp is not equal: %+v", events[3].Timestamp) +} + +func checkFieldValue(t *testing.T, mapstr common.MapStr, fieldName string, fieldValue interface{}) { + value, err := mapstr.GetValue(fieldName) + if assert.NoError(t, err) { + switch v := value.(type) { + case *net.IP: + assert.Equal(t, fieldValue, v.String()) + default: + assert.Equal(t, fieldValue, v) + } + + } +} + +func getBaseConfig() map[string]interface{} { return map[string]interface{}{ - "module": "system", - "datasets": []string{"login"}, - "login.wtmp_file_pattern": "../../../tests/files/wtmp", - "login.btmp_file_pattern": "", + "module": "system", + "datasets": []string{"login"}, } } diff --git a/x-pack/auditbeat/module/system/login/utmp.go b/x-pack/auditbeat/module/system/login/utmp.go index eda2a006c36..507b1057af4 100644 --- a/x-pack/auditbeat/module/system/login/utmp.go +++ b/x-pack/auditbeat/module/system/login/utmp.go @@ -242,13 +242,19 @@ func (r *UtmpFileReader) readNewInFile(loginRecordC chan<- LoginRecord, errorC c r.log.Debugf("utmp: (ut_type=%d, ut_pid=%d, ut_line=%v, ut_user=%v, ut_host=%v, ut_tv.tv_sec=%v, ut_addr_v6=%v)", utmp.UtType, utmp.UtPid, utmp.UtLine, utmp.UtUser, utmp.UtHost, utmp.UtTv, utmp.UtAddrV6) - loginRecord := r.processLoginRecord(utmp) - if loginRecord != nil { - loginRecord.Origin = utmpFile.Path - if utmpFile.Type == Btmp && loginRecord.Type == userLoginRecord { - loginRecord.Type = userLoginFailedRecord + var loginRecord *LoginRecord + switch utmpFile.Type { + case Wtmp: + loginRecord = r.processGoodLoginRecord(utmp) + case Btmp: + loginRecord, err = r.processBadLoginRecord(utmp) + if err != nil { + errorC <- err } + } + if loginRecord != nil { + loginRecord.Origin = utmpFile.Path loginRecordC <- *loginRecord } } else { @@ -275,10 +281,39 @@ func (r *UtmpFileReader) updateSavedUtmpFile(utmpFile UtmpFile, f *os.File) erro return nil } -// processLoginRecord receives UTMP login records in order and returns +// processBadLoginRecord takes a UTMP login record from the "bad" login file (/var/log/btmp) +// and returns a LoginRecord for it. +func (r *UtmpFileReader) processBadLoginRecord(utmp *Utmp) (*LoginRecord, error) { + record := LoginRecord{ + Utmp: utmp, + Timestamp: utmp.UtTv, + TTY: utmp.UtLine, + UID: -1, + PID: -1, + } + + switch utmp.UtType { + // See utmp(5) for C constants. + case LOGIN_PROCESS, USER_PROCESS: + record.Type = userLoginFailedRecord + + record.Username = utmp.UtUser + record.UID = lookupUsername(record.Username) + record.PID = utmp.UtPid + record.IP = newIP(utmp.UtAddrV6) + record.Hostname = utmp.UtHost + default: + // This should not happen. + return nil, errors.Errorf("UTMP record with unexpected type %v in bad login file", utmp.UtType) + } + + return &record, nil +} + +// processGoodLoginRecord receives UTMP login records in order and returns // a corresponding LoginRecord. Some UTMP records do not translate // into a LoginRecord, in this case the return value is nil. -func (r *UtmpFileReader) processLoginRecord(utmp *Utmp) *LoginRecord { +func (r *UtmpFileReader) processGoodLoginRecord(utmp *Utmp) *LoginRecord { record := LoginRecord{ Utmp: utmp, Timestamp: utmp.UtTv, @@ -358,6 +393,7 @@ func (r *UtmpFileReader) processLoginRecord(utmp *Utmp) *LoginRecord { interesting information - ACCOUNTING - not implemented according to manpage */ + r.log.Debugf("Ignoring UTMP record of type %v.", utmp.UtType) return nil } diff --git a/x-pack/auditbeat/tests/files/btmp_ubuntu1804 b/x-pack/auditbeat/tests/files/btmp_ubuntu1804 new file mode 100644 index 0000000000000000000000000000000000000000..488b932e796cac836a876c1e17586b20730eda50 GIT binary patch literal 1536 zcmZQ$U|@L7!@y8noMDxhUs6&D?^$qY?1CmV5Nh~hOOva;XRB8e@1B1$> n+?ayPpp;D*kP`l(e%^lm;eLb-9l Date: Fri, 22 Feb 2019 18:54:31 +0000 Subject: [PATCH 073/332] [Auditbeat] Changelog for #10800 (#10904) Missing changelog for https://github.com/elastic/beats/pull/10800. --- CHANGELOG.next.asciidoc | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 9255004c68d..321e83d31f6 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -216,6 +216,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Add system module `login` dataset. {pull}9327[9327] - Add `entity_id` fields. {pull}10500[10500] - Add seven dashboards for the system module. {pull}10511[10511] +- Move System module to beta. {pull}10800[10800] *Filebeat* From 59a05ed7c8905f4e0d39517a34d977680051055c Mon Sep 17 00:00:00 2001 From: Andrew Kroh Date: Fri, 22 Feb 2019 16:46:16 -0500 Subject: [PATCH 074/332] Create module for NetFlow to add geoip (#10877) This creates a module around the Filebeat netflow input in order to enrich the events with source.geo.* and destination.geo.* fields by using the geoip processor in Elasticsearch Ingest Node. Usage: ``` filebeat.modules: - module: netflow log: enabled: true var: netflow_host: 0.0.0.0 netflow_port: 2055 ``` --- CHANGELOG.next.asciidoc | 1 + filebeat/docs/fields.asciidoc | 7 ++ filebeat/docs/modules/netflow.asciidoc | 80 +++++++++++++++++++ filebeat/docs/modules_list.asciidoc | 2 + x-pack/filebeat/filebeat.reference.yml | 8 ++ x-pack/filebeat/include/list.go | 1 + .../filebeat/module/netflow/_meta/config.yml | 6 ++ .../module/netflow/_meta/docs.asciidoc | 67 ++++++++++++++++ .../filebeat/module/netflow/_meta/fields.yml | 6 ++ x-pack/filebeat/module/netflow/fields.go | 23 ++++++ .../module/netflow/log/config/netflow.yml | 6 ++ .../module/netflow/log/ingest/pipeline.json | 29 +++++++ .../filebeat/module/netflow/log/manifest.yml | 20 +++++ .../filebeat/modules.d/netflow.yml.disabled | 9 +++ 14 files changed, 265 insertions(+) create mode 100644 filebeat/docs/modules/netflow.asciidoc create mode 100644 x-pack/filebeat/module/netflow/_meta/config.yml create mode 100644 x-pack/filebeat/module/netflow/_meta/docs.asciidoc create mode 100644 x-pack/filebeat/module/netflow/_meta/fields.yml create mode 100644 x-pack/filebeat/module/netflow/fields.go create mode 100644 x-pack/filebeat/module/netflow/log/config/netflow.yml create mode 100644 x-pack/filebeat/module/netflow/log/ingest/pipeline.json create mode 100644 x-pack/filebeat/module/netflow/log/manifest.yml create mode 100644 x-pack/filebeat/modules.d/netflow.yml.disabled diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 321e83d31f6..77906646291 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -243,6 +243,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Populate more ECS fields in the Suricata module. {pull}10006[10006] - Add ISO8601 timestamp support in syslog metricset. {issue}8716[8716] {pull}10736[10736] - Add more info to message logged when a duplicated symlink file is found {pull}10845[10845] +- Add Netflow module to enrich flow events with geoip data. {pull}10877[10877] *Heartbeat* diff --git a/filebeat/docs/fields.asciidoc b/filebeat/docs/fields.asciidoc index 6df8c561056..d1fe115e4ae 100644 --- a/filebeat/docs/fields.asciidoc +++ b/filebeat/docs/fields.asciidoc @@ -33,6 +33,7 @@ grouped in the following categories: * <> * <> * <> +* <> * <> * <> * <> @@ -10621,6 +10622,12 @@ type: short -- +[[exported-fields-netflow-module]] +== NetFlow fields + +Module for receiving NetFlow and IPFIX flow records over UDP. The module does not add fields beyond what the netflow input provides. + + [[exported-fields-nginx]] == Nginx fields diff --git a/filebeat/docs/modules/netflow.asciidoc b/filebeat/docs/modules/netflow.asciidoc new file mode 100644 index 00000000000..f3f9c8c0191 --- /dev/null +++ b/filebeat/docs/modules/netflow.asciidoc @@ -0,0 +1,80 @@ +//// +This file is generated! See scripts/docs_collector.py +//// + +[[filebeat-module-netflow]] +[role="xpack"] + +:modulename: netflow +:has-dashboards: false + +== NetFlow module + +This is a module for receiving NetFlow and IPFIX flow records over UDP. This +input supports NetFlow versions 1, 5, 6, 7, 8 and 9, as well as IPFIX. For +NetFlow versions older than 9, fields are mapped automatically to NetFlow v9. + +This module wraps the <> to enrich the +flow records with geolocation information about the IP endpoints by using +Elasticsearch Ingest Node. + +[float] +=== Compatibility + +This module requires the {elasticsearch-plugins}/ingest-geoip.html[ingest-geoip] +Elasticsearch plugins. + +include::../include/running-modules.asciidoc[] + +include::../include/configuring-intro.asciidoc[] + +:fileset_ex: log + +include::../include/config-option-intro.asciidoc[] + +[float] +==== `log` fileset settings + +The fileset is by default configured to listen for UDP traffic on +`localhost:2055`. For most uses cases you will want to set the `netflow_host` +variable to allow the input bind to all interfaces so that it can receive +traffic from network devices. + +["source","yaml",subs="attributes"] +----- +- module: netflow + log: + enabled: true + var: + netflow_host: 0.0.0.0 + netflow_port: 2055 +----- + +`var.netflow_host`:: Address to find to. Defaults to `localhost`. + +`var.netflow_port`:: Port to listen on. Defaults to `2055`. + +`var.max_message_size`:: The maximum size of the message received over UDP. +The default is `10KiB`. + +`var.expiration_timeout`:: The time before an idle session or unused template is +expired. Only applicable to v9 and IPFIX protocols. A value of zero disables +expiration. + +`var.queue_size`:: The maximum number of packets that can be queued for +processing. Use this setting to avoid packet-loss when dealing with occasional +bursts of traffic. + +:has-dashboards!: + +:fileset_ex!: + +:modulename!: + + +[float] +=== Fields + +For a description of each field in the module, see the +<> section. + diff --git a/filebeat/docs/modules_list.asciidoc b/filebeat/docs/modules_list.asciidoc index 1324bcc4996..ea3b3d74997 100644 --- a/filebeat/docs/modules_list.asciidoc +++ b/filebeat/docs/modules_list.asciidoc @@ -16,6 +16,7 @@ This file is generated! See scripts/docs_collector.py * <> * <> * <> + * <> * <> * <> * <> @@ -43,6 +44,7 @@ include::modules/logstash.asciidoc[] include::modules/mongodb.asciidoc[] include::modules/mysql.asciidoc[] include::modules/nats.asciidoc[] +include::modules/netflow.asciidoc[] include::modules/nginx.asciidoc[] include::modules/osquery.asciidoc[] include::modules/postgresql.asciidoc[] diff --git a/x-pack/filebeat/filebeat.reference.yml b/x-pack/filebeat/filebeat.reference.yml index 8d41832ce47..1d0217307c2 100644 --- a/x-pack/filebeat/filebeat.reference.yml +++ b/x-pack/filebeat/filebeat.reference.yml @@ -312,6 +312,14 @@ filebeat.modules: # Filebeat will choose the paths depending on your OS. #var.paths: +#------------------------------- NetFlow Module ------------------------------- +- module: netflow + log: + enabled: true + var: + netflow_host: localhost + netflow_port: 2055 + #-------------------------------- Nginx Module -------------------------------- #- module: nginx # Access logs diff --git a/x-pack/filebeat/include/list.go b/x-pack/filebeat/include/list.go index f4550a6e898..c6332bde38f 100644 --- a/x-pack/filebeat/include/list.go +++ b/x-pack/filebeat/include/list.go @@ -10,6 +10,7 @@ import ( // Import packages that need to register themselves. _ "github.com/elastic/beats/x-pack/filebeat/input/netflow" _ "github.com/elastic/beats/x-pack/filebeat/module/iptables" + _ "github.com/elastic/beats/x-pack/filebeat/module/netflow" _ "github.com/elastic/beats/x-pack/filebeat/module/suricata" _ "github.com/elastic/beats/x-pack/filebeat/module/zeek" ) diff --git a/x-pack/filebeat/module/netflow/_meta/config.yml b/x-pack/filebeat/module/netflow/_meta/config.yml new file mode 100644 index 00000000000..20d1905b6f4 --- /dev/null +++ b/x-pack/filebeat/module/netflow/_meta/config.yml @@ -0,0 +1,6 @@ +- module: netflow + log: + enabled: true + var: + netflow_host: localhost + netflow_port: 2055 diff --git a/x-pack/filebeat/module/netflow/_meta/docs.asciidoc b/x-pack/filebeat/module/netflow/_meta/docs.asciidoc new file mode 100644 index 00000000000..334a219ba84 --- /dev/null +++ b/x-pack/filebeat/module/netflow/_meta/docs.asciidoc @@ -0,0 +1,67 @@ +[role="xpack"] + +:modulename: netflow +:has-dashboards: false + +== NetFlow module + +This is a module for receiving NetFlow and IPFIX flow records over UDP. This +input supports NetFlow versions 1, 5, 6, 7, 8 and 9, as well as IPFIX. For +NetFlow versions older than 9, fields are mapped automatically to NetFlow v9. + +This module wraps the <> to enrich the +flow records with geolocation information about the IP endpoints by using +Elasticsearch Ingest Node. + +[float] +=== Compatibility + +This module requires the {elasticsearch-plugins}/ingest-geoip.html[ingest-geoip] +Elasticsearch plugins. + +include::../include/running-modules.asciidoc[] + +include::../include/configuring-intro.asciidoc[] + +:fileset_ex: log + +include::../include/config-option-intro.asciidoc[] + +[float] +==== `log` fileset settings + +The fileset is by default configured to listen for UDP traffic on +`localhost:2055`. For most uses cases you will want to set the `netflow_host` +variable to allow the input bind to all interfaces so that it can receive +traffic from network devices. + +["source","yaml",subs="attributes"] +----- +- module: netflow + log: + enabled: true + var: + netflow_host: 0.0.0.0 + netflow_port: 2055 +----- + +`var.netflow_host`:: Address to find to. Defaults to `localhost`. + +`var.netflow_port`:: Port to listen on. Defaults to `2055`. + +`var.max_message_size`:: The maximum size of the message received over UDP. +The default is `10KiB`. + +`var.expiration_timeout`:: The time before an idle session or unused template is +expired. Only applicable to v9 and IPFIX protocols. A value of zero disables +expiration. + +`var.queue_size`:: The maximum number of packets that can be queued for +processing. Use this setting to avoid packet-loss when dealing with occasional +bursts of traffic. + +:has-dashboards!: + +:fileset_ex!: + +:modulename!: diff --git a/x-pack/filebeat/module/netflow/_meta/fields.yml b/x-pack/filebeat/module/netflow/_meta/fields.yml new file mode 100644 index 00000000000..fc4bf3bb887 --- /dev/null +++ b/x-pack/filebeat/module/netflow/_meta/fields.yml @@ -0,0 +1,6 @@ +- key: netflow-module + title: NetFlow + description: > + Module for receiving NetFlow and IPFIX flow records over UDP. The module + does not add fields beyond what the netflow input provides. + fields: diff --git a/x-pack/filebeat/module/netflow/fields.go b/x-pack/filebeat/module/netflow/fields.go new file mode 100644 index 00000000000..d71d8ceb53f --- /dev/null +++ b/x-pack/filebeat/module/netflow/fields.go @@ -0,0 +1,23 @@ +// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one +// or more contributor license agreements. Licensed under the Elastic License; +// you may not use this file except in compliance with the Elastic License. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package netflow + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("filebeat", "netflow", asset.ModuleFieldsPri, AssetNetflow); err != nil { + panic(err) + } +} + +// AssetNetflow returns asset data. +// This is the base64 encoded gzipped contents of module/netflow. +func AssetNetflow() string { + return "eJw8jjFOw0AQRfs9xbtAcoAtqFCkFKAUINGazBiPWHas3Ymt3B4Z4fTv/f8OfOs9UzXG4uvhx+VWNEFYFM28apyKrwlE+7XZHOY185QAXv5gRm80vaotVr92g6EK58vp/ME2vAHepOOLNt6fL0feJuVxB+LaqR4MIoymRTqfevcqrNMQxKR7JVbnWzA3X0y0HxP/Qk6/AQAA//9CcUYh" +} diff --git a/x-pack/filebeat/module/netflow/log/config/netflow.yml b/x-pack/filebeat/module/netflow/log/config/netflow.yml new file mode 100644 index 00000000000..b6d045353db --- /dev/null +++ b/x-pack/filebeat/module/netflow/log/config/netflow.yml @@ -0,0 +1,6 @@ +type: netflow +protocols: [v1, v5, v6, v7, v8, v9, ipfix] +host: '{{.netflow_host}}:{{.netflow_port}}' +max_message_size: '{{.max_message_size}}' +expiration_timeout: '{{.expiration_timeout}}' +queue_size: {{.queue_size}} diff --git a/x-pack/filebeat/module/netflow/log/ingest/pipeline.json b/x-pack/filebeat/module/netflow/log/ingest/pipeline.json new file mode 100644 index 00000000000..6eeddb6f430 --- /dev/null +++ b/x-pack/filebeat/module/netflow/log/ingest/pipeline.json @@ -0,0 +1,29 @@ +{ + "description": "Pipeline for Filebeat NetFlow", + "processors": [ + { + "geoip": { + "if": "ctx.source?.geo == null", + "field": "source.ip", + "target_field": "source.geo", + "ignore_missing": true + } + }, + { + "geoip": { + "if": "ctx.destination?.geo == null", + "field": "destination.ip", + "target_field": "destination.geo", + "ignore_missing": true + } + } + ], + "on_failure": [ + { + "set": { + "field": "error.message", + "value": "{{ _ingest.on_failure_message }}" + } + } + ] +} diff --git a/x-pack/filebeat/module/netflow/log/manifest.yml b/x-pack/filebeat/module/netflow/log/manifest.yml new file mode 100644 index 00000000000..4e8ee131736 --- /dev/null +++ b/x-pack/filebeat/module/netflow/log/manifest.yml @@ -0,0 +1,20 @@ +module_version: "1.0" + +var: + - name: netflow_host + default: localhost + - name: netflow_port + default: 2055 + - name: max_message_size + default: 10KiB + - name: expiration_timeout + default: 30m + - name: queue_size + default: 8192 + +ingest_pipeline: ingest/pipeline.json +input: config/netflow.yml + +requires.processors: +- name: geoip + plugin: ingest-geoip diff --git a/x-pack/filebeat/modules.d/netflow.yml.disabled b/x-pack/filebeat/modules.d/netflow.yml.disabled new file mode 100644 index 00000000000..522307d7e71 --- /dev/null +++ b/x-pack/filebeat/modules.d/netflow.yml.disabled @@ -0,0 +1,9 @@ +# Module: netflow +# Docs: https://www.elastic.co/guide/en/beats/filebeat/master/filebeat-module-netflow.html + +- module: netflow + log: + enabled: true + var: + netflow_host: localhost + netflow_port: 2055 From 1bf8087c6828588f119fa8389a4a2e2b30b0a5dd Mon Sep 17 00:00:00 2001 From: Jaime Soriano Pastor Date: Mon, 25 Feb 2019 10:30:21 +0100 Subject: [PATCH 075/332] Migrate docker autodiscovery to ECS (#10898) Fields injected by docker autodiscover provider were being placed in alias fields introduced for ECS, change them to the new location and add selectors accordingly. This PR includes #10862 and #10758 As a summary: * Autodiscover selectors using ECS structure are added to autodiscover events, old selectors are kept for backwards compatibility * Autodiscover generated metadata follows ECS * Dedotting of labels is added, enabled by default, will be backported for 6.7, but disabled `docker.containers.labels` is not migrated, as it wasn't for `add_docker_metadata` (see https://github.com/elastic/beats/pull/9412) Fixes #10757 Co-Authored-By: kaiyan-sheng Co-Authored-By: Nicolas Ruflin --- CHANGELOG.next.asciidoc | 1 + filebeat/tests/system/test_autodiscover.py | 6 +- heartbeat/tests/system/test_autodiscovery.py | 4 +- .../autodiscover/providers/docker/config.go | 2 + .../autodiscover/providers/docker/docker.go | 109 +++++++++++---- .../docker/docker_integration_test.go | 24 ++-- .../providers/docker/docker_test.go | 129 ++++++++++++++++++ metricbeat/tests/system/test_autodiscover.py | 11 +- 8 files changed, 241 insertions(+), 45 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 77906646291..9f61b8053de 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -168,6 +168,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Fixed data types for various hosts fields in `mongodb/replstatus` metricset {pull}10307[10307] - Added function to close sql database connection. {pull}10355[10355] - Fix issue with `elasticsearch/node_stats` metricset (x-pack) not indexing `source_node` field. {pull}10639[10639] +- Migrate docker autodiscover to ECS. {issue}10757[10757] {pull}10862[10862] *Packetbeat* diff --git a/filebeat/tests/system/test_autodiscover.py b/filebeat/tests/system/test_autodiscover.py index a85a0bf6048..973577920d3 100644 --- a/filebeat/tests/system/test_autodiscover.py +++ b/filebeat/tests/system/test_autodiscover.py @@ -50,6 +50,8 @@ def test_docker(self): # Check metadata is added assert output[0]['message'] == 'Busybox output 1' - assert output[0]['docker']['container']['image'] == 'busybox' + assert output[0]['container']['image']['name'] == 'busybox' assert output[0]['docker']['container']['labels'] == {} - assert 'name' in output[0]['docker']['container'] + assert 'name' in output[0]['container'] + + self.assert_fields_are_documented(output[0]) diff --git a/heartbeat/tests/system/test_autodiscovery.py b/heartbeat/tests/system/test_autodiscovery.py index 6a4abdf7d83..8828d875d7e 100644 --- a/heartbeat/tests/system/test_autodiscovery.py +++ b/heartbeat/tests/system/test_autodiscovery.py @@ -60,7 +60,9 @@ def test_docker(self): # We don't check all the docker fields because this is really the responsibility # of libbeat's autodiscovery code. event = output[0] - if event['monitor']['id'] == 'myid' and event['docker']['container']['id'] is not None: + if event['monitor']['id'] == 'myid' and event['container']['id'] is not None: matched = True assert matched + + self.assert_fields_are_documented(output[0]) diff --git a/libbeat/autodiscover/providers/docker/config.go b/libbeat/autodiscover/providers/docker/config.go index 0b76887a10f..02c5fffe936 100644 --- a/libbeat/autodiscover/providers/docker/config.go +++ b/libbeat/autodiscover/providers/docker/config.go @@ -32,12 +32,14 @@ type Config struct { Builders []*common.Config `config:"builders"` Appenders []*common.Config `config:"appenders"` Templates template.MapperSettings `config:"templates"` + Dedot bool `config:"labels.dedot"` } func defaultConfig() *Config { return &Config{ Host: "unix:///var/run/docker.sock", Prefix: "co.elastic", + Dedot: true, } } diff --git a/libbeat/autodiscover/providers/docker/docker.go b/libbeat/autodiscover/providers/docker/docker.go index 6275897cb9f..e4e3ba18e77 100644 --- a/libbeat/autodiscover/providers/docker/docker.go +++ b/libbeat/autodiscover/providers/docker/docker.go @@ -18,6 +18,8 @@ package docker import ( + "errors" + "github.com/gofrs/uuid" "github.com/elastic/beats/libbeat/autodiscover" @@ -119,41 +121,91 @@ func (d *Provider) Start() { }() } -func (d *Provider) emitContainer(event bus.Event, flag string) { +type dockerMetadata struct { + // Old selectors [Deprecated] + Docker common.MapStr + + // New ECS-based selectors + Container common.MapStr + + // Metadata used to enrich events, like ECS-based selectors but can + // have modifications like dedotting + Metadata common.MapStr +} + +func (d *Provider) generateMetaDocker(event bus.Event) (*docker.Container, *dockerMetadata) { container, ok := event["container"].(*docker.Container) if !ok { - logp.Err("Couldn't get a container from watcher event") - return + logp.Error(errors.New("Couldn't get a container from watcher event")) + return nil, nil } - var host string - if len(container.IPAddresses) > 0 { - host = container.IPAddresses[0] - } + // Don't dedot selectors, dedot only metadata used for events enrichment labelMap := common.MapStr{} + metaLabelMap := common.MapStr{} for k, v := range container.Labels { safemapstr.Put(labelMap, k, v) + if d.config.Dedot { + label := common.DeDot(k) + metaLabelMap.Put(label, v) + } else { + safemapstr.Put(metaLabelMap, k, v) + } } - meta := common.MapStr{ - "container": common.MapStr{ - "id": container.ID, - "name": container.Name, - "image": container.Image, + meta := &dockerMetadata{ + Docker: common.MapStr{ + "container": common.MapStr{ + "id": container.ID, + "name": container.Name, + "image": container.Image, + "labels": labelMap, + }, + }, + Container: common.MapStr{ + "id": container.ID, + "name": container.Name, + "image": common.MapStr{ + "name": container.Image, + }, "labels": labelMap, }, + Metadata: common.MapStr{ + "container": common.MapStr{ + "id": container.ID, + "name": container.Name, + "image": common.MapStr{ + "name": container.Image, + }, + }, + "docker": common.MapStr{ + "container": common.MapStr{ + "labels": metaLabelMap, + }, + }, + }, + } + + return container, meta +} + +func (d *Provider) emitContainer(event bus.Event, flag string) { + container, meta := d.generateMetaDocker(event) + var host string + if len(container.IPAddresses) > 0 { + host = container.IPAddresses[0] } + // Without this check there would be overlapping configurations with and without ports. if len(container.Ports) == 0 { event := bus.Event{ - "provider": d.uuid, - "id": container.ID, - flag: true, - "host": host, - "docker": meta, - "meta": common.MapStr{ - "docker": meta, - }, + "provider": d.uuid, + "id": container.ID, + flag: true, + "host": host, + "docker": meta.Docker, + "container": meta.Container, + "meta": meta.Metadata, } d.publish(event) @@ -162,15 +214,14 @@ func (d *Provider) emitContainer(event bus.Event, flag string) { // Emit container container and port information for _, port := range container.Ports { event := bus.Event{ - "provider": d.uuid, - "id": container.ID, - flag: true, - "host": host, - "port": port.PrivatePort, - "docker": meta, - "meta": common.MapStr{ - "docker": meta, - }, + "provider": d.uuid, + "id": container.ID, + flag: true, + "host": host, + "port": port.PrivatePort, + "docker": meta.Docker, + "container": meta.Container, + "meta": meta.Metadata, } d.publish(event) diff --git a/libbeat/autodiscover/providers/docker/docker_integration_test.go b/libbeat/autodiscover/providers/docker/docker_integration_test.go index acb1f8ff46a..d790744aa48 100644 --- a/libbeat/autodiscover/providers/docker/docker_integration_test.go +++ b/libbeat/autodiscover/providers/docker/docker_integration_test.go @@ -92,17 +92,23 @@ func checkEvent(t *testing.T, listener bus.Listener, start bool) { assert.Equal(t, getValue(e, "stop"), true) assert.Nil(t, getValue(e, "start")) } - assert.Equal(t, getValue(e, "docker.container.image"), "busybox") - assert.Equal(t, getValue(e, "docker.container.labels"), common.MapStr{ - "label": common.MapStr{ - "value": "foo", - "child": "bar", + assert.Equal(t, getValue(e, "container.image.name"), "busybox") + // labels.dedot=true by default + assert.Equal(t, + common.MapStr{ + "label": common.MapStr{ + "value": "foo", + "child": "bar", + }, }, - }) - assert.NotNil(t, getValue(e, "docker.container.id")) - assert.NotNil(t, getValue(e, "docker.container.name")) + getValue(e, "container.labels"), + ) + assert.NotNil(t, getValue(e, "container.id")) + assert.NotNil(t, getValue(e, "container.name")) assert.NotNil(t, getValue(e, "host")) - assert.Equal(t, getValue(e, "docker"), getValue(e, "meta.docker")) + assert.Equal(t, getValue(e, "docker.container.id"), getValue(e, "meta.container.id")) + assert.Equal(t, getValue(e, "docker.container.name"), getValue(e, "meta.container.name")) + assert.Equal(t, getValue(e, "docker.container.image"), getValue(e, "meta.container.image.name")) return case <-time.After(10 * time.Second): diff --git a/libbeat/autodiscover/providers/docker/docker_test.go b/libbeat/autodiscover/providers/docker/docker_test.go index 7c01e6e2ec3..ba663d30314 100644 --- a/libbeat/autodiscover/providers/docker/docker_test.go +++ b/libbeat/autodiscover/providers/docker/docker_test.go @@ -24,6 +24,7 @@ import ( "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/common/bus" + "github.com/elastic/beats/libbeat/common/docker" ) func TestGenerateHints(t *testing.T) { @@ -105,3 +106,131 @@ func getNestedAnnotations(in common.MapStr) common.MapStr { } return out } + +func TestGenerateMetaDockerNoDedot(t *testing.T) { + event := bus.Event{ + "container": &docker.Container{ + ID: "abc", + Name: "foobar", + Labels: map[string]string{ + "do.not.include": "true", + "co.elastic.logs/disable": "true", + }, + }, + } + + cfg := defaultConfig() + cfg.Dedot = false + p := Provider{ + config: cfg, + } + _, meta := p.generateMetaDocker(event) + expectedMeta := &dockerMetadata{ + Docker: common.MapStr{ + "container": common.MapStr{ + "id": "abc", + "name": "foobar", + "image": "", + "labels": common.MapStr{ + "do": common.MapStr{"not": common.MapStr{"include": "true"}}, + "co": common.MapStr{"elastic": common.MapStr{"logs/disable": "true"}}, + }, + }, + }, + Container: common.MapStr{ + "id": "abc", + "name": "foobar", + "image": common.MapStr{ + "name": "", + }, + "labels": common.MapStr{ + "do": common.MapStr{"not": common.MapStr{"include": "true"}}, + "co": common.MapStr{"elastic": common.MapStr{"logs/disable": "true"}}, + }, + }, + Metadata: common.MapStr{ + "container": common.MapStr{ + "id": "abc", + "name": "foobar", + "image": common.MapStr{ + "name": "", + }, + }, + "docker": common.MapStr{ + "container": common.MapStr{ + "labels": common.MapStr{ + "do": common.MapStr{"not": common.MapStr{"include": "true"}}, + "co": common.MapStr{"elastic": common.MapStr{"logs/disable": "true"}}, + }, + }, + }, + }, + } + assert.Equal(t, expectedMeta.Docker, meta.Docker) + assert.Equal(t, expectedMeta.Container, meta.Container) + assert.Equal(t, expectedMeta.Metadata, meta.Metadata) +} + +func TestGenerateMetaDockerWithDedot(t *testing.T) { + event := bus.Event{ + "container": &docker.Container{ + ID: "abc", + Name: "foobar", + Labels: map[string]string{ + "do.not.include": "true", + "co.elastic.logs/disable": "true", + }, + }, + } + + cfg := defaultConfig() + cfg.Dedot = true + p := Provider{ + config: cfg, + } + _, meta := p.generateMetaDocker(event) + expectedMeta := &dockerMetadata{ + Docker: common.MapStr{ + "container": common.MapStr{ + "id": "abc", + "name": "foobar", + "image": "", + "labels": common.MapStr{ + "do": common.MapStr{"not": common.MapStr{"include": "true"}}, + "co": common.MapStr{"elastic": common.MapStr{"logs/disable": "true"}}, + }, + }, + }, + Container: common.MapStr{ + "id": "abc", + "name": "foobar", + "image": common.MapStr{ + "name": "", + }, + "labels": common.MapStr{ + "do": common.MapStr{"not": common.MapStr{"include": "true"}}, + "co": common.MapStr{"elastic": common.MapStr{"logs/disable": "true"}}, + }, + }, + Metadata: common.MapStr{ + "container": common.MapStr{ + "id": "abc", + "name": "foobar", + "image": common.MapStr{ + "name": "", + }, + }, + "docker": common.MapStr{ + "container": common.MapStr{ + "labels": common.MapStr{ + "do_not_include": "true", + "co_elastic_logs/disable": "true", + }, + }, + }, + }, + } + assert.Equal(t, expectedMeta.Docker, meta.Docker) + assert.Equal(t, expectedMeta.Container, meta.Container) + assert.Equal(t, expectedMeta.Metadata, meta.Metadata) +} diff --git a/metricbeat/tests/system/test_autodiscover.py b/metricbeat/tests/system/test_autodiscover.py index 2c95c52f3bd..1b41e80a1df 100644 --- a/metricbeat/tests/system/test_autodiscover.py +++ b/metricbeat/tests/system/test_autodiscover.py @@ -51,9 +51,10 @@ def test_docker(self): proc.check_kill_and_wait() # Check metadata is added - assert output[0]['docker']['container']['image'] == 'memcached:latest' + assert output[0]['container']['image']['name'] == 'memcached:latest' assert output[0]['docker']['container']['labels'] == {} - assert 'name' in output[0]['docker']['container'] + assert 'name' in output[0]['container'] + self.assert_fields_are_documented(output[0]) @unittest.skipIf(not INTEGRATION_TESTS or os.getenv("TESTING_ENVIRONMENT") == "2x", @@ -93,8 +94,9 @@ def test_docker_labels(self): proc.check_kill_and_wait() # Check metadata is added - assert output[0]['docker']['container']['image'] == 'memcached:latest' - assert 'name' in output[0]['docker']['container'] + assert output[0]['container']['image']['name'] == 'memcached:latest' + assert 'name' in output[0]['container'] + self.assert_fields_are_documented(output[0]) @unittest.skipIf(not INTEGRATION_TESTS or os.getenv("TESTING_ENVIRONMENT") == "2x", @@ -143,3 +145,4 @@ def test_config_appender(self): # Check field is added assert output[0]['fields']['foo'] == 'bar' + self.assert_fields_are_documented(output[0]) From 34eaf57bcdcd84ee426ef494d9406aab75af6c21 Mon Sep 17 00:00:00 2001 From: Jaime Soriano Pastor Date: Mon, 25 Feb 2019 11:00:37 +0100 Subject: [PATCH 076/332] Force ECS options in filebeat pipelines when filebeat version is over 7.0 and ES version is 6.7.X (#10875) When using the `user_agent` processor to ingest data from Filebeat 7.0 into Elasticsearch 6.X conflicts appear with ECS user_agent fields, this can be solved by setting `ecs: true` when pipelines are being loaded into Elasticsearch 6.7.0. For minor versions where `ecs` option is not available, pipelines will fail to load. Fix #10655 --- CHANGELOG.next.asciidoc | 2 + filebeat/fileset/pipelines.go | 40 +++++++++++ filebeat/fileset/pipelines_test.go | 110 +++++++++++++++++++++++++++++ 3 files changed, 152 insertions(+) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 9f61b8053de..36da65e08dc 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -46,6 +46,8 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d *Filebeat* +- Set `ecs: true` in user_agent processors when loading pipelines with Filebeat 7.0.x into Elasticsearch 6.7.x. {issue}10655[10655] {pull}10875[10875] + *Heartbeat* - Remove monitor generator script that was rarely used. {pull}9648[9648] diff --git a/filebeat/fileset/pipelines.go b/filebeat/fileset/pipelines.go index 0c1983ef3fc..0f21dc4a026 100644 --- a/filebeat/fileset/pipelines.go +++ b/filebeat/fileset/pipelines.go @@ -121,6 +121,12 @@ func loadPipeline(esClient PipelineLoader, pipelineID string, content map[string return nil } } + + err := setECSProcessors(esClient.GetVersion(), pipelineID, content) + if err != nil { + return fmt.Errorf("failed to adapt pipeline for ECS compatibility: %v", err) + } + body, err := esClient.LoadJSON(path, content) if err != nil { return interpretError(err, body) @@ -129,6 +135,40 @@ func loadPipeline(esClient PipelineLoader, pipelineID string, content map[string return nil } +// setECSProcessors sets required ECS options in processors when filebeat version is >= 7.0.0 +// and ES is 6.7.X to ease migration to ECS. +func setECSProcessors(esVersion common.Version, pipelineID string, content map[string]interface{}) error { + ecsVersion := common.MustNewVersion("7.0.0") + if !esVersion.LessThan(ecsVersion) { + return nil + } + + p, ok := content["processors"] + if !ok { + return nil + } + processors, ok := p.([]interface{}) + if !ok { + return fmt.Errorf("'processors' in pipeline '%s' expected to be a list, found %T", pipelineID, p) + } + + minUserAgentVersion := common.MustNewVersion("6.7.0") + for _, p := range processors { + processor, ok := p.(map[string]interface{}) + if !ok { + continue + } + if options, ok := processor["user_agent"].(map[string]interface{}); ok { + if esVersion.LessThan(minUserAgentVersion) { + return fmt.Errorf("user_agent processor requires option 'ecs: true', but Elasticsearch %v does not support this option (Elasticsearch %v or newer is required)", esVersion, minUserAgentVersion) + } + logp.Debug("modules", "Setting 'ecs: true' option in user_agent processor for field '%v' in pipeline '%s'", options["field"], pipelineID) + options["ecs"] = true + } + } + return nil +} + func deletePipeline(esClient PipelineLoader, pipelineID string) error { path := makeIngestPipelinePath(pipelineID) _, _, err := esClient.Request("DELETE", path, "", nil, nil) diff --git a/filebeat/fileset/pipelines_test.go b/filebeat/fileset/pipelines_test.go index 194df5e9f14..a9758df894a 100644 --- a/filebeat/fileset/pipelines_test.go +++ b/filebeat/fileset/pipelines_test.go @@ -26,6 +26,7 @@ import ( "github.com/stretchr/testify/assert" + "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/outputs/elasticsearch" ) @@ -103,3 +104,112 @@ func TestLoadPipelinesWithMultiPipelineFileset(t *testing.T) { }) } } + +func TestSetEcsProcessors(t *testing.T) { + cases := []struct { + name string + esVersion *common.Version + content map[string]interface{} + expected map[string]interface{} + isErrExpected bool + }{ + { + name: "ES < 6.7.0", + esVersion: common.MustNewVersion("6.6.0"), + content: map[string]interface{}{ + "processors": []interface{}{ + map[string]interface{}{ + "user_agent": map[string]interface{}{ + "field": "foo.http_user_agent", + }, + }, + }}, + isErrExpected: true, + }, + { + name: "ES == 6.7.0", + esVersion: common.MustNewVersion("6.7.0"), + content: map[string]interface{}{ + "processors": []interface{}{ + map[string]interface{}{ + "rename": map[string]interface{}{ + "field": "foo.src_ip", + "target_field": "source.ip", + }, + }, + map[string]interface{}{ + "user_agent": map[string]interface{}{ + "field": "foo.http_user_agent", + }, + }, + }, + }, + expected: map[string]interface{}{ + "processors": []interface{}{ + map[string]interface{}{ + "rename": map[string]interface{}{ + "field": "foo.src_ip", + "target_field": "source.ip", + }, + }, + map[string]interface{}{ + "user_agent": map[string]interface{}{ + "field": "foo.http_user_agent", + "ecs": true, + }, + }, + }, + }, + isErrExpected: false, + }, + { + name: "ES >= 7.0.0", + esVersion: common.MustNewVersion("7.0.0"), + content: map[string]interface{}{ + "processors": []interface{}{ + map[string]interface{}{ + "rename": map[string]interface{}{ + "field": "foo.src_ip", + "target_field": "source.ip", + }, + }, + map[string]interface{}{ + "user_agent": map[string]interface{}{ + "field": "foo.http_user_agent", + }, + }, + }, + }, + expected: map[string]interface{}{ + "processors": []interface{}{ + map[string]interface{}{ + "rename": map[string]interface{}{ + "field": "foo.src_ip", + "target_field": "source.ip", + }, + }, + map[string]interface{}{ + "user_agent": map[string]interface{}{ + "field": "foo.http_user_agent", + }, + }, + }, + }, + isErrExpected: false, + }, + } + + for _, test := range cases { + test := test + t.Run(test.name, func(t *testing.T) { + t.Parallel() + err := setECSProcessors(*test.esVersion, "foo-pipeline", test.content) + if test.isErrExpected { + assert.Error(t, err) + } else { + assert.NoError(t, err) + assert.Equal(t, test.expected, test.content) + } + }) + } +} From a08af6894997e7da2785ad0016800bb7b9fb5d38 Mon Sep 17 00:00:00 2001 From: Silvia Mitter Date: Mon, 25 Feb 2019 14:31:46 +0100 Subject: [PATCH 077/332] Use IndexPrefix for kafka and logstash output. (#10841) Output index differed to Elasticsearch output. fixes #10839 --- libbeat/outputs/kafka/config.go | 8 ++ libbeat/outputs/kafka/config_test.go | 13 +-- libbeat/outputs/kafka/kafka.go | 8 +- .../outputs/kafka/kafka_integration_test.go | 3 +- libbeat/outputs/logstash/async_test.go | 2 +- libbeat/outputs/logstash/config.go | 54 +++++++--- libbeat/outputs/logstash/config_test.go | 100 ++++++++++++++++++ libbeat/outputs/logstash/logstash.go | 12 +-- libbeat/outputs/logstash/sync_test.go | 2 +- libbeat/outputs/logstash/window_test.go | 2 +- 10 files changed, 159 insertions(+), 45 deletions(-) create mode 100644 libbeat/outputs/logstash/config_test.go diff --git a/libbeat/outputs/kafka/config.go b/libbeat/outputs/kafka/config.go index 9cf81d34261..48a46491f91 100644 --- a/libbeat/outputs/kafka/config.go +++ b/libbeat/outputs/kafka/config.go @@ -106,6 +106,14 @@ func defaultConfig() kafkaConfig { } } +func readConfig(cfg *common.Config) (*kafkaConfig, error) { + c := defaultConfig() + if err := cfg.Unpack(&c); err != nil { + return nil, err + } + return &c, nil +} + func (c *kafkaConfig) Validate() error { if len(c.Hosts) == 0 { return errors.New("no hosts configured") diff --git a/libbeat/outputs/kafka/config_test.go b/libbeat/outputs/kafka/config_test.go index 262da4f9c05..dd74b50ed3d 100644 --- a/libbeat/outputs/kafka/config_test.go +++ b/libbeat/outputs/kafka/config_test.go @@ -39,18 +39,13 @@ func TestConfigAcceptValid(t *testing.T) { for name, test := range tests { test := test t.Run(name, func(t *testing.T) { - c, err := common.NewConfigFrom(test) + c := common.MustNewConfigFrom(test) + c.SetString("hosts", 0, "localhost") + cfg, err := readConfig(c) if err != nil { t.Fatalf("Can not create test configuration: %v", err) } - c.SetString("hosts", 0, "localhost") - - cfg := defaultConfig() - if err := c.Unpack(&cfg); err != nil { - t.Fatalf("Unpacking configuration failed: %v", err) - } - - if _, err := newSaramaConfig(&cfg); err != nil { + if _, err := newSaramaConfig(cfg); err != nil { t.Fatalf("Failure creating sarama config: %v", err) } }) diff --git a/libbeat/outputs/kafka/kafka.go b/libbeat/outputs/kafka/kafka.go index dc34e77c558..f96b372698f 100644 --- a/libbeat/outputs/kafka/kafka.go +++ b/libbeat/outputs/kafka/kafka.go @@ -77,8 +77,8 @@ func makeKafka( ) (outputs.Group, error) { debugf("initialize kafka output") - config := defaultConfig() - if err := cfg.Unpack(&config); err != nil { + config, err := readConfig(cfg) + if err != nil { return outputs.Fail(err) } @@ -92,7 +92,7 @@ func makeKafka( return outputs.Fail(err) } - libCfg, err := newSaramaConfig(&config) + libCfg, err := newSaramaConfig(config) if err != nil { return outputs.Fail(err) } @@ -107,7 +107,7 @@ func makeKafka( return outputs.Fail(err) } - client, err := newKafkaClient(observer, hosts, beat.Beat, config.Key, topic, codec, libCfg) + client, err := newKafkaClient(observer, hosts, beat.IndexPrefix, config.Key, topic, codec, libCfg) if err != nil { return outputs.Fail(err) } diff --git a/libbeat/outputs/kafka/kafka_integration_test.go b/libbeat/outputs/kafka/kafka_integration_test.go index 4d85003a719..7230335612d 100644 --- a/libbeat/outputs/kafka/kafka_integration_test.go +++ b/libbeat/outputs/kafka/kafka_integration_test.go @@ -199,7 +199,7 @@ func TestKafkaPublish(t *testing.T) { } t.Run(name, func(t *testing.T) { - grp, err := makeKafka(nil, beat.Info{Beat: "libbeat"}, outputs.NewNilObserver(), cfg) + grp, err := makeKafka(nil, beat.Info{Beat: "libbeat", IndexPrefix: "testbeat"}, outputs.NewNilObserver(), cfg) if err != nil { t.Fatal(err) } @@ -208,6 +208,7 @@ func TestKafkaPublish(t *testing.T) { if err := output.Connect(); err != nil { t.Fatal(err) } + assert.Equal(t, output.index, "testbeat") defer output.Close() // publish test events diff --git a/libbeat/outputs/logstash/async_test.go b/libbeat/outputs/logstash/async_test.go index d02c3d348e8..b99fb9a5749 100644 --- a/libbeat/outputs/logstash/async_test.go +++ b/libbeat/outputs/logstash/async_test.go @@ -50,7 +50,7 @@ func TestAsyncStructuredEvent(t *testing.T) { } func makeAsyncTestClient(conn *transport.Client) testClientDriver { - config := defaultConfig + config := defaultConfig() config.Timeout = 1 * time.Second config.Pipelining = 3 client, err := newAsyncClient(beat.Info{}, conn, outputs.NewNilObserver(), &config) diff --git a/libbeat/outputs/logstash/config.go b/libbeat/outputs/logstash/config.go index 2b8d7687e55..598413f5814 100644 --- a/libbeat/outputs/logstash/config.go +++ b/libbeat/outputs/logstash/config.go @@ -20,6 +20,10 @@ package logstash import ( "time" + "github.com/elastic/beats/libbeat/beat" + + "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/common/cfgwarn" "github.com/elastic/beats/libbeat/common/transport/tlscommon" "github.com/elastic/beats/libbeat/outputs/transport" ) @@ -45,23 +49,39 @@ type Backoff struct { Max time.Duration } -var defaultConfig = Config{ - LoadBalance: false, - Pipelining: 2, - BulkMaxSize: 2048, - SlowStart: false, - CompressionLevel: 3, - Timeout: 30 * time.Second, - MaxRetries: 3, - TTL: 0 * time.Second, - Backoff: Backoff{ - Init: 1 * time.Second, - Max: 60 * time.Second, - }, - EscapeHTML: false, +func defaultConfig() Config { + return Config{ + LoadBalance: false, + Pipelining: 2, + BulkMaxSize: 2048, + SlowStart: false, + CompressionLevel: 3, + Timeout: 30 * time.Second, + MaxRetries: 3, + TTL: 0 * time.Second, + Backoff: Backoff{ + Init: 1 * time.Second, + Max: 60 * time.Second, + }, + EscapeHTML: false, + } } -func newConfig() *Config { - c := defaultConfig - return &c +func readConfig(cfg *common.Config, info beat.Info) (*Config, error) { + c := defaultConfig() + + err := cfgwarn.CheckRemoved6xSettings(cfg, "port") + if err != nil { + return nil, err + } + + if err := cfg.Unpack(&c); err != nil { + return nil, err + } + + if c.Index == "" { + c.Index = info.IndexPrefix + } + + return &c, nil } diff --git a/libbeat/outputs/logstash/config_test.go b/libbeat/outputs/logstash/config_test.go new file mode 100644 index 00000000000..ee3ffe17978 --- /dev/null +++ b/libbeat/outputs/logstash/config_test.go @@ -0,0 +1,100 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package logstash + +import ( + "testing" + "time" + + "github.com/elastic/beats/libbeat/beat" + "github.com/elastic/beats/libbeat/common" + + "github.com/stretchr/testify/assert" +) + +func TestConfig(t *testing.T) { + + info := beat.Info{Beat: "testbeat", Name: "foo", IndexPrefix: "bar"} + for name, test := range map[string]struct { + config *common.Config + expectedConfig *Config + err bool + }{ + "default config": { + config: common.MustNewConfigFrom([]byte(`{ }`)), + expectedConfig: &Config{ + LoadBalance: false, + Pipelining: 2, + BulkMaxSize: 2048, + SlowStart: false, + CompressionLevel: 3, + Timeout: 30 * time.Second, + MaxRetries: 3, + TTL: 0 * time.Second, + Backoff: Backoff{ + Init: 1 * time.Second, + Max: 60 * time.Second, + }, + EscapeHTML: false, + Index: "bar", + }, + }, + "config given": { + config: common.MustNewConfigFrom(common.MapStr{ + "index": "beat-index", + "loadbalance": true, + "bulk_max_size": 1024, + "slow_start": false, + }), + expectedConfig: &Config{ + LoadBalance: true, + BulkMaxSize: 1024, + Pipelining: 2, + SlowStart: false, + CompressionLevel: 3, + Timeout: 30 * time.Second, + MaxRetries: 3, + TTL: 0 * time.Second, + Backoff: Backoff{ + Init: 1 * time.Second, + Max: 60 * time.Second, + }, + EscapeHTML: false, + Index: "beat-index", + }, + }, + "removed config setting": { + config: common.MustNewConfigFrom(common.MapStr{ + "port": "8080", + }), + expectedConfig: nil, + err: true, + }, + } { + t.Run(name, func(t *testing.T) { + cfg, err := readConfig(test.config, info) + if test.err { + assert.Error(t, err) + assert.Nil(t, cfg) + } else { + assert.NoError(t, err) + assert.Equal(t, test.expectedConfig, cfg) + } + }) + } +} diff --git a/libbeat/outputs/logstash/logstash.go b/libbeat/outputs/logstash/logstash.go index 0c14bf5882b..d1a64a47b26 100644 --- a/libbeat/outputs/logstash/logstash.go +++ b/libbeat/outputs/logstash/logstash.go @@ -20,7 +20,6 @@ package logstash import ( "github.com/elastic/beats/libbeat/beat" "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/common/cfgwarn" "github.com/elastic/beats/libbeat/common/transport/tlscommon" "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/libbeat/outputs" @@ -45,20 +44,11 @@ func makeLogstash( observer outputs.Observer, cfg *common.Config, ) (outputs.Group, error) { - if !cfg.HasField("index") { - cfg.SetString("index", -1, beat.Beat) - } - - err := cfgwarn.CheckRemoved6xSettings(cfg, "port") + config, err := readConfig(cfg, beat) if err != nil { return outputs.Fail(err) } - config := newConfig() - if err := cfg.Unpack(config); err != nil { - return outputs.Fail(err) - } - hosts, err := outputs.ReadHostList(cfg) if err != nil { return outputs.Fail(err) diff --git a/libbeat/outputs/logstash/sync_test.go b/libbeat/outputs/logstash/sync_test.go index dc48309211d..f9d74cb69cb 100644 --- a/libbeat/outputs/logstash/sync_test.go +++ b/libbeat/outputs/logstash/sync_test.go @@ -63,7 +63,7 @@ func newClientServerTCP(t *testing.T, to time.Duration) *clientServer { } func makeTestClient(conn *transport.Client) testClientDriver { - config := defaultConfig + config := defaultConfig() config.Timeout = 1 * time.Second config.TTL = 5 * time.Second client, err := newSyncClient(beat.Info{}, conn, outputs.NewNilObserver(), &config) diff --git a/libbeat/outputs/logstash/window_test.go b/libbeat/outputs/logstash/window_test.go index 773f9c374df..ab5e64f8508 100644 --- a/libbeat/outputs/logstash/window_test.go +++ b/libbeat/outputs/logstash/window_test.go @@ -30,7 +30,7 @@ func TestShrinkWindowSizeNeverZero(t *testing.T) { windowSize := 124 var w window - w.init(windowSize, defaultConfig.BulkMaxSize) + w.init(windowSize, defaultConfig().BulkMaxSize) w.windowSize = int32(windowSize) for i := 0; i < 100; i++ { From 3b1b0cf7a3dea9ff75a5a6b2220e38df3c156064 Mon Sep 17 00:00:00 2001 From: Jaime Soriano Pastor Date: Mon, 25 Feb 2019 15:57:46 +0100 Subject: [PATCH 078/332] Migrate metricbeat docker module to ECS (#10927) Fix #10900 --- CHANGELOG.next.asciidoc | 1 + .../module/docker/container/_meta/data.json | 54 +++++++++---- .../module/docker/container/container.go | 14 +++- .../container/container_integration_test.go | 13 +++- metricbeat/module/docker/container/data.go | 44 ++++++----- metricbeat/module/docker/cpu/_meta/data.json | 75 ++++++++++++------- metricbeat/module/docker/cpu/cpu.go | 14 +++- .../module/docker/cpu/cpu_integration_test.go | 13 +++- metricbeat/module/docker/cpu/data.go | 18 ++--- .../module/docker/diskio/_meta/data.json | 59 +++++++++------ metricbeat/module/docker/diskio/data.go | 18 ++--- metricbeat/module/docker/diskio/diskio.go | 14 +++- .../docker/diskio/diskio_integration_test.go | 13 +++- metricbeat/module/docker/fields.go | 2 +- .../module/docker/healthcheck/_meta/data.json | 56 +++++++++----- metricbeat/module/docker/healthcheck/data.go | 32 ++++---- .../module/docker/healthcheck/healthcheck.go | 14 +++- .../healthcheck_integration_test.go | 13 +++- metricbeat/module/docker/helper.go | 13 +++- .../module/docker/memory/_meta/data.json | 59 +++++++++------ metricbeat/module/docker/memory/data.go | 19 +++-- metricbeat/module/docker/memory/memory.go | 14 +++- .../docker/memory/memory_integration_test.go | 22 +++--- .../module/docker/memory/memory_test.go | 33 +++++--- .../module/docker/network/_meta/data.json | 54 ++++++++----- .../module/docker/network/_meta/fields.yml | 2 - metricbeat/module/docker/network/data.go | 7 +- metricbeat/module/docker/network/network.go | 6 ++ metricbeat/tests/system/test_docker.py | 2 +- 29 files changed, 444 insertions(+), 254 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 36da65e08dc..c4feb223729 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -92,6 +92,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Update rabbitmq.* fields to map to ECS. {pull}10563[10563] - Update haproxy.* fields to map to ECS. {pull}10558[10558] {pull}10568[10568] - Collect all EC2 meta data from all instances in all states. {pull}10628[10628] +- Migrate docker module to ECS. {pull}10927[10927] *Packetbeat* diff --git a/metricbeat/module/docker/container/_meta/data.json b/metricbeat/module/docker/container/_meta/data.json index fb7c93711cc..88123286939 100644 --- a/metricbeat/module/docker/container/_meta/data.json +++ b/metricbeat/module/docker/container/_meta/data.json @@ -1,37 +1,59 @@ { "@timestamp": "2017-10-12T08:05:34.853Z", - "beat": { + "agent": { "hostname": "host.example.com", "name": "host.example.com" }, + "container": { + "id": "cc78e58acfda4501105dc4de8e3ae218f2da616213e6e3af168c40103829302a", + "image": { + "name": "metricbeat_elasticsearch" + }, + "name": "metricbeat_elasticsearch_1_df866b3a7b3d", + "runtime": "docker" + }, "docker": { "container": { - "command": "go test -tags=integration github.com/elastic/beats/metricbeat/module/... -data", - "created": "2017-12-07T07:20:57.000Z", - "id": "d88e67bb6961a5bb70c1c1c48094c6030e43768eed91e827f437111888f9967e", - "image": "metricbeatsnapshotnoxpack700alpha1d71419298b58ed8b0a5b60a6d1e4a476ffaf80a8_beat", + "command": "/usr/local/bin/docker-entrypoint.sh eswrapper", + "created": "2019-02-25T10:18:10.000Z", "ip_addresses": [ - "172.18.0.27" + "172.23.0.2" ], "labels": { + "com_docker_compose_config-hash": "e3e0a2c6e5d1afb741bc8b1ecb09cda0395886b7a3e5084a9fd110be46d70f78", "com_docker_compose_container-number": "1", - "com_docker_compose_oneoff": "True", - "com_docker_compose_project": "metricbeatsnapshotnoxpack700alpha1d71419298b58ed8b0a5b60a6d1e4a476ffaf80a8", - "com_docker_compose_service": "beat", - "com_docker_compose_version": "1.16.1" + "com_docker_compose_oneoff": "False", + "com_docker_compose_project": "metricbeat", + "com_docker_compose_service": "elasticsearch", + "com_docker_compose_slug": "df866b3a7b3d50c0802350cbe58ee5b34fa32b7f6ba7fe9e48cde2c12dd0201d", + "com_docker_compose_version": "1.23.1", + "license": "Elastic License", + "org_label-schema_build-date": "20181006", + "org_label-schema_license": "GPLv2", + "org_label-schema_name": "elasticsearch", + "org_label-schema_schema-version": "1.0", + "org_label-schema_url": "https://www.elastic.co/products/elasticsearch", + "org_label-schema_vcs-url": "https://github.com/elastic/elasticsearch-docker", + "org_label-schema_vendor": "Elastic", + "org_label-schema_version": "6.5.1" }, - "name": "metricbeatsnapshotnoxpack700alpha1d71419298b58ed8b0a5b60a6d1e4a476ffaf80a8_beat_run_1", "size": { "root_fs": 0, "rw": 0 }, - "status": "Up 6 minutes (healthy)" + "status": "Up 7 minutes (healthy)" } }, + "event": { + "dataset": "docker.container", + "duration": 115000, + "module": "docker" + }, "metricset": { - "host": "/var/run/docker.sock", - "module": "docker", - "name": "container", - "rtt": 115 + "name": "container" + }, + "service": { + "address": "/var/run/docker.sock", + "type": "docker" } } \ No newline at end of file diff --git a/metricbeat/module/docker/container/container.go b/metricbeat/module/docker/container/container.go index 0247c179ea7..6032493e755 100644 --- a/metricbeat/module/docker/container/container.go +++ b/metricbeat/module/docker/container/container.go @@ -22,12 +22,15 @@ import ( "github.com/docker/docker/api/types" "github.com/docker/docker/client" + "github.com/pkg/errors" - "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/module/docker" ) +var logger = logp.NewLogger("docker.container") + func init() { mb.Registry.MustAddMetricSet("docker", "container", New, mb.WithHostParser(docker.HostParser), @@ -62,11 +65,14 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // Fetch returns a list of all containers as events. // This is based on https://docs.docker.com/engine/reference/api/docker_remote_api_v1.24/#/list-containers. -func (m *MetricSet) Fetch() ([]common.MapStr, error) { +func (m *MetricSet) Fetch(r mb.ReporterV2) { // Fetch a list of all containers. containers, err := m.dockerClient.ContainerList(context.Background(), types.ContainerListOptions{}) if err != nil { - return nil, err + err = errors.Wrap(err, "failed to get docker containers list") + logger.Error(err) + r.Error(err) + return } - return eventsMapping(containers, m.dedot), nil + eventsMapping(r, containers, m.dedot) } diff --git a/metricbeat/module/docker/container/container_integration_test.go b/metricbeat/module/docker/container/container_integration_test.go index 48cf0e2a664..321a727fa43 100644 --- a/metricbeat/module/docker/container/container_integration_test.go +++ b/metricbeat/module/docker/container/container_integration_test.go @@ -22,13 +22,20 @@ package container import ( "testing" + "github.com/stretchr/testify/assert" + mbtest "github.com/elastic/beats/metricbeat/mb/testing" ) func TestData(t *testing.T) { - f := mbtest.NewEventsFetcher(t, getConfig()) - err := mbtest.WriteEvents(f, t) - if err != nil { + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) + } + assert.NotEmpty(t, events) + + if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { t.Fatal("write", err) } } diff --git a/metricbeat/module/docker/container/data.go b/metricbeat/module/docker/container/data.go index 80e4179fa15..c0bb07518fa 100644 --- a/metricbeat/module/docker/container/data.go +++ b/metricbeat/module/docker/container/data.go @@ -23,39 +23,49 @@ import ( "github.com/docker/docker/api/types" "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/module/docker" ) -func eventsMapping(containersList []types.Container, dedot bool) []common.MapStr { - myEvents := []common.MapStr{} +func eventsMapping(r mb.ReporterV2, containersList []types.Container, dedot bool) { for _, container := range containersList { - myEvents = append(myEvents, eventMapping(&container, dedot)) + eventMapping(r, &container, dedot) } - return myEvents } -func eventMapping(cont *types.Container, dedot bool) common.MapStr { +func eventMapping(r mb.ReporterV2, cont *types.Container, dedot bool) { event := common.MapStr{ - "created": common.Time(time.Unix(cont.Created, 0)), - "id": cont.ID, - "name": docker.ExtractContainerName(cont.Names), - "command": cont.Command, - "image": cont.Image, - "ip_addresses": extractIPAddresses(cont.NetworkSettings), - "size": common.MapStr{ - "root_fs": cont.SizeRootFs, - "rw": cont.SizeRw, + "container": common.MapStr{ + "id": cont.ID, + "image": common.MapStr{ + "name": cont.Image, + }, + "name": docker.ExtractContainerName(cont.Names), + "runtime": "docker", + }, + "docker": common.MapStr{ + "container": common.MapStr{ + "created": common.Time(time.Unix(cont.Created, 0)), + "command": cont.Command, + "ip_addresses": extractIPAddresses(cont.NetworkSettings), + "size": common.MapStr{ + "root_fs": cont.SizeRootFs, + "rw": cont.SizeRw, + }, + "status": cont.Status, + }, }, - "status": cont.Status, } labels := docker.DeDotLabels(cont.Labels, dedot) if len(labels) > 0 { - event["labels"] = labels + event.Put("docker.container.labels", labels) } - return event + r.Event(mb.Event{ + RootFields: event, + }) } func extractIPAddresses(networks *types.SummaryNetworkSettings) []string { diff --git a/metricbeat/module/docker/cpu/_meta/data.json b/metricbeat/module/docker/cpu/_meta/data.json index 5589d985801..370558eed75 100644 --- a/metricbeat/module/docker/cpu/_meta/data.json +++ b/metricbeat/module/docker/cpu/_meta/data.json @@ -1,67 +1,84 @@ { "@timestamp": "2017-10-12T08:05:34.853Z", - "beat": { + "agent": { "hostname": "host.example.com", "name": "host.example.com" }, + "container": { + "id": "cc78e58acfda4501105dc4de8e3ae218f2da616213e6e3af168c40103829302a", + "image": { + "name": "metricbeat_elasticsearch" + }, + "name": "metricbeat_elasticsearch_1_df866b3a7b3d", + "runtime": "docker" + }, "docker": { "container": { - "id": "bbdcbc751e7eda7a50e773b4a5d8c2800af664f835ef9c0ad6bbb9c160c50d83", "labels": { - "build-date": "20170911", - "com_docker_compose_config-hash": "371e477ae73fd44b19bcbcf0d4feaf4de9adfb69137a8f16d09cff749724ca99", + "com_docker_compose_config-hash": "e3e0a2c6e5d1afb741bc8b1ecb09cda0395886b7a3e5084a9fd110be46d70f78", "com_docker_compose_container-number": "1", "com_docker_compose_oneoff": "False", "com_docker_compose_project": "metricbeat", "com_docker_compose_service": "elasticsearch", - "com_docker_compose_version": "1.21.0", - "license": "GPLv2", - "maintainer": "Elastic Docker Team \u003cdocker@elastic.co\u003e", - "name": "CentOS Base Image", - "vendor": "CentOS" - }, - "name": "metricbeat_elasticsearch_1" + "com_docker_compose_slug": "df866b3a7b3d50c0802350cbe58ee5b34fa32b7f6ba7fe9e48cde2c12dd0201d", + "com_docker_compose_version": "1.23.1", + "license": "Elastic License", + "org_label-schema_build-date": "20181006", + "org_label-schema_license": "GPLv2", + "org_label-schema_name": "elasticsearch", + "org_label-schema_schema-version": "1.0", + "org_label-schema_url": "https://www.elastic.co/products/elasticsearch", + "org_label-schema_vcs-url": "https://github.com/elastic/elasticsearch-docker", + "org_label-schema_vendor": "Elastic", + "org_label-schema_version": "6.5.1" + } }, "cpu": { "core": { "0": { - "pct": 0.01012583677581864, - "ticks": 9528454911 + "pct": 0.03263313721518987, + "ticks": 38346196894 }, "1": { - "pct": 0.0069975889168765746, - "ticks": 11916812270 + "pct": 0.014317838987341772, + "ticks": 37143007802 }, "2": { - "pct": 0.001329603022670025, - "ticks": 10894346015 + "pct": 0.0028625296202531647, + "ticks": 37194678570 }, "3": { - "pct": 0.0018390015113350126, - "ticks": 10847487614 + "pct": 0.005687502784810126, + "ticks": 39335551141 } }, "kernel": { - "pct": 0.010075566750629723, - "ticks": 1960000000 + "pct": 0.010126582278481013, + "ticks": 10560000000 }, "system": { "pct": 4, - "ticks": 1092479570000000 + "ticks": 5566563680000000 }, "total": { - "pct": 0.02029203022670025 + "pct": 0.05550100860759494 }, "user": { - "pct": 0.010075566750629723, - "ticks": 40960000000 + "pct": 0.05063291139240506, + "ticks": 139520000000 } } }, + "event": { + "dataset": "docker.cpu", + "duration": 115000, + "module": "docker" + }, "metricset": { - "host": "/var/run/docker.sock", - "module": "docker", - "name": "cpu", - "rtt": 115 + "name": "cpu" + }, + "service": { + "address": "/var/run/docker.sock", + "type": "docker" } } \ No newline at end of file diff --git a/metricbeat/module/docker/cpu/cpu.go b/metricbeat/module/docker/cpu/cpu.go index 954eb37d6d2..a7dd10cf892 100644 --- a/metricbeat/module/docker/cpu/cpu.go +++ b/metricbeat/module/docker/cpu/cpu.go @@ -19,12 +19,15 @@ package cpu import ( "github.com/docker/docker/client" + "github.com/pkg/errors" - "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/module/docker" ) +var logger = logp.NewLogger("docker.cpu") + func init() { mb.Registry.MustAddMetricSet("docker", "cpu", New, mb.WithHostParser(docker.HostParser), @@ -69,12 +72,15 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { } // Fetch returns a list of docker CPU stats. -func (m *MetricSet) Fetch() ([]common.MapStr, error) { +func (m *MetricSet) Fetch(r mb.ReporterV2) { stats, err := docker.FetchStats(m.dockerClient, m.Module().Config().Timeout) if err != nil { - return nil, err + err = errors.Wrap(err, "failed to get docker stats") + logger.Error(err) + r.Error(err) + return } formattedStats := m.cpuService.getCPUStatsList(stats, m.dedot) - return eventsMapping(formattedStats), nil + eventsMapping(r, formattedStats) } diff --git a/metricbeat/module/docker/cpu/cpu_integration_test.go b/metricbeat/module/docker/cpu/cpu_integration_test.go index 209f6633558..1dad5cb1dd8 100644 --- a/metricbeat/module/docker/cpu/cpu_integration_test.go +++ b/metricbeat/module/docker/cpu/cpu_integration_test.go @@ -22,13 +22,20 @@ package cpu import ( "testing" + "github.com/stretchr/testify/assert" + mbtest "github.com/elastic/beats/metricbeat/mb/testing" ) func TestData(t *testing.T) { - f := mbtest.NewEventsFetcher(t, getConfig()) - err := mbtest.WriteEvents(f, t) - if err != nil { + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) + } + assert.NotEmpty(t, events) + + if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { t.Fatal("write", err) } } diff --git a/metricbeat/module/docker/cpu/data.go b/metricbeat/module/docker/cpu/data.go index 3cf93fe93d6..a8c3042ed4d 100644 --- a/metricbeat/module/docker/cpu/data.go +++ b/metricbeat/module/docker/cpu/data.go @@ -22,19 +22,14 @@ import ( "github.com/elastic/beats/metricbeat/mb" ) -func eventsMapping(cpuStatsList []CPUStats) []common.MapStr { - events := []common.MapStr{} +func eventsMapping(r mb.ReporterV2, cpuStatsList []CPUStats) { for _, cpuStats := range cpuStatsList { - events = append(events, eventMapping(&cpuStats)) + eventMapping(r, &cpuStats) } - return events } -func eventMapping(stats *CPUStats) common.MapStr { - event := common.MapStr{ - mb.ModuleDataKey: common.MapStr{ - "container": stats.Container.ToMapStr(), - }, +func eventMapping(r mb.ReporterV2, stats *CPUStats) { + fields := common.MapStr{ "core": stats.PerCpuUsage, "total": common.MapStr{ "pct": stats.TotalUsage, @@ -53,5 +48,8 @@ func eventMapping(stats *CPUStats) common.MapStr { }, } - return event + r.Event(mb.Event{ + RootFields: stats.Container.ToMapStr(), + MetricSetFields: fields, + }) } diff --git a/metricbeat/module/docker/diskio/_meta/data.json b/metricbeat/module/docker/diskio/_meta/data.json index 3adb0cc1675..2fba47412c8 100644 --- a/metricbeat/module/docker/diskio/_meta/data.json +++ b/metricbeat/module/docker/diskio/_meta/data.json @@ -1,52 +1,69 @@ { "@timestamp": "2017-10-12T08:05:34.853Z", - "beat": { + "agent": { "hostname": "host.example.com", "name": "host.example.com" }, + "container": { + "id": "cc78e58acfda4501105dc4de8e3ae218f2da616213e6e3af168c40103829302a", + "image": { + "name": "metricbeat_elasticsearch" + }, + "name": "metricbeat_elasticsearch_1_df866b3a7b3d", + "runtime": "docker" + }, "docker": { "container": { - "id": "59c5d4838454f38c7d67fdacec7a32ca4476a062ef00edf69ba6be9117cf2e7b", "labels": { - "build-date": "20170911", - "com_docker_compose_config-hash": "a2bcfc1f8c99a4be6920deda8da8d4d06fe0d10d51623b8e1dbcc8228e96926c", + "com_docker_compose_config-hash": "e3e0a2c6e5d1afb741bc8b1ecb09cda0395886b7a3e5084a9fd110be46d70f78", "com_docker_compose_container-number": "1", "com_docker_compose_oneoff": "False", "com_docker_compose_project": "metricbeat", "com_docker_compose_service": "elasticsearch", - "com_docker_compose_version": "1.20.1", - "license": "GPLv2", - "maintainer": "Elastic Docker Team \u003cdocker@elastic.co\u003e", - "name": "CentOS Base Image", - "vendor": "CentOS" - }, - "name": "metricbeat_elasticsearch_1" + "com_docker_compose_slug": "df866b3a7b3d50c0802350cbe58ee5b34fa32b7f6ba7fe9e48cde2c12dd0201d", + "com_docker_compose_version": "1.23.1", + "license": "Elastic License", + "org_label-schema_build-date": "20181006", + "org_label-schema_license": "GPLv2", + "org_label-schema_name": "elasticsearch", + "org_label-schema_schema-version": "1.0", + "org_label-schema_url": "https://www.elastic.co/products/elasticsearch", + "org_label-schema_vcs-url": "https://github.com/elastic/elasticsearch-docker", + "org_label-schema_vendor": "Elastic", + "org_label-schema_version": "6.5.1" + } }, "diskio": { "read": { - "bytes": 61964288, - "ops": 3284, + "bytes": 998932480, + "ops": 8473, "rate": 0 }, "reads": 0, "summary": { - "bytes": 63479808, - "ops": 3500, + "bytes": 1090650112, + "ops": 9585, "rate": 0 }, "total": 0, "write": { - "bytes": 1515520, - "ops": 216, + "bytes": 91717632, + "ops": 1112, "rate": 0 }, "writes": 0 } }, + "event": { + "dataset": "docker.diskio", + "duration": 115000, + "module": "docker" + }, "metricset": { - "host": "/var/run/docker.sock", - "module": "docker", - "name": "diskio", - "rtt": 115 + "name": "diskio" + }, + "service": { + "address": "/var/run/docker.sock", + "type": "docker" } } \ No newline at end of file diff --git a/metricbeat/module/docker/diskio/data.go b/metricbeat/module/docker/diskio/data.go index 5613c4f713b..2a7d4cb9569 100644 --- a/metricbeat/module/docker/diskio/data.go +++ b/metricbeat/module/docker/diskio/data.go @@ -22,19 +22,14 @@ import ( "github.com/elastic/beats/metricbeat/mb" ) -func eventsMapping(blkioStatsList []BlkioStats) []common.MapStr { - myEvents := []common.MapStr{} +func eventsMapping(r mb.ReporterV2, blkioStatsList []BlkioStats) { for _, blkioStats := range blkioStatsList { - myEvents = append(myEvents, eventMapping(&blkioStats)) + eventMapping(r, &blkioStats) } - return myEvents } -func eventMapping(stats *BlkioStats) common.MapStr { - event := common.MapStr{ - mb.ModuleDataKey: common.MapStr{ - "container": stats.Container.ToMapStr(), - }, +func eventMapping(r mb.ReporterV2, stats *BlkioStats) { + fields := common.MapStr{ "reads": stats.reads, "writes": stats.writes, "total": stats.totals, @@ -55,5 +50,8 @@ func eventMapping(stats *BlkioStats) common.MapStr { }, } - return event + r.Event(mb.Event{ + RootFields: stats.Container.ToMapStr(), + MetricSetFields: fields, + }) } diff --git a/metricbeat/module/docker/diskio/diskio.go b/metricbeat/module/docker/diskio/diskio.go index 994823bba57..d300e92d3e4 100644 --- a/metricbeat/module/docker/diskio/diskio.go +++ b/metricbeat/module/docker/diskio/diskio.go @@ -19,12 +19,15 @@ package diskio import ( "github.com/docker/docker/client" + "github.com/pkg/errors" - "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/module/docker" ) +var logger = logp.NewLogger("docker.diskio") + func init() { mb.Registry.MustAddMetricSet("docker", "diskio", New, mb.WithHostParser(docker.HostParser), @@ -60,12 +63,15 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { } // Fetch creates list of events with diskio stats for all containers. -func (m *MetricSet) Fetch() ([]common.MapStr, error) { +func (m *MetricSet) Fetch(r mb.ReporterV2) { stats, err := docker.FetchStats(m.dockerClient, m.Module().Config().Timeout) if err != nil { - return nil, err + err = errors.Wrap(err, "failed to get docker stats") + logger.Error(err) + r.Error(err) + return } formattedStats := m.blkioService.getBlkioStatsList(stats, m.dedot) - return eventsMapping(formattedStats), nil + eventsMapping(r, formattedStats) } diff --git a/metricbeat/module/docker/diskio/diskio_integration_test.go b/metricbeat/module/docker/diskio/diskio_integration_test.go index 1f3a7d1ceed..21e3b20c20d 100644 --- a/metricbeat/module/docker/diskio/diskio_integration_test.go +++ b/metricbeat/module/docker/diskio/diskio_integration_test.go @@ -22,13 +22,20 @@ package diskio import ( "testing" + "github.com/stretchr/testify/assert" + mbtest "github.com/elastic/beats/metricbeat/mb/testing" ) func TestData(t *testing.T) { - f := mbtest.NewEventsFetcher(t, getConfig()) - err := mbtest.WriteEvents(f, t) - if err != nil { + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) + } + assert.NotEmpty(t, events) + + if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { t.Fatal("write", err) } } diff --git a/metricbeat/module/docker/fields.go b/metricbeat/module/docker/fields.go index f2e8dfeab15..ec367b3a5a7 100644 --- a/metricbeat/module/docker/fields.go +++ b/metricbeat/module/docker/fields.go @@ -32,5 +32,5 @@ func init() { // AssetDocker returns asset data. // This is the base64 encoded gzipped contents of ../metricbeat/module/docker. func AssetDocker() string { - return "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" + return "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" } diff --git a/metricbeat/module/docker/healthcheck/_meta/data.json b/metricbeat/module/docker/healthcheck/_meta/data.json index ce47fb6706e..ace6af48c14 100644 --- a/metricbeat/module/docker/healthcheck/_meta/data.json +++ b/metricbeat/module/docker/healthcheck/_meta/data.json @@ -1,37 +1,59 @@ { "@timestamp": "2017-10-12T08:05:34.853Z", - "beat": { + "agent": { "hostname": "host.example.com", "name": "host.example.com" }, + "container": { + "id": "cc78e58acfda4501105dc4de8e3ae218f2da616213e6e3af168c40103829302a", + "image": { + "name": "metricbeat_elasticsearch" + }, + "name": "metricbeat_elasticsearch_1_df866b3a7b3d", + "runtime": "docker" + }, "docker": { "container": { - "id": "228848ff8ea238430c4e9cc21deb3175ea5c77483a7f9f4b7c42f7cd6d18c0fb", "labels": { - "com_docker_compose_config-hash": "13347b7d96bf1b3f1ddc089bdef099e42dde235e", + "com_docker_compose_config-hash": "e3e0a2c6e5d1afb741bc8b1ecb09cda0395886b7a3e5084a9fd110be46d70f78", "com_docker_compose_container-number": "1", "com_docker_compose_oneoff": "False", "com_docker_compose_project": "metricbeat", - "com_docker_compose_service": "aerospike", - "com_docker_compose_version": "1.5.0" - }, - "name": "metricbeat_aerospike_1" + "com_docker_compose_service": "elasticsearch", + "com_docker_compose_slug": "df866b3a7b3d50c0802350cbe58ee5b34fa32b7f6ba7fe9e48cde2c12dd0201d", + "com_docker_compose_version": "1.23.1", + "license": "Elastic License", + "org_label-schema_build-date": "20181006", + "org_label-schema_license": "GPLv2", + "org_label-schema_name": "elasticsearch", + "org_label-schema_schema-version": "1.0", + "org_label-schema_url": "https://www.elastic.co/products/elasticsearch", + "org_label-schema_vcs-url": "https://github.com/elastic/elasticsearch-docker", + "org_label-schema_vendor": "Elastic", + "org_label-schema_version": "6.5.1" + } }, "healthcheck": { "event": { - "end_date": "2017-12-07T07:27:18.738Z", - "exit_code": 1, - "output": "", - "start_date": "2017-12-07T07:27:17.416Z" + "end_date": "2019-02-25T10:59:07.472Z", + "exit_code": 0, + "output": " % Total % Received % Xferd Average Speed Time Time Time Current\n Dload Upload Total Spent Left Speed\n\r 0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0\r100 338 100 338 0 0 13188 0 --:--:-- --:--:-- --:--:-- 13520\n{\n \"license\" : {\n \"status\" : \"active\",\n \"uid\" : \"ea5a516e-d9ee-4131-8eec-b39741e80869\",\n \"type\" : \"basic\",\n \"issue_date\" : \"2019-02-25T10:18:24.885Z\",\n \"issue_date_in_millis\" : 1551089904885,\n \"max_nodes\" : 1000,\n \"issued_to\" : \"docker-cluster\",\n \"issuer\" : \"elasticsearch\",\n \"start_date_in_millis\" : -1\n }\n}\n", + "start_date": "2019-02-25T10:59:07.342Z" }, - "failingstreak": 1, - "status": "starting" + "failingstreak": 0, + "status": "healthy" } }, + "event": { + "dataset": "docker.healthcheck", + "duration": 115000, + "module": "docker" + }, "metricset": { - "host": "/var/run/docker.sock", - "module": "docker", - "name": "healthcheck", - "rtt": 115 + "name": "healthcheck" + }, + "service": { + "address": "/var/run/docker.sock", + "type": "docker" } } \ No newline at end of file diff --git a/metricbeat/module/docker/healthcheck/data.go b/metricbeat/module/docker/healthcheck/data.go index dc91093c918..673e15a7323 100644 --- a/metricbeat/module/docker/healthcheck/data.go +++ b/metricbeat/module/docker/healthcheck/data.go @@ -24,49 +24,40 @@ import ( "github.com/docker/docker/api/types" "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/module/docker" ) -func eventsMapping(containers []types.Container, m *MetricSet) []common.MapStr { - var events []common.MapStr +func eventsMapping(r mb.ReporterV2, containers []types.Container, m *MetricSet) { for _, container := range containers { - event := eventMapping(&container, m) - if event != nil { - events = append(events, event) - } + eventMapping(r, &container, m) } - return events } -func eventMapping(cont *types.Container, m *MetricSet) common.MapStr { +func eventMapping(r mb.ReporterV2, cont *types.Container, m *MetricSet) { if !hasHealthCheck(cont.Status) { - return nil + return } container, err := m.dockerClient.ContainerInspect(context.TODO(), cont.ID) if err != nil { - logp.Err("Error inspecting container %v: %v", cont.ID, err) - return nil + logger.Error("Error inspecting container %v: %v", cont.ID, err) + return } // Check if the container has any health check if container.State.Health == nil { - return nil + return } lastEvent := len(container.State.Health.Log) - 1 // Checks if a healthcheck already happened if lastEvent < 0 { - return nil + return } - return common.MapStr{ - mb.ModuleDataKey: common.MapStr{ - "container": docker.NewContainer(cont, m.dedot).ToMapStr(), - }, + fields := common.MapStr{ "status": container.State.Health.Status, "failingstreak": container.State.Health.FailingStreak, "event": common.MapStr{ @@ -76,6 +67,11 @@ func eventMapping(cont *types.Container, m *MetricSet) common.MapStr { "output": container.State.Health.Log[lastEvent].Output, }, } + + r.Event(mb.Event{ + RootFields: docker.NewContainer(cont, m.dedot).ToMapStr(), + MetricSetFields: fields, + }) } // hasHealthCheck detects if healthcheck is available for container diff --git a/metricbeat/module/docker/healthcheck/healthcheck.go b/metricbeat/module/docker/healthcheck/healthcheck.go index 781871587cc..64c710140e8 100644 --- a/metricbeat/module/docker/healthcheck/healthcheck.go +++ b/metricbeat/module/docker/healthcheck/healthcheck.go @@ -22,12 +22,15 @@ import ( "github.com/docker/docker/api/types" "github.com/docker/docker/client" + "github.com/pkg/errors" - "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/module/docker" ) +var logger = logp.NewLogger("docker.healthcheck") + func init() { mb.Registry.MustAddMetricSet("docker", "healthcheck", New, mb.WithHostParser(docker.HostParser), @@ -62,11 +65,14 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // Fetch returns a list of all containers as events. // This is based on https://docs.docker.com/engine/reference/api/docker_remote_api_v1.24/#/list-containers. -func (m *MetricSet) Fetch() ([]common.MapStr, error) { +func (m *MetricSet) Fetch(r mb.ReporterV2) { // Fetch a list of all containers. containers, err := m.dockerClient.ContainerList(context.TODO(), types.ContainerListOptions{}) if err != nil { - return nil, err + err = errors.Wrap(err, "failed to get docker containers list") + logger.Error(err) + r.Error(err) + return } - return eventsMapping(containers, m), nil + eventsMapping(r, containers, m) } diff --git a/metricbeat/module/docker/healthcheck/healthcheck_integration_test.go b/metricbeat/module/docker/healthcheck/healthcheck_integration_test.go index 0448a1e3313..79dfeb00ab7 100644 --- a/metricbeat/module/docker/healthcheck/healthcheck_integration_test.go +++ b/metricbeat/module/docker/healthcheck/healthcheck_integration_test.go @@ -22,13 +22,20 @@ package healthcheck import ( "testing" + "github.com/stretchr/testify/assert" + mbtest "github.com/elastic/beats/metricbeat/mb/testing" ) func TestData(t *testing.T) { - f := mbtest.NewEventsFetcher(t, getConfig()) - err := mbtest.WriteEvents(f, t) - if err != nil { + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) + } + assert.NotEmpty(t, events) + + if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { t.Fatal("write", err) } } diff --git a/metricbeat/module/docker/helper.go b/metricbeat/module/docker/helper.go index 1306b89e8c7..a4284db25d3 100644 --- a/metricbeat/module/docker/helper.go +++ b/metricbeat/module/docker/helper.go @@ -35,13 +35,18 @@ type Container struct { func (c *Container) ToMapStr() common.MapStr { m := common.MapStr{ - "id": c.ID, - "name": c.Name, - "image": c.Image, + "container": common.MapStr{ + "id": c.ID, + "name": c.Name, + "image": common.MapStr{ + "name": c.Image, + }, + "runtime": "docker", + }, } if len(c.Labels) > 0 { - m["labels"] = c.Labels + m.Put("docker.container.labels", c.Labels) } return m } diff --git a/metricbeat/module/docker/memory/_meta/data.json b/metricbeat/module/docker/memory/_meta/data.json index 10c6587f43c..8537971aaca 100644 --- a/metricbeat/module/docker/memory/_meta/data.json +++ b/metricbeat/module/docker/memory/_meta/data.json @@ -1,47 +1,64 @@ { "@timestamp": "2017-10-12T08:05:34.853Z", - "beat": { + "agent": { "hostname": "host.example.com", "name": "host.example.com" }, + "container": { + "id": "cc78e58acfda4501105dc4de8e3ae218f2da616213e6e3af168c40103829302a", + "image": { + "name": "metricbeat_elasticsearch" + }, + "name": "metricbeat_elasticsearch_1_df866b3a7b3d", + "runtime": "docker" + }, "docker": { "container": { - "id": "da57ef738524e5a4f6ae17b477f134d30719603db7b96d2c01b6f34010412e66", "labels": { - "build-date": "20170911", - "com_docker_compose_config-hash": "13a74b89a90a6fdcb6bbbc7eb37b7cb0615bdaf8", + "com_docker_compose_config-hash": "e3e0a2c6e5d1afb741bc8b1ecb09cda0395886b7a3e5084a9fd110be46d70f78", "com_docker_compose_container-number": "1", "com_docker_compose_oneoff": "False", "com_docker_compose_project": "metricbeat", "com_docker_compose_service": "elasticsearch", - "com_docker_compose_version": "1.5.0", - "license": "GPLv2", - "maintainer": "Elastic Docker Team \u003cdocker@elastic.co\u003e", - "name": "CentOS Base Image", - "vendor": "CentOS" - }, - "name": "metricbeat_elasticsearch_1" + "com_docker_compose_slug": "df866b3a7b3d50c0802350cbe58ee5b34fa32b7f6ba7fe9e48cde2c12dd0201d", + "com_docker_compose_version": "1.23.1", + "license": "Elastic License", + "org_label-schema_build-date": "20181006", + "org_label-schema_license": "GPLv2", + "org_label-schema_name": "elasticsearch", + "org_label-schema_schema-version": "1.0", + "org_label-schema_url": "https://www.elastic.co/products/elasticsearch", + "org_label-schema_vcs-url": "https://github.com/elastic/elasticsearch-docker", + "org_label-schema_vendor": "Elastic", + "org_label-schema_version": "6.5.1" + } }, "memory": { "fail": { "count": 0 }, - "limit": 4139122688, + "limit": 16571719680, "rss": { - "pct": 0.08521683713860477, - "total": 352722944 + "pct": 0.02170185104168984, + "total": 359636992 }, "usage": { - "max": 370184192, - "pct": 0.08716433389277685, - "total": 360783872 + "max": 521326592, + "pct": 0.029796111057558028, + "total": 493772800 } } }, + "event": { + "dataset": "docker.memory", + "duration": 115000, + "module": "docker" + }, "metricset": { - "host": "/var/run/docker.sock", - "module": "docker", - "name": "memory", - "rtt": 115 + "name": "memory" + }, + "service": { + "address": "/var/run/docker.sock", + "type": "docker" } } \ No newline at end of file diff --git a/metricbeat/module/docker/memory/data.go b/metricbeat/module/docker/memory/data.go index 6504a64b36b..95346ac83d3 100644 --- a/metricbeat/module/docker/memory/data.go +++ b/metricbeat/module/docker/memory/data.go @@ -22,19 +22,14 @@ import ( "github.com/elastic/beats/metricbeat/mb" ) -func eventsMapping(memoryDataList []MemoryData) []common.MapStr { - events := []common.MapStr{} +func eventsMapping(r mb.ReporterV2, memoryDataList []MemoryData) { for _, memoryData := range memoryDataList { - events = append(events, eventMapping(&memoryData)) + eventMapping(r, &memoryData) } - return events } -func eventMapping(memoryData *MemoryData) common.MapStr { - event := common.MapStr{ - mb.ModuleDataKey: common.MapStr{ - "container": memoryData.Container.ToMapStr(), - }, +func eventMapping(r mb.ReporterV2, memoryData *MemoryData) { + fields := common.MapStr{ "fail": common.MapStr{ "count": memoryData.Failcnt, }, @@ -49,5 +44,9 @@ func eventMapping(memoryData *MemoryData) common.MapStr { "max": memoryData.MaxUsage, }, } - return event + + r.Event(mb.Event{ + RootFields: memoryData.Container.ToMapStr(), + MetricSetFields: fields, + }) } diff --git a/metricbeat/module/docker/memory/memory.go b/metricbeat/module/docker/memory/memory.go index 466b6ca38d0..240ac448f0b 100644 --- a/metricbeat/module/docker/memory/memory.go +++ b/metricbeat/module/docker/memory/memory.go @@ -19,12 +19,15 @@ package memory import ( "github.com/docker/docker/client" + "github.com/pkg/errors" - "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/module/docker" ) +var logger = logp.NewLogger("docker.memory") + func init() { mb.Registry.MustAddMetricSet("docker", "memory", New, mb.WithHostParser(docker.HostParser), @@ -60,12 +63,15 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { } // Fetch creates a list of memory events for each container. -func (m *MetricSet) Fetch() ([]common.MapStr, error) { +func (m *MetricSet) Fetch(r mb.ReporterV2) { stats, err := docker.FetchStats(m.dockerClient, m.Module().Config().Timeout) if err != nil { - return nil, err + err = errors.Wrap(err, "failed to get docker stats") + logger.Error(err) + r.Error(err) + return } memoryStats := m.memoryService.getMemoryStatsList(stats, m.dedot) - return eventsMapping(memoryStats), nil + eventsMapping(r, memoryStats) } diff --git a/metricbeat/module/docker/memory/memory_integration_test.go b/metricbeat/module/docker/memory/memory_integration_test.go index cf29fc4faa1..e77284614f0 100644 --- a/metricbeat/module/docker/memory/memory_integration_test.go +++ b/metricbeat/module/docker/memory/memory_integration_test.go @@ -22,24 +22,20 @@ package memory import ( "testing" + "github.com/stretchr/testify/assert" + mbtest "github.com/elastic/beats/metricbeat/mb/testing" ) -/* -// TODO: Enable -func TestFetch(t *testing.T) { - f := mbtest.NewEventsFetcher(t, getConfig()) - event, err := f.Fetch() - if err != nil { - t.Fatal(err) +func TestData(t *testing.T) { + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } - t.Logf(" module : %s metricset : %s event: %+v", f.Module().Name(), f.Name(), event) -}*/ + assert.NotEmpty(t, events) -func TestData(t *testing.T) { - f := mbtest.NewEventsFetcher(t, getConfig()) - err := mbtest.WriteEvents(f, t) - if err != nil { + if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { t.Fatal("write", err) } } diff --git a/metricbeat/module/docker/memory/memory_test.go b/metricbeat/module/docker/memory/memory_test.go index 594665e87a8..77918dbe2c2 100644 --- a/metricbeat/module/docker/memory/memory_test.go +++ b/metricbeat/module/docker/memory/memory_test.go @@ -23,11 +23,11 @@ import ( "time" "github.com/docker/docker/api/types" + "github.com/stretchr/testify/assert" "github.com/elastic/beats/libbeat/common" + mbtest "github.com/elastic/beats/metricbeat/mb/testing" "github.com/elastic/beats/metricbeat/module/docker" - - "github.com/stretchr/testify/assert" ) func TestMemoryService_GetMemoryStats(t *testing.T) { @@ -57,12 +57,17 @@ func TestMemoryService_GetMemoryStats(t *testing.T) { memoryRawStats.Stats = memorystats totalRSS := memorystats.MemoryStats.Stats["total_rss"] - expectedEvent := common.MapStr{ - "_module": common.MapStr{ + expectedRootFields := common.MapStr{ + "container": common.MapStr{ + "id": containerID, + "name": "name1", + "image": common.MapStr{ + "name": "image", + }, + "runtime": "docker", + }, + "docker": common.MapStr{ "container": common.MapStr{ - "id": containerID, - "name": "name1", - "image": "image", "labels": common.MapStr{ "label1": "val1", "label2": common.MapStr{ @@ -72,6 +77,8 @@ func TestMemoryService_GetMemoryStats(t *testing.T) { }, }, }, + } + expectedFields := common.MapStr{ "fail": common.MapStr{ "count": memorystats.MemoryStats.Failcnt, }, @@ -88,11 +95,15 @@ func TestMemoryService_GetMemoryStats(t *testing.T) { } //WHEN rawStats := memoryService.getMemoryStats(memoryRawStats, false) - event := eventMapping(&rawStats) + r := &mbtest.CapturingReporterV2{} + eventMapping(r, &rawStats) + events := r.GetEvents() //THEN - assert.True(t, equalEvent(expectedEvent, event)) - t.Logf(" expected : %v", expectedEvent) - t.Logf(" returned : %v", event) + assert.Empty(t, r.GetErrors()) + assert.NotEmpty(t, events) + event := events[0] + assert.Equal(t, expectedRootFields, event.RootFields) + assert.Equal(t, expectedFields, event.MetricSetFields) } func getMemoryStats(read time.Time, number uint64) types.StatsJSON { diff --git a/metricbeat/module/docker/network/_meta/data.json b/metricbeat/module/docker/network/_meta/data.json index ddb3c827a8a..fba2fae388c 100644 --- a/metricbeat/module/docker/network/_meta/data.json +++ b/metricbeat/module/docker/network/_meta/data.json @@ -1,23 +1,37 @@ { "@timestamp": "2017-10-12T08:05:34.853Z", - "beat": { + "agent": { "hostname": "host.example.com", "name": "host.example.com" }, + "container": { + "id": "cc78e58acfda4501105dc4de8e3ae218f2da616213e6e3af168c40103829302a", + "image": { + "name": "metricbeat_elasticsearch" + }, + "name": "metricbeat_elasticsearch_1_df866b3a7b3d", + "runtime": "docker" + }, "docker": { "container": { - "id": "452523bf833fd9fd1a8425135b720de4cb9b5a32096deac5b52a97e97bb6d16d", "labels": { - "com_docker_compose_config-hash": "68a840a9e1c606ca1026492e50620e139ca342c585f330025a90f39a5fd32538", + "com_docker_compose_config-hash": "e3e0a2c6e5d1afb741bc8b1ecb09cda0395886b7a3e5084a9fd110be46d70f78", "com_docker_compose_container-number": "1", "com_docker_compose_oneoff": "False", "com_docker_compose_project": "metricbeat", "com_docker_compose_service": "elasticsearch", - "com_docker_compose_version": "1.21.0", - "maintainer": "Elastic Docker Team \u003cdocker@elastic.co\u003e", - "org_label-schema_schema-version": "= 1.0 org.label-schema.name=CentOS Base Image org.label-schema.vendor=CentOS org.label-schema.license=GPLv2 org.label-schema.build-date=20180402" - }, - "name": "metricbeat_elasticsearch_1" + "com_docker_compose_slug": "df866b3a7b3d50c0802350cbe58ee5b34fa32b7f6ba7fe9e48cde2c12dd0201d", + "com_docker_compose_version": "1.23.1", + "license": "Elastic License", + "org_label-schema_build-date": "20181006", + "org_label-schema_license": "GPLv2", + "org_label-schema_name": "elasticsearch", + "org_label-schema_schema-version": "1.0", + "org_label-schema_url": "https://www.elastic.co/products/elasticsearch", + "org_label-schema_vcs-url": "https://github.com/elastic/elasticsearch-docker", + "org_label-schema_vendor": "Elastic", + "org_label-schema_version": "6.5.1" + } }, "network": { "in": { @@ -27,10 +41,10 @@ "packets": 0 }, "inbound": { - "bytes": 61694097, + "bytes": 23047, "dropped": 0, "errors": 0, - "packets": 714036 + "packets": 241 }, "interface": "eth0", "out": { @@ -40,17 +54,23 @@ "packets": 0 }, "outbound": { - "bytes": 69114459, + "bytes": 0, "dropped": 0, "errors": 0, - "packets": 713985 + "packets": 0 } } }, + "event": { + "dataset": "docker.network", + "duration": 115000, + "module": "docker" + }, "metricset": { - "host": "/var/run/docker.sock", - "module": "docker", - "name": "network", - "rtt": 115 + "name": "network" + }, + "service": { + "address": "/var/run/docker.sock", + "type": "docker" } -} +} \ No newline at end of file diff --git a/metricbeat/module/docker/network/_meta/fields.yml b/metricbeat/module/docker/network/_meta/fields.yml index 63d06ce7fb8..035047eb091 100644 --- a/metricbeat/module/docker/network/_meta/fields.yml +++ b/metricbeat/module/docker/network/_meta/fields.yml @@ -57,7 +57,6 @@ Total number of outgoing packets. - name: inbound type: group - deprecated: 6.4 description: > Incoming network stats since the container started. fields: @@ -80,7 +79,6 @@ Total number of incoming packets. - name: outbound type: group - deprecated: 6.4 description: > Outgoing network stats since the container started. fields: diff --git a/metricbeat/module/docker/network/data.go b/metricbeat/module/docker/network/data.go index 80273317613..30f6bd34b93 100644 --- a/metricbeat/module/docker/network/data.go +++ b/metricbeat/module/docker/network/data.go @@ -29,19 +29,18 @@ func eventsMapping(r mb.ReporterV2, netsStatsList []NetStats) { } func eventMapping(r mb.ReporterV2, stats *NetStats) { - // Deprecated fields r.Event(mb.Event{ - ModuleFields: common.MapStr{ - "container": stats.Container.ToMapStr(), - }, + RootFields: stats.Container.ToMapStr(), MetricSetFields: common.MapStr{ "interface": stats.NameInterface, + // Deprecated "in": common.MapStr{ "bytes": stats.RxBytes, "dropped": stats.RxDropped, "errors": stats.RxErrors, "packets": stats.RxPackets, }, + // Deprecated "out": common.MapStr{ "bytes": stats.TxBytes, "dropped": stats.TxDropped, diff --git a/metricbeat/module/docker/network/network.go b/metricbeat/module/docker/network/network.go index 67dd2423286..78b908dd47b 100644 --- a/metricbeat/module/docker/network/network.go +++ b/metricbeat/module/docker/network/network.go @@ -19,11 +19,15 @@ package network import ( "github.com/docker/docker/client" + "github.com/pkg/errors" + "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/module/docker" ) +var logger = logp.NewLogger("docker.network") + func init() { mb.Registry.MustAddMetricSet("docker", "network", New, mb.WithHostParser(docker.HostParser), @@ -64,6 +68,8 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { func (m *MetricSet) Fetch(r mb.ReporterV2) { stats, err := docker.FetchStats(m.dockerClient, m.Module().Config().Timeout) if err != nil { + err = errors.Wrap(err, "failed to get docker stats") + logger.Error(err) r.Error(err) return } diff --git a/metricbeat/tests/system/test_docker.py b/metricbeat/tests/system/test_docker.py index 696e4cb3089..2d266d59dd8 100644 --- a/metricbeat/tests/system/test_docker.py +++ b/metricbeat/tests/system/test_docker.py @@ -138,7 +138,7 @@ def test_memory_fields(self): @unittest.skipUnless(metricbeat.INTEGRATION_TESTS, "integration test") def test_network_fields(self): """ - test info fields + test network fields """ self.render_config_template(modules=[{ "name": "docker", From d76edb6a15e9c8c34e6def421b4bb1936a1f8287 Mon Sep 17 00:00:00 2001 From: Andrew Kroh Date: Mon, 25 Feb 2019 10:34:24 -0500 Subject: [PATCH 079/332] Add community_id network flow hash processor (#10746) This adds a processor for computing flow hashes based on the community_id specification. https://github.com/corelight/community-id-spec Examples # IPTables Log Example processors: - dissect: tokenizer: "%{}SRC=%{source.ip} DST=%{destination.ip} %{}PROTO=%{network.transport} SPT=%{source.port} DPT=%{destination.port} " field: "message" target_prefix: "" - dissect: when.equals.network.transport: icmp tokenizer: "%{}TYPE=%{icmp.type} CODE=%{icmp.code} " field: "message" target_prefix: "" - community_id: # Suricata EVE JSON Log Example processors: - community_id: fields: source_ip: json.src_ip source_port: json.src_port destination_ip: json.dest_ip destination_port: json.dest_port transport: json.proto --- CHANGELOG.next.asciidoc | 2 + libbeat/cmd/instance/imports.go | 1 + libbeat/docs/processors-using.asciidoc | 48 +++ libbeat/processors/communityid/communityid.go | 281 ++++++++++++++++++ .../communityid/communityid_test.go | 148 +++++++++ libbeat/processors/communityid/config.go | 49 +++ 6 files changed, 529 insertions(+) create mode 100644 libbeat/processors/communityid/communityid.go create mode 100644 libbeat/processors/communityid/communityid_test.go create mode 100644 libbeat/processors/communityid/config.go diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index c4feb223729..449fe29baf1 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -209,6 +209,8 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Calls to Elasticsearch X-Pack APIs made by Beats won't cause deprecation logs in Elasticsearch logs. {9656}9656[9656] - Add `network` condition to processors for matching IP addresses against CIDRs. {pull}10743[10743] - Add if/then/else support to processors. {pull}10744[10744] +- Add `community_id` processor for computing network flow hashes. {pull}10745[10745] + *Auditbeat* diff --git a/libbeat/cmd/instance/imports.go b/libbeat/cmd/instance/imports.go index 8c9275694df..70cb46a49e7 100644 --- a/libbeat/cmd/instance/imports.go +++ b/libbeat/cmd/instance/imports.go @@ -30,6 +30,7 @@ import ( _ "github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata" _ "github.com/elastic/beats/libbeat/processors/add_locale" _ "github.com/elastic/beats/libbeat/processors/add_process_metadata" + _ "github.com/elastic/beats/libbeat/processors/communityid" _ "github.com/elastic/beats/libbeat/processors/dissect" _ "github.com/elastic/beats/libbeat/processors/dns" _ "github.com/elastic/beats/libbeat/publisher/includes" // Register publisher pipeline modules diff --git a/libbeat/docs/processors-using.asciidoc b/libbeat/docs/processors-using.asciidoc index a2091e84292..e0a7e509924 100644 --- a/libbeat/docs/processors-using.asciidoc +++ b/libbeat/docs/processors-using.asciidoc @@ -196,6 +196,7 @@ The supported processors are: * <> * <> + * <> * <> * <> * <> @@ -699,6 +700,53 @@ is treated as if the field was not set at all. exist in the event are overwritten by keys from the decoded JSON object. The default value is false. +[[community-id]] +=== Community ID Network Flow Hash + +The `community_id` processor computes a network flow hash according to the +https://github.com/corelight/community-id-spec[Community ID Flow Hash +specification]. + +The flow hash is useful for correlating all network events related to a +single flow. For example you can filter on a community ID value and you might +get back the Netflow records from multiple collectors and layer 7 protocol +records from Packetbeat. + +By default the processor is configured to read the flow parameters from the +appropriate Elastic Common Schema (ECS) fields. If you are processing ECS data +then no parameters are required. + +[source,yaml] +---- +processors: + - community_id: +---- + +If the data does not conform to ECS then you can customize the field names +that the processor reads from. You can also change the `target` field which +is where the computed hash is written to. + +[source,yaml] +---- +processors: + - community_id: + fields: + source_ip: my_source_ip + source_port: my_source_port + destination_ip: my_dest_ip + destination_port: my_dest_port + transport: proto + icmp_type: my_icmp_type + icmp_code: my_icmp_code + target: network.community_id +---- + +If the necessary fields are not present in the event then the processor will +silently continue without adding the target field. + +The processor also accepts an optional `seed` parameter that must be a 16-bit +unsigned integer. This value gets incorporated into all generated hashes. + [[drop-event]] === Drop events diff --git a/libbeat/processors/communityid/communityid.go b/libbeat/processors/communityid/communityid.go new file mode 100644 index 00000000000..c51c2b400f5 --- /dev/null +++ b/libbeat/processors/communityid/communityid.go @@ -0,0 +1,281 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package communityid + +import ( + "crypto" + "fmt" + "net" + "strconv" + "strings" + + "github.com/pkg/errors" + + "github.com/elastic/beats/libbeat/beat" + "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/common/flowhash" + "github.com/elastic/beats/libbeat/logp" + "github.com/elastic/beats/libbeat/processors" +) + +const logName = "processor.community_id" + +func init() { + processors.RegisterPlugin("community_id", New) +} + +type processor struct { + config + log *logp.Logger + hasher flowhash.Hasher +} + +// New constructs a new processor that computes community ID flowhash. The +// values that are incorporated into the hash vary by protocol. +// +// TCP / UDP / SCTP: +// IP src / IP dst / IP proto / source port / dest port +// +// ICMPv4 / ICMPv6: +// IP src / IP dst / IP proto / ICMP type + "counter-type" or code +// +// Other IP-borne protocols: +// IP src / IP dst / IP proto +func New(cfg *common.Config) (processors.Processor, error) { + c := defaultConfig() + if err := cfg.Unpack(&c); err != nil { + return nil, errors.Wrap(err, "fail to unpack the community_id configuration") + } + + return newFromConfig(c) +} + +func newFromConfig(c config) (*processor, error) { + hasher := flowhash.CommunityID + if c.Seed != 0 { + hasher = flowhash.NewCommunityID(c.Seed, flowhash.Base64Encoding, crypto.SHA1) + } + + return &processor{ + config: c, + log: logp.NewLogger(logName), + hasher: hasher, + }, nil +} + +func (p *processor) String() string { + return fmt.Sprintf("community_id=[target=%s, fields=["+ + "source_ip=%v, source_port=%v, "+ + "destination_ip=%v, destination_port=%v, "+ + "transport_protocol=%v, "+ + "icmp_type=%v, icmp_code=%v], seed=%d]", + p.Target, p.Fields.SourceIP, p.Fields.SourcePort, + p.Fields.DestinationIP, p.Fields.DestinationPort, + p.Fields.TransportProtocol, p.Fields.ICMPType, p.Fields.ICMPCode, + p.Seed) +} + +func (p *processor) Run(event *beat.Event) (*beat.Event, error) { + // If already set then bail out. + _, err := event.GetValue(p.Target) + if err == nil { + return event, nil + } + + flow := p.buildFlow(event) + if flow == nil { + return event, nil + } + + id := p.hasher.Hash(*flow) + _, err = event.PutValue(p.Target, id) + return event, err +} + +func (p *processor) buildFlow(event *beat.Event) *flowhash.Flow { + var flow flowhash.Flow + + // source ip + v, err := event.GetValue(p.Fields.SourceIP) + if err != nil { + return nil + } + var ok bool + flow.SourceIP, ok = tryToIP(v) + if !ok { + return nil + } + + // destination ip + v, err = event.GetValue(p.Fields.DestinationIP) + if err != nil { + return nil + } + flow.DestinationIP, ok = tryToIP(v) + if !ok { + return nil + } + + // protocol + v, err = event.GetValue(p.Fields.TransportProtocol) + if err != nil { + return nil + } + flow.Protocol, ok = tryToIANATransportProtocol(v) + if !ok { + return nil + } + + switch flow.Protocol { + case tcpProtocol, udpProtocol, sctpProtocol: + // source port + v, err = event.GetValue(p.Fields.SourcePort) + if err != nil { + return nil + } + flow.SourcePort, ok = tryToUint16(v) + if !ok || flow.SourcePort == 0 { + return nil + } + + // destination port + v, err = event.GetValue(p.Fields.DestinationPort) + if err != nil { + return nil + } + flow.DestinationPort, ok = tryToUint16(v) + if !ok || flow.DestinationPort == 0 { + return nil + } + case icmpProtocol, icmpIPv6Protocol: + // Return a flow even if the ICMP type/code is unavailable. + if t, c, ok := getICMPTypeCode(event, p.Fields.ICMPType, p.Fields.ICMPCode); ok { + flow.ICMP.Type, flow.ICMP.Code = t, c + } + } + + return &flow +} + +func getICMPTypeCode(event *beat.Event, typeField, codeField string) (t, c uint8, ok bool) { + v, err := event.GetValue(typeField) + if err != nil { + return 0, 0, false + } + t, ok = tryToUint8(v) + if !ok { + return 0, 0, false + } + + v, err = event.GetValue(codeField) + if err != nil { + return 0, 0, false + } + c, ok = tryToUint8(v) + if !ok { + return 0, 0, false + } + return t, c, true +} + +func tryToIP(from interface{}) (net.IP, bool) { + switch v := from.(type) { + case net.IP: + return v, true + case string: + ip := net.ParseIP(v) + return ip, ip != nil + default: + return nil, false + } +} + +// tryToUint16 tries to coerce the given interface to an uint16. On success it +// returns the int value and true. +func tryToUint16(from interface{}) (uint16, bool) { + switch v := from.(type) { + case int: + return uint16(v), true + case int8: + return uint16(v), true + case int16: + return uint16(v), true + case int32: + return uint16(v), true + case int64: + return uint16(v), true + case uint: + return uint16(v), true + case uint8: + return uint16(v), true + case uint16: + return v, true + case uint32: + return uint16(v), true + case uint64: + return uint16(v), true + case string: + num, err := strconv.ParseUint(v, 0, 16) + if err != nil { + return 0, false + } + return uint16(num), true + default: + return 0, false + } +} + +func tryToUint8(from interface{}) (uint8, bool) { + to, ok := tryToUint16(from) + return uint8(to), ok +} + +const ( + icmpProtocol uint8 = 1 + igmpProtocol uint8 = 2 + tcpProtocol uint8 = 6 + udpProtocol uint8 = 17 + icmpIPv6Protocol uint8 = 58 + sctpProtocol uint8 = 132 +) + +var transports = map[string]uint8{ + "icmp": icmpProtocol, + "igmp": igmpProtocol, + "tcp": tcpProtocol, + "udp": udpProtocol, + "ipv6-icmp": icmpIPv6Protocol, + "icmpv6": icmpIPv6Protocol, + "sctp": sctpProtocol, +} + +func tryToIANATransportProtocol(from interface{}) (uint8, bool) { + switch v := from.(type) { + case string: + transport, found := transports[v] + if !found { + transport, found = transports[strings.ToLower(v)] + } + if found { + return transport, found + } + } + + // Allow raw protocol numbers. + return tryToUint8(from) +} diff --git a/libbeat/processors/communityid/communityid_test.go b/libbeat/processors/communityid/communityid_test.go new file mode 100644 index 00000000000..40cccc28b41 --- /dev/null +++ b/libbeat/processors/communityid/communityid_test.go @@ -0,0 +1,148 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package communityid + +import ( + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/elastic/beats/libbeat/beat" + "github.com/elastic/beats/libbeat/common" +) + +func TestNewDefaults(t *testing.T) { + _, err := New(common.NewConfig()) + if err != nil { + t.Fatal(err) + } +} + +func TestRun(t *testing.T) { + // From flowhash package testdata. + // 1:LQU9qZlK+B5F3KDmev6m5PMibrg= | 128.232.110.120 66.35.250.204 6 34855 80 + evt := func() common.MapStr { + return common.MapStr{ + "source": common.MapStr{ + "ip": "128.232.110.120", + "port": 34855, + }, + "destination": common.MapStr{ + "ip": "66.35.250.204", + "port": 80, + }, + "network": common.MapStr{"transport": "TCP"}, + } + } + + t.Run("valid", func(t *testing.T) { + testProcessor(t, 0, evt(), "1:LQU9qZlK+B5F3KDmev6m5PMibrg=") + }) + + t.Run("seed", func(t *testing.T) { + testProcessor(t, 123, evt(), "1:hTSGlFQnR58UCk+NfKRZzA32dPg=") + }) + + t.Run("invalid source IP", func(t *testing.T) { + e := evt() + e.Put("source.ip", 2162716280) + testProcessor(t, 0, e, nil) + }) + + t.Run("invalid source port", func(t *testing.T) { + e := evt() + e.Put("source.port", 0) + testProcessor(t, 0, e, nil) + }) + + t.Run("invalid destination IP", func(t *testing.T) { + e := evt() + e.Put("destination.ip", "308.111.1.2.3") + testProcessor(t, 0, e, nil) + }) + + t.Run("invalid destination port", func(t *testing.T) { + e := evt() + e.Put("source.port", nil) + testProcessor(t, 0, e, nil) + }) + + t.Run("unknown protocol", func(t *testing.T) { + e := evt() + e.Put("network.transport", "xyz") + testProcessor(t, 0, e, nil) + }) + + t.Run("icmp", func(t *testing.T) { + e := evt() + e.Put("network.transport", "icmp") + e.Put("icmp.type", 3) + e.Put("icmp.code", 3) + testProcessor(t, 0, e, "1:KF3iG9XD24nhlSy4r1TcYIr5mfE=") + }) + + t.Run("icmp without typecode", func(t *testing.T) { + // Hashes src_ip + dst_ip + protocol with zero value typecode. + e := evt() + e.Put("network.transport", "icmp") + testProcessor(t, 0, e, "1:PAE85ZfR4SbNXl5URZwWYyDehwU=") + }) + + t.Run("igmp", func(t *testing.T) { + e := evt() + e.Delete("source.port") + e.Delete("destination.port") + e.Put("network.transport", "igmp") + testProcessor(t, 0, e, "1:D3t8Q1aFA6Ev0A/AO4i9PnU3AeI=") + }) + + t.Run("protocol number as string", func(t *testing.T) { + e := evt() + e.Delete("source.port") + e.Delete("destination.port") + e.Put("network.transport", "2") + testProcessor(t, 0, e, "1:D3t8Q1aFA6Ev0A/AO4i9PnU3AeI=") + }) + + t.Run("protocol number", func(t *testing.T) { + e := evt() + e.Delete("source.port") + e.Delete("destination.port") + e.Put("network.transport", 2) + testProcessor(t, 0, e, "1:D3t8Q1aFA6Ev0A/AO4i9PnU3AeI=") + }) +} + +func testProcessor(t testing.TB, seed uint16, fields common.MapStr, expectedHash interface{}) { + t.Helper() + + c := defaultConfig() + c.Seed = seed + p, err := newFromConfig(c) + if err != nil { + t.Fatal(err) + } + + out, err := p.Run(&beat.Event{Fields: fields}) + if err != nil { + t.Fatal(err) + } + + id, _ := out.GetValue(c.Target) + assert.EqualValues(t, expectedHash, id) +} diff --git a/libbeat/processors/communityid/config.go b/libbeat/processors/communityid/config.go new file mode 100644 index 00000000000..b618055e93f --- /dev/null +++ b/libbeat/processors/communityid/config.go @@ -0,0 +1,49 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package communityid + +type config struct { + Fields fieldsConfig `config:"fields"` + Target string `config:"target"` + Seed uint16 `config:"seed"` +} + +type fieldsConfig struct { + SourceIP string `config:"source_ip"` + SourcePort string `config:"source_port"` + DestinationIP string `config:"destination_ip"` + DestinationPort string `config:"destination_port"` + TransportProtocol string `config:"transport"` + ICMPType string `config:"icmp_type"` + ICMPCode string `config:"icmp_code"` +} + +func defaultConfig() config { + return config{ + Fields: fieldsConfig{ + SourceIP: "source.ip", + SourcePort: "source.port", + DestinationIP: "destination.ip", + DestinationPort: "destination.port", + TransportProtocol: "network.transport", + ICMPType: "icmp.type", + ICMPCode: "icmp.code", + }, + Target: "network.community_id", + } +} From d6172c2fe8285b387229458994a5b479e163590d Mon Sep 17 00:00:00 2001 From: Andrew Kroh Date: Mon, 25 Feb 2019 13:11:49 -0500 Subject: [PATCH 080/332] Set event.category and event.kind for Suricata (#10882) * Set event.category and event.kind for Suricata Set `event.category: network_traffic`. And conditionally set event.kind based on the `event_type` field. Use `alert` for suricata alerts and `event` for everything else. Also skip geoip if the event has already been enriched (like if the data went through Logstash first). * Handle event_type:stats as event.kind:metric --- CHANGELOG.next.asciidoc | 1 + .../module/suricata/eve/ingest/pipeline.json | 8 ++- .../eve/test/eve-alerts.log-expected.json | 60 ++++++++++++------- .../eve/test/eve-small.log-expected.json | 11 +++- 4 files changed, 55 insertions(+), 25 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 449fe29baf1..61c87ca1364 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -250,6 +250,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Add ISO8601 timestamp support in syslog metricset. {issue}8716[8716] {pull}10736[10736] - Add more info to message logged when a duplicated symlink file is found {pull}10845[10845] - Add Netflow module to enrich flow events with geoip data. {pull}10877[10877] +- Set `event.category: network_traffic` for Suricata. {pull}10882[10882] *Heartbeat* diff --git a/x-pack/filebeat/module/suricata/eve/ingest/pipeline.json b/x-pack/filebeat/module/suricata/eve/ingest/pipeline.json index 67ec81b85a5..e1fcf7c0c6e 100644 --- a/x-pack/filebeat/module/suricata/eve/ingest/pipeline.json +++ b/x-pack/filebeat/module/suricata/eve/ingest/pipeline.json @@ -227,6 +227,7 @@ }, { "geoip": { + "if": "ctx.source?.geo == null", "field": "source.ip", "target_field": "source.geo", "ignore_missing": true @@ -234,6 +235,7 @@ }, { "geoip": { + "if": "ctx.destination?.geo == null", "field": "destination.ip", "target_field": "destination.geo", "ignore_missing": true @@ -254,9 +256,9 @@ } }, { - "set": { - "field": "event.kind", - "value": "event" + "script": { + "lang": "painless", + "source": "def t = ctx.suricata?.eve?.event_type; if (t == \"stats\") {\n ctx['event']['kind'] = \"metric\";\n} else if (t == \"alert\") {\n ctx['event']['kind'] = \"alert\";\n ctx['event']['category'] = \"network_traffic\";\n} else {\n ctx['event']['kind'] = \"event\";\n ctx['event']['category'] = \"network_traffic\";\n}" } } ], diff --git a/x-pack/filebeat/module/suricata/eve/test/eve-alerts.log-expected.json b/x-pack/filebeat/module/suricata/eve/test/eve-alerts.log-expected.json index 346691a4a2c..64f62fcb7ec 100644 --- a/x-pack/filebeat/module/suricata/eve/test/eve-alerts.log-expected.json +++ b/x-pack/filebeat/module/suricata/eve/test/eve-alerts.log-expected.json @@ -14,10 +14,11 @@ "destination.packets": 3, "destination.port": 80, "ecs.version": "1.0.0-beta2", + "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 223000000, "event.end": "2018-10-03T14:42:44.836Z", - "event.kind": "event", + "event.kind": "alert", "event.module": "suricata", "event.outcome": "allowed", "event.severity": 2, @@ -75,10 +76,11 @@ "destination.packets": 3, "destination.port": 80, "ecs.version": "1.0.0-beta2", + "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 244000000, "event.end": "2018-10-03T16:16:26.711Z", - "event.kind": "event", + "event.kind": "alert", "event.module": "suricata", "event.outcome": "allowed", "event.severity": 2, @@ -136,10 +138,11 @@ "destination.packets": 3, "destination.port": 80, "ecs.version": "1.0.0-beta2", + "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 233000000, "event.end": "2018-10-03T16:44:50.813Z", - "event.kind": "event", + "event.kind": "alert", "event.module": "suricata", "event.outcome": "allowed", "event.severity": 2, @@ -197,10 +200,11 @@ "destination.packets": 3, "destination.port": 80, "ecs.version": "1.0.0-beta2", + "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 231000000, "event.end": "2018-10-03T16:45:09.267Z", - "event.kind": "event", + "event.kind": "alert", "event.module": "suricata", "event.outcome": "allowed", "event.severity": 2, @@ -258,10 +262,11 @@ "destination.packets": 3, "destination.port": 80, "ecs.version": "1.0.0-beta2", + "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 229000000, "event.end": "2018-10-03T16:45:34.481Z", - "event.kind": "event", + "event.kind": "alert", "event.module": "suricata", "event.outcome": "allowed", "event.severity": 2, @@ -319,10 +324,11 @@ "destination.packets": 3, "destination.port": 80, "ecs.version": "1.0.0-beta2", + "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 301000000, "event.end": "2018-10-03T17:02:38.900Z", - "event.kind": "event", + "event.kind": "alert", "event.module": "suricata", "event.outcome": "allowed", "event.severity": 2, @@ -380,10 +386,11 @@ "destination.packets": 3, "destination.port": 80, "ecs.version": "1.0.0-beta2", + "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 85000000, "event.end": "2018-10-04T09:34:59.009Z", - "event.kind": "event", + "event.kind": "alert", "event.module": "suricata", "event.outcome": "allowed", "event.severity": 3, @@ -441,10 +448,11 @@ "destination.packets": 3, "destination.port": 80, "ecs.version": "1.0.0-beta2", + "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 242000000, "event.end": "2018-10-04T09:34:59.168Z", - "event.kind": "event", + "event.kind": "alert", "event.module": "suricata", "event.outcome": "allowed", "event.severity": 3, @@ -502,10 +510,11 @@ "destination.packets": 5, "destination.port": 80, "ecs.version": "1.0.0-beta2", + "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 362000000, "event.end": "2018-10-04T09:34:59.288Z", - "event.kind": "event", + "event.kind": "alert", "event.module": "suricata", "event.outcome": "allowed", "event.severity": 3, @@ -563,10 +572,11 @@ "destination.packets": 62, "destination.port": 80, "ecs.version": "1.0.0-beta2", + "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 365000000, "event.end": "2018-10-04T09:34:59.289Z", - "event.kind": "event", + "event.kind": "alert", "event.module": "suricata", "event.outcome": "allowed", "event.severity": 3, @@ -624,10 +634,11 @@ "destination.packets": 98, "destination.port": 80, "ecs.version": "1.0.0-beta2", + "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 432000000, "event.end": "2018-10-04T09:34:59.356Z", - "event.kind": "event", + "event.kind": "alert", "event.module": "suricata", "event.outcome": "allowed", "event.severity": 3, @@ -685,10 +696,11 @@ "destination.packets": 221, "destination.port": 80, "ecs.version": "1.0.0-beta2", + "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 532000000, "event.end": "2018-10-04T09:34:59.456Z", - "event.kind": "event", + "event.kind": "alert", "event.module": "suricata", "event.outcome": "allowed", "event.severity": 3, @@ -746,10 +758,11 @@ "destination.packets": 67, "destination.port": 80, "ecs.version": "1.0.0-beta2", + "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 821000000, "event.end": "2018-10-04T09:34:59.747Z", - "event.kind": "event", + "event.kind": "alert", "event.module": "suricata", "event.outcome": "allowed", "event.severity": 3, @@ -807,10 +820,11 @@ "destination.packets": 119, "destination.port": 80, "ecs.version": "1.0.0-beta2", + "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 1027000000, "event.end": "2018-10-04T09:34:59.953Z", - "event.kind": "event", + "event.kind": "alert", "event.module": "suricata", "event.outcome": "allowed", "event.severity": 3, @@ -868,10 +882,11 @@ "destination.packets": 253, "destination.port": 80, "ecs.version": "1.0.0-beta2", + "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 1324000000, "event.end": "2018-10-04T09:35:00.250Z", - "event.kind": "event", + "event.kind": "alert", "event.module": "suricata", "event.outcome": "allowed", "event.severity": 3, @@ -929,10 +944,11 @@ "destination.packets": 314, "destination.port": 80, "ecs.version": "1.0.0-beta2", + "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 1475000000, "event.end": "2018-10-04T09:35:00.401Z", - "event.kind": "event", + "event.kind": "alert", "event.module": "suricata", "event.outcome": "allowed", "event.severity": 3, @@ -990,10 +1006,11 @@ "destination.packets": 588, "destination.port": 80, "ecs.version": "1.0.0-beta2", + "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 1850000000, "event.end": "2018-10-04T09:35:00.776Z", - "event.kind": "event", + "event.kind": "alert", "event.module": "suricata", "event.outcome": "allowed", "event.severity": 3, @@ -1051,10 +1068,11 @@ "destination.packets": 591, "destination.port": 80, "ecs.version": "1.0.0-beta2", + "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 1971000000, "event.end": "2018-10-04T09:35:00.897Z", - "event.kind": "event", + "event.kind": "alert", "event.module": "suricata", "event.outcome": "allowed", "event.severity": 3, @@ -1112,10 +1130,11 @@ "destination.packets": 979, "destination.port": 80, "ecs.version": "1.0.0-beta2", + "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 2436000000, "event.end": "2018-10-04T09:35:01.362Z", - "event.kind": "event", + "event.kind": "alert", "event.module": "suricata", "event.outcome": "allowed", "event.severity": 3, @@ -1172,10 +1191,11 @@ "destination.packets": 1079, "destination.port": 80, "ecs.version": "1.0.0-beta2", + "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 2649000000, "event.end": "2018-10-04T09:35:01.575Z", - "event.kind": "event", + "event.kind": "alert", "event.module": "suricata", "event.outcome": "allowed", "event.severity": 3, diff --git a/x-pack/filebeat/module/suricata/eve/test/eve-small.log-expected.json b/x-pack/filebeat/module/suricata/eve/test/eve-small.log-expected.json index f7aa462b334..82c1fd66725 100644 --- a/x-pack/filebeat/module/suricata/eve/test/eve-small.log-expected.json +++ b/x-pack/filebeat/module/suricata/eve/test/eve-small.log-expected.json @@ -4,6 +4,7 @@ "destination.ip": "192.168.253.112", "destination.port": 22, "ecs.version": "1.0.0-beta2", + "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.end": "2018-07-05T19:01:09.820Z", "event.kind": "event", @@ -33,10 +34,11 @@ "destination.packets": 3, "destination.port": 443, "ecs.version": "1.0.0-beta2", + "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 1251000000, "event.end": "2018-07-05T19:07:20.910Z", - "event.kind": "event", + "event.kind": "alert", "event.module": "suricata", "event.outcome": "allowed", "event.severity": 1, @@ -76,6 +78,7 @@ "destination.ip": "192.168.86.28", "destination.port": 63963, "ecs.version": "1.0.0-beta2", + "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.end": "2018-07-05T19:43:47.690Z", "event.kind": "event", @@ -116,6 +119,7 @@ "destination.ip": "192.168.86.85", "destination.port": 56118, "ecs.version": "1.0.0-beta2", + "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.end": "2018-07-05T19:44:33.222Z", "event.kind": "event", @@ -164,6 +168,7 @@ "destination.ip": "192.168.86.85", "destination.port": 39464, "ecs.version": "1.0.0-beta2", + "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.end": "2018-07-05T19:51:20.213Z", "event.kind": "event", @@ -194,7 +199,7 @@ "ecs.version": "1.0.0-beta2", "event.dataset": "suricata.eve", "event.end": "2018-07-05T19:51:23.009Z", - "event.kind": "event", + "event.kind": "metric", "event.module": "suricata", "fileset.name": "eve", "input.type": "log", @@ -330,6 +335,7 @@ "destination.ip": "17.142.164.13", "destination.port": 443, "ecs.version": "1.0.0-beta2", + "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.end": "2018-07-05T19:51:50.666Z", "event.kind": "event", @@ -363,6 +369,7 @@ "destination.packets": 0, "destination.port": 547, "ecs.version": "1.0.0-beta2", + "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 30548000000, "event.end": "2018-07-05T19:51:54.001Z", From 897936e77f5c7453410f0e6c10d5f2ad06dce933 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Mon, 25 Feb 2019 10:19:11 -0800 Subject: [PATCH 081/332] Remove broken link to docker source code (#10833) * Remove link to old repo for docker source * Remove dockergithub attribute --- libbeat/docs/shared-beats-attributes.asciidoc | 1 - libbeat/docs/shared-docker.asciidoc | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/libbeat/docs/shared-beats-attributes.asciidoc b/libbeat/docs/shared-beats-attributes.asciidoc index 88f1d2d6aba..e52a25e11a7 100644 --- a/libbeat/docs/shared-beats-attributes.asciidoc +++ b/libbeat/docs/shared-beats-attributes.asciidoc @@ -14,7 +14,6 @@ :monitoringdoc: https://www.elastic.co/guide/en/elastic-stack-overview/{doc-branch} :dashboards: https://artifacts.elastic.co/downloads/beats/beats-dashboards/beats-dashboards-{stack-version}.zip :dockerimage: docker.elastic.co/beats/{beatname_lc}:{version} -:dockergithub: https://github.com/elastic/beats-docker/tree/{doc-branch} :dockerconfig: https://raw.githubusercontent.com/elastic/beats/{doc-branch}/deploy/docker/{beatname_lc}.docker.yml :downloads: https://artifacts.elastic.co/downloads/beats :ES-version: {stack-version} diff --git a/libbeat/docs/shared-docker.asciidoc b/libbeat/docs/shared-docker.asciidoc index 43c3dc1d54c..eda2b026e27 100644 --- a/libbeat/docs/shared-docker.asciidoc +++ b/libbeat/docs/shared-docker.asciidoc @@ -5,8 +5,7 @@ Docker images for {beatname_uc} are available from the Elastic Docker registry. The base image is https://hub.docker.com/_/centos/[centos:7]. A list of all published Docker images and tags is available at -https://www.docker.elastic.co[www.docker.elastic.co]. The source code is in -{dockergithub}[GitHub]. +https://www.docker.elastic.co[www.docker.elastic.co]. These images are free to use under the Elastic license. They contain open source and free commercial features and access to paid commercial features. From a89b13f20669588edef7b203771958620129561f Mon Sep 17 00:00:00 2001 From: Jaime Soriano Pastor Date: Mon, 25 Feb 2019 19:34:06 +0100 Subject: [PATCH 082/332] Don't try to emit docker autodiscover event with missing container (#10928) --- libbeat/autodiscover/providers/docker/docker.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libbeat/autodiscover/providers/docker/docker.go b/libbeat/autodiscover/providers/docker/docker.go index e4e3ba18e77..dea344c3df7 100644 --- a/libbeat/autodiscover/providers/docker/docker.go +++ b/libbeat/autodiscover/providers/docker/docker.go @@ -191,6 +191,10 @@ func (d *Provider) generateMetaDocker(event bus.Event) (*docker.Container, *dock func (d *Provider) emitContainer(event bus.Event, flag string) { container, meta := d.generateMetaDocker(event) + if container == nil || meta == nil { + return + } + var host string if len(container.IPAddresses) > 0 { host = container.IPAddresses[0] From 2cdb5b193da44badcb752c7ecee8080405bd011d Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Mon, 25 Feb 2019 10:48:24 -0800 Subject: [PATCH 083/332] Add links to Logstash docs about working with Filebeat modules (#10859) --- filebeat/docs/modules-getting-started.asciidoc | 6 +++++- libbeat/docs/shared-logstash-config.asciidoc | 12 +++++++++--- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/filebeat/docs/modules-getting-started.asciidoc b/filebeat/docs/modules-getting-started.asciidoc index a3733f303d3..4cf4e52208e 100644 --- a/filebeat/docs/modules-getting-started.asciidoc +++ b/filebeat/docs/modules-getting-started.asciidoc @@ -100,7 +100,7 @@ load the ingest pipelines manually. To do this, run the `setup` command with the `--pipelines` option specified. If you used the <> command to enable modules in the `modules.d` directory, also specify the `--modules` flag. For example, the following command -loads the ingest pipelines used by all metricsets enabled in the system, nginx, +loads the ingest pipelines used by all filesets enabled in the system, nginx, and mysql modules: // override modulename attribute so it works with the --modules option @@ -134,5 +134,9 @@ and mysql modules: PS > .{backslash}{beatname_lc}.exe setup --pipelines --modules {modulename} ---- +TIP: If you're loading ingest pipelines manually because you want to send events +to {ls}, also see +{logstash-ref}/filebeat-modules.html[Working with {beatname_uc} modules]. + :has_module_steps!: :modulename!: diff --git a/libbeat/docs/shared-logstash-config.asciidoc b/libbeat/docs/shared-logstash-config.asciidoc index e849f619504..68d05155c56 100644 --- a/libbeat/docs/shared-logstash-config.asciidoc +++ b/libbeat/docs/shared-logstash-config.asciidoc @@ -22,7 +22,7 @@ the {stack} getting started tutorial. Also see the documentation for the If you want to use {ls} to perform additional processing on the data collected by {beatname_uc}, you need to configure {beatname_uc} to use {ls}. -To do this, you edit the {beatname_uc} configuration file to disable the Elasticsearch +To do this, you edit the {beatname_uc} configuration file to disable the {es} output by commenting it out and enable the {ls} output by uncommenting the logstash section: @@ -36,8 +36,14 @@ output.logstash: The `hosts` option specifies the {ls} server and the port (`5044`) where {ls} is configured to listen for incoming Beats connections. -For this configuration, you must <> -because the options for auto loading the template are only available for the Elasticsearch output. +For this configuration, you must <> +because the options for auto loading the template are only available for the {es} output. + +ifeval::["{beatname_lc}"=="filebeat"] +Want to use <> with {ls}? You need to do +some extra setup. For more information, see +{logstash-ref}/filebeat-modules.html[Working with {beatname_uc} modules]. +endif::[] ifndef::win-only[] ifndef::apm-server[] From 5d4dc247e7d105717676dd51927ce5628e0e9eb7 Mon Sep 17 00:00:00 2001 From: kaiyan-sheng Date: Mon, 25 Feb 2019 13:02:07 -0600 Subject: [PATCH 084/332] Add SQS metricset into AWS metricbeat module (#10684) * Initial PR for adding SQS metricset * Address comments in sqs metricset * Remove regionName as input param * Update docs * Remove count from metric names * Remove duplicate functions from rebase --- CHANGELOG.next.asciidoc | 1 + metricbeat/docs/fields.asciidoc | 97 ++++++++++ metricbeat/docs/modules/aws.asciidoc | 41 ++-- metricbeat/docs/modules/aws/sqs.asciidoc | 23 +++ metricbeat/docs/modules_list.asciidoc | 3 +- x-pack/metricbeat/include/list.go | 1 + x-pack/metricbeat/metricbeat.reference.yml | 1 + x-pack/metricbeat/module/aws/_meta/config.yml | 1 + .../metricbeat/module/aws/_meta/docs.asciidoc | 36 ++-- x-pack/metricbeat/module/aws/fields.go | 2 +- .../metricbeat/module/aws/sqs/_meta/data.json | 39 ++++ .../module/aws/sqs/_meta/docs.asciidoc | 12 ++ .../module/aws/sqs/_meta/fields.yml | 42 ++++ x-pack/metricbeat/module/aws/sqs/data.go | 30 +++ x-pack/metricbeat/module/aws/sqs/sqs.go | 179 ++++++++++++++++++ .../module/aws/sqs/sqs_integration_test.go | 65 +++++++ x-pack/metricbeat/modules.d/aws.yml.disabled | 1 + 17 files changed, 536 insertions(+), 38 deletions(-) create mode 100644 metricbeat/docs/modules/aws/sqs.asciidoc create mode 100644 x-pack/metricbeat/module/aws/sqs/_meta/data.json create mode 100644 x-pack/metricbeat/module/aws/sqs/_meta/docs.asciidoc create mode 100644 x-pack/metricbeat/module/aws/sqs/_meta/fields.yml create mode 100644 x-pack/metricbeat/module/aws/sqs/data.go create mode 100644 x-pack/metricbeat/module/aws/sqs/sqs.go create mode 100644 x-pack/metricbeat/module/aws/sqs/sqs_integration_test.go diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 61c87ca1364..168c8eb9f35 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -305,6 +305,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Add overview dashboard to Zookeeper Metricbeat module {pull}10379[10379] - Add Consul Metricbeat module with Agent Metricset {pull}8631[8631] - Add filters and pie chart for AWS EC2 dashboard. {pull}10596[10596] +- Add AWS SQS metricset. {pull}10684[10684] {issue}10053[10053] *Packetbeat* diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index 53da6d070ff..00080797d30 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -1083,6 +1083,103 @@ type: integer The state of the instance (pending | running | shutting-down | terminated | stopping | stopped). +-- + +[float] +== sqs fields + +`sqs` contains the metrics that were scraped from AWS CloudWatch which contains monitoring metrics sent by AWS SQS. + + + +*`aws.sqs.oldest_message_age.sec`*:: ++ +-- +type: long + +The approximate age of the oldest non-deleted message in the queue. + + +-- + +*`aws.sqs.message.delayed`*:: ++ +-- +type: long + +TThe number of messages in the queue that are delayed and not available for reading immediately. + + +-- + +*`aws.sqs.message.not_visible`*:: ++ +-- +type: long + +The number of messages that are in flight. + + +-- + +*`aws.sqs.message.visible`*:: ++ +-- +type: long + +The number of messages available for retrieval from the queue. + + +-- + +*`aws.sqs.message.deleted`*:: ++ +-- +type: long + +The number of messages deleted from the queue. + + +-- + +*`aws.sqs.message.received`*:: ++ +-- +type: long + +The number of messages returned by calls to the ReceiveMessage action. + + +-- + +*`aws.sqs.message.sent`*:: ++ +-- +type: long + +The number of messages added to a queue. + + +-- + +*`aws.sqs.empty_receives`*:: ++ +-- +type: long + +The number of ReceiveMessage API calls that did not return a message. + + +-- + +*`aws.sqs.sent_message_size.bytes`*:: ++ +-- +type: scaled_float + +The size of messages added to a queue. + + -- [[exported-fields-beat]] diff --git a/metricbeat/docs/modules/aws.asciidoc b/metricbeat/docs/modules/aws.asciidoc index f6c5f0a40d2..8eae60fd964 100644 --- a/metricbeat/docs/modules/aws.asciidoc +++ b/metricbeat/docs/modules/aws.asciidoc @@ -9,7 +9,7 @@ This module periodically fetches monitoring metrics from AWS Cloudwatch using https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html[GetMetricData API] for running EC2 instances. Note: extra AWS charges on GetMetricData API requests will be generated by this module. -The default metricset is `ec2`. +The default metricsets are `ec2` and `sqs`. [float] === Module-specific configuration notes @@ -35,20 +35,6 @@ aws> sts get-session-token --serial-number arn:aws:iam::1234:mfa/your-email@exam Specific permissions needs to be added into the IAM user's policy to authorize Metricbeat to collect AWS monitoring metrics. Please see documentation under each metricset for required permissions. -By default, Amazon EC2 sends metric data to CloudWatch every 5 minutes. With this basic monitoring, `period` in aws module -configuration should be larger or equal than `300s`. If `period` is set to be less than `300s`, the same cloudwatch metrics -will be collected more than once which will cause extra fees without getting more granular metrics. For example, in `US East (N. Virginia)` region, it costs -$0.01/1000 metrics requested using GetMetricData. Please see https://aws.amazon.com/cloudwatch/pricing/[AWS Cloudwatch Pricing] -for more details. To avoid unnecessary charges, `period` is preferred to be set to `300s` or multiples of `300s`, such as -`600s` and `900s`. - -For more granular monitoring data you can enable detailed monitoring on the instance to get metrics every 1 minute. Please see -https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch-new.html[Enabling Detailed Monitoring] for instructions -on how to enable detailed monitoring. With detailed monitoring enabled, `period` in aws module configuration can be any number -larger than `60s`. Since AWS sends metric data to CloudWatch in 1-minute periods, setting metricbeat module `period` less -than `60s` will cause extra API requests which means extra charges on AWS. To avoid unnecessary charges, `period` is -preferred to be set to `60s` or multiples of `60s`, such as `120s` and `180s`. - Here is an example of aws metricbeat module configuration: [source,yaml] @@ -56,15 +42,29 @@ Here is an example of aws metricbeat module configuration: metricbeat.modules: - module: aws period: 300s - metricsets: ["ec2"] + metricsets: + - "ec2" + - "sqs" access_key_id: '${AWS_ACCESS_KEY_ID}' secret_access_key: '${AWS_SECRET_ACCESS_KEY}' session_token: '${AWS_SESSION_TOKEN}' default_region: '${AWS_REGION:us-west-1}' ---- -This module only collects metrics for EC2 instances that are in `running` state and exist more than 10 minutes to make sure -there are monitoring metrics exist in Cloudwatch already. +By default, Amazon EC2 sends metric data to CloudWatch every 5 minutes. With this basic monitoring, `period` in aws module +configuration should be larger or equal than `300s`. If `period` is set to be less than `300s`, the same cloudwatch metrics +will be collected more than once which will cause extra fees without getting more granular metrics. For example, in `US East (N. Virginia)` region, it costs +$0.01/1000 metrics requested using GetMetricData. Please see https://aws.amazon.com/cloudwatch/pricing/[AWS Cloudwatch Pricing] +for more details. To avoid unnecessary charges, `period` is preferred to be set to `300s` or multiples of `300s`, such as +`600s` and `900s`. For more granular monitoring data you can enable detailed monitoring on the instance to get metrics every 1 minute. Please see +https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch-new.html[Enabling Detailed Monitoring] for instructions +on how to enable detailed monitoring. With detailed monitoring enabled, `period` in aws module configuration can be any number +larger than `60s`. Since AWS sends metric data to CloudWatch in 1-minute periods, setting metricbeat module `period` less +than `60s` will cause extra API requests which means extra charges on AWS. To avoid unnecessary charges, `period` is +preferred to be set to `60s` or multiples of `60s`, such as `120s` and `180s`. + +Since cloudWatch metrics for Amazon SQS queues are automatically collected and pushed to CloudWatch every 5 minutes, +`period` for `sqs` is recommended to set to `300s` or multiples of `300s`. The AWS module comes with a predefined dashboard. For example: @@ -84,6 +84,7 @@ metricbeat.modules: period: 300s metricsets: - "ec2" + - "sqs" access_key_id: '${AWS_ACCESS_KEY_ID:""}' secret_access_key: '${AWS_SECRET_ACCESS_KEY:""}' session_token: '${AWS_SESSION_TOKEN:""}' @@ -97,5 +98,9 @@ The following metricsets are available: * <> +* <> + include::aws/ec2.asciidoc[] +include::aws/sqs.asciidoc[] + diff --git a/metricbeat/docs/modules/aws/sqs.asciidoc b/metricbeat/docs/modules/aws/sqs.asciidoc new file mode 100644 index 00000000000..35f0373ab44 --- /dev/null +++ b/metricbeat/docs/modules/aws/sqs.asciidoc @@ -0,0 +1,23 @@ +//// +This file is generated! See scripts/docs_collector.py +//// + +[[metricbeat-metricset-aws-sqs]] +=== aws sqs metricset + +beta[] + +include::../../../../x-pack/metricbeat/module/aws/sqs/_meta/docs.asciidoc[] + + +==== Fields + +For a description of each field in the metricset, see the +<> section. + +Here is an example document generated by this metricset: + +[source,json] +---- +include::../../../../x-pack/metricbeat/module/aws/sqs/_meta/data.json[] +---- diff --git a/metricbeat/docs/modules_list.asciidoc b/metricbeat/docs/modules_list.asciidoc index d3285354038..7aef20c7339 100644 --- a/metricbeat/docs/modules_list.asciidoc +++ b/metricbeat/docs/modules_list.asciidoc @@ -10,7 +10,8 @@ This file is generated! See scripts/docs_collector.py |<> |image:./images/icon-yes.png[Prebuilt dashboards are available] | .1+| .1+| |<> |<> |image:./images/icon-yes.png[Prebuilt dashboards are available] | -.1+| .1+| |<> +.2+| .2+| |<> +|<> beta[] |<> |image:./images/icon-no.png[No prebuilt dashboards] | .7+| .7+| |<> |<> diff --git a/x-pack/metricbeat/include/list.go b/x-pack/metricbeat/include/list.go index 4f662b04b82..4e75b505f43 100644 --- a/x-pack/metricbeat/include/list.go +++ b/x-pack/metricbeat/include/list.go @@ -10,6 +10,7 @@ import ( // Import packages that need to register themselves. _ "github.com/elastic/beats/x-pack/metricbeat/module/aws" _ "github.com/elastic/beats/x-pack/metricbeat/module/aws/ec2" + _ "github.com/elastic/beats/x-pack/metricbeat/module/aws/sqs" _ "github.com/elastic/beats/x-pack/metricbeat/module/mssql" _ "github.com/elastic/beats/x-pack/metricbeat/module/mssql/performance" _ "github.com/elastic/beats/x-pack/metricbeat/module/mssql/transaction_log" diff --git a/x-pack/metricbeat/metricbeat.reference.yml b/x-pack/metricbeat/metricbeat.reference.yml index cd90ff182a0..6f5f1327b1e 100644 --- a/x-pack/metricbeat/metricbeat.reference.yml +++ b/x-pack/metricbeat/metricbeat.reference.yml @@ -152,6 +152,7 @@ metricbeat.modules: period: 300s metricsets: - "ec2" + - "sqs" access_key_id: '${AWS_ACCESS_KEY_ID:""}' secret_access_key: '${AWS_SECRET_ACCESS_KEY:""}' session_token: '${AWS_SESSION_TOKEN:""}' diff --git a/x-pack/metricbeat/module/aws/_meta/config.yml b/x-pack/metricbeat/module/aws/_meta/config.yml index ccb5317ce09..d831e5e094d 100644 --- a/x-pack/metricbeat/module/aws/_meta/config.yml +++ b/x-pack/metricbeat/module/aws/_meta/config.yml @@ -2,6 +2,7 @@ period: 300s metricsets: - "ec2" + - "sqs" access_key_id: '${AWS_ACCESS_KEY_ID:""}' secret_access_key: '${AWS_SECRET_ACCESS_KEY:""}' session_token: '${AWS_SESSION_TOKEN:""}' diff --git a/x-pack/metricbeat/module/aws/_meta/docs.asciidoc b/x-pack/metricbeat/module/aws/_meta/docs.asciidoc index a510dfd570c..6706525d8d0 100644 --- a/x-pack/metricbeat/module/aws/_meta/docs.asciidoc +++ b/x-pack/metricbeat/module/aws/_meta/docs.asciidoc @@ -2,7 +2,7 @@ This module periodically fetches monitoring metrics from AWS Cloudwatch using https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html[GetMetricData API] for running EC2 instances. Note: extra AWS charges on GetMetricData API requests will be generated by this module. -The default metricset is `ec2`. +The default metricsets are `ec2` and `sqs`. [float] === Module-specific configuration notes @@ -28,20 +28,6 @@ aws> sts get-session-token --serial-number arn:aws:iam::1234:mfa/your-email@exam Specific permissions needs to be added into the IAM user's policy to authorize Metricbeat to collect AWS monitoring metrics. Please see documentation under each metricset for required permissions. -By default, Amazon EC2 sends metric data to CloudWatch every 5 minutes. With this basic monitoring, `period` in aws module -configuration should be larger or equal than `300s`. If `period` is set to be less than `300s`, the same cloudwatch metrics -will be collected more than once which will cause extra fees without getting more granular metrics. For example, in `US East (N. Virginia)` region, it costs -$0.01/1000 metrics requested using GetMetricData. Please see https://aws.amazon.com/cloudwatch/pricing/[AWS Cloudwatch Pricing] -for more details. To avoid unnecessary charges, `period` is preferred to be set to `300s` or multiples of `300s`, such as -`600s` and `900s`. - -For more granular monitoring data you can enable detailed monitoring on the instance to get metrics every 1 minute. Please see -https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch-new.html[Enabling Detailed Monitoring] for instructions -on how to enable detailed monitoring. With detailed monitoring enabled, `period` in aws module configuration can be any number -larger than `60s`. Since AWS sends metric data to CloudWatch in 1-minute periods, setting metricbeat module `period` less -than `60s` will cause extra API requests which means extra charges on AWS. To avoid unnecessary charges, `period` is -preferred to be set to `60s` or multiples of `60s`, such as `120s` and `180s`. - Here is an example of aws metricbeat module configuration: [source,yaml] @@ -49,15 +35,29 @@ Here is an example of aws metricbeat module configuration: metricbeat.modules: - module: aws period: 300s - metricsets: ["ec2"] + metricsets: + - "ec2" + - "sqs" access_key_id: '${AWS_ACCESS_KEY_ID}' secret_access_key: '${AWS_SECRET_ACCESS_KEY}' session_token: '${AWS_SESSION_TOKEN}' default_region: '${AWS_REGION:us-west-1}' ---- -This module only collects metrics for EC2 instances that are in `running` state and exist more than 10 minutes to make sure -there are monitoring metrics exist in Cloudwatch already. +By default, Amazon EC2 sends metric data to CloudWatch every 5 minutes. With this basic monitoring, `period` in aws module +configuration should be larger or equal than `300s`. If `period` is set to be less than `300s`, the same cloudwatch metrics +will be collected more than once which will cause extra fees without getting more granular metrics. For example, in `US East (N. Virginia)` region, it costs +$0.01/1000 metrics requested using GetMetricData. Please see https://aws.amazon.com/cloudwatch/pricing/[AWS Cloudwatch Pricing] +for more details. To avoid unnecessary charges, `period` is preferred to be set to `300s` or multiples of `300s`, such as +`600s` and `900s`. For more granular monitoring data you can enable detailed monitoring on the instance to get metrics every 1 minute. Please see +https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-cloudwatch-new.html[Enabling Detailed Monitoring] for instructions +on how to enable detailed monitoring. With detailed monitoring enabled, `period` in aws module configuration can be any number +larger than `60s`. Since AWS sends metric data to CloudWatch in 1-minute periods, setting metricbeat module `period` less +than `60s` will cause extra API requests which means extra charges on AWS. To avoid unnecessary charges, `period` is +preferred to be set to `60s` or multiples of `60s`, such as `120s` and `180s`. + +Since cloudWatch metrics for Amazon SQS queues are automatically collected and pushed to CloudWatch every 5 minutes, +`period` for `sqs` is recommended to set to `300s` or multiples of `300s`. The AWS module comes with a predefined dashboard. For example: diff --git a/x-pack/metricbeat/module/aws/fields.go b/x-pack/metricbeat/module/aws/fields.go index 36cc75e590f..15e67526b2a 100644 --- a/x-pack/metricbeat/module/aws/fields.go +++ b/x-pack/metricbeat/module/aws/fields.go @@ -19,5 +19,5 @@ func init() { // AssetAws returns asset data. // This is the base64 encoded gzipped contents of module/aws. func AssetAws() string { - return "eJzEl0FvGzkPhu/5FURPLdAM8BUf9pDDAtu0h1wWwXaLHh1aoj1ENNJApDxw0R+/oDx2bNdpnKydnYNhjDTU876SKPES7ml5BTjIBYCyBrqCNzjImwsAT+Iy98opXsHvFwAAdzjIHXTJl0DgUgjkVOCPb1+gS5E1ZY5z6EgzO4FZTl1tuw6p+AHVtc0FQKZAKHQFc7wAmDEFL1c1+iVE7GhNY48ue+uYU+nHNwegdoNsByL3YfPuULBHA66eO3If7sClqMhRQFvaaNMWFQbKBOIy9uT31H4ztTC07NqHAAc8EooK02X98PP1h2Zr/F2f1s++1G25ri+NJsXQ9E53eqzFi8NAfjILCfc7/MIHe/5uCXrKjqLinCDNAENIDpW8gYNLXV+UoETW0R7MBK7kTFHDEjhCEYIUq48cRTE6ah4V4jJ51kkRnNMZtMTSTSmbjuvbr7AaTED6cT62GWGWcu1VlAN/Rwv7JPcUg317VnLCHMnvCFgZHx/YWxRA53IhD8L2hhUGFAhYomvJQ8ogilnJPy5KSu5DkckrihuH3FXW4oJgShQfZgojlBi4Y1uJG9lDSxHss+vbr9c1wscVMywwFAIW+E45HatYJq7FPCd/XslV00HhtpdiUuiRPfg0RJP+8/y/B4x+TDvaFgGOrmTzCL1no8AAKymHpUfSIeX7hmPTo7snlbMqHseATI54YYsxWl5ZYwBHpTxDR7K/KX+Nn4q+Kn9N46noqfg5NtOl0nnh6whnsf612E9lu2e559RkQn8W9o+j0zheE4x1k6pEUyZYpFA6EsAFcsBpINB0PPmQWemM6BZfKRrTydmr66k/Nfh16vpAdihU31NPuZ7c8vIpsDsMWpZ2PGPydh/i5G05KnfHTNA5VdYRtmW+cK5eIlIUtUjjWnL3kxlyeOSgDCnOn6fvL+pTVrHzXFvKu6R2t+lRhDxMk7a7jSsmqEz1VLRWWYpSt9vGqxtpQFHoOBY9XuRkFe+VtZ5DyHqc/0DK4Rk7VswmxbiU7afEw5WPHQlzyv+6UEiZpBYET+e3TSt3OKeGD++Je1oOKe+3HQF286luSsOw+FZdedvMq4v9c/ge6tLG5uDwIngR5030bDXiw0rwpHXFbRfDLEDRctEjFcgGtM+8QKXGR5lY02kNHaPDpz+/1IHX9v50qziSkvvDK3H/9TPQbm4X/7erfCYRQJHkuFbgA4/p79msZRrYncvQGvwnP49clSPaCV1cGzdyfLbkwg5ubjctb83gdzBNJfr1wfhcS+sWalzyh918cSKqcfc9fA9W38P/frucskKJwvNY6+A6yBOk2trVSCY95Ykltlfghbc9RW+b/gfkEuPqn7RFleP8sla2P0Apdxzryv5h95a+H/vZX/Lvmot/AgAA//+h+RBa" + return "eJzEWM9v27gSvuevGPTUAo2AVzy8Qw4PaNMecthFtmnRozMmx9YgFKlyhvY66B+/ICU7sSMnTmpldQgCUZ75vo+cXzyFG1qdAS7lBEBZHZ3BG1zKmxMAS2Iit8rBn8H/TwAArnEp19AEmxyBCc6RUYGPP66gCZ41RPZzaEgjG4FZDE1ZO3ch2SWqqasTgEiOUOgM5ngCMGNyVs6K9VPw2NAaTX501eYPY0ht/2YA1LaR+4bIfNi8GzK212D3XJP5cA0meEX2AlrThpvWqLCkSCAmYkt2h+2PzBaWNZv6zsCARkJeYboqP/xy/qG6539bp/WzS/U+XdOmSoOiq1qjW1+syYtBR3YycwF3P3hEh/x8qwlaioa84pwgzACdCwaVbAYOJjRtUoLkWXt5MBKYFCN5dStgD0kIgi86shdFb6jaS8REsqyTJDinEbj41EwpZh7nl9+hcyYgbb8f9zHCLMTyVVJ2fIvZ7JO4p+jyb0dFThg92S0CnfD+DnuNAmhMTGRBOL9hhSUKOEze1GQhRBDFqGT3k5IUW5dk8orkepfbzGpcEEyJ/N1OoYfkHTecT+KG9rImD/ln55ffz4uFTx1mWKBLBCxwSzEcylgmpsY4Jzsu5cJpkHiOJR8UWmQLNix9pv5w/98DetunHa2TAHuTYtYIreWMAh10VIape9JliDcV+6pFc0MqozLufUAkQ7zIh9HnvLKGAeyV4gwNyW5QPg4/JH1V/CWNh6THws++mq6UxgVfPIwi/WthP5bsluWGQxUJ7SjYP/VKY98mZKybVCUaIsEiuNSQAC6QHU4dgYbDkS8jK40IPdtX8hnT0bEX1UN7bODnoWkd5aJQdA8txVK55eVbkHsYzFna8IzJ5n6Ig83HUbk5ZIPGZFk83Kf5wr16CUlR1CSVqcncTGbIbk+hdMHPn8fvK7UhquR6rjXFbaS5t2lRhCxMg9bbix0mKJhKVcyrshKlZnuNu47UoSg07JMeTnLS2XtlrmMQWfv5F6gM79ihZDYpxoSY/yQ/PPnkkjCn+NuDQogkZSB4Or9tVrnBOVU8HBM3tFqGuLt2ALCLzyUoM4xsP09XNgdz19g/B9/dXFrlPRg+BC/CeeEt5xnx7iRY0nLi7g/DLEA+56I9E8gGaBt5gUqV9TLJS8cVtLcOn/+8Ko7X8j7oKg5Eye3wSdx9/QxoF5eL/+ZWPpIIoEgwXCbwJffp79lY09SxGUvQYvyBngeeyh7aEVVcC9fj+JKTCxu4uNysvM0Cv4NpSN6uC+NzJS0hVJlgh9V8cSIqdnc1fA95vof//O90ygrJC899mYOLkyeQap1bI5m0FCc5sb0CXnjbkrc56H9BTN53/0mdVNnPT8tk+wuUYsO+nOxfuW9p2/67/C/Zd9WDmz75Kb910yc/5RVv+q7+uhq86ZuSHnrXF5wl0UlDIjinSS4wQuZI5bsES9vG8Dc3eRP7G78sS+cXfPCnlrrOs8ewLtk/E6U9MdJ/WVlyuDpaj/htu0z3TmQLz90tSu+7tIQ+6L1GOFf1HBClJDUN2Zxb3epxKj7oZMHCU3es3mkPmw0B9jBzPK/1cWCvAmpXPI1MC3RdiBx+GPIxGhfo+qw+B9j6ZmRcZJE0lWu86QoMOifruvO1c/9HH11o9t87rxHnHDPyhlvbdZn4mILUtLqa9PoNj7y/i2hHnY+XF2v1cpxY7oK7Exdwo9DwQET+LpMK345zk1JqIt/SE3r+EwAA//8lh/10" } diff --git a/x-pack/metricbeat/module/aws/sqs/_meta/data.json b/x-pack/metricbeat/module/aws/sqs/_meta/data.json new file mode 100644 index 00000000000..afec23f860d --- /dev/null +++ b/x-pack/metricbeat/module/aws/sqs/_meta/data.json @@ -0,0 +1,39 @@ +{ + "@timestamp": "2017-10-12T08:05:34.853Z", + "agent": { + "hostname": "host.example.com", + "name": "host.example.com" + }, + "aws": { + "sqs": { + "empty_receives": 0, + "messages": { + "delayed": 0, + "deleted": 0, + "not_visible": 0, + "received": 0, + "sent": 0, + "visible": 91 + }, + "oldest_message_age": { + "sec": 86404 + }, + "sent_message_size": {} + } + }, + "cloud": { + "region": "us-east-1" + }, + "event": { + "dataset": "aws.sqs", + "duration": 115000, + "module": "aws" + }, + "metricset": { + "name": "sqs" + }, + "service": { + "name": "sqs", + "type": "sqs" + } +} \ No newline at end of file diff --git a/x-pack/metricbeat/module/aws/sqs/_meta/docs.asciidoc b/x-pack/metricbeat/module/aws/sqs/_meta/docs.asciidoc new file mode 100644 index 00000000000..11ed9f87c50 --- /dev/null +++ b/x-pack/metricbeat/module/aws/sqs/_meta/docs.asciidoc @@ -0,0 +1,12 @@ +The sqs metricset of aws module allows you to monitor your AWS SQS queues. `sqs` metricset fetches a set of values from +https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-available-cloudwatch-metrics.html[Amazon SQS Metrics]. +CloudWatch metrics for Amazon SQS queues are automatically collected and pushed to CloudWatch every five minutes. + +=== AWS Permissions +Some specific AWS permissions are required for IAM user to collect AWS SQS metrics. +---- +cloudwatch:GetMetricData +ec2:DescribeRegions +---- + +=== Dashboard diff --git a/x-pack/metricbeat/module/aws/sqs/_meta/fields.yml b/x-pack/metricbeat/module/aws/sqs/_meta/fields.yml new file mode 100644 index 00000000000..9a1edd352e6 --- /dev/null +++ b/x-pack/metricbeat/module/aws/sqs/_meta/fields.yml @@ -0,0 +1,42 @@ +- name: sqs + type: group + description: > + `sqs` contains the metrics that were scraped from AWS CloudWatch which contains monitoring metrics sent by AWS SQS. + release: beta + fields: + - name: oldest_message_age.sec + type: long + description: > + The approximate age of the oldest non-deleted message in the queue. + - name: message.delayed + type: long + description: > + TThe number of messages in the queue that are delayed and not available for reading immediately. + - name: message.not_visible + type: long + description: > + The number of messages that are in flight. + - name: message.visible + type: long + description: > + The number of messages available for retrieval from the queue. + - name: message.deleted + type: long + description: > + The number of messages deleted from the queue. + - name: message.received + type: long + description: > + The number of messages returned by calls to the ReceiveMessage action. + - name: message.sent + type: long + description: > + The number of messages added to a queue. + - name: empty_receives + type: long + description: > + The number of ReceiveMessage API calls that did not return a message. + - name: sent_message_size.bytes + type: scaled_float + description: > + The size of messages added to a queue. diff --git a/x-pack/metricbeat/module/aws/sqs/data.go b/x-pack/metricbeat/module/aws/sqs/data.go new file mode 100644 index 00000000000..9c45715b081 --- /dev/null +++ b/x-pack/metricbeat/module/aws/sqs/data.go @@ -0,0 +1,30 @@ +// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one +// or more contributor license agreements. Licensed under the Elastic License; +// you may not use this file except in compliance with the Elastic License. + +package sqs + +import ( + s "github.com/elastic/beats/libbeat/common/schema" + c "github.com/elastic/beats/libbeat/common/schema/mapstrstr" +) + +var ( + schemaRequestFields = s.Schema{ + "oldest_message_age": s.Object{ + "sec": c.Float("ApproximateAgeOfOldestMessage"), + }, + "messages": s.Object{ + "delayed": c.Float("ApproximateNumberOfMessagesDelayed"), + "not_visible": c.Float("ApproximateNumberOfMessagesNotVisible"), + "visible": c.Float("ApproximateNumberOfMessagesVisible"), + "deleted": c.Float("NumberOfMessagesDeleted"), + "received": c.Float("NumberOfMessagesReceived"), + "sent": c.Float("NumberOfMessagesSent"), + }, + "empty_receives": c.Float("NumberOfEmptyReceives"), + "sent_message_size": s.Object{ + "bytes": c.Float("SentMessageSize"), + }, + } +) diff --git a/x-pack/metricbeat/module/aws/sqs/sqs.go b/x-pack/metricbeat/module/aws/sqs/sqs.go new file mode 100644 index 00000000000..764d3898b7c --- /dev/null +++ b/x-pack/metricbeat/module/aws/sqs/sqs.go @@ -0,0 +1,179 @@ +// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one +// or more contributor license agreements. Licensed under the Elastic License; +// you may not use this file except in compliance with the Elastic License. + +package sqs + +import ( + "fmt" + "strconv" + "strings" + + "github.com/aws/aws-sdk-go-v2/service/cloudwatch" + "github.com/pkg/errors" + + "github.com/elastic/beats/libbeat/common" + s "github.com/elastic/beats/libbeat/common/schema" + "github.com/elastic/beats/libbeat/logp" + "github.com/elastic/beats/metricbeat/mb" + "github.com/elastic/beats/x-pack/metricbeat/module/aws" +) + +var metricsetName = "sqs" + +// init registers the MetricSet with the central registry as soon as the program +// starts. The New function will be called later to instantiate an instance of +// the MetricSet for each host defined in the module's configuration. After the +// MetricSet has been created then Fetch will begin to be called periodically. +func init() { + mb.Registry.MustAddMetricSet(aws.ModuleName, metricsetName, New, + mb.DefaultMetricSet(), + ) +} + +// MetricSet holds any configuration or state information. It must implement +// the mb.MetricSet interface. And this is best achieved by embedding +// mb.BaseMetricSet because it implements all of the required mb.MetricSet +// interface methods except for Fetch. +type MetricSet struct { + *aws.MetricSet + logger *logp.Logger +} + +// New creates a new instance of the MetricSet. New is responsible for unpacking +// any MetricSet specific configuration options if there are any. +func New(base mb.BaseMetricSet) (mb.MetricSet, error) { + logger := logp.NewLogger(aws.ModuleName) + metricSet, err := aws.NewMetricSet(base) + if err != nil { + return nil, errors.Wrap(err, "error creating aws metricset") + } + + // Check if period is set to be multiple of 300s + remainder := metricSet.PeriodInSec % 300 + if remainder != 0 { + err := errors.New("period needs to be set to 300s (or a multiple of 300s). " + + "To avoid data missing or extra costs, please make sure period is set correctly in config.yml") + logger.Info(err) + } + + return &MetricSet{ + MetricSet: metricSet, + logger: logger, + }, nil +} + +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(report mb.ReporterV2) { + namespace := "AWS/SQS" + // Get startTime and endTime + startTime, endTime, err := aws.GetStartTimeEndTime(m.DurationString) + if err != nil { + m.logger.Error(errors.Wrap(err, "Error ParseDuration")) + report.Error(err) + return + } + + for _, regionName := range m.MetricSet.RegionsList { + m.MetricSet.AwsConfig.Region = regionName + svcCloudwatch := cloudwatch.New(*m.MetricSet.AwsConfig) + + // Get listMetrics output + listMetricsOutput, err := aws.GetListMetricsOutput(namespace, regionName, svcCloudwatch) + if err != nil { + m.logger.Error(err.Error()) + report.Error(err) + continue + } + if listMetricsOutput == nil || len(listMetricsOutput) == 0 { + continue + } + + // Construct metricDataQueries + metricDataQueries := constructMetricQueries(listMetricsOutput, int64(m.PeriodInSec)) + if len(metricDataQueries) == 0 { + continue + } + + // Use metricDataQueries to make GetMetricData API calls + metricDataResults, err := aws.GetMetricDataResults(metricDataQueries, svcCloudwatch, startTime, endTime) + if err != nil { + err = errors.Wrap(err, "GetMetricDataResults failed, skipping region "+regionName) + m.logger.Error(err.Error()) + report.Error(err) + continue + } + + // Create Cloudwatch Events for SQS + event, err := createSQSEvents(metricDataResults, metricsetName, regionName, schemaRequestFields) + if err != nil { + m.logger.Error(err.Error()) + event.Error = err + report.Event(event) + continue + } + + report.Event(event) + } +} + +func constructMetricQueries(listMetricsOutput []cloudwatch.Metric, period int64) []cloudwatch.MetricDataQuery { + metricDataQueries := []cloudwatch.MetricDataQuery{} + for i, listMetric := range listMetricsOutput { + metricDataQuery := createMetricDataQuery(listMetric, i, period) + metricDataQueries = append(metricDataQueries, metricDataQuery) + } + return metricDataQueries +} + +func createMetricDataQuery(metric cloudwatch.Metric, index int, period int64) (metricDataQuery cloudwatch.MetricDataQuery) { + statistic := "Average" + id := "sqs" + strconv.Itoa(index) + metricDims := metric.Dimensions + metricName := *metric.MetricName + queueName := "" + for _, dim := range metricDims { + if *dim.Name == "QueueName" { + queueName = *dim.Value + } + } + label := queueName + " " + metricName + + metricDataQuery = cloudwatch.MetricDataQuery{ + Id: &id, + MetricStat: &cloudwatch.MetricStat{ + Period: &period, + Stat: &statistic, + Metric: &metric, + }, + Label: &label, + } + return +} + +func createSQSEvents(getMetricDataResults []cloudwatch.MetricDataResult, metricsetName string, regionName string, schemaMetricFields s.Schema) (event mb.Event, err error) { + event.Service = metricsetName + event.RootFields = common.MapStr{} + event.RootFields.Put("service.name", metricsetName) + event.RootFields.Put("cloud.region", regionName) + + mapOfMetricSetFieldResults := make(map[string]interface{}) + for _, output := range getMetricDataResults { + if len(output.Values) == 0 { + continue + } + labels := strings.Split(*output.Label, " ") + mapOfMetricSetFieldResults["queue.name"] = labels[0] + mapOfMetricSetFieldResults[labels[1]] = fmt.Sprint(output.Values[0]) + } + + resultMetricSetFields, err := aws.EventMapping(mapOfMetricSetFieldResults, schemaMetricFields) + if err != nil { + err = errors.Wrap(err, "Error trying to apply schemaMetricSetFields in AWS SQS metricbeat module.") + return + } + event.MetricSetFields = resultMetricSetFields + return +} diff --git a/x-pack/metricbeat/module/aws/sqs/sqs_integration_test.go b/x-pack/metricbeat/module/aws/sqs/sqs_integration_test.go new file mode 100644 index 00000000000..704242f5211 --- /dev/null +++ b/x-pack/metricbeat/module/aws/sqs/sqs_integration_test.go @@ -0,0 +1,65 @@ +// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one +// or more contributor license agreements. Licensed under the Elastic License; +// you may not use this file except in compliance with the Elastic License. + +// +build !integration + +package sqs + +import ( + "testing" + + "github.com/elastic/beats/x-pack/metricbeat/module/aws/mtest" + + "github.com/stretchr/testify/assert" + + mbtest "github.com/elastic/beats/metricbeat/mb/testing" +) + +func TestFetch(t *testing.T) { + config, info := mtest.GetConfigForTest("sqs") + if info != "" { + t.Skip("Skipping TestFetch: " + info) + } + + sqsMetricSet := mbtest.NewReportingMetricSetV2(t, config) + events, err := mbtest.ReportingFetchV2(sqsMetricSet) + if err != nil { + t.Skip("Skipping TestFetch: failed to make api calls. Please check $AWS_ACCESS_KEY_ID, " + + "$AWS_SECRET_ACCESS_KEY and $AWS_SESSION_TOKEN in config.yml") + } + + if !assert.NotEmpty(t, events) { + t.FailNow() + } + t.Logf("Module: %s Metricset: %s", sqsMetricSet.Module().Name(), sqsMetricSet.Name()) + + for _, event := range events { + // RootField + mtest.CheckEventField("service.name", "string", event, t) + mtest.CheckEventField("cloud.region", "string", event, t) + // MetricSetField + mtest.CheckEventField("empty_receives", "float", event, t) + mtest.CheckEventField("messages.delayed", "float", event, t) + mtest.CheckEventField("messages.deleted", "float", event, t) + mtest.CheckEventField("messages.not_visible", "float", event, t) + mtest.CheckEventField("messages.received", "float", event, t) + mtest.CheckEventField("messages.sent", "float", event, t) + mtest.CheckEventField("messages.visible", "float", event, t) + mtest.CheckEventField("oldest_message_age.sec", "float", event, t) + mtest.CheckEventField("sent_message_size", "float", event, t) + } +} + +func TestData(t *testing.T) { + config, info := mtest.GetConfigForTest("sqs") + if info != "" { + t.Skip("Skipping TestData: " + info) + } + + sqsMetricSet := mbtest.NewReportingMetricSetV2(t, config) + errs := mbtest.WriteEventsReporterV2(sqsMetricSet, t, "/") + if errs != nil { + t.Fatal("write", errs) + } +} diff --git a/x-pack/metricbeat/modules.d/aws.yml.disabled b/x-pack/metricbeat/modules.d/aws.yml.disabled index ccb5317ce09..d831e5e094d 100644 --- a/x-pack/metricbeat/modules.d/aws.yml.disabled +++ b/x-pack/metricbeat/modules.d/aws.yml.disabled @@ -2,6 +2,7 @@ period: 300s metricsets: - "ec2" + - "sqs" access_key_id: '${AWS_ACCESS_KEY_ID:""}' secret_access_key: '${AWS_SECRET_ACCESS_KEY:""}' session_token: '${AWS_SESSION_TOKEN:""}' From 27568772ed7e54766967e22f0beafb210f25b050 Mon Sep 17 00:00:00 2001 From: Brandon Morelli Date: Mon, 25 Feb 2019 12:06:29 -0800 Subject: [PATCH 085/332] [docs][APM] Add apm_user role (#10683) --- libbeat/docs/security/user-access.asciidoc | 45 +++++++++++-------- libbeat/docs/shared-beats-attributes.asciidoc | 1 + 2 files changed, 28 insertions(+), 18 deletions(-) diff --git a/libbeat/docs/security/user-access.asciidoc b/libbeat/docs/security/user-access.asciidoc index 4828f7f2012..fe77d4596fa 100644 --- a/libbeat/docs/security/user-access.asciidoc +++ b/libbeat/docs/security/user-access.asciidoc @@ -6,17 +6,23 @@ To enable users to access the indices {beatname_uc} creates, grant them `read` and `view_index_metadata` privileges on the {beatname_uc} indices. If they're using {kib}, they also need the `kibana_user` role. -. Create a reader role that has the `read` and `view_index_metadata` privileges +ifdef::apm-server[] +X-Pack security provides a built-in role called `apm_user` that you can explicitly assign to users. +This role grants them the necessary `read` and `view_index_metadata` privileges on the {beatname_uc} indices. +endif::apm-server[] + +ifndef::apm-server[] +. Create a role that has the `read` and `view_index_metadata` privileges on the {beatname_uc} indices. + You can create roles from the **Management > Roles** UI in {kib} or through the `role` API. For example, the following request creates a role named -++{beat_default_index_prefix}_reader++: +++{access_role}++: + -- ["source","sh",subs="attributes,callouts"] --------------------------------------------------------------- -POST _security/role/{beat_default_index_prefix}_reader +POST _security/role/{access_role} { "indices": [ { @@ -30,40 +36,43 @@ POST _security/role/{beat_default_index_prefix}_reader <1> If you use a custom {beatname_uc} index pattern, specify that pattern instead of the default ++{beat_default_index_prefix}-*++ pattern. -- +endif::apm-server[] -. Assign your users the reader role so they can access the {beatname_uc} -indices. For {kib} users who need to visualize the data, also assign the -`kibana_user` role: +. Assign your users the ++{access_role}++ +role so they can access the {beatname_uc} indices. +For {kib} users who need to visualize the data, +also assign the `kibana_user` role: .. If you're using the `native` realm, you can assign roles with the **Management > Users** UI in {kib} or through the `user` API. For example, the -following request grants ++{beat_default_index_prefix}_user++ the -++{beat_default_index_prefix}_reader++ and `kibana_user` roles: +following request grants ++{beat_default_index_prefix}_account++ the +++{access_role}++ and `kibana_user` roles: + -- ["source", "sh", subs="attributes,callouts"] --------------------------------------------------------------- -POST /_security/user/{beat_default_index_prefix}_user +POST /_security/user/{beat_default_index_prefix}_account { "password" : "{pwd}", - "roles" : [ "{beat_default_index_prefix}_reader","kibana_user"], - "full_name" : "{beatname_uc} User" + "roles" : [ "{access_role}","kibana_user"], + "full_name" : "{beatname_uc} account" } --------------------------------------------------------------- // CONSOLE -- -.. If you're using the LDAP, Active Directory, or PKI realms, you assign the -roles in the `role_mapping.yml` configuration file. For example, the following -snippet grants ++{beatname_uc} User++ the ++{beat_default_index_prefix}_reader++ -and `kibana_user` roles: +.. If you're using the LDAP, Active Directory, or PKI realms, +you assign the roles in the `role_mapping.yml` configuration file. +For example, the following snippet grants +++{beat_default_index_prefix}_account++ the +++{access_role}++ and `kibana_user` roles: + -- ["source", "yaml", subs="attributes,callouts"] --------------------------------------------------------------- -{beat_default_index_prefix}_reader: - - "cn={beatname_uc} User,dc=example,dc=com" +{access_role}: + - "cn={beat_default_index_prefix}_account,dc=example,dc=com" kibana_user: - - "cn={beatname_uc} User,dc=example,dc=com" + - "cn={beat_default_index_prefix}_account,dc=example,dc=com" --------------------------------------------------------------- For more information, see diff --git a/libbeat/docs/shared-beats-attributes.asciidoc b/libbeat/docs/shared-beats-attributes.asciidoc index e52a25e11a7..d11a73c604e 100644 --- a/libbeat/docs/shared-beats-attributes.asciidoc +++ b/libbeat/docs/shared-beats-attributes.asciidoc @@ -25,3 +25,4 @@ :beat_monitoring_user_version: 6.3.0 :beat_monitoring_version: 6.2 :beat_version_key: agent.version +:access_role: {beat_default_index_prefix}_reader From 40047ed5845a47796417642f662ceee4f9c07e55 Mon Sep 17 00:00:00 2001 From: Ray Qiu Date: Mon, 25 Feb 2019 12:46:25 -0800 Subject: [PATCH 086/332] Address {issue}10811[10811] - Add configuration knob for auto-discover default.disable (#10911) * Add configuration knob `default.disable` for auto-discover hints to control whether log harvesting is enabled for the pod/container. {issue}10811[10811] {pull}10911[10911] --- CHANGELOG.next.asciidoc | 1 + .../autodiscover/builder/hints/logs_test.go | 12 +++ filebeat/docs/autodiscover-hints.asciidoc | 39 ++++++++++ libbeat/autodiscover/builder/helper.go | 7 +- libbeat/autodiscover/builder/helper_test.go | 74 +++++++++++++++++-- .../autodiscover/providers/docker/config.go | 17 +++-- .../autodiscover/providers/docker/docker.go | 2 +- .../providers/kubernetes/config.go | 11 +-- .../providers/kubernetes/kubernetes.go | 5 +- testing/environments/snapshot.yml | 6 +- 10 files changed, 149 insertions(+), 25 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 168c8eb9f35..0880a81784f 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -251,6 +251,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Add more info to message logged when a duplicated symlink file is found {pull}10845[10845] - Add Netflow module to enrich flow events with geoip data. {pull}10877[10877] - Set `event.category: network_traffic` for Suricata. {pull}10882[10882] +- Add configuration knob for auto-discover hints to control whether log harvesting is enabled for the pod/container. {issue}10811[10811] {pull}10911[10911] *Heartbeat* diff --git a/filebeat/autodiscover/builder/hints/logs_test.go b/filebeat/autodiscover/builder/hints/logs_test.go index de56e777765..e9e1afa7224 100644 --- a/filebeat/autodiscover/builder/hints/logs_test.go +++ b/filebeat/autodiscover/builder/hints/logs_test.go @@ -47,6 +47,18 @@ func TestGenerateHints(t *testing.T) { len: 0, result: common.MapStr{}, }, + { + msg: "Hints with logs.disable should return nothing", + event: bus.Event{ + "hints": common.MapStr{ + "logs": common.MapStr{ + "disable": "true", + }, + }, + }, + len: 0, + result: common.MapStr{}, + }, { msg: "Empty event hints should return default config", event: bus.Event{ diff --git a/filebeat/docs/autodiscover-hints.asciidoc b/filebeat/docs/autodiscover-hints.asciidoc index a49a8abd055..9d80d28c7ad 100644 --- a/filebeat/docs/autodiscover-hints.asciidoc +++ b/filebeat/docs/autodiscover-hints.asciidoc @@ -94,6 +94,25 @@ filebeat.autodiscover: hints.enabled: true ------------------------------------------------------------------------------------- +Autodiscover provides a way to control whether log harvesting is by default disabled for the pods/containers when auto-discovery is in use. To enable it, just set `default.disable` to true: + +["source","yaml",subs="attributes"] +------------------------------------------------------------------------------------- +filebeat.autodiscover: + providers: + - type: kubernetes + hints.enabled: true + default.disable: true +------------------------------------------------------------------------------------- + +Then, for the pods/containers that log harvesting should be enabled, you can annotate with hint: + +["source","yaml",subs="attributes"] +------------------------------------------------------------------------------------- +annotations: + co.elastic.logs/disable: false +------------------------------------------------------------------------------------- + You can annotate Kubernetes Pods with useful info to spin up {beatname_uc} inputs or modules: ["source","yaml",subs="attributes"] @@ -137,6 +156,26 @@ filebeat.autodiscover: hints.enabled: true ------------------------------------------------------------------------------------- +Autodiscover provides a way to control whether log harvesting is by default disabled for the +containers when auto-discovery is in use. To enable it, just set `default.disable` to true: + +["source","yaml",subs="attributes"] +------------------------------------------------------------------------------------- +filebeat.autodiscover: + providers: + - type: docker + hints.enabled: true + default.disable: true +------------------------------------------------------------------------------------- + +Then, for the containers that log harvesting should be enabled, you can label Docker containers with: + +["source","yaml",subs="attributes"] +------------------------------------------------------------------------------------- +annotations: + co.elastic.logs/disable: false +------------------------------------------------------------------------------------- + You can label Docker containers with useful info to spin up {beatname_uc} inputs, for example: ["source","yaml",subs="attributes"] diff --git a/libbeat/autodiscover/builder/helper.go b/libbeat/autodiscover/builder/helper.go index e8a81cfd869..3a574675b91 100644 --- a/libbeat/autodiscover/builder/helper.go +++ b/libbeat/autodiscover/builder/helper.go @@ -155,7 +155,7 @@ func IsNoOp(hints common.MapStr, key string) bool { } // GenerateHints parses annotations based on a prefix and sets up hints that can be picked up by individual Beats. -func GenerateHints(annotations common.MapStr, container, prefix string) common.MapStr { +func GenerateHints(annotations common.MapStr, container, prefix string, defaultDisable bool) common.MapStr { hints := common.MapStr{} if rawEntries, err := annotations.GetValue(prefix); err == nil { if entries, ok := rawEntries.(common.MapStr); ok { @@ -195,5 +195,10 @@ func GenerateHints(annotations common.MapStr, container, prefix string) common.M } } + // Update hints: if .disabled annotation does not exist, set according to disabledByDefault flag + if _, err := hints.GetValue("logs.disable"); err != nil && defaultDisable { + hints.Put("logs.disable", "true") + } + return hints } diff --git a/libbeat/autodiscover/builder/helper_test.go b/libbeat/autodiscover/builder/helper_test.go index 477888b93f0..c282972925e 100644 --- a/libbeat/autodiscover/builder/helper_test.go +++ b/libbeat/autodiscover/builder/helper_test.go @@ -27,13 +27,15 @@ import ( func TestGenerateHints(t *testing.T) { tests := []struct { - annotations map[string]string - result common.MapStr + annotations map[string]string + defaultDisable bool + result common.MapStr }{ // Empty annotations should return empty hints { - annotations: map[string]string{}, - result: common.MapStr{}, + annotations: map[string]string{}, + defaultDisable: false, + result: common.MapStr{}, }, // Scenarios being tested: @@ -50,6 +52,7 @@ func TestGenerateHints(t *testing.T) { "co.elastic.metrics.foobar1/period": "15s", "not.to.include": "true", }, + defaultDisable: false, result: common.MapStr{ "logs": common.MapStr{ "multiline": common.MapStr{ @@ -62,6 +65,67 @@ func TestGenerateHints(t *testing.T) { }, }, }, + // Scenarios being tested: + // logs.disable must be generated when defaultDisable is set and annotations does not + // have co.elastic.logs/disable set to false. + // logs/multiline.pattern must be a nested common.MapStr under hints.logs + // metrics/module must be found in hints.metrics + // not.to.include must not be part of hints + // period is annotated at both container and pod level. Container level value must be in hints + { + annotations: map[string]string{ + "co.elastic.logs/multiline.pattern": "^test", + "co.elastic.metrics/module": "prometheus", + "co.elastic.metrics/period": "10s", + "co.elastic.metrics.foobar/period": "15s", + "co.elastic.metrics.foobar1/period": "15s", + "not.to.include": "true", + }, + defaultDisable: true, + result: common.MapStr{ + "logs": common.MapStr{ + "multiline": common.MapStr{ + "pattern": "^test", + }, + "disable": "true", + }, + "metrics": common.MapStr{ + "module": "prometheus", + "period": "15s", + }, + }, + }, + // Scenarios being tested: + // logs.disable must not be generated when defaultDisable is set, but annotations + // have co.elastic.logs/disable set to false. + // logs/multiline.pattern must be a nested common.MapStr under hints.logs + // metrics/module must be found in hints.metrics + // not.to.include must not be part of hints + // period is annotated at both container and pod level. Container level value must be in hints + { + annotations: map[string]string{ + "co.elastic.logs/disable": "false", + "co.elastic.logs/multiline.pattern": "^test", + "co.elastic.metrics/module": "prometheus", + "co.elastic.metrics/period": "10s", + "co.elastic.metrics.foobar/period": "15s", + "co.elastic.metrics.foobar1/period": "15s", + "not.to.include": "true", + }, + defaultDisable: true, + result: common.MapStr{ + "logs": common.MapStr{ + "multiline": common.MapStr{ + "pattern": "^test", + }, + "disable": "false", + }, + "metrics": common.MapStr{ + "module": "prometheus", + "period": "15s", + }, + }, + }, } for _, test := range tests { @@ -69,6 +133,6 @@ func TestGenerateHints(t *testing.T) { for k, v := range test.annotations { annMap.Put(k, v) } - assert.Equal(t, GenerateHints(annMap, "foobar", "co.elastic"), test.result) + assert.Equal(t, GenerateHints(annMap, "foobar", "co.elastic", test.defaultDisable), test.result) } } diff --git a/libbeat/autodiscover/providers/docker/config.go b/libbeat/autodiscover/providers/docker/config.go index 02c5fffe936..bba4f32cdb0 100644 --- a/libbeat/autodiscover/providers/docker/config.go +++ b/libbeat/autodiscover/providers/docker/config.go @@ -25,14 +25,15 @@ import ( // Config for docker autodiscover provider type Config struct { - Host string `config:"host"` - TLS *docker.TLSConfig `config:"ssl"` - Prefix string `config:"prefix"` - HintsEnabled bool `config:"hints.enabled"` - Builders []*common.Config `config:"builders"` - Appenders []*common.Config `config:"appenders"` - Templates template.MapperSettings `config:"templates"` - Dedot bool `config:"labels.dedot"` + Host string `config:"host"` + TLS *docker.TLSConfig `config:"ssl"` + Prefix string `config:"prefix"` + HintsEnabled bool `config:"hints.enabled"` + DefaultDisable bool `config:"default.disable"` + Builders []*common.Config `config:"builders"` + Appenders []*common.Config `config:"appenders"` + Templates template.MapperSettings `config:"templates"` + Dedot bool `config:"labels.dedot"` } func defaultConfig() *Config { diff --git a/libbeat/autodiscover/providers/docker/docker.go b/libbeat/autodiscover/providers/docker/docker.go index dea344c3df7..fb0901e55e5 100644 --- a/libbeat/autodiscover/providers/docker/docker.go +++ b/libbeat/autodiscover/providers/docker/docker.go @@ -267,7 +267,7 @@ func (d *Provider) generateHints(event bus.Event) bus.Event { e["port"] = port } if labels, err := dockerMeta.GetValue("labels"); err == nil { - hints := builder.GenerateHints(labels.(common.MapStr), "", d.config.Prefix) + hints := builder.GenerateHints(labels.(common.MapStr), "", d.config.Prefix, d.config.DefaultDisable) e["hints"] = hints } return e diff --git a/libbeat/autodiscover/providers/kubernetes/config.go b/libbeat/autodiscover/providers/kubernetes/config.go index 5ba5f789f68..269cb60cff3 100644 --- a/libbeat/autodiscover/providers/kubernetes/config.go +++ b/libbeat/autodiscover/providers/kubernetes/config.go @@ -33,11 +33,12 @@ type Config struct { SyncPeriod time.Duration `config:"sync_period"` CleanupTimeout time.Duration `config:"cleanup_timeout"` - Prefix string `config:"prefix"` - HintsEnabled bool `config:"hints.enabled"` - Builders []*common.Config `config:"builders"` - Appenders []*common.Config `config:"appenders"` - Templates template.MapperSettings `config:"templates"` + Prefix string `config:"prefix"` + HintsEnabled bool `config:"hints.enabled"` + DefaultDisable bool `config:"default.disable"` + Builders []*common.Config `config:"builders"` + Appenders []*common.Config `config:"appenders"` + Templates template.MapperSettings `config:"templates"` } func defaultConfig() *Config { diff --git a/libbeat/autodiscover/providers/kubernetes/kubernetes.go b/libbeat/autodiscover/providers/kubernetes/kubernetes.go index c3d9a03dda4..41037238edd 100644 --- a/libbeat/autodiscover/providers/kubernetes/kubernetes.go +++ b/libbeat/autodiscover/providers/kubernetes/kubernetes.go @@ -275,12 +275,13 @@ func (p *Provider) generateHints(event bus.Event) bus.Event { } cname := builder.GetContainerName(container) - hints := builder.GenerateHints(annotations, cname, p.config.Prefix) + hints := builder.GenerateHints(annotations, cname, p.config.Prefix, p.config.DefaultDisable) + logp.Debug("kubernetes", "Generated hints %+v", hints) if len(hints) != 0 { e["hints"] = hints } - logp.Debug("kubernetes", "Generated builder event %v", event) + logp.Debug("kubernetes", "Generated builder event %+v", e) return e } diff --git a/testing/environments/snapshot.yml b/testing/environments/snapshot.yml index 0d0fd4fbc2a..a119227ca51 100644 --- a/testing/environments/snapshot.yml +++ b/testing/environments/snapshot.yml @@ -3,7 +3,7 @@ version: '2.3' services: elasticsearch: - image: docker.elastic.co/elasticsearch/elasticsearch:7.0.0-SNAPSHOT + image: docker.elastic.co/elasticsearch/elasticsearch:7.1.0-SNAPSHOT healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9200"] retries: 300 @@ -16,7 +16,7 @@ services: - "xpack.security.enabled=false" logstash: - image: docker.elastic.co/logstash/logstash:7.0.0-SNAPSHOT + image: docker.elastic.co/logstash/logstash:7.1.0-SNAPSHOT healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9600/_node/stats"] retries: 600 @@ -26,7 +26,7 @@ services: - ./docker/logstash/pki:/etc/pki:ro kibana: - image: docker.elastic.co/kibana/kibana:7.0.0-SNAPSHOT + image: docker.elastic.co/kibana/kibana:7.1.0-SNAPSHOT healthcheck: test: ["CMD-SHELL", 'python -c ''import urllib, json; response = urllib.urlopen("http://localhost:5601/api/status"); data = json.loads(response.read()); exit(1) if data["status"]["overall"]["state"] != "green" else exit(0);'''] retries: 600 From 5ef730f3998a51478da180574ab9d8ff7edeb0af Mon Sep 17 00:00:00 2001 From: Andrew Kroh Date: Mon, 25 Feb 2019 19:00:26 -0500 Subject: [PATCH 087/332] Enhance Suricata pipeline to handle destination.domain being set (#10861) This replaces the usage of a `rename` processor with an `append` + `remove` processor. Then a script processor is used to deduplicate the domains. Fixes #10510 --- CHANGELOG.next.asciidoc | 1 + .../module/suricata/eve/ingest/pipeline.json | 19 ++++++++++++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 0880a81784f..6895092e841 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -252,6 +252,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Add Netflow module to enrich flow events with geoip data. {pull}10877[10877] - Set `event.category: network_traffic` for Suricata. {pull}10882[10882] - Add configuration knob for auto-discover hints to control whether log harvesting is enabled for the pod/container. {issue}10811[10811] {pull}10911[10911] +- Change Suricata module pipeline to handle `destination.domain` being set if a reverse DNS processor is used. {issue}10510[10510] *Heartbeat* diff --git a/x-pack/filebeat/module/suricata/eve/ingest/pipeline.json b/x-pack/filebeat/module/suricata/eve/ingest/pipeline.json index e1fcf7c0c6e..3276c1968db 100644 --- a/x-pack/filebeat/module/suricata/eve/ingest/pipeline.json +++ b/x-pack/filebeat/module/suricata/eve/ingest/pipeline.json @@ -50,10 +50,23 @@ } }, { - "rename": { + "append": { + "if": "ctx.suricata?.eve?.http?.hostname != null", + "value": "{{suricata.eve.http.hostname}}", + "field": "destination.domain" + } + }, + { + "remove": { "field": "suricata.eve.http.hostname", - "target_field": "destination.domain", - "ignore_missing": true + "ignore_failure": true + } + }, + { + "script": { + "type": "painless", + "source": "def domain = ctx.destination?.domain; if (domain instanceof Collection) { domain = domain.stream().distinct().collect(Collectors.toList()); if (domain.length == 1) { domain = domain[0]; }ctx.destination.domain = domain; }", + "ignore_failure": true } }, { From 93e3b59af8a410311a8aa5e585f5e61bcb52afe5 Mon Sep 17 00:00:00 2001 From: Jaime Soriano Pastor Date: Tue, 26 Feb 2019 10:35:39 +0100 Subject: [PATCH 088/332] Fix changelog and add documentation for containers.paths (#10864) --- CHANGELOG.asciidoc | 1 - CHANGELOG.next.asciidoc | 1 + filebeat/docs/inputs/input-docker.asciidoc | 18 ++++++++++++++++++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index e7de86b334c..005c8261dc5 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -273,7 +273,6 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...v7.0.0-beta1[Check the - Added support for ingesting structured Elasticsearch server logs {pull}10428[10428] - Populate more ECS fields in the Suricata module. {pull}10006[10006] - Add module zeek. {issue}9931[9931] {pull}10034[10034] -- Add support for CRI-O based logs autodiscover {pull}10687[10687] *Heartbeat* diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 6895092e841..179fed210d8 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -249,6 +249,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Populate more ECS fields in the Suricata module. {pull}10006[10006] - Add ISO8601 timestamp support in syslog metricset. {issue}8716[8716] {pull}10736[10736] - Add more info to message logged when a duplicated symlink file is found {pull}10845[10845] +- Add option to configure docker input with paths {pull}10687[10687] - Add Netflow module to enrich flow events with geoip data. {pull}10877[10877] - Set `event.category: network_traffic` for Suricata. {pull}10882[10882] - Add configuration knob for auto-discover hints to control whether log harvesting is enabled for the pod/container. {issue}10811[10811] {pull}10911[10911] diff --git a/filebeat/docs/inputs/input-docker.asciidoc b/filebeat/docs/inputs/input-docker.asciidoc index 783391b39a3..c801fbb6d85 100644 --- a/filebeat/docs/inputs/input-docker.asciidoc +++ b/filebeat/docs/inputs/input-docker.asciidoc @@ -42,6 +42,24 @@ The list of Docker container IDs to read logs from. Specify The base path where Docker logs are located. The default is `/var/lib/docker/containers`. +===== `containers.paths` + +The list of paths to read logs from. This can be used as an alternative to +`containers.ids` for other runtimes that use the same logging format as docker +but place their logs in different paths. For example when using CRI-O runtime in +Kubernetes the following configuration can be used: + +["source","yaml",subs="attributes"] +---- +{beatname_lc}.inputs: +- type: docker + containers.paths: + - /var/log/pods/${data.kubernetes.pod.uid}/${data.kubernetes.container.name}/*.log +---- + +When `containers.paths` is used, `containers.path` is ignored. + + ===== `containers.stream` Reads from the specified streams only: `all`, `stdout` or `stderr`. The default From 9819d70c34ed089647259b4859410eac1e065107 Mon Sep 17 00:00:00 2001 From: Mario Castro Date: Tue, 26 Feb 2019 21:03:26 +0100 Subject: [PATCH 089/332] Migrate Kubernetes pod Metricset to use ReporterV2 interface --- metricbeat/module/kubernetes/pod/pod.go | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/metricbeat/module/kubernetes/pod/pod.go b/metricbeat/module/kubernetes/pod/pod.go index daae3a36f77..9cd3ff88621 100644 --- a/metricbeat/module/kubernetes/pod/pod.go +++ b/metricbeat/module/kubernetes/pod/pod.go @@ -18,8 +18,8 @@ package pod import ( - "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/common/kubernetes" + "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" @@ -36,6 +36,8 @@ var ( DefaultScheme: defaultScheme, DefaultPath: defaultPath, }.Build() + + logger = logp.NewLogger("kubernetes.pod") ) // init registers the MetricSet with the central registry. @@ -73,25 +75,32 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { }, nil } -// Fetch methods implements the data gathering and data conversion to the right format -// It returns the event which is then forward to the output. In case of an error, a -// descriptive error must be returned. -func (m *MetricSet) Fetch() ([]common.MapStr, error) { +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(reporter mb.ReporterV2) { m.enricher.Start() body, err := m.http.FetchContent() if err != nil { - return nil, err + logger.Error(err) + reporter.Error(err) + return } events, err := eventMapping(body, util.PerfMetrics) if err != nil { - return nil, err + logger.Error(err) + reporter.Error(err) + return } m.enricher.Enrich(events) - return events, nil + for _, e := range events { + reporter.Event(mb.Event{MetricSetFields: e}) + } + return } // Close stops this metricset From 1ace6e302a9c487bb09272cbf0e4253bb246e4bd Mon Sep 17 00:00:00 2001 From: Mario Castro Date: Tue, 26 Feb 2019 21:07:38 +0100 Subject: [PATCH 090/332] [Metricbeat] Migrate Kubernetes container Metricset to use ReporterV2 interface (#10855) --- .../module/kubernetes/container/container.go | 29 ++++++++++++++----- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/metricbeat/module/kubernetes/container/container.go b/metricbeat/module/kubernetes/container/container.go index 83896472d42..4f0bbaaf386 100644 --- a/metricbeat/module/kubernetes/container/container.go +++ b/metricbeat/module/kubernetes/container/container.go @@ -18,7 +18,9 @@ package container import ( - "github.com/elastic/beats/libbeat/common" + "github.com/pkg/errors" + + "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" @@ -35,6 +37,8 @@ var ( DefaultScheme: defaultScheme, DefaultPath: defaultPath, }.Build() + + logger = logp.NewLogger("kubernetes.container") ) // init registers the MetricSet with the central registry. @@ -71,25 +75,34 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { }, nil } -// Fetch methods implements the data gathering and data conversion to the right format -// It returns the event which is then forward to the output. In case of an error, a -// descriptive error must be returned. -func (m *MetricSet) Fetch() ([]common.MapStr, error) { +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(reporter mb.ReporterV2) { m.enricher.Start() body, err := m.http.FetchContent() if err != nil { - return nil, err + err = errors.Wrap(err, "error doing HTTP request to fetch 'container' Metricset data") + logger.Error(err) + reporter.Error(err) + return } events, err := eventMapping(body, util.PerfMetrics) if err != nil { - return nil, err + logger.Error(err) + reporter.Error(err) + return } m.enricher.Enrich(events) - return events, nil + for _, e := range events { + reporter.Event(mb.Event{MetricSetFields: e}) + } + + return } // Close stops this metricset From ccd3147f1f58cd1cec6ffeff9cfd86eadb529647 Mon Sep 17 00:00:00 2001 From: Mario Castro Date: Tue, 26 Feb 2019 21:28:51 +0100 Subject: [PATCH 091/332] [Metricbeat] Migrate RabbitMQ test to use ReporterV2 interface (#10827) --- metricbeat/module/rabbitmq/metricset_test.go | 22 +++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/metricbeat/module/rabbitmq/metricset_test.go b/metricbeat/module/rabbitmq/metricset_test.go index 0220fcd4aeb..0c34908660b 100644 --- a/metricbeat/module/rabbitmq/metricset_test.go +++ b/metricbeat/module/rabbitmq/metricset_test.go @@ -20,14 +20,15 @@ package rabbitmq import ( "testing" - "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/logp" + "github.com/elastic/beats/metricbeat/mb" mbtest "github.com/elastic/beats/metricbeat/mb/testing" "github.com/elastic/beats/metricbeat/module/rabbitmq/mtest" - - "github.com/stretchr/testify/assert" ) +var logger = logp.NewLogger("rabbitmq") + func init() { mb.Registry.MustAddMetricSet("rabbitmq", "test", newTestMetricSet, mb.WithHostParser(HostParser), @@ -47,9 +48,12 @@ func newTestMetricSet(base mb.BaseMetricSet) (mb.MetricSet, error) { } // Fetch makes an HTTP request to fetch connections metrics from the connections endpoint. -func (m *testMetricSet) Fetch() ([]common.MapStr, error) { +func (m *testMetricSet) Fetch(reporter mb.ReporterV2) { _, err := m.HTTP.FetchContent() - return nil, err + if err != nil { + logger.Error(err) + reporter.Error(err) + } } func TestManagementPathPrefix(t *testing.T) { @@ -66,7 +70,9 @@ func TestManagementPathPrefix(t *testing.T) { pathConfigKey: "/management_prefix", } - f := mbtest.NewEventsFetcher(t, config) - _, err := f.Fetch() - assert.NoError(t, err) + f := mbtest.NewReportingMetricSetV2(t, config) + _, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) + } } From 84603c2534ba93285649fe7aa54fac0a4162ddca Mon Sep 17 00:00:00 2001 From: Adrian Serrano Date: Wed, 27 Feb 2019 15:56:26 +0100 Subject: [PATCH 092/332] Fix Suricata ingest pipeline (#10964) A bad processor definition in the ingest pipeline was causing the tests to stall. --- x-pack/filebeat/module/suricata/eve/ingest/pipeline.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/filebeat/module/suricata/eve/ingest/pipeline.json b/x-pack/filebeat/module/suricata/eve/ingest/pipeline.json index 3276c1968db..49266572b2b 100644 --- a/x-pack/filebeat/module/suricata/eve/ingest/pipeline.json +++ b/x-pack/filebeat/module/suricata/eve/ingest/pipeline.json @@ -64,7 +64,7 @@ }, { "script": { - "type": "painless", + "lang": "painless", "source": "def domain = ctx.destination?.domain; if (domain instanceof Collection) { domain = domain.stream().distinct().collect(Collectors.toList()); if (domain.length == 1) { domain = domain[0]; }ctx.destination.domain = domain; }", "ignore_failure": true } From 9cc97259599925a965f04a1c8228a76fe97891b5 Mon Sep 17 00:00:00 2001 From: alakahakai Date: Wed, 27 Feb 2019 07:59:37 -0800 Subject: [PATCH 093/332] Fix errors in filebeat Zeek dashboard and README files. Update field descriptions. Add notice.log support. (#10916) * Update Zeek dashboard and README.md * Add support for notice.log * Update field descriptions --- CHANGELOG.next.asciidoc | 1 + filebeat/docs/fields.asciidoc | 564 ++++++++++++++- x-pack/filebeat/filebeat.reference.yml | 2 + .../filebeat/module/zeek/README-developer.md | 6 +- x-pack/filebeat/module/zeek/README.md | 6 +- x-pack/filebeat/module/zeek/_meta/config.yml | 2 + x-pack/filebeat/module/zeek/_meta/fields.yml | 354 +++++++++- .../7/dashboard/Filebeat-Zeek-Overview.json | 650 +++++++++++------- .../zeek/connection/config/connection.yml | 2 +- .../zeek/connection/ingest/pipeline.json | 35 +- .../module/zeek/connection/manifest.yml | 2 +- .../zeek/connection/test/connection-json.log | 2 + .../test/connection-json.log-expected.json | 87 ++- .../module/zeek/dns/ingest/pipeline.json | 13 +- x-pack/filebeat/module/zeek/dns/manifest.yml | 2 +- .../zeek/dns/test/dns-json.log-expected.json | 4 +- x-pack/filebeat/module/zeek/fields.go | 2 +- .../module/zeek/files/ingest/pipeline.json | 14 +- .../filebeat/module/zeek/files/manifest.yml | 2 +- .../files/test/files-json.log-expected.json | 8 +- .../module/zeek/http/ingest/pipeline.json | 13 +- x-pack/filebeat/module/zeek/http/manifest.yml | 2 +- .../http/test/http-json.log-expected.json | 4 +- x-pack/filebeat/module/zeek/module.yml | 2 +- .../module/zeek/notice/config/notice.yml | 80 +++ .../module/zeek/notice/ingest/pipeline.json | 46 ++ .../filebeat/module/zeek/notice/manifest.yml | 19 + .../module/zeek/notice/test/notice-json.log | 1 + .../notice/test/notice-json.log-expected.json | 23 + .../module/zeek/ssl/ingest/pipeline.json | 13 +- x-pack/filebeat/module/zeek/ssl/manifest.yml | 2 +- .../zeek/ssl/test/ssl-json.log-expected.json | 8 +- x-pack/filebeat/modules.d/zeek.yml.disabled | 19 - 33 files changed, 1634 insertions(+), 356 deletions(-) create mode 100644 x-pack/filebeat/module/zeek/notice/config/notice.yml create mode 100644 x-pack/filebeat/module/zeek/notice/ingest/pipeline.json create mode 100644 x-pack/filebeat/module/zeek/notice/manifest.yml create mode 100644 x-pack/filebeat/module/zeek/notice/test/notice-json.log create mode 100644 x-pack/filebeat/module/zeek/notice/test/notice-json.log-expected.json delete mode 100644 x-pack/filebeat/modules.d/zeek.yml.disabled diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 179fed210d8..acbe1f04a52 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -150,6 +150,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Cover empty request data, url and version in Apache2 module{pull}10730[10730] - Fix registry entries not being cleaned due to race conditions. {pull}10747[10747] - Improve detection of file deletion on Windows. {pull}10747[10747] +- Fix errors in filebeat Zeek dashboard and README files. Add notice.log support. {pull}10916[10916] *Heartbeat* diff --git a/filebeat/docs/fields.asciidoc b/filebeat/docs/fields.asciidoc index d1fe115e4ae..e550a37c11d 100644 --- a/filebeat/docs/fields.asciidoc +++ b/filebeat/docs/fields.asciidoc @@ -13487,6 +13487,9 @@ Fields from Zeek/Bro logs after normalization -- type: keyword +A unique identifier of the session + + -- *`zeek.connection.local_orig`*:: @@ -13494,6 +13497,9 @@ type: keyword -- type: boolean +Indicates whether the session is originated locally + + -- *`zeek.connection.local_resp`*:: @@ -13501,6 +13507,9 @@ type: boolean -- type: boolean +Indicates whether the session is responded locally + + -- *`zeek.connection.missed_bytes`*:: @@ -13508,6 +13517,9 @@ type: boolean -- type: long +Missed bytes for the session + + -- *`zeek.connection.state`*:: @@ -13515,6 +13527,9 @@ type: long -- type: keyword +Flags indicating the state of the session + + -- *`zeek.connection.history`*:: @@ -13522,6 +13537,9 @@ type: keyword -- type: keyword +Flags indicating the history of the session + + -- *`zeek.connection.orig_l2_addr`*:: @@ -13529,33 +13547,48 @@ type: keyword -- type: keyword +Link-layer address of the originator, if available + + -- -*`zeek.resp_l2_addr`*:: +*`zeek.connection.resp_l2_addr`*:: + -- type: keyword +Link-layer address of the responder, if available + + -- -*`zeek.vlan`*:: +*`zeek.connection.vlan`*:: + -- -type: keyword +type: integer + +VLAN identifier + -- -*`zeek.inner_vlan`*:: +*`zeek.connection.inner_vlan`*:: + -- -type: keyword +type: integer + +VLAN identifier + -- *`zeek.dns.trans_id`*:: + -- -type: integer +type: keyword + +DNS transaction identifier + -- @@ -13564,6 +13597,9 @@ type: integer -- type: double +Round trip time for the query and response + + -- *`zeek.dns.query`*:: @@ -13571,6 +13607,9 @@ type: double -- type: keyword +The domain name that is the subject of the DNS query + + -- *`zeek.dns.qclass`*:: @@ -13578,6 +13617,9 @@ type: keyword -- type: long +The QCLASS value specifying the class of the query + + -- *`zeek.dns.qclass_name`*:: @@ -13585,6 +13627,9 @@ type: long -- type: keyword +A descriptive name for the class of the query + + -- *`zeek.dns.qtype`*:: @@ -13592,6 +13637,9 @@ type: keyword -- type: long +A QTYPE value specifying the type of the query + + -- *`zeek.dns.qtype_name`*:: @@ -13599,6 +13647,9 @@ type: long -- type: keyword +A descriptive name for the type of the query + + -- *`zeek.dns.rcode`*:: @@ -13606,6 +13657,9 @@ type: keyword -- type: long +The response code value in DNS response messages + + -- *`zeek.dns.rcode_name`*:: @@ -13613,6 +13667,9 @@ type: long -- type: keyword +A descriptive name for the response code value + + -- *`zeek.dns.AA`*:: @@ -13620,6 +13677,10 @@ type: keyword -- type: boolean +The Authoritative Answer bit for response messages specifies that the responding +name server is an authority for the domain name in the question section + + -- *`zeek.dns.TC`*:: @@ -13627,6 +13688,9 @@ type: boolean -- type: boolean +The Truncation bit specifies that the message was truncated + + -- *`zeek.dns.RD`*:: @@ -13634,6 +13698,10 @@ type: boolean -- type: boolean +The Recursion Desired bit in a request message indicates that the client +wants recursive service for this query + + -- *`zeek.dns.RA`*:: @@ -13641,6 +13709,10 @@ type: boolean -- type: boolean +The Recursion Available bit in a response message indicates that the name +server supports recursive queries. + + -- *`zeek.dns.answers`*:: @@ -13648,6 +13720,9 @@ type: boolean -- type: keyword +The set of resource descriptions in the query answer + + -- *`zeek.dns.TTLs`*:: @@ -13655,6 +13730,9 @@ type: keyword -- type: double +The caching intervals of the associated RRs described by the answers field + + -- *`zeek.dns.rejected`*:: @@ -13662,6 +13740,9 @@ type: double -- type: boolean +Indicates whether the DNS query was rejected by the server + + -- *`zeek.dns.total_answers`*:: @@ -13669,6 +13750,9 @@ type: boolean -- type: integer +The total number of resource records in the reply + + -- *`zeek.dns.total_replies`*:: @@ -13676,6 +13760,9 @@ type: integer -- type: integer +The total number of resource records in the reply message + + -- *`zeek.dns.saw_query`*:: @@ -13683,6 +13770,9 @@ type: integer -- type: boolean +Whether the full DNS query has been seen + + -- *`zeek.dns.saw_reply`*:: @@ -13690,6 +13780,9 @@ type: boolean -- type: boolean +Whether the full DNS reply has been seen + + -- *`zeek.http.trans_depth`*:: @@ -13697,6 +13790,9 @@ type: boolean -- type: integer +Represents the pipelined depth into the connection of this request/response transaction + + -- *`zeek.http.status_msg`*:: @@ -13704,6 +13800,9 @@ type: integer -- type: keyword +Status message returned by the server + + -- *`zeek.http.info_code`*:: @@ -13711,6 +13810,9 @@ type: keyword -- type: integer +Last seen 1xx informational reply code returned by the server. + + -- *`zeek.http.info_msg`*:: @@ -13718,20 +13820,30 @@ type: integer -- type: keyword +Last seen 1xx informational reply message returned by the server. + + -- -*`zeek.http.filename`*:: +*`zeek.http.tags`*:: + -- type: keyword +A set of indicators of various attributes discovered and related to a particular +request/response pair. + + -- -*`zeek.http.tags`*:: +*`zeek.http.password`*:: + -- type: keyword +Password if basic-auth is performed for the request + + -- *`zeek.http.captured_password`*:: @@ -13739,6 +13851,9 @@ type: keyword -- type: boolean +Determines if the password will be captured for this request + + -- *`zeek.http.proxied`*:: @@ -13746,6 +13861,9 @@ type: boolean -- type: keyword +All of the headers that may indicate if the HTTP request was proxied + + -- *`zeek.http.range_request`*:: @@ -13753,6 +13871,9 @@ type: keyword -- type: boolean +Indicates if this request can assume 206 partial content in response + + -- *`zeek.http.client_header_names`*:: @@ -13760,6 +13881,10 @@ type: boolean -- type: keyword +The vector of HTTP header names sent by the client. No header values +are included here, just the header names. + + -- *`zeek.http.server_header_names`*:: @@ -13767,6 +13892,10 @@ type: keyword -- type: keyword +The vector of HTTP header names sent by the server. No header values +are included here, just the header names + + -- *`zeek.http.orig_fuids`*:: @@ -13774,6 +13903,9 @@ type: keyword -- type: keyword +An ordered vector of file unique IDs from the originator + + -- *`zeek.http.orig_mime_types`*:: @@ -13781,6 +13913,9 @@ type: keyword -- type: keyword +An ordered vector of mime types from the originator + + -- *`zeek.http.orig_filenames`*:: @@ -13788,6 +13923,9 @@ type: keyword -- type: keyword +An ordered vector of filenames from the originator + + -- *`zeek.http.resp_fuids`*:: @@ -13795,6 +13933,9 @@ type: keyword -- type: keyword +An ordered vector of file unique IDs from the responder + + -- *`zeek.http.resp_mime_types`*:: @@ -13802,6 +13943,9 @@ type: keyword -- type: keyword +An ordered vector of mime types from the responder + + -- *`zeek.http.resp_filenames`*:: @@ -13809,6 +13953,9 @@ type: keyword -- type: keyword +An ordered vector of filenames from the responder + + -- *`zeek.http.orig_mime_depth`*:: @@ -13816,6 +13963,9 @@ type: keyword -- type: integer +Current number of MIME entities in the HTTP request message body + + -- *`zeek.http.resp_mime_depth`*:: @@ -13823,6 +13973,9 @@ type: integer -- type: integer +Current number of MIME entities in the HTTP response message body + + -- *`zeek.files.fuid`*:: @@ -13830,6 +13983,9 @@ type: integer -- type: keyword +A file unique identifier + + -- *`zeek.files.tx_host`*:: @@ -13837,6 +13993,9 @@ type: keyword -- type: ip +The host that transferred the file + + -- *`zeek.files.rx_host`*:: @@ -13844,6 +14003,9 @@ type: ip -- type: ip +The host that received the file + + -- *`zeek.files.session_ids`*:: @@ -13851,6 +14013,9 @@ type: ip -- type: keyword +The sessions that have this file + + -- *`zeek.files.source`*:: @@ -13858,6 +14023,11 @@ type: keyword -- type: keyword +An identification of the source of the file data. E.g. it may be a network protocol +over which it was transferred, or a local file path which was read, or some other +input source + + -- *`zeek.files.depth`*:: @@ -13865,6 +14035,11 @@ type: keyword -- type: long +A value to represent the depth of this file in relation to its source. In SMTP, it +is the depth of the MIME attachment on the message. In HTTP, it is the depth of the +request within the TCP connection + + -- *`zeek.files.analyzers`*:: @@ -13872,6 +14047,9 @@ type: long -- type: keyword +A set of analysis types done during the file analysis + + -- *`zeek.files.mime_type`*:: @@ -13879,6 +14057,9 @@ type: keyword -- type: keyword +Mime type of the file + + -- *`zeek.files.filename`*:: @@ -13886,6 +14067,9 @@ type: keyword -- type: keyword +Name of the file if available + + -- *`zeek.files.local_orig`*:: @@ -13893,6 +14077,10 @@ type: keyword -- type: boolean +If the source of this file is a network connection, this field indicates if the data +originated from the local network or not + + -- *`zeek.files.is_orig`*:: @@ -13900,6 +14088,10 @@ type: boolean -- type: boolean +If the source of this file is a network connection, this field indicates if the file is +being sent by the originator of the connection or the responder + + -- *`zeek.files.duration`*:: @@ -13907,6 +14099,9 @@ type: boolean -- type: double +The duration the file was analyzed for. Not the duration of the session. + + -- *`zeek.files.seen_bytes`*:: @@ -13914,6 +14109,9 @@ type: double -- type: long +Number of bytes provided to the file analysis engine for the file + + -- *`zeek.files.total_bytes`*:: @@ -13921,6 +14119,9 @@ type: long -- type: long +Total number of bytes that are supposed to comprise the full file + + -- *`zeek.files.missing_bytes`*:: @@ -13928,6 +14129,10 @@ type: long -- type: long +The number of bytes in the file stream that were completely missed during the process +of analysis + + -- *`zeek.files.overflow_bytes`*:: @@ -13935,6 +14140,10 @@ type: long -- type: long +The number of bytes in the file stream that were not delivered to stream file analyzers. +This could be overlapping bytes or bytes that couldn't be reassembled + + -- *`zeek.files.timedout`*:: @@ -13942,6 +14151,9 @@ type: long -- type: boolean +Whether the file analysis timed out at least once for the file + + -- *`zeek.files.parent_fuid`*:: @@ -13949,6 +14161,10 @@ type: boolean -- type: keyword +Identifier associated with a container file from which this one was extracted as part of +the file analysis + + -- *`zeek.files.md5`*:: @@ -13956,6 +14172,9 @@ type: keyword -- type: keyword +An MD5 digest of the file contents + + -- *`zeek.files.sha1`*:: @@ -13963,6 +14182,9 @@ type: keyword -- type: keyword +A SHA1 digest of the file contents + + -- *`zeek.files.sha256`*:: @@ -13970,6 +14192,9 @@ type: keyword -- type: keyword +A SHA256 digest of the file contents. + + -- *`zeek.files.extracted`*:: @@ -13977,6 +14202,9 @@ type: keyword -- type: keyword +Local filename of extracted file + + -- *`zeek.files.extracted_cutoff`*:: @@ -13984,6 +14212,9 @@ type: keyword -- type: boolean +Indicate whether the file being extracted was cut off hence not extracted completely + + -- *`zeek.files.extracted_size`*:: @@ -13991,6 +14222,9 @@ type: boolean -- type: long +The number of bytes extracted to disk + + -- *`zeek.files.entropy`*:: @@ -13998,6 +14232,9 @@ type: long -- type: double +The information density of the contents of the file + + -- *`zeek.ssl.version`*:: @@ -14005,6 +14242,9 @@ type: double -- type: keyword +SSL/TLS version that was logged + + -- *`zeek.ssl.cipher`*:: @@ -14012,6 +14252,9 @@ type: keyword -- type: keyword +SSL/TLS cipher suite that was logged + + -- *`zeek.ssl.curve`*:: @@ -14019,6 +14262,9 @@ type: keyword -- type: keyword +Elliptic curve that was logged when using ECDH/ECDHE + + -- *`zeek.ssl.server_name`*:: @@ -14026,6 +14272,10 @@ type: keyword -- type: keyword +Value of the Server Name Indicator SSL/TLS extension. It indicates the server name +that the client was requesting + + -- *`zeek.ssl.resumed`*:: @@ -14033,6 +14283,10 @@ type: keyword -- type: boolean +Flag to indicate if the session was resumed reusing the key material exchanged in an +earlier connection + + -- *`zeek.ssl.next_protocol`*:: @@ -14040,6 +14294,9 @@ type: boolean -- type: keyword +Next protocol the server chose using the application layer next protocol extension + + -- *`zeek.ssl.established`*:: @@ -14047,6 +14304,9 @@ type: keyword -- type: boolean +Flag to indicate if this ssl session has been established successfully + + -- *`zeek.ssl.cert_chain`*:: @@ -14054,6 +14314,9 @@ type: boolean -- type: keyword +Chain of certificates offered by the server to validate its complete signing chain + + -- *`zeek.ssl.cert_chain_fuids`*:: @@ -14061,6 +14324,9 @@ type: keyword -- type: keyword +An ordered vector of certificate file identifiers for the certificates offered by the server + + -- *`zeek.ssl.client_cert_chain`*:: @@ -14068,6 +14334,9 @@ type: keyword -- type: keyword +Chain of certificates offered by the client to validate its complete signing chain + + -- *`zeek.ssl.client_cert_chain_fuids`*:: @@ -14075,6 +14344,9 @@ type: keyword -- type: keyword +An ordered vector of certificate file identifiers for the certificates offered by the client + + -- *`zeek.ssl.issuer`*:: @@ -14082,6 +14354,9 @@ type: keyword -- type: keyword +Subject of the signer of the X.509 certificate offered by the server + + -- *`zeek.ssl.client_issuer`*:: @@ -14089,6 +14364,9 @@ type: keyword -- type: keyword +Subject of the X.509 certificate offered by the client + + -- *`zeek.ssl.validation_status`*:: @@ -14096,6 +14374,19 @@ type: keyword -- type: keyword +Result of certificate validation for this connection + + +-- + +*`zeek.ssl.validation_code`*:: ++ +-- +type: keyword + +Result of certificate validation for this connection, given as OpenSSL validation code + + -- *`zeek.ssl.subject`*:: @@ -14103,6 +14394,9 @@ type: keyword -- type: keyword +Subject of the X.509 certificate offered by the server + + -- *`zeek.ssl.client_subject`*:: @@ -14110,6 +14404,9 @@ type: keyword -- type: keyword +Subject of the X.509 certificate offered by the client + + -- *`zeek.ssl.last_alert`*:: @@ -14117,5 +14414,256 @@ type: keyword -- type: keyword +Last alert that was seen during the connection + + +-- + +*`zeek.notice.connection_id`*:: ++ +-- +type: keyword + +Identifier of the related connection session + + +-- + +*`zeek.notice.icmp_id`*:: ++ +-- +type: keyword + +Identifier of the related ICMP session + + +-- + +*`zeek.notice.file.id`*:: ++ +-- +type: keyword + +An identifier associated with a single file that is related to this notice + + +-- + +*`zeek.notice.file.parent_id`*:: ++ +-- +type: keyword + +Identifier associated with a container file from which this one was extracted + + +-- + +*`zeek.notice.file.source`*:: ++ +-- +type: keyword + +An identification of the source of the file data. E.g. it may be a network protocol +over which it was transferred, or a local file path which was read, or some other +input source + + +-- + +*`zeek.notice.file.mime_type`*:: ++ +-- +type: keyword + +A mime type if the notice is related to a file + + +-- + +*`zeek.notice.file.is_orig`*:: ++ +-- +type: boolean + +If the source of this file is a network connection, this field indicates if the file is +being sent by the originator of the connection or the responder + + +-- + +*`zeek.notice.file.seen_bytes`*:: ++ +-- +type: long + +Number of bytes provided to the file analysis engine for the file + + +-- + +*`zeek.fnotice.file.total_bytes`*:: ++ +-- +type: long + +Total number of bytes that are supposed to comprise the full file + + +-- + +*`zeek.notice.file.missing_bytes`*:: ++ +-- +type: long + +The number of bytes in the file stream that were completely missed during the process +of analysis + + +-- + +*`zeek.notice.file.overflow_bytes`*:: ++ +-- +type: long + +The number of bytes in the file stream that were not delivered to stream file analyzers. +This could be overlapping bytes or bytes that couldn't be reassembled + + +-- + +*`zeek.notice.fuid`*:: ++ +-- +type: keyword + +A file unique ID if this notice is related to a file + + +-- + +*`zeek.notice.note`*:: ++ +-- +type: keyword + +The type of the notice + + +-- + +*`zeek.notice.msg`*:: ++ +-- +type: keyword + +The human readable message for the notice. + + +-- + +*`zeek.notice.sub`*:: ++ +-- +type: keyword + +The human readable sub-message + + +-- + +*`zeek.notice.n`*:: ++ +-- +type: long + +Associated count, or a status code + + +-- + +*`zeek.notice.peer_name`*:: ++ +-- +type: keyword + +Name of remote peer that raised this notice + + +-- + +*`zeek.notice.peer_descr`*:: ++ +-- +type: text + +Textual description for the peer that raised this notice + + +-- + +*`zeek.notice.actions`*:: ++ +-- +type: keyword + +The actions which have been applied to this notice + + +-- + +*`zeek.notice.email_body_sections`*:: ++ +-- +type: text + +By adding chunks of text into this element, other scripts can expand on notices +that are being emailed + + +-- + +*`zeek.notice.email_delay_tokens`*:: ++ +-- +type: keyword + +Adding a string token to this set will cause the built-in emailing functionality +to delay sending the email either the token has been removed or the email +has been delayed for the specified time duration + + +-- + +*`zeek.notice.identifier`*:: ++ +-- +type: keyword + +This field is provided when a notice is generated for the purpose of deduplicating notices + + +-- + +*`zeek.notice.suppress_for`*:: ++ +-- +type: double + +This field indicates the length of time that this unique notice should be suppressed + + +-- + +*`zeek.notice.dropped`*:: ++ +-- +type: boolean + +Indicate if the source IP address was dropped and denied network access + + -- diff --git a/x-pack/filebeat/filebeat.reference.yml b/x-pack/filebeat/filebeat.reference.yml index 1d0217307c2..1ac2e2cb14d 100644 --- a/x-pack/filebeat/filebeat.reference.yml +++ b/x-pack/filebeat/filebeat.reference.yml @@ -445,6 +445,8 @@ filebeat.modules: enabled: true ssl: enabled: true + notice: + enabled: true # Set custom paths for the log files. If left empty, # Filebeat will choose the paths depending on your OS. diff --git a/x-pack/filebeat/module/zeek/README-developer.md b/x-pack/filebeat/module/zeek/README-developer.md index a1b431b64a6..20410f14c1b 100644 --- a/x-pack/filebeat/module/zeek/README-developer.md +++ b/x-pack/filebeat/module/zeek/README-developer.md @@ -14,7 +14,7 @@ brew install bro * Configure it to process network traffic and generate logs. * Edit `/usr/local/etc/node.cfg` to use the proper network interfaces. -* Edit `/usr/local/etc/network.cfg` to specify local networks accordingly. +* Edit `/usr/local/etc/networks.cfg` to specify local networks accordingly. * Set `redef LogAscii::use_json=T;` in `/usr/local/share/bro/site/local.bro` to use JSON output. ### Install Zeek/Bro (for Ubuntu Linux) @@ -26,7 +26,7 @@ apt install broctl * Configure it to process network traffic and generate logs. * Edit `/etc/bro/node.cfg` to use the proper network interfaces. -* Edit `/etc/bro/network.cfg` to specify local networks accordingly. +* Edit `/etc/bro/networks.cfg` to specify local networks accordingly. * Set `redef LogAscii::use_json=T;` in `/usr/share/bro/site/local.bro` to use JSON output. ## Start Zeek/Bro @@ -52,7 +52,7 @@ mage build Update filebeat.yml to point to Elasticsearch and Kibana. Setup Filebeat. ``` -./filebeat setup --modules zeek -e -E setup.dashboards.directory=build/kibana +./filebeat setup --modules zeek -e -E 'setup.dashboards.directory=build/kibana' ``` Enable the Filebeat zeek module diff --git a/x-pack/filebeat/module/zeek/README.md b/x-pack/filebeat/module/zeek/README.md index 44a51dbf456..740fff62641 100644 --- a/x-pack/filebeat/module/zeek/README.md +++ b/x-pack/filebeat/module/zeek/README.md @@ -14,7 +14,7 @@ brew install bro * Configure it to process network traffic and generate logs. * Edit `/usr/local/etc/node.cfg` to use the proper network interfaces. -* Edit `/usr/local/etc/network.cfg` to specify local networks accordingly. +* Edit `/usr/local/etc/networks.cfg` to specify local networks accordingly. * Set `redef LogAscii::use_json=T;` in `/usr/local/share/bro/site/local.bro` to use JSON output. ### Install Zeek/Bro (for Ubuntu Linux) @@ -26,7 +26,7 @@ apt install broctl * Configure it to process network traffic and generate logs. * Edit `/etc/bro/node.cfg` to use the proper network interfaces. -* Edit `/etc/bro/network.cfg` to specify local networks accordingly. +* Edit `/etc/bro/networks.cfg` to specify local networks accordingly. * Set `redef LogAscii::use_json=T;` in `/usr/share/bro/site/local.bro` to use JSON output. ## Start Zeek/Bro @@ -44,7 +44,7 @@ Grab the filebeat binary from elastic.co, and install it by following the instru Update filebeat.yml to point to Elasticsearch and Kibana. Setup Filebeat. ``` -./filebeat setup --modules zeek -e -E setup.dashboards.directory=build/kibana +./filebeat setup --modules zeek -e -E 'setup.dashboards.enabled=true' ``` Enable the Filebeat zeek module diff --git a/x-pack/filebeat/module/zeek/_meta/config.yml b/x-pack/filebeat/module/zeek/_meta/config.yml index a79fc0456c2..22bf8b09f27 100644 --- a/x-pack/filebeat/module/zeek/_meta/config.yml +++ b/x-pack/filebeat/module/zeek/_meta/config.yml @@ -10,6 +10,8 @@ enabled: true ssl: enabled: true + notice: + enabled: true # Set custom paths for the log files. If left empty, # Filebeat will choose the paths depending on your OS. diff --git a/x-pack/filebeat/module/zeek/_meta/fields.yml b/x-pack/filebeat/module/zeek/_meta/fields.yml index 60c59f4e75d..cba71f9f4e7 100644 --- a/x-pack/filebeat/module/zeek/_meta/fields.yml +++ b/x-pack/filebeat/module/zeek/_meta/fields.yml @@ -10,278 +10,610 @@ fields: - name: session_id type: keyword + description: > + A unique identifier of the session - name: connection.local_orig type: boolean + description: > + Indicates whether the session is originated locally - name: connection.local_resp type: boolean + description: > + Indicates whether the session is responded locally - name: connection.missed_bytes type: long + description: > + Missed bytes for the session - name: connection.state type: keyword + description: > + Flags indicating the state of the session - name: connection.history type: keyword + description: > + Flags indicating the history of the session - name: connection.orig_l2_addr type: keyword + description: > + Link-layer address of the originator, if available - - name: resp_l2_addr + - name: connection.resp_l2_addr type: keyword + description: > + Link-layer address of the responder, if available - - name: vlan - type: keyword + - name: connection.vlan + type: integer + description: > + VLAN identifier - - name: inner_vlan - type: keyword + - name: connection.inner_vlan + type: integer + description: > + VLAN identifier - name: dns.trans_id - type: integer + type: keyword + description: > + DNS transaction identifier - name: dns.rtt type: double + description: > + Round trip time for the query and response - name: dns.query type: keyword + description: > + The domain name that is the subject of the DNS query - name: dns.qclass type: long + description: > + The QCLASS value specifying the class of the query - name: dns.qclass_name type: keyword + description: > + A descriptive name for the class of the query - name: dns.qtype type: long + description: > + A QTYPE value specifying the type of the query - name: dns.qtype_name type: keyword + description: > + A descriptive name for the type of the query - name: dns.rcode type: long + description: > + The response code value in DNS response messages - name: dns.rcode_name type: keyword + description: > + A descriptive name for the response code value - name: dns.AA type: boolean + description: | + The Authoritative Answer bit for response messages specifies that the responding + name server is an authority for the domain name in the question section - name: dns.TC type: boolean + description: > + The Truncation bit specifies that the message was truncated - name: dns.RD type: boolean + description: | + The Recursion Desired bit in a request message indicates that the client + wants recursive service for this query - name: dns.RA type: boolean + description: | + The Recursion Available bit in a response message indicates that the name + server supports recursive queries. - name: dns.answers type: keyword + description: > + The set of resource descriptions in the query answer - name: dns.TTLs type: double + description: > + The caching intervals of the associated RRs described by the answers field - name: dns.rejected type: boolean + description: > + Indicates whether the DNS query was rejected by the server - name: dns.total_answers type: integer + description: > + The total number of resource records in the reply - name: dns.total_replies type: integer + description: > + The total number of resource records in the reply message - name: dns.saw_query type: boolean + description: > + Whether the full DNS query has been seen - name: dns.saw_reply type: boolean + description: > + Whether the full DNS reply has been seen - name: http.trans_depth type: integer + description: > + Represents the pipelined depth into the connection of this request/response transaction - name: http.status_msg type: keyword + description: > + Status message returned by the server - name: http.info_code type: integer + description: > + Last seen 1xx informational reply code returned by the server. - name: http.info_msg type: keyword + description: > + Last seen 1xx informational reply message returned by the server. - - name: http.filename + - name: http.tags type: keyword + description: | + A set of indicators of various attributes discovered and related to a particular + request/response pair. - - name: http.tags + + - name: http.password type: keyword + description: > + Password if basic-auth is performed for the request - name: http.captured_password type: boolean + description: > + Determines if the password will be captured for this request - name: http.proxied type: keyword + description: > + All of the headers that may indicate if the HTTP request was proxied - name: http.range_request type: boolean + description: > + Indicates if this request can assume 206 partial content in response - name: http.client_header_names type: keyword + description: | + The vector of HTTP header names sent by the client. No header values + are included here, just the header names. - name: http.server_header_names type: keyword + description: | + The vector of HTTP header names sent by the server. No header values + are included here, just the header names - name: http.orig_fuids type: keyword + description: > + An ordered vector of file unique IDs from the originator - name: http.orig_mime_types type: keyword + description: > + An ordered vector of mime types from the originator - name: http.orig_filenames type: keyword + description: > + An ordered vector of filenames from the originator - name: http.resp_fuids type: keyword + description: > + An ordered vector of file unique IDs from the responder - name: http.resp_mime_types type: keyword + description: > + An ordered vector of mime types from the responder - name: http.resp_filenames type: keyword + description: > + An ordered vector of filenames from the responder - name: http.orig_mime_depth type: integer + description: > + Current number of MIME entities in the HTTP request message body - name: http.resp_mime_depth type: integer + description: > + Current number of MIME entities in the HTTP response message body - name: files.fuid type: keyword + description: > + A file unique identifier - name: files.tx_host type: ip + description: > + The host that transferred the file - name: files.rx_host type: ip + description: > + The host that received the file - name: files.session_ids type: keyword + description: > + The sessions that have this file - name: files.source type: keyword + description: | + An identification of the source of the file data. E.g. it may be a network protocol + over which it was transferred, or a local file path which was read, or some other + input source - name: files.depth type: long - - - names: files.direction - type: keyword + description: | + A value to represent the depth of this file in relation to its source. In SMTP, it + is the depth of the MIME attachment on the message. In HTTP, it is the depth of the + request within the TCP connection - name: files.analyzers type: keyword + description: > + A set of analysis types done during the file analysis - name: files.mime_type type: keyword + description: > + Mime type of the file - name: files.filename type: keyword + description: > + Name of the file if available - name: files.local_orig type: boolean + description: | + If the source of this file is a network connection, this field indicates if the data + originated from the local network or not - name: files.is_orig type: boolean + description: | + If the source of this file is a network connection, this field indicates if the file is + being sent by the originator of the connection or the responder - name: files.duration type: double + description: > + The duration the file was analyzed for. Not the duration of the session. - name: files.seen_bytes type: long + description: > + Number of bytes provided to the file analysis engine for the file - name: files.total_bytes type: long + description: > + Total number of bytes that are supposed to comprise the full file - name: files.missing_bytes type: long + description: | + The number of bytes in the file stream that were completely missed during the process + of analysis - name: files.overflow_bytes type: long + description: | + The number of bytes in the file stream that were not delivered to stream file analyzers. + This could be overlapping bytes or bytes that couldn't be reassembled - name: files.timedout type: boolean + description: > + Whether the file analysis timed out at least once for the file - name: files.parent_fuid type: keyword + description: | + Identifier associated with a container file from which this one was extracted as part of + the file analysis - name: files.md5 type: keyword + description: > + An MD5 digest of the file contents - name: files.sha1 type: keyword + description: > + A SHA1 digest of the file contents - name: files.sha256 type: keyword + description: > + A SHA256 digest of the file contents. - name: files.extracted type: keyword + description: > + Local filename of extracted file - name: files.extracted_cutoff type: boolean + description: > + Indicate whether the file being extracted was cut off hence not extracted completely - name: files.extracted_size type: long + description: > + The number of bytes extracted to disk - name: files.entropy type: double + description: > + The information density of the contents of the file - name: ssl.version type: keyword + description: > + SSL/TLS version that was logged - name: ssl.cipher type: keyword + description: > + SSL/TLS cipher suite that was logged - name: ssl.curve type: keyword + description: > + Elliptic curve that was logged when using ECDH/ECDHE - name: ssl.server_name type: keyword + description: | + Value of the Server Name Indicator SSL/TLS extension. It indicates the server name + that the client was requesting - name: ssl.resumed type: boolean + description: | + Flag to indicate if the session was resumed reusing the key material exchanged in an + earlier connection - name: ssl.next_protocol type: keyword + description: > + Next protocol the server chose using the application layer next protocol extension - name: ssl.established type: boolean + description: > + Flag to indicate if this ssl session has been established successfully - name: ssl.cert_chain type: keyword + description: > + Chain of certificates offered by the server to validate its complete signing chain - name: ssl.cert_chain_fuids type: keyword + description: > + An ordered vector of certificate file identifiers for the certificates offered by the server - name: ssl.client_cert_chain type: keyword + description: > + Chain of certificates offered by the client to validate its complete signing chain - name: ssl.client_cert_chain_fuids type: keyword + description: > + An ordered vector of certificate file identifiers for the certificates offered by the client - name: ssl.issuer type: keyword + description: > + Subject of the signer of the X.509 certificate offered by the server - name: ssl.client_issuer type: keyword + description: > + Subject of the X.509 certificate offered by the client - name: ssl.validation_status type: keyword + description: > + Result of certificate validation for this connection + + - name: ssl.validation_code + type: keyword + description: > + Result of certificate validation for this connection, given as OpenSSL validation code - name: ssl.subject type: keyword + description: > + Subject of the X.509 certificate offered by the server - name: ssl.client_subject type: keyword + description: > + Subject of the X.509 certificate offered by the client - name: ssl.last_alert type: keyword + description: > + Last alert that was seen during the connection + + - name: notice.connection_id + type: keyword + description: > + Identifier of the related connection session + + - name: notice.icmp_id + type: keyword + description: > + Identifier of the related ICMP session + + - name: notice.file.id + type: keyword + description: > + An identifier associated with a single file that is related to this notice + + - name: notice.file.parent_id + type: keyword + description: > + Identifier associated with a container file from which this one was extracted + + - name: notice.file.source + type: keyword + description: | + An identification of the source of the file data. E.g. it may be a network protocol + over which it was transferred, or a local file path which was read, or some other + input source + + - name: notice.file.mime_type + type: keyword + description: > + A mime type if the notice is related to a file + + - name: notice.file.is_orig + type: boolean + description: | + If the source of this file is a network connection, this field indicates if the file is + being sent by the originator of the connection or the responder + + - name: notice.file.seen_bytes + type: long + description: > + Number of bytes provided to the file analysis engine for the file + + - name: fnotice.file.total_bytes + type: long + description: > + Total number of bytes that are supposed to comprise the full file + + - name: notice.file.missing_bytes + type: long + description: | + The number of bytes in the file stream that were completely missed during the process + of analysis + + - name: notice.file.overflow_bytes + type: long + description: | + The number of bytes in the file stream that were not delivered to stream file analyzers. + This could be overlapping bytes or bytes that couldn't be reassembled + + - name: notice.fuid + type: keyword + description: > + A file unique ID if this notice is related to a file + + - name: notice.note + type: keyword + description: > + The type of the notice + + - name: notice.msg + type: keyword + description: > + The human readable message for the notice. + + - name: notice.sub + type: keyword + description: > + The human readable sub-message + + - name: notice.n + type: long + description: > + Associated count, or a status code + + - name: notice.peer_name + type: keyword + description: > + Name of remote peer that raised this notice + + - name: notice.peer_descr + type: text + description: > + Textual description for the peer that raised this notice + + - name: notice.actions + type: keyword + description: > + The actions which have been applied to this notice + + - name: notice.email_body_sections + type: text + description: | + By adding chunks of text into this element, other scripts can expand on notices + that are being emailed + + - name: notice.email_delay_tokens + type: keyword + description: | + Adding a string token to this set will cause the built-in emailing functionality + to delay sending the email either the token has been removed or the email + has been delayed for the specified time duration + + - name: notice.identifier + type: keyword + description: > + This field is provided when a notice is generated for the purpose of deduplicating notices + + - name: notice.suppress_for + type: double + description: > + This field indicates the length of time that this unique notice should be suppressed + + - name: notice.dropped + type: boolean + description: > + Indicate if the source IP address was dropped and denied network access + + diff --git a/x-pack/filebeat/module/zeek/_meta/kibana/7/dashboard/Filebeat-Zeek-Overview.json b/x-pack/filebeat/module/zeek/_meta/kibana/7/dashboard/Filebeat-Zeek-Overview.json index 5fd7816eb98..8e12b26cb26 100644 --- a/x-pack/filebeat/module/zeek/_meta/kibana/7/dashboard/Filebeat-Zeek-Overview.json +++ b/x-pack/filebeat/module/zeek/_meta/kibana/7/dashboard/Filebeat-Zeek-Overview.json @@ -3,17 +3,194 @@ { "attributes": { "description": "", + "hits": 0, "kibanaSavedObjectMeta": { "searchSourceJSON": { "filter": [], - "index": "7f83fe80-1947-11e9-84dc-b9c00e3e5a85", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } }, - "title": "Destination Geo [SIEM Zeek] ECS", + "optionsJSON": { + "hidePanelTitles": false, + "useMargins": true + }, + "panelsJSON": [ + { + "embeddableConfig": {}, + "gridData": { + "h": 20, + "i": "1", + "w": 48, + "x": 0, + "y": 0 + }, + "panelIndex": "1", + "panelRefName": "panel_0", + "version": "7.0.0-beta1" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 12, + "i": "2", + "w": 16, + "x": 0, + "y": 20 + }, + "panelIndex": "2", + "panelRefName": "panel_1", + "version": "7.0.0-beta1" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 12, + "i": "3", + "w": 16, + "x": 16, + "y": 20 + }, + "panelIndex": "3", + "panelRefName": "panel_2", + "version": "7.0.0-beta1" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 12, + "i": "4", + "w": 16, + "x": 32, + "y": 20 + }, + "panelIndex": "4", + "panelRefName": "panel_3", + "version": "7.0.0-beta1" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 12, + "i": "5", + "w": 16, + "x": 0, + "y": 32 + }, + "panelIndex": "5", + "panelRefName": "panel_4", + "version": "7.0.0-beta1" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 12, + "i": "6", + "w": 16, + "x": 16, + "y": 32 + }, + "panelIndex": "6", + "panelRefName": "panel_5", + "version": "7.0.0-beta1" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 12, + "i": "7", + "w": 16, + "x": 32, + "y": 32 + }, + "panelIndex": "7", + "panelRefName": "panel_6", + "version": "7.0.0-beta1" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 12, + "i": "8", + "w": 48, + "x": 0, + "y": 44 + }, + "panelIndex": "8", + "panelRefName": "panel_7", + "version": "7.0.0-beta1" + } + ], + "timeRestore": false, + "title": "Zeek Overview Dashboard", + "version": 1 + }, + "id": "7cbb5410-3700-11e9-aa6d-ff445a78330c", + "migrationVersion": { + "dashboard": "7.0.0" + }, + "references": [ + { + "id": "f469f230-370c-11e9-aa6d-ff445a78330c", + "name": "panel_0", + "type": "visualization" + }, + { + "id": "1df7ea80-370d-11e9-aa6d-ff445a78330c", + "name": "panel_1", + "type": "visualization" + }, + { + "id": "466e5850-370d-11e9-aa6d-ff445a78330c", + "name": "panel_2", + "type": "visualization" + }, + { + "id": "649acd40-370d-11e9-aa6d-ff445a78330c", + "name": "panel_3", + "type": "visualization" + }, + { + "id": "9436c270-370d-11e9-aa6d-ff445a78330c", + "name": "panel_4", + "type": "visualization" + }, + { + "id": "bec2f0e0-370d-11e9-aa6d-ff445a78330c", + "name": "panel_5", + "type": "visualization" + }, + { + "id": "e042fda0-370d-11e9-aa6d-ff445a78330c", + "name": "panel_6", + "type": "visualization" + }, + { + "id": "f8c40810-370d-11e9-aa6d-ff445a78330c", + "name": "panel_7", + "type": "visualization" + } + ], + "type": "dashboard", + "updated_at": "2019-02-23T05:05:18.205Z", + "version": "WzMxMTYsNF0=" + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "indexRefName": "kibanaSavedObjectMeta.searchSourceJSON.index", + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "Destination Geo [Zeek]", "uiStateJSON": {}, "version": 1, "visState": { @@ -47,6 +224,18 @@ "params": { "addTooltip": true, "colorSchema": "Yellow to Red", + "dimensions": { + "geocentroid": null, + "geohash": null, + "metric": { + "accessor": 0, + "aggType": "count", + "format": { + "id": "number" + }, + "params": {} + } + }, "heatClusterSize": 1.5, "isDesaturated": true, "legendPosition": "bottomright", @@ -61,25 +250,27 @@ "options": { "format": "image/png", "transparent": true - }, - "selectedTmsLayer": { - "attribution": "\u003cp\u003e\u0026#169; \u003ca href=\"http://www.openstreetmap.org/copyright\"\u003eOpenStreetMap\u003c/a\u003e contributors | \u003ca href=\"https://www.elastic.co/elastic-maps-service\"\u003eElastic Maps Service\u003c/a\u003e\u003c/p\u003e\u0026#10;", - "id": "road_map", - "maxZoom": 18, - "minZoom": 0, - "subdomains": [], - "url": "https://tiles.maps.elastic.co/v2/default/{z}/{x}/{y}.png?elastic_tile_service_tos=agree\u0026my_app_name=kibana\u0026my_app_version=6.5.4\u0026license=decdfd78-7d5b-47b7-9627-603d9b789d29" } } }, - "title": "Destination Geo [SIEM Zeek] ECS", + "title": "Destination Geo [Zeek]", "type": "tile_map" } }, - "id": "5d95a3e0-1a29-11e9-84b1-a12c578fa9e8-ecs", + "id": "f469f230-370c-11e9-aa6d-ff445a78330c", + "migrationVersion": { + "visualization": "7.0.0" + }, + "references": [ + { + "id": "filebeat-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], "type": "visualization", - "updated_at": "2019-01-17T07:27:37.758Z", - "version": 1 + "updated_at": "2019-02-26T00:06:27.634Z", + "version": "WzMyNzUsNV0=" }, { "attributes": { @@ -87,14 +278,14 @@ "kibanaSavedObjectMeta": { "searchSourceJSON": { "filter": [], - "index": "7f83fe80-1947-11e9-84dc-b9c00e3e5a85", + "indexRefName": "kibanaSavedObjectMeta.searchSourceJSON.index", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } }, - "title": "Network Transport [SIEM Zeek] ECS", + "title": "Network Transport [Zeek]", "uiStateJSON": {}, "version": 1, "visState": { @@ -126,6 +317,16 @@ "params": { "addLegend": true, "addTooltip": true, + "dimensions": { + "metric": { + "accessor": 0, + "aggType": "count", + "format": { + "id": "number" + }, + "params": {} + } + }, "isDonut": true, "labels": { "last_level": true, @@ -136,14 +337,24 @@ "legendPosition": "right", "type": "pie" }, - "title": "Network Transport [SIEM Zeek] ECS", + "title": "Network Transport [Zeek]", "type": "pie" } }, - "id": "c337dbf0-1a29-11e9-84b1-a12c578fa9e8-ecs", + "id": "1df7ea80-370d-11e9-aa6d-ff445a78330c", + "migrationVersion": { + "visualization": "7.0.0" + }, + "references": [ + { + "id": "filebeat-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], "type": "visualization", - "updated_at": "2019-01-17T07:30:28.271Z", - "version": 1 + "updated_at": "2019-02-26T00:07:08.521Z", + "version": "WzMyNzgsNV0=" }, { "attributes": { @@ -151,14 +362,14 @@ "kibanaSavedObjectMeta": { "searchSourceJSON": { "filter": [], - "index": "7f83fe80-1947-11e9-84dc-b9c00e3e5a85", + "indexRefName": "kibanaSavedObjectMeta.searchSourceJSON.index", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } }, - "title": "Network Application [SIEM Zeek] ECS", + "title": "Network Application [Zeek]", "uiStateJSON": {}, "version": 1, "visState": { @@ -181,7 +392,7 @@ "orderBy": "1", "otherBucket": false, "otherBucketLabel": "Other", - "size": 10 + "size": 5 }, "schema": "segment", "type": "terms" @@ -190,6 +401,16 @@ "params": { "addLegend": true, "addTooltip": true, + "dimensions": { + "metric": { + "accessor": 0, + "aggType": "count", + "format": { + "id": "number" + }, + "params": {} + } + }, "isDonut": true, "labels": { "last_level": true, @@ -200,14 +421,24 @@ "legendPosition": "right", "type": "pie" }, - "title": "Network Application [SIEM Zeek] ECS", + "title": "Network Application [Zeek]", "type": "pie" } }, - "id": "f054ee70-1a29-11e9-84b1-a12c578fa9e8-ecs", + "id": "466e5850-370d-11e9-aa6d-ff445a78330c", + "migrationVersion": { + "visualization": "7.0.0" + }, + "references": [ + { + "id": "filebeat-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], "type": "visualization", - "updated_at": "2019-01-17T07:31:43.959Z", - "version": 1 + "updated_at": "2019-02-26T00:06:41.868Z", + "version": "WzMyNzYsNV0=" }, { "attributes": { @@ -215,14 +446,14 @@ "kibanaSavedObjectMeta": { "searchSourceJSON": { "filter": [], - "index": "7f83fe80-1947-11e9-84dc-b9c00e3e5a85", + "indexRefName": "kibanaSavedObjectMeta.searchSourceJSON.index", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } }, - "title": "Network Traffic Direction [SIEM Zeek] ECS", + "title": "Network Traffic Direction [Zeek]", "uiStateJSON": {}, "version": 1, "visState": { @@ -254,6 +485,16 @@ "params": { "addLegend": true, "addTooltip": true, + "dimensions": { + "metric": { + "accessor": 0, + "aggType": "count", + "format": { + "id": "number" + }, + "params": {} + } + }, "isDonut": true, "labels": { "last_level": true, @@ -264,14 +505,24 @@ "legendPosition": "right", "type": "pie" }, - "title": "Network Traffic Direction [SIEM Zeek] ECS", + "title": "Network Traffic Direction [Zeek]", "type": "pie" } }, - "id": "15922a40-1a2a-11e9-84b1-a12c578fa9e8-ecs", + "id": "649acd40-370d-11e9-aa6d-ff445a78330c", + "migrationVersion": { + "visualization": "7.0.0" + }, + "references": [ + { + "id": "filebeat-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], "type": "visualization", - "updated_at": "2019-01-17T07:32:46.436Z", - "version": 1 + "updated_at": "2019-02-26T00:06:55.885Z", + "version": "WzMyNzcsNV0=" }, { "attributes": { @@ -279,14 +530,14 @@ "kibanaSavedObjectMeta": { "searchSourceJSON": { "filter": [], - "index": "7f83fe80-1947-11e9-84dc-b9c00e3e5a85", + "indexRefName": "kibanaSavedObjectMeta.searchSourceJSON.index", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } }, - "title": "Top DNS Domains [SIEM Zeek] ECS", + "title": "Top DNS Domains [Zeek]", "uiStateJSON": {}, "version": 1, "visState": { @@ -309,7 +560,7 @@ "orderBy": "1", "otherBucket": false, "otherBucketLabel": "Other", - "size": 8 + "size": 10 }, "schema": "segment", "type": "terms" @@ -318,6 +569,16 @@ "params": { "addLegend": true, "addTooltip": true, + "dimensions": { + "metric": { + "accessor": 0, + "aggType": "count", + "format": { + "id": "number" + }, + "params": {} + } + }, "isDonut": true, "labels": { "last_level": true, @@ -328,14 +589,24 @@ "legendPosition": "right", "type": "pie" }, - "title": "Top DNS Domains [SIEM Zeek] ECS", + "title": "Top DNS Domains [Zeek]", "type": "pie" } }, - "id": "b3705f00-1a2c-11e9-84b1-a12c578fa9e8-ecs", + "id": "9436c270-370d-11e9-aa6d-ff445a78330c", + "migrationVersion": { + "visualization": "7.0.0" + }, + "references": [ + { + "id": "filebeat-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], "type": "visualization", - "updated_at": "2019-01-17T07:51:30.288Z", - "version": 1 + "updated_at": "2019-02-26T00:07:23.763Z", + "version": "WzMyNzksNV0=" }, { "attributes": { @@ -343,14 +614,14 @@ "kibanaSavedObjectMeta": { "searchSourceJSON": { "filter": [], - "index": "7f83fe80-1947-11e9-84dc-b9c00e3e5a85", + "indexRefName": "kibanaSavedObjectMeta.searchSourceJSON.index", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } }, - "title": "Top URL Domain [SIEM Zeek] ECS", + "title": "Top URL Domains [Zeek]", "uiStateJSON": {}, "version": 1, "visState": { @@ -373,7 +644,7 @@ "orderBy": "1", "otherBucket": false, "otherBucketLabel": "Other", - "size": 8 + "size": 10 }, "schema": "segment", "type": "terms" @@ -382,6 +653,31 @@ "params": { "addLegend": true, "addTooltip": true, + "dimensions": { + "buckets": [ + { + "accessor": 0, + "aggType": "terms", + "format": { + "id": "terms", + "params": { + "id": "string", + "missingBucketLabel": "Missing", + "otherBucketLabel": "Other" + } + }, + "params": {} + } + ], + "metric": { + "accessor": 1, + "aggType": "count", + "format": { + "id": "number" + }, + "params": {} + } + }, "isDonut": true, "labels": { "last_level": true, @@ -392,14 +688,24 @@ "legendPosition": "right", "type": "pie" }, - "title": "Top URL Domain [SIEM Zeek] ECS", + "title": "Top URL Domains [Zeek]", "type": "pie" } }, - "id": "ef0cfdc0-1a2c-11e9-84b1-a12c578fa9e8-ecs", + "id": "bec2f0e0-370d-11e9-aa6d-ff445a78330c", + "migrationVersion": { + "visualization": "7.0.0" + }, + "references": [ + { + "id": "filebeat-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], "type": "visualization", - "updated_at": "2019-01-17T07:53:10.300Z", - "version": 1 + "updated_at": "2019-02-26T00:07:49.910Z", + "version": "WzMyODEsNV0=" }, { "attributes": { @@ -407,14 +713,14 @@ "kibanaSavedObjectMeta": { "searchSourceJSON": { "filter": [], - "index": "7f83fe80-1947-11e9-84dc-b9c00e3e5a85", + "indexRefName": "kibanaSavedObjectMeta.searchSourceJSON.index", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } }, - "title": "Top SSL Server [SIEM Zeek] ECS", + "title": "Top SSL Servers [Zeek]", "uiStateJSON": {}, "version": 1, "visState": { @@ -437,7 +743,7 @@ "orderBy": "1", "otherBucket": false, "otherBucketLabel": "Other", - "size": 8 + "size": 10 }, "schema": "segment", "type": "terms" @@ -446,6 +752,16 @@ "params": { "addLegend": true, "addTooltip": true, + "dimensions": { + "metric": { + "accessor": 0, + "aggType": "count", + "format": { + "id": "number" + }, + "params": {} + } + }, "isDonut": true, "labels": { "last_level": true, @@ -456,14 +772,24 @@ "legendPosition": "right", "type": "pie" }, - "title": "Top SSL Server [SIEM Zeek] ECS", + "title": "Top SSL Servers [Zeek]", "type": "pie" } }, - "id": "13454cb0-1a2d-11e9-84b1-a12c578fa9e8-ecs", + "id": "e042fda0-370d-11e9-aa6d-ff445a78330c", + "migrationVersion": { + "visualization": "7.0.0" + }, + "references": [ + { + "id": "filebeat-*", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], "type": "visualization", - "updated_at": "2019-01-17T07:54:11.067Z", - "version": 1 + "updated_at": "2019-02-26T00:07:36.653Z", + "version": "WzMyODAsNV0=" }, { "attributes": { @@ -472,12 +798,12 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } }, - "title": "Time Series Count [SIEM Zeek] ECS", + "title": "Number of Sessions Overtime [Zeek]", "uiStateJSON": {}, "version": 1, "visState": { @@ -486,26 +812,8 @@ "axis_formatter": "number", "axis_position": "left", "axis_scale": "normal", - "background_color_rules": [ - { - "id": "3716ea90-1a2d-11e9-b2af-13b289f0bf65" - } - ], - "bar_color_rules": [ - { - "id": "3822dc50-1a2d-11e9-b2af-13b289f0bf65" - } - ], - "gauge_color_rules": [ - { - "id": "4c1a3ff0-1a2d-11e9-b2af-13b289f0bf65" - } - ], - "gauge_inner_width": 10, - "gauge_style": "half", - "gauge_width": 10, "id": "61ca57f0-469d-11e7-af02-69e470af7417", - "index_pattern": "filebeat-*", + "index_pattern": "", "interval": "auto", "series": [ { @@ -513,7 +821,6 @@ "chart_type": "line", "color": "#68BC00", "fill": 0.5, - "filter": "tags:zeek", "formatter": "number", "id": "61ca57f1-469d-11e7-af02-69e470af7417", "line_width": 1, @@ -525,183 +832,28 @@ ], "point_size": 1, "separate_axis": 0, - "split_mode": "filter", + "split_mode": "everything", "stacked": "none" } ], "show_grid": 1, - "show_legend": 0, + "show_legend": 1, "time_field": "@timestamp", "type": "timeseries" }, - "title": "Time Series Count [SIEM Zeek] ECS", + "title": "Number of Sessions Overtime [Zeek]", "type": "metrics" } }, - "id": "fad258c0-1078-11e9-b27a-69e6e8b80a25-ecs", - "type": "visualization", - "updated_at": "2019-01-17T07:56:26.486Z", - "version": 74 - }, - { - "attributes": { - "description": "", - "hits": 0, - "kibanaSavedObjectMeta": { - "searchSourceJSON": { - "filter": [], - "query": { - "language": "lucene", - "query": "" - } - } - }, - "optionsJSON": { - "darkTheme": false, - "hidePanelTitles": false, - "useMargins": true - }, - "panelsJSON": [ - { - "embeddableConfig": { - "mapCenter": [ - 20.3034175184893, - -5.537109375000001 - ], - "mapZoom": 2 - }, - "gridData": { - "h": 18, - "i": "1", - "w": 48, - "x": 0, - "y": 0 - }, - "id": "5d95a3e0-1a29-11e9-84b1-a12c578fa9e8-ecs", - "panelIndex": "1", - "type": "visualization", - "version": "6.5.4" - }, - { - "embeddableConfig": { - "vis": { - "legendOpen": true - } - }, - "gridData": { - "h": 10, - "i": "2", - "w": 16, - "x": 0, - "y": 18 - }, - "id": "c337dbf0-1a29-11e9-84b1-a12c578fa9e8-ecs", - "panelIndex": "2", - "type": "visualization", - "version": "6.5.4" - }, - { - "embeddableConfig": { - "vis": { - "legendOpen": true - } - }, - "gridData": { - "h": 10, - "i": "3", - "w": 17, - "x": 16, - "y": 18 - }, - "id": "f054ee70-1a29-11e9-84b1-a12c578fa9e8-ecs", - "panelIndex": "3", - "type": "visualization", - "version": "6.5.4" - }, - { - "embeddableConfig": { - "vis": { - "legendOpen": true - } - }, - "gridData": { - "h": 10, - "i": "4", - "w": 15, - "x": 33, - "y": 18 - }, - "id": "15922a40-1a2a-11e9-84b1-a12c578fa9e8-ecs", - "panelIndex": "4", - "type": "visualization", - "version": "6.5.4" - }, - { - "embeddableConfig": {}, - "gridData": { - "h": 11, - "i": "5", - "w": 16, - "x": 0, - "y": 28 - }, - "id": "b3705f00-1a2c-11e9-84b1-a12c578fa9e8-ecs", - "panelIndex": "5", - "type": "visualization", - "version": "6.5.4" - }, - { - "embeddableConfig": {}, - "gridData": { - "h": 11, - "i": "6", - "w": 17, - "x": 16, - "y": 28 - }, - "id": "ef0cfdc0-1a2c-11e9-84b1-a12c578fa9e8-ecs", - "panelIndex": "6", - "type": "visualization", - "version": "6.5.4" - }, - { - "embeddableConfig": {}, - "gridData": { - "h": 11, - "i": "7", - "w": 15, - "x": 33, - "y": 28 - }, - "id": "13454cb0-1a2d-11e9-84b1-a12c578fa9e8-ecs", - "panelIndex": "7", - "type": "visualization", - "version": "6.5.4" - }, - { - "embeddableConfig": {}, - "gridData": { - "h": 9, - "i": "8", - "w": 48, - "x": 0, - "y": 39 - }, - "id": "fad258c0-1078-11e9-b27a-69e6e8b80a25-ecs", - "panelIndex": "8", - "type": "visualization", - "version": "6.5.4" - } - ], - "timeRestore": false, - "title": "Zeek Overview Dashboard [SIEM] ECS", - "version": 1 + "id": "f8c40810-370d-11e9-aa6d-ff445a78330c", + "migrationVersion": { + "visualization": "7.0.0" }, - "id": "87b0c430-1a2d-11e9-84b1-a12c578fa9e8-ecs", - "type": "dashboard", - "updated_at": "2019-01-17T07:57:50.613Z", - "version": 2 + "references": [], + "type": "visualization", + "updated_at": "2019-02-26T00:05:56.379Z", + "version": "WzMyNzQsNV0=" } ], - "version": "6.5.4" + "version": "7.0.0-beta1" } \ No newline at end of file diff --git a/x-pack/filebeat/module/zeek/connection/config/connection.yml b/x-pack/filebeat/module/zeek/connection/config/connection.yml index b925dc01aec..47fb2906642 100644 --- a/x-pack/filebeat/module/zeek/connection/config/connection.yml +++ b/x-pack/filebeat/module/zeek/connection/config/connection.yml @@ -17,7 +17,7 @@ processors: to: "zeek.connection" - from: "zeek.connection.duration" - to: "event.duration" + to: "temp.duration" - from: "zeek.connection.id.orig_h" to: "source.address" diff --git a/x-pack/filebeat/module/zeek/connection/ingest/pipeline.json b/x-pack/filebeat/module/zeek/connection/ingest/pipeline.json index 862787cd0f7..1ca5eadc409 100644 --- a/x-pack/filebeat/module/zeek/connection/ingest/pipeline.json +++ b/x-pack/filebeat/module/zeek/connection/ingest/pipeline.json @@ -4,27 +4,44 @@ { "script": { "lang": "painless", - "source": "ctx.event.created = ctx['@timestamp']; ctx['@timestamp'] = (long)ctx['zeek']['connection']['ts'] * params.multiplier; ctx.zeek.connection.remove('ts');", - "params": { - "multiplier": 1000 - } + "source": "ctx.event.created = ctx['@timestamp']; ctx['@timestamp'] = (long)ctx['zeek']['connection']['ts'] * 1000; ctx.zeek.connection.remove('ts');" } }, { "script": { "lang": "painless", - "source": "ctx.event.duration = (long)ctx.event.duration * params.multiplier", + "source": "ctx.event.duration = (long)ctx.temp.duration * params.scale", "params": { - "multiplier": 1000000000 + "scale": 1000000000 }, - "ignore_failure": true + "if": "ctx.temp?.duration != null" + } + }, + { + "remove": { + "field": "temp.duration", + "ignore_missing": true + } + }, + { + "set": { + "field": "event.id", + "value": "{{zeek.session_id}}", + "if": "ctx.zeek.session_id != null" + } + }, + { + "script": { + "lang": "painless", + "source": "if (ctx.zeek.connection.local_orig) ctx.tags.add(\"local_orig\");", + "if": "ctx.zeek.connection.local_orig != null" } }, { "script": { "lang": "painless", - "source": "ctx.event.id = ctx.zeek.session_id + \"-connection\"", - "ignore_failure": true + "source": "if (ctx.zeek.connection.local_resp) ctx.tags.add(\"local_resp\");", + "if": "ctx.zeek.connection.local_resp != null" } }, { diff --git a/x-pack/filebeat/module/zeek/connection/manifest.yml b/x-pack/filebeat/module/zeek/connection/manifest.yml index 53e7f507cd6..fc71598ebdd 100644 --- a/x-pack/filebeat/module/zeek/connection/manifest.yml +++ b/x-pack/filebeat/module/zeek/connection/manifest.yml @@ -9,7 +9,7 @@ var: os.darwin: - /usr/local/var/logs/current/conn.log - name: tags - default: [zeek] + default: [zeek.connection] ingest_pipeline: ingest/pipeline.json input: config/connection.yml diff --git a/x-pack/filebeat/module/zeek/connection/test/connection-json.log b/x-pack/filebeat/module/zeek/connection/test/connection-json.log index 9e4b15b535a..4e47ebedcec 100644 --- a/x-pack/filebeat/module/zeek/connection/test/connection-json.log +++ b/x-pack/filebeat/module/zeek/connection/test/connection-json.log @@ -1 +1,3 @@ {"ts":1547188415.857497,"uid":"CAcJw21BbVedgFnYH3","id.orig_h":"192.168.86.167","id.orig_p":38339,"id.resp_h":"192.168.86.1","id.resp_p":53,"proto":"udp","service":"dns","duration":0.076967,"orig_bytes":75,"resp_bytes":178,"conn_state":"SF","local_orig":true,"local_resp":true,"missed_bytes":0,"history":"Dd","orig_pkts":1,"orig_ip_bytes":103,"resp_pkts":1,"resp_ip_bytes":206,"tunnel_parents":[]} +{"ts":1547188416.857497,"uid":"CAcJw21BbVedgFnYH4","id.orig_h":"192.168.86.167","id.orig_p":38340,"id.resp_h":"8.8.8.8","id.resp_p":53,"proto":"udp","service":"dns","duration":0.076967,"orig_bytes":75,"resp_bytes":178,"conn_state":"SF","local_orig":true,"local_resp":false,"missed_bytes":0,"history":"Dd","orig_pkts":1,"orig_ip_bytes":103,"resp_pkts":1,"resp_ip_bytes":206,"tunnel_parents":[]} +{"ts":1547188417.857497,"uid":"CAcJw21BbVedgFnYH5","id.orig_h":"4.4.2.2","id.orig_p":383341,"id.resp_h":"8.8.8.8","id.resp_p":53,"proto":"udp","service":"dns","duration":0.076967,"orig_bytes":75,"resp_bytes":178,"conn_state":"SF","local_orig":false,"local_resp":false,"missed_bytes":0,"history":"Dd","orig_pkts":1,"orig_ip_bytes":103,"resp_pkts":1,"resp_ip_bytes":206,"tunnel_parents":[]} diff --git a/x-pack/filebeat/module/zeek/connection/test/connection-json.log-expected.json b/x-pack/filebeat/module/zeek/connection/test/connection-json.log-expected.json index 89b37e6e83e..becb63faad1 100644 --- a/x-pack/filebeat/module/zeek/connection/test/connection-json.log-expected.json +++ b/x-pack/filebeat/module/zeek/connection/test/connection-json.log-expected.json @@ -9,7 +9,7 @@ "ecs.version": "1.0.0-beta2", "event.dataset": "zeek.connection", "event.duration": 0.0, - "event.id": "CAcJw21BbVedgFnYH3-connection", + "event.id": "CAcJw21BbVedgFnYH3", "event.module": "zeek", "fileset.name": "connection", "input.type": "log", @@ -24,7 +24,9 @@ "source.packets": 1, "source.port": 38339, "tags": [ - "zeek" + "zeek.connection", + "local_orig", + "local_resp" ], "zeek.connection.history": "Dd", "zeek.connection.local_orig": true, @@ -32,5 +34,86 @@ "zeek.connection.missed_bytes": 0, "zeek.connection.state": "SF", "zeek.session_id": "CAcJw21BbVedgFnYH3" + }, + { + "@timestamp": 1547188416000, + "destination.address": "8.8.8.8", + "destination.bytes": 206, + "destination.geo.continent_name": "North America", + "destination.geo.country_iso_code": "US", + "destination.geo.location.lat": 37.751, + "destination.geo.location.lon": -97.822, + "destination.ip": "8.8.8.8", + "destination.packets": 1, + "destination.port": 53, + "ecs.version": "1.0.0-beta2", + "event.dataset": "zeek.connection", + "event.duration": 0.0, + "event.id": "CAcJw21BbVedgFnYH4", + "event.module": "zeek", + "fileset.name": "connection", + "input.type": "log", + "log.offset": 398, + "network.application": "dns", + "network.direction": "outbound", + "network.transport": "udp", + "service.type": "zeek", + "source.address": "192.168.86.167", + "source.bytes": 103, + "source.ip": "192.168.86.167", + "source.packets": 1, + "source.port": 38340, + "tags": [ + "zeek.connection", + "local_orig" + ], + "zeek.connection.history": "Dd", + "zeek.connection.local_orig": true, + "zeek.connection.local_resp": false, + "zeek.connection.missed_bytes": 0, + "zeek.connection.state": "SF", + "zeek.session_id": "CAcJw21BbVedgFnYH4" + }, + { + "@timestamp": 1547188417000, + "destination.address": "8.8.8.8", + "destination.bytes": 206, + "destination.geo.continent_name": "North America", + "destination.geo.country_iso_code": "US", + "destination.geo.location.lat": 37.751, + "destination.geo.location.lon": -97.822, + "destination.ip": "8.8.8.8", + "destination.packets": 1, + "destination.port": 53, + "ecs.version": "1.0.0-beta2", + "event.dataset": "zeek.connection", + "event.duration": 0.0, + "event.id": "CAcJw21BbVedgFnYH5", + "event.module": "zeek", + "fileset.name": "connection", + "input.type": "log", + "log.offset": 792, + "network.application": "dns", + "network.direction": "external", + "network.transport": "udp", + "service.type": "zeek", + "source.address": "4.4.2.2", + "source.bytes": 103, + "source.geo.continent_name": "North America", + "source.geo.country_iso_code": "US", + "source.geo.location.lat": 37.751, + "source.geo.location.lon": -97.822, + "source.ip": "4.4.2.2", + "source.packets": 1, + "source.port": 383341, + "tags": [ + "zeek.connection" + ], + "zeek.connection.history": "Dd", + "zeek.connection.local_orig": false, + "zeek.connection.local_resp": false, + "zeek.connection.missed_bytes": 0, + "zeek.connection.state": "SF", + "zeek.session_id": "CAcJw21BbVedgFnYH5" } ] \ No newline at end of file diff --git a/x-pack/filebeat/module/zeek/dns/ingest/pipeline.json b/x-pack/filebeat/module/zeek/dns/ingest/pipeline.json index 28f4adb5f41..bea3798a7bb 100644 --- a/x-pack/filebeat/module/zeek/dns/ingest/pipeline.json +++ b/x-pack/filebeat/module/zeek/dns/ingest/pipeline.json @@ -4,17 +4,14 @@ { "script": { "lang": "painless", - "source": "ctx.event.created = ctx['@timestamp']; ctx['@timestamp'] = (long)ctx['zeek']['dns']['ts'] * params.multiplier; ctx.zeek.dns.remove('ts');", - "params": { - "multiplier": 1000 - } + "source": "ctx.event.created = ctx['@timestamp']; ctx['@timestamp'] = (long)ctx['zeek']['dns']['ts'] * 1000; ctx.zeek.dns.remove('ts');" } }, { - "script": { - "lang": "painless", - "source": "ctx.event.id = ctx.zeek.session_id + \"-dns\"", - "ignore_failure": true + "set": { + "field": "event.id", + "value": "{{zeek.session_id}}", + "if": "ctx.zeek.session_id != null" } }, { diff --git a/x-pack/filebeat/module/zeek/dns/manifest.yml b/x-pack/filebeat/module/zeek/dns/manifest.yml index da306cc5cfe..71032e045d8 100644 --- a/x-pack/filebeat/module/zeek/dns/manifest.yml +++ b/x-pack/filebeat/module/zeek/dns/manifest.yml @@ -9,7 +9,7 @@ var: os.darwin: - /usr/local/var/logs/current/dns.log - name: tags - default: [zeek] + default: [zeek.dns] ingest_pipeline: ingest/pipeline.json input: config/dns.yml diff --git a/x-pack/filebeat/module/zeek/dns/test/dns-json.log-expected.json b/x-pack/filebeat/module/zeek/dns/test/dns-json.log-expected.json index f30c13cfaf6..acc66d7e044 100644 --- a/x-pack/filebeat/module/zeek/dns/test/dns-json.log-expected.json +++ b/x-pack/filebeat/module/zeek/dns/test/dns-json.log-expected.json @@ -6,7 +6,7 @@ "destination.port": 53, "ecs.version": "1.0.0-beta2", "event.dataset": "zeek.dns", - "event.id": "CAcJw21BbVedgFnYH3-dns", + "event.id": "CAcJw21BbVedgFnYH3", "event.module": "zeek", "fileset.name": "dns", "input.type": "log", @@ -17,7 +17,7 @@ "source.ip": "192.168.86.167", "source.port": 38339, "tags": [ - "zeek" + "zeek.dns" ], "zeek.dns.AA": false, "zeek.dns.RA": true, diff --git a/x-pack/filebeat/module/zeek/fields.go b/x-pack/filebeat/module/zeek/fields.go index fe6e78a484e..4ecc23bb6dc 100644 --- a/x-pack/filebeat/module/zeek/fields.go +++ b/x-pack/filebeat/module/zeek/fields.go @@ -19,5 +19,5 @@ func init() { // AssetZeek returns asset data. // This is the base64 encoded gzipped contents of module/zeek. func AssetZeek() string { - return "eJycl7GOIzcMhns/hV7gNsgBl8JFgEuCVEkTbJVGkCXOjLIaUUdK3vU+fSCNY2M99g2V0vb3kxRFivQn9QKnvXoHeNkplX0OsFd/L58csCWfsse4Vz/vlFLqT3QlgBqQ1GSiCz6OKuDIKhG6YsGpw6nJf/iFcKfU4CE43u+U+qSimeHiSal8SrBXI2FJ7fMdb0r93vRqIJwvZheHZshAKiLNJvh3U2VNc/V49cnA7DFq785mF98vcHpFcrsPrMUYwVZzTwGtCRrJjx9kB8QAJm7ICDh1yWbPDE4fThn4gzBgHB+qOJsMXaeaPGekU5em5kCHz9o4R9vCenQ5fQwmblM+RiAtY13kp0wm8u2F+5hhBFrTlPMH0GE5BFhz3wpIMtdQGwxvXeQV1PULoeX6u8Rw/bHDLll0EruN67D79et2H1Tu+VcZ99dvQk7o10R+BWLZYZ6f/2BRqRD8AzaDuxtD/WZdsphN0PeieVi3i4QgBQ9CCZtXvS7jh8mpeLUvwKec07nvHKQ83Y1ndfKmqq9YYT3zePcW7ot8HFCvavb7jprmkZs1PvgAskJfDm9GQRk11JqUC4HTyTBfDrmd30T45kEwxxpNJo6gCb4V4Cz0YIOHmPUExgG1NpeeiYGOQP9H2ebLULzrEsx+Bl3JPjfnO5WK2jTria0JumNb3HTGdk3D4477XoBCVQ2Ln2oOtuNa2PymJ7wpOZ/ukSQmr1ucID1nCRayoKT4Oh23E5AvqKdlN5LaNtGE07toziyCSwVJBfLHauF71ttF4bkLd4XMKkX35uV/9wtRtP6eS6zNPjlf92sfxw4FHoGGgK89QfkZHBbBW7vwyVB9bHtaa3ZfxOU/mR872M9ffpLS8JbJrNYbiUDbknEYpAm66ti/b22nZ0nMhOm0WXXM4ekIxKImrrD1aQLBP5rGFjoKOrGi57Epa90qIOAyP9gsV3CEt6wTYUaLQWYfOJtD8DxJfVigrO1kvDSRF146WJtqWUy6nd3Kenx65iK+8sVRj+RognftjdTLCiysmHKofy66wurSBMNZmwD0gN/9GwAA///PiHUF" + return "eJzkW99vG7eyfvdfMW/3JVHaAClw83ABN05RA3Zuahu995wXgVqOJNZccktyZSvoH38wQ3J/SCtZu3GMnNOXALF25/uGHM58HHJfwz1u38MXxPszgKCCxvfwz/g/ib5wqgrKmvfwP2cAANdW1hphaR2shZFamRVou/JQOSvrAiUstvz6m5+dPQNYKtTSvz8DeA1GlNggAYRthe9h5Wxd8f8H0AB+4fdh6WzZmI2AYhnQgbGuFFp9EfQav9MitpgevVfWzJVMZiP2PW4frMt/G8QHOIfaqD9rBCXRBLVU6MAuIawxm4WzHlhhjcGCzMy0LYSeW6dWPdyFtRqFOY57aaQqREAPD2sMa3Q9SOWBzCojAkpgHL19godDX30DHmTWGnkCjVJ5j3K+2Ab0PSLamtVxFtf8KvCrHH0dEgfxfBABx8/4L1qsPKjoNwU4Y5GtnYk/CLxWPli3fSboZO1UcIqLuX47F1K68QyulLl/rcUWHZAB9D7j5niz7hWoJYiNUFosNB4kQoHxLYjkgDuVx0Y3MR7xlQm4Qncc//er80+dNX/QujIG3fwbYEjjZ8EJ4yelrYtPt8BvC6Z5FMWF0AOQtqbxPGr/xtZGQnCqgqBKbNbknzW6LQgj0zR53MfjZ8a7dLdGkLYUyrAtCGsRKAHxoqgXf2ARcoiQ9xFlH7zQwo9NPwT924er89tb2AhdI/gKC7Xc5iXKNjP4UeA5/WFKFWp+2GB0P4/4SdgENdLnc/jt7h+fPw47TEZOwXx+d09AdoWVY729axKLR6D3k9/KcDA1P5XovVihP4D6/P4OkNrHPj8/tbD/1fP4vA5r61QQjHtu/AM6WKjA6Hs+pyBQ6OPa6yRjiovGMvP36DboaH0KAyLhbBu3ugtZmTybnnOVj6l13827D+P1C7l552pTsERk5wbcSC7Cg/AQ4tMo9wncXEwb5xssaseC6QK9cqRkVCC/BThkvxsGqtFbDblCKzShHd8HYQLpLra5iUOtihwyyh9aFzcTo6Rlf56LbZd/P0qGHOBZbkymyPB1VVnXc4R4K/SzfeqCQ9NPKxoeuTA49LZ2BXYf9Z3g47pFMAOBd3flR5dIgi5Esaa1QXLAbYRuErXw3haK1fvNjU8mFnH/xL9Hh+N2ZiDZIJU7lM+l55uCySsgW89k4oyxiX2JYoPQ86H5OUkC0SCxCTB1uYh7q2aiHBbWyWaOHFZ6CwMqiSnQrwpfhEIK9X0mXjzM99XNSfPyf53ZWNZad6ZkLTwsECkx4kBWJFDm9Uyg0ccjoOsQqiRNJVZhPX7Ib7By6JHSGEFXqkKtDEpge2TDxszX6Oy4bni7yfnyTZN3Oip3P0KZKu3daj8v/Wp8/rjld5vk5jDUzjy9MhhXmaWd72mRkwboSvjAIw8/Pj4CGXIlFzCh0/ywHBimMzvGZ9IoPE3n+ADNhgJIrE7O5391lFLK5qnMWMcpdSOcsrUHEYJTi5rSm1S+sBukYhu3I5qzbbAgoBIuqKLWwrVlaS+wKqGI+D7zSnjfYTpiHD+nN2njuhBeFa9JGZFIqtDRoKLsCD/mM4BfiCrUDuV8kMhJC/8CA7pSGfREhddgpvagtIYFla6I0sqKw4wqZx8VTumuaZ0r4hqFpIrHqqEU20ZIZIa/3t19buQSlamMus/HCbPCeeY7enTaGqn6WQcKErPe1yXC2x9+inEkNOWpQBJNmQPb3jhvrOPm0VHeKUxYAFStNlgEy3WKxyQaZCQPlFXz4ouAM/hk8zO8f/Bt0AtHgq3QtUQJa3T4Cv6ofehMSDQ7tIDj0n5Bd1IueQZ3BrzhttmyVnKCyDw3YJ3kVNP6slQac+/48iL1sPuNtEM0SlXinPCfiwsZZCOjaJAHo6b1hBGJs3oaCW4gvsiUNC3FQyxeZEaeZPECE3KMQxubE2Xfh9o5Ws+tzr6+vP4IaIIKtB1PIruX6LOwWFi5PTo7L8JpZ6+7T4qG1M8oaCfMUS9AD3VsI0J4nK/tTm1T1dMbHXopbcxJNy/RUUiw/le7PfSI5L4ayWGBavMETHtGN3mXzwaSgFiLDcbSfRAwbvAmSNC2m56aSvlkJlpM/+O5lCKIGXycrWagoqpZIAgwGB6suycFE2xhdVvBSLHCw1oVa3ohtqOaeXoF1oGI52zRfiXCOj0eN+4iPuRtiWB5b9eYVqaqQyI5NCD7C+hQ27Qrx2ObNFjaB8Q9Xezv8UYub9qYK4sjHUcsWFDBJzIzuDRwe333+RX53PL1u5Ywrk0RgijWJUFZ023fsSFaqWxo6P1dtQ8PKqzTEr/78Lmz4RwaIWGE3n6Z1Idq9i1swxM3Tv7SGgRZu9xY55HKzwxxaCrReA7XueZ0Q3QwfaW6MB7ikyj7C+DwCV2EGn9E3gbf5f6ya2LNd1ZZO6mv8iOoZadRmTYYtFg7K7E9X2+qY1x52a51YGwY8kr578Sl/GYDsECKtK6qbiVYnrhu18UdUwUpb9SuvX4xtkGaX27ZUh5LC433nqT3U07Jz/ZPwmfD5QTNpJsGnxodEC8bVM5ulIyNg70FCmhWyrSHNYcWVOxQTqFzt9OYjKS4xNFmh5voPrIrbFk55bHt5h2iUyrvlVmNINTfsO3SUZ3p88GhKCPDB3TItDQG1FuIF0C66a5ytkDfic9OhhxiTuVxqe3Dy1A3NoBErWIXKdj8RBsDVAxm0EFQHgpba0l1nshqUVXkbESzrjuB/KD5r0DPOhTeY7nQu/2MFECqRGnrCb2MXou3F7tsE2wdQATQKDyV0+LpYK4ECeb5GI3bSXDtLarOEQhVYRDcRhHKoItMOe1GccM5jkolZQd8DE7w+YTw3IKh6WwQTqui8t2kPdT1xTuQakXKoVvlUv9nEMqvxY9T9MLtr+c/TsB6++6niWhv3/10DG8wzTZTMR7zqlGxJomGdl4PhV7zxLyog10uxy+H3NrrnX6xn7Eythwo0oqaxmIJa6SFQemg/b3Na8eZevVlymWE3UTVAgcLUvn7QVQTnK22kypxp6sPEo1XYdsRBBwCh3Wj93q2QT4kHh8Jt7dXb+6ubiEZSAlYeNB2tdrNh4RUqGqNE+6UZaD4PvhaBTwBrXabCVL4o9b0xwL4/V0Yij8DNZVh+Pjh4tc39M/HffDUZB2jxttk+zvvzdKk3cZjd1bol/nwpBkSfAw059bM4DL0zvCbqxz9U/zd2wlx+xnvcJjVviMOfV2efmDdOvGLFiveL+4cB+QrqBGYjYPDOKL0+z1uoRQBnRIa8LFYC0PjrgwI07qBwmkqRoc2fkTd4GOY5636hD0RPoZ2p98Z0GJtPULLWFSVzi2FePPR9F5t5mifIvogFlr59ZQrAcMjrDxZboa5OQ/uQIGvC5JvJDa3AwsHXZgXa6Em5IQP9BqFLhmJnRbST8slS7HegQBR3witJFMPvsnM4NXK0OBGDkf4PWuXucM47b8azdPeXX7arQG+8fzomw9rWtGTh3WX5vc1upHePm3lfT2pqPSvntLgtJ8I/P/s3Q//3eM8bq6fidSTNA4NSgoAZc083qIYT+UGfa3D7tS1htvz5WM5uENk70bFN6PxClZqg4a2Gf9bobm9veq+wDz2C3Yc+W8/ZU9EzovxOBQ6WvgwFxrdBA5834TfbXUTXz/ptA4ORYuxQRU4a3+edH/+cu9rn3yBpNMdG/wUI+GroqyeGfnyw/Xno5iUD2eTTp66HwgMbMxJouiUb/O1+86FGl42kcNhXqlt8JVD8vVNg8MM09HIifT+kw+EuqPyFQcO5+0xd1bt0fJO/IiBHWUvpP8e7fReLH4v/esuqe+mjd2Pz3+/ZnaX/9+vpZ29f4ZLEpcXzWZ1bGYxdsrHoXc7nyAdqXqTbtryzYm6FIZTN39qkS+b5EWazA9i+nrxLJi+XrwevOWeB2/k+j9vy3ZhaxNS4Yp7igElnWAqHNn72j+JdljagECW0m0UoTjTPKFZGJpt97ADPoYnRhMfQy109+dm6kaziPfaJ96ISS8nOcA3YriDw32m05QblkLp+cLK7Tx9leVPGo42Q/28BSFlbBfU5j72kPEx5Ev+VIQ0lsgxwfokmvF81xYfK2EkWJMI+Z0GJBWP1LgnpgcyTfRCohbbebD3ePqAdkRedIJiNiZ8stMMoccQL04Xok6la1ErHV4rE5nRK8vaFPHSvArbjiMWmBrJCJlrCb8EqJoziojXdOEorDcos6KIjzcmm8fYcOdSef70Tcavdpuj+8EdTHsBbUL4tSKqo0G46S06qXqFBl28Y5GXSO1IClCYSJR16oiaVQ6AA2mvqhx6P1/aPtnTDj8GBB/f9kCzSleHVP7emGc7FZ/khl/n6phpHAhD6WxVfc03W03rO+rZy8/Np/Gk9ZN5/tpBoqFJzvpWcJs2kjo7O/tXAAAA//+iJmrR" } diff --git a/x-pack/filebeat/module/zeek/files/ingest/pipeline.json b/x-pack/filebeat/module/zeek/files/ingest/pipeline.json index 42b6aae2c32..84e96dbd912 100644 --- a/x-pack/filebeat/module/zeek/files/ingest/pipeline.json +++ b/x-pack/filebeat/module/zeek/files/ingest/pipeline.json @@ -4,16 +4,14 @@ { "script": { "lang": "painless", - "source": "ctx.event.created = ctx['@timestamp']; ctx['@timestamp'] = (long)ctx['zeek']['files']['ts'] * params.multiplier; ctx.zeek.files.remove('ts');", - "params": { - "multiplier": 1000 - } + "source": "ctx.event.created = ctx['@timestamp']; ctx['@timestamp'] = (long)ctx['zeek']['files']['ts'] * 1000; ctx.zeek.files.remove('ts');" } }, { "script": { "lang": "painless", "source": "ctx.zeek.session_id = ctx.zeek.files.session_ids[0];", + "if": "ctx.zeek.files.session_ids != null", "ignore_failure": true } }, @@ -32,10 +30,10 @@ } }, { - "script": { - "lang": "painless", - "source": "ctx.event.id = ctx.zeek.session_id + \"-files\"", - "ignore_failure": true + "set": { + "field": "event.id", + "value": "{{zeek.session_id}}", + "if": "ctx.zeek.session_id != null" } } ] diff --git a/x-pack/filebeat/module/zeek/files/manifest.yml b/x-pack/filebeat/module/zeek/files/manifest.yml index 9da593ea2ed..1d9ac220761 100644 --- a/x-pack/filebeat/module/zeek/files/manifest.yml +++ b/x-pack/filebeat/module/zeek/files/manifest.yml @@ -9,7 +9,7 @@ var: os.darwin: - /usr/local/var/logs/current/files.log - name: tags - default: [zeek] + default: [zeek.files] ingest_pipeline: ingest/pipeline.json input: config/files.yml diff --git a/x-pack/filebeat/module/zeek/files/test/files-json.log-expected.json b/x-pack/filebeat/module/zeek/files/test/files-json.log-expected.json index c5d2d872e2f..c1f0c949f21 100644 --- a/x-pack/filebeat/module/zeek/files/test/files-json.log-expected.json +++ b/x-pack/filebeat/module/zeek/files/test/files-json.log-expected.json @@ -3,14 +3,14 @@ "@timestamp": 1547688796000, "ecs.version": "1.0.0-beta2", "event.dataset": "zeek.files", - "event.id": "C8I0zn3r9EPbfLgta6-files", + "event.id": "C8I0zn3r9EPbfLgta6", "event.module": "zeek", "fileset.name": "files", "input.type": "log", "log.offset": 0, "service.type": "zeek", "tags": [ - "zeek" + "zeek.files" ], "zeek.files.analyzers": [ "X509", @@ -41,14 +41,14 @@ "@timestamp": 1547688801000, "ecs.version": "1.0.0-beta2", "event.dataset": "zeek.files", - "event.id": "C6sjVo23iNApLnlAt6-files", + "event.id": "C6sjVo23iNApLnlAt6", "event.module": "zeek", "fileset.name": "files", "input.type": "log", "log.offset": 452, "service.type": "zeek", "tags": [ - "zeek" + "zeek.files" ], "zeek.files.analyzers": [ "X509", diff --git a/x-pack/filebeat/module/zeek/http/ingest/pipeline.json b/x-pack/filebeat/module/zeek/http/ingest/pipeline.json index 93222421916..a892d959ce5 100644 --- a/x-pack/filebeat/module/zeek/http/ingest/pipeline.json +++ b/x-pack/filebeat/module/zeek/http/ingest/pipeline.json @@ -4,17 +4,14 @@ { "script": { "lang": "painless", - "source": "ctx.event.created = ctx['@timestamp']; ctx['@timestamp'] = (long)ctx['zeek']['http']['ts'] * params.multiplier; ctx.zeek.http.remove('ts');", - "params": { - "multiplier": 1000 - } + "source": "ctx.event.created = ctx['@timestamp']; ctx['@timestamp'] = (long)ctx['zeek']['http']['ts'] * 1000; ctx.zeek.http.remove('ts');" } }, { - "script": { - "lang": "painless", - "source": "ctx.event.id = ctx.zeek.session_id + \"-http\"", - "ignore_failure": true + "set": { + "field": "event.id", + "value": "{{zeek.session_id}}", + "if": "ctx.zeek.session_id != null" } }, { diff --git a/x-pack/filebeat/module/zeek/http/manifest.yml b/x-pack/filebeat/module/zeek/http/manifest.yml index 6ee2cadec4c..e98068206ee 100644 --- a/x-pack/filebeat/module/zeek/http/manifest.yml +++ b/x-pack/filebeat/module/zeek/http/manifest.yml @@ -9,7 +9,7 @@ var: os.darwin: - /usr/local/var/logs/current/http.log - name: tags - default: [zeek] + default: [zeek.http] ingest_pipeline: ingest/pipeline.json input: config/http.yml diff --git a/x-pack/filebeat/module/zeek/http/test/http-json.log-expected.json b/x-pack/filebeat/module/zeek/http/test/http-json.log-expected.json index 9d99db4f00f..075b2e2cd02 100644 --- a/x-pack/filebeat/module/zeek/http/test/http-json.log-expected.json +++ b/x-pack/filebeat/module/zeek/http/test/http-json.log-expected.json @@ -10,7 +10,7 @@ "destination.port": 80, "ecs.version": "1.0.0-beta2", "event.dataset": "zeek.http", - "event.id": "CCNp8v1SNzY7v9d1Ih-http", + "event.id": "CCNp8v1SNzY7v9d1Ih", "event.module": "zeek", "fileset.name": "http", "http.request.body.bytes": 0, @@ -25,7 +25,7 @@ "source.ip": "10.178.98.102", "source.port": 62995, "tags": [ - "zeek" + "zeek.http" ], "url.domain": "ocsp.apple.com", "url.original": "/ocsp04-aaica02/ME4wTKADAgEAMEUwQzBBMAkGBSsOAwIaBQAEFNqvF+Za6oA4ceFRLsAWwEInjUhJBBQx6napI3Sl39T97qDBpp7GEQ4R7AIIUP1IOZZ86ns=", diff --git a/x-pack/filebeat/module/zeek/module.yml b/x-pack/filebeat/module/zeek/module.yml index 0db59890087..4d55536c0c6 100644 --- a/x-pack/filebeat/module/zeek/module.yml +++ b/x-pack/filebeat/module/zeek/module.yml @@ -1,3 +1,3 @@ dashboards: -- id: 87b0c430-1a2d-11e9-84b1-a12c578fa9e8 +- id: 7cbb5410-3700-11e9-aa6d-ff445a78330c file: Filebeat-Zeek-Overview.json diff --git a/x-pack/filebeat/module/zeek/notice/config/notice.yml b/x-pack/filebeat/module/zeek/notice/config/notice.yml new file mode 100644 index 00000000000..c722a1b8c2f --- /dev/null +++ b/x-pack/filebeat/module/zeek/notice/config/notice.yml @@ -0,0 +1,80 @@ +type: log +paths: +{{ range $i, $path := .paths }} + - {{$path}} +{{ end }} +exclude_files: [".gz$"] +tags: {{.tags}} + +json.keys_under_root: false + +processors: + - drop_fields: + fields: ["json.actions"] + - rename: + fields: + - from: "json" + to: "zeek.notice" + + - from: "zeek.notice.src" + to: "source.address" + + - from: "zeek.notice.dest" + to: "destination.address" + + - from: "zeek.notice.uid" + to: "zeek.session_id" + + - from: "zeek.notice.p" + to: "destination.port" + + - from: "zeek.notice.conn" + to: "zeek.notice.connnection_id" + + - from: "zeek.notice.iconn" + to: "zeek.notice.icmp_id" + + - from: "zeek.notice.id.orig_h" + to: "source.address" + + - from: "zeek.notice.id.orig_p" + to: "source.port" + + - from: "zeek.notice.id.resp_h" + to: "destination.address" + + - from: "zeek.notice.id.resp_p" + to: "destination.port" + + - from: "zeek.notice.proto" + to: "network.transport" + + - from: "zeek.notice.id.orig_p" + to: "source.port" + + - from: "zeek.notice.f.id" + to: "zeek.notice.file.id" + + - from: "zeek.notice.f.parent_id" + to: "dzeek.notice.file.parent_id" + + - from: "zeek.notice.f.source" + to: "zeek.notice.file.source" + + - from: "zeek.notice.f.is_orig" + to: "zeek.notice.file.is_orig" + + - from: "zeek.notice.f.seen_bytes" + to: "zeek.notice.file.seen_bytes" + + - from: "zeek.notice.f.total_bytes" + to: "zeek.notice.file.total_bytes" + + - from: "zzeek.notice.file_mime_type" + to: "zeek.notice.file.mime_type" + + ignore_missing: true + fail_on_error: false + + - drop_fields: + fields: ["zeek.notice.remote_location", "zeek.notice.f"] diff --git a/x-pack/filebeat/module/zeek/notice/ingest/pipeline.json b/x-pack/filebeat/module/zeek/notice/ingest/pipeline.json new file mode 100644 index 00000000000..1b1bf8b49af --- /dev/null +++ b/x-pack/filebeat/module/zeek/notice/ingest/pipeline.json @@ -0,0 +1,46 @@ +{ + "description": "Pipeline for normalizing Zeek notice.log", + "processors": [ + { + "script": { + "lang": "painless", + "source": "ctx.event.created = ctx['@timestamp']; ctx['@timestamp'] = (long)ctx['zeek']['notice']['ts'] * 1000; ctx.zeek.notice.remove('ts');" + } + }, + { + "set": { + "field": "destination.ip", + "value": "{{destination.address}}", + "if": "ctx.destination?.address != null" + } + }, + { + "set": { + "field": "source.ip", + "value": "{{source.address}}", + "if": "ctx.source?.address != null" + } + }, + { + "set": { + "field": "event.id", + "value": "{{zeek.session_id}}", + "if": "ctx.zeek.session_id != null" + } + }, + { + "geoip": { + "field": "destination.ip", + "target_field": "destination.geo", + "ignore_missing": true + } + }, + { + "geoip": { + "field": "source.ip", + "target_field": "source.geo", + "ignore_missing": true + } + } + ] +} diff --git a/x-pack/filebeat/module/zeek/notice/manifest.yml b/x-pack/filebeat/module/zeek/notice/manifest.yml new file mode 100644 index 00000000000..b806ac04e1d --- /dev/null +++ b/x-pack/filebeat/module/zeek/notice/manifest.yml @@ -0,0 +1,19 @@ +module_version: 1.0 + +var: + - name: paths + default: + - /var/log/bro/current/notice.log + os.linux: + - /var/log/bro/current/notice.log + os.darwin: + - /usr/local/var/logs/current/notice.log + - name: tags + default: [zeek.notice] + +ingest_pipeline: ingest/pipeline.json +input: config/notice.yml + +requires.processors: +- name: geoip + plugin: ingest-geoip diff --git a/x-pack/filebeat/module/zeek/notice/test/notice-json.log b/x-pack/filebeat/module/zeek/notice/test/notice-json.log new file mode 100644 index 00000000000..8c20486cb79 --- /dev/null +++ b/x-pack/filebeat/module/zeek/notice/test/notice-json.log @@ -0,0 +1 @@ +{"ts":1320435875.879278,"note":"SSH::Password_Guessing","msg":"172.16.238.1 appears to be guessing SSH passwords (seen in 30 connections).","sub":"Sampled servers: 172.16.238.136, 172.16.238.136, 172.16.238.136, 172.16.238.136, 172.16.238.136","src":"172.16.238.1","peer_descr":"bro","actions":["Notice::ACTION_LOG"],"suppress_for":3600.0,"dropped":false} diff --git a/x-pack/filebeat/module/zeek/notice/test/notice-json.log-expected.json b/x-pack/filebeat/module/zeek/notice/test/notice-json.log-expected.json new file mode 100644 index 00000000000..aab984d1d36 --- /dev/null +++ b/x-pack/filebeat/module/zeek/notice/test/notice-json.log-expected.json @@ -0,0 +1,23 @@ +[ + { + "@timestamp": 1320435875000, + "ecs.version": "1.0.0-beta2", + "event.dataset": "zeek.notice", + "event.module": "zeek", + "fileset.name": "notice", + "input.type": "log", + "log.offset": 0, + "service.type": "zeek", + "source.address": "172.16.238.1", + "source.ip": "172.16.238.1", + "tags": [ + "zeek.notice" + ], + "zeek.notice.dropped": false, + "zeek.notice.msg": "172.16.238.1 appears to be guessing SSH passwords (seen in 30 connections).", + "zeek.notice.note": "SSH::Password_Guessing", + "zeek.notice.peer_descr": "bro", + "zeek.notice.sub": "Sampled servers: 172.16.238.136, 172.16.238.136, 172.16.238.136, 172.16.238.136, 172.16.238.136", + "zeek.notice.suppress_for": 3600 + } +] \ No newline at end of file diff --git a/x-pack/filebeat/module/zeek/ssl/ingest/pipeline.json b/x-pack/filebeat/module/zeek/ssl/ingest/pipeline.json index de32cf75099..54d068b19f9 100644 --- a/x-pack/filebeat/module/zeek/ssl/ingest/pipeline.json +++ b/x-pack/filebeat/module/zeek/ssl/ingest/pipeline.json @@ -4,17 +4,14 @@ { "script": { "lang": "painless", - "source": "ctx.event.created = ctx['@timestamp']; ctx['@timestamp'] = (long)ctx['zeek']['ssl']['ts'] * params.multiplier; ctx.zeek.ssl.remove('ts');", - "params": { - "multiplier": 1000 - } + "source": "ctx.event.created = ctx['@timestamp']; ctx['@timestamp'] = (long)ctx['zeek']['ssl']['ts'] * 1000; ctx.zeek.ssl.remove('ts');" } }, { - "script": { - "lang": "painless", - "source": "ctx.event.id = ctx.zeek.session_id + \"-ssl\"", - "ignore_failure": true + "set": { + "field": "event.id", + "value": "{{zeek.session_id}}", + "if": "ctx.zeek.session_id != null" } }, { diff --git a/x-pack/filebeat/module/zeek/ssl/manifest.yml b/x-pack/filebeat/module/zeek/ssl/manifest.yml index d403fa97311..74d9c46134f 100644 --- a/x-pack/filebeat/module/zeek/ssl/manifest.yml +++ b/x-pack/filebeat/module/zeek/ssl/manifest.yml @@ -9,7 +9,7 @@ var: os.darwin: - /usr/local/var/logs/current/ssl.log - name: tags - default: [zeek] + default: [zeek.ssl] ingest_pipeline: ingest/pipeline.json input: config/ssl.yml diff --git a/x-pack/filebeat/module/zeek/ssl/test/ssl-json.log-expected.json b/x-pack/filebeat/module/zeek/ssl/test/ssl-json.log-expected.json index 3ef9fd2bb8d..6a034c1d938 100644 --- a/x-pack/filebeat/module/zeek/ssl/test/ssl-json.log-expected.json +++ b/x-pack/filebeat/module/zeek/ssl/test/ssl-json.log-expected.json @@ -13,7 +13,7 @@ "destination.port": 9243, "ecs.version": "1.0.0-beta2", "event.dataset": "zeek.ssl", - "event.id": "CAOvs1BMFCX2Eh0Y3-ssl", + "event.id": "CAOvs1BMFCX2Eh0Y3", "event.module": "zeek", "fileset.name": "ssl", "input.type": "log", @@ -23,7 +23,7 @@ "source.ip": "10.178.98.102", "source.port": 63199, "tags": [ - "zeek" + "zeek.ssl" ], "zeek.session_id": "CAOvs1BMFCX2Eh0Y3", "zeek.ssl.cert_chain_fuids": [ @@ -56,7 +56,7 @@ "destination.port": 9243, "ecs.version": "1.0.0-beta2", "event.dataset": "zeek.ssl", - "event.id": "C3mki91FnnNtm0u1ok-ssl", + "event.id": "C3mki91FnnNtm0u1ok", "event.module": "zeek", "fileset.name": "ssl", "input.type": "log", @@ -66,7 +66,7 @@ "source.ip": "10.178.98.102", "source.port": 63198, "tags": [ - "zeek" + "zeek.ssl" ], "zeek.session_id": "C3mki91FnnNtm0u1ok", "zeek.ssl.cert_chain_fuids": [ diff --git a/x-pack/filebeat/modules.d/zeek.yml.disabled b/x-pack/filebeat/modules.d/zeek.yml.disabled deleted file mode 100644 index 6cf23b0b823..00000000000 --- a/x-pack/filebeat/modules.d/zeek.yml.disabled +++ /dev/null @@ -1,19 +0,0 @@ -# Module: zeek -# Docs: https://www.elastic.co/guide/en/beats/filebeat/master/filebeat-module-zeek.html - -- module: zeek - # All logs - connection: - enabled: true - dns: - enabled: true - http: - enabled: true - files: - enabled: true - ssl: - enabled: true - - # Set custom paths for the log files. If left empty, - # Filebeat will choose the paths depending on your OS. - #var.paths: From be91dbfd162c5ec648a22818e8d733b4b80a0116 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Wed, 27 Feb 2019 14:08:52 -0500 Subject: [PATCH 094/332] When using the --password env:FOO will now return an errors if (#10936) * When using the --password env:FOO will now return an errors if FOO does not exist in the environment. --- CHANGELOG.next.asciidoc | 1 + libbeat/common/cli/password.go | 9 +++++++-- libbeat/common/cli/password_test.go | 5 +++++ x-pack/agent | 1 + 4 files changed, 14 insertions(+), 2 deletions(-) create mode 160000 x-pack/agent diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index acbe1f04a52..f64aeb5186d 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -129,6 +129,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Fix a issue when remote and local configuration didn't match when fetching configuration from Central Management. {issue}10587[10587] - Fix unauthorized error when loading dashboards by adding username and password into kibana config. {issue}10513[10513] {pull}10675[10675] - Ensure all beat commands respect configured settings. {pull}10721[10721] +- Using an environment variable for the password when enrolling a beat will now raise an error if the variable doesn't exist. {pull}10936[10936] *Auditbeat* diff --git a/libbeat/common/cli/password.go b/libbeat/common/cli/password.go index 8cd44ab13f3..e00ff1d5c8a 100644 --- a/libbeat/common/cli/password.go +++ b/libbeat/common/cli/password.go @@ -72,8 +72,13 @@ func stdin(p string) (string, error) { func env(p string) (string, error) { if len(p) == 0 { - return "", errors.New("env variable name is needed when using env: password method") + return "", errors.New("environment variable name is needed when using env: password method") } - return os.Getenv(p), nil + v, ok := os.LookupEnv(p) + if !ok { + return "", fmt.Errorf("environment variable %s does not exist", p) + } + + return v, nil } diff --git a/libbeat/common/cli/password_test.go b/libbeat/common/cli/password_test.go index d9716cd310b..da1dcc01a7c 100644 --- a/libbeat/common/cli/password_test.go +++ b/libbeat/common/cli/password_test.go @@ -48,6 +48,11 @@ func TestReadPassword(t *testing.T) { input: "", error: true, }, + { + name: "Test env variable that does not exist", + input: "env:DO_NOT_EXIST", + error: true, + }, } for _, test := range tests { diff --git a/x-pack/agent b/x-pack/agent new file mode 160000 index 00000000000..ab7def44a15 --- /dev/null +++ b/x-pack/agent @@ -0,0 +1 @@ +Subproject commit ab7def44a15e6ccbb3fc3176f1ea2c122f0d8637 From 6829f196f3ce6f93617e31d208555bb8d4978eff Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Wed, 27 Feb 2019 14:38:22 -0500 Subject: [PATCH 095/332] Expose the Metadata Refresh stragegy for the Kafka output. (#10682) * Expose the Metadata Refresh stragegy for the Kafka output. By default the Kafka output will periodically refresh the metadata information for all the available topics. This is the default strategy that beat uses. But if you have strict permissions in place for your Kafka cluster this could lead to errors in your log while trying to get information for a topic that you don't have permissions. This commit keep the default behavior but allow to change the strategy from the config file. --- CHANGELOG.next.asciidoc | 1 + auditbeat/auditbeat.reference.yml | 7 +++-- filebeat/filebeat.reference.yml | 7 +++-- heartbeat/heartbeat.reference.yml | 7 +++-- journalbeat/journalbeat.reference.yml | 7 +++-- libbeat/_meta/config.reference.yml | 7 +++-- libbeat/docs/outputconfig.asciidoc | 28 +++++++++++-------- libbeat/outputs/kafka/config.go | 3 ++ metricbeat/metricbeat.reference.yml | 7 +++-- packetbeat/packetbeat.reference.yml | 7 +++-- winlogbeat/winlogbeat.reference.yml | 7 +++-- x-pack/auditbeat/auditbeat.reference.yml | 7 +++-- x-pack/filebeat/filebeat.reference.yml | 7 +++-- .../functionbeat/functionbeat.reference.yml | 7 +++-- x-pack/metricbeat/metricbeat.reference.yml | 7 +++-- 15 files changed, 80 insertions(+), 36 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index f64aeb5186d..c6908806c54 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -129,6 +129,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Fix a issue when remote and local configuration didn't match when fetching configuration from Central Management. {issue}10587[10587] - Fix unauthorized error when loading dashboards by adding username and password into kibana config. {issue}10513[10513] {pull}10675[10675] - Ensure all beat commands respect configured settings. {pull}10721[10721] +- Allow to configure Kafka fetching strategy for the topic metadata. {pull}10682[10682] - Using an environment variable for the password when enrolling a beat will now raise an error if the variable doesn't exist. {pull}10936[10936] *Auditbeat* diff --git a/auditbeat/auditbeat.reference.yml b/auditbeat/auditbeat.reference.yml index 534778657a1..381b3c04b3d 100644 --- a/auditbeat/auditbeat.reference.yml +++ b/auditbeat/auditbeat.reference.yml @@ -228,7 +228,7 @@ auditbeat.modules: # # event -> filter1 -> event1 -> filter2 ->event2 ... # -# The supported processors are drop_fields, drop_event, include_fields, +# The supported processors are drop_fields, drop_event, include_fields, # decode_json_fields, and add_cloud_metadata. # # For example, you can use the following processors to keep the fields that @@ -319,7 +319,7 @@ auditbeat.modules: # match_pids: ["system.process.ppid"] # target: system.process.parent # -# The following example decodes fields containing JSON strings +# The following example decodes fields containing JSON strings # and replaces the strings with valid JSON objects. # #processors: @@ -621,6 +621,9 @@ output.elasticsearch: # Refresh metadata interval. Defaults to every 10 minutes. #refresh_frequency: 10m + # Strategy for fetching the topics metadata from the broker. Default is true. + #full: true + # The number of concurrent load-balanced Kafka output workers. #worker: 1 diff --git a/filebeat/filebeat.reference.yml b/filebeat/filebeat.reference.yml index 8086b26949d..c99d05c9554 100644 --- a/filebeat/filebeat.reference.yml +++ b/filebeat/filebeat.reference.yml @@ -939,7 +939,7 @@ filebeat.inputs: # # event -> filter1 -> event1 -> filter2 ->event2 ... # -# The supported processors are drop_fields, drop_event, include_fields, +# The supported processors are drop_fields, drop_event, include_fields, # decode_json_fields, and add_cloud_metadata. # # For example, you can use the following processors to keep the fields that @@ -1030,7 +1030,7 @@ filebeat.inputs: # match_pids: ["system.process.ppid"] # target: system.process.parent # -# The following example decodes fields containing JSON strings +# The following example decodes fields containing JSON strings # and replaces the strings with valid JSON objects. # #processors: @@ -1332,6 +1332,9 @@ output.elasticsearch: # Refresh metadata interval. Defaults to every 10 minutes. #refresh_frequency: 10m + # Strategy for fetching the topics metadata from the broker. Default is true. + #full: true + # The number of concurrent load-balanced Kafka output workers. #worker: 1 diff --git a/heartbeat/heartbeat.reference.yml b/heartbeat/heartbeat.reference.yml index be2ee368934..2914a427fbd 100644 --- a/heartbeat/heartbeat.reference.yml +++ b/heartbeat/heartbeat.reference.yml @@ -372,7 +372,7 @@ heartbeat.scheduler: # # event -> filter1 -> event1 -> filter2 ->event2 ... # -# The supported processors are drop_fields, drop_event, include_fields, +# The supported processors are drop_fields, drop_event, include_fields, # decode_json_fields, and add_cloud_metadata. # # For example, you can use the following processors to keep the fields that @@ -463,7 +463,7 @@ heartbeat.scheduler: # match_pids: ["system.process.ppid"] # target: system.process.parent # -# The following example decodes fields containing JSON strings +# The following example decodes fields containing JSON strings # and replaces the strings with valid JSON objects. # #processors: @@ -765,6 +765,9 @@ output.elasticsearch: # Refresh metadata interval. Defaults to every 10 minutes. #refresh_frequency: 10m + # Strategy for fetching the topics metadata from the broker. Default is true. + #full: true + # The number of concurrent load-balanced Kafka output workers. #worker: 1 diff --git a/journalbeat/journalbeat.reference.yml b/journalbeat/journalbeat.reference.yml index 006bfe9324c..f72f40318a5 100644 --- a/journalbeat/journalbeat.reference.yml +++ b/journalbeat/journalbeat.reference.yml @@ -168,7 +168,7 @@ setup.template.settings: # # event -> filter1 -> event1 -> filter2 ->event2 ... # -# The supported processors are drop_fields, drop_event, include_fields, +# The supported processors are drop_fields, drop_event, include_fields, # decode_json_fields, and add_cloud_metadata. # # For example, you can use the following processors to keep the fields that @@ -259,7 +259,7 @@ setup.template.settings: # match_pids: ["system.process.ppid"] # target: system.process.parent # -# The following example decodes fields containing JSON strings +# The following example decodes fields containing JSON strings # and replaces the strings with valid JSON objects. # #processors: @@ -561,6 +561,9 @@ output.elasticsearch: # Refresh metadata interval. Defaults to every 10 minutes. #refresh_frequency: 10m + # Strategy for fetching the topics metadata from the broker. Default is true. + #full: true + # The number of concurrent load-balanced Kafka output workers. #worker: 1 diff --git a/libbeat/_meta/config.reference.yml b/libbeat/_meta/config.reference.yml index c88d26a22f1..88145350c82 100644 --- a/libbeat/_meta/config.reference.yml +++ b/libbeat/_meta/config.reference.yml @@ -116,7 +116,7 @@ # # event -> filter1 -> event1 -> filter2 ->event2 ... # -# The supported processors are drop_fields, drop_event, include_fields, +# The supported processors are drop_fields, drop_event, include_fields, # decode_json_fields, and add_cloud_metadata. # # For example, you can use the following processors to keep the fields that @@ -207,7 +207,7 @@ # match_pids: ["system.process.ppid"] # target: system.process.parent # -# The following example decodes fields containing JSON strings +# The following example decodes fields containing JSON strings # and replaces the strings with valid JSON objects. # #processors: @@ -509,6 +509,9 @@ output.elasticsearch: # Refresh metadata interval. Defaults to every 10 minutes. #refresh_frequency: 10m + # Strategy for fetching the topics metadata from the broker. Default is true. + #full: true + # The number of concurrent load-balanced Kafka output workers. #worker: 1 diff --git a/libbeat/docs/outputconfig.asciidoc b/libbeat/docs/outputconfig.asciidoc index c6254625434..c353e6786ab 100644 --- a/libbeat/docs/outputconfig.asciidoc +++ b/libbeat/docs/outputconfig.asciidoc @@ -249,7 +249,7 @@ endif::no_dashboards[] You can set the index dynamically by using a format string to access any event field. For example, this configuration uses a custom field, `fields.log_type`, -to set the index: +to set the index: ["source","yaml",subs="attributes"] ------------------------------------------------------------------------------ @@ -261,13 +261,13 @@ output.elasticsearch: <1> We recommend including +{beat_version_key}+ in the name to avoid mapping issues when you upgrade. -With this configuration, all events with `log_type: normal` are sent to an +With this configuration, all events with `log_type: normal` are sent to an index named +normal-{version}-{localdate}+, and all events with `log_type: critical` are sent to an index named +critical-{version}-{localdate}+. TIP: To learn how to add custom fields to events, see the -<> option. +<> option. See the <> setting for other ways to set the index dynamically. @@ -285,7 +285,7 @@ matches, the <> setting is used. Rule settings: *`index`*:: The index format string to use. If this string contains field -references, such as `%{[fields.name]}`, the fields must exist, or the rule fails. +references, such as `%{[fields.name]}`, the fields must exist, or the rule fails. *`mappings`*:: A dictionary that takes the value returned by `index` and maps it to a new name. @@ -347,7 +347,7 @@ ifndef::no_ilm[] [[ilm-es]] ===== `ilm` -Configuration options for index lifecycle management. +Configuration options for index lifecycle management. See <> for more information. endif::no_ilm[] @@ -369,7 +369,7 @@ For more information, see <>. You can set the ingest node pipeline dynamically by using a format string to access any event field. For example, this configuration uses a custom field, -`fields.log_type`, to set the pipeline for each event: +`fields.log_type`, to set the pipeline for each event: ["source","yaml",subs="attributes"] ------------------------------------------------------------------------------ @@ -384,7 +384,7 @@ named `normal_pipeline`, and all events with `log_type: critical` are sent to a pipeline named `critical_pipeline`. TIP: To learn how to add custom fields to events, see the -<> option. +<> option. See the <> setting for other ways to set the ingest node pipeline dynamically. @@ -403,7 +403,7 @@ Rule settings: *`pipeline`*:: The pipeline format string to use. If this string contains field references, such as `%{[fields.name]}`, the fields must exist, or the rule -fails. +fails. *`mappings`*:: A dictionary that takes the value returned by `pipeline` and maps it to a new name. @@ -870,7 +870,7 @@ topic: '%{[fields.log_topic]}' ----- TIP: To learn how to add custom fields to events, see the -<> option. +<> option. See the <> setting for other ways to set the topic dynamically. @@ -889,7 +889,7 @@ Rule settings: *`topic`*:: The topic format string to use. If this string contains field references, such as `%{[fields.name]}`, the fields must exist, or the rule -fails. +fails. *`mappings`*:: A dictionary that takes the value returned by `topic` and maps it to a new name. @@ -901,7 +901,7 @@ match. ifndef::no-processors[] All the <> supported by processors are also supported here. -endif::no-processors[] +endif::no-processors[] ===== `key` @@ -955,6 +955,10 @@ brokers, topics, partition, and active leaders to use for publishing. *`refresh_frequency`*:: Metadata refresh interval. Defaults to 10 minutes. +*`full`*:: Strategy to use when fetching metadata, when this option is `true`, the client will maintain +a full set of metadata for all the available topics, if the this option is set to `false` it will only refresh the +metadata for the configured topics. The default is true. + *`retry.max`*:: Total number of metadata update retries when cluster is in middle of leader election. The default is 3. *`retry.backoff`*:: Waiting time between retries during leader elections. Default is 250ms. @@ -1099,7 +1103,7 @@ output.redis: TIP: To learn how to add custom fields to events, see the -<> option. +<> option. See the <> setting for other ways to set the key dynamically. diff --git a/libbeat/outputs/kafka/config.go b/libbeat/outputs/kafka/config.go index 48a46491f91..b042a3038be 100644 --- a/libbeat/outputs/kafka/config.go +++ b/libbeat/outputs/kafka/config.go @@ -62,6 +62,7 @@ type kafkaConfig struct { type metaConfig struct { Retry metaRetryConfig `config:"retry"` RefreshFreq time.Duration `config:"refresh_frequency" validate:"min=0"` + Full bool `config:"full"` } type metaRetryConfig struct { @@ -90,6 +91,7 @@ func defaultConfig() kafkaConfig { Backoff: 250 * time.Millisecond, }, RefreshFreq: 10 * time.Minute, + Full: true, }, KeepAlive: 0, MaxMessageBytes: nil, // use library default @@ -177,6 +179,7 @@ func newSaramaConfig(config *kafkaConfig) (*sarama.Config, error) { k.Metadata.Retry.Max = config.Metadata.Retry.Max k.Metadata.Retry.Backoff = config.Metadata.Retry.Backoff k.Metadata.RefreshFrequency = config.Metadata.RefreshFreq + k.Metadata.Full = config.Metadata.Full // configure producer API properties if config.MaxMessageBytes != nil { diff --git a/metricbeat/metricbeat.reference.yml b/metricbeat/metricbeat.reference.yml index 3d844a437ad..ed5ae3b61e4 100644 --- a/metricbeat/metricbeat.reference.yml +++ b/metricbeat/metricbeat.reference.yml @@ -835,7 +835,7 @@ metricbeat.modules: # # event -> filter1 -> event1 -> filter2 ->event2 ... # -# The supported processors are drop_fields, drop_event, include_fields, +# The supported processors are drop_fields, drop_event, include_fields, # decode_json_fields, and add_cloud_metadata. # # For example, you can use the following processors to keep the fields that @@ -926,7 +926,7 @@ metricbeat.modules: # match_pids: ["system.process.ppid"] # target: system.process.parent # -# The following example decodes fields containing JSON strings +# The following example decodes fields containing JSON strings # and replaces the strings with valid JSON objects. # #processors: @@ -1228,6 +1228,9 @@ output.elasticsearch: # Refresh metadata interval. Defaults to every 10 minutes. #refresh_frequency: 10m + # Strategy for fetching the topics metadata from the broker. Default is true. + #full: true + # The number of concurrent load-balanced Kafka output workers. #worker: 1 diff --git a/packetbeat/packetbeat.reference.yml b/packetbeat/packetbeat.reference.yml index 09e21d901db..1eb03dae601 100644 --- a/packetbeat/packetbeat.reference.yml +++ b/packetbeat/packetbeat.reference.yml @@ -596,7 +596,7 @@ packetbeat.ignore_outgoing: false # # event -> filter1 -> event1 -> filter2 ->event2 ... # -# The supported processors are drop_fields, drop_event, include_fields, +# The supported processors are drop_fields, drop_event, include_fields, # decode_json_fields, and add_cloud_metadata. # # For example, you can use the following processors to keep the fields that @@ -687,7 +687,7 @@ packetbeat.ignore_outgoing: false # match_pids: ["system.process.ppid"] # target: system.process.parent # -# The following example decodes fields containing JSON strings +# The following example decodes fields containing JSON strings # and replaces the strings with valid JSON objects. # #processors: @@ -989,6 +989,9 @@ output.elasticsearch: # Refresh metadata interval. Defaults to every 10 minutes. #refresh_frequency: 10m + # Strategy for fetching the topics metadata from the broker. Default is true. + #full: true + # The number of concurrent load-balanced Kafka output workers. #worker: 1 diff --git a/winlogbeat/winlogbeat.reference.yml b/winlogbeat/winlogbeat.reference.yml index ec534c84fcf..b13c6253ff8 100644 --- a/winlogbeat/winlogbeat.reference.yml +++ b/winlogbeat/winlogbeat.reference.yml @@ -145,7 +145,7 @@ winlogbeat.event_logs: # # event -> filter1 -> event1 -> filter2 ->event2 ... # -# The supported processors are drop_fields, drop_event, include_fields, +# The supported processors are drop_fields, drop_event, include_fields, # decode_json_fields, and add_cloud_metadata. # # For example, you can use the following processors to keep the fields that @@ -236,7 +236,7 @@ winlogbeat.event_logs: # match_pids: ["system.process.ppid"] # target: system.process.parent # -# The following example decodes fields containing JSON strings +# The following example decodes fields containing JSON strings # and replaces the strings with valid JSON objects. # #processors: @@ -538,6 +538,9 @@ output.elasticsearch: # Refresh metadata interval. Defaults to every 10 minutes. #refresh_frequency: 10m + # Strategy for fetching the topics metadata from the broker. Default is true. + #full: true + # The number of concurrent load-balanced Kafka output workers. #worker: 1 diff --git a/x-pack/auditbeat/auditbeat.reference.yml b/x-pack/auditbeat/auditbeat.reference.yml index 239da5691a1..25eb815890f 100644 --- a/x-pack/auditbeat/auditbeat.reference.yml +++ b/x-pack/auditbeat/auditbeat.reference.yml @@ -263,7 +263,7 @@ auditbeat.modules: # # event -> filter1 -> event1 -> filter2 ->event2 ... # -# The supported processors are drop_fields, drop_event, include_fields, +# The supported processors are drop_fields, drop_event, include_fields, # decode_json_fields, and add_cloud_metadata. # # For example, you can use the following processors to keep the fields that @@ -354,7 +354,7 @@ auditbeat.modules: # match_pids: ["system.process.ppid"] # target: system.process.parent # -# The following example decodes fields containing JSON strings +# The following example decodes fields containing JSON strings # and replaces the strings with valid JSON objects. # #processors: @@ -656,6 +656,9 @@ output.elasticsearch: # Refresh metadata interval. Defaults to every 10 minutes. #refresh_frequency: 10m + # Strategy for fetching the topics metadata from the broker. Default is true. + #full: true + # The number of concurrent load-balanced Kafka output workers. #worker: 1 diff --git a/x-pack/filebeat/filebeat.reference.yml b/x-pack/filebeat/filebeat.reference.yml index 1ac2e2cb14d..0a48f185b87 100644 --- a/x-pack/filebeat/filebeat.reference.yml +++ b/x-pack/filebeat/filebeat.reference.yml @@ -1013,7 +1013,7 @@ filebeat.inputs: # # event -> filter1 -> event1 -> filter2 ->event2 ... # -# The supported processors are drop_fields, drop_event, include_fields, +# The supported processors are drop_fields, drop_event, include_fields, # decode_json_fields, and add_cloud_metadata. # # For example, you can use the following processors to keep the fields that @@ -1104,7 +1104,7 @@ filebeat.inputs: # match_pids: ["system.process.ppid"] # target: system.process.parent # -# The following example decodes fields containing JSON strings +# The following example decodes fields containing JSON strings # and replaces the strings with valid JSON objects. # #processors: @@ -1406,6 +1406,9 @@ output.elasticsearch: # Refresh metadata interval. Defaults to every 10 minutes. #refresh_frequency: 10m + # Strategy for fetching the topics metadata from the broker. Default is true. + #full: true + # The number of concurrent load-balanced Kafka output workers. #worker: 1 diff --git a/x-pack/functionbeat/functionbeat.reference.yml b/x-pack/functionbeat/functionbeat.reference.yml index 05feb66beec..7184c2f40ac 100644 --- a/x-pack/functionbeat/functionbeat.reference.yml +++ b/x-pack/functionbeat/functionbeat.reference.yml @@ -261,7 +261,7 @@ functionbeat.provider.aws.functions: # # event -> filter1 -> event1 -> filter2 ->event2 ... # -# The supported processors are drop_fields, drop_event, include_fields, +# The supported processors are drop_fields, drop_event, include_fields, # decode_json_fields, and add_cloud_metadata. # # For example, you can use the following processors to keep the fields that @@ -352,7 +352,7 @@ functionbeat.provider.aws.functions: # match_pids: ["system.process.ppid"] # target: system.process.parent # -# The following example decodes fields containing JSON strings +# The following example decodes fields containing JSON strings # and replaces the strings with valid JSON objects. # #processors: @@ -654,6 +654,9 @@ output.elasticsearch: # Refresh metadata interval. Defaults to every 10 minutes. #refresh_frequency: 10m + # Strategy for fetching the topics metadata from the broker. Default is true. + #full: true + # The number of concurrent load-balanced Kafka output workers. #worker: 1 diff --git a/x-pack/metricbeat/metricbeat.reference.yml b/x-pack/metricbeat/metricbeat.reference.yml index 6f5f1327b1e..a588f13d2d9 100644 --- a/x-pack/metricbeat/metricbeat.reference.yml +++ b/x-pack/metricbeat/metricbeat.reference.yml @@ -855,7 +855,7 @@ metricbeat.modules: # # event -> filter1 -> event1 -> filter2 ->event2 ... # -# The supported processors are drop_fields, drop_event, include_fields, +# The supported processors are drop_fields, drop_event, include_fields, # decode_json_fields, and add_cloud_metadata. # # For example, you can use the following processors to keep the fields that @@ -946,7 +946,7 @@ metricbeat.modules: # match_pids: ["system.process.ppid"] # target: system.process.parent # -# The following example decodes fields containing JSON strings +# The following example decodes fields containing JSON strings # and replaces the strings with valid JSON objects. # #processors: @@ -1248,6 +1248,9 @@ output.elasticsearch: # Refresh metadata interval. Defaults to every 10 minutes. #refresh_frequency: 10m + # Strategy for fetching the topics metadata from the broker. Default is true. + #full: true + # The number of concurrent load-balanced Kafka output workers. #worker: 1 From fda7c77d08ed5b6ccbcbd3b9e890ddfd0bfabf59 Mon Sep 17 00:00:00 2001 From: Mario Castro Date: Thu, 28 Feb 2019 10:38:00 +0100 Subject: [PATCH 096/332] [Metricbeat] Migrate Kubernetes volume Metricset to use ReporterV2 interface --- metricbeat/module/kubernetes/volume/volume.go | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/metricbeat/module/kubernetes/volume/volume.go b/metricbeat/module/kubernetes/volume/volume.go index bb2f9e83924..df7b9dd594f 100644 --- a/metricbeat/module/kubernetes/volume/volume.go +++ b/metricbeat/module/kubernetes/volume/volume.go @@ -18,7 +18,7 @@ package volume import ( - "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" @@ -34,6 +34,8 @@ var ( DefaultScheme: defaultScheme, DefaultPath: defaultPath, }.Build() + + logger = logp.NewLogger("kubernetes.volume") ) // init registers the MetricSet with the central registry. @@ -68,19 +70,21 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { }, nil } -// Fetch methods implements the data gathering and data conversion to the right format -// It returns the event which is then forward to the output. In case of an error, a -// descriptive error must be returned. -func (m *MetricSet) Fetch() ([]common.MapStr, error) { +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(reporter mb.ReporterV2) { body, err := m.http.FetchContent() if err != nil { - return nil, err + logger.Error(err) + reporter.Error(err) + return } events, err := eventMapping(body) - if err != nil { - return nil, err + for _, e := range events { + reporter.Event(mb.Event{MetricSetFields: e}) } - return events, nil + return } From 218a1315f3216446786b2b1d6f8bd3eb7b3d5820 Mon Sep 17 00:00:00 2001 From: Mario Castro Date: Thu, 28 Feb 2019 10:39:14 +0100 Subject: [PATCH 097/332] [Metricbeat] Migrate Kubernetes system Metricset to use ReporterV2 interface --- metricbeat/module/kubernetes/system/system.go | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/metricbeat/module/kubernetes/system/system.go b/metricbeat/module/kubernetes/system/system.go index 075c2a929aa..07625271d9f 100644 --- a/metricbeat/module/kubernetes/system/system.go +++ b/metricbeat/module/kubernetes/system/system.go @@ -18,7 +18,7 @@ package system import ( - "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" @@ -34,6 +34,8 @@ var ( DefaultScheme: defaultScheme, DefaultPath: defaultPath, }.Build() + + logger = logp.NewLogger("kubernetes.system") ) // init registers the MetricSet with the central registry. @@ -68,19 +70,26 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { }, nil } -// Fetch methods implements the data gathering and data conversion to the right format -// It returns the event which is then forward to the output. In case of an error, a -// descriptive error must be returned. -func (m *MetricSet) Fetch() ([]common.MapStr, error) { +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(reporter mb.ReporterV2) { body, err := m.http.FetchContent() if err != nil { - return nil, err + logger.Error(err) + reporter.Error(err) + return } events, err := eventMapping(body) if err != nil { - return nil, err + logger.Error(err) + reporter.Error(err) + return } - return events, nil + for _, e := range events { + reporter.Event(mb.Event{MetricSetFields: e}) + } + return } From 12e2959f5f253c65bcebd668d48fa77bd32b645f Mon Sep 17 00:00:00 2001 From: Mario Castro Date: Thu, 28 Feb 2019 10:44:08 +0100 Subject: [PATCH 098/332] [Metricbeat] Migrate Kubernetes node Metricset to use ReporterV2 interface --- metricbeat/module/kubernetes/node/node.go | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/metricbeat/module/kubernetes/node/node.go b/metricbeat/module/kubernetes/node/node.go index f625667090c..4d901d7e89c 100644 --- a/metricbeat/module/kubernetes/node/node.go +++ b/metricbeat/module/kubernetes/node/node.go @@ -20,6 +20,7 @@ package node import ( "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/common/kubernetes" + "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" @@ -36,6 +37,8 @@ var ( DefaultScheme: defaultScheme, DefaultPath: defaultPath, }.Build() + + logger = logp.NewLogger("kubernetes.node") ) // init registers the MetricSet with the central registry. @@ -73,25 +76,31 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { }, nil } -// Fetch methods implements the data gathering and data conversion to the right format -// It returns the event which is then forward to the output. In case of an error, a -// descriptive error must be returned. -func (m *MetricSet) Fetch() (common.MapStr, error) { +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(reporter mb.ReporterV2) { m.enricher.Start() body, err := m.http.FetchContent() if err != nil { - return nil, err + logger.Error(err) + reporter.Error(err) + return } event, err := eventMapping(body) if err != nil { - return nil, err + logger.Error(err) + reporter.Error(err) + return } m.enricher.Enrich([]common.MapStr{event}) - return event, nil + reporter.Event(mb.Event{MetricSetFields: event}) + + return } // Close stops this metricset From f5bb2a053c4612ed573c9cf1a7f8627270b94ff3 Mon Sep 17 00:00:00 2001 From: Mario Castro Date: Thu, 28 Feb 2019 10:48:51 +0100 Subject: [PATCH 099/332] [Metricbeat] Migrate MongoDB collstats Metricset to use ReporterV2 interface --- .../module/mongodb/collstats/_meta/data.json | 153 +++++++++--------- .../module/mongodb/collstats/collstats.go | 46 +++--- .../collstats/collstats_integration_test.go | 25 +-- 3 files changed, 121 insertions(+), 103 deletions(-) diff --git a/metricbeat/module/mongodb/collstats/_meta/data.json b/metricbeat/module/mongodb/collstats/_meta/data.json index 6f8ef320b6a..ff74e5f9d66 100644 --- a/metricbeat/module/mongodb/collstats/_meta/data.json +++ b/metricbeat/module/mongodb/collstats/_meta/data.json @@ -1,77 +1,82 @@ { - "@timestamp": "2016-05-23T08:05:34.853Z", - "beat": { - "hostname": "beathost", - "name": "beathost" - }, - "metricset": { - "host": "localhost", - "module": "mongodb", - "name": "collstats", - "rtt": 44269 - }, - "mongodb": { - "collstats": { - "db": "admin", - "collection": "system.users", - "name": "admin.system.users", - "total": { - "time": { - "us": 54756221 - }, - "count": 3159951 - }, - "lock": { - "read": { - "time": { - "us": 54747284 - }, - "count": 3159944 - }, - "write": { - "time": { - "us": 8937 - }, - "count": 7 + "@timestamp": "2017-10-12T08:05:34.853Z", + "agent": { + "hostname": "host.example.com", + "name": "host.example.com" + }, + "event": { + "dataset": "mongodb.collstats", + "duration": 115000, + "module": "mongodb" + }, + "metricset": { + "name": "collstats" + }, + "mongodb": { + "collstats": { + "collection": "startup_log", + "commands": { + "count": 0, + "time": { + "us": 0 + } + }, + "db": "local", + "getmore": { + "count": 0, + "time": { + "us": 0 + } + }, + "insert": { + "count": 0, + "time": { + "us": 0 + } + }, + "lock": { + "read": { + "count": 74, + "time": { + "us": 443 + } + }, + "write": { + "count": 1, + "time": { + "us": 8 + } + } + }, + "name": "local.startup_log", + "queries": { + "count": 0, + "time": { + "us": 0 + } + }, + "remove": { + "count": 0, + "time": { + "us": 0 + } + }, + "total": { + "count": 75, + "time": { + "us": 451 + } + }, + "update": { + "count": 0, + "time": { + "us": 0 + } + } } - }, - "queries": { - "time": { - "us": 2310 - }, - "count": 15 - }, - "getmore": { - "time": { - "us": 0 - }, - "count": 0 - }, - "insert": { - "time": { - "us": 8937 - }, - "count": 7 - }, - "update": { - "time": { - "us": 0 - }, - "count": 0 - }, - "remove": { - "time": { - "us": 0 - }, - "count": 0 - }, - "commands": { - "time": { - "us": 50743698 - }, - "count": 45793 - } + }, + "service": { + "address": "172.26.0.2:27017", + "type": "mongodb" } - }, - "type": "metricsets" -} +} \ No newline at end of file diff --git a/metricbeat/module/mongodb/collstats/collstats.go b/metricbeat/module/mongodb/collstats/collstats.go index d3ed7b2da0a..3f78a35352f 100644 --- a/metricbeat/module/mongodb/collstats/collstats.go +++ b/metricbeat/module/mongodb/collstats/collstats.go @@ -18,7 +18,7 @@ package collstats import ( - "errors" + "github.com/pkg/errors" "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/logp" @@ -26,7 +26,7 @@ import ( "github.com/elastic/beats/metricbeat/module/mongodb" ) -var debugf = logp.MakeDebug("mongodb.collstats") +var logger = logp.NewLogger("mongodb.collstats") func init() { mb.Registry.MustAddMetricSet("mongodb", "collstats", New, @@ -54,17 +54,16 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { return &MetricSet{ms}, nil } -// Fetch methods implements the data gathering and data conversion to the right format -// It returns the event which is then forward to the output. In case of an error, a -// descriptive error must be returned. -func (m *MetricSet) Fetch() ([]common.MapStr, error) { - // events is the list of events collected from each of the collections. - var events []common.MapStr - +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(reporter mb.ReporterV2) { // instantiate direct connections to each of the configured Mongo hosts mongoSession, err := mongodb.NewDirectSession(m.DialInfo) if err != nil { - return nil, err + logger.Error(err) + reporter.Error(err) + return } defer mongoSession.Close() @@ -72,21 +71,25 @@ func (m *MetricSet) Fetch() ([]common.MapStr, error) { err = mongoSession.Run("top", &result) if err != nil { - logp.Err("Error retrieving collection totals from Mongo instance") - return events, err + err = errors.Wrap(err, "Error retrieving collection totals from Mongo instance") + logger.Error(err) + reporter.Error(err) + return } if _, ok := result["totals"]; !ok { err = errors.New("Error accessing collection totals in returned data") - logp.Err(err.Error()) - return events, err + logger.Error(err) + reporter.Error(err) + return } totals, ok := result["totals"].(common.MapStr) if !ok { err = errors.New("Collection totals are not a map") - logp.Err(err.Error()) - return events, err + logger.Error(err) + reporter.Error(err) + return } for group, info := range totals { @@ -97,18 +100,21 @@ func (m *MetricSet) Fetch() ([]common.MapStr, error) { infoMap, ok := info.(common.MapStr) if !ok { err = errors.New("Unexpected data returned by mongodb") - logp.Err(err.Error()) + logger.Error(err) + reporter.Error(err) continue } event, err := eventMapping(group, infoMap) if err != nil { - logp.Err("Mapping of the event data filed") + err = errors.Wrap(err, "Mapping of the event data filed") + logger.Error(err) + reporter.Error(err) continue } - events = append(events, event) + reporter.Event(mb.Event{MetricSetFields: event}) } - return events, nil + return } diff --git a/metricbeat/module/mongodb/collstats/collstats_integration_test.go b/metricbeat/module/mongodb/collstats/collstats_integration_test.go index 0de42bd027f..dc828330f5a 100644 --- a/metricbeat/module/mongodb/collstats/collstats_integration_test.go +++ b/metricbeat/module/mongodb/collstats/collstats_integration_test.go @@ -32,20 +32,22 @@ import ( func TestFetch(t *testing.T) { compose.EnsureUp(t, "mongodb") - f := mbtest.NewEventsFetcher(t, getConfig()) - events, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } + assert.NotEmpty(t, events) for _, event := range events { t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) + metricsetFields := event.MetricSetFields // Check a few event Fields - db := event["db"].(string) + db := metricsetFields["db"].(string) assert.NotEqual(t, db, "") - collection := event["collection"].(string) + collection := metricsetFields["collection"].(string) assert.NotEqual(t, collection, "") } } @@ -53,9 +55,14 @@ func TestFetch(t *testing.T) { func TestData(t *testing.T) { compose.EnsureUp(t, "mongodb") - f := mbtest.NewEventsFetcher(t, getConfig()) - err := mbtest.WriteEvents(f, t) - if err != nil { + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) + } + assert.NotEmpty(t, events) + + if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { t.Fatal("write", err) } } From 74d5c7fa4d3ed495ce2abaf93663f9021b0bad9c Mon Sep 17 00:00:00 2001 From: Silvia Mitter Date: Thu, 28 Feb 2019 11:27:25 +0100 Subject: [PATCH 100/332] Add changelog entry for aligning default index #10841. (#10981) --- CHANGELOG-developer.next.asciidoc | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG-developer.next.asciidoc b/CHANGELOG-developer.next.asciidoc index 810ef7e3830..323dd72984b 100644 --- a/CHANGELOG-developer.next.asciidoc +++ b/CHANGELOG-developer.next.asciidoc @@ -22,6 +22,7 @@ The list below covers the major changes between 7.0.0-beta1 and master only. - Remove support for deprecated `GenRootCmd` methods. {pull}10721[10721] ==== Bugfixes +- Align default index between elasticsearch and logstash and kafka output. {pull}10841[10841] ==== Added From 2585f618f771d0534e3546b7bc728231a35ac4a1 Mon Sep 17 00:00:00 2001 From: Jaime Soriano Pastor Date: Thu, 28 Feb 2019 12:11:00 +0100 Subject: [PATCH 101/332] Don't expect aliases in output dictionaries (#10921) With the creation of aliases for ECS we have found that some features weren't being migrated and were writing to aliases (like in #10757). Consider writing to an alias field an error. --- CHANGELOG-developer.next.asciidoc | 2 ++ libbeat/tests/system/beat/beat.py | 30 ++++++++++++++++++--------- packetbeat/tests/system/packetbeat.py | 2 +- 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/CHANGELOG-developer.next.asciidoc b/CHANGELOG-developer.next.asciidoc index 323dd72984b..5edff8d9cde 100644 --- a/CHANGELOG-developer.next.asciidoc +++ b/CHANGELOG-developer.next.asciidoc @@ -19,6 +19,7 @@ https://github.com/elastic/beats/compare/v7.0.0-beta1..master[Check the HEAD dif The list below covers the major changes between 7.0.0-beta1 and master only. ==== Breaking changes + - Remove support for deprecated `GenRootCmd` methods. {pull}10721[10721] ==== Bugfixes @@ -29,3 +30,4 @@ The list below covers the major changes between 7.0.0-beta1 and master only. - Metricset generator generates beta modules by default now. {pull}10657[10657] - Move host name addition to a processor. {pull}10728[10728] - The `beat.Event` accessor methods now support `@metadata` keys. {pull}10761[10761] +- Assertion for documented fields in tests fails if any of the fields in the tested event is documented as an alias. {pull}10921[10921] diff --git a/libbeat/tests/system/beat/beat.py b/libbeat/tests/system/beat/beat.py index fa88fb1aba3..452d3ed9287 100644 --- a/libbeat/tests/system/beat/beat.py +++ b/libbeat/tests/system/beat/beat.py @@ -493,9 +493,10 @@ def load_fields(self, fields_doc=None): def extract_fields(doc_list, name): fields = [] dictfields = [] + aliases = [] if doc_list is None: - return fields, dictfields + return fields, dictfields, aliases for field in doc_list: @@ -510,14 +511,19 @@ def extract_fields(doc_list, name): newName = field["name"] if field.get("type") == "group": - subfields, subdictfields = extract_fields(field["fields"], newName) + subfields, subdictfields, subaliases = extract_fields(field["fields"], newName) fields.extend(subfields) dictfields.extend(subdictfields) + aliases.extend(subaliases) else: fields.append(newName) if field.get("type") in ["object", "geo_point"]: dictfields.append(newName) - return fields, dictfields + + if field.get("type") == "alias": + aliases.append(newName) + + return fields, dictfields, aliases global yaml_cache @@ -542,12 +548,14 @@ def extract_fields(doc_list, name): fields = [] dictfields = [] + aliases = [] for item in doc: - subfields, subdictfields = extract_fields(item["fields"], "") + subfields, subdictfields, subaliases = extract_fields(item["fields"], "") fields.extend(subfields) dictfields.extend(subdictfields) - return fields, dictfields + aliases.extend(subaliases) + return fields, dictfields, aliases def flatten_object(self, obj, dict_fields, prefix=""): result = {} @@ -610,7 +618,7 @@ def assert_fields_are_documented(self, evt): Assert that all keys present in evt are documented in fields.yml. This reads from the global fields.yml, means `make collect` has to be run before the check. """ - expected_fields, dict_fields = self.load_fields() + expected_fields, dict_fields, aliases = self.load_fields() flat = self.flatten_object(evt, dict_fields) def field_pattern_match(pattern, key): @@ -625,15 +633,17 @@ def field_pattern_match(pattern, key): return False return True - def is_documented(key): - if key in expected_fields: + def is_documented(key, docs): + if key in docs: return True - for pattern in (f for f in expected_fields if "*" in f): + for pattern in (f for f in docs if "*" in f): if field_pattern_match(pattern, key): return True return False for key in flat.keys(): metaKey = key.startswith('@metadata.') - if not(is_documented(key) or metaKey): + if not(is_documented(key, expected_fields) or metaKey): raise Exception("Key '{}' found in event is not documented!".format(key)) + if is_documented(key, aliases): + raise Exception("Key '{}' found in event is documented as an alias!".format(key)) diff --git a/packetbeat/tests/system/packetbeat.py b/packetbeat/tests/system/packetbeat.py index e6ec4b2559e..24b59a32b9c 100644 --- a/packetbeat/tests/system/packetbeat.py +++ b/packetbeat/tests/system/packetbeat.py @@ -137,5 +137,5 @@ def read_output(self, def setUp(self): - self.expected_fields, self.dict_fields = self.load_fields() + self.expected_fields, self.dict_fields, _ = self.load_fields() super(BaseTest, self).setUp() From 2e551f441ebab89c84406934306a16af258797e6 Mon Sep 17 00:00:00 2001 From: kaiyan-sheng Date: Thu, 28 Feb 2019 04:47:19 -0700 Subject: [PATCH 102/332] Remove empty x-pack/agent folder (#10980) --- x-pack/agent | 1 - 1 file changed, 1 deletion(-) delete mode 160000 x-pack/agent diff --git a/x-pack/agent b/x-pack/agent deleted file mode 160000 index ab7def44a15..00000000000 --- a/x-pack/agent +++ /dev/null @@ -1 +0,0 @@ -Subproject commit ab7def44a15e6ccbb3fc3176f1ea2c122f0d8637 From e03f966fcdb31a04b152df363a858def6ed9efcf Mon Sep 17 00:00:00 2001 From: kaiyan-sheng Date: Thu, 28 Feb 2019 06:25:21 -0700 Subject: [PATCH 103/332] Add s3_request metricset for AWS module (#10949) * Add s3_request metricset for AWS module * Add changelog * Change metric names and add a check for timestamp * Add ms unit to latency metrics --- CHANGELOG.next.asciidoc | 1 + metricbeat/docs/fields.asciidoc | 177 ++++++++++++++ metricbeat/docs/modules/aws.asciidoc | 33 ++- .../docs/modules/aws/s3_request.asciidoc | 23 ++ metricbeat/docs/modules_list.asciidoc | 3 +- x-pack/metricbeat/include/list.go | 1 + x-pack/metricbeat/metricbeat.reference.yml | 8 + x-pack/metricbeat/module/aws/_meta/config.yml | 8 + .../metricbeat/module/aws/_meta/docs.asciidoc | 21 +- x-pack/metricbeat/module/aws/aws.go | 10 + .../module/aws/ec2/ec2_integration_test.go | 6 +- x-pack/metricbeat/module/aws/fields.go | 2 +- .../module/aws/mtest/integration.go | 48 ++-- .../module/aws/s3_request/_meta/data.json | 46 ++++ .../module/aws/s3_request/_meta/docs.asciidoc | 10 + .../module/aws/s3_request/_meta/fields.yml | 74 ++++++ .../metricbeat/module/aws/s3_request/data.go | 41 ++++ .../module/aws/s3_request/s3_request.go | 228 ++++++++++++++++++ .../s3_request/s3_request_integration_test.go | 74 ++++++ .../module/aws/sqs/sqs_integration_test.go | 4 +- x-pack/metricbeat/modules.d/aws.yml.disabled | 8 + 21 files changed, 790 insertions(+), 36 deletions(-) create mode 100644 metricbeat/docs/modules/aws/s3_request.asciidoc create mode 100644 x-pack/metricbeat/module/aws/s3_request/_meta/data.json create mode 100644 x-pack/metricbeat/module/aws/s3_request/_meta/docs.asciidoc create mode 100644 x-pack/metricbeat/module/aws/s3_request/_meta/fields.yml create mode 100644 x-pack/metricbeat/module/aws/s3_request/data.go create mode 100644 x-pack/metricbeat/module/aws/s3_request/s3_request.go create mode 100644 x-pack/metricbeat/module/aws/s3_request/s3_request_integration_test.go diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index c6908806c54..f4871d41df6 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -312,6 +312,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Add Consul Metricbeat module with Agent Metricset {pull}8631[8631] - Add filters and pie chart for AWS EC2 dashboard. {pull}10596[10596] - Add AWS SQS metricset. {pull}10684[10684] {issue}10053[10053] +- Add AWS s3_request metricset. {pull}10949[10949] {issue}10055[10055] *Packetbeat* diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index 00080797d30..4df0fba5db7 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -1083,6 +1083,183 @@ type: integer The state of the instance (pending | running | shutting-down | terminated | stopping | stopped). +-- + +[float] +== s3_request fields + +`s3_request` contains request metrics that were scraped from AWS CloudWatch which contains monitoring metrics sent by AWS S3. + + + +*`aws.s3_request.bucket.name`*:: ++ +-- +type: keyword + +Name of a S3 bucket. + + +-- + +*`aws.s3_request.requests.total`*:: ++ +-- +type: long + +The total number of HTTP requests made to an Amazon S3 bucket, regardless of type. + + +-- + +*`aws.s3_request.requests.get`*:: ++ +-- +type: long + +The number of HTTP GET requests made for objects in an Amazon S3 bucket. + + +-- + +*`aws.s3_request.requests.put`*:: ++ +-- +type: long + +The number of HTTP PUT requests made for objects in an Amazon S3 bucket. + + +-- + +*`aws.s3_request.requests.delete`*:: ++ +-- +type: long + +The number of HTTP DELETE requests made for objects in an Amazon S3 bucket. + + +-- + +*`aws.s3_request.requests.head`*:: ++ +-- +type: long + +The number of HTTP HEAD requests made to an Amazon S3 bucket. + + +-- + +*`aws.s3_request.requests.post`*:: ++ +-- +type: long + +The number of HTTP POST requests made to an Amazon S3 bucket. + + +-- + +*`aws.s3_request.requests.select`*:: ++ +-- +type: long + +The number of Amazon S3 SELECT Object Content requests made for objects in an Amazon S3 bucket. + + +-- + +*`aws.s3_request.requests.select.scanned.bytes`*:: ++ +-- +type: scaled_float + +The number of bytes of data scanned with Amazon S3 SELECT Object Content requests in an Amazon S3 bucket. + + +-- + +*`aws.s3_request.requests.select.returned.bytes`*:: ++ +-- +type: scaled_float + +The number of bytes of data returned with Amazon S3 SELECT Object Content requests in an Amazon S3 bucket. + + +-- + +*`aws.s3_request.requests.list`*:: ++ +-- +type: long + +The number of HTTP requests that list the contents of a bucket. + + +-- + +*`aws.s3_request.downloaded.bytes`*:: ++ +-- +type: scaled_float + +The number bytes downloaded for requests made to an Amazon S3 bucket, where the response includes a body. + + +-- + +*`aws.s3_request.uploaded.bytes`*:: ++ +-- +type: scaled_float + +The number bytes uploaded that contain a request body, made to an Amazon S3 bucket. + + +-- + +*`aws.s3_request.errors.4xx`*:: ++ +-- +type: long + +The number of HTTP 4xx client error status code requests made to an Amazon S3 bucket with a value of either 0 or 1. + + +-- + +*`aws.s3_request.errors.5xx`*:: ++ +-- +type: long + +The number of HTTP 5xx server error status code requests made to an Amazon S3 bucket with a value of either 0 or 1. + + +-- + +*`aws.s3_request.latency.first_byte.ms`*:: ++ +-- +type: long + +The per-request time from the complete request being received by an Amazon S3 bucket to when the response starts to be returned. + + +-- + +*`aws.s3_request.latency.total_request.ms`*:: ++ +-- +type: long + +The elapsed per-request time from the first byte received to the last byte sent to an Amazon S3 bucket. + + -- [float] diff --git a/metricbeat/docs/modules/aws.asciidoc b/metricbeat/docs/modules/aws.asciidoc index 8eae60fd964..542c4f03792 100644 --- a/metricbeat/docs/modules/aws.asciidoc +++ b/metricbeat/docs/modules/aws.asciidoc @@ -9,7 +9,7 @@ This module periodically fetches monitoring metrics from AWS Cloudwatch using https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html[GetMetricData API] for running EC2 instances. Note: extra AWS charges on GetMetricData API requests will be generated by this module. -The default metricsets are `ec2` and `sqs`. +The default metricsets are `ec2`, `sqs` and `s3_request`. [float] === Module-specific configuration notes @@ -51,6 +51,7 @@ metricbeat.modules: default_region: '${AWS_REGION:us-west-1}' ---- +=== ec2 metricset By default, Amazon EC2 sends metric data to CloudWatch every 5 minutes. With this basic monitoring, `period` in aws module configuration should be larger or equal than `300s`. If `period` is set to be less than `300s`, the same cloudwatch metrics will be collected more than once which will cause extra fees without getting more granular metrics. For example, in `US East (N. Virginia)` region, it costs @@ -63,13 +64,23 @@ larger than `60s`. Since AWS sends metric data to CloudWatch in 1-minute periods than `60s` will cause extra API requests which means extra charges on AWS. To avoid unnecessary charges, `period` is preferred to be set to `60s` or multiples of `60s`, such as `120s` and `180s`. -Since cloudWatch metrics for Amazon SQS queues are automatically collected and pushed to CloudWatch every 5 minutes, -`period` for `sqs` is recommended to set to `300s` or multiples of `300s`. - -The AWS module comes with a predefined dashboard. For example: +The ec2 metricset comes with a predefined dashboard. For example: image::./images/metricbeat-aws-ec2-overview.png[] +=== sqs metricset +Cloudwatch metrics for Amazon SQS queues are automatically collected and pushed to CloudWatch every 5 minutes, +the `period` for `sqs` metricset is recommended to be `300s` or multiples of `300s`. + +=== s3_request metricset +Request metrics are available at 1-minute intervals with additional charges. The s3_request metricset will give more +granular data to track S3 bucket usage. The `period` for `s3_request` metricset can be set to `60s` or multiples of `60s`. +But because of the extra charges for querying these metrics, the `period` is recommended to set to `86400s`. The user can +always adjust this to the granularity they want. Request metrics are not enabled by default for S3 buckets. Please see +https://docs.aws.amazon.com/AmazonS3/latest/user-guide/configure-metrics.html[How to +Configure Request Metrics for S3] for instructions on how to enable request metrics for +each S3 bucket. + [float] === Example configuration @@ -89,6 +100,14 @@ metricbeat.modules: secret_access_key: '${AWS_SECRET_ACCESS_KEY:""}' session_token: '${AWS_SESSION_TOKEN:""}' default_region: '${AWS_REGION:us-west-1}' +- module: aws + period: 86400s + metricsets: + - "s3_request" + access_key_id: '${AWS_ACCESS_KEY_ID:""}' + secret_access_key: '${AWS_SECRET_ACCESS_KEY:""}' + session_token: '${AWS_SESSION_TOKEN:""}' + default_region: '${AWS_REGION:us-west-1}' ---- [float] @@ -98,9 +117,13 @@ The following metricsets are available: * <> +* <> + * <> include::aws/ec2.asciidoc[] +include::aws/s3_request.asciidoc[] + include::aws/sqs.asciidoc[] diff --git a/metricbeat/docs/modules/aws/s3_request.asciidoc b/metricbeat/docs/modules/aws/s3_request.asciidoc new file mode 100644 index 00000000000..03c070c1bf8 --- /dev/null +++ b/metricbeat/docs/modules/aws/s3_request.asciidoc @@ -0,0 +1,23 @@ +//// +This file is generated! See scripts/docs_collector.py +//// + +[[metricbeat-metricset-aws-s3_request]] +=== aws s3_request metricset + +beta[] + +include::../../../../x-pack/metricbeat/module/aws/s3_request/_meta/docs.asciidoc[] + + +==== Fields + +For a description of each field in the metricset, see the +<> section. + +Here is an example document generated by this metricset: + +[source,json] +---- +include::../../../../x-pack/metricbeat/module/aws/s3_request/_meta/data.json[] +---- diff --git a/metricbeat/docs/modules_list.asciidoc b/metricbeat/docs/modules_list.asciidoc index 7aef20c7339..485cab8fb1f 100644 --- a/metricbeat/docs/modules_list.asciidoc +++ b/metricbeat/docs/modules_list.asciidoc @@ -10,7 +10,8 @@ This file is generated! See scripts/docs_collector.py |<> |image:./images/icon-yes.png[Prebuilt dashboards are available] | .1+| .1+| |<> |<> |image:./images/icon-yes.png[Prebuilt dashboards are available] | -.2+| .2+| |<> +.3+| .3+| |<> +|<> beta[] |<> beta[] |<> |image:./images/icon-no.png[No prebuilt dashboards] | .7+| .7+| |<> diff --git a/x-pack/metricbeat/include/list.go b/x-pack/metricbeat/include/list.go index 4e75b505f43..c20490fb53b 100644 --- a/x-pack/metricbeat/include/list.go +++ b/x-pack/metricbeat/include/list.go @@ -10,6 +10,7 @@ import ( // Import packages that need to register themselves. _ "github.com/elastic/beats/x-pack/metricbeat/module/aws" _ "github.com/elastic/beats/x-pack/metricbeat/module/aws/ec2" + _ "github.com/elastic/beats/x-pack/metricbeat/module/aws/s3_request" _ "github.com/elastic/beats/x-pack/metricbeat/module/aws/sqs" _ "github.com/elastic/beats/x-pack/metricbeat/module/mssql" _ "github.com/elastic/beats/x-pack/metricbeat/module/mssql/performance" diff --git a/x-pack/metricbeat/metricbeat.reference.yml b/x-pack/metricbeat/metricbeat.reference.yml index a588f13d2d9..0e7bcc0a0cb 100644 --- a/x-pack/metricbeat/metricbeat.reference.yml +++ b/x-pack/metricbeat/metricbeat.reference.yml @@ -157,6 +157,14 @@ metricbeat.modules: secret_access_key: '${AWS_SECRET_ACCESS_KEY:""}' session_token: '${AWS_SESSION_TOKEN:""}' default_region: '${AWS_REGION:us-west-1}' +- module: aws + period: 86400s + metricsets: + - "s3_request" + access_key_id: '${AWS_ACCESS_KEY_ID:""}' + secret_access_key: '${AWS_SECRET_ACCESS_KEY:""}' + session_token: '${AWS_SESSION_TOKEN:""}' + default_region: '${AWS_REGION:us-west-1}' #--------------------------------- Ceph Module --------------------------------- - module: ceph diff --git a/x-pack/metricbeat/module/aws/_meta/config.yml b/x-pack/metricbeat/module/aws/_meta/config.yml index d831e5e094d..3561b58b11f 100644 --- a/x-pack/metricbeat/module/aws/_meta/config.yml +++ b/x-pack/metricbeat/module/aws/_meta/config.yml @@ -7,3 +7,11 @@ secret_access_key: '${AWS_SECRET_ACCESS_KEY:""}' session_token: '${AWS_SESSION_TOKEN:""}' default_region: '${AWS_REGION:us-west-1}' +- module: aws + period: 86400s + metricsets: + - "s3_request" + access_key_id: '${AWS_ACCESS_KEY_ID:""}' + secret_access_key: '${AWS_SECRET_ACCESS_KEY:""}' + session_token: '${AWS_SESSION_TOKEN:""}' + default_region: '${AWS_REGION:us-west-1}' diff --git a/x-pack/metricbeat/module/aws/_meta/docs.asciidoc b/x-pack/metricbeat/module/aws/_meta/docs.asciidoc index 6706525d8d0..5b5ae11018f 100644 --- a/x-pack/metricbeat/module/aws/_meta/docs.asciidoc +++ b/x-pack/metricbeat/module/aws/_meta/docs.asciidoc @@ -2,7 +2,7 @@ This module periodically fetches monitoring metrics from AWS Cloudwatch using https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html[GetMetricData API] for running EC2 instances. Note: extra AWS charges on GetMetricData API requests will be generated by this module. -The default metricsets are `ec2` and `sqs`. +The default metricsets are `ec2`, `sqs` and `s3_request`. [float] === Module-specific configuration notes @@ -44,6 +44,7 @@ metricbeat.modules: default_region: '${AWS_REGION:us-west-1}' ---- +=== ec2 metricset By default, Amazon EC2 sends metric data to CloudWatch every 5 minutes. With this basic monitoring, `period` in aws module configuration should be larger or equal than `300s`. If `period` is set to be less than `300s`, the same cloudwatch metrics will be collected more than once which will cause extra fees without getting more granular metrics. For example, in `US East (N. Virginia)` region, it costs @@ -56,9 +57,19 @@ larger than `60s`. Since AWS sends metric data to CloudWatch in 1-minute periods than `60s` will cause extra API requests which means extra charges on AWS. To avoid unnecessary charges, `period` is preferred to be set to `60s` or multiples of `60s`, such as `120s` and `180s`. -Since cloudWatch metrics for Amazon SQS queues are automatically collected and pushed to CloudWatch every 5 minutes, -`period` for `sqs` is recommended to set to `300s` or multiples of `300s`. - -The AWS module comes with a predefined dashboard. For example: +The ec2 metricset comes with a predefined dashboard. For example: image::./images/metricbeat-aws-ec2-overview.png[] + +=== sqs metricset +Cloudwatch metrics for Amazon SQS queues are automatically collected and pushed to CloudWatch every 5 minutes, +the `period` for `sqs` metricset is recommended to be `300s` or multiples of `300s`. + +=== s3_request metricset +Request metrics are available at 1-minute intervals with additional charges. The s3_request metricset will give more +granular data to track S3 bucket usage. The `period` for `s3_request` metricset can be set to `60s` or multiples of `60s`. +But because of the extra charges for querying these metrics, the `period` is recommended to set to `86400s`. The user can +always adjust this to the granularity they want. Request metrics are not enabled by default for S3 buckets. Please see +https://docs.aws.amazon.com/AmazonS3/latest/user-guide/configure-metrics.html[How to +Configure Request Metrics for S3] for instructions on how to enable request metrics for +each S3 bucket. diff --git a/x-pack/metricbeat/module/aws/aws.go b/x-pack/metricbeat/module/aws/aws.go index d120d8d0654..2a709aba79a 100644 --- a/x-pack/metricbeat/module/aws/aws.go +++ b/x-pack/metricbeat/module/aws/aws.go @@ -139,3 +139,13 @@ func convertPeriodToDuration(period string) (string, int, error) { return duration, numberPeriod, err } } + +// StringInSlice checks if a string is already exists in list +func StringInSlice(str string, list []string) bool { + for _, v := range list { + if v == str { + return true + } + } + return false +} diff --git a/x-pack/metricbeat/module/aws/ec2/ec2_integration_test.go b/x-pack/metricbeat/module/aws/ec2/ec2_integration_test.go index 6525e3f3b7c..d327c539af9 100644 --- a/x-pack/metricbeat/module/aws/ec2/ec2_integration_test.go +++ b/x-pack/metricbeat/module/aws/ec2/ec2_integration_test.go @@ -2,6 +2,8 @@ // or more contributor license agreements. Licensed under the Elastic License; // you may not use this file except in compliance with the Elastic License. +// +build integration + package ec2 import ( @@ -14,7 +16,7 @@ import ( ) func TestFetch(t *testing.T) { - config, info := mtest.GetConfigForTest("ec2") + config, info := mtest.GetConfigForTest("ec2", "300s") if info != "" { t.Skip("Skipping TestFetch: " + info) } @@ -63,7 +65,7 @@ func TestFetch(t *testing.T) { } func TestData(t *testing.T) { - config, info := mtest.GetConfigForTest("ec2") + config, info := mtest.GetConfigForTest("ec2", "300s") if info != "" { t.Skip("Skipping TestData: " + info) } diff --git a/x-pack/metricbeat/module/aws/fields.go b/x-pack/metricbeat/module/aws/fields.go index 15e67526b2a..f65009a75f8 100644 --- a/x-pack/metricbeat/module/aws/fields.go +++ b/x-pack/metricbeat/module/aws/fields.go @@ -19,5 +19,5 @@ func init() { // AssetAws returns asset data. // This is the base64 encoded gzipped contents of module/aws. func AssetAws() string { - return "eJzEWM9v27gSvuevGPTUAo2AVzy8Qw4PaNMecthFtmnRozMmx9YgFKlyhvY66B+/ICU7sSMnTmpldQgCUZ75vo+cXzyFG1qdAS7lBEBZHZ3BG1zKmxMAS2Iit8rBn8H/TwAArnEp19AEmxyBCc6RUYGPP66gCZ41RPZzaEgjG4FZDE1ZO3ch2SWqqasTgEiOUOgM5ngCMGNyVs6K9VPw2NAaTX501eYPY0ht/2YA1LaR+4bIfNi8GzK212D3XJP5cA0meEX2AlrThpvWqLCkSCAmYkt2h+2PzBaWNZv6zsCARkJeYboqP/xy/qG6539bp/WzS/U+XdOmSoOiq1qjW1+syYtBR3YycwF3P3hEh/x8qwlaioa84pwgzACdCwaVbAYOJjRtUoLkWXt5MBKYFCN5dStgD0kIgi86shdFb6jaS8REsqyTJDinEbj41EwpZh7nl9+hcyYgbb8f9zHCLMTyVVJ2fIvZ7JO4p+jyb0dFThg92S0CnfD+DnuNAmhMTGRBOL9hhSUKOEze1GQhRBDFqGT3k5IUW5dk8orkepfbzGpcEEyJ/N1OoYfkHTecT+KG9rImD/ln55ffz4uFTx1mWKBLBCxwSzEcylgmpsY4Jzsu5cJpkHiOJR8UWmQLNix9pv5w/98DetunHa2TAHuTYtYIreWMAh10VIape9JliDcV+6pFc0MqozLufUAkQ7zIh9HnvLKGAeyV4gwNyW5QPg4/JH1V/CWNh6THws++mq6UxgVfPIwi/WthP5bsluWGQxUJ7SjYP/VKY98mZKybVCUaIsEiuNSQAC6QHU4dgYbDkS8jK40IPdtX8hnT0bEX1UN7bODnoWkd5aJQdA8txVK55eVbkHsYzFna8IzJ5n6Ig83HUbk5ZIPGZFk83Kf5wr16CUlR1CSVqcncTGbIbk+hdMHPn8fvK7UhquR6rjXFbaS5t2lRhCxMg9bbix0mKJhKVcyrshKlZnuNu47UoSg07JMeTnLS2XtlrmMQWfv5F6gM79ihZDYpxoSY/yQ/PPnkkjCn+NuDQogkZSB4Or9tVrnBOVU8HBM3tFqGuLt2ALCLzyUoM4xsP09XNgdz19g/B9/dXFrlPRg+BC/CeeEt5xnx7iRY0nLi7g/DLEA+56I9E8gGaBt5gUqV9TLJS8cVtLcOn/+8Ko7X8j7oKg5Eye3wSdx9/QxoF5eL/+ZWPpIIoEgwXCbwJffp79lY09SxGUvQYvyBngeeyh7aEVVcC9fj+JKTCxu4uNysvM0Cv4NpSN6uC+NzJS0hVJlgh9V8cSIqdnc1fA95vof//O90ygrJC899mYOLkyeQap1bI5m0FCc5sb0CXnjbkrc56H9BTN53/0mdVNnPT8tk+wuUYsO+nOxfuW9p2/67/C/Zd9WDmz75Kb910yc/5RVv+q7+uhq86ZuSHnrXF5wl0UlDIjinSS4wQuZI5bsES9vG8Dc3eRP7G78sS+cXfPCnlrrOs8ewLtk/E6U9MdJ/WVlyuDpaj/htu0z3TmQLz90tSu+7tIQ+6L1GOFf1HBClJDUN2Zxb3epxKj7oZMHCU3es3mkPmw0B9jBzPK/1cWCvAmpXPI1MC3RdiBx+GPIxGhfo+qw+B9j6ZmRcZJE0lWu86QoMOifruvO1c/9HH11o9t87rxHnHDPyhlvbdZn4mILUtLqa9PoNj7y/i2hHnY+XF2v1cpxY7oK7Exdwo9DwQET+LpMK345zk1JqIt/SE3r+EwAA//8lh/10" + return "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" } diff --git a/x-pack/metricbeat/module/aws/mtest/integration.go b/x-pack/metricbeat/module/aws/mtest/integration.go index 117ec5e5d42..afacfdcbb0d 100644 --- a/x-pack/metricbeat/module/aws/mtest/integration.go +++ b/x-pack/metricbeat/module/aws/mtest/integration.go @@ -5,6 +5,7 @@ package mtest import ( + "errors" "os" "testing" @@ -14,7 +15,7 @@ import ( ) // GetConfigForTest function gets aws credentials for integration tests. -func GetConfigForTest(metricSetName string) (map[string]interface{}, string) { +func GetConfigForTest(metricSetName string, period string) (map[string]interface{}, string) { accessKeyID, okAccessKeyID := os.LookupEnv("AWS_ACCESS_KEY_ID") secretAccessKey, okSecretAccessKey := os.LookupEnv("AWS_SECRET_ACCESS_KEY") sessionToken, okSessionToken := os.LookupEnv("AWS_SESSION_TOKEN") @@ -32,7 +33,7 @@ func GetConfigForTest(metricSetName string) (map[string]interface{}, string) { } else { config = map[string]interface{}{ "module": "aws", - "period": "300s", + "period": period, "metricsets": []string{metricSetName}, "access_key_id": accessKeyID, "secret_access_key": secretAccessKey, @@ -48,36 +49,43 @@ func GetConfigForTest(metricSetName string) (map[string]interface{}, string) { // CheckEventField function checks a given field type and compares it with the expected type for integration tests. func CheckEventField(metricName string, expectedType string, event mb.Event, t *testing.T) { - if ok, err := event.MetricSetFields.HasKey(metricName); ok { - assert.NoError(t, err) - metricValue, err := event.MetricSetFields.GetValue(metricName) - assert.NoError(t, err) - compareType(metricValue, expectedType, t) - } else if ok, err := event.RootFields.HasKey(metricName); ok { - assert.NoError(t, err) - rootValue, err := event.RootFields.GetValue(metricName) - assert.NoError(t, err) - compareType(rootValue, expectedType, t) + ok1, err1 := event.MetricSetFields.HasKey(metricName) + ok2, err2 := event.RootFields.HasKey(metricName) + if ok1 || ok2 { + if ok1 { + assert.NoError(t, err1) + metricValue, err := event.MetricSetFields.GetValue(metricName) + assert.NoError(t, err) + err = compareType(metricValue, expectedType, metricName) + assert.NoError(t, err) + t.Log("Succeed: Field " + metricName + " matches type " + expectedType) + } else if ok2 { + assert.NoError(t, err2) + rootValue, err := event.RootFields.GetValue(metricName) + assert.NoError(t, err) + err = compareType(rootValue, expectedType, metricName) + assert.NoError(t, err) + t.Log("Succeed: Field " + metricName + " matches type " + expectedType) + } + } else { + t.Log("Field " + metricName + " does not exist in metric set fields") } } -func compareType(metricValue interface{}, expectedType string, t *testing.T) { +func compareType(metricValue interface{}, expectedType string, metricName string) (err error) { switch metricValue.(type) { case float64: if expectedType != "float" { - t.Log("Failed: Field is not in type " + expectedType) - t.Fail() + err = errors.New("Failed: Field " + metricName + "is not in type " + expectedType) } case string: if expectedType != "string" { - t.Log("Failed: Field is not in type " + expectedType) - t.Fail() + err = errors.New("Failed: Field " + metricName + "is not in type " + expectedType) } case int64: if expectedType != "int" { - t.Log("Failed: Field is not in type " + expectedType) - t.Fail() + err = errors.New("Failed: Field " + metricName + "is not in type " + expectedType) } } - t.Log("Succeed: Field matches type " + expectedType) + return } diff --git a/x-pack/metricbeat/module/aws/s3_request/_meta/data.json b/x-pack/metricbeat/module/aws/s3_request/_meta/data.json new file mode 100644 index 00000000000..4814b96c7db --- /dev/null +++ b/x-pack/metricbeat/module/aws/s3_request/_meta/data.json @@ -0,0 +1,46 @@ +{ + "@timestamp": "2017-10-12T08:05:34.853Z", + "agent": { + "hostname": "host.example.com", + "name": "host.example.com" + }, + "aws": { + "s3_request": { + "bucket": { + "name": "test-s3-ks" + }, + "downloaded": { + "bytes": 1303 + }, + "errors": { + "4xx": 0, + "5xx": 0 + }, + "latency": { + "first_byte.ms": 544, + "total_request.ms": 545 + }, + "requests": { + "head": 1, + "list": 1, + "total": 2 + }, + "uploaded": {} + } + }, + "cloud": { + "region": "ap-southeast-1" + }, + "event": { + "dataset": "aws.s3_request", + "duration": 115000, + "module": "aws" + }, + "metricset": { + "name": "s3_request" + }, + "service": { + "name": "s3_request", + "type": "s3_request" + } +} \ No newline at end of file diff --git a/x-pack/metricbeat/module/aws/s3_request/_meta/docs.asciidoc b/x-pack/metricbeat/module/aws/s3_request/_meta/docs.asciidoc new file mode 100644 index 00000000000..1c0810be196 --- /dev/null +++ b/x-pack/metricbeat/module/aws/s3_request/_meta/docs.asciidoc @@ -0,0 +1,10 @@ +The s3_request metricset of aws module allows you to monitor your AWS S3 buckets. `s3_request` metricset +fetches Cloudwatch daily storage metrics for each S3 bucket from +https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html[S3 CloudWatch Request Metrics for Buckets]. + + === AWS Permissions +Some specific AWS permissions are required for IAM user to collect AWS s3_request metrics. +---- +ec2:DescribeRegions +cloudwatch:GetMetricData +---- diff --git a/x-pack/metricbeat/module/aws/s3_request/_meta/fields.yml b/x-pack/metricbeat/module/aws/s3_request/_meta/fields.yml new file mode 100644 index 00000000000..a5469353f96 --- /dev/null +++ b/x-pack/metricbeat/module/aws/s3_request/_meta/fields.yml @@ -0,0 +1,74 @@ +- name: s3_request + type: group + description: > + `s3_request` contains request metrics that were scraped from AWS CloudWatch which contains monitoring metrics sent by AWS S3. + release: beta + fields: + - name: bucket.name + type: keyword + description: > + Name of a S3 bucket. + - name: requests.total + type: long + description: > + The total number of HTTP requests made to an Amazon S3 bucket, regardless of type. + - name: requests.get + type: long + description: > + The number of HTTP GET requests made for objects in an Amazon S3 bucket. + - name: requests.put + type: long + description: > + The number of HTTP PUT requests made for objects in an Amazon S3 bucket. + - name: requests.delete + type: long + description: > + The number of HTTP DELETE requests made for objects in an Amazon S3 bucket. + - name: requests.head + type: long + description: > + The number of HTTP HEAD requests made to an Amazon S3 bucket. + - name: requests.post + type: long + description: > + The number of HTTP POST requests made to an Amazon S3 bucket. + - name: requests.select + type: long + description: > + The number of Amazon S3 SELECT Object Content requests made for objects in an Amazon S3 bucket. + - name: requests.select.scanned.bytes + type: scaled_float + description: > + The number of bytes of data scanned with Amazon S3 SELECT Object Content requests in an Amazon S3 bucket. + - name: requests.select.returned.bytes + type: scaled_float + description: > + The number of bytes of data returned with Amazon S3 SELECT Object Content requests in an Amazon S3 bucket. + - name: requests.list + type: long + description: > + The number of HTTP requests that list the contents of a bucket. + - name: downloaded.bytes + type: scaled_float + description: > + The number bytes downloaded for requests made to an Amazon S3 bucket, where the response includes a body. + - name: uploaded.bytes + type: scaled_float + description: > + The number bytes uploaded that contain a request body, made to an Amazon S3 bucket. + - name: errors.4xx + type: long + description: > + The number of HTTP 4xx client error status code requests made to an Amazon S3 bucket with a value of either 0 or 1. + - name: errors.5xx + type: long + description: > + The number of HTTP 5xx server error status code requests made to an Amazon S3 bucket with a value of either 0 or 1. + - name: latency.first_byte.ms + type: long + description: > + The per-request time from the complete request being received by an Amazon S3 bucket to when the response starts to be returned. + - name: latency.total_request.ms + type: long + description: > + The elapsed per-request time from the first byte received to the last byte sent to an Amazon S3 bucket. diff --git a/x-pack/metricbeat/module/aws/s3_request/data.go b/x-pack/metricbeat/module/aws/s3_request/data.go new file mode 100644 index 00000000000..06e6f4cb290 --- /dev/null +++ b/x-pack/metricbeat/module/aws/s3_request/data.go @@ -0,0 +1,41 @@ +// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one +// or more contributor license agreements. Licensed under the Elastic License; +// you may not use this file except in compliance with the Elastic License. + +package s3_request + +import ( + s "github.com/elastic/beats/libbeat/common/schema" + c "github.com/elastic/beats/libbeat/common/schema/mapstrstr" +) + +var ( + schemaMetricSetFields = s.Schema{ + "requests": s.Object{ + "total": c.Int("AllRequests"), + "get": c.Int("GetRequests"), + "put": c.Int("PutRequests"), + "delete": c.Int("DeleteRequests"), + "head": c.Int("HeadRequests"), + "post": c.Int("PostRequests"), + "select": c.Int("SelectRequests"), + "select.scanned.bytes": c.Float("SelectScannedBytes"), + "select.returned.bytes": c.Float("SelectReturnedBytes"), + "list": c.Int("ListRequests"), + }, + "downloaded": s.Object{ + "bytes": c.Float("BytesDownloaded"), + }, + "uploaded": s.Object{ + "bytes": c.Float("BytesUploaded"), + }, + "errors": s.Object{ + "4xx": c.Int("4xxErrors"), + "5xx": c.Int("5xxErrors"), + }, + "latency": s.Object{ + "first_byte.ms": c.Float("FirstByteLatency"), + "total_request.ms": c.Float("TotalRequestLatency"), + }, + } +) diff --git a/x-pack/metricbeat/module/aws/s3_request/s3_request.go b/x-pack/metricbeat/module/aws/s3_request/s3_request.go new file mode 100644 index 00000000000..eb81ba06b34 --- /dev/null +++ b/x-pack/metricbeat/module/aws/s3_request/s3_request.go @@ -0,0 +1,228 @@ +// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one +// or more contributor license agreements. Licensed under the Elastic License; +// you may not use this file except in compliance with the Elastic License. + +package s3_request + +import ( + "fmt" + "strconv" + "strings" + + "github.com/aws/aws-sdk-go-v2/service/cloudwatch" + "github.com/pkg/errors" + + "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/common/cfgwarn" + "github.com/elastic/beats/libbeat/logp" + "github.com/elastic/beats/metricbeat/mb" + "github.com/elastic/beats/x-pack/metricbeat/module/aws" +) + +var metricsetName = "s3_request" + +// init registers the MetricSet with the central registry as soon as the program +// starts. The New function will be called later to instantiate an instance of +// the MetricSet for each host defined in the module's configuration. After the +// MetricSet has been created then Fetch will begin to be called periodically. +func init() { + mb.Registry.MustAddMetricSet(aws.ModuleName, metricsetName, New, + mb.DefaultMetricSet(), + ) +} + +// MetricSet holds any configuration or state information. It must implement +// the mb.MetricSet interface. And this is best achieved by embedding +// mb.BaseMetricSet because it implements all of the required mb.MetricSet +// interface methods except for Fetch. +type MetricSet struct { + *aws.MetricSet + logger *logp.Logger +} + +// New creates a new instance of the MetricSet. New is responsible for unpacking +// any MetricSet specific configuration options if there are any. +func New(base mb.BaseMetricSet) (mb.MetricSet, error) { + cfgwarn.Beta("The aws s3_request metricset is beta.") + s3Logger := logp.NewLogger(aws.ModuleName) + + moduleConfig := aws.Config{} + if err := base.Module().UnpackConfig(&moduleConfig); err != nil { + return nil, err + } + + if moduleConfig.Period == "" { + err := errors.New("period is not set in AWS module config") + s3Logger.Error(err) + } + + metricSet, err := aws.NewMetricSet(base) + if err != nil { + return nil, errors.Wrap(err, "error creating aws metricset") + } + + // Check if period is set to be multiple of 60s + remainder := metricSet.PeriodInSec % 60 + if remainder != 0 { + err := errors.New("period needs to be set to 60s (or a multiple of 60s). " + + "To avoid data missing or extra costs, please make sure period is set correctly " + + "in config.yml") + s3Logger.Info(err) + } + + return &MetricSet{ + MetricSet: metricSet, + logger: s3Logger, + }, nil +} + +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(report mb.ReporterV2) { + namespace := "AWS/S3" + // Get startTime and endTime + startTime, endTime, err := aws.GetStartTimeEndTime(m.DurationString) + if err != nil { + logp.Error(errors.Wrap(err, "Error ParseDuration")) + m.logger.Error(err.Error()) + report.Error(err) + return + } + + // GetMetricData for AWS S3 from Cloudwatch + for _, regionName := range m.MetricSet.RegionsList { + m.MetricSet.AwsConfig.Region = regionName + svcCloudwatch := cloudwatch.New(*m.MetricSet.AwsConfig) + listMetricsOutputs, err := aws.GetListMetricsOutput(namespace, regionName, svcCloudwatch) + if err != nil { + m.logger.Error(err.Error()) + report.Error(err) + continue + } + + if listMetricsOutputs == nil || len(listMetricsOutputs) == 0 { + continue + } + + metricDataQueries := constructMetricQueries(listMetricsOutputs, m.PeriodInSec) + // This happens when S3 cloudwatch request metrics are not enabled. + if len(metricDataQueries) == 0 { + continue + } + // Use metricDataQueries to make GetMetricData API calls + metricDataOutputs, err := aws.GetMetricDataResults(metricDataQueries, svcCloudwatch, startTime, endTime) + if err != nil { + err = errors.Wrap(err, "GetMetricDataResults failed, skipping region "+regionName) + m.logger.Error(err.Error()) + report.Error(err) + continue + } + + // Create Cloudwatch Events for s3_request + bucketNames := getBucketNames(listMetricsOutputs) + for _, bucketName := range bucketNames { + event, err := createS3RequestEvents(metricDataOutputs, regionName, bucketName) + if err != nil { + m.logger.Error(err.Error()) + event.Error = err + report.Event(event) + continue + } + report.Event(event) + } + } +} + +func getBucketNames(listMetricsOutputs []cloudwatch.Metric) (bucketNames []string) { + for _, output := range listMetricsOutputs { + for _, dim := range output.Dimensions { + if *dim.Name == "BucketName" { + if aws.StringInSlice(*dim.Value, bucketNames) { + continue + } + bucketNames = append(bucketNames, *dim.Value) + } + } + } + return +} + +func createMetricDataQuery(metric cloudwatch.Metric, periodInSec int, index int) (metricDataQuery cloudwatch.MetricDataQuery) { + statistic := "Sum" + period := int64(periodInSec) + id := "s3r" + strconv.Itoa(index) + metricDims := metric.Dimensions + bucketName := "" + filterID := "" + for _, dim := range metricDims { + if *dim.Name == "BucketName" { + bucketName = *dim.Value + } else if *dim.Name == "FilterId" { + filterID = *dim.Value + } + } + metricName := *metric.MetricName + label := bucketName + " " + filterID + " " + metricName + metricDataQuery = cloudwatch.MetricDataQuery{ + Id: &id, + MetricStat: &cloudwatch.MetricStat{ + Period: &period, + Stat: &statistic, + Metric: &metric, + }, + Label: &label, + } + return +} + +func constructMetricQueries(listMetricsOutputs []cloudwatch.Metric, periodInSec int) []cloudwatch.MetricDataQuery { + metricDataQueries := []cloudwatch.MetricDataQuery{} + metricDataQueryEmpty := cloudwatch.MetricDataQuery{} + dailyMetricNames := []string{"NumberOfObjects", "BucketSizeBytes"} + for i, listMetric := range listMetricsOutputs { + if aws.StringInSlice(*listMetric.MetricName, dailyMetricNames) { + continue + } + + metricDataQuery := createMetricDataQuery(listMetric, periodInSec, i) + if metricDataQuery == metricDataQueryEmpty { + continue + } + metricDataQueries = append(metricDataQueries, metricDataQuery) + } + return metricDataQueries +} + +// CreateS3Events creates s3_request and s3_daily_storage events from Cloudwatch metric data. +func createS3RequestEvents(outputs []cloudwatch.MetricDataResult, regionName string, bucketName string) (event mb.Event, err error) { + event.Service = metricsetName + event.RootFields = common.MapStr{} + // Cloud fields in ECS + event.RootFields.Put("service.name", metricsetName) + event.RootFields.Put("cloud.region", regionName) + + // AWS s3_request metrics + mapOfMetricSetFieldResults := make(map[string]interface{}) + // Find a timestamp for all metrics in output + if len(outputs) > 0 && len(outputs[0].Timestamps) > 0 { + timestamp := outputs[0].Timestamps[0] + for _, output := range outputs { + labels := strings.Split(*output.Label, " ") + // check timestamp to make sure metrics come from the same timestamp + if len(labels) == 3 && labels[0] == bucketName && len(output.Values) > 0 && output.Timestamps[0] == timestamp { + mapOfMetricSetFieldResults[labels[2]] = fmt.Sprint(output.Values[0]) + } + } + } + + resultMetricSetFields, err := aws.EventMapping(mapOfMetricSetFieldResults, schemaMetricSetFields) + if err != nil { + err = errors.Wrap(err, "Error trying to apply schema schemaMetricSetFields in AWS s3_request metricbeat module.") + return + } + + resultMetricSetFields.Put("bucket.name", bucketName) + event.MetricSetFields = resultMetricSetFields + return +} diff --git a/x-pack/metricbeat/module/aws/s3_request/s3_request_integration_test.go b/x-pack/metricbeat/module/aws/s3_request/s3_request_integration_test.go new file mode 100644 index 00000000000..8a3d369216e --- /dev/null +++ b/x-pack/metricbeat/module/aws/s3_request/s3_request_integration_test.go @@ -0,0 +1,74 @@ +// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one +// or more contributor license agreements. Licensed under the Elastic License; +// you may not use this file except in compliance with the Elastic License. + +// +build integration + +package s3_request + +import ( + "testing" + + "github.com/stretchr/testify/assert" + + mbtest "github.com/elastic/beats/metricbeat/mb/testing" + "github.com/elastic/beats/x-pack/metricbeat/module/aws/mtest" +) + +func TestFetch(t *testing.T) { + config, info := mtest.GetConfigForTest("s3_request", "86400s") + if info != "" { + t.Skip("Skipping TestFetch: " + info) + } + + s3DailyMetricSet := mbtest.NewReportingMetricSetV2(t, config) + events, err := mbtest.ReportingFetchV2(s3DailyMetricSet) + if err != nil { + t.Skip("Skipping TestFetch: failed to make api calls. Please check $AWS_ACCESS_KEY_ID, " + + "$AWS_SECRET_ACCESS_KEY and $AWS_SESSION_TOKEN in config.yml") + } + + assert.Empty(t, err) + if !assert.NotEmpty(t, events) { + t.FailNow() + } + t.Logf("Module: %s Metricset: %s", s3DailyMetricSet.Module().Name(), s3DailyMetricSet.Name()) + + for _, event := range events { + // RootField + mtest.CheckEventField("service.name", "string", event, t) + mtest.CheckEventField("cloud.region", "string", event, t) + + // MetricSetField + mtest.CheckEventField("bucket.name", "string", event, t) + mtest.CheckEventField("requests.total", "int", event, t) + mtest.CheckEventField("requests.get", "int", event, t) + mtest.CheckEventField("requests.put", "int", event, t) + mtest.CheckEventField("requests.delete", "int", event, t) + mtest.CheckEventField("requests.head", "int", event, t) + mtest.CheckEventField("requests.post", "int", event, t) + mtest.CheckEventField("select.requests", "int", event, t) + mtest.CheckEventField("select.scanned.bytes", "float", event, t) + mtest.CheckEventField("select.returned.bytes", "float", event, t) + mtest.CheckEventField("requests.list", "int", event, t) + mtest.CheckEventField("downloaded.bytes", "float", event, t) + mtest.CheckEventField("uploaded.bytes", "float", event, t) + mtest.CheckEventField("errors.4xx", "int", event, t) + mtest.CheckEventField("errors.5xx", "int", event, t) + mtest.CheckEventField("latency.first_byte.ms", "float", event, t) + mtest.CheckEventField("latency.total_request.ms", "float", event, t) + } +} + +func TestData(t *testing.T) { + config, info := mtest.GetConfigForTest("s3_request", "86400s") + if info != "" { + t.Skip("Skipping TestData: " + info) + } + + ec2MetricSet := mbtest.NewReportingMetricSetV2(t, config) + errs := mbtest.WriteEventsReporterV2(ec2MetricSet, t, "/") + if errs != nil { + t.Fatal("write", errs) + } +} diff --git a/x-pack/metricbeat/module/aws/sqs/sqs_integration_test.go b/x-pack/metricbeat/module/aws/sqs/sqs_integration_test.go index 704242f5211..65497b7fc18 100644 --- a/x-pack/metricbeat/module/aws/sqs/sqs_integration_test.go +++ b/x-pack/metricbeat/module/aws/sqs/sqs_integration_test.go @@ -17,7 +17,7 @@ import ( ) func TestFetch(t *testing.T) { - config, info := mtest.GetConfigForTest("sqs") + config, info := mtest.GetConfigForTest("sqs", "300s") if info != "" { t.Skip("Skipping TestFetch: " + info) } @@ -52,7 +52,7 @@ func TestFetch(t *testing.T) { } func TestData(t *testing.T) { - config, info := mtest.GetConfigForTest("sqs") + config, info := mtest.GetConfigForTest("sqs", "300s") if info != "" { t.Skip("Skipping TestData: " + info) } diff --git a/x-pack/metricbeat/modules.d/aws.yml.disabled b/x-pack/metricbeat/modules.d/aws.yml.disabled index d831e5e094d..3561b58b11f 100644 --- a/x-pack/metricbeat/modules.d/aws.yml.disabled +++ b/x-pack/metricbeat/modules.d/aws.yml.disabled @@ -7,3 +7,11 @@ secret_access_key: '${AWS_SECRET_ACCESS_KEY:""}' session_token: '${AWS_SESSION_TOKEN:""}' default_region: '${AWS_REGION:us-west-1}' +- module: aws + period: 86400s + metricsets: + - "s3_request" + access_key_id: '${AWS_ACCESS_KEY_ID:""}' + secret_access_key: '${AWS_SECRET_ACCESS_KEY:""}' + session_token: '${AWS_SESSION_TOKEN:""}' + default_region: '${AWS_REGION:us-west-1}' From fbee6a23303293a4c036b9a9bfc99f9e00bd8345 Mon Sep 17 00:00:00 2001 From: Josh Smith Date: Fri, 1 Mar 2019 00:45:54 +1100 Subject: [PATCH 104/332] Add group_measurements_by_instance_label flag to perfmon configuration (#8688) This flag will send all perfmon measurements with a matching instance label as part of the same event (i.e. all metrics for C:, Processor X, etc.). This addresses some of the issues raised in #6584. In most cases enabling this flag considerably reduces the number of events sent by metricbeat. --- CHANGELOG-developer.asciidoc | 1 + metricbeat/docs/modules/windows.asciidoc | 3 +- metricbeat/metricbeat.reference.yml | 3 +- .../module/windows/_meta/config.reference.yml | 3 +- .../windows/perfmon/_meta/docs.asciidoc | 7 +++ .../perfmon/pdh_integration_windows_test.go | 59 +++++++++++++++++++ .../module/windows/perfmon/pdh_windows.go | 58 ++++++++++++------ metricbeat/module/windows/perfmon/perfmon.go | 5 +- x-pack/metricbeat/metricbeat.reference.yml | 3 +- 9 files changed, 117 insertions(+), 25 deletions(-) diff --git a/CHANGELOG-developer.asciidoc b/CHANGELOG-developer.asciidoc index 9c44401058d..c7ce574cdd3 100644 --- a/CHANGELOG-developer.asciidoc +++ b/CHANGELOG-developer.asciidoc @@ -89,3 +89,4 @@ The list below covers the major changes between 6.3.0 and 7.0.0-alpha2 only. - Update Beats to use go 1.11.2 {pull}8746[8746] - Allow/Merge fields.yml overrides {pull}9188[9188] - Filesets can now define multiple ingest pipelines, with the first one considered as the entry point pipeline. {pull}8914[8914] +- Add `group_measurements_by_instance` option to windows perfmon metricset. {pull}8688[8688] diff --git a/metricbeat/docs/modules/windows.asciidoc b/metricbeat/docs/modules/windows.asciidoc index 337a7469092..48ccccadd37 100644 --- a/metricbeat/docs/modules/windows.asciidoc +++ b/metricbeat/docs/modules/windows.asciidoc @@ -22,7 +22,8 @@ metricbeat.modules: metricsets: ["perfmon"] enabled: true period: 10s - perfmon.ignore_non_existent_counters: true + perfmon.ignore_non_existent_counters: false + perfmon.group_measurements_by_instance: false perfmon.counters: # - instance_label: processor.name # instance_name: total diff --git a/metricbeat/metricbeat.reference.yml b/metricbeat/metricbeat.reference.yml index ed5ae3b61e4..d34a25c95f4 100644 --- a/metricbeat/metricbeat.reference.yml +++ b/metricbeat/metricbeat.reference.yml @@ -697,7 +697,8 @@ metricbeat.modules: metricsets: ["perfmon"] enabled: true period: 10s - perfmon.ignore_non_existent_counters: true + perfmon.ignore_non_existent_counters: false + perfmon.group_measurements_by_instance: false perfmon.counters: # - instance_label: processor.name # instance_name: total diff --git a/metricbeat/module/windows/_meta/config.reference.yml b/metricbeat/module/windows/_meta/config.reference.yml index d891fe62ec5..dc9b27a9c3d 100644 --- a/metricbeat/module/windows/_meta/config.reference.yml +++ b/metricbeat/module/windows/_meta/config.reference.yml @@ -2,7 +2,8 @@ metricsets: ["perfmon"] enabled: true period: 10s - perfmon.ignore_non_existent_counters: true + perfmon.ignore_non_existent_counters: false + perfmon.group_measurements_by_instance: false perfmon.counters: # - instance_label: processor.name # instance_name: total diff --git a/metricbeat/module/windows/perfmon/_meta/docs.asciidoc b/metricbeat/module/windows/perfmon/_meta/docs.asciidoc index 28c05d3709d..61d03b5d569 100644 --- a/metricbeat/module/windows/perfmon/_meta/docs.asciidoc +++ b/metricbeat/module/windows/perfmon/_meta/docs.asciidoc @@ -14,6 +14,7 @@ to collect. The example below collects processor time and disk writes every metricsets: [perfmon] period: 10s perfmon.ignore_non_existent_counters: true + perfmon.group_measurements_by_instance: true perfmon.counters: - instance_label: processor.name instance_name: total @@ -34,6 +35,12 @@ metricset to ignore errors caused by counters that do not exist when set to true. Instead of an error, a message will be logged at the info level stating that the counter does not exist. +*`group_measurements_by_instance`*:: A boolean option that causes metricbeat +to send all measurements with a matching perfmon instance as part of a single +event. In the above example, this will cause the physical_disk.write.per_sec +and physical_disk.write.time.pct measurements to be sent as a single event. +The default behaviour is for all measurements to be sent as separate events. + *`counters`*:: Counters specifies a list of queries to perform. Each individual counter requires three config options - `instance_label`, `measurement_label`, and `query`. diff --git a/metricbeat/module/windows/perfmon/pdh_integration_windows_test.go b/metricbeat/module/windows/perfmon/pdh_integration_windows_test.go index 1babaa0833d..8cfc24000de 100644 --- a/metricbeat/module/windows/perfmon/pdh_integration_windows_test.go +++ b/metricbeat/module/windows/perfmon/pdh_integration_windows_test.go @@ -336,3 +336,62 @@ func TestWildcardQuery(t *testing.T) { t.Log(values) } + +func TestGroupByInstance(t *testing.T) { + config := Config{ + CounterConfig: make([]CounterConfig, 3), + GroupMeasurements: true, + } + config.CounterConfig[0].InstanceLabel = "processor.name" + config.CounterConfig[0].MeasurementLabel = "processor.time.pct" + config.CounterConfig[0].Query = `\Processor Information(_Total)\% Processor Time` + config.CounterConfig[0].Format = "float" + + config.CounterConfig[1].InstanceLabel = "disk.bytes.name" + config.CounterConfig[1].MeasurementLabel = "disk.bytes.read.total" + config.CounterConfig[1].Query = `\FileSystem Disk Activity(_Total)\FileSystem Bytes Read` + config.CounterConfig[1].Format = "float" + + config.CounterConfig[2].InstanceLabel = "processor.name" + config.CounterConfig[2].MeasurementLabel = "processor.time.idle.average.ns" + config.CounterConfig[2].Query = `\Processor Information(_Total)\Average Idle Time` + config.CounterConfig[2].Format = "float" + + handle, err := NewPerfmonReader(config) + if err != nil { + t.Fatal(err) + } + defer handle.query.Close() + + values, _ := handle.Read() + + time.Sleep(time.Millisecond * 1000) + + values, err = handle.Read() + if err != nil { + t.Fatal(err) + } + + assert.EqualValues(t, 1, len(values)) // Assert all metrics have been grouped into a single event + + // Test all keys exist in the event + pctKey, err := values[0].MetricSetFields.HasKey("processor.time.pct") + if err != nil { + t.Fatal(err) + } + assert.True(t, pctKey) + + pctKey, err := values[0].MetricSetFields.HasKey("disk.bytes.read.total") + if err != nil { + t.Fatal(err) + } + assert.True(t, pctKey) + + pctKey, err := values[0].MetricSetFields.HasKey("processor.time.idle.average.ns") + if err != nil { + t.Fatal(err) + } + assert.True(t, pctKey) + + t.Log(values) +} diff --git a/metricbeat/module/windows/perfmon/pdh_windows.go b/metricbeat/module/windows/perfmon/pdh_windows.go index 291e909a5ec..eb755450731 100644 --- a/metricbeat/module/windows/perfmon/pdh_windows.go +++ b/metricbeat/module/windows/perfmon/pdh_windows.go @@ -326,11 +326,12 @@ func (q *Query) Close() error { } type PerfmonReader struct { - query *Query // PDH Query - instanceLabel map[string]string // Mapping of counter path to key used for the label (e.g. processor.name) - measurement map[string]string // Mapping of counter path to key used for the value (e.g. processor.cpu_time). - executed bool // Indicates if the query has been executed. - log *logp.Logger + query *Query // PDH Query + instanceLabel map[string]string // Mapping of counter path to key used for the label (e.g. processor.name) + measurement map[string]string // Mapping of counter path to key used for the value (e.g. processor.cpu_time). + executed bool // Indicates if the query has been executed. + log *logp.Logger // + groupMeasurements bool // Indicates if measurements with the same instance label should be sent in the same event } // NewPerfmonReader creates a new instance of PerfmonReader. @@ -341,10 +342,11 @@ func NewPerfmonReader(config Config) (*PerfmonReader, error) { } r := &PerfmonReader{ - query: query, - instanceLabel: map[string]string{}, - measurement: map[string]string{}, - log: logp.NewLogger("perfmon"), + query: query, + instanceLabel: map[string]string{}, + measurement: map[string]string{}, + log: logp.NewLogger("perfmon"), + groupMeasurements: config.GroupMeasurements, } for _, counter := range config.CounterConfig { @@ -388,36 +390,54 @@ func (r *PerfmonReader) Read() ([]mb.Event, error) { return nil, errors.Wrap(err, "failed formatting counter values") } - // Write the values into the map. - events := make([]mb.Event, 0, len(values)) + eventMap := make(map[string]*mb.Event) for counterPath, values := range values { - for _, val := range values { + for ind, val := range values { if val.Err != nil && !r.executed { r.log.Debugw("Ignoring the first measurement because the data isn't ready", "error", val.Err, logp.Namespace("perfmon"), "query", counterPath) continue } - event := mb.Event{ - MetricSetFields: common.MapStr{}, - Error: errors.Wrapf(val.Err, "failed on query=%v", counterPath), + var eventKey string + if r.groupMeasurements && val.Err == nil { + // Send measurements with the same instance label as part of the same event + eventKey = val.Instance + } else { + // Send every measurement as an individual event + // If a counter contains an error, it will always be sent as an individual event + eventKey = counterPath + strconv.Itoa(ind) } - if val.Instance != "" { - event.MetricSetFields.Put(r.instanceLabel[counterPath], val.Instance) + // Create a new event if the key doesn't exist in the map + if _, ok := eventMap[eventKey]; !ok { + eventMap[eventKey] = &mb.Event{ + MetricSetFields: common.MapStr{}, + Error: errors.Wrapf(val.Err, "failed on query=%v", counterPath), + } + + if val.Instance != "" { + eventMap[eventKey].MetricSetFields.Put(r.instanceLabel[counterPath], val.Instance) + } } + event := eventMap[eventKey] + if val.Measurement != nil { event.MetricSetFields.Put(r.measurement[counterPath], val.Measurement) } else { event.MetricSetFields.Put(r.measurement[counterPath], 0) } - - events = append(events, event) } } + // Write the values into the map. + events := make([]mb.Event, 0, len(eventMap)) + for _, val := range eventMap { + events = append(events, *val) + } + r.executed = true return events, nil } diff --git a/metricbeat/module/windows/perfmon/perfmon.go b/metricbeat/module/windows/perfmon/perfmon.go index 090a3063238..91cbcfcdc52 100644 --- a/metricbeat/module/windows/perfmon/perfmon.go +++ b/metricbeat/module/windows/perfmon/perfmon.go @@ -40,8 +40,9 @@ type CounterConfig struct { // Config for the windows perfmon metricset. type Config struct { - IgnoreNECounters bool `config:"perfmon.ignore_non_existent_counters"` - CounterConfig []CounterConfig `config:"perfmon.counters" validate:"required"` + IgnoreNECounters bool `config:"perfmon.ignore_non_existent_counters"` + GroupMeasurements bool `config:"perfmon.group_measurements_by_instance"` + CounterConfig []CounterConfig `config:"perfmon.counters" validate:"required"` } func init() { diff --git a/x-pack/metricbeat/metricbeat.reference.yml b/x-pack/metricbeat/metricbeat.reference.yml index 0e7bcc0a0cb..828b34b47d9 100644 --- a/x-pack/metricbeat/metricbeat.reference.yml +++ b/x-pack/metricbeat/metricbeat.reference.yml @@ -725,7 +725,8 @@ metricbeat.modules: metricsets: ["perfmon"] enabled: true period: 10s - perfmon.ignore_non_existent_counters: true + perfmon.ignore_non_existent_counters: false + perfmon.group_measurements_by_instance: false perfmon.counters: # - instance_label: processor.name # instance_name: total From f771497864a4206a002cdd495e1af38a3049173b Mon Sep 17 00:00:00 2001 From: Jaime Soriano Pastor Date: Thu, 28 Feb 2019 15:14:47 +0100 Subject: [PATCH 105/332] Add cleanup_timeout option to docker autodiscover (#10905) cleanup_timeout is used in kubernetes autodiscover to wait some time before the configurations associated to stopped containers are removed. Add an equivalent option to docker autodiscover. Fix #10374 --- CHANGELOG.next.asciidoc | 1 + filebeat/tests/system/test_autodiscover.py | 1 + libbeat/autodiscover/providers/docker/config.go | 10 +++++++--- libbeat/autodiscover/providers/docker/docker.go | 5 ++++- .../providers/docker/docker_integration_test.go | 5 +++-- metricbeat/tests/system/test_autodiscover.py | 3 +++ 6 files changed, 19 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index f4871d41df6..5e3a2efd0c8 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -30,6 +30,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - ILM will be available by default if Elasticsearch > 7.0 is used. {pull}10347[10347] - Allow Central Management to send events back to kibana. {issue}9382[9382] - Initialize the Paths before the keystore and save the keystore into `data/{beatname}.keystore`. {pull}10706[10706] +- Add `cleanup_timeout` option to docker autodiscover, to wait some time before removing configurations after a container is stopped. {issue]10374[10374] {pull}10905[10905] *Auditbeat* diff --git a/filebeat/tests/system/test_autodiscover.py b/filebeat/tests/system/test_autodiscover.py index 973577920d3..c25ec908102 100644 --- a/filebeat/tests/system/test_autodiscover.py +++ b/filebeat/tests/system/test_autodiscover.py @@ -23,6 +23,7 @@ def test_docker(self): inputs=False, autodiscover={ 'docker': { + 'cleanup_timeout': '0s', 'templates': ''' - condition: equals.docker.container.image: busybox diff --git a/libbeat/autodiscover/providers/docker/config.go b/libbeat/autodiscover/providers/docker/config.go index bba4f32cdb0..1f3bae7aa5b 100644 --- a/libbeat/autodiscover/providers/docker/config.go +++ b/libbeat/autodiscover/providers/docker/config.go @@ -18,6 +18,8 @@ package docker import ( + "time" + "github.com/elastic/beats/libbeat/autodiscover/template" "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/common/docker" @@ -34,13 +36,15 @@ type Config struct { Appenders []*common.Config `config:"appenders"` Templates template.MapperSettings `config:"templates"` Dedot bool `config:"labels.dedot"` + CleanupTimeout time.Duration `config:"cleanup_timeout"` } func defaultConfig() *Config { return &Config{ - Host: "unix:///var/run/docker.sock", - Prefix: "co.elastic", - Dedot: true, + Host: "unix:///var/run/docker.sock", + Prefix: "co.elastic", + Dedot: true, + CleanupTimeout: 60 * time.Second, } } diff --git a/libbeat/autodiscover/providers/docker/docker.go b/libbeat/autodiscover/providers/docker/docker.go index fb0901e55e5..f0c4d0438fa 100644 --- a/libbeat/autodiscover/providers/docker/docker.go +++ b/libbeat/autodiscover/providers/docker/docker.go @@ -19,6 +19,7 @@ package docker import ( "errors" + "time" "github.com/gofrs/uuid" @@ -115,7 +116,9 @@ func (d *Provider) Start() { d.emitContainer(event, "start") case event := <-d.stopListener.Events(): - d.emitContainer(event, "stop") + time.AfterFunc(d.config.CleanupTimeout, func() { + d.emitContainer(event, "stop") + }) } } }() diff --git a/libbeat/autodiscover/providers/docker/docker_integration_test.go b/libbeat/autodiscover/providers/docker/docker_integration_test.go index d790744aa48..ccba884df9e 100644 --- a/libbeat/autodiscover/providers/docker/docker_integration_test.go +++ b/libbeat/autodiscover/providers/docker/docker_integration_test.go @@ -43,8 +43,9 @@ func TestDockerStart(t *testing.T) { t.Fatal(err) } bus := bus.New("test") - config := common.NewConfig() - provider, err := AutodiscoverBuilder(bus, UUID, config) + config := defaultConfig() + config.CleanupTimeout = 0 + provider, err := AutodiscoverBuilder(bus, UUID, common.MustNewConfigFrom(config)) if err != nil { t.Fatal(err) } diff --git a/metricbeat/tests/system/test_autodiscover.py b/metricbeat/tests/system/test_autodiscover.py index 1b41e80a1df..ae135a8f7fc 100644 --- a/metricbeat/tests/system/test_autodiscover.py +++ b/metricbeat/tests/system/test_autodiscover.py @@ -23,6 +23,7 @@ def test_docker(self): self.render_config_template( autodiscover={ 'docker': { + 'cleanup_timeout': '0s', 'templates': ''' - condition: equals.docker.container.image: memcached:latest @@ -69,6 +70,7 @@ def test_docker_labels(self): self.render_config_template( autodiscover={ 'docker': { + 'cleanup_timeout': '0s', 'hints.enabled': 'true', }, }, @@ -111,6 +113,7 @@ def test_config_appender(self): self.render_config_template( autodiscover={ 'docker': { + 'cleanup_timeout': '0s', 'hints.enabled': 'true', 'appenders': ''' - type: config From 2011b100ee6b5cdf844ddc693e9f3f9608f2fe0a Mon Sep 17 00:00:00 2001 From: Michael Salsone Date: Thu, 28 Feb 2019 08:54:16 -0600 Subject: [PATCH 106/332] Implement basic testing for the kafka output module (#10834) --- CHANGELOG.next.asciidoc | 1 + libbeat/outputs/kafka/client.go | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 5e3a2efd0c8..adbe33d0e6f 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -214,6 +214,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Add `network` condition to processors for matching IP addresses against CIDRs. {pull}10743[10743] - Add if/then/else support to processors. {pull}10744[10744] - Add `community_id` processor for computing network flow hashes. {pull}10745[10745] +- Add output test to kafka output {pull}10834[10834] *Auditbeat* diff --git a/libbeat/outputs/kafka/client.go b/libbeat/outputs/kafka/client.go index a1f1955ff9c..3a1ba6d326b 100644 --- a/libbeat/outputs/kafka/client.go +++ b/libbeat/outputs/kafka/client.go @@ -31,7 +31,9 @@ import ( "github.com/elastic/beats/libbeat/outputs" "github.com/elastic/beats/libbeat/outputs/codec" "github.com/elastic/beats/libbeat/outputs/outil" + "github.com/elastic/beats/libbeat/outputs/transport" "github.com/elastic/beats/libbeat/publisher" + "github.com/elastic/beats/libbeat/testing" ) type client struct { @@ -268,3 +270,18 @@ func (r *msgRef) dec() { stats.Acked(r.total) } } + +func (c *client) Test(d testing.Driver) { + if c.config.Net.TLS.Enable == true { + d.Warn("TLS", "Kafka output doesn't support TLS testing") + } + + for _, host := range c.hosts { + d.Run("Kafka: "+host, func(d testing.Driver) { + netDialer := transport.TestNetDialer(d, c.config.Net.DialTimeout) + _, err := netDialer.Dial("tcp", host) + d.Error("dial up", err) + }) + } + +} From eaf08892f5b8b34d668daf40f6ddfc37be43de29 Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Thu, 28 Feb 2019 12:23:08 -0600 Subject: [PATCH 107/332] [Heartbeat] Fix flaky SSL test with retries. (#10789) Sometimes the httptest package when using fancy TLS options doesn't put the server up as fast as it should (at least that's the theory), and we hit before it's ready, causing a false test failure. This patch makes those tests more resilient. It's possible there's something else at work here, but this bug is only seen on CI, and impossible to repro on my laptop. Fixes https://github.com/elastic/beats/issues/10722 --- heartbeat/monitors/active/http/http_test.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/heartbeat/monitors/active/http/http_test.go b/heartbeat/monitors/active/http/http_test.go index bd5bd1f5dd4..c6ebef484d1 100644 --- a/heartbeat/monitors/active/http/http_test.go +++ b/heartbeat/monitors/active/http/http_test.go @@ -27,7 +27,9 @@ import ( "net/url" "os" "path" + "reflect" "testing" + "time" "github.com/stretchr/testify/require" @@ -279,7 +281,16 @@ func runHTTPSServerCheck( mergedExtraConfig[k] = v } - event := testTLSRequest(t, server.URL, mergedExtraConfig) + // Sometimes the test server can take a while to start. Since we're only using this to test up statuses, + // we give it a few attempts to see if the server can come up before we run the real assertions. + var event *beat.Event + for i := 0; i < 10; i++ { + event = testTLSRequest(t, server.URL, mergedExtraConfig) + if v, err := event.GetValue("monitor.status"); err == nil && reflect.DeepEqual(v, "up") { + break + } + time.Sleep(time.Millisecond * 500) + } mapval.Test( t, From 70fd801ebb6b835f25c7823d3f017d26d4926e37 Mon Sep 17 00:00:00 2001 From: Jaime Soriano Pastor Date: Thu, 28 Feb 2019 22:20:30 +0100 Subject: [PATCH 108/332] Revert "Add group_measurements_by_instance_label flag to perfmon configuration (#8688)" (#11001) This reverts commit fbee6a23303293a4c036b9a9bfc99f9e00bd8345. --- CHANGELOG-developer.asciidoc | 1 - metricbeat/docs/modules/windows.asciidoc | 3 +- metricbeat/metricbeat.reference.yml | 3 +- .../module/windows/_meta/config.reference.yml | 3 +- .../windows/perfmon/_meta/docs.asciidoc | 7 --- .../perfmon/pdh_integration_windows_test.go | 59 ------------------- .../module/windows/perfmon/pdh_windows.go | 58 ++++++------------ metricbeat/module/windows/perfmon/perfmon.go | 5 +- x-pack/metricbeat/metricbeat.reference.yml | 3 +- 9 files changed, 25 insertions(+), 117 deletions(-) diff --git a/CHANGELOG-developer.asciidoc b/CHANGELOG-developer.asciidoc index c7ce574cdd3..9c44401058d 100644 --- a/CHANGELOG-developer.asciidoc +++ b/CHANGELOG-developer.asciidoc @@ -89,4 +89,3 @@ The list below covers the major changes between 6.3.0 and 7.0.0-alpha2 only. - Update Beats to use go 1.11.2 {pull}8746[8746] - Allow/Merge fields.yml overrides {pull}9188[9188] - Filesets can now define multiple ingest pipelines, with the first one considered as the entry point pipeline. {pull}8914[8914] -- Add `group_measurements_by_instance` option to windows perfmon metricset. {pull}8688[8688] diff --git a/metricbeat/docs/modules/windows.asciidoc b/metricbeat/docs/modules/windows.asciidoc index 48ccccadd37..337a7469092 100644 --- a/metricbeat/docs/modules/windows.asciidoc +++ b/metricbeat/docs/modules/windows.asciidoc @@ -22,8 +22,7 @@ metricbeat.modules: metricsets: ["perfmon"] enabled: true period: 10s - perfmon.ignore_non_existent_counters: false - perfmon.group_measurements_by_instance: false + perfmon.ignore_non_existent_counters: true perfmon.counters: # - instance_label: processor.name # instance_name: total diff --git a/metricbeat/metricbeat.reference.yml b/metricbeat/metricbeat.reference.yml index d34a25c95f4..ed5ae3b61e4 100644 --- a/metricbeat/metricbeat.reference.yml +++ b/metricbeat/metricbeat.reference.yml @@ -697,8 +697,7 @@ metricbeat.modules: metricsets: ["perfmon"] enabled: true period: 10s - perfmon.ignore_non_existent_counters: false - perfmon.group_measurements_by_instance: false + perfmon.ignore_non_existent_counters: true perfmon.counters: # - instance_label: processor.name # instance_name: total diff --git a/metricbeat/module/windows/_meta/config.reference.yml b/metricbeat/module/windows/_meta/config.reference.yml index dc9b27a9c3d..d891fe62ec5 100644 --- a/metricbeat/module/windows/_meta/config.reference.yml +++ b/metricbeat/module/windows/_meta/config.reference.yml @@ -2,8 +2,7 @@ metricsets: ["perfmon"] enabled: true period: 10s - perfmon.ignore_non_existent_counters: false - perfmon.group_measurements_by_instance: false + perfmon.ignore_non_existent_counters: true perfmon.counters: # - instance_label: processor.name # instance_name: total diff --git a/metricbeat/module/windows/perfmon/_meta/docs.asciidoc b/metricbeat/module/windows/perfmon/_meta/docs.asciidoc index 61d03b5d569..28c05d3709d 100644 --- a/metricbeat/module/windows/perfmon/_meta/docs.asciidoc +++ b/metricbeat/module/windows/perfmon/_meta/docs.asciidoc @@ -14,7 +14,6 @@ to collect. The example below collects processor time and disk writes every metricsets: [perfmon] period: 10s perfmon.ignore_non_existent_counters: true - perfmon.group_measurements_by_instance: true perfmon.counters: - instance_label: processor.name instance_name: total @@ -35,12 +34,6 @@ metricset to ignore errors caused by counters that do not exist when set to true. Instead of an error, a message will be logged at the info level stating that the counter does not exist. -*`group_measurements_by_instance`*:: A boolean option that causes metricbeat -to send all measurements with a matching perfmon instance as part of a single -event. In the above example, this will cause the physical_disk.write.per_sec -and physical_disk.write.time.pct measurements to be sent as a single event. -The default behaviour is for all measurements to be sent as separate events. - *`counters`*:: Counters specifies a list of queries to perform. Each individual counter requires three config options - `instance_label`, `measurement_label`, and `query`. diff --git a/metricbeat/module/windows/perfmon/pdh_integration_windows_test.go b/metricbeat/module/windows/perfmon/pdh_integration_windows_test.go index 8cfc24000de..1babaa0833d 100644 --- a/metricbeat/module/windows/perfmon/pdh_integration_windows_test.go +++ b/metricbeat/module/windows/perfmon/pdh_integration_windows_test.go @@ -336,62 +336,3 @@ func TestWildcardQuery(t *testing.T) { t.Log(values) } - -func TestGroupByInstance(t *testing.T) { - config := Config{ - CounterConfig: make([]CounterConfig, 3), - GroupMeasurements: true, - } - config.CounterConfig[0].InstanceLabel = "processor.name" - config.CounterConfig[0].MeasurementLabel = "processor.time.pct" - config.CounterConfig[0].Query = `\Processor Information(_Total)\% Processor Time` - config.CounterConfig[0].Format = "float" - - config.CounterConfig[1].InstanceLabel = "disk.bytes.name" - config.CounterConfig[1].MeasurementLabel = "disk.bytes.read.total" - config.CounterConfig[1].Query = `\FileSystem Disk Activity(_Total)\FileSystem Bytes Read` - config.CounterConfig[1].Format = "float" - - config.CounterConfig[2].InstanceLabel = "processor.name" - config.CounterConfig[2].MeasurementLabel = "processor.time.idle.average.ns" - config.CounterConfig[2].Query = `\Processor Information(_Total)\Average Idle Time` - config.CounterConfig[2].Format = "float" - - handle, err := NewPerfmonReader(config) - if err != nil { - t.Fatal(err) - } - defer handle.query.Close() - - values, _ := handle.Read() - - time.Sleep(time.Millisecond * 1000) - - values, err = handle.Read() - if err != nil { - t.Fatal(err) - } - - assert.EqualValues(t, 1, len(values)) // Assert all metrics have been grouped into a single event - - // Test all keys exist in the event - pctKey, err := values[0].MetricSetFields.HasKey("processor.time.pct") - if err != nil { - t.Fatal(err) - } - assert.True(t, pctKey) - - pctKey, err := values[0].MetricSetFields.HasKey("disk.bytes.read.total") - if err != nil { - t.Fatal(err) - } - assert.True(t, pctKey) - - pctKey, err := values[0].MetricSetFields.HasKey("processor.time.idle.average.ns") - if err != nil { - t.Fatal(err) - } - assert.True(t, pctKey) - - t.Log(values) -} diff --git a/metricbeat/module/windows/perfmon/pdh_windows.go b/metricbeat/module/windows/perfmon/pdh_windows.go index eb755450731..291e909a5ec 100644 --- a/metricbeat/module/windows/perfmon/pdh_windows.go +++ b/metricbeat/module/windows/perfmon/pdh_windows.go @@ -326,12 +326,11 @@ func (q *Query) Close() error { } type PerfmonReader struct { - query *Query // PDH Query - instanceLabel map[string]string // Mapping of counter path to key used for the label (e.g. processor.name) - measurement map[string]string // Mapping of counter path to key used for the value (e.g. processor.cpu_time). - executed bool // Indicates if the query has been executed. - log *logp.Logger // - groupMeasurements bool // Indicates if measurements with the same instance label should be sent in the same event + query *Query // PDH Query + instanceLabel map[string]string // Mapping of counter path to key used for the label (e.g. processor.name) + measurement map[string]string // Mapping of counter path to key used for the value (e.g. processor.cpu_time). + executed bool // Indicates if the query has been executed. + log *logp.Logger } // NewPerfmonReader creates a new instance of PerfmonReader. @@ -342,11 +341,10 @@ func NewPerfmonReader(config Config) (*PerfmonReader, error) { } r := &PerfmonReader{ - query: query, - instanceLabel: map[string]string{}, - measurement: map[string]string{}, - log: logp.NewLogger("perfmon"), - groupMeasurements: config.GroupMeasurements, + query: query, + instanceLabel: map[string]string{}, + measurement: map[string]string{}, + log: logp.NewLogger("perfmon"), } for _, counter := range config.CounterConfig { @@ -390,52 +388,34 @@ func (r *PerfmonReader) Read() ([]mb.Event, error) { return nil, errors.Wrap(err, "failed formatting counter values") } - eventMap := make(map[string]*mb.Event) + // Write the values into the map. + events := make([]mb.Event, 0, len(values)) for counterPath, values := range values { - for ind, val := range values { + for _, val := range values { if val.Err != nil && !r.executed { r.log.Debugw("Ignoring the first measurement because the data isn't ready", "error", val.Err, logp.Namespace("perfmon"), "query", counterPath) continue } - var eventKey string - if r.groupMeasurements && val.Err == nil { - // Send measurements with the same instance label as part of the same event - eventKey = val.Instance - } else { - // Send every measurement as an individual event - // If a counter contains an error, it will always be sent as an individual event - eventKey = counterPath + strconv.Itoa(ind) + event := mb.Event{ + MetricSetFields: common.MapStr{}, + Error: errors.Wrapf(val.Err, "failed on query=%v", counterPath), } - // Create a new event if the key doesn't exist in the map - if _, ok := eventMap[eventKey]; !ok { - eventMap[eventKey] = &mb.Event{ - MetricSetFields: common.MapStr{}, - Error: errors.Wrapf(val.Err, "failed on query=%v", counterPath), - } - - if val.Instance != "" { - eventMap[eventKey].MetricSetFields.Put(r.instanceLabel[counterPath], val.Instance) - } + if val.Instance != "" { + event.MetricSetFields.Put(r.instanceLabel[counterPath], val.Instance) } - event := eventMap[eventKey] - if val.Measurement != nil { event.MetricSetFields.Put(r.measurement[counterPath], val.Measurement) } else { event.MetricSetFields.Put(r.measurement[counterPath], 0) } - } - } - // Write the values into the map. - events := make([]mb.Event, 0, len(eventMap)) - for _, val := range eventMap { - events = append(events, *val) + events = append(events, event) + } } r.executed = true diff --git a/metricbeat/module/windows/perfmon/perfmon.go b/metricbeat/module/windows/perfmon/perfmon.go index 91cbcfcdc52..090a3063238 100644 --- a/metricbeat/module/windows/perfmon/perfmon.go +++ b/metricbeat/module/windows/perfmon/perfmon.go @@ -40,9 +40,8 @@ type CounterConfig struct { // Config for the windows perfmon metricset. type Config struct { - IgnoreNECounters bool `config:"perfmon.ignore_non_existent_counters"` - GroupMeasurements bool `config:"perfmon.group_measurements_by_instance"` - CounterConfig []CounterConfig `config:"perfmon.counters" validate:"required"` + IgnoreNECounters bool `config:"perfmon.ignore_non_existent_counters"` + CounterConfig []CounterConfig `config:"perfmon.counters" validate:"required"` } func init() { diff --git a/x-pack/metricbeat/metricbeat.reference.yml b/x-pack/metricbeat/metricbeat.reference.yml index 828b34b47d9..0e7bcc0a0cb 100644 --- a/x-pack/metricbeat/metricbeat.reference.yml +++ b/x-pack/metricbeat/metricbeat.reference.yml @@ -725,8 +725,7 @@ metricbeat.modules: metricsets: ["perfmon"] enabled: true period: 10s - perfmon.ignore_non_existent_counters: false - perfmon.group_measurements_by_instance: false + perfmon.ignore_non_existent_counters: true perfmon.counters: # - instance_label: processor.name # instance_name: total From 76a23773011671cefc0e3f1c5abaebf7033e1915 Mon Sep 17 00:00:00 2001 From: alakahakai Date: Thu, 28 Feb 2019 15:18:36 -0800 Subject: [PATCH 109/332] Update master snapshot version to 8.0.0 (#10966) --- testing/environments/snapshot-oss.yml | 6 +++--- testing/environments/snapshot.yml | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/testing/environments/snapshot-oss.yml b/testing/environments/snapshot-oss.yml index 0720aec42c2..59cce600a50 100644 --- a/testing/environments/snapshot-oss.yml +++ b/testing/environments/snapshot-oss.yml @@ -3,7 +3,7 @@ version: '2.3' services: elasticsearch: - image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.0.0-alpha1-SNAPSHOT + image: docker.elastic.co/elasticsearch/elasticsearch-oss:8.0.0-SNAPSHOT healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9200"] retries: 300 @@ -15,7 +15,7 @@ services: - "http.host=0.0.0.0" logstash: - image: docker.elastic.co/logstash/logstash-oss:7.0.0-alpha1-SNAPSHOT + image: docker.elastic.co/logstash/logstash-oss:8.0.0-SNAPSHOT healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9600/_node/stats"] retries: 600 @@ -25,7 +25,7 @@ services: - ./docker/logstash/pki:/etc/pki:ro kibana: - image: docker.elastic.co/kibana/kibana-oss:7.0.0-alpha1-SNAPSHOT + image: docker.elastic.co/kibana/kibana-oss:8.0.0-SNAPSHOT healthcheck: test: ["CMD-SHELL", 'python -c ''import urllib, json; response = urllib.urlopen("http://localhost:5601/api/status"); data = json.loads(response.read()); exit(1) if data["status"]["overall"]["state"] != "green" else exit(0);'''] retries: 600 diff --git a/testing/environments/snapshot.yml b/testing/environments/snapshot.yml index a119227ca51..ff1d550c3fa 100644 --- a/testing/environments/snapshot.yml +++ b/testing/environments/snapshot.yml @@ -3,7 +3,7 @@ version: '2.3' services: elasticsearch: - image: docker.elastic.co/elasticsearch/elasticsearch:7.1.0-SNAPSHOT + image: docker.elastic.co/elasticsearch/elasticsearch:8.0.0-SNAPSHOT healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9200"] retries: 300 @@ -16,7 +16,7 @@ services: - "xpack.security.enabled=false" logstash: - image: docker.elastic.co/logstash/logstash:7.1.0-SNAPSHOT + image: docker.elastic.co/logstash/logstash:8.0.0-SNAPSHOT healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9600/_node/stats"] retries: 600 @@ -26,7 +26,7 @@ services: - ./docker/logstash/pki:/etc/pki:ro kibana: - image: docker.elastic.co/kibana/kibana:7.1.0-SNAPSHOT + image: docker.elastic.co/kibana/kibana:8.0.0-SNAPSHOT healthcheck: test: ["CMD-SHELL", 'python -c ''import urllib, json; response = urllib.urlopen("http://localhost:5601/api/status"); data = json.loads(response.read()); exit(1) if data["status"]["overall"]["state"] != "green" else exit(0);'''] retries: 600 From f527cd53ef8d1fb92cf30814aeed94a15a9dd5ff Mon Sep 17 00:00:00 2001 From: Andrew Kroh Date: Thu, 28 Feb 2019 20:22:34 -0500 Subject: [PATCH 110/332] Trim project from GCE cloud metadata (#10987) This removes the project info from the cloud.machine.type and cloud.availability_zone fields that are added to the add_cloud_metadata processor for Google Compute Engine (GCE). Fixes #10968, #10775 (docs) --- CHANGELOG.next.asciidoc | 2 + libbeat/docs/processors-using.asciidoc | 90 ++++++++----------- .../add_cloud_metadata/provider_google_gce.go | 16 ++++ .../provider_google_gce_test.go | 4 +- 4 files changed, 58 insertions(+), 54 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index adbe33d0e6f..500d7c8c54d 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -31,6 +31,8 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Allow Central Management to send events back to kibana. {issue}9382[9382] - Initialize the Paths before the keystore and save the keystore into `data/{beatname}.keystore`. {pull}10706[10706] - Add `cleanup_timeout` option to docker autodiscover, to wait some time before removing configurations after a container is stopped. {issue]10374[10374] {pull}10905[10905] +- On Google Cloud Engine (GCE) the add_cloud_metadata will now trim the project + info from the cloud.machine.type and cloud.availability_zone. {issue}10968[10968] *Auditbeat* diff --git a/libbeat/docs/processors-using.asciidoc b/libbeat/docs/processors-using.asciidoc index e0a7e509924..9e1103541f9 100644 --- a/libbeat/docs/processors-using.asciidoc +++ b/libbeat/docs/processors-using.asciidoc @@ -522,14 +522,12 @@ _EC2_ [source,json] ------------------------------------------------------------------------------- { - "meta": { - "cloud": { - "availability_zone": "us-east-1c", - "instance_id": "i-4e123456", - "machine_type": "t2.medium", - "provider": "ec2", - "region": "us-east-1" - } + "cloud": { + "availability_zone": "us-east-1c", + "instance_id": "i-4e123456", + "machine_type": "t2.medium", + "provider": "ec2", + "region": "us-east-1" } } ------------------------------------------------------------------------------- @@ -539,12 +537,10 @@ _Digital Ocean_ [source,json] ------------------------------------------------------------------------------- { - "meta": { - "cloud": { - "instance_id": "1234567", - "provider": "digitalocean", - "region": "nyc2" - } + "cloud": { + "instance_id": "1234567", + "provider": "digitalocean", + "region": "nyc2" } } ------------------------------------------------------------------------------- @@ -554,14 +550,12 @@ _GCE_ [source,json] ------------------------------------------------------------------------------- { - "meta": { - "cloud": { - "availability_zone": "projects/1234567890/zones/us-east1-b", - "instance_id": "1234556778987654321", - "machine_type": "projects/1234567890/machineTypes/f1-micro", - "project_id": "my-dev", - "provider": "gce" - } + "cloud": { + "availability_zone": "us-east1-b", + "instance_id": "1234556778987654321", + "machine_type": "f1-micro", + "project_id": "my-dev", + "provider": "gce" } } ------------------------------------------------------------------------------- @@ -571,13 +565,11 @@ _Tencent Cloud_ [source,json] ------------------------------------------------------------------------------- { - "meta": { - "cloud": { - "availability_zone": "gz-azone2", - "instance_id": "ins-qcloudv5", - "provider": "qcloud", - "region": "china-south-gz" - } + "cloud": { + "availability_zone": "gz-azone2", + "instance_id": "ins-qcloudv5", + "provider": "qcloud", + "region": "china-south-gz" } } ------------------------------------------------------------------------------- @@ -590,13 +582,11 @@ ECS instance. [source,json] ------------------------------------------------------------------------------- { - "meta": { - "cloud": { - "availability_zone": "cn-shenzhen", - "instance_id": "i-wz9g2hqiikg0aliyun2b", - "provider": "ecs", - "region": "cn-shenzhen-a" - } + "cloud": { + "availability_zone": "cn-shenzhen", + "instance_id": "i-wz9g2hqiikg0aliyun2b", + "provider": "ecs", + "region": "cn-shenzhen-a" } } ------------------------------------------------------------------------------- @@ -606,14 +596,12 @@ _Azure Virtual Machine_ [source,json] ------------------------------------------------------------------------------- { - "meta": { - "cloud": { - "provider": "az", - "instance_id": "04ab04c3-63de-4709-a9f9-9ab8c0411d5e", - "instance_name": "test-az-vm", - "machine_type": "Standard_D3_v2", - "region": "eastus2" - } + "cloud": { + "provider": "az", + "instance_id": "04ab04c3-63de-4709-a9f9-9ab8c0411d5e", + "instance_name": "test-az-vm", + "machine_type": "Standard_D3_v2", + "region": "eastus2" } } ------------------------------------------------------------------------------- @@ -623,14 +611,12 @@ _Openstack Nova_ [source,json] ------------------------------------------------------------------------------- { - "meta": { - "cloud": { - "provider": "openstack", - "instance_name": "test-998d932195.mycloud.tld", - "availability_zone": "xxxx-az-c", - "instance_id": "i-00011a84", - "machine_type": "m2.large" - } + "cloud": { + "provider": "openstack", + "instance_name": "test-998d932195.mycloud.tld", + "availability_zone": "xxxx-az-c", + "instance_id": "i-00011a84", + "machine_type": "m2.large" } } ------------------------------------------------------------------------------- diff --git a/libbeat/processors/add_cloud_metadata/provider_google_gce.go b/libbeat/processors/add_cloud_metadata/provider_google_gce.go index 5eeefff901e..d1f3bec2da9 100644 --- a/libbeat/processors/add_cloud_metadata/provider_google_gce.go +++ b/libbeat/processors/add_cloud_metadata/provider_google_gce.go @@ -18,6 +18,8 @@ package add_cloud_metadata import ( + "path" + "github.com/elastic/beats/libbeat/common" s "github.com/elastic/beats/libbeat/common/schema" c "github.com/elastic/beats/libbeat/common/schema/mapstriface" @@ -30,6 +32,18 @@ func newGceMetadataFetcher(config *common.Config) (*metadataFetcher, error) { gceSchema := func(m map[string]interface{}) common.MapStr { out := common.MapStr{} + trimLeadingPath := func(key string) { + v, err := out.GetValue(key) + if err != nil { + return + } + p, ok := v.(string) + if !ok { + return + } + out.Put(key, path.Base(p)) + } + if instance, ok := m["instance"].(map[string]interface{}); ok { s.Schema{ "instance": s.Object{ @@ -41,6 +55,8 @@ func newGceMetadataFetcher(config *common.Config) (*metadataFetcher, error) { }, "availability_zone": c.Str("zone"), }.ApplyTo(out, instance) + trimLeadingPath("machine.type") + trimLeadingPath("availability_zone") } if project, ok := m["project"].(map[string]interface{}); ok { diff --git a/libbeat/processors/add_cloud_metadata/provider_google_gce_test.go b/libbeat/processors/add_cloud_metadata/provider_google_gce_test.go index d5f9bc8d6a4..b76dbc9d4c6 100644 --- a/libbeat/processors/add_cloud_metadata/provider_google_gce_test.go +++ b/libbeat/processors/add_cloud_metadata/provider_google_gce_test.go @@ -158,9 +158,9 @@ func TestRetrieveGCEMetadata(t *testing.T) { "name": "test-gce-dev", }, "machine": common.MapStr{ - "type": "projects/111111111111/machineTypes/f1-micro", + "type": "f1-micro", }, - "availability_zone": "projects/111111111111/zones/us-east1-b", + "availability_zone": "us-east1-b", "project": common.MapStr{ "id": "test-dev", }, From 81f00f7c86961ed63bfc21190028d5d96973e5df Mon Sep 17 00:00:00 2001 From: Jaime Soriano Pastor Date: Fri, 1 Mar 2019 11:17:32 +0100 Subject: [PATCH 111/332] Add group_measurements_by_instance_label flag to perfmon configuration (#11002) This flag will send all perfmon measurements with a matching instance label as part of the same event (i.e. all metrics for C:, Processor X, etc.). This addresses some of the issues raised in #6584. In most cases enabling this flag considerably reduces the number of events sent by metricbeat. Co-Authored-By: Josh Smith --- CHANGELOG-developer.asciidoc | 1 + metricbeat/docs/modules/windows.asciidoc | 3 +- metricbeat/metricbeat.reference.yml | 3 +- .../module/windows/_meta/config.reference.yml | 3 +- .../windows/perfmon/_meta/docs.asciidoc | 7 +++ .../perfmon/pdh_integration_windows_test.go | 59 +++++++++++++++++++ .../module/windows/perfmon/pdh_windows.go | 58 ++++++++++++------ metricbeat/module/windows/perfmon/perfmon.go | 5 +- x-pack/metricbeat/metricbeat.reference.yml | 3 +- 9 files changed, 117 insertions(+), 25 deletions(-) diff --git a/CHANGELOG-developer.asciidoc b/CHANGELOG-developer.asciidoc index 9c44401058d..c7ce574cdd3 100644 --- a/CHANGELOG-developer.asciidoc +++ b/CHANGELOG-developer.asciidoc @@ -89,3 +89,4 @@ The list below covers the major changes between 6.3.0 and 7.0.0-alpha2 only. - Update Beats to use go 1.11.2 {pull}8746[8746] - Allow/Merge fields.yml overrides {pull}9188[9188] - Filesets can now define multiple ingest pipelines, with the first one considered as the entry point pipeline. {pull}8914[8914] +- Add `group_measurements_by_instance` option to windows perfmon metricset. {pull}8688[8688] diff --git a/metricbeat/docs/modules/windows.asciidoc b/metricbeat/docs/modules/windows.asciidoc index 337a7469092..48ccccadd37 100644 --- a/metricbeat/docs/modules/windows.asciidoc +++ b/metricbeat/docs/modules/windows.asciidoc @@ -22,7 +22,8 @@ metricbeat.modules: metricsets: ["perfmon"] enabled: true period: 10s - perfmon.ignore_non_existent_counters: true + perfmon.ignore_non_existent_counters: false + perfmon.group_measurements_by_instance: false perfmon.counters: # - instance_label: processor.name # instance_name: total diff --git a/metricbeat/metricbeat.reference.yml b/metricbeat/metricbeat.reference.yml index ed5ae3b61e4..d34a25c95f4 100644 --- a/metricbeat/metricbeat.reference.yml +++ b/metricbeat/metricbeat.reference.yml @@ -697,7 +697,8 @@ metricbeat.modules: metricsets: ["perfmon"] enabled: true period: 10s - perfmon.ignore_non_existent_counters: true + perfmon.ignore_non_existent_counters: false + perfmon.group_measurements_by_instance: false perfmon.counters: # - instance_label: processor.name # instance_name: total diff --git a/metricbeat/module/windows/_meta/config.reference.yml b/metricbeat/module/windows/_meta/config.reference.yml index d891fe62ec5..dc9b27a9c3d 100644 --- a/metricbeat/module/windows/_meta/config.reference.yml +++ b/metricbeat/module/windows/_meta/config.reference.yml @@ -2,7 +2,8 @@ metricsets: ["perfmon"] enabled: true period: 10s - perfmon.ignore_non_existent_counters: true + perfmon.ignore_non_existent_counters: false + perfmon.group_measurements_by_instance: false perfmon.counters: # - instance_label: processor.name # instance_name: total diff --git a/metricbeat/module/windows/perfmon/_meta/docs.asciidoc b/metricbeat/module/windows/perfmon/_meta/docs.asciidoc index 28c05d3709d..61d03b5d569 100644 --- a/metricbeat/module/windows/perfmon/_meta/docs.asciidoc +++ b/metricbeat/module/windows/perfmon/_meta/docs.asciidoc @@ -14,6 +14,7 @@ to collect. The example below collects processor time and disk writes every metricsets: [perfmon] period: 10s perfmon.ignore_non_existent_counters: true + perfmon.group_measurements_by_instance: true perfmon.counters: - instance_label: processor.name instance_name: total @@ -34,6 +35,12 @@ metricset to ignore errors caused by counters that do not exist when set to true. Instead of an error, a message will be logged at the info level stating that the counter does not exist. +*`group_measurements_by_instance`*:: A boolean option that causes metricbeat +to send all measurements with a matching perfmon instance as part of a single +event. In the above example, this will cause the physical_disk.write.per_sec +and physical_disk.write.time.pct measurements to be sent as a single event. +The default behaviour is for all measurements to be sent as separate events. + *`counters`*:: Counters specifies a list of queries to perform. Each individual counter requires three config options - `instance_label`, `measurement_label`, and `query`. diff --git a/metricbeat/module/windows/perfmon/pdh_integration_windows_test.go b/metricbeat/module/windows/perfmon/pdh_integration_windows_test.go index 1babaa0833d..2656c579b2e 100644 --- a/metricbeat/module/windows/perfmon/pdh_integration_windows_test.go +++ b/metricbeat/module/windows/perfmon/pdh_integration_windows_test.go @@ -336,3 +336,62 @@ func TestWildcardQuery(t *testing.T) { t.Log(values) } + +func TestGroupByInstance(t *testing.T) { + config := Config{ + CounterConfig: make([]CounterConfig, 3), + GroupMeasurements: true, + } + config.CounterConfig[0].InstanceLabel = "processor.name" + config.CounterConfig[0].MeasurementLabel = "processor.time.pct" + config.CounterConfig[0].Query = `\Processor Information(_Total)\% Processor Time` + config.CounterConfig[0].Format = "float" + + config.CounterConfig[1].InstanceLabel = "processor.name" + config.CounterConfig[1].MeasurementLabel = "processor.time.user.pct" + config.CounterConfig[1].Query = `\Processor Information(_Total)\% User Time` + config.CounterConfig[1].Format = "float" + + config.CounterConfig[2].InstanceLabel = "processor.name" + config.CounterConfig[2].MeasurementLabel = "processor.time.idle.average.ns" + config.CounterConfig[2].Query = `\Processor Information(_Total)\Average Idle Time` + config.CounterConfig[2].Format = "float" + + handle, err := NewPerfmonReader(config) + if err != nil { + t.Fatal(err) + } + defer handle.query.Close() + + values, _ := handle.Read() + + time.Sleep(time.Millisecond * 1000) + + values, err = handle.Read() + if err != nil { + t.Fatal(err) + } + + assert.EqualValues(t, 1, len(values)) // Assert all metrics have been grouped into a single event + + // Test all keys exist in the event + pctKey, err := values[0].MetricSetFields.HasKey("processor.time.pct") + if err != nil { + t.Fatal(err) + } + assert.True(t, pctKey) + + pctKey, err = values[0].MetricSetFields.HasKey("processor.time.user.pct") + if err != nil { + t.Fatal(err) + } + assert.True(t, pctKey) + + pctKey, err = values[0].MetricSetFields.HasKey("processor.time.idle.average.ns") + if err != nil { + t.Fatal(err) + } + assert.True(t, pctKey) + + t.Log(values) +} diff --git a/metricbeat/module/windows/perfmon/pdh_windows.go b/metricbeat/module/windows/perfmon/pdh_windows.go index 291e909a5ec..eb755450731 100644 --- a/metricbeat/module/windows/perfmon/pdh_windows.go +++ b/metricbeat/module/windows/perfmon/pdh_windows.go @@ -326,11 +326,12 @@ func (q *Query) Close() error { } type PerfmonReader struct { - query *Query // PDH Query - instanceLabel map[string]string // Mapping of counter path to key used for the label (e.g. processor.name) - measurement map[string]string // Mapping of counter path to key used for the value (e.g. processor.cpu_time). - executed bool // Indicates if the query has been executed. - log *logp.Logger + query *Query // PDH Query + instanceLabel map[string]string // Mapping of counter path to key used for the label (e.g. processor.name) + measurement map[string]string // Mapping of counter path to key used for the value (e.g. processor.cpu_time). + executed bool // Indicates if the query has been executed. + log *logp.Logger // + groupMeasurements bool // Indicates if measurements with the same instance label should be sent in the same event } // NewPerfmonReader creates a new instance of PerfmonReader. @@ -341,10 +342,11 @@ func NewPerfmonReader(config Config) (*PerfmonReader, error) { } r := &PerfmonReader{ - query: query, - instanceLabel: map[string]string{}, - measurement: map[string]string{}, - log: logp.NewLogger("perfmon"), + query: query, + instanceLabel: map[string]string{}, + measurement: map[string]string{}, + log: logp.NewLogger("perfmon"), + groupMeasurements: config.GroupMeasurements, } for _, counter := range config.CounterConfig { @@ -388,36 +390,54 @@ func (r *PerfmonReader) Read() ([]mb.Event, error) { return nil, errors.Wrap(err, "failed formatting counter values") } - // Write the values into the map. - events := make([]mb.Event, 0, len(values)) + eventMap := make(map[string]*mb.Event) for counterPath, values := range values { - for _, val := range values { + for ind, val := range values { if val.Err != nil && !r.executed { r.log.Debugw("Ignoring the first measurement because the data isn't ready", "error", val.Err, logp.Namespace("perfmon"), "query", counterPath) continue } - event := mb.Event{ - MetricSetFields: common.MapStr{}, - Error: errors.Wrapf(val.Err, "failed on query=%v", counterPath), + var eventKey string + if r.groupMeasurements && val.Err == nil { + // Send measurements with the same instance label as part of the same event + eventKey = val.Instance + } else { + // Send every measurement as an individual event + // If a counter contains an error, it will always be sent as an individual event + eventKey = counterPath + strconv.Itoa(ind) } - if val.Instance != "" { - event.MetricSetFields.Put(r.instanceLabel[counterPath], val.Instance) + // Create a new event if the key doesn't exist in the map + if _, ok := eventMap[eventKey]; !ok { + eventMap[eventKey] = &mb.Event{ + MetricSetFields: common.MapStr{}, + Error: errors.Wrapf(val.Err, "failed on query=%v", counterPath), + } + + if val.Instance != "" { + eventMap[eventKey].MetricSetFields.Put(r.instanceLabel[counterPath], val.Instance) + } } + event := eventMap[eventKey] + if val.Measurement != nil { event.MetricSetFields.Put(r.measurement[counterPath], val.Measurement) } else { event.MetricSetFields.Put(r.measurement[counterPath], 0) } - - events = append(events, event) } } + // Write the values into the map. + events := make([]mb.Event, 0, len(eventMap)) + for _, val := range eventMap { + events = append(events, *val) + } + r.executed = true return events, nil } diff --git a/metricbeat/module/windows/perfmon/perfmon.go b/metricbeat/module/windows/perfmon/perfmon.go index 090a3063238..91cbcfcdc52 100644 --- a/metricbeat/module/windows/perfmon/perfmon.go +++ b/metricbeat/module/windows/perfmon/perfmon.go @@ -40,8 +40,9 @@ type CounterConfig struct { // Config for the windows perfmon metricset. type Config struct { - IgnoreNECounters bool `config:"perfmon.ignore_non_existent_counters"` - CounterConfig []CounterConfig `config:"perfmon.counters" validate:"required"` + IgnoreNECounters bool `config:"perfmon.ignore_non_existent_counters"` + GroupMeasurements bool `config:"perfmon.group_measurements_by_instance"` + CounterConfig []CounterConfig `config:"perfmon.counters" validate:"required"` } func init() { diff --git a/x-pack/metricbeat/metricbeat.reference.yml b/x-pack/metricbeat/metricbeat.reference.yml index 0e7bcc0a0cb..828b34b47d9 100644 --- a/x-pack/metricbeat/metricbeat.reference.yml +++ b/x-pack/metricbeat/metricbeat.reference.yml @@ -725,7 +725,8 @@ metricbeat.modules: metricsets: ["perfmon"] enabled: true period: 10s - perfmon.ignore_non_existent_counters: true + perfmon.ignore_non_existent_counters: false + perfmon.group_measurements_by_instance: false perfmon.counters: # - instance_label: processor.name # instance_name: total From 85e470e8796f0f4b5798cc1f781af4f84f1c78b5 Mon Sep 17 00:00:00 2001 From: Adrian Serrano Date: Fri, 1 Mar 2019 12:12:27 +0100 Subject: [PATCH 112/332] [Filebeat] [Netflow] fix field name conversion to snake case (#10950) Original field name conversion was buggy. --- x-pack/filebeat/input/netflow/case.go | 24 +-- x-pack/filebeat/input/netflow/case_test.go | 36 +++++ ...IPFIX-Mikrotik-RouterOS-6.39.2.golden.json | 112 ++++++------- .../IPFIX-YAF-basic-with-applabel.golden.json | 8 +- .../IPFIX-vIPtela-with-VPN-id.golden.json | 2 +- .../golden/Netflow-9-Cisco-ASA-2.golden.json | 152 +++++++++--------- ...-9-Fortigate-FortiOS-54x-appid.golden.json | 72 ++++----- ...9-H3C-Netstream-with-varstring.golden.json | 2 +- 8 files changed, 225 insertions(+), 183 deletions(-) create mode 100644 x-pack/filebeat/input/netflow/case_test.go diff --git a/x-pack/filebeat/input/netflow/case.go b/x-pack/filebeat/input/netflow/case.go index 2dae04b4a0b..9a6e5f65954 100644 --- a/x-pack/filebeat/input/netflow/case.go +++ b/x-pack/filebeat/input/netflow/case.go @@ -14,7 +14,12 @@ import ( ) var fieldNameConverter = caseConverter{ - conversion: make(map[string]string), + conversion: map[string]string{ + // Special handled fields + + // VRFname should be VRFName + "VRFname": "vrf_name", + }, } type caseConverter struct { @@ -50,24 +55,24 @@ func (c *caseConverter) ToSnakeCase(orig record.Map) common.MapStr { // format. This function is tailored to some specifics of NetFlow field names. // Don't reuse it. func CamelCaseToSnakeCase(in string) string { - // Lowercase those few fields that are already snake-cased + // skip those few fields that are already snake-cased if strings.ContainsRune(in, '_') { return strings.ToLower(in) } out := make([]rune, 0, len(in)+4) runes := []rune(in) - upperStrike := 1 - for pos, r := range runes { + upperCount := 1 + for _, r := range runes { lr := unicode.ToLower(r) isUpper := lr != r if isUpper { - if upperStrike == 0 { + if upperCount == 0 { out = append(out, '_') } - upperStrike++ + upperCount++ } else { - if upperStrike > 2 { + if upperCount > 2 { // Some magic here: // NetFlow usually lowercases all but the first letter of an // acronym (Icmp) Except when it is 2 characters long: (IP). @@ -77,9 +82,10 @@ func CamelCaseToSnakeCase(in string) string { // postNATSourceIPv4Address : post_nat_source_ipv4_address // selectorIDTotalFlowsObserved : selector_id_total_flows_... out = append(out, '_') - out[pos], out[pos-1] = out[pos-1], out[pos] + n := len(out) - 1 + out[n], out[n-1] = out[n-1], out[n] } - upperStrike = 0 + upperCount = 0 } out = append(out, lr) } diff --git a/x-pack/filebeat/input/netflow/case_test.go b/x-pack/filebeat/input/netflow/case_test.go new file mode 100644 index 00000000000..b7faf8925f7 --- /dev/null +++ b/x-pack/filebeat/input/netflow/case_test.go @@ -0,0 +1,36 @@ +// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one +// or more contributor license agreements. Licensed under the Elastic License; +// you may not use this file except in compliance with the Elastic License. + +package netflow + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestCamelCaseToSnakeCase(t *testing.T) { + for _, testCase := range [][2]string{ + {"aBCDe", "a_bc_de"}, + {"postNATSourceIPv4Address", "post_nat_source_ipv4_address"}, + {"selectorIDTotalFlowsObserved", "selector_id_total_flows_observed"}, + {"engineId", "engine_id"}, + {"samplerRandomInterval", "sampler_random_interval"}, + {"dot1qVlanId", "dot1q_vlan_id"}, + {"messageMD5Checksum", "message_md5_checksum"}, + {"hashIPPayloadSize", "hash_ip_payload_size"}, + {"upperCILimit", "upper_ci_limit"}, + {"virtualStationUUID", "virtual_station_uuid"}, + {"selectorIDTotalFlowsObserved", "selector_id_total_flows_observed"}, + {"postMCastLayer2OctetDeltaCount", "post_mcast_layer2_octet_delta_count"}, + {"IPSecSPI", "ip_sec_spi"}, + {"VRFname", "vrf_name"}, + } { + s, found := fieldNameConverter.conversion[testCase[0]] + if !found { + s = CamelCaseToSnakeCase(testCase[0]) + } + assert.Equal(t, testCase[1], s) + } +} diff --git a/x-pack/filebeat/input/netflow/testdata/golden/IPFIX-Mikrotik-RouterOS-6.39.2.golden.json b/x-pack/filebeat/input/netflow/testdata/golden/IPFIX-Mikrotik-RouterOS-6.39.2.golden.json index cd9e0a43d3e..7480a6cac8c 100644 --- a/x-pack/filebeat/input/netflow/testdata/golden/IPFIX-Mikrotik-RouterOS-6.39.2.golden.json +++ b/x-pack/filebeat/input/netflow/testdata/golden/IPFIX-Mikrotik-RouterOS-6.39.2.golden.json @@ -38,8 +38,8 @@ "ip_version": 4, "octet_delta_count": 152, "packet_delta_count": 2, - "post_nadt_estination_ipv4_address": "192.168.128.17", - "post_nast_ource_ipv4_address": "192.168.230.216", + "post_nat_destination_ipv4_address": "192.168.128.17", + "post_nat_source_ipv4_address": "192.168.230.216", "protocol_identifier": 17, "source_ipv4_address": "10.10.8.197", "source_transport_port": 123, @@ -102,8 +102,8 @@ "ip_version": 4, "octet_delta_count": 502, "packet_delta_count": 8, - "post_nadt_estination_ipv4_address": "10.10.6.11", - "post_nast_ource_ipv4_address": "192.168.35.143", + "post_nat_destination_ipv4_address": "10.10.6.11", + "post_nat_source_ipv4_address": "192.168.35.143", "protocol_identifier": 6, "source_ipv4_address": "192.168.35.143", "source_transport_port": 46518, @@ -166,8 +166,8 @@ "ip_version": 4, "octet_delta_count": 2233, "packet_delta_count": 8, - "post_nadt_estination_ipv4_address": "192.168.35.143", - "post_nast_ource_ipv4_address": "192.168.230.216", + "post_nat_destination_ipv4_address": "192.168.35.143", + "post_nat_source_ipv4_address": "192.168.230.216", "protocol_identifier": 6, "source_ipv4_address": "10.10.6.11", "source_transport_port": 80, @@ -230,8 +230,8 @@ "ip_version": 4, "octet_delta_count": 152, "packet_delta_count": 2, - "post_nadt_estination_ipv4_address": "10.10.8.197", - "post_nast_ource_ipv4_address": "192.168.128.17", + "post_nat_destination_ipv4_address": "10.10.8.197", + "post_nat_source_ipv4_address": "192.168.128.17", "protocol_identifier": 17, "source_ipv4_address": "192.168.128.17", "source_transport_port": 123, @@ -294,8 +294,8 @@ "ip_version": 4, "octet_delta_count": 79724, "packet_delta_count": 57, - "post_nadt_estination_ipv4_address": "172.20.5.191", - "post_nast_ource_ipv4_address": "10.10.8.220", + "post_nat_destination_ipv4_address": "172.20.5.191", + "post_nat_source_ipv4_address": "10.10.8.220", "protocol_identifier": 6, "source_ipv4_address": "10.10.8.220", "source_transport_port": 80, @@ -358,8 +358,8 @@ "ip_version": 4, "octet_delta_count": 161, "packet_delta_count": 3, - "post_nadt_estination_ipv4_address": "172.20.4.1", - "post_nast_ource_ipv4_address": "172.20.4.199", + "post_nat_destination_ipv4_address": "172.20.4.1", + "post_nat_source_ipv4_address": "172.20.4.199", "protocol_identifier": 17, "source_ipv4_address": "172.20.4.199", "source_transport_port": 10240, @@ -422,8 +422,8 @@ "ip_version": 4, "octet_delta_count": 245, "packet_delta_count": 3, - "post_nadt_estination_ipv4_address": "172.20.4.199", - "post_nast_ource_ipv4_address": "172.20.4.1", + "post_nat_destination_ipv4_address": "172.20.4.199", + "post_nat_source_ipv4_address": "172.20.4.1", "protocol_identifier": 17, "source_ipv4_address": "172.20.4.1", "source_transport_port": 53, @@ -486,8 +486,8 @@ "ip_version": 4, "octet_delta_count": 504, "packet_delta_count": 6, - "post_nadt_estination_ipv4_address": "10.10.8.34", - "post_nast_ource_ipv4_address": "172.20.4.30", + "post_nat_destination_ipv4_address": "10.10.8.34", + "post_nat_source_ipv4_address": "172.20.4.30", "protocol_identifier": 1, "source_ipv4_address": "172.20.4.30", "source_transport_port": 0, @@ -550,8 +550,8 @@ "ip_version": 4, "octet_delta_count": 784, "packet_delta_count": 6, - "post_nadt_estination_ipv4_address": "172.20.4.30", - "post_nast_ource_ipv4_address": "10.10.8.105", + "post_nat_destination_ipv4_address": "172.20.4.30", + "post_nat_source_ipv4_address": "10.10.8.105", "protocol_identifier": 6, "source_ipv4_address": "10.10.8.105", "source_transport_port": 22, @@ -614,8 +614,8 @@ "ip_version": 4, "octet_delta_count": 433, "packet_delta_count": 8, - "post_nadt_estination_ipv4_address": "10.10.8.105", - "post_nast_ource_ipv4_address": "172.20.4.30", + "post_nat_destination_ipv4_address": "10.10.8.105", + "post_nat_source_ipv4_address": "172.20.4.30", "protocol_identifier": 6, "source_ipv4_address": "172.20.4.30", "source_transport_port": 59571, @@ -678,8 +678,8 @@ "ip_version": 4, "octet_delta_count": 196, "packet_delta_count": 3, - "post_nadt_estination_ipv4_address": "192.168.183.199", - "post_nast_ource_ipv4_address": "192.168.230.216", + "post_nat_destination_ipv4_address": "192.168.183.199", + "post_nat_source_ipv4_address": "192.168.230.216", "protocol_identifier": 6, "source_ipv4_address": "10.10.7.11", "source_transport_port": 48378, @@ -742,8 +742,8 @@ "ip_version": 4, "octet_delta_count": 206, "packet_delta_count": 3, - "post_nadt_estination_ipv4_address": "10.10.7.11", - "post_nast_ource_ipv4_address": "192.168.183.199", + "post_nat_destination_ipv4_address": "10.10.7.11", + "post_nat_source_ipv4_address": "192.168.183.199", "protocol_identifier": 6, "source_ipv4_address": "192.168.183.199", "source_transport_port": 6667, @@ -806,8 +806,8 @@ "ip_version": 4, "octet_delta_count": 504, "packet_delta_count": 6, - "post_nadt_estination_ipv4_address": "172.20.4.30", - "post_nast_ource_ipv4_address": "10.10.8.34", + "post_nat_destination_ipv4_address": "172.20.4.30", + "post_nat_source_ipv4_address": "10.10.8.34", "protocol_identifier": 1, "source_ipv4_address": "10.10.8.34", "source_transport_port": 0, @@ -870,8 +870,8 @@ "ip_version": 4, "octet_delta_count": 3539, "packet_delta_count": 58, - "post_nadt_estination_ipv4_address": "10.10.8.220", - "post_nast_ource_ipv4_address": "172.20.5.191", + "post_nat_destination_ipv4_address": "10.10.8.220", + "post_nat_source_ipv4_address": "172.20.5.191", "protocol_identifier": 6, "source_ipv4_address": "172.20.5.191", "source_transport_port": 42502, @@ -934,8 +934,8 @@ "ip_version": 4, "octet_delta_count": 495, "packet_delta_count": 3, - "post_nadt_estination_ipv4_address": "255.255.255.255", - "post_nast_ource_ipv4_address": "172.20.4.1", + "post_nat_destination_ipv4_address": "255.255.255.255", + "post_nat_source_ipv4_address": "172.20.4.1", "protocol_identifier": 17, "source_ipv4_address": "172.20.4.1", "source_transport_port": 33332, @@ -998,8 +998,8 @@ "ip_version": 4, "octet_delta_count": 330, "packet_delta_count": 2, - "post_nadt_estination_ipv4_address": "255.255.255.255", - "post_nast_ource_ipv4_address": "172.20.4.1", + "post_nat_destination_ipv4_address": "255.255.255.255", + "post_nat_source_ipv4_address": "172.20.4.1", "protocol_identifier": 17, "source_ipv4_address": "172.20.4.1", "source_transport_port": 33332, @@ -1062,8 +1062,8 @@ "ip_version": 4, "octet_delta_count": 435, "packet_delta_count": 3, - "post_nadt_estination_ipv4_address": "255.255.255.255", - "post_nast_ource_ipv4_address": "172.30.0.1", + "post_nat_destination_ipv4_address": "255.255.255.255", + "post_nat_source_ipv4_address": "172.30.0.1", "protocol_identifier": 17, "source_ipv4_address": "172.30.0.1", "source_transport_port": 53298, @@ -1126,8 +1126,8 @@ "ip_version": 4, "octet_delta_count": 290, "packet_delta_count": 2, - "post_nadt_estination_ipv4_address": "255.255.255.255", - "post_nast_ource_ipv4_address": "172.30.0.1", + "post_nat_destination_ipv4_address": "255.255.255.255", + "post_nat_source_ipv4_address": "172.30.0.1", "protocol_identifier": 17, "source_ipv4_address": "172.30.0.1", "source_transport_port": 53298, @@ -1190,8 +1190,8 @@ "ip_version": 4, "octet_delta_count": 495, "packet_delta_count": 3, - "post_nadt_estination_ipv4_address": "255.255.255.255", - "post_nast_ource_ipv4_address": "10.10.6.1", + "post_nat_destination_ipv4_address": "255.255.255.255", + "post_nat_source_ipv4_address": "10.10.6.1", "protocol_identifier": 17, "source_ipv4_address": "10.10.6.1", "source_transport_port": 48172, @@ -1254,8 +1254,8 @@ "ip_version": 4, "octet_delta_count": 330, "packet_delta_count": 2, - "post_nadt_estination_ipv4_address": "255.255.255.255", - "post_nast_ource_ipv4_address": "10.10.6.1", + "post_nat_destination_ipv4_address": "255.255.255.255", + "post_nat_source_ipv4_address": "10.10.6.1", "protocol_identifier": 17, "source_ipv4_address": "10.10.6.1", "source_transport_port": 48172, @@ -1318,8 +1318,8 @@ "ip_version": 4, "octet_delta_count": 495, "packet_delta_count": 3, - "post_nadt_estination_ipv4_address": "255.255.255.255", - "post_nast_ource_ipv4_address": "10.10.7.1", + "post_nat_destination_ipv4_address": "255.255.255.255", + "post_nat_source_ipv4_address": "10.10.7.1", "protocol_identifier": 17, "source_ipv4_address": "10.10.7.1", "source_transport_port": 48935, @@ -1382,8 +1382,8 @@ "ip_version": 4, "octet_delta_count": 330, "packet_delta_count": 2, - "post_nadt_estination_ipv4_address": "255.255.255.255", - "post_nast_ource_ipv4_address": "10.10.7.1", + "post_nat_destination_ipv4_address": "255.255.255.255", + "post_nat_source_ipv4_address": "10.10.7.1", "protocol_identifier": 17, "source_ipv4_address": "10.10.7.1", "source_transport_port": 48935, @@ -1446,8 +1446,8 @@ "ip_version": 4, "octet_delta_count": 495, "packet_delta_count": 3, - "post_nadt_estination_ipv4_address": "255.255.255.255", - "post_nast_ource_ipv4_address": "10.10.8.1", + "post_nat_destination_ipv4_address": "255.255.255.255", + "post_nat_source_ipv4_address": "10.10.8.1", "protocol_identifier": 17, "source_ipv4_address": "10.10.8.1", "source_transport_port": 51931, @@ -1510,8 +1510,8 @@ "ip_version": 4, "octet_delta_count": 330, "packet_delta_count": 2, - "post_nadt_estination_ipv4_address": "255.255.255.255", - "post_nast_ource_ipv4_address": "10.10.8.1", + "post_nat_destination_ipv4_address": "255.255.255.255", + "post_nat_source_ipv4_address": "10.10.8.1", "protocol_identifier": 17, "source_ipv4_address": "10.10.8.1", "source_transport_port": 51931, @@ -1574,8 +1574,8 @@ "ip_version": 4, "octet_delta_count": 495, "packet_delta_count": 3, - "post_nadt_estination_ipv4_address": "255.255.255.255", - "post_nast_ource_ipv4_address": "10.20.0.1", + "post_nat_destination_ipv4_address": "255.255.255.255", + "post_nat_source_ipv4_address": "10.20.0.1", "protocol_identifier": 17, "source_ipv4_address": "10.20.0.1", "source_transport_port": 43454, @@ -1638,8 +1638,8 @@ "ip_version": 4, "octet_delta_count": 330, "packet_delta_count": 2, - "post_nadt_estination_ipv4_address": "255.255.255.255", - "post_nast_ource_ipv4_address": "10.20.0.1", + "post_nat_destination_ipv4_address": "255.255.255.255", + "post_nat_source_ipv4_address": "10.20.0.1", "protocol_identifier": 17, "source_ipv4_address": "10.20.0.1", "source_transport_port": 43454, @@ -1702,8 +1702,8 @@ "ip_version": 4, "octet_delta_count": 495, "packet_delta_count": 3, - "post_nadt_estination_ipv4_address": "255.255.255.255", - "post_nast_ource_ipv4_address": "10.10.10.1", + "post_nat_destination_ipv4_address": "255.255.255.255", + "post_nat_source_ipv4_address": "10.10.10.1", "protocol_identifier": 17, "source_ipv4_address": "10.10.10.1", "source_transport_port": 52837, @@ -1766,8 +1766,8 @@ "ip_version": 4, "octet_delta_count": 330, "packet_delta_count": 2, - "post_nadt_estination_ipv4_address": "255.255.255.255", - "post_nast_ource_ipv4_address": "10.10.10.1", + "post_nat_destination_ipv4_address": "255.255.255.255", + "post_nat_source_ipv4_address": "10.10.10.1", "protocol_identifier": 17, "source_ipv4_address": "10.10.10.1", "source_transport_port": 52837, diff --git a/x-pack/filebeat/input/netflow/testdata/golden/IPFIX-YAF-basic-with-applabel.golden.json b/x-pack/filebeat/input/netflow/testdata/golden/IPFIX-YAF-basic-with-applabel.golden.json index fcef511833e..d0625a1730b 100644 --- a/x-pack/filebeat/input/netflow/testdata/golden/IPFIX-YAF-basic-with-applabel.golden.json +++ b/x-pack/filebeat/input/netflow/testdata/golden/IPFIX-YAF-basic-with-applabel.golden.json @@ -108,26 +108,26 @@ "flow_end_milliseconds": "2016-12-25T12:58:34.347Z", "flow_end_reason": 3, "flow_start_milliseconds": "2016-12-25T12:58:33.345Z", - "initial_tcfp_lags": 194, + "initial_tcp_flags": 194, "ip_class_of_service": 2, "octet_total_count": 172, "packet_total_count": 4, "protocol_identifier": 6, "reverse_flow_attributes": 0, "reverse_flow_delta_milliseconds": 0, - "reverse_initial_tpcf_lags": 18, + "reverse_initial_tcp_flags": 18, "reverse_ip_class_of_service": 0, "reverse_octet_total_count": 92, "reverse_packet_total_count": 2, "reverse_tcp_sequence_number": 3788795034, - "reverse_union_tpcf_lags": 17, + "reverse_union_tcp_flags": 17, "reverse_vlan_id": 0, "silk_app_label": 0, "source_ipv4_address": "172.16.32.100", "source_transport_port": 63499, "tcp_sequence_number": 340533701, "type": "netflow_flow", - "union_tcfp_lags": 17, + "union_tcp_flags": 17, "vlan_id": 0 }, "network": { diff --git a/x-pack/filebeat/input/netflow/testdata/golden/IPFIX-vIPtela-with-VPN-id.golden.json b/x-pack/filebeat/input/netflow/testdata/golden/IPFIX-vIPtela-with-VPN-id.golden.json index 11728b2bd1c..da9bef387f2 100644 --- a/x-pack/filebeat/input/netflow/testdata/golden/IPFIX-vIPtela-with-VPN-id.golden.json +++ b/x-pack/filebeat/input/netflow/testdata/golden/IPFIX-vIPtela-with-VPN-id.golden.json @@ -52,7 +52,7 @@ "source_transport_port": 41717, "tcp_control_bits": 16, "type": "netflow_flow", - "viptela_vpin_d": 100 + "viptela_vpn_id": 100 }, "network": { "bytes": 775, diff --git a/x-pack/filebeat/input/netflow/testdata/golden/Netflow-9-Cisco-ASA-2.golden.json b/x-pack/filebeat/input/netflow/testdata/golden/Netflow-9-Cisco-ASA-2.golden.json index c7367af09ee..dfc1898f1e4 100644 --- a/x-pack/filebeat/input/netflow/testdata/golden/Netflow-9-Cisco-ASA-2.golden.json +++ b/x-pack/filebeat/input/netflow/testdata/golden/Netflow-9-Cisco-ASA-2.golden.json @@ -39,10 +39,10 @@ "ingress_interface": 3, "initiator_octets": 81, "observation_time_milliseconds": "2016-07-21T13:50:33.015Z", - "post_nadt_estination_ipv4_address": "192.168.0.17", - "post_napdt_estination_transport_port": 80, - "post_napst_ource_transport_port": 61775, - "post_nast_ource_ipv4_address": "192.168.0.2", + "post_napt_destination_transport_port": 80, + "post_napt_source_transport_port": 61775, + "post_nat_destination_ipv4_address": "192.168.0.17", + "post_nat_source_ipv4_address": "192.168.0.2", "protocol_identifier": 6, "responder_octets": 763, "source_ipv4_address": "192.168.0.2", @@ -104,10 +104,10 @@ "ingress_interface": 3, "initiator_octets": 81, "observation_time_milliseconds": "2016-07-21T13:50:33.035Z", - "post_nadt_estination_ipv4_address": "192.168.0.17", - "post_napdt_estination_transport_port": 80, - "post_napst_ource_transport_port": 61776, - "post_nast_ource_ipv4_address": "192.168.0.2", + "post_napt_destination_transport_port": 80, + "post_napt_source_transport_port": 61776, + "post_nat_destination_ipv4_address": "192.168.0.17", + "post_nat_source_ipv4_address": "192.168.0.2", "protocol_identifier": 6, "responder_octets": 6207, "source_ipv4_address": "192.168.0.2", @@ -169,10 +169,10 @@ "ingress_interface": 3, "initiator_octets": 81, "observation_time_milliseconds": "2016-07-21T13:50:33.035Z", - "post_nadt_estination_ipv4_address": "192.168.0.17", - "post_napdt_estination_transport_port": 80, - "post_napst_ource_transport_port": 61776, - "post_nast_ource_ipv4_address": "192.168.0.2", + "post_napt_destination_transport_port": 80, + "post_napt_source_transport_port": 61776, + "post_nat_destination_ipv4_address": "192.168.0.17", + "post_nat_source_ipv4_address": "192.168.0.2", "protocol_identifier": 6, "responder_octets": 6207, "source_ipv4_address": "192.168.0.2", @@ -234,10 +234,10 @@ "ingress_interface": 3, "initiator_octets": 81, "observation_time_milliseconds": "2016-07-21T13:50:33.115Z", - "post_nadt_estination_ipv4_address": "192.168.0.18", - "post_napdt_estination_transport_port": 80, - "post_napst_ource_transport_port": 56635, - "post_nast_ource_ipv4_address": "192.168.0.1", + "post_napt_destination_transport_port": 80, + "post_napt_source_transport_port": 56635, + "post_nat_destination_ipv4_address": "192.168.0.18", + "post_nat_source_ipv4_address": "192.168.0.1", "protocol_identifier": 6, "responder_octets": 9075, "source_ipv4_address": "192.168.0.1", @@ -299,10 +299,10 @@ "ingress_interface": 3, "initiator_octets": 81, "observation_time_milliseconds": "2016-07-21T13:50:33.115Z", - "post_nadt_estination_ipv4_address": "192.168.0.18", - "post_napdt_estination_transport_port": 80, - "post_napst_ource_transport_port": 56635, - "post_nast_ource_ipv4_address": "192.168.0.1", + "post_napt_destination_transport_port": 80, + "post_napt_source_transport_port": 56635, + "post_nat_destination_ipv4_address": "192.168.0.18", + "post_nat_source_ipv4_address": "192.168.0.1", "protocol_identifier": 6, "responder_octets": 9075, "source_ipv4_address": "192.168.0.1", @@ -364,10 +364,10 @@ "ingress_interface": 3, "initiator_octets": 81, "observation_time_milliseconds": "2016-07-21T13:50:33.185Z", - "post_nadt_estination_ipv4_address": "192.168.0.17", - "post_napdt_estination_transport_port": 80, - "post_napst_ource_transport_port": 61773, - "post_nast_ource_ipv4_address": "192.168.0.2", + "post_napt_destination_transport_port": 80, + "post_napt_source_transport_port": 61773, + "post_nat_destination_ipv4_address": "192.168.0.17", + "post_nat_source_ipv4_address": "192.168.0.2", "protocol_identifier": 6, "responder_octets": 5536, "source_ipv4_address": "192.168.0.2", @@ -429,10 +429,10 @@ "ingress_interface": 3, "initiator_octets": 81, "observation_time_milliseconds": "2016-07-21T13:50:33.185Z", - "post_nadt_estination_ipv4_address": "192.168.0.17", - "post_napdt_estination_transport_port": 80, - "post_napst_ource_transport_port": 61773, - "post_nast_ource_ipv4_address": "192.168.0.2", + "post_napt_destination_transport_port": 80, + "post_napt_source_transport_port": 61773, + "post_nat_destination_ipv4_address": "192.168.0.17", + "post_nat_source_ipv4_address": "192.168.0.2", "protocol_identifier": 6, "responder_octets": 5536, "source_ipv4_address": "192.168.0.2", @@ -493,10 +493,10 @@ "icmp_type_ipv4": 0, "ingress_interface": 3, "observation_time_milliseconds": "2016-07-21T13:50:33.385Z", - "post_nadt_estination_ipv4_address": "192.168.0.18", - "post_napdt_estination_transport_port": 80, - "post_napst_ource_transport_port": 56649, - "post_nast_ource_ipv4_address": "192.168.0.1", + "post_napt_destination_transport_port": 80, + "post_napt_source_transport_port": 56649, + "post_nat_destination_ipv4_address": "192.168.0.18", + "post_nat_source_ipv4_address": "192.168.0.1", "protocol_identifier": 6, "source_ipv4_address": "192.168.0.1", "source_transport_port": 56649, @@ -557,10 +557,10 @@ "ingress_interface": 3, "initiator_octets": 69, "observation_time_milliseconds": "2016-07-21T13:50:33.475Z", - "post_nadt_estination_ipv4_address": "192.168.0.18", - "post_napdt_estination_transport_port": 80, - "post_napst_ource_transport_port": 56649, - "post_nast_ource_ipv4_address": "192.168.0.1", + "post_napt_destination_transport_port": 80, + "post_napt_source_transport_port": 56649, + "post_nat_destination_ipv4_address": "192.168.0.18", + "post_nat_source_ipv4_address": "192.168.0.1", "protocol_identifier": 6, "responder_octets": 14179, "source_ipv4_address": "192.168.0.1", @@ -622,10 +622,10 @@ "ingress_interface": 3, "initiator_octets": 69, "observation_time_milliseconds": "2016-07-21T13:50:33.475Z", - "post_nadt_estination_ipv4_address": "192.168.0.18", - "post_napdt_estination_transport_port": 80, - "post_napst_ource_transport_port": 56649, - "post_nast_ource_ipv4_address": "192.168.0.1", + "post_napt_destination_transport_port": 80, + "post_napt_source_transport_port": 56649, + "post_nat_destination_ipv4_address": "192.168.0.18", + "post_nat_source_ipv4_address": "192.168.0.1", "protocol_identifier": 6, "responder_octets": 14179, "source_ipv4_address": "192.168.0.1", @@ -686,10 +686,10 @@ "icmp_type_ipv4": 0, "ingress_interface": 3, "observation_time_milliseconds": "2016-07-21T13:50:35.035Z", - "post_nadt_estination_ipv4_address": "192.168.0.17", - "post_napdt_estination_transport_port": 80, - "post_napst_ource_transport_port": 61777, - "post_nast_ource_ipv4_address": "192.168.0.2", + "post_napt_destination_transport_port": 80, + "post_napt_source_transport_port": 61777, + "post_nat_destination_ipv4_address": "192.168.0.17", + "post_nat_source_ipv4_address": "192.168.0.2", "protocol_identifier": 6, "source_ipv4_address": "192.168.0.2", "source_transport_port": 61777, @@ -750,10 +750,10 @@ "ingress_interface": 3, "initiator_octets": 69, "observation_time_milliseconds": "2016-07-21T13:50:35.125Z", - "post_nadt_estination_ipv4_address": "192.168.0.17", - "post_napdt_estination_transport_port": 80, - "post_napst_ource_transport_port": 61777, - "post_nast_ource_ipv4_address": "192.168.0.2", + "post_napt_destination_transport_port": 80, + "post_napt_source_transport_port": 61777, + "post_nat_destination_ipv4_address": "192.168.0.17", + "post_nat_source_ipv4_address": "192.168.0.2", "protocol_identifier": 6, "responder_octets": 14178, "source_ipv4_address": "192.168.0.2", @@ -815,10 +815,10 @@ "ingress_interface": 3, "initiator_octets": 69, "observation_time_milliseconds": "2016-07-21T13:50:35.125Z", - "post_nadt_estination_ipv4_address": "192.168.0.17", - "post_napdt_estination_transport_port": 80, - "post_napst_ource_transport_port": 61777, - "post_nast_ource_ipv4_address": "192.168.0.2", + "post_napt_destination_transport_port": 80, + "post_napt_source_transport_port": 61777, + "post_nat_destination_ipv4_address": "192.168.0.17", + "post_nat_source_ipv4_address": "192.168.0.2", "protocol_identifier": 6, "responder_octets": 14178, "source_ipv4_address": "192.168.0.2", @@ -879,10 +879,10 @@ "icmp_type_ipv4": 0, "ingress_interface": 3, "observation_time_milliseconds": "2016-07-21T13:50:35.785Z", - "post_nadt_estination_ipv4_address": "192.168.0.17", - "post_napdt_estination_transport_port": 80, - "post_napst_ource_transport_port": 56650, - "post_nast_ource_ipv4_address": "192.168.0.1", + "post_napt_destination_transport_port": 80, + "post_napt_source_transport_port": 56650, + "post_nat_destination_ipv4_address": "192.168.0.17", + "post_nat_source_ipv4_address": "192.168.0.1", "protocol_identifier": 6, "source_ipv4_address": "192.168.0.1", "source_transport_port": 56650, @@ -943,10 +943,10 @@ "ingress_interface": 3, "initiator_octets": 75, "observation_time_milliseconds": "2016-07-21T13:50:35.925Z", - "post_nadt_estination_ipv4_address": "192.168.0.17", - "post_napdt_estination_transport_port": 80, - "post_napst_ource_transport_port": 56650, - "post_nast_ource_ipv4_address": "192.168.0.1", + "post_napt_destination_transport_port": 80, + "post_napt_source_transport_port": 56650, + "post_nat_destination_ipv4_address": "192.168.0.17", + "post_nat_source_ipv4_address": "192.168.0.1", "protocol_identifier": 6, "responder_octets": 881, "source_ipv4_address": "192.168.0.1", @@ -1008,10 +1008,10 @@ "ingress_interface": 3, "initiator_octets": 75, "observation_time_milliseconds": "2016-07-21T13:50:35.925Z", - "post_nadt_estination_ipv4_address": "192.168.0.17", - "post_napdt_estination_transport_port": 80, - "post_napst_ource_transport_port": 56650, - "post_nast_ource_ipv4_address": "192.168.0.1", + "post_napt_destination_transport_port": 80, + "post_napt_source_transport_port": 56650, + "post_nat_destination_ipv4_address": "192.168.0.17", + "post_nat_source_ipv4_address": "192.168.0.1", "protocol_identifier": 6, "responder_octets": 881, "source_ipv4_address": "192.168.0.1", @@ -1072,10 +1072,10 @@ "icmp_type_ipv4": 0, "ingress_interface": 3, "observation_time_milliseconds": "2016-07-21T13:50:36.395Z", - "post_nadt_estination_ipv4_address": "192.168.0.18", - "post_napdt_estination_transport_port": 80, - "post_napst_ource_transport_port": 56651, - "post_nast_ource_ipv4_address": "192.168.0.1", + "post_napt_destination_transport_port": 80, + "post_napt_source_transport_port": 56651, + "post_nat_destination_ipv4_address": "192.168.0.18", + "post_nat_source_ipv4_address": "192.168.0.1", "protocol_identifier": 6, "source_ipv4_address": "192.168.0.1", "source_transport_port": 56651, @@ -1136,10 +1136,10 @@ "ingress_interface": 3, "initiator_octets": 69, "observation_time_milliseconds": "2016-07-21T13:50:36.495Z", - "post_nadt_estination_ipv4_address": "192.168.0.18", - "post_napdt_estination_transport_port": 80, - "post_napst_ource_transport_port": 56651, - "post_nast_ource_ipv4_address": "192.168.0.1", + "post_napt_destination_transport_port": 80, + "post_napt_source_transport_port": 56651, + "post_nat_destination_ipv4_address": "192.168.0.18", + "post_nat_source_ipv4_address": "192.168.0.1", "protocol_identifier": 6, "responder_octets": 14178, "source_ipv4_address": "192.168.0.1", @@ -1201,10 +1201,10 @@ "ingress_interface": 3, "initiator_octets": 69, "observation_time_milliseconds": "2016-07-21T13:50:36.495Z", - "post_nadt_estination_ipv4_address": "192.168.0.18", - "post_napdt_estination_transport_port": 80, - "post_napst_ource_transport_port": 56651, - "post_nast_ource_ipv4_address": "192.168.0.1", + "post_napt_destination_transport_port": 80, + "post_napt_source_transport_port": 56651, + "post_nat_destination_ipv4_address": "192.168.0.18", + "post_nat_source_ipv4_address": "192.168.0.1", "protocol_identifier": 6, "responder_octets": 14178, "source_ipv4_address": "192.168.0.1", diff --git a/x-pack/filebeat/input/netflow/testdata/golden/Netflow-9-Fortigate-FortiOS-54x-appid.golden.json b/x-pack/filebeat/input/netflow/testdata/golden/Netflow-9-Fortigate-FortiOS-54x-appid.golden.json index 4b75f30ad61..744c383b78a 100644 --- a/x-pack/filebeat/input/netflow/testdata/golden/Netflow-9-Fortigate-FortiOS-54x-appid.golden.json +++ b/x-pack/filebeat/input/netflow/testdata/golden/Netflow-9-Fortigate-FortiOS-54x-appid.golden.json @@ -42,10 +42,10 @@ "ingress_interface": 8, "octet_delta_count": 748, "packet_delta_count": 6, - "post_nadt_estination_ipv4_address": "0.0.0.0", - "post_napdt_estination_transport_port": 0, - "post_napst_ource_transport_port": 45380, - "post_nast_ource_ipv4_address": "10.0.0.250", + "post_napt_destination_transport_port": 0, + "post_napt_source_transport_port": 45380, + "post_nat_destination_ipv4_address": "0.0.0.0", + "post_nat_source_ipv4_address": "10.0.0.250", "post_octet_delta_count": 748, "post_packet_delta_count": 6, "protocol_identifier": 6, @@ -113,10 +113,10 @@ "ingress_interface": 2, "octet_delta_count": 6948, "packet_delta_count": 10, - "post_nadt_estination_ipv4_address": "10.0.0.250", - "post_napdt_estination_transport_port": 44778, - "post_napst_ource_transport_port": 0, - "post_nast_ource_ipv4_address": "0.0.0.0", + "post_napt_destination_transport_port": 44778, + "post_napt_source_transport_port": 0, + "post_nat_destination_ipv4_address": "10.0.0.250", + "post_nat_source_ipv4_address": "0.0.0.0", "post_octet_delta_count": 6948, "post_packet_delta_count": 10, "protocol_identifier": 6, @@ -184,10 +184,10 @@ "ingress_interface": 8, "octet_delta_count": 1584, "packet_delta_count": 14, - "post_nadt_estination_ipv4_address": "0.0.0.0", - "post_napdt_estination_transport_port": 0, - "post_napst_ource_transport_port": 44778, - "post_nast_ource_ipv4_address": "10.0.0.250", + "post_napt_destination_transport_port": 0, + "post_napt_source_transport_port": 44778, + "post_nat_destination_ipv4_address": "0.0.0.0", + "post_nat_source_ipv4_address": "10.0.0.250", "post_octet_delta_count": 1584, "post_packet_delta_count": 14, "protocol_identifier": 6, @@ -255,10 +255,10 @@ "ingress_interface": 2, "octet_delta_count": 8201, "packet_delta_count": 11, - "post_nadt_estination_ipv4_address": "10.0.0.250", - "post_napdt_estination_transport_port": 50618, - "post_napst_ource_transport_port": 0, - "post_nast_ource_ipv4_address": "0.0.0.0", + "post_napt_destination_transport_port": 50618, + "post_napt_source_transport_port": 0, + "post_nat_destination_ipv4_address": "10.0.0.250", + "post_nat_source_ipv4_address": "0.0.0.0", "post_octet_delta_count": 8201, "post_packet_delta_count": 11, "protocol_identifier": 6, @@ -326,10 +326,10 @@ "ingress_interface": 8, "octet_delta_count": 1729, "packet_delta_count": 15, - "post_nadt_estination_ipv4_address": "0.0.0.0", - "post_napdt_estination_transport_port": 0, - "post_napst_ource_transport_port": 50618, - "post_nast_ource_ipv4_address": "10.0.0.250", + "post_napt_destination_transport_port": 0, + "post_napt_source_transport_port": 50618, + "post_nat_destination_ipv4_address": "0.0.0.0", + "post_nat_source_ipv4_address": "10.0.0.250", "post_octet_delta_count": 1729, "post_packet_delta_count": 15, "protocol_identifier": 6, @@ -397,10 +397,10 @@ "ingress_interface": 2, "octet_delta_count": 1122, "packet_delta_count": 5, - "post_nadt_estination_ipv4_address": "10.0.0.250", - "post_napdt_estination_transport_port": 33660, - "post_napst_ource_transport_port": 0, - "post_nast_ource_ipv4_address": "0.0.0.0", + "post_napt_destination_transport_port": 33660, + "post_napt_source_transport_port": 0, + "post_nat_destination_ipv4_address": "10.0.0.250", + "post_nat_source_ipv4_address": "0.0.0.0", "post_octet_delta_count": 1122, "post_packet_delta_count": 5, "protocol_identifier": 6, @@ -468,10 +468,10 @@ "ingress_interface": 8, "octet_delta_count": 705, "packet_delta_count": 5, - "post_nadt_estination_ipv4_address": "0.0.0.0", - "post_napdt_estination_transport_port": 0, - "post_napst_ource_transport_port": 33660, - "post_nast_ource_ipv4_address": "10.0.0.250", + "post_napt_destination_transport_port": 0, + "post_napt_source_transport_port": 33660, + "post_nat_destination_ipv4_address": "0.0.0.0", + "post_nat_source_ipv4_address": "10.0.0.250", "post_octet_delta_count": 705, "post_packet_delta_count": 5, "protocol_identifier": 6, @@ -539,10 +539,10 @@ "ingress_interface": 2, "octet_delta_count": 1123, "packet_delta_count": 5, - "post_nadt_estination_ipv4_address": "10.0.0.250", - "post_napdt_estination_transport_port": 33646, - "post_napst_ource_transport_port": 0, - "post_nast_ource_ipv4_address": "0.0.0.0", + "post_napt_destination_transport_port": 33646, + "post_napt_source_transport_port": 0, + "post_nat_destination_ipv4_address": "10.0.0.250", + "post_nat_source_ipv4_address": "0.0.0.0", "post_octet_delta_count": 1123, "post_packet_delta_count": 5, "protocol_identifier": 6, @@ -610,10 +610,10 @@ "ingress_interface": 8, "octet_delta_count": 706, "packet_delta_count": 5, - "post_nadt_estination_ipv4_address": "0.0.0.0", - "post_napdt_estination_transport_port": 0, - "post_napst_ource_transport_port": 33646, - "post_nast_ource_ipv4_address": "10.0.0.250", + "post_napt_destination_transport_port": 0, + "post_napt_source_transport_port": 33646, + "post_nat_destination_ipv4_address": "0.0.0.0", + "post_nat_source_ipv4_address": "10.0.0.250", "post_octet_delta_count": 706, "post_packet_delta_count": 5, "protocol_identifier": 6, diff --git a/x-pack/filebeat/input/netflow/testdata/golden/Netflow-9-H3C-Netstream-with-varstring.golden.json b/x-pack/filebeat/input/netflow/testdata/golden/Netflow-9-H3C-Netstream-with-varstring.golden.json index 1c069e2df66..1bae7868b29 100644 --- a/x-pack/filebeat/input/netflow/testdata/golden/Netflow-9-H3C-Netstream-with-varstring.golden.json +++ b/x-pack/filebeat/input/netflow/testdata/golden/Netflow-9-H3C-Netstream-with-varstring.golden.json @@ -57,7 +57,7 @@ "src_traffic_index": 0, "tcp_control_bits": 0, "type": "netflow_flow", - "vr_fname": "" + "vrf_name": "" }, "network": { "bytes": 702, From 90f1f1abaa95263bda3c9d39a6d167974c88a8d9 Mon Sep 17 00:00:00 2001 From: Arsalan Cheema Date: Fri, 1 Mar 2019 19:31:20 +0800 Subject: [PATCH 113/332] Improve documentation for server metricset in Zookeeper metricbeat module (#10692) --- metricbeat/docs/fields.asciidoc | 22 +++++++++---------- metricbeat/module/zookeeper/fields.go | 2 +- .../module/zookeeper/server/_meta/fields.yml | 22 +++++++++---------- 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index 4df0fba5db7..a5715bba1a6 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -26201,7 +26201,7 @@ server contains the metrics reported by the four-letter `srvr` command. -- type: long -Connections established by the server +Number of clients currently connected to the server -- @@ -26211,7 +26211,7 @@ Connections established by the server -- type: long -Average latency of the server +Average amount of time taken for the server to respond to a client request -- @@ -26220,7 +26220,7 @@ Average latency of the server -- type: long -Max latency reached by the server +Maximum amount of time taken for the server to respond to a client request -- @@ -26229,7 +26229,7 @@ Max latency reached by the server -- type: long -Minimum latency that has been reached by the server +Minimum amount of time taken for the server to respond to a client request -- @@ -26238,7 +26238,7 @@ Minimum latency that has been reached by the server -- type: keyword -Server mode +Mode of the server. In an ensemble, this may either be leader or follower. Otherwise, it is standalone -- @@ -26256,7 +26256,7 @@ Total number of nodes -- type: long -Outstanding +Number of requests queued at the server. This exceeds zero when the server receives more requests than it is able to process -- @@ -26265,7 +26265,7 @@ Outstanding -- type: long -Received requests to the server +Number of requests received by the server -- @@ -26274,7 +26274,7 @@ Received requests to the server -- type: long -Requests sent by the server +Number of requests sent by the server -- @@ -26283,7 +26283,7 @@ Requests sent by the server -- type: date -Date of the Zookeeper release in use +Date of the Zookeeper release currently in use -- @@ -26292,7 +26292,7 @@ Date of the Zookeeper release in use -- type: keyword -Original value of the Zookeeper transaction ID +Unique value of the Zookeeper transaction ID. The zxid consists of an epoch and a counter. It is established by the leader and is used to determine the temporal ordering of changes -- @@ -26310,7 +26310,7 @@ Total transactions of the leader in epoch -- type: long -Epoch value of the Zookeeper transaction ID +Epoch value of the Zookeeper transaction ID. An epoch signifies the period in which a server is a leader -- diff --git a/metricbeat/module/zookeeper/fields.go b/metricbeat/module/zookeeper/fields.go index a122b325be7..516bd6125f8 100644 --- a/metricbeat/module/zookeeper/fields.go +++ b/metricbeat/module/zookeeper/fields.go @@ -32,5 +32,5 @@ func init() { // AssetZookeeper returns asset data. // This is the base64 encoded gzipped contents of ../metricbeat/module/zookeeper. func AssetZookeeper() string { - return "eJy0mM2O4zYMx+95CmIve5o8QA4Fim4PRbG7wLSnvXgYmYmFyKIr0vmYpy9kx47t2JlMPnwa2CP+f6RIkcoLbOiwgHfmDVFBYQagVh0t4Msv5r+rd19mACmJCbZQy34Bv80AANrvkJMGawQMO0dGKYXlATQjWHEZXhypxn9ib5WD9WswnOfoU5nPACTjoIlhv7LrBazQCc0AAjlCoQWscQawsuRSWVSqL+Axpz5xfPRQxH8PXBbHNyPI8XlrV76BYa9ovVSwjReBCg5HJ1of2+Vd9vh02bp8udfTojG8C4gVZjRwBeEwzPW6nqkj8rzzsh/f5hn60vUnY9H4V+9j49eGDjsO6eDbBe/6+dPYno8qY1EE3tsclZIUFROx7+MYjv36cwy/n2xDNAu86nBFtXEmh0reHOa4HQreTLKlgGtqLMOSdEfkgbxQvnRUBUnAesitc1bIcCcL+3RUZJRTQCeJ4dLrgxB/lPmSQgxRKwDvnlOawFixc7yjIA/Xby2DxBgdy8CUIZDXKlLjRDnuk5V1lDRKHB4aoe+4t3mZgz+RWkdwUhPAijyFFYcK+pRtRWBDMhHLJuFy3D+YtUm4qzKrxbD+URjWfx7Dl3mCzm4pNg5PJhp/fJZ1bINyZ6c0QwUMbca5A1Q047BckH9q1v2Yzrao3ZTHlZnGpYqiT61fJ4H+K0n08aHtiEAjUofVE6Ux2ktqME99zrhSlMI4d4FmQyrzQIbslobN6H7mU/w86Y7DppGERvIymNATdnwaKspNAFG9u3Lw5vFbe7QOlfW4kwZDOMQd7xdR29jaw3ycVihsKSSiqA8cPl7ZUTxr+oXRME2QHLyhNHleW6sFOt2tHfR2GXlAiM22FxCwAo4wnSqKLQWxPH5Wo7M49KFAzeqQW0Pz8dVXj3XH5YA+hWVpXQqioa742q1x5h2qyZ50QFa2SToHt5AC13ng2KC79pisBp8nUdZD1dmY/yFfv2Q+d/v4Wi+64cIhYVtdVOpLxte7bhn3tvM/Oi2bRHHprGQn7rPAnE02o6rDwE150bV3fjO46MWZJ8P7AK+mPID+gHuX6nfct4qB0FyOXU/5bCL8pPJgDqyGgQwFlnHC/5il5eD05jbxT10CZybasfO+kv+XFV3nblBV+Ucz2E1KPyfWN/bvmpFej4s7gxt/tCs3zz6vjUa0cMX2H3tOkk5NCyMfeoLfYlc9Ftuv5pei5iSLE0Mp48nxvrfj8bwi8X4Gu7YeHWzRlSPyGtALVuca/PVt4uS8Ly07EtIA1JNFdJoKNtnEbw3DL9fq/hlXXunx/wEAAP//35m7ZA==" + return "eJy0mE1v20gPx+/+FEQvvbT+ADk8QIE+h2LRLrDoXnpx6RFtERkNlRnKjvPpFzPSyJItpU78cgosi/yRw5f/5DM80uEBXkQeiWryCwBltfQAH36J/JW++7AAKCgYz7WyuAf43wIAoH8OFalnE8CItWSUClgfQEuCjTT+syXV+CNxrOLZbcFIVaErwnIBEErxujLiNrx9gA3aQAsAT5Yw0ANscQGwYbJFeEheP4PDisbE8aOHOv7cS1N330wgx8/v/s3fYMQpsgsJNkfhqRbfBdHH2L8+ZI+fIduQr3J6fGkK7xXEhBkNXEB4mub2vZGpDnk5+HKc3/w5jWUYTylB41+jhzmuRzrsxRcnz16Jblw/2fZy0jPWtZdnrlBpVaDiKvDLNIYVt30bw5ejbYhmQTYDruhtmsmikjOHJe5OHb6bZEcet5Qtw5p0T+SAXKBqbSklKQA7qNhaDmRkUIVjOqpLqsijDSsjjdMbIf5oqjX5mKLeAbw4KWgGYyPWyp58uLn/3jKEmKOuDUzjPTlNmZomqvB5tWFLq+xJ/E0z9B2fuWoqcEdStgRHbwEwkRewEZ+gj9VWezEUZnKZC67C5xuz5oK7qLJ6DHa3wmD3dgzXVCu0vKO4OByZaPz2VTawDSqDk9ISFdD3FWcPkGimYaUmd9eq+zFfbdF3bo8LK00aDYquYLddeXpqKOjtUztwAtlJm1ZHVMRsryljHvecsU1Q8tPcNZpH0rD0ZIh3dLqMrmc+5s+R7sU/ZpeQXb4OFugOJz4PFd3NAFF7uuHgzO2PtrMOyXo8SYPeH+KJj5uoX2z9MJ+mDeR35FdBUW8oPv4RS3HWjBsjM82QHJyhYnW/tdY6GGy3XujtS3KAEJftKCHAASxhMdcUO/KBZXpWo2U8jaFGLduUs6Hl9NsXy7rudUBXwLphW0BQ33Z8G9Y08x7VlHcakMk2hcHgDqQgbR1YMWgvHZNJ+NyJshVVZzL/j3zjlnnb7eNj+9I7LhzB79JFpb1kfLzqlnHtOh8sb8vkdHjSne12vcQoztJ0pnMmGU7TOBfT0N75PeHVmM7iyrcDrGLBxfiUKwLFR3K9lOxOUAU8hVpcChS7TOQ1O4t4rizfhpj15D0Rz1TnGxE7rXljxB5PindvqO9xskegnmAJ3+Lo7HfSJ9CSA1R4AGItyUeJ1M5+EN8vjSX8HR/uOdAnYI0LIikttOJoWkxfN8h+iqId3HjS7PqTsryyuXvJ+NRQQwWgjhL3MyaKng1REeCFvLT7c3C6nWILUImnkQJ1XdIwShOVPGQnA7pKak5Ek+3lMfvKgHq3mJxwG21d4LJb56tiTohNPBi5/hoFS1fjv/I/4fKSGAxqdtCE6Vp9eebpbF/QYv86fmoIdmibCQz16AKm1QPfvsYaouQtro3AMU2ySe1YiymTpEFITZM6NZUMBcW15VAOVnbbn/HnHGJUaZoUpOQrdpR+o1TV4tGC+IKSPorrq0S3nemja3t1EGrIiehAuQtw5t9Kp08u9fv/lLQLM/8lJznw1vGGqdUiNXmWIhLuS45HkHs5NmvHv/gvAAD//1f3gz4=" } diff --git a/metricbeat/module/zookeeper/server/_meta/fields.yml b/metricbeat/module/zookeeper/server/_meta/fields.yml index 2e691a459b7..90647a25609 100644 --- a/metricbeat/module/zookeeper/server/_meta/fields.yml +++ b/metricbeat/module/zookeeper/server/_meta/fields.yml @@ -5,43 +5,43 @@ fields: - name: connections type: long - description: Connections established by the server + description: Number of clients currently connected to the server - name: latency type: group fields: - name: avg type: long - description: Average latency of the server + description: Average amount of time taken for the server to respond to a client request - name: max type: long - description: Max latency reached by the server + description: Maximum amount of time taken for the server to respond to a client request - name: min type: long - description: Minimum latency that has been reached by the server + description: Minimum amount of time taken for the server to respond to a client request - name: mode type: keyword - description: Server mode + description: Mode of the server. In an ensemble, this may either be leader or follower. Otherwise, it is standalone - name: node_count type: long description: Total number of nodes - name: outstanding type: long - description: Outstanding + description: Number of requests queued at the server. This exceeds zero when the server receives more requests than it is able to process - name: received type: long - description: Received requests to the server + description: Number of requests received by the server - name: sent type: long - description: Requests sent by the server + description: Number of requests sent by the server - name: version_date type: date - description: Date of the Zookeeper release in use + description: Date of the Zookeeper release currently in use - name: zxid type: keyword - description: Original value of the Zookeeper transaction ID + description: Unique value of the Zookeeper transaction ID. The zxid consists of an epoch and a counter. It is established by the leader and is used to determine the temporal ordering of changes - name: count type: long description: Total transactions of the leader in epoch - name: epoch type: long - description: Epoch value of the Zookeeper transaction ID + description: Epoch value of the Zookeeper transaction ID. An epoch signifies the period in which a server is a leader From 0acee7cf242b3eb3018206a352e555fc41f69a3e Mon Sep 17 00:00:00 2001 From: kaiyan-sheng Date: Fri, 1 Mar 2019 08:35:51 -0700 Subject: [PATCH 114/332] Add AWS s3_daily_storage metricset (#10940) * First patch on s3 daily storage metricset * Add s3 daily storage metricset and TestData * Change number_of_object to number_of_objects * Add timestamp check for s3_daily_storage * Change select.scanned to select_scanned --- CHANGELOG.next.asciidoc | 1 + metricbeat/docs/fields.asciidoc | 41 +++- metricbeat/docs/modules/aws.asciidoc | 14 +- .../modules/aws/s3_daily_storage.asciidoc | 23 ++ metricbeat/docs/modules_list.asciidoc | 3 +- x-pack/metricbeat/include/list.go | 1 + x-pack/metricbeat/metricbeat.reference.yml | 1 + x-pack/metricbeat/module/aws/_meta/config.yml | 1 + .../metricbeat/module/aws/_meta/docs.asciidoc | 9 +- x-pack/metricbeat/module/aws/ec2/ec2_test.go | 6 - x-pack/metricbeat/module/aws/fields.go | 2 +- .../aws/s3_daily_storage/_meta/data.json | 34 +++ .../aws/s3_daily_storage/_meta/docs.asciidoc | 10 + .../aws/s3_daily_storage/_meta/fields.yml | 18 ++ .../module/aws/s3_daily_storage/data.go | 21 ++ .../aws/s3_daily_storage/s3_daily_storage.go | 228 ++++++++++++++++++ .../s3_daily_storage_integration_test.go | 60 +++++ .../module/aws/s3_request/_meta/data.json | 3 +- .../module/aws/s3_request/_meta/fields.yml | 4 +- .../metricbeat/module/aws/s3_request/data.go | 4 +- .../module/aws/s3_request/s3_request.go | 1 + .../s3_request/s3_request_integration_test.go | 4 +- .../module/aws/sqs/sqs_integration_test.go | 2 +- x-pack/metricbeat/modules.d/aws.yml.disabled | 1 + 24 files changed, 468 insertions(+), 24 deletions(-) create mode 100644 metricbeat/docs/modules/aws/s3_daily_storage.asciidoc create mode 100644 x-pack/metricbeat/module/aws/s3_daily_storage/_meta/data.json create mode 100644 x-pack/metricbeat/module/aws/s3_daily_storage/_meta/docs.asciidoc create mode 100644 x-pack/metricbeat/module/aws/s3_daily_storage/_meta/fields.yml create mode 100644 x-pack/metricbeat/module/aws/s3_daily_storage/data.go create mode 100644 x-pack/metricbeat/module/aws/s3_daily_storage/s3_daily_storage.go create mode 100644 x-pack/metricbeat/module/aws/s3_daily_storage/s3_daily_storage_integration_test.go diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 500d7c8c54d..612d486d325 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -317,6 +317,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Add filters and pie chart for AWS EC2 dashboard. {pull}10596[10596] - Add AWS SQS metricset. {pull}10684[10684] {issue}10053[10053] - Add AWS s3_request metricset. {pull}10949[10949] {issue}10055[10055] +- Add s3_daily_storage metricset. {pull}10940[10940] {issue}10055[10055] *Packetbeat* diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index a5715bba1a6..a72b37affdf 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -1083,6 +1083,43 @@ type: integer The state of the instance (pending | running | shutting-down | terminated | stopping | stopped). +-- + +[float] +== s3_daily_storage fields + +`s3_daily_storage` contains the daily storage metrics that were scraped from AWS CloudWatch which contains monitoring metrics sent by AWS S3. + + + +*`aws.s3_daily_storage.bucket.name`*:: ++ +-- +type: keyword + +Name of a S3 bucket. + + +-- + +*`aws.s3_daily_storage.bucket.size.bytes`*:: ++ +-- +type: scaled_float + +The amount of data in bytes stored in a bucket. + + +-- + +*`aws.s3_daily_storage.number_of_objects`*:: ++ +-- +type: long + +The total number of objects stored in a bucket for all storage classes. + + -- [float] @@ -1172,7 +1209,7 @@ The number of Amazon S3 SELECT Object Content requests made for objects in an Am -- -*`aws.s3_request.requests.select.scanned.bytes`*:: +*`aws.s3_request.requests.select_scanned.bytes`*:: + -- type: scaled_float @@ -1182,7 +1219,7 @@ The number of bytes of data scanned with Amazon S3 SELECT Object Content request -- -*`aws.s3_request.requests.select.returned.bytes`*:: +*`aws.s3_request.requests.select_returned.bytes`*:: + -- type: scaled_float diff --git a/metricbeat/docs/modules/aws.asciidoc b/metricbeat/docs/modules/aws.asciidoc index 542c4f03792..242b5cc8c62 100644 --- a/metricbeat/docs/modules/aws.asciidoc +++ b/metricbeat/docs/modules/aws.asciidoc @@ -9,7 +9,7 @@ This module periodically fetches monitoring metrics from AWS Cloudwatch using https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html[GetMetricData API] for running EC2 instances. Note: extra AWS charges on GetMetricData API requests will be generated by this module. -The default metricsets are `ec2`, `sqs` and `s3_request`. +The default metricsets are `ec2`, `sqs`, `s3_request` and `s3_daily_storage`. [float] === Module-specific configuration notes @@ -72,8 +72,11 @@ image::./images/metricbeat-aws-ec2-overview.png[] Cloudwatch metrics for Amazon SQS queues are automatically collected and pushed to CloudWatch every 5 minutes, the `period` for `sqs` metricset is recommended to be `300s` or multiples of `300s`. -=== s3_request metricset -Request metrics are available at 1-minute intervals with additional charges. The s3_request metricset will give more +=== s3_request and s3_daily_storage metricset +Daily storage metrics for S3 buckets are reported once per day with no additional cost. Since they are daily metrics, +`period` for `s3_daily_storage` metricset is recommended to be `86400s` or multiples of `86400s`. +Request metrics are available +at 1-minute intervals with additional charges. The s3_request metricset will give more granular data to track S3 bucket usage. The `period` for `s3_request` metricset can be set to `60s` or multiples of `60s`. But because of the extra charges for querying these metrics, the `period` is recommended to set to `86400s`. The user can always adjust this to the granularity they want. Request metrics are not enabled by default for S3 buckets. Please see @@ -104,6 +107,7 @@ metricbeat.modules: period: 86400s metricsets: - "s3_request" + - "s3_daily_storage" access_key_id: '${AWS_ACCESS_KEY_ID:""}' secret_access_key: '${AWS_SECRET_ACCESS_KEY:""}' session_token: '${AWS_SESSION_TOKEN:""}' @@ -117,12 +121,16 @@ The following metricsets are available: * <> +* <> + * <> * <> include::aws/ec2.asciidoc[] +include::aws/s3_daily_storage.asciidoc[] + include::aws/s3_request.asciidoc[] include::aws/sqs.asciidoc[] diff --git a/metricbeat/docs/modules/aws/s3_daily_storage.asciidoc b/metricbeat/docs/modules/aws/s3_daily_storage.asciidoc new file mode 100644 index 00000000000..d2a730cd656 --- /dev/null +++ b/metricbeat/docs/modules/aws/s3_daily_storage.asciidoc @@ -0,0 +1,23 @@ +//// +This file is generated! See scripts/docs_collector.py +//// + +[[metricbeat-metricset-aws-s3_daily_storage]] +=== aws s3_daily_storage metricset + +beta[] + +include::../../../../x-pack/metricbeat/module/aws/s3_daily_storage/_meta/docs.asciidoc[] + + +==== Fields + +For a description of each field in the metricset, see the +<> section. + +Here is an example document generated by this metricset: + +[source,json] +---- +include::../../../../x-pack/metricbeat/module/aws/s3_daily_storage/_meta/data.json[] +---- diff --git a/metricbeat/docs/modules_list.asciidoc b/metricbeat/docs/modules_list.asciidoc index 485cab8fb1f..11108798182 100644 --- a/metricbeat/docs/modules_list.asciidoc +++ b/metricbeat/docs/modules_list.asciidoc @@ -10,7 +10,8 @@ This file is generated! See scripts/docs_collector.py |<> |image:./images/icon-yes.png[Prebuilt dashboards are available] | .1+| .1+| |<> |<> |image:./images/icon-yes.png[Prebuilt dashboards are available] | -.3+| .3+| |<> +.4+| .4+| |<> +|<> beta[] |<> beta[] |<> beta[] |<> |image:./images/icon-no.png[No prebuilt dashboards] | diff --git a/x-pack/metricbeat/include/list.go b/x-pack/metricbeat/include/list.go index c20490fb53b..761052d0df7 100644 --- a/x-pack/metricbeat/include/list.go +++ b/x-pack/metricbeat/include/list.go @@ -10,6 +10,7 @@ import ( // Import packages that need to register themselves. _ "github.com/elastic/beats/x-pack/metricbeat/module/aws" _ "github.com/elastic/beats/x-pack/metricbeat/module/aws/ec2" + _ "github.com/elastic/beats/x-pack/metricbeat/module/aws/s3_daily_storage" _ "github.com/elastic/beats/x-pack/metricbeat/module/aws/s3_request" _ "github.com/elastic/beats/x-pack/metricbeat/module/aws/sqs" _ "github.com/elastic/beats/x-pack/metricbeat/module/mssql" diff --git a/x-pack/metricbeat/metricbeat.reference.yml b/x-pack/metricbeat/metricbeat.reference.yml index 828b34b47d9..37dff29caae 100644 --- a/x-pack/metricbeat/metricbeat.reference.yml +++ b/x-pack/metricbeat/metricbeat.reference.yml @@ -161,6 +161,7 @@ metricbeat.modules: period: 86400s metricsets: - "s3_request" + - "s3_daily_storage" access_key_id: '${AWS_ACCESS_KEY_ID:""}' secret_access_key: '${AWS_SECRET_ACCESS_KEY:""}' session_token: '${AWS_SESSION_TOKEN:""}' diff --git a/x-pack/metricbeat/module/aws/_meta/config.yml b/x-pack/metricbeat/module/aws/_meta/config.yml index 3561b58b11f..18a720f84fd 100644 --- a/x-pack/metricbeat/module/aws/_meta/config.yml +++ b/x-pack/metricbeat/module/aws/_meta/config.yml @@ -11,6 +11,7 @@ period: 86400s metricsets: - "s3_request" + - "s3_daily_storage" access_key_id: '${AWS_ACCESS_KEY_ID:""}' secret_access_key: '${AWS_SECRET_ACCESS_KEY:""}' session_token: '${AWS_SESSION_TOKEN:""}' diff --git a/x-pack/metricbeat/module/aws/_meta/docs.asciidoc b/x-pack/metricbeat/module/aws/_meta/docs.asciidoc index 5b5ae11018f..8a864df0669 100644 --- a/x-pack/metricbeat/module/aws/_meta/docs.asciidoc +++ b/x-pack/metricbeat/module/aws/_meta/docs.asciidoc @@ -2,7 +2,7 @@ This module periodically fetches monitoring metrics from AWS Cloudwatch using https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html[GetMetricData API] for running EC2 instances. Note: extra AWS charges on GetMetricData API requests will be generated by this module. -The default metricsets are `ec2`, `sqs` and `s3_request`. +The default metricsets are `ec2`, `sqs`, `s3_request` and `s3_daily_storage`. [float] === Module-specific configuration notes @@ -65,8 +65,11 @@ image::./images/metricbeat-aws-ec2-overview.png[] Cloudwatch metrics for Amazon SQS queues are automatically collected and pushed to CloudWatch every 5 minutes, the `period` for `sqs` metricset is recommended to be `300s` or multiples of `300s`. -=== s3_request metricset -Request metrics are available at 1-minute intervals with additional charges. The s3_request metricset will give more +=== s3_request and s3_daily_storage metricset +Daily storage metrics for S3 buckets are reported once per day with no additional cost. Since they are daily metrics, +`period` for `s3_daily_storage` metricset is recommended to be `86400s` or multiples of `86400s`. +Request metrics are available +at 1-minute intervals with additional charges. The s3_request metricset will give more granular data to track S3 bucket usage. The `period` for `s3_request` metricset can be set to `60s` or multiples of `60s`. But because of the extra charges for querying these metrics, the `period` is recommended to set to `86400s`. The user can always adjust this to the granularity they want. Request metrics are not enabled by default for S3 buckets. Please see diff --git a/x-pack/metricbeat/module/aws/ec2/ec2_test.go b/x-pack/metricbeat/module/aws/ec2/ec2_test.go index caafbc01201..9e670c76d8d 100644 --- a/x-pack/metricbeat/module/aws/ec2/ec2_test.go +++ b/x-pack/metricbeat/module/aws/ec2/ec2_test.go @@ -11,7 +11,6 @@ import ( awssdk "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/cloudwatch" - "github.com/aws/aws-sdk-go-v2/service/cloudwatch/cloudwatchiface" "github.com/aws/aws-sdk-go-v2/service/ec2" "github.com/aws/aws-sdk-go-v2/service/ec2/ec2iface" "github.com/stretchr/testify/assert" @@ -27,11 +26,6 @@ type MockEC2Client struct { ec2iface.EC2API } -// MockCloudWatchClient struct is used for unit tests. -type MockCloudWatchClient struct { - cloudwatchiface.CloudWatchAPI -} - var ( regionName = "us-west-1" instanceID = "i-123" diff --git a/x-pack/metricbeat/module/aws/fields.go b/x-pack/metricbeat/module/aws/fields.go index f65009a75f8..c5b0b471c5f 100644 --- a/x-pack/metricbeat/module/aws/fields.go +++ b/x-pack/metricbeat/module/aws/fields.go @@ -19,5 +19,5 @@ func init() { // AssetAws returns asset data. // This is the base64 encoded gzipped contents of module/aws. func AssetAws() string { - return "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" + return "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" } diff --git a/x-pack/metricbeat/module/aws/s3_daily_storage/_meta/data.json b/x-pack/metricbeat/module/aws/s3_daily_storage/_meta/data.json new file mode 100644 index 00000000000..0cdfffa3aab --- /dev/null +++ b/x-pack/metricbeat/module/aws/s3_daily_storage/_meta/data.json @@ -0,0 +1,34 @@ +{ + "@timestamp": "2017-10-12T08:05:34.853Z", + "agent": { + "hostname": "host.example.com", + "name": "host.example.com" + }, + "aws": { + "s3_daily_storage": { + "bucket": { + "name": "test-s3-ks", + "size": { + "bytes": 1679631 + } + }, + "number_of_objects": 3 + } + }, + "cloud": { + "provider": "aws", + "region": "ap-southeast-1" + }, + "event": { + "dataset": "aws.s3_daily_storage", + "duration": 115000, + "module": "aws" + }, + "metricset": { + "name": "s3_daily_storage" + }, + "service": { + "name": "s3_daily_storage", + "type": "s3_daily_storage" + } +} \ No newline at end of file diff --git a/x-pack/metricbeat/module/aws/s3_daily_storage/_meta/docs.asciidoc b/x-pack/metricbeat/module/aws/s3_daily_storage/_meta/docs.asciidoc new file mode 100644 index 00000000000..fde92cc0964 --- /dev/null +++ b/x-pack/metricbeat/module/aws/s3_daily_storage/_meta/docs.asciidoc @@ -0,0 +1,10 @@ +The s3_daily_storage metricset of aws module allows you to monitor your AWS S3 buckets. `s3_daily_storage` metricset +fetches Cloudwatch daily storage metrics for each S3 bucket from +https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html[S3 CloudWatch Daily Storage Metrics for Buckets]. + + === AWS Permissions +Some specific AWS permissions are required for IAM user to collect AWS s3_daily_storage metrics. +---- +ec2:DescribeRegions +cloudwatch:GetMetricData +---- diff --git a/x-pack/metricbeat/module/aws/s3_daily_storage/_meta/fields.yml b/x-pack/metricbeat/module/aws/s3_daily_storage/_meta/fields.yml new file mode 100644 index 00000000000..2678c1831bf --- /dev/null +++ b/x-pack/metricbeat/module/aws/s3_daily_storage/_meta/fields.yml @@ -0,0 +1,18 @@ +- name: s3_daily_storage + type: group + description: > + `s3_daily_storage` contains the daily storage metrics that were scraped from AWS CloudWatch which contains monitoring metrics sent by AWS S3. + release: beta + fields: + - name: bucket.name + type: keyword + description: > + Name of a S3 bucket. + - name: bucket.size.bytes + type: scaled_float + description: > + The amount of data in bytes stored in a bucket. + - name: number_of_objects + type: long + description: > + The total number of objects stored in a bucket for all storage classes. diff --git a/x-pack/metricbeat/module/aws/s3_daily_storage/data.go b/x-pack/metricbeat/module/aws/s3_daily_storage/data.go new file mode 100644 index 00000000000..8fc988e11a3 --- /dev/null +++ b/x-pack/metricbeat/module/aws/s3_daily_storage/data.go @@ -0,0 +1,21 @@ +// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one +// or more contributor license agreements. Licensed under the Elastic License; +// you may not use this file except in compliance with the Elastic License. + +package s3_daily_storage + +import ( + s "github.com/elastic/beats/libbeat/common/schema" + c "github.com/elastic/beats/libbeat/common/schema/mapstrstr" +) + +var ( + schemaMetricSetFields = s.Schema{ + "bucket": s.Object{ + "size": s.Object{ + "bytes": c.Float("BucketSizeBytes"), + }, + }, + "number_of_objects": c.Int("NumberOfObjects"), + } +) diff --git a/x-pack/metricbeat/module/aws/s3_daily_storage/s3_daily_storage.go b/x-pack/metricbeat/module/aws/s3_daily_storage/s3_daily_storage.go new file mode 100644 index 00000000000..7110018bbf0 --- /dev/null +++ b/x-pack/metricbeat/module/aws/s3_daily_storage/s3_daily_storage.go @@ -0,0 +1,228 @@ +// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one +// or more contributor license agreements. Licensed under the Elastic License; +// you may not use this file except in compliance with the Elastic License. + +package s3_daily_storage + +import ( + "fmt" + "strconv" + "strings" + + "github.com/aws/aws-sdk-go-v2/service/cloudwatch" + "github.com/pkg/errors" + + "github.com/elastic/beats/libbeat/common" + + "github.com/elastic/beats/libbeat/common/cfgwarn" + "github.com/elastic/beats/libbeat/logp" + "github.com/elastic/beats/metricbeat/mb" + "github.com/elastic/beats/x-pack/metricbeat/module/aws" +) + +var metricsetName = "s3_daily_storage" + +// init registers the MetricSet with the central registry as soon as the program +// starts. The New function will be called later to instantiate an instance of +// the MetricSet for each host defined in the module's configuration. After the +// MetricSet has been created then Fetch will begin to be called periodically. +func init() { + mb.Registry.MustAddMetricSet(aws.ModuleName, metricsetName, New, + mb.DefaultMetricSet(), + ) +} + +// MetricSet holds any configuration or state information. It must implement +// the mb.MetricSet interface. And this is best achieved by embedding +// mb.BaseMetricSet because it implements all of the required mb.MetricSet +// interface methods except for Fetch. +type MetricSet struct { + *aws.MetricSet + logger *logp.Logger +} + +// New creates a new instance of the MetricSet. New is responsible for unpacking +// any MetricSet specific configuration options if there are any. +func New(base mb.BaseMetricSet) (mb.MetricSet, error) { + cfgwarn.Beta("The aws s3_daily_storage metricset is beta.") + s3Logger := logp.NewLogger(aws.ModuleName) + + moduleConfig := aws.Config{} + if err := base.Module().UnpackConfig(&moduleConfig); err != nil { + return nil, err + } + + if moduleConfig.Period == "" { + err := errors.New("period is not set in AWS module config") + s3Logger.Error(err) + } + + metricSet, err := aws.NewMetricSet(base) + if err != nil { + return nil, errors.Wrap(err, "error creating aws metricset") + } + + // Check if period is set to be multiple of 86400s + remainder := metricSet.PeriodInSec % 86400 + if remainder != 0 { + err := errors.New("period needs to be set to 86400s (or a multiple of 86400s). " + + "To avoid data missing or extra costs, please make sure period is set correctly " + + "in config.yml") + s3Logger.Info(err) + } + + return &MetricSet{ + MetricSet: metricSet, + logger: s3Logger, + }, nil +} + +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(report mb.ReporterV2) { + namespace := "AWS/S3" + // Get startTime and endTime + startTime, endTime, err := aws.GetStartTimeEndTime(m.DurationString) + if err != nil { + err = errors.Wrap(err, "Error ParseDuration") + m.logger.Error(err.Error()) + report.Error(err) + return + } + + // GetMetricData for AWS S3 from Cloudwatch + for _, regionName := range m.MetricSet.RegionsList { + m.MetricSet.AwsConfig.Region = regionName + svcCloudwatch := cloudwatch.New(*m.MetricSet.AwsConfig) + listMetricsOutputs, err := aws.GetListMetricsOutput(namespace, regionName, svcCloudwatch) + if err != nil { + err = errors.Wrap(err, "GetListMetricsOutput failed, skipping region "+regionName) + m.logger.Error(err.Error()) + report.Error(err) + continue + } + + if listMetricsOutputs == nil || len(listMetricsOutputs) == 0 { + continue + } + + metricDataQueries := constructMetricQueries(listMetricsOutputs, m.PeriodInSec) + // Use metricDataQueries to make GetMetricData API calls + metricDataOutputs, err := aws.GetMetricDataResults(metricDataQueries, svcCloudwatch, startTime, endTime) + if err != nil { + err = errors.Wrap(err, "GetMetricDataResults failed, skipping region "+regionName) + m.logger.Error(err) + report.Error(err) + continue + } + + // Create Cloudwatch Events for s3_daily_storage + bucketNames := getBucketNames(listMetricsOutputs) + for _, bucketName := range bucketNames { + event, err := createCloudWatchEvents(metricDataOutputs, regionName, bucketName) + if err != nil { + err = errors.Wrap(err, "createCloudWatchEvents failed") + m.logger.Error(err) + event.Error = err + report.Event(event) + continue + } + report.Event(event) + } + } +} + +func getBucketNames(listMetricsOutputs []cloudwatch.Metric) (bucketNames []string) { + for _, output := range listMetricsOutputs { + for _, dim := range output.Dimensions { + if *dim.Name == "BucketName" { + if aws.StringInSlice(*dim.Value, bucketNames) { + continue + } + bucketNames = append(bucketNames, *dim.Value) + } + } + } + return +} + +func constructMetricQueries(listMetricsOutputs []cloudwatch.Metric, periodInSec int) []cloudwatch.MetricDataQuery { + metricDataQueries := []cloudwatch.MetricDataQuery{} + metricDataQueryEmpty := cloudwatch.MetricDataQuery{} + metricNames := []string{"NumberOfObjects", "BucketSizeBytes"} + for i, listMetric := range listMetricsOutputs { + if !aws.StringInSlice(*listMetric.MetricName, metricNames) { + continue + } + + metricDataQuery := createMetricDataQuery(listMetric, periodInSec, i) + if metricDataQuery == metricDataQueryEmpty { + continue + } + metricDataQueries = append(metricDataQueries, metricDataQuery) + } + return metricDataQueries +} + +func createMetricDataQuery(metric cloudwatch.Metric, periodInSec int, index int) (metricDataQuery cloudwatch.MetricDataQuery) { + statistic := "Average" + period := int64(periodInSec) + id := "s3d" + strconv.Itoa(index) + metricDims := metric.Dimensions + bucketName := "" + storageType := "" + for _, dim := range metricDims { + if *dim.Name == "BucketName" { + bucketName = *dim.Value + } else if *dim.Name == "StorageType" { + storageType = *dim.Value + } + } + metricName := *metric.MetricName + label := bucketName + " " + storageType + " " + metricName + + metricDataQuery = cloudwatch.MetricDataQuery{ + Id: &id, + MetricStat: &cloudwatch.MetricStat{ + Period: &period, + Stat: &statistic, + Metric: &metric, + }, + Label: &label, + } + return +} + +func createCloudWatchEvents(outputs []cloudwatch.MetricDataResult, regionName string, bucketName string) (event mb.Event, err error) { + event.Service = metricsetName + event.RootFields = common.MapStr{} + // Cloud fields in ECS + event.RootFields.Put("service.name", metricsetName) + event.RootFields.Put("cloud.region", regionName) + event.RootFields.Put("cloud.provider", "aws") + + // AWS s3_daily_storage metrics + mapOfMetricSetFieldResults := make(map[string]interface{}) + // Find a timestamp for all metrics in output + if len(outputs) > 0 && len(outputs[0].Timestamps) > 0 { + timestamp := outputs[0].Timestamps[0] + for _, output := range outputs { + labels := strings.Split(*output.Label, " ") + // check timestamp to make sure metrics come from the same timestamp + if len(labels) == 3 && labels[0] == bucketName && len(output.Values) > 0 && output.Timestamps[0] == timestamp { + mapOfMetricSetFieldResults[labels[2]] = fmt.Sprint(output.Values[0]) + } + } + } + + resultMetricSetFields, err := aws.EventMapping(mapOfMetricSetFieldResults, schemaMetricSetFields) + if err != nil { + err = errors.Wrap(err, "Error trying to apply schema schemaMetricSetFields in AWS s3_daily_storage metricbeat module.") + return + } + + resultMetricSetFields.Put("bucket.name", bucketName) + event.MetricSetFields = resultMetricSetFields + return +} diff --git a/x-pack/metricbeat/module/aws/s3_daily_storage/s3_daily_storage_integration_test.go b/x-pack/metricbeat/module/aws/s3_daily_storage/s3_daily_storage_integration_test.go new file mode 100644 index 00000000000..56408a14418 --- /dev/null +++ b/x-pack/metricbeat/module/aws/s3_daily_storage/s3_daily_storage_integration_test.go @@ -0,0 +1,60 @@ +// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one +// or more contributor license agreements. Licensed under the Elastic License; +// you may not use this file except in compliance with the Elastic License. + +// +build integration + +package s3_daily_storage + +import ( + "testing" + + "github.com/stretchr/testify/assert" + + mbtest "github.com/elastic/beats/metricbeat/mb/testing" + "github.com/elastic/beats/x-pack/metricbeat/module/aws/mtest" +) + +func TestFetch(t *testing.T) { + config, info := mtest.GetConfigForTest("s3_daily_storage", "86400s") + if info != "" { + t.Skip("Skipping TestFetch: " + info) + } + + s3DailyMetricSet := mbtest.NewReportingMetricSetV2(t, config) + events, err := mbtest.ReportingFetchV2(s3DailyMetricSet) + if err != nil { + t.Skip("Skipping TestFetch: failed to make api calls. Please check $AWS_ACCESS_KEY_ID, " + + "$AWS_SECRET_ACCESS_KEY and $AWS_SESSION_TOKEN in config.yml") + } + + assert.Empty(t, err) + if !assert.NotEmpty(t, events) { + t.FailNow() + } + t.Logf("Module: %s Metricset: %s", s3DailyMetricSet.Module().Name(), s3DailyMetricSet.Name()) + + for _, event := range events { + // RootField + mtest.CheckEventField("service.name", "string", event, t) + mtest.CheckEventField("cloud.region", "string", event, t) + + // MetricSetField + mtest.CheckEventField("bucket.name", "string", event, t) + mtest.CheckEventField("bucket.size.bytes", "float", event, t) + mtest.CheckEventField("number_of_object", "int", event, t) + } +} + +func TestData(t *testing.T) { + config, info := mtest.GetConfigForTest("s3_daily_storage", "86400s") + if info != "" { + t.Skip("Skipping TestData: " + info) + } + + ec2MetricSet := mbtest.NewReportingMetricSetV2(t, config) + errs := mbtest.WriteEventsReporterV2(ec2MetricSet, t, "/") + if errs != nil { + t.Fatal("write", errs) + } +} diff --git a/x-pack/metricbeat/module/aws/s3_request/_meta/data.json b/x-pack/metricbeat/module/aws/s3_request/_meta/data.json index 4814b96c7db..22306231c82 100644 --- a/x-pack/metricbeat/module/aws/s3_request/_meta/data.json +++ b/x-pack/metricbeat/module/aws/s3_request/_meta/data.json @@ -29,6 +29,7 @@ } }, "cloud": { + "provider": "aws", "region": "ap-southeast-1" }, "event": { @@ -43,4 +44,4 @@ "name": "s3_request", "type": "s3_request" } -} \ No newline at end of file +} diff --git a/x-pack/metricbeat/module/aws/s3_request/_meta/fields.yml b/x-pack/metricbeat/module/aws/s3_request/_meta/fields.yml index a5469353f96..45ec464f8a3 100644 --- a/x-pack/metricbeat/module/aws/s3_request/_meta/fields.yml +++ b/x-pack/metricbeat/module/aws/s3_request/_meta/fields.yml @@ -36,11 +36,11 @@ type: long description: > The number of Amazon S3 SELECT Object Content requests made for objects in an Amazon S3 bucket. - - name: requests.select.scanned.bytes + - name: requests.select_scanned.bytes type: scaled_float description: > The number of bytes of data scanned with Amazon S3 SELECT Object Content requests in an Amazon S3 bucket. - - name: requests.select.returned.bytes + - name: requests.select_returned.bytes type: scaled_float description: > The number of bytes of data returned with Amazon S3 SELECT Object Content requests in an Amazon S3 bucket. diff --git a/x-pack/metricbeat/module/aws/s3_request/data.go b/x-pack/metricbeat/module/aws/s3_request/data.go index 06e6f4cb290..0751ef522f1 100644 --- a/x-pack/metricbeat/module/aws/s3_request/data.go +++ b/x-pack/metricbeat/module/aws/s3_request/data.go @@ -19,8 +19,8 @@ var ( "head": c.Int("HeadRequests"), "post": c.Int("PostRequests"), "select": c.Int("SelectRequests"), - "select.scanned.bytes": c.Float("SelectScannedBytes"), - "select.returned.bytes": c.Float("SelectReturnedBytes"), + "select_scanned.bytes": c.Float("SelectScannedBytes"), + "select_returned.bytes": c.Float("SelectReturnedBytes"), "list": c.Int("ListRequests"), }, "downloaded": s.Object{ diff --git a/x-pack/metricbeat/module/aws/s3_request/s3_request.go b/x-pack/metricbeat/module/aws/s3_request/s3_request.go index eb81ba06b34..67f2cd32425 100644 --- a/x-pack/metricbeat/module/aws/s3_request/s3_request.go +++ b/x-pack/metricbeat/module/aws/s3_request/s3_request.go @@ -201,6 +201,7 @@ func createS3RequestEvents(outputs []cloudwatch.MetricDataResult, regionName str // Cloud fields in ECS event.RootFields.Put("service.name", metricsetName) event.RootFields.Put("cloud.region", regionName) + event.RootFields.Put("cloud.provider", "aws") // AWS s3_request metrics mapOfMetricSetFieldResults := make(map[string]interface{}) diff --git a/x-pack/metricbeat/module/aws/s3_request/s3_request_integration_test.go b/x-pack/metricbeat/module/aws/s3_request/s3_request_integration_test.go index 8a3d369216e..e731e3fb4b0 100644 --- a/x-pack/metricbeat/module/aws/s3_request/s3_request_integration_test.go +++ b/x-pack/metricbeat/module/aws/s3_request/s3_request_integration_test.go @@ -48,8 +48,8 @@ func TestFetch(t *testing.T) { mtest.CheckEventField("requests.head", "int", event, t) mtest.CheckEventField("requests.post", "int", event, t) mtest.CheckEventField("select.requests", "int", event, t) - mtest.CheckEventField("select.scanned.bytes", "float", event, t) - mtest.CheckEventField("select.returned.bytes", "float", event, t) + mtest.CheckEventField("select_scanned.bytes", "float", event, t) + mtest.CheckEventField("select_returned.bytes", "float", event, t) mtest.CheckEventField("requests.list", "int", event, t) mtest.CheckEventField("downloaded.bytes", "float", event, t) mtest.CheckEventField("uploaded.bytes", "float", event, t) diff --git a/x-pack/metricbeat/module/aws/sqs/sqs_integration_test.go b/x-pack/metricbeat/module/aws/sqs/sqs_integration_test.go index 65497b7fc18..c3d758c82d5 100644 --- a/x-pack/metricbeat/module/aws/sqs/sqs_integration_test.go +++ b/x-pack/metricbeat/module/aws/sqs/sqs_integration_test.go @@ -2,7 +2,7 @@ // or more contributor license agreements. Licensed under the Elastic License; // you may not use this file except in compliance with the Elastic License. -// +build !integration +// +build integration package sqs diff --git a/x-pack/metricbeat/modules.d/aws.yml.disabled b/x-pack/metricbeat/modules.d/aws.yml.disabled index 3561b58b11f..18a720f84fd 100644 --- a/x-pack/metricbeat/modules.d/aws.yml.disabled +++ b/x-pack/metricbeat/modules.d/aws.yml.disabled @@ -11,6 +11,7 @@ period: 86400s metricsets: - "s3_request" + - "s3_daily_storage" access_key_id: '${AWS_ACCESS_KEY_ID:""}' secret_access_key: '${AWS_SECRET_ACCESS_KEY:""}' session_token: '${AWS_SESSION_TOKEN:""}' From 0df955f78b1f79f10630f60d380778f9db2cab2c Mon Sep 17 00:00:00 2001 From: kaiyan-sheng Date: Fri, 1 Mar 2019 09:11:46 -0700 Subject: [PATCH 115/332] Document autodiscover dedot option (#10938) * Document autodiscover dedot option --- filebeat/docs/autodiscover-docker-config.asciidoc | 3 +++ metricbeat/docs/autodiscover-docker-config.asciidoc | 3 +++ 2 files changed, 6 insertions(+) diff --git a/filebeat/docs/autodiscover-docker-config.asciidoc b/filebeat/docs/autodiscover-docker-config.asciidoc index 19be3dfe7b3..c32875d9f71 100644 --- a/filebeat/docs/autodiscover-docker-config.asciidoc +++ b/filebeat/docs/autodiscover-docker-config.asciidoc @@ -5,6 +5,7 @@ Filebeat supports templates for inputs and modules. filebeat.autodiscover: providers: - type: docker + labels.dedot: true templates: - condition: contains: @@ -17,6 +18,7 @@ filebeat.autodiscover: ------------------------------------------------------------------------------------- This configuration launches a `docker` logs input for all containers running an image with `redis` in the name. +`labels.dedot` defaults to be `true` for docker autodiscover, which means dots in docker labels are replaced with '_' by default. If you are using modules, you can override the default input and use the docker input instead. @@ -25,6 +27,7 @@ If you are using modules, you can override the default input and use the docker filebeat.autodiscover: providers: - type: docker + labels.dedot: true templates: - condition: contains: diff --git a/metricbeat/docs/autodiscover-docker-config.asciidoc b/metricbeat/docs/autodiscover-docker-config.asciidoc index e013b8267ff..79dce08e7a6 100644 --- a/metricbeat/docs/autodiscover-docker-config.asciidoc +++ b/metricbeat/docs/autodiscover-docker-config.asciidoc @@ -5,6 +5,7 @@ Metricbeat supports templates for modules: metricbeat.autodiscover: providers: - type: docker + labels.dedot: true templates: - condition: contains: @@ -16,3 +17,5 @@ metricbeat.autodiscover: ------------------------------------------------------------------------------------- This configuration launches a `redis` module for all containers running an image with `redis` in the name. +`labels.dedot` defaults to be `true` for docker autodiscover, which means dots in docker labels are replaced with '_' by default. + From 775568dd78e914731bcc1872582126c16106f791 Mon Sep 17 00:00:00 2001 From: Jaime Soriano Pastor Date: Fri, 1 Mar 2019 18:09:57 +0100 Subject: [PATCH 116/332] Don't add the modifier for service name if it is not configured (#10832) Check if service.name is configured, and if not, don't add the modifier so no additional overhead is added for all events. --- metricbeat/mb/module/options.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/metricbeat/mb/module/options.go b/metricbeat/mb/module/options.go index e5d07667491..2d25e363b3c 100644 --- a/metricbeat/mb/module/options.go +++ b/metricbeat/mb/module/options.go @@ -64,14 +64,17 @@ func WithMetricSetInfo() Option { // given to the `service.name` setting in the module configuration. func WithServiceName() Option { return func(w *Wrapper) { + if w.Module == nil { + return + } + serviceName := w.Module.Config().ServiceName + if serviceName == "" { + return + } modifier := func(_, _ string, event *mb.Event) { if event == nil { return } - serviceName := w.Module.Config().ServiceName - if serviceName == "" { - return - } if event.RootFields == nil { event.RootFields = common.MapStr{} } else if current, err := event.RootFields.GetValue("service.name"); err == nil && current != "" { From 75e6a3817cb876d6e08579b0c19c1ba0b81deeba Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Fri, 1 Mar 2019 09:12:46 -0800 Subject: [PATCH 117/332] Remove simplistic docker command examples (#10741) --- filebeat/docs/getting-started.asciidoc | 5 +---- packetbeat/docs/gettingstarted.asciidoc | 5 +---- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/filebeat/docs/getting-started.asciidoc b/filebeat/docs/getting-started.asciidoc index bde8566ed34..fce0bb6f1ff 100644 --- a/filebeat/docs/getting-started.asciidoc +++ b/filebeat/docs/getting-started.asciidoc @@ -231,10 +231,7 @@ sudo service {beatname_lc} start *docker:* -["source", "shell", subs="attributes"] ----------------------------------------------------------------------- -docker run {dockerimage} ----------------------------------------------------------------------- +See <>. *mac and linux:* diff --git a/packetbeat/docs/gettingstarted.asciidoc b/packetbeat/docs/gettingstarted.asciidoc index 0f3db33a9b0..4d30833596b 100644 --- a/packetbeat/docs/gettingstarted.asciidoc +++ b/packetbeat/docs/gettingstarted.asciidoc @@ -270,10 +270,7 @@ sudo service {beatname_lc} start *docker:* -["source","sh",subs="attributes"] ----------------------------------------------------------------------- -docker run {dockerimage} ----------------------------------------------------------------------- +See <>. *mac and linux:* From 2e2b2a9e893bc33d476eef9e1b6f45d3b9cca3e8 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Fri, 1 Mar 2019 09:16:57 -0800 Subject: [PATCH 118/332] Reconcile duplicated attributes (#10956) * Replace libbeat with beats-ref * Replace metricbeat with metricbeat-ref * Replace filebeat with filebeat-ref * Replace auditbeat with auditbeat-ref * Replace logstashdoc with logstash-ref * Replace elasticsearch with ref * Replace elasticsearch-plugins with plugins * Replace securitydoc with stack-ov * Replace monitoringdoc with stack-ov * Remove unused attributes * Replace doc-branch with branch --- auditbeat/docs/configuring-howto.asciidoc | 2 +- auditbeat/docs/getting-started.asciidoc | 2 +- auditbeat/docs/reload-configuration.asciidoc | 2 +- auditbeat/docs/running-on-kubernetes.asciidoc | 2 +- docs/devguide/create-metricset.asciidoc | 2 +- .../creating-beat-from-metricbeat.asciidoc | 4 ++-- docs/devguide/modules-dev-guide.asciidoc | 12 +++++------ docs/devguide/newbeat.asciidoc | 6 +++--- filebeat/docs/configuring-howto.asciidoc | 2 +- filebeat/docs/faq.asciidoc | 2 +- filebeat/docs/getting-started.asciidoc | 4 ++-- filebeat/docs/include/run-command.asciidoc | 2 +- filebeat/docs/migration.asciidoc | 2 +- filebeat/docs/modules-overview.asciidoc | 2 +- filebeat/docs/modules/iptables.asciidoc | 2 +- filebeat/docs/modules/logstash.asciidoc | 2 +- filebeat/docs/modules/netflow.asciidoc | 2 +- filebeat/docs/modules/suricata.asciidoc | 4 ++-- filebeat/docs/modules/zeek.asciidoc | 4 ++-- filebeat/docs/running-on-kubernetes.asciidoc | 2 +- filebeat/docs/upgrading.asciidoc | 4 ++-- filebeat/module/logstash/_meta/docs.asciidoc | 2 +- heartbeat/docs/configuring-howto.asciidoc | 2 +- heartbeat/docs/getting-started.asciidoc | 2 +- heartbeat/docs/overview.asciidoc | 2 +- journalbeat/docs/getting-started.asciidoc | 2 +- libbeat/docs/breaking.asciidoc | 4 ++-- libbeat/docs/command-reference.asciidoc | 2 +- libbeat/docs/https.asciidoc | 2 +- libbeat/docs/outputconfig.asciidoc | 2 +- libbeat/docs/regexp.asciidoc | 2 +- libbeat/docs/security/linux-seccomp.asciidoc | 2 +- libbeat/docs/security/securing-beats.asciidoc | 2 +- libbeat/docs/shared-beats-attributes.asciidoc | 21 +++---------------- libbeat/docs/shared-config-ingest.asciidoc | 4 ++-- libbeat/docs/shared-configuring.asciidoc | 2 +- libbeat/docs/shared-faq.asciidoc | 2 +- .../docs/shared-libbeat-description.asciidoc | 2 +- .../shared-note-file-permissions.asciidoc | 2 +- .../docs/shared-ssl-logstash-config.asciidoc | 4 ++-- libbeat/docs/shared-template-load.asciidoc | 2 +- libbeat/docs/step-test-config.asciidoc | 2 +- libbeat/docs/template-config.asciidoc | 6 +++--- metricbeat/docs/configuring-howto.asciidoc | 2 +- metricbeat/docs/gettingstarted.asciidoc | 2 +- .../docs/modules/elasticsearch.asciidoc | 2 +- metricbeat/docs/modules/kibana.asciidoc | 2 +- .../docs/running-on-kubernetes.asciidoc | 2 +- metricbeat/docs/upgrading.asciidoc | 4 ++-- .../module/elasticsearch/_meta/docs.asciidoc | 2 +- .../module/jolokia/jmx/_meta/docs.asciidoc | 2 +- metricbeat/module/kibana/_meta/docs.asciidoc | 2 +- packetbeat/docs/configuring-howto.asciidoc | 2 +- packetbeat/docs/gettingstarted.asciidoc | 2 +- packetbeat/docs/overview.asciidoc | 2 +- packetbeat/docs/upgrading.asciidoc | 4 ++-- winlogbeat/docs/configuring-howto.asciidoc | 2 +- winlogbeat/docs/getting-started.asciidoc | 2 +- winlogbeat/docs/upgrading.asciidoc | 4 ++-- .../module/iptables/_meta/docs.asciidoc | 2 +- .../module/netflow/_meta/docs.asciidoc | 2 +- .../module/suricata/_meta/docs.asciidoc | 4 ++-- .../filebeat/module/zeek/_meta/docs.asciidoc | 4 ++-- .../docs/getting-started.asciidoc | 2 +- 64 files changed, 88 insertions(+), 103 deletions(-) diff --git a/auditbeat/docs/configuring-howto.asciidoc b/auditbeat/docs/configuring-howto.asciidoc index 13e5ebda5e4..bd86c9566db 100644 --- a/auditbeat/docs/configuring-howto.asciidoc +++ b/auditbeat/docs/configuring-howto.asciidoc @@ -14,7 +14,7 @@ There's also a full example configuration file at options. For mac and win, look in the archive that you extracted. The {beatname_uc} configuration file uses http://yaml.org/[YAML] for its syntax. -See the {libbeat}/config-file-format.html[Config File Format] section of the +See the {beats-ref}/config-file-format.html[Config File Format] section of the _Beats Platform Reference_ for more about the structure of the config file. The following topics describe how to configure {beatname_uc}: diff --git a/auditbeat/docs/getting-started.asciidoc b/auditbeat/docs/getting-started.asciidoc index 4e035527453..04ee6a80586 100644 --- a/auditbeat/docs/getting-started.asciidoc +++ b/auditbeat/docs/getting-started.asciidoc @@ -238,7 +238,7 @@ sudo ./{beatname_lc} -e <1> To monitor system files, you'll be running {beatname_uc} as root, so you need to change ownership of the configuration file, or run {beatname_uc} with `--strict.perms=false` specified. See -{libbeat}/config-file-permissions.html[Config File Ownership and Permissions] +{beats-ref}/config-file-permissions.html[Config File Ownership and Permissions] in the _Beats Platform Reference_. If you see a warning about too many open files, you need to increase the diff --git a/auditbeat/docs/reload-configuration.asciidoc b/auditbeat/docs/reload-configuration.asciidoc index 4015a844f14..210d5f4c158 100644 --- a/auditbeat/docs/reload-configuration.asciidoc +++ b/auditbeat/docs/reload-configuration.asciidoc @@ -44,4 +44,4 @@ definitions. For example: NOTE: On systems with POSIX file permissions, all Beats configuration files are subject to ownership and file permission checks. If you encounter config loading -errors related to file ownership, see {libbeat}/config-file-permissions.html. +errors related to file ownership, see {beats-ref}/config-file-permissions.html. diff --git a/auditbeat/docs/running-on-kubernetes.asciidoc b/auditbeat/docs/running-on-kubernetes.asciidoc index aac11ec2c31..950487d41ff 100644 --- a/auditbeat/docs/running-on-kubernetes.asciidoc +++ b/auditbeat/docs/running-on-kubernetes.asciidoc @@ -25,7 +25,7 @@ To get the manifests just run: ["source", "sh", subs="attributes"] ------------------------------------------------ -curl -L -O https://raw.githubusercontent.com/elastic/beats/{doc-branch}/deploy/kubernetes/{beatname_lc}-kubernetes.yaml +curl -L -O https://raw.githubusercontent.com/elastic/beats/{branch}/deploy/kubernetes/{beatname_lc}-kubernetes.yaml ------------------------------------------------ [WARNING] diff --git a/docs/devguide/create-metricset.asciidoc b/docs/devguide/create-metricset.asciidoc index e39cd9f6366..26df4641167 100644 --- a/docs/devguide/create-metricset.asciidoc +++ b/docs/devguide/create-metricset.asciidoc @@ -272,7 +272,7 @@ NOTE: Make sure that you run `make collect` after updating the config file so that your changes are also applied to the global configuration file and the docs. For more details about the Metricbeat configuration file, see the topic about -{metricbeat}/configuration-metricbeat.html[Modules] in the Metricbeat +{metricbeat-ref}/configuration-metricbeat.html[Modules] in the Metricbeat documentation. diff --git a/docs/devguide/creating-beat-from-metricbeat.asciidoc b/docs/devguide/creating-beat-from-metricbeat.asciidoc index d1bbe34511c..77b55c48707 100644 --- a/docs/devguide/creating-beat-from-metricbeat.asciidoc +++ b/docs/devguide/creating-beat-from-metricbeat.asciidoc @@ -26,12 +26,12 @@ go get github.com/elastic/beats/metricbeat ---- This will clone the beats repository into `GOPATH`. By default `go get` fetches the master branch. To build your beat -on a specific version of libbeat, check out the specific branch ({doc-branch} in the example below): +on a specific version of libbeat, check out the specific branch ({branch} in the example below): ["source","sh",subs="attributes"] ---- cd ${GOPATH}/src/github.com/elastic/beats -git checkout {doc-branch} +git checkout {branch} ---- Note: If you have multiple go paths use `${GOPATH%%:*}`instead of `${GOPATH}`. diff --git a/docs/devguide/modules-dev-guide.asciidoc b/docs/devguide/modules-dev-guide.asciidoc index 0d8c9d7883d..ddb1932a403 100644 --- a/docs/devguide/modules-dev-guide.asciidoc +++ b/docs/devguide/modules-dev-guide.asciidoc @@ -274,7 +274,7 @@ used to construct the `paths` list for the input `paths` option. Any template files that you add to the `config/` folder need to generate a valid Filebeat input configuration in YAML format. The options accepted by the input configuration are documented in the -{filebeat}/configuration-filebeat-options.html[Filebeat Inputs] section of +{filebeat-ref}/configuration-filebeat-options.html[Filebeat Inputs] section of the Filebeat documentation. The template files use the templating language defined by the @@ -304,12 +304,12 @@ variables to dynamically switch between configurations. ==== ingest/*.json The `ingest/` folder contains Elasticsearch -{elasticsearch}/ingest.html[Ingest Node] pipeline configurations. The Ingest +{ref}/ingest.html[Ingest Node] pipeline configurations. The Ingest Node pipelines are responsible for parsing the log lines and doing other manipulations on the data. The files in this folder are JSON documents representing -{elasticsearch}/pipeline.html[pipeline definitions]. Just like with the `config/` +{ref}/pipeline.html[pipeline definitions]. Just like with the `config/` folder, you can define multiple pipelines, but a single one is loaded at runtime based on the information from `manifest.yml`. @@ -332,9 +332,9 @@ The generator creates a JSON object similar to this one: From here, you would typically add processors to the `processors` array to do the actual parsing. For details on how to use ingest node processors, see the -{elasticsearch}/ingest-processors.html[ingest node documentation]. In +{ref}/ingest-processors.html[ingest node documentation]. In particular, you will likely find the -{elasticsearch}/grok-processor.html[Grok processor] to be useful for parsing. +{ref}/grok-processor.html[Grok processor] to be useful for parsing. Here is an example for parsing the Nginx access logs. [source,json] @@ -412,7 +412,7 @@ ingest_pipeline: ---- While developing the pipeline definition, we recommend making use of the -{elasticsearch}/simulate-pipeline-api.html[Simulate Pipeline API] for testing +{ref}/simulate-pipeline-api.html[Simulate Pipeline API] for testing and quick iteration. By default Filebeat does not update Ingest pipelines if already loaded. If you diff --git a/docs/devguide/newbeat.asciidoc b/docs/devguide/newbeat.asciidoc index 1ae6edc19f2..78c568082cb 100644 --- a/docs/devguide/newbeat.asciidoc +++ b/docs/devguide/newbeat.asciidoc @@ -50,12 +50,12 @@ git clone https://github.com/elastic/beats ${GOPATH}/src/github.com/elastic/beat ---------------------------------------------------------------------- To build your beat -on a specific version of libbeat, check out the specific branch ({doc-branch} in the example below): +on a specific version of libbeat, check out the specific branch ({branch} in the example below): ["source","sh",subs="attributes"] ---- cd ${GOPATH}/src/github.com/elastic/beats -git checkout {doc-branch} +git checkout {branch} ---- NOTE: If you have multiple go paths, use `${GOPATH%%:*}` instead of `${GOPATH}`. @@ -495,4 +495,4 @@ func main() { === Sharing Your Beat with the Community When you're done with your new Beat, how about letting everyone know? Open -a pull request to add your link to the {libbeat}/community-beats.html[Community Beats] list. +a pull request to add your link to the {beats-ref}/community-beats.html[Community Beats] list. diff --git a/filebeat/docs/configuring-howto.asciidoc b/filebeat/docs/configuring-howto.asciidoc index ac6a70b3b94..e6dc0b1b7e7 100644 --- a/filebeat/docs/configuring-howto.asciidoc +++ b/filebeat/docs/configuring-howto.asciidoc @@ -14,7 +14,7 @@ There's also a full example configuration file at options. For mac and win, look in the archive that you extracted. The {beatname_uc} configuration file uses http://yaml.org/[YAML] for its syntax. -See the {libbeat}/config-file-format.html[Config File Format] section of the +See the {beats-ref}/config-file-format.html[Config File Format] section of the _Beats Platform Reference_ for more about the structure of the config file. include::../../libbeat/docs/shared-cm-tip.asciidoc[] diff --git a/filebeat/docs/faq.asciidoc b/filebeat/docs/faq.asciidoc index bf4867d075b..207fc5dad60 100644 --- a/filebeat/docs/faq.asciidoc +++ b/filebeat/docs/faq.asciidoc @@ -96,7 +96,7 @@ The index template might not be loaded correctly. See <>. If you have recently performed an operation that loads or parses custom, structured logs, you might need to refresh the index to make the fields available in Kibana. To refresh -the index, use the {elasticsearch}/indices-refresh.html[refresh API]. For example: +the index, use the {ref}/indices-refresh.html[refresh API]. For example: ["source","sh"] ---------------------------------------------------------------------- diff --git a/filebeat/docs/getting-started.asciidoc b/filebeat/docs/getting-started.asciidoc index fce0bb6f1ff..3336400cb6b 100644 --- a/filebeat/docs/getting-started.asciidoc +++ b/filebeat/docs/getting-started.asciidoc @@ -243,7 +243,7 @@ sudo ./filebeat -e <1> You'll be running Filebeat as root, so you need to change ownership of the configuration file, or run Filebeat with `--strict.perms=false` specified. See -{libbeat}/config-file-permissions.html[Config File Ownership and Permissions] +{beats-ref}/config-file-permissions.html[Config File Ownership and Permissions] in the _Beats Platform Reference_. *win:* @@ -276,7 +276,7 @@ To populate the example dashboards with data, you need to either <> or use Logstash to parse the data into the fields expected by the dashboards. If you are using Logstash, see the -{logstashdoc}/logstash-config-for-filebeat-modules.html[configuration examples] +{logstash-ref}/logstash-config-for-filebeat-modules.html[configuration examples] in the Logstash documentation for help parsing the log formats supported by the dashboards. diff --git a/filebeat/docs/include/run-command.asciidoc b/filebeat/docs/include/run-command.asciidoc index 158a66ef150..9d24f60c192 100644 --- a/filebeat/docs/include/run-command.asciidoc +++ b/filebeat/docs/include/run-command.asciidoc @@ -32,7 +32,7 @@ If the module is configured correctly, you'll see NOTE: Depending on how you've installed {beatname_uc}, you might see errors related to file ownership or permissions when you try to run {beatname_uc} -modules. See {libbeat}/config-file-permissions.html[Config File Ownership and +modules. See {beats-ref}/config-file-permissions.html[Config File Ownership and Permissions] in the _Beats Platform Reference_ for more information. -- diff --git a/filebeat/docs/migration.asciidoc b/filebeat/docs/migration.asciidoc index 92c1102ef3b..3e3e0987962 100644 --- a/filebeat/docs/migration.asciidoc +++ b/filebeat/docs/migration.asciidoc @@ -12,7 +12,7 @@ to use for tailing log files and forwarding them to Logstash. * The registry file, which stores the state of the currently read files, was changed. * Command line options were removed and moved to the configuration file. -* Configuration options for outputs are now inherited from libbeat. For details, see the {libbeat}/index.html[Beats Platform Reference]. +* Configuration options for outputs are now inherited from libbeat. For details, see the {beats-ref}/index.html[Beats Platform Reference]. * The {logstash-ref}/plugins-inputs-beats.html[Beats input plugin for Logstash] is required. The following topics describe how to migrate from diff --git a/filebeat/docs/modules-overview.asciidoc b/filebeat/docs/modules-overview.asciidoc index 0a294c7a4f1..62654f44cd7 100644 --- a/filebeat/docs/modules-overview.asciidoc +++ b/filebeat/docs/modules-overview.asciidoc @@ -13,7 +13,7 @@ the following: The {beatname_uc} configuration is also responsible with stitching together multiline events when needed. -* Elasticsearch {elasticsearch}/ingest.html[Ingest Node] pipeline definition, +* Elasticsearch {ref}/ingest.html[Ingest Node] pipeline definition, which is used to parse the log lines. * Fields definitions, which are used to configure Elasticsearch with the diff --git a/filebeat/docs/modules/iptables.asciidoc b/filebeat/docs/modules/iptables.asciidoc index 4edcae95a07..ca8e474d7f9 100644 --- a/filebeat/docs/modules/iptables.asciidoc +++ b/filebeat/docs/modules/iptables.asciidoc @@ -28,7 +28,7 @@ When you run the module, it performs a few tasks under the hood: [float] === Compatibility -This module requires the {elasticsearch-plugins}/ingest-geoip.html[ingest-geoip] +This module requires the {plugins}/ingest-geoip.html[ingest-geoip] Elasticsearch plugins. include::../include/running-modules.asciidoc[] diff --git a/filebeat/docs/modules/logstash.asciidoc b/filebeat/docs/modules/logstash.asciidoc index bdc4923f105..34b29110fb2 100644 --- a/filebeat/docs/modules/logstash.asciidoc +++ b/filebeat/docs/modules/logstash.asciidoc @@ -20,7 +20,7 @@ The +{modulename}+ module has two filesets: For the `slowlog` fileset, make sure to configure the -{logstashdoc}/logging.html#_slowlog[Logstash slowlog option]. +{logstash-ref}/logging.html#_slowlog[Logstash slowlog option]. [float] === Compatibility diff --git a/filebeat/docs/modules/netflow.asciidoc b/filebeat/docs/modules/netflow.asciidoc index f3f9c8c0191..79ee3ed5480 100644 --- a/filebeat/docs/modules/netflow.asciidoc +++ b/filebeat/docs/modules/netflow.asciidoc @@ -21,7 +21,7 @@ Elasticsearch Ingest Node. [float] === Compatibility -This module requires the {elasticsearch-plugins}/ingest-geoip.html[ingest-geoip] +This module requires the {plugins}/ingest-geoip.html[ingest-geoip] Elasticsearch plugins. include::../include/running-modules.asciidoc[] diff --git a/filebeat/docs/modules/suricata.asciidoc b/filebeat/docs/modules/suricata.asciidoc index af8b725cc00..a2e7d647752 100644 --- a/filebeat/docs/modules/suricata.asciidoc +++ b/filebeat/docs/modules/suricata.asciidoc @@ -19,8 +19,8 @@ include::../include/what-happens.asciidoc[] [float] === Compatibility -This module requires the {elasticsearch-plugins}/ingest-geoip.html[ingest-geoip] -and {elasticsearch-plugins}/ingest-user-agent.html[ingest-user-agent] +This module requires the {plugins}/ingest-geoip.html[ingest-geoip] +and {plugins}/ingest-user-agent.html[ingest-user-agent] Elasticsearch plugins. This module has been developed against Suricata v4.0.4, but is expected to work diff --git a/filebeat/docs/modules/zeek.asciidoc b/filebeat/docs/modules/zeek.asciidoc index 92e284640a5..c74464b346a 100644 --- a/filebeat/docs/modules/zeek.asciidoc +++ b/filebeat/docs/modules/zeek.asciidoc @@ -16,8 +16,8 @@ https://www.zeek.org/manual/release/logs/index.html[Zeek JSON format]. [float] === Compatibility -This module requires the {elasticsearch-plugins}/ingest-geoip.html[ingest-geoip] -and {elasticsearch-plugins}/ingest-user-agent.html[ingest-user-agent] +This module requires the {plugins}/ingest-geoip.html[ingest-geoip] +and {plugins}/ingest-user-agent.html[ingest-user-agent] Elasticsearch plugins. This module has been developed against Zeek 2.6.1, but is expected to work diff --git a/filebeat/docs/running-on-kubernetes.asciidoc b/filebeat/docs/running-on-kubernetes.asciidoc index f057b1753d8..28b4114d3da 100644 --- a/filebeat/docs/running-on-kubernetes.asciidoc +++ b/filebeat/docs/running-on-kubernetes.asciidoc @@ -29,7 +29,7 @@ To download the manifest file, run: ["source", "sh", subs="attributes"] ------------------------------------------------ -curl -L -O https://raw.githubusercontent.com/elastic/beats/{doc-branch}/deploy/kubernetes/filebeat-kubernetes.yaml +curl -L -O https://raw.githubusercontent.com/elastic/beats/{branch}/deploy/kubernetes/filebeat-kubernetes.yaml ------------------------------------------------ [WARNING] diff --git a/filebeat/docs/upgrading.asciidoc b/filebeat/docs/upgrading.asciidoc index a90f023c48c..2153ea09f5d 100644 --- a/filebeat/docs/upgrading.asciidoc +++ b/filebeat/docs/upgrading.asciidoc @@ -3,5 +3,5 @@ For information about upgrading to a new version, see the following topics in the _Beats Platform Reference_: -* {libbeat}/breaking-changes.html[Breaking Changes] -* {libbeat}/upgrading.html[Upgrading] +* {beats-ref}/breaking-changes.html[Breaking Changes] +* {beats-ref}/upgrading.html[Upgrading] diff --git a/filebeat/module/logstash/_meta/docs.asciidoc b/filebeat/module/logstash/_meta/docs.asciidoc index dd996c57212..22d0a47e1f9 100644 --- a/filebeat/module/logstash/_meta/docs.asciidoc +++ b/filebeat/module/logstash/_meta/docs.asciidoc @@ -15,7 +15,7 @@ The +{modulename}+ module has two filesets: For the `slowlog` fileset, make sure to configure the -{logstashdoc}/logging.html#_slowlog[Logstash slowlog option]. +{logstash-ref}/logging.html#_slowlog[Logstash slowlog option]. [float] === Compatibility diff --git a/heartbeat/docs/configuring-howto.asciidoc b/heartbeat/docs/configuring-howto.asciidoc index d9982e04eb4..8099c74dcc9 100644 --- a/heartbeat/docs/configuring-howto.asciidoc +++ b/heartbeat/docs/configuring-howto.asciidoc @@ -16,7 +16,7 @@ extracted. The Heartbeat configuration file uses http://yaml.org/[YAML] for its syntax. See the -{libbeat}/config-file-format.html[Config File Format] section of the +{beats-ref}/config-file-format.html[Config File Format] section of the _Beats Platform Reference_ for more about the structure of the config file. The following topics describe how to configure Heartbeat: diff --git a/heartbeat/docs/getting-started.asciidoc b/heartbeat/docs/getting-started.asciidoc index 07c477562cf..f0f6f423a51 100644 --- a/heartbeat/docs/getting-started.asciidoc +++ b/heartbeat/docs/getting-started.asciidoc @@ -243,7 +243,7 @@ sudo ./heartbeat -e ---------------------------------------------------------------------- <1> You'll be running Heartbeat as root, so you need to change ownership of the configuration file, or run Heartbeat with `--strict.perms=false` specified. See -{libbeat}/config-file-permissions.html[Config File Ownership and Permissions] +{beats-ref}/config-file-permissions.html[Config File Ownership and Permissions] in the _Beats Platform Reference_. *win:* diff --git a/heartbeat/docs/overview.asciidoc b/heartbeat/docs/overview.asciidoc index f52cffb05a2..6d0b78a63f3 100644 --- a/heartbeat/docs/overview.asciidoc +++ b/heartbeat/docs/overview.asciidoc @@ -7,7 +7,7 @@ Heartbeat is a lightweight daemon that you install on a remote server to periodically check the status of your services and determine whether they are -available. Unlike {metricbeat}/index.html[Metricbeat], which only tells you if +available. Unlike {metricbeat-ref}/index.html[Metricbeat], which only tells you if your servers are up or down, Heartbeat tells you whether your services are reachable. diff --git a/journalbeat/docs/getting-started.asciidoc b/journalbeat/docs/getting-started.asciidoc index df2f124555e..06270b4a2d6 100644 --- a/journalbeat/docs/getting-started.asciidoc +++ b/journalbeat/docs/getting-started.asciidoc @@ -196,7 +196,7 @@ sudo ./{beatname_lc} -e <1> You'll be running {beatname_uc} as root, so you need to change ownership of the configuration file, or run {beatname_uc} with `--strict.perms=false` specified. See -{libbeat}/config-file-permissions.html[Config File Ownership and Permissions] +{beats-ref}/config-file-permissions.html[Config File Ownership and Permissions] in the _Beats Platform Reference_. {beatname_uc} is now ready to send journal events to the defined output. diff --git a/libbeat/docs/breaking.asciidoc b/libbeat/docs/breaking.asciidoc index 2f4aed551d5..8cc1f24fa50 100644 --- a/libbeat/docs/breaking.asciidoc +++ b/libbeat/docs/breaking.asciidoc @@ -16,7 +16,7 @@ See the following topics for a description of breaking changes: * <> * <> * <> -* {auditbeat}/auditbeat-breaking-changes.html[Breaking changes in Auditbeat 6.2] +* {auditbeat-ref}/auditbeat-breaking-changes.html[Breaking changes in Auditbeat 6.2] [[breaking-changes-7.0]] @@ -299,7 +299,7 @@ templates will not be applied. The `document_type` setting, from the prospector configuration, was removed because the `_type` concept is being -{elasticsearch}/removal-of-types.html[removed from Elasticsearch]. Instead of +{ref}/removal-of-types.html[removed from Elasticsearch]. Instead of the `document_type` setting, you can use a custom field. This has led also to the rename of the `input_type` configuration setting to diff --git a/libbeat/docs/command-reference.asciidoc b/libbeat/docs/command-reference.asciidoc index ecb5408a83e..0d383f6af66 100644 --- a/libbeat/docs/command-reference.asciidoc +++ b/libbeat/docs/command-reference.asciidoc @@ -839,7 +839,7 @@ Sets the path for log files. See the <> section for details. *`--strict.perms`*:: Sets strict permission checking on configuration files. The default is `-strict.perms=true`. See -{libbeat}/config-file-permissions.html[Config file ownership and permissions] in +{beats-ref}/config-file-permissions.html[Config file ownership and permissions] in the _Beats Platform Reference_ for more information. *`-v, --v`*:: diff --git a/libbeat/docs/https.asciidoc b/libbeat/docs/https.asciidoc index f84fdc0f00e..f8eab291d49 100644 --- a/libbeat/docs/https.asciidoc +++ b/libbeat/docs/https.asciidoc @@ -13,7 +13,7 @@ To secure the communication between {beatname_uc} and Elasticsearch, you can use HTTPS and basic authentication. Basic authentication for Elasticsearch is available when you enable {security} (see -{securitydoc}/elasticsearch-security.html[Securing the {stack}] and <>). +{stack-ov}/elasticsearch-security.html[Securing the {stack}] and <>). If you aren't using {security}, you can use a web proxy instead. Here is a sample configuration: diff --git a/libbeat/docs/outputconfig.asciidoc b/libbeat/docs/outputconfig.asciidoc index c353e6786ab..3bcd6c5f40e 100644 --- a/libbeat/docs/outputconfig.asciidoc +++ b/libbeat/docs/outputconfig.asciidoc @@ -555,7 +555,7 @@ use in Logstash for indexing and filtering: } ------------------------------------------------------------------------------ <1> {beatname_uc} uses the `@metadata` field to send metadata to Logstash. See the -{logstashdoc}/event-dependent-configuration.html#metadata[Logstash documentation] +{logstash-ref}/event-dependent-configuration.html#metadata[Logstash documentation] for more about the `@metadata` field. <2> The default is {beatname_lc}. To change this value, set the <> option in the {beatname_uc} config file. diff --git a/libbeat/docs/regexp.asciidoc b/libbeat/docs/regexp.asciidoc index 24fc6f1c2b0..9ebd097b71d 100644 --- a/libbeat/docs/regexp.asciidoc +++ b/libbeat/docs/regexp.asciidoc @@ -28,7 +28,7 @@ to verify that the option you are setting accepts a regular expression. NOTE: We recommend that you wrap regular expressions in single quotation marks to work around YAML's string escaping rules. For example, `'^\[?[0-9][0-9]:?[0-9][0-9]|^[[:graph:]]+'`. -For more examples of supported regexp patterns, see {filebeat}/multiline-examples.html[Managing Multiline Messages]. +For more examples of supported regexp patterns, see {filebeat-ref}/multiline-examples.html[Managing Multiline Messages]. Although the examples pertain to Filebeat, the regexp patterns are applicable to other use cases. The following patterns are supported: diff --git a/libbeat/docs/security/linux-seccomp.asciidoc b/libbeat/docs/security/linux-seccomp.asciidoc index e159b687ad4..353580a728e 100644 --- a/libbeat/docs/security/linux-seccomp.asciidoc +++ b/libbeat/docs/security/linux-seccomp.asciidoc @@ -21,7 +21,7 @@ can be customized through configuration as well. A seccomp policy is architecture specific due to the fact that system calls vary by architecture. {beatname_uc} includes a whitelist seccomp policy for the amd64 and 386 architectures. You can view those policies -https://github.com/elastic/beats/tree/{doc-branch}/libbeat/common/seccomp[here]. +https://github.com/elastic/beats/tree/{branch}/libbeat/common/seccomp[here]. [float] [[seccomp-policy-config]] diff --git a/libbeat/docs/security/securing-beats.asciidoc b/libbeat/docs/security/securing-beats.asciidoc index c5c90717918..96c143397d4 100644 --- a/libbeat/docs/security/securing-beats.asciidoc +++ b/libbeat/docs/security/securing-beats.asciidoc @@ -7,7 +7,7 @@ ++++ If you want {beatname_uc} to connect to a cluster that has -{securitydoc}/elasticsearch-security.html[{security}] enabled, there are extra +{stack-ov}/elasticsearch-security.html[{security}] enabled, there are extra configuration steps: . <>. diff --git a/libbeat/docs/shared-beats-attributes.asciidoc b/libbeat/docs/shared-beats-attributes.asciidoc index d11a73c604e..c5ccfa35a9f 100644 --- a/libbeat/docs/shared-beats-attributes.asciidoc +++ b/libbeat/docs/shared-beats-attributes.asciidoc @@ -1,24 +1,9 @@ -:libbeat: http://www.elastic.co/guide/en/beats/libbeat/{doc-branch} -:kibana-ref: https://www.elastic.co/guide/en/kibana/{doc-branch} -:beatsdevguide: http://www.elastic.co/guide/en/beats/devguide/{doc-branch} -:packetbeat: http://www.elastic.co/guide/en/beats/packetbeat/{doc-branch} -:metricbeat: http://www.elastic.co/guide/en/beats/metricbeat/{doc-branch} -:heartbeat: http://www.elastic.co/guide/en/beats/heartbeat/{doc-branch} -:filebeat: http://www.elastic.co/guide/en/beats/filebeat/{doc-branch} -:winlogbeat: http://www.elastic.co/guide/en/beats/winlogbeat/{doc-branch} -:auditbeat: http://www.elastic.co/guide/en/beats/auditbeat/{doc-branch} -:logstashdoc: https://www.elastic.co/guide/en/logstash/{doc-branch} -:elasticsearch: https://www.elastic.co/guide/en/elasticsearch/reference/{doc-branch} -:elasticsearch-plugins: https://www.elastic.co/guide/en/elasticsearch/plugins/{doc-branch} -:securitydoc: https://www.elastic.co/guide/en/elastic-stack-overview/{doc-branch} -:monitoringdoc: https://www.elastic.co/guide/en/elastic-stack-overview/{doc-branch} +:beatsdevguide: http://www.elastic.co/guide/en/beats/devguide/{branch} :dashboards: https://artifacts.elastic.co/downloads/beats/beats-dashboards/beats-dashboards-{stack-version}.zip :dockerimage: docker.elastic.co/beats/{beatname_lc}:{version} -:dockerconfig: https://raw.githubusercontent.com/elastic/beats/{doc-branch}/deploy/docker/{beatname_lc}.docker.yml +:dockerconfig: https://raw.githubusercontent.com/elastic/beats/{branch}/deploy/docker/{beatname_lc}.docker.yml :downloads: https://artifacts.elastic.co/downloads/beats -:ES-version: {stack-version} -:LS-version: {stack-version} -:Kibana-version: {stack-version} + :cm-ui: Central Management :libbeat-docs: Beats Platform Reference :beat_monitoring_user: beats_system diff --git a/libbeat/docs/shared-config-ingest.asciidoc b/libbeat/docs/shared-config-ingest.asciidoc index db3a214aa55..fbb554a62ee 100644 --- a/libbeat/docs/shared-config-ingest.asciidoc +++ b/libbeat/docs/shared-config-ingest.asciidoc @@ -13,7 +13,7 @@ == Parse data by using ingest node When you use Elasticsearch for output, you can configure {beatname_uc} to use -{elasticsearch}/ingest.html[ingest node] to pre-process documents before the +{ref}/ingest.html[ingest node] to pre-process documents before the actual indexing takes place in Elasticsearch. Ingest node is a convenient processing option when you want to do some extra processing on your data, but you do not require the full power of Logstash. For example, you can create an @@ -68,4 +68,4 @@ output.elasticsearch: When you run {beatname_uc}, the value of `agent.name` is converted to lowercase before indexing. For more information about defining a pre-processing pipeline, see the -{elasticsearch}/ingest.html[Ingest Node] documentation. +{ref}/ingest.html[Ingest Node] documentation. diff --git a/libbeat/docs/shared-configuring.asciidoc b/libbeat/docs/shared-configuring.asciidoc index 52e2f9ad959..49ec5465144 100644 --- a/libbeat/docs/shared-configuring.asciidoc +++ b/libbeat/docs/shared-configuring.asciidoc @@ -9,5 +9,5 @@ that shows all non-deprecated options. endif::[] TIP: See the -{libbeat}/config-file-format.html[Config File Format] section of the +{beats-ref}/config-file-format.html[Config File Format] section of the _Beats Platform Reference_ for more about the structure of the config file. diff --git a/libbeat/docs/shared-faq.asciidoc b/libbeat/docs/shared-faq.asciidoc index 534d96b16d2..49a5019227c 100644 --- a/libbeat/docs/shared-faq.asciidoc +++ b/libbeat/docs/shared-faq.asciidoc @@ -18,7 +18,7 @@ You may encounter errors loading the config file on POSIX operating systems if: * an unauthorized user tries to load the config file, or * the config file has the wrong permissions. -See {libbeat}/config-file-permissions.html[Config File Ownership and Permissions] +See {beats-ref}/config-file-permissions.html[Config File Ownership and Permissions] for more about resolving these errors. [float] diff --git a/libbeat/docs/shared-libbeat-description.asciidoc b/libbeat/docs/shared-libbeat-description.asciidoc index a09125e8139..a2c78691fbb 100644 --- a/libbeat/docs/shared-libbeat-description.asciidoc +++ b/libbeat/docs/shared-libbeat-description.asciidoc @@ -1,3 +1,3 @@ {beatname_uc} is an Elastic https://www.elastic.co/products/beats[Beat]. It's based on the `libbeat` framework. For more information, see the -{libbeat}/index.html[{libbeat-docs}]. +{beats-ref}/index.html[{libbeat-docs}]. diff --git a/libbeat/docs/shared-note-file-permissions.asciidoc b/libbeat/docs/shared-note-file-permissions.asciidoc index 8b1c4ecf7a8..62e1f075e76 100644 --- a/libbeat/docs/shared-note-file-permissions.asciidoc +++ b/libbeat/docs/shared-note-file-permissions.asciidoc @@ -1,4 +1,4 @@ NOTE: On systems with POSIX file permissions, all Beats configuration files are subject to ownership and file permission checks. For more information, see -{libbeat}/config-file-permissions.html[Config File Ownership and Permissions] in +{beats-ref}/config-file-permissions.html[Config File Ownership and Permissions] in the _Beats Platform Reference_. diff --git a/libbeat/docs/shared-ssl-logstash-config.asciidoc b/libbeat/docs/shared-ssl-logstash-config.asciidoc index dd9c9e85276..a7b28c7fe99 100644 --- a/libbeat/docs/shared-ssl-logstash-config.asciidoc +++ b/libbeat/docs/shared-ssl-logstash-config.asciidoc @@ -20,7 +20,7 @@ To use SSL mutual authentication: document. There are many online resources available that describe how to create certificates. + TIP: If you are using {security}, you can use the -{elasticsearch}/certutil.html[elasticsearch-certutil tool] to generate certificates. +{ref}/certutil.html[elasticsearch-certutil tool] to generate certificates. . Configure {beatname_uc} to use SSL. In the +{beatname_lc}.yml+ config file, specify the following settings under `ssl`: @@ -51,7 +51,7 @@ For more information about these configuration options, see < * `ssl_certificate` and `ssl_key`: Specify the certificate and key that Logstash uses to authenticate with the client. * `ssl_verify_mode`: Specifies whether the Logstash server verifies the client certificate against the CA. You need to specify either `peer` or `force_peer` to make the server ask for the certificate and validate it. If you -specify `force_peer`, and {beatname_uc} doesn't provide a certificate, the Logstash connection will be closed. If you choose not to use {elasticsearch}/certutil.html[certutil], the certificates that you obtain must allow for both `clientAuth` and `serverAuth` if the extended key usage extension is present. +specify `force_peer`, and {beatname_uc} doesn't provide a certificate, the Logstash connection will be closed. If you choose not to use {ref}/certutil.html[certutil], the certificates that you obtain must allow for both `clientAuth` and `serverAuth` if the extended key usage extension is present. + For example: + diff --git a/libbeat/docs/shared-template-load.asciidoc b/libbeat/docs/shared-template-load.asciidoc index b746bdc42f8..c70762fe5f7 100644 --- a/libbeat/docs/shared-template-load.asciidoc +++ b/libbeat/docs/shared-template-load.asciidoc @@ -16,7 +16,7 @@ the output is not Elasticsearch, you must <>. endif::only-elasticsearch[] -In Elasticsearch, {elasticsearch}/indices-templates.html[index +In Elasticsearch, {ref}/indices-templates.html[index templates] are used to define settings and mappings that determine how fields should be analyzed. diff --git a/libbeat/docs/step-test-config.asciidoc b/libbeat/docs/step-test-config.asciidoc index d83a45f0eda..378c6b4d51e 100644 --- a/libbeat/docs/step-test-config.asciidoc +++ b/libbeat/docs/step-test-config.asciidoc @@ -17,7 +17,7 @@ your config files are in the path expected by {beatname_uc} (see <>), or use the `-c` flag to specify the path to the config file. Depending on your OS, you might run into file ownership issues when you run this test. See -{libbeat}/config-file-permissions.html[Config File Ownership and Permissions] +{beats-ref}/config-file-permissions.html[Config File Ownership and Permissions] in the _Beats Platform Reference_ for more information. endif::[] diff --git a/libbeat/docs/template-config.asciidoc b/libbeat/docs/template-config.asciidoc index b465ba5c086..00e2e940822 100644 --- a/libbeat/docs/template-config.asciidoc +++ b/libbeat/docs/template-config.asciidoc @@ -3,7 +3,7 @@ == Load the Elasticsearch index template The `setup.template` section of the +{beatname_lc}.yml+ config file specifies -the {elasticsearch}/indices-templates.html[index template] to use for setting +the {ref}/indices-templates.html[index template] to use for setting mappings in Elasticsearch. If template loading is enabled (the default), {beatname_uc} loads the index template automatically after successfully connecting to Elasticsearch. @@ -55,7 +55,7 @@ is false. *`setup.template.settings`*:: A dictionary of settings to place into the `settings.index` dictionary of the Elasticsearch template. For more details about the available Elasticsearch mapping options, please -see the Elasticsearch {elasticsearch}/mapping.html[mapping reference]. +see the Elasticsearch {ref}/mapping.html[mapping reference]. + Example: + @@ -75,7 +75,7 @@ indices to another cluster, you will need to add additional template settings to underlying indices. *`setup.template.settings._source`*:: A dictionary of settings for the `_source` field. For the available settings, -please see the Elasticsearch {elasticsearch}/mapping-source-field.html[reference]. +please see the Elasticsearch {ref}/mapping-source-field.html[reference]. + Example: + diff --git a/metricbeat/docs/configuring-howto.asciidoc b/metricbeat/docs/configuring-howto.asciidoc index fef5f4ca8d3..25e793afcc4 100644 --- a/metricbeat/docs/configuring-howto.asciidoc +++ b/metricbeat/docs/configuring-howto.asciidoc @@ -14,7 +14,7 @@ There's also a full example configuration file at options. For mac and win, look in the archive that you extracted. The {beatname_uc} configuration file uses http://yaml.org/[YAML] for its syntax. -See the {libbeat}/config-file-format.html[Config File Format] section of the +See the {beats-ref}/config-file-format.html[Config File Format] section of the _Beats Platform Reference_ for more about the structure of the config file. include::../../libbeat/docs/shared-cm-tip.asciidoc[] diff --git a/metricbeat/docs/gettingstarted.asciidoc b/metricbeat/docs/gettingstarted.asciidoc index 474ca4c792e..1214ab32b17 100644 --- a/metricbeat/docs/gettingstarted.asciidoc +++ b/metricbeat/docs/gettingstarted.asciidoc @@ -267,7 +267,7 @@ sudo ./{beatname_lc} -e <1> You'll be running {beatname_uc} as root, so you need to change ownership of the configuration file and any configurations enabled in the `modules.d` directory, or run {beatname_uc} with `--strict.perms=false` specified. See -{libbeat}/config-file-permissions.html[Config File Ownership and Permissions] +{beats-ref}/config-file-permissions.html[Config File Ownership and Permissions] in the _Beats Platform Reference_. *win:* diff --git a/metricbeat/docs/modules/elasticsearch.asciidoc b/metricbeat/docs/modules/elasticsearch.asciidoc index 3d8f6d5169a..2f7fe0732af 100644 --- a/metricbeat/docs/modules/elasticsearch.asciidoc +++ b/metricbeat/docs/modules/elasticsearch.asciidoc @@ -5,7 +5,7 @@ This file is generated! See scripts/docs_collector.py [[metricbeat-module-elasticsearch]] == Elasticsearch module -The Elasticsearch module contains a minimal set of metrics to enable monitoring of Elasticsearch across multiple versions. To monitor more Elasticsearch metrics, use our {monitoringdoc}/xpack-monitoring.html[monitoring] feature. +The Elasticsearch module contains a minimal set of metrics to enable monitoring of Elasticsearch across multiple versions. To monitor more Elasticsearch metrics, use our {stack-ov}/xpack-monitoring.html[monitoring] feature. The default metricsets are `node` and `node_stats`. diff --git a/metricbeat/docs/modules/kibana.asciidoc b/metricbeat/docs/modules/kibana.asciidoc index 0404de9007f..d930b53fcb8 100644 --- a/metricbeat/docs/modules/kibana.asciidoc +++ b/metricbeat/docs/modules/kibana.asciidoc @@ -5,7 +5,7 @@ This file is generated! See scripts/docs_collector.py [[metricbeat-module-kibana]] == Kibana module -The Kibana module only tracks the high-level metrics. To monitor more Kibana metrics, use our {monitoringdoc}/xpack-monitoring.html[monitoring] feature. +The Kibana module only tracks the high-level metrics. To monitor more Kibana metrics, use our {stack-ov}/xpack-monitoring.html[monitoring] feature. The default metricset is `status`. diff --git a/metricbeat/docs/running-on-kubernetes.asciidoc b/metricbeat/docs/running-on-kubernetes.asciidoc index da05aec7ebc..2b6a87b65df 100644 --- a/metricbeat/docs/running-on-kubernetes.asciidoc +++ b/metricbeat/docs/running-on-kubernetes.asciidoc @@ -35,7 +35,7 @@ To download the manifest file, run: ["source", "sh", subs="attributes"] ------------------------------------------------ -curl -L -O https://raw.githubusercontent.com/elastic/beats/{doc-branch}/deploy/kubernetes/metricbeat-kubernetes.yaml +curl -L -O https://raw.githubusercontent.com/elastic/beats/{branch}/deploy/kubernetes/metricbeat-kubernetes.yaml ------------------------------------------------ [WARNING] diff --git a/metricbeat/docs/upgrading.asciidoc b/metricbeat/docs/upgrading.asciidoc index 7d3d120b3bb..c01990be8c8 100644 --- a/metricbeat/docs/upgrading.asciidoc +++ b/metricbeat/docs/upgrading.asciidoc @@ -3,5 +3,5 @@ For information about upgrading to a new version, see the following topics in the _Beats Platform Reference_: -* {libbeat}/breaking-changes.html[Breaking Changes] -* {libbeat}/upgrading.html[Upgrading] +* {beats-ref}/breaking-changes.html[Breaking Changes] +* {beats-ref}/upgrading.html[Upgrading] diff --git a/metricbeat/module/elasticsearch/_meta/docs.asciidoc b/metricbeat/module/elasticsearch/_meta/docs.asciidoc index 3a47799f4fa..61fcd35ceae 100644 --- a/metricbeat/module/elasticsearch/_meta/docs.asciidoc +++ b/metricbeat/module/elasticsearch/_meta/docs.asciidoc @@ -1,4 +1,4 @@ -The Elasticsearch module contains a minimal set of metrics to enable monitoring of Elasticsearch across multiple versions. To monitor more Elasticsearch metrics, use our {monitoringdoc}/xpack-monitoring.html[monitoring] feature. +The Elasticsearch module contains a minimal set of metrics to enable monitoring of Elasticsearch across multiple versions. To monitor more Elasticsearch metrics, use our {stack-ov}/xpack-monitoring.html[monitoring] feature. The default metricsets are `node` and `node_stats`. diff --git a/metricbeat/module/jolokia/jmx/_meta/docs.asciidoc b/metricbeat/module/jolokia/jmx/_meta/docs.asciidoc index e6146365345..5602e1b73b1 100644 --- a/metricbeat/module/jolokia/jmx/_meta/docs.asciidoc +++ b/metricbeat/module/jolokia/jmx/_meta/docs.asciidoc @@ -47,7 +47,7 @@ Elastic "as is". You can configure nested metric aliases by using dots in the mapping name (for example, `gc.cms_collection_time`). For more examples, see -https://github.com/elastic/beats/blob/{doc-branch}/metricbeat/module/jolokia/jmx/_meta/test/config.yml[/jolokia/jmx/test/config.yml]. +https://github.com/elastic/beats/blob/{branch}/metricbeat/module/jolokia/jmx/_meta/test/config.yml[/jolokia/jmx/test/config.yml]. All metrics from a single mapping will be POSTed to the defined host/port and sent to Elastic as a single event. To make it possible to differentiate between diff --git a/metricbeat/module/kibana/_meta/docs.asciidoc b/metricbeat/module/kibana/_meta/docs.asciidoc index a941ecb240d..1b7b34ce5b3 100644 --- a/metricbeat/module/kibana/_meta/docs.asciidoc +++ b/metricbeat/module/kibana/_meta/docs.asciidoc @@ -1,4 +1,4 @@ -The Kibana module only tracks the high-level metrics. To monitor more Kibana metrics, use our {monitoringdoc}/xpack-monitoring.html[monitoring] feature. +The Kibana module only tracks the high-level metrics. To monitor more Kibana metrics, use our {stack-ov}/xpack-monitoring.html[monitoring] feature. The default metricset is `status`. diff --git a/packetbeat/docs/configuring-howto.asciidoc b/packetbeat/docs/configuring-howto.asciidoc index c64dc68dfe5..14357bcbc79 100644 --- a/packetbeat/docs/configuring-howto.asciidoc +++ b/packetbeat/docs/configuring-howto.asciidoc @@ -14,7 +14,7 @@ There's also a full example configuration file at options. For mac and win, look in the archive that you extracted. The {beatname_uc} configuration file uses http://yaml.org/[YAML] for its syntax. -See the {libbeat}/config-file-format.html[Config File Format] section of the +See the {beats-ref}/config-file-format.html[Config File Format] section of the _Beats Platform Reference_ for more about the structure of the config file. The following topics describe how to configure Packetbeat: diff --git a/packetbeat/docs/gettingstarted.asciidoc b/packetbeat/docs/gettingstarted.asciidoc index 4d30833596b..783ffaf521d 100644 --- a/packetbeat/docs/gettingstarted.asciidoc +++ b/packetbeat/docs/gettingstarted.asciidoc @@ -281,7 +281,7 @@ sudo ./packetbeat -e ---------------------------------------------------------------------- <1> You'll be running Packetbeat as root, so you need to change ownership of the configuration file, or run Packetbeat with `--strict.perms=false` specified. See -{libbeat}/config-file-permissions.html[Config File Ownership and Permissions]in +{beats-ref}/config-file-permissions.html[Config File Ownership and Permissions]in the _Beats Platform Reference_. *win:* diff --git a/packetbeat/docs/overview.asciidoc b/packetbeat/docs/overview.asciidoc index 49bb6d8265d..51a84590c63 100644 --- a/packetbeat/docs/overview.asciidoc +++ b/packetbeat/docs/overview.asciidoc @@ -7,7 +7,7 @@ Packetbeat is a real-time network packet analyzer that you can use with Elasticsearch to provide an _application monitoring and performance -analytics system_. Packetbeat completes the {libbeat}/index.html[Beats platform] +analytics system_. Packetbeat completes the {beats-ref}/index.html[Beats platform] by providing visibility between the servers of your network. Packetbeat works by capturing the network traffic between your application servers, diff --git a/packetbeat/docs/upgrading.asciidoc b/packetbeat/docs/upgrading.asciidoc index be8e854b72e..c837383af27 100644 --- a/packetbeat/docs/upgrading.asciidoc +++ b/packetbeat/docs/upgrading.asciidoc @@ -3,5 +3,5 @@ For information about upgrading to a new version, see the following topics in the _Beats Platform Reference_: -* {libbeat}/breaking-changes.html[Breaking Changes] -* {libbeat}/upgrading.html[Upgrading] +* {beats-ref}/breaking-changes.html[Breaking Changes] +* {beats-ref}/upgrading.html[Upgrading] diff --git a/winlogbeat/docs/configuring-howto.asciidoc b/winlogbeat/docs/configuring-howto.asciidoc index 12b0e9fa467..c1da6d510c9 100644 --- a/winlogbeat/docs/configuring-howto.asciidoc +++ b/winlogbeat/docs/configuring-howto.asciidoc @@ -12,7 +12,7 @@ To configure {beatname_uc}, you edit the configuration file. You’ll find the c +/etc/{beatname_lc}/{beatname_lc}.reference.yml+ that shows all non-deprecated options. The {beatname_uc} configuration file uses http://yaml.org/[YAML] for its syntax. See the -{libbeat}/config-file-format.html[Config File Format] section of the +{beats-ref}/config-file-format.html[Config File Format] section of the _Beats Platform Reference_ for more about the structure of the config file. The following topics describe how to configure Winlogbeat: diff --git a/winlogbeat/docs/getting-started.asciidoc b/winlogbeat/docs/getting-started.asciidoc index 62459a1ca4b..edc69d96524 100644 --- a/winlogbeat/docs/getting-started.asciidoc +++ b/winlogbeat/docs/getting-started.asciidoc @@ -56,7 +56,7 @@ shows all non-deprecated options. For more information about these options, see === Step 2: Configure Winlogbeat To configure Winlogbeat, you edit the `winlogbeat.yml` configuration file. See the -{libbeat}/config-file-format.html[Config File Format] section of the +{beats-ref}/config-file-format.html[Config File Format] section of the _Beats Platform Reference_ for more about the structure of the config file. Here is a sample of the `winlogbeat.yml` file: diff --git a/winlogbeat/docs/upgrading.asciidoc b/winlogbeat/docs/upgrading.asciidoc index c13644e7ee3..789c57c7170 100644 --- a/winlogbeat/docs/upgrading.asciidoc +++ b/winlogbeat/docs/upgrading.asciidoc @@ -3,5 +3,5 @@ For information about upgrading to a new version, see the following topics in the _Beats Platform Reference_: -* {libbeat}/breaking-changes.html[Breaking Changes] -* {libbeat}/upgrading.html[Upgrading] +* {beats-ref}/breaking-changes.html[Breaking Changes] +* {beats-ref}/upgrading.html[Upgrading] diff --git a/x-pack/filebeat/module/iptables/_meta/docs.asciidoc b/x-pack/filebeat/module/iptables/_meta/docs.asciidoc index c158cf3e1bc..d49f31771be 100644 --- a/x-pack/filebeat/module/iptables/_meta/docs.asciidoc +++ b/x-pack/filebeat/module/iptables/_meta/docs.asciidoc @@ -23,7 +23,7 @@ When you run the module, it performs a few tasks under the hood: [float] === Compatibility -This module requires the {elasticsearch-plugins}/ingest-geoip.html[ingest-geoip] +This module requires the {plugins}/ingest-geoip.html[ingest-geoip] Elasticsearch plugins. include::../include/running-modules.asciidoc[] diff --git a/x-pack/filebeat/module/netflow/_meta/docs.asciidoc b/x-pack/filebeat/module/netflow/_meta/docs.asciidoc index 334a219ba84..9c527ba9cd1 100644 --- a/x-pack/filebeat/module/netflow/_meta/docs.asciidoc +++ b/x-pack/filebeat/module/netflow/_meta/docs.asciidoc @@ -16,7 +16,7 @@ Elasticsearch Ingest Node. [float] === Compatibility -This module requires the {elasticsearch-plugins}/ingest-geoip.html[ingest-geoip] +This module requires the {plugins}/ingest-geoip.html[ingest-geoip] Elasticsearch plugins. include::../include/running-modules.asciidoc[] diff --git a/x-pack/filebeat/module/suricata/_meta/docs.asciidoc b/x-pack/filebeat/module/suricata/_meta/docs.asciidoc index 6e5c8d52eb9..f8b313be408 100644 --- a/x-pack/filebeat/module/suricata/_meta/docs.asciidoc +++ b/x-pack/filebeat/module/suricata/_meta/docs.asciidoc @@ -14,8 +14,8 @@ include::../include/what-happens.asciidoc[] [float] === Compatibility -This module requires the {elasticsearch-plugins}/ingest-geoip.html[ingest-geoip] -and {elasticsearch-plugins}/ingest-user-agent.html[ingest-user-agent] +This module requires the {plugins}/ingest-geoip.html[ingest-geoip] +and {plugins}/ingest-user-agent.html[ingest-user-agent] Elasticsearch plugins. This module has been developed against Suricata v4.0.4, but is expected to work diff --git a/x-pack/filebeat/module/zeek/_meta/docs.asciidoc b/x-pack/filebeat/module/zeek/_meta/docs.asciidoc index 59e66c72b9f..07c7d5cd155 100644 --- a/x-pack/filebeat/module/zeek/_meta/docs.asciidoc +++ b/x-pack/filebeat/module/zeek/_meta/docs.asciidoc @@ -11,8 +11,8 @@ https://www.zeek.org/manual/release/logs/index.html[Zeek JSON format]. [float] === Compatibility -This module requires the {elasticsearch-plugins}/ingest-geoip.html[ingest-geoip] -and {elasticsearch-plugins}/ingest-user-agent.html[ingest-user-agent] +This module requires the {plugins}/ingest-geoip.html[ingest-geoip] +and {plugins}/ingest-user-agent.html[ingest-user-agent] Elasticsearch plugins. This module has been developed against Zeek 2.6.1, but is expected to work diff --git a/x-pack/functionbeat/docs/getting-started.asciidoc b/x-pack/functionbeat/docs/getting-started.asciidoc index 59a1f1e6aee..670764eff49 100644 --- a/x-pack/functionbeat/docs/getting-started.asciidoc +++ b/x-pack/functionbeat/docs/getting-started.asciidoc @@ -89,7 +89,7 @@ You specify settings in the +{beatname_lc}.yml+ configuration file. This file is located in the archive that you extracted earlier. TIP: See the -{libbeat}/config-file-format.html[Config File Format] section of the +{beats-ref}/config-file-format.html[Config File Format] section of the _Beats Platform Reference_ for more about the structure of the config file. The following example configures a function called `cloudwatch` that collects From e007c9c9c1d423d1b7905e045aaa60c1f7ce572e Mon Sep 17 00:00:00 2001 From: Christoph Wurm Date: Fri, 1 Mar 2019 17:41:28 +0000 Subject: [PATCH 119/332] [Auditbeat] System module: Fix and unify bucket closing logic (#10897) The `host` dataset is erroneously trying to save state in its `Close()` method. It should have saved the state earlier - usually at the end of `Fetch()` - and then should only close the bucket (something it is not doing at all). At the same time, it is not saving state in its `reportState()` method. Combined, this can lead to an error when the dataset is terminated before the first regular `reportChanges()` is run. This fixes both issues and furthermore unifies the bucket closing logic across all six datasets of the System module. --- CHANGELOG.next.asciidoc | 1 + x-pack/auditbeat/module/system/host/host.go | 27 ++++++++++++-------- x-pack/auditbeat/module/system/login/utmp.go | 6 +++-- 3 files changed, 21 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 612d486d325..474365e0e93 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -140,6 +140,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Enable System module config on Windows. {pull}10237[10237] - Package: Disable librpm signal handlers. {pull}10694[10694] - Login: Handle different bad login UTMP types. {pull}10865[10865] +- System module: Fix and unify bucket closing logic. {pull}10897[10897] *Filebeat* diff --git a/x-pack/auditbeat/module/system/host/host.go b/x-pack/auditbeat/module/system/host/host.go index e8255f4f5ea..c3a95cba0ff 100644 --- a/x-pack/auditbeat/module/system/host/host.go +++ b/x-pack/auditbeat/module/system/host/host.go @@ -190,7 +190,10 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // Close cleans up the MetricSet when it finishes. func (ms *MetricSet) Close() error { - return ms.saveStateToDisk() + if ms.bucket != nil { + return ms.bucket.Close() + } + return nil } // Fetch collects data about the host. It is invoked periodically. @@ -224,7 +227,7 @@ func (ms *MetricSet) reportState(report mb.ReporterV2) error { report.Event(hostEvent(host, eventTypeState, eventActionHost)) - return nil + return ms.saveStateToDisk() } // reportChanges detects and reports any changes to this host since the last call. @@ -375,17 +378,19 @@ func inflect(noun string, count int) string { func (ms *MetricSet) saveStateToDisk() error { var buf bytes.Buffer encoder := gob.NewEncoder(&buf) - err := encoder.Encode(*ms.lastHost) - if err != nil { - return errors.Wrap(err, "error encoding host information") - } + if ms.lastHost != nil { + err := encoder.Encode(*ms.lastHost) + if err != nil { + return errors.Wrap(err, "error encoding host information") + } - err = ms.bucket.Store(bucketKeyLastHost, buf.Bytes()) - if err != nil { - return errors.Wrap(err, "error writing host information to disk") - } + err = ms.bucket.Store(bucketKeyLastHost, buf.Bytes()) + if err != nil { + return errors.Wrap(err, "error writing host information to disk") + } - ms.log.Debug("Wrote host information to disk.") + ms.log.Debug("Wrote host information to disk.") + } return nil } diff --git a/x-pack/auditbeat/module/system/login/utmp.go b/x-pack/auditbeat/module/system/login/utmp.go index 507b1057af4..11dddeb5862 100644 --- a/x-pack/auditbeat/module/system/login/utmp.go +++ b/x-pack/auditbeat/module/system/login/utmp.go @@ -84,8 +84,10 @@ func NewUtmpFileReader(log *logp.Logger, bucket datastore.Bucket, config config) // Close performs any cleanup tasks when the UTMP reader is done. func (r *UtmpFileReader) Close() error { - err := r.bucket.Close() - return errors.Wrap(err, "error closing bucket") + if r.bucket != nil { + return r.bucket.Close() + } + return nil } // ReadNew returns any new UTMP entries in any files matching the configured pattern. From a6102a89dde4d502743eac0fff47ce613cb1e373 Mon Sep 17 00:00:00 2001 From: Adrian Serrano Date: Sat, 2 Mar 2019 00:24:21 +0100 Subject: [PATCH 120/332] [Winlogbeat] Prevent Winlogbeat from dropping events with invalid XML (#11006) * [Winlogbeat] Escape control characters in XML Golang's xml parser is pretty strict about the presence of control characters in the XML it is fed. This patch replaces those characters with an unicode escape sequence: "\uNNNN". --- CHANGELOG.next.asciidoc | 2 + winlogbeat/eventlog/eventlog.go | 6 +- winlogbeat/eventlog/eventlogging_test.go | 2 +- winlogbeat/eventlog/wineventlog.go | 19 ++--- winlogbeat/sys/event.go | 5 +- winlogbeat/sys/event_test.go | 17 ++++ .../sys/eventlogging/eventlogging_windows.go | 4 +- winlogbeat/sys/xmlreader.go | 78 +++++++++++++++++++ 8 files changed, 116 insertions(+), 17 deletions(-) create mode 100644 winlogbeat/sys/xmlreader.go diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 474365e0e93..d4eaa3ddc72 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -189,6 +189,8 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d *Winlogbeat* +- Prevent Winlogbeat from dropping events with invalid XML. {pull}11006{11006} + *Functionbeat* - Ensure that functionbeat is logging at info level not debug. {issue}10262[10262] diff --git a/winlogbeat/eventlog/eventlog.go b/winlogbeat/eventlog/eventlog.go index 8d3ed476afc..c9f7662750d 100644 --- a/winlogbeat/eventlog/eventlog.go +++ b/winlogbeat/eventlog/eventlog.go @@ -138,7 +138,11 @@ func (e Record) ToEvent() beat.Event { addOptional(m, "message", sys.RemoveWindowsLineEndings(e.Message)) // Errors addOptional(m, "error.code", e.RenderErrorCode) - addOptional(m, "error.message", e.RenderErr) + if len(e.RenderErr) == 1 { + addOptional(m, "error.message", e.RenderErr[0]) + } else { + addOptional(m, "error.message", e.RenderErr) + } addOptional(m, "event.original", e.XML) diff --git a/winlogbeat/eventlog/eventlogging_test.go b/winlogbeat/eventlog/eventlogging_test.go index b102a80fd2a..3f5acd67955 100644 --- a/winlogbeat/eventlog/eventlogging_test.go +++ b/winlogbeat/eventlog/eventlogging_test.go @@ -267,7 +267,7 @@ func TestFormatMessageWithLargeMessage(t *testing.T) { assert.Len(t, records, 1) for _, record := range records { t.Log(record) - assert.Equal(t, "The data area passed to a system call is too small.", record.RenderErr) + assert.Equal(t, []string{"The data area passed to a system call is too small."}, record.RenderErr) } } diff --git a/winlogbeat/eventlog/wineventlog.go b/winlogbeat/eventlog/wineventlog.go index b43981924cd..c20833d4f67 100644 --- a/winlogbeat/eventlog/wineventlog.go +++ b/winlogbeat/eventlog/wineventlog.go @@ -173,13 +173,7 @@ func (l *winEventLog) Read() ([]Record, error) { continue } - r, err := l.buildRecordFromXML(l.outputBuf.Bytes(), err) - if err != nil { - logp.Err("%s Dropping event. %v", l.logPrefix, err) - incrementMetric(dropReasons, err) - continue - } - + r, _ := l.buildRecordFromXML(l.outputBuf.Bytes(), err) r.Offset = checkpoint.EventLogState{ Name: l.channelName, RecordNumber: r.RecordID, @@ -230,9 +224,12 @@ func (l *winEventLog) eventHandles(maxRead int) ([]win.EvtHandle, int, error) { } func (l *winEventLog) buildRecordFromXML(x []byte, recoveredErr error) (Record, error) { + includeXML := l.config.IncludeXML e, err := sys.UnmarshalEventXML(x) if err != nil { - return Record{}, fmt.Errorf("Failed to unmarshal XML='%s'. %v", x, err) + e.RenderErr = append(e.RenderErr, err.Error()) + // Add raw XML to event.original when decoding fails + includeXML = true } err = sys.PopulateAccount(&e.User) @@ -244,9 +241,9 @@ func (l *winEventLog) buildRecordFromXML(x []byte, recoveredErr error) (Record, if e.RenderErrorCode != 0 { // Convert the render error code to an error message that can be // included in the "error.message" field. - e.RenderErr = syscall.Errno(e.RenderErrorCode).Error() + e.RenderErr = append(e.RenderErr, syscall.Errno(e.RenderErrorCode).Error()) } else if recoveredErr != nil { - e.RenderErr = recoveredErr.Error() + e.RenderErr = append(e.RenderErr, recoveredErr.Error()) } if e.Level == "" { @@ -263,7 +260,7 @@ func (l *winEventLog) buildRecordFromXML(x []byte, recoveredErr error) (Record, Event: e, } - if l.config.IncludeXML { + if includeXML { r.XML = string(x) } diff --git a/winlogbeat/sys/event.go b/winlogbeat/sys/event.go index f113ba87f58..e9a9f473aac 100644 --- a/winlogbeat/sys/event.go +++ b/winlogbeat/sys/event.go @@ -26,7 +26,8 @@ import ( // UnmarshalEventXML unmarshals the given XML into a new Event. func UnmarshalEventXML(rawXML []byte) (Event, error) { var event Event - err := xml.Unmarshal(rawXML, &event) + decoder := xml.NewDecoder(newXMLSafeReader(rawXML)) + err := decoder.Decode(&event) return event, err } @@ -60,7 +61,7 @@ type Event struct { // ProcessingErrorData RenderErrorCode uint32 `xml:"ProcessingErrorData>ErrorCode"` RenderErrorDataItemName string `xml:"ProcessingErrorData>DataItemName"` - RenderErr string + RenderErr []string } // Provider identifies the provider that logged the event. The Name and GUID diff --git a/winlogbeat/sys/event_test.go b/winlogbeat/sys/event_test.go index 91797dcc59c..c77c05c2ea3 100644 --- a/winlogbeat/sys/event_test.go +++ b/winlogbeat/sys/event_test.go @@ -168,6 +168,23 @@ func TestXML(t *testing.T) { } } +func TestInvalidXML(t *testing.T) { + eventXML := fmt.Sprintf(` + + + + {00000000-0000-0000-0000-000000000000} + じゃあ宇宙カウボーイ。。。%s + + + +`, "\x1b") + _, err := UnmarshalEventXML([]byte(eventXML)) + if !assert.NoError(t, err) { + assert.Equal(t, err.Error(), "XML syntax error on line 6: illegal character code U+001B") + } +} + func BenchmarkXMLUnmarshal(b *testing.B) { for i := 0; i < b.N; i++ { _, err := UnmarshalEventXML([]byte(allXML)) diff --git a/winlogbeat/sys/eventlogging/eventlogging_windows.go b/winlogbeat/sys/eventlogging/eventlogging_windows.go index 6c5b45c0d3e..29d2c47fdef 100644 --- a/winlogbeat/sys/eventlogging/eventlogging_windows.go +++ b/winlogbeat/sys/eventlogging/eventlogging_windows.go @@ -163,7 +163,7 @@ func RenderEvents( } // Parse the UTF-16 message insert strings. if err = insertStrings.Parse(record, recordBuf); err != nil { - event.RenderErr = err.Error() + event.RenderErr = append(event.RenderErr, err.Error()) events = append(events, event) continue } @@ -176,7 +176,7 @@ func RenderEvents( event.Message, err = formatMessage(record.sourceName, record.eventID, lang, insertStrings.Pointer(), buffer, pubHandleProvider) if err != nil { - event.RenderErr = err.Error() + event.RenderErr = append(event.RenderErr, err.Error()) if errno, ok := err.(syscall.Errno); ok { event.RenderErrorCode = uint32(errno) } diff --git a/winlogbeat/sys/xmlreader.go b/winlogbeat/sys/xmlreader.go new file mode 100644 index 00000000000..8eb23e1ce14 --- /dev/null +++ b/winlogbeat/sys/xmlreader.go @@ -0,0 +1,78 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package sys + +import ( + "bytes" + "fmt" + "io" + "unicode" + "unicode/utf8" +) + +// The type xmlSafeReader escapes UTF control characters in the io.Reader +// it wraps, so that it can be fed to Go's xml parser. +// Characters for which `unicode.IsControl` returns true will be output as +// an hexadecimal unicode escape sequence "\\uNNNN". +type xmlSafeReader struct { + inner io.Reader + backing [256]byte + buf []byte + code []byte +} + +var _ io.Reader = (*xmlSafeReader)(nil) + +func output(n int) (int, error) { + if n == 0 { + return 0, io.EOF + } + return n, nil +} + +// Read implements the io.Reader interface. +func (r *xmlSafeReader) Read(d []byte) (n int, err error) { + if len(r.code) > 0 { + n = copy(d, r.code) + r.code = r.code[n:] + return output(n) + } + if len(r.buf) == 0 { + n, _ = r.inner.Read(r.backing[:]) + r.buf = r.backing[:n] + } + for i := 0; i < len(r.buf); { + code, size := utf8.DecodeRune(r.buf[i:]) + if unicode.IsControl(code) { + n = copy(d, r.buf[:i]) + r.buf = r.buf[n+1:] + r.code = []byte(fmt.Sprintf("\\u%04x", code)) + m := copy(d[n:], r.code) + r.code = r.code[m:] + return output(n + m) + } + i += size + } + n = copy(d, r.buf) + r.buf = r.buf[n:] + return output(n) +} + +func newXMLSafeReader(rawXML []byte) io.Reader { + return &xmlSafeReader{inner: bytes.NewReader(rawXML)} +} From b652c6480f244d3c83f21c386334bcf5aa9c3bf0 Mon Sep 17 00:00:00 2001 From: Mario Castro Date: Mon, 4 Mar 2019 11:40:20 +0100 Subject: [PATCH 121/332] [Metricbeat] Migrate MongoDB replstatus Metricset to use ReporterV2 interface --- .../module/mongodb/replstatus/_meta/data.json | 166 +++++++++--------- .../module/mongodb/replstatus/replstatus.go | 21 ++- .../replstatus/replstatus_integration_test.go | 23 ++- 3 files changed, 112 insertions(+), 98 deletions(-) diff --git a/metricbeat/module/mongodb/replstatus/_meta/data.json b/metricbeat/module/mongodb/replstatus/_meta/data.json index 3aa60d3933b..9e8181a5288 100644 --- a/metricbeat/module/mongodb/replstatus/_meta/data.json +++ b/metricbeat/module/mongodb/replstatus/_meta/data.json @@ -1,90 +1,90 @@ { - "@timestamp": "2016-05-23T08:05:34.853Z", - "beat": { + "@timestamp": "2017-10-12T08:05:34.853Z", + "agent": { "hostname": "host.example.com", "name": "host.example.com" }, - "metricset":{ - "host":"s1.example.com:27017,s2.example.com:27017,s3.example.com:27017", - "module":"mongodb", - "name":"replstatus", - "rtt": 44269 + "event": { + "dataset": "mongodb.replstatus", + "duration": 115000, + "module": "mongodb" + }, + "metricset": { + "name": "replstatus" }, "mongodb": { - "replstatus": { - "oplog": { - "window": 13881222, - "size": { - "allocated": 2348399104, - "used": 2369966391 - }, - "first": { - "timestamp": 1520110569 - }, - "last": { - "timestamp": 1533991791 - } - }, - "set_name": "beats", - "server_date": "2018-08-11T12:49:52.984Z", - "optimes": { - "last_committed": 1533991791, - "applied": 1533991791, - "durable": 1533991791 - }, - "lag": { - "max": 10, - "min": 10 - }, - "headroom": { - "max": 13881212, - "min": 13881212 - }, - "members": { - "arbiter": { - "hosts": [ - "s1.example.com:27017" - ], - "count": 1 - }, - "rollback": { - "hosts": [], - "count": 0 - }, - "unhealthy": { - "count": 0, - "hosts": [] - }, - "secondary": { - "count": 1, - "optimes": [ - 1533991781 - ], - "hosts": [ - "s2.example.com:27017" - ] - }, - "recovering": { - "count": 0, - "hosts": [] - }, - "unknown": { - "hosts": [], - "count": 0 - }, - "startup2": { - "hosts": [], - "count": 0 - }, - "down": { - "hosts": [], - "count": 0 - }, - "primary": { - "optime": 1533991791, - "host": "s3.example.com:27017" - } + "replstatus": { + "headroom": { + "max": null, + "min": null + }, + "lag": { + "max": null, + "min": null + }, + "members": { + "arbiter": { + "count": 0, + "hosts": null + }, + "down": { + "count": 0, + "hosts": null + }, + "primary": { + "host": "22b4e1fb8197:27017", + "optime": 1550700559 + }, + "recovering": { + "count": 0, + "hosts": null + }, + "rollback": { + "count": 0, + "hosts": null + }, + "secondary": { + "count": 0, + "hosts": null, + "optimes": null + }, + "startup2": { + "count": 0, + "hosts": null + }, + "unhealthy": { + "count": 0, + "hosts": null + }, + "unknown": { + "count": 0, + "hosts": null + } + }, + "oplog": { + "first": { + "timestamp": 1550700557 + }, + "last": { + "timestamp": 1550700559 + }, + "size": { + "allocated": 40572728934, + "used": 180 + }, + "window": 2 + }, + "optimes": { + "applied": 1550700559, + "durable": 1550700559, + "last_committed": 1550700559 + }, + "server_date": "2019-02-20T23:09:23.733+01:00", + "set_name": "beats" } - } - } -} + }, + "service": { + "address": "172.26.0.2:27017", + "type": "mongodb" + } +} \ No newline at end of file diff --git a/metricbeat/module/mongodb/replstatus/replstatus.go b/metricbeat/module/mongodb/replstatus/replstatus.go index a3ff46107d0..efae7702bab 100644 --- a/metricbeat/module/mongodb/replstatus/replstatus.go +++ b/metricbeat/module/mongodb/replstatus/replstatus.go @@ -20,13 +20,12 @@ package replstatus import ( "gopkg.in/mgo.v2" - "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/module/mongodb" ) -var debugf = logp.MakeDebug("mongodb.replstatus") +var logger = logp.NewLogger("mongodb.replstatus") func init() { mb.Registry.MustAddMetricSet("mongodb", "replstatus", New, @@ -55,11 +54,13 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // Fetch methods implements the data gathering and data conversion to the right // format. It publishes the event which is then forwarded to the output. In case // of an error set the Error field of mb.Event or simply call report.Error(). -func (m *MetricSet) Fetch() (common.MapStr, error) { +func (m *MetricSet) Fetch(reporter mb.ReporterV2) { // instantiate direct connections to each of the configured Mongo hosts mongoSession, err := mongodb.NewDirectSession(m.DialInfo) if err != nil { - return nil, err + logger.Error(err) + reporter.Error(err) + return } defer mongoSession.Close() @@ -67,15 +68,21 @@ func (m *MetricSet) Fetch() (common.MapStr, error) { oplogInfo, err := getReplicationInfo(mongoSession) if err != nil { - return nil, err + logger.Error(err) + reporter.Error(err) + return } replStatus, err := getReplicationStatus(mongoSession) if err != nil { - return nil, err + logger.Error(err) + reporter.Error(err) + return } event := eventMapping(*oplogInfo, *replStatus) - return event, nil + reporter.Event(mb.Event{MetricSetFields: event}) + + return } diff --git a/metricbeat/module/mongodb/replstatus/replstatus_integration_test.go b/metricbeat/module/mongodb/replstatus/replstatus_integration_test.go index 40e60bca51b..9af662c8dde 100644 --- a/metricbeat/module/mongodb/replstatus/replstatus_integration_test.go +++ b/metricbeat/module/mongodb/replstatus/replstatus_integration_test.go @@ -41,13 +41,15 @@ func TestFetch(t *testing.T) { t.FailNow() } - f := mbtest.NewEventFetcher(t, getConfig()) - event, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } + assert.NotEmpty(t, events) + event := events[0].MetricSetFields - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) + t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), events[0]) // Check event fields oplog := event["oplog"].(common.MapStr) @@ -75,9 +77,14 @@ func TestFetch(t *testing.T) { func TestData(t *testing.T) { compose.EnsureUp(t, "mongodb") - f := mbtest.NewEventFetcher(t, getConfig()) - err := mbtest.WriteEvent(f, t) - if err != nil { + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) + } + assert.NotEmpty(t, events) + + if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { t.Fatal("write", err) } } From 106df3d5cc5d2b66130346c2c6188e3cb48635c7 Mon Sep 17 00:00:00 2001 From: Jaime Soriano Pastor Date: Mon, 4 Mar 2019 13:48:40 +0100 Subject: [PATCH 122/332] Ensure kubernetes caches don't expire if they are being read (#10946) Some metrics in metricbeat kubernetes module are cached during a time, if they are not updated they are removed. But it is usual to have pods or containers that are not updated during more time that the expiration cache. Current implementation was not renovating expiration times for cache entries so all were eventually removed if updates for them are not received. Replace it with the cache implementation available in libbeat, but keeping the existing interface. Also, use slashes instead of dashes to generate unique container uids. Dashes can be used by kubernetes names, what could lead to ambiguous keys for the caches. Fix #10658 --- CHANGELOG.next.asciidoc | 1 + .../module/kubernetes/util/metrics_cache.go | 95 +++++++++---------- .../kubernetes/util/metrics_cache_test.go | 37 +------- 3 files changed, 46 insertions(+), 87 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index d4eaa3ddc72..584699a53df 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -179,6 +179,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Added function to close sql database connection. {pull}10355[10355] - Fix issue with `elasticsearch/node_stats` metricset (x-pack) not indexing `source_node` field. {pull}10639[10639] - Migrate docker autodiscover to ECS. {issue}10757[10757] {pull}10862[10862] +- Fix issue in kubernetes module preventing usage percentages to be properly calculated. {pull}10946[10946] *Packetbeat* diff --git a/metricbeat/module/kubernetes/util/metrics_cache.go b/metricbeat/module/kubernetes/util/metrics_cache.go index ffa8f235ed5..7ffff06edfe 100644 --- a/metricbeat/module/kubernetes/util/metrics_cache.go +++ b/metricbeat/module/kubernetes/util/metrics_cache.go @@ -18,17 +18,19 @@ package util import ( - "sync" "time" + + "github.com/elastic/beats/libbeat/common" ) // PerfMetrics stores known metrics from Kubernetes nodes and containers var PerfMetrics = NewPerfMetricsCache() -const defaultTimeout = 120 * time.Second +func init() { + PerfMetrics.Start() +} -var now = time.Now -var sleep = time.Sleep +const defaultTimeout = 120 * time.Second // NewPerfMetricsCache initializes and returns a new PerfMetricsCache func NewPerfMetricsCache() *PerfMetricsCache { @@ -43,7 +45,6 @@ func NewPerfMetricsCache() *PerfMetricsCache { // PerfMetricsCache stores known metrics from Kubernetes nodes and containers type PerfMetricsCache struct { - mutex sync.RWMutex NodeMemAllocatable *valueMap NodeCoresAllocatable *valueMap @@ -51,72 +52,64 @@ type PerfMetricsCache struct { ContainerCoresLimit *valueMap } -func newValueMap(timeout time.Duration) *valueMap { - return &valueMap{ - values: map[string]value{}, - timeout: timeout, - } +// Start cache workers +func (c *PerfMetricsCache) Start() { + c.NodeMemAllocatable.Start() + c.NodeCoresAllocatable.Start() + c.ContainerMemLimit.Start() + c.ContainerCoresLimit.Start() } -type valueMap struct { - sync.RWMutex - running bool - timeout time.Duration - values map[string]value +// Stop cache workers +func (c *PerfMetricsCache) Stop() { + c.NodeMemAllocatable.Stop() + c.NodeCoresAllocatable.Stop() + c.ContainerMemLimit.Stop() + c.ContainerCoresLimit.Stop() } -type value struct { - value float64 - expires int64 +type valueMap struct { + cache *common.Cache + timeout time.Duration } -// ContainerUID creates an unique ID for from namespace, pod name and container name -func ContainerUID(namespace, pod, container string) string { - return namespace + "-" + pod + "-" + container +func newValueMap(timeout time.Duration) *valueMap { + return &valueMap{ + cache: common.NewCache(timeout, 0), + timeout: timeout, + } } // Get value func (m *valueMap) Get(name string) float64 { - m.RLock() - defer m.RUnlock() - return m.values[name].value + return m.GetWithDefault(name, 0.0) } // Get value func (m *valueMap) GetWithDefault(name string, def float64) float64 { - m.RLock() - defer m.RUnlock() - val, ok := m.values[name] - if ok { - return val.value + v := m.cache.Get(name) + if v, ok := v.(float64); ok { + return v } return def } // Set value func (m *valueMap) Set(name string, val float64) { - m.Lock() - defer m.Unlock() - m.ensureCleanupWorker() - m.values[name] = value{val, now().Add(m.timeout).Unix()} + m.cache.PutWithTimeout(name, val, m.timeout) } -func (m *valueMap) ensureCleanupWorker() { - if !m.running { - // Run worker to cleanup expired entries - m.running = true - go func() { - for { - sleep(m.timeout) - m.Lock() - now := now().Unix() - for name, val := range m.values { - if now > val.expires { - delete(m.values, name) - } - } - m.Unlock() - } - }() - } +// Start cache workers +func (m *valueMap) Start() { + m.cache.StartJanitor(m.timeout) +} + +// Stop cache workers +func (m *valueMap) Stop() { + m.cache.StopJanitor() +} + +// ContainerUID creates an unique ID for from namespace, pod name and container name +func ContainerUID(namespace, pod, container string) string { + return namespace + "/" + pod + "/" + container } diff --git a/metricbeat/module/kubernetes/util/metrics_cache_test.go b/metricbeat/module/kubernetes/util/metrics_cache_test.go index d5ce7bd2bb8..649c1f5fb86 100644 --- a/metricbeat/module/kubernetes/util/metrics_cache_test.go +++ b/metricbeat/module/kubernetes/util/metrics_cache_test.go @@ -19,45 +19,10 @@ package util import ( "testing" - "time" "github.com/stretchr/testify/assert" ) -func TestTimeout(t *testing.T) { - // Mock monotonic time: - fakeTimeCh := make(chan int64) - go func() { - fakeTime := time.Now().Unix() - for { - fakeTime++ - fakeTimeCh <- fakeTime - } - }() - - now = func() time.Time { - return time.Unix(<-fakeTimeCh, 0) - } - - // Blocking sleep: - sleepCh := make(chan struct{}) - sleep = func(time.Duration) { - <-sleepCh - } - - test := newValueMap(1 * time.Second) - - test.Set("foo", 3.14) - - // Let cleanup do its job - sleepCh <- struct{}{} - sleepCh <- struct{}{} - sleepCh <- struct{}{} - - // Check it expired - assert.Equal(t, 0.0, test.Get("foo")) -} - func TestValueMap(t *testing.T) { test := newValueMap(defaultTimeout) @@ -82,5 +47,5 @@ func TestGetWithDefault(t *testing.T) { } func TestContainerUID(t *testing.T) { - assert.Equal(t, "a-b-c", ContainerUID("a", "b", "c")) + assert.Equal(t, "a/b/c", ContainerUID("a", "b", "c")) } From 091a67391e8b8c0fffd386fdf8f9d96087363c41 Mon Sep 17 00:00:00 2001 From: Christoph Wurm Date: Mon, 4 Mar 2019 12:53:46 +0000 Subject: [PATCH 123/332] Add missing host.* fields to fields.yml (#11016) The `add_host_metadata` processor (default since 6.5) fills the fields `host.os.build` and `host.containerized`, but there is no entry for them in `fields.yml` so they are missing from the generated index patterns. This adds them to `add_host_metadata/_meta/fields.yml`. https://github.com/elastic/beats/pull/10992 already addressed this for 6.7. --- CHANGELOG.next.asciidoc | 1 + auditbeat/docs/fields.asciidoc | 24 +++++++++++++++++++ auditbeat/include/fields.go | 2 +- filebeat/docs/fields.asciidoc | 24 +++++++++++++++++++ filebeat/include/fields.go | 2 +- heartbeat/docs/fields.asciidoc | 24 +++++++++++++++++++ heartbeat/include/fields.go | 2 +- journalbeat/docs/fields.asciidoc | 24 +++++++++++++++++++ journalbeat/include/fields.go | 2 +- .../add_host_metadata/_meta/fields.yml | 19 ++++++++++++++- metricbeat/docs/fields.asciidoc | 24 +++++++++++++++++++ metricbeat/include/fields/fields.go | 2 +- packetbeat/docs/fields.asciidoc | 24 +++++++++++++++++++ packetbeat/include/fields.go | 2 +- winlogbeat/docs/fields.asciidoc | 24 +++++++++++++++++++ winlogbeat/include/fields.go | 2 +- x-pack/functionbeat/docs/fields.asciidoc | 24 +++++++++++++++++++ x-pack/functionbeat/include/fields.go | 2 +- 18 files changed, 219 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 584699a53df..a9ee19e8aad 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -134,6 +134,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Ensure all beat commands respect configured settings. {pull}10721[10721] - Allow to configure Kafka fetching strategy for the topic metadata. {pull}10682[10682] - Using an environment variable for the password when enrolling a beat will now raise an error if the variable doesn't exist. {pull}10936[10936] +- Add missing `host.containerized` and `host.os.build` to fields.ecs.yml. {pull}11016[11016] *Auditbeat* diff --git a/auditbeat/docs/fields.asciidoc b/auditbeat/docs/fields.asciidoc index 89668e30610..5304b19be0a 100644 --- a/auditbeat/docs/fields.asciidoc +++ b/auditbeat/docs/fields.asciidoc @@ -6117,6 +6117,30 @@ XX64 hash of the file. Info collected for the host machine. + + +*`host.containerized`*:: ++ +-- +type: boolean + +If the host is a container. + + +-- + +*`host.os.build`*:: ++ +-- +type: keyword + +example: 18D109 + +OS build information. + + +-- + [[exported-fields-kubernetes-processor]] == Kubernetes fields diff --git a/auditbeat/include/fields.go b/auditbeat/include/fields.go index 867dcc8c522..3192fda9562 100644 --- a/auditbeat/include/fields.go +++ b/auditbeat/include/fields.go @@ -32,5 +32,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "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" + return "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" } diff --git a/filebeat/docs/fields.asciidoc b/filebeat/docs/fields.asciidoc index e550a37c11d..45c92efc39d 100644 --- a/filebeat/docs/fields.asciidoc +++ b/filebeat/docs/fields.asciidoc @@ -5359,6 +5359,30 @@ Total time in milliseconds elapsed between the accept and the last close Info collected for the host machine. + + +*`host.containerized`*:: ++ +-- +type: boolean + +If the host is a container. + + +-- + +*`host.os.build`*:: ++ +-- +type: keyword + +example: 18D109 + +OS build information. + + +-- + [[exported-fields-icinga]] == Icinga fields diff --git a/filebeat/include/fields.go b/filebeat/include/fields.go index 4227fc3d3ea..bdfb144adce 100644 --- a/filebeat/include/fields.go +++ b/filebeat/include/fields.go @@ -32,5 +32,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "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" + return "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" } diff --git a/heartbeat/docs/fields.asciidoc b/heartbeat/docs/fields.asciidoc index b9a7e155c33..ad76d636268 100644 --- a/heartbeat/docs/fields.asciidoc +++ b/heartbeat/docs/fields.asciidoc @@ -3383,6 +3383,30 @@ Hostname of the agent. Info collected for the host machine. + + +*`host.containerized`*:: ++ +-- +type: boolean + +If the host is a container. + + +-- + +*`host.os.build`*:: ++ +-- +type: keyword + +example: 18D109 + +OS build information. + + +-- + [[exported-fields-http]] == HTTP monitor fields diff --git a/heartbeat/include/fields.go b/heartbeat/include/fields.go index 2858035929f..29b7c7dc254 100644 --- a/heartbeat/include/fields.go +++ b/heartbeat/include/fields.go @@ -32,5 +32,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "eJzsff1zHDdy6O/+K1B01bOdLIcfoj7M1L2EJ8k2y5LMiHKcSy7Fxc5gd2HOAGMAw9U6uf/9FboBDDAzu9wlubIuj7qqszQ7AzQajUZ/9z65ZstTwnL9BSGGm5KdktcvL78gpGA6V7w2XIpT8n+/IITYH8iUs7LQ2RfE/e30C/hpnwhasVOy9y+GV0wbWtV78AMhZlmzU1JQw9yDkt2w8pTkUvkniv3WcMWKU2JU4x+yj7SqLTx7x4dHz/YPn+4fP/lw+OL08Onpk5PsxdMn/+FnGADV/nlFDTuw4JDFnAli5oywGyYMkYrPuKCGFdkX4e3vpCKlnOErmpg514Rr+KpYNdCCajJjgik71ohQUYThhDT4NsfXFKPxbO/dihGLZCoVoWXpJs9SnBo60ytRh9i9ZsuFVEUPc//5171ayaLJLW7+ujcif91j4ub4r3v/dQvu3nBtiJz6gTVpNCuIkRYYwmg+R1A7kJZ0wsrbYJWTX1luuqD+NxM3p6QFdkRoXZc8pwjZVMr9CVV/Ww/1j2x5cEPLhpGacqUjfL+kgkxYWAUtClIxQwkXU6kqmMQ+d/gnl3PZlAVsYi6FoVwQwbRh7f7iKnRGzsqSwJyaUMWINtJuK9UedREQr/1ix4XMr5kaW4oh4+sXeuxQ18FnxbSms9XnBhFq2MceOvd+YGUpyS9SlcUtW90jfObndcTpMIA/2Tfdz9HKzgWRZs6URTDJqWaD46R7kEuRU8NEyxgIKfh0ypQ9Wg6liznP54BYYw/TVDFWLolmVOVzOilZRs6npGpKw+uyHcbNqwn7yLUZ2W+XfvpcVhMuWEG4MJJIwTrL8binMyY8Wh1jPIsezZRs6lNyvB63H+YMB3LcMlCTYyuU0IlsDPxTy6lZ2JUyYbhZjgifEiqWFnpqybAsLcGNSMEM/kUqIieaqRu7UNw8KQglc2nXLBUx9JppUjGqG8Wq9IXMU6MmXORlUzDyZ0aBoGfwZkWXhJZaEtUI+5mbSukM7gFYVfYPfl16btnXhJFa1k1p2SFZcDO3wFJeastKTMCFaoTgYmZHtQ8tONFilOWbuOGOzc5pXTO7ZXZNQFZhRcBb7TpF5pA+ldIIaVi8DX6pp5ZQ7QiWRC1MsGTgvqWc6VELY2aJwPL/KS/ZhFGTwTk5u3g7shwdL4Ywfrost720rg/sgnjOsogQYo5TSKaRycypmDHCp+1JsMTBNdH2GzNXspnNyW8Na+wMeqkNqzQp+TUjP9LpNR2R96zgSBS1kjnTOnoxjKobe5o0eSNn2lA9J7gmcgmIzxK2AhTukRrf9fEpsQTBpQjPh7gUWXFNrTk39s+/4dAJ6UQsJ2J2z7LD7HBf5cd9+Oz/7wK4d5Y8VkJmDz6KDxQgcEcYGdCM3zC4bKhwn+Lb7uc5K+tpU8a0gGSt/IKJWUjynaNLwoU2VOTu+ukcLW0nt+crGWvSGMsFmooKkEssIyWa1VQhWXJNBGOFPXDCceDedMmAnlhzWdnJp0pWHXycT4mQxB8qQAGeNv9ITg0TpGRTQ1hVm2U2tNFTKftbbHdvF1v8YVnfssX+SNvBiTZ0qQktF/Y/Aff2gtcoTIStnywjXmhvwyxFlQjsKWC9fX8BY7lpJqx9BXg1n1riSIZbTSgJkVQ0n3PBhtHuhujjnhe7wPzPgv/WMMILexNOOVO4DfY4AQ6+5lO4uOF219909iVIWZZhI4OHbxd+F4Cd82JwqS/oyfTp4WHRXyqr56xiipZXQ4tmHw0TBSvut/DXfo67rh3ZjhVcVUXLcukuFk1orqS2Wog2VFnhwfKAMZI1L8bhJlqHlOkXqYSUl7wnIr2Mn20mI525gSwXKNgUZDOKR4gLbjg1EpBAiWBmIdW1FaIEAy0B2SLKPorNqCrg1rO3nxR6FL2JV+OEF1zhA1qSaSkXRLHcKjh4v394eeGGQ+7UQtYDxz6wr0fAAJfXTBT4+uVf3pGa5tfMfK2/wfFRSK6VNDKXZW8S1CXtvnWmU6AiM6tcePHCI8MoKjQFADJyKSsWpAMri9s3DVMV2fNKr1R79vJRbMpUMr3oLEej1OJ+dnIe7uGEBcEukl9hWmJBETO/g+3gMcyoOzpi8UNbrtToBpbfSpFcWJB+bQSiGIRKJyY6UwQZGKdFpJWu2tEsueCW7MPBTRVu+8eNdeAnUaxWzAphcDXiLW21R80qKgzPQaJnH4270NlHPHEjd29yHS50I8kNt+vjv7NW/rfrYwp0As1NQx3mz6dkKRsVRp/SstSIRpAkDJtJtRzZl/z9og0vS8KEFY0dKcpG5XgHFUwbu/sWhxZBU16W9pzVtZK14tSwcnkH8Y8WhWJa74ofAjmjDuAIyU3oLrHALqoJnzWy0eUSidaZZ3hZJuNpWTGwT5GSa2P36/xiRCgpZGU3QCpCSSP4R6Ktfm4yQv7S4hfv3HQ8q+zDXiq68LB5Yh9n7sEY8dcXH8A41EoHRYMGD1SPxxmvxxakcYbgja3qVzNROPkOCCwZ0t4LoJxkAzd1veFNnby4Zm/OL8KCHTfELeos0xleLGhSBU2dnF/cnNgH5xc3z9pNHYC7lspsCHkpxWwz2C+kMiuhDsYXmu9CuHl79vJWxHkQcON3AYVjczhBNPOX5C0ziue6B8tkadjAQd9kJ1Dh7Q8RBIyjFyebgf1nOwLqxFbJiK8YI/EWcppsn5CA7d9xBS2kxxtSGM52N1BnLBbhnWT1ffKwI1rdAs33TAYDFLXqhVLL2PxEia5Zzqc8J6VEkytRrPSsyN5rN61Yh3+ksnCm5gym+I29Ze16gbl6ztdFb3y5kKELJrIpO4CSyYe3LozO5FUteQfgNfgh5I0UM26aAm/Lkhr4R6qYBSL46r/JXinF3inZf/4ke3Z08uLJ4YjsldTsnZKTp9nTw6ffHr0gf/tqaD32RueCCXPVsU3ctqr++b5lTbGNIsy6YknvpDJzclYxxXM6DHYjjFruHOiXOA/MugLWl1TQYhBIxWZcip3D+B6mWQfivzZswvJBPHLzCZDIzVoMvpXCKEbLdRvNtbzKZfFJNvv88idi51q14WdrNvtTwOk2/FYw9//15RCkq7Z7QEi+M4g/a6b2vTwcvYmas2eiI+KMSaj9yCmZKSqakipLMc5NohheCx1JDrYLJdVguEPuwhVeJjkThimn1U5LKRURTTVhCnwZYMTw+qPuDI0glqSeLzW3f/FOkNyTsu6B806C6c2+Xi7RrcQFoY2RFdxcMyb9ulfs2ERqI8V+kXcNG7IpunaN9tFmZo3v8L6NrlGUAGQDfgwupopqo5rcNLGzo0WM3YfEoIqPb/FvTJ0AhyY/HRuEqSCvXx6ju8XeclNm8jnTuHdwZ/NoevQitTDbiz51BSb+K66DCTEFIgyoGuH8T4pV0gSTI5GN0bxg0VzD0FHi3CnxkLHHBT521Jd6LnHYdijwIrnpY0eOmyBF3O16sf88yJpK3vCCqY304kCNLD++n1CfXPiwYg9I8PbFrmqWH4/ILGcjIlXKaPiMG1rKnFExIJ7SG8pLOuGlvcp+l2LA+r5umY3eZ1Sb/aP8fqs9i8Agv4Pu670VQI5A5+1GDiwEb5CNoF8FX39VmwHvbpRtIfY2/OyeNugANt8/On5y8vTZ8xffHtJJXrDp4Ybqv4OEnL/yJAfgBz/CatiHfXIPYzEKYEXX022A+V+GHUl3wao5zipW8Kba0CTgOVHkcboFZpqDnPZgdPDs2bPnz5+/ePHi22+/3QzoDy23RljAha9mVPDfnRuxCLEezp2xbAM80gvZXvYcQhEIRSPRvmGCCkOYuOFKiqpvWWovvbNfLgMQvBiR76WclQzvbPLT++/JeYHREhiiAt6lZKjW29IJAnEXSODkXhroPN5MIghfpRZvZ5buhSNFlnWvnHfBIWjnde4JZ+6V03gYsIdq5qecs7K2YjGKJXgjTqiOiCXMob0ev7QMyfBWm9jCQOy+3NVxf4/Dk4oKOrO3NfDRsIRBbxbGXn1iX2YAifBiiDdWdLZbxhjLBjBbMAsgWAuqyaThpQGBZwWAhs52BV97OBx0dOj+2yWGWghQc+5NnkQ3bjJ9EulIQtDg1V3uNUDKYJBg5NpJudSr3g+b8anouw3cfrFnCXRNNLQeuPjQNYNu4fBDztbGHpPP1U2V+NkefVWfra8q2qe/N4fVMOif3mu1Ho7dua5iTvK/wX8VswzvGQJ+95k6sbaB99GT9ejJ6q/q0ZP16MnaFImPnqxHT9ajJ+uuniwWBKEkt5NsrAu+ZYbuxzdjuF6NtIP9ASkjg8mit1DV65eXfl7cPRdUKGFlmhiZkTHLdeZeGmPuhkqzNO2FWjXaYPA1bFE3Z9P/+cVqTL81TC0hGBajr4MywUXBc6bJ/r4z/1d06YGxiNUln81NuUwPTciNi1YDY8CKEMTSymtcGDZTLmCVFr9akFFSSzXCfM4qGvDi7tfB5YCxt1GYmefe55ocQeLNhBl6TAZtbdELHcJUSnaMqq+jRxtn17WWzRySWVywLo4PqgoVS3LNRZFZxmJXWGHQOL5g5pGHEvPM7JaUDP2PdvN8ah1EXmNuYzdBjRvNymnrbrRiph0/YHFz1+GnyqiYuly6FM5Vqae3AROloN4CCezyQAZpe2kXO8nmwXnt6J5zo7k4xUAgz5teZsPrm7skfyJ9DNn7fWT3sMm/lDOCTgHF84TKMnIGv6bZEl6x8TRoFxflXoIxaY4rpm1CZUbetIm/wNl8LijkDfCK2VvWeyjtUztE+3VIIZXTOIXYD0J9KiKBrBMfhuBCC9p8DtRqyYRh8oZXNqm3+1nFLVY7R2j9GkgHmTCzYMzO4ePFReHiBphyE7i0CkwnzUup7UrOPKpvR6u3DEnFrFAAekYJY2FUPvwzSbq1QAwjdDiTNcFrTAItaitWSbUklt1BvL8bqOhkAN80pWAKneS8zQV2r+mcCrtQyAfe/iLfKas6f2W3PdidA6/dMmvLcv4+lA9j9rXn246f3JxDCVkzfgO+ze5BX9iz6J2+SSUCP1oylr9eRmAUtwO4ExOJZF5Dxisrhqt1mCaDWp40hjfGIzLWhhpm/0JLqqpxRn6hyhI9JE5PGwhVCpKHnFpJZEQWqVhRlxQMQy72xArErpgEzXNWG8g2dWEoeAt56WVE6pJRDUwyGRKcADltugJwIACAe+AycXkyO7lQkC+4GYa2PYgDcz6bu3yjYW6/YsfO0/3nGpkOJDfZ7Z5T4fYuwwSw8cgb9DUT2mUBtYoFTcnJgd7CGeRT6hPANtj+dKPYA2x/MmKjWWf7h/a/sTojOIGBlw7FS5gdpalDGjDePjmtDXBXl+G7kiEE3dHl+bU0wUVKAGHT20M+p6kF0VGA385xdH3A4QZevk+Lwp5rdyHvw4XMinG6feMpL9l+rpi9HsfonsJ6Kly3OaX+fnSr5HauChTmwbMJe1NTrS1O9zE9rr9BsjG53J1z167ETbGOXZ9HP0W7RIXb4lFErjqNhmxHT40g9gj69Mz2XseX3Q7pJs/B9wblYKaUl41iKfNNxlzNiLc5femQKxnxBqfPwf/pUvPfM5DoUJB22Gg6CoX9c4GroDcSYpFCgEhbdMkSJ5h8hlQgWTTlzqtH4CzOpnRrHQVM8I4ZRvJ2NKIOdiTMgZcqVP0YPKbVUv9WDvjxqKGaberRvDMW3DRDZgcpLOGi9W/s3huTry2r0syQAycha2a+sdhIV21l+NTo0UzsV1awRjQBl01OcozekMXrrB8dm4yr9sRFCwRWjgFTUXjk9tgSK0KddU3aiSQzcJI0u2GKm00lmVWev73ne5vtzaWbr3NVeTA6gsovc2eMHQ7vC1+5a79i4LoTloNFIYFBewtFpOzefKVJUxMjO1w1uXcsx6voNSOgC7npuGOvuRSaawPaINrheiaucAlhjnx5Z2r/kvxsicc0AjKqna3RhV5zrPWj53IhMAYvN+WSLJmxZPo/pJBYNU6q62RIKxNYvq3JgiVBIl+Sc03+z5dHxyf/5GMA03R1u03/AxXopLq2gMBJAutDa8dKBsSATZ5f60Hq3LtkNTn6lhy+OD1+dnp0iGGqL19/d3qIcFyyvLFbjf9K9szumpUsUExT+MZR5j48Ojwc/GYhVeUvmGljxQ9tZF2zwn+G/9Uq/9PRYWb/d9QZodDmT8fZUXacHeva/Ono+MnxhoeAkPd0AbatUMlMTsGerwLp/+wiXAtWSaGNogaNN2iD5aarGTgWjjeQowguCvaRoX25kPlVFKNfcG23vkAuRYV9fcI6I2I5NFZgVQ8eKg0py4BY8GOPr9CeMo63FuY+JVNaJoJ3C4b/rXdY5lTP7yWutVTVxqAP/e3szy9fbbxjP1A9J1/XTM1praGqF9S5mnIxY6pWXJhv7CYqunB7YKRFFchFHSZDNtrUcFE2quvdv0OIycAoXNSNufIvCCqkZrkUhd4MJa/ciAnLtjwlGqkvBSN1g5YAZIn/ZqIAqrwWloUBc0P1oA0M6zoZPHfPWWDvAIVAcscZMLi4Lz7yim2cX3InpSCcxHYBUQG7pNjnV5qE0qZt4TZnj0svJwd2quyXitFiSb5m2SyzKhRtSkMul9rSVRhYf4NXXjKeBOBpifHrC667Yu5ZK9qHuXFmYCKnhFqOIAVYJs9fORj2XjdK1uzgrNKGqYJWe9+k2iCdTBS7QVOp/+Tyw943YH0V5IcfTquqvb05Lf1b+4dPTw8P974ZMu+jbrnhISni2pBrt9LpwDh6L01tsHCre3lIwG432grlXBsucmeU/pfoN1eNJXrkJ+4JK07vhsvVvZz5ypsApsaybi0leCY+LFK58jodYJBLlVygANpZNMcqtHEpuWTMyTKqJqYY0jd4jHJaZmTcrnOMzoK4mGX4Ld2Wj0bR3PgbKIZw1NmzAGxYAvdVc9P9cQXLcgx0rWsrZknwIdgLGm0wVh9CJ93A5vR4VPvKALyxk8JO0HLDLuR9glxDZ77KG+Au3XiL+4D3UbyClkth2bi+mmDZ6RbsctsDhuz61uPlrEuWUQwih+aG31iFwOJnypU2vvjn0KLYVib8bZdkb6JbFwRTxcsJS0jNn1STkq5fjeL6+kp32N06JjgtJd3Qufqe62sCY2MdUC57yprj0drJ6UTLEiw7+pv0nP2sGVagwrJeX+mgHLkr356utcu7ElJVW2zcFut8B6ZI/jsrYL5bljwK3q4SBPhDyy+ODg9XlOysKBcYhYNlOKHGllVJKwygpwJcgK7cGdr3tOazDtdvAdNQGRyGWVAs/6IZI9RZVGEZiFOnn9Ky9EXcOn7pKQ88u+ODdl7q79oXVuHvDEbpOjqJs4qkbijwFWsysWKbZ3fO/2qfQxyM9yaCaQOgzgAMXyLbX2RUa5nztjQwqI6+2F5SGQ4RduDMJd71CYQ7ImYuNXOFwtEIDZOde9GcvJWCGwlXwH9+d/72v3xRcTCBuQRvqMcHUR5oyfXm0n56C51OGV4I9vXuGkxUU97ZezZ2pLYx3abVo1YdkmHpNtniC2oBki79vWwPZ1tHXs2YuXqo+T7AcAA+iBR6WZVcXOvevDB4EvJ1j1ljRgA7GEZPjjMc5pAMU8oFYVQvLV4MA9KYLB1x+c8jg0dQTGsx6yExNmnfYx0AO/h+wZI5IgVXcK4cGr/pobFgSe2De8z9CkZakTu6kny4iENz7jH9uR2otVT5OBzkSiL83fGSLhhNFHbwQHRkZUpwBFjd6OfzV98gp3A3ZBQ09fUl/NgiiciFiEp4BTviIs7RvS+VwGhfgWVbJamJIcviYVByoXhF1RJ5FuDi+85y+zMn2Q8PNnecvD84b3V3UgyH+/DZyeEwMG8tfca7zAWRuaFlx7zaA0vz3zcFK7H/DCcY9SnBjm+Bgfcs43BGRGkFFloUXhkZ2znGhKcSCXh3x33GUiUZ2uvBTqTrBMA3Vu6FCCdAmQtpAJG4koU9P0Vv5nwXM1fMUAziBldz0RGhYpL1CUnRo81D+5BUo9C+ijnprg1DhXe0ExKVZXolu6GiF46bhDbdMwTrYWxjqyNGcd2+djgw6YO6pMYS8SdO2Y49iABWZ6+jyvduq39on2xandpXZUmkZVdgmOSyqhuDYYWuvAmEZ0NIXdQdY8C6GLfHaOVNbIYhohjBtAcGFrIQt8cQ2pUCTtugwTlVxYIqNiI3XJmGlr7AiB6RV1AVIar+gErLj82EKcEMmDsLdpfka7uiYSK4vwv5Bzd2XDWla2gxUTV0r+cvvMNy7KEb262s7JIVM43CUlUbFGLZ1cre3boqyH90FjhYT7SWaA0/Q444apMun6UpO27s3xpaAof22eV2FB9lawFx0Udt0I+VRTA+SNtz3KkfxXJehOY9qNoaab8ZSvbeZRQpnt2u7e1MB6L0LjjXUAFrw4xA3XdeuMC7LXvnYjZt0jx9LtBOcmuhmtMki6Lx7sQxtCOAbcv6yHnoTHjgCrz2udyfLoH8B3eM1sy860YeA8foO6lcmSBfKc01i3A2i6ROnB0GOu6MQ32ncad1x5TcVCNfhCZKMQtsdRRb36OiRJHZJRmxJbpbCC0EOqp8zg2DqoJ3Rmbrmf344tnVs5MNva8/1UxR0/YdSoAZCreI5VN3QbdjXMIY0RvbZYrbw/bTZbfv1nD8rewAHu+qYg244E+T0Y2srxxOu65zi74abEbpJ/uhwVXnca8/zz6w16u4Axm5S8K5l8qSwXeQsdnbdz8x+RoaTuVMGKlHpJk0wjQjsuCikIuuxbkt0ETVgosdpp+25P2W5pZI/n3vHovFu9KH5FtycoGZ2dAS7OW7iyW8lb/SG3b/daCs6G0yITfQpU51KiNFy6IV7wgV911YwSacim1WdOnAcGQHXTeLOTUjgmONoH/gRBcxCQ4spp+hev/VHB1mRyfZ0X02yG8GKCCKLog2Ki0TGeW9WKn9YQntJDvJDvePjo73XQLCfdaC8G2wpMdKIgO7+1hJ5LGSSArrYyWRx0oij5VEOiA+VhJ5uEoic2M6VvMfPny4cE/uWhHfDhEiae5SXRab4mUVM3O5M1P4D8bUfiqCUw3kqaAzBo1dEB03YXGAh5GklAumIOhrKlUoDpKRS5aehL034cWXtObGjgA7tufdo3vnPvfBilSvX17uEaIxBX4wbH/GzIjUkBReNwPZkR6PE1ksM+e52RU2PzgLJFBUQCvMPAQ69jFfSFUOZHd7uKGZodqw3v6d8s1w/DZNDijXTz8Et12dPj04mJRylrmnWS6rg6FV6FoKzTJtqGl0l3PftpLNq0g6QsbZCM7WY95hBSeHJ2tg/SNIxQF+N1pZWXboAZlEUPwHgDvKjjYpUxmO4nC5yk2pYFXJynXYloaWHRezk5T9Kf3aoh60gTmjBVOpCadd6smT57cwmU+/vMt1C1tJUi9eDK7EH4LPa5Pc+bjnLsUH/LPZptuOftinVkWepeLKm/BgvXiCTiuapNzLqLrNHcQUwFofi/f3bLyRs1Zq9bHzQ3ntWKE6KQvwy9n7d+MRGb9+/97+5/zddz+NB1H7+v37HWRKrk4pBKEXHHdvl3ZBsZlp42y1lejrXDAY8gs+AB/ebHHo0/1oNzgcrqPojWS4CZtiqYaSG4wJMKSB1IxQWaOmqldc7Rz9uIqGMm1k7IZ35bgdUcYeX+g17JMV6jTqn8Tk4EaKKxd0Che4hY96i+s4t9DlPKc3LGQzaUtXGN6T+3pzdV1yVqCnjIlcYg1wRQRbpAofF0xDL6gblI/zklEByb4p6ENx2tvmTxItXWLkV70ESiuJg2vbm+9Bhr81hzJhNy5+OWU575KHm0cW+WDofkP0XFZVIxyuMfRW3jDlmZaLHlFpOLWLHXH9vN1PdwpO8cOG/I1uPLS3it6BSe48TmjGb5i9V5y3D6r/Sa826VZt9wgaYlbfg7TwC5/yT+e+Pked76fLcwhMLPEgL2K7gyM08oYumcoIr29ORvb/n9n/1ywfkZpXI8JM/tnprevUVruOgYARKugV2lB2RS+EnJ+9OyMXrk8/eQezka+9UrdYLDILRibV7ACTP6DS24Hv7L+P8PUfZB/npio7nk9CLg0VBVUFoNxXbPHfwsHlmtCSzwQWAcDT9o6Z70q5sHyvM56G597SAjmGyCIal3I2tL7BPXg2QOiKCr1Fm4PtemlA9QwdTmG02y69XWjDaFvOhZEfcfzY+pYMGeAlpT0f5OumqEfE5DWekX2eVzUcjuybz+54rD0fJq8HAkBq7MyxQ133DFGNDBV9YdGsjlp91o+acKOo4uXSpUlh2Z50h+ZczDSKDBXPlfRpOrjltNSyzfSMX9bXy5qNCM9/S1OXpzRnEymvR8QsuDEYqxZzTW8Z1dw0TnBpi7reMFF0IGxTh0JeLstlYQUL52oOCaMoIBwU9qY4v8DofZ2CZ4lRQ/TPgiufq/352RTX0R7lVZ/2PMfaia7zPFxzfhp05xD2MQML0YiUwCd+pbnd+HDq/et/XwgGg3sPwwVXbGel7F75wb3+4OU9o+h0yvMOAt8zK45iamwrcp92rqJ/IFxMZNO7ov6ByMYM/8CFYSpVLvEHy74Gf2gElKQYqMFd0bqOqji7wrJWTt6HvnekatMFXUneURCEQdRKGQtWDvNn3Y7zlSbgWLdIu+FsMVQJfBgKj16pSM0Ur5hhajVUHQ4SQdiFKgHH/hfiBkMiu59qWOZym9WjvKlUC6oKVlztJig16tEUkqxdVlr0k1PWayU/DhuCjr49zo6yo+x4qLQ0KE9mebW7tIkzKIuDJZcBdtBJo4455xdYD9hdAdTJczSsq8tASevFS9W/LJgvKDFSlvt0JqQ2PCfaSZNx582Uiku56Foh3jCqBOY4UxPcFzNu5s0EHBd2i6Eu/UFA5D4v9nXN8sGd+OrodP7TP+p3Jz/849vvn779y8GL+bn694vf8pP/+NffD//01SbW8B00bbrVuIqWR7g+wOsDuJ9IqxB7/jhQMGfseiDB166SY9whyz/31XNGZOxFXPcTkjZXRDfVIEKfPHsxcOXepyPUrbhwo98ZG+77AXy0vwxgJPx4K06OT1I7TCfE1gcVp083zPwRYbR+snzNck5Lz1NHIVsUkyZaYdhl7YZGuAUzLDcjPzK8jon1t4+17/U5d4tENQa9zO3FW0ryRhtZhZQfHAc6I0NWh1tXJ8NfiimfQQVbI4lqxBbr1HJq7ERRkVOfdjTlii1oWeqRvdlVoxEvBqnnoFawHhjEp6n4uyq6BjUTWio9Igs2SWaOhoeIi1JqTYYGtfg6u3jr1u7MYX6LY3sYLcs15jAnG+GwEMVBxXKEqMRV6bC/2hcywD3W7aW/BpXdggLkrbNG/9awBockrz+8gdwzKYAU/BXhygylbSscjYSaPlAQsWBQBt6tHhpBbtTOpct/Pl2/wV70/CdsFxmopDf5p8xuWw1FT2N9MBgCC8QpktbSA2Dcr7XPutySFo6Oj70tkao4LXdsGQxg4GwulqsPzM5ymeZpm/iwPb6I7m3lg5lyOW+WRfo7zVsc29GWNdNZ322YDDb2KoEaj8jYs2H7d15o+E+tXc3xj0v4iyxLfBmZuf1by5CHvY9+2MfsocfsocfsocfsoU0X9pg99Jg99Jg99Jg99Jg99Jg99BBIfMweesweesweumv2kFQzKpxD1H3oNbb+L5sHysXD+uuYCcXzOaIP7HarWq5VNRVLe+kiYsLAsSbdiW/L0pazc1bWUNaVKkXFzDd4Ma6lUNQdhgoMUoTwM9c/0oWEhnnjxdwlyniXAXTxLnXF+D+yFlmMsyyluE7j6xWWgc1p7b7WgL4lYKUVYMgCMKj/97T/Ad1/Cwoa0PgflooeQNNfqec/2DFYr99vs7xNdPsVmv0DgN3X6beHfSt9fqU2f5/F9PX4dau4nw7/kKlia3X3bTZicyW3p7XfB+q1+vo28G+kq0cBZNBJ0EGJrPsieXiX1vArGXboUJ2t+JKK9paHll0QdOM9akmnOIh/Dx2veXGQcCIX8hOnNeC94ltyZjUvxkRODRNEG7rUPm7MN6bGHvNWmY5iknJZczQpQA3MUk5oGbU39CBHAts298HGtfk2jyu4CPhJubrrfqfnn1aw8eD0TJOYMwWtN4gVhxmUiJspWjk5XRHNK17S4TCqwYXUgwh9gMRev4qaQm1BPtR3gqrZNpl8d8IiVbOm6vTWs3/e0qVVclA2RnKtlTQsN+DW54bfsGHPYoTS/9zTer43Inv7pf1/K+jY//qub8/2/qu/aPaR5Q10RtrV0s8m0EGDYTKOO4eeCbTTD67ooNHqYMLFwSC1APfb9Y7BJAOBsXYF8NsIc7zwIBjffIfqsEaMwX1JBYZpxx2LUg9WVPiQUDJRcqHBj+pT5RwwHocLNiE1dPTxnTetaC0Ge6pAY8Eiu8/patPej0829hFCO6XzVw/fiKe9h48Pj57tHz7dP37y4fDF6eHT0ycn2YunT/5jw+v4g2vNlJCla88zAPZCqmsuZlcY2zXYOf0u0sTBXFbsgJZx/4JbwXawkACLt7yGKzsRHZx1PRUd3icPNxUd2q5wDBtw+8LeU5rzkhsrAtT8RgLhUiUbUdibnzPsoIDthP1w4EOH33S3v4rLJNCMQePvioqlVYlyFsJxyId40jAmNnwEHz8qwtWIQI5fCMTGQ8SdBKBrKUCKd2mTrWg7dmjLIu/7GfTcVcywuHVpGxTD9ChKSJ0w0oiCKVBFQ+CTGrkA2FEc/ToiecmhI49/yYozPuovjjDOyDk23nHLomUJobNGtiDzejxCwYyCpCQcXgAp1KWnnF8Qo/gNp2W5HBEhSUWNgYxJiIQwMAFV0DxzGeL740lOaTbJ8qwY36U++0Bo0soDtGl40lkZ8r0tSoB8pC8OGyV/R4ExvYjIyzvEQ7qPBtJSHYVBHdsorj2XQriEAmD+GJGm2IyqAkP6NHReGUVvYlrMhIfoUivPYjJbLlWhsWveh5cXoVUQ9iX2kCE4OeP23w5LXHBoT3j5l3cuovVrHfpa2KHa6XF4rMkb8u+6c7ji7+Wyv/hO1oTQvvU7sAEXikhobhpvYsUOcExVZC+MtIddBKYursfPLDrAal+BG352Kou3Bw+k7/qqvDkyLt0ZPIbddbe9TIam0GYdIW+DIzkEjv7aiLzVg/CYu++GhmlRKKSJBrN0glu0jwb1Xq/mlzj0gQc8bcmBKhstLO+uqDA89/kT3u36EdtCjNrW3lbBmzalfeGG2+Xx31lkBRYkZwr0xzZZzLMnFUaf0rLUoSVkTg2bSbVE/uQyrLXhZUmYgCbV8NqKHAGLoCkHnYPWtZK14tBO+g4MyLHsXYmRGCCGPf9wO8Idgen3nk9UEz5rZKPLJdKsa4/IO+EsOuhcEJIGHu8Rob4sPfD1BgraS0sjGSF/afGLNdzT8Yx0OX2KLtokEqT1ceYejL1TvSuDCHtBtPnxRYNBuqjBjO0FZEEaZwje2N519raCggeuRUMyJDSFtSLFkPl891GsPno0ee0l3uEdrwQ5v7g5sQ/OL26etZs6APcWicBbKLRSmZVQf/rQ45Ug4MbvAgrHMnGC7A/KlWmzql6cbAb2nyF5BnrftAmxLqYU9Tq8GoYI6T6ZLC2kGypvFy6z5U6gPoYTPYYT9Vf1GE70GE60KRIfw4kew4kew4nuGk7kSnH0TRrtw80DO3xdj67+bOLfpILgHntvtp3XMMaIxt64soTIjVWBQlMuCldUzvsSoTgPWqz8HR/Z+XB6+0Un7+meTQIfrMNWFJTjizU2QqB1B4Af7LJdeK0KG26VocvqEqnQf4uvV/Saaas41VJrnjpzCFSOS7EZJcbizomomOMwWKFHlzc7KgZhOIozkYN/QuuGabRu2PEUK+xCXNM/0POTAa0Y52LBfCdtXvjW3yEjUxTt/qNFgIsZNBx1zQS/GJJxiyfP2VM2mbJDyp7lJ98+Py4m7Nvp4dHzE3r07MnzyeTF8cnz6UDppntlKrZOCVZSbXiO5tZ9t5oNPRKx0OPpu01cc+dnRe5azNPCx5DN5hr8QRdfMPyGmlmlXGjgbguZDOdR3Cp50OjOnzjVErJvdWl/d83AUgJEriwS3xcGDbpueWNPdALbvCWfn5VYm9CBakmh4NooPmnsEL4UEtKHasDWG9T0udRGE5MurT0OaJ/0djq/YCwx4pY14Pl2FeegmI2cktfxbseoh+W4pHMfY4F6U6NNJ1EN3YTfSUX+zKjR/WG4ttgq2JQ2pYFaF3Xw+AT8WdIcJ+M6j8aUCEn8OKFb4UM3mVtxArbxxUW5m1tTP3zsfS6uoAB2Yx24UhImaO8t2SFbP70ddQ03hME6WeQppCmBjDq7FWpuJTOMEwSOhz2oZicptC9dB0aYoLMX2wSDbU0zT7LjbNNWev/mQ+1SUomljtvopeV+UMZKXlvRkrrIZGawaXQqeLQRflNCh4hlAD+snrOKKVrusKrOaz9HT9xoZQXyNZ/Czcw+cm06uXmt3NH2ggU3gCY0V1Jrohh4xV3FuUDCvBiTQkL32+E6/y/oyfTp4eG0I6CCYb8jn8bPNhNP8ZNNPDuhfT91drSDpA5rd6jNPTmxX8K5c7aXQD+hF8J5VB69EJ+vFwJLA/29eSG6UP8BXohVIOzQC4HH6X+FFwKX4kz7cSmqz9QVsQW8j/6IR39Ef1WP/ohHf8SmSHz0Rzz6Ix79Edv4IxJ9r1Flquz9/P7NetXu5/dv/A1bK3nDC4b1XeuSGWZ/xcRBonOr+o5cdC1UjqVmfgcdbHXHnodK0sU+MKxoW+k0Cirb+gBnM0/VtM4GvZPGxcVxMVABchQXPCsAgRXmlVDsXGORlgwIMb4UNC2aQ+R7KWeO2uznXLt8q18bbdpAQl/kExHdtyKE3jMhLjx8Goam4K9YUB0AHoXd7UpFq0wLKX7j3hPOeJbl8vTk5MkBGtH++bc/JUa1L42s7fArft5BCuo6NXAa9gh1cl5Zlc3hDyIpG40m5xGylVbhDWn0yYjjRpWZHXM8shsNEbsm2R7Fcim0UQ3YyKQifpOQFNMTnpDlwGbcCf0DVk04zjszhMDoneZ2o9CiYA8WsTdw7E4xFfF07Fsq1TRSfWHU1VjZXCF9mFW+cmaYVatMt6i73HOBGU2W1Owp93zEhVtLp4e4uq3QQABj0ctlm8udGkedXQhdHOA8gf4XjpSTyuZA0zMZ+nw5m01f7QkoTlezqeVjdZKBMGyW+GY2NID08Hxy8mS4b+jJkyGN2sx3RQ8X0AZrFTW447k3oDZDtseuoLIHCiZwDCkIMgAn/oI50F3Yk2HCOjrspUvWcH7/Gc4v+wh1l6OGAPFsELqOZO/bwCUDCWnHAcoNpUKjdcDn4TcKc04aE95KoTcdJKBtvu0VVtWmhQuWgG+kPj4coeP4SjytZMLMgrmuAWYh8XQP1SZQdFbtsGWtPTGR3wYEoKlxeRzjL8cRYRpZD27il4NM2AM+sKZGM7XLHOmf3fgdOh20m2ndGfeBTzqOPwxJjI+ONK63zHWyGwGxBF3Xy3DNF3gVJVfob85uaERiRpJW9M18n9HQSxF8VqDVxpZv+4QzTDRpbxuYaE419mkwcyrQml+MWi1CQDmipZekgReAK5DIaQvTfMPKNEY1txWmwTDp5FFkrkye98rVDJS0SX1nf3SY008dj0TTDXsK5nm7NwNn4mFCbmg5Yck9v04KnNtr21cpKOWsFZZWwGjF6K6N6R7pvmcALHkNrdoSOfAWLvOVRi3BFZ+ZEnpDeYn58z2gWUX57rRZe9BgBi+7DUAwp3pnQo0Lr/MHfp6GucVsCF348CJUGpNiWUH3KvtK54L5WbNpU1rMjoEUoOSIcv+A4KQQyAPNIIDKaZmyvU7HppwKe1m5q3nIO9Gx3Xv/ROfx9gW6MfYlcmkPKOTwjguegqAux52dBN5XAu/ke1jBhdZTxTrKuGX1ZG1VNMSLD1uDpM8DX2orGwa7Z3HcIeCxmwFAHbi/0xJm7S1O4ufb3eU4pCeXNg7EKoOuOo8vSuHlCvvtEm1EYTg9lwvX1XnBJiH6BMKkosL7WKmAKiutNgHwUPUoRuJnYr5zwN6kkUct5gaVvb238ndelvTgaXZIvuYXcynYP5GXFz8T/Dv56ZIcHV8dYbtGX1DtG3JW1yX7hU1+5Obg2eHT7Cg7ekq+/vGHD2/fjPDd71l+Lb/xgVAHR8fZIXkrJ7xkB0dPXx+dvCCXdEoVP3h2CNW1Nrx473Kf4USb4TEm7nbft2iV8TDb+W/9XexCkniqs8MBKw4L0ZkPg0ckie3x6AAZOBSPLSAeW0BEWHtsAfHYAuKxBcTKDfr/rgXEl6FFptVQ4hZnX5IPP7366XSoz6Uzsx6wXB9g1s/B0fMXiYSKN2mn9dcQClasqdvYy93MX+zbz0/JhFHLtt2F9mf818BQL539FvqCSgHfBXXIa86gFJaukIpr7PRF2s8txO4xajLDK/Z7e03jqmjJQ5pbTc381OlKnZcrPlMUIQS7UTI6zpgMKye/stzfUPiPqy3QGNYP4o3vXgiL9qHKCQRMqdAkrX8Xrpjktf2oIwVA+Zyi4K4+kZUJIHjaJczAPCFOelXnvE4myl3C4gG0KH8j2cgeafY30VJw/N7a/YNBB2m+P/DgAemO7qg9L2VTtOT+0v7TWzMh7YQW1NDhE/DW/YoqV558qu0WtTlYtCiu4IUrP6QvJCdVfCCSNcMHWa2kJc22vmDgae6X/Y/raSgWZt0nll6+l3JWMlxx4FhnFpmYtlgW8aEJAcfM0CwABku9ZTcGX16719EcPm2sTe9YP01IXQzvbz3TBgTWmWtTGo5mc5l8V9ExXD+Z+yCLPth0LseMecnN8moD5rr+q01ndZS26cb1qHzTeTCubqM5kldX8INC5tdApY4hvPL/Hjhc+BukcnXzodxv9mjruVTmCu+HVt2iIp9L5efbD8xgxeUYwCJrDTf+yMfRu5QLsLX2uH2MpghVw58MbseKqSo6698tt85mv+qq+1vM2vlys0nvPl1JJ6zUrSj3g1wQI0lFa8tnNfvnHiyJuEHWixzklngmiyuCIGSecp0e7uj2B/zXwCDnVl6IqNWZbe3nPsE4iwjUPh8iT/Lff/MzXzcTKw9j3oSb/8f42QAU7e/hkk1vzHZQEs++/jS1H916ohKgtztVtSyGyW2rTYwwUMsCjQODUzUDZ/euM13Igvx8/mrYXqlrmj/cotoR+5PJonfU7zmZV+/7k+Exuf04bjaRO/cVHQivA1cUlmh8qOmiIYfnvIUB3hWfYdgVSL2N299/XhzXcZi2M0OvK8PAuL68eGAsQY4dYgSdrg8bcwH2cdP7xpeMHqwHv0ovAaW6XfDeS9Sy54wqA6q2i03e6+BgxSrd29vqn25W93Wq2O5SufwwZ2HSTomAFdbU+02igwLPVrHi+3LhZDYINPhVTsj5K0JdB/3Jst3doTzLRnVDWoZN6gkMH6ShZRTHTgzTZmis7l6SxCeaPF6Retib+5WbBcqL81xJzXIpioGQ3V5g8rrj1Kgy633QPUYbbcmZC4xtVOnjjKFIiC88PjZ5PR6RsSmhlfjcGPtPKgr8ux6qHNFxh9y2kF6w8p0WEpv0vE94wux2u51nReaznCuuNSQ08GlUxSYZLnxkafL84rZM7a1zstdBeR5DlULiLTr9KM8xr10Ucwgr9dWxZXnDCsLrEAXtBV7X2QHNUMMVQBK6V+y3hitW9PblLgK8KHhOLXPj08DnsJTNDS154avnhMob0NpiXTxSPmf59VUv2OUOLUWIkddM+FAzIwklmldNaahgUL2AcHEjr1nhIz2mOLkmNJQVAFskFrmPsuld+Rb7slM8qC859erdJYYhtnZo3VQVhQhpfwW+dYhyv+ytuOraD8ntV93eRZKWQUqqjbNWs4obqyEVDTBOipC7COawabj0KHKygFxePQJ06Agd3MzJuJIF8INynO3dcosO7ORW8fNQsgoS2sAs7AFzpb6aPGcsdqS0poZF/455uImnlJesCLvsTmi0y5aXQcWYpt5QtmnH2GDDUz+Im6hTXGTVjny2vP2hGXTLKxvRmgiwp8UKfqnM7c7+YenAM1YMnYOt9On4SlaB62d/lLDi+ZHMr/XTiFAvf3r54+VTK91/XG5IqWGMYRytKsQTTRQKHaQoWEWxW+9K5yS/uSQlXTJFsM+MUbzGbkyb7obrFzG4JV1AbgEGAOIVSwiGaatQcT2HBNbQ8eOGU482+5JjQb3hQi261mEZDWJkgvqs8/nQssk6QiTriLG3+NUE6SnSlJFGvGf3iolcLTGRGrZtQ7I05Wr1d1VcY0sZCUHexkJzpgyfQgWhKyHNFYg7VxM2HQpJ7/SlSkB5TVXJrS4DDaaoiSqjtlv4lY4nRPkDZuyHxA0DBukzW8H1hpoHhOoPP79zKgo9p9fd+NyHO8FTLuzxtaCGyaKDWSpGi2V0QF1udm/gqI3O53JQvWXemDoWcD58uNjSeuNGGEb8KvHGTrPd4WwLCZANxJtOLNidhBtXNhk0cG8Ecah58MMACLnfafDK2d0Ow//0KCmQjs8gnHKlDdSgsuKe20IIB3cy30JZpaSfB0FAQ9W1FNqLh87siEh1kEuVRZN2DllvwN6hSw5Z73XM5ebTdjIf/GSHtyBNZAGJZlD9kZJasSn/OIKU5YFTZv84PcJXQQTD2bJT8sCAjQs4rkh1ms42SQAEvrGQfDZ8YmgyT2pXFtIHpzcZb1IqgFOsEZ7YITxl9QUoQOMjJZAdUoI98uzKsYE7UcJaOtCuWiPKKK4ETMx5BjhGn1OsuqY/x2t5aDJP4VdzRotOjPud0ZzKOp7HxwiHsq/dXbDIH2DueA3YsxndEqAiu91KuD/0pA1IWKP5/L3vHPTAEya7m95/u3yqmFGc3bAiVKZz5kIAjTjYVmS2AUN6cO4dg+fb6nrC6TR+hLLCYHvsDRc3p0xbOxJqDKtqk5HXovAFE6CQQODnvdEKXqAxNLkwPue74XOhaqcl8LyKtYTzl28vNtQO3JdkG+3g/ILUoSfvrYqBYz79sIat7MLvcJf4lNjFkdf5XL53AwP/ewirYhiZvI8Y5ntWW3pIpf4NZf6Htid6400e77Y9f1tZbPKtd9xO4Vn7XSw3nVI/t2mHndfvpR1CHSQ84w9BIx0bycv7aoUPbOMcZPOxnbPDrLdQ41rT/ufC/HagZq/BaKv22H9pw+oWe1D7x7LETk/mzwRR/y8AAP//JL0k9Q==" + return "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" } diff --git a/journalbeat/docs/fields.asciidoc b/journalbeat/docs/fields.asciidoc index e99f4209e3d..4b573f290fb 100644 --- a/journalbeat/docs/fields.asciidoc +++ b/journalbeat/docs/fields.asciidoc @@ -3960,6 +3960,30 @@ Hostname of the agent. Info collected for the host machine. + + +*`host.containerized`*:: ++ +-- +type: boolean + +If the host is a container. + + +-- + +*`host.os.build`*:: ++ +-- +type: keyword + +example: 18D109 + +OS build information. + + +-- + [[exported-fields-kubernetes-processor]] == Kubernetes fields diff --git a/journalbeat/include/fields.go b/journalbeat/include/fields.go index 5bd66877a1a..94d7157dc11 100644 --- a/journalbeat/include/fields.go +++ b/journalbeat/include/fields.go @@ -32,5 +32,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "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" + return "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" } diff --git a/libbeat/processors/add_host_metadata/_meta/fields.yml b/libbeat/processors/add_host_metadata/_meta/fields.yml index 6cffd2ed718..977edc0cb80 100644 --- a/libbeat/processors/add_host_metadata/_meta/fields.yml +++ b/libbeat/processors/add_host_metadata/_meta/fields.yml @@ -3,4 +3,21 @@ description: > Info collected for the host machine. anchor: host-processor - fields: {} + fields: + + # ECS fields are in fields.ecs.yml. + # These are the non-ECS fields. + - name: host + type: group + fields: + + - name: containerized + type: boolean + description: > + If the host is a container. + + - name: os.build + type: keyword + example: "18D109" + description: > + OS build information. diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index a72b37affdf..f1b1713c334 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -10997,6 +10997,30 @@ The average queue time in ms over the last 1024 requests. Info collected for the host machine. + + +*`host.containerized`*:: ++ +-- +type: boolean + +If the host is a container. + + +-- + +*`host.os.build`*:: ++ +-- +type: keyword + +example: 18D109 + +OS build information. + + +-- + [[exported-fields-http]] == HTTP fields diff --git a/metricbeat/include/fields/fields.go b/metricbeat/include/fields/fields.go index 17c2551d547..219787ef175 100644 --- a/metricbeat/include/fields/fields.go +++ b/metricbeat/include/fields/fields.go @@ -32,5 +32,5 @@ func init() { // AssetLibbeatFieldsYml returns asset data. // This is the base64 encoded gzipped contents of ../libbeat/fields.yml. func AssetLibbeatFieldsYml() string { - return "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" + return "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" } diff --git a/packetbeat/docs/fields.asciidoc b/packetbeat/docs/fields.asciidoc index 04a320bdd5d..09ce8a053a9 100644 --- a/packetbeat/docs/fields.asciidoc +++ b/packetbeat/docs/fields.asciidoc @@ -5383,6 +5383,30 @@ alias to: destination.packets Info collected for the host machine. + + +*`host.containerized`*:: ++ +-- +type: boolean + +If the host is a container. + + +-- + +*`host.os.build`*:: ++ +-- +type: keyword + +example: 18D109 + +OS build information. + + +-- + [[exported-fields-http]] == HTTP fields diff --git a/packetbeat/include/fields.go b/packetbeat/include/fields.go index f2966e802c8..4515fd43b79 100644 --- a/packetbeat/include/fields.go +++ b/packetbeat/include/fields.go @@ -32,5 +32,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "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" + return "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" } diff --git a/winlogbeat/docs/fields.asciidoc b/winlogbeat/docs/fields.asciidoc index cbbc84409aa..c9bbf7b6062 100644 --- a/winlogbeat/docs/fields.asciidoc +++ b/winlogbeat/docs/fields.asciidoc @@ -3450,6 +3450,30 @@ alias to: event.original Info collected for the host machine. + + +*`host.containerized`*:: ++ +-- +type: boolean + +If the host is a container. + + +-- + +*`host.os.build`*:: ++ +-- +type: keyword + +example: 18D109 + +OS build information. + + +-- + [[exported-fields-kubernetes-processor]] == Kubernetes fields diff --git a/winlogbeat/include/fields.go b/winlogbeat/include/fields.go index 934581c10d7..d0a1d0fc84a 100644 --- a/winlogbeat/include/fields.go +++ b/winlogbeat/include/fields.go @@ -32,5 +32,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "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" + return "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" } diff --git a/x-pack/functionbeat/docs/fields.asciidoc b/x-pack/functionbeat/docs/fields.asciidoc index f50bcedc5c6..40127795b59 100644 --- a/x-pack/functionbeat/docs/fields.asciidoc +++ b/x-pack/functionbeat/docs/fields.asciidoc @@ -3267,6 +3267,30 @@ None Info collected for the host machine. + + +*`host.containerized`*:: ++ +-- +type: boolean + +If the host is a container. + + +-- + +*`host.os.build`*:: ++ +-- +type: keyword + +example: 18D109 + +OS build information. + + +-- + [[exported-fields-kubernetes-processor]] == Kubernetes fields diff --git a/x-pack/functionbeat/include/fields.go b/x-pack/functionbeat/include/fields.go index 53a48021bc3..76a7dc0ee85 100644 --- a/x-pack/functionbeat/include/fields.go +++ b/x-pack/functionbeat/include/fields.go @@ -19,5 +19,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "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" + return "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" } From b500d0d7f8bd74191f6ab7dfc095c0f646d4fff1 Mon Sep 17 00:00:00 2001 From: Andrew Kroh Date: Mon, 4 Mar 2019 16:25:01 -0500 Subject: [PATCH 124/332] Add network.community_id to iptables, suricata, and zeek (#11005) This configures the the IPTables, Suricata, and Zeek modules to send the network.community_id field by default. This makes it easier to correlate events related to the same flow across data sources. --- CHANGELOG.next.asciidoc | 1 + .../module/iptables/log/config/file.yml | 11 ---- .../module/iptables/log/config/input.yml | 55 +++++++++++++++++++ .../module/iptables/log/config/syslog.yml | 8 --- .../filebeat/module/iptables/log/manifest.yml | 4 +- .../iptables/log/test/geo.log-expected.json | 1 + .../iptables/log/test/icmp.log-expected.json | 1 + .../log/test/iptables.log-expected.json | 10 ++++ .../iptables/log/test/ipv6.log-expected.json | 11 ++++ .../log/test/ubiquiti.log-expected.json | 5 ++ .../module/suricata/eve/config/eve.yml | 11 ++++ .../filebeat/module/suricata/eve/manifest.yml | 2 + .../eve/test/eve-alerts.log-expected.json | 20 +++++++ .../eve/test/eve-small.log-expected.json | 7 +++ .../zeek/connection/config/connection.yml | 16 ++++++ .../module/zeek/connection/manifest.yml | 2 + .../zeek/connection/test/connection-json.log | 1 + .../test/connection-json.log-expected.json | 35 ++++++++++++ .../filebeat/module/zeek/dns/config/dns.yml | 6 ++ x-pack/filebeat/module/zeek/dns/manifest.yml | 2 + .../zeek/dns/test/dns-json.log-expected.json | 1 + .../filebeat/module/zeek/files/manifest.yml | 2 + .../filebeat/module/zeek/http/config/http.yml | 13 ++++- x-pack/filebeat/module/zeek/http/manifest.yml | 2 + .../http/test/http-json.log-expected.json | 2 + .../module/zeek/notice/config/notice.yml | 6 ++ .../filebeat/module/zeek/notice/manifest.yml | 2 + .../filebeat/module/zeek/ssl/config/ssl.yml | 13 ++++- x-pack/filebeat/module/zeek/ssl/manifest.yml | 2 + .../zeek/ssl/test/ssl-json.log-expected.json | 4 ++ 30 files changed, 230 insertions(+), 26 deletions(-) delete mode 100644 x-pack/filebeat/module/iptables/log/config/file.yml create mode 100644 x-pack/filebeat/module/iptables/log/config/input.yml delete mode 100644 x-pack/filebeat/module/iptables/log/config/syslog.yml diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index a9ee19e8aad..758919d6fcc 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -266,6 +266,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Set `event.category: network_traffic` for Suricata. {pull}10882[10882] - Add configuration knob for auto-discover hints to control whether log harvesting is enabled for the pod/container. {issue}10811[10811] {pull}10911[10911] - Change Suricata module pipeline to handle `destination.domain` being set if a reverse DNS processor is used. {issue}10510[10510] +- Add the `network.community_id` flow identifier to field to the IPTables, Suricata, and Zeek modules. {pull}11005[11005] *Heartbeat* diff --git a/x-pack/filebeat/module/iptables/log/config/file.yml b/x-pack/filebeat/module/iptables/log/config/file.yml deleted file mode 100644 index 21045d97393..00000000000 --- a/x-pack/filebeat/module/iptables/log/config/file.yml +++ /dev/null @@ -1,11 +0,0 @@ -type: log -paths: -{{ range $i, $path := .paths }} - - {{$path}} -{{ end }} -exclude_files: [".gz$"] -tags: {{.tags}} -{{ if .convert_timezone }} -processors: - - add_locale: ~ -{{ end }} diff --git a/x-pack/filebeat/module/iptables/log/config/input.yml b/x-pack/filebeat/module/iptables/log/config/input.yml new file mode 100644 index 00000000000..20fe0d35af4 --- /dev/null +++ b/x-pack/filebeat/module/iptables/log/config/input.yml @@ -0,0 +1,55 @@ +{{ if eq .input "syslog" }} + +type: syslog +protocol.udp: + host: "{{.syslog_host}}:{{.syslog_port}}" + +{{ else if eq .input "file" }} + +type: log +paths: +{{ range $i, $path := .paths }} + - {{$path}} +{{ end }} +exclude_files: [".gz$"] + +{{ end }} + +tags: {{.tags}} + +processors: +{{ if .convert_timezone }} + - add_locale: ~ +{{ end }} +{{ if .community_id }} + - dissect: + tokenizer: "%{} SRC=%{source.ip} DST=%{destination.ip} " + field: "message" + target_prefix: "" + - dissect: + tokenizer: "%{} PROTO=%{network.transport} " + field: "message" + target_prefix: "" + - if: + or: + - equals.network.transport: TCP + - equals.network.transport: UDP + - equals.network.transport: SCTP + then: + dissect: + tokenizer: "%{} SPT=%{source.port} DPT=%{destination.port} " + field: "message" + target_prefix: "" + else: + dissect: + when:or: + - equals.network.transport: ICMP + - equals.network.transport: ICMPv6 + tokenizer: "%{} TYPE=%{iptables.icmp.type} CODE=%{iptables.icmp.code} " + field: "message" + target_prefix: "" + - community_id: + fields: + icmp_type: iptables.icmp.type + icmp_code: iptables.icmp.code +{{ end}} diff --git a/x-pack/filebeat/module/iptables/log/config/syslog.yml b/x-pack/filebeat/module/iptables/log/config/syslog.yml deleted file mode 100644 index 896b4441de9..00000000000 --- a/x-pack/filebeat/module/iptables/log/config/syslog.yml +++ /dev/null @@ -1,8 +0,0 @@ -type: syslog - {{ if .convert_timezone }} -processors: - - add_locale: ~ - {{ end }} - -protocol.udp: - host: "{{.syslog_host}}:{{.syslog_port}}" diff --git a/x-pack/filebeat/module/iptables/log/manifest.yml b/x-pack/filebeat/module/iptables/log/manifest.yml index 0262a19f5fb..f3604a1bca4 100644 --- a/x-pack/filebeat/module/iptables/log/manifest.yml +++ b/x-pack/filebeat/module/iptables/log/manifest.yml @@ -19,9 +19,11 @@ var: min_elasticsearch_version: version: 6.1.0 value: false + - name: community_id + default: true ingest_pipeline: ingest/pipeline.json -input: config/{{.input}}.yml +input: config/input.yml requires.processors: - name: geoip diff --git a/x-pack/filebeat/module/iptables/log/test/geo.log-expected.json b/x-pack/filebeat/module/iptables/log/test/geo.log-expected.json index b7c0182599c..bac0edd527a 100644 --- a/x-pack/filebeat/module/iptables/log/test/geo.log-expected.json +++ b/x-pack/filebeat/module/iptables/log/test/geo.log-expected.json @@ -28,6 +28,7 @@ "iptables.ubiquiti.rule_set": "wan-lan", "log.offset": 0, "log.original": "Oct 10 07:25:12 Hostname kernel: [wan-lan-default-D]IN=eth0 OUT= MAC=90:10:20:76:8d:20:90:10:65:29:b6:2a:08:00 SRC=158.109.0.1 DST=10.4.0.5 LEN=52 TOS=0x00 PREC=0x00 TTL=63 ID=0 DF PROTO=TCP SPT=38842 DPT=443 WINDOW=2853 RES=0x00 ACK URGP=0 ", + "network.community_id": "1:RGJPRWtru8Lg2itNyFREDvoRkNA=", "network.transport": "tcp", "network.type": "ipv4", "service.type": "iptables", diff --git a/x-pack/filebeat/module/iptables/log/test/icmp.log-expected.json b/x-pack/filebeat/module/iptables/log/test/icmp.log-expected.json index 689ad154856..98830b362b5 100644 --- a/x-pack/filebeat/module/iptables/log/test/icmp.log-expected.json +++ b/x-pack/filebeat/module/iptables/log/test/icmp.log-expected.json @@ -20,6 +20,7 @@ "iptables.ttl": 118, "log.offset": 0, "log.original": "Jan 8 03:37:09 DENY: IN=eth0 OUT= MAC=90:10:28:5f:62:24:90:10:18:5a:89:2a:08:00 SRC=192.0.2.71 DST=192.0.2.83 LEN=88 TOS=0x00 PREC=0x00 TTL=118 ID=21684 PROTO=ICMP TYPE=3 CODE=3 [SRC=192.0.2.83 DST=192.168.173.191 LEN=60 TOS=0x00 PREC=0x00 TTL=54 ID=0 DF PROTO=UDP SPT=21458 DPT=62936 LEN=40 ]", + "network.community_id": "1:T79jBEYlbFhpnIGt2rOuzIv31hE=", "network.transport": "icmp", "network.type": "ipv4", "service.type": "iptables", diff --git a/x-pack/filebeat/module/iptables/log/test/iptables.log-expected.json b/x-pack/filebeat/module/iptables/log/test/iptables.log-expected.json index ff646faf78b..b759f2fde9c 100644 --- a/x-pack/filebeat/module/iptables/log/test/iptables.log-expected.json +++ b/x-pack/filebeat/module/iptables/log/test/iptables.log-expected.json @@ -23,6 +23,7 @@ "iptables.ttl": 115, "log.offset": 0, "log.original": "Jan 8 03:37:09 example-host kernel: iptables DROP_INPUT: IN=eth0 OUT= MAC=90:10:35:5a:1e:3a:90:10:9e:ec:2c:71:08:00 SRC=203.0.113.36 DST=172.16.54.114 LEN=52 TOS=0x00 PREC=0x00 TTL=115 ID=15743 DF PROTO=TCP SPT=17805 DPT=445 WINDOW=8192 RES=0x00 SYN URGP=0 ", + "network.community_id": "1:VD3aeZ6cGYX6uwOAUQ9NuxbobMI=", "network.transport": "tcp", "network.type": "ipv4", "service.type": "iptables", @@ -56,6 +57,7 @@ "iptables.ttl": 243, "log.offset": 259, "log.original": "Jan 8 03:37:57 example-host kernel: iptables DROP_INPUT: IN=eth0 OUT= MAC=90:10:35:5a:1e:3a:90:10:76:e0:e2:d5:08:00 SRC=198.51.100.198 DST=172.16.54.114 LEN=40 TOS=0x00 PREC=0x00 TTL=243 ID=17703 PROTO=TCP SPT=47091 DPT=1433 WINDOW=1024 RES=0x00 SYN URGP=0 ", + "network.community_id": "1:r9MnuXFtcWUKzbVQ2vXn7XSQ2Fg=", "network.transport": "tcp", "network.type": "ipv4", "service.type": "iptables", @@ -90,6 +92,7 @@ "iptables.ttl": 115, "log.offset": 518, "log.original": "Jan 8 03:38:45 example-host kernel: iptables DROP_INPUT: IN=eth0 OUT= MAC=90:10:35:5a:1e:3a:90:10:9e:ec:2c:71:08:00 SRC=203.0.113.201 DST=172.16.54.114 LEN=52 TOS=0x00 PREC=0x00 TTL=115 ID=19619 DF PROTO=TCP SPT=59319 DPT=445 WINDOW=8192 RES=0x00 SYN URGP=0 ", + "network.community_id": "1:vgBSpDUKSSgxOm6Y52jw6tCgiN8=", "network.transport": "tcp", "network.type": "ipv4", "service.type": "iptables", @@ -124,6 +127,7 @@ "iptables.ttl": 240, "log.offset": 778, "log.original": "Jan 8 03:39:25 example-host kernel: iptables DROP_INPUT: IN=eth0 OUT= MAC=90:10:35:5a:1e:3a:90:10:9e:ec:2c:71:08:00 SRC=203.0.113.246 DST=172.16.54.114 LEN=40 TOS=0x00 PREC=0x00 TTL=240 ID=4255 DF PROTO=TCP SPT=44181 DPT=80 WINDOW=14600 RES=0x00 SYN URGP=0 ", + "network.community_id": "1:PCNGbo6CtVQoE5Hch+6oMfbeTP4=", "network.transport": "tcp", "network.type": "ipv4", "service.type": "iptables", @@ -158,6 +162,7 @@ "iptables.ttl": 110, "log.offset": 1037, "log.original": "Jan 8 03:40:21 example-host kernel: iptables DROP_INPUT: IN=eth0 OUT= MAC=90:10:35:5a:1e:3a:90:10:76:e0:e2:d5:08:00 SRC=203.0.113.208 DST=172.16.54.114 LEN=52 TOS=0x00 PREC=0x00 TTL=110 ID=27150 DF PROTO=TCP SPT=64358 DPT=445 WINDOW=8192 RES=0x00 SYN URGP=0 ", + "network.community_id": "1:Wb/3DTwtWE8C20/hm2JpmBAhsro=", "network.transport": "tcp", "network.type": "ipv4", "service.type": "iptables", @@ -191,6 +196,7 @@ "iptables.ttl": 242, "log.offset": 1297, "log.original": "Jan 8 03:40:25 example-host kernel: iptables DROP_INPUT: IN=eth0 OUT= MAC=90:10:35:5a:1e:3a:90:10:9e:ec:2c:71:08:00 SRC=198.51.100.160 DST=172.16.54.114 LEN=40 TOS=0x00 PREC=0x00 TTL=242 ID=7264 PROTO=TCP SPT=58830 DPT=445 WINDOW=1024 RES=0x00 SYN URGP=0 ", + "network.community_id": "1:+s7vkEgPnzTAoksA2Q0gAzgymfI=", "network.transport": "tcp", "network.type": "ipv4", "service.type": "iptables", @@ -225,6 +231,7 @@ "iptables.ttl": 117, "log.offset": 1554, "log.original": "Jan 8 03:41:17 example-host kernel: iptables DROP_INPUT: IN=eth0 OUT= MAC=90:10:35:5a:1e:3a:90:10:76:e0:e2:d5:08:00 SRC=198.51.100.115 DST=172.16.54.114 LEN=52 TOS=0x00 PREC=0x00 TTL=117 ID=6101 DF PROTO=TCP SPT=51985 DPT=445 WINDOW=8192 RES=0x00 SYN URGP=0 ", + "network.community_id": "1:6Pvyzf2+vqgsRxWx+eU9MXEhAFE=", "network.transport": "tcp", "network.type": "ipv4", "service.type": "iptables", @@ -259,6 +266,7 @@ "iptables.ttl": 45, "log.offset": 1814, "log.original": "Jan 8 03:41:23 example-host kernel: iptables DROP_INPUT: IN=eth0 OUT= MAC=90:10:35:5a:1e:3a:90:10:76:e0:e2:d5:08:00 SRC=198.51.100.167 DST=172.16.54.114 LEN=52 TOS=0x00 PREC=0x00 TTL=45 ID=6319 DF PROTO=TCP SPT=4099 DPT=445 WINDOW=8192 RES=0x00 SYN URGP=0 ", + "network.community_id": "1:g+bRFDuqViJEc5vzlOapz2LPhFo=", "network.transport": "tcp", "network.type": "ipv4", "service.type": "iptables", @@ -292,6 +300,7 @@ "iptables.ttl": 245, "log.offset": 2072, "log.original": "Jan 8 03:43:18 example-host kernel: iptables DROP_INPUT: IN=eth0 OUT= MAC=90:10:35:5a:1e:3a:90:10:9e:ec:2c:71:08:00 SRC=198.51.100.19 DST=172.16.54.114 LEN=40 TOS=0x00 PREC=0x00 TTL=245 ID=48624 PROTO=TCP SPT=59287 DPT=139 WINDOW=1024 RES=0x00 SYN URGP=0 ", + "network.community_id": "1:a/4LVq88msR/LgVGzZeIkmlNXz4=", "network.transport": "tcp", "network.type": "ipv4", "service.type": "iptables", @@ -325,6 +334,7 @@ "iptables.ttl": 250, "log.offset": 2329, "log.original": "Jan 8 03:43:42 example-host kernel: iptables DROP_INPUT: IN=eth0 OUT= MAC=90:10:35:5a:1e:3a:90:10:76:e0:e2:d5:08:00:45:00:00:00:00 SRC=198.51.100.68 DST=172.16.54.114 LEN=40 TOS=0x00 PREC=0x00 TTL=250 ID=54321 PROTO=TCP SPT=53296 DPT=8088 WINDOW=65535 RES=0x00 SYN URGP=0 ", + "network.community_id": "1:1l65fWlqrJCJB7vBaqSgHnJoMbQ=", "network.transport": "tcp", "network.type": "ipv4", "service.type": "iptables", diff --git a/x-pack/filebeat/module/iptables/log/test/ipv6.log-expected.json b/x-pack/filebeat/module/iptables/log/test/ipv6.log-expected.json index 5c662ddd178..14618432079 100644 --- a/x-pack/filebeat/module/iptables/log/test/ipv6.log-expected.json +++ b/x-pack/filebeat/module/iptables/log/test/ipv6.log-expected.json @@ -19,6 +19,7 @@ "iptables.ttl": 64, "log.offset": 0, "log.original": "Jan 22 09:05:05 ubuntu-bionic kernel: [16571.459614] IN= OUT=lo SRC=2001:0db8:0000:0000:0000:0000:0000:0001 DST=2001:0db8:0000:0000:0000:0000:0000:0002 LEN=104 TC=0 HOPLIMIT=64 FLOWLBL=868225 PROTO=ICMPv6 TYPE=128 CODE=0 ID=3427 SEQ=1 ", + "network.community_id": "1:u2vMS3HiWth2lIMKHB1fjELshpQ=", "network.transport": "ipv6-icmp", "service.type": "iptables", "source.ip": "2001:0db8:0000:0000:0000:0000:0000:0001", @@ -46,6 +47,7 @@ "iptables.ttl": 64, "log.offset": 236, "log.original": "Jan 22 09:05:05 ubuntu-bionic kernel: [16571.459695] IN= OUT=lo SRC=2001:0db8:0000:0000:0000:0000:0000:0001 DST=2001:0db8:0000:0000:0000:0000:0000:0002 LEN=104 TC=0 HOPLIMIT=64 FLOWLBL=770819 PROTO=ICMPv6 TYPE=129 CODE=0 ID=3427 SEQ=1 ", + "network.community_id": "1:YDcnf7YthUKAbDNo6Cs3rX4jq4w=", "network.transport": "ipv6-icmp", "service.type": "iptables", "source.ip": "2001:0db8:0000:0000:0000:0000:0000:0001", @@ -73,6 +75,7 @@ "iptables.ttl": 64, "log.offset": 472, "log.original": "Jan 22 09:05:06 ubuntu-bionic kernel: [16572.482458] IN= OUT=lo SRC=2001:0db8:0000:0000:0000:0000:0000:0001 DST=2001:0db8:0000:0000:0000:0000:0000:0002 LEN=104 TC=0 HOPLIMIT=64 FLOWLBL=868225 PROTO=ICMPv6 TYPE=128 CODE=0 ID=3427 SEQ=2 ", + "network.community_id": "1:u2vMS3HiWth2lIMKHB1fjELshpQ=", "network.transport": "ipv6-icmp", "service.type": "iptables", "source.ip": "2001:0db8:0000:0000:0000:0000:0000:0001", @@ -100,6 +103,7 @@ "iptables.ttl": 64, "log.offset": 708, "log.original": "Jan 22 09:05:06 ubuntu-bionic kernel: [16572.482476] IN= OUT=lo SRC=2001:0db8:0000:0000:0000:0000:0000:0001 DST=2001:0db8:0000:0000:0000:0000:0000:0002 LEN=104 TC=0 HOPLIMIT=64 FLOWLBL=770819 PROTO=ICMPv6 TYPE=129 CODE=0 ID=3427 SEQ=2 ", + "network.community_id": "1:YDcnf7YthUKAbDNo6Cs3rX4jq4w=", "network.transport": "ipv6-icmp", "service.type": "iptables", "source.ip": "2001:0db8:0000:0000:0000:0000:0000:0001", @@ -127,6 +131,7 @@ "iptables.ttl": 64, "log.offset": 944, "log.original": "Jan 22 09:05:07 ubuntu-bionic kernel: [16573.506336] IN= OUT=lo SRC=2001:0db8:0000:0000:0000:0000:0000:0001 DST=2001:0db8:0000:0000:0000:0000:0000:0002 LEN=104 TC=0 HOPLIMIT=64 FLOWLBL=868225 PROTO=ICMPv6 TYPE=128 CODE=0 ID=3427 SEQ=3 ", + "network.community_id": "1:u2vMS3HiWth2lIMKHB1fjELshpQ=", "network.transport": "ipv6-icmp", "service.type": "iptables", "source.ip": "2001:0db8:0000:0000:0000:0000:0000:0001", @@ -154,6 +159,7 @@ "iptables.ttl": 64, "log.offset": 1180, "log.original": "Jan 22 09:05:07 ubuntu-bionic kernel: [16573.506356] IN= OUT=lo SRC=2001:0db8:0000:0000:0000:0000:0000:0001 DST=2001:0db8:0000:0000:0000:0000:0000:0002 LEN=104 TC=0 HOPLIMIT=64 FLOWLBL=770819 PROTO=ICMPv6 TYPE=129 CODE=0 ID=3427 SEQ=3 ", + "network.community_id": "1:YDcnf7YthUKAbDNo6Cs3rX4jq4w=", "network.transport": "ipv6-icmp", "service.type": "iptables", "source.ip": "2001:0db8:0000:0000:0000:0000:0000:0001", @@ -181,6 +187,7 @@ "iptables.ttl": 64, "log.offset": 1416, "log.original": "Jan 22 09:05:08 ubuntu-bionic kernel: [16574.533989] IN= OUT=lo SRC=2001:0db8:0000:0000:0000:0000:0000:0001 DST=2001:0db8:0000:0000:0000:0000:0000:0002 LEN=104 TC=0 HOPLIMIT=64 FLOWLBL=868225 PROTO=ICMPv6 TYPE=128 CODE=0 ID=3427 SEQ=4 ", + "network.community_id": "1:u2vMS3HiWth2lIMKHB1fjELshpQ=", "network.transport": "ipv6-icmp", "service.type": "iptables", "source.ip": "2001:0db8:0000:0000:0000:0000:0000:0001", @@ -208,6 +215,7 @@ "iptables.ttl": 64, "log.offset": 1652, "log.original": "Jan 22 09:05:08 ubuntu-bionic kernel: [16574.534007] IN= OUT=lo SRC=2001:0db8:0000:0000:0000:0000:0000:0001 DST=2001:0db8:0000:0000:0000:0000:0000:0002 LEN=104 TC=0 HOPLIMIT=64 FLOWLBL=770819 PROTO=ICMPv6 TYPE=129 CODE=0 ID=3427 SEQ=4 ", + "network.community_id": "1:YDcnf7YthUKAbDNo6Cs3rX4jq4w=", "network.transport": "ipv6-icmp", "service.type": "iptables", "source.ip": "2001:0db8:0000:0000:0000:0000:0000:0001", @@ -235,6 +243,7 @@ "iptables.ttl": 64, "log.offset": 1888, "log.original": "Jan 22 09:05:09 ubuntu-bionic kernel: [16575.553704] IN= OUT=lo SRC=2001:0db8:0000:0000:0000:0000:0000:0001 DST=2001:0db8:0000:0000:0000:0000:0000:0002 LEN=104 TC=0 HOPLIMIT=64 FLOWLBL=868225 PROTO=ICMPv6 TYPE=128 CODE=0 ID=3427 SEQ=5 ", + "network.community_id": "1:u2vMS3HiWth2lIMKHB1fjELshpQ=", "network.transport": "ipv6-icmp", "service.type": "iptables", "source.ip": "2001:0db8:0000:0000:0000:0000:0000:0001", @@ -262,6 +271,7 @@ "iptables.ttl": 64, "log.offset": 2124, "log.original": "Jan 22 09:05:09 ubuntu-bionic kernel: [16575.553722] IN= OUT=lo SRC=2001:0db8:0000:0000:0000:0000:0000:0001 DST=2001:0db8:0000:0000:0000:0000:0000:0002 LEN=104 TC=0 HOPLIMIT=64 FLOWLBL=770819 PROTO=ICMPv6 TYPE=129 CODE=0 ID=3427 SEQ=5 ", + "network.community_id": "1:YDcnf7YthUKAbDNo6Cs3rX4jq4w=", "network.transport": "ipv6-icmp", "service.type": "iptables", "source.ip": "2001:0db8:0000:0000:0000:0000:0000:0001", @@ -289,6 +299,7 @@ "iptables.ttl": 1, "log.offset": 2360, "log.original": "Jan 22 10:52:34 ubuntu-bionic kernel: [ 307.757925] IN= OUT=enp0s3 MAC=90:10:12:34:56:78:90:10:aa:bb:cc:dd:86:dd:ff:ff SRC=fe80:0000:0000:0000:0084:88ff:feae:790a DST=ff02:0000:0000:0000:0000:0000:0000:0016 LEN=96 TC=0 HOPLIMIT=1 FLOWLBL=0 PROTO=ICMPv6 TYPE=143 CODE=0 MARK=0xd4", + "network.community_id": "1:XZrSeKYMvsI3xGPWG5JqrtsD87U=", "network.transport": "ipv6-icmp", "network.type": "ipv6", "service.type": "iptables", diff --git a/x-pack/filebeat/module/iptables/log/test/ubiquiti.log-expected.json b/x-pack/filebeat/module/iptables/log/test/ubiquiti.log-expected.json index f268a98822e..bccb22ca079 100644 --- a/x-pack/filebeat/module/iptables/log/test/ubiquiti.log-expected.json +++ b/x-pack/filebeat/module/iptables/log/test/ubiquiti.log-expected.json @@ -23,6 +23,7 @@ "iptables.udp.length": 520, "log.offset": 0, "log.original": "Jan 5 20:17:05 MainFirewall kernel: [LAN_LOCAL-default-A]IN=eth0.90 OUT= MAC=90:10:92:6e:ea:a7:90:10:73:ba:d6:77:08:00:45:fc:02:1c SRC=192.168.48.137 DST=255.55.174.225 LEN=540 TOS=0x1C PREC=0xE0 TTL=64 ID=27223 PROTO=UDP SPT=48689 DPT=48689 LEN=520 ", + "network.community_id": "1:3qoibVBmc9hsnHpP4Ms5HO6ls7Q=", "network.transport": "udp", "network.type": "ipv4", "service.type": "iptables", @@ -60,6 +61,7 @@ "iptables.ubiquiti.rule_set": "WAN_OUT", "log.offset": 252, "log.original": "Jan 5 20:17:01 MainFirewall kernel: [WAN_OUT-2000-A]IN=eth0 OUT=eth2 MAC=90:10:20:76:8d:20:90:10:24:67:f4:89:08:00 SRC=192.168.134.158 DST=192.0.2.25 LEN=265 TOS=0x00 PREC=0x00 TTL=63 ID=51768 DF PROTO=TCP SPT=43189 DPT=443 WINDOW=159 RES=0x00 ACK PSH URGP=0 ", + "network.community_id": "1:7bPQdYPL4yePwQJZt0I1dvVXLHc=", "network.transport": "tcp", "network.type": "ipv4", "service.type": "iptables", @@ -99,6 +101,7 @@ "iptables.ubiquiti.rule_set": "source-dest", "log.offset": 513, "log.original": "Jan 5 20:17:01 MainFirewall kernel: [source-dest-default-D]IN=eth0 OUT=eth2 MAC=90:10:20:76:8d:20:90:10:65:29:b6:2a:08:00 SRC=192.168.110.116 DST=192.0.2.25 LEN=52 TOS=0x00 PREC=0x00 TTL=63 ID=0 DF PROTO=TCP SPT=50093 DPT=1443 WINDOW=2857 RES=0x00 ACK URGP=0 ", + "network.community_id": "1:6BwNFzns3BNljtYZJCwhPO5Qoq0=", "network.transport": "tcp", "network.type": "ipv4", "service.type": "iptables", @@ -136,6 +139,7 @@ "iptables.ubiquiti.rule_set": "WAN_OUT", "log.offset": 774, "log.original": "Jan 5 20:17:01 MainFirewall kernel: [WAN_OUT-2000-A]IN=eth0 OUT=eth2 MAC=90:10:20:76:8d:20:90:10:65:29:b6:2a:08:00 SRC=192.168.110.116 DST=192.0.2.25 LEN=52 TOS=0x00 PREC=0x00 TTL=63 ID=0 DF PROTO=TCP SPT=50093 DPT=1443 WINDOW=2853 RES=0x00 ACK URGP=0 ", + "network.community_id": "1:6BwNFzns3BNljtYZJCwhPO5Qoq0=", "network.transport": "tcp", "network.type": "ipv4", "service.type": "iptables", @@ -173,6 +177,7 @@ "iptables.ubiquiti.rule_set": "WAN_OUT", "log.offset": 1028, "log.original": "Jan 5 20:17:01 MainFirewall kernel: [WAN_OUT-2000-A]IN=eth0 OUT=eth2 MAC=90:10:20:76:8d:20:90:10:65:29:b6:2a:08:00 SRC=192.168.110.116 DST=192.0.2.25 LEN=52 TOS=0x00 PREC=0x00 TTL=63 ID=0 DF PROTO=TCP SPT=50093 DPT=1443 WINDOW=2850 RES=0x00 ACK URGP=0 ", + "network.community_id": "1:6BwNFzns3BNljtYZJCwhPO5Qoq0=", "network.transport": "tcp", "network.type": "ipv4", "service.type": "iptables", diff --git a/x-pack/filebeat/module/suricata/eve/config/eve.yml b/x-pack/filebeat/module/suricata/eve/config/eve.yml index dbf1ad1d3ae..0d64f7b45f8 100644 --- a/x-pack/filebeat/module/suricata/eve/config/eve.yml +++ b/x-pack/filebeat/module/suricata/eve/config/eve.yml @@ -7,3 +7,14 @@ exclude_files: [".gz$"] tags: {{.tags}} json.keys_under_root: false + +{{ if .community_id }} +processors: + - community_id: + fields: + source_ip: json.src_ip + source_port: json.src_port + destination_ip: json.dest_ip + destination_port: json.dest_port + transport: json.proto +{{ end }} diff --git a/x-pack/filebeat/module/suricata/eve/manifest.yml b/x-pack/filebeat/module/suricata/eve/manifest.yml index 228646bbfc3..5ebb6afec8f 100644 --- a/x-pack/filebeat/module/suricata/eve/manifest.yml +++ b/x-pack/filebeat/module/suricata/eve/manifest.yml @@ -10,6 +10,8 @@ var: - 'c:/program files/suricata/log/eve.json' - name: tags default: [suricata] + - name: community_id + default: true # - name: nested_ecs # default: false diff --git a/x-pack/filebeat/module/suricata/eve/test/eve-alerts.log-expected.json b/x-pack/filebeat/module/suricata/eve/test/eve-alerts.log-expected.json index 64f62fcb7ec..b378adcc6bc 100644 --- a/x-pack/filebeat/module/suricata/eve/test/eve-alerts.log-expected.json +++ b/x-pack/filebeat/module/suricata/eve/test/eve-alerts.log-expected.json @@ -31,6 +31,7 @@ "log.offset": 0, "message": "Attempted Information Leak", "network.bytes": 2001, + "network.community_id": "1:Tx1T2pcsxn4KDSlkBTi/5q9tZuo=", "network.packets": 7, "network.protocol": "http", "network.transport": "tcp", @@ -93,6 +94,7 @@ "log.offset": 723, "message": "Attempted Information Leak", "network.bytes": 2001, + "network.community_id": "1:A30Bhw0tTI2EifayU+MwAocMCZs=", "network.packets": 7, "network.protocol": "http", "network.transport": "tcp", @@ -155,6 +157,7 @@ "log.offset": 1445, "message": "Attempted Information Leak", "network.bytes": 2001, + "network.community_id": "1:QI9ZBw/ltPo2cnzG5ne3IrgSdhw=", "network.packets": 7, "network.protocol": "http", "network.transport": "tcp", @@ -217,6 +220,7 @@ "log.offset": 2168, "message": "Attempted Information Leak", "network.bytes": 2001, + "network.community_id": "1:kvem4ydd+kylAQHyyYnQUREfRDY=", "network.packets": 7, "network.protocol": "http", "network.transport": "tcp", @@ -279,6 +283,7 @@ "log.offset": 2889, "message": "Attempted Information Leak", "network.bytes": 2001, + "network.community_id": "1:HpBUwS4J4Fkh+ON3BdMMGV4jy8I=", "network.packets": 7, "network.protocol": "http", "network.transport": "tcp", @@ -341,6 +346,7 @@ "log.offset": 3611, "message": "Attempted Information Leak", "network.bytes": 2001, + "network.community_id": "1:Bp3vB9bJiV2y/u23rxSpviRLSto=", "network.packets": 7, "network.protocol": "http", "network.transport": "tcp", @@ -403,6 +409,7 @@ "log.offset": 4334, "message": "Not Suspicious Traffic", "network.bytes": 2151, + "network.community_id": "1:/kMBCIkdcM80Xtj2MYPWlkzcovg=", "network.packets": 7, "network.protocol": "http", "network.transport": "tcp", @@ -465,6 +472,7 @@ "log.offset": 5140, "message": "Not Suspicious Traffic", "network.bytes": 904, + "network.community_id": "1:v4+r8WgQyj/+LOpAIRGXwdlh/Xk=", "network.packets": 7, "network.protocol": "http", "network.transport": "tcp", @@ -527,6 +535,7 @@ "log.offset": 5931, "message": "Not Suspicious Traffic", "network.bytes": 4287, + "network.community_id": "1:v4+r8WgQyj/+LOpAIRGXwdlh/Xk=", "network.packets": 11, "network.protocol": "http", "network.transport": "tcp", @@ -589,6 +598,7 @@ "log.offset": 6734, "message": "Not Suspicious Traffic", "network.bytes": 95353, + "network.community_id": "1:/kMBCIkdcM80Xtj2MYPWlkzcovg=", "network.packets": 126, "network.protocol": "http", "network.transport": "tcp", @@ -651,6 +661,7 @@ "log.offset": 7630, "message": "Not Suspicious Traffic", "network.bytes": 151605, + "network.community_id": "1:/kMBCIkdcM80Xtj2MYPWlkzcovg=", "network.packets": 185, "network.protocol": "http", "network.transport": "tcp", @@ -713,6 +724,7 @@ "log.offset": 8533, "message": "Not Suspicious Traffic", "network.bytes": 341985, + "network.community_id": "1:/kMBCIkdcM80Xtj2MYPWlkzcovg=", "network.packets": 377, "network.protocol": "http", "network.transport": "tcp", @@ -775,6 +787,7 @@ "log.offset": 9443, "message": "Not Suspicious Traffic", "network.bytes": 101449, + "network.community_id": "1:v4+r8WgQyj/+LOpAIRGXwdlh/Xk=", "network.packets": 131, "network.protocol": "http", "network.transport": "tcp", @@ -837,6 +850,7 @@ "log.offset": 10252, "message": "Not Suspicious Traffic", "network.bytes": 181775, + "network.community_id": "1:v4+r8WgQyj/+LOpAIRGXwdlh/Xk=", "network.packets": 210, "network.protocol": "http", "network.transport": "tcp", @@ -899,6 +913,7 @@ "log.offset": 11147, "message": "Not Suspicious Traffic", "network.bytes": 388131, + "network.community_id": "1:v4+r8WgQyj/+LOpAIRGXwdlh/Xk=", "network.packets": 412, "network.protocol": "http", "network.transport": "tcp", @@ -961,6 +976,7 @@ "log.offset": 12048, "message": "Not Suspicious Traffic", "network.bytes": 482156, + "network.community_id": "1:v4+r8WgQyj/+LOpAIRGXwdlh/Xk=", "network.packets": 504, "network.protocol": "http", "network.transport": "tcp", @@ -1023,6 +1039,7 @@ "log.offset": 12951, "message": "Not Suspicious Traffic", "network.bytes": 903684, + "network.community_id": "1:v4+r8WgQyj/+LOpAIRGXwdlh/Xk=", "network.packets": 916, "network.protocol": "http", "network.transport": "tcp", @@ -1085,6 +1102,7 @@ "log.offset": 13860, "message": "Not Suspicious Traffic", "network.bytes": 908100, + "network.community_id": "1:v4+r8WgQyj/+LOpAIRGXwdlh/Xk=", "network.packets": 921, "network.protocol": "http", "network.transport": "tcp", @@ -1146,6 +1164,7 @@ "log.offset": 14767, "message": "Not Suspicious Traffic", "network.bytes": 1504422, + "network.community_id": "1:v4+r8WgQyj/+LOpAIRGXwdlh/Xk=", "network.packets": 1503, "network.protocol": "http", "network.transport": "tcp", @@ -1207,6 +1226,7 @@ "log.offset": 15651, "message": "Not Suspicious Traffic", "network.bytes": 1658832, + "network.community_id": "1:v4+r8WgQyj/+LOpAIRGXwdlh/Xk=", "network.packets": 1654, "network.protocol": "http", "network.transport": "tcp", diff --git a/x-pack/filebeat/module/suricata/eve/test/eve-small.log-expected.json b/x-pack/filebeat/module/suricata/eve/test/eve-small.log-expected.json index 82c1fd66725..d3d2cf03069 100644 --- a/x-pack/filebeat/module/suricata/eve/test/eve-small.log-expected.json +++ b/x-pack/filebeat/module/suricata/eve/test/eve-small.log-expected.json @@ -12,6 +12,7 @@ "fileset.name": "eve", "input.type": "log", "log.offset": 0, + "network.community_id": "1:NLm1MbaBR6humQxEQI2Ai7h/XiI=", "network.transport": "tcp", "service.type": "suricata", "source.ip": "192.168.86.85", @@ -48,6 +49,7 @@ "log.offset": 350, "message": "Potential Corporate Privacy Violation", "network.bytes": 1136, + "network.community_id": "1:BWtsS+4pk477zAwfzve3Nm+x1Ms=", "network.packets": 7, "network.protocol": "tls", "network.transport": "tcp", @@ -89,6 +91,7 @@ "http.response.status_code": 200, "input.type": "log", "log.offset": 985, + "network.community_id": "1:gjMiDGtS5SVvdwzjjQdAKGBrDA4=", "network.transport": "tcp", "service.type": "suricata", "source.ip": "192.168.86.85", @@ -132,6 +135,7 @@ "http.response.status_code": 200, "input.type": "log", "log.offset": 1507, + "network.community_id": "1:XhhAO/Twj86+bD+1fV8FnpLIEDs=", "network.protocol": "http", "network.transport": "tcp", "service.type": "suricata", @@ -176,6 +180,7 @@ "fileset.name": "eve", "input.type": "log", "log.offset": 2347, + "network.community_id": "1:pC3b0nBNCU4LxSue53drHp4b4cs=", "network.transport": "udp", "service.type": "suricata", "source.ip": "192.168.86.1", @@ -343,6 +348,7 @@ "fileset.name": "eve", "input.type": "log", "log.offset": 4683, + "network.community_id": "1:u67AuA4ybOaspT7mp9OZ3jWvnKw=", "network.transport": "tcp", "service.type": "suricata", "source.ip": "192.168.86.85", @@ -380,6 +386,7 @@ "input.type": "log", "log.offset": 5308, "network.bytes": 110, + "network.community_id": "1:fNUIKjMfx/xaM1gOO3eaVAeWLZA=", "network.packets": 1, "network.protocol": "failed", "network.transport": "udp", diff --git a/x-pack/filebeat/module/zeek/connection/config/connection.yml b/x-pack/filebeat/module/zeek/connection/config/connection.yml index 47fb2906642..680275227be 100644 --- a/x-pack/filebeat/module/zeek/connection/config/connection.yml +++ b/x-pack/filebeat/module/zeek/connection/config/connection.yml @@ -57,3 +57,19 @@ processors: ignore_missing: true fail_on_error: false +{{ if .community_id }} + - if: + equals.network.transport: icmp + then: + community_id: + fields: + source_ip: source.address + destination_ip: destination.address + icmp_type: source.port + icmp_code: destination.port + else: + community_id: + fields: + source_ip: source.address + destination_ip: destination.address +{{ end }} diff --git a/x-pack/filebeat/module/zeek/connection/manifest.yml b/x-pack/filebeat/module/zeek/connection/manifest.yml index fc71598ebdd..0361f0c89fa 100644 --- a/x-pack/filebeat/module/zeek/connection/manifest.yml +++ b/x-pack/filebeat/module/zeek/connection/manifest.yml @@ -10,6 +10,8 @@ var: - /usr/local/var/logs/current/conn.log - name: tags default: [zeek.connection] + - name: community_id + default: true ingest_pipeline: ingest/pipeline.json input: config/connection.yml diff --git a/x-pack/filebeat/module/zeek/connection/test/connection-json.log b/x-pack/filebeat/module/zeek/connection/test/connection-json.log index 4e47ebedcec..ea58b37315e 100644 --- a/x-pack/filebeat/module/zeek/connection/test/connection-json.log +++ b/x-pack/filebeat/module/zeek/connection/test/connection-json.log @@ -1,3 +1,4 @@ {"ts":1547188415.857497,"uid":"CAcJw21BbVedgFnYH3","id.orig_h":"192.168.86.167","id.orig_p":38339,"id.resp_h":"192.168.86.1","id.resp_p":53,"proto":"udp","service":"dns","duration":0.076967,"orig_bytes":75,"resp_bytes":178,"conn_state":"SF","local_orig":true,"local_resp":true,"missed_bytes":0,"history":"Dd","orig_pkts":1,"orig_ip_bytes":103,"resp_pkts":1,"resp_ip_bytes":206,"tunnel_parents":[]} {"ts":1547188416.857497,"uid":"CAcJw21BbVedgFnYH4","id.orig_h":"192.168.86.167","id.orig_p":38340,"id.resp_h":"8.8.8.8","id.resp_p":53,"proto":"udp","service":"dns","duration":0.076967,"orig_bytes":75,"resp_bytes":178,"conn_state":"SF","local_orig":true,"local_resp":false,"missed_bytes":0,"history":"Dd","orig_pkts":1,"orig_ip_bytes":103,"resp_pkts":1,"resp_ip_bytes":206,"tunnel_parents":[]} {"ts":1547188417.857497,"uid":"CAcJw21BbVedgFnYH5","id.orig_h":"4.4.2.2","id.orig_p":383341,"id.resp_h":"8.8.8.8","id.resp_p":53,"proto":"udp","service":"dns","duration":0.076967,"orig_bytes":75,"resp_bytes":178,"conn_state":"SF","local_orig":false,"local_resp":false,"missed_bytes":0,"history":"Dd","orig_pkts":1,"orig_ip_bytes":103,"resp_pkts":1,"resp_ip_bytes":206,"tunnel_parents":[]} +{"ts":1551399000.57855,"uid":"Cc6NJ3GRlfjE44I3h","id.orig_h":"192.0.2.205","id.orig_p":3,"id.resp_h":"198.51.100.249","id.resp_p":3,"proto":"icmp","conn_state":"OTH","local_orig":false,"local_resp":false,"missed_bytes":0,"orig_pkts":1,"orig_ip_bytes":107,"resp_pkts":0,"resp_ip_bytes":0,"tunnel_parents":[]} diff --git a/x-pack/filebeat/module/zeek/connection/test/connection-json.log-expected.json b/x-pack/filebeat/module/zeek/connection/test/connection-json.log-expected.json index becb63faad1..bddcf1f4342 100644 --- a/x-pack/filebeat/module/zeek/connection/test/connection-json.log-expected.json +++ b/x-pack/filebeat/module/zeek/connection/test/connection-json.log-expected.json @@ -15,6 +15,7 @@ "input.type": "log", "log.offset": 0, "network.application": "dns", + "network.community_id": "1:Z26DBGVYoBKQ1FT6qfPaAqBnJik=", "network.direction": "internal", "network.transport": "udp", "service.type": "zeek", @@ -55,6 +56,7 @@ "input.type": "log", "log.offset": 398, "network.application": "dns", + "network.community_id": "1:77KJyeznYjdDxCSKdZhW89aAaBI=", "network.direction": "outbound", "network.transport": "udp", "service.type": "zeek", @@ -94,6 +96,7 @@ "input.type": "log", "log.offset": 792, "network.application": "dns", + "network.community_id": "1:9xAq+MIBct9Is73ErTrU/RZ+Nq0=", "network.direction": "external", "network.transport": "udp", "service.type": "zeek", @@ -115,5 +118,37 @@ "zeek.connection.missed_bytes": 0, "zeek.connection.state": "SF", "zeek.session_id": "CAcJw21BbVedgFnYH5" + }, + { + "@timestamp": 1551399000000, + "destination.address": "198.51.100.249", + "destination.bytes": 0, + "destination.ip": "198.51.100.249", + "destination.packets": 0, + "destination.port": 3, + "ecs.version": "1.0.0-beta2", + "event.dataset": "zeek.connection", + "event.id": "Cc6NJ3GRlfjE44I3h", + "event.module": "zeek", + "fileset.name": "connection", + "input.type": "log", + "log.offset": 1181, + "network.community_id": "1:gzTID87+KHoT4RFDSqb5aInTPeg=", + "network.direction": "external", + "network.transport": "icmp", + "service.type": "zeek", + "source.address": "192.0.2.205", + "source.bytes": 107, + "source.ip": "192.0.2.205", + "source.packets": 1, + "source.port": 3, + "tags": [ + "zeek.connection" + ], + "zeek.connection.local_orig": false, + "zeek.connection.local_resp": false, + "zeek.connection.missed_bytes": 0, + "zeek.connection.state": "OTH", + "zeek.session_id": "Cc6NJ3GRlfjE44I3h" } ] \ No newline at end of file diff --git a/x-pack/filebeat/module/zeek/dns/config/dns.yml b/x-pack/filebeat/module/zeek/dns/config/dns.yml index d64c92da679..f1b004ec296 100644 --- a/x-pack/filebeat/module/zeek/dns/config/dns.yml +++ b/x-pack/filebeat/module/zeek/dns/config/dns.yml @@ -36,3 +36,9 @@ processors: ignore_missing: true fail_on_error: false +{{ if .community_id }} + - community_id: + fields: + source_ip: source.address + destination_ip: destination.address +{{ end }} diff --git a/x-pack/filebeat/module/zeek/dns/manifest.yml b/x-pack/filebeat/module/zeek/dns/manifest.yml index 71032e045d8..391a2a95463 100644 --- a/x-pack/filebeat/module/zeek/dns/manifest.yml +++ b/x-pack/filebeat/module/zeek/dns/manifest.yml @@ -10,6 +10,8 @@ var: - /usr/local/var/logs/current/dns.log - name: tags default: [zeek.dns] + - name: community_id + default: true ingest_pipeline: ingest/pipeline.json input: config/dns.yml diff --git a/x-pack/filebeat/module/zeek/dns/test/dns-json.log-expected.json b/x-pack/filebeat/module/zeek/dns/test/dns-json.log-expected.json index acc66d7e044..5b618b362fa 100644 --- a/x-pack/filebeat/module/zeek/dns/test/dns-json.log-expected.json +++ b/x-pack/filebeat/module/zeek/dns/test/dns-json.log-expected.json @@ -11,6 +11,7 @@ "fileset.name": "dns", "input.type": "log", "log.offset": 0, + "network.community_id": "1:Z26DBGVYoBKQ1FT6qfPaAqBnJik=", "network.transport": "udp", "service.type": "zeek", "source.address": "192.168.86.167", diff --git a/x-pack/filebeat/module/zeek/files/manifest.yml b/x-pack/filebeat/module/zeek/files/manifest.yml index 1d9ac220761..68b53467346 100644 --- a/x-pack/filebeat/module/zeek/files/manifest.yml +++ b/x-pack/filebeat/module/zeek/files/manifest.yml @@ -10,6 +10,8 @@ var: - /usr/local/var/logs/current/files.log - name: tags default: [zeek.files] + - name: community_id + default: true ingest_pipeline: ingest/pipeline.json input: config/files.yml diff --git a/x-pack/filebeat/module/zeek/http/config/http.yml b/x-pack/filebeat/module/zeek/http/config/http.yml index e43398036f3..2c024397018 100644 --- a/x-pack/filebeat/module/zeek/http/config/http.yml +++ b/x-pack/filebeat/module/zeek/http/config/http.yml @@ -8,6 +8,10 @@ tags: {{.tags}} json.keys_under_root: false +fields_under_root: true +fields: + network.transport: tcp + processors: - rename: fields: @@ -26,9 +30,6 @@ processors: - from: "zeek.http.id.resp_p" to: "destination.port" - - from: "zeek.http.proto" - to: "network.transport" - - from: "zeek.http.uid" to: "zeek.session_id" @@ -67,3 +68,9 @@ processors: ignore_missing: true fail_on_error: false +{{ if .community_id }} + - community_id: + fields: + source_ip: source.address + destination_ip: destination.address +{{ end }} diff --git a/x-pack/filebeat/module/zeek/http/manifest.yml b/x-pack/filebeat/module/zeek/http/manifest.yml index e98068206ee..a9ceabbaaa1 100644 --- a/x-pack/filebeat/module/zeek/http/manifest.yml +++ b/x-pack/filebeat/module/zeek/http/manifest.yml @@ -10,6 +10,8 @@ var: - /usr/local/var/logs/current/http.log - name: tags default: [zeek.http] + - name: community_id + default: true ingest_pipeline: ingest/pipeline.json input: config/http.yml diff --git a/x-pack/filebeat/module/zeek/http/test/http-json.log-expected.json b/x-pack/filebeat/module/zeek/http/test/http-json.log-expected.json index 075b2e2cd02..f9dfb0539fc 100644 --- a/x-pack/filebeat/module/zeek/http/test/http-json.log-expected.json +++ b/x-pack/filebeat/module/zeek/http/test/http-json.log-expected.json @@ -20,6 +20,8 @@ "http.version": "1.1", "input.type": "log", "log.offset": 0, + "network.community_id": "1:dtBPRfpKEZyg1iOHss95buwv+cw=", + "network.transport": "tcp", "service.type": "zeek", "source.address": "10.178.98.102", "source.ip": "10.178.98.102", diff --git a/x-pack/filebeat/module/zeek/notice/config/notice.yml b/x-pack/filebeat/module/zeek/notice/config/notice.yml index c722a1b8c2f..e9004624d4c 100644 --- a/x-pack/filebeat/module/zeek/notice/config/notice.yml +++ b/x-pack/filebeat/module/zeek/notice/config/notice.yml @@ -78,3 +78,9 @@ processors: - drop_fields: fields: ["zeek.notice.remote_location", "zeek.notice.f"] +{{ if .community_id }} + - community_id: + fields: + source_ip: source.address + destination_ip: destination.address +{{ end }} diff --git a/x-pack/filebeat/module/zeek/notice/manifest.yml b/x-pack/filebeat/module/zeek/notice/manifest.yml index b806ac04e1d..7b98a8efefc 100644 --- a/x-pack/filebeat/module/zeek/notice/manifest.yml +++ b/x-pack/filebeat/module/zeek/notice/manifest.yml @@ -10,6 +10,8 @@ var: - /usr/local/var/logs/current/notice.log - name: tags default: [zeek.notice] + - name: community_id + default: true ingest_pipeline: ingest/pipeline.json input: config/notice.yml diff --git a/x-pack/filebeat/module/zeek/ssl/config/ssl.yml b/x-pack/filebeat/module/zeek/ssl/config/ssl.yml index efa23ef44ff..63fe300421e 100644 --- a/x-pack/filebeat/module/zeek/ssl/config/ssl.yml +++ b/x-pack/filebeat/module/zeek/ssl/config/ssl.yml @@ -8,6 +8,10 @@ tags: {{.tags}} json.keys_under_root: false +fields_under_root: true +fields: + network.transport: tcp + processors: - rename: fields: @@ -26,11 +30,14 @@ processors: - from: "zeek.ssl.id.resp_p" to: "destination.port" - - from: "zeek.ssl.proto" - to: "network.transport" - - from: "zeek.ssl.uid" to: "zeek.session_id" ignore_missing: true fail_on_error: false +{{ if .community_id }} + - community_id: + fields: + source_ip: source.address + destination_ip: destination.address +{{ end }} diff --git a/x-pack/filebeat/module/zeek/ssl/manifest.yml b/x-pack/filebeat/module/zeek/ssl/manifest.yml index 74d9c46134f..e738859e232 100644 --- a/x-pack/filebeat/module/zeek/ssl/manifest.yml +++ b/x-pack/filebeat/module/zeek/ssl/manifest.yml @@ -10,6 +10,8 @@ var: - /usr/local/var/logs/current/ssl.log - name: tags default: [zeek.ssl] + - name: community_id + default: true ingest_pipeline: ingest/pipeline.json input: config/ssl.yml diff --git a/x-pack/filebeat/module/zeek/ssl/test/ssl-json.log-expected.json b/x-pack/filebeat/module/zeek/ssl/test/ssl-json.log-expected.json index 6a034c1d938..196acc7f3b3 100644 --- a/x-pack/filebeat/module/zeek/ssl/test/ssl-json.log-expected.json +++ b/x-pack/filebeat/module/zeek/ssl/test/ssl-json.log-expected.json @@ -18,6 +18,8 @@ "fileset.name": "ssl", "input.type": "log", "log.offset": 0, + "network.community_id": "1:1PMhYqOKBIyRAQeMbg/pWiJ198g=", + "network.transport": "tcp", "service.type": "zeek", "source.address": "10.178.98.102", "source.ip": "10.178.98.102", @@ -61,6 +63,8 @@ "fileset.name": "ssl", "input.type": "log", "log.offset": 635, + "network.community_id": "1:zYbLmqRN6PLPB067HNAiAQISqvI=", + "network.transport": "tcp", "service.type": "zeek", "source.address": "10.178.98.102", "source.ip": "10.178.98.102", From 0c7912a4a43c878b936190ab65f4e5090f1b8c10 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?No=C3=A9mi=20V=C3=A1nyi?= Date: Tue, 5 Mar 2019 07:59:37 +0100 Subject: [PATCH 125/332] Set include_type_name to true when loading template to ES 6.7 (#11025) * Revert "Do not use include_type_name=false when talking to ES 6.x (#10444)" This reverts commit 9d5f8700d65b55434da2364365402d55338cd33f. * include type name when loading template to ES 6.7 --- libbeat/template/load.go | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/libbeat/template/load.go b/libbeat/template/load.go index ae57b0f64d3..008ed430758 100644 --- a/libbeat/template/load.go +++ b/libbeat/template/load.go @@ -154,7 +154,8 @@ func (l *Loader) CheckTemplate(templateName string) bool { } func loadJSON(client ESClient, path string, json map[string]interface{}) ([]byte, error) { - status, body, err := client.Request("PUT", path, "", nil, json) + params := esVersionParams(client.GetVersion()) + status, body, err := client.Request("PUT", path, "", params, json) if err != nil { return body, fmt.Errorf("couldn't load json. Error: %s", err) } @@ -164,3 +165,13 @@ func loadJSON(client ESClient, path string, json map[string]interface{}) ([]byte return body, nil } + +func esVersionParams(ver common.Version) map[string]string { + if ver.Major == 6 && ver.Minor == 7 { + return map[string]string{ + "include_type_name": "true", + } + } + + return nil +} From 9762b07d5019b62c80a7d52f88bccab4be332681 Mon Sep 17 00:00:00 2001 From: Mario Castro Date: Tue, 5 Mar 2019 09:44:53 +0100 Subject: [PATCH 126/332] [Metricbeat] Migrate PostgreSQL bgwriter Metricset to use ReporterV2 interface (#10831) --- .../postgresql/bgwriter/_meta/data.json | 22 +++++++++----- .../module/postgresql/bgwriter/bgwriter.go | 29 ++++++++++++++----- .../bgwriter/bgwriter_integration_test.go | 20 ++++++++----- 3 files changed, 49 insertions(+), 22 deletions(-) diff --git a/metricbeat/module/postgresql/bgwriter/_meta/data.json b/metricbeat/module/postgresql/bgwriter/_meta/data.json index d6982bdd6d3..af0511c2a4c 100644 --- a/metricbeat/module/postgresql/bgwriter/_meta/data.json +++ b/metricbeat/module/postgresql/bgwriter/_meta/data.json @@ -1,19 +1,21 @@ { "@timestamp": "2017-10-12T08:05:34.853Z", - "beat": { + "agent": { "hostname": "host.example.com", "name": "host.example.com" }, + "event": { + "dataset": "postgresql.bgwriter", + "duration": 115000, + "module": "postgresql" + }, "metricset": { - "host": "postgresql:5432", - "module": "postgresql", - "name": "bgwriter", - "rtt": 115 + "name": "bgwriter" }, "postgresql": { "bgwriter": { "buffers": { - "allocated": 141, + "allocated": 143, "backend": 0, "backend_fsync": 0, "checkpoints": 0, @@ -22,7 +24,7 @@ }, "checkpoints": { "requested": 0, - "scheduled": 2, + "scheduled": 1, "times": { "sync": { "ms": 0 @@ -32,7 +34,11 @@ } } }, - "stats_reset": "2017-12-07T07:20:38.413Z" + "stats_reset": "2019-03-05T08:32:30.028Z" } + }, + "service": { + "address": "172.26.0.2:5432", + "type": "postgresql" } } \ No newline at end of file diff --git a/metricbeat/module/postgresql/bgwriter/bgwriter.go b/metricbeat/module/postgresql/bgwriter/bgwriter.go index bb6a0b3abbc..d31ef1084ce 100644 --- a/metricbeat/module/postgresql/bgwriter/bgwriter.go +++ b/metricbeat/module/postgresql/bgwriter/bgwriter.go @@ -21,9 +21,10 @@ import ( "database/sql" "fmt" + "github.com/elastic/beats/libbeat/logp" + "github.com/pkg/errors" - "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/module/postgresql" @@ -31,6 +32,8 @@ import ( _ "github.com/lib/pq" ) +var logger = logp.NewLogger("postgresql.bgwriter") + // init registers the MetricSet with the central registry. // The New method will be called after the setup of the module and before starting to fetch data func init() { @@ -50,22 +53,34 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { return &MetricSet{BaseMetricSet: base}, nil } -// Fetch methods implements the data gathering and data conversion to the right format -func (m *MetricSet) Fetch() (common.MapStr, error) { +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(reporter mb.ReporterV2) { db, err := sql.Open("postgres", m.HostData().URI) if err != nil { - return nil, err + logger.Error(err) + reporter.Error(err) + return } defer db.Close() results, err := postgresql.QueryStats(db, "SELECT * FROM pg_stat_bgwriter") if err != nil { - return nil, errors.Wrap(err, "QueryStats") + err = errors.Wrap(err, "QueryStats") + logger.Error(err) + reporter.Error(err) + return } if len(results) == 0 { - return nil, fmt.Errorf("No results from the pg_stat_bgwriter query") + err = fmt.Errorf("No results from the pg_stat_bgwriter query") + logger.Error(err) + reporter.Error(err) + return } data, _ := schema.Apply(results[0]) - return data, nil + reporter.Event(mb.Event{ + MetricSetFields: data, + }) } diff --git a/metricbeat/module/postgresql/bgwriter/bgwriter_integration_test.go b/metricbeat/module/postgresql/bgwriter/bgwriter_integration_test.go index 72b6bed4f60..bcd69a800cc 100644 --- a/metricbeat/module/postgresql/bgwriter/bgwriter_integration_test.go +++ b/metricbeat/module/postgresql/bgwriter/bgwriter_integration_test.go @@ -33,11 +33,13 @@ import ( func TestFetch(t *testing.T) { compose.EnsureUp(t, "postgresql") - f := mbtest.NewEventFetcher(t, getConfig()) - event, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } + assert.NotEmpty(t, events) + event := events[0].MetricSetFields t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) @@ -62,10 +64,14 @@ func TestFetch(t *testing.T) { func TestData(t *testing.T) { compose.EnsureUp(t, "postgresql") - f := mbtest.NewEventFetcher(t, getConfig()) + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) + } + assert.NotEmpty(t, events) - err := mbtest.WriteEvent(f, t) - if err != nil { + if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { t.Fatal("write", err) } } From 1bc1a9d41bb36f9430f4505d10a3a8f907d8b4f9 Mon Sep 17 00:00:00 2001 From: Mario Castro Date: Tue, 5 Mar 2019 09:45:48 +0100 Subject: [PATCH 127/332] [Metricbeat] Migrate PostgreSQL statement Metricset to use ReporterV2 interface (#10829) --- .../postgresql/statement/_meta/data.json | 96 ++++++++++--------- .../module/postgresql/statement/statement.go | 23 +++-- .../statement/statement_integration_test.go | 24 +++-- 3 files changed, 80 insertions(+), 63 deletions(-) diff --git a/metricbeat/module/postgresql/statement/_meta/data.json b/metricbeat/module/postgresql/statement/_meta/data.json index 2ef8bdde79c..a10d067e7e6 100644 --- a/metricbeat/module/postgresql/statement/_meta/data.json +++ b/metricbeat/module/postgresql/statement/_meta/data.json @@ -1,64 +1,70 @@ { "@timestamp": "2017-10-12T08:05:34.853Z", - "beat": { + "agent": { "hostname": "host.example.com", "name": "host.example.com" }, + "event": { + "dataset": "postgresql.statement", + "duration": 115000, + "module": "postgresql" + }, "metricset": { - "host": "postgresql:5432", - "module": "postgresql", - "name": "statement", - "rtt": 115 + "name": "statement" }, "postgresql": { "statement": { - "user": { - "id": 10 - }, "database": { - "oid": 175251 + "oid": 12379 }, "query": { - "text": "ROLLBACK", + "calls": 2, + "id": "1592910677", "memory": { - "shared": { - "hit": 0, - "read": 0, - "dirtied": 0, - "written": 0 - }, - "temp": { - "read": 0, - "written": 0 - }, - "local": { - "hit": 0, - "read": 0, - "dirtied": 0, - "written": 0 - } + "local": { + "dirtied": 0, + "hit": 0, + "read": 0, + "written": 0 + }, + "shared": { + "dirtied": 0, + "hit": 0, + "read": 0, + "written": 0 + }, + "temp": { + "read": 0, + "written": 0 + } }, - "id": "961354038", - "rows": 0, + "rows": 3, + "text": "SELECT * FROM pg_stat_statements", "time": { - "min": { - "ms": 0 - }, - "total": { - "ms": 0.02900000000000002 - }, - "stddev": { - "ms": 0.0003768830273792263 - }, - "max": { - "ms": 0.001 - }, - "mean": { - "ms": 0.0008285714285714287 - } - }, - "calls": 35 + "max": { + "ms": 0.388 + }, + "mean": { + "ms": 0.235 + }, + "min": { + "ms": 0.082 + }, + "stddev": { + "ms": 0.153 + }, + "total": { + "ms": 0.47000000000000003 + } + } + }, + "user": { + "id": 10 } } + }, + "service": { + "address": "172.26.0.2:5432", + "type": "postgresql" } } \ No newline at end of file diff --git a/metricbeat/module/postgresql/statement/statement.go b/metricbeat/module/postgresql/statement/statement.go index c11b79fff28..0d065900186 100644 --- a/metricbeat/module/postgresql/statement/statement.go +++ b/metricbeat/module/postgresql/statement/statement.go @@ -20,9 +20,10 @@ package statement import ( "database/sql" + "github.com/elastic/beats/libbeat/logp" + "github.com/pkg/errors" - "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/module/postgresql" @@ -30,6 +31,8 @@ import ( _ "github.com/lib/pq" ) +var logger = logp.NewLogger("postgresql.statement") + // init registers the MetricSet with the central registry as soon as the program // starts. The New function will be called later to instantiate an instance of // the MetricSet for each host defined in the module's configuration. After the @@ -64,23 +67,27 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // Fetch methods implements the data gathering and data conversion to the right // format. It publishes the event which is then forwarded to the output. In case // of an error set the Error field of mb.Event or simply call report.Error(). -func (m *MetricSet) Fetch() ([]common.MapStr, error) { +func (m *MetricSet) Fetch(reporter mb.ReporterV2) { db, err := sql.Open("postgres", m.HostData().URI) if err != nil { - return nil, err + logger.Error(err) + reporter.Error(err) + return } defer db.Close() results, err := postgresql.QueryStats(db, "SELECT * FROM pg_stat_statements") if err != nil { - return nil, errors.Wrap(err, "QueryStats") + err = errors.Wrap(err, "QueryStats") + logger.Error(err) + reporter.Error(err) + return } - events := []common.MapStr{} for _, result := range results { data, _ := schema.Apply(result) - events = append(events, data) + reporter.Event(mb.Event{ + MetricSetFields: data, + }) } - - return events, nil } diff --git a/metricbeat/module/postgresql/statement/statement_integration_test.go b/metricbeat/module/postgresql/statement/statement_integration_test.go index 58938df7c6b..4b326594192 100644 --- a/metricbeat/module/postgresql/statement/statement_integration_test.go +++ b/metricbeat/module/postgresql/statement/statement_integration_test.go @@ -33,14 +33,13 @@ import ( func TestFetch(t *testing.T) { compose.EnsureUp(t, "postgresql") - f := mbtest.NewEventsFetcher(t, getConfig()) - events, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } - - assert.True(t, len(events) > 0) - event := events[0] + assert.NotEmpty(t, events) + event := events[0].MetricSetFields t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) @@ -92,10 +91,15 @@ func TestFetch(t *testing.T) { func TestData(t *testing.T) { compose.EnsureUp(t, "postgresql") - f := mbtest.NewEventsFetcher(t, getConfig()) - err := mbtest.WriteEvents(f, t) - if err != nil { + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) + } + assert.NotEmpty(t, events) + + if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { t.Fatal("write", err) } } From bcaf5e950811fc56ee6f7a842bafebecef3bf46c Mon Sep 17 00:00:00 2001 From: Mario Castro Date: Tue, 5 Mar 2019 09:50:28 +0100 Subject: [PATCH 128/332] [Metricbeat] Migrate MongoDB metrics Metricset to use ReporterV2 interface (#10853) --- .../module/mongodb/metrics/_meta/data.json | 504 +++++++++--------- metricbeat/module/mongodb/metrics/metrics.go | 28 +- .../metrics/metrics_intergration_test.go | 21 +- 3 files changed, 294 insertions(+), 259 deletions(-) diff --git a/metricbeat/module/mongodb/metrics/_meta/data.json b/metricbeat/module/mongodb/metrics/_meta/data.json index 949f90492c8..1fee3da920f 100644 --- a/metricbeat/module/mongodb/metrics/_meta/data.json +++ b/metricbeat/module/mongodb/metrics/_meta/data.json @@ -1,252 +1,274 @@ { - "@timestamp":"2016-05-23T08:05:34.853Z", - "beat":{ - "hostname":"beathost", - "name":"beathost" + "@timestamp": "2017-10-12T08:05:34.853Z", + "agent": { + "hostname": "host.example.com", + "name": "host.example.com" }, - "metricset":{ - "host":"localhost", - "module":"mongodb", - "name":"metrics", - "rtt":44269 + "event": { + "dataset": "mongodb.metrics", + "duration": 115000, + "module": "mongodb" }, - "mongodb":{ - "metrics": { - "get_last_error": { - "write_wait": { - "ms": 0, - "count": 0 - }, - "write_timeouts": 0 - }, - "cursor": { - "open": { - "no_timeout": 0, - "pinned": 0, - "total": 1 - }, - "timed_out": 137 - }, - "replication": { - "apply": { - "batches": { - "count": 66871, - "time": { - "ms": 9981 - } + "metricset": { + "name": "metrics" + }, + "mongodb": { + "metrics": { + "commands": { + "aggregate": { + "failed": 0, + "total": 0 + }, + "build_info": { + "failed": 0, + "total": 0 + }, + "coll_stats": { + "failed": 0, + "total": 0 + }, + "connection_pool_stats": { + "failed": 0, + "total": 0 + }, + "count": { + "failed": 0, + "total": 0 + }, + "db_stats": { + "failed": 0, + "total": 3 + }, + "distinct": { + "failed": 0, + "total": 0 + }, + "find": { + "failed": 0, + "total": 0 + }, + "get_cmd_line_opts": { + "failed": 0, + "total": 0 + }, + "get_last_error": { + "failed": 0, + "total": 0 + }, + "get_log": { + "failed": 0, + "total": 0 + }, + "get_more": { + "failed": 0, + "total": 0 + }, + "get_parameter": { + "failed": 0, + "total": 0 + }, + "host_info": { + "failed": 0, + "total": 0 + }, + "insert": { + "failed": 0, + "total": 0 + }, + "is_master": { + "failed": 0, + "total": 12 + }, + "is_self": { + "failed": 0, + "total": 0 + }, + "last_collections": { + "failed": 0, + "total": 0 + }, + "last_commands": { + "failed": 0, + "total": 0 + }, + "list_databased": { + "failed": 0, + "total": 3 + }, + "list_indexes": { + "failed": 0, + "total": 0 + }, + "ping": { + "failed": 0, + "total": 12 + }, + "profile": { + "failed": 0, + "total": 0 + }, + "replset_get_rbid": { + "failed": 0, + "total": 0 + }, + "replset_get_status": { + "failed": 0, + "total": 0 + }, + "replset_heartbeat": { + "failed": 0, + "total": 0 + }, + "replset_update_position": { + "failed": 0, + "total": 0 + }, + "server_status": { + "failed": 0, + "total": 3 + }, + "update": { + "failed": 0, + "total": 0 + }, + "whatsmyuri": { + "failed": 0, + "total": 0 + } }, - "ops": 28536, - "attempts_to_become_secondary": 1 - }, - "buffer": { - "count": 0, - "max_size": { - "bytes": 268435456 + "cursor": { + "open": { + "no_timeout": 0, + "pinned": 0, + "total": 0 + }, + "timed_out": 0 }, - "size": {} - }, - "initial_sync": { - "failures": 0, - "completed": 0, - "failed_attempts": 0 - }, - "network": { - "bytes": 17002617, - "getmores": { - "count": 183078, - "time": { - "ms": 515206213 - } + "document": { + "deleted": 0, + "inserted": 0, + "returned": 0, + "updated": 0 }, - "ops": 78266, - "reders_created": 1 - }, - "preload": { - "docs": { - "count": 0, - "time": { - "ms": 0 - } + "get_last_error": { + "write_timeouts": 0, + "write_wait": { + "count": 0, + "ms": 0 + } }, - "indexes": { - "count": 0, - "time": { - "ms": 0 - } - } - }, - "executor": { - "counters": { - "event_created": 2, - "event_wait": 2, - "cancels": 440622, - "waits": 0, - "scheduled": { - "dbwork": 1, - "exclusive": 0, - "work_at": 1032681, - "work": 0, - "failures": 0, - "netcmd": 515015 - } + "operation": { + "scan_and_order": 0, + "write_conflicts": 0 + }, + "query_executor": { + "scanned_documents": { + "count": 0 + }, + "scanned_indexes": { + "count": 0 + } }, - "queues": { - "in_progress": { - "network": 0, - "dbwork": 0, - "exclusive": 0 - }, - "sleepers": 4, - "ready": 0, - "free": 5 + "replication": { + "apply": { + "attempts_to_become_secondary": 0, + "batches": { + "count": 0, + "time": { + "ms": 0 + } + }, + "ops": 0 + }, + "buffer": { + "count": 0, + "max_size": { + "bytes": 0 + }, + "size": { + "bytes": 0 + } + }, + "executor": { + "counters": { + "cancels": 0, + "event_created": 0, + "event_wait": 0, + "scheduled": { + "dbwork": 0, + "exclusive": 0, + "failures": 0, + "netcmd": 0, + "work": 0, + "work_at": 0 + }, + "waits": 0 + }, + "event_waiters": 0, + "network_interface": "\nNetworkInterfaceASIO Operations' Diagnostic:\nOperation: Count: \nConnecting 0 \nIn Progress 0 \nSucceeded 0 \nCanceled 0 \nFailed 0 \nTimed Out 0 \n\n", + "queues": { + "free": 0, + "in_progress": { + "dbwork": 0, + "exclusive": 0, + "network": 0 + }, + "ready": 0, + "sleepers": 0 + }, + "shutting_down": false, + "unsignaled_events": 0 + }, + "initial_sync": { + "completed": 0, + "failed_attempts": 0, + "failures": 0 + }, + "network": { + "bytes": 0, + "getmores": { + "count": 0, + "time": { + "ms": 0 + } + }, + "ops": 0, + "reders_created": 0 + }, + "preload": { + "docs": { + "count": 0, + "time": { + "ms": 0 + } + }, + "indexes": { + "count": 0, + "time": { + "ms": 0 + } + } + } }, - "unsignaled_events": 4, - "event_waiters": 0, - "shutting_down": false, - "network_interface": "\nNetworkInterfaceASIO Operations' Diagnostic:\nOperation: Count: \nConnecting 0 \nIn Progress 0 \nSucceeded 515014 \nCanceled 0 \nFailed 1 \nTimed Out 1 \n\n" - } - }, - "operation": { - "scan_and_order": 0, - "write_conflicts": 0 - }, - "ttl": { - "passes": { - "count": 8590 - }, - "deleted_documents": { - "count": 0 - } - }, - "commands": { - "db_stats": { - "total": 3440, - "failed": 0 - }, - "last_collections": { - "failed": 0, - "total": 146 - }, - "aggregate": { - "failed": 0, - "total": 0 - }, - "server_status": { - "total": 123122, - "failed": 0 - }, - "get_last_error": { - "failed": 0, - "total": 15 - }, - "list_indexes": { - "failed": 0, - "total": 216 - }, - "connection_pool_stats": { - "total": 9372, - "failed": 0 - }, - "update": { - "total": 0, - "failed": 0 - }, - "is_self": { - "total": 9372, - "failed": 0 - }, - "insert": { - "total": 0, - "failed": 0 - }, - "replset_get_rbid": { - "failed": 0, - "total": 0 - }, - "get_parameter": { - "failed": 0, - "total": 9372 - }, - "count": { - "failed": 0, - "total": 432 - }, - "replset_update_position": { - "failed": 0, - "total": 0 - }, - "host_info": { - "failed": 0, - "total": 9372 - }, - "replset_heartbeat": { - "total": 360615, - "failed": 0 - }, - "profile": { - "failed": 0, - "total": 0 - }, - "coll_stats": { - "failed": 0, - "total": 112526 - }, - "whatsmyuri": { - "total": 7, - "failed": 0 - }, - "replset_get_status": { - "failed": 0, - "total": 121833 - }, - "ping": { - "failed": 0, - "total": 160781 - }, - "build_info": { - "failed": 0, - "total": 112751 - }, - "find": { - "failed": 0, - "total": 9726 - }, - "get_cmd_line_opts": { - "failed": 0, - "total": 9372 - }, - "list_databased": { - "total": 2612, - "failed": 0 - }, - "get_log": { - "failed": 0, - "total": 9372 - }, - "get_more": { - "failed": 0, - "total": 28359 - }, - "distinct": { - "total": 0, - "failed": 0 - }, - "last_commands": { - "failed": 0, - "total": 0 - }, - "is_master": { - "total": 295988, - "failed": 0 - } - }, - "document": { - "deleted": 0, - "inserted": 0, - "returned": 1615596512, - "updated": 0 + "storage": { + "search": { + "bucket_exhausted": 0, + "requests": 0, + "scanned": 0 + } + }, + "ttl": { + "deleted_documents": { + "count": 0 + }, + "passes": { + "count": 0 + } + } } - } }, - "type":"metricsets" -} + "service": { + "address": "172.26.0.2:27017", + "type": "mongodb" + } +} \ No newline at end of file diff --git a/metricbeat/module/mongodb/metrics/metrics.go b/metricbeat/module/mongodb/metrics/metrics.go index 33cd6026336..cab03d4a9a0 100644 --- a/metricbeat/module/mongodb/metrics/metrics.go +++ b/metricbeat/module/mongodb/metrics/metrics.go @@ -18,7 +18,6 @@ package metrics import ( - "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/module/mongodb" @@ -26,7 +25,7 @@ import ( "gopkg.in/mgo.v2/bson" ) -var debugf = logp.MakeDebug("mongodb.metrics") +var logger = logp.NewLogger("mongodb.metrics") func init() { mb.Registry.MustAddMetricSet("mongodb", "metrics", New, @@ -54,26 +53,33 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { return &MetricSet{ms}, nil } -// Fetch methods implements the data gathering and data conversion to the right format -// It returns the event which is then forward to the output. In case of an error, a -// descriptive error must be returned. -func (m *MetricSet) Fetch() (common.MapStr, error) { - +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(reporter mb.ReporterV2) { // instantiate direct connections to each of the configured Mongo hosts mongoSession, err := mongodb.NewDirectSession(m.DialInfo) if err != nil { - return nil, err + logger.Error(err) + reporter.Error(err) + return } defer mongoSession.Close() result := map[string]interface{}{} if err := mongoSession.DB("admin").Run(bson.D{{Name: "serverStatus", Value: 1}}, &result); err != nil { - return nil, err + logger.Error(err) + reporter.Error(err) + return } data, err := schema.Apply(result) if err != nil { - return nil, err + logger.Error(err) + reporter.Error(err) + return } - return data, nil + reporter.Event(mb.Event{MetricSetFields: data}) + + return } diff --git a/metricbeat/module/mongodb/metrics/metrics_intergration_test.go b/metricbeat/module/mongodb/metrics/metrics_intergration_test.go index 1347cd02874..f59cb703b28 100644 --- a/metricbeat/module/mongodb/metrics/metrics_intergration_test.go +++ b/metricbeat/module/mongodb/metrics/metrics_intergration_test.go @@ -32,11 +32,13 @@ import ( func TestFetch(t *testing.T) { compose.EnsureUp(t, "mongodb") - f := mbtest.NewEventFetcher(t, getConfig()) - event, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } + assert.NotEmpty(t, events) + event := events[0].MetricSetFields // Check a few event Fields findCount, err := event.GetValue("commands.find.total") @@ -51,9 +53,14 @@ func TestFetch(t *testing.T) { func TestData(t *testing.T) { compose.EnsureUp(t, "mongodb") - f := mbtest.NewEventFetcher(t, getConfig()) - err := mbtest.WriteEvent(f, t) - if err != nil { + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) + } + assert.NotEmpty(t, events) + + if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { t.Fatal("write", err) } } From 50ab684551d48aa496018425645d28b87a0b074f Mon Sep 17 00:00:00 2001 From: Jaime Soriano Pastor Date: Tue, 5 Mar 2019 13:33:18 +0100 Subject: [PATCH 129/332] Log EOFs found on Kubernetes watcher at debug level (#10988) EOFs received when watching Kubernetes events can be recovered by reconnecting, and they don't need to be harmful. So log them at the debug level. --- CHANGELOG.next.asciidoc | 1 + libbeat/common/kubernetes/watcher.go | 11 ++++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 758919d6fcc..12e436b71bb 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -135,6 +135,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Allow to configure Kafka fetching strategy for the topic metadata. {pull}10682[10682] - Using an environment variable for the password when enrolling a beat will now raise an error if the variable doesn't exist. {pull}10936[10936] - Add missing `host.containerized` and `host.os.build` to fields.ecs.yml. {pull}11016[11016] +- Reconnections of Kubernetes watchers are now logged at debug level when they are harmless. {pull}10988[10988] *Auditbeat* diff --git a/libbeat/common/kubernetes/watcher.go b/libbeat/common/kubernetes/watcher.go index 6bcad2f226f..32e2340c820 100644 --- a/libbeat/common/kubernetes/watcher.go +++ b/libbeat/common/kubernetes/watcher.go @@ -255,12 +255,17 @@ func (w *watcher) watch() { r := w.k8sResourceFactory() eventType, err := watcher.Next(r) if err != nil { - logp.Err("kubernetes: Watching API error %v", err) watcher.Close() - if !(err == io.EOF || err == io.ErrUnexpectedEOF) { + switch err { + case io.EOF: + logp.Debug("kubernetes", "EOF while watching API") + case io.ErrUnexpectedEOF: + logp.Info("kubernetes: Unexpected EOF while watching API") + default: // This is an error event which can be recovered by moving to the latest resource version - logp.Info("kubernetes: Ignoring event, moving to most recent resource version") + logp.Err("kubernetes: Watching API error %v, ignoring event and moving to most recent resource version", err) w.lastResourceVersion = "" + } break } From 54fe095d629e5eef5bf38e4960388304d2325f46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?No=C3=A9mi=20V=C3=A1nyi?= Date: Tue, 5 Mar 2019 14:01:59 +0100 Subject: [PATCH 130/332] Detect if the configured and the migrated registry paths are the same (#10982) * do not do anything if the configured registry and the migrated path are the same && fix E2E tests * fix test configuration * fix whitespaces * more whitespace fixes --- journalbeat/checkpoint/checkpoint.go | 8 +++++++ .../tests/system/config/journalbeat.yml.j2 | 2 +- journalbeat/tests/system/test_base.py | 21 ++++++++++++++++--- 3 files changed, 27 insertions(+), 4 deletions(-) diff --git a/journalbeat/checkpoint/checkpoint.go b/journalbeat/checkpoint/checkpoint.go index 2d0d108a590..ff8e702de1c 100644 --- a/journalbeat/checkpoint/checkpoint.go +++ b/journalbeat/checkpoint/checkpoint.go @@ -140,6 +140,14 @@ func (c *Checkpoint) findRegistryFile() error { return fmt.Errorf("error accessing previous registry file: %+v", err) } + // if two files are the same, do not do anything + migratedFs, err := os.Stat(migratedPath) + if err == nil { + if os.SameFile(fs, migratedFs) { + return nil + } + } + f, err := os.Open(c.file) if err != nil { return err diff --git a/journalbeat/tests/system/config/journalbeat.yml.j2 b/journalbeat/tests/system/config/journalbeat.yml.j2 index 68861a6c5ce..7486f9914ef 100644 --- a/journalbeat/tests/system/config/journalbeat.yml.j2 +++ b/journalbeat/tests/system/config/journalbeat.yml.j2 @@ -7,7 +7,7 @@ journalbeat.inputs: {% endif %} include_matches: [{{ matches }}] -journalbeat.registry: {{ registry_file }} +journalbeat.registry_file: {{ registry_file }} ############################# Output ########################################## diff --git a/journalbeat/tests/system/test_base.py b/journalbeat/tests/system/test_base.py index 84688f3e40c..c85f1ef9f16 100644 --- a/journalbeat/tests/system/test_base.py +++ b/journalbeat/tests/system/test_base.py @@ -4,6 +4,7 @@ import sys import unittest import time +import yaml class Test(BaseTest): @@ -113,10 +114,14 @@ def test_read_events_with_existing_registry(self): Journalbeat is able to follow reading a from a journal with an existing registry file. """ + registry_path = self.beat_path + "/tests/system/input/test.registry" + input_path = self.beat_path + "/tests/system/input/test.journal" + self._prepare_registry_file(registry_path, input_path) + self.render_config_template( - journal_path=self.beat_path + "/tests/system/input/test.journal", + journal_path=input_path, seek_method="cursor", - registry_file=self.beat_path + "/tests/system/input/test.registry", + registry_file=registry_path, path=os.path.abspath(self.working_dir) + "/log/*", ) journalbeat_proc = self.start_beat() @@ -139,7 +144,7 @@ def test_read_events_with_existing_registry(self): assert exit_code == 0 @unittest.skipUnless(sys.platform.startswith("linux"), "Journald only on Linux") - def test_read_events_with_existing_registry(self): + def test_read_events_with_include_matches(self): """ Journalbeat is able to pass matchers to the journal reader and read filtered messages. """ @@ -171,6 +176,16 @@ def test_read_events_with_existing_registry(self): exit_code = journalbeat_proc.kill_and_wait() assert exit_code == 0 + def _prepare_registry_file(self, registry_path, journal_path): + lines = [] + with open(registry_path, "r") as registry_file: + lines = registry_file.readlines() + lines[2] = "- path: " + journal_path + "\n" + + with open(registry_path, "w") as registry_file: + for line in lines: + registry_file.write(line) + if __name__ == '__main__': unittest.main() From cca36b29777ed3806b8811ddb278318ccd99b121 Mon Sep 17 00:00:00 2001 From: Nicolas Ruflin Date: Tue, 5 Mar 2019 14:11:47 +0100 Subject: [PATCH 131/332] [Metricbeat] Simplify testing http Metricbeat modules (#10648) Currently most modules are tested against a docker container. This leads to long setup times and potentially flakyness. Also it requires additional setup to test actual changes on a module without running CI. The goal of this PR is to reduce this overhead, make it possible to easily test new data sets without having to write go code. Expected files were added to verify that changes had no effect on the generated data. The tests with the environment are still needed but should become less critical during development. The structure and logic is inspired by the testing of the Filebeat modules. So far 3 metricsets were convert to test the implementation. It's all based on conventions: * Tests outputs from a JSON endpoint must go int `_meta/testdata` * A `testdata/config.yml` file must exists to specify url under which the testdata should be served * A golden files is generated by adding `-expected.json`. For a metricset to be converted it must have the reporter interface, be http and json based and only have 1 endpoint requested at the time. All metricsets should be converted to the reporter interface. As there is now a more global view on the testing of a metricset, this code can potentially also take over the check to make sure that all fields are documented or at least the generated files can be used to do these checks. To support metricsets which generate one or multiple events the output is always an array of JSON objects. These arrays can also contain errors, meaning also invalid data can be tested. The `data.json` we had so far was hard to update and changed every time it was updated because it was pulled from a life instance. For the metricsets that are switched over to this testing, it's not the case anymore. The `data.json` is generated from the first event in the `docs.json`. This is by convention and allows to have a `docs.json` with a specially interesting event. This should make condition checks for which event should be shown also partially obsolete. Future work: * Support multiple endpoints: Elasticsearch metricsets do not work with the above model yet as they need multiple endpoints to be available at the same time. Config options for this could be introduced. * Support more then .json: Currently only .json is supported. More config options could be added to support other data formats for example for the apache module * Support other protocols then http: Not all modules are http based, 2-3 other comments protocols could be added. * Extend with additional config options: Some metricsets need additional config options to be set for testing. It should be possible to pass these as part of the config.yml file. * Generate the includes automatically: Currently if a new directory with testdata is added to a metricset, it will be discovered by the tests but then throws and error because the metricset is not registered. The metricset then has to be manually added to the `data_test.go` file. This works for now but potentially should be automated. The overall goal of all the above is to have Metricbeat modules more and more config based instead of golang code based. --- metricbeat/mb/testing/data_generator.go | 5 - metricbeat/mb/testing/data_test.go | 198 +++++++++ .../module/kibana/status/_meta/data.json | 18 +- .../kibana/status/_meta/testdata/7.0.0.json | 381 ++++++++++++++++++ .../_meta/testdata/7.0.0.json-expected.json | 36 ++ .../kibana/status/_meta/testdata/config.yml | 1 + .../kibana/status/_meta/testdata/docs.json | 95 +++++ .../_meta/testdata/docs.json-expected.json | 36 ++ .../kibana/status/status_integration_test.go | 11 - .../rabbitmq/connection/_meta/data.json | 8 +- .../connection/_meta/testdata/config.yml | 1 + .../connection/_meta/testdata/docs.json | 116 ++++++ .../_meta/testdata/docs.json-expected.json | 92 +++++ .../rabbitmq/connection/connection_test.go | 11 - .../module/traefik/health/_meta/data.json | 28 +- .../traefik/health/_meta/testdata/config.yml | 2 + .../traefik/health/_meta/testdata/docs.json | 18 + .../_meta/testdata/docs.json-expected.json | 34 ++ .../traefik/health/health_integration_test.go | 10 - 19 files changed, 1035 insertions(+), 66 deletions(-) create mode 100644 metricbeat/mb/testing/data_test.go create mode 100644 metricbeat/module/kibana/status/_meta/testdata/7.0.0.json create mode 100644 metricbeat/module/kibana/status/_meta/testdata/7.0.0.json-expected.json create mode 100644 metricbeat/module/kibana/status/_meta/testdata/config.yml create mode 100644 metricbeat/module/kibana/status/_meta/testdata/docs.json create mode 100644 metricbeat/module/kibana/status/_meta/testdata/docs.json-expected.json create mode 100644 metricbeat/module/rabbitmq/connection/_meta/testdata/config.yml create mode 100644 metricbeat/module/rabbitmq/connection/_meta/testdata/docs.json create mode 100644 metricbeat/module/rabbitmq/connection/_meta/testdata/docs.json-expected.json create mode 100644 metricbeat/module/traefik/health/_meta/testdata/config.yml create mode 100644 metricbeat/module/traefik/health/_meta/testdata/docs.json create mode 100644 metricbeat/module/traefik/health/_meta/testdata/docs.json-expected.json diff --git a/metricbeat/mb/testing/data_generator.go b/metricbeat/mb/testing/data_generator.go index 2d327507dec..7677b0dd05c 100644 --- a/metricbeat/mb/testing/data_generator.go +++ b/metricbeat/mb/testing/data_generator.go @@ -149,11 +149,6 @@ func StandardizeEvent(ms mb.MetricSet, e mb.Event, modifiers ...mb.EventModifier fullEvent := e.BeatEvent(ms.Module().Name(), ms.Name(), modifiers...) - fullEvent.Fields["agent"] = common.MapStr{ - "name": "host.example.com", - "hostname": "host.example.com", - } - return fullEvent } diff --git a/metricbeat/mb/testing/data_test.go b/metricbeat/mb/testing/data_test.go new file mode 100644 index 00000000000..bc8cc8ab639 --- /dev/null +++ b/metricbeat/mb/testing/data_test.go @@ -0,0 +1,198 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package testing + +import ( + "encoding/json" + "flag" + "io/ioutil" + "log" + "net/http" + "net/http/httptest" + "os" + "path/filepath" + "strings" + "testing" + + "github.com/stretchr/testify/assert" + "gopkg.in/yaml.v2" + + "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/metricbeat/mb" + + // TODO: generate include file for these tests automatically moving forward + _ "github.com/elastic/beats/metricbeat/module/kibana/status" + _ "github.com/elastic/beats/metricbeat/module/rabbitmq/connection" + _ "github.com/elastic/beats/metricbeat/module/traefik/health" +) + +const ( + expectedExtension = "-expected.json" +) + +var ( + // Use `go test -generate` to update files. + generateFlag = flag.Bool("generate", false, "Write golden files") +) + +type Config struct { + Type string + URL string +} + +func TestAll(t *testing.T) { + + configFiles, _ := filepath.Glob(getModulesPath() + "/*/*/_meta/testdata/config.yml") + + for _, f := range configFiles { + // get module and metricset name from path + s := strings.Split(f, string(os.PathSeparator)) + moduleName := s[3] + metricSetName := s[4] + + configFile, err := ioutil.ReadFile(f) + if err != nil { + log.Printf("yamlFile.Get err #%v ", err) + } + var config Config + err = yaml.Unmarshal(configFile, &config) + if err != nil { + log.Fatalf("Unmarshal: %v", err) + } + + getTestdataFiles(t, config.URL, moduleName, metricSetName) + } +} + +func getTestdataFiles(t *testing.T, url, module, metricSet string) { + + ff, _ := filepath.Glob(getMetricsetPath(module, metricSet) + "/_meta/testdata/*.json") + var files []string + for _, f := range ff { + // Exclude all the expected files + if strings.HasSuffix(f, expectedExtension) { + continue + } + files = append(files, f) + } + + for _, f := range files { + t.Run(f, func(t *testing.T) { + runTest(t, f, module, metricSet, url) + }) + } +} + +func runTest(t *testing.T, file string, module, metricSetName, url string) { + + // starts a server serving the given file under the given url + s := server(t, file, url) + defer s.Close() + + metricSet := NewReportingMetricSetV2(t, getConfig(module, metricSetName, s.URL)) + events, errs := ReportingFetchV2(metricSet) + + // Gather errors to build also error events + for _, e := range errs { + // TODO: for errors strip out and standardise the URL error as it would create a different diff every time + events = append(events, mb.Event{Error: e}) + } + + var data []common.MapStr + + for _, e := range events { + beatEvent := StandardizeEvent(metricSet, e, mb.AddMetricSetInfo) + // Overwrite service.address as the port changes every time + beatEvent.Fields.Put("service.address", "127.0.0.1:55555") + data = append(data, beatEvent.Fields) + } + + output, err := json.MarshalIndent(&data, "", " ") + if err != nil { + t.Fatal(err) + } + + // Overwrites the golden files if run with -generate + if *generateFlag { + if err = ioutil.WriteFile(file+expectedExtension, output, 0644); err != nil { + t.Fatal(err) + } + } + + // Read expected file + expected, err := ioutil.ReadFile(file + expectedExtension) + if err != nil { + t.Fatalf("could not read file: %s", err) + } + + assert.Equal(t, string(expected), string(output)) + + if strings.HasSuffix(file, "docs.json") { + writeDataJSON(t, data[0], module, metricSetName) + } +} + +func writeDataJSON(t *testing.T, data common.MapStr, module, metricSet string) { + // Add hardcoded timestamp + data.Put("@timestamp", "2019-03-01T08:05:34.853Z") + output, err := json.MarshalIndent(&data, "", " ") + if err = ioutil.WriteFile(getMetricsetPath(module, metricSet)+"/_meta/data.json", output, 0644); err != nil { + t.Fatal(err) + } +} + +// GetConfig returns config for elasticsearch module +func getConfig(module, metricSet, url string) map[string]interface{} { + return map[string]interface{}{ + "module": module, + "metricsets": []string{metricSet}, + "hosts": []string{url}, + } +} + +// server starts a server with a mock output +func server(t *testing.T, path string, url string) *httptest.Server { + + body, err := ioutil.ReadFile(path) + if err != nil { + t.Fatalf("could not read file: %s", err) + } + + server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + if r.URL.Path == url { + w.Header().Set("Content-Type", "application/json;") + w.WriteHeader(200) + w.Write(body) + } else { + w.WriteHeader(404) + } + })) + return server +} + +func getModulesPath() string { + return "../../module" +} + +func getModulePath(module string) string { + return getModulesPath() + "/" + module +} + +func getMetricsetPath(module, metricSet string) string { + return getModulePath(module) + "/" + metricSet +} diff --git a/metricbeat/module/kibana/status/_meta/data.json b/metricbeat/module/kibana/status/_meta/data.json index 107ec83ab2c..a83c38e3ee0 100644 --- a/metricbeat/module/kibana/status/_meta/data.json +++ b/metricbeat/module/kibana/status/_meta/data.json @@ -1,9 +1,5 @@ { - "@timestamp": "2017-10-12T08:05:34.853Z", - "agent": { - "hostname": "host.example.com", - "name": "host.example.com" - }, + "@timestamp": "2019-03-01T08:05:34.853Z", "event": { "dataset": "kibana.status", "duration": 115000, @@ -12,13 +8,13 @@ "kibana": { "status": { "metrics": { - "concurrent_connections": 0, + "concurrent_connections": 12, "requests": { - "disconnects": 0, - "total": 0 + "disconnects": 3, + "total": 241 } }, - "name": "Shaunaks-MBP-2", + "name": "ruflin", "status": { "overall": { "state": "green" @@ -30,10 +26,10 @@ "name": "status" }, "service": { - "address": "127.0.0.1:5601", + "address": "127.0.0.1:55555", "id": "5b2de169-2785-441b-ae8c-186a1936b17d", "name": "kibana", "type": "kibana", - "version": "7.0.0" + "version": "6.0.0-alpha1" } } \ No newline at end of file diff --git a/metricbeat/module/kibana/status/_meta/testdata/7.0.0.json b/metricbeat/module/kibana/status/_meta/testdata/7.0.0.json new file mode 100644 index 00000000000..a5b2e2f0ba1 --- /dev/null +++ b/metricbeat/module/kibana/status/_meta/testdata/7.0.0.json @@ -0,0 +1,381 @@ +{ + "name": "kibana", + "uuid": "8faaec19-e37d-410c-9335-377b016c7aa3", + "version": { + "number": "7.0.0", + "build_hash": "daf19f8a5a4f93632c57f6ec79e81eb53b47118c", + "build_number": 22405, + "build_snapshot": true + }, + "status": { + "overall": { + "state": "green", + "title": "Green", + "nickname": "Looking good", + "icon": "success", + "uiColor": "secondary", + "since": "2019-02-08T10:28:39.088Z" + }, + "statuses": [ + { + "id": "plugin:kibana@7.0.0-SNAPSHOT", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:39.088Z" + }, + { + "id": "plugin:elasticsearch@7.0.0-SNAPSHOT", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:40.099Z" + }, + { + "id": "plugin:xpack_main@7.0.0", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:41.385Z" + }, + { + "id": "plugin:graph@7.0.0", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:41.386Z" + }, + { + "id": "plugin:monitoring@7.0.0", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:39.149Z" + }, + { + "id": "plugin:spaces@7.0.0", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:47.714Z" + }, + { + "id": "plugin:security@7.0.0", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:41.420Z" + }, + { + "id": "plugin:searchprofiler@7.0.0", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:41.388Z" + }, + { + "id": "plugin:ml@7.0.0", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:41.388Z" + }, + { + "id": "plugin:tilemap@7.0.0", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:41.389Z" + }, + { + "id": "plugin:watcher@7.0.0", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:41.389Z" + }, + { + "id": "plugin:grokdebugger@7.0.0", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:41.390Z" + }, + { + "id": "plugin:dashboard_mode@7.0.0", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:39.257Z" + }, + { + "id": "plugin:logstash@7.0.0", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:41.391Z" + }, + { + "id": "plugin:beats_management@7.0.0", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:41.391Z" + }, + { + "id": "plugin:apm@7.0.0", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:39.298Z" + }, + { + "id": "plugin:tile_map@7.0.0-SNAPSHOT", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:39.301Z" + }, + { + "id": "plugin:maps@7.0.0", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:41.420Z" + }, + { + "id": "plugin:interpreter@7.0.0-SNAPSHOT", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:39.679Z" + }, + { + "id": "plugin:canvas@7.0.0", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:39.695Z" + }, + { + "id": "plugin:license_management@7.0.0", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:39.704Z" + }, + { + "id": "plugin:index_management@7.0.0", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:41.392Z" + }, + { + "id": "plugin:console@7.0.0-SNAPSHOT", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:39.768Z" + }, + { + "id": "plugin:console_extensions@7.0.0", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:39.772Z" + }, + { + "id": "plugin:notifications@7.0.0", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:39.778Z" + }, + { + "id": "plugin:index_lifecycle_management@7.0.0", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:41.393Z" + }, + { + "id": "plugin:infra@7.0.0", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:39.844Z" + }, + { + "id": "plugin:task_manager@7.0.0", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:39.846Z" + }, + { + "id": "plugin:rollup@7.0.0", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:41.393Z" + }, + { + "id": "plugin:remote_clusters@7.0.0", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:41.394Z" + }, + { + "id": "plugin:cross_cluster_replication@7.0.0", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:41.395Z" + }, + { + "id": "plugin:upgrade_assistant@7.0.0", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:39.873Z" + }, + { + "id": "plugin:uptime@7.0.0", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:39.889Z" + }, + { + "id": "plugin:oss_telemetry@7.0.0", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:39.893Z" + }, + { + "id": "plugin:metrics@7.0.0-SNAPSHOT", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:39.903Z" + }, + { + "id": "plugin:timelion@7.0.0-SNAPSHOT", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:40.087Z" + }, + { + "id": "plugin:reporting@7.0.0", + "state": "green", + "icon": "success", + "message": "Ready", + "uiColor": "secondary", + "since": "2019-02-08T10:28:45.912Z" + } + ] + }, + "metrics": { + "last_updated": "2019-02-08T10:31:02.548Z", + "collection_interval_in_millis": 5000, + "process": { + "memory": { + "heap": { + "total_in_bytes": 248803328, + "used_in_bytes": 160534512, + "size_limit": 1526909922 + }, + "resident_set_size_in_bytes": 348438528 + }, + "event_loop_delay": 0.14169999957084656, + "pid": 1, + "uptime_in_millis": 171299 + }, + "os": { + "load": { + "1m": 1.73681640625, + "5m": 1.23046875, + "15m": 0.50830078125 + }, + "memory": { + "total_in_bytes": 6246756352, + "free_in_bytes": 1520041984, + "used_in_bytes": 4726714368 + }, + "uptime_in_millis": 122915000, + "platform": "linux", + "platformRelease": "linux-4.9.125-linuxkit", + "distro": "Centos", + "distroRelease": "Centos-7.6.1810", + "cgroup": { + "cpuacct": { + "control_group": "/", + "usage_nanos": 46639670629 + }, + "cpu": { + "control_group": "/", + "cfs_period_micros": 100000, + "cfs_quota_micros": -1, + "stat": { + "number_of_elapsed_periods": 0, + "number_of_times_throttled": 0, + "time_throttled_nanos": 0 + } + } + } + }, + "response_times": { + "avg_in_millis": 7, + "max_in_millis": 9 + }, + "requests": { + "disconnects": 0, + "statusCodes": {}, + "total": 4, + "status_codes": { + "200": 4 + } + }, + "concurrent_connections": 0 + } +} diff --git a/metricbeat/module/kibana/status/_meta/testdata/7.0.0.json-expected.json b/metricbeat/module/kibana/status/_meta/testdata/7.0.0.json-expected.json new file mode 100644 index 00000000000..3ff02d21799 --- /dev/null +++ b/metricbeat/module/kibana/status/_meta/testdata/7.0.0.json-expected.json @@ -0,0 +1,36 @@ +[ + { + "event": { + "dataset": "kibana.status", + "duration": 115000, + "module": "kibana" + }, + "kibana": { + "status": { + "metrics": { + "concurrent_connections": 0, + "requests": { + "disconnects": 0, + "total": 4 + } + }, + "name": "kibana", + "status": { + "overall": { + "state": "green" + } + } + } + }, + "metricset": { + "name": "status" + }, + "service": { + "address": "127.0.0.1:55555", + "id": "8faaec19-e37d-410c-9335-377b016c7aa3", + "name": "kibana", + "type": "kibana", + "version": "7.0.0" + } + } +] \ No newline at end of file diff --git a/metricbeat/module/kibana/status/_meta/testdata/config.yml b/metricbeat/module/kibana/status/_meta/testdata/config.yml new file mode 100644 index 00000000000..3ed2bfeb2a3 --- /dev/null +++ b/metricbeat/module/kibana/status/_meta/testdata/config.yml @@ -0,0 +1 @@ +url: /api/status diff --git a/metricbeat/module/kibana/status/_meta/testdata/docs.json b/metricbeat/module/kibana/status/_meta/testdata/docs.json new file mode 100644 index 00000000000..9d7f53ba7a2 --- /dev/null +++ b/metricbeat/module/kibana/status/_meta/testdata/docs.json @@ -0,0 +1,95 @@ +{ + "name": "ruflin", + "uuid": "5b2de169-2785-441b-ae8c-186a1936b17d", + "version": { + "number": "6.0.0-alpha1", + "build_hash": "6cb7fec4e154faa0a4a3fee4b33dfef91b9870d9", + "build_number": 8467, + "build_snapshot": false + }, + "status": { + "overall": { + "state": "green", + "title": "Green", + "nickname": "Looking good", + "icon": "success", + "since": "2017-02-17T13:03:36.960Z" + }, + "statuses": [ + { + "id": "ui settings", + "state": "green", + "icon": "success", + "message": "Ready", + "since": "2017-02-17T13:03:40.088Z" + }, + { + "id": "plugin:kibana@6.0.0-alpha1", + "state": "green", + "icon": "success", + "message": "Ready", + "since": "2017-02-17T13:03:36.960Z" + }, + { + "id": "plugin:elasticsearch@6.0.0-alpha1", + "state": "green", + "icon": "success", + "message": "Kibana index ready", + "since": "2017-02-17T13:03:37.265Z" + }, + { + "id": "plugin:thor@6.0.0-alpha1", + "state": "green", + "icon": "success", + "message": "Ready", + "since": "2017-02-17T13:03:37.162Z" + }, + { + "id": "plugin:console@6.0.0-alpha1", + "state": "green", + "icon": "success", + "message": "Ready", + "since": "2017-02-17T13:03:37.210Z" + }, + { + "id": "plugin:timelion@6.0.0-alpha1", + "state": "green", + "icon": "success", + "message": "Ready", + "since": "2017-02-17T13:03:40.047Z" + } + ] + }, + "metrics": { + "last_updated": "2017-02-17T13:05:00.083Z", + "collection_interval_in_millis": 5000, + "uptime_in_millis": 90637, + "process": { + "mem": { + "heap_max_in_bytes": 150245376, + "heap_used_in_bytes": 114918592 + } + }, + "os": { + "cpu": { + "load_average": { + "1m": 7.412109375, + "5m": 5.3896484375, + "15m": 5.3896484375 + } + } + }, + "response_times": { + "avg_in_millis": null, + "max_in_millis": 0 + }, + "requests": { + "total": 241, + "disconnects": 3, + "status_codes": { + + } + }, + "concurrent_connections": 12 + } +} \ No newline at end of file diff --git a/metricbeat/module/kibana/status/_meta/testdata/docs.json-expected.json b/metricbeat/module/kibana/status/_meta/testdata/docs.json-expected.json new file mode 100644 index 00000000000..e8243ddc0ec --- /dev/null +++ b/metricbeat/module/kibana/status/_meta/testdata/docs.json-expected.json @@ -0,0 +1,36 @@ +[ + { + "event": { + "dataset": "kibana.status", + "duration": 115000, + "module": "kibana" + }, + "kibana": { + "status": { + "metrics": { + "concurrent_connections": 12, + "requests": { + "disconnects": 3, + "total": 241 + } + }, + "name": "ruflin", + "status": { + "overall": { + "state": "green" + } + } + } + }, + "metricset": { + "name": "status" + }, + "service": { + "address": "127.0.0.1:55555", + "id": "5b2de169-2785-441b-ae8c-186a1936b17d", + "name": "kibana", + "type": "kibana", + "version": "6.0.0-alpha1" + } + } +] \ No newline at end of file diff --git a/metricbeat/module/kibana/status/status_integration_test.go b/metricbeat/module/kibana/status/status_integration_test.go index 0da01196ff6..a358b27b3ed 100644 --- a/metricbeat/module/kibana/status/status_integration_test.go +++ b/metricbeat/module/kibana/status/status_integration_test.go @@ -43,14 +43,3 @@ func TestFetch(t *testing.T) { t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), events[0].BeatEvent("kibana", "status").Fields.StringToPrint()) } - -func TestData(t *testing.T) { - compose.EnsureUp(t, "elasticsearch", "kibana") - - config := mtest.GetConfig("status") - f := mbtest.NewReportingMetricSetV2(t, config) - err := mbtest.WriteEventsReporterV2(f, t, "") - if err != nil { - t.Fatal("write", err) - } -} diff --git a/metricbeat/module/rabbitmq/connection/_meta/data.json b/metricbeat/module/rabbitmq/connection/_meta/data.json index 73557f2cd69..bc4e2860f3d 100644 --- a/metricbeat/module/rabbitmq/connection/_meta/data.json +++ b/metricbeat/module/rabbitmq/connection/_meta/data.json @@ -1,9 +1,5 @@ { - "@timestamp": "2017-10-12T08:05:34.853Z", - "agent": { - "hostname": "host.example.com", - "name": "host.example.com" - }, + "@timestamp": "2019-03-01T08:05:34.853Z", "event": { "dataset": "rabbitmq.connection", "duration": 115000, @@ -41,7 +37,7 @@ "vhost": "/" }, "service": { - "address": "127.0.0.1:53939", + "address": "127.0.0.1:55555", "type": "rabbitmq" }, "user": { diff --git a/metricbeat/module/rabbitmq/connection/_meta/testdata/config.yml b/metricbeat/module/rabbitmq/connection/_meta/testdata/config.yml new file mode 100644 index 00000000000..dc57676601d --- /dev/null +++ b/metricbeat/module/rabbitmq/connection/_meta/testdata/config.yml @@ -0,0 +1 @@ +url: /api/connections diff --git a/metricbeat/module/rabbitmq/connection/_meta/testdata/docs.json b/metricbeat/module/rabbitmq/connection/_meta/testdata/docs.json new file mode 100644 index 00000000000..f3516fd9dc3 --- /dev/null +++ b/metricbeat/module/rabbitmq/connection/_meta/testdata/docs.json @@ -0,0 +1,116 @@ +[ + { + "reductions_details": { + "rate": 94.8 + }, + "reductions": 356914, + "recv_oct_details": { + "rate": 0 + }, + "recv_oct": 3764, + "send_oct_details": { + "rate": 0 + }, + "send_oct": 3840, + "connected_at": 1519397210964, + "client_properties": { + "product": "https://github.com/streadway/amqp", + "version": "β", + "capabilities": { + "consumer_cancel_notify": true, + "connection.blocked": true + } + }, + "channel_max": 65535, + "frame_max": 131072, + "timeout": 10, + "vhost": "/", + "user": "guest", + "protocol": "AMQP 0-9-1", + "ssl_hash": null, + "ssl_cipher": null, + "ssl_key_exchange": null, + "ssl_protocol": null, + "auth_mechanism": "PLAIN", + "peer_cert_validity": null, + "peer_cert_issuer": null, + "peer_cert_subject": null, + "ssl": false, + "peer_host": "::1", + "host": "::1", + "peer_port": 60938, + "port": 5672, + "name": "[::1]:60938 -> [::1]:5672", + "node": "nodename", + "type": "network", + "garbage_collection": { + "minor_gcs": 228, + "fullsweep_after": 65535, + "min_heap_size": 233, + "min_bin_vheap_size": 46422, + "max_heap_size": 0 + }, + "channels": 8, + "state": "running", + "send_pend": 0, + "send_cnt": 376, + "recv_cnt": 376 + }, + { + "reductions_details": { + "rate": 94.8 + }, + "reductions": 354441, + "recv_oct_details": { + "rate": 0 + }, + "recv_oct": 3057, + "send_oct_details": { + "rate": 0 + }, + "send_oct": 3344, + "connected_at": 1519397211051, + "client_properties": { + "product": "https://github.com/streadway/amqp", + "version": "β", + "capabilities": { + "connection.blocked": true, + "consumer_cancel_notify": true + } + }, + "channel_max": 65535, + "frame_max": 131072, + "timeout": 10, + "vhost": "/", + "user": "guest", + "protocol": "AMQP 0-9-1", + "ssl_hash": null, + "ssl_cipher": null, + "ssl_key_exchange": null, + "ssl_protocol": null, + "auth_mechanism": "PLAIN", + "peer_cert_validity": null, + "peer_cert_issuer": null, + "peer_cert_subject": null, + "ssl": false, + "peer_host": "::1", + "host": "::1", + "peer_port": 60940, + "port": 5672, + "name": "[::1]:60940 -> [::1]:5672", + "node": "nodename", + "type": "network", + "garbage_collection": { + "minor_gcs": 197, + "fullsweep_after": 65535, + "min_heap_size": 233, + "min_bin_vheap_size": 46422, + "max_heap_size": 0 + }, + "channels": 2, + "state": "running", + "send_pend": 0, + "send_cnt": 352, + "recv_cnt": 352 + } +] diff --git a/metricbeat/module/rabbitmq/connection/_meta/testdata/docs.json-expected.json b/metricbeat/module/rabbitmq/connection/_meta/testdata/docs.json-expected.json new file mode 100644 index 00000000000..be42aafd846 --- /dev/null +++ b/metricbeat/module/rabbitmq/connection/_meta/testdata/docs.json-expected.json @@ -0,0 +1,92 @@ +[ + { + "event": { + "dataset": "rabbitmq.connection", + "duration": 115000, + "module": "rabbitmq" + }, + "metricset": { + "name": "connection" + }, + "rabbitmq": { + "connection": { + "channel_max": 65535, + "channels": 8, + "frame_max": 131072, + "host": "::1", + "name": "[::1]:60938 -\u003e [::1]:5672", + "octet_count": { + "received": 3764, + "sent": 3840 + }, + "packet_count": { + "pending": 0, + "received": 376, + "sent": 376 + }, + "peer": { + "host": "::1", + "port": 60938 + }, + "port": 5672, + "type": "network" + }, + "node": { + "name": "nodename" + }, + "vhost": "/" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "rabbitmq" + }, + "user": { + "name": "guest" + } + }, + { + "event": { + "dataset": "rabbitmq.connection", + "duration": 115000, + "module": "rabbitmq" + }, + "metricset": { + "name": "connection" + }, + "rabbitmq": { + "connection": { + "channel_max": 65535, + "channels": 2, + "frame_max": 131072, + "host": "::1", + "name": "[::1]:60940 -\u003e [::1]:5672", + "octet_count": { + "received": 3057, + "sent": 3344 + }, + "packet_count": { + "pending": 0, + "received": 352, + "sent": 352 + }, + "peer": { + "host": "::1", + "port": 60940 + }, + "port": 5672, + "type": "network" + }, + "node": { + "name": "nodename" + }, + "vhost": "/" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "rabbitmq" + }, + "user": { + "name": "guest" + } + } +] \ No newline at end of file diff --git a/metricbeat/module/rabbitmq/connection/connection_test.go b/metricbeat/module/rabbitmq/connection/connection_test.go index af5e5ea7d98..37942e237ef 100644 --- a/metricbeat/module/rabbitmq/connection/connection_test.go +++ b/metricbeat/module/rabbitmq/connection/connection_test.go @@ -65,17 +65,6 @@ func TestFetchEventContents(t *testing.T) { assert.EqualValues(t, 60938, peer["port"]) } -func TestData(t *testing.T) { - server := mtest.Server(t, mtest.DefaultServerConfig) - defer server.Close() - - ms := mbtest.NewReportingMetricSetV2(t, getConfig(server.URL)) - err := mbtest.WriteEventsReporterV2(ms, t, "") - if err != nil { - t.Fatal("write", err) - } -} - func getConfig(url string) map[string]interface{} { return map[string]interface{}{ "module": "rabbitmq", diff --git a/metricbeat/module/traefik/health/_meta/data.json b/metricbeat/module/traefik/health/_meta/data.json index 4ec5ad9edea..63c20177aa8 100644 --- a/metricbeat/module/traefik/health/_meta/data.json +++ b/metricbeat/module/traefik/health/_meta/data.json @@ -1,28 +1,32 @@ { - "@timestamp": "2017-10-12T08:05:34.853Z", - "beat": { - "hostname": "host.example.com", - "name": "host.example.com" + "@timestamp": "2019-03-01T08:05:34.853Z", + "event": { + "dataset": "traefik.health", + "duration": 115000, + "module": "traefik" }, "metricset": { - "host": "127.0.0.1:8080", - "module": "traefik", - "name": "health", - "rtt": 115 + "name": "health" + }, + "service": { + "address": "127.0.0.1:55555", + "name": "traefik", + "type": "traefik" }, "traefik": { "health": { "response": { "avg_time": { - "us": 32 + "us": 15 }, - "count": 15, + "count": 18, "status_codes": { - "404": 15 + "200": 17, + "404": 1 } }, "uptime": { - "sec": 1944 + "sec": 64283 } } } diff --git a/metricbeat/module/traefik/health/_meta/testdata/config.yml b/metricbeat/module/traefik/health/_meta/testdata/config.yml new file mode 100644 index 00000000000..bd19b1bff60 --- /dev/null +++ b/metricbeat/module/traefik/health/_meta/testdata/config.yml @@ -0,0 +1,2 @@ +type: http +url: "/health" diff --git a/metricbeat/module/traefik/health/_meta/testdata/docs.json b/metricbeat/module/traefik/health/_meta/testdata/docs.json new file mode 100644 index 00000000000..3cb72a73d72 --- /dev/null +++ b/metricbeat/module/traefik/health/_meta/testdata/docs.json @@ -0,0 +1,18 @@ +{ + "pid": 1, + "uptime": "17h51m23.252891567s", + "uptime_sec": 64283.252891567, + "time": "2018-06-27 22:07:28.966768969 +0000 UTC m=+64283.314491879", + "unixtime": 1530137248, + "status_code_count": {}, + "total_status_code_count": { + "200": 17, + "404": 1 + }, + "count": 0, + "total_count": 18, + "total_response_time": "272.119µs", + "total_response_time_sec": 0.000272119, + "average_response_time": "15.117µs", + "average_response_time_sec": 1.5117e-05 +} diff --git a/metricbeat/module/traefik/health/_meta/testdata/docs.json-expected.json b/metricbeat/module/traefik/health/_meta/testdata/docs.json-expected.json new file mode 100644 index 00000000000..4ae2adae93f --- /dev/null +++ b/metricbeat/module/traefik/health/_meta/testdata/docs.json-expected.json @@ -0,0 +1,34 @@ +[ + { + "event": { + "dataset": "traefik.health", + "duration": 115000, + "module": "traefik" + }, + "metricset": { + "name": "health" + }, + "service": { + "address": "127.0.0.1:55555", + "name": "traefik", + "type": "traefik" + }, + "traefik": { + "health": { + "response": { + "avg_time": { + "us": 15 + }, + "count": 18, + "status_codes": { + "200": 17, + "404": 1 + } + }, + "uptime": { + "sec": 64283 + } + } + } + } +] \ No newline at end of file diff --git a/metricbeat/module/traefik/health/health_integration_test.go b/metricbeat/module/traefik/health/health_integration_test.go index 388921bdd3d..7147b590c52 100644 --- a/metricbeat/module/traefik/health/health_integration_test.go +++ b/metricbeat/module/traefik/health/health_integration_test.go @@ -64,13 +64,3 @@ func TestFetch(t *testing.T) { badResponseCount, _ := event.MetricSetFields.GetValue("response.status_codes.404") assert.True(t, badResponseCount.(float64) >= 1) } - -func TestData(t *testing.T) { - compose.EnsureUp(t, "traefik") - - ms := mbtest.NewReportingMetricSetV2(t, mtest.GetConfig("health")) - err := mbtest.WriteEventsReporterV2(ms, t, "") - if err != nil { - t.Fatal("write", err) - } -} From 288a76c61fb3fabf9756a302b3a0610512555b53 Mon Sep 17 00:00:00 2001 From: Carmelo Mirko Musumeci Date: Tue, 5 Mar 2019 14:29:50 +0100 Subject: [PATCH 132/332] Fix for not reusable http client leading to connection leaks in Jolokia module (#11014) Jolokia module was creating a new HTTP helper for each request, what was leading to leaks under some scenarios. Make it reuse connections. --- CHANGELOG.next.asciidoc | 1 + metricbeat/module/jolokia/jmx/config.go | 22 ++++++++-------------- metricbeat/module/jolokia/jmx/jmx.go | 17 +++++++++++++---- 3 files changed, 22 insertions(+), 18 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 12e436b71bb..ade38332495 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -182,6 +182,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Fix issue with `elasticsearch/node_stats` metricset (x-pack) not indexing `source_node` field. {pull}10639[10639] - Migrate docker autodiscover to ECS. {issue}10757[10757] {pull}10862[10862] - Fix issue in kubernetes module preventing usage percentages to be properly calculated. {pull}10946[10946] +- Fix for not reusable http client leading to connection leaks in Jolokia module {pull}11014[11014] *Packetbeat* diff --git a/metricbeat/module/jolokia/jmx/config.go b/metricbeat/module/jolokia/jmx/config.go index ad6be581e94..60b9a60ff63 100644 --- a/metricbeat/module/jolokia/jmx/config.go +++ b/metricbeat/module/jolokia/jmx/config.go @@ -29,7 +29,6 @@ import ( "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/logp" - "github.com/elastic/beats/metricbeat/helper" ) type JMXMapping struct { @@ -355,20 +354,17 @@ func (pc *JolokiaHTTPGetFetcher) Fetch(m *MetricSet) ([]common.MapStr, error) { } for _, r := range httpReqs { + m.http.SetMethod(r.HTTPMethod) + m.http.SetURI(m.BaseMetricSet.HostData().SanitizedURI + r.URI) - http, err := helper.NewHTTP(m.BaseMetricSet) - - http.SetMethod(r.HTTPMethod) - http.SetURI(m.BaseMetricSet.HostData().SanitizedURI + r.URI) - - resBody, err := http.FetchContent() + resBody, err := m.http.FetchContent() if err != nil { return nil, err } if logp.IsDebug(metricsetName) { m.log.Debugw("Jolokia response body", - "host", m.HostData().Host, "uri", http.GetURI(), "body", string(resBody), "type", "response") + "host", m.HostData().Host, "uri", m.http.GetURI(), "body", string(resBody), "type", "response") } // Map response to Metricbeat events @@ -491,19 +487,17 @@ func (pc *JolokiaHTTPPostFetcher) Fetch(m *MetricSet) ([]common.MapStr, error) { } } - http, err := helper.NewHTTP(m.BaseMetricSet) - - http.SetMethod(httpReqs[0].HTTPMethod) - http.SetBody(httpReqs[0].Body) + m.http.SetMethod(httpReqs[0].HTTPMethod) + m.http.SetBody(httpReqs[0].Body) - resBody, err := http.FetchContent() + resBody, err := m.http.FetchContent() if err != nil { return nil, err } if logp.IsDebug(metricsetName) { m.log.Debugw("Jolokia response body", - "host", m.HostData().Host, "uri", http.GetURI(), "body", string(resBody), "type", "response") + "host", m.HostData().Host, "uri", m.http.GetURI(), "body", string(resBody), "type", "response") } // Map response to Metricbeat events diff --git a/metricbeat/module/jolokia/jmx/jmx.go b/metricbeat/module/jolokia/jmx/jmx.go index 7ad38bfe1df..ba0ac72cb68 100644 --- a/metricbeat/module/jolokia/jmx/jmx.go +++ b/metricbeat/module/jolokia/jmx/jmx.go @@ -20,6 +20,8 @@ package jmx import ( "github.com/joeshaw/multierror" + "github.com/elastic/beats/metricbeat/helper" + "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/mb" @@ -55,8 +57,9 @@ type MetricSet struct { mb.BaseMetricSet mapping []JMXMapping namespace string - http JolokiaHTTPRequestFetcher + jolokia JolokiaHTTPRequestFetcher log *logp.Logger + http *helper.HTTP } // New create a new instance of the MetricSet @@ -71,16 +74,22 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { return nil, err } - jolokiaHTTPBuild := NewJolokiaHTTPRequestFetcher(config.HTTPMethod) + jolokiaFetcher := NewJolokiaHTTPRequestFetcher(config.HTTPMethod) log := logp.NewLogger(metricsetName).With("host", base.HostData().Host) + http, err := helper.NewHTTP(base) + if err != nil { + return nil, err + } + return &MetricSet{ BaseMetricSet: base, mapping: config.Mappings, namespace: config.Namespace, - http: jolokiaHTTPBuild, + jolokia: jolokiaFetcher, log: log, + http: http, }, nil } @@ -89,7 +98,7 @@ func (m *MetricSet) Fetch() ([]common.MapStr, error) { var allEvents []common.MapStr - allEvents, err := m.http.Fetch(m) + allEvents, err := m.jolokia.Fetch(m) if err != nil { return nil, err } From 69515847a6503d798383cb64ab0611660a3cee3f Mon Sep 17 00:00:00 2001 From: Mario Castro Date: Tue, 5 Mar 2019 14:32:38 +0100 Subject: [PATCH 133/332] [Metricbeat] Migrate Memcached stats Metricset to use ReporterV2 interface (#10983) --- .../module/memcached/stats/_meta/data.json | 26 +++++++++++------- metricbeat/module/memcached/stats/stats.go | 23 ++++++++++++---- .../memcached/stats/stats_integration_test.go | 27 ++++++++++++++++--- 3 files changed, 58 insertions(+), 18 deletions(-) diff --git a/metricbeat/module/memcached/stats/_meta/data.json b/metricbeat/module/memcached/stats/_meta/data.json index 540f45b0ca8..9c9cb3b5775 100644 --- a/metricbeat/module/memcached/stats/_meta/data.json +++ b/metricbeat/module/memcached/stats/_meta/data.json @@ -1,9 +1,14 @@ { "@timestamp": "2017-10-12T08:05:34.853Z", - "beat": { + "agent": { "hostname": "host.example.com", "name": "host.example.com" }, + "event": { + "dataset": "memcached.stats", + "duration": 115000, + "module": "memcached" + }, "memcached": { "stats": { "bytes": { @@ -16,7 +21,7 @@ }, "connections": { "current": 10, - "total": 85 + "total": 135 }, "evictions": 0, "get": { @@ -29,21 +34,22 @@ }, "pid": 1, "read": { - "bytes": 6 + "bytes": 18 }, "threads": 4, "uptime": { - "sec": 645 + "sec": 139 }, "written": { - "bytes": 0 + "bytes": 2616 } } }, "metricset": { - "host": "memcached:11211", - "module": "memcached", - "name": "stats", - "rtt": 115 + "name": "stats" + }, + "service": { + "address": "172.26.0.2:11211", + "type": "memcached" } -} +} \ No newline at end of file diff --git a/metricbeat/module/memcached/stats/stats.go b/metricbeat/module/memcached/stats/stats.go index e98da185020..398fc890e35 100644 --- a/metricbeat/module/memcached/stats/stats.go +++ b/metricbeat/module/memcached/stats/stats.go @@ -22,10 +22,13 @@ import ( "net" "strings" - "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/logp" + "github.com/elastic/beats/metricbeat/mb" ) +var logger = logp.NewLogger("memcached.stats") + func init() { mb.Registry.MustAddMetricSet("memcached", "stats", New, mb.DefaultMetricSet(), @@ -42,16 +45,23 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { }, nil } -func (m *MetricSet) Fetch() (common.MapStr, error) { +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(reporter mb.ReporterV2) { conn, err := net.DialTimeout("tcp", m.Host(), m.Module().Config().Timeout) if err != nil { - return nil, err + logger.Error(err) + reporter.Error(err) + return } defer conn.Close() _, err = conn.Write([]byte("stats\n")) if err != nil { - return nil, err + logger.Error(err) + reporter.Error(err) + return } scanner := bufio.NewScanner(conn) @@ -72,5 +82,8 @@ func (m *MetricSet) Fetch() (common.MapStr, error) { } event, _ := schema.Apply(data) - return event, nil + + reporter.Event(mb.Event{MetricSetFields: event}) + + return } diff --git a/metricbeat/module/memcached/stats/stats_integration_test.go b/metricbeat/module/memcached/stats/stats_integration_test.go index a195194815a..40a0a1e6ffc 100644 --- a/metricbeat/module/memcached/stats/stats_integration_test.go +++ b/metricbeat/module/memcached/stats/stats_integration_test.go @@ -23,6 +23,8 @@ import ( "os" "testing" + "github.com/stretchr/testify/assert" + "github.com/elastic/beats/libbeat/tests/compose" mbtest "github.com/elastic/beats/metricbeat/mb/testing" ) @@ -30,13 +32,32 @@ import ( func TestData(t *testing.T) { compose.EnsureUp(t, "memcached") - f := mbtest.NewEventFetcher(t, getConfig()) - err := mbtest.WriteEvent(f, t) - if err != nil { + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) + } + assert.NotEmpty(t, events) + + if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { t.Fatal("write", err) } } +func TestFetch(t *testing.T) { + compose.EnsureUp(t, "memcached") + + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) + } + assert.NotEmpty(t, events) + event := events[0].MetricSetFields + + t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) +} + func getConfig() map[string]interface{} { return map[string]interface{}{ "module": "memcached", From e98026e2188a3a8935469308c0116d1296f82a8b Mon Sep 17 00:00:00 2001 From: Christoph Wurm Date: Tue, 5 Mar 2019 14:56:05 +0000 Subject: [PATCH 134/332] Include ip and boolean type when generating index pattern (#10995) A number of fields in our `fields.yml` files now are `type: ip` (e.g. `source.ip`) and `type: boolean`, but the code generating index patterns does not know about these types yet and so does not add a `type` to the index pattern for those fields at all. This leads to errors in Kibana when looking at dashboards that contain references to those fields. --- CHANGELOG.next.asciidoc | 1 + libbeat/kibana/fields_transformer.go | 2 ++ libbeat/kibana/testdata/extensive/metricbeat-6.json | 12 ++++++------ 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index ade38332495..3076470cefb 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -136,6 +136,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Using an environment variable for the password when enrolling a beat will now raise an error if the variable doesn't exist. {pull}10936[10936] - Add missing `host.containerized` and `host.os.build` to fields.ecs.yml. {pull}11016[11016] - Reconnections of Kubernetes watchers are now logged at debug level when they are harmless. {pull}10988[10988] +- Include ip and boolean type when generating index pattern. {pull}10995[10995] *Auditbeat* diff --git a/libbeat/kibana/fields_transformer.go b/libbeat/kibana/fields_transformer.go index 207c193a750..3e385144c62 100644 --- a/libbeat/kibana/fields_transformer.go +++ b/libbeat/kibana/fields_transformer.go @@ -291,5 +291,7 @@ var ( "": "string", "geo_point": "geo_point", "date": "date", + "ip": "ip", + "boolean": "boolean", } ) diff --git a/libbeat/kibana/testdata/extensive/metricbeat-6.json b/libbeat/kibana/testdata/extensive/metricbeat-6.json index 408ef23d061..084a002e7ae 100644 --- a/libbeat/kibana/testdata/extensive/metricbeat-6.json +++ b/libbeat/kibana/testdata/extensive/metricbeat-6.json @@ -1,15 +1,15 @@ { - "version": "7.0.0-alpha1", + "version": "7.0.0-alpha1", "objects": [ { "attributes": { - "fields": "[{\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"beat.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"beat.hostname\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"beat.timezone\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"beat.version\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"@timestamp\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"tags\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"fields\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": false, \"name\": \"error.message\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"error.code\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"error.type\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"meta.cloud.provider\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"meta.cloud.instance_id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"meta.cloud.instance_name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"meta.cloud.machine_type\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"meta.cloud.availability_zone\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"meta.cloud.project_id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"meta.cloud.region\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.container.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.container.image\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.container.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.container.labels\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.pod.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.namespace\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.labels\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.annotations\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.image\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"metricset.module\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"metricset.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"metricset.host\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"metricset.rtt\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"metricset.namespace\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"type\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.client.delete.error\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.client.delete.not_found\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.client.delete.success\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.client.delete.timeout\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.client.read.error\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.client.read.not_found\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.client.read.success\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.client.read.timeout\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.client.write.error\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.client.write.success\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.client.write.timeout\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.device.available.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.device.free.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.device.total.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.device.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.hwm_breached\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.memory.free.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.memory.used.data.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.memory.used.index.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.memory.used.sindex.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.memory.used.total.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.node.host\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.node.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.objects.master\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.objects.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.stop_writes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.hostname\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.total_accesses\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.total_kbytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.requests_per_sec\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.bytes_per_sec\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.bytes_per_request\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.workers.busy\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.workers.idle\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.uptime.server_uptime\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.uptime.uptime\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.cpu.load\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.cpu.user\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.cpu.system\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.cpu.children_user\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.cpu.children_system\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.connections.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.connections.async.writing\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.connections.async.keep_alive\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.connections.async.closing\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.load.1\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.load.5\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.load.15\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.scoreboard.starting_up\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.scoreboard.reading_request\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.scoreboard.sending_reply\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.scoreboard.keepalive\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.scoreboard.dns_lookup\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.scoreboard.closing_connection\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.scoreboard.logging\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.scoreboard.gracefully_finishing\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.scoreboard.idle_cleanup\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.scoreboard.open_slot\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.scoreboard.waiting_for_connection\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.scoreboard.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_disk.available.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_disk.total.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_disk.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_health.overall_status\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_health.timechecks.epoch\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_health.timechecks.round.value\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_health.timechecks.round.status\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.version\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.traffic.read_bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.traffic.write_bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.traffic.read_op_per_sec\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.traffic.write_op_per_sec\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.misplace.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.misplace.objects\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.misplace.ratio\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.degraded.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.degraded.objects\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.degraded.ratio\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.pg.data_bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.pg.avail_bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.pg.total_bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.pg.used_bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.pg_state.state_name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.pg_state.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.pg_state.version\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.osd.full\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.osd.nearfull\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.osd.num_osds\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.osd.num_up_osds\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.osd.num_in_osds\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.osd.num_in_osds\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.osd.epoch\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.monitor_health.available.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.monitor_health.health\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.monitor_health.available.kb\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.monitor_health.total.kb\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.monitor_health.used.kb\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.monitor_health.last_updated\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.monitor_health.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.monitor_health.store_stats.log.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.monitor_health.store_stats.misc.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.monitor_health.store_stats.sst.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.monitor_health.store_stats.total.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.monitor_health.store_stats.last_updated\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.pool_disk.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.pool_disk.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.pool_disk.stats.available.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.pool_disk.stats.objects\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.pool_disk.stats.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.pool_disk.stats.used.kb\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.bucket.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.bucket.type\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.bucket.data.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.bucket.disk.fetches\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.bucket.disk.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.bucket.memory.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.bucket.quota.ram.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.bucket.quota.use.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.bucket.ops_per_sec\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.bucket.item_count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.cluster.hdd.free.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.cluster.hdd.quota.total.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.cluster.hdd.total.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.cluster.hdd.used.value.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.cluster.hdd.used.by_data.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.cluster.max_bucket_count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.cluster.quota.index_memory.mb\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.cluster.quota.memory.mb\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.cluster.ram.quota.total.value.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.cluster.ram.quota.total.per_node.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.cluster.ram.quota.used.value.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.cluster.ram.quota.used.per_node.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.cluster.ram.total.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.cluster.ram.used.value.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.cluster.ram.used.by_data.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.cmd_get\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.couch.docs.disk_size.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.couch.docs.data_size.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.couch.spatial.data_size.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.couch.spatial.disk_size.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.couch.views.disk_size.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.couch.views.data_size.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.cpu_utilization_rate.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.current_items.value\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.current_items.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.ep_bg_fetched\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.get_hits\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.hostname\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.mcd_memory.allocated.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.mcd_memory.reserved.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.memory.free.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.memory.total.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.memory.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.ops\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.swap.total.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.swap.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.uptime.sec\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.vb_replica_curr_items\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.container.command\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.container.created\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.container.status\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.container.size.root_fs\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.container.size.rw\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.container.tags\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.cpu.kernel.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.cpu.kernel.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.cpu.system.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.cpu.system.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.cpu.user.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.cpu.user.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.cpu.total.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.diskio.reads\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.diskio.writes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.diskio.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.healthcheck.failingstreak\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.healthcheck.status\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.healthcheck.event.end_date\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.healthcheck.event.start_date\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.healthcheck.event.output\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.healthcheck.event.exit_code\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.image.id.current\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.image.id.parent\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.image.created\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.image.size.virtual\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.image.size.regular\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.image.labels\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.image.tags\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.info.containers.paused\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.info.containers.running\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.info.containers.stopped\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.info.containers.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.info.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.info.images\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.memory.fail.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.memory.limit\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.memory.rss.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.memory.rss.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.memory.usage.max\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.memory.usage.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.memory.usage.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.network.interface\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.network.in.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.network.in.dropped\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.network.in.errors\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.network.in.packets\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.network.out.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.network.out.dropped\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.network.out.errors\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.network.out.packets\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.cluster.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.jvm.memory.heap_init.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.jvm.version\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.version\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.indices.docs.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.indices.docs.deleted\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.indices.segments.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.indices.segments.memory.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.indices.store.size.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.jvm.mem.pools.old.max.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.jvm.mem.pools.old.peak.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.jvm.mem.pools.old.peak_max.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.jvm.mem.pools.old.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.jvm.mem.pools.young.max.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.jvm.mem.pools.young.peak.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.jvm.mem.pools.young.peak_max.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.jvm.mem.pools.young.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.jvm.mem.pools.survivor.max.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.jvm.mem.pools.survivor.peak.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.jvm.mem.pools.survivor.peak_max.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.jvm.mem.pools.survivor.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.jvm.gc.collectors.old.collection.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.jvm.gc.collectors.old.collection.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.jvm.gc.collectors.young.collection.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.jvm.gc.collectors.young.collection.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.expvar.cmdline\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.cmdline\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.gc.total_pause.ns\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.gc.total_count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.gc.next_gc_limit\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.gc.cpu_fraction\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.gc.pause.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.gc.pause.sum.ns\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.gc.pause.max.ns\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.gc.pause.avg.ns\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.system.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.system.obtained\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.system.stack\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.system.released\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.allocations.mallocs\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.allocations.frees\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.allocations.objects\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.allocations.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.allocations.allocated\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.allocations.idle\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.allocations.active\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"graphite.server.example\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.processes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.process_num\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.pid\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.run_queue\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.tasks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.uptime.sec\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.memory.max.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.ulimit_n\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.compress.bps.in\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.compress.bps.out\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.compress.bps.rate_limit\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.connection.rate.value\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.connection.rate.limit\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.connection.rate.max\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.connection.current\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.connection.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.connection.ssl.current\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.connection.ssl.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.connection.ssl.max\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.connection.max\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.connection.hard_max\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.requests.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.sockets.max\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.requests.max\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.pipes.used\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.pipes.free\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.pipes.max\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.session.rate.value\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.session.rate.limit\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.session.rate.max\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.ssl.rate.value\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.ssl.rate.limit\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.ssl.rate.max\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.ssl.frontend.key_rate.value\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.ssl.frontend.key_rate.max\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.ssl.frontend.session_reuse.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.ssl.backend.key_rate.value\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.ssl.backend.key_rate.max\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.ssl.cached_lookups\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.ssl.cache_misses\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.zlib_mem_usage.value\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.zlib_mem_usage.max\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.idle.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.status\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.weight\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.downtime\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.component_type\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.process_id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.service_name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.in.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.out.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.last_change\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.throttle.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.selected.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.tracked.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.connection.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.connection.retried\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.connection.time.avg\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.request.denied\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.request.queued.current\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.request.queued.max\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.request.errors\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.request.redispatched\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.request.connection.errors\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.request.rate.value\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.request.rate.max\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.request.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.response.errors\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.response.time.avg\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.response.denied\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.response.http.1xx\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.response.http.2xx\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.response.http.3xx\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.response.http.4xx\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.response.http.5xx\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.response.http.other\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.session.current\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.session.max\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.session.limit\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.session.rate.value\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.session.rate.limit\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.session.rate.max\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.check.status\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.check.code\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.check.duration\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.check.health.last\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.check.health.fail\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.check.agent.last\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.check.failed\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.check.down\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.client.aborted\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.server.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.server.aborted\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.server.active\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.server.backup\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.compressor.in.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.compressor.out.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.compressor.bypassed.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.compressor.response.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.proxy.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.proxy.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.queue.limit\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.queue.time.avg\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"http.request.header\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"http.request.method\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"http.request.body\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"http.response.header\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"http.response.status_code\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"http.response.body\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.consumergroup.broker.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.consumergroup.broker.address\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.consumergroup.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.consumergroup.topic\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.consumergroup.partition\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.consumergroup.offset\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": false, \"name\": \"kafka.consumergroup.meta\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.consumergroup.error.code\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.consumergroup.client.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.consumergroup.client.host\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.consumergroup.client.member_id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.partition.offset.newest\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.partition.offset.oldest\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.partition.partition.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.partition.partition.leader\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.partition.partition.isr\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.partition.partition.replica\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.partition.partition.insync_replica\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.partition.partition.error.code\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.partition.topic.error.code\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.partition.topic.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.partition.broker.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.partition.broker.address\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kibana.status.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kibana.status.uuid\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kibana.status.version.number\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kibana.status.status.overall.state\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kibana.status.metrics.concurrent_connections\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kibana.status.metrics.requests.disconnects\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kibana.status.metrics.requests.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.start_time\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.cpu.usage.core.ns\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.cpu.usage.nanocores\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.logs.available.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.logs.capacity.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.logs.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.logs.inodes.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.logs.inodes.free\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.logs.inodes.used\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.memory.available.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.memory.usage.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.memory.rss.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.memory.workingset.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.memory.pagefaults\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.memory.majorpagefaults\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.rootfs.capacity.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.rootfs.available.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.rootfs.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.rootfs.inodes.used\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.event.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.event.message\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.event.reason\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.event.type\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.event.metadata.timestamp.created\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.event.metadata.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.event.metadata.namespace\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.event.metadata.resource_version\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.event.metadata.uid\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.event.metadata.self_link\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.event.involved_object.api_version\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.event.involved_object.kind\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.event.involved_object.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.event.involved_object.resource_version\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.event.involved_object.uid\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.start_time\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.cpu.usage.core.ns\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.cpu.usage.nanocores\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.memory.available.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.memory.usage.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.memory.rss.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.memory.workingset.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.memory.pagefaults\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.memory.majorpagefaults\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.network.rx.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.network.rx.errors\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.network.tx.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.network.tx.errors\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.fs.capacity.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.fs.available.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.fs.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.fs.inodes.used\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.fs.inodes.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.fs.inodes.free\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.runtime.imagefs.capacity.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.runtime.imagefs.available.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.runtime.imagefs.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.pod.start_time\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.pod.network.rx.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.pod.network.rx.errors\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.pod.network.tx.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.pod.network.tx.errors\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.status.phase\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.status.ready\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.status.restarts\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.cpu.limit.nanocores\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.cpu.request.nanocores\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.memory.limit.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.memory.request.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.deployment.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.deployment.paused\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.deployment.replicas.desired\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.deployment.replicas.available\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.deployment.replicas.unavailable\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.deployment.replicas.updated\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.status.ready\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.status.unschedulable\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.cpu.allocatable.cores\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.cpu.capacity.cores\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.memory.allocatable.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.memory.capacity.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.pod.allocatable.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.pod.capacity.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.pod.ip\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.pod.host_ip\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.pod.status.phase\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.pod.status.ready\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.pod.status.scheduled\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.replicaset.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.replicaset.replicas.available\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.replicaset.replicas.desired\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.replicaset.replicas.ready\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.replicaset.replicas.observed\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.replicaset.replicas.labeled\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.system.container\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.system.start_time\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.system.cpu.usage.core.ns\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.system.cpu.usage.nanocores\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.system.memory.usage.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.system.memory.rss.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.system.memory.workingset.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.system.memory.pagefaults\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.system.memory.majorpagefaults\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.volume.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.volume.fs.capacity.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.volume.fs.available.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.volume.fs.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.volume.fs.inodes.used\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.volume.fs.inodes.free\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.volume.fs.inodes.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"memcached.stats.pid\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"memcached.stats.uptime.sec\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"memcached.stats.threads\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"memcached.stats.connections.current\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"memcached.stats.connections.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"memcached.stats.get.hits\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"memcached.stats.get.misses\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"memcached.stats.cmd.get\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"memcached.stats.cmd.set\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"memcached.stats.read.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"memcached.stats.written.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"memcached.stats.items.current\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"memcached.stats.items.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"memcached.stats.evictions\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.dbstats.avg_obj_size.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.dbstats.collections\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.dbstats.data_size.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.dbstats.db\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.dbstats.file_size.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.dbstats.index_size.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.dbstats.indexes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.dbstats.num_extents\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.dbstats.objects\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.dbstats.storage_size.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.dbstats.ns_size_mb.mb\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.dbstats.data_file_version.major\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.dbstats.data_file_version.minor\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.dbstats.extent_free_list.num\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.dbstats.extent_free_list.size.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.version\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.uptime.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.local_time\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.asserts.regular\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.asserts.warning\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.asserts.msg\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.asserts.user\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.asserts.rollovers\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.background_flushing.flushes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.background_flushing.total.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.background_flushing.average.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.background_flushing.last.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.background_flushing.last_finished\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.connections.current\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.connections.available\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.connections.total_created\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.journaling.commits\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.journaling.journaled.mb\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.journaling.write_to_data_files.mb\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.journaling.compression\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.journaling.commits_in_write_lock\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.journaling.early_commits\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.journaling.times.dt.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.journaling.times.prep_log_buffer.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.journaling.times.write_to_journal.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.journaling.times.write_to_data_files.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.journaling.times.remap_private_view.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.journaling.times.commits.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.journaling.times.commits_in_write_lock.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.extra_info.heap_usage.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.extra_info.page_faults\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.network.in.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.network.out.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.network.requests\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.opcounters.insert\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.opcounters.query\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.opcounters.update\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.opcounters.delete\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.opcounters.getmore\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.opcounters.command\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.opcounters_replicated.insert\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.opcounters_replicated.query\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.opcounters_replicated.update\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.opcounters_replicated.delete\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.opcounters_replicated.getmore\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.opcounters_replicated.command\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.memory.bits\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.memory.resident.mb\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.memory.virtual.mb\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.memory.mapped.mb\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.memory.mapped_with_journal.mb\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.write_backs_queued\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.storage_engine.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.concurrent_transactions.write.out\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.concurrent_transactions.write.available\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.concurrent_transactions.write.total_tickets\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.concurrent_transactions.read.out\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.concurrent_transactions.read.available\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.concurrent_transactions.read.total_tickets\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.cache.maximum.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.cache.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.cache.dirty.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.cache.pages.read\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.cache.pages.write\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.cache.pages.evicted\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.log.size.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.log.write.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.log.max_file_size.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.log.flushes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.log.writes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.log.scans\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.log.syncs\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.aborted.clients\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.aborted.connects\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.binlog.cache.disk_use\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.binlog.cache.use\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.bytes.received\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.bytes.sent\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.threads.cached\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.threads.created\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.threads.connected\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.threads.running\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.connections\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.created.tmp.disk_tables\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.created.tmp.files\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.created.tmp.tables\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.delayed.errors\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.delayed.insert_threads\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.delayed.writes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.flush_commands\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.max_used_connections\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.open.files\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.open.streams\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.open.tables\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.opened_tables\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.command.delete\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.command.insert\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.command.select\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.command.update\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"nginx.stubstatus.hostname\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"nginx.stubstatus.active\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"nginx.stubstatus.accepts\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"nginx.stubstatus.handled\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"nginx.stubstatus.dropped\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"nginx.stubstatus.requests\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"nginx.stubstatus.current\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"nginx.stubstatus.reading\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"nginx.stubstatus.writing\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"nginx.stubstatus.waiting\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"php_fpm.pool.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"php_fpm.pool.connections.accepted\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"php_fpm.pool.connections.queued\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"php_fpm.pool.processes.idle\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"php_fpm.pool.processes.active\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"php_fpm.pool.slow_requests\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.activity.database.oid\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.activity.database.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.activity.pid\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.activity.user.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.activity.user.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.activity.application_name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.activity.client.address\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.activity.client.hostname\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.activity.client.port\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.activity.backend_start\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.activity.transaction_start\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.activity.query_start\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.activity.state_change\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.activity.waiting\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.activity.state\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.activity.query\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.bgwriter.checkpoints.scheduled\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.bgwriter.checkpoints.requested\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.bgwriter.checkpoints.times.write.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.bgwriter.checkpoints.times.sync.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.bgwriter.buffers.checkpoints\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.bgwriter.buffers.clean\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.bgwriter.buffers.clean_full\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.bgwriter.buffers.backend\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.bgwriter.buffers.backend_fsync\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.bgwriter.buffers.allocated\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.bgwriter.stats_reset\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.oid\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.number_of_backends\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.transactions.commit\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.transactions.rollback\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.blocks.read\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.blocks.hit\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.blocks.time.read.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.blocks.time.write.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.rows.returned\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.rows.fetched\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.rows.inserted\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.rows.updated\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.rows.deleted\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.conflicts\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.temporary.files\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.temporary.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.deadlocks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.stats_reset\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"prometheus.stats.notifications.queue_length\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"prometheus.stats.notifications.dropped\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"prometheus.stats.processes.open_fds\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"prometheus.stats.storage.chunks_to_persist\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.disk.free.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.disk.free.limit.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.fd.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.fd.used\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.gc.num.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.gc.reclaimed.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.io.file_handle.open_attempt.avg.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.io.file_handle.open_attempt.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.io.read.avg.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.io.read.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.io.read.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.io.reopen.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.io.seek.avg.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.io.seek.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.io.sync.avg.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.io.sync.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.io.write.avg.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.io.write.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.io.write.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.mem.limit.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.mem.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.mnesia.disk.tx.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.mnesia.ram.tx.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.msg.store_read.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.msg.store_write.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.proc.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.proc.used\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.processors\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.queue.index.journal_write.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.queue.index.read.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.queue.index.write.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.run.queue\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.socket.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.socket.used\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.type\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.uptime\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.queue.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.queue.vhost\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.queue.durable\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.queue.auto_delete\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.queue.exclusive\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.queue.node\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.queue.state\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.queue.arguments.max_priority\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.queue.consumers.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.queue.consumers.utilisation.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.queue.messages.total.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.queue.messages.ready.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.queue.messages.unacknowledged.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.queue.messages.persistent.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.queue.memory.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.queue.disk.reads.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.queue.disk.writes.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.clients.connected\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.clients.longest_output_list\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.clients.biggest_input_buf\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.clients.blocked\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.cluster.enabled\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.cpu.used.sys\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.cpu.used.sys_children\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.cpu.used.user\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.cpu.used.user_children\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.memory.used.value\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.memory.used.rss\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.memory.used.peak\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.memory.used.lua\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.memory.allocator\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.persistence.loading\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.persistence.rdb.last_save.changes_since\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.persistence.rdb.bgsave.in_progress\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.persistence.rdb.last_save.time\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.persistence.rdb.bgsave.last_status\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.persistence.rdb.bgsave.last_time.sec\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.persistence.rdb.bgsave.current_time.sec\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.persistence.aof.enabled\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.persistence.aof.rewrite.in_progress\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.persistence.aof.rewrite.scheduled\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.persistence.aof.rewrite.last_time.sec\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.persistence.aof.rewrite.current_time.sec\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.persistence.aof.bgrewrite.last_status\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.persistence.aof.write.last_status\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.replication.role\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.replication.connected_slaves\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.replication.master_offset\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.replication.backlog.active\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.replication.backlog.size\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.replication.backlog.first_byte_offset\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.replication.backlog.histlen\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.server.version\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.server.git_sha1\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.server.git_dirty\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.server.build_id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.server.mode\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.server.os\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.server.arch_bits\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.server.multiplexing_api\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.server.gcc_version\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.server.process_id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.server.run_id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.server.tcp_port\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.server.uptime\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.server.hz\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.server.lru_clock\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.server.config_file\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.connections.received\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.connections.rejected\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.commands_processed\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.net.input.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.net.output.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.instantaneous.ops_per_sec\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.instantaneous.input_kbps\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.instantaneous.output_kbps\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.sync.full\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.sync.partial.ok\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.sync.partial.err\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.keys.expired\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.keys.evicted\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.keyspace.hits\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.keyspace.misses\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.pubsub.channels\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.pubsub.patterns\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.latest_fork_usec\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.migrate_cached_sockets\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.keyspace.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.keyspace.avg_ttl\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.keyspace.keys\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.keyspace.expires\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.core.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.core.user.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.core.user.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.core.system.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.core.system.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.core.nice.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.core.nice.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.core.idle.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.core.idle.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.core.iowait.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.core.iowait.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.core.irq.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.core.irq.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.core.softirq.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.core.softirq.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.core.steal.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.core.steal.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.cores\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.user.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.system.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.nice.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.idle.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.iowait.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.irq.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.softirq.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.steal.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.total.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.user.norm.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.system.norm.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.nice.norm.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.idle.norm.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.iowait.norm.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.irq.norm.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.softirq.norm.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.steal.norm.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.total.norm.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.user.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.system.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.nice.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.idle.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.iowait.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.irq.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.softirq.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.steal.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.serial_number\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.read.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.write.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.read.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.write.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.read.time\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.write.time\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.io.time\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.iostat.read.request.merges_per_sec\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.iostat.write.request.merges_per_sec\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.iostat.read.request.per_sec\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.iostat.write.request.per_sec\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.iostat.read.per_sec.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.iostat.write.per_sec.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.iostat.request.avg_size\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.iostat.queue.avg_size\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.iostat.await\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.iostat.service_time\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.iostat.busy\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.filesystem.available\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.filesystem.device_name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.filesystem.type\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.filesystem.mount_point\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.filesystem.files\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.filesystem.free\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.filesystem.free_files\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.filesystem.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.filesystem.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.filesystem.used.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.fsstat.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.fsstat.total_files\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.fsstat.total_size.free\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.fsstat.total_size.used\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.fsstat.total_size.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.load.1\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.load.5\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.load.15\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.load.norm.1\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.load.norm.5\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.load.norm.15\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.load.cores\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.memory.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.memory.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.memory.free\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.memory.used.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.memory.actual.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.memory.actual.free\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.memory.actual.used.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.memory.swap.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.memory.swap.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.memory.swap.free\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.memory.swap.used.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.network.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.network.out.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.network.in.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.network.out.packets\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.network.in.packets\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.network.in.errors\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.network.out.errors\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.network.in.dropped\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.network.out.dropped\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.state\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.pid\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.ppid\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.pgid\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cmdline\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.username\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cwd\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.env\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cpu.user\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cpu.total.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cpu.total.norm.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cpu.system\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cpu.total.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cpu.start_time\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.memory.size\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.memory.rss.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.memory.rss.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.memory.share\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.fd.open\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.fd.limit.soft\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.fd.limit.hard\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.path\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.cpu.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.cpu.path\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.cpu.cfs.period.us\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.cpu.cfs.quota.us\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.cpu.cfs.shares\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.cpu.rt.period.us\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.cpu.rt.runtime.us\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.cpu.stats.periods\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.cpu.stats.throttled.periods\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.cpu.stats.throttled.ns\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.cpuacct.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.cpuacct.path\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.cpuacct.total.ns\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.cpuacct.stats.user.ns\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.cpuacct.stats.system.ns\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.cpuacct.percpu\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.path\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.mem.usage.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.mem.usage.max.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.mem.limit.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.mem.failures\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.memsw.usage.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.memsw.usage.max.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.memsw.limit.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.memsw.failures\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.kmem.usage.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.kmem.usage.max.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.kmem.limit.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.kmem.failures\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.kmem_tcp.usage.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.kmem_tcp.usage.max.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.kmem_tcp.limit.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.kmem_tcp.failures\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.stats.active_anon.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.stats.active_file.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.stats.cache.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.stats.hierarchical_memory_limit.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.stats.hierarchical_memsw_limit.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.stats.inactive_anon.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.stats.inactive_file.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.stats.mapped_file.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.stats.page_faults\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.stats.major_page_faults\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.stats.pages_in\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.stats.pages_out\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.stats.rss.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.stats.rss_huge.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.stats.swap.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.stats.unevictable.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.blkio.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.blkio.path\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.blkio.total.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.blkio.total.ios\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.summary.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.summary.running\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.summary.idle\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.summary.sleeping\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.summary.stopped\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.summary.zombie\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.summary.unknown\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.socket.direction\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.socket.family\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.socket.local.ip\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.socket.local.port\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.socket.remote.ip\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.socket.remote.port\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.socket.remote.host\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.socket.remote.etld_plus_one\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.socket.remote.host_error\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.socket.process.pid\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.socket.process.command\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.socket.process.cmdline\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.socket.process.exe\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.socket.user.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.socket.user.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.uptime.duration.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.datastore.datacenter\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.datastore.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.datastore.fstype\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.datastore.capacity.total.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.datastore.capacity.free.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.datastore.capacity.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.datastore.capacity.used.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.host.datacenter\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.host.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.host.cpu.used.mhz\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.host.cpu.total.mhz\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.host.cpu.free.mhz\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.host.memory.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.host.memory.total.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.host.memory.free.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.virtualmachine.datacenter\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.virtualmachine.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.virtualmachine.cpu.used.mhz\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.virtualmachine.memory.used.guest.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.virtualmachine.memory.used.host.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.virtualmachine.memory.total.guest.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.virtualmachine.memory.free.guest.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.virtualmachine.custom_fields\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.hostname\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.approximate_data_size\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.latency.avg\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.ephemerals_count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.followers\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.max_file_descriptor_count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.latency.max\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.latency.min\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.num_alive_connections\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.open_file_descriptor_count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.outstanding_requests\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.packets.received\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.packets.sent\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.pending_syncs\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.server_state\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.synced_followers\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.version\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.watch_count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.znode_count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": false, \"name\": \"_id\", \"searchable\": false, \"indexed\": false, \"doc_values\": false, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"_type\", \"searchable\": true, \"indexed\": false, \"doc_values\": false, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": false, \"name\": \"_index\", \"searchable\": false, \"indexed\": false, \"doc_values\": false, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": false, \"name\": \"_score\", \"searchable\": false, \"indexed\": false, \"doc_values\": false, \"type\": \"number\", \"scripted\": false}]", - "fieldFormatMap": "{\"ceph.cluster_status.pg.data_bytes\": {\"id\": \"bytes\"}, \"system.filesystem.used.pct\": {\"id\": \"percent\"}, \"ceph.cluster_status.degraded.ratio\": {\"id\": \"percent\"}, \"system.cpu.nice.norm.pct\": {\"id\": \"percent\"}, \"system.process.cgroup.memory.stats.mapped_file.bytes\": {\"id\": \"bytes\"}, \"system.cpu.nice.pct\": {\"id\": \"percent\"}, \"system.process.memory.share\": {\"id\": \"bytes\"}, \"couchbase.node.couch.docs.disk_size.bytes\": {\"id\": \"bytes\"}, \"kubernetes.container.logs.used.bytes\": {\"id\": \"bytes\"}, \"kubernetes.node.memory.allocatable.bytes\": {\"id\": \"bytes\"}, \"kubernetes.container.rootfs.used.bytes\": {\"id\": \"bytes\"}, \"aerospike.namespace.device.used.bytes\": {\"id\": \"bytes\"}, \"system.core.nice.pct\": {\"id\": \"percent\"}, \"system.process.cgroup.memory.stats.cache.bytes\": {\"id\": \"bytes\"}, \"kubernetes.container.memory.usage.bytes\": {\"id\": \"bytes\"}, \"kubernetes.pod.network.tx.bytes\": {\"id\": \"bytes\"}, \"kubernetes.node.memory.rss.bytes\": {\"id\": \"bytes\"}, \"system.memory.used.pct\": {\"id\": \"percent\"}, \"ceph.cluster_disk.used.bytes\": {\"id\": \"bytes\"}, \"docker.cpu.user.pct\": {\"id\": \"percentage\"}, \"ceph.cluster_disk.available.bytes\": {\"id\": \"bytes\"}, \"couchbase.node.mcd_memory.allocated.bytes\": {\"id\": \"bytes\"}, \"system.memory.actual.used.bytes\": {\"id\": \"bytes\"}, \"kubernetes.node.fs.used.bytes\": {\"id\": \"bytes\"}, \"kubernetes.container.rootfs.capacity.bytes\": {\"id\": \"bytes\"}, \"system.cpu.irq.pct\": {\"id\": \"percent\"}, \"kubernetes.container.logs.capacity.bytes\": {\"id\": \"bytes\"}, \"couchbase.bucket.quota.ram.bytes\": {\"id\": \"bytes\"}, \"elasticsearch.node.stats.jvm.mem.pools.old.used.bytes\": {\"id\": \"bytes\"}, \"vsphere.virtualmachine.memory.total.guest.bytes\": {\"id\": \"bytes\"}, \"system.process.cpu.total.pct\": {\"id\": \"percent\"}, \"kubernetes.node.fs.capacity.bytes\": {\"id\": \"bytes\"}, \"vsphere.host.memory.used.bytes\": {\"id\": \"bytes\"}, \"elasticsearch.node.jvm.memory.heap_init.bytes\": {\"id\": \"bytes\"}, \"aerospike.namespace.memory.used.sindex.bytes\": {\"id\": \"bytes\"}, \"mongodb.dbstats.extent_free_list.size.bytes\": {\"id\": \"bytes\"}, \"mongodb.status.wired_tiger.cache.used.bytes\": {\"id\": \"bytes\"}, \"mongodb.status.wired_tiger.log.max_file_size.bytes\": {\"id\": \"bytes\"}, \"system.core.idle.pct\": {\"id\": \"percent\"}, \"system.process.cgroup.memory.stats.active_anon.bytes\": {\"id\": \"bytes\"}, \"system.core.user.pct\": {\"id\": \"percent\"}, \"kubernetes.volume.fs.available.bytes\": {\"id\": \"bytes\"}, \"system.network.out.bytes\": {\"id\": \"bytes\"}, \"mongodb.status.network.in.bytes\": {\"id\": \"bytes\"}, \"rabbitmq.node.io.read.bytes\": {\"id\": \"bytes\"}, \"system.process.cpu.total.norm.pct\": {\"id\": \"percent\"}, \"system.network.in.bytes\": {\"id\": \"bytes\"}, \"haproxy.stat.throttle.pct\": {\"id\": \"percentage\"}, \"vsphere.datastore.capacity.used.bytes\": {\"id\": \"bytes\"}, \"elasticsearch.node.stats.indices.segments.memory.bytes\": {\"id\": \"bytes\"}, \"elasticsearch.node.stats.jvm.mem.pools.young.used.bytes\": {\"id\": \"bytes\"}, \"aerospike.namespace.device.free.pct\": {\"id\": \"percent\"}, \"system.cpu.system.norm.pct\": {\"id\": \"percent\"}, \"haproxy.stat.compressor.out.bytes\": {\"id\": \"bytes\"}, \"couchbase.cluster.hdd.quota.total.bytes\": {\"id\": \"bytes\"}, \"system.memory.total\": {\"id\": \"bytes\"}, \"system.memory.free\": {\"id\": \"bytes\"}, \"system.process.cgroup.memory.stats.active_file.bytes\": {\"id\": \"bytes\"}, \"mongodb.status.wired_tiger.log.write.bytes\": {\"id\": \"bytes\"}, \"system.process.cgroup.memory.kmem.limit.bytes\": {\"id\": \"bytes\"}, \"system.filesystem.total\": {\"id\": \"bytes\"}, \"redis.info.memory.used.lua\": {\"id\": \"bytes\"}, \"system.memory.swap.free\": {\"id\": \"bytes\"}, \"system.process.cgroup.memory.kmem.usage.max.bytes\": {\"id\": \"bytes\"}, \"aerospike.namespace.memory.used.index.bytes\": {\"id\": \"bytes\"}, \"mongodb.status.wired_tiger.cache.maximum.bytes\": {\"id\": \"bytes\"}, \"vsphere.host.memory.total.bytes\": {\"id\": \"bytes\"}, \"ceph.monitor_health.store_stats.misc.bytes\": {\"id\": \"bytes\"}, \"mongodb.dbstats.file_size.bytes\": {\"id\": \"bytes\"}, \"kubernetes.container.memory.workingset.bytes\": {\"id\": \"bytes\"}, \"system.fsstat.total_size.total\": {\"id\": \"bytes\"}, \"kubernetes.node.runtime.imagefs.used.bytes\": {\"id\": \"bytes\"}, \"couchbase.cluster.hdd.free.bytes\": {\"id\": \"bytes\"}, \"aerospike.namespace.device.available.pct\": {\"id\": \"percent\"}, \"vsphere.host.memory.free.bytes\": {\"id\": \"bytes\"}, \"ceph.monitor_health.store_stats.sst.bytes\": {\"id\": \"bytes\"}, \"system.process.cgroup.memory.stats.rss.bytes\": {\"id\": \"bytes\"}, \"golang.heap.allocations.total\": {\"id\": \"bytes\"}, \"golang.heap.system.stack\": {\"id\": \"bytes\"}, \"@timestamp\": {\"id\": \"date\"}, \"kubernetes.node.runtime.imagefs.available.bytes\": {\"id\": \"bytes\"}, \"ceph.cluster_status.misplace.ratio\": {\"id\": \"percent\"}, \"system.process.cgroup.memory.stats.inactive_anon.bytes\": {\"id\": \"bytes\"}, \"couchbase.cluster.ram.used.by_data.bytes\": {\"id\": \"bytes\"}, \"system.cpu.idle.pct\": {\"id\": \"percent\"}, \"kubernetes.node.memory.workingset.bytes\": {\"id\": \"bytes\"}, \"system.cpu.steal.pct\": {\"id\": \"percent\"}, \"system.process.cgroup.memory.stats.inactive_file.bytes\": {\"id\": \"bytes\"}, \"system.process.cgroup.memory.kmem.usage.bytes\": {\"id\": \"bytes\"}, \"elasticsearch.node.stats.jvm.mem.pools.old.peak.bytes\": {\"id\": \"bytes\"}, \"elasticsearch.node.stats.jvm.mem.pools.old.peak_max.bytes\": {\"id\": \"bytes\"}, \"kubernetes.container.memory.rss.bytes\": {\"id\": \"bytes\"}, \"system.process.cgroup.memory.memsw.limit.bytes\": {\"id\": \"bytes\"}, \"haproxy.stat.compressor.bypassed.bytes\": {\"id\": \"bytes\"}, \"kubernetes.node.memory.usage.bytes\": {\"id\": \"bytes\"}, \"couchbase.cluster.ram.quota.total.per_node.bytes\": {\"id\": \"bytes\"}, \"kubernetes.node.memory.available.bytes\": {\"id\": \"bytes\"}, \"haproxy.info.memory.max.bytes\": {\"id\": \"bytes\"}, \"rabbitmq.queue.memory.bytes\": {\"id\": \"bytes\"}, \"ceph.cluster_status.traffic.read_bytes\": {\"id\": \"bytes\"}, \"haproxy.stat.in.bytes\": {\"id\": \"bytes\"}, \"vsphere.virtualmachine.memory.free.guest.bytes\": {\"id\": \"bytes\"}, \"couchbase.bucket.memory.used.bytes\": {\"id\": \"bytes\"}, \"elasticsearch.node.stats.jvm.mem.pools.survivor.used.bytes\": {\"id\": \"bytes\"}, \"system.process.cgroup.memory.kmem_tcp.usage.bytes\": {\"id\": \"bytes\"}, \"golang.heap.allocations.active\": {\"id\": \"bytes\"}, \"system.cpu.steal.norm.pct\": {\"id\": \"percent\"}, \"kubernetes.node.fs.available.bytes\": {\"id\": \"bytes\"}, \"vsphere.datastore.capacity.free.bytes\": {\"id\": \"bytes\"}, \"system.core.iowait.pct\": {\"id\": \"percent\"}, \"system.process.cgroup.memory.stats.hierarchical_memory_limit.bytes\": {\"id\": \"bytes\"}, \"system.cpu.irq.norm.pct\": {\"id\": \"percent\"}, \"vsphere.datastore.capacity.total.bytes\": {\"id\": \"bytes\"}, \"system.memory.used.bytes\": {\"id\": \"bytes\"}, \"system.cpu.total.norm.pct\": {\"id\": \"percent\"}, \"couchbase.cluster.ram.quota.used.value.bytes\": {\"id\": \"bytes\"}, \"system.diskio.read.bytes\": {\"id\": \"bytes\"}, \"system.memory.swap.used.bytes\": {\"id\": \"bytes\"}, \"vsphere.datastore.capacity.used.pct\": {\"id\": \"percent\"}, \"vsphere.virtualmachine.memory.used.host.bytes\": {\"id\": \"bytes\"}, \"kubernetes.container.memory.limit.bytes\": {\"id\": \"bytes\"}, \"docker.memory.limit\": {\"id\": \"bytes\"}, \"kubernetes.container.memory.available.bytes\": {\"id\": \"bytes\"}, \"mongodb.dbstats.storage_size.bytes\": {\"id\": \"bytes\"}, \"couchbase.bucket.disk.used.bytes\": {\"id\": \"bytes\"}, \"system.cpu.softirq.norm.pct\": {\"id\": \"percent\"}, \"ceph.cluster_status.pg.total_bytes\": {\"id\": \"bytes\"}, \"rabbitmq.node.mem.limit.bytes\": {\"id\": \"bytes\"}, \"couchbase.cluster.hdd.total.bytes\": {\"id\": \"bytes\"}, \"docker.memory.rss.total\": {\"id\": \"bytes\"}, \"couchbase.cluster.ram.quota.total.value.bytes\": {\"id\": \"bytes\"}, \"mongodb.status.network.out.bytes\": {\"id\": \"bytes\"}, \"elasticsearch.node.stats.jvm.mem.pools.survivor.peak.bytes\": {\"id\": \"bytes\"}, \"haproxy.stat.compressor.in.bytes\": {\"id\": \"bytes\"}, \"elasticsearch.node.stats.jvm.mem.pools.old.max.bytes\": {\"id\": \"bytes\"}, \"couchbase.cluster.ram.used.value.bytes\": {\"id\": \"bytes\"}, \"system.cpu.user.pct\": {\"id\": \"percent\"}, \"golang.heap.system.released\": {\"id\": \"bytes\"}, \"ceph.cluster_disk.total.bytes\": {\"id\": \"bytes\"}, \"kubernetes.node.runtime.imagefs.capacity.bytes\": {\"id\": \"bytes\"}, \"system.uptime.duration.ms\": {\"params\": {\"inputFormat\": \"milliseconds\"}, \"id\": \"duration\"}, \"kubernetes.node.memory.capacity.bytes\": {\"id\": \"bytes\"}, \"rabbitmq.node.disk.free.limit.bytes\": {\"id\": \"bytes\"}, \"system.core.system.pct\": {\"id\": \"percent\"}, \"couchbase.cluster.hdd.used.by_data.bytes\": {\"id\": \"bytes\"}, \"system.cpu.iowait.norm.pct\": {\"id\": \"percent\"}, \"system.cpu.system.pct\": {\"id\": \"percent\"}, \"docker.network.in.bytes\": {\"id\": \"bytes\"}, \"system.process.cgroup.memory.stats.hierarchical_memsw_limit.bytes\": {\"id\": \"bytes\"}, \"system.filesystem.free\": {\"id\": \"bytes\"}, \"system.memory.swap.used.pct\": {\"id\": \"percent\"}, \"ceph.monitor_health.store_stats.total.bytes\": {\"id\": \"bytes\"}, \"system.core.irq.pct\": {\"id\": \"percent\"}, \"system.cpu.softirq.pct\": {\"id\": \"percent\"}, \"haproxy.stat.compressor.response.bytes\": {\"id\": \"bytes\"}, \"system.cpu.idle.norm.pct\": {\"id\": \"percent\"}, \"system.process.memory.rss.pct\": {\"id\": \"percent\"}, \"kubernetes.system.memory.workingset.bytes\": {\"id\": \"bytes\"}, \"kubernetes.container.memory.request.bytes\": {\"id\": \"bytes\"}, \"couchbase.cluster.hdd.used.value.bytes\": {\"id\": \"bytes\"}, \"kubernetes.system.memory.usage.bytes\": {\"id\": \"bytes\"}, \"ceph.monitor_health.store_stats.log.bytes\": {\"id\": \"bytes\"}, \"kubernetes.volume.fs.capacity.bytes\": {\"id\": \"bytes\"}, \"vsphere.virtualmachine.memory.used.guest.bytes\": {\"id\": \"bytes\"}, \"couchbase.node.couch.docs.data_size.bytes\": {\"id\": \"bytes\"}, \"mongodb.status.wired_tiger.log.size.bytes\": {\"id\": \"bytes\"}, \"rabbitmq.node.gc.reclaimed.bytes\": {\"id\": \"bytes\"}, \"system.process.cgroup.memory.mem.usage.bytes\": {\"id\": \"bytes\"}, \"elasticsearch.node.stats.jvm.mem.pools.survivor.max.bytes\": {\"id\": \"bytes\"}, \"couchbase.cluster.ram.quota.used.per_node.bytes\": {\"id\": \"bytes\"}, \"golang.heap.allocations.allocated\": {\"id\": \"bytes\"}, \"system.core.steal.pct\": {\"id\": \"percent\"}, \"golang.heap.gc.next_gc_limit\": {\"id\": \"bytes\"}, \"rabbitmq.queue.consumers.utilisation.pct\": {\"id\": \"percentage\"}, \"docker.cpu.total.pct\": {\"id\": \"percentage\"}, \"docker.memory.usage.pct\": {\"id\": \"percentage\"}, \"mysql.status.bytes.received\": {\"id\": \"bytes\"}, \"system.process.cgroup.memory.kmem_tcp.usage.max.bytes\": {\"id\": \"bytes\"}, \"redis.info.memory.used.peak\": {\"id\": \"bytes\"}, \"aerospike.namespace.memory.free.pct\": {\"id\": \"percent\"}, \"kubernetes.volume.fs.used.bytes\": {\"id\": \"bytes\"}, \"system.cpu.iowait.pct\": {\"id\": \"percent\"}, \"couchbase.bucket.data.used.bytes\": {\"id\": \"bytes\"}, \"mongodb.status.wired_tiger.cache.dirty.bytes\": {\"id\": \"bytes\"}, \"system.process.cgroup.memory.stats.rss_huge.bytes\": {\"id\": \"bytes\"}, \"system.process.cgroup.memory.memsw.usage.bytes\": {\"id\": \"bytes\"}, \"kubernetes.pod.network.rx.bytes\": {\"id\": \"bytes\"}, \"system.process.cgroup.blkio.total.bytes\": {\"id\": \"bytes\"}, \"rabbitmq.node.disk.free.bytes\": {\"id\": \"bytes\"}, \"system.filesystem.used.bytes\": {\"id\": \"bytes\"}, \"kubernetes.node.network.rx.bytes\": {\"id\": \"bytes\"}, \"system.diskio.iostat.read.per_sec.bytes\": {\"id\": \"bytes\"}, \"system.process.cgroup.memory.mem.usage.max.bytes\": {\"id\": \"bytes\"}, \"elasticsearch.node.stats.jvm.mem.pools.young.peak_max.bytes\": {\"id\": \"bytes\"}, \"system.process.cgroup.memory.memsw.usage.max.bytes\": {\"id\": \"bytes\"}, \"system.diskio.write.bytes\": {\"id\": \"bytes\"}, \"ceph.cluster_status.pg.used_bytes\": {\"id\": \"bytes\"}, \"haproxy.info.idle.pct\": {\"id\": \"percent\"}, \"system.process.memory.size\": {\"id\": \"bytes\"}, \"kubernetes.system.memory.rss.bytes\": {\"id\": \"bytes\"}, \"system.process.cgroup.memory.kmem_tcp.limit.bytes\": {\"id\": \"bytes\"}, \"golang.heap.allocations.idle\": {\"id\": \"bytes\"}, \"docker.network.out.bytes\": {\"id\": \"bytes\"}, \"mongodb.status.extra_info.heap_usage.bytes\": {\"id\": \"bytes\"}, \"system.cpu.total.pct\": {\"id\": \"percent\"}, \"system.process.cgroup.memory.stats.swap.bytes\": {\"id\": \"bytes\"}, \"golang.heap.system.total\": {\"id\": \"bytes\"}, \"system.fsstat.total_size.free\": {\"id\": \"bytes\"}, \"elasticsearch.node.stats.jvm.mem.pools.young.max.bytes\": {\"id\": \"bytes\"}, \"docker.memory.usage.total\": {\"id\": \"bytes\"}, \"mongodb.dbstats.avg_obj_size.bytes\": {\"id\": \"bytes\"}, \"couchbase.cluster.ram.total.bytes\": {\"id\": \"bytes\"}, \"kubernetes.container.logs.available.bytes\": {\"id\": \"bytes\"}, \"system.diskio.iostat.write.per_sec.bytes\": {\"id\": \"bytes\"}, \"system.filesystem.available\": {\"id\": \"bytes\"}, \"aerospike.namespace.memory.used.data.bytes\": {\"id\": \"bytes\"}, \"system.process.cgroup.memory.stats.unevictable.bytes\": {\"id\": \"bytes\"}, \"kubernetes.node.network.tx.bytes\": {\"id\": \"bytes\"}, \"ceph.pool_disk.stats.used.bytes\": {\"id\": \"bytes\"}, \"haproxy.stat.out.bytes\": {\"id\": \"bytes\"}, \"system.memory.actual.free\": {\"id\": \"bytes\"}, \"system.cpu.user.norm.pct\": {\"id\": \"percent\"}, \"system.process.memory.rss.bytes\": {\"id\": \"bytes\"}, \"ceph.pool_disk.stats.available.bytes\": {\"id\": \"bytes\"}, \"system.fsstat.total_size.used\": {\"id\": \"bytes\"}, \"system.process.cgroup.memory.mem.limit.bytes\": {\"id\": \"bytes\"}, \"docker.cpu.kernel.pct\": {\"id\": \"percentage\"}, \"system.memory.swap.total\": {\"id\": \"bytes\"}, \"ceph.cluster_status.traffic.write_bytes\": {\"id\": \"bytes\"}, \"rabbitmq.node.io.write.bytes\": {\"id\": \"bytes\"}, \"system.memory.actual.used.pct\": {\"id\": \"percent\"}, \"mongodb.dbstats.data_size.bytes\": {\"id\": \"bytes\"}, \"couchbase.bucket.quota.use.pct\": {\"id\": \"percent\"}, \"haproxy.info.ssl.frontend.session_reuse.pct\": {\"id\": \"percent\"}, \"mysql.status.bytes.sent\": {\"id\": \"bytes\"}, \"docker.memory.rss.pct\": {\"id\": \"percentage\"}, \"aerospike.namespace.memory.used.total.bytes\": {\"id\": \"bytes\"}, \"ceph.cluster_status.pg.avail_bytes\": {\"id\": \"bytes\"}, \"redis.info.memory.used.value\": {\"id\": \"bytes Used memory.\"}, \"system.core.softirq.pct\": {\"id\": \"percent\"}, \"redis.info.memory.used.rss\": {\"id\": \"bytes\"}, \"kubernetes.container.rootfs.available.bytes\": {\"id\": \"bytes\"}, \"docker.cpu.system.pct\": {\"id\": \"percentage\"}, \"elasticsearch.node.stats.jvm.mem.pools.young.peak.bytes\": {\"id\": \"bytes\"}, \"elasticsearch.node.stats.jvm.mem.pools.survivor.peak_max.bytes\": {\"id\": \"bytes\"}, \"aerospike.namespace.device.total.bytes\": {\"id\": \"bytes\"}, \"docker.memory.usage.max\": {\"id\": \"bytes\"}, \"mongodb.dbstats.index_size.bytes\": {\"id\": \"bytes\"}, \"golang.heap.system.obtained\": {\"id\": \"bytes\"}}", - "timeFieldName": "@timestamp", + "fields": "[{\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"beat.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"beat.hostname\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"beat.timezone\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"beat.version\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"@timestamp\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"tags\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"fields\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": false, \"name\": \"error.message\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"error.code\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"error.type\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"meta.cloud.provider\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"meta.cloud.instance_id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"meta.cloud.instance_name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"meta.cloud.machine_type\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"meta.cloud.availability_zone\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"meta.cloud.project_id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"meta.cloud.region\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.container.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.container.image\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.container.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.container.labels\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.pod.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.namespace\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.labels\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.annotations\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.image\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"metricset.module\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"metricset.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"metricset.host\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"metricset.rtt\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"metricset.namespace\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"type\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.client.delete.error\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.client.delete.not_found\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.client.delete.success\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.client.delete.timeout\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.client.read.error\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.client.read.not_found\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.client.read.success\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.client.read.timeout\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.client.write.error\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.client.write.success\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.client.write.timeout\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.device.available.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.device.free.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.device.total.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.device.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.hwm_breached\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"boolean\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.memory.free.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.memory.used.data.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.memory.used.index.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.memory.used.sindex.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.memory.used.total.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.node.host\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.node.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.objects.master\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.objects.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"aerospike.namespace.stop_writes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"boolean\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.hostname\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.total_accesses\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.total_kbytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.requests_per_sec\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.bytes_per_sec\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.bytes_per_request\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.workers.busy\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.workers.idle\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.uptime.server_uptime\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.uptime.uptime\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.cpu.load\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.cpu.user\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.cpu.system\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.cpu.children_user\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.cpu.children_system\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.connections.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.connections.async.writing\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.connections.async.keep_alive\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.connections.async.closing\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.load.1\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.load.5\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.load.15\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.scoreboard.starting_up\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.scoreboard.reading_request\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.scoreboard.sending_reply\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.scoreboard.keepalive\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.scoreboard.dns_lookup\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.scoreboard.closing_connection\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.scoreboard.logging\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.scoreboard.gracefully_finishing\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.scoreboard.idle_cleanup\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.scoreboard.open_slot\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.scoreboard.waiting_for_connection\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"apache.status.scoreboard.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_disk.available.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_disk.total.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_disk.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_health.overall_status\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_health.timechecks.epoch\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_health.timechecks.round.value\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_health.timechecks.round.status\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.version\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.traffic.read_bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.traffic.write_bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.traffic.read_op_per_sec\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.traffic.write_op_per_sec\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.misplace.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.misplace.objects\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.misplace.ratio\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.degraded.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.degraded.objects\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.degraded.ratio\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.pg.data_bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.pg.avail_bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.pg.total_bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.pg.used_bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.pg_state.state_name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.pg_state.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.pg_state.version\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.osd.full\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"boolean\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.osd.nearfull\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"boolean\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.osd.num_osds\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.osd.num_up_osds\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.osd.num_in_osds\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.osd.num_in_osds\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.cluster_status.osd.epoch\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.monitor_health.available.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.monitor_health.health\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.monitor_health.available.kb\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.monitor_health.total.kb\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.monitor_health.used.kb\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.monitor_health.last_updated\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.monitor_health.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.monitor_health.store_stats.log.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.monitor_health.store_stats.misc.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.monitor_health.store_stats.sst.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.monitor_health.store_stats.total.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.monitor_health.store_stats.last_updated\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.pool_disk.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.pool_disk.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.pool_disk.stats.available.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.pool_disk.stats.objects\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.pool_disk.stats.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"ceph.pool_disk.stats.used.kb\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.bucket.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.bucket.type\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.bucket.data.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.bucket.disk.fetches\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.bucket.disk.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.bucket.memory.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.bucket.quota.ram.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.bucket.quota.use.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.bucket.ops_per_sec\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.bucket.item_count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.cluster.hdd.free.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.cluster.hdd.quota.total.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.cluster.hdd.total.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.cluster.hdd.used.value.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.cluster.hdd.used.by_data.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.cluster.max_bucket_count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.cluster.quota.index_memory.mb\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.cluster.quota.memory.mb\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.cluster.ram.quota.total.value.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.cluster.ram.quota.total.per_node.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.cluster.ram.quota.used.value.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.cluster.ram.quota.used.per_node.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.cluster.ram.total.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.cluster.ram.used.value.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.cluster.ram.used.by_data.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.cmd_get\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.couch.docs.disk_size.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.couch.docs.data_size.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.couch.spatial.data_size.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.couch.spatial.disk_size.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.couch.views.disk_size.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.couch.views.data_size.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.cpu_utilization_rate.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.current_items.value\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.current_items.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.ep_bg_fetched\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.get_hits\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.hostname\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.mcd_memory.allocated.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.mcd_memory.reserved.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.memory.free.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.memory.total.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.memory.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.ops\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.swap.total.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.swap.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.uptime.sec\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"couchbase.node.vb_replica_curr_items\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.container.command\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.container.created\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.container.status\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.container.size.root_fs\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.container.size.rw\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.container.tags\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.cpu.kernel.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.cpu.kernel.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.cpu.system.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.cpu.system.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.cpu.user.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.cpu.user.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.cpu.total.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.diskio.reads\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.diskio.writes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.diskio.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.healthcheck.failingstreak\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.healthcheck.status\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.healthcheck.event.end_date\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.healthcheck.event.start_date\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.healthcheck.event.output\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.healthcheck.event.exit_code\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.image.id.current\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.image.id.parent\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.image.created\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.image.size.virtual\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.image.size.regular\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.image.labels\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.image.tags\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.info.containers.paused\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.info.containers.running\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.info.containers.stopped\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.info.containers.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.info.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.info.images\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.memory.fail.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.memory.limit\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.memory.rss.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.memory.rss.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.memory.usage.max\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.memory.usage.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.memory.usage.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.network.interface\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.network.in.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.network.in.dropped\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.network.in.errors\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.network.in.packets\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.network.out.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.network.out.dropped\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.network.out.errors\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"docker.network.out.packets\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.cluster.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.jvm.memory.heap_init.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.jvm.version\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.version\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.indices.docs.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.indices.docs.deleted\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.indices.segments.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.indices.segments.memory.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.indices.store.size.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.jvm.mem.pools.old.max.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.jvm.mem.pools.old.peak.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.jvm.mem.pools.old.peak_max.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.jvm.mem.pools.old.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.jvm.mem.pools.young.max.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.jvm.mem.pools.young.peak.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.jvm.mem.pools.young.peak_max.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.jvm.mem.pools.young.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.jvm.mem.pools.survivor.max.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.jvm.mem.pools.survivor.peak.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.jvm.mem.pools.survivor.peak_max.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.jvm.mem.pools.survivor.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.jvm.gc.collectors.old.collection.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.jvm.gc.collectors.old.collection.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.jvm.gc.collectors.young.collection.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"elasticsearch.node.stats.jvm.gc.collectors.young.collection.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.expvar.cmdline\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.cmdline\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.gc.total_pause.ns\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.gc.total_count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.gc.next_gc_limit\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.gc.cpu_fraction\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.gc.pause.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.gc.pause.sum.ns\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.gc.pause.max.ns\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.gc.pause.avg.ns\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.system.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.system.obtained\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.system.stack\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.system.released\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.allocations.mallocs\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.allocations.frees\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.allocations.objects\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.allocations.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.allocations.allocated\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.allocations.idle\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"golang.heap.allocations.active\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"graphite.server.example\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.processes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.process_num\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.pid\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.run_queue\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.tasks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.uptime.sec\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.memory.max.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.ulimit_n\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.compress.bps.in\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.compress.bps.out\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.compress.bps.rate_limit\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.connection.rate.value\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.connection.rate.limit\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.connection.rate.max\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.connection.current\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.connection.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.connection.ssl.current\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.connection.ssl.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.connection.ssl.max\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.connection.max\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.connection.hard_max\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.requests.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.sockets.max\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.requests.max\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.pipes.used\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.pipes.free\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.pipes.max\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.session.rate.value\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.session.rate.limit\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.session.rate.max\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.ssl.rate.value\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.ssl.rate.limit\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.ssl.rate.max\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.ssl.frontend.key_rate.value\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.ssl.frontend.key_rate.max\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.ssl.frontend.session_reuse.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.ssl.backend.key_rate.value\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.ssl.backend.key_rate.max\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.ssl.cached_lookups\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.ssl.cache_misses\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.zlib_mem_usage.value\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.zlib_mem_usage.max\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.info.idle.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.status\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.weight\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.downtime\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.component_type\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.process_id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.service_name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.in.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.out.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.last_change\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.throttle.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.selected.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.tracked.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.connection.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.connection.retried\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.connection.time.avg\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.request.denied\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.request.queued.current\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.request.queued.max\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.request.errors\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.request.redispatched\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.request.connection.errors\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.request.rate.value\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.request.rate.max\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.request.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.response.errors\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.response.time.avg\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.response.denied\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.response.http.1xx\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.response.http.2xx\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.response.http.3xx\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.response.http.4xx\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.response.http.5xx\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.response.http.other\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.session.current\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.session.max\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.session.limit\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.session.rate.value\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.session.rate.limit\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.session.rate.max\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.check.status\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.check.code\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.check.duration\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.check.health.last\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.check.health.fail\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.check.agent.last\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.check.failed\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.check.down\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.client.aborted\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.server.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.server.aborted\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.server.active\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.server.backup\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.compressor.in.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.compressor.out.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.compressor.bypassed.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.compressor.response.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.proxy.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.proxy.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.queue.limit\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"haproxy.stat.queue.time.avg\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"http.request.header\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"http.request.method\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"http.request.body\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"http.response.header\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"http.response.status_code\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"http.response.body\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.consumergroup.broker.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.consumergroup.broker.address\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.consumergroup.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.consumergroup.topic\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.consumergroup.partition\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.consumergroup.offset\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": false, \"name\": \"kafka.consumergroup.meta\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.consumergroup.error.code\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.consumergroup.client.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.consumergroup.client.host\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.consumergroup.client.member_id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.partition.offset.newest\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.partition.offset.oldest\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.partition.partition.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.partition.partition.leader\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.partition.partition.isr\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.partition.partition.replica\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.partition.partition.insync_replica\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"boolean\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.partition.partition.error.code\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.partition.topic.error.code\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.partition.topic.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.partition.broker.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kafka.partition.broker.address\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kibana.status.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kibana.status.uuid\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kibana.status.version.number\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kibana.status.status.overall.state\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kibana.status.metrics.concurrent_connections\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kibana.status.metrics.requests.disconnects\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kibana.status.metrics.requests.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.start_time\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.cpu.usage.core.ns\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.cpu.usage.nanocores\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.logs.available.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.logs.capacity.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.logs.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.logs.inodes.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.logs.inodes.free\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.logs.inodes.used\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.memory.available.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.memory.usage.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.memory.rss.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.memory.workingset.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.memory.pagefaults\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.memory.majorpagefaults\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.rootfs.capacity.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.rootfs.available.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.rootfs.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.rootfs.inodes.used\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.event.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.event.message\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.event.reason\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.event.type\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.event.metadata.timestamp.created\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.event.metadata.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.event.metadata.namespace\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.event.metadata.resource_version\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.event.metadata.uid\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.event.metadata.self_link\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.event.involved_object.api_version\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.event.involved_object.kind\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.event.involved_object.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.event.involved_object.resource_version\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.event.involved_object.uid\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.start_time\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.cpu.usage.core.ns\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.cpu.usage.nanocores\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.memory.available.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.memory.usage.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.memory.rss.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.memory.workingset.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.memory.pagefaults\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.memory.majorpagefaults\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.network.rx.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.network.rx.errors\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.network.tx.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.network.tx.errors\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.fs.capacity.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.fs.available.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.fs.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.fs.inodes.used\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.fs.inodes.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.fs.inodes.free\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.runtime.imagefs.capacity.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.runtime.imagefs.available.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.runtime.imagefs.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.pod.start_time\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.pod.network.rx.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.pod.network.rx.errors\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.pod.network.tx.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.pod.network.tx.errors\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.status.phase\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.status.ready\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"boolean\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.status.restarts\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.cpu.limit.nanocores\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.cpu.request.nanocores\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.memory.limit.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.container.memory.request.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.deployment.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.deployment.paused\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"boolean\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.deployment.replicas.desired\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.deployment.replicas.available\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.deployment.replicas.unavailable\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.deployment.replicas.updated\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.status.ready\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.status.unschedulable\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"boolean\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.cpu.allocatable.cores\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.cpu.capacity.cores\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.memory.allocatable.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.memory.capacity.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.pod.allocatable.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.node.pod.capacity.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.pod.ip\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"ip\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.pod.host_ip\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"ip\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.pod.status.phase\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.pod.status.ready\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.pod.status.scheduled\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.replicaset.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.replicaset.replicas.available\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.replicaset.replicas.desired\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.replicaset.replicas.ready\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.replicaset.replicas.observed\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.replicaset.replicas.labeled\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.system.container\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.system.start_time\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.system.cpu.usage.core.ns\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.system.cpu.usage.nanocores\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.system.memory.usage.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.system.memory.rss.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.system.memory.workingset.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.system.memory.pagefaults\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.system.memory.majorpagefaults\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.volume.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.volume.fs.capacity.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.volume.fs.available.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.volume.fs.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.volume.fs.inodes.used\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.volume.fs.inodes.free\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"kubernetes.volume.fs.inodes.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"memcached.stats.pid\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"memcached.stats.uptime.sec\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"memcached.stats.threads\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"memcached.stats.connections.current\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"memcached.stats.connections.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"memcached.stats.get.hits\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"memcached.stats.get.misses\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"memcached.stats.cmd.get\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"memcached.stats.cmd.set\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"memcached.stats.read.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"memcached.stats.written.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"memcached.stats.items.current\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"memcached.stats.items.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"memcached.stats.evictions\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.dbstats.avg_obj_size.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.dbstats.collections\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.dbstats.data_size.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.dbstats.db\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.dbstats.file_size.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.dbstats.index_size.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.dbstats.indexes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.dbstats.num_extents\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.dbstats.objects\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.dbstats.storage_size.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.dbstats.ns_size_mb.mb\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.dbstats.data_file_version.major\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.dbstats.data_file_version.minor\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.dbstats.extent_free_list.num\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.dbstats.extent_free_list.size.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.version\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.uptime.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.local_time\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.asserts.regular\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.asserts.warning\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.asserts.msg\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.asserts.user\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.asserts.rollovers\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.background_flushing.flushes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.background_flushing.total.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.background_flushing.average.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.background_flushing.last.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.background_flushing.last_finished\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.connections.current\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.connections.available\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.connections.total_created\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.journaling.commits\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.journaling.journaled.mb\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.journaling.write_to_data_files.mb\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.journaling.compression\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.journaling.commits_in_write_lock\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.journaling.early_commits\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.journaling.times.dt.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.journaling.times.prep_log_buffer.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.journaling.times.write_to_journal.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.journaling.times.write_to_data_files.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.journaling.times.remap_private_view.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.journaling.times.commits.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.journaling.times.commits_in_write_lock.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.extra_info.heap_usage.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.extra_info.page_faults\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.network.in.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.network.out.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.network.requests\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.opcounters.insert\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.opcounters.query\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.opcounters.update\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.opcounters.delete\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.opcounters.getmore\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.opcounters.command\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.opcounters_replicated.insert\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.opcounters_replicated.query\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.opcounters_replicated.update\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.opcounters_replicated.delete\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.opcounters_replicated.getmore\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.opcounters_replicated.command\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.memory.bits\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.memory.resident.mb\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.memory.virtual.mb\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.memory.mapped.mb\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.memory.mapped_with_journal.mb\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.write_backs_queued\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"boolean\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.storage_engine.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.concurrent_transactions.write.out\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.concurrent_transactions.write.available\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.concurrent_transactions.write.total_tickets\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.concurrent_transactions.read.out\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.concurrent_transactions.read.available\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.concurrent_transactions.read.total_tickets\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.cache.maximum.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.cache.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.cache.dirty.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.cache.pages.read\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.cache.pages.write\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.cache.pages.evicted\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.log.size.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.log.write.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.log.max_file_size.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.log.flushes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.log.writes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.log.scans\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mongodb.status.wired_tiger.log.syncs\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.aborted.clients\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.aborted.connects\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.binlog.cache.disk_use\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.binlog.cache.use\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.bytes.received\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.bytes.sent\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.threads.cached\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.threads.created\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.threads.connected\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.threads.running\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.connections\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.created.tmp.disk_tables\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.created.tmp.files\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.created.tmp.tables\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.delayed.errors\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.delayed.insert_threads\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.delayed.writes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.flush_commands\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.max_used_connections\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.open.files\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.open.streams\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.open.tables\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.opened_tables\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.command.delete\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.command.insert\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.command.select\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"mysql.status.command.update\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"nginx.stubstatus.hostname\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"nginx.stubstatus.active\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"nginx.stubstatus.accepts\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"nginx.stubstatus.handled\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"nginx.stubstatus.dropped\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"nginx.stubstatus.requests\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"nginx.stubstatus.current\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"nginx.stubstatus.reading\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"nginx.stubstatus.writing\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"nginx.stubstatus.waiting\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"php_fpm.pool.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"php_fpm.pool.connections.accepted\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"php_fpm.pool.connections.queued\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"php_fpm.pool.processes.idle\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"php_fpm.pool.processes.active\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"php_fpm.pool.slow_requests\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.activity.database.oid\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.activity.database.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.activity.pid\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.activity.user.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.activity.user.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.activity.application_name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.activity.client.address\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.activity.client.hostname\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.activity.client.port\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.activity.backend_start\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.activity.transaction_start\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.activity.query_start\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.activity.state_change\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.activity.waiting\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"boolean\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.activity.state\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.activity.query\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.bgwriter.checkpoints.scheduled\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.bgwriter.checkpoints.requested\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.bgwriter.checkpoints.times.write.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.bgwriter.checkpoints.times.sync.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.bgwriter.buffers.checkpoints\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.bgwriter.buffers.clean\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.bgwriter.buffers.clean_full\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.bgwriter.buffers.backend\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.bgwriter.buffers.backend_fsync\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.bgwriter.buffers.allocated\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.bgwriter.stats_reset\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.oid\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.number_of_backends\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.transactions.commit\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.transactions.rollback\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.blocks.read\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.blocks.hit\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.blocks.time.read.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.blocks.time.write.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.rows.returned\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.rows.fetched\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.rows.inserted\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.rows.updated\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.rows.deleted\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.conflicts\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.temporary.files\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.temporary.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.deadlocks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"postgresql.database.stats_reset\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"prometheus.stats.notifications.queue_length\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"prometheus.stats.notifications.dropped\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"prometheus.stats.processes.open_fds\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"prometheus.stats.storage.chunks_to_persist\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.disk.free.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.disk.free.limit.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.fd.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.fd.used\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.gc.num.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.gc.reclaimed.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.io.file_handle.open_attempt.avg.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.io.file_handle.open_attempt.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.io.read.avg.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.io.read.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.io.read.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.io.reopen.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.io.seek.avg.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.io.seek.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.io.sync.avg.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.io.sync.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.io.write.avg.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.io.write.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.io.write.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.mem.limit.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.mem.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.mnesia.disk.tx.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.mnesia.ram.tx.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.msg.store_read.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.msg.store_write.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.proc.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.proc.used\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.processors\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.queue.index.journal_write.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.queue.index.read.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.queue.index.write.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.run.queue\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.socket.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.socket.used\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.type\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.node.uptime\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.queue.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.queue.vhost\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.queue.durable\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"boolean\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.queue.auto_delete\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"boolean\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.queue.exclusive\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"boolean\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.queue.node\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.queue.state\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.queue.arguments.max_priority\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.queue.consumers.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.queue.consumers.utilisation.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.queue.messages.total.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.queue.messages.ready.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.queue.messages.unacknowledged.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.queue.messages.persistent.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.queue.memory.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.queue.disk.reads.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"rabbitmq.queue.disk.writes.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.clients.connected\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.clients.longest_output_list\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.clients.biggest_input_buf\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.clients.blocked\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.cluster.enabled\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"boolean\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.cpu.used.sys\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.cpu.used.sys_children\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.cpu.used.user\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.cpu.used.user_children\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.memory.used.value\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.memory.used.rss\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.memory.used.peak\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.memory.used.lua\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.memory.allocator\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.persistence.loading\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"boolean\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.persistence.rdb.last_save.changes_since\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.persistence.rdb.bgsave.in_progress\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"boolean\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.persistence.rdb.last_save.time\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.persistence.rdb.bgsave.last_status\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.persistence.rdb.bgsave.last_time.sec\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.persistence.rdb.bgsave.current_time.sec\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.persistence.aof.enabled\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"boolean\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.persistence.aof.rewrite.in_progress\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"boolean\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.persistence.aof.rewrite.scheduled\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"boolean\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.persistence.aof.rewrite.last_time.sec\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.persistence.aof.rewrite.current_time.sec\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.persistence.aof.bgrewrite.last_status\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.persistence.aof.write.last_status\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.replication.role\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.replication.connected_slaves\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.replication.master_offset\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.replication.backlog.active\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.replication.backlog.size\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.replication.backlog.first_byte_offset\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.replication.backlog.histlen\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.server.version\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.server.git_sha1\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.server.git_dirty\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.server.build_id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.server.mode\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.server.os\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.server.arch_bits\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.server.multiplexing_api\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.server.gcc_version\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.server.process_id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.server.run_id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.server.tcp_port\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.server.uptime\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.server.hz\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.server.lru_clock\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.server.config_file\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.connections.received\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.connections.rejected\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.commands_processed\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.net.input.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.net.output.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.instantaneous.ops_per_sec\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.instantaneous.input_kbps\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.instantaneous.output_kbps\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.sync.full\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.sync.partial.ok\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.sync.partial.err\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.keys.expired\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.keys.evicted\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.keyspace.hits\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.keyspace.misses\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.pubsub.channels\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.pubsub.patterns\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.latest_fork_usec\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.info.stats.migrate_cached_sockets\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.keyspace.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.keyspace.avg_ttl\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.keyspace.keys\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"redis.keyspace.expires\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.core.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.core.user.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.core.user.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.core.system.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.core.system.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.core.nice.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.core.nice.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.core.idle.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.core.idle.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.core.iowait.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.core.iowait.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.core.irq.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.core.irq.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.core.softirq.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.core.softirq.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.core.steal.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.core.steal.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.cores\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.user.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.system.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.nice.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.idle.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.iowait.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.irq.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.softirq.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.steal.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.total.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.user.norm.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.system.norm.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.nice.norm.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.idle.norm.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.iowait.norm.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.irq.norm.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.softirq.norm.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.steal.norm.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.total.norm.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.user.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.system.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.nice.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.idle.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.iowait.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.irq.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.softirq.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.cpu.steal.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.serial_number\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.read.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.write.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.read.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.write.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.read.time\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.write.time\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.io.time\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.iostat.read.request.merges_per_sec\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.iostat.write.request.merges_per_sec\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.iostat.read.request.per_sec\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.iostat.write.request.per_sec\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.iostat.read.per_sec.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.iostat.write.per_sec.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.iostat.request.avg_size\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.iostat.queue.avg_size\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.iostat.await\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.iostat.service_time\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.diskio.iostat.busy\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.filesystem.available\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.filesystem.device_name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.filesystem.type\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.filesystem.mount_point\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.filesystem.files\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.filesystem.free\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.filesystem.free_files\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.filesystem.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.filesystem.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.filesystem.used.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.fsstat.count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.fsstat.total_files\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.fsstat.total_size.free\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.fsstat.total_size.used\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.fsstat.total_size.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.load.1\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.load.5\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.load.15\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.load.norm.1\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.load.norm.5\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.load.norm.15\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.load.cores\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.memory.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.memory.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.memory.free\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.memory.used.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.memory.actual.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.memory.actual.free\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.memory.actual.used.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.memory.swap.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.memory.swap.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.memory.swap.free\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.memory.swap.used.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.network.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.network.out.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.network.in.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.network.out.packets\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.network.in.packets\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.network.in.errors\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.network.out.errors\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.network.in.dropped\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.network.out.dropped\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.state\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.pid\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.ppid\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.pgid\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cmdline\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.username\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cwd\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.env\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cpu.user\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cpu.total.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cpu.total.norm.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cpu.system\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cpu.total.ticks\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cpu.start_time\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"date\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.memory.size\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.memory.rss.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.memory.rss.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.memory.share\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.fd.open\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.fd.limit.soft\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.fd.limit.hard\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.path\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.cpu.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.cpu.path\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.cpu.cfs.period.us\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.cpu.cfs.quota.us\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.cpu.cfs.shares\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.cpu.rt.period.us\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.cpu.rt.runtime.us\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.cpu.stats.periods\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.cpu.stats.throttled.periods\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.cpu.stats.throttled.ns\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.cpuacct.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.cpuacct.path\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.cpuacct.total.ns\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.cpuacct.stats.user.ns\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.cpuacct.stats.system.ns\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.cpuacct.percpu\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.path\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.mem.usage.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.mem.usage.max.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.mem.limit.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.mem.failures\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.memsw.usage.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.memsw.usage.max.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.memsw.limit.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.memsw.failures\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.kmem.usage.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.kmem.usage.max.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.kmem.limit.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.kmem.failures\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.kmem_tcp.usage.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.kmem_tcp.usage.max.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.kmem_tcp.limit.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.kmem_tcp.failures\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.stats.active_anon.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.stats.active_file.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.stats.cache.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.stats.hierarchical_memory_limit.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.stats.hierarchical_memsw_limit.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.stats.inactive_anon.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.stats.inactive_file.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.stats.mapped_file.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.stats.page_faults\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.stats.major_page_faults\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.stats.pages_in\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.stats.pages_out\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.stats.rss.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.stats.rss_huge.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.stats.swap.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.memory.stats.unevictable.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.blkio.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.blkio.path\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.blkio.total.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.cgroup.blkio.total.ios\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.summary.total\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.summary.running\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.summary.idle\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.summary.sleeping\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.summary.stopped\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.summary.zombie\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.process.summary.unknown\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.socket.direction\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.socket.family\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.socket.local.ip\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"ip\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.socket.local.port\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.socket.remote.ip\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"ip\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.socket.remote.port\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.socket.remote.host\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.socket.remote.etld_plus_one\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.socket.remote.host_error\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.socket.process.pid\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.socket.process.command\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.socket.process.cmdline\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.socket.process.exe\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.socket.user.id\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.socket.user.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"system.uptime.duration.ms\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.datastore.datacenter\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.datastore.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.datastore.fstype\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.datastore.capacity.total.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.datastore.capacity.free.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.datastore.capacity.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.datastore.capacity.used.pct\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.host.datacenter\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.host.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.host.cpu.used.mhz\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.host.cpu.total.mhz\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.host.cpu.free.mhz\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.host.memory.used.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.host.memory.total.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.host.memory.free.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.virtualmachine.datacenter\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.virtualmachine.name\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.virtualmachine.cpu.used.mhz\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.virtualmachine.memory.used.guest.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.virtualmachine.memory.used.host.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.virtualmachine.memory.total.guest.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.virtualmachine.memory.free.guest.bytes\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"vsphere.virtualmachine.custom_fields\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.hostname\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.approximate_data_size\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.latency.avg\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.ephemerals_count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.followers\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.max_file_descriptor_count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.latency.max\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.latency.min\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.num_alive_connections\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.open_file_descriptor_count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.outstanding_requests\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.packets.received\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.packets.sent\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.pending_syncs\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.server_state\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.synced_followers\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.version\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.watch_count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"zookeeper.mntr.znode_count\", \"searchable\": true, \"indexed\": true, \"doc_values\": true, \"type\": \"number\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": false, \"name\": \"_id\", \"searchable\": false, \"indexed\": false, \"doc_values\": false, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": true, \"name\": \"_type\", \"searchable\": true, \"indexed\": false, \"doc_values\": false, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": false, \"name\": \"_index\", \"searchable\": false, \"indexed\": false, \"doc_values\": false, \"type\": \"string\", \"scripted\": false}, {\"count\": 0, \"analyzed\": false, \"aggregatable\": false, \"name\": \"_score\", \"searchable\": false, \"indexed\": false, \"doc_values\": false, \"type\": \"number\", \"scripted\": false}]", + "fieldFormatMap": "{\"ceph.cluster_status.pg.data_bytes\": {\"id\": \"bytes\"}, \"system.filesystem.used.pct\": {\"id\": \"percent\"}, \"ceph.cluster_status.degraded.ratio\": {\"id\": \"percent\"}, \"system.cpu.nice.norm.pct\": {\"id\": \"percent\"}, \"system.process.cgroup.memory.stats.mapped_file.bytes\": {\"id\": \"bytes\"}, \"system.cpu.nice.pct\": {\"id\": \"percent\"}, \"system.process.memory.share\": {\"id\": \"bytes\"}, \"couchbase.node.couch.docs.disk_size.bytes\": {\"id\": \"bytes\"}, \"kubernetes.container.logs.used.bytes\": {\"id\": \"bytes\"}, \"kubernetes.node.memory.allocatable.bytes\": {\"id\": \"bytes\"}, \"kubernetes.container.rootfs.used.bytes\": {\"id\": \"bytes\"}, \"aerospike.namespace.device.used.bytes\": {\"id\": \"bytes\"}, \"system.core.nice.pct\": {\"id\": \"percent\"}, \"system.process.cgroup.memory.stats.cache.bytes\": {\"id\": \"bytes\"}, \"kubernetes.container.memory.usage.bytes\": {\"id\": \"bytes\"}, \"kubernetes.pod.network.tx.bytes\": {\"id\": \"bytes\"}, \"kubernetes.node.memory.rss.bytes\": {\"id\": \"bytes\"}, \"system.memory.used.pct\": {\"id\": \"percent\"}, \"ceph.cluster_disk.used.bytes\": {\"id\": \"bytes\"}, \"docker.cpu.user.pct\": {\"id\": \"percentage\"}, \"ceph.cluster_disk.available.bytes\": {\"id\": \"bytes\"}, \"couchbase.node.mcd_memory.allocated.bytes\": {\"id\": \"bytes\"}, \"system.memory.actual.used.bytes\": {\"id\": \"bytes\"}, \"kubernetes.node.fs.used.bytes\": {\"id\": \"bytes\"}, \"kubernetes.container.rootfs.capacity.bytes\": {\"id\": \"bytes\"}, \"system.cpu.irq.pct\": {\"id\": \"percent\"}, \"kubernetes.container.logs.capacity.bytes\": {\"id\": \"bytes\"}, \"couchbase.bucket.quota.ram.bytes\": {\"id\": \"bytes\"}, \"elasticsearch.node.stats.jvm.mem.pools.old.used.bytes\": {\"id\": \"bytes\"}, \"vsphere.virtualmachine.memory.total.guest.bytes\": {\"id\": \"bytes\"}, \"system.process.cpu.total.pct\": {\"id\": \"percent\"}, \"kubernetes.node.fs.capacity.bytes\": {\"id\": \"bytes\"}, \"vsphere.host.memory.used.bytes\": {\"id\": \"bytes\"}, \"elasticsearch.node.jvm.memory.heap_init.bytes\": {\"id\": \"bytes\"}, \"aerospike.namespace.memory.used.sindex.bytes\": {\"id\": \"bytes\"}, \"mongodb.dbstats.extent_free_list.size.bytes\": {\"id\": \"bytes\"}, \"mongodb.status.wired_tiger.cache.used.bytes\": {\"id\": \"bytes\"}, \"mongodb.status.wired_tiger.log.max_file_size.bytes\": {\"id\": \"bytes\"}, \"system.core.idle.pct\": {\"id\": \"percent\"}, \"system.process.cgroup.memory.stats.active_anon.bytes\": {\"id\": \"bytes\"}, \"system.core.user.pct\": {\"id\": \"percent\"}, \"kubernetes.volume.fs.available.bytes\": {\"id\": \"bytes\"}, \"system.network.out.bytes\": {\"id\": \"bytes\"}, \"mongodb.status.network.in.bytes\": {\"id\": \"bytes\"}, \"rabbitmq.node.io.read.bytes\": {\"id\": \"bytes\"}, \"system.process.cpu.total.norm.pct\": {\"id\": \"percent\"}, \"system.network.in.bytes\": {\"id\": \"bytes\"}, \"haproxy.stat.throttle.pct\": {\"id\": \"percentage\"}, \"vsphere.datastore.capacity.used.bytes\": {\"id\": \"bytes\"}, \"elasticsearch.node.stats.indices.segments.memory.bytes\": {\"id\": \"bytes\"}, \"elasticsearch.node.stats.jvm.mem.pools.young.used.bytes\": {\"id\": \"bytes\"}, \"aerospike.namespace.device.free.pct\": {\"id\": \"percent\"}, \"system.cpu.system.norm.pct\": {\"id\": \"percent\"}, \"haproxy.stat.compressor.out.bytes\": {\"id\": \"bytes\"}, \"couchbase.cluster.hdd.quota.total.bytes\": {\"id\": \"bytes\"}, \"system.memory.total\": {\"id\": \"bytes\"}, \"system.memory.free\": {\"id\": \"bytes\"}, \"system.process.cgroup.memory.stats.active_file.bytes\": {\"id\": \"bytes\"}, \"mongodb.status.wired_tiger.log.write.bytes\": {\"id\": \"bytes\"}, \"system.process.cgroup.memory.kmem.limit.bytes\": {\"id\": \"bytes\"}, \"system.filesystem.total\": {\"id\": \"bytes\"}, \"redis.info.memory.used.lua\": {\"id\": \"bytes\"}, \"system.memory.swap.free\": {\"id\": \"bytes\"}, \"system.process.cgroup.memory.kmem.usage.max.bytes\": {\"id\": \"bytes\"}, \"aerospike.namespace.memory.used.index.bytes\": {\"id\": \"bytes\"}, \"mongodb.status.wired_tiger.cache.maximum.bytes\": {\"id\": \"bytes\"}, \"vsphere.host.memory.total.bytes\": {\"id\": \"bytes\"}, \"ceph.monitor_health.store_stats.misc.bytes\": {\"id\": \"bytes\"}, \"mongodb.dbstats.file_size.bytes\": {\"id\": \"bytes\"}, \"kubernetes.container.memory.workingset.bytes\": {\"id\": \"bytes\"}, \"system.fsstat.total_size.total\": {\"id\": \"bytes\"}, \"kubernetes.node.runtime.imagefs.used.bytes\": {\"id\": \"bytes\"}, \"couchbase.cluster.hdd.free.bytes\": {\"id\": \"bytes\"}, \"aerospike.namespace.device.available.pct\": {\"id\": \"percent\"}, \"vsphere.host.memory.free.bytes\": {\"id\": \"bytes\"}, \"ceph.monitor_health.store_stats.sst.bytes\": {\"id\": \"bytes\"}, \"system.process.cgroup.memory.stats.rss.bytes\": {\"id\": \"bytes\"}, \"golang.heap.allocations.total\": {\"id\": \"bytes\"}, \"golang.heap.system.stack\": {\"id\": \"bytes\"}, \"@timestamp\": {\"id\": \"date\"}, \"kubernetes.node.runtime.imagefs.available.bytes\": {\"id\": \"bytes\"}, \"ceph.cluster_status.misplace.ratio\": {\"id\": \"percent\"}, \"system.process.cgroup.memory.stats.inactive_anon.bytes\": {\"id\": \"bytes\"}, \"couchbase.cluster.ram.used.by_data.bytes\": {\"id\": \"bytes\"}, \"system.cpu.idle.pct\": {\"id\": \"percent\"}, \"kubernetes.node.memory.workingset.bytes\": {\"id\": \"bytes\"}, \"system.cpu.steal.pct\": {\"id\": \"percent\"}, \"system.process.cgroup.memory.stats.inactive_file.bytes\": {\"id\": \"bytes\"}, \"system.process.cgroup.memory.kmem.usage.bytes\": {\"id\": \"bytes\"}, \"elasticsearch.node.stats.jvm.mem.pools.old.peak.bytes\": {\"id\": \"bytes\"}, \"elasticsearch.node.stats.jvm.mem.pools.old.peak_max.bytes\": {\"id\": \"bytes\"}, \"kubernetes.container.memory.rss.bytes\": {\"id\": \"bytes\"}, \"system.process.cgroup.memory.memsw.limit.bytes\": {\"id\": \"bytes\"}, \"haproxy.stat.compressor.bypassed.bytes\": {\"id\": \"bytes\"}, \"kubernetes.node.memory.usage.bytes\": {\"id\": \"bytes\"}, \"couchbase.cluster.ram.quota.total.per_node.bytes\": {\"id\": \"bytes\"}, \"kubernetes.node.memory.available.bytes\": {\"id\": \"bytes\"}, \"haproxy.info.memory.max.bytes\": {\"id\": \"bytes\"}, \"rabbitmq.queue.memory.bytes\": {\"id\": \"bytes\"}, \"ceph.cluster_status.traffic.read_bytes\": {\"id\": \"bytes\"}, \"haproxy.stat.in.bytes\": {\"id\": \"bytes\"}, \"vsphere.virtualmachine.memory.free.guest.bytes\": {\"id\": \"bytes\"}, \"couchbase.bucket.memory.used.bytes\": {\"id\": \"bytes\"}, \"elasticsearch.node.stats.jvm.mem.pools.survivor.used.bytes\": {\"id\": \"bytes\"}, \"system.process.cgroup.memory.kmem_tcp.usage.bytes\": {\"id\": \"bytes\"}, \"golang.heap.allocations.active\": {\"id\": \"bytes\"}, \"system.cpu.steal.norm.pct\": {\"id\": \"percent\"}, \"kubernetes.node.fs.available.bytes\": {\"id\": \"bytes\"}, \"vsphere.datastore.capacity.free.bytes\": {\"id\": \"bytes\"}, \"system.core.iowait.pct\": {\"id\": \"percent\"}, \"system.process.cgroup.memory.stats.hierarchical_memory_limit.bytes\": {\"id\": \"bytes\"}, \"system.cpu.irq.norm.pct\": {\"id\": \"percent\"}, \"vsphere.datastore.capacity.total.bytes\": {\"id\": \"bytes\"}, \"system.memory.used.bytes\": {\"id\": \"bytes\"}, \"system.cpu.total.norm.pct\": {\"id\": \"percent\"}, \"couchbase.cluster.ram.quota.used.value.bytes\": {\"id\": \"bytes\"}, \"system.diskio.read.bytes\": {\"id\": \"bytes\"}, \"system.memory.swap.used.bytes\": {\"id\": \"bytes\"}, \"vsphere.datastore.capacity.used.pct\": {\"id\": \"percent\"}, \"vsphere.virtualmachine.memory.used.host.bytes\": {\"id\": \"bytes\"}, \"kubernetes.container.memory.limit.bytes\": {\"id\": \"bytes\"}, \"docker.memory.limit\": {\"id\": \"bytes\"}, \"kubernetes.container.memory.available.bytes\": {\"id\": \"bytes\"}, \"mongodb.dbstats.storage_size.bytes\": {\"id\": \"bytes\"}, \"couchbase.bucket.disk.used.bytes\": {\"id\": \"bytes\"}, \"system.cpu.softirq.norm.pct\": {\"id\": \"percent\"}, \"ceph.cluster_status.pg.total_bytes\": {\"id\": \"bytes\"}, \"rabbitmq.node.mem.limit.bytes\": {\"id\": \"bytes\"}, \"couchbase.cluster.hdd.total.bytes\": {\"id\": \"bytes\"}, \"docker.memory.rss.total\": {\"id\": \"bytes\"}, \"couchbase.cluster.ram.quota.total.value.bytes\": {\"id\": \"bytes\"}, \"mongodb.status.network.out.bytes\": {\"id\": \"bytes\"}, \"elasticsearch.node.stats.jvm.mem.pools.survivor.peak.bytes\": {\"id\": \"bytes\"}, \"haproxy.stat.compressor.in.bytes\": {\"id\": \"bytes\"}, \"elasticsearch.node.stats.jvm.mem.pools.old.max.bytes\": {\"id\": \"bytes\"}, \"couchbase.cluster.ram.used.value.bytes\": {\"id\": \"bytes\"}, \"system.cpu.user.pct\": {\"id\": \"percent\"}, \"golang.heap.system.released\": {\"id\": \"bytes\"}, \"ceph.cluster_disk.total.bytes\": {\"id\": \"bytes\"}, \"kubernetes.node.runtime.imagefs.capacity.bytes\": {\"id\": \"bytes\"}, \"system.uptime.duration.ms\": {\"params\": {\"inputFormat\": \"milliseconds\"}, \"id\": \"duration\"}, \"kubernetes.node.memory.capacity.bytes\": {\"id\": \"bytes\"}, \"rabbitmq.node.disk.free.limit.bytes\": {\"id\": \"bytes\"}, \"system.core.system.pct\": {\"id\": \"percent\"}, \"couchbase.cluster.hdd.used.by_data.bytes\": {\"id\": \"bytes\"}, \"system.cpu.iowait.norm.pct\": {\"id\": \"percent\"}, \"system.cpu.system.pct\": {\"id\": \"percent\"}, \"docker.network.in.bytes\": {\"id\": \"bytes\"}, \"system.process.cgroup.memory.stats.hierarchical_memsw_limit.bytes\": {\"id\": \"bytes\"}, \"system.filesystem.free\": {\"id\": \"bytes\"}, \"system.memory.swap.used.pct\": {\"id\": \"percent\"}, \"ceph.monitor_health.store_stats.total.bytes\": {\"id\": \"bytes\"}, \"system.core.irq.pct\": {\"id\": \"percent\"}, \"system.cpu.softirq.pct\": {\"id\": \"percent\"}, \"haproxy.stat.compressor.response.bytes\": {\"id\": \"bytes\"}, \"system.cpu.idle.norm.pct\": {\"id\": \"percent\"}, \"system.process.memory.rss.pct\": {\"id\": \"percent\"}, \"kubernetes.system.memory.workingset.bytes\": {\"id\": \"bytes\"}, \"kubernetes.container.memory.request.bytes\": {\"id\": \"bytes\"}, \"couchbase.cluster.hdd.used.value.bytes\": {\"id\": \"bytes\"}, \"kubernetes.system.memory.usage.bytes\": {\"id\": \"bytes\"}, \"ceph.monitor_health.store_stats.log.bytes\": {\"id\": \"bytes\"}, \"kubernetes.volume.fs.capacity.bytes\": {\"id\": \"bytes\"}, \"vsphere.virtualmachine.memory.used.guest.bytes\": {\"id\": \"bytes\"}, \"couchbase.node.couch.docs.data_size.bytes\": {\"id\": \"bytes\"}, \"mongodb.status.wired_tiger.log.size.bytes\": {\"id\": \"bytes\"}, \"rabbitmq.node.gc.reclaimed.bytes\": {\"id\": \"bytes\"}, \"system.process.cgroup.memory.mem.usage.bytes\": {\"id\": \"bytes\"}, \"elasticsearch.node.stats.jvm.mem.pools.survivor.max.bytes\": {\"id\": \"bytes\"}, \"couchbase.cluster.ram.quota.used.per_node.bytes\": {\"id\": \"bytes\"}, \"golang.heap.allocations.allocated\": {\"id\": \"bytes\"}, \"system.core.steal.pct\": {\"id\": \"percent\"}, \"golang.heap.gc.next_gc_limit\": {\"id\": \"bytes\"}, \"rabbitmq.queue.consumers.utilisation.pct\": {\"id\": \"percentage\"}, \"docker.cpu.total.pct\": {\"id\": \"percentage\"}, \"docker.memory.usage.pct\": {\"id\": \"percentage\"}, \"mysql.status.bytes.received\": {\"id\": \"bytes\"}, \"system.process.cgroup.memory.kmem_tcp.usage.max.bytes\": {\"id\": \"bytes\"}, \"redis.info.memory.used.peak\": {\"id\": \"bytes\"}, \"aerospike.namespace.memory.free.pct\": {\"id\": \"percent\"}, \"kubernetes.volume.fs.used.bytes\": {\"id\": \"bytes\"}, \"system.cpu.iowait.pct\": {\"id\": \"percent\"}, \"couchbase.bucket.data.used.bytes\": {\"id\": \"bytes\"}, \"mongodb.status.wired_tiger.cache.dirty.bytes\": {\"id\": \"bytes\"}, \"system.process.cgroup.memory.stats.rss_huge.bytes\": {\"id\": \"bytes\"}, \"system.process.cgroup.memory.memsw.usage.bytes\": {\"id\": \"bytes\"}, \"kubernetes.pod.network.rx.bytes\": {\"id\": \"bytes\"}, \"system.process.cgroup.blkio.total.bytes\": {\"id\": \"bytes\"}, \"rabbitmq.node.disk.free.bytes\": {\"id\": \"bytes\"}, \"system.filesystem.used.bytes\": {\"id\": \"bytes\"}, \"kubernetes.node.network.rx.bytes\": {\"id\": \"bytes\"}, \"system.diskio.iostat.read.per_sec.bytes\": {\"id\": \"bytes\"}, \"system.process.cgroup.memory.mem.usage.max.bytes\": {\"id\": \"bytes\"}, \"elasticsearch.node.stats.jvm.mem.pools.young.peak_max.bytes\": {\"id\": \"bytes\"}, \"system.process.cgroup.memory.memsw.usage.max.bytes\": {\"id\": \"bytes\"}, \"system.diskio.write.bytes\": {\"id\": \"bytes\"}, \"ceph.cluster_status.pg.used_bytes\": {\"id\": \"bytes\"}, \"haproxy.info.idle.pct\": {\"id\": \"percent\"}, \"system.process.memory.size\": {\"id\": \"bytes\"}, \"kubernetes.system.memory.rss.bytes\": {\"id\": \"bytes\"}, \"system.process.cgroup.memory.kmem_tcp.limit.bytes\": {\"id\": \"bytes\"}, \"golang.heap.allocations.idle\": {\"id\": \"bytes\"}, \"docker.network.out.bytes\": {\"id\": \"bytes\"}, \"mongodb.status.extra_info.heap_usage.bytes\": {\"id\": \"bytes\"}, \"system.cpu.total.pct\": {\"id\": \"percent\"}, \"system.process.cgroup.memory.stats.swap.bytes\": {\"id\": \"bytes\"}, \"golang.heap.system.total\": {\"id\": \"bytes\"}, \"system.fsstat.total_size.free\": {\"id\": \"bytes\"}, \"elasticsearch.node.stats.jvm.mem.pools.young.max.bytes\": {\"id\": \"bytes\"}, \"docker.memory.usage.total\": {\"id\": \"bytes\"}, \"mongodb.dbstats.avg_obj_size.bytes\": {\"id\": \"bytes\"}, \"couchbase.cluster.ram.total.bytes\": {\"id\": \"bytes\"}, \"kubernetes.container.logs.available.bytes\": {\"id\": \"bytes\"}, \"system.diskio.iostat.write.per_sec.bytes\": {\"id\": \"bytes\"}, \"system.filesystem.available\": {\"id\": \"bytes\"}, \"aerospike.namespace.memory.used.data.bytes\": {\"id\": \"bytes\"}, \"system.process.cgroup.memory.stats.unevictable.bytes\": {\"id\": \"bytes\"}, \"kubernetes.node.network.tx.bytes\": {\"id\": \"bytes\"}, \"ceph.pool_disk.stats.used.bytes\": {\"id\": \"bytes\"}, \"haproxy.stat.out.bytes\": {\"id\": \"bytes\"}, \"system.memory.actual.free\": {\"id\": \"bytes\"}, \"system.cpu.user.norm.pct\": {\"id\": \"percent\"}, \"system.process.memory.rss.bytes\": {\"id\": \"bytes\"}, \"ceph.pool_disk.stats.available.bytes\": {\"id\": \"bytes\"}, \"system.fsstat.total_size.used\": {\"id\": \"bytes\"}, \"system.process.cgroup.memory.mem.limit.bytes\": {\"id\": \"bytes\"}, \"docker.cpu.kernel.pct\": {\"id\": \"percentage\"}, \"system.memory.swap.total\": {\"id\": \"bytes\"}, \"ceph.cluster_status.traffic.write_bytes\": {\"id\": \"bytes\"}, \"rabbitmq.node.io.write.bytes\": {\"id\": \"bytes\"}, \"system.memory.actual.used.pct\": {\"id\": \"percent\"}, \"mongodb.dbstats.data_size.bytes\": {\"id\": \"bytes\"}, \"couchbase.bucket.quota.use.pct\": {\"id\": \"percent\"}, \"haproxy.info.ssl.frontend.session_reuse.pct\": {\"id\": \"percent\"}, \"mysql.status.bytes.sent\": {\"id\": \"bytes\"}, \"docker.memory.rss.pct\": {\"id\": \"percentage\"}, \"aerospike.namespace.memory.used.total.bytes\": {\"id\": \"bytes\"}, \"ceph.cluster_status.pg.avail_bytes\": {\"id\": \"bytes\"}, \"redis.info.memory.used.value\": {\"id\": \"bytes Used memory.\"}, \"system.core.softirq.pct\": {\"id\": \"percent\"}, \"redis.info.memory.used.rss\": {\"id\": \"bytes\"}, \"kubernetes.container.rootfs.available.bytes\": {\"id\": \"bytes\"}, \"docker.cpu.system.pct\": {\"id\": \"percentage\"}, \"elasticsearch.node.stats.jvm.mem.pools.young.peak.bytes\": {\"id\": \"bytes\"}, \"elasticsearch.node.stats.jvm.mem.pools.survivor.peak_max.bytes\": {\"id\": \"bytes\"}, \"aerospike.namespace.device.total.bytes\": {\"id\": \"bytes\"}, \"docker.memory.usage.max\": {\"id\": \"bytes\"}, \"mongodb.dbstats.index_size.bytes\": {\"id\": \"bytes\"}, \"golang.heap.system.obtained\": {\"id\": \"bytes\"}}", + "timeFieldName": "@timestamp", "title": "metricbeat-*" - }, + }, "version": "1", - "type": "index-pattern", + "type": "index-pattern", "id": "metricbeat-*" } ] From 0a858b5060ab0c71eeddde3c881ae8fa3aadb2ce Mon Sep 17 00:00:00 2001 From: Alex K <8418476+fearful-symmetry@users.noreply.github.com> Date: Tue, 5 Mar 2019 10:20:54 -0600 Subject: [PATCH 135/332] [Metricbeat] Migrate heap to reporterV2 interface (#11074) Migrate golang/heap to reporterV2 interface --- metricbeat/module/golang/heap/_meta/data.json | 36 +++--- metricbeat/module/golang/heap/data.go | 110 ++++++++++++++++++ metricbeat/module/golang/heap/heap.go | 97 +++------------ .../golang/heap/heap_integration_test.go | 23 ++-- 4 files changed, 154 insertions(+), 112 deletions(-) create mode 100644 metricbeat/module/golang/heap/data.go diff --git a/metricbeat/module/golang/heap/_meta/data.json b/metricbeat/module/golang/heap/_meta/data.json index c2e22d0b272..74e34f4ef33 100644 --- a/metricbeat/module/golang/heap/_meta/data.json +++ b/metricbeat/module/golang/heap/_meta/data.json @@ -12,40 +12,40 @@ "golang": { "heap": { "allocations": { - "active": 16670720, - "allocated": 14115776, - "frees": 2830899, - "idle": 6496256, - "mallocs": 2921961, - "objects": 91062, - "total": 458114744 + "active": 52076544, + "allocated": 50143344, + "frees": 23897036, + "idle": 352256, + "mallocs": 24213008, + "objects": 315972, + "total": 3857953864 }, "cmdline": "metricbeat --httpprof :6060 -e", "gc": { - "cpu_fraction": 0.0000798538053427137, - "next_gc_limit": 22896432, + "cpu_fraction": 0.00003865910349307519, + "next_gc_limit": 52492048, "pause": { "avg": { - "ns": 755847 + "ns": 466218 }, - "count": 77, + "count": 237, "max": { - "ns": 7537934 + "ns": 4432500 }, "sum": { - "ns": 58200246 + "ns": 110493700 } }, - "total_count": 77, + "total_count": 237, "total_pause": { - "ns": 58200246 + "ns": 110493700 } }, "system": { - "obtained": 23166976, + "obtained": 52428800, "released": 0, - "stack": 950272, - "total": 27908344 + "stack": 983040, + "total": 59263224 } } }, diff --git a/metricbeat/module/golang/heap/data.go b/metricbeat/module/golang/heap/data.go new file mode 100644 index 00000000000..8e6134d4879 --- /dev/null +++ b/metricbeat/module/golang/heap/data.go @@ -0,0 +1,110 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package heap + +import ( + "runtime" + + "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/metricbeat/module/golang" +) + +//Stats contains the memory info that we get from the fetch request +type Stats struct { + MemStats runtime.MemStats + Cmdline []interface{} +} + +func eventMapping(stats Stats, m *MetricSet) common.MapStr { + var event = common.MapStr{ + "cmdline": golang.GetCmdStr(stats.Cmdline), + } + //currentNumGC + ms := &stats.MemStats + + // add heap summary + event["allocations"] = common.MapStr{ + "mallocs": ms.Mallocs, + "frees": ms.Frees, + "objects": ms.HeapObjects, + + // byte counters + "total": ms.TotalAlloc, + "allocated": ms.HeapAlloc, + "idle": ms.HeapIdle, + "active": ms.HeapInuse, + } + + event["system"] = common.MapStr{ + "total": ms.Sys, + "obtained": ms.HeapSys, + "stack": ms.StackSys, + "released": ms.HeapReleased, + } + + // garbage collector summary + var duration, maxDuration, avgDuration, count uint64 + // collect last gc run stats + if m.lastNumGC < ms.NumGC { + delta := ms.NumGC - m.lastNumGC + start := m.lastNumGC + if delta > 256 { + logger.Debug("golang", "Missing %v gc cycles", delta-256) + start = ms.NumGC - 256 + delta = 256 + } + + end := start + delta + for i := start; i < end; i++ { + idx := i % 256 + d := ms.PauseNs[idx] + count++ + duration += d + if d > maxDuration { + maxDuration = d + } + } + + avgDuration = duration / count + m.lastNumGC = ms.NumGC + } + + event["gc"] = common.MapStr{ + "next_gc_limit": ms.NextGC, + "total_count": ms.NumGC, + "cpu_fraction": ms.GCCPUFraction, + "total_pause": common.MapStr{ + "ns": ms.PauseTotalNs, + }, + "pause": common.MapStr{ + "count": count, + "sum": common.MapStr{ + "ns": duration, + }, + "avg": common.MapStr{ + "ns": avgDuration, + }, + "max": common.MapStr{ + "ns": maxDuration, + }, + }, + } + + return event + +} diff --git a/metricbeat/module/golang/heap/heap.go b/metricbeat/module/golang/heap/heap.go index ad5b4c9a285..2aa848c3398 100644 --- a/metricbeat/module/golang/heap/heap.go +++ b/metricbeat/module/golang/heap/heap.go @@ -19,16 +19,15 @@ package heap import ( "encoding/json" - "runtime" - "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" - "github.com/elastic/beats/metricbeat/module/golang" ) +var logger = logp.NewLogger("golang.heap") + const ( defaultScheme = "http" defaultPath = "/debug/vars" @@ -77,95 +76,25 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // Fetch methods implements the data gathering and data conversion to the right format // It returns the event which is then forward to the output. In case of an error, a // descriptive error must be returned. -func (m *MetricSet) Fetch() (common.MapStr, error) { +func (m *MetricSet) Fetch(reporter mb.ReporterV2) { data, err := m.http.FetchContent() if err != nil { - return nil, err + logger.Error(err) + reporter.Error(err) + return } - stats := struct { - MemStats runtime.MemStats - Cmdline []interface{} - }{} + var stats Stats err = json.Unmarshal(data, &stats) if err != nil { - return nil, err - } - - var event = common.MapStr{ - "cmdline": golang.GetCmdStr(stats.Cmdline), - } - - ms := &stats.MemStats - - // add heap summary - event["allocations"] = common.MapStr{ - "mallocs": ms.Mallocs, - "frees": ms.Frees, - "objects": ms.HeapObjects, - - // byte counters - "total": ms.TotalAlloc, - "allocated": ms.HeapAlloc, - "idle": ms.HeapIdle, - "active": ms.HeapInuse, - } - - event["system"] = common.MapStr{ - "total": ms.Sys, - "obtained": ms.HeapSys, - "stack": ms.StackSys, - "released": ms.HeapReleased, - } - - // garbage collector summary - var duration, maxDuration, avgDuration, count uint64 - // collect last gc run stats - if m.lastNumGC < ms.NumGC { - delta := ms.NumGC - m.lastNumGC - start := m.lastNumGC - if delta > 256 { - logp.Debug("golang", "Missing %v gc cycles", delta-256) - start = ms.NumGC - 256 - delta = 256 - } - - end := start + delta - for i := start; i < end; i++ { - idx := i % 256 - d := ms.PauseNs[idx] - count++ - duration += d - if d > maxDuration { - maxDuration = d - } - } - - avgDuration = duration / count - m.lastNumGC = ms.NumGC + logger.Error(err) + reporter.Error(err) + return } - event["gc"] = common.MapStr{ - "next_gc_limit": ms.NextGC, - "total_count": ms.NumGC, - "cpu_fraction": ms.GCCPUFraction, - "total_pause": common.MapStr{ - "ns": ms.PauseTotalNs, - }, - "pause": common.MapStr{ - "count": count, - "sum": common.MapStr{ - "ns": duration, - }, - "avg": common.MapStr{ - "ns": avgDuration, - }, - "max": common.MapStr{ - "ns": maxDuration, - }, - }, - } + reporter.Event(mb.Event{ + MetricSetFields: eventMapping(stats, m), + }) - return event, nil } diff --git a/metricbeat/module/golang/heap/heap_integration_test.go b/metricbeat/module/golang/heap/heap_integration_test.go index 8135fd30bbf..7ec2a5e6f2c 100644 --- a/metricbeat/module/golang/heap/heap_integration_test.go +++ b/metricbeat/module/golang/heap/heap_integration_test.go @@ -32,24 +32,27 @@ import ( func TestData(t *testing.T) { compose.EnsureUp(t, "golang") - f := mbtest.NewEventFetcher(t, getConfig()) - err := mbtest.WriteEvent(f, t) - if err != nil { - t.Fatal("write", err) + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + + err := mbtest.WriteEventsReporterV2(f, t, "") + if !assert.NoError(t, err) { + t.FailNow() } } func TestFetch(t *testing.T) { compose.EnsureUp(t, "golang") - f := mbtest.NewEventFetcher(t, getConfig()) - event, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } - assert.NotNil(t, event) - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) + assert.NotEmpty(t, events) + + t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), events[0]) } func getConfig() map[string]interface{} { From 527fbd4719a66c79ac306f4b14139375e4d345ee Mon Sep 17 00:00:00 2001 From: Silvia Mitter Date: Tue, 5 Mar 2019 17:33:50 +0100 Subject: [PATCH 136/332] Allow ConcatFields for nodes of type object (#10959) Checks if given field conflicts with current fields. Fixes an error where `append_fields` could not add valid field. --- CHANGELOG-developer.next.asciidoc | 1 + libbeat/common/field.go | 49 +++++++- libbeat/common/field_test.go | 184 +++++++++++++++++++++++++++--- 3 files changed, 216 insertions(+), 18 deletions(-) diff --git a/CHANGELOG-developer.next.asciidoc b/CHANGELOG-developer.next.asciidoc index 5edff8d9cde..f851482703a 100644 --- a/CHANGELOG-developer.next.asciidoc +++ b/CHANGELOG-developer.next.asciidoc @@ -24,6 +24,7 @@ The list below covers the major changes between 7.0.0-beta1 and master only. ==== Bugfixes - Align default index between elasticsearch and logstash and kafka output. {pull}10841[10841] +- Fix duplication check for `append_fields` option. {pull}10959[10959] ==== Added diff --git a/libbeat/common/field.go b/libbeat/common/field.go index 1686d1c3a78..e6f14a50ba5 100644 --- a/libbeat/common/field.go +++ b/libbeat/common/field.go @@ -21,6 +21,7 @@ import ( "fmt" "strings" + "github.com/joeshaw/multierror" "github.com/pkg/errors" "github.com/elastic/go-ucfg/yaml" @@ -303,13 +304,51 @@ func ConcatFields(a, b Fields) (Fields, error) { } // check for duplicates - for _, k := range b.GetKeys() { - if a.HasNode(k) { - return nil, fmt.Errorf("concat fails because key '%s' exists is duplicated", k) - } + if err := a.conflicts(b); err != nil { + return nil, err } - // all fine, let's concat a+b into new array + // concat a+b into new array fields := make(Fields, 0, len(a)+len(b)) return append(append(fields, a...), b...), nil } + +func (f Fields) conflicts(fields Fields) error { + var errs multierror.Errors + for _, key := range fields.GetKeys() { + keys := strings.Split(key, ".") + if err := f.canConcat(key, keys); err != nil { + errs = append(errs, err) + } + } + return errs.Err() +} + +// canConcat checks if the given string can be concatenated to the existing fields f +// a key cannot be concatenated if +// - f has a node with name key +// - f has a leaf with key's parent name and the leaf's type is not `object` +func (f Fields) canConcat(k string, keys []string) error { + if len(keys) == 0 { + return nil + } + key := keys[0] + keys = keys[1:] + for _, field := range f { + if field.Name != key { + continue + } + // last key to compare + if len(keys) == 0 { + return errors.Errorf("fields contain key <%s>", k) + } + // last field to compare, only valid if it is of type object + if len(field.Fields) == 0 { + if field.Type != "object" { + return errors.Errorf("fields contain non object node conflicting with key <%s>", k) + } + } + return field.Fields.canConcat(k, keys) + } + return nil +} diff --git a/libbeat/common/field_test.go b/libbeat/common/field_test.go index 3c9514bf99a..31d792cc98b 100644 --- a/libbeat/common/field_test.go +++ b/libbeat/common/field_test.go @@ -18,6 +18,7 @@ package common import ( + "strings" "testing" "github.com/stretchr/testify/require" @@ -27,6 +28,58 @@ import ( "github.com/elastic/go-ucfg/yaml" ) +func TestFieldsHasNode(t *testing.T) { + tests := map[string]struct { + node string + fields Fields + hasNode bool + }{ + "empty fields": { + node: "a.b", + fields: Fields{}, + hasNode: false, + }, + "no node": { + node: "", + fields: Fields{Field{Name: "a"}}, + hasNode: false, + }, + "key not in fields, but node in fields": { + node: "a.b.c", + fields: Fields{ + Field{Name: "a", Fields: Fields{Field{Name: "b"}}}, + }, + hasNode: true, + }, + "last node in fields": { + node: "a.b.c", + fields: Fields{ + Field{Name: "a", Fields: Fields{ + Field{Name: "b", Fields: Fields{ + Field{Name: "c"}, + }}}}, + }, + hasNode: true, + }, + "node in fields": { + node: "a.b", + fields: Fields{ + Field{Name: "a", Fields: Fields{ + Field{Name: "b", Fields: Fields{ + Field{Name: "c"}, + }}}}, + }, + hasNode: true, + }, + } + + for name, test := range tests { + t.Run(name, func(t *testing.T) { + assert.Equal(t, test.hasNode, test.fields.HasNode(test.node)) + }) + } +} + func TestFieldsHasKey(t *testing.T) { tests := map[string]struct { key string @@ -300,7 +353,7 @@ func TestFieldConcat(t *testing.T) { tests := map[string]struct { a, b Fields want Fields - fail bool + err string }{ "empty lists": {}, "first list only": { @@ -317,9 +370,9 @@ func TestFieldConcat(t *testing.T) { want: Fields{{Name: "a"}, {Name: "b"}}, }, "duplicates fail": { - a: Fields{{Name: "a"}}, - b: Fields{{Name: "a"}}, - fail: true, + a: Fields{{Name: "a"}}, + b: Fields{{Name: "a"}}, + err: "1 error: fields contain key ", }, "nested with common prefix": { a: Fields{{ @@ -335,8 +388,23 @@ func TestFieldConcat(t *testing.T) { {Name: "a", Fields: Fields{{Name: "c"}}}, }, }, + "deep nested with common prefix": { + a: Fields{{ + Name: "a", + Fields: Fields{{Name: "b"}}, + }}, + b: Fields{{ + Name: "a", + Fields: Fields{{Name: "c", Fields: Fields{ + {Name: "d"}, + }}}, + }}, + want: Fields{ + {Name: "a", Fields: Fields{{Name: "b"}}}, + {Name: "a", Fields: Fields{{Name: "c", Fields: Fields{{Name: "d"}}}}}, + }, + }, "nested duplicates fail": { - fail: true, a: Fields{{ Name: "a", Fields: Fields{{Name: "b"}, {Name: "c"}}, @@ -345,35 +413,125 @@ func TestFieldConcat(t *testing.T) { Name: "a", Fields: Fields{{Name: "c"}}, }}, + err: "1 error: fields contain key ", }, "a is prefix of b": { - fail: true, - a: Fields{{Name: "a"}}, + a: Fields{{Name: "a"}}, + b: Fields{{ + Name: "a", + Fields: Fields{{Name: "b"}}, + }}, + err: "1 error: fields contain non object node conflicting with key ", + }, + "a is object and prefix of b": { + a: Fields{{Name: "a", Type: "object"}}, b: Fields{{ Name: "a", Fields: Fields{{Name: "b"}}, }}, + want: Fields{ + {Name: "a", Type: "object"}, + {Name: "a", Fields: Fields{{Name: "b"}}}, + }, }, "b is prefix of a": { - fail: true, a: Fields{{ Name: "a", Fields: Fields{{Name: "b"}}, }}, - b: Fields{{Name: "a"}}, + b: Fields{{Name: "a"}}, + err: "1 error: fields contain key ", + }, + "multiple errors": { + a: Fields{ + {Name: "a", Fields: Fields{{Name: "b"}}}, + {Name: "foo", Fields: Fields{{Name: "b"}}}, + {Name: "bar", Type: "object"}, + }, + b: Fields{ + {Name: "bar", Fields: Fields{{Name: "foo"}}}, + {Name: "a"}, + {Name: "foo", Fields: Fields{{Name: "b", Fields: Fields{{Name: "c"}}}}}, + }, + + err: "2 errors: fields contain key ; fields contain non object node conflicting with key ", }, } for name, test := range tests { t.Run(name, func(t *testing.T) { fs, err := ConcatFields(test.a, test.b) - if test.fail { - assert.Error(t, err) + if test.err == "" { + assert.NoError(t, err) + assert.Equal(t, test.want, fs) return } + if assert.Error(t, err) { + assert.Equal(t, test.err, err.Error()) + } + }) + } +} - assert.NoError(t, err) - assert.Equal(t, test.want, fs) +func TestFieldsCanConcat(t *testing.T) { + tests := map[string]struct { + key string + fields Fields + err string + }{ + "empty fields": { + key: "a.b", + fields: Fields{}, + }, + "no key": { + key: "", + fields: Fields{Field{Name: "a"}}, + }, + "key not in fields, but parent node in fields": { + key: "a.b.c", + fields: Fields{ + Field{Name: "a", Fields: Fields{Field{Name: "b"}}}, + }, + err: "fields contain non object node conflicting with key ", + }, + "key not in fields, but parent node in fields and of type object": { + key: "a.b.c", + fields: Fields{ + Field{Name: "a", Fields: Fields{Field{Name: "b", Type: "object"}}}, + }, + }, + "last node in fields": { + key: "a.b.c", + fields: Fields{ + Field{Name: "a", Fields: Fields{ + Field{Name: "b", Fields: Fields{ + Field{Name: "c"}, + }}}}, + }, + err: "fields contain key ", + }, + "node in fields": { + key: "a.b", + fields: Fields{ + Field{Name: "a", Fields: Fields{ + Field{Name: "b", Fields: Fields{ + Field{Name: "c"}, + }}}}, + }, + err: "fields contain key ", + }, + } + + for name, test := range tests { + t.Run(name, func(t *testing.T) { + err := test.fields.canConcat(test.key, strings.Split(test.key, ".")) + if test.err == "" { + assert.Nil(t, err) + return + } + if assert.Error(t, err) { + assert.Equal(t, test.err, err.Error()) + } }) } } From c313482c7a8f8f5cf784c3b0d27f8ca51938960c Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Tue, 5 Mar 2019 11:12:51 -0600 Subject: [PATCH 137/332] [Uptime] Fix docs for HTTP status checks (#11073) The old docs weren't updated when 0dbb695 was merged. This corrects them, indicating how we handle 4xx and 5xx HTTP codes --- heartbeat/docs/heartbeat-options.asciidoc | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/heartbeat/docs/heartbeat-options.asciidoc b/heartbeat/docs/heartbeat-options.asciidoc index d44bf4e6078..bc8fd93b1c7 100644 --- a/heartbeat/docs/heartbeat-options.asciidoc +++ b/heartbeat/docs/heartbeat-options.asciidoc @@ -455,8 +455,7 @@ Under `check.request`, specify these options: Under `check.response`, specify these options: -*`status`*:: The expected status code. If this setting is not configured or -it's set to 0, any status code other than 404 is accepted. +*`status`*:: The expected status code. 4xx and 5xx codes are considered `down` by default. Other codes are considered `up`. *`headers`*:: The required response headers. *`body`*:: A list of regular expressions to match the the body output. Only a single expression needs to match. *`json`*:: A list of <> expressions executed against the body when parsed as JSON. From b6c05a2f9df75f5e245d29781921bf5cd24b7205 Mon Sep 17 00:00:00 2001 From: Adrian Serrano Date: Tue, 5 Mar 2019 18:36:47 +0100 Subject: [PATCH 138/332] Update changelog for #10950 (#11018) Bug fix was missing an entry in CHANGELOG.next --- CHANGELOG.next.asciidoc | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 3076470cefb..e8286ad9958 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -160,6 +160,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Fix registry entries not being cleaned due to race conditions. {pull}10747[10747] - Improve detection of file deletion on Windows. {pull}10747[10747] - Fix errors in filebeat Zeek dashboard and README files. Add notice.log support. {pull}10916[10916] +- Fix a bug when converting NetFlow fields to snake_case. {pull}10950[10950] *Heartbeat* From fbc2ddaacf87a818a0d24ad690c086cfc0348a0f Mon Sep 17 00:00:00 2001 From: Pablo Mercado Date: Tue, 5 Mar 2019 19:24:31 +0100 Subject: [PATCH 139/332] Beats docs - Contributing improvements (#11072) * fix pr review link * recommend same Go version for dev, test and release. Fixes #11069 * recommend cloning by SSH rather than HTTPS * Revert "recommend cloning by SSH rather than HTTPS" This reverts commit a435586112edba840b096af918720ce47c429b22. --- docs/devguide/contributing.asciidoc | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/docs/devguide/contributing.asciidoc b/docs/devguide/contributing.asciidoc index 23d8c07f3f6..21ca1af6e24 100644 --- a/docs/devguide/contributing.asciidoc +++ b/docs/devguide/contributing.asciidoc @@ -25,7 +25,7 @@ You only need to sign the CLA once. . Send a pull request! Push your changes to your fork of the repository and https://help.github.com/articles/using-pull-requests[submit a pull request] using our -. In the pull request, describe what your changes do and mention +<>. In the pull request, describe what your changes do and mention any bugs/issues related to the pull request. Please also add a changelog entry to https://github.com/elastic/beats/blob/master/CHANGELOG.next.asciidoc[CHANGELOG.next.asciidoc]. @@ -44,9 +44,8 @@ Beats]. [[setting-up-dev-environment]] === Setting Up Your Dev Environment -The Beats are Go programs, so install the latest version of -http://golang.org/[Go] if you don't have it already. The current Go version -used for development is Go {go-version}. +The Beats are Go programs, so install the {go-version} version of +http://golang.org/[Go] which is being used for Beats development. The location where you clone is important. Please clone under the source directory of your `GOPATH`. If you don't have `GOPATH` already set, you can From aac95c15629ee348c1ddff4ab51421cba05542cc Mon Sep 17 00:00:00 2001 From: Mario Castro Date: Tue, 5 Mar 2019 23:08:31 +0100 Subject: [PATCH 140/332] Migrate PostgresSQL activity metricset to use ReporterV2 interface (#10828) --- .../postgresql/activity/_meta/data.json | 30 +++++++++++-------- .../module/postgresql/activity/activity.go | 26 ++++++++++------ .../activity/activity_integration_test.go | 24 ++++++++------- 3 files changed, 49 insertions(+), 31 deletions(-) diff --git a/metricbeat/module/postgresql/activity/_meta/data.json b/metricbeat/module/postgresql/activity/_meta/data.json index 25f8f304870..a8b9f7ac513 100644 --- a/metricbeat/module/postgresql/activity/_meta/data.json +++ b/metricbeat/module/postgresql/activity/_meta/data.json @@ -1,39 +1,45 @@ { "@timestamp": "2017-10-12T08:05:34.853Z", - "beat": { + "agent": { "hostname": "host.example.com", "name": "host.example.com" }, + "event": { + "dataset": "postgresql.activity", + "duration": 115000, + "module": "postgresql" + }, "metricset": { - "host": "postgresql:5432", - "module": "postgresql", - "name": "activity", - "rtt": 115 + "name": "activity" }, "postgresql": { "activity": { "application_name": "", - "backend_start": "2017-12-07T07:31:48.923Z", + "backend_start": "2019-03-05T08:38:21.348Z", "client": { - "address": "172.18.0.27", + "address": "172.26.0.1", "hostname": "", - "port": 53398 + "port": 41582 }, "database": { "name": "postgres", "oid": 12379 }, - "pid": 348, + "pid": 347, "query": "SELECT * FROM pg_stat_activity", - "query_start": "2017-12-07T07:31:48.925Z", + "query_start": "2019-03-05T08:38:21.352Z", "state": "active", - "state_change": "2017-12-07T07:31:48.925Z", - "transaction_start": "2017-12-07T07:31:48.925Z", + "state_change": "2019-03-05T08:38:21.352Z", + "transaction_start": "2019-03-05T08:38:21.352Z", "user": { "id": 10, "name": "postgres" }, "waiting": false } + }, + "service": { + "address": "172.26.0.2:5432", + "type": "postgresql" } } \ No newline at end of file diff --git a/metricbeat/module/postgresql/activity/activity.go b/metricbeat/module/postgresql/activity/activity.go index 9aa83830a00..01099299950 100644 --- a/metricbeat/module/postgresql/activity/activity.go +++ b/metricbeat/module/postgresql/activity/activity.go @@ -22,7 +22,7 @@ import ( "github.com/pkg/errors" - "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/module/postgresql" @@ -30,6 +30,8 @@ import ( _ "github.com/lib/pq" ) +var logger = logp.NewLogger("postgresql.activity") + // init registers the MetricSet with the central registry. // The New method will be called after the setup of the module and before starting to fetch data func init() { @@ -51,24 +53,30 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { return &MetricSet{BaseMetricSet: base}, nil } -// Fetch implements the data gathering and data conversion to the right format. -func (m *MetricSet) Fetch() ([]common.MapStr, error) { +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(reporter mb.ReporterV2) { db, err := sql.Open("postgres", m.HostData().URI) if err != nil { - return nil, err + logger.Error(err) + reporter.Error(err) + return } defer db.Close() results, err := postgresql.QueryStats(db, "SELECT * FROM pg_stat_activity") if err != nil { - return nil, errors.Wrap(err, "QueryStats") + err = errors.Wrap(err, "QueryStats") + logger.Error(err) + reporter.Error(err) + return } - events := []common.MapStr{} for _, result := range results { data, _ := schema.Apply(result) - events = append(events, data) + reporter.Event(mb.Event{ + MetricSetFields: data, + }) } - - return events, nil } diff --git a/metricbeat/module/postgresql/activity/activity_integration_test.go b/metricbeat/module/postgresql/activity/activity_integration_test.go index d4467d1b546..daab8378874 100644 --- a/metricbeat/module/postgresql/activity/activity_integration_test.go +++ b/metricbeat/module/postgresql/activity/activity_integration_test.go @@ -33,14 +33,13 @@ import ( func TestFetch(t *testing.T) { compose.EnsureUp(t, "postgresql") - f := mbtest.NewEventsFetcher(t, getConfig()) - events, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } - - assert.True(t, len(events) > 0) - event := events[0] + assert.NotEmpty(t, events) + event := events[0].MetricSetFields t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) @@ -59,10 +58,15 @@ func TestFetch(t *testing.T) { func TestData(t *testing.T) { compose.EnsureUp(t, "postgresql") - f := mbtest.NewEventsFetcher(t, getConfig()) - err := mbtest.WriteEvents(f, t) - if err != nil { + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) + } + assert.NotEmpty(t, events) + + if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { t.Fatal("write", err) } } From af9e048b7b0027d281ca591a4bd4d7c6f8ace5d4 Mon Sep 17 00:00:00 2001 From: Nicolas Ruflin Date: Wed, 6 Mar 2019 10:38:36 +0100 Subject: [PATCH 141/332] [Metricbeat] Add http endpoint tests for php_fpm module (#11088) This change is based on https://github.com/elastic/beats/pull/10648 to migrate to golden files instead of the dynamically generated data files. This adds also support for query params to the testing framework. --- metricbeat/mb/testing/data_test.go | 10 +- .../module/php_fpm/pool/_meta/data.json | 14 +-- .../php_fpm/pool/_meta/testdata/config.yml | 2 + .../php_fpm/pool/_meta/testdata/docs.json | 1 + .../_meta/testdata/docs.json-expected.json | 38 +++++++ .../php_fpm/pool/pool_integration_test.go | 8 -- .../module/php_fpm/process/_meta/data.json | 24 ++--- .../php_fpm/process/_meta/testdata/config.yml | 2 + .../php_fpm/process/_meta/testdata/docs.json | 1 + .../_meta/testdata/docs.json-expected.json | 98 +++++++++++++++++++ .../process/process_integration_test.go | 9 -- 11 files changed, 166 insertions(+), 41 deletions(-) create mode 100644 metricbeat/module/php_fpm/pool/_meta/testdata/config.yml create mode 100644 metricbeat/module/php_fpm/pool/_meta/testdata/docs.json create mode 100644 metricbeat/module/php_fpm/pool/_meta/testdata/docs.json-expected.json create mode 100644 metricbeat/module/php_fpm/process/_meta/testdata/config.yml create mode 100644 metricbeat/module/php_fpm/process/_meta/testdata/docs.json create mode 100644 metricbeat/module/php_fpm/process/_meta/testdata/docs.json-expected.json diff --git a/metricbeat/mb/testing/data_test.go b/metricbeat/mb/testing/data_test.go index bc8cc8ab639..aa0c3c6f18b 100644 --- a/metricbeat/mb/testing/data_test.go +++ b/metricbeat/mb/testing/data_test.go @@ -37,6 +37,8 @@ import ( // TODO: generate include file for these tests automatically moving forward _ "github.com/elastic/beats/metricbeat/module/kibana/status" + _ "github.com/elastic/beats/metricbeat/module/php_fpm/pool" + _ "github.com/elastic/beats/metricbeat/module/php_fpm/process" _ "github.com/elastic/beats/metricbeat/module/rabbitmq/connection" _ "github.com/elastic/beats/metricbeat/module/traefik/health" ) @@ -174,7 +176,13 @@ func server(t *testing.T, path string, url string) *httptest.Server { } server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if r.URL.Path == url { + query := "" + v := r.URL.Query() + if len(v) > 0 { + query += "?" + v.Encode() + } + + if r.URL.Path+query == url { w.Header().Set("Content-Type", "application/json;") w.WriteHeader(200) w.Write(body) diff --git a/metricbeat/module/php_fpm/pool/_meta/data.json b/metricbeat/module/php_fpm/pool/_meta/data.json index 0fa62df1869..06dcb35eb61 100644 --- a/metricbeat/module/php_fpm/pool/_meta/data.json +++ b/metricbeat/module/php_fpm/pool/_meta/data.json @@ -1,9 +1,5 @@ { - "@timestamp": "2017-10-12T08:05:34.853Z", - "agent": { - "hostname": "host.example.com", - "name": "host.example.com" - }, + "@timestamp": "2019-03-01T08:05:34.853Z", "event": { "dataset": "php_fpm.pool", "duration": 115000, @@ -15,7 +11,7 @@ "php_fpm": { "pool": { "connections": { - "accepted": 10, + "accepted": 18, "listen_queue_len": 0, "max_listen_queue": 0, "queued": 0 @@ -30,12 +26,12 @@ "total": 2 }, "slow_requests": 0, - "start_since": 600, - "start_time": 1548749474 + "start_since": 3589, + "start_time": 1551792028 } }, "service": { - "address": "127.0.0.1:81", + "address": "127.0.0.1:55555", "type": "php_fpm" } } \ No newline at end of file diff --git a/metricbeat/module/php_fpm/pool/_meta/testdata/config.yml b/metricbeat/module/php_fpm/pool/_meta/testdata/config.yml new file mode 100644 index 00000000000..7ff4a86bf67 --- /dev/null +++ b/metricbeat/module/php_fpm/pool/_meta/testdata/config.yml @@ -0,0 +1,2 @@ +type: http +url: "/status?json=" diff --git a/metricbeat/module/php_fpm/pool/_meta/testdata/docs.json b/metricbeat/module/php_fpm/pool/_meta/testdata/docs.json new file mode 100644 index 00000000000..34495c80aa1 --- /dev/null +++ b/metricbeat/module/php_fpm/pool/_meta/testdata/docs.json @@ -0,0 +1 @@ +{"pool":"www","process manager":"dynamic","start time":1551792028,"start since":3589,"accepted conn":18,"listen queue":0,"max listen queue":0,"listen queue len":0,"idle processes":1,"active processes":1,"total processes":2,"max active processes":1,"max children reached":0,"slow requests":0} diff --git a/metricbeat/module/php_fpm/pool/_meta/testdata/docs.json-expected.json b/metricbeat/module/php_fpm/pool/_meta/testdata/docs.json-expected.json new file mode 100644 index 00000000000..9bd02013980 --- /dev/null +++ b/metricbeat/module/php_fpm/pool/_meta/testdata/docs.json-expected.json @@ -0,0 +1,38 @@ +[ + { + "event": { + "dataset": "php_fpm.pool", + "duration": 115000, + "module": "php_fpm" + }, + "metricset": { + "name": "pool" + }, + "php_fpm": { + "pool": { + "connections": { + "accepted": 18, + "listen_queue_len": 0, + "max_listen_queue": 0, + "queued": 0 + }, + "name": "www", + "process_manager": "dynamic", + "processes": { + "active": 1, + "idle": 1, + "max_active": 1, + "max_children_reached": 0, + "total": 2 + }, + "slow_requests": 0, + "start_since": 3589, + "start_time": 1551792028 + } + }, + "service": { + "address": "127.0.0.1:55555", + "type": "php_fpm" + } + } +] \ No newline at end of file diff --git a/metricbeat/module/php_fpm/pool/pool_integration_test.go b/metricbeat/module/php_fpm/pool/pool_integration_test.go index 0fc2e43e10d..9ace6ed2391 100644 --- a/metricbeat/module/php_fpm/pool/pool_integration_test.go +++ b/metricbeat/module/php_fpm/pool/pool_integration_test.go @@ -44,14 +44,6 @@ func TestFetch(t *testing.T) { events[0].BeatEvent("haproxy", "info").Fields.StringToPrint()) } -func TestData(t *testing.T) { - compose.EnsureUp(t, "phpfpm") - f := mbtest.NewReportingMetricSetV2(t, getConfig()) - err := mbtest.WriteEventsReporterV2(f, t, "") - if err != nil { - t.Fatal("write", err) - } -} func getConfig() map[string]interface{} { return map[string]interface{}{ diff --git a/metricbeat/module/php_fpm/process/_meta/data.json b/metricbeat/module/php_fpm/process/_meta/data.json index 612fa24f87f..ff5a2cf3589 100644 --- a/metricbeat/module/php_fpm/process/_meta/data.json +++ b/metricbeat/module/php_fpm/process/_meta/data.json @@ -1,9 +1,5 @@ { - "@timestamp": "2017-10-12T08:05:34.853Z", - "agent": { - "hostname": "host.example.com", - "name": "host.example.com" - }, + "@timestamp": "2019-03-01T08:05:34.853Z", "event": { "dataset": "php_fpm.process", "duration": 115000, @@ -28,24 +24,24 @@ }, "process": { "last_request_cpu": 0, - "last_request_memory": 2097152, - "request_duration": 204, - "requests": 6, + "last_request_memory": 0, + "request_duration": 135, + "requests": 9, "script": "-", - "start_since": 128, - "start_time": 1548769887, - "state": "Idle" + "start_since": 3471, + "start_time": 1551792028, + "state": "Running" } }, "process": { - "pid": 17 + "pid": 24 }, "service": { - "address": "127.0.0.1:81", + "address": "127.0.0.1:55555", "type": "php_fpm" }, "url": { - "original": "/status?full=\u0026json=" + "original": "/status?full\u0026json" }, "user": { "name": "-" diff --git a/metricbeat/module/php_fpm/process/_meta/testdata/config.yml b/metricbeat/module/php_fpm/process/_meta/testdata/config.yml new file mode 100644 index 00000000000..1c6cb1189d1 --- /dev/null +++ b/metricbeat/module/php_fpm/process/_meta/testdata/config.yml @@ -0,0 +1,2 @@ +type: http +url: "/status?full=&json=" diff --git a/metricbeat/module/php_fpm/process/_meta/testdata/docs.json b/metricbeat/module/php_fpm/process/_meta/testdata/docs.json new file mode 100644 index 00000000000..0965497a01c --- /dev/null +++ b/metricbeat/module/php_fpm/process/_meta/testdata/docs.json @@ -0,0 +1 @@ +{"pool":"www","process manager":"dynamic","start time":1551792028,"start since":3471,"accepted conn":17,"listen queue":0,"max listen queue":0,"listen queue len":0,"idle processes":1,"active processes":1,"total processes":2,"max active processes":1,"max children reached":0,"slow requests":0, "processes":[{"pid":24,"state":"Running","start time":1551792028,"start since":3471,"requests":9,"request duration":135,"request method":"GET","request uri":"/status?full&json","content length":0,"user":"-","script":"-","last request cpu":0.00,"last request memory":0},{"pid":25,"state":"Idle","start time":1551792028,"start since":3471,"requests":8,"request duration":811,"request method":"GET","request uri":"/status?full","content length":0,"user":"-","script":"-","last request cpu":0.00,"last request memory":2097152}]} diff --git a/metricbeat/module/php_fpm/process/_meta/testdata/docs.json-expected.json b/metricbeat/module/php_fpm/process/_meta/testdata/docs.json-expected.json new file mode 100644 index 00000000000..308b0cf64dc --- /dev/null +++ b/metricbeat/module/php_fpm/process/_meta/testdata/docs.json-expected.json @@ -0,0 +1,98 @@ +[ + { + "event": { + "dataset": "php_fpm.process", + "duration": 115000, + "module": "php_fpm" + }, + "http": { + "request": { + "method": "get" + }, + "response": { + "body": { + "bytes": 0 + } + } + }, + "metricset": { + "name": "process" + }, + "php_fpm": { + "pool": { + "name": "www" + }, + "process": { + "last_request_cpu": 0, + "last_request_memory": 0, + "request_duration": 135, + "requests": 9, + "script": "-", + "start_since": 3471, + "start_time": 1551792028, + "state": "Running" + } + }, + "process": { + "pid": 24 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "php_fpm" + }, + "url": { + "original": "/status?full\u0026json" + }, + "user": { + "name": "-" + } + }, + { + "event": { + "dataset": "php_fpm.process", + "duration": 115000, + "module": "php_fpm" + }, + "http": { + "request": { + "method": "get" + }, + "response": { + "body": { + "bytes": 0 + } + } + }, + "metricset": { + "name": "process" + }, + "php_fpm": { + "pool": { + "name": "www" + }, + "process": { + "last_request_cpu": 0, + "last_request_memory": 2097152, + "request_duration": 811, + "requests": 8, + "script": "-", + "start_since": 3471, + "start_time": 1551792028, + "state": "Idle" + } + }, + "process": { + "pid": 25 + }, + "service": { + "address": "127.0.0.1:55555", + "type": "php_fpm" + }, + "url": { + "original": "/status?full" + }, + "user": { + "name": "-" + } + } +] \ No newline at end of file diff --git a/metricbeat/module/php_fpm/process/process_integration_test.go b/metricbeat/module/php_fpm/process/process_integration_test.go index 6894b2c0e96..a523648c9ad 100644 --- a/metricbeat/module/php_fpm/process/process_integration_test.go +++ b/metricbeat/module/php_fpm/process/process_integration_test.go @@ -45,15 +45,6 @@ func TestFetch(t *testing.T) { } -func TestData(t *testing.T) { - compose.EnsureUp(t, "phpfpm") - f := mbtest.NewReportingMetricSetV2(t, getConfig()) - err := mbtest.WriteEventsReporterV2(f, t, ".") - if err != nil { - t.Fatal("write", err) - } -} - func getConfig() map[string]interface{} { return map[string]interface{}{ "module": "php_fpm", From cd4907841d0f5e740cbb08eacb759dda3469911d Mon Sep 17 00:00:00 2001 From: Adrian Serrano Date: Wed, 6 Mar 2019 11:14:23 +0100 Subject: [PATCH 142/332] [Filebeat] NetFlow input support for custom field definitions (#10945) This PR adds support for loading custom (enterprise-specific) fields to the Filebeat NetFlow input. These fields can extend and/or override fields in NetFlow V9 and IPFIX. For compatibility, the feature uses the same field definition YAML format as Logstash's netflow codec plugin. A new configuration option custom_definitions consists of a list of paths to definition files. --- .../_meta/common.reference.inputs.yml | 5 + .../docs/inputs/input-netflow.asciidoc | 48 ++++ x-pack/filebeat/filebeat.reference.yml | 5 + x-pack/filebeat/input/netflow/config.go | 17 +- .../input/netflow/decoder/config/config.go | 28 +++ .../input/netflow/decoder/fields/field.go | 16 +- .../netflow/decoder/fields/field_test.go | 58 +++++ .../decoder/fields/zfields_assorted.go | 2 +- .../netflow/decoder/fields/zfields_cert.go | 2 +- .../netflow/decoder/fields/zfields_cisco.go | 2 +- .../netflow/decoder/fields/zfields_ipfix.go | 2 +- .../input/netflow/decoder/ipfix/ipfix.go | 2 +- .../input/netflow/decoder/ipfix/ipfix_test.go | 45 ++++ .../netflow/decoder/template/test_helpers.go | 2 +- .../input/netflow/decoder/v9/decoder.go | 12 +- .../filebeat/input/netflow/decoder/v9/v9.go | 2 +- .../input/netflow/decoder/v9/v9_test.go | 41 ++++ x-pack/filebeat/input/netflow/definitions.go | 217 ++++++++++++++++++ .../input/netflow/definitions_test.go | 110 +++++++++ x-pack/filebeat/input/netflow/input.go | 15 +- x-pack/filebeat/input/netflow/netflow_test.go | 24 +- .../input/netflow/testdata/dat_tests.yaml | 216 ++++++++++------- .../fields/netflow9_cisco_asa_custom.yaml | 27 +++ .../golden/Netflow-9-Cisco-ASA-2.golden.json | 31 ++- .../golden/Netflow-9-Cisco-ASA.golden.json | 126 ++++++++-- 25 files changed, 925 insertions(+), 130 deletions(-) create mode 100644 x-pack/filebeat/input/netflow/decoder/fields/field_test.go create mode 100644 x-pack/filebeat/input/netflow/definitions.go create mode 100644 x-pack/filebeat/input/netflow/definitions_test.go create mode 100644 x-pack/filebeat/input/netflow/testdata/fields/netflow9_cisco_asa_custom.yaml diff --git a/x-pack/filebeat/_meta/common.reference.inputs.yml b/x-pack/filebeat/_meta/common.reference.inputs.yml index 8d5c0c7a0f0..ab42a166d3a 100644 --- a/x-pack/filebeat/_meta/common.reference.inputs.yml +++ b/x-pack/filebeat/_meta/common.reference.inputs.yml @@ -22,3 +22,8 @@ # processing. #queue_size: 8192 + # Custom field definitions for NetFlow V9 / IPFIX. + # List of files with YAML fields definition. + #custom_definitions: + #- path/to/ipfix.yaml + #- path/to/netflow.yaml diff --git a/x-pack/filebeat/docs/inputs/input-netflow.asciidoc b/x-pack/filebeat/docs/inputs/input-netflow.asciidoc index a156b288028..cebe980a7d6 100644 --- a/x-pack/filebeat/docs/inputs/input-netflow.asciidoc +++ b/x-pack/filebeat/docs/inputs/input-netflow.asciidoc @@ -29,6 +29,8 @@ Example configuration: protocols: [ v5, v9, ipfix ] expiration_timeout: 30m queue_size: 8192 + custom_definitions: + - path/to/fields.yml ---- @@ -61,6 +63,52 @@ The maximum number of packets that can be queued for processing. Use this setting to avoid packet-loss when dealing with occasional bursts of traffic. +[float] +[[custom_definitions]] +==== `custom_definitions` + +A list of paths to field definitions YAML files. These allow to update the +NetFlow/IPFIX fields with vendor extensions and to override existing fields. + +The expected format is the same as used by Logstash's NetFlow codec +{logstash-ref}/plugins-codecs-netflow.html#plugins-codecs-netflow-ipfix_definitions[ipfix_definitions] +and {logstash-ref}/plugins-codecs-netflow.html#plugins-codecs-netflow-netflow_definitions[netflow_definitions]. +{beatname} will detect which of the two formats is used. + +NetFlow format example: +["source","yaml",subs="attributes"] +id: +- default length in bytes +- :name +id: +- :uintN or :intN: or :ip4_addr or :ip6_addr or :mac_addr or :string +- :name +id: +- :skip + + +Where `id` is the numeric field ID. + +The IPFIX format similar, but grouped by Private Enterprise Number (PEN): +["source","yaml",subs="attributes"] +pen1: + id: + - :uintN or :ip4_addr or :ip6_addr or :mac_addr or :string + - :name + id: + - :skip +pen2: + id: + - :octetarray + - :name + +Note that fields are shared between NetFlow V9 and IPFIX. Changes to +IPFIX PEN zero are equivalent to changes to NetFlow fields. + +[WARNING] +Overriding the names and/or types of standard fields can prevent +mapping of ECS fields to function properly. + [id="{beatname_lc}-input-{type}-common-options"] include::../../../../filebeat/docs/inputs/input-common-options.asciidoc[] diff --git a/x-pack/filebeat/filebeat.reference.yml b/x-pack/filebeat/filebeat.reference.yml index 0a48f185b87..dace07bf644 100644 --- a/x-pack/filebeat/filebeat.reference.yml +++ b/x-pack/filebeat/filebeat.reference.yml @@ -840,6 +840,11 @@ filebeat.inputs: # processing. #queue_size: 8192 + # Custom field definitions for NetFlow V9 / IPFIX. + # List of files with YAML fields definition. + #custom_definitions: + #- path/to/ipfix.yaml + #- path/to/netflow.yaml #========================== Filebeat autodiscover ============================== # Autodiscover allows you to detect changes in the system and spawn new modules diff --git a/x-pack/filebeat/input/netflow/config.go b/x-pack/filebeat/input/netflow/config.go index da9ac9fba00..e6250dd27db 100644 --- a/x-pack/filebeat/input/netflow/config.go +++ b/x-pack/filebeat/input/netflow/config.go @@ -13,6 +13,15 @@ import ( "github.com/elastic/beats/filebeat/inputsource/udp" ) +type config struct { + udp.Config `config:",inline"` + harvester.ForwarderConfig `config:",inline"` + Protocols []string `config:"protocols"` + ExpirationTimeout time.Duration `config:"expiration_timeout"` + PacketQueueSize int `config:"queue_size"` + CustomDefinitions []string `config:"custom_definitions"` +} + var defaultConfig = config{ Config: udp.Config{ MaxMessageSize: 10 * humanize.KiByte, @@ -26,11 +35,3 @@ var defaultConfig = config{ ExpirationTimeout: time.Minute * 30, PacketQueueSize: 8192, } - -type config struct { - udp.Config `config:",inline"` - harvester.ForwarderConfig `config:",inline"` - Protocols []string `config:"protocols"` - ExpirationTimeout time.Duration `config:"expiration_timeout"` - PacketQueueSize int `config:"queue_size"` -} diff --git a/x-pack/filebeat/input/netflow/decoder/config/config.go b/x-pack/filebeat/input/netflow/decoder/config/config.go index c9ee073cdd1..fd124767184 100644 --- a/x-pack/filebeat/input/netflow/decoder/config/config.go +++ b/x-pack/filebeat/input/netflow/decoder/config/config.go @@ -8,6 +8,8 @@ import ( "io" "io/ioutil" "time" + + "github.com/elastic/beats/x-pack/filebeat/input/netflow/decoder/fields" ) // Config stores the configuration used by the NetFlow Collector. @@ -16,6 +18,7 @@ type Config struct { logOutput io.Writer expiration time.Duration detectReset bool + fields fields.FieldDict } var defaultCfg = Config{ @@ -61,6 +64,23 @@ func (c *Config) WithSequenceResetEnabled(enabled bool) *Config { return c } +// WithCustomFields extends the NetFlow V9/IPFIX supported fields with +// custom ones. This method can be chained multiple times adding fields +// from different sources. +func (c *Config) WithCustomFields(dicts ...fields.FieldDict) *Config { + if len(dicts) == 0 { + return c + } + if c.fields == nil { + c.fields = fields.FieldDict{} + c.fields.Merge(fields.GlobalFields) + } + for _, dict := range dicts { + c.fields.Merge(dict) + } + return c +} + // Protocols returns a list of the protocols enabled. func (c *Config) Protocols() []string { return c.protocols @@ -81,3 +101,11 @@ func (c *Config) ExpirationTimeout() time.Duration { func (c *Config) SequenceResetEnabled() bool { return c.detectReset } + +// Fields returns the configured fields. +func (c *Config) Fields() fields.FieldDict { + if c.fields == nil { + return fields.GlobalFields + } + return c.fields +} diff --git a/x-pack/filebeat/input/netflow/decoder/fields/field.go b/x-pack/filebeat/input/netflow/decoder/fields/field.go index 8106b7d43a1..2acaa8a9bee 100644 --- a/x-pack/filebeat/input/netflow/decoder/fields/field.go +++ b/x-pack/filebeat/input/netflow/decoder/fields/field.go @@ -6,7 +6,7 @@ package fields import "fmt" -var Fields = FieldDict{} +var GlobalFields = FieldDict{} type Key struct { EnterpriseID uint32 @@ -20,12 +20,20 @@ type Field struct { type FieldDict map[Key]*Field -func RegisterFields(dict FieldDict) error { +func RegisterGlobalFields(dict FieldDict) error { for key, value := range dict { - if _, found := Fields[key]; found { + if _, found := GlobalFields[key]; found { return fmt.Errorf("field %+v is duplicated", key) } - Fields[key] = value + GlobalFields[key] = value } return nil } + +// Merge merges the passed fields into the dictionary, overwriting existing +// fields if duplicated. +func (f FieldDict) Merge(otherFields FieldDict) { + for key, value := range otherFields { + f[key] = value + } +} diff --git a/x-pack/filebeat/input/netflow/decoder/fields/field_test.go b/x-pack/filebeat/input/netflow/decoder/fields/field_test.go new file mode 100644 index 00000000000..883a0c6903b --- /dev/null +++ b/x-pack/filebeat/input/netflow/decoder/fields/field_test.go @@ -0,0 +1,58 @@ +// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one +// or more contributor license agreements. Licensed under the Elastic License; +// you may not use this file except in compliance with the Elastic License. + +package fields + +import ( + "testing" + + "github.com/stretchr/testify/assert" +) + +func TestFieldDict_Merge(t *testing.T) { + a := FieldDict{ + Key{1, 2}: &Field{"field1", String}, + Key{2, 3}: &Field{"field2", Unsigned32}, + } + b := FieldDict{ + Key{3, 4}: &Field{"field3", MacAddress}, + Key{4, 5}: &Field{"field4", Ipv4Address}, + Key{5, 6}: &Field{"field5", Ipv6Address}, + } + c := FieldDict{ + Key{3, 4}: &Field{"field3v2", OctetArray}, + Key{0, 0}: &Field{"field0", DateTimeMicroseconds}, + } + + f := FieldDict{} + + f.Merge(a) + + assert.Len(t, f, len(a)) + if !checkContains(t, f, a) { + t.FailNow() + } + + f.Merge(b) + assert.Len(t, f, len(a)+len(b)) + if !checkContains(t, f, b) { + t.FailNow() + } + + f.Merge(c) + assert.Len(t, f, len(a)+len(b)+len(c)-1) + if !checkContains(t, f, c) { + t.FailNow() + } + +} + +func checkContains(t testing.TB, dest FieldDict, contains FieldDict) bool { + for k, v := range contains { + if !assert.Contains(t, dest, k) || !assert.Equal(t, *v, *dest[k]) { + return false + } + } + return true +} diff --git a/x-pack/filebeat/input/netflow/decoder/fields/zfields_assorted.go b/x-pack/filebeat/input/netflow/decoder/fields/zfields_assorted.go index 92b60264dab..6a08743e54d 100644 --- a/x-pack/filebeat/input/netflow/decoder/fields/zfields_assorted.go +++ b/x-pack/filebeat/input/netflow/decoder/fields/zfields_assorted.go @@ -512,7 +512,7 @@ var AssortedFields = FieldDict{ } func init() { - if err := RegisterFields(AssortedFields); err != nil { + if err := RegisterGlobalFields(AssortedFields); err != nil { panic(err) } } diff --git a/x-pack/filebeat/input/netflow/decoder/fields/zfields_cert.go b/x-pack/filebeat/input/netflow/decoder/fields/zfields_cert.go index 21027203179..1c65b784550 100644 --- a/x-pack/filebeat/input/netflow/decoder/fields/zfields_cert.go +++ b/x-pack/filebeat/input/netflow/decoder/fields/zfields_cert.go @@ -109,7 +109,7 @@ var CertFields = FieldDict{ } func init() { - if err := RegisterFields(CertFields); err != nil { + if err := RegisterGlobalFields(CertFields); err != nil { panic(err) } } diff --git a/x-pack/filebeat/input/netflow/decoder/fields/zfields_cisco.go b/x-pack/filebeat/input/netflow/decoder/fields/zfields_cisco.go index e50c5e8f589..05dce245848 100644 --- a/x-pack/filebeat/input/netflow/decoder/fields/zfields_cisco.go +++ b/x-pack/filebeat/input/netflow/decoder/fields/zfields_cisco.go @@ -280,7 +280,7 @@ var CiscoFields = FieldDict{ } func init() { - if err := RegisterFields(CiscoFields); err != nil { + if err := RegisterGlobalFields(CiscoFields); err != nil { panic(err) } } diff --git a/x-pack/filebeat/input/netflow/decoder/fields/zfields_ipfix.go b/x-pack/filebeat/input/netflow/decoder/fields/zfields_ipfix.go index 87c2af47884..1a47ad39c26 100644 --- a/x-pack/filebeat/input/netflow/decoder/fields/zfields_ipfix.go +++ b/x-pack/filebeat/input/netflow/decoder/fields/zfields_ipfix.go @@ -469,7 +469,7 @@ var IpfixFields = FieldDict{ } func init() { - if err := RegisterFields(IpfixFields); err != nil { + if err := RegisterGlobalFields(IpfixFields); err != nil { panic(err) } } diff --git a/x-pack/filebeat/input/netflow/decoder/ipfix/ipfix.go b/x-pack/filebeat/input/netflow/decoder/ipfix/ipfix.go index 754a39e95b2..38214a5f5ac 100644 --- a/x-pack/filebeat/input/netflow/decoder/ipfix/ipfix.go +++ b/x-pack/filebeat/input/netflow/decoder/ipfix/ipfix.go @@ -31,7 +31,7 @@ func init() { func New(config config.Config) protocol.Protocol { logger := log.New(config.LogOutput(), LogPrefix, 0) decoder := DecoderIPFIX{ - DecoderV9: v9.DecoderV9{Logger: logger}, + DecoderV9: v9.DecoderV9{Logger: logger, Fields: config.Fields()}, } proto := &IPFixProtocol{ NetflowV9Protocol: *v9.NewProtocolWithDecoder(decoder, config, logger), diff --git a/x-pack/filebeat/input/netflow/decoder/ipfix/ipfix_test.go b/x-pack/filebeat/input/netflow/decoder/ipfix/ipfix_test.go index fca44270815..640889a0ea9 100644 --- a/x-pack/filebeat/input/netflow/decoder/ipfix/ipfix_test.go +++ b/x-pack/filebeat/input/netflow/decoder/ipfix/ipfix_test.go @@ -13,6 +13,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/elastic/beats/x-pack/filebeat/input/netflow/decoder/config" + "github.com/elastic/beats/x-pack/filebeat/input/netflow/decoder/fields" "github.com/elastic/beats/x-pack/filebeat/input/netflow/decoder/record" "github.com/elastic/beats/x-pack/filebeat/input/netflow/decoder/test" "github.com/elastic/beats/x-pack/filebeat/input/netflow/decoder/v9" @@ -188,3 +189,47 @@ func TestOptionTemplates(t *testing.T) { assert.Len(t, s.Templates, 1) }) } + +func TestCustomFields(t *testing.T) { + addr := test.MakeAddress(t, "127.0.0.1:12345") + + conf := config.Defaults() + conf.WithCustomFields(fields.FieldDict{ + fields.Key{EnterpriseID: 0x12345678, FieldID: 33}: &fields.Field{Name: "customField", Decoder: fields.String}, + }) + assert.Contains(t, conf.Fields(), fields.Key{EnterpriseID: 0x12345678, FieldID: 33}) + proto := New(conf) + flows, err := proto.OnPacket(test.MakePacket([]uint16{ + // Header + // Version, Length, Ts, SeqNo, Source + 10, 42, 11, 11, 22, 22, 0, 1234, + // Set #1 (record template) + 2, 26, /*len of set*/ + 999, 3, + 1, 4, // Field 1 + 2, 4, // Field 2 + // Field 3 + 0x8000 | 33, 6, + 0x1234, 0x5678, // enterprise ID + 0, // Padding + }), addr) + assert.NoError(t, err) + assert.Empty(t, flows) + + flows, err = proto.OnPacket(test.MakePacket([]uint16{ + // Header + // Version, Length, Ts, SeqNo, Source + 10, 34, 11, 11, 22, 22, 0, 1234, + // Set (data record) + 999, 18, /*len of 999 record */ + 0x0102, 0x0304, // field 1 + 0x0506, 0x0708, // field 2 + // Field 3 + 0x5465, 0x7374, + 0x4d65, + }), addr) + assert.NoError(t, err) + assert.Len(t, flows, 1) + assert.Contains(t, flows[0].Fields, "customField") + assert.Equal(t, flows[0].Fields["customField"], "TestMe") +} diff --git a/x-pack/filebeat/input/netflow/decoder/template/test_helpers.go b/x-pack/filebeat/input/netflow/decoder/template/test_helpers.go index 3f33aafe2b5..48f41c9be76 100644 --- a/x-pack/filebeat/input/netflow/decoder/template/test_helpers.go +++ b/x-pack/filebeat/input/netflow/decoder/template/test_helpers.go @@ -20,7 +20,7 @@ var ( ) func buildDecoderByNameMap() { - for _, value := range fields.Fields { + for _, value := range fields.GlobalFields { decoderByName[value.Name] = value.Decoder } } diff --git a/x-pack/filebeat/input/netflow/decoder/v9/decoder.go b/x-pack/filebeat/input/netflow/decoder/v9/decoder.go index 637430a37aa..f5972684652 100644 --- a/x-pack/filebeat/input/netflow/decoder/v9/decoder.go +++ b/x-pack/filebeat/input/netflow/decoder/v9/decoder.go @@ -30,10 +30,12 @@ type Decoder interface { ReadTemplateSet(setID uint16, buf *bytes.Buffer) ([]*template.Template, error) ReadFieldDefinition(*bytes.Buffer) (field fields.Key, length uint16, err error) GetLogger() *log.Logger + GetFields() fields.FieldDict } type DecoderV9 struct { Logger *log.Logger + Fields fields.FieldDict } var _ Decoder = (*DecoderV9)(nil) @@ -92,7 +94,15 @@ func (d DecoderV9) ReadFieldDefinition(buf *bytes.Buffer) (field fields.Key, len return field, length, nil } +func (d DecoderV9) GetFields() fields.FieldDict { + if f := d.Fields; f != nil { + return f + } + return fields.GlobalFields +} + func ReadFields(d Decoder, buf *bytes.Buffer, count int) (record template.Template, err error) { + knownFields := d.GetFields() logger := d.GetLogger() record.Fields = make([]template.FieldTemplate, count) for i := 0; i < count; i++ { @@ -109,7 +119,7 @@ func ReadFields(d Decoder, buf *bytes.Buffer, count int) (record template.Templa } else { record.Length += int(field.Length) } - if fieldInfo, found := fields.Fields[key]; found { + if fieldInfo, found := knownFields[key]; found { min, max := fieldInfo.Decoder.MinLength(), fieldInfo.Decoder.MaxLength() if length == template.VariableLength || min <= field.Length && field.Length <= max { field.Info = fieldInfo diff --git a/x-pack/filebeat/input/netflow/decoder/v9/v9.go b/x-pack/filebeat/input/netflow/decoder/v9/v9.go index 5cbf3ee6915..c4efe44b56c 100644 --- a/x-pack/filebeat/input/netflow/decoder/v9/v9.go +++ b/x-pack/filebeat/input/netflow/decoder/v9/v9.go @@ -39,7 +39,7 @@ func init() { func New(config config.Config) protocol.Protocol { logger := log.New(config.LogOutput(), LogPrefix, 0) - return NewProtocolWithDecoder(DecoderV9{logger}, config, logger) + return NewProtocolWithDecoder(DecoderV9{Logger: logger, Fields: config.Fields()}, config, logger) } func NewProtocolWithDecoder(decoder Decoder, config config.Config, logger *log.Logger) *NetflowV9Protocol { diff --git a/x-pack/filebeat/input/netflow/decoder/v9/v9_test.go b/x-pack/filebeat/input/netflow/decoder/v9/v9_test.go index 75ab11b80d2..9a889b51f3d 100644 --- a/x-pack/filebeat/input/netflow/decoder/v9/v9_test.go +++ b/x-pack/filebeat/input/netflow/decoder/v9/v9_test.go @@ -10,6 +10,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/elastic/beats/x-pack/filebeat/input/netflow/decoder/config" + "github.com/elastic/beats/x-pack/filebeat/input/netflow/decoder/fields" "github.com/elastic/beats/x-pack/filebeat/input/netflow/decoder/test" ) @@ -180,3 +181,43 @@ func TestSessionReset(t *testing.T) { assert.Empty(t, flows) }) } + +func TestCustomFields(t *testing.T) { + addr := test.MakeAddress(t, "127.0.0.1:12345") + + conf := config.Defaults() + conf.WithCustomFields(fields.FieldDict{ + fields.Key{FieldID: 33333}: &fields.Field{Name: "customField", Decoder: fields.String}, + }) + assert.Contains(t, conf.Fields(), fields.Key{FieldID: 33333}) + proto := New(conf) + flows, err := proto.OnPacket(test.MakePacket([]uint16{ + // Header + // Version, Count, Uptime, Ts, SeqNo, Source + 9, 1, 11, 11, 22, 22, 33, 33, 0, 1234, + // Set #1 (template) + 0, 20, /*len of set*/ + 999, 3, /*len*/ + 1, 4, // Fields + 2, 4, + 33333, 8, + }), addr) + assert.NoError(t, err) + assert.Empty(t, flows) + + flows, err = proto.OnPacket(test.MakePacket([]uint16{ + // Header + // Version, Count, Uptime, Ts, SeqNo, Source + 9, 1, 11, 11, 22, 22, 33, 34, 0, 1234, + // Set #1 (template) + 999, 20, /*len of set*/ + 1, 1, + 2, 2, + 0x4865, 0x6c6c, + 0x6f20, 0x3a29, + }), addr) + assert.NoError(t, err) + assert.Len(t, flows, 1) + assert.Contains(t, flows[0].Fields, "customField") + assert.Equal(t, flows[0].Fields["customField"], "Hello :)") +} diff --git a/x-pack/filebeat/input/netflow/definitions.go b/x-pack/filebeat/input/netflow/definitions.go new file mode 100644 index 00000000000..3d1832d4dec --- /dev/null +++ b/x-pack/filebeat/input/netflow/definitions.go @@ -0,0 +1,217 @@ +// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one +// or more contributor license agreements. Licensed under the Elastic License; +// you may not use this file except in compliance with the Elastic License. + +package netflow + +import ( + "fmt" + "io/ioutil" + "math" + "os" + "strconv" + + "github.com/pkg/errors" + "gopkg.in/yaml.v2" + + "github.com/elastic/beats/x-pack/filebeat/input/netflow/decoder/fields" +) + +var logstashName2Decoder = map[string]fields.Decoder{ + "double": fields.Float64, + "float": fields.Float32, + "int8": fields.Signed8, + "int15": fields.SignedDecoder(15), + "int16": fields.Signed16, + "int24": fields.SignedDecoder(24), + "int32": fields.Signed32, + "int64": fields.Signed64, + "ip4_addr": fields.Ipv4Address, + "ip4addr": fields.Ipv4Address, + "ip6_addr": fields.Ipv6Address, + "ip6addr": fields.Ipv6Address, + "mac_addr": fields.MacAddress, + "macaddr": fields.MacAddress, + "string": fields.String, + "uint8": fields.Unsigned8, + "uint15": fields.UnsignedDecoder(15), + "uint16": fields.Unsigned16, + "uint24": fields.UnsignedDecoder(24), + "uint32": fields.Unsigned32, + "uint64": fields.Unsigned64, + "octet_array": fields.OctetArray, + "octetarray": fields.OctetArray, + "acl_id_asa": fields.UnsupportedDecoder{}, + "mpls_label_stack_octets": fields.UnsupportedDecoder{}, + "application_id": fields.UnsupportedDecoder{}, + "forwarding_status": fields.UnsupportedDecoder{}, +} + +// LoadFieldDefinitions takes a parsed YAML tree from a Logstash +// Netflow or IPFIX custom fields format and converts it to a FieldDict. +func LoadFieldDefinitions(yaml interface{}) (defs fields.FieldDict, err error) { + tree, ok := yaml.(map[interface{}]interface{}) + if !ok { + return nil, fmt.Errorf("invalid custom fields definition format: expected a mapping of integer keys. Got %T", yaml) + } + if len(tree) == 0 { + return nil, nil + } + isIPFIX, err := fieldsAreIPFIX(tree) + if err != nil { + return nil, err + } + defs = fields.FieldDict{} + if !isIPFIX { + if err := loadFields(tree, 0, defs); err != nil { + return nil, errors.Wrap(err, "failed to load NetFlow fields") + } + return defs, nil + } + for pemI, fields := range tree { + pem, err := toInt(pemI) + if err != nil { + return nil, err + } + if !fits(pem, 0, math.MaxUint32) { + return nil, fmt.Errorf("PEM %d out of uint32 range", pem) + } + tree, ok := fields.(map[interface{}]interface{}) + if !ok { + return nil, fmt.Errorf("IPFIX fields for pem=%d malformed", pem) + } + if err := loadFields(tree, uint32(pem), defs); err != nil { + return nil, errors.Wrapf(err, "failed to load IPFIX fields for pem=%d", pem) + } + } + return defs, nil +} + +// LoadFieldDefinitionsFromFile takes the path to a YAML file in Logstash +// Netflow or IPFIX custom fields format and converts it to a FieldDict. +func LoadFieldDefinitionsFromFile(path string) (defs fields.FieldDict, err error) { + file, err := os.Open(path) + if err != nil { + return nil, err + } + defer file.Close() + contents, err := ioutil.ReadAll(file) + if err != nil { + return nil, err + } + var tree interface{} + if err := yaml.Unmarshal(contents, &tree); err != nil { + return nil, errors.Wrap(err, "unable to parse YAML") + } + return LoadFieldDefinitions(tree) +} + +func fits(value, min, max int64) bool { + return value >= min && value <= max +} + +func trimColon(s string) string { + if len(s) > 0 && s[0] == ':' { + return s[1:] + } + return s +} + +func toInt(value interface{}) (int64, error) { + switch v := value.(type) { + case int64: + return v, nil + case int: + return int64(v), nil + case string: + return strconv.ParseInt(v, 0, 64) + } + return 0, fmt.Errorf("value %v cannot be converted to int", value) +} + +func loadFields(def map[interface{}]interface{}, pem uint32, dest fields.FieldDict) error { + for keyI, iface := range def { + fieldID, err := toInt(keyI) + if err != nil { + return err + } + if !fits(fieldID, 0, math.MaxUint16) { + return fmt.Errorf("field ID %d out of range uint16", fieldID) + } + list, ok := iface.([]interface{}) + if !ok { + return fmt.Errorf("field ID %d is not a list", fieldID) + } + bad := true + var fieldType, fieldName string + switch len(list) { + case 2: + switch v := list[0].(type) { + case string: + fieldType = trimColon(v) + case int: + if v == 0 { + v = 4 + } + fieldType = fmt.Sprintf("uint%d", v*8) + } + if name, ok := list[1].(string); ok { + fieldName = trimColon(name) + bad = len(fieldType) == 0 || len(fieldName) == 0 + } + case 1: + str, ok := list[0].(string) + if ok && trimColon(str) == "skip" { + continue + } + } + if bad { + return fmt.Errorf("bad field ID %d: should have two items (type, name) or one (:skip) (Got %+v)", fieldID, list) + } + key := fields.Key{ + EnterpriseID: uint32(pem), + FieldID: uint16(fieldID), + } + if _, exists := dest[key]; exists { + return fmt.Errorf("repeated field ID %d", fieldID) + } + decoder, found := logstashName2Decoder[fieldType] + if !found { + return fmt.Errorf("field ID %d has unknown type %s", fieldID, fieldType) + } + dest[key] = &fields.Field{ + Name: fieldName, + Decoder: decoder, + } + } + return nil +} + +func fieldsAreIPFIX(tree map[interface{}]interface{}) (bool, error) { + if len(tree) == 0 { + return false, errors.New("custom fields definition is empty") + } + var seenList, seenMap bool + for key, value := range tree { + var msg string + switch v := value.(type) { + case map[interface{}]interface{}: + seenMap = true + if seenList { + msg = "expected IPFIX map of fields" + } + case []interface{}: + seenList = true + if seenMap { + msg = "expected NetFlow single field definition" + } + default: + msg = fmt.Sprintf("unexpected format, got %T", v) + } + if len(msg) > 0 { + return false, fmt.Errorf("inconsistent custom fields definition format: %s at key %v", + msg, key) + } + } + return seenMap, nil +} diff --git a/x-pack/filebeat/input/netflow/definitions_test.go b/x-pack/filebeat/input/netflow/definitions_test.go new file mode 100644 index 00000000000..e1f219b0566 --- /dev/null +++ b/x-pack/filebeat/input/netflow/definitions_test.go @@ -0,0 +1,110 @@ +// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one +// or more contributor license agreements. Licensed under the Elastic License; +// you may not use this file except in compliance with the Elastic License. + +package netflow + +import ( + "testing" + + "github.com/stretchr/testify/assert" + "gopkg.in/yaml.v2" + + "github.com/elastic/beats/x-pack/filebeat/input/netflow/decoder/fields" +) + +func TestLoadFieldDefinitions(t *testing.T) { + for _, testCase := range []struct { + title, yaml string + expected fields.FieldDict + }{ + { + title: "IPFIX definitions", + yaml: ` +1234: + 0: + - :skip + 7: + - 4 + - :rawField + 11: + - :ip4_addr + - :ip4_field + 33: + - :ip6_addr + - :ipv6_field + 42: + - :int15 + - :dword_field +0x29a: + 128: + - :mac_addr + - :mac_field + 999: + - :string + - :name +`, + expected: fields.FieldDict{ + fields.Key{EnterpriseID: 1234, FieldID: 7}: &fields.Field{Name: "rawField", Decoder: fields.Unsigned32}, + fields.Key{EnterpriseID: 1234, FieldID: 11}: &fields.Field{Name: "ip4_field", Decoder: fields.Ipv4Address}, + fields.Key{EnterpriseID: 1234, FieldID: 33}: &fields.Field{Name: "ipv6_field", Decoder: fields.Ipv6Address}, + fields.Key{EnterpriseID: 1234, FieldID: 42}: &fields.Field{Name: "dword_field", Decoder: fields.SignedDecoder(15)}, + fields.Key{EnterpriseID: 666, FieldID: 128}: &fields.Field{Name: "mac_field", Decoder: fields.MacAddress}, + fields.Key{EnterpriseID: 666, FieldID: 999}: &fields.Field{Name: "name", Decoder: fields.String}, + }, + }, + { + title: "NetFlow definitions", + yaml: ` +1: + - :double + - MyDouble +2: + - :float + - :SomeFloat +3: + - skip +4: + - mac_addr + - :peerMac +5: + - 3 + - :rgbColor +6: + - :octet_array + - :bunchBytes +7: + - :skip +8: + - :forwarding_status + - :status +`, + expected: fields.FieldDict{ + fields.Key{EnterpriseID: 0, FieldID: 1}: &fields.Field{Name: "MyDouble", Decoder: fields.Float64}, + fields.Key{EnterpriseID: 0, FieldID: 2}: &fields.Field{Name: "SomeFloat", Decoder: fields.Float32}, + fields.Key{EnterpriseID: 0, FieldID: 4}: &fields.Field{Name: "peerMac", Decoder: fields.MacAddress}, + fields.Key{EnterpriseID: 0, FieldID: 5}: &fields.Field{Name: "rgbColor", Decoder: fields.UnsignedDecoder(24)}, + fields.Key{EnterpriseID: 0, FieldID: 6}: &fields.Field{Name: "bunchBytes", Decoder: fields.OctetArray}, + fields.Key{EnterpriseID: 0, FieldID: 8}: &fields.Field{Name: "status", Decoder: fields.UnsupportedDecoder{}}, + }, + }, + } { + t.Run(testCase.title, func(t *testing.T) { + var tree interface{} + if err := yaml.Unmarshal([]byte(testCase.yaml), &tree); err != nil { + t.Fatal(err) + } + defs, err := LoadFieldDefinitions(tree) + if !assert.NoError(t, err) { + t.Fatal(err) + } + if !assert.Len(t, defs, len(testCase.expected)) { + t.FailNow() + } + for key, value := range testCase.expected { + assert.Contains(t, defs, key) + assert.Equal(t, *value, *defs[key]) + } + }) + } +} diff --git a/x-pack/filebeat/input/netflow/input.go b/x-pack/filebeat/input/netflow/input.go index f86d0525ce0..f9483ea1bd1 100644 --- a/x-pack/filebeat/input/netflow/input.go +++ b/x-pack/filebeat/input/netflow/input.go @@ -12,8 +12,6 @@ import ( "github.com/pkg/errors" - "github.com/elastic/beats/libbeat/common/atomic" - "github.com/elastic/beats/filebeat/channel" "github.com/elastic/beats/filebeat/harvester" "github.com/elastic/beats/filebeat/input" @@ -22,9 +20,11 @@ import ( "github.com/elastic/beats/filebeat/util" "github.com/elastic/beats/libbeat/beat" "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/common/atomic" "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/libbeat/monitoring" "github.com/elastic/beats/x-pack/filebeat/input/netflow/decoder" + "github.com/elastic/beats/x-pack/filebeat/input/netflow/decoder/fields" ) const ( @@ -84,9 +84,18 @@ func NewInput( return nil, err } + var customFields []fields.FieldDict + for _, yamlPath := range config.CustomDefinitions { + f, err := LoadFieldDefinitionsFromFile(yamlPath) + if err != nil { + return nil, errors.Wrapf(err, "failed parsing custom field definitions from file '%s'", yamlPath) + } + customFields = append(customFields, f) + } decoder, err := decoder.NewDecoder(decoder.NewConfig(). WithProtocols(config.Protocols...). - WithExpiration(config.ExpirationTimeout)) + WithExpiration(config.ExpirationTimeout). + WithCustomFields(customFields...)) if err != nil { return nil, errors.Wrapf(err, "error initializing netflow decoder") } diff --git a/x-pack/filebeat/input/netflow/netflow_test.go b/x-pack/filebeat/input/netflow/netflow_test.go index bf30946d8db..ce68e34ba52 100644 --- a/x-pack/filebeat/input/netflow/netflow_test.go +++ b/x-pack/filebeat/input/netflow/netflow_test.go @@ -38,12 +38,18 @@ const ( pcapDir = "testdata/pcap" datDir = "testdata/dat" goldenDir = "testdata/golden" + fieldsDir = "testdata/fields" datSourceIP = "192.0.2.1" ) // DatTests specifies the .dat files associated with test cases. type DatTests struct { - Tests map[string][]string `yaml:"tests"` + Tests map[string]TestCase `yaml:"tests"` +} + +type TestCase struct { + Files []string `yaml:"files"` + Fields []string `yaml:"custom_fields"` } // TestResult specifies the format of the result data that is written in a @@ -94,10 +100,10 @@ func TestPCAPFiles(t *testing.T) { func TestDatFiles(t *testing.T) { tests := readDatTests(t) - for name, files := range tests.Tests { + for name, testData := range tests.Tests { t.Run(name, func(t *testing.T) { goldenName := filepath.Join(goldenDir, sanitizer.Replace(name)+".golden.json") - result := getFlowsFromDat(t, name, files...) + result := getFlowsFromDat(t, name, testData) if *update { data, err := json.MarshalIndent(result, "", " ") @@ -148,7 +154,7 @@ func readDatTests(t testing.TB) *DatTests { return &tests } -func getFlowsFromDat(t testing.TB, name string, datFiles ...string) TestResult { +func getFlowsFromDat(t testing.TB, name string, testCase TestCase) TestResult { t.Helper() config := decoder.NewConfig(). @@ -157,6 +163,14 @@ func getFlowsFromDat(t testing.TB, name string, datFiles ...string) TestResult { WithExpiration(0). WithLogOutput(test.TestLogWriter{TB: t}) + for _, fieldFile := range testCase.Fields { + fields, err := LoadFieldDefinitionsFromFile(filepath.Join(fieldsDir, fieldFile)) + if err != nil { + t.Fatal(err, fieldFile) + } + config = config.WithCustomFields(fields) + } + decoder, err := decoder.NewDecoder(config) if !assert.NoError(t, err) { t.Fatal(err) @@ -164,7 +178,7 @@ func getFlowsFromDat(t testing.TB, name string, datFiles ...string) TestResult { source := test.MakeAddress(t, datSourceIP+":4444") var events []beat.Event - for _, f := range datFiles { + for _, f := range testCase.Files { dat, err := ioutil.ReadFile(filepath.Join(datDir, f)) if err != nil { t.Fatal(err) diff --git a/x-pack/filebeat/input/netflow/testdata/dat_tests.yaml b/x-pack/filebeat/input/netflow/testdata/dat_tests.yaml index e04f392d7dc..cd4b4048261 100644 --- a/x-pack/filebeat/input/netflow/testdata/dat_tests.yaml +++ b/x-pack/filebeat/input/netflow/testdata/dat_tests.yaml @@ -2,132 +2,180 @@ tests: IPFIX vIPtela with VPN id: - - ipfix_test_viptela_tpl257.dat - - ipfix_test_viptela_data257.dat + files: + - ipfix_test_viptela_tpl257.dat + - ipfix_test_viptela_data257.dat IPFIX Barracuda firewall: - - ipfix_test_barracuda_tpl.dat - - ipfix_test_barracuda_data256.dat + files: + - ipfix_test_barracuda_tpl.dat + - ipfix_test_barracuda_data256.dat IPFIX YAF basic with applabel: - - ipfix_test_yaf_tpls_option_tpl.dat - - ipfix_test_yaf_tpl45841.dat - - ipfix_test_yaf_data45841.dat - - ipfix_test_yaf_data45873.dat - - ipfix_test_yaf_data53248.dat + files: + - ipfix_test_yaf_tpls_option_tpl.dat + - ipfix_test_yaf_tpl45841.dat + - ipfix_test_yaf_data45841.dat + - ipfix_test_yaf_data45873.dat + - ipfix_test_yaf_data53248.dat IPFIX Netscaler with variable length fields, missing templates: - - ipfix_test_netscaler_data.dat + files: + - ipfix_test_netscaler_data.dat IPFIX configured with include_flowset_id: - - ipfix_test_netscaler_tpl.dat - - ipfix_test_netscaler_data.dat + files: + - ipfix_test_netscaler_tpl.dat + - ipfix_test_netscaler_data.dat IPFIX: - - ipfix.dat + files: + - ipfix.dat IPFIX OpenBSD pflow: - - ipfix_test_openbsd_pflow_tpl.dat - - ipfix_test_openbsd_pflow_data.dat + files: + - ipfix_test_openbsd_pflow_tpl.dat + - ipfix_test_openbsd_pflow_data.dat IPFIX options template from Juniper MX240 JunOS 15.1 R6 S3: - - ipfix_test_juniper_mx240_junos151r6s3_opttpl512.dat - - ipfix_test_juniper_mx240_junos151r6s3_data512.dat + files: + - ipfix_test_juniper_mx240_junos151r6s3_opttpl512.dat + - ipfix_test_juniper_mx240_junos151r6s3_data512.dat IPFIX Nokia BRAS: - - ipfix_test_nokia_bras_tpl.dat - - ipfix_test_nokia_bras_data256.dat + files: + - ipfix_test_nokia_bras_tpl.dat + - ipfix_test_nokia_bras_data256.dat IPFIX Procera: - - ipfix_test_procera_tpl52935.dat - - ipfix_test_procera_data52935.dat + files: + - ipfix_test_procera_tpl52935.dat + - ipfix_test_procera_data52935.dat IPFIX Barracuda extended uniflow template 256: - - ipfix_test_barracuda_extended_uniflow_tpl256.dat - - ipfix_test_barracuda_extended_uniflow_data256.dat + files: + - ipfix_test_barracuda_extended_uniflow_tpl256.dat + - ipfix_test_barracuda_extended_uniflow_data256.dat IPFIX Mikrotik RouterOS 6.39.2: - - ipfix_test_mikrotik_tpl.dat - - ipfix_test_mikrotik_data258.dat - - ipfix_test_mikrotik_data259.dat + files: + - ipfix_test_mikrotik_tpl.dat + - ipfix_test_mikrotik_data258.dat + - ipfix_test_mikrotik_data259.dat IPFIX Netscaler with variable length fields: - - ipfix_test_netscaler_tpl.dat - - ipfix_test_netscaler_data.dat + files: + - ipfix_test_netscaler_tpl.dat + - ipfix_test_netscaler_data.dat IPFIX VMware virtual distributed switch: - - ipfix_test_vmware_vds_tpl.dat - - ipfix_test_vmware_vds_data264.dat - - ipfix_test_vmware_vds_data266.dat - - ipfix_test_vmware_vds_data266_267.dat + files: + - ipfix_test_vmware_vds_tpl.dat + - ipfix_test_vmware_vds_data264.dat + - ipfix_test_vmware_vds_data266.dat + - ipfix_test_vmware_vds_data266_267.dat Netflow 9 valid 01: - - netflow9_test_valid01.dat + files: + - netflow9_test_valid01.dat Netflow 9 macaddress: - - netflow9_test_macaddr_tpl.dat - - netflow9_test_macaddr_data.dat + files: + - netflow9_test_macaddr_tpl.dat + - netflow9_test_macaddr_data.dat Netflow 9 Cisco ASA: - - netflow9_test_cisco_asa_1_tpl.dat - - netflow9_test_cisco_asa_1_data.dat + files: + - netflow9_test_cisco_asa_1_tpl.dat + - netflow9_test_cisco_asa_1_data.dat + custom_fields: + - netflow9_cisco_asa_custom.yaml Netflow 9 multiple netflow exporters: - - netflow9_test_nprobe_tpl.dat - - netflow9_test_softflowd_tpl_data.dat - - netflow9_test_nprobe_data.dat + files: + - netflow9_test_nprobe_tpl.dat + - netflow9_test_softflowd_tpl_data.dat + - netflow9_test_nprobe_data.dat Netflow 9 invalid 01: - - netflow9_test_invalid01.dat + files: + - netflow9_test_invalid01.dat Netflow 9 options template with scope fields: - - netflow9_test_nprobe_tpl.dat + files: + - netflow9_test_nprobe_tpl.dat Netflow 9 Cisco ASA 2: - - netflow9_test_cisco_asa_2_tpl_26x.dat - - netflow9_test_cisco_asa_2_tpl_27x.dat - - netflow9_test_cisco_asa_2_data.dat + files: + - netflow9_test_cisco_asa_2_tpl_26x.dat + - netflow9_test_cisco_asa_2_tpl_27x.dat + - netflow9_test_cisco_asa_2_data.dat + custom_fields: + - netflow9_cisco_asa_custom.yaml Netflow 9 ipt_netflow reduced size encoding: - - netflow9_test_iptnetflow_reduced_size_encoding_tpldata260.dat + files: + - netflow9_test_iptnetflow_reduced_size_encoding_tpldata260.dat Netflow 9 H3C: - - netflow9_test_h3c_tpl3281.dat - - netflow9_test_h3c_data3281.dat + files: + - netflow9_test_h3c_tpl3281.dat + - netflow9_test_h3c_data3281.dat Netflow 9 IE150 IE151: - - netflow9_test_unknown_tpl266_292_data.dat + files: + - netflow9_test_unknown_tpl266_292_data.dat Netflow 9 Palo Alto 1 flowset in large zero filled packet: - - netflow9_test_paloalto_81_tpl256-263.dat - - netflow9_test_paloalto_81_data257_1flowset_in_large_zerofilled_packet.dat + files: + - netflow9_test_paloalto_81_tpl256-263.dat + - netflow9_test_paloalto_81_data257_1flowset_in_large_zerofilled_packet.dat Netflow 9 H3C Netstream with varstring: - - netflow9_test_h3c_netstream_varstring_tpl3281.dat - - netflow9_test_h3c_netstream_varstring_data3281.dat + files: + - netflow9_test_h3c_netstream_varstring_tpl3281.dat + - netflow9_test_h3c_netstream_varstring_data3281.dat Netflow 9 Fortigate FortiOS 54x appid: - - netflow9_test_fortigate_fortios_542_appid_tpl258-269.dat - - netflow9_test_fortigate_fortios_542_appid_data258_262.dat + files: + - netflow9_test_fortigate_fortios_542_appid_tpl258-269.dat + - netflow9_test_fortigate_fortios_542_appid_data258_262.dat Netflow 9 Ubiquiti Edgerouter with MPLS labels: - - netflow9_test_ubnt_edgerouter_tpl.dat - - netflow9_test_ubnt_edgerouter_data1024.dat - - netflow9_test_ubnt_edgerouter_data1025.dat + files: + - netflow9_test_ubnt_edgerouter_tpl.dat + - netflow9_test_ubnt_edgerouter_data1024.dat + - netflow9_test_ubnt_edgerouter_data1025.dat Netflow 9 nprobe DPI L7: - - netflow9_test_nprobe_dpi.dat + files: + - netflow9_test_nprobe_dpi.dat Netflow 9 Fortigate FortiOS 5.2.1: - - netflow9_test_fortigate_fortios_521_tpl.dat - - netflow9_test_fortigate_fortios_521_data256.dat - - netflow9_test_fortigate_fortios_521_data257.dat + files: + - netflow9_test_fortigate_fortios_521_tpl.dat + - netflow9_test_fortigate_fortios_521_data256.dat + - netflow9_test_fortigate_fortios_521_data257.dat Netflow 9 Streamcore: - - netflow9_test_streamcore_tpl_data256.dat - - netflow9_test_streamcore_tpl_data260.dat + files: + - netflow9_test_streamcore_tpl_data256.dat + - netflow9_test_streamcore_tpl_data260.dat Netflow9 Juniper SRX options template with 0 scope field length: - - netflow9_test_juniper_srx_tplopt.dat + files: + - netflow9_test_juniper_srx_tplopt.dat Netflow 9 template with 0 length fields: - - netflow9_test_0length_fields_tpl_data.dat + files: + - netflow9_test_0length_fields_tpl_data.dat Netflow 9 Cisco ASR 9000 series options template 256: - - netflow9_test_cisco_asr9k_opttpl256.dat - - netflow9_test_cisco_asr9k_data256.dat + files: + - netflow9_test_cisco_asr9k_opttpl256.dat + - netflow9_test_cisco_asr9k_data256.dat Netflow 9 Huawei Netstream: - - netflow9_test_huawei_netstream_tpl.dat - - netflow9_test_huawei_netstream_data.dat + files: + - netflow9_test_huawei_netstream_tpl.dat + - netflow9_test_huawei_netstream_data.dat Netflow 9 field layer2segmentid: - - netflow9_test_field_layer2segmentid_tpl.dat - - netflow9_test_field_layer2segmentid_data.dat + files: + - netflow9_test_field_layer2segmentid_tpl.dat + - netflow9_test_field_layer2segmentid_data.dat Netflow 9 Cisco ASR 9000 series template 260: - - netflow9_test_cisco_asr9k_tpl260.dat - - netflow9_test_cisco_asr9k_data260.dat + files: + - netflow9_test_cisco_asr9k_tpl260.dat + - netflow9_test_cisco_asr9k_data260.dat Netflow 9 Cisco NBAR options template 260: - - netflow9_test_cisco_nbar_opttpl260.dat + files: + - netflow9_test_cisco_nbar_opttpl260.dat Netflow 9 Cisco NBAR flowset 262: - - netflow9_test_cisco_nbar_tpl262.dat - - netflow9_test_cisco_nbar_data262.dat + files: + - netflow9_test_cisco_nbar_tpl262.dat + - netflow9_test_cisco_nbar_data262.dat Netflow 9 Cisco WLC: - - netflow9_test_cisco_wlc_tpl.dat - - netflow9_test_cisco_wlc_data261.dat + files: + - netflow9_test_cisco_wlc_tpl.dat + - netflow9_test_cisco_wlc_data261.dat Netflow 9 Cisco WLC 8500 release 8.2: - - netflow9_test_cisco_wlc_8510_tpl_262.dat + files: + - netflow9_test_cisco_wlc_8510_tpl_262.dat Netflow 9 Cisco 1941/K9 release 15.1: - - netflow9_test_cisco_1941K9.dat + files: + - netflow9_test_cisco_1941K9.dat Netflow 9 Cisco ASR1001-X: - - netflow9_cisco_asr1001x_tpl259.dat + files: + - netflow9_cisco_asr1001x_tpl259.dat Netflow 9 Palo Alto PAN-OS with app-id: - - netflow9_test_paloalto_panos_tpl.dat - - netflow9_test_paloalto_panos_data.dat + files: + - netflow9_test_paloalto_panos_tpl.dat + - netflow9_test_paloalto_panos_data.dat diff --git a/x-pack/filebeat/input/netflow/testdata/fields/netflow9_cisco_asa_custom.yaml b/x-pack/filebeat/input/netflow/testdata/fields/netflow9_cisco_asa_custom.yaml new file mode 100644 index 00000000000..bcf40b96760 --- /dev/null +++ b/x-pack/filebeat/input/netflow/testdata/fields/netflow9_cisco_asa_custom.yaml @@ -0,0 +1,27 @@ +33000: +- :acl_id_asa +- :ingress_acl_id +33001: +- :acl_id_asa +- egress_acl_id +33002: +- :uint16 +- :fw_ext_event +40000: +- :string +- :username +40001: +- :ip4_addr +- :xlate_src_addr_ipv4 +40002: +- :ip4_addr +- :xlate_dst_addr_ipv4 +40003: +- :uint16 +- :xlate_src_port +40004: +- :uint16 +- :xlate_dst_port +40005: +- :uint8 +- :fw_event diff --git a/x-pack/filebeat/input/netflow/testdata/golden/Netflow-9-Cisco-ASA-2.golden.json b/x-pack/filebeat/input/netflow/testdata/golden/Netflow-9-Cisco-ASA-2.golden.json index dfc1898f1e4..409a4e910b1 100644 --- a/x-pack/filebeat/input/netflow/testdata/golden/Netflow-9-Cisco-ASA-2.golden.json +++ b/x-pack/filebeat/input/netflow/testdata/golden/Netflow-9-Cisco-ASA-2.golden.json @@ -34,6 +34,7 @@ "firewall_event": 2, "flow_id": 742819709, "flow_start_milliseconds": "2016-07-21T13:50:32.955Z", + "fw_ext_event": 2030, "icmp_code_ipv4": 0, "icmp_type_ipv4": 0, "ingress_interface": 3, @@ -99,6 +100,7 @@ "firewall_event": 5, "flow_id": 742819710, "flow_start_milliseconds": "2016-07-21T13:50:32.955Z", + "fw_ext_event": 2030, "icmp_code_ipv4": 0, "icmp_type_ipv4": 0, "ingress_interface": 3, @@ -164,6 +166,7 @@ "firewall_event": 2, "flow_id": 742819710, "flow_start_milliseconds": "2016-07-21T13:50:32.955Z", + "fw_ext_event": 2030, "icmp_code_ipv4": 0, "icmp_type_ipv4": 0, "ingress_interface": 3, @@ -229,6 +232,7 @@ "firewall_event": 5, "flow_id": 742819619, "flow_start_milliseconds": "2016-07-21T13:50:32.475Z", + "fw_ext_event": 2030, "icmp_code_ipv4": 0, "icmp_type_ipv4": 0, "ingress_interface": 3, @@ -294,6 +298,7 @@ "firewall_event": 2, "flow_id": 742819619, "flow_start_milliseconds": "2016-07-21T13:50:32.475Z", + "fw_ext_event": 2030, "icmp_code_ipv4": 0, "icmp_type_ipv4": 0, "ingress_interface": 3, @@ -359,6 +364,7 @@ "firewall_event": 5, "flow_id": 742819707, "flow_start_milliseconds": "2016-07-21T13:50:32.955Z", + "fw_ext_event": 2030, "icmp_code_ipv4": 0, "icmp_type_ipv4": 0, "ingress_interface": 3, @@ -424,6 +430,7 @@ "firewall_event": 2, "flow_id": 742819707, "flow_start_milliseconds": "2016-07-21T13:50:32.955Z", + "fw_ext_event": 2030, "icmp_code_ipv4": 0, "icmp_type_ipv4": 0, "ingress_interface": 3, @@ -489,6 +496,7 @@ "firewall_event": 1, "flow_id": 742819773, "flow_start_milliseconds": "2016-07-21T13:50:33.385Z", + "fw_ext_event": 0, "icmp_code_ipv4": 0, "icmp_type_ipv4": 0, "ingress_interface": 3, @@ -500,7 +508,8 @@ "protocol_identifier": 6, "source_ipv4_address": "192.168.0.1", "source_transport_port": 56649, - "type": "netflow_flow" + "type": "netflow_flow", + "username": "" }, "network": { "community_id": "1:IZ8RrSqt8oeb2F2Rp9296zm54bc=", @@ -552,6 +561,7 @@ "firewall_event": 5, "flow_id": 742819773, "flow_start_milliseconds": "2016-07-21T13:50:33.385Z", + "fw_ext_event": 2030, "icmp_code_ipv4": 0, "icmp_type_ipv4": 0, "ingress_interface": 3, @@ -617,6 +627,7 @@ "firewall_event": 2, "flow_id": 742819773, "flow_start_milliseconds": "2016-07-21T13:50:33.385Z", + "fw_ext_event": 2030, "icmp_code_ipv4": 0, "icmp_type_ipv4": 0, "ingress_interface": 3, @@ -682,6 +693,7 @@ "firewall_event": 1, "flow_id": 742820025, "flow_start_milliseconds": "2016-07-21T13:50:35.035Z", + "fw_ext_event": 0, "icmp_code_ipv4": 0, "icmp_type_ipv4": 0, "ingress_interface": 3, @@ -693,7 +705,8 @@ "protocol_identifier": 6, "source_ipv4_address": "192.168.0.2", "source_transport_port": 61777, - "type": "netflow_flow" + "type": "netflow_flow", + "username": "" }, "network": { "community_id": "1:E1vNamQGw5X+X+vT1g7ui6Nc3O0=", @@ -745,6 +758,7 @@ "firewall_event": 5, "flow_id": 742820025, "flow_start_milliseconds": "2016-07-21T13:50:35.035Z", + "fw_ext_event": 2030, "icmp_code_ipv4": 0, "icmp_type_ipv4": 0, "ingress_interface": 3, @@ -810,6 +824,7 @@ "firewall_event": 2, "flow_id": 742820025, "flow_start_milliseconds": "2016-07-21T13:50:35.035Z", + "fw_ext_event": 2030, "icmp_code_ipv4": 0, "icmp_type_ipv4": 0, "ingress_interface": 3, @@ -875,6 +890,7 @@ "firewall_event": 1, "flow_id": 742820153, "flow_start_milliseconds": "2016-07-21T13:50:35.785Z", + "fw_ext_event": 0, "icmp_code_ipv4": 0, "icmp_type_ipv4": 0, "ingress_interface": 3, @@ -886,7 +902,8 @@ "protocol_identifier": 6, "source_ipv4_address": "192.168.0.1", "source_transport_port": 56650, - "type": "netflow_flow" + "type": "netflow_flow", + "username": "" }, "network": { "community_id": "1:pkwcoe/zjCLerUgj+HGAwwt4wV8=", @@ -938,6 +955,7 @@ "firewall_event": 5, "flow_id": 742820153, "flow_start_milliseconds": "2016-07-21T13:50:35.785Z", + "fw_ext_event": 2030, "icmp_code_ipv4": 0, "icmp_type_ipv4": 0, "ingress_interface": 3, @@ -1003,6 +1021,7 @@ "firewall_event": 2, "flow_id": 742820153, "flow_start_milliseconds": "2016-07-21T13:50:35.785Z", + "fw_ext_event": 2030, "icmp_code_ipv4": 0, "icmp_type_ipv4": 0, "ingress_interface": 3, @@ -1068,6 +1087,7 @@ "firewall_event": 1, "flow_id": 742820223, "flow_start_milliseconds": "2016-07-21T13:50:36.395Z", + "fw_ext_event": 0, "icmp_code_ipv4": 0, "icmp_type_ipv4": 0, "ingress_interface": 3, @@ -1079,7 +1099,8 @@ "protocol_identifier": 6, "source_ipv4_address": "192.168.0.1", "source_transport_port": 56651, - "type": "netflow_flow" + "type": "netflow_flow", + "username": "" }, "network": { "community_id": "1:35/w0D/WO1QvBp8O+Vd95Nb+tt4=", @@ -1131,6 +1152,7 @@ "firewall_event": 5, "flow_id": 742820223, "flow_start_milliseconds": "2016-07-21T13:50:36.395Z", + "fw_ext_event": 2030, "icmp_code_ipv4": 0, "icmp_type_ipv4": 0, "ingress_interface": 3, @@ -1196,6 +1218,7 @@ "firewall_event": 2, "flow_id": 742820223, "flow_start_milliseconds": "2016-07-21T13:50:36.395Z", + "fw_ext_event": 2030, "icmp_code_ipv4": 0, "icmp_type_ipv4": 0, "ingress_interface": 3, diff --git a/x-pack/filebeat/input/netflow/testdata/golden/Netflow-9-Cisco-ASA.golden.json b/x-pack/filebeat/input/netflow/testdata/golden/Netflow-9-Cisco-ASA.golden.json index 88dd710d211..cf291331445 100644 --- a/x-pack/filebeat/input/netflow/testdata/golden/Netflow-9-Cisco-ASA.golden.json +++ b/x-pack/filebeat/input/netflow/testdata/golden/Netflow-9-Cisco-ASA.golden.json @@ -33,6 +33,8 @@ }, "flow_id": 8500, "flow_start_milliseconds": "2015-10-09T09:47:47.569Z", + "fw_event": 2, + "fw_ext_event": 2025, "icmp_code_ipv4": 0, "icmp_type_ipv4": 0, "ingress_interface": 3, @@ -41,7 +43,12 @@ "protocol_identifier": 1, "source_ipv4_address": "192.168.14.1", "source_transport_port": 0, - "type": "netflow_flow" + "type": "netflow_flow", + "username": "", + "xlate_dst_addr_ipv4": "2.2.2.11", + "xlate_dst_port": 17549, + "xlate_src_addr_ipv4": "192.168.14.1", + "xlate_src_port": 0 }, "network": { "bytes": 56, @@ -93,6 +100,8 @@ }, "flow_id": 8501, "flow_start_milliseconds": "2015-10-09T09:47:48.169Z", + "fw_event": 2, + "fw_ext_event": 2025, "icmp_code_ipv4": 0, "icmp_type_ipv4": 8, "ingress_interface": 2, @@ -101,7 +110,12 @@ "protocol_identifier": 1, "source_ipv4_address": "192.168.23.22", "source_transport_port": 17549, - "type": "netflow_flow" + "type": "netflow_flow", + "username": "", + "xlate_dst_addr_ipv4": "164.164.37.11", + "xlate_dst_port": 0, + "xlate_src_addr_ipv4": "192.168.23.22", + "xlate_src_port": 17549 }, "network": { "bytes": 56, @@ -153,6 +167,8 @@ }, "flow_id": 8502, "flow_start_milliseconds": "2015-10-09T09:47:48.179Z", + "fw_event": 2, + "fw_ext_event": 2025, "icmp_code_ipv4": 0, "icmp_type_ipv4": 0, "ingress_interface": 3, @@ -161,7 +177,12 @@ "protocol_identifier": 1, "source_ipv4_address": "164.164.37.11", "source_transport_port": 0, - "type": "netflow_flow" + "type": "netflow_flow", + "username": "", + "xlate_dst_addr_ipv4": "192.168.23.22", + "xlate_dst_port": 17549, + "xlate_src_addr_ipv4": "164.164.37.11", + "xlate_src_port": 0 }, "network": { "bytes": 56, @@ -213,6 +234,8 @@ }, "flow_id": 8503, "flow_start_milliseconds": "2015-10-09T09:47:48.399Z", + "fw_event": 2, + "fw_ext_event": 2025, "icmp_code_ipv4": 0, "icmp_type_ipv4": 8, "ingress_interface": 2, @@ -221,7 +244,12 @@ "protocol_identifier": 1, "source_ipv4_address": "192.168.23.20", "source_transport_port": 17805, - "type": "netflow_flow" + "type": "netflow_flow", + "username": "", + "xlate_dst_addr_ipv4": "164.164.37.11", + "xlate_dst_port": 0, + "xlate_src_addr_ipv4": "192.168.23.20", + "xlate_src_port": 17805 }, "network": { "bytes": 56, @@ -273,6 +301,8 @@ }, "flow_id": 8504, "flow_start_milliseconds": "2015-10-09T09:47:48.409Z", + "fw_event": 2, + "fw_ext_event": 2025, "icmp_code_ipv4": 0, "icmp_type_ipv4": 0, "ingress_interface": 3, @@ -281,7 +311,12 @@ "protocol_identifier": 1, "source_ipv4_address": "164.164.37.11", "source_transport_port": 0, - "type": "netflow_flow" + "type": "netflow_flow", + "username": "", + "xlate_dst_addr_ipv4": "192.168.23.20", + "xlate_dst_port": 17805, + "xlate_src_addr_ipv4": "164.164.37.11", + "xlate_src_port": 0 }, "network": { "bytes": 56, @@ -333,6 +368,8 @@ }, "flow_id": 8505, "flow_start_milliseconds": "2015-10-09T09:47:48.589Z", + "fw_event": 2, + "fw_ext_event": 2025, "icmp_code_ipv4": 0, "icmp_type_ipv4": 8, "ingress_interface": 3, @@ -341,7 +378,12 @@ "protocol_identifier": 1, "source_ipv4_address": "192.168.14.11", "source_transport_port": 17805, - "type": "netflow_flow" + "type": "netflow_flow", + "username": "", + "xlate_dst_addr_ipv4": "2.2.2.11", + "xlate_dst_port": 0, + "xlate_src_addr_ipv4": "192.168.14.11", + "xlate_src_port": 17805 }, "network": { "bytes": 56, @@ -393,6 +435,8 @@ }, "flow_id": 8506, "flow_start_milliseconds": "2015-10-09T09:47:48.599Z", + "fw_event": 2, + "fw_ext_event": 2025, "icmp_code_ipv4": 0, "icmp_type_ipv4": 0, "ingress_interface": 2, @@ -401,7 +445,12 @@ "protocol_identifier": 1, "source_ipv4_address": "2.2.2.11", "source_transport_port": 0, - "type": "netflow_flow" + "type": "netflow_flow", + "username": "", + "xlate_dst_addr_ipv4": "192.168.14.11", + "xlate_dst_port": 17805, + "xlate_src_addr_ipv4": "2.2.2.11", + "xlate_src_port": 0 }, "network": { "bytes": 56, @@ -453,6 +502,8 @@ }, "flow_id": 8507, "flow_start_milliseconds": "2015-10-09T09:47:48.609Z", + "fw_event": 2, + "fw_ext_event": 2025, "icmp_code_ipv4": 0, "icmp_type_ipv4": 8, "ingress_interface": 2, @@ -461,7 +512,12 @@ "protocol_identifier": 1, "source_ipv4_address": "2.2.2.11", "source_transport_port": 17805, - "type": "netflow_flow" + "type": "netflow_flow", + "username": "", + "xlate_dst_addr_ipv4": "192.168.14.1", + "xlate_dst_port": 0, + "xlate_src_addr_ipv4": "2.2.2.11", + "xlate_src_port": 17805 }, "network": { "bytes": 56, @@ -513,6 +569,8 @@ }, "flow_id": 8508, "flow_start_milliseconds": "2015-10-09T09:47:48.619Z", + "fw_event": 2, + "fw_ext_event": 2025, "icmp_code_ipv4": 0, "icmp_type_ipv4": 0, "ingress_interface": 3, @@ -521,7 +579,12 @@ "protocol_identifier": 1, "source_ipv4_address": "192.168.14.1", "source_transport_port": 0, - "type": "netflow_flow" + "type": "netflow_flow", + "username": "", + "xlate_dst_addr_ipv4": "2.2.2.11", + "xlate_dst_port": 17805, + "xlate_src_addr_ipv4": "192.168.14.1", + "xlate_src_port": 0 }, "network": { "bytes": 56, @@ -573,6 +636,8 @@ }, "flow_id": 8525, "flow_start_milliseconds": "2015-10-09T09:47:51.269Z", + "fw_event": 2, + "fw_ext_event": 2016, "icmp_code_ipv4": 3, "icmp_type_ipv4": 3, "ingress_interface": 3, @@ -581,7 +646,12 @@ "protocol_identifier": 1, "source_ipv4_address": "164.164.37.11", "source_transport_port": 0, - "type": "netflow_flow" + "type": "netflow_flow", + "username": "", + "xlate_dst_addr_ipv4": "192.168.23.1", + "xlate_dst_port": 0, + "xlate_src_addr_ipv4": "164.164.37.11", + "xlate_src_port": 0 }, "network": { "bytes": 160, @@ -633,6 +703,8 @@ }, "flow_id": 8509, "flow_start_milliseconds": "2015-10-09T09:47:49.249Z", + "fw_event": 2, + "fw_ext_event": 2025, "icmp_code_ipv4": 0, "icmp_type_ipv4": 8, "ingress_interface": 2, @@ -641,7 +713,12 @@ "protocol_identifier": 1, "source_ipv4_address": "192.168.23.22", "source_transport_port": 18061, - "type": "netflow_flow" + "type": "netflow_flow", + "username": "", + "xlate_dst_addr_ipv4": "164.164.37.11", + "xlate_dst_port": 0, + "xlate_src_addr_ipv4": "192.168.23.22", + "xlate_src_port": 18061 }, "network": { "bytes": 56, @@ -693,6 +770,8 @@ }, "flow_id": 8510, "flow_start_milliseconds": "2015-10-09T09:47:49.259Z", + "fw_event": 2, + "fw_ext_event": 2025, "icmp_code_ipv4": 0, "icmp_type_ipv4": 0, "ingress_interface": 3, @@ -701,7 +780,12 @@ "protocol_identifier": 1, "source_ipv4_address": "164.164.37.11", "source_transport_port": 0, - "type": "netflow_flow" + "type": "netflow_flow", + "username": "", + "xlate_dst_addr_ipv4": "192.168.23.22", + "xlate_dst_port": 18061, + "xlate_src_addr_ipv4": "164.164.37.11", + "xlate_src_port": 0 }, "network": { "bytes": 56, @@ -753,6 +837,8 @@ }, "flow_id": 8511, "flow_start_milliseconds": "2015-10-09T09:47:49.469Z", + "fw_event": 2, + "fw_ext_event": 2025, "icmp_code_ipv4": 0, "icmp_type_ipv4": 8, "ingress_interface": 2, @@ -761,7 +847,12 @@ "protocol_identifier": 1, "source_ipv4_address": "192.168.23.20", "source_transport_port": 18061, - "type": "netflow_flow" + "type": "netflow_flow", + "username": "", + "xlate_dst_addr_ipv4": "164.164.37.11", + "xlate_dst_port": 0, + "xlate_src_addr_ipv4": "192.168.23.20", + "xlate_src_port": 18061 }, "network": { "bytes": 56, @@ -813,6 +904,8 @@ }, "flow_id": 8512, "flow_start_milliseconds": "2015-10-09T09:47:49.479Z", + "fw_event": 2, + "fw_ext_event": 2025, "icmp_code_ipv4": 0, "icmp_type_ipv4": 0, "ingress_interface": 3, @@ -821,7 +914,12 @@ "protocol_identifier": 1, "source_ipv4_address": "164.164.37.11", "source_transport_port": 0, - "type": "netflow_flow" + "type": "netflow_flow", + "username": "", + "xlate_dst_addr_ipv4": "192.168.23.20", + "xlate_dst_port": 18061, + "xlate_src_addr_ipv4": "164.164.37.11", + "xlate_src_port": 0 }, "network": { "bytes": 56, From 30f809b18dbefa2cdc8f3df1d38f090a5b99e55d Mon Sep 17 00:00:00 2001 From: Nicolas Ruflin Date: Wed, 6 Mar 2019 12:57:28 +0100 Subject: [PATCH 143/332] [Metricbeat] Introduce Logger per metricset (#11106) Currently each Metricset initialises its own logger. The selector has to be set manually. This PR moves this code to the initialisation of the Metricset, meaning each metricset has its own logger. This should reduce the code needed in each Metricset and removes errors like putting a wrong or inconsistent selectors. It's different from before where there was a global logger for all instances of the same metricset and now each metricset instance has it's own logger. This should not make a difference. As an example implementation the `system.fsstat` metricset was adjusted. --- CHANGELOG-developer.next.asciidoc | 1 + metricbeat/mb/builders.go | 2 ++ metricbeat/mb/mb.go | 8 ++++++++ metricbeat/module/system/fsstat/fsstat.go | 9 +++------ 4 files changed, 14 insertions(+), 6 deletions(-) diff --git a/CHANGELOG-developer.next.asciidoc b/CHANGELOG-developer.next.asciidoc index f851482703a..0470646c01a 100644 --- a/CHANGELOG-developer.next.asciidoc +++ b/CHANGELOG-developer.next.asciidoc @@ -32,3 +32,4 @@ The list below covers the major changes between 7.0.0-beta1 and master only. - Move host name addition to a processor. {pull}10728[10728] - The `beat.Event` accessor methods now support `@metadata` keys. {pull}10761[10761] - Assertion for documented fields in tests fails if any of the fields in the tested event is documented as an alias. {pull}10921[10921] +- Support for Logger in the Metricset base instance. {pull}11106[11106] diff --git a/metricbeat/mb/builders.go b/metricbeat/mb/builders.go index f1dbf57b1b2..db00b072eac 100644 --- a/metricbeat/mb/builders.go +++ b/metricbeat/mb/builders.go @@ -26,6 +26,7 @@ import ( "github.com/pkg/errors" "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/libbeat/monitoring" ) @@ -194,6 +195,7 @@ func newBaseMetricSets(r *Register, m Module) ([]BaseMetricSet, error) { module: m, host: host, metrics: metrics, + logger: logp.NewLogger(m.Name() + "." + name), }) } } diff --git a/metricbeat/mb/mb.go b/metricbeat/mb/mb.go index 17e835084bb..0d38a14e5b9 100644 --- a/metricbeat/mb/mb.go +++ b/metricbeat/mb/mb.go @@ -27,6 +27,7 @@ import ( "time" "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/libbeat/monitoring" ) @@ -106,6 +107,7 @@ type MetricSet interface { HostData() HostData // HostData returns the parsed host data. Registration() MetricSetRegistration // Params used in registration. Metrics() *monitoring.Registry // MetricSet specific metrics + Logger() *logp.Logger // MetricSet specific logger } // Closer is an optional interface that a MetricSet can implement in order to @@ -241,6 +243,7 @@ type BaseMetricSet struct { hostData HostData registration MetricSetRegistration metrics *monitoring.Registry + logger *logp.Logger } func (b *BaseMetricSet) String() string { @@ -264,6 +267,11 @@ func (b *BaseMetricSet) Metrics() *monitoring.Registry { return b.metrics } +// Logger returns the logger. +func (b *BaseMetricSet) Logger() *logp.Logger { + return b.logger +} + // Name returns the name of the MetricSet. It should not include the name of // the module. func (b *BaseMetricSet) Name() string { diff --git a/metricbeat/module/system/fsstat/fsstat.go b/metricbeat/module/system/fsstat/fsstat.go index e5892562979..9b5dc74992d 100644 --- a/metricbeat/module/system/fsstat/fsstat.go +++ b/metricbeat/module/system/fsstat/fsstat.go @@ -23,7 +23,6 @@ import ( "strings" "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" "github.com/elastic/beats/metricbeat/module/system/filesystem" @@ -31,8 +30,6 @@ import ( "github.com/pkg/errors" ) -var debugf = logp.MakeDebug("system-fsstat") - func init() { mb.Registry.MustAddMetricSet("system", "fsstat", New, mb.WithHostParser(parse.EmptyHostParser), @@ -56,7 +53,7 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { config.IgnoreTypes = filesystem.DefaultIgnoredTypes() } if len(config.IgnoreTypes) > 0 { - logp.Info("Ignoring filesystem types: %s", strings.Join(config.IgnoreTypes, ", ")) + base.Logger().Info("Ignoring filesystem types: %s", strings.Join(config.IgnoreTypes, ", ")) } return &MetricSet{ @@ -84,10 +81,10 @@ func (m *MetricSet) Fetch(r mb.ReporterV2) { for _, fs := range fss { stat, err := filesystem.GetFileSystemStat(fs) if err != nil { - debugf("error fetching filesystem stats for '%s': %v", fs.DirName, err) + m.Logger().Debug("error fetching filesystem stats for '%s': %v", fs.DirName, err) continue } - logp.Debug("fsstat", "filesystem: %s total=%d, used=%d, free=%d", stat.Mount, stat.Total, stat.Used, stat.Free) + m.Logger().Debug("filesystem: %s total=%d, used=%d, free=%d", stat.Mount, stat.Total, stat.Used, stat.Free) totalFiles += stat.Files totalSize += stat.Total From 5c734b9b4ed77279f2607d014f0637a007002bc4 Mon Sep 17 00:00:00 2001 From: Jaime Soriano Pastor Date: Wed, 6 Mar 2019 13:25:23 +0100 Subject: [PATCH 144/332] Add multiplier option to prometheus helper (#10994) Prometheus histograms can contain buckets with keys in decimal representation. They create events with dots in the field names, what can be problematic when stored in Elasticsearch as they will create sub-objects. Add a new option to allow to store these keys in different units, so precission is kept but in a different order of magnitude. --- CHANGELOG.next.asciidoc | 1 + metricbeat/helper/prometheus/metric.go | 34 +++++++++++++++++++ .../helper/prometheus/prometheus_test.go | 33 ++++++++++++++++++ 3 files changed, 68 insertions(+) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index e8286ad9958..de22d87f42a 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -96,6 +96,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Update haproxy.* fields to map to ECS. {pull}10558[10558] {pull}10568[10568] - Collect all EC2 meta data from all instances in all states. {pull}10628[10628] - Migrate docker module to ECS. {pull}10927[10927] +- Add new option `OpMultiplyBuckets` to scale histogram buckets to avoid decimal points in final events {pull}10994[10994] *Packetbeat* diff --git a/metricbeat/helper/prometheus/metric.go b/metricbeat/helper/prometheus/metric.go index 716ea1a34af..22dd721861d 100644 --- a/metricbeat/helper/prometheus/metric.go +++ b/metricbeat/helper/prometheus/metric.go @@ -57,6 +57,13 @@ func OpLowercaseValue() MetricOption { return opLowercaseValue{} } +// OpMultiplyBuckets multiplies bucket labels in histograms, useful to change units +func OpMultiplyBuckets(multiplier float64) MetricOption { + return opMultiplyBuckets{ + multiplier: multiplier, + } +} + // Metric directly maps a Prometheus metric to a Metricbeat field func Metric(field string, options ...MetricOption) MetricMap { return &commonMetric{ @@ -267,3 +274,30 @@ func (o opLowercaseValue) Process(field string, value interface{}, labels common } return field, value, labels } + +type opMultiplyBuckets struct { + multiplier float64 +} + +// Process will multiply the bucket labels if it is an histogram with numeric labels +func (o opMultiplyBuckets) Process(field string, value interface{}, labels common.MapStr) (string, interface{}, common.MapStr) { + histogram, ok := value.(common.MapStr) + if !ok { + return field, value, labels + } + bucket, ok := histogram["bucket"].(common.MapStr) + if !ok { + return field, value, labels + } + multiplied := common.MapStr{} + for k, v := range bucket { + if f, err := strconv.ParseFloat(k, 64); err == nil { + key := strconv.FormatFloat(f*o.multiplier, 'f', -1, 64) + multiplied[key] = v + } else { + multiplied[k] = v + } + } + histogram["bucket"] = multiplied + return field, histogram, labels +} diff --git a/metricbeat/helper/prometheus/prometheus_test.go b/metricbeat/helper/prometheus/prometheus_test.go index 2a2e8c09568..97fce8c1c6a 100644 --- a/metricbeat/helper/prometheus/prometheus_test.go +++ b/metricbeat/helper/prometheus/prometheus_test.go @@ -52,6 +52,14 @@ histogram_metric_bucket{le="1e+09"} 1 histogram_metric_bucket{le="+Inf"} 1 histogram_metric_sum 117 histogram_metric_count 1 +# TYPE histogram_decimal_metric histogram +histogram_decimal_metric_bucket{le="0.001"} 1 +histogram_decimal_metric_bucket{le="0.01"} 1 +histogram_decimal_metric_bucket{le="0.1"} 2 +histogram_decimal_metric_bucket{le="1"} 3 +histogram_decimal_metric_bucket{le="+Inf"} 5 +histogram_decimal_metric_sum 4.31 +histogram_decimal_metric_count 5 ` @@ -329,6 +337,31 @@ func TestPrometheus(t *testing.T) { }, }, }, + { + msg: "Histogram decimal metric", + mapping: &MetricsMapping{ + Metrics: map[string]MetricMap{ + "histogram_decimal_metric": Metric("histogram.metric", OpMultiplyBuckets(1000)), + }, + }, + expected: []common.MapStr{ + common.MapStr{ + "histogram": common.MapStr{ + "metric": common.MapStr{ + "count": uint64(5), + "bucket": common.MapStr{ + "1": uint64(1), + "10": uint64(1), + "100": uint64(2), + "1000": uint64(3), + "+Inf": uint64(5), + }, + "sum": 4.31, + }, + }, + }, + }, + }, } for _, test := range tests { From 087c8804d1c978cd78cf6dea89d6e1c959a6c58b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Berfin=20Sar=C4=B1?= Date: Wed, 6 Mar 2019 15:40:26 +0300 Subject: [PATCH 145/332] [Metricbeat] Migrate Couchdb server to use ReporterV2 interface (#11043) --- .../module/couchdb/server/_meta/data.json | 113 +++++++++--------- metricbeat/module/couchdb/server/server.go | 24 ++-- .../couchdb/server/server_integration_test.go | 29 +++-- .../module/couchdb/server/server_test.go | 30 +++-- 4 files changed, 112 insertions(+), 84 deletions(-) diff --git a/metricbeat/module/couchdb/server/_meta/data.json b/metricbeat/module/couchdb/server/_meta/data.json index db74c9772a3..29c13a18b32 100644 --- a/metricbeat/module/couchdb/server/_meta/data.json +++ b/metricbeat/module/couchdb/server/_meta/data.json @@ -1,57 +1,62 @@ { - "@timestamp":"2016-05-23T08:05:34.853Z", - "beat":{ - "hostname":"beathost", - "name":"beathost" + "@timestamp": "2017-10-12T08:05:34.853Z", + "agent": { + "hostname": "host.example.com", + "name": "host.example.com" }, - "metricset":{ - "host":"localhost", - "module":"couchdb", - "name":"server", - "rtt":44269 + "couchdb": { + "server": { + "couchdb": { + "auth_cache_hits": 0, + "auth_cache_misses": 0, + "database_reads": 0, + "database_writes": 0, + "open_databases": 0, + "open_os_files": 0, + "request_time": 96 + }, + "httpd": { + "bulk_requests": 0, + "clients_requesting_changes": 0, + "requests": 159, + "temporary_view_reads": 0, + "view_reads": 0 + }, + "httpd_request_methods": { + "COPY": 0, + "DELETE": 0, + "GET": 159, + "HEAD": 0, + "POST": 0, + "PUT": 0 + }, + "httpd_status_codes": { + "200": 159, + "201": 0, + "202": 0, + "301": 0, + "304": 0, + "400": 0, + "401": 0, + "403": 0, + "404": 0, + "405": 0, + "409": 0, + "412": 0, + "500": 0 + } + } }, - "couchdb": { - "server": { - "couchdb": { - "open_os_files": 0, - "database_writes": 0, - "open_databases": 0, - "auth_cache_misses": 0, - "request_time": 142, - "database_reads": 0, - "auth_cache_hits": 0 - }, - "httpd": { - "requests": 3, - "viewReads": 0, - "bulk_requests": 0, - "clients_requesting_changes": 0, - "temporary_view_reads": 0 - }, - "httpd_request_methods": { - "GET": 3, - "PUT": 0, - "COPY": 0, - "HEAD": 0, - "POST": 0, - "DELETE": 0 - }, - "httpd_status_codes": { - "401": 0, - "405": 0, - "304": 0, - "400": 0, - "404": 0, - "409": 0, - "201": 0, - "202": 0, - "403": 0, - "500": 0, - "200": 3, - "301": 0, - "412": 0 - } - } - }, - "type":"metricsets" -} + "event": { + "dataset": "couchdb.server", + "duration": 115000, + "module": "couchdb" + }, + "metricset": { + "name": "server" + }, + "service": { + "address": "127.0.0.1:5984", + "type": "couchdb" + } +} \ No newline at end of file diff --git a/metricbeat/module/couchdb/server/server.go b/metricbeat/module/couchdb/server/server.go index 2032fe9025f..a3f4200493e 100644 --- a/metricbeat/module/couchdb/server/server.go +++ b/metricbeat/module/couchdb/server/server.go @@ -18,8 +18,8 @@ package server import ( - "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/common/cfgwarn" + "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" @@ -37,6 +37,8 @@ var ( }.Build() ) +var logger = logp.NewLogger("couchdb.server") + func init() { mb.Registry.MustAddMetricSet("couchdb", "server", New, mb.WithHostParser(hostParser), @@ -69,15 +71,19 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { }, nil } -// Fetch methods implements the data gathering and data conversion to the right format. -func (m *MetricSet) Fetch() (common.MapStr, error) { +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(reporter mb.ReporterV2) { content, err := m.http.FetchContent() if err != nil { - return nil, err + logger.Error(err) + reporter.Error(err) + return } - event, err := eventMapping(content) - if err != nil { - return nil, err - } - return event, nil + + event, _ := eventMapping(content) + reporter.Event(mb.Event{MetricSetFields: event}) + + return } diff --git a/metricbeat/module/couchdb/server/server_integration_test.go b/metricbeat/module/couchdb/server/server_integration_test.go index 7e9162edcdc..d1b806ea17f 100644 --- a/metricbeat/module/couchdb/server/server_integration_test.go +++ b/metricbeat/module/couchdb/server/server_integration_test.go @@ -29,27 +29,32 @@ import ( mbtest "github.com/elastic/beats/metricbeat/mb/testing" ) -func TestData(t *testing.T) { +func TestFetch(t *testing.T) { compose.EnsureUp(t, "couchdb") - f := mbtest.NewEventFetcher(t, getConfig()) - err := mbtest.WriteEvent(f, t) - if err != nil { - t.Fatal("write", err) + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } + assert.NotEmpty(t, events) + + t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), events[0]) } -func TestFetch(t *testing.T) { +func TestData(t *testing.T) { compose.EnsureUp(t, "couchdb") - f := mbtest.NewEventFetcher(t, getConfig()) - event, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } + assert.NotEmpty(t, events) - assert.NotNil(t, event) - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) + if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { + t.Fatal("write", err) + } } func getConfig() map[string]interface{} { diff --git a/metricbeat/module/couchdb/server/server_test.go b/metricbeat/module/couchdb/server/server_test.go index a0ef3a19975..b012d09e3e9 100644 --- a/metricbeat/module/couchdb/server/server_test.go +++ b/metricbeat/module/couchdb/server/server_test.go @@ -22,6 +22,7 @@ import ( "net/http" "net/http/httptest" "path/filepath" + "strings" "testing" "time" @@ -49,12 +50,13 @@ func TestFetchEventContent(t *testing.T) { "metricsets": []string{"server"}, "hosts": []string{server.URL}, } - f := mbtest.NewEventFetcher(t, config) - event, err := f.Fetch() - if err != nil { - t.Fatal(err) + f := mbtest.NewReportingMetricSetV2(t, config) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) + assert.NotEmpty(t, events) + t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), events[0]) } func TestFetchTimeout(t *testing.T) { @@ -79,13 +81,23 @@ func TestFetchTimeout(t *testing.T) { "timeout": "50ms", } - f := mbtest.NewEventFetcher(t, config) + f := mbtest.NewReportingMetricSetV2(t, config) start := time.Now() - _, err = f.Fetch() + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) == 0 { + t.Fatalf("Expected an error, had %d. %v\n", len(errs), errs) + } + assert.Empty(t, events) elapsed := time.Since(start) - if assert.Error(t, err) { - assert.Contains(t, err.Error(), "request canceled (Client.Timeout exceeded") + var found bool + for _, err := range errs { + if strings.Contains(err.Error(), "request canceled (Client.Timeout exceeded") { + found = true + } + } + if !found { + assert.Failf(t, "", "expected an error containing 'request canceled (Client.Timeout exceeded'. Got %v", errs) } assert.True(t, elapsed < 5*time.Second, "elapsed time: %s", elapsed.String()) From 2229970bc28c4ea534ea20457a742514dc9c6990 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Berfin=20Sar=C4=B1?= Date: Wed, 6 Mar 2019 16:04:00 +0300 Subject: [PATCH 146/332] [Metricbeat] Migrate Couchbase cluster to use ReporterV2 interface (#11046) --- .../module/couchbase/cluster/_meta/data.json | 32 +++++++++++-------- .../module/couchbase/cluster/cluster.go | 21 ++++++++---- .../cluster/cluster_integration_test.go | 28 ++++++++++++++-- .../module/couchbase/cluster/cluster_test.go | 14 +++++--- 4 files changed, 68 insertions(+), 27 deletions(-) diff --git a/metricbeat/module/couchbase/cluster/_meta/data.json b/metricbeat/module/couchbase/cluster/_meta/data.json index f0bf489aade..461df930f17 100644 --- a/metricbeat/module/couchbase/cluster/_meta/data.json +++ b/metricbeat/module/couchbase/cluster/_meta/data.json @@ -1,6 +1,6 @@ { "@timestamp": "2017-10-12T08:05:34.853Z", - "beat": { + "agent": { "hostname": "host.example.com", "name": "host.example.com" }, @@ -8,22 +8,22 @@ "cluster": { "hdd": { "free": { - "bytes": 53223546102 + "bytes": 48341763359 }, "quota": { "total": { - "bytes": 67371577344 + "bytes": 185929859072 } }, "total": { - "bytes": 67371577344 + "bytes": 185929859072 }, "used": { "by_data": { - "bytes": 12962692 + "bytes": 23665027 }, "value": { - "bytes": 14148031242 + "bytes": 137588095713 } } }, @@ -56,23 +56,29 @@ } }, "total": { - "bytes": 4139122688 + "bytes": 16683503616 }, "used": { "by_data": { - "bytes": 53962032 + "bytes": 53961776 }, "value": { - "bytes": 3484700672 + "bytes": 14443474944 } } } } }, + "event": { + "dataset": "couchbase.cluster", + "duration": 115000, + "module": "couchbase" + }, "metricset": { - "host": "couchbase:8091", - "module": "couchbase", - "name": "cluster", - "rtt": 115 + "name": "cluster" + }, + "service": { + "address": "localhost:8091", + "type": "couchbase" } } \ No newline at end of file diff --git a/metricbeat/module/couchbase/cluster/cluster.go b/metricbeat/module/couchbase/cluster/cluster.go index c721cb08fac..735ef159930 100644 --- a/metricbeat/module/couchbase/cluster/cluster.go +++ b/metricbeat/module/couchbase/cluster/cluster.go @@ -18,7 +18,7 @@ package cluster import ( - "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" @@ -36,6 +36,8 @@ var ( }.Build() ) +var logger = logp.NewLogger("couchbase.cluster") + // init registers the MetricSet with the central registry. // The New method will be called after the setup of the module and before starting to fetch data func init() { @@ -63,13 +65,18 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { }, nil } -// Fetch methods implements the data gathering and data conversion to the right format -// It returns the event which is then forward to the output. In case of an error, a -// descriptive error must be returned. -func (m *MetricSet) Fetch() (common.MapStr, error) { +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(reporter mb.ReporterV2) { content, err := m.http.FetchContent() if err != nil { - return nil, err + logger.Error(err) + reporter.Error(err) + return } - return eventMapping(content), nil + + reporter.Event(mb.Event{ + MetricSetFields: eventMapping(content), + }) } diff --git a/metricbeat/module/couchbase/cluster/cluster_integration_test.go b/metricbeat/module/couchbase/cluster/cluster_integration_test.go index 857c3d3b0fd..72a94a530d3 100644 --- a/metricbeat/module/couchbase/cluster/cluster_integration_test.go +++ b/metricbeat/module/couchbase/cluster/cluster_integration_test.go @@ -22,15 +22,37 @@ package cluster import ( "testing" + "github.com/stretchr/testify/assert" + + "github.com/elastic/beats/libbeat/tests/compose" mbtest "github.com/elastic/beats/metricbeat/mb/testing" "github.com/elastic/beats/metricbeat/module/couchbase" ) +func TestFetch(t *testing.T) { + compose.EnsureUp(t, "couchbase") + + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) + } + + assert.NotEmpty(t, events) + t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), events[0]) +} + func TestData(t *testing.T) { - f := mbtest.NewEventFetcher(t, getConfig()) + compose.EnsureUp(t, "couchbase") + + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) + } - err := mbtest.WriteEvent(f, t) - if err != nil { + assert.NotEmpty(t, events) + if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { t.Fatal("write", err) } } diff --git a/metricbeat/module/couchbase/cluster/cluster_test.go b/metricbeat/module/couchbase/cluster/cluster_test.go index 0edb57d3af4..d828f3509a7 100644 --- a/metricbeat/module/couchbase/cluster/cluster_test.go +++ b/metricbeat/module/couchbase/cluster/cluster_test.go @@ -34,8 +34,12 @@ import ( func TestFetchEventContents(t *testing.T) { absPath, err := filepath.Abs("./testdata/") + assert.NoError(t, err) + // response is a raw response from a couchbase response, err := ioutil.ReadFile(absPath + "/sample_response.json") + assert.NoError(t, err) + server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(200) w.Header().Set("Content-Type", "application/json;") @@ -49,11 +53,13 @@ func TestFetchEventContents(t *testing.T) { "hosts": []string{server.URL}, } - f := mbtest.NewEventFetcher(t, config) - event, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() + f := mbtest.NewReportingMetricSetV2(t, config) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } + assert.NotEmpty(t, events) + event := events[0].MetricSetFields t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event.StringToPrint()) From 360fe0da407f2de0eca1c02b3bad825f50219e6b Mon Sep 17 00:00:00 2001 From: Mario Castro Date: Wed, 6 Mar 2019 15:08:46 +0100 Subject: [PATCH 147/332] [Metricbeat] Migrate MongoDB dbstats Metricset to use ReporterV2 interface (#10852) --- .../module/mongodb/dbstats/_meta/data.json | 28 +++++++----- metricbeat/module/mongodb/dbstats/dbstats.go | 43 +++++++++++-------- .../dbstats/dbstats_integration_test.go | 39 ++++++++++------- 3 files changed, 65 insertions(+), 45 deletions(-) diff --git a/metricbeat/module/mongodb/dbstats/_meta/data.json b/metricbeat/module/mongodb/dbstats/_meta/data.json index 671dceeaf4a..6a4105be4d7 100644 --- a/metricbeat/module/mongodb/dbstats/_meta/data.json +++ b/metricbeat/module/mongodb/dbstats/_meta/data.json @@ -1,25 +1,27 @@ { "@timestamp": "2017-10-12T08:05:34.853Z", - "beat": { + "agent": { "hostname": "host.example.com", "name": "host.example.com" }, + "event": { + "dataset": "mongodb.dbstats", + "duration": 115000, + "module": "mongodb" + }, "metricset": { - "host": "mongodb:27017", - "module": "mongodb", - "name": "dbstats", - "rtt": 115 + "name": "dbstats" }, "mongodb": { "dbstats": { "avg_obj_size": { - "bytes": 59 + "bytes": 741 }, - "collections": 1, + "collections": 2, "data_size": { - "bytes": 59 + "bytes": 1482 }, - "db": "admin", + "db": "local", "file_size": {}, "index_size": { "bytes": 32768 @@ -27,10 +29,14 @@ "indexes": 2, "ns_size_mb": {}, "num_extents": 0, - "objects": 1, + "objects": 2, "storage_size": { - "bytes": 16384 + "bytes": 32768 } } + }, + "service": { + "address": "172.26.0.2:27017", + "type": "mongodb" } } \ No newline at end of file diff --git a/metricbeat/module/mongodb/dbstats/dbstats.go b/metricbeat/module/mongodb/dbstats/dbstats.go index 626d1b7b135..4db9779f3c4 100644 --- a/metricbeat/module/mongodb/dbstats/dbstats.go +++ b/metricbeat/module/mongodb/dbstats/dbstats.go @@ -18,7 +18,7 @@ package dbstats import ( - "errors" + "github.com/pkg/errors" "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/logp" @@ -26,7 +26,7 @@ import ( "github.com/elastic/beats/metricbeat/module/mongodb" ) -var debugf = logp.MakeDebug("mongodb.dbstats") +var logger = logp.NewLogger("mongodb.dbstats") // init registers the MetricSet with the central registry. // The New method will be called after the setup of the module and before starting to fetch data @@ -56,28 +56,30 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { return &MetricSet{ms}, nil } -// Fetch methods implements the data gathering and data conversion to the right format -// It returns the event which is then forward to the output. In case of an error, a -// descriptive error must be returned. -func (m *MetricSet) Fetch() ([]common.MapStr, error) { - // events is the list of events collected from each of the databases. - var events []common.MapStr - +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(reporter mb.ReporterV2) { // instantiate direct connections to each of the configured Mongo hosts mongoSession, err := mongodb.NewDirectSession(m.DialInfo) if err != nil { - return nil, err + logger.Error(err) + reporter.Error(err) + return } defer mongoSession.Close() // Get the list of databases names, which we'll use to call db.stats() on each dbNames, err := mongoSession.DatabaseNames() if err != nil { - logp.Err("Error retrieving database names from Mongo instance") - return events, err + err = errors.Wrap(err, "Error retrieving database names from Mongo instance") + logger.Error(err) + reporter.Error(err) + return } // for each database, call db.stats() and append to events + totalEvents := 0 for _, dbName := range dbNames { db := mongoSession.DB(dbName) @@ -85,18 +87,23 @@ func (m *MetricSet) Fetch() ([]common.MapStr, error) { err := db.Run("dbStats", &result) if err != nil { - logp.Err("Failed to retrieve stats for db %s", dbName) + err = errors.Wrapf(err, "Failed to retrieve stats for db %s", dbName) + logger.Error(err) continue } data, _ := schema.Apply(result) - events = append(events, data) + if reported := reporter.Event(mb.Event{MetricSetFields: data}); !reported { + logger.Debug("error reporting event") + return + } + totalEvents++ } - if len(events) == 0 { + if totalEvents == 0 { err = errors.New("Failed to retrieve dbStats from any databases") - logp.Err(err.Error()) - return events, err + logger.Error(err) + reporter.Error(err) } - return events, nil + return } diff --git a/metricbeat/module/mongodb/dbstats/dbstats_integration_test.go b/metricbeat/module/mongodb/dbstats/dbstats_integration_test.go index 512ef1c2b8e..9ef22d6a700 100644 --- a/metricbeat/module/mongodb/dbstats/dbstats_integration_test.go +++ b/metricbeat/module/mongodb/dbstats/dbstats_integration_test.go @@ -32,44 +32,46 @@ import ( func TestFetch(t *testing.T) { compose.EnsureUp(t, "mongodb") - f := mbtest.NewEventsFetcher(t, getConfig()) - events, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } + assert.NotEmpty(t, events) for _, event := range events { t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) + metricsetFields := event.MetricSetFields // Check a few event Fields - db := event["db"].(string) + db := metricsetFields["db"].(string) assert.NotEqual(t, db, "") - collections := event["collections"].(int64) + collections := metricsetFields["collections"].(int64) assert.True(t, collections > 0) - objects := event["objects"].(int64) + objects := metricsetFields["objects"].(int64) assert.True(t, objects > 0) - avgObjSize, err := event.GetValue("avg_obj_size.bytes") + avgObjSize, err := metricsetFields.GetValue("avg_obj_size.bytes") assert.NoError(t, err) assert.True(t, avgObjSize.(int64) > 0) - dataSize, err := event.GetValue("data_size.bytes") + dataSize, err := metricsetFields.GetValue("data_size.bytes") assert.NoError(t, err) assert.True(t, dataSize.(int64) > 0) - storageSize, err := event.GetValue("storage_size.bytes") + storageSize, err := metricsetFields.GetValue("storage_size.bytes") assert.NoError(t, err) assert.True(t, storageSize.(int64) > 0) - numExtents := event["num_extents"].(int64) + numExtents := metricsetFields["num_extents"].(int64) assert.True(t, numExtents >= 0) - indexes := event["indexes"].(int64) + indexes := metricsetFields["indexes"].(int64) assert.True(t, indexes >= 0) - indexSize, err := event.GetValue("index_size.bytes") + indexSize, err := metricsetFields.GetValue("index_size.bytes") assert.NoError(t, err) assert.True(t, indexSize.(int64) > 0) } @@ -78,9 +80,14 @@ func TestFetch(t *testing.T) { func TestData(t *testing.T) { compose.EnsureUp(t, "mongodb") - f := mbtest.NewEventsFetcher(t, getConfig()) - err := mbtest.WriteEvents(f, t) - if err != nil { + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) + } + assert.NotEmpty(t, events) + + if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { t.Fatal("write", err) } } From 1e9f8f6a3fd7d16e0b595f5fd2cf2591ab4ff278 Mon Sep 17 00:00:00 2001 From: Alex K <8418476+fearful-symmetry@users.noreply.github.com> Date: Wed, 6 Mar 2019 08:15:01 -0600 Subject: [PATCH 148/332] Migrate golang/expvar to ReporterV2 (#11103) * Migrate golang/expvar to ReporterV2 --- .../module/golang/expvar/_meta/data.json | 1354 ++++++++--------- metricbeat/module/golang/expvar/expvar.go | 19 +- .../golang/expvar/expvar_integration_test.go | 23 +- 3 files changed, 702 insertions(+), 694 deletions(-) diff --git a/metricbeat/module/golang/expvar/_meta/data.json b/metricbeat/module/golang/expvar/_meta/data.json index 92033fe3ce2..02860918fd9 100644 --- a/metricbeat/module/golang/expvar/_meta/data.json +++ b/metricbeat/module/golang/expvar/_meta/data.json @@ -11,22 +11,22 @@ }, "golang": { "metricbeat": { - "beat.cpu.system.ticks": 1860, - "beat.cpu.system.time.ms": 1860, - "beat.cpu.total.ticks": 4080, - "beat.cpu.total.time.ms": 4080, - "beat.cpu.total.value": 4080, - "beat.cpu.user.ticks": 2220, - "beat.cpu.user.time.ms": 2220, + "beat.cpu.system.ticks": 166690, + "beat.cpu.system.time.ms": 166690, + "beat.cpu.total.ticks": 292490, + "beat.cpu.total.time.ms": 292490, + "beat.cpu.total.value": 292490, + "beat.cpu.user.ticks": 125800, + "beat.cpu.user.time.ms": 125800, "beat.handles.limit.hard": 1048576, "beat.handles.limit.soft": 1048576, "beat.handles.open": 7, - "beat.info.ephemeral_id": "f9b12c67-b693-4265-b4d4-cd41d633cc7b", - "beat.info.uptime.ms": 1535445, - "beat.memstats.gc_next": 22896432, - "beat.memstats.memory_alloc": 13341568, - "beat.memstats.memory_total": 457340536, - "beat.memstats.rss": 55713792, + "beat.info.ephemeral_id": "ed780330-bb9e-4e3c-aa77-1d943026f757", + "beat.info.uptime.ms": 87848990, + "beat.memstats.gc_next": 52327904, + "beat.memstats.memory_alloc": 26333672, + "beat.memstats.memory_total": 24294102600, + "beat.memstats.rss": 87486464, "cmdline": "metricbeat --httpprof :6060 -e", "libbeat.config.module.running": 0, "libbeat.config.module.starts": 0, @@ -45,17 +45,17 @@ "libbeat.output.write.bytes": 0, "libbeat.output.write.errors": 0, "libbeat.pipeline.clients": 6, - "libbeat.pipeline.events.active": 1423, + "libbeat.pipeline.events.active": 4119, "libbeat.pipeline.events.dropped": 0, "libbeat.pipeline.events.failed": 0, - "libbeat.pipeline.events.filtered": 26, - "libbeat.pipeline.events.published": 1423, - "libbeat.pipeline.events.retry": 348, - "libbeat.pipeline.events.total": 1449, + "libbeat.pipeline.events.filtered": 75, + "libbeat.pipeline.events.published": 4116, + "libbeat.pipeline.events.retry": 18561, + "libbeat.pipeline.events.total": 4194, "libbeat.pipeline.queue.acked": 0, "memstats": { - "Alloc": 13572176, - "BuckHashSys": 1547603, + "Alloc": 26413208, + "BuckHashSys": 1844227, "BySize": [ { "Frees": 0, @@ -63,113 +63,113 @@ "Size": 0 }, { - "Frees": 43687, - "Mallocs": 44075, + "Frees": 2260008, + "Mallocs": 2260217, "Size": 8 }, { - "Frees": 564377, - "Mallocs": 582767, + "Frees": 29751860, + "Mallocs": 29792623, "Size": 16 }, { - "Frees": 1263596, - "Mallocs": 1280262, + "Frees": 65505746, + "Mallocs": 65517841, "Size": 32 }, { - "Frees": 177107, - "Mallocs": 201267, + "Frees": 8254470, + "Mallocs": 8318036, "Size": 48 }, { - "Frees": 22479, - "Mallocs": 23099, + "Frees": 1030928, + "Mallocs": 1031481, "Size": 64 }, { - "Frees": 90378, - "Mallocs": 91273, + "Frees": 4787005, + "Mallocs": 4788157, "Size": 80 }, { - "Frees": 20140, - "Mallocs": 20865, + "Frees": 721021, + "Mallocs": 722436, "Size": 96 }, { - "Frees": 72469, - "Mallocs": 72967, + "Frees": 3417396, + "Mallocs": 3417608, "Size": 112 }, { - "Frees": 31038, - "Mallocs": 31842, + "Frees": 1306499, + "Mallocs": 1308337, "Size": 128 }, { - "Frees": 9037, - "Mallocs": 9093, + "Frees": 416707, + "Mallocs": 416725, "Size": 144 }, { - "Frees": 1957, - "Mallocs": 2112, + "Frees": 87880, + "Mallocs": 88025, "Size": 160 }, { - "Frees": 3257, - "Mallocs": 3292, + "Frees": 166727, + "Mallocs": 166750, "Size": 176 }, { - "Frees": 381, - "Mallocs": 394, + "Frees": 4953, + "Mallocs": 4963, "Size": 192 }, { - "Frees": 80256, - "Mallocs": 80752, + "Frees": 4291495, + "Mallocs": 4291665, "Size": 208 }, { - "Frees": 1419, - "Mallocs": 1428, + "Frees": 79970, + "Mallocs": 79975, "Size": 224 }, { - "Frees": 47, - "Mallocs": 66, + "Frees": 90, + "Mallocs": 109, "Size": 240 }, { - "Frees": 3559, - "Mallocs": 3609, + "Frees": 165264, + "Mallocs": 165303, "Size": 256 }, { - "Frees": 90124, - "Mallocs": 112098, + "Frees": 3687232, + "Mallocs": 3747894, "Size": 288 }, { - "Frees": 154, - "Mallocs": 172, + "Frees": 171547, + "Mallocs": 171570, "Size": 320 }, { - "Frees": 4368, - "Mallocs": 4438, + "Frees": 242992, + "Mallocs": 243050, "Size": 352 }, { - "Frees": 6, - "Mallocs": 147, + "Frees": 9, + "Mallocs": 252, "Size": 384 }, { - "Frees": 5108, - "Mallocs": 5156, + "Frees": 256328, + "Mallocs": 256350, "Size": 416 }, { @@ -178,28 +178,28 @@ "Size": 448 }, { - "Frees": 466, - "Mallocs": 474, + "Frees": 1352, + "Mallocs": 1357, "Size": 480 }, { - "Frees": 35150, - "Mallocs": 35333, + "Frees": 1847711, + "Mallocs": 1847744, "Size": 512 }, { - "Frees": 6533, - "Mallocs": 6937, + "Frees": 332390, + "Mallocs": 333359, "Size": 576 }, { - "Frees": 117, - "Mallocs": 177, + "Frees": 1248, + "Mallocs": 1308, "Size": 640 }, { - "Frees": 113, - "Mallocs": 119, + "Frees": 317, + "Mallocs": 323, "Size": 704 }, { @@ -208,48 +208,48 @@ "Size": 768 }, { - "Frees": 14199, - "Mallocs": 14287, + "Frees": 754677, + "Mallocs": 754702, "Size": 896 }, { - "Frees": 176, - "Mallocs": 198, + "Frees": 4269, + "Mallocs": 4289, "Size": 1024 }, { - "Frees": 1637, - "Mallocs": 1817, + "Frees": 85001, + "Mallocs": 85471, "Size": 1152 }, { - "Frees": 4756, - "Mallocs": 4799, + "Frees": 250196, + "Mallocs": 250219, "Size": 1280 }, { - "Frees": 56, - "Mallocs": 61, + "Frees": 158, + "Mallocs": 163, "Size": 1408 }, { - "Frees": 34304, - "Mallocs": 34472, + "Frees": 1829948, + "Mallocs": 1829970, "Size": 1536 }, { - "Frees": 9970, - "Mallocs": 10042, + "Frees": 503683, + "Mallocs": 503710, "Size": 1792 }, { - "Frees": 294, - "Mallocs": 328, + "Frees": 8355, + "Mallocs": 8387, "Size": 2048 }, { - "Frees": 6144, - "Mallocs": 6182, + "Frees": 329669, + "Mallocs": 329681, "Size": 2304 }, { @@ -258,8 +258,8 @@ "Size": 2688 }, { - "Frees": 56, - "Mallocs": 60, + "Frees": 158, + "Mallocs": 162, "Size": 3072 }, { @@ -273,58 +273,58 @@ "Size": 3456 }, { - "Frees": 29633, - "Mallocs": 29798, + "Frees": 1507173, + "Mallocs": 1507210, "Size": 4096 }, { - "Frees": 6628, - "Mallocs": 6657, + "Frees": 330041, + "Mallocs": 330045, "Size": 4864 }, { - "Frees": 510, - "Mallocs": 517, + "Frees": 517, + "Mallocs": 524, "Size": 5376 }, { - "Frees": 2001, - "Mallocs": 2021, + "Frees": 81071, + "Mallocs": 81079, "Size": 6144 }, { - "Frees": 1, - "Mallocs": 1, + "Frees": 774, + "Mallocs": 774, "Size": 6528 }, { - "Frees": 1, - "Mallocs": 1, + "Frees": 595, + "Mallocs": 595, "Size": 6784 }, { - "Frees": 0, - "Mallocs": 0, + "Frees": 332, + "Mallocs": 332, "Size": 6912 }, { - "Frees": 27, - "Mallocs": 30, + "Frees": 4708, + "Mallocs": 4711, "Size": 8192 }, { - "Frees": 1215, - "Mallocs": 1225, + "Frees": 84398, + "Mallocs": 84403, "Size": 9472 }, { - "Frees": 0, - "Mallocs": 0, + "Frees": 902, + "Mallocs": 902, "Size": 9728 }, { - "Frees": 1, - "Mallocs": 1, + "Frees": 69178, + "Mallocs": 69179, "Size": 10240 }, { @@ -348,13 +348,13 @@ "Size": 14336 }, { - "Frees": 13, - "Mallocs": 13, + "Frees": 14, + "Mallocs": 14, "Size": 16384 }, { - "Frees": 1, - "Mallocs": 2, + "Frees": 68815, + "Mallocs": 68816, "Size": 18432 }, { @@ -365,582 +365,582 @@ ], "DebugGC": false, "EnableGC": true, - "Frees": 2830660, - "GCCPUFraction": 0.0000798538053427137, - "GCSys": 999424, - "HeapAlloc": 13572176, - "HeapIdle": 6979584, - "HeapInuse": 16187392, - "HeapObjects": 87837, + "Frees": 144376316, + "GCCPUFraction": 0.00003517968356283283, + "GCSys": 2236416, + "HeapAlloc": 26413208, + "HeapIdle": 20283392, + "HeapInuse": 32210944, + "HeapObjects": 185078, "HeapReleased": 0, - "HeapSys": 23166976, - "LastGC": 1548771750853510700, - "Lookups": 82771, + "HeapSys": 52494336, + "LastGC": 1551819055172012300, + "Lookups": 4343732, "MCacheInuse": 6944, "MCacheSys": 16384, - "MSpanInuse": 307800, - "MSpanSys": 376832, - "Mallocs": 2918497, - "NextGC": 22896432, + "MSpanInuse": 735072, + "MSpanSys": 884736, + "Mallocs": 144561394, + "NextGC": 52327904, "NumForcedGC": 0, - "NumGC": 77, - "OtherSys": 850853, + "NumGC": 1087, + "OtherSys": 804085, "PauseEnd": [ - 1548770222000971300, - 1548770222006573600, - 1548770222008825300, - 1548770225031487700, - 1548770229917994200, - 1548770238921288400, - 1548770251057301200, - 1548770260968103400, - 1548770273922676000, - 1548770285006287600, - 1548770295549599200, - 1548770308503581200, - 1548770321494264600, - 1548770334961248500, - 1548770345804532000, - 1548770359924752100, - 1548770374953077500, - 1548770390456140500, - 1548770404909611300, - 1548770418552278000, - 1548770434854504400, - 1548770448883836400, - 1548770464462267000, - 1548770478556541000, - 1548770494842780700, - 1548770511201850600, - 1548770524830849500, - 1548770542548244700, - 1548770557748526000, - 1548770574789822700, - 1548770590459284500, - 1548770607830817000, - 1548770624765460200, - 1548770643750113300, - 1548770661129715000, - 1548770679463727800, - 1548770699042123300, - 1548770718674928000, - 1548770737166864000, - 1548770757934666800, - 1548770775252030700, - 1548770794638017800, - 1548770815551938800, - 1548770834616155600, - 1548770854594872600, - 1548770877266070000, - 1548770899300212700, - 1548770922229096400, - 1548770944519160600, - 1548770966524967000, - 1548770991175950800, - 1548771014487278300, - 1548771039452722000, - 1548771064442207500, - 1548771088662137600, - 1548771114402036000, - 1548771139493572400, - 1548771164380947700, - 1548771190643361000, - 1548771217259113700, - 1548771244317900500, - 1548771274282870500, - 1548771303373115600, - 1548771331521851100, - 1548771362027343600, - 1548771392057917400, - 1548771422457756700, - 1548771452947310000, - 1548771484135008800, - 1548771514121404400, - 1548771547562949400, - 1548771580511023000, - 1548771614055373800, - 1548771648005372700, - 1548771679049281800, - 1548771713982855000, - 1548771750853510700, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 + 1551813673522095000, + 1551813760290548700, + 1551813847190622500, + 1551813934200350700, + 1551814019721081600, + 1551814106939931400, + 1551814194787569000, + 1551814281548459800, + 1551814368492396500, + 1551814454527853800, + 1551814542119804000, + 1551814629649751800, + 1551814716395951800, + 1551814804210529500, + 1551814890615334400, + 1551814978246175000, + 1551815065421775600, + 1551815153390955800, + 1551815240459785200, + 1551815326193419800, + 1551815413860383500, + 1551815501772679700, + 1551815588006216400, + 1551815675091119800, + 1551815761793016300, + 1551815849517625000, + 1551815935297447000, + 1551816023119552000, + 1551816109742317000, + 1551816196383755000, + 1551816281910279400, + 1551816369138096000, + 1551816456444772000, + 1551816544463502800, + 1551816631379998700, + 1551816717725622500, + 1551816804412327000, + 1551816891003677200, + 1551816978029977300, + 1551817064869547300, + 1551817152548437500, + 1551817239386712000, + 1551817324881343500, + 1551817411567689500, + 1551817497956043500, + 1551817584365566700, + 1551817670801177600, + 1551817757319115300, + 1551817843753421300, + 1551817929208882400, + 1551818015703402000, + 1551818102313531400, + 1551818188852253200, + 1551818274246668000, + 1551818361273798100, + 1551818448904188000, + 1551818535388231400, + 1551818621922602000, + 1551818706218998500, + 1551818792711956200, + 1551818879595116300, + 1551818967168253000, + 1551819055172012300, + 1551796934883408000, + 1551797021248211200, + 1551797107751383300, + 1551797195222413600, + 1551797283189797600, + 1551797369177632300, + 1551797456524319500, + 1551797542181850600, + 1551797630514863400, + 1551797717763169800, + 1551797805427074300, + 1551797891788491500, + 1551797978864807400, + 1551798065588669000, + 1551798151326969600, + 1551798239535629000, + 1551798326356424400, + 1551798413341830100, + 1551798500461506600, + 1551798587951146200, + 1551798673754270200, + 1551798761447464200, + 1551798848875440400, + 1551798936054377200, + 1551799021834681600, + 1551799107136041700, + 1551799193854201900, + 1551799280921340400, + 1551799369022987800, + 1551799455534770000, + 1551799542074070500, + 1551799629776769000, + 1551799716017635800, + 1551799802785858600, + 1551799888925246700, + 1551799975612325400, + 1551800062708811300, + 1551800149194365000, + 1551800235751162000, + 1551800322693501200, + 1551800409568045800, + 1551800496085409000, + 1551800583059036200, + 1551800668750943500, + 1551800756404699000, + 1551800843149957600, + 1551800929235447800, + 1551801015888609500, + 1551801103210902000, + 1551801190067903700, + 1551801278423279000, + 1551801364164436700, + 1551801448666044000, + 1551801534848840400, + 1551801621663551500, + 1551801707933268000, + 1551801794317972500, + 1551801880680772600, + 1551801968184599000, + 1551802054810856000, + 1551802140391363800, + 1551802227860272400, + 1551802313366069000, + 1551802399985518000, + 1551802487183356000, + 1551802574032541200, + 1551802660872278800, + 1551802747890506800, + 1551802835392356000, + 1551802921037066000, + 1551803007089838600, + 1551803095687771000, + 1551803183049985000, + 1551803270445534700, + 1551803356331776000, + 1551803443692611800, + 1551803531417985800, + 1551803618719146200, + 1551803707210230300, + 1551803794789760800, + 1551803882673225200, + 1551803971459868400, + 1551804058578875400, + 1551804145960830200, + 1551804234254888700, + 1551804322256049400, + 1551804410265957400, + 1551804497226090800, + 1551804584053460000, + 1551804671152900600, + 1551804757897356500, + 1551804845449297200, + 1551804932020029700, + 1551805020157064400, + 1551805107257989000, + 1551805195756843000, + 1551805281765421300, + 1551805368207391200, + 1551805455844940000, + 1551805541505774300, + 1551805628455398700, + 1551805715152426800, + 1551805803356083200, + 1551805890093024800, + 1551805976698235600, + 1551806063405247700, + 1551806147778785800, + 1551806235017114000, + 1551806322267704300, + 1551806408876106500, + 1551806495885739000, + 1551806580581932300, + 1551806667097105000, + 1551806752682205000, + 1551806838448827000, + 1551806925195549700, + 1551807011741980200, + 1551807098721375500, + 1551807185978657800, + 1551807273380151800, + 1551807361262365400, + 1551807448039038000, + 1551807533444213800, + 1551807619848523800, + 1551807706214843100, + 1551807791497103600, + 1551807877970536700, + 1551807963287305200, + 1551808049742755300, + 1551808135095061000, + 1551808222020724200, + 1551808307935440000, + 1551808394622856200, + 1551808481461249000, + 1551808568136231700, + 1551808654787261400, + 1551808741431564500, + 1551808828836320000, + 1551808916029792300, + 1551809001543323600, + 1551809087926328800, + 1551809173839670800, + 1551809260959386600, + 1551809347467765800, + 1551809433043349000, + 1551809520551369000, + 1551809607539242500, + 1551809695671268400, + 1551809780606221000, + 1551809867569511400, + 1551809954451390200, + 1551810041665356300, + 1551810128427694800, + 1551810214973528300, + 1551810300475295700, + 1551810386957216000, + 1551810472868708000, + 1551810559555873000, + 1551810645177904400, + 1551810732307275800, + 1551810819084136200, + 1551810904761953800, + 1551810991401248000, + 1551811078766944000, + 1551811166044107300, + 1551811253602546400, + 1551811340892026400, + 1551811426723096300, + 1551811514132644900, + 1551811601291153700, + 1551811688391390000, + 1551811776222473200, + 1551811864259342800, + 1551811951514730800, + 1551812038325298200, + 1551812127268150000, + 1551812214801797600, + 1551812300436868000, + 1551812386985713000, + 1551812473741197800, + 1551812561146193000, + 1551812647184361500, + 1551812733805924400, + 1551812821584958700, + 1551812908693565000, + 1551812996554721800, + 1551813083661930800, + 1551813170106764800, + 1551813254586326300, + 1551813337054424000, + 1551813420426787600, + 1551813505845955300, + 1551813588899750000 ], "PauseNs": [ - 458980, - 301733, - 127114, - 3874883, - 159708, - 126020, - 126166, - 131653, - 103827, - 2193721, - 112333, - 414635, - 130354, - 483050, - 126650, - 150304, - 7537934, - 261215, - 177228, - 247308, - 210217, - 110359, - 257047, - 148272, - 147739, - 111328, - 209884, - 270037, - 105238, - 1560299, - 5714928, - 478890, - 157635, - 425186, - 184394, - 149171, - 180842, - 412810, - 297492, - 300551, - 3122015, - 2417008, - 187108, - 811863, - 267287, - 102655, - 139535, - 141872, - 178276, - 172814, - 193132, - 196409, - 859709, - 210202, - 117229, - 123148, - 1573929, - 750539, - 121400, - 4315807, - 2422124, - 116729, - 322386, - 1044798, - 472123, - 504382, - 2871295, - 129073, - 228562, - 197908, - 239351, - 119675, - 227548, - 586891, - 964159, - 2978024, - 96146, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 + 226100, + 322500, + 260100, + 448500, + 207500, + 427400, + 1550700, + 214100, + 1427500, + 373300, + 5243700, + 160200, + 600500, + 135800, + 943800, + 270300, + 893500, + 339600, + 384000, + 299900, + 156900, + 171100, + 1642700, + 514800, + 165000, + 249100, + 1508600, + 396800, + 197900, + 243800, + 207400, + 160300, + 246100, + 617100, + 139600, + 353200, + 314900, + 284000, + 2825600, + 1395100, + 276200, + 271900, + 108200, + 362500, + 193000, + 271600, + 181300, + 307300, + 257700, + 232200, + 562800, + 480200, + 332700, + 751400, + 363500, + 219100, + 2766100, + 481800, + 162400, + 1434800, + 347600, + 212800, + 578900, + 238000, + 1019300, + 213300, + 239600, + 188800, + 1122900, + 438500, + 1379200, + 324700, + 119200, + 242100, + 2210500, + 197700, + 234400, + 2782300, + 271300, + 163400, + 1219300, + 161600, + 361900, + 330400, + 152600, + 178200, + 2522200, + 468700, + 240300, + 225000, + 874800, + 778300, + 350300, + 289800, + 222100, + 264400, + 350100, + 159400, + 151200, + 2344800, + 616200, + 579900, + 2442800, + 291800, + 2999000, + 484900, + 238300, + 219200, + 614100, + 316700, + 1619200, + 175400, + 228000, + 280100, + 274300, + 312800, + 157100, + 891200, + 217400, + 223600, + 765600, + 419700, + 286500, + 191300, + 906200, + 432400, + 216400, + 473500, + 188900, + 1539000, + 156300, + 215100, + 543400, + 265700, + 1357700, + 115100, + 358800, + 245700, + 247100, + 254100, + 578800, + 1265000, + 254800, + 170600, + 390600, + 544800, + 1177300, + 157300, + 276100, + 296500, + 260100, + 318200, + 458400, + 1839700, + 745300, + 351900, + 1561600, + 264000, + 2498100, + 304500, + 338300, + 329300, + 803600, + 820400, + 715800, + 872500, + 894800, + 236000, + 220700, + 281900, + 200800, + 250200, + 321800, + 1590900, + 1573900, + 137800, + 361300, + 376400, + 240900, + 317100, + 3437200, + 1722100, + 257600, + 189800, + 292000, + 223800, + 1947100, + 2491900, + 162300, + 333200, + 935100, + 383500, + 588700, + 365200, + 138100, + 578300, + 375000, + 251500, + 192100, + 423400, + 514900, + 723400, + 291900, + 322100, + 1684700, + 137800, + 193400, + 2769300, + 437200, + 2782300, + 183700, + 123700, + 252800, + 471500, + 304500, + 197900, + 201200, + 281900, + 370500, + 194300, + 125100, + 158300, + 864300, + 1291100, + 315800, + 209100, + 277300, + 748300, + 186800, + 250200, + 294900, + 206500, + 2523200, + 186200, + 451800, + 266300, + 275900, + 188300, + 285200, + 85100, + 216700, + 254500, + 239000, + 3545400, + 297300, + 182400, + 208900, + 1895300, + 372800, + 160200, + 215400, + 1316900, + 951900, + 302100, + 222300, + 310900 ], - "PauseTotalNs": 58200246, - "StackInuse": 950272, - "StackSys": 950272, - "Sys": 27908344, - "TotalAlloc": 457571144 + "PauseTotalNs": 568650700, + "StackInuse": 983040, + "StackSys": 983040, + "Sys": 59263224, + "TotalAlloc": 24294182136 }, - "metricbeat.system.cpu.events": 154, + "metricbeat.system.cpu.events": 447, "metricbeat.system.cpu.failures": 0, - "metricbeat.system.cpu.success": 154, - "metricbeat.system.filesystem.events": 26, + "metricbeat.system.cpu.success": 448, + "metricbeat.system.filesystem.events": 76, "metricbeat.system.filesystem.failures": 0, - "metricbeat.system.filesystem.success": 26, - "metricbeat.system.fsstat.events": 26, + "metricbeat.system.filesystem.success": 77, + "metricbeat.system.fsstat.events": 76, "metricbeat.system.fsstat.failures": 0, - "metricbeat.system.fsstat.success": 26, - "metricbeat.system.load.events": 154, + "metricbeat.system.fsstat.success": 77, + "metricbeat.system.load.events": 447, "metricbeat.system.load.failures": 0, - "metricbeat.system.load.success": 154, - "metricbeat.system.memory.events": 154, + "metricbeat.system.load.success": 448, + "metricbeat.system.memory.events": 448, "metricbeat.system.memory.failures": 0, - "metricbeat.system.memory.success": 154, - "metricbeat.system.network.events": 616, + "metricbeat.system.memory.success": 449, + "metricbeat.system.network.events": 1792, "metricbeat.system.network.failures": 0, - "metricbeat.system.network.success": 616, - "metricbeat.system.process.events": 163, + "metricbeat.system.network.success": 1793, + "metricbeat.system.process.events": 457, "metricbeat.system.process.failures": 0, - "metricbeat.system.process.success": 163, - "metricbeat.system.process_summary.events": 154, + "metricbeat.system.process.success": 458, + "metricbeat.system.process_summary.events": 447, "metricbeat.system.process_summary.failures": 0, - "metricbeat.system.process_summary.success": 154, - "metricbeat.system.uptime.events": 2, + "metricbeat.system.process_summary.success": 448, + "metricbeat.system.uptime.events": 7, "metricbeat.system.uptime.failures": 0, - "metricbeat.system.uptime.success": 2, + "metricbeat.system.uptime.success": 8, "system.cpu.cores": 4, - "system.load.1": 0.88, - "system.load.15": 1.69, - "system.load.5": 1.07, - "system.load.norm.1": 0.22, - "system.load.norm.15": 0.4225, - "system.load.norm.5": 0.2675 + "system.load.1": 0.3, + "system.load.15": 0.24, + "system.load.5": 0.23, + "system.load.norm.1": 0.075, + "system.load.norm.15": 0.06, + "system.load.norm.5": 0.0575 } }, "metricset": { diff --git a/metricbeat/module/golang/expvar/expvar.go b/metricbeat/module/golang/expvar/expvar.go index 26f8c46c47e..776fa243380 100644 --- a/metricbeat/module/golang/expvar/expvar.go +++ b/metricbeat/module/golang/expvar/expvar.go @@ -18,13 +18,16 @@ package expvar import ( - "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/logp" + "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" "github.com/elastic/beats/metricbeat/module/golang" ) +var logger = logp.NewLogger("golang.expvar") + const ( defaultScheme = "http" defaultPath = "/debug/vars" @@ -82,18 +85,20 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // Fetch methods implements the data gathering and data conversion to the right format // It returns the event which is then forward to the output. In case of an error, a // descriptive error must be returned. -func (m *MetricSet) Fetch() (common.MapStr, error) { +func (m *MetricSet) Fetch(reporter mb.ReporterV2) { json, err := m.http.FetchJSON() if err != nil { - return nil, err + logger.Error(err) + reporter.Error(err) + return } //flatten cmdline json["cmdline"] = golang.GetCmdStr(json["cmdline"]) - //set namespace - json[mb.NamespaceKey] = m.namespace - - return json, nil + reporter.Event(mb.Event{ + MetricSetFields: json, + Namespace: m.Module().Name() + "." + m.namespace, + }) } diff --git a/metricbeat/module/golang/expvar/expvar_integration_test.go b/metricbeat/module/golang/expvar/expvar_integration_test.go index 9f5c8779413..8ee3cceaf69 100644 --- a/metricbeat/module/golang/expvar/expvar_integration_test.go +++ b/metricbeat/module/golang/expvar/expvar_integration_test.go @@ -32,24 +32,27 @@ import ( func TestData(t *testing.T) { compose.EnsureUp(t, "golang") - f := mbtest.NewEventFetcher(t, getConfig()) - err := mbtest.WriteEvent(f, t) - if err != nil { - t.Fatal("write", err) + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + + err := mbtest.WriteEventsReporterV2(f, t, "") + if !assert.NoError(t, err) { + t.FailNow() } } func TestFetch(t *testing.T) { compose.EnsureUp(t, "golang") - f := mbtest.NewEventFetcher(t, getConfig()) - event, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } - assert.NotNil(t, event) - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) + assert.NotEmpty(t, events) + + t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), events[0]) } func getConfig() map[string]interface{} { From 53906920fcd2a1172c003aaa173bfff9739ec262 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Berfin=20Sar=C4=B1?= Date: Wed, 6 Mar 2019 17:17:56 +0300 Subject: [PATCH 149/332] [Metricbeat] Migrate Couchbase node to use ReporterV2 interface (#11047) --- .../module/couchbase/node/_meta/data.json | 44 +++++++++++-------- metricbeat/module/couchbase/node/node.go | 23 +++++++--- .../couchbase/node/node_integration_test.go | 28 ++++++++++-- metricbeat/module/couchbase/node/node_test.go | 16 ++++--- 4 files changed, 77 insertions(+), 34 deletions(-) diff --git a/metricbeat/module/couchbase/node/_meta/data.json b/metricbeat/module/couchbase/node/_meta/data.json index c11630357da..750af9accd9 100644 --- a/metricbeat/module/couchbase/node/_meta/data.json +++ b/metricbeat/module/couchbase/node/_meta/data.json @@ -1,6 +1,6 @@ { "@timestamp": "2017-10-12T08:05:34.853Z", - "beat": { + "agent": { "hostname": "host.example.com", "name": "host.example.com" }, @@ -10,10 +10,10 @@ "couch": { "docs": { "data_size": { - "bytes": 11467776 + "bytes": 19151872 }, "disk_size": { - "bytes": 11491038 + "bytes": 22895585 } }, "spatial": { @@ -26,15 +26,15 @@ }, "views": { "data_size": { - "bytes": 769520 + "bytes": 769446 }, "disk_size": { - "bytes": 769520 + "bytes": 769446 } } }, "cpu_utilization_rate": { - "pct": 97 + "pct": 19.64735516372796 }, "current_items": { "total": 7303, @@ -42,45 +42,51 @@ }, "ep_bg_fetched": 0, "get_hits": 0, - "hostname": "172.18.0.19:8091", + "hostname": "172.21.0.2:8091", "mcd_memory": { "allocated": { - "bytes": 3157 + "bytes": 12728 }, "reserved": { - "bytes": 3157 + "bytes": 12728 } }, "memory": { "free": { - "bytes": 1033420800 + "bytes": 7447130112 }, "total": { - "bytes": 4139122688 + "bytes": 16683503616 }, "used": { - "bytes": 53962032 + "bytes": 53961776 } }, "ops": 0, "swap": { "total": { - "bytes": 1073737728 + "bytes": 2147479552 }, "used": { - "bytes": 1015877632 + "bytes": 0 } }, "uptime": { - "sec": 382 + "sec": 10612 }, "vb_replica_curr_items": 0 } }, + "event": { + "dataset": "couchbase.node", + "duration": 115000, + "module": "couchbase" + }, "metricset": { - "host": "couchbase:8091", - "module": "couchbase", - "name": "node", - "rtt": 115 + "name": "node" + }, + "service": { + "address": "localhost:8091", + "type": "couchbase" } } \ No newline at end of file diff --git a/metricbeat/module/couchbase/node/node.go b/metricbeat/module/couchbase/node/node.go index 2fb17c6d0b2..84a0dad9fd9 100644 --- a/metricbeat/module/couchbase/node/node.go +++ b/metricbeat/module/couchbase/node/node.go @@ -18,7 +18,7 @@ package node import ( - "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" @@ -36,6 +36,8 @@ var ( }.Build() ) +var logger = logp.NewLogger("couchbase.node") + // init registers the MetricSet with the central registry. // The New method will be called after the setup of the module and before starting to fetch data func init() { @@ -63,14 +65,21 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { }, nil } -// Fetch methods implements the data gathering and data conversion to the right format -// It returns the event which is then forward to the output. In case of an error, a -// descriptive error must be returned. -func (m *MetricSet) Fetch() ([]common.MapStr, error) { +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(reporter mb.ReporterV2) { content, err := m.http.FetchContent() if err != nil { - return nil, err + logger.Error(err) + reporter.Error(err) + return + } + + events := eventsMapping(content) + for _, event := range events { + reporter.Event(mb.Event{MetricSetFields: event}) } - return eventsMapping(content), nil + return } diff --git a/metricbeat/module/couchbase/node/node_integration_test.go b/metricbeat/module/couchbase/node/node_integration_test.go index 5b8f9c1da16..9513e91cf7a 100644 --- a/metricbeat/module/couchbase/node/node_integration_test.go +++ b/metricbeat/module/couchbase/node/node_integration_test.go @@ -22,15 +22,37 @@ package node import ( "testing" + "github.com/stretchr/testify/assert" + + "github.com/elastic/beats/libbeat/tests/compose" mbtest "github.com/elastic/beats/metricbeat/mb/testing" "github.com/elastic/beats/metricbeat/module/couchbase" ) +func TestFetch(t *testing.T) { + compose.EnsureUp(t, "couchbase") + + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) + } + + assert.NotEmpty(t, events) + t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), events[0]) +} + func TestData(t *testing.T) { - f := mbtest.NewEventsFetcher(t, getConfig()) + compose.EnsureUp(t, "couchbase") + + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) + } - err := mbtest.WriteEvents(f, t) - if err != nil { + assert.NotEmpty(t, events) + if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { t.Fatal("write", err) } } diff --git a/metricbeat/module/couchbase/node/node_test.go b/metricbeat/module/couchbase/node/node_test.go index 45567bd9641..293195de01f 100644 --- a/metricbeat/module/couchbase/node/node_test.go +++ b/metricbeat/module/couchbase/node/node_test.go @@ -34,8 +34,12 @@ import ( func TestFetchEventContents(t *testing.T) { absPath, err := filepath.Abs("./testdata/") + assert.NoError(t, err) + // response is a raw response from a couchbase response, err := ioutil.ReadFile(absPath + "/sample_response.json") + assert.NoError(t, err) + server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(200) w.Header().Set("Content-Type", "application/json;") @@ -49,13 +53,15 @@ func TestFetchEventContents(t *testing.T) { "hosts": []string{server.URL}, } - f := mbtest.NewEventsFetcher(t, config) - events, err := f.Fetch() - event := events[0] - if !assert.NoError(t, err) { - t.FailNow() + f := mbtest.NewReportingMetricSetV2(t, config) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } + assert.NotEmpty(t, events) + event := events[0].MetricSetFields + t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event.StringToPrint()) assert.EqualValues(t, 0, event["cmd_get"]) From b57bcda87d00230bd63a7465f6e85e12e80bcdf0 Mon Sep 17 00:00:00 2001 From: Nicolas Ruflin Date: Wed, 6 Mar 2019 15:26:54 +0100 Subject: [PATCH 150/332] [Metricbeat] Add docs about manual module testing (#10724) This is intended to have a guide for users that want to test for example the Infra UI with some modules and have example containers available. --- docs/devguide/create-module.asciidoc | 77 ++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) diff --git a/docs/devguide/create-module.asciidoc b/docs/devguide/create-module.asciidoc index b446b901bda..e1b8199c44a 100644 --- a/docs/devguide/create-module.asciidoc +++ b/docs/devguide/create-module.asciidoc @@ -77,6 +77,83 @@ the metricsets. This file does not have `_test.go` in the name because otherwise To see an example of the `testing.go` file, look at the https://github.com/elastic/beats/tree/master/metricbeat/module/mysql[mysql module]. +[float] +===== Test a Metricbeat module manually + +To test a Metricbeat module manually, follow the steps below. + +First we have to build the Docker image which is available for the modules. The Dockerfile is located inside a `_meta` folder within each module folder. As an example let's take MySQL module. + +This steps assume you have checked out the Beats repository from Github and are inside `beats` directory. First, we have to enter in the `_meta` folder mentioned above and build the Docker image called `metricbeat-mysql`: + +``` +$ cd metricbeat/module/mysql/_meta/ +$ docker build -t metricbeat-mysql . +... +Removing intermediate container 0e58cfb7b197 + ---> 9492074840ea +Step 5/5 : COPY test.cnf /etc/mysql/conf.d/test.cnf + ---> 002969e1d810 +Successfully built 002969e1d810 +Successfully tagged metricbeat-mysql:latest +``` + +Before we run the container we have just created, we also need to know which port to expose. The port is listed in the `metricbeat/{module}/_meta/env` file: + +``` +$ cat env +MYSQL_DSN=root:test@tcp(mysql:3306)/ +MYSQL_HOST=mysql +MYSQL_PORT=3306 +``` + +As we see, the port is 3306. We now have all the information to start our MySQL service locally: + +``` +$ docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=secret metricbeat-mysql +``` + +This starts the container and you can now use it for testing the MySQL module. + +To run Metricbeat with the module we need to build the binary, enable the module first. The assumption is now that you are back in the `beats` folder path: + +``` +$ cd metricbeat +$ mage build +$ ./metricbeat modules enable mysql +``` + +This will enable the module and rename file `metricbeat/modules.d/mysql.yml.disabled` to `metricbeat/modules.d/mysql.yml`. According to our https://www.elastic.co/guide/en/beats/metricbeat/current/metricbeat-module-mysql.html[documentation] we should specify username and password to user MySQL. It's always a good idea to take a look at the docs to see also that a pre-built dashboard is also available. So tweaking the config a bit, this is how it looks like: + +```yml +$ cat modules.d/mysql.yml + +# Module: mysql +# Docs: https://www.elastic.co/guide/en/beats/metricbeat/master/metricbeat-module-mysql.html + +- module: mysql + metricsets: + - status + # - galera_status + period: 10s + + # Host DSN should be defined as "user:pass@tcp(127.0.0.1:3306)/" + # The username and password can either be set in the DSN or using the username + # and password config options. Those specified in the DSN take precedence. + hosts: ["tcp(127.0.0.1:3306)/"] + + # Username of hosts. Empty by default. + username: root + + # Password of hosts. Empty by default. + password: secret +``` + +It's now sending data to your local Elasticsearch instance. If you need to modify the mysql config, adjust `modules.d/mysql.yml` and restart Metricbeat. + + + + [float] ===== Run Environment tests for one module From 61186070d829b1086909d0362b40c8c56505bfdf Mon Sep 17 00:00:00 2001 From: kaiyan-sheng Date: Wed, 6 Mar 2019 07:56:26 -0700 Subject: [PATCH 151/332] Change number_of_objects to float in schema (#11030) * Change number_of_objects to float in schema * Change number_of_objects type to scaled_float --- metricbeat/docs/fields.asciidoc | 2 +- x-pack/metricbeat/module/aws/fields.go | 2 +- x-pack/metricbeat/module/aws/s3_daily_storage/_meta/fields.yml | 2 +- x-pack/metricbeat/module/aws/s3_daily_storage/data.go | 2 +- .../aws/s3_daily_storage/s3_daily_storage_integration_test.go | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index f1b1713c334..f099a20d9ba 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -1115,7 +1115,7 @@ The amount of data in bytes stored in a bucket. *`aws.s3_daily_storage.number_of_objects`*:: + -- -type: long +type: scaled_float The total number of objects stored in a bucket for all storage classes. diff --git a/x-pack/metricbeat/module/aws/fields.go b/x-pack/metricbeat/module/aws/fields.go index c5b0b471c5f..bd5350fc48d 100644 --- a/x-pack/metricbeat/module/aws/fields.go +++ b/x-pack/metricbeat/module/aws/fields.go @@ -19,5 +19,5 @@ func init() { // AssetAws returns asset data. // This is the base64 encoded gzipped contents of module/aws. func AssetAws() string { - return "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" + return "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" } diff --git a/x-pack/metricbeat/module/aws/s3_daily_storage/_meta/fields.yml b/x-pack/metricbeat/module/aws/s3_daily_storage/_meta/fields.yml index 2678c1831bf..6e9357cdad6 100644 --- a/x-pack/metricbeat/module/aws/s3_daily_storage/_meta/fields.yml +++ b/x-pack/metricbeat/module/aws/s3_daily_storage/_meta/fields.yml @@ -13,6 +13,6 @@ description: > The amount of data in bytes stored in a bucket. - name: number_of_objects - type: long + type: scaled_float description: > The total number of objects stored in a bucket for all storage classes. diff --git a/x-pack/metricbeat/module/aws/s3_daily_storage/data.go b/x-pack/metricbeat/module/aws/s3_daily_storage/data.go index 8fc988e11a3..79257cd7449 100644 --- a/x-pack/metricbeat/module/aws/s3_daily_storage/data.go +++ b/x-pack/metricbeat/module/aws/s3_daily_storage/data.go @@ -16,6 +16,6 @@ var ( "bytes": c.Float("BucketSizeBytes"), }, }, - "number_of_objects": c.Int("NumberOfObjects"), + "number_of_objects": c.Float("NumberOfObjects"), } ) diff --git a/x-pack/metricbeat/module/aws/s3_daily_storage/s3_daily_storage_integration_test.go b/x-pack/metricbeat/module/aws/s3_daily_storage/s3_daily_storage_integration_test.go index 56408a14418..e18c11f01e8 100644 --- a/x-pack/metricbeat/module/aws/s3_daily_storage/s3_daily_storage_integration_test.go +++ b/x-pack/metricbeat/module/aws/s3_daily_storage/s3_daily_storage_integration_test.go @@ -42,7 +42,7 @@ func TestFetch(t *testing.T) { // MetricSetField mtest.CheckEventField("bucket.name", "string", event, t) mtest.CheckEventField("bucket.size.bytes", "float", event, t) - mtest.CheckEventField("number_of_object", "int", event, t) + mtest.CheckEventField("number_of_objects", "float", event, t) } } From 45074a3efb74592505f90c9fc70e5dd75d898c1f Mon Sep 17 00:00:00 2001 From: Nicolas Ruflin Date: Wed, 6 Mar 2019 16:04:12 +0100 Subject: [PATCH 152/332] [Metricbeat] Add reporting interface with error (#10727) In Metricbeat modules we often see the pattern that before fetching the actual data, some processing is done and checks for errors happen. If an error happened, we have 3 lines of code: * creating the error with wrap * reporting the error * logging the error By introducing the reporter interface with support for return an error I would like to eliminate the overhead and allow to directly return and error which is then reported and also logged. So far we logged the error on the Error level. I'm now wondering if we should log these errors actually on the Info level as it's normally not a misbehaving of the Beat but the service does not respond as expected. So for the operator of the Beat normally no actions are needed. As an example metricset I took php_fpm.process. --- metricbeat/mb/builders.go | 7 +++-- metricbeat/mb/mb.go | 7 +++++ metricbeat/mb/module/wrapper.go | 9 ++++++- metricbeat/mb/testing/data_generator.go | 27 ++++++++++++++++++- metricbeat/mb/testing/data_test.go | 17 ++++++++++-- metricbeat/mb/testing/modules.go | 24 +++++++++++++++++ metricbeat/module/php_fpm/process/data.go | 6 ++--- metricbeat/module/php_fpm/process/process.go | 10 +++---- .../process/process_integration_test.go | 4 +-- 9 files changed, 94 insertions(+), 17 deletions(-) diff --git a/metricbeat/mb/builders.go b/metricbeat/mb/builders.go index db00b072eac..deb2e43ec63 100644 --- a/metricbeat/mb/builders.go +++ b/metricbeat/mb/builders.go @@ -237,15 +237,18 @@ func mustImplementFetcher(ms MetricSet) error { ifcs = append(ifcs, "ReportingMetricSetV2") } + if _, ok := ms.(ReportingMetricSetV2Error); ok { + ifcs = append(ifcs, "ReportingMetricSetV2Error") + } + if _, ok := ms.(PushMetricSetV2); ok { ifcs = append(ifcs, "PushMetricSetV2") } - switch len(ifcs) { case 0: return fmt.Errorf("MetricSet '%s/%s' does not implement an event "+ "producing interface (EventFetcher, EventsFetcher, "+ - "ReportingMetricSet, ReportingMetricSetV2, PushMetricSet, or "+ + "ReportingMetricSet, ReportingMetricSetV2, ReportingMetricSetV2Error, PushMetricSet, or "+ "PushMetricSetV2)", ms.Module().Name(), ms.Name()) case 1: diff --git a/metricbeat/mb/mb.go b/metricbeat/mb/mb.go index 0d38a14e5b9..e38655a6907 100644 --- a/metricbeat/mb/mb.go +++ b/metricbeat/mb/mb.go @@ -201,6 +201,13 @@ type ReportingMetricSetV2 interface { Fetch(r ReporterV2) } +// ReportingMetricSetV2Error is a MetricSet that reports events or errors through the +// ReporterV2 interface. Fetch is called periodically to collect events. +type ReportingMetricSetV2Error interface { + MetricSet + Fetch(r ReporterV2) error +} + // PushMetricSetV2 is a MetricSet that pushes events (rather than pulling them // periodically via a Fetch callback). Run is invoked to start the event // subscription and it should block until the MetricSet is ready to stop or diff --git a/metricbeat/mb/module/wrapper.go b/metricbeat/mb/module/wrapper.go index c835447e653..245876cd655 100644 --- a/metricbeat/mb/module/wrapper.go +++ b/metricbeat/mb/module/wrapper.go @@ -192,7 +192,7 @@ func (msw *metricSetWrapper) run(done <-chan struct{}, out chan<- beat.Event) { case mb.PushMetricSetV2: ms.Run(reporter.V2()) case mb.EventFetcher, mb.EventsFetcher, - mb.ReportingMetricSet, mb.ReportingMetricSetV2: + mb.ReportingMetricSet, mb.ReportingMetricSetV2, mb.ReportingMetricSetV2Error: msw.startPeriodicFetching(reporter) default: // Earlier startup stages prevent this from happening. @@ -236,6 +236,13 @@ func (msw *metricSetWrapper) fetch(reporter reporter) { case mb.ReportingMetricSetV2: reporter.StartFetchTimer() fetcher.Fetch(reporter.V2()) + case mb.ReportingMetricSetV2Error: + reporter.StartFetchTimer() + err := fetcher.Fetch(reporter.V2()) + if err != nil { + reporter.V2().Error(err) + logp.Info("Error fetching data for metricset %s.%s: %s", msw.module.Name(), msw.Name(), err) + } default: panic(fmt.Sprintf("unexpected fetcher type for %v", msw)) } diff --git a/metricbeat/mb/testing/data_generator.go b/metricbeat/mb/testing/data_generator.go index 7677b0dd05c..1bdb6c69e5d 100644 --- a/metricbeat/mb/testing/data_generator.go +++ b/metricbeat/mb/testing/data_generator.go @@ -93,6 +93,12 @@ func WriteEventsReporterV2(f mb.ReportingMetricSetV2, t testing.TB, path string) return WriteEventsReporterV2Cond(f, t, path, nil) } +// WriteEventsReporterV2Error fetches events and writes the first event to a ./_meta/data.json +// file. +func WriteEventsReporterV2Error(f mb.ReportingMetricSetV2Error, t testing.TB, path string) error { + return WriteEventsReporterV2ErrorCond(f, t, path, nil) +} + // WriteEventsReporterV2Cond fetches events and writes the first event that matches // the condition to a file. func WriteEventsReporterV2Cond(f mb.ReportingMetricSetV2, t testing.TB, path string, cond func(common.MapStr) bool) error { @@ -105,6 +111,25 @@ func WriteEventsReporterV2Cond(f mb.ReportingMetricSetV2, t testing.TB, path str return errs[0] } + return writeEvent(events, f, t, path, cond) +} + +// WriteEventsReporterV2ErrorCond fetches events and writes the first event that matches +// the condition to a file. +func WriteEventsReporterV2ErrorCond(f mb.ReportingMetricSetV2Error, t testing.TB, path string, cond func(common.MapStr) bool) error { + if !*dataFlag { + t.Skip("skip data generation tests") + } + + events, errs := ReportingFetchV2Error(f) + if len(errs) > 0 { + return errs[0] + } + + return writeEvent(events, f, t, path, cond) +} + +func writeEvent(events []mb.Event, f mb.MetricSet, t testing.TB, path string, cond func(common.MapStr) bool) error { if len(events) == 0 { return fmt.Errorf("no events were generated") } @@ -198,7 +223,7 @@ func SelectEvent(events []common.MapStr, cond func(e common.MapStr) bool) (commo } // SelectEventV2 selects the first event that matches an specific condition -func SelectEventV2(f mb.ReportingMetricSetV2, events []mb.Event, cond func(e common.MapStr) bool) (mb.Event, error) { +func SelectEventV2(f mb.MetricSet, events []mb.Event, cond func(e common.MapStr) bool) (mb.Event, error) { if cond == nil && len(events) > 0 { return events[0], nil } diff --git a/metricbeat/mb/testing/data_test.go b/metricbeat/mb/testing/data_test.go index aa0c3c6f18b..803bfec6d3c 100644 --- a/metricbeat/mb/testing/data_test.go +++ b/metricbeat/mb/testing/data_test.go @@ -106,8 +106,21 @@ func runTest(t *testing.T, file string, module, metricSetName, url string) { s := server(t, file, url) defer s.Close() - metricSet := NewReportingMetricSetV2(t, getConfig(module, metricSetName, s.URL)) - events, errs := ReportingFetchV2(metricSet) + metricSet := newMetricSet(t, getConfig(module, metricSetName, s.URL)) + + var events []mb.Event + var errs []error + + switch v := metricSet.(type) { + case mb.ReportingMetricSetV2: + metricSet := NewReportingMetricSetV2(t, getConfig(module, metricSetName, s.URL)) + events, errs = ReportingFetchV2(metricSet) + case mb.ReportingMetricSetV2Error: + metricSet := NewReportingMetricSetV2Error(t, getConfig(module, metricSetName, s.URL)) + events, errs = ReportingFetchV2Error(metricSet) + default: + t.Fatalf("unknown type: %T", v) + } // Gather errors to build also error events for _, e := range errs { diff --git a/metricbeat/mb/testing/modules.go b/metricbeat/mb/testing/modules.go index 88d3ce78e0c..234feee3568 100644 --- a/metricbeat/mb/testing/modules.go +++ b/metricbeat/mb/testing/modules.go @@ -168,6 +168,19 @@ func NewReportingMetricSetV2(t testing.TB, config interface{}) mb.ReportingMetri return reportingMetricSetV2 } +// NewReportingMetricSetV2Error returns a new ReportingMetricSetV2 instance. Then +// you can use ReportingFetchV2 to perform a Fetch operation with the MetricSet. +func NewReportingMetricSetV2Error(t testing.TB, config interface{}) mb.ReportingMetricSetV2Error { + metricSet := newMetricSet(t, config) + + reportingMetricSetV2Error, ok := metricSet.(mb.ReportingMetricSetV2Error) + if !ok { + t.Fatal("MetricSet does not implement ReportingMetricSetV2Error") + } + + return reportingMetricSetV2Error +} + // CapturingReporterV2 is a reporter used for testing which stores all events and errors type CapturingReporterV2 struct { events []mb.Event @@ -204,6 +217,17 @@ func ReportingFetchV2(metricSet mb.ReportingMetricSetV2) ([]mb.Event, []error) { return r.events, r.errs } +// ReportingFetchV2Error runs the given reporting metricset and returns all of the +// events and errors that occur during that period. +func ReportingFetchV2Error(metricSet mb.ReportingMetricSetV2Error) ([]mb.Event, []error) { + r := &CapturingReporterV2{} + err := metricSet.Fetch(r) + if err != nil { + r.errs = append(r.errs, err) + } + return r.events, r.errs +} + // NewPushMetricSet instantiates a new PushMetricSet using the given // configuration. The ModuleFactory and MetricSetFactory are obtained from the // global Registry. diff --git a/metricbeat/module/php_fpm/process/data.go b/metricbeat/module/php_fpm/process/data.go index bb8e6c5cacb..705041b101b 100644 --- a/metricbeat/module/php_fpm/process/data.go +++ b/metricbeat/module/php_fpm/process/data.go @@ -47,12 +47,11 @@ type phpFpmProcess struct { LastRequestMemory int `json:"last request memory"` } -func eventsMapping(r mb.ReporterV2, content []byte) { +func eventsMapping(r mb.ReporterV2, content []byte) error { var status phpFpmStatus err := json.Unmarshal(content, &status) if err != nil { - r.Error(err) - return + return err } //remapping process details to match the naming format for _, process := range status.Processes { @@ -94,4 +93,5 @@ func eventsMapping(r mb.ReporterV2, content []byte) { event.ModuleFields.Put("pool.name", status.Name) r.Event(event) } + return nil } diff --git a/metricbeat/module/php_fpm/process/process.go b/metricbeat/module/php_fpm/process/process.go index 6774d91b4f9..85dde711ae3 100644 --- a/metricbeat/module/php_fpm/process/process.go +++ b/metricbeat/module/php_fpm/process/process.go @@ -60,11 +60,10 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // Fetch methods implements the data gathering and data conversion to the right // format. It publishes the event which is then forwarded to the output. In case // of an error set the Error field of mb.Event or simply call report.Error(). -func (m *MetricSet) Fetch(report mb.ReporterV2) { +func (m *MetricSet) Fetch(report mb.ReporterV2) error { u, err := url.Parse(m.GetURI()) if err != nil { - report.Error(err) - return + return err } u, err = parse.SetQueryParams(u, "full") if err == nil { @@ -72,8 +71,7 @@ func (m *MetricSet) Fetch(report mb.ReporterV2) { } content, err := m.HTTP.FetchContent() if err != nil { - report.Error(err) - return + return err } - eventsMapping(report, content) + return eventsMapping(report, content) } diff --git a/metricbeat/module/php_fpm/process/process_integration_test.go b/metricbeat/module/php_fpm/process/process_integration_test.go index a523648c9ad..a5f7a1d8d64 100644 --- a/metricbeat/module/php_fpm/process/process_integration_test.go +++ b/metricbeat/module/php_fpm/process/process_integration_test.go @@ -32,8 +32,8 @@ import ( func TestFetch(t *testing.T) { compose.EnsureUp(t, "phpfpm") - f := mbtest.NewReportingMetricSetV2(t, getConfig()) - events, errs := mbtest.ReportingFetchV2(f) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig()) + events, errs := mbtest.ReportingFetchV2Error(f) assert.Empty(t, errs) if !assert.NotEmpty(t, events) { From c238ea27ffdc1c5614dcef924faf7df55b4c5700 Mon Sep 17 00:00:00 2001 From: kaiyan-sheng Date: Wed, 6 Mar 2019 09:32:20 -0700 Subject: [PATCH 153/332] Add support in jolokia get response for single value (#11075) * Add support in jolokia get response for single value * Use reflect.TypeOf to check attribute and value type * Add changelog * Replace reflect by type switching * Fix indentation for comments --- CHANGELOG.next.asciidoc | 1 + metricbeat/module/jolokia/jmx/_meta/data.json | 35 +++---- .../test/jolokia_get_response_uptime.json | 10 ++ metricbeat/module/jolokia/jmx/data.go | 94 +++++++++++++------ metricbeat/module/jolokia/jmx/data_test.go | 92 ++++++++++++------ .../jolokia/jmx/jmx_integration_test.go | 9 ++ 6 files changed, 169 insertions(+), 72 deletions(-) create mode 100644 metricbeat/module/jolokia/jmx/_meta/test/jolokia_get_response_uptime.json diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index de22d87f42a..9f6d4105501 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -186,6 +186,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Migrate docker autodiscover to ECS. {issue}10757[10757] {pull}10862[10862] - Fix issue in kubernetes module preventing usage percentages to be properly calculated. {pull}10946[10946] - Fix for not reusable http client leading to connection leaks in Jolokia module {pull}11014[11014] +- Fix parsing error using GET in Jolokia module. {pull}11075[11075] {issue}11071[11071] *Packetbeat* diff --git a/metricbeat/module/jolokia/jmx/_meta/data.json b/metricbeat/module/jolokia/jmx/_meta/data.json index 6716f360e0a..73c74a7216b 100644 --- a/metricbeat/module/jolokia/jmx/_meta/data.json +++ b/metricbeat/module/jolokia/jmx/_meta/data.json @@ -1,33 +1,34 @@ { "@timestamp": "2017-10-12T08:05:34.853Z", - "beat": { - "hostname": "host.example.com", - "name": "host.example.com" + "event": { + "dataset": "jolokia.testnamespace", + "duration": 115000, + "module": "jolokia" }, "jolokia": { "testnamespace": { "memory": { "heap_usage": { - "committed": 112721920, - "init": 64673792, - "max": 921174016, - "used": 81023984 + "committed": 514850816, + "init": 536870912, + "max": 7635730432, + "used": 133286280 }, "non_heap_usage": { - "committed": 24576000, - "init": 24576000, - "max": 224395264, - "used": 17684240 + "committed": 32702464, + "init": 2555904, + "max": -1, + "used": 31349800 } }, - "uptime": 580487 + "uptime": 56281839 } }, "metricset": { - "host": "jolokia:8778", - "module": "jolokia", - "name": "jmx", - "namespace": "testnamespace", - "rtt": 115 + "name": "jmx" + }, + "service": { + "address": "127.0.0.1:8080", + "type": "jolokia" } } \ No newline at end of file diff --git a/metricbeat/module/jolokia/jmx/_meta/test/jolokia_get_response_uptime.json b/metricbeat/module/jolokia/jmx/_meta/test/jolokia_get_response_uptime.json new file mode 100644 index 00000000000..25ebf90f0c1 --- /dev/null +++ b/metricbeat/module/jolokia/jmx/_meta/test/jolokia_get_response_uptime.json @@ -0,0 +1,10 @@ +{ + "request":{ + "mbean":"java.lang:type=Runtime", + "attribute":"Uptime", + "type":"read" + }, + "value":88622, + "timestamp":1551739190, + "status":200 +} diff --git a/metricbeat/module/jolokia/jmx/data.go b/metricbeat/module/jolokia/jmx/data.go index 10e4b477a0e..2ce2c73a862 100644 --- a/metricbeat/module/jolokia/jmx/data.go +++ b/metricbeat/module/jolokia/jmx/data.go @@ -33,9 +33,10 @@ const ( type Entry struct { Request struct { - Mbean string `json:"mbean"` + Mbean string `json:"mbean"` + Attribute interface{} `json:"attribute"` } - Value map[string]interface{} + Value interface{} } // Map responseBody to common.MapStr @@ -90,7 +91,22 @@ type Entry struct { // "timestamp": 1519409583 // "status": 200, // } -// } +// ] +// +// A response with single value +// +// [ +// { +// "request": { +// "mbean":"java.lang:type=Runtime", +// "attribute":"Uptime", +// "type":"read" +// }, +// "value":88622, +// "timestamp":1551739190, +// "status":200 +// } +// ] type eventKey struct { mbean, event string } @@ -103,32 +119,24 @@ func eventMapping(entries []Entry, mapping AttributeMapping) ([]common.MapStr, e var errs multierror.Errors for _, v := range entries { - hasWildcard := strings.Contains(v.Request.Mbean, "*") - for attribute, value := range v.Value { - if !hasWildcard { - err := parseResponseEntry(v.Request.Mbean, v.Request.Mbean, attribute, value, mbeanEvents, mapping) - if err != nil { - errs = append(errs, err) - } - continue - } - - // If there was a wildcard, we are going to have an additional - // nesting level in response values, and attribute here is going - // to be actually the matching mbean name - values, ok := value.(map[string]interface{}) - if !ok { - errs = append(errs, errors.Errorf("expected map of values for %s", v.Request.Mbean)) - continue - } + if v.Value == nil || v.Request.Attribute == nil { + continue + } - responseMbean := attribute - for attribute, value := range values { - err := parseResponseEntry(v.Request.Mbean, responseMbean, attribute, value, mbeanEvents, mapping) + switch attribute := v.Request.Attribute.(type) { + case string: + switch entryValues := v.Value.(type) { + case float64: + err := parseResponseEntry(v.Request.Mbean, v.Request.Mbean, attribute, entryValues, mbeanEvents, mapping) if err != nil { errs = append(errs, err) } + case map[string]interface{}: + constructEvents(entryValues, v, mbeanEvents, mapping, errs) } + case []interface{}: + entryValues := v.Value.(map[string]interface{}) + constructEvents(entryValues, v, mbeanEvents, mapping, errs) } } @@ -140,6 +148,36 @@ func eventMapping(entries []Entry, mapping AttributeMapping) ([]common.MapStr, e return events, errs.Err() } +func constructEvents(entryValues map[string]interface{}, v Entry, mbeanEvents map[eventKey]common.MapStr, mapping AttributeMapping, errs multierror.Errors) { + hasWildcard := strings.Contains(v.Request.Mbean, "*") + for attribute, value := range entryValues { + if !hasWildcard { + err := parseResponseEntry(v.Request.Mbean, v.Request.Mbean, attribute, value, mbeanEvents, mapping) + if err != nil { + errs = append(errs, err) + } + continue + } + + // If there was a wildcard, we are going to have an additional + // nesting level in response values, and attribute here is going + // to be actually the matching mbean name + values, ok := value.(map[string]interface{}) + if !ok { + errs = append(errs, errors.Errorf("expected map of values for %s", v.Request.Mbean)) + continue + } + + responseMbean := attribute + for attribute, value := range values { + err := parseResponseEntry(v.Request.Mbean, responseMbean, attribute, value, mbeanEvents, mapping) + if err != nil { + errs = append(errs, err) + } + } + } +} + func selectEvent(events map[eventKey]common.MapStr, key eventKey) common.MapStr { event, found := events[key] if !found { @@ -177,13 +215,15 @@ func parseResponseEntry( // In case the attributeValue is a map the keys are dedotted data := attributeValue - c, ok := data.(map[string]interface{}) - if ok { + switch aValue := attributeValue.(type) { + case map[string]interface{}: newData := map[string]interface{}{} - for k, v := range c { + for k, v := range aValue { newData[common.DeDot(k)] = v } data = newData + case float64: + data = aValue } _, err := event.Put(field.Field, data) return err diff --git a/metricbeat/module/jolokia/jmx/data_test.go b/metricbeat/module/jolokia/jmx/data_test.go index bbbdb3d765a..2fa8dd1429e 100644 --- a/metricbeat/module/jolokia/jmx/data_test.go +++ b/metricbeat/module/jolokia/jmx/data_test.go @@ -22,7 +22,7 @@ import ( "path/filepath" "testing" - "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" "github.com/elastic/beats/libbeat/common" ) @@ -30,12 +30,12 @@ import ( func TestEventMapper(t *testing.T) { absPath, err := filepath.Abs("./_meta/test") - assert.NotNil(t, absPath) - assert.Nil(t, err) + require.NotNil(t, absPath) + require.NoError(t, err) jolokiaResponse, err := ioutil.ReadFile(absPath + "/jolokia_response.json") - assert.Nil(t, err) + require.NoError(t, err) var mapping = AttributeMapping{ attributeMappingKey{"java.lang:type=Runtime", "Uptime"}: Attribute{ @@ -60,7 +60,7 @@ func TestEventMapper(t *testing.T) { // Map response to Metricbeat events events, err := eventMapper.EventMapping(jolokiaResponse, mapping) - assert.Nil(t, err) + require.NoError(t, err) expected := []common.MapStr{ { @@ -93,7 +93,7 @@ func TestEventMapper(t *testing.T) { }, } - assert.ElementsMatch(t, expected, events) + require.ElementsMatch(t, expected, events) } // TestEventGroupingMapper tests responses which are returned @@ -101,12 +101,12 @@ func TestEventMapper(t *testing.T) { func TestEventGroupingMapper(t *testing.T) { absPath, err := filepath.Abs("./_meta/test") - assert.NotNil(t, absPath) - assert.Nil(t, err) + require.NotNil(t, absPath) + require.NoError(t, err) jolokiaResponse, err := ioutil.ReadFile(absPath + "/jolokia_response.json") - assert.Nil(t, err) + require.NoError(t, err) var mapping = AttributeMapping{ attributeMappingKey{"java.lang:type=Runtime", "Uptime"}: Attribute{ @@ -131,7 +131,7 @@ func TestEventGroupingMapper(t *testing.T) { // Map response to Metricbeat events events, err := eventMapper.EventMapping(jolokiaResponse, mapping) - assert.Nil(t, err) + require.NoError(t, err) expected := []common.MapStr{ { @@ -168,7 +168,7 @@ func TestEventGroupingMapper(t *testing.T) { }, } - assert.ElementsMatch(t, expected, events) + require.ElementsMatch(t, expected, events) } // TestEventGroupingMapperGetRequest tests responses which are returned @@ -178,12 +178,12 @@ func TestEventGroupingMapper(t *testing.T) { func TestEventGroupingMapperGetRequest(t *testing.T) { absPath, err := filepath.Abs("./_meta/test") - assert.NotNil(t, absPath) - assert.Nil(t, err) + require.NotNil(t, absPath) + require.NoError(t, err) jolokiaResponse, err := ioutil.ReadFile(absPath + "/jolokia_get_response.json") - assert.Nil(t, err) + require.NoError(t, err) var mapping = AttributeMapping{ attributeMappingKey{"java.lang:type=Memory", "HeapMemoryUsage"}: Attribute{ @@ -198,7 +198,7 @@ func TestEventGroupingMapperGetRequest(t *testing.T) { // Map response to Metricbeat events events, err := eventMapper.EventMapping(jolokiaResponse, mapping) - assert.Nil(t, err) + require.NoError(t, err) expected := []common.MapStr{ { @@ -219,18 +219,54 @@ func TestEventGroupingMapperGetRequest(t *testing.T) { }, } - assert.ElementsMatch(t, expected, events) + require.ElementsMatch(t, expected, events) +} + +// TestEventGroupingMapperGetRequestUptime tests responses which are returned +// from a Jolokia GET request and only has one uptime runtime value. +func TestEventGroupingMapperGetRequestUptime(t *testing.T) { + absPath, err := filepath.Abs("./_meta/test") + + require.NotNil(t, absPath) + require.NoError(t, err) + + jolokiaResponse, err := ioutil.ReadFile(absPath + "/jolokia_get_response_uptime.json") + + require.NoError(t, err) + + var mapping = AttributeMapping{ + attributeMappingKey{"java.lang:type=Runtime", "Uptime"}: Attribute{ + Field: "runtime.uptime", Event: "runtime"}, + } + + // Construct a new GET response event mapper + eventMapper := NewJolokiaHTTPRequestFetcher("GET") + + // Map response to Metricbeat events + events, err := eventMapper.EventMapping(jolokiaResponse, mapping) + + require.NoError(t, err) + + expected := []common.MapStr{ + { + "runtime": common.MapStr{ + "uptime": float64(88622), + }, + }, + } + + require.ElementsMatch(t, expected, events) } func TestEventMapperWithWildcard(t *testing.T) { absPath, err := filepath.Abs("./_meta/test") - assert.NotNil(t, absPath) - assert.Nil(t, err) + require.NotNil(t, absPath) + require.NoError(t, err) jolokiaResponse, err := ioutil.ReadFile(absPath + "/jolokia_response_wildcard.json") - assert.Nil(t, err) + require.NoError(t, err) var mapping = AttributeMapping{ attributeMappingKey{"Catalina:name=*,type=ThreadPool", "port"}: Attribute{ @@ -244,8 +280,8 @@ func TestEventMapperWithWildcard(t *testing.T) { // Map response to Metricbeat events events, err := eventMapper.EventMapping(jolokiaResponse, mapping) - assert.Nil(t, err) - assert.Equal(t, 2, len(events)) + require.NoError(t, err) + require.Equal(t, 2, len(events)) expected := []common.MapStr{ { @@ -260,18 +296,18 @@ func TestEventMapperWithWildcard(t *testing.T) { }, } - assert.ElementsMatch(t, expected, events) + require.ElementsMatch(t, expected, events) } func TestEventGroupingMapperWithWildcard(t *testing.T) { absPath, err := filepath.Abs("./_meta/test") - assert.NotNil(t, absPath) - assert.Nil(t, err) + require.NotNil(t, absPath) + require.NoError(t, err) jolokiaResponse, err := ioutil.ReadFile(absPath + "/jolokia_response_wildcard.json") - assert.Nil(t, err) + require.NoError(t, err) var mapping = AttributeMapping{ attributeMappingKey{"Catalina:name=*,type=ThreadPool", "port"}: Attribute{ @@ -285,8 +321,8 @@ func TestEventGroupingMapperWithWildcard(t *testing.T) { // Map response to Metricbeat events events, err := eventMapper.EventMapping(jolokiaResponse, mapping) - assert.Nil(t, err) - assert.Equal(t, 4, len(events)) + require.NoError(t, err) + require.Equal(t, 4, len(events)) expected := []common.MapStr{ { @@ -307,5 +343,5 @@ func TestEventGroupingMapperWithWildcard(t *testing.T) { }, } - assert.ElementsMatch(t, expected, events) + require.ElementsMatch(t, expected, events) } diff --git a/metricbeat/module/jolokia/jmx/jmx_integration_test.go b/metricbeat/module/jolokia/jmx/jmx_integration_test.go index e8cff3b62cf..1677395e4bb 100644 --- a/metricbeat/module/jolokia/jmx/jmx_integration_test.go +++ b/metricbeat/module/jolokia/jmx/jmx_integration_test.go @@ -184,6 +184,15 @@ func getConfigs() []map[string]interface{} { }, }, }, + { + "mbean": "java.lang:type=Runtime", + "attributes": []map[string]string{ + { + "attr": "Uptime", + "field": "uptime", + }, + }, + }, }, }, } From 71fb58bafd23fd5ee0f9e0e4fc344da1431fde77 Mon Sep 17 00:00:00 2001 From: Steffen Siering Date: Wed, 6 Mar 2019 19:20:33 +0100 Subject: [PATCH 154/332] Fix flows timeout setting error message (#11050) Closes: #2821 --- packetbeat/flows/worker.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packetbeat/flows/worker.go b/packetbeat/flows/worker.go index abdcffcff55..80fbeb02565 100644 --- a/packetbeat/flows/worker.go +++ b/packetbeat/flows/worker.go @@ -38,7 +38,7 @@ type flowsProcessor struct { } var ( - ErrInvalidTimeout = errors.New("timeout must not <= 1s") + ErrInvalidTimeout = errors.New("timeout must be >= 1s") ErrInvalidPeriod = errors.New("report period must be -1 or >= 1s") ) From fe00f7257ebff4f77c2e4e169c297104238bb90f Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Wed, 6 Mar 2019 13:50:53 -0600 Subject: [PATCH 155/332] [Heartbeat] Remove processors from default config (#11031) Adds an extra script that runs after the default config is generated to remove the `processors` section. We don't need these processors for heartbeat as they don't play well with ECS in the role Heartbeat has. Resolves https://github.com/elastic/beats/issues/10790 --- CHANGELOG.next.asciidoc | 1 + heartbeat/heartbeat.yml | 8 ------ heartbeat/scripts/post_process_config.py | 33 ++++++++++++++++++++++++ libbeat/scripts/Makefile | 2 ++ 4 files changed, 36 insertions(+), 8 deletions(-) create mode 100755 heartbeat/scripts/post_process_config.py diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 9f6d4105501..5308291d285 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -57,6 +57,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - monitor IDs are now configurable. Auto generated monitor IDs now use a different formula based on a hash of their config values. If you wish to have continuity with the old format of monitor IDs you'll need to set the `id` property explicitly. {pull}9697[9697] - A number of fields have been aliased to their relevant counterparts in the `url.*` field. Existing visualizations should mostly work. The fields that have been moved are `monitor.scheme -> url.scheme`, `monitor.host -> url.domain`, `resolve.host -> url.domain`, `http.url -> url.full`, `tcp.port -> url.port`. In addition to these moves the new fields `url.username`, `url.password`, `url.path`, and `url.query` are now present. It should be noted that the `url.password` field does not contain actual password values, but rather the text `` {pull}9570[9570]. - The included Kibana HTTP dashboard is now removed in favor of the Uptime app in Kibana. {pull}10294[10294] +- Removed the `add_host_metadata` and `add_cloud_metadata` processors from the default config. These don't fit well with ECS for Heartbeat and were rarely used. *Journalbeat* diff --git a/heartbeat/heartbeat.yml b/heartbeat/heartbeat.yml index 7424bf421b3..150750d4a38 100644 --- a/heartbeat/heartbeat.yml +++ b/heartbeat/heartbeat.yml @@ -126,14 +126,6 @@ output.elasticsearch: # Client Certificate Key #ssl.key: "/etc/pki/client/cert.key" -#================================ Processors ===================================== - -# Configure processors to enhance or manipulate events generated by the beat. - -processors: - - add_host_metadata: ~ - - add_cloud_metadata: ~ - #================================ Logging ===================================== # Sets log level. The default log level is info. diff --git a/heartbeat/scripts/post_process_config.py b/heartbeat/scripts/post_process_config.py new file mode 100755 index 00000000000..e66d6a7d0e3 --- /dev/null +++ b/heartbeat/scripts/post_process_config.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python + +# This script is invoked from libbeat/scripts/Makefile after heartbeat.yml has been generated +# It rewrites that file to remove the standard 'Processors' section + +import sys +import re + +result = "" + +# Each section is formatted something like #==== Section Name ==== +# which is captured by this regex with the name as the first group +start_section = re.compile(r'^#[=]+\s+?([\w\s]+)\s+?[=]+$') + +output = "" +inside_processor_section = False + +# Filter out the Processor sectiuon +with open(sys.argv[1], 'r') as conf_file: + for line in conf_file: + m = start_section.match(line) + if m: + section_name = m.group(1) + if section_name == "Processors": + inside_processor_section = True + else: + inside_processor_section = False + if not inside_processor_section: + output += line + + +with open(sys.argv[1], 'w') as conf_file: + conf_file.write(output) diff --git a/libbeat/scripts/Makefile b/libbeat/scripts/Makefile index a3c905d1b18..5ab4a3e7233 100755 --- a/libbeat/scripts/Makefile +++ b/libbeat/scripts/Makefile @@ -328,6 +328,8 @@ update: python-env fields collect ## @build Update expects the most recent versi @mkdir -p _meta @# Update config files. @cat _meta/beat.yml ${ES_BEATS}/libbeat/_meta/config.yml | sed -e "s/beatname/${BEAT_NAME}/g;s/beat-index-prefix/${BEAT_INDEX_PREFIX}/g" > ${BEAT_NAME}.yml + ## The line below allows beats to add a post-processor script that alters the config in arbitrary ways + @if test -f scripts/post_process_config.py; then scripts/post_process_config.py ${BEAT_NAME}.yml; fi ifneq (,$(wildcard _meta/beat.docker.yml)) @cat _meta/beat.docker.yml ${ES_BEATS}/libbeat/_meta/config.docker.yml > ${BEAT_NAME}.docker.yml @chmod 0640 ${BEAT_NAME}.yml ${BEAT_NAME}.docker.yml From 8d3911eb8f78b12b1fd5fc0f4bfb32b96f510953 Mon Sep 17 00:00:00 2001 From: alakahakai Date: Wed, 6 Mar 2019 17:27:48 -0800 Subject: [PATCH 156/332] =?UTF-8?q?Add=20on=5Ffailure=20handler=20for=20Ze?= =?UTF-8?q?ek=20ingest=20pipelines.=20Fix=20one=20field=20name=20=E2=80=A6?= =?UTF-8?q?=20(#11105)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Add on_failure handler for Zeek ingest pipelines. * Fix one field name error for notice and add an additional test case. --- CHANGELOG.next.asciidoc | 2 + .../zeek/connection/ingest/pipeline.json | 10 ++++- .../test/connection-json.log-expected.json | 6 +-- .../module/zeek/dns/ingest/pipeline.json | 8 +++- .../module/zeek/files/ingest/pipeline.json | 8 +++- .../module/zeek/http/ingest/pipeline.json | 10 ++++- .../module/zeek/notice/config/notice.yml | 2 +- .../module/zeek/notice/ingest/pipeline.json | 10 ++++- .../module/zeek/notice/test/notice-json.log | 1 + .../notice/test/notice-json.log-expected.json | 37 +++++++++++++++++++ .../module/zeek/ssl/ingest/pipeline.json | 8 +++- x-pack/filebeat/modules.d/zeek.yml.disabled | 21 +++++++++++ 12 files changed, 110 insertions(+), 13 deletions(-) create mode 100644 x-pack/filebeat/modules.d/zeek.yml.disabled diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 5308291d285..b2771c3c828 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -163,6 +163,8 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Improve detection of file deletion on Windows. {pull}10747[10747] - Fix errors in filebeat Zeek dashboard and README files. Add notice.log support. {pull}10916[10916] - Fix a bug when converting NetFlow fields to snake_case. {pull}10950[10950] +- Add on_failure handler for Zeek ingest pipelines. Fix one field name error for notice and add an additional test + case. {issue}11004[11004] {pull}11105[11105] *Heartbeat* diff --git a/x-pack/filebeat/module/zeek/connection/ingest/pipeline.json b/x-pack/filebeat/module/zeek/connection/ingest/pipeline.json index 1ca5eadc409..f768ccc0769 100644 --- a/x-pack/filebeat/module/zeek/connection/ingest/pipeline.json +++ b/x-pack/filebeat/module/zeek/connection/ingest/pipeline.json @@ -10,7 +10,7 @@ { "script": { "lang": "painless", - "source": "ctx.event.duration = (long)ctx.temp.duration * params.scale", + "source": "ctx.event.duration = Math.round(ctx.temp.duration * params.scale)", "params": { "scale": 1000000000 }, @@ -74,5 +74,11 @@ "target_field": "source.geo" } } - ] + ], + "on_failure" : [{ + "set" : { + "field" : "error.message", + "value" : "{{ _ingest.on_failure_message }}" + } + }] } \ No newline at end of file diff --git a/x-pack/filebeat/module/zeek/connection/test/connection-json.log-expected.json b/x-pack/filebeat/module/zeek/connection/test/connection-json.log-expected.json index bddcf1f4342..bcfcd9ad0f3 100644 --- a/x-pack/filebeat/module/zeek/connection/test/connection-json.log-expected.json +++ b/x-pack/filebeat/module/zeek/connection/test/connection-json.log-expected.json @@ -8,7 +8,7 @@ "destination.port": 53, "ecs.version": "1.0.0-beta2", "event.dataset": "zeek.connection", - "event.duration": 0.0, + "event.duration": 76967000, "event.id": "CAcJw21BbVedgFnYH3", "event.module": "zeek", "fileset.name": "connection", @@ -49,7 +49,7 @@ "destination.port": 53, "ecs.version": "1.0.0-beta2", "event.dataset": "zeek.connection", - "event.duration": 0.0, + "event.duration": 76967000, "event.id": "CAcJw21BbVedgFnYH4", "event.module": "zeek", "fileset.name": "connection", @@ -89,7 +89,7 @@ "destination.port": 53, "ecs.version": "1.0.0-beta2", "event.dataset": "zeek.connection", - "event.duration": 0.0, + "event.duration": 76967000, "event.id": "CAcJw21BbVedgFnYH5", "event.module": "zeek", "fileset.name": "connection", diff --git a/x-pack/filebeat/module/zeek/dns/ingest/pipeline.json b/x-pack/filebeat/module/zeek/dns/ingest/pipeline.json index bea3798a7bb..10b8a466b9e 100644 --- a/x-pack/filebeat/module/zeek/dns/ingest/pipeline.json +++ b/x-pack/filebeat/module/zeek/dns/ingest/pipeline.json @@ -38,5 +38,11 @@ "target_field": "source.geo" } } - ] + ], + "on_failure" : [{ + "set" : { + "field" : "error.message", + "value" : "{{ _ingest.on_failure_message }}" + } + }] } \ No newline at end of file diff --git a/x-pack/filebeat/module/zeek/files/ingest/pipeline.json b/x-pack/filebeat/module/zeek/files/ingest/pipeline.json index 84e96dbd912..7d3617a095e 100644 --- a/x-pack/filebeat/module/zeek/files/ingest/pipeline.json +++ b/x-pack/filebeat/module/zeek/files/ingest/pipeline.json @@ -36,5 +36,11 @@ "if": "ctx.zeek.session_id != null" } } - ] + ], + "on_failure" : [{ + "set" : { + "field" : "error.message", + "value" : "{{ _ingest.on_failure_message }}" + } + }] } \ No newline at end of file diff --git a/x-pack/filebeat/module/zeek/http/ingest/pipeline.json b/x-pack/filebeat/module/zeek/http/ingest/pipeline.json index a892d959ce5..e4a8fbb28f6 100644 --- a/x-pack/filebeat/module/zeek/http/ingest/pipeline.json +++ b/x-pack/filebeat/module/zeek/http/ingest/pipeline.json @@ -50,5 +50,11 @@ "ignore_missing": true } } - ] -} + ], + "on_failure" : [{ + "set" : { + "field" : "error.message", + "value" : "{{ _ingest.on_failure_message }}" + } + }] +} \ No newline at end of file diff --git a/x-pack/filebeat/module/zeek/notice/config/notice.yml b/x-pack/filebeat/module/zeek/notice/config/notice.yml index e9004624d4c..67a57970b44 100644 --- a/x-pack/filebeat/module/zeek/notice/config/notice.yml +++ b/x-pack/filebeat/module/zeek/notice/config/notice.yml @@ -19,7 +19,7 @@ processors: - from: "zeek.notice.src" to: "source.address" - - from: "zeek.notice.dest" + - from: "zeek.notice.dst" to: "destination.address" - from: "zeek.notice.uid" diff --git a/x-pack/filebeat/module/zeek/notice/ingest/pipeline.json b/x-pack/filebeat/module/zeek/notice/ingest/pipeline.json index 1b1bf8b49af..8a738d513d6 100644 --- a/x-pack/filebeat/module/zeek/notice/ingest/pipeline.json +++ b/x-pack/filebeat/module/zeek/notice/ingest/pipeline.json @@ -42,5 +42,11 @@ "ignore_missing": true } } - ] -} + ], + "on_failure" : [{ + "set" : { + "field" : "error.message", + "value" : "{{ _ingest.on_failure_message }}" + } + }] +} \ No newline at end of file diff --git a/x-pack/filebeat/module/zeek/notice/test/notice-json.log b/x-pack/filebeat/module/zeek/notice/test/notice-json.log index 8c20486cb79..bac408ed58f 100644 --- a/x-pack/filebeat/module/zeek/notice/test/notice-json.log +++ b/x-pack/filebeat/module/zeek/notice/test/notice-json.log @@ -1 +1,2 @@ {"ts":1320435875.879278,"note":"SSH::Password_Guessing","msg":"172.16.238.1 appears to be guessing SSH passwords (seen in 30 connections).","sub":"Sampled servers: 172.16.238.136, 172.16.238.136, 172.16.238.136, 172.16.238.136, 172.16.238.136","src":"172.16.238.1","peer_descr":"bro","actions":["Notice::ACTION_LOG"],"suppress_for":3600.0,"dropped":false} +{"ts":1551393388.426472,"note":"Scan::Port_Scan","msg":"8.42.77.171 scanned at least 15 unique ports of host 207.154.238.205 in 0m0s","sub":"remote","src":"8.42.77.171","dst":"207.154.238.205","peer_descr":"bro","actions":["Notice::ACTION_LOG"],"suppress_for":3600.0,"dropped":false} diff --git a/x-pack/filebeat/module/zeek/notice/test/notice-json.log-expected.json b/x-pack/filebeat/module/zeek/notice/test/notice-json.log-expected.json index aab984d1d36..ac821492355 100644 --- a/x-pack/filebeat/module/zeek/notice/test/notice-json.log-expected.json +++ b/x-pack/filebeat/module/zeek/notice/test/notice-json.log-expected.json @@ -19,5 +19,42 @@ "zeek.notice.peer_descr": "bro", "zeek.notice.sub": "Sampled servers: 172.16.238.136, 172.16.238.136, 172.16.238.136, 172.16.238.136, 172.16.238.136", "zeek.notice.suppress_for": 3600 + }, + { + "@timestamp": 1551393388000, + "destination.address": "207.154.238.205", + "destination.geo.city_name": "New York", + "destination.geo.continent_name": "North America", + "destination.geo.country_iso_code": "US", + "destination.geo.location.lat": 40.7214, + "destination.geo.location.lon": -74.0052, + "destination.geo.region_iso_code": "US-NY", + "destination.geo.region_name": "New York", + "destination.ip": "207.154.238.205", + "ecs.version": "1.0.0-beta2", + "event.dataset": "zeek.notice", + "event.module": "zeek", + "fileset.name": "notice", + "input.type": "log", + "log.offset": 357, + "service.type": "zeek", + "source.address": "8.42.77.171", + "source.geo.city_name": "Longmont", + "source.geo.continent_name": "North America", + "source.geo.country_iso_code": "US", + "source.geo.location.lat": 40.1791, + "source.geo.location.lon": -105.1986, + "source.geo.region_iso_code": "US-CO", + "source.geo.region_name": "Colorado", + "source.ip": "8.42.77.171", + "tags": [ + "zeek.notice" + ], + "zeek.notice.dropped": false, + "zeek.notice.msg": "8.42.77.171 scanned at least 15 unique ports of host 207.154.238.205 in 0m0s", + "zeek.notice.note": "Scan::Port_Scan", + "zeek.notice.peer_descr": "bro", + "zeek.notice.sub": "remote", + "zeek.notice.suppress_for": 3600 } ] \ No newline at end of file diff --git a/x-pack/filebeat/module/zeek/ssl/ingest/pipeline.json b/x-pack/filebeat/module/zeek/ssl/ingest/pipeline.json index 54d068b19f9..54aeb17f256 100644 --- a/x-pack/filebeat/module/zeek/ssl/ingest/pipeline.json +++ b/x-pack/filebeat/module/zeek/ssl/ingest/pipeline.json @@ -38,5 +38,11 @@ "target_field": "source.geo" } } - ] + ], + "on_failure" : [{ + "set" : { + "field" : "error.message", + "value" : "{{ _ingest.on_failure_message }}" + } + }] } \ No newline at end of file diff --git a/x-pack/filebeat/modules.d/zeek.yml.disabled b/x-pack/filebeat/modules.d/zeek.yml.disabled new file mode 100644 index 00000000000..c43668021ea --- /dev/null +++ b/x-pack/filebeat/modules.d/zeek.yml.disabled @@ -0,0 +1,21 @@ +# Module: zeek +# Docs: https://www.elastic.co/guide/en/beats/filebeat/master/filebeat-module-zeek.html + +- module: zeek + # All logs + connection: + enabled: true + dns: + enabled: true + http: + enabled: true + files: + enabled: true + ssl: + enabled: true + notice: + enabled: true + + # Set custom paths for the log files. If left empty, + # Filebeat will choose the paths depending on your OS. + #var.paths: From 5fcd2e566dcfa9c147414ae64ac1b579f5ba3115 Mon Sep 17 00:00:00 2001 From: Mario Castro Date: Thu, 7 Mar 2019 11:17:38 +0100 Subject: [PATCH 157/332] [Metricbeat] Fix flaky test in RabbitMQ node Metricset (#11114) Remove comose.EnsureUp call from TestData function to avoid an attempt to start RabbitMQ container and avoid potential timeouts that leads to a flaky test --- metricbeat/module/rabbitmq/node/node_integration_test.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/metricbeat/module/rabbitmq/node/node_integration_test.go b/metricbeat/module/rabbitmq/node/node_integration_test.go index 332cd3851db..f1855ba8fce 100644 --- a/metricbeat/module/rabbitmq/node/node_integration_test.go +++ b/metricbeat/module/rabbitmq/node/node_integration_test.go @@ -28,8 +28,6 @@ import ( ) func TestData(t *testing.T) { - compose.EnsureUp(t, "rabbitmq") - ms := mbtest.NewReportingMetricSetV2(t, getConfig()) err := mbtest.WriteEventsReporterV2(ms, t, "") if err != nil { From eee127cb59b56f2ed7c7e317398c3f79c4158216 Mon Sep 17 00:00:00 2001 From: Christoph Wurm Date: Thu, 7 Mar 2019 10:33:23 +0000 Subject: [PATCH 158/332] Add ip fields to default_field in Elasticsearch template (#11035) Pasting an IP into Kibana's KQL bar currently yields no results - even when there are plenty of documents with that IP. The reason is that IP fields are currently not included in the default_field configuration of the generated template. This adds them. For Auditbeat, this adds 9 fields. For the others, it looks like 16 for Metricbeat, 15 for Filebeat, 17 for Packetbeat. --- CHANGELOG.next.asciidoc | 1 + libbeat/template/processor.go | 34 ++++++++++++++++------------------ 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index b2771c3c828..5e84f26b27a 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -231,6 +231,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Add if/then/else support to processors. {pull}10744[10744] - Add `community_id` processor for computing network flow hashes. {pull}10745[10745] - Add output test to kafka output {pull}10834[10834] +- Add ip fields to default_field in Elasticsearch template. {pull}11035[11035] *Auditbeat* diff --git a/libbeat/template/processor.go b/libbeat/template/processor.go index b4f6a04c0e8..4e25bcec03f 100644 --- a/libbeat/template/processor.go +++ b/libbeat/template/processor.go @@ -100,6 +100,11 @@ func (p *Processor) Process(fields common.Fields, path string, output common.Map mapping = p.other(&field) } + switch field.Type { + case "", "keyword", "text", "ip": + addToDefaultFields(&field) + } + if len(mapping) > 0 { output.Put(common.GenerateKey(field.Name), mapping) } @@ -107,6 +112,17 @@ func (p *Processor) Process(fields common.Fields, path string, output common.Map return nil } +func addToDefaultFields(f *common.Field) { + fullName := f.Name + if f.Path != "" { + fullName = f.Path + "." + f.Name + } + + if f.Index == nil || (f.Index != nil && *f.Index) { + defaultFields = append(defaultFields, fullName) + } +} + func (p *Processor) other(f *common.Field) common.MapStr { property := getDefaultProperties(f) if f.Type != "" { @@ -173,15 +189,6 @@ func (p *Processor) ip(f *common.Field) common.MapStr { func (p *Processor) keyword(f *common.Field) common.MapStr { property := getDefaultProperties(f) - fullName := f.Name - if f.Path != "" { - fullName = f.Path + "." + f.Name - } - - if f.Index == nil || (f.Index != nil && *f.Index) { - defaultFields = append(defaultFields, fullName) - } - property["type"] = "keyword" switch f.IgnoreAbove { @@ -209,15 +216,6 @@ func (p *Processor) keyword(f *common.Field) common.MapStr { func (p *Processor) text(f *common.Field) common.MapStr { properties := getDefaultProperties(f) - fullName := f.Name - if f.Path != "" { - fullName = f.Path + "." + f.Name - } - - if f.Index == nil || (f.Index != nil && *f.Index) { - defaultFields = append(defaultFields, fullName) - } - properties["type"] = "text" if p.EsVersion.IsMajor(2) { From af4c0f9f8301e8701a31794bb819e660f71a33ff Mon Sep 17 00:00:00 2001 From: Nicolas Ruflin Date: Thu, 7 Mar 2019 12:02:38 +0100 Subject: [PATCH 159/332] [Metricbeat] Migrate couchbase cluster & pool metricset to new data generation (#11112) The data.json is now generated based on example JSON documents. In case they change, it means the code change in some way. This will make it much easier to detect changes. Also the basic tests for the cluster are now covered by the new testing. The error handling moved over to the new error interface for simplicity. --- metricbeat/mb/testing/data_test.go | 2 + .../module/couchbase/cluster/_meta/data.json | 24 ++-- .../cluster/_meta/testdata/4.5.1.json | 1 + .../_meta/testdata/4.5.1.json-expected.json | 81 +++++++++++ .../cluster/_meta/testdata/config.yml | 2 + .../testdata/docs.json} | 0 .../_meta/testdata/docs.json-expected.json | 81 +++++++++++ .../cluster/cluster_integration_test.go | 15 -- .../module/couchbase/cluster/cluster_test.go | 120 ---------------- .../module/couchbase/node/_meta/data.json | 36 +++-- .../couchbase/node/_meta/testdata/4.5.1.json | 1 + .../_meta/testdata/4.5.1.json-expected.json | 89 ++++++++++++ .../couchbase/node/_meta/testdata/config.yml | 2 + .../testdata/docs.json} | 0 .../_meta/testdata/docs.json-expected.json | 89 ++++++++++++ .../couchbase/node/node_integration_test.go | 15 -- metricbeat/module/couchbase/node/node_test.go | 133 ------------------ 17 files changed, 374 insertions(+), 317 deletions(-) create mode 100644 metricbeat/module/couchbase/cluster/_meta/testdata/4.5.1.json create mode 100644 metricbeat/module/couchbase/cluster/_meta/testdata/4.5.1.json-expected.json create mode 100644 metricbeat/module/couchbase/cluster/_meta/testdata/config.yml rename metricbeat/module/couchbase/cluster/{testdata/sample_response.json => _meta/testdata/docs.json} (100%) create mode 100644 metricbeat/module/couchbase/cluster/_meta/testdata/docs.json-expected.json delete mode 100644 metricbeat/module/couchbase/cluster/cluster_test.go create mode 100644 metricbeat/module/couchbase/node/_meta/testdata/4.5.1.json create mode 100644 metricbeat/module/couchbase/node/_meta/testdata/4.5.1.json-expected.json create mode 100644 metricbeat/module/couchbase/node/_meta/testdata/config.yml rename metricbeat/module/couchbase/node/{testdata/sample_response.json => _meta/testdata/docs.json} (100%) create mode 100644 metricbeat/module/couchbase/node/_meta/testdata/docs.json-expected.json delete mode 100644 metricbeat/module/couchbase/node/node_test.go diff --git a/metricbeat/mb/testing/data_test.go b/metricbeat/mb/testing/data_test.go index 803bfec6d3c..199dc28b393 100644 --- a/metricbeat/mb/testing/data_test.go +++ b/metricbeat/mb/testing/data_test.go @@ -36,6 +36,8 @@ import ( "github.com/elastic/beats/metricbeat/mb" // TODO: generate include file for these tests automatically moving forward + _ "github.com/elastic/beats/metricbeat/module/couchbase/cluster" + _ "github.com/elastic/beats/metricbeat/module/couchbase/node" _ "github.com/elastic/beats/metricbeat/module/kibana/status" _ "github.com/elastic/beats/metricbeat/module/php_fpm/pool" _ "github.com/elastic/beats/metricbeat/module/php_fpm/process" diff --git a/metricbeat/module/couchbase/cluster/_meta/data.json b/metricbeat/module/couchbase/cluster/_meta/data.json index 461df930f17..9ee9137dd7b 100644 --- a/metricbeat/module/couchbase/cluster/_meta/data.json +++ b/metricbeat/module/couchbase/cluster/_meta/data.json @@ -1,29 +1,25 @@ { - "@timestamp": "2017-10-12T08:05:34.853Z", - "agent": { - "hostname": "host.example.com", - "name": "host.example.com" - }, + "@timestamp": "2019-03-01T08:05:34.853Z", "couchbase": { "cluster": { "hdd": { "free": { - "bytes": 48341763359 + "bytes": 46902679716 }, "quota": { "total": { - "bytes": 185929859072 + "bytes": 63381999616 } }, "total": { - "bytes": 185929859072 + "bytes": 63381999616 }, "used": { "by_data": { - "bytes": 23665027 + "bytes": 16369010 }, "value": { - "bytes": 137588095713 + "bytes": 16479319900 } } }, @@ -56,14 +52,14 @@ } }, "total": { - "bytes": 16683503616 + "bytes": 8359174144 }, "used": { "by_data": { - "bytes": 53961776 + "bytes": 53962016 }, "value": { - "bytes": 14443474944 + "bytes": 8004751360 } } } @@ -78,7 +74,7 @@ "name": "cluster" }, "service": { - "address": "localhost:8091", + "address": "127.0.0.1:55555", "type": "couchbase" } } \ No newline at end of file diff --git a/metricbeat/module/couchbase/cluster/_meta/testdata/4.5.1.json b/metricbeat/module/couchbase/cluster/_meta/testdata/4.5.1.json new file mode 100644 index 00000000000..d620439f138 --- /dev/null +++ b/metricbeat/module/couchbase/cluster/_meta/testdata/4.5.1.json @@ -0,0 +1 @@ +{"storageTotals":{"ram":{"total":6246748160,"quotaTotal":314572800,"quotaUsed":104857600,"used":3155247104,"usedByData":53962032,"quotaUsedPerNode":104857600,"quotaTotalPerNode":314572800},"hdd":{"total":62725623808,"quotaTotal":62725623808,"used":5645306142,"usedByData":17923953,"free":57080317666}},"ftsMemoryQuota":512,"indexMemoryQuota":300,"memoryQuota":300,"name":"default","alerts":[],"alertsSilenceURL":"/controller/resetAlerts?token=0&uuid=9179f751ee7308159a00974c5da5229f","nodes":[{"systemStats":{"cpu_utilization_rate":5.670103092783505,"swap_total":1073737728,"swap_used":0,"mem_total":6246748160,"mem_free":5239775232},"interestingStats":{"cmd_get":0,"couch_docs_actual_disk_size":17154348,"couch_docs_data_size":17140736,"couch_spatial_data_size":0,"couch_spatial_disk_size":0,"couch_views_actual_disk_size":769605,"couch_views_data_size":769605,"curr_items":7303,"curr_items_tot":7303,"ep_bg_fetched":0,"get_hits":0,"mem_used":53962032,"ops":0,"vb_replica_curr_items":0},"uptime":"30","memoryTotal":6246748160,"memoryFree":5239775232,"mcdMemoryReserved":4765,"mcdMemoryAllocated":4765,"couchApiBase":"http://172.17.0.2:8092/","couchApiBaseHTTPS":"https://172.17.0.2:18092/","otpCookie":"snyykghcidiksmqs","clusterMembership":"active","recoveryType":"none","status":"healthy","otpNode":"ns_1@127.0.0.1","thisNode":true,"hostname":"172.17.0.2:8091","clusterCompatibility":262149,"version":"4.5.1-2844-enterprise","os":"x86_64-unknown-linux-gnu","ports":{"sslProxy":11214,"httpsMgmt":18091,"httpsCAPI":18092,"proxy":11211,"direct":11210},"services":["index","kv","n1ql"]}],"buckets":{"uri":"/pools/default/buckets?v=42234267&uuid=9179f751ee7308159a00974c5da5229f","terseBucketsBase":"/pools/default/b/","terseStreamingBucketsBase":"/pools/default/bs/"},"remoteClusters":{"uri":"/pools/default/remoteClusters?uuid=9179f751ee7308159a00974c5da5229f","validateURI":"/pools/default/remoteClusters?just_validate=1"},"controllers":{"addNode":{"uri":"/controller/addNodeV2?uuid=9179f751ee7308159a00974c5da5229f"},"rebalance":{"uri":"/controller/rebalance?uuid=9179f751ee7308159a00974c5da5229f"},"failOver":{"uri":"/controller/failOver?uuid=9179f751ee7308159a00974c5da5229f"},"startGracefulFailover":{"uri":"/controller/startGracefulFailover?uuid=9179f751ee7308159a00974c5da5229f"},"reAddNode":{"uri":"/controller/reAddNode?uuid=9179f751ee7308159a00974c5da5229f"},"reFailOver":{"uri":"/controller/reFailOver?uuid=9179f751ee7308159a00974c5da5229f"},"ejectNode":{"uri":"/controller/ejectNode?uuid=9179f751ee7308159a00974c5da5229f"},"setRecoveryType":{"uri":"/controller/setRecoveryType?uuid=9179f751ee7308159a00974c5da5229f"},"setAutoCompaction":{"uri":"/controller/setAutoCompaction?uuid=9179f751ee7308159a00974c5da5229f","validateURI":"/controller/setAutoCompaction?just_validate=1"},"clusterLogsCollection":{"startURI":"/controller/startLogsCollection?uuid=9179f751ee7308159a00974c5da5229f","cancelURI":"/controller/cancelLogsCollection?uuid=9179f751ee7308159a00974c5da5229f"},"replication":{"createURI":"/controller/createReplication?uuid=9179f751ee7308159a00974c5da5229f","validateURI":"/controller/createReplication?just_validate=1"}},"rebalanceStatus":"none","rebalanceProgressUri":"/pools/default/rebalanceProgress","stopRebalanceUri":"/controller/stopRebalance?uuid=9179f751ee7308159a00974c5da5229f","nodeStatusesUri":"/nodeStatuses","maxBucketCount":10,"autoCompactionSettings":{"parallelDBAndViewCompaction":false,"databaseFragmentationThreshold":{"percentage":30,"size":"undefined"},"viewFragmentationThreshold":{"percentage":30,"size":"undefined"},"indexCompactionMode":"circular","indexCircularCompaction":{"daysOfWeek":"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday","interval":{"fromHour":0,"toHour":0,"fromMinute":0,"toMinute":0,"abortOutside":false}},"indexFragmentationThreshold":{"percentage":30}},"tasks":{"uri":"/pools/default/tasks?v=74113599"},"counters":{},"indexStatusURI":"/indexStatus?v=21137658","checkPermissionsURI":"/pools/default/checkPermissions?v=11181330","serverGroupsUri":"/pools/default/serverGroups?v=52184775"} diff --git a/metricbeat/module/couchbase/cluster/_meta/testdata/4.5.1.json-expected.json b/metricbeat/module/couchbase/cluster/_meta/testdata/4.5.1.json-expected.json new file mode 100644 index 00000000000..8dbbb27b419 --- /dev/null +++ b/metricbeat/module/couchbase/cluster/_meta/testdata/4.5.1.json-expected.json @@ -0,0 +1,81 @@ +[ + { + "couchbase": { + "cluster": { + "hdd": { + "free": { + "bytes": 57080317666 + }, + "quota": { + "total": { + "bytes": 62725623808 + } + }, + "total": { + "bytes": 62725623808 + }, + "used": { + "by_data": { + "bytes": 17923953 + }, + "value": { + "bytes": 5645306142 + } + } + }, + "max_bucket_count": 10, + "quota": { + "index_memory": { + "mb": 300 + }, + "memory": { + "mb": 300 + } + }, + "ram": { + "quota": { + "total": { + "per_node": { + "bytes": 314572800 + }, + "value": { + "bytes": 314572800 + } + }, + "used": { + "per_node": { + "bytes": 104857600 + }, + "value": { + "bytes": 104857600 + } + } + }, + "total": { + "bytes": 6246748160 + }, + "used": { + "by_data": { + "bytes": 53962032 + }, + "value": { + "bytes": 3155247104 + } + } + } + } + }, + "event": { + "dataset": "couchbase.cluster", + "duration": 115000, + "module": "couchbase" + }, + "metricset": { + "name": "cluster" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "couchbase" + } + } +] \ No newline at end of file diff --git a/metricbeat/module/couchbase/cluster/_meta/testdata/config.yml b/metricbeat/module/couchbase/cluster/_meta/testdata/config.yml new file mode 100644 index 00000000000..1351708ffb0 --- /dev/null +++ b/metricbeat/module/couchbase/cluster/_meta/testdata/config.yml @@ -0,0 +1,2 @@ +type: http +url: "/pools/default" diff --git a/metricbeat/module/couchbase/cluster/testdata/sample_response.json b/metricbeat/module/couchbase/cluster/_meta/testdata/docs.json similarity index 100% rename from metricbeat/module/couchbase/cluster/testdata/sample_response.json rename to metricbeat/module/couchbase/cluster/_meta/testdata/docs.json diff --git a/metricbeat/module/couchbase/cluster/_meta/testdata/docs.json-expected.json b/metricbeat/module/couchbase/cluster/_meta/testdata/docs.json-expected.json new file mode 100644 index 00000000000..093aaed8a87 --- /dev/null +++ b/metricbeat/module/couchbase/cluster/_meta/testdata/docs.json-expected.json @@ -0,0 +1,81 @@ +[ + { + "couchbase": { + "cluster": { + "hdd": { + "free": { + "bytes": 46902679716 + }, + "quota": { + "total": { + "bytes": 63381999616 + } + }, + "total": { + "bytes": 63381999616 + }, + "used": { + "by_data": { + "bytes": 16369010 + }, + "value": { + "bytes": 16479319900 + } + } + }, + "max_bucket_count": 10, + "quota": { + "index_memory": { + "mb": 300 + }, + "memory": { + "mb": 300 + } + }, + "ram": { + "quota": { + "total": { + "per_node": { + "bytes": 314572800 + }, + "value": { + "bytes": 314572800 + } + }, + "used": { + "per_node": { + "bytes": 104857600 + }, + "value": { + "bytes": 104857600 + } + } + }, + "total": { + "bytes": 8359174144 + }, + "used": { + "by_data": { + "bytes": 53962016 + }, + "value": { + "bytes": 8004751360 + } + } + } + } + }, + "event": { + "dataset": "couchbase.cluster", + "duration": 115000, + "module": "couchbase" + }, + "metricset": { + "name": "cluster" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "couchbase" + } + } +] \ No newline at end of file diff --git a/metricbeat/module/couchbase/cluster/cluster_integration_test.go b/metricbeat/module/couchbase/cluster/cluster_integration_test.go index 72a94a530d3..dd1812388a5 100644 --- a/metricbeat/module/couchbase/cluster/cluster_integration_test.go +++ b/metricbeat/module/couchbase/cluster/cluster_integration_test.go @@ -42,21 +42,6 @@ func TestFetch(t *testing.T) { t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), events[0]) } -func TestData(t *testing.T) { - compose.EnsureUp(t, "couchbase") - - f := mbtest.NewReportingMetricSetV2(t, getConfig()) - events, errs := mbtest.ReportingFetchV2(f) - if len(errs) > 0 { - t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) - } - - assert.NotEmpty(t, events) - if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { - t.Fatal("write", err) - } -} - func getConfig() map[string]interface{} { return map[string]interface{}{ "module": "couchbase", diff --git a/metricbeat/module/couchbase/cluster/cluster_test.go b/metricbeat/module/couchbase/cluster/cluster_test.go deleted file mode 100644 index d828f3509a7..00000000000 --- a/metricbeat/module/couchbase/cluster/cluster_test.go +++ /dev/null @@ -1,120 +0,0 @@ -// Licensed to Elasticsearch B.V. under one or more contributor -// license agreements. See the NOTICE file distributed with -// this work for additional information regarding copyright -// ownership. Elasticsearch B.V. licenses this file to you under -// the Apache License, Version 2.0 (the "License"); you may -// not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -// +build !integration - -package cluster - -import ( - "io/ioutil" - "net/http" - "net/http/httptest" - "path/filepath" - "testing" - - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/common" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestFetchEventContents(t *testing.T) { - absPath, err := filepath.Abs("./testdata/") - assert.NoError(t, err) - - // response is a raw response from a couchbase - response, err := ioutil.ReadFile(absPath + "/sample_response.json") - assert.NoError(t, err) - - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - w.Header().Set("Content-Type", "application/json;") - w.Write([]byte(response)) - })) - defer server.Close() - - config := map[string]interface{}{ - "module": "couchbase", - "metricsets": []string{"cluster"}, - "hosts": []string{server.URL}, - } - - f := mbtest.NewReportingMetricSetV2(t, config) - events, errs := mbtest.ReportingFetchV2(f) - if len(errs) > 0 { - t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) - } - assert.NotEmpty(t, events) - event := events[0].MetricSetFields - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event.StringToPrint()) - - hdd := event["hdd"].(common.MapStr) - hdd_free := hdd["free"].(common.MapStr) - assert.EqualValues(t, 46902679716, hdd_free["bytes"]) - - hdd_total := hdd["total"].(common.MapStr) - assert.EqualValues(t, 63381999616, hdd_total["bytes"]) - - hdd_used := hdd["used"].(common.MapStr) - hdd_used_value := hdd_used["value"].(common.MapStr) - assert.EqualValues(t, 16479319900, hdd_used_value["bytes"]) - - hdd_used_by_data := hdd_used["by_data"].(common.MapStr) - assert.EqualValues(t, 16369010, hdd_used_by_data["bytes"]) - - hdd_quota := hdd["quota"].(common.MapStr) - hdd_quota_total := hdd_quota["total"].(common.MapStr) - assert.EqualValues(t, 63381999616, hdd_quota_total["bytes"]) - - assert.EqualValues(t, 10, event["max_bucket_count"]) - - quota := event["quota"].(common.MapStr) - quota_index_memory := quota["index_memory"].(common.MapStr) - assert.EqualValues(t, 300, quota_index_memory["mb"]) - - quota_memory := quota["memory"].(common.MapStr) - assert.EqualValues(t, 300, quota_memory["mb"]) - - ram := event["ram"].(common.MapStr) - - ram_quota := ram["quota"].(common.MapStr) - - ram_quota_total := ram_quota["total"].(common.MapStr) - ram_quota_total_value := ram_quota_total["value"].(common.MapStr) - assert.EqualValues(t, 314572800, ram_quota_total_value["bytes"]) - - ram_quota_total_per_node := ram_quota_total["per_node"].(common.MapStr) - assert.EqualValues(t, 314572800, ram_quota_total_per_node["bytes"]) - - ram_quota_used := ram_quota["used"].(common.MapStr) - ram_quota_used_value := ram_quota_used["value"].(common.MapStr) - assert.EqualValues(t, 104857600, ram_quota_used_value["bytes"]) - - ram_quota_used_per_node := ram_quota_used["per_node"].(common.MapStr) - assert.EqualValues(t, 104857600, ram_quota_used_per_node["bytes"]) - - ram_total := ram["total"].(common.MapStr) - assert.EqualValues(t, 8359174144, ram_total["bytes"]) - - ram_used := ram["used"].(common.MapStr) - ram_used_value := ram_used["value"].(common.MapStr) - assert.EqualValues(t, 8004751360, ram_used_value["bytes"]) - - ram_used_by_data := ram_used["by_data"].(common.MapStr) - assert.EqualValues(t, 53962016, ram_used_by_data["bytes"]) -} diff --git a/metricbeat/module/couchbase/node/_meta/data.json b/metricbeat/module/couchbase/node/_meta/data.json index 750af9accd9..58cc3b95835 100644 --- a/metricbeat/module/couchbase/node/_meta/data.json +++ b/metricbeat/module/couchbase/node/_meta/data.json @@ -1,19 +1,15 @@ { - "@timestamp": "2017-10-12T08:05:34.853Z", - "agent": { - "hostname": "host.example.com", - "name": "host.example.com" - }, + "@timestamp": "2019-03-01T08:05:34.853Z", "couchbase": { "node": { "cmd_get": 0, "couch": { "docs": { "data_size": { - "bytes": 19151872 + "bytes": 9792512 }, "disk_size": { - "bytes": 22895585 + "bytes": 13563791 } }, "spatial": { @@ -26,15 +22,15 @@ }, "views": { "data_size": { - "bytes": 769446 + "bytes": 2805219 }, "disk_size": { - "bytes": 769446 + "bytes": 2805219 } } }, "cpu_utilization_rate": { - "pct": 19.64735516372796 + "pct": 29.64705882352941 }, "current_items": { "total": 7303, @@ -42,37 +38,37 @@ }, "ep_bg_fetched": 0, "get_hits": 0, - "hostname": "172.21.0.2:8091", + "hostname": "172.17.0.2:8091", "mcd_memory": { "allocated": { - "bytes": 12728 + "bytes": 6377 }, "reserved": { - "bytes": 12728 + "bytes": 6377 } }, "memory": { "free": { - "bytes": 7447130112 + "bytes": 4678324224 }, "total": { - "bytes": 16683503616 + "bytes": 8359174144 }, "used": { - "bytes": 53961776 + "bytes": 53962016 } }, "ops": 0, "swap": { "total": { - "bytes": 2147479552 + "bytes": 4189057024 }, "used": { - "bytes": 0 + "bytes": 135168 } }, "uptime": { - "sec": 10612 + "sec": 7260 }, "vb_replica_curr_items": 0 } @@ -86,7 +82,7 @@ "name": "node" }, "service": { - "address": "localhost:8091", + "address": "127.0.0.1:55555", "type": "couchbase" } } \ No newline at end of file diff --git a/metricbeat/module/couchbase/node/_meta/testdata/4.5.1.json b/metricbeat/module/couchbase/node/_meta/testdata/4.5.1.json new file mode 100644 index 00000000000..d620439f138 --- /dev/null +++ b/metricbeat/module/couchbase/node/_meta/testdata/4.5.1.json @@ -0,0 +1 @@ +{"storageTotals":{"ram":{"total":6246748160,"quotaTotal":314572800,"quotaUsed":104857600,"used":3155247104,"usedByData":53962032,"quotaUsedPerNode":104857600,"quotaTotalPerNode":314572800},"hdd":{"total":62725623808,"quotaTotal":62725623808,"used":5645306142,"usedByData":17923953,"free":57080317666}},"ftsMemoryQuota":512,"indexMemoryQuota":300,"memoryQuota":300,"name":"default","alerts":[],"alertsSilenceURL":"/controller/resetAlerts?token=0&uuid=9179f751ee7308159a00974c5da5229f","nodes":[{"systemStats":{"cpu_utilization_rate":5.670103092783505,"swap_total":1073737728,"swap_used":0,"mem_total":6246748160,"mem_free":5239775232},"interestingStats":{"cmd_get":0,"couch_docs_actual_disk_size":17154348,"couch_docs_data_size":17140736,"couch_spatial_data_size":0,"couch_spatial_disk_size":0,"couch_views_actual_disk_size":769605,"couch_views_data_size":769605,"curr_items":7303,"curr_items_tot":7303,"ep_bg_fetched":0,"get_hits":0,"mem_used":53962032,"ops":0,"vb_replica_curr_items":0},"uptime":"30","memoryTotal":6246748160,"memoryFree":5239775232,"mcdMemoryReserved":4765,"mcdMemoryAllocated":4765,"couchApiBase":"http://172.17.0.2:8092/","couchApiBaseHTTPS":"https://172.17.0.2:18092/","otpCookie":"snyykghcidiksmqs","clusterMembership":"active","recoveryType":"none","status":"healthy","otpNode":"ns_1@127.0.0.1","thisNode":true,"hostname":"172.17.0.2:8091","clusterCompatibility":262149,"version":"4.5.1-2844-enterprise","os":"x86_64-unknown-linux-gnu","ports":{"sslProxy":11214,"httpsMgmt":18091,"httpsCAPI":18092,"proxy":11211,"direct":11210},"services":["index","kv","n1ql"]}],"buckets":{"uri":"/pools/default/buckets?v=42234267&uuid=9179f751ee7308159a00974c5da5229f","terseBucketsBase":"/pools/default/b/","terseStreamingBucketsBase":"/pools/default/bs/"},"remoteClusters":{"uri":"/pools/default/remoteClusters?uuid=9179f751ee7308159a00974c5da5229f","validateURI":"/pools/default/remoteClusters?just_validate=1"},"controllers":{"addNode":{"uri":"/controller/addNodeV2?uuid=9179f751ee7308159a00974c5da5229f"},"rebalance":{"uri":"/controller/rebalance?uuid=9179f751ee7308159a00974c5da5229f"},"failOver":{"uri":"/controller/failOver?uuid=9179f751ee7308159a00974c5da5229f"},"startGracefulFailover":{"uri":"/controller/startGracefulFailover?uuid=9179f751ee7308159a00974c5da5229f"},"reAddNode":{"uri":"/controller/reAddNode?uuid=9179f751ee7308159a00974c5da5229f"},"reFailOver":{"uri":"/controller/reFailOver?uuid=9179f751ee7308159a00974c5da5229f"},"ejectNode":{"uri":"/controller/ejectNode?uuid=9179f751ee7308159a00974c5da5229f"},"setRecoveryType":{"uri":"/controller/setRecoveryType?uuid=9179f751ee7308159a00974c5da5229f"},"setAutoCompaction":{"uri":"/controller/setAutoCompaction?uuid=9179f751ee7308159a00974c5da5229f","validateURI":"/controller/setAutoCompaction?just_validate=1"},"clusterLogsCollection":{"startURI":"/controller/startLogsCollection?uuid=9179f751ee7308159a00974c5da5229f","cancelURI":"/controller/cancelLogsCollection?uuid=9179f751ee7308159a00974c5da5229f"},"replication":{"createURI":"/controller/createReplication?uuid=9179f751ee7308159a00974c5da5229f","validateURI":"/controller/createReplication?just_validate=1"}},"rebalanceStatus":"none","rebalanceProgressUri":"/pools/default/rebalanceProgress","stopRebalanceUri":"/controller/stopRebalance?uuid=9179f751ee7308159a00974c5da5229f","nodeStatusesUri":"/nodeStatuses","maxBucketCount":10,"autoCompactionSettings":{"parallelDBAndViewCompaction":false,"databaseFragmentationThreshold":{"percentage":30,"size":"undefined"},"viewFragmentationThreshold":{"percentage":30,"size":"undefined"},"indexCompactionMode":"circular","indexCircularCompaction":{"daysOfWeek":"Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday","interval":{"fromHour":0,"toHour":0,"fromMinute":0,"toMinute":0,"abortOutside":false}},"indexFragmentationThreshold":{"percentage":30}},"tasks":{"uri":"/pools/default/tasks?v=74113599"},"counters":{},"indexStatusURI":"/indexStatus?v=21137658","checkPermissionsURI":"/pools/default/checkPermissions?v=11181330","serverGroupsUri":"/pools/default/serverGroups?v=52184775"} diff --git a/metricbeat/module/couchbase/node/_meta/testdata/4.5.1.json-expected.json b/metricbeat/module/couchbase/node/_meta/testdata/4.5.1.json-expected.json new file mode 100644 index 00000000000..5d4ea32844a --- /dev/null +++ b/metricbeat/module/couchbase/node/_meta/testdata/4.5.1.json-expected.json @@ -0,0 +1,89 @@ +[ + { + "couchbase": { + "node": { + "cmd_get": 0, + "couch": { + "docs": { + "data_size": { + "bytes": 17140736 + }, + "disk_size": { + "bytes": 17154348 + } + }, + "spatial": { + "data_size": { + "bytes": 0 + }, + "disk_size": { + "bytes": 0 + } + }, + "views": { + "data_size": { + "bytes": 769605 + }, + "disk_size": { + "bytes": 769605 + } + } + }, + "cpu_utilization_rate": { + "pct": 5.670103092783505 + }, + "current_items": { + "total": 7303, + "value": 7303 + }, + "ep_bg_fetched": 0, + "get_hits": 0, + "hostname": "172.17.0.2:8091", + "mcd_memory": { + "allocated": { + "bytes": 4765 + }, + "reserved": { + "bytes": 4765 + } + }, + "memory": { + "free": { + "bytes": 5239775232 + }, + "total": { + "bytes": 6246748160 + }, + "used": { + "bytes": 53962032 + } + }, + "ops": 0, + "swap": { + "total": { + "bytes": 1073737728 + }, + "used": { + "bytes": 0 + } + }, + "uptime": { + "sec": 30 + }, + "vb_replica_curr_items": 0 + } + }, + "event": { + "dataset": "couchbase.node", + "duration": 115000, + "module": "couchbase" + }, + "metricset": { + "name": "node" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "couchbase" + } + } +] \ No newline at end of file diff --git a/metricbeat/module/couchbase/node/_meta/testdata/config.yml b/metricbeat/module/couchbase/node/_meta/testdata/config.yml new file mode 100644 index 00000000000..1351708ffb0 --- /dev/null +++ b/metricbeat/module/couchbase/node/_meta/testdata/config.yml @@ -0,0 +1,2 @@ +type: http +url: "/pools/default" diff --git a/metricbeat/module/couchbase/node/testdata/sample_response.json b/metricbeat/module/couchbase/node/_meta/testdata/docs.json similarity index 100% rename from metricbeat/module/couchbase/node/testdata/sample_response.json rename to metricbeat/module/couchbase/node/_meta/testdata/docs.json diff --git a/metricbeat/module/couchbase/node/_meta/testdata/docs.json-expected.json b/metricbeat/module/couchbase/node/_meta/testdata/docs.json-expected.json new file mode 100644 index 00000000000..c43091bbf5b --- /dev/null +++ b/metricbeat/module/couchbase/node/_meta/testdata/docs.json-expected.json @@ -0,0 +1,89 @@ +[ + { + "couchbase": { + "node": { + "cmd_get": 0, + "couch": { + "docs": { + "data_size": { + "bytes": 9792512 + }, + "disk_size": { + "bytes": 13563791 + } + }, + "spatial": { + "data_size": { + "bytes": 0 + }, + "disk_size": { + "bytes": 0 + } + }, + "views": { + "data_size": { + "bytes": 2805219 + }, + "disk_size": { + "bytes": 2805219 + } + } + }, + "cpu_utilization_rate": { + "pct": 29.64705882352941 + }, + "current_items": { + "total": 7303, + "value": 7303 + }, + "ep_bg_fetched": 0, + "get_hits": 0, + "hostname": "172.17.0.2:8091", + "mcd_memory": { + "allocated": { + "bytes": 6377 + }, + "reserved": { + "bytes": 6377 + } + }, + "memory": { + "free": { + "bytes": 4678324224 + }, + "total": { + "bytes": 8359174144 + }, + "used": { + "bytes": 53962016 + } + }, + "ops": 0, + "swap": { + "total": { + "bytes": 4189057024 + }, + "used": { + "bytes": 135168 + } + }, + "uptime": { + "sec": 7260 + }, + "vb_replica_curr_items": 0 + } + }, + "event": { + "dataset": "couchbase.node", + "duration": 115000, + "module": "couchbase" + }, + "metricset": { + "name": "node" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "couchbase" + } + } +] \ No newline at end of file diff --git a/metricbeat/module/couchbase/node/node_integration_test.go b/metricbeat/module/couchbase/node/node_integration_test.go index 9513e91cf7a..3612e63238a 100644 --- a/metricbeat/module/couchbase/node/node_integration_test.go +++ b/metricbeat/module/couchbase/node/node_integration_test.go @@ -42,21 +42,6 @@ func TestFetch(t *testing.T) { t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), events[0]) } -func TestData(t *testing.T) { - compose.EnsureUp(t, "couchbase") - - f := mbtest.NewReportingMetricSetV2(t, getConfig()) - events, errs := mbtest.ReportingFetchV2(f) - if len(errs) > 0 { - t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) - } - - assert.NotEmpty(t, events) - if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { - t.Fatal("write", err) - } -} - func getConfig() map[string]interface{} { return map[string]interface{}{ "module": "couchbase", diff --git a/metricbeat/module/couchbase/node/node_test.go b/metricbeat/module/couchbase/node/node_test.go deleted file mode 100644 index 293195de01f..00000000000 --- a/metricbeat/module/couchbase/node/node_test.go +++ /dev/null @@ -1,133 +0,0 @@ -// Licensed to Elasticsearch B.V. under one or more contributor -// license agreements. See the NOTICE file distributed with -// this work for additional information regarding copyright -// ownership. Elasticsearch B.V. licenses this file to you under -// the Apache License, Version 2.0 (the "License"); you may -// not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -// +build !integration - -package node - -import ( - "io/ioutil" - "net/http" - "net/http/httptest" - "path/filepath" - "testing" - - "github.com/elastic/beats/libbeat/common" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" - - "github.com/stretchr/testify/assert" -) - -func TestFetchEventContents(t *testing.T) { - absPath, err := filepath.Abs("./testdata/") - assert.NoError(t, err) - - // response is a raw response from a couchbase - response, err := ioutil.ReadFile(absPath + "/sample_response.json") - assert.NoError(t, err) - - server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - w.WriteHeader(200) - w.Header().Set("Content-Type", "application/json;") - w.Write([]byte(response)) - })) - defer server.Close() - - config := map[string]interface{}{ - "module": "couchbase", - "metricsets": []string{"node"}, - "hosts": []string{server.URL}, - } - - f := mbtest.NewReportingMetricSetV2(t, config) - events, errs := mbtest.ReportingFetchV2(f) - if len(errs) > 0 { - t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) - } - - assert.NotEmpty(t, events) - event := events[0].MetricSetFields - - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event.StringToPrint()) - - assert.EqualValues(t, 0, event["cmd_get"]) - - couch := event["couch"].(common.MapStr) - - couch_docs := couch["docs"].(common.MapStr) - couch_docs_disk_size := couch_docs["disk_size"].(common.MapStr) - assert.EqualValues(t, 13563791, couch_docs_disk_size["bytes"]) - - couch_docs_data_size := couch_docs["data_size"].(common.MapStr) - assert.EqualValues(t, 9792512, couch_docs_data_size["bytes"]) - - couch_spatial := couch["spatial"].(common.MapStr) - couch_spatial_data_size := couch_spatial["data_size"].(common.MapStr) - assert.EqualValues(t, 0, couch_spatial_data_size["bytes"]) - - couch_spatial_disk_size := couch_spatial["disk_size"].(common.MapStr) - assert.EqualValues(t, 0, couch_spatial_disk_size["bytes"]) - - couch_views := couch["views"].(common.MapStr) - couch_views_disk_size := couch_views["disk_size"].(common.MapStr) - assert.EqualValues(t, 2805219, couch_views_disk_size["bytes"]) - - couch_views_data_size := couch_views["data_size"].(common.MapStr) - assert.EqualValues(t, 2805219, couch_views_data_size["bytes"]) - - event_cpu_utilization_rate := event["cpu_utilization_rate"].(common.MapStr) - assert.EqualValues(t, 29.64705882352941, event_cpu_utilization_rate["pct"]) - - current_items := event["current_items"].(common.MapStr) - assert.EqualValues(t, 7303, current_items["value"]) - assert.EqualValues(t, 7303, current_items["total"]) - - assert.EqualValues(t, 0, event["ep_bg_fetched"]) - assert.EqualValues(t, 0, event["get_hits"]) - assert.Equal(t, "172.17.0.2:8091", event["hostname"]) - - mcd_memory := event["mcd_memory"].(common.MapStr) - mcd_memory_reserved := mcd_memory["reserved"].(common.MapStr) - assert.EqualValues(t, 6377, mcd_memory_reserved["bytes"]) - - mcd_memory_allocated := mcd_memory["allocated"].(common.MapStr) - assert.EqualValues(t, 6377, mcd_memory_allocated["bytes"]) - - memory := event["memory"].(common.MapStr) - memory_total := memory["total"].(common.MapStr) - assert.EqualValues(t, 8359174144, memory_total["bytes"]) - - memory_free := memory["free"].(common.MapStr) - assert.EqualValues(t, 4678324224, memory_free["bytes"]) - - memory_used := memory["used"].(common.MapStr) - assert.EqualValues(t, 53962016, memory_used["bytes"]) - - assert.EqualValues(t, 0, event["ops"]) - - swap := event["swap"].(common.MapStr) - swap_total := swap["total"].(common.MapStr) - assert.EqualValues(t, 4189057024, swap_total["bytes"]) - - swap_used := swap["used"].(common.MapStr) - assert.EqualValues(t, 135168, swap_used["bytes"]) - - event_uptime := event["uptime"].(common.MapStr) - assert.EqualValues(t, 7260, event_uptime["sec"]) - - assert.EqualValues(t, 0, event["vb_replica_curr_items"]) -} From 7ed8570439e2eba3f575a52c89df5c8c84f1f1c1 Mon Sep 17 00:00:00 2001 From: Mario Castro Date: Thu, 7 Mar 2019 12:19:47 +0100 Subject: [PATCH 160/332] [Metricbeat] Migrate Ceph cluster_health to use ReporterV2 interface (#10991) --- .../ceph/cluster_health/cluster_health.go | 21 +++++++++++++++---- .../cluster_health_integration_test.go | 6 +++--- .../cluster_health/cluster_health_test.go | 9 ++++++-- metricbeat/module/ceph/cluster_health/data.go | 9 ++++---- 4 files changed, 32 insertions(+), 13 deletions(-) diff --git a/metricbeat/module/ceph/cluster_health/cluster_health.go b/metricbeat/module/ceph/cluster_health/cluster_health.go index 3242aab4ac8..e1579b21c50 100644 --- a/metricbeat/module/ceph/cluster_health/cluster_health.go +++ b/metricbeat/module/ceph/cluster_health/cluster_health.go @@ -18,7 +18,6 @@ package cluster_health import ( - "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" @@ -61,11 +60,25 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { }, nil } -func (m *MetricSet) Fetch() (common.MapStr, error) { +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(reporter mb.ReporterV2) { content, err := m.HTTP.FetchContent() if err != nil { - return nil, err + m.Logger().Error(err) + reporter.Error(err) + return } - return eventMapping(content), nil + events, err := eventMapping(content) + if err != nil { + m.Logger().Error(err) + reporter.Error(err) + return + } + + reporter.Event(mb.Event{MetricSetFields: events}) + + return } diff --git a/metricbeat/module/ceph/cluster_health/cluster_health_integration_test.go b/metricbeat/module/ceph/cluster_health/cluster_health_integration_test.go index 799ec05af8b..fe876b21219 100644 --- a/metricbeat/module/ceph/cluster_health/cluster_health_integration_test.go +++ b/metricbeat/module/ceph/cluster_health/cluster_health_integration_test.go @@ -26,9 +26,9 @@ import ( ) func TestData(t *testing.T) { - f := mbtest.NewEventFetcher(t, getConfig()) - err := mbtest.WriteEvent(f, t) - if err != nil { + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + + if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { t.Fatal("write", err) } } diff --git a/metricbeat/module/ceph/cluster_health/cluster_health_test.go b/metricbeat/module/ceph/cluster_health/cluster_health_test.go index 465c7d4d2ef..5cc1cdb6366 100644 --- a/metricbeat/module/ceph/cluster_health/cluster_health_test.go +++ b/metricbeat/module/ceph/cluster_health/cluster_health_test.go @@ -50,8 +50,13 @@ func TestFetchEventContents(t *testing.T) { "hosts": []string{server.URL}, } - f := mbtest.NewEventFetcher(t, config) - event, err := f.Fetch() + f := mbtest.NewReportingMetricSetV2(t, config) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) + } + assert.NotEmpty(t, events) + event := events[0].MetricSetFields t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event.StringToPrint()) diff --git a/metricbeat/module/ceph/cluster_health/data.go b/metricbeat/module/ceph/cluster_health/data.go index 10ecfbcd389..f624d5bdacb 100644 --- a/metricbeat/module/ceph/cluster_health/data.go +++ b/metricbeat/module/ceph/cluster_health/data.go @@ -20,8 +20,9 @@ package cluster_health import ( "encoding/json" + "github.com/pkg/errors" + "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/logp" ) type Timecheck struct { @@ -40,11 +41,11 @@ type HealthRequest struct { Output Output `json:"output"` } -func eventMapping(content []byte) common.MapStr { +func eventMapping(content []byte) (common.MapStr, error) { var d HealthRequest err := json.Unmarshal(content, &d) if err != nil { - logp.Err("Error: %+v", err) + return nil, errors.Wrap(err, "error getting HealthRequest data") } return common.MapStr{ @@ -56,5 +57,5 @@ func eventMapping(content []byte) common.MapStr { "status": d.Output.Timechecks.RoundStatus, }, }, - } + }, nil } From a78c552eafc6d4033e1f23051a080ff6fd08f358 Mon Sep 17 00:00:00 2001 From: Mario Castro Date: Thu, 7 Mar 2019 12:20:27 +0100 Subject: [PATCH 161/332] [Metricbeat] Migrate Ceph cluster_disk to use ReporterV2 interface (#10990) --- .../module/ceph/cluster_disk/cluster_disk.go | 18 ++++++++++++++---- .../cluster_disk_integration_test.go | 8 +++++--- .../ceph/cluster_disk/cluster_disk_test.go | 9 +++++++-- metricbeat/module/ceph/cluster_disk/data.go | 9 +++++---- 4 files changed, 31 insertions(+), 13 deletions(-) diff --git a/metricbeat/module/ceph/cluster_disk/cluster_disk.go b/metricbeat/module/ceph/cluster_disk/cluster_disk.go index cc179e71440..37f68f37a6c 100644 --- a/metricbeat/module/ceph/cluster_disk/cluster_disk.go +++ b/metricbeat/module/ceph/cluster_disk/cluster_disk.go @@ -18,7 +18,6 @@ package cluster_disk import ( - "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" @@ -61,12 +60,23 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { }, nil } -func (m *MetricSet) Fetch() (common.MapStr, error) { +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(reporter mb.ReporterV2) error { content, err := m.HTTP.FetchContent() + if err != nil { + return err + } + event, err := eventMapping(content) if err != nil { - return nil, err + return err + } + + if reported := reporter.Event(mb.Event{MetricSetFields: event}); !reported { + m.Logger().Debug("error reporting event") } - return eventMapping(content), nil + return nil } diff --git a/metricbeat/module/ceph/cluster_disk/cluster_disk_integration_test.go b/metricbeat/module/ceph/cluster_disk/cluster_disk_integration_test.go index 29253ee9383..8b815dca0f7 100644 --- a/metricbeat/module/ceph/cluster_disk/cluster_disk_integration_test.go +++ b/metricbeat/module/ceph/cluster_disk/cluster_disk_integration_test.go @@ -15,6 +15,8 @@ // specific language governing permissions and limitations // under the License. +// +build integration + package cluster_disk import ( @@ -26,9 +28,9 @@ import ( ) func TestData(t *testing.T) { - f := mbtest.NewEventFetcher(t, getConfig()) - err := mbtest.WriteEvent(f, t) - if err != nil { + f := mbtest.NewReportingMetricSetV2Error(t, getConfig()) + + if err := mbtest.WriteEventsReporterV2Error(f, t, ""); err != nil { t.Fatal("write", err) } } diff --git a/metricbeat/module/ceph/cluster_disk/cluster_disk_test.go b/metricbeat/module/ceph/cluster_disk/cluster_disk_test.go index 3aef094ad2a..b073f4be6b6 100644 --- a/metricbeat/module/ceph/cluster_disk/cluster_disk_test.go +++ b/metricbeat/module/ceph/cluster_disk/cluster_disk_test.go @@ -50,8 +50,13 @@ func TestFetchEventContents(t *testing.T) { "hosts": []string{server.URL}, } - f := mbtest.NewEventFetcher(t, config) - event, err := f.Fetch() + f := mbtest.NewReportingMetricSetV2Error(t, config) + events, errs := mbtest.ReportingFetchV2Error(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) + } + assert.NotEmpty(t, events) + event := events[0].MetricSetFields t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event.StringToPrint()) diff --git a/metricbeat/module/ceph/cluster_disk/data.go b/metricbeat/module/ceph/cluster_disk/data.go index 7a2c600cc53..259d712f8c9 100644 --- a/metricbeat/module/ceph/cluster_disk/data.go +++ b/metricbeat/module/ceph/cluster_disk/data.go @@ -20,8 +20,9 @@ package cluster_disk import ( "encoding/json" + "github.com/pkg/errors" + "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/logp" ) type StatsCluster struct { @@ -39,11 +40,11 @@ type DfRequest struct { Output Output `json:"output"` } -func eventMapping(content []byte) common.MapStr { +func eventMapping(content []byte) (common.MapStr, error) { var d DfRequest err := json.Unmarshal(content, &d) if err != nil { - logp.Err("Error: %+v", err) + return nil, errors.Wrap(err, "could not get DFRequest data") } return common.MapStr{ @@ -56,5 +57,5 @@ func eventMapping(content []byte) common.MapStr { "available": common.MapStr{ "bytes": d.Output.StatsCluster.TotalAvailBytes, }, - } + }, nil } From 2b10ba93bc652df8870f2599521a355f202c558b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Berfin=20Sar=C4=B1?= Date: Thu, 7 Mar 2019 15:06:59 +0300 Subject: [PATCH 162/332] [Metricbeat] Migrate EnvoyProxy server to use ReporterV2 interface (#11044) --- .../module/envoyproxy/server/_meta/data.json | 140 +++++++++--------- metricbeat/module/envoyproxy/server/server.go | 23 ++- .../server/server_integration_test.go | 29 ++-- .../module/envoyproxy/server/server_test.go | 30 ++-- 4 files changed, 122 insertions(+), 100 deletions(-) diff --git a/metricbeat/module/envoyproxy/server/_meta/data.json b/metricbeat/module/envoyproxy/server/_meta/data.json index 9c81813c7e9..4f0393e4d53 100644 --- a/metricbeat/module/envoyproxy/server/_meta/data.json +++ b/metricbeat/module/envoyproxy/server/_meta/data.json @@ -1,74 +1,72 @@ { - "@timestamp": "2018-07-06T14:01:31.031Z", - "beat":{ - "hostname":"beathost", - "name":"beathost" - }, - "metricset":{ - "host":"localhost", - "module":"envoyproxy", - "name":"server", - "rtt":44269 + "@timestamp": "2017-10-12T08:05:34.853Z", + "agent": { + "hostname": "host.example.com", + "name": "host.example.com" }, - "envoyproxy": { - "server": { - "filesystem": { - "write_buffered": 30, - "write_completed": 29, - "write_total_buffered": 0, - "flushed_by_timer": 311, - "reopen_failed": 0 - }, - "runtime": { - "override_dir_not_exists": 0, - "admin_overrides_active": 0, - "load_error": 0, - "load_success": 0, - "num_keys": 0, - "override_dir_exists": 0 - }, - "listener_manager": { - "listener_modified": 0, - "listener_removed": 0, - "total_listeners_active": 1, - "total_listeners_draining": 0, - "total_listeners_warming": 0, - "listener_added": 1, - "listener_create_failure": 0, - "listener_create_success": 4 - }, - "stats": { - "overflow": 0 - }, - "server": { - "version": 4151803, - "memory_allocated": 3170848, - "watchdog_miss": 0, - "uptime": 3146, - "watchdog_mega_miss": 0, - "hot_restart_epoch": 0, - "days_until_first_cert_expiring": 2147483647, - "live": 1, - "memory_heap_size": 4194304, - "parent_connections": 0, - "total_connections": 0 - }, - "http2": { - "header_overflow":0, - "headers_cb_no_stream":0, - "rx_reset":0, - "too_many_header_frames":0, - "trailers":0, - "tx_reset":0 - }, - "cluster_manager": { - "active_clusters": 1, - "cluster_added": 1, - "cluster_modified": 0, - "cluster_removed": 0, - "warming_clusters": 0 - } + "envoyproxy": { + "server": { + "cluster_manager": { + "active_clusters": 1, + "cluster_added": 1, + "cluster_modified": 0, + "cluster_removed": 0, + "warming_clusters": 0 + }, + "filesystem": { + "flushed_by_timer": 15, + "reopen_failed": 0, + "write_buffered": 151, + "write_completed": 31, + "write_total_buffered": 518 + }, + "http2": {}, + "listener_manager": { + "listener_added": 1, + "listener_create_failure": 0, + "listener_create_success": 12, + "listener_modified": 0, + "listener_removed": 0, + "total_listeners_active": 1, + "total_listeners_draining": 0, + "total_listeners_warming": 0 + }, + "runtime": { + "admin_overrides_active": 0, + "load_error": 0, + "load_success": 0, + "num_keys": 0, + "override_dir_exists": 0, + "override_dir_not_exists": 0 + }, + "server": { + "days_until_first_cert_expiring": 2147483647, + "hot_restart_epoch": 0, + "live": 1, + "memory_allocated": 3302416, + "memory_heap_size": 4194304, + "parent_connections": 0, + "total_connections": 0, + "uptime": 150, + "version": 4151803, + "watchdog_mega_miss": 0, + "watchdog_miss": 0 + }, + "stats": { + "overflow": 0 + } + } + }, + "event": { + "dataset": "envoyproxy.server", + "duration": 115000, + "module": "envoyproxy" + }, + "metricset": { + "name": "server" + }, + "service": { + "address": "127.0.0.1:9901", + "type": "envoyproxy" } - }, - "type":"metricsets" -} +} \ No newline at end of file diff --git a/metricbeat/module/envoyproxy/server/server.go b/metricbeat/module/envoyproxy/server/server.go index 61f27ecffdf..c61488f535a 100644 --- a/metricbeat/module/envoyproxy/server/server.go +++ b/metricbeat/module/envoyproxy/server/server.go @@ -18,7 +18,7 @@ package server import ( - "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" @@ -36,6 +36,8 @@ var ( }.Build() ) +var logger = logp.NewLogger("envoyproxy.server") + func init() { mb.Registry.MustAddMetricSet("envoyproxy", "server", New, mb.WithHostParser(hostParser), @@ -64,14 +66,19 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { }, nil } -func (m *MetricSet) Fetch() (common.MapStr, error) { +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(reporter mb.ReporterV2) { content, err := m.http.FetchContent() if err != nil { - return nil, err + logger.Error(err) + reporter.Error(err) + return } - event, err := eventMapping(content) - if err != nil { - return nil, err - } - return event, nil + + event, _ := eventMapping(content) + reporter.Event(mb.Event{MetricSetFields: event}) + + return } diff --git a/metricbeat/module/envoyproxy/server/server_integration_test.go b/metricbeat/module/envoyproxy/server/server_integration_test.go index af001de4594..6ea592b0aad 100644 --- a/metricbeat/module/envoyproxy/server/server_integration_test.go +++ b/metricbeat/module/envoyproxy/server/server_integration_test.go @@ -29,27 +29,32 @@ import ( mbtest "github.com/elastic/beats/metricbeat/mb/testing" ) -func TestData(t *testing.T) { +func TestFetch(t *testing.T) { compose.EnsureUp(t, "envoyproxy") - f := mbtest.NewEventFetcher(t, getConfig()) - err := mbtest.WriteEvent(f, t) - if err != nil { - t.Fatal("write", err) + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } + assert.NotEmpty(t, events) + + t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), events[0]) } -func TestFetch(t *testing.T) { +func TestData(t *testing.T) { compose.EnsureUp(t, "envoyproxy") - f := mbtest.NewEventFetcher(t, getConfig()) - event, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } + assert.NotEmpty(t, events) - assert.NotNil(t, event) - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) + if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { + t.Fatal("write", err) + } } func getConfig() map[string]interface{} { diff --git a/metricbeat/module/envoyproxy/server/server_test.go b/metricbeat/module/envoyproxy/server/server_test.go index e58b3517fd3..6cf0ed8f93e 100644 --- a/metricbeat/module/envoyproxy/server/server_test.go +++ b/metricbeat/module/envoyproxy/server/server_test.go @@ -22,6 +22,7 @@ import ( "net/http" "net/http/httptest" "path/filepath" + "strings" "testing" "time" @@ -92,13 +93,14 @@ func TestFetchEventContent(t *testing.T) { "hosts": []string{server.URL}, } - f := mbtest.NewEventFetcher(t, config) - event, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() + f := mbtest.NewReportingMetricSetV2(t, config) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } + assert.NotEmpty(t, events) - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) + t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), events[0]) } func testValue(t *testing.T, event common.MapStr, field string, value interface{}) { @@ -129,13 +131,23 @@ func TestFetchTimeout(t *testing.T) { "timeout": "50ms", } - f := mbtest.NewEventFetcher(t, config) + f := mbtest.NewReportingMetricSetV2(t, config) start := time.Now() - _, err = f.Fetch() + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) == 0 { + t.Fatalf("Expected an error, had %d. %v\n", len(errs), errs) + } + assert.Empty(t, events) elapsed := time.Since(start) - if assert.Error(t, err) { - assert.Contains(t, err.Error(), "request canceled (Client.Timeout exceeded") + var found bool + for _, err := range errs { + if strings.Contains(err.Error(), "request canceled (Client.Timeout exceeded") { + found = true + } + } + if !found { + assert.Failf(t, "", "expected an error containing 'request canceled (Client.Timeout exceeded'. Got %v", errs) } assert.True(t, elapsed < 5*time.Second, "elapsed time: %s", elapsed.String()) From 35af9fb399188ffe6b8652b025857c5620b58a13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Berfin=20Sar=C4=B1?= Date: Thu, 7 Mar 2019 15:11:20 +0300 Subject: [PATCH 163/332] [Metricbeat] Migrate Couchbase bucket to use ReporterV2 interface (#11045) --- .../module/couchbase/bucket/_meta/data.json | 24 ++++++++++------ metricbeat/module/couchbase/bucket/bucket.go | 24 +++++++++++----- .../bucket/bucket_integration_test.go | 28 +++++++++++++++++-- .../module/couchbase/bucket/bucket_test.go | 15 ++++++---- 4 files changed, 67 insertions(+), 24 deletions(-) diff --git a/metricbeat/module/couchbase/bucket/_meta/data.json b/metricbeat/module/couchbase/bucket/_meta/data.json index 9947964849f..9c67b39b9f1 100644 --- a/metricbeat/module/couchbase/bucket/_meta/data.json +++ b/metricbeat/module/couchbase/bucket/_meta/data.json @@ -1,6 +1,6 @@ { "@timestamp": "2017-10-12T08:05:34.853Z", - "beat": { + "agent": { "hostname": "host.example.com", "name": "host.example.com" }, @@ -8,19 +8,19 @@ "bucket": { "data": { "used": { - "bytes": 11485952 + "bytes": 19921318 } }, "disk": { "fetches": 0, "used": { - "bytes": 12962692 + "bytes": 23665025 } }, "item_count": 7303, "memory": { "used": { - "bytes": 53962032 + "bytes": 53961776 } }, "name": "beer-sample", @@ -30,16 +30,22 @@ "bytes": 104857600 }, "use": { - "pct": 51.46220397949219 + "pct": 51.46195983886719 } }, "type": "membase" } }, + "event": { + "dataset": "couchbase.bucket", + "duration": 115000, + "module": "couchbase" + }, "metricset": { - "host": "couchbase:8091", - "module": "couchbase", - "name": "bucket", - "rtt": 115 + "name": "bucket" + }, + "service": { + "address": "localhost:8091", + "type": "couchbase" } } \ No newline at end of file diff --git a/metricbeat/module/couchbase/bucket/bucket.go b/metricbeat/module/couchbase/bucket/bucket.go index faa56dd8669..03b36fd2359 100644 --- a/metricbeat/module/couchbase/bucket/bucket.go +++ b/metricbeat/module/couchbase/bucket/bucket.go @@ -18,7 +18,7 @@ package bucket import ( - "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" @@ -36,6 +36,8 @@ var ( }.Build() ) +var logger = logp.NewLogger("couchbase.bucket") + // init registers the MetricSet with the central registry. // The New method will be called after the setup of the module and before starting to fetch data func init() { @@ -63,13 +65,21 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { }, nil } -// Fetch methods implements the data gathering and data conversion to the right format -// It returns the event which is then forward to the output. In case of an error, a -// descriptive error must be returned. -func (m *MetricSet) Fetch() ([]common.MapStr, error) { +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(reporter mb.ReporterV2) { content, err := m.http.FetchContent() if err != nil { - return nil, err + logger.Error(err) + reporter.Error(err) + return } - return eventsMapping(content), nil + + events := eventsMapping(content) + for _, event := range events { + reporter.Event(mb.Event{MetricSetFields: event}) + } + + return } diff --git a/metricbeat/module/couchbase/bucket/bucket_integration_test.go b/metricbeat/module/couchbase/bucket/bucket_integration_test.go index 147f0e764df..5317e513ccf 100644 --- a/metricbeat/module/couchbase/bucket/bucket_integration_test.go +++ b/metricbeat/module/couchbase/bucket/bucket_integration_test.go @@ -22,15 +22,37 @@ package bucket import ( "testing" + "github.com/stretchr/testify/assert" + + "github.com/elastic/beats/libbeat/tests/compose" mbtest "github.com/elastic/beats/metricbeat/mb/testing" "github.com/elastic/beats/metricbeat/module/couchbase" ) +func TestFetch(t *testing.T) { + compose.EnsureUp(t, "couchbase") + + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) + } + + assert.NotEmpty(t, events) + t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), events[0]) +} + func TestData(t *testing.T) { - f := mbtest.NewEventsFetcher(t, getConfig()) + compose.EnsureUp(t, "couchbase") + + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) + } + assert.NotEmpty(t, events) - err := mbtest.WriteEvents(f, t) - if err != nil { + if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { t.Fatal("write", err) } } diff --git a/metricbeat/module/couchbase/bucket/bucket_test.go b/metricbeat/module/couchbase/bucket/bucket_test.go index 208cd2f3271..9ef8ddbb82a 100644 --- a/metricbeat/module/couchbase/bucket/bucket_test.go +++ b/metricbeat/module/couchbase/bucket/bucket_test.go @@ -34,8 +34,12 @@ import ( func TestFetchEventContents(t *testing.T) { absPath, err := filepath.Abs("./testdata/") + assert.NoError(t, err) + // response is a raw response from a couchbase response, err := ioutil.ReadFile(absPath + "/sample_response.json") + assert.NoError(t, err) + server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(200) w.Header().Set("Content-Type", "application/json;") @@ -49,12 +53,13 @@ func TestFetchEventContents(t *testing.T) { "hosts": []string{server.URL}, } - f := mbtest.NewEventsFetcher(t, config) - events, err := f.Fetch() - event := events[0] - if !assert.NoError(t, err) { - t.FailNow() + f := mbtest.NewReportingMetricSetV2(t, config) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } + assert.NotEmpty(t, events) + event := events[0].MetricSetFields t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event.StringToPrint()) From 5e430820ad0d801368d425ce9f4b07e1f9807542 Mon Sep 17 00:00:00 2001 From: Nicolas Ruflin Date: Thu, 7 Mar 2019 13:52:51 +0100 Subject: [PATCH 164/332] [Metricbeat] K8s apiserver metricset to new data generation (#11113) This moves the kubernetes/apiserver to the new testing methodology. I kept the old tests around for now but they should be removed as soon as we agree the output of this change is as we expected. --- .../modules/kubernetes/apiserver.asciidoc | 6 + metricbeat/mb/testing/data_test.go | 32 +- .../kubernetes/apiserver/_meta/data.json | 26 + .../apiserver/_meta/testdata/config.yml | 3 + .../apiserver/_meta/testdata/docs.plain | 6706 ++++++ .../_meta/testdata/docs.plain-expected.json | 18140 ++++++++++++++++ .../rabbitmq/connection/_meta/data.json | 14 +- .../_meta/testdata/docs.json-expected.json | 28 +- 8 files changed, 24926 insertions(+), 29 deletions(-) create mode 100644 metricbeat/module/kubernetes/apiserver/_meta/data.json create mode 100644 metricbeat/module/kubernetes/apiserver/_meta/testdata/config.yml create mode 100644 metricbeat/module/kubernetes/apiserver/_meta/testdata/docs.plain create mode 100644 metricbeat/module/kubernetes/apiserver/_meta/testdata/docs.plain-expected.json diff --git a/metricbeat/docs/modules/kubernetes/apiserver.asciidoc b/metricbeat/docs/modules/kubernetes/apiserver.asciidoc index 9f37b58ae7f..ecc6823557b 100644 --- a/metricbeat/docs/modules/kubernetes/apiserver.asciidoc +++ b/metricbeat/docs/modules/kubernetes/apiserver.asciidoc @@ -13,3 +13,9 @@ include::../../../module/kubernetes/apiserver/_meta/docs.asciidoc[] For a description of each field in the metricset, see the <> section. +Here is an example document generated by this metricset: + +[source,json] +---- +include::../../../module/kubernetes/apiserver/_meta/data.json[] +---- diff --git a/metricbeat/mb/testing/data_test.go b/metricbeat/mb/testing/data_test.go index 199dc28b393..b35a252604c 100644 --- a/metricbeat/mb/testing/data_test.go +++ b/metricbeat/mb/testing/data_test.go @@ -26,9 +26,12 @@ import ( "net/http/httptest" "os" "path/filepath" + "sort" "strings" "testing" + "github.com/mitchellh/hashstructure" + "github.com/stretchr/testify/assert" "gopkg.in/yaml.v2" @@ -39,6 +42,7 @@ import ( _ "github.com/elastic/beats/metricbeat/module/couchbase/cluster" _ "github.com/elastic/beats/metricbeat/module/couchbase/node" _ "github.com/elastic/beats/metricbeat/module/kibana/status" + _ "github.com/elastic/beats/metricbeat/module/kubernetes/apiserver" _ "github.com/elastic/beats/metricbeat/module/php_fpm/pool" _ "github.com/elastic/beats/metricbeat/module/php_fpm/process" _ "github.com/elastic/beats/metricbeat/module/rabbitmq/connection" @@ -55,8 +59,9 @@ var ( ) type Config struct { - Type string - URL string + Type string + URL string + Suffix string } func TestAll(t *testing.T) { @@ -79,13 +84,17 @@ func TestAll(t *testing.T) { log.Fatalf("Unmarshal: %v", err) } - getTestdataFiles(t, config.URL, moduleName, metricSetName) + if config.Suffix == "" { + config.Suffix = "json" + } + + getTestdataFiles(t, config.URL, moduleName, metricSetName, config.Suffix) } } -func getTestdataFiles(t *testing.T, url, module, metricSet string) { +func getTestdataFiles(t *testing.T, url, module, metricSet, suffix string) { - ff, _ := filepath.Glob(getMetricsetPath(module, metricSet) + "/_meta/testdata/*.json") + ff, _ := filepath.Glob(getMetricsetPath(module, metricSet) + "/_meta/testdata/*." + suffix) var files []string for _, f := range ff { // Exclude all the expected files @@ -97,12 +106,12 @@ func getTestdataFiles(t *testing.T, url, module, metricSet string) { for _, f := range files { t.Run(f, func(t *testing.T) { - runTest(t, f, module, metricSet, url) + runTest(t, f, module, metricSet, url, suffix) }) } } -func runTest(t *testing.T, file string, module, metricSetName, url string) { +func runTest(t *testing.T, file string, module, metricSetName, url, suffix string) { // starts a server serving the given file under the given url s := server(t, file, url) @@ -139,6 +148,13 @@ func runTest(t *testing.T, file string, module, metricSetName, url string) { data = append(data, beatEvent.Fields) } + // Sorting the events is necessary as events are not necessarily sent in the same order + sort.SliceStable(data, func(i, j int) bool { + h1, _ := hashstructure.Hash(data[i], nil) + h2, _ := hashstructure.Hash(data[j], nil) + return h1 < h2 + }) + output, err := json.MarshalIndent(&data, "", " ") if err != nil { t.Fatal(err) @@ -159,7 +175,7 @@ func runTest(t *testing.T, file string, module, metricSetName, url string) { assert.Equal(t, string(expected), string(output)) - if strings.HasSuffix(file, "docs.json") { + if strings.HasSuffix(file, "docs."+suffix) { writeDataJSON(t, data[0], module, metricSetName) } } diff --git a/metricbeat/module/kubernetes/apiserver/_meta/data.json b/metricbeat/module/kubernetes/apiserver/_meta/data.json new file mode 100644 index 00000000000..84a4a2f7cb6 --- /dev/null +++ b/metricbeat/module/kubernetes/apiserver/_meta/data.json @@ -0,0 +1,26 @@ +{ + "@timestamp": "2019-03-01T08:05:34.853Z", + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 4, + "resource": "configmaps", + "scope": "namespace", + "verb": "DELETE" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } +} \ No newline at end of file diff --git a/metricbeat/module/kubernetes/apiserver/_meta/testdata/config.yml b/metricbeat/module/kubernetes/apiserver/_meta/testdata/config.yml new file mode 100644 index 00000000000..ab6bf241654 --- /dev/null +++ b/metricbeat/module/kubernetes/apiserver/_meta/testdata/config.yml @@ -0,0 +1,3 @@ +type: http +url: "/metrics" +suffix: plain diff --git a/metricbeat/module/kubernetes/apiserver/_meta/testdata/docs.plain b/metricbeat/module/kubernetes/apiserver/_meta/testdata/docs.plain new file mode 100644 index 00000000000..2153901ffd2 --- /dev/null +++ b/metricbeat/module/kubernetes/apiserver/_meta/testdata/docs.plain @@ -0,0 +1,6706 @@ +# HELP APIServiceOpenAPIAggregationControllerQueue1_adds Total number of adds handled by workqueue: APIServiceOpenAPIAggregationControllerQueue1 +# TYPE APIServiceOpenAPIAggregationControllerQueue1_adds counter +APIServiceOpenAPIAggregationControllerQueue1_adds 0 +# HELP APIServiceOpenAPIAggregationControllerQueue1_depth Current depth of workqueue: APIServiceOpenAPIAggregationControllerQueue1 +# TYPE APIServiceOpenAPIAggregationControllerQueue1_depth gauge +APIServiceOpenAPIAggregationControllerQueue1_depth 0 +# HELP APIServiceOpenAPIAggregationControllerQueue1_queue_latency How long an item stays in workqueueAPIServiceOpenAPIAggregationControllerQueue1 before being requested. +# TYPE APIServiceOpenAPIAggregationControllerQueue1_queue_latency summary +APIServiceOpenAPIAggregationControllerQueue1_queue_latency{quantile="0.5"} NaN +APIServiceOpenAPIAggregationControllerQueue1_queue_latency{quantile="0.9"} NaN +APIServiceOpenAPIAggregationControllerQueue1_queue_latency{quantile="0.99"} NaN +APIServiceOpenAPIAggregationControllerQueue1_queue_latency_sum 0 +APIServiceOpenAPIAggregationControllerQueue1_queue_latency_count 0 +# HELP APIServiceOpenAPIAggregationControllerQueue1_retries Total number of retries handled by workqueue: APIServiceOpenAPIAggregationControllerQueue1 +# TYPE APIServiceOpenAPIAggregationControllerQueue1_retries counter +APIServiceOpenAPIAggregationControllerQueue1_retries 0 +# HELP APIServiceOpenAPIAggregationControllerQueue1_work_duration How long processing an item from workqueueAPIServiceOpenAPIAggregationControllerQueue1 takes. +# TYPE APIServiceOpenAPIAggregationControllerQueue1_work_duration summary +APIServiceOpenAPIAggregationControllerQueue1_work_duration{quantile="0.5"} NaN +APIServiceOpenAPIAggregationControllerQueue1_work_duration{quantile="0.9"} NaN +APIServiceOpenAPIAggregationControllerQueue1_work_duration{quantile="0.99"} NaN +APIServiceOpenAPIAggregationControllerQueue1_work_duration_sum 0 +APIServiceOpenAPIAggregationControllerQueue1_work_duration_count 0 +# HELP APIServiceRegistrationController_adds Total number of adds handled by workqueue: APIServiceRegistrationController +# TYPE APIServiceRegistrationController_adds counter +APIServiceRegistrationController_adds 44000 +# HELP APIServiceRegistrationController_depth Current depth of workqueue: APIServiceRegistrationController +# TYPE APIServiceRegistrationController_depth gauge +APIServiceRegistrationController_depth 0 +# HELP APIServiceRegistrationController_queue_latency How long an item stays in workqueueAPIServiceRegistrationController before being requested. +# TYPE APIServiceRegistrationController_queue_latency summary +APIServiceRegistrationController_queue_latency{quantile="0.5"} 11 +APIServiceRegistrationController_queue_latency{quantile="0.9"} 40 +APIServiceRegistrationController_queue_latency{quantile="0.99"} 535 +APIServiceRegistrationController_queue_latency_sum 4.712471e+06 +APIServiceRegistrationController_queue_latency_count 44000 +# HELP APIServiceRegistrationController_retries Total number of retries handled by workqueue: APIServiceRegistrationController +# TYPE APIServiceRegistrationController_retries counter +APIServiceRegistrationController_retries 0 +# HELP APIServiceRegistrationController_work_duration How long processing an item from workqueueAPIServiceRegistrationController takes. +# TYPE APIServiceRegistrationController_work_duration summary +APIServiceRegistrationController_work_duration{quantile="0.5"} 2 +APIServiceRegistrationController_work_duration{quantile="0.9"} 3 +APIServiceRegistrationController_work_duration{quantile="0.99"} 11 +APIServiceRegistrationController_work_duration_sum 146377 +APIServiceRegistrationController_work_duration_count 44000 +# HELP AvailableConditionController_adds Total number of adds handled by workqueue: AvailableConditionController +# TYPE AvailableConditionController_adds counter +AvailableConditionController_adds 44000 +# HELP AvailableConditionController_depth Current depth of workqueue: AvailableConditionController +# TYPE AvailableConditionController_depth gauge +AvailableConditionController_depth 0 +# HELP AvailableConditionController_queue_latency How long an item stays in workqueueAvailableConditionController before being requested. +# TYPE AvailableConditionController_queue_latency summary +AvailableConditionController_queue_latency{quantile="0.5"} 29735 +AvailableConditionController_queue_latency{quantile="0.9"} 47103 +AvailableConditionController_queue_latency{quantile="0.99"} 50681 +AvailableConditionController_queue_latency_sum 1.253055768e+09 +AvailableConditionController_queue_latency_count 44000 +# HELP AvailableConditionController_retries Total number of retries handled by workqueue: AvailableConditionController +# TYPE AvailableConditionController_retries counter +AvailableConditionController_retries 0 +# HELP AvailableConditionController_work_duration How long processing an item from workqueueAvailableConditionController takes. +# TYPE AvailableConditionController_work_duration summary +AvailableConditionController_work_duration{quantile="0.5"} 2397 +AvailableConditionController_work_duration{quantile="0.9"} 3304 +AvailableConditionController_work_duration{quantile="0.99"} 6061 +AvailableConditionController_work_duration_sum 1.27142307e+08 +AvailableConditionController_work_duration_count 44000 +# HELP DiscoveryController_adds Total number of adds handled by workqueue: DiscoveryController +# TYPE DiscoveryController_adds counter +DiscoveryController_adds 0 +# HELP DiscoveryController_depth Current depth of workqueue: DiscoveryController +# TYPE DiscoveryController_depth gauge +DiscoveryController_depth 0 +# HELP DiscoveryController_queue_latency How long an item stays in workqueueDiscoveryController before being requested. +# TYPE DiscoveryController_queue_latency summary +DiscoveryController_queue_latency{quantile="0.5"} NaN +DiscoveryController_queue_latency{quantile="0.9"} NaN +DiscoveryController_queue_latency{quantile="0.99"} NaN +DiscoveryController_queue_latency_sum 0 +DiscoveryController_queue_latency_count 0 +# HELP DiscoveryController_retries Total number of retries handled by workqueue: DiscoveryController +# TYPE DiscoveryController_retries counter +DiscoveryController_retries 0 +# HELP DiscoveryController_work_duration How long processing an item from workqueueDiscoveryController takes. +# TYPE DiscoveryController_work_duration summary +DiscoveryController_work_duration{quantile="0.5"} NaN +DiscoveryController_work_duration{quantile="0.9"} NaN +DiscoveryController_work_duration{quantile="0.99"} NaN +DiscoveryController_work_duration_sum 0 +DiscoveryController_work_duration_count 0 +# HELP admission_quota_controller_adds Total number of adds handled by workqueue: admission_quota_controller +# TYPE admission_quota_controller_adds counter +admission_quota_controller_adds 77180 +# HELP admission_quota_controller_depth Current depth of workqueue: admission_quota_controller +# TYPE admission_quota_controller_depth gauge +admission_quota_controller_depth 0 +# HELP admission_quota_controller_queue_latency How long an item stays in workqueueadmission_quota_controller before being requested. +# TYPE admission_quota_controller_queue_latency summary +admission_quota_controller_queue_latency{quantile="0.5"} 8 +admission_quota_controller_queue_latency{quantile="0.9"} 20 +admission_quota_controller_queue_latency{quantile="0.99"} 24 +admission_quota_controller_queue_latency_sum 977321 +admission_quota_controller_queue_latency_count 77180 +# HELP admission_quota_controller_work_duration How long processing an item from workqueueadmission_quota_controller takes. +# TYPE admission_quota_controller_work_duration summary +admission_quota_controller_work_duration{quantile="0.5"} 18 +admission_quota_controller_work_duration{quantile="0.9"} 2291 +admission_quota_controller_work_duration{quantile="0.99"} 3257 +admission_quota_controller_work_duration_sum 3.3328506e+07 +admission_quota_controller_work_duration_count 77180 +# HELP apiserver_audit_event_total Counter of audit events generated and sent to the audit backend. +# TYPE apiserver_audit_event_total counter +apiserver_audit_event_total 9.140523e+06 +# HELP apiserver_audit_level_total Counter of policy levels for audit events (1 per request). +# TYPE apiserver_audit_level_total counter +apiserver_audit_level_total{level="Metadata"} 1.016462e+06 +apiserver_audit_level_total{level="None"} 1.987345e+06 +apiserver_audit_level_total{level="Request"} 7.287026e+06 +apiserver_audit_level_total{level="RequestResponse"} 672701 +# HELP apiserver_client_certificate_expiration_seconds Distribution of the remaining lifetime on the certificate used to authenticate a request. +# TYPE apiserver_client_certificate_expiration_seconds histogram +apiserver_client_certificate_expiration_seconds_bucket{le="0"} 0 +apiserver_client_certificate_expiration_seconds_bucket{le="21600"} 0 +apiserver_client_certificate_expiration_seconds_bucket{le="43200"} 0 +apiserver_client_certificate_expiration_seconds_bucket{le="86400"} 0 +apiserver_client_certificate_expiration_seconds_bucket{le="172800"} 0 +apiserver_client_certificate_expiration_seconds_bucket{le="345600"} 0 +apiserver_client_certificate_expiration_seconds_bucket{le="604800"} 0 +apiserver_client_certificate_expiration_seconds_bucket{le="2.592e+06"} 0 +apiserver_client_certificate_expiration_seconds_bucket{le="7.776e+06"} 0 +apiserver_client_certificate_expiration_seconds_bucket{le="1.5552e+07"} 0 +apiserver_client_certificate_expiration_seconds_bucket{le="3.1104e+07"} 0 +apiserver_client_certificate_expiration_seconds_bucket{le="+Inf"} 733059 +apiserver_client_certificate_expiration_seconds_sum 1.1534874692275488e+14 +apiserver_client_certificate_expiration_seconds_count 733059 +# HELP apiserver_current_inflight_requests Maximal number of currently used inflight request limit of this apiserver per request kind in last second. +# TYPE apiserver_current_inflight_requests gauge +apiserver_current_inflight_requests{requestKind="mutating"} 1 +apiserver_current_inflight_requests{requestKind="readOnly"} 1 +# HELP apiserver_request_count Counter of apiserver requests broken out for each verb, API resource, client, and HTTP response contentType and code. +# TYPE apiserver_request_count counter +apiserver_request_count{client="Go-http-client/2.0",code="200",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="cluster",subresource="",verb="LIST"} 20 +apiserver_request_count{client="Go-http-client/2.0",code="200",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="namespace",subresource="",verb="GET"} 14 +apiserver_request_count{client="Go-http-client/2.0",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="pods",scope="cluster",subresource="",verb="WATCH"} 1165 +apiserver_request_count{client="GoogleCloudConsole",code="200",contentType="application/vnd.kubernetes.protobuf",resource="nodes",scope="cluster",subresource="",verb="LIST"} 20 +apiserver_request_count{client="GoogleCloudConsole",code="200",contentType="application/vnd.kubernetes.protobuf",resource="persistentvolumes",scope="cluster",subresource="",verb="LIST"} 7 +apiserver_request_count{client="GoogleCloudConsole",code="200",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="cluster",subresource="",verb="LIST"} 20 +apiserver_request_count{client="GoogleCloudConsole",code="200",contentType="application/vnd.kubernetes.protobuf",resource="storageclasses",scope="cluster",subresource="",verb="LIST"} 7 +apiserver_request_count{client="GoogleContainerEngine",code="200",contentType="application/vnd.kubernetes.protobuf",resource="componentstatuses",scope="cluster",subresource="",verb="LIST"} 7195 +apiserver_request_count{client="GoogleContainerEngine",code="200",contentType="application/vnd.kubernetes.protobuf",resource="daemonsets",scope="cluster",subresource="",verb="LIST"} 709 +apiserver_request_count{client="GoogleContainerEngine",code="200",contentType="application/vnd.kubernetes.protobuf",resource="deployments",scope="cluster",subresource="",verb="LIST"} 709 +apiserver_request_count{client="GoogleContainerEngine",code="200",contentType="application/vnd.kubernetes.protobuf",resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="LIST"} 709 +apiserver_request_count{client="GoogleContainerEngine",code="200",contentType="application/vnd.kubernetes.protobuf",resource="ingresses",scope="cluster",subresource="",verb="LIST"} 709 +apiserver_request_count{client="GoogleContainerEngine",code="200",contentType="application/vnd.kubernetes.protobuf",resource="jobs",scope="cluster",subresource="",verb="LIST"} 709 +apiserver_request_count{client="GoogleContainerEngine",code="200",contentType="application/vnd.kubernetes.protobuf",resource="namespaces",scope="cluster",subresource="",verb="LIST"} 7190 +apiserver_request_count{client="GoogleContainerEngine",code="200",contentType="application/vnd.kubernetes.protobuf",resource="nodes",scope="cluster",subresource="",verb="GET"} 4 +apiserver_request_count{client="GoogleContainerEngine",code="200",contentType="application/vnd.kubernetes.protobuf",resource="nodes",scope="cluster",subresource="",verb="LIST"} 14465 +apiserver_request_count{client="GoogleContainerEngine",code="200",contentType="application/vnd.kubernetes.protobuf",resource="nodes",scope="cluster",subresource="",verb="PUT"} 4 +apiserver_request_count{client="GoogleContainerEngine",code="200",contentType="application/vnd.kubernetes.protobuf",resource="persistentvolumeclaims",scope="cluster",subresource="",verb="LIST"} 709 +apiserver_request_count{client="GoogleContainerEngine",code="200",contentType="application/vnd.kubernetes.protobuf",resource="persistentvolumes",scope="cluster",subresource="",verb="LIST"} 709 +apiserver_request_count{client="GoogleContainerEngine",code="200",contentType="application/vnd.kubernetes.protobuf",resource="poddisruptionbudgets",scope="cluster",subresource="",verb="LIST"} 709 +apiserver_request_count{client="GoogleContainerEngine",code="200",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="cluster",subresource="",verb="LIST"} 7198 +apiserver_request_count{client="GoogleContainerEngine",code="200",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="namespace",subresource="",verb="DELETE"} 14 +apiserver_request_count{client="GoogleContainerEngine",code="200",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="namespace",subresource="",verb="GET"} 134 +apiserver_request_count{client="GoogleContainerEngine",code="200",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="namespace",subresource="",verb="LIST"} 14380 +apiserver_request_count{client="GoogleContainerEngine",code="200",contentType="application/vnd.kubernetes.protobuf",resource="podtemplates",scope="cluster",subresource="",verb="LIST"} 709 +apiserver_request_count{client="GoogleContainerEngine",code="200",contentType="application/vnd.kubernetes.protobuf",resource="replicasets",scope="cluster",subresource="",verb="LIST"} 709 +apiserver_request_count{client="GoogleContainerEngine",code="200",contentType="application/vnd.kubernetes.protobuf",resource="replicationcontrollers",scope="cluster",subresource="",verb="LIST"} 709 +apiserver_request_count{client="GoogleContainerEngine",code="200",contentType="application/vnd.kubernetes.protobuf",resource="serviceaccounts",scope="cluster",subresource="",verb="LIST"} 709 +apiserver_request_count{client="GoogleContainerEngine",code="200",contentType="application/vnd.kubernetes.protobuf",resource="services",scope="cluster",subresource="",verb="LIST"} 709 +apiserver_request_count{client="GoogleContainerEngine",code="200",contentType="application/vnd.kubernetes.protobuf",resource="statefulsets",scope="cluster",subresource="",verb="LIST"} 709 +apiserver_request_count{client="GoogleContainerEngine",code="404",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="namespace",subresource="",verb="GET"} 14 +apiserver_request_count{client="cluster-proportional-autoscaler/v1.6.5 (linux/amd64) kubernetes/$Format",code="200",contentType="application/vnd.kubernetes.protobuf",resource="configmaps",scope="namespace",subresource="",verb="GET"} 65892 +apiserver_request_count{client="cluster-proportional-autoscaler/v1.6.5 (linux/amd64) kubernetes/$Format",code="200",contentType="application/vnd.kubernetes.protobuf",resource="deployments",scope="namespace",subresource="scale",verb="GET"} 65893 +apiserver_request_count{client="cluster-proportional-autoscaler/v1.6.5 (linux/amd64) kubernetes/$Format",code="200",contentType="application/vnd.kubernetes.protobuf",resource="deployments",scope="namespace",subresource="scale",verb="PUT"} 1 +apiserver_request_count{client="cluster-proportional-autoscaler/v1.6.5 (linux/amd64) kubernetes/$Format",code="200",contentType="application/vnd.kubernetes.protobuf",resource="nodes",scope="cluster",subresource="",verb="LIST"} 65893 +apiserver_request_count{client="cluster-proportional-autoscaler/v1.6.5 (linux/amd64) kubernetes/$Format",code="201",contentType="application/vnd.kubernetes.protobuf",resource="configmaps",scope="namespace",subresource="",verb="POST"} 1 +apiserver_request_count{client="cluster-proportional-autoscaler/v1.6.5 (linux/amd64) kubernetes/$Format",code="404",contentType="application/vnd.kubernetes.protobuf",resource="configmaps",scope="namespace",subresource="",verb="GET"} 1 +apiserver_request_count{client="dashboard/v1.8.0",code="0",contentType="text/plain; charset=utf-8",resource="services",scope="resource",subresource="",verb="proxy"} 21955 +apiserver_request_count{client="dashboard/v1.8.0",code="200",contentType="application/vnd.kubernetes.protobuf",resource="secrets",scope="namespace",subresource="",verb="GET"} 2200 +apiserver_request_count{client="dashboard/v1.8.0",code="200",contentType="text/plain; charset=utf-8",resource="services",scope="resource",subresource="",verb="PROXY"} 21949 +apiserver_request_count{client="dashboard/v1.8.0",code="201",contentType="application/vnd.kubernetes.protobuf",resource="secrets",scope="namespace",subresource="",verb="POST"} 1 +apiserver_request_count{client="dashboard/v1.8.0",code="404",contentType="application/vnd.kubernetes.protobuf",resource="secrets",scope="namespace",subresource="",verb="GET"} 4 +apiserver_request_count{client="dashboard/v1.8.0",code="409",contentType="application/vnd.kubernetes.protobuf",resource="secrets",scope="namespace",subresource="",verb="POST"} 1 +apiserver_request_count{client="dashboard/v1.8.0",code="500",contentType="text/plain; charset=utf-8",resource="services",scope="resource",subresource="",verb="PROXY"} 6 +apiserver_request_count{client="dashboard/v1.8.0",code="503",contentType="application/vnd.kubernetes.protobuf",resource="services",scope="resource",subresource="",verb="PROXY"} 10 +apiserver_request_count{client="dashboard/v1.8.0",code="503",contentType="application/vnd.kubernetes.protobuf",resource="services",scope="resource",subresource="",verb="proxy"} 10 +apiserver_request_count{client="event-exporter/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/json",resource="events",scope="cluster",subresource="",verb="LIST"} 1131 +apiserver_request_count{client="event-exporter/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/json",resource="events",scope="cluster",subresource="",verb="WATCH"} 2599 +apiserver_request_count{client="gke-certificates-controller/v1.7.0 (linux/amd64) kubernetes/6b9ded1/certificate-controller",code="200",contentType="application/json",resource="certificatesigningrequests",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="gke-certificates-controller/v1.7.0 (linux/amd64) kubernetes/6b9ded1/certificate-controller",code="200",contentType="application/json",resource="certificatesigningrequests",scope="cluster",subresource="",verb="WATCH"} 1467 +apiserver_request_count{client="gke-certificates-controller/v1.7.0 (linux/amd64) kubernetes/6b9ded1/certificate-controller",code="200",contentType="application/json",resource="certificatesigningrequests",scope="cluster",subresource="status",verb="PUT"} 7 +apiserver_request_count{client="glbc/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/json",resource="configmaps",scope="namespace",subresource="",verb="GET"} 263574 +apiserver_request_count{client="glbc/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/json",resource="configmaps",scope="namespace",subresource="",verb="PUT"} 1 +apiserver_request_count{client="glbc/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/json",resource="ingresses",scope="cluster",subresource="",verb="LIST"} 2 +apiserver_request_count{client="glbc/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/json",resource="ingresses",scope="cluster",subresource="",verb="WATCH"} 1473 +apiserver_request_count{client="glbc/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/json",resource="nodes",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="glbc/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/json",resource="nodes",scope="cluster",subresource="",verb="WATCH"} 1464 +apiserver_request_count{client="glbc/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/json",resource="pods",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="glbc/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/json",resource="pods",scope="cluster",subresource="",verb="WATCH"} 1465 +apiserver_request_count{client="glbc/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/json",resource="services",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="glbc/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/json",resource="services",scope="cluster",subresource="",verb="WATCH"} 1485 +apiserver_request_count{client="glbc/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/json",resource="services",scope="namespace",subresource="",verb="GET"} 1 +apiserver_request_count{client="glbc/v0.0.0 (linux/amd64) kubernetes/$Format",code="201",contentType="application/json",resource="configmaps",scope="namespace",subresource="",verb="POST"} 1 +apiserver_request_count{client="glbc/v0.0.0 (linux/amd64) kubernetes/$Format",code="404",contentType="application/json",resource="configmaps",scope="namespace",subresource="",verb="GET"} 2 +apiserver_request_count{client="glbc/v0.0.0 (linux/amd64) kubernetes/$Format",code="404",contentType="application/json",resource="services",scope="namespace",subresource="",verb="GET"} 15 +apiserver_request_count{client="heapster/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/vnd.kubernetes.protobuf",resource="namespaces",scope="cluster",subresource="",verb="LIST"} 5 +apiserver_request_count{client="heapster/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/vnd.kubernetes.protobuf",resource="nodes",scope="cluster",subresource="",verb="LIST"} 15 +apiserver_request_count{client="heapster/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="cluster",subresource="",verb="LIST"} 5 +apiserver_request_count{client="heapster/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="namespaces",scope="cluster",subresource="",verb="WATCH"} 1473 +apiserver_request_count{client="heapster/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="nodes",scope="cluster",subresource="",verb="WATCH"} 4446 +apiserver_request_count{client="heapster/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="pods",scope="cluster",subresource="",verb="WATCH"} 1460 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="apiservices",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="apiservices",scope="cluster",subresource="status",verb="PUT"} 44000 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="clusterrolebindings",scope="cluster",subresource="",verb="LIST"} 2 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="clusterroles",scope="cluster",subresource="",verb="LIST"} 2 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="customresourcedefinitions",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="endpoints",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="endpoints",scope="namespace",subresource="",verb="GET"} 65940 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="limitranges",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="limitranges",scope="namespace",subresource="",verb="LIST"} 18 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="namespaces",scope="cluster",subresource="",verb="GET"} 87937 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="namespaces",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="nodes",scope="cluster",subresource="",verb="LIST"} 43979 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="persistentvolumes",scope="cluster",subresource="",verb="LIST"} 2 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="namespace",subresource="",verb="GET"} 68 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="resourcequotas",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="resourcequotas",scope="namespace",subresource="",verb="LIST"} 11023 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="rolebindings",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="roles",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="secrets",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="serviceaccounts",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="services",scope="cluster",subresource="",verb="LIST"} 7337 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="services",scope="namespace",subresource="",verb="GET"} 65940 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="storageclasses",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="apiservices",scope="cluster",subresource="",verb="WATCH"} 1465 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="clusterrolebindings",scope="cluster",subresource="",verb="WATCH"} 1478 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="clusterroles",scope="cluster",subresource="",verb="WATCH"} 1459 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="customresourcedefinitions",scope="cluster",subresource="",verb="WATCH"} 1467 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="endpoints",scope="cluster",subresource="",verb="WATCH"} 1474 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="limitranges",scope="cluster",subresource="",verb="WATCH"} 1472 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="namespaces",scope="cluster",subresource="",verb="WATCH"} 1463 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="persistentvolumes",scope="cluster",subresource="",verb="WATCH"} 1471 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="pods",scope="cluster",subresource="",verb="WATCH"} 1476 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="resourcequotas",scope="cluster",subresource="",verb="WATCH"} 1496 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="rolebindings",scope="cluster",subresource="",verb="WATCH"} 1450 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="roles",scope="cluster",subresource="",verb="WATCH"} 1482 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="secrets",scope="cluster",subresource="",verb="WATCH"} 1476 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="serviceaccounts",scope="cluster",subresource="",verb="WATCH"} 1473 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="services",scope="cluster",subresource="",verb="WATCH"} 1466 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="storageclasses",scope="cluster",subresource="",verb="WATCH"} 1461 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="201",contentType="application/vnd.kubernetes.protobuf",resource="apiservices",scope="cluster",subresource="",verb="POST"} 20 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="201",contentType="application/vnd.kubernetes.protobuf",resource="clusterrolebindings",scope="cluster",subresource="",verb="POST"} 30 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="201",contentType="application/vnd.kubernetes.protobuf",resource="clusterroles",scope="cluster",subresource="",verb="POST"} 41 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="201",contentType="application/vnd.kubernetes.protobuf",resource="configmaps",scope="namespace",subresource="",verb="POST"} 1 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="201",contentType="application/vnd.kubernetes.protobuf",resource="endpoints",scope="namespace",subresource="",verb="POST"} 1 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="201",contentType="application/vnd.kubernetes.protobuf",resource="namespaces",scope="cluster",subresource="",verb="POST"} 3 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="201",contentType="application/vnd.kubernetes.protobuf",resource="rolebindings",scope="namespace",subresource="",verb="POST"} 6 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="201",contentType="application/vnd.kubernetes.protobuf",resource="roles",scope="namespace",subresource="",verb="POST"} 7 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="201",contentType="application/vnd.kubernetes.protobuf",resource="services",scope="namespace",subresource="",verb="POST"} 1 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="404",contentType="application/vnd.kubernetes.protobuf",resource="clusterrolebindings",scope="cluster",subresource="",verb="GET"} 30 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="404",contentType="application/vnd.kubernetes.protobuf",resource="clusterroles",scope="cluster",subresource="",verb="GET"} 41 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="404",contentType="application/vnd.kubernetes.protobuf",resource="configmaps",scope="namespace",subresource="",verb="GET"} 1 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="404",contentType="application/vnd.kubernetes.protobuf",resource="endpoints",scope="namespace",subresource="",verb="GET"} 1 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="404",contentType="application/vnd.kubernetes.protobuf",resource="namespaces",scope="cluster",subresource="",verb="GET"} 2 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="404",contentType="application/vnd.kubernetes.protobuf",resource="rolebindings",scope="namespace",subresource="",verb="GET"} 6 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="404",contentType="application/vnd.kubernetes.protobuf",resource="roles",scope="namespace",subresource="",verb="GET"} 7 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="404",contentType="application/vnd.kubernetes.protobuf",resource="serviceaccounts",scope="namespace",subresource="",verb="GET"} 73 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="404",contentType="application/vnd.kubernetes.protobuf",resource="services",scope="namespace",subresource="",verb="GET"} 1 +apiserver_request_count{client="kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="409",contentType="application/vnd.kubernetes.protobuf",resource="namespaces",scope="cluster",subresource="",verb="POST"} 13 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/controller-manager",code="200",contentType="application/vnd.kubernetes.protobuf",resource="namespaces",scope="cluster",subresource="",verb="GET"} 23 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/controller-manager",code="200",contentType="application/vnd.kubernetes.protobuf",resource="secrets",scope="namespace",subresource="",verb="LIST"} 27 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/controller-manager",code="200",contentType="application/vnd.kubernetes.protobuf",resource="serviceaccounts",scope="namespace",subresource="",verb="GET"} 4 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/controller-manager",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="secrets",scope="namespace",subresource="",verb="WATCH"} 15 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/controller-manager",code="201",contentType="application/vnd.kubernetes.protobuf",resource="events",scope="namespace",subresource="",verb="POST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/controller-manager",code="201",contentType="application/vnd.kubernetes.protobuf",resource="serviceaccounts",scope="namespace",subresource="",verb="POST"} 23 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/controller-manager",code="201",contentType="application/vnd.kubernetes.protobuf",resource="tokenreviews",scope="cluster",subresource="",verb="POST"} 27 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/controller-manager",code="404",contentType="application/vnd.kubernetes.protobuf",resource="serviceaccounts",scope="namespace",subresource="",verb="GET"} 23 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/leader-election",code="200",contentType="application/vnd.kubernetes.protobuf",resource="endpoints",scope="namespace",subresource="",verb="GET"} 328381 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/leader-election",code="200",contentType="application/vnd.kubernetes.protobuf",resource="endpoints",scope="namespace",subresource="",verb="PUT"} 328381 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/leader-election",code="201",contentType="application/vnd.kubernetes.protobuf",resource="endpoints",scope="namespace",subresource="",verb="POST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/leader-election",code="404",contentType="application/vnd.kubernetes.protobuf",resource="endpoints",scope="namespace",subresource="",verb="GET"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf",resource="certificatesigningrequests",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf",resource="clusterrolebindings",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf",resource="clusterroles",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf",resource="configmaps",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf",resource="controllerrevisions",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf",resource="cronjobs",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf",resource="daemonsets",scope="cluster",subresource="",verb="LIST"} 2 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf",resource="deployments",scope="cluster",subresource="",verb="LIST"} 2 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf",resource="endpoints",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf",resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf",resource="ingresses",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf",resource="jobs",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf",resource="limitranges",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf",resource="namespaces",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf",resource="networkpolicies",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf",resource="nodes",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf",resource="persistentvolumeclaims",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf",resource="persistentvolumes",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf",resource="poddisruptionbudgets",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf",resource="podsecuritypolicies",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf",resource="podtemplates",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf",resource="replicasets",scope="cluster",subresource="",verb="LIST"} 2 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf",resource="replicationcontrollers",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf",resource="resourcequotas",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf",resource="rolebindings",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf",resource="roles",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf",resource="secrets",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf",resource="serviceaccounts",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf",resource="services",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf",resource="statefulsets",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf",resource="storageclasses",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="certificatesigningrequests",scope="cluster",subresource="",verb="WATCH"} 1470 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="clusterrolebindings",scope="cluster",subresource="",verb="WATCH"} 1483 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="clusterroles",scope="cluster",subresource="",verb="WATCH"} 1468 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="configmaps",scope="cluster",subresource="",verb="WATCH"} 1483 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="controllerrevisions",scope="cluster",subresource="",verb="WATCH"} 1463 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="cronjobs",scope="cluster",subresource="",verb="WATCH"} 1467 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="daemonsets",scope="cluster",subresource="",verb="WATCH"} 2934 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="deployments",scope="cluster",subresource="",verb="WATCH"} 2928 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="endpoints",scope="cluster",subresource="",verb="WATCH"} 1478 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="WATCH"} 1459 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="ingresses",scope="cluster",subresource="",verb="WATCH"} 1468 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="jobs",scope="cluster",subresource="",verb="WATCH"} 1469 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="limitranges",scope="cluster",subresource="",verb="WATCH"} 1468 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="namespaces",scope="cluster",subresource="",verb="WATCH"} 1456 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="networkpolicies",scope="cluster",subresource="",verb="WATCH"} 1479 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="nodes",scope="cluster",subresource="",verb="WATCH"} 1478 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="persistentvolumeclaims",scope="cluster",subresource="",verb="WATCH"} 1478 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="persistentvolumes",scope="cluster",subresource="",verb="WATCH"} 1464 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="poddisruptionbudgets",scope="cluster",subresource="",verb="WATCH"} 1472 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="pods",scope="cluster",subresource="",verb="WATCH"} 1470 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="podsecuritypolicies",scope="cluster",subresource="",verb="WATCH"} 1472 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="podtemplates",scope="cluster",subresource="",verb="WATCH"} 1464 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="replicasets",scope="cluster",subresource="",verb="WATCH"} 2938 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="replicationcontrollers",scope="cluster",subresource="",verb="WATCH"} 1470 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="resourcequotas",scope="cluster",subresource="",verb="WATCH"} 1465 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="rolebindings",scope="cluster",subresource="",verb="WATCH"} 1476 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="roles",scope="cluster",subresource="",verb="WATCH"} 1468 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="secrets",scope="cluster",subresource="",verb="WATCH"} 1464 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="serviceaccounts",scope="cluster",subresource="",verb="WATCH"} 1461 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="services",scope="cluster",subresource="",verb="WATCH"} 1483 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="statefulsets",scope="cluster",subresource="",verb="WATCH"} 1464 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="storageclasses",scope="cluster",subresource="",verb="WATCH"} 1478 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:attachdetach-controller",code="200",contentType="application/vnd.kubernetes.protobuf",resource="events",scope="namespace",subresource="",verb="PATCH"} 50 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:attachdetach-controller",code="200",contentType="application/vnd.kubernetes.protobuf",resource="nodes",scope="cluster",subresource="",verb="GET"} 2 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:attachdetach-controller",code="200",contentType="application/vnd.kubernetes.protobuf",resource="nodes",scope="cluster",subresource="status",verb="PATCH"} 5 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:attachdetach-controller",code="201",contentType="application/vnd.kubernetes.protobuf",resource="events",scope="namespace",subresource="",verb="POST"} 2 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:certificate-controller",code="200",contentType="application/vnd.kubernetes.protobuf",resource="certificatesigningrequests",scope="cluster",subresource="approval",verb="PUT"} 7 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:certificate-controller",code="201",contentType="application/vnd.kubernetes.protobuf",resource="subjectaccessreviews",scope="cluster",subresource="",verb="POST"} 7 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:cloud-provider",code="200",contentType="application/vnd.kubernetes.protobuf",resource="configmaps",scope="namespace",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:cloud-provider",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="configmaps",scope="namespace",subresource="",verb="WATCH"} 1462 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:cronjob-controller",code="200",contentType="application/vnd.kubernetes.protobuf",resource="cronjobs",scope="cluster",subresource="",verb="LIST"} 65929 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:cronjob-controller",code="200",contentType="application/vnd.kubernetes.protobuf",resource="jobs",scope="cluster",subresource="",verb="LIST"} 65929 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:daemon-set-controller",code="200",contentType="application/vnd.kubernetes.protobuf",resource="daemonsets",scope="namespace",subresource="",verb="GET"} 10 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:daemon-set-controller",code="200",contentType="application/vnd.kubernetes.protobuf",resource="daemonsets",scope="namespace",subresource="status",verb="PUT"} 106 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:daemon-set-controller",code="200",contentType="application/vnd.kubernetes.protobuf",resource="events",scope="namespace",subresource="",verb="PATCH"} 58 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:daemon-set-controller",code="200",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="namespace",subresource="",verb="DELETE"} 9 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:daemon-set-controller",code="201",contentType="application/vnd.kubernetes.protobuf",resource="controllerrevisions",scope="namespace",subresource="",verb="POST"} 9 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:daemon-set-controller",code="201",contentType="application/vnd.kubernetes.protobuf",resource="events",scope="namespace",subresource="",verb="POST"} 41 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:daemon-set-controller",code="201",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="namespace",subresource="",verb="POST"} 26 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:daemon-set-controller",code="403",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="namespace",subresource="",verb="POST"} 39 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:daemon-set-controller",code="409",contentType="application/vnd.kubernetes.protobuf",resource="daemonsets",scope="namespace",subresource="status",verb="PUT"} 10 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:deployment-controller",code="200",contentType="application/vnd.kubernetes.protobuf",resource="deployments",scope="namespace",subresource="status",verb="PUT"} 287 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:deployment-controller",code="200",contentType="application/vnd.kubernetes.protobuf",resource="replicasets",scope="namespace",subresource="",verb="DELETE"} 14 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:deployment-controller",code="200",contentType="application/vnd.kubernetes.protobuf",resource="replicasets",scope="namespace",subresource="",verb="LIST"} 2 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:deployment-controller",code="200",contentType="application/vnd.kubernetes.protobuf",resource="replicasets",scope="namespace",subresource="",verb="PUT"} 22 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:deployment-controller",code="201",contentType="application/vnd.kubernetes.protobuf",resource="events",scope="namespace",subresource="",verb="POST"} 49 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:deployment-controller",code="201",contentType="application/vnd.kubernetes.protobuf",resource="replicasets",scope="namespace",subresource="",verb="POST"} 27 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:deployment-controller",code="409",contentType="application/vnd.kubernetes.protobuf",resource="deployments",scope="namespace",subresource="status",verb="PUT"} 60 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:endpoint-controller",code="200",contentType="application/vnd.kubernetes.protobuf",resource="endpoints",scope="namespace",subresource="",verb="PUT"} 206 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:endpoint-controller",code="201",contentType="application/vnd.kubernetes.protobuf",resource="endpoints",scope="namespace",subresource="",verb="POST"} 7 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:endpoint-controller",code="409",contentType="application/vnd.kubernetes.protobuf",resource="endpoints",scope="namespace",subresource="",verb="POST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:endpoint-controller",code="409",contentType="application/vnd.kubernetes.protobuf",resource="endpoints",scope="namespace",subresource="",verb="PUT"} 2 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:generic-garbage-collector",code="200",contentType="application/json",resource="controllerrevisions",scope="namespace",subresource="",verb="DELETE"} 6 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:generic-garbage-collector",code="200",contentType="application/json",resource="controllerrevisions",scope="namespace",subresource="",verb="GET"} 6 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:generic-garbage-collector",code="200",contentType="application/json",resource="networkpolicies",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:generic-garbage-collector",code="200",contentType="application/json",resource="networkpolicies",scope="cluster",subresource="",verb="WATCH"} 1468 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:generic-garbage-collector",code="200",contentType="application/json",resource="pods",scope="namespace",subresource="",verb="PATCH"} 36 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:generic-garbage-collector",code="200",contentType="application/json",resource="replicasets",scope="namespace",subresource="",verb="GET"} 15 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:generic-garbage-collector",code="200",contentType="application/json",resource="replicasets",scope="namespace",subresource="",verb="PUT"} 14 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:generic-garbage-collector",code="404",contentType="application/json",resource="replicasets",scope="namespace",subresource="",verb="GET"} 14 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:generic-garbage-collector",code="409",contentType="application/json",resource="replicasets",scope="namespace",subresource="",verb="PUT"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:job-controller",code="200",contentType="application/vnd.kubernetes.protobuf",resource="jobs",scope="namespace",subresource="status",verb="PUT"} 39 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:job-controller",code="201",contentType="application/vnd.kubernetes.protobuf",resource="events",scope="namespace",subresource="",verb="POST"} 21 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:job-controller",code="201",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="namespace",subresource="",verb="POST"} 20 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:job-controller",code="409",contentType="application/vnd.kubernetes.protobuf",resource="jobs",scope="namespace",subresource="status",verb="PUT"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller",code="200",contentType="application/vnd.kubernetes.protobuf",resource="events",scope="namespace",subresource="",verb="PATCH"} 2 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller",code="200",contentType="application/vnd.kubernetes.protobuf",resource="nodes",scope="cluster",subresource="",verb="DELETE"} 4 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller",code="200",contentType="application/vnd.kubernetes.protobuf",resource="nodes",scope="cluster",subresource="",verb="GET"} 11 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller",code="200",contentType="application/vnd.kubernetes.protobuf",resource="nodes",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller",code="200",contentType="application/vnd.kubernetes.protobuf",resource="nodes",scope="cluster",subresource="",verb="PUT"} 7 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller",code="200",contentType="application/vnd.kubernetes.protobuf",resource="nodes",scope="cluster",subresource="status",verb="PUT"} 9 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller",code="200",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="cluster",subresource="",verb="LIST"} 17 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller",code="200",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="namespace",subresource="",verb="DELETE"} 5 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller",code="200",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="namespace",subresource="status",verb="PUT"} 70 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller",code="201",contentType="application/vnd.kubernetes.protobuf",resource="events",scope="namespace",subresource="",verb="POST"} 28 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller",code="409",contentType="application/vnd.kubernetes.protobuf",resource="nodes",scope="cluster",subresource="",verb="PUT"} 4 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:persistent-volume-binder",code="200",contentType="application/vnd.kubernetes.protobuf",resource="persistentvolumeclaims",scope="namespace",subresource="",verb="PUT"} 2 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:persistent-volume-binder",code="200",contentType="application/vnd.kubernetes.protobuf",resource="persistentvolumeclaims",scope="namespace",subresource="status",verb="PUT"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:persistent-volume-binder",code="200",contentType="application/vnd.kubernetes.protobuf",resource="persistentvolumes",scope="cluster",subresource="status",verb="PUT"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:persistent-volume-binder",code="201",contentType="application/vnd.kubernetes.protobuf",resource="events",scope="namespace",subresource="",verb="POST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:persistent-volume-binder",code="201",contentType="application/vnd.kubernetes.protobuf",resource="persistentvolumes",scope="cluster",subresource="",verb="POST"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:persistent-volume-binder",code="404",contentType="application/vnd.kubernetes.protobuf",resource="persistentvolumes",scope="cluster",subresource="",verb="GET"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:pod-garbage-collector",code="200",contentType="application/vnd.kubernetes.protobuf",resource="nodes",scope="cluster",subresource="",verb="LIST"} 32985 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:pod-garbage-collector",code="200",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="namespace",subresource="",verb="DELETE"} 12 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:replicaset-controller",code="200",contentType="application/vnd.kubernetes.protobuf",resource="events",scope="namespace",subresource="",verb="PATCH"} 30 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:replicaset-controller",code="200",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="namespace",subresource="",verb="DELETE"} 45 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:replicaset-controller",code="200",contentType="application/vnd.kubernetes.protobuf",resource="replicasets",scope="namespace",subresource="",verb="GET"} 22 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:replicaset-controller",code="200",contentType="application/vnd.kubernetes.protobuf",resource="replicasets",scope="namespace",subresource="status",verb="PUT"} 271 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:replicaset-controller",code="201",contentType="application/vnd.kubernetes.protobuf",resource="events",scope="namespace",subresource="",verb="POST"} 123 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:replicaset-controller",code="201",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="namespace",subresource="",verb="POST"} 74 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:replicaset-controller",code="403",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="namespace",subresource="",verb="POST"} 34 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:replicaset-controller",code="409",contentType="application/vnd.kubernetes.protobuf",resource="replicasets",scope="namespace",subresource="status",verb="PUT"} 22 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:route-controller",code="200",contentType="application/vnd.kubernetes.protobuf",resource="nodes",scope="cluster",subresource="status",verb="PATCH"} 7 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:service-account-controller",code="201",contentType="application/vnd.kubernetes.protobuf",resource="serviceaccounts",scope="namespace",subresource="",verb="POST"} 3 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:service-controller",code="200",contentType="application/vnd.kubernetes.protobuf",resource="events",scope="namespace",subresource="",verb="PATCH"} 6 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:service-controller",code="200",contentType="application/vnd.kubernetes.protobuf",resource="services",scope="namespace",subresource="status",verb="PUT"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:service-controller",code="201",contentType="application/vnd.kubernetes.protobuf",resource="events",scope="namespace",subresource="",verb="POST"} 4 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:service-controller",code="404",contentType="application/vnd.kubernetes.protobuf",resource="events",scope="namespace",subresource="",verb="PATCH"} 1 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:ttl-controller",code="200",contentType="application/vnd.kubernetes.protobuf",resource="nodes",scope="cluster",subresource="",verb="PATCH"} 7 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/tokens-controller",code="200",contentType="application/vnd.kubernetes.protobuf",resource="secrets",scope="namespace",subresource="",verb="DELETE"} 3 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/tokens-controller",code="200",contentType="application/vnd.kubernetes.protobuf",resource="serviceaccounts",scope="namespace",subresource="",verb="GET"} 38 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/tokens-controller",code="200",contentType="application/vnd.kubernetes.protobuf",resource="serviceaccounts",scope="namespace",subresource="",verb="PUT"} 38 +apiserver_request_count{client="kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/tokens-controller",code="201",contentType="application/vnd.kubernetes.protobuf",resource="secrets",scope="namespace",subresource="",verb="POST"} 38 +apiserver_request_count{client="kube-dns/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/vnd.kubernetes.protobuf",resource="endpoints",scope="cluster",subresource="",verb="LIST"} 4 +apiserver_request_count{client="kube-dns/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/vnd.kubernetes.protobuf",resource="services",scope="cluster",subresource="",verb="LIST"} 4 +apiserver_request_count{client="kube-dns/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="endpoints",scope="cluster",subresource="",verb="WATCH"} 2947 +apiserver_request_count{client="kube-dns/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="services",scope="cluster",subresource="",verb="WATCH"} 2941 +apiserver_request_count{client="kube-proxy/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="endpoints",scope="cluster",subresource="",verb="LIST"} 7 +apiserver_request_count{client="kube-proxy/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="nodes",scope="cluster",subresource="",verb="GET"} 7 +apiserver_request_count{client="kube-proxy/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="services",scope="cluster",subresource="",verb="LIST"} 7 +apiserver_request_count{client="kube-proxy/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="endpoints",scope="cluster",subresource="",verb="WATCH"} 4420 +apiserver_request_count{client="kube-proxy/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="services",scope="cluster",subresource="",verb="WATCH"} 4417 +apiserver_request_count{client="kube-proxy/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="201",contentType="application/vnd.kubernetes.protobuf",resource="events",scope="namespace",subresource="",verb="POST"} 7 +apiserver_request_count{client="kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/leader-election",code="200",contentType="application/vnd.kubernetes.protobuf",resource="endpoints",scope="namespace",subresource="",verb="GET"} 328348 +apiserver_request_count{client="kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/leader-election",code="200",contentType="application/vnd.kubernetes.protobuf",resource="endpoints",scope="namespace",subresource="",verb="PUT"} 328348 +apiserver_request_count{client="kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/leader-election",code="201",contentType="application/vnd.kubernetes.protobuf",resource="endpoints",scope="namespace",subresource="",verb="POST"} 1 +apiserver_request_count{client="kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/leader-election",code="404",contentType="application/vnd.kubernetes.protobuf",resource="endpoints",scope="namespace",subresource="",verb="GET"} 1 +apiserver_request_count{client="kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler",code="200",contentType="application/vnd.kubernetes.protobuf",resource="events",scope="namespace",subresource="",verb="PATCH"} 160 +apiserver_request_count{client="kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler",code="200",contentType="application/vnd.kubernetes.protobuf",resource="nodes",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler",code="200",contentType="application/vnd.kubernetes.protobuf",resource="persistentvolumeclaims",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler",code="200",contentType="application/vnd.kubernetes.protobuf",resource="persistentvolumes",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler",code="200",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler",code="200",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="namespace",subresource="",verb="GET"} 160 +apiserver_request_count{client="kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler",code="200",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="namespace",subresource="status",verb="PUT"} 31 +apiserver_request_count{client="kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler",code="200",contentType="application/vnd.kubernetes.protobuf",resource="replicasets",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler",code="200",contentType="application/vnd.kubernetes.protobuf",resource="replicationcontrollers",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler",code="200",contentType="application/vnd.kubernetes.protobuf",resource="services",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler",code="200",contentType="application/vnd.kubernetes.protobuf",resource="statefulsets",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="nodes",scope="cluster",subresource="",verb="WATCH"} 1469 +apiserver_request_count{client="kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="persistentvolumeclaims",scope="cluster",subresource="",verb="WATCH"} 1471 +apiserver_request_count{client="kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="persistentvolumes",scope="cluster",subresource="",verb="WATCH"} 1471 +apiserver_request_count{client="kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="pods",scope="cluster",subresource="",verb="WATCH"} 1460 +apiserver_request_count{client="kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="replicasets",scope="cluster",subresource="",verb="WATCH"} 1465 +apiserver_request_count{client="kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="replicationcontrollers",scope="cluster",subresource="",verb="WATCH"} 1476 +apiserver_request_count{client="kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="services",scope="cluster",subresource="",verb="WATCH"} 1482 +apiserver_request_count{client="kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="statefulsets",scope="cluster",subresource="",verb="WATCH"} 1464 +apiserver_request_count{client="kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler",code="201",contentType="application/vnd.kubernetes.protobuf",resource="events",scope="namespace",subresource="",verb="POST"} 123 +apiserver_request_count{client="kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler",code="201",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="namespace",subresource="binding",verb="POST"} 91 +apiserver_request_count{client="kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler",code="404",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="namespace",subresource="",verb="GET"} 3 +apiserver_request_count{client="kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/json",resource="daemonsets",scope="cluster",subresource="",verb="LIST"} 2 +apiserver_request_count{client="kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/json",resource="daemonsets",scope="cluster",subresource="",verb="WATCH"} 1478 +apiserver_request_count{client="kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/json",resource="deployments",scope="cluster",subresource="",verb="LIST"} 2 +apiserver_request_count{client="kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/json",resource="deployments",scope="cluster",subresource="",verb="WATCH"} 1456 +apiserver_request_count{client="kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/json",resource="nodes",scope="cluster",subresource="",verb="LIST"} 2 +apiserver_request_count{client="kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/json",resource="nodes",scope="cluster",subresource="",verb="WATCH"} 1464 +apiserver_request_count{client="kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/json",resource="pods",scope="cluster",subresource="",verb="LIST"} 2 +apiserver_request_count{client="kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/json",resource="pods",scope="cluster",subresource="",verb="WATCH"} 1472 +apiserver_request_count{client="kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/json",resource="replicasets",scope="cluster",subresource="",verb="LIST"} 2 +apiserver_request_count{client="kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/json",resource="replicasets",scope="cluster",subresource="",verb="WATCH"} 1473 +apiserver_request_count{client="kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/json",resource="replicationcontrollers",scope="cluster",subresource="",verb="LIST"} 2 +apiserver_request_count{client="kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/json",resource="replicationcontrollers",scope="cluster",subresource="",verb="WATCH"} 1468 +apiserver_request_count{client="kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/json",resource="resourcequotas",scope="cluster",subresource="",verb="LIST"} 2 +apiserver_request_count{client="kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/json",resource="resourcequotas",scope="cluster",subresource="",verb="WATCH"} 1475 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="0",contentType="",resource="pods",scope="namespace",subresource="exec",verb="CONNECT"} 1 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="200",contentType="application/json",resource="clusterrolebindings",scope="cluster",subresource="",verb="DELETE"} 3 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="200",contentType="application/json",resource="clusterroles",scope="cluster",subresource="",verb="DELETE"} 3 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="200",contentType="application/json",resource="configmaps",scope="namespace",subresource="",verb="DELETE"} 4 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="200",contentType="application/json",resource="daemonsets",scope="namespace",subresource="",verb="DELETE"} 3 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="200",contentType="application/json",resource="daemonsets",scope="namespace",subresource="",verb="GET"} 90 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="200",contentType="application/json",resource="daemonsets",scope="namespace",subresource="",verb="LIST"} 2 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="200",contentType="application/json",resource="daemonsets",scope="namespace",subresource="",verb="PUT"} 3 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="200",contentType="application/json",resource="deployments",scope="namespace",subresource="",verb="DELETE"} 14 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="200",contentType="application/json",resource="deployments",scope="namespace",subresource="",verb="GET"} 29 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="200",contentType="application/json",resource="deployments",scope="namespace",subresource="",verb="PATCH"} 1 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="200",contentType="application/json",resource="deployments",scope="namespace",subresource="",verb="PUT"} 14 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="200",contentType="application/json",resource="events",scope="namespace",subresource="",verb="LIST"} 2 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="200",contentType="application/json",resource="jobs",scope="namespace",subresource="",verb="DELETE"} 16 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="200",contentType="application/json",resource="jobs",scope="namespace",subresource="",verb="GET"} 67 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="200",contentType="application/json",resource="jobs",scope="namespace",subresource="",verb="PATCH"} 1 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="200",contentType="application/json",resource="jobs",scope="namespace",subresource="",verb="PUT"} 16 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="200",contentType="application/json",resource="namespaces",scope="cluster",subresource="",verb="GET"} 1 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="200",contentType="application/json",resource="pods",scope="cluster",subresource="",verb="LIST"} 11 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="200",contentType="application/json",resource="pods",scope="namespace",subresource="",verb="DELETE"} 15 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="200",contentType="application/json",resource="pods",scope="namespace",subresource="",verb="GET"} 26 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="200",contentType="application/json",resource="pods",scope="namespace",subresource="",verb="LIST"} 47 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="200",contentType="application/json",resource="pods",scope="namespace",subresource="",verb="WATCH"} 1 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="200",contentType="application/json",resource="replicasets",scope="namespace",subresource="",verb="DELETE"} 1 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="200",contentType="application/json",resource="replicasets",scope="namespace",subresource="",verb="GET"} 4 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="200",contentType="application/json",resource="replicasets",scope="namespace",subresource="",verb="LIST"} 14 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="200",contentType="application/json",resource="replicasets",scope="namespace",subresource="",verb="PUT"} 1 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="200",contentType="application/json",resource="serviceaccounts",scope="namespace",subresource="",verb="DELETE"} 3 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="200",contentType="application/json",resource="services",scope="namespace",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="200",contentType="text/plain",resource="pods",scope="namespace",subresource="log",verb="CONNECT"} 15 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="201",contentType="application/json",resource="clusterrolebindings",scope="cluster",subresource="",verb="POST"} 7 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="201",contentType="application/json",resource="clusterroles",scope="cluster",subresource="",verb="POST"} 6 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="201",contentType="application/json",resource="configmaps",scope="namespace",subresource="",verb="POST"} 7 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="201",contentType="application/json",resource="daemonsets",scope="namespace",subresource="",verb="POST"} 5 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="201",contentType="application/json",resource="deployments",scope="namespace",subresource="",verb="POST"} 18 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="201",contentType="application/json",resource="jobs",scope="namespace",subresource="",verb="POST"} 19 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="201",contentType="application/json",resource="persistentvolumeclaims",scope="namespace",subresource="",verb="POST"} 1 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="201",contentType="application/json",resource="secrets",scope="namespace",subresource="",verb="POST"} 2 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="201",contentType="application/json",resource="serviceaccounts",scope="namespace",subresource="",verb="POST"} 6 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="201",contentType="application/json",resource="services",scope="namespace",subresource="",verb="POST"} 3 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="404",contentType="application/json",resource="deployments",scope="namespace",subresource="",verb="GET"} 2 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="404",contentType="application/json",resource="jobs",scope="namespace",subresource="",verb="GET"} 1 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="404",contentType="application/json",resource="pods",scope="namespace",subresource="",verb="GET"} 3 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="500",contentType="",resource="jobs",scope="namespace",subresource="",verb="PUT"} 1 +apiserver_request_count{client="kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32",code="504",contentType="resource",resource="jobs",scope="",subresource="",verb="UPDATE"} 1 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="200",contentType="application/json",resource="clusterrolebindings",scope="cluster",subresource="",verb="GET"} 87983 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="200",contentType="application/json",resource="clusterrolebindings",scope="cluster",subresource="",verb="PATCH"} 87983 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="200",contentType="application/json",resource="clusterroles",scope="cluster",subresource="",verb="GET"} 43991 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="200",contentType="application/json",resource="clusterroles",scope="cluster",subresource="",verb="PATCH"} 43991 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="200",contentType="application/json",resource="configmaps",scope="namespace",subresource="",verb="GET"} 10997 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="200",contentType="application/json",resource="configmaps",scope="namespace",subresource="",verb="LIST"} 21997 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="200",contentType="application/json",resource="configmaps",scope="namespace",subresource="",verb="PATCH"} 10997 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="200",contentType="application/json",resource="daemonsets",scope="namespace",subresource="",verb="GET"} 10998 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="200",contentType="application/json",resource="daemonsets",scope="namespace",subresource="",verb="LIST"} 21997 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="200",contentType="application/json",resource="daemonsets",scope="namespace",subresource="",verb="PATCH"} 10998 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="200",contentType="application/json",resource="deployments",scope="namespace",subresource="",verb="GET"} 65988 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="200",contentType="application/json",resource="deployments",scope="namespace",subresource="",verb="LIST"} 43994 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="200",contentType="application/json",resource="deployments",scope="namespace",subresource="",verb="PATCH"} 65988 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="200",contentType="application/json",resource="endpoints",scope="namespace",subresource="",verb="GET"} 10999 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="200",contentType="application/json",resource="endpoints",scope="namespace",subresource="",verb="LIST"} 21997 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="200",contentType="application/json",resource="ingresses",scope="namespace",subresource="",verb="LIST"} 21997 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="200",contentType="application/json",resource="jobs",scope="namespace",subresource="",verb="LIST"} 21997 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="200",contentType="application/json",resource="namespaces",scope="cluster",subresource="",verb="GET"} 31 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="200",contentType="application/json",resource="namespaces",scope="cluster",subresource="",verb="LIST"} 21997 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="200",contentType="application/json",resource="namespaces",scope="cluster",subresource="",verb="PATCH"} 1 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="200",contentType="application/json",resource="persistentvolumeclaims",scope="namespace",subresource="",verb="LIST"} 21997 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="200",contentType="application/json",resource="persistentvolumes",scope="cluster",subresource="",verb="LIST"} 21997 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="200",contentType="application/json",resource="pods",scope="namespace",subresource="",verb="LIST"} 21997 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="200",contentType="application/json",resource="replicasets",scope="namespace",subresource="",verb="LIST"} 21997 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="200",contentType="application/json",resource="replicationcontrollers",scope="namespace",subresource="",verb="LIST"} 21997 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="200",contentType="application/json",resource="rolebindings",scope="namespace",subresource="",verb="GET"} 21995 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="200",contentType="application/json",resource="rolebindings",scope="namespace",subresource="",verb="PATCH"} 21995 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="200",contentType="application/json",resource="roles",scope="namespace",subresource="",verb="GET"} 21995 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="200",contentType="application/json",resource="roles",scope="namespace",subresource="",verb="PATCH"} 21995 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="200",contentType="application/json",resource="secrets",scope="namespace",subresource="",verb="LIST"} 21997 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="200",contentType="application/json",resource="serviceaccounts",scope="namespace",subresource="",verb="GET"} 65987 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="200",contentType="application/json",resource="serviceaccounts",scope="namespace",subresource="",verb="PATCH"} 65986 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="200",contentType="application/json",resource="services",scope="namespace",subresource="",verb="GET"} 43992 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="200",contentType="application/json",resource="services",scope="namespace",subresource="",verb="LIST"} 21997 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="200",contentType="application/json",resource="services",scope="namespace",subresource="",verb="PATCH"} 43992 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="200",contentType="application/json",resource="statefulsets",scope="namespace",subresource="",verb="LIST"} 21997 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="201",contentType="application/json",resource="clusterrolebindings",scope="cluster",subresource="",verb="POST"} 8 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="201",contentType="application/json",resource="clusterroles",scope="cluster",subresource="",verb="POST"} 4 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="201",contentType="application/json",resource="configmaps",scope="namespace",subresource="",verb="POST"} 3 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="201",contentType="application/json",resource="daemonsets",scope="namespace",subresource="",verb="POST"} 1 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="201",contentType="application/json",resource="deployments",scope="namespace",subresource="",verb="POST"} 6 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="201",contentType="application/json",resource="limitranges",scope="namespace",subresource="",verb="POST"} 1 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="201",contentType="application/json",resource="rolebindings",scope="namespace",subresource="",verb="POST"} 2 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="201",contentType="application/json",resource="roles",scope="namespace",subresource="",verb="POST"} 2 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="201",contentType="application/json",resource="secrets",scope="namespace",subresource="",verb="POST"} 1 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="201",contentType="application/json",resource="serviceaccounts",scope="namespace",subresource="",verb="POST"} 6 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="201",contentType="application/json",resource="services",scope="namespace",subresource="",verb="POST"} 4 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="201",contentType="application/json",resource="storageclasses",scope="cluster",subresource="",verb="POST"} 1 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="404",contentType="application/json",resource="clusterrolebindings",scope="cluster",subresource="",verb="GET"} 8 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="404",contentType="application/json",resource="clusterroles",scope="cluster",subresource="",verb="GET"} 4 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="404",contentType="application/json",resource="configmaps",scope="namespace",subresource="",verb="GET"} 1 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="404",contentType="application/json",resource="daemonsets",scope="namespace",subresource="",verb="GET"} 1 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="404",contentType="application/json",resource="deployments",scope="namespace",subresource="",verb="GET"} 6 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="404",contentType="application/json",resource="limitranges",scope="namespace",subresource="",verb="GET"} 1 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="404",contentType="application/json",resource="rolebindings",scope="namespace",subresource="",verb="GET"} 2 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="404",contentType="application/json",resource="roles",scope="namespace",subresource="",verb="GET"} 2 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="404",contentType="application/json",resource="serviceaccounts",scope="namespace",subresource="",verb="GET"} 14 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="404",contentType="application/json",resource="services",scope="namespace",subresource="",verb="GET"} 4 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="409",contentType="application/json",resource="configmaps",scope="namespace",subresource="",verb="POST"} 21996 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="409",contentType="application/json",resource="secrets",scope="namespace",subresource="",verb="POST"} 10998 +apiserver_request_count{client="kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332",code="409",contentType="application/json",resource="storageclasses",scope="cluster",subresource="",verb="POST"} 10998 +apiserver_request_count{client="kubectl/v1.8.7 (linux/amd64) kubernetes/b30876a",code="200",contentType="application/json",resource="nodes",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/json",resource="certificatesigningrequests",scope="cluster",subresource="",verb="LIST"} 7 +apiserver_request_count{client="kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/json",resource="certificatesigningrequests",scope="cluster",subresource="",verb="WATCH"} 7 +apiserver_request_count{client="kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="configmaps",scope="namespace",subresource="",verb="GET"} 104401 +apiserver_request_count{client="kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="events",scope="namespace",subresource="",verb="PATCH"} 68 +apiserver_request_count{client="kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="nodes",scope="cluster",subresource="",verb="GET"} 197411 +apiserver_request_count{client="kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="nodes",scope="cluster",subresource="",verb="LIST"} 7 +apiserver_request_count{client="kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="nodes",scope="cluster",subresource="status",verb="PATCH"} 197358 +apiserver_request_count{client="kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="persistentvolumeclaims",scope="namespace",subresource="",verb="GET"} 8712 +apiserver_request_count{client="kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="persistentvolumes",scope="cluster",subresource="",verb="GET"} 8711 +apiserver_request_count{client="kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="cluster",subresource="",verb="LIST"} 7 +apiserver_request_count{client="kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="namespace",subresource="",verb="DELETE"} 68 +apiserver_request_count{client="kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="namespace",subresource="",verb="GET"} 617 +apiserver_request_count{client="kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="namespace",subresource="status",verb="PUT"} 615 +apiserver_request_count{client="kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="secrets",scope="namespace",subresource="",verb="GET"} 200331 +apiserver_request_count{client="kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf",resource="services",scope="cluster",subresource="",verb="LIST"} 7 +apiserver_request_count{client="kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="nodes",scope="cluster",subresource="",verb="WATCH"} 4409 +apiserver_request_count{client="kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="pods",scope="cluster",subresource="",verb="WATCH"} 4428 +apiserver_request_count{client="kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="services",scope="cluster",subresource="",verb="WATCH"} 4408 +apiserver_request_count{client="kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="201",contentType="application/json",resource="certificatesigningrequests",scope="cluster",subresource="",verb="POST"} 7 +apiserver_request_count{client="kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="201",contentType="application/vnd.kubernetes.protobuf",resource="events",scope="namespace",subresource="",verb="POST"} 1258 +apiserver_request_count{client="kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="201",contentType="application/vnd.kubernetes.protobuf",resource="nodes",scope="cluster",subresource="",verb="POST"} 7 +apiserver_request_count{client="kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="201",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="namespace",subresource="",verb="POST"} 8 +apiserver_request_count{client="kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="201",contentType="application/vnd.kubernetes.protobuf",resource="subjectaccessreviews",scope="cluster",subresource="",verb="POST"} 10 +apiserver_request_count{client="kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="404",contentType="application/vnd.kubernetes.protobuf",resource="events",scope="namespace",subresource="",verb="PATCH"} 13 +apiserver_request_count{client="kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="404",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="namespace",subresource="",verb="GET"} 80 +apiserver_request_count{client="kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="404",contentType="application/vnd.kubernetes.protobuf",resource="secrets",scope="namespace",subresource="",verb="GET"} 16 +apiserver_request_count{client="kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="409",contentType="application/vnd.kubernetes.protobuf",resource="nodes",scope="cluster",subresource="status",verb="PATCH"} 11 +apiserver_request_count{client="kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="409",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="namespace",subresource="",verb="POST"} 2 +apiserver_request_count{client="kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="409",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="namespace",subresource="status",verb="PUT"} 1 +apiserver_request_count{client="kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="500",contentType="",resource="configmaps",scope="namespace",subresource="",verb="GET"} 1 +apiserver_request_count{client="kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="500",contentType="",resource="nodes",scope="cluster",subresource="",verb="GET"} 1 +apiserver_request_count{client="kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="500",contentType="application/json",resource="nodes",scope="cluster",subresource="",verb="GET"} 56 +apiserver_request_count{client="kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="504",contentType="resource",resource="configmaps",scope="",subresource="",verb="GET"} 1 +apiserver_request_count{client="kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a",code="504",contentType="resource",resource="nodes",scope="",subresource="",verb="GET"} 1 +apiserver_request_count{client="node-problem-detector/v1.4.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/json",resource="nodes",scope="cluster",subresource="status",verb="PATCH"} 32706 +apiserver_request_count{client="node-problem-detector/v1.4.0 (linux/amd64) kubernetes/$Format",code="201",contentType="application/json",resource="events",scope="namespace",subresource="",verb="POST"} 1 +apiserver_request_count{client="node-problem-detector/v1.4.0 (linux/amd64) kubernetes/$Format",code="404",contentType="application/json",resource="nodes",scope="cluster",subresource="status",verb="PATCH"} 3 +apiserver_request_count{client="node-problem-detector/v1.4.0 (linux/amd64) kubernetes/$Format",code="409",contentType="application/json",resource="nodes",scope="cluster",subresource="status",verb="PATCH"} 8 +apiserver_request_count{client="pod_nanny/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/json",resource="deployments",scope="namespace",subresource="",verb="GET"} 1 +apiserver_request_count{client="pod_nanny/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/json",resource="deployments",scope="namespace",subresource="",verb="PUT"} 1 +apiserver_request_count{client="pod_nanny/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/json",resource="nodes",scope="cluster",subresource="",verb="LIST"} 5 +apiserver_request_count{client="pod_nanny/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/json",resource="nodes",scope="cluster",subresource="",verb="WATCH"} 1482 +apiserver_request_count{client="pod_nanny/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/json",resource="pods",scope="namespace",subresource="",verb="GET"} 65696 +apiserver_request_count{client="rescheduler/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/vnd.kubernetes.protobuf",resource="nodes",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_count{client="rescheduler/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="cluster",subresource="",verb="LIST"} 2 +apiserver_request_count{client="rescheduler/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/vnd.kubernetes.protobuf",resource="pods",scope="namespace",subresource="",verb="LIST"} 1 +apiserver_request_count{client="rescheduler/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="nodes",scope="cluster",subresource="",verb="WATCH"} 1474 +apiserver_request_count{client="rescheduler/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="pods",scope="cluster",subresource="",verb="WATCH"} 2936 +apiserver_request_count{client="rescheduler/v0.0.0 (linux/amd64) kubernetes/$Format",code="200",contentType="application/vnd.kubernetes.protobuf;stream=watch",resource="pods",scope="namespace",subresource="",verb="WATCH"} 1467 +# HELP apiserver_request_latencies Response latency distribution in microseconds for each verb, resource and subresource. +# TYPE apiserver_request_latencies histogram +apiserver_request_latencies_bucket{resource="apiservices",scope="cluster",subresource="",verb="LIST",le="125000"} 1 +apiserver_request_latencies_bucket{resource="apiservices",scope="cluster",subresource="",verb="LIST",le="250000"} 1 +apiserver_request_latencies_bucket{resource="apiservices",scope="cluster",subresource="",verb="LIST",le="500000"} 1 +apiserver_request_latencies_bucket{resource="apiservices",scope="cluster",subresource="",verb="LIST",le="1e+06"} 1 +apiserver_request_latencies_bucket{resource="apiservices",scope="cluster",subresource="",verb="LIST",le="2e+06"} 1 +apiserver_request_latencies_bucket{resource="apiservices",scope="cluster",subresource="",verb="LIST",le="4e+06"} 1 +apiserver_request_latencies_bucket{resource="apiservices",scope="cluster",subresource="",verb="LIST",le="8e+06"} 1 +apiserver_request_latencies_bucket{resource="apiservices",scope="cluster",subresource="",verb="LIST",le="+Inf"} 1 +apiserver_request_latencies_sum{resource="apiservices",scope="cluster",subresource="",verb="LIST"} 104 +apiserver_request_latencies_count{resource="apiservices",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_latencies_bucket{resource="apiservices",scope="cluster",subresource="",verb="POST",le="125000"} 20 +apiserver_request_latencies_bucket{resource="apiservices",scope="cluster",subresource="",verb="POST",le="250000"} 20 +apiserver_request_latencies_bucket{resource="apiservices",scope="cluster",subresource="",verb="POST",le="500000"} 20 +apiserver_request_latencies_bucket{resource="apiservices",scope="cluster",subresource="",verb="POST",le="1e+06"} 20 +apiserver_request_latencies_bucket{resource="apiservices",scope="cluster",subresource="",verb="POST",le="2e+06"} 20 +apiserver_request_latencies_bucket{resource="apiservices",scope="cluster",subresource="",verb="POST",le="4e+06"} 20 +apiserver_request_latencies_bucket{resource="apiservices",scope="cluster",subresource="",verb="POST",le="8e+06"} 20 +apiserver_request_latencies_bucket{resource="apiservices",scope="cluster",subresource="",verb="POST",le="+Inf"} 20 +apiserver_request_latencies_sum{resource="apiservices",scope="cluster",subresource="",verb="POST"} 518921 +apiserver_request_latencies_count{resource="apiservices",scope="cluster",subresource="",verb="POST"} 20 +apiserver_request_latencies_bucket{resource="apiservices",scope="cluster",subresource="",verb="WATCH",le="125000"} 0 +apiserver_request_latencies_bucket{resource="apiservices",scope="cluster",subresource="",verb="WATCH",le="250000"} 0 +apiserver_request_latencies_bucket{resource="apiservices",scope="cluster",subresource="",verb="WATCH",le="500000"} 0 +apiserver_request_latencies_bucket{resource="apiservices",scope="cluster",subresource="",verb="WATCH",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="apiservices",scope="cluster",subresource="",verb="WATCH",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="apiservices",scope="cluster",subresource="",verb="WATCH",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="apiservices",scope="cluster",subresource="",verb="WATCH",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="apiservices",scope="cluster",subresource="",verb="WATCH",le="+Inf"} 1465 +apiserver_request_latencies_sum{resource="apiservices",scope="cluster",subresource="",verb="WATCH"} 6.59555023618e+11 +apiserver_request_latencies_count{resource="apiservices",scope="cluster",subresource="",verb="WATCH"} 1465 +apiserver_request_latencies_bucket{resource="apiservices",scope="cluster",subresource="status",verb="PUT",le="125000"} 44000 +apiserver_request_latencies_bucket{resource="apiservices",scope="cluster",subresource="status",verb="PUT",le="250000"} 44000 +apiserver_request_latencies_bucket{resource="apiservices",scope="cluster",subresource="status",verb="PUT",le="500000"} 44000 +apiserver_request_latencies_bucket{resource="apiservices",scope="cluster",subresource="status",verb="PUT",le="1e+06"} 44000 +apiserver_request_latencies_bucket{resource="apiservices",scope="cluster",subresource="status",verb="PUT",le="2e+06"} 44000 +apiserver_request_latencies_bucket{resource="apiservices",scope="cluster",subresource="status",verb="PUT",le="4e+06"} 44000 +apiserver_request_latencies_bucket{resource="apiservices",scope="cluster",subresource="status",verb="PUT",le="8e+06"} 44000 +apiserver_request_latencies_bucket{resource="apiservices",scope="cluster",subresource="status",verb="PUT",le="+Inf"} 44000 +apiserver_request_latencies_sum{resource="apiservices",scope="cluster",subresource="status",verb="PUT"} 6.9726863e+07 +apiserver_request_latencies_count{resource="apiservices",scope="cluster",subresource="status",verb="PUT"} 44000 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="",verb="LIST",le="125000"} 9 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="",verb="LIST",le="250000"} 9 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="",verb="LIST",le="500000"} 9 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="",verb="LIST",le="1e+06"} 9 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="",verb="LIST",le="2e+06"} 9 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="",verb="LIST",le="4e+06"} 9 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="",verb="LIST",le="8e+06"} 9 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="",verb="LIST",le="+Inf"} 9 +apiserver_request_latencies_sum{resource="certificatesigningrequests",scope="cluster",subresource="",verb="LIST"} 24784 +apiserver_request_latencies_count{resource="certificatesigningrequests",scope="cluster",subresource="",verb="LIST"} 9 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="",verb="POST",le="125000"} 7 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="",verb="POST",le="250000"} 7 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="",verb="POST",le="500000"} 7 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="",verb="POST",le="1e+06"} 7 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="",verb="POST",le="2e+06"} 7 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="",verb="POST",le="4e+06"} 7 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="",verb="POST",le="8e+06"} 7 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="",verb="POST",le="+Inf"} 7 +apiserver_request_latencies_sum{resource="certificatesigningrequests",scope="cluster",subresource="",verb="POST"} 37113 +apiserver_request_latencies_count{resource="certificatesigningrequests",scope="cluster",subresource="",verb="POST"} 7 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="",verb="WATCH",le="125000"} 7 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="",verb="WATCH",le="250000"} 7 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="",verb="WATCH",le="500000"} 7 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="",verb="WATCH",le="1e+06"} 7 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="",verb="WATCH",le="2e+06"} 7 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="",verb="WATCH",le="4e+06"} 7 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="",verb="WATCH",le="8e+06"} 7 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="",verb="WATCH",le="+Inf"} 2944 +apiserver_request_latencies_sum{resource="certificatesigningrequests",scope="cluster",subresource="",verb="WATCH"} 1.319072288505e+12 +apiserver_request_latencies_count{resource="certificatesigningrequests",scope="cluster",subresource="",verb="WATCH"} 2944 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="approval",verb="PUT",le="125000"} 7 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="approval",verb="PUT",le="250000"} 7 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="approval",verb="PUT",le="500000"} 7 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="approval",verb="PUT",le="1e+06"} 7 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="approval",verb="PUT",le="2e+06"} 7 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="approval",verb="PUT",le="4e+06"} 7 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="approval",verb="PUT",le="8e+06"} 7 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="approval",verb="PUT",le="+Inf"} 7 +apiserver_request_latencies_sum{resource="certificatesigningrequests",scope="cluster",subresource="approval",verb="PUT"} 41871 +apiserver_request_latencies_count{resource="certificatesigningrequests",scope="cluster",subresource="approval",verb="PUT"} 7 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="status",verb="PUT",le="125000"} 7 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="status",verb="PUT",le="250000"} 7 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="status",verb="PUT",le="500000"} 7 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="status",verb="PUT",le="1e+06"} 7 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="status",verb="PUT",le="2e+06"} 7 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="status",verb="PUT",le="4e+06"} 7 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="status",verb="PUT",le="8e+06"} 7 +apiserver_request_latencies_bucket{resource="certificatesigningrequests",scope="cluster",subresource="status",verb="PUT",le="+Inf"} 7 +apiserver_request_latencies_sum{resource="certificatesigningrequests",scope="cluster",subresource="status",verb="PUT"} 24266 +apiserver_request_latencies_count{resource="certificatesigningrequests",scope="cluster",subresource="status",verb="PUT"} 7 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="DELETE",le="125000"} 3 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="DELETE",le="250000"} 3 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="DELETE",le="500000"} 3 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="DELETE",le="1e+06"} 3 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="DELETE",le="2e+06"} 3 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="DELETE",le="4e+06"} 3 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="DELETE",le="8e+06"} 3 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="DELETE",le="+Inf"} 3 +apiserver_request_latencies_sum{resource="clusterrolebindings",scope="cluster",subresource="",verb="DELETE"} 19942 +apiserver_request_latencies_count{resource="clusterrolebindings",scope="cluster",subresource="",verb="DELETE"} 3 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="GET",le="125000"} 88021 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="GET",le="250000"} 88021 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="GET",le="500000"} 88021 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="GET",le="1e+06"} 88021 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="GET",le="2e+06"} 88021 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="GET",le="4e+06"} 88021 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="GET",le="8e+06"} 88021 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="GET",le="+Inf"} 88021 +apiserver_request_latencies_sum{resource="clusterrolebindings",scope="cluster",subresource="",verb="GET"} 9.4043104e+07 +apiserver_request_latencies_count{resource="clusterrolebindings",scope="cluster",subresource="",verb="GET"} 88021 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="LIST",le="125000"} 2 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="LIST",le="250000"} 2 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="LIST",le="500000"} 2 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="LIST",le="1e+06"} 2 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="LIST",le="2e+06"} 3 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="LIST",le="4e+06"} 3 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="LIST",le="8e+06"} 3 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="LIST",le="+Inf"} 3 +apiserver_request_latencies_sum{resource="clusterrolebindings",scope="cluster",subresource="",verb="LIST"} 1.678278e+06 +apiserver_request_latencies_count{resource="clusterrolebindings",scope="cluster",subresource="",verb="LIST"} 3 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="PATCH",le="125000"} 87983 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="PATCH",le="250000"} 87983 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="PATCH",le="500000"} 87983 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="PATCH",le="1e+06"} 87983 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="PATCH",le="2e+06"} 87983 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="PATCH",le="4e+06"} 87983 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="PATCH",le="8e+06"} 87983 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="PATCH",le="+Inf"} 87983 +apiserver_request_latencies_sum{resource="clusterrolebindings",scope="cluster",subresource="",verb="PATCH"} 1.61403153e+08 +apiserver_request_latencies_count{resource="clusterrolebindings",scope="cluster",subresource="",verb="PATCH"} 87983 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="POST",le="125000"} 45 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="POST",le="250000"} 45 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="POST",le="500000"} 45 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="POST",le="1e+06"} 45 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="POST",le="2e+06"} 45 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="POST",le="4e+06"} 45 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="POST",le="8e+06"} 45 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="POST",le="+Inf"} 45 +apiserver_request_latencies_sum{resource="clusterrolebindings",scope="cluster",subresource="",verb="POST"} 242600 +apiserver_request_latencies_count{resource="clusterrolebindings",scope="cluster",subresource="",verb="POST"} 45 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="WATCH",le="125000"} 0 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="WATCH",le="250000"} 0 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="WATCH",le="500000"} 0 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="WATCH",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="WATCH",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="WATCH",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="WATCH",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="WATCH",le="+Inf"} 2961 +apiserver_request_latencies_sum{resource="clusterrolebindings",scope="cluster",subresource="",verb="WATCH"} 1.319737924064e+12 +apiserver_request_latencies_count{resource="clusterrolebindings",scope="cluster",subresource="",verb="WATCH"} 2961 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="DELETE",le="125000"} 3 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="DELETE",le="250000"} 3 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="DELETE",le="500000"} 3 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="DELETE",le="1e+06"} 3 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="DELETE",le="2e+06"} 3 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="DELETE",le="4e+06"} 3 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="DELETE",le="8e+06"} 3 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="DELETE",le="+Inf"} 3 +apiserver_request_latencies_sum{resource="clusterroles",scope="cluster",subresource="",verb="DELETE"} 16257 +apiserver_request_latencies_count{resource="clusterroles",scope="cluster",subresource="",verb="DELETE"} 3 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="GET",le="125000"} 44036 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="GET",le="250000"} 44036 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="GET",le="500000"} 44036 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="GET",le="1e+06"} 44036 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="GET",le="2e+06"} 44036 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="GET",le="4e+06"} 44036 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="GET",le="8e+06"} 44036 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="GET",le="+Inf"} 44036 +apiserver_request_latencies_sum{resource="clusterroles",scope="cluster",subresource="",verb="GET"} 4.674889e+07 +apiserver_request_latencies_count{resource="clusterroles",scope="cluster",subresource="",verb="GET"} 44036 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="LIST",le="125000"} 2 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="LIST",le="250000"} 2 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="LIST",le="500000"} 2 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="LIST",le="1e+06"} 3 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="LIST",le="2e+06"} 3 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="LIST",le="4e+06"} 3 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="LIST",le="8e+06"} 3 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="LIST",le="+Inf"} 3 +apiserver_request_latencies_sum{resource="clusterroles",scope="cluster",subresource="",verb="LIST"} 751587 +apiserver_request_latencies_count{resource="clusterroles",scope="cluster",subresource="",verb="LIST"} 3 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="PATCH",le="125000"} 43991 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="PATCH",le="250000"} 43991 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="PATCH",le="500000"} 43991 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="PATCH",le="1e+06"} 43991 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="PATCH",le="2e+06"} 43991 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="PATCH",le="4e+06"} 43991 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="PATCH",le="8e+06"} 43991 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="PATCH",le="+Inf"} 43991 +apiserver_request_latencies_sum{resource="clusterroles",scope="cluster",subresource="",verb="PATCH"} 7.9881493e+07 +apiserver_request_latencies_count{resource="clusterroles",scope="cluster",subresource="",verb="PATCH"} 43991 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="POST",le="125000"} 50 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="POST",le="250000"} 51 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="POST",le="500000"} 51 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="POST",le="1e+06"} 51 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="POST",le="2e+06"} 51 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="POST",le="4e+06"} 51 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="POST",le="8e+06"} 51 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="POST",le="+Inf"} 51 +apiserver_request_latencies_sum{resource="clusterroles",scope="cluster",subresource="",verb="POST"} 453911 +apiserver_request_latencies_count{resource="clusterroles",scope="cluster",subresource="",verb="POST"} 51 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="WATCH",le="125000"} 0 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="WATCH",le="250000"} 0 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="WATCH",le="500000"} 0 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="WATCH",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="WATCH",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="WATCH",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="WATCH",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="clusterroles",scope="cluster",subresource="",verb="WATCH",le="+Inf"} 2927 +apiserver_request_latencies_sum{resource="clusterroles",scope="cluster",subresource="",verb="WATCH"} 1.319595133369e+12 +apiserver_request_latencies_count{resource="clusterroles",scope="cluster",subresource="",verb="WATCH"} 2927 +apiserver_request_latencies_bucket{resource="componentstatuses",scope="cluster",subresource="",verb="LIST",le="125000"} 0 +apiserver_request_latencies_bucket{resource="componentstatuses",scope="cluster",subresource="",verb="LIST",le="250000"} 0 +apiserver_request_latencies_bucket{resource="componentstatuses",scope="cluster",subresource="",verb="LIST",le="500000"} 1419 +apiserver_request_latencies_bucket{resource="componentstatuses",scope="cluster",subresource="",verb="LIST",le="1e+06"} 7195 +apiserver_request_latencies_bucket{resource="componentstatuses",scope="cluster",subresource="",verb="LIST",le="2e+06"} 7195 +apiserver_request_latencies_bucket{resource="componentstatuses",scope="cluster",subresource="",verb="LIST",le="4e+06"} 7195 +apiserver_request_latencies_bucket{resource="componentstatuses",scope="cluster",subresource="",verb="LIST",le="8e+06"} 7195 +apiserver_request_latencies_bucket{resource="componentstatuses",scope="cluster",subresource="",verb="LIST",le="+Inf"} 7195 +apiserver_request_latencies_sum{resource="componentstatuses",scope="cluster",subresource="",verb="LIST"} 3.270551868e+09 +apiserver_request_latencies_count{resource="componentstatuses",scope="cluster",subresource="",verb="LIST"} 7195 +apiserver_request_latencies_bucket{resource="configmaps",scope="",subresource="",verb="GET",le="125000"} 0 +apiserver_request_latencies_bucket{resource="configmaps",scope="",subresource="",verb="GET",le="250000"} 0 +apiserver_request_latencies_bucket{resource="configmaps",scope="",subresource="",verb="GET",le="500000"} 0 +apiserver_request_latencies_bucket{resource="configmaps",scope="",subresource="",verb="GET",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="configmaps",scope="",subresource="",verb="GET",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="configmaps",scope="",subresource="",verb="GET",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="configmaps",scope="",subresource="",verb="GET",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="configmaps",scope="",subresource="",verb="GET",le="+Inf"} 1 +apiserver_request_latencies_sum{resource="configmaps",scope="",subresource="",verb="GET"} 6.0000198e+07 +apiserver_request_latencies_count{resource="configmaps",scope="",subresource="",verb="GET"} 1 +apiserver_request_latencies_bucket{resource="configmaps",scope="cluster",subresource="",verb="LIST",le="125000"} 1 +apiserver_request_latencies_bucket{resource="configmaps",scope="cluster",subresource="",verb="LIST",le="250000"} 1 +apiserver_request_latencies_bucket{resource="configmaps",scope="cluster",subresource="",verb="LIST",le="500000"} 1 +apiserver_request_latencies_bucket{resource="configmaps",scope="cluster",subresource="",verb="LIST",le="1e+06"} 1 +apiserver_request_latencies_bucket{resource="configmaps",scope="cluster",subresource="",verb="LIST",le="2e+06"} 1 +apiserver_request_latencies_bucket{resource="configmaps",scope="cluster",subresource="",verb="LIST",le="4e+06"} 1 +apiserver_request_latencies_bucket{resource="configmaps",scope="cluster",subresource="",verb="LIST",le="8e+06"} 1 +apiserver_request_latencies_bucket{resource="configmaps",scope="cluster",subresource="",verb="LIST",le="+Inf"} 1 +apiserver_request_latencies_sum{resource="configmaps",scope="cluster",subresource="",verb="LIST"} 1192 +apiserver_request_latencies_count{resource="configmaps",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_latencies_bucket{resource="configmaps",scope="cluster",subresource="",verb="WATCH",le="125000"} 0 +apiserver_request_latencies_bucket{resource="configmaps",scope="cluster",subresource="",verb="WATCH",le="250000"} 0 +apiserver_request_latencies_bucket{resource="configmaps",scope="cluster",subresource="",verb="WATCH",le="500000"} 0 +apiserver_request_latencies_bucket{resource="configmaps",scope="cluster",subresource="",verb="WATCH",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="configmaps",scope="cluster",subresource="",verb="WATCH",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="configmaps",scope="cluster",subresource="",verb="WATCH",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="configmaps",scope="cluster",subresource="",verb="WATCH",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="configmaps",scope="cluster",subresource="",verb="WATCH",le="+Inf"} 1483 +apiserver_request_latencies_sum{resource="configmaps",scope="cluster",subresource="",verb="WATCH"} 6.59897025212e+11 +apiserver_request_latencies_count{resource="configmaps",scope="cluster",subresource="",verb="WATCH"} 1483 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="DELETE",le="125000"} 4 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="DELETE",le="250000"} 4 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="DELETE",le="500000"} 4 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="DELETE",le="1e+06"} 4 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="DELETE",le="2e+06"} 4 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="DELETE",le="4e+06"} 4 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="DELETE",le="8e+06"} 4 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="DELETE",le="+Inf"} 4 +apiserver_request_latencies_sum{resource="configmaps",scope="namespace",subresource="",verb="DELETE"} 19435 +apiserver_request_latencies_count{resource="configmaps",scope="namespace",subresource="",verb="DELETE"} 4 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="GET",le="125000"} 444861 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="GET",le="250000"} 444863 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="GET",le="500000"} 444866 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="GET",le="1e+06"} 444869 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="GET",le="2e+06"} 444869 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="GET",le="4e+06"} 444869 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="GET",le="8e+06"} 444869 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="GET",le="+Inf"} 444870 +apiserver_request_latencies_sum{resource="configmaps",scope="namespace",subresource="",verb="GET"} 1.016382203e+09 +apiserver_request_latencies_count{resource="configmaps",scope="namespace",subresource="",verb="GET"} 444870 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="LIST",le="125000"} 21998 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="LIST",le="250000"} 21998 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="LIST",le="500000"} 21998 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="LIST",le="1e+06"} 21998 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="LIST",le="2e+06"} 21998 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="LIST",le="4e+06"} 21998 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="LIST",le="8e+06"} 21998 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="LIST",le="+Inf"} 21998 +apiserver_request_latencies_sum{resource="configmaps",scope="namespace",subresource="",verb="LIST"} 5.4318333e+07 +apiserver_request_latencies_count{resource="configmaps",scope="namespace",subresource="",verb="LIST"} 21998 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="PATCH",le="125000"} 10997 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="PATCH",le="250000"} 10997 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="PATCH",le="500000"} 10997 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="PATCH",le="1e+06"} 10997 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="PATCH",le="2e+06"} 10997 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="PATCH",le="4e+06"} 10997 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="PATCH",le="8e+06"} 10997 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="PATCH",le="+Inf"} 10997 +apiserver_request_latencies_sum{resource="configmaps",scope="namespace",subresource="",verb="PATCH"} 2.7035169e+07 +apiserver_request_latencies_count{resource="configmaps",scope="namespace",subresource="",verb="PATCH"} 10997 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="POST",le="125000"} 22009 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="POST",le="250000"} 22009 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="POST",le="500000"} 22009 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="POST",le="1e+06"} 22009 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="POST",le="2e+06"} 22009 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="POST",le="4e+06"} 22009 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="POST",le="8e+06"} 22009 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="POST",le="+Inf"} 22009 +apiserver_request_latencies_sum{resource="configmaps",scope="namespace",subresource="",verb="POST"} 9.1312572e+07 +apiserver_request_latencies_count{resource="configmaps",scope="namespace",subresource="",verb="POST"} 22009 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="PUT",le="125000"} 1 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="PUT",le="250000"} 1 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="PUT",le="500000"} 1 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="PUT",le="1e+06"} 1 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="PUT",le="2e+06"} 1 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="PUT",le="4e+06"} 1 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="PUT",le="8e+06"} 1 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="PUT",le="+Inf"} 1 +apiserver_request_latencies_sum{resource="configmaps",scope="namespace",subresource="",verb="PUT"} 2145 +apiserver_request_latencies_count{resource="configmaps",scope="namespace",subresource="",verb="PUT"} 1 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="WATCH",le="125000"} 0 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="WATCH",le="250000"} 0 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="WATCH",le="500000"} 0 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="WATCH",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="WATCH",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="WATCH",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="WATCH",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="configmaps",scope="namespace",subresource="",verb="WATCH",le="+Inf"} 1462 +apiserver_request_latencies_sum{resource="configmaps",scope="namespace",subresource="",verb="WATCH"} 6.59801007214e+11 +apiserver_request_latencies_count{resource="configmaps",scope="namespace",subresource="",verb="WATCH"} 1462 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="cluster",subresource="",verb="LIST",le="125000"} 1 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="cluster",subresource="",verb="LIST",le="250000"} 1 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="cluster",subresource="",verb="LIST",le="500000"} 1 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="cluster",subresource="",verb="LIST",le="1e+06"} 1 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="cluster",subresource="",verb="LIST",le="2e+06"} 1 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="cluster",subresource="",verb="LIST",le="4e+06"} 1 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="cluster",subresource="",verb="LIST",le="8e+06"} 1 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="cluster",subresource="",verb="LIST",le="+Inf"} 1 +apiserver_request_latencies_sum{resource="controllerrevisions",scope="cluster",subresource="",verb="LIST"} 298 +apiserver_request_latencies_count{resource="controllerrevisions",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="cluster",subresource="",verb="WATCH",le="125000"} 0 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="cluster",subresource="",verb="WATCH",le="250000"} 0 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="cluster",subresource="",verb="WATCH",le="500000"} 0 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="cluster",subresource="",verb="WATCH",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="cluster",subresource="",verb="WATCH",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="cluster",subresource="",verb="WATCH",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="cluster",subresource="",verb="WATCH",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="cluster",subresource="",verb="WATCH",le="+Inf"} 1463 +apiserver_request_latencies_sum{resource="controllerrevisions",scope="cluster",subresource="",verb="WATCH"} 6.59457907105e+11 +apiserver_request_latencies_count{resource="controllerrevisions",scope="cluster",subresource="",verb="WATCH"} 1463 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="namespace",subresource="",verb="DELETE",le="125000"} 6 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="namespace",subresource="",verb="DELETE",le="250000"} 6 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="namespace",subresource="",verb="DELETE",le="500000"} 6 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="namespace",subresource="",verb="DELETE",le="1e+06"} 6 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="namespace",subresource="",verb="DELETE",le="2e+06"} 6 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="namespace",subresource="",verb="DELETE",le="4e+06"} 6 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="namespace",subresource="",verb="DELETE",le="8e+06"} 6 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="namespace",subresource="",verb="DELETE",le="+Inf"} 6 +apiserver_request_latencies_sum{resource="controllerrevisions",scope="namespace",subresource="",verb="DELETE"} 40480 +apiserver_request_latencies_count{resource="controllerrevisions",scope="namespace",subresource="",verb="DELETE"} 6 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="namespace",subresource="",verb="GET",le="125000"} 6 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="namespace",subresource="",verb="GET",le="250000"} 6 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="namespace",subresource="",verb="GET",le="500000"} 6 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="namespace",subresource="",verb="GET",le="1e+06"} 6 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="namespace",subresource="",verb="GET",le="2e+06"} 6 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="namespace",subresource="",verb="GET",le="4e+06"} 6 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="namespace",subresource="",verb="GET",le="8e+06"} 6 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="namespace",subresource="",verb="GET",le="+Inf"} 6 +apiserver_request_latencies_sum{resource="controllerrevisions",scope="namespace",subresource="",verb="GET"} 10013 +apiserver_request_latencies_count{resource="controllerrevisions",scope="namespace",subresource="",verb="GET"} 6 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="namespace",subresource="",verb="POST",le="125000"} 9 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="namespace",subresource="",verb="POST",le="250000"} 9 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="namespace",subresource="",verb="POST",le="500000"} 9 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="namespace",subresource="",verb="POST",le="1e+06"} 9 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="namespace",subresource="",verb="POST",le="2e+06"} 9 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="namespace",subresource="",verb="POST",le="4e+06"} 9 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="namespace",subresource="",verb="POST",le="8e+06"} 9 +apiserver_request_latencies_bucket{resource="controllerrevisions",scope="namespace",subresource="",verb="POST",le="+Inf"} 9 +apiserver_request_latencies_sum{resource="controllerrevisions",scope="namespace",subresource="",verb="POST"} 30051 +apiserver_request_latencies_count{resource="controllerrevisions",scope="namespace",subresource="",verb="POST"} 9 +apiserver_request_latencies_bucket{resource="cronjobs",scope="cluster",subresource="",verb="LIST",le="125000"} 65929 +apiserver_request_latencies_bucket{resource="cronjobs",scope="cluster",subresource="",verb="LIST",le="250000"} 65930 +apiserver_request_latencies_bucket{resource="cronjobs",scope="cluster",subresource="",verb="LIST",le="500000"} 65930 +apiserver_request_latencies_bucket{resource="cronjobs",scope="cluster",subresource="",verb="LIST",le="1e+06"} 65930 +apiserver_request_latencies_bucket{resource="cronjobs",scope="cluster",subresource="",verb="LIST",le="2e+06"} 65930 +apiserver_request_latencies_bucket{resource="cronjobs",scope="cluster",subresource="",verb="LIST",le="4e+06"} 65930 +apiserver_request_latencies_bucket{resource="cronjobs",scope="cluster",subresource="",verb="LIST",le="8e+06"} 65930 +apiserver_request_latencies_bucket{resource="cronjobs",scope="cluster",subresource="",verb="LIST",le="+Inf"} 65930 +apiserver_request_latencies_sum{resource="cronjobs",scope="cluster",subresource="",verb="LIST"} 8.8828794e+07 +apiserver_request_latencies_count{resource="cronjobs",scope="cluster",subresource="",verb="LIST"} 65930 +apiserver_request_latencies_bucket{resource="cronjobs",scope="cluster",subresource="",verb="WATCH",le="125000"} 0 +apiserver_request_latencies_bucket{resource="cronjobs",scope="cluster",subresource="",verb="WATCH",le="250000"} 0 +apiserver_request_latencies_bucket{resource="cronjobs",scope="cluster",subresource="",verb="WATCH",le="500000"} 0 +apiserver_request_latencies_bucket{resource="cronjobs",scope="cluster",subresource="",verb="WATCH",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="cronjobs",scope="cluster",subresource="",verb="WATCH",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="cronjobs",scope="cluster",subresource="",verb="WATCH",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="cronjobs",scope="cluster",subresource="",verb="WATCH",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="cronjobs",scope="cluster",subresource="",verb="WATCH",le="+Inf"} 1467 +apiserver_request_latencies_sum{resource="cronjobs",scope="cluster",subresource="",verb="WATCH"} 6.59673062825e+11 +apiserver_request_latencies_count{resource="cronjobs",scope="cluster",subresource="",verb="WATCH"} 1467 +apiserver_request_latencies_bucket{resource="customresourcedefinitions",scope="cluster",subresource="",verb="LIST",le="125000"} 0 +apiserver_request_latencies_bucket{resource="customresourcedefinitions",scope="cluster",subresource="",verb="LIST",le="250000"} 1 +apiserver_request_latencies_bucket{resource="customresourcedefinitions",scope="cluster",subresource="",verb="LIST",le="500000"} 1 +apiserver_request_latencies_bucket{resource="customresourcedefinitions",scope="cluster",subresource="",verb="LIST",le="1e+06"} 1 +apiserver_request_latencies_bucket{resource="customresourcedefinitions",scope="cluster",subresource="",verb="LIST",le="2e+06"} 1 +apiserver_request_latencies_bucket{resource="customresourcedefinitions",scope="cluster",subresource="",verb="LIST",le="4e+06"} 1 +apiserver_request_latencies_bucket{resource="customresourcedefinitions",scope="cluster",subresource="",verb="LIST",le="8e+06"} 1 +apiserver_request_latencies_bucket{resource="customresourcedefinitions",scope="cluster",subresource="",verb="LIST",le="+Inf"} 1 +apiserver_request_latencies_sum{resource="customresourcedefinitions",scope="cluster",subresource="",verb="LIST"} 148703 +apiserver_request_latencies_count{resource="customresourcedefinitions",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_latencies_bucket{resource="customresourcedefinitions",scope="cluster",subresource="",verb="WATCH",le="125000"} 0 +apiserver_request_latencies_bucket{resource="customresourcedefinitions",scope="cluster",subresource="",verb="WATCH",le="250000"} 0 +apiserver_request_latencies_bucket{resource="customresourcedefinitions",scope="cluster",subresource="",verb="WATCH",le="500000"} 0 +apiserver_request_latencies_bucket{resource="customresourcedefinitions",scope="cluster",subresource="",verb="WATCH",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="customresourcedefinitions",scope="cluster",subresource="",verb="WATCH",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="customresourcedefinitions",scope="cluster",subresource="",verb="WATCH",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="customresourcedefinitions",scope="cluster",subresource="",verb="WATCH",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="customresourcedefinitions",scope="cluster",subresource="",verb="WATCH",le="+Inf"} 1467 +apiserver_request_latencies_sum{resource="customresourcedefinitions",scope="cluster",subresource="",verb="WATCH"} 6.59897009038e+11 +apiserver_request_latencies_count{resource="customresourcedefinitions",scope="cluster",subresource="",verb="WATCH"} 1467 +apiserver_request_latencies_bucket{resource="daemonsets",scope="cluster",subresource="",verb="LIST",le="125000"} 713 +apiserver_request_latencies_bucket{resource="daemonsets",scope="cluster",subresource="",verb="LIST",le="250000"} 713 +apiserver_request_latencies_bucket{resource="daemonsets",scope="cluster",subresource="",verb="LIST",le="500000"} 713 +apiserver_request_latencies_bucket{resource="daemonsets",scope="cluster",subresource="",verb="LIST",le="1e+06"} 713 +apiserver_request_latencies_bucket{resource="daemonsets",scope="cluster",subresource="",verb="LIST",le="2e+06"} 713 +apiserver_request_latencies_bucket{resource="daemonsets",scope="cluster",subresource="",verb="LIST",le="4e+06"} 713 +apiserver_request_latencies_bucket{resource="daemonsets",scope="cluster",subresource="",verb="LIST",le="8e+06"} 713 +apiserver_request_latencies_bucket{resource="daemonsets",scope="cluster",subresource="",verb="LIST",le="+Inf"} 713 +apiserver_request_latencies_sum{resource="daemonsets",scope="cluster",subresource="",verb="LIST"} 1.783238e+06 +apiserver_request_latencies_count{resource="daemonsets",scope="cluster",subresource="",verb="LIST"} 713 +apiserver_request_latencies_bucket{resource="daemonsets",scope="cluster",subresource="",verb="WATCH",le="125000"} 0 +apiserver_request_latencies_bucket{resource="daemonsets",scope="cluster",subresource="",verb="WATCH",le="250000"} 0 +apiserver_request_latencies_bucket{resource="daemonsets",scope="cluster",subresource="",verb="WATCH",le="500000"} 0 +apiserver_request_latencies_bucket{resource="daemonsets",scope="cluster",subresource="",verb="WATCH",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="daemonsets",scope="cluster",subresource="",verb="WATCH",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="daemonsets",scope="cluster",subresource="",verb="WATCH",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="daemonsets",scope="cluster",subresource="",verb="WATCH",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="daemonsets",scope="cluster",subresource="",verb="WATCH",le="+Inf"} 4412 +apiserver_request_latencies_sum{resource="daemonsets",scope="cluster",subresource="",verb="WATCH"} 1.978402804959e+12 +apiserver_request_latencies_count{resource="daemonsets",scope="cluster",subresource="",verb="WATCH"} 4412 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="DELETE",le="125000"} 3 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="DELETE",le="250000"} 3 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="DELETE",le="500000"} 3 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="DELETE",le="1e+06"} 3 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="DELETE",le="2e+06"} 3 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="DELETE",le="4e+06"} 3 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="DELETE",le="8e+06"} 3 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="DELETE",le="+Inf"} 3 +apiserver_request_latencies_sum{resource="daemonsets",scope="namespace",subresource="",verb="DELETE"} 21094 +apiserver_request_latencies_count{resource="daemonsets",scope="namespace",subresource="",verb="DELETE"} 3 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="GET",le="125000"} 11099 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="GET",le="250000"} 11099 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="GET",le="500000"} 11099 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="GET",le="1e+06"} 11099 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="GET",le="2e+06"} 11099 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="GET",le="4e+06"} 11099 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="GET",le="8e+06"} 11099 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="GET",le="+Inf"} 11099 +apiserver_request_latencies_sum{resource="daemonsets",scope="namespace",subresource="",verb="GET"} 1.7674492e+07 +apiserver_request_latencies_count{resource="daemonsets",scope="namespace",subresource="",verb="GET"} 11099 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="LIST",le="125000"} 21999 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="LIST",le="250000"} 21999 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="LIST",le="500000"} 21999 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="LIST",le="1e+06"} 21999 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="LIST",le="2e+06"} 21999 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="LIST",le="4e+06"} 21999 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="LIST",le="8e+06"} 21999 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="LIST",le="+Inf"} 21999 +apiserver_request_latencies_sum{resource="daemonsets",scope="namespace",subresource="",verb="LIST"} 4.2542811e+07 +apiserver_request_latencies_count{resource="daemonsets",scope="namespace",subresource="",verb="LIST"} 21999 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="PATCH",le="125000"} 10998 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="PATCH",le="250000"} 10998 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="PATCH",le="500000"} 10998 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="PATCH",le="1e+06"} 10998 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="PATCH",le="2e+06"} 10998 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="PATCH",le="4e+06"} 10998 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="PATCH",le="8e+06"} 10998 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="PATCH",le="+Inf"} 10998 +apiserver_request_latencies_sum{resource="daemonsets",scope="namespace",subresource="",verb="PATCH"} 4.6349882e+07 +apiserver_request_latencies_count{resource="daemonsets",scope="namespace",subresource="",verb="PATCH"} 10998 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="POST",le="125000"} 6 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="POST",le="250000"} 6 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="POST",le="500000"} 6 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="POST",le="1e+06"} 6 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="POST",le="2e+06"} 6 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="POST",le="4e+06"} 6 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="POST",le="8e+06"} 6 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="POST",le="+Inf"} 6 +apiserver_request_latencies_sum{resource="daemonsets",scope="namespace",subresource="",verb="POST"} 81365 +apiserver_request_latencies_count{resource="daemonsets",scope="namespace",subresource="",verb="POST"} 6 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="PUT",le="125000"} 3 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="PUT",le="250000"} 3 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="PUT",le="500000"} 3 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="PUT",le="1e+06"} 3 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="PUT",le="2e+06"} 3 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="PUT",le="4e+06"} 3 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="PUT",le="8e+06"} 3 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="",verb="PUT",le="+Inf"} 3 +apiserver_request_latencies_sum{resource="daemonsets",scope="namespace",subresource="",verb="PUT"} 29952 +apiserver_request_latencies_count{resource="daemonsets",scope="namespace",subresource="",verb="PUT"} 3 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="status",verb="PUT",le="125000"} 116 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="status",verb="PUT",le="250000"} 116 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="status",verb="PUT",le="500000"} 116 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="status",verb="PUT",le="1e+06"} 116 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="status",verb="PUT",le="2e+06"} 116 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="status",verb="PUT",le="4e+06"} 116 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="status",verb="PUT",le="8e+06"} 116 +apiserver_request_latencies_bucket{resource="daemonsets",scope="namespace",subresource="status",verb="PUT",le="+Inf"} 116 +apiserver_request_latencies_sum{resource="daemonsets",scope="namespace",subresource="status",verb="PUT"} 1.336329e+06 +apiserver_request_latencies_count{resource="daemonsets",scope="namespace",subresource="status",verb="PUT"} 116 +apiserver_request_latencies_bucket{resource="deployments",scope="cluster",subresource="",verb="LIST",le="125000"} 713 +apiserver_request_latencies_bucket{resource="deployments",scope="cluster",subresource="",verb="LIST",le="250000"} 713 +apiserver_request_latencies_bucket{resource="deployments",scope="cluster",subresource="",verb="LIST",le="500000"} 713 +apiserver_request_latencies_bucket{resource="deployments",scope="cluster",subresource="",verb="LIST",le="1e+06"} 713 +apiserver_request_latencies_bucket{resource="deployments",scope="cluster",subresource="",verb="LIST",le="2e+06"} 713 +apiserver_request_latencies_bucket{resource="deployments",scope="cluster",subresource="",verb="LIST",le="4e+06"} 713 +apiserver_request_latencies_bucket{resource="deployments",scope="cluster",subresource="",verb="LIST",le="8e+06"} 713 +apiserver_request_latencies_bucket{resource="deployments",scope="cluster",subresource="",verb="LIST",le="+Inf"} 713 +apiserver_request_latencies_sum{resource="deployments",scope="cluster",subresource="",verb="LIST"} 2.461062e+06 +apiserver_request_latencies_count{resource="deployments",scope="cluster",subresource="",verb="LIST"} 713 +apiserver_request_latencies_bucket{resource="deployments",scope="cluster",subresource="",verb="WATCH",le="125000"} 0 +apiserver_request_latencies_bucket{resource="deployments",scope="cluster",subresource="",verb="WATCH",le="250000"} 0 +apiserver_request_latencies_bucket{resource="deployments",scope="cluster",subresource="",verb="WATCH",le="500000"} 0 +apiserver_request_latencies_bucket{resource="deployments",scope="cluster",subresource="",verb="WATCH",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="deployments",scope="cluster",subresource="",verb="WATCH",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="deployments",scope="cluster",subresource="",verb="WATCH",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="deployments",scope="cluster",subresource="",verb="WATCH",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="deployments",scope="cluster",subresource="",verb="WATCH",le="+Inf"} 4384 +apiserver_request_latencies_sum{resource="deployments",scope="cluster",subresource="",verb="WATCH"} 1.978039440788e+12 +apiserver_request_latencies_count{resource="deployments",scope="cluster",subresource="",verb="WATCH"} 4384 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="DELETE",le="125000"} 14 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="DELETE",le="250000"} 14 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="DELETE",le="500000"} 14 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="DELETE",le="1e+06"} 14 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="DELETE",le="2e+06"} 14 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="DELETE",le="4e+06"} 14 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="DELETE",le="8e+06"} 14 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="DELETE",le="+Inf"} 14 +apiserver_request_latencies_sum{resource="deployments",scope="namespace",subresource="",verb="DELETE"} 139646 +apiserver_request_latencies_count{resource="deployments",scope="namespace",subresource="",verb="DELETE"} 14 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="GET",le="125000"} 66025 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="GET",le="250000"} 66025 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="GET",le="500000"} 66025 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="GET",le="1e+06"} 66025 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="GET",le="2e+06"} 66026 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="GET",le="4e+06"} 66026 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="GET",le="8e+06"} 66026 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="GET",le="+Inf"} 66026 +apiserver_request_latencies_sum{resource="deployments",scope="namespace",subresource="",verb="GET"} 9.882797e+07 +apiserver_request_latencies_count{resource="deployments",scope="namespace",subresource="",verb="GET"} 66026 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="LIST",le="125000"} 43994 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="LIST",le="250000"} 43994 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="LIST",le="500000"} 43994 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="LIST",le="1e+06"} 43994 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="LIST",le="2e+06"} 43994 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="LIST",le="4e+06"} 43994 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="LIST",le="8e+06"} 43994 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="LIST",le="+Inf"} 43994 +apiserver_request_latencies_sum{resource="deployments",scope="namespace",subresource="",verb="LIST"} 1.16859281e+08 +apiserver_request_latencies_count{resource="deployments",scope="namespace",subresource="",verb="LIST"} 43994 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="PATCH",le="125000"} 65989 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="PATCH",le="250000"} 65989 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="PATCH",le="500000"} 65989 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="PATCH",le="1e+06"} 65989 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="PATCH",le="2e+06"} 65989 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="PATCH",le="4e+06"} 65989 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="PATCH",le="8e+06"} 65989 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="PATCH",le="+Inf"} 65989 +apiserver_request_latencies_sum{resource="deployments",scope="namespace",subresource="",verb="PATCH"} 2.27196113e+08 +apiserver_request_latencies_count{resource="deployments",scope="namespace",subresource="",verb="PATCH"} 65989 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="POST",le="125000"} 23 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="POST",le="250000"} 24 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="POST",le="500000"} 24 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="POST",le="1e+06"} 24 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="POST",le="2e+06"} 24 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="POST",le="4e+06"} 24 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="POST",le="8e+06"} 24 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="POST",le="+Inf"} 24 +apiserver_request_latencies_sum{resource="deployments",scope="namespace",subresource="",verb="POST"} 410336 +apiserver_request_latencies_count{resource="deployments",scope="namespace",subresource="",verb="POST"} 24 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="PUT",le="125000"} 14 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="PUT",le="250000"} 14 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="PUT",le="500000"} 14 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="PUT",le="1e+06"} 14 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="PUT",le="2e+06"} 15 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="PUT",le="4e+06"} 15 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="PUT",le="8e+06"} 15 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="",verb="PUT",le="+Inf"} 15 +apiserver_request_latencies_sum{resource="deployments",scope="namespace",subresource="",verb="PUT"} 1.450354e+06 +apiserver_request_latencies_count{resource="deployments",scope="namespace",subresource="",verb="PUT"} 15 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="scale",verb="GET",le="125000"} 65893 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="scale",verb="GET",le="250000"} 65893 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="scale",verb="GET",le="500000"} 65893 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="scale",verb="GET",le="1e+06"} 65893 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="scale",verb="GET",le="2e+06"} 65893 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="scale",verb="GET",le="4e+06"} 65893 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="scale",verb="GET",le="8e+06"} 65893 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="scale",verb="GET",le="+Inf"} 65893 +apiserver_request_latencies_sum{resource="deployments",scope="namespace",subresource="scale",verb="GET"} 8.2149159e+07 +apiserver_request_latencies_count{resource="deployments",scope="namespace",subresource="scale",verb="GET"} 65893 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="scale",verb="PUT",le="125000"} 1 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="scale",verb="PUT",le="250000"} 1 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="scale",verb="PUT",le="500000"} 1 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="scale",verb="PUT",le="1e+06"} 1 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="scale",verb="PUT",le="2e+06"} 1 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="scale",verb="PUT",le="4e+06"} 1 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="scale",verb="PUT",le="8e+06"} 1 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="scale",verb="PUT",le="+Inf"} 1 +apiserver_request_latencies_sum{resource="deployments",scope="namespace",subresource="scale",verb="PUT"} 25903 +apiserver_request_latencies_count{resource="deployments",scope="namespace",subresource="scale",verb="PUT"} 1 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="status",verb="PUT",le="125000"} 343 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="status",verb="PUT",le="250000"} 346 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="status",verb="PUT",le="500000"} 347 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="status",verb="PUT",le="1e+06"} 347 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="status",verb="PUT",le="2e+06"} 347 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="status",verb="PUT",le="4e+06"} 347 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="status",verb="PUT",le="8e+06"} 347 +apiserver_request_latencies_bucket{resource="deployments",scope="namespace",subresource="status",verb="PUT",le="+Inf"} 347 +apiserver_request_latencies_sum{resource="deployments",scope="namespace",subresource="status",verb="PUT"} 5.307111e+06 +apiserver_request_latencies_count{resource="deployments",scope="namespace",subresource="status",verb="PUT"} 347 +apiserver_request_latencies_bucket{resource="endpoints",scope="cluster",subresource="",verb="LIST",le="125000"} 12 +apiserver_request_latencies_bucket{resource="endpoints",scope="cluster",subresource="",verb="LIST",le="250000"} 13 +apiserver_request_latencies_bucket{resource="endpoints",scope="cluster",subresource="",verb="LIST",le="500000"} 13 +apiserver_request_latencies_bucket{resource="endpoints",scope="cluster",subresource="",verb="LIST",le="1e+06"} 13 +apiserver_request_latencies_bucket{resource="endpoints",scope="cluster",subresource="",verb="LIST",le="2e+06"} 13 +apiserver_request_latencies_bucket{resource="endpoints",scope="cluster",subresource="",verb="LIST",le="4e+06"} 13 +apiserver_request_latencies_bucket{resource="endpoints",scope="cluster",subresource="",verb="LIST",le="8e+06"} 13 +apiserver_request_latencies_bucket{resource="endpoints",scope="cluster",subresource="",verb="LIST",le="+Inf"} 13 +apiserver_request_latencies_sum{resource="endpoints",scope="cluster",subresource="",verb="LIST"} 133887 +apiserver_request_latencies_count{resource="endpoints",scope="cluster",subresource="",verb="LIST"} 13 +apiserver_request_latencies_bucket{resource="endpoints",scope="cluster",subresource="",verb="WATCH",le="125000"} 0 +apiserver_request_latencies_bucket{resource="endpoints",scope="cluster",subresource="",verb="WATCH",le="250000"} 0 +apiserver_request_latencies_bucket{resource="endpoints",scope="cluster",subresource="",verb="WATCH",le="500000"} 0 +apiserver_request_latencies_bucket{resource="endpoints",scope="cluster",subresource="",verb="WATCH",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="endpoints",scope="cluster",subresource="",verb="WATCH",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="endpoints",scope="cluster",subresource="",verb="WATCH",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="endpoints",scope="cluster",subresource="",verb="WATCH",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="endpoints",scope="cluster",subresource="",verb="WATCH",le="+Inf"} 10319 +apiserver_request_latencies_sum{resource="endpoints",scope="cluster",subresource="",verb="WATCH"} 4.618957403529e+12 +apiserver_request_latencies_count{resource="endpoints",scope="cluster",subresource="",verb="WATCH"} 10319 +apiserver_request_latencies_bucket{resource="endpoints",scope="namespace",subresource="",verb="GET",le="125000"} 733634 +apiserver_request_latencies_bucket{resource="endpoints",scope="namespace",subresource="",verb="GET",le="250000"} 733639 +apiserver_request_latencies_bucket{resource="endpoints",scope="namespace",subresource="",verb="GET",le="500000"} 733649 +apiserver_request_latencies_bucket{resource="endpoints",scope="namespace",subresource="",verb="GET",le="1e+06"} 733664 +apiserver_request_latencies_bucket{resource="endpoints",scope="namespace",subresource="",verb="GET",le="2e+06"} 733671 +apiserver_request_latencies_bucket{resource="endpoints",scope="namespace",subresource="",verb="GET",le="4e+06"} 733671 +apiserver_request_latencies_bucket{resource="endpoints",scope="namespace",subresource="",verb="GET",le="8e+06"} 733671 +apiserver_request_latencies_bucket{resource="endpoints",scope="namespace",subresource="",verb="GET",le="+Inf"} 733671 +apiserver_request_latencies_sum{resource="endpoints",scope="namespace",subresource="",verb="GET"} 8.34805253e+08 +apiserver_request_latencies_count{resource="endpoints",scope="namespace",subresource="",verb="GET"} 733671 +apiserver_request_latencies_bucket{resource="endpoints",scope="namespace",subresource="",verb="LIST",le="125000"} 21997 +apiserver_request_latencies_bucket{resource="endpoints",scope="namespace",subresource="",verb="LIST",le="250000"} 21997 +apiserver_request_latencies_bucket{resource="endpoints",scope="namespace",subresource="",verb="LIST",le="500000"} 21997 +apiserver_request_latencies_bucket{resource="endpoints",scope="namespace",subresource="",verb="LIST",le="1e+06"} 21997 +apiserver_request_latencies_bucket{resource="endpoints",scope="namespace",subresource="",verb="LIST",le="2e+06"} 21997 +apiserver_request_latencies_bucket{resource="endpoints",scope="namespace",subresource="",verb="LIST",le="4e+06"} 21997 +apiserver_request_latencies_bucket{resource="endpoints",scope="namespace",subresource="",verb="LIST",le="8e+06"} 21997 +apiserver_request_latencies_bucket{resource="endpoints",scope="namespace",subresource="",verb="LIST",le="+Inf"} 21997 +apiserver_request_latencies_sum{resource="endpoints",scope="namespace",subresource="",verb="LIST"} 3.8610514e+07 +apiserver_request_latencies_count{resource="endpoints",scope="namespace",subresource="",verb="LIST"} 21997 +apiserver_request_latencies_bucket{resource="endpoints",scope="namespace",subresource="",verb="POST",le="125000"} 11 +apiserver_request_latencies_bucket{resource="endpoints",scope="namespace",subresource="",verb="POST",le="250000"} 11 +apiserver_request_latencies_bucket{resource="endpoints",scope="namespace",subresource="",verb="POST",le="500000"} 11 +apiserver_request_latencies_bucket{resource="endpoints",scope="namespace",subresource="",verb="POST",le="1e+06"} 11 +apiserver_request_latencies_bucket{resource="endpoints",scope="namespace",subresource="",verb="POST",le="2e+06"} 11 +apiserver_request_latencies_bucket{resource="endpoints",scope="namespace",subresource="",verb="POST",le="4e+06"} 11 +apiserver_request_latencies_bucket{resource="endpoints",scope="namespace",subresource="",verb="POST",le="8e+06"} 11 +apiserver_request_latencies_bucket{resource="endpoints",scope="namespace",subresource="",verb="POST",le="+Inf"} 11 +apiserver_request_latencies_sum{resource="endpoints",scope="namespace",subresource="",verb="POST"} 56853 +apiserver_request_latencies_count{resource="endpoints",scope="namespace",subresource="",verb="POST"} 11 +apiserver_request_latencies_bucket{resource="endpoints",scope="namespace",subresource="",verb="PUT",le="125000"} 656912 +apiserver_request_latencies_bucket{resource="endpoints",scope="namespace",subresource="",verb="PUT",le="250000"} 656919 +apiserver_request_latencies_bucket{resource="endpoints",scope="namespace",subresource="",verb="PUT",le="500000"} 656926 +apiserver_request_latencies_bucket{resource="endpoints",scope="namespace",subresource="",verb="PUT",le="1e+06"} 656930 +apiserver_request_latencies_bucket{resource="endpoints",scope="namespace",subresource="",verb="PUT",le="2e+06"} 656937 +apiserver_request_latencies_bucket{resource="endpoints",scope="namespace",subresource="",verb="PUT",le="4e+06"} 656937 +apiserver_request_latencies_bucket{resource="endpoints",scope="namespace",subresource="",verb="PUT",le="8e+06"} 656937 +apiserver_request_latencies_bucket{resource="endpoints",scope="namespace",subresource="",verb="PUT",le="+Inf"} 656937 +apiserver_request_latencies_sum{resource="endpoints",scope="namespace",subresource="",verb="PUT"} 1.660247858e+09 +apiserver_request_latencies_count{resource="endpoints",scope="namespace",subresource="",verb="PUT"} 656937 +apiserver_request_latencies_bucket{resource="events",scope="cluster",subresource="",verb="LIST",le="125000"} 1131 +apiserver_request_latencies_bucket{resource="events",scope="cluster",subresource="",verb="LIST",le="250000"} 1131 +apiserver_request_latencies_bucket{resource="events",scope="cluster",subresource="",verb="LIST",le="500000"} 1131 +apiserver_request_latencies_bucket{resource="events",scope="cluster",subresource="",verb="LIST",le="1e+06"} 1131 +apiserver_request_latencies_bucket{resource="events",scope="cluster",subresource="",verb="LIST",le="2e+06"} 1131 +apiserver_request_latencies_bucket{resource="events",scope="cluster",subresource="",verb="LIST",le="4e+06"} 1131 +apiserver_request_latencies_bucket{resource="events",scope="cluster",subresource="",verb="LIST",le="8e+06"} 1131 +apiserver_request_latencies_bucket{resource="events",scope="cluster",subresource="",verb="LIST",le="+Inf"} 1131 +apiserver_request_latencies_sum{resource="events",scope="cluster",subresource="",verb="LIST"} 2.19449e+06 +apiserver_request_latencies_count{resource="events",scope="cluster",subresource="",verb="LIST"} 1131 +apiserver_request_latencies_bucket{resource="events",scope="cluster",subresource="",verb="WATCH",le="125000"} 1128 +apiserver_request_latencies_bucket{resource="events",scope="cluster",subresource="",verb="WATCH",le="250000"} 1129 +apiserver_request_latencies_bucket{resource="events",scope="cluster",subresource="",verb="WATCH",le="500000"} 1129 +apiserver_request_latencies_bucket{resource="events",scope="cluster",subresource="",verb="WATCH",le="1e+06"} 1129 +apiserver_request_latencies_bucket{resource="events",scope="cluster",subresource="",verb="WATCH",le="2e+06"} 1129 +apiserver_request_latencies_bucket{resource="events",scope="cluster",subresource="",verb="WATCH",le="4e+06"} 1129 +apiserver_request_latencies_bucket{resource="events",scope="cluster",subresource="",verb="WATCH",le="8e+06"} 1129 +apiserver_request_latencies_bucket{resource="events",scope="cluster",subresource="",verb="WATCH",le="+Inf"} 2599 +apiserver_request_latencies_sum{resource="events",scope="cluster",subresource="",verb="WATCH"} 6.58396349345e+11 +apiserver_request_latencies_count{resource="events",scope="cluster",subresource="",verb="WATCH"} 2599 +apiserver_request_latencies_bucket{resource="events",scope="namespace",subresource="",verb="LIST",le="125000"} 2 +apiserver_request_latencies_bucket{resource="events",scope="namespace",subresource="",verb="LIST",le="250000"} 2 +apiserver_request_latencies_bucket{resource="events",scope="namespace",subresource="",verb="LIST",le="500000"} 2 +apiserver_request_latencies_bucket{resource="events",scope="namespace",subresource="",verb="LIST",le="1e+06"} 2 +apiserver_request_latencies_bucket{resource="events",scope="namespace",subresource="",verb="LIST",le="2e+06"} 2 +apiserver_request_latencies_bucket{resource="events",scope="namespace",subresource="",verb="LIST",le="4e+06"} 2 +apiserver_request_latencies_bucket{resource="events",scope="namespace",subresource="",verb="LIST",le="8e+06"} 2 +apiserver_request_latencies_bucket{resource="events",scope="namespace",subresource="",verb="LIST",le="+Inf"} 2 +apiserver_request_latencies_sum{resource="events",scope="namespace",subresource="",verb="LIST"} 10407 +apiserver_request_latencies_count{resource="events",scope="namespace",subresource="",verb="LIST"} 2 +apiserver_request_latencies_bucket{resource="events",scope="namespace",subresource="",verb="PATCH",le="125000"} 386 +apiserver_request_latencies_bucket{resource="events",scope="namespace",subresource="",verb="PATCH",le="250000"} 388 +apiserver_request_latencies_bucket{resource="events",scope="namespace",subresource="",verb="PATCH",le="500000"} 388 +apiserver_request_latencies_bucket{resource="events",scope="namespace",subresource="",verb="PATCH",le="1e+06"} 388 +apiserver_request_latencies_bucket{resource="events",scope="namespace",subresource="",verb="PATCH",le="2e+06"} 388 +apiserver_request_latencies_bucket{resource="events",scope="namespace",subresource="",verb="PATCH",le="4e+06"} 388 +apiserver_request_latencies_bucket{resource="events",scope="namespace",subresource="",verb="PATCH",le="8e+06"} 388 +apiserver_request_latencies_bucket{resource="events",scope="namespace",subresource="",verb="PATCH",le="+Inf"} 388 +apiserver_request_latencies_sum{resource="events",scope="namespace",subresource="",verb="PATCH"} 4.031187e+06 +apiserver_request_latencies_count{resource="events",scope="namespace",subresource="",verb="PATCH"} 388 +apiserver_request_latencies_bucket{resource="events",scope="namespace",subresource="",verb="POST",le="125000"} 1652 +apiserver_request_latencies_bucket{resource="events",scope="namespace",subresource="",verb="POST",le="250000"} 1654 +apiserver_request_latencies_bucket{resource="events",scope="namespace",subresource="",verb="POST",le="500000"} 1657 +apiserver_request_latencies_bucket{resource="events",scope="namespace",subresource="",verb="POST",le="1e+06"} 1657 +apiserver_request_latencies_bucket{resource="events",scope="namespace",subresource="",verb="POST",le="2e+06"} 1657 +apiserver_request_latencies_bucket{resource="events",scope="namespace",subresource="",verb="POST",le="4e+06"} 1657 +apiserver_request_latencies_bucket{resource="events",scope="namespace",subresource="",verb="POST",le="8e+06"} 1659 +apiserver_request_latencies_bucket{resource="events",scope="namespace",subresource="",verb="POST",le="+Inf"} 1659 +apiserver_request_latencies_sum{resource="events",scope="namespace",subresource="",verb="POST"} 3.1122339e+07 +apiserver_request_latencies_count{resource="events",scope="namespace",subresource="",verb="POST"} 1659 +apiserver_request_latencies_bucket{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="LIST",le="125000"} 710 +apiserver_request_latencies_bucket{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="LIST",le="250000"} 710 +apiserver_request_latencies_bucket{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="LIST",le="500000"} 710 +apiserver_request_latencies_bucket{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="LIST",le="1e+06"} 710 +apiserver_request_latencies_bucket{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="LIST",le="2e+06"} 710 +apiserver_request_latencies_bucket{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="LIST",le="4e+06"} 710 +apiserver_request_latencies_bucket{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="LIST",le="8e+06"} 710 +apiserver_request_latencies_bucket{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="LIST",le="+Inf"} 710 +apiserver_request_latencies_sum{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="LIST"} 1.024073e+06 +apiserver_request_latencies_count{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="LIST"} 710 +apiserver_request_latencies_bucket{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="WATCH",le="125000"} 0 +apiserver_request_latencies_bucket{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="WATCH",le="250000"} 0 +apiserver_request_latencies_bucket{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="WATCH",le="500000"} 0 +apiserver_request_latencies_bucket{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="WATCH",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="WATCH",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="WATCH",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="WATCH",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="WATCH",le="+Inf"} 1459 +apiserver_request_latencies_sum{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="WATCH"} 6.59831109566e+11 +apiserver_request_latencies_count{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="WATCH"} 1459 +apiserver_request_latencies_bucket{resource="ingresses",scope="cluster",subresource="",verb="LIST",le="125000"} 712 +apiserver_request_latencies_bucket{resource="ingresses",scope="cluster",subresource="",verb="LIST",le="250000"} 712 +apiserver_request_latencies_bucket{resource="ingresses",scope="cluster",subresource="",verb="LIST",le="500000"} 712 +apiserver_request_latencies_bucket{resource="ingresses",scope="cluster",subresource="",verb="LIST",le="1e+06"} 712 +apiserver_request_latencies_bucket{resource="ingresses",scope="cluster",subresource="",verb="LIST",le="2e+06"} 712 +apiserver_request_latencies_bucket{resource="ingresses",scope="cluster",subresource="",verb="LIST",le="4e+06"} 712 +apiserver_request_latencies_bucket{resource="ingresses",scope="cluster",subresource="",verb="LIST",le="8e+06"} 712 +apiserver_request_latencies_bucket{resource="ingresses",scope="cluster",subresource="",verb="LIST",le="+Inf"} 712 +apiserver_request_latencies_sum{resource="ingresses",scope="cluster",subresource="",verb="LIST"} 1.102127e+06 +apiserver_request_latencies_count{resource="ingresses",scope="cluster",subresource="",verb="LIST"} 712 +apiserver_request_latencies_bucket{resource="ingresses",scope="cluster",subresource="",verb="WATCH",le="125000"} 0 +apiserver_request_latencies_bucket{resource="ingresses",scope="cluster",subresource="",verb="WATCH",le="250000"} 0 +apiserver_request_latencies_bucket{resource="ingresses",scope="cluster",subresource="",verb="WATCH",le="500000"} 0 +apiserver_request_latencies_bucket{resource="ingresses",scope="cluster",subresource="",verb="WATCH",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="ingresses",scope="cluster",subresource="",verb="WATCH",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="ingresses",scope="cluster",subresource="",verb="WATCH",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="ingresses",scope="cluster",subresource="",verb="WATCH",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="ingresses",scope="cluster",subresource="",verb="WATCH",le="+Inf"} 2941 +apiserver_request_latencies_sum{resource="ingresses",scope="cluster",subresource="",verb="WATCH"} 1.319639948582e+12 +apiserver_request_latencies_count{resource="ingresses",scope="cluster",subresource="",verb="WATCH"} 2941 +apiserver_request_latencies_bucket{resource="ingresses",scope="namespace",subresource="",verb="LIST",le="125000"} 21997 +apiserver_request_latencies_bucket{resource="ingresses",scope="namespace",subresource="",verb="LIST",le="250000"} 21997 +apiserver_request_latencies_bucket{resource="ingresses",scope="namespace",subresource="",verb="LIST",le="500000"} 21997 +apiserver_request_latencies_bucket{resource="ingresses",scope="namespace",subresource="",verb="LIST",le="1e+06"} 21997 +apiserver_request_latencies_bucket{resource="ingresses",scope="namespace",subresource="",verb="LIST",le="2e+06"} 21997 +apiserver_request_latencies_bucket{resource="ingresses",scope="namespace",subresource="",verb="LIST",le="4e+06"} 21997 +apiserver_request_latencies_bucket{resource="ingresses",scope="namespace",subresource="",verb="LIST",le="8e+06"} 21997 +apiserver_request_latencies_bucket{resource="ingresses",scope="namespace",subresource="",verb="LIST",le="+Inf"} 21997 +apiserver_request_latencies_sum{resource="ingresses",scope="namespace",subresource="",verb="LIST"} 2.9407747e+07 +apiserver_request_latencies_count{resource="ingresses",scope="namespace",subresource="",verb="LIST"} 21997 +apiserver_request_latencies_bucket{resource="jobs",scope="",subresource="",verb="UPDATE",le="125000"} 0 +apiserver_request_latencies_bucket{resource="jobs",scope="",subresource="",verb="UPDATE",le="250000"} 0 +apiserver_request_latencies_bucket{resource="jobs",scope="",subresource="",verb="UPDATE",le="500000"} 0 +apiserver_request_latencies_bucket{resource="jobs",scope="",subresource="",verb="UPDATE",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="jobs",scope="",subresource="",verb="UPDATE",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="jobs",scope="",subresource="",verb="UPDATE",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="jobs",scope="",subresource="",verb="UPDATE",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="jobs",scope="",subresource="",verb="UPDATE",le="+Inf"} 1 +apiserver_request_latencies_sum{resource="jobs",scope="",subresource="",verb="UPDATE"} 6.0000399e+07 +apiserver_request_latencies_count{resource="jobs",scope="",subresource="",verb="UPDATE"} 1 +apiserver_request_latencies_bucket{resource="jobs",scope="cluster",subresource="",verb="LIST",le="125000"} 66635 +apiserver_request_latencies_bucket{resource="jobs",scope="cluster",subresource="",verb="LIST",le="250000"} 66636 +apiserver_request_latencies_bucket{resource="jobs",scope="cluster",subresource="",verb="LIST",le="500000"} 66636 +apiserver_request_latencies_bucket{resource="jobs",scope="cluster",subresource="",verb="LIST",le="1e+06"} 66637 +apiserver_request_latencies_bucket{resource="jobs",scope="cluster",subresource="",verb="LIST",le="2e+06"} 66639 +apiserver_request_latencies_bucket{resource="jobs",scope="cluster",subresource="",verb="LIST",le="4e+06"} 66639 +apiserver_request_latencies_bucket{resource="jobs",scope="cluster",subresource="",verb="LIST",le="8e+06"} 66639 +apiserver_request_latencies_bucket{resource="jobs",scope="cluster",subresource="",verb="LIST",le="+Inf"} 66639 +apiserver_request_latencies_sum{resource="jobs",scope="cluster",subresource="",verb="LIST"} 1.2027929e+08 +apiserver_request_latencies_count{resource="jobs",scope="cluster",subresource="",verb="LIST"} 66639 +apiserver_request_latencies_bucket{resource="jobs",scope="cluster",subresource="",verb="WATCH",le="125000"} 0 +apiserver_request_latencies_bucket{resource="jobs",scope="cluster",subresource="",verb="WATCH",le="250000"} 0 +apiserver_request_latencies_bucket{resource="jobs",scope="cluster",subresource="",verb="WATCH",le="500000"} 0 +apiserver_request_latencies_bucket{resource="jobs",scope="cluster",subresource="",verb="WATCH",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="jobs",scope="cluster",subresource="",verb="WATCH",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="jobs",scope="cluster",subresource="",verb="WATCH",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="jobs",scope="cluster",subresource="",verb="WATCH",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="jobs",scope="cluster",subresource="",verb="WATCH",le="+Inf"} 1469 +apiserver_request_latencies_sum{resource="jobs",scope="cluster",subresource="",verb="WATCH"} 6.59704930318e+11 +apiserver_request_latencies_count{resource="jobs",scope="cluster",subresource="",verb="WATCH"} 1469 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="DELETE",le="125000"} 15 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="DELETE",le="250000"} 15 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="DELETE",le="500000"} 15 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="DELETE",le="1e+06"} 15 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="DELETE",le="2e+06"} 16 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="DELETE",le="4e+06"} 16 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="DELETE",le="8e+06"} 16 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="DELETE",le="+Inf"} 16 +apiserver_request_latencies_sum{resource="jobs",scope="namespace",subresource="",verb="DELETE"} 1.437944e+06 +apiserver_request_latencies_count{resource="jobs",scope="namespace",subresource="",verb="DELETE"} 16 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="GET",le="125000"} 68 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="GET",le="250000"} 68 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="GET",le="500000"} 68 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="GET",le="1e+06"} 68 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="GET",le="2e+06"} 68 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="GET",le="4e+06"} 68 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="GET",le="8e+06"} 68 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="GET",le="+Inf"} 68 +apiserver_request_latencies_sum{resource="jobs",scope="namespace",subresource="",verb="GET"} 117705 +apiserver_request_latencies_count{resource="jobs",scope="namespace",subresource="",verb="GET"} 68 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="LIST",le="125000"} 21997 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="LIST",le="250000"} 21997 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="LIST",le="500000"} 21997 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="LIST",le="1e+06"} 21997 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="LIST",le="2e+06"} 21997 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="LIST",le="4e+06"} 21997 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="LIST",le="8e+06"} 21997 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="LIST",le="+Inf"} 21997 +apiserver_request_latencies_sum{resource="jobs",scope="namespace",subresource="",verb="LIST"} 3.3805681e+07 +apiserver_request_latencies_count{resource="jobs",scope="namespace",subresource="",verb="LIST"} 21997 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="PATCH",le="125000"} 1 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="PATCH",le="250000"} 1 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="PATCH",le="500000"} 1 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="PATCH",le="1e+06"} 1 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="PATCH",le="2e+06"} 1 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="PATCH",le="4e+06"} 1 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="PATCH",le="8e+06"} 1 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="PATCH",le="+Inf"} 1 +apiserver_request_latencies_sum{resource="jobs",scope="namespace",subresource="",verb="PATCH"} 5655 +apiserver_request_latencies_count{resource="jobs",scope="namespace",subresource="",verb="PATCH"} 1 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="POST",le="125000"} 18 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="POST",le="250000"} 18 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="POST",le="500000"} 18 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="POST",le="1e+06"} 18 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="POST",le="2e+06"} 19 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="POST",le="4e+06"} 19 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="POST",le="8e+06"} 19 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="POST",le="+Inf"} 19 +apiserver_request_latencies_sum{resource="jobs",scope="namespace",subresource="",verb="POST"} 1.52572e+06 +apiserver_request_latencies_count{resource="jobs",scope="namespace",subresource="",verb="POST"} 19 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="PUT",le="125000"} 15 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="PUT",le="250000"} 15 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="PUT",le="500000"} 15 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="PUT",le="1e+06"} 15 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="PUT",le="2e+06"} 15 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="PUT",le="4e+06"} 16 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="PUT",le="8e+06"} 16 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="",verb="PUT",le="+Inf"} 17 +apiserver_request_latencies_sum{resource="jobs",scope="namespace",subresource="",verb="PUT"} 6.261372e+07 +apiserver_request_latencies_count{resource="jobs",scope="namespace",subresource="",verb="PUT"} 17 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="status",verb="PUT",le="125000"} 40 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="status",verb="PUT",le="250000"} 40 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="status",verb="PUT",le="500000"} 40 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="status",verb="PUT",le="1e+06"} 40 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="status",verb="PUT",le="2e+06"} 40 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="status",verb="PUT",le="4e+06"} 40 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="status",verb="PUT",le="8e+06"} 40 +apiserver_request_latencies_bucket{resource="jobs",scope="namespace",subresource="status",verb="PUT",le="+Inf"} 40 +apiserver_request_latencies_sum{resource="jobs",scope="namespace",subresource="status",verb="PUT"} 408553 +apiserver_request_latencies_count{resource="jobs",scope="namespace",subresource="status",verb="PUT"} 40 +apiserver_request_latencies_bucket{resource="limitranges",scope="cluster",subresource="",verb="LIST",le="125000"} 1 +apiserver_request_latencies_bucket{resource="limitranges",scope="cluster",subresource="",verb="LIST",le="250000"} 1 +apiserver_request_latencies_bucket{resource="limitranges",scope="cluster",subresource="",verb="LIST",le="500000"} 1 +apiserver_request_latencies_bucket{resource="limitranges",scope="cluster",subresource="",verb="LIST",le="1e+06"} 1 +apiserver_request_latencies_bucket{resource="limitranges",scope="cluster",subresource="",verb="LIST",le="2e+06"} 2 +apiserver_request_latencies_bucket{resource="limitranges",scope="cluster",subresource="",verb="LIST",le="4e+06"} 2 +apiserver_request_latencies_bucket{resource="limitranges",scope="cluster",subresource="",verb="LIST",le="8e+06"} 2 +apiserver_request_latencies_bucket{resource="limitranges",scope="cluster",subresource="",verb="LIST",le="+Inf"} 2 +apiserver_request_latencies_sum{resource="limitranges",scope="cluster",subresource="",verb="LIST"} 1.654312e+06 +apiserver_request_latencies_count{resource="limitranges",scope="cluster",subresource="",verb="LIST"} 2 +apiserver_request_latencies_bucket{resource="limitranges",scope="cluster",subresource="",verb="WATCH",le="125000"} 0 +apiserver_request_latencies_bucket{resource="limitranges",scope="cluster",subresource="",verb="WATCH",le="250000"} 0 +apiserver_request_latencies_bucket{resource="limitranges",scope="cluster",subresource="",verb="WATCH",le="500000"} 0 +apiserver_request_latencies_bucket{resource="limitranges",scope="cluster",subresource="",verb="WATCH",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="limitranges",scope="cluster",subresource="",verb="WATCH",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="limitranges",scope="cluster",subresource="",verb="WATCH",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="limitranges",scope="cluster",subresource="",verb="WATCH",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="limitranges",scope="cluster",subresource="",verb="WATCH",le="+Inf"} 2940 +apiserver_request_latencies_sum{resource="limitranges",scope="cluster",subresource="",verb="WATCH"} 1.319158063084e+12 +apiserver_request_latencies_count{resource="limitranges",scope="cluster",subresource="",verb="WATCH"} 2940 +apiserver_request_latencies_bucket{resource="limitranges",scope="namespace",subresource="",verb="GET",le="125000"} 1 +apiserver_request_latencies_bucket{resource="limitranges",scope="namespace",subresource="",verb="GET",le="250000"} 1 +apiserver_request_latencies_bucket{resource="limitranges",scope="namespace",subresource="",verb="GET",le="500000"} 1 +apiserver_request_latencies_bucket{resource="limitranges",scope="namespace",subresource="",verb="GET",le="1e+06"} 1 +apiserver_request_latencies_bucket{resource="limitranges",scope="namespace",subresource="",verb="GET",le="2e+06"} 1 +apiserver_request_latencies_bucket{resource="limitranges",scope="namespace",subresource="",verb="GET",le="4e+06"} 1 +apiserver_request_latencies_bucket{resource="limitranges",scope="namespace",subresource="",verb="GET",le="8e+06"} 1 +apiserver_request_latencies_bucket{resource="limitranges",scope="namespace",subresource="",verb="GET",le="+Inf"} 1 +apiserver_request_latencies_sum{resource="limitranges",scope="namespace",subresource="",verb="GET"} 3552 +apiserver_request_latencies_count{resource="limitranges",scope="namespace",subresource="",verb="GET"} 1 +apiserver_request_latencies_bucket{resource="limitranges",scope="namespace",subresource="",verb="LIST",le="125000"} 18 +apiserver_request_latencies_bucket{resource="limitranges",scope="namespace",subresource="",verb="LIST",le="250000"} 18 +apiserver_request_latencies_bucket{resource="limitranges",scope="namespace",subresource="",verb="LIST",le="500000"} 18 +apiserver_request_latencies_bucket{resource="limitranges",scope="namespace",subresource="",verb="LIST",le="1e+06"} 18 +apiserver_request_latencies_bucket{resource="limitranges",scope="namespace",subresource="",verb="LIST",le="2e+06"} 18 +apiserver_request_latencies_bucket{resource="limitranges",scope="namespace",subresource="",verb="LIST",le="4e+06"} 18 +apiserver_request_latencies_bucket{resource="limitranges",scope="namespace",subresource="",verb="LIST",le="8e+06"} 18 +apiserver_request_latencies_bucket{resource="limitranges",scope="namespace",subresource="",verb="LIST",le="+Inf"} 18 +apiserver_request_latencies_sum{resource="limitranges",scope="namespace",subresource="",verb="LIST"} 134182 +apiserver_request_latencies_count{resource="limitranges",scope="namespace",subresource="",verb="LIST"} 18 +apiserver_request_latencies_bucket{resource="limitranges",scope="namespace",subresource="",verb="POST",le="125000"} 1 +apiserver_request_latencies_bucket{resource="limitranges",scope="namespace",subresource="",verb="POST",le="250000"} 1 +apiserver_request_latencies_bucket{resource="limitranges",scope="namespace",subresource="",verb="POST",le="500000"} 1 +apiserver_request_latencies_bucket{resource="limitranges",scope="namespace",subresource="",verb="POST",le="1e+06"} 1 +apiserver_request_latencies_bucket{resource="limitranges",scope="namespace",subresource="",verb="POST",le="2e+06"} 1 +apiserver_request_latencies_bucket{resource="limitranges",scope="namespace",subresource="",verb="POST",le="4e+06"} 1 +apiserver_request_latencies_bucket{resource="limitranges",scope="namespace",subresource="",verb="POST",le="8e+06"} 1 +apiserver_request_latencies_bucket{resource="limitranges",scope="namespace",subresource="",verb="POST",le="+Inf"} 1 +apiserver_request_latencies_sum{resource="limitranges",scope="namespace",subresource="",verb="POST"} 8582 +apiserver_request_latencies_count{resource="limitranges",scope="namespace",subresource="",verb="POST"} 1 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="GET",le="125000"} 87991 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="GET",le="250000"} 87993 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="GET",le="500000"} 87994 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="GET",le="1e+06"} 87994 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="GET",le="2e+06"} 87994 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="GET",le="4e+06"} 87994 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="GET",le="8e+06"} 87994 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="GET",le="+Inf"} 87994 +apiserver_request_latencies_sum{resource="namespaces",scope="cluster",subresource="",verb="GET"} 9.5827906e+07 +apiserver_request_latencies_count{resource="namespaces",scope="cluster",subresource="",verb="GET"} 87994 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="LIST",le="125000"} 29194 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="LIST",le="250000"} 29194 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="LIST",le="500000"} 29194 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="LIST",le="1e+06"} 29194 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="LIST",le="2e+06"} 29194 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="LIST",le="4e+06"} 29194 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="LIST",le="8e+06"} 29194 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="LIST",le="+Inf"} 29194 +apiserver_request_latencies_sum{resource="namespaces",scope="cluster",subresource="",verb="LIST"} 4.4608509e+07 +apiserver_request_latencies_count{resource="namespaces",scope="cluster",subresource="",verb="LIST"} 29194 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="PATCH",le="125000"} 1 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="PATCH",le="250000"} 1 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="PATCH",le="500000"} 1 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="PATCH",le="1e+06"} 1 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="PATCH",le="2e+06"} 1 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="PATCH",le="4e+06"} 1 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="PATCH",le="8e+06"} 1 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="PATCH",le="+Inf"} 1 +apiserver_request_latencies_sum{resource="namespaces",scope="cluster",subresource="",verb="PATCH"} 4186 +apiserver_request_latencies_count{resource="namespaces",scope="cluster",subresource="",verb="PATCH"} 1 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="POST",le="125000"} 15 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="POST",le="250000"} 15 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="POST",le="500000"} 15 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="POST",le="1e+06"} 16 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="POST",le="2e+06"} 16 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="POST",le="4e+06"} 16 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="POST",le="8e+06"} 16 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="POST",le="+Inf"} 16 +apiserver_request_latencies_sum{resource="namespaces",scope="cluster",subresource="",verb="POST"} 793020 +apiserver_request_latencies_count{resource="namespaces",scope="cluster",subresource="",verb="POST"} 16 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="WATCH",le="125000"} 0 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="WATCH",le="250000"} 0 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="WATCH",le="500000"} 0 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="WATCH",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="WATCH",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="WATCH",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="WATCH",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="namespaces",scope="cluster",subresource="",verb="WATCH",le="+Inf"} 4392 +apiserver_request_latencies_sum{resource="namespaces",scope="cluster",subresource="",verb="WATCH"} 1.979690652276e+12 +apiserver_request_latencies_count{resource="namespaces",scope="cluster",subresource="",verb="WATCH"} 4392 +apiserver_request_latencies_bucket{resource="networkpolicies",scope="cluster",subresource="",verb="LIST",le="125000"} 2 +apiserver_request_latencies_bucket{resource="networkpolicies",scope="cluster",subresource="",verb="LIST",le="250000"} 2 +apiserver_request_latencies_bucket{resource="networkpolicies",scope="cluster",subresource="",verb="LIST",le="500000"} 2 +apiserver_request_latencies_bucket{resource="networkpolicies",scope="cluster",subresource="",verb="LIST",le="1e+06"} 2 +apiserver_request_latencies_bucket{resource="networkpolicies",scope="cluster",subresource="",verb="LIST",le="2e+06"} 2 +apiserver_request_latencies_bucket{resource="networkpolicies",scope="cluster",subresource="",verb="LIST",le="4e+06"} 2 +apiserver_request_latencies_bucket{resource="networkpolicies",scope="cluster",subresource="",verb="LIST",le="8e+06"} 2 +apiserver_request_latencies_bucket{resource="networkpolicies",scope="cluster",subresource="",verb="LIST",le="+Inf"} 2 +apiserver_request_latencies_sum{resource="networkpolicies",scope="cluster",subresource="",verb="LIST"} 770 +apiserver_request_latencies_count{resource="networkpolicies",scope="cluster",subresource="",verb="LIST"} 2 +apiserver_request_latencies_bucket{resource="networkpolicies",scope="cluster",subresource="",verb="WATCH",le="125000"} 0 +apiserver_request_latencies_bucket{resource="networkpolicies",scope="cluster",subresource="",verb="WATCH",le="250000"} 0 +apiserver_request_latencies_bucket{resource="networkpolicies",scope="cluster",subresource="",verb="WATCH",le="500000"} 0 +apiserver_request_latencies_bucket{resource="networkpolicies",scope="cluster",subresource="",verb="WATCH",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="networkpolicies",scope="cluster",subresource="",verb="WATCH",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="networkpolicies",scope="cluster",subresource="",verb="WATCH",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="networkpolicies",scope="cluster",subresource="",verb="WATCH",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="networkpolicies",scope="cluster",subresource="",verb="WATCH",le="+Inf"} 2947 +apiserver_request_latencies_sum{resource="networkpolicies",scope="cluster",subresource="",verb="WATCH"} 1.319410001462e+12 +apiserver_request_latencies_count{resource="networkpolicies",scope="cluster",subresource="",verb="WATCH"} 2947 +apiserver_request_latencies_bucket{resource="nodes",scope="",subresource="",verb="GET",le="125000"} 0 +apiserver_request_latencies_bucket{resource="nodes",scope="",subresource="",verb="GET",le="250000"} 0 +apiserver_request_latencies_bucket{resource="nodes",scope="",subresource="",verb="GET",le="500000"} 0 +apiserver_request_latencies_bucket{resource="nodes",scope="",subresource="",verb="GET",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="nodes",scope="",subresource="",verb="GET",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="nodes",scope="",subresource="",verb="GET",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="nodes",scope="",subresource="",verb="GET",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="nodes",scope="",subresource="",verb="GET",le="+Inf"} 1 +apiserver_request_latencies_sum{resource="nodes",scope="",subresource="",verb="GET"} 6.0000155e+07 +apiserver_request_latencies_count{resource="nodes",scope="",subresource="",verb="GET"} 1 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="DELETE",le="125000"} 4 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="DELETE",le="250000"} 4 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="DELETE",le="500000"} 4 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="DELETE",le="1e+06"} 4 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="DELETE",le="2e+06"} 4 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="DELETE",le="4e+06"} 4 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="DELETE",le="8e+06"} 4 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="DELETE",le="+Inf"} 4 +apiserver_request_latencies_sum{resource="nodes",scope="cluster",subresource="",verb="DELETE"} 32628 +apiserver_request_latencies_count{resource="nodes",scope="cluster",subresource="",verb="DELETE"} 4 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="GET",le="125000"} 197485 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="GET",le="250000"} 197485 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="GET",le="500000"} 197485 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="GET",le="1e+06"} 197485 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="GET",le="2e+06"} 197485 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="GET",le="4e+06"} 197485 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="GET",le="8e+06"} 197485 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="GET",le="+Inf"} 197492 +apiserver_request_latencies_sum{resource="nodes",scope="cluster",subresource="",verb="GET"} 6.68178451e+08 +apiserver_request_latencies_count{resource="nodes",scope="cluster",subresource="",verb="GET"} 197492 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="LIST",le="125000"} 157353 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="LIST",le="250000"} 157363 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="LIST",le="500000"} 157370 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="LIST",le="1e+06"} 157373 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="LIST",le="2e+06"} 157377 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="LIST",le="4e+06"} 157377 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="LIST",le="8e+06"} 157377 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="LIST",le="+Inf"} 157377 +apiserver_request_latencies_sum{resource="nodes",scope="cluster",subresource="",verb="LIST"} 4.7845123e+08 +apiserver_request_latencies_count{resource="nodes",scope="cluster",subresource="",verb="LIST"} 157377 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="PATCH",le="125000"} 7 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="PATCH",le="250000"} 7 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="PATCH",le="500000"} 7 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="PATCH",le="1e+06"} 7 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="PATCH",le="2e+06"} 7 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="PATCH",le="4e+06"} 7 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="PATCH",le="8e+06"} 7 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="PATCH",le="+Inf"} 7 +apiserver_request_latencies_sum{resource="nodes",scope="cluster",subresource="",verb="PATCH"} 192618 +apiserver_request_latencies_count{resource="nodes",scope="cluster",subresource="",verb="PATCH"} 7 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="POST",le="125000"} 7 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="POST",le="250000"} 7 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="POST",le="500000"} 7 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="POST",le="1e+06"} 7 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="POST",le="2e+06"} 7 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="POST",le="4e+06"} 7 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="POST",le="8e+06"} 7 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="POST",le="+Inf"} 7 +apiserver_request_latencies_sum{resource="nodes",scope="cluster",subresource="",verb="POST"} 88537 +apiserver_request_latencies_count{resource="nodes",scope="cluster",subresource="",verb="POST"} 7 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="PUT",le="125000"} 15 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="PUT",le="250000"} 15 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="PUT",le="500000"} 15 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="PUT",le="1e+06"} 15 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="PUT",le="2e+06"} 15 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="PUT",le="4e+06"} 15 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="PUT",le="8e+06"} 15 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="PUT",le="+Inf"} 15 +apiserver_request_latencies_sum{resource="nodes",scope="cluster",subresource="",verb="PUT"} 213078 +apiserver_request_latencies_count{resource="nodes",scope="cluster",subresource="",verb="PUT"} 15 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="WATCH",le="125000"} 0 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="WATCH",le="250000"} 0 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="WATCH",le="500000"} 0 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="WATCH",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="WATCH",le="2e+06"} 1 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="WATCH",le="4e+06"} 1 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="WATCH",le="8e+06"} 2 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="",verb="WATCH",le="+Inf"} 17686 +apiserver_request_latencies_sum{resource="nodes",scope="cluster",subresource="",verb="WATCH"} 7.918564532837e+12 +apiserver_request_latencies_count{resource="nodes",scope="cluster",subresource="",verb="WATCH"} 17686 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="status",verb="PATCH",le="125000"} 230033 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="status",verb="PATCH",le="250000"} 230085 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="status",verb="PATCH",le="500000"} 230091 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="status",verb="PATCH",le="1e+06"} 230094 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="status",verb="PATCH",le="2e+06"} 230098 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="status",verb="PATCH",le="4e+06"} 230098 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="status",verb="PATCH",le="8e+06"} 230098 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="status",verb="PATCH",le="+Inf"} 230098 +apiserver_request_latencies_sum{resource="nodes",scope="cluster",subresource="status",verb="PATCH"} 2.438676783e+09 +apiserver_request_latencies_count{resource="nodes",scope="cluster",subresource="status",verb="PATCH"} 230098 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="status",verb="PUT",le="125000"} 9 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="status",verb="PUT",le="250000"} 9 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="status",verb="PUT",le="500000"} 9 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="status",verb="PUT",le="1e+06"} 9 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="status",verb="PUT",le="2e+06"} 9 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="status",verb="PUT",le="4e+06"} 9 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="status",verb="PUT",le="8e+06"} 9 +apiserver_request_latencies_bucket{resource="nodes",scope="cluster",subresource="status",verb="PUT",le="+Inf"} 9 +apiserver_request_latencies_sum{resource="nodes",scope="cluster",subresource="status",verb="PUT"} 99447 +apiserver_request_latencies_count{resource="nodes",scope="cluster",subresource="status",verb="PUT"} 9 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="LIST",le="125000"} 711 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="LIST",le="250000"} 711 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="LIST",le="500000"} 711 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="LIST",le="1e+06"} 711 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="LIST",le="2e+06"} 711 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="LIST",le="4e+06"} 711 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="LIST",le="8e+06"} 711 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="LIST",le="+Inf"} 711 +apiserver_request_latencies_sum{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="LIST"} 1.286718e+06 +apiserver_request_latencies_count{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="LIST"} 711 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="WATCH",le="125000"} 0 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="WATCH",le="250000"} 0 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="WATCH",le="500000"} 0 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="WATCH",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="WATCH",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="WATCH",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="WATCH",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="WATCH",le="+Inf"} 2949 +apiserver_request_latencies_sum{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="WATCH"} 1.3190451046e+12 +apiserver_request_latencies_count{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="WATCH"} 2949 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="GET",le="125000"} 8712 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="GET",le="250000"} 8712 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="GET",le="500000"} 8712 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="GET",le="1e+06"} 8712 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="GET",le="2e+06"} 8712 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="GET",le="4e+06"} 8712 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="GET",le="8e+06"} 8712 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="GET",le="+Inf"} 8712 +apiserver_request_latencies_sum{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="GET"} 1.608315e+07 +apiserver_request_latencies_count{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="GET"} 8712 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="LIST",le="125000"} 21997 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="LIST",le="250000"} 21997 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="LIST",le="500000"} 21997 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="LIST",le="1e+06"} 21997 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="LIST",le="2e+06"} 21997 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="LIST",le="4e+06"} 21997 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="LIST",le="8e+06"} 21997 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="LIST",le="+Inf"} 21997 +apiserver_request_latencies_sum{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="LIST"} 2.9995607e+07 +apiserver_request_latencies_count{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="LIST"} 21997 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="POST",le="125000"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="POST",le="250000"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="POST",le="500000"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="POST",le="1e+06"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="POST",le="2e+06"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="POST",le="4e+06"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="POST",le="8e+06"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="POST",le="+Inf"} 1 +apiserver_request_latencies_sum{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="POST"} 15199 +apiserver_request_latencies_count{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="POST"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="PUT",le="125000"} 2 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="PUT",le="250000"} 2 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="PUT",le="500000"} 2 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="PUT",le="1e+06"} 2 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="PUT",le="2e+06"} 2 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="PUT",le="4e+06"} 2 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="PUT",le="8e+06"} 2 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="PUT",le="+Inf"} 2 +apiserver_request_latencies_sum{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="PUT"} 6185 +apiserver_request_latencies_count{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="PUT"} 2 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="status",verb="PUT",le="125000"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="status",verb="PUT",le="250000"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="status",verb="PUT",le="500000"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="status",verb="PUT",le="1e+06"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="status",verb="PUT",le="2e+06"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="status",verb="PUT",le="4e+06"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="status",verb="PUT",le="8e+06"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="status",verb="PUT",le="+Inf"} 1 +apiserver_request_latencies_sum{resource="persistentvolumeclaims",scope="namespace",subresource="status",verb="PUT"} 2419 +apiserver_request_latencies_count{resource="persistentvolumeclaims",scope="namespace",subresource="status",verb="PUT"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="GET",le="125000"} 8712 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="GET",le="250000"} 8712 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="GET",le="500000"} 8712 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="GET",le="1e+06"} 8712 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="GET",le="2e+06"} 8712 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="GET",le="4e+06"} 8712 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="GET",le="8e+06"} 8712 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="GET",le="+Inf"} 8712 +apiserver_request_latencies_sum{resource="persistentvolumes",scope="cluster",subresource="",verb="GET"} 9.535813e+06 +apiserver_request_latencies_count{resource="persistentvolumes",scope="cluster",subresource="",verb="GET"} 8712 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="LIST",le="125000"} 22716 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="LIST",le="250000"} 22716 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="LIST",le="500000"} 22716 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="LIST",le="1e+06"} 22716 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="LIST",le="2e+06"} 22716 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="LIST",le="4e+06"} 22717 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="LIST",le="8e+06"} 22717 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="LIST",le="+Inf"} 22717 +apiserver_request_latencies_sum{resource="persistentvolumes",scope="cluster",subresource="",verb="LIST"} 3.3164863e+07 +apiserver_request_latencies_count{resource="persistentvolumes",scope="cluster",subresource="",verb="LIST"} 22717 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="POST",le="125000"} 0 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="POST",le="250000"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="POST",le="500000"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="POST",le="1e+06"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="POST",le="2e+06"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="POST",le="4e+06"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="POST",le="8e+06"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="POST",le="+Inf"} 1 +apiserver_request_latencies_sum{resource="persistentvolumes",scope="cluster",subresource="",verb="POST"} 138053 +apiserver_request_latencies_count{resource="persistentvolumes",scope="cluster",subresource="",verb="POST"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="WATCH",le="125000"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="WATCH",le="250000"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="WATCH",le="500000"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="WATCH",le="1e+06"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="WATCH",le="2e+06"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="WATCH",le="4e+06"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="WATCH",le="8e+06"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="WATCH",le="+Inf"} 4406 +apiserver_request_latencies_sum{resource="persistentvolumes",scope="cluster",subresource="",verb="WATCH"} 1.979024165553e+12 +apiserver_request_latencies_count{resource="persistentvolumes",scope="cluster",subresource="",verb="WATCH"} 4406 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="status",verb="PUT",le="125000"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="status",verb="PUT",le="250000"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="status",verb="PUT",le="500000"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="status",verb="PUT",le="1e+06"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="status",verb="PUT",le="2e+06"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="status",verb="PUT",le="4e+06"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="status",verb="PUT",le="8e+06"} 1 +apiserver_request_latencies_bucket{resource="persistentvolumes",scope="cluster",subresource="status",verb="PUT",le="+Inf"} 1 +apiserver_request_latencies_sum{resource="persistentvolumes",scope="cluster",subresource="status",verb="PUT"} 3500 +apiserver_request_latencies_count{resource="persistentvolumes",scope="cluster",subresource="status",verb="PUT"} 1 +apiserver_request_latencies_bucket{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="LIST",le="125000"} 710 +apiserver_request_latencies_bucket{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="LIST",le="250000"} 710 +apiserver_request_latencies_bucket{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="LIST",le="500000"} 710 +apiserver_request_latencies_bucket{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="LIST",le="1e+06"} 710 +apiserver_request_latencies_bucket{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="LIST",le="2e+06"} 710 +apiserver_request_latencies_bucket{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="LIST",le="4e+06"} 710 +apiserver_request_latencies_bucket{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="LIST",le="8e+06"} 710 +apiserver_request_latencies_bucket{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="LIST",le="+Inf"} 710 +apiserver_request_latencies_sum{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="LIST"} 1.012232e+06 +apiserver_request_latencies_count{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="LIST"} 710 +apiserver_request_latencies_bucket{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="WATCH",le="125000"} 0 +apiserver_request_latencies_bucket{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="WATCH",le="250000"} 0 +apiserver_request_latencies_bucket{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="WATCH",le="500000"} 0 +apiserver_request_latencies_bucket{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="WATCH",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="WATCH",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="WATCH",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="WATCH",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="WATCH",le="+Inf"} 1472 +apiserver_request_latencies_sum{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="WATCH"} 6.59755004696e+11 +apiserver_request_latencies_count{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="WATCH"} 1472 +apiserver_request_latencies_bucket{resource="pods",scope="cluster",subresource="",verb="LIST",le="125000"} 7259 +apiserver_request_latencies_bucket{resource="pods",scope="cluster",subresource="",verb="LIST",le="250000"} 7275 +apiserver_request_latencies_bucket{resource="pods",scope="cluster",subresource="",verb="LIST",le="500000"} 7284 +apiserver_request_latencies_bucket{resource="pods",scope="cluster",subresource="",verb="LIST",le="1e+06"} 7285 +apiserver_request_latencies_bucket{resource="pods",scope="cluster",subresource="",verb="LIST",le="2e+06"} 7285 +apiserver_request_latencies_bucket{resource="pods",scope="cluster",subresource="",verb="LIST",le="4e+06"} 7285 +apiserver_request_latencies_bucket{resource="pods",scope="cluster",subresource="",verb="LIST",le="8e+06"} 7285 +apiserver_request_latencies_bucket{resource="pods",scope="cluster",subresource="",verb="LIST",le="+Inf"} 7286 +apiserver_request_latencies_sum{resource="pods",scope="cluster",subresource="",verb="LIST"} 7.900688e+07 +apiserver_request_latencies_count{resource="pods",scope="cluster",subresource="",verb="LIST"} 7286 +apiserver_request_latencies_bucket{resource="pods",scope="cluster",subresource="",verb="WATCH",le="125000"} 0 +apiserver_request_latencies_bucket{resource="pods",scope="cluster",subresource="",verb="WATCH",le="250000"} 0 +apiserver_request_latencies_bucket{resource="pods",scope="cluster",subresource="",verb="WATCH",le="500000"} 0 +apiserver_request_latencies_bucket{resource="pods",scope="cluster",subresource="",verb="WATCH",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="pods",scope="cluster",subresource="",verb="WATCH",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="pods",scope="cluster",subresource="",verb="WATCH",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="pods",scope="cluster",subresource="",verb="WATCH",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="pods",scope="cluster",subresource="",verb="WATCH",le="+Inf"} 17332 +apiserver_request_latencies_sum{resource="pods",scope="cluster",subresource="",verb="WATCH"} 1.0380663647634e+13 +apiserver_request_latencies_count{resource="pods",scope="cluster",subresource="",verb="WATCH"} 17332 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="DELETE",le="125000"} 167 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="DELETE",le="250000"} 168 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="DELETE",le="500000"} 168 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="DELETE",le="1e+06"} 168 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="DELETE",le="2e+06"} 168 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="DELETE",le="4e+06"} 168 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="DELETE",le="8e+06"} 168 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="DELETE",le="+Inf"} 168 +apiserver_request_latencies_sum{resource="pods",scope="namespace",subresource="",verb="DELETE"} 3.433972e+06 +apiserver_request_latencies_count{resource="pods",scope="namespace",subresource="",verb="DELETE"} 168 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="GET",le="125000"} 66815 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="GET",le="250000"} 66815 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="GET",le="500000"} 66815 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="GET",le="1e+06"} 66815 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="GET",le="2e+06"} 66815 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="GET",le="4e+06"} 66815 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="GET",le="8e+06"} 66815 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="GET",le="+Inf"} 66815 +apiserver_request_latencies_sum{resource="pods",scope="namespace",subresource="",verb="GET"} 9.3487208e+07 +apiserver_request_latencies_count{resource="pods",scope="namespace",subresource="",verb="GET"} 66815 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="LIST",le="125000"} 36411 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="LIST",le="250000"} 36412 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="LIST",le="500000"} 36421 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="LIST",le="1e+06"} 36425 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="LIST",le="2e+06"} 36425 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="LIST",le="4e+06"} 36425 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="LIST",le="8e+06"} 36425 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="LIST",le="+Inf"} 36425 +apiserver_request_latencies_sum{resource="pods",scope="namespace",subresource="",verb="LIST"} 1.53386026e+08 +apiserver_request_latencies_count{resource="pods",scope="namespace",subresource="",verb="LIST"} 36425 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="PATCH",le="125000"} 36 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="PATCH",le="250000"} 36 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="PATCH",le="500000"} 36 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="PATCH",le="1e+06"} 36 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="PATCH",le="2e+06"} 36 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="PATCH",le="4e+06"} 36 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="PATCH",le="8e+06"} 36 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="PATCH",le="+Inf"} 36 +apiserver_request_latencies_sum{resource="pods",scope="namespace",subresource="",verb="PATCH"} 900579 +apiserver_request_latencies_count{resource="pods",scope="namespace",subresource="",verb="PATCH"} 36 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="POST",le="125000"} 202 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="POST",le="250000"} 203 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="POST",le="500000"} 203 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="POST",le="1e+06"} 203 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="POST",le="2e+06"} 203 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="POST",le="4e+06"} 203 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="POST",le="8e+06"} 203 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="POST",le="+Inf"} 203 +apiserver_request_latencies_sum{resource="pods",scope="namespace",subresource="",verb="POST"} 2.941687e+06 +apiserver_request_latencies_count{resource="pods",scope="namespace",subresource="",verb="POST"} 203 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="WATCH",le="125000"} 0 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="WATCH",le="250000"} 0 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="WATCH",le="500000"} 0 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="WATCH",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="WATCH",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="WATCH",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="WATCH",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="",verb="WATCH",le="+Inf"} 1468 +apiserver_request_latencies_sum{resource="pods",scope="namespace",subresource="",verb="WATCH"} 6.60607341894e+11 +apiserver_request_latencies_count{resource="pods",scope="namespace",subresource="",verb="WATCH"} 1468 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="binding",verb="POST",le="125000"} 90 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="binding",verb="POST",le="250000"} 91 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="binding",verb="POST",le="500000"} 91 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="binding",verb="POST",le="1e+06"} 91 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="binding",verb="POST",le="2e+06"} 91 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="binding",verb="POST",le="4e+06"} 91 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="binding",verb="POST",le="8e+06"} 91 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="binding",verb="POST",le="+Inf"} 91 +apiserver_request_latencies_sum{resource="pods",scope="namespace",subresource="binding",verb="POST"} 1.467975e+06 +apiserver_request_latencies_count{resource="pods",scope="namespace",subresource="binding",verb="POST"} 91 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="exec",verb="CONNECT",le="125000"} 0 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="exec",verb="CONNECT",le="250000"} 0 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="exec",verb="CONNECT",le="500000"} 0 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="exec",verb="CONNECT",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="exec",verb="CONNECT",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="exec",verb="CONNECT",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="exec",verb="CONNECT",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="exec",verb="CONNECT",le="+Inf"} 1 +apiserver_request_latencies_sum{resource="pods",scope="namespace",subresource="exec",verb="CONNECT"} 6.1438916e+07 +apiserver_request_latencies_count{resource="pods",scope="namespace",subresource="exec",verb="CONNECT"} 1 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="log",verb="CONNECT",le="125000"} 0 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="log",verb="CONNECT",le="250000"} 0 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="log",verb="CONNECT",le="500000"} 0 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="log",verb="CONNECT",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="log",verb="CONNECT",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="log",verb="CONNECT",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="log",verb="CONNECT",le="8e+06"} 1 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="log",verb="CONNECT",le="+Inf"} 15 +apiserver_request_latencies_sum{resource="pods",scope="namespace",subresource="log",verb="CONNECT"} 9.995258313e+09 +apiserver_request_latencies_count{resource="pods",scope="namespace",subresource="log",verb="CONNECT"} 15 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="status",verb="PUT",le="125000"} 715 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="status",verb="PUT",le="250000"} 717 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="status",verb="PUT",le="500000"} 717 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="status",verb="PUT",le="1e+06"} 717 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="status",verb="PUT",le="2e+06"} 717 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="status",verb="PUT",le="4e+06"} 717 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="status",verb="PUT",le="8e+06"} 717 +apiserver_request_latencies_bucket{resource="pods",scope="namespace",subresource="status",verb="PUT",le="+Inf"} 717 +apiserver_request_latencies_sum{resource="pods",scope="namespace",subresource="status",verb="PUT"} 6.031823e+06 +apiserver_request_latencies_count{resource="pods",scope="namespace",subresource="status",verb="PUT"} 717 +apiserver_request_latencies_bucket{resource="podsecuritypolicies",scope="cluster",subresource="",verb="LIST",le="125000"} 1 +apiserver_request_latencies_bucket{resource="podsecuritypolicies",scope="cluster",subresource="",verb="LIST",le="250000"} 1 +apiserver_request_latencies_bucket{resource="podsecuritypolicies",scope="cluster",subresource="",verb="LIST",le="500000"} 1 +apiserver_request_latencies_bucket{resource="podsecuritypolicies",scope="cluster",subresource="",verb="LIST",le="1e+06"} 1 +apiserver_request_latencies_bucket{resource="podsecuritypolicies",scope="cluster",subresource="",verb="LIST",le="2e+06"} 1 +apiserver_request_latencies_bucket{resource="podsecuritypolicies",scope="cluster",subresource="",verb="LIST",le="4e+06"} 1 +apiserver_request_latencies_bucket{resource="podsecuritypolicies",scope="cluster",subresource="",verb="LIST",le="8e+06"} 1 +apiserver_request_latencies_bucket{resource="podsecuritypolicies",scope="cluster",subresource="",verb="LIST",le="+Inf"} 1 +apiserver_request_latencies_sum{resource="podsecuritypolicies",scope="cluster",subresource="",verb="LIST"} 242 +apiserver_request_latencies_count{resource="podsecuritypolicies",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_latencies_bucket{resource="podsecuritypolicies",scope="cluster",subresource="",verb="WATCH",le="125000"} 0 +apiserver_request_latencies_bucket{resource="podsecuritypolicies",scope="cluster",subresource="",verb="WATCH",le="250000"} 0 +apiserver_request_latencies_bucket{resource="podsecuritypolicies",scope="cluster",subresource="",verb="WATCH",le="500000"} 0 +apiserver_request_latencies_bucket{resource="podsecuritypolicies",scope="cluster",subresource="",verb="WATCH",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="podsecuritypolicies",scope="cluster",subresource="",verb="WATCH",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="podsecuritypolicies",scope="cluster",subresource="",verb="WATCH",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="podsecuritypolicies",scope="cluster",subresource="",verb="WATCH",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="podsecuritypolicies",scope="cluster",subresource="",verb="WATCH",le="+Inf"} 1472 +apiserver_request_latencies_sum{resource="podsecuritypolicies",scope="cluster",subresource="",verb="WATCH"} 6.59545988637e+11 +apiserver_request_latencies_count{resource="podsecuritypolicies",scope="cluster",subresource="",verb="WATCH"} 1472 +apiserver_request_latencies_bucket{resource="podtemplates",scope="cluster",subresource="",verb="LIST",le="125000"} 710 +apiserver_request_latencies_bucket{resource="podtemplates",scope="cluster",subresource="",verb="LIST",le="250000"} 710 +apiserver_request_latencies_bucket{resource="podtemplates",scope="cluster",subresource="",verb="LIST",le="500000"} 710 +apiserver_request_latencies_bucket{resource="podtemplates",scope="cluster",subresource="",verb="LIST",le="1e+06"} 710 +apiserver_request_latencies_bucket{resource="podtemplates",scope="cluster",subresource="",verb="LIST",le="2e+06"} 710 +apiserver_request_latencies_bucket{resource="podtemplates",scope="cluster",subresource="",verb="LIST",le="4e+06"} 710 +apiserver_request_latencies_bucket{resource="podtemplates",scope="cluster",subresource="",verb="LIST",le="8e+06"} 710 +apiserver_request_latencies_bucket{resource="podtemplates",scope="cluster",subresource="",verb="LIST",le="+Inf"} 710 +apiserver_request_latencies_sum{resource="podtemplates",scope="cluster",subresource="",verb="LIST"} 1.057701e+06 +apiserver_request_latencies_count{resource="podtemplates",scope="cluster",subresource="",verb="LIST"} 710 +apiserver_request_latencies_bucket{resource="podtemplates",scope="cluster",subresource="",verb="WATCH",le="125000"} 0 +apiserver_request_latencies_bucket{resource="podtemplates",scope="cluster",subresource="",verb="WATCH",le="250000"} 0 +apiserver_request_latencies_bucket{resource="podtemplates",scope="cluster",subresource="",verb="WATCH",le="500000"} 0 +apiserver_request_latencies_bucket{resource="podtemplates",scope="cluster",subresource="",verb="WATCH",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="podtemplates",scope="cluster",subresource="",verb="WATCH",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="podtemplates",scope="cluster",subresource="",verb="WATCH",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="podtemplates",scope="cluster",subresource="",verb="WATCH",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="podtemplates",scope="cluster",subresource="",verb="WATCH",le="+Inf"} 1464 +apiserver_request_latencies_sum{resource="podtemplates",scope="cluster",subresource="",verb="WATCH"} 6.59859975068e+11 +apiserver_request_latencies_count{resource="podtemplates",scope="cluster",subresource="",verb="WATCH"} 1464 +apiserver_request_latencies_bucket{resource="replicasets",scope="cluster",subresource="",verb="LIST",le="125000"} 714 +apiserver_request_latencies_bucket{resource="replicasets",scope="cluster",subresource="",verb="LIST",le="250000"} 714 +apiserver_request_latencies_bucket{resource="replicasets",scope="cluster",subresource="",verb="LIST",le="500000"} 714 +apiserver_request_latencies_bucket{resource="replicasets",scope="cluster",subresource="",verb="LIST",le="1e+06"} 714 +apiserver_request_latencies_bucket{resource="replicasets",scope="cluster",subresource="",verb="LIST",le="2e+06"} 714 +apiserver_request_latencies_bucket{resource="replicasets",scope="cluster",subresource="",verb="LIST",le="4e+06"} 714 +apiserver_request_latencies_bucket{resource="replicasets",scope="cluster",subresource="",verb="LIST",le="8e+06"} 714 +apiserver_request_latencies_bucket{resource="replicasets",scope="cluster",subresource="",verb="LIST",le="+Inf"} 714 +apiserver_request_latencies_sum{resource="replicasets",scope="cluster",subresource="",verb="LIST"} 2.514414e+06 +apiserver_request_latencies_count{resource="replicasets",scope="cluster",subresource="",verb="LIST"} 714 +apiserver_request_latencies_bucket{resource="replicasets",scope="cluster",subresource="",verb="WATCH",le="125000"} 0 +apiserver_request_latencies_bucket{resource="replicasets",scope="cluster",subresource="",verb="WATCH",le="250000"} 0 +apiserver_request_latencies_bucket{resource="replicasets",scope="cluster",subresource="",verb="WATCH",le="500000"} 0 +apiserver_request_latencies_bucket{resource="replicasets",scope="cluster",subresource="",verb="WATCH",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="replicasets",scope="cluster",subresource="",verb="WATCH",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="replicasets",scope="cluster",subresource="",verb="WATCH",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="replicasets",scope="cluster",subresource="",verb="WATCH",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="replicasets",scope="cluster",subresource="",verb="WATCH",le="+Inf"} 5876 +apiserver_request_latencies_sum{resource="replicasets",scope="cluster",subresource="",verb="WATCH"} 2.637626661333e+12 +apiserver_request_latencies_count{resource="replicasets",scope="cluster",subresource="",verb="WATCH"} 5876 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="DELETE",le="125000"} 15 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="DELETE",le="250000"} 15 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="DELETE",le="500000"} 15 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="DELETE",le="1e+06"} 15 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="DELETE",le="2e+06"} 15 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="DELETE",le="4e+06"} 15 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="DELETE",le="8e+06"} 15 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="DELETE",le="+Inf"} 15 +apiserver_request_latencies_sum{resource="replicasets",scope="namespace",subresource="",verb="DELETE"} 171645 +apiserver_request_latencies_count{resource="replicasets",scope="namespace",subresource="",verb="DELETE"} 15 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="GET",le="125000"} 54 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="GET",le="250000"} 55 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="GET",le="500000"} 55 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="GET",le="1e+06"} 55 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="GET",le="2e+06"} 55 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="GET",le="4e+06"} 55 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="GET",le="8e+06"} 55 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="GET",le="+Inf"} 55 +apiserver_request_latencies_sum{resource="replicasets",scope="namespace",subresource="",verb="GET"} 744329 +apiserver_request_latencies_count{resource="replicasets",scope="namespace",subresource="",verb="GET"} 55 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="LIST",le="125000"} 22013 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="LIST",le="250000"} 22013 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="LIST",le="500000"} 22013 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="LIST",le="1e+06"} 22013 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="LIST",le="2e+06"} 22013 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="LIST",le="4e+06"} 22013 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="LIST",le="8e+06"} 22013 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="LIST",le="+Inf"} 22013 +apiserver_request_latencies_sum{resource="replicasets",scope="namespace",subresource="",verb="LIST"} 4.9092249e+07 +apiserver_request_latencies_count{resource="replicasets",scope="namespace",subresource="",verb="LIST"} 22013 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="POST",le="125000"} 27 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="POST",le="250000"} 27 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="POST",le="500000"} 27 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="POST",le="1e+06"} 27 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="POST",le="2e+06"} 27 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="POST",le="4e+06"} 27 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="POST",le="8e+06"} 27 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="POST",le="+Inf"} 27 +apiserver_request_latencies_sum{resource="replicasets",scope="namespace",subresource="",verb="POST"} 149618 +apiserver_request_latencies_count{resource="replicasets",scope="namespace",subresource="",verb="POST"} 27 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="PUT",le="125000"} 38 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="PUT",le="250000"} 38 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="PUT",le="500000"} 38 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="PUT",le="1e+06"} 38 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="PUT",le="2e+06"} 38 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="PUT",le="4e+06"} 38 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="PUT",le="8e+06"} 38 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="",verb="PUT",le="+Inf"} 38 +apiserver_request_latencies_sum{resource="replicasets",scope="namespace",subresource="",verb="PUT"} 390430 +apiserver_request_latencies_count{resource="replicasets",scope="namespace",subresource="",verb="PUT"} 38 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="status",verb="PUT",le="125000"} 291 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="status",verb="PUT",le="250000"} 293 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="status",verb="PUT",le="500000"} 293 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="status",verb="PUT",le="1e+06"} 293 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="status",verb="PUT",le="2e+06"} 293 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="status",verb="PUT",le="4e+06"} 293 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="status",verb="PUT",le="8e+06"} 293 +apiserver_request_latencies_bucket{resource="replicasets",scope="namespace",subresource="status",verb="PUT",le="+Inf"} 293 +apiserver_request_latencies_sum{resource="replicasets",scope="namespace",subresource="status",verb="PUT"} 4.833955e+06 +apiserver_request_latencies_count{resource="replicasets",scope="namespace",subresource="status",verb="PUT"} 293 +apiserver_request_latencies_bucket{resource="replicationcontrollers",scope="cluster",subresource="",verb="LIST",le="125000"} 713 +apiserver_request_latencies_bucket{resource="replicationcontrollers",scope="cluster",subresource="",verb="LIST",le="250000"} 713 +apiserver_request_latencies_bucket{resource="replicationcontrollers",scope="cluster",subresource="",verb="LIST",le="500000"} 713 +apiserver_request_latencies_bucket{resource="replicationcontrollers",scope="cluster",subresource="",verb="LIST",le="1e+06"} 713 +apiserver_request_latencies_bucket{resource="replicationcontrollers",scope="cluster",subresource="",verb="LIST",le="2e+06"} 713 +apiserver_request_latencies_bucket{resource="replicationcontrollers",scope="cluster",subresource="",verb="LIST",le="4e+06"} 713 +apiserver_request_latencies_bucket{resource="replicationcontrollers",scope="cluster",subresource="",verb="LIST",le="8e+06"} 713 +apiserver_request_latencies_bucket{resource="replicationcontrollers",scope="cluster",subresource="",verb="LIST",le="+Inf"} 713 +apiserver_request_latencies_sum{resource="replicationcontrollers",scope="cluster",subresource="",verb="LIST"} 1.104285e+06 +apiserver_request_latencies_count{resource="replicationcontrollers",scope="cluster",subresource="",verb="LIST"} 713 +apiserver_request_latencies_bucket{resource="replicationcontrollers",scope="cluster",subresource="",verb="WATCH",le="125000"} 0 +apiserver_request_latencies_bucket{resource="replicationcontrollers",scope="cluster",subresource="",verb="WATCH",le="250000"} 0 +apiserver_request_latencies_bucket{resource="replicationcontrollers",scope="cluster",subresource="",verb="WATCH",le="500000"} 0 +apiserver_request_latencies_bucket{resource="replicationcontrollers",scope="cluster",subresource="",verb="WATCH",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="replicationcontrollers",scope="cluster",subresource="",verb="WATCH",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="replicationcontrollers",scope="cluster",subresource="",verb="WATCH",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="replicationcontrollers",scope="cluster",subresource="",verb="WATCH",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="replicationcontrollers",scope="cluster",subresource="",verb="WATCH",le="+Inf"} 4414 +apiserver_request_latencies_sum{resource="replicationcontrollers",scope="cluster",subresource="",verb="WATCH"} 1.978079922988e+12 +apiserver_request_latencies_count{resource="replicationcontrollers",scope="cluster",subresource="",verb="WATCH"} 4414 +apiserver_request_latencies_bucket{resource="replicationcontrollers",scope="namespace",subresource="",verb="LIST",le="125000"} 21997 +apiserver_request_latencies_bucket{resource="replicationcontrollers",scope="namespace",subresource="",verb="LIST",le="250000"} 21997 +apiserver_request_latencies_bucket{resource="replicationcontrollers",scope="namespace",subresource="",verb="LIST",le="500000"} 21997 +apiserver_request_latencies_bucket{resource="replicationcontrollers",scope="namespace",subresource="",verb="LIST",le="1e+06"} 21997 +apiserver_request_latencies_bucket{resource="replicationcontrollers",scope="namespace",subresource="",verb="LIST",le="2e+06"} 21997 +apiserver_request_latencies_bucket{resource="replicationcontrollers",scope="namespace",subresource="",verb="LIST",le="4e+06"} 21997 +apiserver_request_latencies_bucket{resource="replicationcontrollers",scope="namespace",subresource="",verb="LIST",le="8e+06"} 21997 +apiserver_request_latencies_bucket{resource="replicationcontrollers",scope="namespace",subresource="",verb="LIST",le="+Inf"} 21997 +apiserver_request_latencies_sum{resource="replicationcontrollers",scope="namespace",subresource="",verb="LIST"} 3.1133138e+07 +apiserver_request_latencies_count{resource="replicationcontrollers",scope="namespace",subresource="",verb="LIST"} 21997 +apiserver_request_latencies_bucket{resource="resourcequotas",scope="cluster",subresource="",verb="LIST",le="125000"} 3 +apiserver_request_latencies_bucket{resource="resourcequotas",scope="cluster",subresource="",verb="LIST",le="250000"} 3 +apiserver_request_latencies_bucket{resource="resourcequotas",scope="cluster",subresource="",verb="LIST",le="500000"} 3 +apiserver_request_latencies_bucket{resource="resourcequotas",scope="cluster",subresource="",verb="LIST",le="1e+06"} 4 +apiserver_request_latencies_bucket{resource="resourcequotas",scope="cluster",subresource="",verb="LIST",le="2e+06"} 4 +apiserver_request_latencies_bucket{resource="resourcequotas",scope="cluster",subresource="",verb="LIST",le="4e+06"} 4 +apiserver_request_latencies_bucket{resource="resourcequotas",scope="cluster",subresource="",verb="LIST",le="8e+06"} 4 +apiserver_request_latencies_bucket{resource="resourcequotas",scope="cluster",subresource="",verb="LIST",le="+Inf"} 4 +apiserver_request_latencies_sum{resource="resourcequotas",scope="cluster",subresource="",verb="LIST"} 695137 +apiserver_request_latencies_count{resource="resourcequotas",scope="cluster",subresource="",verb="LIST"} 4 +apiserver_request_latencies_bucket{resource="resourcequotas",scope="cluster",subresource="",verb="WATCH",le="125000"} 0 +apiserver_request_latencies_bucket{resource="resourcequotas",scope="cluster",subresource="",verb="WATCH",le="250000"} 0 +apiserver_request_latencies_bucket{resource="resourcequotas",scope="cluster",subresource="",verb="WATCH",le="500000"} 0 +apiserver_request_latencies_bucket{resource="resourcequotas",scope="cluster",subresource="",verb="WATCH",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="resourcequotas",scope="cluster",subresource="",verb="WATCH",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="resourcequotas",scope="cluster",subresource="",verb="WATCH",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="resourcequotas",scope="cluster",subresource="",verb="WATCH",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="resourcequotas",scope="cluster",subresource="",verb="WATCH",le="+Inf"} 4436 +apiserver_request_latencies_sum{resource="resourcequotas",scope="cluster",subresource="",verb="WATCH"} 1.97850748629e+12 +apiserver_request_latencies_count{resource="resourcequotas",scope="cluster",subresource="",verb="WATCH"} 4436 +apiserver_request_latencies_bucket{resource="resourcequotas",scope="namespace",subresource="",verb="LIST",le="125000"} 11023 +apiserver_request_latencies_bucket{resource="resourcequotas",scope="namespace",subresource="",verb="LIST",le="250000"} 11023 +apiserver_request_latencies_bucket{resource="resourcequotas",scope="namespace",subresource="",verb="LIST",le="500000"} 11023 +apiserver_request_latencies_bucket{resource="resourcequotas",scope="namespace",subresource="",verb="LIST",le="1e+06"} 11023 +apiserver_request_latencies_bucket{resource="resourcequotas",scope="namespace",subresource="",verb="LIST",le="2e+06"} 11023 +apiserver_request_latencies_bucket{resource="resourcequotas",scope="namespace",subresource="",verb="LIST",le="4e+06"} 11023 +apiserver_request_latencies_bucket{resource="resourcequotas",scope="namespace",subresource="",verb="LIST",le="8e+06"} 11023 +apiserver_request_latencies_bucket{resource="resourcequotas",scope="namespace",subresource="",verb="LIST",le="+Inf"} 11023 +apiserver_request_latencies_sum{resource="resourcequotas",scope="namespace",subresource="",verb="LIST"} 1.541641e+07 +apiserver_request_latencies_count{resource="resourcequotas",scope="namespace",subresource="",verb="LIST"} 11023 +apiserver_request_latencies_bucket{resource="rolebindings",scope="cluster",subresource="",verb="LIST",le="125000"} 1 +apiserver_request_latencies_bucket{resource="rolebindings",scope="cluster",subresource="",verb="LIST",le="250000"} 1 +apiserver_request_latencies_bucket{resource="rolebindings",scope="cluster",subresource="",verb="LIST",le="500000"} 1 +apiserver_request_latencies_bucket{resource="rolebindings",scope="cluster",subresource="",verb="LIST",le="1e+06"} 1 +apiserver_request_latencies_bucket{resource="rolebindings",scope="cluster",subresource="",verb="LIST",le="2e+06"} 2 +apiserver_request_latencies_bucket{resource="rolebindings",scope="cluster",subresource="",verb="LIST",le="4e+06"} 2 +apiserver_request_latencies_bucket{resource="rolebindings",scope="cluster",subresource="",verb="LIST",le="8e+06"} 2 +apiserver_request_latencies_bucket{resource="rolebindings",scope="cluster",subresource="",verb="LIST",le="+Inf"} 2 +apiserver_request_latencies_sum{resource="rolebindings",scope="cluster",subresource="",verb="LIST"} 1.761331e+06 +apiserver_request_latencies_count{resource="rolebindings",scope="cluster",subresource="",verb="LIST"} 2 +apiserver_request_latencies_bucket{resource="rolebindings",scope="cluster",subresource="",verb="WATCH",le="125000"} 0 +apiserver_request_latencies_bucket{resource="rolebindings",scope="cluster",subresource="",verb="WATCH",le="250000"} 0 +apiserver_request_latencies_bucket{resource="rolebindings",scope="cluster",subresource="",verb="WATCH",le="500000"} 0 +apiserver_request_latencies_bucket{resource="rolebindings",scope="cluster",subresource="",verb="WATCH",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="rolebindings",scope="cluster",subresource="",verb="WATCH",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="rolebindings",scope="cluster",subresource="",verb="WATCH",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="rolebindings",scope="cluster",subresource="",verb="WATCH",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="rolebindings",scope="cluster",subresource="",verb="WATCH",le="+Inf"} 2926 +apiserver_request_latencies_sum{resource="rolebindings",scope="cluster",subresource="",verb="WATCH"} 1.319580992038e+12 +apiserver_request_latencies_count{resource="rolebindings",scope="cluster",subresource="",verb="WATCH"} 2926 +apiserver_request_latencies_bucket{resource="rolebindings",scope="namespace",subresource="",verb="GET",le="125000"} 22003 +apiserver_request_latencies_bucket{resource="rolebindings",scope="namespace",subresource="",verb="GET",le="250000"} 22003 +apiserver_request_latencies_bucket{resource="rolebindings",scope="namespace",subresource="",verb="GET",le="500000"} 22003 +apiserver_request_latencies_bucket{resource="rolebindings",scope="namespace",subresource="",verb="GET",le="1e+06"} 22003 +apiserver_request_latencies_bucket{resource="rolebindings",scope="namespace",subresource="",verb="GET",le="2e+06"} 22003 +apiserver_request_latencies_bucket{resource="rolebindings",scope="namespace",subresource="",verb="GET",le="4e+06"} 22003 +apiserver_request_latencies_bucket{resource="rolebindings",scope="namespace",subresource="",verb="GET",le="8e+06"} 22003 +apiserver_request_latencies_bucket{resource="rolebindings",scope="namespace",subresource="",verb="GET",le="+Inf"} 22003 +apiserver_request_latencies_sum{resource="rolebindings",scope="namespace",subresource="",verb="GET"} 2.3608438e+07 +apiserver_request_latencies_count{resource="rolebindings",scope="namespace",subresource="",verb="GET"} 22003 +apiserver_request_latencies_bucket{resource="rolebindings",scope="namespace",subresource="",verb="PATCH",le="125000"} 21995 +apiserver_request_latencies_bucket{resource="rolebindings",scope="namespace",subresource="",verb="PATCH",le="250000"} 21995 +apiserver_request_latencies_bucket{resource="rolebindings",scope="namespace",subresource="",verb="PATCH",le="500000"} 21995 +apiserver_request_latencies_bucket{resource="rolebindings",scope="namespace",subresource="",verb="PATCH",le="1e+06"} 21995 +apiserver_request_latencies_bucket{resource="rolebindings",scope="namespace",subresource="",verb="PATCH",le="2e+06"} 21995 +apiserver_request_latencies_bucket{resource="rolebindings",scope="namespace",subresource="",verb="PATCH",le="4e+06"} 21995 +apiserver_request_latencies_bucket{resource="rolebindings",scope="namespace",subresource="",verb="PATCH",le="8e+06"} 21995 +apiserver_request_latencies_bucket{resource="rolebindings",scope="namespace",subresource="",verb="PATCH",le="+Inf"} 21995 +apiserver_request_latencies_sum{resource="rolebindings",scope="namespace",subresource="",verb="PATCH"} 4.1165835e+07 +apiserver_request_latencies_count{resource="rolebindings",scope="namespace",subresource="",verb="PATCH"} 21995 +apiserver_request_latencies_bucket{resource="rolebindings",scope="namespace",subresource="",verb="POST",le="125000"} 8 +apiserver_request_latencies_bucket{resource="rolebindings",scope="namespace",subresource="",verb="POST",le="250000"} 8 +apiserver_request_latencies_bucket{resource="rolebindings",scope="namespace",subresource="",verb="POST",le="500000"} 8 +apiserver_request_latencies_bucket{resource="rolebindings",scope="namespace",subresource="",verb="POST",le="1e+06"} 8 +apiserver_request_latencies_bucket{resource="rolebindings",scope="namespace",subresource="",verb="POST",le="2e+06"} 8 +apiserver_request_latencies_bucket{resource="rolebindings",scope="namespace",subresource="",verb="POST",le="4e+06"} 8 +apiserver_request_latencies_bucket{resource="rolebindings",scope="namespace",subresource="",verb="POST",le="8e+06"} 8 +apiserver_request_latencies_bucket{resource="rolebindings",scope="namespace",subresource="",verb="POST",le="+Inf"} 8 +apiserver_request_latencies_sum{resource="rolebindings",scope="namespace",subresource="",verb="POST"} 27618 +apiserver_request_latencies_count{resource="rolebindings",scope="namespace",subresource="",verb="POST"} 8 +apiserver_request_latencies_bucket{resource="roles",scope="cluster",subresource="",verb="LIST",le="125000"} 1 +apiserver_request_latencies_bucket{resource="roles",scope="cluster",subresource="",verb="LIST",le="250000"} 1 +apiserver_request_latencies_bucket{resource="roles",scope="cluster",subresource="",verb="LIST",le="500000"} 1 +apiserver_request_latencies_bucket{resource="roles",scope="cluster",subresource="",verb="LIST",le="1e+06"} 1 +apiserver_request_latencies_bucket{resource="roles",scope="cluster",subresource="",verb="LIST",le="2e+06"} 1 +apiserver_request_latencies_bucket{resource="roles",scope="cluster",subresource="",verb="LIST",le="4e+06"} 2 +apiserver_request_latencies_bucket{resource="roles",scope="cluster",subresource="",verb="LIST",le="8e+06"} 2 +apiserver_request_latencies_bucket{resource="roles",scope="cluster",subresource="",verb="LIST",le="+Inf"} 2 +apiserver_request_latencies_sum{resource="roles",scope="cluster",subresource="",verb="LIST"} 2.306787e+06 +apiserver_request_latencies_count{resource="roles",scope="cluster",subresource="",verb="LIST"} 2 +apiserver_request_latencies_bucket{resource="roles",scope="cluster",subresource="",verb="WATCH",le="125000"} 0 +apiserver_request_latencies_bucket{resource="roles",scope="cluster",subresource="",verb="WATCH",le="250000"} 0 +apiserver_request_latencies_bucket{resource="roles",scope="cluster",subresource="",verb="WATCH",le="500000"} 0 +apiserver_request_latencies_bucket{resource="roles",scope="cluster",subresource="",verb="WATCH",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="roles",scope="cluster",subresource="",verb="WATCH",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="roles",scope="cluster",subresource="",verb="WATCH",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="roles",scope="cluster",subresource="",verb="WATCH",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="roles",scope="cluster",subresource="",verb="WATCH",le="+Inf"} 2950 +apiserver_request_latencies_sum{resource="roles",scope="cluster",subresource="",verb="WATCH"} 1.319502090736e+12 +apiserver_request_latencies_count{resource="roles",scope="cluster",subresource="",verb="WATCH"} 2950 +apiserver_request_latencies_bucket{resource="roles",scope="namespace",subresource="",verb="GET",le="125000"} 22004 +apiserver_request_latencies_bucket{resource="roles",scope="namespace",subresource="",verb="GET",le="250000"} 22004 +apiserver_request_latencies_bucket{resource="roles",scope="namespace",subresource="",verb="GET",le="500000"} 22004 +apiserver_request_latencies_bucket{resource="roles",scope="namespace",subresource="",verb="GET",le="1e+06"} 22004 +apiserver_request_latencies_bucket{resource="roles",scope="namespace",subresource="",verb="GET",le="2e+06"} 22004 +apiserver_request_latencies_bucket{resource="roles",scope="namespace",subresource="",verb="GET",le="4e+06"} 22004 +apiserver_request_latencies_bucket{resource="roles",scope="namespace",subresource="",verb="GET",le="8e+06"} 22004 +apiserver_request_latencies_bucket{resource="roles",scope="namespace",subresource="",verb="GET",le="+Inf"} 22004 +apiserver_request_latencies_sum{resource="roles",scope="namespace",subresource="",verb="GET"} 2.3746483e+07 +apiserver_request_latencies_count{resource="roles",scope="namespace",subresource="",verb="GET"} 22004 +apiserver_request_latencies_bucket{resource="roles",scope="namespace",subresource="",verb="PATCH",le="125000"} 21995 +apiserver_request_latencies_bucket{resource="roles",scope="namespace",subresource="",verb="PATCH",le="250000"} 21995 +apiserver_request_latencies_bucket{resource="roles",scope="namespace",subresource="",verb="PATCH",le="500000"} 21995 +apiserver_request_latencies_bucket{resource="roles",scope="namespace",subresource="",verb="PATCH",le="1e+06"} 21995 +apiserver_request_latencies_bucket{resource="roles",scope="namespace",subresource="",verb="PATCH",le="2e+06"} 21995 +apiserver_request_latencies_bucket{resource="roles",scope="namespace",subresource="",verb="PATCH",le="4e+06"} 21995 +apiserver_request_latencies_bucket{resource="roles",scope="namespace",subresource="",verb="PATCH",le="8e+06"} 21995 +apiserver_request_latencies_bucket{resource="roles",scope="namespace",subresource="",verb="PATCH",le="+Inf"} 21995 +apiserver_request_latencies_sum{resource="roles",scope="namespace",subresource="",verb="PATCH"} 4.231979e+07 +apiserver_request_latencies_count{resource="roles",scope="namespace",subresource="",verb="PATCH"} 21995 +apiserver_request_latencies_bucket{resource="roles",scope="namespace",subresource="",verb="POST",le="125000"} 9 +apiserver_request_latencies_bucket{resource="roles",scope="namespace",subresource="",verb="POST",le="250000"} 9 +apiserver_request_latencies_bucket{resource="roles",scope="namespace",subresource="",verb="POST",le="500000"} 9 +apiserver_request_latencies_bucket{resource="roles",scope="namespace",subresource="",verb="POST",le="1e+06"} 9 +apiserver_request_latencies_bucket{resource="roles",scope="namespace",subresource="",verb="POST",le="2e+06"} 9 +apiserver_request_latencies_bucket{resource="roles",scope="namespace",subresource="",verb="POST",le="4e+06"} 9 +apiserver_request_latencies_bucket{resource="roles",scope="namespace",subresource="",verb="POST",le="8e+06"} 9 +apiserver_request_latencies_bucket{resource="roles",scope="namespace",subresource="",verb="POST",le="+Inf"} 9 +apiserver_request_latencies_sum{resource="roles",scope="namespace",subresource="",verb="POST"} 27124 +apiserver_request_latencies_count{resource="roles",scope="namespace",subresource="",verb="POST"} 9 +apiserver_request_latencies_bucket{resource="secrets",scope="cluster",subresource="",verb="LIST",le="125000"} 1 +apiserver_request_latencies_bucket{resource="secrets",scope="cluster",subresource="",verb="LIST",le="250000"} 1 +apiserver_request_latencies_bucket{resource="secrets",scope="cluster",subresource="",verb="LIST",le="500000"} 1 +apiserver_request_latencies_bucket{resource="secrets",scope="cluster",subresource="",verb="LIST",le="1e+06"} 1 +apiserver_request_latencies_bucket{resource="secrets",scope="cluster",subresource="",verb="LIST",le="2e+06"} 2 +apiserver_request_latencies_bucket{resource="secrets",scope="cluster",subresource="",verb="LIST",le="4e+06"} 2 +apiserver_request_latencies_bucket{resource="secrets",scope="cluster",subresource="",verb="LIST",le="8e+06"} 2 +apiserver_request_latencies_bucket{resource="secrets",scope="cluster",subresource="",verb="LIST",le="+Inf"} 2 +apiserver_request_latencies_sum{resource="secrets",scope="cluster",subresource="",verb="LIST"} 1.806364e+06 +apiserver_request_latencies_count{resource="secrets",scope="cluster",subresource="",verb="LIST"} 2 +apiserver_request_latencies_bucket{resource="secrets",scope="cluster",subresource="",verb="WATCH",le="125000"} 0 +apiserver_request_latencies_bucket{resource="secrets",scope="cluster",subresource="",verb="WATCH",le="250000"} 0 +apiserver_request_latencies_bucket{resource="secrets",scope="cluster",subresource="",verb="WATCH",le="500000"} 0 +apiserver_request_latencies_bucket{resource="secrets",scope="cluster",subresource="",verb="WATCH",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="secrets",scope="cluster",subresource="",verb="WATCH",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="secrets",scope="cluster",subresource="",verb="WATCH",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="secrets",scope="cluster",subresource="",verb="WATCH",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="secrets",scope="cluster",subresource="",verb="WATCH",le="+Inf"} 2940 +apiserver_request_latencies_sum{resource="secrets",scope="cluster",subresource="",verb="WATCH"} 1.319248184423e+12 +apiserver_request_latencies_count{resource="secrets",scope="cluster",subresource="",verb="WATCH"} 2940 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="DELETE",le="125000"} 3 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="DELETE",le="250000"} 3 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="DELETE",le="500000"} 3 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="DELETE",le="1e+06"} 3 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="DELETE",le="2e+06"} 3 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="DELETE",le="4e+06"} 3 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="DELETE",le="8e+06"} 3 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="DELETE",le="+Inf"} 3 +apiserver_request_latencies_sum{resource="secrets",scope="namespace",subresource="",verb="DELETE"} 19136 +apiserver_request_latencies_count{resource="secrets",scope="namespace",subresource="",verb="DELETE"} 3 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="GET",le="125000"} 202550 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="GET",le="250000"} 202551 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="GET",le="500000"} 202551 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="GET",le="1e+06"} 202551 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="GET",le="2e+06"} 202551 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="GET",le="4e+06"} 202551 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="GET",le="8e+06"} 202551 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="GET",le="+Inf"} 202551 +apiserver_request_latencies_sum{resource="secrets",scope="namespace",subresource="",verb="GET"} 5.6134705e+07 +apiserver_request_latencies_count{resource="secrets",scope="namespace",subresource="",verb="GET"} 202551 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="LIST",le="125000"} 22023 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="LIST",le="250000"} 22024 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="LIST",le="500000"} 22024 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="LIST",le="1e+06"} 22024 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="LIST",le="2e+06"} 22024 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="LIST",le="4e+06"} 22024 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="LIST",le="8e+06"} 22024 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="LIST",le="+Inf"} 22024 +apiserver_request_latencies_sum{resource="secrets",scope="namespace",subresource="",verb="LIST"} 7.2887687e+07 +apiserver_request_latencies_count{resource="secrets",scope="namespace",subresource="",verb="LIST"} 22024 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="POST",le="125000"} 11041 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="POST",le="250000"} 11041 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="POST",le="500000"} 11041 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="POST",le="1e+06"} 11041 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="POST",le="2e+06"} 11041 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="POST",le="4e+06"} 11041 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="POST",le="8e+06"} 11041 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="POST",le="+Inf"} 11041 +apiserver_request_latencies_sum{resource="secrets",scope="namespace",subresource="",verb="POST"} 2.6980827e+07 +apiserver_request_latencies_count{resource="secrets",scope="namespace",subresource="",verb="POST"} 11041 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="WATCH",le="125000"} 15 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="WATCH",le="250000"} 15 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="WATCH",le="500000"} 15 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="WATCH",le="1e+06"} 15 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="WATCH",le="2e+06"} 15 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="WATCH",le="4e+06"} 15 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="WATCH",le="8e+06"} 15 +apiserver_request_latencies_bucket{resource="secrets",scope="namespace",subresource="",verb="WATCH",le="+Inf"} 15 +apiserver_request_latencies_sum{resource="secrets",scope="namespace",subresource="",verb="WATCH"} 337373 +apiserver_request_latencies_count{resource="secrets",scope="namespace",subresource="",verb="WATCH"} 15 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="cluster",subresource="",verb="LIST",le="125000"} 710 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="cluster",subresource="",verb="LIST",le="250000"} 710 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="cluster",subresource="",verb="LIST",le="500000"} 710 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="cluster",subresource="",verb="LIST",le="1e+06"} 710 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="cluster",subresource="",verb="LIST",le="2e+06"} 711 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="cluster",subresource="",verb="LIST",le="4e+06"} 711 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="cluster",subresource="",verb="LIST",le="8e+06"} 711 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="cluster",subresource="",verb="LIST",le="+Inf"} 711 +apiserver_request_latencies_sum{resource="serviceaccounts",scope="cluster",subresource="",verb="LIST"} 3.695657e+06 +apiserver_request_latencies_count{resource="serviceaccounts",scope="cluster",subresource="",verb="LIST"} 711 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="cluster",subresource="",verb="WATCH",le="125000"} 0 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="cluster",subresource="",verb="WATCH",le="250000"} 0 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="cluster",subresource="",verb="WATCH",le="500000"} 0 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="cluster",subresource="",verb="WATCH",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="cluster",subresource="",verb="WATCH",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="cluster",subresource="",verb="WATCH",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="cluster",subresource="",verb="WATCH",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="cluster",subresource="",verb="WATCH",le="+Inf"} 2934 +apiserver_request_latencies_sum{resource="serviceaccounts",scope="cluster",subresource="",verb="WATCH"} 1.319449062336e+12 +apiserver_request_latencies_count{resource="serviceaccounts",scope="cluster",subresource="",verb="WATCH"} 2934 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="DELETE",le="125000"} 3 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="DELETE",le="250000"} 3 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="DELETE",le="500000"} 3 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="DELETE",le="1e+06"} 3 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="DELETE",le="2e+06"} 3 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="DELETE",le="4e+06"} 3 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="DELETE",le="8e+06"} 3 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="DELETE",le="+Inf"} 3 +apiserver_request_latencies_sum{resource="serviceaccounts",scope="namespace",subresource="",verb="DELETE"} 14251 +apiserver_request_latencies_count{resource="serviceaccounts",scope="namespace",subresource="",verb="DELETE"} 3 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="GET",le="125000"} 66138 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="GET",le="250000"} 66138 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="GET",le="500000"} 66138 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="GET",le="1e+06"} 66138 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="GET",le="2e+06"} 66139 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="GET",le="4e+06"} 66139 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="GET",le="8e+06"} 66139 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="GET",le="+Inf"} 66139 +apiserver_request_latencies_sum{resource="serviceaccounts",scope="namespace",subresource="",verb="GET"} 7.8537675e+07 +apiserver_request_latencies_count{resource="serviceaccounts",scope="namespace",subresource="",verb="GET"} 66139 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="PATCH",le="125000"} 65986 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="PATCH",le="250000"} 65986 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="PATCH",le="500000"} 65986 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="PATCH",le="1e+06"} 65986 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="PATCH",le="2e+06"} 65986 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="PATCH",le="4e+06"} 65986 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="PATCH",le="8e+06"} 65986 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="PATCH",le="+Inf"} 65986 +apiserver_request_latencies_sum{resource="serviceaccounts",scope="namespace",subresource="",verb="PATCH"} 1.12424509e+08 +apiserver_request_latencies_count{resource="serviceaccounts",scope="namespace",subresource="",verb="PATCH"} 65986 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="POST",le="125000"} 38 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="POST",le="250000"} 38 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="POST",le="500000"} 38 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="POST",le="1e+06"} 38 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="POST",le="2e+06"} 38 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="POST",le="4e+06"} 38 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="POST",le="8e+06"} 38 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="POST",le="+Inf"} 38 +apiserver_request_latencies_sum{resource="serviceaccounts",scope="namespace",subresource="",verb="POST"} 137225 +apiserver_request_latencies_count{resource="serviceaccounts",scope="namespace",subresource="",verb="POST"} 38 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="PUT",le="125000"} 38 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="PUT",le="250000"} 38 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="PUT",le="500000"} 38 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="PUT",le="1e+06"} 38 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="PUT",le="2e+06"} 38 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="PUT",le="4e+06"} 38 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="PUT",le="8e+06"} 38 +apiserver_request_latencies_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="PUT",le="+Inf"} 38 +apiserver_request_latencies_sum{resource="serviceaccounts",scope="namespace",subresource="",verb="PUT"} 137375 +apiserver_request_latencies_count{resource="serviceaccounts",scope="namespace",subresource="",verb="PUT"} 38 +apiserver_request_latencies_bucket{resource="services",scope="cluster",subresource="",verb="LIST",le="125000"} 8066 +apiserver_request_latencies_bucket{resource="services",scope="cluster",subresource="",verb="LIST",le="250000"} 8066 +apiserver_request_latencies_bucket{resource="services",scope="cluster",subresource="",verb="LIST",le="500000"} 8067 +apiserver_request_latencies_bucket{resource="services",scope="cluster",subresource="",verb="LIST",le="1e+06"} 8067 +apiserver_request_latencies_bucket{resource="services",scope="cluster",subresource="",verb="LIST",le="2e+06"} 8067 +apiserver_request_latencies_bucket{resource="services",scope="cluster",subresource="",verb="LIST",le="4e+06"} 8067 +apiserver_request_latencies_bucket{resource="services",scope="cluster",subresource="",verb="LIST",le="8e+06"} 8067 +apiserver_request_latencies_bucket{resource="services",scope="cluster",subresource="",verb="LIST",le="+Inf"} 8067 +apiserver_request_latencies_sum{resource="services",scope="cluster",subresource="",verb="LIST"} 1.6999211e+07 +apiserver_request_latencies_count{resource="services",scope="cluster",subresource="",verb="LIST"} 8067 +apiserver_request_latencies_bucket{resource="services",scope="cluster",subresource="",verb="WATCH",le="125000"} 0 +apiserver_request_latencies_bucket{resource="services",scope="cluster",subresource="",verb="WATCH",le="250000"} 0 +apiserver_request_latencies_bucket{resource="services",scope="cluster",subresource="",verb="WATCH",le="500000"} 0 +apiserver_request_latencies_bucket{resource="services",scope="cluster",subresource="",verb="WATCH",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="services",scope="cluster",subresource="",verb="WATCH",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="services",scope="cluster",subresource="",verb="WATCH",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="services",scope="cluster",subresource="",verb="WATCH",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="services",scope="cluster",subresource="",verb="WATCH",le="+Inf"} 17682 +apiserver_request_latencies_sum{resource="services",scope="cluster",subresource="",verb="WATCH"} 7.916402902308e+12 +apiserver_request_latencies_count{resource="services",scope="cluster",subresource="",verb="WATCH"} 17682 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="",verb="GET",le="125000"} 109950 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="",verb="GET",le="250000"} 109950 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="",verb="GET",le="500000"} 109951 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="",verb="GET",le="1e+06"} 109952 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="",verb="GET",le="2e+06"} 109953 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="",verb="GET",le="4e+06"} 109953 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="",verb="GET",le="8e+06"} 109953 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="",verb="GET",le="+Inf"} 109953 +apiserver_request_latencies_sum{resource="services",scope="namespace",subresource="",verb="GET"} 1.42476285e+08 +apiserver_request_latencies_count{resource="services",scope="namespace",subresource="",verb="GET"} 109953 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="",verb="LIST",le="125000"} 21998 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="",verb="LIST",le="250000"} 21998 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="",verb="LIST",le="500000"} 21998 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="",verb="LIST",le="1e+06"} 21998 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="",verb="LIST",le="2e+06"} 21998 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="",verb="LIST",le="4e+06"} 21998 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="",verb="LIST",le="8e+06"} 21998 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="",verb="LIST",le="+Inf"} 21998 +apiserver_request_latencies_sum{resource="services",scope="namespace",subresource="",verb="LIST"} 3.753119e+07 +apiserver_request_latencies_count{resource="services",scope="namespace",subresource="",verb="LIST"} 21998 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="",verb="PATCH",le="125000"} 43992 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="",verb="PATCH",le="250000"} 43992 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="",verb="PATCH",le="500000"} 43992 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="",verb="PATCH",le="1e+06"} 43992 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="",verb="PATCH",le="2e+06"} 43992 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="",verb="PATCH",le="4e+06"} 43992 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="",verb="PATCH",le="8e+06"} 43992 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="",verb="PATCH",le="+Inf"} 43992 +apiserver_request_latencies_sum{resource="services",scope="namespace",subresource="",verb="PATCH"} 1.12112515e+08 +apiserver_request_latencies_count{resource="services",scope="namespace",subresource="",verb="PATCH"} 43992 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="",verb="POST",le="125000"} 8 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="",verb="POST",le="250000"} 8 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="",verb="POST",le="500000"} 8 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="",verb="POST",le="1e+06"} 8 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="",verb="POST",le="2e+06"} 8 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="",verb="POST",le="4e+06"} 8 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="",verb="POST",le="8e+06"} 8 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="",verb="POST",le="+Inf"} 8 +apiserver_request_latencies_sum{resource="services",scope="namespace",subresource="",verb="POST"} 80513 +apiserver_request_latencies_count{resource="services",scope="namespace",subresource="",verb="POST"} 8 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="status",verb="PUT",le="125000"} 1 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="status",verb="PUT",le="250000"} 1 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="status",verb="PUT",le="500000"} 1 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="status",verb="PUT",le="1e+06"} 1 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="status",verb="PUT",le="2e+06"} 1 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="status",verb="PUT",le="4e+06"} 1 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="status",verb="PUT",le="8e+06"} 1 +apiserver_request_latencies_bucket{resource="services",scope="namespace",subresource="status",verb="PUT",le="+Inf"} 1 +apiserver_request_latencies_sum{resource="services",scope="namespace",subresource="status",verb="PUT"} 4441 +apiserver_request_latencies_count{resource="services",scope="namespace",subresource="status",verb="PUT"} 1 +apiserver_request_latencies_bucket{resource="services",scope="resource",subresource="",verb="PROXY",le="125000"} 21957 +apiserver_request_latencies_bucket{resource="services",scope="resource",subresource="",verb="PROXY",le="250000"} 21960 +apiserver_request_latencies_bucket{resource="services",scope="resource",subresource="",verb="PROXY",le="500000"} 21960 +apiserver_request_latencies_bucket{resource="services",scope="resource",subresource="",verb="PROXY",le="1e+06"} 21960 +apiserver_request_latencies_bucket{resource="services",scope="resource",subresource="",verb="PROXY",le="2e+06"} 21960 +apiserver_request_latencies_bucket{resource="services",scope="resource",subresource="",verb="PROXY",le="4e+06"} 21960 +apiserver_request_latencies_bucket{resource="services",scope="resource",subresource="",verb="PROXY",le="8e+06"} 21960 +apiserver_request_latencies_bucket{resource="services",scope="resource",subresource="",verb="PROXY",le="+Inf"} 21965 +apiserver_request_latencies_sum{resource="services",scope="resource",subresource="",verb="PROXY"} 4.65256128e+08 +apiserver_request_latencies_count{resource="services",scope="resource",subresource="",verb="PROXY"} 21965 +apiserver_request_latencies_bucket{resource="services",scope="resource",subresource="",verb="proxy",le="125000"} 21957 +apiserver_request_latencies_bucket{resource="services",scope="resource",subresource="",verb="proxy",le="250000"} 21960 +apiserver_request_latencies_bucket{resource="services",scope="resource",subresource="",verb="proxy",le="500000"} 21960 +apiserver_request_latencies_bucket{resource="services",scope="resource",subresource="",verb="proxy",le="1e+06"} 21960 +apiserver_request_latencies_bucket{resource="services",scope="resource",subresource="",verb="proxy",le="2e+06"} 21960 +apiserver_request_latencies_bucket{resource="services",scope="resource",subresource="",verb="proxy",le="4e+06"} 21960 +apiserver_request_latencies_bucket{resource="services",scope="resource",subresource="",verb="proxy",le="8e+06"} 21960 +apiserver_request_latencies_bucket{resource="services",scope="resource",subresource="",verb="proxy",le="+Inf"} 21965 +apiserver_request_latencies_sum{resource="services",scope="resource",subresource="",verb="proxy"} 4.64443049e+08 +apiserver_request_latencies_count{resource="services",scope="resource",subresource="",verb="proxy"} 21965 +apiserver_request_latencies_bucket{resource="statefulsets",scope="cluster",subresource="",verb="LIST",le="125000"} 711 +apiserver_request_latencies_bucket{resource="statefulsets",scope="cluster",subresource="",verb="LIST",le="250000"} 711 +apiserver_request_latencies_bucket{resource="statefulsets",scope="cluster",subresource="",verb="LIST",le="500000"} 711 +apiserver_request_latencies_bucket{resource="statefulsets",scope="cluster",subresource="",verb="LIST",le="1e+06"} 711 +apiserver_request_latencies_bucket{resource="statefulsets",scope="cluster",subresource="",verb="LIST",le="2e+06"} 711 +apiserver_request_latencies_bucket{resource="statefulsets",scope="cluster",subresource="",verb="LIST",le="4e+06"} 711 +apiserver_request_latencies_bucket{resource="statefulsets",scope="cluster",subresource="",verb="LIST",le="8e+06"} 711 +apiserver_request_latencies_bucket{resource="statefulsets",scope="cluster",subresource="",verb="LIST",le="+Inf"} 711 +apiserver_request_latencies_sum{resource="statefulsets",scope="cluster",subresource="",verb="LIST"} 1.029136e+06 +apiserver_request_latencies_count{resource="statefulsets",scope="cluster",subresource="",verb="LIST"} 711 +apiserver_request_latencies_bucket{resource="statefulsets",scope="cluster",subresource="",verb="WATCH",le="125000"} 0 +apiserver_request_latencies_bucket{resource="statefulsets",scope="cluster",subresource="",verb="WATCH",le="250000"} 0 +apiserver_request_latencies_bucket{resource="statefulsets",scope="cluster",subresource="",verb="WATCH",le="500000"} 0 +apiserver_request_latencies_bucket{resource="statefulsets",scope="cluster",subresource="",verb="WATCH",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="statefulsets",scope="cluster",subresource="",verb="WATCH",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="statefulsets",scope="cluster",subresource="",verb="WATCH",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="statefulsets",scope="cluster",subresource="",verb="WATCH",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="statefulsets",scope="cluster",subresource="",verb="WATCH",le="+Inf"} 2928 +apiserver_request_latencies_sum{resource="statefulsets",scope="cluster",subresource="",verb="WATCH"} 1.319357064565e+12 +apiserver_request_latencies_count{resource="statefulsets",scope="cluster",subresource="",verb="WATCH"} 2928 +apiserver_request_latencies_bucket{resource="statefulsets",scope="namespace",subresource="",verb="LIST",le="125000"} 21997 +apiserver_request_latencies_bucket{resource="statefulsets",scope="namespace",subresource="",verb="LIST",le="250000"} 21997 +apiserver_request_latencies_bucket{resource="statefulsets",scope="namespace",subresource="",verb="LIST",le="500000"} 21997 +apiserver_request_latencies_bucket{resource="statefulsets",scope="namespace",subresource="",verb="LIST",le="1e+06"} 21997 +apiserver_request_latencies_bucket{resource="statefulsets",scope="namespace",subresource="",verb="LIST",le="2e+06"} 21997 +apiserver_request_latencies_bucket{resource="statefulsets",scope="namespace",subresource="",verb="LIST",le="4e+06"} 21997 +apiserver_request_latencies_bucket{resource="statefulsets",scope="namespace",subresource="",verb="LIST",le="8e+06"} 21997 +apiserver_request_latencies_bucket{resource="statefulsets",scope="namespace",subresource="",verb="LIST",le="+Inf"} 21997 +apiserver_request_latencies_sum{resource="statefulsets",scope="namespace",subresource="",verb="LIST"} 2.8334415e+07 +apiserver_request_latencies_count{resource="statefulsets",scope="namespace",subresource="",verb="LIST"} 21997 +apiserver_request_latencies_bucket{resource="storageclasses",scope="cluster",subresource="",verb="LIST",le="125000"} 8 +apiserver_request_latencies_bucket{resource="storageclasses",scope="cluster",subresource="",verb="LIST",le="250000"} 9 +apiserver_request_latencies_bucket{resource="storageclasses",scope="cluster",subresource="",verb="LIST",le="500000"} 9 +apiserver_request_latencies_bucket{resource="storageclasses",scope="cluster",subresource="",verb="LIST",le="1e+06"} 9 +apiserver_request_latencies_bucket{resource="storageclasses",scope="cluster",subresource="",verb="LIST",le="2e+06"} 9 +apiserver_request_latencies_bucket{resource="storageclasses",scope="cluster",subresource="",verb="LIST",le="4e+06"} 9 +apiserver_request_latencies_bucket{resource="storageclasses",scope="cluster",subresource="",verb="LIST",le="8e+06"} 9 +apiserver_request_latencies_bucket{resource="storageclasses",scope="cluster",subresource="",verb="LIST",le="+Inf"} 9 +apiserver_request_latencies_sum{resource="storageclasses",scope="cluster",subresource="",verb="LIST"} 218590 +apiserver_request_latencies_count{resource="storageclasses",scope="cluster",subresource="",verb="LIST"} 9 +apiserver_request_latencies_bucket{resource="storageclasses",scope="cluster",subresource="",verb="POST",le="125000"} 10999 +apiserver_request_latencies_bucket{resource="storageclasses",scope="cluster",subresource="",verb="POST",le="250000"} 10999 +apiserver_request_latencies_bucket{resource="storageclasses",scope="cluster",subresource="",verb="POST",le="500000"} 10999 +apiserver_request_latencies_bucket{resource="storageclasses",scope="cluster",subresource="",verb="POST",le="1e+06"} 10999 +apiserver_request_latencies_bucket{resource="storageclasses",scope="cluster",subresource="",verb="POST",le="2e+06"} 10999 +apiserver_request_latencies_bucket{resource="storageclasses",scope="cluster",subresource="",verb="POST",le="4e+06"} 10999 +apiserver_request_latencies_bucket{resource="storageclasses",scope="cluster",subresource="",verb="POST",le="8e+06"} 10999 +apiserver_request_latencies_bucket{resource="storageclasses",scope="cluster",subresource="",verb="POST",le="+Inf"} 10999 +apiserver_request_latencies_sum{resource="storageclasses",scope="cluster",subresource="",verb="POST"} 2.8899398e+07 +apiserver_request_latencies_count{resource="storageclasses",scope="cluster",subresource="",verb="POST"} 10999 +apiserver_request_latencies_bucket{resource="storageclasses",scope="cluster",subresource="",verb="WATCH",le="125000"} 0 +apiserver_request_latencies_bucket{resource="storageclasses",scope="cluster",subresource="",verb="WATCH",le="250000"} 0 +apiserver_request_latencies_bucket{resource="storageclasses",scope="cluster",subresource="",verb="WATCH",le="500000"} 0 +apiserver_request_latencies_bucket{resource="storageclasses",scope="cluster",subresource="",verb="WATCH",le="1e+06"} 0 +apiserver_request_latencies_bucket{resource="storageclasses",scope="cluster",subresource="",verb="WATCH",le="2e+06"} 0 +apiserver_request_latencies_bucket{resource="storageclasses",scope="cluster",subresource="",verb="WATCH",le="4e+06"} 0 +apiserver_request_latencies_bucket{resource="storageclasses",scope="cluster",subresource="",verb="WATCH",le="8e+06"} 0 +apiserver_request_latencies_bucket{resource="storageclasses",scope="cluster",subresource="",verb="WATCH",le="+Inf"} 2939 +apiserver_request_latencies_sum{resource="storageclasses",scope="cluster",subresource="",verb="WATCH"} 1.319265103606e+12 +apiserver_request_latencies_count{resource="storageclasses",scope="cluster",subresource="",verb="WATCH"} 2939 +apiserver_request_latencies_bucket{resource="subjectaccessreviews",scope="cluster",subresource="",verb="POST",le="125000"} 17 +apiserver_request_latencies_bucket{resource="subjectaccessreviews",scope="cluster",subresource="",verb="POST",le="250000"} 17 +apiserver_request_latencies_bucket{resource="subjectaccessreviews",scope="cluster",subresource="",verb="POST",le="500000"} 17 +apiserver_request_latencies_bucket{resource="subjectaccessreviews",scope="cluster",subresource="",verb="POST",le="1e+06"} 17 +apiserver_request_latencies_bucket{resource="subjectaccessreviews",scope="cluster",subresource="",verb="POST",le="2e+06"} 17 +apiserver_request_latencies_bucket{resource="subjectaccessreviews",scope="cluster",subresource="",verb="POST",le="4e+06"} 17 +apiserver_request_latencies_bucket{resource="subjectaccessreviews",scope="cluster",subresource="",verb="POST",le="8e+06"} 17 +apiserver_request_latencies_bucket{resource="subjectaccessreviews",scope="cluster",subresource="",verb="POST",le="+Inf"} 17 +apiserver_request_latencies_sum{resource="subjectaccessreviews",scope="cluster",subresource="",verb="POST"} 12218 +apiserver_request_latencies_count{resource="subjectaccessreviews",scope="cluster",subresource="",verb="POST"} 17 +apiserver_request_latencies_bucket{resource="tokenreviews",scope="cluster",subresource="",verb="POST",le="125000"} 27 +apiserver_request_latencies_bucket{resource="tokenreviews",scope="cluster",subresource="",verb="POST",le="250000"} 27 +apiserver_request_latencies_bucket{resource="tokenreviews",scope="cluster",subresource="",verb="POST",le="500000"} 27 +apiserver_request_latencies_bucket{resource="tokenreviews",scope="cluster",subresource="",verb="POST",le="1e+06"} 27 +apiserver_request_latencies_bucket{resource="tokenreviews",scope="cluster",subresource="",verb="POST",le="2e+06"} 27 +apiserver_request_latencies_bucket{resource="tokenreviews",scope="cluster",subresource="",verb="POST",le="4e+06"} 27 +apiserver_request_latencies_bucket{resource="tokenreviews",scope="cluster",subresource="",verb="POST",le="8e+06"} 27 +apiserver_request_latencies_bucket{resource="tokenreviews",scope="cluster",subresource="",verb="POST",le="+Inf"} 27 +apiserver_request_latencies_sum{resource="tokenreviews",scope="cluster",subresource="",verb="POST"} 108241 +apiserver_request_latencies_count{resource="tokenreviews",scope="cluster",subresource="",verb="POST"} 27 +# HELP apiserver_request_latencies_summary Response latency summary in microseconds for each verb, resource and subresource. +# TYPE apiserver_request_latencies_summary summary +apiserver_request_latencies_summary{resource="apiservices",scope="cluster",subresource="",verb="LIST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="apiservices",scope="cluster",subresource="",verb="LIST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="apiservices",scope="cluster",subresource="",verb="LIST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="apiservices",scope="cluster",subresource="",verb="LIST"} 104 +apiserver_request_latencies_summary_count{resource="apiservices",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_latencies_summary{resource="apiservices",scope="cluster",subresource="",verb="POST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="apiservices",scope="cluster",subresource="",verb="POST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="apiservices",scope="cluster",subresource="",verb="POST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="apiservices",scope="cluster",subresource="",verb="POST"} 518921 +apiserver_request_latencies_summary_count{resource="apiservices",scope="cluster",subresource="",verb="POST"} 20 +apiserver_request_latencies_summary{resource="apiservices",scope="cluster",subresource="",verb="WATCH",quantile="0.5"} 4.43001356e+08 +apiserver_request_latencies_summary{resource="apiservices",scope="cluster",subresource="",verb="WATCH",quantile="0.9"} 5.54001306e+08 +apiserver_request_latencies_summary{resource="apiservices",scope="cluster",subresource="",verb="WATCH",quantile="0.99"} 5.69000554e+08 +apiserver_request_latencies_summary_sum{resource="apiservices",scope="cluster",subresource="",verb="WATCH"} 6.59555023618e+11 +apiserver_request_latencies_summary_count{resource="apiservices",scope="cluster",subresource="",verb="WATCH"} 1465 +apiserver_request_latencies_summary{resource="apiservices",scope="cluster",subresource="status",verb="PUT",quantile="0.5"} 1294 +apiserver_request_latencies_summary{resource="apiservices",scope="cluster",subresource="status",verb="PUT",quantile="0.9"} 2168 +apiserver_request_latencies_summary{resource="apiservices",scope="cluster",subresource="status",verb="PUT",quantile="0.99"} 5526 +apiserver_request_latencies_summary_sum{resource="apiservices",scope="cluster",subresource="status",verb="PUT"} 6.9726863e+07 +apiserver_request_latencies_summary_count{resource="apiservices",scope="cluster",subresource="status",verb="PUT"} 44000 +apiserver_request_latencies_summary{resource="certificatesigningrequests",scope="cluster",subresource="",verb="LIST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="certificatesigningrequests",scope="cluster",subresource="",verb="LIST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="certificatesigningrequests",scope="cluster",subresource="",verb="LIST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="certificatesigningrequests",scope="cluster",subresource="",verb="LIST"} 24784 +apiserver_request_latencies_summary_count{resource="certificatesigningrequests",scope="cluster",subresource="",verb="LIST"} 9 +apiserver_request_latencies_summary{resource="certificatesigningrequests",scope="cluster",subresource="",verb="POST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="certificatesigningrequests",scope="cluster",subresource="",verb="POST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="certificatesigningrequests",scope="cluster",subresource="",verb="POST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="certificatesigningrequests",scope="cluster",subresource="",verb="POST"} 37113 +apiserver_request_latencies_summary_count{resource="certificatesigningrequests",scope="cluster",subresource="",verb="POST"} 7 +apiserver_request_latencies_summary{resource="certificatesigningrequests",scope="cluster",subresource="",verb="WATCH",quantile="0.5"} 4.57000471e+08 +apiserver_request_latencies_summary{resource="certificatesigningrequests",scope="cluster",subresource="",verb="WATCH",quantile="0.9"} 5.6300154e+08 +apiserver_request_latencies_summary{resource="certificatesigningrequests",scope="cluster",subresource="",verb="WATCH",quantile="0.99"} 5.94000703e+08 +apiserver_request_latencies_summary_sum{resource="certificatesigningrequests",scope="cluster",subresource="",verb="WATCH"} 1.319072288505e+12 +apiserver_request_latencies_summary_count{resource="certificatesigningrequests",scope="cluster",subresource="",verb="WATCH"} 2944 +apiserver_request_latencies_summary{resource="certificatesigningrequests",scope="cluster",subresource="approval",verb="PUT",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="certificatesigningrequests",scope="cluster",subresource="approval",verb="PUT",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="certificatesigningrequests",scope="cluster",subresource="approval",verb="PUT",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="certificatesigningrequests",scope="cluster",subresource="approval",verb="PUT"} 41871 +apiserver_request_latencies_summary_count{resource="certificatesigningrequests",scope="cluster",subresource="approval",verb="PUT"} 7 +apiserver_request_latencies_summary{resource="certificatesigningrequests",scope="cluster",subresource="status",verb="PUT",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="certificatesigningrequests",scope="cluster",subresource="status",verb="PUT",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="certificatesigningrequests",scope="cluster",subresource="status",verb="PUT",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="certificatesigningrequests",scope="cluster",subresource="status",verb="PUT"} 24266 +apiserver_request_latencies_summary_count{resource="certificatesigningrequests",scope="cluster",subresource="status",verb="PUT"} 7 +apiserver_request_latencies_summary{resource="clusterrolebindings",scope="cluster",subresource="",verb="DELETE",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="clusterrolebindings",scope="cluster",subresource="",verb="DELETE",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="clusterrolebindings",scope="cluster",subresource="",verb="DELETE",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="clusterrolebindings",scope="cluster",subresource="",verb="DELETE"} 19942 +apiserver_request_latencies_summary_count{resource="clusterrolebindings",scope="cluster",subresource="",verb="DELETE"} 3 +apiserver_request_latencies_summary{resource="clusterrolebindings",scope="cluster",subresource="",verb="GET",quantile="0.5"} 959 +apiserver_request_latencies_summary{resource="clusterrolebindings",scope="cluster",subresource="",verb="GET",quantile="0.9"} 1280 +apiserver_request_latencies_summary{resource="clusterrolebindings",scope="cluster",subresource="",verb="GET",quantile="0.99"} 3648 +apiserver_request_latencies_summary_sum{resource="clusterrolebindings",scope="cluster",subresource="",verb="GET"} 9.4043104e+07 +apiserver_request_latencies_summary_count{resource="clusterrolebindings",scope="cluster",subresource="",verb="GET"} 88021 +apiserver_request_latencies_summary{resource="clusterrolebindings",scope="cluster",subresource="",verb="LIST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="clusterrolebindings",scope="cluster",subresource="",verb="LIST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="clusterrolebindings",scope="cluster",subresource="",verb="LIST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="clusterrolebindings",scope="cluster",subresource="",verb="LIST"} 1.678278e+06 +apiserver_request_latencies_summary_count{resource="clusterrolebindings",scope="cluster",subresource="",verb="LIST"} 3 +apiserver_request_latencies_summary{resource="clusterrolebindings",scope="cluster",subresource="",verb="PATCH",quantile="0.5"} 1620 +apiserver_request_latencies_summary{resource="clusterrolebindings",scope="cluster",subresource="",verb="PATCH",quantile="0.9"} 2298 +apiserver_request_latencies_summary{resource="clusterrolebindings",scope="cluster",subresource="",verb="PATCH",quantile="0.99"} 5672 +apiserver_request_latencies_summary_sum{resource="clusterrolebindings",scope="cluster",subresource="",verb="PATCH"} 1.61403153e+08 +apiserver_request_latencies_summary_count{resource="clusterrolebindings",scope="cluster",subresource="",verb="PATCH"} 87983 +apiserver_request_latencies_summary{resource="clusterrolebindings",scope="cluster",subresource="",verb="POST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="clusterrolebindings",scope="cluster",subresource="",verb="POST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="clusterrolebindings",scope="cluster",subresource="",verb="POST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="clusterrolebindings",scope="cluster",subresource="",verb="POST"} 242600 +apiserver_request_latencies_summary_count{resource="clusterrolebindings",scope="cluster",subresource="",verb="POST"} 45 +apiserver_request_latencies_summary{resource="clusterrolebindings",scope="cluster",subresource="",verb="WATCH",quantile="0.5"} 4.4100052e+08 +apiserver_request_latencies_summary{resource="clusterrolebindings",scope="cluster",subresource="",verb="WATCH",quantile="0.9"} 5.50000434e+08 +apiserver_request_latencies_summary{resource="clusterrolebindings",scope="cluster",subresource="",verb="WATCH",quantile="0.99"} 5.82000424e+08 +apiserver_request_latencies_summary_sum{resource="clusterrolebindings",scope="cluster",subresource="",verb="WATCH"} 1.319737924064e+12 +apiserver_request_latencies_summary_count{resource="clusterrolebindings",scope="cluster",subresource="",verb="WATCH"} 2961 +apiserver_request_latencies_summary{resource="clusterroles",scope="cluster",subresource="",verb="DELETE",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="clusterroles",scope="cluster",subresource="",verb="DELETE",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="clusterroles",scope="cluster",subresource="",verb="DELETE",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="clusterroles",scope="cluster",subresource="",verb="DELETE"} 16257 +apiserver_request_latencies_summary_count{resource="clusterroles",scope="cluster",subresource="",verb="DELETE"} 3 +apiserver_request_latencies_summary{resource="clusterroles",scope="cluster",subresource="",verb="GET",quantile="0.5"} 926 +apiserver_request_latencies_summary{resource="clusterroles",scope="cluster",subresource="",verb="GET",quantile="0.9"} 1228 +apiserver_request_latencies_summary{resource="clusterroles",scope="cluster",subresource="",verb="GET",quantile="0.99"} 4583 +apiserver_request_latencies_summary_sum{resource="clusterroles",scope="cluster",subresource="",verb="GET"} 4.674889e+07 +apiserver_request_latencies_summary_count{resource="clusterroles",scope="cluster",subresource="",verb="GET"} 44036 +apiserver_request_latencies_summary{resource="clusterroles",scope="cluster",subresource="",verb="LIST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="clusterroles",scope="cluster",subresource="",verb="LIST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="clusterroles",scope="cluster",subresource="",verb="LIST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="clusterroles",scope="cluster",subresource="",verb="LIST"} 751587 +apiserver_request_latencies_summary_count{resource="clusterroles",scope="cluster",subresource="",verb="LIST"} 3 +apiserver_request_latencies_summary{resource="clusterroles",scope="cluster",subresource="",verb="PATCH",quantile="0.5"} 1606 +apiserver_request_latencies_summary{resource="clusterroles",scope="cluster",subresource="",verb="PATCH",quantile="0.9"} 2418 +apiserver_request_latencies_summary{resource="clusterroles",scope="cluster",subresource="",verb="PATCH",quantile="0.99"} 5529 +apiserver_request_latencies_summary_sum{resource="clusterroles",scope="cluster",subresource="",verb="PATCH"} 7.9881493e+07 +apiserver_request_latencies_summary_count{resource="clusterroles",scope="cluster",subresource="",verb="PATCH"} 43991 +apiserver_request_latencies_summary{resource="clusterroles",scope="cluster",subresource="",verb="POST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="clusterroles",scope="cluster",subresource="",verb="POST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="clusterroles",scope="cluster",subresource="",verb="POST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="clusterroles",scope="cluster",subresource="",verb="POST"} 453911 +apiserver_request_latencies_summary_count{resource="clusterroles",scope="cluster",subresource="",verb="POST"} 51 +apiserver_request_latencies_summary{resource="clusterroles",scope="cluster",subresource="",verb="WATCH",quantile="0.5"} 4.56000554e+08 +apiserver_request_latencies_summary{resource="clusterroles",scope="cluster",subresource="",verb="WATCH",quantile="0.9"} 5.64000428e+08 +apiserver_request_latencies_summary{resource="clusterroles",scope="cluster",subresource="",verb="WATCH",quantile="0.99"} 5.74000524e+08 +apiserver_request_latencies_summary_sum{resource="clusterroles",scope="cluster",subresource="",verb="WATCH"} 1.319595133369e+12 +apiserver_request_latencies_summary_count{resource="clusterroles",scope="cluster",subresource="",verb="WATCH"} 2927 +apiserver_request_latencies_summary{resource="componentstatuses",scope="cluster",subresource="",verb="LIST",quantile="0.5"} 503149 +apiserver_request_latencies_summary{resource="componentstatuses",scope="cluster",subresource="",verb="LIST",quantile="0.9"} 504413 +apiserver_request_latencies_summary{resource="componentstatuses",scope="cluster",subresource="",verb="LIST",quantile="0.99"} 506412 +apiserver_request_latencies_summary_sum{resource="componentstatuses",scope="cluster",subresource="",verb="LIST"} 3.270551868e+09 +apiserver_request_latencies_summary_count{resource="componentstatuses",scope="cluster",subresource="",verb="LIST"} 7195 +apiserver_request_latencies_summary{resource="configmaps",scope="",subresource="",verb="GET",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="configmaps",scope="",subresource="",verb="GET",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="configmaps",scope="",subresource="",verb="GET",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="configmaps",scope="",subresource="",verb="GET"} 6.0000198e+07 +apiserver_request_latencies_summary_count{resource="configmaps",scope="",subresource="",verb="GET"} 1 +apiserver_request_latencies_summary{resource="configmaps",scope="cluster",subresource="",verb="LIST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="configmaps",scope="cluster",subresource="",verb="LIST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="configmaps",scope="cluster",subresource="",verb="LIST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="configmaps",scope="cluster",subresource="",verb="LIST"} 1192 +apiserver_request_latencies_summary_count{resource="configmaps",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_latencies_summary{resource="configmaps",scope="cluster",subresource="",verb="WATCH",quantile="0.5"} 4.49000975e+08 +apiserver_request_latencies_summary{resource="configmaps",scope="cluster",subresource="",verb="WATCH",quantile="0.9"} 5.61000531e+08 +apiserver_request_latencies_summary{resource="configmaps",scope="cluster",subresource="",verb="WATCH",quantile="0.99"} 5.86000513e+08 +apiserver_request_latencies_summary_sum{resource="configmaps",scope="cluster",subresource="",verb="WATCH"} 6.59897025212e+11 +apiserver_request_latencies_summary_count{resource="configmaps",scope="cluster",subresource="",verb="WATCH"} 1483 +apiserver_request_latencies_summary{resource="configmaps",scope="namespace",subresource="",verb="DELETE",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="configmaps",scope="namespace",subresource="",verb="DELETE",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="configmaps",scope="namespace",subresource="",verb="DELETE",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="configmaps",scope="namespace",subresource="",verb="DELETE"} 19435 +apiserver_request_latencies_summary_count{resource="configmaps",scope="namespace",subresource="",verb="DELETE"} 4 +apiserver_request_latencies_summary{resource="configmaps",scope="namespace",subresource="",verb="GET",quantile="0.5"} 920 +apiserver_request_latencies_summary{resource="configmaps",scope="namespace",subresource="",verb="GET",quantile="0.9"} 1538 +apiserver_request_latencies_summary{resource="configmaps",scope="namespace",subresource="",verb="GET",quantile="0.99"} 3626 +apiserver_request_latencies_summary_sum{resource="configmaps",scope="namespace",subresource="",verb="GET"} 1.016382203e+09 +apiserver_request_latencies_summary_count{resource="configmaps",scope="namespace",subresource="",verb="GET"} 444870 +apiserver_request_latencies_summary{resource="configmaps",scope="namespace",subresource="",verb="LIST",quantile="0.5"} 2158 +apiserver_request_latencies_summary{resource="configmaps",scope="namespace",subresource="",verb="LIST",quantile="0.9"} 2963 +apiserver_request_latencies_summary{resource="configmaps",scope="namespace",subresource="",verb="LIST",quantile="0.99"} 18363 +apiserver_request_latencies_summary_sum{resource="configmaps",scope="namespace",subresource="",verb="LIST"} 5.4318333e+07 +apiserver_request_latencies_summary_count{resource="configmaps",scope="namespace",subresource="",verb="LIST"} 21998 +apiserver_request_latencies_summary{resource="configmaps",scope="namespace",subresource="",verb="PATCH",quantile="0.5"} 2022 +apiserver_request_latencies_summary{resource="configmaps",scope="namespace",subresource="",verb="PATCH",quantile="0.9"} 2534 +apiserver_request_latencies_summary{resource="configmaps",scope="namespace",subresource="",verb="PATCH",quantile="0.99"} 4836 +apiserver_request_latencies_summary_sum{resource="configmaps",scope="namespace",subresource="",verb="PATCH"} 2.7035169e+07 +apiserver_request_latencies_summary_count{resource="configmaps",scope="namespace",subresource="",verb="PATCH"} 10997 +apiserver_request_latencies_summary{resource="configmaps",scope="namespace",subresource="",verb="POST",quantile="0.5"} 4329 +apiserver_request_latencies_summary{resource="configmaps",scope="namespace",subresource="",verb="POST",quantile="0.9"} 6171 +apiserver_request_latencies_summary{resource="configmaps",scope="namespace",subresource="",verb="POST",quantile="0.99"} 12731 +apiserver_request_latencies_summary_sum{resource="configmaps",scope="namespace",subresource="",verb="POST"} 9.1312572e+07 +apiserver_request_latencies_summary_count{resource="configmaps",scope="namespace",subresource="",verb="POST"} 22009 +apiserver_request_latencies_summary{resource="configmaps",scope="namespace",subresource="",verb="PUT",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="configmaps",scope="namespace",subresource="",verb="PUT",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="configmaps",scope="namespace",subresource="",verb="PUT",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="configmaps",scope="namespace",subresource="",verb="PUT"} 2145 +apiserver_request_latencies_summary_count{resource="configmaps",scope="namespace",subresource="",verb="PUT"} 1 +apiserver_request_latencies_summary{resource="configmaps",scope="namespace",subresource="",verb="WATCH",quantile="0.5"} 4.49000563e+08 +apiserver_request_latencies_summary{resource="configmaps",scope="namespace",subresource="",verb="WATCH",quantile="0.9"} 5.68000482e+08 +apiserver_request_latencies_summary{resource="configmaps",scope="namespace",subresource="",verb="WATCH",quantile="0.99"} 5.91000589e+08 +apiserver_request_latencies_summary_sum{resource="configmaps",scope="namespace",subresource="",verb="WATCH"} 6.59801007214e+11 +apiserver_request_latencies_summary_count{resource="configmaps",scope="namespace",subresource="",verb="WATCH"} 1462 +apiserver_request_latencies_summary{resource="controllerrevisions",scope="cluster",subresource="",verb="LIST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="controllerrevisions",scope="cluster",subresource="",verb="LIST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="controllerrevisions",scope="cluster",subresource="",verb="LIST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="controllerrevisions",scope="cluster",subresource="",verb="LIST"} 298 +apiserver_request_latencies_summary_count{resource="controllerrevisions",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_latencies_summary{resource="controllerrevisions",scope="cluster",subresource="",verb="WATCH",quantile="0.5"} 4.37000558e+08 +apiserver_request_latencies_summary{resource="controllerrevisions",scope="cluster",subresource="",verb="WATCH",quantile="0.9"} 5.59000502e+08 +apiserver_request_latencies_summary{resource="controllerrevisions",scope="cluster",subresource="",verb="WATCH",quantile="0.99"} 5.68000381e+08 +apiserver_request_latencies_summary_sum{resource="controllerrevisions",scope="cluster",subresource="",verb="WATCH"} 6.59457907105e+11 +apiserver_request_latencies_summary_count{resource="controllerrevisions",scope="cluster",subresource="",verb="WATCH"} 1463 +apiserver_request_latencies_summary{resource="controllerrevisions",scope="namespace",subresource="",verb="DELETE",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="controllerrevisions",scope="namespace",subresource="",verb="DELETE",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="controllerrevisions",scope="namespace",subresource="",verb="DELETE",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="controllerrevisions",scope="namespace",subresource="",verb="DELETE"} 40480 +apiserver_request_latencies_summary_count{resource="controllerrevisions",scope="namespace",subresource="",verb="DELETE"} 6 +apiserver_request_latencies_summary{resource="controllerrevisions",scope="namespace",subresource="",verb="GET",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="controllerrevisions",scope="namespace",subresource="",verb="GET",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="controllerrevisions",scope="namespace",subresource="",verb="GET",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="controllerrevisions",scope="namespace",subresource="",verb="GET"} 10013 +apiserver_request_latencies_summary_count{resource="controllerrevisions",scope="namespace",subresource="",verb="GET"} 6 +apiserver_request_latencies_summary{resource="controllerrevisions",scope="namespace",subresource="",verb="POST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="controllerrevisions",scope="namespace",subresource="",verb="POST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="controllerrevisions",scope="namespace",subresource="",verb="POST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="controllerrevisions",scope="namespace",subresource="",verb="POST"} 30051 +apiserver_request_latencies_summary_count{resource="controllerrevisions",scope="namespace",subresource="",verb="POST"} 9 +apiserver_request_latencies_summary{resource="cronjobs",scope="cluster",subresource="",verb="LIST",quantile="0.5"} 968 +apiserver_request_latencies_summary{resource="cronjobs",scope="cluster",subresource="",verb="LIST",quantile="0.9"} 1969 +apiserver_request_latencies_summary{resource="cronjobs",scope="cluster",subresource="",verb="LIST",quantile="0.99"} 5795 +apiserver_request_latencies_summary_sum{resource="cronjobs",scope="cluster",subresource="",verb="LIST"} 8.8828794e+07 +apiserver_request_latencies_summary_count{resource="cronjobs",scope="cluster",subresource="",verb="LIST"} 65930 +apiserver_request_latencies_summary{resource="cronjobs",scope="cluster",subresource="",verb="WATCH",quantile="0.5"} 4.37000708e+08 +apiserver_request_latencies_summary{resource="cronjobs",scope="cluster",subresource="",verb="WATCH",quantile="0.9"} 5.5500038e+08 +apiserver_request_latencies_summary{resource="cronjobs",scope="cluster",subresource="",verb="WATCH",quantile="0.99"} 5.93000492e+08 +apiserver_request_latencies_summary_sum{resource="cronjobs",scope="cluster",subresource="",verb="WATCH"} 6.59673062825e+11 +apiserver_request_latencies_summary_count{resource="cronjobs",scope="cluster",subresource="",verb="WATCH"} 1467 +apiserver_request_latencies_summary{resource="customresourcedefinitions",scope="cluster",subresource="",verb="LIST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="customresourcedefinitions",scope="cluster",subresource="",verb="LIST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="customresourcedefinitions",scope="cluster",subresource="",verb="LIST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="customresourcedefinitions",scope="cluster",subresource="",verb="LIST"} 148703 +apiserver_request_latencies_summary_count{resource="customresourcedefinitions",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_latencies_summary{resource="customresourcedefinitions",scope="cluster",subresource="",verb="WATCH",quantile="0.5"} 3.88000431e+08 +apiserver_request_latencies_summary{resource="customresourcedefinitions",scope="cluster",subresource="",verb="WATCH",quantile="0.9"} 5.80000388e+08 +apiserver_request_latencies_summary{resource="customresourcedefinitions",scope="cluster",subresource="",verb="WATCH",quantile="0.99"} 5.9500047e+08 +apiserver_request_latencies_summary_sum{resource="customresourcedefinitions",scope="cluster",subresource="",verb="WATCH"} 6.59897009038e+11 +apiserver_request_latencies_summary_count{resource="customresourcedefinitions",scope="cluster",subresource="",verb="WATCH"} 1467 +apiserver_request_latencies_summary{resource="daemonsets",scope="cluster",subresource="",verb="LIST",quantile="0.5"} 1869 +apiserver_request_latencies_summary{resource="daemonsets",scope="cluster",subresource="",verb="LIST",quantile="0.9"} 2352 +apiserver_request_latencies_summary{resource="daemonsets",scope="cluster",subresource="",verb="LIST",quantile="0.99"} 2363 +apiserver_request_latencies_summary_sum{resource="daemonsets",scope="cluster",subresource="",verb="LIST"} 1.783238e+06 +apiserver_request_latencies_summary_count{resource="daemonsets",scope="cluster",subresource="",verb="LIST"} 713 +apiserver_request_latencies_summary{resource="daemonsets",scope="cluster",subresource="",verb="WATCH",quantile="0.5"} 4.38000453e+08 +apiserver_request_latencies_summary{resource="daemonsets",scope="cluster",subresource="",verb="WATCH",quantile="0.9"} 5.60000499e+08 +apiserver_request_latencies_summary{resource="daemonsets",scope="cluster",subresource="",verb="WATCH",quantile="0.99"} 5.89000617e+08 +apiserver_request_latencies_summary_sum{resource="daemonsets",scope="cluster",subresource="",verb="WATCH"} 1.978402804959e+12 +apiserver_request_latencies_summary_count{resource="daemonsets",scope="cluster",subresource="",verb="WATCH"} 4412 +apiserver_request_latencies_summary{resource="daemonsets",scope="namespace",subresource="",verb="DELETE",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="daemonsets",scope="namespace",subresource="",verb="DELETE",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="daemonsets",scope="namespace",subresource="",verb="DELETE",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="daemonsets",scope="namespace",subresource="",verb="DELETE"} 21094 +apiserver_request_latencies_summary_count{resource="daemonsets",scope="namespace",subresource="",verb="DELETE"} 3 +apiserver_request_latencies_summary{resource="daemonsets",scope="namespace",subresource="",verb="GET",quantile="0.5"} 1395 +apiserver_request_latencies_summary{resource="daemonsets",scope="namespace",subresource="",verb="GET",quantile="0.9"} 1869 +apiserver_request_latencies_summary{resource="daemonsets",scope="namespace",subresource="",verb="GET",quantile="0.99"} 3906 +apiserver_request_latencies_summary_sum{resource="daemonsets",scope="namespace",subresource="",verb="GET"} 1.7674492e+07 +apiserver_request_latencies_summary_count{resource="daemonsets",scope="namespace",subresource="",verb="GET"} 11099 +apiserver_request_latencies_summary{resource="daemonsets",scope="namespace",subresource="",verb="LIST",quantile="0.5"} 1714 +apiserver_request_latencies_summary{resource="daemonsets",scope="namespace",subresource="",verb="LIST",quantile="0.9"} 2330 +apiserver_request_latencies_summary{resource="daemonsets",scope="namespace",subresource="",verb="LIST",quantile="0.99"} 4617 +apiserver_request_latencies_summary_sum{resource="daemonsets",scope="namespace",subresource="",verb="LIST"} 4.2542811e+07 +apiserver_request_latencies_summary_count{resource="daemonsets",scope="namespace",subresource="",verb="LIST"} 21999 +apiserver_request_latencies_summary{resource="daemonsets",scope="namespace",subresource="",verb="PATCH",quantile="0.5"} 3754 +apiserver_request_latencies_summary{resource="daemonsets",scope="namespace",subresource="",verb="PATCH",quantile="0.9"} 5076 +apiserver_request_latencies_summary{resource="daemonsets",scope="namespace",subresource="",verb="PATCH",quantile="0.99"} 10839 +apiserver_request_latencies_summary_sum{resource="daemonsets",scope="namespace",subresource="",verb="PATCH"} 4.6349882e+07 +apiserver_request_latencies_summary_count{resource="daemonsets",scope="namespace",subresource="",verb="PATCH"} 10998 +apiserver_request_latencies_summary{resource="daemonsets",scope="namespace",subresource="",verb="POST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="daemonsets",scope="namespace",subresource="",verb="POST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="daemonsets",scope="namespace",subresource="",verb="POST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="daemonsets",scope="namespace",subresource="",verb="POST"} 81365 +apiserver_request_latencies_summary_count{resource="daemonsets",scope="namespace",subresource="",verb="POST"} 6 +apiserver_request_latencies_summary{resource="daemonsets",scope="namespace",subresource="",verb="PUT",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="daemonsets",scope="namespace",subresource="",verb="PUT",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="daemonsets",scope="namespace",subresource="",verb="PUT",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="daemonsets",scope="namespace",subresource="",verb="PUT"} 29952 +apiserver_request_latencies_summary_count{resource="daemonsets",scope="namespace",subresource="",verb="PUT"} 3 +apiserver_request_latencies_summary{resource="daemonsets",scope="namespace",subresource="status",verb="PUT",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="daemonsets",scope="namespace",subresource="status",verb="PUT",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="daemonsets",scope="namespace",subresource="status",verb="PUT",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="daemonsets",scope="namespace",subresource="status",verb="PUT"} 1.336329e+06 +apiserver_request_latencies_summary_count{resource="daemonsets",scope="namespace",subresource="status",verb="PUT"} 116 +apiserver_request_latencies_summary{resource="deployments",scope="cluster",subresource="",verb="LIST",quantile="0.5"} 2815 +apiserver_request_latencies_summary{resource="deployments",scope="cluster",subresource="",verb="LIST",quantile="0.9"} 3555 +apiserver_request_latencies_summary{resource="deployments",scope="cluster",subresource="",verb="LIST",quantile="0.99"} 3747 +apiserver_request_latencies_summary_sum{resource="deployments",scope="cluster",subresource="",verb="LIST"} 2.461062e+06 +apiserver_request_latencies_summary_count{resource="deployments",scope="cluster",subresource="",verb="LIST"} 713 +apiserver_request_latencies_summary{resource="deployments",scope="cluster",subresource="",verb="WATCH",quantile="0.5"} 4.49000581e+08 +apiserver_request_latencies_summary{resource="deployments",scope="cluster",subresource="",verb="WATCH",quantile="0.9"} 5.63000532e+08 +apiserver_request_latencies_summary{resource="deployments",scope="cluster",subresource="",verb="WATCH",quantile="0.99"} 5.91000557e+08 +apiserver_request_latencies_summary_sum{resource="deployments",scope="cluster",subresource="",verb="WATCH"} 1.978039440788e+12 +apiserver_request_latencies_summary_count{resource="deployments",scope="cluster",subresource="",verb="WATCH"} 4384 +apiserver_request_latencies_summary{resource="deployments",scope="namespace",subresource="",verb="DELETE",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="deployments",scope="namespace",subresource="",verb="DELETE",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="deployments",scope="namespace",subresource="",verb="DELETE",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="deployments",scope="namespace",subresource="",verb="DELETE"} 139646 +apiserver_request_latencies_summary_count{resource="deployments",scope="namespace",subresource="",verb="DELETE"} 14 +apiserver_request_latencies_summary{resource="deployments",scope="namespace",subresource="",verb="GET",quantile="0.5"} 1361 +apiserver_request_latencies_summary{resource="deployments",scope="namespace",subresource="",verb="GET",quantile="0.9"} 1841 +apiserver_request_latencies_summary{resource="deployments",scope="namespace",subresource="",verb="GET",quantile="0.99"} 3935 +apiserver_request_latencies_summary_sum{resource="deployments",scope="namespace",subresource="",verb="GET"} 9.882797e+07 +apiserver_request_latencies_summary_count{resource="deployments",scope="namespace",subresource="",verb="GET"} 66026 +apiserver_request_latencies_summary{resource="deployments",scope="namespace",subresource="",verb="LIST",quantile="0.5"} 2393 +apiserver_request_latencies_summary{resource="deployments",scope="namespace",subresource="",verb="LIST",quantile="0.9"} 3519 +apiserver_request_latencies_summary{resource="deployments",scope="namespace",subresource="",verb="LIST",quantile="0.99"} 9248 +apiserver_request_latencies_summary_sum{resource="deployments",scope="namespace",subresource="",verb="LIST"} 1.16859281e+08 +apiserver_request_latencies_summary_count{resource="deployments",scope="namespace",subresource="",verb="LIST"} 43994 +apiserver_request_latencies_summary{resource="deployments",scope="namespace",subresource="",verb="PATCH",quantile="0.5"} 3130 +apiserver_request_latencies_summary{resource="deployments",scope="namespace",subresource="",verb="PATCH",quantile="0.9"} 4392 +apiserver_request_latencies_summary{resource="deployments",scope="namespace",subresource="",verb="PATCH",quantile="0.99"} 7614 +apiserver_request_latencies_summary_sum{resource="deployments",scope="namespace",subresource="",verb="PATCH"} 2.27196113e+08 +apiserver_request_latencies_summary_count{resource="deployments",scope="namespace",subresource="",verb="PATCH"} 65989 +apiserver_request_latencies_summary{resource="deployments",scope="namespace",subresource="",verb="POST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="deployments",scope="namespace",subresource="",verb="POST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="deployments",scope="namespace",subresource="",verb="POST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="deployments",scope="namespace",subresource="",verb="POST"} 410336 +apiserver_request_latencies_summary_count{resource="deployments",scope="namespace",subresource="",verb="POST"} 24 +apiserver_request_latencies_summary{resource="deployments",scope="namespace",subresource="",verb="PUT",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="deployments",scope="namespace",subresource="",verb="PUT",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="deployments",scope="namespace",subresource="",verb="PUT",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="deployments",scope="namespace",subresource="",verb="PUT"} 1.450354e+06 +apiserver_request_latencies_summary_count{resource="deployments",scope="namespace",subresource="",verb="PUT"} 15 +apiserver_request_latencies_summary{resource="deployments",scope="namespace",subresource="scale",verb="GET",quantile="0.5"} 918 +apiserver_request_latencies_summary{resource="deployments",scope="namespace",subresource="scale",verb="GET",quantile="0.9"} 1846 +apiserver_request_latencies_summary{resource="deployments",scope="namespace",subresource="scale",verb="GET",quantile="0.99"} 4309 +apiserver_request_latencies_summary_sum{resource="deployments",scope="namespace",subresource="scale",verb="GET"} 8.2149159e+07 +apiserver_request_latencies_summary_count{resource="deployments",scope="namespace",subresource="scale",verb="GET"} 65893 +apiserver_request_latencies_summary{resource="deployments",scope="namespace",subresource="scale",verb="PUT",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="deployments",scope="namespace",subresource="scale",verb="PUT",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="deployments",scope="namespace",subresource="scale",verb="PUT",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="deployments",scope="namespace",subresource="scale",verb="PUT"} 25903 +apiserver_request_latencies_summary_count{resource="deployments",scope="namespace",subresource="scale",verb="PUT"} 1 +apiserver_request_latencies_summary{resource="deployments",scope="namespace",subresource="status",verb="PUT",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="deployments",scope="namespace",subresource="status",verb="PUT",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="deployments",scope="namespace",subresource="status",verb="PUT",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="deployments",scope="namespace",subresource="status",verb="PUT"} 5.307111e+06 +apiserver_request_latencies_summary_count{resource="deployments",scope="namespace",subresource="status",verb="PUT"} 347 +apiserver_request_latencies_summary{resource="endpoints",scope="cluster",subresource="",verb="LIST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="endpoints",scope="cluster",subresource="",verb="LIST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="endpoints",scope="cluster",subresource="",verb="LIST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="endpoints",scope="cluster",subresource="",verb="LIST"} 133887 +apiserver_request_latencies_summary_count{resource="endpoints",scope="cluster",subresource="",verb="LIST"} 13 +apiserver_request_latencies_summary{resource="endpoints",scope="cluster",subresource="",verb="WATCH",quantile="0.5"} 4.58000518e+08 +apiserver_request_latencies_summary{resource="endpoints",scope="cluster",subresource="",verb="WATCH",quantile="0.9"} 5.65000491e+08 +apiserver_request_latencies_summary{resource="endpoints",scope="cluster",subresource="",verb="WATCH",quantile="0.99"} 5.95000452e+08 +apiserver_request_latencies_summary_sum{resource="endpoints",scope="cluster",subresource="",verb="WATCH"} 4.618957403529e+12 +apiserver_request_latencies_summary_count{resource="endpoints",scope="cluster",subresource="",verb="WATCH"} 10319 +apiserver_request_latencies_summary{resource="endpoints",scope="namespace",subresource="",verb="GET",quantile="0.5"} 969 +apiserver_request_latencies_summary{resource="endpoints",scope="namespace",subresource="",verb="GET",quantile="0.9"} 1363 +apiserver_request_latencies_summary{resource="endpoints",scope="namespace",subresource="",verb="GET",quantile="0.99"} 3669 +apiserver_request_latencies_summary_sum{resource="endpoints",scope="namespace",subresource="",verb="GET"} 8.34805253e+08 +apiserver_request_latencies_summary_count{resource="endpoints",scope="namespace",subresource="",verb="GET"} 733671 +apiserver_request_latencies_summary{resource="endpoints",scope="namespace",subresource="",verb="LIST",quantile="0.5"} 1518 +apiserver_request_latencies_summary{resource="endpoints",scope="namespace",subresource="",verb="LIST",quantile="0.9"} 2291 +apiserver_request_latencies_summary{resource="endpoints",scope="namespace",subresource="",verb="LIST",quantile="0.99"} 6023 +apiserver_request_latencies_summary_sum{resource="endpoints",scope="namespace",subresource="",verb="LIST"} 3.8610514e+07 +apiserver_request_latencies_summary_count{resource="endpoints",scope="namespace",subresource="",verb="LIST"} 21997 +apiserver_request_latencies_summary{resource="endpoints",scope="namespace",subresource="",verb="POST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="endpoints",scope="namespace",subresource="",verb="POST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="endpoints",scope="namespace",subresource="",verb="POST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="endpoints",scope="namespace",subresource="",verb="POST"} 56853 +apiserver_request_latencies_summary_count{resource="endpoints",scope="namespace",subresource="",verb="POST"} 11 +apiserver_request_latencies_summary{resource="endpoints",scope="namespace",subresource="",verb="PUT",quantile="0.5"} 2113 +apiserver_request_latencies_summary{resource="endpoints",scope="namespace",subresource="",verb="PUT",quantile="0.9"} 3499 +apiserver_request_latencies_summary{resource="endpoints",scope="namespace",subresource="",verb="PUT",quantile="0.99"} 7840 +apiserver_request_latencies_summary_sum{resource="endpoints",scope="namespace",subresource="",verb="PUT"} 1.660247858e+09 +apiserver_request_latencies_summary_count{resource="endpoints",scope="namespace",subresource="",verb="PUT"} 656937 +apiserver_request_latencies_summary{resource="events",scope="cluster",subresource="",verb="LIST",quantile="0.5"} 1326 +apiserver_request_latencies_summary{resource="events",scope="cluster",subresource="",verb="LIST",quantile="0.9"} 2849 +apiserver_request_latencies_summary{resource="events",scope="cluster",subresource="",verb="LIST",quantile="0.99"} 2942 +apiserver_request_latencies_summary_sum{resource="events",scope="cluster",subresource="",verb="LIST"} 2.19449e+06 +apiserver_request_latencies_summary_count{resource="events",scope="cluster",subresource="",verb="LIST"} 1131 +apiserver_request_latencies_summary{resource="events",scope="cluster",subresource="",verb="WATCH",quantile="0.5"} 3.20000537e+08 +apiserver_request_latencies_summary{resource="events",scope="cluster",subresource="",verb="WATCH",quantile="0.9"} 5.59000402e+08 +apiserver_request_latencies_summary{resource="events",scope="cluster",subresource="",verb="WATCH",quantile="0.99"} 5.95000443e+08 +apiserver_request_latencies_summary_sum{resource="events",scope="cluster",subresource="",verb="WATCH"} 6.58396349345e+11 +apiserver_request_latencies_summary_count{resource="events",scope="cluster",subresource="",verb="WATCH"} 2599 +apiserver_request_latencies_summary{resource="events",scope="namespace",subresource="",verb="LIST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="events",scope="namespace",subresource="",verb="LIST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="events",scope="namespace",subresource="",verb="LIST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="events",scope="namespace",subresource="",verb="LIST"} 10407 +apiserver_request_latencies_summary_count{resource="events",scope="namespace",subresource="",verb="LIST"} 2 +apiserver_request_latencies_summary{resource="events",scope="namespace",subresource="",verb="PATCH",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="events",scope="namespace",subresource="",verb="PATCH",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="events",scope="namespace",subresource="",verb="PATCH",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="events",scope="namespace",subresource="",verb="PATCH"} 4.031187e+06 +apiserver_request_latencies_summary_count{resource="events",scope="namespace",subresource="",verb="PATCH"} 388 +apiserver_request_latencies_summary{resource="events",scope="namespace",subresource="",verb="POST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="events",scope="namespace",subresource="",verb="POST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="events",scope="namespace",subresource="",verb="POST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="events",scope="namespace",subresource="",verb="POST"} 3.1122339e+07 +apiserver_request_latencies_summary_count{resource="events",scope="namespace",subresource="",verb="POST"} 1659 +apiserver_request_latencies_summary{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="LIST",quantile="0.5"} 1105 +apiserver_request_latencies_summary{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="LIST",quantile="0.9"} 2280 +apiserver_request_latencies_summary{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="LIST",quantile="0.99"} 2427 +apiserver_request_latencies_summary_sum{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="LIST"} 1.024073e+06 +apiserver_request_latencies_summary_count{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="LIST"} 710 +apiserver_request_latencies_summary{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="WATCH",quantile="0.5"} 4.59002124e+08 +apiserver_request_latencies_summary{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="WATCH",quantile="0.9"} 5.76000445e+08 +apiserver_request_latencies_summary{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="WATCH",quantile="0.99"} 5.94000922e+08 +apiserver_request_latencies_summary_sum{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="WATCH"} 6.59831109566e+11 +apiserver_request_latencies_summary_count{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="WATCH"} 1459 +apiserver_request_latencies_summary{resource="ingresses",scope="cluster",subresource="",verb="LIST",quantile="0.5"} 1134 +apiserver_request_latencies_summary{resource="ingresses",scope="cluster",subresource="",verb="LIST",quantile="0.9"} 1751 +apiserver_request_latencies_summary{resource="ingresses",scope="cluster",subresource="",verb="LIST",quantile="0.99"} 1815 +apiserver_request_latencies_summary_sum{resource="ingresses",scope="cluster",subresource="",verb="LIST"} 1.102127e+06 +apiserver_request_latencies_summary_count{resource="ingresses",scope="cluster",subresource="",verb="LIST"} 712 +apiserver_request_latencies_summary{resource="ingresses",scope="cluster",subresource="",verb="WATCH",quantile="0.5"} 4.72000509e+08 +apiserver_request_latencies_summary{resource="ingresses",scope="cluster",subresource="",verb="WATCH",quantile="0.9"} 5.73000531e+08 +apiserver_request_latencies_summary{resource="ingresses",scope="cluster",subresource="",verb="WATCH",quantile="0.99"} 5.98000457e+08 +apiserver_request_latencies_summary_sum{resource="ingresses",scope="cluster",subresource="",verb="WATCH"} 1.319639948582e+12 +apiserver_request_latencies_summary_count{resource="ingresses",scope="cluster",subresource="",verb="WATCH"} 2941 +apiserver_request_latencies_summary{resource="ingresses",scope="namespace",subresource="",verb="LIST",quantile="0.5"} 1136 +apiserver_request_latencies_summary{resource="ingresses",scope="namespace",subresource="",verb="LIST",quantile="0.9"} 1704 +apiserver_request_latencies_summary{resource="ingresses",scope="namespace",subresource="",verb="LIST",quantile="0.99"} 3424 +apiserver_request_latencies_summary_sum{resource="ingresses",scope="namespace",subresource="",verb="LIST"} 2.9407747e+07 +apiserver_request_latencies_summary_count{resource="ingresses",scope="namespace",subresource="",verb="LIST"} 21997 +apiserver_request_latencies_summary{resource="jobs",scope="",subresource="",verb="UPDATE",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="jobs",scope="",subresource="",verb="UPDATE",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="jobs",scope="",subresource="",verb="UPDATE",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="jobs",scope="",subresource="",verb="UPDATE"} 6.0000399e+07 +apiserver_request_latencies_summary_count{resource="jobs",scope="",subresource="",verb="UPDATE"} 1 +apiserver_request_latencies_summary{resource="jobs",scope="cluster",subresource="",verb="LIST",quantile="0.5"} 1432 +apiserver_request_latencies_summary{resource="jobs",scope="cluster",subresource="",verb="LIST",quantile="0.9"} 2281 +apiserver_request_latencies_summary{resource="jobs",scope="cluster",subresource="",verb="LIST",quantile="0.99"} 6264 +apiserver_request_latencies_summary_sum{resource="jobs",scope="cluster",subresource="",verb="LIST"} 1.2027929e+08 +apiserver_request_latencies_summary_count{resource="jobs",scope="cluster",subresource="",verb="LIST"} 66639 +apiserver_request_latencies_summary{resource="jobs",scope="cluster",subresource="",verb="WATCH",quantile="0.5"} 4.73000721e+08 +apiserver_request_latencies_summary{resource="jobs",scope="cluster",subresource="",verb="WATCH",quantile="0.9"} 5.69000451e+08 +apiserver_request_latencies_summary{resource="jobs",scope="cluster",subresource="",verb="WATCH",quantile="0.99"} 5.88000646e+08 +apiserver_request_latencies_summary_sum{resource="jobs",scope="cluster",subresource="",verb="WATCH"} 6.59704930318e+11 +apiserver_request_latencies_summary_count{resource="jobs",scope="cluster",subresource="",verb="WATCH"} 1469 +apiserver_request_latencies_summary{resource="jobs",scope="namespace",subresource="",verb="DELETE",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="jobs",scope="namespace",subresource="",verb="DELETE",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="jobs",scope="namespace",subresource="",verb="DELETE",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="jobs",scope="namespace",subresource="",verb="DELETE"} 1.437944e+06 +apiserver_request_latencies_summary_count{resource="jobs",scope="namespace",subresource="",verb="DELETE"} 16 +apiserver_request_latencies_summary{resource="jobs",scope="namespace",subresource="",verb="GET",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="jobs",scope="namespace",subresource="",verb="GET",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="jobs",scope="namespace",subresource="",verb="GET",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="jobs",scope="namespace",subresource="",verb="GET"} 117705 +apiserver_request_latencies_summary_count{resource="jobs",scope="namespace",subresource="",verb="GET"} 68 +apiserver_request_latencies_summary{resource="jobs",scope="namespace",subresource="",verb="LIST",quantile="0.5"} 1286 +apiserver_request_latencies_summary{resource="jobs",scope="namespace",subresource="",verb="LIST",quantile="0.9"} 1830 +apiserver_request_latencies_summary{resource="jobs",scope="namespace",subresource="",verb="LIST",quantile="0.99"} 5745 +apiserver_request_latencies_summary_sum{resource="jobs",scope="namespace",subresource="",verb="LIST"} 3.3805681e+07 +apiserver_request_latencies_summary_count{resource="jobs",scope="namespace",subresource="",verb="LIST"} 21997 +apiserver_request_latencies_summary{resource="jobs",scope="namespace",subresource="",verb="PATCH",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="jobs",scope="namespace",subresource="",verb="PATCH",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="jobs",scope="namespace",subresource="",verb="PATCH",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="jobs",scope="namespace",subresource="",verb="PATCH"} 5655 +apiserver_request_latencies_summary_count{resource="jobs",scope="namespace",subresource="",verb="PATCH"} 1 +apiserver_request_latencies_summary{resource="jobs",scope="namespace",subresource="",verb="POST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="jobs",scope="namespace",subresource="",verb="POST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="jobs",scope="namespace",subresource="",verb="POST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="jobs",scope="namespace",subresource="",verb="POST"} 1.52572e+06 +apiserver_request_latencies_summary_count{resource="jobs",scope="namespace",subresource="",verb="POST"} 19 +apiserver_request_latencies_summary{resource="jobs",scope="namespace",subresource="",verb="PUT",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="jobs",scope="namespace",subresource="",verb="PUT",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="jobs",scope="namespace",subresource="",verb="PUT",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="jobs",scope="namespace",subresource="",verb="PUT"} 6.261372e+07 +apiserver_request_latencies_summary_count{resource="jobs",scope="namespace",subresource="",verb="PUT"} 17 +apiserver_request_latencies_summary{resource="jobs",scope="namespace",subresource="status",verb="PUT",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="jobs",scope="namespace",subresource="status",verb="PUT",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="jobs",scope="namespace",subresource="status",verb="PUT",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="jobs",scope="namespace",subresource="status",verb="PUT"} 408553 +apiserver_request_latencies_summary_count{resource="jobs",scope="namespace",subresource="status",verb="PUT"} 40 +apiserver_request_latencies_summary{resource="limitranges",scope="cluster",subresource="",verb="LIST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="limitranges",scope="cluster",subresource="",verb="LIST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="limitranges",scope="cluster",subresource="",verb="LIST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="limitranges",scope="cluster",subresource="",verb="LIST"} 1.654312e+06 +apiserver_request_latencies_summary_count{resource="limitranges",scope="cluster",subresource="",verb="LIST"} 2 +apiserver_request_latencies_summary{resource="limitranges",scope="cluster",subresource="",verb="WATCH",quantile="0.5"} 4.47000458e+08 +apiserver_request_latencies_summary{resource="limitranges",scope="cluster",subresource="",verb="WATCH",quantile="0.9"} 5.64000408e+08 +apiserver_request_latencies_summary{resource="limitranges",scope="cluster",subresource="",verb="WATCH",quantile="0.99"} 5.9000062e+08 +apiserver_request_latencies_summary_sum{resource="limitranges",scope="cluster",subresource="",verb="WATCH"} 1.319158063084e+12 +apiserver_request_latencies_summary_count{resource="limitranges",scope="cluster",subresource="",verb="WATCH"} 2940 +apiserver_request_latencies_summary{resource="limitranges",scope="namespace",subresource="",verb="GET",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="limitranges",scope="namespace",subresource="",verb="GET",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="limitranges",scope="namespace",subresource="",verb="GET",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="limitranges",scope="namespace",subresource="",verb="GET"} 3552 +apiserver_request_latencies_summary_count{resource="limitranges",scope="namespace",subresource="",verb="GET"} 1 +apiserver_request_latencies_summary{resource="limitranges",scope="namespace",subresource="",verb="LIST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="limitranges",scope="namespace",subresource="",verb="LIST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="limitranges",scope="namespace",subresource="",verb="LIST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="limitranges",scope="namespace",subresource="",verb="LIST"} 134182 +apiserver_request_latencies_summary_count{resource="limitranges",scope="namespace",subresource="",verb="LIST"} 18 +apiserver_request_latencies_summary{resource="limitranges",scope="namespace",subresource="",verb="POST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="limitranges",scope="namespace",subresource="",verb="POST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="limitranges",scope="namespace",subresource="",verb="POST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="limitranges",scope="namespace",subresource="",verb="POST"} 8582 +apiserver_request_latencies_summary_count{resource="limitranges",scope="namespace",subresource="",verb="POST"} 1 +apiserver_request_latencies_summary{resource="namespaces",scope="cluster",subresource="",verb="GET",quantile="0.5"} 909 +apiserver_request_latencies_summary{resource="namespaces",scope="cluster",subresource="",verb="GET",quantile="0.9"} 1393 +apiserver_request_latencies_summary{resource="namespaces",scope="cluster",subresource="",verb="GET",quantile="0.99"} 4423 +apiserver_request_latencies_summary_sum{resource="namespaces",scope="cluster",subresource="",verb="GET"} 9.5827906e+07 +apiserver_request_latencies_summary_count{resource="namespaces",scope="cluster",subresource="",verb="GET"} 87994 +apiserver_request_latencies_summary{resource="namespaces",scope="cluster",subresource="",verb="LIST",quantile="0.5"} 1272 +apiserver_request_latencies_summary{resource="namespaces",scope="cluster",subresource="",verb="LIST",quantile="0.9"} 2202 +apiserver_request_latencies_summary{resource="namespaces",scope="cluster",subresource="",verb="LIST",quantile="0.99"} 4698 +apiserver_request_latencies_summary_sum{resource="namespaces",scope="cluster",subresource="",verb="LIST"} 4.4608509e+07 +apiserver_request_latencies_summary_count{resource="namespaces",scope="cluster",subresource="",verb="LIST"} 29194 +apiserver_request_latencies_summary{resource="namespaces",scope="cluster",subresource="",verb="PATCH",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="namespaces",scope="cluster",subresource="",verb="PATCH",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="namespaces",scope="cluster",subresource="",verb="PATCH",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="namespaces",scope="cluster",subresource="",verb="PATCH"} 4186 +apiserver_request_latencies_summary_count{resource="namespaces",scope="cluster",subresource="",verb="PATCH"} 1 +apiserver_request_latencies_summary{resource="namespaces",scope="cluster",subresource="",verb="POST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="namespaces",scope="cluster",subresource="",verb="POST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="namespaces",scope="cluster",subresource="",verb="POST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="namespaces",scope="cluster",subresource="",verb="POST"} 793020 +apiserver_request_latencies_summary_count{resource="namespaces",scope="cluster",subresource="",verb="POST"} 16 +apiserver_request_latencies_summary{resource="namespaces",scope="cluster",subresource="",verb="WATCH",quantile="0.5"} 4.4400044e+08 +apiserver_request_latencies_summary{resource="namespaces",scope="cluster",subresource="",verb="WATCH",quantile="0.9"} 5.63000692e+08 +apiserver_request_latencies_summary{resource="namespaces",scope="cluster",subresource="",verb="WATCH",quantile="0.99"} 5.87000781e+08 +apiserver_request_latencies_summary_sum{resource="namespaces",scope="cluster",subresource="",verb="WATCH"} 1.979690652276e+12 +apiserver_request_latencies_summary_count{resource="namespaces",scope="cluster",subresource="",verb="WATCH"} 4392 +apiserver_request_latencies_summary{resource="networkpolicies",scope="cluster",subresource="",verb="LIST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="networkpolicies",scope="cluster",subresource="",verb="LIST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="networkpolicies",scope="cluster",subresource="",verb="LIST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="networkpolicies",scope="cluster",subresource="",verb="LIST"} 770 +apiserver_request_latencies_summary_count{resource="networkpolicies",scope="cluster",subresource="",verb="LIST"} 2 +apiserver_request_latencies_summary{resource="networkpolicies",scope="cluster",subresource="",verb="WATCH",quantile="0.5"} 4.54000484e+08 +apiserver_request_latencies_summary{resource="networkpolicies",scope="cluster",subresource="",verb="WATCH",quantile="0.9"} 5.78000739e+08 +apiserver_request_latencies_summary{resource="networkpolicies",scope="cluster",subresource="",verb="WATCH",quantile="0.99"} 5.9700138e+08 +apiserver_request_latencies_summary_sum{resource="networkpolicies",scope="cluster",subresource="",verb="WATCH"} 1.319410001462e+12 +apiserver_request_latencies_summary_count{resource="networkpolicies",scope="cluster",subresource="",verb="WATCH"} 2947 +apiserver_request_latencies_summary{resource="nodes",scope="",subresource="",verb="GET",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="nodes",scope="",subresource="",verb="GET",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="nodes",scope="",subresource="",verb="GET",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="nodes",scope="",subresource="",verb="GET"} 6.0000155e+07 +apiserver_request_latencies_summary_count{resource="nodes",scope="",subresource="",verb="GET"} 1 +apiserver_request_latencies_summary{resource="nodes",scope="cluster",subresource="",verb="DELETE",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="nodes",scope="cluster",subresource="",verb="DELETE",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="nodes",scope="cluster",subresource="",verb="DELETE",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="nodes",scope="cluster",subresource="",verb="DELETE"} 32628 +apiserver_request_latencies_summary_count{resource="nodes",scope="cluster",subresource="",verb="DELETE"} 4 +apiserver_request_latencies_summary{resource="nodes",scope="cluster",subresource="",verb="GET",quantile="0.5"} 524 +apiserver_request_latencies_summary{resource="nodes",scope="cluster",subresource="",verb="GET",quantile="0.9"} 669 +apiserver_request_latencies_summary{resource="nodes",scope="cluster",subresource="",verb="GET",quantile="0.99"} 1809 +apiserver_request_latencies_summary_sum{resource="nodes",scope="cluster",subresource="",verb="GET"} 6.68178451e+08 +apiserver_request_latencies_summary_count{resource="nodes",scope="cluster",subresource="",verb="GET"} 197492 +apiserver_request_latencies_summary{resource="nodes",scope="cluster",subresource="",verb="LIST",quantile="0.5"} 2435 +apiserver_request_latencies_summary{resource="nodes",scope="cluster",subresource="",verb="LIST",quantile="0.9"} 3488 +apiserver_request_latencies_summary{resource="nodes",scope="cluster",subresource="",verb="LIST",quantile="0.99"} 12000 +apiserver_request_latencies_summary_sum{resource="nodes",scope="cluster",subresource="",verb="LIST"} 4.7845123e+08 +apiserver_request_latencies_summary_count{resource="nodes",scope="cluster",subresource="",verb="LIST"} 157377 +apiserver_request_latencies_summary{resource="nodes",scope="cluster",subresource="",verb="PATCH",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="nodes",scope="cluster",subresource="",verb="PATCH",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="nodes",scope="cluster",subresource="",verb="PATCH",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="nodes",scope="cluster",subresource="",verb="PATCH"} 192618 +apiserver_request_latencies_summary_count{resource="nodes",scope="cluster",subresource="",verb="PATCH"} 7 +apiserver_request_latencies_summary{resource="nodes",scope="cluster",subresource="",verb="POST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="nodes",scope="cluster",subresource="",verb="POST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="nodes",scope="cluster",subresource="",verb="POST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="nodes",scope="cluster",subresource="",verb="POST"} 88537 +apiserver_request_latencies_summary_count{resource="nodes",scope="cluster",subresource="",verb="POST"} 7 +apiserver_request_latencies_summary{resource="nodes",scope="cluster",subresource="",verb="PUT",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="nodes",scope="cluster",subresource="",verb="PUT",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="nodes",scope="cluster",subresource="",verb="PUT",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="nodes",scope="cluster",subresource="",verb="PUT"} 213078 +apiserver_request_latencies_summary_count{resource="nodes",scope="cluster",subresource="",verb="PUT"} 15 +apiserver_request_latencies_summary{resource="nodes",scope="cluster",subresource="",verb="WATCH",quantile="0.5"} 4.68000438e+08 +apiserver_request_latencies_summary{resource="nodes",scope="cluster",subresource="",verb="WATCH",quantile="0.9"} 5.7400092e+08 +apiserver_request_latencies_summary{resource="nodes",scope="cluster",subresource="",verb="WATCH",quantile="0.99"} 5.9700034e+08 +apiserver_request_latencies_summary_sum{resource="nodes",scope="cluster",subresource="",verb="WATCH"} 7.918564532837e+12 +apiserver_request_latencies_summary_count{resource="nodes",scope="cluster",subresource="",verb="WATCH"} 17686 +apiserver_request_latencies_summary{resource="nodes",scope="cluster",subresource="status",verb="PATCH",quantile="0.5"} 9592 +apiserver_request_latencies_summary{resource="nodes",scope="cluster",subresource="status",verb="PATCH",quantile="0.9"} 14255 +apiserver_request_latencies_summary{resource="nodes",scope="cluster",subresource="status",verb="PATCH",quantile="0.99"} 32093 +apiserver_request_latencies_summary_sum{resource="nodes",scope="cluster",subresource="status",verb="PATCH"} 2.438676783e+09 +apiserver_request_latencies_summary_count{resource="nodes",scope="cluster",subresource="status",verb="PATCH"} 230098 +apiserver_request_latencies_summary{resource="nodes",scope="cluster",subresource="status",verb="PUT",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="nodes",scope="cluster",subresource="status",verb="PUT",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="nodes",scope="cluster",subresource="status",verb="PUT",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="nodes",scope="cluster",subresource="status",verb="PUT"} 99447 +apiserver_request_latencies_summary_count{resource="nodes",scope="cluster",subresource="status",verb="PUT"} 9 +apiserver_request_latencies_summary{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="LIST",quantile="0.5"} 1384 +apiserver_request_latencies_summary{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="LIST",quantile="0.9"} 2049 +apiserver_request_latencies_summary{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="LIST",quantile="0.99"} 3652 +apiserver_request_latencies_summary_sum{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="LIST"} 1.286718e+06 +apiserver_request_latencies_summary_count{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="LIST"} 711 +apiserver_request_latencies_summary{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="WATCH",quantile="0.5"} 4.33000472e+08 +apiserver_request_latencies_summary{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="WATCH",quantile="0.9"} 5.51000453e+08 +apiserver_request_latencies_summary{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="WATCH",quantile="0.99"} 5.95001197e+08 +apiserver_request_latencies_summary_sum{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="WATCH"} 1.3190451046e+12 +apiserver_request_latencies_summary_count{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="WATCH"} 2949 +apiserver_request_latencies_summary{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="GET",quantile="0.5"} 1554 +apiserver_request_latencies_summary{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="GET",quantile="0.9"} 3004 +apiserver_request_latencies_summary{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="GET",quantile="0.99"} 5901 +apiserver_request_latencies_summary_sum{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="GET"} 1.608315e+07 +apiserver_request_latencies_summary_count{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="GET"} 8712 +apiserver_request_latencies_summary{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="LIST",quantile="0.5"} 1147 +apiserver_request_latencies_summary{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="LIST",quantile="0.9"} 1785 +apiserver_request_latencies_summary{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="LIST",quantile="0.99"} 4135 +apiserver_request_latencies_summary_sum{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="LIST"} 2.9995607e+07 +apiserver_request_latencies_summary_count{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="LIST"} 21997 +apiserver_request_latencies_summary{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="POST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="POST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="POST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="POST"} 15199 +apiserver_request_latencies_summary_count{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="POST"} 1 +apiserver_request_latencies_summary{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="PUT",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="PUT",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="PUT",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="PUT"} 6185 +apiserver_request_latencies_summary_count{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="PUT"} 2 +apiserver_request_latencies_summary{resource="persistentvolumeclaims",scope="namespace",subresource="status",verb="PUT",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="persistentvolumeclaims",scope="namespace",subresource="status",verb="PUT",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="persistentvolumeclaims",scope="namespace",subresource="status",verb="PUT",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="persistentvolumeclaims",scope="namespace",subresource="status",verb="PUT"} 2419 +apiserver_request_latencies_summary_count{resource="persistentvolumeclaims",scope="namespace",subresource="status",verb="PUT"} 1 +apiserver_request_latencies_summary{resource="persistentvolumes",scope="cluster",subresource="",verb="GET",quantile="0.5"} 876 +apiserver_request_latencies_summary{resource="persistentvolumes",scope="cluster",subresource="",verb="GET",quantile="0.9"} 1634 +apiserver_request_latencies_summary{resource="persistentvolumes",scope="cluster",subresource="",verb="GET",quantile="0.99"} 3056 +apiserver_request_latencies_summary_sum{resource="persistentvolumes",scope="cluster",subresource="",verb="GET"} 9.535813e+06 +apiserver_request_latencies_summary_count{resource="persistentvolumes",scope="cluster",subresource="",verb="GET"} 8712 +apiserver_request_latencies_summary{resource="persistentvolumes",scope="cluster",subresource="",verb="LIST",quantile="0.5"} 1128 +apiserver_request_latencies_summary{resource="persistentvolumes",scope="cluster",subresource="",verb="LIST",quantile="0.9"} 1810 +apiserver_request_latencies_summary{resource="persistentvolumes",scope="cluster",subresource="",verb="LIST",quantile="0.99"} 5460 +apiserver_request_latencies_summary_sum{resource="persistentvolumes",scope="cluster",subresource="",verb="LIST"} 3.3164863e+07 +apiserver_request_latencies_summary_count{resource="persistentvolumes",scope="cluster",subresource="",verb="LIST"} 22717 +apiserver_request_latencies_summary{resource="persistentvolumes",scope="cluster",subresource="",verb="POST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="persistentvolumes",scope="cluster",subresource="",verb="POST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="persistentvolumes",scope="cluster",subresource="",verb="POST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="persistentvolumes",scope="cluster",subresource="",verb="POST"} 138053 +apiserver_request_latencies_summary_count{resource="persistentvolumes",scope="cluster",subresource="",verb="POST"} 1 +apiserver_request_latencies_summary{resource="persistentvolumes",scope="cluster",subresource="",verb="WATCH",quantile="0.5"} 4.15000462e+08 +apiserver_request_latencies_summary{resource="persistentvolumes",scope="cluster",subresource="",verb="WATCH",quantile="0.9"} 5.71000489e+08 +apiserver_request_latencies_summary{resource="persistentvolumes",scope="cluster",subresource="",verb="WATCH",quantile="0.99"} 5.8900043e+08 +apiserver_request_latencies_summary_sum{resource="persistentvolumes",scope="cluster",subresource="",verb="WATCH"} 1.979024165553e+12 +apiserver_request_latencies_summary_count{resource="persistentvolumes",scope="cluster",subresource="",verb="WATCH"} 4406 +apiserver_request_latencies_summary{resource="persistentvolumes",scope="cluster",subresource="status",verb="PUT",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="persistentvolumes",scope="cluster",subresource="status",verb="PUT",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="persistentvolumes",scope="cluster",subresource="status",verb="PUT",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="persistentvolumes",scope="cluster",subresource="status",verb="PUT"} 3500 +apiserver_request_latencies_summary_count{resource="persistentvolumes",scope="cluster",subresource="status",verb="PUT"} 1 +apiserver_request_latencies_summary{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="LIST",quantile="0.5"} 1206 +apiserver_request_latencies_summary{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="LIST",quantile="0.9"} 1747 +apiserver_request_latencies_summary{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="LIST",quantile="0.99"} 2167 +apiserver_request_latencies_summary_sum{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="LIST"} 1.012232e+06 +apiserver_request_latencies_summary_count{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="LIST"} 710 +apiserver_request_latencies_summary{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="WATCH",quantile="0.5"} 4.45000478e+08 +apiserver_request_latencies_summary{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="WATCH",quantile="0.9"} 5.69000503e+08 +apiserver_request_latencies_summary{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="WATCH",quantile="0.99"} 5.94000418e+08 +apiserver_request_latencies_summary_sum{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="WATCH"} 6.59755004696e+11 +apiserver_request_latencies_summary_count{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="WATCH"} 1472 +apiserver_request_latencies_summary{resource="pods",scope="cluster",subresource="",verb="LIST",quantile="0.5"} 4961 +apiserver_request_latencies_summary{resource="pods",scope="cluster",subresource="",verb="LIST",quantile="0.9"} 8406 +apiserver_request_latencies_summary{resource="pods",scope="cluster",subresource="",verb="LIST",quantile="0.99"} 16965 +apiserver_request_latencies_summary_sum{resource="pods",scope="cluster",subresource="",verb="LIST"} 7.900688e+07 +apiserver_request_latencies_summary_count{resource="pods",scope="cluster",subresource="",verb="LIST"} 7286 +apiserver_request_latencies_summary{resource="pods",scope="cluster",subresource="",verb="WATCH",quantile="0.5"} 4.65000748e+08 +apiserver_request_latencies_summary{resource="pods",scope="cluster",subresource="",verb="WATCH",quantile="0.9"} 5.88000533e+08 +apiserver_request_latencies_summary{resource="pods",scope="cluster",subresource="",verb="WATCH",quantile="0.99"} 3.290031299e+09 +apiserver_request_latencies_summary_sum{resource="pods",scope="cluster",subresource="",verb="WATCH"} 1.0380663647634e+13 +apiserver_request_latencies_summary_count{resource="pods",scope="cluster",subresource="",verb="WATCH"} 17332 +apiserver_request_latencies_summary{resource="pods",scope="namespace",subresource="",verb="DELETE",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="pods",scope="namespace",subresource="",verb="DELETE",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="pods",scope="namespace",subresource="",verb="DELETE",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="pods",scope="namespace",subresource="",verb="DELETE"} 3.433972e+06 +apiserver_request_latencies_summary_count{resource="pods",scope="namespace",subresource="",verb="DELETE"} 168 +apiserver_request_latencies_summary{resource="pods",scope="namespace",subresource="",verb="GET",quantile="0.5"} 1057 +apiserver_request_latencies_summary{resource="pods",scope="namespace",subresource="",verb="GET",quantile="0.9"} 2073 +apiserver_request_latencies_summary{resource="pods",scope="namespace",subresource="",verb="GET",quantile="0.99"} 5491 +apiserver_request_latencies_summary_sum{resource="pods",scope="namespace",subresource="",verb="GET"} 9.3487208e+07 +apiserver_request_latencies_summary_count{resource="pods",scope="namespace",subresource="",verb="GET"} 66815 +apiserver_request_latencies_summary{resource="pods",scope="namespace",subresource="",verb="LIST",quantile="0.5"} 3771 +apiserver_request_latencies_summary{resource="pods",scope="namespace",subresource="",verb="LIST",quantile="0.9"} 5477 +apiserver_request_latencies_summary{resource="pods",scope="namespace",subresource="",verb="LIST",quantile="0.99"} 20068 +apiserver_request_latencies_summary_sum{resource="pods",scope="namespace",subresource="",verb="LIST"} 1.53386026e+08 +apiserver_request_latencies_summary_count{resource="pods",scope="namespace",subresource="",verb="LIST"} 36425 +apiserver_request_latencies_summary{resource="pods",scope="namespace",subresource="",verb="PATCH",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="pods",scope="namespace",subresource="",verb="PATCH",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="pods",scope="namespace",subresource="",verb="PATCH",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="pods",scope="namespace",subresource="",verb="PATCH"} 900579 +apiserver_request_latencies_summary_count{resource="pods",scope="namespace",subresource="",verb="PATCH"} 36 +apiserver_request_latencies_summary{resource="pods",scope="namespace",subresource="",verb="POST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="pods",scope="namespace",subresource="",verb="POST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="pods",scope="namespace",subresource="",verb="POST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="pods",scope="namespace",subresource="",verb="POST"} 2.941687e+06 +apiserver_request_latencies_summary_count{resource="pods",scope="namespace",subresource="",verb="POST"} 203 +apiserver_request_latencies_summary{resource="pods",scope="namespace",subresource="",verb="WATCH",quantile="0.5"} 4.04000411e+08 +apiserver_request_latencies_summary{resource="pods",scope="namespace",subresource="",verb="WATCH",quantile="0.9"} 5.49002385e+08 +apiserver_request_latencies_summary{resource="pods",scope="namespace",subresource="",verb="WATCH",quantile="0.99"} 5.85000492e+08 +apiserver_request_latencies_summary_sum{resource="pods",scope="namespace",subresource="",verb="WATCH"} 6.60607341894e+11 +apiserver_request_latencies_summary_count{resource="pods",scope="namespace",subresource="",verb="WATCH"} 1468 +apiserver_request_latencies_summary{resource="pods",scope="namespace",subresource="binding",verb="POST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="pods",scope="namespace",subresource="binding",verb="POST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="pods",scope="namespace",subresource="binding",verb="POST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="pods",scope="namespace",subresource="binding",verb="POST"} 1.467975e+06 +apiserver_request_latencies_summary_count{resource="pods",scope="namespace",subresource="binding",verb="POST"} 91 +apiserver_request_latencies_summary{resource="pods",scope="namespace",subresource="exec",verb="CONNECT",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="pods",scope="namespace",subresource="exec",verb="CONNECT",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="pods",scope="namespace",subresource="exec",verb="CONNECT",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="pods",scope="namespace",subresource="exec",verb="CONNECT"} 6.1438916e+07 +apiserver_request_latencies_summary_count{resource="pods",scope="namespace",subresource="exec",verb="CONNECT"} 1 +apiserver_request_latencies_summary{resource="pods",scope="namespace",subresource="log",verb="CONNECT",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="pods",scope="namespace",subresource="log",verb="CONNECT",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="pods",scope="namespace",subresource="log",verb="CONNECT",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="pods",scope="namespace",subresource="log",verb="CONNECT"} 9.995258313e+09 +apiserver_request_latencies_summary_count{resource="pods",scope="namespace",subresource="log",verb="CONNECT"} 15 +apiserver_request_latencies_summary{resource="pods",scope="namespace",subresource="status",verb="PUT",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="pods",scope="namespace",subresource="status",verb="PUT",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="pods",scope="namespace",subresource="status",verb="PUT",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="pods",scope="namespace",subresource="status",verb="PUT"} 6.031823e+06 +apiserver_request_latencies_summary_count{resource="pods",scope="namespace",subresource="status",verb="PUT"} 717 +apiserver_request_latencies_summary{resource="podsecuritypolicies",scope="cluster",subresource="",verb="LIST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="podsecuritypolicies",scope="cluster",subresource="",verb="LIST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="podsecuritypolicies",scope="cluster",subresource="",verb="LIST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="podsecuritypolicies",scope="cluster",subresource="",verb="LIST"} 242 +apiserver_request_latencies_summary_count{resource="podsecuritypolicies",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_request_latencies_summary{resource="podsecuritypolicies",scope="cluster",subresource="",verb="WATCH",quantile="0.5"} 4.43001202e+08 +apiserver_request_latencies_summary{resource="podsecuritypolicies",scope="cluster",subresource="",verb="WATCH",quantile="0.9"} 5.62000705e+08 +apiserver_request_latencies_summary{resource="podsecuritypolicies",scope="cluster",subresource="",verb="WATCH",quantile="0.99"} 5.91000363e+08 +apiserver_request_latencies_summary_sum{resource="podsecuritypolicies",scope="cluster",subresource="",verb="WATCH"} 6.59545988637e+11 +apiserver_request_latencies_summary_count{resource="podsecuritypolicies",scope="cluster",subresource="",verb="WATCH"} 1472 +apiserver_request_latencies_summary{resource="podtemplates",scope="cluster",subresource="",verb="LIST",quantile="0.5"} 1194 +apiserver_request_latencies_summary{resource="podtemplates",scope="cluster",subresource="",verb="LIST",quantile="0.9"} 1740 +apiserver_request_latencies_summary{resource="podtemplates",scope="cluster",subresource="",verb="LIST",quantile="0.99"} 1855 +apiserver_request_latencies_summary_sum{resource="podtemplates",scope="cluster",subresource="",verb="LIST"} 1.057701e+06 +apiserver_request_latencies_summary_count{resource="podtemplates",scope="cluster",subresource="",verb="LIST"} 710 +apiserver_request_latencies_summary{resource="podtemplates",scope="cluster",subresource="",verb="WATCH",quantile="0.5"} 4.46000421e+08 +apiserver_request_latencies_summary{resource="podtemplates",scope="cluster",subresource="",verb="WATCH",quantile="0.9"} 5.65000556e+08 +apiserver_request_latencies_summary{resource="podtemplates",scope="cluster",subresource="",verb="WATCH",quantile="0.99"} 5.88000365e+08 +apiserver_request_latencies_summary_sum{resource="podtemplates",scope="cluster",subresource="",verb="WATCH"} 6.59859975068e+11 +apiserver_request_latencies_summary_count{resource="podtemplates",scope="cluster",subresource="",verb="WATCH"} 1464 +apiserver_request_latencies_summary{resource="replicasets",scope="cluster",subresource="",verb="LIST",quantile="0.5"} 2690 +apiserver_request_latencies_summary{resource="replicasets",scope="cluster",subresource="",verb="LIST",quantile="0.9"} 3285 +apiserver_request_latencies_summary{resource="replicasets",scope="cluster",subresource="",verb="LIST",quantile="0.99"} 3453 +apiserver_request_latencies_summary_sum{resource="replicasets",scope="cluster",subresource="",verb="LIST"} 2.514414e+06 +apiserver_request_latencies_summary_count{resource="replicasets",scope="cluster",subresource="",verb="LIST"} 714 +apiserver_request_latencies_summary{resource="replicasets",scope="cluster",subresource="",verb="WATCH",quantile="0.5"} 4.25000453e+08 +apiserver_request_latencies_summary{resource="replicasets",scope="cluster",subresource="",verb="WATCH",quantile="0.9"} 5.66000419e+08 +apiserver_request_latencies_summary{resource="replicasets",scope="cluster",subresource="",verb="WATCH",quantile="0.99"} 5.94000564e+08 +apiserver_request_latencies_summary_sum{resource="replicasets",scope="cluster",subresource="",verb="WATCH"} 2.637626661333e+12 +apiserver_request_latencies_summary_count{resource="replicasets",scope="cluster",subresource="",verb="WATCH"} 5876 +apiserver_request_latencies_summary{resource="replicasets",scope="namespace",subresource="",verb="DELETE",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="replicasets",scope="namespace",subresource="",verb="DELETE",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="replicasets",scope="namespace",subresource="",verb="DELETE",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="replicasets",scope="namespace",subresource="",verb="DELETE"} 171645 +apiserver_request_latencies_summary_count{resource="replicasets",scope="namespace",subresource="",verb="DELETE"} 15 +apiserver_request_latencies_summary{resource="replicasets",scope="namespace",subresource="",verb="GET",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="replicasets",scope="namespace",subresource="",verb="GET",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="replicasets",scope="namespace",subresource="",verb="GET",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="replicasets",scope="namespace",subresource="",verb="GET"} 744329 +apiserver_request_latencies_summary_count{resource="replicasets",scope="namespace",subresource="",verb="GET"} 55 +apiserver_request_latencies_summary{resource="replicasets",scope="namespace",subresource="",verb="LIST",quantile="0.5"} 1928 +apiserver_request_latencies_summary{resource="replicasets",scope="namespace",subresource="",verb="LIST",quantile="0.9"} 2730 +apiserver_request_latencies_summary{resource="replicasets",scope="namespace",subresource="",verb="LIST",quantile="0.99"} 8115 +apiserver_request_latencies_summary_sum{resource="replicasets",scope="namespace",subresource="",verb="LIST"} 4.9092249e+07 +apiserver_request_latencies_summary_count{resource="replicasets",scope="namespace",subresource="",verb="LIST"} 22013 +apiserver_request_latencies_summary{resource="replicasets",scope="namespace",subresource="",verb="POST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="replicasets",scope="namespace",subresource="",verb="POST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="replicasets",scope="namespace",subresource="",verb="POST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="replicasets",scope="namespace",subresource="",verb="POST"} 149618 +apiserver_request_latencies_summary_count{resource="replicasets",scope="namespace",subresource="",verb="POST"} 27 +apiserver_request_latencies_summary{resource="replicasets",scope="namespace",subresource="",verb="PUT",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="replicasets",scope="namespace",subresource="",verb="PUT",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="replicasets",scope="namespace",subresource="",verb="PUT",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="replicasets",scope="namespace",subresource="",verb="PUT"} 390430 +apiserver_request_latencies_summary_count{resource="replicasets",scope="namespace",subresource="",verb="PUT"} 38 +apiserver_request_latencies_summary{resource="replicasets",scope="namespace",subresource="status",verb="PUT",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="replicasets",scope="namespace",subresource="status",verb="PUT",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="replicasets",scope="namespace",subresource="status",verb="PUT",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="replicasets",scope="namespace",subresource="status",verb="PUT"} 4.833955e+06 +apiserver_request_latencies_summary_count{resource="replicasets",scope="namespace",subresource="status",verb="PUT"} 293 +apiserver_request_latencies_summary{resource="replicationcontrollers",scope="cluster",subresource="",verb="LIST",quantile="0.5"} 1155 +apiserver_request_latencies_summary{resource="replicationcontrollers",scope="cluster",subresource="",verb="LIST",quantile="0.9"} 1613 +apiserver_request_latencies_summary{resource="replicationcontrollers",scope="cluster",subresource="",verb="LIST",quantile="0.99"} 1771 +apiserver_request_latencies_summary_sum{resource="replicationcontrollers",scope="cluster",subresource="",verb="LIST"} 1.104285e+06 +apiserver_request_latencies_summary_count{resource="replicationcontrollers",scope="cluster",subresource="",verb="LIST"} 713 +apiserver_request_latencies_summary{resource="replicationcontrollers",scope="cluster",subresource="",verb="WATCH",quantile="0.5"} 4.50000508e+08 +apiserver_request_latencies_summary{resource="replicationcontrollers",scope="cluster",subresource="",verb="WATCH",quantile="0.9"} 5.79000452e+08 +apiserver_request_latencies_summary{resource="replicationcontrollers",scope="cluster",subresource="",verb="WATCH",quantile="0.99"} 5.96000431e+08 +apiserver_request_latencies_summary_sum{resource="replicationcontrollers",scope="cluster",subresource="",verb="WATCH"} 1.978079922988e+12 +apiserver_request_latencies_summary_count{resource="replicationcontrollers",scope="cluster",subresource="",verb="WATCH"} 4414 +apiserver_request_latencies_summary{resource="replicationcontrollers",scope="namespace",subresource="",verb="LIST",quantile="0.5"} 1193 +apiserver_request_latencies_summary{resource="replicationcontrollers",scope="namespace",subresource="",verb="LIST",quantile="0.9"} 1816 +apiserver_request_latencies_summary{resource="replicationcontrollers",scope="namespace",subresource="",verb="LIST",quantile="0.99"} 4664 +apiserver_request_latencies_summary_sum{resource="replicationcontrollers",scope="namespace",subresource="",verb="LIST"} 3.1133138e+07 +apiserver_request_latencies_summary_count{resource="replicationcontrollers",scope="namespace",subresource="",verb="LIST"} 21997 +apiserver_request_latencies_summary{resource="resourcequotas",scope="cluster",subresource="",verb="LIST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="resourcequotas",scope="cluster",subresource="",verb="LIST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="resourcequotas",scope="cluster",subresource="",verb="LIST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="resourcequotas",scope="cluster",subresource="",verb="LIST"} 695137 +apiserver_request_latencies_summary_count{resource="resourcequotas",scope="cluster",subresource="",verb="LIST"} 4 +apiserver_request_latencies_summary{resource="resourcequotas",scope="cluster",subresource="",verb="WATCH",quantile="0.5"} 4.210005e+08 +apiserver_request_latencies_summary{resource="resourcequotas",scope="cluster",subresource="",verb="WATCH",quantile="0.9"} 5.42000497e+08 +apiserver_request_latencies_summary{resource="resourcequotas",scope="cluster",subresource="",verb="WATCH",quantile="0.99"} 5.86000407e+08 +apiserver_request_latencies_summary_sum{resource="resourcequotas",scope="cluster",subresource="",verb="WATCH"} 1.97850748629e+12 +apiserver_request_latencies_summary_count{resource="resourcequotas",scope="cluster",subresource="",verb="WATCH"} 4436 +apiserver_request_latencies_summary{resource="resourcequotas",scope="namespace",subresource="",verb="LIST",quantile="0.5"} 1185 +apiserver_request_latencies_summary{resource="resourcequotas",scope="namespace",subresource="",verb="LIST",quantile="0.9"} 1643 +apiserver_request_latencies_summary{resource="resourcequotas",scope="namespace",subresource="",verb="LIST",quantile="0.99"} 3889 +apiserver_request_latencies_summary_sum{resource="resourcequotas",scope="namespace",subresource="",verb="LIST"} 1.541641e+07 +apiserver_request_latencies_summary_count{resource="resourcequotas",scope="namespace",subresource="",verb="LIST"} 11023 +apiserver_request_latencies_summary{resource="rolebindings",scope="cluster",subresource="",verb="LIST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="rolebindings",scope="cluster",subresource="",verb="LIST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="rolebindings",scope="cluster",subresource="",verb="LIST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="rolebindings",scope="cluster",subresource="",verb="LIST"} 1.761331e+06 +apiserver_request_latencies_summary_count{resource="rolebindings",scope="cluster",subresource="",verb="LIST"} 2 +apiserver_request_latencies_summary{resource="rolebindings",scope="cluster",subresource="",verb="WATCH",quantile="0.5"} 4.37000495e+08 +apiserver_request_latencies_summary{resource="rolebindings",scope="cluster",subresource="",verb="WATCH",quantile="0.9"} 5.49000479e+08 +apiserver_request_latencies_summary{resource="rolebindings",scope="cluster",subresource="",verb="WATCH",quantile="0.99"} 5.93000549e+08 +apiserver_request_latencies_summary_sum{resource="rolebindings",scope="cluster",subresource="",verb="WATCH"} 1.319580992038e+12 +apiserver_request_latencies_summary_count{resource="rolebindings",scope="cluster",subresource="",verb="WATCH"} 2926 +apiserver_request_latencies_summary{resource="rolebindings",scope="namespace",subresource="",verb="GET",quantile="0.5"} 969 +apiserver_request_latencies_summary{resource="rolebindings",scope="namespace",subresource="",verb="GET",quantile="0.9"} 1362 +apiserver_request_latencies_summary{resource="rolebindings",scope="namespace",subresource="",verb="GET",quantile="0.99"} 3176 +apiserver_request_latencies_summary_sum{resource="rolebindings",scope="namespace",subresource="",verb="GET"} 2.3608438e+07 +apiserver_request_latencies_summary_count{resource="rolebindings",scope="namespace",subresource="",verb="GET"} 22003 +apiserver_request_latencies_summary{resource="rolebindings",scope="namespace",subresource="",verb="PATCH",quantile="0.5"} 1664 +apiserver_request_latencies_summary{resource="rolebindings",scope="namespace",subresource="",verb="PATCH",quantile="0.9"} 2386 +apiserver_request_latencies_summary{resource="rolebindings",scope="namespace",subresource="",verb="PATCH",quantile="0.99"} 5185 +apiserver_request_latencies_summary_sum{resource="rolebindings",scope="namespace",subresource="",verb="PATCH"} 4.1165835e+07 +apiserver_request_latencies_summary_count{resource="rolebindings",scope="namespace",subresource="",verb="PATCH"} 21995 +apiserver_request_latencies_summary{resource="rolebindings",scope="namespace",subresource="",verb="POST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="rolebindings",scope="namespace",subresource="",verb="POST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="rolebindings",scope="namespace",subresource="",verb="POST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="rolebindings",scope="namespace",subresource="",verb="POST"} 27618 +apiserver_request_latencies_summary_count{resource="rolebindings",scope="namespace",subresource="",verb="POST"} 8 +apiserver_request_latencies_summary{resource="roles",scope="cluster",subresource="",verb="LIST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="roles",scope="cluster",subresource="",verb="LIST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="roles",scope="cluster",subresource="",verb="LIST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="roles",scope="cluster",subresource="",verb="LIST"} 2.306787e+06 +apiserver_request_latencies_summary_count{resource="roles",scope="cluster",subresource="",verb="LIST"} 2 +apiserver_request_latencies_summary{resource="roles",scope="cluster",subresource="",verb="WATCH",quantile="0.5"} 4.42000942e+08 +apiserver_request_latencies_summary{resource="roles",scope="cluster",subresource="",verb="WATCH",quantile="0.9"} 5.5700052e+08 +apiserver_request_latencies_summary{resource="roles",scope="cluster",subresource="",verb="WATCH",quantile="0.99"} 5.8900049e+08 +apiserver_request_latencies_summary_sum{resource="roles",scope="cluster",subresource="",verb="WATCH"} 1.319502090736e+12 +apiserver_request_latencies_summary_count{resource="roles",scope="cluster",subresource="",verb="WATCH"} 2950 +apiserver_request_latencies_summary{resource="roles",scope="namespace",subresource="",verb="GET",quantile="0.5"} 974 +apiserver_request_latencies_summary{resource="roles",scope="namespace",subresource="",verb="GET",quantile="0.9"} 1318 +apiserver_request_latencies_summary{resource="roles",scope="namespace",subresource="",verb="GET",quantile="0.99"} 3744 +apiserver_request_latencies_summary_sum{resource="roles",scope="namespace",subresource="",verb="GET"} 2.3746483e+07 +apiserver_request_latencies_summary_count{resource="roles",scope="namespace",subresource="",verb="GET"} 22004 +apiserver_request_latencies_summary{resource="roles",scope="namespace",subresource="",verb="PATCH",quantile="0.5"} 1722 +apiserver_request_latencies_summary{resource="roles",scope="namespace",subresource="",verb="PATCH",quantile="0.9"} 2388 +apiserver_request_latencies_summary{resource="roles",scope="namespace",subresource="",verb="PATCH",quantile="0.99"} 5492 +apiserver_request_latencies_summary_sum{resource="roles",scope="namespace",subresource="",verb="PATCH"} 4.231979e+07 +apiserver_request_latencies_summary_count{resource="roles",scope="namespace",subresource="",verb="PATCH"} 21995 +apiserver_request_latencies_summary{resource="roles",scope="namespace",subresource="",verb="POST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="roles",scope="namespace",subresource="",verb="POST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="roles",scope="namespace",subresource="",verb="POST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="roles",scope="namespace",subresource="",verb="POST"} 27124 +apiserver_request_latencies_summary_count{resource="roles",scope="namespace",subresource="",verb="POST"} 9 +apiserver_request_latencies_summary{resource="secrets",scope="cluster",subresource="",verb="LIST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="secrets",scope="cluster",subresource="",verb="LIST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="secrets",scope="cluster",subresource="",verb="LIST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="secrets",scope="cluster",subresource="",verb="LIST"} 1.806364e+06 +apiserver_request_latencies_summary_count{resource="secrets",scope="cluster",subresource="",verb="LIST"} 2 +apiserver_request_latencies_summary{resource="secrets",scope="cluster",subresource="",verb="WATCH",quantile="0.5"} 4.95000384e+08 +apiserver_request_latencies_summary{resource="secrets",scope="cluster",subresource="",verb="WATCH",quantile="0.9"} 5.80000417e+08 +apiserver_request_latencies_summary{resource="secrets",scope="cluster",subresource="",verb="WATCH",quantile="0.99"} 5.9500304e+08 +apiserver_request_latencies_summary_sum{resource="secrets",scope="cluster",subresource="",verb="WATCH"} 1.319248184423e+12 +apiserver_request_latencies_summary_count{resource="secrets",scope="cluster",subresource="",verb="WATCH"} 2940 +apiserver_request_latencies_summary{resource="secrets",scope="namespace",subresource="",verb="DELETE",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="secrets",scope="namespace",subresource="",verb="DELETE",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="secrets",scope="namespace",subresource="",verb="DELETE",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="secrets",scope="namespace",subresource="",verb="DELETE"} 19136 +apiserver_request_latencies_summary_count{resource="secrets",scope="namespace",subresource="",verb="DELETE"} 3 +apiserver_request_latencies_summary{resource="secrets",scope="namespace",subresource="",verb="GET",quantile="0.5"} 220 +apiserver_request_latencies_summary{resource="secrets",scope="namespace",subresource="",verb="GET",quantile="0.9"} 318 +apiserver_request_latencies_summary{resource="secrets",scope="namespace",subresource="",verb="GET",quantile="0.99"} 1172 +apiserver_request_latencies_summary_sum{resource="secrets",scope="namespace",subresource="",verb="GET"} 5.6134705e+07 +apiserver_request_latencies_summary_count{resource="secrets",scope="namespace",subresource="",verb="GET"} 202551 +apiserver_request_latencies_summary{resource="secrets",scope="namespace",subresource="",verb="LIST",quantile="0.5"} 2581 +apiserver_request_latencies_summary{resource="secrets",scope="namespace",subresource="",verb="LIST",quantile="0.9"} 3793 +apiserver_request_latencies_summary{resource="secrets",scope="namespace",subresource="",verb="LIST",quantile="0.99"} 12943 +apiserver_request_latencies_summary_sum{resource="secrets",scope="namespace",subresource="",verb="LIST"} 7.2887687e+07 +apiserver_request_latencies_summary_count{resource="secrets",scope="namespace",subresource="",verb="LIST"} 22024 +apiserver_request_latencies_summary{resource="secrets",scope="namespace",subresource="",verb="POST",quantile="0.5"} 2185 +apiserver_request_latencies_summary{resource="secrets",scope="namespace",subresource="",verb="POST",quantile="0.9"} 3244 +apiserver_request_latencies_summary{resource="secrets",scope="namespace",subresource="",verb="POST",quantile="0.99"} 9470 +apiserver_request_latencies_summary_sum{resource="secrets",scope="namespace",subresource="",verb="POST"} 2.6980827e+07 +apiserver_request_latencies_summary_count{resource="secrets",scope="namespace",subresource="",verb="POST"} 11041 +apiserver_request_latencies_summary{resource="secrets",scope="namespace",subresource="",verb="WATCH",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="secrets",scope="namespace",subresource="",verb="WATCH",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="secrets",scope="namespace",subresource="",verb="WATCH",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="secrets",scope="namespace",subresource="",verb="WATCH"} 337373 +apiserver_request_latencies_summary_count{resource="secrets",scope="namespace",subresource="",verb="WATCH"} 15 +apiserver_request_latencies_summary{resource="serviceaccounts",scope="cluster",subresource="",verb="LIST",quantile="0.5"} 2411 +apiserver_request_latencies_summary{resource="serviceaccounts",scope="cluster",subresource="",verb="LIST",quantile="0.9"} 3292 +apiserver_request_latencies_summary{resource="serviceaccounts",scope="cluster",subresource="",verb="LIST",quantile="0.99"} 3347 +apiserver_request_latencies_summary_sum{resource="serviceaccounts",scope="cluster",subresource="",verb="LIST"} 3.695657e+06 +apiserver_request_latencies_summary_count{resource="serviceaccounts",scope="cluster",subresource="",verb="LIST"} 711 +apiserver_request_latencies_summary{resource="serviceaccounts",scope="cluster",subresource="",verb="WATCH",quantile="0.5"} 4.0500085e+08 +apiserver_request_latencies_summary{resource="serviceaccounts",scope="cluster",subresource="",verb="WATCH",quantile="0.9"} 5.48000395e+08 +apiserver_request_latencies_summary{resource="serviceaccounts",scope="cluster",subresource="",verb="WATCH",quantile="0.99"} 5.92000474e+08 +apiserver_request_latencies_summary_sum{resource="serviceaccounts",scope="cluster",subresource="",verb="WATCH"} 1.319449062336e+12 +apiserver_request_latencies_summary_count{resource="serviceaccounts",scope="cluster",subresource="",verb="WATCH"} 2934 +apiserver_request_latencies_summary{resource="serviceaccounts",scope="namespace",subresource="",verb="DELETE",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="serviceaccounts",scope="namespace",subresource="",verb="DELETE",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="serviceaccounts",scope="namespace",subresource="",verb="DELETE",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="serviceaccounts",scope="namespace",subresource="",verb="DELETE"} 14251 +apiserver_request_latencies_summary_count{resource="serviceaccounts",scope="namespace",subresource="",verb="DELETE"} 3 +apiserver_request_latencies_summary{resource="serviceaccounts",scope="namespace",subresource="",verb="GET",quantile="0.5"} 1031 +apiserver_request_latencies_summary{resource="serviceaccounts",scope="namespace",subresource="",verb="GET",quantile="0.9"} 1355 +apiserver_request_latencies_summary{resource="serviceaccounts",scope="namespace",subresource="",verb="GET",quantile="0.99"} 3544 +apiserver_request_latencies_summary_sum{resource="serviceaccounts",scope="namespace",subresource="",verb="GET"} 7.8537675e+07 +apiserver_request_latencies_summary_count{resource="serviceaccounts",scope="namespace",subresource="",verb="GET"} 66139 +apiserver_request_latencies_summary{resource="serviceaccounts",scope="namespace",subresource="",verb="PATCH",quantile="0.5"} 1500 +apiserver_request_latencies_summary{resource="serviceaccounts",scope="namespace",subresource="",verb="PATCH",quantile="0.9"} 2153 +apiserver_request_latencies_summary{resource="serviceaccounts",scope="namespace",subresource="",verb="PATCH",quantile="0.99"} 4514 +apiserver_request_latencies_summary_sum{resource="serviceaccounts",scope="namespace",subresource="",verb="PATCH"} 1.12424509e+08 +apiserver_request_latencies_summary_count{resource="serviceaccounts",scope="namespace",subresource="",verb="PATCH"} 65986 +apiserver_request_latencies_summary{resource="serviceaccounts",scope="namespace",subresource="",verb="POST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="serviceaccounts",scope="namespace",subresource="",verb="POST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="serviceaccounts",scope="namespace",subresource="",verb="POST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="serviceaccounts",scope="namespace",subresource="",verb="POST"} 137225 +apiserver_request_latencies_summary_count{resource="serviceaccounts",scope="namespace",subresource="",verb="POST"} 38 +apiserver_request_latencies_summary{resource="serviceaccounts",scope="namespace",subresource="",verb="PUT",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="serviceaccounts",scope="namespace",subresource="",verb="PUT",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="serviceaccounts",scope="namespace",subresource="",verb="PUT",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="serviceaccounts",scope="namespace",subresource="",verb="PUT"} 137375 +apiserver_request_latencies_summary_count{resource="serviceaccounts",scope="namespace",subresource="",verb="PUT"} 38 +apiserver_request_latencies_summary{resource="services",scope="cluster",subresource="",verb="LIST",quantile="0.5"} 1710 +apiserver_request_latencies_summary{resource="services",scope="cluster",subresource="",verb="LIST",quantile="0.9"} 2812 +apiserver_request_latencies_summary{resource="services",scope="cluster",subresource="",verb="LIST",quantile="0.99"} 5769 +apiserver_request_latencies_summary_sum{resource="services",scope="cluster",subresource="",verb="LIST"} 1.6999211e+07 +apiserver_request_latencies_summary_count{resource="services",scope="cluster",subresource="",verb="LIST"} 8067 +apiserver_request_latencies_summary{resource="services",scope="cluster",subresource="",verb="WATCH",quantile="0.5"} 4.56000542e+08 +apiserver_request_latencies_summary{resource="services",scope="cluster",subresource="",verb="WATCH",quantile="0.9"} 5.70000502e+08 +apiserver_request_latencies_summary{resource="services",scope="cluster",subresource="",verb="WATCH",quantile="0.99"} 5.97000358e+08 +apiserver_request_latencies_summary_sum{resource="services",scope="cluster",subresource="",verb="WATCH"} 7.916402902308e+12 +apiserver_request_latencies_summary_count{resource="services",scope="cluster",subresource="",verb="WATCH"} 17682 +apiserver_request_latencies_summary{resource="services",scope="namespace",subresource="",verb="GET",quantile="0.5"} 1097 +apiserver_request_latencies_summary{resource="services",scope="namespace",subresource="",verb="GET",quantile="0.9"} 1710 +apiserver_request_latencies_summary{resource="services",scope="namespace",subresource="",verb="GET",quantile="0.99"} 4735 +apiserver_request_latencies_summary_sum{resource="services",scope="namespace",subresource="",verb="GET"} 1.42476285e+08 +apiserver_request_latencies_summary_count{resource="services",scope="namespace",subresource="",verb="GET"} 109953 +apiserver_request_latencies_summary{resource="services",scope="namespace",subresource="",verb="LIST",quantile="0.5"} 1440 +apiserver_request_latencies_summary{resource="services",scope="namespace",subresource="",verb="LIST",quantile="0.9"} 2030 +apiserver_request_latencies_summary{resource="services",scope="namespace",subresource="",verb="LIST",quantile="0.99"} 4902 +apiserver_request_latencies_summary_sum{resource="services",scope="namespace",subresource="",verb="LIST"} 3.753119e+07 +apiserver_request_latencies_summary_count{resource="services",scope="namespace",subresource="",verb="LIST"} 21998 +apiserver_request_latencies_summary{resource="services",scope="namespace",subresource="",verb="PATCH",quantile="0.5"} 2223 +apiserver_request_latencies_summary{resource="services",scope="namespace",subresource="",verb="PATCH",quantile="0.9"} 3354 +apiserver_request_latencies_summary{resource="services",scope="namespace",subresource="",verb="PATCH",quantile="0.99"} 8370 +apiserver_request_latencies_summary_sum{resource="services",scope="namespace",subresource="",verb="PATCH"} 1.12112515e+08 +apiserver_request_latencies_summary_count{resource="services",scope="namespace",subresource="",verb="PATCH"} 43992 +apiserver_request_latencies_summary{resource="services",scope="namespace",subresource="",verb="POST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="services",scope="namespace",subresource="",verb="POST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="services",scope="namespace",subresource="",verb="POST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="services",scope="namespace",subresource="",verb="POST"} 80513 +apiserver_request_latencies_summary_count{resource="services",scope="namespace",subresource="",verb="POST"} 8 +apiserver_request_latencies_summary{resource="services",scope="namespace",subresource="status",verb="PUT",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="services",scope="namespace",subresource="status",verb="PUT",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="services",scope="namespace",subresource="status",verb="PUT",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="services",scope="namespace",subresource="status",verb="PUT"} 4441 +apiserver_request_latencies_summary_count{resource="services",scope="namespace",subresource="status",verb="PUT"} 1 +apiserver_request_latencies_summary{resource="services",scope="resource",subresource="",verb="PROXY",quantile="0.5"} 4964 +apiserver_request_latencies_summary{resource="services",scope="resource",subresource="",verb="PROXY",quantile="0.9"} 10300 +apiserver_request_latencies_summary{resource="services",scope="resource",subresource="",verb="PROXY",quantile="0.99"} 59739 +apiserver_request_latencies_summary_sum{resource="services",scope="resource",subresource="",verb="PROXY"} 4.65256128e+08 +apiserver_request_latencies_summary_count{resource="services",scope="resource",subresource="",verb="PROXY"} 21965 +apiserver_request_latencies_summary{resource="services",scope="resource",subresource="",verb="proxy",quantile="0.5"} 4928 +apiserver_request_latencies_summary{resource="services",scope="resource",subresource="",verb="proxy",quantile="0.9"} 10257 +apiserver_request_latencies_summary{resource="services",scope="resource",subresource="",verb="proxy",quantile="0.99"} 59710 +apiserver_request_latencies_summary_sum{resource="services",scope="resource",subresource="",verb="proxy"} 4.64443049e+08 +apiserver_request_latencies_summary_count{resource="services",scope="resource",subresource="",verb="proxy"} 21965 +apiserver_request_latencies_summary{resource="statefulsets",scope="cluster",subresource="",verb="LIST",quantile="0.5"} 1224 +apiserver_request_latencies_summary{resource="statefulsets",scope="cluster",subresource="",verb="LIST",quantile="0.9"} 1774 +apiserver_request_latencies_summary{resource="statefulsets",scope="cluster",subresource="",verb="LIST",quantile="0.99"} 2455 +apiserver_request_latencies_summary_sum{resource="statefulsets",scope="cluster",subresource="",verb="LIST"} 1.029136e+06 +apiserver_request_latencies_summary_count{resource="statefulsets",scope="cluster",subresource="",verb="LIST"} 711 +apiserver_request_latencies_summary{resource="statefulsets",scope="cluster",subresource="",verb="WATCH",quantile="0.5"} 4.54000584e+08 +apiserver_request_latencies_summary{resource="statefulsets",scope="cluster",subresource="",verb="WATCH",quantile="0.9"} 5.65000453e+08 +apiserver_request_latencies_summary{resource="statefulsets",scope="cluster",subresource="",verb="WATCH",quantile="0.99"} 5.93000302e+08 +apiserver_request_latencies_summary_sum{resource="statefulsets",scope="cluster",subresource="",verb="WATCH"} 1.319357064565e+12 +apiserver_request_latencies_summary_count{resource="statefulsets",scope="cluster",subresource="",verb="WATCH"} 2928 +apiserver_request_latencies_summary{resource="statefulsets",scope="namespace",subresource="",verb="LIST",quantile="0.5"} 1064 +apiserver_request_latencies_summary{resource="statefulsets",scope="namespace",subresource="",verb="LIST",quantile="0.9"} 1485 +apiserver_request_latencies_summary{resource="statefulsets",scope="namespace",subresource="",verb="LIST",quantile="0.99"} 4404 +apiserver_request_latencies_summary_sum{resource="statefulsets",scope="namespace",subresource="",verb="LIST"} 2.8334415e+07 +apiserver_request_latencies_summary_count{resource="statefulsets",scope="namespace",subresource="",verb="LIST"} 21997 +apiserver_request_latencies_summary{resource="storageclasses",scope="cluster",subresource="",verb="LIST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="storageclasses",scope="cluster",subresource="",verb="LIST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="storageclasses",scope="cluster",subresource="",verb="LIST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="storageclasses",scope="cluster",subresource="",verb="LIST"} 218590 +apiserver_request_latencies_summary_count{resource="storageclasses",scope="cluster",subresource="",verb="LIST"} 9 +apiserver_request_latencies_summary{resource="storageclasses",scope="cluster",subresource="",verb="POST",quantile="0.5"} 2314 +apiserver_request_latencies_summary{resource="storageclasses",scope="cluster",subresource="",verb="POST",quantile="0.9"} 3459 +apiserver_request_latencies_summary{resource="storageclasses",scope="cluster",subresource="",verb="POST",quantile="0.99"} 6729 +apiserver_request_latencies_summary_sum{resource="storageclasses",scope="cluster",subresource="",verb="POST"} 2.8899398e+07 +apiserver_request_latencies_summary_count{resource="storageclasses",scope="cluster",subresource="",verb="POST"} 10999 +apiserver_request_latencies_summary{resource="storageclasses",scope="cluster",subresource="",verb="WATCH",quantile="0.5"} 4.66000488e+08 +apiserver_request_latencies_summary{resource="storageclasses",scope="cluster",subresource="",verb="WATCH",quantile="0.9"} 5.64000427e+08 +apiserver_request_latencies_summary{resource="storageclasses",scope="cluster",subresource="",verb="WATCH",quantile="0.99"} 5.80000396e+08 +apiserver_request_latencies_summary_sum{resource="storageclasses",scope="cluster",subresource="",verb="WATCH"} 1.319265103606e+12 +apiserver_request_latencies_summary_count{resource="storageclasses",scope="cluster",subresource="",verb="WATCH"} 2939 +apiserver_request_latencies_summary{resource="subjectaccessreviews",scope="cluster",subresource="",verb="POST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="subjectaccessreviews",scope="cluster",subresource="",verb="POST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="subjectaccessreviews",scope="cluster",subresource="",verb="POST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="subjectaccessreviews",scope="cluster",subresource="",verb="POST"} 12218 +apiserver_request_latencies_summary_count{resource="subjectaccessreviews",scope="cluster",subresource="",verb="POST"} 17 +apiserver_request_latencies_summary{resource="tokenreviews",scope="cluster",subresource="",verb="POST",quantile="0.5"} NaN +apiserver_request_latencies_summary{resource="tokenreviews",scope="cluster",subresource="",verb="POST",quantile="0.9"} NaN +apiserver_request_latencies_summary{resource="tokenreviews",scope="cluster",subresource="",verb="POST",quantile="0.99"} NaN +apiserver_request_latencies_summary_sum{resource="tokenreviews",scope="cluster",subresource="",verb="POST"} 108241 +apiserver_request_latencies_summary_count{resource="tokenreviews",scope="cluster",subresource="",verb="POST"} 27 +# HELP apiserver_response_sizes Response size distribution in bytes for each verb, resource, subresource and scope (namespace/cluster). +# TYPE apiserver_response_sizes histogram +apiserver_response_sizes_bucket{resource="apiservices",scope="cluster",subresource="",verb="LIST",le="1000"} 1 +apiserver_response_sizes_bucket{resource="apiservices",scope="cluster",subresource="",verb="LIST",le="10000"} 1 +apiserver_response_sizes_bucket{resource="apiservices",scope="cluster",subresource="",verb="LIST",le="100000"} 1 +apiserver_response_sizes_bucket{resource="apiservices",scope="cluster",subresource="",verb="LIST",le="1e+06"} 1 +apiserver_response_sizes_bucket{resource="apiservices",scope="cluster",subresource="",verb="LIST",le="1e+07"} 1 +apiserver_response_sizes_bucket{resource="apiservices",scope="cluster",subresource="",verb="LIST",le="1e+08"} 1 +apiserver_response_sizes_bucket{resource="apiservices",scope="cluster",subresource="",verb="LIST",le="1e+09"} 1 +apiserver_response_sizes_bucket{resource="apiservices",scope="cluster",subresource="",verb="LIST",le="+Inf"} 1 +apiserver_response_sizes_sum{resource="apiservices",scope="cluster",subresource="",verb="LIST"} 117 +apiserver_response_sizes_count{resource="apiservices",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_response_sizes_bucket{resource="certificatesigningrequests",scope="cluster",subresource="",verb="LIST",le="1000"} 2 +apiserver_response_sizes_bucket{resource="certificatesigningrequests",scope="cluster",subresource="",verb="LIST",le="10000"} 9 +apiserver_response_sizes_bucket{resource="certificatesigningrequests",scope="cluster",subresource="",verb="LIST",le="100000"} 9 +apiserver_response_sizes_bucket{resource="certificatesigningrequests",scope="cluster",subresource="",verb="LIST",le="1e+06"} 9 +apiserver_response_sizes_bucket{resource="certificatesigningrequests",scope="cluster",subresource="",verb="LIST",le="1e+07"} 9 +apiserver_response_sizes_bucket{resource="certificatesigningrequests",scope="cluster",subresource="",verb="LIST",le="1e+08"} 9 +apiserver_response_sizes_bucket{resource="certificatesigningrequests",scope="cluster",subresource="",verb="LIST",le="1e+09"} 9 +apiserver_response_sizes_bucket{resource="certificatesigningrequests",scope="cluster",subresource="",verb="LIST",le="+Inf"} 9 +apiserver_response_sizes_sum{resource="certificatesigningrequests",scope="cluster",subresource="",verb="LIST"} 9547 +apiserver_response_sizes_count{resource="certificatesigningrequests",scope="cluster",subresource="",verb="LIST"} 9 +apiserver_response_sizes_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="GET",le="1000"} 38 +apiserver_response_sizes_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="GET",le="10000"} 88021 +apiserver_response_sizes_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="GET",le="100000"} 88021 +apiserver_response_sizes_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="GET",le="1e+06"} 88021 +apiserver_response_sizes_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="GET",le="1e+07"} 88021 +apiserver_response_sizes_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="GET",le="1e+08"} 88021 +apiserver_response_sizes_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="GET",le="1e+09"} 88021 +apiserver_response_sizes_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="GET",le="+Inf"} 88021 +apiserver_response_sizes_sum{resource="clusterrolebindings",scope="cluster",subresource="",verb="GET"} 1.04753408e+08 +apiserver_response_sizes_count{resource="clusterrolebindings",scope="cluster",subresource="",verb="GET"} 88021 +apiserver_response_sizes_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="LIST",le="1000"} 2 +apiserver_response_sizes_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="LIST",le="10000"} 2 +apiserver_response_sizes_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="LIST",le="100000"} 3 +apiserver_response_sizes_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="LIST",le="1e+06"} 3 +apiserver_response_sizes_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="LIST",le="1e+07"} 3 +apiserver_response_sizes_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="LIST",le="1e+08"} 3 +apiserver_response_sizes_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="LIST",le="1e+09"} 3 +apiserver_response_sizes_bucket{resource="clusterrolebindings",scope="cluster",subresource="",verb="LIST",le="+Inf"} 3 +apiserver_response_sizes_sum{resource="clusterrolebindings",scope="cluster",subresource="",verb="LIST"} 13274 +apiserver_response_sizes_count{resource="clusterrolebindings",scope="cluster",subresource="",verb="LIST"} 3 +apiserver_response_sizes_bucket{resource="clusterroles",scope="cluster",subresource="",verb="GET",le="1000"} 45 +apiserver_response_sizes_bucket{resource="clusterroles",scope="cluster",subresource="",verb="GET",le="10000"} 44036 +apiserver_response_sizes_bucket{resource="clusterroles",scope="cluster",subresource="",verb="GET",le="100000"} 44036 +apiserver_response_sizes_bucket{resource="clusterroles",scope="cluster",subresource="",verb="GET",le="1e+06"} 44036 +apiserver_response_sizes_bucket{resource="clusterroles",scope="cluster",subresource="",verb="GET",le="1e+07"} 44036 +apiserver_response_sizes_bucket{resource="clusterroles",scope="cluster",subresource="",verb="GET",le="1e+08"} 44036 +apiserver_response_sizes_bucket{resource="clusterroles",scope="cluster",subresource="",verb="GET",le="1e+09"} 44036 +apiserver_response_sizes_bucket{resource="clusterroles",scope="cluster",subresource="",verb="GET",le="+Inf"} 44036 +apiserver_response_sizes_sum{resource="clusterroles",scope="cluster",subresource="",verb="GET"} 5.0731588e+07 +apiserver_response_sizes_count{resource="clusterroles",scope="cluster",subresource="",verb="GET"} 44036 +apiserver_response_sizes_bucket{resource="clusterroles",scope="cluster",subresource="",verb="LIST",le="1000"} 2 +apiserver_response_sizes_bucket{resource="clusterroles",scope="cluster",subresource="",verb="LIST",le="10000"} 2 +apiserver_response_sizes_bucket{resource="clusterroles",scope="cluster",subresource="",verb="LIST",le="100000"} 3 +apiserver_response_sizes_bucket{resource="clusterroles",scope="cluster",subresource="",verb="LIST",le="1e+06"} 3 +apiserver_response_sizes_bucket{resource="clusterroles",scope="cluster",subresource="",verb="LIST",le="1e+07"} 3 +apiserver_response_sizes_bucket{resource="clusterroles",scope="cluster",subresource="",verb="LIST",le="1e+08"} 3 +apiserver_response_sizes_bucket{resource="clusterroles",scope="cluster",subresource="",verb="LIST",le="1e+09"} 3 +apiserver_response_sizes_bucket{resource="clusterroles",scope="cluster",subresource="",verb="LIST",le="+Inf"} 3 +apiserver_response_sizes_sum{resource="clusterroles",scope="cluster",subresource="",verb="LIST"} 22242 +apiserver_response_sizes_count{resource="clusterroles",scope="cluster",subresource="",verb="LIST"} 3 +apiserver_response_sizes_bucket{resource="componentstatuses",scope="cluster",subresource="",verb="LIST",le="1000"} 7195 +apiserver_response_sizes_bucket{resource="componentstatuses",scope="cluster",subresource="",verb="LIST",le="10000"} 7195 +apiserver_response_sizes_bucket{resource="componentstatuses",scope="cluster",subresource="",verb="LIST",le="100000"} 7195 +apiserver_response_sizes_bucket{resource="componentstatuses",scope="cluster",subresource="",verb="LIST",le="1e+06"} 7195 +apiserver_response_sizes_bucket{resource="componentstatuses",scope="cluster",subresource="",verb="LIST",le="1e+07"} 7195 +apiserver_response_sizes_bucket{resource="componentstatuses",scope="cluster",subresource="",verb="LIST",le="1e+08"} 7195 +apiserver_response_sizes_bucket{resource="componentstatuses",scope="cluster",subresource="",verb="LIST",le="1e+09"} 7195 +apiserver_response_sizes_bucket{resource="componentstatuses",scope="cluster",subresource="",verb="LIST",le="+Inf"} 7195 +apiserver_response_sizes_sum{resource="componentstatuses",scope="cluster",subresource="",verb="LIST"} 3.345675e+06 +apiserver_response_sizes_count{resource="componentstatuses",scope="cluster",subresource="",verb="LIST"} 7195 +apiserver_response_sizes_bucket{resource="configmaps",scope="",subresource="",verb="GET",le="1000"} 1 +apiserver_response_sizes_bucket{resource="configmaps",scope="",subresource="",verb="GET",le="10000"} 1 +apiserver_response_sizes_bucket{resource="configmaps",scope="",subresource="",verb="GET",le="100000"} 1 +apiserver_response_sizes_bucket{resource="configmaps",scope="",subresource="",verb="GET",le="1e+06"} 1 +apiserver_response_sizes_bucket{resource="configmaps",scope="",subresource="",verb="GET",le="1e+07"} 1 +apiserver_response_sizes_bucket{resource="configmaps",scope="",subresource="",verb="GET",le="1e+08"} 1 +apiserver_response_sizes_bucket{resource="configmaps",scope="",subresource="",verb="GET",le="1e+09"} 1 +apiserver_response_sizes_bucket{resource="configmaps",scope="",subresource="",verb="GET",le="+Inf"} 1 +apiserver_response_sizes_sum{resource="configmaps",scope="",subresource="",verb="GET"} 0 +apiserver_response_sizes_count{resource="configmaps",scope="",subresource="",verb="GET"} 1 +apiserver_response_sizes_bucket{resource="configmaps",scope="cluster",subresource="",verb="LIST",le="1000"} 0 +apiserver_response_sizes_bucket{resource="configmaps",scope="cluster",subresource="",verb="LIST",le="10000"} 1 +apiserver_response_sizes_bucket{resource="configmaps",scope="cluster",subresource="",verb="LIST",le="100000"} 1 +apiserver_response_sizes_bucket{resource="configmaps",scope="cluster",subresource="",verb="LIST",le="1e+06"} 1 +apiserver_response_sizes_bucket{resource="configmaps",scope="cluster",subresource="",verb="LIST",le="1e+07"} 1 +apiserver_response_sizes_bucket{resource="configmaps",scope="cluster",subresource="",verb="LIST",le="1e+08"} 1 +apiserver_response_sizes_bucket{resource="configmaps",scope="cluster",subresource="",verb="LIST",le="1e+09"} 1 +apiserver_response_sizes_bucket{resource="configmaps",scope="cluster",subresource="",verb="LIST",le="+Inf"} 1 +apiserver_response_sizes_sum{resource="configmaps",scope="cluster",subresource="",verb="LIST"} 2749 +apiserver_response_sizes_count{resource="configmaps",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_response_sizes_bucket{resource="configmaps",scope="namespace",subresource="",verb="GET",le="1000"} 381662 +apiserver_response_sizes_bucket{resource="configmaps",scope="namespace",subresource="",verb="GET",le="10000"} 407741 +apiserver_response_sizes_bucket{resource="configmaps",scope="namespace",subresource="",verb="GET",le="100000"} 444870 +apiserver_response_sizes_bucket{resource="configmaps",scope="namespace",subresource="",verb="GET",le="1e+06"} 444870 +apiserver_response_sizes_bucket{resource="configmaps",scope="namespace",subresource="",verb="GET",le="1e+07"} 444870 +apiserver_response_sizes_bucket{resource="configmaps",scope="namespace",subresource="",verb="GET",le="1e+08"} 444870 +apiserver_response_sizes_bucket{resource="configmaps",scope="namespace",subresource="",verb="GET",le="1e+09"} 444870 +apiserver_response_sizes_bucket{resource="configmaps",scope="namespace",subresource="",verb="GET",le="+Inf"} 444870 +apiserver_response_sizes_sum{resource="configmaps",scope="namespace",subresource="",verb="GET"} 1.294357625e+09 +apiserver_response_sizes_count{resource="configmaps",scope="namespace",subresource="",verb="GET"} 444870 +apiserver_response_sizes_bucket{resource="configmaps",scope="namespace",subresource="",verb="LIST",le="1000"} 29 +apiserver_response_sizes_bucket{resource="configmaps",scope="namespace",subresource="",verb="LIST",le="10000"} 11000 +apiserver_response_sizes_bucket{resource="configmaps",scope="namespace",subresource="",verb="LIST",le="100000"} 21998 +apiserver_response_sizes_bucket{resource="configmaps",scope="namespace",subresource="",verb="LIST",le="1e+06"} 21998 +apiserver_response_sizes_bucket{resource="configmaps",scope="namespace",subresource="",verb="LIST",le="1e+07"} 21998 +apiserver_response_sizes_bucket{resource="configmaps",scope="namespace",subresource="",verb="LIST",le="1e+08"} 21998 +apiserver_response_sizes_bucket{resource="configmaps",scope="namespace",subresource="",verb="LIST",le="1e+09"} 21998 +apiserver_response_sizes_bucket{resource="configmaps",scope="namespace",subresource="",verb="LIST",le="+Inf"} 21998 +apiserver_response_sizes_sum{resource="configmaps",scope="namespace",subresource="",verb="LIST"} 3.92455511e+08 +apiserver_response_sizes_count{resource="configmaps",scope="namespace",subresource="",verb="LIST"} 21998 +apiserver_response_sizes_bucket{resource="controllerrevisions",scope="cluster",subresource="",verb="LIST",le="1000"} 1 +apiserver_response_sizes_bucket{resource="controllerrevisions",scope="cluster",subresource="",verb="LIST",le="10000"} 1 +apiserver_response_sizes_bucket{resource="controllerrevisions",scope="cluster",subresource="",verb="LIST",le="100000"} 1 +apiserver_response_sizes_bucket{resource="controllerrevisions",scope="cluster",subresource="",verb="LIST",le="1e+06"} 1 +apiserver_response_sizes_bucket{resource="controllerrevisions",scope="cluster",subresource="",verb="LIST",le="1e+07"} 1 +apiserver_response_sizes_bucket{resource="controllerrevisions",scope="cluster",subresource="",verb="LIST",le="1e+08"} 1 +apiserver_response_sizes_bucket{resource="controllerrevisions",scope="cluster",subresource="",verb="LIST",le="1e+09"} 1 +apiserver_response_sizes_bucket{resource="controllerrevisions",scope="cluster",subresource="",verb="LIST",le="+Inf"} 1 +apiserver_response_sizes_sum{resource="controllerrevisions",scope="cluster",subresource="",verb="LIST"} 97 +apiserver_response_sizes_count{resource="controllerrevisions",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_response_sizes_bucket{resource="controllerrevisions",scope="namespace",subresource="",verb="GET",le="1000"} 0 +apiserver_response_sizes_bucket{resource="controllerrevisions",scope="namespace",subresource="",verb="GET",le="10000"} 6 +apiserver_response_sizes_bucket{resource="controllerrevisions",scope="namespace",subresource="",verb="GET",le="100000"} 6 +apiserver_response_sizes_bucket{resource="controllerrevisions",scope="namespace",subresource="",verb="GET",le="1e+06"} 6 +apiserver_response_sizes_bucket{resource="controllerrevisions",scope="namespace",subresource="",verb="GET",le="1e+07"} 6 +apiserver_response_sizes_bucket{resource="controllerrevisions",scope="namespace",subresource="",verb="GET",le="1e+08"} 6 +apiserver_response_sizes_bucket{resource="controllerrevisions",scope="namespace",subresource="",verb="GET",le="1e+09"} 6 +apiserver_response_sizes_bucket{resource="controllerrevisions",scope="namespace",subresource="",verb="GET",le="+Inf"} 6 +apiserver_response_sizes_sum{resource="controllerrevisions",scope="namespace",subresource="",verb="GET"} 15383 +apiserver_response_sizes_count{resource="controllerrevisions",scope="namespace",subresource="",verb="GET"} 6 +apiserver_response_sizes_bucket{resource="cronjobs",scope="cluster",subresource="",verb="LIST",le="1000"} 65930 +apiserver_response_sizes_bucket{resource="cronjobs",scope="cluster",subresource="",verb="LIST",le="10000"} 65930 +apiserver_response_sizes_bucket{resource="cronjobs",scope="cluster",subresource="",verb="LIST",le="100000"} 65930 +apiserver_response_sizes_bucket{resource="cronjobs",scope="cluster",subresource="",verb="LIST",le="1e+06"} 65930 +apiserver_response_sizes_bucket{resource="cronjobs",scope="cluster",subresource="",verb="LIST",le="1e+07"} 65930 +apiserver_response_sizes_bucket{resource="cronjobs",scope="cluster",subresource="",verb="LIST",le="1e+08"} 65930 +apiserver_response_sizes_bucket{resource="cronjobs",scope="cluster",subresource="",verb="LIST",le="1e+09"} 65930 +apiserver_response_sizes_bucket{resource="cronjobs",scope="cluster",subresource="",verb="LIST",le="+Inf"} 65930 +apiserver_response_sizes_sum{resource="cronjobs",scope="cluster",subresource="",verb="LIST"} 5.398321e+06 +apiserver_response_sizes_count{resource="cronjobs",scope="cluster",subresource="",verb="LIST"} 65930 +apiserver_response_sizes_bucket{resource="customresourcedefinitions",scope="cluster",subresource="",verb="LIST",le="1000"} 1 +apiserver_response_sizes_bucket{resource="customresourcedefinitions",scope="cluster",subresource="",verb="LIST",le="10000"} 1 +apiserver_response_sizes_bucket{resource="customresourcedefinitions",scope="cluster",subresource="",verb="LIST",le="100000"} 1 +apiserver_response_sizes_bucket{resource="customresourcedefinitions",scope="cluster",subresource="",verb="LIST",le="1e+06"} 1 +apiserver_response_sizes_bucket{resource="customresourcedefinitions",scope="cluster",subresource="",verb="LIST",le="1e+07"} 1 +apiserver_response_sizes_bucket{resource="customresourcedefinitions",scope="cluster",subresource="",verb="LIST",le="1e+08"} 1 +apiserver_response_sizes_bucket{resource="customresourcedefinitions",scope="cluster",subresource="",verb="LIST",le="1e+09"} 1 +apiserver_response_sizes_bucket{resource="customresourcedefinitions",scope="cluster",subresource="",verb="LIST",le="+Inf"} 1 +apiserver_response_sizes_sum{resource="customresourcedefinitions",scope="cluster",subresource="",verb="LIST"} 141 +apiserver_response_sizes_count{resource="customresourcedefinitions",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_response_sizes_bucket{resource="daemonsets",scope="cluster",subresource="",verb="LIST",le="1000"} 2 +apiserver_response_sizes_bucket{resource="daemonsets",scope="cluster",subresource="",verb="LIST",le="10000"} 711 +apiserver_response_sizes_bucket{resource="daemonsets",scope="cluster",subresource="",verb="LIST",le="100000"} 713 +apiserver_response_sizes_bucket{resource="daemonsets",scope="cluster",subresource="",verb="LIST",le="1e+06"} 713 +apiserver_response_sizes_bucket{resource="daemonsets",scope="cluster",subresource="",verb="LIST",le="1e+07"} 713 +apiserver_response_sizes_bucket{resource="daemonsets",scope="cluster",subresource="",verb="LIST",le="1e+08"} 713 +apiserver_response_sizes_bucket{resource="daemonsets",scope="cluster",subresource="",verb="LIST",le="1e+09"} 713 +apiserver_response_sizes_bucket{resource="daemonsets",scope="cluster",subresource="",verb="LIST",le="+Inf"} 713 +apiserver_response_sizes_sum{resource="daemonsets",scope="cluster",subresource="",verb="LIST"} 5.920493e+06 +apiserver_response_sizes_count{resource="daemonsets",scope="cluster",subresource="",verb="LIST"} 713 +apiserver_response_sizes_bucket{resource="daemonsets",scope="namespace",subresource="",verb="GET",le="1000"} 1 +apiserver_response_sizes_bucket{resource="daemonsets",scope="namespace",subresource="",verb="GET",le="10000"} 11099 +apiserver_response_sizes_bucket{resource="daemonsets",scope="namespace",subresource="",verb="GET",le="100000"} 11099 +apiserver_response_sizes_bucket{resource="daemonsets",scope="namespace",subresource="",verb="GET",le="1e+06"} 11099 +apiserver_response_sizes_bucket{resource="daemonsets",scope="namespace",subresource="",verb="GET",le="1e+07"} 11099 +apiserver_response_sizes_bucket{resource="daemonsets",scope="namespace",subresource="",verb="GET",le="1e+08"} 11099 +apiserver_response_sizes_bucket{resource="daemonsets",scope="namespace",subresource="",verb="GET",le="1e+09"} 11099 +apiserver_response_sizes_bucket{resource="daemonsets",scope="namespace",subresource="",verb="GET",le="+Inf"} 11099 +apiserver_response_sizes_sum{resource="daemonsets",scope="namespace",subresource="",verb="GET"} 8.2128267e+07 +apiserver_response_sizes_count{resource="daemonsets",scope="namespace",subresource="",verb="GET"} 11099 +apiserver_response_sizes_bucket{resource="daemonsets",scope="namespace",subresource="",verb="LIST",le="1000"} 10999 +apiserver_response_sizes_bucket{resource="daemonsets",scope="namespace",subresource="",verb="LIST",le="10000"} 11009 +apiserver_response_sizes_bucket{resource="daemonsets",scope="namespace",subresource="",verb="LIST",le="100000"} 21999 +apiserver_response_sizes_bucket{resource="daemonsets",scope="namespace",subresource="",verb="LIST",le="1e+06"} 21999 +apiserver_response_sizes_bucket{resource="daemonsets",scope="namespace",subresource="",verb="LIST",le="1e+07"} 21999 +apiserver_response_sizes_bucket{resource="daemonsets",scope="namespace",subresource="",verb="LIST",le="1e+08"} 21999 +apiserver_response_sizes_bucket{resource="daemonsets",scope="namespace",subresource="",verb="LIST",le="1e+09"} 21999 +apiserver_response_sizes_bucket{resource="daemonsets",scope="namespace",subresource="",verb="LIST",le="+Inf"} 21999 +apiserver_response_sizes_sum{resource="daemonsets",scope="namespace",subresource="",verb="LIST"} 1.41695719e+08 +apiserver_response_sizes_count{resource="daemonsets",scope="namespace",subresource="",verb="LIST"} 21999 +apiserver_response_sizes_bucket{resource="deployments",scope="cluster",subresource="",verb="LIST",le="1000"} 2 +apiserver_response_sizes_bucket{resource="deployments",scope="cluster",subresource="",verb="LIST",le="10000"} 2 +apiserver_response_sizes_bucket{resource="deployments",scope="cluster",subresource="",verb="LIST",le="100000"} 713 +apiserver_response_sizes_bucket{resource="deployments",scope="cluster",subresource="",verb="LIST",le="1e+06"} 713 +apiserver_response_sizes_bucket{resource="deployments",scope="cluster",subresource="",verb="LIST",le="1e+07"} 713 +apiserver_response_sizes_bucket{resource="deployments",scope="cluster",subresource="",verb="LIST",le="1e+08"} 713 +apiserver_response_sizes_bucket{resource="deployments",scope="cluster",subresource="",verb="LIST",le="1e+09"} 713 +apiserver_response_sizes_bucket{resource="deployments",scope="cluster",subresource="",verb="LIST",le="+Inf"} 713 +apiserver_response_sizes_sum{resource="deployments",scope="cluster",subresource="",verb="LIST"} 1.6824633e+07 +apiserver_response_sizes_count{resource="deployments",scope="cluster",subresource="",verb="LIST"} 713 +apiserver_response_sizes_bucket{resource="deployments",scope="namespace",subresource="",verb="GET",le="1000"} 8 +apiserver_response_sizes_bucket{resource="deployments",scope="namespace",subresource="",verb="GET",le="10000"} 66026 +apiserver_response_sizes_bucket{resource="deployments",scope="namespace",subresource="",verb="GET",le="100000"} 66026 +apiserver_response_sizes_bucket{resource="deployments",scope="namespace",subresource="",verb="GET",le="1e+06"} 66026 +apiserver_response_sizes_bucket{resource="deployments",scope="namespace",subresource="",verb="GET",le="1e+07"} 66026 +apiserver_response_sizes_bucket{resource="deployments",scope="namespace",subresource="",verb="GET",le="1e+08"} 66026 +apiserver_response_sizes_bucket{resource="deployments",scope="namespace",subresource="",verb="GET",le="1e+09"} 66026 +apiserver_response_sizes_bucket{resource="deployments",scope="namespace",subresource="",verb="GET",le="+Inf"} 66026 +apiserver_response_sizes_sum{resource="deployments",scope="namespace",subresource="",verb="GET"} 3.08386827e+08 +apiserver_response_sizes_count{resource="deployments",scope="namespace",subresource="",verb="GET"} 66026 +apiserver_response_sizes_bucket{resource="deployments",scope="namespace",subresource="",verb="LIST",le="1000"} 21996 +apiserver_response_sizes_bucket{resource="deployments",scope="namespace",subresource="",verb="LIST",le="10000"} 21996 +apiserver_response_sizes_bucket{resource="deployments",scope="namespace",subresource="",verb="LIST",le="100000"} 43994 +apiserver_response_sizes_bucket{resource="deployments",scope="namespace",subresource="",verb="LIST",le="1e+06"} 43994 +apiserver_response_sizes_bucket{resource="deployments",scope="namespace",subresource="",verb="LIST",le="1e+07"} 43994 +apiserver_response_sizes_bucket{resource="deployments",scope="namespace",subresource="",verb="LIST",le="1e+08"} 43994 +apiserver_response_sizes_bucket{resource="deployments",scope="namespace",subresource="",verb="LIST",le="1e+09"} 43994 +apiserver_response_sizes_bucket{resource="deployments",scope="namespace",subresource="",verb="LIST",le="+Inf"} 43994 +apiserver_response_sizes_sum{resource="deployments",scope="namespace",subresource="",verb="LIST"} 6.7379509e+08 +apiserver_response_sizes_count{resource="deployments",scope="namespace",subresource="",verb="LIST"} 43994 +apiserver_response_sizes_bucket{resource="deployments",scope="namespace",subresource="scale",verb="GET",le="1000"} 65893 +apiserver_response_sizes_bucket{resource="deployments",scope="namespace",subresource="scale",verb="GET",le="10000"} 65893 +apiserver_response_sizes_bucket{resource="deployments",scope="namespace",subresource="scale",verb="GET",le="100000"} 65893 +apiserver_response_sizes_bucket{resource="deployments",scope="namespace",subresource="scale",verb="GET",le="1e+06"} 65893 +apiserver_response_sizes_bucket{resource="deployments",scope="namespace",subresource="scale",verb="GET",le="1e+07"} 65893 +apiserver_response_sizes_bucket{resource="deployments",scope="namespace",subresource="scale",verb="GET",le="1e+08"} 65893 +apiserver_response_sizes_bucket{resource="deployments",scope="namespace",subresource="scale",verb="GET",le="1e+09"} 65893 +apiserver_response_sizes_bucket{resource="deployments",scope="namespace",subresource="scale",verb="GET",le="+Inf"} 65893 +apiserver_response_sizes_sum{resource="deployments",scope="namespace",subresource="scale",verb="GET"} 1.651112e+07 +apiserver_response_sizes_count{resource="deployments",scope="namespace",subresource="scale",verb="GET"} 65893 +apiserver_response_sizes_bucket{resource="endpoints",scope="cluster",subresource="",verb="LIST",le="1000"} 1 +apiserver_response_sizes_bucket{resource="endpoints",scope="cluster",subresource="",verb="LIST",le="10000"} 13 +apiserver_response_sizes_bucket{resource="endpoints",scope="cluster",subresource="",verb="LIST",le="100000"} 13 +apiserver_response_sizes_bucket{resource="endpoints",scope="cluster",subresource="",verb="LIST",le="1e+06"} 13 +apiserver_response_sizes_bucket{resource="endpoints",scope="cluster",subresource="",verb="LIST",le="1e+07"} 13 +apiserver_response_sizes_bucket{resource="endpoints",scope="cluster",subresource="",verb="LIST",le="1e+08"} 13 +apiserver_response_sizes_bucket{resource="endpoints",scope="cluster",subresource="",verb="LIST",le="1e+09"} 13 +apiserver_response_sizes_bucket{resource="endpoints",scope="cluster",subresource="",verb="LIST",le="+Inf"} 13 +apiserver_response_sizes_sum{resource="endpoints",scope="cluster",subresource="",verb="LIST"} 31981 +apiserver_response_sizes_count{resource="endpoints",scope="cluster",subresource="",verb="LIST"} 13 +apiserver_response_sizes_bucket{resource="endpoints",scope="namespace",subresource="",verb="GET",le="1000"} 733671 +apiserver_response_sizes_bucket{resource="endpoints",scope="namespace",subresource="",verb="GET",le="10000"} 733671 +apiserver_response_sizes_bucket{resource="endpoints",scope="namespace",subresource="",verb="GET",le="100000"} 733671 +apiserver_response_sizes_bucket{resource="endpoints",scope="namespace",subresource="",verb="GET",le="1e+06"} 733671 +apiserver_response_sizes_bucket{resource="endpoints",scope="namespace",subresource="",verb="GET",le="1e+07"} 733671 +apiserver_response_sizes_bucket{resource="endpoints",scope="namespace",subresource="",verb="GET",le="1e+08"} 733671 +apiserver_response_sizes_bucket{resource="endpoints",scope="namespace",subresource="",verb="GET",le="1e+09"} 733671 +apiserver_response_sizes_bucket{resource="endpoints",scope="namespace",subresource="",verb="GET",le="+Inf"} 733671 +apiserver_response_sizes_sum{resource="endpoints",scope="namespace",subresource="",verb="GET"} 2.91252625e+08 +apiserver_response_sizes_count{resource="endpoints",scope="namespace",subresource="",verb="GET"} 733671 +apiserver_response_sizes_bucket{resource="endpoints",scope="namespace",subresource="",verb="LIST",le="1000"} 10998 +apiserver_response_sizes_bucket{resource="endpoints",scope="namespace",subresource="",verb="LIST",le="10000"} 21997 +apiserver_response_sizes_bucket{resource="endpoints",scope="namespace",subresource="",verb="LIST",le="100000"} 21997 +apiserver_response_sizes_bucket{resource="endpoints",scope="namespace",subresource="",verb="LIST",le="1e+06"} 21997 +apiserver_response_sizes_bucket{resource="endpoints",scope="namespace",subresource="",verb="LIST",le="1e+07"} 21997 +apiserver_response_sizes_bucket{resource="endpoints",scope="namespace",subresource="",verb="LIST",le="1e+08"} 21997 +apiserver_response_sizes_bucket{resource="endpoints",scope="namespace",subresource="",verb="LIST",le="1e+09"} 21997 +apiserver_response_sizes_bucket{resource="endpoints",scope="namespace",subresource="",verb="LIST",le="+Inf"} 21997 +apiserver_response_sizes_sum{resource="endpoints",scope="namespace",subresource="",verb="LIST"} 3.6923616e+07 +apiserver_response_sizes_count{resource="endpoints",scope="namespace",subresource="",verb="LIST"} 21997 +apiserver_response_sizes_bucket{resource="events",scope="cluster",subresource="",verb="LIST",le="1000"} 1075 +apiserver_response_sizes_bucket{resource="events",scope="cluster",subresource="",verb="LIST",le="10000"} 1088 +apiserver_response_sizes_bucket{resource="events",scope="cluster",subresource="",verb="LIST",le="100000"} 1122 +apiserver_response_sizes_bucket{resource="events",scope="cluster",subresource="",verb="LIST",le="1e+06"} 1131 +apiserver_response_sizes_bucket{resource="events",scope="cluster",subresource="",verb="LIST",le="1e+07"} 1131 +apiserver_response_sizes_bucket{resource="events",scope="cluster",subresource="",verb="LIST",le="1e+08"} 1131 +apiserver_response_sizes_bucket{resource="events",scope="cluster",subresource="",verb="LIST",le="1e+09"} 1131 +apiserver_response_sizes_bucket{resource="events",scope="cluster",subresource="",verb="LIST",le="+Inf"} 1131 +apiserver_response_sizes_sum{resource="events",scope="cluster",subresource="",verb="LIST"} 5.177549e+06 +apiserver_response_sizes_count{resource="events",scope="cluster",subresource="",verb="LIST"} 1131 +apiserver_response_sizes_bucket{resource="events",scope="namespace",subresource="",verb="LIST",le="1000"} 1 +apiserver_response_sizes_bucket{resource="events",scope="namespace",subresource="",verb="LIST",le="10000"} 2 +apiserver_response_sizes_bucket{resource="events",scope="namespace",subresource="",verb="LIST",le="100000"} 2 +apiserver_response_sizes_bucket{resource="events",scope="namespace",subresource="",verb="LIST",le="1e+06"} 2 +apiserver_response_sizes_bucket{resource="events",scope="namespace",subresource="",verb="LIST",le="1e+07"} 2 +apiserver_response_sizes_bucket{resource="events",scope="namespace",subresource="",verb="LIST",le="1e+08"} 2 +apiserver_response_sizes_bucket{resource="events",scope="namespace",subresource="",verb="LIST",le="1e+09"} 2 +apiserver_response_sizes_bucket{resource="events",scope="namespace",subresource="",verb="LIST",le="+Inf"} 2 +apiserver_response_sizes_sum{resource="events",scope="namespace",subresource="",verb="LIST"} 4518 +apiserver_response_sizes_count{resource="events",scope="namespace",subresource="",verb="LIST"} 2 +apiserver_response_sizes_bucket{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="LIST",le="1000"} 710 +apiserver_response_sizes_bucket{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="LIST",le="10000"} 710 +apiserver_response_sizes_bucket{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="LIST",le="100000"} 710 +apiserver_response_sizes_bucket{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="LIST",le="1e+06"} 710 +apiserver_response_sizes_bucket{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="LIST",le="1e+07"} 710 +apiserver_response_sizes_bucket{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="LIST",le="1e+08"} 710 +apiserver_response_sizes_bucket{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="LIST",le="1e+09"} 710 +apiserver_response_sizes_bucket{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="LIST",le="+Inf"} 710 +apiserver_response_sizes_sum{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="LIST"} 89360 +apiserver_response_sizes_count{resource="horizontalpodautoscalers",scope="cluster",subresource="",verb="LIST"} 710 +apiserver_response_sizes_bucket{resource="ingresses",scope="cluster",subresource="",verb="LIST",le="1000"} 712 +apiserver_response_sizes_bucket{resource="ingresses",scope="cluster",subresource="",verb="LIST",le="10000"} 712 +apiserver_response_sizes_bucket{resource="ingresses",scope="cluster",subresource="",verb="LIST",le="100000"} 712 +apiserver_response_sizes_bucket{resource="ingresses",scope="cluster",subresource="",verb="LIST",le="1e+06"} 712 +apiserver_response_sizes_bucket{resource="ingresses",scope="cluster",subresource="",verb="LIST",le="1e+07"} 712 +apiserver_response_sizes_bucket{resource="ingresses",scope="cluster",subresource="",verb="LIST",le="1e+08"} 712 +apiserver_response_sizes_bucket{resource="ingresses",scope="cluster",subresource="",verb="LIST",le="1e+09"} 712 +apiserver_response_sizes_bucket{resource="ingresses",scope="cluster",subresource="",verb="LIST",le="+Inf"} 712 +apiserver_response_sizes_sum{resource="ingresses",scope="cluster",subresource="",verb="LIST"} 66245 +apiserver_response_sizes_count{resource="ingresses",scope="cluster",subresource="",verb="LIST"} 712 +apiserver_response_sizes_bucket{resource="ingresses",scope="namespace",subresource="",verb="LIST",le="1000"} 21997 +apiserver_response_sizes_bucket{resource="ingresses",scope="namespace",subresource="",verb="LIST",le="10000"} 21997 +apiserver_response_sizes_bucket{resource="ingresses",scope="namespace",subresource="",verb="LIST",le="100000"} 21997 +apiserver_response_sizes_bucket{resource="ingresses",scope="namespace",subresource="",verb="LIST",le="1e+06"} 21997 +apiserver_response_sizes_bucket{resource="ingresses",scope="namespace",subresource="",verb="LIST",le="1e+07"} 21997 +apiserver_response_sizes_bucket{resource="ingresses",scope="namespace",subresource="",verb="LIST",le="1e+08"} 21997 +apiserver_response_sizes_bucket{resource="ingresses",scope="namespace",subresource="",verb="LIST",le="1e+09"} 21997 +apiserver_response_sizes_bucket{resource="ingresses",scope="namespace",subresource="",verb="LIST",le="+Inf"} 21997 +apiserver_response_sizes_sum{resource="ingresses",scope="namespace",subresource="",verb="LIST"} 3.934813e+06 +apiserver_response_sizes_count{resource="ingresses",scope="namespace",subresource="",verb="LIST"} 21997 +apiserver_response_sizes_bucket{resource="jobs",scope="cluster",subresource="",verb="LIST",le="1000"} 61 +apiserver_response_sizes_bucket{resource="jobs",scope="cluster",subresource="",verb="LIST",le="10000"} 66639 +apiserver_response_sizes_bucket{resource="jobs",scope="cluster",subresource="",verb="LIST",le="100000"} 66639 +apiserver_response_sizes_bucket{resource="jobs",scope="cluster",subresource="",verb="LIST",le="1e+06"} 66639 +apiserver_response_sizes_bucket{resource="jobs",scope="cluster",subresource="",verb="LIST",le="1e+07"} 66639 +apiserver_response_sizes_bucket{resource="jobs",scope="cluster",subresource="",verb="LIST",le="1e+08"} 66639 +apiserver_response_sizes_bucket{resource="jobs",scope="cluster",subresource="",verb="LIST",le="1e+09"} 66639 +apiserver_response_sizes_bucket{resource="jobs",scope="cluster",subresource="",verb="LIST",le="+Inf"} 66639 +apiserver_response_sizes_sum{resource="jobs",scope="cluster",subresource="",verb="LIST"} 2.05635007e+08 +apiserver_response_sizes_count{resource="jobs",scope="cluster",subresource="",verb="LIST"} 66639 +apiserver_response_sizes_bucket{resource="jobs",scope="namespace",subresource="",verb="GET",le="1000"} 1 +apiserver_response_sizes_bucket{resource="jobs",scope="namespace",subresource="",verb="GET",le="10000"} 68 +apiserver_response_sizes_bucket{resource="jobs",scope="namespace",subresource="",verb="GET",le="100000"} 68 +apiserver_response_sizes_bucket{resource="jobs",scope="namespace",subresource="",verb="GET",le="1e+06"} 68 +apiserver_response_sizes_bucket{resource="jobs",scope="namespace",subresource="",verb="GET",le="1e+07"} 68 +apiserver_response_sizes_bucket{resource="jobs",scope="namespace",subresource="",verb="GET",le="1e+08"} 68 +apiserver_response_sizes_bucket{resource="jobs",scope="namespace",subresource="",verb="GET",le="1e+09"} 68 +apiserver_response_sizes_bucket{resource="jobs",scope="namespace",subresource="",verb="GET",le="+Inf"} 68 +apiserver_response_sizes_sum{resource="jobs",scope="namespace",subresource="",verb="GET"} 110582 +apiserver_response_sizes_count{resource="jobs",scope="namespace",subresource="",verb="GET"} 68 +apiserver_response_sizes_bucket{resource="jobs",scope="namespace",subresource="",verb="LIST",le="1000"} 21997 +apiserver_response_sizes_bucket{resource="jobs",scope="namespace",subresource="",verb="LIST",le="10000"} 21997 +apiserver_response_sizes_bucket{resource="jobs",scope="namespace",subresource="",verb="LIST",le="100000"} 21997 +apiserver_response_sizes_bucket{resource="jobs",scope="namespace",subresource="",verb="LIST",le="1e+06"} 21997 +apiserver_response_sizes_bucket{resource="jobs",scope="namespace",subresource="",verb="LIST",le="1e+07"} 21997 +apiserver_response_sizes_bucket{resource="jobs",scope="namespace",subresource="",verb="LIST",le="1e+08"} 21997 +apiserver_response_sizes_bucket{resource="jobs",scope="namespace",subresource="",verb="LIST",le="1e+09"} 21997 +apiserver_response_sizes_bucket{resource="jobs",scope="namespace",subresource="",verb="LIST",le="+Inf"} 21997 +apiserver_response_sizes_sum{resource="jobs",scope="namespace",subresource="",verb="LIST"} 3.2969e+06 +apiserver_response_sizes_count{resource="jobs",scope="namespace",subresource="",verb="LIST"} 21997 +apiserver_response_sizes_bucket{resource="limitranges",scope="cluster",subresource="",verb="LIST",le="1000"} 2 +apiserver_response_sizes_bucket{resource="limitranges",scope="cluster",subresource="",verb="LIST",le="10000"} 2 +apiserver_response_sizes_bucket{resource="limitranges",scope="cluster",subresource="",verb="LIST",le="100000"} 2 +apiserver_response_sizes_bucket{resource="limitranges",scope="cluster",subresource="",verb="LIST",le="1e+06"} 2 +apiserver_response_sizes_bucket{resource="limitranges",scope="cluster",subresource="",verb="LIST",le="1e+07"} 2 +apiserver_response_sizes_bucket{resource="limitranges",scope="cluster",subresource="",verb="LIST",le="1e+08"} 2 +apiserver_response_sizes_bucket{resource="limitranges",scope="cluster",subresource="",verb="LIST",le="1e+09"} 2 +apiserver_response_sizes_bucket{resource="limitranges",scope="cluster",subresource="",verb="LIST",le="+Inf"} 2 +apiserver_response_sizes_sum{resource="limitranges",scope="cluster",subresource="",verb="LIST"} 122 +apiserver_response_sizes_count{resource="limitranges",scope="cluster",subresource="",verb="LIST"} 2 +apiserver_response_sizes_bucket{resource="limitranges",scope="namespace",subresource="",verb="GET",le="1000"} 1 +apiserver_response_sizes_bucket{resource="limitranges",scope="namespace",subresource="",verb="GET",le="10000"} 1 +apiserver_response_sizes_bucket{resource="limitranges",scope="namespace",subresource="",verb="GET",le="100000"} 1 +apiserver_response_sizes_bucket{resource="limitranges",scope="namespace",subresource="",verb="GET",le="1e+06"} 1 +apiserver_response_sizes_bucket{resource="limitranges",scope="namespace",subresource="",verb="GET",le="1e+07"} 1 +apiserver_response_sizes_bucket{resource="limitranges",scope="namespace",subresource="",verb="GET",le="1e+08"} 1 +apiserver_response_sizes_bucket{resource="limitranges",scope="namespace",subresource="",verb="GET",le="1e+09"} 1 +apiserver_response_sizes_bucket{resource="limitranges",scope="namespace",subresource="",verb="GET",le="+Inf"} 1 +apiserver_response_sizes_sum{resource="limitranges",scope="namespace",subresource="",verb="GET"} 194 +apiserver_response_sizes_count{resource="limitranges",scope="namespace",subresource="",verb="GET"} 1 +apiserver_response_sizes_bucket{resource="limitranges",scope="namespace",subresource="",verb="LIST",le="1000"} 18 +apiserver_response_sizes_bucket{resource="limitranges",scope="namespace",subresource="",verb="LIST",le="10000"} 18 +apiserver_response_sizes_bucket{resource="limitranges",scope="namespace",subresource="",verb="LIST",le="100000"} 18 +apiserver_response_sizes_bucket{resource="limitranges",scope="namespace",subresource="",verb="LIST",le="1e+06"} 18 +apiserver_response_sizes_bucket{resource="limitranges",scope="namespace",subresource="",verb="LIST",le="1e+07"} 18 +apiserver_response_sizes_bucket{resource="limitranges",scope="namespace",subresource="",verb="LIST",le="1e+08"} 18 +apiserver_response_sizes_bucket{resource="limitranges",scope="namespace",subresource="",verb="LIST",le="1e+09"} 18 +apiserver_response_sizes_bucket{resource="limitranges",scope="namespace",subresource="",verb="LIST",le="+Inf"} 18 +apiserver_response_sizes_sum{resource="limitranges",scope="namespace",subresource="",verb="LIST"} 1554 +apiserver_response_sizes_count{resource="limitranges",scope="namespace",subresource="",verb="LIST"} 18 +apiserver_response_sizes_bucket{resource="namespaces",scope="cluster",subresource="",verb="GET",le="1000"} 87994 +apiserver_response_sizes_bucket{resource="namespaces",scope="cluster",subresource="",verb="GET",le="10000"} 87994 +apiserver_response_sizes_bucket{resource="namespaces",scope="cluster",subresource="",verb="GET",le="100000"} 87994 +apiserver_response_sizes_bucket{resource="namespaces",scope="cluster",subresource="",verb="GET",le="1e+06"} 87994 +apiserver_response_sizes_bucket{resource="namespaces",scope="cluster",subresource="",verb="GET",le="1e+07"} 87994 +apiserver_response_sizes_bucket{resource="namespaces",scope="cluster",subresource="",verb="GET",le="1e+08"} 87994 +apiserver_response_sizes_bucket{resource="namespaces",scope="cluster",subresource="",verb="GET",le="1e+09"} 87994 +apiserver_response_sizes_bucket{resource="namespaces",scope="cluster",subresource="",verb="GET",le="+Inf"} 87994 +apiserver_response_sizes_sum{resource="namespaces",scope="cluster",subresource="",verb="GET"} 1.5191324e+07 +apiserver_response_sizes_count{resource="namespaces",scope="cluster",subresource="",verb="GET"} 87994 +apiserver_response_sizes_bucket{resource="namespaces",scope="cluster",subresource="",verb="LIST",le="1000"} 29194 +apiserver_response_sizes_bucket{resource="namespaces",scope="cluster",subresource="",verb="LIST",le="10000"} 29194 +apiserver_response_sizes_bucket{resource="namespaces",scope="cluster",subresource="",verb="LIST",le="100000"} 29194 +apiserver_response_sizes_bucket{resource="namespaces",scope="cluster",subresource="",verb="LIST",le="1e+06"} 29194 +apiserver_response_sizes_bucket{resource="namespaces",scope="cluster",subresource="",verb="LIST",le="1e+07"} 29194 +apiserver_response_sizes_bucket{resource="namespaces",scope="cluster",subresource="",verb="LIST",le="1e+08"} 29194 +apiserver_response_sizes_bucket{resource="namespaces",scope="cluster",subresource="",verb="LIST",le="1e+09"} 29194 +apiserver_response_sizes_bucket{resource="namespaces",scope="cluster",subresource="",verb="LIST",le="+Inf"} 29194 +apiserver_response_sizes_sum{resource="namespaces",scope="cluster",subresource="",verb="LIST"} 7.222483e+06 +apiserver_response_sizes_count{resource="namespaces",scope="cluster",subresource="",verb="LIST"} 29194 +apiserver_response_sizes_bucket{resource="networkpolicies",scope="cluster",subresource="",verb="LIST",le="1000"} 2 +apiserver_response_sizes_bucket{resource="networkpolicies",scope="cluster",subresource="",verb="LIST",le="10000"} 2 +apiserver_response_sizes_bucket{resource="networkpolicies",scope="cluster",subresource="",verb="LIST",le="100000"} 2 +apiserver_response_sizes_bucket{resource="networkpolicies",scope="cluster",subresource="",verb="LIST",le="1e+06"} 2 +apiserver_response_sizes_bucket{resource="networkpolicies",scope="cluster",subresource="",verb="LIST",le="1e+07"} 2 +apiserver_response_sizes_bucket{resource="networkpolicies",scope="cluster",subresource="",verb="LIST",le="1e+08"} 2 +apiserver_response_sizes_bucket{resource="networkpolicies",scope="cluster",subresource="",verb="LIST",le="1e+09"} 2 +apiserver_response_sizes_bucket{resource="networkpolicies",scope="cluster",subresource="",verb="LIST",le="+Inf"} 2 +apiserver_response_sizes_sum{resource="networkpolicies",scope="cluster",subresource="",verb="LIST"} 268 +apiserver_response_sizes_count{resource="networkpolicies",scope="cluster",subresource="",verb="LIST"} 2 +apiserver_response_sizes_bucket{resource="nodes",scope="",subresource="",verb="GET",le="1000"} 1 +apiserver_response_sizes_bucket{resource="nodes",scope="",subresource="",verb="GET",le="10000"} 1 +apiserver_response_sizes_bucket{resource="nodes",scope="",subresource="",verb="GET",le="100000"} 1 +apiserver_response_sizes_bucket{resource="nodes",scope="",subresource="",verb="GET",le="1e+06"} 1 +apiserver_response_sizes_bucket{resource="nodes",scope="",subresource="",verb="GET",le="1e+07"} 1 +apiserver_response_sizes_bucket{resource="nodes",scope="",subresource="",verb="GET",le="1e+08"} 1 +apiserver_response_sizes_bucket{resource="nodes",scope="",subresource="",verb="GET",le="1e+09"} 1 +apiserver_response_sizes_bucket{resource="nodes",scope="",subresource="",verb="GET",le="+Inf"} 1 +apiserver_response_sizes_sum{resource="nodes",scope="",subresource="",verb="GET"} 0 +apiserver_response_sizes_count{resource="nodes",scope="",subresource="",verb="GET"} 1 +apiserver_response_sizes_bucket{resource="nodes",scope="cluster",subresource="",verb="GET",le="1000"} 57 +apiserver_response_sizes_bucket{resource="nodes",scope="cluster",subresource="",verb="GET",le="10000"} 57 +apiserver_response_sizes_bucket{resource="nodes",scope="cluster",subresource="",verb="GET",le="100000"} 197492 +apiserver_response_sizes_bucket{resource="nodes",scope="cluster",subresource="",verb="GET",le="1e+06"} 197492 +apiserver_response_sizes_bucket{resource="nodes",scope="cluster",subresource="",verb="GET",le="1e+07"} 197492 +apiserver_response_sizes_bucket{resource="nodes",scope="cluster",subresource="",verb="GET",le="1e+08"} 197492 +apiserver_response_sizes_bucket{resource="nodes",scope="cluster",subresource="",verb="GET",le="1e+09"} 197492 +apiserver_response_sizes_bucket{resource="nodes",scope="cluster",subresource="",verb="GET",le="+Inf"} 197492 +apiserver_response_sizes_sum{resource="nodes",scope="cluster",subresource="",verb="GET"} 2.863222325e+09 +apiserver_response_sizes_count{resource="nodes",scope="cluster",subresource="",verb="GET"} 197492 +apiserver_response_sizes_bucket{resource="nodes",scope="cluster",subresource="",verb="LIST",le="1000"} 25 +apiserver_response_sizes_bucket{resource="nodes",scope="cluster",subresource="",verb="LIST",le="10000"} 25 +apiserver_response_sizes_bucket{resource="nodes",scope="cluster",subresource="",verb="LIST",le="100000"} 157377 +apiserver_response_sizes_bucket{resource="nodes",scope="cluster",subresource="",verb="LIST",le="1e+06"} 157377 +apiserver_response_sizes_bucket{resource="nodes",scope="cluster",subresource="",verb="LIST",le="1e+07"} 157377 +apiserver_response_sizes_bucket{resource="nodes",scope="cluster",subresource="",verb="LIST",le="1e+08"} 157377 +apiserver_response_sizes_bucket{resource="nodes",scope="cluster",subresource="",verb="LIST",le="1e+09"} 157377 +apiserver_response_sizes_bucket{resource="nodes",scope="cluster",subresource="",verb="LIST",le="+Inf"} 157377 +apiserver_response_sizes_sum{resource="nodes",scope="cluster",subresource="",verb="LIST"} 6.850129386e+09 +apiserver_response_sizes_count{resource="nodes",scope="cluster",subresource="",verb="LIST"} 157377 +apiserver_response_sizes_bucket{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="LIST",le="1000"} 711 +apiserver_response_sizes_bucket{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="LIST",le="10000"} 711 +apiserver_response_sizes_bucket{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="LIST",le="100000"} 711 +apiserver_response_sizes_bucket{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="LIST",le="1e+06"} 711 +apiserver_response_sizes_bucket{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="LIST",le="1e+07"} 711 +apiserver_response_sizes_bucket{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="LIST",le="1e+08"} 711 +apiserver_response_sizes_bucket{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="LIST",le="1e+09"} 711 +apiserver_response_sizes_bucket{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="LIST",le="+Inf"} 711 +apiserver_response_sizes_sum{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="LIST"} 378239 +apiserver_response_sizes_count{resource="persistentvolumeclaims",scope="cluster",subresource="",verb="LIST"} 711 +apiserver_response_sizes_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="GET",le="1000"} 8712 +apiserver_response_sizes_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="GET",le="10000"} 8712 +apiserver_response_sizes_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="GET",le="100000"} 8712 +apiserver_response_sizes_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="GET",le="1e+06"} 8712 +apiserver_response_sizes_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="GET",le="1e+07"} 8712 +apiserver_response_sizes_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="GET",le="1e+08"} 8712 +apiserver_response_sizes_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="GET",le="1e+09"} 8712 +apiserver_response_sizes_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="GET",le="+Inf"} 8712 +apiserver_response_sizes_sum{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="GET"} 4.207896e+06 +apiserver_response_sizes_count{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="GET"} 8712 +apiserver_response_sizes_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="LIST",le="1000"} 21997 +apiserver_response_sizes_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="LIST",le="10000"} 21997 +apiserver_response_sizes_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="LIST",le="100000"} 21997 +apiserver_response_sizes_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="LIST",le="1e+06"} 21997 +apiserver_response_sizes_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="LIST",le="1e+07"} 21997 +apiserver_response_sizes_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="LIST",le="1e+08"} 21997 +apiserver_response_sizes_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="LIST",le="1e+09"} 21997 +apiserver_response_sizes_bucket{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="LIST",le="+Inf"} 21997 +apiserver_response_sizes_sum{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="LIST"} 3.802831e+06 +apiserver_response_sizes_count{resource="persistentvolumeclaims",scope="namespace",subresource="",verb="LIST"} 21997 +apiserver_response_sizes_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="GET",le="1000"} 8712 +apiserver_response_sizes_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="GET",le="10000"} 8712 +apiserver_response_sizes_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="GET",le="100000"} 8712 +apiserver_response_sizes_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="GET",le="1e+06"} 8712 +apiserver_response_sizes_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="GET",le="1e+07"} 8712 +apiserver_response_sizes_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="GET",le="1e+08"} 8712 +apiserver_response_sizes_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="GET",le="1e+09"} 8712 +apiserver_response_sizes_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="GET",le="+Inf"} 8712 +apiserver_response_sizes_sum{resource="persistentvolumes",scope="cluster",subresource="",verb="GET"} 6.341804e+06 +apiserver_response_sizes_count{resource="persistentvolumes",scope="cluster",subresource="",verb="GET"} 8712 +apiserver_response_sizes_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="LIST",le="1000"} 22717 +apiserver_response_sizes_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="LIST",le="10000"} 22717 +apiserver_response_sizes_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="LIST",le="100000"} 22717 +apiserver_response_sizes_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="LIST",le="1e+06"} 22717 +apiserver_response_sizes_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="LIST",le="1e+07"} 22717 +apiserver_response_sizes_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="LIST",le="1e+08"} 22717 +apiserver_response_sizes_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="LIST",le="1e+09"} 22717 +apiserver_response_sizes_bucket{resource="persistentvolumes",scope="cluster",subresource="",verb="LIST",le="+Inf"} 22717 +apiserver_response_sizes_sum{resource="persistentvolumes",scope="cluster",subresource="",verb="LIST"} 3.63061e+06 +apiserver_response_sizes_count{resource="persistentvolumes",scope="cluster",subresource="",verb="LIST"} 22717 +apiserver_response_sizes_bucket{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="LIST",le="1000"} 710 +apiserver_response_sizes_bucket{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="LIST",le="10000"} 710 +apiserver_response_sizes_bucket{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="LIST",le="100000"} 710 +apiserver_response_sizes_bucket{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="LIST",le="1e+06"} 710 +apiserver_response_sizes_bucket{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="LIST",le="1e+07"} 710 +apiserver_response_sizes_bucket{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="LIST",le="1e+08"} 710 +apiserver_response_sizes_bucket{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="LIST",le="1e+09"} 710 +apiserver_response_sizes_bucket{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="LIST",le="+Inf"} 710 +apiserver_response_sizes_sum{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="LIST"} 76590 +apiserver_response_sizes_count{resource="poddisruptionbudgets",scope="cluster",subresource="",verb="LIST"} 710 +apiserver_response_sizes_bucket{resource="pods",scope="cluster",subresource="",verb="LIST",le="1000"} 13 +apiserver_response_sizes_bucket{resource="pods",scope="cluster",subresource="",verb="LIST",le="10000"} 28 +apiserver_response_sizes_bucket{resource="pods",scope="cluster",subresource="",verb="LIST",le="100000"} 7278 +apiserver_response_sizes_bucket{resource="pods",scope="cluster",subresource="",verb="LIST",le="1e+06"} 7286 +apiserver_response_sizes_bucket{resource="pods",scope="cluster",subresource="",verb="LIST",le="1e+07"} 7286 +apiserver_response_sizes_bucket{resource="pods",scope="cluster",subresource="",verb="LIST",le="1e+08"} 7286 +apiserver_response_sizes_bucket{resource="pods",scope="cluster",subresource="",verb="LIST",le="1e+09"} 7286 +apiserver_response_sizes_bucket{resource="pods",scope="cluster",subresource="",verb="LIST",le="+Inf"} 7286 +apiserver_response_sizes_sum{resource="pods",scope="cluster",subresource="",verb="LIST"} 5.22489444e+08 +apiserver_response_sizes_count{resource="pods",scope="cluster",subresource="",verb="LIST"} 7286 +apiserver_response_sizes_bucket{resource="pods",scope="namespace",subresource="",verb="GET",le="1000"} 100 +apiserver_response_sizes_bucket{resource="pods",scope="namespace",subresource="",verb="GET",le="10000"} 66815 +apiserver_response_sizes_bucket{resource="pods",scope="namespace",subresource="",verb="GET",le="100000"} 66815 +apiserver_response_sizes_bucket{resource="pods",scope="namespace",subresource="",verb="GET",le="1e+06"} 66815 +apiserver_response_sizes_bucket{resource="pods",scope="namespace",subresource="",verb="GET",le="1e+07"} 66815 +apiserver_response_sizes_bucket{resource="pods",scope="namespace",subresource="",verb="GET",le="1e+08"} 66815 +apiserver_response_sizes_bucket{resource="pods",scope="namespace",subresource="",verb="GET",le="1e+09"} 66815 +apiserver_response_sizes_bucket{resource="pods",scope="namespace",subresource="",verb="GET",le="+Inf"} 66815 +apiserver_response_sizes_sum{resource="pods",scope="namespace",subresource="",verb="GET"} 3.88451404e+08 +apiserver_response_sizes_count{resource="pods",scope="namespace",subresource="",verb="GET"} 66815 +apiserver_response_sizes_bucket{resource="pods",scope="namespace",subresource="",verb="LIST",le="1000"} 18192 +apiserver_response_sizes_bucket{resource="pods",scope="namespace",subresource="",verb="LIST",le="10000"} 18207 +apiserver_response_sizes_bucket{resource="pods",scope="namespace",subresource="",verb="LIST",le="100000"} 36420 +apiserver_response_sizes_bucket{resource="pods",scope="namespace",subresource="",verb="LIST",le="1e+06"} 36425 +apiserver_response_sizes_bucket{resource="pods",scope="namespace",subresource="",verb="LIST",le="1e+07"} 36425 +apiserver_response_sizes_bucket{resource="pods",scope="namespace",subresource="",verb="LIST",le="1e+08"} 36425 +apiserver_response_sizes_bucket{resource="pods",scope="namespace",subresource="",verb="LIST",le="1e+09"} 36425 +apiserver_response_sizes_bucket{resource="pods",scope="namespace",subresource="",verb="LIST",le="+Inf"} 36425 +apiserver_response_sizes_sum{resource="pods",scope="namespace",subresource="",verb="LIST"} 9.58672957e+08 +apiserver_response_sizes_count{resource="pods",scope="namespace",subresource="",verb="LIST"} 36425 +apiserver_response_sizes_bucket{resource="podsecuritypolicies",scope="cluster",subresource="",verb="LIST",le="1000"} 1 +apiserver_response_sizes_bucket{resource="podsecuritypolicies",scope="cluster",subresource="",verb="LIST",le="10000"} 1 +apiserver_response_sizes_bucket{resource="podsecuritypolicies",scope="cluster",subresource="",verb="LIST",le="100000"} 1 +apiserver_response_sizes_bucket{resource="podsecuritypolicies",scope="cluster",subresource="",verb="LIST",le="1e+06"} 1 +apiserver_response_sizes_bucket{resource="podsecuritypolicies",scope="cluster",subresource="",verb="LIST",le="1e+07"} 1 +apiserver_response_sizes_bucket{resource="podsecuritypolicies",scope="cluster",subresource="",verb="LIST",le="1e+08"} 1 +apiserver_response_sizes_bucket{resource="podsecuritypolicies",scope="cluster",subresource="",verb="LIST",le="1e+09"} 1 +apiserver_response_sizes_bucket{resource="podsecuritypolicies",scope="cluster",subresource="",verb="LIST",le="+Inf"} 1 +apiserver_response_sizes_sum{resource="podsecuritypolicies",scope="cluster",subresource="",verb="LIST"} 108 +apiserver_response_sizes_count{resource="podsecuritypolicies",scope="cluster",subresource="",verb="LIST"} 1 +apiserver_response_sizes_bucket{resource="podtemplates",scope="cluster",subresource="",verb="LIST",le="1000"} 710 +apiserver_response_sizes_bucket{resource="podtemplates",scope="cluster",subresource="",verb="LIST",le="10000"} 710 +apiserver_response_sizes_bucket{resource="podtemplates",scope="cluster",subresource="",verb="LIST",le="100000"} 710 +apiserver_response_sizes_bucket{resource="podtemplates",scope="cluster",subresource="",verb="LIST",le="1e+06"} 710 +apiserver_response_sizes_bucket{resource="podtemplates",scope="cluster",subresource="",verb="LIST",le="1e+07"} 710 +apiserver_response_sizes_bucket{resource="podtemplates",scope="cluster",subresource="",verb="LIST",le="1e+08"} 710 +apiserver_response_sizes_bucket{resource="podtemplates",scope="cluster",subresource="",verb="LIST",le="1e+09"} 710 +apiserver_response_sizes_bucket{resource="podtemplates",scope="cluster",subresource="",verb="LIST",le="+Inf"} 710 +apiserver_response_sizes_sum{resource="podtemplates",scope="cluster",subresource="",verb="LIST"} 47479 +apiserver_response_sizes_count{resource="podtemplates",scope="cluster",subresource="",verb="LIST"} 710 +apiserver_response_sizes_bucket{resource="replicasets",scope="cluster",subresource="",verb="LIST",le="1000"} 3 +apiserver_response_sizes_bucket{resource="replicasets",scope="cluster",subresource="",verb="LIST",le="10000"} 3 +apiserver_response_sizes_bucket{resource="replicasets",scope="cluster",subresource="",verb="LIST",le="100000"} 714 +apiserver_response_sizes_bucket{resource="replicasets",scope="cluster",subresource="",verb="LIST",le="1e+06"} 714 +apiserver_response_sizes_bucket{resource="replicasets",scope="cluster",subresource="",verb="LIST",le="1e+07"} 714 +apiserver_response_sizes_bucket{resource="replicasets",scope="cluster",subresource="",verb="LIST",le="1e+08"} 714 +apiserver_response_sizes_bucket{resource="replicasets",scope="cluster",subresource="",verb="LIST",le="1e+09"} 714 +apiserver_response_sizes_bucket{resource="replicasets",scope="cluster",subresource="",verb="LIST",le="+Inf"} 714 +apiserver_response_sizes_sum{resource="replicasets",scope="cluster",subresource="",verb="LIST"} 1.3247434e+07 +apiserver_response_sizes_count{resource="replicasets",scope="cluster",subresource="",verb="LIST"} 714 +apiserver_response_sizes_bucket{resource="replicasets",scope="namespace",subresource="",verb="GET",le="1000"} 14 +apiserver_response_sizes_bucket{resource="replicasets",scope="namespace",subresource="",verb="GET",le="10000"} 55 +apiserver_response_sizes_bucket{resource="replicasets",scope="namespace",subresource="",verb="GET",le="100000"} 55 +apiserver_response_sizes_bucket{resource="replicasets",scope="namespace",subresource="",verb="GET",le="1e+06"} 55 +apiserver_response_sizes_bucket{resource="replicasets",scope="namespace",subresource="",verb="GET",le="1e+07"} 55 +apiserver_response_sizes_bucket{resource="replicasets",scope="namespace",subresource="",verb="GET",le="1e+08"} 55 +apiserver_response_sizes_bucket{resource="replicasets",scope="namespace",subresource="",verb="GET",le="1e+09"} 55 +apiserver_response_sizes_bucket{resource="replicasets",scope="namespace",subresource="",verb="GET",le="+Inf"} 55 +apiserver_response_sizes_sum{resource="replicasets",scope="namespace",subresource="",verb="GET"} 76447 +apiserver_response_sizes_count{resource="replicasets",scope="namespace",subresource="",verb="GET"} 55 +apiserver_response_sizes_bucket{resource="replicasets",scope="namespace",subresource="",verb="LIST",le="1000"} 11040 +apiserver_response_sizes_bucket{resource="replicasets",scope="namespace",subresource="",verb="LIST",le="10000"} 22013 +apiserver_response_sizes_bucket{resource="replicasets",scope="namespace",subresource="",verb="LIST",le="100000"} 22013 +apiserver_response_sizes_bucket{resource="replicasets",scope="namespace",subresource="",verb="LIST",le="1e+06"} 22013 +apiserver_response_sizes_bucket{resource="replicasets",scope="namespace",subresource="",verb="LIST",le="1e+07"} 22013 +apiserver_response_sizes_bucket{resource="replicasets",scope="namespace",subresource="",verb="LIST",le="1e+08"} 22013 +apiserver_response_sizes_bucket{resource="replicasets",scope="namespace",subresource="",verb="LIST",le="1e+09"} 22013 +apiserver_response_sizes_bucket{resource="replicasets",scope="namespace",subresource="",verb="LIST",le="+Inf"} 22013 +apiserver_response_sizes_sum{resource="replicasets",scope="namespace",subresource="",verb="LIST"} 3.0011954e+07 +apiserver_response_sizes_count{resource="replicasets",scope="namespace",subresource="",verb="LIST"} 22013 +apiserver_response_sizes_bucket{resource="replicationcontrollers",scope="cluster",subresource="",verb="LIST",le="1000"} 713 +apiserver_response_sizes_bucket{resource="replicationcontrollers",scope="cluster",subresource="",verb="LIST",le="10000"} 713 +apiserver_response_sizes_bucket{resource="replicationcontrollers",scope="cluster",subresource="",verb="LIST",le="100000"} 713 +apiserver_response_sizes_bucket{resource="replicationcontrollers",scope="cluster",subresource="",verb="LIST",le="1e+06"} 713 +apiserver_response_sizes_bucket{resource="replicationcontrollers",scope="cluster",subresource="",verb="LIST",le="1e+07"} 713 +apiserver_response_sizes_bucket{resource="replicationcontrollers",scope="cluster",subresource="",verb="LIST",le="1e+08"} 713 +apiserver_response_sizes_bucket{resource="replicationcontrollers",scope="cluster",subresource="",verb="LIST",le="1e+09"} 713 +apiserver_response_sizes_bucket{resource="replicationcontrollers",scope="cluster",subresource="",verb="LIST",le="+Inf"} 713 +apiserver_response_sizes_sum{resource="replicationcontrollers",scope="cluster",subresource="",verb="LIST"} 62051 +apiserver_response_sizes_count{resource="replicationcontrollers",scope="cluster",subresource="",verb="LIST"} 713 +apiserver_response_sizes_bucket{resource="replicationcontrollers",scope="namespace",subresource="",verb="LIST",le="1000"} 21997 +apiserver_response_sizes_bucket{resource="replicationcontrollers",scope="namespace",subresource="",verb="LIST",le="10000"} 21997 +apiserver_response_sizes_bucket{resource="replicationcontrollers",scope="namespace",subresource="",verb="LIST",le="100000"} 21997 +apiserver_response_sizes_bucket{resource="replicationcontrollers",scope="namespace",subresource="",verb="LIST",le="1e+06"} 21997 +apiserver_response_sizes_bucket{resource="replicationcontrollers",scope="namespace",subresource="",verb="LIST",le="1e+07"} 21997 +apiserver_response_sizes_bucket{resource="replicationcontrollers",scope="namespace",subresource="",verb="LIST",le="1e+08"} 21997 +apiserver_response_sizes_bucket{resource="replicationcontrollers",scope="namespace",subresource="",verb="LIST",le="1e+09"} 21997 +apiserver_response_sizes_bucket{resource="replicationcontrollers",scope="namespace",subresource="",verb="LIST",le="+Inf"} 21997 +apiserver_response_sizes_sum{resource="replicationcontrollers",scope="namespace",subresource="",verb="LIST"} 3.802831e+06 +apiserver_response_sizes_count{resource="replicationcontrollers",scope="namespace",subresource="",verb="LIST"} 21997 +apiserver_response_sizes_bucket{resource="resourcequotas",scope="cluster",subresource="",verb="LIST",le="1000"} 4 +apiserver_response_sizes_bucket{resource="resourcequotas",scope="cluster",subresource="",verb="LIST",le="10000"} 4 +apiserver_response_sizes_bucket{resource="resourcequotas",scope="cluster",subresource="",verb="LIST",le="100000"} 4 +apiserver_response_sizes_bucket{resource="resourcequotas",scope="cluster",subresource="",verb="LIST",le="1e+06"} 4 +apiserver_response_sizes_bucket{resource="resourcequotas",scope="cluster",subresource="",verb="LIST",le="1e+07"} 4 +apiserver_response_sizes_bucket{resource="resourcequotas",scope="cluster",subresource="",verb="LIST",le="1e+08"} 4 +apiserver_response_sizes_bucket{resource="resourcequotas",scope="cluster",subresource="",verb="LIST",le="1e+09"} 4 +apiserver_response_sizes_bucket{resource="resourcequotas",scope="cluster",subresource="",verb="LIST",le="+Inf"} 4 +apiserver_response_sizes_sum{resource="resourcequotas",scope="cluster",subresource="",verb="LIST"} 394 +apiserver_response_sizes_count{resource="resourcequotas",scope="cluster",subresource="",verb="LIST"} 4 +apiserver_response_sizes_bucket{resource="resourcequotas",scope="namespace",subresource="",verb="LIST",le="1000"} 11023 +apiserver_response_sizes_bucket{resource="resourcequotas",scope="namespace",subresource="",verb="LIST",le="10000"} 11023 +apiserver_response_sizes_bucket{resource="resourcequotas",scope="namespace",subresource="",verb="LIST",le="100000"} 11023 +apiserver_response_sizes_bucket{resource="resourcequotas",scope="namespace",subresource="",verb="LIST",le="1e+06"} 11023 +apiserver_response_sizes_bucket{resource="resourcequotas",scope="namespace",subresource="",verb="LIST",le="1e+07"} 11023 +apiserver_response_sizes_bucket{resource="resourcequotas",scope="namespace",subresource="",verb="LIST",le="1e+08"} 11023 +apiserver_response_sizes_bucket{resource="resourcequotas",scope="namespace",subresource="",verb="LIST",le="1e+09"} 11023 +apiserver_response_sizes_bucket{resource="resourcequotas",scope="namespace",subresource="",verb="LIST",le="+Inf"} 11023 +apiserver_response_sizes_sum{resource="resourcequotas",scope="namespace",subresource="",verb="LIST"} 1.034718e+06 +apiserver_response_sizes_count{resource="resourcequotas",scope="namespace",subresource="",verb="LIST"} 11023 +apiserver_response_sizes_bucket{resource="rolebindings",scope="cluster",subresource="",verb="LIST",le="1000"} 1 +apiserver_response_sizes_bucket{resource="rolebindings",scope="cluster",subresource="",verb="LIST",le="10000"} 2 +apiserver_response_sizes_bucket{resource="rolebindings",scope="cluster",subresource="",verb="LIST",le="100000"} 2 +apiserver_response_sizes_bucket{resource="rolebindings",scope="cluster",subresource="",verb="LIST",le="1e+06"} 2 +apiserver_response_sizes_bucket{resource="rolebindings",scope="cluster",subresource="",verb="LIST",le="1e+07"} 2 +apiserver_response_sizes_bucket{resource="rolebindings",scope="cluster",subresource="",verb="LIST",le="1e+08"} 2 +apiserver_response_sizes_bucket{resource="rolebindings",scope="cluster",subresource="",verb="LIST",le="1e+09"} 2 +apiserver_response_sizes_bucket{resource="rolebindings",scope="cluster",subresource="",verb="LIST",le="+Inf"} 2 +apiserver_response_sizes_sum{resource="rolebindings",scope="cluster",subresource="",verb="LIST"} 2950 +apiserver_response_sizes_count{resource="rolebindings",scope="cluster",subresource="",verb="LIST"} 2 +apiserver_response_sizes_bucket{resource="rolebindings",scope="namespace",subresource="",verb="GET",le="1000"} 8 +apiserver_response_sizes_bucket{resource="rolebindings",scope="namespace",subresource="",verb="GET",le="10000"} 22003 +apiserver_response_sizes_bucket{resource="rolebindings",scope="namespace",subresource="",verb="GET",le="100000"} 22003 +apiserver_response_sizes_bucket{resource="rolebindings",scope="namespace",subresource="",verb="GET",le="1e+06"} 22003 +apiserver_response_sizes_bucket{resource="rolebindings",scope="namespace",subresource="",verb="GET",le="1e+07"} 22003 +apiserver_response_sizes_bucket{resource="rolebindings",scope="namespace",subresource="",verb="GET",le="1e+08"} 22003 +apiserver_response_sizes_bucket{resource="rolebindings",scope="namespace",subresource="",verb="GET",le="1e+09"} 22003 +apiserver_response_sizes_bucket{resource="rolebindings",scope="namespace",subresource="",verb="GET",le="+Inf"} 22003 +apiserver_response_sizes_sum{resource="rolebindings",scope="namespace",subresource="",verb="GET"} 2.6373919e+07 +apiserver_response_sizes_count{resource="rolebindings",scope="namespace",subresource="",verb="GET"} 22003 +apiserver_response_sizes_bucket{resource="roles",scope="cluster",subresource="",verb="LIST",le="1000"} 1 +apiserver_response_sizes_bucket{resource="roles",scope="cluster",subresource="",verb="LIST",le="10000"} 2 +apiserver_response_sizes_bucket{resource="roles",scope="cluster",subresource="",verb="LIST",le="100000"} 2 +apiserver_response_sizes_bucket{resource="roles",scope="cluster",subresource="",verb="LIST",le="1e+06"} 2 +apiserver_response_sizes_bucket{resource="roles",scope="cluster",subresource="",verb="LIST",le="1e+07"} 2 +apiserver_response_sizes_bucket{resource="roles",scope="cluster",subresource="",verb="LIST",le="1e+08"} 2 +apiserver_response_sizes_bucket{resource="roles",scope="cluster",subresource="",verb="LIST",le="1e+09"} 2 +apiserver_response_sizes_bucket{resource="roles",scope="cluster",subresource="",verb="LIST",le="+Inf"} 2 +apiserver_response_sizes_sum{resource="roles",scope="cluster",subresource="",verb="LIST"} 2921 +apiserver_response_sizes_count{resource="roles",scope="cluster",subresource="",verb="LIST"} 2 +apiserver_response_sizes_bucket{resource="roles",scope="namespace",subresource="",verb="GET",le="1000"} 9 +apiserver_response_sizes_bucket{resource="roles",scope="namespace",subresource="",verb="GET",le="10000"} 22004 +apiserver_response_sizes_bucket{resource="roles",scope="namespace",subresource="",verb="GET",le="100000"} 22004 +apiserver_response_sizes_bucket{resource="roles",scope="namespace",subresource="",verb="GET",le="1e+06"} 22004 +apiserver_response_sizes_bucket{resource="roles",scope="namespace",subresource="",verb="GET",le="1e+07"} 22004 +apiserver_response_sizes_bucket{resource="roles",scope="namespace",subresource="",verb="GET",le="1e+08"} 22004 +apiserver_response_sizes_bucket{resource="roles",scope="namespace",subresource="",verb="GET",le="1e+09"} 22004 +apiserver_response_sizes_bucket{resource="roles",scope="namespace",subresource="",verb="GET",le="+Inf"} 22004 +apiserver_response_sizes_sum{resource="roles",scope="namespace",subresource="",verb="GET"} 3.1190647e+07 +apiserver_response_sizes_count{resource="roles",scope="namespace",subresource="",verb="GET"} 22004 +apiserver_response_sizes_bucket{resource="secrets",scope="cluster",subresource="",verb="LIST",le="1000"} 2 +apiserver_response_sizes_bucket{resource="secrets",scope="cluster",subresource="",verb="LIST",le="10000"} 2 +apiserver_response_sizes_bucket{resource="secrets",scope="cluster",subresource="",verb="LIST",le="100000"} 2 +apiserver_response_sizes_bucket{resource="secrets",scope="cluster",subresource="",verb="LIST",le="1e+06"} 2 +apiserver_response_sizes_bucket{resource="secrets",scope="cluster",subresource="",verb="LIST",le="1e+07"} 2 +apiserver_response_sizes_bucket{resource="secrets",scope="cluster",subresource="",verb="LIST",le="1e+08"} 2 +apiserver_response_sizes_bucket{resource="secrets",scope="cluster",subresource="",verb="LIST",le="1e+09"} 2 +apiserver_response_sizes_bucket{resource="secrets",scope="cluster",subresource="",verb="LIST",le="+Inf"} 2 +apiserver_response_sizes_sum{resource="secrets",scope="cluster",subresource="",verb="LIST"} 106 +apiserver_response_sizes_count{resource="secrets",scope="cluster",subresource="",verb="LIST"} 2 +apiserver_response_sizes_bucket{resource="secrets",scope="namespace",subresource="",verb="GET",le="1000"} 8812 +apiserver_response_sizes_bucket{resource="secrets",scope="namespace",subresource="",verb="GET",le="10000"} 202551 +apiserver_response_sizes_bucket{resource="secrets",scope="namespace",subresource="",verb="GET",le="100000"} 202551 +apiserver_response_sizes_bucket{resource="secrets",scope="namespace",subresource="",verb="GET",le="1e+06"} 202551 +apiserver_response_sizes_bucket{resource="secrets",scope="namespace",subresource="",verb="GET",le="1e+07"} 202551 +apiserver_response_sizes_bucket{resource="secrets",scope="namespace",subresource="",verb="GET",le="1e+08"} 202551 +apiserver_response_sizes_bucket{resource="secrets",scope="namespace",subresource="",verb="GET",le="1e+09"} 202551 +apiserver_response_sizes_bucket{resource="secrets",scope="namespace",subresource="",verb="GET",le="+Inf"} 202551 +apiserver_response_sizes_sum{resource="secrets",scope="namespace",subresource="",verb="GET"} 4.64331514e+08 +apiserver_response_sizes_count{resource="secrets",scope="namespace",subresource="",verb="GET"} 202551 +apiserver_response_sizes_bucket{resource="secrets",scope="namespace",subresource="",verb="LIST",le="1000"} 21998 +apiserver_response_sizes_bucket{resource="secrets",scope="namespace",subresource="",verb="LIST",le="10000"} 22003 +apiserver_response_sizes_bucket{resource="secrets",scope="namespace",subresource="",verb="LIST",le="100000"} 22024 +apiserver_response_sizes_bucket{resource="secrets",scope="namespace",subresource="",verb="LIST",le="1e+06"} 22024 +apiserver_response_sizes_bucket{resource="secrets",scope="namespace",subresource="",verb="LIST",le="1e+07"} 22024 +apiserver_response_sizes_bucket{resource="secrets",scope="namespace",subresource="",verb="LIST",le="1e+08"} 22024 +apiserver_response_sizes_bucket{resource="secrets",scope="namespace",subresource="",verb="LIST",le="1e+09"} 22024 +apiserver_response_sizes_bucket{resource="secrets",scope="namespace",subresource="",verb="LIST",le="+Inf"} 22024 +apiserver_response_sizes_sum{resource="secrets",scope="namespace",subresource="",verb="LIST"} 3.880406e+06 +apiserver_response_sizes_count{resource="secrets",scope="namespace",subresource="",verb="LIST"} 22024 +apiserver_response_sizes_bucket{resource="serviceaccounts",scope="cluster",subresource="",verb="LIST",le="1000"} 2 +apiserver_response_sizes_bucket{resource="serviceaccounts",scope="cluster",subresource="",verb="LIST",le="10000"} 711 +apiserver_response_sizes_bucket{resource="serviceaccounts",scope="cluster",subresource="",verb="LIST",le="100000"} 711 +apiserver_response_sizes_bucket{resource="serviceaccounts",scope="cluster",subresource="",verb="LIST",le="1e+06"} 711 +apiserver_response_sizes_bucket{resource="serviceaccounts",scope="cluster",subresource="",verb="LIST",le="1e+07"} 711 +apiserver_response_sizes_bucket{resource="serviceaccounts",scope="cluster",subresource="",verb="LIST",le="1e+08"} 711 +apiserver_response_sizes_bucket{resource="serviceaccounts",scope="cluster",subresource="",verb="LIST",le="1e+09"} 711 +apiserver_response_sizes_bucket{resource="serviceaccounts",scope="cluster",subresource="",verb="LIST",le="+Inf"} 711 +apiserver_response_sizes_sum{resource="serviceaccounts",scope="cluster",subresource="",verb="LIST"} 6.775402e+06 +apiserver_response_sizes_count{resource="serviceaccounts",scope="cluster",subresource="",verb="LIST"} 711 +apiserver_response_sizes_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="GET",le="1000"} 66139 +apiserver_response_sizes_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="GET",le="10000"} 66139 +apiserver_response_sizes_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="GET",le="100000"} 66139 +apiserver_response_sizes_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="GET",le="1e+06"} 66139 +apiserver_response_sizes_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="GET",le="1e+07"} 66139 +apiserver_response_sizes_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="GET",le="1e+08"} 66139 +apiserver_response_sizes_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="GET",le="1e+09"} 66139 +apiserver_response_sizes_bucket{resource="serviceaccounts",scope="namespace",subresource="",verb="GET",le="+Inf"} 66139 +apiserver_response_sizes_sum{resource="serviceaccounts",scope="namespace",subresource="",verb="GET"} 4.980278e+07 +apiserver_response_sizes_count{resource="serviceaccounts",scope="namespace",subresource="",verb="GET"} 66139 +apiserver_response_sizes_bucket{resource="services",scope="cluster",subresource="",verb="LIST",le="1000"} 7 +apiserver_response_sizes_bucket{resource="services",scope="cluster",subresource="",verb="LIST",le="10000"} 8067 +apiserver_response_sizes_bucket{resource="services",scope="cluster",subresource="",verb="LIST",le="100000"} 8067 +apiserver_response_sizes_bucket{resource="services",scope="cluster",subresource="",verb="LIST",le="1e+06"} 8067 +apiserver_response_sizes_bucket{resource="services",scope="cluster",subresource="",verb="LIST",le="1e+07"} 8067 +apiserver_response_sizes_bucket{resource="services",scope="cluster",subresource="",verb="LIST",le="1e+08"} 8067 +apiserver_response_sizes_bucket{resource="services",scope="cluster",subresource="",verb="LIST",le="1e+09"} 8067 +apiserver_response_sizes_bucket{resource="services",scope="cluster",subresource="",verb="LIST",le="+Inf"} 8067 +apiserver_response_sizes_sum{resource="services",scope="cluster",subresource="",verb="LIST"} 3.5346667e+07 +apiserver_response_sizes_count{resource="services",scope="cluster",subresource="",verb="LIST"} 8067 +apiserver_response_sizes_bucket{resource="services",scope="namespace",subresource="",verb="GET",le="1000"} 65960 +apiserver_response_sizes_bucket{resource="services",scope="namespace",subresource="",verb="GET",le="10000"} 109953 +apiserver_response_sizes_bucket{resource="services",scope="namespace",subresource="",verb="GET",le="100000"} 109953 +apiserver_response_sizes_bucket{resource="services",scope="namespace",subresource="",verb="GET",le="1e+06"} 109953 +apiserver_response_sizes_bucket{resource="services",scope="namespace",subresource="",verb="GET",le="1e+07"} 109953 +apiserver_response_sizes_bucket{resource="services",scope="namespace",subresource="",verb="GET",le="1e+08"} 109953 +apiserver_response_sizes_bucket{resource="services",scope="namespace",subresource="",verb="GET",le="1e+09"} 109953 +apiserver_response_sizes_bucket{resource="services",scope="namespace",subresource="",verb="GET",le="+Inf"} 109953 +apiserver_response_sizes_sum{resource="services",scope="namespace",subresource="",verb="GET"} 7.0048856e+07 +apiserver_response_sizes_count{resource="services",scope="namespace",subresource="",verb="GET"} 109953 +apiserver_response_sizes_bucket{resource="services",scope="namespace",subresource="",verb="LIST",le="1000"} 10998 +apiserver_response_sizes_bucket{resource="services",scope="namespace",subresource="",verb="LIST",le="10000"} 21998 +apiserver_response_sizes_bucket{resource="services",scope="namespace",subresource="",verb="LIST",le="100000"} 21998 +apiserver_response_sizes_bucket{resource="services",scope="namespace",subresource="",verb="LIST",le="1e+06"} 21998 +apiserver_response_sizes_bucket{resource="services",scope="namespace",subresource="",verb="LIST",le="1e+07"} 21998 +apiserver_response_sizes_bucket{resource="services",scope="namespace",subresource="",verb="LIST",le="1e+08"} 21998 +apiserver_response_sizes_bucket{resource="services",scope="namespace",subresource="",verb="LIST",le="1e+09"} 21998 +apiserver_response_sizes_bucket{resource="services",scope="namespace",subresource="",verb="LIST",le="+Inf"} 21998 +apiserver_response_sizes_sum{resource="services",scope="namespace",subresource="",verb="LIST"} 5.2694659e+07 +apiserver_response_sizes_count{resource="services",scope="namespace",subresource="",verb="LIST"} 21998 +apiserver_response_sizes_bucket{resource="statefulsets",scope="cluster",subresource="",verb="LIST",le="1000"} 711 +apiserver_response_sizes_bucket{resource="statefulsets",scope="cluster",subresource="",verb="LIST",le="10000"} 711 +apiserver_response_sizes_bucket{resource="statefulsets",scope="cluster",subresource="",verb="LIST",le="100000"} 711 +apiserver_response_sizes_bucket{resource="statefulsets",scope="cluster",subresource="",verb="LIST",le="1e+06"} 711 +apiserver_response_sizes_bucket{resource="statefulsets",scope="cluster",subresource="",verb="LIST",le="1e+07"} 711 +apiserver_response_sizes_bucket{resource="statefulsets",scope="cluster",subresource="",verb="LIST",le="1e+08"} 711 +apiserver_response_sizes_bucket{resource="statefulsets",scope="cluster",subresource="",verb="LIST",le="1e+09"} 711 +apiserver_response_sizes_bucket{resource="statefulsets",scope="cluster",subresource="",verb="LIST",le="+Inf"} 711 +apiserver_response_sizes_sum{resource="statefulsets",scope="cluster",subresource="",verb="LIST"} 62472 +apiserver_response_sizes_count{resource="statefulsets",scope="cluster",subresource="",verb="LIST"} 711 +apiserver_response_sizes_bucket{resource="statefulsets",scope="namespace",subresource="",verb="LIST",le="1000"} 21997 +apiserver_response_sizes_bucket{resource="statefulsets",scope="namespace",subresource="",verb="LIST",le="10000"} 21997 +apiserver_response_sizes_bucket{resource="statefulsets",scope="namespace",subresource="",verb="LIST",le="100000"} 21997 +apiserver_response_sizes_bucket{resource="statefulsets",scope="namespace",subresource="",verb="LIST",le="1e+06"} 21997 +apiserver_response_sizes_bucket{resource="statefulsets",scope="namespace",subresource="",verb="LIST",le="1e+07"} 21997 +apiserver_response_sizes_bucket{resource="statefulsets",scope="namespace",subresource="",verb="LIST",le="1e+08"} 21997 +apiserver_response_sizes_bucket{resource="statefulsets",scope="namespace",subresource="",verb="LIST",le="1e+09"} 21997 +apiserver_response_sizes_bucket{resource="statefulsets",scope="namespace",subresource="",verb="LIST",le="+Inf"} 21997 +apiserver_response_sizes_sum{resource="statefulsets",scope="namespace",subresource="",verb="LIST"} 3.824828e+06 +apiserver_response_sizes_count{resource="statefulsets",scope="namespace",subresource="",verb="LIST"} 21997 +apiserver_response_sizes_bucket{resource="storageclasses",scope="cluster",subresource="",verb="LIST",le="1000"} 9 +apiserver_response_sizes_bucket{resource="storageclasses",scope="cluster",subresource="",verb="LIST",le="10000"} 9 +apiserver_response_sizes_bucket{resource="storageclasses",scope="cluster",subresource="",verb="LIST",le="100000"} 9 +apiserver_response_sizes_bucket{resource="storageclasses",scope="cluster",subresource="",verb="LIST",le="1e+06"} 9 +apiserver_response_sizes_bucket{resource="storageclasses",scope="cluster",subresource="",verb="LIST",le="1e+07"} 9 +apiserver_response_sizes_bucket{resource="storageclasses",scope="cluster",subresource="",verb="LIST",le="1e+08"} 9 +apiserver_response_sizes_bucket{resource="storageclasses",scope="cluster",subresource="",verb="LIST",le="1e+09"} 9 +apiserver_response_sizes_bucket{resource="storageclasses",scope="cluster",subresource="",verb="LIST",le="+Inf"} 9 +apiserver_response_sizes_sum{resource="storageclasses",scope="cluster",subresource="",verb="LIST"} 3154 +apiserver_response_sizes_count{resource="storageclasses",scope="cluster",subresource="",verb="LIST"} 9 +# HELP authenticated_user_requests Counter of authenticated requests broken out by username. +# TYPE authenticated_user_requests counter +authenticated_user_requests{username="admin"} 67714 +authenticated_user_requests{username="email_id"} 1127 +authenticated_user_requests{username="kubelet"} 28 +authenticated_user_requests{username="other"} 1.0894665e+07 +# HELP autoregister_adds Total number of adds handled by workqueue: autoregister +# TYPE autoregister_adds counter +autoregister_adds 44020 +# HELP autoregister_depth Current depth of workqueue: autoregister +# TYPE autoregister_depth gauge +autoregister_depth 0 +# HELP autoregister_queue_latency How long an item stays in workqueueautoregister before being requested. +# TYPE autoregister_queue_latency summary +autoregister_queue_latency{quantile="0.5"} 2 +autoregister_queue_latency{quantile="0.9"} 5 +autoregister_queue_latency{quantile="0.99"} 6 +autoregister_queue_latency_sum 9.377003e+06 +autoregister_queue_latency_count 44020 +# HELP autoregister_retries Total number of retries handled by workqueue: autoregister +# TYPE autoregister_retries counter +autoregister_retries 0 +# HELP autoregister_work_duration How long processing an item from workqueueautoregister takes. +# TYPE autoregister_work_duration summary +autoregister_work_duration{quantile="0.5"} 2 +autoregister_work_duration{quantile="0.9"} 3 +autoregister_work_duration{quantile="0.99"} 8 +autoregister_work_duration_sum 887332 +autoregister_work_duration_count 44020 +# HELP cloudprovider_gce_api_request_duration_seconds Latency of a GCE API call +# TYPE cloudprovider_gce_api_request_duration_seconds histogram +cloudprovider_gce_api_request_duration_seconds_bucket{region="",request="instances_add_ssh_key",version="v1",zone="",le="0.005"} 0 +cloudprovider_gce_api_request_duration_seconds_bucket{region="",request="instances_add_ssh_key",version="v1",zone="",le="0.01"} 0 +cloudprovider_gce_api_request_duration_seconds_bucket{region="",request="instances_add_ssh_key",version="v1",zone="",le="0.025"} 0 +cloudprovider_gce_api_request_duration_seconds_bucket{region="",request="instances_add_ssh_key",version="v1",zone="",le="0.05"} 0 +cloudprovider_gce_api_request_duration_seconds_bucket{region="",request="instances_add_ssh_key",version="v1",zone="",le="0.1"} 0 +cloudprovider_gce_api_request_duration_seconds_bucket{region="",request="instances_add_ssh_key",version="v1",zone="",le="0.25"} 0 +cloudprovider_gce_api_request_duration_seconds_bucket{region="",request="instances_add_ssh_key",version="v1",zone="",le="0.5"} 0 +cloudprovider_gce_api_request_duration_seconds_bucket{region="",request="instances_add_ssh_key",version="v1",zone="",le="1"} 0 +cloudprovider_gce_api_request_duration_seconds_bucket{region="",request="instances_add_ssh_key",version="v1",zone="",le="2.5"} 0 +cloudprovider_gce_api_request_duration_seconds_bucket{region="",request="instances_add_ssh_key",version="v1",zone="",le="5"} 1 +cloudprovider_gce_api_request_duration_seconds_bucket{region="",request="instances_add_ssh_key",version="v1",zone="",le="10"} 3 +cloudprovider_gce_api_request_duration_seconds_bucket{region="",request="instances_add_ssh_key",version="v1",zone="",le="+Inf"} 4 +cloudprovider_gce_api_request_duration_seconds_sum{region="",request="instances_add_ssh_key",version="v1",zone=""} 32.549303707 +cloudprovider_gce_api_request_duration_seconds_count{region="",request="instances_add_ssh_key",version="v1",zone=""} 4 +cloudprovider_gce_api_request_duration_seconds_bucket{region="us-central1",request="disk_get",version="v1",zone="us-central1-a",le="0.005"} 0 +cloudprovider_gce_api_request_duration_seconds_bucket{region="us-central1",request="disk_get",version="v1",zone="us-central1-a",le="0.01"} 0 +cloudprovider_gce_api_request_duration_seconds_bucket{region="us-central1",request="disk_get",version="v1",zone="us-central1-a",le="0.025"} 0 +cloudprovider_gce_api_request_duration_seconds_bucket{region="us-central1",request="disk_get",version="v1",zone="us-central1-a",le="0.05"} 0 +cloudprovider_gce_api_request_duration_seconds_bucket{region="us-central1",request="disk_get",version="v1",zone="us-central1-a",le="0.1"} 1 +cloudprovider_gce_api_request_duration_seconds_bucket{region="us-central1",request="disk_get",version="v1",zone="us-central1-a",le="0.25"} 1 +cloudprovider_gce_api_request_duration_seconds_bucket{region="us-central1",request="disk_get",version="v1",zone="us-central1-a",le="0.5"} 1 +cloudprovider_gce_api_request_duration_seconds_bucket{region="us-central1",request="disk_get",version="v1",zone="us-central1-a",le="1"} 1 +cloudprovider_gce_api_request_duration_seconds_bucket{region="us-central1",request="disk_get",version="v1",zone="us-central1-a",le="2.5"} 1 +cloudprovider_gce_api_request_duration_seconds_bucket{region="us-central1",request="disk_get",version="v1",zone="us-central1-a",le="5"} 1 +cloudprovider_gce_api_request_duration_seconds_bucket{region="us-central1",request="disk_get",version="v1",zone="us-central1-a",le="10"} 1 +cloudprovider_gce_api_request_duration_seconds_bucket{region="us-central1",request="disk_get",version="v1",zone="us-central1-a",le="+Inf"} 1 +cloudprovider_gce_api_request_duration_seconds_sum{region="us-central1",request="disk_get",version="v1",zone="us-central1-a"} 0.095171543 +cloudprovider_gce_api_request_duration_seconds_count{region="us-central1",request="disk_get",version="v1",zone="us-central1-a"} 1 +# HELP etcd_helper_cache_entry_count Counter of etcd helper cache entries. This can be different from etcd_helper_cache_miss_count because two concurrent threads can miss the cache and generate the same entry twice. +# TYPE etcd_helper_cache_entry_count counter +etcd_helper_cache_entry_count 0 +# HELP etcd_helper_cache_hit_count Counter of etcd helper cache hits. +# TYPE etcd_helper_cache_hit_count counter +etcd_helper_cache_hit_count 0 +# HELP etcd_helper_cache_miss_count Counter of etcd helper cache miss. +# TYPE etcd_helper_cache_miss_count counter +etcd_helper_cache_miss_count 0 +# HELP etcd_request_cache_add_latencies_summary Latency in microseconds of adding an object to etcd cache +# TYPE etcd_request_cache_add_latencies_summary summary +etcd_request_cache_add_latencies_summary{quantile="0.5"} NaN +etcd_request_cache_add_latencies_summary{quantile="0.9"} NaN +etcd_request_cache_add_latencies_summary{quantile="0.99"} NaN +etcd_request_cache_add_latencies_summary_sum 0 +etcd_request_cache_add_latencies_summary_count 0 +# HELP etcd_request_cache_get_latencies_summary Latency in microseconds of getting an object from etcd cache +# TYPE etcd_request_cache_get_latencies_summary summary +etcd_request_cache_get_latencies_summary{quantile="0.5"} NaN +etcd_request_cache_get_latencies_summary{quantile="0.9"} NaN +etcd_request_cache_get_latencies_summary{quantile="0.99"} NaN +etcd_request_cache_get_latencies_summary_sum 0 +etcd_request_cache_get_latencies_summary_count 0 +# HELP get_token_count Counter of total Token() requests to the alternate token source +# TYPE get_token_count counter +get_token_count 186 +# HELP get_token_fail_count Counter of failed Token() requests to the alternate token source +# TYPE get_token_fail_count counter +get_token_fail_count 0 +# HELP go_gc_duration_seconds A summary of the GC invocation durations. +# TYPE go_gc_duration_seconds summary +go_gc_duration_seconds{quantile="0"} 3.9801e-05 +go_gc_duration_seconds{quantile="0.25"} 5.1422e-05 +go_gc_duration_seconds{quantile="0.5"} 5.8774e-05 +go_gc_duration_seconds{quantile="0.75"} 7.1318e-05 +go_gc_duration_seconds{quantile="1"} 0.002936927 +go_gc_duration_seconds_sum 0.594059989 +go_gc_duration_seconds_count 5703 +# HELP go_goroutines Number of goroutines that currently exist. +# TYPE go_goroutines gauge +go_goroutines 1845 +# HELP go_memstats_alloc_bytes Number of bytes allocated and still in use. +# TYPE go_memstats_alloc_bytes gauge +go_memstats_alloc_bytes 2.51694696e+08 +# HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed. +# TYPE go_memstats_alloc_bytes_total counter +go_memstats_alloc_bytes_total 8.33050702336e+11 +# HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table. +# TYPE go_memstats_buck_hash_sys_bytes gauge +go_memstats_buck_hash_sys_bytes 9.851132e+06 +# HELP go_memstats_frees_total Total number of frees. +# TYPE go_memstats_frees_total counter +go_memstats_frees_total 8.492339446e+09 +# HELP go_memstats_gc_cpu_fraction The fraction of this program's available CPU time used by the GC since the program started. +# TYPE go_memstats_gc_cpu_fraction gauge +go_memstats_gc_cpu_fraction 0.0008352398553715247 +# HELP go_memstats_gc_sys_bytes Number of bytes used for garbage collection system metadata. +# TYPE go_memstats_gc_sys_bytes gauge +go_memstats_gc_sys_bytes 1.2654592e+07 +# HELP go_memstats_heap_alloc_bytes Number of heap bytes allocated and still in use. +# TYPE go_memstats_heap_alloc_bytes gauge +go_memstats_heap_alloc_bytes 2.51694696e+08 +# HELP go_memstats_heap_idle_bytes Number of heap bytes waiting to be used. +# TYPE go_memstats_heap_idle_bytes gauge +go_memstats_heap_idle_bytes 3.7134336e+07 +# HELP go_memstats_heap_inuse_bytes Number of heap bytes that are in use. +# TYPE go_memstats_heap_inuse_bytes gauge +go_memstats_heap_inuse_bytes 2.88874496e+08 +# HELP go_memstats_heap_objects Number of allocated objects. +# TYPE go_memstats_heap_objects gauge +go_memstats_heap_objects 1.607999e+06 +# HELP go_memstats_heap_released_bytes Number of heap bytes released to OS. +# TYPE go_memstats_heap_released_bytes gauge +go_memstats_heap_released_bytes 1.499136e+06 +# HELP go_memstats_heap_sys_bytes Number of heap bytes obtained from system. +# TYPE go_memstats_heap_sys_bytes gauge +go_memstats_heap_sys_bytes 3.26008832e+08 +# HELP go_memstats_last_gc_time_seconds Number of seconds since 1970 of last garbage collection. +# TYPE go_memstats_last_gc_time_seconds gauge +go_memstats_last_gc_time_seconds 1.5258146210108325e+09 +# HELP go_memstats_lookups_total Total number of pointer lookups. +# TYPE go_memstats_lookups_total counter +go_memstats_lookups_total 683017 +# HELP go_memstats_mallocs_total Total number of mallocs. +# TYPE go_memstats_mallocs_total counter +go_memstats_mallocs_total 8.493947445e+09 +# HELP go_memstats_mcache_inuse_bytes Number of bytes in use by mcache structures. +# TYPE go_memstats_mcache_inuse_bytes gauge +go_memstats_mcache_inuse_bytes 1200 +# HELP go_memstats_mcache_sys_bytes Number of bytes used for mcache structures obtained from system. +# TYPE go_memstats_mcache_sys_bytes gauge +go_memstats_mcache_sys_bytes 16384 +# HELP go_memstats_mspan_inuse_bytes Number of bytes in use by mspan structures. +# TYPE go_memstats_mspan_inuse_bytes gauge +go_memstats_mspan_inuse_bytes 4.224536e+06 +# HELP go_memstats_mspan_sys_bytes Number of bytes used for mspan structures obtained from system. +# TYPE go_memstats_mspan_sys_bytes gauge +go_memstats_mspan_sys_bytes 4.456448e+06 +# HELP go_memstats_next_gc_bytes Number of heap bytes when next garbage collection will take place. +# TYPE go_memstats_next_gc_bytes gauge +go_memstats_next_gc_bytes 3.13920544e+08 +# HELP go_memstats_other_sys_bytes Number of bytes used for other system allocations. +# TYPE go_memstats_other_sys_bytes gauge +go_memstats_other_sys_bytes 1.363964e+06 +# HELP go_memstats_stack_inuse_bytes Number of bytes in use by the stack allocator. +# TYPE go_memstats_stack_inuse_bytes gauge +go_memstats_stack_inuse_bytes 1.0190848e+07 +# HELP go_memstats_stack_sys_bytes Number of bytes obtained from system for stack allocator. +# TYPE go_memstats_stack_sys_bytes gauge +go_memstats_stack_sys_bytes 1.0190848e+07 +# HELP go_memstats_sys_bytes Number of bytes obtained from system. +# TYPE go_memstats_sys_bytes gauge +go_memstats_sys_bytes 3.645422e+08 +# HELP go_threads Number of OS threads created +# TYPE go_threads gauge +go_threads 22 +# HELP grpc_client_handled_total Total number of RPCs completed by the client, regardless of success or failure. +# TYPE grpc_client_handled_total counter +grpc_client_handled_total{grpc_code="Canceled",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 2598 +grpc_client_handled_total{grpc_code="OK",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 8796 +grpc_client_handled_total{grpc_code="OK",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 2033 +grpc_client_handled_total{grpc_code="OK",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 3.699388e+06 +grpc_client_handled_total{grpc_code="OK",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 944184 +grpc_client_handled_total{grpc_code="Unavailable",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 2 +# HELP grpc_client_msg_received_total Total number of RPC stream messages received by the client. +# TYPE grpc_client_msg_received_total counter +grpc_client_msg_received_total{grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 2 +grpc_client_msg_received_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 897858 +# HELP grpc_client_msg_sent_total Total number of gRPC stream messages sent by the client. +# TYPE grpc_client_msg_sent_total counter +grpc_client_msg_sent_total{grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 8796 +grpc_client_msg_sent_total{grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 2035 +grpc_client_msg_sent_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 3.699388e+06 +grpc_client_msg_sent_total{grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 944184 +grpc_client_msg_sent_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 2649 +# HELP grpc_client_started_total Total number of RPCs started on the client. +# TYPE grpc_client_started_total counter +grpc_client_started_total{grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 8796 +grpc_client_started_total{grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 2035 +grpc_client_started_total{grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 53 +grpc_client_started_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 3.699388e+06 +grpc_client_started_total{grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 944184 +grpc_client_started_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 2647 +# HELP http_request_duration_microseconds The HTTP request latencies in microseconds. +# TYPE http_request_duration_microseconds summary +http_request_duration_microseconds{handler="prometheus",quantile="0.5"} 54471.091 +http_request_duration_microseconds{handler="prometheus",quantile="0.9"} 70943.082 +http_request_duration_microseconds{handler="prometheus",quantile="0.99"} 74791.823 +http_request_duration_microseconds_sum{handler="prometheus"} 1.1478156612180028e+09 +http_request_duration_microseconds_count{handler="prometheus"} 18186 +# HELP http_request_size_bytes The HTTP request sizes in bytes. +# TYPE http_request_size_bytes summary +http_request_size_bytes{handler="prometheus",quantile="0.5"} 80 +http_request_size_bytes{handler="prometheus",quantile="0.9"} 210 +http_request_size_bytes{handler="prometheus",quantile="0.99"} 210 +http_request_size_bytes_sum{handler="prometheus"} 2.390136e+06 +http_request_size_bytes_count{handler="prometheus"} 18186 +# HELP http_requests_total Total number of HTTP requests made. +# TYPE http_requests_total counter +http_requests_total{code="200",handler="prometheus",method="get"} 18186 +# HELP http_response_size_bytes The HTTP response sizes in bytes. +# TYPE http_response_size_bytes summary +http_response_size_bytes{handler="prometheus",quantile="0.5"} 45760 +http_response_size_bytes{handler="prometheus",quantile="0.9"} 45818 +http_response_size_bytes{handler="prometheus",quantile="0.99"} 45844 +http_response_size_bytes_sum{handler="prometheus"} 7.12292353e+08 +http_response_size_bytes_count{handler="prometheus"} 18186 +# HELP kubernetes_build_info A metric with a constant '1' value labeled by major, minor, git version, git commit, git tree state, build date, Go version, and compiler from which Kubernetes was built, and platform on which it is running. +# TYPE kubernetes_build_info gauge +kubernetes_build_info{buildDate="2018-02-16T18:26:58Z",compiler="gc",gitCommit="6e5b33a290a99c067003632e0fd6be0ead48b233",gitTreeState="clean",gitVersion="v1.8.8-gke.0",goVersion="go1.8.3b4",major="1",minor="8+",platform="linux/amd64"} 1 +# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds. +# TYPE process_cpu_seconds_total counter +process_cpu_seconds_total 26642.98 +# HELP process_max_fds Maximum number of open file descriptors. +# TYPE process_max_fds gauge +process_max_fds 1.048576e+06 +# HELP process_open_fds Number of open file descriptors. +# TYPE process_open_fds gauge +process_open_fds 127 +# HELP process_resident_memory_bytes Resident memory size in bytes. +# TYPE process_resident_memory_bytes gauge +process_resident_memory_bytes 4.02694144e+08 +# HELP process_start_time_seconds Start time of the process since unix epoch in seconds. +# TYPE process_start_time_seconds gauge +process_start_time_seconds 1.5251547122e+09 +# HELP process_virtual_memory_bytes Virtual memory size in bytes. +# TYPE process_virtual_memory_bytes gauge +process_virtual_memory_bytes 1.219538944e+09 +# HELP reflector_items_per_list How many items an API list returns to the reflectors +# TYPE reflector_items_per_list summary +reflector_items_per_list{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1169",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1169",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1169",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1169"} 0 +reflector_items_per_list_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1169"} 1 +reflector_items_per_list{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1172",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1172",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1172",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1172"} 0 +reflector_items_per_list_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1172"} 1 +reflector_items_per_list{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1173",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1173",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1173",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1173"} 0 +reflector_items_per_list_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1173"} 1 +reflector_items_per_list{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1174",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1174",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1174",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1174"} 0 +reflector_items_per_list_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1174"} 1 +reflector_items_per_list{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1175",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1175",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1175",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1175"} 0 +reflector_items_per_list_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1175"} 1 +reflector_items_per_list{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1176",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1176",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1176",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1176"} 0 +reflector_items_per_list_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1176"} 1 +reflector_items_per_list{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1177",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1177",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1177",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1177"} 0 +reflector_items_per_list_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1177"} 1 +reflector_items_per_list{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1178",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1178",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1178",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1178"} 0 +reflector_items_per_list_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1178"} 2 +reflector_items_per_list{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1179",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1179",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1179",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1179"} 0 +reflector_items_per_list_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1179"} 1 +reflector_items_per_list{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1180",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1180",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1180",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1180"} 0 +reflector_items_per_list_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1180"} 1 +reflector_items_per_list{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1181",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1181",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1181",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1181"} 0 +reflector_items_per_list_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1181"} 1 +reflector_items_per_list{name="reflector_k8s_io_kubernetes_vendor_k8s_io_apiextensions_apiserver_pkg_client_informers_internalversion_factory_go_61_1171",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_k8s_io_kubernetes_vendor_k8s_io_apiextensions_apiserver_pkg_client_informers_internalversion_factory_go_61_1171",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_k8s_io_kubernetes_vendor_k8s_io_apiextensions_apiserver_pkg_client_informers_internalversion_factory_go_61_1171",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_k8s_io_kubernetes_vendor_k8s_io_apiextensions_apiserver_pkg_client_informers_internalversion_factory_go_61_1171"} 0 +reflector_items_per_list_count{name="reflector_k8s_io_kubernetes_vendor_k8s_io_apiextensions_apiserver_pkg_client_informers_internalversion_factory_go_61_1171"} 1 +reflector_items_per_list{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1170",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1170",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1170",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1170"} 0 +reflector_items_per_list_count{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1170"} 1 +reflector_items_per_list{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1183",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1183",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1183",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1183"} 0 +reflector_items_per_list_count{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1183"} 1 +reflector_items_per_list{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1184",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1184",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1184",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1184"} 0 +reflector_items_per_list_count{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1184"} 1 +reflector_items_per_list{name="reflector_k8s_io_kubernetes_vendor_k8s_io_kube_aggregator_pkg_client_informers_internalversion_factory_go_61_1182",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_k8s_io_kubernetes_vendor_k8s_io_kube_aggregator_pkg_client_informers_internalversion_factory_go_61_1182",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_k8s_io_kubernetes_vendor_k8s_io_kube_aggregator_pkg_client_informers_internalversion_factory_go_61_1182",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_k8s_io_kubernetes_vendor_k8s_io_kube_aggregator_pkg_client_informers_internalversion_factory_go_61_1182"} 0 +reflector_items_per_list_count{name="reflector_k8s_io_kubernetes_vendor_k8s_io_kube_aggregator_pkg_client_informers_internalversion_factory_go_61_1182"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__apiextensions_k8s_io_customresourcedefinitions_1121",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__apiextensions_k8s_io_customresourcedefinitions_1121",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__apiextensions_k8s_io_customresourcedefinitions_1121",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__apiextensions_k8s_io_customresourcedefinitions_1121"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__apiextensions_k8s_io_customresourcedefinitions_1121"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__apiregistration_k8s_io_apiservices_1168",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__apiregistration_k8s_io_apiservices_1168",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__apiregistration_k8s_io_apiservices_1168",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__apiregistration_k8s_io_apiservices_1168"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__apiregistration_k8s_io_apiservices_1168"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__certificatesigningrequests_1140",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__certificatesigningrequests_1140",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__certificatesigningrequests_1140",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__certificatesigningrequests_1140"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__certificatesigningrequests_1140"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__clusterrolebindings_1153",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__clusterrolebindings_1153",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__clusterrolebindings_1153",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__clusterrolebindings_1153"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__clusterrolebindings_1153"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__clusterrolebindings_1157",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__clusterrolebindings_1157",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__clusterrolebindings_1157",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__clusterrolebindings_1157"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__clusterrolebindings_1157"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__clusterroles_1152",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__clusterroles_1152",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__clusterroles_1152",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__clusterroles_1152"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__clusterroles_1152"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__clusterroles_1156",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__clusterroles_1156",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__clusterroles_1156",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__clusterroles_1156"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__clusterroles_1156"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__configmaps_1129",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__configmaps_1129",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__configmaps_1129",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__configmaps_1129"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__configmaps_1129"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__controllerrevisions_1162",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__controllerrevisions_1162",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__controllerrevisions_1162",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__controllerrevisions_1162"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__controllerrevisions_1162"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__controllerrevisions_1167",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__controllerrevisions_1167",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__controllerrevisions_1167",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__controllerrevisions_1167"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__controllerrevisions_1167"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__controllers_1135",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__controllers_1135",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__controllers_1135",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__controllers_1135"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__controllers_1135"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__controllers_1141",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__controllers_1141",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__controllers_1141",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__controllers_1141"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__controllers_1141"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__cronjobs_1139",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__cronjobs_1139",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__cronjobs_1139",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__cronjobs_1139"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__cronjobs_1139"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__daemonsets_1142",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__daemonsets_1142",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__daemonsets_1142",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__daemonsets_1142"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__daemonsets_1142"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__daemonsets_1165",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__daemonsets_1165",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__daemonsets_1165",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__daemonsets_1165"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__daemonsets_1165"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__deployments_1143",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__deployments_1143",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__deployments_1143",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__deployments_1143"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__deployments_1143"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__deployments_1160",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__deployments_1160",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__deployments_1160",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__deployments_1160"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__deployments_1160"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__deployments_1163",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__deployments_1163",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__deployments_1163",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__deployments_1163"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__deployments_1163"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__horizontalpodautoscalers_1136",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__horizontalpodautoscalers_1136",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__horizontalpodautoscalers_1136",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__horizontalpodautoscalers_1136"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__horizontalpodautoscalers_1136"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__horizontalpodautoscalers_1137",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__horizontalpodautoscalers_1137",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__horizontalpodautoscalers_1137",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__horizontalpodautoscalers_1137"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__horizontalpodautoscalers_1137"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__ingress_1144",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__ingress_1144",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__ingress_1144",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__ingress_1144"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__ingress_1144"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__jobs_1138",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__jobs_1138",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__jobs_1138",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__jobs_1138"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__jobs_1138"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__limitranges_1123",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__limitranges_1123",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__limitranges_1123",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__limitranges_1123"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__limitranges_1123"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__minions_1132",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__minions_1132",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__minions_1132",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__minions_1132"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__minions_1132"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__namespaces_1130",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__namespaces_1130",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__namespaces_1130",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__namespaces_1130"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__namespaces_1130"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__networkpolicies_1147",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__networkpolicies_1147",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__networkpolicies_1147",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__networkpolicies_1147"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__networkpolicies_1147"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__networkpolicies_1148",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__networkpolicies_1148",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__networkpolicies_1148",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__networkpolicies_1148"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__networkpolicies_1148"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__persistentvolumeclaims_1128",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__persistentvolumeclaims_1128",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__persistentvolumeclaims_1128",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__persistentvolumeclaims_1128"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__persistentvolumeclaims_1128"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__persistentvolumes_1127",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__persistentvolumes_1127",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__persistentvolumes_1127",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__persistentvolumes_1127"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__persistentvolumes_1127"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__poddisruptionbudgets_1149",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__poddisruptionbudgets_1149",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__poddisruptionbudgets_1149",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__poddisruptionbudgets_1149"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__poddisruptionbudgets_1149"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__pods_1133",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__pods_1133",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__pods_1133",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__pods_1133"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__pods_1133"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__podsecuritypolicy_1145",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__podsecuritypolicy_1145",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__podsecuritypolicy_1145",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__podsecuritypolicy_1145"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__podsecuritypolicy_1145"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__podtemplates_1122",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__podtemplates_1122",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__podtemplates_1122",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__podtemplates_1122"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__podtemplates_1122"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__replicasets_1146",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__replicasets_1146",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__replicasets_1146",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__replicasets_1146"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__replicasets_1146"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__replicasets_1166",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__replicasets_1166",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__replicasets_1166",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__replicasets_1166"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__replicasets_1166"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__resourcequotas_1124",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__resourcequotas_1124",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__resourcequotas_1124",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__resourcequotas_1124"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__resourcequotas_1124"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__rolebindings_1151",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__rolebindings_1151",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__rolebindings_1151",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__rolebindings_1151"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__rolebindings_1151"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__rolebindings_1155",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__rolebindings_1155",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__rolebindings_1155",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__rolebindings_1155"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__rolebindings_1155"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__roles_1150",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__roles_1150",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__roles_1150",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__roles_1150"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__roles_1150"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__roles_1154",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__roles_1154",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__roles_1154",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__roles_1154"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__roles_1154"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__secrets_1125",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__secrets_1125",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__secrets_1125",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__secrets_1125"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__secrets_1125"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__serviceaccounts_1126",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__serviceaccounts_1126",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__serviceaccounts_1126",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__serviceaccounts_1126"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__serviceaccounts_1126"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__services_endpoints_1131",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__services_endpoints_1131",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__services_endpoints_1131",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__services_endpoints_1131"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__services_endpoints_1131"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__services_specs_1134",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__services_specs_1134",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__services_specs_1134",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__services_specs_1134"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__services_specs_1134"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__statefulsets_1161",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__statefulsets_1161",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__statefulsets_1161",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__statefulsets_1161"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__statefulsets_1161"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__statefulsets_1164",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__statefulsets_1164",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__statefulsets_1164",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__statefulsets_1164"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__statefulsets_1164"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__storageclasses_1158",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__storageclasses_1158",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__storageclasses_1158",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__storageclasses_1158"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__storageclasses_1158"} 1 +reflector_items_per_list{name="reflector_storage_cacher_go__storageclasses_1159",quantile="0.5"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__storageclasses_1159",quantile="0.9"} NaN +reflector_items_per_list{name="reflector_storage_cacher_go__storageclasses_1159",quantile="0.99"} NaN +reflector_items_per_list_sum{name="reflector_storage_cacher_go__storageclasses_1159"} 0 +reflector_items_per_list_count{name="reflector_storage_cacher_go__storageclasses_1159"} 1 +# HELP reflector_items_per_watch How many items an API watch returns to the reflectors +# TYPE reflector_items_per_watch summary +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1169",quantile="0.5"} 0 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1169",quantile="0.9"} 0 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1169",quantile="0.99"} 0 +reflector_items_per_watch_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1169"} 1 +reflector_items_per_watch_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1169"} 1461 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1172",quantile="0.5"} 0 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1172",quantile="0.9"} 0 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1172",quantile="0.99"} 0 +reflector_items_per_watch_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1172"} 54 +reflector_items_per_watch_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1172"} 1459 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1173",quantile="0.5"} 0 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1173",quantile="0.9"} 0 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1173",quantile="0.99"} 0 +reflector_items_per_watch_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1173"} 48 +reflector_items_per_watch_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1173"} 1478 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1174",quantile="0.5"} 0 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1174",quantile="0.9"} 0 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1174",quantile="0.99"} 0 +reflector_items_per_watch_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1174"} 79 +reflector_items_per_watch_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1174"} 1473 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1175",quantile="0.5"} 0 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1175",quantile="0.9"} 0 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1175",quantile="0.99"} 0 +reflector_items_per_watch_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1175"} 0 +reflector_items_per_watch_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1175"} 1496 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1176",quantile="0.5"} 0 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1176",quantile="0.9"} 0 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1176",quantile="0.99"} 0 +reflector_items_per_watch_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1176"} 45 +reflector_items_per_watch_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1176"} 1476 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1177",quantile="0.5"} 0 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1177",quantile="0.9"} 0 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1177",quantile="0.99"} 0 +reflector_items_per_watch_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1177"} 1051 +reflector_items_per_watch_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1177"} 1476 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1178",quantile="0.5"} 0 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1178",quantile="0.9"} 0 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1178",quantile="0.99"} 0 +reflector_items_per_watch_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1178"} 2 +reflector_items_per_watch_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1178"} 1471 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1179",quantile="0.5"} 0 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1179",quantile="0.9"} 0 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1179",quantile="0.99"} 0 +reflector_items_per_watch_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1179"} 9 +reflector_items_per_watch_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1179"} 1482 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1180",quantile="0.5"} 0 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1180",quantile="0.9"} 0 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1180",quantile="0.99"} 0 +reflector_items_per_watch_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1180"} 8 +reflector_items_per_watch_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1180"} 1450 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1181",quantile="0.5"} 0 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1181",quantile="0.9"} 0 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1181",quantile="0.99"} 0 +reflector_items_per_watch_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1181"} 1 +reflector_items_per_watch_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1181"} 1472 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_vendor_k8s_io_apiextensions_apiserver_pkg_client_informers_internalversion_factory_go_61_1171",quantile="0.5"} 0 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_vendor_k8s_io_apiextensions_apiserver_pkg_client_informers_internalversion_factory_go_61_1171",quantile="0.9"} 0 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_vendor_k8s_io_apiextensions_apiserver_pkg_client_informers_internalversion_factory_go_61_1171",quantile="0.99"} 0 +reflector_items_per_watch_sum{name="reflector_k8s_io_kubernetes_vendor_k8s_io_apiextensions_apiserver_pkg_client_informers_internalversion_factory_go_61_1171"} 0 +reflector_items_per_watch_count{name="reflector_k8s_io_kubernetes_vendor_k8s_io_apiextensions_apiserver_pkg_client_informers_internalversion_factory_go_61_1171"} 1467 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1170",quantile="0.5"} 0 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1170",quantile="0.9"} 0 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1170",quantile="0.99"} 0 +reflector_items_per_watch_sum{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1170"} 9 +reflector_items_per_watch_count{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1170"} 1466 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1183",quantile="0.5"} 364 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1183",quantile="0.9"} 364 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1183",quantile="0.99"} 364 +reflector_items_per_watch_sum{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1183"} 656820 +reflector_items_per_watch_count{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1183"} 1474 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1184",quantile="0.5"} 0 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1184",quantile="0.9"} 0 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1184",quantile="0.99"} 0 +reflector_items_per_watch_sum{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1184"} 4 +reflector_items_per_watch_count{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1184"} 1463 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_vendor_k8s_io_kube_aggregator_pkg_client_informers_internalversion_factory_go_61_1182",quantile="0.5"} 0 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_vendor_k8s_io_kube_aggregator_pkg_client_informers_internalversion_factory_go_61_1182",quantile="0.9"} 0 +reflector_items_per_watch{name="reflector_k8s_io_kubernetes_vendor_k8s_io_kube_aggregator_pkg_client_informers_internalversion_factory_go_61_1182",quantile="0.99"} 0 +reflector_items_per_watch_sum{name="reflector_k8s_io_kubernetes_vendor_k8s_io_kube_aggregator_pkg_client_informers_internalversion_factory_go_61_1182"} 20 +reflector_items_per_watch_count{name="reflector_k8s_io_kubernetes_vendor_k8s_io_kube_aggregator_pkg_client_informers_internalversion_factory_go_61_1182"} 1465 +reflector_items_per_watch{name="reflector_storage_cacher_go__apiextensions_k8s_io_customresourcedefinitions_1121",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__apiextensions_k8s_io_customresourcedefinitions_1121",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__apiextensions_k8s_io_customresourcedefinitions_1121",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__apiextensions_k8s_io_customresourcedefinitions_1121"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__apiextensions_k8s_io_customresourcedefinitions_1121"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__apiregistration_k8s_io_apiservices_1168",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__apiregistration_k8s_io_apiservices_1168",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__apiregistration_k8s_io_apiservices_1168",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__apiregistration_k8s_io_apiservices_1168"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__apiregistration_k8s_io_apiservices_1168"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__certificatesigningrequests_1140",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__certificatesigningrequests_1140",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__certificatesigningrequests_1140",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__certificatesigningrequests_1140"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__certificatesigningrequests_1140"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__clusterrolebindings_1153",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__clusterrolebindings_1153",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__clusterrolebindings_1153",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__clusterrolebindings_1153"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__clusterrolebindings_1153"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__clusterrolebindings_1157",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__clusterrolebindings_1157",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__clusterrolebindings_1157",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__clusterrolebindings_1157"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__clusterrolebindings_1157"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__clusterroles_1152",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__clusterroles_1152",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__clusterroles_1152",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__clusterroles_1152"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__clusterroles_1152"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__clusterroles_1156",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__clusterroles_1156",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__clusterroles_1156",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__clusterroles_1156"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__clusterroles_1156"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__configmaps_1129",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__configmaps_1129",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__configmaps_1129",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__configmaps_1129"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__configmaps_1129"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__controllerrevisions_1162",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__controllerrevisions_1162",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__controllerrevisions_1162",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__controllerrevisions_1162"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__controllerrevisions_1162"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__controllerrevisions_1167",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__controllerrevisions_1167",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__controllerrevisions_1167",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__controllerrevisions_1167"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__controllerrevisions_1167"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__controllers_1135",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__controllers_1135",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__controllers_1135",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__controllers_1135"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__controllers_1135"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__controllers_1141",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__controllers_1141",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__controllers_1141",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__controllers_1141"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__controllers_1141"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__cronjobs_1139",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__cronjobs_1139",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__cronjobs_1139",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__cronjobs_1139"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__cronjobs_1139"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__daemonsets_1142",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__daemonsets_1142",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__daemonsets_1142",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__daemonsets_1142"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__daemonsets_1142"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__daemonsets_1165",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__daemonsets_1165",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__daemonsets_1165",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__daemonsets_1165"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__daemonsets_1165"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__deployments_1143",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__deployments_1143",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__deployments_1143",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__deployments_1143"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__deployments_1143"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__deployments_1160",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__deployments_1160",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__deployments_1160",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__deployments_1160"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__deployments_1160"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__deployments_1163",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__deployments_1163",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__deployments_1163",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__deployments_1163"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__deployments_1163"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__horizontalpodautoscalers_1136",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__horizontalpodautoscalers_1136",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__horizontalpodautoscalers_1136",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__horizontalpodautoscalers_1136"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__horizontalpodautoscalers_1136"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__horizontalpodautoscalers_1137",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__horizontalpodautoscalers_1137",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__horizontalpodautoscalers_1137",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__horizontalpodautoscalers_1137"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__horizontalpodautoscalers_1137"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__ingress_1144",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__ingress_1144",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__ingress_1144",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__ingress_1144"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__ingress_1144"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__jobs_1138",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__jobs_1138",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__jobs_1138",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__jobs_1138"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__jobs_1138"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__limitranges_1123",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__limitranges_1123",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__limitranges_1123",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__limitranges_1123"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__limitranges_1123"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__minions_1132",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__minions_1132",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__minions_1132",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__minions_1132"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__minions_1132"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__namespaces_1130",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__namespaces_1130",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__namespaces_1130",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__namespaces_1130"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__namespaces_1130"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__networkpolicies_1147",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__networkpolicies_1147",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__networkpolicies_1147",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__networkpolicies_1147"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__networkpolicies_1147"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__networkpolicies_1148",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__networkpolicies_1148",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__networkpolicies_1148",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__networkpolicies_1148"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__networkpolicies_1148"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__persistentvolumeclaims_1128",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__persistentvolumeclaims_1128",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__persistentvolumeclaims_1128",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__persistentvolumeclaims_1128"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__persistentvolumeclaims_1128"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__persistentvolumes_1127",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__persistentvolumes_1127",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__persistentvolumes_1127",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__persistentvolumes_1127"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__persistentvolumes_1127"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__poddisruptionbudgets_1149",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__poddisruptionbudgets_1149",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__poddisruptionbudgets_1149",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__poddisruptionbudgets_1149"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__poddisruptionbudgets_1149"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__pods_1133",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__pods_1133",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__pods_1133",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__pods_1133"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__pods_1133"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__podsecuritypolicy_1145",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__podsecuritypolicy_1145",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__podsecuritypolicy_1145",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__podsecuritypolicy_1145"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__podsecuritypolicy_1145"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__podtemplates_1122",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__podtemplates_1122",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__podtemplates_1122",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__podtemplates_1122"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__podtemplates_1122"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__replicasets_1146",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__replicasets_1146",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__replicasets_1146",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__replicasets_1146"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__replicasets_1146"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__replicasets_1166",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__replicasets_1166",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__replicasets_1166",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__replicasets_1166"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__replicasets_1166"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__resourcequotas_1124",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__resourcequotas_1124",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__resourcequotas_1124",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__resourcequotas_1124"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__resourcequotas_1124"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__rolebindings_1151",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__rolebindings_1151",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__rolebindings_1151",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__rolebindings_1151"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__rolebindings_1151"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__rolebindings_1155",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__rolebindings_1155",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__rolebindings_1155",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__rolebindings_1155"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__rolebindings_1155"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__roles_1150",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__roles_1150",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__roles_1150",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__roles_1150"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__roles_1150"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__roles_1154",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__roles_1154",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__roles_1154",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__roles_1154"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__roles_1154"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__secrets_1125",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__secrets_1125",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__secrets_1125",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__secrets_1125"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__secrets_1125"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__serviceaccounts_1126",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__serviceaccounts_1126",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__serviceaccounts_1126",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__serviceaccounts_1126"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__serviceaccounts_1126"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__services_endpoints_1131",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__services_endpoints_1131",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__services_endpoints_1131",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__services_endpoints_1131"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__services_endpoints_1131"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__services_specs_1134",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__services_specs_1134",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__services_specs_1134",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__services_specs_1134"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__services_specs_1134"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__statefulsets_1161",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__statefulsets_1161",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__statefulsets_1161",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__statefulsets_1161"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__statefulsets_1161"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__statefulsets_1164",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__statefulsets_1164",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__statefulsets_1164",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__statefulsets_1164"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__statefulsets_1164"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__storageclasses_1158",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__storageclasses_1158",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__storageclasses_1158",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__storageclasses_1158"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__storageclasses_1158"} 0 +reflector_items_per_watch{name="reflector_storage_cacher_go__storageclasses_1159",quantile="0.5"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__storageclasses_1159",quantile="0.9"} NaN +reflector_items_per_watch{name="reflector_storage_cacher_go__storageclasses_1159",quantile="0.99"} NaN +reflector_items_per_watch_sum{name="reflector_storage_cacher_go__storageclasses_1159"} 0 +reflector_items_per_watch_count{name="reflector_storage_cacher_go__storageclasses_1159"} 0 +# HELP reflector_last_resource_version Last resource version seen for the reflectors +# TYPE reflector_last_resource_version gauge +reflector_last_resource_version{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1169"} 214 +reflector_last_resource_version{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1172"} 179530 +reflector_last_resource_version{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1173"} 179529 +reflector_last_resource_version{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1174"} 179533 +reflector_last_resource_version{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1175"} 22 +reflector_last_resource_version{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1176"} 179532 +reflector_last_resource_version{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1177"} 741121 +reflector_last_resource_version{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1178"} 1111 +reflector_last_resource_version{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1179"} 315 +reflector_last_resource_version{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1180"} 316 +reflector_last_resource_version{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1181"} 208 +reflector_last_resource_version{name="reflector_k8s_io_kubernetes_vendor_k8s_io_apiextensions_apiserver_pkg_client_informers_internalversion_factory_go_61_1171"} 1 +reflector_last_resource_version{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1170"} 3716 +reflector_last_resource_version{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1183"} 893722 +reflector_last_resource_version{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1184"} 154 +reflector_last_resource_version{name="reflector_k8s_io_kubernetes_vendor_k8s_io_kube_aggregator_pkg_client_informers_internalversion_factory_go_61_1182"} 21 +reflector_last_resource_version{name="reflector_storage_cacher_go__apiextensions_k8s_io_customresourcedefinitions_1121"} 1 +reflector_last_resource_version{name="reflector_storage_cacher_go__apiregistration_k8s_io_apiservices_1168"} 21 +reflector_last_resource_version{name="reflector_storage_cacher_go__certificatesigningrequests_1140"} 2876 +reflector_last_resource_version{name="reflector_storage_cacher_go__clusterrolebindings_1153"} 179529 +reflector_last_resource_version{name="reflector_storage_cacher_go__clusterrolebindings_1157"} 179529 +reflector_last_resource_version{name="reflector_storage_cacher_go__clusterroles_1152"} 179530 +reflector_last_resource_version{name="reflector_storage_cacher_go__clusterroles_1156"} 179530 +reflector_last_resource_version{name="reflector_storage_cacher_go__configmaps_1129"} 179520 +reflector_last_resource_version{name="reflector_storage_cacher_go__controllerrevisions_1162"} 179523 +reflector_last_resource_version{name="reflector_storage_cacher_go__controllerrevisions_1167"} 179523 +reflector_last_resource_version{name="reflector_storage_cacher_go__controllers_1135"} 1 +reflector_last_resource_version{name="reflector_storage_cacher_go__controllers_1141"} 23 +reflector_last_resource_version{name="reflector_storage_cacher_go__cronjobs_1139"} 21 +reflector_last_resource_version{name="reflector_storage_cacher_go__daemonsets_1142"} 530310 +reflector_last_resource_version{name="reflector_storage_cacher_go__daemonsets_1165"} 530310 +reflector_last_resource_version{name="reflector_storage_cacher_go__deployments_1143"} 741100 +reflector_last_resource_version{name="reflector_storage_cacher_go__deployments_1160"} 741100 +reflector_last_resource_version{name="reflector_storage_cacher_go__deployments_1163"} 741100 +reflector_last_resource_version{name="reflector_storage_cacher_go__horizontalpodautoscalers_1136"} 22 +reflector_last_resource_version{name="reflector_storage_cacher_go__horizontalpodautoscalers_1137"} 22 +reflector_last_resource_version{name="reflector_storage_cacher_go__ingress_1144"} 23 +reflector_last_resource_version{name="reflector_storage_cacher_go__jobs_1138"} 741102 +reflector_last_resource_version{name="reflector_storage_cacher_go__limitranges_1123"} 208 +reflector_last_resource_version{name="reflector_storage_cacher_go__minions_1132"} 893721 +reflector_last_resource_version{name="reflector_storage_cacher_go__namespaces_1130"} 154 +reflector_last_resource_version{name="reflector_storage_cacher_go__networkpolicies_1147"} 1 +reflector_last_resource_version{name="reflector_storage_cacher_go__networkpolicies_1148"} 22 +reflector_last_resource_version{name="reflector_storage_cacher_go__persistentvolumeclaims_1128"} 1113 +reflector_last_resource_version{name="reflector_storage_cacher_go__persistentvolumes_1127"} 1111 +reflector_last_resource_version{name="reflector_storage_cacher_go__poddisruptionbudgets_1149"} 77 +reflector_last_resource_version{name="reflector_storage_cacher_go__pods_1133"} 741121 +reflector_last_resource_version{name="reflector_storage_cacher_go__podsecuritypolicy_1145"} 1 +reflector_last_resource_version{name="reflector_storage_cacher_go__podtemplates_1122"} 1 +reflector_last_resource_version{name="reflector_storage_cacher_go__replicasets_1146"} 741098 +reflector_last_resource_version{name="reflector_storage_cacher_go__replicasets_1166"} 741098 +reflector_last_resource_version{name="reflector_storage_cacher_go__resourcequotas_1124"} 22 +reflector_last_resource_version{name="reflector_storage_cacher_go__rolebindings_1151"} 316 +reflector_last_resource_version{name="reflector_storage_cacher_go__rolebindings_1155"} 316 +reflector_last_resource_version{name="reflector_storage_cacher_go__roles_1150"} 315 +reflector_last_resource_version{name="reflector_storage_cacher_go__roles_1154"} 315 +reflector_last_resource_version{name="reflector_storage_cacher_go__secrets_1125"} 179532 +reflector_last_resource_version{name="reflector_storage_cacher_go__serviceaccounts_1126"} 179533 +reflector_last_resource_version{name="reflector_storage_cacher_go__services_endpoints_1131"} 893722 +reflector_last_resource_version{name="reflector_storage_cacher_go__services_specs_1134"} 3716 +reflector_last_resource_version{name="reflector_storage_cacher_go__statefulsets_1161"} 1 +reflector_last_resource_version{name="reflector_storage_cacher_go__statefulsets_1164"} 23 +reflector_last_resource_version{name="reflector_storage_cacher_go__storageclasses_1158"} 214 +reflector_last_resource_version{name="reflector_storage_cacher_go__storageclasses_1159"} 214 +# HELP reflector_list_duration_seconds How long an API list takes to return and decode for the reflectors +# TYPE reflector_list_duration_seconds summary +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1169",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1169",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1169",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1169"} 0.280401025 +reflector_list_duration_seconds_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1169"} 1 +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1172",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1172",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1172",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1172"} 0.091502855 +reflector_list_duration_seconds_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1172"} 1 +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1173",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1173",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1173",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1173"} 1.749982836 +reflector_list_duration_seconds_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1173"} 1 +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1174",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1174",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1174",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1174"} 1.752880873 +reflector_list_duration_seconds_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1174"} 1 +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1175",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1175",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1175",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1175"} 0.791889163 +reflector_list_duration_seconds_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1175"} 1 +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1176",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1176",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1176",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1176"} 1.89453688 +reflector_list_duration_seconds_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1176"} 1 +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1177",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1177",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1177",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1177"} 0.087196845 +reflector_list_duration_seconds_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1177"} 1 +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1178",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1178",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1178",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1178"} 2.193869255 +reflector_list_duration_seconds_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1178"} 2 +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1179",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1179",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1179",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1179"} 2.430184724 +reflector_list_duration_seconds_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1179"} 1 +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1180",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1180",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1180",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1180"} 1.8394237580000001 +reflector_list_duration_seconds_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1180"} 1 +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1181",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1181",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1181",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1181"} 1.749307113 +reflector_list_duration_seconds_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1181"} 1 +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_vendor_k8s_io_apiextensions_apiserver_pkg_client_informers_internalversion_factory_go_61_1171",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_vendor_k8s_io_apiextensions_apiserver_pkg_client_informers_internalversion_factory_go_61_1171",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_vendor_k8s_io_apiextensions_apiserver_pkg_client_informers_internalversion_factory_go_61_1171",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_k8s_io_kubernetes_vendor_k8s_io_apiextensions_apiserver_pkg_client_informers_internalversion_factory_go_61_1171"} 0.236482675 +reflector_list_duration_seconds_count{name="reflector_k8s_io_kubernetes_vendor_k8s_io_apiextensions_apiserver_pkg_client_informers_internalversion_factory_go_61_1171"} 1 +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1170",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1170",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1170",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1170"} 0.566637337 +reflector_list_duration_seconds_count{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1170"} 1 +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1183",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1183",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1183",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1183"} 0.213627497 +reflector_list_duration_seconds_count{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1183"} 1 +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1184",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1184",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1184",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1184"} 0.087961402 +reflector_list_duration_seconds_count{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1184"} 1 +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_vendor_k8s_io_kube_aggregator_pkg_client_informers_internalversion_factory_go_61_1182",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_vendor_k8s_io_kube_aggregator_pkg_client_informers_internalversion_factory_go_61_1182",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_k8s_io_kubernetes_vendor_k8s_io_kube_aggregator_pkg_client_informers_internalversion_factory_go_61_1182",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_k8s_io_kubernetes_vendor_k8s_io_kube_aggregator_pkg_client_informers_internalversion_factory_go_61_1182"} 0.087159407 +reflector_list_duration_seconds_count{name="reflector_k8s_io_kubernetes_vendor_k8s_io_kube_aggregator_pkg_client_informers_internalversion_factory_go_61_1182"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__apiextensions_k8s_io_customresourcedefinitions_1121",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__apiextensions_k8s_io_customresourcedefinitions_1121",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__apiextensions_k8s_io_customresourcedefinitions_1121",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__apiextensions_k8s_io_customresourcedefinitions_1121"} 15.755796328 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__apiextensions_k8s_io_customresourcedefinitions_1121"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__apiregistration_k8s_io_apiservices_1168",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__apiregistration_k8s_io_apiservices_1168",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__apiregistration_k8s_io_apiservices_1168",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__apiregistration_k8s_io_apiservices_1168"} 9.326257074 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__apiregistration_k8s_io_apiservices_1168"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__certificatesigningrequests_1140",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__certificatesigningrequests_1140",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__certificatesigningrequests_1140",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__certificatesigningrequests_1140"} 15.879642423 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__certificatesigningrequests_1140"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__clusterrolebindings_1153",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__clusterrolebindings_1153",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__clusterrolebindings_1153",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__clusterrolebindings_1153"} 14.807834461 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__clusterrolebindings_1153"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__clusterrolebindings_1157",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__clusterrolebindings_1157",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__clusterrolebindings_1157",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__clusterrolebindings_1157"} 16.810279831 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__clusterrolebindings_1157"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__clusterroles_1152",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__clusterroles_1152",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__clusterroles_1152",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__clusterroles_1152"} 14.250465987 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__clusterroles_1152"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__clusterroles_1156",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__clusterroles_1156",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__clusterroles_1156",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__clusterroles_1156"} 14.833210391 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__clusterroles_1156"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__configmaps_1129",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__configmaps_1129",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__configmaps_1129",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__configmaps_1129"} 17.24343826 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__configmaps_1129"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__controllerrevisions_1162",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__controllerrevisions_1162",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__controllerrevisions_1162",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__controllerrevisions_1162"} 14.555178826 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__controllerrevisions_1162"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__controllerrevisions_1167",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__controllerrevisions_1167",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__controllerrevisions_1167",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__controllerrevisions_1167"} 14.452935347 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__controllerrevisions_1167"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__controllers_1135",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__controllers_1135",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__controllers_1135",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__controllers_1135"} 14.387321976 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__controllers_1135"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__controllers_1141",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__controllers_1141",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__controllers_1141",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__controllers_1141"} 16.932873834 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__controllers_1141"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__cronjobs_1139",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__cronjobs_1139",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__cronjobs_1139",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__cronjobs_1139"} 15.791136723 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__cronjobs_1139"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__daemonsets_1142",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__daemonsets_1142",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__daemonsets_1142",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__daemonsets_1142"} 16.096986119 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__daemonsets_1142"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__daemonsets_1165",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__daemonsets_1165",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__daemonsets_1165",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__daemonsets_1165"} 15.811513786 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__daemonsets_1165"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__deployments_1143",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__deployments_1143",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__deployments_1143",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__deployments_1143"} 16.043834062 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__deployments_1143"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__deployments_1160",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__deployments_1160",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__deployments_1160",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__deployments_1160"} 15.59953217 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__deployments_1160"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__deployments_1163",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__deployments_1163",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__deployments_1163",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__deployments_1163"} 17.412948348 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__deployments_1163"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__horizontalpodautoscalers_1136",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__horizontalpodautoscalers_1136",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__horizontalpodautoscalers_1136",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__horizontalpodautoscalers_1136"} 16.086394783 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__horizontalpodautoscalers_1136"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__horizontalpodautoscalers_1137",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__horizontalpodautoscalers_1137",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__horizontalpodautoscalers_1137",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__horizontalpodautoscalers_1137"} 16.035989664 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__horizontalpodautoscalers_1137"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__ingress_1144",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__ingress_1144",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__ingress_1144",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__ingress_1144"} 16.916445341 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__ingress_1144"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__jobs_1138",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__jobs_1138",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__jobs_1138",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__jobs_1138"} 16.168216812 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__jobs_1138"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__limitranges_1123",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__limitranges_1123",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__limitranges_1123",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__limitranges_1123"} 17.23973901 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__limitranges_1123"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__minions_1132",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__minions_1132",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__minions_1132",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__minions_1132"} 17.440211341 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__minions_1132"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__namespaces_1130",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__namespaces_1130",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__namespaces_1130",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__namespaces_1130"} 14.456792459 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__namespaces_1130"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__networkpolicies_1147",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__networkpolicies_1147",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__networkpolicies_1147",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__networkpolicies_1147"} 15.170481764 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__networkpolicies_1147"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__networkpolicies_1148",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__networkpolicies_1148",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__networkpolicies_1148",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__networkpolicies_1148"} 15.842688497 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__networkpolicies_1148"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__persistentvolumeclaims_1128",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__persistentvolumeclaims_1128",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__persistentvolumeclaims_1128",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__persistentvolumeclaims_1128"} 17.534229401 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__persistentvolumeclaims_1128"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__persistentvolumes_1127",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__persistentvolumes_1127",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__persistentvolumes_1127",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__persistentvolumes_1127"} 17.635200854 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__persistentvolumes_1127"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__poddisruptionbudgets_1149",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__poddisruptionbudgets_1149",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__poddisruptionbudgets_1149",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__poddisruptionbudgets_1149"} 17.77599437 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__poddisruptionbudgets_1149"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__pods_1133",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__pods_1133",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__pods_1133",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__pods_1133"} 15.247261757 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__pods_1133"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__podsecuritypolicy_1145",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__podsecuritypolicy_1145",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__podsecuritypolicy_1145",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__podsecuritypolicy_1145"} 14.178706983 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__podsecuritypolicy_1145"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__podtemplates_1122",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__podtemplates_1122",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__podtemplates_1122",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__podtemplates_1122"} 15.64002041 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__podtemplates_1122"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__replicasets_1146",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__replicasets_1146",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__replicasets_1146",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__replicasets_1146"} 15.614233621 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__replicasets_1146"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__replicasets_1166",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__replicasets_1166",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__replicasets_1166",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__replicasets_1166"} 15.148517035 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__replicasets_1166"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__resourcequotas_1124",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__resourcequotas_1124",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__resourcequotas_1124",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__resourcequotas_1124"} 16.275403777 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__resourcequotas_1124"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__rolebindings_1151",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__rolebindings_1151",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__rolebindings_1151",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__rolebindings_1151"} 16.826255021 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__rolebindings_1151"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__rolebindings_1155",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__rolebindings_1155",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__rolebindings_1155",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__rolebindings_1155"} 16.911772598 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__rolebindings_1155"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__roles_1150",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__roles_1150",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__roles_1150",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__roles_1150"} 16.833086277 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__roles_1150"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__roles_1154",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__roles_1154",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__roles_1154",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__roles_1154"} 17.462646398 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__roles_1154"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__secrets_1125",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__secrets_1125",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__secrets_1125",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__secrets_1125"} 17.339383821 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__secrets_1125"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__serviceaccounts_1126",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__serviceaccounts_1126",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__serviceaccounts_1126",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__serviceaccounts_1126"} 17.188479188 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__serviceaccounts_1126"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__services_endpoints_1131",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__services_endpoints_1131",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__services_endpoints_1131",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__services_endpoints_1131"} 15.632818398 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__services_endpoints_1131"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__services_specs_1134",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__services_specs_1134",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__services_specs_1134",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__services_specs_1134"} 15.923428009 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__services_specs_1134"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__statefulsets_1161",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__statefulsets_1161",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__statefulsets_1161",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__statefulsets_1161"} 14.681046485 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__statefulsets_1161"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__statefulsets_1164",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__statefulsets_1164",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__statefulsets_1164",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__statefulsets_1164"} 16.775008853 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__statefulsets_1164"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__storageclasses_1158",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__storageclasses_1158",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__storageclasses_1158",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__storageclasses_1158"} 16.781411425 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__storageclasses_1158"} 1 +reflector_list_duration_seconds{name="reflector_storage_cacher_go__storageclasses_1159",quantile="0.5"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__storageclasses_1159",quantile="0.9"} NaN +reflector_list_duration_seconds{name="reflector_storage_cacher_go__storageclasses_1159",quantile="0.99"} NaN +reflector_list_duration_seconds_sum{name="reflector_storage_cacher_go__storageclasses_1159"} 15.312379649 +reflector_list_duration_seconds_count{name="reflector_storage_cacher_go__storageclasses_1159"} 1 +# HELP reflector_lists_total Total number of API lists done by the reflectors +# TYPE reflector_lists_total counter +reflector_lists_total{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1169"} 1 +reflector_lists_total{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1172"} 1 +reflector_lists_total{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1173"} 1 +reflector_lists_total{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1174"} 1 +reflector_lists_total{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1175"} 1 +reflector_lists_total{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1176"} 1 +reflector_lists_total{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1177"} 1 +reflector_lists_total{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1178"} 2 +reflector_lists_total{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1179"} 1 +reflector_lists_total{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1180"} 1 +reflector_lists_total{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1181"} 1 +reflector_lists_total{name="reflector_k8s_io_kubernetes_vendor_k8s_io_apiextensions_apiserver_pkg_client_informers_internalversion_factory_go_61_1171"} 1 +reflector_lists_total{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1170"} 1 +reflector_lists_total{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1183"} 1 +reflector_lists_total{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1184"} 1 +reflector_lists_total{name="reflector_k8s_io_kubernetes_vendor_k8s_io_kube_aggregator_pkg_client_informers_internalversion_factory_go_61_1182"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__apiextensions_k8s_io_customresourcedefinitions_1121"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__apiregistration_k8s_io_apiservices_1168"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__certificatesigningrequests_1140"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__clusterrolebindings_1153"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__clusterrolebindings_1157"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__clusterroles_1152"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__clusterroles_1156"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__configmaps_1129"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__controllerrevisions_1162"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__controllerrevisions_1167"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__controllers_1135"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__controllers_1141"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__cronjobs_1139"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__daemonsets_1142"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__daemonsets_1165"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__deployments_1143"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__deployments_1160"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__deployments_1163"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__horizontalpodautoscalers_1136"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__horizontalpodautoscalers_1137"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__ingress_1144"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__jobs_1138"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__limitranges_1123"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__minions_1132"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__namespaces_1130"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__networkpolicies_1147"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__networkpolicies_1148"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__persistentvolumeclaims_1128"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__persistentvolumes_1127"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__poddisruptionbudgets_1149"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__pods_1133"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__podsecuritypolicy_1145"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__podtemplates_1122"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__replicasets_1146"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__replicasets_1166"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__resourcequotas_1124"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__rolebindings_1151"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__rolebindings_1155"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__roles_1150"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__roles_1154"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__secrets_1125"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__serviceaccounts_1126"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__services_endpoints_1131"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__services_specs_1134"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__statefulsets_1161"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__statefulsets_1164"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__storageclasses_1158"} 1 +reflector_lists_total{name="reflector_storage_cacher_go__storageclasses_1159"} 1 +# HELP reflector_short_watches_total Total number of short API watches done by the reflectors +# TYPE reflector_short_watches_total counter +reflector_short_watches_total{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1169"} 0 +reflector_short_watches_total{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1172"} 0 +reflector_short_watches_total{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1173"} 0 +reflector_short_watches_total{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1174"} 0 +reflector_short_watches_total{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1175"} 0 +reflector_short_watches_total{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1176"} 0 +reflector_short_watches_total{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1177"} 0 +reflector_short_watches_total{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1178"} 0 +reflector_short_watches_total{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1179"} 0 +reflector_short_watches_total{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1180"} 0 +reflector_short_watches_total{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1181"} 0 +reflector_short_watches_total{name="reflector_k8s_io_kubernetes_vendor_k8s_io_apiextensions_apiserver_pkg_client_informers_internalversion_factory_go_61_1171"} 0 +reflector_short_watches_total{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1170"} 0 +reflector_short_watches_total{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1183"} 0 +reflector_short_watches_total{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1184"} 0 +reflector_short_watches_total{name="reflector_k8s_io_kubernetes_vendor_k8s_io_kube_aggregator_pkg_client_informers_internalversion_factory_go_61_1182"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__apiextensions_k8s_io_customresourcedefinitions_1121"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__apiregistration_k8s_io_apiservices_1168"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__certificatesigningrequests_1140"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__clusterrolebindings_1153"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__clusterrolebindings_1157"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__clusterroles_1152"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__clusterroles_1156"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__configmaps_1129"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__controllerrevisions_1162"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__controllerrevisions_1167"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__controllers_1135"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__controllers_1141"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__cronjobs_1139"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__daemonsets_1142"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__daemonsets_1165"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__deployments_1143"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__deployments_1160"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__deployments_1163"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__horizontalpodautoscalers_1136"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__horizontalpodautoscalers_1137"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__ingress_1144"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__jobs_1138"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__limitranges_1123"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__minions_1132"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__namespaces_1130"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__networkpolicies_1147"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__networkpolicies_1148"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__persistentvolumeclaims_1128"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__persistentvolumes_1127"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__poddisruptionbudgets_1149"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__pods_1133"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__podsecuritypolicy_1145"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__podtemplates_1122"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__replicasets_1146"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__replicasets_1166"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__resourcequotas_1124"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__rolebindings_1151"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__rolebindings_1155"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__roles_1150"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__roles_1154"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__secrets_1125"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__serviceaccounts_1126"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__services_endpoints_1131"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__services_specs_1134"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__statefulsets_1161"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__statefulsets_1164"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__storageclasses_1158"} 0 +reflector_short_watches_total{name="reflector_storage_cacher_go__storageclasses_1159"} 0 +# HELP reflector_watch_duration_seconds How long an API watch takes to return and decode for the reflectors +# TYPE reflector_watch_duration_seconds summary +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1169",quantile="0.5"} 571.000909822 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1169",quantile="0.9"} 571.000909822 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1169",quantile="0.99"} 571.000909822 +reflector_watch_duration_seconds_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1169"} 659510.1419348541 +reflector_watch_duration_seconds_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1169"} 1461 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1172",quantile="0.5"} 325.000347009 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1172",quantile="0.9"} 325.000347009 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1172",quantile="0.99"} 325.000347009 +reflector_watch_duration_seconds_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1172"} 659700.0400012301 +reflector_watch_duration_seconds_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1172"} 1459 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1173",quantile="0.5"} 550.000264863 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1173",quantile="0.9"} 550.000264863 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1173",quantile="0.99"} 550.000264863 +reflector_watch_duration_seconds_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1173"} 659847.9489546983 +reflector_watch_duration_seconds_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1173"} 1478 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1174",quantile="0.5"} 362.000986447 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1174",quantile="0.9"} 362.000986447 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1174",quantile="0.99"} 362.000986447 +reflector_watch_duration_seconds_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1174"} 659794.0185896571 +reflector_watch_duration_seconds_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1174"} 1473 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1175",quantile="0.5"} 327.000685258 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1175",quantile="0.9"} 327.000685258 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1175",quantile="0.99"} 327.000685258 +reflector_watch_duration_seconds_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1175"} 659922.026233829 +reflector_watch_duration_seconds_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1175"} 1496 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1176",quantile="0.5"} 453.000610072 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1176",quantile="0.9"} 453.000610072 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1176",quantile="0.99"} 453.000610072 +reflector_watch_duration_seconds_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1176"} 659512.0345779591 +reflector_watch_duration_seconds_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1176"} 1476 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1177",quantile="0.5"} 410.998639857 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1177",quantile="0.9"} 410.998639857 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1177",quantile="0.99"} 410.998639857 +reflector_watch_duration_seconds_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1177"} 659803.9890199575 +reflector_watch_duration_seconds_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1177"} 1476 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1178",quantile="0.5"} 390.000693068 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1178",quantile="0.9"} 390.000693068 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1178",quantile="0.99"} 390.000693068 +reflector_watch_duration_seconds_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1178"} 659655.9720355927 +reflector_watch_duration_seconds_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1178"} 1471 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1179",quantile="0.5"} 356.000373139 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1179",quantile="0.9"} 356.000373139 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1179",quantile="0.99"} 356.000373139 +reflector_watch_duration_seconds_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1179"} 659746.1459989842 +reflector_watch_duration_seconds_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1179"} 1482 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1180",quantile="0.5"} 497.001100021 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1180",quantile="0.9"} 497.001100021 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1180",quantile="0.99"} 497.001100021 +reflector_watch_duration_seconds_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1180"} 659797.9526202704 +reflector_watch_duration_seconds_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1180"} 1450 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1181",quantile="0.5"} 518.001062697 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1181",quantile="0.9"} 518.001062697 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1181",quantile="0.99"} 518.001062697 +reflector_watch_duration_seconds_sum{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1181"} 659480.0134644032 +reflector_watch_duration_seconds_count{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1181"} 1472 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_vendor_k8s_io_apiextensions_apiserver_pkg_client_informers_internalversion_factory_go_61_1171",quantile="0.5"} 337.000321445 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_vendor_k8s_io_apiextensions_apiserver_pkg_client_informers_internalversion_factory_go_61_1171",quantile="0.9"} 337.000321445 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_vendor_k8s_io_apiextensions_apiserver_pkg_client_informers_internalversion_factory_go_61_1171",quantile="0.99"} 337.000321445 +reflector_watch_duration_seconds_sum{name="reflector_k8s_io_kubernetes_vendor_k8s_io_apiextensions_apiserver_pkg_client_informers_internalversion_factory_go_61_1171"} 659897.0795404883 +reflector_watch_duration_seconds_count{name="reflector_k8s_io_kubernetes_vendor_k8s_io_apiextensions_apiserver_pkg_client_informers_internalversion_factory_go_61_1171"} 1467 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1170",quantile="0.5"} 374.999588214 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1170",quantile="0.9"} 374.999588214 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1170",quantile="0.99"} 374.999588214 +reflector_watch_duration_seconds_sum{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1170"} 659725.9938042836 +reflector_watch_duration_seconds_count{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1170"} 1466 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1183",quantile="0.5"} 365.000082419 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1183",quantile="0.9"} 365.000082419 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1183",quantile="0.99"} 365.000082419 +reflector_watch_duration_seconds_sum{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1183"} 659847.9999775979 +reflector_watch_duration_seconds_count{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1183"} 1474 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1184",quantile="0.5"} 438.001021004 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1184",quantile="0.9"} 438.001021004 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1184",quantile="0.99"} 438.001021004 +reflector_watch_duration_seconds_sum{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1184"} 659514.072641559 +reflector_watch_duration_seconds_count{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1184"} 1463 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_vendor_k8s_io_kube_aggregator_pkg_client_informers_internalversion_factory_go_61_1182",quantile="0.5"} 467.999829109 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_vendor_k8s_io_kube_aggregator_pkg_client_informers_internalversion_factory_go_61_1182",quantile="0.9"} 467.999829109 +reflector_watch_duration_seconds{name="reflector_k8s_io_kubernetes_vendor_k8s_io_kube_aggregator_pkg_client_informers_internalversion_factory_go_61_1182",quantile="0.99"} 467.999829109 +reflector_watch_duration_seconds_sum{name="reflector_k8s_io_kubernetes_vendor_k8s_io_kube_aggregator_pkg_client_informers_internalversion_factory_go_61_1182"} 659554.9485304892 +reflector_watch_duration_seconds_count{name="reflector_k8s_io_kubernetes_vendor_k8s_io_kube_aggregator_pkg_client_informers_internalversion_factory_go_61_1182"} 1465 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__apiextensions_k8s_io_customresourcedefinitions_1121",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__apiextensions_k8s_io_customresourcedefinitions_1121",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__apiextensions_k8s_io_customresourcedefinitions_1121",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__apiextensions_k8s_io_customresourcedefinitions_1121"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__apiextensions_k8s_io_customresourcedefinitions_1121"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__apiregistration_k8s_io_apiservices_1168",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__apiregistration_k8s_io_apiservices_1168",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__apiregistration_k8s_io_apiservices_1168",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__apiregistration_k8s_io_apiservices_1168"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__apiregistration_k8s_io_apiservices_1168"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__certificatesigningrequests_1140",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__certificatesigningrequests_1140",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__certificatesigningrequests_1140",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__certificatesigningrequests_1140"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__certificatesigningrequests_1140"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__clusterrolebindings_1153",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__clusterrolebindings_1153",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__clusterrolebindings_1153",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__clusterrolebindings_1153"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__clusterrolebindings_1153"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__clusterrolebindings_1157",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__clusterrolebindings_1157",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__clusterrolebindings_1157",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__clusterrolebindings_1157"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__clusterrolebindings_1157"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__clusterroles_1152",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__clusterroles_1152",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__clusterroles_1152",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__clusterroles_1152"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__clusterroles_1152"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__clusterroles_1156",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__clusterroles_1156",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__clusterroles_1156",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__clusterroles_1156"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__clusterroles_1156"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__configmaps_1129",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__configmaps_1129",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__configmaps_1129",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__configmaps_1129"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__configmaps_1129"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__controllerrevisions_1162",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__controllerrevisions_1162",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__controllerrevisions_1162",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__controllerrevisions_1162"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__controllerrevisions_1162"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__controllerrevisions_1167",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__controllerrevisions_1167",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__controllerrevisions_1167",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__controllerrevisions_1167"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__controllerrevisions_1167"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__controllers_1135",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__controllers_1135",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__controllers_1135",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__controllers_1135"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__controllers_1135"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__controllers_1141",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__controllers_1141",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__controllers_1141",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__controllers_1141"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__controllers_1141"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__cronjobs_1139",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__cronjobs_1139",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__cronjobs_1139",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__cronjobs_1139"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__cronjobs_1139"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__daemonsets_1142",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__daemonsets_1142",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__daemonsets_1142",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__daemonsets_1142"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__daemonsets_1142"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__daemonsets_1165",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__daemonsets_1165",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__daemonsets_1165",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__daemonsets_1165"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__daemonsets_1165"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__deployments_1143",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__deployments_1143",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__deployments_1143",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__deployments_1143"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__deployments_1143"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__deployments_1160",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__deployments_1160",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__deployments_1160",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__deployments_1160"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__deployments_1160"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__deployments_1163",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__deployments_1163",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__deployments_1163",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__deployments_1163"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__deployments_1163"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__horizontalpodautoscalers_1136",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__horizontalpodautoscalers_1136",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__horizontalpodautoscalers_1136",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__horizontalpodautoscalers_1136"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__horizontalpodautoscalers_1136"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__horizontalpodautoscalers_1137",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__horizontalpodautoscalers_1137",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__horizontalpodautoscalers_1137",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__horizontalpodautoscalers_1137"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__horizontalpodautoscalers_1137"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__ingress_1144",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__ingress_1144",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__ingress_1144",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__ingress_1144"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__ingress_1144"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__jobs_1138",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__jobs_1138",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__jobs_1138",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__jobs_1138"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__jobs_1138"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__limitranges_1123",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__limitranges_1123",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__limitranges_1123",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__limitranges_1123"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__limitranges_1123"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__minions_1132",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__minions_1132",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__minions_1132",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__minions_1132"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__minions_1132"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__namespaces_1130",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__namespaces_1130",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__namespaces_1130",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__namespaces_1130"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__namespaces_1130"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__networkpolicies_1147",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__networkpolicies_1147",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__networkpolicies_1147",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__networkpolicies_1147"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__networkpolicies_1147"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__networkpolicies_1148",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__networkpolicies_1148",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__networkpolicies_1148",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__networkpolicies_1148"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__networkpolicies_1148"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__persistentvolumeclaims_1128",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__persistentvolumeclaims_1128",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__persistentvolumeclaims_1128",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__persistentvolumeclaims_1128"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__persistentvolumeclaims_1128"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__persistentvolumes_1127",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__persistentvolumes_1127",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__persistentvolumes_1127",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__persistentvolumes_1127"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__persistentvolumes_1127"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__poddisruptionbudgets_1149",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__poddisruptionbudgets_1149",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__poddisruptionbudgets_1149",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__poddisruptionbudgets_1149"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__poddisruptionbudgets_1149"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__pods_1133",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__pods_1133",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__pods_1133",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__pods_1133"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__pods_1133"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__podsecuritypolicy_1145",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__podsecuritypolicy_1145",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__podsecuritypolicy_1145",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__podsecuritypolicy_1145"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__podsecuritypolicy_1145"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__podtemplates_1122",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__podtemplates_1122",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__podtemplates_1122",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__podtemplates_1122"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__podtemplates_1122"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__replicasets_1146",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__replicasets_1146",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__replicasets_1146",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__replicasets_1146"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__replicasets_1146"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__replicasets_1166",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__replicasets_1166",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__replicasets_1166",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__replicasets_1166"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__replicasets_1166"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__resourcequotas_1124",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__resourcequotas_1124",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__resourcequotas_1124",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__resourcequotas_1124"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__resourcequotas_1124"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__rolebindings_1151",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__rolebindings_1151",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__rolebindings_1151",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__rolebindings_1151"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__rolebindings_1151"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__rolebindings_1155",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__rolebindings_1155",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__rolebindings_1155",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__rolebindings_1155"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__rolebindings_1155"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__roles_1150",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__roles_1150",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__roles_1150",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__roles_1150"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__roles_1150"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__roles_1154",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__roles_1154",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__roles_1154",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__roles_1154"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__roles_1154"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__secrets_1125",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__secrets_1125",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__secrets_1125",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__secrets_1125"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__secrets_1125"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__serviceaccounts_1126",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__serviceaccounts_1126",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__serviceaccounts_1126",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__serviceaccounts_1126"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__serviceaccounts_1126"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__services_endpoints_1131",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__services_endpoints_1131",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__services_endpoints_1131",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__services_endpoints_1131"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__services_endpoints_1131"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__services_specs_1134",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__services_specs_1134",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__services_specs_1134",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__services_specs_1134"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__services_specs_1134"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__statefulsets_1161",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__statefulsets_1161",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__statefulsets_1161",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__statefulsets_1161"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__statefulsets_1161"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__statefulsets_1164",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__statefulsets_1164",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__statefulsets_1164",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__statefulsets_1164"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__statefulsets_1164"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__storageclasses_1158",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__storageclasses_1158",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__storageclasses_1158",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__storageclasses_1158"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__storageclasses_1158"} 0 +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__storageclasses_1159",quantile="0.5"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__storageclasses_1159",quantile="0.9"} NaN +reflector_watch_duration_seconds{name="reflector_storage_cacher_go__storageclasses_1159",quantile="0.99"} NaN +reflector_watch_duration_seconds_sum{name="reflector_storage_cacher_go__storageclasses_1159"} 0 +reflector_watch_duration_seconds_count{name="reflector_storage_cacher_go__storageclasses_1159"} 0 +# HELP reflector_watches_total Total number of API watches done by the reflectors +# TYPE reflector_watches_total counter +reflector_watches_total{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1169"} 1462 +reflector_watches_total{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1172"} 1460 +reflector_watches_total{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1173"} 1479 +reflector_watches_total{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1174"} 1474 +reflector_watches_total{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1175"} 1497 +reflector_watches_total{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1176"} 1477 +reflector_watches_total{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1177"} 1477 +reflector_watches_total{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1178"} 1472 +reflector_watches_total{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1179"} 1483 +reflector_watches_total{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1180"} 1451 +reflector_watches_total{name="reflector_k8s_io_kubernetes_pkg_client_informers_informers_generated_internalversion_factory_go_73_1181"} 1473 +reflector_watches_total{name="reflector_k8s_io_kubernetes_vendor_k8s_io_apiextensions_apiserver_pkg_client_informers_internalversion_factory_go_61_1171"} 1468 +reflector_watches_total{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1170"} 1467 +reflector_watches_total{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1183"} 1475 +reflector_watches_total{name="reflector_k8s_io_kubernetes_vendor_k8s_io_client_go_informers_factory_go_73_1184"} 1464 +reflector_watches_total{name="reflector_k8s_io_kubernetes_vendor_k8s_io_kube_aggregator_pkg_client_informers_internalversion_factory_go_61_1182"} 1466 +reflector_watches_total{name="reflector_storage_cacher_go__apiextensions_k8s_io_customresourcedefinitions_1121"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__apiregistration_k8s_io_apiservices_1168"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__certificatesigningrequests_1140"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__clusterrolebindings_1153"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__clusterrolebindings_1157"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__clusterroles_1152"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__clusterroles_1156"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__configmaps_1129"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__controllerrevisions_1162"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__controllerrevisions_1167"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__controllers_1135"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__controllers_1141"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__cronjobs_1139"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__daemonsets_1142"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__daemonsets_1165"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__deployments_1143"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__deployments_1160"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__deployments_1163"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__horizontalpodautoscalers_1136"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__horizontalpodautoscalers_1137"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__ingress_1144"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__jobs_1138"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__limitranges_1123"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__minions_1132"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__namespaces_1130"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__networkpolicies_1147"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__networkpolicies_1148"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__persistentvolumeclaims_1128"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__persistentvolumes_1127"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__poddisruptionbudgets_1149"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__pods_1133"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__podsecuritypolicy_1145"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__podtemplates_1122"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__replicasets_1146"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__replicasets_1166"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__resourcequotas_1124"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__rolebindings_1151"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__rolebindings_1155"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__roles_1150"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__roles_1154"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__secrets_1125"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__serviceaccounts_1126"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__services_endpoints_1131"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__services_specs_1134"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__statefulsets_1161"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__statefulsets_1164"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__storageclasses_1158"} 1 +reflector_watches_total{name="reflector_storage_cacher_go__storageclasses_1159"} 1 +# HELP rest_client_request_latency_seconds Request latency in seconds. Broken down by verb and URL. +# TYPE rest_client_request_latency_seconds histogram +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/endpoints?resourceVersion=%7Bvalue%7D",verb="GET",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/endpoints?resourceVersion=%7Bvalue%7D",verb="GET",le="0.002"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/endpoints?resourceVersion=%7Bvalue%7D",verb="GET",le="0.004"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/endpoints?resourceVersion=%7Bvalue%7D",verb="GET",le="0.008"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/endpoints?resourceVersion=%7Bvalue%7D",verb="GET",le="0.016"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/endpoints?resourceVersion=%7Bvalue%7D",verb="GET",le="0.032"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/endpoints?resourceVersion=%7Bvalue%7D",verb="GET",le="0.064"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/endpoints?resourceVersion=%7Bvalue%7D",verb="GET",le="0.128"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/endpoints?resourceVersion=%7Bvalue%7D",verb="GET",le="0.256"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/endpoints?resourceVersion=%7Bvalue%7D",verb="GET",le="0.512"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/endpoints?resourceVersion=%7Bvalue%7D",verb="GET",le="+Inf"} 1 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/api/v1/endpoints?resourceVersion=%7Bvalue%7D",verb="GET"} 0.213548175 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/api/v1/endpoints?resourceVersion=%7Bvalue%7D",verb="GET"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/limitranges?resourceVersion=%7Bvalue%7D",verb="GET",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/limitranges?resourceVersion=%7Bvalue%7D",verb="GET",le="0.002"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/limitranges?resourceVersion=%7Bvalue%7D",verb="GET",le="0.004"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/limitranges?resourceVersion=%7Bvalue%7D",verb="GET",le="0.008"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/limitranges?resourceVersion=%7Bvalue%7D",verb="GET",le="0.016"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/limitranges?resourceVersion=%7Bvalue%7D",verb="GET",le="0.032"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/limitranges?resourceVersion=%7Bvalue%7D",verb="GET",le="0.064"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/limitranges?resourceVersion=%7Bvalue%7D",verb="GET",le="0.128"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/limitranges?resourceVersion=%7Bvalue%7D",verb="GET",le="0.256"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/limitranges?resourceVersion=%7Bvalue%7D",verb="GET",le="0.512"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/limitranges?resourceVersion=%7Bvalue%7D",verb="GET",le="+Inf"} 1 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/api/v1/limitranges?resourceVersion=%7Bvalue%7D",verb="GET"} 1.749184889 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/api/v1/limitranges?resourceVersion=%7Bvalue%7D",verb="GET"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces",verb="POST",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces",verb="POST",le="0.002"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces",verb="POST",le="0.004"} 5 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces",verb="POST",le="0.008"} 13 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces",verb="POST",le="0.016"} 14 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces",verb="POST",le="0.032"} 15 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces",verb="POST",le="0.064"} 15 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces",verb="POST",le="0.128"} 15 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces",verb="POST",le="0.256"} 15 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces",verb="POST",le="0.512"} 15 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces",verb="POST",le="+Inf"} 16 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/api/v1/namespaces",verb="POST"} 0.8368015660000001 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/api/v1/namespaces",verb="POST"} 16 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bname%7D",verb="GET",le="0.001"} 16 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bname%7D",verb="GET",le="0.002"} 32227 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bname%7D",verb="GET",le="0.004"} 82864 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bname%7D",verb="GET",le="0.008"} 87115 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bname%7D",verb="GET",le="0.016"} 87748 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bname%7D",verb="GET",le="0.032"} 87872 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bname%7D",verb="GET",le="0.064"} 87910 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bname%7D",verb="GET",le="0.128"} 87934 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bname%7D",verb="GET",le="0.256"} 87938 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bname%7D",verb="GET",le="0.512"} 87939 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bname%7D",verb="GET",le="+Inf"} 87939 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/api/v1/namespaces/%7Bname%7D",verb="GET"} 218.97330252399868 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/api/v1/namespaces/%7Bname%7D",verb="GET"} 87939 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/configmaps",verb="POST",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/configmaps",verb="POST",le="0.002"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/configmaps",verb="POST",le="0.004"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/configmaps",verb="POST",le="0.008"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/configmaps",verb="POST",le="0.016"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/configmaps",verb="POST",le="0.032"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/configmaps",verb="POST",le="0.064"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/configmaps",verb="POST",le="0.128"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/configmaps",verb="POST",le="0.256"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/configmaps",verb="POST",le="0.512"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/configmaps",verb="POST",le="+Inf"} 1 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/configmaps",verb="POST"} 0.015049951 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/configmaps",verb="POST"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/configmaps/%7Bname%7D",verb="GET",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/configmaps/%7Bname%7D",verb="GET",le="0.002"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/configmaps/%7Bname%7D",verb="GET",le="0.004"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/configmaps/%7Bname%7D",verb="GET",le="0.008"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/configmaps/%7Bname%7D",verb="GET",le="0.016"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/configmaps/%7Bname%7D",verb="GET",le="0.032"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/configmaps/%7Bname%7D",verb="GET",le="0.064"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/configmaps/%7Bname%7D",verb="GET",le="0.128"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/configmaps/%7Bname%7D",verb="GET",le="0.256"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/configmaps/%7Bname%7D",verb="GET",le="0.512"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/configmaps/%7Bname%7D",verb="GET",le="+Inf"} 1 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/configmaps/%7Bname%7D",verb="GET"} 0.012161328 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/configmaps/%7Bname%7D",verb="GET"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/endpoints",verb="POST",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/endpoints",verb="POST",le="0.002"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/endpoints",verb="POST",le="0.004"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/endpoints",verb="POST",le="0.008"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/endpoints",verb="POST",le="0.016"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/endpoints",verb="POST",le="0.032"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/endpoints",verb="POST",le="0.064"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/endpoints",verb="POST",le="0.128"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/endpoints",verb="POST",le="0.256"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/endpoints",verb="POST",le="0.512"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/endpoints",verb="POST",le="+Inf"} 1 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/endpoints",verb="POST"} 0.005609707 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/endpoints",verb="POST"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/endpoints/%7Bname%7D",verb="GET",le="0.001"} 92 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/endpoints/%7Bname%7D",verb="GET",le="0.002"} 32793 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/endpoints/%7Bname%7D",verb="GET",le="0.004"} 60332 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/endpoints/%7Bname%7D",verb="GET",le="0.008"} 64978 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/endpoints/%7Bname%7D",verb="GET",le="0.016"} 65821 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/endpoints/%7Bname%7D",verb="GET",le="0.032"} 65930 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/endpoints/%7Bname%7D",verb="GET",le="0.064"} 65940 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/endpoints/%7Bname%7D",verb="GET",le="0.128"} 65941 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/endpoints/%7Bname%7D",verb="GET",le="0.256"} 65941 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/endpoints/%7Bname%7D",verb="GET",le="0.512"} 65941 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/endpoints/%7Bname%7D",verb="GET",le="+Inf"} 65941 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/endpoints/%7Bname%7D",verb="GET"} 161.0362347010007 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/endpoints/%7Bname%7D",verb="GET"} 65941 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/limitranges",verb="GET",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/limitranges",verb="GET",le="0.002"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/limitranges",verb="GET",le="0.004"} 4 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/limitranges",verb="GET",le="0.008"} 5 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/limitranges",verb="GET",le="0.016"} 8 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/limitranges",verb="GET",le="0.032"} 13 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/limitranges",verb="GET",le="0.064"} 16 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/limitranges",verb="GET",le="0.128"} 18 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/limitranges",verb="GET",le="0.256"} 18 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/limitranges",verb="GET",le="0.512"} 18 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/limitranges",verb="GET",le="+Inf"} 18 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/limitranges",verb="GET"} 0.4682733459999999 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/limitranges",verb="GET"} 18 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/pods/%7Bname%7D?resourceVersion=%7Bvalue%7D",verb="GET",le="0.001"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/pods/%7Bname%7D?resourceVersion=%7Bvalue%7D",verb="GET",le="0.002"} 42 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/pods/%7Bname%7D?resourceVersion=%7Bvalue%7D",verb="GET",le="0.004"} 64 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/pods/%7Bname%7D?resourceVersion=%7Bvalue%7D",verb="GET",le="0.008"} 68 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/pods/%7Bname%7D?resourceVersion=%7Bvalue%7D",verb="GET",le="0.016"} 68 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/pods/%7Bname%7D?resourceVersion=%7Bvalue%7D",verb="GET",le="0.032"} 68 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/pods/%7Bname%7D?resourceVersion=%7Bvalue%7D",verb="GET",le="0.064"} 68 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/pods/%7Bname%7D?resourceVersion=%7Bvalue%7D",verb="GET",le="0.128"} 68 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/pods/%7Bname%7D?resourceVersion=%7Bvalue%7D",verb="GET",le="0.256"} 68 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/pods/%7Bname%7D?resourceVersion=%7Bvalue%7D",verb="GET",le="0.512"} 68 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/pods/%7Bname%7D?resourceVersion=%7Bvalue%7D",verb="GET",le="+Inf"} 68 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/pods/%7Bname%7D?resourceVersion=%7Bvalue%7D",verb="GET"} 0.13679003399999998 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/pods/%7Bname%7D?resourceVersion=%7Bvalue%7D",verb="GET"} 68 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/resourcequotas",verb="GET",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/resourcequotas",verb="GET",le="0.002"} 2271 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/resourcequotas",verb="GET",le="0.004"} 10172 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/resourcequotas",verb="GET",le="0.008"} 10914 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/resourcequotas",verb="GET",le="0.016"} 11002 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/resourcequotas",verb="GET",le="0.032"} 11018 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/resourcequotas",verb="GET",le="0.064"} 11022 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/resourcequotas",verb="GET",le="0.128"} 11023 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/resourcequotas",verb="GET",le="0.256"} 11023 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/resourcequotas",verb="GET",le="0.512"} 11023 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/resourcequotas",verb="GET",le="+Inf"} 11023 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/resourcequotas",verb="GET"} 29.815934114 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/resourcequotas",verb="GET"} 11023 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/serviceaccounts/%7Bname%7D",verb="GET",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/serviceaccounts/%7Bname%7D",verb="GET",le="0.002"} 11 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/serviceaccounts/%7Bname%7D",verb="GET",le="0.004"} 39 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/serviceaccounts/%7Bname%7D",verb="GET",le="0.008"} 59 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/serviceaccounts/%7Bname%7D",verb="GET",le="0.016"} 69 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/serviceaccounts/%7Bname%7D",verb="GET",le="0.032"} 72 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/serviceaccounts/%7Bname%7D",verb="GET",le="0.064"} 73 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/serviceaccounts/%7Bname%7D",verb="GET",le="0.128"} 73 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/serviceaccounts/%7Bname%7D",verb="GET",le="0.256"} 73 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/serviceaccounts/%7Bname%7D",verb="GET",le="0.512"} 73 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/serviceaccounts/%7Bname%7D",verb="GET",le="+Inf"} 73 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/serviceaccounts/%7Bname%7D",verb="GET"} 0.457975297 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/serviceaccounts/%7Bname%7D",verb="GET"} 73 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/services",verb="POST",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/services",verb="POST",le="0.002"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/services",verb="POST",le="0.004"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/services",verb="POST",le="0.008"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/services",verb="POST",le="0.016"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/services",verb="POST",le="0.032"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/services",verb="POST",le="0.064"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/services",verb="POST",le="0.128"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/services",verb="POST",le="0.256"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/services",verb="POST",le="0.512"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/services",verb="POST",le="+Inf"} 1 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/services",verb="POST"} 0.018956629 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/services",verb="POST"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/services/%7Bname%7D",verb="GET",le="0.001"} 2 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/services/%7Bname%7D",verb="GET",le="0.002"} 17641 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/services/%7Bname%7D",verb="GET",le="0.004"} 58986 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/services/%7Bname%7D",verb="GET",le="0.008"} 64855 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/services/%7Bname%7D",verb="GET",le="0.016"} 65805 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/services/%7Bname%7D",verb="GET",le="0.032"} 65923 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/services/%7Bname%7D",verb="GET",le="0.064"} 65934 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/services/%7Bname%7D",verb="GET",le="0.128"} 65940 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/services/%7Bname%7D",verb="GET",le="0.256"} 65941 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/services/%7Bname%7D",verb="GET",le="0.512"} 65941 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/services/%7Bname%7D",verb="GET",le="+Inf"} 65941 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/services/%7Bname%7D",verb="GET"} 184.3956564849983 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/api/v1/namespaces/%7Bnamespace%7D/services/%7Bname%7D",verb="GET"} 65941 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces?resourceVersion=%7Bvalue%7D",verb="GET",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces?resourceVersion=%7Bvalue%7D",verb="GET",le="0.002"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces?resourceVersion=%7Bvalue%7D",verb="GET",le="0.004"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces?resourceVersion=%7Bvalue%7D",verb="GET",le="0.008"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces?resourceVersion=%7Bvalue%7D",verb="GET",le="0.016"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces?resourceVersion=%7Bvalue%7D",verb="GET",le="0.032"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces?resourceVersion=%7Bvalue%7D",verb="GET",le="0.064"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces?resourceVersion=%7Bvalue%7D",verb="GET",le="0.128"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces?resourceVersion=%7Bvalue%7D",verb="GET",le="0.256"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces?resourceVersion=%7Bvalue%7D",verb="GET",le="0.512"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/namespaces?resourceVersion=%7Bvalue%7D",verb="GET",le="+Inf"} 1 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/api/v1/namespaces?resourceVersion=%7Bvalue%7D",verb="GET"} 0.087889072 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/api/v1/namespaces?resourceVersion=%7Bvalue%7D",verb="GET"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/nodes",verb="GET",le="0.001"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/nodes",verb="GET",le="0.002"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/nodes",verb="GET",le="0.004"} 15477 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/nodes",verb="GET",le="0.008"} 41763 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/nodes",verb="GET",le="0.016"} 43484 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/nodes",verb="GET",le="0.032"} 43814 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/nodes",verb="GET",le="0.064"} 43946 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/nodes",verb="GET",le="0.128"} 43968 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/nodes",verb="GET",le="0.256"} 43975 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/nodes",verb="GET",le="0.512"} 43976 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/nodes",verb="GET",le="+Inf"} 43980 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/api/v1/nodes",verb="GET"} 224.7557319419998 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/api/v1/nodes",verb="GET"} 43980 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/persistentvolumes?resourceVersion=%7Bvalue%7D",verb="GET",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/persistentvolumes?resourceVersion=%7Bvalue%7D",verb="GET",le="0.002"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/persistentvolumes?resourceVersion=%7Bvalue%7D",verb="GET",le="0.004"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/persistentvolumes?resourceVersion=%7Bvalue%7D",verb="GET",le="0.008"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/persistentvolumes?resourceVersion=%7Bvalue%7D",verb="GET",le="0.016"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/persistentvolumes?resourceVersion=%7Bvalue%7D",verb="GET",le="0.032"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/persistentvolumes?resourceVersion=%7Bvalue%7D",verb="GET",le="0.064"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/persistentvolumes?resourceVersion=%7Bvalue%7D",verb="GET",le="0.128"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/persistentvolumes?resourceVersion=%7Bvalue%7D",verb="GET",le="0.256"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/persistentvolumes?resourceVersion=%7Bvalue%7D",verb="GET",le="0.512"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/persistentvolumes?resourceVersion=%7Bvalue%7D",verb="GET",le="+Inf"} 2 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/api/v1/persistentvolumes?resourceVersion=%7Bvalue%7D",verb="GET"} 2.193668942 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/api/v1/persistentvolumes?resourceVersion=%7Bvalue%7D",verb="GET"} 2 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/pods?resourceVersion=%7Bvalue%7D",verb="GET",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/pods?resourceVersion=%7Bvalue%7D",verb="GET",le="0.002"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/pods?resourceVersion=%7Bvalue%7D",verb="GET",le="0.004"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/pods?resourceVersion=%7Bvalue%7D",verb="GET",le="0.008"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/pods?resourceVersion=%7Bvalue%7D",verb="GET",le="0.016"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/pods?resourceVersion=%7Bvalue%7D",verb="GET",le="0.032"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/pods?resourceVersion=%7Bvalue%7D",verb="GET",le="0.064"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/pods?resourceVersion=%7Bvalue%7D",verb="GET",le="0.128"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/pods?resourceVersion=%7Bvalue%7D",verb="GET",le="0.256"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/pods?resourceVersion=%7Bvalue%7D",verb="GET",le="0.512"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/pods?resourceVersion=%7Bvalue%7D",verb="GET",le="+Inf"} 1 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/api/v1/pods?resourceVersion=%7Bvalue%7D",verb="GET"} 0.08609714 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/api/v1/pods?resourceVersion=%7Bvalue%7D",verb="GET"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/resourcequotas?resourceVersion=%7Bvalue%7D",verb="GET",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/resourcequotas?resourceVersion=%7Bvalue%7D",verb="GET",le="0.002"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/resourcequotas?resourceVersion=%7Bvalue%7D",verb="GET",le="0.004"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/resourcequotas?resourceVersion=%7Bvalue%7D",verb="GET",le="0.008"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/resourcequotas?resourceVersion=%7Bvalue%7D",verb="GET",le="0.016"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/resourcequotas?resourceVersion=%7Bvalue%7D",verb="GET",le="0.032"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/resourcequotas?resourceVersion=%7Bvalue%7D",verb="GET",le="0.064"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/resourcequotas?resourceVersion=%7Bvalue%7D",verb="GET",le="0.128"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/resourcequotas?resourceVersion=%7Bvalue%7D",verb="GET",le="0.256"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/resourcequotas?resourceVersion=%7Bvalue%7D",verb="GET",le="0.512"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/resourcequotas?resourceVersion=%7Bvalue%7D",verb="GET",le="+Inf"} 1 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/api/v1/resourcequotas?resourceVersion=%7Bvalue%7D",verb="GET"} 0.790755794 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/api/v1/resourcequotas?resourceVersion=%7Bvalue%7D",verb="GET"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/secrets?resourceVersion=%7Bvalue%7D",verb="GET",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/secrets?resourceVersion=%7Bvalue%7D",verb="GET",le="0.002"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/secrets?resourceVersion=%7Bvalue%7D",verb="GET",le="0.004"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/secrets?resourceVersion=%7Bvalue%7D",verb="GET",le="0.008"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/secrets?resourceVersion=%7Bvalue%7D",verb="GET",le="0.016"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/secrets?resourceVersion=%7Bvalue%7D",verb="GET",le="0.032"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/secrets?resourceVersion=%7Bvalue%7D",verb="GET",le="0.064"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/secrets?resourceVersion=%7Bvalue%7D",verb="GET",le="0.128"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/secrets?resourceVersion=%7Bvalue%7D",verb="GET",le="0.256"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/secrets?resourceVersion=%7Bvalue%7D",verb="GET",le="0.512"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/secrets?resourceVersion=%7Bvalue%7D",verb="GET",le="+Inf"} 1 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/api/v1/secrets?resourceVersion=%7Bvalue%7D",verb="GET"} 1.89444253 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/api/v1/secrets?resourceVersion=%7Bvalue%7D",verb="GET"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/serviceaccounts?resourceVersion=%7Bvalue%7D",verb="GET",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/serviceaccounts?resourceVersion=%7Bvalue%7D",verb="GET",le="0.002"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/serviceaccounts?resourceVersion=%7Bvalue%7D",verb="GET",le="0.004"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/serviceaccounts?resourceVersion=%7Bvalue%7D",verb="GET",le="0.008"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/serviceaccounts?resourceVersion=%7Bvalue%7D",verb="GET",le="0.016"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/serviceaccounts?resourceVersion=%7Bvalue%7D",verb="GET",le="0.032"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/serviceaccounts?resourceVersion=%7Bvalue%7D",verb="GET",le="0.064"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/serviceaccounts?resourceVersion=%7Bvalue%7D",verb="GET",le="0.128"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/serviceaccounts?resourceVersion=%7Bvalue%7D",verb="GET",le="0.256"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/serviceaccounts?resourceVersion=%7Bvalue%7D",verb="GET",le="0.512"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/serviceaccounts?resourceVersion=%7Bvalue%7D",verb="GET",le="+Inf"} 1 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/api/v1/serviceaccounts?resourceVersion=%7Bvalue%7D",verb="GET"} 1.752774172 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/api/v1/serviceaccounts?resourceVersion=%7Bvalue%7D",verb="GET"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/services",verb="GET",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/services",verb="GET",le="0.002"} 150 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/services",verb="GET",le="0.004"} 6040 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/services",verb="GET",le="0.008"} 7181 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/services",verb="GET",le="0.016"} 7305 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/services",verb="GET",le="0.032"} 7331 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/services",verb="GET",le="0.064"} 7334 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/services",verb="GET",le="0.128"} 7335 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/services",verb="GET",le="0.256"} 7336 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/services",verb="GET",le="0.512"} 7336 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/services",verb="GET",le="+Inf"} 7336 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/api/v1/services",verb="GET"} 25.138481915000003 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/api/v1/services",verb="GET"} 7336 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/services?resourceVersion=%7Bvalue%7D",verb="GET",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/services?resourceVersion=%7Bvalue%7D",verb="GET",le="0.002"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/services?resourceVersion=%7Bvalue%7D",verb="GET",le="0.004"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/services?resourceVersion=%7Bvalue%7D",verb="GET",le="0.008"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/services?resourceVersion=%7Bvalue%7D",verb="GET",le="0.016"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/services?resourceVersion=%7Bvalue%7D",verb="GET",le="0.032"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/services?resourceVersion=%7Bvalue%7D",verb="GET",le="0.064"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/services?resourceVersion=%7Bvalue%7D",verb="GET",le="0.128"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/services?resourceVersion=%7Bvalue%7D",verb="GET",le="0.256"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/services?resourceVersion=%7Bvalue%7D",verb="GET",le="0.512"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/api/v1/services?resourceVersion=%7Bvalue%7D",verb="GET",le="+Inf"} 1 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/api/v1/services?resourceVersion=%7Bvalue%7D",verb="GET"} 0.566539435 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/api/v1/services?resourceVersion=%7Bvalue%7D",verb="GET"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions?resourceVersion=%7Bvalue%7D",verb="GET",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions?resourceVersion=%7Bvalue%7D",verb="GET",le="0.002"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions?resourceVersion=%7Bvalue%7D",verb="GET",le="0.004"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions?resourceVersion=%7Bvalue%7D",verb="GET",le="0.008"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions?resourceVersion=%7Bvalue%7D",verb="GET",le="0.016"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions?resourceVersion=%7Bvalue%7D",verb="GET",le="0.032"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions?resourceVersion=%7Bvalue%7D",verb="GET",le="0.064"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions?resourceVersion=%7Bvalue%7D",verb="GET",le="0.128"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions?resourceVersion=%7Bvalue%7D",verb="GET",le="0.256"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions?resourceVersion=%7Bvalue%7D",verb="GET",le="0.512"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions?resourceVersion=%7Bvalue%7D",verb="GET",le="+Inf"} 1 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions?resourceVersion=%7Bvalue%7D",verb="GET"} 0.236389092 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/apis/apiextensions.k8s.io/v1beta1/customresourcedefinitions?resourceVersion=%7Bvalue%7D",verb="GET"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices",verb="POST",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices",verb="POST",le="0.002"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices",verb="POST",le="0.004"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices",verb="POST",le="0.008"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices",verb="POST",le="0.016"} 4 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices",verb="POST",le="0.032"} 16 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices",verb="POST",le="0.064"} 16 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices",verb="POST",le="0.128"} 20 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices",verb="POST",le="0.256"} 20 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices",verb="POST",le="0.512"} 20 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices",verb="POST",le="+Inf"} 20 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices",verb="POST"} 0.7668086199999999 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices",verb="POST"} 20 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices/%7Bname%7D/status",verb="PUT",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices/%7Bname%7D/status",verb="PUT",le="0.002"} 15273 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices/%7Bname%7D/status",verb="PUT",le="0.004"} 39245 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices/%7Bname%7D/status",verb="PUT",le="0.008"} 43191 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices/%7Bname%7D/status",verb="PUT",le="0.016"} 43882 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices/%7Bname%7D/status",verb="PUT",le="0.032"} 43992 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices/%7Bname%7D/status",verb="PUT",le="0.064"} 43999 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices/%7Bname%7D/status",verb="PUT",le="0.128"} 44000 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices/%7Bname%7D/status",verb="PUT",le="0.256"} 44000 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices/%7Bname%7D/status",verb="PUT",le="0.512"} 44000 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices/%7Bname%7D/status",verb="PUT",le="+Inf"} 44000 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices/%7Bname%7D/status",verb="PUT"} 121.47543019299911 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices/%7Bname%7D/status",verb="PUT"} 44000 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices?resourceVersion=%7Bvalue%7D",verb="GET",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices?resourceVersion=%7Bvalue%7D",verb="GET",le="0.002"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices?resourceVersion=%7Bvalue%7D",verb="GET",le="0.004"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices?resourceVersion=%7Bvalue%7D",verb="GET",le="0.008"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices?resourceVersion=%7Bvalue%7D",verb="GET",le="0.016"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices?resourceVersion=%7Bvalue%7D",verb="GET",le="0.032"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices?resourceVersion=%7Bvalue%7D",verb="GET",le="0.064"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices?resourceVersion=%7Bvalue%7D",verb="GET",le="0.128"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices?resourceVersion=%7Bvalue%7D",verb="GET",le="0.256"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices?resourceVersion=%7Bvalue%7D",verb="GET",le="0.512"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices?resourceVersion=%7Bvalue%7D",verb="GET",le="+Inf"} 1 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices?resourceVersion=%7Bvalue%7D",verb="GET"} 0.087072632 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/apis/apiregistration.k8s.io/v1beta1/apiservices?resourceVersion=%7Bvalue%7D",verb="GET"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings",verb="GET",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings",verb="GET",le="0.002"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings",verb="GET",le="0.004"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings",verb="GET",le="0.008"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings",verb="GET",le="0.016"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings",verb="GET",le="0.032"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings",verb="GET",le="0.064"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings",verb="GET",le="0.128"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings",verb="GET",le="0.256"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings",verb="GET",le="0.512"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings",verb="GET",le="+Inf"} 1 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings",verb="GET"} 0.013835969 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings",verb="GET"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings",verb="POST",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings",verb="POST",le="0.002"} 2 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings",verb="POST",le="0.004"} 14 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings",verb="POST",le="0.008"} 22 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings",verb="POST",le="0.016"} 29 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings",verb="POST",le="0.032"} 30 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings",verb="POST",le="0.064"} 30 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings",verb="POST",le="0.128"} 30 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings",verb="POST",le="0.256"} 30 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings",verb="POST",le="0.512"} 30 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings",verb="POST",le="+Inf"} 30 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings",verb="POST"} 0.18260569299999999 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings",verb="POST"} 30 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings/%7Bname%7D",verb="GET",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings/%7Bname%7D",verb="GET",le="0.002"} 8 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings/%7Bname%7D",verb="GET",le="0.004"} 20 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings/%7Bname%7D",verb="GET",le="0.008"} 26 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings/%7Bname%7D",verb="GET",le="0.016"} 27 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings/%7Bname%7D",verb="GET",le="0.032"} 30 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings/%7Bname%7D",verb="GET",le="0.064"} 30 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings/%7Bname%7D",verb="GET",le="0.128"} 30 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings/%7Bname%7D",verb="GET",le="0.256"} 30 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings/%7Bname%7D",verb="GET",le="0.512"} 30 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings/%7Bname%7D",verb="GET",le="+Inf"} 30 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings/%7Bname%7D",verb="GET"} 0.158237041 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings/%7Bname%7D",verb="GET"} 30 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings?resourceVersion=%7Bvalue%7D",verb="GET",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings?resourceVersion=%7Bvalue%7D",verb="GET",le="0.002"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings?resourceVersion=%7Bvalue%7D",verb="GET",le="0.004"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings?resourceVersion=%7Bvalue%7D",verb="GET",le="0.008"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings?resourceVersion=%7Bvalue%7D",verb="GET",le="0.016"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings?resourceVersion=%7Bvalue%7D",verb="GET",le="0.032"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings?resourceVersion=%7Bvalue%7D",verb="GET",le="0.064"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings?resourceVersion=%7Bvalue%7D",verb="GET",le="0.128"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings?resourceVersion=%7Bvalue%7D",verb="GET",le="0.256"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings?resourceVersion=%7Bvalue%7D",verb="GET",le="0.512"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings?resourceVersion=%7Bvalue%7D",verb="GET",le="+Inf"} 1 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings?resourceVersion=%7Bvalue%7D",verb="GET"} 1.749912744 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterrolebindings?resourceVersion=%7Bvalue%7D",verb="GET"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles",verb="GET",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles",verb="GET",le="0.002"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles",verb="GET",le="0.004"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles",verb="GET",le="0.008"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles",verb="GET",le="0.016"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles",verb="GET",le="0.032"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles",verb="GET",le="0.064"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles",verb="GET",le="0.128"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles",verb="GET",le="0.256"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles",verb="GET",le="0.512"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles",verb="GET",le="+Inf"} 1 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles",verb="GET"} 0.750220741 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles",verb="GET"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles",verb="POST",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles",verb="POST",le="0.002"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles",verb="POST",le="0.004"} 5 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles",verb="POST",le="0.008"} 24 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles",verb="POST",le="0.016"} 37 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles",verb="POST",le="0.032"} 39 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles",verb="POST",le="0.064"} 39 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles",verb="POST",le="0.128"} 40 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles",verb="POST",le="0.256"} 41 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles",verb="POST",le="0.512"} 41 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles",verb="POST",le="+Inf"} 41 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles",verb="POST"} 0.5492678740000001 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles",verb="POST"} 41 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles/%7Bname%7D",verb="GET",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles/%7Bname%7D",verb="GET",le="0.002"} 4 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles/%7Bname%7D",verb="GET",le="0.004"} 21 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles/%7Bname%7D",verb="GET",le="0.008"} 36 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles/%7Bname%7D",verb="GET",le="0.016"} 40 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles/%7Bname%7D",verb="GET",le="0.032"} 40 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles/%7Bname%7D",verb="GET",le="0.064"} 41 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles/%7Bname%7D",verb="GET",le="0.128"} 41 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles/%7Bname%7D",verb="GET",le="0.256"} 41 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles/%7Bname%7D",verb="GET",le="0.512"} 41 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles/%7Bname%7D",verb="GET",le="+Inf"} 41 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles/%7Bname%7D",verb="GET"} 0.22127872599999998 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles/%7Bname%7D",verb="GET"} 41 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles?resourceVersion=%7Bvalue%7D",verb="GET",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles?resourceVersion=%7Bvalue%7D",verb="GET",le="0.002"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles?resourceVersion=%7Bvalue%7D",verb="GET",le="0.004"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles?resourceVersion=%7Bvalue%7D",verb="GET",le="0.008"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles?resourceVersion=%7Bvalue%7D",verb="GET",le="0.016"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles?resourceVersion=%7Bvalue%7D",verb="GET",le="0.032"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles?resourceVersion=%7Bvalue%7D",verb="GET",le="0.064"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles?resourceVersion=%7Bvalue%7D",verb="GET",le="0.128"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles?resourceVersion=%7Bvalue%7D",verb="GET",le="0.256"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles?resourceVersion=%7Bvalue%7D",verb="GET",le="0.512"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles?resourceVersion=%7Bvalue%7D",verb="GET",le="+Inf"} 1 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles?resourceVersion=%7Bvalue%7D",verb="GET"} 0.091407848 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/clusterroles?resourceVersion=%7Bvalue%7D",verb="GET"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/rolebindings",verb="POST",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/rolebindings",verb="POST",le="0.002"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/rolebindings",verb="POST",le="0.004"} 5 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/rolebindings",verb="POST",le="0.008"} 5 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/rolebindings",verb="POST",le="0.016"} 6 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/rolebindings",verb="POST",le="0.032"} 6 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/rolebindings",verb="POST",le="0.064"} 6 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/rolebindings",verb="POST",le="0.128"} 6 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/rolebindings",verb="POST",le="0.256"} 6 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/rolebindings",verb="POST",le="0.512"} 6 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/rolebindings",verb="POST",le="+Inf"} 6 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/rolebindings",verb="POST"} 0.026200423 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/rolebindings",verb="POST"} 6 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/rolebindings/%7Bname%7D",verb="GET",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/rolebindings/%7Bname%7D",verb="GET",le="0.002"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/rolebindings/%7Bname%7D",verb="GET",le="0.004"} 5 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/rolebindings/%7Bname%7D",verb="GET",le="0.008"} 6 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/rolebindings/%7Bname%7D",verb="GET",le="0.016"} 6 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/rolebindings/%7Bname%7D",verb="GET",le="0.032"} 6 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/rolebindings/%7Bname%7D",verb="GET",le="0.064"} 6 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/rolebindings/%7Bname%7D",verb="GET",le="0.128"} 6 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/rolebindings/%7Bname%7D",verb="GET",le="0.256"} 6 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/rolebindings/%7Bname%7D",verb="GET",le="0.512"} 6 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/rolebindings/%7Bname%7D",verb="GET",le="+Inf"} 6 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/rolebindings/%7Bname%7D",verb="GET"} 0.015331507 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/rolebindings/%7Bname%7D",verb="GET"} 6 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/roles",verb="POST",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/roles",verb="POST",le="0.002"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/roles",verb="POST",le="0.004"} 4 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/roles",verb="POST",le="0.008"} 7 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/roles",verb="POST",le="0.016"} 7 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/roles",verb="POST",le="0.032"} 7 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/roles",verb="POST",le="0.064"} 7 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/roles",verb="POST",le="0.128"} 7 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/roles",verb="POST",le="0.256"} 7 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/roles",verb="POST",le="0.512"} 7 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/roles",verb="POST",le="+Inf"} 7 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/roles",verb="POST"} 0.027292158 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/roles",verb="POST"} 7 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/roles/%7Bname%7D",verb="GET",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/roles/%7Bname%7D",verb="GET",le="0.002"} 2 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/roles/%7Bname%7D",verb="GET",le="0.004"} 5 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/roles/%7Bname%7D",verb="GET",le="0.008"} 6 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/roles/%7Bname%7D",verb="GET",le="0.016"} 7 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/roles/%7Bname%7D",verb="GET",le="0.032"} 7 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/roles/%7Bname%7D",verb="GET",le="0.064"} 7 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/roles/%7Bname%7D",verb="GET",le="0.128"} 7 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/roles/%7Bname%7D",verb="GET",le="0.256"} 7 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/roles/%7Bname%7D",verb="GET",le="0.512"} 7 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/roles/%7Bname%7D",verb="GET",le="+Inf"} 7 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/roles/%7Bname%7D",verb="GET"} 0.029344094 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/namespaces/%7Bnamespace%7D/roles/%7Bname%7D",verb="GET"} 7 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/rolebindings?resourceVersion=%7Bvalue%7D",verb="GET",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/rolebindings?resourceVersion=%7Bvalue%7D",verb="GET",le="0.002"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/rolebindings?resourceVersion=%7Bvalue%7D",verb="GET",le="0.004"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/rolebindings?resourceVersion=%7Bvalue%7D",verb="GET",le="0.008"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/rolebindings?resourceVersion=%7Bvalue%7D",verb="GET",le="0.016"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/rolebindings?resourceVersion=%7Bvalue%7D",verb="GET",le="0.032"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/rolebindings?resourceVersion=%7Bvalue%7D",verb="GET",le="0.064"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/rolebindings?resourceVersion=%7Bvalue%7D",verb="GET",le="0.128"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/rolebindings?resourceVersion=%7Bvalue%7D",verb="GET",le="0.256"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/rolebindings?resourceVersion=%7Bvalue%7D",verb="GET",le="0.512"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/rolebindings?resourceVersion=%7Bvalue%7D",verb="GET",le="+Inf"} 1 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/rolebindings?resourceVersion=%7Bvalue%7D",verb="GET"} 1.8392819440000001 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/rolebindings?resourceVersion=%7Bvalue%7D",verb="GET"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/roles?resourceVersion=%7Bvalue%7D",verb="GET",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/roles?resourceVersion=%7Bvalue%7D",verb="GET",le="0.002"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/roles?resourceVersion=%7Bvalue%7D",verb="GET",le="0.004"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/roles?resourceVersion=%7Bvalue%7D",verb="GET",le="0.008"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/roles?resourceVersion=%7Bvalue%7D",verb="GET",le="0.016"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/roles?resourceVersion=%7Bvalue%7D",verb="GET",le="0.032"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/roles?resourceVersion=%7Bvalue%7D",verb="GET",le="0.064"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/roles?resourceVersion=%7Bvalue%7D",verb="GET",le="0.128"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/roles?resourceVersion=%7Bvalue%7D",verb="GET",le="0.256"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/roles?resourceVersion=%7Bvalue%7D",verb="GET",le="0.512"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/roles?resourceVersion=%7Bvalue%7D",verb="GET",le="+Inf"} 1 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/roles?resourceVersion=%7Bvalue%7D",verb="GET"} 2.430088351 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/apis/rbac.authorization.k8s.io/v1beta1/roles?resourceVersion=%7Bvalue%7D",verb="GET"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/storage.k8s.io/v1/storageclasses?resourceVersion=%7Bvalue%7D",verb="GET",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/storage.k8s.io/v1/storageclasses?resourceVersion=%7Bvalue%7D",verb="GET",le="0.002"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/storage.k8s.io/v1/storageclasses?resourceVersion=%7Bvalue%7D",verb="GET",le="0.004"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/storage.k8s.io/v1/storageclasses?resourceVersion=%7Bvalue%7D",verb="GET",le="0.008"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/storage.k8s.io/v1/storageclasses?resourceVersion=%7Bvalue%7D",verb="GET",le="0.016"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/storage.k8s.io/v1/storageclasses?resourceVersion=%7Bvalue%7D",verb="GET",le="0.032"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/storage.k8s.io/v1/storageclasses?resourceVersion=%7Bvalue%7D",verb="GET",le="0.064"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/storage.k8s.io/v1/storageclasses?resourceVersion=%7Bvalue%7D",verb="GET",le="0.128"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/storage.k8s.io/v1/storageclasses?resourceVersion=%7Bvalue%7D",verb="GET",le="0.256"} 0 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/storage.k8s.io/v1/storageclasses?resourceVersion=%7Bvalue%7D",verb="GET",le="0.512"} 1 +rest_client_request_latency_seconds_bucket{url="https://127.0.0.1:443/apis/storage.k8s.io/v1/storageclasses?resourceVersion=%7Bvalue%7D",verb="GET",le="+Inf"} 1 +rest_client_request_latency_seconds_sum{url="https://127.0.0.1:443/apis/storage.k8s.io/v1/storageclasses?resourceVersion=%7Bvalue%7D",verb="GET"} 0.280277953 +rest_client_request_latency_seconds_count{url="https://127.0.0.1:443/apis/storage.k8s.io/v1/storageclasses?resourceVersion=%7Bvalue%7D",verb="GET"} 1 +rest_client_request_latency_seconds_bucket{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/audit",verb="POST",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/audit",verb="POST",le="0.002"} 0 +rest_client_request_latency_seconds_bucket{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/audit",verb="POST",le="0.004"} 0 +rest_client_request_latency_seconds_bucket{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/audit",verb="POST",le="0.008"} 0 +rest_client_request_latency_seconds_bucket{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/audit",verb="POST",le="0.016"} 0 +rest_client_request_latency_seconds_bucket{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/audit",verb="POST",le="0.032"} 0 +rest_client_request_latency_seconds_bucket{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/audit",verb="POST",le="0.064"} 0 +rest_client_request_latency_seconds_bucket{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/audit",verb="POST",le="0.128"} 0 +rest_client_request_latency_seconds_bucket{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/audit",verb="POST",le="0.256"} 2 +rest_client_request_latency_seconds_bucket{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/audit",verb="POST",le="0.512"} 24 +rest_client_request_latency_seconds_bucket{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/audit",verb="POST",le="+Inf"} 23816 +rest_client_request_latency_seconds_sum{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/audit",verb="POST"} 26480.682634505985 +rest_client_request_latency_seconds_count{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/audit",verb="POST"} 23816 +rest_client_request_latency_seconds_bucket{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/authenticate",verb="POST",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/authenticate",verb="POST",le="0.002"} 0 +rest_client_request_latency_seconds_bucket{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/authenticate",verb="POST",le="0.004"} 0 +rest_client_request_latency_seconds_bucket{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/authenticate",verb="POST",le="0.008"} 0 +rest_client_request_latency_seconds_bucket{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/authenticate",verb="POST",le="0.016"} 0 +rest_client_request_latency_seconds_bucket{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/authenticate",verb="POST",le="0.032"} 52 +rest_client_request_latency_seconds_bucket{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/authenticate",verb="POST",le="0.064"} 93 +rest_client_request_latency_seconds_bucket{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/authenticate",verb="POST",le="0.128"} 94 +rest_client_request_latency_seconds_bucket{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/authenticate",verb="POST",le="0.256"} 94 +rest_client_request_latency_seconds_bucket{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/authenticate",verb="POST",le="0.512"} 95 +rest_client_request_latency_seconds_bucket{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/authenticate",verb="POST",le="+Inf"} 98 +rest_client_request_latency_seconds_sum{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/authenticate",verb="POST"} 28.040823633000002 +rest_client_request_latency_seconds_count{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/authenticate",verb="POST"} 98 +rest_client_request_latency_seconds_bucket{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/authorize",verb="POST",le="0.001"} 0 +rest_client_request_latency_seconds_bucket{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/authorize",verb="POST",le="0.002"} 0 +rest_client_request_latency_seconds_bucket{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/authorize",verb="POST",le="0.004"} 0 +rest_client_request_latency_seconds_bucket{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/authorize",verb="POST",le="0.008"} 0 +rest_client_request_latency_seconds_bucket{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/authorize",verb="POST",le="0.016"} 25512 +rest_client_request_latency_seconds_bucket{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/authorize",verb="POST",le="0.032"} 188583 +rest_client_request_latency_seconds_bucket{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/authorize",verb="POST",le="0.064"} 198810 +rest_client_request_latency_seconds_bucket{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/authorize",verb="POST",le="0.128"} 201502 +rest_client_request_latency_seconds_bucket{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/authorize",verb="POST",le="0.256"} 203317 +rest_client_request_latency_seconds_bucket{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/authorize",verb="POST",le="0.512"} 205475 +rest_client_request_latency_seconds_bucket{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/authorize",verb="POST",le="+Inf"} 212768 +rest_client_request_latency_seconds_sum{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/authorize",verb="POST"} 18766.561950170322 +rest_client_request_latency_seconds_count{url="https://container.googleapis.com/v1/masterProjects/243205647532/locations/us-central1-a/865493543029/beats-demo/authorize",verb="POST"} 212768 +# HELP rest_client_requests_total Number of HTTP requests, partitioned by status code, method, and host. +# TYPE rest_client_requests_total counter +rest_client_requests_total{code="200",host="127.0.0.1:443",method="GET"} 305805 +rest_client_requests_total{code="200",host="127.0.0.1:443",method="PUT"} 44000 +rest_client_requests_total{code="200",host="container.googleapis.com",method="POST"} 236660 +rest_client_requests_total{code="201",host="127.0.0.1:443",method="POST"} 110 +rest_client_requests_total{code="404",host="127.0.0.1:443",method="GET"} 162 +rest_client_requests_total{code="404",host="container.googleapis.com",method="POST"} 1 +rest_client_requests_total{code="409",host="127.0.0.1:443",method="POST"} 13 +rest_client_requests_total{code="502",host="container.googleapis.com",method="POST"} 1 +rest_client_requests_total{code="503",host="container.googleapis.com",method="POST"} 20 +rest_client_requests_total{code="",host="127.0.0.1:443",method="GET"} 1 +# HELP ssh_tunnel_open_count Counter of ssh tunnel total open attempts +# TYPE ssh_tunnel_open_count counter +ssh_tunnel_open_count 29 +# HELP ssh_tunnel_open_fail_count Counter of ssh tunnel failed open attempts +# TYPE ssh_tunnel_open_fail_count counter +ssh_tunnel_open_fail_count 6 diff --git a/metricbeat/module/kubernetes/apiserver/_meta/testdata/docs.plain-expected.json b/metricbeat/module/kubernetes/apiserver/_meta/testdata/docs.plain-expected.json new file mode 100644 index 00000000000..8e3e07dea33 --- /dev/null +++ b/metricbeat/module/kubernetes/apiserver/_meta/testdata/docs.plain-expected.json @@ -0,0 +1,18140 @@ +[ + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 4, + "resource": "configmaps", + "scope": "namespace", + "verb": "DELETE" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 7, + "1000000": 7, + "125000": 7, + "2000000": 7, + "250000": 7, + "4000000": 7, + "500000": 7, + "8000000": 7 + }, + "count": 7, + "sum": 192618 + }, + "resource": "nodes", + "scope": "cluster", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:daemon-set-controller", + "count": 10, + "resource": "daemonsets", + "scope": "namespace", + "subresource": "status", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1468, + "resource": "ingresses", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 3, + "resource": "clusterroles", + "scope": "cluster", + "verb": "DELETE" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 2, + "resource": "replicasets", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 8, + "resource": "clusterrolebindings", + "scope": "cluster", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "configmaps", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 21995, + "resource": "roles", + "scope": "namespace", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "services", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 87983, + "1000000": 87983, + "125000": 87983, + "2000000": 87983, + "250000": 87983, + "4000000": 87983, + "500000": 87983, + "8000000": 87983 + }, + "count": 87983, + "sum": 161403153 + }, + "resource": "clusterrolebindings", + "scope": "cluster", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 293, + "1000000": 293, + "125000": 291, + "2000000": 293, + "250000": 293, + "4000000": 293, + "500000": 293, + "8000000": 293 + }, + "count": 293, + "sum": 4833955 + }, + "resource": "replicasets", + "scope": "namespace", + "subresource": "status", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "cronjobs", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "limitranges", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:route-controller", + "count": 7, + "resource": "nodes", + "scope": "cluster", + "subresource": "status", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 68, + "resource": "pods", + "scope": "namespace", + "verb": "DELETE" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 21999, + "1000000": 21999, + "125000": 21999, + "2000000": 21999, + "250000": 21999, + "4000000": 21999, + "500000": 21999, + "8000000": 21999 + }, + "count": 21999, + "sum": 42542811 + }, + "resource": "daemonsets", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 1659, + "1000000": 1657, + "125000": 1652, + "2000000": 1657, + "250000": 1654, + "4000000": 1657, + "500000": 1657, + "8000000": 1659 + }, + "count": 1659, + "sum": 31122339 + }, + "resource": "events", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "GoogleContainerEngine", + "count": 709, + "resource": "ingresses", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1476, + "resource": "pods", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 1, + "resource": "jobs", + "scope": "namespace", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 17, + "1000000": 17, + "125000": 17, + "2000000": 17, + "250000": 17, + "4000000": 17, + "500000": 17, + "8000000": 17 + }, + "count": 17, + "sum": 12218 + }, + "resource": "subjectaccessreviews", + "scope": "cluster", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "rescheduler/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1467, + "resource": "pods", + "scope": "namespace", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 2934, + "resource": "daemonsets", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1463, + "resource": "namespaces", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 24, + "1000000": 24, + "125000": 23, + "2000000": 24, + "250000": 24, + "4000000": 24, + "500000": 24, + "8000000": 24 + }, + "count": 24, + "sum": 410336 + }, + "resource": "deployments", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 347, + "1000000": 347, + "125000": 343, + "2000000": 347, + "250000": 346, + "4000000": 347, + "500000": 347, + "8000000": 347 + }, + "count": 347, + "sum": 5307111 + }, + "resource": "deployments", + "scope": "namespace", + "subresource": "status", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "heapster/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 4446, + "resource": "nodes", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "services", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:replicaset-controller", + "count": 22, + "resource": "replicasets", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:attachdetach-controller", + "count": 2, + "resource": "events", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 36, + "1000000": 36, + "125000": 36, + "2000000": 36, + "250000": 36, + "4000000": 36, + "500000": 36, + "8000000": 36 + }, + "count": 36, + "sum": 900579 + }, + "resource": "pods", + "scope": "namespace", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1496, + "resource": "resourcequotas", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 1, + "resource": "replicasets", + "scope": "namespace", + "verb": "DELETE" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:endpoint-controller", + "count": 1, + "resource": "endpoints", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:generic-garbage-collector", + "count": 14, + "resource": "replicasets", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "GoogleContainerEngine", + "count": 709, + "resource": "horizontalpodautoscalers", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:persistent-volume-binder", + "count": 1, + "resource": "persistentvolumeclaims", + "scope": "namespace", + "subresource": "status", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "dashboard/v1.8.0", + "count": 10, + "resource": "services", + "scope": "resource", + "verb": "proxy" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 6, + "resource": "deployments", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 2, + "resource": "deployments", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 21997, + "resource": "jobs", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "GoogleContainerEngine", + "count": 709, + "resource": "deployments", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 1, + "resource": "pods", + "scope": "namespace", + "subresource": "exec", + "verb": "CONNECT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "namespaces", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 8711, + "resource": "persistentvolumes", + "scope": "cluster", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 21997, + "resource": "secrets", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 44000, + "resource": "apiservices", + "scope": "cluster", + "subresource": "status", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 717, + "1000000": 717, + "125000": 715, + "2000000": 717, + "250000": 717, + "4000000": 717, + "500000": 717, + "8000000": 717 + }, + "count": 717, + "sum": 6031823 + }, + "resource": "pods", + "scope": "namespace", + "subresource": "status", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 10997, + "resource": "configmaps", + "scope": "namespace", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 11041, + "1000000": 11041, + "125000": 11041, + "2000000": 11041, + "250000": 11041, + "4000000": 11041, + "500000": 11041, + "8000000": 11041 + }, + "count": 11041, + "sum": 26980827 + }, + "resource": "secrets", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 68, + "resource": "pods", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1464, + "resource": "statefulsets", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 9, + "1000000": 9, + "125000": 9, + "2000000": 9, + "250000": 9, + "4000000": 9, + "500000": 9, + "8000000": 9 + }, + "count": 9, + "sum": 30051 + }, + "resource": "controllerrevisions", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 14, + "resource": "deployments", + "scope": "namespace", + "verb": "DELETE" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "glbc/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1485, + "resource": "services", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 2927, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 2927, + "sum": 1319595133369 + }, + "resource": "clusterroles", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1473, + "resource": "replicasets", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "glbc/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 2, + "resource": "configmaps", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "rolebindings", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "glbc/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1, + "resource": "nodes", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 44036, + "1000000": 44036, + "125000": 44036, + "2000000": 44036, + "250000": 44036, + "4000000": 44036, + "500000": 44036, + "8000000": 44036 + }, + "count": 44036, + "sum": 46748890 + }, + "resource": "clusterroles", + "scope": "cluster", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1463, + "resource": "controllerrevisions", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:daemon-set-controller", + "count": 9, + "resource": "pods", + "scope": "namespace", + "verb": "DELETE" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 3, + "resource": "daemonsets", + "scope": "namespace", + "verb": "DELETE" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:service-controller", + "count": 4, + "resource": "events", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "GoogleContainerEngine", + "count": 14380, + "resource": "pods", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 7, + "resource": "certificatesigningrequests", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 4409, + "resource": "nodes", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:replicaset-controller", + "count": 30, + "resource": "events", + "scope": "namespace", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 87983, + "resource": "clusterrolebindings", + "scope": "cluster", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 66639, + "1000000": 66637, + "125000": 66635, + "2000000": 66639, + "250000": 66636, + "4000000": 66639, + "500000": 66636, + "8000000": 66639 + }, + "count": 66639, + "sum": 120279290 + }, + "resource": "jobs", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 6, + "resource": "clusterroles", + "scope": "cluster", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 3, + "1000000": 3, + "125000": 3, + "2000000": 3, + "250000": 3, + "4000000": 3, + "500000": 3, + "8000000": 3 + }, + "count": 3, + "sum": 29952 + }, + "resource": "daemonsets", + "scope": "namespace", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:certificate-controller", + "count": 7, + "resource": "subjectaccessreviews", + "scope": "cluster", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 1, + "resource": "limitranges", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 38, + "1000000": 38, + "125000": 38, + "2000000": 38, + "250000": 38, + "4000000": 38, + "500000": 38, + "8000000": 38 + }, + "count": 38, + "sum": 137375 + }, + "resource": "serviceaccounts", + "scope": "namespace", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.8.7 (linux/amd64) kubernetes/b30876a", + "count": 1, + "resource": "nodes", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1478, + "resource": "nodes", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:persistent-volume-binder", + "count": 1, + "resource": "persistentvolumes", + "scope": "cluster", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 3, + "resource": "daemonsets", + "scope": "namespace", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "roles", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:deployment-controller", + "count": 14, + "resource": "replicasets", + "scope": "namespace", + "verb": "DELETE" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "heapster/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 5, + "resource": "pods", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1468, + "resource": "roles", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 31, + "resource": "namespaces", + "scope": "cluster", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller", + "count": 11, + "resource": "nodes", + "scope": "cluster", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1472, + "resource": "poddisruptionbudgets", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:replicaset-controller", + "count": 22, + "resource": "replicasets", + "scope": "namespace", + "subresource": "status", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "GoogleContainerEngine", + "count": 7195, + "resource": "componentstatuses", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:daemon-set-controller", + "count": 9, + "resource": "controllerrevisions", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 123, + "resource": "events", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 14, + "resource": "deployments", + "scope": "namespace", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 8712, + "1000000": 8712, + "125000": 8712, + "2000000": 8712, + "250000": 8712, + "4000000": 8712, + "500000": 8712, + "8000000": 8712 + }, + "count": 8712, + "sum": 16083150 + }, + "resource": "persistentvolumeclaims", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1466, + "resource": "services", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 4408, + "resource": "services", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-proxy/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 4417, + "resource": "services", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 2934, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 2934, + "sum": 1319449062336 + }, + "resource": "serviceaccounts", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 7, + "resource": "certificatesigningrequests", + "scope": "cluster", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/tokens-controller", + "count": 3, + "resource": "secrets", + "scope": "namespace", + "verb": "DELETE" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:cronjob-controller", + "count": 65929, + "resource": "cronjobs", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "storageclasses", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "glbc/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1473, + "resource": "ingresses", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 1, + "125000": 1, + "2000000": 1, + "250000": 1, + "4000000": 1, + "500000": 1, + "8000000": 1 + }, + "count": 1, + "sum": 15199 + }, + "resource": "persistentvolumeclaims", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 22717, + "1000000": 22716, + "125000": 22716, + "2000000": 22716, + "250000": 22716, + "4000000": 22717, + "500000": 22716, + "8000000": 22717 + }, + "count": 22717, + "sum": 33164863 + }, + "resource": "persistentvolumes", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 6, + "resource": "rolebindings", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1464, + "resource": "nodes", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 4, + "1000000": 4, + "125000": 4, + "2000000": 4, + "250000": 4, + "4000000": 4, + "500000": 4, + "8000000": 4 + }, + "count": 4, + "sum": 19435 + }, + "resource": "configmaps", + "scope": "namespace", + "verb": "DELETE" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:cronjob-controller", + "count": 65929, + "resource": "jobs", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 9, + "1000000": 9, + "125000": 9, + "2000000": 9, + "250000": 9, + "4000000": 9, + "500000": 9, + "8000000": 9 + }, + "count": 9, + "sum": 99447 + }, + "resource": "nodes", + "scope": "cluster", + "subresource": "status", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 2940, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 2940, + "sum": 1319158063084 + }, + "resource": "limitranges", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "GoogleContainerEngine", + "count": 14, + "resource": "pods", + "scope": "namespace", + "verb": "DELETE" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "serviceaccounts", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 2, + "resource": "daemonsets", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "node-problem-detector/v1.4.0 (linux/amd64) kubernetes/$Format", + "count": 8, + "resource": "nodes", + "scope": "cluster", + "subresource": "status", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 15, + "1000000": 15, + "125000": 15, + "2000000": 15, + "250000": 15, + "4000000": 15, + "500000": 15, + "8000000": 15 + }, + "count": 15, + "sum": 337373 + }, + "resource": "secrets", + "scope": "namespace", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 1472, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 1472, + "sum": 659545988637 + }, + "resource": "podsecuritypolicies", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 197492, + "1000000": 197485, + "125000": 197485, + "2000000": 197485, + "250000": 197485, + "4000000": 197485, + "500000": 197485, + "8000000": 197485 + }, + "count": 197492, + "sum": 668178451 + }, + "resource": "nodes", + "scope": "cluster", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 1483, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 1483, + "sum": 659897025212 + }, + "resource": "configmaps", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1461, + "resource": "storageclasses", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-dns/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 4, + "resource": "services", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1472, + "resource": "podsecuritypolicies", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 14, + "1000000": 14, + "125000": 14, + "2000000": 14, + "250000": 14, + "4000000": 14, + "500000": 14, + "8000000": 14 + }, + "count": 14, + "sum": 139646 + }, + "resource": "deployments", + "scope": "namespace", + "verb": "DELETE" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 36425, + "1000000": 36425, + "125000": 36411, + "2000000": 36425, + "250000": 36412, + "4000000": 36425, + "500000": 36421, + "8000000": 36425 + }, + "count": 36425, + "sum": 153386026 + }, + "resource": "pods", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller", + "count": 4, + "resource": "nodes", + "scope": "cluster", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "GoogleContainerEngine", + "count": 4, + "resource": "nodes", + "scope": "cluster", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:service-account-controller", + "count": 3, + "resource": "serviceaccounts", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 17, + "1000000": 15, + "125000": 15, + "2000000": 15, + "250000": 15, + "4000000": 16, + "500000": 15, + "8000000": 16 + }, + "count": 17, + "sum": 62613720 + }, + "resource": "jobs", + "scope": "namespace", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 10997, + "1000000": 10997, + "125000": 10997, + "2000000": 10997, + "250000": 10997, + "4000000": 10997, + "500000": 10997, + "8000000": 10997 + }, + "count": 10997, + "sum": 27035169 + }, + "resource": "configmaps", + "scope": "namespace", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 21997, + "resource": "replicationcontrollers", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 19, + "resource": "jobs", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 4, + "resource": "clusterroles", + "scope": "cluster", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:endpoint-controller", + "count": 2, + "resource": "endpoints", + "scope": "namespace", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 2, + "1000000": 1, + "125000": 1, + "2000000": 2, + "250000": 1, + "4000000": 2, + "500000": 1, + "8000000": 2 + }, + "count": 2, + "sum": 1654312 + }, + "resource": "limitranges", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 1, + "125000": 1, + "2000000": 1, + "250000": 1, + "4000000": 1, + "500000": 1, + "8000000": 1 + }, + "count": 1, + "sum": 4186 + }, + "resource": "namespaces", + "scope": "cluster", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 68, + "1000000": 68, + "125000": 68, + "2000000": 68, + "250000": 68, + "4000000": 68, + "500000": 68, + "8000000": 68 + }, + "count": 68, + "sum": 117705 + }, + "resource": "jobs", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 3, + "resource": "services", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 11023, + "1000000": 11023, + "125000": 11023, + "2000000": 11023, + "250000": 11023, + "4000000": 11023, + "500000": 11023, + "8000000": 11023 + }, + "count": 11023, + "sum": 15416410 + }, + "resource": "resourcequotas", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 21995, + "1000000": 21995, + "125000": 21995, + "2000000": 21995, + "250000": 21995, + "4000000": 21995, + "500000": 21995, + "8000000": 21995 + }, + "count": 21995, + "sum": 42319790 + }, + "resource": "roles", + "scope": "namespace", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 14, + "resource": "serviceaccounts", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 1, + "125000": 1, + "2000000": 1, + "250000": 1, + "4000000": 1, + "500000": 1, + "8000000": 1 + }, + "count": 1, + "sum": 8582 + }, + "resource": "limitranges", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "glbc/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1, + "resource": "services", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "glbc/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 2, + "resource": "ingresses", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 160, + "resource": "events", + "scope": "namespace", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-proxy/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 7, + "resource": "endpoints", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "cluster-proportional-autoscaler/v1.6.5 (linux/amd64) kubernetes/$Format", + "count": 1, + "resource": "configmaps", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 18, + "resource": "limitranges", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "persistentvolumeclaims", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:job-controller", + "count": 1, + "resource": "jobs", + "scope": "namespace", + "subresource": "status", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 21997, + "resource": "statefulsets", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 41, + "resource": "clusterroles", + "scope": "cluster", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "heapster/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1473, + "resource": "namespaces", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "customresourcedefinitions", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 1463, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 1463, + "sum": 659457907105 + }, + "resource": "controllerrevisions", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "jobs", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller", + "count": 4, + "resource": "nodes", + "scope": "cluster", + "verb": "DELETE" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 56, + "resource": "nodes", + "scope": "cluster", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:generic-garbage-collector", + "count": 1, + "resource": "replicasets", + "scope": "namespace", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/tokens-controller", + "count": 38, + "resource": "secrets", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 7, + "resource": "certificatesigningrequests", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/controller-manager", + "count": 23, + "resource": "serviceaccounts", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1470, + "resource": "replicationcontrollers", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 16, + "resource": "jobs", + "scope": "namespace", + "verb": "DELETE" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "controllerrevisions", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 21998, + "1000000": 21998, + "125000": 21998, + "2000000": 21998, + "250000": 21998, + "4000000": 21998, + "500000": 21998, + "8000000": 21998 + }, + "count": 21998, + "sum": 54318333 + }, + "resource": "configmaps", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "gke-certificates-controller/v1.7.0 (linux/amd64) kubernetes/6b9ded1/certificate-controller", + "count": 1467, + "resource": "certificatesigningrequests", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1465, + "resource": "resourcequotas", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 1, + "125000": 1, + "2000000": 1, + "250000": 1, + "4000000": 1, + "500000": 1, + "8000000": 1 + }, + "count": 1, + "sum": 3500 + }, + "resource": "persistentvolumes", + "scope": "cluster", + "subresource": "status", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:generic-garbage-collector", + "count": 36, + "resource": "pods", + "scope": "namespace", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-proxy/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 4420, + "resource": "endpoints", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:pod-garbage-collector", + "count": 32985, + "resource": "nodes", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 1467, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 1467, + "sum": 659897009038 + }, + "resource": "customresourcedefinitions", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 65893, + "1000000": 65893, + "125000": 65893, + "2000000": 65893, + "250000": 65893, + "4000000": 65893, + "500000": 65893, + "8000000": 65893 + }, + "count": 65893, + "sum": 82149159 + }, + "resource": "deployments", + "scope": "namespace", + "subresource": "scale", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:daemon-set-controller", + "count": 10, + "resource": "daemonsets", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 21998, + "1000000": 21998, + "125000": 21998, + "2000000": 21998, + "250000": 21998, + "4000000": 21998, + "500000": 21998, + "8000000": 21998 + }, + "count": 21998, + "sum": 37531190 + }, + "resource": "services", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "glbc/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1, + "resource": "configmaps", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "configmaps", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1475, + "resource": "resourcequotas", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 116, + "1000000": 116, + "125000": 116, + "2000000": 116, + "250000": 116, + "4000000": 116, + "500000": 116, + "8000000": 116 + }, + "count": 116, + "sum": 1336329 + }, + "resource": "daemonsets", + "scope": "namespace", + "subresource": "status", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/controller-manager", + "count": 1, + "resource": "events", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 157377, + "1000000": 157373, + "125000": 157353, + "2000000": 157377, + "250000": 157363, + "4000000": 157377, + "500000": 157370, + "8000000": 157377 + }, + "count": 157377, + "sum": 478451230 + }, + "resource": "nodes", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 2, + "resource": "replicationcontrollers", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 4392, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 4392, + "sum": 1979690652276 + }, + "resource": "namespaces", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "GoogleContainerEngine", + "count": 14465, + "resource": "nodes", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 22009, + "1000000": 22009, + "125000": 22009, + "2000000": 22009, + "250000": 22009, + "4000000": 22009, + "500000": 22009, + "8000000": 22009 + }, + "count": 22009, + "sum": 91312572 + }, + "resource": "configmaps", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 4, + "resource": "clusterroles", + "scope": "cluster", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1472, + "resource": "limitranges", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/leader-election", + "count": 1, + "resource": "endpoints", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 44000, + "1000000": 44000, + "125000": 44000, + "2000000": 44000, + "250000": 44000, + "4000000": 44000, + "500000": 44000, + "8000000": 44000 + }, + "count": 44000, + "sum": 69726863 + }, + "resource": "apiservices", + "scope": "cluster", + "subresource": "status", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 1, + "resource": "daemonsets", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 2, + "resource": "persistentvolumes", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 21995, + "resource": "rolebindings", + "scope": "namespace", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 11, + "1000000": 11, + "125000": 11, + "2000000": 11, + "250000": 11, + "4000000": 11, + "500000": 11, + "8000000": 11 + }, + "count": 11, + "sum": 56853 + }, + "resource": "endpoints", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "GoogleContainerEngine", + "count": 709, + "resource": "serviceaccounts", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 90, + "resource": "daemonsets", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "cluster-proportional-autoscaler/v1.6.5 (linux/amd64) kubernetes/$Format", + "count": 65893, + "resource": "deployments", + "scope": "namespace", + "subresource": "scale", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/controller-manager", + "count": 15, + "resource": "secrets", + "scope": "namespace", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 1, + "125000": 0, + "2000000": 1, + "250000": 1, + "4000000": 1, + "500000": 1, + "8000000": 1 + }, + "count": 1, + "sum": 148703 + }, + "resource": "customresourcedefinitions", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 3, + "1000000": 3, + "125000": 3, + "2000000": 3, + "250000": 3, + "4000000": 3, + "500000": 3, + "8000000": 3 + }, + "count": 3, + "sum": 19942 + }, + "resource": "clusterrolebindings", + "scope": "cluster", + "verb": "DELETE" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 2941, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 2941, + "sum": 1319639948582 + }, + "resource": "ingresses", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 1471, + "resource": "persistentvolumeclaims", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 91, + "1000000": 91, + "125000": 90, + "2000000": 91, + "250000": 91, + "4000000": 91, + "500000": 91, + "8000000": 91 + }, + "count": 91, + "sum": 1467975 + }, + "resource": "pods", + "scope": "namespace", + "subresource": "binding", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 8712, + "1000000": 8712, + "125000": 8712, + "2000000": 8712, + "250000": 8712, + "4000000": 8712, + "500000": 8712, + "8000000": 8712 + }, + "count": 8712, + "sum": 9535813 + }, + "resource": "persistentvolumes", + "scope": "cluster", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 18, + "resource": "deployments", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 1, + "resource": "persistentvolumes", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "nodes", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 1, + "125000": 1, + "2000000": 1, + "250000": 1, + "4000000": 1, + "500000": 1, + "8000000": 1 + }, + "count": 1, + "sum": 242 + }, + "resource": "podsecuritypolicies", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 66139, + "1000000": 66138, + "125000": 66138, + "2000000": 66139, + "250000": 66138, + "4000000": 66139, + "500000": 66138, + "8000000": 66139 + }, + "count": 66139, + "sum": 78537675 + }, + "resource": "serviceaccounts", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "glbc/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1464, + "resource": "nodes", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 1, + "125000": 0, + "2000000": 1, + "250000": 1, + "4000000": 1, + "500000": 1, + "8000000": 1 + }, + "count": 1, + "sum": 138053 + }, + "resource": "persistentvolumes", + "scope": "cluster", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "namespaces", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 203, + "1000000": 203, + "125000": 202, + "2000000": 203, + "250000": 203, + "4000000": 203, + "500000": 203, + "8000000": 203 + }, + "count": 203, + "sum": 2941687 + }, + "resource": "pods", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 1, + "resource": "jobs", + "scope": "namespace", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 1, + "125000": 1, + "2000000": 1, + "250000": 1, + "4000000": 1, + "500000": 1, + "8000000": 1 + }, + "count": 1, + "sum": 25903 + }, + "resource": "deployments", + "scope": "namespace", + "subresource": "scale", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 656937, + "1000000": 656930, + "125000": 656912, + "2000000": 656937, + "250000": 656919, + "4000000": 656937, + "500000": 656926, + "8000000": 656937 + }, + "count": 656937, + "sum": 1660247858 + }, + "resource": "endpoints", + "scope": "namespace", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 10998, + "1000000": 10998, + "125000": 10998, + "2000000": 10998, + "250000": 10998, + "4000000": 10998, + "500000": 10998, + "8000000": 10998 + }, + "count": 10998, + "sum": 46349882 + }, + "resource": "daemonsets", + "scope": "namespace", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 4, + "1000000": 4, + "125000": 4, + "2000000": 4, + "250000": 4, + "4000000": 4, + "500000": 4, + "8000000": 4 + }, + "count": 4, + "sum": 32628 + }, + "resource": "nodes", + "scope": "cluster", + "verb": "DELETE" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 710, + "1000000": 710, + "125000": 710, + "2000000": 710, + "250000": 710, + "4000000": 710, + "500000": 710, + "8000000": 710 + }, + "count": 710, + "sum": 1024073 + }, + "resource": "horizontalpodautoscalers", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 6, + "resource": "serviceaccounts", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 1, + "125000": 1, + "2000000": 1, + "250000": 1, + "4000000": 1, + "500000": 1, + "8000000": 1 + }, + "count": 1, + "sum": 3552 + }, + "resource": "limitranges", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "endpoints", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 2, + "resource": "rolebindings", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 1, + "resource": "replicationcontrollers", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "statefulsets", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-dns/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 2941, + "resource": "services", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:attachdetach-controller", + "count": 50, + "resource": "events", + "scope": "namespace", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 1, + "resource": "namespaces", + "scope": "cluster", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 1469, + "resource": "nodes", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 10998, + "resource": "daemonsets", + "scope": "namespace", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 1460, + "resource": "pods", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 21997, + "1000000": 21997, + "125000": 21997, + "2000000": 21997, + "250000": 21997, + "4000000": 21997, + "500000": 21997, + "8000000": 21997 + }, + "count": 21997, + "sum": 33805681 + }, + "resource": "jobs", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 3, + "1000000": 3, + "125000": 2, + "2000000": 3, + "250000": 2, + "4000000": 3, + "500000": 2, + "8000000": 3 + }, + "count": 3, + "sum": 751587 + }, + "resource": "clusterroles", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "cluster-proportional-autoscaler/v1.6.5 (linux/amd64) kubernetes/$Format", + "count": 65893, + "resource": "nodes", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 7, + "1000000": 7, + "125000": 7, + "2000000": 7, + "250000": 7, + "4000000": 7, + "500000": 7, + "8000000": 7 + }, + "count": 7, + "sum": 88537 + }, + "resource": "nodes", + "scope": "cluster", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1468, + "resource": "limitranges", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 22003, + "1000000": 22003, + "125000": 22003, + "2000000": 22003, + "250000": 22003, + "4000000": 22003, + "500000": 22003, + "8000000": 22003 + }, + "count": 22003, + "sum": 23608438 + }, + "resource": "rolebindings", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 1, + "resource": "limitranges", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-dns/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 2947, + "resource": "endpoints", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 7, + "resource": "nodes", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "heapster/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1460, + "resource": "pods", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:persistent-volume-binder", + "count": 1, + "resource": "events", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1469, + "resource": "jobs", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 7, + "1000000": 7, + "125000": 7, + "2000000": 7, + "250000": 7, + "4000000": 7, + "500000": 7, + "8000000": 7 + }, + "count": 7, + "sum": 37113 + }, + "resource": "certificatesigningrequests", + "scope": "cluster", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 43991, + "resource": "clusterroles", + "scope": "cluster", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "GoogleContainerEngine", + "count": 709, + "resource": "replicasets", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1468, + "resource": "replicationcontrollers", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "apiservices", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "GoogleContainerEngine", + "count": 709, + "resource": "statefulsets", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 230098, + "1000000": 230094, + "125000": 230033, + "2000000": 230098, + "250000": 230085, + "4000000": 230098, + "500000": 230091, + "8000000": 230098 + }, + "count": 230098, + "sum": 2438676783 + }, + "resource": "nodes", + "scope": "cluster", + "subresource": "status", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:cloud-provider", + "count": 1, + "resource": "configmaps", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 21965, + "1000000": 21960, + "125000": 21957, + "2000000": 21960, + "250000": 21960, + "4000000": 21960, + "500000": 21960, + "8000000": 21960 + }, + "count": 21965, + "sum": 464443049 + }, + "resource": "services", + "scope": "resource", + "verb": "proxy" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 15, + "1000000": 14, + "125000": 14, + "2000000": 15, + "250000": 14, + "4000000": 15, + "500000": 14, + "8000000": 15 + }, + "count": 15, + "sum": 1450354 + }, + "resource": "deployments", + "scope": "namespace", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "glbc/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1, + "resource": "configmaps", + "scope": "namespace", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:service-controller", + "count": 1, + "resource": "services", + "scope": "namespace", + "subresource": "status", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 65988, + "resource": "deployments", + "scope": "namespace", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1478, + "resource": "persistentvolumeclaims", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 6, + "1000000": 6, + "125000": 6, + "2000000": 6, + "250000": 6, + "4000000": 6, + "500000": 6, + "8000000": 6 + }, + "count": 6, + "sum": 81365 + }, + "resource": "daemonsets", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 15, + "resource": "pods", + "scope": "namespace", + "subresource": "log", + "verb": "CONNECT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 29194, + "1000000": 29194, + "125000": 29194, + "2000000": 29194, + "250000": 29194, + "4000000": 29194, + "500000": 29194, + "8000000": 29194 + }, + "count": 29194, + "sum": 44608509 + }, + "resource": "namespaces", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 1, + "125000": 1, + "2000000": 1, + "250000": 1, + "4000000": 1, + "500000": 1, + "8000000": 1 + }, + "count": 1, + "sum": 2145 + }, + "resource": "configmaps", + "scope": "namespace", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 1462, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 1462, + "sum": 659801007214 + }, + "resource": "configmaps", + "scope": "namespace", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 711, + "1000000": 711, + "125000": 711, + "2000000": 711, + "250000": 711, + "4000000": 711, + "500000": 711, + "8000000": 711 + }, + "count": 711, + "sum": 1029136 + }, + "resource": "statefulsets", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 1476, + "resource": "replicationcontrollers", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 5, + "resource": "daemonsets", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "GoogleCloudConsole", + "count": 20, + "resource": "nodes", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 31, + "resource": "pods", + "scope": "namespace", + "subresource": "status", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 3, + "resource": "pods", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "node-problem-detector/v1.4.0 (linux/amd64) kubernetes/$Format", + "count": 1, + "resource": "events", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 65989, + "1000000": 65989, + "125000": 65989, + "2000000": 65989, + "250000": 65989, + "4000000": 65989, + "500000": 65989, + "8000000": 65989 + }, + "count": 65989, + "sum": 227196113 + }, + "resource": "deployments", + "scope": "namespace", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 55, + "1000000": 55, + "125000": 54, + "2000000": 55, + "250000": 55, + "4000000": 55, + "500000": 55, + "8000000": 55 + }, + "count": 55, + "sum": 744329 + }, + "resource": "replicasets", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "configmaps", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 16, + "resource": "secrets", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "dashboard/v1.8.0", + "count": 1, + "resource": "secrets", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 2, + "1000000": 2, + "125000": 2, + "2000000": 2, + "250000": 2, + "4000000": 2, + "500000": 2, + "8000000": 2 + }, + "count": 2, + "sum": 10407 + }, + "resource": "events", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "persistentvolumes", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 43994, + "1000000": 43994, + "125000": 43994, + "2000000": 43994, + "250000": 43994, + "4000000": 43994, + "500000": 43994, + "8000000": 43994 + }, + "count": 43994, + "sum": 116859281 + }, + "resource": "deployments", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1478, + "resource": "daemonsets", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 4384, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 4384, + "sum": 1978039440788 + }, + "resource": "deployments", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 21997, + "resource": "pods", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 2, + "resource": "clusterroles", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1450, + "resource": "rolebindings", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 1, + "resource": "namespaces", + "scope": "cluster", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 388, + "1000000": 388, + "125000": 386, + "2000000": 388, + "250000": 388, + "4000000": 388, + "500000": 388, + "8000000": 388 + }, + "count": 388, + "sum": 4031187 + }, + "resource": "events", + "scope": "namespace", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 16, + "1000000": 15, + "125000": 15, + "2000000": 16, + "250000": 15, + "4000000": 16, + "500000": 15, + "8000000": 16 + }, + "count": 16, + "sum": 1437944 + }, + "resource": "jobs", + "scope": "namespace", + "verb": "DELETE" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 13, + "resource": "events", + "scope": "namespace", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 7286, + "1000000": 7285, + "125000": 7259, + "2000000": 7285, + "250000": 7275, + "4000000": 7285, + "500000": 7284, + "8000000": 7285 + }, + "count": 7286, + "sum": 79006880 + }, + "resource": "pods", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "rescheduler/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1, + "resource": "nodes", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "cluster-proportional-autoscaler/v1.6.5 (linux/amd64) kubernetes/$Format", + "count": 1, + "resource": "configmaps", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 710, + "1000000": 710, + "125000": 710, + "2000000": 710, + "250000": 710, + "4000000": 710, + "500000": 710, + "8000000": 710 + }, + "count": 710, + "sum": 1057701 + }, + "resource": "podtemplates", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 2, + "resource": "pods", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 1, + "sum": 60000198 + }, + "resource": "configmaps", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-proxy/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 7, + "resource": "services", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:deployment-controller", + "count": 2, + "resource": "replicasets", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 712, + "1000000": 712, + "125000": 712, + "2000000": 712, + "250000": 712, + "4000000": 712, + "500000": 712, + "8000000": 712 + }, + "count": 712, + "sum": 1102127 + }, + "resource": "ingresses", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 14, + "resource": "replicasets", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 1, + "resource": "services", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 2, + "resource": "rolebindings", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 1, + "125000": 1, + "2000000": 1, + "250000": 1, + "4000000": 1, + "500000": 1, + "8000000": 1 + }, + "count": 1, + "sum": 104 + }, + "resource": "apiservices", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 73, + "resource": "serviceaccounts", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 20, + "resource": "apiservices", + "scope": "cluster", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "pods", + "scope": "namespace", + "subresource": "status", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 1465, + "resource": "replicasets", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "glbc/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 15, + "resource": "services", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 3, + "1000000": 2, + "125000": 2, + "2000000": 3, + "250000": 2, + "4000000": 3, + "500000": 2, + "8000000": 3 + }, + "count": 3, + "sum": 1678278 + }, + "resource": "clusterrolebindings", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 4, + "resource": "services", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 22004, + "1000000": 22004, + "125000": 22004, + "2000000": 22004, + "250000": 22004, + "4000000": 22004, + "500000": 22004, + "8000000": 22004 + }, + "count": 22004, + "sum": 23746483 + }, + "resource": "roles", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 1, + "resource": "pods", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 2, + "resource": "deployments", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 6, + "1000000": 6, + "125000": 6, + "2000000": 6, + "250000": 6, + "4000000": 6, + "500000": 6, + "8000000": 6 + }, + "count": 6, + "sum": 10013 + }, + "resource": "controllerrevisions", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "GoogleContainerEngine", + "count": 709, + "resource": "daemonsets", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 1464, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 1464, + "sum": 659859975068 + }, + "resource": "podtemplates", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 17332, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 17332, + "sum": 10380663647634 + }, + "resource": "pods", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 2, + "resource": "nodes", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 3, + "resource": "serviceaccounts", + "scope": "namespace", + "verb": "DELETE" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 21997, + "1000000": 21997, + "125000": 21997, + "2000000": 21997, + "250000": 21997, + "4000000": 21997, + "500000": 21997, + "8000000": 21997 + }, + "count": 21997, + "sum": 29995607 + }, + "resource": "persistentvolumeclaims", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "configmaps", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "roles", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "gke-certificates-controller/v1.7.0 (linux/amd64) kubernetes/6b9ded1/certificate-controller", + "count": 7, + "resource": "certificatesigningrequests", + "scope": "cluster", + "subresource": "status", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/controller-manager", + "count": 23, + "resource": "serviceaccounts", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "gke-certificates-controller/v1.7.0 (linux/amd64) kubernetes/6b9ded1/certificate-controller", + "count": 1, + "resource": "certificatesigningrequests", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "dashboard/v1.8.0", + "count": 4, + "resource": "secrets", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1473, + "resource": "serviceaccounts", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:attachdetach-controller", + "count": 2, + "resource": "nodes", + "scope": "cluster", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 66815, + "1000000": 66815, + "125000": 66815, + "2000000": 66815, + "250000": 66815, + "4000000": 66815, + "500000": 66815, + "8000000": 66815 + }, + "count": 66815, + "sum": 93487208 + }, + "resource": "pods", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 8, + "1000000": 8, + "125000": 8, + "2000000": 8, + "250000": 8, + "4000000": 8, + "500000": 8, + "8000000": 8 + }, + "count": 8, + "sum": 27618 + }, + "resource": "rolebindings", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "replicationcontrollers", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 88021, + "1000000": 88021, + "125000": 88021, + "2000000": 88021, + "250000": 88021, + "4000000": 88021, + "500000": 88021, + "8000000": 88021 + }, + "count": 88021, + "sum": 94043104 + }, + "resource": "clusterrolebindings", + "scope": "cluster", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 27, + "1000000": 27, + "125000": 27, + "2000000": 27, + "250000": 27, + "4000000": 27, + "500000": 27, + "8000000": 27 + }, + "count": 27, + "sum": 149618 + }, + "resource": "replicasets", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 11023, + "resource": "resourcequotas", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1467, + "resource": "cronjobs", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 2928, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 2928, + "sum": 1319357064565 + }, + "resource": "statefulsets", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 2, + "1000000": 1, + "125000": 1, + "2000000": 2, + "250000": 1, + "4000000": 2, + "500000": 1, + "8000000": 2 + }, + "count": 2, + "sum": 1761331 + }, + "resource": "rolebindings", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1478, + "resource": "clusterrolebindings", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 1, + "resource": "configmaps", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 21997, + "resource": "daemonsets", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 8, + "1000000": 8, + "125000": 8, + "2000000": 8, + "250000": 8, + "4000000": 8, + "500000": 8, + "8000000": 8 + }, + "count": 8, + "sum": 80513 + }, + "resource": "services", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 1, + "125000": 1, + "2000000": 1, + "250000": 1, + "4000000": 1, + "500000": 1, + "8000000": 1 + }, + "count": 1, + "sum": 5655 + }, + "resource": "jobs", + "scope": "namespace", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "GoogleContainerEngine", + "count": 709, + "resource": "poddisruptionbudgets", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 6, + "resource": "rolebindings", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "secrets", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 109953, + "1000000": 109952, + "125000": 109950, + "2000000": 109953, + "250000": 109950, + "4000000": 109953, + "500000": 109951, + "8000000": 109953 + }, + "count": 109953, + "sum": 142476285 + }, + "resource": "services", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 713, + "1000000": 713, + "125000": 713, + "2000000": 713, + "250000": 713, + "4000000": 713, + "500000": 713, + "8000000": 713 + }, + "count": 713, + "sum": 1783238 + }, + "resource": "daemonsets", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 1, + "resource": "replicasets", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 7, + "resource": "configmaps", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "services", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 168, + "1000000": 168, + "125000": 167, + "2000000": 168, + "250000": 168, + "4000000": 168, + "500000": 168, + "8000000": 168 + }, + "count": 168, + "sum": 3433972 + }, + "resource": "pods", + "scope": "namespace", + "verb": "DELETE" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/leader-election", + "count": 1, + "resource": "endpoints", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 7337, + "resource": "services", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "rescheduler/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 2, + "resource": "pods", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 13, + "1000000": 13, + "125000": 12, + "2000000": 13, + "250000": 13, + "4000000": 13, + "500000": 13, + "8000000": 13 + }, + "count": 13, + "sum": 133887 + }, + "resource": "endpoints", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 4436, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 4436, + "sum": 1978507486290 + }, + "resource": "resourcequotas", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 18, + "1000000": 18, + "125000": 18, + "2000000": 18, + "250000": 18, + "4000000": 18, + "500000": 18, + "8000000": 18 + }, + "count": 18, + "sum": 134182 + }, + "resource": "limitranges", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 43979, + "resource": "nodes", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 91, + "resource": "pods", + "scope": "namespace", + "subresource": "binding", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:job-controller", + "count": 20, + "resource": "pods", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 4, + "resource": "replicasets", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 3, + "resource": "clusterrolebindings", + "scope": "cluster", + "verb": "DELETE" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:generic-garbage-collector", + "count": 1, + "resource": "networkpolicies", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "pod_nanny/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1482, + "resource": "nodes", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 43994, + "resource": "deployments", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 10998, + "resource": "secrets", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1471, + "resource": "persistentvolumes", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1464, + "resource": "persistentvolumes", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 4, + "resource": "services", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 38, + "1000000": 38, + "125000": 38, + "2000000": 38, + "250000": 38, + "4000000": 38, + "500000": 38, + "8000000": 38 + }, + "count": 38, + "sum": 137225 + }, + "resource": "serviceaccounts", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 7, + "resource": "nodes", + "scope": "cluster", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1482, + "resource": "roles", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 15, + "1000000": 15, + "125000": 15, + "2000000": 15, + "250000": 15, + "4000000": 15, + "500000": 15, + "8000000": 15 + }, + "count": 15, + "sum": 213078 + }, + "resource": "nodes", + "scope": "cluster", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 2, + "resource": "namespaces", + "scope": "cluster", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 2938, + "resource": "replicasets", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 21997, + "1000000": 21997, + "125000": 21997, + "2000000": 21997, + "250000": 21997, + "4000000": 21997, + "500000": 21997, + "8000000": 21997 + }, + "count": 21997, + "sum": 38610514 + }, + "resource": "endpoints", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:daemon-set-controller", + "count": 41, + "resource": "events", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller", + "count": 5, + "resource": "pods", + "scope": "namespace", + "verb": "DELETE" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 22024, + "1000000": 22024, + "125000": 22023, + "2000000": 22024, + "250000": 22024, + "4000000": 22024, + "500000": 22024, + "8000000": 22024 + }, + "count": 22024, + "sum": 72887687 + }, + "resource": "secrets", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "serviceaccounts", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1478, + "resource": "storageclasses", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1456, + "resource": "namespaces", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 15, + "1000000": 15, + "125000": 15, + "2000000": 15, + "250000": 15, + "4000000": 15, + "500000": 15, + "8000000": 15 + }, + "count": 15, + "sum": 171645 + }, + "resource": "replicasets", + "scope": "namespace", + "verb": "DELETE" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:persistent-volume-binder", + "count": 1, + "resource": "persistentvolumes", + "scope": "cluster", + "subresource": "status", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 713, + "1000000": 713, + "125000": 713, + "2000000": 713, + "250000": 713, + "4000000": 713, + "500000": 713, + "8000000": 713 + }, + "count": 713, + "sum": 1104285 + }, + "resource": "replicationcontrollers", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:service-controller", + "count": 1, + "resource": "events", + "scope": "namespace", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "rescheduler/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1474, + "resource": "nodes", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/tokens-controller", + "count": 38, + "resource": "serviceaccounts", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 19, + "1000000": 18, + "125000": 18, + "2000000": 19, + "250000": 18, + "4000000": 19, + "500000": 18, + "8000000": 19 + }, + "count": 19, + "sum": 1525720 + }, + "resource": "jobs", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 202551, + "1000000": 202551, + "125000": 202550, + "2000000": 202551, + "250000": 202551, + "4000000": 202551, + "500000": 202551, + "8000000": 202551 + }, + "count": 202551, + "sum": 56134705 + }, + "resource": "secrets", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "pod_nanny/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1, + "resource": "deployments", + "scope": "namespace", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 65986, + "resource": "serviceaccounts", + "scope": "namespace", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1465, + "resource": "apiservices", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 22013, + "1000000": 22013, + "125000": 22013, + "2000000": 22013, + "250000": 22013, + "4000000": 22013, + "500000": 22013, + "8000000": 22013 + }, + "count": 22013, + "sum": 49092249 + }, + "resource": "replicasets", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "rolebindings", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/controller-manager", + "count": 27, + "resource": "tokenreviews", + "scope": "cluster", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "GoogleContainerEngine", + "count": 709, + "resource": "persistentvolumeclaims", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 1465, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 1465, + "sum": 659555023618 + }, + "resource": "apiservices", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "Go-http-client/2.0", + "count": 14, + "resource": "pods", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:deployment-controller", + "count": 49, + "resource": "events", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller", + "count": 17, + "resource": "pods", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 30, + "resource": "clusterrolebindings", + "scope": "cluster", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "clusterrolebindings", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:job-controller", + "count": 21, + "resource": "events", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1476, + "resource": "secrets", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 1, + "125000": 1, + "2000000": 1, + "250000": 1, + "4000000": 1, + "500000": 1, + "8000000": 1 + }, + "count": 1, + "sum": 1192 + }, + "resource": "configmaps", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 7, + "resource": "clusterrolebindings", + "scope": "cluster", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1258, + "resource": "events", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 10999, + "1000000": 10999, + "125000": 10999, + "2000000": 10999, + "250000": 10999, + "4000000": 10999, + "500000": 10999, + "8000000": 10999 + }, + "count": 10999, + "sum": 28899398 + }, + "resource": "storageclasses", + "scope": "cluster", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 7, + "resource": "services", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "GoogleCloudConsole", + "count": 7, + "resource": "persistentvolumes", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 7, + "resource": "roles", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 6, + "resource": "serviceaccounts", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 1, + "sum": 60000399 + }, + "resource": "jobs", + "verb": "UPDATE" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "GoogleContainerEngine", + "count": 14, + "resource": "pods", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 733671, + "1000000": 733664, + "125000": 733634, + "2000000": 733671, + "250000": 733639, + "4000000": 733671, + "500000": 733649, + "8000000": 733671 + }, + "count": 733671, + "sum": 834805253 + }, + "resource": "endpoints", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 1459, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 1459, + "sum": 659831109566 + }, + "resource": "horizontalpodautoscalers", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 2961, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 2961, + "sum": 1319737924064 + }, + "resource": "clusterrolebindings", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1478, + "resource": "endpoints", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 21995, + "1000000": 21995, + "125000": 21995, + "2000000": 21995, + "250000": 21995, + "4000000": 21995, + "500000": 21995, + "8000000": 21995 + }, + "count": 21995, + "sum": 41165835 + }, + "resource": "rolebindings", + "scope": "namespace", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 45, + "1000000": 45, + "125000": 45, + "2000000": 45, + "250000": 45, + "4000000": 45, + "500000": 45, + "8000000": 45 + }, + "count": 45, + "sum": 242600 + }, + "resource": "clusterrolebindings", + "scope": "cluster", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1472, + "resource": "pods", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 1, + "resource": "pods", + "scope": "namespace", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 4, + "1000000": 4, + "125000": 3, + "2000000": 4, + "250000": 3, + "4000000": 4, + "500000": 3, + "8000000": 4 + }, + "count": 4, + "sum": 695137 + }, + "resource": "resourcequotas", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller", + "count": 70, + "resource": "pods", + "scope": "namespace", + "subresource": "status", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 10998, + "resource": "storageclasses", + "scope": "cluster", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 711, + "1000000": 710, + "125000": 710, + "2000000": 711, + "250000": 710, + "4000000": 711, + "500000": 710, + "8000000": 711 + }, + "count": 711, + "sum": 3695657 + }, + "resource": "serviceaccounts", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1483, + "resource": "configmaps", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 10, + "resource": "subjectaccessreviews", + "scope": "cluster", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 38, + "1000000": 38, + "125000": 38, + "2000000": 38, + "250000": 38, + "4000000": 38, + "500000": 38, + "8000000": 38 + }, + "count": 38, + "sum": 390430 + }, + "resource": "replicasets", + "scope": "namespace", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 710, + "1000000": 710, + "125000": 710, + "2000000": 710, + "250000": 710, + "4000000": 710, + "500000": 710, + "8000000": 710 + }, + "count": 710, + "sum": 1012232 + }, + "resource": "poddisruptionbudgets", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 15, + "resource": "pods", + "scope": "namespace", + "verb": "DELETE" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 9, + "1000000": 9, + "125000": 9, + "2000000": 9, + "250000": 9, + "4000000": 9, + "500000": 9, + "8000000": 9 + }, + "count": 9, + "sum": 27124 + }, + "resource": "roles", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 7, + "1000000": 7, + "125000": 7, + "2000000": 7, + "250000": 7, + "4000000": 7, + "500000": 7, + "8000000": 7 + }, + "count": 7, + "sum": 24266 + }, + "resource": "certificatesigningrequests", + "scope": "cluster", + "subresource": "status", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 2, + "resource": "deployments", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "cluster-proportional-autoscaler/v1.6.5 (linux/amd64) kubernetes/$Format", + "count": 1, + "resource": "deployments", + "scope": "namespace", + "subresource": "scale", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 2949, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 2949, + "sum": 1319045104600 + }, + "resource": "persistentvolumeclaims", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 3, + "1000000": 3, + "125000": 3, + "2000000": 3, + "250000": 3, + "4000000": 3, + "500000": 3, + "8000000": 3 + }, + "count": 3, + "sum": 16257 + }, + "resource": "clusterroles", + "scope": "cluster", + "verb": "DELETE" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "GoogleContainerEngine", + "count": 709, + "resource": "podtemplates", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "nodes", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 2, + "resource": "secrets", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 43992, + "resource": "services", + "scope": "namespace", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "certificatesigningrequests", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "event-exporter/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 2599, + "resource": "events", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1483, + "resource": "clusterrolebindings", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 21965, + "1000000": 21960, + "125000": 21957, + "2000000": 21960, + "250000": 21960, + "4000000": 21960, + "500000": 21960, + "8000000": 21960 + }, + "count": 21965, + "sum": 465256128 + }, + "resource": "services", + "scope": "resource", + "verb": "PROXY" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 16, + "1000000": 16, + "125000": 15, + "2000000": 16, + "250000": 15, + "4000000": 16, + "500000": 15, + "8000000": 16 + }, + "count": 16, + "sum": 793020 + }, + "resource": "namespaces", + "scope": "cluster", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1468, + "resource": "clusterroles", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:deployment-controller", + "count": 22, + "resource": "replicasets", + "scope": "namespace", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 51, + "1000000": 51, + "125000": 50, + "2000000": 51, + "250000": 51, + "4000000": 51, + "500000": 51, + "8000000": 51 + }, + "count": 51, + "sum": 453911 + }, + "resource": "clusterroles", + "scope": "cluster", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "endpoints", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 21997, + "resource": "persistentvolumeclaims", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:persistent-volume-binder", + "count": 2, + "resource": "persistentvolumeclaims", + "scope": "namespace", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 713, + "1000000": 713, + "125000": 713, + "2000000": 713, + "250000": 713, + "4000000": 713, + "500000": 713, + "8000000": 713 + }, + "count": 713, + "sum": 2461062 + }, + "resource": "deployments", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:generic-garbage-collector", + "count": 6, + "resource": "controllerrevisions", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "rescheduler/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 2936, + "resource": "pods", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-proxy/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 7, + "resource": "nodes", + "scope": "cluster", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1470, + "resource": "certificatesigningrequests", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1464, + "resource": "secrets", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 1472, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 1472, + "sum": 659755004696 + }, + "resource": "poddisruptionbudgets", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 1, + "125000": 1, + "2000000": 1, + "250000": 1, + "4000000": 1, + "500000": 1, + "8000000": 1 + }, + "count": 1, + "sum": 298 + }, + "resource": "controllerrevisions", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 43991, + "1000000": 43991, + "125000": 43991, + "2000000": 43991, + "250000": 43991, + "4000000": 43991, + "500000": 43991, + "8000000": 43991 + }, + "count": 43991, + "sum": 79881493 + }, + "resource": "clusterroles", + "scope": "cluster", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 6, + "1000000": 6, + "125000": 6, + "2000000": 6, + "250000": 6, + "4000000": 6, + "500000": 6, + "8000000": 6 + }, + "count": 6, + "sum": 40480 + }, + "resource": "controllerrevisions", + "scope": "namespace", + "verb": "DELETE" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 9, + "1000000": 9, + "125000": 9, + "2000000": 9, + "250000": 9, + "4000000": 9, + "500000": 9, + "8000000": 9 + }, + "count": 9, + "sum": 24784 + }, + "resource": "certificatesigningrequests", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 21997, + "1000000": 21997, + "125000": 21997, + "2000000": 21997, + "250000": 21997, + "4000000": 21997, + "500000": 21997, + "8000000": 21997 + }, + "count": 21997, + "sum": 29407747 + }, + "resource": "ingresses", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 21997, + "resource": "persistentvolumes", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 11, + "resource": "pods", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 8067, + "1000000": 8067, + "125000": 8066, + "2000000": 8067, + "250000": 8066, + "4000000": 8067, + "500000": 8067, + "8000000": 8067 + }, + "count": 8067, + "sum": 16999211 + }, + "resource": "services", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 2, + "resource": "events", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 1, + "resource": "jobs", + "verb": "UPDATE" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/leader-election", + "count": 328381, + "resource": "endpoints", + "scope": "namespace", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:generic-garbage-collector", + "count": 6, + "resource": "controllerrevisions", + "scope": "namespace", + "verb": "DELETE" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "GoogleContainerEngine", + "count": 7198, + "resource": "pods", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 2, + "resource": "daemonsets", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 43992, + "1000000": 43992, + "125000": 43992, + "2000000": 43992, + "250000": 43992, + "4000000": 43992, + "500000": 43992, + "8000000": 43992 + }, + "count": 43992, + "sum": 112112515 + }, + "resource": "services", + "scope": "namespace", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:generic-garbage-collector", + "count": 1468, + "resource": "networkpolicies", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 2, + "resource": "daemonsets", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1476, + "resource": "rolebindings", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "poddisruptionbudgets", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 17686, + "1000000": 0, + "125000": 0, + "2000000": 1, + "250000": 0, + "4000000": 1, + "500000": 0, + "8000000": 2 + }, + "count": 17686, + "sum": 7918564532837 + }, + "resource": "nodes", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 66026, + "1000000": 66025, + "125000": 66025, + "2000000": 66026, + "250000": 66025, + "4000000": 66026, + "500000": 66025, + "8000000": 66026 + }, + "count": 66026, + "sum": 98827970 + }, + "resource": "deployments", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 65930, + "1000000": 65930, + "125000": 65929, + "2000000": 65930, + "250000": 65930, + "4000000": 65930, + "500000": 65930, + "8000000": 65930 + }, + "count": 65930, + "sum": 88828794 + }, + "resource": "cronjobs", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 40, + "1000000": 40, + "125000": 40, + "2000000": 40, + "250000": 40, + "4000000": 40, + "500000": 40, + "8000000": 40 + }, + "count": 40, + "sum": 408553 + }, + "resource": "jobs", + "scope": "namespace", + "subresource": "status", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "pod_nanny/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 65696, + "resource": "pods", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 1, + "resource": "nodes", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 7, + "1000000": 7, + "125000": 7, + "2000000": 7, + "250000": 7, + "4000000": 7, + "500000": 7, + "8000000": 7 + }, + "count": 7, + "sum": 41871 + }, + "resource": "certificatesigningrequests", + "scope": "cluster", + "subresource": "approval", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 21996, + "resource": "configmaps", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "secrets", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 1, + "resource": "deployments", + "scope": "namespace", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "limitranges", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 2, + "resource": "roles", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 21997, + "resource": "services", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:pod-garbage-collector", + "count": 12, + "resource": "pods", + "scope": "namespace", + "verb": "DELETE" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 1131, + "1000000": 1131, + "125000": 1131, + "2000000": 1131, + "250000": 1131, + "4000000": 1131, + "500000": 1131, + "8000000": 1131 + }, + "count": 1131, + "sum": 2194490 + }, + "resource": "events", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 1467, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 1467, + "sum": 659673062825 + }, + "resource": "cronjobs", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:replicaset-controller", + "count": 45, + "resource": "pods", + "scope": "namespace", + "verb": "DELETE" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "event-exporter/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1131, + "resource": "events", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "GoogleContainerEngine", + "count": 709, + "resource": "replicationcontrollers", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 2950, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 2950, + "sum": 1319502090736 + }, + "resource": "roles", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/controller-manager", + "count": 27, + "resource": "secrets", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "podtemplates", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller", + "count": 28, + "resource": "events", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 1468, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 1468, + "sum": 660607341894 + }, + "resource": "pods", + "scope": "namespace", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 47, + "resource": "pods", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "podsecuritypolicies", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 15, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 1 + }, + "count": 15, + "sum": 9995258313 + }, + "resource": "pods", + "scope": "namespace", + "subresource": "log", + "verb": "CONNECT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "storageclasses", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1464, + "resource": "podtemplates", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 3, + "1000000": 3, + "125000": 3, + "2000000": 3, + "250000": 3, + "4000000": 3, + "500000": 3, + "8000000": 3 + }, + "count": 3, + "sum": 21094 + }, + "resource": "daemonsets", + "scope": "namespace", + "verb": "DELETE" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "networkpolicies", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 2, + "resource": "resourcequotas", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:deployment-controller", + "count": 60, + "resource": "deployments", + "scope": "namespace", + "subresource": "status", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 714, + "1000000": 714, + "125000": 714, + "2000000": 714, + "250000": 714, + "4000000": 714, + "500000": 714, + "8000000": 714 + }, + "count": 714, + "sum": 2514414 + }, + "resource": "replicasets", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 1464, + "resource": "statefulsets", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 711, + "1000000": 711, + "125000": 711, + "2000000": 711, + "250000": 711, + "4000000": 711, + "500000": 711, + "8000000": 711 + }, + "count": 711, + "sum": 1286718 + }, + "resource": "persistentvolumeclaims", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "GoogleContainerEngine", + "count": 7190, + "resource": "namespaces", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "heapster/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 15, + "resource": "nodes", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 1, + "sum": 60000155 + }, + "resource": "nodes", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1474, + "resource": "endpoints", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:certificate-controller", + "count": 7, + "resource": "certificatesigningrequests", + "scope": "cluster", + "subresource": "approval", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 11, + "resource": "nodes", + "scope": "cluster", + "subresource": "status", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 2928, + "resource": "deployments", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "glbc/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1, + "resource": "pods", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/controller-manager", + "count": 23, + "resource": "namespaces", + "scope": "cluster", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 10999, + "resource": "endpoints", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 5876, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 5876, + "sum": 2637626661333 + }, + "resource": "replicasets", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:replicaset-controller", + "count": 34, + "resource": "pods", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 2, + "resource": "pods", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 21997, + "1000000": 21997, + "125000": 21997, + "2000000": 21997, + "250000": 21997, + "4000000": 21997, + "500000": 21997, + "8000000": 21997 + }, + "count": 21997, + "sum": 31133138 + }, + "resource": "replicationcontrollers", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "clusterroles", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "GoogleContainerEngine", + "count": 709, + "resource": "jobs", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1461, + "resource": "serviceaccounts", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "pods", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 1, + "sum": 61438916 + }, + "resource": "pods", + "scope": "namespace", + "subresource": "exec", + "verb": "CONNECT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1459, + "resource": "horizontalpodautoscalers", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-proxy/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 7, + "resource": "events", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "GoogleContainerEngine", + "count": 4, + "resource": "nodes", + "scope": "cluster", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:replicaset-controller", + "count": 123, + "resource": "events", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1467, + "resource": "customresourcedefinitions", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 4406, + "1000000": 1, + "125000": 1, + "2000000": 1, + "250000": 1, + "4000000": 1, + "500000": 1, + "8000000": 1 + }, + "count": 4406, + "sum": 1979024165553 + }, + "resource": "persistentvolumes", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 2, + "resource": "clusterrolebindings", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 2599, + "1000000": 1129, + "125000": 1128, + "2000000": 1129, + "250000": 1129, + "4000000": 1129, + "500000": 1129, + "8000000": 1129 + }, + "count": 2599, + "sum": 658396349345 + }, + "resource": "events", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 2939, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 2939, + "sum": 1319265103606 + }, + "resource": "storageclasses", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 2, + "1000000": 1, + "125000": 1, + "2000000": 1, + "250000": 1, + "4000000": 2, + "500000": 1, + "8000000": 2 + }, + "count": 2, + "sum": 2306787 + }, + "resource": "roles", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 1, + "resource": "daemonsets", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 65986, + "1000000": 65986, + "125000": 65986, + "2000000": 65986, + "250000": 65986, + "4000000": 65986, + "500000": 65986, + "8000000": 65986 + }, + "count": 65986, + "sum": 112424509 + }, + "resource": "serviceaccounts", + "scope": "namespace", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "configmaps", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:persistent-volume-binder", + "count": 1, + "resource": "persistentvolumes", + "scope": "cluster", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 30, + "resource": "clusterrolebindings", + "scope": "cluster", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "endpoints", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 1, + "125000": 1, + "2000000": 1, + "250000": 1, + "4000000": 1, + "500000": 1, + "8000000": 1 + }, + "count": 1, + "sum": 2419 + }, + "resource": "persistentvolumeclaims", + "scope": "namespace", + "subresource": "status", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:ttl-controller", + "count": 7, + "resource": "nodes", + "scope": "cluster", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 4428, + "resource": "pods", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 3, + "1000000": 3, + "125000": 3, + "2000000": 3, + "250000": 3, + "4000000": 3, + "500000": 3, + "8000000": 3 + }, + "count": 3, + "sum": 14251 + }, + "resource": "serviceaccounts", + "scope": "namespace", + "verb": "DELETE" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "rescheduler/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1, + "resource": "pods", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1470, + "resource": "pods", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 21997, + "resource": "replicasets", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 2940, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 2940, + "sum": 1319248184423 + }, + "resource": "secrets", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 2, + "resource": "roles", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 2, + "1000000": 2, + "125000": 2, + "2000000": 2, + "250000": 2, + "4000000": 2, + "500000": 2, + "8000000": 2 + }, + "count": 2, + "sum": 6185 + }, + "resource": "persistentvolumeclaims", + "scope": "namespace", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 21997, + "resource": "configmaps", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 1, + "resource": "jobs", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 87994, + "1000000": 87994, + "125000": 87991, + "2000000": 87994, + "250000": 87993, + "4000000": 87994, + "500000": 87994, + "8000000": 87994 + }, + "count": 87994, + "sum": 95827906 + }, + "resource": "namespaces", + "scope": "cluster", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 13, + "resource": "namespaces", + "scope": "cluster", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "glbc/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1465, + "resource": "pods", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 7, + "resource": "roles", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1456, + "resource": "deployments", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller", + "count": 2, + "resource": "events", + "scope": "namespace", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "GoogleCloudConsole", + "count": 7, + "resource": "storageclasses", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "GoogleCloudConsole", + "count": 20, + "resource": "pods", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 1, + "resource": "statefulsets", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "pod_nanny/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 5, + "resource": "nodes", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "resourcequotas", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:deployment-controller", + "count": 27, + "resource": "replicasets", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "resourcequotas", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 2, + "1000000": 2, + "125000": 2, + "2000000": 2, + "250000": 2, + "4000000": 2, + "500000": 2, + "8000000": 2 + }, + "count": 2, + "sum": 770 + }, + "resource": "networkpolicies", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "GoogleContainerEngine", + "count": 709, + "resource": "services", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1483, + "resource": "services", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 8, + "resource": "clusterrolebindings", + "scope": "cluster", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 7195, + "1000000": 7195, + "125000": 0, + "2000000": 7195, + "250000": 0, + "4000000": 7195, + "500000": 1419, + "8000000": 7195 + }, + "count": 7195, + "sum": 3270551868 + }, + "resource": "componentstatuses", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 17682, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 17682, + "sum": 7916402902308 + }, + "resource": "services", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "heapster/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 5, + "resource": "namespaces", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 1, + "resource": "replicasets", + "scope": "namespace", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 3, + "1000000": 3, + "125000": 3, + "2000000": 3, + "250000": 3, + "4000000": 3, + "500000": 3, + "8000000": 3 + }, + "count": 3, + "sum": 19136 + }, + "resource": "secrets", + "scope": "namespace", + "verb": "DELETE" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller", + "count": 1, + "resource": "nodes", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:daemon-set-controller", + "count": 39, + "resource": "pods", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 2, + "1000000": 1, + "125000": 1, + "2000000": 2, + "250000": 1, + "4000000": 2, + "500000": 1, + "8000000": 2 + }, + "count": 2, + "sum": 1806364 + }, + "resource": "secrets", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/leader-election", + "count": 1, + "resource": "endpoints", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1, + "resource": "endpoints", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 21997, + "resource": "ingresses", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 6, + "resource": "deployments", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "Go-http-client/2.0", + "count": 20, + "resource": "pods", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:node-controller", + "count": 9, + "resource": "nodes", + "scope": "cluster", + "subresource": "status", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 3, + "resource": "pods", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "dashboard/v1.8.0", + "count": 10, + "resource": "services", + "scope": "resource", + "verb": "PROXY" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/leader-election", + "count": 328348, + "resource": "endpoints", + "scope": "namespace", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 7, + "resource": "pods", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 2944, + "1000000": 7, + "125000": 7, + "2000000": 7, + "250000": 7, + "4000000": 7, + "500000": 7, + "8000000": 7 + }, + "count": 2944, + "sum": 1319072288505 + }, + "resource": "certificatesigningrequests", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 1459, + "resource": "clusterroles", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "horizontalpodautoscalers", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 2926, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 2926, + "sum": 1319580992038 + }, + "resource": "rolebindings", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 444870, + "1000000": 444869, + "125000": 444861, + "2000000": 444869, + "250000": 444863, + "4000000": 444869, + "500000": 444866, + "8000000": 444869 + }, + "count": 444870, + "sum": 1016382203 + }, + "resource": "configmaps", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 4412, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 4412, + "sum": 1978402804959 + }, + "resource": "daemonsets", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 1, + "resource": "services", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 21997, + "resource": "namespaces", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "pod_nanny/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 1, + "resource": "deployments", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-apiserver/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 41, + "resource": "clusterroles", + "scope": "cluster", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:daemon-set-controller", + "count": 58, + "resource": "events", + "scope": "namespace", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 2947, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 2947, + "sum": 1319410001462 + }, + "resource": "networkpolicies", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 9, + "1000000": 9, + "125000": 8, + "2000000": 9, + "250000": 9, + "4000000": 9, + "500000": 9, + "8000000": 9 + }, + "count": 9, + "sum": 218590 + }, + "resource": "storageclasses", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 1471, + "resource": "persistentvolumes", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/tokens-controller", + "count": 38, + "resource": "serviceaccounts", + "scope": "namespace", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:cloud-provider", + "count": 1462, + "resource": "configmaps", + "scope": "namespace", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 1, + "1000000": 1, + "125000": 1, + "2000000": 1, + "250000": 1, + "4000000": 1, + "500000": 1, + "8000000": 1 + }, + "count": 1, + "sum": 4441 + }, + "resource": "services", + "scope": "namespace", + "subresource": "status", + "verb": "PUT" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.4 (linux/amd64) kubernetes/d6f4332", + "count": 21997, + "resource": "endpoints", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-state-metrics/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 2, + "resource": "replicasets", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-dns/v0.0.0 (linux/amd64) kubernetes/$Format", + "count": 4, + "resource": "endpoints", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "Go-http-client/2.0", + "count": 1165, + "resource": "pods", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 11099, + "1000000": 11099, + "125000": 11099, + "2000000": 11099, + "250000": 11099, + "4000000": 11099, + "500000": 11099, + "8000000": 11099 + }, + "count": 11099, + "sum": 17674492 + }, + "resource": "daemonsets", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 1469, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 1469, + "sum": 659704930318 + }, + "resource": "jobs", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 4414, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 4414, + "sum": 1978079922988 + }, + "resource": "replicationcontrollers", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 1, + "resource": "persistentvolumeclaims", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/leader-election", + "count": 1, + "resource": "endpoints", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 21997, + "1000000": 21997, + "125000": 21997, + "2000000": 21997, + "250000": 21997, + "4000000": 21997, + "500000": 21997, + "8000000": 21997 + }, + "count": 21997, + "sum": 28334415 + }, + "resource": "statefulsets", + "scope": "namespace", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 8712, + "resource": "persistentvolumeclaims", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubelet/v1.8.8 (linux/amd64) kubernetes/6e5b33a", + "count": 80, + "resource": "pods", + "scope": "namespace", + "verb": "GET" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1479, + "resource": "networkpolicies", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kubectl/v1.6.1 (linux/amd64) kubernetes/b0b7a32", + "count": 1, + "resource": "persistentvolumeclaims", + "scope": "namespace", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "ingresses", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 27, + "1000000": 27, + "125000": 27, + "2000000": 27, + "250000": 27, + "4000000": 27, + "500000": 27, + "8000000": 27 + }, + "count": 27, + "sum": 108241 + }, + "resource": "tokenreviews", + "scope": "cluster", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/shared-informers", + "count": 1, + "resource": "pods", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 20, + "1000000": 20, + "125000": 20, + "2000000": 20, + "250000": 20, + "4000000": 20, + "500000": 20, + "8000000": 20 + }, + "count": 20, + "sum": 518921 + }, + "resource": "apiservices", + "scope": "cluster", + "verb": "POST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-controller-manager/v1.8.8 (linux/amd64) kubernetes/6e5b33a/system:serviceaccount:kube-system:attachdetach-controller", + "count": 5, + "resource": "nodes", + "scope": "cluster", + "subresource": "status", + "verb": "PATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "kube-scheduler/v1.8.8 (linux/amd64) kubernetes/6e5b33a/scheduler", + "count": 1482, + "resource": "services", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "latency": { + "bucket": { + "+Inf": 10319, + "1000000": 0, + "125000": 0, + "2000000": 0, + "250000": 0, + "4000000": 0, + "500000": 0, + "8000000": 0 + }, + "count": 10319, + "sum": 4618957403529 + }, + "resource": "endpoints", + "scope": "cluster", + "verb": "WATCH" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.apiserver", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "apiserver": { + "request": { + "client": "GoogleContainerEngine", + "count": 709, + "resource": "persistentvolumes", + "scope": "cluster", + "verb": "LIST" + } + } + }, + "metricset": { + "name": "apiserver" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + } +] \ No newline at end of file diff --git a/metricbeat/module/rabbitmq/connection/_meta/data.json b/metricbeat/module/rabbitmq/connection/_meta/data.json index bc4e2860f3d..ce832503ddb 100644 --- a/metricbeat/module/rabbitmq/connection/_meta/data.json +++ b/metricbeat/module/rabbitmq/connection/_meta/data.json @@ -11,22 +11,22 @@ "rabbitmq": { "connection": { "channel_max": 65535, - "channels": 8, + "channels": 2, "frame_max": 131072, "host": "::1", - "name": "[::1]:60938 -\u003e [::1]:5672", + "name": "[::1]:60940 -\u003e [::1]:5672", "octet_count": { - "received": 3764, - "sent": 3840 + "received": 3057, + "sent": 3344 }, "packet_count": { "pending": 0, - "received": 376, - "sent": 376 + "received": 352, + "sent": 352 }, "peer": { "host": "::1", - "port": 60938 + "port": 60940 }, "port": 5672, "type": "network" diff --git a/metricbeat/module/rabbitmq/connection/_meta/testdata/docs.json-expected.json b/metricbeat/module/rabbitmq/connection/_meta/testdata/docs.json-expected.json index be42aafd846..7d55ce0b9c2 100644 --- a/metricbeat/module/rabbitmq/connection/_meta/testdata/docs.json-expected.json +++ b/metricbeat/module/rabbitmq/connection/_meta/testdata/docs.json-expected.json @@ -11,22 +11,22 @@ "rabbitmq": { "connection": { "channel_max": 65535, - "channels": 8, + "channels": 2, "frame_max": 131072, "host": "::1", - "name": "[::1]:60938 -\u003e [::1]:5672", + "name": "[::1]:60940 -\u003e [::1]:5672", "octet_count": { - "received": 3764, - "sent": 3840 + "received": 3057, + "sent": 3344 }, "packet_count": { "pending": 0, - "received": 376, - "sent": 376 + "received": 352, + "sent": 352 }, "peer": { "host": "::1", - "port": 60938 + "port": 60940 }, "port": 5672, "type": "network" @@ -56,22 +56,22 @@ "rabbitmq": { "connection": { "channel_max": 65535, - "channels": 2, + "channels": 8, "frame_max": 131072, "host": "::1", - "name": "[::1]:60940 -\u003e [::1]:5672", + "name": "[::1]:60938 -\u003e [::1]:5672", "octet_count": { - "received": 3057, - "sent": 3344 + "received": 3764, + "sent": 3840 }, "packet_count": { "pending": 0, - "received": 352, - "sent": 352 + "received": 376, + "sent": 376 }, "peer": { "host": "::1", - "port": 60940 + "port": 60938 }, "port": 5672, "type": "network" From fd27e462f7551f9f9b0405d80d67acab52de5199 Mon Sep 17 00:00:00 2001 From: Mario Castro Date: Thu, 7 Mar 2019 14:01:02 +0100 Subject: [PATCH 165/332] [Metricbeat] Migrate Ceph osd_df to use ReporterV2 interface (#11013) --- metricbeat/module/ceph/osd_df/data.go | 6 +++--- metricbeat/module/ceph/osd_df/osd_df.go | 20 ++++++++++++++----- .../ceph/osd_df/osd_df_integration_test.go | 6 +++--- metricbeat/module/ceph/osd_df/osd_df_test.go | 15 ++++++++------ 4 files changed, 30 insertions(+), 17 deletions(-) diff --git a/metricbeat/module/ceph/osd_df/data.go b/metricbeat/module/ceph/osd_df/data.go index b22d1dd593a..d8888f034f4 100644 --- a/metricbeat/module/ceph/osd_df/data.go +++ b/metricbeat/module/ceph/osd_df/data.go @@ -20,8 +20,9 @@ package osd_df import ( "encoding/json" + "github.com/pkg/errors" + "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/logp" ) type Node struct { @@ -47,8 +48,7 @@ func eventsMapping(content []byte) ([]common.MapStr, error) { var d OsdDfRequest err := json.Unmarshal(content, &d) if err != nil { - logp.Err("Error: %+v", err) - return nil, err + return nil, errors.Wrap(err, "error getting data for OSD_DF") } nodeList := d.Output.Nodes diff --git a/metricbeat/module/ceph/osd_df/osd_df.go b/metricbeat/module/ceph/osd_df/osd_df.go index 7e9c4c80393..001150832ff 100644 --- a/metricbeat/module/ceph/osd_df/osd_df.go +++ b/metricbeat/module/ceph/osd_df/osd_df.go @@ -18,7 +18,6 @@ package osd_df import ( - "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" @@ -61,16 +60,27 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { }, nil } -func (m *MetricSet) Fetch() ([]common.MapStr, error) { +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(reporter mb.ReporterV2) { content, err := m.HTTP.FetchContent() if err != nil { - return nil, err + m.Logger().Error(err) + reporter.Error(err) + return } events, err := eventsMapping(content) if err != nil { - return nil, err + m.Logger().Error(err) + reporter.Error(err) + return + } + + for _, event := range events { + reporter.Event(mb.Event{MetricSetFields: event}) } - return events, nil + return } diff --git a/metricbeat/module/ceph/osd_df/osd_df_integration_test.go b/metricbeat/module/ceph/osd_df/osd_df_integration_test.go index a311abf0321..2ca2dde0d82 100644 --- a/metricbeat/module/ceph/osd_df/osd_df_integration_test.go +++ b/metricbeat/module/ceph/osd_df/osd_df_integration_test.go @@ -26,9 +26,9 @@ import ( ) func TestData(t *testing.T) { - f := mbtest.NewEventsFetcher(t, getConfig()) - err := mbtest.WriteEvents(f, t) - if err != nil { + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + + if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { t.Fatal("write", err) } } diff --git a/metricbeat/module/ceph/osd_df/osd_df_test.go b/metricbeat/module/ceph/osd_df/osd_df_test.go index 2f93b324e59..088cb172e9a 100644 --- a/metricbeat/module/ceph/osd_df/osd_df_test.go +++ b/metricbeat/module/ceph/osd_df/osd_df_test.go @@ -49,14 +49,17 @@ func TestFetchEventContents(t *testing.T) { "hosts": []string{server.URL}, } - f := mbtest.NewEventsFetcher(t, config) - events, err := f.Fetch() - event := events[0] + f := mbtest.NewReportingMetricSetV2(t, config) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) + } + assert.NotEmpty(t, events) + nodeInfo := events[0].MetricSetFields - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event.StringToPrint()) + t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), nodeInfo.StringToPrint()) //check osd0 df info - nodeInfo := events[0] assert.EqualValues(t, 0, nodeInfo["pg_num"]) assert.EqualValues(t, 52325356, nodeInfo["total.byte"]) assert.EqualValues(t, 1079496, nodeInfo["used.byte"]) @@ -67,7 +70,7 @@ func TestFetchEventContents(t *testing.T) { assert.EqualValues(t, "osd.0", nodeInfo["name"]) //check osd1 df info - nodeInfo = events[1] + nodeInfo = events[1].MetricSetFields assert.EqualValues(t, 0, nodeInfo["pg_num"]) assert.EqualValues(t, 52325356, nodeInfo["total.byte"]) assert.EqualValues(t, 1079496, nodeInfo["used.byte"]) From b528e85d752f667c6cb187775ac29669d0967a4e Mon Sep 17 00:00:00 2001 From: Mario Castro Date: Thu, 7 Mar 2019 14:05:25 +0100 Subject: [PATCH 166/332] [Metricbeat] Migrate Ceph cluster_status to use ReporterV2 interface (#10993) --- .../ceph/cluster_status/cluster_status.go | 20 ++++++++++++++----- .../cluster_status_integration_test.go | 6 +++--- .../cluster_status/cluster_status_test.go | 18 ++++++++++------- metricbeat/module/ceph/cluster_status/data.go | 6 +++--- 4 files changed, 32 insertions(+), 18 deletions(-) diff --git a/metricbeat/module/ceph/cluster_status/cluster_status.go b/metricbeat/module/ceph/cluster_status/cluster_status.go index b86473515a7..029431ef3be 100644 --- a/metricbeat/module/ceph/cluster_status/cluster_status.go +++ b/metricbeat/module/ceph/cluster_status/cluster_status.go @@ -18,7 +18,6 @@ package cluster_status import ( - "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" @@ -61,16 +60,27 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { }, nil } -func (m *MetricSet) Fetch() ([]common.MapStr, error) { +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(reporter mb.ReporterV2) { content, err := m.HTTP.FetchContent() if err != nil { - return nil, err + m.Logger().Error(err) + reporter.Error(err) + return } events, err := eventsMapping(content) if err != nil { - return nil, err + m.Logger().Error(err) + reporter.Error(err) + return + } + + for _, event := range events { + reporter.Event(mb.Event{MetricSetFields: event}) } - return events, nil + return } diff --git a/metricbeat/module/ceph/cluster_status/cluster_status_integration_test.go b/metricbeat/module/ceph/cluster_status/cluster_status_integration_test.go index 1c15c9e564f..d6b43ae6f93 100644 --- a/metricbeat/module/ceph/cluster_status/cluster_status_integration_test.go +++ b/metricbeat/module/ceph/cluster_status/cluster_status_integration_test.go @@ -26,9 +26,9 @@ import ( ) func TestData(t *testing.T) { - f := mbtest.NewEventsFetcher(t, getConfig()) - err := mbtest.WriteEvents(f, t) - if err != nil { + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + + if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { t.Fatal("write", err) } } diff --git a/metricbeat/module/ceph/cluster_status/cluster_status_test.go b/metricbeat/module/ceph/cluster_status/cluster_status_test.go index 79c1701a939..c53d2a895f6 100644 --- a/metricbeat/module/ceph/cluster_status/cluster_status_test.go +++ b/metricbeat/module/ceph/cluster_status/cluster_status_test.go @@ -50,9 +50,13 @@ func TestFetchEventContents(t *testing.T) { "hosts": []string{server.URL}, } - f := mbtest.NewEventsFetcher(t, config) - events, err := f.Fetch() - event := events[0] + f := mbtest.NewReportingMetricSetV2(t, config) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) + } + assert.NotEmpty(t, events) + event := events[0].MetricSetFields t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event.StringToPrint()) @@ -96,22 +100,22 @@ func TestFetchEventContents(t *testing.T) { assert.EqualValues(t, 2872860672, pgInfo["used_bytes"]) //check pg_state info - pg_stateInfo := events[1]["pg_state"].(common.MapStr) + pg_stateInfo := events[1].MetricSetFields["pg_state"].(common.MapStr) assert.EqualValues(t, "active+undersized+degraded", pg_stateInfo["state_name"]) assert.EqualValues(t, 109, pg_stateInfo["count"]) assert.EqualValues(t, 813, pg_stateInfo["version"]) - pg_stateInfo = events[2]["pg_state"].(common.MapStr) + pg_stateInfo = events[2].MetricSetFields["pg_state"].(common.MapStr) assert.EqualValues(t, "undersized+degraded+peered", pg_stateInfo["state_name"]) assert.EqualValues(t, 101, pg_stateInfo["count"]) assert.EqualValues(t, 813, pg_stateInfo["version"]) - pg_stateInfo = events[3]["pg_state"].(common.MapStr) + pg_stateInfo = events[3].MetricSetFields["pg_state"].(common.MapStr) assert.EqualValues(t, "active+remapped", pg_stateInfo["state_name"]) assert.EqualValues(t, 55, pg_stateInfo["count"]) assert.EqualValues(t, 813, pg_stateInfo["version"]) - pg_stateInfo = events[4]["pg_state"].(common.MapStr) + pg_stateInfo = events[4].MetricSetFields["pg_state"].(common.MapStr) assert.EqualValues(t, "active+undersized+degraded+remapped", pg_stateInfo["state_name"]) assert.EqualValues(t, 55, pg_stateInfo["count"]) assert.EqualValues(t, 813, pg_stateInfo["version"]) diff --git a/metricbeat/module/ceph/cluster_status/data.go b/metricbeat/module/ceph/cluster_status/data.go index 55a860281b0..a9544ae5f9f 100644 --- a/metricbeat/module/ceph/cluster_status/data.go +++ b/metricbeat/module/ceph/cluster_status/data.go @@ -20,8 +20,9 @@ package cluster_status import ( "encoding/json" + "github.com/pkg/errors" + "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/logp" ) type PgState struct { @@ -81,8 +82,7 @@ func eventsMapping(content []byte) ([]common.MapStr, error) { var d HealthRequest err := json.Unmarshal(content, &d) if err != nil { - logp.Err("Error: %+v", err) - return nil, err + return nil, errors.Wrap(err, "error getting HealthRequest data") } //osd map info From 5114386c89969217350cfa3aeb7954e5c977e745 Mon Sep 17 00:00:00 2001 From: Stamatis Katsaounis Date: Thu, 7 Mar 2019 15:45:50 +0200 Subject: [PATCH 167/332] Enhance Nats Filebeat module (#10847) This PR is part of #10071. Co-Authored-By: Christos Markou Co-Authored-By: Michael Katsoulis --- filebeat/docs/fields.asciidoc | 107 ++++++++++ filebeat/module/nats/fields.go | 2 +- filebeat/module/nats/log/_meta/fields.yml | 47 ++++ filebeat/module/nats/log/ingest/pipeline.json | 123 ++++++++++- filebeat/module/nats/log/manifest.yml | 2 +- filebeat/module/nats/log/test/test.log | 9 + .../nats/log/test/test.log-expected.json | 202 +++++++++++++++++- 7 files changed, 482 insertions(+), 10 deletions(-) diff --git a/filebeat/docs/fields.asciidoc b/filebeat/docs/fields.asciidoc index 45c92efc39d..faa2d2a6458 100644 --- a/filebeat/docs/fields.asciidoc +++ b/filebeat/docs/fields.asciidoc @@ -7443,6 +7443,113 @@ Fields from NATS logs. Nats log files + +[float] +== client fields + +Fields from NATS logs client. + + + +*`nats.log.client.id`*:: ++ +-- +type: integer + +The id of the client + + +-- + +[float] +== msg fields + +Fields from NATS logs message. + + + +*`nats.log.msg.bytes`*:: ++ +-- +type: long + +format: bytes + +Size of the payload in bytes + + +-- + +*`nats.log.msg.type`*:: ++ +-- +type: keyword + +The protocol message type + + +-- + +*`nats.log.msg.subject`*:: ++ +-- +type: keyword + +Subject name this message was received on + + +-- + +*`nats.log.msg.sid`*:: ++ +-- +type: integer + +The unique alphanumeric subscription ID of the subject + + +-- + +*`nats.log.msg.reply_to`*:: ++ +-- +type: keyword + +The inbox subject on which the publisher is listening for responses + + +-- + +*`nats.log.msg.max_messages`*:: ++ +-- +type: integer + +An optional number of messages to wait for before automatically unsubscribing + + +-- + +*`nats.log.msg.error.message`*:: ++ +-- +type: text + +Details about the error occurred + + +-- + +*`nats.log.msg.queue_group`*:: ++ +-- +type: text + +The queue group which subscriber will join + + +-- + [[exported-fields-netflow]] == NetFlow fields diff --git a/filebeat/module/nats/fields.go b/filebeat/module/nats/fields.go index 1c0dcd1d655..825c42644a1 100644 --- a/filebeat/module/nats/fields.go +++ b/filebeat/module/nats/fields.go @@ -32,5 +32,5 @@ func init() { // AssetNats returns asset data. // This is the base64 encoded gzipped contents of module/nats. func AssetNats() string { - return "eJx8jzGOwyAQRXtO8eXeewCKlbbZbt1sLkDiAaFgBjHjwrePsGLHiqy8jo/03/wed1osslMxgEZNZNG1Z2eAkeRWY9HI2eLbAMAfj3MieK4orkrMAcPP5R+JA3xMJF8GqJTICVlcSZ0BfKQ0il0LemQ30a5s6FLIIlSeyzM5ETd+1x74ytNuXYWNo+QoShz27Mz1wdcYnMpr3eHrfeTGdscjAAD//1hdX78=" + return "eJy0lEFP3DAQhe/5FU/c4QfkUAkJVeqhXOCOnGSSDDieYI+7pL++coi3y5LAVmXntutk3jfvTXyJJ5pKOKOhAJTVUomL9POiABoKtedRWVyJbwUA/JQmWkIrHqPxgV2H2+v7O1jp0LKlcFUAniyZQCUqUlMALZNtQjk3uIQzA+0lU+k0UonOSxyXf1aEU32f+6D1MuxVZ8FUhyKHQla6/X9rWh/opbo1Gv5Od3B0PGSuY45DltoyOX1ztIX0CdamHYvG1dHTa1SHZNy8O8pk7JQ68ivnn/Cluu8J3EBaaE9r82eAIXTn9WWgEExH/2pMNemb2N/SWXHH2HNT8YPR7ZdPMO6Of1O2bTSTFdOA3UbHDJugNlmfaNqJX8v5xBxHLyq12GzlulxmCbF6pPp42b8I5+61+SwF7XkfL3YmwFNN/IsaiNvGO+fGR8fPkWDs2BsXB/JcJz/27+LHTc52y6bM6Wm004PK+WJlV8lL5oA47Hqu+9fFi5Xl0JMHB1gOSi7d+On29xRGceGDZRzMy8OSyvYH9F9WXzvI/ICxcHGoyCdXsyZUsDOsM25FrXiCiSqDUa6NtROiW0KpeOUzznOQ9+Kvlq6bgyi9rO36CVPckBq2AaaSqLPtsyKkrqP39D7ZDPYcKdLD2gX5FVhpNWaF1yt42YpsGHns2Fo8CrviTwAAAP//7bga1A==" } diff --git a/filebeat/module/nats/log/_meta/fields.yml b/filebeat/module/nats/log/_meta/fields.yml index 9b061fc0423..ac6de197f6d 100644 --- a/filebeat/module/nats/log/_meta/fields.yml +++ b/filebeat/module/nats/log/_meta/fields.yml @@ -4,3 +4,50 @@ Nats log files release: beta fields: + - name: client + type: group + description: > + Fields from NATS logs client. + fields: + - name: id + type: integer + description: > + The id of the client + - name: msg + type: group + description: > + Fields from NATS logs message. + fields: + - name: bytes + type: long + format: bytes + description: > + Size of the payload in bytes + - name: type + type: keyword + description: > + The protocol message type + - name: subject + type: keyword + description: > + Subject name this message was received on + - name: sid + type: integer + description: > + The unique alphanumeric subscription ID of the subject + - name: reply_to + type: keyword + description: > + The inbox subject on which the publisher is listening for responses + - name: max_messages + type: integer + description: > + An optional number of messages to wait for before automatically unsubscribing + - name: error.message + type: text + description: > + Details about the error occurred + - name: queue_group + type: text + description: > + The queue group which subscriber will join diff --git a/filebeat/module/nats/log/ingest/pipeline.json b/filebeat/module/nats/log/ingest/pipeline.json index 28f1f5a3583..0da22c0c8c7 100644 --- a/filebeat/module/nats/log/ingest/pipeline.json +++ b/filebeat/module/nats/log/ingest/pipeline.json @@ -1,10 +1,11 @@ { - "description": "Pipeline for parsing nats log logs", - "processors": [{ + "description": "Pipeline for parsing nats log logs", + "processors": [ + { "grok": { "field": "message", "patterns":[ - "\\[%{POSINT:process.pid}\\]( %{NATSTIME:nats.log.timestamp})? \\[%{NATSLOGLEVEL:log.level}\\] %{GREEDYDATA:message}" + "\\[%{POSINT:process.pid}\\]( %{NATSTIME:nats.log.timestamp})? \\[%{NATSLOGLEVEL:log.level}\\] %{GREEDYDATA:nats.log.info}" ], "pattern_definitions": { "NATSTIME": "%{YEAR}/%{MONTHNUM}/%{MONTHDAY} %{TIME}", @@ -13,6 +14,78 @@ "ignore_missing": true } }, + { + "grok": { + "field": "nats.log.info", + "patterns": [ + "%{IPV4:client.ip}:%{POSINT:client.port} - cid:%{POSINT:nats.log.client.id} - %{GREEDYDATA:nats.log.msg.info}", + "%{GREEDYDATA:nats.log.msg.data}" + ], + "ignore_missing": true + } + }, + { + "grok": { + "field": "nats.log.msg.info", + "patterns": [ + "%{NATSDIRECTION:network.direction} %{NATSPAYLOAD:nats.log.msg.type}: \\[%{GREEDYDATA:nats.log.msg.payload}\\]", + "%{NATSDIRECTION:network.direction} \\[%{NATSNOINFO:nats.log.msg.type}\\]", + "%{NATSDIRECTION:network.direction} \\[%{NATSUNSUB:nats.log.msg.type}\\s+%{POSINT:nats.log.msg.sid}(\\s+%{POSINT:nats.log.msg.max_messages})?\\]", + "%{NATSDIRECTION:network.direction} \\[%{NATSPUB:nats.log.msg.type}\\s+%{NOTSPACE:nats.log.msg.subject}(\\s+%{NOTSPACE:nats.log.msg.reply_to})?\\s+%{POSINT:nats.log.msg.bytes}\\]", + "%{NATSDIRECTION:network.direction} \\[%{NATSSUB:nats.log.msg.type}\\s+%{NOTSPACE:nats.log.msg.subject}(\\s+%{NOTSPACE:nats.log.msg.queue_group})?\\s+%{POSINT:nats.log.msg.sid}\\]", + "%{NATSDIRECTION:network.direction} \\[%{NATSMSG:nats.log.msg.type}\\s+%{NOTSPACE:nats.log.msg.subject}\\s+%{POSINT:nats.log.msg.sid}(\\s+%{NOTSPACE:nats.log.msg.reply_to})?\\s+%{POSINT:nats.log.msg.bytes}\\]", + "%{NATSDIRECTION:network.direction} \\[%{NATSCONNECTION:nats.log.msg.type}\\s+%{GREEDYDATA:nats.log.msg.data}\\]", + "%{NATSDIRECTION:network.direction} \\[%{NATSERROR:nats.log.msg.type}\\s+%{GREEDYDATA:nats.log.msg.error\\]", + "%{GREEDYDATA:nats.log.msg.data}" + ], + "pattern_definitions": { + "NATSDIRECTION": "(<<-|->>)", + "NATSMSG": "MSG", + "NATSPUB": "PUB", + "NATSSUB": "SUB", + "NATSUNSUB": "UNSUB", + "NATSPAYLOAD": "MSG_PAYLOAD", + "NATSERROR": "-ERROR", + "NATSPING": "PING", + "NATSPONG": "PONG", + "NATSOK": "OK", + "NATSCONNECT": "CONNECT", + "NATSINFO": "INFO", + "NATSCONNECTION": "(?:%{NATSCONNECT}|%{NATSINFO})", + "NATSNOINFO": "(?:%{NATSPING}|%{NATSPONG}|%{NATSOK})" + }, + "ignore_missing": true + } + }, + { + "remove": { + "field": "nats.log.info" + } + }, + { + "remove": { + "field": "nats.log.msg.info", + "ignore_missing": true + } + }, + { + "remove": { + "field": "nats.log.msg.payload", + "ignore_missing": true + } + }, + { + "remove": { + "field": "message" + } + }, + { + "rename": { + "field": "nats.log.msg.data", + "target_field": "message", + "ignore_missing": true + } + }, { "script": { "lang": "painless", @@ -33,6 +106,50 @@ } } }, + { + "script": { + "lang": "painless", + "source": "if (ctx.nats.log.msg.type == params.msg) {\n ctx.nats.log.msg.type = params.message;\n } else if (ctx.nats.log.msg.type == params.pub) {\n ctx.nats.log.msg.type = params.publish;\n } else if (ctx.nats.log.msg.type == params.sub) {\n ctx.nats.log.msg.type = params.subscribe;\n } else if (ctx.nats.log.msg.type == params.unsub) {\n ctx.nats.log.msg.type = params.unsubscribe;\n } else if (ctx.nats.log.msg.type == params.msg_payload) {\n ctx.nats.log.msg.type = params.payload;\n } else if (ctx.nats.log.msg.type == params.err) {\n ctx.nats.log.msg.type = params.error;\n } else if (ctx.nats.log.msg.type == params.pi) {\n ctx.nats.log.msg.type = params.ping;\n } else if (ctx.nats.log.msg.type == params.po) {\n ctx.nats.log.msg.type = params.pong;\n } else if (ctx.nats.log.msg.type == params.ok) {\n ctx.nats.log.msg.type = params.acknowledge;\n } else if (ctx.nats.log.msg.type == params.connect) {\n ctx.nats.log.msg.type = params.connection;\n } else if (ctx.nats.log.msg.type == params.info) {\n ctx.nats.log.msg.type = params.information;\n }", + "params": { + "msg": "MSG", + "message": "message", + "pub": "PUB", + "publish": "publish", + "sub": "SUB", + "subscribe": "subscribe", + "unsub": "UNSUB", + "unsubscribe": "unsubscribe", + "msg_payload": "MSG_PAYLOAD", + "payload": "payload", + "err": "-ERROR", + "error": "error", + "pi": "PING", + "ping": "ping", + "po": "PONG", + "pong": "pong", + "ok": "OK", + "acknowledge": "acknowledge", + "connect": "CONNECT", + "connection": "connection", + "info": "INFO", + "information": "information" + }, + "if": "ctx.nats.log.msg?.type != null" + } + }, + { + "script": { + "lang": "painless", + "source": "if (ctx.network.direction == params.in) {\n ctx.network.direction = params.inbound;\n } else if (ctx.network.direction == params.out) {\n ctx.network.direction = params.outbound;\n }", + "params": { + "in": "<<-", + "inbound": "inbound", + "out": "->>", + "outbound": "outbound" + }, + "if": "ctx.network?.direction != null" + } + }, { "rename": { "field": "@timestamp", diff --git a/filebeat/module/nats/log/manifest.yml b/filebeat/module/nats/log/manifest.yml index 20104d64427..8c51b92a137 100644 --- a/filebeat/module/nats/log/manifest.yml +++ b/filebeat/module/nats/log/manifest.yml @@ -5,7 +5,7 @@ var: default: # This is an example location of where a user can # set the nats server to log. By default nats - # logs only in stdout. In order to set a nats server + # logs only in stderr. In order to set a nats server # to log in specific file use -l flag, for instance: # ./gnatsd -DV -l /var/log/nats/nats.log # See more on https://nats.io/documentation/server/gnatsd-logging/ diff --git a/filebeat/module/nats/log/test/test.log b/filebeat/module/nats/log/test/test.log index c354e2c09f3..26540fd42c4 100644 --- a/filebeat/module/nats/log/test/test.log +++ b/filebeat/module/nats/log/test/test.log @@ -7,3 +7,12 @@ [1] 2019/02/06 07:20:08.512052 [TRC] 172.18.0.1:38630 - cid:1 - ->> [SUB foo 1] [1] 2019/02/06 07:20:08.512128 [TRC] 172.18.0.1:38630 - cid:1 - ->> [PING] [1] 2019/02/06 07:20:08.512153 [TRC] 172.18.0.1:38630 - cid:1 - <<- [PONG] +[1] 2019/02/04 15:40:02.717819 [TRC] 50.39.246.116:62388 - cid:3 - ->> [PUB aiuser.platinum1.pingpeer _INBOX.e3hAUbP4r5wbjw3Hudw42r.udigGiHn 20] +[1] 2019/02/04 15:40:02.717825 [TRC] 50.39.246.116:62388 - cid:3 - ->> MSG_PAYLOAD: [peer, are you alive?] +[1] 2019/02/04 15:40:02.717832 [TRC] 192.168.176.11:36262 - cid:4 - <<- [MSG aiuser.platinum1.pingpeer 1 _INBOX.e3hAUbP4r5wbjw3Hudw42r.udigGiHn 20] +[1] 2019/02/04 15:40:02.718007 [TRC] 192.168.176.11:36262 - cid:4 - ->> [PUB _INBOX.e3hAUbP4r5wbjw3Hudw42r.udigGiHn 17] +[1] 2019/02/04 15:40:02.718023 [TRC] 192.168.176.11:36262 - cid:4 - ->> MSG_PAYLOAD: [I am fine, agent!] +[1] 2019/02/04 15:40:02.718044 [TRC] 50.39.246.116:62388 - cid:3 - <<- [MSG _INBOX.e3hAUbP4r5wbjw3Hudw42r.udigGiHn 11 17] +[1] 2019/02/04 15:40:02.717600 [TRC] 50.39.246.116:62388 - cid:3 - ->> [PUB aiuser.platinum1.appstats 1583] +[1] 2019/02/04 15:40:02.717811 [TRC] 192.168.176.11:36262 - cid:4 - <<- [MSG aiuser.platinum1.appstats 6 1583] +[1] 2019/02/16 07:20:08.512153 [TRC] 172.18.0.1:38630 - cid:1 - <<- [OK] diff --git a/filebeat/module/nats/log/test/test.log-expected.json b/filebeat/module/nats/log/test/test.log-expected.json index 7ea37b515d6..b0e19a5b88a 100644 --- a/filebeat/module/nats/log/test/test.log-expected.json +++ b/filebeat/module/nats/log/test/test.log-expected.json @@ -53,6 +53,8 @@ }, { "@timestamp": "2019-02-06T07:20:08.508Z", + "client.ip": "172.18.0.1", + "client.port": "38630", "ecs.version": "1.0.0-beta2", "event.dataset": "nats.log", "event.module": "nats", @@ -60,12 +62,15 @@ "input.type": "log", "log.level": "debug", "log.offset": 269, - "message": "172.18.0.1:38630 - cid:1 - Client connection created", + "message": "Client connection created", + "nats.log.client.id": "1", "process.pid": "1", "service.type": "nats" }, { "@timestamp": "2019-02-06T07:20:08.510Z", + "client.ip": "172.18.0.1", + "client.port": "38630", "ecs.version": "1.0.0-beta2", "event.dataset": "nats.log", "event.module": "nats", @@ -73,12 +78,17 @@ "input.type": "log", "log.level": "trace", "log.offset": 359, - "message": "172.18.0.1:38630 - cid:1 - ->> [CONNECT {\"verbose\":false,\"pedantic\":false,\"tls_required\":false,\"name\":\"NATS Benchmark\",\"lang\":\"go\",\"version\":\"1.7.0\",\"protocol\":1,\"echo\":true}]", + "message": "{\"verbose\":false,\"pedantic\":false,\"tls_required\":false,\"name\":\"NATS Benchmark\",\"lang\":\"go\",\"version\":\"1.7.0\",\"protocol\":1,\"echo\":true}", + "nats.log.client.id": "1", + "nats.log.msg.type": "connection", + "network.direction": "outbound", "process.pid": "1", "service.type": "nats" }, { "@timestamp": "2019-02-06T07:20:08.512Z", + "client.ip": "172.18.0.1", + "client.port": "38630", "ecs.version": "1.0.0-beta2", "event.dataset": "nats.log", "event.module": "nats", @@ -86,12 +96,18 @@ "input.type": "log", "log.level": "trace", "log.offset": 572, - "message": "172.18.0.1:38630 - cid:1 - ->> [SUB foo 1]", + "nats.log.client.id": "1", + "nats.log.msg.sid": "1", + "nats.log.msg.subject": "foo", + "nats.log.msg.type": "subscribe", + "network.direction": "outbound", "process.pid": "1", "service.type": "nats" }, { "@timestamp": "2019-02-06T07:20:08.512Z", + "client.ip": "172.18.0.1", + "client.port": "38630", "ecs.version": "1.0.0-beta2", "event.dataset": "nats.log", "event.module": "nats", @@ -99,12 +115,16 @@ "input.type": "log", "log.level": "trace", "log.offset": 653, - "message": "172.18.0.1:38630 - cid:1 - ->> [PING]", + "nats.log.client.id": "1", + "nats.log.msg.type": "ping", + "network.direction": "outbound", "process.pid": "1", "service.type": "nats" }, { "@timestamp": "2019-02-06T07:20:08.512Z", + "client.ip": "172.18.0.1", + "client.port": "38630", "ecs.version": "1.0.0-beta2", "event.dataset": "nats.log", "event.module": "nats", @@ -112,7 +132,179 @@ "input.type": "log", "log.level": "trace", "log.offset": 728, - "message": "172.18.0.1:38630 - cid:1 - <<- [PONG]", + "nats.log.client.id": "1", + "nats.log.msg.type": "pong", + "network.direction": "inbound", + "process.pid": "1", + "service.type": "nats" + }, + { + "@timestamp": "2019-02-04T15:40:02.717Z", + "client.ip": "50.39.246.116", + "client.port": "62388", + "ecs.version": "1.0.0-beta2", + "event.dataset": "nats.log", + "event.module": "nats", + "fileset.name": "log", + "input.type": "log", + "log.level": "trace", + "log.offset": 803, + "nats.log.client.id": "3", + "nats.log.msg.bytes": "20", + "nats.log.msg.reply_to": "_INBOX.e3hAUbP4r5wbjw3Hudw42r.udigGiHn", + "nats.log.msg.subject": "aiuser.platinum1.pingpeer", + "nats.log.msg.type": "publish", + "network.direction": "outbound", + "process.pid": "1", + "service.type": "nats" + }, + { + "@timestamp": "2019-02-04T15:40:02.717Z", + "client.ip": "50.39.246.116", + "client.port": "62388", + "ecs.version": "1.0.0-beta2", + "event.dataset": "nats.log", + "event.module": "nats", + "fileset.name": "log", + "input.type": "log", + "log.level": "trace", + "log.offset": 948, + "nats.log.client.id": "3", + "nats.log.msg.type": "payload", + "network.direction": "outbound", + "process.pid": "1", + "service.type": "nats" + }, + { + "@timestamp": "2019-02-04T15:40:02.717Z", + "client.ip": "192.168.176.11", + "client.port": "36262", + "ecs.version": "1.0.0-beta2", + "event.dataset": "nats.log", + "event.module": "nats", + "fileset.name": "log", + "input.type": "log", + "log.level": "trace", + "log.offset": 1055, + "nats.log.client.id": "4", + "nats.log.msg.bytes": "20", + "nats.log.msg.reply_to": "_INBOX.e3hAUbP4r5wbjw3Hudw42r.udigGiHn", + "nats.log.msg.sid": "1", + "nats.log.msg.subject": "aiuser.platinum1.pingpeer", + "nats.log.msg.type": "message", + "network.direction": "inbound", + "process.pid": "1", + "service.type": "nats" + }, + { + "@timestamp": "2019-02-04T15:40:02.718Z", + "client.ip": "192.168.176.11", + "client.port": "36262", + "ecs.version": "1.0.0-beta2", + "event.dataset": "nats.log", + "event.module": "nats", + "fileset.name": "log", + "input.type": "log", + "log.level": "trace", + "log.offset": 1203, + "nats.log.client.id": "4", + "nats.log.msg.bytes": "17", + "nats.log.msg.subject": "_INBOX.e3hAUbP4r5wbjw3Hudw42r.udigGiHn", + "nats.log.msg.type": "publish", + "network.direction": "outbound", + "process.pid": "1", + "service.type": "nats" + }, + { + "@timestamp": "2019-02-04T15:40:02.718Z", + "client.ip": "192.168.176.11", + "client.port": "36262", + "ecs.version": "1.0.0-beta2", + "event.dataset": "nats.log", + "event.module": "nats", + "fileset.name": "log", + "input.type": "log", + "log.level": "trace", + "log.offset": 1323, + "nats.log.client.id": "4", + "nats.log.msg.type": "payload", + "network.direction": "outbound", + "process.pid": "1", + "service.type": "nats" + }, + { + "@timestamp": "2019-02-04T15:40:02.718Z", + "client.ip": "50.39.246.116", + "client.port": "62388", + "ecs.version": "1.0.0-beta2", + "event.dataset": "nats.log", + "event.module": "nats", + "fileset.name": "log", + "input.type": "log", + "log.level": "trace", + "log.offset": 1428, + "nats.log.client.id": "3", + "nats.log.msg.bytes": "17", + "nats.log.msg.sid": "11", + "nats.log.msg.subject": "_INBOX.e3hAUbP4r5wbjw3Hudw42r.udigGiHn", + "nats.log.msg.type": "message", + "network.direction": "inbound", + "process.pid": "1", + "service.type": "nats" + }, + { + "@timestamp": "2019-02-04T15:40:02.717Z", + "client.ip": "50.39.246.116", + "client.port": "62388", + "ecs.version": "1.0.0-beta2", + "event.dataset": "nats.log", + "event.module": "nats", + "fileset.name": "log", + "input.type": "log", + "log.level": "trace", + "log.offset": 1550, + "nats.log.client.id": "3", + "nats.log.msg.bytes": "1583", + "nats.log.msg.subject": "aiuser.platinum1.appstats", + "nats.log.msg.type": "publish", + "network.direction": "outbound", + "process.pid": "1", + "service.type": "nats" + }, + { + "@timestamp": "2019-02-04T15:40:02.717Z", + "client.ip": "192.168.176.11", + "client.port": "36262", + "ecs.version": "1.0.0-beta2", + "event.dataset": "nats.log", + "event.module": "nats", + "fileset.name": "log", + "input.type": "log", + "log.level": "trace", + "log.offset": 1658, + "nats.log.client.id": "4", + "nats.log.msg.bytes": "1583", + "nats.log.msg.sid": "6", + "nats.log.msg.subject": "aiuser.platinum1.appstats", + "nats.log.msg.type": "message", + "network.direction": "inbound", + "process.pid": "1", + "service.type": "nats" + }, + { + "@timestamp": "2019-02-16T07:20:08.512Z", + "client.ip": "172.18.0.1", + "client.port": "38630", + "ecs.version": "1.0.0-beta2", + "event.dataset": "nats.log", + "event.module": "nats", + "fileset.name": "log", + "input.type": "log", + "log.level": "trace", + "log.offset": 1769, + "nats.log.client.id": "1", + "nats.log.msg.type": "acknowledge", + "network.direction": "inbound", "process.pid": "1", "service.type": "nats" } From 6eab0bd5c21b1504dd189265cf59e205fd433d5d Mon Sep 17 00:00:00 2001 From: kaiyan-sheng Date: Thu, 7 Mar 2019 08:19:34 -0700 Subject: [PATCH 168/332] Push events even when there's no cloudwatch data (#11023) * Push events even when there's no cloudwatch data * Update documentations for aws ec2 * Change cloud.provider from ec2 to aws * Add cloud.provider change into changelog --- CHANGELOG.next.asciidoc | 2 + .../images/metricbeat-aws-ec2-overview.png | Bin 1392094 -> 542179 bytes metricbeat/docs/modules/aws.asciidoc | 38 +++++++++++++----- .../metricbeat/module/aws/_meta/docs.asciidoc | 38 +++++++++++++----- .../metricbeat/module/aws/ec2/_meta/data.json | 36 ++++++++--------- .../module/aws/ec2/_meta/docs.asciidoc | 30 ++++++++++++++ x-pack/metricbeat/module/aws/ec2/ec2.go | 25 ++++++------ x-pack/metricbeat/module/aws/ec2/ec2_test.go | 2 +- .../aws/s3_daily_storage/_meta/docs.asciidoc | 3 +- .../module/aws/s3_request/_meta/docs.asciidoc | 3 +- .../module/aws/sqs/_meta/docs.asciidoc | 3 +- 11 files changed, 123 insertions(+), 57 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 5e84f26b27a..561dd4dcd6a 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -190,6 +190,8 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Fix issue in kubernetes module preventing usage percentages to be properly calculated. {pull}10946[10946] - Fix for not reusable http client leading to connection leaks in Jolokia module {pull}11014[11014] - Fix parsing error using GET in Jolokia module. {pull}11075[11075] {issue}11071[11071] +- Collect metrics when EC2 instances are not in running state. {issue}11008[11008] {pull}11023[11023] +- Change ECS field cloud.provider to aws. {pull}11023[11023] *Packetbeat* diff --git a/metricbeat/docs/images/metricbeat-aws-ec2-overview.png b/metricbeat/docs/images/metricbeat-aws-ec2-overview.png index 79086d62b227ae49dd87ec9842111c18ee4517b5..a78d7e106132ec9af9a9b7e8edeb1305b96c724e 100644 GIT binary patch literal 542179 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 S+Sv+US^|7s#3rS+AmpYZ2-! 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%0DRjhncshC@kM=fKII_)R2Dvf@h17x_ah~6vI9)o{ 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

TlA( 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�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≈C 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�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 Z?Q&a(pp3WVFA(r|NnKB^^n%T;{{wlh>#G0& literal 1392094 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

+~2>kNefcXj4$_+4R$4p+sO=ztB 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 z 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 z%0D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 z%0A46ZAHrF*?)Zd&GKQ5X~%Snan+C)kQ&m8sz30L!ZxH*AeOX%8n6K|KN9b%{;eS{ z5+P`yeE)E`z=rWVCm0+ylyae0G8_7z(TzFh3`Q$oJ3`kBkN z4pG$EouN_cWCN6gy;ncIe~-)xr|5lxUN!qI&nQ{=tc4m+Y9DT_5W_oKuv(cojF;ZM zsm5>NZ~_*z6A(^w%~%0fB`Dov`HfQu1F@y8Tf%q|YE%9Ij#}M?KKn3r|T++jQ-XYwnsdFw-@)2R-lR(1 zL1RAS)RjAVN~$J1wwjE4;;iIuo?+jHk>-4{r4Zj=LoIFd*CXmf827@D1J%dXqPB8r z4x2mPcU?SF%k~dtUact|;?p!1=fH!P1RRNrzOL5Qyr0`= zhvumLNbVkGHHs#UM+-r|QIj7^6eVJK?dnb*Ze=wMp614$U5~Ec4+{H#Toy?t13tW@ z!}bt$Rjd+f)!VA&9Pj?=x9b}El*il`Ej>Qz7mdkGYw`Kp({C*mQ<&&U{@IzUs(*lD z?|<5v{HAw-KLI@_+x_uF0rvhhDjFKDg^$Q?mOvO8(q{oz zl;twUzH?Da5p2Ps0)z;sUB&Vb1%3M0#>*g-)8%>M@9#xfWQMHyDf;r86%!60GvP!w zdS%PVm7R0PM~DGj1KM2DoD(@JcIcM_7mUCp$#210CCL!i>(p^%3wO~ zuPqsloY;Y@xbV`z0{plA&5G&;jhf?3Y5QewW@NVVh(UjtE@!?V<@cCx>}<%ynZ+#M z5~AB2!>WR(f~Urub^x|&iTPxni<22Nl6a5Dz?vFEcmI25Uc7#lBr(4Wt*qqJeTpWs z`td%y5ok+AAJ+y+fnL_xX#M=Ws0-tft%j53ETrJ`PM|8qAs!dS+cKB7tkD)Ci&z=u z0H_dKegmqggtBfQJa2p#hg)<%p+t#U=e1k5Y-6%tpb-&^DR@2G&U*@pSClih_uY}; zB&7U>K9fk)5FQ2YeU0;e&^hLjBYJnlOZ(fSeg2yU73M;DpWTma^)KuH&Op4-t0Tbv zX9YF=(Q5Sw{tY-I4vid>kB^TJS7OCzSXnVDEr<4o$>S)0&Cka?)vNK_Z+YE^2lR=z zwnqm`9dZf^?N!#J>|Pg6tLy6#W{piv!6a0CXWNZVX047bw}gp_iQ1JGm_^0K&dZ%> zX@YMb;xj0t)8|rSTPl+gL1X(_%@NyWBH#}y zaAlq=CHjFar(;ZT@e+`-H!p=xX#W1f{0qSs2D2|qB0d>%vx87|S#{Ru=*MLJ4#uvV z6Q1T~)Ld8nvh>$1`Ta6LgpJs)==>g7O~!R~e0?wGYXNQ@R&^V#OX^s3B&Xawf8ijN zXz=L|n=Vw5kQjJx!c7RY+S#D(ec`m)>z18xU9*Z`}Ek5F7eHDTVm7X z!3L1Y?(a7`l~B{CJmY9%xRe_cS+JQyt`~w za2{BR&nJ7~JLtU9QqYZXlh`%$iw;*tISNB?qdHj=j6o<<45aHY*a#oX`EewZg`C1H z@@G2brmn6o%p2p!kB8e!BAef?Vtt%2dY!>mN)_PkFhT<`?MP~8yZr^n+Cmw3tp)z< zMc_5@6vT5eHMwE>HFNn9b^rn1-#M8$+&}J`B=AN4LtI0X_in|)4F!u_TvwO$A~+O0 zZGUESGYPcoXfnR906G?G6$eySy4FGuvHL|l&!|L2DQIP5q-11}-S%d~hqGkOMzZDS zW*n@oaqW3|c+ghFfK2jbW47KkSFH5DVHtR3%q z>+jERhI#)n4ggvFlUih^Zpi%-zmWWH@x44WPW>wKdV2~HE|s=oe?S-H?{DKnqaWTP%t=`WRiZ(^9kQw{}Zu347ec<#8!0R zq4{HT-LCNIBiBXYty@r>Nxsdk&EBKoQolyBeCYGM?pg|Jn(OOdL?Yqh+ zpgXbmhxW6rLxUg4E(K5}Tl$fGRm#lQeQxTTJ}H)3fkCLQ4T%ZZ;x=LL#oTM3V+02K zLT7msh1GL5yOsk6Ed86PIdRd{rdnwe--+6&0UTleOD=v+NiE$~Wn=aX$D^32F$luYhUZ`u*I(Cn}x9u~K-@EbQJp`L-Jqt>0dcE$+?*HT7=p6R^^aa07qo58ZC+_M>wm%EP`7Ck2TGOb2q z3;7XekP;SklqJU^zyzLiex1-4QrA^3&yyQryB;#~wZ@10lwob*!JEG2)~=!Q+jcVI zK?b>cj`aryyvp{!!^Oc2wNvp-G3Y62Tm8aEW!#IZU*|+INO+elIRB=Zb`y<_=kK%( zgB%Qi+Q0Z$+|u|*w{J>H%2b0pTTxLFyW_m@J5SH^R7?lF-spQ$Qqq#-6YG8GuV3Y6 zD7h->5xBH6;+3N2KM0~o$GsPgRqZJR-=JC!eQq)>$(xe}3JQ3solyzCe*JUQy@$=K zhR4yo(OSw4@bK{3bxtO+yEe9?hLd}eqYQlPJIaM;9I5CMGryvnK7aT?Lx({rIyWg9CMUkIf@Dk z22mgV-@!5}R5|dXShw#RgudX`B}F5X{b07AKh>Ym)z4hfI>~Vh3eE%_YFQibvJMmn z4=>;d8P)wlX$AalUS(;~!grQQ$tco7f6}-)&*iwi=ty&i0XoW5Bu~T;qQbkkj0^=l z??O-}48r~tT1*$(=IFMb>zg#t$6%&%;eFtq%VG4vf5ab|{$PDcPun1SWqqopt!?J< zK83em^jei4#Gv(&t621xjOv_p_RAH%vtMY4VvL7Y9Z_)gUlz=>#4Ij)K5v^^?^{V@ zHiTat2gwF^gCOYhw0jK$?&1qxSRzqxsO6z6m!iekO!v_m+x%o=^gE5i@|5Rr-!Htl z9;gt|;{JR9U%+RemdzX1+6umK%qXH=Wuz-fs+@Ohckb)hVMl2(knYBJYjOS)zvwO0 zPVWw{**gcZv6XJ5EL-MEP&r2u%ml~|%(hw>Hed_Zjr=<|+?LNfmncWAX#>$86%`e_sZ$16xh7Pk7|IPs-Pnv9EVe8)n zkYqH)FiY@pt_+7_&NZ=K7dqxYS24${c%njG{f@E#qKLaF9AJ<{(vLyC^80%kRz+@p zZQD(QAJ*%#@c5&{vtgm(iTQ}?1kqqfQ_Hi|9NrVDMZCiPf&6=m3}qq?4yQ*Jm3=8i ztaj8%$MUKsnw9@Bw-bdw8%O=$8>gV#H#j($-)Rx<2@4B{+m3b=2^aGE`g)T^R%Ock z)_9?bt?e&+qv(`*fErsdm$|n!qV5yfjIh{B_bQ*+LQkGcN^*b!LxFjfZ8cuCy}utT z9Z7gPRnoobxc1}I!NGx_g*UryHMNaT-8n(SS#yZKs*)1HoV2VgS%uzKBr1^33xpC> z#2z@(fw3fmpgNcOU;Yz~?LDPwcYdv-2VdtBO}|bS%V;dLIDlL04ozmB?pWxe&+_aj zCYRq^Q6qHIfjt$KpK_JR=D)mbNaS8_c-2 z00~+kyn}zt`T=LMd=c5tXRu>&o1iahkQ|x7$oVM*6eG>(9__WV4>2b{_F(hU(W}CN z&%wE1_)X$==O9~j|H26oiZ9Tx)M4Yl@bfk@K7-coY5G*gil40%5jh@u?b5X?TWc4{ zDRCvByI+6#ZlzUj4|GQ}gXK{mllyD81Vhut6PrS%%Nv772i6|;6+9DLAi(47qeGCP z6+gA$J{c=V1KgHtX;pL6gI4WDf+E zN1OBYu%o7}h)cm>ge|lYxqr)b>U7lv)g@ZuW6z5-ei=f+aVk>)MX#cCTzB6b{Ul@W zc8pKkH9ZvRng1c($dq>+ekA=*z|#6pz%nKQ zTo@4kQxHZEfb*v`d=b0A>Iz=#1r8RqurT@I;bB>M{gw3ipoIqvyQQZa)I!b8&6hSZ zd$pwxg4i`GZ@p19-NA2$i?MrkjWvuw$9Z&(?zWmK^jf;zmH$pOIKZ)@00)S3` zX7zKje(ug@yowA5$1fP2=kTOKh4SKwM1QwtmEjT)NozoK>4grb*K zy6{?4Aa|E0?42B5=Hi=-q2j7hgM8vTM8Fv`ofn4mBu-q@_VHc0CH(cgV|1Q{ zeQ0n>PM9gxsn+O=hL z#)J3mX21i6n=D)C(F|~4SCC73f`9mDN=zh?XxyounpwSTdRe<}>VArDS3%$_Ox~iR zL~cWHfxPpP%=XT6LF4f5_~JylV8~U~N^d5$^X+SgfMi`4xJ#b=gSS!QI9!rZCs9QB z{Re&AR>O~h7S#N^Wb(7#O!}dyn`JXwNy~#u`5>?4rL8Hy9H;WbtxLEW8z)%u@ggN< znBmbKl)*AJgkHVH62JH61EoN^Dsrgg^5?Fs92~kQ zjeIdh-)aB4a2!k%Kt)I2c2m;PA>p-~^2^Mmf@X-d$Oeis>+*E_Iyg9JH+u=NK4rV_ z2$X@Ftn)l~$j-})ybvP0$CN3|^&ZIj(~C(8A^U$3;O71g-2qn|!{vKQ9pC)@jQdlY zRE2}hs{Ls=j{SMJtX-*ADxlS+OLVF;M$n3HBrI#l1pH-pi_0KoW4!_24+;HnXHJpg zO&0rT#8Ctxokk=+sICw?gk6RX_ibK#+Bh2!K1<9%Xi={RX;6i!?|co`Tw_mTNZ@0F zN?qxMcLKjVeRIqw=nnJp6-{ZYUv3IJNe%$^Puy=KB8@7rP2UczF%>EIgu6B*?;4RU zf3=7Z-1KtICO7RXRq05wq>wdJd|DFwo&t9-VU?Xy?_q?6lAUMv4GI9xSc*pjDDc&?5CmV8%sM9`C{)=0ae=TFJNTY6mcBT7Hn<2-~u zUq9x}Y4pRXb*|&u!wi;QsGaSe(1j5J$l{VP*Ufu!e1unL-f_>*nF?DvmB<}KKh;0o z%Q(U1nm^`Hpz|7m-jnMGZgtbl_Cx6q4P?lqL%#^FohHs7aD59Vj{VxU#M53pxJC<_6+_$+s`rK`ICivjM37X1N z2p$Y&)+Hk)4I*?P?XBh)6mZ7((^ua#eH7_f#@rN{tF+3=d$lf5xQsf>xADhW_d99UZ%y*EE#D~aQ zARk(sL;HNLhx%QwwwtCAvF;41dY8lNXBLwWW_LpZ7Isp!T;O2QeYdHmgV%iCu;X8; zRqd3QSOylwAB=LJR!$qP6TN!RuiJnLjFZQ|#&kpX2X76Mt7EVmu_k414V^jS7W0^%Rem+`eOz^YIghh$PKV zofw_dQy7$&u>)}*Ae{mBQ*k%skWLe(y)e(mD!ddLsqwcQLL&>N3F=+}96pidE~^<) z1?PWfwf{~Ba2F7IyAN*fsts&2S<9PG(%t#T&sUzz<=D-DF2FJWr&_ds>J(Xu8P6{| z(WgII#%VQDf_6kun?-A!x+zTr2o85un|Yr(ZrPuoA1g1UZKbjt{P5rY>2Fa)eo6-s zrhnkcHNmygLsDlA6+4|1sa`10#A zv$GR*RQxX0VyXN6g73YEjje6@yF=59tE;cg%@o^{r6`WJ0Hw?+A!}-Al=14W^{pI|7gdPgv!%kD*2!=5DoX@$J)z_{7qc)jj1zr7KiBJ?dJ2=L9U#&%`6V ze|~WHfB)eBRUi(Czt<;Yj`4S9;rr1hA-TdhHWm`Go;wtfp*ZV7HXKx1zE`sFls0T{c0(}k@ z3!O@j>V`L!%?yJI(=(WZOAE9=sW}!PsIMwM{b`MeO(^N$wvZDWCx35)T>~^>8Klze%zbWq} zlGD?p{ruoMdwM$B+P;vzcS!BIzc8MMg>v%q(Pqa6M@Kbx^fWXAfO&{E+5q-R`>$Vm z$p|%7Ra623B;d3U1X+T_r+N$+*B8c%a}Dmaw6usIrXvG}fStX)v>u=d?I*F=1nc(J z$Pf8=c}+V)Fkz7C;&27`(W3{7ii#!_$q5OxF-xU~qO)^sMjuy^y@X{Peh?87GRU)t zeXGP>`pB$VLi}iAd^~)LAHT$MrplVefmt`WuJA_nPu_X^3Da+SnoL+zAwre0P8MH42{$OGQ+UcPYOfa>7KfVs#Mf5KXQm$Rp* z;U1qtaR<+%Os_3?gB^BekU6F%$48s_(Ie|ME<6v+QIsTPM$UnS0Cl_NN;Ob-`mcz= zKUJ}6Xt zn2Fz(kPj9*P#zhz^BRzw<+^*EOg3#*T3$_9N}(V4ecc79x#;hN44Zpil-y)*71)+^ zPOMO_DBZp?wZo@ed99!*ar(aT?FnzYwg&`T1J_mUK_NcZ#K)M=K!gzH++14nMI z8?$p=PZi63dc%S!y%LGj^Wy=WD>2n~1UDYpk;RA*jBnw$LK67b!cG3(pYJAc<}@jr zaQOR0v3&*apMW9?2g`|r68ZOnB$3~O`lZI35B?#6w?K*){^&OPFG(oVZAHwXxz>H( z&}6ko9h;0-Df#$tcP26;gR-%)u@g?yp&3+(=DI${VpGl4I#P~|jxGV!=TBr>C{m|+ z=(7k5a&?_M2D;s>`vM17UCU^)ti9u%aT?a#8oa*=I6Ac`E7c zzen?emyF)L;T9GaR#R7}#z3l92cfqh_Jx%YKd+@j5dKFSZJDmLjBL)aD$dVu8%!6H z7EZ(GlV3%&b#--ZTXA)9!4n37JL#4iU&L{bwN}H=y}v=GEgZC}b!bHx5&lD34OksP ztno6{utlIJ!%RUB%Z5Hrl*^idk?^Nk1hD{677K~O)fL_0QKTO62$P5W5FPtF^fATS ztV%oK7`}7*LHsRDirvb6J}eKalL;?e-u%zR`6$ob3bL2ib9GVN{H&}jV#@K+%hn#Y zLk{tzq%UUw+y&5-vVIu;;xhTm9qVjVtSZfqo>$i0CeHX`qIVIog1o%_DMN9>S8%d0}mp}mJl)G$Id5vbfAFFVAQ$!^pYgt|w5oc;g} zfATjkc?g#_(C?*9mw2O2!aKh9ikTUVID)}NRwyeL3Iu$C=fDM7M(h1De}%4Yrpxie z^I2jnU_|gc`{fF=uzoB=)2KcFMmg-T9=Tr|nz)1fM)#wlxcq6Z{*UZ5RDA~VQyEJH zTz1$Y)WMZUp&SUuS9h68(j0yAxr2e`ogva(hDV`!h@Io(`gD>Kz3Wqz(8U%VBB#6FrTQ1muQcx~5{R%T=( zvzcD;Gg}ci&0S{NnQqli)?V)m``rpY?v!5rW(Ao}?KreV@y2!mud0S`1)GbvV`4;p z!UKgS#^`z=Uja`*<>~a0Qm5|XJ|}{S!%A0B8AydATF0D?AZzLT*aQONS|$1_lP|y1Gx02aq2;FuA!nT&#R$ODI~#!^|w7{NSjqS~3I!w^Hjk zrSOt!GC7&pq%3bbL+ohs0()v_$L_$tWcDKVybYxU85ubMg8scuznQ8JWzS){;sN+8 znZrybsjU`q{KxfrpdUUyey|BOrM9h^S>Vx;%NKv_oyVeH{Lq1c%Mw$PFs%WOSDqiY zvEA#pzLP3?M58jLgYg1-Ojn=eKom4whjsu|>fYv^V0`eQhlOcOC*&$efK|mT5}0ii z4p{gcx+me+=9~abj5!39?Y$6m7qfEu(?{feI-#(Z5n_+SM~Lu zJfDECbN>`fVfl3NSE9&aY+h;Dl#v~b>#K^dvu_-m*Ua2GIXRv7W(7FPnKCwAm)e6x zNcRs9WxdEBQC^R}_ewxbyp2`067;>hp@<#d>7cClr^*;Rfu?Yo3Ma(I#^ zRChF4=oiTb(jTv0zNDt6h8LFg`ubAzEWe~gB}(xjI(i3433l>~M zT5VxA;F{3~$+3qWQ^tc1A%cM_$zvP4^XN+7>+=EA53-{&mocs|t$KJ%m*HmzX!2?H zO-`Cnv86TQ8A_$9*eEon{Q1{W@!7ckKCp5R5yMP40G8kvQE}EVlUjV}f3ro<=zXFB z!Y~-1sVHT)uiBLU;~sZ`{vJ~@G^$NxWubZGb7}_2a(03&%oH)fD--Cd#RfK+B1%`N zzM3n={^JG|H>lH|e>i1_Izx!2Wn?n5`SK_f)fQDlc{2>bbRB*5nU9YzQm6dVPj4Q@ zv15MTka%A};Fc2~g%5cZ(dBY`(!l+(U`sa{**7g849Z3*%HR?2W&8C;pz|e=DZ~zG zu8n-FZO&R|{*uNf$F)anrNn>3wBOGXBc)O>_6sGo))EBgY>s8z2}?Zq$?+;>Qa`DH zP57IH?p6WjcYK}`Fn}iBK+~GaxbMva$m%(#Kw0+eb@LGN-dvXjON(j=r+iX44wzdE z0io^WRPcfs$f!|n|MQ-haF{8g0H#+$z!5;K3Bw~JG;%>9A*Mj{Gi_95 zt;M0koKg0|)A`LCB)+8;v*3~%;Mu}AxbKIgr#}X1^{!-QQJ*jfHn^7~!ubU{AuC+Q zn~!W>7$YFD?sT@J^UlK~;!xEKN-#MT+cz{M`{D&bu2Kq36w)P!SHO6N&y{?X;&N&o z8ZFaVRsP^tvBzwAphTu`tJI-J-V z9IEhT=@3?me^x*nN2|p-*gDeuN-^`{?jN_1iQdUN|V+ zzmOm&qw`Ej-1>CFm7wYqDia7pKsb-2o{UR_FWKNS+iF!ZvpMG>+l~&Lo+6_#&$cCX zQK^S5sLJ&)`V2seRm{42#i%D7%e@drvOa(&LL*3?oC!UVOs;gUloECB_({zH#c&Fv z@SJcQo!#8D8stmHDSN0G0v?ziME>bvuSsGk^ae5Y7wMte&8tP3NE@93QuM>EHlDHy z_KvULLP5jIFDuE%qPi+*d~DPPt;!tr>k;hDNKX0>`(Z!t?m5nNc zhXIx`in*5CYc9Xks5H+fO?-|S zo@e-PXlYv|!I)RK+a)P>PC1x$hZ%T@9Z3`A@UKhD$n0L3Ige#2#3_-!R1#O1%O^$& z=9Pm*s`02E|GBmWTz94XXEfD>u%#YydW|SGJ5>tQKhr;6>Hy}$XCNikSsQ`K&-3Tc z*#X{VG4m1J9{Ta4eMsy+>f+*E6uCgfvEr@IU=O~tq^PKcH8hz6lo#<=GT$M3A&jOA zxqk(j^Gb^WJb;5em6b7h9cGy>z*fX>YiskW)CQBOivv6`HCK-xVxRSTpNBXGc*d+VB6bJqiAH-LDW8}VE!QeGp9znbp z>W%lgu+wM(Xe@@Ne{#*3bUm^iIoKQa44R&s>C0$u`|(n=ZBwT&FV83Pq=FV&Hh@>W zYj1}a3TL5RLkQxczw0e;xsAXbEww2rCXc!N8ZB>r0i;%v5kpsV^*djdc)!Dre88-L zvxu!^pc7U_IJNL!gKn}FE~8?-zNNy*n~1tAl+yhn%v$awG*KC@4k%{Z>F`j$XjsJ+ z`Ny*DI_bA5W$d-4__7#}CZj==Cr+agTe_NL`DzaY`ap^xM6K4jBDU`%(vQn)I==BW zGnCjhuYL@3*~;y=zQK{jwahs^Oyv{YpG-lWg8x$snu!B`5PXSH;r1P?i)hAGR>m3i z-yGXm>Ce`&W%!q8!+E#;*$>2=!{EPpX<3OfX$_*^`-wU)BVA-_i;0N|DDEcl{w19G zNaUo4`8|h0E^cQ!y9fT!3(PQ61ayMg9`zU2^o@A`#jn_TWk?Om1xElVe38#S(;ZHw(b+D9{*h>$W?-^ zdwSA)=Y;k^6zqqUP2e=+=(e8w{ucG&!}goYV^8iopnG)8H+cqg7+YC=%ht>R6(}-Z zJDlB8!zNNJEG&Z=c~#Y(5`%`IdP+X3Rs1XqOG~p~HTI~esI5Gc`lDUnVk;L~e8n_0 zHDQj`fp%RzRR(Hxb~aKZ;nOW%hJvqO5rBf(WMv6-^|IRi>38xl@-sv7Rlfxr^l2^K zU{$7IKfLW-4RgF^!DA#YXRB_YuSu2J7U_;qFZVKubuWA3@e*RyiLUR1Yn^fmE|dg_ z=_eq}8z7addk^sIo&SRN^PZEpiS?;u@f+XiE?~HClHw))$*v-Du+PQQb z!cQ*EEVaCni4#O9hIW5N`8cEDMxFQ%FbIhM|j@T@A?v8{R z-es^d|9Vn>;H|iVyE2d*upkK(1K1pxZCW>zx*kdW|J)ZWF_wcNa)5Jb#YW^7A$O_zJf@(T*u z0fR8Hwhrg9ooJnzA-%cAyoa!xAaqBOj25$rYT1JR!lGGqosO}$w@CBd)iz7F&&+y2 zadGifZOSW=0b|?fS-V zPZo?F*NP%Oj`4mnF&G)GdyxWake_i~LZ2*urFw?1X49m87v_hDrq;yFVVkY<50YfF zMA%Naivp9r&f%mo>`;fQ#M`;a+1YvS^(5b`<>D;&%$j;~kj+538|-M<&6>bGefsj^ zyxAPw2LO{0pR4Z*cqQFDF=Iz)Nxk^8-0ooO*oMMLA?`4)!z-~?Y4`QVgNn#66<^>= zDVx#Op>YRG7o|&9yU&E8HIR5}CYDbnK{_@c=^3Ga8IQX}kS}X4MiYDt?^alOi$1t* z=Wu!6R((OkUkrMIhBZ-gD>Alt?OY6USD`5tIh-9s@>a(0g^gSi4X$h3L7cJufbB!{ zbw$n2dl$+;^jxe4T($P|K5pI+C$pntEAtE<7MUAdP+)bB4CKZ5EDoxuF>7|MgHh+n zhu`=Jv96zz)e5{9$7EUZB2^Qw;`(PrBmR}Or}u5x?)_+-vC{c0mNquHKOkY zH&V&=iuG#uK!gi~kXu3G1n2Q%Oj%i3lbgwj31pBZe)s-;TUS>OxNT=c^x`-w3S(!s z9zRPax_z}Tp+UJ|1|a*W`_$A_*c}FXqx;~<#w8~&nxp&C-(T)?d&M&Io^|$OXkb7& znc$3@WUJZxIxaOe;t`7$Dt?DUbOq+8PoEGSdbB~WEou8)0(7sTF`x0_t8u{6a}I0- zEeB}{v&QF^9E&q1Ffn-{}bjfJb< z%VY>a>-yAAc*YhASBl?XJ#uS+=5>TCz-Cfl}e}aqaF68GrIE@RMlD7_Q#G zo5Fti&{TTUZr`focR)tj?#*@?XKmZ;!8J#>f%bFLdlkuBBx6Q)*J;c8bQ_}wr zOV2=|PxNO0WCajzOupF5B${PbfR4!Q5?!!EjfJ__SpE-|UOw^tK^O$q;Q07>duQCX4hYxsxk}7i8rdItbMInhr#H`xSLNFl>z7)@|5;!oPFb=v znG6UDCAFZ%24X`xz(ihJpYrYKr(m5QoF}nx7~huPv}vXFEd)e_cxmfSfg2_WLB|%5H@t*ULu}BXLM$NBf3-j_7OQy) z!J+g*CzQJJaEktYxQR$4)^mpL$X?l{18u#d^w{ZRSANA!uy`D_@THL&8)hY+Avg{@ z>+7ePAoZ3JMPF_zSqKY4NaB9H%{NJqYV^54);i}QUK66QhoZ9QY;ps;FLI6cj_K8O zb|F4|j#tJi{s$P5?afy(-I(NLB|T#Y_fiT;KUdAcTf7eeJ$OpJ5knbGy~nx#gSEGg ziaL7tMoCHO?hZv-0cj*eN<>OJB&4NtMv?B2Zd8y)B&3E0r9}ymM!JR^V1T;;f9u@) zzVBK0u5(?Bzs8vb&ffcZKK1M`*37Gqts*Kf)VY@v-p#Hs{l^RN0d)o3=fm^=xXgw*$f3=ANIWDW7py?LA_wnSF!9+*3lzqKZX0;o$*E>=Vzm_p)&} zlfZpDR~HLhXFIqr?;!m7H1guFZD6*)yt2ZDe_j`7|^Qmg0jOYV6In0t4FYtO9Wu?m%Z4l znxwB9e_8sapJVvZhgfJMB34SLi=Mf{JHLdOO_)WbhrkH1tl}MC;9X?u>A5msZp5VX z|Gb;bTKaEZImw^(|fKKt?N0N3&K28+Cz18jHt8P5}2!hF(|&AtAWHXowP z`BQOMV})XU)-oIjM(&}O?|8($n~5^|cK1CD{m|c6i-o$SMd>piwS50=mD3-3#%EN| z#-KJ)r%fVyKlE>Y2j%K6se2Ot&E6Ao)^_|K-$Mqr--8Jgv-RVP(1{cTdRYw^|9`7_aM%3H5YI&_xXeN8eNz)Xu%tviHmG*@_K2ye!>EO<_HAmq z35TdI)G|bg1q1~0q6RKNTBses!r`GI=p`)d>bikN$RPjnrC<`T5iTQR_CQ0#GEHDJ z@XpL6^o)$6+}B5$nV3+3FTJ4|(Uo&KtPUo6HUK8fvGruyq*Ae4MiHLD5_d{y-%Cs+ zW3~X7KD>;5Kobfr!r^L~e(`J9<=qm!u*Xx2#)ZtC$|oPpY;;B#*hU?o5zkRL#LjSQ ztR6h|pH6+@{HR<+tDm;BR28IazV*?5)B#jS{F3VQrpst4k=N)*VA=_B^0=L0J$dpZ z$aHg^Lwp+EEj^38x$)?Lh^l5WEr6_&Q9wg(%@@lmA%s- zlIptD*SLL=$~jRr(2Ug(LBU*XPx$Q3p=`qtaUmn!c00CV_6rR-i~Y9?f~W`gElj5- zi~I+_A80nYE3i{A_}}O{JBHSa1JWohy zr>|63sE3HD{N#FK&&c?X(~j43T;*J?ta&>oq3Ig&+HCs4++wJnew^Nq@CW743^gd) zmVaD7S>YS0vuA#>H2JwJ+sj9faIN~&g2u=7A{nI_T3dfYR(L@WVsEMcK{BrqzhzHs zLhx;F?p81@U`j^znGY%Qa`EA3yRofzcF}ZVuffDM17H-QryEt8+K53-o?v4@*xLZn zpH-cc*6sRu3(P(0X}o!I;4`Et+fI6VvbzkT7pWue+tX9YBQJSLc2v;rBkp`Ol{%L| z;H-raj%7{FOZ~vJD@jZW+4C@OolDjv)(aOhm}bV++}8om1zndwrAIFL)oduEjgsWd zl>8Z-I7>kBU(T)(5jw3bPN3J^~(-%2ZU#P~G za5O7;T18s91y!t8)!D2rLKipOtpu7J1uTe7VC9LJ2akI31YEaS^RTC6Bf}aP@3fsf z)bRE{tkp|Dr~jo$aCh78Jz-rMiVDWjF_v+6?!5cTgeA{Or>Y{9i@qD?WZwPsIi}S{ z1KyWT+q#N_+l7q08ZJT$o--%y(iTc{bn-!6d7cY+L%c|Qt%ettOUz$!3YTi*!!7iD z79}^nJ_}09^%rRDyn{{nkyGrsSbHz8YU^&hmP?@}`u)2!!Oa56shH$;qz;OT!QNl& z571vEke0KfUT-@SVrNh3M1MaXq_xHyhs)P0Qc&ruku*L==+=VnKrLw%F^_;Ir30xlxH>>95w5 zTIgq1m0nSMhog)o6g+%Mcl~!k*k-pBbt%r#K_BOL_$4eaFK-HlBC&7YEcL*74=(LU zHVKdgm*((;$rKDs%!&Qpfq{F#&Q?@RTL2eEVF59zrAWJYsKL`I!{e9jy|bvUt*M4e z(^fP#Ha63aQ1F~)9%O-64zUW5r5wt*@7%eIhe?Bp#@DzbCu}p+vgD_opOe$_$E75^ z`j*u~LrFQ-^Qd)s4`eEa8*@(JOnC1u{2&-h9yR3dQoG_nC`^&e3HzyB-uGP=WD?*=Pm8vQCg6vBPhudqdKh-wWs8&xyk43qD4p#_vT?6B{ z03V9;D$cfhm#^umLW3@ND4-*gM6m~5Mx%B1vz4-FY2Zr}CQV%Bl7%*F$#LBHNDZo< zkZfu+2`G!~mgcel^#-uH{9(r~Y#+{}ai$m^lv`PV>W94>1>=>qIye3;wPGh+HmQ?Z zM_m|z@f)5QK$a3$fbA^l9nRLxe04&0l+d;u-JZ`$&w^WG5C>x>{VYCU>O%^s_I>P6 zH8srw2(gJ6BS~c+%9p?bIWjJ2F7Te?SBvCyR_~$9!r8Gne;g#U;mwR z+Z&uE&xJSsC5n?jU5Z4##C6i&Y|wmaW=OotEAD3>52e6xgHL9a+|BFhZ2!QK;0t?` zG(43!WNooVhphO+U6s>L-ee+swzKr8qn~MtH78=`cW;(%9MlPC2w3I)6AxRMWM*9G zW1*fnehCOhdo`0c5k3-8^ML|OmfArVU<7QZ^TbzPwt-w!gRGZ&=tZ7qpr+UUXN!gk zo1^aWtjeck6B4Q=ggGs%pgIKG~&=NvSPNL>c(0}7BkkliYj|=ZrRj0=YFjU3Zrpf`cR<1E@U0IGN=v%#lHP3I1pj$7T{WmW0bHlH z`iQ|S?8(dSXDWaSwxb@3y3+%h(f?s7Jo)(K$L%HZ+5~TkN2>I>+k1YqN z>K7+t;NkOuT?z)Zj-B7%s|?q>+u<`vP#vuO6zUelB`h;;0@s_`L`sAE|EieG+$-ya zqWR44l75`Ku=JPYvNOD!v&c>II0-5hP~5RCKHXt*T9BLXHRxhq%Sl8-$6U>;giA2H ze)A}z4f`Y2@Iy5#4*M1=f)o}E7nNy(xOu+$Wqh7_|ho;6f{!X+@D+agq8 z?(F0!j>8ejbzPXlCMdD+E>oOq^wcr5?Q+q&&=}(XRQ*RljJAbu(zs(Sa3*5jF4^2I zq#>h8H9SCDVe?t2xsmQ+0Qnp<1SV~daal1{K8yIGOX<4`JsVvQrp5BJ{OH*E{Mfwo z>`iChN;cegP|r0`ei)VmHC0)dU##ZLDVllI8_^Lcnbnc>8FPhcIyqzLz)TZkXPc#| zx*%^G`w#hhz4TqYC61=&6lxL$?er_Z7FA=|OV)gLsZa>y|2{~un(1-1XMxK?7qC?X z8QW~}b*qoMCvw5&)qk>~bonMJ7Jw$D(E4pNSeVwM8cJNmFyCfAl+i@n&&+ERuz!y; zmsCBjbu`LvIDX#PrL3wd+$|W6dCz7DMNCW# zTxlY>>@-%EDORgVG=vbG&jhz8fKbrT7gy`g_7mTE^lbW?Tox2vH$X@yN59I-3Zhh5 ze?M9vrPksudfETFb=3oU?+mp3aMy~B%LYvUJYu?kFhM8zQ#c8-WazCpgSP4xG@9Tg1BBF#5#^>h8swYQ*9TEZ!-`2m99=qcIWjcj7ub9r@*Z(8a`7~YEOOt$4;@(3UA+S%a zUJKH*V}pI#)4_C?Rc6MPgKI?dHQ1+bRPmqu*Bih-6*;dbOPz18ttC96iCVAGX3=2n z*}f+k92K%0TCgh>Zrnfk|Grh-xsb_#$U8M3-vCpeRCizeP}Vq*0(2hS7Z=gjr|N18 z#(`3U_QA!ceR5F6O4yq>7*v>uqAcuy*%s8kEXhe8gb2W-RoN~s3JO8`euG>THik}Q z_&^7h*VH6V6LBKQr!oaor1nWUE{>pnjsqJLXa#0uSi<2a)IsNwc>!mqM@r!8s{Xr* zCi!}%;F?u1d_YV?^J2i7?B)ij&h;LfCxcpj^qnv8SH6iVLY%r^^l6SHUt!c@jwA^s zv?7wBey6aHFpH&8ApVbHTq1%S#5E9B%VArkt|zK92>!L;uK7<{d^xsHU-RS&5b#}o z!dSjDS2<@CW2N>P>mmxx?+^v?m8jlrelrvu`hT!>qNNk$+xAiv3TJ z7vzt756^hW*Cu1d(_nOeG5^wK!FhqGzl6BrK%QnX43vg1YldpOf>jY=vm<`jEgc{hbP#sc% z&;4)ndMra@SZ0N%IdbY}M&BVLXFMB&V_O~@{@A02i+riAjpG&%c(U{oS%1b(1&P4w zHVU7E>t^qt*4BLe*qrquUAmm}nkv2eMRZA(&NBXwRO!0BPPAAAVhI2DyYzqE#!&HQ z-?^AdQJwg(|8ODzPrr|EH0-wEN3J@H+~_naQT>hoR2ppyp)QTv*Q13|mnESPzi^G2 z5v-`5BK2#J5rbShwJ(0&s>(42q3Lt(Y29i9;MKV7%*t*|HBf3F)67J%K)^FMtXgGG z+kC+!k4VG;br3SL%}*N>HA*0A9`g0;S1V1)g}Pw^T-?_Jo`6~veW*S*HZ;V4z?wg6 zVrrV>t>)z=TJOGoBcI63-Ne?`b{tI1Nej@rg8Ot*FNC@ZPl~v8@?)wNo<=SA>lH6K z?;DMd1%B%K6UrKs0R4vHwr8NPfMaFvLpJ%HG9QLOL8K6PDj%Wl{GP{Go!ns}V4MuA zB5}Mc{kv$F#(ZOd6l}-=>wzq`Szplkw^LmeNpiO9Zai#hz=)=JKlexaB8aQ9d%mxy zyZ>us8)OoMl*VY!?}V3BcdMOA3q+WCi;y%a^4$^-X8)RPVf3w>tDL8kU(>5lW3Mu_ z#Nu>_$i&itO!mb5Ow#752t)1u1zD?XZga|LzUx!T$FA}XwETIS?hN#kw1J!b#xZrp|TVU<7$f1pFLJ=zira^S6dNzk)WL=57?2&Pn^S*k3+y655HO zhZrYkSs_*psc~tKW23oe9|DGHDZ{+DWeCmP%KLn2YTWP>>@vWM{G+M3c5f;K? zkaM1Udu*Z4W6al%CRzopfDIs3bulh+#2wT!PT1S5u8O){R^XDHtEH-_b1p^dSyl(JY9H7SzcgK>PT>Eam|5z1MCx^ z1Q>4nlexb)^L9GVxX3W+csGxENNDh56^p{Z3G$F^3(#x})sVUveP5t{b3^G7DI+?Z z7nS~O$;g~86XQ3h4D8Ebv~E1K0gy<~ukiaM&e1Yo>XN;zhPhnJJHH6aK6M5A;2!x)Yv77~SyWOY3-Vu#BxYanj}~ZZYA2yqPU;@aHeTd0s5_nybBiOP-R1 z$l+S7!&r8!LoetyawN^a6;)~*vD4pmk>lMoP*-`OlqX{l`#F~~`H#g(S4hQr&n^5Y z*b}lP*!y34$48r@Nq4!W=ax$cb8ESxy=BKjVzPI3HM$t8I)2Ouh^*2JXknhzW`xc; zlv@o;^SRcVd(k74w7rJ>W|e+b8kxt;xl=JfqP)1ie!Vd2!)+Gq^L{rA^+N349?z^M znWBm57#}!dmSFpJJ9o7rs}U_YF#azgC&lvf zdwdpn?F{ejj5DG3gZ`X`^UW<0kVtN3(!d{)pg*VPs4C%r22LU<@bJIhFk7@8*`IP@ zz^`g=Qykc>c+UJ1|M6v~h8?Q4Z;P9Bw~SIQ{Eqg#O)7%^GX`4RJQ9NC$M`JkKa%CrfR;Dk4kJuqREO0qkAz07vMU(kw~2uF zr#r2

?uBp`0zz@EvlXY5=iSLN?AKR;C|g8nI4dxwPFGx)So3uMqQ>n`2~cvI#Ro zogP*#K7vkQuKxuC)S8}zANO|I_{AL^dIW<~#CHYaP8E5VN*pPRv{V@3c3I;MW^=y& zesrmWiAI7~b>4Y7`&`Bb_i)(r3a2vz3s~>vy-#QLzW8+WV-jIc)cFtTE}?ryXCDk`fZ8(d=2gaZa&#{;gnQpkV4CLx1qs<& zCXQIq`%9hRL;K!NZw=*R?sKCbXUdy$I9Hi-V<#9c2Dev$IN!JFNYES>Y9Hw2jh;j(2iXv>=zU{JGA%U z<=r^6`DqrwiJDF7{L@p4FqZTdpvcPHU#NJlDY7N_qgK9w%7Ld3CSAd0@*Q1WdA1`T zI6Y%mLLXJ$4^+GEMEF{V%&0%HSJrCVK1uj}*)paRttYmwhTVMdOO+yqsq&DS?U;Qc zrE*o1&APm^0#PjRX)3Dd4rP~t3R?Y1X_B6o7>-vE*bw9;bcq-**kopYhK6t|x3FR~ z8$$Rztau+>)QjZkXBziJ>BlJeO3Br7u)1i*6i5n&NE1HM*M9{Las(Q5Bu>AAv7ow6 zMuO@k35{ZxH+}Da!2htDFp%ATukU%gzUC7Nbx*6rx9C8>ixq}t_YL9xd4>N&Sp%&; zCifLbc5rEK=f5lvX`gn@CHM~g-iB`z;%5i##QJn=_{?$Uugm~`nUb(i5&1>K&Kotj zw&{lZ>$WC-+K|LoP~L#zLY{6Xabx06ONe~0Po_(p7eYxj<@d#A@8k(3UU^xVQ{1$r_*f{u|Z~cuQj1(Rwebftk#4~wH4hVOY z&hV78_jWQ7F^Pk|M8-JH`(w$Y+xzIi$lk`Ga0ShpXX-O z&L@*z!K|mh%MndR*YdW>M4{ovS&ZkR1|aESQ6F95W6idriM8lWX;G~?b)X955mZxE zEvZDv&z&6U7zSp{3mg7icJCP5*4o32&o;Up&N=Y=1pim4MA_<5%^wBCrVI7a@?OF; zIcDL9JckWi^NYaPfE2@z>M^Gn*CP(B74i??@GN6~u0Q_uRNw$tuz^9TVu2BZBwV0y; zfLw`^F&zvo5!w3G^&CCsCdtr$-x2<|mQi-%2pLfH`+TAZpBvq(%e@G>TK?&c1B7M& z9UJ-)(y{Erfd5bRARcFRd9LTg=kaJA((enuzZ%ZUMlGPK$i_|Y61CJYN43E=1n&ho zBatW4EWqiJAD5?ivmS&nlCVr;;~e9@Fx^J~s%XtS47bDdcRkcej9?2O_540K0#r31 zxSuf|gH5I2YUKdIagYlE=bk|?>xh6xp=%-Om6n1)E|E0L+}Tr4OCIu|xn^i(_j@3Y zQjv)0Z;-Ffy$!2#t_S|_Wg9HF07Z3iNYVZ5~K`8({ z_R0ot#FU-#3WXW{pG9`|c!)3yi?%%wa;DP9Sy>WUaQaGUkR_+DAi&|~PiB-J8B5+Y zHh-&}>w)>2Jrzt`E|5h)a87aGF(7MfN!-PBYIG#*3*7oI`rNs9#o)U;|0RQ8YoMp@ z-T4VZTUrKK3*pn{T$f$Iw%cQF^G`x&*Ktjq#m<;^$Z;lypL&b-%&~-wdLbDA2JaWm zE3T_iJTSBJZ{uAkbG*wAxo-cvdw<&Y@3QAK%mDQ-4fE&|o|ZyuQ}=M`*N54+^`Cm+ zOWU6_)>!kj+TP*o7*{_6E_=(ei?iH1&dQd^I*t$;iKsd>Kz!h}bR4uCz?^25es5%I zOBw5Je)lOdVf?Mo*cSeGNo?~ahqY!l>9>*85o0e!7zn=D40b;pcotZfGA$}JcLSX3 zh2i5{w|e27^}ZG2cI;j5%_hHv)OS`8IyVpJifEl@S2(JMw9A*4pOJSd? zuyFk)p{cs%hb-QMsCz>OU`{nuA_e{3wX}>Bn0*5soswCVlB=(h=5Q9y5+=l_Wz1~L z^qK4vxyUGJ49C#(U9l&w78`~&pyq=I*}PEP5U~$bd1DQl&R5<*rG-gg0tHN*=N1WB|Y-ACz+N--anLkWLL<;q8E z%QD<~)ZGioiYXilMjTa`6cg-;;~+8s4&3vGW<0(W7ax7?G`%b|Pz*NKYmYEN^`SJO z(shSl?hRVCd(^^+tXZ1XNU2^R-wUixKJp_Lm{apFT1pEPg74K>57#-0t8SeMnz#9h z!!#29Sl%Vs!Git7hJsceg0UjP*tYbPZRY|I0bWd!9VyiOietN84i;gi8-KVIA3r8? zq(+FDw;OmtUP@;IqLfZ$slU!;Qm~nhe(cty)?!R4DUBRW^j~mggV9{{F*;D zMrE}$Yt_+XBJB>C{#qL{1&Zy?`sI`*1k2gSwbsb6Ra!>5ryNg!i=|Z9j8NgX1O%fT3y&U zbMj|)RX)Mh<{ykFR~eVAx=@Y49W{FdvCpu->I8^kNPh11orL zI41W_r#@5ZL_j6BqXJ&w|QVB z%(7;624o=-*kOl@JC0G>kJAFnM=xlx09$+7c8BVh)hDfmo$d5H9QmR%5h`7&+pb98 zalZMvk6GM0`rKVpsmGK7l$flp5kf;+5|0l{2x`OgAP4s7rYd#-ncfkzyK^b5V7^xp zP)C-Dgg?81;Zs3yNY;(gi%Icftz>x zfaKSY?LY2fQLh7Gju4!6!n5$K{w`C$u?v~p4=iNK&HI$Xy4pO&n_x8so;G&D{2sH} z^`d#ef~lfbh5PVLzq57k)!^YO7U|8 z>Qs89oQ?B40|8ovdC2eGL@vY_I)J4NXlQ6tG)kipks+^X2(dPQA|+H;PD0s4Q z2S=xQ!+Dm{D%~7jei(rR{qSoc#pW?pggkQ}5N|Fq8d&*G)`lvb1<%UtzM+r4BUK$) zpC%QCVN{e#W}fueD;pyD(CtXIm{6AF-r@J~RD^CaR@3?PJ94{uJvcEB3G7st5y=2Q zI5js+#^UkSc)EOG8B~*zaCM$qU{?h_i{#(-@qqDNwtIAGL2x5R#q1@Ew>|IL>H8MgRyYDi+-a`5N8lsmXnyho}BDv%gP-5IV-|n>@HzFR~spyvay%L|e=9XNB4D z`<|Gl%nCmJlcy{pa+;!BF^hv0#v8r@&ERkk`rM^mcnSZo8~()a7VhxopfXv|3Ilm3 zd_bE8qWfC)>r^nIju9V2(FBnvK^8|iyJFqTFWo0ex=Ch-hhr6Mvz{wFjV}TJCn6)- z*he5wJp^y%J5NxqZ!5|LzPjx4oSx2eJ<}WRDNPGE-z{^d2MG^uIp1CzwViFl-Y6nP zojS8Z8Y4Xx+Iv8z>r3WVXNyk4=eY8BjYQ;c{~+vUgf;gMEQF)hLR~Vq9u%i+CH*Np z_4$O)!+Dh-B-z13+u92G6w>~04|ci8@0d+$6=&PQ<<8(=b5{qu>%(H8l1M~BDFiwy zAgM0VnXTMneZ|hv7UUn10CxW5-VL>Dc8>FxowK0{;wStq>%CWH-6>!)z6M)5JS0K> z$H$o4zOdK9aV`wW)g^ftd-2n)yJs^w589dQ^vK8o_uWHC&^?w!J6{qxAT#f{Pn_DyXh6uPIt7 z&SjR00r%gYbSYz3yu;_^-PPt=PP7sC4n}Wm{BZZQ7>oN;XJ~(8YkX(_7k;Oma*G36 z*~!3Wm{+a|(X7udUTP}awN94|>d)}opo>N}>=5^e>y_`l(*s&E8|SRkr5+`Mcfk(A zT2lSpX7kZ4^9AzvZ?@LoVL`3y!O^bwPn{V8RwIGqtcs z7Or5{4whuR%Z;xkW zI7M!5_!>+wKiFx0g!FuzxDL?YjgZ6JbxFZ>@%5sHGgw7>dA3_c9BiT(7jl^-5#^+m)U+mZH9--lMNf zfJ5xd{!&7qhdQ01^FzCLsRqykcBoNx{g7 z^gKw;FerXI8`G5(KmUmtl^zF?KO?w%G~au0#8NAYPI=^YBa`MPJms?@YP1sxquiq{ zos5YsAN&Z|FAED-ri07(|Im%1E_?(H(9#y`Dg~aj`tt*-hFci%Rbz9pTxC`6+qgdn zZ39t_1{I4}9E;wR8)cBcCC}TLInt|y1am<>u+g8X$$>y(UMqKa4)sx#(;XPypFFSG zgMy~=#c68m&ff{uH?m8cjQDM%CU5w2<8F_+96pKJpY-w~Xr4i00F>W$_iQ>?Jm?SN zsMLoWKyCSr?6i=usVtcotL3LNUt5RKl|&Yf=*uIH)NArx7tDb2W)$l2$>u{Kv$q~8 z+WEZ5Lep1US_XNmR;i4i=Q^s+sedFIQw(-fHNza`}?UD~5asW47Ew)K*Q>eE2!r>SCZE_8^ zY`1ytb5%4cR^Z?GQBZL{i3e%j_)h{h*LzU;@403pjx|fcxK4Z--eb#QMTHzpnw-K~ ze`h-7dIO!SWNeS&nE!>sbFm~gNHhqA%J`i%*L_}g#l{Q!?lQs8DT0G2p84I;+50d@ z=Q4&cx6sKpd#ShHu?JP+H%o<2KdvSd7l!}oq5Haz@uEH&unAskB73~Bt+FYWEu7a? z=x^kyj%3ZB)8^KV%yP3>y={y8>K~i6?kYuLvG=L?Q2JJlMPLbp z=0WJUiB7xIv_}#`K+;M2*kLNyM8LPZ7@Gt#$hUPI>BUzW^CW&bd9j5HrJmF7Ev~73T=6&+$e3$+Du|`BUF=j zi&?6Iws;iF!|tsFpGP?OR6n=qhCCVrhYZY{iYtT_l@kbT>N4h(Bs)Z?C;bnYBt`p@ zJ}czkcn+kVSQ#5n_{oaOp>d!msZ@0qX@H7K?*k;|k?va)6mL1CeZsI##UyX7G|#0E{lf3%rHn34^W{dT`zEf`u91s_95rKEvuw%U7O-GL zetLcqPm6E3+0|UUSaNq|+=ffhvkv{B-C+E{d?XtOkudY^cJHNaR>Av+67E|h!r^|w zm?ua3h!5hTFGcXj0o=A0LXOp}plQoMLgS&BP`_DWe&K|DGrDUN9VRz5q}S^TFF3Fi zv%djirQj!r{)%)3{!0hn5N_nHK%J$>|5Ueo66J#PwE6}qq0~g;JwjXWhM_t~ z2|2X(INgj_z($l0xhrsSo;eA3K?u1C$A}E-ZvuLhT#Kev zdZJgE=F5c6wMFv=3OOw$0m@wXTP&*_t^C}&ib)Hwf8F#a9z8YxbH07)bqzHdbE<9~ z2!ixjy#xW@P&W9G8pJ;}*AOiAmwi*=a}dhkBg{;FPX}HQb1UQx2c6O4GIr}yb=S(} zSQAHtwK;%M6Uj%^b=o%L5I~nsFeng#mNl`}wH7?Ir3cQBv5^OJq?`-jRKeq+I>!B# z0RBrmdjDGd-EgcIxxE|vb!JL=Rit}yTHocpKK8~EYIf>&i0E3XhrP%WXH!I`Qc`{( z$lR!(ieILA^S30nx-pQ$PJqA9f*3`5&?CMz_`6l&)Fc`2=hWYWLI@Y_gNfJAGvxP< z>fk7Ed7}npydDaFk7l2<(X2-_j42~|S0Yd5`rkinWgJT&o2ACME{POZx_Gw4zih|h z+m{aFdM`(6I_yJ+)PpeOM&R$XW~v!BDK05&3H;;(pVo8XNw!&1v@*m1C#nm{dmLv; z?mLWu*Fm+4lxx*w(0uMH3UtY)uj7;ehHTXu!gGIoTrXf^g_P^#w{YRku8qw#viVh> z8-wOxE?28Gq~GY-!$(pW4TYVS-sg}|M4M&-1v-MKn;o?q(CKb_uV4%bHK3pgYYs+R zlZhErtov{D8Af-xF95q-&4ytLC$;-$0firCxeAc;9V2tKWpw7>y{ z6%Y802QS_!ziw##;+Uxika^TI%9Q*Wy557mn&k?h-BXPn2V{)Cl&hwXIx?WxI6;{d zq+rc$m5E&Ce?OY`RGgUbg=`DsnGP`3_2gT^F zb;L)XD>>u38jHQ6=Eo70g$AJCqdU0?v-fR9?yLb9+jX_Q8brfh${Q1^;R?Jy~k;F>wC}1KbRVSZy1lO zBpWu18h-zk+G_aSgD;cB%I=Sk7C-m1nZlw`h`VW=Ev5>*+bOf&77d zh+^QScPIa*10liT$+16nut;#*_`y}dl|eha_NfT|?RoT|*MIeK{X>q?28!X&BX{=Q zDnh}#d^p=>b#fAKB~d}%`1}9#KS|zC!fPbWFpN%bIg9sbq8yU4jE-KCA~ypJqzY=^5u{Xr~BLT@b=&>^HO;I zTdd~xl1;wcu<;RBHCU~JOVJ9=skm!=fU7F^=D1^H6Y`~IUpc)aBl4|UH!CJqg;$K` z{ZYY5KGlZe-ld?M26AL{~MFVP^z8d-}ym49uCgsU@Y`%i5NgyYDZ zcM7wV%%rwGMnhe<)}uvhMoaZ!v&P+JuOC9$E$3Bdwl&HvoEV1iObxVownqRXJ$WW| zL*r_bfq|gwXh~P-CV4yk~8Bk`*%%i~c{6k#Rg z%emAdMS+Fk@+oj)QnZZQ3C=I8sMA?$)BiSxwT%ttvMh`yQ!nN0%aDMqr9XZQjKJW# zm4#9l1t@};f%Ci{H+LQxU3^WOtPt_N)8%=_2aLdF_;?lW6EFoJ?oxsX}}vmyViP;6-v$ha>6dRjMrA0^mK$BLYMX@ za>@yaZk?a}O>$-BZyWyF6NBf(iDs8XA>-|-wxhQ0e#&= z36M~eS{O9o4qwZ0CgWok=~JeNUc8iR7wKt;p8UuqOd zF|F4cg`VoQMqyp)e3e$Y9Pzvk&ElY*Y}UnsDYMsLZd%b$RRca7UqGy1a1KxKkbav) zX>m9(2AWjN5|%07#v#>fwAY(HmC9%};0PKp*vCOdfSEY`uD4P-#|LfS=)lk`5u*_l z?Y$e?+mT;Zcl_Ycz7Q~gc308U3#FJaAnImFQWy(#%+#_?Z94Vocg^JO>}cSgD0C}6 zaP}@wmY{jA@SHke2F{^Fm%`h{7_Qvo`B=FT_Pv+qWUSG+APs9yp9BH9L;$b9)2V9sQGK1T8)`WA2Ku=q0D1erPA(%t zF96W}`Yf>Hhgi?;0hxqCj1Gk(`LPeIL$~T1#+D8{Th5!a{9037uN~qQm6oZq$A|JD zcl^)B<#hdOp{ z!$<=s4Z~63<@MzbtB}z7n=yHgHt3fT0UD()-La_dhb_S^uLit8#0%bH~AuqR+Wb6`YMTAVoj`_i2AG_NqpwnI($>Lr)X1u2E(u7ql#v4oOu{JhuS8~K$% zBqj1Mr3dnv{)uA>kd7v?u7&mg-uWp1`X|Qm#=Preu6xg=`Tg#JAa3~wEW$W2dk@WUE5Z-{`y13WDAWyiDM5Aa!OpZyJNc_%D4kyQ~Fw5Flp|zKZaG5 ziwsOM)2pr3RBbXn1A*HefH>o_vhAD4#0n2OIS=Mg0j@~%9&|wf14jK zqlU54khZczhvSt5vYq-_(+m#7Surj> zLMiTlypq39ct$_;bsQTp$ipZW-u9H&Gnp9N$I%bMa$cTYwV|TcHKGLHZ8?c^r>F7F zH-UDtKtsZ#PW?-m6#i;R6gXYB#q8Iza1jLyI79Q`R3>1S_%K!}jkxw539e%VU5tEe z{DhC^;SYW9Tfmar$^^_h>I|>*>}cdGj3Q4+faMcQJtw zP{1SuJG)s}$74b!?2n-+J2DV8*aE9ZVgbjfAZHojrtlmS9R4ua0|PUJhxL-6W=WM; znj(9SU4qc?M>zkR8w#QfGQ&cK8sWIz71!AR9n;ky^6bAHMAr2?Qk#cV-1R5sU4!G- zhpAZ<1vJ5SpSiOBzIi4snEj;m1w*8P5nz?-Q#{mP%E27`ak%jE^&C7<`L4Wpjqaa0 zj_TK_$NjC)iNOaxSaV>>=;aQCbg z(zAnQ4JzfpV{=B59ehwmh3Ld^aq56y=Nd$D8ZWa6{;_(YySS7!HZA$hW%4HUzCfLd zguRfk=qH`lMF3oT-H(_+qGs8>5v!m&?Qt=@s39ewIQrX6cfdH3?cTeAHt48zzV}lR zFgeEY?e;6*kOBFr`<2mri_|2};E0J6EIpnk0PPQZV&4B7xTl~C7^?DS{Vfah8A$Hp zStcOlb&r0Qu3+8Mc!Q}F_8PJ|TsgP8GV1n@i;HSu@!^{Lg3l8TAw|_IFvvuBrQuos zpYLq>A5JpPH-Ml(w4}bBv-XV0Fz=x-`))CB&*0cp(3Fyn`O9tH;oP~LwfY?@9Iv;R z8qW(RIzv3b9G~^{uwCP39+tlv&qIE7gFDxTx^6X*cPs`ONIz)v&8`JX&(_kH=WANp z8BVXW0|`quK$+r$lOM*VlNpJy;|Dq6pC*0zAm0rtA__iX0+jNy$w9v{E6wuBUkMVHHCRvh?^VBkzpsyOPYNe9whMqjR5?@8dDtx1OYHg6$=ql9=7Gn zMm{KChx3H#q-yXcN0Lode#vPH^P}|V-3Rpn#m&hl>Dahn)BdEoE^B`zkvi^bkOdKa zMI%@(|7AuUJ_WjfT#*;eCYaxNu;-JRcv%Z!QwaWhAfVadc<~^{%360U2tbG8OD3U< zJ~#UexS`+W6gjT-K~v(tOhVzc%dZzW*YTF3pq@as98uJhQXf>6-Uu*mD?RRRDFzJ5 zXv9fV|Ixi-TwGO(PL%csYuXTjn0P2U=z!?_5~^s%pbUAV-U?xRr3FGw>ZqXw$}NGQ zG!nKgK9=I-Hz1oZX@=1Jr#~GcsgHf(U(*aUbu?c`)JumQ8v8hN0+x_>5E9T{K50UR zN%^Yhe%wRpBwGrz#<|agbS8imT$b2=3Uv@04*0z*e2+fMnqs2?$b@Zn2M*#B)w?P$ z`;PcMtYUOr3jf8M1;y3w|J)jPWF92Fm% zVz<3!)#Q=lvh$lg1c_y@(j4f5jh7-8SQLU=f>_#M3m0*9in_DN%&flSaE;4EIpb)M zi!A3r`>Mabv--;bh*c!Dgy*=euX69Ymmg+mZa6KCTF0f_Hz4~&69~jySs5AAYJWT5 zSU|-2YenfH9FSN0NK2qf=Na2rxV;c21FG*jf+dUj6%F`pob6&yDi}>lVT`GmzAid# zrJ_y!&q1_Y>Z66`gaF;ZWYA(s^?2+F?Msj({OpMKtb1P`@be+T`gP^8l>pGJJ%dsi zuhmVFYY4&dZy|(alT9MRc|$-#*t{8$V{dd--N3Bm>|m4DrG7{?eVF$Dqq>Pv@Phz- zIZ_ODj@f;PtqAk`-jm0VpRq953qFt-fA@X?&pQ}{4nRLT=$skJ4nWZTc#p-{a5BJ5 zxhJlSgc=$H8#qWr93i`6ufT0SjrH~{(d5?iAI`IL6x=A2Ex>VPZ~nF8BtLo;PzeUI zrx8Q@1l~%mR>C*Y8p`AM`d~g3PwsV_x<9IK?BxM9I4~vATAm%-vM!T3Nb%)nPzk`_>EZE0}3*&m->^te=(>qQy6 zM(9lca#8eWw4Wv|z>gpFaoS5uz2HXckk*DJZJm*T!rL}Gnr!CQEv~H==yF@NMSq4n zgXO^yGvHcRDd{WY=+dyf%-!48k|nA?yb5B!|2&SL_4j)w4iTYCi(;&ic!e1E5G^0E zKsa=3jk{WM{ztMv$Yn93Vu4zPW$KlJ(FpqV9@a*IXXv zosm&%V8K~~fB+4U9zD2&+rArK;tZ~r)eNki)$N^B)5yG;M&)FS1n3>Gx=Gz(rA0I8 zAeI?{mB^N(KXn+2YxgE!!FJrwOX~2Cy-Z-}s8uVhENbvlTm(t2m-9pcM}QU0C=a~3 zMq?5WuXrx=ztn~YPRc5H2nTuZ zgw%P|vpG6q@8hK%t2RY-_j)7H{e{vmSGu{*IsPUr>Ms)(Lr&4!Q}H!KBO+34Qv8#0 zWF&PsDu)4~fnr$vA5RljruTWeDR=R4L_x<8Luqeko5ck6iZbWrLlRL;)RQeTs8 z#6z$OOsWLWabD3=tH6H-pANlqL~~?7q;jc~Z@AH23hpK~O;E)+2bU?^Z6+4Bu2s9K z)rYVz52D6mp}t@>yMKR=-t3y}bBl2s&$f`AB34q^aNqDV$0 zh$KOj91P?rsYP;*HrV9+)vud##yN9l&3Es0z4u-3{4wV)PtUcx_O7a@o_ebG+0Tn3 zir0lM~e!%+sI*<*?@@2@s)?QlXvV_P~GTj%&hPN;YpS>2TTl(~td+SUhgW_<#Q9 zy3qAq9GZ?+Qm@-+6;>xjQ z;#15|d3BDt-LiVu%HYu~PHE~`Zan|x`~;VMe`|v>X0i8W&v9ql(aV-}9S8IGZx}xA zIkvly)B63l3vMJJ(hjg*Fa7bF9yS7?NzY7+XYa1?e$N8cet3-P1AMh#y>qdp4*R!t zT#&(qlgq5CacqPNaJ5Cq^O+q_UwUdI>#}8h@e$L0-dDwmy6+sU%N|)MRlr`gM#3Wu z9EAKxaZeB~A5y^$qJmU{FKuiCvT(~uuGw?dlfwQB$|oeYalKpj_E`z7hS_OrKR2~$ zH9!=VcP*XI^8Hvm=0hZ>jxxF}4mAmT&9qVl3jWuoI@6atDm4t^<+}I$5Xfqyx>7Pu z!IqL$0S%B-Ck78!)2{tQOnf*#ZAZc!g)=dy`EP`tU}9v`*Ok5>mh{~RbeG*#5EJWN z{_<8y+ZEQnkSq2&#}JpChggl`CD@-q1F<@DZBcejS@{L zL7g8`kmVYBTVfZ0vI%e7M#1$*XndUD4nNJdip5I+9X?{fa zKYaQsbbcQ?G^Xg(34BZt!RJ2l-<$i6YD}Jv>+DVbNecXe9xf!@8)Pmix=WP!Icliy zrL@>o)iB$D2vO5olQrR;tC>(3Td{M7?ktG=qaX0hZ|JVbAv`(NK^n@bgsfSLM%FB` z!?jhet4e@1OXdHxW=Q}(aNS3s=O)?6VY2~bDIF}xz%XEAzxlQ$efOyP7=o2+__n}x z@5V`mZ5^spAKJ=~FD)*Rtu?lt6JsDdgR`P(%&J*8`6-4gF$OW-uUqy2v^YlV=!p&U z)3Ro`-2cu{W9?>r1HLdU(ZD6L;NRI$XfP?S{qS zK)Kk23leT)ME`>;sil49K_(mMxj~7Pmk4P^!O!%YG6+f#BA*8YC0eSd9!v*Sq*~i3 z+Aqi5(y#STJZzPsl4d!d++( zY=4(0>b#>&{R=))nswUM%aVjysZ)h>T)3!DfJ`SKB)93i-#8lsHk<6@husalF$_*( zO_O&X9x4>un|mnS*=>tbTSsRA1Su@1n7&=qMe-3Pl8+)|d~Yg3J`z`oq{QbV7@EQ7 zBd$ZKXW8*pKAPJ*cNZBK-D^PiP%+rW zg8*=S#+iM`N{HGx?%40_yJpP7$OWxRh;((${b&J+t()xj>D)CIhhqa1a}6b&tB#$! ze-7OqK7OHMm^fxJwwiOyOCMzBt(SB-6maCs0P7BI%t-bHw*U>d4r1>K@nEm(V2?^- z(*n3g{l8wLbbvqVz*gR8LGIc8>n~E-?j#KmfEZR!;*Joh(}7LGU}k~S=pzTlgqP@e zzb!K8pLeS6aPOCiO}G;+)n@~3AC88fN&`^9|2RXwrR@s5%zKNPgFF4q2wXOJ{CnLG z6LFjW>f%R62oIYR{WpCM6?RaMq^t0syLW9b2uOD29L&5qRp-DqV24DoVJZh1UJ#5} zar1=Yl@D`&@DR_4hlJI4=ym*}xSarH2#exu5eX3uD?~7kBcD5v1zdhlROJpr1Y?mC zP)#K*$seLSR@ePNsW)B@3d&nqwKW=5h)*gh0N=PJ4QaKg5oIDgA!?#Ic8qOKlyEJO z=VK_c&PXZLbcd*+$I)pH*MD!eglXB2V|ggpvZJ(M>GB+BA6Q#e1-oKk@S4-|U~h6t z7Br9;I0rIjC8PvM+7Wf@^ISo0eA;2$DQ{LUFsTny;~gzROS9`SG4+l;E=Lh;rXY*+ z{xBFXfDVL@qXw3mn}z!GUH=MX`^d+vWl%408MY6nd1i5Eb5%CnZoc;UrQXEXTf%%Z zYg~{zx5Z}D8No=wV-joxEw+Zc<6u^1L@DZ603IFn<8oje)$esRWWvTsQD?wkD*L6o zueb7uj#dx|qIbFG>I~OOWrOg>E2;uZ^1s z7B~-;hND?dp4qGQpn`{=VVehgU?2R36caFoHD@R3fRkI?3BvB9~ zRXM`9$r2i-*%@d9X$i#a%V=G9i^1{}hc?uafDl3n9cQKcSCJ7TWIs{>GI9dyiOCE; zhtP1C21^%wqGACXYnrA6MfG4cV(y901^@T}{BT#3Tdiufz5cL@_sR3GMrLZ&lLaZZ z8~o6uuSmjZB*M5>Oxe@pN)=Q{MB*G9ILRMpLKP8 z3-!Vh)(xewOF>hJ{*=U)KBApRlPtB+EJQz)u|IO?jt}s+#BBHMqToumz5W)AyG35a z>Oc|0rc>|V*}AoGU;dt}RCD5tmpF-Mz=Pn-@S4mNCJ-j>hn+H?V9C%c&w4Tu$5F9E zb7u%G+{b@D7E5>z0U$3dTxll&Jlg5nDiYbzrS44p#rVL+LY7-pn#mLWDQ;EvDhs`Qv?>|IRq7Uwk`x$$V#F zWV?99T-SAZ8+W}nyR%uar{S?$wFzz#_^@Yq8#;%T%-IL=v@eFo40)?Budm77bXaq`GhSYRP>)}G8~mwXsdAsEqLPdB+-lI5mhLc7UdJt{c2HpRzmNU+Bnpr(o7DC$j`H-t+ui?qN9W-gM@u{ zeSIYV;vDfuN?GEApA!U0Yb5F>s=qhBT%K{o6pqgnH+N0DFV8LrjAuD48BcF-ZB1{F z%-kKNAf`UZWb5A`_r`^2M6J}1I^hukO6$hqOO2FFPUaa&l)H&*qKQI-u26e#Ry);f z8@UwM6wWJ@itnRBlfHHB_QnQVdxWeUWyR`*g&Xek=79fiYM-hbnTcjnDJdUNdJzya z5qPtZo|8O4W9(Dqd5z@>GXWtfo2plpCmDSOR*%@t{m$}b-NO=lC{LaD>NzSDX0Hu@ z^@&?@NdiP8O)p-Cz49R_)VfB+5_piwscK*HF&g5%wY{}M)g#m7)$#Dqkwezc{_8Z3 zA{^NK?y;I|w5Q5>!!t%H2ez)8M$AhRUuW06fVplIRI5sLRXXxR#1Iqw{W1w(h!Yv^ zCjT^f9C&Rlk#uFvwMExR;p6CaQZ8nhzOW;Hs#Ng9$>_P|$Oy41U$|~WvB+RlyOadt zsF-Zy=E>!5s%*pQdK9Q8jU`n47e?fPZ~9B)x%{B)m|1UVXTHA6Xw_6lXawO573eCthCJ2QXz**SlpZ z1PSdex{PklhZ7XecO1Q|$036`S*&uq>=2Vv*;!w{dg7W`GpDphT_V2`%s_YXNFRG! zvXL6?YVkDV;`^|~yP3TrCg$0zA^R})uS&-KZ4W#0)5<5LfeDSY&;wfwlvkybtF2G? z;f`sA?40C;@^JY|>D8(UVz*7niS(?Aq(ac;9%8cHa`6>(1)E4}q}7-ZjWn9rYMMt7 z6uz704PRCCDp?&T^G~F5R_qIo&)m3Q@?qOaFmb%Vp>bQk7K@G#vboJ4{LFZM*kPOX zRmWG(XM^h4!@JIlWS=Tl8UR7DyjZu;QT)4fC^>V9gEg#X#OhSM64@!`))d z>qHk16t%8of2lgHZ;HB zu^=Nc9fwRGo%v_cO1QZ+%}>N}rXe6YN_4SV-VD=R(ze1c@8d)&LqHTqnea27^E?wP z)4;TEady$S)0A&jy?XTSMSOQ-m%+F>?lF2!79?JexfGoZS0=kDq5jXC1;%l`z5T}F zp}jOmDgO~Z#-ge1Rej})MIRXT`L~OPnv>THxBY%TGg@X;=&i4$v^?Q0XOC_dDUg;V z{-!bcGb%JE?9(5+0F;r7EW_l1w-vt!{|kY$geIN`*52@(wZh!@Du)|X-j~q8K!`PO z);fWWAVAHd>BG9yP1Du^n;lF*WIPbm)?xL-;6f96G1;J zsq6O6imLjKC@O%EMN1|@hG-;HM$=G-l5j~&_C*0H5$>>pLS@?LH3w@gH)uIN9f3cS z`9y5F5%HGrWV}KJn#9S((d?rs0ih|_LO`BdaW|oT>L-qKbgVL%Cr6dVPQbOIInCU9 z1e~uyv+km7LQqd;f9VyE)uHjxkS28f`U7_Z1*5>nJx;fx-E1d+w7xVuu)6T#A$@Vo zEHfn!*oSu7N7X!vV7)f4l$r!ALO{gMLAjW~6S%E>Yah^~73hB7vZ)h$`Do>3{)jM4 zGJUGwE*w-Q4H9KP&)h~0e|w#}|IZjOQ4iAyjoQ`uvhds+^`3Qup{}E`PEE?)QTl}+ z&_4uU*B2y?`>*f89u~bg<}33VT%Vw;(6(-MmOeMI@ zPdX{7y*rKdw23ikFNL&_g1D5Lk?(q&yw_$JLv|W9?wp1=@irM+_Br~BYHo2kA-gCs zbWELeMFk?tG)3JE+=nHJWEM~GA6gNM6lduYX39kg?E(V2ZNJB-9ze7YIz>pg&3=oZ-s0fg;>TWHBfYsJG8KQ`c(0zc zw`9TpHon4XlArG73=rMcM#j|(bNU}@w_ko#lg%H+#Hqm;&fj-RL;tj`K@G3rF7GR( z)FH)J4qp$^MzYN(bN~CeY;)+~BbS!&Do=L7`&O**C6L2sksae8bykP(Z$pVyg~R_P zfW|4o;U{HMk8;D|rwP;uDtVPe=7lFpu*>vGh@4M5xfFV7IEVu0Y{rz2To_KAjQf3n zqemALPGi6rlosKppH)1ePUA?!g6(4$!o~9brydvhEFG^g=ii|qzRrvQ4!uW8mt^6t z?~Ud@ggXJ{b4*jRx^&y&HIylV=kWgTPaGM|G$01Qr%<*=NCAFNZs>IhPWU~dq$myu z*r6XTg{4BsOs!(7XM>R0s^gChgLu$>Bsuq+hH{|%Y23|mmPLH~t@H0Y-2-KJ^E0|u zlX~uT8QCi=N8?VHk#}3G3$=22wcZ+lU|w-vkU_y7q8v&jU7q~Hmc~@!q3qX4O@@zm zEa2PeepQ}X58xfU3$Scl`|{;ccDJP&Ju$nX`!}YL$40bub;nCN(GeHN?C5&GtEU?D zXHIw8PK;*Rp^M-5r03>dx_R@a&pLe(Cwlzin38gOb~%ZAM|i!hl&{x40IbEn6X4d2V2}%JX*jhj4QK63rghmC=%K@W6m(cWo%AZ+5h(E#Le1@4frn zD0WRZ(U`?0<(=&<+hSO_tZS6LN>8K%$%se&(!)JqY+n`2JUOotJ-d*z!hmg}dgRjo z_6*jN<2Oel7+-rMZcb=KoEZ0TuddQ?`Kg0dNOC^JAv0WlpW^E3Nun~Tg7r5%+%!UxV-k$vzE(~aghNm;5=Fy7d$0jH^UZoP7k z(vv1-hHu`yNiwZ|YQMHHnLu_m-==p2UQQ0rGAcejr5=VdWG#i~@oH4~OW88@--mQ& z8q{~&mh(P5!1!F&cTery;OAs`9c&zZPmRpPb8}H9y*OX~;eJ@OdeqXfar=BA9sB0m zBDs{fr`A*H#D>tY&L?hotn@k1iS!DKOy9{uCEhZqILgHDOR2z3W*1FUAcqTH$$eKJ zlEBG=3l#crLcHoP+lU}Md{pqfc~yFKc(*bRD#|e8P;_|fZ$r`RTe-`1ajy*E#d8mC zBmL#e7j>CgJQuOjHRRol;Rbu$WwWMG*8lN>>t+US8~PUU8hog!3+Jg6A-Kzr-e(K1 z2#L{emo9y`#zyyVoCnWOf)_Oe;mx*$)i~>#e1~y$yT)w}jkuG%`gt|enmO|YW3I@9 zSaTZiM)hcj3STgTq)QDv+inJrX64%UOC3FX_qCz>Vu!4}T>i>OUlKD+Poe$B%FhA) z)c5e71{Pb-Uk``oJ8kIu`TO_pCHeueoJyIIa`@6`pJ*TR)yD*=cOx9{S0E>?Vkp;6 zLQZ<#lXRFDQt#o^7AtS~*8?mfmQXb2o$*sAhcntuyP4*_Ir5B_3-18#cn5&G>UTLn zce83JE9X+3MYgBv_s$X9kc7ku=|^r;9gH=tXiw%)zAc`k-QyaD@3Xt`j4Nv!&HD4IdE%&#*6`-aHlCoOxEF(fN51th4-#z zjdFNh3SPy1S%9)FUDTO`x2fiO1Nh6hcyuyIqqcgThXY$-Q~!Vidf-lN2z#zo8;6}^ z0qmbV(bP=4_39fcq&?~@W_nf@aC*Vd{e(MLztRbSj?=>yi=9IOt7HCQ^)y*>DAoV; zj0p{j8BWg<88X~2o`7Er_~+8^%aA5Ur_|NsCAm!)$}dFezK42}nT6JN)k*K|Pm>#} z@zUY7w4NpZIYGi9WL=E2e&Mt-ckQT@n{&&CZD)pFE4&LADS@&tHFs8gdMucP(M{7Z zGr!-XI1db4??*v@x@M>{z^uZHaER`QNV_V3odmpm6wVpvEC+VwXiHHGg~&B;EiMVq z7ls7Vi|$d|*mHp4m@r|CxKkE9X`_;&8p#6hE=hQnuA4$C!Pc-oyWr^PsHqZgxG>)O z_^a#VO3K!~MD92eplD|0|H4!dIEq>5(!zG^Hcft$SlAJkDTTaWlNgDd-g21Of9wnsr+Q2f z#P+(E@()M0)@Nj zdE{KAMaP@V*zW!Gq=*}Rgx05$wJPc(0tr>M2f(5ZTIl$C~t#?dw+lvATFM$Ey-3B8h?lEN{)-oR8R zq4NA>Fg(sw|K%~2@0dqqq2MfFpzwzbE)ym9bOWq6(D3woLXHVM|0xs^=V?;noOA2j zTUqml7YBufB(@b|r45BX<8J!#u5tQpiX*2IFx8K@OW`Rpna^*peLjTtAt1d1R?QGs zb(ezBFIDJ$cp9wh_%N+m5y}xo-Ig1GEZgv8De5@R0eQmIKRY78 za+EM*FAfq@YO3O_U;Fpg_YAK6FP34JC!LC)-3n%uS~gC*-K)4|-oAO_<_YbQ*=4?n zZI?l<*6d*sEG#%NnYe98;>|$?pI0;XBDzVC@%FpE08G})#ITr}Im{m1u4 z9a);{Kw`?JY^9e}{oi6RQ4J-P4Q<~_BE^O~rxwhOBl~?LbNFYoP_JAI$AU|M(Q5@m zC6Ct6P`-v@za#l$KP4A0Ay!AftYN>mA#sfn-wC%p-mSo`B@fnRP}V?oG@AIyf|82@ zK17#g6%VDORX<_-0i057dRnuV5 zAQ4&RIohe8@6|B-ap^}ldh^WBa-;e4%XJ-R1nuldag|9U5ah!mP(Z$yd?a+;jA%q?PT0@ph>pZR@8dphuo$Kh=<&9tyI?<&8V3ZD zs1gFIB!9r^m+xtv#3k)7;4ZRgVUew3OwsfWc=vCyhPHbp`vnSKp*}I)nHf6Sma2lz zGMdhewQ51<+nPk4u^WP72mCjLTPtPc_J*iw)xOD|LWfeZUXn;uKqN#|M{+#XFqJ!O zOL_%xTgDls<8%O`DfnJ~-3uVPQfaE?oLA4UH6;}Qi$CM*M1;pusEJ3y9-Q~w1r~$h zgduz2_NQ}4 zGbvYaG5%2`Qr=iuZseQQAC45YjWhIE9Tl`6sc{+6h&{`GKx!o+M#^0uQ!=lf2LEvi zT!%;+Y3>4VDjh=i@NawvOTN7apuh|}QVU_RqqB2QBT@RBH@P-;9=ygSS7Q48fTc2r zTCtP2<^S&N^t@cafT4fR2zb)tf&On5Pfbn5G@XmA-Ym1*HgxQ`Y(E;V+Zip|rux>T+(Yo%Ct|UCGcVu~HUmJqM7-)+ zy%E;xXDphIb(MRT_uT8gja2VNCh^>TA@(p+x1*r)qfRzCp zto)mBFeH?K)7#M}zb}{`MKAjbUaL^N+^+qk#`UlvKRk^UR$gvbmS@?S^1`6-Fi|iW z-0m7G2h$VKSGi;*u7J3Umy9YBBh}=G%UKnl*6cbU!F2iZWkH8ARRB-xD68SBz}!27 za+6S|wH#?N8aF;p^`MxcZysch%pfg|62>FOL+8Vj{SANprt)Dc4m{t9-Ok&E7WJ0?ofR)3FN= zpZ5k7hFddJB7iqQLO?Vn1a5Qq2Q6XzZAMr~wCd+GXf8}cq);xvC7G{KvYB4eS+m;D zAi?#{yfFkSXp+W7!_cxKe%)>@4M}#Swy@4BJP#$r$&QYWkL(D;VG)Nq|G~DO@0H@S z=gjgCh~wiSs2H+JEZb8M8su3rUmO$j*eHP8E^f(k#-`^?;Y4D9&z}2Fi%m=6nQJ?A zk9|FFYoWvVRfIz!rXVEQcZ3OT&)xAVFf%<#j$!y3BVY)?_Egh)8cKwHUD&e56&j)1zEv{v8)Q1MV z!@p6!=qwymteG*nxisqb0em;O!U1Wi`PC=>G_~fZnIMmx98|F`icFS#)~4elOjsF`g=vdhSL-mE|-5- z)7P|ceYPV$RJYINe4lG&{te9tJ3z{G5Woh&~Y1i|rP zzx2FNMhe95>R<5%A{9~~@(OQ>-<=5R@!Z~QP1T4`@HSRZP>_5B>=X@JxLE|_ptcOS zZS-4?=|^dZHerLGAF6C`Z8rDk0|Of=?qt(KIrrSaCK!0zJ^eJ|&x$8keh%l}s6EtG z=#W~nxzybXL@#Q-QM6Ko<}StV>ZiwD%W|%suSijgz5!(=LSUEKioL0%DmKxDO%$<0igKsSCoeaNU%=If;c_dMNUq7&*8tGg79`e69Xrk4gn zP%Cyx=2^2sttj@uxDigxe7Pkn5Ke9EMZXKwitD~-aX4Zw8rMX9^Shd;IX#=*w%eDC zrQhmHId?ouYTm8;2Im%=&{hra4H%V_FX#3x?z_^EX-Mu}Lrhn1H1fDmARM~PX?d}U z_|7s1(plEG+!&AQ02c6q%fbY+uA!aZ$jy!MQ^hIn^rvr;MhzBP8~(t!e|vk)e$bEB zTr9`DkxsA7tq@*>z5;KZ$BI}8%-`T}q}VognPl&JZ>@VO!k}A(>Mq5`SvcjwlheH- z3kIbwjtOne<;?AOa-X-SaM?mcHN=)F0b1E@ z)5q%;As?(s$mbY?`Lmt4&?;U%lZ*RD*8pL<$GyD55BDA|9ySf;UqFq$yS^0Kj7gxt zK}k30hC*)U`+d3j&w%qYSUSSy_8ve#M}i$X-Hmj9IIDs}#`UP(Aa7+)-FwPM2$WQa zdqJh7bMCwyy-03zSsk>Dy6v zr#pGa4+S=cPNz_Ds$aN#IlSP#_0601Mj?xl#Z8;TQCo$cQ6kpQ7u{d#(?@e!w@U9D z>Ws1uoU_0Okr#}nq*wly)V|pQ!j69p9t$@?A0b>k9)E8s)H5yt-}+y`b^Z*Qe;*$A zG!!)2Us|dnCA4%9+RN$wQT_*4N7DNv%(A!hORNV>>L>bUdH!PzY5TU4EijTb*lYSs zk^_>ceVdwShxG^ax6RQF`vL5_hJ^bHLTtP96KKwL7%i?KmL=}J7)EgaKByEfKJV7qn%ZXmz z^in-Gmvh}_RG;)5Qp~YvGz6xxK|e702Q|JWE3nh zcwoOBOOi!!uGjJo7qHx!qMU&5W4>vW%}Ik2^pdHFpNkB1y{{4-x+L#al3aCj@8Tm+ zT-5AKdI9uPgMq3y1H=`ENN?(Suna1oUY}__Eu%nhAI?pm;EK>E-oNRzv7?wj>do}A z<0Isv5^0HX*A>cE#dSRzei$C`zCer}gZF1*ynEvtDaj(Bjg4SSSMuQ_=(p^J*}0Tjj{+*bpJ?o#wANj76d3*ZJ^K1 z^)T@4NS<_7RQC{SK;+kWB6A*8Mfuv_RD=IC0HDdV-01665XBI_KnobI7Uy``-nS?TXKJfMON9hbgd zRCPV_j{79pNWIaduElO^NWq=Qk{NKnlnXoy`K7w*5m(X$c8=Cm0)%sP05JlyUh45c zj_VM+Yt07Xx#)rU55VE~NWNx6*XCcV)Gcc>>DAeTdvV#l!UXp-d43lTcPm`qj2p$8 zq)V~yI%~w~=`y;k-L92UlmE1gL;A`R!({su%j(EPS7l$*BIToVOePo>wHmcFa9ic~ zo78w_QH>3+QHmms>o#Q{z$N_3z45h71EAX)dwj6w!fv>rAoFOYf_jmPH7NK5(Fh-K zShqfb4htzE-XI4L9S1TfK*;E?-a;*fg6NC{=ec#tIOWEL-<0!fB8nsKHHDHGujLwc z-VW(Ot)g*1n3Z$6HlJ1_T&GdIhStV8_gi-%15q$39B&d?A$JFYus*~O;m#o8@s2W< z>Z5~e#*WVM%An9uVu?RI6_WI&YeEVxz(%016AJ>J-1E!DeXcA91#x`;097M%k5fM)UBK~%HP^k_rj91#7G2Sv4Av|Zjeq3;bXdIa7Z+mdzgur`Z=aBD?^&FMniB=vYFAfsb!X>SB_3~MO z@C@2cbUSW_-Asn!wGe$u2r6vR)%+J95zbkz()vL zTp_pin+gYT%Q%-slH7$wlbVqLX=c;45)%c5EQwF~!+ykzd~C{oWlV4lQ#;nFWn`K|_1?-8<~{1HhRSr_oq1!uM7 zKMerkd2&9+KNPT7h-q^j7@+ST2Iw2Ao8b(|xTN~s1r{lyN z&I8$(^ybZpkX=xXhqR??kSrIW-lV5PD>3(DVN;wW52r?4ScB{!5LimksiH6Ga~~8g zaunoua;Gk>yy-~SD{14tZ0}gOW*AFRI@CIallanMeVduDdV>NR(I3F+Ak`e`4`O%I zrpeMnk=H1&02&btq7nHHp5B{nyhVb#w*E@cy@l57T=V32Wu7au2O>6eW~7Srq&#|? zlMT8FclTHOQ9e=zlP5OSx=*r0B+OpcM#Q27L~4jy(|SzenRx$jQ^ibQsW_z&h?7zR zuJ0kGR@zat9^#LXmw||wg6L@>U_3dZbQCh5=r4NOpHbjb-xW~7KXk$~_S&Sm(1MKnye1Gjq!dl3Q;NRA|hfWxitESeLK-63&5aQrNrxDzG} z7)0X6IYZMDa=ro?q!A7*-{P19#dgo4jZuDC^edogKQ6+P?=@YTvq-frsh(+BPQ~UX6yWVl0sfe*UJ3+U#m z)&*sWt{E%eaF<^FVNyp=qEjFLY$bT%hqKuTs^B1z-y!(C-1xv*m=ky#FUaQn5N8!q zY7In0=u}lzYPq2+;edJcf95JfaZT4%xW^4M*s{s*VB$RJC+IlU9uv4smum(*2XB-V z6=?U$Qb{{Kvwowy?6|RFhnh@|xUo3ZA?qNAW@~Aj?JS(ht-k?vyzFpA(elVz@s&)> z92Rm!7>&GR_{~^;&J*5ppqMgzS4P95L#(!NY{_GDt@b_{)n1zor?mwuM1oTSdaBkOQ^mp! zY`yP!4}%Z4f}u0*Z(s^KD8Z{0Uh`Qty+xPfoQEDK*cmTldd;BE_R%pbtv^oEHA(Rq zgP>I_8+3`tFm@!5bu;zZd33Y((UBXw{j6+F*UcXI?l|3v_~VV0xk16}Umj)baT}-I z_{?}QkKydy3u8^O^ukAGfV|f<0YU(&`tHqqV{VKR35~Wb6MNmuOBK;s^xYjd17vh> zgM!c+97#kmO>q}Qu#fD*`ViPM#FQnWK_`wh=;*+|8ZS)Z>oy?eDG8>iWQt7dy>92Z2HzaNXoK z8;HIQweVFj8G@7`3VUO+HMt(O+_Njy`WyPCJV~UKdl4|ShDgGIEJ04U9~3K^ppT#u zZgvnY+~c7kwVG65?rM`I<-SJj05qiPSVJV0Fy}Fmn_-47liORg{Qb_u6nc4<7w_~w zIV$v}qqQadN~TR5B4Nai)>n#bI#3)0s{gpECw4>$wKkdR`{1GcgM9~6(-RZrhFbOW z_u#nj%Mr&tWEMj7#lr@Fc)D;2xP7i4MD!P<=md) zW7i53%nneDo@-rMc`#dx{YNK5wDnjIvG;WZk_yb<;UzvsxJ0#%AVvs$l(BeWd_Yr- z_%P=V1fL}kl4C-F{ZR)rgBakSlEzwASU3kPLjsdK=m*v$Qinz$sgHbnXAkUK{sKz9 zvKETy+MN6X!S&k2^mbxgS{uc+#I7*@!WhYb8p4cj?zoiOm8=r1@??8jXhW2Uipw(Q zxNxt7+RR>5>D(vsT>DYwqo;4ZFmz}X(aSFwbI!WfkBAJx?3WA-c))kU5#bg{<5-<~ z>>eW0t?4*jW0XQ1YV4?;8ew%HJ*{xtpKZl^KTe4DyS)RIbZmL`aY1A7-CN)Dl(NdV z)-qDO#`)JiGXfZR!r-}Khfu|4bz$6y2WD_D&va1>m8e(kue>3uxto4HCuXkB+Q`KZ>m6>#lm79^?FgxZ_lMEZHwl79Gp-o71Zxo<9#<@8PzyfqL>O7zbR26qc9 z)Jv>FK_PTdFNx@Ay(R%>gM@>LSp*L8W=4wU0e}q$R8O&aZ{Da;RmO=ay>p=}0>b{V zUziRi=#d;7+FW0*e@w-h1ozi|qJ_C|duu%a($@YJsh?k{a1`ZP$2SWzUGL%?vL44< zkBQ!!xpGw4QnTgUEV_Klv4wc9)4(- z$1}^2+eyPs=S0(Hd$yj@Shu$Yhc4gunWH(|9~&VTS|Pn(8=JQ`bMCU*HF5=MirJHKT&ambm*` z9#F@MJ*8Pcdw0_sYC6>o%>E%`T$uO@DqqU3Jgd-?SKi9-l`ga<9KEWbu;lp|6bPXo zV=%oUTj_AW*;Ss`tSwIarg*?{XXjTzqjL1+Lx#F^N&ikD>1*J4lZ}e+A>HG&tgNj3 z59y5^XLckYC-pxE++gS-*?;WF)`_n<*7g&|pC3@DXp;oUGpRwii0VnvF@Ydv5+kD+ zMH*BrT&R{=283(b8Skfv+}+APTHhTx3H2CBmVQr<2im&tgEfpLt7!|_zve7uqOf05 zZ0iS_sBY+Q^M~D_;P8_%BBB`0!ia28c*~L9*gsLQ{qmGCzWyR4rB-B`pM7OibT=3g zYHqW}4ho46>RBQ4YG;&)BImWrHW3kih;hzoVr5{4!u?Oq%OyyG_9>n$UM4{sd?c+# zkRO>5#2_<*l#ikbPyx|g^Rfw0c4uBY?Y7Ii07{#J$0@E-OIk&nsV=y~vZTY+X6gUT zB-!Q)-zz}t-G$JVpw$0!xVl+%lH4F4HE$j%?O6uN0@wPDv`aa7b!E-afzRNBYG;;_ zYgwW3N}OujC&)N8NlKyiH=9Llo#UQ-c+%NW@`nf~Ml^$0Vt;mUq)>e4oMa@)^4z%6 zGb5q%%XHv!7-qqxitgqJ;je5Rz{Fy7lak<9he5Sj6S zlyU(l|A$GBnp4jkm6#kn>hh6cygIVr1I!69ZKq|!guM)j;?0a)hCOs~3cYJ|m0%7b zkK(H`FkH!1%m(aG;Iy7T#{-?_FuL)yTT7uZp+k<#R@(Rm#Iaw}2?&DxZ8w~%k2_re zIqsBLgjEWJpKl4WhUOCXBNq^4HfhzQy4XvM_F8!e;798%h$EHUq)&Kz75Jb=0VJ&(*Ye8L&D?;qD7Z7coPul7=0 z&q)nTiQ-wE<>2U|-r<0rkO}AMk#uZyY=4k?$EKNbe)hj!?PFs0Yz6K4=lT7n#_^p) zFPV^?BoLC7bMJ-B*hZKwGPpxCR(*u%Fobn-zDvG`!L$Kd6M4XU>)i>a%L5<#hmPVe z{o>Ws*v%0b`18S)L6SK3SNAV`$_gkLyK)uA8lyQul5iN!l*JvmouU!X2N5ANUtEx4 zZEfiX545Hlx)QR3Ac15?qFfiJ*tJqrYsG9+zV^d4PjVP<0>zVvf^~rm4(s5)@pA|Z zDmIq_;2WzW-x%(xo_(l(9z+NI7`fCxqqqz_NRzjmk7eZFc)u|19KO-@i18*jXGl}8 zVt&nmh*I6N@27a)JG;_G7r`hQ#F(QVT-M~N#d?v&NBR1N#Q{~pa)j4r@5 z_~c?-UA+dxiFh%d6lg{MQdaP0*LdX4@V&>w(li_a*QxLeEQNWTPxRZ88*`uSXTAy8 z1J?6GPF ziuGL3NT>EmB11|f49+qLVlvdac=6&a9msaCWP+j*rj3T^RzaZ95$*JIs51B3=LZQM z=oS9`nS%=W&J?Z@2;Bf=_(dN~k4(250^DD#cJr$opiR5IvHv&`icy>1EI&c(#{T+& ztYK&&Z_BEP1>a?m%26zvZ)j{SDhhS;=;^uOaEFT69|_<7k-pZ5{&PgwYrWwFvv8=Hoa!6nO|e*vQ@H_1%Z!@~$Kzbpk8%1tlkzF*u_waA!}XSrL3M>G-}bNqeL%}fc2SYO4gdp~hVelL zUIg7%<}#*x2i~KNL;E+zL|d~>q$5vV^MN)wt-|!zSBgklmi=5VjwxVm(RTU?tW=VH}?H*QRR1aH&^TKR|by_aF9~VLy)EsB0&xTC{#+ zbsj{%e6m6xf%EGsa!i*10Qzwg#Fcw7jXfj6ye4H5mV9Tfe<8KozF~Z{^y2#>b8iSc z;Q;=%K=8pqYwUc@d}^S#W3gh_fk)Qr&WKDc`t)rU>&B=v!uVlbX19IJSN&n~(2TPZ z7FJ-8g%w&*IdhA1pC^OL`Im(i%A^ox*t0hc$2PYf3Z^u#n_(;CH7}{%ja+VERqt2LBnpwbUyo!T>y3#45TYCow+))M?V7yjn3mKQt=S{<9lROz^{w*&Zxyo z0nIE`;Pn7vsjZb=)LD1vEx6tJ_;k-w=yCouVw`{00qF(Pt$&%_>97TKKVP(~1Oz$H zLF}gl0-0SAhFTKnW7(i?f(m+MKz!Lxd~O{k_G*20llweyhA$p=m{H~@i=u%fQP9h|?pGjR55hJh zP2cqm1kO68>tu!?bw3a_L~0lFidM0u_{fLTQT@>_3x=Wq(NR%BUIbC+c}PC5tSvj$ zAp$y4Zqkv#v7+cb*;GDkq(bjqps;L~MEJQ**qAMU9EYMhCcM0O3*DME=DGE5K9OVK zIw`d*;%frCBjg4o2$$MW)Ek6&Jj4~XGj~oWA{rKi=f*F~@w}iTdJHJ&@k@(AYA6c0 zg=0ggARHc&Z~nv$p!3o#spJTlFyRrmKdcJX!Sn0$+@&)BOS^)jje|CCd^h&@MY6T` zA$-a97isXJz3{({8dIee|wpkZ+vCsQgmc8Yk zo|^r^tco|jJUWPsVx_%#vzLw*LA@}PIP!qrhE%Hg5wDK*SlNR*#!S@q9Z|itYT$i`8ZIWH#zv z;9v8w@sbfBrmHg&Z~#t35bC+3he~i|HUY8!4twQq(Re(W70-%a4s z$@(jUQ8SV&1HMC1 zdXWu-qPuA&TWiw*HgX1BM9bH!MHY%-U}|(IfWOI*p`>^^&STBW&N@~CbqUdT*-+#g z!;p#3m@8n1kMC`^IOE*}ElJOSqCMf~Rr6eMwe_Cz!EF8aCoEmQ!TeUj>Hz$A5-^jk z<(}IKX)oJ?Q8cea95l+D@M6wq?ESJb;t(f$VHYP*^uKng|HbV9VJt=Q*M2veAAMS1 z&Jp1hos^T8D7?Lr&lsKw6Cw|@wrD4NuU)yg47*_b*%62l`*50h0BN_8{BO0}TEDF{ zi=;a;NI5e_49v?AW{S5k2pUZoT zogx5|nTc%H_l!i%mqKllYd2gq!0J?L9XH;I0eSUUZpJdqB8pp9jORgP^-*yuOpe-v zGPMp0`#W3uy7e%pH3FojplQ{UjM*Lqpski~0m*C(jf1OdqW7|aFRn|DFs7T>ir3g$ zHX-j=D|Zs!h`;q=R&Xi)_9-2A@EHDDt)87_GP->M#O!PTh&f4m&D zci|v_jqRVs8g(h|JR=&}8*%$4?#7mV^4H#&zZ@T|yL>WSnqld9Vcz^Vmf10TD7ujl zC`zs?Kj4WR5840X@qif28l4pmrrWKylvOa~9}`i$s~lQ^`{)J>t304{C6=AOK8Vco zzbx(pbzwfn#V?##ddX}fnPI_UhcEA+kj!R4ul@RxJSSb4Zvp z;fOQcGW1}XQlKP(Hx@F`sA=qj@NXJccOvQV3I%O^XnOh2>L2%A2(OA74ip{fo%P6v z3{bYUo56i(i((BRbtt_}fh?3GKZ0{DFX4?MT-URk@Hn8R{qdSs0l>A5a&}BW$Mo*X zePsjqV_xaB^CWN&KXYn-M<}(j{Du8pPPfwC>=$;mrd{SYP#Ax0j(IR!=PznruNJY9 z`J`mxnZ4mhMaoCdAjAjQ?lxDZ0*w&DEa8ZUMlZ{#L-KjIUGYV;mV4s&Q zvd=33C{P96v|3$Y-E=Kl%p&1iLFKjz;_1~fQkRo}qMr9ApY8_~)qm`3=EKdTZs~SB z?V5`-N_xs)je-p5teapb4b;K1F`&RV3Q zdp@gCa`KK8CD769torD&C#G zCOx@yU=iooK__us*BczG_CMbO#iWZtHhA@jc;;!xte0o2I-h@YB0BALGB-;^sYf~N zf?FOb3c!THikKp9Ej!@m*n@bS0{gz~rnK}TSWhE7<+j5>0m{a2`XS(p2n*anT&GR1 zkP?}JW~z=fI{6Zm^2r|L1PM(XJ-(jqg?Jy%B>M=K`?)DsjK|=dczF7)4GH(e0E2x1vnw{S0!JXdd z!MAQkf9L`A8m|eEhJh@MhsyG~cLh+*fw%u~`9@{R8n|c(+(}pf8%!R3M+5+<#^3?* zEG3sDl-({>R{Gw5xk*rFll*g;{okI%8>#F4nD10us*<8o9F>K2LQ5wmK27m=Gg}tI z_VatF@9BK{eEC3mep;KIG%@y2O?YvM=o~vS7IqwsdVkj4$t>r0ghl5ou#S2=Ek-ku zhm}m491!PJ6ZH0gE+@oS>+-swwCO-Z3t27pq?s8?1BCM(X#fLAkgXy!@ z|L-05^G*JmW*ra1wY#tcuVigI4f)+p$Gg}N8GVw&bQu=?%A>1&vVf5YMK)4r)JMN^ zhzJEZ0$VZ2gA4FpGORniC+pSKqCdoQxly05Q*yx!sSZcW$z32zs-f>DAR2{Qs;)XJ zoGA$EcSPYKGYQ;LtC0C_-~)s5k)4p5u#+=$;YnK_(K@%9jTR5imA>F*0Q-NJVlcdT zv6!}=-(;i2@H;AI1jve-uiG<%G=xu(KGzNYz$j`W7b(@YI+MRx#O5mROvUu6^A%8xCWHX^BtIoa>YH zd=ldh`gRf6QuoI4aCKM%p?3@t%g6oPNWF>RlJE8U!oCyK_Ur_;JziKlmK}xYIo0bI zNy9+8%p-6$<)O@RxViiHZQYl7443-QE^`;s5kOY08 zJ~EHtk{t3@o6MU@4WrZO!u>Ur4;7MKTaM!f!cyYK00GKFahd?|U)H9OO$-SWoEpj7gIPK6LJC ze5v=?0tcQvc*B)RcD zIX>9hwf7}*=38y8(jleQ#t|A%){^g9^@={_j@(5ghD5d|@>NQr-H^#>2p+58=l}vD z3g~Mg>-s1NMu*Ss(0z|zd`YC_0`f=adWGr%@3WAek003}1ImZVmVHmd0%Z+A$x*LQ zij-Uj;X^EMRmr`N!H4#9xesx>sYQ;IR2nYfZYMvIcr#0k78z&OCSL1lZeR< zzdA@Jfp7=A5GJ_AknV_O4~AZ${>Kq(f>0=Zm#_3M_W+K#_?IJoZiUn!g& zcXE{$euv)|IfUh$8~S~DeEa=W8+Ki?eq{4ACfqw#G5s~`{$Th++vbkVm=fESQhTM_ zE>ll^k2^p!S{LIV?VZj%R}QdkyWXdK=hQ0?;ZMEt|Ksj0!>U}gwP8R+KpN>TK|(-8 zx=R!ZK?&(J3F+=`5$RGClvF`VS~^7}lx_j(uKA7$th3g4_WsT}*V_BX`=0Ca$GRqS zEf>#tM&0*4#&|Zfcbn+sg}?FZtgQ_FC2-zLYq?2)OLB$htJ~fNyWXDC7U)27>BCuD zPvISyzS!yV0NkKwQM@<~_-PISo1Y8s(;n~NJel}Z)j2lzzir|(f9P;$H?q0Um%Amf zpi1TPJdcJPjZKi-*z1a^*C{G3PvVBTH0{!e{#S-Kch6t0rd{v*rwSAfZwr?!co=se3PMvCOPg5Hl0+uEb>b=SGdrh z!k2{7q3gQ=_I`F5{OFu)iTB2bq?#IcQ z8$aij+2?~~ra&Lh9$Ips^v8nIiTGzi^ieUA`9ss6qwpD2QJ^(PjVe9i80foEPB_4R z6jgC$zmt|MHb{{Z`_EvO4fV-)@7lD#L_7#)dVdLKZAHk4_xZ08?^4Q(!{@grFHs$L zyT-?BSeLgh@be?d|_Uqt}&* ztam;rvp6Dun|uEvQV=DFYZL5dv~RMO6IXrtbR{u$e^L7xZx{5svK&WLI!TxjUCd%M zw7GQBl+vHBWc8Q4qV)XKE_QKS(%-wu$LytGSFO?j=bGVO_3f;`V8qa;kti?`;~-cAC)CK59{) zmLvZpS3%9<3<*utdIuYg7a}|F88czbDbV*H_dZ`B6g1#mo&NSd?RFI^8{P4{o(NAD z657juQ$i!?9A08dnhxwbeBb+NiNlj`K92oi(9NkA?$t5K6|0$!fktZ?IS7{jjlcOH zo2bgN4^?+p__yC?GhB`q!AIzW23jTa<^rs=SE~+sq%(u0ZO4bcS9symtD-}IBP=XE zS+z}1fE?w97EPL-;^K`Hob5(0Cu!hm@olDqtk6gPQ-uz?+ROOVRX(uDs`*~KWC9-Y zEhzcRTX1XF4r+EQl-A<`1vvkJlxKcs`!``Qezqm!c^0rl3h@Wra{RK3u52mqEb>>Ls|Al43{nf({x`nr zYXGKCQdM#E>)T~1!A_fFCl^_ZK#pERiyAg0X7g6#u0{ht|GFf7sHC8yw!sxI$!KJJ zLz{eh8sBJ6D|S5DBc@+3KKokM8Gk%nSNCs6jXv)x46Nu1YL7HPY z%ETkgFQA2Oz>IlI-;Ig7)`v-76(EU(VZ(S5Zoott+Uef`6J@Y7M)Th_gKWJ-`eZMd z^Tz=(MgOwzl?()IQX6!B$lv?T>(x=9>8OS{BBadBUIRsU)#=twD9}bh`>g8^VP(U}{xBs-lUsFZ zbNgX?)%v8ar(g%@D8v!56(hemx9;TL6{!A}I7k%{n!`QHaXIgF&5Ozo9@-y!M3_JV z`IkN0Q1++%#~u-K7kZHl^T$m^jn(mk%lRv_{I4wAv0j1& zU!G>WR3A-SYgCZ1hMJm8GGp~ATXWDcr+xe9JI7>oJ~H%9V#uEdWCy6;nDD|7rrVr9 zsRYLGk+@yQRY%+KpSr%KK!Tp*gYk;)3qMOnTyBnd?Eg;Y7s3D`VQgYzV)AI9gs96# zHgb(B9-TP#)qU8F_6!zslnTm*bK6DtzcO;Zt+jctGb}FXv|?C@pNz5nEsZk$S4Rv*fb&d@X zXVQ2ctqv;|19JLk{l{ODL+Gmf4!2j>uObqWg z>|Era8qr}~uAKM@w?Q@`f~rq>R;^qbEOp#PSS%}zy?VE_g=kmWB6%iBw1tATPf5>~ zO^>D{ccC{w|IQ<_-&Jq(^osYko;)(hDbD}?>8Kbxgu}$&?Vmh1KF%~h-)r#zP$ z6!~PlOs^!kb|zTtDe^hajM%1*Zab#7SFX;W3aIQbefV}6d!`!>1L|Py?B{RdiZghl zz-`*IDB*!8H@c!~EYQ&^zw%T2AVg{L!ONb&UP4M=4BR!We7+S}J7^5!O%`WYcDXMz zed)qn;qy5lA|~!Yse(1%^b!)II3!o4S3t6E(m5{nsj!d$^r#UO7y~()+@P99#l^)P z_+WM(+75GeJAzVGviJpbQa6es^Me_c6MwS3Gr3?xQh9r@6&{t7~S(bn)e*s zl+nuJq_f>G<^@%6I2b4$m#szyhubcvn9{HlrY~#ElNP^I_VQ4#^zAJmf;(rgE!A@7 z;Skz)5w=XyHDtT=gYTNJD zOk!Z&mxrrqxfz@aSa5-l=*i3L9dOezk^lKL8(f@Ie|hV|TMD@I_A%fCH4Em>{!&@^ z_L$c6H8=Yn1Kz?}CzgkpZ<_lZ4sa?$;>H7btLp~Bglef1O`;_^P(4SBt7=)92~gnB zEK2$+!Rf)doiNFCf${*Em9)0$I@mt_bzmSU$+8^l>({TSc}Wu!#z;?{S(UFbFgG_} z5CrkMz?uE9n$M34D*JHu_y#T;R1M*rZEtO@gF%pv{%~KIi(Xl(SbkYmMGI3=EEqWC zh7o3dXp}nP%b;jz$X0u$GYcXgOmJ5$rWLDNpR?vWh6_m^D#AJ61&1(6bt@dWZmX;F zIxgulGc(7(qVx`+bKfAu#>VD>;hw4K>4fp%+MXYG%X4RaKg>UDi|A66{12Oeu{7q0 z_~)g)Jifh-$(3P&r+8!d<=yXa$MBtF)ZQIN$?CVgTo3Q0fHhstP4{$dGHXg?pWFbK zV=q|4wm7*hHITog63DtSB%d$`aNG_PeqC*&4 zdPU)3;kQ=oPCgD7YC&T%LoM&5uct?&?|EoXUh4}QN2X`bp8cTpfv{-^W18f=#^|7- zw+#42LP|Q3;y5CuqeBTxg7E|Ezq*8d%>nt!IE?$62N^mzI4rmxA#Fpxf4Du`1m`7; z{3wx0)S~&>Ga}@cv!L*B{sq1|V&B)rzhyt9;Lh}67hFc{-@N%kFkaIJZo=Qkz#V{{MGDNo+eV))%9 zo_ogP9Idm~Jwbj}7?0wM;Iu@^+Ge0%@UO@%cN??uMZfyzGv8AVzNVIG4u=psC|jRC zhm)U|zFrLJ4TJNs+A`V^MCb?Z+xvI=UzWc`AFZC^Vs6UhP?O=2yWHi8ofC0D6NkS` zX^vAR7B6GVNpzoOY`LOOV8;&~jlO2{0?Jid>Eo-Kl4xn*((?V*m`CdvE3dP%k}@2w zCFR)<7rBq@8H=dkDAT#EpeiQ|dgtVqW5ZyR1YDTl(5#!QXNl7_4%mhD*9k_>mo8n> zDl|l0bg1a!ot~c7`s~DOY;0@|OQaaCTp{{dV$}pP#^|J^M;^P>^w(gMV-So48-gY^ z9#(Eqkj_=B(Cbi9Qm%j)wpMTpB#e^M(mq{<%2~v)p`R3|L*D5n;bU@~Jn@(yTU7 zuim?CK3p8GAcG2A*1_Qu;sP57M?IC*XK&EKrIHxW4GR(E>B|QP2b&ifXlOilEbUt! zF|3DydRiEw!Vc-{tCet_5Tk=Rn@q&L7nWAT<=>M%;abLv`LQWx0zCA&66?7ukDmL( zN!FXJ*-X@6tMP8LJ~k?_(WeO2$WE|PN=4fbQ#c3Q(nmP|6^>-Tv2~O&_z87tyJEQK zPAL9qkf-N`2HZ{=UwsYn1R?a<1oi+Tct_Ty5dC>0*Xqc_ zn_w_B_eI^VqNFRtr7bRV01(qhnIB@jzOMr5rK*8bRT>_I->nShCy-u#e0t%p2q(~E z3NJm+l<_3A*q zttb%>R?%h(&h^A$T%Ni|FPSDxqhxSXnCXAI%xAhS9bYVl|Irsjr&h_y$*Ff;uC&-{ zGXKaRCPo88D%k}E0@caNtZQp)Jm&4>1HZQ%_6M#hEjLnG$to$eYwtVPZ@{eQZ9b*$ z3iq#aWCsbN}{FW$HV!!#1ePw*@mXpnT2~YN{>=5s- z7DN25)$29P-F=RC86Q0T{_0KHg(eQinrTb%vZmO-4^1NgC zt=zv6*1Ve<0z z=cbp(#}^V7_}pk4_mCg7LRlK~3SWbe7UI>)9AD0JUx-%;!s`@X;0yLT@-H9p)* z*?txUp(m{+3^M6T^<9a*B$<6ix!LCC9;$-v8Rj-eOKIoP9fWw zBC2k(pu1KpX@ql*puVmfw@!ZT2(#(~Fq@)X{oa75XitT4VK+Uu{9xB63El3G)Qt`A zbgZ&k79H zg+Dv-xZdC9m=za5)$aRNMzTh8n%kn{jvE-)m9(#4VFiaVg#UPPcVUqcvTh*JETTFf3+e+G`@A=w6BHE0Q~af| zaZl-qA66CgOl(|S4KSY+_2LETh5vWzFL0*cqQy9fkzKy9mUv&Prh^+;hqa`GbMG4J zIr1f+GtuJfAF2J-W(OXdZW;ollb;k3p_y|^2fN?68R}@cq`60>-8AqyUfV1w6GWMb z*-Kw>WI2hjs1HusnR5t=O&IUMhOyEnXda_eQl4z}wlxeC4nCfFL?vMP1>hbV$RI{A zNHp_k1YujIYtCZ`XVw55@P#6)4s**DJj4)vZ`isXcLo2Oh|30>_`!+{pRCoDR0;saCrE2+=Y>Nea zJ`$LiA0LHUz%j_}{_a&ml<`LH0xga@_Qhe|vrRa*XiwZNSVBB44;i-N@*9ITY|O_- zJ73~9D^Uj&s2oM*{l5g3FGe3(b0Jf9*w2)mB@zX(_@PHg@yO98a^{KGhY3!hDQ8yQ$s`T&J|i1 ziukg>Ty3?)2d(~>rlzC^Oaw$G4`NZfA|6ZftrP&pEF)QJJ^P^=wiOjOvvC&PZ zb*~EMtbC)mNl2A2M5Auq&clin3ZQsBV2+rio$UD zlL;y~O+EYA-Bd!m62QSV?%p+qLpbCxdO5f_Gh_aFy;B4k8{rTWvVOD`HA#lmND1TK zu>8EHfy`itk_UzcrE>Kve~5a3r_X)QAqz{dsdU{ohI@eKl4AfR>i`5rBXP82LM`q# zfJ6Nm#+jny<1xX>1vP~o7Rh^hdfLY%tawIYkhjpHixy6Gb>-GV2}_VCk2z7XT=l4v z9~NK37&ayVTSi6<$6%D;>W8+=^{~CH!v*c@50^2a)MgiPww!!h!>Kmr^sA6xe{HFK zHU^h(pp-AWL7YDN+>)+=;|2h8MK;g#nBfa8pVW$8B4YxT!r%=e_`>6)qL*c82+ z7v@GNBtGBuFjb^$e);kxe%#%5rdfwQqOJ1M(gBQWD?ymaz`ST0plaM+;Em@)Cc&xRs!o44KU}U0FQ}HGTAiqLzU=k1@gJ#fb zc+|=Gb2Xej;EV76WtZsf(MT-0IVC=mtTk-dn%Qx7b|x3FOx`VD^-THx zklF;D$a3&QLvK`a^5Xz}Qovr4A&IxE$^_OMEj|<%e)Zk8eYdLZ*xc*yr(BuS*}vGU>VT$iuY4@eVV<|gVVIR6qc(~--dB)q>+A>fE0y@x&8co4nKRI*%5 zd1tWfcB+miRmi*T@kh>GudI5SJ89Z071Ph4|Jchv16!@*pdWE^s2{%nw10Aq!EyYV zlt7ZL8-1Mw!u9}>VWD(!DS1r*dJc4VOFVKnw7UgaW13$GPa6(;yFXrp8#itgx^7z{ zL4Ns4fWS8Qp*7>Nn^WaG==#aU#Ip>`Pkad791l19nb=#mw+&yveys%{FT~}~f$2a` z#>0XMim3j*2@935mFg4`M`Pg9@~j|Lr&mFm|5Vkt70kQU7*1v6x8zJGpFRfLD2&i? zT<97-Ldm!T2=A6cdP&<3b4Mb`Gk{ydYC+$Y=7DRp5K_Eq-#wWdO>i`PIu~?z`Dk|k z@^S6l+4O8V+Up${_l}6dFgwz?i_`-K#`AT+hc8w+4 z;vDE8)$>fAE=;>TtB}x8IPU7{1x|3VkbkkMnPU3zsSM{hHa%+&mVU$YaITU$Kj5 zwuUAxH;k`^L)AS=o|xEQ=36F!W# zY)mj_OSMcmd;46Jz?i&lf_s`1_m%8*+rly8!lz=x@vkq5mcc?W z7oI;(a4`GZkFdtVZSc24sqST2dHGLNrX>)5!8sdo){7Mw#{C)WdQy^j&x6xEL!bJ?ktj3v5J1cI;JW}{jOfk%_=cEg~ zo?d_K)yX~xVQgF2L4qV|fER!TMN>x#++kIous$%J*8~HCr?Ae;qWuCEH0wL-B>Eg3-jva^m=S@|k|+Qa9P>|@Q7DI`^n$eV zKzF2%qIosSbSio+{7SyRgK=DHqG0Jp9hXY@kjww2`uHJ9g25*|?kBr=#*8n!IT+5! z@%vl5>RA5{qN_IweT+26jfF^~@6lw0#1#HTJ9f$MF3X;$-dQzU#!d;&c>c0ocO&IW z-b>YR%%aU<^#w~335o5=1$6^ybK?m4I}Z8JSzPHF-uN`c3mhoK4|z(>;?0aOccX&o z`n`vJKefGYrPN2)2QK#hp)x4r{hvbtrE>|IX`c!!07 zc5E`lJE8rT@7VKMk#X?^0=Ytf1jIal|4R%^%jm_pEVz5>aG@0anOe4^ClM`lFhQKoqDIrDbP zJ$}MW>aXVb;<3SABnygf_TKs*<5*tk<SZ7P~O__|Oo_->GFib}^{ghrQmtF)nRz^;Q4Kd-2d#%Xvqr_bNZ5 z$Zum=kqNF#Z{Dq5h`3`Z=TJaM{`Ju{aq$h#he?zKWC>yK6Kr{f-AP>FwyY7 zxc~gg?PE4VMG&}vict@@vx!5+rJgfS*Dcfqdq?%db0Vw4kfG?onQEUhq0xs{WL5HL zdW=xB>QQF30xilMWj$<=RH@6gHKv zFLepzF%isfn(DnyPB=A#kIIP|$PV(_~*;=l}6R@q7t@UT6^%;eS} z$xr>pjs0~KDE5+)TqSY%fty$cqdU0C-qwrQ76pKZ3s~7XCR}bqg?9pm8}c6~_x_H5 zDF%r?d0L*-o?d;Ca7$C8l5W>*p`)OD=7y}o7lu~Czzx4zwhPM?-d@TouXc5GhERt1 zrzzU7-#+AQh)&ES0SFOeLPn%(+nuYN~>xN2nDvVzm3t{qH-s2C9=&i6OH@ez1$y1dNuez~~R za_VqA#M|DH3AJGPsjY2=%?m!6k{aJimYh|D!$GfTf2sY%BWwS<)x!lfG zPM({LXi;IaG9-}k8nv*D40Kn>&%dN!4^59&_u2xMyi* z3e9OytcbJ^JbZ|wo|b_87#!qWIh=kYfC_! z5VUW>dHxZ5MTkV*BPh&*M)+16Y$E;m&y$Xdp?|JAFSlagEQ6Xl?1WF5{5@W1M_D(~ z{$^n4JIA}@R#Z!}&WBj-MG}nr)infX(2#WrmDR!hwyLjsxUndajAEKf+R-;nw{#vTp0Y@ND{7md3zHq zG`}510z(rX>RFoXY|}2cf!e=*QU`OK)WL!ON*!F${psyluKT$Aw%>u3-JM>r$+kO_ zoGQ<^$Sv=8xT!+>1mh5w#M{#*x+Q~zVrnqVuwIOX5rO)x7VcgamscLRP8Kn2y9&5L;Fs{ z{?n`4stjNIQjE3h5;568l2wf4ES8gd|8T8m2czWfs0dx%(YHskJ1ZC5%nlHBMv-&R z$HW>qRvMQK>b_0X>ct=epl%nj7j<0nK+Dik88*PO0Ko$Ck9Rkc>D0tP_*ZEruMV9g zjQ%o3z_C>!QoXTU&ej!!r|cs3%Ge(Hl(!;Uzq0^@|5JorGZMa_-<7SU2VW?!eD!n_ zGRyp?l6ix!$`!}JA1B3|DeEzWZ_oSpApC6qY4Y)h9r+lta$f>&MQNp%{;H5{u|Fv7 zE0oZz#H`F|_}coUnfqR3{dCgUYN_mi0jDuj3{QHK79UO*W^OPcgOjj0_B#iYrnj#J zwaW1}JK3)Wuhi4NPasd?J;(ITf}Vl>d#+d=?Q4_WJpQkad2FDmke07msAykwIEPjtSDLb{L9aKpOh_^h@A$W@xLjFy`BVPM%dhcH9NgxR zwp9bQKSpUdo%AFCem~Kxr2NgS{ZLJ)_?Fpy>pMxc4}H}yGF|>~j_8#-*KH<5(T3jk z#+=fCfiLE#M?C$LU)Q*15=C#nKg-2MOL&7Ka3F{oXI=<(@PRY=knINwjX|-8Q&hzx z+QBJVFG35<*sKIE34RYL?IgvynH0dwh+b&bgGu-)hQ4Z|2xmESdFoz_My3QL0vA)~ zmFnVSxa%!Ho&!A~&Sj)U#@J`>|G}@}Bl$J6 zl{8VYOd`p?bt!Fon~o^22naNr zN6{eVy6761t-=cSQywm=BF$%AaFslJ@}HjvCL74ykiV(B>-Bj$#C7@ehu=+t8dds! z{>3%JXgG=qKHQO>IC!p^XG5mao>iUKj|`KnHg|jldu#P^GwJOEfJ-l$~`V}FZ)4uCEw86;Qmeow8{_gXWhT^AxU0pGd7!QW^Nm&7$y!9bK zHKGrUl=ri3f*Asp;t%rHo@ZbrvwPalGvNn{R5IE+P;(VM&M}j-5z`JxB|ae$?w?|y z7JswLKHqvNcO*P#I8uQ(0mH| z=patK)lXk{M5+2yH-d@r%aY_T9m2g5x!iiKRg%D+>{RmPD_BBr$&9S$r#?20owvZ$ zxOTzl(YWh?>mG6M)z}b%8l8d14&XKB0lTKmIC6HTKA71d>a-N@S#IaGy?h`vJ!)aA zc_tQVczblg`ge00o0g(Ai$u|)F=6atEl@6xj@ogT=BT-bkjaFm*7LFo-wPTyY=qDe z_7$QJtKVBZNf_EzrKFDLx6Tz-nEDHPwl%~xN<2*MI%{T#*TaG~T$WnS9Cq#x5(e$G zC&a!g5XRhkj9T*OP;&BzL0&NGef;8~5b9pX8mX!zIkLgX9^|}32{G(yUV0P{(8c~z zG1@P$f`uOFNHG|JI`6#i#lS+@{H)_{>R74r7tv!B_nim`_L<$S7D zwik;PbRwbG4EwrWt+o4}oY-jTKC$OWRrIj3AZfJdm$Yg z20#e;VHVIMCu|%=5F3*5z`0pDB}7V$HQAG>YC)!E+Ge8W7yrQB4OHw$TM4LM9r?nh z7x9`(+l9!#x&{pT&IS27)RVho#Mt>(#T4;Af6Wg8j`H^QM7^(y;a++YFYA7iPXAE! z1g*Y}|E}#;7N5B6W7FFTc;n*C-A3R^XGL}j8R?|_i3SPBW(ar^>MG?B6*rW1_PcE6`m7V`~ z&O_VpQ-hyY?7_FMjKtJ|@)C`6i{5u%=R4@R!|o@0CG5yoW-yHI%&jJvILeVmeJG7MEB z?u5{ZVm&6Hl|!4Qhc6fUBG@TIR)*fVs`l$fv;_`veRf+Hx`2MP_Ni`rrEg?3cs+t` zNNif05Jik_rPj$*71OTY1v^9#?~fY!*=docI5NN!!+KmC)ID}C9O7XBw^4kh{pJF= z&7~ibghtT2oR5+JsPq=ZthbAOjjw{3^}&eY3sw?{jqe;(!)D-{9aPj4Yo)2uILY5m z_<;Lz$L3-HlK1b(Eba%jK9CB z57eWXs;&^(%5EeJkK6v%ygZvDKR3EGK{8@KSR3Qr-1Ar@cwo+pQQvrr_nMvk#gQ|P{=l)W5^1@q@?59d6WxMr> zFvjhls=@wy;r>B2V87Wg2+Ew(M;6l=Z`D;9rRzSCR9OU^ zQU2w5=5kwk$55B~$3V%91NCl4ulEsQ=@LxLJx|=MY+h!&Nc7Qo;x@6D7`dfAD0TQ^ zwK_3#&-(M4U=MMivD?gS`(|t^kH*o(M{icNrX3bVHyQAf^+V+yX~I+`L2R$FH_eD{ zjdy!;FX`tJX&eR0kGWiVT@4k&K60k2iOh7VQN^zqA((t%Lz)oXFujI0n{NYwygCO% znA=T%Fbezt$1s~cEuAzxl)8xYI+*j|vV1JOOFA;RA1^qn(xk~M!6F^MkFLGx8JP2! ztxkQxO2+pic7M1F3h|W!i~@$EHrC!QpUPC}ytMTb$B6QZJ+ z#Q@=t{&NT)If3z~IQc(Qa;#|%`K-Gx(sHMj;4zAc!2X++U{O*VZ(UV{=F*pEm60!j zr>UGcH=YQPq!+D8SE94yYLk-{BCY)pBV@aP;)p4;aXYY{)TXa$d`r4?w-YmrSNiA& zWHZw7sD|QQ!8T$Sqn*#Yf~H4GQ~hC7rjM3V2jphrjNyxJF7Z~kqq_Fac-={B*QIL3=yvD zaJ(&<6;ud?oU#X!w5QFLv&(fBuj9ILB9Q@=1{_P+A(p=d*tM8qzTVeN5F(rMKU^Hd>UR9# z7_?`H#HV|2^)ZUT54P~s(v%@~rj$Q$=h9W_+xEgfm8b#Bgp{c9{ms}Z5c|!Cv{yjW z7>I5yn;jw9fmb|&W<)cQ2Urt~uF1B2&wkWv73~X{XWs+XO;=)GYD0xK{JKKBP$X8M zfZdkf&Cn*CU0dg5#<_w)H~sG#k1-BX-U+c)(a8p59`gC1Fg=d87JT`|ag_xP;qt|t zk;?;R>qYLhdPFj#>g5}`v6*utrP~vlbw&@^)L#+K-1l>O!l4sl68p0qMUsj9!i0sK zhAcBM6skXay|h->$6ez%8to^XtN}0C46x*5RcJ2JXrXVG+7|c{Gg2_k z&3VDG!!|s+lDnyn7hlolGGWLMvm~bY1;tN4vQL0Ez_^o6puB<#k@{5;7*j$vXZ8VH z+bpR6Fgfst{18khl2YEHV+#4OWrSh=8*;cqT|he&`Zj?XZ3`Se7V z&i*%}YY|nejjL|d&sScAAWa8{$s0#Cv zm@IoAafK*=k%{-`L90@`l%4G7!6i3BHjCW2NfHsBtNi#f-_`)17Nm*uA?1(lPx}&~ ze)Ij(PPH6@gXcAZQ;BW^_rSd^g)Jwi=1G}Kyi~?rvYgQ6+?nQG#dJRC9qtY9h&=C4 zt0~Efzoj<>_5g^h%m)nSI;^EIr@e%OeNv0xnpW;;MoWzfR#98XoIQw)X zlD(7QB+lvzFsJ|Fl-l5}9~=V8?SLElHE^eo8Jtr2PpA9`%jOmMFSP8@s-m9g!;s0C zuC>}21F=gyehvAVmXcSkC#itfw|)5A{yTX)?o*+TC5#IiOLfoOBVWFIPcCM%KR$0X zisVOAQh!a#bQ#wN3&`?ly~f127et|5k~D60EvfRG$y*Pv$5ni22f9laWrdA9L${Qg z(}Zk%X7ji$=AnN~346_d=Jr9SL-KBd1P ziN*lc=WyWn?N_yT{L|XCLQ0#b2--QfFXYHY{rKRkGVx5R#L!_&V2bpneJkP0UOq>y zXJc6g;gNV2W+zeI=RH7h5DAQ_P6xd%20;~th>2~iSRm>8mZju(y-DpTE& z?3jVJJL=;JPr|KiJ}J)$*Gw@C$kM@4)sIb?;W2-CoEcPeJ*nf3ylwUsL$rqCz?FkH zRyDsYFFeW`)Fo@&4tAd%56Re0#@f5E(C{u$sp?}0>MV=5Dlw0nMY1~QrD{#3C-vMG zo)0}N{d58!uRq~L3N6JiO5ZN1FJ|&&OcI?}OP1sjUk;<6wE#IffMD&^ZmgF(%D)q_ zr;-Zj54mwigsk`4Bxok~Gd4Q2(g7wPws}FgI63%~&zfR90qJ9MBFFRPj{~m%zKhYJ z3$%+HiyS%6fT_KR1hG}1D@=7ayYm#$>g%B?Z!ZlX3qp)Qb`#>YVf}((fV4h}7*Q>WD_81R8dPy)%6*#)RAm{k(LmjK_ z#6VDeNs8dJif1+cSazH1otP`` zw%b;iCQ1bRh>&3JIdgUD~i3M-3mT-#OGxWinL6E>|VUoDM?M+)`yRDOrI z{NX+Hx=6(&hcBYe%s*Q#>$oJk{VGR85iJF@q4p7E+ZVm_p}sAbj%<1+ISVFBnQW+3 zq$fw8t1wiZB4_UAMf$Oz4L1=c2I?Lc`2`^iEW0pJRq!eg<(Po03O5G3o`!Zw*ArLe z{F|=&+gM1xTfwM9{BzkXp+;|->{BJ-8S~N5=wE#0f*+R0aXTM!4(_w9we{6<)lKEM zR^h+mGY_S&ksYPsAO6tlC~uucxHz{J#JzgxG>v!gD2cG~!X+QQfKZP`|F+*m3}NrB z%adda4KgXV=5Y6KhTV{pzm0c=_(L><^e{A@1T0%niXLE*KWfMH;sjDozyX0hy?NGn zcxnu0nF)-d4>_?2;O{wl3|+yvY|V;ZWfo2wyJy7IfRdZ%-h?$fBDr`bF0bk4y{hnx zx6X_jzgKOSngp)X6QJqseqJwfDlA^n`&>L*ay@J*T!d93JhiUku7tSQ9ye#3=Z*U} z8it*_Y6V%RnXaOje@K;n74`81WQp?ne3~@Zwysjg9*bV`t#z4lwLQVvj>OFU*T9BT zzs|S zW5rKL`TK1NUJ_XpD;9o*&N|8257=e253!Q-McAvz#h1kja}#aT)r+& zEm}!s^YYxP+NEYCB2-VtTrNJ|d!lp~^;PaBi%#E@N-tUxJgQuuWy|kSh#U|vRr5no zEVN=`;7q@&a3^ck5hTOPmImv^E}-ANi%|A!FrTDSH@GY3QZg^9T}h@=P)+0hrL0fP zncHqbms<1y({6e_zw{zqmt}dAXyj+hUSIMU5C5wuX~g9bcOKVgdh}01g}_(;_BCPF z`>6a}*6{a*S5MjKIfBzv8MyK^i-7Q?++lclK8wLS3PP%MNK%YHfTdjRWGHR;m*5{V zONA(~;-QGWj823}10UGs3K2t+)IGyYAPl}ZrxjSQq^p9Q#5`d=yY-HZXMq1V`DhH) zh^&V2@)>MSk(~>lNGbydnq|Y3)BMYXwm};}RTGpVVhYg6=ZfWRMz4Id!x)9o!rC-? zIX_(C#~HY17n0}mf75V|76*Arfbz@2=kUvRS89JSj|9^|LD3TV4Y_WE1WbL7Jc$5c zC@4Oe7Z!(h^9Ob?xEKUiwYbZ6%^DsC_p1$Sar+E-)PUYY~_g-s?YUK z$P1J{Gy$DStOtaH56HALnLoe5wG;CvW4U|tRA~776rL;YiYd@J?MJk~v2@-*8-~HO z1^p`O6!afp)*n4%wnTIKV6N@8={e?Z;J5R|*xka>%L5^Fis=fmV-tYkk7E%g!+d1Hv{*lb-cT^QuuOW(9jl{UA=UCe z(Z#)Jd}FPG2Mp^%63fEhxR!3B)iN0FrU-p1x@|n z_-5uIiAkA;oD8=?O!PHpi{yLxq6eblLI-FrtT>H&F=_I4vObSrV})}E6<9O~J*ESB zi?+>h6laS3F#6dKsdgqcE~nKdRH4W8Y_(+Ydg&7V2|Zi>>Kt_pdM=Pp+QX=wbkJdz zSkGU3RGf%%Xl{Q_&{L2IWL57MatGNV8sC``vVspr|MJ0Ra@>MqSJemhQzHIE&Sw8# za~m=)XqJR{6B}0nobl^0SAa$wN4xMRb-1kqm zO!(NMXO$XiHSh_W_minoq9BP{#6Vvew4O}eU6=;Eox{Ui7C>L66tj`khM8@$sbWSh zeAeD_;}arGY*gUUmzVa>I3({$I%Qy`Q5}hewZ(JP`A_&>Ioib-pB>(vTM;9gqlKC& zfi8q;O2MwNGZWvc&f;@b49Kpw4L*`1FAUeZPJbU=c;DF~w+YzHm7cz3 zdg+7woxb46R|ad@>A$dMB!Te)wnQN0;g-?7SC@%pXXT8LHP7srRu#H%MXFom4C!$u zM8Wa{F*TA7HgGDS8hm%s+kDuJbh(bKiAw(eYoZ9~ZG`lPl0cXTkpNqa_U1n+vG$0^ zT-HvvNPs9~PViW;lIHzi3s$bHz>XD%#Y_6$FwRIo6&=Lz)|os`NYl@2BTm191nrjy zN49OJH4<3f$2L5?3zFm9bj#n#sigQ1liCU=x<3xMJ;gF+B$6HbiIj+*3wkeT+SUDO zzByFO@qnK^!y#r*KM?4O;GMY((=s+;H6On#=*w4OUK71rM)H7AC_bM5T$%f9J(JH- zSb@CeaDsJp`Q*gD=b0n;?;8PBDB=1gVVSY?rxWcZ=`-pRvNdU#n|z(WzD=A5Xy13FZPFA?J!@+}gotwgr?+yN52x-5nyp`Bz(S+sGWN4 zj_wQlq+TcGyT5DCCsnf?*(6;Yiry!~SrpQLSotn=VbSGwrT+X$BSPj&g)J@Q2^CnG||jf)C7OdPchTG0{(2eh|T{?8I*gK^|>k+;Ri^?#V{o1 za>w}17U0Ta-crp!8h5!3awV8vMGmkELoC6cE{Okcty`ReZ`}WOIw&;E`yAJOyK6?u zTP5vLXMZ)^qmQckh$5VY0~-MJ2Dnkt3cXO=El};wXW0dNg+2Sh!Bo{TCF5BU9fWwik+=U$uWQ-?L`|Q{ZU|e!~oC zoiF7IjfjV61ukwR1hxi9KMzT-rc^7i0t4<5qk5`EkgIvp5iVJv?{6wRJV4*e<9(UHV?ZjB(xy&R;zoN#UM<4+IL)%DJI%C;lc7Y%nTt?G%W z?`yI9xK#&G_*&sxP>UBMU}%%D=x*4uvVo~bW4e=MV#`{X2onp6Ddu<~EM#>h@c*fqPH`OUdOOI;YwBWUj{kzv0o|Vig6YSC8h$`vV4KnXtq5FzIID z{eDEEXRovCl0jylWvt*{C;M8mKr;LI57PiJ()Jv$nsIPq&MLtd6b|`ee1%f14o9r5eAG!JbCD z&kEgz3eK_^>AHe=n5N@U;H&9CIRe8X?U;Ipi&NbE`Dt_Egp2(KehH?*vyBd(cW%5< zCYrn8edaZyc4D|%9`qyunM#fJj8lA<$~8;Sb=KDN)$_(XnF%gHXm;qW3}L#JW4*aT z7cW&WMWN*@1w0!c2z|fwXI1&Nf1$=@H^%xvFgG^~==C`fWiH~`pZLLJpP7eZwqIUh zc-~mt4hmCJ+8>cO<$`vnWtL!@yXp)69ts*7J(U!SnEjKvh$zWYNSep$wKibW3jgjO5cCG>Akm(B~%El|0Y8}MEf3|wYvX(T`AmA z*%^(cc)!rJi}<<OVgilUTrzIuC>0)cBp?M0X|FIpAE-3#)0$BdscBv>!xlK-_pPyJ1e_o^8HP9YQ6K=)tKd`bjO7myqTt z)zDIVJzWMJXY|QCcU0CSf$>J(>PC>j(+FRtc5w0dCV-sjuuR)v{@|jF6ZlNqBnZ=P zV|~ePSWT3pZasO)97qh*=>zA_PtP4yP5+ekJhPOz#<|BDiAOlTlKAG;!llpIg*tz9 zO5~@Bw`u2TLH8*zobe0Wg2B5R*(tRpee{R<0j|&cUGp+fZJ+0|>Xb(VP$FW%3tbxC zg7Y+wI%Ux|sQMv^M*ycP+&9ic+^;TZm%xAW7TJ-VNU7`pYbkXmbN4Y%GXY?)p-HW= zpe%Xf&q*RF&uc|RC^pfG6OmyEAN^Hd+3Pyiz9gCGJy>cRdaQI=23+!nz?%A= zT)9lU^MB}i%b+;hW?L90$l&ho?!n#N3GVI^f;$ZE7F-e_xVyUr4Fn195S(Cxf0O5Z z_O5--x6dDbTy;$iRde6ntJhlHEe&zi#%c+$QClx0XVl#-_fA3$Mh6_2dEPBe>02Vy z-l04(VVVV1*7bg3iE;Qd{NP1RdBzd-NosK44s)AY`M|4_1@Q-l8@QjwCFb6o6%>4t z8oUVe{RHXqI00VWFeh;@^V1qNV1RR|z02)|unJ!EB2+qMH%V+10l&vU=bAbuuhZ=s zBnmO(e@!5(ddRPJd_#b!NJDrdFQ`<0GqYX#pYap`BoAEW_h)rkMaSP;DSkH5>tY@Y8{?_Vpb z9@GN>!4~2MnlFrI7AJsY*uNbwC=g1D@O?53y)48DTw{e@#SY;wwhz=hK0*TYzP?O9 zBE&6;?VJyqYtN^4M5Or-6-6)kPw|9g`Mi}j3N9TE z{}Un6)&9iGr`}8y{iA#bjUqA{DkY54l6nIfiW%ZwG*-n5vVD$vkWE2;dtx(uJnv=J z@@aA3ym0HfG@@8y31u;m0-Km95k3)7(;$B+0o5(ZZ-&2Ml0zXu!Vs<)+K)8l8i73s zLG)L`9sdAH%2{omdx^;lT)a|-s81@@ z(idYGnc40rGB%UPlTB+GFikWNXNpb=eytJW4e{ij$W8;Dd)9M+|}y zfK=4$6%}vd;ZOAE+0V$2_xSVWyB-@p^ng$Mx^y0rek;Yz=7^(D3MSfU&yaxFH4}LWDy`qV#&u86_wK zdLX~P3F#W;|2R5>5Ya1#13L1Bf{a~ERke{Ie|D=1qaX2p7cwI83O-*R{0BTL z74@C{3O;2KR5~V;(*v0XbhxyOaq_s^Tp(+q$-wCwFXa?KVQYVwBshSA)kuOV;5Z$SsQlYOMSuIpv+N!aU(ze6XE6LSt*OYPAp zRdRb-@vq&H$0rlq5^x4~$4q6y8TCjGgmejEX_86GUD9(rP1{smqv zJM+zj_IUZ5H_C3TgwY1>Z*h>>Im~JVT?~nk#s&z1ijoM17dy}Y6Ze3&3gdEfNjwhJ za>SQd7X^O0i#K)g7p1C*BjGn;XhjLw!*)yI5kW%(;YKj0cIuUdLDY?Aoo-; zF9;&&h-Dt732B5tb{np3CTa+8cGP-KIpHS1wFW7q-5a+BsnH!Fk4athMM%s(3E5AZ6F+x?WDMQx}}O0^_iG51C~XY)WZ0e=R9yxG2|QGrRdDs_E`kq$h_; zo0o4>l#Z~-uMS8hd52TZXkUqY9J=z>!70`-$TJWdpz5+dI3M`Sap*820DhONmgmhZ zq9%=T*T-7t_;-zkmC!x+K<;Tuo=uD*%$M@cj>4I?h>ML{FhaJ0{bkX_hNOg6jL5J@ zeM-8lao^~J>h4^X!LZNDQi*{o=VMLm*x#Swe3Nq=Lcn2X4=_IT&L;VT&XfHEBSM)nq|v1_NUIhX zlJ}|u)vH$^k+1nl_SPOkI{iE)`cNqkxzOmMRZR=IFx8{poDI3a{X|=7Uqh!SC~5Sc zFJkT@i}ZNY;j}YH&=S|`wr1Wi#`Jwi7Ge*UJ%#b-|<#Ifga@>J7JYs(H0$7 zC|;qOVDSzUutIP>uSOjfU)1#*S6SY-t1bMbmS8=NN{qqGrkqA3LEvVZwt4RU3jbHI z5xmiHWc8jvCT{oM!ZUb_Y8>~l7Eb4F8zwVYm2wSz=a$R^SuygrgC!a&RaKgd>gu5$ zjjHkx2E!6_gTn4vI)AN(bFp)EJ($)87BS}Yj%|NVnNvlC=5vXoVJ#bZ%|7~fMPACq zAE8?H`Hhb(V)ltwu2H6>k-(#ENfiL+LrwqhkSl&ewS6gTa}YSo&i{bJe=KPKJ)co% zDiQ3$!cl4_Js_JnRMR^s5X_b0(b@m|z2E(I1j-R)MAkSKUCcG$PGvE$dEo<_?;&=N zprJa&^e^A+9xmUd(;7$%)|9uyJr$&1f{Ni=D?uiA*HVcS+S0)ToviWDibZYaVK3Ix z^kD9nP4<}}rHa(0k!Vf;2y;R6#0QEsYSBBBFS7BI}9NigT7@dkm zB&ORMkw;E#G9Lt)x|gO9lL4zR7pz`CJ}hgpDAufLt~|=NHHHBxVbTmBeIoACw)%k% zxd-e?roirDD!Z|IJl0D}(U487^0Q&%-JzzDd!tW{hM@suFpK=bVcyjfT_vduy=I_Ha}>9o_UK7hl=E_a{otBqGt(^PPt zo3;Y0^Gv|k>o7%MkXy~=&7+`{+`SuQ$Osx98aNa<`y@-4@n5q51fRGjfhsQ8Z$^V) zf47*!@f`s^eg7K#-qE__ZR{nu_#O9>Z{t*fvYVlM_>m7!bi3}$F|x5>Gz*Ban(As3 zLA%K1qlxCgctz>~_YB^sC}Uu@LD2*vZf@$o+IYvm31;cTA0d%Um}!pyj7fd~fugoi z$j<=_IkErKD4p6o2ARy9+AaCB6k=^r`Rh0P|5;m@An)wrbXj@qi9F=h<^Bi%1phV2 zkbO51{$KPQ0|cRlj|l{XSGVOeF;LC8khUeG9W){=*SE?2zwhe!F;z3zG>DrgzYHs= zYLQX`4HME1V5xLYMrO}YeI4*|k6xRYKW>UHcCxN_ttWup1cT~-cvAi;2p$+F+R?*I^$g5Z7^1e7{*qI-yV=*sveU?vLz^rtJK=I39CTF zTC-DDW3y*r9ud(4Ui=h+;Xjul+E=(j+iZWBgEvAL4D{Drqx*UzM$C!X{NZ84FS0`j zWC}N9VhoAP2&rCmwPBurIm`-rq8wNShDsS!`zUD)pd%mmqW>Pi!${!cBjzB)Y$lBfn21Q-)G}J^Mt_iwg3a{GBzHDHcYzCZse9_D(#Cx7r@#MhYI?Ma2a^Dt#lCk;Ng zRHm8RO-)**!!jW#u!z{I=D$PZb4;crx5KX?yCsL1S0{`$GHyudjbb6@i-_ZI^Is3P zb=i+?c5Ku|`wOr8)kxh$&OY&GnHgGn&`B+CG7{6jV3&Bv4*N)_5!~V7U_^!pkC^G! z{-!*=_=+0-;)C?bPyg~~hlV5Ol4m$K>rIU3?p&_c8aItHsLStu=bp9|elx(2Ea9_c zZf~?&brh{z_fFqMEh#G>hE`j35~ROs+XzELYtt|U;<}Q~{C$s(w?I`mOQ1K+74LB2 zLH8OT2BCAxv;84FJa^DHh`MK`=NDghGOCkdY9UU-I3$YAUZsQlXQ=&Rs-5ApojrQL zl4`8$&Q!QGJ7DbN+#Gwmi^)}I%#Y7@oDy02hJGu1S_?-bQ5zg>wx)m{zMfL6Y|8@g z!GmV+(r3S&XHGcLf@TfRc8Z18olD9pz8ic6!iX)kD>il>DqK7?g}wm}VTp>OGs_W= z{z^eFv-$DV9j`ssxGAMk?Cs76Dw(GB_!%0y*^R?IjDwa^utitLF7#DmfAJ1vkW6fF z`=@cH-??3b`$SiX)uPyMD8mu8%08&wSa1d0eJx)#y=~qCul2t(O!L#loRsNF!tH9f zu{bVRyj%%%Q3cxc))yK-2R05rUx?_SDh|=;g+!8gmEcn4g12!Rx1HT~a`3w8BkcQ4 zUfnyvM!Lj-0v6>2p&RK}KFt565n%mGRq$0~J~%jCJW9YVG#sadpl~ON)j{xOKkfG` zxxc8g_5VVZZIJ5qd?2n39swp6f-0F)h$CTGA)}2u*{ROO0sRmgDr_wEC7`pBin%#4WgNP#{l{JR!PKjDMc+t;0ljOX4twrJV!?#AOj}J&NlmO8()=(#T2&DT zlOBkhUPf%Z{=1WI(}|9)>jJqED2Ijk1>JWT%^t_Js-U1JNCSo^W>yr#bpHx!%3L_W z%^&eRGk2w96B8r1q5CMnTdHkkKwWh7aw8+c2}~B0ywt&5>^(<0;2qc3+tIQ6R?vMN zoLJem@=8^$?X=*RvF7LUu@sBkQ~^^i7=%4Xl9KfJt=rC}hdK=g7@`G)mVlq92<}|- zYjxD?UP|}WS-laqS!A-*^Jr%LeDK)1_}T9w_h~XKi>uM^70*V&MBHw_6DAM_a|cM3myC&F?c?r^LfNneA1fqx*-%+AWs_?3s;O;V@AEj zEe8$7EoV)wbt7lzg*u=r@-j*AQ{OO(9k&1b>)dbGUD=G{t*;1!ss6&4$EA%Zo*779 zU6+*l#Hdm^O189V!{TB?s%$;LSk5`YiyD(ea#;OS&$ZWQBvZcNlMo{~mD`V-WkafrO0(5trab9^gryr>w7(Q?J)3pwu5~X)b5TJJKOPG zHc>MLj*POY6^cT?A`ow6oM|~R^*ozn^bbNuMI*{crjoEG@TvxKMw((4v6T|1k9Gw# zVBS}`gi_F>t7C}UI)0=Fez)MYAs1$J)G}`DDa*$ht6dK{M0>@?mBktvp0*%*D+jFK zd&OH94`r2l3nyMYz&(|bPdB5~@t;QVT4B^&7puGtP7Xx7)O%p zSw9!NbzE2mO&enUx-C)1>|5a?Mjue7bikZ(z!mj`PU8LfvTz7S&Z)Y~(AgB7m;O zo}q8kD}cbW6!v;fo8IW|v(v~Bmx;t=@zI|u{ zbTbvM8eI_n7H$H(YKXP+1~HV+6yY2hK|bfZBzN%z=Q0D((fyz(A3&-u_LO?}?!Uhp zTmxBs6nSj;74FSLTdH>v(H6D|Fjy4~_lDvQd$hBP18IjN-VnY5Lerzdu($s}7jsRU zh)5fg*X4SNl;e!2dN#WZL00i1!m3=!j9QAAc`gkmZ{>O3j$qbBAb#9-piy$=-EtwD zq5Vk(MFEn*k05VfmRHE_3vh%PSbLb8@IN0R6Y)hMJgo+AdcDT(jRBuMraY7~iSmbj z-YF1=sp{vkEbF|&8H;+dg`#X{=C%A@vuyd{5~bxH~(;LNk*cN4g1Oa?ZTMnp9|yL+I@e(_B$ySI9pK?@CrrcBaik zysZ7<4+tM-`})-w0A;8!xTq#ofFk1muI)YprVd% z9%K?k9p8r!|Gi>kFl#4c){%kIc61=XA}KGBgj2JYQjIc#JfD3%5yib3&8xG~{WP6J zm%O~!x0X0LSsZ+?{0n>-;@j0#ikhJuGjPwQKx&;H(d!Lw5vncHf|Ie8XmFi`j}=N19d_>s!?D!kq68I)4A!;lSH~@X-18XW}w4ud^;0 z3Y0jNn=mt(<2CK}IDE;pRo$swid0J?8uOO_$}&gEh%swTK}?ysTO8&N_%#ugsPe)y z+H*1!eHQVC2)7A{j$R^pU`beV{FZ3ox{&5#!8+>o?u))ktI=?Scu0R71+b4+X?gq4 z!0R7`r`4FE4>@WsEc>r<9N^1=*Kf2{L&czyT)!;;4q%AO#PZzthj~rEldFM#-^m>G z5EGNM(9R8p!EtjW@$2X|Pv1DzLoyb4d5Ojwecgr2e0 zd;w5k_2Oh7*;|wqr*5i!!MFcn zNypsJ4ar#-JyOtmc&7yq(TqpX?LwA|UC`qwIOiNSpkFwL*TO{)Rz$>wRfNY1vFGx* zk{wIyS+r6IQ#XC!7VTY#N_K?S zc-iMcFcyO%&b|~73Fu-tQ#tVTta*4nT7Ua9LK&~y`H>%&x^xRQbik_ozCOoU%5Zu1 z7IsA#?wi=*l}gX1_s2~yb+z7{tE&aWlb5SLMErhPgVT6#%O{&3rcAqCN1a_1{qcyN zY_BYVuklO9Hj^%cZ^mu}U&ACXS$a^Z4DYg3{r%;Z-WfF*v$@06hz5k5+$wkd8gi+b z5~CkYa_Kgl%u$Eksn4M~M^OvtSL?H~LiK2{CR!wUVL7umYu`3h^cdLp454DJ$!@_# znp=w7T3PyL2Z=WN(2!_ky2r3}f@Z`GcG+9l*KH}gel{<*<dPHuDANC>h_~p(1zrMWi4HAF-%BE@TE=_EtZyf%Kj_i|&wwIgiI>D^3 z#IPG{cWhb$3FHh61a`@qb)AkR3Pgz%W2Qs5^MRmfgjgKIv)r)fO9{*xgFL{JgXU!g z3+&Xg{_=p-d%S*Z7${an7}0^=>k5QQpqPIf^n^QQoxLGUs(6?k7Dcdl$nzxHNUm_W z!ZWqu(D}z5EhFJSF|nCI;{mBAZCd~4?F5=w;1AouUWAxvM3nv)9V6+^0pJAirU2tn zX`PXL3o5n<<83Mk6kOo}^CCS*CldXEzu?OZ482LpUjOa_kK;Gd{T~I{2#IMOo$gkc zlhw}8HnJ#~$}&RU0dVFLC{>+kBu6irK_zG+)mt!2Do>;b#r`1qTMMMuQoKJM9=#L~ zeado)P;d4p_d81CvB$L`P~XWPea&|iic2@J>8@c{PeRjJBB z;&FyCux@y}FC+$W4+qCW)u$aW9v&XCqZo^4p{b7HiIdyk)uiR`vX7VAheYN#@%@8RYhsX59ESxJgt2Ay3yjY z)ySiavJHH|Ul0D-#Rm&M8njBtHsb64U=h{#O6XL*tfxOvUqTG8Fi21^Y@uPz=bSB5 zcX~(o{=Gn(7tzUlf)&4ikToHtM5wMTbS^vwfX`m*2i{yN0Hx)lQ1?Y-nd7t#8D6Bp z!82UBy5>)1B42^&r(bHLS#xv<-de#y@hu7f8Qv}3TN$lPRmRlMmPR4czgu^ryG?cv zrw}_txgIp8J0-hmpI+D^195gCDfioObhS-!kbVE}4sGs4eTA)qlpEJ)J53y7Ls4-5 zFoU5Ddwm|t#@d)gs?AyXw7r$6+K_GujLk7onsQ~S(#UBswNRG_(-&Lknjly+Ghf2b z)>h`$A32?nG|>AB#SLRqxI3){`-@%DFmN3Phq=CTa4}$`IiUmDz9<={8l+eaAlA$y z&~u~(q>8OZ0DkUy(Oq35Z2o#h=HXpWtjgpEtqLC>HkxFXVg=c6`ChEox=2`0qP4x6 z4ot>nTmoO@7ySo+3${CY?WoSDBBbp(1Z{$)7yY~0?-3jIn)$Of(|L0c9_}FvQ~@p+n)YIc4AYtP(^)|Xe2de-y3%9jfhuq2iX5Nbc|Dh z^?&(N3HKJS64a(vTd@m4tww`?QLA0C(+@lKY>C$Xbxga216j#!R#ST<+BNRjuw5!? zZ2uQA+rmDU{s*|m{O`bZM!oQQXnnh3`z#gBEa<^NY0}<$;JO;IiZ-bkiq-2^Pa+z&6kc^icnZH^3aeN9a?ri{orD6#b(D4!Hy`Tr=~Up zrTrvQw@(O%Pgdm-xPSl=N6< z1wa)@1`L|PLLrm$(6a1v#!Woq4-C!$15kGPKbb$NJ+7%W3x*Va=VJ{1S@eM?-L*SD zSc?go4lu_J3y%o{`_sTusaO;vj&ZjFJdZr^cCMcs^(kRg#;r-cs~xCgCrpG#TwSAG z*P9oIwAXDaK}IPlK`w6_4+0?Z4dhU>xecxT)bh_7zX{6|5{=m>n=SDXkFN&3kW^G? zc+hR}K@Z6b;SG0S;hQ$Di<5aZ%oHbLeI&nad(VYcU{EIpo!9LlKyGo<|Dw@n;5CB>xn$=w@E)zy7|+D5q>y<=N{#_u!94YRf` zB8vJ0#$V2lcq&KopzqWR#`br3@;O80mNzDHr*JC!XFgc-!W;)-sGS3F)F3Am(81rzi>^fdN;)*7eYh3^ zO8`p7`i^~6>I2Ndn7AI0%UhN)?YL2mWO8KuoPHZR6h+>QOXF5MG>*B8NNmtiw0bbS zyYgE-5Z1)c@lTa-7J;m@jX#6fx1u;b%c@jenh*!o4^u34T%O69S{sQdNJU1@P0MGe zvWB_u2wv(tE1+(gZyM)_QT)}n*Q8c`lM3JXAJ5uEK5MuX$)# z&#S4`agq)GF?Y_`2FL6U&}&8ADb~$LGQEz?U1b>`v+P9Da9|lMDr9YDL;OU1p+JbX zd(qibF_Jbj`9?*N+xYk~2I(UifufaT(kRwb&)|iYXFUncw$xetjoaO5F4oZX6Vk;! zAt&zmv)o-G_4^lxc189K_cHbbme-Zy_2&GS*V47qEwJJiYwx?1i%?5P^fH^S@#~kw zxP^vsd}fE+<0rB^f;pGs%clYyn~*{~f7VgB#sJT@$V64z2`}XMMZ_w>M+1pq*iboi zyFdHS`P(^7gYPKMk5ol)zM{?j!w5hydLO=a-x67ef+1B-&b0}iMLOejx>XKj+V*4R z+dLw234n^5l(^gz#cKVip$Q;a671|ES<=KR%LH|F_pMuuiTx8K^7DMsKS^l<7{h+* zy#5D)!Nf6q? zFI1G*ld7n|Y6y8^3mc&ajq*x#fH*r`P$cGsbswWFvCw8mv)z6T)spj` zVBM70u{sesxp*#-#kHIe6D(2ni4vWna(%B9A&pb5Nu;N4E=;9BFpOmtH?1<(gMn6hUssl-(5*+$ z%k!gWHLST)4Pgc7p%T)-IQX(bi81)9m!|kmS0+0bW3&F2`W%^ODkJnEu;bngyEX8n zb`((G-^rnrm`o~Mf#*{ufdKu}8~&?O+&BvpMrMkT8$@I^@>GWmIx~b(%MiafTB%gA zV4TxLwYJblxIG*^26Cy?_|kH&9Sg7uA)C;FO?}P3n)JhmRrZDZc|sG)cgwE|(k3ZO=z7*U z!>rL4QrU@K&uIXE#>u2V_(+UzirH&1vKHJZPa}|;IqC)zSwF{FEC@NWFq`Kv%W{b; zd{p5NH1q8Ug;EHJs6(0XD*HE!@1R|IP zF>x?BBRuhJngszyFlSTa6T@({M|P*|*OKaG$UkAmGJk(>MssN6J~!Z2xHjNv(|>@~ zoQZuVr6$!y=#Xu&J{HHbbG{&tKf@tQ?pb7a4PbG)`7N2AZvRT}uHaL^$2?-J?z-ZB z)CjOarnck-Dp$jZ=e$eCS&dlO{aWwqPiZV<_|24odrD?{N_Yhxrj1|LYy10neVexg zCWSQlDQ8k$%8!z5+dq*Z#<618#{7SXh^sdsD@_Npe{YV)6)UblbFb$G)$J&SytJ=* z)}%LmoOJ4oK4v+c;N4MrF|OH#`9UWMY4a18x%mVunv>m@qBgsfWYQXM+Q|iCpE_{6 zy}9?ld%`{EjeqsW)1acO@4X8+KMPN8aV0V3r6|UHI%jFrAXR;%c95Cii`4JWkyDaK zw(4|Lf5}*rGxfCROVBZJYn%JlxBLn)@q!C-W@0$V)c!(lj#&v@X5;0OtQJ*{vN0UE zaz%TJ+4&~JtfXjjniY`-#PUr0TtV~!n7MM0v^+Y_-QntS`f;Qz>&FlKs?@9LB@YHY zCak0r?V4XNb`Cg>r%SsCu14G<8sfhc+Rhs?-9v^6XhUnlAYLeSci10F2gCrU)EpmR znf#(9j6^MYa3B=7$Kfv3)k{XJNSrXsn>n&OH)IXPe6sCM(lYhyPbI#+Rk}%UN1J%S zDs5KWSVC|3erx}>fBuyO3@(>-l-X+99i#iq?!pb-W6BU=PjIhpmHudYrW$#UprXQu zt{~7BdNgcFJhiM8z4t*(uH#TdggM=zN9TkBe}Tg=Hh}xSJ|2-+ZDr-yjURlo){cno zymjSEl!fR$+L`74ZM#w!TxVlvn~X(dvL-J&18XZsq%FNRSUHTUSb-PDhU*V{My$VTB78e zZ;&aJNr9$Vz3&)LFJETBd=Iaq#XWEGXijH^&uF@%KJ6 z;uf2DO`jVF>G$QlJ5v6KjsMGl>xaDl%SY7)37mAp>x3i|q9tf`!nN|;{Avaa7C}>AkeUBsp?LnEER=6{n+{KbMzk8v)PoWzX5g0V6@J(J@IKq{T)rXAvXcE6RU!sXClBBtNCejUIKYOo1hhJli>+1*RDHXvpkBK4<4(?bf;#&pX(8K#K zU+VT~ngp`9PzyH+zhaQ~!qK!${N6zb@puU6Yqx| zwQzWS3fG@(`?Qq()U!qIPCUE?BX$5NCI_B=`J;%~!YP=$YkmS=3K37zFCHCr%zk?@#$l= zc2)&PBk7u7T}MN`VOP07{V63?;o1>Nk>U&yACna8F(AMKzOQL$&k{h8TNabk77B68 z0!dh6oUghI(o?IQhjck9QM#xdK93d4gZEDLq6o$QJV#+Uf$*t03R=$&QugsMxBXV@{Mn9G)8jErQT+BAFSH8jm5VX9pd2nwRwiT<>Sw8*Kx<*Xz#_ zfttxYt??doeTa7M0I}@++~O_S>$x4EYt2v&-D_}YhcI!k1a{M}{f5ClH-@N0mul~j zq!Br*EU0&|D-F$MNwc&AG1CAFDoKet>eRDLC%qjHm!~_Nm_2v`xHIgW8KGz|6_Kdl z4A%%wZ#c#xf8G&S3Wy~Q6B-Kd8^pOw2C#Ng$=ykLR04eVaCorFcE5dtMqJ?)OefbH z`0^Qji>k16+F;bPHOCDcW>A40XAqIHdN{h9ZTAE5=NXktvAf&gpOtr1w{a|V_6}N` z#RsvT3H`;_u<(R@kU3Cm1k1*I8g6=U6!e?M>BZ!h!URU^=7Wv!-}xi!zl;+q0Sj{i zaPdp|*|SQ!0%bVOvVMT7p}&k=TlC~lSBrMKVtYRgg@JUthumgEndqu%-k-p=^q(J= zldR^6*38K-7YJ45_U2ZNQ$@K_sVq1ju8kFn1JZ&1UHyfe9 zJr9ZTx_m9~MQ`~~A{NRt8W3^9QD9DHetfM=haH#ZAW@Bq7N;d9xr%^=2`q$EOQ9&b zX&58zTGR*M!rhShdxMT`cZfy_uZHpkV0%z)!t^^S)o&flUZ70;`U^ODNOm&QMs=;0 z^e#)|Br$VVJy>0edjp*(g!ycJ@_Ccn^x}J|);Id=R9CEUmK?~oblEHd@mJ?^f3o{K zeBgXd^CDO+#S!hP^il9Tm%TpLNN5A4@zl21GTB`t4=fyVr;^KCsxlb<2~72 z)+pV+iSbxT^DU!;j_TBy6*4?Cq{;2f6D#=vWr63jW?jCg_}k&AH6@@*?#=RC3m~?! z3zaG~!393Sm${~_;NOQFtj^FPom*d$ZH}NIOSuas!*U+-Kz+qlD3V)qfa0`zntb-< ztZ~Q+2;a}wj95J>PpSjY8Xe5)Bc*hAXQO_lszu?4sTW*5^^Od?KXtk3PW}|KZlu*~ z_hfLmR~tD~QdnG4g!Wq*ralCVJ$|;z0n#L@6<)Ba{5Uh<%pbcK1rTI-sDy+lY;uP2 z)+XIDKfFTBEqa`I$+yq>GG5TQkg`lr(Riejj_j+o4E5!R1n(r6qZcjHHy`CSp4z9YXtipc=o?gh=w3)(%G;z_p!2I=HS11yND9(SC<7d`#kuTbX27kFb zZNirjw7;^6`1^pU|K{MP8MjU@z6c6veuLN;p!y@V6MAd{?7WIDDxLzRJ!wmk zj=s+2&h$`42VxBtyQGFf-Ff1|KJQ*>OR&UzHi%@{LyA7J571jLgy9bCOe%hwHi&IT zwoxz^(;N1Kf#P9;GSwQQj+^L07>}MXGnMEOFI4os?gYHrdI6rUX$_b3auMU0>UvYT zL3Vkt#orLg(|bN)m<4r1YY3VYQ|r9tK&5%e5@una%W(FScwqr3*^|`VmXRz|_c-7w zP*a%MlG=o5zaydVAVXVnMkpF4;S!A3(;zVc;}vPq+eCAyXGA@=pf<)uhjqtPpcJut zROl~Z56s)Y+^PmXbQg^@7lrS7QJ}{Q-@mOeY2sY;)D&_ z(2ksk`4x#pNz1XJlR@iAkaKJ45$Mzy3PoD}si=foF2rXXdQaDa?&n%?j&+HthCj>; zky%T9AQb_jZI*k-GR_8R-5HOUfgI$f}TLDpvk9?^<DAPgZ1Sd^)+T%9Og_6sc=ZT<( z$fLetC&bZru|P#@72DSKgrEk2LnZxH-c+&?2*w-paJGgq%X~S}6bP%W%_I(=VLc`A zU&na%N!d~*2-}Om0%&0#=>oS4xDZ-#3U9u~ed_HS{Lc5;Swu6cIxe~bSo;}YXGD;# zOTVv`!|+;Tm!w~9T^tIcQhq05T5GLW=ufBgp^7K68QFpeU)`aYf=^l$+qVFFOmHgH z8a7N4$=G8``k{5a=ijV&aRR0VtxfS&PxQX zOmJ_DI#y^nU;wh;_SST(vM`DkLxOs*1Zp<5x6jj0@CB)Fb)9?Gz|uQt0}&_shKTI6 zYCQxb&d=tEsA?}iwks6SEE}7!J85$_ou8SWR#zmEnp3y$iD06RL!6L>Lgl7uvq@_th1;pbZ&UF6qqPWb@j1Z zOfjn#65X`ibGu>mJABr6c6VX{DMr&5+}5;oOuhaGeThJcATq8Lw&79hS0(ZDj?Nay z(o}EDQ5CJ`CiFI028-i^{$srpvgwYHEBgtMZJ|@vh=#8f@vXV!;B)D4tgK#GgEytp@F~@l~kp* zAIb*b9XxUQW3YuP{q9}~#2f@4mnuxYGwlhc3Ox2#dC~vx(#k>_Lg5`%^aoiCOR~nD z5SL$V$u*x0lznh2(Jl;vaD@=dg5AkQGVtZEhg$*&MVP5GFMmiPsf$^zBy*#kgFAh_CQHh%TsEZ7_h;cl=aUHZg|YlIu<_E zeL0aQ{Z#lvJC5%DC28D$xUM5qP3?__?@ZAQk!Ln>KucrOpZ1nOfadyEhu1~oZ9H3> zmZjqd|ChH<>#PIwfg>>e0+Y&}*-)V_9!MXKTz*lxy}h<{CVQiV+0FYsBy!4sdS?cN zW&Rc~7H(+Bb-M~Ww(>A=BnrV-0leumgJRRWKm##vjQC;U>=TqrAJbM{$e(HSY5Eik z2yo2%%z|h%!u%ia0+ia=s$4zJ}_FV&AuZ>p{=ZCKyNe6sQF9#hjmcL;3)F?BHuY0Pa(V$I`hc z2KJw$X`?c``m)Tc`Rjw7l&f8w_r-#j;wBTsicdZ#Dl10a3oEFk_ZgYIuObJ^izfpCX@};iLNGi> zS9#0{yJlyeC`|=7!!kjn*N<0Eu3vqT#EF$bCQ=q32R`ET-ZdjbJJ8Ev9e(778Ao)K z-BPwW*2fu>G*54$FUnq(ubLxEa@09fc|2N5s3lQvS=R`o_99R(gSiBes z(8pw?e$o8k9vfN*lxr!jSAS>)xA)PMxajAnPn{qRcG69PM{5YVRaMB79;Vk|s&>Fa zvrZFP`Yl=ZBdH-(Uei-NpW`*i-XrF&!`>^P9iWqwdZo$q^o|L7+;1VCTxHSuLoMtbUE*@x zCnZJ0c)Rh+U!{pB6Lx-UhkQ>pUIn^Lo0{X%bWPd)t})ecnIRNAwcOkVm?`8 zz%-`?{E(;#$kOd0jGU>_jQ%!N%_`(o2t7kmr8!#~cVv1u7@heUn}=M}N{GKoOqnIO z^nFqCHBQL*_a}D^VF!U&9}D!~_a)~r06zVeQJxp5Ql}Gwx1d<}`W)E_t6N`^9hZ2} zqlmcavjfb?1d8BC?{{IHIy43DRAG^SocEV~5KX2601U~gzQVPqCOaeUrwNK!$ z|A*|Wu>F5o&K|kk*qj7n@X%f`n_+aN!>Kuw&*@-_EV;H5wr83iE4OVJXvb$HYHds5YK49A4%5&?$RCD{L|B33G>S^h(&-$NcAKso)PGF9)JH z`9@X})_pM*PW66+vLMGgTCb!Rhfvg- z=Y`AXuK*=AyDmd6~teR1+(w6NfNcLlFodg;To}SWd*8BL&sIG$xKgScA(D{h0H0mZCO+@^M8o%t>^-E7$tAeFl8nNAotG0@bi@6&poCI# z-hzv>iyi{6Aql9A2BMBYz%gumj=WJoi02RbZIkh}I ze|Ag{BIlfC*t~GZ4t|-Hx>R&&J1<#XueqM$a~SWYOekFFdL?BgM>6p>&|ZrG0vuyt z0(#`=LWvX{-ByFV$seL7$x}f+O+|W*FQIaXN*V{KDkGPgSeV!_t_Uv*j@SmUtiLyn z&1@ZxET?#s6voapzkH3yqh`A7c7izuPVU;Ke~72xG>Q2@{tGy=ORKakG?P(X>Z$W{ ztM4U;QBRf>|6cZ+)HWB=&WHAQumMlz4mzXWA)j}6cSKi@Hhn;jc~v;GN${66YSz_!-alg1hDZ)+7`tdn{jhy5i0$wa-aU-1FYd_9X-xqJ#-ENsQUP1&=>O;N3 zFg%A@wQjb>Ks=X5d3ka$J~YhyD4QkSyT7u~kdOdez#IKu2){A~#e7R0JFSku)oDlIL)Ji# z=lD1x3~Qg@dm}pr$j^Zi_SDlB{oVYpI5F z^ID0Afz6OZTFka5r)pk`p?vGFkcb0UrU;Fn^26bv*Q)C4AsEk_mEY)qYyR#%$qm6P zgcT-pw!KzR##$oZ-_z|#M5uuIG}hW?JW}+k6>6*|{0+4C+hieYI_^NBf|#n&@5V@!~H~`f~5hCO9%bMD7sUHj5h^ zqQG6UT}w07+TG^%`N-%OOcPuQo}S^h&J=>%T;YpFC@n2*P}yhAMGi`D;CnHAya%Wx z)l$VMejVo2tx>Kre$*8?wj+0}j;Ja$65aTt22f4ho&4FJ(Z7fOAIAe8X>-n!;}fk9 z_~B3w`2V1ApZ^<$`z(pSlgy{Q*BfiGgitMSou%GG`;YJ@#pxaMfBb1EjCAb6MfQB( ztL^VYpR=aZy+6xm2@6*M9(thT6i6$ukN{S4ObYyJ5+@it00&W`r@}M)AfnZY%AB+H`dMbWow$aFWy4r;TLx*2M z*oZTtSP}3@Lfl$9A@Fy%iqf7i_cf-gpVq%P(om$b9od%5@L;?9cPhRQc*MMLtF48} z$=yIrV8BK+8_Q9 z$!~;GiBrc)yNOpq{5X?oCp`DS`*mb%>Da&1gt>2r7k#BaUf@jG)%>CdmAkl8`0a@t zEL6m=kW!5>ilttv*PsxVrH=U29gC~ZUx?>2BMxgP<&AmJzy3xDQ0Mnkg*^K1P;sB$ z1)=;}zTgtz1;bAXLEvC^y&{g-V&w1%(%gUJ(HrWGk;NAothD(psEb38kqZa285ijV zo=2QvO5=qy{#JubEf73tgishLHZ8&+k=}v|Le-vAaLdOX zQPUtGA_e&EQYq>8*ynl)EU)R%D(s$s;QxNdNE0US>f3)7KlufdZZ0e)dC{38k=`E) z!p4Rf!p3}2k@qXpS;(AUU=p=}!E5$=k@7|}KC9f2%G+uCIgAj;jZ(i+Wf*8MJvo>$ z|0xL7e+y-QHTXr-c0-F84VGYxGRMe33wGV`W55He^RNi(i`e(Uw}vlKLPt@!Xi*#o zhXA)dAc)SAcglr8-f%-%_v{UU4)q1))Xc`={Iblez&PKjeK9Hp= zvA)3U2(LXL2|MVjLS8*b1Tq|DiH1%2CK{*jyNT>*{uWV1g{mVTWGzC36Qs9}p>KU$ z{MwNh)bNIZ%^--d90AFRoZ$-w*Yx3=kvhr~{(AW@8|S(Y3hqR^BwiUd@)mZ%fXdm( zg75Gw1f-#7MTHa*HQN|df#0au=GS0Lg-sj4 zDt{v&+4Uc$g?&3{o(okuuK)1|?W-aEp1gmoyc`mt({WPk!f#J5bvm}PaJHv;Ix^0@ z1iK>kDQM_V3G_5yKFNGq=S<(ze9KvzPY#Qz)gmj@L8KSZ)~kGBKbaN{6ph8?fgEO( zgJEhbH6!cl_=1=$zyBNcmL{jD@;8a%++T)(w0Q!(bSU)0+aYpBZlSDLqOqGLXh@>t zWsZ^Lxq}l@{SR?fZnSL`N8jpI`DDJxI4*qle6V(JDM<)kKWW3J%k2U|s8gu05?c$8 z^IcavU=G~NVd`qRy5iIV_aO_ng;7vv(plgCLOMfhd1eMpG#ou#w2mIxnVII(Lbl#r zp@I}Cxuc4fWopK8>yCeH#Bq)Pe`f*I20^gF*QsGXJ_~Ph5>=P}ShFt!J~|@fkO?wH z*vFB`z~@=}MkPA);xrFIe< z%+LJUvfUhWS%hikgW>rL_-h=QBZpQc;NHa-n=Uw_eaJ8rPahlDT{N3MdF!rL4!CEL431kPt{%?Qmd0B3cWHg(?SantVw|3{+2EC06_ zkg%MDgT30bU?`Asp(<7@e3hZHrw43uu{L};0e=WVO5kbZy`=DI0SQI+ABL_dTTq*E zJNzGcEH6z^f^qvF>&tUdx}fyGs-6FA7R8$YKzY)D;oz-=r!F36|ak##_)iGR7(Pk zsZcjH#T4Xi1gaN$3Cvo%d4nn9eV4%wS98Lg+;vGy!ypmHbtE`_rY@Pj%gA7HgpKyPvt0&ZhMb$hhoO zqri6bPZG?^_X?UEIjr3fk8;X_i!RheB(a~A`#;FzZ>Z^oVw+$dVxCW3_!QNjNsy$o zBxPhi|Ip=3vk{gUI~W=5KrE`cuZQUI?`;Xzj*eB-cfFW`UVng4R#AfGQC z28wC)7V3>pNu_)@;DVYOX%R;j7$BTFG&~6Y+1m;$Q8NA*dEa?&S59X^SA4+JM~w-i z{L&I5-HyrL@ZMvqBPKBpuOU$EsE$e=>H4eRi5I(2XAtFo=KuVi_d+QtPF z^Y7oa@mxjec%;RKzEFIBP!J#E#e1qY+7qH#$x8Bz<$5T5*V95ohf?LC@T;=e@wukc zLQ7&|SgK2l9UmT7Mk@HYs_)*G^?Tf1+%eo7TFRscJNQ;EVcNhFMo=_8A|gz#$xkT> zUh=V{rOcipuz56M?<4S`_@h^lGNp~C?6b4_DfY(LLZ*MC*r%ST7`w_mqbJ8Rpy>o#Amo0&>{ttM5aA zapipobdcCshYfnJ?`;>*-_LlE6~?@kPC&2oag}V(6)=2S{J5}l&>sY_XTlPG-zbmc z4mlpj8vp?9eUw(L`sZGyYm4V0>nFcsg!MRRiuxg^erC}Xq=(axmoLiPb{=VQ_ep

=TmYt{+8-=jC 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 z%0A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�?vU^dJ&= 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�iiF|$ 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 ODp*+`&RXL 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%0A# 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 diff --git a/metricbeat/docs/modules/aws.asciidoc b/metricbeat/docs/modules/aws.asciidoc index 242b5cc8c62..6718eada7ed 100644 --- a/metricbeat/docs/modules/aws.asciidoc +++ b/metricbeat/docs/modules/aws.asciidoc @@ -6,8 +6,8 @@ This file is generated! See scripts/docs_collector.py == aws module This module periodically fetches monitoring metrics from AWS Cloudwatch using -https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html[GetMetricData API] for running -EC2 instances. Note: extra AWS charges on GetMetricData API requests will be generated by this module. +https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html[GetMetricData API] for AWS services. +Note: extra AWS charges on GetMetricData API requests will be generated by this module. The default metricsets are `ec2`, `sqs`, `s3_request` and `s3_daily_storage`. @@ -18,11 +18,10 @@ This module environment variable `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, ` references in the config file to set values that need to be configurable during deployment. There are two different kinds of AWS credentials can be used here: `access keys` and `temporary security credentials`. -`AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` are the two parts of `access keys` for AWS to authenticate AWS API requests. -`access keys` are long-term credentials for an IAM user or the AWS account root user. Please see +`AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` are the two parts of `access keys`. They are long-term credentials for +an IAM user or the AWS account root user. Please see https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys[AWS Access Keys - and Secret Access Keys] for more details. A more AWS recommended way is to use -`temporary security credentials` instead of `access keys`. `temporary security credentials` consist of an access key ID, + and Secret Access Keys] for more details. `temporary security credentials` has a limited lifetime and consists of an access key ID, a secret access key, and a security token which typically returned from `GetSessionToken`. MFA-enabled IAM users would need to submit an MFA code while calling `GetSessionToken`. `aws_default_region` is to set the region for SDK to use. Please see https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html[Temporary Security Credentials] for more details. @@ -32,8 +31,14 @@ see https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html[Te aws> sts get-session-token --serial-number arn:aws:iam::1234:mfa/your-email@example.com --token-code 456789 --duration-seconds 129600 ---- -Specific permissions needs to be added into the IAM user's policy to authorize Metricbeat to collect AWS monitoring metrics. Please -see documentation under each metricset for required permissions. +Since temporary security credentials are short term, after they expire, the user needs to generate new ones and modify +the aws.yml config file with the new credentials. This will cause data loss if the config file is not update with new +credentials before the old ones expire. For Metricbeat, we recommend users to use access keys in config file to enable +aws module making AWS api calls without have to generate new temporary credentials and update the config frequently. + +IAM policy is an entity that defines permissions to an object within your AWS environment. Specific permissions needs +to be added into the IAM user's policy to authorize Metricbeat to collect AWS monitoring metrics. Please see documentation +under each metricset for required permissions. Here is an example of aws metricbeat module configuration: @@ -51,7 +56,13 @@ metricbeat.modules: default_region: '${AWS_REGION:us-west-1}' ---- -=== ec2 metricset +[float] +== Metricsets + +The following Metricsets are already included: + +[float] +=== `ec2` By default, Amazon EC2 sends metric data to CloudWatch every 5 minutes. With this basic monitoring, `period` in aws module configuration should be larger or equal than `300s`. If `period` is set to be less than `300s`, the same cloudwatch metrics will be collected more than once which will cause extra fees without getting more granular metrics. For example, in `US East (N. Virginia)` region, it costs @@ -68,13 +79,18 @@ The ec2 metricset comes with a predefined dashboard. For example: image::./images/metricbeat-aws-ec2-overview.png[] -=== sqs metricset +[float] +=== `sqs` Cloudwatch metrics for Amazon SQS queues are automatically collected and pushed to CloudWatch every 5 minutes, the `period` for `sqs` metricset is recommended to be `300s` or multiples of `300s`. -=== s3_request and s3_daily_storage metricset +[float] +=== `s3_daily_storage` Daily storage metrics for S3 buckets are reported once per day with no additional cost. Since they are daily metrics, `period` for `s3_daily_storage` metricset is recommended to be `86400s` or multiples of `86400s`. + +[float] +=== `s3_request` Request metrics are available at 1-minute intervals with additional charges. The s3_request metricset will give more granular data to track S3 bucket usage. The `period` for `s3_request` metricset can be set to `60s` or multiples of `60s`. diff --git a/x-pack/metricbeat/module/aws/_meta/docs.asciidoc b/x-pack/metricbeat/module/aws/_meta/docs.asciidoc index 8a864df0669..42e6da16527 100644 --- a/x-pack/metricbeat/module/aws/_meta/docs.asciidoc +++ b/x-pack/metricbeat/module/aws/_meta/docs.asciidoc @@ -1,6 +1,6 @@ This module periodically fetches monitoring metrics from AWS Cloudwatch using -https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html[GetMetricData API] for running -EC2 instances. Note: extra AWS charges on GetMetricData API requests will be generated by this module. +https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_GetMetricData.html[GetMetricData API] for AWS services. +Note: extra AWS charges on GetMetricData API requests will be generated by this module. The default metricsets are `ec2`, `sqs`, `s3_request` and `s3_daily_storage`. @@ -11,11 +11,10 @@ This module environment variable `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, ` references in the config file to set values that need to be configurable during deployment. There are two different kinds of AWS credentials can be used here: `access keys` and `temporary security credentials`. -`AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` are the two parts of `access keys` for AWS to authenticate AWS API requests. -`access keys` are long-term credentials for an IAM user or the AWS account root user. Please see +`AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` are the two parts of `access keys`. They are long-term credentials for +an IAM user or the AWS account root user. Please see https://docs.aws.amazon.com/general/latest/gr/aws-sec-cred-types.html#access-keys-and-secret-access-keys[AWS Access Keys - and Secret Access Keys] for more details. A more AWS recommended way is to use -`temporary security credentials` instead of `access keys`. `temporary security credentials` consist of an access key ID, + and Secret Access Keys] for more details. `temporary security credentials` has a limited lifetime and consists of an access key ID, a secret access key, and a security token which typically returned from `GetSessionToken`. MFA-enabled IAM users would need to submit an MFA code while calling `GetSessionToken`. `aws_default_region` is to set the region for SDK to use. Please see https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html[Temporary Security Credentials] for more details. @@ -25,8 +24,14 @@ see https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html[Te aws> sts get-session-token --serial-number arn:aws:iam::1234:mfa/your-email@example.com --token-code 456789 --duration-seconds 129600 ---- -Specific permissions needs to be added into the IAM user's policy to authorize Metricbeat to collect AWS monitoring metrics. Please -see documentation under each metricset for required permissions. +Since temporary security credentials are short term, after they expire, the user needs to generate new ones and modify +the aws.yml config file with the new credentials. This will cause data loss if the config file is not update with new +credentials before the old ones expire. For Metricbeat, we recommend users to use access keys in config file to enable +aws module making AWS api calls without have to generate new temporary credentials and update the config frequently. + +IAM policy is an entity that defines permissions to an object within your AWS environment. Specific permissions needs +to be added into the IAM user's policy to authorize Metricbeat to collect AWS monitoring metrics. Please see documentation +under each metricset for required permissions. Here is an example of aws metricbeat module configuration: @@ -44,7 +49,13 @@ metricbeat.modules: default_region: '${AWS_REGION:us-west-1}' ---- -=== ec2 metricset +[float] +== Metricsets + +The following Metricsets are already included: + +[float] +=== `ec2` By default, Amazon EC2 sends metric data to CloudWatch every 5 minutes. With this basic monitoring, `period` in aws module configuration should be larger or equal than `300s`. If `period` is set to be less than `300s`, the same cloudwatch metrics will be collected more than once which will cause extra fees without getting more granular metrics. For example, in `US East (N. Virginia)` region, it costs @@ -61,13 +72,18 @@ The ec2 metricset comes with a predefined dashboard. For example: image::./images/metricbeat-aws-ec2-overview.png[] -=== sqs metricset +[float] +=== `sqs` Cloudwatch metrics for Amazon SQS queues are automatically collected and pushed to CloudWatch every 5 minutes, the `period` for `sqs` metricset is recommended to be `300s` or multiples of `300s`. -=== s3_request and s3_daily_storage metricset +[float] +=== `s3_daily_storage` Daily storage metrics for S3 buckets are reported once per day with no additional cost. Since they are daily metrics, `period` for `s3_daily_storage` metricset is recommended to be `86400s` or multiples of `86400s`. + +[float] +=== `s3_request` Request metrics are available at 1-minute intervals with additional charges. The s3_request metricset will give more granular data to track S3 bucket usage. The `period` for `s3_request` metricset can be set to `60s` or multiples of `60s`. diff --git a/x-pack/metricbeat/module/aws/ec2/_meta/data.json b/x-pack/metricbeat/module/aws/ec2/_meta/data.json index eba6c8d66cd..32709544177 100644 --- a/x-pack/metricbeat/module/aws/ec2/_meta/data.json +++ b/x-pack/metricbeat/module/aws/ec2/_meta/data.json @@ -7,12 +7,12 @@ "aws": { "ec2": { "cpu": { - "credit_balance": 576, - "credit_usage": 0.144723, + "credit_balance": 144, + "credit_usage": 0.001823, "surplus_credit_balance": 0, "surplus_credits_charged": 0, "total": { - "pct": 1.366194313233248 + "pct": 0.033333333333303 } }, "diskio": { @@ -27,21 +27,21 @@ }, "instance": { "core": { - "count": 2 + "count": 1 }, "image": { - "id": "ami-f920cd94" + "id": "ami-05b3bcf7f311194b3" }, "monitoring": { "state": "disabled" }, "private": { - "dns_name": "ip-10-0-0-148.ec2.internal", - "ip": "10.0.0.148" + "dns_name": "ip-172-31-10-23.ap-southeast-1.compute.internal", + "ip": "172.31.10.23" }, "public": { - "dns_name": "ec2-54-226-109-162.compute-1.amazonaws.com", - "ip": "54.226.109.162" + "dns_name": "ec2-18-136-198-93.ap-southeast-1.compute.amazonaws.com", + "ip": "18.136.198.93" }, "state": { "code": 16, @@ -51,12 +51,12 @@ }, "network": { "in": { - "bytes": 737000.4, - "packets": 1361.2 + "bytes": 56, + "packets": 1 }, "out": { - "bytes": 227871.2, - "packets": 1411.2 + "bytes": 88, + "packets": 1.6 } }, "status": { @@ -67,15 +67,15 @@ } }, "cloud": { - "availability_zone": "us-east-1b", + "availability_zone": "ap-southeast-1b", "instance": { - "id": "i-77f84332" + "id": "i-0c68eeb552231a8d0" }, "machine": { - "type": "t2.medium" + "type": "t2.micro" }, - "provider": "ec2", - "region": "us-east-1" + "provider": "aws", + "region": "ap-southeast-1" }, "event": { "dataset": "aws.ec2", diff --git a/x-pack/metricbeat/module/aws/ec2/_meta/docs.asciidoc b/x-pack/metricbeat/module/aws/ec2/_meta/docs.asciidoc index 661392d43b7..da05069eb2b 100644 --- a/x-pack/metricbeat/module/aws/ec2/_meta/docs.asciidoc +++ b/x-pack/metricbeat/module/aws/ec2/_meta/docs.asciidoc @@ -2,6 +2,35 @@ The ec2 metricset of aws module allows you to monitor your AWS EC2 instances, including `cpu`, `network`, `disk` and `status`. `ec2` metricset fetches a set of values from https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/viewing_metrics_with_cloudwatch.html#ec2-cloudwatch-metrics[Cloudwatch AWS EC2 Metrics]. +We fetch the following data: + +* *cpu.total.pct*: The percentage of allocated EC2 compute units that are currently in use on the instance. +* *cpu.credit_usage*: The number of CPU credits spent by the instance for CPU utilization. +* *cpu.credit_balance*: The number of earned CPU credits that an instance has accrued since it was launched or started. +* *cpu.surplus_credit_balance*: The number of surplus credits that have been spent by an unlimited instance when its CPUCreditBalance value is zero. +* *cpu.surplus_credits_charged*: The number of spent surplus credits that are not paid down by earned CPU credits, and which thus incur an additional charge. +* *network.in.packets*: The number of packets received on all network interfaces by the instance. +* *network.out.packets*: The number of packets sent out on all network interfaces by the instance. +* *network.in.bytes*: The number of bytes received on all network interfaces by the instance. +* *network.out.bytes*: The number of bytes sent out on all network interfaces by the instance. +* *diskio.read.bytes*: Bytes read from all instance store volumes available to the instance. +* *diskio.write.bytes*: Bytes written to all instance store volumes available to the instance. +* *diskio.read.ops*: Completed read operations from all instance store volumes available to the instance in a specified period of time. +* *diskio.write.ops*: Completed write operations to all instance store volumes available to the instance in a specified period of time. +* *status.check_failed*: Reports whether the instance has passed both the instance status check and the system status check in the last minute. +* *status.check_failed_system*: Reports whether the instance has passed the system status check in the last minute. +* *status.check_failed_instance*: Reports whether the instance has passed the instance status check in the last minute. +* *instance.core.count*: The number of CPU cores for the instance. +* *instance.image.id*: The ID of the image used to launch the instance. +* *instance.monitoring.state*: Indicates whether detailed monitoring is enabled. +* *instance.private.dns_name*: The private DNS name of the network interface. +* *instance.private.ip*: The private IPv4 address associated with the network interface. +* *instance.public.dns_name*: The public DNS name of the instance. +* *instance.public.ip*: The address of the Elastic IP address (IPv4) bound to the network interface. +* *instance.state.code*: The state of the instance, as a 16-bit unsigned integer. +* *instance.threads_per_core*: The state of the instance (pending | running | shutting-down | terminated | stopping | stopped). + +[float] === AWS Permissions Some specific AWS permissions are required for IAM user to collect AWS EC2 metrics. ---- @@ -10,6 +39,7 @@ cloudwatch:GetMetricData ec2:DescribeRegions ---- +[float] === Dashboard The aws ec2 metricset comes with a predefined dashboard. For example: diff --git a/x-pack/metricbeat/module/aws/ec2/ec2.go b/x-pack/metricbeat/module/aws/ec2/ec2.go index 60150ee7424..9033195516c 100644 --- a/x-pack/metricbeat/module/aws/ec2/ec2.go +++ b/x-pack/metricbeat/module/aws/ec2/ec2.go @@ -104,17 +104,18 @@ func (m *MetricSet) Fetch(report mb.ReporterV2) { for _, instanceID := range instanceIDs { metricDataQueries := constructMetricQueries(listMetricsOutput, instanceID, m.PeriodInSec) - if len(metricDataQueries) == 0 { - continue - } - // Use metricDataQueries to make GetMetricData API calls - metricDataOutput, err := aws.GetMetricDataResults(metricDataQueries, svcCloudwatch, startTime, endTime) - if err != nil { - err = errors.Wrap(err, "GetMetricDataResults failed, skipping region "+regionName+" for instance "+instanceID) - m.logger.Error(err.Error()) - report.Error(err) - continue + // If metricDataQueries, still needs to createCloudWatchEvents. + metricDataOutput := []cloudwatch.MetricDataResult{} + if len(metricDataQueries) != 0 { + // Use metricDataQueries to make GetMetricData API calls + metricDataOutput, err = aws.GetMetricDataResults(metricDataQueries, svcCloudwatch, startTime, endTime) + if err != nil { + err = errors.Wrap(err, "GetMetricDataResults failed, skipping region "+regionName+" for instance "+instanceID) + m.logger.Error(err.Error()) + report.Error(err) + continue + } } // Create Cloudwatch Events for EC2 @@ -157,7 +158,7 @@ func createCloudWatchEvents(getMetricDataResults []cloudwatch.MetricDataResult, } event.RootFields.Put("service.name", metricsetName) - event.RootFields.Put("cloud.provider", metricsetName) + event.RootFields.Put("cloud.provider", "aws") event.RootFields.Put("cloud.availability_zone", *instanceOutput.Placement.AvailabilityZone) event.RootFields.Put("cloud.region", regionName) event.RootFields.Put("cloud.instance.id", instanceID) @@ -244,7 +245,7 @@ func getInstancesPerRegion(svc ec2iface.EC2API) (instanceIDs []string, instances func createMetricDataQuery(metric cloudwatch.Metric, instanceID string, index int, periodInSec int) (metricDataQuery cloudwatch.MetricDataQuery) { statistic := "Average" period := int64(periodInSec) - id := "e" + strconv.Itoa(index) + id := "ec2" + strconv.Itoa(index) metricDims := metric.Dimensions for _, dim := range metricDims { diff --git a/x-pack/metricbeat/module/aws/ec2/ec2_test.go b/x-pack/metricbeat/module/aws/ec2/ec2_test.go index 9e670c76d8d..b06d4fc386d 100644 --- a/x-pack/metricbeat/module/aws/ec2/ec2_test.go +++ b/x-pack/metricbeat/module/aws/ec2/ec2_test.go @@ -132,7 +132,7 @@ func TestCreateCloudWatchEvents(t *testing.T) { "service": common.MapStr{"name": "ec2"}, "cloud": common.MapStr{ "region": regionName, - "provider": "ec2", + "provider": "aws", "instance": common.MapStr{"id": "i-123"}, "machine": common.MapStr{"type": "t2.medium"}, "availability_zone": "us-west-1a", diff --git a/x-pack/metricbeat/module/aws/s3_daily_storage/_meta/docs.asciidoc b/x-pack/metricbeat/module/aws/s3_daily_storage/_meta/docs.asciidoc index fde92cc0964..61da19ef210 100644 --- a/x-pack/metricbeat/module/aws/s3_daily_storage/_meta/docs.asciidoc +++ b/x-pack/metricbeat/module/aws/s3_daily_storage/_meta/docs.asciidoc @@ -2,7 +2,8 @@ The s3_daily_storage metricset of aws module allows you to monitor your AWS S3 b fetches Cloudwatch daily storage metrics for each S3 bucket from https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html[S3 CloudWatch Daily Storage Metrics for Buckets]. - === AWS Permissions +[float] +=== AWS Permissions Some specific AWS permissions are required for IAM user to collect AWS s3_daily_storage metrics. ---- ec2:DescribeRegions diff --git a/x-pack/metricbeat/module/aws/s3_request/_meta/docs.asciidoc b/x-pack/metricbeat/module/aws/s3_request/_meta/docs.asciidoc index 1c0810be196..d4b1b6da4de 100644 --- a/x-pack/metricbeat/module/aws/s3_request/_meta/docs.asciidoc +++ b/x-pack/metricbeat/module/aws/s3_request/_meta/docs.asciidoc @@ -2,7 +2,8 @@ The s3_request metricset of aws module allows you to monitor your AWS S3 buckets fetches Cloudwatch daily storage metrics for each S3 bucket from https://docs.aws.amazon.com/AmazonS3/latest/dev/cloudwatch-monitoring.html[S3 CloudWatch Request Metrics for Buckets]. - === AWS Permissions +[float] +=== AWS Permissions Some specific AWS permissions are required for IAM user to collect AWS s3_request metrics. ---- ec2:DescribeRegions diff --git a/x-pack/metricbeat/module/aws/sqs/_meta/docs.asciidoc b/x-pack/metricbeat/module/aws/sqs/_meta/docs.asciidoc index 11ed9f87c50..9db9912db6e 100644 --- a/x-pack/metricbeat/module/aws/sqs/_meta/docs.asciidoc +++ b/x-pack/metricbeat/module/aws/sqs/_meta/docs.asciidoc @@ -2,11 +2,10 @@ The sqs metricset of aws module allows you to monitor your AWS SQS queues. `sqs` https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-available-cloudwatch-metrics.html[Amazon SQS Metrics]. CloudWatch metrics for Amazon SQS queues are automatically collected and pushed to CloudWatch every five minutes. +[float] === AWS Permissions Some specific AWS permissions are required for IAM user to collect AWS SQS metrics. ---- cloudwatch:GetMetricData ec2:DescribeRegions ---- - -=== Dashboard From e0316884ad009d9341ef45632dd9787c2186f80d Mon Sep 17 00:00:00 2001 From: kaiyan-sheng Date: Thu, 7 Mar 2019 11:37:01 -0700 Subject: [PATCH 169/332] Enable checks for jolokia documented fields (#10979) * Enable checks for jolokia documented fields * Remove test fields before assert_fields_are_documented --- CHANGELOG.next.asciidoc | 1 + metricbeat/docs/fields.asciidoc | 70 +++++++++++++++++++ metricbeat/module/jolokia/_meta/fields.yml | 28 ++++++++ metricbeat/module/jolokia/fields.go | 2 +- .../module/jolokia/jmx/_meta/fields.yml | 7 +- .../tests/system/test_autodiscover_jolokia.py | 8 +++ 6 files changed, 114 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 561dd4dcd6a..c91bb1317a0 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -192,6 +192,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Fix parsing error using GET in Jolokia module. {pull}11075[11075] {issue}11071[11071] - Collect metrics when EC2 instances are not in running state. {issue}11008[11008] {pull}11023[11023] - Change ECS field cloud.provider to aws. {pull}11023[11023] +- Add documentation about jolokia autodiscover fields. {issue}10925[10925] {pull}10979[10979] *Packetbeat* diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index f099a20d9ba..42e2b7da096 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -11118,6 +11118,76 @@ jolokia contains metrics exposed via jolokia agent +*`jolokia.agent.version`*:: ++ +-- +type: keyword + +Version number of jolokia agent. + + +-- + +*`jolokia.agent.id`*:: ++ +-- +type: keyword + +Each agent has a unique id which can be either provided during startup of the agent in form of a configuration parameter or being autodetected. If autodected, the id has several parts: The IP, the process id, hashcode of the agent and its type. + + +-- + +*`jolokia.server.product`*:: ++ +-- +type: keyword + +The container product if detected. + + +-- + +*`jolokia.server.version`*:: ++ +-- +type: keyword + +The container's version (if detected). + + +-- + +*`jolokia.server.vendor`*:: ++ +-- +type: keyword + +The vendor of the container the agent is running in. + + +-- + +*`jolokia.url`*:: ++ +-- +type: keyword + +The URL how this agent can be contacted. + + +-- + +*`jolokia.secured`*:: ++ +-- +type: boolean + +Whether the agent was configured for authentication or not. + + +-- + [[exported-fields-kafka]] == Kafka fields diff --git a/metricbeat/module/jolokia/_meta/fields.yml b/metricbeat/module/jolokia/_meta/fields.yml index c70f3a505c7..90e90b774ec 100644 --- a/metricbeat/module/jolokia/_meta/fields.yml +++ b/metricbeat/module/jolokia/_meta/fields.yml @@ -11,3 +11,31 @@ description: > jolokia contains metrics exposed via jolokia agent fields: + - name: agent.version + type: keyword + description: > + Version number of jolokia agent. + - name: agent.id + type: keyword + description: > + Each agent has a unique id which can be either provided during startup of the agent in form of a configuration parameter or being autodetected. If autodected, the id has several parts: The IP, the process id, hashcode of the agent and its type. + - name: server.product + type: keyword + description: > + The container product if detected. + - name: server.version + type: keyword + description: > + The container's version (if detected). + - name: server.vendor + type: keyword + description: > + The vendor of the container the agent is running in. + - name: url + type: keyword + description: > + The URL how this agent can be contacted. + - name: secured + type: boolean + description: > + Whether the agent was configured for authentication or not. diff --git a/metricbeat/module/jolokia/fields.go b/metricbeat/module/jolokia/fields.go index d87e16c1eb0..aef6948238f 100644 --- a/metricbeat/module/jolokia/fields.go +++ b/metricbeat/module/jolokia/fields.go @@ -32,5 +32,5 @@ func init() { // AssetJolokia returns asset data. // This is the base64 encoded gzipped contents of ../metricbeat/module/jolokia. func AssetJolokia() string { - return "eJxsj0FOBCEQRfec4oe1cwEWHsArGGMIVDPl0BShaoxze4NNTC/mLz/8l1cX3OgR8CVVbhwdYGyVAvzb0XgHZNI0uBtLC3h1ALBesUu+V3KAXmXYZ5K2cQnYYtXZDqoUlQLKRCuZcSsa8O5Vq3+Bv5p1/+GAjalmDX/wC1rc6Sw1Y48+QUPufTVPvI6sIZI0i9wUO9ngpKCfLkoZ3xz/P8VCzdb4bHGYnC/4DQAA//8Yw1wH" + return "eJyslM2O2zoMhfd5ioNs7i0wkwfworsupuiiKPqzKIpCkeiIM7bkklQy8/aFbGfGQZq2QKpdGPqcTxTJWzzQU4P73OUHdivA2DpqsH47RdYrIJB64cE4pwavVwAw/4s+h9LRCtCYxb77nFreNWhdpzUq1JFTarCr0kpmnHba4OtatVvfYB3NhvW3FdAydUGbUfwWyfW0hKrHnoYqJLkMc+QXXNOZP4TPyRwnRU8m7BX0OGSlgD275yS3o2Tzx0uKJcmYs9mTKOe0MJqYHujpkCUs4hfJgM+TCFLptyTI7SnI5oI3h+ts3zgfJylEp3AoiX8UAgccIvsI7xK2BGKLJBgk7zlQQCjCaQc1J1aGimuRZiFOaLP0NTjWuuVdEVfdMThxPVm9oGBLVcIVy4GMvFHY4K6dA/XnzSjKYURT2pO4rkqYNvgYCXfvp4xBsidVcLipqdHnQKdILgWw6Vih81IqyZ5kM0gOxdt1Ba1cc39N9aqS4BbPd7xk/0/a6MT+P8Usiv8XBK9+g5BClusJJp3jE7yUY9EjCikp1QbgdM5TpLue4tOHd4j5AIuss+3czSPRpcfwReh8qrY5d+TS37l/iTSOy8t9D06fR4FCnY/a55GSsZ9GIwtSPpnzaQP3j2csy2X3B5LjQr7vH4/bjpYdfrqJj+e4734GAAD//5W+yCU=" } diff --git a/metricbeat/module/jolokia/jmx/_meta/fields.yml b/metricbeat/module/jolokia/jmx/_meta/fields.yml index a927f3fc9f8..2821e3dcf71 100644 --- a/metricbeat/module/jolokia/jmx/_meta/fields.yml +++ b/metricbeat/module/jolokia/jmx/_meta/fields.yml @@ -1 +1,6 @@ -- release: ga +- key: jmx + type: group + description: > + Jolokia jmx metricset + release: ga + fields: diff --git a/metricbeat/tests/system/test_autodiscover_jolokia.py b/metricbeat/tests/system/test_autodiscover_jolokia.py index 4f1858c3d09..727e4e62807 100644 --- a/metricbeat/tests/system/test_autodiscover_jolokia.py +++ b/metricbeat/tests/system/test_autodiscover_jolokia.py @@ -52,3 +52,11 @@ def test_jolokia_jmx(self): print(evt) assert evt["jolokia"]["test"]["gc"]["collection_count"] >= 0 + + # Check Jolokia autodiscover metadata is added + assert evt['jolokia']['server']['product'] == 'tomcat' + assert evt['jolokia']['server']['vendor'] == 'Apache' + + # Remove "test" fields because namespace specific fields are not documented + del(evt["jolokia"]["test"]) + self.assert_fields_are_documented(output[0]) From e5c3485e7329e67f690fe6652c4ea2e538b95552 Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Thu, 7 Mar 2019 13:12:24 -0600 Subject: [PATCH 170/332] [Heartbeat] Fix status for TCP checks (#11118) The heartbeat checks for TCP send/receive have been broken for a long time, since at least 6.3 from my testing. An error was returned, but the status was still set to 'up'. This patch fixes that and adds tests. --- CHANGELOG.next.asciidoc | 1 + heartbeat/monitors/active/tcp/task.go | 3 +- heartbeat/monitors/active/tcp/tcp_test.go | 117 +++++++++++++++++++++- heartbeat/reason/reason.go | 5 +- 4 files changed, 122 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index c91bb1317a0..c04c6d05b20 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -170,6 +170,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Made monitors.d configuration part of the default config. {pull}9004[9004] - Fixed rare issue where TLS connections to endpoints with x509 certificates missing either notBefore or notAfter would cause the check to fail with a stacktrace. {pull}9566[9566] +- Fix checks for TCP send/receive data {pull}11118[11118] *Journalbeat* diff --git a/heartbeat/monitors/active/tcp/task.go b/heartbeat/monitors/active/tcp/task.go index 9729d6ab5e0..4c5523f671a 100644 --- a/heartbeat/monitors/active/tcp/task.go +++ b/heartbeat/monitors/active/tcp/task.go @@ -70,7 +70,8 @@ func pingHost( }, }) if err != nil { - event.PutValue("error", reason.FailValidate(err)) + return reason.MakeValidateError(err) } + return nil } diff --git a/heartbeat/monitors/active/tcp/tcp_test.go b/heartbeat/monitors/active/tcp/tcp_test.go index fc857a298b5..3b25685636a 100644 --- a/heartbeat/monitors/active/tcp/tcp_test.go +++ b/heartbeat/monitors/active/tcp/tcp_test.go @@ -25,6 +25,7 @@ import ( "net/http/httptest" "net/url" "os" + "strconv" "testing" "github.com/stretchr/testify/require" @@ -38,11 +39,16 @@ import ( ) func testTCPCheck(t *testing.T, host string, port uint16) *beat.Event { - config, err := common.NewConfigFrom(common.MapStr{ + config := common.MapStr{ "hosts": host, "ports": port, "timeout": "1s", - }) + } + return testTCPConfigCheck(t, config, host, port) +} + +func testTCPConfigCheck(t *testing.T, configMap common.MapStr, host string, port uint16) *beat.Event { + config, err := common.NewConfigFrom(configMap) require.NoError(t, err) jobs, endpoints, err := create("tcp", config) @@ -194,3 +200,110 @@ func TestUnreachableEndpointJob(t *testing.T) { event.Fields, ) } + +func TestCheckUp(t *testing.T) { + host, port, ip, closeEcho, err := startEchoServer(t) + require.NoError(t, err) + defer closeEcho() + + configMap := common.MapStr{ + "hosts": host, + "ports": port, + "timeout": "1s", + "check.receive": "echo123", + "check.send": "echo123", + } + + event := testTCPConfigCheck(t, configMap, host, port) + + mapval.Test( + t, + mapval.Strict(mapval.Compose( + tcpMonitorChecks(host, ip, port, "up"), + hbtest.RespondingTCPChecks(), + hbtest.SimpleURLChecks(t, "tcp", host, port), + hbtest.SummaryChecks(1, 0), + mapval.MustCompile(mapval.Map{ + "resolve": mapval.Map{ + "ip": ip, + "rtt.us": mapval.IsDuration, + }, + "tcp": mapval.Map{ + "rtt.validate.us": mapval.IsDuration, + }, + }), + )), + event.Fields, + ) +} + +func TestCheckDown(t *testing.T) { + host, port, ip, closeEcho, err := startEchoServer(t) + require.NoError(t, err) + defer closeEcho() + + configMap := common.MapStr{ + "hosts": host, + "ports": port, + "timeout": "1s", + "check.receive": "BOOM", // should fail + "check.send": "echo123", + } + + event := testTCPConfigCheck(t, configMap, host, port) + + mapval.Test( + t, + mapval.Strict(mapval.Compose( + tcpMonitorChecks(host, ip, port, "down"), + hbtest.RespondingTCPChecks(), + hbtest.SimpleURLChecks(t, "tcp", host, port), + hbtest.SummaryChecks(0, 1), + mapval.MustCompile(mapval.Map{ + "resolve": mapval.Map{ + "ip": ip, + "rtt.us": mapval.IsDuration, + }, + "tcp": mapval.Map{ + "rtt.validate.us": mapval.IsDuration, + }, + "error": mapval.Map{ + "type": "validate", + "message": "received string mismatch", + }, + }), + )), + event.Fields, + ) +} + +// startEchoServer starts a simple TCP echo server for testing. Only handles a single connection once. +// Note you MUST connect to this server exactly once to avoid leaking a goroutine. This is only useful +// for the specific tests used here. +func startEchoServer(t *testing.T) (host string, port uint16, ip string, close func() error, err error) { + // Simple echo server + listener, err := net.Listen("tcp", "localhost:0") + if err != nil { + return "", 0, "", nil, err + } + go func() { + conn, err := listener.Accept() + require.NoError(t, err) + buf := make([]byte, 1024) + rlen, err := conn.Read(buf) + require.NoError(t, err) + wlen, err := conn.Write(buf[:rlen]) + require.NoError(t, err) + // Normally we'd retry partial writes, but for tests this is OK + require.Equal(t, wlen, rlen) + }() + + ip, portStr, err := net.SplitHostPort(listener.Addr().String()) + portUint64, err := strconv.ParseUint(portStr, 10, 16) + if err != nil { + listener.Close() + return "", 0, "", nil, err + } + + return "localhost", uint16(portUint64), ip, listener.Close, nil +} diff --git a/heartbeat/reason/reason.go b/heartbeat/reason/reason.go index 08c7724f016..d5fc5e45689 100644 --- a/heartbeat/reason/reason.go +++ b/heartbeat/reason/reason.go @@ -68,4 +68,7 @@ func Fail(r Reason) common.MapStr { func FailIO(err error) common.MapStr { return Fail(IOError{err}) } -func FailValidate(err error) common.MapStr { return Fail(ValidateError{err}) } +// MakeValidateError creates an instance of ValidateError from the given error. +func MakeValidateError(err error) ValidateError { + return ValidateError{err} +} From 698dc6dd9ce64c8b3e409a7168206f352c183808 Mon Sep 17 00:00:00 2001 From: kaiyan-sheng Date: Thu, 7 Mar 2019 12:26:46 -0700 Subject: [PATCH 171/332] [Metricbeat] Migrate Jolokia jmx metricset to use ReporterV2 interface (#11104) * Change jolokia jmx to use reporterV2 * Change to use ReportingFetchV2Error * Remove compose.EnsureUp in TestData --- metricbeat/module/jolokia/jmx/_meta/data.json | 10 ++++---- metricbeat/module/jolokia/jmx/jmx.go | 23 ++++++++----------- .../jolokia/jmx/jmx_integration_test.go | 23 ++++++++----------- 3 files changed, 25 insertions(+), 31 deletions(-) diff --git a/metricbeat/module/jolokia/jmx/_meta/data.json b/metricbeat/module/jolokia/jmx/_meta/data.json index 73c74a7216b..dcd16ad2757 100644 --- a/metricbeat/module/jolokia/jmx/_meta/data.json +++ b/metricbeat/module/jolokia/jmx/_meta/data.json @@ -12,23 +12,23 @@ "committed": 514850816, "init": 536870912, "max": 7635730432, - "used": 133286280 + "used": 42335648 }, "non_heap_usage": { - "committed": 32702464, + "committed": 32243712, "init": 2555904, "max": -1, - "used": 31349800 + "used": 29999896 } }, - "uptime": 56281839 + "uptime": 70795470 } }, "metricset": { "name": "jmx" }, "service": { - "address": "127.0.0.1:8080", + "address": "127.0.0.1:8778", "type": "jolokia" } } \ No newline at end of file diff --git a/metricbeat/module/jolokia/jmx/jmx.go b/metricbeat/module/jolokia/jmx/jmx.go index ba0ac72cb68..187be18128a 100644 --- a/metricbeat/module/jolokia/jmx/jmx.go +++ b/metricbeat/module/jolokia/jmx/jmx.go @@ -18,8 +18,6 @@ package jmx import ( - "github.com/joeshaw/multierror" - "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/libbeat/common" @@ -93,24 +91,23 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { }, nil } -// Fetch methods implements the data gathering and data conversion to the right format -func (m *MetricSet) Fetch() ([]common.MapStr, error) { - +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(reporter mb.ReporterV2) error { var allEvents []common.MapStr allEvents, err := m.jolokia.Fetch(m) if err != nil { - return nil, err + return err } // Set dynamic namespace. - var errs multierror.Errors for _, event := range allEvents { - _, err := event.Put(mb.NamespaceKey, m.namespace) - if err != nil { - errs = append(errs, err) - } + reporter.Event(mb.Event{ + MetricSetFields: event, + Namespace: m.Module().Name() + "." + m.namespace, + }) } - - return allEvents, errs.Err() + return nil } diff --git a/metricbeat/module/jolokia/jmx/jmx_integration_test.go b/metricbeat/module/jolokia/jmx/jmx_integration_test.go index 1677395e4bb..55a83745557 100644 --- a/metricbeat/module/jolokia/jmx/jmx_integration_test.go +++ b/metricbeat/module/jolokia/jmx/jmx_integration_test.go @@ -33,25 +33,22 @@ func TestFetch(t *testing.T) { compose.EnsureUp(t, "jolokia") for _, config := range getConfigs() { - f := mbtest.NewEventsFetcher(t, config) - events, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() - } + f := mbtest.NewReportingMetricSetV2Error(t, config) + events, errs := mbtest.ReportingFetchV2Error(f) + assert.Empty(t, errs) + assert.NotEmpty(t, events) t.Logf("%s/%s events: %+v", f.Module().Name(), f.Name(), events) - if len(events) == 0 || len(events[0]) <= 1 { - t.Fatal("Empty events") - } } } func TestData(t *testing.T) { - compose.EnsureUp(t, "jolokia") - for _, config := range getConfigs() { - f := mbtest.NewEventsFetcher(t, config) - err := mbtest.WriteEvents(f, t) - if err != nil { + f := mbtest.NewReportingMetricSetV2Error(t, config) + events, errs := mbtest.ReportingFetchV2Error(f) + assert.Empty(t, errs) + assert.NotEmpty(t, events) + + if err := mbtest.WriteEventsReporterV2Error(f, t, ""); err != nil { t.Fatal("write", err) } } From 0528608bba5a3f64bdec5171d5bf3acbdb4725c8 Mon Sep 17 00:00:00 2001 From: KC Date: Fri, 8 Mar 2019 22:13:45 +0800 Subject: [PATCH 172/332] update document to include a new community beat(unitybeat) (#11152) --- libbeat/docs/communitybeats.asciidoc | 1 + 1 file changed, 1 insertion(+) diff --git a/libbeat/docs/communitybeats.asciidoc b/libbeat/docs/communitybeats.asciidoc index b5254947a30..b0acb5794d3 100644 --- a/libbeat/docs/communitybeats.asciidoc +++ b/libbeat/docs/communitybeats.asciidoc @@ -105,6 +105,7 @@ https://github.com/gravitational/udpbeat[udpbeat]:: Ships structured logs via UD https://github.com/hartfordfive/udplogbeat[udplogbeat]:: Accept events via local UDP socket (in plain-text or JSON with ability to enforce schemas). Can also be used for applications only supporting syslog logging. https://github.com/cleesmith/unifiedbeat[unifiedbeat]:: Reads records from Unified2 binary files generated by network intrusion detection software and indexes the records in Elasticsearch. +https://github.com/kckecheng/unitybeat[unitybeat]:: Collects performance metrics from Dell EMC Unity storage array. https://github.com/mrkschan/uwsgibeat[uwsgibeat]:: Reads stats from uWSGI. https://github.com/phenomenes/varnishlogbeat[varnishlogbeat]:: Reads log data from a Varnish instance and ships it to Elasticsearch. https://github.com/phenomenes/varnishstatbeat[varnishstatbeat]:: Reads stats data from a Varnish instance and ships it to Elasticsearch. From 225f48454c8fce5e5000d2bd1dd181f0e67914a5 Mon Sep 17 00:00:00 2001 From: Silvia Mitter Date: Fri, 8 Mar 2019 15:21:45 +0100 Subject: [PATCH 173/332] Revert "Introduce SkipAddHostName setting. (#10728)" (#10769) This reverts commit 72df5e54015f353a166be373200563a6047d6db7. @urso figured out that adding this `SkipAddHostName` flag changes the order in which processors are applied and also changes that the host name now gets added to beats that are using the `pipeline.New` method (e.g. xpack monitoring). Thus this commit will be reverted and another solution will be implemented that allows to not set the `host.name` for every beat. --- CHANGELOG-developer.next.asciidoc | 1 - libbeat/beat/pipeline.go | 4 -- libbeat/publisher/pipeline/module.go | 3 ++ libbeat/publisher/pipeline/processor.go | 11 +---- libbeat/publisher/pipeline/processor_test.go | 48 -------------------- 5 files changed, 4 insertions(+), 63 deletions(-) diff --git a/CHANGELOG-developer.next.asciidoc b/CHANGELOG-developer.next.asciidoc index 0470646c01a..72a7993db97 100644 --- a/CHANGELOG-developer.next.asciidoc +++ b/CHANGELOG-developer.next.asciidoc @@ -29,7 +29,6 @@ The list below covers the major changes between 7.0.0-beta1 and master only. ==== Added - Metricset generator generates beta modules by default now. {pull}10657[10657] -- Move host name addition to a processor. {pull}10728[10728] - The `beat.Event` accessor methods now support `@metadata` keys. {pull}10761[10761] - Assertion for documented fields in tests fails if any of the fields in the tested event is documented as an alias. {pull}10921[10921] - Support for Logger in the Metricset base instance. {pull}11106[11106] diff --git a/libbeat/beat/pipeline.go b/libbeat/beat/pipeline.go index 435f48203ea..3db7baae6d2 100644 --- a/libbeat/beat/pipeline.go +++ b/libbeat/beat/pipeline.go @@ -80,10 +80,6 @@ type ClientConfig struct { // To skip adding that metadata set this to true. SkipAgentMetadata bool - // By default events are decorated with a host name. - // To skip adding that host.name set this to true. - SkipHostName bool - // ACK handler strategies. // Note: ack handlers are run in another go-routine owned by the publisher pipeline. // They should not block for to long, to not block the internal buffers for diff --git a/libbeat/publisher/pipeline/module.go b/libbeat/publisher/pipeline/module.go index 7af329d8429..2c854c13676 100644 --- a/libbeat/publisher/pipeline/module.go +++ b/libbeat/publisher/pipeline/module.go @@ -85,6 +85,9 @@ func Load( Annotations: Annotations{ Event: config.EventMetadata, Builtin: common.MapStr{ + "host": common.MapStr{ + "name": name, + }, "ecs": common.MapStr{ "version": "1.0.0-beta2", }, diff --git a/libbeat/publisher/pipeline/processor.go b/libbeat/publisher/pipeline/processor.go index 0dcaa59c98e..81834f7bdff 100644 --- a/libbeat/publisher/pipeline/processor.go +++ b/libbeat/publisher/pipeline/processor.go @@ -127,17 +127,12 @@ func newProcessorPipeline( processors.add(actions.NewAddFields(meta, needsCopy)) } - // setup 7: add agent metadata and host name + // setup 7: add agent metadata if !config.SkipAgentMetadata { needsCopy := global.alwaysCopy || global.processors != nil processors.add(actions.NewAddFields(createAgentFields(info), needsCopy)) } - if !config.SkipHostName { - needsCopy := global.alwaysCopy || global.processors != nil - processors.add(actions.NewAddFields(addHostName(info), needsCopy)) - } - // setup 8: pipeline processors list processors.add(global.processors) @@ -288,10 +283,6 @@ func createAgentFields(info beat.Info) common.MapStr { return common.MapStr{"agent": metadata} } -func addHostName(info beat.Info) common.MapStr { - return common.MapStr{"host": common.MapStr{"name": info.Name}} -} - func debugPrintProcessor(info beat.Info, monitors Monitors) *processorFn { // ensure only one go-routine is using the encoder (in case // beat.Client is shared between multiple go-routines by accident) diff --git a/libbeat/publisher/pipeline/processor_test.go b/libbeat/publisher/pipeline/processor_test.go index ea1e06c6a78..07b643d0c81 100644 --- a/libbeat/publisher/pipeline/processor_test.go +++ b/libbeat/publisher/pipeline/processor_test.go @@ -38,7 +38,6 @@ func TestProcessors(t *testing.T) { events []common.MapStr expected []common.MapStr includeAgentMetadata bool - includeHostName bool } tests := []struct { @@ -149,52 +148,6 @@ func TestProcessors(t *testing.T) { }, }, }, - { - name: "add host name", - global: pipelineProcessors{ - fields: common.MapStr{"global": 1, "host": common.MapStr{"name": "host123"}}, - }, - info: &beat.Info{ - Hostname: "test.host.hostname", - Name: "test.host.name", - }, - local: []local{ - { - config: beat.ClientConfig{}, - events: []common.MapStr{{"value": "abc"}}, - expected: []common.MapStr{ - { - "host": common.MapStr{"name": "test.host.name"}, - "value": "abc", "global": 1, - }, - }, - includeHostName: true, - }, - }, - }, - { - name: "add host name to existing host", - global: pipelineProcessors{ - fields: common.MapStr{"global": 1, "host": common.MapStr{"name": "host123"}}, - }, - info: &beat.Info{ - Hostname: "test.host.hostname", - Name: "test.host.name", - }, - local: []local{ - { - config: beat.ClientConfig{}, - events: []common.MapStr{{"value": "abc", "host": common.MapStr{"hostname": "test.other.hostname"}}}, - expected: []common.MapStr{ - { - "host": common.MapStr{"name": "test.host.name", "hostname": "test.other.hostname"}, - "value": "abc", "global": 1, - }, - }, - includeHostName: true, - }, - }, - }, { name: "beat local fields", local: []local{ @@ -440,7 +393,6 @@ func TestProcessors(t *testing.T) { } for i, local := range test.local { local.config.SkipAgentMetadata = !local.includeAgentMetadata - local.config.SkipHostName = !local.includeHostName programs[i] = newProcessorPipeline(info, monitors, test.global, local.config) } From 19c7699284038f4910130e7a4500ad5380ffdcac Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Fri, 8 Mar 2019 10:51:11 -0500 Subject: [PATCH 174/332] Extract all the fields for a Kinesis Record and not just the metadata (#11141) Add data field which contains raw data of the events and information about the partition, the sequence and the schema. Add a test to ensure the tranformation is OK from a KinesisRecord to a beat.Event. --- CHANGELOG.next.asciidoc | 2 +- .../provider/aws/transformer/transformer.go | 19 ++++--- .../aws/transformer/transformer_test.go | 55 +++++++++++++++++++ 3 files changed, 68 insertions(+), 8 deletions(-) create mode 100644 x-pack/functionbeat/provider/aws/transformer/transformer_test.go diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index c04c6d05b20..286d34b864c 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -114,10 +114,10 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d *Functionbeat* - Mark Functionbeat as GA. {pull}10564[10564] - - Correctly normalize Cloudformation resource name. {issue}10087[10087] - Functionbeat can now deploy a function for Kinesis. {10116}10116[10116] - Allow functionbeat to use the keystore. {issue}9009[9009] +- Correctly extract Kinesis Data field from the Kinesis Record. {pull}11141[11141] ==== Bugfixes diff --git a/x-pack/functionbeat/provider/aws/transformer/transformer.go b/x-pack/functionbeat/provider/aws/transformer/transformer.go index 2b78bddaac9..2d597fef06b 100644 --- a/x-pack/functionbeat/provider/aws/transformer/transformer.go +++ b/x-pack/functionbeat/provider/aws/transformer/transformer.go @@ -58,19 +58,24 @@ func APIGatewayProxyRequest(request events.APIGatewayProxyRequest) beat.Event { } // KinesisEvent takes a kinesis event and create multiples beat events. +// DOCS: https://docs.aws.amazon.com/lambda/latest/dg/with-kinesis.html func KinesisEvent(request events.KinesisEvent) []beat.Event { events := make([]beat.Event, len(request.Records)) for idx, record := range request.Records { events[idx] = beat.Event{ Timestamp: time.Now(), Fields: common.MapStr{ - "event_id": record.EventID, - "event_name": record.EventName, - "event_source": record.EventSource, - "event_source_arn": record.EventSourceArn, - "event_version": record.EventVersion, - "aws_region": record.AwsRegion, - // TODO: more meta data at KinesisRecord, need to check doc + "event_id": record.EventID, + "event_name": record.EventName, + "event_source": record.EventSource, + "event_source_arn": record.EventSourceArn, + "event_version": record.EventVersion, + "aws_region": record.AwsRegion, + "message": string(record.Kinesis.Data), + "kinesis_partition_key": record.Kinesis.PartitionKey, + "kinesis_schema_version": record.Kinesis.KinesisSchemaVersion, + "kinesis_sequence_number": record.Kinesis.SequenceNumber, + "kinesis_encryption_type": record.Kinesis.EncryptionType, }, } } diff --git a/x-pack/functionbeat/provider/aws/transformer/transformer_test.go b/x-pack/functionbeat/provider/aws/transformer/transformer_test.go new file mode 100644 index 00000000000..1d7aea5836e --- /dev/null +++ b/x-pack/functionbeat/provider/aws/transformer/transformer_test.go @@ -0,0 +1,55 @@ +// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one +// or more contributor license agreements. Licensed under the Elastic License; +// you may not use this file except in compliance with the Elastic License. + +package transformer + +import ( + "testing" + + "github.com/aws/aws-lambda-go/events" + "github.com/stretchr/testify/assert" + + "github.com/elastic/beats/libbeat/common" +) + +func TestKinesis(t *testing.T) { + request := events.KinesisEvent{ + Records: []events.KinesisEventRecord{ + events.KinesisEventRecord{ + AwsRegion: "us-east-1", + EventID: "1234", + EventName: "connect", + EventSource: "web", + EventVersion: "1.0", + EventSourceArn: "arn:aws:iam::00000000:role/functionbeat", + Kinesis: events.KinesisRecord{ + Data: []byte("hello world"), + PartitionKey: "abc123", + SequenceNumber: "12345", + KinesisSchemaVersion: "1.0", + EncryptionType: "test", + }, + }, + }, + } + + events := KinesisEvent(request) + assert.Equal(t, 1, len(events)) + + fields := common.MapStr{ + "event_id": "1234", + "event_name": "connect", + "event_source": "web", + "event_source_arn": "arn:aws:iam::00000000:role/functionbeat", + "event_version": "1.0", + "aws_region": "us-east-1", + "message": "hello world", + "kinesis_partition_key": "abc123", + "kinesis_schema_version": "1.0", + "kinesis_sequence_number": "12345", + "kinesis_encryption_type": "test", + } + + assert.Equal(t, fields, events[0].Fields) +} From 83dfb2f7b7b411cb266682572a6691c221f903b8 Mon Sep 17 00:00:00 2001 From: Steffen Siering Date: Fri, 8 Mar 2019 16:52:24 +0100 Subject: [PATCH 175/332] Beats event processing and default fields (#10801) This changes moves the generation of the event processing into it's distinct package, such that the actual publisher pipeline will not define any processors anymore. A new instance of a publisher pipeline must not add fields on it's own. This change converts the event processing pipline into the 'Supporter' pattern, which is already used for Index Management. As different beats ask for slightly different behavior in the event processing (e.g. normalize, default builtins and so on), the `processing.Support` can be used for customizations. --- filebeat/channel/factory.go | 16 +- heartbeat/monitors/task.go | 8 +- journalbeat/input/input.go | 10 +- libbeat/beat/pipeline.go | 50 +- libbeat/cmd/instance/beat.go | 14 + libbeat/cmd/instance/settings.go | 3 + .../report/elasticsearch/elasticsearch.go | 9 +- libbeat/publisher/pipeline/module.go | 20 +- libbeat/publisher/pipeline/pipeline.go | 86 +--- libbeat/publisher/pipeline/processor.go | 327 ------------- libbeat/publisher/pipeline/processor_test.go | 433 ------------------ libbeat/publisher/pipeline/stress/run.go | 11 +- libbeat/publisher/processing/default.go | 325 +++++++++++++ libbeat/publisher/processing/default_test.go | 364 +++++++++++++++ libbeat/publisher/processing/processing.go | 38 ++ libbeat/publisher/processing/processors.go | 200 ++++++++ metricbeat/mb/module/connector.go | 8 +- packetbeat/beater/packetbeat.go | 6 +- packetbeat/publish/publish.go | 6 +- winlogbeat/beater/eventlogger.go | 10 +- x-pack/functionbeat/beater/functionbeat.go | 8 +- 21 files changed, 1049 insertions(+), 903 deletions(-) delete mode 100644 libbeat/publisher/pipeline/processor.go delete mode 100644 libbeat/publisher/pipeline/processor_test.go create mode 100644 libbeat/publisher/processing/default.go create mode 100644 libbeat/publisher/processing/default_test.go create mode 100644 libbeat/publisher/processing/processing.go create mode 100644 libbeat/publisher/processing/processors.go diff --git a/filebeat/channel/factory.go b/filebeat/channel/factory.go index c938aafe8bd..c295d1a4056 100644 --- a/filebeat/channel/factory.go +++ b/filebeat/channel/factory.go @@ -125,13 +125,15 @@ func (f *OutletFactory) Create(p beat.Pipeline, cfg *common.Config, dynFields *c } client, err := p.ConnectWith(beat.ClientConfig{ - PublishMode: beat.GuaranteedSend, - EventMetadata: config.EventMetadata, - DynamicFields: dynFields, - Meta: meta, - Fields: fields, - Processor: processors, - Events: f.eventer, + PublishMode: beat.GuaranteedSend, + Processing: beat.ProcessingConfig{ + EventMetadata: config.EventMetadata, + DynamicFields: dynFields, + Meta: meta, + Fields: fields, + Processor: processors, + }, + Events: f.eventer, }) if err != nil { return nil, err diff --git a/heartbeat/monitors/task.go b/heartbeat/monitors/task.go index 3ee62eff235..43e4a8056fa 100644 --- a/heartbeat/monitors/task.go +++ b/heartbeat/monitors/task.go @@ -139,9 +139,11 @@ func (t *configuredJob) Start() { } t.client, err = t.monitor.pipelineConnector.ConnectWith(beat.ClientConfig{ - EventMetadata: t.config.EventMetadata, - Processor: t.processors, - Fields: fields, + Processing: beat.ProcessingConfig{ + EventMetadata: t.config.EventMetadata, + Processor: t.processors, + Fields: fields, + }, }) if err != nil { logp.Err("could not start monitor: %v", err) diff --git a/journalbeat/input/input.go b/journalbeat/input/input.go index 70d9bcb6874..7f1941271dc 100644 --- a/journalbeat/input/input.go +++ b/journalbeat/input/input.go @@ -125,10 +125,12 @@ func New( func (i *Input) Run() { var err error i.client, err = i.pipeline.ConnectWith(beat.ClientConfig{ - PublishMode: beat.GuaranteedSend, - EventMetadata: i.eventMeta, - Meta: nil, - Processor: i.processors, + PublishMode: beat.GuaranteedSend, + Processing: beat.ProcessingConfig{ + EventMetadata: i.eventMeta, + Meta: nil, + Processor: i.processors, + }, ACKCount: func(n int) { i.logger.Infof("journalbeat successfully published %d events", n) }, diff --git a/libbeat/beat/pipeline.go b/libbeat/beat/pipeline.go index 3db7baae6d2..5743e1cc92a 100644 --- a/libbeat/beat/pipeline.go +++ b/libbeat/beat/pipeline.go @@ -46,22 +46,7 @@ type Client interface { type ClientConfig struct { PublishMode PublishMode - // EventMetadata configures additional fields/tags to be added to published events. - EventMetadata common.EventMetadata - - // Meta provides additional meta data to be added to the Meta field in the beat.Event - // structure. - Meta common.MapStr - - // Fields provides additional 'global' fields to be added to every event - Fields common.MapStr - - // DynamicFields provides additional fields to be added to every event, supporting live updates - DynamicFields *common.MapStrPointer - - // Processors passes additional processor to the client, to be executed before - // the pipeline processors. - Processor ProcessorList + Processing ProcessingConfig // WaitClose sets the maximum duration to wait on ACK, if client still has events // active non-acknowledged events in the publisher pipeline. @@ -72,14 +57,6 @@ type ClientConfig struct { // Events configures callbacks for common client callbacks Events ClientEventer - // By default events are normalized within processor pipeline, - // if the normalization step should be skipped set this to true. - SkipNormalization bool - - // By default events are decorated with agent metadata. - // To skip adding that metadata set this to true. - SkipAgentMetadata bool - // ACK handler strategies. // Note: ack handlers are run in another go-routine owned by the publisher pipeline. // They should not block for to long, to not block the internal buffers for @@ -101,6 +78,31 @@ type ClientConfig struct { ACKLastEvent func(interface{}) } +// ProcessingConfig provides additional event processing settings a client can +// pass to the publisher pipeline on Connect. +type ProcessingConfig struct { + // EventMetadata configures additional fields/tags to be added to published events. + EventMetadata common.EventMetadata + + // Meta provides additional meta data to be added to the Meta field in the beat.Event + // structure. + Meta common.MapStr + + // Fields provides additional 'global' fields to be added to every event + Fields common.MapStr + + // DynamicFields provides additional fields to be added to every event, supporting live updates + DynamicFields *common.MapStrPointer + + // Processors passes additional processor to the client, to be executed before + // the pipeline processors. + Processor ProcessorList + + // Private contains additional information to be passed to the processing + // pipeline builder. + Private interface{} +} + // ClientEventer provides access to internal client events. type ClientEventer interface { Closing() // Closing indicates the client is being shutdown next diff --git a/libbeat/cmd/instance/beat.go b/libbeat/cmd/instance/beat.go index 3ab2507486e..520623a235d 100644 --- a/libbeat/cmd/instance/beat.go +++ b/libbeat/cmd/instance/beat.go @@ -62,6 +62,7 @@ import ( "github.com/elastic/beats/libbeat/paths" "github.com/elastic/beats/libbeat/plugin" "github.com/elastic/beats/libbeat/publisher/pipeline" + "github.com/elastic/beats/libbeat/publisher/processing" svc "github.com/elastic/beats/libbeat/service" "github.com/elastic/beats/libbeat/version" sysinfo "github.com/elastic/go-sysinfo" @@ -78,6 +79,8 @@ type Beat struct { keystore keystore.Keystore index idxmgmt.Supporter + + processing processing.Supporter } type beatConfig struct { @@ -310,6 +313,7 @@ func (b *Beat) createBeater(bt beat.Creator) (beat.Beater, error) { Logger: logp.L().Named("publisher"), }, b.Config.Pipeline, + b.processing, b.makeOutputFactory(b.Config.Output), ) @@ -593,6 +597,16 @@ func (b *Beat) configure(settings Settings) error { imFactory = idxmgmt.MakeDefaultSupport(settings.ILM) } b.index, err = imFactory(nil, b.Beat.Info, b.RawConfig) + if err != nil { + return err + } + + processingFactory := settings.Processing + if processingFactory == nil { + processingFactory = processing.MakeDefaultBeatSupport(true) + } + b.processing, err = processingFactory(b.Info, logp.L().Named("processors"), b.RawConfig) + return err } diff --git a/libbeat/cmd/instance/settings.go b/libbeat/cmd/instance/settings.go index 9b2bfd34a05..765206fac8a 100644 --- a/libbeat/cmd/instance/settings.go +++ b/libbeat/cmd/instance/settings.go @@ -24,6 +24,7 @@ import ( "github.com/elastic/beats/libbeat/idxmgmt" "github.com/elastic/beats/libbeat/idxmgmt/ilm" "github.com/elastic/beats/libbeat/monitoring/report" + "github.com/elastic/beats/libbeat/publisher/processing" ) // Settings contains basic settings for any beat to pass into GenRootCmd @@ -40,4 +41,6 @@ type Settings struct { // load custom index manager. The config object will be the Beats root configuration. IndexManagement idxmgmt.SupportFactory ILM ilm.SupportFactory + + Processing processing.SupportFactory } diff --git a/libbeat/monitoring/report/elasticsearch/elasticsearch.go b/libbeat/monitoring/report/elasticsearch/elasticsearch.go index c53d6263962..46bd2104f5c 100644 --- a/libbeat/monitoring/report/elasticsearch/elasticsearch.go +++ b/libbeat/monitoring/report/elasticsearch/elasticsearch.go @@ -37,6 +37,7 @@ import ( "github.com/elastic/beats/libbeat/outputs/outil" "github.com/elastic/beats/libbeat/outputs/transport" "github.com/elastic/beats/libbeat/publisher/pipeline" + "github.com/elastic/beats/libbeat/publisher/processing" "github.com/elastic/beats/libbeat/publisher/queue" "github.com/elastic/beats/libbeat/publisher/queue/memqueue" ) @@ -169,11 +170,16 @@ func makeReporter(beat beat.Info, settings report.Settings, cfg *common.Config) outClient := outputs.NewFailoverClient(clients) outClient = outputs.WithBackoff(outClient, config.Backoff.Init, config.Backoff.Max) + processing, err := processing.MakeDefaultSupport(true)(beat, log, common.NewConfig()) + if err != nil { + return nil, err + } + pipeline, err := pipeline.New( beat, pipeline.Monitors{ Metrics: monitoring, - Logger: logp.NewLogger(selector), + Logger: log, }, queueFactory, outputs.Group{ @@ -184,6 +190,7 @@ func makeReporter(beat beat.Info, settings report.Settings, cfg *common.Config) pipeline.Settings{ WaitClose: 0, WaitCloseMode: pipeline.NoWaitOnClose, + Processors: processing, }) if err != nil { return nil, err diff --git a/libbeat/publisher/pipeline/module.go b/libbeat/publisher/pipeline/module.go index 2c854c13676..8b5a66c63c6 100644 --- a/libbeat/publisher/pipeline/module.go +++ b/libbeat/publisher/pipeline/module.go @@ -26,7 +26,7 @@ import ( "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/libbeat/monitoring" "github.com/elastic/beats/libbeat/outputs" - "github.com/elastic/beats/libbeat/processors" + "github.com/elastic/beats/libbeat/publisher/processing" "github.com/elastic/beats/libbeat/publisher/queue" ) @@ -60,6 +60,7 @@ func Load( beatInfo beat.Info, monitors Monitors, config Config, + processors processing.Supporter, makeOutput func(outputs.Observer) (string, outputs.Group, error), ) (*Pipeline, error) { log := monitors.Logger @@ -71,28 +72,11 @@ func Load( log.Info("Dry run mode. All output types except the file based one are disabled.") } - processors, err := processors.New(config.Processors) - if err != nil { - return nil, fmt.Errorf("error initializing processors: %v", err) - } - name := beatInfo.Name settings := Settings{ WaitClose: 0, WaitCloseMode: NoWaitOnClose, - Disabled: publishDisabled, Processors: processors, - Annotations: Annotations{ - Event: config.EventMetadata, - Builtin: common.MapStr{ - "host": common.MapStr{ - "name": name, - }, - "ecs": common.MapStr{ - "version": "1.0.0-beta2", - }, - }, - }, } queueBuilder, err := createQueueBuilder(config.Queue, monitors) diff --git a/libbeat/publisher/pipeline/pipeline.go b/libbeat/publisher/pipeline/pipeline.go index fbe49510e0d..e8289e28ba5 100644 --- a/libbeat/publisher/pipeline/pipeline.go +++ b/libbeat/publisher/pipeline/pipeline.go @@ -31,8 +31,8 @@ import ( "github.com/elastic/beats/libbeat/common/reload" "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/libbeat/outputs" - "github.com/elastic/beats/libbeat/processors" "github.com/elastic/beats/libbeat/publisher" + "github.com/elastic/beats/libbeat/publisher/processing" "github.com/elastic/beats/libbeat/publisher/queue" ) @@ -73,21 +73,7 @@ type Pipeline struct { ackBuilder ackBuilder eventSema *sema - processors pipelineProcessors -} - -type pipelineProcessors struct { - // The pipeline its processor settings for - // constructing the clients complete processor - // pipeline on connect. - builtinMeta common.MapStr - fields common.MapStr - tags []string - - processors beat.Processor - - disabled bool // disabled is set if outputs have been disabled via CLI - alwaysCopy bool + processors processing.Supporter } // Settings is used to pass additional settings to a newly created pipeline instance. @@ -98,19 +84,7 @@ type Settings struct { WaitCloseMode WaitCloseMode - Annotations Annotations - Processors *processors.Processors - - Disabled bool -} - -// Annotations configures additional metadata to be adde to every single event -// being published. The meta data will be added before executing the configured -// processors, so all processors configured with the pipeline or client will see -// the same/complete event. -type Annotations struct { - Event common.EventMetadata - Builtin common.MapStr + Processors processing.Supporter } // WaitCloseMode enumerates the possible behaviors of WaitClose in a pipeline. @@ -172,17 +146,13 @@ func New( monitors.Logger = logp.NewLogger("publish") } - annotations := settings.Annotations - processors := settings.Processors - log := monitors.Logger - disabledOutput := settings.Disabled p := &Pipeline{ beatInfo: beat, monitors: monitors, observer: nilObserver, waitCloseMode: settings.WaitCloseMode, waitCloseTimeout: settings.WaitClose, - processors: makePipelineProcessors(log, annotations, processors, disabledOutput), + processors: settings.Processors, } p.ackBuilder = &pipelineEmptyACK{p} p.ackActive = atomic.MakeBool(true) @@ -347,7 +317,10 @@ func (p *Pipeline) ConnectWith(cfg beat.ClientConfig) (beat.Client, error) { } } - processors := newProcessorPipeline(p.beatInfo, p.monitors, p.processors, cfg) + processors, err := p.createEventProcessing(cfg.Processing, publishDisabled) + if err != nil { + return nil, err + } acker := p.makeACKer(processors != nil, &cfg, waitClose) producerCfg := queue.ProducerConfig{ // Cancel events from queue if acker is configured @@ -389,6 +362,13 @@ func (p *Pipeline) ConnectWith(cfg beat.ClientConfig) (beat.Client, error) { return client, nil } +func (p *Pipeline) createEventProcessing(cfg beat.ProcessingConfig, noPublish bool) (beat.Processor, error) { + if p.processors == nil { + return nil, nil + } + return p.processors.Create(cfg, noPublish) +} + func (e *pipelineEventer) OnACK(n int) { e.observer.queueACKed(n) @@ -414,42 +394,6 @@ func (e *waitCloser) wait() { e.events.Wait() } -func makePipelineProcessors( - log *logp.Logger, - annotations Annotations, - processors *processors.Processors, - disabled bool, -) pipelineProcessors { - p := pipelineProcessors{ - disabled: disabled, - } - - hasProcessors := processors != nil && len(processors.List) > 0 - if hasProcessors { - tmp := newProgram("global", log) - for _, p := range processors.List { - tmp.add(p) - } - p.processors = tmp - } - - if meta := annotations.Builtin; meta != nil { - p.builtinMeta = meta - } - - if em := annotations.Event; len(em.Fields) > 0 { - fields := common.MapStr{} - common.MergeFields(fields, em.Fields.Clone(), em.FieldsUnderRoot) - p.fields = fields - } - - if t := annotations.Event.Tags; len(t) > 0 { - p.tags = t - } - - return p -} - // OutputReloader returns a reloadable object for the output section of this pipeline func (p *Pipeline) OutputReloader() OutputReloader { return p.output diff --git a/libbeat/publisher/pipeline/processor.go b/libbeat/publisher/pipeline/processor.go deleted file mode 100644 index 81834f7bdff..00000000000 --- a/libbeat/publisher/pipeline/processor.go +++ /dev/null @@ -1,327 +0,0 @@ -// Licensed to Elasticsearch B.V. under one or more contributor -// license agreements. See the NOTICE file distributed with -// this work for additional information regarding copyright -// ownership. Elasticsearch B.V. licenses this file to you under -// the Apache License, Version 2.0 (the "License"); you may -// not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -package pipeline - -import ( - "fmt" - "strings" - "sync" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/logp" - "github.com/elastic/beats/libbeat/outputs/codec/json" - "github.com/elastic/beats/libbeat/processors" - "github.com/elastic/beats/libbeat/processors/actions" -) - -type program struct { - log *logp.Logger - title string - list []beat.Processor -} - -type processorFn struct { - name string - fn func(event *beat.Event) (*beat.Event, error) -} - -// newProcessorPipeline prepares the processor pipeline, merging -// post processing, event annotations and actual configured processors. -// The pipeline generated ensure the client and pipeline processors -// will see the complete events with all meta data applied. -// -// Pipeline (C=client, P=pipeline) -// -// 1. (P) generalize/normalize event -// 2. (C) add Meta from client Config to event.Meta -// 3. (C) add Fields from client config to event.Fields -// 4. (P) add pipeline fields + tags -// 5. (C) add client fields + tags -// 6. (C) client processors list -// 7. (P) add beats metadata -// 8. (P) pipeline processors list -// 9. (P) (if publish/debug enabled) log event -// 10. (P) (if output disabled) dropEvent -func newProcessorPipeline( - info beat.Info, - monitors Monitors, - global pipelineProcessors, - config beat.ClientConfig, -) beat.Processor { - var ( - // pipeline processors - processors = &program{ - title: "processPipeline", - log: monitors.Logger, - } - - // client fields and metadata - clientMeta = config.Meta - localProcessors = makeClientProcessors(monitors, config) - ) - - needsCopy := global.alwaysCopy || localProcessors != nil || global.processors != nil - - if !config.SkipNormalization { - // setup 1: generalize/normalize output (P) - processors.add(generalizeProcessor) - } - - // setup 2: add Meta from client config (C) - if m := clientMeta; len(m) > 0 { - processors.add(clientEventMeta(m, needsCopy)) - } - - // setup 4, 5: pipeline tags + client tags - var tags []string - tags = append(tags, global.tags...) - tags = append(tags, config.EventMetadata.Tags...) - if len(tags) > 0 { - processors.add(actions.NewAddTags("tags", tags)) - } - - // setup 3, 4, 5: client config fields + pipeline fields + client fields + dyn metadata - fields := config.Fields.Clone() - fields.DeepUpdate(global.fields.Clone()) - if em := config.EventMetadata; len(em.Fields) > 0 { - common.MergeFields(fields, em.Fields.Clone(), em.FieldsUnderRoot) - } - - if len(fields) > 0 { - // Enforce a copy of fields if dynamic fields are configured or agent - // metadata will be merged into the fields. - // With dynamic fields potentially changing at any time, we need to copy, - // so we do not change shared structures be accident. - fieldsNeedsCopy := needsCopy || config.DynamicFields != nil || fields["agent"] != nil - processors.add(actions.NewAddFields(fields, fieldsNeedsCopy)) - } - - if config.DynamicFields != nil { - checkCopy := func(m common.MapStr) bool { - return needsCopy || hasKey(m, "agent") - } - processors.add(makeAddDynMetaProcessor("dynamicFields", config.DynamicFields, checkCopy)) - } - - // setup 5: client processor list - processors.add(localProcessors) - - // setup 6: add beats and host metadata - if meta := global.builtinMeta; len(meta) > 0 { - processors.add(actions.NewAddFields(meta, needsCopy)) - } - - // setup 7: add agent metadata - if !config.SkipAgentMetadata { - needsCopy := global.alwaysCopy || global.processors != nil - processors.add(actions.NewAddFields(createAgentFields(info), needsCopy)) - } - - // setup 8: pipeline processors list - processors.add(global.processors) - - // setup 9: debug print final event (P) - if logp.IsDebug("publish") { - processors.add(debugPrintProcessor(info, monitors)) - } - - // setup 10: drop all events if outputs are disabled (P) - if global.disabled { - processors.add(dropDisabledProcessor) - } - - return processors -} - -func newProgram(title string, log *logp.Logger) *program { - return &program{ - title: title, - log: log, - } -} - -func (p *program) add(processor processors.Processor) { - if processor != nil { - p.list = append(p.list, processor) - } -} - -func (p *program) String() string { - var s []string - for _, p := range p.list { - s = append(s, p.String()) - } - - str := strings.Join(s, ", ") - if p.title == "" { - return str - } - return fmt.Sprintf("%v{%v}", p.title, str) -} - -func (p *program) Run(event *beat.Event) (*beat.Event, error) { - if p == nil || len(p.list) == 0 { - return event, nil - } - - for _, sub := range p.list { - var err error - - event, err = sub.Run(event) - if err != nil { - // XXX: We don't drop the event, but continue filtering here iff the most - // recent processor did return an event. - // We want processors having this kind of implicit behavior - // on errors? - - p.log.Debugf("Fail to apply processor %s: %s", p, err) - } - - if event == nil { - return nil, err - } - } - - return event, nil -} - -func newProcessor(name string, fn func(*beat.Event) (*beat.Event, error)) *processorFn { - return &processorFn{name: name, fn: fn} -} - -func newAnnotateProcessor(name string, fn func(*beat.Event)) *processorFn { - return newProcessor(name, func(event *beat.Event) (*beat.Event, error) { - fn(event) - return event, nil - }) -} - -func (p *processorFn) String() string { return p.name } -func (p *processorFn) Run(e *beat.Event) (*beat.Event, error) { return p.fn(e) } - -var generalizeProcessor = newProcessor("generalizeEvent", func(event *beat.Event) (*beat.Event, error) { - - // Filter out empty events. Empty events are still reported by ACK callbacks. - if len(event.Fields) == 0 { - return nil, nil - } - - fields := common.ConvertToGenericEvent(event.Fields) - if fields == nil { - logp.Err("fail to convert to generic event") - return nil, nil - } - - event.Fields = fields - return event, nil -}) - -var dropDisabledProcessor = newProcessor("dropDisabled", func(event *beat.Event) (*beat.Event, error) { - return nil, nil -}) - -func clientEventMeta(meta common.MapStr, needsCopy bool) *processorFn { - fn := func(event *beat.Event) { addMeta(event, meta) } - if needsCopy { - fn = func(event *beat.Event) { addMeta(event, meta.Clone()) } - } - return newAnnotateProcessor("@metadata", fn) -} - -func addMeta(event *beat.Event, meta common.MapStr) { - if event.Meta == nil { - event.Meta = meta - } else { - event.Meta.Clone() - event.Meta.DeepUpdate(meta) - } -} - -func makeAddDynMetaProcessor( - name string, - meta *common.MapStrPointer, - checkCopy func(m common.MapStr) bool, -) *processorFn { - return newAnnotateProcessor(name, func(event *beat.Event) { - dynFields := meta.Get() - if checkCopy(dynFields) { - dynFields = dynFields.Clone() - } - - event.Fields.DeepUpdate(dynFields) - }) -} - -func createAgentFields(info beat.Info) common.MapStr { - metadata := common.MapStr{ - "type": info.Beat, - "ephemeral_id": info.EphemeralID.String(), - "hostname": info.Hostname, - "id": info.ID.String(), - "version": info.Version, - } - if info.Name != info.Hostname { - metadata.Put("name", info.Name) - } - - return common.MapStr{"agent": metadata} -} - -func debugPrintProcessor(info beat.Info, monitors Monitors) *processorFn { - // ensure only one go-routine is using the encoder (in case - // beat.Client is shared between multiple go-routines by accident) - var mux sync.Mutex - - encoder := json.New(info.Version, json.Config{ - Pretty: true, - EscapeHTML: false, - }) - log := monitors.Logger - return newProcessor("debugPrint", func(event *beat.Event) (*beat.Event, error) { - mux.Lock() - defer mux.Unlock() - - b, err := encoder.Encode(info.Beat, event) - if err != nil { - return event, nil - } - - log.Debugf("Publish event: %s", b) - return event, nil - }) -} - -func makeClientProcessors( - monitors Monitors, - config beat.ClientConfig, -) processors.Processor { - procs := config.Processor - if procs == nil || len(procs.All()) == 0 { - return nil - } - - p := newProgram("client", monitors.Logger) - p.list = procs.All() - return p -} - -func hasKey(m common.MapStr, key string) bool { - _, exists := m[key] - return exists -} diff --git a/libbeat/publisher/pipeline/processor_test.go b/libbeat/publisher/pipeline/processor_test.go deleted file mode 100644 index 07b643d0c81..00000000000 --- a/libbeat/publisher/pipeline/processor_test.go +++ /dev/null @@ -1,433 +0,0 @@ -// Licensed to Elasticsearch B.V. under one or more contributor -// license agreements. See the NOTICE file distributed with -// this work for additional information regarding copyright -// ownership. Elasticsearch B.V. licenses this file to you under -// the Apache License, Version 2.0 (the "License"); you may -// not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -package pipeline - -import ( - "sync" - "testing" - "time" - - "github.com/gofrs/uuid" - "github.com/stretchr/testify/assert" - - "github.com/elastic/beats/libbeat/beat" - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/logp" -) - -func TestProcessors(t *testing.T) { - defaultInfo := beat.Info{} - - type local struct { - config beat.ClientConfig - events []common.MapStr - expected []common.MapStr - includeAgentMetadata bool - } - - tests := []struct { - name string - global pipelineProcessors - local []local - info *beat.Info - }{ - { - name: "user global fields and tags", - global: pipelineProcessors{ - fields: common.MapStr{"global": 1}, - tags: []string{"tag"}, - }, - local: []local{ - { - config: beat.ClientConfig{}, - events: []common.MapStr{{"value": "abc", "user": nil}}, - expected: []common.MapStr{ - {"value": "abc", "global": 1, "tags": []string{"tag"}}, - }, - }, - }, - }, - { - name: "no normalization", - global: pipelineProcessors{ - fields: common.MapStr{"global": 1}, - tags: []string{"tag"}, - }, - local: []local{ - { - config: beat.ClientConfig{SkipNormalization: true}, - events: []common.MapStr{{"value": "abc", "user": nil}}, - expected: []common.MapStr{ - {"value": "abc", "user": nil, "global": 1, "tags": []string{"tag"}}, - }, - }, - }, - }, - { - name: "add agent metadata", - global: pipelineProcessors{ - fields: common.MapStr{"global": 1, "agent": common.MapStr{"foo": "bar"}}, - tags: []string{"tag"}, - }, - info: &beat.Info{ - Beat: "test", - EphemeralID: uuid.Must(uuid.FromString("123e4567-e89b-12d3-a456-426655440000")), - Hostname: "test.host.name", - ID: uuid.Must(uuid.FromString("123e4567-e89b-12d3-a456-426655440001")), - Name: "test.host.name", - Version: "0.1", - }, - local: []local{ - { - config: beat.ClientConfig{}, - events: []common.MapStr{{"value": "abc", "user": nil}}, - expected: []common.MapStr{ - { - "agent": common.MapStr{ - "ephemeral_id": "123e4567-e89b-12d3-a456-426655440000", - "hostname": "test.host.name", - "id": "123e4567-e89b-12d3-a456-426655440001", - "type": "test", - "version": "0.1", - "foo": "bar", - }, - "value": "abc", "global": 1, "tags": []string{"tag"}, - }, - }, - includeAgentMetadata: true, - }, - }, - }, - { - name: "add agent metadata with custom host.name", - global: pipelineProcessors{ - fields: common.MapStr{"global": 1}, - tags: []string{"tag"}, - }, - info: &beat.Info{ - Beat: "test", - EphemeralID: uuid.Must(uuid.FromString("123e4567-e89b-12d3-a456-426655440000")), - Hostname: "test.host.name", - ID: uuid.Must(uuid.FromString("123e4567-e89b-12d3-a456-426655440001")), - Name: "other.test.host.name", - Version: "0.1", - }, - local: []local{ - { - config: beat.ClientConfig{}, - events: []common.MapStr{{"value": "abc", "user": nil}}, - expected: []common.MapStr{ - { - "agent": common.MapStr{ - "ephemeral_id": "123e4567-e89b-12d3-a456-426655440000", - "hostname": "test.host.name", - "id": "123e4567-e89b-12d3-a456-426655440001", - "name": "other.test.host.name", - "type": "test", - "version": "0.1", - }, - "value": "abc", "global": 1, "tags": []string{"tag"}, - }, - }, - includeAgentMetadata: true, - }, - }, - }, - { - name: "beat local fields", - local: []local{ - { - config: beat.ClientConfig{ - Fields: common.MapStr{"local": 1}, - }, - events: []common.MapStr{{"value": "abc"}}, - expected: []common.MapStr{{"value": "abc", "local": 1}}, - }, - }, - }, - { - name: "beat local and user global fields", - global: pipelineProcessors{ - fields: common.MapStr{"global": 1}, - tags: []string{"tag"}, - }, - local: []local{ - { - config: beat.ClientConfig{ - Fields: common.MapStr{"local": 1}, - }, - events: []common.MapStr{{"value": "abc"}}, - expected: []common.MapStr{ - {"value": "abc", "local": 1, "global": 1, "tags": []string{"tag"}}, - }, - }, - }, - }, - { - name: "user global fields overwrite beat local fields", - global: pipelineProcessors{ - fields: common.MapStr{"global": 1, "shared": "global"}, - tags: []string{"tag"}, - }, - local: []local{ - { - config: beat.ClientConfig{ - Fields: common.MapStr{"local": 1, "shared": "local"}, - }, - events: []common.MapStr{{"value": "abc"}}, - expected: []common.MapStr{ - {"value": "abc", "local": 1, "global": 1, "shared": "global", "tags": []string{"tag"}}, - }, - }, - }, - }, - { - name: "beat local fields isolated", - local: []local{ - { - config: beat.ClientConfig{ - Fields: common.MapStr{"local": 1}, - }, - events: []common.MapStr{{"value": "abc"}}, - expected: []common.MapStr{{"value": "abc", "local": 1}}, - }, - { - config: beat.ClientConfig{ - Fields: common.MapStr{"local": 2}, - }, - events: []common.MapStr{{"value": "def"}}, - expected: []common.MapStr{{"value": "def", "local": 2}}, - }, - }, - }, - - { - name: "beat local fields + user global fields isolated", - global: pipelineProcessors{ - fields: common.MapStr{"global": 0}, - }, - local: []local{ - { - config: beat.ClientConfig{ - Fields: common.MapStr{"local": 1}, - }, - events: []common.MapStr{{"value": "abc"}}, - expected: []common.MapStr{{"value": "abc", "global": 0, "local": 1}}, - }, - { - config: beat.ClientConfig{ - Fields: common.MapStr{"local": 2}, - }, - events: []common.MapStr{{"value": "def"}}, - expected: []common.MapStr{{"value": "def", "global": 0, "local": 2}}, - }, - }, - }, - { - name: "user local fields and tags", - local: []local{ - { - config: beat.ClientConfig{ - EventMetadata: common.EventMetadata{ - Fields: common.MapStr{"local": 1}, - Tags: []string{"tag"}, - }, - }, - events: []common.MapStr{{"value": "abc"}}, - expected: []common.MapStr{ - {"value": "abc", "fields": common.MapStr{"local": 1}, "tags": []string{"tag"}}, - }, - }, - }, - }, - { - name: "user local fields (under root) and tags", - local: []local{ - { - config: beat.ClientConfig{ - EventMetadata: common.EventMetadata{ - Fields: common.MapStr{"local": 1}, - FieldsUnderRoot: true, - Tags: []string{"tag"}, - }, - }, - events: []common.MapStr{{"value": "abc"}}, - expected: []common.MapStr{ - {"value": "abc", "local": 1, "tags": []string{"tag"}}, - }, - }, - }, - }, - { - name: "user local fields overwrite user global fields", - global: pipelineProcessors{ - fields: common.MapStr{"global": 0, "shared": "global"}, - tags: []string{"global"}, - }, - local: []local{ - { - config: beat.ClientConfig{ - EventMetadata: common.EventMetadata{ - Fields: common.MapStr{"local": 1, "shared": "local"}, - FieldsUnderRoot: true, - Tags: []string{"local"}, - }, - }, - events: []common.MapStr{{"value": "abc"}}, - expected: []common.MapStr{ - { - "value": "abc", - "global": 0, "local": 1, "shared": "local", - "tags": []string{"global", "local"}, - }, - }, - }, - }, - }, - { - name: "user local fields isolated", - local: []local{ - { - config: beat.ClientConfig{ - EventMetadata: common.EventMetadata{ - Fields: common.MapStr{"local": 1}, - }, - }, - events: []common.MapStr{{"value": "abc"}}, - expected: []common.MapStr{{"value": "abc", "fields": common.MapStr{"local": 1}}}, - }, - { - config: beat.ClientConfig{ - EventMetadata: common.EventMetadata{ - Fields: common.MapStr{"local": 2}, - }, - }, - events: []common.MapStr{{"value": "def"}}, - expected: []common.MapStr{{"value": "def", "fields": common.MapStr{"local": 2}}}, - }, - }, - }, - { - name: "user local + global fields isolated", - global: pipelineProcessors{ - fields: common.MapStr{"fields": common.MapStr{"global": 0}}, - }, - local: []local{ - { - config: beat.ClientConfig{ - EventMetadata: common.EventMetadata{ - Fields: common.MapStr{"local": 1}, - }, - }, - events: []common.MapStr{{"value": "abc"}}, - expected: []common.MapStr{{"value": "abc", "fields": common.MapStr{"global": 0, "local": 1}}}, - }, - { - config: beat.ClientConfig{ - EventMetadata: common.EventMetadata{ - Fields: common.MapStr{"local": 2}, - }, - }, - events: []common.MapStr{{"value": "def"}}, - expected: []common.MapStr{{"value": "def", "fields": common.MapStr{"global": 0, "local": 2}}}, - }, - }, - }, - { - name: "user local + global fields isolated (fields with root)", - global: pipelineProcessors{ - fields: common.MapStr{"global": 0}, - }, - local: []local{ - { - config: beat.ClientConfig{ - EventMetadata: common.EventMetadata{ - Fields: common.MapStr{"local": 1}, - FieldsUnderRoot: true, - }, - }, - events: []common.MapStr{{"value": "abc"}}, - expected: []common.MapStr{{"value": "abc", "global": 0, "local": 1}}, - }, - { - config: beat.ClientConfig{ - EventMetadata: common.EventMetadata{ - Fields: common.MapStr{"local": 2}, - FieldsUnderRoot: true, - }, - }, - events: []common.MapStr{{"value": "def"}}, - expected: []common.MapStr{{"value": "def", "global": 0, "local": 2}}, - }, - }, - }, - } - - for _, test := range tests { - test := test - t.Run(test.name, func(t *testing.T) { - monitors := Monitors{ - Logger: logp.NewLogger("test processors"), - } - - // create processor pipelines - programs := make([]beat.Processor, len(test.local)) - info := defaultInfo - if test.info != nil { - info = *test.info - } - for i, local := range test.local { - local.config.SkipAgentMetadata = !local.includeAgentMetadata - programs[i] = newProcessorPipeline(info, monitors, test.global, local.config) - } - - // run processor pipelines in parallel - var ( - wg sync.WaitGroup - mux sync.Mutex - results = make([][]common.MapStr, len(programs)) - ) - for id, local := range test.local { - wg.Add(1) - id, program, local := id, programs[id], local - go func() { - defer wg.Done() - - actual := make([]common.MapStr, len(local.events)) - for i, event := range local.events { - out, _ := program.Run(&beat.Event{ - Timestamp: time.Now(), - Fields: event, - }) - actual[i] = out.Fields - } - - mux.Lock() - defer mux.Unlock() - results[id] = actual - }() - } - wg.Wait() - - // validate - for i, local := range test.local { - assert.Equal(t, local.expected, results[i]) - } - }) - } -} diff --git a/libbeat/publisher/pipeline/stress/run.go b/libbeat/publisher/pipeline/stress/run.go index 3ebce0351f1..902d303e94f 100644 --- a/libbeat/publisher/pipeline/stress/run.go +++ b/libbeat/publisher/pipeline/stress/run.go @@ -27,6 +27,7 @@ import ( "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/libbeat/outputs" "github.com/elastic/beats/libbeat/publisher/pipeline" + "github.com/elastic/beats/libbeat/publisher/processing" ) type config struct { @@ -58,13 +59,21 @@ func RunTests( return fmt.Errorf("unpacking config failed: %v", err) } + log := logp.L() + + processing, err := processing.MakeDefaultSupport(false)(info, log, cfg) + if err != nil { + return err + } + pipeline, err := pipeline.Load(info, pipeline.Monitors{ Metrics: nil, Telemetry: nil, - Logger: logp.L(), + Logger: log, }, config.Pipeline, + processing, func(stat outputs.Observer) (string, outputs.Group, error) { cfg := config.Output out, err := outputs.Load(nil, info, stat, cfg.Name(), cfg.Config()) diff --git a/libbeat/publisher/processing/default.go b/libbeat/publisher/processing/default.go new file mode 100644 index 00000000000..547593be95d --- /dev/null +++ b/libbeat/publisher/processing/default.go @@ -0,0 +1,325 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package processing + +import ( + "fmt" + + "github.com/elastic/ecs/code/go/ecs" + + "github.com/elastic/beats/libbeat/beat" + "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/logp" + "github.com/elastic/beats/libbeat/processors" + "github.com/elastic/beats/libbeat/processors/actions" +) + +// builder is used to create the event processing pipeline in Beats. The +// builder orders and merges global and local (per client) event annotation +// settings, with the configured event processors into one common event +// processor for use with the publisher pipeline. +// Also See: (*builder).Create +type builder struct { + info beat.Info + log *logp.Logger + + skipNormalize bool + + // global pipeline fields and tags configurations + modifiers []modifier + builtinMeta common.MapStr + fields common.MapStr + tags []string + + // global pipeline processors + processors *group + + drop bool // disabled is set if outputs have been disabled via CLI + alwaysCopy bool +} + +type modifier interface { + // BuiltinFields defines global fields to be added to every event. + BuiltinFields(beat.Info) common.MapStr + + // ClientFields defines connection local fields to be added to each event + // of a pipeline client. + ClientFields(beat.Info, beat.ProcessingConfig) common.MapStr +} + +type builtinModifier func(beat.Info) common.MapStr + +// MakeDefaultBeatSupport creates a new SupportFactory based on NewDefaultSupport. +// MakeDefaultBeatSupport automatically adds the `ecs.version`, `host.name` and `agent.X` fields +// to each event. +func MakeDefaultBeatSupport(normalize bool) SupportFactory { + return MakeDefaultSupport(normalize, WithECS, WithHost, WithBeatMeta("agent")) +} + +// MakeDefaultObserverSupport creates a new SupportFactory based on NewDefaultSupport. +// MakeDefaultObserverSupport automatically adds the `ecs.version` and `observer.X` fields +// to each event. +func MakeDefaultObserverSupport(normalize bool) SupportFactory { + return MakeDefaultSupport(normalize, WithECS, WithBeatMeta("observer")) +} + +// MakeDefaultSupport creates a new SupportFactory for use with the publisher pipeline. +// If normalize is set, events will be normalized first before being presented +// to the actual processors. +// The Supporter will apply the global `fields`, `fields_under_root`, `tags` +// and `processor` settings to the event processing pipeline to be generated. +// Use WithFields, WithBeatMeta, and other to declare the builtin fields to be added +// to each event. Builtin fields can be modified using global `processors`, and `fields` only. +func MakeDefaultSupport( + normalize bool, + modifiers ...modifier, +) SupportFactory { + return func(info beat.Info, log *logp.Logger, beatCfg *common.Config) (Supporter, error) { + cfg := struct { + common.EventMetadata `config:",inline"` // Fields and tags to add to each event. + Processors processors.PluginConfig `config:"processors"` + }{} + if err := beatCfg.Unpack(&cfg); err != nil { + return nil, err + } + + processors, err := processors.New(cfg.Processors) + if err != nil { + return nil, fmt.Errorf("error initializing processors: %v", err) + } + + return newBuilder(info, log, processors, cfg.EventMetadata, modifiers, !normalize), nil + } +} + +// WithFields creates a modifier with the given default builtin fields. +func WithFields(fields common.MapStr) modifier { + return builtinModifier(func(_ beat.Info) common.MapStr { + return fields + }) +} + +// WithECS modifier adds `ecs.version` builtin fields to a processing pipeline. +var WithECS modifier = WithFields(common.MapStr{ + "ecs": common.MapStr{ + "version": ecs.Version, + }, +}) + +// WithHost modifier adds `host.name` builtin fields to a processing pipeline +var WithHost modifier = builtinModifier(func(info beat.Info) common.MapStr { + return common.MapStr{ + "host": common.MapStr{ + "name": info.Name, + }, + } +}) + +// WithBeatMeta adds beat meta information as builtin fields to a processing pipeline. +// The `key` parameter defines the field to be used. +func WithBeatMeta(key string) modifier { + return builtinModifier(func(info beat.Info) common.MapStr { + metadata := common.MapStr{ + "type": info.Beat, + "ephemeral_id": info.EphemeralID.String(), + "hostname": info.Hostname, + "id": info.ID.String(), + "version": info.Version, + } + if info.Name != info.Hostname { + metadata.Put("name", info.Name) + } + return common.MapStr{key: metadata} + }) +} + +func newBuilder( + info beat.Info, + log *logp.Logger, + processors *processors.Processors, + eventMeta common.EventMetadata, + modifiers []modifier, + skipNormalize bool, +) *builder { + b := &builder{ + skipNormalize: skipNormalize, + modifiers: modifiers, + log: log, + } + + hasProcessors := processors != nil && len(processors.List) > 0 + if hasProcessors { + tmp := newGroup("global", log) + for _, p := range processors.List { + tmp.add(p) + } + b.processors = tmp + } + + builtin := common.MapStr{} + for _, mod := range modifiers { + m := mod.BuiltinFields(info) + if len(m) > 0 { + builtin.DeepUpdate(m.Clone()) + } + } + if len(builtin) > 0 { + b.builtinMeta = builtin + } + + if fields := eventMeta.Fields; len(fields) > 0 { + b.fields = common.MapStr{} + common.MergeFields(b.fields, fields.Clone(), eventMeta.FieldsUnderRoot) + } + + if t := eventMeta.Tags; len(t) > 0 { + b.tags = t + } + + return b +} + +// Create combines the builder configuration with the client settings +// in order to build the event processing pipeline. +// +// Processing order (C=client, P=pipeline) +// 1. (P) generalize/normalize event +// 2. (C) add Meta from client Config to event.Meta +// 3. (C) add Fields from client config to event.Fields +// 4. (P) add pipeline fields + tags +// 5. (C) add client fields + tags +// 6. (C) client processors list +// 7. (P) add builtins +// 8. (P) pipeline processors list +// 9. (P) (if publish/debug enabled) log event +// 10. (P) (if output disabled) dropEvent +func (b *builder) Create(cfg beat.ProcessingConfig, drop bool) (beat.Processor, error) { + var ( + // pipeline processors + processors = newGroup("processPipeline", b.log) + + // client fields and metadata + clientMeta = cfg.Meta + localProcessors = makeClientProcessors(b.log, cfg) + ) + + needsCopy := b.alwaysCopy || localProcessors != nil || b.processors != nil + + builtin := b.builtinMeta + var clientFields common.MapStr + for _, mod := range b.modifiers { + m := mod.ClientFields(b.info, cfg) + if len(m) > 0 { + if clientFields == nil { + clientFields = common.MapStr{} + } + clientFields.DeepUpdate(m.Clone()) + } + } + if len(clientFields) > 0 { + tmp := builtin.Clone() + tmp.DeepUpdate(clientFields) + builtin = tmp + } + + if !b.skipNormalize { + // setup 1: generalize/normalize output (P) + processors.add(generalizeProcessor) + } + + // setup 2: add Meta from client config (C) + if m := clientMeta; len(m) > 0 { + processors.add(clientEventMeta(m, needsCopy)) + } + + // setup 4, 5: pipeline tags + client tags + var tags []string + tags = append(tags, b.tags...) + tags = append(tags, cfg.EventMetadata.Tags...) + if len(tags) > 0 { + processors.add(actions.NewAddTags("tags", tags)) + } + + // setup 3, 4, 5: client config fields + pipeline fields + client fields + dyn metadata + fields := cfg.Fields.Clone() + fields.DeepUpdate(b.fields.Clone()) + if em := cfg.EventMetadata; len(em.Fields) > 0 { + common.MergeFields(fields, em.Fields.Clone(), em.FieldsUnderRoot) + } + + if len(fields) > 0 { + // Enforce a copy of fields if dynamic fields are configured or agent + // metadata will be merged into the fields. + // With dynamic fields potentially changing at any time, we need to copy, + // so we do not change shared structures be accident. + fieldsNeedsCopy := needsCopy || cfg.DynamicFields != nil || hasKeyAnyOf(fields, builtin) + processors.add(actions.NewAddFields(fields, fieldsNeedsCopy)) + } + + if cfg.DynamicFields != nil { + checkCopy := func(m common.MapStr) bool { + return needsCopy || hasKeyAnyOf(m, builtin) + } + processors.add(makeAddDynMetaProcessor("dynamicFields", cfg.DynamicFields, checkCopy)) + } + + // setup 5: client processor list + processors.add(localProcessors) + + // setup 6: add beats and host metadata + if meta := builtin; len(meta) > 0 { + processors.add(actions.NewAddFields(meta, needsCopy)) + } + + // setup 8: pipeline processors list + processors.add(b.processors) + + // setup 9: debug print final event (P) + if b.log.IsDebug() { + processors.add(debugPrintProcessor(b.info, b.log)) + } + + // setup 10: drop all events if outputs are disabled (P) + if drop { + processors.add(dropDisabledProcessor) + } + + return processors, nil +} + +func makeClientProcessors( + log *logp.Logger, + cfg beat.ProcessingConfig, +) processors.Processor { + procs := cfg.Processor + if procs == nil || len(procs.All()) == 0 { + return nil + } + + p := newGroup("client", log) + p.list = procs.All() + return p +} + +func (b builtinModifier) BuiltinFields(info beat.Info) common.MapStr { + return b(info) +} + +func (b builtinModifier) ClientFields(_ beat.Info, _ beat.ProcessingConfig) common.MapStr { + return nil +} diff --git a/libbeat/publisher/processing/default_test.go b/libbeat/publisher/processing/default_test.go new file mode 100644 index 00000000000..5f49b2b3829 --- /dev/null +++ b/libbeat/publisher/processing/default_test.go @@ -0,0 +1,364 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package processing + +import ( + "encoding/json" + "testing" + "time" + + "github.com/gofrs/uuid" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/elastic/beats/libbeat/beat" + "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/logp" + "github.com/elastic/beats/libbeat/processors/actions" + "github.com/elastic/ecs/code/go/ecs" +) + +func TestProcessorsConfigs(t *testing.T) { + defaultInfo := beat.Info{ + Beat: "test", + EphemeralID: uuid.Must(uuid.FromString("123e4567-e89b-12d3-a456-426655440000")), + Hostname: "test.host.name", + ID: uuid.Must(uuid.FromString("123e4567-e89b-12d3-a456-426655440001")), + Name: "test.host.name", + Version: "0.1", + } + + ecsFields := common.MapStr{"version": ecs.Version} + + cases := map[string]struct { + factory SupportFactory + global string + local beat.ProcessingConfig + drop bool + event string + want common.MapStr + wantMeta common.MapStr + infoMod func(beat.Info) beat.Info + }{ + "user global fields and tags": { + global: "{fields: {global: 1}, fields_under_root: true, tags: [tag]}", + event: `{"value": "abc"}`, + want: common.MapStr{ + "value": "abc", + "global": uint64(1), + "tags": []string{"tag"}, + }, + }, + "beat local fields": { + global: "", + local: beat.ProcessingConfig{ + Fields: common.MapStr{"local": 1}, + }, + event: `{"value": "abc"}`, + want: common.MapStr{ + "value": "abc", + "local": 1, + }, + }, + "beat local and user global fields": { + global: "{fields: {global: 1}, fields_under_root: true, tags: [tag]}", + local: beat.ProcessingConfig{ + Fields: common.MapStr{"local": 1}, + }, + event: `{"value": "abc"}`, + want: common.MapStr{ + "value": "abc", + "global": uint64(1), + "local": 1, + "tags": []string{"tag"}, + }, + }, + "user global fields overwrite beat local fields": { + global: "{fields: {global: a, shared: global}, fields_under_root: true}", + local: beat.ProcessingConfig{ + Fields: common.MapStr{"local": "b", "shared": "local"}, + }, + event: `{"value": "abc"}`, + want: common.MapStr{ + "value": "abc", + "local": "b", + "global": "a", + "shared": "global", + }, + }, + "user local fields and tags": { + local: beat.ProcessingConfig{ + EventMetadata: common.EventMetadata{ + Fields: common.MapStr{"local": "a"}, + Tags: []string{"tag"}, + }, + }, + event: `{"value": "abc"}`, + want: common.MapStr{ + "value": "abc", + "fields": common.MapStr{ + "local": "a", + }, + "tags": []string{"tag"}, + }, + }, + "user local fields (under root) and tags": { + local: beat.ProcessingConfig{ + EventMetadata: common.EventMetadata{ + Fields: common.MapStr{"local": "a"}, + FieldsUnderRoot: true, + Tags: []string{"tag"}, + }, + }, + event: `{"value": "abc"}`, + want: common.MapStr{ + "value": "abc", + "local": "a", + "tags": []string{"tag"}, + }, + }, + "user local fields overwrite user global fields": { + global: `{fields: {global: a, shared: global}, fields_under_root: true, tags: [global]}`, + local: beat.ProcessingConfig{ + EventMetadata: common.EventMetadata{ + Fields: common.MapStr{ + "local": "a", + "shared": "local", + }, + FieldsUnderRoot: true, + Tags: []string{"local"}, + }, + }, + event: `{"value": "abc"}`, + want: common.MapStr{ + "value": "abc", + "global": "a", + "local": "a", + "shared": "local", + "tags": []string{"global", "local"}, + }, + }, + "with client metadata": { + local: beat.ProcessingConfig{ + Meta: common.MapStr{"index": "test"}, + }, + event: `{"value": "abc"}`, + want: common.MapStr{"value": "abc"}, + wantMeta: common.MapStr{"index": "test"}, + }, + "with client processor": { + local: beat.ProcessingConfig{ + Processor: func() beat.ProcessorList { + g := newGroup("test", logp.L()) + g.add(actions.NewAddFields(common.MapStr{"custom": "value"}, true)) + return g + }(), + }, + event: `{"value": "abc"}`, + want: common.MapStr{"value": "abc", "custom": "value"}, + }, + "with beat default fields": { + factory: MakeDefaultBeatSupport(true), + global: `{fields: {global: a, agent.foo: bar}, fields_under_root: true, tags: [tag]}`, + event: `{"value": "abc"}`, + want: common.MapStr{ + "ecs": ecsFields, + "host": common.MapStr{ + "name": "test.host.name", + }, + "agent": common.MapStr{ + "ephemeral_id": "123e4567-e89b-12d3-a456-426655440000", + "hostname": "test.host.name", + "id": "123e4567-e89b-12d3-a456-426655440001", + "type": "test", + "version": "0.1", + "foo": "bar", + }, + "value": "abc", + "global": "a", + "tags": []string{"tag"}, + }, + }, + "with beat default fields and custom name": { + factory: MakeDefaultBeatSupport(true), + global: `{fields: {global: a, agent.foo: bar}, fields_under_root: true, tags: [tag]}`, + event: `{"value": "abc"}`, + infoMod: func(info beat.Info) beat.Info { + info.Name = "other.test.host.name" + return info + }, + want: common.MapStr{ + "ecs": ecsFields, + "host": common.MapStr{ + "name": "other.test.host.name", + }, + "agent": common.MapStr{ + "ephemeral_id": "123e4567-e89b-12d3-a456-426655440000", + "hostname": "test.host.name", + "name": "other.test.host.name", + "id": "123e4567-e89b-12d3-a456-426655440001", + "type": "test", + "version": "0.1", + "foo": "bar", + }, + "value": "abc", + "global": "a", + "tags": []string{"tag"}, + }, + }, + "with observer default fields": { + factory: MakeDefaultObserverSupport(false), + global: `{fields: {global: a, observer.foo: bar}, fields_under_root: true, tags: [tag]}`, + event: `{"value": "abc"}`, + want: common.MapStr{ + "ecs": ecsFields, + "observer": common.MapStr{ + "ephemeral_id": "123e4567-e89b-12d3-a456-426655440000", + "hostname": "test.host.name", + "id": "123e4567-e89b-12d3-a456-426655440001", + "type": "test", + "version": "0.1", + "foo": "bar", + }, + "value": "abc", + "global": "a", + "tags": []string{"tag"}, + }, + }, + } + + for name, test := range cases { + test := test + t.Run(name, func(t *testing.T) { + t.Parallel() + + cfg, err := common.NewConfigWithYAML([]byte(test.global), "test") + require.NoError(t, err) + + info := defaultInfo + if test.infoMod != nil { + info = test.infoMod(info) + } + + factory := test.factory + if factory == nil { + factory = MakeDefaultSupport(true) + } + + support, err := factory(info, logp.L(), cfg) + require.NoError(t, err) + + prog, err := support.Create(test.local, test.drop) + require.NoError(t, err) + + actual, err := prog.Run(&beat.Event{ + Timestamp: time.Now(), + Fields: fromJSON(test.event), + }) + require.NoError(t, err) + + // validate + assert.Equal(t, test.want, actual.Fields) + assert.Equal(t, test.wantMeta, actual.Meta) + }) + } +} + +func TestNormalization(t *testing.T) { + cases := map[string]struct { + normalize bool + in common.MapStr + mod common.MapStr + want common.MapStr + }{ + "no sharing if normalized": { + normalize: true, + in: common.MapStr{"a": "b"}, + mod: common.MapStr{"change": "x"}, + want: common.MapStr{"a": "b"}, + }, + "data sharing if not normalized": { + normalize: false, + in: common.MapStr{"a": "b"}, + mod: common.MapStr{"change": "x"}, + want: common.MapStr{"a": "b", "change": "x"}, + }, + } + + for name, test := range cases { + test := test + t.Run(name, func(t *testing.T) { + t.Parallel() + + s, err := MakeDefaultSupport(test.normalize)(beat.Info{}, logp.L(), common.NewConfig()) + require.NoError(t, err) + + prog, err := s.Create(beat.ProcessingConfig{}, false) + require.NoError(t, err) + + fields := test.in.Clone() + actual, err := prog.Run(&beat.Event{Fields: fields}) + require.NoError(t, err) + require.NotNil(t, actual) + + fields.DeepUpdate(test.mod) + assert.Equal(t, test.want, actual.Fields) + }) + } +} + +func TestAlwaysDrop(t *testing.T) { + s, err := MakeDefaultSupport(true)(beat.Info{}, logp.L(), common.NewConfig()) + require.NoError(t, err) + + prog, err := s.Create(beat.ProcessingConfig{}, true) + require.NoError(t, err) + + actual, err := prog.Run(&beat.Event{}) + require.NoError(t, err) + assert.Nil(t, actual) +} + +func TestDynamicFields(t *testing.T) { + factory, err := MakeDefaultSupport(true)(beat.Info{}, logp.L(), common.NewConfig()) + require.NoError(t, err) + + dynFields := common.NewMapStrPointer(common.MapStr{}) + prog, err := factory.Create(beat.ProcessingConfig{ + DynamicFields: &dynFields, + }, false) + require.NoError(t, err) + + actual, err := prog.Run(&beat.Event{Fields: common.MapStr{"hello": "world"}}) + require.NoError(t, err) + assert.Equal(t, common.MapStr{"hello": "world"}, actual.Fields) + + dynFields.Set(common.MapStr{"dyn": "field"}) + actual, err = prog.Run(&beat.Event{Fields: common.MapStr{"hello": "world"}}) + require.NoError(t, err) + assert.Equal(t, common.MapStr{"hello": "world", "dyn": "field"}, actual.Fields) +} + +func fromJSON(in string) common.MapStr { + var tmp common.MapStr + err := json.Unmarshal([]byte(in), &tmp) + if err != nil { + panic(err) + } + return tmp +} diff --git a/libbeat/publisher/processing/processing.go b/libbeat/publisher/processing/processing.go new file mode 100644 index 00000000000..ff1be24fc45 --- /dev/null +++ b/libbeat/publisher/processing/processing.go @@ -0,0 +1,38 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package processing + +import ( + "github.com/elastic/beats/libbeat/beat" + "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/logp" +) + +// SupportFactory creates a new processing Supporter that can be used with +// the publisher pipeline. The factory gets the global configuration passed, +// in order to configure some shared global event processing. +type SupportFactory func(info beat.Info, log *logp.Logger, cfg *common.Config) (Supporter, error) + +// Supporter is used to create an event processing pipeline. It is used by the +// publisher pipeline when a client connects to the pipeline. The supporter +// will merge the global and local configurations into a common event +// processor. +// If `drop` is set, then the processor generated must always drop all events. +type Supporter interface { + Create(cfg beat.ProcessingConfig, drop bool) (beat.Processor, error) +} diff --git a/libbeat/publisher/processing/processors.go b/libbeat/publisher/processing/processors.go new file mode 100644 index 00000000000..38a77bdd948 --- /dev/null +++ b/libbeat/publisher/processing/processors.go @@ -0,0 +1,200 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package processing + +import ( + "fmt" + "strings" + "sync" + + "github.com/elastic/beats/libbeat/beat" + "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/logp" + "github.com/elastic/beats/libbeat/outputs/codec/json" + "github.com/elastic/beats/libbeat/processors" +) + +type group struct { + log *logp.Logger + title string + list []beat.Processor +} + +type processorFn struct { + name string + fn func(event *beat.Event) (*beat.Event, error) +} + +var generalizeProcessor = newProcessor("generalizeEvent", func(event *beat.Event) (*beat.Event, error) { + // Filter out empty events. Empty events are still reported by ACK callbacks. + if len(event.Fields) == 0 { + return nil, nil + } + + fields := common.ConvertToGenericEvent(event.Fields) + if fields == nil { + logp.Err("fail to convert to generic event") + return nil, nil + } + + event.Fields = fields + return event, nil +}) + +var dropDisabledProcessor = newProcessor("dropDisabled", func(event *beat.Event) (*beat.Event, error) { + return nil, nil +}) + +func newGroup(title string, log *logp.Logger) *group { + return &group{ + title: title, + log: log, + } +} + +func (p *group) add(processor processors.Processor) { + if processor != nil { + p.list = append(p.list, processor) + } +} + +func (p *group) String() string { + var s []string + for _, p := range p.list { + s = append(s, p.String()) + } + + str := strings.Join(s, ", ") + if p.title == "" { + return str + } + return fmt.Sprintf("%v{%v}", p.title, str) +} + +func (p *group) All() []beat.Processor { + return p.list +} + +func (p *group) Run(event *beat.Event) (*beat.Event, error) { + if p == nil || len(p.list) == 0 { + return event, nil + } + + for _, sub := range p.list { + var err error + + event, err = sub.Run(event) + if err != nil { + // XXX: We don't drop the event, but continue filtering here if the most + // recent processor did return an event. + // We want processors having this kind of implicit behavior + // on errors? + + p.log.Debugf("Fail to apply processor %s: %s", p, err) + } + + if event == nil { + return nil, err + } + } + + return event, nil +} + +func newProcessor(name string, fn func(*beat.Event) (*beat.Event, error)) *processorFn { + return &processorFn{name: name, fn: fn} +} + +func newAnnotateProcessor(name string, fn func(*beat.Event)) *processorFn { + return newProcessor(name, func(event *beat.Event) (*beat.Event, error) { + fn(event) + return event, nil + }) +} + +func (p *processorFn) String() string { return p.name } +func (p *processorFn) Run(e *beat.Event) (*beat.Event, error) { return p.fn(e) } + +func clientEventMeta(meta common.MapStr, needsCopy bool) *processorFn { + fn := func(event *beat.Event) { addMeta(event, meta) } + if needsCopy { + fn = func(event *beat.Event) { addMeta(event, meta.Clone()) } + } + return newAnnotateProcessor("@metadata", fn) +} + +func addMeta(event *beat.Event, meta common.MapStr) { + if event.Meta == nil { + event.Meta = meta + } else { + event.Meta.Clone() + event.Meta.DeepUpdate(meta) + } +} + +func makeAddDynMetaProcessor( + name string, + meta *common.MapStrPointer, + checkCopy func(m common.MapStr) bool, +) *processorFn { + return newAnnotateProcessor(name, func(event *beat.Event) { + dynFields := meta.Get() + if checkCopy(dynFields) { + dynFields = dynFields.Clone() + } + + event.Fields.DeepUpdate(dynFields) + }) +} + +func debugPrintProcessor(info beat.Info, log *logp.Logger) *processorFn { + // ensure only one go-routine is using the encoder (in case + // beat.Client is shared between multiple go-routines by accident) + var mux sync.Mutex + + encoder := json.New(info.Version, json.Config{ + Pretty: true, + EscapeHTML: false, + }) + return newProcessor("debugPrint", func(event *beat.Event) (*beat.Event, error) { + mux.Lock() + defer mux.Unlock() + + b, err := encoder.Encode(info.Beat, event) + if err != nil { + return event, nil + } + + log.Debugf("Publish event: %s", b) + return event, nil + }) +} + +func hasKey(m common.MapStr, key string) bool { + _, exists := m[key] + return exists +} + +func hasKeyAnyOf(m, builtin common.MapStr) bool { + for k := range builtin { + if hasKey(m, k) { + return true + } + } + return false +} diff --git a/metricbeat/mb/module/connector.go b/metricbeat/mb/module/connector.go index 2da153d98ea..d00e524a555 100644 --- a/metricbeat/mb/module/connector.go +++ b/metricbeat/mb/module/connector.go @@ -58,8 +58,10 @@ func NewConnector(pipeline beat.Pipeline, c *common.Config, dynFields *common.Ma func (c *Connector) Connect() (beat.Client, error) { return c.pipeline.ConnectWith(beat.ClientConfig{ - EventMetadata: c.eventMeta, - Processor: c.processors, - DynamicFields: c.dynamicFields, + Processing: beat.ProcessingConfig{ + EventMetadata: c.eventMeta, + Processor: c.processors, + DynamicFields: c.dynamicFields, + }, }) } diff --git a/packetbeat/beater/packetbeat.go b/packetbeat/beater/packetbeat.go index becc53cf65b..a4e812ad66e 100644 --- a/packetbeat/beater/packetbeat.go +++ b/packetbeat/beater/packetbeat.go @@ -178,8 +178,10 @@ func (pb *packetbeat) setupFlows() error { } client, err := pb.pipeline.ConnectWith(beat.ClientConfig{ - EventMetadata: config.Flows.EventMetadata, - Processor: processors, + Processing: beat.ProcessingConfig{ + EventMetadata: config.Flows.EventMetadata, + Processor: processors, + }, }) if err != nil { return err diff --git a/packetbeat/publish/publish.go b/packetbeat/publish/publish.go index 0b34715e1b9..db264852036 100644 --- a/packetbeat/publish/publish.go +++ b/packetbeat/publish/publish.go @@ -97,8 +97,10 @@ func (p *TransactionPublisher) CreateReporter( } clientConfig := beat.ClientConfig{ - EventMetadata: meta.Event, - Processor: processors, + Processing: beat.ProcessingConfig{ + EventMetadata: meta.Event, + Processor: processors, + }, } if p.canDrop { clientConfig.PublishMode = beat.DropIfFull diff --git a/winlogbeat/beater/eventlogger.go b/winlogbeat/beater/eventlogger.go index 59c9ecb1f90..0eb9ec8c13b 100644 --- a/winlogbeat/beater/eventlogger.go +++ b/winlogbeat/beater/eventlogger.go @@ -64,10 +64,12 @@ func newEventLogger( func (e *eventLogger) connect(pipeline beat.Pipeline) (beat.Client, error) { api := e.source.Name() return pipeline.ConnectWith(beat.ClientConfig{ - PublishMode: beat.GuaranteedSend, - EventMetadata: e.eventMeta, - Meta: nil, // TODO: configure modules/ES ingest pipeline? - Processor: e.processors, + PublishMode: beat.GuaranteedSend, + Processing: beat.ProcessingConfig{ + EventMetadata: e.eventMeta, + Meta: nil, // TODO: configure modules/ES ingest pipeline? + Processor: e.processors, + }, ACKCount: func(n int) { addPublished(api, n) logp.Info("EventLog[%s] successfully published %d events", api, n) diff --git a/x-pack/functionbeat/beater/functionbeat.go b/x-pack/functionbeat/beater/functionbeat.go index 61b61cf0344..b62e8cd704d 100644 --- a/x-pack/functionbeat/beater/functionbeat.go +++ b/x-pack/functionbeat/beater/functionbeat.go @@ -143,9 +143,11 @@ func makeClientFactory(log *logp.Logger, manager *licenser.Manager, pipeline bea } client, err := core.NewSyncClient(log, pipeline, beat.ClientConfig{ - PublishMode: beat.GuaranteedSend, - Processor: processors, - EventMetadata: c.EventMetadata, + PublishMode: beat.GuaranteedSend, + Processing: beat.ProcessingConfig{ + Processor: processors, + EventMetadata: c.EventMetadata, + }, }) if err != nil { From 0d1090090744b73e917f231fd7027c812eaf1980 Mon Sep 17 00:00:00 2001 From: Alex K <8418476+fearful-symmetry@users.noreply.github.com> Date: Fri, 8 Mar 2019 12:51:15 -0600 Subject: [PATCH 176/332] [Metricbeats] Migrate uwsgi/status to ReporterV2 (#11153) * upgrate uwsgi to ReporterV2 --- .../module/uwsgi/status/_meta/data.json | 72 +++++++------------ metricbeat/module/uwsgi/status/data.go | 18 ++--- metricbeat/module/uwsgi/status/status.go | 29 ++++---- .../uwsgi/status/status_integration_test.go | 30 +++++--- .../module/uwsgi/status/status_linux_test.go | 8 ++- metricbeat/module/uwsgi/status/status_test.go | 57 ++++++++------- 6 files changed, 106 insertions(+), 108 deletions(-) diff --git a/metricbeat/module/uwsgi/status/_meta/data.json b/metricbeat/module/uwsgi/status/_meta/data.json index 88318412426..c9ce9d055b1 100644 --- a/metricbeat/module/uwsgi/status/_meta/data.json +++ b/metricbeat/module/uwsgi/status/_meta/data.json @@ -1,53 +1,31 @@ { - "@timestamp": "2011-11-11T00:00:00.000Z", + "@timestamp": "2017-10-12T08:05:34.853Z", + "event": { + "dataset": "uwsgi.status", + "duration": 115000, + "module": "uwsgi" + }, "metricset": { - "rtt": 3069, - "name": "stat", - "module": "uwsgi" + "name": "status" + }, + "service": { + "address": "127.0.0.1:9192", + "type": "uwsgi" }, "uwsgi": { - "status": { - "total": { - "requests": 102, - "exceptions": 1, - "write_errors": 0, - "read_errors": 0, - "pid": 1 - }, - - "worker": { - "signals": 0, - "status": "idle", - "id": 1, - "pid": 7, - "accepting": 1, - "rss": 0, - "respawn_count": 1, - "tx": 5599, - "requests": 102, - "delta_requests": 102, - "running_time": 10103, - "exceptions": 1, - "avg_rt": 91, - "vsz": 0, - "signal_queue": 0, - "harakiri_count": 0 - }, - - "core": { - "worker_pid": 7, - "requests": 75, - "static_requests": 0, - "routed_requests": 0, - "offloaded_requests": 0, - "write_errors": 0, - "read_errors": 0 + "status": { + "core": { + "id": 1, + "read_errors": 0, + "requests": { + "offloaded": 0, + "routed": 0, + "static": 0, + "total": 941 + }, + "worker_pid": 7, + "write_errors": 0 + } } - } - }, - "beat": { - "name": "beatname", - "hostname": "hostname", - "version": "7.0.0-alpha1" } -} +} \ No newline at end of file diff --git a/metricbeat/module/uwsgi/status/data.go b/metricbeat/module/uwsgi/status/data.go index 26bc46a0e01..437fdcbb0ee 100644 --- a/metricbeat/module/uwsgi/status/data.go +++ b/metricbeat/module/uwsgi/status/data.go @@ -20,8 +20,10 @@ package status import ( "encoding/json" + "github.com/pkg/errors" + "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/logp" + "github.com/elastic/beats/metricbeat/mb" ) type uwsgiCore struct { @@ -75,15 +77,13 @@ type uwsgiStat struct { // Sockets []UwsgiSocket `json:"sockets"` } -func eventsMapping(content []byte) ([]common.MapStr, error) { +func eventsMapping(content []byte, reporter mb.ReporterV2) error { var stats uwsgiStat err := json.Unmarshal(content, &stats) if err != nil { - logp.Err("uwsgi statistics parsing failed with error: %+v", err) - return nil, err + return errors.Wrap(err, "uwsgi statistics parsing failed") } - events := []common.MapStr{} totalRequests := 0 totalExceptions := 0 totalWriteErrors := 0 @@ -133,11 +133,11 @@ func eventsMapping(content []byte) ([]common.MapStr, error) { "read_errors": core.ReadErrors, }, } - events = append(events, coreEvent) + reporter.Event(mb.Event{MetricSetFields: coreEvent}) coreID++ } - events = append(events, workerEvent) + reporter.Event(mb.Event{MetricSetFields: workerEvent}) } // overall @@ -151,6 +151,6 @@ func eventsMapping(content []byte) ([]common.MapStr, error) { }, } - events = append(events, baseEvent) - return events, nil + reporter.Event(mb.Event{MetricSetFields: baseEvent}) + return nil } diff --git a/metricbeat/module/uwsgi/status/status.go b/metricbeat/module/uwsgi/status/status.go index 2212fd3375c..84971e55399 100644 --- a/metricbeat/module/uwsgi/status/status.go +++ b/metricbeat/module/uwsgi/status/status.go @@ -18,7 +18,7 @@ package status import ( - "errors" + "fmt" "io" "io/ioutil" "net" @@ -26,7 +26,7 @@ import ( "net/url" "strings" - "github.com/elastic/beats/libbeat/logp" + "github.com/pkg/errors" "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/metricbeat/mb" @@ -55,8 +55,8 @@ func fetchStatData(URL string) ([]byte, error) { u, err := url.Parse(URL) if err != nil { - logp.Err("parsing uwsgi stats url failed: %+v", err) - return nil, err + + return nil, errors.Wrap(err, "parsing uwsgi stats url failed") } switch u.Scheme { @@ -83,8 +83,8 @@ func fetchStatData(URL string) ([]byte, error) { defer res.Body.Close() if res.StatusCode != 200 { - logp.Err("failed to fetch uwsgi status with code: %d", res.StatusCode) - return nil, errors.New("http failed") + + return nil, fmt.Errorf("failed to fetch uwsgi status with code: %d", res.StatusCode) } reader = res.Body default: @@ -93,8 +93,7 @@ func fetchStatData(URL string) ([]byte, error) { data, err := ioutil.ReadAll(reader) if err != nil { - logp.Err("uwsgi data read failed: %+v", err) - return nil, err + return nil, errors.Wrap(err, "uwsgi data read failed") } return data, nil @@ -102,14 +101,14 @@ func fetchStatData(URL string) ([]byte, error) { // Fetch methods implements the data gathering and data conversion to the right // format. -func (m *MetricSet) Fetch() ([]common.MapStr, error) { +func (m *MetricSet) Fetch(reporter mb.ReporterV2) error { content, err := fetchStatData(m.HostData().URI) if err != nil { - return []common.MapStr{ - common.MapStr{ - "error": err.Error(), - }, - }, err + reporter.Event(mb.Event{MetricSetFields: common.MapStr{ + "error": err.Error(), + }}, + ) + return err } - return eventsMapping(content) + return eventsMapping(content, reporter) } diff --git a/metricbeat/module/uwsgi/status/status_integration_test.go b/metricbeat/module/uwsgi/status/status_integration_test.go index 5ac48b5e4a2..18673776b1e 100644 --- a/metricbeat/module/uwsgi/status/status_integration_test.go +++ b/metricbeat/module/uwsgi/status/status_integration_test.go @@ -32,23 +32,37 @@ import ( func TestFetchTCP(t *testing.T) { compose.EnsureUp(t, "uwsgi_tcp") - f := mbtest.NewEventsFetcher(t, getConfig("tcp")) - events, err := f.Fetch() - assert.NoError(t, err) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig("tcp")) + events, errs := mbtest.ReportingFetchV2Error(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) + } + assert.NotEmpty(t, events) - assert.True(t, len(events) > 0) + t.Log(events) totals := findItems(events, "total") assert.Equal(t, 1, len(totals)) } +func TestData(t *testing.T) { + f := mbtest.NewReportingMetricSetV2Error(t, getConfig("http")) + + if err := mbtest.WriteEventsReporterV2Error(f, t, ""); err != nil { + t.Fatal("write", err) + } +} + func TestFetchHTTP(t *testing.T) { compose.EnsureUp(t, "uwsgi_http") - f := mbtest.NewEventsFetcher(t, getConfig("http")) - events, err := f.Fetch() - assert.NoError(t, err) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig("http")) + events, errs := mbtest.ReportingFetchV2Error(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) + } + assert.NotEmpty(t, events) - assert.True(t, len(events) > 0) + t.Log(events) totals := findItems(events, "total") assert.Equal(t, 1, len(totals)) } diff --git a/metricbeat/module/uwsgi/status/status_linux_test.go b/metricbeat/module/uwsgi/status/status_linux_test.go index 824f948fbea..68934f4d6f3 100644 --- a/metricbeat/module/uwsgi/status/status_linux_test.go +++ b/metricbeat/module/uwsgi/status/status_linux_test.go @@ -57,9 +57,11 @@ func TestFetchDataUnixSock(t *testing.T) { "hosts": []string{"unix://" + listener.Addr().String()}, } - f := mbtest.NewEventsFetcher(t, config) - events, err := f.Fetch() - assert.NoError(t, err) + f := mbtest.NewReportingMetricSetV2Error(t, config) + events, errs := mbtest.ReportingFetchV2Error(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) + } assertTestData(t, events) wg.Wait() diff --git a/metricbeat/module/uwsgi/status/status_test.go b/metricbeat/module/uwsgi/status/status_test.go index 1e3827d534d..9bb4b55dfb4 100644 --- a/metricbeat/module/uwsgi/status/status_test.go +++ b/metricbeat/module/uwsgi/status/status_test.go @@ -29,6 +29,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/metricbeat/mb" mbtest "github.com/elastic/beats/metricbeat/mb/testing" ) @@ -47,10 +48,10 @@ func testData(t *testing.T) (data []byte) { return } -func findItems(mp []common.MapStr, key string) []common.MapStr { +func findItems(mp []mb.Event, key string) []common.MapStr { result := make([]common.MapStr, 0, 1) for _, v := range mp { - if el, ok := v[key]; ok { + if el, ok := v.MetricSetFields[key]; ok { result = append(result, el.(common.MapStr)) } } @@ -58,15 +59,15 @@ func findItems(mp []common.MapStr, key string) []common.MapStr { return result } -func assertTestData(t *testing.T, mp []common.MapStr) { - totals := findItems(mp, "total") +func assertTestData(t *testing.T, evt []mb.Event) { + totals := findItems(evt, "total") assert.Equal(t, 1, len(totals)) assert.Equal(t, 2042, totals[0]["requests"]) assert.Equal(t, 0, totals[0]["exceptions"]) assert.Equal(t, 34, totals[0]["write_errors"]) assert.Equal(t, 38, totals[0]["read_errors"]) - workers := findItems(mp, "core") + workers := findItems(evt, "core") assert.Equal(t, 4, len(workers)) } @@ -93,9 +94,11 @@ func TestFetchDataTCP(t *testing.T) { "hosts": []string{"tcp://" + listener.Addr().String()}, } - f := mbtest.NewEventsFetcher(t, config) - events, err := f.Fetch() - assert.NoError(t, err) + f := mbtest.NewReportingMetricSetV2Error(t, config) + events, errs := mbtest.ReportingFetchV2Error(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) + } assertTestData(t, events) wg.Wait() @@ -117,9 +120,11 @@ func TestFetchDataHTTP(t *testing.T) { "hosts": []string{server.URL}, } - f := mbtest.NewEventsFetcher(t, config) - events, err := f.Fetch() - assert.NoError(t, err) + f := mbtest.NewReportingMetricSetV2Error(t, config) + events, errs := mbtest.ReportingFetchV2Error(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) + } assertTestData(t, events) } @@ -138,9 +143,9 @@ func TestFetchDataUnmarshalledError(t *testing.T) { "hosts": []string{server.URL}, } - f := mbtest.NewEventsFetcher(t, config) - _, err := f.Fetch() - assert.Error(t, err) + f := mbtest.NewReportingMetricSetV2Error(t, config) + _, errs := mbtest.ReportingFetchV2Error(f) + assert.NotEmpty(t, errs) } func TestFetchDataSourceDown(t *testing.T) { @@ -155,9 +160,9 @@ func TestFetchDataSourceDown(t *testing.T) { "hosts": []string{server.URL}, } - f := mbtest.NewEventsFetcher(t, config) - _, err := f.Fetch() - assert.Error(t, err) + f := mbtest.NewReportingMetricSetV2Error(t, config) + _, errs := mbtest.ReportingFetchV2Error(f) + assert.NotEmpty(t, errs) } func TestConfigError(t *testing.T) { @@ -167,9 +172,9 @@ func TestConfigError(t *testing.T) { "hosts": []string{"unix://127.0.0.1:8080"}, } - f := mbtest.NewEventsFetcher(t, config) - _, err := f.Fetch() - assert.Error(t, err) + f := mbtest.NewReportingMetricSetV2Error(t, config) + _, errs := mbtest.ReportingFetchV2Error(f) + assert.NotEmpty(t, errs) config = map[string]interface{}{ "module": "uwsgi", @@ -177,9 +182,9 @@ func TestConfigError(t *testing.T) { "hosts": []string{"unknown_url_format"}, } - f = mbtest.NewEventsFetcher(t, config) - _, err = f.Fetch() - assert.Error(t, err) + f = mbtest.NewReportingMetricSetV2Error(t, config) + _, errs = mbtest.ReportingFetchV2Error(f) + assert.NotEmpty(t, errs) config = map[string]interface{}{ "module": "uwsgi", @@ -187,7 +192,7 @@ func TestConfigError(t *testing.T) { "hosts": []string{"ftp://127.0.0.1:8080"}, } - f = mbtest.NewEventsFetcher(t, config) - _, err = f.Fetch() - assert.Error(t, err) + f = mbtest.NewReportingMetricSetV2Error(t, config) + _, errs = mbtest.ReportingFetchV2Error(f) + assert.NotEmpty(t, errs) } From 8f161bcbedac37b6cc66cbf3ed4ca9f431a4c83e Mon Sep 17 00:00:00 2001 From: Alex K <8418476+fearful-symmetry@users.noreply.github.com> Date: Fri, 8 Mar 2019 12:56:26 -0600 Subject: [PATCH 177/332] pass ES_BEATS to specific makefile (#11154) Makefile change to fix #11137 --- generator/beat/{beat}/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/generator/beat/{beat}/Makefile b/generator/beat/{beat}/Makefile index bee5fe77b43..1e99202798f 100644 --- a/generator/beat/{beat}/Makefile +++ b/generator/beat/{beat}/Makefile @@ -18,7 +18,7 @@ NO_COLLECT=true setup: pre-setup git-add pre-setup: copy-vendor git-init - $(MAKE) -f $(LIBBEAT_MAKEFILE) mage + $(MAKE) -f $(LIBBEAT_MAKEFILE) mage ES_BEATS=$(ES_BEATS) $(MAKE) -f $(LIBBEAT_MAKEFILE) update BEAT_NAME=$(BEAT_NAME) ES_BEATS=$(ES_BEATS) NO_COLLECT=$(NO_COLLECT) # Copy beats into vendor directory From c9d35e5b5bee9d7c3ce882e7fa4daa293ed10b8b Mon Sep 17 00:00:00 2001 From: Steffen Siering Date: Fri, 8 Mar 2019 20:30:51 +0100 Subject: [PATCH 178/332] Add missing changelog for #10801 (#11166) --- CHANGELOG-developer.next.asciidoc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG-developer.next.asciidoc b/CHANGELOG-developer.next.asciidoc index 72a7993db97..e8ab8e7f82d 100644 --- a/CHANGELOG-developer.next.asciidoc +++ b/CHANGELOG-developer.next.asciidoc @@ -21,8 +21,10 @@ The list below covers the major changes between 7.0.0-beta1 and master only. ==== Breaking changes - Remove support for deprecated `GenRootCmd` methods. {pull}10721[10721] +- Remove SkipNormalization, SkipAgentMetadata, SkipAddHostName. {pull}10801[10801] {pull}10769[10769] ==== Bugfixes + - Align default index between elasticsearch and logstash and kafka output. {pull}10841[10841] - Fix duplication check for `append_fields` option. {pull}10959[10959] @@ -32,3 +34,4 @@ The list below covers the major changes between 7.0.0-beta1 and master only. - The `beat.Event` accessor methods now support `@metadata` keys. {pull}10761[10761] - Assertion for documented fields in tests fails if any of the fields in the tested event is documented as an alias. {pull}10921[10921] - Support for Logger in the Metricset base instance. {pull}11106[11106] +- Introduce processing.Support to instance.Setting. This allows Beats to fully modify the event processing. {pull}10801[10801] From 1384fb5c9f208705c5a2d192b784b1032514e99b Mon Sep 17 00:00:00 2001 From: Radovan Ondas Date: Mon, 11 Mar 2019 08:30:13 +0100 Subject: [PATCH 179/332] Add community beat Netatmobeat to the list (#11174) --- libbeat/docs/communitybeats.asciidoc | 1 + 1 file changed, 1 insertion(+) diff --git a/libbeat/docs/communitybeats.asciidoc b/libbeat/docs/communitybeats.asciidoc index b0acb5794d3..df749ad83ac 100644 --- a/libbeat/docs/communitybeats.asciidoc +++ b/libbeat/docs/communitybeats.asciidoc @@ -72,6 +72,7 @@ https://github.com/nathan-K-/mqttbeat[mqttbeat]:: Add messages from mqtt topics https://github.com/adibendahan/mysqlbeat[mysqlbeat]:: Run any query on MySQL and send results to Elasticsearch. https://github.com/PhaedrusTheGreek/nagioscheckbeat[nagioscheckbeat]:: For Nagios checks and performance data. https://github.com/nfvsap/natsbeat[natsbeat]:: Collects data from NATS monitoring endpoints +https://github.com/radoondas/netatmobeat[netatmobeat]:: Reads data from Netatmo weather station. https://github.com/mrkschan/nginxbeat[nginxbeat]:: Reads status from Nginx. https://github.com/2Fast2BCn/nginxupstreambeat[nginxupstreambeat]:: Reads upstream status from nginx upstream module. https://github.com/mschneider82/nsqbeat[nsqbeat]:: Reads data from a NSQ topic. From 5eb508509858059f35f3496cf3e95e3360aabdb6 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Mon, 11 Mar 2019 08:45:35 -0400 Subject: [PATCH 180/332] Fix a issue when cancelling an enroll. (#11067) Fix an issue with a partial enroll, when a user refused to overrides a local configuration actually the enroll command did already used the token on the ES cluster, this commit move the confirm in the CM instead of having it in the Enroll's function and is executed by sending the token or creating any files on disk. Fixes: #10150 --- x-pack/libbeat/cmd/enroll.go | 26 ++++++++++--- x-pack/libbeat/management/enroll.go | 60 ++++++++++++----------------- 2 files changed, 44 insertions(+), 42 deletions(-) diff --git a/x-pack/libbeat/cmd/enroll.go b/x-pack/libbeat/cmd/enroll.go index 1b3deadccab..7cb46506d4e 100644 --- a/x-pack/libbeat/cmd/enroll.go +++ b/x-pack/libbeat/cmd/enroll.go @@ -67,6 +67,16 @@ func genEnrollCmd(name, version string) *cobra.Command { return err } + confirm, err := confirmConfigOverwrite(force) + if err != nil { + return err + } + + if !confirm { + fmt.Println("Enrollment was canceled by the user") + return nil + } + var enrollmentToken string if len(args) == 2 { // use given enrollment token @@ -90,16 +100,12 @@ func genEnrollCmd(name, version string) *cobra.Command { } } - enrolled, err := management.Enroll(beat, config, enrollmentToken, force) + err = management.Enroll(beat, config, enrollmentToken) if err != nil { return errors.Wrap(err, "Error while enrolling") } - if enrolled { - fmt.Println("Enrolled and ready to retrieve settings from Kibana") - } else { - fmt.Println("Enrollment was canceled by the user") - } + fmt.Println("Enrolled and ready to retrieve settings from Kibana") return nil }), } @@ -121,3 +127,11 @@ func kibanaConfig(config *common.Config) (*common.Config, error) { } return common.NewConfig(), nil } + +func confirmConfigOverwrite(force bool) (bool, error) { + if force { + return true, nil + } + + return cli.Confirm("This will replace your current settings. Do you want to continue?", true) +} diff --git a/x-pack/libbeat/management/enroll.go b/x-pack/libbeat/management/enroll.go index da334b3cd4a..bd5eb740869 100644 --- a/x-pack/libbeat/management/enroll.go +++ b/x-pack/libbeat/management/enroll.go @@ -12,7 +12,6 @@ import ( "github.com/elastic/beats/libbeat/cfgfile" "github.com/elastic/beats/libbeat/cmd/instance" - "github.com/elastic/beats/libbeat/common/cli" "github.com/elastic/beats/libbeat/common/file" "github.com/elastic/beats/libbeat/kibana" "github.com/elastic/beats/x-pack/libbeat/management/api" @@ -22,23 +21,27 @@ const accessTokenKey = "management.accesstoken" // Enroll this beat to the given kibana // This will use Central Management API to enroll and retrieve an access key for config retrieval -func Enroll(beat *instance.Beat, kibanaConfig *kibana.ClientConfig, enrollmentToken string, force bool) (bool, error) { +func Enroll( + beat *instance.Beat, + kibanaConfig *kibana.ClientConfig, + enrollmentToken string, +) error { // Ignore kibana version to avoid permission errors kibanaConfig.IgnoreVersion = true client, err := api.NewClient(kibanaConfig) if err != nil { - return false, err + return err } accessToken, err := client.Enroll(beat.Info.Beat, beat.Info.Name, beat.Info.Version, beat.Info.Hostname, beat.Info.ID, enrollmentToken) if err != nil { - return false, err + return err } // Store access token in keystore if err := storeAccessToken(beat, accessToken); err != nil { - return false, err + return err } // Enrolled, persist state @@ -47,35 +50,28 @@ func Enroll(beat *instance.Beat, kibanaConfig *kibana.ClientConfig, enrollmentTo config.AccessToken = "${" + accessTokenKey + "}" config.Kibana = kibanaConfig - confirm, err := confirmConfigOverwrite(force) + configFile := cfgfile.GetDefaultCfgfile() + + // backup current settings: + backConfigFile := configFile + ".bak" + fmt.Println("Saving a copy of current settings to " + backConfigFile) + err = file.SafeFileRotate(backConfigFile, configFile) if err != nil { - return false, err + return errors.Wrap(err, "creating a backup copy of current settings") } - if confirm { - configFile := cfgfile.GetDefaultCfgfile() - - // backup current settings: - backConfigFile := configFile + ".bak" - fmt.Println("Saving a copy of current settings to " + backConfigFile) - err := file.SafeFileRotate(backConfigFile, configFile) - if err != nil { - return false, errors.Wrap(err, "creating a backup copy of current settings") - } - - // create the new ones: - f, err := os.OpenFile(configFile, os.O_CREATE|os.O_RDWR|os.O_TRUNC, 0600) - if err != nil { - return false, errors.Wrap(err, "opening settings file") - } - defer f.Close() + // create the new ones: + f, err := os.OpenFile(configFile, os.O_CREATE|os.O_RDWR|os.O_TRUNC, 0600) + if err != nil { + return errors.Wrap(err, "opening settings file") + } + defer f.Close() - if err := config.OverwriteConfigFile(f, beat.Beat.Info.Beat); err != nil { - return false, errors.Wrap(err, "overriding settings file") - } + if err := config.OverwriteConfigFile(f, beat.Beat.Info.Beat); err != nil { + return errors.Wrap(err, "overriding settings file") } - return true, nil + return nil } func storeAccessToken(beat *instance.Beat, accessToken string) error { @@ -92,11 +88,3 @@ func storeAccessToken(beat *instance.Beat, accessToken string) error { return keystore.Save() } - -func confirmConfigOverwrite(force bool) (bool, error) { - if force { - return true, nil - } - - return cli.Confirm("This will replace your current settings. Do you want to continue?", true) -} From c33cb272101bfb425e57180fc53d822a3a764e21 Mon Sep 17 00:00:00 2001 From: Mathieu Martin Date: Mon, 11 Mar 2019 09:14:15 -0400 Subject: [PATCH 181/332] Import fields.ecs.yml as generated by the ECS repo (#11150) Moved the definition of `agent.hostname` to fields.common.yml --- auditbeat/docs/fields.asciidoc | 2143 ++++++----- auditbeat/include/fields.go | 2 +- filebeat/docs/fields.asciidoc | 2139 ++++++----- filebeat/include/fields.go | 2 +- heartbeat/docs/fields.asciidoc | 2143 ++++++----- heartbeat/include/fields.go | 2 +- journalbeat/docs/fields.asciidoc | 2143 ++++++----- journalbeat/include/fields.go | 2 +- libbeat/_meta/fields.common.yml | 4 + libbeat/_meta/fields.ecs.yml | 4337 +++++++++++----------- metricbeat/docs/fields.asciidoc | 2139 ++++++----- metricbeat/include/fields/fields.go | 2 +- packetbeat/docs/fields.asciidoc | 2139 ++++++----- packetbeat/include/fields.go | 2 +- winlogbeat/docs/fields.asciidoc | 2143 ++++++----- winlogbeat/include/fields.go | 2 +- x-pack/functionbeat/docs/fields.asciidoc | 2143 ++++++----- x-pack/functionbeat/include/fields.go | 2 +- 18 files changed, 11124 insertions(+), 10365 deletions(-) diff --git a/auditbeat/docs/fields.asciidoc b/auditbeat/docs/fields.asciidoc index 5304b19be0a..83b42884b87 100644 --- a/auditbeat/docs/fields.asciidoc +++ b/auditbeat/docs/fields.asciidoc @@ -2454,6 +2454,15 @@ Contains common beat fields available in all event types. +*`agent.hostname`*:: ++ +-- +type: keyword + +Hostname of the agent. + +-- + *`beat.timezone`*:: + -- @@ -2909,8 +2918,7 @@ Image labels. [[exported-fields-ecs]] == ECS fields -ECS fields. - +ECS Fields. *`@timestamp`*:: @@ -2923,22 +2931,10 @@ example: 2016-05-23T08:05:34.853Z required: True Date/time when the event originated. -For log events this is the date/time when the event was generated, and not when it was read. +This is the date/time extracted from the event, typically representing when the event was generated by the source. +If the event source has no original timestamp, this value is typically populated by the first time the event was received by the pipeline. Required field for all events. - --- - -*`tags`*:: -+ --- -type: keyword - -example: ["production", "env2"] - -List of keywords used to tag each event. - - -- *`labels`*:: @@ -2948,11 +2944,10 @@ type: object example: {'application': 'foo-bar', 'env': 'production'} -Key/value pairs. +Custom key/value pairs. Can be used to add meta information to events. Should not contain nested objects. All values are stored as keyword. Example: `docker` and `k8s` labels. - -- *`message`*:: @@ -2962,28 +2957,51 @@ type: text example: Hello World -For log events the message field contains the log message. -In other use cases the message field can be used to concatenate different values which are then freely searchable. If multiple messages exist, they can be combined into one message. +For log events the message field contains the log message, optimized for viewing in a log viewer. +For structured logs without an original message field, other fields can be concatenated to form a human-readable summary of the event. +If multiple messages exist, they can be combined into one message. + +-- + +*`tags`*:: ++ +-- +type: keyword + +example: ["production", "env2"] +List of keywords used to tag each event. -- [float] == agent fields -The agent fields contain the data about the software entity, if any, that collects, detects, or observes events on a host, or takes measurements on a host. Examples include Beats. Agents may also run on observers. ECS agent.* fields shall be populated with details of the agent running on the host or observer where the event happened or the measurement was taken. +The agent fields contain the data about the software entity, if any, that collects, detects, or observes events on a host, or takes measurements on a host. +Examples include Beats. Agents may also run on observers. ECS agent.* fields shall be populated with details of the agent running on the host or observer where the event happened or the measurement was taken. - -*`agent.version`*:: +*`agent.ephemeral_id`*:: + -- type: keyword -example: 6.0.0-rc2 +example: 8a4f500f -Version of the agent. +Ephemeral identifier of this agent (if one exists). +This id normally changes across restarts, but `agent.id` does not. + +-- + +*`agent.id`*:: ++ +-- +type: keyword + +example: 8a4f500d +Unique identifier of this agent (if one exists). +Example: For Beats this would be beat.id. -- @@ -2994,11 +3012,10 @@ type: keyword example: foo -Name of the agent. +Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. If no name is given, the name is often left empty. - -- *`agent.type`*:: @@ -3011,43 +3028,27 @@ example: filebeat Type of the agent. The agent type stays always the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - --- - -*`agent.id`*:: -+ --- -type: keyword - -example: 8a4f500d - -Unique identifier of this agent (if one exists). -Example: For Beats this would be beat.id. - - -- -*`agent.ephemeral_id`*:: +*`agent.version`*:: + -- type: keyword -example: 8a4f500f - -Ephemeral identifier of this agent (if one exists). -This id normally changes across restarts, but `agent.id` does not. +example: 6.0.0-rc2 +Version of the agent. -- [float] == client fields -A client is defined as the initiator of a network connection for events regarding sessions, connections, or bidirectional flow records. For TCP events, the client is the initiator of the TCP connection that sends the SYN packet(s). For other protocols, the client is generally the initiator or requestor in the network transaction. Some systems use the term "originator" to refer the client in TCP connections. The client fields describe details about the system acting as the client in the network event. Client fields are usually populated in conjunction with server fields. Client fields are generally not populated for packet-level events. +A client is defined as the initiator of a network connection for events regarding sessions, connections, or bidirectional flow records. +For TCP events, the client is the initiator of the TCP connection that sends the SYN packet(s). For other protocols, the client is generally the initiator or requestor in the network transaction. Some systems use the term "originator" to refer the client in TCP connections. The client fields describe details about the system acting as the client in the network event. Client fields are usually populated in conjunction with server fields. Client fields are generally not populated for packet-level events. Client / server representations can add semantic context to an exchange, which is helpful to visualize the data in certain situations. If your context falls in that category, you should still ensure that source and destination are filled appropriately. - *`client.address`*:: + -- @@ -3056,83 +3057,72 @@ type: keyword Some event client addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. - -- -*`client.ip`*:: +*`client.bytes`*:: + -- -type: ip +type: long -IP address of the client. -Can be one or multiple IPv4 or IPv6 addresses. +example: 184 +Bytes sent from the client to the server. -- -*`client.port`*:: +*`client.domain`*:: + -- -type: long - -Port of the client. +type: keyword +Client domain. -- -*`client.mac`*:: +*`client.geo.city_name`*:: + -- type: keyword -MAC address of the client. +example: Montreal +City name. -- -*`client.domain`*:: +*`client.geo.continent_name`*:: + -- type: keyword -Client domain. +example: North America +Name of the continent. -- -*`client.bytes`*:: +*`client.geo.country_iso_code`*:: + -- -type: long - -example: 184 - -format: bytes +type: keyword -Bytes sent from the client to the server. +example: CA +Country ISO code. -- -*`client.packets`*:: +*`client.geo.country_name`*:: + -- -type: long - -example: 12 +type: keyword -Packets sent from the client to the server. +example: Canada +Country name. -- -[float] -== geo fields - -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. - - - *`client.geo.location`*:: + -- @@ -3142,30 +3132,29 @@ example: { "lon": -73.614830, "lat": 45.505918 } Longitude and latitude. - -- -*`client.geo.continent_name`*:: +*`client.geo.name`*:: + -- type: keyword -example: North America - -Name of the continent. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`client.geo.country_name`*:: +*`client.geo.region_iso_code`*:: + -- type: keyword -example: Canada - -Country name. +example: CA-QC +Region ISO code. -- @@ -3178,274 +3167,274 @@ example: Quebec Region name. - -- -*`client.geo.city_name`*:: +*`client.ip`*:: + -- -type: keyword - -example: Montreal - -City name. +type: ip +IP address of the client. +Can be one or multiple IPv4 or IPv6 addresses. -- -*`client.geo.country_iso_code`*:: +*`client.mac`*:: + -- type: keyword -example: CA - -Country ISO code. - +MAC address of the client. -- -*`client.geo.region_iso_code`*:: +*`client.packets`*:: + -- -type: keyword - -example: CA-QC +type: long -Region ISO code. +example: 12 +Packets sent from the client to the server. -- -*`client.geo.name`*:: +*`client.port`*:: + -- -type: keyword - -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +type: long +Port of the client. -- -[float] -== cloud fields - -Fields related to the cloud or infrastructure the events are coming from. - - - -*`cloud.provider`*:: +*`client.user.email`*:: + -- type: keyword -example: ec2 - -Name of the cloud provider. Example values are ec2, gce, or digitalocean. - +User email address. -- -*`cloud.availability_zone`*:: +*`client.user.full_name`*:: + -- type: keyword -example: us-east-1c - -Availability zone in which this host is running. +example: Albert Einstein +User's full name, if available. -- -*`cloud.region`*:: +*`client.user.group.id`*:: + -- type: keyword -example: us-east-1 - -Region in which this host is running. - +Unique identifier for the group on the system/platform. -- -*`cloud.instance.id`*:: +*`client.user.group.name`*:: + -- type: keyword -example: i-1234567890abcdef0 - -Instance ID of the host machine. - +Name of the group. -- -*`cloud.instance.name`*:: +*`client.user.hash`*:: + -- type: keyword -Instance name of the host machine. - +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -- -*`cloud.machine.type`*:: +*`client.user.id`*:: + -- type: keyword -example: t2.medium - -Machine type of the host machine. - +One or multiple unique identifiers of the user. -- -*`cloud.account.id`*:: +*`client.user.name`*:: + -- type: keyword -example: 666777888999 - -The cloud account or organization id used to identify different entities in a multi-tenant environment. -Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. +example: albert +Short name or login of the user. -- [float] -== container fields - -Container fields are used for meta information about the specific container that is the source of information. These fields help correlate data based containers from any runtime. +== cloud fields +Fields related to the cloud or infrastructure the events are coming from. -*`container.runtime`*:: +*`cloud.account.id`*:: + -- type: keyword -example: docker - -Runtime managing this container. +example: 666777888999 +The cloud account or organization id used to identify different entities in a multi-tenant environment. +Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. -- -*`container.id`*:: +*`cloud.availability_zone`*:: + -- type: keyword -Unique container id. +example: us-east-1c +Availability zone in which this host is running. -- -*`container.image.name`*:: +*`cloud.instance.id`*:: + -- type: keyword -Name of the image the container was built on. +example: i-1234567890abcdef0 +Instance ID of the host machine. -- -*`container.image.tag`*:: +*`cloud.instance.name`*:: + -- type: keyword -Container image tag. +Instance name of the host machine. +-- +*`cloud.machine.type`*:: ++ -- +type: keyword -*`container.name`*:: +example: t2.medium + +Machine type of the host machine. + +-- + +*`cloud.provider`*:: + -- type: keyword -Container name. +example: aws +Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. -- -*`container.labels`*:: +*`cloud.region`*:: + -- -type: object +type: keyword -Image labels. +example: us-east-1 +Region in which this host is running. -- [float] -== destination fields - -Destination fields describe details about the destination of a packet/event. Destination fields are usually populated in conjunction with source fields. +== container fields +Container fields are used for meta information about the specific container that is the source of information. +These fields help correlate data based containers from any runtime. -*`destination.address`*:: +*`container.id`*:: + -- type: keyword -Some event destination addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. -Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. - +Unique container id. -- -*`destination.ip`*:: +*`container.image.name`*:: + -- -type: ip +type: keyword -IP address of the destination. -Can be one or multiple IPv4 or IPv6 addresses. +Name of the image the container was built on. + +-- + +*`container.image.tag`*:: ++ +-- +type: keyword +Container image tag. -- -*`destination.port`*:: +*`container.labels`*:: + -- -type: long +type: object -Port of the destination. +Image labels. + +-- + +*`container.name`*:: ++ +-- +type: keyword +Container name. -- -*`destination.mac`*:: +*`container.runtime`*:: + -- type: keyword -MAC address of the destination. +example: docker +Runtime managing this container. -- -*`destination.domain`*:: +[float] +== destination fields + +Destination fields describe details about the destination of a packet/event. +Destination fields are usually populated in conjunction with source fields. + + +*`destination.address`*:: + -- type: keyword -Destination domain. - +Some event destination addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. +Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. -- @@ -3456,31 +3445,62 @@ type: long example: 184 -format: bytes - Bytes sent from the destination to the source. +-- +*`destination.domain`*:: ++ -- +type: keyword -*`destination.packets`*:: +Destination domain. + +-- + +*`destination.geo.city_name`*:: + -- -type: long +type: keyword -example: 12 +example: Montreal -Packets sent from the destination to the source. +City name. + +-- +*`destination.geo.continent_name`*:: ++ +-- +type: keyword + +example: North America + +Name of the continent. -- -[float] -== geo fields +*`destination.geo.country_iso_code`*:: ++ +-- +type: keyword + +example: CA + +Country ISO code. + +-- -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. +*`destination.geo.country_name`*:: ++ +-- +type: keyword +example: Canada +Country name. + +-- *`destination.geo.location`*:: + @@ -3491,30 +3511,29 @@ example: { "lon": -73.614830, "lat": 45.505918 } Longitude and latitude. - -- -*`destination.geo.continent_name`*:: +*`destination.geo.name`*:: + -- type: keyword -example: North America - -Name of the continent. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`destination.geo.country_name`*:: +*`destination.geo.region_iso_code`*:: + -- type: keyword -example: Canada - -Country name. +example: CA-QC +Region ISO code. -- @@ -3527,56 +3546,112 @@ example: Quebec Region name. +-- +*`destination.ip`*:: ++ -- +type: ip -*`destination.geo.city_name`*:: +IP address of the destination. +Can be one or multiple IPv4 or IPv6 addresses. + +-- + +*`destination.mac`*:: + -- type: keyword -example: Montreal +MAC address of the destination. -City name. +-- + +*`destination.packets`*:: ++ +-- +type: long + +example: 12 +Packets sent from the destination to the source. -- -*`destination.geo.country_iso_code`*:: +*`destination.port`*:: ++ +-- +type: long + +Port of the destination. + +-- + +*`destination.user.email`*:: + -- type: keyword -example: CA +User email address. -Country ISO code. +-- +*`destination.user.full_name`*:: ++ +-- +type: keyword + +example: Albert Einstein + +User's full name, if available. -- -*`destination.geo.region_iso_code`*:: +*`destination.user.group.id`*:: + -- type: keyword -example: CA-QC +Unique identifier for the group on the system/platform. -Region ISO code. +-- +*`destination.user.group.name`*:: ++ +-- +type: keyword + +Name of the group. -- -*`destination.geo.name`*:: +*`destination.user.hash`*:: + -- type: keyword -example: boston-dc +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +-- + +*`destination.user.id`*:: ++ +-- +type: keyword + +One or multiple unique identifiers of the user. + +-- + +*`destination.user.name`*:: ++ +-- +type: keyword +example: albert + +Short name or login of the user. -- @@ -3586,29 +3661,35 @@ Not typically used in automated geolocation. Meta-information specific to ECS. - *`ecs.version`*:: + -- type: keyword -example: 1.0.0-beta2 +example: 1.0.0 required: True ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. -The current version is 1.0.0-beta2 . - -- [float] == error fields -These fields can represent errors of any kind. Use them for errors that happen while fetching events or in cases where the event itself contains an error. +These fields can represent errors of any kind. +Use them for errors that happen while fetching events or in cases where the event itself contains an error. + + +*`error.code`*:: ++ +-- +type: keyword +Error code describing the error. +-- *`error.id`*:: + @@ -3617,7 +3698,6 @@ type: keyword Unique identifier for the error. - -- *`error.message`*:: @@ -3627,98 +3707,113 @@ type: text Error message. - -- -*`error.code`*:: +[float] +== event fields + +The event fields are used for context information about the log or metric event itself. +A log is defined as an event containing details of something that happened. Log events must include the time at which the thing happened. Examples of log events include a process starting on a host, a network packet being sent from a source to a destination, or a network connection between a client and a server being initiated or closed. A metric is defined as an event containing one or more numerical or categorical measurements and the time at which the measurement was taken. Examples of metric events include memory pressure measured on a host, or vulnerabilities measured on a scanned host. + + +*`event.action`*:: + -- type: keyword -Error code describing the error. +example: user-password-change +The action captured by the event. +This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. -- -[float] -== event fields +*`event.category`*:: ++ +-- +type: keyword -The event fields are used for context information about the log or metric event itself. A log is defined as an event containing details of something that happened. Log events must include the time at which the thing happened. Examples of log events include a process starting on a host, a network packet being sent from a source to a destination, or a network connection between a client and a server being initiated or closed. A metric is defined as an event containing one or more numerical or categorical measurements and the time at which the measurement was taken. Examples of metric events include memory pressure measured on a host, or vulnerabilities measured on a scanned host. +example: user-management +Event category. +This contains high-level information about the contents of the event. It is more generic than `event.action`, in the sense that typically a category contains multiple actions. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. +-- -*`event.id`*:: +*`event.created`*:: + -- -type: keyword - -example: 8a4f500d - -Unique ID to describe the event. +type: date +event.created contains the date/time when the event was first read by an agent, or by your pipeline. +This field is distinct from @timestamp in that @timestamp typically contain the time extracted from the original event. +In most situations, these two timestamps will be slightly different. The difference can be used to calculate the delay between your source generating an event, and the time when your agent first processed it. This can be used to monitor your agent's or pipeline's ability to keep up with your event source. +In case the two timestamps are identical, @timestamp should be used. -- -*`event.kind`*:: +*`event.dataset`*:: + -- type: keyword -example: state - -The kind of the event. -This gives information about what type of information the event contains, without being specific to the contents of the event. Examples are `event`, `state`, `alarm`. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. +example: stats +Name of the dataset. +The concept of a `dataset` (fileset / metricset) is used in Beats as a subset of modules. It contains the information which is currently stored in metricset.name and metricset.module or fileset.name. -- -*`event.category`*:: +*`event.duration`*:: + -- -type: keyword +type: long -example: user-management +Duration of the event in nanoseconds. +If event.start and event.end are known this value should be the difference between the end and start time. -Event category. -This contains high-level information about the contents of the event. It is more generic than `event.action`, in the sense that typically a category contains multiple actions. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. +-- +*`event.end`*:: ++ +-- +type: date + +event.end contains the date when the event ended or when the activity was last observed. -- -*`event.action`*:: +*`event.hash`*:: + -- type: keyword -example: user-password-change - -The action captured by the event. -This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. +example: 123456789012345678901234567890ABCD +Hash (perhaps logstash fingerprint) of raw field to be able to demonstrate log integrity. -- -*`event.outcome`*:: +*`event.id`*:: + -- type: keyword -example: success - -The outcome of the event. -If the event describes an action, this fields contains the outcome of that action. Examples outcomes are `success` and `failure`. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. +example: 8a4f500d +Unique ID to describe the event. -- -*`event.type`*:: +*`event.kind`*:: + -- type: keyword -Reserved for future usage. -Please avoid using this field for user data. +example: state +The kind of the event. +This gives information about what type of information the event contains, without being specific to the contents of the event. Examples are `event`, `state`, `alarm`. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. -- @@ -3732,19 +3827,48 @@ example: mysql Name of the module this data is coming from. This information is coming from the modules used in Beats or Logstash. +-- +*`event.original`*:: ++ -- +type: keyword -*`event.dataset`*:: +example: Sep 19 08:26:10 host CEF:0|Security| threatmanager|1.0|100| worm successfully stopped|10|src=10.0.0.1 dst=2.1.2.2spt=1232 + +Raw text message of entire event. Used to demonstrate log integrity. +This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. + +-- + +*`event.outcome`*:: + -- type: keyword -example: stats +example: success -Name of the dataset. -The concept of a `dataset` (fileset / metricset) is used in Beats as a subset of modules. It contains the information which is currently stored in metricset.name and metricset.module or fileset.name. +The outcome of the event. +If the event describes an action, this fields contains the outcome of that action. Examples outcomes are `success` and `failure`. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. + +-- +*`event.risk_score`*:: ++ +-- +type: float + +Risk score or priority of the event (e.g. security solutions). Use your system's original value here. + +-- + +*`event.risk_score_norm`*:: ++ +-- +type: float + +Normalized risk score or priority of the event, on a scale of 0 to 100. +This is mainly useful if you use more than one system that assigns risk scores, and you want to see a normalized value across all systems. -- @@ -3755,122 +3879,132 @@ type: long example: 7 -Severity describes the severity of the event. What the different severity values mean can very different between use cases. It's up to the implementer to make sure severities are consistent across events. - +Severity describes the original severity of the event. What the different severity values mean can very different between use cases. It's up to the implementer to make sure severities are consistent across events. -- -*`event.original`*:: +*`event.start`*:: + -- -type: keyword +type: date -example: Sep 19 08:26:10 host CEF:0|Security| threatmanager|1.0|100| worm successfully stopped|10|src=10.0.0.1 dst=2.1.2.2spt=1232 +event.start contains the date when the event started or when the activity was first observed. -Raw text message of entire event. Used to demonstrate log integrity. -This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. +-- +*`event.timezone`*:: ++ +-- +type: keyword -Field is not indexed. +This field should be populated when the event's timestamp does not include timezone information already (e.g. default Syslog timestamps). It's optional otherwise. +Acceptable timezone formats are: a canonical ID (e.g. "Europe/Amsterdam"), abbreviated (e.g. "EST") or an HH:mm differential (e.g. "-05:00"). -- -*`event.hash`*:: +*`event.type`*:: + -- type: keyword -example: 123456789012345678901234567890ABCD +Reserved for future usage. +Please avoid using this field for user data. -Hash (perhaps logstash fingerprint) of raw field to be able to demonstrate log integrity. +-- +[float] +== file fields --- +A file is defined as a set of information that has been created on, or has existed on a filesystem. +File objects can be associated with host events, network events, and/or file events (e.g., those produced by File Integrity Monitoring [FIM] products or services). File fields provide details about the affected file associated with the event or metric. -*`event.duration`*:: + +*`file.ctime`*:: + -- -type: long +type: date -format: duration +Last time file metadata changed. -Duration of the event in nanoseconds. -If event.start and event.end are known this value should be the difference between the end and start time. +-- +*`file.device`*:: ++ +-- +type: keyword + +Device that is the source of the file. -- -*`event.timezone`*:: +*`file.extension`*:: + -- type: keyword -This field should be populated when the event's timestamp does not include timezone information already (e.g. default Syslog timestamps). It's optional otherwise. -Acceptable timezone formats are: a canonical ID (e.g. "Europe/Amsterdam"), abbreviated (e.g. "EST") or an HH:mm differential (e.g. "-05:00"). +example: png +File extension. +This should allow easy filtering by file extensions. -- -*`event.created`*:: +*`file.gid`*:: + -- -type: date - -event.created contains the date when the event was created. -This timestamp is distinct from @timestamp in that @timestamp contains the processed timestamp. For logs these two timestamps can be different as the timestamp in the log line and when the event is read for example by Filebeat are not identical. `@timestamp` must contain the timestamp extracted from the log line, event.created when the log line is read. The same could apply to package capturing where @timestamp contains the timestamp extracted from the network package and event.created when the event was created. -In case the two timestamps are identical, @timestamp should be used. +type: keyword +Primary group ID (GID) of the file. -- -*`event.start`*:: +*`file.group`*:: + -- -type: date +type: keyword -event.start contains the date when the event started or when the activity was first observed. +Primary group name of the file. +-- +*`file.inode`*:: ++ -- +type: keyword -*`event.end`*:: +Inode representing the file in the filesystem. + +-- + +*`file.mode`*:: + -- -type: date +type: keyword -event.end contains the date when the event ended or when the activity was last observed. +example: 416 +Mode of the file in octal representation. -- -*`event.risk_score`*:: +*`file.mtime`*:: + -- -type: float - -Risk score or priority of the event (e.g. security solutions). Use your system's original value here. +type: date +Last time file content was modified. -- -*`event.risk_score_norm`*:: +*`file.owner`*:: + -- -type: float - -Normalized risk score or priority of the event, on a scale of 0 to 100. -This is mainly useful if you use more than one system that assigns risk scores, and you want to see a normalized value across all systems. +type: keyword +File owner's username. -- -[float] -== file fields - -A file is defined as a set of information that has been created on, or has existed on a filesystem. File objects can be associated with host events, network events, and/or file events (e.g., those produced by File Integrity Monitoring [FIM] products or services). File fields provide details about the affected file associated with the event or metric. - - - *`file.path`*:: + -- @@ -3880,25 +4014,21 @@ Path to the file. -- -*`file.target_path`*:: +*`file.size`*:: + -- -type: keyword +type: long -Target path for symlinks. +File size in bytes (field is only added when `type` is `file`). -- -*`file.extension`*:: +*`file.target_path`*:: + -- type: keyword -example: png - -File extension. -This should allow easy filtering by file extensions. - +Target path for symlinks. -- @@ -3911,98 +4041,109 @@ File type (file, dir, or symlink). -- -*`file.device`*:: +*`file.uid`*:: + -- type: keyword -Device that is the source of the file. +The user ID (UID) or security identifier (SID) of the file owner. -- -*`file.inode`*:: -+ --- -type: keyword +[float] +== geo fields -Inode representing the file in the filesystem. +Geo fields can carry data about a specific location related to an event. +This geolocation information can be derived from techniques such as Geo IP, or be user-supplied. --- -*`file.uid`*:: +*`geo.city_name`*:: + -- type: keyword -The user ID (UID) or security identifier (SID) of the file owner. +example: Montreal +City name. -- -*`file.owner`*:: +*`geo.continent_name`*:: + -- type: keyword -File owner's username. +example: North America + +Name of the continent. -- -*`file.gid`*:: +*`geo.country_iso_code`*:: + -- type: keyword -Primary group ID (GID) of the file. +example: CA + +Country ISO code. -- -*`file.group`*:: +*`geo.country_name`*:: + -- type: keyword -Primary group name of the file. +example: Canada + +Country name. -- -*`file.mode`*:: +*`geo.location`*:: + -- -type: keyword +type: geo_point -example: 416 +example: { "lon": -73.614830, "lat": 45.505918 } -Mode of the file in octal representation. +Longitude and latitude. -- -*`file.size`*:: +*`geo.name`*:: + -- -type: long +type: keyword -format: bytes +example: boston-dc -File size in bytes (field is only added when `type` is `file`). +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`file.mtime`*:: +*`geo.region_iso_code`*:: + -- -type: date +type: keyword -Last time file content was modified. +example: CA-QC + +Region ISO code. -- -*`file.ctime`*:: +*`geo.region_name`*:: + -- -type: date +type: keyword -Last time file metadata changed. +example: Quebec + +Region name. -- @@ -4012,7 +4153,6 @@ Last time file metadata changed. The group fields are meant to represent groups that are relevant to the event. - *`group.id`*:: + -- @@ -4020,7 +4160,6 @@ type: keyword Unique identifier for the group on the system/platform. - -- *`group.name`*:: @@ -4030,133 +4169,162 @@ type: keyword Name of the group. - -- [float] == host fields -A host is defined as a general computing instance. ECS host.* fields should be populated with details about the host on which the event happened, or on which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes. - +A host is defined as a general computing instance. +ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes. -*`host.hostname`*:: +*`host.architecture`*:: + -- type: keyword -Hostname of the host. -It normally contains what the `hostname` command returns on the host machine. +example: x86_64 +Operating system architecture. -- -*`host.name`*:: +*`host.geo.city_name`*:: + -- type: keyword -Name of the host. -It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. +example: Montreal +City name. -- -*`host.id`*:: +*`host.geo.continent_name`*:: + -- type: keyword -Unique host id. -As hostname is not always unique, use values that are meaningful in your environment. -Example: The current usage of `beat.name`. +example: North America +Name of the continent. -- -*`host.ip`*:: +*`host.geo.country_iso_code`*:: + -- -type: ip +type: keyword -Host ip address. +example: CA +Country ISO code. -- -*`host.mac`*:: +*`host.geo.country_name`*:: + -- type: keyword -Host mac address. +example: Canada +Country name. -- -*`host.type`*:: +*`host.geo.location`*:: + -- -type: keyword +type: geo_point -Type of host. -For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. +example: { "lon": -73.614830, "lat": 45.505918 } +Longitude and latitude. -- -*`host.architecture`*:: +*`host.geo.name`*:: + -- type: keyword -example: x86_64 - -Operating system architecture. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -[float] -== os fields +*`host.geo.region_iso_code`*:: ++ +-- +type: keyword -The OS fields contain information about the operating system. +example: CA-QC +Region ISO code. +-- -*`host.os.platform`*:: +*`host.geo.region_name`*:: + -- type: keyword -example: darwin +example: Quebec -Operating system platform (such centos, ubuntu, windows). +Region name. + +-- +*`host.hostname`*:: ++ +-- +type: keyword + +Hostname of the host. +It normally contains what the `hostname` command returns on the host machine. -- -*`host.os.name`*:: +*`host.id`*:: + -- type: keyword -example: Mac OS X +Unique host id. +As hostname is not always unique, use values that are meaningful in your environment. +Example: The current usage of `beat.name`. -Operating system name, without the version. +-- + +*`host.ip`*:: ++ +-- +type: ip +Host ip address. -- -*`host.os.full`*:: +*`host.mac`*:: + -- type: keyword -example: Mac OS Mojave +Host mac address. -Operating system name, including the version or code name. +-- + +*`host.name`*:: ++ +-- +type: keyword +Name of the host. +It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. -- @@ -4169,18 +4337,16 @@ example: debian OS family (such as redhat, debian, freebsd, windows). - -- -*`host.os.version`*:: +*`host.os.full`*:: + -- type: keyword -example: 10.14.1 - -Operating system version as a raw string. +example: Mac OS Mojave +Operating system name, including the version or code name. -- @@ -4193,131 +4359,133 @@ example: 4.4.0-112-generic Operating system kernel version as a raw string. - -- -[float] -== geo fields +*`host.os.name`*:: ++ +-- +type: keyword -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. +example: Mac OS X +Operating system name, without the version. +-- -*`host.geo.location`*:: +*`host.os.platform`*:: + -- -type: geo_point - -example: { "lon": -73.614830, "lat": 45.505918 } +type: keyword -Longitude and latitude. +example: darwin +Operating system platform (such centos, ubuntu, windows). -- -*`host.geo.continent_name`*:: +*`host.os.version`*:: + -- type: keyword -example: North America - -Name of the continent. +example: 10.14.1 +Operating system version as a raw string. -- -*`host.geo.country_name`*:: +*`host.type`*:: + -- type: keyword -example: Canada +Type of host. +For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. -Country name. +-- + +*`host.user.email`*:: ++ +-- +type: keyword +User email address. -- -*`host.geo.region_name`*:: +*`host.user.full_name`*:: + -- type: keyword -example: Quebec - -Region name. +example: Albert Einstein +User's full name, if available. -- -*`host.geo.city_name`*:: +*`host.user.group.id`*:: + -- type: keyword -example: Montreal +Unique identifier for the group on the system/platform. -City name. +-- + +*`host.user.group.name`*:: ++ +-- +type: keyword +Name of the group. -- -*`host.geo.country_iso_code`*:: +*`host.user.hash`*:: + -- type: keyword -example: CA - -Country ISO code. - +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -- -*`host.geo.region_iso_code`*:: +*`host.user.id`*:: + -- type: keyword -example: CA-QC - -Region ISO code. - +One or multiple unique identifiers of the user. -- -*`host.geo.name`*:: +*`host.user.name`*:: + -- type: keyword -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +example: albert +Short name or login of the user. -- [float] == http fields -Fields related to HTTP activity. - +Fields related to HTTP activity. Use the `url` field set to store the url of the request. -*`http.request.method`*:: +*`http.request.body.bytes`*:: + -- -type: keyword - -example: get, post, put +type: long -Http request method. -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. +example: 887 +Size in bytes of the request body. -- @@ -4328,84 +4496,63 @@ type: keyword example: Hello world -The full http request body. - - --- - -*`http.request.referrer`*:: -+ --- -type: keyword - -example: https://blog.example.com/ - -Referrer for this HTTP request. - +The full HTTP request body. -- -*`http.response.status_code`*:: +*`http.request.bytes`*:: + -- type: long -example: 404 - -Http response status code. +example: 1437 +Total size in bytes of the request (body and headers). -- -*`http.response.body.content`*:: +*`http.request.method`*:: + -- type: keyword -example: Hello world - -The full http response body. +example: get, post, put +HTTP request method. +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". -- -*`http.version`*:: +*`http.request.referrer`*:: + -- type: keyword -example: 1.1 - -Http version. +example: https://blog.example.com/ +Referrer for this HTTP request. -- -*`http.request.bytes`*:: +*`http.response.body.bytes`*:: + -- type: long -example: 1437 - -format: bytes - -Total size in bytes of the request (body and headers). +example: 887 +Size in bytes of the response body. -- -*`http.request.body.bytes`*:: +*`http.response.body.content`*:: + -- -type: long - -example: 887 - -format: bytes +type: keyword -Size in bytes of the request body. +example: Hello world +The full HTTP response body. -- @@ -4416,24 +4563,29 @@ type: long example: 1437 -format: bytes - Total size in bytes of the response (body and headers). - -- -*`http.response.body.bytes`*:: +*`http.response.status_code`*:: + -- type: long -example: 887 +example: 404 -format: bytes +HTTP response status code. -Size in bytes of the response body. +-- + +*`http.version`*:: ++ +-- +type: keyword + +example: 1.1 +HTTP version. -- @@ -4443,17 +4595,15 @@ Size in bytes of the response body. Fields which are specific to log events. - *`log.level`*:: + -- type: keyword -example: ERR - -Log level of the log event. -Some examples are `WARN`, `ERR`, `INFO`. +example: err +Original log level of the log event. +Some examples are `warn`, `error`, `i`. -- @@ -4464,96 +4614,52 @@ type: keyword example: Sep 19 08:26:10 localhost My log - This is the original log message and contains the full log message before splitting it up in multiple parts. In contrast to the `message` field which can contain an extracted part of the log message, this field contains the original, full log message. It can have already some modifications applied like encoding or new lines removed to clean up the log message. This field is not indexed and doc_values are disabled so it can't be queried but the value can be retrieved from `_source`. - -Field is not indexed. - -- [float] == network fields -The network is defined as the communication path over which a host or network event happens. The network.* fields should be populated with details about the network activity associated with an event. - - - -*`network.name`*:: -+ --- -type: keyword - -example: Guest Wifi - -Name given by operators to sections of their network. - - --- - -*`network.type`*:: -+ --- -type: keyword - -example: ipv4 - -In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. - - --- - -*`network.iana_number`*:: -+ --- -type: keyword - -example: 6 - -IANA Protocol Number (https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml). Standardized list of protocols. This aligns well with NetFlow and sFlow related logs which use the IANA Protocol Number. - +The network is defined as the communication path over which a host or network event happens. +The network.* fields should be populated with details about the network activity associated with an event. --- -*`network.transport`*:: +*`network.application`*:: + -- type: keyword -example: tcp - -Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. +example: aim +A name given to an application level protocol. This can be arbitrarily assigned for things like microservices, but also apply to things like skype, icq, facebook, twitter. This would be used in situations where the vendor or service can be decoded such as from the source/dest IP owners, ports, or wire format. +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". -- -*`network.application`*:: +*`network.bytes`*:: + -- -type: keyword - -example: aim +type: long -A name given to an application. This can be arbitrarily assigned for things like microservices, but also apply to things like skype, icq, facebook, twitter. This would be used in situations where the vendor or service can be decoded such as from the source/dest IP owners, ports, or wire format. -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. +example: 368 +Total bytes transferred in both directions. +If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. -- -*`network.protocol`*:: +*`network.community_id`*:: + -- type: keyword -example: http - -L7 Network protocol name. ex. http, lumberjack, transport protocol. -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. +example: 1:hO+sN4H+MG5MY/8hIrXPqc4ZQz0= +A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. +Learn more at https://github.com/corelight/community-id-spec. -- @@ -4575,7 +4681,6 @@ Recommended values are: When mapping events from a host-based monitoring context, populate this field from the host's point of view. When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of your network perimeter. - -- *`network.forwarded_ip`*:: @@ -4587,34 +4692,27 @@ example: 192.1.1.2 Host IP address when the source IP address is the proxy. - -- -*`network.community_id`*:: +*`network.iana_number`*:: + -- type: keyword -example: 1:hO+sN4H+MG5MY/8hIrXPqc4ZQz0= - -A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. -Learn more at https://github.com/corelight/community-id-spec. +example: 6 +IANA Protocol Number (https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml). Standardized list of protocols. This aligns well with NetFlow and sFlow related logs which use the IANA Protocol Number. -- -*`network.bytes`*:: +*`network.name`*:: + -- -type: long - -example: 368 - -format: bytes +type: keyword -Total bytes transferred in both directions. -If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. +example: Guest Wifi +Name given by operators to sections of their network. -- @@ -4628,129 +4726,165 @@ example: 24 Total packets transferred in both directions. If `source.packets` and `destination.packets` are known, `network.packets` is their sum. - -- -[float] -== observer fields +*`network.protocol`*:: ++ +-- +type: keyword -An observer is defined as a special network, security, or application device used to detect, observe, or create network, security, or application-related events and metrics. This could be a custom hardware appliance or a server that has been configured to run special network, security, or application software. Examples include firewalls, intrusion detection/prevention systems, network monitoring sensors, web application firewalls, data loss prevention systems, and APM servers. The observer.* fields shall be populated with details of the system, if any, that detects, observes and/or creates a network, security, or application event or metric. Message queues and ETL components used in processing events or metrics are not considered observers in ECS. +example: http +L7 Network protocol name. ex. http, lumberjack, transport protocol. +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". +-- -*`observer.mac`*:: +*`network.transport`*:: + -- type: keyword -MAC address of the observer +example: tcp +Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". -- -*`observer.ip`*:: +*`network.type`*:: + -- -type: ip +type: keyword -IP address of the observer. +example: ipv4 +In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". -- -*`observer.hostname`*:: +[float] +== observer fields + +An observer is defined as a special network, security, or application device used to detect, observe, or create network, security, or application-related events and metrics. +This could be a custom hardware appliance or a server that has been configured to run special network, security, or application software. Examples include firewalls, intrusion detection/prevention systems, network monitoring sensors, web application firewalls, data loss prevention systems, and APM servers. The observer.* fields shall be populated with details of the system, if any, that detects, observes and/or creates a network, security, or application event or metric. Message queues and ETL components used in processing events or metrics are not considered observers in ECS. + + +*`observer.geo.city_name`*:: + -- type: keyword -Hostname of the observer. +example: Montreal +City name. -- -*`observer.vendor`*:: +*`observer.geo.continent_name`*:: + -- type: keyword -observer vendor information. +example: North America +Name of the continent. -- -*`observer.version`*:: +*`observer.geo.country_iso_code`*:: + -- type: keyword -Observer version. +example: CA +Country ISO code. -- -*`observer.serial_number`*:: +*`observer.geo.country_name`*:: + -- type: keyword -Observer serial number. +example: Canada +Country name. -- -*`observer.type`*:: +*`observer.geo.location`*:: + -- -type: keyword +type: geo_point -example: firewall +example: { "lon": -73.614830, "lat": 45.505918 } -The type of the observer the data is coming from. -There is no predefined list of observer types. Some examples are `forwarder`, `firewall`, `ids`, `ips`, `proxy`, `poller`, `sensor`, `APM server`. +Longitude and latitude. +-- +*`observer.geo.name`*:: ++ -- +type: keyword -[float] -== os fields +example: boston-dc -The OS fields contain information about the operating system. +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. + +-- + +*`observer.geo.region_iso_code`*:: ++ +-- +type: keyword +example: CA-QC + +Region ISO code. +-- -*`observer.os.platform`*:: +*`observer.geo.region_name`*:: + -- type: keyword -example: darwin - -Operating system platform (such centos, ubuntu, windows). +example: Quebec +Region name. -- -*`observer.os.name`*:: +*`observer.hostname`*:: + -- type: keyword -example: Mac OS X +Hostname of the observer. -Operating system name, without the version. +-- + +*`observer.ip`*:: ++ +-- +type: ip +IP address of the observer. -- -*`observer.os.full`*:: +*`observer.mac`*:: + -- type: keyword -example: Mac OS Mojave - -Operating system name, including the version or code name. - +MAC address of the observer -- @@ -4763,18 +4897,16 @@ example: debian OS family (such as redhat, debian, freebsd, windows). - -- -*`observer.os.version`*:: +*`observer.os.full`*:: + -- type: keyword -example: 10.14.1 - -Operating system version as a raw string. +example: Mac OS Mojave +Operating system name, including the version or code name. -- @@ -4787,138 +4919,102 @@ example: 4.4.0-112-generic Operating system kernel version as a raw string. - --- - -[float] -== geo fields - -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. - - - -*`observer.geo.location`*:: -+ --- -type: geo_point - -example: { "lon": -73.614830, "lat": 45.505918 } - -Longitude and latitude. - - -- -*`observer.geo.continent_name`*:: +*`observer.os.name`*:: + -- type: keyword -example: North America - -Name of the continent. +example: Mac OS X +Operating system name, without the version. -- -*`observer.geo.country_name`*:: +*`observer.os.platform`*:: + -- type: keyword -example: Canada - -Country name. +example: darwin +Operating system platform (such centos, ubuntu, windows). -- -*`observer.geo.region_name`*:: +*`observer.os.version`*:: + -- type: keyword -example: Quebec - -Region name. +example: 10.14.1 +Operating system version as a raw string. -- -*`observer.geo.city_name`*:: +*`observer.serial_number`*:: + -- type: keyword -example: Montreal - -City name. - +Observer serial number. -- -*`observer.geo.country_iso_code`*:: +*`observer.type`*:: + -- type: keyword -example: CA - -Country ISO code. +example: firewall +The type of the observer the data is coming from. +There is no predefined list of observer types. Some examples are `forwarder`, `firewall`, `ids`, `ips`, `proxy`, `poller`, `sensor`, `APM server`. -- -*`observer.geo.region_iso_code`*:: +*`observer.vendor`*:: + -- type: keyword -example: CA-QC - -Region ISO code. - +observer vendor information. -- -*`observer.geo.name`*:: +*`observer.version`*:: + -- type: keyword -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. - +Observer version. -- [float] == organization fields -The organization fields enrich data with information about the company or entity the data is associated with. These fields help you arrange or filter data stored in an index by one or multiple organizations. - +The organization fields enrich data with information about the company or entity the data is associated with. +These fields help you arrange or filter data stored in an index by one or multiple organizations. -*`organization.name`*:: +*`organization.id`*:: + -- type: keyword -Organization name. - +Unique identifier for the organization. -- -*`organization.id`*:: +*`organization.name`*:: + -- type: keyword -Unique identifier for the organization. - +Organization name. -- @@ -4928,93 +5024,99 @@ Unique identifier for the organization. The OS fields contain information about the operating system. - -*`os.platform`*:: +*`os.family`*:: + -- type: keyword -example: darwin - -Operating system platform (such centos, ubuntu, windows). +example: debian +OS family (such as redhat, debian, freebsd, windows). -- -*`os.name`*:: +*`os.full`*:: + -- type: keyword -example: Mac OS X - -Operating system name, without the version. +example: Mac OS Mojave +Operating system name, including the version or code name. -- -*`os.full`*:: +*`os.kernel`*:: + -- type: keyword -example: Mac OS Mojave - -Operating system name, including the version or code name. +example: 4.4.0-112-generic +Operating system kernel version as a raw string. -- -*`os.family`*:: +*`os.name`*:: + -- type: keyword -example: debian - -OS family (such as redhat, debian, freebsd, windows). +example: Mac OS X +Operating system name, without the version. -- -*`os.version`*:: +*`os.platform`*:: + -- type: keyword -example: 10.14.1 - -Operating system version as a raw string. +example: darwin +Operating system platform (such centos, ubuntu, windows). -- -*`os.kernel`*:: +*`os.version`*:: + -- type: keyword -example: 4.4.0-112-generic - -Operating system kernel version as a raw string. +example: 10.14.1 +Operating system version as a raw string. -- [float] == process fields -These fields contain information about a process. These fields can help you correlate metrics information with a process id/name from a log message. The `process.pid` often stays in the metric itself and is copied to the global field for correlation. +These fields contain information about a process. +These fields can help you correlate metrics information with a process id/name from a log message. The `process.pid` often stays in the metric itself and is copied to the global field for correlation. + +*`process.args`*:: ++ +-- +type: keyword +example: ['ssh', '-l', 'user', '10.0.0.16'] -*`process.pid`*:: +Array of process arguments. +May be filtered to protect sensitive information. + +-- + +*`process.executable`*:: + -- -type: long +type: keyword -Process id. +example: /usr/bin/ssh +Absolute path to the process executable. -- @@ -5028,6 +5130,14 @@ example: ssh Process name. Sometimes called program name or similar. +-- + +*`process.pid`*:: ++ +-- +type: long + +Process id. -- @@ -5038,31 +5148,27 @@ type: long Process parent id. - -- -*`process.args`*:: +*`process.start`*:: + -- -type: keyword - -example: ['ssh', '-l', 'user', '10.0.0.16'] +type: date -Process arguments. -May be filtered to protect sensitive information. +example: 2016-05-23T08:05:34.853Z +The time the process started. -- -*`process.executable`*:: +*`process.thread.id`*:: + -- -type: keyword - -example: /usr/bin/ssh +type: long -Absolute path to the process executable. +example: 4242 +Thread ID. -- @@ -5074,133 +5180,180 @@ type: keyword Process title. The proctitle, some times the same as process name. Can also be different: for example a browser setting its title to the web page currently opened. - -- -*`process.thread.id`*:: +*`process.working_directory`*:: + -- -type: long +type: keyword -example: 4242 +example: /home/alice -Thread ID. +The working directory of the process. + +-- + +[float] +== related fields + +This field set is meant to facilitate pivoting around a piece of data. +Some pieces of information can be seen in many places in an ECS event. To facilitate searching for them, store an array of all seen values to their corresponding field in `related.`. +A concrete example is IP addresses, which can be under host, observer, source, destination, client, server, and network.forwarded_ip. If you append all IPs to `related.ip`, you can then search for a given IP trivially, no matter where it appeared, by querying `related.ip:a.b.c.d`. +*`related.ip`*:: ++ -- +type: ip -*`process.start`*:: +All of the IPs seen on your event. + +-- + +[float] +== server fields + +A Server is defined as the responder in a network connection for events regarding sessions, connections, or bidirectional flow records. +For TCP events, the server is the receiver of the initial SYN packet(s) of the TCP connection. For other protocols, the server is generally the responder in the network transaction. Some systems actually use the term "responder" to refer the server in TCP connections. The server fields describe details about the system acting as the server in the network event. Server fields are usually populated in conjunction with client fields. Server fields are generally not populated for packet-level events. +Client / server representations can add semantic context to an exchange, which is helpful to visualize the data in certain situations. If your context falls in that category, you should still ensure that source and destination are filled appropriately. + + +*`server.address`*:: + -- -type: date +type: keyword -example: 2016-05-23T08:05:34.853Z +Some event server addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. +Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. -The time the process started. +-- +*`server.bytes`*:: ++ +-- +type: long + +example: 184 + +Bytes sent from the server to the client. -- -*`process.working_directory`*:: +*`server.domain`*:: + -- type: keyword -example: /home/alice - -The working directory of the process. +Server domain. +-- +*`server.geo.city_name`*:: ++ -- +type: keyword -[float] -== related fields - -This field set is meant to facilitate pivoting around a piece of data. Some pieces of information can be seen in many places in ECS. To facilitate searching for them, append values to their corresponding field in `related.`. A concrete example is IP addresses, which can be under host, observer, source, destination, client, server, and network.forwarded_ip. If you append all IPs to `related.ip`, you can then search for a given IP trivially, no matter where it appeared, by querying `related.ip:a.b.c.d`. +example: Montreal +City name. +-- -*`related.ip`*:: +*`server.geo.continent_name`*:: + -- -type: ip +type: keyword -All of the IPs seen on your event. +example: North America +Name of the continent. -- -[float] -== server fields +*`server.geo.country_iso_code`*:: ++ +-- +type: keyword -A Server is defined as the responder in a network connection for events regarding sessions, connections, or bidirectional flow records. For TCP events, the server is the receiver of the initial SYN packet(s) of the TCP connection. For other protocols, the server is generally the responder in the network transaction. Some systems actually use the term "responder" to refer the server in TCP connections. The server fields describe details about the system acting as the server in the network event. Server fields are usually populated in conjunction with client fields. Server fields are generally not populated for packet-level events. -Client / server representations can add semantic context to an exchange, which is helpful to visualize the data in certain situations. If your context falls in that category, you should still ensure that source and destination are filled appropriately. +example: CA +Country ISO code. +-- -*`server.address`*:: +*`server.geo.country_name`*:: + -- type: keyword -Some event server addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. -Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. +example: Canada +Country name. -- -*`server.ip`*:: +*`server.geo.location`*:: + -- -type: ip +type: geo_point -IP address of the server. -Can be one or multiple IPv4 or IPv6 addresses. +example: { "lon": -73.614830, "lat": 45.505918 } +Longitude and latitude. -- -*`server.port`*:: +*`server.geo.name`*:: + -- -type: long +type: keyword -Port of the server. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`server.mac`*:: +*`server.geo.region_iso_code`*:: + -- type: keyword -MAC address of the server. +example: CA-QC +Region ISO code. -- -*`server.domain`*:: +*`server.geo.region_name`*:: + -- type: keyword -Server domain. +example: Quebec +Region name. -- -*`server.bytes`*:: +*`server.ip`*:: + -- -type: long +type: ip -example: 184 +IP address of the server. +Can be one or multiple IPv4 or IPv6 addresses. -format: bytes +-- -Bytes sent from the server to the client. +*`server.mac`*:: ++ +-- +type: keyword +MAC address of the server. -- @@ -5213,120 +5366,103 @@ example: 12 Packets sent from the server to the client. - -- -[float] -== geo fields - -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. - - - -*`server.geo.location`*:: +*`server.port`*:: + -- -type: geo_point - -example: { "lon": -73.614830, "lat": 45.505918 } - -Longitude and latitude. +type: long +Port of the server. -- -*`server.geo.continent_name`*:: +*`server.user.email`*:: + -- type: keyword -example: North America - -Name of the continent. - +User email address. -- -*`server.geo.country_name`*:: +*`server.user.full_name`*:: + -- type: keyword -example: Canada - -Country name. +example: Albert Einstein +User's full name, if available. -- -*`server.geo.region_name`*:: +*`server.user.group.id`*:: + -- type: keyword -example: Quebec - -Region name. - +Unique identifier for the group on the system/platform. -- -*`server.geo.city_name`*:: +*`server.user.group.name`*:: + -- type: keyword -example: Montreal - -City name. - +Name of the group. -- -*`server.geo.country_iso_code`*:: +*`server.user.hash`*:: + -- type: keyword -example: CA - -Country ISO code. - +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -- -*`server.geo.region_iso_code`*:: +*`server.user.id`*:: + -- type: keyword -example: CA-QC - -Region ISO code. - +One or multiple unique identifiers of the user. -- -*`server.geo.name`*:: +*`server.user.name`*:: + -- type: keyword -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +example: albert +Short name or login of the user. -- [float] == service fields -The service fields describe the service for or from which the data was collected. These fields help you find and correlate logs for a specific service and version. +The service fields describe the service for or from which the data was collected. +These fields help you find and correlate logs for a specific service and version. + + +*`service.ephemeral_id`*:: ++ +-- +type: keyword + +example: 8a4f500f +Ephemeral identifier of this service (if one exists). +This id normally changes across restarts, but `service.id` does not. +-- *`service.id`*:: + @@ -5339,7 +5475,6 @@ Unique identifier of the running service. This id should uniquely identify this service. This makes it possible to correlate logs and metrics for one specific service. Example: If you are experiencing issues with one redis instance, you can filter on that id to see metrics and logs for that single instance. - -- *`service.name`*:: @@ -5354,6 +5489,14 @@ The name of the service is normally user given. This allows if two instances of Also it allows for distributed services that run on multiple hosts to correlate the related instances based on the name. In the case of Elasticsearch the service.name could contain the cluster name. For Beats the service.name is by default a copy of the `service.type` field if no name is specified. +-- + +*`service.state`*:: ++ +-- +type: keyword + +Current state of the service. -- @@ -5368,115 +5511,163 @@ The type of the service data is collected from. The type can be used to group and correlate logs and metrics from one service type. Example: If logs or metrics are collected from Elasticsearch, `service.type` would be `elasticsearch`. - -- -*`service.state`*:: +*`service.version`*:: + -- type: keyword -Current state of the service. +example: 3.2.4 +Version of the service the data was collected from. +This allows to look at a data set only for a specific version of a service. -- -*`service.version`*:: +[float] +== source fields + +Source fields describe details about the source of a packet/event. +Source fields are usually populated in conjunction with destination fields. + + +*`source.address`*:: + -- type: keyword -example: 3.2.4 +Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. +Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. -Version of the service the data was collected from. -This allows to look at a data set only for a specific version of a service. +-- + +*`source.bytes`*:: ++ +-- +type: long + +example: 184 +Bytes sent from the source to the destination. -- -*`service.ephemeral_id`*:: +*`source.domain`*:: + -- type: keyword -example: 8a4f500f +Source domain. -Ephemeral identifier of this service (if one exists). -This id normally changes across restarts, but `service.id` does not. +-- + +*`source.geo.city_name`*:: ++ +-- +type: keyword + +example: Montreal +City name. -- -[float] -== source fields +*`source.geo.continent_name`*:: ++ +-- +type: keyword -Source fields describe details about the source of a packet/event. Source fields are usually populated in conjunction with destination fields. +example: North America +Name of the continent. +-- -*`source.address`*:: +*`source.geo.country_iso_code`*:: + -- type: keyword -Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. -Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. +example: CA +Country ISO code. -- -*`source.ip`*:: +*`source.geo.country_name`*:: + -- -type: ip +type: keyword -IP address of the source. -Can be one or multiple IPv4 or IPv6 addresses. +example: Canada +Country name. -- -*`source.port`*:: +*`source.geo.location`*:: + -- -type: long +type: geo_point -Port of the source. +example: { "lon": -73.614830, "lat": 45.505918 } +Longitude and latitude. -- -*`source.mac`*:: +*`source.geo.name`*:: + -- type: keyword -MAC address of the source. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`source.domain`*:: +*`source.geo.region_iso_code`*:: + -- type: keyword -Source domain. +example: CA-QC +Region ISO code. -- -*`source.bytes`*:: +*`source.geo.region_name`*:: + -- -type: long +type: keyword -example: 184 +example: Quebec + +Region name. + +-- + +*`source.ip`*:: ++ +-- +type: ip + +IP address of the source. +Can be one or multiple IPv4 or IPv6 addresses. -format: bytes +-- -Bytes sent from the source to the destination. +*`source.mac`*:: ++ +-- +type: keyword +MAC address of the source. -- @@ -5489,133 +5680,110 @@ example: 12 Packets sent from the source to the destination. - -- -[float] -== geo fields - -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. - - - -*`source.geo.location`*:: +*`source.port`*:: + -- -type: geo_point - -example: { "lon": -73.614830, "lat": 45.505918 } - -Longitude and latitude. +type: long +Port of the source. -- -*`source.geo.continent_name`*:: +*`source.user.email`*:: + -- type: keyword -example: North America - -Name of the continent. - +User email address. -- -*`source.geo.country_name`*:: +*`source.user.full_name`*:: + -- type: keyword -example: Canada - -Country name. +example: Albert Einstein +User's full name, if available. -- -*`source.geo.region_name`*:: +*`source.user.group.id`*:: + -- type: keyword -example: Quebec - -Region name. - +Unique identifier for the group on the system/platform. -- -*`source.geo.city_name`*:: +*`source.user.group.name`*:: + -- type: keyword -example: Montreal - -City name. - +Name of the group. -- -*`source.geo.country_iso_code`*:: +*`source.user.hash`*:: + -- type: keyword -example: CA - -Country ISO code. - +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -- -*`source.geo.region_iso_code`*:: +*`source.user.id`*:: + -- type: keyword -example: CA-QC - -Region ISO code. - +One or multiple unique identifiers of the user. -- -*`source.geo.name`*:: +*`source.user.name`*:: + -- type: keyword -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +example: albert +Short name or login of the user. -- [float] == url fields -URL fields provide a complete URL, with scheme, host, and path. +URL fields provide support for complete or partial URLs, and supports the breaking down into scheme, domain, path, and so on. - -*`url.original`*:: +*`url.domain`*:: + -- type: keyword -example: https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch +example: www.elastic.co +Domain of the url, such as "www.elastic.co". +In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the `domain` field. -Unmodified original url as seen in the event source. -Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path. -This field is meant to represent the URL as it was observed, complete or not. +-- + +*`url.fragment`*:: ++ +-- +type: keyword +Portion of the url after the `#`, such as "top". +The `#` is not part of the fragment. -- @@ -5628,54 +5796,47 @@ example: https://www.elastic.co:443/search?q=elasticsearch#top If full URLs are important to your use case, they should be stored in `url.full`, whether this field is reconstructed or present in the event source. - -- -*`url.scheme`*:: +*`url.original`*:: + -- type: keyword -example: https - -Scheme of the request, such as "https". -Note: The `:` is not part of the scheme. +example: https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch +Unmodified original url as seen in the event source. +Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path. +This field is meant to represent the URL as it was observed, complete or not. -- -*`url.domain`*:: +*`url.password`*:: + -- type: keyword -example: www.elastic.co - -Domain of the request, such as "www.elastic.co". -In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the `domain` field. - +Password of the request. -- -*`url.port`*:: +*`url.path`*:: + -- -type: integer - -example: 443 - -Port of the request, such as 443. +type: keyword +Path of the request, such as "/search". -- -*`url.path`*:: +*`url.port`*:: + -- -type: keyword +type: long -Path of the request, such as "/search". +example: 443 +Port of the request, such as 443. -- @@ -5687,17 +5848,17 @@ type: keyword The query field describes the query string of the request, such as "q=elasticsearch". The `?` is excluded from the query string. If a URL contains no `?`, there is no query field. If there is a `?` but no query, the query field exists with an empty string. The `exists` query can be used to differentiate between the two cases. - -- -*`url.fragment`*:: +*`url.scheme`*:: + -- type: keyword -Portion of the url after the `#`, such as "top". -The `#` is not part of the fragment. +example: https +Scheme of the request, such as "https". +Note: The `:` is not part of the scheme. -- @@ -5708,67 +5869,50 @@ type: keyword Username of the request. - --- - -*`url.password`*:: -+ --- -type: keyword - -Password of the request. - - -- [float] == user fields -The user fields describe information about the user that is relevant to the event. Fields can have one entry or multiple entries. If a user has more than one id, provide an array that includes all of them. - +The user fields describe information about the user that is relevant to the event. +Fields can have one entry or multiple entries. If a user has more than one id, provide an array that includes all of them. -*`user.id`*:: +*`user.email`*:: + -- type: keyword -One or multiple unique identifiers of the user. - +User email address. -- -*`user.name`*:: +*`user.full_name`*:: + -- type: keyword -example: albert - -Short name or login of the user. +example: Albert Einstein +User's full name, if available. -- -*`user.full_name`*:: +*`user.group.id`*:: + -- type: keyword -example: Albert Einstein - -User's full name, if available. - +Unique identifier for the group on the system/platform. -- -*`user.email`*:: +*`user.group.name`*:: + -- type: keyword -User email address. - +Name of the group. -- @@ -5780,52 +5924,43 @@ type: keyword Unique user hash to correlate information for a user in anonymized form. Useful if `user.id` or `user.name` contain confidential information and cannot be used. - -- -[float] -== group fields - -The group fields are meant to represent groups that are relevant to the event. - - - -*`user.group.id`*:: +*`user.id`*:: + -- type: keyword -Unique identifier for the group on the system/platform. - +One or multiple unique identifiers of the user. -- -*`user.group.name`*:: +*`user.name`*:: + -- type: keyword -Name of the group. +example: albert +Short name or login of the user. -- [float] == user_agent fields -The user_agent fields normally come from a browser request. They often show up in web service logs coming from the parsed user agent string. +The user_agent fields normally come from a browser request. +They often show up in web service logs coming from the parsed user agent string. - -*`user_agent.original`*:: +*`user_agent.device.name`*:: + -- type: keyword -example: Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1 - -Unparsed version of the user_agent. +example: iPhone +Name of the device. -- @@ -5838,85 +5973,71 @@ example: Safari Name of the user agent. - -- -*`user_agent.version`*:: +*`user_agent.original`*:: + -- type: keyword -example: 12.0 - -Version of the user agent. +example: Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1 +Unparsed version of the user_agent. -- -*`user_agent.device.name`*:: +*`user_agent.os.family`*:: + -- type: keyword -example: iPhone - -Name of the device. +example: debian +OS family (such as redhat, debian, freebsd, windows). -- -[float] -== os fields - -The OS fields contain information about the operating system. - - - -*`user_agent.os.platform`*:: +*`user_agent.os.full`*:: + -- type: keyword -example: darwin - -Operating system platform (such centos, ubuntu, windows). +example: Mac OS Mojave +Operating system name, including the version or code name. -- -*`user_agent.os.name`*:: +*`user_agent.os.kernel`*:: + -- type: keyword -example: Mac OS X - -Operating system name, without the version. +example: 4.4.0-112-generic +Operating system kernel version as a raw string. -- -*`user_agent.os.full`*:: +*`user_agent.os.name`*:: + -- type: keyword -example: Mac OS Mojave - -Operating system name, including the version or code name. +example: Mac OS X +Operating system name, without the version. -- -*`user_agent.os.family`*:: +*`user_agent.os.platform`*:: + -- type: keyword -example: debian - -OS family (such as redhat, debian, freebsd, windows). +example: darwin +Operating system platform (such centos, ubuntu, windows). -- @@ -5929,28 +6050,16 @@ example: 10.14.1 Operating system version as a raw string. - --- - -*`user_agent.os.kernel`*:: -+ --- -type: keyword - -example: 4.4.0-112-generic - -Operating system kernel version as a raw string. - - -- -*`agent.hostname`*:: +*`user_agent.version`*:: + -- type: keyword -Hostname of the agent. +example: 12.0 +Version of the user agent. -- diff --git a/auditbeat/include/fields.go b/auditbeat/include/fields.go index 3192fda9562..29dfc726782 100644 --- a/auditbeat/include/fields.go +++ b/auditbeat/include/fields.go @@ -32,5 +32,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "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" + return "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" } diff --git a/filebeat/docs/fields.asciidoc b/filebeat/docs/fields.asciidoc index faa2d2a6458..65adc5cabd6 100644 --- a/filebeat/docs/fields.asciidoc +++ b/filebeat/docs/fields.asciidoc @@ -984,6 +984,15 @@ Contains common beat fields available in all event types. +*`agent.hostname`*:: ++ +-- +type: keyword + +Hostname of the agent. + +-- + *`beat.timezone`*:: + -- @@ -1166,8 +1175,7 @@ Image labels. [[exported-fields-ecs]] == ECS fields -ECS fields. - +ECS Fields. *`@timestamp`*:: @@ -1180,22 +1188,10 @@ example: 2016-05-23T08:05:34.853Z required: True Date/time when the event originated. -For log events this is the date/time when the event was generated, and not when it was read. +This is the date/time extracted from the event, typically representing when the event was generated by the source. +If the event source has no original timestamp, this value is typically populated by the first time the event was received by the pipeline. Required field for all events. - --- - -*`tags`*:: -+ --- -type: keyword - -example: ["production", "env2"] - -List of keywords used to tag each event. - - -- *`labels`*:: @@ -1205,11 +1201,10 @@ type: object example: {'application': 'foo-bar', 'env': 'production'} -Key/value pairs. +Custom key/value pairs. Can be used to add meta information to events. Should not contain nested objects. All values are stored as keyword. Example: `docker` and `k8s` labels. - -- *`message`*:: @@ -1219,28 +1214,51 @@ type: text example: Hello World -For log events the message field contains the log message. -In other use cases the message field can be used to concatenate different values which are then freely searchable. If multiple messages exist, they can be combined into one message. +For log events the message field contains the log message, optimized for viewing in a log viewer. +For structured logs without an original message field, other fields can be concatenated to form a human-readable summary of the event. +If multiple messages exist, they can be combined into one message. + +-- + +*`tags`*:: ++ +-- +type: keyword + +example: ["production", "env2"] +List of keywords used to tag each event. -- [float] == agent fields -The agent fields contain the data about the software entity, if any, that collects, detects, or observes events on a host, or takes measurements on a host. Examples include Beats. Agents may also run on observers. ECS agent.* fields shall be populated with details of the agent running on the host or observer where the event happened or the measurement was taken. +The agent fields contain the data about the software entity, if any, that collects, detects, or observes events on a host, or takes measurements on a host. +Examples include Beats. Agents may also run on observers. ECS agent.* fields shall be populated with details of the agent running on the host or observer where the event happened or the measurement was taken. - -*`agent.version`*:: +*`agent.ephemeral_id`*:: + -- type: keyword -example: 6.0.0-rc2 +example: 8a4f500f -Version of the agent. +Ephemeral identifier of this agent (if one exists). +This id normally changes across restarts, but `agent.id` does not. + +-- + +*`agent.id`*:: ++ +-- +type: keyword + +example: 8a4f500d +Unique identifier of this agent (if one exists). +Example: For Beats this would be beat.id. -- @@ -1251,11 +1269,10 @@ type: keyword example: foo -Name of the agent. +Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. If no name is given, the name is often left empty. - -- *`agent.type`*:: @@ -1268,43 +1285,27 @@ example: filebeat Type of the agent. The agent type stays always the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - --- - -*`agent.id`*:: -+ --- -type: keyword - -example: 8a4f500d - -Unique identifier of this agent (if one exists). -Example: For Beats this would be beat.id. - - -- -*`agent.ephemeral_id`*:: +*`agent.version`*:: + -- type: keyword -example: 8a4f500f - -Ephemeral identifier of this agent (if one exists). -This id normally changes across restarts, but `agent.id` does not. +example: 6.0.0-rc2 +Version of the agent. -- [float] == client fields -A client is defined as the initiator of a network connection for events regarding sessions, connections, or bidirectional flow records. For TCP events, the client is the initiator of the TCP connection that sends the SYN packet(s). For other protocols, the client is generally the initiator or requestor in the network transaction. Some systems use the term "originator" to refer the client in TCP connections. The client fields describe details about the system acting as the client in the network event. Client fields are usually populated in conjunction with server fields. Client fields are generally not populated for packet-level events. +A client is defined as the initiator of a network connection for events regarding sessions, connections, or bidirectional flow records. +For TCP events, the client is the initiator of the TCP connection that sends the SYN packet(s). For other protocols, the client is generally the initiator or requestor in the network transaction. Some systems use the term "originator" to refer the client in TCP connections. The client fields describe details about the system acting as the client in the network event. Client fields are usually populated in conjunction with server fields. Client fields are generally not populated for packet-level events. Client / server representations can add semantic context to an exchange, which is helpful to visualize the data in certain situations. If your context falls in that category, you should still ensure that source and destination are filled appropriately. - *`client.address`*:: + -- @@ -1313,83 +1314,72 @@ type: keyword Some event client addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. - -- -*`client.ip`*:: +*`client.bytes`*:: + -- -type: ip +type: long -IP address of the client. -Can be one or multiple IPv4 or IPv6 addresses. +example: 184 +Bytes sent from the client to the server. -- -*`client.port`*:: +*`client.domain`*:: + -- -type: long - -Port of the client. +type: keyword +Client domain. -- -*`client.mac`*:: +*`client.geo.city_name`*:: + -- type: keyword -MAC address of the client. +example: Montreal +City name. -- -*`client.domain`*:: +*`client.geo.continent_name`*:: + -- type: keyword -Client domain. +example: North America +Name of the continent. -- -*`client.bytes`*:: +*`client.geo.country_iso_code`*:: + -- -type: long - -example: 184 - -format: bytes +type: keyword -Bytes sent from the client to the server. +example: CA +Country ISO code. -- -*`client.packets`*:: +*`client.geo.country_name`*:: + -- -type: long - -example: 12 +type: keyword -Packets sent from the client to the server. +example: Canada +Country name. -- -[float] -== geo fields - -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. - - - *`client.geo.location`*:: + -- @@ -1399,30 +1389,29 @@ example: { "lon": -73.614830, "lat": 45.505918 } Longitude and latitude. - -- -*`client.geo.continent_name`*:: +*`client.geo.name`*:: + -- type: keyword -example: North America - -Name of the continent. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`client.geo.country_name`*:: +*`client.geo.region_iso_code`*:: + -- type: keyword -example: Canada - -Country name. +example: CA-QC +Region ISO code. -- @@ -1435,274 +1424,274 @@ example: Quebec Region name. - -- -*`client.geo.city_name`*:: +*`client.ip`*:: + -- -type: keyword - -example: Montreal - -City name. +type: ip +IP address of the client. +Can be one or multiple IPv4 or IPv6 addresses. -- -*`client.geo.country_iso_code`*:: +*`client.mac`*:: + -- type: keyword -example: CA - -Country ISO code. - +MAC address of the client. -- -*`client.geo.region_iso_code`*:: +*`client.packets`*:: + -- -type: keyword - -example: CA-QC +type: long -Region ISO code. +example: 12 +Packets sent from the client to the server. -- -*`client.geo.name`*:: +*`client.port`*:: + -- -type: keyword - -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +type: long +Port of the client. -- -[float] -== cloud fields - -Fields related to the cloud or infrastructure the events are coming from. - - - -*`cloud.provider`*:: +*`client.user.email`*:: + -- type: keyword -example: ec2 - -Name of the cloud provider. Example values are ec2, gce, or digitalocean. - +User email address. -- -*`cloud.availability_zone`*:: +*`client.user.full_name`*:: + -- type: keyword -example: us-east-1c - -Availability zone in which this host is running. +example: Albert Einstein +User's full name, if available. -- -*`cloud.region`*:: +*`client.user.group.id`*:: + -- type: keyword -example: us-east-1 - -Region in which this host is running. - +Unique identifier for the group on the system/platform. -- -*`cloud.instance.id`*:: +*`client.user.group.name`*:: + -- type: keyword -example: i-1234567890abcdef0 - -Instance ID of the host machine. - +Name of the group. -- -*`cloud.instance.name`*:: +*`client.user.hash`*:: + -- type: keyword -Instance name of the host machine. - +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -- -*`cloud.machine.type`*:: +*`client.user.id`*:: + -- type: keyword -example: t2.medium - -Machine type of the host machine. - +One or multiple unique identifiers of the user. -- -*`cloud.account.id`*:: +*`client.user.name`*:: + -- type: keyword -example: 666777888999 - -The cloud account or organization id used to identify different entities in a multi-tenant environment. -Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. +example: albert +Short name or login of the user. -- [float] -== container fields - -Container fields are used for meta information about the specific container that is the source of information. These fields help correlate data based containers from any runtime. +== cloud fields +Fields related to the cloud or infrastructure the events are coming from. -*`container.runtime`*:: +*`cloud.account.id`*:: + -- type: keyword -example: docker - -Runtime managing this container. +example: 666777888999 +The cloud account or organization id used to identify different entities in a multi-tenant environment. +Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. -- -*`container.id`*:: +*`cloud.availability_zone`*:: + -- type: keyword -Unique container id. +example: us-east-1c +Availability zone in which this host is running. -- -*`container.image.name`*:: +*`cloud.instance.id`*:: + -- type: keyword -Name of the image the container was built on. +example: i-1234567890abcdef0 +Instance ID of the host machine. -- -*`container.image.tag`*:: +*`cloud.instance.name`*:: + -- type: keyword -Container image tag. +Instance name of the host machine. +-- +*`cloud.machine.type`*:: ++ -- +type: keyword -*`container.name`*:: +example: t2.medium + +Machine type of the host machine. + +-- + +*`cloud.provider`*:: + -- type: keyword -Container name. +example: aws +Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. -- -*`container.labels`*:: +*`cloud.region`*:: + -- -type: object +type: keyword -Image labels. +example: us-east-1 +Region in which this host is running. -- [float] -== destination fields - -Destination fields describe details about the destination of a packet/event. Destination fields are usually populated in conjunction with source fields. +== container fields +Container fields are used for meta information about the specific container that is the source of information. +These fields help correlate data based containers from any runtime. -*`destination.address`*:: +*`container.id`*:: + -- type: keyword -Some event destination addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. -Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. - +Unique container id. -- -*`destination.ip`*:: +*`container.image.name`*:: + -- -type: ip +type: keyword -IP address of the destination. -Can be one or multiple IPv4 or IPv6 addresses. +Name of the image the container was built on. +-- +*`container.image.tag`*:: ++ -- +type: keyword -*`destination.port`*:: +Container image tag. + +-- + +*`container.labels`*:: + -- -type: long +type: object -Port of the destination. +Image labels. + +-- + +*`container.name`*:: ++ +-- +type: keyword +Container name. -- -*`destination.mac`*:: +*`container.runtime`*:: + -- type: keyword -MAC address of the destination. +example: docker +Runtime managing this container. -- -*`destination.domain`*:: +[float] +== destination fields + +Destination fields describe details about the destination of a packet/event. +Destination fields are usually populated in conjunction with source fields. + + +*`destination.address`*:: + -- type: keyword -Destination domain. - +Some event destination addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. +Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. -- @@ -1713,31 +1702,62 @@ type: long example: 184 -format: bytes - Bytes sent from the destination to the source. +-- + +*`destination.domain`*:: ++ +-- +type: keyword + +Destination domain. -- -*`destination.packets`*:: +*`destination.geo.city_name`*:: + -- -type: long +type: keyword -example: 12 +example: Montreal -Packets sent from the destination to the source. +City name. +-- +*`destination.geo.continent_name`*:: ++ -- +type: keyword -[float] -== geo fields +example: North America + +Name of the continent. + +-- + +*`destination.geo.country_iso_code`*:: ++ +-- +type: keyword + +example: CA + +Country ISO code. + +-- -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. +*`destination.geo.country_name`*:: ++ +-- +type: keyword +example: Canada +Country name. + +-- *`destination.geo.location`*:: + @@ -1748,30 +1768,29 @@ example: { "lon": -73.614830, "lat": 45.505918 } Longitude and latitude. - -- -*`destination.geo.continent_name`*:: +*`destination.geo.name`*:: + -- type: keyword -example: North America - -Name of the continent. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`destination.geo.country_name`*:: +*`destination.geo.region_iso_code`*:: + -- type: keyword -example: Canada - -Country name. +example: CA-QC +Region ISO code. -- @@ -1784,56 +1803,112 @@ example: Quebec Region name. +-- +*`destination.ip`*:: ++ -- +type: ip -*`destination.geo.city_name`*:: +IP address of the destination. +Can be one or multiple IPv4 or IPv6 addresses. + +-- + +*`destination.mac`*:: + -- type: keyword -example: Montreal +MAC address of the destination. -City name. +-- + +*`destination.packets`*:: ++ +-- +type: long + +example: 12 +Packets sent from the destination to the source. -- -*`destination.geo.country_iso_code`*:: +*`destination.port`*:: ++ +-- +type: long + +Port of the destination. + +-- + +*`destination.user.email`*:: + -- type: keyword -example: CA +User email address. -Country ISO code. +-- +*`destination.user.full_name`*:: ++ +-- +type: keyword + +example: Albert Einstein + +User's full name, if available. -- -*`destination.geo.region_iso_code`*:: +*`destination.user.group.id`*:: + -- type: keyword -example: CA-QC +Unique identifier for the group on the system/platform. -Region ISO code. +-- +*`destination.user.group.name`*:: ++ +-- +type: keyword + +Name of the group. -- -*`destination.geo.name`*:: +*`destination.user.hash`*:: + -- type: keyword -example: boston-dc +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +-- + +*`destination.user.id`*:: ++ +-- +type: keyword + +One or multiple unique identifiers of the user. + +-- + +*`destination.user.name`*:: ++ +-- +type: keyword + +example: albert +Short name or login of the user. -- @@ -1843,29 +1918,35 @@ Not typically used in automated geolocation. Meta-information specific to ECS. - *`ecs.version`*:: + -- type: keyword -example: 1.0.0-beta2 +example: 1.0.0 required: True ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. -The current version is 1.0.0-beta2 . - -- [float] == error fields -These fields can represent errors of any kind. Use them for errors that happen while fetching events or in cases where the event itself contains an error. +These fields can represent errors of any kind. +Use them for errors that happen while fetching events or in cases where the event itself contains an error. + + +*`error.code`*:: ++ +-- +type: keyword +Error code describing the error. +-- *`error.id`*:: + @@ -1874,7 +1955,6 @@ type: keyword Unique identifier for the error. - -- *`error.message`*:: @@ -1884,98 +1964,113 @@ type: text Error message. - -- -*`error.code`*:: +[float] +== event fields + +The event fields are used for context information about the log or metric event itself. +A log is defined as an event containing details of something that happened. Log events must include the time at which the thing happened. Examples of log events include a process starting on a host, a network packet being sent from a source to a destination, or a network connection between a client and a server being initiated or closed. A metric is defined as an event containing one or more numerical or categorical measurements and the time at which the measurement was taken. Examples of metric events include memory pressure measured on a host, or vulnerabilities measured on a scanned host. + + +*`event.action`*:: + -- type: keyword -Error code describing the error. +example: user-password-change +The action captured by the event. +This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. -- -[float] -== event fields +*`event.category`*:: ++ +-- +type: keyword -The event fields are used for context information about the log or metric event itself. A log is defined as an event containing details of something that happened. Log events must include the time at which the thing happened. Examples of log events include a process starting on a host, a network packet being sent from a source to a destination, or a network connection between a client and a server being initiated or closed. A metric is defined as an event containing one or more numerical or categorical measurements and the time at which the measurement was taken. Examples of metric events include memory pressure measured on a host, or vulnerabilities measured on a scanned host. +example: user-management +Event category. +This contains high-level information about the contents of the event. It is more generic than `event.action`, in the sense that typically a category contains multiple actions. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. +-- -*`event.id`*:: +*`event.created`*:: + -- -type: keyword - -example: 8a4f500d - -Unique ID to describe the event. +type: date +event.created contains the date/time when the event was first read by an agent, or by your pipeline. +This field is distinct from @timestamp in that @timestamp typically contain the time extracted from the original event. +In most situations, these two timestamps will be slightly different. The difference can be used to calculate the delay between your source generating an event, and the time when your agent first processed it. This can be used to monitor your agent's or pipeline's ability to keep up with your event source. +In case the two timestamps are identical, @timestamp should be used. -- -*`event.kind`*:: +*`event.dataset`*:: + -- type: keyword -example: state - -The kind of the event. -This gives information about what type of information the event contains, without being specific to the contents of the event. Examples are `event`, `state`, `alarm`. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. +example: stats +Name of the dataset. +The concept of a `dataset` (fileset / metricset) is used in Beats as a subset of modules. It contains the information which is currently stored in metricset.name and metricset.module or fileset.name. -- -*`event.category`*:: +*`event.duration`*:: + -- -type: keyword +type: long -example: user-management +Duration of the event in nanoseconds. +If event.start and event.end are known this value should be the difference between the end and start time. -Event category. -This contains high-level information about the contents of the event. It is more generic than `event.action`, in the sense that typically a category contains multiple actions. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. +-- +*`event.end`*:: ++ +-- +type: date + +event.end contains the date when the event ended or when the activity was last observed. -- -*`event.action`*:: +*`event.hash`*:: + -- type: keyword -example: user-password-change - -The action captured by the event. -This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. +example: 123456789012345678901234567890ABCD +Hash (perhaps logstash fingerprint) of raw field to be able to demonstrate log integrity. -- -*`event.outcome`*:: +*`event.id`*:: + -- type: keyword -example: success - -The outcome of the event. -If the event describes an action, this fields contains the outcome of that action. Examples outcomes are `success` and `failure`. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. +example: 8a4f500d +Unique ID to describe the event. -- -*`event.type`*:: +*`event.kind`*:: + -- type: keyword -Reserved for future usage. -Please avoid using this field for user data. +example: state +The kind of the event. +This gives information about what type of information the event contains, without being specific to the contents of the event. Examples are `event`, `state`, `alarm`. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. -- @@ -1989,71 +2084,68 @@ example: mysql Name of the module this data is coming from. This information is coming from the modules used in Beats or Logstash. - -- -*`event.dataset`*:: +*`event.original`*:: + -- type: keyword -example: stats - -Name of the dataset. -The concept of a `dataset` (fileset / metricset) is used in Beats as a subset of modules. It contains the information which is currently stored in metricset.name and metricset.module or fileset.name. +example: Sep 19 08:26:10 host CEF:0|Security| threatmanager|1.0|100| worm successfully stopped|10|src=10.0.0.1 dst=2.1.2.2spt=1232 +Raw text message of entire event. Used to demonstrate log integrity. +This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. -- -*`event.severity`*:: +*`event.outcome`*:: + -- -type: long - -example: 7 +type: keyword -Severity describes the severity of the event. What the different severity values mean can very different between use cases. It's up to the implementer to make sure severities are consistent across events. +example: success +The outcome of the event. +If the event describes an action, this fields contains the outcome of that action. Examples outcomes are `success` and `failure`. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. -- -*`event.original`*:: +*`event.risk_score`*:: + -- -type: keyword +type: float -example: Sep 19 08:26:10 host CEF:0|Security| threatmanager|1.0|100| worm successfully stopped|10|src=10.0.0.1 dst=2.1.2.2spt=1232 +Risk score or priority of the event (e.g. security solutions). Use your system's original value here. -Raw text message of entire event. Used to demonstrate log integrity. -This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. +-- +*`event.risk_score_norm`*:: ++ +-- +type: float -Field is not indexed. +Normalized risk score or priority of the event, on a scale of 0 to 100. +This is mainly useful if you use more than one system that assigns risk scores, and you want to see a normalized value across all systems. -- -*`event.hash`*:: +*`event.severity`*:: + -- -type: keyword - -example: 123456789012345678901234567890ABCD +type: long -Hash (perhaps logstash fingerprint) of raw field to be able to demonstrate log integrity. +example: 7 +Severity describes the original severity of the event. What the different severity values mean can very different between use cases. It's up to the implementer to make sure severities are consistent across events. -- -*`event.duration`*:: +*`event.start`*:: + -- -type: long - -format: duration - -Duration of the event in nanoseconds. -If event.start and event.end are known this value should be the difference between the end and start time. +type: date +event.start contains the date when the event started or when the activity was first observed. -- @@ -2065,68 +2157,110 @@ type: keyword This field should be populated when the event's timestamp does not include timezone information already (e.g. default Syslog timestamps). It's optional otherwise. Acceptable timezone formats are: a canonical ID (e.g. "Europe/Amsterdam"), abbreviated (e.g. "EST") or an HH:mm differential (e.g. "-05:00"). +-- +*`event.type`*:: ++ -- +type: keyword -*`event.created`*:: +Reserved for future usage. +Please avoid using this field for user data. + +-- + +[float] +== file fields + +A file is defined as a set of information that has been created on, or has existed on a filesystem. +File objects can be associated with host events, network events, and/or file events (e.g., those produced by File Integrity Monitoring [FIM] products or services). File fields provide details about the affected file associated with the event or metric. + + +*`file.ctime`*:: + -- type: date -event.created contains the date when the event was created. -This timestamp is distinct from @timestamp in that @timestamp contains the processed timestamp. For logs these two timestamps can be different as the timestamp in the log line and when the event is read for example by Filebeat are not identical. `@timestamp` must contain the timestamp extracted from the log line, event.created when the log line is read. The same could apply to package capturing where @timestamp contains the timestamp extracted from the network package and event.created when the event was created. -In case the two timestamps are identical, @timestamp should be used. +Last time file metadata changed. + +-- +*`file.device`*:: ++ +-- +type: keyword + +Device that is the source of the file. -- -*`event.start`*:: +*`file.extension`*:: + -- -type: date +type: keyword -event.start contains the date when the event started or when the activity was first observed. +example: png +File extension. +This should allow easy filtering by file extensions. -- -*`event.end`*:: +*`file.gid`*:: + -- -type: date - -event.end contains the date when the event ended or when the activity was last observed. +type: keyword +Primary group ID (GID) of the file. -- -*`event.risk_score`*:: +*`file.group`*:: + -- -type: float +type: keyword -Risk score or priority of the event (e.g. security solutions). Use your system's original value here. +Primary group name of the file. +-- +*`file.inode`*:: ++ -- +type: keyword -*`event.risk_score_norm`*:: +Inode representing the file in the filesystem. + +-- + +*`file.mode`*:: + -- -type: float +type: keyword -Normalized risk score or priority of the event, on a scale of 0 to 100. -This is mainly useful if you use more than one system that assigns risk scores, and you want to see a normalized value across all systems. +example: 416 +Mode of the file in octal representation. -- -[float] -== file fields +*`file.mtime`*:: ++ +-- +type: date + +Last time file content was modified. + +-- -A file is defined as a set of information that has been created on, or has existed on a filesystem. File objects can be associated with host events, network events, and/or file events (e.g., those produced by File Integrity Monitoring [FIM] products or services). File fields provide details about the affected file associated with the event or metric. +*`file.owner`*:: ++ +-- +type: keyword +File owner's username. +-- *`file.path`*:: + @@ -2137,25 +2271,21 @@ Path to the file. -- -*`file.target_path`*:: +*`file.size`*:: + -- -type: keyword +type: long -Target path for symlinks. +File size in bytes (field is only added when `type` is `file`). -- -*`file.extension`*:: +*`file.target_path`*:: + -- type: keyword -example: png - -File extension. -This should allow easy filtering by file extensions. - +Target path for symlinks. -- @@ -2168,98 +2298,109 @@ File type (file, dir, or symlink). -- -*`file.device`*:: +*`file.uid`*:: + -- type: keyword -Device that is the source of the file. +The user ID (UID) or security identifier (SID) of the file owner. -- -*`file.inode`*:: -+ --- -type: keyword +[float] +== geo fields -Inode representing the file in the filesystem. +Geo fields can carry data about a specific location related to an event. +This geolocation information can be derived from techniques such as Geo IP, or be user-supplied. --- -*`file.uid`*:: +*`geo.city_name`*:: + -- type: keyword -The user ID (UID) or security identifier (SID) of the file owner. +example: Montreal +City name. -- -*`file.owner`*:: +*`geo.continent_name`*:: + -- type: keyword -File owner's username. +example: North America + +Name of the continent. -- -*`file.gid`*:: +*`geo.country_iso_code`*:: + -- type: keyword -Primary group ID (GID) of the file. +example: CA + +Country ISO code. -- -*`file.group`*:: +*`geo.country_name`*:: + -- type: keyword -Primary group name of the file. +example: Canada + +Country name. -- -*`file.mode`*:: +*`geo.location`*:: + -- -type: keyword +type: geo_point -example: 416 +example: { "lon": -73.614830, "lat": 45.505918 } -Mode of the file in octal representation. +Longitude and latitude. -- -*`file.size`*:: +*`geo.name`*:: + -- -type: long +type: keyword -format: bytes +example: boston-dc -File size in bytes (field is only added when `type` is `file`). +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`file.mtime`*:: +*`geo.region_iso_code`*:: + -- -type: date +type: keyword -Last time file content was modified. +example: CA-QC + +Region ISO code. -- -*`file.ctime`*:: +*`geo.region_name`*:: + -- -type: date +type: keyword -Last time file metadata changed. +example: Quebec + +Region name. -- @@ -2269,7 +2410,6 @@ Last time file metadata changed. The group fields are meant to represent groups that are relevant to the event. - *`group.id`*:: + -- @@ -2277,7 +2417,6 @@ type: keyword Unique identifier for the group on the system/platform. - -- *`group.name`*:: @@ -2287,133 +2426,162 @@ type: keyword Name of the group. - -- [float] == host fields -A host is defined as a general computing instance. ECS host.* fields should be populated with details about the host on which the event happened, or on which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes. +A host is defined as a general computing instance. +ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes. - -*`host.hostname`*:: +*`host.architecture`*:: + -- type: keyword -Hostname of the host. -It normally contains what the `hostname` command returns on the host machine. +example: x86_64 +Operating system architecture. -- -*`host.name`*:: +*`host.geo.city_name`*:: + -- type: keyword -Name of the host. -It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. +example: Montreal +City name. -- -*`host.id`*:: +*`host.geo.continent_name`*:: + -- type: keyword -Unique host id. -As hostname is not always unique, use values that are meaningful in your environment. -Example: The current usage of `beat.name`. +example: North America +Name of the continent. -- -*`host.ip`*:: +*`host.geo.country_iso_code`*:: + -- -type: ip +type: keyword -Host ip address. +example: CA +Country ISO code. -- -*`host.mac`*:: +*`host.geo.country_name`*:: + -- type: keyword -Host mac address. +example: Canada +Country name. -- -*`host.type`*:: +*`host.geo.location`*:: + -- -type: keyword +type: geo_point -Type of host. -For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. +example: { "lon": -73.614830, "lat": 45.505918 } +Longitude and latitude. -- -*`host.architecture`*:: +*`host.geo.name`*:: + -- type: keyword -example: x86_64 - -Operating system architecture. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -[float] -== os fields +*`host.geo.region_iso_code`*:: ++ +-- +type: keyword -The OS fields contain information about the operating system. +example: CA-QC +Region ISO code. +-- -*`host.os.platform`*:: +*`host.geo.region_name`*:: + -- type: keyword -example: darwin +example: Quebec -Operating system platform (such centos, ubuntu, windows). +Region name. + +-- + +*`host.hostname`*:: ++ +-- +type: keyword +Hostname of the host. +It normally contains what the `hostname` command returns on the host machine. -- -*`host.os.name`*:: +*`host.id`*:: + -- type: keyword -example: Mac OS X +Unique host id. +As hostname is not always unique, use values that are meaningful in your environment. +Example: The current usage of `beat.name`. -Operating system name, without the version. +-- + +*`host.ip`*:: ++ +-- +type: ip +Host ip address. -- -*`host.os.full`*:: +*`host.mac`*:: + -- type: keyword -example: Mac OS Mojave +Host mac address. -Operating system name, including the version or code name. +-- + +*`host.name`*:: ++ +-- +type: keyword +Name of the host. +It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. -- @@ -2426,18 +2594,16 @@ example: debian OS family (such as redhat, debian, freebsd, windows). - -- -*`host.os.version`*:: +*`host.os.full`*:: + -- type: keyword -example: 10.14.1 - -Operating system version as a raw string. +example: Mac OS Mojave +Operating system name, including the version or code name. -- @@ -2450,131 +2616,133 @@ example: 4.4.0-112-generic Operating system kernel version as a raw string. - -- -[float] -== geo fields +*`host.os.name`*:: ++ +-- +type: keyword -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. +example: Mac OS X +Operating system name, without the version. +-- -*`host.geo.location`*:: +*`host.os.platform`*:: + -- -type: geo_point - -example: { "lon": -73.614830, "lat": 45.505918 } +type: keyword -Longitude and latitude. +example: darwin +Operating system platform (such centos, ubuntu, windows). -- -*`host.geo.continent_name`*:: +*`host.os.version`*:: + -- type: keyword -example: North America - -Name of the continent. +example: 10.14.1 +Operating system version as a raw string. -- -*`host.geo.country_name`*:: +*`host.type`*:: + -- type: keyword -example: Canada - -Country name. - +Type of host. +For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. -- -*`host.geo.region_name`*:: +*`host.user.email`*:: + -- type: keyword -example: Quebec - -Region name. - +User email address. -- -*`host.geo.city_name`*:: +*`host.user.full_name`*:: + -- type: keyword -example: Montreal - -City name. +example: Albert Einstein +User's full name, if available. -- -*`host.geo.country_iso_code`*:: +*`host.user.group.id`*:: + -- type: keyword -example: CA +Unique identifier for the group on the system/platform. -Country ISO code. +-- + +*`host.user.group.name`*:: ++ +-- +type: keyword +Name of the group. -- -*`host.geo.region_iso_code`*:: +*`host.user.hash`*:: + -- type: keyword -example: CA-QC +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -Region ISO code. +-- + +*`host.user.id`*:: ++ +-- +type: keyword +One or multiple unique identifiers of the user. -- -*`host.geo.name`*:: +*`host.user.name`*:: + -- type: keyword -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +example: albert +Short name or login of the user. -- [float] == http fields -Fields related to HTTP activity. +Fields related to HTTP activity. Use the `url` field set to store the url of the request. - -*`http.request.method`*:: +*`http.request.body.bytes`*:: + -- -type: keyword - -example: get, post, put +type: long -Http request method. -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. +example: 887 +Size in bytes of the request body. -- @@ -2585,84 +2753,63 @@ type: keyword example: Hello world -The full http request body. - - --- - -*`http.request.referrer`*:: -+ --- -type: keyword - -example: https://blog.example.com/ - -Referrer for this HTTP request. - +The full HTTP request body. -- -*`http.response.status_code`*:: +*`http.request.bytes`*:: + -- type: long -example: 404 - -Http response status code. +example: 1437 +Total size in bytes of the request (body and headers). -- -*`http.response.body.content`*:: +*`http.request.method`*:: + -- type: keyword -example: Hello world - -The full http response body. +example: get, post, put +HTTP request method. +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". -- -*`http.version`*:: +*`http.request.referrer`*:: + -- type: keyword -example: 1.1 - -Http version. +example: https://blog.example.com/ +Referrer for this HTTP request. -- -*`http.request.bytes`*:: +*`http.response.body.bytes`*:: + -- type: long -example: 1437 - -format: bytes - -Total size in bytes of the request (body and headers). +example: 887 +Size in bytes of the response body. -- -*`http.request.body.bytes`*:: +*`http.response.body.content`*:: + -- -type: long - -example: 887 - -format: bytes +type: keyword -Size in bytes of the request body. +example: Hello world +The full HTTP response body. -- @@ -2673,24 +2820,29 @@ type: long example: 1437 -format: bytes - Total size in bytes of the response (body and headers). - -- -*`http.response.body.bytes`*:: +*`http.response.status_code`*:: + -- type: long -example: 887 +example: 404 -format: bytes +HTTP response status code. -Size in bytes of the response body. +-- +*`http.version`*:: ++ +-- +type: keyword + +example: 1.1 + +HTTP version. -- @@ -2700,17 +2852,15 @@ Size in bytes of the response body. Fields which are specific to log events. - *`log.level`*:: + -- type: keyword -example: ERR - -Log level of the log event. -Some examples are `WARN`, `ERR`, `INFO`. +example: err +Original log level of the log event. +Some examples are `warn`, `error`, `i`. -- @@ -2721,96 +2871,52 @@ type: keyword example: Sep 19 08:26:10 localhost My log - This is the original log message and contains the full log message before splitting it up in multiple parts. In contrast to the `message` field which can contain an extracted part of the log message, this field contains the original, full log message. It can have already some modifications applied like encoding or new lines removed to clean up the log message. This field is not indexed and doc_values are disabled so it can't be queried but the value can be retrieved from `_source`. - -Field is not indexed. - -- [float] == network fields -The network is defined as the communication path over which a host or network event happens. The network.* fields should be populated with details about the network activity associated with an event. - - - -*`network.name`*:: -+ --- -type: keyword - -example: Guest Wifi - -Name given by operators to sections of their network. - - --- - -*`network.type`*:: -+ --- -type: keyword - -example: ipv4 - -In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. - - --- - -*`network.iana_number`*:: -+ --- -type: keyword - -example: 6 - -IANA Protocol Number (https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml). Standardized list of protocols. This aligns well with NetFlow and sFlow related logs which use the IANA Protocol Number. - +The network is defined as the communication path over which a host or network event happens. +The network.* fields should be populated with details about the network activity associated with an event. --- -*`network.transport`*:: +*`network.application`*:: + -- type: keyword -example: tcp - -Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. +example: aim +A name given to an application level protocol. This can be arbitrarily assigned for things like microservices, but also apply to things like skype, icq, facebook, twitter. This would be used in situations where the vendor or service can be decoded such as from the source/dest IP owners, ports, or wire format. +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". -- -*`network.application`*:: +*`network.bytes`*:: + -- -type: keyword - -example: aim +type: long -A name given to an application. This can be arbitrarily assigned for things like microservices, but also apply to things like skype, icq, facebook, twitter. This would be used in situations where the vendor or service can be decoded such as from the source/dest IP owners, ports, or wire format. -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. +example: 368 +Total bytes transferred in both directions. +If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. -- -*`network.protocol`*:: +*`network.community_id`*:: + -- type: keyword -example: http - -L7 Network protocol name. ex. http, lumberjack, transport protocol. -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. +example: 1:hO+sN4H+MG5MY/8hIrXPqc4ZQz0= +A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. +Learn more at https://github.com/corelight/community-id-spec. -- @@ -2832,7 +2938,6 @@ Recommended values are: When mapping events from a host-based monitoring context, populate this field from the host's point of view. When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of your network perimeter. - -- *`network.forwarded_ip`*:: @@ -2844,34 +2949,27 @@ example: 192.1.1.2 Host IP address when the source IP address is the proxy. - -- -*`network.community_id`*:: +*`network.iana_number`*:: + -- type: keyword -example: 1:hO+sN4H+MG5MY/8hIrXPqc4ZQz0= - -A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. -Learn more at https://github.com/corelight/community-id-spec. +example: 6 +IANA Protocol Number (https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml). Standardized list of protocols. This aligns well with NetFlow and sFlow related logs which use the IANA Protocol Number. -- -*`network.bytes`*:: +*`network.name`*:: + -- -type: long - -example: 368 - -format: bytes +type: keyword -Total bytes transferred in both directions. -If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. +example: Guest Wifi +Name given by operators to sections of their network. -- @@ -2885,129 +2983,165 @@ example: 24 Total packets transferred in both directions. If `source.packets` and `destination.packets` are known, `network.packets` is their sum. - -- -[float] -== observer fields +*`network.protocol`*:: ++ +-- +type: keyword -An observer is defined as a special network, security, or application device used to detect, observe, or create network, security, or application-related events and metrics. This could be a custom hardware appliance or a server that has been configured to run special network, security, or application software. Examples include firewalls, intrusion detection/prevention systems, network monitoring sensors, web application firewalls, data loss prevention systems, and APM servers. The observer.* fields shall be populated with details of the system, if any, that detects, observes and/or creates a network, security, or application event or metric. Message queues and ETL components used in processing events or metrics are not considered observers in ECS. +example: http +L7 Network protocol name. ex. http, lumberjack, transport protocol. +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". +-- -*`observer.mac`*:: +*`network.transport`*:: + -- type: keyword -MAC address of the observer +example: tcp +Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". -- -*`observer.ip`*:: +*`network.type`*:: + -- -type: ip +type: keyword -IP address of the observer. +example: ipv4 +In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". -- -*`observer.hostname`*:: +[float] +== observer fields + +An observer is defined as a special network, security, or application device used to detect, observe, or create network, security, or application-related events and metrics. +This could be a custom hardware appliance or a server that has been configured to run special network, security, or application software. Examples include firewalls, intrusion detection/prevention systems, network monitoring sensors, web application firewalls, data loss prevention systems, and APM servers. The observer.* fields shall be populated with details of the system, if any, that detects, observes and/or creates a network, security, or application event or metric. Message queues and ETL components used in processing events or metrics are not considered observers in ECS. + + +*`observer.geo.city_name`*:: + -- type: keyword -Hostname of the observer. +example: Montreal +City name. -- -*`observer.vendor`*:: +*`observer.geo.continent_name`*:: + -- type: keyword -observer vendor information. +example: North America +Name of the continent. -- -*`observer.version`*:: +*`observer.geo.country_iso_code`*:: + -- type: keyword -Observer version. +example: CA +Country ISO code. -- -*`observer.serial_number`*:: +*`observer.geo.country_name`*:: + -- type: keyword -Observer serial number. +example: Canada +Country name. -- -*`observer.type`*:: +*`observer.geo.location`*:: + -- -type: keyword - -example: firewall +type: geo_point -The type of the observer the data is coming from. -There is no predefined list of observer types. Some examples are `forwarder`, `firewall`, `ids`, `ips`, `proxy`, `poller`, `sensor`, `APM server`. +example: { "lon": -73.614830, "lat": 45.505918 } +Longitude and latitude. -- -[float] -== os fields +*`observer.geo.name`*:: ++ +-- +type: keyword -The OS fields contain information about the operating system. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. +-- -*`observer.os.platform`*:: +*`observer.geo.region_iso_code`*:: + -- type: keyword -example: darwin +example: CA-QC + +Region ISO code. + +-- + +*`observer.geo.region_name`*:: ++ +-- +type: keyword -Operating system platform (such centos, ubuntu, windows). +example: Quebec +Region name. -- -*`observer.os.name`*:: +*`observer.hostname`*:: + -- type: keyword -example: Mac OS X +Hostname of the observer. -Operating system name, without the version. +-- + +*`observer.ip`*:: ++ +-- +type: ip +IP address of the observer. -- -*`observer.os.full`*:: +*`observer.mac`*:: + -- type: keyword -example: Mac OS Mojave - -Operating system name, including the version or code name. - +MAC address of the observer -- @@ -3020,18 +3154,16 @@ example: debian OS family (such as redhat, debian, freebsd, windows). - -- -*`observer.os.version`*:: +*`observer.os.full`*:: + -- type: keyword -example: 10.14.1 - -Operating system version as a raw string. +example: Mac OS Mojave +Operating system name, including the version or code name. -- @@ -3044,138 +3176,102 @@ example: 4.4.0-112-generic Operating system kernel version as a raw string. - -- -[float] -== geo fields - -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. - - - -*`observer.geo.location`*:: -+ --- -type: geo_point - -example: { "lon": -73.614830, "lat": 45.505918 } - -Longitude and latitude. - - --- - -*`observer.geo.continent_name`*:: +*`observer.os.name`*:: + -- type: keyword -example: North America - -Name of the continent. +example: Mac OS X +Operating system name, without the version. -- -*`observer.geo.country_name`*:: +*`observer.os.platform`*:: + -- type: keyword -example: Canada - -Country name. +example: darwin +Operating system platform (such centos, ubuntu, windows). -- -*`observer.geo.region_name`*:: +*`observer.os.version`*:: + -- type: keyword -example: Quebec - -Region name. +example: 10.14.1 +Operating system version as a raw string. -- -*`observer.geo.city_name`*:: +*`observer.serial_number`*:: + -- type: keyword -example: Montreal - -City name. - +Observer serial number. -- -*`observer.geo.country_iso_code`*:: +*`observer.type`*:: + -- type: keyword -example: CA - -Country ISO code. +example: firewall +The type of the observer the data is coming from. +There is no predefined list of observer types. Some examples are `forwarder`, `firewall`, `ids`, `ips`, `proxy`, `poller`, `sensor`, `APM server`. -- -*`observer.geo.region_iso_code`*:: +*`observer.vendor`*:: + -- type: keyword -example: CA-QC - -Region ISO code. - +observer vendor information. -- -*`observer.geo.name`*:: +*`observer.version`*:: + -- type: keyword -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. - +Observer version. -- [float] == organization fields -The organization fields enrich data with information about the company or entity the data is associated with. These fields help you arrange or filter data stored in an index by one or multiple organizations. +The organization fields enrich data with information about the company or entity the data is associated with. +These fields help you arrange or filter data stored in an index by one or multiple organizations. - -*`organization.name`*:: +*`organization.id`*:: + -- type: keyword -Organization name. - +Unique identifier for the organization. -- -*`organization.id`*:: +*`organization.name`*:: + -- type: keyword -Unique identifier for the organization. - +Organization name. -- @@ -3185,93 +3281,99 @@ Unique identifier for the organization. The OS fields contain information about the operating system. - -*`os.platform`*:: +*`os.family`*:: + -- type: keyword -example: darwin - -Operating system platform (such centos, ubuntu, windows). +example: debian +OS family (such as redhat, debian, freebsd, windows). -- -*`os.name`*:: +*`os.full`*:: + -- type: keyword -example: Mac OS X - -Operating system name, without the version. +example: Mac OS Mojave +Operating system name, including the version or code name. -- -*`os.full`*:: +*`os.kernel`*:: + -- type: keyword -example: Mac OS Mojave - -Operating system name, including the version or code name. +example: 4.4.0-112-generic +Operating system kernel version as a raw string. -- -*`os.family`*:: +*`os.name`*:: + -- type: keyword -example: debian - -OS family (such as redhat, debian, freebsd, windows). +example: Mac OS X +Operating system name, without the version. -- -*`os.version`*:: +*`os.platform`*:: + -- type: keyword -example: 10.14.1 - -Operating system version as a raw string. +example: darwin +Operating system platform (such centos, ubuntu, windows). -- -*`os.kernel`*:: +*`os.version`*:: + -- type: keyword -example: 4.4.0-112-generic - -Operating system kernel version as a raw string. +example: 10.14.1 +Operating system version as a raw string. -- [float] == process fields -These fields contain information about a process. These fields can help you correlate metrics information with a process id/name from a log message. The `process.pid` often stays in the metric itself and is copied to the global field for correlation. +These fields contain information about a process. +These fields can help you correlate metrics information with a process id/name from a log message. The `process.pid` often stays in the metric itself and is copied to the global field for correlation. + + +*`process.args`*:: ++ +-- +type: keyword + +example: ['ssh', '-l', 'user', '10.0.0.16'] +Array of process arguments. +May be filtered to protect sensitive information. +-- -*`process.pid`*:: +*`process.executable`*:: + -- -type: long +type: keyword -Process id. +example: /usr/bin/ssh +Absolute path to the process executable. -- @@ -3285,6 +3387,14 @@ example: ssh Process name. Sometimes called program name or similar. +-- + +*`process.pid`*:: ++ +-- +type: long + +Process id. -- @@ -3295,31 +3405,27 @@ type: long Process parent id. - -- -*`process.args`*:: +*`process.start`*:: + -- -type: keyword - -example: ['ssh', '-l', 'user', '10.0.0.16'] +type: date -Process arguments. -May be filtered to protect sensitive information. +example: 2016-05-23T08:05:34.853Z +The time the process started. -- -*`process.executable`*:: +*`process.thread.id`*:: + -- -type: keyword - -example: /usr/bin/ssh +type: long -Absolute path to the process executable. +example: 4242 +Thread ID. -- @@ -3331,133 +3437,180 @@ type: keyword Process title. The proctitle, some times the same as process name. Can also be different: for example a browser setting its title to the web page currently opened. - -- -*`process.thread.id`*:: +*`process.working_directory`*:: + -- -type: long - -example: 4242 +type: keyword -Thread ID. +example: /home/alice +The working directory of the process. -- -*`process.start`*:: +[float] +== related fields + +This field set is meant to facilitate pivoting around a piece of data. +Some pieces of information can be seen in many places in an ECS event. To facilitate searching for them, store an array of all seen values to their corresponding field in `related.`. +A concrete example is IP addresses, which can be under host, observer, source, destination, client, server, and network.forwarded_ip. If you append all IPs to `related.ip`, you can then search for a given IP trivially, no matter where it appeared, by querying `related.ip:a.b.c.d`. + + +*`related.ip`*:: + -- -type: date +type: ip -example: 2016-05-23T08:05:34.853Z +All of the IPs seen on your event. -The time the process started. +-- + +[float] +== server fields +A Server is defined as the responder in a network connection for events regarding sessions, connections, or bidirectional flow records. +For TCP events, the server is the receiver of the initial SYN packet(s) of the TCP connection. For other protocols, the server is generally the responder in the network transaction. Some systems actually use the term "responder" to refer the server in TCP connections. The server fields describe details about the system acting as the server in the network event. Server fields are usually populated in conjunction with client fields. Server fields are generally not populated for packet-level events. +Client / server representations can add semantic context to an exchange, which is helpful to visualize the data in certain situations. If your context falls in that category, you should still ensure that source and destination are filled appropriately. --- -*`process.working_directory`*:: +*`server.address`*:: + -- type: keyword -example: /home/alice +Some event server addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. +Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. -The working directory of the process. +-- + +*`server.bytes`*:: ++ +-- +type: long +example: 184 + +Bytes sent from the server to the client. -- -[float] -== related fields +*`server.domain`*:: ++ +-- +type: keyword + +Server domain. + +-- + +*`server.geo.city_name`*:: ++ +-- +type: keyword -This field set is meant to facilitate pivoting around a piece of data. Some pieces of information can be seen in many places in ECS. To facilitate searching for them, append values to their corresponding field in `related.`. A concrete example is IP addresses, which can be under host, observer, source, destination, client, server, and network.forwarded_ip. If you append all IPs to `related.ip`, you can then search for a given IP trivially, no matter where it appeared, by querying `related.ip:a.b.c.d`. +example: Montreal +City name. +-- -*`related.ip`*:: +*`server.geo.continent_name`*:: + -- -type: ip +type: keyword -All of the IPs seen on your event. +example: North America +Name of the continent. -- -[float] -== server fields +*`server.geo.country_iso_code`*:: ++ +-- +type: keyword -A Server is defined as the responder in a network connection for events regarding sessions, connections, or bidirectional flow records. For TCP events, the server is the receiver of the initial SYN packet(s) of the TCP connection. For other protocols, the server is generally the responder in the network transaction. Some systems actually use the term "responder" to refer the server in TCP connections. The server fields describe details about the system acting as the server in the network event. Server fields are usually populated in conjunction with client fields. Server fields are generally not populated for packet-level events. -Client / server representations can add semantic context to an exchange, which is helpful to visualize the data in certain situations. If your context falls in that category, you should still ensure that source and destination are filled appropriately. +example: CA +Country ISO code. +-- -*`server.address`*:: +*`server.geo.country_name`*:: + -- type: keyword -Some event server addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. -Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. +example: Canada +Country name. -- -*`server.ip`*:: +*`server.geo.location`*:: + -- -type: ip +type: geo_point -IP address of the server. -Can be one or multiple IPv4 or IPv6 addresses. +example: { "lon": -73.614830, "lat": 45.505918 } +Longitude and latitude. -- -*`server.port`*:: +*`server.geo.name`*:: + -- -type: long +type: keyword -Port of the server. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`server.mac`*:: +*`server.geo.region_iso_code`*:: + -- type: keyword -MAC address of the server. +example: CA-QC +Region ISO code. -- -*`server.domain`*:: +*`server.geo.region_name`*:: + -- type: keyword -Server domain. +example: Quebec +Region name. -- -*`server.bytes`*:: +*`server.ip`*:: + -- -type: long +type: ip -example: 184 +IP address of the server. +Can be one or multiple IPv4 or IPv6 addresses. -format: bytes +-- -Bytes sent from the server to the client. +*`server.mac`*:: ++ +-- +type: keyword +MAC address of the server. -- @@ -3470,120 +3623,103 @@ example: 12 Packets sent from the server to the client. - -- -[float] -== geo fields - -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. - - - -*`server.geo.location`*:: +*`server.port`*:: + -- -type: geo_point - -example: { "lon": -73.614830, "lat": 45.505918 } - -Longitude and latitude. +type: long +Port of the server. -- -*`server.geo.continent_name`*:: +*`server.user.email`*:: + -- type: keyword -example: North America - -Name of the continent. - +User email address. -- -*`server.geo.country_name`*:: +*`server.user.full_name`*:: + -- type: keyword -example: Canada - -Country name. +example: Albert Einstein +User's full name, if available. -- -*`server.geo.region_name`*:: +*`server.user.group.id`*:: + -- type: keyword -example: Quebec - -Region name. - +Unique identifier for the group on the system/platform. -- -*`server.geo.city_name`*:: +*`server.user.group.name`*:: + -- type: keyword -example: Montreal - -City name. - +Name of the group. -- -*`server.geo.country_iso_code`*:: +*`server.user.hash`*:: + -- type: keyword -example: CA - -Country ISO code. - +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -- -*`server.geo.region_iso_code`*:: +*`server.user.id`*:: + -- type: keyword -example: CA-QC - -Region ISO code. - +One or multiple unique identifiers of the user. -- -*`server.geo.name`*:: +*`server.user.name`*:: + -- type: keyword -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +example: albert +Short name or login of the user. -- [float] == service fields -The service fields describe the service for or from which the data was collected. These fields help you find and correlate logs for a specific service and version. +The service fields describe the service for or from which the data was collected. +These fields help you find and correlate logs for a specific service and version. + + +*`service.ephemeral_id`*:: ++ +-- +type: keyword + +example: 8a4f500f +Ephemeral identifier of this service (if one exists). +This id normally changes across restarts, but `service.id` does not. +-- *`service.id`*:: + @@ -3596,7 +3732,6 @@ Unique identifier of the running service. This id should uniquely identify this service. This makes it possible to correlate logs and metrics for one specific service. Example: If you are experiencing issues with one redis instance, you can filter on that id to see metrics and logs for that single instance. - -- *`service.name`*:: @@ -3611,6 +3746,14 @@ The name of the service is normally user given. This allows if two instances of Also it allows for distributed services that run on multiple hosts to correlate the related instances based on the name. In the case of Elasticsearch the service.name could contain the cluster name. For Beats the service.name is by default a copy of the `service.type` field if no name is specified. +-- + +*`service.state`*:: ++ +-- +type: keyword + +Current state of the service. -- @@ -3625,115 +3768,163 @@ The type of the service data is collected from. The type can be used to group and correlate logs and metrics from one service type. Example: If logs or metrics are collected from Elasticsearch, `service.type` would be `elasticsearch`. - -- -*`service.state`*:: +*`service.version`*:: + -- type: keyword -Current state of the service. +example: 3.2.4 +Version of the service the data was collected from. +This allows to look at a data set only for a specific version of a service. -- -*`service.version`*:: +[float] +== source fields + +Source fields describe details about the source of a packet/event. +Source fields are usually populated in conjunction with destination fields. + + +*`source.address`*:: + -- type: keyword -example: 3.2.4 +Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. +Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. -Version of the service the data was collected from. -This allows to look at a data set only for a specific version of a service. +-- + +*`source.bytes`*:: ++ +-- +type: long +example: 184 + +Bytes sent from the source to the destination. -- -*`service.ephemeral_id`*:: +*`source.domain`*:: + -- type: keyword -example: 8a4f500f +Source domain. -Ephemeral identifier of this service (if one exists). -This id normally changes across restarts, but `service.id` does not. +-- + +*`source.geo.city_name`*:: ++ +-- +type: keyword + +example: Montreal +City name. -- -[float] -== source fields +*`source.geo.continent_name`*:: ++ +-- +type: keyword -Source fields describe details about the source of a packet/event. Source fields are usually populated in conjunction with destination fields. +example: North America +Name of the continent. +-- -*`source.address`*:: +*`source.geo.country_iso_code`*:: + -- type: keyword -Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. -Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. +example: CA +Country ISO code. -- -*`source.ip`*:: +*`source.geo.country_name`*:: + -- -type: ip +type: keyword -IP address of the source. -Can be one or multiple IPv4 or IPv6 addresses. +example: Canada +Country name. -- -*`source.port`*:: +*`source.geo.location`*:: + -- -type: long +type: geo_point -Port of the source. +example: { "lon": -73.614830, "lat": 45.505918 } + +Longitude and latitude. +-- +*`source.geo.name`*:: ++ -- +type: keyword -*`source.mac`*:: +example: boston-dc + +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. + +-- + +*`source.geo.region_iso_code`*:: + -- type: keyword -MAC address of the source. +example: CA-QC +Region ISO code. -- -*`source.domain`*:: +*`source.geo.region_name`*:: + -- type: keyword -Source domain. +example: Quebec +Region name. -- -*`source.bytes`*:: +*`source.ip`*:: + -- -type: long +type: ip -example: 184 +IP address of the source. +Can be one or multiple IPv4 or IPv6 addresses. -format: bytes +-- -Bytes sent from the source to the destination. +*`source.mac`*:: ++ +-- +type: keyword +MAC address of the source. -- @@ -3746,133 +3937,110 @@ example: 12 Packets sent from the source to the destination. - -- -[float] -== geo fields - -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. - - - -*`source.geo.location`*:: +*`source.port`*:: + -- -type: geo_point - -example: { "lon": -73.614830, "lat": 45.505918 } - -Longitude and latitude. +type: long +Port of the source. -- -*`source.geo.continent_name`*:: +*`source.user.email`*:: + -- type: keyword -example: North America - -Name of the continent. - +User email address. -- -*`source.geo.country_name`*:: +*`source.user.full_name`*:: + -- type: keyword -example: Canada - -Country name. +example: Albert Einstein +User's full name, if available. -- -*`source.geo.region_name`*:: +*`source.user.group.id`*:: + -- type: keyword -example: Quebec - -Region name. - +Unique identifier for the group on the system/platform. -- -*`source.geo.city_name`*:: +*`source.user.group.name`*:: + -- type: keyword -example: Montreal - -City name. - +Name of the group. -- -*`source.geo.country_iso_code`*:: +*`source.user.hash`*:: + -- type: keyword -example: CA - -Country ISO code. - +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -- -*`source.geo.region_iso_code`*:: +*`source.user.id`*:: + -- type: keyword -example: CA-QC - -Region ISO code. - +One or multiple unique identifiers of the user. -- -*`source.geo.name`*:: +*`source.user.name`*:: + -- type: keyword -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +example: albert +Short name or login of the user. -- [float] == url fields -URL fields provide a complete URL, with scheme, host, and path. - +URL fields provide support for complete or partial URLs, and supports the breaking down into scheme, domain, path, and so on. -*`url.original`*:: +*`url.domain`*:: + -- type: keyword -example: https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch +example: www.elastic.co +Domain of the url, such as "www.elastic.co". +In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the `domain` field. -Unmodified original url as seen in the event source. -Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path. -This field is meant to represent the URL as it was observed, complete or not. +-- + +*`url.fragment`*:: ++ +-- +type: keyword +Portion of the url after the `#`, such as "top". +The `#` is not part of the fragment. -- @@ -3885,54 +4053,47 @@ example: https://www.elastic.co:443/search?q=elasticsearch#top If full URLs are important to your use case, they should be stored in `url.full`, whether this field is reconstructed or present in the event source. - -- -*`url.scheme`*:: +*`url.original`*:: + -- type: keyword -example: https - -Scheme of the request, such as "https". -Note: The `:` is not part of the scheme. +example: https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch +Unmodified original url as seen in the event source. +Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path. +This field is meant to represent the URL as it was observed, complete or not. -- -*`url.domain`*:: +*`url.password`*:: + -- type: keyword -example: www.elastic.co - -Domain of the request, such as "www.elastic.co". -In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the `domain` field. - +Password of the request. -- -*`url.port`*:: +*`url.path`*:: + -- -type: integer - -example: 443 - -Port of the request, such as 443. +type: keyword +Path of the request, such as "/search". -- -*`url.path`*:: +*`url.port`*:: + -- -type: keyword +type: long -Path of the request, such as "/search". +example: 443 +Port of the request, such as 443. -- @@ -3944,17 +4105,17 @@ type: keyword The query field describes the query string of the request, such as "q=elasticsearch". The `?` is excluded from the query string. If a URL contains no `?`, there is no query field. If there is a `?` but no query, the query field exists with an empty string. The `exists` query can be used to differentiate between the two cases. - -- -*`url.fragment`*:: +*`url.scheme`*:: + -- type: keyword -Portion of the url after the `#`, such as "top". -The `#` is not part of the fragment. +example: https +Scheme of the request, such as "https". +Note: The `:` is not part of the scheme. -- @@ -3965,67 +4126,50 @@ type: keyword Username of the request. - --- - -*`url.password`*:: -+ --- -type: keyword - -Password of the request. - - -- [float] == user fields -The user fields describe information about the user that is relevant to the event. Fields can have one entry or multiple entries. If a user has more than one id, provide an array that includes all of them. - +The user fields describe information about the user that is relevant to the event. +Fields can have one entry or multiple entries. If a user has more than one id, provide an array that includes all of them. -*`user.id`*:: +*`user.email`*:: + -- type: keyword -One or multiple unique identifiers of the user. - +User email address. -- -*`user.name`*:: +*`user.full_name`*:: + -- type: keyword -example: albert - -Short name or login of the user. +example: Albert Einstein +User's full name, if available. -- -*`user.full_name`*:: +*`user.group.id`*:: + -- type: keyword -example: Albert Einstein - -User's full name, if available. - +Unique identifier for the group on the system/platform. -- -*`user.email`*:: +*`user.group.name`*:: + -- type: keyword -User email address. - +Name of the group. -- @@ -4037,52 +4181,43 @@ type: keyword Unique user hash to correlate information for a user in anonymized form. Useful if `user.id` or `user.name` contain confidential information and cannot be used. - -- -[float] -== group fields - -The group fields are meant to represent groups that are relevant to the event. - - - -*`user.group.id`*:: +*`user.id`*:: + -- type: keyword -Unique identifier for the group on the system/platform. - +One or multiple unique identifiers of the user. -- -*`user.group.name`*:: +*`user.name`*:: + -- type: keyword -Name of the group. +example: albert +Short name or login of the user. -- [float] == user_agent fields -The user_agent fields normally come from a browser request. They often show up in web service logs coming from the parsed user agent string. +The user_agent fields normally come from a browser request. +They often show up in web service logs coming from the parsed user agent string. - -*`user_agent.original`*:: +*`user_agent.device.name`*:: + -- type: keyword -example: Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1 - -Unparsed version of the user_agent. +example: iPhone +Name of the device. -- @@ -4095,85 +4230,71 @@ example: Safari Name of the user agent. - -- -*`user_agent.version`*:: +*`user_agent.original`*:: + -- type: keyword -example: 12.0 - -Version of the user agent. +example: Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1 +Unparsed version of the user_agent. -- -*`user_agent.device.name`*:: +*`user_agent.os.family`*:: + -- type: keyword -example: iPhone - -Name of the device. +example: debian +OS family (such as redhat, debian, freebsd, windows). -- -[float] -== os fields - -The OS fields contain information about the operating system. - - - -*`user_agent.os.platform`*:: +*`user_agent.os.full`*:: + -- type: keyword -example: darwin - -Operating system platform (such centos, ubuntu, windows). +example: Mac OS Mojave +Operating system name, including the version or code name. -- -*`user_agent.os.name`*:: +*`user_agent.os.kernel`*:: + -- type: keyword -example: Mac OS X - -Operating system name, without the version. +example: 4.4.0-112-generic +Operating system kernel version as a raw string. -- -*`user_agent.os.full`*:: +*`user_agent.os.name`*:: + -- type: keyword -example: Mac OS Mojave - -Operating system name, including the version or code name. +example: Mac OS X +Operating system name, without the version. -- -*`user_agent.os.family`*:: +*`user_agent.os.platform`*:: + -- type: keyword -example: debian - -OS family (such as redhat, debian, freebsd, windows). +example: darwin +Operating system platform (such centos, ubuntu, windows). -- @@ -4186,28 +4307,16 @@ example: 10.14.1 Operating system version as a raw string. - --- - -*`user_agent.os.kernel`*:: -+ --- -type: keyword - -example: 4.4.0-112-generic - -Operating system kernel version as a raw string. - - -- -*`agent.hostname`*:: +*`user_agent.version`*:: + -- type: keyword -Hostname of the agent. +example: 12.0 +Version of the user agent. -- diff --git a/filebeat/include/fields.go b/filebeat/include/fields.go index bdfb144adce..15a6824c6ef 100644 --- a/filebeat/include/fields.go +++ b/filebeat/include/fields.go @@ -32,5 +32,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "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" + return "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" } diff --git a/heartbeat/docs/fields.asciidoc b/heartbeat/docs/fields.asciidoc index ad76d636268..e143bc5f6e1 100644 --- a/heartbeat/docs/fields.asciidoc +++ b/heartbeat/docs/fields.asciidoc @@ -36,6 +36,15 @@ Contains common beat fields available in all event types. +*`agent.hostname`*:: ++ +-- +type: keyword + +Hostname of the agent. + +-- + *`beat.timezone`*:: + -- @@ -332,8 +341,7 @@ Image labels. [[exported-fields-ecs]] == ECS fields -ECS fields. - +ECS Fields. *`@timestamp`*:: @@ -346,22 +354,10 @@ example: 2016-05-23T08:05:34.853Z required: True Date/time when the event originated. -For log events this is the date/time when the event was generated, and not when it was read. +This is the date/time extracted from the event, typically representing when the event was generated by the source. +If the event source has no original timestamp, this value is typically populated by the first time the event was received by the pipeline. Required field for all events. - --- - -*`tags`*:: -+ --- -type: keyword - -example: ["production", "env2"] - -List of keywords used to tag each event. - - -- *`labels`*:: @@ -371,11 +367,10 @@ type: object example: {'application': 'foo-bar', 'env': 'production'} -Key/value pairs. +Custom key/value pairs. Can be used to add meta information to events. Should not contain nested objects. All values are stored as keyword. Example: `docker` and `k8s` labels. - -- *`message`*:: @@ -385,28 +380,51 @@ type: text example: Hello World -For log events the message field contains the log message. -In other use cases the message field can be used to concatenate different values which are then freely searchable. If multiple messages exist, they can be combined into one message. +For log events the message field contains the log message, optimized for viewing in a log viewer. +For structured logs without an original message field, other fields can be concatenated to form a human-readable summary of the event. +If multiple messages exist, they can be combined into one message. + +-- + +*`tags`*:: ++ +-- +type: keyword + +example: ["production", "env2"] +List of keywords used to tag each event. -- [float] == agent fields -The agent fields contain the data about the software entity, if any, that collects, detects, or observes events on a host, or takes measurements on a host. Examples include Beats. Agents may also run on observers. ECS agent.* fields shall be populated with details of the agent running on the host or observer where the event happened or the measurement was taken. +The agent fields contain the data about the software entity, if any, that collects, detects, or observes events on a host, or takes measurements on a host. +Examples include Beats. Agents may also run on observers. ECS agent.* fields shall be populated with details of the agent running on the host or observer where the event happened or the measurement was taken. - -*`agent.version`*:: +*`agent.ephemeral_id`*:: + -- type: keyword -example: 6.0.0-rc2 +example: 8a4f500f -Version of the agent. +Ephemeral identifier of this agent (if one exists). +This id normally changes across restarts, but `agent.id` does not. + +-- + +*`agent.id`*:: ++ +-- +type: keyword + +example: 8a4f500d +Unique identifier of this agent (if one exists). +Example: For Beats this would be beat.id. -- @@ -417,11 +435,10 @@ type: keyword example: foo -Name of the agent. +Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. If no name is given, the name is often left empty. - -- *`agent.type`*:: @@ -434,43 +451,27 @@ example: filebeat Type of the agent. The agent type stays always the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - --- - -*`agent.id`*:: -+ --- -type: keyword - -example: 8a4f500d - -Unique identifier of this agent (if one exists). -Example: For Beats this would be beat.id. - - -- -*`agent.ephemeral_id`*:: +*`agent.version`*:: + -- type: keyword -example: 8a4f500f - -Ephemeral identifier of this agent (if one exists). -This id normally changes across restarts, but `agent.id` does not. +example: 6.0.0-rc2 +Version of the agent. -- [float] == client fields -A client is defined as the initiator of a network connection for events regarding sessions, connections, or bidirectional flow records. For TCP events, the client is the initiator of the TCP connection that sends the SYN packet(s). For other protocols, the client is generally the initiator or requestor in the network transaction. Some systems use the term "originator" to refer the client in TCP connections. The client fields describe details about the system acting as the client in the network event. Client fields are usually populated in conjunction with server fields. Client fields are generally not populated for packet-level events. +A client is defined as the initiator of a network connection for events regarding sessions, connections, or bidirectional flow records. +For TCP events, the client is the initiator of the TCP connection that sends the SYN packet(s). For other protocols, the client is generally the initiator or requestor in the network transaction. Some systems use the term "originator" to refer the client in TCP connections. The client fields describe details about the system acting as the client in the network event. Client fields are usually populated in conjunction with server fields. Client fields are generally not populated for packet-level events. Client / server representations can add semantic context to an exchange, which is helpful to visualize the data in certain situations. If your context falls in that category, you should still ensure that source and destination are filled appropriately. - *`client.address`*:: + -- @@ -479,83 +480,72 @@ type: keyword Some event client addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. - -- -*`client.ip`*:: +*`client.bytes`*:: + -- -type: ip +type: long -IP address of the client. -Can be one or multiple IPv4 or IPv6 addresses. +example: 184 +Bytes sent from the client to the server. -- -*`client.port`*:: +*`client.domain`*:: + -- -type: long - -Port of the client. +type: keyword +Client domain. -- -*`client.mac`*:: +*`client.geo.city_name`*:: + -- type: keyword -MAC address of the client. +example: Montreal +City name. -- -*`client.domain`*:: +*`client.geo.continent_name`*:: + -- type: keyword -Client domain. +example: North America +Name of the continent. -- -*`client.bytes`*:: +*`client.geo.country_iso_code`*:: + -- -type: long - -example: 184 - -format: bytes +type: keyword -Bytes sent from the client to the server. +example: CA +Country ISO code. -- -*`client.packets`*:: +*`client.geo.country_name`*:: + -- -type: long - -example: 12 +type: keyword -Packets sent from the client to the server. +example: Canada +Country name. -- -[float] -== geo fields - -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. - - - *`client.geo.location`*:: + -- @@ -565,30 +555,29 @@ example: { "lon": -73.614830, "lat": 45.505918 } Longitude and latitude. - -- -*`client.geo.continent_name`*:: +*`client.geo.name`*:: + -- type: keyword -example: North America - -Name of the continent. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`client.geo.country_name`*:: +*`client.geo.region_iso_code`*:: + -- type: keyword -example: Canada - -Country name. +example: CA-QC +Region ISO code. -- @@ -601,274 +590,274 @@ example: Quebec Region name. - -- -*`client.geo.city_name`*:: +*`client.ip`*:: + -- -type: keyword - -example: Montreal - -City name. +type: ip +IP address of the client. +Can be one or multiple IPv4 or IPv6 addresses. -- -*`client.geo.country_iso_code`*:: +*`client.mac`*:: + -- type: keyword -example: CA - -Country ISO code. - +MAC address of the client. -- -*`client.geo.region_iso_code`*:: +*`client.packets`*:: + -- -type: keyword - -example: CA-QC +type: long -Region ISO code. +example: 12 +Packets sent from the client to the server. -- -*`client.geo.name`*:: +*`client.port`*:: + -- -type: keyword - -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +type: long +Port of the client. -- -[float] -== cloud fields - -Fields related to the cloud or infrastructure the events are coming from. - - - -*`cloud.provider`*:: +*`client.user.email`*:: + -- type: keyword -example: ec2 - -Name of the cloud provider. Example values are ec2, gce, or digitalocean. - +User email address. -- -*`cloud.availability_zone`*:: +*`client.user.full_name`*:: + -- type: keyword -example: us-east-1c - -Availability zone in which this host is running. +example: Albert Einstein +User's full name, if available. -- -*`cloud.region`*:: +*`client.user.group.id`*:: + -- type: keyword -example: us-east-1 - -Region in which this host is running. - +Unique identifier for the group on the system/platform. -- -*`cloud.instance.id`*:: +*`client.user.group.name`*:: + -- type: keyword -example: i-1234567890abcdef0 - -Instance ID of the host machine. - +Name of the group. -- -*`cloud.instance.name`*:: +*`client.user.hash`*:: + -- type: keyword -Instance name of the host machine. - +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -- -*`cloud.machine.type`*:: +*`client.user.id`*:: + -- type: keyword -example: t2.medium - -Machine type of the host machine. - +One or multiple unique identifiers of the user. -- -*`cloud.account.id`*:: +*`client.user.name`*:: + -- type: keyword -example: 666777888999 - -The cloud account or organization id used to identify different entities in a multi-tenant environment. -Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. +example: albert +Short name or login of the user. -- [float] -== container fields - -Container fields are used for meta information about the specific container that is the source of information. These fields help correlate data based containers from any runtime. +== cloud fields +Fields related to the cloud or infrastructure the events are coming from. -*`container.runtime`*:: +*`cloud.account.id`*:: + -- type: keyword -example: docker - -Runtime managing this container. +example: 666777888999 +The cloud account or organization id used to identify different entities in a multi-tenant environment. +Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. -- -*`container.id`*:: +*`cloud.availability_zone`*:: + -- type: keyword -Unique container id. +example: us-east-1c +Availability zone in which this host is running. -- -*`container.image.name`*:: +*`cloud.instance.id`*:: + -- type: keyword -Name of the image the container was built on. +example: i-1234567890abcdef0 +Instance ID of the host machine. -- -*`container.image.tag`*:: +*`cloud.instance.name`*:: + -- type: keyword -Container image tag. +Instance name of the host machine. +-- +*`cloud.machine.type`*:: ++ -- +type: keyword -*`container.name`*:: +example: t2.medium + +Machine type of the host machine. + +-- + +*`cloud.provider`*:: + -- type: keyword -Container name. +example: aws +Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. -- -*`container.labels`*:: +*`cloud.region`*:: + -- -type: object +type: keyword -Image labels. +example: us-east-1 +Region in which this host is running. -- [float] -== destination fields - -Destination fields describe details about the destination of a packet/event. Destination fields are usually populated in conjunction with source fields. +== container fields +Container fields are used for meta information about the specific container that is the source of information. +These fields help correlate data based containers from any runtime. -*`destination.address`*:: +*`container.id`*:: + -- type: keyword -Some event destination addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. -Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. - +Unique container id. -- -*`destination.ip`*:: +*`container.image.name`*:: + -- -type: ip +type: keyword -IP address of the destination. -Can be one or multiple IPv4 or IPv6 addresses. +Name of the image the container was built on. + +-- + +*`container.image.tag`*:: ++ +-- +type: keyword +Container image tag. -- -*`destination.port`*:: +*`container.labels`*:: + -- -type: long +type: object -Port of the destination. +Image labels. + +-- + +*`container.name`*:: ++ +-- +type: keyword +Container name. -- -*`destination.mac`*:: +*`container.runtime`*:: + -- type: keyword -MAC address of the destination. +example: docker +Runtime managing this container. -- -*`destination.domain`*:: +[float] +== destination fields + +Destination fields describe details about the destination of a packet/event. +Destination fields are usually populated in conjunction with source fields. + + +*`destination.address`*:: + -- type: keyword -Destination domain. - +Some event destination addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. +Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. -- @@ -879,31 +868,62 @@ type: long example: 184 -format: bytes - Bytes sent from the destination to the source. +-- +*`destination.domain`*:: ++ -- +type: keyword -*`destination.packets`*:: +Destination domain. + +-- + +*`destination.geo.city_name`*:: + -- -type: long +type: keyword -example: 12 +example: Montreal -Packets sent from the destination to the source. +City name. + +-- +*`destination.geo.continent_name`*:: ++ +-- +type: keyword + +example: North America + +Name of the continent. -- -[float] -== geo fields +*`destination.geo.country_iso_code`*:: ++ +-- +type: keyword + +example: CA + +Country ISO code. + +-- -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. +*`destination.geo.country_name`*:: ++ +-- +type: keyword +example: Canada +Country name. + +-- *`destination.geo.location`*:: + @@ -914,30 +934,29 @@ example: { "lon": -73.614830, "lat": 45.505918 } Longitude and latitude. - -- -*`destination.geo.continent_name`*:: +*`destination.geo.name`*:: + -- type: keyword -example: North America - -Name of the continent. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`destination.geo.country_name`*:: +*`destination.geo.region_iso_code`*:: + -- type: keyword -example: Canada - -Country name. +example: CA-QC +Region ISO code. -- @@ -950,56 +969,112 @@ example: Quebec Region name. +-- +*`destination.ip`*:: ++ -- +type: ip -*`destination.geo.city_name`*:: +IP address of the destination. +Can be one or multiple IPv4 or IPv6 addresses. + +-- + +*`destination.mac`*:: + -- type: keyword -example: Montreal +MAC address of the destination. -City name. +-- + +*`destination.packets`*:: ++ +-- +type: long + +example: 12 +Packets sent from the destination to the source. -- -*`destination.geo.country_iso_code`*:: +*`destination.port`*:: ++ +-- +type: long + +Port of the destination. + +-- + +*`destination.user.email`*:: + -- type: keyword -example: CA +User email address. -Country ISO code. +-- +*`destination.user.full_name`*:: ++ +-- +type: keyword + +example: Albert Einstein + +User's full name, if available. -- -*`destination.geo.region_iso_code`*:: +*`destination.user.group.id`*:: + -- type: keyword -example: CA-QC +Unique identifier for the group on the system/platform. -Region ISO code. +-- +*`destination.user.group.name`*:: ++ +-- +type: keyword + +Name of the group. -- -*`destination.geo.name`*:: +*`destination.user.hash`*:: + -- type: keyword -example: boston-dc +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +-- + +*`destination.user.id`*:: ++ +-- +type: keyword + +One or multiple unique identifiers of the user. + +-- + +*`destination.user.name`*:: ++ +-- +type: keyword +example: albert + +Short name or login of the user. -- @@ -1009,29 +1084,35 @@ Not typically used in automated geolocation. Meta-information specific to ECS. - *`ecs.version`*:: + -- type: keyword -example: 1.0.0-beta2 +example: 1.0.0 required: True ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. -The current version is 1.0.0-beta2 . - -- [float] == error fields -These fields can represent errors of any kind. Use them for errors that happen while fetching events or in cases where the event itself contains an error. +These fields can represent errors of any kind. +Use them for errors that happen while fetching events or in cases where the event itself contains an error. + + +*`error.code`*:: ++ +-- +type: keyword +Error code describing the error. +-- *`error.id`*:: + @@ -1040,7 +1121,6 @@ type: keyword Unique identifier for the error. - -- *`error.message`*:: @@ -1050,98 +1130,113 @@ type: text Error message. - -- -*`error.code`*:: +[float] +== event fields + +The event fields are used for context information about the log or metric event itself. +A log is defined as an event containing details of something that happened. Log events must include the time at which the thing happened. Examples of log events include a process starting on a host, a network packet being sent from a source to a destination, or a network connection between a client and a server being initiated or closed. A metric is defined as an event containing one or more numerical or categorical measurements and the time at which the measurement was taken. Examples of metric events include memory pressure measured on a host, or vulnerabilities measured on a scanned host. + + +*`event.action`*:: + -- type: keyword -Error code describing the error. +example: user-password-change +The action captured by the event. +This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. -- -[float] -== event fields +*`event.category`*:: ++ +-- +type: keyword -The event fields are used for context information about the log or metric event itself. A log is defined as an event containing details of something that happened. Log events must include the time at which the thing happened. Examples of log events include a process starting on a host, a network packet being sent from a source to a destination, or a network connection between a client and a server being initiated or closed. A metric is defined as an event containing one or more numerical or categorical measurements and the time at which the measurement was taken. Examples of metric events include memory pressure measured on a host, or vulnerabilities measured on a scanned host. +example: user-management +Event category. +This contains high-level information about the contents of the event. It is more generic than `event.action`, in the sense that typically a category contains multiple actions. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. +-- -*`event.id`*:: +*`event.created`*:: + -- -type: keyword - -example: 8a4f500d - -Unique ID to describe the event. +type: date +event.created contains the date/time when the event was first read by an agent, or by your pipeline. +This field is distinct from @timestamp in that @timestamp typically contain the time extracted from the original event. +In most situations, these two timestamps will be slightly different. The difference can be used to calculate the delay between your source generating an event, and the time when your agent first processed it. This can be used to monitor your agent's or pipeline's ability to keep up with your event source. +In case the two timestamps are identical, @timestamp should be used. -- -*`event.kind`*:: +*`event.dataset`*:: + -- type: keyword -example: state - -The kind of the event. -This gives information about what type of information the event contains, without being specific to the contents of the event. Examples are `event`, `state`, `alarm`. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. +example: stats +Name of the dataset. +The concept of a `dataset` (fileset / metricset) is used in Beats as a subset of modules. It contains the information which is currently stored in metricset.name and metricset.module or fileset.name. -- -*`event.category`*:: +*`event.duration`*:: + -- -type: keyword +type: long -example: user-management +Duration of the event in nanoseconds. +If event.start and event.end are known this value should be the difference between the end and start time. -Event category. -This contains high-level information about the contents of the event. It is more generic than `event.action`, in the sense that typically a category contains multiple actions. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. +-- +*`event.end`*:: ++ +-- +type: date + +event.end contains the date when the event ended or when the activity was last observed. -- -*`event.action`*:: +*`event.hash`*:: + -- type: keyword -example: user-password-change - -The action captured by the event. -This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. +example: 123456789012345678901234567890ABCD +Hash (perhaps logstash fingerprint) of raw field to be able to demonstrate log integrity. -- -*`event.outcome`*:: +*`event.id`*:: + -- type: keyword -example: success - -The outcome of the event. -If the event describes an action, this fields contains the outcome of that action. Examples outcomes are `success` and `failure`. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. +example: 8a4f500d +Unique ID to describe the event. -- -*`event.type`*:: +*`event.kind`*:: + -- type: keyword -Reserved for future usage. -Please avoid using this field for user data. +example: state +The kind of the event. +This gives information about what type of information the event contains, without being specific to the contents of the event. Examples are `event`, `state`, `alarm`. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. -- @@ -1155,19 +1250,48 @@ example: mysql Name of the module this data is coming from. This information is coming from the modules used in Beats or Logstash. +-- +*`event.original`*:: ++ -- +type: keyword -*`event.dataset`*:: +example: Sep 19 08:26:10 host CEF:0|Security| threatmanager|1.0|100| worm successfully stopped|10|src=10.0.0.1 dst=2.1.2.2spt=1232 + +Raw text message of entire event. Used to demonstrate log integrity. +This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. + +-- + +*`event.outcome`*:: + -- type: keyword -example: stats +example: success -Name of the dataset. -The concept of a `dataset` (fileset / metricset) is used in Beats as a subset of modules. It contains the information which is currently stored in metricset.name and metricset.module or fileset.name. +The outcome of the event. +If the event describes an action, this fields contains the outcome of that action. Examples outcomes are `success` and `failure`. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. + +-- +*`event.risk_score`*:: ++ +-- +type: float + +Risk score or priority of the event (e.g. security solutions). Use your system's original value here. + +-- + +*`event.risk_score_norm`*:: ++ +-- +type: float + +Normalized risk score or priority of the event, on a scale of 0 to 100. +This is mainly useful if you use more than one system that assigns risk scores, and you want to see a normalized value across all systems. -- @@ -1178,122 +1302,132 @@ type: long example: 7 -Severity describes the severity of the event. What the different severity values mean can very different between use cases. It's up to the implementer to make sure severities are consistent across events. - +Severity describes the original severity of the event. What the different severity values mean can very different between use cases. It's up to the implementer to make sure severities are consistent across events. -- -*`event.original`*:: +*`event.start`*:: + -- -type: keyword +type: date -example: Sep 19 08:26:10 host CEF:0|Security| threatmanager|1.0|100| worm successfully stopped|10|src=10.0.0.1 dst=2.1.2.2spt=1232 +event.start contains the date when the event started or when the activity was first observed. -Raw text message of entire event. Used to demonstrate log integrity. -This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. +-- +*`event.timezone`*:: ++ +-- +type: keyword -Field is not indexed. +This field should be populated when the event's timestamp does not include timezone information already (e.g. default Syslog timestamps). It's optional otherwise. +Acceptable timezone formats are: a canonical ID (e.g. "Europe/Amsterdam"), abbreviated (e.g. "EST") or an HH:mm differential (e.g. "-05:00"). -- -*`event.hash`*:: +*`event.type`*:: + -- type: keyword -example: 123456789012345678901234567890ABCD +Reserved for future usage. +Please avoid using this field for user data. -Hash (perhaps logstash fingerprint) of raw field to be able to demonstrate log integrity. +-- +[float] +== file fields --- +A file is defined as a set of information that has been created on, or has existed on a filesystem. +File objects can be associated with host events, network events, and/or file events (e.g., those produced by File Integrity Monitoring [FIM] products or services). File fields provide details about the affected file associated with the event or metric. -*`event.duration`*:: + +*`file.ctime`*:: + -- -type: long +type: date -format: duration +Last time file metadata changed. -Duration of the event in nanoseconds. -If event.start and event.end are known this value should be the difference between the end and start time. +-- + +*`file.device`*:: ++ +-- +type: keyword +Device that is the source of the file. -- -*`event.timezone`*:: +*`file.extension`*:: + -- type: keyword -This field should be populated when the event's timestamp does not include timezone information already (e.g. default Syslog timestamps). It's optional otherwise. -Acceptable timezone formats are: a canonical ID (e.g. "Europe/Amsterdam"), abbreviated (e.g. "EST") or an HH:mm differential (e.g. "-05:00"). +example: png +File extension. +This should allow easy filtering by file extensions. -- -*`event.created`*:: +*`file.gid`*:: + -- -type: date - -event.created contains the date when the event was created. -This timestamp is distinct from @timestamp in that @timestamp contains the processed timestamp. For logs these two timestamps can be different as the timestamp in the log line and when the event is read for example by Filebeat are not identical. `@timestamp` must contain the timestamp extracted from the log line, event.created when the log line is read. The same could apply to package capturing where @timestamp contains the timestamp extracted from the network package and event.created when the event was created. -In case the two timestamps are identical, @timestamp should be used. +type: keyword +Primary group ID (GID) of the file. -- -*`event.start`*:: +*`file.group`*:: + -- -type: date +type: keyword -event.start contains the date when the event started or when the activity was first observed. +Primary group name of the file. +-- +*`file.inode`*:: ++ -- +type: keyword -*`event.end`*:: +Inode representing the file in the filesystem. + +-- + +*`file.mode`*:: + -- -type: date +type: keyword -event.end contains the date when the event ended or when the activity was last observed. +example: 416 +Mode of the file in octal representation. -- -*`event.risk_score`*:: +*`file.mtime`*:: + -- -type: float - -Risk score or priority of the event (e.g. security solutions). Use your system's original value here. +type: date +Last time file content was modified. -- -*`event.risk_score_norm`*:: +*`file.owner`*:: + -- -type: float - -Normalized risk score or priority of the event, on a scale of 0 to 100. -This is mainly useful if you use more than one system that assigns risk scores, and you want to see a normalized value across all systems. +type: keyword +File owner's username. -- -[float] -== file fields - -A file is defined as a set of information that has been created on, or has existed on a filesystem. File objects can be associated with host events, network events, and/or file events (e.g., those produced by File Integrity Monitoring [FIM] products or services). File fields provide details about the affected file associated with the event or metric. - - - *`file.path`*:: + -- @@ -1303,25 +1437,21 @@ Path to the file. -- -*`file.target_path`*:: +*`file.size`*:: + -- -type: keyword +type: long -Target path for symlinks. +File size in bytes (field is only added when `type` is `file`). -- -*`file.extension`*:: +*`file.target_path`*:: + -- type: keyword -example: png - -File extension. -This should allow easy filtering by file extensions. - +Target path for symlinks. -- @@ -1334,98 +1464,109 @@ File type (file, dir, or symlink). -- -*`file.device`*:: +*`file.uid`*:: + -- type: keyword -Device that is the source of the file. +The user ID (UID) or security identifier (SID) of the file owner. -- -*`file.inode`*:: -+ --- -type: keyword +[float] +== geo fields -Inode representing the file in the filesystem. +Geo fields can carry data about a specific location related to an event. +This geolocation information can be derived from techniques such as Geo IP, or be user-supplied. --- -*`file.uid`*:: +*`geo.city_name`*:: + -- type: keyword -The user ID (UID) or security identifier (SID) of the file owner. +example: Montreal +City name. -- -*`file.owner`*:: +*`geo.continent_name`*:: + -- type: keyword -File owner's username. +example: North America + +Name of the continent. -- -*`file.gid`*:: +*`geo.country_iso_code`*:: + -- type: keyword -Primary group ID (GID) of the file. +example: CA + +Country ISO code. -- -*`file.group`*:: +*`geo.country_name`*:: + -- type: keyword -Primary group name of the file. +example: Canada + +Country name. -- -*`file.mode`*:: +*`geo.location`*:: + -- -type: keyword +type: geo_point -example: 416 +example: { "lon": -73.614830, "lat": 45.505918 } -Mode of the file in octal representation. +Longitude and latitude. -- -*`file.size`*:: +*`geo.name`*:: + -- -type: long +type: keyword -format: bytes +example: boston-dc -File size in bytes (field is only added when `type` is `file`). +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`file.mtime`*:: +*`geo.region_iso_code`*:: + -- -type: date +type: keyword -Last time file content was modified. +example: CA-QC + +Region ISO code. -- -*`file.ctime`*:: +*`geo.region_name`*:: + -- -type: date +type: keyword -Last time file metadata changed. +example: Quebec + +Region name. -- @@ -1435,7 +1576,6 @@ Last time file metadata changed. The group fields are meant to represent groups that are relevant to the event. - *`group.id`*:: + -- @@ -1443,7 +1583,6 @@ type: keyword Unique identifier for the group on the system/platform. - -- *`group.name`*:: @@ -1453,133 +1592,162 @@ type: keyword Name of the group. - -- [float] == host fields -A host is defined as a general computing instance. ECS host.* fields should be populated with details about the host on which the event happened, or on which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes. +A host is defined as a general computing instance. +ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes. - -*`host.hostname`*:: +*`host.architecture`*:: + -- type: keyword -Hostname of the host. -It normally contains what the `hostname` command returns on the host machine. +example: x86_64 +Operating system architecture. -- -*`host.name`*:: +*`host.geo.city_name`*:: + -- type: keyword -Name of the host. -It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. +example: Montreal +City name. -- -*`host.id`*:: +*`host.geo.continent_name`*:: + -- type: keyword -Unique host id. -As hostname is not always unique, use values that are meaningful in your environment. -Example: The current usage of `beat.name`. +example: North America +Name of the continent. -- -*`host.ip`*:: +*`host.geo.country_iso_code`*:: + -- -type: ip +type: keyword -Host ip address. +example: CA +Country ISO code. -- -*`host.mac`*:: +*`host.geo.country_name`*:: + -- type: keyword -Host mac address. +example: Canada +Country name. -- -*`host.type`*:: +*`host.geo.location`*:: + -- -type: keyword +type: geo_point -Type of host. -For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. +example: { "lon": -73.614830, "lat": 45.505918 } +Longitude and latitude. -- -*`host.architecture`*:: +*`host.geo.name`*:: + -- type: keyword -example: x86_64 - -Operating system architecture. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -[float] -== os fields +*`host.geo.region_iso_code`*:: ++ +-- +type: keyword -The OS fields contain information about the operating system. +example: CA-QC +Region ISO code. +-- -*`host.os.platform`*:: +*`host.geo.region_name`*:: + -- type: keyword -example: darwin +example: Quebec -Operating system platform (such centos, ubuntu, windows). +Region name. + +-- + +*`host.hostname`*:: ++ +-- +type: keyword +Hostname of the host. +It normally contains what the `hostname` command returns on the host machine. -- -*`host.os.name`*:: +*`host.id`*:: + -- type: keyword -example: Mac OS X +Unique host id. +As hostname is not always unique, use values that are meaningful in your environment. +Example: The current usage of `beat.name`. -Operating system name, without the version. +-- + +*`host.ip`*:: ++ +-- +type: ip +Host ip address. -- -*`host.os.full`*:: +*`host.mac`*:: + -- type: keyword -example: Mac OS Mojave +Host mac address. -Operating system name, including the version or code name. +-- + +*`host.name`*:: ++ +-- +type: keyword +Name of the host. +It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. -- @@ -1592,18 +1760,16 @@ example: debian OS family (such as redhat, debian, freebsd, windows). - -- -*`host.os.version`*:: +*`host.os.full`*:: + -- type: keyword -example: 10.14.1 - -Operating system version as a raw string. +example: Mac OS Mojave +Operating system name, including the version or code name. -- @@ -1616,131 +1782,133 @@ example: 4.4.0-112-generic Operating system kernel version as a raw string. - -- -[float] -== geo fields +*`host.os.name`*:: ++ +-- +type: keyword -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. +example: Mac OS X +Operating system name, without the version. +-- -*`host.geo.location`*:: +*`host.os.platform`*:: + -- -type: geo_point - -example: { "lon": -73.614830, "lat": 45.505918 } +type: keyword -Longitude and latitude. +example: darwin +Operating system platform (such centos, ubuntu, windows). -- -*`host.geo.continent_name`*:: +*`host.os.version`*:: + -- type: keyword -example: North America - -Name of the continent. +example: 10.14.1 +Operating system version as a raw string. -- -*`host.geo.country_name`*:: +*`host.type`*:: + -- type: keyword -example: Canada +Type of host. +For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. -Country name. +-- + +*`host.user.email`*:: ++ +-- +type: keyword +User email address. -- -*`host.geo.region_name`*:: +*`host.user.full_name`*:: + -- type: keyword -example: Quebec - -Region name. +example: Albert Einstein +User's full name, if available. -- -*`host.geo.city_name`*:: +*`host.user.group.id`*:: + -- type: keyword -example: Montreal +Unique identifier for the group on the system/platform. -City name. +-- + +*`host.user.group.name`*:: ++ +-- +type: keyword +Name of the group. -- -*`host.geo.country_iso_code`*:: +*`host.user.hash`*:: + -- type: keyword -example: CA - -Country ISO code. - +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -- -*`host.geo.region_iso_code`*:: +*`host.user.id`*:: + -- type: keyword -example: CA-QC - -Region ISO code. - +One or multiple unique identifiers of the user. -- -*`host.geo.name`*:: +*`host.user.name`*:: + -- type: keyword -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +example: albert +Short name or login of the user. -- [float] == http fields -Fields related to HTTP activity. +Fields related to HTTP activity. Use the `url` field set to store the url of the request. - -*`http.request.method`*:: +*`http.request.body.bytes`*:: + -- -type: keyword - -example: get, post, put +type: long -Http request method. -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. +example: 887 +Size in bytes of the request body. -- @@ -1751,84 +1919,63 @@ type: keyword example: Hello world -The full http request body. - - --- - -*`http.request.referrer`*:: -+ --- -type: keyword - -example: https://blog.example.com/ - -Referrer for this HTTP request. - +The full HTTP request body. -- -*`http.response.status_code`*:: +*`http.request.bytes`*:: + -- type: long -example: 404 - -Http response status code. +example: 1437 +Total size in bytes of the request (body and headers). -- -*`http.response.body.content`*:: +*`http.request.method`*:: + -- type: keyword -example: Hello world - -The full http response body. +example: get, post, put +HTTP request method. +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". -- -*`http.version`*:: +*`http.request.referrer`*:: + -- type: keyword -example: 1.1 - -Http version. +example: https://blog.example.com/ +Referrer for this HTTP request. -- -*`http.request.bytes`*:: +*`http.response.body.bytes`*:: + -- type: long -example: 1437 - -format: bytes - -Total size in bytes of the request (body and headers). +example: 887 +Size in bytes of the response body. -- -*`http.request.body.bytes`*:: +*`http.response.body.content`*:: + -- -type: long - -example: 887 - -format: bytes +type: keyword -Size in bytes of the request body. +example: Hello world +The full HTTP response body. -- @@ -1839,24 +1986,29 @@ type: long example: 1437 -format: bytes - Total size in bytes of the response (body and headers). - -- -*`http.response.body.bytes`*:: +*`http.response.status_code`*:: + -- type: long -example: 887 +example: 404 -format: bytes +HTTP response status code. -Size in bytes of the response body. +-- + +*`http.version`*:: ++ +-- +type: keyword + +example: 1.1 +HTTP version. -- @@ -1866,17 +2018,15 @@ Size in bytes of the response body. Fields which are specific to log events. - *`log.level`*:: + -- type: keyword -example: ERR - -Log level of the log event. -Some examples are `WARN`, `ERR`, `INFO`. +example: err +Original log level of the log event. +Some examples are `warn`, `error`, `i`. -- @@ -1887,96 +2037,52 @@ type: keyword example: Sep 19 08:26:10 localhost My log - This is the original log message and contains the full log message before splitting it up in multiple parts. In contrast to the `message` field which can contain an extracted part of the log message, this field contains the original, full log message. It can have already some modifications applied like encoding or new lines removed to clean up the log message. This field is not indexed and doc_values are disabled so it can't be queried but the value can be retrieved from `_source`. - -Field is not indexed. - -- [float] == network fields -The network is defined as the communication path over which a host or network event happens. The network.* fields should be populated with details about the network activity associated with an event. - - - -*`network.name`*:: -+ --- -type: keyword - -example: Guest Wifi - -Name given by operators to sections of their network. - - --- - -*`network.type`*:: -+ --- -type: keyword - -example: ipv4 - -In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. - - --- - -*`network.iana_number`*:: -+ --- -type: keyword - -example: 6 - -IANA Protocol Number (https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml). Standardized list of protocols. This aligns well with NetFlow and sFlow related logs which use the IANA Protocol Number. - +The network is defined as the communication path over which a host or network event happens. +The network.* fields should be populated with details about the network activity associated with an event. --- -*`network.transport`*:: +*`network.application`*:: + -- type: keyword -example: tcp - -Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. +example: aim +A name given to an application level protocol. This can be arbitrarily assigned for things like microservices, but also apply to things like skype, icq, facebook, twitter. This would be used in situations where the vendor or service can be decoded such as from the source/dest IP owners, ports, or wire format. +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". -- -*`network.application`*:: +*`network.bytes`*:: + -- -type: keyword - -example: aim +type: long -A name given to an application. This can be arbitrarily assigned for things like microservices, but also apply to things like skype, icq, facebook, twitter. This would be used in situations where the vendor or service can be decoded such as from the source/dest IP owners, ports, or wire format. -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. +example: 368 +Total bytes transferred in both directions. +If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. -- -*`network.protocol`*:: +*`network.community_id`*:: + -- type: keyword -example: http - -L7 Network protocol name. ex. http, lumberjack, transport protocol. -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. +example: 1:hO+sN4H+MG5MY/8hIrXPqc4ZQz0= +A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. +Learn more at https://github.com/corelight/community-id-spec. -- @@ -1998,7 +2104,6 @@ Recommended values are: When mapping events from a host-based monitoring context, populate this field from the host's point of view. When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of your network perimeter. - -- *`network.forwarded_ip`*:: @@ -2010,34 +2115,27 @@ example: 192.1.1.2 Host IP address when the source IP address is the proxy. - -- -*`network.community_id`*:: +*`network.iana_number`*:: + -- type: keyword -example: 1:hO+sN4H+MG5MY/8hIrXPqc4ZQz0= - -A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. -Learn more at https://github.com/corelight/community-id-spec. +example: 6 +IANA Protocol Number (https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml). Standardized list of protocols. This aligns well with NetFlow and sFlow related logs which use the IANA Protocol Number. -- -*`network.bytes`*:: +*`network.name`*:: + -- -type: long - -example: 368 - -format: bytes +type: keyword -Total bytes transferred in both directions. -If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. +example: Guest Wifi +Name given by operators to sections of their network. -- @@ -2051,129 +2149,165 @@ example: 24 Total packets transferred in both directions. If `source.packets` and `destination.packets` are known, `network.packets` is their sum. - -- -[float] -== observer fields +*`network.protocol`*:: ++ +-- +type: keyword -An observer is defined as a special network, security, or application device used to detect, observe, or create network, security, or application-related events and metrics. This could be a custom hardware appliance or a server that has been configured to run special network, security, or application software. Examples include firewalls, intrusion detection/prevention systems, network monitoring sensors, web application firewalls, data loss prevention systems, and APM servers. The observer.* fields shall be populated with details of the system, if any, that detects, observes and/or creates a network, security, or application event or metric. Message queues and ETL components used in processing events or metrics are not considered observers in ECS. +example: http +L7 Network protocol name. ex. http, lumberjack, transport protocol. +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". +-- -*`observer.mac`*:: +*`network.transport`*:: + -- type: keyword -MAC address of the observer +example: tcp +Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". -- -*`observer.ip`*:: +*`network.type`*:: + -- -type: ip +type: keyword -IP address of the observer. +example: ipv4 +In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". -- -*`observer.hostname`*:: +[float] +== observer fields + +An observer is defined as a special network, security, or application device used to detect, observe, or create network, security, or application-related events and metrics. +This could be a custom hardware appliance or a server that has been configured to run special network, security, or application software. Examples include firewalls, intrusion detection/prevention systems, network monitoring sensors, web application firewalls, data loss prevention systems, and APM servers. The observer.* fields shall be populated with details of the system, if any, that detects, observes and/or creates a network, security, or application event or metric. Message queues and ETL components used in processing events or metrics are not considered observers in ECS. + + +*`observer.geo.city_name`*:: + -- type: keyword -Hostname of the observer. +example: Montreal +City name. -- -*`observer.vendor`*:: +*`observer.geo.continent_name`*:: + -- type: keyword -observer vendor information. +example: North America +Name of the continent. -- -*`observer.version`*:: +*`observer.geo.country_iso_code`*:: + -- type: keyword -Observer version. +example: CA +Country ISO code. -- -*`observer.serial_number`*:: +*`observer.geo.country_name`*:: + -- type: keyword -Observer serial number. +example: Canada + +Country name. +-- +*`observer.geo.location`*:: ++ -- +type: geo_point -*`observer.type`*:: +example: { "lon": -73.614830, "lat": 45.505918 } + +Longitude and latitude. + +-- + +*`observer.geo.name`*:: + -- type: keyword -example: firewall - -The type of the observer the data is coming from. -There is no predefined list of observer types. Some examples are `forwarder`, `firewall`, `ids`, `ips`, `proxy`, `poller`, `sensor`, `APM server`. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -[float] -== os fields +*`observer.geo.region_iso_code`*:: ++ +-- +type: keyword -The OS fields contain information about the operating system. +example: CA-QC +Region ISO code. +-- -*`observer.os.platform`*:: +*`observer.geo.region_name`*:: + -- type: keyword -example: darwin - -Operating system platform (such centos, ubuntu, windows). +example: Quebec +Region name. -- -*`observer.os.name`*:: +*`observer.hostname`*:: + -- type: keyword -example: Mac OS X +Hostname of the observer. -Operating system name, without the version. +-- + +*`observer.ip`*:: ++ +-- +type: ip +IP address of the observer. -- -*`observer.os.full`*:: +*`observer.mac`*:: + -- type: keyword -example: Mac OS Mojave - -Operating system name, including the version or code name. - +MAC address of the observer -- @@ -2186,18 +2320,16 @@ example: debian OS family (such as redhat, debian, freebsd, windows). - -- -*`observer.os.version`*:: +*`observer.os.full`*:: + -- type: keyword -example: 10.14.1 - -Operating system version as a raw string. +example: Mac OS Mojave +Operating system name, including the version or code name. -- @@ -2210,138 +2342,102 @@ example: 4.4.0-112-generic Operating system kernel version as a raw string. - --- - -[float] -== geo fields - -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. - - - -*`observer.geo.location`*:: -+ --- -type: geo_point - -example: { "lon": -73.614830, "lat": 45.505918 } - -Longitude and latitude. - - -- -*`observer.geo.continent_name`*:: +*`observer.os.name`*:: + -- type: keyword -example: North America - -Name of the continent. +example: Mac OS X +Operating system name, without the version. -- -*`observer.geo.country_name`*:: +*`observer.os.platform`*:: + -- type: keyword -example: Canada - -Country name. +example: darwin +Operating system platform (such centos, ubuntu, windows). -- -*`observer.geo.region_name`*:: +*`observer.os.version`*:: + -- type: keyword -example: Quebec - -Region name. +example: 10.14.1 +Operating system version as a raw string. -- -*`observer.geo.city_name`*:: +*`observer.serial_number`*:: + -- type: keyword -example: Montreal - -City name. - +Observer serial number. -- -*`observer.geo.country_iso_code`*:: +*`observer.type`*:: + -- type: keyword -example: CA - -Country ISO code. +example: firewall +The type of the observer the data is coming from. +There is no predefined list of observer types. Some examples are `forwarder`, `firewall`, `ids`, `ips`, `proxy`, `poller`, `sensor`, `APM server`. -- -*`observer.geo.region_iso_code`*:: +*`observer.vendor`*:: + -- type: keyword -example: CA-QC - -Region ISO code. - +observer vendor information. -- -*`observer.geo.name`*:: +*`observer.version`*:: + -- type: keyword -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. - +Observer version. -- [float] == organization fields -The organization fields enrich data with information about the company or entity the data is associated with. These fields help you arrange or filter data stored in an index by one or multiple organizations. +The organization fields enrich data with information about the company or entity the data is associated with. +These fields help you arrange or filter data stored in an index by one or multiple organizations. - -*`organization.name`*:: +*`organization.id`*:: + -- type: keyword -Organization name. - +Unique identifier for the organization. -- -*`organization.id`*:: +*`organization.name`*:: + -- type: keyword -Unique identifier for the organization. - +Organization name. -- @@ -2351,93 +2447,99 @@ Unique identifier for the organization. The OS fields contain information about the operating system. - -*`os.platform`*:: +*`os.family`*:: + -- type: keyword -example: darwin - -Operating system platform (such centos, ubuntu, windows). +example: debian +OS family (such as redhat, debian, freebsd, windows). -- -*`os.name`*:: +*`os.full`*:: + -- type: keyword -example: Mac OS X - -Operating system name, without the version. +example: Mac OS Mojave +Operating system name, including the version or code name. -- -*`os.full`*:: +*`os.kernel`*:: + -- type: keyword -example: Mac OS Mojave - -Operating system name, including the version or code name. +example: 4.4.0-112-generic +Operating system kernel version as a raw string. -- -*`os.family`*:: +*`os.name`*:: + -- type: keyword -example: debian - -OS family (such as redhat, debian, freebsd, windows). +example: Mac OS X +Operating system name, without the version. -- -*`os.version`*:: +*`os.platform`*:: + -- type: keyword -example: 10.14.1 - -Operating system version as a raw string. +example: darwin +Operating system platform (such centos, ubuntu, windows). -- -*`os.kernel`*:: +*`os.version`*:: + -- type: keyword -example: 4.4.0-112-generic - -Operating system kernel version as a raw string. +example: 10.14.1 +Operating system version as a raw string. -- [float] == process fields -These fields contain information about a process. These fields can help you correlate metrics information with a process id/name from a log message. The `process.pid` often stays in the metric itself and is copied to the global field for correlation. +These fields contain information about a process. +These fields can help you correlate metrics information with a process id/name from a log message. The `process.pid` often stays in the metric itself and is copied to the global field for correlation. + + +*`process.args`*:: ++ +-- +type: keyword +example: ['ssh', '-l', 'user', '10.0.0.16'] +Array of process arguments. +May be filtered to protect sensitive information. -*`process.pid`*:: +-- + +*`process.executable`*:: + -- -type: long +type: keyword -Process id. +example: /usr/bin/ssh +Absolute path to the process executable. -- @@ -2451,6 +2553,14 @@ example: ssh Process name. Sometimes called program name or similar. +-- + +*`process.pid`*:: ++ +-- +type: long + +Process id. -- @@ -2461,31 +2571,27 @@ type: long Process parent id. - -- -*`process.args`*:: +*`process.start`*:: + -- -type: keyword - -example: ['ssh', '-l', 'user', '10.0.0.16'] +type: date -Process arguments. -May be filtered to protect sensitive information. +example: 2016-05-23T08:05:34.853Z +The time the process started. -- -*`process.executable`*:: +*`process.thread.id`*:: + -- -type: keyword - -example: /usr/bin/ssh +type: long -Absolute path to the process executable. +example: 4242 +Thread ID. -- @@ -2497,133 +2603,180 @@ type: keyword Process title. The proctitle, some times the same as process name. Can also be different: for example a browser setting its title to the web page currently opened. - -- -*`process.thread.id`*:: +*`process.working_directory`*:: + -- -type: long +type: keyword -example: 4242 +example: /home/alice -Thread ID. +The working directory of the process. + +-- + +[float] +== related fields +This field set is meant to facilitate pivoting around a piece of data. +Some pieces of information can be seen in many places in an ECS event. To facilitate searching for them, store an array of all seen values to their corresponding field in `related.`. +A concrete example is IP addresses, which can be under host, observer, source, destination, client, server, and network.forwarded_ip. If you append all IPs to `related.ip`, you can then search for a given IP trivially, no matter where it appeared, by querying `related.ip:a.b.c.d`. + +*`related.ip`*:: ++ -- +type: ip -*`process.start`*:: +All of the IPs seen on your event. + +-- + +[float] +== server fields + +A Server is defined as the responder in a network connection for events regarding sessions, connections, or bidirectional flow records. +For TCP events, the server is the receiver of the initial SYN packet(s) of the TCP connection. For other protocols, the server is generally the responder in the network transaction. Some systems actually use the term "responder" to refer the server in TCP connections. The server fields describe details about the system acting as the server in the network event. Server fields are usually populated in conjunction with client fields. Server fields are generally not populated for packet-level events. +Client / server representations can add semantic context to an exchange, which is helpful to visualize the data in certain situations. If your context falls in that category, you should still ensure that source and destination are filled appropriately. + + +*`server.address`*:: + -- -type: date +type: keyword -example: 2016-05-23T08:05:34.853Z +Some event server addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. +Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. -The time the process started. +-- + +*`server.bytes`*:: ++ +-- +type: long +example: 184 + +Bytes sent from the server to the client. -- -*`process.working_directory`*:: +*`server.domain`*:: + -- type: keyword -example: /home/alice - -The working directory of the process. +Server domain. +-- +*`server.geo.city_name`*:: ++ -- +type: keyword -[float] -== related fields - -This field set is meant to facilitate pivoting around a piece of data. Some pieces of information can be seen in many places in ECS. To facilitate searching for them, append values to their corresponding field in `related.`. A concrete example is IP addresses, which can be under host, observer, source, destination, client, server, and network.forwarded_ip. If you append all IPs to `related.ip`, you can then search for a given IP trivially, no matter where it appeared, by querying `related.ip:a.b.c.d`. +example: Montreal +City name. +-- -*`related.ip`*:: +*`server.geo.continent_name`*:: + -- -type: ip +type: keyword -All of the IPs seen on your event. +example: North America +Name of the continent. -- -[float] -== server fields +*`server.geo.country_iso_code`*:: ++ +-- +type: keyword -A Server is defined as the responder in a network connection for events regarding sessions, connections, or bidirectional flow records. For TCP events, the server is the receiver of the initial SYN packet(s) of the TCP connection. For other protocols, the server is generally the responder in the network transaction. Some systems actually use the term "responder" to refer the server in TCP connections. The server fields describe details about the system acting as the server in the network event. Server fields are usually populated in conjunction with client fields. Server fields are generally not populated for packet-level events. -Client / server representations can add semantic context to an exchange, which is helpful to visualize the data in certain situations. If your context falls in that category, you should still ensure that source and destination are filled appropriately. +example: CA +Country ISO code. +-- -*`server.address`*:: +*`server.geo.country_name`*:: + -- type: keyword -Some event server addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. -Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. +example: Canada +Country name. -- -*`server.ip`*:: +*`server.geo.location`*:: + -- -type: ip +type: geo_point -IP address of the server. -Can be one or multiple IPv4 or IPv6 addresses. +example: { "lon": -73.614830, "lat": 45.505918 } +Longitude and latitude. -- -*`server.port`*:: +*`server.geo.name`*:: + -- -type: long +type: keyword -Port of the server. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`server.mac`*:: +*`server.geo.region_iso_code`*:: + -- type: keyword -MAC address of the server. +example: CA-QC +Region ISO code. -- -*`server.domain`*:: +*`server.geo.region_name`*:: + -- type: keyword -Server domain. +example: Quebec +Region name. -- -*`server.bytes`*:: +*`server.ip`*:: + -- -type: long +type: ip -example: 184 +IP address of the server. +Can be one or multiple IPv4 or IPv6 addresses. -format: bytes +-- -Bytes sent from the server to the client. +*`server.mac`*:: ++ +-- +type: keyword +MAC address of the server. -- @@ -2636,120 +2789,103 @@ example: 12 Packets sent from the server to the client. - -- -[float] -== geo fields - -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. - - - -*`server.geo.location`*:: +*`server.port`*:: + -- -type: geo_point - -example: { "lon": -73.614830, "lat": 45.505918 } - -Longitude and latitude. +type: long +Port of the server. -- -*`server.geo.continent_name`*:: +*`server.user.email`*:: + -- type: keyword -example: North America - -Name of the continent. - +User email address. -- -*`server.geo.country_name`*:: +*`server.user.full_name`*:: + -- type: keyword -example: Canada - -Country name. +example: Albert Einstein +User's full name, if available. -- -*`server.geo.region_name`*:: +*`server.user.group.id`*:: + -- type: keyword -example: Quebec - -Region name. - +Unique identifier for the group on the system/platform. -- -*`server.geo.city_name`*:: +*`server.user.group.name`*:: + -- type: keyword -example: Montreal - -City name. - +Name of the group. -- -*`server.geo.country_iso_code`*:: +*`server.user.hash`*:: + -- type: keyword -example: CA - -Country ISO code. - +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -- -*`server.geo.region_iso_code`*:: +*`server.user.id`*:: + -- type: keyword -example: CA-QC - -Region ISO code. - +One or multiple unique identifiers of the user. -- -*`server.geo.name`*:: +*`server.user.name`*:: + -- type: keyword -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +example: albert +Short name or login of the user. -- [float] == service fields -The service fields describe the service for or from which the data was collected. These fields help you find and correlate logs for a specific service and version. +The service fields describe the service for or from which the data was collected. +These fields help you find and correlate logs for a specific service and version. + + +*`service.ephemeral_id`*:: ++ +-- +type: keyword + +example: 8a4f500f +Ephemeral identifier of this service (if one exists). +This id normally changes across restarts, but `service.id` does not. +-- *`service.id`*:: + @@ -2762,7 +2898,6 @@ Unique identifier of the running service. This id should uniquely identify this service. This makes it possible to correlate logs and metrics for one specific service. Example: If you are experiencing issues with one redis instance, you can filter on that id to see metrics and logs for that single instance. - -- *`service.name`*:: @@ -2777,6 +2912,14 @@ The name of the service is normally user given. This allows if two instances of Also it allows for distributed services that run on multiple hosts to correlate the related instances based on the name. In the case of Elasticsearch the service.name could contain the cluster name. For Beats the service.name is by default a copy of the `service.type` field if no name is specified. +-- + +*`service.state`*:: ++ +-- +type: keyword + +Current state of the service. -- @@ -2791,115 +2934,163 @@ The type of the service data is collected from. The type can be used to group and correlate logs and metrics from one service type. Example: If logs or metrics are collected from Elasticsearch, `service.type` would be `elasticsearch`. - -- -*`service.state`*:: +*`service.version`*:: + -- type: keyword -Current state of the service. +example: 3.2.4 +Version of the service the data was collected from. +This allows to look at a data set only for a specific version of a service. -- -*`service.version`*:: +[float] +== source fields + +Source fields describe details about the source of a packet/event. +Source fields are usually populated in conjunction with destination fields. + + +*`source.address`*:: + -- type: keyword -example: 3.2.4 +Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. +Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. -Version of the service the data was collected from. -This allows to look at a data set only for a specific version of a service. +-- + +*`source.bytes`*:: ++ +-- +type: long + +example: 184 +Bytes sent from the source to the destination. -- -*`service.ephemeral_id`*:: +*`source.domain`*:: + -- type: keyword -example: 8a4f500f +Source domain. -Ephemeral identifier of this service (if one exists). -This id normally changes across restarts, but `service.id` does not. +-- + +*`source.geo.city_name`*:: ++ +-- +type: keyword +example: Montreal + +City name. -- -[float] -== source fields +*`source.geo.continent_name`*:: ++ +-- +type: keyword -Source fields describe details about the source of a packet/event. Source fields are usually populated in conjunction with destination fields. +example: North America +Name of the continent. +-- -*`source.address`*:: +*`source.geo.country_iso_code`*:: + -- type: keyword -Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. -Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. +example: CA +Country ISO code. -- -*`source.ip`*:: +*`source.geo.country_name`*:: + -- -type: ip +type: keyword -IP address of the source. -Can be one or multiple IPv4 or IPv6 addresses. +example: Canada +Country name. -- -*`source.port`*:: +*`source.geo.location`*:: + -- -type: long +type: geo_point -Port of the source. +example: { "lon": -73.614830, "lat": 45.505918 } +Longitude and latitude. -- -*`source.mac`*:: +*`source.geo.name`*:: + -- type: keyword -MAC address of the source. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`source.domain`*:: +*`source.geo.region_iso_code`*:: + -- type: keyword -Source domain. +example: CA-QC +Region ISO code. -- -*`source.bytes`*:: +*`source.geo.region_name`*:: + -- -type: long +type: keyword -example: 184 +example: Quebec + +Region name. + +-- + +*`source.ip`*:: ++ +-- +type: ip -format: bytes +IP address of the source. +Can be one or multiple IPv4 or IPv6 addresses. + +-- -Bytes sent from the source to the destination. +*`source.mac`*:: ++ +-- +type: keyword +MAC address of the source. -- @@ -2912,133 +3103,110 @@ example: 12 Packets sent from the source to the destination. - -- -[float] -== geo fields - -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. - - - -*`source.geo.location`*:: +*`source.port`*:: + -- -type: geo_point - -example: { "lon": -73.614830, "lat": 45.505918 } - -Longitude and latitude. +type: long +Port of the source. -- -*`source.geo.continent_name`*:: +*`source.user.email`*:: + -- type: keyword -example: North America - -Name of the continent. - +User email address. -- -*`source.geo.country_name`*:: +*`source.user.full_name`*:: + -- type: keyword -example: Canada - -Country name. +example: Albert Einstein +User's full name, if available. -- -*`source.geo.region_name`*:: +*`source.user.group.id`*:: + -- type: keyword -example: Quebec - -Region name. - +Unique identifier for the group on the system/platform. -- -*`source.geo.city_name`*:: +*`source.user.group.name`*:: + -- type: keyword -example: Montreal - -City name. - +Name of the group. -- -*`source.geo.country_iso_code`*:: +*`source.user.hash`*:: + -- type: keyword -example: CA - -Country ISO code. - +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -- -*`source.geo.region_iso_code`*:: +*`source.user.id`*:: + -- type: keyword -example: CA-QC - -Region ISO code. - +One or multiple unique identifiers of the user. -- -*`source.geo.name`*:: +*`source.user.name`*:: + -- type: keyword -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +example: albert +Short name or login of the user. -- [float] == url fields -URL fields provide a complete URL, with scheme, host, and path. - +URL fields provide support for complete or partial URLs, and supports the breaking down into scheme, domain, path, and so on. -*`url.original`*:: +*`url.domain`*:: + -- type: keyword -example: https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch +example: www.elastic.co +Domain of the url, such as "www.elastic.co". +In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the `domain` field. -Unmodified original url as seen in the event source. -Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path. -This field is meant to represent the URL as it was observed, complete or not. +-- + +*`url.fragment`*:: ++ +-- +type: keyword +Portion of the url after the `#`, such as "top". +The `#` is not part of the fragment. -- @@ -3051,54 +3219,47 @@ example: https://www.elastic.co:443/search?q=elasticsearch#top If full URLs are important to your use case, they should be stored in `url.full`, whether this field is reconstructed or present in the event source. - -- -*`url.scheme`*:: +*`url.original`*:: + -- type: keyword -example: https - -Scheme of the request, such as "https". -Note: The `:` is not part of the scheme. +example: https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch +Unmodified original url as seen in the event source. +Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path. +This field is meant to represent the URL as it was observed, complete or not. -- -*`url.domain`*:: +*`url.password`*:: + -- type: keyword -example: www.elastic.co - -Domain of the request, such as "www.elastic.co". -In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the `domain` field. - +Password of the request. -- -*`url.port`*:: +*`url.path`*:: + -- -type: integer - -example: 443 - -Port of the request, such as 443. +type: keyword +Path of the request, such as "/search". -- -*`url.path`*:: +*`url.port`*:: + -- -type: keyword +type: long -Path of the request, such as "/search". +example: 443 +Port of the request, such as 443. -- @@ -3110,17 +3271,17 @@ type: keyword The query field describes the query string of the request, such as "q=elasticsearch". The `?` is excluded from the query string. If a URL contains no `?`, there is no query field. If there is a `?` but no query, the query field exists with an empty string. The `exists` query can be used to differentiate between the two cases. - -- -*`url.fragment`*:: +*`url.scheme`*:: + -- type: keyword -Portion of the url after the `#`, such as "top". -The `#` is not part of the fragment. +example: https +Scheme of the request, such as "https". +Note: The `:` is not part of the scheme. -- @@ -3131,67 +3292,50 @@ type: keyword Username of the request. - --- - -*`url.password`*:: -+ --- -type: keyword - -Password of the request. - - -- [float] == user fields -The user fields describe information about the user that is relevant to the event. Fields can have one entry or multiple entries. If a user has more than one id, provide an array that includes all of them. - +The user fields describe information about the user that is relevant to the event. +Fields can have one entry or multiple entries. If a user has more than one id, provide an array that includes all of them. -*`user.id`*:: +*`user.email`*:: + -- type: keyword -One or multiple unique identifiers of the user. - +User email address. -- -*`user.name`*:: +*`user.full_name`*:: + -- type: keyword -example: albert - -Short name or login of the user. +example: Albert Einstein +User's full name, if available. -- -*`user.full_name`*:: +*`user.group.id`*:: + -- type: keyword -example: Albert Einstein - -User's full name, if available. - +Unique identifier for the group on the system/platform. -- -*`user.email`*:: +*`user.group.name`*:: + -- type: keyword -User email address. - +Name of the group. -- @@ -3203,52 +3347,43 @@ type: keyword Unique user hash to correlate information for a user in anonymized form. Useful if `user.id` or `user.name` contain confidential information and cannot be used. - -- -[float] -== group fields - -The group fields are meant to represent groups that are relevant to the event. - - - -*`user.group.id`*:: +*`user.id`*:: + -- type: keyword -Unique identifier for the group on the system/platform. - +One or multiple unique identifiers of the user. -- -*`user.group.name`*:: +*`user.name`*:: + -- type: keyword -Name of the group. +example: albert +Short name or login of the user. -- [float] == user_agent fields -The user_agent fields normally come from a browser request. They often show up in web service logs coming from the parsed user agent string. +The user_agent fields normally come from a browser request. +They often show up in web service logs coming from the parsed user agent string. - -*`user_agent.original`*:: +*`user_agent.device.name`*:: + -- type: keyword -example: Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1 - -Unparsed version of the user_agent. +example: iPhone +Name of the device. -- @@ -3261,85 +3396,71 @@ example: Safari Name of the user agent. - -- -*`user_agent.version`*:: +*`user_agent.original`*:: + -- type: keyword -example: 12.0 - -Version of the user agent. +example: Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1 +Unparsed version of the user_agent. -- -*`user_agent.device.name`*:: +*`user_agent.os.family`*:: + -- type: keyword -example: iPhone - -Name of the device. +example: debian +OS family (such as redhat, debian, freebsd, windows). -- -[float] -== os fields - -The OS fields contain information about the operating system. - - - -*`user_agent.os.platform`*:: +*`user_agent.os.full`*:: + -- type: keyword -example: darwin - -Operating system platform (such centos, ubuntu, windows). +example: Mac OS Mojave +Operating system name, including the version or code name. -- -*`user_agent.os.name`*:: +*`user_agent.os.kernel`*:: + -- type: keyword -example: Mac OS X - -Operating system name, without the version. +example: 4.4.0-112-generic +Operating system kernel version as a raw string. -- -*`user_agent.os.full`*:: +*`user_agent.os.name`*:: + -- type: keyword -example: Mac OS Mojave - -Operating system name, including the version or code name. +example: Mac OS X +Operating system name, without the version. -- -*`user_agent.os.family`*:: +*`user_agent.os.platform`*:: + -- type: keyword -example: debian - -OS family (such as redhat, debian, freebsd, windows). +example: darwin +Operating system platform (such centos, ubuntu, windows). -- @@ -3352,28 +3473,16 @@ example: 10.14.1 Operating system version as a raw string. - --- - -*`user_agent.os.kernel`*:: -+ --- -type: keyword - -example: 4.4.0-112-generic - -Operating system kernel version as a raw string. - - -- -*`agent.hostname`*:: +*`user_agent.version`*:: + -- type: keyword -Hostname of the agent. +example: 12.0 +Version of the user agent. -- diff --git a/heartbeat/include/fields.go b/heartbeat/include/fields.go index 29b7c7dc254..65c552961de 100644 --- a/heartbeat/include/fields.go +++ b/heartbeat/include/fields.go @@ -32,5 +32,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "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" + return "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" } diff --git a/journalbeat/docs/fields.asciidoc b/journalbeat/docs/fields.asciidoc index 4b573f290fb..0650f8aed25 100644 --- a/journalbeat/docs/fields.asciidoc +++ b/journalbeat/docs/fields.asciidoc @@ -29,6 +29,15 @@ Contains common beat fields available in all event types. +*`agent.hostname`*:: ++ +-- +type: keyword + +Hostname of the agent. + +-- + *`beat.timezone`*:: + -- @@ -909,8 +918,7 @@ Image labels. [[exported-fields-ecs]] == ECS fields -ECS fields. - +ECS Fields. *`@timestamp`*:: @@ -923,22 +931,10 @@ example: 2016-05-23T08:05:34.853Z required: True Date/time when the event originated. -For log events this is the date/time when the event was generated, and not when it was read. +This is the date/time extracted from the event, typically representing when the event was generated by the source. +If the event source has no original timestamp, this value is typically populated by the first time the event was received by the pipeline. Required field for all events. - --- - -*`tags`*:: -+ --- -type: keyword - -example: ["production", "env2"] - -List of keywords used to tag each event. - - -- *`labels`*:: @@ -948,11 +944,10 @@ type: object example: {'application': 'foo-bar', 'env': 'production'} -Key/value pairs. +Custom key/value pairs. Can be used to add meta information to events. Should not contain nested objects. All values are stored as keyword. Example: `docker` and `k8s` labels. - -- *`message`*:: @@ -962,28 +957,51 @@ type: text example: Hello World -For log events the message field contains the log message. -In other use cases the message field can be used to concatenate different values which are then freely searchable. If multiple messages exist, they can be combined into one message. +For log events the message field contains the log message, optimized for viewing in a log viewer. +For structured logs without an original message field, other fields can be concatenated to form a human-readable summary of the event. +If multiple messages exist, they can be combined into one message. + +-- + +*`tags`*:: ++ +-- +type: keyword + +example: ["production", "env2"] +List of keywords used to tag each event. -- [float] == agent fields -The agent fields contain the data about the software entity, if any, that collects, detects, or observes events on a host, or takes measurements on a host. Examples include Beats. Agents may also run on observers. ECS agent.* fields shall be populated with details of the agent running on the host or observer where the event happened or the measurement was taken. +The agent fields contain the data about the software entity, if any, that collects, detects, or observes events on a host, or takes measurements on a host. +Examples include Beats. Agents may also run on observers. ECS agent.* fields shall be populated with details of the agent running on the host or observer where the event happened or the measurement was taken. - -*`agent.version`*:: +*`agent.ephemeral_id`*:: + -- type: keyword -example: 6.0.0-rc2 +example: 8a4f500f -Version of the agent. +Ephemeral identifier of this agent (if one exists). +This id normally changes across restarts, but `agent.id` does not. + +-- + +*`agent.id`*:: ++ +-- +type: keyword + +example: 8a4f500d +Unique identifier of this agent (if one exists). +Example: For Beats this would be beat.id. -- @@ -994,11 +1012,10 @@ type: keyword example: foo -Name of the agent. +Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. If no name is given, the name is often left empty. - -- *`agent.type`*:: @@ -1011,43 +1028,27 @@ example: filebeat Type of the agent. The agent type stays always the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - --- - -*`agent.id`*:: -+ --- -type: keyword - -example: 8a4f500d - -Unique identifier of this agent (if one exists). -Example: For Beats this would be beat.id. - - -- -*`agent.ephemeral_id`*:: +*`agent.version`*:: + -- type: keyword -example: 8a4f500f - -Ephemeral identifier of this agent (if one exists). -This id normally changes across restarts, but `agent.id` does not. +example: 6.0.0-rc2 +Version of the agent. -- [float] == client fields -A client is defined as the initiator of a network connection for events regarding sessions, connections, or bidirectional flow records. For TCP events, the client is the initiator of the TCP connection that sends the SYN packet(s). For other protocols, the client is generally the initiator or requestor in the network transaction. Some systems use the term "originator" to refer the client in TCP connections. The client fields describe details about the system acting as the client in the network event. Client fields are usually populated in conjunction with server fields. Client fields are generally not populated for packet-level events. +A client is defined as the initiator of a network connection for events regarding sessions, connections, or bidirectional flow records. +For TCP events, the client is the initiator of the TCP connection that sends the SYN packet(s). For other protocols, the client is generally the initiator or requestor in the network transaction. Some systems use the term "originator" to refer the client in TCP connections. The client fields describe details about the system acting as the client in the network event. Client fields are usually populated in conjunction with server fields. Client fields are generally not populated for packet-level events. Client / server representations can add semantic context to an exchange, which is helpful to visualize the data in certain situations. If your context falls in that category, you should still ensure that source and destination are filled appropriately. - *`client.address`*:: + -- @@ -1056,83 +1057,72 @@ type: keyword Some event client addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. - -- -*`client.ip`*:: +*`client.bytes`*:: + -- -type: ip +type: long -IP address of the client. -Can be one or multiple IPv4 or IPv6 addresses. +example: 184 +Bytes sent from the client to the server. -- -*`client.port`*:: +*`client.domain`*:: + -- -type: long - -Port of the client. +type: keyword +Client domain. -- -*`client.mac`*:: +*`client.geo.city_name`*:: + -- type: keyword -MAC address of the client. +example: Montreal +City name. -- -*`client.domain`*:: +*`client.geo.continent_name`*:: + -- type: keyword -Client domain. +example: North America +Name of the continent. -- -*`client.bytes`*:: +*`client.geo.country_iso_code`*:: + -- -type: long - -example: 184 - -format: bytes +type: keyword -Bytes sent from the client to the server. +example: CA +Country ISO code. -- -*`client.packets`*:: +*`client.geo.country_name`*:: + -- -type: long - -example: 12 +type: keyword -Packets sent from the client to the server. +example: Canada +Country name. -- -[float] -== geo fields - -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. - - - *`client.geo.location`*:: + -- @@ -1142,30 +1132,29 @@ example: { "lon": -73.614830, "lat": 45.505918 } Longitude and latitude. - -- -*`client.geo.continent_name`*:: +*`client.geo.name`*:: + -- type: keyword -example: North America - -Name of the continent. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`client.geo.country_name`*:: +*`client.geo.region_iso_code`*:: + -- type: keyword -example: Canada - -Country name. +example: CA-QC +Region ISO code. -- @@ -1178,274 +1167,274 @@ example: Quebec Region name. - -- -*`client.geo.city_name`*:: +*`client.ip`*:: + -- -type: keyword - -example: Montreal - -City name. +type: ip +IP address of the client. +Can be one or multiple IPv4 or IPv6 addresses. -- -*`client.geo.country_iso_code`*:: +*`client.mac`*:: + -- type: keyword -example: CA - -Country ISO code. - +MAC address of the client. -- -*`client.geo.region_iso_code`*:: +*`client.packets`*:: + -- -type: keyword - -example: CA-QC +type: long -Region ISO code. +example: 12 +Packets sent from the client to the server. -- -*`client.geo.name`*:: +*`client.port`*:: + -- -type: keyword - -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +type: long +Port of the client. -- -[float] -== cloud fields - -Fields related to the cloud or infrastructure the events are coming from. - - - -*`cloud.provider`*:: +*`client.user.email`*:: + -- type: keyword -example: ec2 - -Name of the cloud provider. Example values are ec2, gce, or digitalocean. - +User email address. -- -*`cloud.availability_zone`*:: +*`client.user.full_name`*:: + -- type: keyword -example: us-east-1c - -Availability zone in which this host is running. +example: Albert Einstein +User's full name, if available. -- -*`cloud.region`*:: +*`client.user.group.id`*:: + -- type: keyword -example: us-east-1 - -Region in which this host is running. - +Unique identifier for the group on the system/platform. -- -*`cloud.instance.id`*:: +*`client.user.group.name`*:: + -- type: keyword -example: i-1234567890abcdef0 - -Instance ID of the host machine. - +Name of the group. -- -*`cloud.instance.name`*:: +*`client.user.hash`*:: + -- type: keyword -Instance name of the host machine. - +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -- -*`cloud.machine.type`*:: +*`client.user.id`*:: + -- type: keyword -example: t2.medium - -Machine type of the host machine. - +One or multiple unique identifiers of the user. -- -*`cloud.account.id`*:: +*`client.user.name`*:: + -- type: keyword -example: 666777888999 - -The cloud account or organization id used to identify different entities in a multi-tenant environment. -Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. +example: albert +Short name or login of the user. -- [float] -== container fields - -Container fields are used for meta information about the specific container that is the source of information. These fields help correlate data based containers from any runtime. +== cloud fields +Fields related to the cloud or infrastructure the events are coming from. -*`container.runtime`*:: +*`cloud.account.id`*:: + -- type: keyword -example: docker - -Runtime managing this container. +example: 666777888999 +The cloud account or organization id used to identify different entities in a multi-tenant environment. +Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. -- -*`container.id`*:: +*`cloud.availability_zone`*:: + -- type: keyword -Unique container id. +example: us-east-1c +Availability zone in which this host is running. -- -*`container.image.name`*:: +*`cloud.instance.id`*:: + -- type: keyword -Name of the image the container was built on. +example: i-1234567890abcdef0 +Instance ID of the host machine. -- -*`container.image.tag`*:: +*`cloud.instance.name`*:: + -- type: keyword -Container image tag. +Instance name of the host machine. +-- +*`cloud.machine.type`*:: ++ -- +type: keyword -*`container.name`*:: +example: t2.medium + +Machine type of the host machine. + +-- + +*`cloud.provider`*:: + -- type: keyword -Container name. +example: aws +Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. -- -*`container.labels`*:: +*`cloud.region`*:: + -- -type: object +type: keyword -Image labels. +example: us-east-1 +Region in which this host is running. -- [float] -== destination fields - -Destination fields describe details about the destination of a packet/event. Destination fields are usually populated in conjunction with source fields. +== container fields +Container fields are used for meta information about the specific container that is the source of information. +These fields help correlate data based containers from any runtime. -*`destination.address`*:: +*`container.id`*:: + -- type: keyword -Some event destination addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. -Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. - +Unique container id. -- -*`destination.ip`*:: +*`container.image.name`*:: + -- -type: ip +type: keyword -IP address of the destination. -Can be one or multiple IPv4 or IPv6 addresses. +Name of the image the container was built on. + +-- + +*`container.image.tag`*:: ++ +-- +type: keyword +Container image tag. -- -*`destination.port`*:: +*`container.labels`*:: + -- -type: long +type: object -Port of the destination. +Image labels. + +-- + +*`container.name`*:: ++ +-- +type: keyword +Container name. -- -*`destination.mac`*:: +*`container.runtime`*:: + -- type: keyword -MAC address of the destination. +example: docker +Runtime managing this container. -- -*`destination.domain`*:: +[float] +== destination fields + +Destination fields describe details about the destination of a packet/event. +Destination fields are usually populated in conjunction with source fields. + + +*`destination.address`*:: + -- type: keyword -Destination domain. - +Some event destination addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. +Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. -- @@ -1456,31 +1445,62 @@ type: long example: 184 -format: bytes - Bytes sent from the destination to the source. +-- +*`destination.domain`*:: ++ -- +type: keyword -*`destination.packets`*:: +Destination domain. + +-- + +*`destination.geo.city_name`*:: + -- -type: long +type: keyword -example: 12 +example: Montreal -Packets sent from the destination to the source. +City name. + +-- +*`destination.geo.continent_name`*:: ++ +-- +type: keyword + +example: North America + +Name of the continent. -- -[float] -== geo fields +*`destination.geo.country_iso_code`*:: ++ +-- +type: keyword + +example: CA + +Country ISO code. + +-- -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. +*`destination.geo.country_name`*:: ++ +-- +type: keyword +example: Canada +Country name. + +-- *`destination.geo.location`*:: + @@ -1491,30 +1511,29 @@ example: { "lon": -73.614830, "lat": 45.505918 } Longitude and latitude. - -- -*`destination.geo.continent_name`*:: +*`destination.geo.name`*:: + -- type: keyword -example: North America - -Name of the continent. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`destination.geo.country_name`*:: +*`destination.geo.region_iso_code`*:: + -- type: keyword -example: Canada - -Country name. +example: CA-QC +Region ISO code. -- @@ -1527,56 +1546,112 @@ example: Quebec Region name. +-- +*`destination.ip`*:: ++ -- +type: ip -*`destination.geo.city_name`*:: +IP address of the destination. +Can be one or multiple IPv4 or IPv6 addresses. + +-- + +*`destination.mac`*:: + -- type: keyword -example: Montreal +MAC address of the destination. -City name. +-- + +*`destination.packets`*:: ++ +-- +type: long + +example: 12 +Packets sent from the destination to the source. -- -*`destination.geo.country_iso_code`*:: +*`destination.port`*:: ++ +-- +type: long + +Port of the destination. + +-- + +*`destination.user.email`*:: + -- type: keyword -example: CA +User email address. -Country ISO code. +-- +*`destination.user.full_name`*:: ++ +-- +type: keyword + +example: Albert Einstein + +User's full name, if available. -- -*`destination.geo.region_iso_code`*:: +*`destination.user.group.id`*:: + -- type: keyword -example: CA-QC +Unique identifier for the group on the system/platform. -Region ISO code. +-- +*`destination.user.group.name`*:: ++ +-- +type: keyword + +Name of the group. -- -*`destination.geo.name`*:: +*`destination.user.hash`*:: + -- type: keyword -example: boston-dc +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +-- +*`destination.user.id`*:: ++ +-- +type: keyword + +One or multiple unique identifiers of the user. + +-- + +*`destination.user.name`*:: ++ +-- +type: keyword + +example: albert + +Short name or login of the user. -- @@ -1586,29 +1661,35 @@ Not typically used in automated geolocation. Meta-information specific to ECS. - *`ecs.version`*:: + -- type: keyword -example: 1.0.0-beta2 +example: 1.0.0 required: True ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. -The current version is 1.0.0-beta2 . - -- [float] == error fields -These fields can represent errors of any kind. Use them for errors that happen while fetching events or in cases where the event itself contains an error. +These fields can represent errors of any kind. +Use them for errors that happen while fetching events or in cases where the event itself contains an error. + + +*`error.code`*:: ++ +-- +type: keyword +Error code describing the error. +-- *`error.id`*:: + @@ -1617,7 +1698,6 @@ type: keyword Unique identifier for the error. - -- *`error.message`*:: @@ -1627,98 +1707,113 @@ type: text Error message. - -- -*`error.code`*:: +[float] +== event fields + +The event fields are used for context information about the log or metric event itself. +A log is defined as an event containing details of something that happened. Log events must include the time at which the thing happened. Examples of log events include a process starting on a host, a network packet being sent from a source to a destination, or a network connection between a client and a server being initiated or closed. A metric is defined as an event containing one or more numerical or categorical measurements and the time at which the measurement was taken. Examples of metric events include memory pressure measured on a host, or vulnerabilities measured on a scanned host. + + +*`event.action`*:: + -- type: keyword -Error code describing the error. +example: user-password-change +The action captured by the event. +This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. -- -[float] -== event fields +*`event.category`*:: ++ +-- +type: keyword -The event fields are used for context information about the log or metric event itself. A log is defined as an event containing details of something that happened. Log events must include the time at which the thing happened. Examples of log events include a process starting on a host, a network packet being sent from a source to a destination, or a network connection between a client and a server being initiated or closed. A metric is defined as an event containing one or more numerical or categorical measurements and the time at which the measurement was taken. Examples of metric events include memory pressure measured on a host, or vulnerabilities measured on a scanned host. +example: user-management +Event category. +This contains high-level information about the contents of the event. It is more generic than `event.action`, in the sense that typically a category contains multiple actions. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. +-- -*`event.id`*:: +*`event.created`*:: + -- -type: keyword - -example: 8a4f500d - -Unique ID to describe the event. +type: date +event.created contains the date/time when the event was first read by an agent, or by your pipeline. +This field is distinct from @timestamp in that @timestamp typically contain the time extracted from the original event. +In most situations, these two timestamps will be slightly different. The difference can be used to calculate the delay between your source generating an event, and the time when your agent first processed it. This can be used to monitor your agent's or pipeline's ability to keep up with your event source. +In case the two timestamps are identical, @timestamp should be used. -- -*`event.kind`*:: +*`event.dataset`*:: + -- type: keyword -example: state - -The kind of the event. -This gives information about what type of information the event contains, without being specific to the contents of the event. Examples are `event`, `state`, `alarm`. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. +example: stats +Name of the dataset. +The concept of a `dataset` (fileset / metricset) is used in Beats as a subset of modules. It contains the information which is currently stored in metricset.name and metricset.module or fileset.name. -- -*`event.category`*:: +*`event.duration`*:: + -- -type: keyword +type: long -example: user-management +Duration of the event in nanoseconds. +If event.start and event.end are known this value should be the difference between the end and start time. -Event category. -This contains high-level information about the contents of the event. It is more generic than `event.action`, in the sense that typically a category contains multiple actions. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. +-- +*`event.end`*:: ++ +-- +type: date + +event.end contains the date when the event ended or when the activity was last observed. -- -*`event.action`*:: +*`event.hash`*:: + -- type: keyword -example: user-password-change - -The action captured by the event. -This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. +example: 123456789012345678901234567890ABCD +Hash (perhaps logstash fingerprint) of raw field to be able to demonstrate log integrity. -- -*`event.outcome`*:: +*`event.id`*:: + -- type: keyword -example: success - -The outcome of the event. -If the event describes an action, this fields contains the outcome of that action. Examples outcomes are `success` and `failure`. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. +example: 8a4f500d +Unique ID to describe the event. -- -*`event.type`*:: +*`event.kind`*:: + -- type: keyword -Reserved for future usage. -Please avoid using this field for user data. +example: state +The kind of the event. +This gives information about what type of information the event contains, without being specific to the contents of the event. Examples are `event`, `state`, `alarm`. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. -- @@ -1732,19 +1827,48 @@ example: mysql Name of the module this data is coming from. This information is coming from the modules used in Beats or Logstash. +-- +*`event.original`*:: ++ -- +type: keyword -*`event.dataset`*:: +example: Sep 19 08:26:10 host CEF:0|Security| threatmanager|1.0|100| worm successfully stopped|10|src=10.0.0.1 dst=2.1.2.2spt=1232 + +Raw text message of entire event. Used to demonstrate log integrity. +This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. + +-- + +*`event.outcome`*:: + -- type: keyword -example: stats +example: success -Name of the dataset. -The concept of a `dataset` (fileset / metricset) is used in Beats as a subset of modules. It contains the information which is currently stored in metricset.name and metricset.module or fileset.name. +The outcome of the event. +If the event describes an action, this fields contains the outcome of that action. Examples outcomes are `success` and `failure`. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. + +-- +*`event.risk_score`*:: ++ +-- +type: float + +Risk score or priority of the event (e.g. security solutions). Use your system's original value here. + +-- + +*`event.risk_score_norm`*:: ++ +-- +type: float + +Normalized risk score or priority of the event, on a scale of 0 to 100. +This is mainly useful if you use more than one system that assigns risk scores, and you want to see a normalized value across all systems. -- @@ -1755,122 +1879,132 @@ type: long example: 7 -Severity describes the severity of the event. What the different severity values mean can very different between use cases. It's up to the implementer to make sure severities are consistent across events. - +Severity describes the original severity of the event. What the different severity values mean can very different between use cases. It's up to the implementer to make sure severities are consistent across events. -- -*`event.original`*:: +*`event.start`*:: + -- -type: keyword +type: date -example: Sep 19 08:26:10 host CEF:0|Security| threatmanager|1.0|100| worm successfully stopped|10|src=10.0.0.1 dst=2.1.2.2spt=1232 +event.start contains the date when the event started or when the activity was first observed. -Raw text message of entire event. Used to demonstrate log integrity. -This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. +-- +*`event.timezone`*:: ++ +-- +type: keyword -Field is not indexed. +This field should be populated when the event's timestamp does not include timezone information already (e.g. default Syslog timestamps). It's optional otherwise. +Acceptable timezone formats are: a canonical ID (e.g. "Europe/Amsterdam"), abbreviated (e.g. "EST") or an HH:mm differential (e.g. "-05:00"). -- -*`event.hash`*:: +*`event.type`*:: + -- type: keyword -example: 123456789012345678901234567890ABCD +Reserved for future usage. +Please avoid using this field for user data. -Hash (perhaps logstash fingerprint) of raw field to be able to demonstrate log integrity. +-- +[float] +== file fields --- +A file is defined as a set of information that has been created on, or has existed on a filesystem. +File objects can be associated with host events, network events, and/or file events (e.g., those produced by File Integrity Monitoring [FIM] products or services). File fields provide details about the affected file associated with the event or metric. -*`event.duration`*:: + +*`file.ctime`*:: + -- -type: long +type: date -format: duration +Last time file metadata changed. -Duration of the event in nanoseconds. -If event.start and event.end are known this value should be the difference between the end and start time. +-- +*`file.device`*:: ++ +-- +type: keyword + +Device that is the source of the file. -- -*`event.timezone`*:: +*`file.extension`*:: + -- type: keyword -This field should be populated when the event's timestamp does not include timezone information already (e.g. default Syslog timestamps). It's optional otherwise. -Acceptable timezone formats are: a canonical ID (e.g. "Europe/Amsterdam"), abbreviated (e.g. "EST") or an HH:mm differential (e.g. "-05:00"). +example: png +File extension. +This should allow easy filtering by file extensions. -- -*`event.created`*:: +*`file.gid`*:: + -- -type: date - -event.created contains the date when the event was created. -This timestamp is distinct from @timestamp in that @timestamp contains the processed timestamp. For logs these two timestamps can be different as the timestamp in the log line and when the event is read for example by Filebeat are not identical. `@timestamp` must contain the timestamp extracted from the log line, event.created when the log line is read. The same could apply to package capturing where @timestamp contains the timestamp extracted from the network package and event.created when the event was created. -In case the two timestamps are identical, @timestamp should be used. +type: keyword +Primary group ID (GID) of the file. -- -*`event.start`*:: +*`file.group`*:: + -- -type: date +type: keyword -event.start contains the date when the event started or when the activity was first observed. +Primary group name of the file. +-- +*`file.inode`*:: ++ -- +type: keyword -*`event.end`*:: +Inode representing the file in the filesystem. + +-- + +*`file.mode`*:: + -- -type: date +type: keyword -event.end contains the date when the event ended or when the activity was last observed. +example: 416 +Mode of the file in octal representation. -- -*`event.risk_score`*:: +*`file.mtime`*:: + -- -type: float - -Risk score or priority of the event (e.g. security solutions). Use your system's original value here. +type: date +Last time file content was modified. -- -*`event.risk_score_norm`*:: +*`file.owner`*:: + -- -type: float - -Normalized risk score or priority of the event, on a scale of 0 to 100. -This is mainly useful if you use more than one system that assigns risk scores, and you want to see a normalized value across all systems. +type: keyword +File owner's username. -- -[float] -== file fields - -A file is defined as a set of information that has been created on, or has existed on a filesystem. File objects can be associated with host events, network events, and/or file events (e.g., those produced by File Integrity Monitoring [FIM] products or services). File fields provide details about the affected file associated with the event or metric. - - - *`file.path`*:: + -- @@ -1880,25 +2014,21 @@ Path to the file. -- -*`file.target_path`*:: +*`file.size`*:: + -- -type: keyword +type: long -Target path for symlinks. +File size in bytes (field is only added when `type` is `file`). -- -*`file.extension`*:: +*`file.target_path`*:: + -- type: keyword -example: png - -File extension. -This should allow easy filtering by file extensions. - +Target path for symlinks. -- @@ -1911,98 +2041,109 @@ File type (file, dir, or symlink). -- -*`file.device`*:: +*`file.uid`*:: + -- type: keyword -Device that is the source of the file. +The user ID (UID) or security identifier (SID) of the file owner. -- -*`file.inode`*:: -+ --- -type: keyword +[float] +== geo fields -Inode representing the file in the filesystem. +Geo fields can carry data about a specific location related to an event. +This geolocation information can be derived from techniques such as Geo IP, or be user-supplied. --- -*`file.uid`*:: +*`geo.city_name`*:: + -- type: keyword -The user ID (UID) or security identifier (SID) of the file owner. +example: Montreal +City name. -- -*`file.owner`*:: +*`geo.continent_name`*:: + -- type: keyword -File owner's username. +example: North America + +Name of the continent. -- -*`file.gid`*:: +*`geo.country_iso_code`*:: + -- type: keyword -Primary group ID (GID) of the file. +example: CA + +Country ISO code. -- -*`file.group`*:: +*`geo.country_name`*:: + -- type: keyword -Primary group name of the file. +example: Canada + +Country name. -- -*`file.mode`*:: +*`geo.location`*:: + -- -type: keyword +type: geo_point -example: 416 +example: { "lon": -73.614830, "lat": 45.505918 } -Mode of the file in octal representation. +Longitude and latitude. -- -*`file.size`*:: +*`geo.name`*:: + -- -type: long +type: keyword -format: bytes +example: boston-dc -File size in bytes (field is only added when `type` is `file`). +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`file.mtime`*:: +*`geo.region_iso_code`*:: + -- -type: date +type: keyword -Last time file content was modified. +example: CA-QC + +Region ISO code. -- -*`file.ctime`*:: +*`geo.region_name`*:: + -- -type: date +type: keyword -Last time file metadata changed. +example: Quebec + +Region name. -- @@ -2012,7 +2153,6 @@ Last time file metadata changed. The group fields are meant to represent groups that are relevant to the event. - *`group.id`*:: + -- @@ -2020,7 +2160,6 @@ type: keyword Unique identifier for the group on the system/platform. - -- *`group.name`*:: @@ -2030,133 +2169,162 @@ type: keyword Name of the group. - -- [float] == host fields -A host is defined as a general computing instance. ECS host.* fields should be populated with details about the host on which the event happened, or on which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes. - +A host is defined as a general computing instance. +ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes. -*`host.hostname`*:: +*`host.architecture`*:: + -- type: keyword -Hostname of the host. -It normally contains what the `hostname` command returns on the host machine. +example: x86_64 +Operating system architecture. -- -*`host.name`*:: +*`host.geo.city_name`*:: + -- type: keyword -Name of the host. -It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. +example: Montreal +City name. -- -*`host.id`*:: +*`host.geo.continent_name`*:: + -- type: keyword -Unique host id. -As hostname is not always unique, use values that are meaningful in your environment. -Example: The current usage of `beat.name`. +example: North America +Name of the continent. -- -*`host.ip`*:: +*`host.geo.country_iso_code`*:: + -- -type: ip +type: keyword -Host ip address. +example: CA +Country ISO code. -- -*`host.mac`*:: +*`host.geo.country_name`*:: + -- type: keyword -Host mac address. +example: Canada +Country name. -- -*`host.type`*:: +*`host.geo.location`*:: + -- -type: keyword +type: geo_point -Type of host. -For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. +example: { "lon": -73.614830, "lat": 45.505918 } +Longitude and latitude. -- -*`host.architecture`*:: +*`host.geo.name`*:: + -- type: keyword -example: x86_64 - -Operating system architecture. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -[float] -== os fields +*`host.geo.region_iso_code`*:: ++ +-- +type: keyword -The OS fields contain information about the operating system. +example: CA-QC +Region ISO code. +-- -*`host.os.platform`*:: +*`host.geo.region_name`*:: + -- type: keyword -example: darwin +example: Quebec -Operating system platform (such centos, ubuntu, windows). +Region name. + +-- +*`host.hostname`*:: ++ +-- +type: keyword + +Hostname of the host. +It normally contains what the `hostname` command returns on the host machine. -- -*`host.os.name`*:: +*`host.id`*:: + -- type: keyword -example: Mac OS X +Unique host id. +As hostname is not always unique, use values that are meaningful in your environment. +Example: The current usage of `beat.name`. -Operating system name, without the version. +-- + +*`host.ip`*:: ++ +-- +type: ip +Host ip address. -- -*`host.os.full`*:: +*`host.mac`*:: + -- type: keyword -example: Mac OS Mojave +Host mac address. -Operating system name, including the version or code name. +-- + +*`host.name`*:: ++ +-- +type: keyword +Name of the host. +It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. -- @@ -2169,18 +2337,16 @@ example: debian OS family (such as redhat, debian, freebsd, windows). - -- -*`host.os.version`*:: +*`host.os.full`*:: + -- type: keyword -example: 10.14.1 - -Operating system version as a raw string. +example: Mac OS Mojave +Operating system name, including the version or code name. -- @@ -2193,131 +2359,133 @@ example: 4.4.0-112-generic Operating system kernel version as a raw string. - -- -[float] -== geo fields +*`host.os.name`*:: ++ +-- +type: keyword -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. +example: Mac OS X +Operating system name, without the version. +-- -*`host.geo.location`*:: +*`host.os.platform`*:: + -- -type: geo_point - -example: { "lon": -73.614830, "lat": 45.505918 } +type: keyword -Longitude and latitude. +example: darwin +Operating system platform (such centos, ubuntu, windows). -- -*`host.geo.continent_name`*:: +*`host.os.version`*:: + -- type: keyword -example: North America - -Name of the continent. +example: 10.14.1 +Operating system version as a raw string. -- -*`host.geo.country_name`*:: +*`host.type`*:: + -- type: keyword -example: Canada +Type of host. +For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. -Country name. +-- + +*`host.user.email`*:: ++ +-- +type: keyword +User email address. -- -*`host.geo.region_name`*:: +*`host.user.full_name`*:: + -- type: keyword -example: Quebec - -Region name. +example: Albert Einstein +User's full name, if available. -- -*`host.geo.city_name`*:: +*`host.user.group.id`*:: + -- type: keyword -example: Montreal +Unique identifier for the group on the system/platform. -City name. +-- + +*`host.user.group.name`*:: ++ +-- +type: keyword +Name of the group. -- -*`host.geo.country_iso_code`*:: +*`host.user.hash`*:: + -- type: keyword -example: CA - -Country ISO code. - +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -- -*`host.geo.region_iso_code`*:: +*`host.user.id`*:: + -- type: keyword -example: CA-QC - -Region ISO code. - +One or multiple unique identifiers of the user. -- -*`host.geo.name`*:: +*`host.user.name`*:: + -- type: keyword -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +example: albert +Short name or login of the user. -- [float] == http fields -Fields related to HTTP activity. - +Fields related to HTTP activity. Use the `url` field set to store the url of the request. -*`http.request.method`*:: +*`http.request.body.bytes`*:: + -- -type: keyword - -example: get, post, put +type: long -Http request method. -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. +example: 887 +Size in bytes of the request body. -- @@ -2328,84 +2496,63 @@ type: keyword example: Hello world -The full http request body. - - --- - -*`http.request.referrer`*:: -+ --- -type: keyword - -example: https://blog.example.com/ - -Referrer for this HTTP request. - +The full HTTP request body. -- -*`http.response.status_code`*:: +*`http.request.bytes`*:: + -- type: long -example: 404 - -Http response status code. +example: 1437 +Total size in bytes of the request (body and headers). -- -*`http.response.body.content`*:: +*`http.request.method`*:: + -- type: keyword -example: Hello world - -The full http response body. +example: get, post, put +HTTP request method. +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". -- -*`http.version`*:: +*`http.request.referrer`*:: + -- type: keyword -example: 1.1 - -Http version. +example: https://blog.example.com/ +Referrer for this HTTP request. -- -*`http.request.bytes`*:: +*`http.response.body.bytes`*:: + -- type: long -example: 1437 - -format: bytes - -Total size in bytes of the request (body and headers). +example: 887 +Size in bytes of the response body. -- -*`http.request.body.bytes`*:: +*`http.response.body.content`*:: + -- -type: long - -example: 887 - -format: bytes +type: keyword -Size in bytes of the request body. +example: Hello world +The full HTTP response body. -- @@ -2416,24 +2563,29 @@ type: long example: 1437 -format: bytes - Total size in bytes of the response (body and headers). - -- -*`http.response.body.bytes`*:: +*`http.response.status_code`*:: + -- type: long -example: 887 +example: 404 -format: bytes +HTTP response status code. -Size in bytes of the response body. +-- + +*`http.version`*:: ++ +-- +type: keyword + +example: 1.1 +HTTP version. -- @@ -2443,17 +2595,15 @@ Size in bytes of the response body. Fields which are specific to log events. - *`log.level`*:: + -- type: keyword -example: ERR - -Log level of the log event. -Some examples are `WARN`, `ERR`, `INFO`. +example: err +Original log level of the log event. +Some examples are `warn`, `error`, `i`. -- @@ -2464,96 +2614,52 @@ type: keyword example: Sep 19 08:26:10 localhost My log - This is the original log message and contains the full log message before splitting it up in multiple parts. In contrast to the `message` field which can contain an extracted part of the log message, this field contains the original, full log message. It can have already some modifications applied like encoding or new lines removed to clean up the log message. This field is not indexed and doc_values are disabled so it can't be queried but the value can be retrieved from `_source`. - -Field is not indexed. - -- [float] == network fields -The network is defined as the communication path over which a host or network event happens. The network.* fields should be populated with details about the network activity associated with an event. - - - -*`network.name`*:: -+ --- -type: keyword - -example: Guest Wifi - -Name given by operators to sections of their network. - - --- - -*`network.type`*:: -+ --- -type: keyword - -example: ipv4 - -In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. - - --- - -*`network.iana_number`*:: -+ --- -type: keyword - -example: 6 - -IANA Protocol Number (https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml). Standardized list of protocols. This aligns well with NetFlow and sFlow related logs which use the IANA Protocol Number. - +The network is defined as the communication path over which a host or network event happens. +The network.* fields should be populated with details about the network activity associated with an event. --- -*`network.transport`*:: +*`network.application`*:: + -- type: keyword -example: tcp - -Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. +example: aim +A name given to an application level protocol. This can be arbitrarily assigned for things like microservices, but also apply to things like skype, icq, facebook, twitter. This would be used in situations where the vendor or service can be decoded such as from the source/dest IP owners, ports, or wire format. +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". -- -*`network.application`*:: +*`network.bytes`*:: + -- -type: keyword - -example: aim +type: long -A name given to an application. This can be arbitrarily assigned for things like microservices, but also apply to things like skype, icq, facebook, twitter. This would be used in situations where the vendor or service can be decoded such as from the source/dest IP owners, ports, or wire format. -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. +example: 368 +Total bytes transferred in both directions. +If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. -- -*`network.protocol`*:: +*`network.community_id`*:: + -- type: keyword -example: http - -L7 Network protocol name. ex. http, lumberjack, transport protocol. -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. +example: 1:hO+sN4H+MG5MY/8hIrXPqc4ZQz0= +A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. +Learn more at https://github.com/corelight/community-id-spec. -- @@ -2575,7 +2681,6 @@ Recommended values are: When mapping events from a host-based monitoring context, populate this field from the host's point of view. When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of your network perimeter. - -- *`network.forwarded_ip`*:: @@ -2587,34 +2692,27 @@ example: 192.1.1.2 Host IP address when the source IP address is the proxy. - -- -*`network.community_id`*:: +*`network.iana_number`*:: + -- type: keyword -example: 1:hO+sN4H+MG5MY/8hIrXPqc4ZQz0= - -A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. -Learn more at https://github.com/corelight/community-id-spec. +example: 6 +IANA Protocol Number (https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml). Standardized list of protocols. This aligns well with NetFlow and sFlow related logs which use the IANA Protocol Number. -- -*`network.bytes`*:: +*`network.name`*:: + -- -type: long - -example: 368 - -format: bytes +type: keyword -Total bytes transferred in both directions. -If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. +example: Guest Wifi +Name given by operators to sections of their network. -- @@ -2628,129 +2726,165 @@ example: 24 Total packets transferred in both directions. If `source.packets` and `destination.packets` are known, `network.packets` is their sum. - -- -[float] -== observer fields +*`network.protocol`*:: ++ +-- +type: keyword -An observer is defined as a special network, security, or application device used to detect, observe, or create network, security, or application-related events and metrics. This could be a custom hardware appliance or a server that has been configured to run special network, security, or application software. Examples include firewalls, intrusion detection/prevention systems, network monitoring sensors, web application firewalls, data loss prevention systems, and APM servers. The observer.* fields shall be populated with details of the system, if any, that detects, observes and/or creates a network, security, or application event or metric. Message queues and ETL components used in processing events or metrics are not considered observers in ECS. +example: http +L7 Network protocol name. ex. http, lumberjack, transport protocol. +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". +-- -*`observer.mac`*:: +*`network.transport`*:: + -- type: keyword -MAC address of the observer +example: tcp +Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". -- -*`observer.ip`*:: +*`network.type`*:: + -- -type: ip +type: keyword -IP address of the observer. +example: ipv4 +In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". -- -*`observer.hostname`*:: +[float] +== observer fields + +An observer is defined as a special network, security, or application device used to detect, observe, or create network, security, or application-related events and metrics. +This could be a custom hardware appliance or a server that has been configured to run special network, security, or application software. Examples include firewalls, intrusion detection/prevention systems, network monitoring sensors, web application firewalls, data loss prevention systems, and APM servers. The observer.* fields shall be populated with details of the system, if any, that detects, observes and/or creates a network, security, or application event or metric. Message queues and ETL components used in processing events or metrics are not considered observers in ECS. + + +*`observer.geo.city_name`*:: + -- type: keyword -Hostname of the observer. +example: Montreal +City name. -- -*`observer.vendor`*:: +*`observer.geo.continent_name`*:: + -- type: keyword -observer vendor information. +example: North America +Name of the continent. -- -*`observer.version`*:: +*`observer.geo.country_iso_code`*:: + -- type: keyword -Observer version. +example: CA +Country ISO code. -- -*`observer.serial_number`*:: +*`observer.geo.country_name`*:: + -- type: keyword -Observer serial number. +example: Canada +Country name. -- -*`observer.type`*:: +*`observer.geo.location`*:: + -- -type: keyword +type: geo_point -example: firewall +example: { "lon": -73.614830, "lat": 45.505918 } -The type of the observer the data is coming from. -There is no predefined list of observer types. Some examples are `forwarder`, `firewall`, `ids`, `ips`, `proxy`, `poller`, `sensor`, `APM server`. +Longitude and latitude. +-- +*`observer.geo.name`*:: ++ -- +type: keyword -[float] -== os fields +example: boston-dc -The OS fields contain information about the operating system. +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. + +-- + +*`observer.geo.region_iso_code`*:: ++ +-- +type: keyword +example: CA-QC + +Region ISO code. +-- -*`observer.os.platform`*:: +*`observer.geo.region_name`*:: + -- type: keyword -example: darwin - -Operating system platform (such centos, ubuntu, windows). +example: Quebec +Region name. -- -*`observer.os.name`*:: +*`observer.hostname`*:: + -- type: keyword -example: Mac OS X +Hostname of the observer. -Operating system name, without the version. +-- + +*`observer.ip`*:: ++ +-- +type: ip +IP address of the observer. -- -*`observer.os.full`*:: +*`observer.mac`*:: + -- type: keyword -example: Mac OS Mojave - -Operating system name, including the version or code name. - +MAC address of the observer -- @@ -2763,18 +2897,16 @@ example: debian OS family (such as redhat, debian, freebsd, windows). - -- -*`observer.os.version`*:: +*`observer.os.full`*:: + -- type: keyword -example: 10.14.1 - -Operating system version as a raw string. +example: Mac OS Mojave +Operating system name, including the version or code name. -- @@ -2787,138 +2919,102 @@ example: 4.4.0-112-generic Operating system kernel version as a raw string. - --- - -[float] -== geo fields - -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. - - - -*`observer.geo.location`*:: -+ --- -type: geo_point - -example: { "lon": -73.614830, "lat": 45.505918 } - -Longitude and latitude. - - -- -*`observer.geo.continent_name`*:: +*`observer.os.name`*:: + -- type: keyword -example: North America - -Name of the continent. +example: Mac OS X +Operating system name, without the version. -- -*`observer.geo.country_name`*:: +*`observer.os.platform`*:: + -- type: keyword -example: Canada - -Country name. +example: darwin +Operating system platform (such centos, ubuntu, windows). -- -*`observer.geo.region_name`*:: +*`observer.os.version`*:: + -- type: keyword -example: Quebec - -Region name. +example: 10.14.1 +Operating system version as a raw string. -- -*`observer.geo.city_name`*:: +*`observer.serial_number`*:: + -- type: keyword -example: Montreal - -City name. - +Observer serial number. -- -*`observer.geo.country_iso_code`*:: +*`observer.type`*:: + -- type: keyword -example: CA - -Country ISO code. +example: firewall +The type of the observer the data is coming from. +There is no predefined list of observer types. Some examples are `forwarder`, `firewall`, `ids`, `ips`, `proxy`, `poller`, `sensor`, `APM server`. -- -*`observer.geo.region_iso_code`*:: +*`observer.vendor`*:: + -- type: keyword -example: CA-QC - -Region ISO code. - +observer vendor information. -- -*`observer.geo.name`*:: +*`observer.version`*:: + -- type: keyword -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. - +Observer version. -- [float] == organization fields -The organization fields enrich data with information about the company or entity the data is associated with. These fields help you arrange or filter data stored in an index by one or multiple organizations. - +The organization fields enrich data with information about the company or entity the data is associated with. +These fields help you arrange or filter data stored in an index by one or multiple organizations. -*`organization.name`*:: +*`organization.id`*:: + -- type: keyword -Organization name. - +Unique identifier for the organization. -- -*`organization.id`*:: +*`organization.name`*:: + -- type: keyword -Unique identifier for the organization. - +Organization name. -- @@ -2928,93 +3024,99 @@ Unique identifier for the organization. The OS fields contain information about the operating system. - -*`os.platform`*:: +*`os.family`*:: + -- type: keyword -example: darwin - -Operating system platform (such centos, ubuntu, windows). +example: debian +OS family (such as redhat, debian, freebsd, windows). -- -*`os.name`*:: +*`os.full`*:: + -- type: keyword -example: Mac OS X - -Operating system name, without the version. +example: Mac OS Mojave +Operating system name, including the version or code name. -- -*`os.full`*:: +*`os.kernel`*:: + -- type: keyword -example: Mac OS Mojave - -Operating system name, including the version or code name. +example: 4.4.0-112-generic +Operating system kernel version as a raw string. -- -*`os.family`*:: +*`os.name`*:: + -- type: keyword -example: debian - -OS family (such as redhat, debian, freebsd, windows). +example: Mac OS X +Operating system name, without the version. -- -*`os.version`*:: +*`os.platform`*:: + -- type: keyword -example: 10.14.1 - -Operating system version as a raw string. +example: darwin +Operating system platform (such centos, ubuntu, windows). -- -*`os.kernel`*:: +*`os.version`*:: + -- type: keyword -example: 4.4.0-112-generic - -Operating system kernel version as a raw string. +example: 10.14.1 +Operating system version as a raw string. -- [float] == process fields -These fields contain information about a process. These fields can help you correlate metrics information with a process id/name from a log message. The `process.pid` often stays in the metric itself and is copied to the global field for correlation. +These fields contain information about a process. +These fields can help you correlate metrics information with a process id/name from a log message. The `process.pid` often stays in the metric itself and is copied to the global field for correlation. + +*`process.args`*:: ++ +-- +type: keyword +example: ['ssh', '-l', 'user', '10.0.0.16'] -*`process.pid`*:: +Array of process arguments. +May be filtered to protect sensitive information. + +-- + +*`process.executable`*:: + -- -type: long +type: keyword -Process id. +example: /usr/bin/ssh +Absolute path to the process executable. -- @@ -3028,6 +3130,14 @@ example: ssh Process name. Sometimes called program name or similar. +-- + +*`process.pid`*:: ++ +-- +type: long + +Process id. -- @@ -3038,31 +3148,27 @@ type: long Process parent id. - -- -*`process.args`*:: +*`process.start`*:: + -- -type: keyword - -example: ['ssh', '-l', 'user', '10.0.0.16'] +type: date -Process arguments. -May be filtered to protect sensitive information. +example: 2016-05-23T08:05:34.853Z +The time the process started. -- -*`process.executable`*:: +*`process.thread.id`*:: + -- -type: keyword - -example: /usr/bin/ssh +type: long -Absolute path to the process executable. +example: 4242 +Thread ID. -- @@ -3074,133 +3180,180 @@ type: keyword Process title. The proctitle, some times the same as process name. Can also be different: for example a browser setting its title to the web page currently opened. - -- -*`process.thread.id`*:: +*`process.working_directory`*:: + -- -type: long +type: keyword -example: 4242 +example: /home/alice -Thread ID. +The working directory of the process. + +-- + +[float] +== related fields + +This field set is meant to facilitate pivoting around a piece of data. +Some pieces of information can be seen in many places in an ECS event. To facilitate searching for them, store an array of all seen values to their corresponding field in `related.`. +A concrete example is IP addresses, which can be under host, observer, source, destination, client, server, and network.forwarded_ip. If you append all IPs to `related.ip`, you can then search for a given IP trivially, no matter where it appeared, by querying `related.ip:a.b.c.d`. +*`related.ip`*:: ++ -- +type: ip -*`process.start`*:: +All of the IPs seen on your event. + +-- + +[float] +== server fields + +A Server is defined as the responder in a network connection for events regarding sessions, connections, or bidirectional flow records. +For TCP events, the server is the receiver of the initial SYN packet(s) of the TCP connection. For other protocols, the server is generally the responder in the network transaction. Some systems actually use the term "responder" to refer the server in TCP connections. The server fields describe details about the system acting as the server in the network event. Server fields are usually populated in conjunction with client fields. Server fields are generally not populated for packet-level events. +Client / server representations can add semantic context to an exchange, which is helpful to visualize the data in certain situations. If your context falls in that category, you should still ensure that source and destination are filled appropriately. + + +*`server.address`*:: + -- -type: date +type: keyword -example: 2016-05-23T08:05:34.853Z +Some event server addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. +Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. -The time the process started. +-- +*`server.bytes`*:: ++ +-- +type: long + +example: 184 + +Bytes sent from the server to the client. -- -*`process.working_directory`*:: +*`server.domain`*:: + -- type: keyword -example: /home/alice - -The working directory of the process. +Server domain. +-- +*`server.geo.city_name`*:: ++ -- +type: keyword -[float] -== related fields - -This field set is meant to facilitate pivoting around a piece of data. Some pieces of information can be seen in many places in ECS. To facilitate searching for them, append values to their corresponding field in `related.`. A concrete example is IP addresses, which can be under host, observer, source, destination, client, server, and network.forwarded_ip. If you append all IPs to `related.ip`, you can then search for a given IP trivially, no matter where it appeared, by querying `related.ip:a.b.c.d`. +example: Montreal +City name. +-- -*`related.ip`*:: +*`server.geo.continent_name`*:: + -- -type: ip +type: keyword -All of the IPs seen on your event. +example: North America +Name of the continent. -- -[float] -== server fields +*`server.geo.country_iso_code`*:: ++ +-- +type: keyword -A Server is defined as the responder in a network connection for events regarding sessions, connections, or bidirectional flow records. For TCP events, the server is the receiver of the initial SYN packet(s) of the TCP connection. For other protocols, the server is generally the responder in the network transaction. Some systems actually use the term "responder" to refer the server in TCP connections. The server fields describe details about the system acting as the server in the network event. Server fields are usually populated in conjunction with client fields. Server fields are generally not populated for packet-level events. -Client / server representations can add semantic context to an exchange, which is helpful to visualize the data in certain situations. If your context falls in that category, you should still ensure that source and destination are filled appropriately. +example: CA +Country ISO code. +-- -*`server.address`*:: +*`server.geo.country_name`*:: + -- type: keyword -Some event server addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. -Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. +example: Canada +Country name. -- -*`server.ip`*:: +*`server.geo.location`*:: + -- -type: ip +type: geo_point -IP address of the server. -Can be one or multiple IPv4 or IPv6 addresses. +example: { "lon": -73.614830, "lat": 45.505918 } +Longitude and latitude. -- -*`server.port`*:: +*`server.geo.name`*:: + -- -type: long +type: keyword -Port of the server. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`server.mac`*:: +*`server.geo.region_iso_code`*:: + -- type: keyword -MAC address of the server. +example: CA-QC +Region ISO code. -- -*`server.domain`*:: +*`server.geo.region_name`*:: + -- type: keyword -Server domain. +example: Quebec +Region name. -- -*`server.bytes`*:: +*`server.ip`*:: + -- -type: long +type: ip -example: 184 +IP address of the server. +Can be one or multiple IPv4 or IPv6 addresses. -format: bytes +-- -Bytes sent from the server to the client. +*`server.mac`*:: ++ +-- +type: keyword +MAC address of the server. -- @@ -3213,120 +3366,103 @@ example: 12 Packets sent from the server to the client. - -- -[float] -== geo fields - -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. - - - -*`server.geo.location`*:: +*`server.port`*:: + -- -type: geo_point - -example: { "lon": -73.614830, "lat": 45.505918 } - -Longitude and latitude. +type: long +Port of the server. -- -*`server.geo.continent_name`*:: +*`server.user.email`*:: + -- type: keyword -example: North America - -Name of the continent. - +User email address. -- -*`server.geo.country_name`*:: +*`server.user.full_name`*:: + -- type: keyword -example: Canada - -Country name. +example: Albert Einstein +User's full name, if available. -- -*`server.geo.region_name`*:: +*`server.user.group.id`*:: + -- type: keyword -example: Quebec - -Region name. - +Unique identifier for the group on the system/platform. -- -*`server.geo.city_name`*:: +*`server.user.group.name`*:: + -- type: keyword -example: Montreal - -City name. - +Name of the group. -- -*`server.geo.country_iso_code`*:: +*`server.user.hash`*:: + -- type: keyword -example: CA - -Country ISO code. - +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -- -*`server.geo.region_iso_code`*:: +*`server.user.id`*:: + -- type: keyword -example: CA-QC - -Region ISO code. - +One or multiple unique identifiers of the user. -- -*`server.geo.name`*:: +*`server.user.name`*:: + -- type: keyword -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +example: albert +Short name or login of the user. -- [float] == service fields -The service fields describe the service for or from which the data was collected. These fields help you find and correlate logs for a specific service and version. +The service fields describe the service for or from which the data was collected. +These fields help you find and correlate logs for a specific service and version. + + +*`service.ephemeral_id`*:: ++ +-- +type: keyword + +example: 8a4f500f +Ephemeral identifier of this service (if one exists). +This id normally changes across restarts, but `service.id` does not. +-- *`service.id`*:: + @@ -3339,7 +3475,6 @@ Unique identifier of the running service. This id should uniquely identify this service. This makes it possible to correlate logs and metrics for one specific service. Example: If you are experiencing issues with one redis instance, you can filter on that id to see metrics and logs for that single instance. - -- *`service.name`*:: @@ -3354,6 +3489,14 @@ The name of the service is normally user given. This allows if two instances of Also it allows for distributed services that run on multiple hosts to correlate the related instances based on the name. In the case of Elasticsearch the service.name could contain the cluster name. For Beats the service.name is by default a copy of the `service.type` field if no name is specified. +-- + +*`service.state`*:: ++ +-- +type: keyword + +Current state of the service. -- @@ -3368,115 +3511,163 @@ The type of the service data is collected from. The type can be used to group and correlate logs and metrics from one service type. Example: If logs or metrics are collected from Elasticsearch, `service.type` would be `elasticsearch`. - -- -*`service.state`*:: +*`service.version`*:: + -- type: keyword -Current state of the service. +example: 3.2.4 +Version of the service the data was collected from. +This allows to look at a data set only for a specific version of a service. -- -*`service.version`*:: +[float] +== source fields + +Source fields describe details about the source of a packet/event. +Source fields are usually populated in conjunction with destination fields. + + +*`source.address`*:: + -- type: keyword -example: 3.2.4 +Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. +Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. -Version of the service the data was collected from. -This allows to look at a data set only for a specific version of a service. +-- + +*`source.bytes`*:: ++ +-- +type: long + +example: 184 +Bytes sent from the source to the destination. -- -*`service.ephemeral_id`*:: +*`source.domain`*:: + -- type: keyword -example: 8a4f500f +Source domain. -Ephemeral identifier of this service (if one exists). -This id normally changes across restarts, but `service.id` does not. +-- + +*`source.geo.city_name`*:: ++ +-- +type: keyword + +example: Montreal +City name. -- -[float] -== source fields +*`source.geo.continent_name`*:: ++ +-- +type: keyword -Source fields describe details about the source of a packet/event. Source fields are usually populated in conjunction with destination fields. +example: North America +Name of the continent. +-- -*`source.address`*:: +*`source.geo.country_iso_code`*:: + -- type: keyword -Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. -Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. +example: CA +Country ISO code. -- -*`source.ip`*:: +*`source.geo.country_name`*:: + -- -type: ip +type: keyword -IP address of the source. -Can be one or multiple IPv4 or IPv6 addresses. +example: Canada +Country name. -- -*`source.port`*:: +*`source.geo.location`*:: + -- -type: long +type: geo_point -Port of the source. +example: { "lon": -73.614830, "lat": 45.505918 } +Longitude and latitude. -- -*`source.mac`*:: +*`source.geo.name`*:: + -- type: keyword -MAC address of the source. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`source.domain`*:: +*`source.geo.region_iso_code`*:: + -- type: keyword -Source domain. +example: CA-QC +Region ISO code. -- -*`source.bytes`*:: +*`source.geo.region_name`*:: + -- -type: long +type: keyword -example: 184 +example: Quebec + +Region name. + +-- + +*`source.ip`*:: ++ +-- +type: ip + +IP address of the source. +Can be one or multiple IPv4 or IPv6 addresses. -format: bytes +-- -Bytes sent from the source to the destination. +*`source.mac`*:: ++ +-- +type: keyword +MAC address of the source. -- @@ -3489,133 +3680,110 @@ example: 12 Packets sent from the source to the destination. - -- -[float] -== geo fields - -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. - - - -*`source.geo.location`*:: +*`source.port`*:: + -- -type: geo_point - -example: { "lon": -73.614830, "lat": 45.505918 } - -Longitude and latitude. +type: long +Port of the source. -- -*`source.geo.continent_name`*:: +*`source.user.email`*:: + -- type: keyword -example: North America - -Name of the continent. - +User email address. -- -*`source.geo.country_name`*:: +*`source.user.full_name`*:: + -- type: keyword -example: Canada - -Country name. +example: Albert Einstein +User's full name, if available. -- -*`source.geo.region_name`*:: +*`source.user.group.id`*:: + -- type: keyword -example: Quebec - -Region name. - +Unique identifier for the group on the system/platform. -- -*`source.geo.city_name`*:: +*`source.user.group.name`*:: + -- type: keyword -example: Montreal - -City name. - +Name of the group. -- -*`source.geo.country_iso_code`*:: +*`source.user.hash`*:: + -- type: keyword -example: CA - -Country ISO code. - +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -- -*`source.geo.region_iso_code`*:: +*`source.user.id`*:: + -- type: keyword -example: CA-QC - -Region ISO code. - +One or multiple unique identifiers of the user. -- -*`source.geo.name`*:: +*`source.user.name`*:: + -- type: keyword -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +example: albert +Short name or login of the user. -- [float] == url fields -URL fields provide a complete URL, with scheme, host, and path. +URL fields provide support for complete or partial URLs, and supports the breaking down into scheme, domain, path, and so on. - -*`url.original`*:: +*`url.domain`*:: + -- type: keyword -example: https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch +example: www.elastic.co +Domain of the url, such as "www.elastic.co". +In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the `domain` field. -Unmodified original url as seen in the event source. -Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path. -This field is meant to represent the URL as it was observed, complete or not. +-- + +*`url.fragment`*:: ++ +-- +type: keyword +Portion of the url after the `#`, such as "top". +The `#` is not part of the fragment. -- @@ -3628,54 +3796,47 @@ example: https://www.elastic.co:443/search?q=elasticsearch#top If full URLs are important to your use case, they should be stored in `url.full`, whether this field is reconstructed or present in the event source. - -- -*`url.scheme`*:: +*`url.original`*:: + -- type: keyword -example: https - -Scheme of the request, such as "https". -Note: The `:` is not part of the scheme. +example: https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch +Unmodified original url as seen in the event source. +Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path. +This field is meant to represent the URL as it was observed, complete or not. -- -*`url.domain`*:: +*`url.password`*:: + -- type: keyword -example: www.elastic.co - -Domain of the request, such as "www.elastic.co". -In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the `domain` field. - +Password of the request. -- -*`url.port`*:: +*`url.path`*:: + -- -type: integer - -example: 443 - -Port of the request, such as 443. +type: keyword +Path of the request, such as "/search". -- -*`url.path`*:: +*`url.port`*:: + -- -type: keyword +type: long -Path of the request, such as "/search". +example: 443 +Port of the request, such as 443. -- @@ -3687,17 +3848,17 @@ type: keyword The query field describes the query string of the request, such as "q=elasticsearch". The `?` is excluded from the query string. If a URL contains no `?`, there is no query field. If there is a `?` but no query, the query field exists with an empty string. The `exists` query can be used to differentiate between the two cases. - -- -*`url.fragment`*:: +*`url.scheme`*:: + -- type: keyword -Portion of the url after the `#`, such as "top". -The `#` is not part of the fragment. +example: https +Scheme of the request, such as "https". +Note: The `:` is not part of the scheme. -- @@ -3708,67 +3869,50 @@ type: keyword Username of the request. - --- - -*`url.password`*:: -+ --- -type: keyword - -Password of the request. - - -- [float] == user fields -The user fields describe information about the user that is relevant to the event. Fields can have one entry or multiple entries. If a user has more than one id, provide an array that includes all of them. - +The user fields describe information about the user that is relevant to the event. +Fields can have one entry or multiple entries. If a user has more than one id, provide an array that includes all of them. -*`user.id`*:: +*`user.email`*:: + -- type: keyword -One or multiple unique identifiers of the user. - +User email address. -- -*`user.name`*:: +*`user.full_name`*:: + -- type: keyword -example: albert - -Short name or login of the user. +example: Albert Einstein +User's full name, if available. -- -*`user.full_name`*:: +*`user.group.id`*:: + -- type: keyword -example: Albert Einstein - -User's full name, if available. - +Unique identifier for the group on the system/platform. -- -*`user.email`*:: +*`user.group.name`*:: + -- type: keyword -User email address. - +Name of the group. -- @@ -3780,52 +3924,43 @@ type: keyword Unique user hash to correlate information for a user in anonymized form. Useful if `user.id` or `user.name` contain confidential information and cannot be used. - -- -[float] -== group fields - -The group fields are meant to represent groups that are relevant to the event. - - - -*`user.group.id`*:: +*`user.id`*:: + -- type: keyword -Unique identifier for the group on the system/platform. - +One or multiple unique identifiers of the user. -- -*`user.group.name`*:: +*`user.name`*:: + -- type: keyword -Name of the group. +example: albert +Short name or login of the user. -- [float] == user_agent fields -The user_agent fields normally come from a browser request. They often show up in web service logs coming from the parsed user agent string. +The user_agent fields normally come from a browser request. +They often show up in web service logs coming from the parsed user agent string. - -*`user_agent.original`*:: +*`user_agent.device.name`*:: + -- type: keyword -example: Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1 - -Unparsed version of the user_agent. +example: iPhone +Name of the device. -- @@ -3838,85 +3973,71 @@ example: Safari Name of the user agent. - -- -*`user_agent.version`*:: +*`user_agent.original`*:: + -- type: keyword -example: 12.0 - -Version of the user agent. +example: Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1 +Unparsed version of the user_agent. -- -*`user_agent.device.name`*:: +*`user_agent.os.family`*:: + -- type: keyword -example: iPhone - -Name of the device. +example: debian +OS family (such as redhat, debian, freebsd, windows). -- -[float] -== os fields - -The OS fields contain information about the operating system. - - - -*`user_agent.os.platform`*:: +*`user_agent.os.full`*:: + -- type: keyword -example: darwin - -Operating system platform (such centos, ubuntu, windows). +example: Mac OS Mojave +Operating system name, including the version or code name. -- -*`user_agent.os.name`*:: +*`user_agent.os.kernel`*:: + -- type: keyword -example: Mac OS X - -Operating system name, without the version. +example: 4.4.0-112-generic +Operating system kernel version as a raw string. -- -*`user_agent.os.full`*:: +*`user_agent.os.name`*:: + -- type: keyword -example: Mac OS Mojave - -Operating system name, including the version or code name. +example: Mac OS X +Operating system name, without the version. -- -*`user_agent.os.family`*:: +*`user_agent.os.platform`*:: + -- type: keyword -example: debian - -OS family (such as redhat, debian, freebsd, windows). +example: darwin +Operating system platform (such centos, ubuntu, windows). -- @@ -3929,28 +4050,16 @@ example: 10.14.1 Operating system version as a raw string. - --- - -*`user_agent.os.kernel`*:: -+ --- -type: keyword - -example: 4.4.0-112-generic - -Operating system kernel version as a raw string. - - -- -*`agent.hostname`*:: +*`user_agent.version`*:: + -- type: keyword -Hostname of the agent. +example: 12.0 +Version of the user agent. -- diff --git a/journalbeat/include/fields.go b/journalbeat/include/fields.go index 94d7157dc11..a0a0f320faf 100644 --- a/journalbeat/include/fields.go +++ b/journalbeat/include/fields.go @@ -32,5 +32,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "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" + return "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" } diff --git a/libbeat/_meta/fields.common.yml b/libbeat/_meta/fields.common.yml index a680539de4e..56ea5b75924 100644 --- a/libbeat/_meta/fields.common.yml +++ b/libbeat/_meta/fields.common.yml @@ -4,6 +4,10 @@ description: > Contains common beat fields available in all event types. fields: + - name: agent.hostname + type: keyword + description: Hostname of the agent. + - name: beat.timezone type: alias path: event.timezone diff --git a/libbeat/_meta/fields.ecs.yml b/libbeat/_meta/fields.ecs.yml index d32aa16c579..2ecff3ead87 100644 --- a/libbeat/_meta/fields.ecs.yml +++ b/libbeat/_meta/fields.ecs.yml @@ -1,2248 +1,2131 @@ +# WARNING! Do not edit this file directly, it was generated by the ECS project, +# based on ECS version 1.0.0. +# Please visit https://github.com/elastic/ecs to suggest changes to ECS fields. + - key: ecs title: ECS - description: > - ECS fields. + description: ECS Fields. fields: + - name: '@timestamp' + level: core + required: true + type: date + description: 'Date/time when the event originated. + + This is the date/time extracted from the event, typically representing when + the event was generated by the source. + + If the event source has no original timestamp, this value is typically populated + by the first time the event was received by the pipeline. + + Required field for all events.' + example: '2016-05-23T08:05:34.853Z' + - name: labels + level: core + type: object + object_type: keyword + description: 'Custom key/value pairs. + + Can be used to add meta information to events. Should not contain nested objects. + All values are stored as keyword. + + Example: `docker` and `k8s` labels.' + example: + application: foo-bar + env: production + - name: message + level: core + type: text + description: 'For log events the message field contains the log message, optimized + for viewing in a log viewer. + + For structured logs without an original message field, other fields can be concatenated + to form a human-readable summary of the event. + + If multiple messages exist, they can be combined into one message.' + example: Hello World + - name: tags + level: core + type: keyword + ignore_above: 1024 + description: List of keywords used to tag each event. + example: '["production", "env2"]' + - name: agent + title: Agent + group: 2 + description: 'The agent fields contain the data about the software entity, if + any, that collects, detects, or observes events on a host, or takes measurements + on a host. + + Examples include Beats. Agents may also run on observers. ECS agent.* fields + shall be populated with details of the agent running on the host or observer + where the event happened or the measurement was taken.' + footnote: 'Examples: In the case of Beats for logs, the agent.name is filebeat. + For APM, it is the agent running in the app/service. The agent information does + not change if data is sent through queuing systems like Kafka, Redis, or processing + systems such as Logstash or APM Server.' + type: group + fields: + - name: ephemeral_id + level: extended + type: keyword + ignore_above: 1024 + description: 'Ephemeral identifier of this agent (if one exists). - - name: "@timestamp" - type: date + This id normally changes across restarts, but `agent.id` does not.' + example: 8a4f500f + - name: id level: core - required: true - example: "2016-05-23T08:05:34.853Z" - description: > - Date/time when the event originated. + type: keyword + ignore_above: 1024 + description: 'Unique identifier of this agent (if one exists). - For log events this is the date/time when the event was generated, and - not when it was read. + Example: For Beats this would be beat.id.' + example: 8a4f500d + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Custom name of the agent. - Required field for all events. + This is a name that can be given to an agent. This can be helpful if for example + two Filebeat instances are running on the same host but a human readable separation + is needed on which Filebeat instance data is coming from. - - name: tags + If no name is given, the name is often left empty.' + example: foo + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of the agent. + + The agent type stays always the same and should be given by the agent used. + In case of Filebeat the agent would always be Filebeat also if two Filebeat + instances are run on the same machine.' + example: filebeat + - name: version + level: core + type: keyword + ignore_above: 1024 + description: Version of the agent. + example: 6.0.0-rc2 + - name: client + title: Client + group: 2 + description: 'A client is defined as the initiator of a network connection for + events regarding sessions, connections, or bidirectional flow records. + + For TCP events, the client is the initiator of the TCP connection that sends + the SYN packet(s). For other protocols, the client is generally the initiator + or requestor in the network transaction. Some systems use the term "originator" + to refer the client in TCP connections. The client fields describe details about + the system acting as the client in the network event. Client fields are usually + populated in conjunction with server fields. Client fields are generally not + populated for packet-level events. + + Client / server representations can add semantic context to an exchange, which + is helpful to visualize the data in certain situations. If your context falls + in that category, you should still ensure that source and destination are filled + appropriately.' + type: group + fields: + - name: address + level: extended + type: keyword + ignore_above: 1024 + description: 'Some event client addresses are defined ambiguously. The event + will sometimes list an IP, a domain or a unix socket. You should always store + the raw address in the `.address` field. + + Then it should be duplicated to `.ip` or `.domain`, depending on which one + it is.' + - name: bytes + level: core + type: long + description: Bytes sent from the client to the server. + example: 184 + - name: domain level: core type: keyword - example: "[\"production\", \"env2\"]" - description: > - List of keywords used to tag each event. + ignore_above: 1024 + description: Client domain. + - name: geo.city_name + level: core + type: keyword + ignore_above: 1024 + description: City name. + example: Montreal + - name: geo.continent_name + level: core + type: keyword + ignore_above: 1024 + description: Name of the continent. + example: North America + - name: geo.country_iso_code + level: core + type: keyword + ignore_above: 1024 + description: Country ISO code. + example: CA + - name: geo.country_name + level: core + type: keyword + ignore_above: 1024 + description: Country name. + example: Canada + - name: geo.location + level: core + type: geo_point + description: Longitude and latitude. + example: '{ "lon": -73.614830, "lat": 45.505918 }' + - name: geo.name + level: extended + type: keyword + ignore_above: 1024 + description: 'User-defined description of a location, at the level of granularity + they care about. - - name: labels + Could be the name of their data centers, the floor number, if this describes + a local physical entity, city names. + + Not typically used in automated geolocation.' + example: boston-dc + - name: geo.region_iso_code + level: core + type: keyword + ignore_above: 1024 + description: Region ISO code. + example: CA-QC + - name: geo.region_name + level: core + type: keyword + ignore_above: 1024 + description: Region name. + example: Quebec + - name: ip + level: core + type: ip + description: 'IP address of the client. + + Can be one or multiple IPv4 or IPv6 addresses.' + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: MAC address of the client. + - name: packets + level: core + type: long + description: Packets sent from the client to the server. + example: 12 + - name: port + level: core + type: long + description: Port of the client. + - name: user.email + level: extended + type: keyword + ignore_above: 1024 + description: User email address. + - name: user.full_name + level: extended + type: keyword + ignore_above: 1024 + description: User's full name, if available. + example: Albert Einstein + - name: user.group.id + level: extended + type: keyword + ignore_above: 1024 + description: Unique identifier for the group on the system/platform. + - name: user.group.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the group. + - name: user.hash + level: extended + type: keyword + ignore_above: 1024 + description: 'Unique user hash to correlate information for a user in anonymized + form. + + Useful if `user.id` or `user.name` contain confidential information and cannot + be used.' + - name: user.id + level: core + type: keyword + ignore_above: 1024 + description: One or multiple unique identifiers of the user. + - name: user.name + level: core + type: keyword + ignore_above: 1024 + description: Short name or login of the user. + example: albert + - name: cloud + title: Cloud + group: 2 + description: Fields related to the cloud or infrastructure the events are coming + from. + footnote: 'Examples: If Metricbeat is running on an EC2 host and fetches data + from its host, the cloud info contains the data about this machine. If Metricbeat + runs on a remote machine outside the cloud and fetches data from a service running + in the cloud, the field contains cloud data from the machine the service is + running on.' + type: group + fields: + - name: account.id + level: extended + type: keyword + ignore_above: 1024 + description: 'The cloud account or organization id used to identify different + entities in a multi-tenant environment. + + Examples: AWS account id, Google Cloud ORG Id, or other unique identifier.' + example: 666777888999 + - name: availability_zone + level: extended + type: keyword + ignore_above: 1024 + description: Availability zone in which this host is running. + example: us-east-1c + - name: instance.id + level: extended + type: keyword + ignore_above: 1024 + description: Instance ID of the host machine. + example: i-1234567890abcdef0 + - name: instance.name + level: extended + type: keyword + ignore_above: 1024 + description: Instance name of the host machine. + - name: machine.type + level: extended + type: keyword + ignore_above: 1024 + description: Machine type of the host machine. + example: t2.medium + - name: provider + level: extended + type: keyword + ignore_above: 1024 + description: Name of the cloud provider. Example values are aws, azure, gcp, + or digitalocean. + example: aws + - name: region + level: extended + type: keyword + ignore_above: 1024 + description: Region in which this host is running. + example: us-east-1 + - name: container + title: Container + group: 2 + description: 'Container fields are used for meta information about the specific + container that is the source of information. + + These fields help correlate data based containers from any runtime.' + type: group + fields: + - name: id level: core + type: keyword + ignore_above: 1024 + description: Unique container id. + - name: image.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the image the container was built on. + - name: image.tag + level: extended + type: keyword + ignore_above: 1024 + description: Container image tag. + - name: labels + level: extended type: object - example: {env: production, application: foo-bar} - description: > - Key/value pairs. + object_type: keyword + description: Image labels. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Container name. + - name: runtime + level: extended + type: keyword + ignore_above: 1024 + description: Runtime managing this container. + example: docker + - name: destination + title: Destination + group: 2 + description: 'Destination fields describe details about the destination of a packet/event. + + Destination fields are usually populated in conjunction with source fields.' + type: group + fields: + - name: address + level: extended + type: keyword + ignore_above: 1024 + description: 'Some event destination addresses are defined ambiguously. The + event will sometimes list an IP, a domain or a unix socket. You should always + store the raw address in the `.address` field. + + Then it should be duplicated to `.ip` or `.domain`, depending on which one + it is.' + - name: bytes + level: core + type: long + description: Bytes sent from the destination to the source. + example: 184 + - name: domain + level: core + type: keyword + ignore_above: 1024 + description: Destination domain. + - name: geo.city_name + level: core + type: keyword + ignore_above: 1024 + description: City name. + example: Montreal + - name: geo.continent_name + level: core + type: keyword + ignore_above: 1024 + description: Name of the continent. + example: North America + - name: geo.country_iso_code + level: core + type: keyword + ignore_above: 1024 + description: Country ISO code. + example: CA + - name: geo.country_name + level: core + type: keyword + ignore_above: 1024 + description: Country name. + example: Canada + - name: geo.location + level: core + type: geo_point + description: Longitude and latitude. + example: '{ "lon": -73.614830, "lat": 45.505918 }' + - name: geo.name + level: extended + type: keyword + ignore_above: 1024 + description: 'User-defined description of a location, at the level of granularity + they care about. - Can be used to add meta information to events. Should not contain nested - objects. All values are stored as keyword. + Could be the name of their data centers, the floor number, if this describes + a local physical entity, city names. - Example: `docker` and `k8s` labels. + Not typically used in automated geolocation.' + example: boston-dc + - name: geo.region_iso_code + level: core + type: keyword + ignore_above: 1024 + description: Region ISO code. + example: CA-QC + - name: geo.region_name + level: core + type: keyword + ignore_above: 1024 + description: Region name. + example: Quebec + - name: ip + level: core + type: ip + description: 'IP address of the destination. + Can be one or multiple IPv4 or IPv6 addresses.' + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: MAC address of the destination. + - name: packets + level: core + type: long + description: Packets sent from the destination to the source. + example: 12 + - name: port + level: core + type: long + description: Port of the destination. + - name: user.email + level: extended + type: keyword + ignore_above: 1024 + description: User email address. + - name: user.full_name + level: extended + type: keyword + ignore_above: 1024 + description: User's full name, if available. + example: Albert Einstein + - name: user.group.id + level: extended + type: keyword + ignore_above: 1024 + description: Unique identifier for the group on the system/platform. + - name: user.group.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the group. + - name: user.hash + level: extended + type: keyword + ignore_above: 1024 + description: 'Unique user hash to correlate information for a user in anonymized + form. + + Useful if `user.id` or `user.name` contain confidential information and cannot + be used.' + - name: user.id + level: core + type: keyword + ignore_above: 1024 + description: One or multiple unique identifiers of the user. + - name: user.name + level: core + type: keyword + ignore_above: 1024 + description: Short name or login of the user. + example: albert + - name: ecs + title: ECS + group: 2 + description: Meta-information specific to ECS. + type: group + fields: + - name: version + level: core + required: true + type: keyword + ignore_above: 1024 + description: 'ECS version this event conforms to. `ecs.version` is a required + field and must exist in all events. + + When querying across multiple indices -- which may conform to slightly different + ECS versions -- this field lets integrations adjust to the schema version + of the events.' + example: 1.0.0 + - name: error + title: Error + group: 2 + description: 'These fields can represent errors of any kind. + + Use them for errors that happen while fetching events or in cases where the + event itself contains an error.' + type: group + fields: + - name: code + level: core + type: keyword + ignore_above: 1024 + description: Error code describing the error. + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique identifier for the error. - name: message level: core type: text - example: "Hello World" - description: > - For log events the message field contains the log message. - - In other use cases the message field can be used to concatenate - different values which are then freely searchable. If multiple - messages exist, they can be combined into one message. - - - name: agent - title: Agent - group: 2 - description: > - The agent fields contain the data about the software entity, if any, that collects, detects, or observes events on a host, or takes measurements on a host. Examples include Beats. Agents may also run on observers. ECS agent.* fields shall be populated with details of the agent running on the host or observer where the event happened or the measurement was taken. - footnote: > - Examples: In the case of Beats for logs, the agent.name is filebeat. For APM, it is the - agent running in the app/service. The agent information does not change if - data is sent through queuing systems like Kafka, Redis, or processing systems - such as Logstash or APM Server. - type: group - fields: - - - name: version - level: core - type: keyword - description: > - Version of the agent. - - example: 6.0.0-rc2 - - - name: name - level: core - type: keyword - description: > - Name of the agent. - - This is a name that can be given to an agent. This can be helpful if - for example two Filebeat instances are running on the same host - but a human readable separation is needed on which Filebeat instance - data is coming from. - - If no name is given, the name is often left empty. - example: foo - - - name: type - level: core - type: keyword - description: > - Type of the agent. - - The agent type stays always the same and should be given by the agent used. - In case of Filebeat the agent would always be Filebeat also if two - Filebeat instances are run on the same machine. - example: filebeat - - - name: id - level: core - type: keyword - description: > - Unique identifier of this agent (if one exists). - - Example: For Beats this would be beat.id. - example: 8a4f500d - - - name: ephemeral_id - level: extended - type: keyword - description: > - Ephemeral identifier of this agent (if one exists). - - This id normally changes across restarts, but `agent.id` does not. - example: 8a4f500f - - - - name: client - title: Client - group: 2 - description: > - A client is defined as the initiator of a network connection for events regarding sessions, connections, or bidirectional flow records. For TCP events, the client is the initiator of the TCP connection that sends the SYN packet(s). For other protocols, the client is generally the initiator or requestor in the network transaction. Some systems use the term "originator" to refer the client in TCP connections. The client fields describe details about the system acting as the client in the network event. Client fields are usually populated in conjunction with server fields. Client fields are generally not populated for packet-level events. - - Client / server representations can add semantic context to an exchange, which is helpful to visualize the data in certain situations. If your context falls in that category, you should still ensure that source and destination are filled appropriately. - type: group - fields: - - - name: address - level: extended - type: keyword - description: > - Some event client addresses are defined ambiguously. The event will - sometimes list an IP, a domain or a unix socket. You should always - store the raw address in the `.address` field. - - Then it should be duplicated to `.ip` or `.domain`, depending on which - one it is. - - - name: ip - level: core - type: ip - description: > - IP address of the client. - - Can be one or multiple IPv4 or IPv6 addresses. - - - name: port - level: core - type: long - description: > - Port of the client. - - - name: mac - level: core - type: keyword - description: > - MAC address of the client. - - - name: domain - level: core - type: keyword - description: > - Client domain. - - # Metrics - - name: bytes - level: core - type: long - format: bytes - example: 184 - description: > - Bytes sent from the client to the server. - - - name: packets - level: core - type: long - example: 12 - description: > - Packets sent from the client to the server. - - - name: geo - title: Geo - group: 2 - description: > - Geo fields can carry data about a specific location related to an event - or geo information derived from an IP field. - type: group - fields: - - - name: location - level: core - type: geo_point - description: > - Longitude and latitude. - example: '{ "lon": -73.614830, "lat": 45.505918 }' - - - name: continent_name - level: core - type: keyword - description: > - Name of the continent. - example: North America - - - name: country_name - level: core - type: keyword - description: > - Country name. - example: Canada - - - name: region_name - level: core - type: keyword - description: > - Region name. - example: Quebec - - - name: city_name - level: core - type: keyword - description: > - City name. - example: Montreal - - - name: country_iso_code - level: core - type: keyword - description: > - Country ISO code. - example: CA - - - name: region_iso_code - level: core - type: keyword - description: > - Region ISO code. - example: CA-QC - - - name: name - level: extended - type: keyword - description: > - User-defined description of a location, at the level of granularity they care about. - - Could be the name of their data centers, the floor number, if this describes - a local physical entity, city names. - - Not typically used in automated geolocation. - example: boston-dc - - - name: cloud - title: Cloud - group: 2 - description: > - Fields related to the cloud or infrastructure the events - are coming from. - footnote: > - Examples: If Metricbeat is running on an EC2 host and fetches data from its - host, the cloud info contains the data about this machine. If Metricbeat - runs on a remote machine outside the cloud and fetches data from a service - running in the cloud, the field contains cloud data from the machine the - service is running on. - type: group - fields: - - name: provider - level: extended - example: ec2 - type: keyword - description: > - Name of the cloud provider. Example values are ec2, gce, or - digitalocean. - - - name: availability_zone - level: extended - example: us-east-1c - type: keyword - description: > - Availability zone in which this host is running. - - - name: region - level: extended - type: keyword - example: us-east-1 - description: > - Region in which this host is running. - - - name: instance.id - level: extended - type: keyword - example: i-1234567890abcdef0 - description: > - Instance ID of the host machine. - - - name: instance.name - level: extended - type: keyword - description: > - Instance name of the host machine. - - - name: machine.type - level: extended - type: keyword - example: t2.medium - description: > - Machine type of the host machine. - - - name: account.id - level: extended - type: keyword - example: 666777888999 - description: > - The cloud account or organization id used to identify different - entities in a multi-tenant environment. - - Examples: AWS account id, Google Cloud ORG Id, or other unique - identifier. - - - name: container - title: Container - group: 2 - description: > - Container fields are used for meta information about the specific container - that is the source of information. These fields help correlate data based - containers from any runtime. - type: group - fields: - - - name: runtime - level: extended - type: keyword - description: > - Runtime managing this container. - example: docker - - - name: id - level: core - type: keyword - description: > - Unique container id. - - - name: image.name - level: extended - type: keyword - description: > - Name of the image the container was built on. - - - name: image.tag - level: extended - type: keyword - description: > - Container image tag. - - - name: name - level: extended - type: keyword - description: > - Container name. - - - name: labels - level: extended - type: object - object_type: keyword - description: > - Image labels. - - - name: destination - title: Destination - group: 2 - description: > - Destination fields describe details about the destination of a packet/event. - Destination fields are usually populated in conjunction with source fields. - type: group - fields: - - - name: address - level: extended - type: keyword - description: > - Some event destination addresses are defined ambiguously. The event will - sometimes list an IP, a domain or a unix socket. You should always - store the raw address in the `.address` field. - - Then it should be duplicated to `.ip` or `.domain`, depending on which - one it is. - - - name: ip - level: core - type: ip - description: > - IP address of the destination. - - Can be one or multiple IPv4 or IPv6 addresses. - - - name: port - level: core - type: long - description: > - Port of the destination. - - - name: mac - level: core - type: keyword - description: > - MAC address of the destination. - - - name: domain - level: core - type: keyword - description: > - Destination domain. - - # Metrics - - name: bytes - level: core - type: long - format: bytes - example: 184 - description: > - Bytes sent from the destination to the source. - - - name: packets - level: core - type: long - example: 12 - description: > - Packets sent from the destination to the source. - - - name: geo - title: Geo - group: 2 - description: > - Geo fields can carry data about a specific location related to an event - or geo information derived from an IP field. - type: group - fields: - - - name: location - level: core - type: geo_point - description: > - Longitude and latitude. - example: '{ "lon": -73.614830, "lat": 45.505918 }' - - - name: continent_name - level: core - type: keyword - description: > - Name of the continent. - example: North America - - - name: country_name - level: core - type: keyword - description: > - Country name. - example: Canada - - - name: region_name - level: core - type: keyword - description: > - Region name. - example: Quebec - - - name: city_name - level: core - type: keyword - description: > - City name. - example: Montreal - - - name: country_iso_code - level: core - type: keyword - description: > - Country ISO code. - example: CA - - - name: region_iso_code - level: core - type: keyword - description: > - Region ISO code. - example: CA-QC - - - name: name - level: extended - type: keyword - description: > - User-defined description of a location, at the level of granularity they care about. - - Could be the name of their data centers, the floor number, if this describes - a local physical entity, city names. - - Not typically used in automated geolocation. - example: boston-dc - - - name: ecs - title: ECS - group: 2 - description: > - Meta-information specific to ECS. - type: group - fields: - - - name: version - level: core - type: keyword - required: true - description: > - ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. - - When querying across multiple indices -- which may conform to slightly - different ECS versions -- this field lets integrations adjust to the - schema version of the events. - - The current version is 1.0.0-beta2 . - example: 1.0.0-beta2 - - - name: error - title: Error - group: 2 - description: > - These fields can represent errors of any kind. Use them for errors that - happen while fetching events or in cases where the event itself contains an error. - - type: group - fields: - - name: id - level: core - type: keyword - description: > - Unique identifier for the error. - - - name: message - level: core - type: text - description: > - Error message. - - - name: code - level: core - type: keyword - description: > - Error code describing the error. - - - name: event - title: Event - group: 2 - description: > - The event fields are used for context information about the log or metric event itself. A log is defined as an event containing details of something that happened. Log events must include the time at which the thing happened. Examples of log events include a process starting on a host, a network packet being sent from a source to a destination, or a network connection between a client and a server being initiated or closed. A metric is defined as an event containing one or more numerical or categorical measurements and the time at which the measurement was taken. Examples of metric events include memory pressure measured on a host, or vulnerabilities measured on a scanned host. - type: group - fields: - - - name: id - level: core - type: keyword - description: > - Unique ID to describe the event. - example: 8a4f500d - - - name: kind - level: extended - type: keyword - description: > - The kind of the event. - - This gives information about what type of information the event - contains, without being specific to the contents of the event. Examples - are `event`, `state`, `alarm`. Warning: In future versions of ECS, we - plan to provide a list of acceptable values for this field, please use - with caution. - example: state - - - name: category - level: core - type: keyword - description: > - Event category. - - This contains high-level information about the contents of the event. It - is more generic than `event.action`, in the sense that typically a - category contains multiple actions. Warning: In future versions of ECS, - we plan to provide a list of acceptable values for this field, please - use with caution. - - example: user-management - - - name: action - level: core - type: keyword - description: > - The action captured by the event. - - This describes the information in the event. It is more specific than - `event.category`. Examples are `group-add`, `process-started`, - `file-created`. The value is normally defined by the implementer. - example: user-password-change - - - name: outcome - level: extended - type: keyword - description: > - The outcome of the event. - - If the event describes an action, this fields contains the outcome of - that action. Examples outcomes are `success` and `failure`. Warning: In - future versions of ECS, we plan to provide a list of acceptable values - for this field, please use with caution. - - example: success - - - name: type - level: core - type: keyword - description: > - Reserved for future usage. - - Please avoid using this field for user data. - - - name: module - level: core - type: keyword - description: > - Name of the module this data is coming from. - - This information is coming from the modules used in Beats or Logstash. - example: mysql - - - name: dataset - level: core - type: keyword - description: > - Name of the dataset. - - The concept of a `dataset` (fileset / metricset) is used in Beats as a - subset of modules. It contains the information which is currently - stored in metricset.name and metricset.module or fileset.name. - example: stats - - - name: severity - level: core - type: long - example: "7" - description: > - Severity describes the severity of the event. What the different - severity values mean can very different between use cases. It's up to - the implementer to make sure severities are consistent across events. - - - name: original - level: core - type: keyword - # Unfortunately this example is not shown correctly yet as | do not work - # in tables well - # Is | is the representation of | it works except for cases where - # used ticks. - example: "Sep 19 08:26:10 host CEF:0|Security| - threatmanager|1.0|100| - worm successfully stopped|10|src=10.0.0.1 - dst=2.1.2.2spt=1232" - description: > - Raw text message of entire event. Used to demonstrate log integrity. - - This field is not indexed and doc_values are disabled. It cannot be - searched, but it can be retrieved from `_source`. - index: false - doc_values: false - - - name: hash - level: extended - type: keyword - example: "123456789012345678901234567890ABCD" - description: > - Hash (perhaps logstash fingerprint) of raw field to be able to - demonstrate log integrity. - - - name: duration - level: core - type: long - format: duration - input_format: nanoseconds - description: > - Duration of the event in nanoseconds. - - If event.start and event.end are known this value should be the - difference between the end and start time. - - - name: timezone - level: extended - type: keyword - description: > - This field should be populated when the event's timestamp does not include - timezone information already (e.g. default Syslog timestamps). It's - optional otherwise. - - Acceptable timezone formats are: a canonical ID (e.g. "Europe/Amsterdam"), - abbreviated (e.g. "EST") or an HH:mm differential (e.g. "-05:00"). - - - name: created - level: core - type: date - description: > - event.created contains the date when the event was created. - - This timestamp is distinct from @timestamp in that @timestamp contains - the processed timestamp. For logs these two timestamps can be different - as the timestamp in the log line and when the event is read for example - by Filebeat are not identical. `@timestamp` must contain the timestamp - extracted from the log line, event.created when the log line is read. - The same could apply to package capturing where @timestamp contains the - timestamp extracted from the network package and event.created when the - event was created. - - In case the two timestamps are identical, @timestamp should be used. - - - name: start - level: extended - type: date - description: > - event.start contains the date when the event started or when the - activity was first observed. - - - name: end - level: extended - type: date - description: > - event.end contains the date when the event ended or when the activity - was last observed. - - - name: risk_score - level: core - type: float - description: > - Risk score or priority of the event (e.g. security solutions). - Use your system's original value here. - - - name: risk_score_norm - level: extended - type: float - description: > - Normalized risk score or priority of the event, on a scale of 0 to 100. - - This is mainly useful if you use more than one system that assigns - risk scores, and you want to see a normalized value across all systems. - - - name: file - group: 2 - title: File - description: > - A file is defined as a set of information that has been created on, or has existed on a filesystem. File objects can be associated with host events, network events, and/or file events (e.g., those produced by File Integrity Monitoring [FIM] products or services). File fields provide details about the affected file associated with the event or metric. - type: group - fields: - - - name: path - level: extended - type: keyword - description: Path to the file. - - - name: target_path - level: extended - type: keyword - description: Target path for symlinks. - - - name: extension - level: extended - type: keyword - description: > - File extension. - - This should allow easy filtering by file extensions. - example: png - - - name: type - level: extended - type: keyword - description: File type (file, dir, or symlink). - - - name: device - level: extended - type: keyword - description: Device that is the source of the file. - - - name: inode - level: extended - type: keyword - description: Inode representing the file in the filesystem. - - - name: uid - level: extended - type: keyword - description: > - The user ID (UID) or security identifier (SID) of the file owner. - - - name: owner - level: extended - type: keyword - description: File owner's username. - - - name: gid - level: extended - type: keyword - description: Primary group ID (GID) of the file. - - - name: group - level: extended - type: keyword - description: Primary group name of the file. - - - name: mode - level: extended - type: keyword - example: 0640 - description: Mode of the file in octal representation. - - - name: size - level: extended - type: long - format: bytes - description: File size in bytes (field is only added when `type` is - `file`). - - - name: mtime - level: extended - type: date - description: Last time file content was modified. - - - name: ctime - level: extended - type: date - description: Last time file metadata changed. + description: Error message. + - name: event + title: Event + group: 2 + description: 'The event fields are used for context information about the log + or metric event itself. + + A log is defined as an event containing details of something that happened. + Log events must include the time at which the thing happened. Examples of log + events include a process starting on a host, a network packet being sent from + a source to a destination, or a network connection between a client and a server + being initiated or closed. A metric is defined as an event containing one or + more numerical or categorical measurements and the time at which the measurement + was taken. Examples of metric events include memory pressure measured on a host, + or vulnerabilities measured on a scanned host.' + type: group + fields: + - name: action + level: core + type: keyword + ignore_above: 1024 + description: 'The action captured by the event. + + This describes the information in the event. It is more specific than `event.category`. + Examples are `group-add`, `process-started`, `file-created`. The value is + normally defined by the implementer.' + example: user-password-change + - name: category + level: core + type: keyword + ignore_above: 1024 + description: 'Event category. + + This contains high-level information about the contents of the event. It is + more generic than `event.action`, in the sense that typically a category contains + multiple actions. Warning: In future versions of ECS, we plan to provide a + list of acceptable values for this field, please use with caution.' + example: user-management + - name: created + level: core + type: date + description: 'event.created contains the date/time when the event was first + read by an agent, or by your pipeline. + + This field is distinct from @timestamp in that @timestamp typically contain + the time extracted from the original event. + + In most situations, these two timestamps will be slightly different. The difference + can be used to calculate the delay between your source generating an event, + and the time when your agent first processed it. This can be used to monitor + your agent''s or pipeline''s ability to keep up with your event source. + + In case the two timestamps are identical, @timestamp should be used.' + - name: dataset + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the dataset. + + The concept of a `dataset` (fileset / metricset) is used in Beats as a subset + of modules. It contains the information which is currently stored in metricset.name + and metricset.module or fileset.name.' + example: stats + - name: duration + level: core + type: long + description: 'Duration of the event in nanoseconds. + + If event.start and event.end are known this value should be the difference + between the end and start time.' + - name: end + level: extended + type: date + description: event.end contains the date when the event ended or when the activity + was last observed. + - name: hash + level: extended + type: keyword + ignore_above: 1024 + description: Hash (perhaps logstash fingerprint) of raw field to be able to + demonstrate log integrity. + example: 123456789012345678901234567890ABCD + - name: id + level: core + type: keyword + ignore_above: 1024 + description: Unique ID to describe the event. + example: 8a4f500d + - name: kind + level: extended + type: keyword + ignore_above: 1024 + description: 'The kind of the event. + + This gives information about what type of information the event contains, + without being specific to the contents of the event. Examples are `event`, + `state`, `alarm`. Warning: In future versions of ECS, we plan to provide a + list of acceptable values for this field, please use with caution.' + example: state + - name: module + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the module this data is coming from. + This information is coming from the modules used in Beats or Logstash.' + example: mysql + - name: original + level: core + type: keyword + ignore_above: 1024 + description: 'Raw text message of entire event. Used to demonstrate log integrity. + + This field is not indexed and doc_values are disabled. It cannot be searched, + but it can be retrieved from `_source`.' + example: Sep 19 08:26:10 host CEF:0|Security| threatmanager|1.0|100| + worm successfully stopped|10|src=10.0.0.1 dst=2.1.2.2spt=1232 + - name: outcome + level: extended + type: keyword + ignore_above: 1024 + description: 'The outcome of the event. + + If the event describes an action, this fields contains the outcome of that + action. Examples outcomes are `success` and `failure`. Warning: In future + versions of ECS, we plan to provide a list of acceptable values for this field, + please use with caution.' + example: success + - name: risk_score + level: core + type: float + description: Risk score or priority of the event (e.g. security solutions). + Use your system's original value here. + - name: risk_score_norm + level: extended + type: float + description: 'Normalized risk score or priority of the event, on a scale of + 0 to 100. + + This is mainly useful if you use more than one system that assigns risk scores, + and you want to see a normalized value across all systems.' + - name: severity + level: core + type: long + description: Severity describes the original severity of the event. What the + different severity values mean can very different between use cases. It's + up to the implementer to make sure severities are consistent across events. + example: '7' + - name: start + level: extended + type: date + description: event.start contains the date when the event started or when the + activity was first observed. + - name: timezone + level: extended + type: keyword + ignore_above: 1024 + description: 'This field should be populated when the event''s timestamp does + not include timezone information already (e.g. default Syslog timestamps). + It''s optional otherwise. + + Acceptable timezone formats are: a canonical ID (e.g. "Europe/Amsterdam"), + abbreviated (e.g. "EST") or an HH:mm differential (e.g. "-05:00").' + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Reserved for future usage. + + Please avoid using this field for user data.' + - name: file + title: File + group: 2 + description: 'A file is defined as a set of information that has been created + on, or has existed on a filesystem. + + File objects can be associated with host events, network events, and/or file + events (e.g., those produced by File Integrity Monitoring [FIM] products or + services). File fields provide details about the affected file associated with + the event or metric.' + type: group + fields: + - name: ctime + level: extended + type: date + description: Last time file metadata changed. + - name: device + level: extended + type: keyword + ignore_above: 1024 + description: Device that is the source of the file. + - name: extension + level: extended + type: keyword + ignore_above: 1024 + description: 'File extension. + + This should allow easy filtering by file extensions.' + example: png + - name: gid + level: extended + type: keyword + ignore_above: 1024 + description: Primary group ID (GID) of the file. - name: group - title: Group - group: 2 - description: > - The group fields are meant to represent groups that are relevant to the - event. - type: group - fields: - - - name: id - level: extended - type: keyword - description: > - Unique identifier for the group on the system/platform. - - - name: name - level: extended - type: keyword - description: > - Name of the group. - - - name: host - title: Host - group: 2 - description: > - A host is defined as a general computing instance. ECS host.* fields should be populated with details about the host on which the event happened, or on which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes. - type: group - fields: - - - name: hostname - level: core - type: keyword - description: > - Hostname of the host. - - It normally contains what the `hostname` command returns on the host machine. - - - name: name - level: core - type: keyword - description: > - Name of the host. - - It can contain what `hostname` returns on Unix systems, the fully - qualified domain name, or a name specified by the user. The sender - decides which value to use. - - - name: id - level: core - type: keyword - description: > - Unique host id. - - As hostname is not always unique, use values that are meaningful - in your environment. - - Example: The current usage of `beat.name`. - - name: ip - level: core - type: ip - description: > - Host ip address. - - - name: mac - level: core - type: keyword - description: > - Host mac address. - - - name: type - level: core - type: keyword - description: > - Type of host. - - For Cloud providers this can be the machine type like `t2.medium`. - If vm, this could be the container, for example, or other information - meaningful in your environment. - - - name: architecture - level: core - type: keyword - example: "x86_64" - description: > - Operating system architecture. - - - name: os - title: Operating System - group: 2 - description: > - The OS fields contain information about the operating system. - reusable: - top_level: false - expected: - - observer - - host - - user_agent - type: group - fields: - - - name: platform - level: extended - type: keyword - description: > - Operating system platform (such centos, ubuntu, windows). - example: darwin - - - name: name - level: extended - type: keyword - example: "Mac OS X" - description: > - Operating system name, without the version. - - - name: full - level: extended - type: keyword - example: "Mac OS Mojave" - description: > - Operating system name, including the version or code name. - - - name: family - level: extended - type: keyword - example: "debian" - description: > - OS family (such as redhat, debian, freebsd, windows). - - - name: version - level: extended - type: keyword - example: "10.14.1" - description: > - Operating system version as a raw string. - - - name: kernel - level: extended - type: keyword - example: "4.4.0-112-generic" - description: > - Operating system kernel version as a raw string. - - - name: geo - title: Geo - group: 2 - description: > - Geo fields can carry data about a specific location related to an event - or geo information derived from an IP field. - type: group - fields: - - - name: location - level: core - type: geo_point - description: > - Longitude and latitude. - example: '{ "lon": -73.614830, "lat": 45.505918 }' - - - name: continent_name - level: core - type: keyword - description: > - Name of the continent. - example: North America - - - name: country_name - level: core - type: keyword - description: > - Country name. - example: Canada - - - name: region_name - level: core - type: keyword - description: > - Region name. - example: Quebec - - - name: city_name - level: core - type: keyword - description: > - City name. - example: Montreal - - - name: country_iso_code - level: core - type: keyword - description: > - Country ISO code. - example: CA - - - name: region_iso_code - level: core - type: keyword - description: > - Region ISO code. - example: CA-QC - - - name: name - level: extended - type: keyword - description: > - User-defined description of a location, at the level of granularity they care about. - - Could be the name of their data centers, the floor number, if this describes - a local physical entity, city names. - - Not typically used in automated geolocation. - example: boston-dc - - - name: http - title: HTTP - group: 2 - description: > - Fields related to HTTP activity. - type: group - fields: - - - name: request.method - level: extended - type: keyword - description: > - Http request method. - - The field value must be normalized to lowercase for querying. See - "Lowercase Capitalization" in the "Implementing ECS" section. - example: get, post, put - - - name: request.body.content - level: extended - type: keyword - description: > - The full http request body. - example: Hello world - - - name: request.referrer - level: extended - type: keyword - description: > - Referrer for this HTTP request. - example: https://blog.example.com/ - - - name: response.status_code - level: extended - type: long - description: > - Http response status code. - example: 404 - - - name: response.body.content - level: extended - type: keyword - description: > - The full http response body. - example: Hello world - - - name: version - level: extended - type: keyword - description: > - Http version. - example: 1.1 - - # Metrics - - name: request.bytes - level: extended - type: long - format: bytes - description: > - Total size in bytes of the request (body and headers). - example: 1437 - - - name: request.body.bytes - level: extended - type: long - format: bytes - description: > - Size in bytes of the request body. - example: 887 - - - name: response.bytes - level: extended - type: long - format: bytes - description: > - Total size in bytes of the response (body and headers). - example: 1437 - - - name: response.body.bytes - level: extended - type: long - format: bytes - description: > - Size in bytes of the response body. - example: 887 - - - name: log - title: Log - description: > - Fields which are specific to log events. - type: group - fields: - - - name: level - level: core - type: keyword - description: > - Log level of the log event. - - Some examples are `WARN`, `ERR`, `INFO`. - example: ERR - - - name: original - level: core - type: keyword - example: "Sep 19 08:26:10 localhost My log" - index: false - doc_values: false - description: > - - This is the original log message and contains the full log message - before splitting it up in multiple parts. - - In contrast to the `message` field which can contain an extracted part - of the log message, this field contains the original, full log message. - It can have already some modifications applied like encoding or new - lines removed to clean up the log message. - - This field is not indexed and doc_values are disabled so it can't be - queried but the value can be retrieved from `_source`. - - - name: network - title: Network - group: 2 - description: > - The network is defined as the communication path over which a host or network event happens. The network.* fields should be populated with details about the network activity associated with an event. - type: group - fields: - - - name: name - level: extended - type: keyword - description: > - Name given by operators to sections of their network. - example: Guest Wifi - - - name: type - level: core - type: keyword - description: > - In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc - - The field value must be normalized to lowercase for querying. See - "Lowercase Capitalization" in the "Implementing ECS" section. - example: ipv4 - - - name: iana_number - level: extended - type: keyword - description: > - IANA Protocol Number (https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml). - Standardized list of protocols. This aligns well with NetFlow and - sFlow related logs which use the IANA Protocol Number. - example: 6 - - - name: transport - level: core - type: keyword - description: > - Same as network.iana_number, but instead using the Keyword name of the - transport layer (udp, tcp, ipv6-icmp, etc.) - - The field value must be normalized to lowercase for querying. See - "Lowercase Capitalization" in the "Implementing ECS" section. - example: tcp - - - name: application - level: extended - type: keyword - description: > - A name given to an application. This can be arbitrarily assigned for - things like microservices, but also apply to things like skype, icq, - facebook, twitter. This would be used in situations where the vendor - or service can be decoded such as from the source/dest IP owners, - ports, or wire format. - - The field value must be normalized to lowercase for querying. See - "Lowercase Capitalization" in the "Implementing ECS" section. - example: aim - - - name: protocol - level: core - type: keyword - description: > - L7 Network protocol name. ex. http, lumberjack, transport protocol. - - The field value must be normalized to lowercase for querying. See - "Lowercase Capitalization" in the "Implementing ECS" section. - example: http - - - name: direction - level: core - type: keyword - description: > - Direction of the network traffic. - - Recommended values are: - * inbound - * outbound - * internal - * external - * unknown - - When mapping events from a host-based monitoring context, populate this - field from the host's point of view. - - When mapping events from a network or perimeter-based monitoring context, - populate this field from the point of view of your network perimeter. - example: inbound - - - name: forwarded_ip - level: core - type: ip - description: > - Host IP address when the source IP address is the proxy. - example: 192.1.1.2 - - - name: community_id - level: extended - type: keyword - description: > - A hash of source and destination IPs and ports, as well as the protocol - used in a communication. This is a tool-agnostic standard to identify - flows. - - Learn more at https://github.com/corelight/community-id-spec. - example: '1:hO+sN4H+MG5MY/8hIrXPqc4ZQz0=' - - # Metrics - - name: bytes - level: core - type: long - format: bytes - description: > - Total bytes transferred in both directions. - - If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. - example: 368 - - - name: packets - level: core - type: long - description: > - Total packets transferred in both directions. - - If `source.packets` and `destination.packets` are known, `network.packets` is their sum. - example: 24 - - - name: observer - title: Observer - group: 2 - description: > - An observer is defined as a special network, security, or application device used to detect, observe, or create network, security, or application-related events and metrics. This could be a custom hardware appliance or a server that has been configured to run special network, security, or application software. Examples include firewalls, intrusion detection/prevention systems, network monitoring sensors, web application firewalls, data loss prevention systems, and APM servers. The observer.* fields shall be populated with details of the system, if any, that detects, observes and/or creates a network, security, or application event or metric. Message queues and ETL components used in processing events or metrics are not considered observers in ECS. - type: group - fields: - - name: mac - level: core - type: keyword - description: > - MAC address of the observer - - name: ip - level: core - type: ip - description: > - IP address of the observer. - - name: hostname - level: core - type: keyword - description: > - Hostname of the observer. - - name: vendor - level: core - type: keyword - description: > - observer vendor information. - - name: version - level: core - type: keyword - description: > - Observer version. - - name: serial_number - level: extended - type: keyword - description: > - Observer serial number. - - name: type - level: core - type: keyword - description: > - The type of the observer the data is coming from. - - There is no predefined list of observer types. Some examples are - `forwarder`, `firewall`, `ids`, `ips`, `proxy`, `poller`, `sensor`, `APM server`. - example: firewall - - - name: os - title: Operating System - group: 2 - description: > - The OS fields contain information about the operating system. - reusable: - top_level: false - expected: - - observer - - host - - user_agent - type: group - fields: - - - name: platform - level: extended - type: keyword - description: > - Operating system platform (such centos, ubuntu, windows). - example: darwin - - - name: name - level: extended - type: keyword - example: "Mac OS X" - description: > - Operating system name, without the version. - - - name: full - level: extended - type: keyword - example: "Mac OS Mojave" - description: > - Operating system name, including the version or code name. - - - name: family - level: extended - type: keyword - example: "debian" - description: > - OS family (such as redhat, debian, freebsd, windows). - - - name: version - level: extended - type: keyword - example: "10.14.1" - description: > - Operating system version as a raw string. - - - name: kernel - level: extended - type: keyword - example: "4.4.0-112-generic" - description: > - Operating system kernel version as a raw string. - - - name: geo - title: Geo - group: 2 - description: > - Geo fields can carry data about a specific location related to an event - or geo information derived from an IP field. - type: group - fields: - - - name: location - level: core - type: geo_point - description: > - Longitude and latitude. - example: '{ "lon": -73.614830, "lat": 45.505918 }' - - - name: continent_name - level: core - type: keyword - description: > - Name of the continent. - example: North America - - - name: country_name - level: core - type: keyword - description: > - Country name. - example: Canada - - - name: region_name - level: core - type: keyword - description: > - Region name. - example: Quebec - - - name: city_name - level: core - type: keyword - description: > - City name. - example: Montreal - - - name: country_iso_code - level: core - type: keyword - description: > - Country ISO code. - example: CA - - - name: region_iso_code - level: core - type: keyword - description: > - Region ISO code. - example: CA-QC - - - name: name - level: extended - type: keyword - description: > - User-defined description of a location, at the level of granularity they care about. - - Could be the name of their data centers, the floor number, if this describes - a local physical entity, city names. - - Not typically used in automated geolocation. - example: boston-dc - - - name: organization - title: Organization - group: 2 - description: > - The organization fields enrich data with information about the company or entity - the data is associated with. These fields help you arrange or filter data stored in an index by one or multiple - organizations. - type: group - fields: - - - name: name - level: extended - type: keyword - description: > - Organization name. - - - name: id - level: extended - type: keyword - description: > - Unique identifier for the organization. - - name: os - title: Operating System - group: 2 - description: > - The OS fields contain information about the operating system. - reusable: - top_level: false - expected: - - observer - - host - - user_agent - type: group - fields: - - - name: platform - level: extended - type: keyword - description: > - Operating system platform (such centos, ubuntu, windows). - example: darwin - - - name: name - level: extended - type: keyword - example: "Mac OS X" - description: > - Operating system name, without the version. - - - name: full - level: extended - type: keyword - example: "Mac OS Mojave" - description: > - Operating system name, including the version or code name. - - - name: family - level: extended - type: keyword - example: "debian" - description: > - OS family (such as redhat, debian, freebsd, windows). - - - name: version - level: extended - type: keyword - example: "10.14.1" - description: > - Operating system version as a raw string. - - - name: kernel - level: extended - type: keyword - example: "4.4.0-112-generic" - description: > - Operating system kernel version as a raw string. - - - name: process - title: Process - group: 2 - description: > - These fields contain information about a process. - These fields can help you correlate metrics information with a process id/name - from a log message. The `process.pid` often stays in the metric itself and is - copied to the global field for correlation. - type: group - fields: - - - name: pid - level: core - type: long - description: > - Process id. - exmple: ssh - - - name: name - level: extended - type: keyword - description: > - Process name. - - Sometimes called program name or similar. - example: ssh - - - name: ppid - level: extended - type: long - description: > - Process parent id. - - - name: args - level: extended - type: keyword - description: > - Process arguments. - - May be filtered to protect sensitive information. - example: ["ssh", "-l", "user", "10.0.0.16"] - - - name: executable - level: extended - type: keyword - description: > - Absolute path to the process executable. - example: /usr/bin/ssh - - - name: title - level: extended - type: keyword - description: > - Process title. - - The proctitle, some times the same as process name. Can also be different: - for example a browser setting its title to the web page currently opened. - - - name: thread.id - level: extended - type: long - example: 4242 - description: > - Thread ID. - - - name: start - level: extended - type: date - example: "2016-05-23T08:05:34.853Z" - description: > - The time the process started. - - - name: working_directory - level: extended - type: keyword - example: /home/alice - description: > - The working directory of the process. - - - name: related - title: Related - group: 2 - description: > - This field set is meant to facilitate pivoting around a piece of data. - Some pieces of information can be seen in many places in ECS. To facilitate - searching for them, append values to their corresponding field in - `related.`. - A concrete example is IP addresses, which can be under host, observer, source, destination, client, server, and network.forwarded_ip. If you append all IPs to `related.ip`, you can then search for a given IP trivially, no matter where it appeared, by querying `related.ip:a.b.c.d`. - type: group - fields: - - - name: ip - level: extended - type: ip - description: > - All of the IPs seen on your event. - - - name: server - title: Server - group: 2 - description: > - A Server is defined as the responder in a network connection for events regarding sessions, connections, or bidirectional flow records. For TCP events, the server is the receiver of the initial SYN packet(s) of the TCP connection. For other protocols, the server is generally the responder in the network transaction. Some systems actually use the term "responder" to refer the server in TCP connections. The server fields describe details about the system acting as the server in the network event. Server fields are usually populated in conjunction with client fields. Server fields are generally not populated for packet-level events. - - Client / server representations can add semantic context to an exchange, which is helpful to visualize the data in certain situations. If your context falls in that category, you should still ensure that source and destination are filled appropriately. - type: group - fields: - - - name: address - level: extended - type: keyword - description: > - Some event server addresses are defined ambiguously. The event will - sometimes list an IP, a domain or a unix socket. You should always - store the raw address in the `.address` field. - - Then it should be duplicated to `.ip` or `.domain`, depending on which - one it is. - - - name: ip - level: core - type: ip - description: > - IP address of the server. - - Can be one or multiple IPv4 or IPv6 addresses. - - - name: port - level: core - type: long - description: > - Port of the server. - - - name: mac - level: core - type: keyword - description: > - MAC address of the server. - - - name: domain - level: core - type: keyword - description: > - Server domain. - - # Metrics - - name: bytes - level: core - type: long - format: bytes - example: 184 - description: > - Bytes sent from the server to the client. - - - name: packets - level: core - type: long - example: 12 - description: > - Packets sent from the server to the client. - - - name: geo - title: Geo - group: 2 - description: > - Geo fields can carry data about a specific location related to an event - or geo information derived from an IP field. - type: group - fields: - - - name: location - level: core - type: geo_point - description: > - Longitude and latitude. - example: '{ "lon": -73.614830, "lat": 45.505918 }' - - - name: continent_name - level: core - type: keyword - description: > - Name of the continent. - example: North America - - - name: country_name - level: core - type: keyword - description: > - Country name. - example: Canada - - - name: region_name - level: core - type: keyword - description: > - Region name. - example: Quebec - - - name: city_name - level: core - type: keyword - description: > - City name. - example: Montreal - - - name: country_iso_code - level: core - type: keyword - description: > - Country ISO code. - example: CA - - - name: region_iso_code - level: core - type: keyword - description: > - Region ISO code. - example: CA-QC - - - name: name - level: extended - type: keyword - description: > - User-defined description of a location, at the level of granularity they care about. - - Could be the name of their data centers, the floor number, if this describes - a local physical entity, city names. - - Not typically used in automated geolocation. - example: boston-dc - - - name: service - title: Service - group: 2 - description: > - The service fields describe the service for or from which the data was - collected. These fields help you find and correlate logs for a specific - service and version. - type: group - fields: - - - name: id - level: core - type: keyword - description: > - Unique identifier of the running service. - - This id should uniquely identify this service. This makes it possible - to correlate logs and metrics for one specific service. - - Example: If you are experiencing issues with one redis instance, you - can filter on that id to see metrics and logs for that single instance. - - example: d37e5ebfe0ae6c4972dbe9f0174a1637bb8247f6 - - - name: name - level: core - type: keyword - example: "elasticsearch-metrics" - description: > - Name of the service data is collected from. - - The name of the service is normally user given. This allows if two - instances of the same service are running on the same machine - they can be differentiated by the `service.name`. - - Also it allows for distributed services that run on multiple hosts to - correlate the related instances based on the name. - - In the case of Elasticsearch the service.name could contain the cluster - name. For Beats the service.name is by default a copy of the `service.type` - field if no name is specified. - - - name: type - level: core - type: keyword - example: "elasticsearch" - description: > - The type of the service data is collected from. - - The type can be used to group and correlate logs and metrics from one - service type. - - Example: If logs or metrics are collected from Elasticsearch, `service.type` would be - `elasticsearch`. - - - name: state - level: core - type: keyword - description: > - Current state of the service. - - - name: version - level: core - type: keyword - example: "3.2.4" - description: > - Version of the service the data was collected from. - - This allows to look at a data set only for a specific version of a - service. - - - name: ephemeral_id - level: extended - type: keyword - description: > - Ephemeral identifier of this service (if one exists). - - This id normally changes across restarts, but `service.id` does not. - example: 8a4f500f - - - name: source - title: Source - group: 2 - description: > - Source fields describe details about the source of a packet/event. - Source fields are usually populated in conjunction with destination fields. - type: group - fields: - - - name: address - level: extended - type: keyword - description: > - Some event source addresses are defined ambiguously. The event will - sometimes list an IP, a domain or a unix socket. You should always - store the raw address in the `.address` field. - - Then it should be duplicated to `.ip` or `.domain`, depending on which - one it is. - - - name: ip - level: core - type: ip - description: > - IP address of the source. - - Can be one or multiple IPv4 or IPv6 addresses. - - - name: port - level: core - type: long - description: > - Port of the source. - - - name: mac - level: core - type: keyword - description: > - MAC address of the source. - - - name: domain - level: core - type: keyword - description: > - Source domain. - - # Metrics - - name: bytes - level: core - type: long - format: bytes - example: 184 - description: > - Bytes sent from the source to the destination. - - - name: packets - level: core - type: long - example: 12 - description: > - Packets sent from the source to the destination. - - - name: geo - title: Geo - group: 2 - description: > - Geo fields can carry data about a specific location related to an event - or geo information derived from an IP field. - type: group - fields: - - - name: location - level: core - type: geo_point - description: > - Longitude and latitude. - example: '{ "lon": -73.614830, "lat": 45.505918 }' - - - name: continent_name - level: core - type: keyword - description: > - Name of the continent. - example: North America - - - name: country_name - level: core - type: keyword - description: > - Country name. - example: Canada - - - name: region_name - level: core - type: keyword - description: > - Region name. - example: Quebec - - - name: city_name - level: core - type: keyword - description: > - City name. - example: Montreal - - - name: country_iso_code - level: core - type: keyword - description: > - Country ISO code. - example: CA - - - name: region_iso_code - level: core - type: keyword - description: > - Region ISO code. - example: CA-QC - - - name: name - level: extended - type: keyword - description: > - User-defined description of a location, at the level of granularity they care about. - - Could be the name of their data centers, the floor number, if this describes - a local physical entity, city names. - - Not typically used in automated geolocation. - example: boston-dc - - - - name: url - title: URL - description: > - URL fields provide a complete URL, with scheme, host, and path. - type: group - fields: - - - name: original - level: extended - type: keyword - description: > - Unmodified original url as seen in the event source. - - Note that in network monitoring, the observed URL may be a full URL, - whereas in access logs, the URL is often just represented as a path. - - This field is meant to represent the URL as it was observed, complete - or not. - example: > - https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch - - - name: full - level: extended - type: keyword - description: > - If full URLs are important to your use case, they should be stored in - `url.full`, whether this field is reconstructed or present in the - event source. - example: https://www.elastic.co:443/search?q=elasticsearch#top - - - name: scheme - level: extended - type: keyword - description: > - Scheme of the request, such as "https". - - Note: The `:` is not part of the scheme. - example: https - - - name: domain - level: extended - type: keyword - description: > - Domain of the request, such as "www.elastic.co". - - In some cases a URL may refer to an IP and/or port directly, without a - domain name. In this case, the IP address would go to the `domain` field. - example: www.elastic.co - - - name: port - level: extended - type: integer - description: > - Port of the request, such as 443. - example: 443 - - - name: path - level: extended - type: keyword - description: > - Path of the request, such as "/search". - - - name: query - level: extended - type: keyword - description: > - The query field describes the query string of the request, - such as "q=elasticsearch". - - The `?` is excluded from the query string. If a URL contains - no `?`, there is no query field. If there is a `?` but no query, - the query field exists with an empty string. The `exists` - query can be used to differentiate between the two cases. - - - name: fragment - level: extended - type: keyword - description: > - Portion of the url after the `#`, such as "top". - - The `#` is not part of the fragment. - - - name: username - level: extended - type: keyword - description: > - Username of the request. - - - name: password - level: extended - type: keyword - description: > - Password of the request. - - - name: user - title: User - group: 2 - description: > - The user fields describe information about the user that is relevant - to the event. Fields can have one entry or multiple entries. If a - user has more than one id, provide an array that includes all of - them. - reusable: - top_level: true - expected: - - client - - destination - - host - - server - - source - type: group - fields: - - - name: id - level: core - type: keyword - description: > - One or multiple unique identifiers of the user. - - - name: name - level: core - type: keyword - example: albert - description: > - Short name or login of the user. - - - name: full_name - level: extended - type: keyword - example: Albert Einstein - description: > - User's full name, if available. - - - name: email - level: extended - type: keyword - description: > - User email address. - - - name: hash - level: extended - type: keyword - description: > - Unique user hash to correlate information for a user in anonymized form. - - Useful if `user.id` or `user.name` contain confidential information and - cannot be used. - - - name: group - title: Group - group: 2 - description: > - The group fields are meant to represent groups that are relevant to the - event. - type: group - fields: - - - name: id - level: extended - type: keyword - description: > - Unique identifier for the group on the system/platform. - - - name: name - level: extended - type: keyword - description: > - Name of the group. - - - name: user_agent - title: User agent - group: 2 - description: > - The user_agent fields normally come from a browser request. They often - show up in web service logs coming from the parsed user agent string. - type: group - fields: - - - name: original - level: extended - type: keyword - description: > - Unparsed version of the user_agent. - example: "Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1" - - - name: name - level: extended - type: keyword - example: Safari - description: > - Name of the user agent. - - name: version - level: extended - type: keyword - description: > - Version of the user agent. - example: 12.0 - - - name: device.name - level: extended - type: keyword - example: iPhone - description: > - Name of the device. - - - name: os - title: Operating System - group: 2 - description: > - The OS fields contain information about the operating system. - reusable: - top_level: false - expected: - - observer - - host - - user_agent - type: group - fields: - - - name: platform - level: extended - type: keyword - description: > - Operating system platform (such centos, ubuntu, windows). - example: darwin - - - name: name - level: extended - type: keyword - example: "Mac OS X" - description: > - Operating system name, without the version. - - - name: full - level: extended - type: keyword - example: "Mac OS Mojave" - description: > - Operating system name, including the version or code name. - - - name: family - level: extended - type: keyword - example: "debian" - description: > - OS family (such as redhat, debian, freebsd, windows). - - - name: version - level: extended - type: keyword - example: "10.14.1" - description: > - Operating system version as a raw string. - - - name: kernel - level: extended - type: keyword - example: "4.4.0-112-generic" - description: > - Operating system kernel version as a raw string. - - # This is not in ECS. - # TODO: https://github.com/elastic/ecs/issues/178 - - name: agent.hostname - type: keyword - description: > - Hostname of the agent. + level: extended + type: keyword + ignore_above: 1024 + description: Primary group name of the file. + - name: inode + level: extended + type: keyword + ignore_above: 1024 + description: Inode representing the file in the filesystem. + - name: mode + level: extended + type: keyword + ignore_above: 1024 + description: Mode of the file in octal representation. + example: 416 + - name: mtime + level: extended + type: date + description: Last time file content was modified. + - name: owner + level: extended + type: keyword + ignore_above: 1024 + description: File owner's username. + - name: path + level: extended + type: keyword + ignore_above: 1024 + description: Path to the file. + - name: size + level: extended + type: long + description: File size in bytes (field is only added when `type` is `file`). + - name: target_path + level: extended + type: keyword + ignore_above: 1024 + description: Target path for symlinks. + - name: type + level: extended + type: keyword + ignore_above: 1024 + description: File type (file, dir, or symlink). + - name: uid + level: extended + type: keyword + ignore_above: 1024 + description: The user ID (UID) or security identifier (SID) of the file owner. + - name: geo + title: Geo + group: 2 + description: 'Geo fields can carry data about a specific location related to an + event. + + This geolocation information can be derived from techniques such as Geo IP, + or be user-supplied.' + type: group + fields: + - name: city_name + level: core + type: keyword + ignore_above: 1024 + description: City name. + example: Montreal + - name: continent_name + level: core + type: keyword + ignore_above: 1024 + description: Name of the continent. + example: North America + - name: country_iso_code + level: core + type: keyword + ignore_above: 1024 + description: Country ISO code. + example: CA + - name: country_name + level: core + type: keyword + ignore_above: 1024 + description: Country name. + example: Canada + - name: location + level: core + type: geo_point + description: Longitude and latitude. + example: '{ "lon": -73.614830, "lat": 45.505918 }' + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: 'User-defined description of a location, at the level of granularity + they care about. + + Could be the name of their data centers, the floor number, if this describes + a local physical entity, city names. + + Not typically used in automated geolocation.' + example: boston-dc + - name: region_iso_code + level: core + type: keyword + ignore_above: 1024 + description: Region ISO code. + example: CA-QC + - name: region_name + level: core + type: keyword + ignore_above: 1024 + description: Region name. + example: Quebec + - name: group + title: Group + group: 2 + description: The group fields are meant to represent groups that are relevant + to the event. + type: group + fields: + - name: id + level: extended + type: keyword + ignore_above: 1024 + description: Unique identifier for the group on the system/platform. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the group. + - name: host + title: Host + group: 2 + description: 'A host is defined as a general computing instance. + + ECS host.* fields should be populated with details about the host on which the + event happened, or from which the measurement was taken. Host types include + hardware, virtual machines, Docker containers, and Kubernetes nodes.' + type: group + fields: + - name: architecture + level: core + type: keyword + ignore_above: 1024 + description: Operating system architecture. + example: x86_64 + - name: geo.city_name + level: core + type: keyword + ignore_above: 1024 + description: City name. + example: Montreal + - name: geo.continent_name + level: core + type: keyword + ignore_above: 1024 + description: Name of the continent. + example: North America + - name: geo.country_iso_code + level: core + type: keyword + ignore_above: 1024 + description: Country ISO code. + example: CA + - name: geo.country_name + level: core + type: keyword + ignore_above: 1024 + description: Country name. + example: Canada + - name: geo.location + level: core + type: geo_point + description: Longitude and latitude. + example: '{ "lon": -73.614830, "lat": 45.505918 }' + - name: geo.name + level: extended + type: keyword + ignore_above: 1024 + description: 'User-defined description of a location, at the level of granularity + they care about. + + Could be the name of their data centers, the floor number, if this describes + a local physical entity, city names. + + Not typically used in automated geolocation.' + example: boston-dc + - name: geo.region_iso_code + level: core + type: keyword + ignore_above: 1024 + description: Region ISO code. + example: CA-QC + - name: geo.region_name + level: core + type: keyword + ignore_above: 1024 + description: Region name. + example: Quebec + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: 'Hostname of the host. + + It normally contains what the `hostname` command returns on the host machine.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique host id. + + As hostname is not always unique, use values that are meaningful in your environment. + + Example: The current usage of `beat.name`.' + - name: ip + level: core + type: ip + description: Host ip address. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: Host mac address. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the host. + + It can contain what `hostname` returns on Unix systems, the fully qualified + domain name, or a name specified by the user. The sender decides which value + to use.' + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.full + level: extended + type: keyword + ignore_above: 1024 + description: Operating system name, including the version or code name. + example: Mac OS Mojave + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'Type of host. + + For Cloud providers this can be the machine type like `t2.medium`. If vm, + this could be the container, for example, or other information meaningful + in your environment.' + - name: user.email + level: extended + type: keyword + ignore_above: 1024 + description: User email address. + - name: user.full_name + level: extended + type: keyword + ignore_above: 1024 + description: User's full name, if available. + example: Albert Einstein + - name: user.group.id + level: extended + type: keyword + ignore_above: 1024 + description: Unique identifier for the group on the system/platform. + - name: user.group.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the group. + - name: user.hash + level: extended + type: keyword + ignore_above: 1024 + description: 'Unique user hash to correlate information for a user in anonymized + form. + + Useful if `user.id` or `user.name` contain confidential information and cannot + be used.' + - name: user.id + level: core + type: keyword + ignore_above: 1024 + description: One or multiple unique identifiers of the user. + - name: user.name + level: core + type: keyword + ignore_above: 1024 + description: Short name or login of the user. + example: albert + - name: http + title: HTTP + group: 2 + description: Fields related to HTTP activity. Use the `url` field set to store + the url of the request. + type: group + fields: + - name: request.body.bytes + level: extended + type: long + description: Size in bytes of the request body. + example: 887 + - name: request.body.content + level: extended + type: keyword + ignore_above: 1024 + description: The full HTTP request body. + example: Hello world + - name: request.bytes + level: extended + type: long + description: Total size in bytes of the request (body and headers). + example: 1437 + - name: request.method + level: extended + type: keyword + ignore_above: 1024 + description: 'HTTP request method. + + The field value must be normalized to lowercase for querying. See the documentation + section "Implementing ECS".' + example: get, post, put + - name: request.referrer + level: extended + type: keyword + ignore_above: 1024 + description: Referrer for this HTTP request. + example: https://blog.example.com/ + - name: response.body.bytes + level: extended + type: long + description: Size in bytes of the response body. + example: 887 + - name: response.body.content + level: extended + type: keyword + ignore_above: 1024 + description: The full HTTP response body. + example: Hello world + - name: response.bytes + level: extended + type: long + description: Total size in bytes of the response (body and headers). + example: 1437 + - name: response.status_code + level: extended + type: long + description: HTTP response status code. + example: 404 + - name: version + level: extended + type: keyword + ignore_above: 1024 + description: HTTP version. + example: 1.1 + - name: log + title: Log + group: 2 + description: Fields which are specific to log events. + type: group + fields: + - name: level + level: core + type: keyword + ignore_above: 1024 + description: 'Original log level of the log event. + + Some examples are `warn`, `error`, `i`.' + example: err + - name: original + level: core + type: keyword + ignore_above: 1024 + description: 'This is the original log message and contains the full log message + before splitting it up in multiple parts. + + In contrast to the `message` field which can contain an extracted part of + the log message, this field contains the original, full log message. It can + have already some modifications applied like encoding or new lines removed + to clean up the log message. + + This field is not indexed and doc_values are disabled so it can''t be queried + but the value can be retrieved from `_source`.' + example: Sep 19 08:26:10 localhost My log + - name: network + title: Network + group: 2 + description: 'The network is defined as the communication path over which a host + or network event happens. + + The network.* fields should be populated with details about the network activity + associated with an event.' + type: group + fields: + - name: application + level: extended + type: keyword + ignore_above: 1024 + description: 'A name given to an application level protocol. This can be arbitrarily + assigned for things like microservices, but also apply to things like skype, + icq, facebook, twitter. This would be used in situations where the vendor + or service can be decoded such as from the source/dest IP owners, ports, or + wire format. + + The field value must be normalized to lowercase for querying. See the documentation + section "Implementing ECS".' + example: aim + - name: bytes + level: core + type: long + description: 'Total bytes transferred in both directions. + + If `source.bytes` and `destination.bytes` are known, `network.bytes` is their + sum.' + example: 368 + - name: community_id + level: extended + type: keyword + ignore_above: 1024 + description: 'A hash of source and destination IPs and ports, as well as the + protocol used in a communication. This is a tool-agnostic standard to identify + flows. + + Learn more at https://github.com/corelight/community-id-spec.' + example: 1:hO+sN4H+MG5MY/8hIrXPqc4ZQz0= + - name: direction + level: core + type: keyword + ignore_above: 1024 + description: "Direction of the network traffic.\nRecommended values are:\n \ + \ * inbound\n * outbound\n * internal\n * external\n * unknown\n\nWhen\ + \ mapping events from a host-based monitoring context, populate this field\ + \ from the host's point of view.\nWhen mapping events from a network or perimeter-based\ + \ monitoring context, populate this field from the point of view of your network\ + \ perimeter." + example: inbound + - name: forwarded_ip + level: core + type: ip + description: Host IP address when the source IP address is the proxy. + example: 192.1.1.2 + - name: iana_number + level: extended + type: keyword + ignore_above: 1024 + description: IANA Protocol Number (https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml). + Standardized list of protocols. This aligns well with NetFlow and sFlow related + logs which use the IANA Protocol Number. + example: 6 + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Name given by operators to sections of their network. + example: Guest Wifi + - name: packets + level: core + type: long + description: 'Total packets transferred in both directions. + + If `source.packets` and `destination.packets` are known, `network.packets` + is their sum.' + example: 24 + - name: protocol + level: core + type: keyword + ignore_above: 1024 + description: 'L7 Network protocol name. ex. http, lumberjack, transport protocol. + + The field value must be normalized to lowercase for querying. See the documentation + section "Implementing ECS".' + example: http + - name: transport + level: core + type: keyword + ignore_above: 1024 + description: 'Same as network.iana_number, but instead using the Keyword name + of the transport layer (udp, tcp, ipv6-icmp, etc.) + + The field value must be normalized to lowercase for querying. See the documentation + section "Implementing ECS".' + example: tcp + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'In the OSI Model this would be the Network Layer. ipv4, ipv6, + ipsec, pim, etc + + The field value must be normalized to lowercase for querying. See the documentation + section "Implementing ECS".' + example: ipv4 + - name: observer + title: Observer + group: 2 + description: 'An observer is defined as a special network, security, or application + device used to detect, observe, or create network, security, or application-related + events and metrics. + + This could be a custom hardware appliance or a server that has been configured + to run special network, security, or application software. Examples include + firewalls, intrusion detection/prevention systems, network monitoring sensors, + web application firewalls, data loss prevention systems, and APM servers. The + observer.* fields shall be populated with details of the system, if any, that + detects, observes and/or creates a network, security, or application event or + metric. Message queues and ETL components used in processing events or metrics + are not considered observers in ECS.' + type: group + fields: + - name: geo.city_name + level: core + type: keyword + ignore_above: 1024 + description: City name. + example: Montreal + - name: geo.continent_name + level: core + type: keyword + ignore_above: 1024 + description: Name of the continent. + example: North America + - name: geo.country_iso_code + level: core + type: keyword + ignore_above: 1024 + description: Country ISO code. + example: CA + - name: geo.country_name + level: core + type: keyword + ignore_above: 1024 + description: Country name. + example: Canada + - name: geo.location + level: core + type: geo_point + description: Longitude and latitude. + example: '{ "lon": -73.614830, "lat": 45.505918 }' + - name: geo.name + level: extended + type: keyword + ignore_above: 1024 + description: 'User-defined description of a location, at the level of granularity + they care about. + + Could be the name of their data centers, the floor number, if this describes + a local physical entity, city names. + + Not typically used in automated geolocation.' + example: boston-dc + - name: geo.region_iso_code + level: core + type: keyword + ignore_above: 1024 + description: Region ISO code. + example: CA-QC + - name: geo.region_name + level: core + type: keyword + ignore_above: 1024 + description: Region name. + example: Quebec + - name: hostname + level: core + type: keyword + ignore_above: 1024 + description: Hostname of the observer. + - name: ip + level: core + type: ip + description: IP address of the observer. + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: MAC address of the observer + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.full + level: extended + type: keyword + ignore_above: 1024 + description: Operating system name, including the version or code name. + example: Mac OS Mojave + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: serial_number + level: extended + type: keyword + ignore_above: 1024 + description: Observer serial number. + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'The type of the observer the data is coming from. + + There is no predefined list of observer types. Some examples are `forwarder`, + `firewall`, `ids`, `ips`, `proxy`, `poller`, `sensor`, `APM server`.' + example: firewall + - name: vendor + level: core + type: keyword + ignore_above: 1024 + description: observer vendor information. + - name: version + level: core + type: keyword + ignore_above: 1024 + description: Observer version. + - name: organization + title: Organization + group: 2 + description: 'The organization fields enrich data with information about the company + or entity the data is associated with. + + These fields help you arrange or filter data stored in an index by one or multiple + organizations.' + type: group + fields: + - name: id + level: extended + type: keyword + ignore_above: 1024 + description: Unique identifier for the organization. + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Organization name. + - name: os + title: Operating System + group: 2 + description: The OS fields contain information about the operating system. + type: group + fields: + - name: family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: full + level: extended + type: keyword + ignore_above: 1024 + description: Operating system name, including the version or code name. + example: Mac OS Mojave + - name: kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Operating system name, without the version. + example: Mac OS X + - name: platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: process + title: Process + group: 2 + description: 'These fields contain information about a process. + + These fields can help you correlate metrics information with a process id/name + from a log message. The `process.pid` often stays in the metric itself and + is copied to the global field for correlation.' + type: group + fields: + - name: args + level: extended + type: keyword + ignore_above: 1024 + description: 'Array of process arguments. + + May be filtered to protect sensitive information.' + example: + - ssh + - -l + - user + - 10.0.0.16 + - name: executable + level: extended + type: keyword + ignore_above: 1024 + description: Absolute path to the process executable. + example: /usr/bin/ssh + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: 'Process name. + + Sometimes called program name or similar.' + example: ssh + - name: pid + level: core + type: long + description: Process id. + - name: ppid + level: extended + type: long + description: Process parent id. + - name: start + level: extended + type: date + description: The time the process started. + example: '2016-05-23T08:05:34.853Z' + - name: thread.id + level: extended + type: long + description: Thread ID. + example: 4242 + - name: title + level: extended + type: keyword + ignore_above: 1024 + description: 'Process title. + + The proctitle, some times the same as process name. Can also be different: + for example a browser setting its title to the web page currently opened.' + - name: working_directory + level: extended + type: keyword + ignore_above: 1024 + description: The working directory of the process. + example: /home/alice + - name: related + title: Related + group: 2 + description: 'This field set is meant to facilitate pivoting around a piece of + data. + + Some pieces of information can be seen in many places in an ECS event. To facilitate + searching for them, store an array of all seen values to their corresponding + field in `related.`. + + A concrete example is IP addresses, which can be under host, observer, source, + destination, client, server, and network.forwarded_ip. If you append all IPs + to `related.ip`, you can then search for a given IP trivially, no matter where + it appeared, by querying `related.ip:a.b.c.d`.' + type: group + fields: + - name: ip + level: extended + type: ip + description: All of the IPs seen on your event. + - name: server + title: Server + group: 2 + description: 'A Server is defined as the responder in a network connection for + events regarding sessions, connections, or bidirectional flow records. + + For TCP events, the server is the receiver of the initial SYN packet(s) of the + TCP connection. For other protocols, the server is generally the responder in + the network transaction. Some systems actually use the term "responder" to refer + the server in TCP connections. The server fields describe details about the + system acting as the server in the network event. Server fields are usually + populated in conjunction with client fields. Server fields are generally not + populated for packet-level events. + + Client / server representations can add semantic context to an exchange, which + is helpful to visualize the data in certain situations. If your context falls + in that category, you should still ensure that source and destination are filled + appropriately.' + type: group + fields: + - name: address + level: extended + type: keyword + ignore_above: 1024 + description: 'Some event server addresses are defined ambiguously. The event + will sometimes list an IP, a domain or a unix socket. You should always store + the raw address in the `.address` field. + + Then it should be duplicated to `.ip` or `.domain`, depending on which one + it is.' + - name: bytes + level: core + type: long + description: Bytes sent from the server to the client. + example: 184 + - name: domain + level: core + type: keyword + ignore_above: 1024 + description: Server domain. + - name: geo.city_name + level: core + type: keyword + ignore_above: 1024 + description: City name. + example: Montreal + - name: geo.continent_name + level: core + type: keyword + ignore_above: 1024 + description: Name of the continent. + example: North America + - name: geo.country_iso_code + level: core + type: keyword + ignore_above: 1024 + description: Country ISO code. + example: CA + - name: geo.country_name + level: core + type: keyword + ignore_above: 1024 + description: Country name. + example: Canada + - name: geo.location + level: core + type: geo_point + description: Longitude and latitude. + example: '{ "lon": -73.614830, "lat": 45.505918 }' + - name: geo.name + level: extended + type: keyword + ignore_above: 1024 + description: 'User-defined description of a location, at the level of granularity + they care about. + + Could be the name of their data centers, the floor number, if this describes + a local physical entity, city names. + + Not typically used in automated geolocation.' + example: boston-dc + - name: geo.region_iso_code + level: core + type: keyword + ignore_above: 1024 + description: Region ISO code. + example: CA-QC + - name: geo.region_name + level: core + type: keyword + ignore_above: 1024 + description: Region name. + example: Quebec + - name: ip + level: core + type: ip + description: 'IP address of the server. + + Can be one or multiple IPv4 or IPv6 addresses.' + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: MAC address of the server. + - name: packets + level: core + type: long + description: Packets sent from the server to the client. + example: 12 + - name: port + level: core + type: long + description: Port of the server. + - name: user.email + level: extended + type: keyword + ignore_above: 1024 + description: User email address. + - name: user.full_name + level: extended + type: keyword + ignore_above: 1024 + description: User's full name, if available. + example: Albert Einstein + - name: user.group.id + level: extended + type: keyword + ignore_above: 1024 + description: Unique identifier for the group on the system/platform. + - name: user.group.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the group. + - name: user.hash + level: extended + type: keyword + ignore_above: 1024 + description: 'Unique user hash to correlate information for a user in anonymized + form. + + Useful if `user.id` or `user.name` contain confidential information and cannot + be used.' + - name: user.id + level: core + type: keyword + ignore_above: 1024 + description: One or multiple unique identifiers of the user. + - name: user.name + level: core + type: keyword + ignore_above: 1024 + description: Short name or login of the user. + example: albert + - name: service + title: Service + group: 2 + description: 'The service fields describe the service for or from which the data + was collected. + + These fields help you find and correlate logs for a specific service and version.' + type: group + fields: + - name: ephemeral_id + level: extended + type: keyword + ignore_above: 1024 + description: 'Ephemeral identifier of this service (if one exists). + + This id normally changes across restarts, but `service.id` does not.' + example: 8a4f500f + - name: id + level: core + type: keyword + ignore_above: 1024 + description: 'Unique identifier of the running service. + + This id should uniquely identify this service. This makes it possible to correlate + logs and metrics for one specific service. + + Example: If you are experiencing issues with one redis instance, you can filter + on that id to see metrics and logs for that single instance.' + example: d37e5ebfe0ae6c4972dbe9f0174a1637bb8247f6 + - name: name + level: core + type: keyword + ignore_above: 1024 + description: 'Name of the service data is collected from. + + The name of the service is normally user given. This allows if two instances + of the same service are running on the same machine they can be differentiated + by the `service.name`. + + Also it allows for distributed services that run on multiple hosts to correlate + the related instances based on the name. + + In the case of Elasticsearch the service.name could contain the cluster name. + For Beats the service.name is by default a copy of the `service.type` field + if no name is specified.' + example: elasticsearch-metrics + - name: state + level: core + type: keyword + ignore_above: 1024 + description: Current state of the service. + - name: type + level: core + type: keyword + ignore_above: 1024 + description: 'The type of the service data is collected from. + + The type can be used to group and correlate logs and metrics from one service + type. + + Example: If logs or metrics are collected from Elasticsearch, `service.type` + would be `elasticsearch`.' + example: elasticsearch + - name: version + level: core + type: keyword + ignore_above: 1024 + description: 'Version of the service the data was collected from. + + This allows to look at a data set only for a specific version of a service.' + example: 3.2.4 + - name: source + title: Source + group: 2 + description: 'Source fields describe details about the source of a packet/event. + + Source fields are usually populated in conjunction with destination fields.' + type: group + fields: + - name: address + level: extended + type: keyword + ignore_above: 1024 + description: 'Some event source addresses are defined ambiguously. The event + will sometimes list an IP, a domain or a unix socket. You should always store + the raw address in the `.address` field. + + Then it should be duplicated to `.ip` or `.domain`, depending on which one + it is.' + - name: bytes + level: core + type: long + description: Bytes sent from the source to the destination. + example: 184 + - name: domain + level: core + type: keyword + ignore_above: 1024 + description: Source domain. + - name: geo.city_name + level: core + type: keyword + ignore_above: 1024 + description: City name. + example: Montreal + - name: geo.continent_name + level: core + type: keyword + ignore_above: 1024 + description: Name of the continent. + example: North America + - name: geo.country_iso_code + level: core + type: keyword + ignore_above: 1024 + description: Country ISO code. + example: CA + - name: geo.country_name + level: core + type: keyword + ignore_above: 1024 + description: Country name. + example: Canada + - name: geo.location + level: core + type: geo_point + description: Longitude and latitude. + example: '{ "lon": -73.614830, "lat": 45.505918 }' + - name: geo.name + level: extended + type: keyword + ignore_above: 1024 + description: 'User-defined description of a location, at the level of granularity + they care about. + + Could be the name of their data centers, the floor number, if this describes + a local physical entity, city names. + + Not typically used in automated geolocation.' + example: boston-dc + - name: geo.region_iso_code + level: core + type: keyword + ignore_above: 1024 + description: Region ISO code. + example: CA-QC + - name: geo.region_name + level: core + type: keyword + ignore_above: 1024 + description: Region name. + example: Quebec + - name: ip + level: core + type: ip + description: 'IP address of the source. + + Can be one or multiple IPv4 or IPv6 addresses.' + - name: mac + level: core + type: keyword + ignore_above: 1024 + description: MAC address of the source. + - name: packets + level: core + type: long + description: Packets sent from the source to the destination. + example: 12 + - name: port + level: core + type: long + description: Port of the source. + - name: user.email + level: extended + type: keyword + ignore_above: 1024 + description: User email address. + - name: user.full_name + level: extended + type: keyword + ignore_above: 1024 + description: User's full name, if available. + example: Albert Einstein + - name: user.group.id + level: extended + type: keyword + ignore_above: 1024 + description: Unique identifier for the group on the system/platform. + - name: user.group.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the group. + - name: user.hash + level: extended + type: keyword + ignore_above: 1024 + description: 'Unique user hash to correlate information for a user in anonymized + form. + + Useful if `user.id` or `user.name` contain confidential information and cannot + be used.' + - name: user.id + level: core + type: keyword + ignore_above: 1024 + description: One or multiple unique identifiers of the user. + - name: user.name + level: core + type: keyword + ignore_above: 1024 + description: Short name or login of the user. + example: albert + - name: url + title: URL + group: 2 + description: URL fields provide support for complete or partial URLs, and supports + the breaking down into scheme, domain, path, and so on. + type: group + fields: + - name: domain + level: extended + type: keyword + ignore_above: 1024 + description: 'Domain of the url, such as "www.elastic.co". + + In some cases a URL may refer to an IP and/or port directly, without a domain + name. In this case, the IP address would go to the `domain` field.' + example: www.elastic.co + - name: fragment + level: extended + type: keyword + ignore_above: 1024 + description: 'Portion of the url after the `#`, such as "top". + + The `#` is not part of the fragment.' + - name: full + level: extended + type: keyword + ignore_above: 1024 + description: If full URLs are important to your use case, they should be stored + in `url.full`, whether this field is reconstructed or present in the event + source. + example: https://www.elastic.co:443/search?q=elasticsearch#top + - name: original + level: extended + type: keyword + ignore_above: 1024 + description: 'Unmodified original url as seen in the event source. + + Note that in network monitoring, the observed URL may be a full URL, whereas + in access logs, the URL is often just represented as a path. + + This field is meant to represent the URL as it was observed, complete or not.' + example: https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch + - name: password + level: extended + type: keyword + ignore_above: 1024 + description: Password of the request. + - name: path + level: extended + type: keyword + ignore_above: 1024 + description: Path of the request, such as "/search". + - name: port + level: extended + type: long + description: Port of the request, such as 443. + example: 443 + - name: query + level: extended + type: keyword + ignore_above: 1024 + description: 'The query field describes the query string of the request, such + as "q=elasticsearch". + + The `?` is excluded from the query string. If a URL contains no `?`, there + is no query field. If there is a `?` but no query, the query field exists + with an empty string. The `exists` query can be used to differentiate between + the two cases.' + - name: scheme + level: extended + type: keyword + ignore_above: 1024 + description: 'Scheme of the request, such as "https". + + Note: The `:` is not part of the scheme.' + example: https + - name: username + level: extended + type: keyword + ignore_above: 1024 + description: Username of the request. + - name: user + title: User + group: 2 + description: 'The user fields describe information about the user that is relevant + to the event. + + Fields can have one entry or multiple entries. If a user has more than one id, + provide an array that includes all of them.' + type: group + fields: + - name: email + level: extended + type: keyword + ignore_above: 1024 + description: User email address. + - name: full_name + level: extended + type: keyword + ignore_above: 1024 + description: User's full name, if available. + example: Albert Einstein + - name: group.id + level: extended + type: keyword + ignore_above: 1024 + description: Unique identifier for the group on the system/platform. + - name: group.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the group. + - name: hash + level: extended + type: keyword + ignore_above: 1024 + description: 'Unique user hash to correlate information for a user in anonymized + form. + + Useful if `user.id` or `user.name` contain confidential information and cannot + be used.' + - name: id + level: core + type: keyword + ignore_above: 1024 + description: One or multiple unique identifiers of the user. + - name: name + level: core + type: keyword + ignore_above: 1024 + description: Short name or login of the user. + example: albert + - name: user_agent + title: User agent + group: 2 + description: 'The user_agent fields normally come from a browser request. + + They often show up in web service logs coming from the parsed user agent string.' + type: group + fields: + - name: device.name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the device. + example: iPhone + - name: name + level: extended + type: keyword + ignore_above: 1024 + description: Name of the user agent. + example: Safari + - name: original + level: extended + type: keyword + ignore_above: 1024 + description: Unparsed version of the user_agent. + example: Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 + (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1 + - name: os.family + level: extended + type: keyword + ignore_above: 1024 + description: OS family (such as redhat, debian, freebsd, windows). + example: debian + - name: os.full + level: extended + type: keyword + ignore_above: 1024 + description: Operating system name, including the version or code name. + example: Mac OS Mojave + - name: os.kernel + level: extended + type: keyword + ignore_above: 1024 + description: Operating system kernel version as a raw string. + example: 4.4.0-112-generic + - name: os.name + level: extended + type: keyword + ignore_above: 1024 + description: Operating system name, without the version. + example: Mac OS X + - name: os.platform + level: extended + type: keyword + ignore_above: 1024 + description: Operating system platform (such centos, ubuntu, windows). + example: darwin + - name: os.version + level: extended + type: keyword + ignore_above: 1024 + description: Operating system version as a raw string. + example: 10.14.1 + - name: version + level: extended + type: keyword + ignore_above: 1024 + description: Version of the user agent. + example: 12.0 diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index 42e2b7da096..9958378cb32 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -1403,6 +1403,15 @@ Contains common beat fields available in all event types. +*`agent.hostname`*:: ++ +-- +type: keyword + +Hostname of the agent. + +-- + *`beat.timezone`*:: + -- @@ -4517,8 +4526,7 @@ Stats collected from Dropwizard. [[exported-fields-ecs]] == ECS fields -ECS fields. - +ECS Fields. *`@timestamp`*:: @@ -4531,22 +4539,10 @@ example: 2016-05-23T08:05:34.853Z required: True Date/time when the event originated. -For log events this is the date/time when the event was generated, and not when it was read. +This is the date/time extracted from the event, typically representing when the event was generated by the source. +If the event source has no original timestamp, this value is typically populated by the first time the event was received by the pipeline. Required field for all events. - --- - -*`tags`*:: -+ --- -type: keyword - -example: ["production", "env2"] - -List of keywords used to tag each event. - - -- *`labels`*:: @@ -4556,11 +4552,10 @@ type: object example: {'application': 'foo-bar', 'env': 'production'} -Key/value pairs. +Custom key/value pairs. Can be used to add meta information to events. Should not contain nested objects. All values are stored as keyword. Example: `docker` and `k8s` labels. - -- *`message`*:: @@ -4570,28 +4565,51 @@ type: text example: Hello World -For log events the message field contains the log message. -In other use cases the message field can be used to concatenate different values which are then freely searchable. If multiple messages exist, they can be combined into one message. +For log events the message field contains the log message, optimized for viewing in a log viewer. +For structured logs without an original message field, other fields can be concatenated to form a human-readable summary of the event. +If multiple messages exist, they can be combined into one message. + +-- + +*`tags`*:: ++ +-- +type: keyword + +example: ["production", "env2"] +List of keywords used to tag each event. -- [float] == agent fields -The agent fields contain the data about the software entity, if any, that collects, detects, or observes events on a host, or takes measurements on a host. Examples include Beats. Agents may also run on observers. ECS agent.* fields shall be populated with details of the agent running on the host or observer where the event happened or the measurement was taken. +The agent fields contain the data about the software entity, if any, that collects, detects, or observes events on a host, or takes measurements on a host. +Examples include Beats. Agents may also run on observers. ECS agent.* fields shall be populated with details of the agent running on the host or observer where the event happened or the measurement was taken. - -*`agent.version`*:: +*`agent.ephemeral_id`*:: + -- type: keyword -example: 6.0.0-rc2 +example: 8a4f500f -Version of the agent. +Ephemeral identifier of this agent (if one exists). +This id normally changes across restarts, but `agent.id` does not. + +-- + +*`agent.id`*:: ++ +-- +type: keyword + +example: 8a4f500d +Unique identifier of this agent (if one exists). +Example: For Beats this would be beat.id. -- @@ -4602,11 +4620,10 @@ type: keyword example: foo -Name of the agent. +Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. If no name is given, the name is often left empty. - -- *`agent.type`*:: @@ -4619,43 +4636,27 @@ example: filebeat Type of the agent. The agent type stays always the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - --- - -*`agent.id`*:: -+ --- -type: keyword - -example: 8a4f500d - -Unique identifier of this agent (if one exists). -Example: For Beats this would be beat.id. - - -- -*`agent.ephemeral_id`*:: +*`agent.version`*:: + -- type: keyword -example: 8a4f500f - -Ephemeral identifier of this agent (if one exists). -This id normally changes across restarts, but `agent.id` does not. +example: 6.0.0-rc2 +Version of the agent. -- [float] == client fields -A client is defined as the initiator of a network connection for events regarding sessions, connections, or bidirectional flow records. For TCP events, the client is the initiator of the TCP connection that sends the SYN packet(s). For other protocols, the client is generally the initiator or requestor in the network transaction. Some systems use the term "originator" to refer the client in TCP connections. The client fields describe details about the system acting as the client in the network event. Client fields are usually populated in conjunction with server fields. Client fields are generally not populated for packet-level events. +A client is defined as the initiator of a network connection for events regarding sessions, connections, or bidirectional flow records. +For TCP events, the client is the initiator of the TCP connection that sends the SYN packet(s). For other protocols, the client is generally the initiator or requestor in the network transaction. Some systems use the term "originator" to refer the client in TCP connections. The client fields describe details about the system acting as the client in the network event. Client fields are usually populated in conjunction with server fields. Client fields are generally not populated for packet-level events. Client / server representations can add semantic context to an exchange, which is helpful to visualize the data in certain situations. If your context falls in that category, you should still ensure that source and destination are filled appropriately. - *`client.address`*:: + -- @@ -4664,83 +4665,72 @@ type: keyword Some event client addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. - -- -*`client.ip`*:: +*`client.bytes`*:: + -- -type: ip +type: long -IP address of the client. -Can be one or multiple IPv4 or IPv6 addresses. +example: 184 +Bytes sent from the client to the server. -- -*`client.port`*:: +*`client.domain`*:: + -- -type: long - -Port of the client. +type: keyword +Client domain. -- -*`client.mac`*:: +*`client.geo.city_name`*:: + -- type: keyword -MAC address of the client. +example: Montreal +City name. -- -*`client.domain`*:: +*`client.geo.continent_name`*:: + -- type: keyword -Client domain. +example: North America +Name of the continent. -- -*`client.bytes`*:: +*`client.geo.country_iso_code`*:: + -- -type: long - -example: 184 - -format: bytes +type: keyword -Bytes sent from the client to the server. +example: CA +Country ISO code. -- -*`client.packets`*:: +*`client.geo.country_name`*:: + -- -type: long - -example: 12 +type: keyword -Packets sent from the client to the server. +example: Canada +Country name. -- -[float] -== geo fields - -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. - - - *`client.geo.location`*:: + -- @@ -4750,30 +4740,29 @@ example: { "lon": -73.614830, "lat": 45.505918 } Longitude and latitude. - -- -*`client.geo.continent_name`*:: +*`client.geo.name`*:: + -- type: keyword -example: North America - -Name of the continent. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`client.geo.country_name`*:: +*`client.geo.region_iso_code`*:: + -- type: keyword -example: Canada - -Country name. +example: CA-QC +Region ISO code. -- @@ -4786,274 +4775,274 @@ example: Quebec Region name. - -- -*`client.geo.city_name`*:: +*`client.ip`*:: + -- -type: keyword - -example: Montreal - -City name. +type: ip +IP address of the client. +Can be one or multiple IPv4 or IPv6 addresses. -- -*`client.geo.country_iso_code`*:: +*`client.mac`*:: + -- type: keyword -example: CA - -Country ISO code. - +MAC address of the client. -- -*`client.geo.region_iso_code`*:: +*`client.packets`*:: + -- -type: keyword - -example: CA-QC +type: long -Region ISO code. +example: 12 +Packets sent from the client to the server. -- -*`client.geo.name`*:: +*`client.port`*:: + -- -type: keyword - -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +type: long +Port of the client. -- -[float] -== cloud fields - -Fields related to the cloud or infrastructure the events are coming from. - - - -*`cloud.provider`*:: +*`client.user.email`*:: + -- type: keyword -example: ec2 - -Name of the cloud provider. Example values are ec2, gce, or digitalocean. - +User email address. -- -*`cloud.availability_zone`*:: +*`client.user.full_name`*:: + -- type: keyword -example: us-east-1c - -Availability zone in which this host is running. +example: Albert Einstein +User's full name, if available. -- -*`cloud.region`*:: +*`client.user.group.id`*:: + -- type: keyword -example: us-east-1 - -Region in which this host is running. - +Unique identifier for the group on the system/platform. -- -*`cloud.instance.id`*:: +*`client.user.group.name`*:: + -- type: keyword -example: i-1234567890abcdef0 - -Instance ID of the host machine. - +Name of the group. -- -*`cloud.instance.name`*:: +*`client.user.hash`*:: + -- type: keyword -Instance name of the host machine. - +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -- -*`cloud.machine.type`*:: +*`client.user.id`*:: + -- type: keyword -example: t2.medium - -Machine type of the host machine. - +One or multiple unique identifiers of the user. -- -*`cloud.account.id`*:: +*`client.user.name`*:: + -- type: keyword -example: 666777888999 - -The cloud account or organization id used to identify different entities in a multi-tenant environment. -Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. +example: albert +Short name or login of the user. -- [float] -== container fields - -Container fields are used for meta information about the specific container that is the source of information. These fields help correlate data based containers from any runtime. +== cloud fields +Fields related to the cloud or infrastructure the events are coming from. -*`container.runtime`*:: +*`cloud.account.id`*:: + -- type: keyword -example: docker - -Runtime managing this container. +example: 666777888999 +The cloud account or organization id used to identify different entities in a multi-tenant environment. +Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. -- -*`container.id`*:: +*`cloud.availability_zone`*:: + -- type: keyword -Unique container id. +example: us-east-1c +Availability zone in which this host is running. -- -*`container.image.name`*:: +*`cloud.instance.id`*:: + -- type: keyword -Name of the image the container was built on. +example: i-1234567890abcdef0 +Instance ID of the host machine. -- -*`container.image.tag`*:: +*`cloud.instance.name`*:: + -- type: keyword -Container image tag. +Instance name of the host machine. +-- +*`cloud.machine.type`*:: ++ -- +type: keyword -*`container.name`*:: +example: t2.medium + +Machine type of the host machine. + +-- + +*`cloud.provider`*:: + -- type: keyword -Container name. +example: aws +Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. -- -*`container.labels`*:: +*`cloud.region`*:: + -- -type: object +type: keyword -Image labels. +example: us-east-1 +Region in which this host is running. -- [float] -== destination fields - -Destination fields describe details about the destination of a packet/event. Destination fields are usually populated in conjunction with source fields. +== container fields +Container fields are used for meta information about the specific container that is the source of information. +These fields help correlate data based containers from any runtime. -*`destination.address`*:: +*`container.id`*:: + -- type: keyword -Some event destination addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. -Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. - +Unique container id. -- -*`destination.ip`*:: +*`container.image.name`*:: + -- -type: ip +type: keyword -IP address of the destination. -Can be one or multiple IPv4 or IPv6 addresses. +Name of the image the container was built on. +-- +*`container.image.tag`*:: ++ -- +type: keyword -*`destination.port`*:: +Container image tag. + +-- + +*`container.labels`*:: + -- -type: long +type: object -Port of the destination. +Image labels. + +-- + +*`container.name`*:: ++ +-- +type: keyword +Container name. -- -*`destination.mac`*:: +*`container.runtime`*:: + -- type: keyword -MAC address of the destination. +example: docker +Runtime managing this container. -- -*`destination.domain`*:: +[float] +== destination fields + +Destination fields describe details about the destination of a packet/event. +Destination fields are usually populated in conjunction with source fields. + + +*`destination.address`*:: + -- type: keyword -Destination domain. - +Some event destination addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. +Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. -- @@ -5064,31 +5053,62 @@ type: long example: 184 -format: bytes - Bytes sent from the destination to the source. +-- + +*`destination.domain`*:: ++ +-- +type: keyword + +Destination domain. -- -*`destination.packets`*:: +*`destination.geo.city_name`*:: + -- -type: long +type: keyword -example: 12 +example: Montreal -Packets sent from the destination to the source. +City name. +-- +*`destination.geo.continent_name`*:: ++ -- +type: keyword -[float] -== geo fields +example: North America + +Name of the continent. + +-- + +*`destination.geo.country_iso_code`*:: ++ +-- +type: keyword + +example: CA + +Country ISO code. + +-- -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. +*`destination.geo.country_name`*:: ++ +-- +type: keyword +example: Canada +Country name. + +-- *`destination.geo.location`*:: + @@ -5099,30 +5119,29 @@ example: { "lon": -73.614830, "lat": 45.505918 } Longitude and latitude. - -- -*`destination.geo.continent_name`*:: +*`destination.geo.name`*:: + -- type: keyword -example: North America - -Name of the continent. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`destination.geo.country_name`*:: +*`destination.geo.region_iso_code`*:: + -- type: keyword -example: Canada - -Country name. +example: CA-QC +Region ISO code. -- @@ -5135,56 +5154,112 @@ example: Quebec Region name. +-- +*`destination.ip`*:: ++ -- +type: ip -*`destination.geo.city_name`*:: +IP address of the destination. +Can be one or multiple IPv4 or IPv6 addresses. + +-- + +*`destination.mac`*:: + -- type: keyword -example: Montreal +MAC address of the destination. -City name. +-- + +*`destination.packets`*:: ++ +-- +type: long + +example: 12 +Packets sent from the destination to the source. -- -*`destination.geo.country_iso_code`*:: +*`destination.port`*:: ++ +-- +type: long + +Port of the destination. + +-- + +*`destination.user.email`*:: + -- type: keyword -example: CA +User email address. -Country ISO code. +-- +*`destination.user.full_name`*:: ++ +-- +type: keyword + +example: Albert Einstein + +User's full name, if available. -- -*`destination.geo.region_iso_code`*:: +*`destination.user.group.id`*:: + -- type: keyword -example: CA-QC +Unique identifier for the group on the system/platform. -Region ISO code. +-- +*`destination.user.group.name`*:: ++ +-- +type: keyword + +Name of the group. -- -*`destination.geo.name`*:: +*`destination.user.hash`*:: + -- type: keyword -example: boston-dc +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +-- +*`destination.user.id`*:: ++ +-- +type: keyword + +One or multiple unique identifiers of the user. + +-- + +*`destination.user.name`*:: ++ +-- +type: keyword + +example: albert + +Short name or login of the user. -- @@ -5194,29 +5269,35 @@ Not typically used in automated geolocation. Meta-information specific to ECS. - *`ecs.version`*:: + -- type: keyword -example: 1.0.0-beta2 +example: 1.0.0 required: True ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. -The current version is 1.0.0-beta2 . - -- [float] == error fields -These fields can represent errors of any kind. Use them for errors that happen while fetching events or in cases where the event itself contains an error. +These fields can represent errors of any kind. +Use them for errors that happen while fetching events or in cases where the event itself contains an error. + + +*`error.code`*:: ++ +-- +type: keyword +Error code describing the error. +-- *`error.id`*:: + @@ -5225,7 +5306,6 @@ type: keyword Unique identifier for the error. - -- *`error.message`*:: @@ -5235,98 +5315,113 @@ type: text Error message. - -- -*`error.code`*:: +[float] +== event fields + +The event fields are used for context information about the log or metric event itself. +A log is defined as an event containing details of something that happened. Log events must include the time at which the thing happened. Examples of log events include a process starting on a host, a network packet being sent from a source to a destination, or a network connection between a client and a server being initiated or closed. A metric is defined as an event containing one or more numerical or categorical measurements and the time at which the measurement was taken. Examples of metric events include memory pressure measured on a host, or vulnerabilities measured on a scanned host. + + +*`event.action`*:: + -- type: keyword -Error code describing the error. +example: user-password-change +The action captured by the event. +This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. -- -[float] -== event fields +*`event.category`*:: ++ +-- +type: keyword -The event fields are used for context information about the log or metric event itself. A log is defined as an event containing details of something that happened. Log events must include the time at which the thing happened. Examples of log events include a process starting on a host, a network packet being sent from a source to a destination, or a network connection between a client and a server being initiated or closed. A metric is defined as an event containing one or more numerical or categorical measurements and the time at which the measurement was taken. Examples of metric events include memory pressure measured on a host, or vulnerabilities measured on a scanned host. +example: user-management +Event category. +This contains high-level information about the contents of the event. It is more generic than `event.action`, in the sense that typically a category contains multiple actions. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. +-- -*`event.id`*:: +*`event.created`*:: + -- -type: keyword - -example: 8a4f500d - -Unique ID to describe the event. +type: date +event.created contains the date/time when the event was first read by an agent, or by your pipeline. +This field is distinct from @timestamp in that @timestamp typically contain the time extracted from the original event. +In most situations, these two timestamps will be slightly different. The difference can be used to calculate the delay between your source generating an event, and the time when your agent first processed it. This can be used to monitor your agent's or pipeline's ability to keep up with your event source. +In case the two timestamps are identical, @timestamp should be used. -- -*`event.kind`*:: +*`event.dataset`*:: + -- type: keyword -example: state - -The kind of the event. -This gives information about what type of information the event contains, without being specific to the contents of the event. Examples are `event`, `state`, `alarm`. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. +example: stats +Name of the dataset. +The concept of a `dataset` (fileset / metricset) is used in Beats as a subset of modules. It contains the information which is currently stored in metricset.name and metricset.module or fileset.name. -- -*`event.category`*:: +*`event.duration`*:: + -- -type: keyword +type: long -example: user-management +Duration of the event in nanoseconds. +If event.start and event.end are known this value should be the difference between the end and start time. -Event category. -This contains high-level information about the contents of the event. It is more generic than `event.action`, in the sense that typically a category contains multiple actions. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. +-- +*`event.end`*:: ++ +-- +type: date + +event.end contains the date when the event ended or when the activity was last observed. -- -*`event.action`*:: +*`event.hash`*:: + -- type: keyword -example: user-password-change - -The action captured by the event. -This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. +example: 123456789012345678901234567890ABCD +Hash (perhaps logstash fingerprint) of raw field to be able to demonstrate log integrity. -- -*`event.outcome`*:: +*`event.id`*:: + -- type: keyword -example: success - -The outcome of the event. -If the event describes an action, this fields contains the outcome of that action. Examples outcomes are `success` and `failure`. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. +example: 8a4f500d +Unique ID to describe the event. -- -*`event.type`*:: +*`event.kind`*:: + -- type: keyword -Reserved for future usage. -Please avoid using this field for user data. +example: state +The kind of the event. +This gives information about what type of information the event contains, without being specific to the contents of the event. Examples are `event`, `state`, `alarm`. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. -- @@ -5340,71 +5435,68 @@ example: mysql Name of the module this data is coming from. This information is coming from the modules used in Beats or Logstash. - -- -*`event.dataset`*:: +*`event.original`*:: + -- type: keyword -example: stats - -Name of the dataset. -The concept of a `dataset` (fileset / metricset) is used in Beats as a subset of modules. It contains the information which is currently stored in metricset.name and metricset.module or fileset.name. +example: Sep 19 08:26:10 host CEF:0|Security| threatmanager|1.0|100| worm successfully stopped|10|src=10.0.0.1 dst=2.1.2.2spt=1232 +Raw text message of entire event. Used to demonstrate log integrity. +This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. -- -*`event.severity`*:: +*`event.outcome`*:: + -- -type: long - -example: 7 +type: keyword -Severity describes the severity of the event. What the different severity values mean can very different between use cases. It's up to the implementer to make sure severities are consistent across events. +example: success +The outcome of the event. +If the event describes an action, this fields contains the outcome of that action. Examples outcomes are `success` and `failure`. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. -- -*`event.original`*:: +*`event.risk_score`*:: + -- -type: keyword +type: float -example: Sep 19 08:26:10 host CEF:0|Security| threatmanager|1.0|100| worm successfully stopped|10|src=10.0.0.1 dst=2.1.2.2spt=1232 +Risk score or priority of the event (e.g. security solutions). Use your system's original value here. -Raw text message of entire event. Used to demonstrate log integrity. -This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. +-- +*`event.risk_score_norm`*:: ++ +-- +type: float -Field is not indexed. +Normalized risk score or priority of the event, on a scale of 0 to 100. +This is mainly useful if you use more than one system that assigns risk scores, and you want to see a normalized value across all systems. -- -*`event.hash`*:: +*`event.severity`*:: + -- -type: keyword - -example: 123456789012345678901234567890ABCD +type: long -Hash (perhaps logstash fingerprint) of raw field to be able to demonstrate log integrity. +example: 7 +Severity describes the original severity of the event. What the different severity values mean can very different between use cases. It's up to the implementer to make sure severities are consistent across events. -- -*`event.duration`*:: +*`event.start`*:: + -- -type: long - -format: duration - -Duration of the event in nanoseconds. -If event.start and event.end are known this value should be the difference between the end and start time. +type: date +event.start contains the date when the event started or when the activity was first observed. -- @@ -5416,68 +5508,110 @@ type: keyword This field should be populated when the event's timestamp does not include timezone information already (e.g. default Syslog timestamps). It's optional otherwise. Acceptable timezone formats are: a canonical ID (e.g. "Europe/Amsterdam"), abbreviated (e.g. "EST") or an HH:mm differential (e.g. "-05:00"). +-- +*`event.type`*:: ++ -- +type: keyword -*`event.created`*:: +Reserved for future usage. +Please avoid using this field for user data. + +-- + +[float] +== file fields + +A file is defined as a set of information that has been created on, or has existed on a filesystem. +File objects can be associated with host events, network events, and/or file events (e.g., those produced by File Integrity Monitoring [FIM] products or services). File fields provide details about the affected file associated with the event or metric. + + +*`file.ctime`*:: + -- type: date -event.created contains the date when the event was created. -This timestamp is distinct from @timestamp in that @timestamp contains the processed timestamp. For logs these two timestamps can be different as the timestamp in the log line and when the event is read for example by Filebeat are not identical. `@timestamp` must contain the timestamp extracted from the log line, event.created when the log line is read. The same could apply to package capturing where @timestamp contains the timestamp extracted from the network package and event.created when the event was created. -In case the two timestamps are identical, @timestamp should be used. +Last time file metadata changed. +-- +*`file.device`*:: ++ -- +type: keyword -*`event.start`*:: +Device that is the source of the file. + +-- + +*`file.extension`*:: + -- -type: date +type: keyword -event.start contains the date when the event started or when the activity was first observed. +example: png +File extension. +This should allow easy filtering by file extensions. -- -*`event.end`*:: +*`file.gid`*:: + -- -type: date - -event.end contains the date when the event ended or when the activity was last observed. +type: keyword +Primary group ID (GID) of the file. -- -*`event.risk_score`*:: +*`file.group`*:: + -- -type: float +type: keyword -Risk score or priority of the event (e.g. security solutions). Use your system's original value here. +Primary group name of the file. +-- +*`file.inode`*:: ++ -- +type: keyword -*`event.risk_score_norm`*:: +Inode representing the file in the filesystem. + +-- + +*`file.mode`*:: + -- -type: float +type: keyword -Normalized risk score or priority of the event, on a scale of 0 to 100. -This is mainly useful if you use more than one system that assigns risk scores, and you want to see a normalized value across all systems. +example: 416 +Mode of the file in octal representation. -- -[float] -== file fields +*`file.mtime`*:: ++ +-- +type: date + +Last time file content was modified. + +-- -A file is defined as a set of information that has been created on, or has existed on a filesystem. File objects can be associated with host events, network events, and/or file events (e.g., those produced by File Integrity Monitoring [FIM] products or services). File fields provide details about the affected file associated with the event or metric. +*`file.owner`*:: ++ +-- +type: keyword +File owner's username. +-- *`file.path`*:: + @@ -5488,25 +5622,21 @@ Path to the file. -- -*`file.target_path`*:: +*`file.size`*:: + -- -type: keyword +type: long -Target path for symlinks. +File size in bytes (field is only added when `type` is `file`). -- -*`file.extension`*:: +*`file.target_path`*:: + -- type: keyword -example: png - -File extension. -This should allow easy filtering by file extensions. - +Target path for symlinks. -- @@ -5519,98 +5649,109 @@ File type (file, dir, or symlink). -- -*`file.device`*:: +*`file.uid`*:: + -- type: keyword -Device that is the source of the file. +The user ID (UID) or security identifier (SID) of the file owner. -- -*`file.inode`*:: -+ --- -type: keyword +[float] +== geo fields -Inode representing the file in the filesystem. +Geo fields can carry data about a specific location related to an event. +This geolocation information can be derived from techniques such as Geo IP, or be user-supplied. --- -*`file.uid`*:: +*`geo.city_name`*:: + -- type: keyword -The user ID (UID) or security identifier (SID) of the file owner. +example: Montreal +City name. -- -*`file.owner`*:: +*`geo.continent_name`*:: + -- type: keyword -File owner's username. +example: North America + +Name of the continent. -- -*`file.gid`*:: +*`geo.country_iso_code`*:: + -- type: keyword -Primary group ID (GID) of the file. +example: CA + +Country ISO code. -- -*`file.group`*:: +*`geo.country_name`*:: + -- type: keyword -Primary group name of the file. +example: Canada + +Country name. -- -*`file.mode`*:: +*`geo.location`*:: + -- -type: keyword +type: geo_point -example: 416 +example: { "lon": -73.614830, "lat": 45.505918 } -Mode of the file in octal representation. +Longitude and latitude. -- -*`file.size`*:: +*`geo.name`*:: + -- -type: long +type: keyword -format: bytes +example: boston-dc -File size in bytes (field is only added when `type` is `file`). +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`file.mtime`*:: +*`geo.region_iso_code`*:: + -- -type: date +type: keyword -Last time file content was modified. +example: CA-QC + +Region ISO code. -- -*`file.ctime`*:: +*`geo.region_name`*:: + -- -type: date +type: keyword -Last time file metadata changed. +example: Quebec + +Region name. -- @@ -5620,7 +5761,6 @@ Last time file metadata changed. The group fields are meant to represent groups that are relevant to the event. - *`group.id`*:: + -- @@ -5628,7 +5768,6 @@ type: keyword Unique identifier for the group on the system/platform. - -- *`group.name`*:: @@ -5638,133 +5777,162 @@ type: keyword Name of the group. - -- [float] == host fields -A host is defined as a general computing instance. ECS host.* fields should be populated with details about the host on which the event happened, or on which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes. - +A host is defined as a general computing instance. +ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes. -*`host.hostname`*:: +*`host.architecture`*:: + -- type: keyword -Hostname of the host. -It normally contains what the `hostname` command returns on the host machine. +example: x86_64 +Operating system architecture. -- -*`host.name`*:: +*`host.geo.city_name`*:: + -- type: keyword -Name of the host. -It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. +example: Montreal +City name. -- -*`host.id`*:: +*`host.geo.continent_name`*:: + -- type: keyword -Unique host id. -As hostname is not always unique, use values that are meaningful in your environment. -Example: The current usage of `beat.name`. +example: North America +Name of the continent. -- -*`host.ip`*:: +*`host.geo.country_iso_code`*:: + -- -type: ip +type: keyword -Host ip address. +example: CA +Country ISO code. -- -*`host.mac`*:: +*`host.geo.country_name`*:: + -- type: keyword -Host mac address. +example: Canada +Country name. -- -*`host.type`*:: +*`host.geo.location`*:: + -- -type: keyword +type: geo_point -Type of host. -For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. +example: { "lon": -73.614830, "lat": 45.505918 } +Longitude and latitude. -- -*`host.architecture`*:: +*`host.geo.name`*:: + -- type: keyword -example: x86_64 - -Operating system architecture. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -[float] -== os fields +*`host.geo.region_iso_code`*:: ++ +-- +type: keyword -The OS fields contain information about the operating system. +example: CA-QC +Region ISO code. +-- -*`host.os.platform`*:: +*`host.geo.region_name`*:: + -- type: keyword -example: darwin +example: Quebec -Operating system platform (such centos, ubuntu, windows). +Region name. + +-- +*`host.hostname`*:: ++ +-- +type: keyword + +Hostname of the host. +It normally contains what the `hostname` command returns on the host machine. -- -*`host.os.name`*:: +*`host.id`*:: + -- type: keyword -example: Mac OS X +Unique host id. +As hostname is not always unique, use values that are meaningful in your environment. +Example: The current usage of `beat.name`. -Operating system name, without the version. +-- + +*`host.ip`*:: ++ +-- +type: ip +Host ip address. -- -*`host.os.full`*:: +*`host.mac`*:: + -- type: keyword -example: Mac OS Mojave +Host mac address. -Operating system name, including the version or code name. +-- + +*`host.name`*:: ++ +-- +type: keyword +Name of the host. +It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. -- @@ -5777,18 +5945,16 @@ example: debian OS family (such as redhat, debian, freebsd, windows). - -- -*`host.os.version`*:: +*`host.os.full`*:: + -- type: keyword -example: 10.14.1 - -Operating system version as a raw string. +example: Mac OS Mojave +Operating system name, including the version or code name. -- @@ -5801,131 +5967,133 @@ example: 4.4.0-112-generic Operating system kernel version as a raw string. - -- -[float] -== geo fields +*`host.os.name`*:: ++ +-- +type: keyword -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. +example: Mac OS X +Operating system name, without the version. +-- -*`host.geo.location`*:: +*`host.os.platform`*:: + -- -type: geo_point - -example: { "lon": -73.614830, "lat": 45.505918 } +type: keyword -Longitude and latitude. +example: darwin +Operating system platform (such centos, ubuntu, windows). -- -*`host.geo.continent_name`*:: +*`host.os.version`*:: + -- type: keyword -example: North America - -Name of the continent. +example: 10.14.1 +Operating system version as a raw string. -- -*`host.geo.country_name`*:: +*`host.type`*:: + -- type: keyword -example: Canada +Type of host. +For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. -Country name. +-- + +*`host.user.email`*:: ++ +-- +type: keyword +User email address. -- -*`host.geo.region_name`*:: +*`host.user.full_name`*:: + -- type: keyword -example: Quebec - -Region name. +example: Albert Einstein +User's full name, if available. -- -*`host.geo.city_name`*:: +*`host.user.group.id`*:: + -- type: keyword -example: Montreal - -City name. - +Unique identifier for the group on the system/platform. -- -*`host.geo.country_iso_code`*:: +*`host.user.group.name`*:: + -- type: keyword -example: CA +Name of the group. -Country ISO code. +-- + +*`host.user.hash`*:: ++ +-- +type: keyword +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -- -*`host.geo.region_iso_code`*:: +*`host.user.id`*:: + -- type: keyword -example: CA-QC - -Region ISO code. - +One or multiple unique identifiers of the user. -- -*`host.geo.name`*:: +*`host.user.name`*:: + -- type: keyword -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +example: albert +Short name or login of the user. -- [float] == http fields -Fields related to HTTP activity. - +Fields related to HTTP activity. Use the `url` field set to store the url of the request. -*`http.request.method`*:: +*`http.request.body.bytes`*:: + -- -type: keyword - -example: get, post, put +type: long -Http request method. -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. +example: 887 +Size in bytes of the request body. -- @@ -5936,84 +6104,63 @@ type: keyword example: Hello world -The full http request body. - - --- - -*`http.request.referrer`*:: -+ --- -type: keyword - -example: https://blog.example.com/ - -Referrer for this HTTP request. - +The full HTTP request body. -- -*`http.response.status_code`*:: +*`http.request.bytes`*:: + -- type: long -example: 404 - -Http response status code. +example: 1437 +Total size in bytes of the request (body and headers). -- -*`http.response.body.content`*:: +*`http.request.method`*:: + -- type: keyword -example: Hello world - -The full http response body. +example: get, post, put +HTTP request method. +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". -- -*`http.version`*:: +*`http.request.referrer`*:: + -- type: keyword -example: 1.1 - -Http version. +example: https://blog.example.com/ +Referrer for this HTTP request. -- -*`http.request.bytes`*:: +*`http.response.body.bytes`*:: + -- type: long -example: 1437 - -format: bytes - -Total size in bytes of the request (body and headers). +example: 887 +Size in bytes of the response body. -- -*`http.request.body.bytes`*:: +*`http.response.body.content`*:: + -- -type: long - -example: 887 - -format: bytes +type: keyword -Size in bytes of the request body. +example: Hello world +The full HTTP response body. -- @@ -6024,24 +6171,29 @@ type: long example: 1437 -format: bytes - Total size in bytes of the response (body and headers). - -- -*`http.response.body.bytes`*:: +*`http.response.status_code`*:: + -- type: long -example: 887 +example: 404 -format: bytes +HTTP response status code. -Size in bytes of the response body. +-- + +*`http.version`*:: ++ +-- +type: keyword + +example: 1.1 +HTTP version. -- @@ -6051,17 +6203,15 @@ Size in bytes of the response body. Fields which are specific to log events. - *`log.level`*:: + -- type: keyword -example: ERR - -Log level of the log event. -Some examples are `WARN`, `ERR`, `INFO`. +example: err +Original log level of the log event. +Some examples are `warn`, `error`, `i`. -- @@ -6072,96 +6222,52 @@ type: keyword example: Sep 19 08:26:10 localhost My log - This is the original log message and contains the full log message before splitting it up in multiple parts. In contrast to the `message` field which can contain an extracted part of the log message, this field contains the original, full log message. It can have already some modifications applied like encoding or new lines removed to clean up the log message. This field is not indexed and doc_values are disabled so it can't be queried but the value can be retrieved from `_source`. - -Field is not indexed. - -- [float] == network fields -The network is defined as the communication path over which a host or network event happens. The network.* fields should be populated with details about the network activity associated with an event. - - - -*`network.name`*:: -+ --- -type: keyword - -example: Guest Wifi - -Name given by operators to sections of their network. - - --- - -*`network.type`*:: -+ --- -type: keyword - -example: ipv4 - -In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. - - --- - -*`network.iana_number`*:: -+ --- -type: keyword - -example: 6 - -IANA Protocol Number (https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml). Standardized list of protocols. This aligns well with NetFlow and sFlow related logs which use the IANA Protocol Number. - +The network is defined as the communication path over which a host or network event happens. +The network.* fields should be populated with details about the network activity associated with an event. --- -*`network.transport`*:: +*`network.application`*:: + -- type: keyword -example: tcp - -Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. +example: aim +A name given to an application level protocol. This can be arbitrarily assigned for things like microservices, but also apply to things like skype, icq, facebook, twitter. This would be used in situations where the vendor or service can be decoded such as from the source/dest IP owners, ports, or wire format. +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". -- -*`network.application`*:: +*`network.bytes`*:: + -- -type: keyword - -example: aim +type: long -A name given to an application. This can be arbitrarily assigned for things like microservices, but also apply to things like skype, icq, facebook, twitter. This would be used in situations where the vendor or service can be decoded such as from the source/dest IP owners, ports, or wire format. -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. +example: 368 +Total bytes transferred in both directions. +If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. -- -*`network.protocol`*:: +*`network.community_id`*:: + -- type: keyword -example: http - -L7 Network protocol name. ex. http, lumberjack, transport protocol. -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. +example: 1:hO+sN4H+MG5MY/8hIrXPqc4ZQz0= +A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. +Learn more at https://github.com/corelight/community-id-spec. -- @@ -6183,7 +6289,6 @@ Recommended values are: When mapping events from a host-based monitoring context, populate this field from the host's point of view. When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of your network perimeter. - -- *`network.forwarded_ip`*:: @@ -6195,34 +6300,27 @@ example: 192.1.1.2 Host IP address when the source IP address is the proxy. - -- -*`network.community_id`*:: +*`network.iana_number`*:: + -- type: keyword -example: 1:hO+sN4H+MG5MY/8hIrXPqc4ZQz0= - -A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. -Learn more at https://github.com/corelight/community-id-spec. +example: 6 +IANA Protocol Number (https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml). Standardized list of protocols. This aligns well with NetFlow and sFlow related logs which use the IANA Protocol Number. -- -*`network.bytes`*:: +*`network.name`*:: + -- -type: long - -example: 368 - -format: bytes +type: keyword -Total bytes transferred in both directions. -If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. +example: Guest Wifi +Name given by operators to sections of their network. -- @@ -6236,129 +6334,165 @@ example: 24 Total packets transferred in both directions. If `source.packets` and `destination.packets` are known, `network.packets` is their sum. - -- -[float] -== observer fields +*`network.protocol`*:: ++ +-- +type: keyword -An observer is defined as a special network, security, or application device used to detect, observe, or create network, security, or application-related events and metrics. This could be a custom hardware appliance or a server that has been configured to run special network, security, or application software. Examples include firewalls, intrusion detection/prevention systems, network monitoring sensors, web application firewalls, data loss prevention systems, and APM servers. The observer.* fields shall be populated with details of the system, if any, that detects, observes and/or creates a network, security, or application event or metric. Message queues and ETL components used in processing events or metrics are not considered observers in ECS. +example: http +L7 Network protocol name. ex. http, lumberjack, transport protocol. +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". +-- -*`observer.mac`*:: +*`network.transport`*:: + -- type: keyword -MAC address of the observer +example: tcp +Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". -- -*`observer.ip`*:: +*`network.type`*:: + -- -type: ip +type: keyword -IP address of the observer. +example: ipv4 +In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". -- -*`observer.hostname`*:: +[float] +== observer fields + +An observer is defined as a special network, security, or application device used to detect, observe, or create network, security, or application-related events and metrics. +This could be a custom hardware appliance or a server that has been configured to run special network, security, or application software. Examples include firewalls, intrusion detection/prevention systems, network monitoring sensors, web application firewalls, data loss prevention systems, and APM servers. The observer.* fields shall be populated with details of the system, if any, that detects, observes and/or creates a network, security, or application event or metric. Message queues and ETL components used in processing events or metrics are not considered observers in ECS. + + +*`observer.geo.city_name`*:: + -- type: keyword -Hostname of the observer. +example: Montreal +City name. -- -*`observer.vendor`*:: +*`observer.geo.continent_name`*:: + -- type: keyword -observer vendor information. +example: North America +Name of the continent. -- -*`observer.version`*:: +*`observer.geo.country_iso_code`*:: + -- type: keyword -Observer version. +example: CA +Country ISO code. -- -*`observer.serial_number`*:: +*`observer.geo.country_name`*:: + -- type: keyword -Observer serial number. +example: Canada +Country name. -- -*`observer.type`*:: +*`observer.geo.location`*:: + -- -type: keyword - -example: firewall +type: geo_point -The type of the observer the data is coming from. -There is no predefined list of observer types. Some examples are `forwarder`, `firewall`, `ids`, `ips`, `proxy`, `poller`, `sensor`, `APM server`. +example: { "lon": -73.614830, "lat": 45.505918 } +Longitude and latitude. -- -[float] -== os fields +*`observer.geo.name`*:: ++ +-- +type: keyword -The OS fields contain information about the operating system. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. +-- -*`observer.os.platform`*:: +*`observer.geo.region_iso_code`*:: + -- type: keyword -example: darwin +example: CA-QC + +Region ISO code. + +-- + +*`observer.geo.region_name`*:: ++ +-- +type: keyword -Operating system platform (such centos, ubuntu, windows). +example: Quebec +Region name. -- -*`observer.os.name`*:: +*`observer.hostname`*:: + -- type: keyword -example: Mac OS X +Hostname of the observer. -Operating system name, without the version. +-- + +*`observer.ip`*:: ++ +-- +type: ip +IP address of the observer. -- -*`observer.os.full`*:: +*`observer.mac`*:: + -- type: keyword -example: Mac OS Mojave - -Operating system name, including the version or code name. - +MAC address of the observer -- @@ -6371,18 +6505,16 @@ example: debian OS family (such as redhat, debian, freebsd, windows). - -- -*`observer.os.version`*:: +*`observer.os.full`*:: + -- type: keyword -example: 10.14.1 - -Operating system version as a raw string. +example: Mac OS Mojave +Operating system name, including the version or code name. -- @@ -6395,138 +6527,102 @@ example: 4.4.0-112-generic Operating system kernel version as a raw string. - -- -[float] -== geo fields - -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. - - - -*`observer.geo.location`*:: -+ --- -type: geo_point - -example: { "lon": -73.614830, "lat": 45.505918 } - -Longitude and latitude. - - --- - -*`observer.geo.continent_name`*:: +*`observer.os.name`*:: + -- type: keyword -example: North America - -Name of the continent. +example: Mac OS X +Operating system name, without the version. -- -*`observer.geo.country_name`*:: +*`observer.os.platform`*:: + -- type: keyword -example: Canada - -Country name. +example: darwin +Operating system platform (such centos, ubuntu, windows). -- -*`observer.geo.region_name`*:: +*`observer.os.version`*:: + -- type: keyword -example: Quebec - -Region name. +example: 10.14.1 +Operating system version as a raw string. -- -*`observer.geo.city_name`*:: +*`observer.serial_number`*:: + -- type: keyword -example: Montreal - -City name. - +Observer serial number. -- -*`observer.geo.country_iso_code`*:: +*`observer.type`*:: + -- type: keyword -example: CA - -Country ISO code. +example: firewall +The type of the observer the data is coming from. +There is no predefined list of observer types. Some examples are `forwarder`, `firewall`, `ids`, `ips`, `proxy`, `poller`, `sensor`, `APM server`. -- -*`observer.geo.region_iso_code`*:: +*`observer.vendor`*:: + -- type: keyword -example: CA-QC - -Region ISO code. - +observer vendor information. -- -*`observer.geo.name`*:: +*`observer.version`*:: + -- type: keyword -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. - +Observer version. -- [float] == organization fields -The organization fields enrich data with information about the company or entity the data is associated with. These fields help you arrange or filter data stored in an index by one or multiple organizations. +The organization fields enrich data with information about the company or entity the data is associated with. +These fields help you arrange or filter data stored in an index by one or multiple organizations. - -*`organization.name`*:: +*`organization.id`*:: + -- type: keyword -Organization name. - +Unique identifier for the organization. -- -*`organization.id`*:: +*`organization.name`*:: + -- type: keyword -Unique identifier for the organization. - +Organization name. -- @@ -6536,93 +6632,99 @@ Unique identifier for the organization. The OS fields contain information about the operating system. - -*`os.platform`*:: +*`os.family`*:: + -- type: keyword -example: darwin - -Operating system platform (such centos, ubuntu, windows). +example: debian +OS family (such as redhat, debian, freebsd, windows). -- -*`os.name`*:: +*`os.full`*:: + -- type: keyword -example: Mac OS X - -Operating system name, without the version. +example: Mac OS Mojave +Operating system name, including the version or code name. -- -*`os.full`*:: +*`os.kernel`*:: + -- type: keyword -example: Mac OS Mojave - -Operating system name, including the version or code name. +example: 4.4.0-112-generic +Operating system kernel version as a raw string. -- -*`os.family`*:: +*`os.name`*:: + -- type: keyword -example: debian - -OS family (such as redhat, debian, freebsd, windows). +example: Mac OS X +Operating system name, without the version. -- -*`os.version`*:: +*`os.platform`*:: + -- type: keyword -example: 10.14.1 - -Operating system version as a raw string. +example: darwin +Operating system platform (such centos, ubuntu, windows). -- -*`os.kernel`*:: +*`os.version`*:: + -- type: keyword -example: 4.4.0-112-generic - -Operating system kernel version as a raw string. +example: 10.14.1 +Operating system version as a raw string. -- [float] == process fields -These fields contain information about a process. These fields can help you correlate metrics information with a process id/name from a log message. The `process.pid` often stays in the metric itself and is copied to the global field for correlation. +These fields contain information about a process. +These fields can help you correlate metrics information with a process id/name from a log message. The `process.pid` often stays in the metric itself and is copied to the global field for correlation. + + +*`process.args`*:: ++ +-- +type: keyword + +example: ['ssh', '-l', 'user', '10.0.0.16'] +Array of process arguments. +May be filtered to protect sensitive information. +-- -*`process.pid`*:: +*`process.executable`*:: + -- -type: long +type: keyword -Process id. +example: /usr/bin/ssh +Absolute path to the process executable. -- @@ -6636,6 +6738,14 @@ example: ssh Process name. Sometimes called program name or similar. +-- + +*`process.pid`*:: ++ +-- +type: long + +Process id. -- @@ -6646,31 +6756,27 @@ type: long Process parent id. - -- -*`process.args`*:: +*`process.start`*:: + -- -type: keyword - -example: ['ssh', '-l', 'user', '10.0.0.16'] +type: date -Process arguments. -May be filtered to protect sensitive information. +example: 2016-05-23T08:05:34.853Z +The time the process started. -- -*`process.executable`*:: +*`process.thread.id`*:: + -- -type: keyword - -example: /usr/bin/ssh +type: long -Absolute path to the process executable. +example: 4242 +Thread ID. -- @@ -6682,133 +6788,180 @@ type: keyword Process title. The proctitle, some times the same as process name. Can also be different: for example a browser setting its title to the web page currently opened. - -- -*`process.thread.id`*:: +*`process.working_directory`*:: + -- -type: long - -example: 4242 +type: keyword -Thread ID. +example: /home/alice +The working directory of the process. -- -*`process.start`*:: +[float] +== related fields + +This field set is meant to facilitate pivoting around a piece of data. +Some pieces of information can be seen in many places in an ECS event. To facilitate searching for them, store an array of all seen values to their corresponding field in `related.`. +A concrete example is IP addresses, which can be under host, observer, source, destination, client, server, and network.forwarded_ip. If you append all IPs to `related.ip`, you can then search for a given IP trivially, no matter where it appeared, by querying `related.ip:a.b.c.d`. + + +*`related.ip`*:: + -- -type: date +type: ip -example: 2016-05-23T08:05:34.853Z +All of the IPs seen on your event. -The time the process started. +-- + +[float] +== server fields +A Server is defined as the responder in a network connection for events regarding sessions, connections, or bidirectional flow records. +For TCP events, the server is the receiver of the initial SYN packet(s) of the TCP connection. For other protocols, the server is generally the responder in the network transaction. Some systems actually use the term "responder" to refer the server in TCP connections. The server fields describe details about the system acting as the server in the network event. Server fields are usually populated in conjunction with client fields. Server fields are generally not populated for packet-level events. +Client / server representations can add semantic context to an exchange, which is helpful to visualize the data in certain situations. If your context falls in that category, you should still ensure that source and destination are filled appropriately. --- -*`process.working_directory`*:: +*`server.address`*:: + -- type: keyword -example: /home/alice +Some event server addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. +Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. -The working directory of the process. +-- + +*`server.bytes`*:: ++ +-- +type: long +example: 184 + +Bytes sent from the server to the client. -- -[float] -== related fields +*`server.domain`*:: ++ +-- +type: keyword + +Server domain. + +-- + +*`server.geo.city_name`*:: ++ +-- +type: keyword -This field set is meant to facilitate pivoting around a piece of data. Some pieces of information can be seen in many places in ECS. To facilitate searching for them, append values to their corresponding field in `related.`. A concrete example is IP addresses, which can be under host, observer, source, destination, client, server, and network.forwarded_ip. If you append all IPs to `related.ip`, you can then search for a given IP trivially, no matter where it appeared, by querying `related.ip:a.b.c.d`. +example: Montreal +City name. +-- -*`related.ip`*:: +*`server.geo.continent_name`*:: + -- -type: ip +type: keyword -All of the IPs seen on your event. +example: North America +Name of the continent. -- -[float] -== server fields +*`server.geo.country_iso_code`*:: ++ +-- +type: keyword -A Server is defined as the responder in a network connection for events regarding sessions, connections, or bidirectional flow records. For TCP events, the server is the receiver of the initial SYN packet(s) of the TCP connection. For other protocols, the server is generally the responder in the network transaction. Some systems actually use the term "responder" to refer the server in TCP connections. The server fields describe details about the system acting as the server in the network event. Server fields are usually populated in conjunction with client fields. Server fields are generally not populated for packet-level events. -Client / server representations can add semantic context to an exchange, which is helpful to visualize the data in certain situations. If your context falls in that category, you should still ensure that source and destination are filled appropriately. +example: CA +Country ISO code. +-- -*`server.address`*:: +*`server.geo.country_name`*:: + -- type: keyword -Some event server addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. -Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. +example: Canada +Country name. -- -*`server.ip`*:: +*`server.geo.location`*:: + -- -type: ip +type: geo_point -IP address of the server. -Can be one or multiple IPv4 or IPv6 addresses. +example: { "lon": -73.614830, "lat": 45.505918 } +Longitude and latitude. -- -*`server.port`*:: +*`server.geo.name`*:: + -- -type: long +type: keyword -Port of the server. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`server.mac`*:: +*`server.geo.region_iso_code`*:: + -- type: keyword -MAC address of the server. +example: CA-QC +Region ISO code. -- -*`server.domain`*:: +*`server.geo.region_name`*:: + -- type: keyword -Server domain. +example: Quebec +Region name. -- -*`server.bytes`*:: +*`server.ip`*:: + -- -type: long +type: ip -example: 184 +IP address of the server. +Can be one or multiple IPv4 or IPv6 addresses. -format: bytes +-- -Bytes sent from the server to the client. +*`server.mac`*:: ++ +-- +type: keyword +MAC address of the server. -- @@ -6821,120 +6974,103 @@ example: 12 Packets sent from the server to the client. - -- -[float] -== geo fields - -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. - - - -*`server.geo.location`*:: +*`server.port`*:: + -- -type: geo_point - -example: { "lon": -73.614830, "lat": 45.505918 } - -Longitude and latitude. +type: long +Port of the server. -- -*`server.geo.continent_name`*:: +*`server.user.email`*:: + -- type: keyword -example: North America - -Name of the continent. - +User email address. -- -*`server.geo.country_name`*:: +*`server.user.full_name`*:: + -- type: keyword -example: Canada - -Country name. +example: Albert Einstein +User's full name, if available. -- -*`server.geo.region_name`*:: +*`server.user.group.id`*:: + -- type: keyword -example: Quebec - -Region name. - +Unique identifier for the group on the system/platform. -- -*`server.geo.city_name`*:: +*`server.user.group.name`*:: + -- type: keyword -example: Montreal - -City name. - +Name of the group. -- -*`server.geo.country_iso_code`*:: +*`server.user.hash`*:: + -- type: keyword -example: CA - -Country ISO code. - +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -- -*`server.geo.region_iso_code`*:: +*`server.user.id`*:: + -- type: keyword -example: CA-QC - -Region ISO code. - +One or multiple unique identifiers of the user. -- -*`server.geo.name`*:: +*`server.user.name`*:: + -- type: keyword -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +example: albert +Short name or login of the user. -- [float] == service fields -The service fields describe the service for or from which the data was collected. These fields help you find and correlate logs for a specific service and version. +The service fields describe the service for or from which the data was collected. +These fields help you find and correlate logs for a specific service and version. + + +*`service.ephemeral_id`*:: ++ +-- +type: keyword + +example: 8a4f500f +Ephemeral identifier of this service (if one exists). +This id normally changes across restarts, but `service.id` does not. +-- *`service.id`*:: + @@ -6947,7 +7083,6 @@ Unique identifier of the running service. This id should uniquely identify this service. This makes it possible to correlate logs and metrics for one specific service. Example: If you are experiencing issues with one redis instance, you can filter on that id to see metrics and logs for that single instance. - -- *`service.name`*:: @@ -6962,6 +7097,14 @@ The name of the service is normally user given. This allows if two instances of Also it allows for distributed services that run on multiple hosts to correlate the related instances based on the name. In the case of Elasticsearch the service.name could contain the cluster name. For Beats the service.name is by default a copy of the `service.type` field if no name is specified. +-- + +*`service.state`*:: ++ +-- +type: keyword + +Current state of the service. -- @@ -6976,115 +7119,163 @@ The type of the service data is collected from. The type can be used to group and correlate logs and metrics from one service type. Example: If logs or metrics are collected from Elasticsearch, `service.type` would be `elasticsearch`. - -- -*`service.state`*:: +*`service.version`*:: + -- type: keyword -Current state of the service. +example: 3.2.4 +Version of the service the data was collected from. +This allows to look at a data set only for a specific version of a service. -- -*`service.version`*:: +[float] +== source fields + +Source fields describe details about the source of a packet/event. +Source fields are usually populated in conjunction with destination fields. + + +*`source.address`*:: + -- type: keyword -example: 3.2.4 +Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. +Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. -Version of the service the data was collected from. -This allows to look at a data set only for a specific version of a service. +-- + +*`source.bytes`*:: ++ +-- +type: long +example: 184 + +Bytes sent from the source to the destination. -- -*`service.ephemeral_id`*:: +*`source.domain`*:: + -- type: keyword -example: 8a4f500f +Source domain. -Ephemeral identifier of this service (if one exists). -This id normally changes across restarts, but `service.id` does not. +-- + +*`source.geo.city_name`*:: ++ +-- +type: keyword + +example: Montreal +City name. -- -[float] -== source fields +*`source.geo.continent_name`*:: ++ +-- +type: keyword -Source fields describe details about the source of a packet/event. Source fields are usually populated in conjunction with destination fields. +example: North America +Name of the continent. +-- -*`source.address`*:: +*`source.geo.country_iso_code`*:: + -- type: keyword -Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. -Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. +example: CA +Country ISO code. -- -*`source.ip`*:: +*`source.geo.country_name`*:: + -- -type: ip +type: keyword -IP address of the source. -Can be one or multiple IPv4 or IPv6 addresses. +example: Canada +Country name. -- -*`source.port`*:: +*`source.geo.location`*:: + -- -type: long +type: geo_point -Port of the source. +example: { "lon": -73.614830, "lat": 45.505918 } + +Longitude and latitude. +-- +*`source.geo.name`*:: ++ -- +type: keyword -*`source.mac`*:: +example: boston-dc + +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. + +-- + +*`source.geo.region_iso_code`*:: + -- type: keyword -MAC address of the source. +example: CA-QC +Region ISO code. -- -*`source.domain`*:: +*`source.geo.region_name`*:: + -- type: keyword -Source domain. +example: Quebec +Region name. -- -*`source.bytes`*:: +*`source.ip`*:: + -- -type: long +type: ip -example: 184 +IP address of the source. +Can be one or multiple IPv4 or IPv6 addresses. -format: bytes +-- -Bytes sent from the source to the destination. +*`source.mac`*:: ++ +-- +type: keyword +MAC address of the source. -- @@ -7097,133 +7288,110 @@ example: 12 Packets sent from the source to the destination. - -- -[float] -== geo fields - -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. - - - -*`source.geo.location`*:: +*`source.port`*:: + -- -type: geo_point - -example: { "lon": -73.614830, "lat": 45.505918 } - -Longitude and latitude. +type: long +Port of the source. -- -*`source.geo.continent_name`*:: +*`source.user.email`*:: + -- type: keyword -example: North America - -Name of the continent. - +User email address. -- -*`source.geo.country_name`*:: +*`source.user.full_name`*:: + -- type: keyword -example: Canada - -Country name. +example: Albert Einstein +User's full name, if available. -- -*`source.geo.region_name`*:: +*`source.user.group.id`*:: + -- type: keyword -example: Quebec - -Region name. - +Unique identifier for the group on the system/platform. -- -*`source.geo.city_name`*:: +*`source.user.group.name`*:: + -- type: keyword -example: Montreal - -City name. - +Name of the group. -- -*`source.geo.country_iso_code`*:: +*`source.user.hash`*:: + -- type: keyword -example: CA - -Country ISO code. - +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -- -*`source.geo.region_iso_code`*:: +*`source.user.id`*:: + -- type: keyword -example: CA-QC - -Region ISO code. - +One or multiple unique identifiers of the user. -- -*`source.geo.name`*:: +*`source.user.name`*:: + -- type: keyword -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +example: albert +Short name or login of the user. -- [float] == url fields -URL fields provide a complete URL, with scheme, host, and path. - +URL fields provide support for complete or partial URLs, and supports the breaking down into scheme, domain, path, and so on. -*`url.original`*:: +*`url.domain`*:: + -- type: keyword -example: https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch +example: www.elastic.co +Domain of the url, such as "www.elastic.co". +In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the `domain` field. -Unmodified original url as seen in the event source. -Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path. -This field is meant to represent the URL as it was observed, complete or not. +-- + +*`url.fragment`*:: ++ +-- +type: keyword +Portion of the url after the `#`, such as "top". +The `#` is not part of the fragment. -- @@ -7236,54 +7404,47 @@ example: https://www.elastic.co:443/search?q=elasticsearch#top If full URLs are important to your use case, they should be stored in `url.full`, whether this field is reconstructed or present in the event source. - -- -*`url.scheme`*:: +*`url.original`*:: + -- type: keyword -example: https - -Scheme of the request, such as "https". -Note: The `:` is not part of the scheme. +example: https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch +Unmodified original url as seen in the event source. +Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path. +This field is meant to represent the URL as it was observed, complete or not. -- -*`url.domain`*:: +*`url.password`*:: + -- type: keyword -example: www.elastic.co - -Domain of the request, such as "www.elastic.co". -In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the `domain` field. - +Password of the request. -- -*`url.port`*:: +*`url.path`*:: + -- -type: integer - -example: 443 - -Port of the request, such as 443. +type: keyword +Path of the request, such as "/search". -- -*`url.path`*:: +*`url.port`*:: + -- -type: keyword +type: long -Path of the request, such as "/search". +example: 443 +Port of the request, such as 443. -- @@ -7295,17 +7456,17 @@ type: keyword The query field describes the query string of the request, such as "q=elasticsearch". The `?` is excluded from the query string. If a URL contains no `?`, there is no query field. If there is a `?` but no query, the query field exists with an empty string. The `exists` query can be used to differentiate between the two cases. - -- -*`url.fragment`*:: +*`url.scheme`*:: + -- type: keyword -Portion of the url after the `#`, such as "top". -The `#` is not part of the fragment. +example: https +Scheme of the request, such as "https". +Note: The `:` is not part of the scheme. -- @@ -7316,67 +7477,50 @@ type: keyword Username of the request. - --- - -*`url.password`*:: -+ --- -type: keyword - -Password of the request. - - -- [float] == user fields -The user fields describe information about the user that is relevant to the event. Fields can have one entry or multiple entries. If a user has more than one id, provide an array that includes all of them. - +The user fields describe information about the user that is relevant to the event. +Fields can have one entry or multiple entries. If a user has more than one id, provide an array that includes all of them. -*`user.id`*:: +*`user.email`*:: + -- type: keyword -One or multiple unique identifiers of the user. - +User email address. -- -*`user.name`*:: +*`user.full_name`*:: + -- type: keyword -example: albert - -Short name or login of the user. +example: Albert Einstein +User's full name, if available. -- -*`user.full_name`*:: +*`user.group.id`*:: + -- type: keyword -example: Albert Einstein - -User's full name, if available. - +Unique identifier for the group on the system/platform. -- -*`user.email`*:: +*`user.group.name`*:: + -- type: keyword -User email address. - +Name of the group. -- @@ -7388,52 +7532,43 @@ type: keyword Unique user hash to correlate information for a user in anonymized form. Useful if `user.id` or `user.name` contain confidential information and cannot be used. - -- -[float] -== group fields - -The group fields are meant to represent groups that are relevant to the event. - - - -*`user.group.id`*:: +*`user.id`*:: + -- type: keyword -Unique identifier for the group on the system/platform. - +One or multiple unique identifiers of the user. -- -*`user.group.name`*:: +*`user.name`*:: + -- type: keyword -Name of the group. +example: albert +Short name or login of the user. -- [float] == user_agent fields -The user_agent fields normally come from a browser request. They often show up in web service logs coming from the parsed user agent string. +The user_agent fields normally come from a browser request. +They often show up in web service logs coming from the parsed user agent string. - -*`user_agent.original`*:: +*`user_agent.device.name`*:: + -- type: keyword -example: Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1 - -Unparsed version of the user_agent. +example: iPhone +Name of the device. -- @@ -7446,85 +7581,71 @@ example: Safari Name of the user agent. - -- -*`user_agent.version`*:: +*`user_agent.original`*:: + -- type: keyword -example: 12.0 - -Version of the user agent. +example: Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1 +Unparsed version of the user_agent. -- -*`user_agent.device.name`*:: +*`user_agent.os.family`*:: + -- type: keyword -example: iPhone - -Name of the device. +example: debian +OS family (such as redhat, debian, freebsd, windows). -- -[float] -== os fields - -The OS fields contain information about the operating system. - - - -*`user_agent.os.platform`*:: +*`user_agent.os.full`*:: + -- type: keyword -example: darwin - -Operating system platform (such centos, ubuntu, windows). +example: Mac OS Mojave +Operating system name, including the version or code name. -- -*`user_agent.os.name`*:: +*`user_agent.os.kernel`*:: + -- type: keyword -example: Mac OS X - -Operating system name, without the version. +example: 4.4.0-112-generic +Operating system kernel version as a raw string. -- -*`user_agent.os.full`*:: +*`user_agent.os.name`*:: + -- type: keyword -example: Mac OS Mojave - -Operating system name, including the version or code name. +example: Mac OS X +Operating system name, without the version. -- -*`user_agent.os.family`*:: +*`user_agent.os.platform`*:: + -- type: keyword -example: debian - -OS family (such as redhat, debian, freebsd, windows). +example: darwin +Operating system platform (such centos, ubuntu, windows). -- @@ -7537,28 +7658,16 @@ example: 10.14.1 Operating system version as a raw string. - --- - -*`user_agent.os.kernel`*:: -+ --- -type: keyword - -example: 4.4.0-112-generic - -Operating system kernel version as a raw string. - - -- -*`agent.hostname`*:: +*`user_agent.version`*:: + -- type: keyword -Hostname of the agent. +example: 12.0 +Version of the user agent. -- diff --git a/metricbeat/include/fields/fields.go b/metricbeat/include/fields/fields.go index 219787ef175..53c56d4fb62 100644 --- a/metricbeat/include/fields/fields.go +++ b/metricbeat/include/fields/fields.go @@ -32,5 +32,5 @@ func init() { // AssetLibbeatFieldsYml returns asset data. // This is the base64 encoded gzipped contents of ../libbeat/fields.yml. func AssetLibbeatFieldsYml() string { - return "eJzsff1zHDdy6O/+K1B01bOULIcfoiSaqXsJT5ItliWZEaU4l1yKi53B7sKcAcYAhqt1kv/9FboBDDAzu1x+rM7Jo67qLM3OAI1Go9HfvUuu2PKEsFx/Q4jhpmQn5M2ri28IKZjOFa8Nl+KE/N9vCCH2BzLlrCx09g1xfzv5Bn7aJYJW7ITs/JPhFdOGVvUO/ECIWdbshBTUMPegZNesPCG5VP6JYr81XLHihBjV+IfsC61qC8/O4f7Bi93957uHzz7tH5/sPz95dpQdP3/2b36GAVDtn9fUsD0LDlnMmSBmzgi7ZsIQqfiMC2pYkX0T3v5BKlLKGb6iiZlzTbiGr4pVAy2oJjMmmLJjjQgVRRhOSINvc3xNMRrP9tGtGLFIplIRWpZu8izFqaEzvRJ1iN0rtlxIVfQw9+9/3amVLJrc4uavOyPy1x0mrg//uvMfN+DuHdeGyKkfWJNGs4IYaYEhjOZzBLUDaUknrLwJVjn5leWmC+p/MnF9QlpgR4TWdclzipBNpdydUPXf66H+iS33rmnZMFJTrnSE71dUkAkLq6BFQSpmKOFiKlUFk9jnDv/kYi6bsoBNzKUwlAsimDas3V9chc7IaVkSmFMTqhjRRtptpdqjLgLijV/suJD5FVNjSzFkfHWsxw51HXxWTGs6W31uEKGGfemhc+ctK0tJfpGqLG7Y6h7hMz+vI06HAfzJvul+jlZ2Jog0c6YsgklONRscJ92DXIqcGiZaxkBIwadTpuzRcihdzHk+B8Qae5imirFySTSjKp/TSckycjYlVVMaXpftMG5eTdgXrs3Ifrv00+eymnDBCsKFkUQK1lmOxz2dMeHR6hjjafRopmRTn5DD9bj9NGc4kOOWgZocW6GETmRj4J9aTs3CrpQJw81yRPiUULG00FNLhmVpCW5ECmbwL1IROdFMXduF4uZJQSiZS7tmqYihV0yTilHdKFalL2SeGjXhIi+bgpE/MwoEPYM3K7oktNSSqEbYz9xUSmdwD8Cqsr/z69Jzy74mjNSybkrLDsmCm7kFlvJSW1ZiAi5UIwQXMzuqfWjBiRajLN/EDXdsdk7rmtkts2sCsgorAt5q1ykyh/SplEZIw+Jt8Es9sYRqR7AkamGCJQP3LeVMj1oYM0sElv9PeckmjJoMzsnp+fuR5eh4MYTx02W57aV1vWcXxHOWRYQQc5xCMo1MZk7FjBE+bU+CJQ6uibbfmLmSzWxOfmtYY2fQS21YpUnJrxj5iU6v6Ih8ZAVHoqiVzJnW0YthVN3Y06TJOznThuo5wTWRC0B8lrAVoHCP1Piuj0+JJQguRXg+xKXIimtqzbmxf/4Fh05IJ2I5EbN7ke1n+7sqP+zDZ/9/G8B9sOSxEjJ78FF8oACBO8LIgGb8msFlQ4X7FN92P89ZWU+bMqYFJGvlF0zMQpIfHF0SLrShInfXT+doaTu5PV/JWJPGWC7QVFSAXGIZKdGspgrJkmsiGCvsgROOA/emSwb0xJrLyk4+VbLq4ONsSoQk/lABCvC0+UdyapggJZsawqraLLOhjZ5K2d9iu3vb2OJPy/qGLfZH2g5OtKFLTWi5sP8JuLcXvEZhImz9ZBnxQnsbZimqRGBPAevt+wsYy00zYe0rwKv51BJHMtxqQkmIpKL5nAs2jHY3RB/3vNgG5j8L/lvDCC/sTTjlTOE22OMEOHjCp3Bxw+2un3b2JUhZlmEjg4dvF34XgJ3zYnCpx/Ro+nx/v+gvldVzVjFFy8uhRbMvhomCFfdb+Bs/x13XjmzHCq6qomW5dBeLJjRXUlstRBuqrPBgecAYyZoX43ATrUPK9JtUQspL3hORXsXPNpORTt1AlgsUbAqyGcUjxAU3nBoJSKBEMLOQ6soKUYKBloBsEWUfxWZUFXDr2dtPCj2K3sSrccILrvABLcm0lAuiWG4VHLzfP706d8Mhd2oh64FjH9jXI2CAy2smCnz94i8fSE3zK2ae6Kc4PgrJtZJG5rLsTYK6pN23znQKVGRmlQsvXnhkGEWFpgBARi5kxYJ0YGVx+6ZhqiI7XumVasdePopNmUqmF53laJRa3M9OzsM9nLAg2EXyK0xLLChi5newHTyGGXVHRyx+aMuVGt3A8lspkgsL0q+NQBSDUOnERGeKIAPjtIi00lU7miUX3JJdOLipwm3/uLH2/CSK1YpZIQyuRrylrfaoWUWF4TlI9OyLcRc6+4InbuTuTa7DhW4kueZ2ffx31sr/dn1MgU6guWmow/zZlCxlo8LoU1qWGtEIkoRhM6mWI/uSv1+04WVJmLCisSNF2agc76CCaWN33+LQImjKy9Kes7pWslacGlYu7yD+0aJQTOtt8UMgZ9QBHCG5Cd0lFthFNeGzRja6XCLROvMML8tkPC0rBvYpUnJt7H6dnY8IJYWs7AZIRShpBP9CtNXPTUbIX1r84p2bjmeVfdhLRRceNk/s48w9GCP++uIDGIda6aBo0OCB6vE44/XYgjTOELyxVf1qJgon3wGBJUPaewGUk2zgpq43vKmTF9fszdl5WLDjhrhFnWU6w4sFTaqgqZOz8+sj++Ds/PpFu6kDcNdSmQ0hL6WYbQb7uVRmJdTB+ELzbQg3709f3Yg4DwJu/DagcGwOJ4hm/pa8Z0bxXPdgmSwNGzjom+wEKrz9IYKAcXB8tBnYf7YjoE5slYz4ijESbyGnyfYJCdj+HVfQQnq4IYXhbHcDdcZiEd5JVj8mDzui1Q3Q/MhkMEBRq14otYzNT5TomuV8ynNSSjS5EsVKz4rsvXbdinX4RyoLZ2rOYIpf21vWrheYq+d8XfTGlwsZumAim7IDKJl8eOvC6Exe1pJ3AF6DH0LeSTHjpinwtiypgX+kilkggu/+k+yUUuyckN2Xz7IXB0fHz/ZHZKekZueEHD3Pnu8///7gmPz3d0PrsTc6F0yYy45t4qZV9c/3DWuKbRRh1hVL+iCVmZPTiime02GwG2HUcutAv8J5YNYVsL6ighaDQCo241JsHcaPMM06EP+5YROWD+KRm6+ARG7WYvC9FEYxWq7baK7lZS6Lr7LZZxc/EzvXqg0/XbPZXwNOt+E3grn7z6+GIF213QNC8p1B/KyZ2vXycPQmas6eiY6IMyah9iOnZKaoaEqqLMU4N4lieC10JDnYLpRUg+EOuQtXeJnkTBimnFY7LaVURDTVhCnwZYARw+uPujM0gliSer7U3P7FO0FyT8q6B84HCaY3+3q5RLcSF4Q2RlZwc82Y9OtesWMTqY0Uu0XeNWzIpujaNdpHm5k1fsD7NrpGUQKQDfgxuJgqqo1qctPEzo4WMXYfEoMqPr7BvzF1Ahya/HRsEKaCvHl1iO4We8tNmcnnTOPewZ3No+nRi9TCbC/61BWY+K+4DibEFIgwoGqE8z8pVkkTTI5ENkbzgkVzDUNHiXOnxEPGHhf42FFf6rnEYduhwIvkpo8dOW6CFHE368X+8yBrKnnNC6Y20osDNbL88H5CfXLhw4o9IMHbF7uqWX44IrOcjYhUKaPhM25oKXNGxYB4Sq8pL+mEl/Yq+12KAev7umU2epdRbXYP8vut9jQCg/wOuq/3VgA5Ap23GzmwELxBNoJ+FXz9VW0GvLtRbguxt+Fn97RBB7D57sHhs6PnL14ef79PJ3nBpvsbqv8OEnL22pMcgB/8CKthH/bJPYzFKIAVXU83AeZ/GXYk3QWr5jCrWMGbakOTgOdEkcfpBphpDnLag9HBixcvXr58eXx8/P33328G9KeWWyMs4MJXMyr4786NWIRYD+fOWLYBHumFbC97DqEIhKKRaNcwQYUhTFxzJUXVtyy1l97pLxcBCF6MyI9SzkqGdzb5+eOP5KzAaAkMUQHvUjJU623pBIG4CyRwci8NdB5vJhGEr1KLtzNL98KRIsu6V8674BC08zr3hDP3ymk8DNhDNfNTzllZW7EYxRK8ESdUR8QS5tBej19ahmR4q03cwkDsvtzWcf+Iw5OKCjqztzXw0bCEQW8Wxl59ZV9mAInwYog3VnS2XcYYywYwWzALIFgLqsmk4aUBgWcFgIbOtgVfezgcdHTo/tsmhloIUHPuTZ5EN24yfRLpSELQ4OVd7jVAymCQYOTaSbnU694Pm/Gp6LsN3H6xZwl0TTS07rn40DWD3sLhh5ytjT0mf1Q3VeJne/RV/WF9VdE+/U9zWA2D/vW9Vuvh2J7rKuYk/xv8VzHL8J4h4Hd/UCfWbeB99GQ9erL6q3r0ZD16sjZF4qMn69GT9ejJuqsniwVBKMntJBvrgu+ZobvxzRiuVyPtYH+DlJHBZNEbqOrNqws/L+6eCyqUsDJNjMzImOU6cy+NMXdDpVma9kKtGm0w+Bq2qJuz6f/8YjWm3xqmlhAMi9HXQZngouA502R315n/K7r0wFjE6pLP5qZcpocm5MZFq4ExYEUIYmnlNS4MmykXsEqLXy3IKKmlGmE+ZxUNeHH36+BywNjbKMzMc+9zTQ4g8WbCDD0kg7a26IUOYSolO0bVN9GjjbPrWstmDsksLlgXxwdVhYolueKiyCxjsSusMGgcXzDzyEOJeWZ2S0qG/ke7eT61DiKvMbexm6DGjWbltHU3WjHTjh+wuLnr8GtlVExdLl0K56rU05uAiVJQb4AEdnkgg7S9tIutZPPgvHZ0z7nRXJxiIJDndS+z4c31XZI/kT6G7P0+snvY5F/KGUGngOJ5QmUZOYVf02wJr9h4GrSLi3IvwZg0xxXTNqEyI+/axF/gbD4XFPIGeMXsLes9lPapHaL9OqSQymmcQuwHoT4VkUDWiQ9DcKEFbT4HarVkwjB5wyub1Nv9rOIWq50jtH4NpINMmFkwZufw8eKicHEDTLkJXFoFppPmpdR2Jace1Tej1VuGpGJWKAA9o4SxMCof/pkk3VoghhE6nMma4DUmgRa1FaukWhLL7iDe3w1UdDKAr5tSMIVOct7mArvXdE6FXSjkA9/+It8qqzp7bbc92J0Dr71l1pbl/H0oH8bsa8+3HT+5OYcSsmb8Gnyb3YO+sGfRO32TSgR+tGQsf72MwChuB3AnJhLJvIaMV1YMV+swTQa1PGkMb4xHZKwNNcz+hZZUVeOM/EKVJXpInJ42EKoUJA85tZLIiCxSsaIuKRiGXOyJFYhdMQma56w2kG3qwlDwFvLSy4jUJaMamGQyJDgBctp0BeBAAAD3wGXi8mS2cqEgX3AzDG17EAfmfDZ3+UbD3H7Fjp2l+881Mh1IbrLbPafC7V2GCWDjkTfoaya0ywJqFQuakpMDvYUzyKfUJ4BtsP3pRrEH2P5kxEazzvYP7X9jdUZwAgMvHYqXMFtKU4c0YLx9clob4K4uw3clQwi6o8vza2mCi5QAwqa3h3xOUwuiowC/nePo+oDDDbx8lxaFPdfuQt6FC5kV43T7xlNest1cMXs9jtE9hfVUuG5zSv396FbJ7VwVKMyDZxP2pqZaW5zuYnpcf4NkY3K5PeeuXYmbYh27Pot+inaJCrfFo4hcdRoN2Y6eGkHsEfTpme29ji+7HdJNnoPvDcrBTCkvG8VS5puMuZoR3+b0pUOuZMQbnD4H/9dLzf/IQKJDQdpho+koFPbPOa6CXkuIRQoBIm3RJUucYPIZUoFk0ZRbrx6Bszib0o11FDDBO2YYydvRiDrYkTAHXqpQ9WPwmFZL/Vs54Mejhmq2qUfzzlhw0wyZHaSwhIvWv7F7b0yeWFalmSF7TkLWzDy12EhXbWX41OjRTOxXVrBGNAGXTU5yjN6QxeusHx2bjKv2xEULBFaOAVNReOT22BIrQp11TdqJJDNwkjS7ZoqbTSWZVZ6/nZc7m+3NhZuvc1V5MDqCyi9zZ4wdDu8LX7lrv2LguhOWg0UhgUF7C0Wk7N58p0lTEyM7XDW5dyzHq+gVI6ALuem4Y6+5FJprA9og2uF6Jq5wCWGOfHlnav+WfLbEYxoBGdXO1uhCrznW+tFzuRAYg5ebckmWzFgy/S9SSKwaJ9VVMqSVCSzf1mTBkiCRb8mZJv/n24PDo3/wMYBpurrdpv+CCnRSXVlA4CSB9aG1YyUDYsAmz6/0IHXuXLCaHHxP9o9PDl+cHOxjmOqrNz+c7CMcFyxv7Fbjv5I9s7tmJQsU0xS+cZC5Dw/29we/WUhV+Qtm2ljxQxtZ16zwn+F/tcr/dLCf2f8ddEYotPnTYXaQHWaHujZ/Ojh8drjhISDkI12AbStUMpNTsOerQPqfXYRrwSoptFHUoPEGbbDcdDUDx8LxBnIUwUXBvjC0Lxcyv4xi9Auu7dYXyKWosK9PWGdELIfGCqzqwUOlIWUZEAt+7PEl2lPG8dbC3CdkSstE8G7B8L/1Dsuc6vm9xLWWqtoY9KG/nf751euNd+wt1XPypGZqTmsNVb2gztWUixlTteLCPLWbqOjC7YGRFlUgF3WYDNloU8NF2aiud/8OISYDo3BRN+bSvyCokJrlUhR6M5S8diMmLNvylGikvhSM1A1aApAl/puJAqjySlgWBswN1YM2MKzrZPDcPWeBvQMUAskdZ8Dg4r74yCu2cX7JnZSCcBLbBUQF7JJin99pEkqbtoXbnD0uvZwc2KmyXypGiyV5wrJZZlUo2pSGXCy1paswsH6KV14yngTgaYnx6wuuu2LuaSvah7lxZmAiJ4RajiAFWCbPXjsYdt40StZs77TShqmCVjtPU22QTiaKXaOp1H9y8WnnKVhfBXn79qSq2tub09K/tbv//GR/f+fpkHkfdcsND0kR14Zcu5VOB8bRe2lqg4Vb3ctDAna70VYo59pwkTuj9D9Fv7lqLNEjP3FPWHF6N1yu7uXMV94EMDWWdWspwTPxYZHKldfpAINcquQCBdDOojlWoY1LySVjTpZRNTHFkL7BY5TTMiPjdp1jdBbExSzDb+m2fDGK5sbfQDGEo86eBWDDErivmpvujytYlmOga11bMUuCD8Fe0GiDsfoQOukGNqfHo9pXBuCNnRR2gpYbdiHvE+QaOvNV3gB36cZb3Ae8j+IVtFwKy8b11QTLTm/BLm97wJBd33i8nHXJMopB5NDc8GurEFj8TLnSxhf/HFoUu5UJ/7ZLsjfRjQuCqeLlhCWk5k+qSUnXr0ZxfXWpO+xuHROclpJu6Fz9yPUVgbGxDiiXPWXN8Wjt5HSiZQmWHf00PWefNcMKVFjW6zsdlCN35dvTtXZ5l0Kq6hYbd4t1fgBTJP+dFTDfDUseBW9XCQL8vuUXB/v7K0p2VpQLjMLBMpxQY8uqpBUG0FMBLkBX7gzte1rzWYfrt4BpqAwOwywoln/RjBHqLKqwDMSp009pWfoibh2/9JQHnt3xQTsv9Q/tC6vwdwqjdB2dxFlFUjcU+Io1mVixzbM753+1zyEOxnsTwbQBUGcAhi+R7S8yqrXMeVsaGFRHX2wvqQyHCNtz5hLv+gTCHREzl5q5QuFohIbJzrxoTt5LwY2EK+Dffzh7/x++qDiYwFyCN9TjgygPtOR6c2k/vYVOpwwvBPt6dw0mqinv7D0bO1LbmG7T6lGrDsmwdJts8Tm1AEmX/l62h7OtI69mzFw+1HyfYDgAH0QKvaxKLq50b14YPAn5usesMSOAHQyjJ8cZDnNIhinlgjCqlxYvhgFpTJaOuPznkcEjKKa1mPWQGJu077EOgB18v2DJHJGCKzhXDo1Pe2gsWFL74B5zv4aRVuSOriQfLuLQnHtMf2YHai1VPg4HuZIIf3e8pAtGE4UdPBAdWZkSHAFWN/p89vopcgp3Q0ZBU08u4McWSUQuRFTCK9gRF3GO7n2pBEb7DizbKklNDFkWD4OSc8UrqpbIswAXP3aW2585yX54sLnj5P3Beau7k2I43PsvjvaHgXlv6TPeZS6IzA0tO+bVHlia/74pWIn9ZzjBqE8JdnwLDLxnGYczIkorsNCi8MrI2M4xJjyVSMC7O+4zlirJ0F4PdiJdJwC+s3IvRDgBylxIA4jElSzs+Sl6M+fbmLlihmIQN7iai44IFZOsT0iKHm0e2oekGoX2VcxJd20YKryjnZCoLNMr2TUVvXDcJLTpniFYD2MbWx0xiuv2tcOBSe/VJTWWiL9yynbsQQSwOnsdVb53W/22fbJpdWpflSWRll2BYZLLqm4MhhW68iYQng0hdVF3jAHrYtweo5U3sRmGiGIE0x4YWMhC3BxDaFcKOG2DBudUFQuq2Ihcc2UaWvoCI3pEXkNVhKj6AyotPzUTpgQzYO4s2F2Sr+2Khong/i7kt27suGpK19BiomroXs9feIfl2EM3tltZ2SUrZhqFpao2KMSyrZV9uHFVkP/oLHCwnmgt0Ro+Q444apMun6UpO27s3xpaAof22eV2FB9lawFx0Udt0I+VRTA+SNtz3KkfxXJehOY9qNoaab8ZSvbeZhQpnt2u7e1UB6L0LjjXUAFrw4xA3XdeuMC7LXvnYjZt0jx9LtBOcmOhmpMki6Lx7sQxtCOAbcv6yHnoTHjgCrz2udxfL4H8rTtGa2bediOPgWP0g1SuTJCvlOaaRTibRVInzg4DHXfGob7TuNO6Y0quq5EvQhOlmAW2Ooqt71FRosjskozYEt0NhBYCHVU+54ZBVcE7I7P1zH45fnH54mhD7+vPNVPUtH2HEmCGwi1i+dRd0O0YFzBG9MbtMsXtYfv5ott3azj+VnYAj3dVsQZc8CfJ6EbWlw6nXde5RV8NNqP0k93Q4KrzuNefZxfY62XcgYzcJeHcS2XJ4FvI2Oztu5+YPIGGUzkTRuoRaSaNMM2ILLgo5KJrcW4LNFG14GKL6acteb+nuSWSf925x2LxrvQh+ZacXGBmNrQEe/luYwnv5a/0mt1/HSgreptMyA10qVOdykjRsmjFO0LFfRdWsAmn4jYrunBgOLKDrpvFnJoRwbFG0D9woouYBAcW089Qvf9qDvazg6Ps4D4b5DcDFBBFF0QblZaJjPJerNT+sIR2lB1l+7sHB4e7LgHhPmtB+DZY0mMlkYHdfawk8lhJJIX1sZLIYyWRx0oiHRAfK4k8XCWRuTEdq/nbT5/O3ZO7VsS3Q4RImrtUl8WmeFnFzFxuzRT+1pjaT0VwqoE8FXTGoLELouMmLA7wMJKUcsEUBH1NpQrFQTJywdKTsPMuvPiK1tzYEWDHdrx7dOfM5z5YkerNq4sdQjSmwA+G7c+YGZEaksLrZiA70uNxIotl5jw328LmJ2eBBIoKaIWZh0DHPuYLqcqB7G4PNzQzVBvW279TvhmO36bJAeX66YfgtqvTJ3t7k1LOMvc0y2W1N7QKXUuhWaYNNY3ucu6bVrJ5FUlHyDgbwdl6zDus4Gj/aA2sfwtScYDfjVZWlh16QCYRFP8B4A6yg03KVIajOFyuclMqWFWych22paFlx8XsJGV/Sp9Y1IM2MGe0YCo14bRLPXr28gYm8/WXd7FuYStJ6vh4cCX+EPyxNsmdj3vuUnzA/zDbdNPRD/vUqsizVFx5Fx6sF0/QaUWTlHsZVbe5g5gCWOtj8f6ejXdy1kqtPnZ+KK8dK1QnZQF+Of34YTwi4zcfP9r/nH344efxIGrffPy4hUzJ1SmFIPSC4+790i4oNjNtnK22En2dCwZDfsEH4MObLQ59uh/tBofDdRS9kQw3YVMs1VBygzEBhjSQmhEqa9RU9YqrnaEfV9FQpo2M3fCuHLcjytjjC72GfbJCnUb9k5gc3Ehx5YJO4QK38FFvcR3nFrqc5/SahWwmbekKw3tyX2+urkvOCvSUMZFLrAGuiGCLVOHjgmnoBXWN8nFeMiog2TcFfShO+7b5k0RLlxj5XS+B0kri4Nr25nuQ4W/MoUzYjYtfTlnOh+Th5pFFPhi63xA9l1XVCIdrDL2V10x5puWiR1QaTu1iR1w/b/fTnYJT/LAhf6MbD+2tondgkluPE5rxa2bvFeftg+p/0qtNulXbPYKGmNWPIC38wqf867mvz1Dn+/niDAITSzzIi9ju4AiNvKNLpjLC6+ujkf3/F/b/NctHpObViDCT/+H01nVqq13HQMAIFfQSbSjbohdCzk4/nJJz16effIDZyBOv1C0Wi8yCkUk128PkD6j0tuc7++8ifP0H2Ze5qcqO55OQC0NFQVUBKPcVW/y3cHC5JrTkM4FFAPC0fWDmh1IuLN/rjKfhube0QI4hsojGpZwNrW9wD14MELqiQt+izcHtemlA9QwdTmG02y69XWjDaFvOhZGfcPzY+pYMGeAlpT0f5ElT1CNi8hrPyC7PqxoOR/b0D3c81p4Pk9cDASA1dubYoq57iqhGhoq+sGhWR60+60dNuFFU8XLp0qSwbE+6Q3MuZhpFhornSvo0HdxyWmrZZnrGL+urZc1GhOe/panLU5qziZRXI2IW3BiMVYu5preMam4aJ7i0RV2vmSg6ELapQyEvl+WysIKFczWHhFEUEPYKe1OcnWP0vk7Bs8SoIfpnwZXP1f7j2RTX0R7lVZ/2PMfaiq7zMlxzfhp05xD2JQML0YiUwCd+pbnd+HDq/ev/sxAMBvcehguu2NZK2b32g3v9wct7RtHplOcdBH5kVhzF1NhW5D7pXEV/R7iYyKZ3Rf0dkY0Z/oELw1SqXOIPln0N/tAIKEkxUIO7onUdVXF2hWWtnLwLfe9I1aYLupK8oyAIg6iVMhasHObPuh3nO03AsW6Rds3ZYqgS+DAUHr1SkZopXjHD1GqoOhwkgrALVQKO/S/EDYZEdj/VsMzlNqtHeVOpFlQVrLjcTlBq1KMpJFm7rLToJ6es10p+GTYEHXx/mB1kB9nhUGlpUJ7M8nJ7aROnUBYHSy4D7KCTRh1zzs6xHrC7AqiT52hYV5eBktaLl6p/WTBfUGKkLHfpTEhteE60kybjzpspFZdy0bVCvGNUCcxxpia4L2bczJsJOC7sFkNd+r2AyF1e7Oqa5YM78d3Byfznv9cfjt7+/fsfn7//y97x/Ez96/lv+dG//fPv+3/6bhNr+BaaNt1oXEXLI1wf4PUB3E+kVYg9fxwomDN2PZDga1fJMe6Q5Z/76jkjMvYirvsJSZsroptqEKHPXhwPXLn36Qh1Iy7c6HfGhvt+AB/tLwMYCT/eiJPDo9QO0wmx9UHF6dMNM39EGK2fLF+znNPS89RRyBbFpIlWGHZZu6ERbsEMy83IjwyvY2L9zWPten3O3SJRjUEvc3vxlpK80UZWIeUHx4HOyJDV4dbVyfCXYspnUMHWSKIacYt1ajk1dqKoyKlPO5pyxRa0LPXI3uyq0YgXg9SzVytYDwzi01T8XRVdg5oJLZUekQWbJDNHw0PERSm1JkODWnydnr93a3fmML/FsT2MluUac5iTjXBYiOKgYjlCVOKqdNhf7QsZ4B7r9tJfg8puQQHy3lmjf2tYg0OSN5/eQe6ZFEAK/opwZYbSthWORkJNHyiIWDAoA+9WD40gN2rn0uU/X6/fYC96/iu2iwxU0pv8a2a3rYaip7E+GAyBBeIUSWvpATDu19pnXW5JC0fHx96WSFWcllu2DAYwcDYXy9UHZmu5TPO0TXzYHl9E96bywUy5nDfLIv2d5i2O7WjLmums7zZMBht7lUCNR2Ts2bD9Oy80/KfWrub4lyX8RZYlvozM3P6tZcjD3kc/7GP20GP20GP20GP20KYLe8weesweesweesweesweesweeggkPmYPPWYPPWYP3TV7SKoZFc4h6j70Glv/l80D5eJh/XXMhOL5HNEHdrtVLdeqmoqlvXQRMWHgWJPuxLdlacvZOStrKOtKlaJi5hu8GNdSKOoOQwUGKUL4mesf6UJCw7zxYu4SZbzNALp4l7pi/N+yFlmMsyyluE7j6xWWgc1p7b7WgL4lYKUVYMgCMKj/97T/Ad3/FhQ0oPE/LBU9gKa/Us9/sGOwXr+/zfI20e1XaPYPAHZfp7897LfS51dq8/dZTF+PX7eK++nwD5kqtlZ3v81GbK7k9rT2+0C9Vl+/Dfwb6epRABl0EnRQIus+Tx7epTX8SoYdOlRnK76kor3loWUXBN14j1rSKQ7i30PHa17sJZzIhfzEaQ14r/iWnFnNizGRU8ME0YYutY8b842psce8VaajmKRc1hxNClADs5QTWkbtDT3IkcB2m/tg49p8m8cVnAf8pFzddb/T868r2HhweqZJzJmC1hvEisMMSsTNFK2cnK6I5hUv6XAY1eBC6kGEPkBir19FTaG2IB/qO0HV7DaZfHfCIlWzpur01rN/3tOlVXJQNkZyrZU0LDfg1ueGX7Nhz2KE0n/f0Xq+MyI7u6X9fyvo2P/6rm8vdv6jv2j2heUNdEba1tJPJ9BBg2EyjjuHngm00w+uaK/Ram/Cxd4gtQD32/aOwSQDgbF2BfDbCHO88CAY33yH6rBGjMF9RQWGaccdi1IPVlT4kFAyUXKhwY/qU+UcMB6HCzYhNXT08Z03rWgtBnuqQGPBIrvP6WrT3g+PNvYRQjuls9cP34invYcP9w9e7O4/3z189mn/+GT/+cmzo+z4+bN/2/A6/uRaMyVk6drzDIC9kOqKi9klxnYNdk6/izSxN5cV26Nl3L/gRrAdLCTA4i2v4cpORAdnXU9Fh4/Jw01Fh7YrHMMG3L6w95TmvOTGigA1v5ZAuFTJRhT25ucMOyhgO2E/HPjQ4Tfd7a/iMgk0Y9D4u6JiaVWinIVwHPIpnjSMiQ0fwcePinA1IpDjFwKx8RBxJwHoWgqQ4l3aZCvajh3assj7fgo9dxUzLG5d2gbFMD2KElInjDSiYApU0RD4pEYuAHYUR7+OSF5y6MjjX7LijI/6iyOMM3KGjXfcsmhZQuiskS3IvB6PUDCjICkJhxdACnXpKWfnxCh+zWlZLkdESFJRYyBjEiIhDExAFTTPXIb4/niSE5pNsjwrxnepzz4QmrTyAG0annRahnxvixIgH+mLw0bJ31FgTC8i8uIO8ZDuo4G0VEdhUMc2imvPpRAuoQCYP0akKTajqsCQPg2dV0bRm5gWM+EhutTKs5jMlktVaOya9+nVeWgVhH2JPWQITs64/bfDEhcc2hNe/OWDi2h9okNfCztUOz0OjzV5Q/5ddw5X/L1c9hffyZoQ2rd+BzbgQhEJzU3jTazYAY6piuyEkXawi8DUxfX4mUUHWO0rcMPPTmXx9uCB9F1flTdHxqU7g8ewu+62F8nQFNqsI+RtcCSHwNFfG5G3ehAec/fd0DAtCoU00WCWTnCLdtGg3uvV/AqH3vOApy05UGWjheXdFRWG5z5/wrtdv2BbiFHb2tsqeNOmtC9cc7s8/juLrMCC5EyB/tgmi3n2pMLoU1qWOrSEzKlhM6mWyJ9chrU2vCwJE9CkGl5bkSNgETTloHPQulayVhzaSd+BATmWvS0xEgPEsOcfbke4IzD93vOJasJnjWx0uUSade0ReSecRQedC0LSwOM9ItSXpQe+3kBBe2lpJCPkLy1+sYZ7Op6RLqdP0UWbRIK0Ps7cg7F3qndlEGEviDY/vmgwSBc1mLG9gCxI4wzBG9u7zt5WUPDAtWhIhoSmsFakGDKfbz+K1UePJq+9wju845UgZ+fXR/bB2fn1i3ZTB+C+RSLwLRRaqcxKqL9+6PFKEHDjtwGFY5k4QfY3ypVps6qOjzYD+8+QPAO9b9qEWBdTinodXg1DhHSfTJYW0g2Vt3OX2XInUB/DiR7Difqregwnegwn2hSJj+FEj+FEj+FEdw0ncqU4+iaN9uHmgR2+rkdXfzbxb1JBcI+9N9vOaxhjRGNvXFlC5MaqQKEpF4UrKud9iVCcBy1W/o6P7Hw4vf2ik/d0zyaBD9ZhKwrK8cUaGyHQugPAD3bZLrxWhQ23ytBldYlU6L/F1yt6xbRVnGqpNU+dOQQqx6XYjBJjcedEVMxxGKzQo8ubHRWDMBzFmcjBP6F1wzRaN+x4ihV2Ia7pH+j5yYBWjHOxYL6TNi986++QkSmKdv/RIsDFDBqOumaC3wzJuMWzl+w5m0zZPmUv8qPvXx4WE/b9dP/g5RE9ePHs5WRyfHj0cjpQuulemYqtU4KVVBueo7l1161mQ49ELPR4+m4T19z5WZG7FvO08DFks7kGf9DFFwy/oWZWKRcauNtCJsN5FLdKHjS68ydOtYTsW13a310zsJQAkSuLxPeFQYOuW97YE53ANm/J56cl1iZ0oFpSKLg2ik8aO4QvhYT0oRqw9QY1fS610cSkS2uPA9onvZ3OLxhLjLhlDXi+XcU5KGYjp+RNvNsx6mE5Luncx1ig3tRo00lUQzfhD1KRPzNqdH8Yri22CjalTWmg1kUdPD4Bf5Y0x8m4zqMxJUISP07oVvjQTeZWnIDb+OKi3M1bUz987H0urqAAdmMduFISJmjvLdkhWz+9HXUNN4TBOlnkKaQpgYw6uxVqbiUzjBMEjoc9qGYrKbSvXAdGmKCzF7cJBrs1zTzLDrNNW+n9iw+1S0klljpuopeW+0EZK3llRUvqIpOZwabRqeDRRvhNCR0ilgH8sHrOKqZoucWqOm/8HD1xo5UVyBM+hZuZfeHadHLzWrmj7QULbgBNaK6k1kQx8Iq7inOBhHkxJoWE7rfDdf6P6dH0+f7+tCOggmG/I5/GzzYTT/GTTTw7oX0/dXa0vaQOa3eozT05sV/CuXNuL4F+RS+E86g8eiH+uF4ILA30P80L0YX6b+CFWAXCFr0QeJz+V3ghcCnOtB+XovqDuiJuAe+jP+LRH9Ff1aM/4tEfsSkSH/0Rj/6IR3/EbfwRib7XqDJV9j5/fLdetfv88Z2/YWslr3nBsL5rXTLD7K+YOEh0blXfkYuuhcqx1MzvoIOt7tjzUEm62AeGFW0rnUZBZVsf4GzmqZrW2aAP0ri4OC4GKkCO4oJnBSCwwrwSip1rLNKSASHGl4KmRXOIfC/lzFGb/Zxrl2/1a6NNG0joi3wiovtWhNB7JsSFh0/D0BT8FQuqA8CjsLtdqWiVaSHFb9x7whnPslyeHB0920Mj2j/+9qfEqPatkbUdfsXPW0hBXacGTsMeoU7OK6uyOfxBJGWj0eQ8QrbSKrwhjT4ZcdyoMrNjjkd2oyFi1yTbo1guhTaqARuZVMRvEpJiesITshzYjDuhf8CqCcd5a4YQGL3T3G4UWhTswCJ2Bo7dCaYinox9S6WaRqovjLoaK5srpA+zytfODLNqlekWdZd7JjCjyZKaPeWej7hwa+n0EFe3FRoIYCx6uWxzuVPjqLMLoYsDnCfQ/8KRclLZHGh6JkOfL2ez6as9AcXpaja1fKxOMhCGzRLfzIYGkB6ej46eDfcNPXo2pFGb+bbo4RzaYK2iBnc8dwbUZsj22BZU9kDBBI4hBUEG4MRfMAe6C3syTFhHh710yRrO7z/C+WVfoO5y1BAgng1C15HsfRu4ZCAh7ThAuaFUaLQO+Dz8RmHOSWPCWyn0poMEtM23vcKq2rRwwRLwjdTHhyN0HF+Jp5VMmFkw1zXALCSe7qHaBIrOqi22rLUnJvLbgAA0NS6PY/ztOCJMI+vBTfx2kAl7wAfW1Gimtpkj/dmN36HTQbuZ1p1xH/ik4/jDkMT46Ejj+pa5TnYjIJag63oZrvkCr6LkCv3N2TWNSMxI0oq+me8zGnopgs8KtNrY8m2fcIaJJu1tAxPNqcY+DWZOBVrzi1GrRQgoR7T0kjTwAnAFEjltYZpvWJnGqOamwjQYJp08isyVyfNeuZqBkjap7+xvHeb0c8cj0XTDnoJ53u7NwJl4mJAbWk5Ycs+vkwLn9tr2VQpKOWuFpRUwWjG6a2O6R7rvKQBL3kCrtkQOvIHLfKdRS3DFZ6aEXlNeYv58D2hWUb49bdYeNJjBy24DEMyp3ppQ48Lr/IGfp2FuMRtCFz68CJXGpFhW0L3KvtK5YD5rNm1Ki9kxkAKUHFHuHxCcFAJ5oBkEUDktU7bX6diUU2EvK3c1D3knOrZ775/oPL59gW6MfYlc2gMKObzjgqcgqMtxZyeB95XAO/keVnCh9VSxjjJuWD1ZWxUN8eLD1iDpc8+X2sqGwe5ZHLcIeOxmAFAH7u+0hFl7i5P4+e3uchzSk0sbB2KVQVedxxel8HKF/XaJNqIwnJ7LhevqvGCTEH0CYVJR4X2sVECVlVabAHioehQj8Q9ivnPAXqeRRy3mBpW9nffyd16WdO95tk+e8PO5FOwfyKvzzwT/Tn6+IAeHlwfYrtEXVHtKTuu6ZL+wyU/c7L3Yf54dZAfPyZOf3n56/26E7/7I8iv51AdC7R0cZvvkvZzwku0dPH9zcHRMLuiUKr73Yh+qa2148d7lPsOJNsNjTNztvt+iVcbDbOe/9HexC0niqc72B6w4LERnPgwekSRuj0cHyMCheGwB8dgCIsLaYwuIxxYQjy0gVm7Q/3ctIL4NLTKthhK3OPuWfPr59c8nQ30unZl1j+V6D7N+9g5eHicSKt6kndZfQyhYsaZuYy93M3+zaz8/IRNGLdt2F9qf8V8DQ71y9lvoCyoFfBfUIa85g1JYukIqrrHTN2k/txC7x6jJDK/Y7+01jauiJQ9pbjU18xOnK3VervhMUYQQ7EbJ6DhjMqyc/Mpyf0PhPy5vgcawfhBvfPdCWLQPVU4gYEqFJmn9u3DFJG/sRx0pAMrnFAV39YmsTADB0y5hBuYJcdKrOud1MlHuEhYPoEX5G8lG9kizv4mWguP31u4fDDpI8/2BBw9Id3RH7Xkpm6Il91f2n96aCWkntKCGDp+A9+5XVLny5FNtt6jNwaJFcQkvXPohfSE5qeIDkawZPshqJS1ptvUFA09zv+x+WU9DsTDrPrH08qOUs5LhigPHOrXIxLTFsogPTQg4ZoZmATBY6g27Mfjy2r2O5vBpY216x/ppQupieP/WM21AYJ25NqXhaDaXyXcZHcP1k7kPsuiDTedyzJiX3CwvN2Cu67/adFZHaZtuXI/KN50H4+o2miN5dQU/KGR+BVTqGMJr/++Bw4W/QSpXNx/K/WaPtp5LZS7xfmjVLSryuVR+vt3ADFZcjgEsstZw4498HL1LuQBba4/bx2iKUDX8yeB2rJiqorP+3XLjbParrrp/i1k7X2426d2nK+mElboV5d7KBTGSVLS2fFazf+zBkogbZL3IQW6IZ7K4IghC5inX6eGObt/ivwYGObPyQkStzmxrP/cJxllEoPb5IHm6G+PNq4vYCM5DohbLdbasyiDxQkkC6lKRhBS77Zdp84zIoHALE2XYGv77gF1oImXJ6IbOIIwxQIxAmEG77UNWoGzS8PKWVfmPXx/sf795XwGYIa1R7Xb9qplYXQRzVtze/xQ/Gxi4/T0IOKm00g5K4p1fz8naj27kZgnQ6/e5i+5aFsNH/VYHKMJALQs0zAxO1QzwzbvOdC4L8vns9bCtWNc0f7hFtSP2J5NFj83eczJvWulPhizqZla42USO51Z0ILQR3IBYHvOhpouGHJ7zhsvnrvgMw65A6k037f3nxXEdh2m7YvQ6YgyM60u7B8YSdIghRtDpuLExF2BfNr3rfbnuwVr8q3RCMGhESqH/9wZWkFsaQLpSreK5ZiarZNEESNd4FmMzDn6DvmYscAv5cCH05wYRGV9KJr5JBHfARsS/Kaj+2zXQDtFJVs866kSU/bhibk+Q6JYOzSk6xZyyNEl8VRHqNCXWSUuumnenKoyr34KVYMIIGIhYUaw8PGEhKnwxd/GDAwUWINekXK6AvGPnWGP0S/dgE+DTGSPdU7HfGq5YkYRoBfkm7O8N+LR0UcgcunagJYmcQgI7lIgwkuwUMt/Jvvl/AQAA//8Dx5iL" + return "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" } diff --git a/packetbeat/docs/fields.asciidoc b/packetbeat/docs/fields.asciidoc index 09ce8a053a9..660b353d06d 100644 --- a/packetbeat/docs/fields.asciidoc +++ b/packetbeat/docs/fields.asciidoc @@ -448,6 +448,15 @@ Contains common beat fields available in all event types. +*`agent.hostname`*:: ++ +-- +type: keyword + +Hostname of the agent. + +-- + *`beat.timezone`*:: + -- @@ -2234,8 +2243,7 @@ Image labels. [[exported-fields-ecs]] == ECS fields -ECS fields. - +ECS Fields. *`@timestamp`*:: @@ -2248,22 +2256,10 @@ example: 2016-05-23T08:05:34.853Z required: True Date/time when the event originated. -For log events this is the date/time when the event was generated, and not when it was read. +This is the date/time extracted from the event, typically representing when the event was generated by the source. +If the event source has no original timestamp, this value is typically populated by the first time the event was received by the pipeline. Required field for all events. - --- - -*`tags`*:: -+ --- -type: keyword - -example: ["production", "env2"] - -List of keywords used to tag each event. - - -- *`labels`*:: @@ -2273,11 +2269,10 @@ type: object example: {'application': 'foo-bar', 'env': 'production'} -Key/value pairs. +Custom key/value pairs. Can be used to add meta information to events. Should not contain nested objects. All values are stored as keyword. Example: `docker` and `k8s` labels. - -- *`message`*:: @@ -2287,28 +2282,51 @@ type: text example: Hello World -For log events the message field contains the log message. -In other use cases the message field can be used to concatenate different values which are then freely searchable. If multiple messages exist, they can be combined into one message. +For log events the message field contains the log message, optimized for viewing in a log viewer. +For structured logs without an original message field, other fields can be concatenated to form a human-readable summary of the event. +If multiple messages exist, they can be combined into one message. + +-- + +*`tags`*:: ++ +-- +type: keyword + +example: ["production", "env2"] +List of keywords used to tag each event. -- [float] == agent fields -The agent fields contain the data about the software entity, if any, that collects, detects, or observes events on a host, or takes measurements on a host. Examples include Beats. Agents may also run on observers. ECS agent.* fields shall be populated with details of the agent running on the host or observer where the event happened or the measurement was taken. +The agent fields contain the data about the software entity, if any, that collects, detects, or observes events on a host, or takes measurements on a host. +Examples include Beats. Agents may also run on observers. ECS agent.* fields shall be populated with details of the agent running on the host or observer where the event happened or the measurement was taken. - -*`agent.version`*:: +*`agent.ephemeral_id`*:: + -- type: keyword -example: 6.0.0-rc2 +example: 8a4f500f -Version of the agent. +Ephemeral identifier of this agent (if one exists). +This id normally changes across restarts, but `agent.id` does not. + +-- + +*`agent.id`*:: ++ +-- +type: keyword + +example: 8a4f500d +Unique identifier of this agent (if one exists). +Example: For Beats this would be beat.id. -- @@ -2319,11 +2337,10 @@ type: keyword example: foo -Name of the agent. +Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. If no name is given, the name is often left empty. - -- *`agent.type`*:: @@ -2336,43 +2353,27 @@ example: filebeat Type of the agent. The agent type stays always the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - --- - -*`agent.id`*:: -+ --- -type: keyword - -example: 8a4f500d - -Unique identifier of this agent (if one exists). -Example: For Beats this would be beat.id. - - -- -*`agent.ephemeral_id`*:: +*`agent.version`*:: + -- type: keyword -example: 8a4f500f - -Ephemeral identifier of this agent (if one exists). -This id normally changes across restarts, but `agent.id` does not. +example: 6.0.0-rc2 +Version of the agent. -- [float] == client fields -A client is defined as the initiator of a network connection for events regarding sessions, connections, or bidirectional flow records. For TCP events, the client is the initiator of the TCP connection that sends the SYN packet(s). For other protocols, the client is generally the initiator or requestor in the network transaction. Some systems use the term "originator" to refer the client in TCP connections. The client fields describe details about the system acting as the client in the network event. Client fields are usually populated in conjunction with server fields. Client fields are generally not populated for packet-level events. +A client is defined as the initiator of a network connection for events regarding sessions, connections, or bidirectional flow records. +For TCP events, the client is the initiator of the TCP connection that sends the SYN packet(s). For other protocols, the client is generally the initiator or requestor in the network transaction. Some systems use the term "originator" to refer the client in TCP connections. The client fields describe details about the system acting as the client in the network event. Client fields are usually populated in conjunction with server fields. Client fields are generally not populated for packet-level events. Client / server representations can add semantic context to an exchange, which is helpful to visualize the data in certain situations. If your context falls in that category, you should still ensure that source and destination are filled appropriately. - *`client.address`*:: + -- @@ -2381,83 +2382,72 @@ type: keyword Some event client addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. - -- -*`client.ip`*:: +*`client.bytes`*:: + -- -type: ip +type: long -IP address of the client. -Can be one or multiple IPv4 or IPv6 addresses. +example: 184 +Bytes sent from the client to the server. -- -*`client.port`*:: +*`client.domain`*:: + -- -type: long - -Port of the client. +type: keyword +Client domain. -- -*`client.mac`*:: +*`client.geo.city_name`*:: + -- type: keyword -MAC address of the client. +example: Montreal +City name. -- -*`client.domain`*:: +*`client.geo.continent_name`*:: + -- type: keyword -Client domain. +example: North America +Name of the continent. -- -*`client.bytes`*:: +*`client.geo.country_iso_code`*:: + -- -type: long - -example: 184 - -format: bytes +type: keyword -Bytes sent from the client to the server. +example: CA +Country ISO code. -- -*`client.packets`*:: +*`client.geo.country_name`*:: + -- -type: long - -example: 12 +type: keyword -Packets sent from the client to the server. +example: Canada +Country name. -- -[float] -== geo fields - -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. - - - *`client.geo.location`*:: + -- @@ -2467,30 +2457,29 @@ example: { "lon": -73.614830, "lat": 45.505918 } Longitude and latitude. - -- -*`client.geo.continent_name`*:: +*`client.geo.name`*:: + -- type: keyword -example: North America - -Name of the continent. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`client.geo.country_name`*:: +*`client.geo.region_iso_code`*:: + -- type: keyword -example: Canada - -Country name. +example: CA-QC +Region ISO code. -- @@ -2503,274 +2492,274 @@ example: Quebec Region name. - -- -*`client.geo.city_name`*:: +*`client.ip`*:: + -- -type: keyword - -example: Montreal - -City name. +type: ip +IP address of the client. +Can be one or multiple IPv4 or IPv6 addresses. -- -*`client.geo.country_iso_code`*:: +*`client.mac`*:: + -- type: keyword -example: CA - -Country ISO code. - +MAC address of the client. -- -*`client.geo.region_iso_code`*:: +*`client.packets`*:: + -- -type: keyword - -example: CA-QC +type: long -Region ISO code. +example: 12 +Packets sent from the client to the server. -- -*`client.geo.name`*:: +*`client.port`*:: + -- -type: keyword - -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +type: long +Port of the client. -- -[float] -== cloud fields - -Fields related to the cloud or infrastructure the events are coming from. - - - -*`cloud.provider`*:: +*`client.user.email`*:: + -- type: keyword -example: ec2 - -Name of the cloud provider. Example values are ec2, gce, or digitalocean. - +User email address. -- -*`cloud.availability_zone`*:: +*`client.user.full_name`*:: + -- type: keyword -example: us-east-1c - -Availability zone in which this host is running. +example: Albert Einstein +User's full name, if available. -- -*`cloud.region`*:: +*`client.user.group.id`*:: + -- type: keyword -example: us-east-1 - -Region in which this host is running. - +Unique identifier for the group on the system/platform. -- -*`cloud.instance.id`*:: +*`client.user.group.name`*:: + -- type: keyword -example: i-1234567890abcdef0 - -Instance ID of the host machine. - +Name of the group. -- -*`cloud.instance.name`*:: +*`client.user.hash`*:: + -- type: keyword -Instance name of the host machine. - +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -- -*`cloud.machine.type`*:: +*`client.user.id`*:: + -- type: keyword -example: t2.medium - -Machine type of the host machine. - +One or multiple unique identifiers of the user. -- -*`cloud.account.id`*:: +*`client.user.name`*:: + -- type: keyword -example: 666777888999 - -The cloud account or organization id used to identify different entities in a multi-tenant environment. -Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. +example: albert +Short name or login of the user. -- [float] -== container fields - -Container fields are used for meta information about the specific container that is the source of information. These fields help correlate data based containers from any runtime. +== cloud fields +Fields related to the cloud or infrastructure the events are coming from. -*`container.runtime`*:: +*`cloud.account.id`*:: + -- type: keyword -example: docker - -Runtime managing this container. +example: 666777888999 +The cloud account or organization id used to identify different entities in a multi-tenant environment. +Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. -- -*`container.id`*:: +*`cloud.availability_zone`*:: + -- type: keyword -Unique container id. +example: us-east-1c +Availability zone in which this host is running. -- -*`container.image.name`*:: +*`cloud.instance.id`*:: + -- type: keyword -Name of the image the container was built on. +example: i-1234567890abcdef0 +Instance ID of the host machine. -- -*`container.image.tag`*:: +*`cloud.instance.name`*:: + -- type: keyword -Container image tag. +Instance name of the host machine. +-- +*`cloud.machine.type`*:: ++ -- +type: keyword -*`container.name`*:: +example: t2.medium + +Machine type of the host machine. + +-- + +*`cloud.provider`*:: + -- type: keyword -Container name. +example: aws +Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. -- -*`container.labels`*:: +*`cloud.region`*:: + -- -type: object +type: keyword -Image labels. +example: us-east-1 +Region in which this host is running. -- [float] -== destination fields - -Destination fields describe details about the destination of a packet/event. Destination fields are usually populated in conjunction with source fields. +== container fields +Container fields are used for meta information about the specific container that is the source of information. +These fields help correlate data based containers from any runtime. -*`destination.address`*:: +*`container.id`*:: + -- type: keyword -Some event destination addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. -Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. - +Unique container id. -- -*`destination.ip`*:: +*`container.image.name`*:: + -- -type: ip +type: keyword -IP address of the destination. -Can be one or multiple IPv4 or IPv6 addresses. +Name of the image the container was built on. +-- +*`container.image.tag`*:: ++ -- +type: keyword -*`destination.port`*:: +Container image tag. + +-- + +*`container.labels`*:: + -- -type: long +type: object -Port of the destination. +Image labels. + +-- + +*`container.name`*:: ++ +-- +type: keyword +Container name. -- -*`destination.mac`*:: +*`container.runtime`*:: + -- type: keyword -MAC address of the destination. +example: docker +Runtime managing this container. -- -*`destination.domain`*:: +[float] +== destination fields + +Destination fields describe details about the destination of a packet/event. +Destination fields are usually populated in conjunction with source fields. + + +*`destination.address`*:: + -- type: keyword -Destination domain. - +Some event destination addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. +Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. -- @@ -2781,31 +2770,62 @@ type: long example: 184 -format: bytes - Bytes sent from the destination to the source. +-- + +*`destination.domain`*:: ++ +-- +type: keyword + +Destination domain. -- -*`destination.packets`*:: +*`destination.geo.city_name`*:: + -- -type: long +type: keyword -example: 12 +example: Montreal -Packets sent from the destination to the source. +City name. +-- +*`destination.geo.continent_name`*:: ++ -- +type: keyword -[float] -== geo fields +example: North America -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. +Name of the continent. +-- +*`destination.geo.country_iso_code`*:: ++ +-- +type: keyword + +example: CA + +Country ISO code. + +-- + +*`destination.geo.country_name`*:: ++ +-- +type: keyword + +example: Canada + +Country name. + +-- *`destination.geo.location`*:: + @@ -2816,30 +2836,29 @@ example: { "lon": -73.614830, "lat": 45.505918 } Longitude and latitude. - -- -*`destination.geo.continent_name`*:: +*`destination.geo.name`*:: + -- type: keyword -example: North America - -Name of the continent. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`destination.geo.country_name`*:: +*`destination.geo.region_iso_code`*:: + -- type: keyword -example: Canada - -Country name. +example: CA-QC +Region ISO code. -- @@ -2852,56 +2871,112 @@ example: Quebec Region name. +-- +*`destination.ip`*:: ++ -- +type: ip -*`destination.geo.city_name`*:: +IP address of the destination. +Can be one or multiple IPv4 or IPv6 addresses. + +-- + +*`destination.mac`*:: + -- type: keyword -example: Montreal +MAC address of the destination. -City name. +-- +*`destination.packets`*:: ++ +-- +type: long + +example: 12 + +Packets sent from the destination to the source. -- -*`destination.geo.country_iso_code`*:: +*`destination.port`*:: ++ +-- +type: long + +Port of the destination. + +-- + +*`destination.user.email`*:: + -- type: keyword -example: CA +User email address. -Country ISO code. +-- +*`destination.user.full_name`*:: ++ +-- +type: keyword + +example: Albert Einstein + +User's full name, if available. -- -*`destination.geo.region_iso_code`*:: +*`destination.user.group.id`*:: + -- type: keyword -example: CA-QC +Unique identifier for the group on the system/platform. -Region ISO code. +-- +*`destination.user.group.name`*:: ++ +-- +type: keyword + +Name of the group. -- -*`destination.geo.name`*:: +*`destination.user.hash`*:: + -- type: keyword -example: boston-dc +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +-- +*`destination.user.id`*:: ++ +-- +type: keyword + +One or multiple unique identifiers of the user. + +-- + +*`destination.user.name`*:: ++ +-- +type: keyword + +example: albert + +Short name or login of the user. -- @@ -2911,29 +2986,35 @@ Not typically used in automated geolocation. Meta-information specific to ECS. - *`ecs.version`*:: + -- type: keyword -example: 1.0.0-beta2 +example: 1.0.0 required: True ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. -The current version is 1.0.0-beta2 . - -- [float] == error fields -These fields can represent errors of any kind. Use them for errors that happen while fetching events or in cases where the event itself contains an error. +These fields can represent errors of any kind. +Use them for errors that happen while fetching events or in cases where the event itself contains an error. + + +*`error.code`*:: ++ +-- +type: keyword +Error code describing the error. +-- *`error.id`*:: + @@ -2942,7 +3023,6 @@ type: keyword Unique identifier for the error. - -- *`error.message`*:: @@ -2952,98 +3032,113 @@ type: text Error message. - -- -*`error.code`*:: +[float] +== event fields + +The event fields are used for context information about the log or metric event itself. +A log is defined as an event containing details of something that happened. Log events must include the time at which the thing happened. Examples of log events include a process starting on a host, a network packet being sent from a source to a destination, or a network connection between a client and a server being initiated or closed. A metric is defined as an event containing one or more numerical or categorical measurements and the time at which the measurement was taken. Examples of metric events include memory pressure measured on a host, or vulnerabilities measured on a scanned host. + + +*`event.action`*:: + -- type: keyword -Error code describing the error. +example: user-password-change +The action captured by the event. +This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. -- -[float] -== event fields +*`event.category`*:: ++ +-- +type: keyword -The event fields are used for context information about the log or metric event itself. A log is defined as an event containing details of something that happened. Log events must include the time at which the thing happened. Examples of log events include a process starting on a host, a network packet being sent from a source to a destination, or a network connection between a client and a server being initiated or closed. A metric is defined as an event containing one or more numerical or categorical measurements and the time at which the measurement was taken. Examples of metric events include memory pressure measured on a host, or vulnerabilities measured on a scanned host. +example: user-management +Event category. +This contains high-level information about the contents of the event. It is more generic than `event.action`, in the sense that typically a category contains multiple actions. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. +-- -*`event.id`*:: +*`event.created`*:: + -- -type: keyword - -example: 8a4f500d - -Unique ID to describe the event. +type: date +event.created contains the date/time when the event was first read by an agent, or by your pipeline. +This field is distinct from @timestamp in that @timestamp typically contain the time extracted from the original event. +In most situations, these two timestamps will be slightly different. The difference can be used to calculate the delay between your source generating an event, and the time when your agent first processed it. This can be used to monitor your agent's or pipeline's ability to keep up with your event source. +In case the two timestamps are identical, @timestamp should be used. -- -*`event.kind`*:: +*`event.dataset`*:: + -- type: keyword -example: state - -The kind of the event. -This gives information about what type of information the event contains, without being specific to the contents of the event. Examples are `event`, `state`, `alarm`. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. +example: stats +Name of the dataset. +The concept of a `dataset` (fileset / metricset) is used in Beats as a subset of modules. It contains the information which is currently stored in metricset.name and metricset.module or fileset.name. -- -*`event.category`*:: +*`event.duration`*:: + -- -type: keyword +type: long -example: user-management +Duration of the event in nanoseconds. +If event.start and event.end are known this value should be the difference between the end and start time. -Event category. -This contains high-level information about the contents of the event. It is more generic than `event.action`, in the sense that typically a category contains multiple actions. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. +-- +*`event.end`*:: ++ +-- +type: date + +event.end contains the date when the event ended or when the activity was last observed. -- -*`event.action`*:: +*`event.hash`*:: + -- type: keyword -example: user-password-change - -The action captured by the event. -This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. +example: 123456789012345678901234567890ABCD +Hash (perhaps logstash fingerprint) of raw field to be able to demonstrate log integrity. -- -*`event.outcome`*:: +*`event.id`*:: + -- type: keyword -example: success - -The outcome of the event. -If the event describes an action, this fields contains the outcome of that action. Examples outcomes are `success` and `failure`. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. +example: 8a4f500d +Unique ID to describe the event. -- -*`event.type`*:: +*`event.kind`*:: + -- type: keyword -Reserved for future usage. -Please avoid using this field for user data. +example: state +The kind of the event. +This gives information about what type of information the event contains, without being specific to the contents of the event. Examples are `event`, `state`, `alarm`. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. -- @@ -3057,71 +3152,68 @@ example: mysql Name of the module this data is coming from. This information is coming from the modules used in Beats or Logstash. - -- -*`event.dataset`*:: +*`event.original`*:: + -- type: keyword -example: stats - -Name of the dataset. -The concept of a `dataset` (fileset / metricset) is used in Beats as a subset of modules. It contains the information which is currently stored in metricset.name and metricset.module or fileset.name. +example: Sep 19 08:26:10 host CEF:0|Security| threatmanager|1.0|100| worm successfully stopped|10|src=10.0.0.1 dst=2.1.2.2spt=1232 +Raw text message of entire event. Used to demonstrate log integrity. +This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. -- -*`event.severity`*:: +*`event.outcome`*:: + -- -type: long - -example: 7 +type: keyword -Severity describes the severity of the event. What the different severity values mean can very different between use cases. It's up to the implementer to make sure severities are consistent across events. +example: success +The outcome of the event. +If the event describes an action, this fields contains the outcome of that action. Examples outcomes are `success` and `failure`. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. -- -*`event.original`*:: +*`event.risk_score`*:: + -- -type: keyword +type: float -example: Sep 19 08:26:10 host CEF:0|Security| threatmanager|1.0|100| worm successfully stopped|10|src=10.0.0.1 dst=2.1.2.2spt=1232 +Risk score or priority of the event (e.g. security solutions). Use your system's original value here. -Raw text message of entire event. Used to demonstrate log integrity. -This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. +-- +*`event.risk_score_norm`*:: ++ +-- +type: float -Field is not indexed. +Normalized risk score or priority of the event, on a scale of 0 to 100. +This is mainly useful if you use more than one system that assigns risk scores, and you want to see a normalized value across all systems. -- -*`event.hash`*:: +*`event.severity`*:: + -- -type: keyword - -example: 123456789012345678901234567890ABCD +type: long -Hash (perhaps logstash fingerprint) of raw field to be able to demonstrate log integrity. +example: 7 +Severity describes the original severity of the event. What the different severity values mean can very different between use cases. It's up to the implementer to make sure severities are consistent across events. -- -*`event.duration`*:: +*`event.start`*:: + -- -type: long - -format: duration - -Duration of the event in nanoseconds. -If event.start and event.end are known this value should be the difference between the end and start time. +type: date +event.start contains the date when the event started or when the activity was first observed. -- @@ -3133,68 +3225,110 @@ type: keyword This field should be populated when the event's timestamp does not include timezone information already (e.g. default Syslog timestamps). It's optional otherwise. Acceptable timezone formats are: a canonical ID (e.g. "Europe/Amsterdam"), abbreviated (e.g. "EST") or an HH:mm differential (e.g. "-05:00"). +-- +*`event.type`*:: ++ -- +type: keyword -*`event.created`*:: +Reserved for future usage. +Please avoid using this field for user data. + +-- + +[float] +== file fields + +A file is defined as a set of information that has been created on, or has existed on a filesystem. +File objects can be associated with host events, network events, and/or file events (e.g., those produced by File Integrity Monitoring [FIM] products or services). File fields provide details about the affected file associated with the event or metric. + + +*`file.ctime`*:: + -- type: date -event.created contains the date when the event was created. -This timestamp is distinct from @timestamp in that @timestamp contains the processed timestamp. For logs these two timestamps can be different as the timestamp in the log line and when the event is read for example by Filebeat are not identical. `@timestamp` must contain the timestamp extracted from the log line, event.created when the log line is read. The same could apply to package capturing where @timestamp contains the timestamp extracted from the network package and event.created when the event was created. -In case the two timestamps are identical, @timestamp should be used. +Last time file metadata changed. +-- +*`file.device`*:: ++ -- +type: keyword -*`event.start`*:: +Device that is the source of the file. + +-- + +*`file.extension`*:: + -- -type: date +type: keyword -event.start contains the date when the event started or when the activity was first observed. +example: png +File extension. +This should allow easy filtering by file extensions. -- -*`event.end`*:: +*`file.gid`*:: + -- -type: date - -event.end contains the date when the event ended or when the activity was last observed. +type: keyword +Primary group ID (GID) of the file. -- -*`event.risk_score`*:: +*`file.group`*:: + -- -type: float +type: keyword -Risk score or priority of the event (e.g. security solutions). Use your system's original value here. +Primary group name of the file. +-- +*`file.inode`*:: ++ -- +type: keyword -*`event.risk_score_norm`*:: +Inode representing the file in the filesystem. + +-- + +*`file.mode`*:: + -- -type: float +type: keyword -Normalized risk score or priority of the event, on a scale of 0 to 100. -This is mainly useful if you use more than one system that assigns risk scores, and you want to see a normalized value across all systems. +example: 416 +Mode of the file in octal representation. -- -[float] -== file fields +*`file.mtime`*:: ++ +-- +type: date + +Last time file content was modified. -A file is defined as a set of information that has been created on, or has existed on a filesystem. File objects can be associated with host events, network events, and/or file events (e.g., those produced by File Integrity Monitoring [FIM] products or services). File fields provide details about the affected file associated with the event or metric. +-- + +*`file.owner`*:: ++ +-- +type: keyword +File owner's username. +-- *`file.path`*:: + @@ -3205,25 +3339,21 @@ Path to the file. -- -*`file.target_path`*:: +*`file.size`*:: + -- -type: keyword +type: long -Target path for symlinks. +File size in bytes (field is only added when `type` is `file`). -- -*`file.extension`*:: +*`file.target_path`*:: + -- type: keyword -example: png - -File extension. -This should allow easy filtering by file extensions. - +Target path for symlinks. -- @@ -3236,98 +3366,109 @@ File type (file, dir, or symlink). -- -*`file.device`*:: +*`file.uid`*:: + -- type: keyword -Device that is the source of the file. +The user ID (UID) or security identifier (SID) of the file owner. -- -*`file.inode`*:: -+ --- -type: keyword +[float] +== geo fields -Inode representing the file in the filesystem. +Geo fields can carry data about a specific location related to an event. +This geolocation information can be derived from techniques such as Geo IP, or be user-supplied. --- -*`file.uid`*:: +*`geo.city_name`*:: + -- type: keyword -The user ID (UID) or security identifier (SID) of the file owner. +example: Montreal +City name. -- -*`file.owner`*:: +*`geo.continent_name`*:: + -- type: keyword -File owner's username. +example: North America + +Name of the continent. -- -*`file.gid`*:: +*`geo.country_iso_code`*:: + -- type: keyword -Primary group ID (GID) of the file. +example: CA + +Country ISO code. -- -*`file.group`*:: +*`geo.country_name`*:: + -- type: keyword -Primary group name of the file. +example: Canada + +Country name. -- -*`file.mode`*:: +*`geo.location`*:: + -- -type: keyword +type: geo_point -example: 416 +example: { "lon": -73.614830, "lat": 45.505918 } -Mode of the file in octal representation. +Longitude and latitude. -- -*`file.size`*:: +*`geo.name`*:: + -- -type: long +type: keyword -format: bytes +example: boston-dc -File size in bytes (field is only added when `type` is `file`). +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`file.mtime`*:: +*`geo.region_iso_code`*:: + -- -type: date +type: keyword -Last time file content was modified. +example: CA-QC + +Region ISO code. -- -*`file.ctime`*:: +*`geo.region_name`*:: + -- -type: date +type: keyword -Last time file metadata changed. +example: Quebec + +Region name. -- @@ -3337,7 +3478,6 @@ Last time file metadata changed. The group fields are meant to represent groups that are relevant to the event. - *`group.id`*:: + -- @@ -3345,7 +3485,6 @@ type: keyword Unique identifier for the group on the system/platform. - -- *`group.name`*:: @@ -3355,133 +3494,162 @@ type: keyword Name of the group. - -- [float] == host fields -A host is defined as a general computing instance. ECS host.* fields should be populated with details about the host on which the event happened, or on which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes. +A host is defined as a general computing instance. +ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes. - -*`host.hostname`*:: +*`host.architecture`*:: + -- type: keyword -Hostname of the host. -It normally contains what the `hostname` command returns on the host machine. +example: x86_64 +Operating system architecture. -- -*`host.name`*:: +*`host.geo.city_name`*:: + -- type: keyword -Name of the host. -It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. +example: Montreal +City name. -- -*`host.id`*:: +*`host.geo.continent_name`*:: + -- type: keyword -Unique host id. -As hostname is not always unique, use values that are meaningful in your environment. -Example: The current usage of `beat.name`. +example: North America +Name of the continent. -- -*`host.ip`*:: +*`host.geo.country_iso_code`*:: + -- -type: ip +type: keyword -Host ip address. +example: CA +Country ISO code. -- -*`host.mac`*:: +*`host.geo.country_name`*:: + -- type: keyword -Host mac address. +example: Canada +Country name. -- -*`host.type`*:: +*`host.geo.location`*:: + -- -type: keyword +type: geo_point -Type of host. -For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. +example: { "lon": -73.614830, "lat": 45.505918 } +Longitude and latitude. -- -*`host.architecture`*:: +*`host.geo.name`*:: + -- type: keyword -example: x86_64 - -Operating system architecture. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -[float] -== os fields +*`host.geo.region_iso_code`*:: ++ +-- +type: keyword -The OS fields contain information about the operating system. +example: CA-QC +Region ISO code. +-- -*`host.os.platform`*:: +*`host.geo.region_name`*:: + -- type: keyword -example: darwin +example: Quebec -Operating system platform (such centos, ubuntu, windows). +Region name. +-- +*`host.hostname`*:: ++ -- +type: keyword -*`host.os.name`*:: +Hostname of the host. +It normally contains what the `hostname` command returns on the host machine. + +-- + +*`host.id`*:: + -- type: keyword -example: Mac OS X +Unique host id. +As hostname is not always unique, use values that are meaningful in your environment. +Example: The current usage of `beat.name`. -Operating system name, without the version. +-- +*`host.ip`*:: ++ +-- +type: ip + +Host ip address. -- -*`host.os.full`*:: +*`host.mac`*:: + -- type: keyword -example: Mac OS Mojave +Host mac address. -Operating system name, including the version or code name. +-- + +*`host.name`*:: ++ +-- +type: keyword +Name of the host. +It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. -- @@ -3494,18 +3662,16 @@ example: debian OS family (such as redhat, debian, freebsd, windows). - -- -*`host.os.version`*:: +*`host.os.full`*:: + -- type: keyword -example: 10.14.1 - -Operating system version as a raw string. +example: Mac OS Mojave +Operating system name, including the version or code name. -- @@ -3518,131 +3684,133 @@ example: 4.4.0-112-generic Operating system kernel version as a raw string. - -- -[float] -== geo fields +*`host.os.name`*:: ++ +-- +type: keyword -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. +example: Mac OS X +Operating system name, without the version. +-- -*`host.geo.location`*:: +*`host.os.platform`*:: + -- -type: geo_point - -example: { "lon": -73.614830, "lat": 45.505918 } +type: keyword -Longitude and latitude. +example: darwin +Operating system platform (such centos, ubuntu, windows). -- -*`host.geo.continent_name`*:: +*`host.os.version`*:: + -- type: keyword -example: North America - -Name of the continent. +example: 10.14.1 +Operating system version as a raw string. -- -*`host.geo.country_name`*:: +*`host.type`*:: + -- type: keyword -example: Canada +Type of host. +For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. -Country name. +-- + +*`host.user.email`*:: ++ +-- +type: keyword +User email address. -- -*`host.geo.region_name`*:: +*`host.user.full_name`*:: + -- type: keyword -example: Quebec - -Region name. +example: Albert Einstein +User's full name, if available. -- -*`host.geo.city_name`*:: +*`host.user.group.id`*:: + -- type: keyword -example: Montreal - -City name. - +Unique identifier for the group on the system/platform. -- -*`host.geo.country_iso_code`*:: +*`host.user.group.name`*:: + -- type: keyword -example: CA +Name of the group. -Country ISO code. +-- + +*`host.user.hash`*:: ++ +-- +type: keyword +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -- -*`host.geo.region_iso_code`*:: +*`host.user.id`*:: + -- type: keyword -example: CA-QC - -Region ISO code. - +One or multiple unique identifiers of the user. -- -*`host.geo.name`*:: +*`host.user.name`*:: + -- type: keyword -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +example: albert +Short name or login of the user. -- [float] == http fields -Fields related to HTTP activity. +Fields related to HTTP activity. Use the `url` field set to store the url of the request. - -*`http.request.method`*:: +*`http.request.body.bytes`*:: + -- -type: keyword - -example: get, post, put +type: long -Http request method. -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. +example: 887 +Size in bytes of the request body. -- @@ -3653,84 +3821,63 @@ type: keyword example: Hello world -The full http request body. - - --- - -*`http.request.referrer`*:: -+ --- -type: keyword - -example: https://blog.example.com/ - -Referrer for this HTTP request. - +The full HTTP request body. -- -*`http.response.status_code`*:: +*`http.request.bytes`*:: + -- type: long -example: 404 - -Http response status code. +example: 1437 +Total size in bytes of the request (body and headers). -- -*`http.response.body.content`*:: +*`http.request.method`*:: + -- type: keyword -example: Hello world - -The full http response body. +example: get, post, put +HTTP request method. +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". -- -*`http.version`*:: +*`http.request.referrer`*:: + -- type: keyword -example: 1.1 - -Http version. +example: https://blog.example.com/ +Referrer for this HTTP request. -- -*`http.request.bytes`*:: +*`http.response.body.bytes`*:: + -- type: long -example: 1437 - -format: bytes - -Total size in bytes of the request (body and headers). +example: 887 +Size in bytes of the response body. -- -*`http.request.body.bytes`*:: +*`http.response.body.content`*:: + -- -type: long - -example: 887 - -format: bytes +type: keyword -Size in bytes of the request body. +example: Hello world +The full HTTP response body. -- @@ -3741,24 +3888,29 @@ type: long example: 1437 -format: bytes - Total size in bytes of the response (body and headers). - -- -*`http.response.body.bytes`*:: +*`http.response.status_code`*:: + -- type: long -example: 887 +example: 404 -format: bytes +HTTP response status code. -Size in bytes of the response body. +-- + +*`http.version`*:: ++ +-- +type: keyword + +example: 1.1 +HTTP version. -- @@ -3768,17 +3920,15 @@ Size in bytes of the response body. Fields which are specific to log events. - *`log.level`*:: + -- type: keyword -example: ERR - -Log level of the log event. -Some examples are `WARN`, `ERR`, `INFO`. +example: err +Original log level of the log event. +Some examples are `warn`, `error`, `i`. -- @@ -3789,96 +3939,52 @@ type: keyword example: Sep 19 08:26:10 localhost My log - This is the original log message and contains the full log message before splitting it up in multiple parts. In contrast to the `message` field which can contain an extracted part of the log message, this field contains the original, full log message. It can have already some modifications applied like encoding or new lines removed to clean up the log message. This field is not indexed and doc_values are disabled so it can't be queried but the value can be retrieved from `_source`. - -Field is not indexed. - -- [float] == network fields -The network is defined as the communication path over which a host or network event happens. The network.* fields should be populated with details about the network activity associated with an event. - - - -*`network.name`*:: -+ --- -type: keyword - -example: Guest Wifi - -Name given by operators to sections of their network. - - --- - -*`network.type`*:: -+ --- -type: keyword - -example: ipv4 - -In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. - - --- - -*`network.iana_number`*:: -+ --- -type: keyword - -example: 6 - -IANA Protocol Number (https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml). Standardized list of protocols. This aligns well with NetFlow and sFlow related logs which use the IANA Protocol Number. - +The network is defined as the communication path over which a host or network event happens. +The network.* fields should be populated with details about the network activity associated with an event. --- -*`network.transport`*:: +*`network.application`*:: + -- type: keyword -example: tcp - -Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. +example: aim +A name given to an application level protocol. This can be arbitrarily assigned for things like microservices, but also apply to things like skype, icq, facebook, twitter. This would be used in situations where the vendor or service can be decoded such as from the source/dest IP owners, ports, or wire format. +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". -- -*`network.application`*:: +*`network.bytes`*:: + -- -type: keyword - -example: aim +type: long -A name given to an application. This can be arbitrarily assigned for things like microservices, but also apply to things like skype, icq, facebook, twitter. This would be used in situations where the vendor or service can be decoded such as from the source/dest IP owners, ports, or wire format. -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. +example: 368 +Total bytes transferred in both directions. +If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. -- -*`network.protocol`*:: +*`network.community_id`*:: + -- type: keyword -example: http - -L7 Network protocol name. ex. http, lumberjack, transport protocol. -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. +example: 1:hO+sN4H+MG5MY/8hIrXPqc4ZQz0= +A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. +Learn more at https://github.com/corelight/community-id-spec. -- @@ -3900,7 +4006,6 @@ Recommended values are: When mapping events from a host-based monitoring context, populate this field from the host's point of view. When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of your network perimeter. - -- *`network.forwarded_ip`*:: @@ -3912,34 +4017,27 @@ example: 192.1.1.2 Host IP address when the source IP address is the proxy. - -- -*`network.community_id`*:: +*`network.iana_number`*:: + -- type: keyword -example: 1:hO+sN4H+MG5MY/8hIrXPqc4ZQz0= - -A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. -Learn more at https://github.com/corelight/community-id-spec. +example: 6 +IANA Protocol Number (https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml). Standardized list of protocols. This aligns well with NetFlow and sFlow related logs which use the IANA Protocol Number. -- -*`network.bytes`*:: +*`network.name`*:: + -- -type: long - -example: 368 - -format: bytes +type: keyword -Total bytes transferred in both directions. -If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. +example: Guest Wifi +Name given by operators to sections of their network. -- @@ -3953,129 +4051,165 @@ example: 24 Total packets transferred in both directions. If `source.packets` and `destination.packets` are known, `network.packets` is their sum. - -- -[float] -== observer fields +*`network.protocol`*:: ++ +-- +type: keyword -An observer is defined as a special network, security, or application device used to detect, observe, or create network, security, or application-related events and metrics. This could be a custom hardware appliance or a server that has been configured to run special network, security, or application software. Examples include firewalls, intrusion detection/prevention systems, network monitoring sensors, web application firewalls, data loss prevention systems, and APM servers. The observer.* fields shall be populated with details of the system, if any, that detects, observes and/or creates a network, security, or application event or metric. Message queues and ETL components used in processing events or metrics are not considered observers in ECS. +example: http +L7 Network protocol name. ex. http, lumberjack, transport protocol. +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". +-- -*`observer.mac`*:: +*`network.transport`*:: + -- type: keyword -MAC address of the observer +example: tcp +Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". -- -*`observer.ip`*:: +*`network.type`*:: + -- -type: ip +type: keyword -IP address of the observer. +example: ipv4 +In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". -- -*`observer.hostname`*:: +[float] +== observer fields + +An observer is defined as a special network, security, or application device used to detect, observe, or create network, security, or application-related events and metrics. +This could be a custom hardware appliance or a server that has been configured to run special network, security, or application software. Examples include firewalls, intrusion detection/prevention systems, network monitoring sensors, web application firewalls, data loss prevention systems, and APM servers. The observer.* fields shall be populated with details of the system, if any, that detects, observes and/or creates a network, security, or application event or metric. Message queues and ETL components used in processing events or metrics are not considered observers in ECS. + + +*`observer.geo.city_name`*:: + -- type: keyword -Hostname of the observer. +example: Montreal +City name. -- -*`observer.vendor`*:: +*`observer.geo.continent_name`*:: + -- type: keyword -observer vendor information. +example: North America +Name of the continent. -- -*`observer.version`*:: +*`observer.geo.country_iso_code`*:: + -- type: keyword -Observer version. +example: CA +Country ISO code. -- -*`observer.serial_number`*:: +*`observer.geo.country_name`*:: + -- type: keyword -Observer serial number. +example: Canada +Country name. -- -*`observer.type`*:: +*`observer.geo.location`*:: + -- -type: keyword +type: geo_point -example: firewall +example: { "lon": -73.614830, "lat": 45.505918 } -The type of the observer the data is coming from. -There is no predefined list of observer types. Some examples are `forwarder`, `firewall`, `ids`, `ips`, `proxy`, `poller`, `sensor`, `APM server`. +Longitude and latitude. +-- +*`observer.geo.name`*:: ++ -- +type: keyword -[float] -== os fields +example: boston-dc -The OS fields contain information about the operating system. +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. + +-- + +*`observer.geo.region_iso_code`*:: ++ +-- +type: keyword + +example: CA-QC +Region ISO code. +-- -*`observer.os.platform`*:: +*`observer.geo.region_name`*:: + -- type: keyword -example: darwin - -Operating system platform (such centos, ubuntu, windows). +example: Quebec +Region name. -- -*`observer.os.name`*:: +*`observer.hostname`*:: + -- type: keyword -example: Mac OS X +Hostname of the observer. -Operating system name, without the version. +-- + +*`observer.ip`*:: ++ +-- +type: ip +IP address of the observer. -- -*`observer.os.full`*:: +*`observer.mac`*:: + -- type: keyword -example: Mac OS Mojave - -Operating system name, including the version or code name. - +MAC address of the observer -- @@ -4088,18 +4222,16 @@ example: debian OS family (such as redhat, debian, freebsd, windows). - -- -*`observer.os.version`*:: +*`observer.os.full`*:: + -- type: keyword -example: 10.14.1 - -Operating system version as a raw string. +example: Mac OS Mojave +Operating system name, including the version or code name. -- @@ -4112,138 +4244,102 @@ example: 4.4.0-112-generic Operating system kernel version as a raw string. - --- - -[float] -== geo fields - -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. - - - -*`observer.geo.location`*:: -+ --- -type: geo_point - -example: { "lon": -73.614830, "lat": 45.505918 } - -Longitude and latitude. - - -- -*`observer.geo.continent_name`*:: +*`observer.os.name`*:: + -- type: keyword -example: North America - -Name of the continent. +example: Mac OS X +Operating system name, without the version. -- -*`observer.geo.country_name`*:: +*`observer.os.platform`*:: + -- type: keyword -example: Canada - -Country name. +example: darwin +Operating system platform (such centos, ubuntu, windows). -- -*`observer.geo.region_name`*:: +*`observer.os.version`*:: + -- type: keyword -example: Quebec - -Region name. +example: 10.14.1 +Operating system version as a raw string. -- -*`observer.geo.city_name`*:: +*`observer.serial_number`*:: + -- type: keyword -example: Montreal - -City name. - +Observer serial number. -- -*`observer.geo.country_iso_code`*:: +*`observer.type`*:: + -- type: keyword -example: CA - -Country ISO code. +example: firewall +The type of the observer the data is coming from. +There is no predefined list of observer types. Some examples are `forwarder`, `firewall`, `ids`, `ips`, `proxy`, `poller`, `sensor`, `APM server`. -- -*`observer.geo.region_iso_code`*:: +*`observer.vendor`*:: + -- type: keyword -example: CA-QC - -Region ISO code. - +observer vendor information. -- -*`observer.geo.name`*:: +*`observer.version`*:: + -- type: keyword -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. - +Observer version. -- [float] == organization fields -The organization fields enrich data with information about the company or entity the data is associated with. These fields help you arrange or filter data stored in an index by one or multiple organizations. - +The organization fields enrich data with information about the company or entity the data is associated with. +These fields help you arrange or filter data stored in an index by one or multiple organizations. -*`organization.name`*:: +*`organization.id`*:: + -- type: keyword -Organization name. - +Unique identifier for the organization. -- -*`organization.id`*:: +*`organization.name`*:: + -- type: keyword -Unique identifier for the organization. - +Organization name. -- @@ -4253,93 +4349,99 @@ Unique identifier for the organization. The OS fields contain information about the operating system. - -*`os.platform`*:: +*`os.family`*:: + -- type: keyword -example: darwin - -Operating system platform (such centos, ubuntu, windows). +example: debian +OS family (such as redhat, debian, freebsd, windows). -- -*`os.name`*:: +*`os.full`*:: + -- type: keyword -example: Mac OS X - -Operating system name, without the version. +example: Mac OS Mojave +Operating system name, including the version or code name. -- -*`os.full`*:: +*`os.kernel`*:: + -- type: keyword -example: Mac OS Mojave - -Operating system name, including the version or code name. +example: 4.4.0-112-generic +Operating system kernel version as a raw string. -- -*`os.family`*:: +*`os.name`*:: + -- type: keyword -example: debian - -OS family (such as redhat, debian, freebsd, windows). +example: Mac OS X +Operating system name, without the version. -- -*`os.version`*:: +*`os.platform`*:: + -- type: keyword -example: 10.14.1 - -Operating system version as a raw string. +example: darwin +Operating system platform (such centos, ubuntu, windows). -- -*`os.kernel`*:: +*`os.version`*:: + -- type: keyword -example: 4.4.0-112-generic - -Operating system kernel version as a raw string. +example: 10.14.1 +Operating system version as a raw string. -- [float] == process fields -These fields contain information about a process. These fields can help you correlate metrics information with a process id/name from a log message. The `process.pid` often stays in the metric itself and is copied to the global field for correlation. +These fields contain information about a process. +These fields can help you correlate metrics information with a process id/name from a log message. The `process.pid` often stays in the metric itself and is copied to the global field for correlation. + + +*`process.args`*:: ++ +-- +type: keyword + +example: ['ssh', '-l', 'user', '10.0.0.16'] +Array of process arguments. +May be filtered to protect sensitive information. +-- -*`process.pid`*:: +*`process.executable`*:: + -- -type: long +type: keyword -Process id. +example: /usr/bin/ssh +Absolute path to the process executable. -- @@ -4353,6 +4455,14 @@ example: ssh Process name. Sometimes called program name or similar. +-- + +*`process.pid`*:: ++ +-- +type: long + +Process id. -- @@ -4363,31 +4473,27 @@ type: long Process parent id. - -- -*`process.args`*:: +*`process.start`*:: + -- -type: keyword - -example: ['ssh', '-l', 'user', '10.0.0.16'] +type: date -Process arguments. -May be filtered to protect sensitive information. +example: 2016-05-23T08:05:34.853Z +The time the process started. -- -*`process.executable`*:: +*`process.thread.id`*:: + -- -type: keyword - -example: /usr/bin/ssh +type: long -Absolute path to the process executable. +example: 4242 +Thread ID. -- @@ -4399,133 +4505,180 @@ type: keyword Process title. The proctitle, some times the same as process name. Can also be different: for example a browser setting its title to the web page currently opened. - -- -*`process.thread.id`*:: +*`process.working_directory`*:: + -- -type: long - -example: 4242 +type: keyword -Thread ID. +example: /home/alice +The working directory of the process. -- -*`process.start`*:: +[float] +== related fields + +This field set is meant to facilitate pivoting around a piece of data. +Some pieces of information can be seen in many places in an ECS event. To facilitate searching for them, store an array of all seen values to their corresponding field in `related.`. +A concrete example is IP addresses, which can be under host, observer, source, destination, client, server, and network.forwarded_ip. If you append all IPs to `related.ip`, you can then search for a given IP trivially, no matter where it appeared, by querying `related.ip:a.b.c.d`. + + +*`related.ip`*:: + -- -type: date +type: ip -example: 2016-05-23T08:05:34.853Z +All of the IPs seen on your event. -The time the process started. +-- +[float] +== server fields --- +A Server is defined as the responder in a network connection for events regarding sessions, connections, or bidirectional flow records. +For TCP events, the server is the receiver of the initial SYN packet(s) of the TCP connection. For other protocols, the server is generally the responder in the network transaction. Some systems actually use the term "responder" to refer the server in TCP connections. The server fields describe details about the system acting as the server in the network event. Server fields are usually populated in conjunction with client fields. Server fields are generally not populated for packet-level events. +Client / server representations can add semantic context to an exchange, which is helpful to visualize the data in certain situations. If your context falls in that category, you should still ensure that source and destination are filled appropriately. -*`process.working_directory`*:: + +*`server.address`*:: + -- type: keyword -example: /home/alice +Some event server addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. +Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. -The working directory of the process. +-- + +*`server.bytes`*:: ++ +-- +type: long + +example: 184 +Bytes sent from the server to the client. -- -[float] -== related fields +*`server.domain`*:: ++ +-- +type: keyword + +Server domain. + +-- + +*`server.geo.city_name`*:: ++ +-- +type: keyword -This field set is meant to facilitate pivoting around a piece of data. Some pieces of information can be seen in many places in ECS. To facilitate searching for them, append values to their corresponding field in `related.`. A concrete example is IP addresses, which can be under host, observer, source, destination, client, server, and network.forwarded_ip. If you append all IPs to `related.ip`, you can then search for a given IP trivially, no matter where it appeared, by querying `related.ip:a.b.c.d`. +example: Montreal +City name. +-- -*`related.ip`*:: +*`server.geo.continent_name`*:: + -- -type: ip +type: keyword -All of the IPs seen on your event. +example: North America +Name of the continent. -- -[float] -== server fields +*`server.geo.country_iso_code`*:: ++ +-- +type: keyword -A Server is defined as the responder in a network connection for events regarding sessions, connections, or bidirectional flow records. For TCP events, the server is the receiver of the initial SYN packet(s) of the TCP connection. For other protocols, the server is generally the responder in the network transaction. Some systems actually use the term "responder" to refer the server in TCP connections. The server fields describe details about the system acting as the server in the network event. Server fields are usually populated in conjunction with client fields. Server fields are generally not populated for packet-level events. -Client / server representations can add semantic context to an exchange, which is helpful to visualize the data in certain situations. If your context falls in that category, you should still ensure that source and destination are filled appropriately. +example: CA +Country ISO code. +-- -*`server.address`*:: +*`server.geo.country_name`*:: + -- type: keyword -Some event server addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. -Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. +example: Canada +Country name. -- -*`server.ip`*:: +*`server.geo.location`*:: + -- -type: ip +type: geo_point -IP address of the server. -Can be one or multiple IPv4 or IPv6 addresses. +example: { "lon": -73.614830, "lat": 45.505918 } +Longitude and latitude. -- -*`server.port`*:: +*`server.geo.name`*:: + -- -type: long +type: keyword -Port of the server. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`server.mac`*:: +*`server.geo.region_iso_code`*:: + -- type: keyword -MAC address of the server. +example: CA-QC +Region ISO code. -- -*`server.domain`*:: +*`server.geo.region_name`*:: + -- type: keyword -Server domain. +example: Quebec +Region name. -- -*`server.bytes`*:: +*`server.ip`*:: + -- -type: long +type: ip -example: 184 +IP address of the server. +Can be one or multiple IPv4 or IPv6 addresses. -format: bytes +-- -Bytes sent from the server to the client. +*`server.mac`*:: ++ +-- +type: keyword +MAC address of the server. -- @@ -4538,120 +4691,103 @@ example: 12 Packets sent from the server to the client. - -- -[float] -== geo fields - -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. - - - -*`server.geo.location`*:: +*`server.port`*:: + -- -type: geo_point - -example: { "lon": -73.614830, "lat": 45.505918 } - -Longitude and latitude. +type: long +Port of the server. -- -*`server.geo.continent_name`*:: +*`server.user.email`*:: + -- type: keyword -example: North America - -Name of the continent. - +User email address. -- -*`server.geo.country_name`*:: +*`server.user.full_name`*:: + -- type: keyword -example: Canada - -Country name. +example: Albert Einstein +User's full name, if available. -- -*`server.geo.region_name`*:: +*`server.user.group.id`*:: + -- type: keyword -example: Quebec - -Region name. - +Unique identifier for the group on the system/platform. -- -*`server.geo.city_name`*:: +*`server.user.group.name`*:: + -- type: keyword -example: Montreal - -City name. - +Name of the group. -- -*`server.geo.country_iso_code`*:: +*`server.user.hash`*:: + -- type: keyword -example: CA - -Country ISO code. - +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -- -*`server.geo.region_iso_code`*:: +*`server.user.id`*:: + -- type: keyword -example: CA-QC - -Region ISO code. - +One or multiple unique identifiers of the user. -- -*`server.geo.name`*:: +*`server.user.name`*:: + -- type: keyword -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +example: albert +Short name or login of the user. -- [float] == service fields -The service fields describe the service for or from which the data was collected. These fields help you find and correlate logs for a specific service and version. +The service fields describe the service for or from which the data was collected. +These fields help you find and correlate logs for a specific service and version. + + +*`service.ephemeral_id`*:: ++ +-- +type: keyword + +example: 8a4f500f +Ephemeral identifier of this service (if one exists). +This id normally changes across restarts, but `service.id` does not. +-- *`service.id`*:: + @@ -4664,7 +4800,6 @@ Unique identifier of the running service. This id should uniquely identify this service. This makes it possible to correlate logs and metrics for one specific service. Example: If you are experiencing issues with one redis instance, you can filter on that id to see metrics and logs for that single instance. - -- *`service.name`*:: @@ -4679,6 +4814,14 @@ The name of the service is normally user given. This allows if two instances of Also it allows for distributed services that run on multiple hosts to correlate the related instances based on the name. In the case of Elasticsearch the service.name could contain the cluster name. For Beats the service.name is by default a copy of the `service.type` field if no name is specified. +-- + +*`service.state`*:: ++ +-- +type: keyword + +Current state of the service. -- @@ -4693,115 +4836,163 @@ The type of the service data is collected from. The type can be used to group and correlate logs and metrics from one service type. Example: If logs or metrics are collected from Elasticsearch, `service.type` would be `elasticsearch`. - -- -*`service.state`*:: +*`service.version`*:: + -- type: keyword -Current state of the service. +example: 3.2.4 +Version of the service the data was collected from. +This allows to look at a data set only for a specific version of a service. -- -*`service.version`*:: +[float] +== source fields + +Source fields describe details about the source of a packet/event. +Source fields are usually populated in conjunction with destination fields. + + +*`source.address`*:: + -- type: keyword -example: 3.2.4 +Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. +Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. -Version of the service the data was collected from. -This allows to look at a data set only for a specific version of a service. +-- + +*`source.bytes`*:: ++ +-- +type: long + +example: 184 +Bytes sent from the source to the destination. -- -*`service.ephemeral_id`*:: +*`source.domain`*:: + -- type: keyword -example: 8a4f500f +Source domain. -Ephemeral identifier of this service (if one exists). -This id normally changes across restarts, but `service.id` does not. +-- + +*`source.geo.city_name`*:: ++ +-- +type: keyword +example: Montreal + +City name. -- -[float] -== source fields +*`source.geo.continent_name`*:: ++ +-- +type: keyword -Source fields describe details about the source of a packet/event. Source fields are usually populated in conjunction with destination fields. +example: North America +Name of the continent. +-- -*`source.address`*:: +*`source.geo.country_iso_code`*:: + -- type: keyword -Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. -Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. +example: CA +Country ISO code. -- -*`source.ip`*:: +*`source.geo.country_name`*:: + -- -type: ip +type: keyword -IP address of the source. -Can be one or multiple IPv4 or IPv6 addresses. +example: Canada +Country name. -- -*`source.port`*:: +*`source.geo.location`*:: + -- -type: long +type: geo_point -Port of the source. +example: { "lon": -73.614830, "lat": 45.505918 } +Longitude and latitude. -- -*`source.mac`*:: +*`source.geo.name`*:: + -- type: keyword -MAC address of the source. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`source.domain`*:: +*`source.geo.region_iso_code`*:: + -- type: keyword -Source domain. +example: CA-QC +Region ISO code. -- -*`source.bytes`*:: +*`source.geo.region_name`*:: + -- -type: long +type: keyword -example: 184 +example: Quebec -format: bytes +Region name. + +-- + +*`source.ip`*:: ++ +-- +type: ip + +IP address of the source. +Can be one or multiple IPv4 or IPv6 addresses. + +-- -Bytes sent from the source to the destination. +*`source.mac`*:: ++ +-- +type: keyword +MAC address of the source. -- @@ -4814,133 +5005,110 @@ example: 12 Packets sent from the source to the destination. - -- -[float] -== geo fields - -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. - - - -*`source.geo.location`*:: +*`source.port`*:: + -- -type: geo_point - -example: { "lon": -73.614830, "lat": 45.505918 } - -Longitude and latitude. +type: long +Port of the source. -- -*`source.geo.continent_name`*:: +*`source.user.email`*:: + -- type: keyword -example: North America - -Name of the continent. - +User email address. -- -*`source.geo.country_name`*:: +*`source.user.full_name`*:: + -- type: keyword -example: Canada - -Country name. +example: Albert Einstein +User's full name, if available. -- -*`source.geo.region_name`*:: +*`source.user.group.id`*:: + -- type: keyword -example: Quebec - -Region name. - +Unique identifier for the group on the system/platform. -- -*`source.geo.city_name`*:: +*`source.user.group.name`*:: + -- type: keyword -example: Montreal - -City name. - +Name of the group. -- -*`source.geo.country_iso_code`*:: +*`source.user.hash`*:: + -- type: keyword -example: CA - -Country ISO code. - +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -- -*`source.geo.region_iso_code`*:: +*`source.user.id`*:: + -- type: keyword -example: CA-QC - -Region ISO code. - +One or multiple unique identifiers of the user. -- -*`source.geo.name`*:: +*`source.user.name`*:: + -- type: keyword -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +example: albert +Short name or login of the user. -- [float] == url fields -URL fields provide a complete URL, with scheme, host, and path. +URL fields provide support for complete or partial URLs, and supports the breaking down into scheme, domain, path, and so on. - -*`url.original`*:: +*`url.domain`*:: + -- type: keyword -example: https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch +example: www.elastic.co +Domain of the url, such as "www.elastic.co". +In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the `domain` field. -Unmodified original url as seen in the event source. -Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path. -This field is meant to represent the URL as it was observed, complete or not. +-- + +*`url.fragment`*:: ++ +-- +type: keyword +Portion of the url after the `#`, such as "top". +The `#` is not part of the fragment. -- @@ -4953,54 +5121,47 @@ example: https://www.elastic.co:443/search?q=elasticsearch#top If full URLs are important to your use case, they should be stored in `url.full`, whether this field is reconstructed or present in the event source. - -- -*`url.scheme`*:: +*`url.original`*:: + -- type: keyword -example: https - -Scheme of the request, such as "https". -Note: The `:` is not part of the scheme. +example: https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch +Unmodified original url as seen in the event source. +Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path. +This field is meant to represent the URL as it was observed, complete or not. -- -*`url.domain`*:: +*`url.password`*:: + -- type: keyword -example: www.elastic.co - -Domain of the request, such as "www.elastic.co". -In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the `domain` field. - +Password of the request. -- -*`url.port`*:: +*`url.path`*:: + -- -type: integer - -example: 443 - -Port of the request, such as 443. +type: keyword +Path of the request, such as "/search". -- -*`url.path`*:: +*`url.port`*:: + -- -type: keyword +type: long -Path of the request, such as "/search". +example: 443 +Port of the request, such as 443. -- @@ -5012,17 +5173,17 @@ type: keyword The query field describes the query string of the request, such as "q=elasticsearch". The `?` is excluded from the query string. If a URL contains no `?`, there is no query field. If there is a `?` but no query, the query field exists with an empty string. The `exists` query can be used to differentiate between the two cases. - -- -*`url.fragment`*:: +*`url.scheme`*:: + -- type: keyword -Portion of the url after the `#`, such as "top". -The `#` is not part of the fragment. +example: https +Scheme of the request, such as "https". +Note: The `:` is not part of the scheme. -- @@ -5033,67 +5194,50 @@ type: keyword Username of the request. - --- - -*`url.password`*:: -+ --- -type: keyword - -Password of the request. - - -- [float] == user fields -The user fields describe information about the user that is relevant to the event. Fields can have one entry or multiple entries. If a user has more than one id, provide an array that includes all of them. - +The user fields describe information about the user that is relevant to the event. +Fields can have one entry or multiple entries. If a user has more than one id, provide an array that includes all of them. -*`user.id`*:: +*`user.email`*:: + -- type: keyword -One or multiple unique identifiers of the user. - +User email address. -- -*`user.name`*:: +*`user.full_name`*:: + -- type: keyword -example: albert - -Short name or login of the user. +example: Albert Einstein +User's full name, if available. -- -*`user.full_name`*:: +*`user.group.id`*:: + -- type: keyword -example: Albert Einstein - -User's full name, if available. - +Unique identifier for the group on the system/platform. -- -*`user.email`*:: +*`user.group.name`*:: + -- type: keyword -User email address. - +Name of the group. -- @@ -5105,52 +5249,43 @@ type: keyword Unique user hash to correlate information for a user in anonymized form. Useful if `user.id` or `user.name` contain confidential information and cannot be used. - -- -[float] -== group fields - -The group fields are meant to represent groups that are relevant to the event. - - - -*`user.group.id`*:: +*`user.id`*:: + -- type: keyword -Unique identifier for the group on the system/platform. - +One or multiple unique identifiers of the user. -- -*`user.group.name`*:: +*`user.name`*:: + -- type: keyword -Name of the group. +example: albert +Short name or login of the user. -- [float] == user_agent fields -The user_agent fields normally come from a browser request. They often show up in web service logs coming from the parsed user agent string. +The user_agent fields normally come from a browser request. +They often show up in web service logs coming from the parsed user agent string. - -*`user_agent.original`*:: +*`user_agent.device.name`*:: + -- type: keyword -example: Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1 - -Unparsed version of the user_agent. +example: iPhone +Name of the device. -- @@ -5163,85 +5298,71 @@ example: Safari Name of the user agent. - -- -*`user_agent.version`*:: +*`user_agent.original`*:: + -- type: keyword -example: 12.0 - -Version of the user agent. +example: Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1 +Unparsed version of the user_agent. -- -*`user_agent.device.name`*:: +*`user_agent.os.family`*:: + -- type: keyword -example: iPhone - -Name of the device. +example: debian +OS family (such as redhat, debian, freebsd, windows). -- -[float] -== os fields - -The OS fields contain information about the operating system. - - - -*`user_agent.os.platform`*:: +*`user_agent.os.full`*:: + -- type: keyword -example: darwin - -Operating system platform (such centos, ubuntu, windows). +example: Mac OS Mojave +Operating system name, including the version or code name. -- -*`user_agent.os.name`*:: +*`user_agent.os.kernel`*:: + -- type: keyword -example: Mac OS X - -Operating system name, without the version. +example: 4.4.0-112-generic +Operating system kernel version as a raw string. -- -*`user_agent.os.full`*:: +*`user_agent.os.name`*:: + -- type: keyword -example: Mac OS Mojave - -Operating system name, including the version or code name. +example: Mac OS X +Operating system name, without the version. -- -*`user_agent.os.family`*:: +*`user_agent.os.platform`*:: + -- type: keyword -example: debian - -OS family (such as redhat, debian, freebsd, windows). +example: darwin +Operating system platform (such centos, ubuntu, windows). -- @@ -5254,28 +5375,16 @@ example: 10.14.1 Operating system version as a raw string. - --- - -*`user_agent.os.kernel`*:: -+ --- -type: keyword - -example: 4.4.0-112-generic - -Operating system kernel version as a raw string. - - -- -*`agent.hostname`*:: +*`user_agent.version`*:: + -- type: keyword -Hostname of the agent. +example: 12.0 +Version of the user agent. -- diff --git a/packetbeat/include/fields.go b/packetbeat/include/fields.go index 4515fd43b79..484cb6c0d00 100644 --- a/packetbeat/include/fields.go +++ b/packetbeat/include/fields.go @@ -32,5 +32,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "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" + return "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" } diff --git a/winlogbeat/docs/fields.asciidoc b/winlogbeat/docs/fields.asciidoc index c9bbf7b6062..045af28b4f9 100644 --- a/winlogbeat/docs/fields.asciidoc +++ b/winlogbeat/docs/fields.asciidoc @@ -30,6 +30,15 @@ Contains common beat fields available in all event types. +*`agent.hostname`*:: ++ +-- +type: keyword + +Hostname of the agent. + +-- + *`beat.timezone`*:: + -- @@ -212,8 +221,7 @@ Image labels. [[exported-fields-ecs]] == ECS fields -ECS fields. - +ECS Fields. *`@timestamp`*:: @@ -226,22 +234,10 @@ example: 2016-05-23T08:05:34.853Z required: True Date/time when the event originated. -For log events this is the date/time when the event was generated, and not when it was read. +This is the date/time extracted from the event, typically representing when the event was generated by the source. +If the event source has no original timestamp, this value is typically populated by the first time the event was received by the pipeline. Required field for all events. - --- - -*`tags`*:: -+ --- -type: keyword - -example: ["production", "env2"] - -List of keywords used to tag each event. - - -- *`labels`*:: @@ -251,11 +247,10 @@ type: object example: {'application': 'foo-bar', 'env': 'production'} -Key/value pairs. +Custom key/value pairs. Can be used to add meta information to events. Should not contain nested objects. All values are stored as keyword. Example: `docker` and `k8s` labels. - -- *`message`*:: @@ -265,28 +260,51 @@ type: text example: Hello World -For log events the message field contains the log message. -In other use cases the message field can be used to concatenate different values which are then freely searchable. If multiple messages exist, they can be combined into one message. +For log events the message field contains the log message, optimized for viewing in a log viewer. +For structured logs without an original message field, other fields can be concatenated to form a human-readable summary of the event. +If multiple messages exist, they can be combined into one message. + +-- + +*`tags`*:: ++ +-- +type: keyword + +example: ["production", "env2"] +List of keywords used to tag each event. -- [float] == agent fields -The agent fields contain the data about the software entity, if any, that collects, detects, or observes events on a host, or takes measurements on a host. Examples include Beats. Agents may also run on observers. ECS agent.* fields shall be populated with details of the agent running on the host or observer where the event happened or the measurement was taken. +The agent fields contain the data about the software entity, if any, that collects, detects, or observes events on a host, or takes measurements on a host. +Examples include Beats. Agents may also run on observers. ECS agent.* fields shall be populated with details of the agent running on the host or observer where the event happened or the measurement was taken. - -*`agent.version`*:: +*`agent.ephemeral_id`*:: + -- type: keyword -example: 6.0.0-rc2 +example: 8a4f500f -Version of the agent. +Ephemeral identifier of this agent (if one exists). +This id normally changes across restarts, but `agent.id` does not. + +-- + +*`agent.id`*:: ++ +-- +type: keyword + +example: 8a4f500d +Unique identifier of this agent (if one exists). +Example: For Beats this would be beat.id. -- @@ -297,11 +315,10 @@ type: keyword example: foo -Name of the agent. +Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. If no name is given, the name is often left empty. - -- *`agent.type`*:: @@ -314,43 +331,27 @@ example: filebeat Type of the agent. The agent type stays always the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - --- - -*`agent.id`*:: -+ --- -type: keyword - -example: 8a4f500d - -Unique identifier of this agent (if one exists). -Example: For Beats this would be beat.id. - - -- -*`agent.ephemeral_id`*:: +*`agent.version`*:: + -- type: keyword -example: 8a4f500f - -Ephemeral identifier of this agent (if one exists). -This id normally changes across restarts, but `agent.id` does not. +example: 6.0.0-rc2 +Version of the agent. -- [float] == client fields -A client is defined as the initiator of a network connection for events regarding sessions, connections, or bidirectional flow records. For TCP events, the client is the initiator of the TCP connection that sends the SYN packet(s). For other protocols, the client is generally the initiator or requestor in the network transaction. Some systems use the term "originator" to refer the client in TCP connections. The client fields describe details about the system acting as the client in the network event. Client fields are usually populated in conjunction with server fields. Client fields are generally not populated for packet-level events. +A client is defined as the initiator of a network connection for events regarding sessions, connections, or bidirectional flow records. +For TCP events, the client is the initiator of the TCP connection that sends the SYN packet(s). For other protocols, the client is generally the initiator or requestor in the network transaction. Some systems use the term "originator" to refer the client in TCP connections. The client fields describe details about the system acting as the client in the network event. Client fields are usually populated in conjunction with server fields. Client fields are generally not populated for packet-level events. Client / server representations can add semantic context to an exchange, which is helpful to visualize the data in certain situations. If your context falls in that category, you should still ensure that source and destination are filled appropriately. - *`client.address`*:: + -- @@ -359,83 +360,72 @@ type: keyword Some event client addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. - -- -*`client.ip`*:: +*`client.bytes`*:: + -- -type: ip +type: long -IP address of the client. -Can be one or multiple IPv4 or IPv6 addresses. +example: 184 +Bytes sent from the client to the server. -- -*`client.port`*:: +*`client.domain`*:: + -- -type: long - -Port of the client. +type: keyword +Client domain. -- -*`client.mac`*:: +*`client.geo.city_name`*:: + -- type: keyword -MAC address of the client. +example: Montreal +City name. -- -*`client.domain`*:: +*`client.geo.continent_name`*:: + -- type: keyword -Client domain. +example: North America +Name of the continent. -- -*`client.bytes`*:: +*`client.geo.country_iso_code`*:: + -- -type: long - -example: 184 - -format: bytes +type: keyword -Bytes sent from the client to the server. +example: CA +Country ISO code. -- -*`client.packets`*:: +*`client.geo.country_name`*:: + -- -type: long - -example: 12 +type: keyword -Packets sent from the client to the server. +example: Canada +Country name. -- -[float] -== geo fields - -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. - - - *`client.geo.location`*:: + -- @@ -445,30 +435,29 @@ example: { "lon": -73.614830, "lat": 45.505918 } Longitude and latitude. - -- -*`client.geo.continent_name`*:: +*`client.geo.name`*:: + -- type: keyword -example: North America - -Name of the continent. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`client.geo.country_name`*:: +*`client.geo.region_iso_code`*:: + -- type: keyword -example: Canada - -Country name. +example: CA-QC +Region ISO code. -- @@ -481,274 +470,274 @@ example: Quebec Region name. - -- -*`client.geo.city_name`*:: +*`client.ip`*:: + -- -type: keyword - -example: Montreal - -City name. +type: ip +IP address of the client. +Can be one or multiple IPv4 or IPv6 addresses. -- -*`client.geo.country_iso_code`*:: +*`client.mac`*:: + -- type: keyword -example: CA - -Country ISO code. - +MAC address of the client. -- -*`client.geo.region_iso_code`*:: +*`client.packets`*:: + -- -type: keyword - -example: CA-QC +type: long -Region ISO code. +example: 12 +Packets sent from the client to the server. -- -*`client.geo.name`*:: +*`client.port`*:: + -- -type: keyword - -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +type: long +Port of the client. -- -[float] -== cloud fields - -Fields related to the cloud or infrastructure the events are coming from. - - - -*`cloud.provider`*:: +*`client.user.email`*:: + -- type: keyword -example: ec2 - -Name of the cloud provider. Example values are ec2, gce, or digitalocean. - +User email address. -- -*`cloud.availability_zone`*:: +*`client.user.full_name`*:: + -- type: keyword -example: us-east-1c - -Availability zone in which this host is running. +example: Albert Einstein +User's full name, if available. -- -*`cloud.region`*:: +*`client.user.group.id`*:: + -- type: keyword -example: us-east-1 - -Region in which this host is running. - +Unique identifier for the group on the system/platform. -- -*`cloud.instance.id`*:: +*`client.user.group.name`*:: + -- type: keyword -example: i-1234567890abcdef0 - -Instance ID of the host machine. - +Name of the group. -- -*`cloud.instance.name`*:: +*`client.user.hash`*:: + -- type: keyword -Instance name of the host machine. - +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -- -*`cloud.machine.type`*:: +*`client.user.id`*:: + -- type: keyword -example: t2.medium - -Machine type of the host machine. - +One or multiple unique identifiers of the user. -- -*`cloud.account.id`*:: +*`client.user.name`*:: + -- type: keyword -example: 666777888999 - -The cloud account or organization id used to identify different entities in a multi-tenant environment. -Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. +example: albert +Short name or login of the user. -- [float] -== container fields - -Container fields are used for meta information about the specific container that is the source of information. These fields help correlate data based containers from any runtime. +== cloud fields +Fields related to the cloud or infrastructure the events are coming from. -*`container.runtime`*:: +*`cloud.account.id`*:: + -- type: keyword -example: docker - -Runtime managing this container. +example: 666777888999 +The cloud account or organization id used to identify different entities in a multi-tenant environment. +Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. -- -*`container.id`*:: +*`cloud.availability_zone`*:: + -- type: keyword -Unique container id. +example: us-east-1c +Availability zone in which this host is running. -- -*`container.image.name`*:: +*`cloud.instance.id`*:: + -- type: keyword -Name of the image the container was built on. +example: i-1234567890abcdef0 +Instance ID of the host machine. -- -*`container.image.tag`*:: +*`cloud.instance.name`*:: + -- type: keyword -Container image tag. +Instance name of the host machine. +-- +*`cloud.machine.type`*:: ++ -- +type: keyword -*`container.name`*:: +example: t2.medium + +Machine type of the host machine. + +-- + +*`cloud.provider`*:: + -- type: keyword -Container name. +example: aws +Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. -- -*`container.labels`*:: +*`cloud.region`*:: + -- -type: object +type: keyword -Image labels. +example: us-east-1 +Region in which this host is running. -- [float] -== destination fields - -Destination fields describe details about the destination of a packet/event. Destination fields are usually populated in conjunction with source fields. +== container fields +Container fields are used for meta information about the specific container that is the source of information. +These fields help correlate data based containers from any runtime. -*`destination.address`*:: +*`container.id`*:: + -- type: keyword -Some event destination addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. -Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. - +Unique container id. -- -*`destination.ip`*:: +*`container.image.name`*:: + -- -type: ip +type: keyword -IP address of the destination. -Can be one or multiple IPv4 or IPv6 addresses. +Name of the image the container was built on. + +-- + +*`container.image.tag`*:: ++ +-- +type: keyword +Container image tag. -- -*`destination.port`*:: +*`container.labels`*:: + -- -type: long +type: object -Port of the destination. +Image labels. + +-- + +*`container.name`*:: ++ +-- +type: keyword +Container name. -- -*`destination.mac`*:: +*`container.runtime`*:: + -- type: keyword -MAC address of the destination. +example: docker +Runtime managing this container. -- -*`destination.domain`*:: +[float] +== destination fields + +Destination fields describe details about the destination of a packet/event. +Destination fields are usually populated in conjunction with source fields. + + +*`destination.address`*:: + -- type: keyword -Destination domain. - +Some event destination addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. +Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. -- @@ -759,31 +748,62 @@ type: long example: 184 -format: bytes - Bytes sent from the destination to the source. +-- +*`destination.domain`*:: ++ -- +type: keyword -*`destination.packets`*:: +Destination domain. + +-- + +*`destination.geo.city_name`*:: + -- -type: long +type: keyword -example: 12 +example: Montreal -Packets sent from the destination to the source. +City name. + +-- +*`destination.geo.continent_name`*:: ++ +-- +type: keyword + +example: North America + +Name of the continent. -- -[float] -== geo fields +*`destination.geo.country_iso_code`*:: ++ +-- +type: keyword + +example: CA + +Country ISO code. + +-- -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. +*`destination.geo.country_name`*:: ++ +-- +type: keyword +example: Canada +Country name. + +-- *`destination.geo.location`*:: + @@ -794,30 +814,29 @@ example: { "lon": -73.614830, "lat": 45.505918 } Longitude and latitude. - -- -*`destination.geo.continent_name`*:: +*`destination.geo.name`*:: + -- type: keyword -example: North America - -Name of the continent. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`destination.geo.country_name`*:: +*`destination.geo.region_iso_code`*:: + -- type: keyword -example: Canada - -Country name. +example: CA-QC +Region ISO code. -- @@ -830,56 +849,112 @@ example: Quebec Region name. +-- +*`destination.ip`*:: ++ -- +type: ip -*`destination.geo.city_name`*:: +IP address of the destination. +Can be one or multiple IPv4 or IPv6 addresses. + +-- + +*`destination.mac`*:: + -- type: keyword -example: Montreal +MAC address of the destination. -City name. +-- + +*`destination.packets`*:: ++ +-- +type: long + +example: 12 +Packets sent from the destination to the source. -- -*`destination.geo.country_iso_code`*:: +*`destination.port`*:: ++ +-- +type: long + +Port of the destination. + +-- + +*`destination.user.email`*:: + -- type: keyword -example: CA +User email address. -Country ISO code. +-- +*`destination.user.full_name`*:: ++ +-- +type: keyword + +example: Albert Einstein + +User's full name, if available. -- -*`destination.geo.region_iso_code`*:: +*`destination.user.group.id`*:: + -- type: keyword -example: CA-QC +Unique identifier for the group on the system/platform. -Region ISO code. +-- +*`destination.user.group.name`*:: ++ +-- +type: keyword + +Name of the group. -- -*`destination.geo.name`*:: +*`destination.user.hash`*:: + -- type: keyword -example: boston-dc +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +-- +*`destination.user.id`*:: ++ +-- +type: keyword + +One or multiple unique identifiers of the user. + +-- + +*`destination.user.name`*:: ++ +-- +type: keyword + +example: albert + +Short name or login of the user. -- @@ -889,29 +964,35 @@ Not typically used in automated geolocation. Meta-information specific to ECS. - *`ecs.version`*:: + -- type: keyword -example: 1.0.0-beta2 +example: 1.0.0 required: True ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. -The current version is 1.0.0-beta2 . - -- [float] == error fields -These fields can represent errors of any kind. Use them for errors that happen while fetching events or in cases where the event itself contains an error. +These fields can represent errors of any kind. +Use them for errors that happen while fetching events or in cases where the event itself contains an error. + + +*`error.code`*:: ++ +-- +type: keyword +Error code describing the error. +-- *`error.id`*:: + @@ -920,7 +1001,6 @@ type: keyword Unique identifier for the error. - -- *`error.message`*:: @@ -930,98 +1010,113 @@ type: text Error message. - -- -*`error.code`*:: +[float] +== event fields + +The event fields are used for context information about the log or metric event itself. +A log is defined as an event containing details of something that happened. Log events must include the time at which the thing happened. Examples of log events include a process starting on a host, a network packet being sent from a source to a destination, or a network connection between a client and a server being initiated or closed. A metric is defined as an event containing one or more numerical or categorical measurements and the time at which the measurement was taken. Examples of metric events include memory pressure measured on a host, or vulnerabilities measured on a scanned host. + + +*`event.action`*:: + -- type: keyword -Error code describing the error. +example: user-password-change +The action captured by the event. +This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. -- -[float] -== event fields +*`event.category`*:: ++ +-- +type: keyword -The event fields are used for context information about the log or metric event itself. A log is defined as an event containing details of something that happened. Log events must include the time at which the thing happened. Examples of log events include a process starting on a host, a network packet being sent from a source to a destination, or a network connection between a client and a server being initiated or closed. A metric is defined as an event containing one or more numerical or categorical measurements and the time at which the measurement was taken. Examples of metric events include memory pressure measured on a host, or vulnerabilities measured on a scanned host. +example: user-management +Event category. +This contains high-level information about the contents of the event. It is more generic than `event.action`, in the sense that typically a category contains multiple actions. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. +-- -*`event.id`*:: +*`event.created`*:: + -- -type: keyword - -example: 8a4f500d - -Unique ID to describe the event. +type: date +event.created contains the date/time when the event was first read by an agent, or by your pipeline. +This field is distinct from @timestamp in that @timestamp typically contain the time extracted from the original event. +In most situations, these two timestamps will be slightly different. The difference can be used to calculate the delay between your source generating an event, and the time when your agent first processed it. This can be used to monitor your agent's or pipeline's ability to keep up with your event source. +In case the two timestamps are identical, @timestamp should be used. -- -*`event.kind`*:: +*`event.dataset`*:: + -- type: keyword -example: state - -The kind of the event. -This gives information about what type of information the event contains, without being specific to the contents of the event. Examples are `event`, `state`, `alarm`. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. +example: stats +Name of the dataset. +The concept of a `dataset` (fileset / metricset) is used in Beats as a subset of modules. It contains the information which is currently stored in metricset.name and metricset.module or fileset.name. -- -*`event.category`*:: +*`event.duration`*:: + -- -type: keyword +type: long -example: user-management +Duration of the event in nanoseconds. +If event.start and event.end are known this value should be the difference between the end and start time. -Event category. -This contains high-level information about the contents of the event. It is more generic than `event.action`, in the sense that typically a category contains multiple actions. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. +-- +*`event.end`*:: ++ +-- +type: date + +event.end contains the date when the event ended or when the activity was last observed. -- -*`event.action`*:: +*`event.hash`*:: + -- type: keyword -example: user-password-change - -The action captured by the event. -This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. +example: 123456789012345678901234567890ABCD +Hash (perhaps logstash fingerprint) of raw field to be able to demonstrate log integrity. -- -*`event.outcome`*:: +*`event.id`*:: + -- type: keyword -example: success - -The outcome of the event. -If the event describes an action, this fields contains the outcome of that action. Examples outcomes are `success` and `failure`. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. +example: 8a4f500d +Unique ID to describe the event. -- -*`event.type`*:: +*`event.kind`*:: + -- type: keyword -Reserved for future usage. -Please avoid using this field for user data. +example: state +The kind of the event. +This gives information about what type of information the event contains, without being specific to the contents of the event. Examples are `event`, `state`, `alarm`. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. -- @@ -1035,19 +1130,48 @@ example: mysql Name of the module this data is coming from. This information is coming from the modules used in Beats or Logstash. +-- +*`event.original`*:: ++ -- +type: keyword -*`event.dataset`*:: +example: Sep 19 08:26:10 host CEF:0|Security| threatmanager|1.0|100| worm successfully stopped|10|src=10.0.0.1 dst=2.1.2.2spt=1232 + +Raw text message of entire event. Used to demonstrate log integrity. +This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. + +-- + +*`event.outcome`*:: + -- type: keyword -example: stats +example: success -Name of the dataset. -The concept of a `dataset` (fileset / metricset) is used in Beats as a subset of modules. It contains the information which is currently stored in metricset.name and metricset.module or fileset.name. +The outcome of the event. +If the event describes an action, this fields contains the outcome of that action. Examples outcomes are `success` and `failure`. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. + +-- +*`event.risk_score`*:: ++ +-- +type: float + +Risk score or priority of the event (e.g. security solutions). Use your system's original value here. + +-- + +*`event.risk_score_norm`*:: ++ +-- +type: float + +Normalized risk score or priority of the event, on a scale of 0 to 100. +This is mainly useful if you use more than one system that assigns risk scores, and you want to see a normalized value across all systems. -- @@ -1058,122 +1182,132 @@ type: long example: 7 -Severity describes the severity of the event. What the different severity values mean can very different between use cases. It's up to the implementer to make sure severities are consistent across events. - +Severity describes the original severity of the event. What the different severity values mean can very different between use cases. It's up to the implementer to make sure severities are consistent across events. -- -*`event.original`*:: +*`event.start`*:: + -- -type: keyword +type: date -example: Sep 19 08:26:10 host CEF:0|Security| threatmanager|1.0|100| worm successfully stopped|10|src=10.0.0.1 dst=2.1.2.2spt=1232 +event.start contains the date when the event started or when the activity was first observed. -Raw text message of entire event. Used to demonstrate log integrity. -This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. +-- +*`event.timezone`*:: ++ +-- +type: keyword -Field is not indexed. +This field should be populated when the event's timestamp does not include timezone information already (e.g. default Syslog timestamps). It's optional otherwise. +Acceptable timezone formats are: a canonical ID (e.g. "Europe/Amsterdam"), abbreviated (e.g. "EST") or an HH:mm differential (e.g. "-05:00"). -- -*`event.hash`*:: +*`event.type`*:: + -- type: keyword -example: 123456789012345678901234567890ABCD +Reserved for future usage. +Please avoid using this field for user data. -Hash (perhaps logstash fingerprint) of raw field to be able to demonstrate log integrity. +-- +[float] +== file fields --- +A file is defined as a set of information that has been created on, or has existed on a filesystem. +File objects can be associated with host events, network events, and/or file events (e.g., those produced by File Integrity Monitoring [FIM] products or services). File fields provide details about the affected file associated with the event or metric. -*`event.duration`*:: + +*`file.ctime`*:: + -- -type: long +type: date -format: duration +Last time file metadata changed. -Duration of the event in nanoseconds. -If event.start and event.end are known this value should be the difference between the end and start time. +-- +*`file.device`*:: ++ +-- +type: keyword + +Device that is the source of the file. -- -*`event.timezone`*:: +*`file.extension`*:: + -- type: keyword -This field should be populated when the event's timestamp does not include timezone information already (e.g. default Syslog timestamps). It's optional otherwise. -Acceptable timezone formats are: a canonical ID (e.g. "Europe/Amsterdam"), abbreviated (e.g. "EST") or an HH:mm differential (e.g. "-05:00"). +example: png +File extension. +This should allow easy filtering by file extensions. -- -*`event.created`*:: +*`file.gid`*:: + -- -type: date - -event.created contains the date when the event was created. -This timestamp is distinct from @timestamp in that @timestamp contains the processed timestamp. For logs these two timestamps can be different as the timestamp in the log line and when the event is read for example by Filebeat are not identical. `@timestamp` must contain the timestamp extracted from the log line, event.created when the log line is read. The same could apply to package capturing where @timestamp contains the timestamp extracted from the network package and event.created when the event was created. -In case the two timestamps are identical, @timestamp should be used. +type: keyword +Primary group ID (GID) of the file. -- -*`event.start`*:: +*`file.group`*:: + -- -type: date +type: keyword -event.start contains the date when the event started or when the activity was first observed. +Primary group name of the file. +-- +*`file.inode`*:: ++ -- +type: keyword -*`event.end`*:: +Inode representing the file in the filesystem. + +-- + +*`file.mode`*:: + -- -type: date +type: keyword -event.end contains the date when the event ended or when the activity was last observed. +example: 416 +Mode of the file in octal representation. -- -*`event.risk_score`*:: +*`file.mtime`*:: + -- -type: float - -Risk score or priority of the event (e.g. security solutions). Use your system's original value here. +type: date +Last time file content was modified. -- -*`event.risk_score_norm`*:: +*`file.owner`*:: + -- -type: float - -Normalized risk score or priority of the event, on a scale of 0 to 100. -This is mainly useful if you use more than one system that assigns risk scores, and you want to see a normalized value across all systems. +type: keyword +File owner's username. -- -[float] -== file fields - -A file is defined as a set of information that has been created on, or has existed on a filesystem. File objects can be associated with host events, network events, and/or file events (e.g., those produced by File Integrity Monitoring [FIM] products or services). File fields provide details about the affected file associated with the event or metric. - - - *`file.path`*:: + -- @@ -1183,25 +1317,21 @@ Path to the file. -- -*`file.target_path`*:: +*`file.size`*:: + -- -type: keyword +type: long -Target path for symlinks. +File size in bytes (field is only added when `type` is `file`). -- -*`file.extension`*:: +*`file.target_path`*:: + -- type: keyword -example: png - -File extension. -This should allow easy filtering by file extensions. - +Target path for symlinks. -- @@ -1214,98 +1344,109 @@ File type (file, dir, or symlink). -- -*`file.device`*:: +*`file.uid`*:: + -- type: keyword -Device that is the source of the file. +The user ID (UID) or security identifier (SID) of the file owner. -- -*`file.inode`*:: -+ --- -type: keyword +[float] +== geo fields -Inode representing the file in the filesystem. +Geo fields can carry data about a specific location related to an event. +This geolocation information can be derived from techniques such as Geo IP, or be user-supplied. --- -*`file.uid`*:: +*`geo.city_name`*:: + -- type: keyword -The user ID (UID) or security identifier (SID) of the file owner. +example: Montreal +City name. -- -*`file.owner`*:: +*`geo.continent_name`*:: + -- type: keyword -File owner's username. +example: North America + +Name of the continent. -- -*`file.gid`*:: +*`geo.country_iso_code`*:: + -- type: keyword -Primary group ID (GID) of the file. +example: CA + +Country ISO code. -- -*`file.group`*:: +*`geo.country_name`*:: + -- type: keyword -Primary group name of the file. +example: Canada + +Country name. -- -*`file.mode`*:: +*`geo.location`*:: + -- -type: keyword +type: geo_point -example: 416 +example: { "lon": -73.614830, "lat": 45.505918 } -Mode of the file in octal representation. +Longitude and latitude. -- -*`file.size`*:: +*`geo.name`*:: + -- -type: long +type: keyword -format: bytes +example: boston-dc -File size in bytes (field is only added when `type` is `file`). +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`file.mtime`*:: +*`geo.region_iso_code`*:: + -- -type: date +type: keyword -Last time file content was modified. +example: CA-QC + +Region ISO code. -- -*`file.ctime`*:: +*`geo.region_name`*:: + -- -type: date +type: keyword -Last time file metadata changed. +example: Quebec + +Region name. -- @@ -1315,7 +1456,6 @@ Last time file metadata changed. The group fields are meant to represent groups that are relevant to the event. - *`group.id`*:: + -- @@ -1323,7 +1463,6 @@ type: keyword Unique identifier for the group on the system/platform. - -- *`group.name`*:: @@ -1333,133 +1472,162 @@ type: keyword Name of the group. - -- [float] == host fields -A host is defined as a general computing instance. ECS host.* fields should be populated with details about the host on which the event happened, or on which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes. - +A host is defined as a general computing instance. +ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes. -*`host.hostname`*:: +*`host.architecture`*:: + -- type: keyword -Hostname of the host. -It normally contains what the `hostname` command returns on the host machine. +example: x86_64 +Operating system architecture. -- -*`host.name`*:: +*`host.geo.city_name`*:: + -- type: keyword -Name of the host. -It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. +example: Montreal +City name. -- -*`host.id`*:: +*`host.geo.continent_name`*:: + -- type: keyword -Unique host id. -As hostname is not always unique, use values that are meaningful in your environment. -Example: The current usage of `beat.name`. +example: North America +Name of the continent. -- -*`host.ip`*:: +*`host.geo.country_iso_code`*:: + -- -type: ip +type: keyword -Host ip address. +example: CA +Country ISO code. -- -*`host.mac`*:: +*`host.geo.country_name`*:: + -- type: keyword -Host mac address. +example: Canada +Country name. -- -*`host.type`*:: +*`host.geo.location`*:: + -- -type: keyword +type: geo_point -Type of host. -For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. +example: { "lon": -73.614830, "lat": 45.505918 } +Longitude and latitude. -- -*`host.architecture`*:: +*`host.geo.name`*:: + -- type: keyword -example: x86_64 - -Operating system architecture. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -[float] -== os fields +*`host.geo.region_iso_code`*:: ++ +-- +type: keyword -The OS fields contain information about the operating system. +example: CA-QC +Region ISO code. +-- -*`host.os.platform`*:: +*`host.geo.region_name`*:: + -- type: keyword -example: darwin +example: Quebec -Operating system platform (such centos, ubuntu, windows). +Region name. + +-- +*`host.hostname`*:: ++ +-- +type: keyword + +Hostname of the host. +It normally contains what the `hostname` command returns on the host machine. -- -*`host.os.name`*:: +*`host.id`*:: + -- type: keyword -example: Mac OS X +Unique host id. +As hostname is not always unique, use values that are meaningful in your environment. +Example: The current usage of `beat.name`. -Operating system name, without the version. +-- + +*`host.ip`*:: ++ +-- +type: ip +Host ip address. -- -*`host.os.full`*:: +*`host.mac`*:: + -- type: keyword -example: Mac OS Mojave +Host mac address. -Operating system name, including the version or code name. +-- + +*`host.name`*:: ++ +-- +type: keyword +Name of the host. +It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. -- @@ -1472,18 +1640,16 @@ example: debian OS family (such as redhat, debian, freebsd, windows). - -- -*`host.os.version`*:: +*`host.os.full`*:: + -- type: keyword -example: 10.14.1 - -Operating system version as a raw string. +example: Mac OS Mojave +Operating system name, including the version or code name. -- @@ -1496,131 +1662,133 @@ example: 4.4.0-112-generic Operating system kernel version as a raw string. - -- -[float] -== geo fields +*`host.os.name`*:: ++ +-- +type: keyword -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. +example: Mac OS X +Operating system name, without the version. +-- -*`host.geo.location`*:: +*`host.os.platform`*:: + -- -type: geo_point - -example: { "lon": -73.614830, "lat": 45.505918 } +type: keyword -Longitude and latitude. +example: darwin +Operating system platform (such centos, ubuntu, windows). -- -*`host.geo.continent_name`*:: +*`host.os.version`*:: + -- type: keyword -example: North America - -Name of the continent. +example: 10.14.1 +Operating system version as a raw string. -- -*`host.geo.country_name`*:: +*`host.type`*:: + -- type: keyword -example: Canada +Type of host. +For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. -Country name. +-- + +*`host.user.email`*:: ++ +-- +type: keyword +User email address. -- -*`host.geo.region_name`*:: +*`host.user.full_name`*:: + -- type: keyword -example: Quebec - -Region name. +example: Albert Einstein +User's full name, if available. -- -*`host.geo.city_name`*:: +*`host.user.group.id`*:: + -- type: keyword -example: Montreal +Unique identifier for the group on the system/platform. -City name. +-- + +*`host.user.group.name`*:: ++ +-- +type: keyword +Name of the group. -- -*`host.geo.country_iso_code`*:: +*`host.user.hash`*:: + -- type: keyword -example: CA - -Country ISO code. - +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -- -*`host.geo.region_iso_code`*:: +*`host.user.id`*:: + -- type: keyword -example: CA-QC - -Region ISO code. - +One or multiple unique identifiers of the user. -- -*`host.geo.name`*:: +*`host.user.name`*:: + -- type: keyword -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +example: albert +Short name or login of the user. -- [float] == http fields -Fields related to HTTP activity. - +Fields related to HTTP activity. Use the `url` field set to store the url of the request. -*`http.request.method`*:: +*`http.request.body.bytes`*:: + -- -type: keyword - -example: get, post, put +type: long -Http request method. -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. +example: 887 +Size in bytes of the request body. -- @@ -1631,84 +1799,63 @@ type: keyword example: Hello world -The full http request body. - - --- - -*`http.request.referrer`*:: -+ --- -type: keyword - -example: https://blog.example.com/ - -Referrer for this HTTP request. - +The full HTTP request body. -- -*`http.response.status_code`*:: +*`http.request.bytes`*:: + -- type: long -example: 404 - -Http response status code. +example: 1437 +Total size in bytes of the request (body and headers). -- -*`http.response.body.content`*:: +*`http.request.method`*:: + -- type: keyword -example: Hello world - -The full http response body. +example: get, post, put +HTTP request method. +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". -- -*`http.version`*:: +*`http.request.referrer`*:: + -- type: keyword -example: 1.1 - -Http version. +example: https://blog.example.com/ +Referrer for this HTTP request. -- -*`http.request.bytes`*:: +*`http.response.body.bytes`*:: + -- type: long -example: 1437 - -format: bytes - -Total size in bytes of the request (body and headers). +example: 887 +Size in bytes of the response body. -- -*`http.request.body.bytes`*:: +*`http.response.body.content`*:: + -- -type: long - -example: 887 - -format: bytes +type: keyword -Size in bytes of the request body. +example: Hello world +The full HTTP response body. -- @@ -1719,24 +1866,29 @@ type: long example: 1437 -format: bytes - Total size in bytes of the response (body and headers). - -- -*`http.response.body.bytes`*:: +*`http.response.status_code`*:: + -- type: long -example: 887 +example: 404 -format: bytes +HTTP response status code. -Size in bytes of the response body. +-- + +*`http.version`*:: ++ +-- +type: keyword + +example: 1.1 +HTTP version. -- @@ -1746,17 +1898,15 @@ Size in bytes of the response body. Fields which are specific to log events. - *`log.level`*:: + -- type: keyword -example: ERR - -Log level of the log event. -Some examples are `WARN`, `ERR`, `INFO`. +example: err +Original log level of the log event. +Some examples are `warn`, `error`, `i`. -- @@ -1767,96 +1917,52 @@ type: keyword example: Sep 19 08:26:10 localhost My log - This is the original log message and contains the full log message before splitting it up in multiple parts. In contrast to the `message` field which can contain an extracted part of the log message, this field contains the original, full log message. It can have already some modifications applied like encoding or new lines removed to clean up the log message. This field is not indexed and doc_values are disabled so it can't be queried but the value can be retrieved from `_source`. - -Field is not indexed. - -- [float] == network fields -The network is defined as the communication path over which a host or network event happens. The network.* fields should be populated with details about the network activity associated with an event. - - - -*`network.name`*:: -+ --- -type: keyword - -example: Guest Wifi - -Name given by operators to sections of their network. - - --- - -*`network.type`*:: -+ --- -type: keyword - -example: ipv4 - -In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. - - --- - -*`network.iana_number`*:: -+ --- -type: keyword - -example: 6 - -IANA Protocol Number (https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml). Standardized list of protocols. This aligns well with NetFlow and sFlow related logs which use the IANA Protocol Number. - +The network is defined as the communication path over which a host or network event happens. +The network.* fields should be populated with details about the network activity associated with an event. --- -*`network.transport`*:: +*`network.application`*:: + -- type: keyword -example: tcp - -Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. +example: aim +A name given to an application level protocol. This can be arbitrarily assigned for things like microservices, but also apply to things like skype, icq, facebook, twitter. This would be used in situations where the vendor or service can be decoded such as from the source/dest IP owners, ports, or wire format. +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". -- -*`network.application`*:: +*`network.bytes`*:: + -- -type: keyword - -example: aim +type: long -A name given to an application. This can be arbitrarily assigned for things like microservices, but also apply to things like skype, icq, facebook, twitter. This would be used in situations where the vendor or service can be decoded such as from the source/dest IP owners, ports, or wire format. -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. +example: 368 +Total bytes transferred in both directions. +If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. -- -*`network.protocol`*:: +*`network.community_id`*:: + -- type: keyword -example: http - -L7 Network protocol name. ex. http, lumberjack, transport protocol. -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. +example: 1:hO+sN4H+MG5MY/8hIrXPqc4ZQz0= +A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. +Learn more at https://github.com/corelight/community-id-spec. -- @@ -1878,7 +1984,6 @@ Recommended values are: When mapping events from a host-based monitoring context, populate this field from the host's point of view. When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of your network perimeter. - -- *`network.forwarded_ip`*:: @@ -1890,34 +1995,27 @@ example: 192.1.1.2 Host IP address when the source IP address is the proxy. - -- -*`network.community_id`*:: +*`network.iana_number`*:: + -- type: keyword -example: 1:hO+sN4H+MG5MY/8hIrXPqc4ZQz0= - -A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. -Learn more at https://github.com/corelight/community-id-spec. +example: 6 +IANA Protocol Number (https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml). Standardized list of protocols. This aligns well with NetFlow and sFlow related logs which use the IANA Protocol Number. -- -*`network.bytes`*:: +*`network.name`*:: + -- -type: long - -example: 368 - -format: bytes +type: keyword -Total bytes transferred in both directions. -If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. +example: Guest Wifi +Name given by operators to sections of their network. -- @@ -1931,129 +2029,165 @@ example: 24 Total packets transferred in both directions. If `source.packets` and `destination.packets` are known, `network.packets` is their sum. - -- -[float] -== observer fields +*`network.protocol`*:: ++ +-- +type: keyword -An observer is defined as a special network, security, or application device used to detect, observe, or create network, security, or application-related events and metrics. This could be a custom hardware appliance or a server that has been configured to run special network, security, or application software. Examples include firewalls, intrusion detection/prevention systems, network monitoring sensors, web application firewalls, data loss prevention systems, and APM servers. The observer.* fields shall be populated with details of the system, if any, that detects, observes and/or creates a network, security, or application event or metric. Message queues and ETL components used in processing events or metrics are not considered observers in ECS. +example: http +L7 Network protocol name. ex. http, lumberjack, transport protocol. +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". +-- -*`observer.mac`*:: +*`network.transport`*:: + -- type: keyword -MAC address of the observer +example: tcp +Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". -- -*`observer.ip`*:: +*`network.type`*:: + -- -type: ip +type: keyword -IP address of the observer. +example: ipv4 +In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". -- -*`observer.hostname`*:: +[float] +== observer fields + +An observer is defined as a special network, security, or application device used to detect, observe, or create network, security, or application-related events and metrics. +This could be a custom hardware appliance or a server that has been configured to run special network, security, or application software. Examples include firewalls, intrusion detection/prevention systems, network monitoring sensors, web application firewalls, data loss prevention systems, and APM servers. The observer.* fields shall be populated with details of the system, if any, that detects, observes and/or creates a network, security, or application event or metric. Message queues and ETL components used in processing events or metrics are not considered observers in ECS. + + +*`observer.geo.city_name`*:: + -- type: keyword -Hostname of the observer. +example: Montreal +City name. -- -*`observer.vendor`*:: +*`observer.geo.continent_name`*:: + -- type: keyword -observer vendor information. +example: North America +Name of the continent. -- -*`observer.version`*:: +*`observer.geo.country_iso_code`*:: + -- type: keyword -Observer version. +example: CA +Country ISO code. -- -*`observer.serial_number`*:: +*`observer.geo.country_name`*:: + -- type: keyword -Observer serial number. +example: Canada +Country name. -- -*`observer.type`*:: +*`observer.geo.location`*:: + -- -type: keyword +type: geo_point -example: firewall +example: { "lon": -73.614830, "lat": 45.505918 } -The type of the observer the data is coming from. -There is no predefined list of observer types. Some examples are `forwarder`, `firewall`, `ids`, `ips`, `proxy`, `poller`, `sensor`, `APM server`. +Longitude and latitude. +-- +*`observer.geo.name`*:: ++ -- +type: keyword -[float] -== os fields +example: boston-dc -The OS fields contain information about the operating system. +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. + +-- + +*`observer.geo.region_iso_code`*:: ++ +-- +type: keyword +example: CA-QC + +Region ISO code. +-- -*`observer.os.platform`*:: +*`observer.geo.region_name`*:: + -- type: keyword -example: darwin - -Operating system platform (such centos, ubuntu, windows). +example: Quebec +Region name. -- -*`observer.os.name`*:: +*`observer.hostname`*:: + -- type: keyword -example: Mac OS X +Hostname of the observer. -Operating system name, without the version. +-- + +*`observer.ip`*:: ++ +-- +type: ip +IP address of the observer. -- -*`observer.os.full`*:: +*`observer.mac`*:: + -- type: keyword -example: Mac OS Mojave - -Operating system name, including the version or code name. - +MAC address of the observer -- @@ -2066,18 +2200,16 @@ example: debian OS family (such as redhat, debian, freebsd, windows). - -- -*`observer.os.version`*:: +*`observer.os.full`*:: + -- type: keyword -example: 10.14.1 - -Operating system version as a raw string. +example: Mac OS Mojave +Operating system name, including the version or code name. -- @@ -2090,138 +2222,102 @@ example: 4.4.0-112-generic Operating system kernel version as a raw string. - --- - -[float] -== geo fields - -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. - - - -*`observer.geo.location`*:: -+ --- -type: geo_point - -example: { "lon": -73.614830, "lat": 45.505918 } - -Longitude and latitude. - - -- -*`observer.geo.continent_name`*:: +*`observer.os.name`*:: + -- type: keyword -example: North America - -Name of the continent. +example: Mac OS X +Operating system name, without the version. -- -*`observer.geo.country_name`*:: +*`observer.os.platform`*:: + -- type: keyword -example: Canada - -Country name. +example: darwin +Operating system platform (such centos, ubuntu, windows). -- -*`observer.geo.region_name`*:: +*`observer.os.version`*:: + -- type: keyword -example: Quebec - -Region name. +example: 10.14.1 +Operating system version as a raw string. -- -*`observer.geo.city_name`*:: +*`observer.serial_number`*:: + -- type: keyword -example: Montreal - -City name. - +Observer serial number. -- -*`observer.geo.country_iso_code`*:: +*`observer.type`*:: + -- type: keyword -example: CA - -Country ISO code. +example: firewall +The type of the observer the data is coming from. +There is no predefined list of observer types. Some examples are `forwarder`, `firewall`, `ids`, `ips`, `proxy`, `poller`, `sensor`, `APM server`. -- -*`observer.geo.region_iso_code`*:: +*`observer.vendor`*:: + -- type: keyword -example: CA-QC - -Region ISO code. - +observer vendor information. -- -*`observer.geo.name`*:: +*`observer.version`*:: + -- type: keyword -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. - +Observer version. -- [float] == organization fields -The organization fields enrich data with information about the company or entity the data is associated with. These fields help you arrange or filter data stored in an index by one or multiple organizations. - +The organization fields enrich data with information about the company or entity the data is associated with. +These fields help you arrange or filter data stored in an index by one or multiple organizations. -*`organization.name`*:: +*`organization.id`*:: + -- type: keyword -Organization name. - +Unique identifier for the organization. -- -*`organization.id`*:: +*`organization.name`*:: + -- type: keyword -Unique identifier for the organization. - +Organization name. -- @@ -2231,93 +2327,99 @@ Unique identifier for the organization. The OS fields contain information about the operating system. - -*`os.platform`*:: +*`os.family`*:: + -- type: keyword -example: darwin - -Operating system platform (such centos, ubuntu, windows). +example: debian +OS family (such as redhat, debian, freebsd, windows). -- -*`os.name`*:: +*`os.full`*:: + -- type: keyword -example: Mac OS X - -Operating system name, without the version. +example: Mac OS Mojave +Operating system name, including the version or code name. -- -*`os.full`*:: +*`os.kernel`*:: + -- type: keyword -example: Mac OS Mojave - -Operating system name, including the version or code name. +example: 4.4.0-112-generic +Operating system kernel version as a raw string. -- -*`os.family`*:: +*`os.name`*:: + -- type: keyword -example: debian - -OS family (such as redhat, debian, freebsd, windows). +example: Mac OS X +Operating system name, without the version. -- -*`os.version`*:: +*`os.platform`*:: + -- type: keyword -example: 10.14.1 - -Operating system version as a raw string. +example: darwin +Operating system platform (such centos, ubuntu, windows). -- -*`os.kernel`*:: +*`os.version`*:: + -- type: keyword -example: 4.4.0-112-generic - -Operating system kernel version as a raw string. +example: 10.14.1 +Operating system version as a raw string. -- [float] == process fields -These fields contain information about a process. These fields can help you correlate metrics information with a process id/name from a log message. The `process.pid` often stays in the metric itself and is copied to the global field for correlation. +These fields contain information about a process. +These fields can help you correlate metrics information with a process id/name from a log message. The `process.pid` often stays in the metric itself and is copied to the global field for correlation. + +*`process.args`*:: ++ +-- +type: keyword +example: ['ssh', '-l', 'user', '10.0.0.16'] -*`process.pid`*:: +Array of process arguments. +May be filtered to protect sensitive information. + +-- + +*`process.executable`*:: + -- -type: long +type: keyword -Process id. +example: /usr/bin/ssh +Absolute path to the process executable. -- @@ -2331,6 +2433,14 @@ example: ssh Process name. Sometimes called program name or similar. +-- + +*`process.pid`*:: ++ +-- +type: long + +Process id. -- @@ -2341,31 +2451,27 @@ type: long Process parent id. - -- -*`process.args`*:: +*`process.start`*:: + -- -type: keyword - -example: ['ssh', '-l', 'user', '10.0.0.16'] +type: date -Process arguments. -May be filtered to protect sensitive information. +example: 2016-05-23T08:05:34.853Z +The time the process started. -- -*`process.executable`*:: +*`process.thread.id`*:: + -- -type: keyword - -example: /usr/bin/ssh +type: long -Absolute path to the process executable. +example: 4242 +Thread ID. -- @@ -2377,133 +2483,180 @@ type: keyword Process title. The proctitle, some times the same as process name. Can also be different: for example a browser setting its title to the web page currently opened. - -- -*`process.thread.id`*:: +*`process.working_directory`*:: + -- -type: long +type: keyword -example: 4242 +example: /home/alice -Thread ID. +The working directory of the process. + +-- + +[float] +== related fields + +This field set is meant to facilitate pivoting around a piece of data. +Some pieces of information can be seen in many places in an ECS event. To facilitate searching for them, store an array of all seen values to their corresponding field in `related.`. +A concrete example is IP addresses, which can be under host, observer, source, destination, client, server, and network.forwarded_ip. If you append all IPs to `related.ip`, you can then search for a given IP trivially, no matter where it appeared, by querying `related.ip:a.b.c.d`. +*`related.ip`*:: ++ -- +type: ip -*`process.start`*:: +All of the IPs seen on your event. + +-- + +[float] +== server fields + +A Server is defined as the responder in a network connection for events regarding sessions, connections, or bidirectional flow records. +For TCP events, the server is the receiver of the initial SYN packet(s) of the TCP connection. For other protocols, the server is generally the responder in the network transaction. Some systems actually use the term "responder" to refer the server in TCP connections. The server fields describe details about the system acting as the server in the network event. Server fields are usually populated in conjunction with client fields. Server fields are generally not populated for packet-level events. +Client / server representations can add semantic context to an exchange, which is helpful to visualize the data in certain situations. If your context falls in that category, you should still ensure that source and destination are filled appropriately. + + +*`server.address`*:: + -- -type: date +type: keyword -example: 2016-05-23T08:05:34.853Z +Some event server addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. +Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. -The time the process started. +-- +*`server.bytes`*:: ++ +-- +type: long + +example: 184 + +Bytes sent from the server to the client. -- -*`process.working_directory`*:: +*`server.domain`*:: + -- type: keyword -example: /home/alice - -The working directory of the process. +Server domain. +-- +*`server.geo.city_name`*:: ++ -- +type: keyword -[float] -== related fields - -This field set is meant to facilitate pivoting around a piece of data. Some pieces of information can be seen in many places in ECS. To facilitate searching for them, append values to their corresponding field in `related.`. A concrete example is IP addresses, which can be under host, observer, source, destination, client, server, and network.forwarded_ip. If you append all IPs to `related.ip`, you can then search for a given IP trivially, no matter where it appeared, by querying `related.ip:a.b.c.d`. +example: Montreal +City name. +-- -*`related.ip`*:: +*`server.geo.continent_name`*:: + -- -type: ip +type: keyword -All of the IPs seen on your event. +example: North America +Name of the continent. -- -[float] -== server fields +*`server.geo.country_iso_code`*:: ++ +-- +type: keyword -A Server is defined as the responder in a network connection for events regarding sessions, connections, or bidirectional flow records. For TCP events, the server is the receiver of the initial SYN packet(s) of the TCP connection. For other protocols, the server is generally the responder in the network transaction. Some systems actually use the term "responder" to refer the server in TCP connections. The server fields describe details about the system acting as the server in the network event. Server fields are usually populated in conjunction with client fields. Server fields are generally not populated for packet-level events. -Client / server representations can add semantic context to an exchange, which is helpful to visualize the data in certain situations. If your context falls in that category, you should still ensure that source and destination are filled appropriately. +example: CA +Country ISO code. +-- -*`server.address`*:: +*`server.geo.country_name`*:: + -- type: keyword -Some event server addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. -Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. +example: Canada +Country name. -- -*`server.ip`*:: +*`server.geo.location`*:: + -- -type: ip +type: geo_point -IP address of the server. -Can be one or multiple IPv4 or IPv6 addresses. +example: { "lon": -73.614830, "lat": 45.505918 } +Longitude and latitude. -- -*`server.port`*:: +*`server.geo.name`*:: + -- -type: long +type: keyword -Port of the server. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`server.mac`*:: +*`server.geo.region_iso_code`*:: + -- type: keyword -MAC address of the server. +example: CA-QC +Region ISO code. -- -*`server.domain`*:: +*`server.geo.region_name`*:: + -- type: keyword -Server domain. +example: Quebec +Region name. -- -*`server.bytes`*:: +*`server.ip`*:: + -- -type: long +type: ip -example: 184 +IP address of the server. +Can be one or multiple IPv4 or IPv6 addresses. -format: bytes +-- -Bytes sent from the server to the client. +*`server.mac`*:: ++ +-- +type: keyword +MAC address of the server. -- @@ -2516,120 +2669,103 @@ example: 12 Packets sent from the server to the client. - -- -[float] -== geo fields - -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. - - - -*`server.geo.location`*:: +*`server.port`*:: + -- -type: geo_point - -example: { "lon": -73.614830, "lat": 45.505918 } - -Longitude and latitude. +type: long +Port of the server. -- -*`server.geo.continent_name`*:: +*`server.user.email`*:: + -- type: keyword -example: North America - -Name of the continent. - +User email address. -- -*`server.geo.country_name`*:: +*`server.user.full_name`*:: + -- type: keyword -example: Canada - -Country name. +example: Albert Einstein +User's full name, if available. -- -*`server.geo.region_name`*:: +*`server.user.group.id`*:: + -- type: keyword -example: Quebec - -Region name. - +Unique identifier for the group on the system/platform. -- -*`server.geo.city_name`*:: +*`server.user.group.name`*:: + -- type: keyword -example: Montreal - -City name. - +Name of the group. -- -*`server.geo.country_iso_code`*:: +*`server.user.hash`*:: + -- type: keyword -example: CA - -Country ISO code. - +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -- -*`server.geo.region_iso_code`*:: +*`server.user.id`*:: + -- type: keyword -example: CA-QC - -Region ISO code. - +One or multiple unique identifiers of the user. -- -*`server.geo.name`*:: +*`server.user.name`*:: + -- type: keyword -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +example: albert +Short name or login of the user. -- [float] == service fields -The service fields describe the service for or from which the data was collected. These fields help you find and correlate logs for a specific service and version. +The service fields describe the service for or from which the data was collected. +These fields help you find and correlate logs for a specific service and version. + + +*`service.ephemeral_id`*:: ++ +-- +type: keyword + +example: 8a4f500f +Ephemeral identifier of this service (if one exists). +This id normally changes across restarts, but `service.id` does not. +-- *`service.id`*:: + @@ -2642,7 +2778,6 @@ Unique identifier of the running service. This id should uniquely identify this service. This makes it possible to correlate logs and metrics for one specific service. Example: If you are experiencing issues with one redis instance, you can filter on that id to see metrics and logs for that single instance. - -- *`service.name`*:: @@ -2657,6 +2792,14 @@ The name of the service is normally user given. This allows if two instances of Also it allows for distributed services that run on multiple hosts to correlate the related instances based on the name. In the case of Elasticsearch the service.name could contain the cluster name. For Beats the service.name is by default a copy of the `service.type` field if no name is specified. +-- + +*`service.state`*:: ++ +-- +type: keyword + +Current state of the service. -- @@ -2671,115 +2814,163 @@ The type of the service data is collected from. The type can be used to group and correlate logs and metrics from one service type. Example: If logs or metrics are collected from Elasticsearch, `service.type` would be `elasticsearch`. - -- -*`service.state`*:: +*`service.version`*:: + -- type: keyword -Current state of the service. +example: 3.2.4 +Version of the service the data was collected from. +This allows to look at a data set only for a specific version of a service. -- -*`service.version`*:: +[float] +== source fields + +Source fields describe details about the source of a packet/event. +Source fields are usually populated in conjunction with destination fields. + + +*`source.address`*:: + -- type: keyword -example: 3.2.4 +Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. +Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. -Version of the service the data was collected from. -This allows to look at a data set only for a specific version of a service. +-- + +*`source.bytes`*:: ++ +-- +type: long + +example: 184 +Bytes sent from the source to the destination. -- -*`service.ephemeral_id`*:: +*`source.domain`*:: + -- type: keyword -example: 8a4f500f +Source domain. -Ephemeral identifier of this service (if one exists). -This id normally changes across restarts, but `service.id` does not. +-- + +*`source.geo.city_name`*:: ++ +-- +type: keyword + +example: Montreal +City name. -- -[float] -== source fields +*`source.geo.continent_name`*:: ++ +-- +type: keyword -Source fields describe details about the source of a packet/event. Source fields are usually populated in conjunction with destination fields. +example: North America +Name of the continent. +-- -*`source.address`*:: +*`source.geo.country_iso_code`*:: + -- type: keyword -Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. -Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. +example: CA +Country ISO code. -- -*`source.ip`*:: +*`source.geo.country_name`*:: + -- -type: ip +type: keyword -IP address of the source. -Can be one or multiple IPv4 or IPv6 addresses. +example: Canada +Country name. -- -*`source.port`*:: +*`source.geo.location`*:: + -- -type: long +type: geo_point -Port of the source. +example: { "lon": -73.614830, "lat": 45.505918 } +Longitude and latitude. -- -*`source.mac`*:: +*`source.geo.name`*:: + -- type: keyword -MAC address of the source. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`source.domain`*:: +*`source.geo.region_iso_code`*:: + -- type: keyword -Source domain. +example: CA-QC +Region ISO code. -- -*`source.bytes`*:: +*`source.geo.region_name`*:: + -- -type: long +type: keyword -example: 184 +example: Quebec + +Region name. + +-- + +*`source.ip`*:: ++ +-- +type: ip + +IP address of the source. +Can be one or multiple IPv4 or IPv6 addresses. -format: bytes +-- -Bytes sent from the source to the destination. +*`source.mac`*:: ++ +-- +type: keyword +MAC address of the source. -- @@ -2792,133 +2983,110 @@ example: 12 Packets sent from the source to the destination. - -- -[float] -== geo fields - -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. - - - -*`source.geo.location`*:: +*`source.port`*:: + -- -type: geo_point - -example: { "lon": -73.614830, "lat": 45.505918 } - -Longitude and latitude. +type: long +Port of the source. -- -*`source.geo.continent_name`*:: +*`source.user.email`*:: + -- type: keyword -example: North America - -Name of the continent. - +User email address. -- -*`source.geo.country_name`*:: +*`source.user.full_name`*:: + -- type: keyword -example: Canada - -Country name. +example: Albert Einstein +User's full name, if available. -- -*`source.geo.region_name`*:: +*`source.user.group.id`*:: + -- type: keyword -example: Quebec - -Region name. - +Unique identifier for the group on the system/platform. -- -*`source.geo.city_name`*:: +*`source.user.group.name`*:: + -- type: keyword -example: Montreal - -City name. - +Name of the group. -- -*`source.geo.country_iso_code`*:: +*`source.user.hash`*:: + -- type: keyword -example: CA - -Country ISO code. - +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -- -*`source.geo.region_iso_code`*:: +*`source.user.id`*:: + -- type: keyword -example: CA-QC - -Region ISO code. - +One or multiple unique identifiers of the user. -- -*`source.geo.name`*:: +*`source.user.name`*:: + -- type: keyword -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +example: albert +Short name or login of the user. -- [float] == url fields -URL fields provide a complete URL, with scheme, host, and path. +URL fields provide support for complete or partial URLs, and supports the breaking down into scheme, domain, path, and so on. - -*`url.original`*:: +*`url.domain`*:: + -- type: keyword -example: https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch +example: www.elastic.co +Domain of the url, such as "www.elastic.co". +In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the `domain` field. -Unmodified original url as seen in the event source. -Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path. -This field is meant to represent the URL as it was observed, complete or not. +-- + +*`url.fragment`*:: ++ +-- +type: keyword +Portion of the url after the `#`, such as "top". +The `#` is not part of the fragment. -- @@ -2931,54 +3099,47 @@ example: https://www.elastic.co:443/search?q=elasticsearch#top If full URLs are important to your use case, they should be stored in `url.full`, whether this field is reconstructed or present in the event source. - -- -*`url.scheme`*:: +*`url.original`*:: + -- type: keyword -example: https - -Scheme of the request, such as "https". -Note: The `:` is not part of the scheme. +example: https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch +Unmodified original url as seen in the event source. +Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path. +This field is meant to represent the URL as it was observed, complete or not. -- -*`url.domain`*:: +*`url.password`*:: + -- type: keyword -example: www.elastic.co - -Domain of the request, such as "www.elastic.co". -In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the `domain` field. - +Password of the request. -- -*`url.port`*:: +*`url.path`*:: + -- -type: integer - -example: 443 - -Port of the request, such as 443. +type: keyword +Path of the request, such as "/search". -- -*`url.path`*:: +*`url.port`*:: + -- -type: keyword +type: long -Path of the request, such as "/search". +example: 443 +Port of the request, such as 443. -- @@ -2990,17 +3151,17 @@ type: keyword The query field describes the query string of the request, such as "q=elasticsearch". The `?` is excluded from the query string. If a URL contains no `?`, there is no query field. If there is a `?` but no query, the query field exists with an empty string. The `exists` query can be used to differentiate between the two cases. - -- -*`url.fragment`*:: +*`url.scheme`*:: + -- type: keyword -Portion of the url after the `#`, such as "top". -The `#` is not part of the fragment. +example: https +Scheme of the request, such as "https". +Note: The `:` is not part of the scheme. -- @@ -3011,67 +3172,50 @@ type: keyword Username of the request. - --- - -*`url.password`*:: -+ --- -type: keyword - -Password of the request. - - -- [float] == user fields -The user fields describe information about the user that is relevant to the event. Fields can have one entry or multiple entries. If a user has more than one id, provide an array that includes all of them. - +The user fields describe information about the user that is relevant to the event. +Fields can have one entry or multiple entries. If a user has more than one id, provide an array that includes all of them. -*`user.id`*:: +*`user.email`*:: + -- type: keyword -One or multiple unique identifiers of the user. - +User email address. -- -*`user.name`*:: +*`user.full_name`*:: + -- type: keyword -example: albert - -Short name or login of the user. +example: Albert Einstein +User's full name, if available. -- -*`user.full_name`*:: +*`user.group.id`*:: + -- type: keyword -example: Albert Einstein - -User's full name, if available. - +Unique identifier for the group on the system/platform. -- -*`user.email`*:: +*`user.group.name`*:: + -- type: keyword -User email address. - +Name of the group. -- @@ -3083,52 +3227,43 @@ type: keyword Unique user hash to correlate information for a user in anonymized form. Useful if `user.id` or `user.name` contain confidential information and cannot be used. - -- -[float] -== group fields - -The group fields are meant to represent groups that are relevant to the event. - - - -*`user.group.id`*:: +*`user.id`*:: + -- type: keyword -Unique identifier for the group on the system/platform. - +One or multiple unique identifiers of the user. -- -*`user.group.name`*:: +*`user.name`*:: + -- type: keyword -Name of the group. +example: albert +Short name or login of the user. -- [float] == user_agent fields -The user_agent fields normally come from a browser request. They often show up in web service logs coming from the parsed user agent string. +The user_agent fields normally come from a browser request. +They often show up in web service logs coming from the parsed user agent string. - -*`user_agent.original`*:: +*`user_agent.device.name`*:: + -- type: keyword -example: Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1 - -Unparsed version of the user_agent. +example: iPhone +Name of the device. -- @@ -3141,85 +3276,71 @@ example: Safari Name of the user agent. - -- -*`user_agent.version`*:: +*`user_agent.original`*:: + -- type: keyword -example: 12.0 - -Version of the user agent. +example: Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1 +Unparsed version of the user_agent. -- -*`user_agent.device.name`*:: +*`user_agent.os.family`*:: + -- type: keyword -example: iPhone - -Name of the device. +example: debian +OS family (such as redhat, debian, freebsd, windows). -- -[float] -== os fields - -The OS fields contain information about the operating system. - - - -*`user_agent.os.platform`*:: +*`user_agent.os.full`*:: + -- type: keyword -example: darwin - -Operating system platform (such centos, ubuntu, windows). +example: Mac OS Mojave +Operating system name, including the version or code name. -- -*`user_agent.os.name`*:: +*`user_agent.os.kernel`*:: + -- type: keyword -example: Mac OS X - -Operating system name, without the version. +example: 4.4.0-112-generic +Operating system kernel version as a raw string. -- -*`user_agent.os.full`*:: +*`user_agent.os.name`*:: + -- type: keyword -example: Mac OS Mojave - -Operating system name, including the version or code name. +example: Mac OS X +Operating system name, without the version. -- -*`user_agent.os.family`*:: +*`user_agent.os.platform`*:: + -- type: keyword -example: debian - -OS family (such as redhat, debian, freebsd, windows). +example: darwin +Operating system platform (such centos, ubuntu, windows). -- @@ -3232,28 +3353,16 @@ example: 10.14.1 Operating system version as a raw string. - --- - -*`user_agent.os.kernel`*:: -+ --- -type: keyword - -example: 4.4.0-112-generic - -Operating system kernel version as a raw string. - - -- -*`agent.hostname`*:: +*`user_agent.version`*:: + -- type: keyword -Hostname of the agent. +example: 12.0 +Version of the user agent. -- diff --git a/winlogbeat/include/fields.go b/winlogbeat/include/fields.go index d0a1d0fc84a..3d8c684291b 100644 --- a/winlogbeat/include/fields.go +++ b/winlogbeat/include/fields.go @@ -32,5 +32,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "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" + return "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" } diff --git a/x-pack/functionbeat/docs/fields.asciidoc b/x-pack/functionbeat/docs/fields.asciidoc index 40127795b59..b0621a4d158 100644 --- a/x-pack/functionbeat/docs/fields.asciidoc +++ b/x-pack/functionbeat/docs/fields.asciidoc @@ -29,6 +29,15 @@ Contains common beat fields available in all event types. +*`agent.hostname`*:: ++ +-- +type: keyword + +Hostname of the agent. + +-- + *`beat.timezone`*:: + -- @@ -211,8 +220,7 @@ Image labels. [[exported-fields-ecs]] == ECS fields -ECS fields. - +ECS Fields. *`@timestamp`*:: @@ -225,22 +233,10 @@ example: 2016-05-23T08:05:34.853Z required: True Date/time when the event originated. -For log events this is the date/time when the event was generated, and not when it was read. +This is the date/time extracted from the event, typically representing when the event was generated by the source. +If the event source has no original timestamp, this value is typically populated by the first time the event was received by the pipeline. Required field for all events. - --- - -*`tags`*:: -+ --- -type: keyword - -example: ["production", "env2"] - -List of keywords used to tag each event. - - -- *`labels`*:: @@ -250,11 +246,10 @@ type: object example: {'application': 'foo-bar', 'env': 'production'} -Key/value pairs. +Custom key/value pairs. Can be used to add meta information to events. Should not contain nested objects. All values are stored as keyword. Example: `docker` and `k8s` labels. - -- *`message`*:: @@ -264,28 +259,51 @@ type: text example: Hello World -For log events the message field contains the log message. -In other use cases the message field can be used to concatenate different values which are then freely searchable. If multiple messages exist, they can be combined into one message. +For log events the message field contains the log message, optimized for viewing in a log viewer. +For structured logs without an original message field, other fields can be concatenated to form a human-readable summary of the event. +If multiple messages exist, they can be combined into one message. + +-- + +*`tags`*:: ++ +-- +type: keyword + +example: ["production", "env2"] +List of keywords used to tag each event. -- [float] == agent fields -The agent fields contain the data about the software entity, if any, that collects, detects, or observes events on a host, or takes measurements on a host. Examples include Beats. Agents may also run on observers. ECS agent.* fields shall be populated with details of the agent running on the host or observer where the event happened or the measurement was taken. +The agent fields contain the data about the software entity, if any, that collects, detects, or observes events on a host, or takes measurements on a host. +Examples include Beats. Agents may also run on observers. ECS agent.* fields shall be populated with details of the agent running on the host or observer where the event happened or the measurement was taken. - -*`agent.version`*:: +*`agent.ephemeral_id`*:: + -- type: keyword -example: 6.0.0-rc2 +example: 8a4f500f -Version of the agent. +Ephemeral identifier of this agent (if one exists). +This id normally changes across restarts, but `agent.id` does not. + +-- + +*`agent.id`*:: ++ +-- +type: keyword + +example: 8a4f500d +Unique identifier of this agent (if one exists). +Example: For Beats this would be beat.id. -- @@ -296,11 +314,10 @@ type: keyword example: foo -Name of the agent. +Custom name of the agent. This is a name that can be given to an agent. This can be helpful if for example two Filebeat instances are running on the same host but a human readable separation is needed on which Filebeat instance data is coming from. If no name is given, the name is often left empty. - -- *`agent.type`*:: @@ -313,43 +330,27 @@ example: filebeat Type of the agent. The agent type stays always the same and should be given by the agent used. In case of Filebeat the agent would always be Filebeat also if two Filebeat instances are run on the same machine. - --- - -*`agent.id`*:: -+ --- -type: keyword - -example: 8a4f500d - -Unique identifier of this agent (if one exists). -Example: For Beats this would be beat.id. - - -- -*`agent.ephemeral_id`*:: +*`agent.version`*:: + -- type: keyword -example: 8a4f500f - -Ephemeral identifier of this agent (if one exists). -This id normally changes across restarts, but `agent.id` does not. +example: 6.0.0-rc2 +Version of the agent. -- [float] == client fields -A client is defined as the initiator of a network connection for events regarding sessions, connections, or bidirectional flow records. For TCP events, the client is the initiator of the TCP connection that sends the SYN packet(s). For other protocols, the client is generally the initiator or requestor in the network transaction. Some systems use the term "originator" to refer the client in TCP connections. The client fields describe details about the system acting as the client in the network event. Client fields are usually populated in conjunction with server fields. Client fields are generally not populated for packet-level events. +A client is defined as the initiator of a network connection for events regarding sessions, connections, or bidirectional flow records. +For TCP events, the client is the initiator of the TCP connection that sends the SYN packet(s). For other protocols, the client is generally the initiator or requestor in the network transaction. Some systems use the term "originator" to refer the client in TCP connections. The client fields describe details about the system acting as the client in the network event. Client fields are usually populated in conjunction with server fields. Client fields are generally not populated for packet-level events. Client / server representations can add semantic context to an exchange, which is helpful to visualize the data in certain situations. If your context falls in that category, you should still ensure that source and destination are filled appropriately. - *`client.address`*:: + -- @@ -358,83 +359,72 @@ type: keyword Some event client addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. - -- -*`client.ip`*:: +*`client.bytes`*:: + -- -type: ip +type: long -IP address of the client. -Can be one or multiple IPv4 or IPv6 addresses. +example: 184 +Bytes sent from the client to the server. -- -*`client.port`*:: +*`client.domain`*:: + -- -type: long - -Port of the client. +type: keyword +Client domain. -- -*`client.mac`*:: +*`client.geo.city_name`*:: + -- type: keyword -MAC address of the client. +example: Montreal +City name. -- -*`client.domain`*:: +*`client.geo.continent_name`*:: + -- type: keyword -Client domain. +example: North America +Name of the continent. -- -*`client.bytes`*:: +*`client.geo.country_iso_code`*:: + -- -type: long - -example: 184 - -format: bytes +type: keyword -Bytes sent from the client to the server. +example: CA +Country ISO code. -- -*`client.packets`*:: +*`client.geo.country_name`*:: + -- -type: long - -example: 12 +type: keyword -Packets sent from the client to the server. +example: Canada +Country name. -- -[float] -== geo fields - -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. - - - *`client.geo.location`*:: + -- @@ -444,30 +434,29 @@ example: { "lon": -73.614830, "lat": 45.505918 } Longitude and latitude. - -- -*`client.geo.continent_name`*:: +*`client.geo.name`*:: + -- type: keyword -example: North America - -Name of the continent. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`client.geo.country_name`*:: +*`client.geo.region_iso_code`*:: + -- type: keyword -example: Canada - -Country name. +example: CA-QC +Region ISO code. -- @@ -480,274 +469,274 @@ example: Quebec Region name. - -- -*`client.geo.city_name`*:: +*`client.ip`*:: + -- -type: keyword - -example: Montreal - -City name. +type: ip +IP address of the client. +Can be one or multiple IPv4 or IPv6 addresses. -- -*`client.geo.country_iso_code`*:: +*`client.mac`*:: + -- type: keyword -example: CA - -Country ISO code. - +MAC address of the client. -- -*`client.geo.region_iso_code`*:: +*`client.packets`*:: + -- -type: keyword - -example: CA-QC +type: long -Region ISO code. +example: 12 +Packets sent from the client to the server. -- -*`client.geo.name`*:: +*`client.port`*:: + -- -type: keyword - -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +type: long +Port of the client. -- -[float] -== cloud fields - -Fields related to the cloud or infrastructure the events are coming from. - - - -*`cloud.provider`*:: +*`client.user.email`*:: + -- type: keyword -example: ec2 - -Name of the cloud provider. Example values are ec2, gce, or digitalocean. - +User email address. -- -*`cloud.availability_zone`*:: +*`client.user.full_name`*:: + -- type: keyword -example: us-east-1c - -Availability zone in which this host is running. +example: Albert Einstein +User's full name, if available. -- -*`cloud.region`*:: +*`client.user.group.id`*:: + -- type: keyword -example: us-east-1 - -Region in which this host is running. - +Unique identifier for the group on the system/platform. -- -*`cloud.instance.id`*:: +*`client.user.group.name`*:: + -- type: keyword -example: i-1234567890abcdef0 - -Instance ID of the host machine. - +Name of the group. -- -*`cloud.instance.name`*:: +*`client.user.hash`*:: + -- type: keyword -Instance name of the host machine. - +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -- -*`cloud.machine.type`*:: +*`client.user.id`*:: + -- type: keyword -example: t2.medium - -Machine type of the host machine. - +One or multiple unique identifiers of the user. -- -*`cloud.account.id`*:: +*`client.user.name`*:: + -- type: keyword -example: 666777888999 - -The cloud account or organization id used to identify different entities in a multi-tenant environment. -Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. +example: albert +Short name or login of the user. -- [float] -== container fields - -Container fields are used for meta information about the specific container that is the source of information. These fields help correlate data based containers from any runtime. +== cloud fields +Fields related to the cloud or infrastructure the events are coming from. -*`container.runtime`*:: +*`cloud.account.id`*:: + -- type: keyword -example: docker - -Runtime managing this container. +example: 666777888999 +The cloud account or organization id used to identify different entities in a multi-tenant environment. +Examples: AWS account id, Google Cloud ORG Id, or other unique identifier. -- -*`container.id`*:: +*`cloud.availability_zone`*:: + -- type: keyword -Unique container id. +example: us-east-1c +Availability zone in which this host is running. -- -*`container.image.name`*:: +*`cloud.instance.id`*:: + -- type: keyword -Name of the image the container was built on. +example: i-1234567890abcdef0 +Instance ID of the host machine. -- -*`container.image.tag`*:: +*`cloud.instance.name`*:: + -- type: keyword -Container image tag. +Instance name of the host machine. +-- +*`cloud.machine.type`*:: ++ -- +type: keyword -*`container.name`*:: +example: t2.medium + +Machine type of the host machine. + +-- + +*`cloud.provider`*:: + -- type: keyword -Container name. +example: aws +Name of the cloud provider. Example values are aws, azure, gcp, or digitalocean. -- -*`container.labels`*:: +*`cloud.region`*:: + -- -type: object +type: keyword -Image labels. +example: us-east-1 +Region in which this host is running. -- [float] -== destination fields - -Destination fields describe details about the destination of a packet/event. Destination fields are usually populated in conjunction with source fields. +== container fields +Container fields are used for meta information about the specific container that is the source of information. +These fields help correlate data based containers from any runtime. -*`destination.address`*:: +*`container.id`*:: + -- type: keyword -Some event destination addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. -Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. - +Unique container id. -- -*`destination.ip`*:: +*`container.image.name`*:: + -- -type: ip +type: keyword -IP address of the destination. -Can be one or multiple IPv4 or IPv6 addresses. +Name of the image the container was built on. + +-- + +*`container.image.tag`*:: ++ +-- +type: keyword +Container image tag. -- -*`destination.port`*:: +*`container.labels`*:: + -- -type: long +type: object -Port of the destination. +Image labels. + +-- + +*`container.name`*:: ++ +-- +type: keyword +Container name. -- -*`destination.mac`*:: +*`container.runtime`*:: + -- type: keyword -MAC address of the destination. +example: docker +Runtime managing this container. -- -*`destination.domain`*:: +[float] +== destination fields + +Destination fields describe details about the destination of a packet/event. +Destination fields are usually populated in conjunction with source fields. + + +*`destination.address`*:: + -- type: keyword -Destination domain. - +Some event destination addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. +Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. -- @@ -758,31 +747,62 @@ type: long example: 184 -format: bytes - Bytes sent from the destination to the source. +-- +*`destination.domain`*:: ++ -- +type: keyword -*`destination.packets`*:: +Destination domain. + +-- + +*`destination.geo.city_name`*:: + -- -type: long +type: keyword -example: 12 +example: Montreal -Packets sent from the destination to the source. +City name. + +-- +*`destination.geo.continent_name`*:: ++ +-- +type: keyword + +example: North America + +Name of the continent. -- -[float] -== geo fields +*`destination.geo.country_iso_code`*:: ++ +-- +type: keyword + +example: CA + +Country ISO code. + +-- -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. +*`destination.geo.country_name`*:: ++ +-- +type: keyword +example: Canada +Country name. + +-- *`destination.geo.location`*:: + @@ -793,30 +813,29 @@ example: { "lon": -73.614830, "lat": 45.505918 } Longitude and latitude. - -- -*`destination.geo.continent_name`*:: +*`destination.geo.name`*:: + -- type: keyword -example: North America - -Name of the continent. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`destination.geo.country_name`*:: +*`destination.geo.region_iso_code`*:: + -- type: keyword -example: Canada - -Country name. +example: CA-QC +Region ISO code. -- @@ -829,56 +848,112 @@ example: Quebec Region name. +-- +*`destination.ip`*:: ++ -- +type: ip -*`destination.geo.city_name`*:: +IP address of the destination. +Can be one or multiple IPv4 or IPv6 addresses. + +-- + +*`destination.mac`*:: + -- type: keyword -example: Montreal +MAC address of the destination. -City name. +-- + +*`destination.packets`*:: ++ +-- +type: long + +example: 12 +Packets sent from the destination to the source. -- -*`destination.geo.country_iso_code`*:: +*`destination.port`*:: ++ +-- +type: long + +Port of the destination. + +-- + +*`destination.user.email`*:: + -- type: keyword -example: CA +User email address. -Country ISO code. +-- +*`destination.user.full_name`*:: ++ +-- +type: keyword + +example: Albert Einstein + +User's full name, if available. -- -*`destination.geo.region_iso_code`*:: +*`destination.user.group.id`*:: + -- type: keyword -example: CA-QC +Unique identifier for the group on the system/platform. -Region ISO code. +-- +*`destination.user.group.name`*:: ++ +-- +type: keyword + +Name of the group. -- -*`destination.geo.name`*:: +*`destination.user.hash`*:: + -- type: keyword -example: boston-dc +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +-- +*`destination.user.id`*:: ++ +-- +type: keyword + +One or multiple unique identifiers of the user. + +-- + +*`destination.user.name`*:: ++ +-- +type: keyword + +example: albert + +Short name or login of the user. -- @@ -888,29 +963,35 @@ Not typically used in automated geolocation. Meta-information specific to ECS. - *`ecs.version`*:: + -- type: keyword -example: 1.0.0-beta2 +example: 1.0.0 required: True ECS version this event conforms to. `ecs.version` is a required field and must exist in all events. When querying across multiple indices -- which may conform to slightly different ECS versions -- this field lets integrations adjust to the schema version of the events. -The current version is 1.0.0-beta2 . - -- [float] == error fields -These fields can represent errors of any kind. Use them for errors that happen while fetching events or in cases where the event itself contains an error. +These fields can represent errors of any kind. +Use them for errors that happen while fetching events or in cases where the event itself contains an error. + + +*`error.code`*:: ++ +-- +type: keyword +Error code describing the error. +-- *`error.id`*:: + @@ -919,7 +1000,6 @@ type: keyword Unique identifier for the error. - -- *`error.message`*:: @@ -929,98 +1009,113 @@ type: text Error message. - -- -*`error.code`*:: +[float] +== event fields + +The event fields are used for context information about the log or metric event itself. +A log is defined as an event containing details of something that happened. Log events must include the time at which the thing happened. Examples of log events include a process starting on a host, a network packet being sent from a source to a destination, or a network connection between a client and a server being initiated or closed. A metric is defined as an event containing one or more numerical or categorical measurements and the time at which the measurement was taken. Examples of metric events include memory pressure measured on a host, or vulnerabilities measured on a scanned host. + + +*`event.action`*:: + -- type: keyword -Error code describing the error. +example: user-password-change +The action captured by the event. +This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. -- -[float] -== event fields +*`event.category`*:: ++ +-- +type: keyword -The event fields are used for context information about the log or metric event itself. A log is defined as an event containing details of something that happened. Log events must include the time at which the thing happened. Examples of log events include a process starting on a host, a network packet being sent from a source to a destination, or a network connection between a client and a server being initiated or closed. A metric is defined as an event containing one or more numerical or categorical measurements and the time at which the measurement was taken. Examples of metric events include memory pressure measured on a host, or vulnerabilities measured on a scanned host. +example: user-management +Event category. +This contains high-level information about the contents of the event. It is more generic than `event.action`, in the sense that typically a category contains multiple actions. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. +-- -*`event.id`*:: +*`event.created`*:: + -- -type: keyword - -example: 8a4f500d - -Unique ID to describe the event. +type: date +event.created contains the date/time when the event was first read by an agent, or by your pipeline. +This field is distinct from @timestamp in that @timestamp typically contain the time extracted from the original event. +In most situations, these two timestamps will be slightly different. The difference can be used to calculate the delay between your source generating an event, and the time when your agent first processed it. This can be used to monitor your agent's or pipeline's ability to keep up with your event source. +In case the two timestamps are identical, @timestamp should be used. -- -*`event.kind`*:: +*`event.dataset`*:: + -- type: keyword -example: state - -The kind of the event. -This gives information about what type of information the event contains, without being specific to the contents of the event. Examples are `event`, `state`, `alarm`. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. +example: stats +Name of the dataset. +The concept of a `dataset` (fileset / metricset) is used in Beats as a subset of modules. It contains the information which is currently stored in metricset.name and metricset.module or fileset.name. -- -*`event.category`*:: +*`event.duration`*:: + -- -type: keyword +type: long -example: user-management +Duration of the event in nanoseconds. +If event.start and event.end are known this value should be the difference between the end and start time. -Event category. -This contains high-level information about the contents of the event. It is more generic than `event.action`, in the sense that typically a category contains multiple actions. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. +-- +*`event.end`*:: ++ +-- +type: date + +event.end contains the date when the event ended or when the activity was last observed. -- -*`event.action`*:: +*`event.hash`*:: + -- type: keyword -example: user-password-change - -The action captured by the event. -This describes the information in the event. It is more specific than `event.category`. Examples are `group-add`, `process-started`, `file-created`. The value is normally defined by the implementer. +example: 123456789012345678901234567890ABCD +Hash (perhaps logstash fingerprint) of raw field to be able to demonstrate log integrity. -- -*`event.outcome`*:: +*`event.id`*:: + -- type: keyword -example: success - -The outcome of the event. -If the event describes an action, this fields contains the outcome of that action. Examples outcomes are `success` and `failure`. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. +example: 8a4f500d +Unique ID to describe the event. -- -*`event.type`*:: +*`event.kind`*:: + -- type: keyword -Reserved for future usage. -Please avoid using this field for user data. +example: state +The kind of the event. +This gives information about what type of information the event contains, without being specific to the contents of the event. Examples are `event`, `state`, `alarm`. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. -- @@ -1034,19 +1129,48 @@ example: mysql Name of the module this data is coming from. This information is coming from the modules used in Beats or Logstash. +-- +*`event.original`*:: ++ -- +type: keyword -*`event.dataset`*:: +example: Sep 19 08:26:10 host CEF:0|Security| threatmanager|1.0|100| worm successfully stopped|10|src=10.0.0.1 dst=2.1.2.2spt=1232 + +Raw text message of entire event. Used to demonstrate log integrity. +This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. + +-- + +*`event.outcome`*:: + -- type: keyword -example: stats +example: success -Name of the dataset. -The concept of a `dataset` (fileset / metricset) is used in Beats as a subset of modules. It contains the information which is currently stored in metricset.name and metricset.module or fileset.name. +The outcome of the event. +If the event describes an action, this fields contains the outcome of that action. Examples outcomes are `success` and `failure`. Warning: In future versions of ECS, we plan to provide a list of acceptable values for this field, please use with caution. + +-- +*`event.risk_score`*:: ++ +-- +type: float + +Risk score or priority of the event (e.g. security solutions). Use your system's original value here. + +-- + +*`event.risk_score_norm`*:: ++ +-- +type: float + +Normalized risk score or priority of the event, on a scale of 0 to 100. +This is mainly useful if you use more than one system that assigns risk scores, and you want to see a normalized value across all systems. -- @@ -1057,122 +1181,132 @@ type: long example: 7 -Severity describes the severity of the event. What the different severity values mean can very different between use cases. It's up to the implementer to make sure severities are consistent across events. - +Severity describes the original severity of the event. What the different severity values mean can very different between use cases. It's up to the implementer to make sure severities are consistent across events. -- -*`event.original`*:: +*`event.start`*:: + -- -type: keyword +type: date -example: Sep 19 08:26:10 host CEF:0|Security| threatmanager|1.0|100| worm successfully stopped|10|src=10.0.0.1 dst=2.1.2.2spt=1232 +event.start contains the date when the event started or when the activity was first observed. -Raw text message of entire event. Used to demonstrate log integrity. -This field is not indexed and doc_values are disabled. It cannot be searched, but it can be retrieved from `_source`. +-- +*`event.timezone`*:: ++ +-- +type: keyword -Field is not indexed. +This field should be populated when the event's timestamp does not include timezone information already (e.g. default Syslog timestamps). It's optional otherwise. +Acceptable timezone formats are: a canonical ID (e.g. "Europe/Amsterdam"), abbreviated (e.g. "EST") or an HH:mm differential (e.g. "-05:00"). -- -*`event.hash`*:: +*`event.type`*:: + -- type: keyword -example: 123456789012345678901234567890ABCD +Reserved for future usage. +Please avoid using this field for user data. -Hash (perhaps logstash fingerprint) of raw field to be able to demonstrate log integrity. +-- +[float] +== file fields --- +A file is defined as a set of information that has been created on, or has existed on a filesystem. +File objects can be associated with host events, network events, and/or file events (e.g., those produced by File Integrity Monitoring [FIM] products or services). File fields provide details about the affected file associated with the event or metric. -*`event.duration`*:: + +*`file.ctime`*:: + -- -type: long +type: date -format: duration +Last time file metadata changed. -Duration of the event in nanoseconds. -If event.start and event.end are known this value should be the difference between the end and start time. +-- +*`file.device`*:: ++ +-- +type: keyword + +Device that is the source of the file. -- -*`event.timezone`*:: +*`file.extension`*:: + -- type: keyword -This field should be populated when the event's timestamp does not include timezone information already (e.g. default Syslog timestamps). It's optional otherwise. -Acceptable timezone formats are: a canonical ID (e.g. "Europe/Amsterdam"), abbreviated (e.g. "EST") or an HH:mm differential (e.g. "-05:00"). +example: png +File extension. +This should allow easy filtering by file extensions. -- -*`event.created`*:: +*`file.gid`*:: + -- -type: date - -event.created contains the date when the event was created. -This timestamp is distinct from @timestamp in that @timestamp contains the processed timestamp. For logs these two timestamps can be different as the timestamp in the log line and when the event is read for example by Filebeat are not identical. `@timestamp` must contain the timestamp extracted from the log line, event.created when the log line is read. The same could apply to package capturing where @timestamp contains the timestamp extracted from the network package and event.created when the event was created. -In case the two timestamps are identical, @timestamp should be used. +type: keyword +Primary group ID (GID) of the file. -- -*`event.start`*:: +*`file.group`*:: + -- -type: date +type: keyword -event.start contains the date when the event started or when the activity was first observed. +Primary group name of the file. +-- +*`file.inode`*:: ++ -- +type: keyword -*`event.end`*:: +Inode representing the file in the filesystem. + +-- + +*`file.mode`*:: + -- -type: date +type: keyword -event.end contains the date when the event ended or when the activity was last observed. +example: 416 +Mode of the file in octal representation. -- -*`event.risk_score`*:: +*`file.mtime`*:: + -- -type: float - -Risk score or priority of the event (e.g. security solutions). Use your system's original value here. +type: date +Last time file content was modified. -- -*`event.risk_score_norm`*:: +*`file.owner`*:: + -- -type: float - -Normalized risk score or priority of the event, on a scale of 0 to 100. -This is mainly useful if you use more than one system that assigns risk scores, and you want to see a normalized value across all systems. +type: keyword +File owner's username. -- -[float] -== file fields - -A file is defined as a set of information that has been created on, or has existed on a filesystem. File objects can be associated with host events, network events, and/or file events (e.g., those produced by File Integrity Monitoring [FIM] products or services). File fields provide details about the affected file associated with the event or metric. - - - *`file.path`*:: + -- @@ -1182,25 +1316,21 @@ Path to the file. -- -*`file.target_path`*:: +*`file.size`*:: + -- -type: keyword +type: long -Target path for symlinks. +File size in bytes (field is only added when `type` is `file`). -- -*`file.extension`*:: +*`file.target_path`*:: + -- type: keyword -example: png - -File extension. -This should allow easy filtering by file extensions. - +Target path for symlinks. -- @@ -1213,98 +1343,109 @@ File type (file, dir, or symlink). -- -*`file.device`*:: +*`file.uid`*:: + -- type: keyword -Device that is the source of the file. +The user ID (UID) or security identifier (SID) of the file owner. -- -*`file.inode`*:: -+ --- -type: keyword +[float] +== geo fields -Inode representing the file in the filesystem. +Geo fields can carry data about a specific location related to an event. +This geolocation information can be derived from techniques such as Geo IP, or be user-supplied. --- -*`file.uid`*:: +*`geo.city_name`*:: + -- type: keyword -The user ID (UID) or security identifier (SID) of the file owner. +example: Montreal +City name. -- -*`file.owner`*:: +*`geo.continent_name`*:: + -- type: keyword -File owner's username. +example: North America + +Name of the continent. -- -*`file.gid`*:: +*`geo.country_iso_code`*:: + -- type: keyword -Primary group ID (GID) of the file. +example: CA + +Country ISO code. -- -*`file.group`*:: +*`geo.country_name`*:: + -- type: keyword -Primary group name of the file. +example: Canada + +Country name. -- -*`file.mode`*:: +*`geo.location`*:: + -- -type: keyword +type: geo_point -example: 416 +example: { "lon": -73.614830, "lat": 45.505918 } -Mode of the file in octal representation. +Longitude and latitude. -- -*`file.size`*:: +*`geo.name`*:: + -- -type: long +type: keyword -format: bytes +example: boston-dc -File size in bytes (field is only added when `type` is `file`). +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`file.mtime`*:: +*`geo.region_iso_code`*:: + -- -type: date +type: keyword -Last time file content was modified. +example: CA-QC + +Region ISO code. -- -*`file.ctime`*:: +*`geo.region_name`*:: + -- -type: date +type: keyword -Last time file metadata changed. +example: Quebec + +Region name. -- @@ -1314,7 +1455,6 @@ Last time file metadata changed. The group fields are meant to represent groups that are relevant to the event. - *`group.id`*:: + -- @@ -1322,7 +1462,6 @@ type: keyword Unique identifier for the group on the system/platform. - -- *`group.name`*:: @@ -1332,133 +1471,162 @@ type: keyword Name of the group. - -- [float] == host fields -A host is defined as a general computing instance. ECS host.* fields should be populated with details about the host on which the event happened, or on which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes. - +A host is defined as a general computing instance. +ECS host.* fields should be populated with details about the host on which the event happened, or from which the measurement was taken. Host types include hardware, virtual machines, Docker containers, and Kubernetes nodes. -*`host.hostname`*:: +*`host.architecture`*:: + -- type: keyword -Hostname of the host. -It normally contains what the `hostname` command returns on the host machine. +example: x86_64 +Operating system architecture. -- -*`host.name`*:: +*`host.geo.city_name`*:: + -- type: keyword -Name of the host. -It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. +example: Montreal +City name. -- -*`host.id`*:: +*`host.geo.continent_name`*:: + -- type: keyword -Unique host id. -As hostname is not always unique, use values that are meaningful in your environment. -Example: The current usage of `beat.name`. +example: North America +Name of the continent. -- -*`host.ip`*:: +*`host.geo.country_iso_code`*:: + -- -type: ip +type: keyword -Host ip address. +example: CA +Country ISO code. -- -*`host.mac`*:: +*`host.geo.country_name`*:: + -- type: keyword -Host mac address. +example: Canada +Country name. -- -*`host.type`*:: +*`host.geo.location`*:: + -- -type: keyword +type: geo_point -Type of host. -For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. +example: { "lon": -73.614830, "lat": 45.505918 } +Longitude and latitude. -- -*`host.architecture`*:: +*`host.geo.name`*:: + -- type: keyword -example: x86_64 - -Operating system architecture. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -[float] -== os fields +*`host.geo.region_iso_code`*:: ++ +-- +type: keyword -The OS fields contain information about the operating system. +example: CA-QC +Region ISO code. +-- -*`host.os.platform`*:: +*`host.geo.region_name`*:: + -- type: keyword -example: darwin +example: Quebec -Operating system platform (such centos, ubuntu, windows). +Region name. + +-- +*`host.hostname`*:: ++ +-- +type: keyword + +Hostname of the host. +It normally contains what the `hostname` command returns on the host machine. -- -*`host.os.name`*:: +*`host.id`*:: + -- type: keyword -example: Mac OS X +Unique host id. +As hostname is not always unique, use values that are meaningful in your environment. +Example: The current usage of `beat.name`. -Operating system name, without the version. +-- + +*`host.ip`*:: ++ +-- +type: ip +Host ip address. -- -*`host.os.full`*:: +*`host.mac`*:: + -- type: keyword -example: Mac OS Mojave +Host mac address. -Operating system name, including the version or code name. +-- + +*`host.name`*:: ++ +-- +type: keyword +Name of the host. +It can contain what `hostname` returns on Unix systems, the fully qualified domain name, or a name specified by the user. The sender decides which value to use. -- @@ -1471,18 +1639,16 @@ example: debian OS family (such as redhat, debian, freebsd, windows). - -- -*`host.os.version`*:: +*`host.os.full`*:: + -- type: keyword -example: 10.14.1 - -Operating system version as a raw string. +example: Mac OS Mojave +Operating system name, including the version or code name. -- @@ -1495,131 +1661,133 @@ example: 4.4.0-112-generic Operating system kernel version as a raw string. - -- -[float] -== geo fields +*`host.os.name`*:: ++ +-- +type: keyword -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. +example: Mac OS X +Operating system name, without the version. +-- -*`host.geo.location`*:: +*`host.os.platform`*:: + -- -type: geo_point - -example: { "lon": -73.614830, "lat": 45.505918 } +type: keyword -Longitude and latitude. +example: darwin +Operating system platform (such centos, ubuntu, windows). -- -*`host.geo.continent_name`*:: +*`host.os.version`*:: + -- type: keyword -example: North America - -Name of the continent. +example: 10.14.1 +Operating system version as a raw string. -- -*`host.geo.country_name`*:: +*`host.type`*:: + -- type: keyword -example: Canada +Type of host. +For Cloud providers this can be the machine type like `t2.medium`. If vm, this could be the container, for example, or other information meaningful in your environment. -Country name. +-- + +*`host.user.email`*:: ++ +-- +type: keyword +User email address. -- -*`host.geo.region_name`*:: +*`host.user.full_name`*:: + -- type: keyword -example: Quebec - -Region name. +example: Albert Einstein +User's full name, if available. -- -*`host.geo.city_name`*:: +*`host.user.group.id`*:: + -- type: keyword -example: Montreal +Unique identifier for the group on the system/platform. -City name. +-- + +*`host.user.group.name`*:: ++ +-- +type: keyword +Name of the group. -- -*`host.geo.country_iso_code`*:: +*`host.user.hash`*:: + -- type: keyword -example: CA - -Country ISO code. - +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -- -*`host.geo.region_iso_code`*:: +*`host.user.id`*:: + -- type: keyword -example: CA-QC - -Region ISO code. - +One or multiple unique identifiers of the user. -- -*`host.geo.name`*:: +*`host.user.name`*:: + -- type: keyword -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +example: albert +Short name or login of the user. -- [float] == http fields -Fields related to HTTP activity. - +Fields related to HTTP activity. Use the `url` field set to store the url of the request. -*`http.request.method`*:: +*`http.request.body.bytes`*:: + -- -type: keyword - -example: get, post, put +type: long -Http request method. -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. +example: 887 +Size in bytes of the request body. -- @@ -1630,84 +1798,63 @@ type: keyword example: Hello world -The full http request body. - - --- - -*`http.request.referrer`*:: -+ --- -type: keyword - -example: https://blog.example.com/ - -Referrer for this HTTP request. - +The full HTTP request body. -- -*`http.response.status_code`*:: +*`http.request.bytes`*:: + -- type: long -example: 404 - -Http response status code. +example: 1437 +Total size in bytes of the request (body and headers). -- -*`http.response.body.content`*:: +*`http.request.method`*:: + -- type: keyword -example: Hello world - -The full http response body. +example: get, post, put +HTTP request method. +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". -- -*`http.version`*:: +*`http.request.referrer`*:: + -- type: keyword -example: 1.1 - -Http version. +example: https://blog.example.com/ +Referrer for this HTTP request. -- -*`http.request.bytes`*:: +*`http.response.body.bytes`*:: + -- type: long -example: 1437 - -format: bytes - -Total size in bytes of the request (body and headers). +example: 887 +Size in bytes of the response body. -- -*`http.request.body.bytes`*:: +*`http.response.body.content`*:: + -- -type: long - -example: 887 - -format: bytes +type: keyword -Size in bytes of the request body. +example: Hello world +The full HTTP response body. -- @@ -1718,24 +1865,29 @@ type: long example: 1437 -format: bytes - Total size in bytes of the response (body and headers). - -- -*`http.response.body.bytes`*:: +*`http.response.status_code`*:: + -- type: long -example: 887 +example: 404 -format: bytes +HTTP response status code. -Size in bytes of the response body. +-- + +*`http.version`*:: ++ +-- +type: keyword + +example: 1.1 +HTTP version. -- @@ -1745,17 +1897,15 @@ Size in bytes of the response body. Fields which are specific to log events. - *`log.level`*:: + -- type: keyword -example: ERR - -Log level of the log event. -Some examples are `WARN`, `ERR`, `INFO`. +example: err +Original log level of the log event. +Some examples are `warn`, `error`, `i`. -- @@ -1766,96 +1916,52 @@ type: keyword example: Sep 19 08:26:10 localhost My log - This is the original log message and contains the full log message before splitting it up in multiple parts. In contrast to the `message` field which can contain an extracted part of the log message, this field contains the original, full log message. It can have already some modifications applied like encoding or new lines removed to clean up the log message. This field is not indexed and doc_values are disabled so it can't be queried but the value can be retrieved from `_source`. - -Field is not indexed. - -- [float] == network fields -The network is defined as the communication path over which a host or network event happens. The network.* fields should be populated with details about the network activity associated with an event. - - - -*`network.name`*:: -+ --- -type: keyword - -example: Guest Wifi - -Name given by operators to sections of their network. - - --- - -*`network.type`*:: -+ --- -type: keyword - -example: ipv4 - -In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. - - --- - -*`network.iana_number`*:: -+ --- -type: keyword - -example: 6 - -IANA Protocol Number (https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml). Standardized list of protocols. This aligns well with NetFlow and sFlow related logs which use the IANA Protocol Number. - +The network is defined as the communication path over which a host or network event happens. +The network.* fields should be populated with details about the network activity associated with an event. --- -*`network.transport`*:: +*`network.application`*:: + -- type: keyword -example: tcp - -Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. +example: aim +A name given to an application level protocol. This can be arbitrarily assigned for things like microservices, but also apply to things like skype, icq, facebook, twitter. This would be used in situations where the vendor or service can be decoded such as from the source/dest IP owners, ports, or wire format. +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". -- -*`network.application`*:: +*`network.bytes`*:: + -- -type: keyword - -example: aim +type: long -A name given to an application. This can be arbitrarily assigned for things like microservices, but also apply to things like skype, icq, facebook, twitter. This would be used in situations where the vendor or service can be decoded such as from the source/dest IP owners, ports, or wire format. -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. +example: 368 +Total bytes transferred in both directions. +If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. -- -*`network.protocol`*:: +*`network.community_id`*:: + -- type: keyword -example: http - -L7 Network protocol name. ex. http, lumberjack, transport protocol. -The field value must be normalized to lowercase for querying. See "Lowercase Capitalization" in the "Implementing ECS" section. +example: 1:hO+sN4H+MG5MY/8hIrXPqc4ZQz0= +A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. +Learn more at https://github.com/corelight/community-id-spec. -- @@ -1877,7 +1983,6 @@ Recommended values are: When mapping events from a host-based monitoring context, populate this field from the host's point of view. When mapping events from a network or perimeter-based monitoring context, populate this field from the point of view of your network perimeter. - -- *`network.forwarded_ip`*:: @@ -1889,34 +1994,27 @@ example: 192.1.1.2 Host IP address when the source IP address is the proxy. - -- -*`network.community_id`*:: +*`network.iana_number`*:: + -- type: keyword -example: 1:hO+sN4H+MG5MY/8hIrXPqc4ZQz0= - -A hash of source and destination IPs and ports, as well as the protocol used in a communication. This is a tool-agnostic standard to identify flows. -Learn more at https://github.com/corelight/community-id-spec. +example: 6 +IANA Protocol Number (https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml). Standardized list of protocols. This aligns well with NetFlow and sFlow related logs which use the IANA Protocol Number. -- -*`network.bytes`*:: +*`network.name`*:: + -- -type: long - -example: 368 - -format: bytes +type: keyword -Total bytes transferred in both directions. -If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. +example: Guest Wifi +Name given by operators to sections of their network. -- @@ -1930,129 +2028,165 @@ example: 24 Total packets transferred in both directions. If `source.packets` and `destination.packets` are known, `network.packets` is their sum. - -- -[float] -== observer fields +*`network.protocol`*:: ++ +-- +type: keyword -An observer is defined as a special network, security, or application device used to detect, observe, or create network, security, or application-related events and metrics. This could be a custom hardware appliance or a server that has been configured to run special network, security, or application software. Examples include firewalls, intrusion detection/prevention systems, network monitoring sensors, web application firewalls, data loss prevention systems, and APM servers. The observer.* fields shall be populated with details of the system, if any, that detects, observes and/or creates a network, security, or application event or metric. Message queues and ETL components used in processing events or metrics are not considered observers in ECS. +example: http +L7 Network protocol name. ex. http, lumberjack, transport protocol. +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". +-- -*`observer.mac`*:: +*`network.transport`*:: + -- type: keyword -MAC address of the observer +example: tcp +Same as network.iana_number, but instead using the Keyword name of the transport layer (udp, tcp, ipv6-icmp, etc.) +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". -- -*`observer.ip`*:: +*`network.type`*:: + -- -type: ip +type: keyword -IP address of the observer. +example: ipv4 +In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, pim, etc +The field value must be normalized to lowercase for querying. See the documentation section "Implementing ECS". -- -*`observer.hostname`*:: +[float] +== observer fields + +An observer is defined as a special network, security, or application device used to detect, observe, or create network, security, or application-related events and metrics. +This could be a custom hardware appliance or a server that has been configured to run special network, security, or application software. Examples include firewalls, intrusion detection/prevention systems, network monitoring sensors, web application firewalls, data loss prevention systems, and APM servers. The observer.* fields shall be populated with details of the system, if any, that detects, observes and/or creates a network, security, or application event or metric. Message queues and ETL components used in processing events or metrics are not considered observers in ECS. + + +*`observer.geo.city_name`*:: + -- type: keyword -Hostname of the observer. +example: Montreal +City name. -- -*`observer.vendor`*:: +*`observer.geo.continent_name`*:: + -- type: keyword -observer vendor information. +example: North America +Name of the continent. -- -*`observer.version`*:: +*`observer.geo.country_iso_code`*:: + -- type: keyword -Observer version. +example: CA +Country ISO code. -- -*`observer.serial_number`*:: +*`observer.geo.country_name`*:: + -- type: keyword -Observer serial number. +example: Canada +Country name. -- -*`observer.type`*:: +*`observer.geo.location`*:: + -- -type: keyword +type: geo_point -example: firewall +example: { "lon": -73.614830, "lat": 45.505918 } -The type of the observer the data is coming from. -There is no predefined list of observer types. Some examples are `forwarder`, `firewall`, `ids`, `ips`, `proxy`, `poller`, `sensor`, `APM server`. +Longitude and latitude. +-- +*`observer.geo.name`*:: ++ -- +type: keyword -[float] -== os fields +example: boston-dc -The OS fields contain information about the operating system. +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. + +-- + +*`observer.geo.region_iso_code`*:: ++ +-- +type: keyword +example: CA-QC + +Region ISO code. +-- -*`observer.os.platform`*:: +*`observer.geo.region_name`*:: + -- type: keyword -example: darwin - -Operating system platform (such centos, ubuntu, windows). +example: Quebec +Region name. -- -*`observer.os.name`*:: +*`observer.hostname`*:: + -- type: keyword -example: Mac OS X +Hostname of the observer. -Operating system name, without the version. +-- + +*`observer.ip`*:: ++ +-- +type: ip +IP address of the observer. -- -*`observer.os.full`*:: +*`observer.mac`*:: + -- type: keyword -example: Mac OS Mojave - -Operating system name, including the version or code name. - +MAC address of the observer -- @@ -2065,18 +2199,16 @@ example: debian OS family (such as redhat, debian, freebsd, windows). - -- -*`observer.os.version`*:: +*`observer.os.full`*:: + -- type: keyword -example: 10.14.1 - -Operating system version as a raw string. +example: Mac OS Mojave +Operating system name, including the version or code name. -- @@ -2089,138 +2221,102 @@ example: 4.4.0-112-generic Operating system kernel version as a raw string. - --- - -[float] -== geo fields - -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. - - - -*`observer.geo.location`*:: -+ --- -type: geo_point - -example: { "lon": -73.614830, "lat": 45.505918 } - -Longitude and latitude. - - -- -*`observer.geo.continent_name`*:: +*`observer.os.name`*:: + -- type: keyword -example: North America - -Name of the continent. +example: Mac OS X +Operating system name, without the version. -- -*`observer.geo.country_name`*:: +*`observer.os.platform`*:: + -- type: keyword -example: Canada - -Country name. +example: darwin +Operating system platform (such centos, ubuntu, windows). -- -*`observer.geo.region_name`*:: +*`observer.os.version`*:: + -- type: keyword -example: Quebec - -Region name. +example: 10.14.1 +Operating system version as a raw string. -- -*`observer.geo.city_name`*:: +*`observer.serial_number`*:: + -- type: keyword -example: Montreal - -City name. - +Observer serial number. -- -*`observer.geo.country_iso_code`*:: +*`observer.type`*:: + -- type: keyword -example: CA - -Country ISO code. +example: firewall +The type of the observer the data is coming from. +There is no predefined list of observer types. Some examples are `forwarder`, `firewall`, `ids`, `ips`, `proxy`, `poller`, `sensor`, `APM server`. -- -*`observer.geo.region_iso_code`*:: +*`observer.vendor`*:: + -- type: keyword -example: CA-QC - -Region ISO code. - +observer vendor information. -- -*`observer.geo.name`*:: +*`observer.version`*:: + -- type: keyword -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. - +Observer version. -- [float] == organization fields -The organization fields enrich data with information about the company or entity the data is associated with. These fields help you arrange or filter data stored in an index by one or multiple organizations. - +The organization fields enrich data with information about the company or entity the data is associated with. +These fields help you arrange or filter data stored in an index by one or multiple organizations. -*`organization.name`*:: +*`organization.id`*:: + -- type: keyword -Organization name. - +Unique identifier for the organization. -- -*`organization.id`*:: +*`organization.name`*:: + -- type: keyword -Unique identifier for the organization. - +Organization name. -- @@ -2230,93 +2326,99 @@ Unique identifier for the organization. The OS fields contain information about the operating system. - -*`os.platform`*:: +*`os.family`*:: + -- type: keyword -example: darwin - -Operating system platform (such centos, ubuntu, windows). +example: debian +OS family (such as redhat, debian, freebsd, windows). -- -*`os.name`*:: +*`os.full`*:: + -- type: keyword -example: Mac OS X - -Operating system name, without the version. +example: Mac OS Mojave +Operating system name, including the version or code name. -- -*`os.full`*:: +*`os.kernel`*:: + -- type: keyword -example: Mac OS Mojave - -Operating system name, including the version or code name. +example: 4.4.0-112-generic +Operating system kernel version as a raw string. -- -*`os.family`*:: +*`os.name`*:: + -- type: keyword -example: debian - -OS family (such as redhat, debian, freebsd, windows). +example: Mac OS X +Operating system name, without the version. -- -*`os.version`*:: +*`os.platform`*:: + -- type: keyword -example: 10.14.1 - -Operating system version as a raw string. +example: darwin +Operating system platform (such centos, ubuntu, windows). -- -*`os.kernel`*:: +*`os.version`*:: + -- type: keyword -example: 4.4.0-112-generic - -Operating system kernel version as a raw string. +example: 10.14.1 +Operating system version as a raw string. -- [float] == process fields -These fields contain information about a process. These fields can help you correlate metrics information with a process id/name from a log message. The `process.pid` often stays in the metric itself and is copied to the global field for correlation. +These fields contain information about a process. +These fields can help you correlate metrics information with a process id/name from a log message. The `process.pid` often stays in the metric itself and is copied to the global field for correlation. + +*`process.args`*:: ++ +-- +type: keyword +example: ['ssh', '-l', 'user', '10.0.0.16'] -*`process.pid`*:: +Array of process arguments. +May be filtered to protect sensitive information. + +-- + +*`process.executable`*:: + -- -type: long +type: keyword -Process id. +example: /usr/bin/ssh +Absolute path to the process executable. -- @@ -2330,6 +2432,14 @@ example: ssh Process name. Sometimes called program name or similar. +-- + +*`process.pid`*:: ++ +-- +type: long + +Process id. -- @@ -2340,31 +2450,27 @@ type: long Process parent id. - -- -*`process.args`*:: +*`process.start`*:: + -- -type: keyword - -example: ['ssh', '-l', 'user', '10.0.0.16'] +type: date -Process arguments. -May be filtered to protect sensitive information. +example: 2016-05-23T08:05:34.853Z +The time the process started. -- -*`process.executable`*:: +*`process.thread.id`*:: + -- -type: keyword - -example: /usr/bin/ssh +type: long -Absolute path to the process executable. +example: 4242 +Thread ID. -- @@ -2376,133 +2482,180 @@ type: keyword Process title. The proctitle, some times the same as process name. Can also be different: for example a browser setting its title to the web page currently opened. - -- -*`process.thread.id`*:: +*`process.working_directory`*:: + -- -type: long +type: keyword -example: 4242 +example: /home/alice -Thread ID. +The working directory of the process. + +-- + +[float] +== related fields + +This field set is meant to facilitate pivoting around a piece of data. +Some pieces of information can be seen in many places in an ECS event. To facilitate searching for them, store an array of all seen values to their corresponding field in `related.`. +A concrete example is IP addresses, which can be under host, observer, source, destination, client, server, and network.forwarded_ip. If you append all IPs to `related.ip`, you can then search for a given IP trivially, no matter where it appeared, by querying `related.ip:a.b.c.d`. +*`related.ip`*:: ++ -- +type: ip -*`process.start`*:: +All of the IPs seen on your event. + +-- + +[float] +== server fields + +A Server is defined as the responder in a network connection for events regarding sessions, connections, or bidirectional flow records. +For TCP events, the server is the receiver of the initial SYN packet(s) of the TCP connection. For other protocols, the server is generally the responder in the network transaction. Some systems actually use the term "responder" to refer the server in TCP connections. The server fields describe details about the system acting as the server in the network event. Server fields are usually populated in conjunction with client fields. Server fields are generally not populated for packet-level events. +Client / server representations can add semantic context to an exchange, which is helpful to visualize the data in certain situations. If your context falls in that category, you should still ensure that source and destination are filled appropriately. + + +*`server.address`*:: + -- -type: date +type: keyword -example: 2016-05-23T08:05:34.853Z +Some event server addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. +Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. -The time the process started. +-- +*`server.bytes`*:: ++ +-- +type: long + +example: 184 + +Bytes sent from the server to the client. -- -*`process.working_directory`*:: +*`server.domain`*:: + -- type: keyword -example: /home/alice - -The working directory of the process. +Server domain. +-- +*`server.geo.city_name`*:: ++ -- +type: keyword -[float] -== related fields - -This field set is meant to facilitate pivoting around a piece of data. Some pieces of information can be seen in many places in ECS. To facilitate searching for them, append values to their corresponding field in `related.`. A concrete example is IP addresses, which can be under host, observer, source, destination, client, server, and network.forwarded_ip. If you append all IPs to `related.ip`, you can then search for a given IP trivially, no matter where it appeared, by querying `related.ip:a.b.c.d`. +example: Montreal +City name. +-- -*`related.ip`*:: +*`server.geo.continent_name`*:: + -- -type: ip +type: keyword -All of the IPs seen on your event. +example: North America +Name of the continent. -- -[float] -== server fields +*`server.geo.country_iso_code`*:: ++ +-- +type: keyword -A Server is defined as the responder in a network connection for events regarding sessions, connections, or bidirectional flow records. For TCP events, the server is the receiver of the initial SYN packet(s) of the TCP connection. For other protocols, the server is generally the responder in the network transaction. Some systems actually use the term "responder" to refer the server in TCP connections. The server fields describe details about the system acting as the server in the network event. Server fields are usually populated in conjunction with client fields. Server fields are generally not populated for packet-level events. -Client / server representations can add semantic context to an exchange, which is helpful to visualize the data in certain situations. If your context falls in that category, you should still ensure that source and destination are filled appropriately. +example: CA +Country ISO code. +-- -*`server.address`*:: +*`server.geo.country_name`*:: + -- type: keyword -Some event server addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. -Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. +example: Canada +Country name. -- -*`server.ip`*:: +*`server.geo.location`*:: + -- -type: ip +type: geo_point -IP address of the server. -Can be one or multiple IPv4 or IPv6 addresses. +example: { "lon": -73.614830, "lat": 45.505918 } +Longitude and latitude. -- -*`server.port`*:: +*`server.geo.name`*:: + -- -type: long +type: keyword -Port of the server. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`server.mac`*:: +*`server.geo.region_iso_code`*:: + -- type: keyword -MAC address of the server. +example: CA-QC +Region ISO code. -- -*`server.domain`*:: +*`server.geo.region_name`*:: + -- type: keyword -Server domain. +example: Quebec +Region name. -- -*`server.bytes`*:: +*`server.ip`*:: + -- -type: long +type: ip -example: 184 +IP address of the server. +Can be one or multiple IPv4 or IPv6 addresses. -format: bytes +-- -Bytes sent from the server to the client. +*`server.mac`*:: ++ +-- +type: keyword +MAC address of the server. -- @@ -2515,120 +2668,103 @@ example: 12 Packets sent from the server to the client. - -- -[float] -== geo fields - -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. - - - -*`server.geo.location`*:: +*`server.port`*:: + -- -type: geo_point - -example: { "lon": -73.614830, "lat": 45.505918 } - -Longitude and latitude. +type: long +Port of the server. -- -*`server.geo.continent_name`*:: +*`server.user.email`*:: + -- type: keyword -example: North America - -Name of the continent. - +User email address. -- -*`server.geo.country_name`*:: +*`server.user.full_name`*:: + -- type: keyword -example: Canada - -Country name. +example: Albert Einstein +User's full name, if available. -- -*`server.geo.region_name`*:: +*`server.user.group.id`*:: + -- type: keyword -example: Quebec - -Region name. - +Unique identifier for the group on the system/platform. -- -*`server.geo.city_name`*:: +*`server.user.group.name`*:: + -- type: keyword -example: Montreal - -City name. - +Name of the group. -- -*`server.geo.country_iso_code`*:: +*`server.user.hash`*:: + -- type: keyword -example: CA - -Country ISO code. - +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -- -*`server.geo.region_iso_code`*:: +*`server.user.id`*:: + -- type: keyword -example: CA-QC - -Region ISO code. - +One or multiple unique identifiers of the user. -- -*`server.geo.name`*:: +*`server.user.name`*:: + -- type: keyword -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +example: albert +Short name or login of the user. -- [float] == service fields -The service fields describe the service for or from which the data was collected. These fields help you find and correlate logs for a specific service and version. +The service fields describe the service for or from which the data was collected. +These fields help you find and correlate logs for a specific service and version. + + +*`service.ephemeral_id`*:: ++ +-- +type: keyword + +example: 8a4f500f +Ephemeral identifier of this service (if one exists). +This id normally changes across restarts, but `service.id` does not. +-- *`service.id`*:: + @@ -2641,7 +2777,6 @@ Unique identifier of the running service. This id should uniquely identify this service. This makes it possible to correlate logs and metrics for one specific service. Example: If you are experiencing issues with one redis instance, you can filter on that id to see metrics and logs for that single instance. - -- *`service.name`*:: @@ -2656,6 +2791,14 @@ The name of the service is normally user given. This allows if two instances of Also it allows for distributed services that run on multiple hosts to correlate the related instances based on the name. In the case of Elasticsearch the service.name could contain the cluster name. For Beats the service.name is by default a copy of the `service.type` field if no name is specified. +-- + +*`service.state`*:: ++ +-- +type: keyword + +Current state of the service. -- @@ -2670,115 +2813,163 @@ The type of the service data is collected from. The type can be used to group and correlate logs and metrics from one service type. Example: If logs or metrics are collected from Elasticsearch, `service.type` would be `elasticsearch`. - -- -*`service.state`*:: +*`service.version`*:: + -- type: keyword -Current state of the service. +example: 3.2.4 +Version of the service the data was collected from. +This allows to look at a data set only for a specific version of a service. -- -*`service.version`*:: +[float] +== source fields + +Source fields describe details about the source of a packet/event. +Source fields are usually populated in conjunction with destination fields. + + +*`source.address`*:: + -- type: keyword -example: 3.2.4 +Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. +Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. -Version of the service the data was collected from. -This allows to look at a data set only for a specific version of a service. +-- + +*`source.bytes`*:: ++ +-- +type: long + +example: 184 +Bytes sent from the source to the destination. -- -*`service.ephemeral_id`*:: +*`source.domain`*:: + -- type: keyword -example: 8a4f500f +Source domain. -Ephemeral identifier of this service (if one exists). -This id normally changes across restarts, but `service.id` does not. +-- + +*`source.geo.city_name`*:: ++ +-- +type: keyword + +example: Montreal +City name. -- -[float] -== source fields +*`source.geo.continent_name`*:: ++ +-- +type: keyword -Source fields describe details about the source of a packet/event. Source fields are usually populated in conjunction with destination fields. +example: North America +Name of the continent. +-- -*`source.address`*:: +*`source.geo.country_iso_code`*:: + -- type: keyword -Some event source addresses are defined ambiguously. The event will sometimes list an IP, a domain or a unix socket. You should always store the raw address in the `.address` field. -Then it should be duplicated to `.ip` or `.domain`, depending on which one it is. +example: CA +Country ISO code. -- -*`source.ip`*:: +*`source.geo.country_name`*:: + -- -type: ip +type: keyword -IP address of the source. -Can be one or multiple IPv4 or IPv6 addresses. +example: Canada +Country name. -- -*`source.port`*:: +*`source.geo.location`*:: + -- -type: long +type: geo_point -Port of the source. +example: { "lon": -73.614830, "lat": 45.505918 } +Longitude and latitude. -- -*`source.mac`*:: +*`source.geo.name`*:: + -- type: keyword -MAC address of the source. +example: boston-dc +User-defined description of a location, at the level of granularity they care about. +Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. +Not typically used in automated geolocation. -- -*`source.domain`*:: +*`source.geo.region_iso_code`*:: + -- type: keyword -Source domain. +example: CA-QC +Region ISO code. -- -*`source.bytes`*:: +*`source.geo.region_name`*:: + -- -type: long +type: keyword -example: 184 +example: Quebec + +Region name. + +-- + +*`source.ip`*:: ++ +-- +type: ip + +IP address of the source. +Can be one or multiple IPv4 or IPv6 addresses. -format: bytes +-- -Bytes sent from the source to the destination. +*`source.mac`*:: ++ +-- +type: keyword +MAC address of the source. -- @@ -2791,133 +2982,110 @@ example: 12 Packets sent from the source to the destination. - -- -[float] -== geo fields - -Geo fields can carry data about a specific location related to an event or geo information derived from an IP field. - - - -*`source.geo.location`*:: +*`source.port`*:: + -- -type: geo_point - -example: { "lon": -73.614830, "lat": 45.505918 } - -Longitude and latitude. +type: long +Port of the source. -- -*`source.geo.continent_name`*:: +*`source.user.email`*:: + -- type: keyword -example: North America - -Name of the continent. - +User email address. -- -*`source.geo.country_name`*:: +*`source.user.full_name`*:: + -- type: keyword -example: Canada - -Country name. +example: Albert Einstein +User's full name, if available. -- -*`source.geo.region_name`*:: +*`source.user.group.id`*:: + -- type: keyword -example: Quebec - -Region name. - +Unique identifier for the group on the system/platform. -- -*`source.geo.city_name`*:: +*`source.user.group.name`*:: + -- type: keyword -example: Montreal - -City name. - +Name of the group. -- -*`source.geo.country_iso_code`*:: +*`source.user.hash`*:: + -- type: keyword -example: CA - -Country ISO code. - +Unique user hash to correlate information for a user in anonymized form. +Useful if `user.id` or `user.name` contain confidential information and cannot be used. -- -*`source.geo.region_iso_code`*:: +*`source.user.id`*:: + -- type: keyword -example: CA-QC - -Region ISO code. - +One or multiple unique identifiers of the user. -- -*`source.geo.name`*:: +*`source.user.name`*:: + -- type: keyword -example: boston-dc - -User-defined description of a location, at the level of granularity they care about. -Could be the name of their data centers, the floor number, if this describes a local physical entity, city names. -Not typically used in automated geolocation. +example: albert +Short name or login of the user. -- [float] == url fields -URL fields provide a complete URL, with scheme, host, and path. +URL fields provide support for complete or partial URLs, and supports the breaking down into scheme, domain, path, and so on. - -*`url.original`*:: +*`url.domain`*:: + -- type: keyword -example: https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch +example: www.elastic.co +Domain of the url, such as "www.elastic.co". +In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the `domain` field. -Unmodified original url as seen in the event source. -Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path. -This field is meant to represent the URL as it was observed, complete or not. +-- + +*`url.fragment`*:: ++ +-- +type: keyword +Portion of the url after the `#`, such as "top". +The `#` is not part of the fragment. -- @@ -2930,54 +3098,47 @@ example: https://www.elastic.co:443/search?q=elasticsearch#top If full URLs are important to your use case, they should be stored in `url.full`, whether this field is reconstructed or present in the event source. - -- -*`url.scheme`*:: +*`url.original`*:: + -- type: keyword -example: https - -Scheme of the request, such as "https". -Note: The `:` is not part of the scheme. +example: https://www.elastic.co:443/search?q=elasticsearch#top or /search?q=elasticsearch +Unmodified original url as seen in the event source. +Note that in network monitoring, the observed URL may be a full URL, whereas in access logs, the URL is often just represented as a path. +This field is meant to represent the URL as it was observed, complete or not. -- -*`url.domain`*:: +*`url.password`*:: + -- type: keyword -example: www.elastic.co - -Domain of the request, such as "www.elastic.co". -In some cases a URL may refer to an IP and/or port directly, without a domain name. In this case, the IP address would go to the `domain` field. - +Password of the request. -- -*`url.port`*:: +*`url.path`*:: + -- -type: integer - -example: 443 - -Port of the request, such as 443. +type: keyword +Path of the request, such as "/search". -- -*`url.path`*:: +*`url.port`*:: + -- -type: keyword +type: long -Path of the request, such as "/search". +example: 443 +Port of the request, such as 443. -- @@ -2989,17 +3150,17 @@ type: keyword The query field describes the query string of the request, such as "q=elasticsearch". The `?` is excluded from the query string. If a URL contains no `?`, there is no query field. If there is a `?` but no query, the query field exists with an empty string. The `exists` query can be used to differentiate between the two cases. - -- -*`url.fragment`*:: +*`url.scheme`*:: + -- type: keyword -Portion of the url after the `#`, such as "top". -The `#` is not part of the fragment. +example: https +Scheme of the request, such as "https". +Note: The `:` is not part of the scheme. -- @@ -3010,67 +3171,50 @@ type: keyword Username of the request. - --- - -*`url.password`*:: -+ --- -type: keyword - -Password of the request. - - -- [float] == user fields -The user fields describe information about the user that is relevant to the event. Fields can have one entry or multiple entries. If a user has more than one id, provide an array that includes all of them. - +The user fields describe information about the user that is relevant to the event. +Fields can have one entry or multiple entries. If a user has more than one id, provide an array that includes all of them. -*`user.id`*:: +*`user.email`*:: + -- type: keyword -One or multiple unique identifiers of the user. - +User email address. -- -*`user.name`*:: +*`user.full_name`*:: + -- type: keyword -example: albert - -Short name or login of the user. +example: Albert Einstein +User's full name, if available. -- -*`user.full_name`*:: +*`user.group.id`*:: + -- type: keyword -example: Albert Einstein - -User's full name, if available. - +Unique identifier for the group on the system/platform. -- -*`user.email`*:: +*`user.group.name`*:: + -- type: keyword -User email address. - +Name of the group. -- @@ -3082,52 +3226,43 @@ type: keyword Unique user hash to correlate information for a user in anonymized form. Useful if `user.id` or `user.name` contain confidential information and cannot be used. - -- -[float] -== group fields - -The group fields are meant to represent groups that are relevant to the event. - - - -*`user.group.id`*:: +*`user.id`*:: + -- type: keyword -Unique identifier for the group on the system/platform. - +One or multiple unique identifiers of the user. -- -*`user.group.name`*:: +*`user.name`*:: + -- type: keyword -Name of the group. +example: albert +Short name or login of the user. -- [float] == user_agent fields -The user_agent fields normally come from a browser request. They often show up in web service logs coming from the parsed user agent string. +The user_agent fields normally come from a browser request. +They often show up in web service logs coming from the parsed user agent string. - -*`user_agent.original`*:: +*`user_agent.device.name`*:: + -- type: keyword -example: Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1 - -Unparsed version of the user_agent. +example: iPhone +Name of the device. -- @@ -3140,85 +3275,71 @@ example: Safari Name of the user agent. - -- -*`user_agent.version`*:: +*`user_agent.original`*:: + -- type: keyword -example: 12.0 - -Version of the user agent. +example: Mozilla/5.0 (iPhone; CPU iPhone OS 12_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0 Mobile/15E148 Safari/604.1 +Unparsed version of the user_agent. -- -*`user_agent.device.name`*:: +*`user_agent.os.family`*:: + -- type: keyword -example: iPhone - -Name of the device. +example: debian +OS family (such as redhat, debian, freebsd, windows). -- -[float] -== os fields - -The OS fields contain information about the operating system. - - - -*`user_agent.os.platform`*:: +*`user_agent.os.full`*:: + -- type: keyword -example: darwin - -Operating system platform (such centos, ubuntu, windows). +example: Mac OS Mojave +Operating system name, including the version or code name. -- -*`user_agent.os.name`*:: +*`user_agent.os.kernel`*:: + -- type: keyword -example: Mac OS X - -Operating system name, without the version. +example: 4.4.0-112-generic +Operating system kernel version as a raw string. -- -*`user_agent.os.full`*:: +*`user_agent.os.name`*:: + -- type: keyword -example: Mac OS Mojave - -Operating system name, including the version or code name. +example: Mac OS X +Operating system name, without the version. -- -*`user_agent.os.family`*:: +*`user_agent.os.platform`*:: + -- type: keyword -example: debian - -OS family (such as redhat, debian, freebsd, windows). +example: darwin +Operating system platform (such centos, ubuntu, windows). -- @@ -3231,28 +3352,16 @@ example: 10.14.1 Operating system version as a raw string. - --- - -*`user_agent.os.kernel`*:: -+ --- -type: keyword - -example: 4.4.0-112-generic - -Operating system kernel version as a raw string. - - -- -*`agent.hostname`*:: +*`user_agent.version`*:: + -- type: keyword -Hostname of the agent. +example: 12.0 +Version of the user agent. -- diff --git a/x-pack/functionbeat/include/fields.go b/x-pack/functionbeat/include/fields.go index 76a7dc0ee85..336f503e099 100644 --- a/x-pack/functionbeat/include/fields.go +++ b/x-pack/functionbeat/include/fields.go @@ -19,5 +19,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "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" + return "eJzsvXtzG7eSOPp/PgWuUnVl71LUw/Ij2jq7V0d2EtWxHa1lb/bsZssEZ0AS0QwwATCimVu/7/4rdDcwmAf1sE0fu5bnjxNrOAM0Go3uRj+/Z7+evnl9/vqn/4c910xpx0QuHXMLadlMFoLl0ojMFasRk44tuWVzoYThTuRsumJuIdiLs0tWGf27yNzou+/ZlFuRM63g+bUwVmrFDscH44Pxd9+zi0JwK9i1tNKxhXOVPdnfn0u3qKfjTJf7ouDWyWxfZJY5zWw9nwvrWLbgai7gkR92JkWR2/F33+2xK7E6YSKz3zHmpCvEiX/hO8ZyYTMjKye1gkfsR/qG0dcn3zG2xxQvxQnb/f+cLIV1vKx2v2OMsUJci+KEZdoI+NuIP2ppRH7CnKnxkVtV4oTl3OGfrfl2n3Mn9v2YbLkQCtAkroVyTBs5l8qjb/wdfMfYW49raeGlPH4nPjjDM4/mmdFlM8LITywzXhQrZkRlhBXKSTWHiWjEZrrBDbO6NpmI85/Pkg/wN7bglikdoC1YRM8ISeOaF7UAoCMwla7qwk9Dw9JkM2msg+87YBmRCXndQFXJShRSNXC9IZzjfrGZNowXBY5gx7hP4gMvK7/pu0cHh0/2Dh7vHT16e/Ds5ODxyaPj8bPHj/5rN9nmgk9FYQc3GHdTTz0VwwP853t8fiVWS23ygY0+q63TpX9hH3FScWlsXMMZV2wqWO2PhNOM5zkrheNMqpk2JfeD+Oe0Jna50HWRwzHMtHJcKqaE9VuH4AD5+v+dFgXugWXcCGad9ojiNkAaAXgREDTJdXYlzIRxlbPJ1TM7IXR0MEnf8aoqZMZxlTOt96bc0E9CXZ/4A5/Xmf85wW8prOVzcQOCnfjgBrD4ozas0HPCA5ADjUWbT9jAn/yb9POI6crJUv4Zyc6TybUUS38kpGIc3vYPhIlI8dNZZ+rM1R5thZ5btpRuoWvHuGqovgXDiGm3EIa4B8twZzOtMu6ESgjfaQ9EyThb1CVXe0bwnE8LwWxdltysmE4OXHoKy7pwsiri2i0TH6T1J34hVs2E5VQqkTOpnGZaxbe7J+JnURSa/apNkSdb5Pj8pgOQErqcK23Eez7V1+KEHR4cHfd37qW0zq+HvrOR0h2fM8GzRVhl+7D+905DPzsjtiPU9dHO/6RHlc+FQkohrn4aH8yNrqsTdjRAR28XAr+Mu0SniHgrZ3zqNxm54Mwt/eHx/NN5+TYLtK9WHufcH8Ki8MduxHLh8B/aMD21wlz77UFy1Z7MFtrvlDbM8SthWSm4rY0o/Qs0bHytezgtkyor6lywvwru2QCs1bKSrxgvrGamVv5rmtfYMQg0WOj4n2ipNKRdeB45FQ07Bsr28HNZ2EB7iCRTK+XPiUYEediS9YXzvlwIkzLvBa8q4SnQLxZOalwqMHaPAEXUONPaKe38nofFnrBznC7zioCe4aLh3PqDOGrgG3tSYKSITAV34+T8nl68ApWEBGd7QbTjvKr2/VJkJsasoY2U+eZaBNQB1wU9g8kZUou0zItX5hZG1/MF+6MWtR/frqwTpWWFvBLsb3x2xUfsjcgl0kdldCaslWoeNoVet3W28Ez6pZ5bx+2C4TrYJaCbUIYHEYgcURi1leZ0iGohSmF48V4GrkPnWXxwQuUNL+qd6rXnunuWXoQ5mMz9EZlJYZB8pCVEPpAz4EDApuzDSNdBp/GSzJSgHQQFjmdGWy/8rePGn6dp7dgEt1vmE9gPvxOEjIRpPOPHs8cHB7MWIrrLj+zsk5b+Tsk/vHpz/3VHcetJFAkbvluCXJ8KBmQs87XLy1vL8/+/iQWS1gLnK+UIvR20jONbyA5RBM3ltQC1hSv6DN+mnxeiqGZ14Q+RP9S0wjiwW2r2Ix1oJpV1XGWkxnT4kfUTA1PyRELilDXiVFTccFJBaPmWKSFyvH8sFzJb9KeKJzvTpZ/Mq9fJus9nXvENnAeWiiwpPNIzJxQrxMwxUVZu1d/KmdatXfQbtYldfLuqbti+wO38BMw6vrKMF0v/n4hbrwraRSBN3FbSxvFbL83HDWpU5NkRq827SOI0xVQ0r4AIk7PWxjc71iWA1uaXPFv4K0Efxek4Ac902dwAqv+DrrFtZHdgeuLvuHsmO0rUmKyQHT3mrHlygyJzSl96gsvFDBQ+jjsnlXSSOw1MiTMl3FKbK6/pKAEKlT91ATZUUIyYc5OD4PJySSs7St5HoTWVeNOX2mu+s0Iv/Q3N63Qttfnt2QWNiqeiAbMHm3/gX08gAy5ihYrqin/n8u+vWcWzK+Ee2IdjmAU17cpopzNd9KbCG60XK61Jg55l4Lou/KUoaAIBS85wZTkAM2aXuhRRNtcWdRwnTMl2wjVdm51GqzdiJkwLFNVZoEU1g34mHRR3diqiDgY6aIIABIF5sNQ8bHMzRQo/atNERGECf3JqW3uE0KiN8ieVB+/3WuEGgC6I2l0worCB0RoEK+16Y3qujhu2B4csXF/jpRfH2w8TRTMFMGuUE/4mbEXJlZMZaOnigyORIj6gsjBCDv5dZO1BsDjNrqVfr/xTNJq9X6kwoO1b6WpO+3E+YytdmzjHjBdFoD6pglxzYq7NauRfDRzROlkUTCiv2xLhom3Ec81cWOfpw+PUI2wmiyIqXbyqjK6M5E4Uq3todTzPjbB2UwodkDuq8ERcNCEx38hnyqmc17q2xQrJGb6JHHvp0WJ1KcAmxAp/A+SKnV+MGGe5Lv0GaMM4q5X8wKz2dDJm7O8NZklGgNGiUQsWghm+DDAFwp+M6cEEUdYWccrfABoJltdotMAr6GQsq4kHZTJGsCb+GlcJlZOOgQqCVg0QcJ+gHQu7Ml05YW+RKYWOun4L53/13+IVIlrxCPf+juzPPqr+XVly+Oy4BQQuYAOSjc4qjj9uzTkXepxJt3q/IS30TLoVTNVb/SutnBG86IOjlZNKKLcpmF4nGnGcrAffa23cgp2WwsiMDwBZK2dW76XV7zOdbwR1OAU7v/yF+Sl6EJ6drgVrU7tJIA1u6BlXPO9jqtBZqr+vA2cu9PtKy8iD2hYorebS1Tny5YI7+KMHwe7/z3YKrXZO2N7TR+Mnh8fPHh2M2E7B3c4JO348fnzw+IfDZ+z/7PaA7OPr87Hkd1aYvcB3k59QtQvoGTFStFHa6hmbG67qghvpVikDXbHMM3LQLxJGeRb4Y7zGIIVLg5IzE8oJQ1rWrNDaMFWXU2FGoLYvZKPD2DgoglewarGy0v8jmNGycKxtAsJr7RJXARgJpWK8droEdj0XOqy2r+xPtXVa7eVZb2+MmEutNnnS3sAMNx20vX8/WwfXho4awTR40v69FlPRRpSsboEhvtAmzvOLKIwDRwRhkVIW3vi1El7ORvv1+cX1sX9wfnH9pFEyOnK15NkGcPPq9Gwd1OnkqL5+rFi/wK8/SrAfteHQxn0sENq4m5ZYW2HGouSy2BD38syLwQQB4wMAzOqiGDgHnxWIXcv8NDAtsCx+zWXBp0X/eJwWU2EceyGVdYIUqha8oKGPN2ZV7VsWZ2RFh4mj8QNuhPtVwd1Mm3IArwjnBhGbakI4WR+IBbeLjYlGxJSfh/l5/LnKtDHC30FbJvwZ3jb8i16mKK1WqUMQXIKphe+dFWSenMAqZI63BPjDr24S3UaZVjPcK1605vS6RsZVcztmwc3b4XI0wwY43S8dplt3SSsyQIChD9WGpNPlwjMmVDPApSNVH5DkSHI4ki2bma5xymgyCw/WW8wwuoMheeSBCcNQDMxAM8Ojy7dxZuHNFy3BBBjag9la59WMvRLOyAyNyjY1WnPFXpwdocnaU8hMuGwhLGhZyehMOkv+wgZIT11tN3fLXyltNIa2QaBxTa3IEWlEqV00nTJdOytzkczUhQxh4ow8ZWFBYdNV8ylpiG2PPA7aDAQuQZo8CEI/rLQNqISw+9hGMri/bI4z775tEIRzgSvUzLmSf+Khl3l0b9MpW7FczmbCpPYR0IMlOHUZx+O554TiyjGhrqXRqmwrUQ1tnf56GSeX+Yj9pPW8EEj/7Jc3P7HzHB3QYB7tHfi+5vzkyZOnT58+e/bshx9+aKMTJaQs/P3+z8YE8rmxeprMw/w8HitodwGahqPSHKIec6jtnuDW7R12VFryGmyOHM6Dt+j8eeBeAGs4hF1A5d7h0aPjx0+ePvvhgE+zXMwOhiHeoMiOMKd+vT7UiQIOD/vuqc8G0avABxJP1Y1odEfjUuSyLttastHXMo8BCZtUdZADhAnH4XCmwVZ8aUeM/1kbMWLzrBrFg6wNy+VcOl7oTHDVl3RL21oW3hI3tCi6JH7kcUvFMTJ6wn4Qya2HNziy4ottZwV5EXqxcEl4TiUyOZPhjhihQFM8+ZvIIq9n6SBJYKWwIsy7EEWVKJAgrzBUNQ5tSRKqlUeQk6W4h4DaiI5HSnCzeJm3z7As+XyjPCU9GzBZNI0iQEtu2bSWhfPifAA0x+cbgqyhLIKLz9sAJNGeN8+eRH3eEPfZZbYwKYVQtubd4G40a26MP5GbIMluip3g6Kzkis+99gb8JNJBj5NgtGnCRhKPWcpInnce38BKkldvdq2i9py8DdZUNPnst6MuB8ZMvKm3+VGR+5Af9Wv087XclHdy9jVqLAZqfyZnXxwWnH7/e5x96QYEwyBF33cOzBfz+KUkv3X7bd1+nwekrdvv7jjbuv22br9vye2XCLFvzffXAp1t2AF4D2G/ES/g2sVuXYFbV+DWFci2rsBvzRWIed2dzO6bjASvhON76e4EMyJljuOUd7mk35ZMMJAR/mnpVkm2POheFKmrYTGWOT1mE5HZMb00weScAEZD4eCd80RZ1tZhihIchqIXp83Yr/5W/UctzAoizzE3K5KRVLnMhGV7e3R7LvkqAATJ+YWcL1wx5ARLVgPfUz0BD1rhBadUTswNxYPz/HcPahCZ2UKUvIN/1kqatX1lEQoMpJRjjG5ZrF/EBzfnjzYW4wySjSh0HQeEc8TVil1J1Vgn3mHqQInpTvgeWKkxU9IjrxDocvVoDlmjwKMyboVtUizDsmDvpbOimDWeVq5w9HuYmjakHgMyYfBwRUCToCAA24roBi3jA9JzAII0L309GDE3fXCxIcs6pbHrTm7Pi+s75ijj/g55REKawrBTpNBBCUTniZFZi1YiSZ5C2ns7eciTT+ApnqD8liVpwWDlW+A+8ibLNzDpl016PjCWkLIMOTOyFP6yGjxN/qkfKI7RZDrrWbIIGi8MxUPmLIPk0BBUQaESTaoT6u5sKjCjiVRwGpMHs6zTjKcq8QgNlQP5UlPhlkL4mUJehMopHiL6HHEySjXC3Oes0F7Is9OwE7ejGy9LNGSpjfA3bjAnFTAi5qHAn2kCOQA0jOjkNRq2ScFuYT2llgblpSi1WTHP5CDPhYbLE8Q3BHddF0oY9ObLJsedXrZeCRI5ZrjfJ7DjDqagjw7owNFZxiss9UDZjW0nACW7RmMHZZU1B1AmFVzG7Bzcj7B7jXax4IpN8IWQTTRpMifjRvizPgGE7PE8n4zYhEh+D0hewKOZLMReZoQntAmm4IR6K3HEmFgdKI5WJv08JVh2+kLSK117FbfWI3MPs6za4oJA38R2vMDDQDN0kR+F3ELOF5RWNswDgUOCAJ31diWOCbsDWWydzUGCmIzCnlqhLKV3NYYqHsGMcDUjB+2Ih4y/X7nxhxvqGsxqiC+Lqo+eeVVoxJaCVQUHswDFFjAehyyoiAbPMlE5yG2mcAOUaUF1GrEKqyfVVqAHKuP1sO0Mdhp8dQ1riJuMlHXLHsfCRt19JCLHQXoRa8NVjzxPgkJAcc1GcKDZkEKOOagrzNXrlQIiIkEF0h9V6dl6RraXpnhTzOhLHjXbSrDGMSNHHai1FGvAdFnFuWKlti7JMQQDqieipW7qJFl0nU3FgJaMRzr8mTUeqaxdLSjjRQbuR7LuFHwVZRXgiSQdFXgCFZ6EThOU0hIdsC3waaiSYqwLUlfkTHZS+QMkpVaySbBlyRC7u6DJhh3zf4ZwL6fZlRAVqyskVvgorTLVxiqklgOkbTx6lolqXsaLUbqzjS9w4Ladc8etuM2s9lGcLLWH0DSdzPtMK3+U0Z4/oXcm7IHn7FY4tk/i2Ar30NNzsIxjxQivPDBbTxvw4fpT6rwuhAVW1zp2KZ9EzcDvYG08rRWrUBxKqmbS9MKPJNL8hNP4TSVo4eU+i7GOu3Y8U16bu/h11pkyd5/T9y3O7uFWXGkrMq1y267UgIcTRCesAv8WXn0zgl0pvVRpvbKGYNzwAQynC2ZXeI3G0ZNooKj+q7uYBtfx0QbUHgvtck8Y1G9IfO5lz3XqBfIMtuBejGDtnk6Y0Aatcz9zu2APKmEWvLJQwQcq28ykmgtTGancQ7+fhi+JfTvtNwCknNNxAbkotbLO+OXD1QUMBNKtBmznIc5y6F+nfz17/sVun+fP/WpiEEqiWXZgHizuciXvREAfrfv68YdrjZE4nctrCFPuallL0oa6gXUJSQaabeRMqJ9Gt7LE7HaD0tZRjOHppBlz4nmM8CoxL7gpJ1+nrgVAtu0NwEI3LXqIUaOj9saaNljLJ73QtN5MRuuKIm1isar+wsuV/aMdrBG0pk0s/Q1fgokmVuXTM3A+m0hN70hbuYGXrNEnlfZyJhcfBPL8XGfvk4jfXFpPKTmKXrD1g2YnuMkWIm8Idlo7JmOdJONlqrgOauXkPao9kz4mL0XFDn9gB89Ojp6cHB5gnO7Zix9PDv7f7w+Pjv/lUmS1XwD+xdzCa9+o3ht8djimVw8P6B/NydSmZLbOvI43qwvUCKpK5OED/K812V8OD6BO6yHLrfvL0fhwfDQ+spX7y+HRo7bHUtcu05sLkPDsi6ZYx8FaVUubq7u/T2Ro7mkOs23L2NbISS2iUBemMZvgi8SdCIVUQXPGZVEbMciT4oh34k1350lx3LvzJoS5tXdG2qv3NjmU647prNB80CL6RtorBiNguTupPXG21bYHYjwfM0uEy6wuAET7sLGKvLOC7jHg44SbBN26UF9bCNMNco2wv1falHegv7WL2H0NJhT5p8hh2FsWNIpWLq8cz+IiDvxeHh4cDJROK7lUGPZCTsaVrmHPSoyB5AoMglT+B+6t3Fo5VzYByLavcn6IJcc0Yys89ahmGYg1cuPwogjFjTqKqxXXIokhuq+efkmfdwxmce/C8B1Z/+sCw5kalS/ch5sviOxLwRUw0WthkntzVM89DsFx4hnybmObqaugbyRmMLi/8ivBwMBJU0kRMv+UldaB0RfRFnxknYO0+7SDQ38r+GT1H+8Wt14AyDaYXgFaTMtfBRoby5o7gL/BbDDTazeRqM09K6lC2lrS7q5t7vhpEU5GspicCwRzW0ktjOD5ijhMLma8Lhy7XFkv6xvDQcJoztFMAZDyAtPnltKmBojThvfGSXFKIJQTsAkqrcA2f/6cJt95URtdif3T0jphcl7uPEyO63RqxDW6C8Lrl293HoIfQrGffz4py4a4JS/CW3sHj08ODnYedo7tpsoIvhFILiBtSKmu0dcV10Jl2/m1hiTImADQlOaGoAuvho7TMr4zSXowech+DH/fWPsOCs93vCnMCte/j4CjyrKp5wptuyY5fPyv4AMPbgowagBbbOra+emowHbQ3bi1OpNN/VzQyELhu1Y1NjvyjHmf7CWBb6CbBTbUayLaCiqZjaZ6mPI86KXsFdrXPFr/+8fzV/8TymvbxltEabRQIQ/cyajYBC2inwDBZzOBNk3/emc9gWqSuvRkArqPc/mO+SbreOBLHirDA4ilcBwDU8Ex0WFfufDL3xDzeg6Dr0ktw5znoqOJwNz9CJHPx09hl+MsXfUiZlcUeskEtysPohNAQtMVIjR+PBAvUZFsj+GrG4tzuzASqp5jVJtnnT+dP3+4HrENzW0aljRNtg+HVL3Yic+Yqatz0W7fEIAIjqmUT7G2bWFj2boeqAQfHhSdOV50Kjj2lKPjwydtGD8vYyDjEWg4pc7lTHaZg16qjWUHo3TwE+yCdcT0U+8q7jZlXr3gbhGU2j6NWvnnXfC8TpOHpfkx/E5D6hN7EG0i2t9deJ4H3W3ix4KoM3BQTx521Etu5sK93yAq3sIMgGzQOOyqLKS66oQabzCbHdAFdlFw5IxYLg0oGQRJByP1xljqWwqgBG76Dripaa7aSUzUg8sOq0VCToOY5kKnCtpP9OcN+tlPQqchchk3/pLWFCvhjfU3JHekdVm4SnWkdhecJB+kpeiRUpYLI6M5zYlsAWb4pq6+h+z8IolYQdeg2bN1VRUy+gjvpNx8PSlwX33621eY+vaVpb199Slv23S3rzPd7WtMdfsK0tz6l4Ugv+KD9RLsbcyxSSJwS0FW1SbkG96hUG7oTiAKcc3j4SStLPH4fkydkK8qn+hLJxHF+ARtW4HUP4e/bzQThWo2LTMRla5nmS6r2mHQLpVeim2Xzi4xSjX0Tho2WKZtkxqzCjZJaqrqtEP2Q8QzqIWgpgyG6qZBun6tgNcYlUsjLrjJl9yIEbuWxtW8CFWT7Ig9h/IaSekaMEKxv9VTYZRw0EMnF/cqSmGyhXQiS/xXnzVFqQohaqHbQTJf75x/ePbk/ZN2PYRtWYJtWYL7g7QtS3B3nG31tG1Zgs2XJfDyc0OQ7P5MY6elBtOQEZf0ows+1yW5pdkkQDbxukPpz68RrjZYV7VXuXD3Rq3us/ahQz0nrYZ0aiMeQ/gSNVXB1N8RuMjJmx71V6/iSjWHYAQKA7+xIilqyhRIjC5Bj9kJ9LADTHWx8HElJ0ADktVw6YDNlIr4mbZyeM5N0efrG2kTjGmUbQ5UmVBkQonvoNIWBnYQk4Sgrj9qXoBpPI5J9bmwFgImv3kAyDrX5AxBLjbstfWSxLBcZDKHtFSvuwIZNYxd+/c7G6/teMZLWaw2JJp+uWQ4PnsQbH1G5AvuRiwXU8nViM2MEFObj9hSqlwvG/d/U5IO3uzBXRebqorR03mpKgVo+cHnE3K+Qz7tsArKM4+DV/p3fi26K7jyKv8XWwPOFsGGO5fhS2adGaooejw+Hh/sHR4e7VE2Vhf6DSo0a/AfIpUT7K9D+H92oQ3X5i8FcZiP6N7rRtqOWD2tlatvonVulrJH64M1DTYH/F1p5PBgfHg8PmxBu6lgl9Azs8N+f9SGymyH0r/UuJU8D62i5n4I6Pw7ieWKJ1CV/bocJQowBFknum68rI/SvqhJQe/U49HI6jjikMweqDCyrfPTpq5tnZ9tnZ9tnZ+vu87PwrmWFf/nt28v4O/7NPzwH8Vw2HGoysImtSkmITBVYOB00nkSgDRFgJc6x97dnh8+mOp8NR4oH3uvgIzLVixGGyQGM3RR+ezZ0/XgUODMhs7rW7p6IOJvhPJnURSaLbUp8mFoPxFvb7XjRSeSpYO9Bx4wOMQLwb187ytNh8ePhpFZCrfQG8vVa6EPp+qkEyPxYnQ/FF+ZijTs32lW6KUwkEHtWWOo6DRml4JyXXVWlyF+K45tqQDKznkIl/fa24uzy52+2Wsu3IhVUImlqt0gmqA/stlYINYbGr7Jikkx19tNz1Psyf7+tNDzMT0dZ7rc78BuK62s2Oj5xSnueoBTgL7sCb4JzvVHOMC7yTNMkH3cISYAreOutgOm2XuB2UYVjjlsjD0+aHuwNnv7ArjWXWcPx2lHj1CAiYTtS/rzVlmL5iDeqnujIcMyTZq5i9CExW/ievdLSELyUEUHBZXO6uUQYqX8Vgrykhs1GbEJVBHz/5AD6ZrCmNZyNpn2GpLJWilWfjEhDZZ3SwjAiU7eSNTVGRYtKqRDz7hjNdRMiRplxU2rQOA5miQNb+rzTWjYoFMhVaTGS+jhHiqq+BHTfLmwFzRKmqbZydKkxY56CwppuHHMBb8WMS3I+k3FMOEsFBjE6D+8tAuVaWwKYJgSS1ZIJSx0TbtOLhD+6lEIriCnrA3yp2YRM6spSXh3F0S5F9ep3XYajFMg8D85mRg8Y+BDeLWisx8N3ZjIknKD18mjW6rYhTSYdggGmjrKslaEf4zY1dfCBA7SxHsw3IUknYZCKGzaxSe88VEBG2H0Ts2MboJPqJxzn5CJCjtQbDAJ5BRvVXN5LRQGz6azEoerjHY600W7dg83U+kMN41VnlF6KaV6QY0+i4eilJnRIcVoBBTIC6thshWe/OZle7WqRGPpktkfIzbjmZhqfTVibimdQ4eCtGyZlujxrKapm9RUvWTXQuVJeSGIZsaugTHy14vYPEb6xrIFeAr2c687n19geLMdQUVtO2LJmEtpQkbfV6hdc9nuePYpfUh2UZNCDcoZrizozYD9qfZnRBpBxcta+fQTKssEX1Kae1pTPDwPpXVGbBIOJv2Ecko2WLd12V/soyfPWoslbuFW7zfX3fEULUpQ5xISu4BBJwXbzy+wzCJRDrdsKYqCGFpcTzhqTdBAm9eNY/I3Z07rYo/PlbZOZl5TVDk3re6RcdhZoZfpZrwU3ChME+cu3mTm0i3qKdxhPDFAXbH9iLw9me95vWygNu7J4pd/tq+Pf/7nVz89fvX3/WeLc/OfF39kx//1738e/KW1FZE0NqDK7DwPgwedLLBmZ/hsJrPxb+qN8OvBgkeN6Dz5TbHfInJ+Y//EpJrqWuW/Kcb+ienaJX9J5YRRvMC/PAU1f9UKCPc39Zv6dSFUOmbJqyqpzks9Ub2g2sM2cWWTo0lFWkdR+CRKTDpm5FJ+mF3LIGzIL/5aiuUYYVgzcUCNNqwSRpbCCYOAtIC+G0wNIC0I/H/Bo0CTpSPHScc7XXIi3LfoZqbNkptc5O8/JQYgaT0R08XpuCY/kTJcGf1hoDrUD0fjw/HhuF2uRHLF32MU0YYYzPnp61N2EbjDa5iKPQgnd7lcjj0MY23m+yiEobDrfuAnewhc/8H4w8KVRZLLfkl8BGRTqBwSvrLEf3gBVSSAg4F281q4Hwu9xIJm8C8ynMZxCz0PN7yaLKdDa+ohvJ35t2nvBCpC0xXT4GyESts6SFrbRJIFudSF9icwsv0qZ7IF9qd1AyGBS4N8lMilbweEbvPLgNgNPza6GAngYcF71DZIBKrZxLX15dNwk2hkJoQ2MPFhDBJtxAqgqN955rVGjzQvextt9uvT0qKbInqpA9SbQOGlJ3huIy0nTAw1dPBo8qYeg2B/w3nSYxgr5zcYLvjKM6c6r0bMZdWIyer6yZ7MymrEhMvGD78+zLusg/gNhQeco9D55fIcsqELFKLL1I0fyPqlx+LY4+4YMZjciCorshGrZAkI/frQ6YFOzABUMKbVL+GX9NlNaRgqft4v2VGJTPIiUPAo5qhiOFrv+ow1HmLV2Vw4kblRGB8+wiIft4+415Zvodl/U+m0nXgaAzU4y2rrdBmzL3BQaKsNTmdaaqf0iFYzOa+bPhxOM1OruyOAWT1zfrqk+lg7G2QmjVjyorAjr+GaGiJrEENSq/3KwBJhqBAbGHTIREu0QlltYk2ppZi2oEgmgVjsQlvLhob2iDy9eEXYsGnr0EANqbGGYynkNbYaYlA4OEZzqNUorc2G67SRFGwouYLkYBuF+QYUh0InNCaVO2GvyI76Ry1qHJi9ePsS8oe0AqoJdz2qk9zu4UHkFKxKRoAZEOpK5QKK4xM+oMvpi7PLexiYtjkv25yX+4O0zXm5O862OS/bnJdvOuelm/ISpW/b/vFxRpl+K9Dh4b9YO8+WorpNPtgmH2yTD7bJB58/+cAKI3mxWYNxuF/TZCTvb6tl9fk6Y4X6/ilbjR1NbiolLwzlHPqLYdCcgiG6GWlVCTseirAJrgKTFvoPF0+IuMkt/Key1B/rwwr+oYtCQEgOXmL9v5or6EAcRBizhdKWp/lzIjWuHGdIQ8fHHQhubiz6GUgqYSxNiNKcK/lno+wHM0/3+S0xH+k44X4vlJHZAgkHLvbrGneVFVdBSmtD+mqL6DpRGWkQSNOYcyGKCgphc2O4modeNY4K0CYNb7jCgBzwGLSD5yMYzXruUy7jH5AukoL6xcq2pPQR1YOGq7dIKbLgS2DBt5DTW7Czdgr0ryEd3eHud480/CY1w29cLfyGdcJvSCH8hrXBr14VTDyksX0GcbmL5NGdO0mvZW6x5e2wpMu4aqRdkwpHNud24zcIYowddGW+n9AyBZW0YmiBAYf2o+MKUuJmTihmHV/ZUIY4tLbFVtQ8dqwCBbGS6KiBhMFCT3mRFIQP4DYGpbuVoZrfJYng42LAjOErCpcAJHEzB0daaid7BU0WSZ/A5VVGO5E5cJ5IJ69buYg9vZP+3GM2Zkrusb0i/rO28U6xx0LDnXYUhfggshqaEWwIFadT6MciMDSXdjBgpZm9d0L2a2v2p1Lth7V9ifKRdOJICsWN8lcL6PbAMl4UAjK354aXMQ/RylIWfKANbhf46tZkzXWRHxfxtHUKQveGvFeOSRi24lB5pTv6p/YeeRvagaa7Tj1G+mb7o4PDJ3sHj/eOHr09eHZy8Pjk0fH42eNH/9VpTrEwgud3y6JemwEEY7Dz532hfXTcDugCZrxpgoNJOmEoHl3wfISJBkiB4L6kcI0qJVd2xhVGUk+bhpPuJA6ZFAJgnE2NXlowCYT8DAIiHNGlmLKKz0XS3VNjh/X2biy1uZJq/h7DjnoNnT9rAhnNxeJcwaoQJVuXiSx0KfZ5ge0cmjStxl9PovZN8uhGUds0nhHYmzvU8pzxTBbSeZlZyWuNLXKNrqG/eyVFlrRygt4lYbPBbgEv2G7TEYpIt0JAY/CSq5XXjTLw2Psb54uzy9Dz6G0KAg2NXePAtIIXu3KEN1YI7g8iCro3+SlCESdN/iIQq7bSymvrQbxjBopiE8LieBJXcgrNaI1w0Q7jMdRY9oUdJSk8U8FqKAGEPfeDUWNEYZijhgiatvrYNH/Ewqtc5TFmKY0LhRIZcG2vKmiuWhTs/CJIe6cb6GU1GaHKw0ELUYQ0yvvHIMDzC+aMvJa8KFYjpjQruXOQYyIi95YOJuNG5CM2XcVYmnSqEz6ejrNxPrnP7f8uDSqGfSqnRUxJO7+wuMdaJc2R0wt2Pyzn8m5BOfTeQGoOEQ9VTogxIplWigKIZtE+RlEORsy5yTF8xFpsed28b7F1t4whjl4LxAjTTJukY++P2rC3Zxexaw4wzQgmwpYJ6f8mBEkloQzD5d9fU3TlAxvK2Qd1+ewigWUMk2A1lRgT252JKsQWqx4+wva1Q9OVDY0BgStQDAzjmauDLxUD7IQp2U4cbweLCc+itpdCoTqA21B/C34m7T+4fPtJTYGVUCnVDBmb7UyRroMY0mVrAg6dnmAVNGIToYOlMH6vVdZcL/Ck09dDgzWobcpkNEP604vbSA3+Q9oovXmGw++HJbS7juBtiOeey5dcOZmFmHdKjBIfsHEQ8bPmouJvULO68K9dS79c+adIrI6KZcLA/azJTQq8ysQ5ZrwoAq8KXeYz7sRcmxUyK8pJs04WBRMK2s3Ba2syTjzCZtKrrjQsryqjKyO5E8XqPncm5OSbUofQho+N6HBjoujAvMbAYMqpnNe6tsUKqRm+iaoO9MO3UWkHjwH3bHzEeChVh2VdoMCd9nQyZuzvDWapxGFavQNPlb/Tx+wApPvJmB5QmmpbjVNeMjQ5hHmNUWJ43Zt4+QPlYcYI1mTEcuFFFmSNhtLPTSs9kDOy22XxU1K4/gq5W1CEvMl0I8cKNVSGs9I3YTxrh3jjAm6B4qNKviA0OH6ngdM2am0btbaNWttGrW2j1r7pqLWPDBrb7UeNhZixhrLwqtlxybLzi+tj/+D84vpJo2R05OoXCzYbinT7tESxC8oQ+xjB3rZ/3SHnaC0QGgpyrF3itojktojktogk2xaR/NaKSFLJEHgvsZaFR7cENoWCI13bi0t/02agr4/XhQi4Jbcs00UBjZdvCV6aSZVT8aZAnZCDjWQZK2yFuf2bIT7g7qYBUS1EKQwvNlha40WYI2VPmhTAAP4DOQNxD7247cNuDSWZJ60ZwIpjQ0N+I8A1RVVpJjQgnL5cQ6Mj11f9nvHj2eODg1lbodnEcdrts+ZQta5WCo2mCHF/yWSBwBNYxM6dqxbqKKW/5FfCMulYpa2VU/QJRdKJQwMJJWmOSLNK9AhqqN1DsM8bv0+VMFKoDPxQ1tbCog3Qj2VE7hdAfbUaUz06zeO4oUO7zDFJvwlcgCtXIHa0kUk1h47D1Kurt6P5o6fisZjOxAEXT7LjH54e5VPxw+zg8OkxP3zy6Ol0+uzo+OnstnIEn7+RQ6DwJm6Wzv9A6Gx6i4ofQjAt0T5II/BvxEoOhV5auE8tdURPc50KY0Fjh8AqTEN8QTHwv8cC5njjUy2fpGxVg6DOEPG0gXhLG5AUWMSMwPPbmEvrjJzWfuWhkhTuranBxRElzkJbZ4fJFy3ywQJNi2VYgIWW0gkDoIxtSJfWM/ai4NbJjPxFCZphCZTnG8Q06tu1dcK0bkXoq/ir4M72h5DWYycXM14XDur/VNHlGfHloFcycOQ4ppwxpVkYI3bhGCgvmK5hL00wTSIA3EaMMdTrBcbv0Ok/JjT9XqcLPgxuTEoiR/14QM62mKSX6MAlE4UhrGQNp4RBmgRgOHVt6NrEOOpQRxw0VheYtDZ+qO5k+ntrOzYXVL77HyEYtL0h0X/S0nn6u9LwMKhsoK8Y96cGA7WFwzbjHZ3nupmSR/LrlxEbH43TKgboZmmpf82TG7Q/fOt2p1vw4wBUaAjYb1cUbY+UeNdu8aulXiFyrn2V3h/yY229P/8A7w/inoxEaYGgnqXoi7mAEKStC2jrAvo8IG1dQHfH2dYFtHUBfVMuIKxz9625gAhqtmkX0N2l+2b8QAPr3PqBtn6grR+Ibf1A35ofqDbIscgI8O7NS/hzvQXg3ZuX4c5O3R+ZrSsolYmJbH4iB+BU3MBevnvzkqrg0ZsxjH0h2NQIjikReqmYVE4zmy2EZy54WRpB3hV9r1lg83e57Q/d5j7foXlOF3FCtylGseL+znK5HJMBapzpnbYJFnJhMg5GAcBnyVcY/EzBuV4jwJJ9gFcMFi9WTf4rby+NUf4MmHehqYEVI4qab4pEg3Y617E1Cd3Y6dLf0wbbS2jhdWb4vNxcp6VdL20TK1ptCsZnjkpuTL6fJIh2utrpGDYn309CgxHqp4IKNwHd4RkbTB8/n6Go9PQP5h9Z+v2kdBsImK6taHZrldhZsCxDXJdU0JoPJPxkxJYLAWH7rtVSxYhMK+tMDcZFTz0YER4MPW0jU6rGDHQCa2//yfHxo300pf7bH39pmVa/d7pdbna4wc/nFFbYsAbWSD1+gERszDOKq+2r0q+1o0hzqQaKfo7SGi95PJ1Q7DRs5gjTZrhNt4dnkMhW6Dld8Pyn0lKa8O+1dU2Ifij56hnb2gY5MS8rfhaH5eDbXHIbAR21GO+gl/ejNtaPtubnjp5vbbKTn3vPL2j4wcaTDQxuUwrSBTTlac2d8CBC0M74ltvG/dJakxtHb8rj40f9tM/jR635IX1rU2fQ81mYgOg12i0AXvwFCwcMriGSvEdfh6567PzfgJ2LD1DgN2nPkM4CKSgoTGNfLKX9t3AYEyM4VmNKYIdPXajUxGG+ae3iW6NkMlwshmXEEWNHpLJyDTwAOr45oa87zraWN5lNhVsK0Uh0SJJaatQTOjILFaRN7e0ljL6e3IGR7HRYKqa3Tk4GRS/Cu4Yl9XTlDV9g06iChI+kELQ0Ynt7BuFbUrd7brHhAj3wKoog6MkrrnmUy6SctV1lPyYFLvg12oEEWIHTO4l/IoWloxDuctgYxy24gs9kHtJSg/YeE2lJKMIxAz8kYam8TwjVP9AE8g1ZP74Bw8c/2uaxNXfcau746iwdX62Rwwrzns/D7Sfh7Kx5egf+jmMELt/EYPr7PFUNClUpomQh4N766x2VDFroJbUSXYppjBGBEJmkjiSWheDGawt1BDXoF3dnydgn4kudZJqtuyXyYhGCAL5U96OEQhB1PaAu+Ywb+SXvru8Ubeh1O06oIa4BH/2fsij4/uPxAXuAaPwXdnbxjlDKfrlkh0fvD7HZZKh99pCdVlUhfhXTv0m3/+Tg8fhwfPg4spMHf/v57auXI/zmJ5Fd6YeMIpf2D4/GB+yVnspC7B8+fnF4/IzwtP/koFv6dVtMehDqbTHpbTHpT4P4f20x6c2C+h99rrtGNHgu+N13e36WEzYV0FuH1Ia/4l+tgf8Vvj8LlodMl6VW8F2Mbwz3BNAjCyrnQZWfv1sTrAigdfohDK3+xiYHtMDWyB6ysZOl+LMJzcOBeSGjXbPibnFCV9HOy6WcG47zOVOL9ui4ltawevq7yGIXa/jj/a0r+dcosCJmYctCAylAJ4WAtiGAhvQtABodae0kL/xHnSqUUComzyWV6vFqOgSlUgA9zBOLdqV7yIbDv9ft4A1gNaAl8dWtjexRR38TPRGl7924fzDoINn1Bx6k0e7odI6yQtd5c5DO/J/BDAGh4ZyywwYw8Yp+RdU4a31q/RaJPORh8Dx/Dy+8D0OG6mrapEettWb4YFwZ7UmzuZlHhkC/7H24mYZSzZM+8fTyk9bzQuCKaQe/Z6cemZhyVOTpoYmRO8LxcQQMlnrLbgy+fONeJ3OEFJIm++3maWL6UXz/3jPdgcA6c92VhpPZKJPnfXIMb56MPhgnH9x1LmLzspBu9f4OzPXmr+46K1HaXTeuR+V3nQfD7e40R+vVNfwg19kVUCkxhOfh74HDhb9Brk03g4J+80fbLrRx71E+nLAZL6xHJVfZQpsw315kBmvEbgSLDUqPdVyeJEYagTKMpgRVw58MbseaqUo+78uWW2fzX6VH6Z6zdr6826QfP13Bp6KwnmW+/eX5L17DWTKnWckrz2et+LceLC11g92scrCbRe+5xxVDEMaBcr28a+j2Z/xrYJBzry8k1EpWWP95SDAcJwQKDdSHyJMkxouzyzRfRsYEGJHZ8aosxvQe5lBzQ5HIWu01X3asrAj6zZS+fmtaptAwxFTrQnB1R/TOGoyA+63Z9v682o6ntSz6U/Z3NAruncNnzw8Pfti5Gzi/XDKYod2RhHb9qp76WzDmqtDe/y19NjBw83tUcNraSjMoS3f+Zk7WfHQrN2sBffM+d9Fd6Xz4qN/rACUYqDR1Wx6cqh7gmx8704XO2bvz5/2JIGC+4tnnW1QzYn8ynffY7CdOFmxF/cmQRd3OCu82EfHcklf9mcA3gaUfP9d0yZDDc94ifD4Wn3HYNUi9TdJ++rw4LnGYpoVCr4HCwLih9HZkLPEOMcQI0vYM9+EC4sNdZX2oYd2ryM/W64Azyu1s21h+bD9N156s7v8GAAD//+nqHaw=" } From c1047b69df02cdcf0869256383d5783cf6a76454 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Mon, 11 Mar 2019 09:52:22 -0400 Subject: [PATCH 182/332] changelog (#11177) Missing changelog for #11067 --- CHANGELOG.next.asciidoc | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 286d34b864c..aac4d4c424a 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -139,6 +139,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Add missing `host.containerized` and `host.os.build` to fields.ecs.yml. {pull}11016[11016] - Reconnections of Kubernetes watchers are now logged at debug level when they are harmless. {pull}10988[10988] - Include ip and boolean type when generating index pattern. {pull}10995[10995] +- Cancelling enrollment of a beat will not enroll the beat. {issue}10150[10150] *Auditbeat* From 265ab8b22e9e0b7734f9f297e4fbe3bcf6dd7015 Mon Sep 17 00:00:00 2001 From: Mario Castro Date: Mon, 11 Mar 2019 15:11:13 +0100 Subject: [PATCH 183/332] [Metricbeat] Migrate Kubernetes state_node Metricset to use ReporterV2 interface (#10962) This is the first Kubernetes modules which uses the new testing interface too --- metricbeat/mb/testing/data_test.go | 1 + .../_meta/test/kube-state-metrics.expected | 122 +++-- .../test/kube-state-metrics.v1.3.0.expected | 61 ++- .../state_node/_meta/testdata/config.yml | 3 + .../testdata/kube-state-metrics-v1.3.0.plain | 464 ++++++++++++++++++ ...e-state-metrics-v1.3.0.plain-expected.json | 96 ++++ .../kubernetes/state_node/state_node.go | 27 +- .../kubernetes/state_node/state_node_test.go | 2 +- 8 files changed, 688 insertions(+), 88 deletions(-) create mode 100644 metricbeat/module/kubernetes/state_node/_meta/testdata/config.yml create mode 100644 metricbeat/module/kubernetes/state_node/_meta/testdata/kube-state-metrics-v1.3.0.plain create mode 100644 metricbeat/module/kubernetes/state_node/_meta/testdata/kube-state-metrics-v1.3.0.plain-expected.json diff --git a/metricbeat/mb/testing/data_test.go b/metricbeat/mb/testing/data_test.go index b35a252604c..37c2b1eb7ac 100644 --- a/metricbeat/mb/testing/data_test.go +++ b/metricbeat/mb/testing/data_test.go @@ -43,6 +43,7 @@ import ( _ "github.com/elastic/beats/metricbeat/module/couchbase/node" _ "github.com/elastic/beats/metricbeat/module/kibana/status" _ "github.com/elastic/beats/metricbeat/module/kubernetes/apiserver" + _ "github.com/elastic/beats/metricbeat/module/kubernetes/state_node" _ "github.com/elastic/beats/metricbeat/module/php_fpm/pool" _ "github.com/elastic/beats/metricbeat/module/php_fpm/process" _ "github.com/elastic/beats/metricbeat/module/rabbitmq/connection" diff --git a/metricbeat/module/kubernetes/state_node/_meta/test/kube-state-metrics.expected b/metricbeat/module/kubernetes/state_node/_meta/test/kube-state-metrics.expected index 90b0abf2dd0..f6a676ba4b0 100644 --- a/metricbeat/module/kubernetes/state_node/_meta/test/kube-state-metrics.expected +++ b/metricbeat/module/kubernetes/state_node/_meta/test/kube-state-metrics.expected @@ -1,66 +1,88 @@ [ { - "_namespace": "node", - "cpu": { - "allocatable": { - "cores": 3 + "RootFields": null, + "ModuleFields": null, + "MetricSetFields": { + "cpu": { + "allocatable": { + "cores": 3 + }, + "capacity": { + "cores": 4 + } }, - "capacity": { - "cores": 4 - } - }, - "memory": { - "allocatable": { - "bytes": 3097786880 + "memory": { + "allocatable": { + "bytes": 3097786880 + }, + "capacity": { + "bytes": 4097786880 + } }, - "capacity": { - "bytes": 4097786880 - } - }, - "name": "minikube-test", - "pod": { - "allocatable": { - "total": 210 + "name": "minikube-test", + "pod": { + "allocatable": { + "total": 210 + }, + "capacity": { + "total": 310 + } }, - "capacity": { - "total": 310 + "status": { + "ready": "true", + "unschedulable": true } }, - "status": { - "ready": "true", - "unschedulable": true - } + "Index": "", + "ID": "", + "Namespace": "kubernetes.node", + "Timestamp": "0001-01-01T00:00:00Z", + "Error": null, + "Host": "", + "Service": "", + "Took": 0 }, { - "_namespace": "node", - "cpu": { - "allocatable": { - "cores": 2 + "RootFields": null, + "ModuleFields": null, + "MetricSetFields": { + "cpu": { + "allocatable": { + "cores": 2 + }, + "capacity": { + "cores": 2 + } }, - "capacity": { - "cores": 2 - } - }, - "memory": { - "allocatable": { - "bytes": 2097786880 + "memory": { + "allocatable": { + "bytes": 2097786880 + }, + "capacity": { + "bytes": 2097786880 + } }, - "capacity": { - "bytes": 2097786880 - } - }, - "name": "minikube", - "pod": { - "allocatable": { - "total": 110 + "name": "minikube", + "pod": { + "allocatable": { + "total": 110 + }, + "capacity": { + "total": 110 + } }, - "capacity": { - "total": 110 + "status": { + "ready": "true", + "unschedulable": false } }, - "status": { - "ready": "true", - "unschedulable": false - } + "Index": "", + "ID": "", + "Namespace": "kubernetes.node", + "Timestamp": "0001-01-01T00:00:00Z", + "Error": null, + "Host": "", + "Service": "", + "Took": 0 } ] \ No newline at end of file diff --git a/metricbeat/module/kubernetes/state_node/_meta/test/kube-state-metrics.v1.3.0.expected b/metricbeat/module/kubernetes/state_node/_meta/test/kube-state-metrics.v1.3.0.expected index 2d13051b048..4a1601a1f7e 100644 --- a/metricbeat/module/kubernetes/state_node/_meta/test/kube-state-metrics.v1.3.0.expected +++ b/metricbeat/module/kubernetes/state_node/_meta/test/kube-state-metrics.v1.3.0.expected @@ -1,34 +1,45 @@ [ { - "_namespace": "node", - "cpu": { - "allocatable": { - "cores": 2 + "RootFields": null, + "ModuleFields": null, + "MetricSetFields": { + "cpu": { + "allocatable": { + "cores": 2 + }, + "capacity": { + "cores": 2 + } }, - "capacity": { - "cores": 2 - } - }, - "memory": { - "allocatable": { - "bytes": 1992347648 + "memory": { + "allocatable": { + "bytes": 1992347648 + }, + "capacity": { + "bytes": 2097205248 + } }, - "capacity": { - "bytes": 2097205248 - } - }, - "name": "minikube", - "pod": { - "allocatable": { - "total": 110 + "name": "minikube", + "pod": { + "allocatable": { + "total": 110 + }, + "capacity": { + "total": 110 + } }, - "capacity": { - "total": 110 + "status": { + "ready": "true", + "unschedulable": false } }, - "status": { - "ready": "true", - "unschedulable": false - } + "Index": "", + "ID": "", + "Namespace": "kubernetes.node", + "Timestamp": "0001-01-01T00:00:00Z", + "Error": null, + "Host": "", + "Service": "", + "Took": 0 } ] \ No newline at end of file diff --git a/metricbeat/module/kubernetes/state_node/_meta/testdata/config.yml b/metricbeat/module/kubernetes/state_node/_meta/testdata/config.yml new file mode 100644 index 00000000000..ab6bf241654 --- /dev/null +++ b/metricbeat/module/kubernetes/state_node/_meta/testdata/config.yml @@ -0,0 +1,3 @@ +type: http +url: "/metrics" +suffix: plain diff --git a/metricbeat/module/kubernetes/state_node/_meta/testdata/kube-state-metrics-v1.3.0.plain b/metricbeat/module/kubernetes/state_node/_meta/testdata/kube-state-metrics-v1.3.0.plain new file mode 100644 index 00000000000..32b7edd31e0 --- /dev/null +++ b/metricbeat/module/kubernetes/state_node/_meta/testdata/kube-state-metrics-v1.3.0.plain @@ -0,0 +1,464 @@ +# HELP go_gc_duration_seconds A summary of the GC invocation durations. +# TYPE go_gc_duration_seconds summary +go_gc_duration_seconds{quantile="0"} 5.4333e-05 +go_gc_duration_seconds{quantile="0.25"} 0.000246606 +go_gc_duration_seconds{quantile="0.5"} 0.0006209060000000001 +go_gc_duration_seconds{quantile="0.75"} 0.001966929 +go_gc_duration_seconds{quantile="1"} 0.09220378600000001 +go_gc_duration_seconds_sum 5.104380396 +go_gc_duration_seconds_count 651 +# HELP go_goroutines Number of goroutines that currently exist. +# TYPE go_goroutines gauge +go_goroutines 64 +# HELP go_memstats_alloc_bytes Number of bytes allocated and still in use. +# TYPE go_memstats_alloc_bytes gauge +go_memstats_alloc_bytes 5.142496e+06 +# HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed. +# TYPE go_memstats_alloc_bytes_total counter +go_memstats_alloc_bytes_total 2.375809288e+09 +# HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table. +# TYPE go_memstats_buck_hash_sys_bytes gauge +go_memstats_buck_hash_sys_bytes 1.516515e+06 +# HELP go_memstats_frees_total Total number of frees. +# TYPE go_memstats_frees_total counter +go_memstats_frees_total 1.7162925e+07 +# HELP go_memstats_gc_sys_bytes Number of bytes used for garbage collection system metadata. +# TYPE go_memstats_gc_sys_bytes gauge +go_memstats_gc_sys_bytes 1.273856e+06 +# HELP go_memstats_heap_alloc_bytes Number of heap bytes allocated and still in use. +# TYPE go_memstats_heap_alloc_bytes gauge +go_memstats_heap_alloc_bytes 5.142496e+06 +# HELP go_memstats_heap_idle_bytes Number of heap bytes waiting to be used. +# TYPE go_memstats_heap_idle_bytes gauge +go_memstats_heap_idle_bytes 1.14688e+07 +# HELP go_memstats_heap_inuse_bytes Number of heap bytes that are in use. +# TYPE go_memstats_heap_inuse_bytes gauge +go_memstats_heap_inuse_bytes 7.176192e+06 +# HELP go_memstats_heap_objects Number of allocated objects. +# TYPE go_memstats_heap_objects gauge +go_memstats_heap_objects 32950 +# HELP go_memstats_heap_released_bytes_total Total number of heap bytes released to OS. +# TYPE go_memstats_heap_released_bytes_total counter +go_memstats_heap_released_bytes_total 0 +# HELP go_memstats_heap_sys_bytes Number of heap bytes obtained from system. +# TYPE go_memstats_heap_sys_bytes gauge +go_memstats_heap_sys_bytes 1.8644992e+07 +# HELP go_memstats_last_gc_time_seconds Number of seconds since 1970 of last garbage collection. +# TYPE go_memstats_last_gc_time_seconds gauge +go_memstats_last_gc_time_seconds 1.4939767617562683e+09 +# HELP go_memstats_lookups_total Total number of pointer lookups. +# TYPE go_memstats_lookups_total counter +go_memstats_lookups_total 18621 +# HELP go_memstats_mallocs_total Total number of mallocs. +# TYPE go_memstats_mallocs_total counter +go_memstats_mallocs_total 1.7195875e+07 +# HELP go_memstats_mcache_inuse_bytes Number of bytes in use by mcache structures. +# TYPE go_memstats_mcache_inuse_bytes gauge +go_memstats_mcache_inuse_bytes 2400 +# HELP go_memstats_mcache_sys_bytes Number of bytes used for mcache structures obtained from system. +# TYPE go_memstats_mcache_sys_bytes gauge +go_memstats_mcache_sys_bytes 16384 +# HELP go_memstats_mspan_inuse_bytes Number of bytes in use by mspan structures. +# TYPE go_memstats_mspan_inuse_bytes gauge +go_memstats_mspan_inuse_bytes 98400 +# HELP go_memstats_mspan_sys_bytes Number of bytes used for mspan structures obtained from system. +# TYPE go_memstats_mspan_sys_bytes gauge +go_memstats_mspan_sys_bytes 114688 +# HELP go_memstats_next_gc_bytes Number of heap bytes when next garbage collection will take place. +# TYPE go_memstats_next_gc_bytes gauge +go_memstats_next_gc_bytes 7.698843e+06 +# HELP go_memstats_other_sys_bytes Number of bytes used for other system allocations. +# TYPE go_memstats_other_sys_bytes gauge +go_memstats_other_sys_bytes 574741 +# HELP go_memstats_stack_inuse_bytes Number of bytes in use by the stack allocator. +# TYPE go_memstats_stack_inuse_bytes gauge +go_memstats_stack_inuse_bytes 4.42368e+06 +# HELP go_memstats_stack_sys_bytes Number of bytes obtained from system for stack allocator. +# TYPE go_memstats_stack_sys_bytes gauge +go_memstats_stack_sys_bytes 4.42368e+06 +# HELP go_memstats_sys_bytes Number of bytes obtained by system. Sum of all system allocations. +# TYPE go_memstats_sys_bytes gauge +go_memstats_sys_bytes 2.6564856e+07 +# HELP kube_deployment_metadata_generation Sequence number representing a specific generation of the desired state. +# TYPE kube_deployment_metadata_generation gauge +kube_deployment_metadata_generation{deployment="jumpy-owl-redis",namespace="default"} 1 +kube_deployment_metadata_generation{deployment="jumpy-owl-redis",namespace="test"} 2 +kube_deployment_metadata_generation{deployment="kube-state-metrics",namespace="kube-system"} 1 +kube_deployment_metadata_generation{deployment="tiller-deploy",namespace="kube-system"} 1 +kube_deployment_metadata_generation{deployment="wise-lynx-jenkins",namespace="jenkins"} 1 +# HELP kube_deployment_spec_paused Whether the deployment is paused and will not be processed by the deployment controller. +# TYPE kube_deployment_spec_paused gauge +kube_deployment_spec_paused{deployment="jumpy-owl-redis",namespace="default"} 0 +kube_deployment_spec_paused{deployment="jumpy-owl-redis",namespace="test"} 1 +kube_deployment_spec_paused{deployment="kube-state-metrics",namespace="kube-system"} 0 +kube_deployment_spec_paused{deployment="tiller-deploy",namespace="kube-system"} 0 +kube_deployment_spec_paused{deployment="wise-lynx-jenkins",namespace="jenkins"} 0 +# HELP kube_deployment_spec_replicas Number of desired pods for a deployment. +# TYPE kube_deployment_spec_replicas gauge +kube_deployment_spec_replicas{deployment="jumpy-owl-redis",namespace="default"} 1 +kube_deployment_spec_replicas{deployment="jumpy-owl-redis",namespace="test"} 2 +kube_deployment_spec_replicas{deployment="kube-state-metrics",namespace="kube-system"} 2 +kube_deployment_spec_replicas{deployment="tiller-deploy",namespace="kube-system"} 1 +kube_deployment_spec_replicas{deployment="wise-lynx-jenkins",namespace="jenkins"} 1 +# HELP kube_deployment_spec_strategy_rollingupdate_max_unavailable Maximum number of unavailable replicas during a rolling update of a deployment. +# TYPE kube_deployment_spec_strategy_rollingupdate_max_unavailable gauge +kube_deployment_spec_strategy_rollingupdate_max_unavailable{deployment="jumpy-owl-redis",namespace="default"} 1 +kube_deployment_spec_strategy_rollingupdate_max_unavailable{deployment="jumpy-owl-redis",namespace="test"} 3 +kube_deployment_spec_strategy_rollingupdate_max_unavailable{deployment="kube-state-metrics",namespace="kube-system"} 1 +kube_deployment_spec_strategy_rollingupdate_max_unavailable{deployment="tiller-deploy",namespace="kube-system"} 1 +kube_deployment_spec_strategy_rollingupdate_max_unavailable{deployment="wise-lynx-jenkins",namespace="jenkins"} 1 +# HELP kube_deployment_status_observed_generation The generation observed by the deployment controller. +# TYPE kube_deployment_status_observed_generation gauge +kube_deployment_status_observed_generation{deployment="jumpy-owl-redis",namespace="default"} 1 +kube_deployment_status_observed_generation{deployment="jumpy-owl-redis",namespace="test"} 4 +kube_deployment_status_observed_generation{deployment="kube-state-metrics",namespace="kube-system"} 1 +kube_deployment_status_observed_generation{deployment="tiller-deploy",namespace="kube-system"} 1 +kube_deployment_status_observed_generation{deployment="wise-lynx-jenkins",namespace="jenkins"} 1 +# HELP kube_deployment_status_replicas The number of replicas per deployment. +# TYPE kube_deployment_status_replicas gauge +kube_deployment_status_replicas{deployment="jumpy-owl-redis",namespace="default"} 1 +kube_deployment_status_replicas{deployment="jumpy-owl-redis",namespace="test"} 5 +kube_deployment_status_replicas{deployment="kube-state-metrics",namespace="kube-system"} 2 +kube_deployment_status_replicas{deployment="tiller-deploy",namespace="kube-system"} 1 +kube_deployment_status_replicas{deployment="wise-lynx-jenkins",namespace="jenkins"} 1 +# HELP kube_deployment_status_replicas_available The number of available replicas per deployment. +# TYPE kube_deployment_status_replicas_available gauge +kube_deployment_status_replicas_available{deployment="jumpy-owl-redis",namespace="default"} 0 +kube_deployment_status_replicas_available{deployment="jumpy-owl-redis",namespace="test"} 6 +kube_deployment_status_replicas_available{deployment="kube-state-metrics",namespace="kube-system"} 1 +kube_deployment_status_replicas_available{deployment="tiller-deploy",namespace="kube-system"} 1 +kube_deployment_status_replicas_available{deployment="wise-lynx-jenkins",namespace="jenkins"} 1 +# HELP kube_deployment_status_replicas_unavailable The number of unavailable replicas per deployment. +# TYPE kube_deployment_status_replicas_unavailable gauge +kube_deployment_status_replicas_unavailable{deployment="jumpy-owl-redis",namespace="default"} 1 +kube_deployment_status_replicas_unavailable{deployment="jumpy-owl-redis",namespace="test"} 7 +kube_deployment_status_replicas_unavailable{deployment="kube-state-metrics",namespace="kube-system"} 1 +kube_deployment_status_replicas_unavailable{deployment="tiller-deploy",namespace="kube-system"} 0 +kube_deployment_status_replicas_unavailable{deployment="wise-lynx-jenkins",namespace="jenkins"} 0 +# HELP kube_deployment_status_replicas_updated The number of updated replicas per deployment. +# TYPE kube_deployment_status_replicas_updated gauge +kube_deployment_status_replicas_updated{deployment="jumpy-owl-redis",namespace="default"} 1 +kube_deployment_status_replicas_updated{deployment="jumpy-owl-redis",namespace="test"} 8 +kube_deployment_status_replicas_updated{deployment="kube-state-metrics",namespace="kube-system"} 2 +kube_deployment_status_replicas_updated{deployment="tiller-deploy",namespace="kube-system"} 1 +kube_deployment_status_replicas_updated{deployment="wise-lynx-jenkins",namespace="jenkins"} 1 +# HELP kube_node_info Information about a cluster node. +# TYPE kube_node_info gauge +kube_node_info{container_runtime_version="docker://1.11.1",kernel_version="4.7.2",kubelet_version="v1.5.3",kubeproxy_version="v1.5.3",node="minikube",os_image="Buildroot 2016.08"} 1 +kube_node_info{container_runtime_version="docker://1.11.1",kernel_version="4.7.2",kubelet_version="v1.5.3",kubeproxy_version="v1.5.3",node="minikube-test",os_image="Buildroot 2016.08"} 1 +# HELP kube_node_spec_unschedulable Whether a node can schedule new pods. +# TYPE kube_node_spec_unschedulable gauge +kube_node_spec_unschedulable{node="minikube"} 0 +kube_node_spec_unschedulable{node="minikube-test"} 1 +# HELP kube_node_status_allocatable_cpu_cores The CPU resources of a node that are available for scheduling. +# TYPE kube_node_status_allocatable_cpu_cores gauge +kube_node_status_allocatable_cpu_cores{node="minikube"} 2 +kube_node_status_allocatable_cpu_cores{node="minikube-test"} 3 +# HELP kube_node_status_allocatable_memory_bytes The memory resources of a node that are available for scheduling. +# TYPE kube_node_status_allocatable_memory_bytes gauge +kube_node_status_allocatable_memory_bytes{node="minikube"} 2.09778688e+09 +kube_node_status_allocatable_memory_bytes{node="minikube-test"} 3.09778688e+09 +# HELP kube_node_status_allocatable_pods The pod resources of a node that are available for scheduling. +# TYPE kube_node_status_allocatable_pods gauge +kube_node_status_allocatable_pods{node="minikube"} 110 +kube_node_status_allocatable_pods{node="minikube-test"} 210 +# HELP kube_node_status_capacity_cpu_cores The total CPU resources of the node. +# TYPE kube_node_status_capacity_cpu_cores gauge +kube_node_status_capacity_cpu_cores{node="minikube"} 2 +kube_node_status_capacity_cpu_cores{node="minikube-test"} 4 +# HELP kube_node_status_capacity_memory_bytes The total memory resources of the node. +# TYPE kube_node_status_capacity_memory_bytes gauge +kube_node_status_capacity_memory_bytes{node="minikube"} 2.09778688e+09 +kube_node_status_capacity_memory_bytes{node="minikube-test"} 4.09778688e+09 +# HELP kube_node_status_capacity_pods The total pod resources of the node. +# TYPE kube_node_status_capacity_pods gauge +kube_node_status_capacity_pods{node="minikube"} 110 +kube_node_status_capacity_pods{node="minikube-test"} 310 +# HELP kube_node_status_out_of_disk Whether the node is out of disk space +# TYPE kube_node_status_out_of_disk gauge +kube_node_status_out_of_disk{condition="false",node="minikube"} 1 +kube_node_status_out_of_disk{condition="true",node="minikube"} 0 +kube_node_status_out_of_disk{condition="unknown",node="minikube"} 0 +kube_node_status_out_of_disk{condition="false",node="minikube-test"} 1 +kube_node_status_out_of_disk{condition="true",node="minikube-test"} 0 +kube_node_status_out_of_disk{condition="unknown",node="minikube-test"} 0 +# HELP kube_node_status_ready The ready status of a cluster node. +# TYPE kube_node_status_ready gauge +kube_node_status_ready{condition="false",node="minikube"} 0 +kube_node_status_ready{condition="true",node="minikube"} 1 +kube_node_status_ready{condition="unknown",node="minikube"} 0 +kube_node_status_ready{condition="false",node="minikube-test"} 0 +kube_node_status_ready{condition="true",node="minikube-test"} 1 +kube_node_status_ready{condition="unknown",node="minikube-test"} 0 +# HELP kube_pod_container_info Information about a container in a pod. +# TYPE kube_pod_container_info gauge +kube_pod_container_info{container="dnsmasq",container_id="docker://9a4c9462cd078d7be4f0a9b94bcfeb69d5fdd76bff67142df3f58367ac7e8d61",image="gcr.io/google_containers/kube-dnsmasq-amd64:1.4",image_id="docker://sha256:3ec65756a89b70b4095e43a340a6e2d5696cac7a93a29619ff5c4b6be9af2773",namespace="kube-system",pod="kube-dns-v20-5g5cb"} 1 +kube_pod_container_info{container="healthz",container_id="docker://52fa55e051dc5b68e44c027588685b7edd85aaa03b07f7216d399249ff4fc821",image="gcr.io/google_containers/exechealthz-amd64:1.2",image_id="docker://sha256:93a43bfb39bfe9795e76ccd75d7a0e6d40e2ae8563456a2a77c1b4cfc3bbd967",namespace="kube-system",pod="kube-dns-v20-5g5cb"} 1 +kube_pod_container_info{container="jumpy-owl-redis",container_id="docker://4fa227874ee68536bf902394fb662f07b99099798ca9cd5c1506b79075acc065",image="bitnami/redis:3.2.8-r2",image_id="docker://sha256:ab2690be624592578e9fb5a64f134fd395d20f401498a686ca75b6f87b55db3f",namespace="default",pod="jumpy-owl-redis-3481028193-s78x9"} 1 +kube_pod_container_info{container="kube-addon-manager",container_id="docker://91fdd43f6b1b4c3dd133cfca53e0b1210bc557c2ae56006026b5ccdb5f52826f",image="gcr.io/google-containers/kube-addon-manager:v6.3",image_id="docker://sha256:79eb64bc98df10a9af7e39f70df817e1862f8a5ec7657714df68439a617ee9ec",namespace="kube-system",pod="kube-addon-manager-minikube"} 1 +kube_pod_container_info{container="kube-state-metrics",container_id="docker://973cbe45982c5126a5caf8c58d964c0ab1d5bb2c165ccc59715fcc1ebd58ab3d",image="gcr.io/google_containers/kube-state-metrics:v0.4.1",image_id="docker://sha256:be329a05c2e77e7d067b4e1dbefa1567a91d0487d3500d608171489369bfd945",namespace="kube-system",pod="kube-state-metrics-1303537707-7ncd1"} 1 +kube_pod_container_info{container="kubedns",container_id="docker://fa3d83f648de42492b38fa3e8501d109376f391c50f2bd210c895c8477ae4b62",image="gcr.io/google_containers/kubedns-amd64:1.9",image_id="docker://sha256:26cf1ed9b14486b93acd70c060a17fea13620393d3aa8e76036b773197c47a05",namespace="kube-system",pod="kube-dns-v20-5g5cb"} 1 +kube_pod_container_info{container="kubedns",container_id="docker://fa3d83f648de42492b38fa3e8501d109376f391c50f2bd210c895c8477ae4b62-test",image="gcr.io/google_containers/kubedns-amd64:1.9-test",image_id="docker://sha256:26cf1ed9b14486b93acd70c060a17fea13620393d3aa8e76036b773197c47a05",namespace="test",pod="kube-dns-v20-5g5cb-test"} 0 +kube_pod_container_info{container="kubernetes-dashboard",container_id="docker://3aaee8bdd311c015240e99fa2a5a5f2f26b11b51236a683b39d8c1902e423978",image="gcr.io/google_containers/kubernetes-dashboard-amd64:v1.5.1",image_id="docker://sha256:1180413103fdfd00a7882d3d8653a220d88c6ea4466fb860e98376c45ee1a1d0",namespace="kube-system",pod="kubernetes-dashboard-vw0l6"} 1 +kube_pod_container_info{container="tiller",container_id="docker://469f5d2b7854eb52e5d13dc0cd3e664c1b682b157aabaf596ffe4984f1516902",image="gcr.io/kubernetes-helm/tiller:v2.3.1",image_id="docker://sha256:38527daf791dbe472c37ecb1e8b13a62e31c00d9ff4c8a1f019d7022a96a43da",namespace="kube-system",pod="tiller-deploy-3067024529-9lpmb"} 1 +kube_pod_container_info{container="wise-lynx-jenkins",container_id="docker://e2ee1c2c7b8d4e5fd8c834b83cba8377d6b0e39da18157688ccc1a06b7c53117",image="jenkinsci/jenkins:2.46.1",image_id="docker://sha256:36023b9defd066ee53c03e33ba3add7225aee8447cb3154133012b1e152153c0",namespace="jenkins",pod="wise-lynx-jenkins-1616735317-svn6k"} 1 +# HELP kube_pod_container_resource_limits_cpu_cores The limit on cpu cores to be used by a container. +# TYPE kube_pod_container_resource_limits_cpu_cores gauge +kube_pod_container_resource_limits_cpu_cores{container="kube-state-metrics",namespace="kube-system",node="",pod="kube-state-metrics-1303537707-mnzbp"} 0.2 +kube_pod_container_resource_limits_cpu_cores{container="kube-state-metrics",namespace="kube-system",node="minikube",pod="kube-state-metrics-1303537707-7ncd1"} 0.2 +# HELP kube_pod_container_resource_limits_memory_bytes The limit on memory to be used by a container in bytes. +# TYPE kube_pod_container_resource_limits_memory_bytes gauge +kube_pod_container_resource_limits_memory_bytes{container="healthz",namespace="kube-system",node="minikube",pod="kube-dns-v20-5g5cb"} 5.24288e+07 +kube_pod_container_resource_limits_memory_bytes{container="kube-state-metrics",namespace="kube-system",node="",pod="kube-state-metrics-1303537707-mnzbp"} 5.24288e+07 +kube_pod_container_resource_limits_memory_bytes{container="kube-state-metrics",namespace="kube-system",node="minikube",pod="kube-state-metrics-1303537707-7ncd1"} 5.24288e+07 +kube_pod_container_resource_limits_memory_bytes{container="kubedns",namespace="kube-system",node="minikube",pod="kube-dns-v20-5g5cb"} 1.7825792e+08 +kube_pod_container_resource_limits_memory_bytes{container="kubedns",namespace="test",node="minikube-test",pod="kube-dns-v20-5g5cb-test"} 2.7825792e+08 +# HELP kube_pod_container_resource_requests_cpu_cores The number of requested cpu cores by a container. +# TYPE kube_pod_container_resource_requests_cpu_cores gauge +kube_pod_container_resource_requests_cpu_cores{container="healthz",namespace="kube-system",node="minikube",pod="kube-dns-v20-5g5cb"} 0.01 +kube_pod_container_resource_requests_cpu_cores{container="jumpy-owl-redis",namespace="default",node="minikube",pod="jumpy-owl-redis-3481028193-s78x9"} 0.1 +kube_pod_container_resource_requests_cpu_cores{container="kube-addon-manager",namespace="kube-system",node="minikube",pod="kube-addon-manager-minikube"} 0.005 +kube_pod_container_resource_requests_cpu_cores{container="kube-state-metrics",namespace="kube-system",node="",pod="kube-state-metrics-1303537707-mnzbp"} 0.1 +kube_pod_container_resource_requests_cpu_cores{container="kube-state-metrics",namespace="kube-system",node="minikube",pod="kube-state-metrics-1303537707-7ncd1"} 0.1 +kube_pod_container_resource_requests_cpu_cores{container="kubedns",namespace="kube-system",node="minikube",pod="kube-dns-v20-5g5cb"} 0.1 +kube_pod_container_resource_requests_cpu_cores{container="kubedns",namespace="test",node="minikube-test",pod="kube-dns-v20-5g5cb-test"} 0.2 +kube_pod_container_resource_requests_cpu_cores{container="wise-lynx-jenkins",namespace="jenkins",node="minikube",pod="wise-lynx-jenkins-1616735317-svn6k"} 0.2 +# HELP kube_pod_container_resource_requests_memory_bytes The number of requested memory bytes by a container. +# TYPE kube_pod_container_resource_requests_memory_bytes gauge +kube_pod_container_resource_requests_memory_bytes{container="healthz",namespace="kube-system",node="minikube",pod="kube-dns-v20-5g5cb"} 5.24288e+07 +kube_pod_container_resource_requests_memory_bytes{container="jumpy-owl-redis",namespace="default",node="minikube",pod="jumpy-owl-redis-3481028193-s78x9"} 2.68435456e+08 +kube_pod_container_resource_requests_memory_bytes{container="kube-addon-manager",namespace="kube-system",node="minikube",pod="kube-addon-manager-minikube"} 5.24288e+07 +kube_pod_container_resource_requests_memory_bytes{container="kube-state-metrics",namespace="kube-system",node="",pod="kube-state-metrics-1303537707-mnzbp"} 3.145728e+07 +kube_pod_container_resource_requests_memory_bytes{container="kube-state-metrics",namespace="kube-system",node="minikube",pod="kube-state-metrics-1303537707-7ncd1"} 3.145728e+07 +kube_pod_container_resource_requests_memory_bytes{container="kubedns",namespace="kube-system",node="minikube",pod="kube-dns-v20-5g5cb"} 7.340032e+07 +kube_pod_container_resource_requests_memory_bytes{container="kubedns",namespace="test",node="minikube-test",pod="kube-dns-v20-5g5cb-test"} 8.340032e+07 +kube_pod_container_resource_requests_memory_bytes{container="wise-lynx-jenkins",namespace="jenkins",node="minikube",pod="wise-lynx-jenkins-1616735317-svn6k"} 2.68435456e+08 +# HELP kube_pod_container_status_ready Describes whether the containers readiness check succeeded. +# TYPE kube_pod_container_status_ready gauge +kube_pod_container_status_ready{container="dnsmasq",namespace="kube-system",pod="kube-dns-v20-5g5cb"} 1 +kube_pod_container_status_ready{container="healthz",namespace="kube-system",pod="kube-dns-v20-5g5cb"} 1 +kube_pod_container_status_ready{container="jumpy-owl-redis",namespace="default",pod="jumpy-owl-redis-3481028193-s78x9"} 0 +kube_pod_container_status_ready{container="kube-addon-manager",namespace="kube-system",pod="kube-addon-manager-minikube"} 1 +kube_pod_container_status_ready{container="kube-state-metrics",namespace="kube-system",pod="kube-state-metrics-1303537707-7ncd1"} 1 +kube_pod_container_status_ready{container="kubedns",namespace="kube-system",pod="kube-dns-v20-5g5cb"} 1 +kube_pod_container_status_ready{container="kubedns",namespace="test",pod="kube-dns-v20-5g5cb-test"} 0 +kube_pod_container_status_ready{container="kubernetes-dashboard",namespace="kube-system",pod="kubernetes-dashboard-vw0l6"} 1 +kube_pod_container_status_ready{container="tiller",namespace="kube-system",pod="tiller-deploy-3067024529-9lpmb"} 1 +kube_pod_container_status_ready{container="wise-lynx-jenkins",namespace="jenkins",pod="wise-lynx-jenkins-1616735317-svn6k"} 1 +# HELP kube_pod_container_status_restarts The number of container restarts per container. +# TYPE kube_pod_container_status_restarts counter +kube_pod_container_status_restarts{container="dnsmasq",namespace="kube-system",pod="kube-dns-v20-5g5cb"} 2 +kube_pod_container_status_restarts{container="healthz",namespace="kube-system",pod="kube-dns-v20-5g5cb"} 2 +kube_pod_container_status_restarts{container="jumpy-owl-redis",namespace="default",pod="jumpy-owl-redis-3481028193-s78x9"} 270 +kube_pod_container_status_restarts{container="kube-addon-manager",namespace="kube-system",pod="kube-addon-manager-minikube"} 2 +kube_pod_container_status_restarts{container="kube-state-metrics",namespace="kube-system",pod="kube-state-metrics-1303537707-7ncd1"} 1 +kube_pod_container_status_restarts{container="kubedns",namespace="kube-system",pod="kube-dns-v20-5g5cb"} 2 +kube_pod_container_status_restarts{container="kubedns",namespace="test",pod="kube-dns-v20-5g5cb-test"} 3 +kube_pod_container_status_restarts{container="kubernetes-dashboard",namespace="kube-system",pod="kubernetes-dashboard-vw0l6"} 2 +kube_pod_container_status_restarts{container="tiller",namespace="kube-system",pod="tiller-deploy-3067024529-9lpmb"} 1 +kube_pod_container_status_restarts{container="wise-lynx-jenkins",namespace="jenkins",pod="wise-lynx-jenkins-1616735317-svn6k"} 1 +# HELP kube_pod_container_status_running Describes whether the container is currently in running state. +# TYPE kube_pod_container_status_running gauge +kube_pod_container_status_running{container="dnsmasq",namespace="kube-system",pod="kube-dns-v20-5g5cb"} 1 +kube_pod_container_status_running{container="healthz",namespace="kube-system",pod="kube-dns-v20-5g5cb"} 1 +kube_pod_container_status_running{container="jumpy-owl-redis",namespace="default",pod="jumpy-owl-redis-3481028193-s78x9"} 0 +kube_pod_container_status_running{container="kube-addon-manager",namespace="kube-system",pod="kube-addon-manager-minikube"} 1 +kube_pod_container_status_running{container="kube-state-metrics",namespace="kube-system",pod="kube-state-metrics-1303537707-7ncd1"} 1 +kube_pod_container_status_running{container="kubedns",namespace="kube-system",pod="kube-dns-v20-5g5cb"} 1 +kube_pod_container_status_running{container="kubedns",namespace="test",pod="kube-dns-v20-5g5cb-test"} 0 +kube_pod_container_status_running{container="kubernetes-dashboard",namespace="kube-system",pod="kubernetes-dashboard-vw0l6"} 1 +kube_pod_container_status_running{container="tiller",namespace="kube-system",pod="tiller-deploy-3067024529-9lpmb"} 1 +kube_pod_container_status_running{container="wise-lynx-jenkins",namespace="jenkins",pod="wise-lynx-jenkins-1616735317-svn6k"} 1 +# HELP kube_pod_container_status_terminated Describes whether the container is currently in terminated state. +# TYPE kube_pod_container_status_terminated gauge +kube_pod_container_status_terminated{container="dnsmasq",namespace="kube-system",pod="kube-dns-v20-5g5cb"} 0 +kube_pod_container_status_terminated{container="healthz",namespace="kube-system",pod="kube-dns-v20-5g5cb"} 0 +kube_pod_container_status_terminated{container="jumpy-owl-redis",namespace="default",pod="jumpy-owl-redis-3481028193-s78x9"} 0 +kube_pod_container_status_terminated{container="kube-addon-manager",namespace="kube-system",pod="kube-addon-manager-minikube"} 0 +kube_pod_container_status_terminated{container="kube-state-metrics",namespace="kube-system",pod="kube-state-metrics-1303537707-7ncd1"} 0 +kube_pod_container_status_terminated{container="kubedns",namespace="kube-system",pod="kube-dns-v20-5g5cb"} 0 +kube_pod_container_status_terminated{container="kubedns",namespace="test",pod="kube-dns-v20-5g5cb-test"} 1 +kube_pod_container_status_terminated{container="kubernetes-dashboard",namespace="kube-system",pod="kubernetes-dashboard-vw0l6"} 0 +kube_pod_container_status_terminated{container="tiller",namespace="kube-system",pod="tiller-deploy-3067024529-9lpmb"} 0 +kube_pod_container_status_terminated{container="wise-lynx-jenkins",namespace="jenkins",pod="wise-lynx-jenkins-1616735317-svn6k"} 0 +# HELP kube_pod_container_status_waiting Describes whether the container is currently in waiting state. +# TYPE kube_pod_container_status_waiting gauge +kube_pod_container_status_waiting{container="dnsmasq",namespace="kube-system",pod="kube-dns-v20-5g5cb"} 0 +kube_pod_container_status_waiting{container="healthz",namespace="kube-system",pod="kube-dns-v20-5g5cb"} 0 +kube_pod_container_status_waiting{container="jumpy-owl-redis",namespace="default",pod="jumpy-owl-redis-3481028193-s78x9"} 1 +kube_pod_container_status_waiting{container="kube-addon-manager",namespace="kube-system",pod="kube-addon-manager-minikube"} 0 +kube_pod_container_status_waiting{container="kube-state-metrics",namespace="kube-system",pod="kube-state-metrics-1303537707-7ncd1"} 0 +kube_pod_container_status_waiting{container="kubedns",namespace="kube-system",pod="kube-dns-v20-5g5cb"} 0 +kube_pod_container_status_waiting{container="kubedns",namespace="test",pod="kube-dns-v20-5g5cb"} 0 +kube_pod_container_status_waiting{container="kubernetes-dashboard",namespace="kube-system",pod="kubernetes-dashboard-vw0l6"} 0 +kube_pod_container_status_waiting{container="tiller",namespace="kube-system",pod="tiller-deploy-3067024529-9lpmb"} 0 +kube_pod_container_status_waiting{container="wise-lynx-jenkins",namespace="jenkins",pod="wise-lynx-jenkins-1616735317-svn6k"} 0 +# HELP kube_pod_info Information about pod. +# TYPE kube_pod_info gauge +kube_pod_info{host_ip="",namespace="kube-system",node="",pod="kube-state-metrics-1303537707-mnzbp",pod_ip=""} 1 +kube_pod_info{host_ip="192.168.99.100",namespace="default",node="minikube",pod="jumpy-owl-redis-3481028193-s78x9",pod_ip="172.17.0.4"} 1 +kube_pod_info{host_ip="192.168.99.200",namespace="test",node="minikube-test",pod="jumpy-owl-redis-3481028193-s78x9",pod_ip="172.17.0.5"} 1 +kube_pod_info{host_ip="192.168.99.100",namespace="jenkins",node="minikube",pod="wise-lynx-jenkins-1616735317-svn6k",pod_ip="172.17.0.7"} 1 +kube_pod_info{host_ip="192.168.99.100",namespace="kube-system",node="minikube",pod="kube-addon-manager-minikube",pod_ip="192.168.99.100"} 1 +kube_pod_info{host_ip="192.168.99.100",namespace="kube-system",node="minikube",pod="kube-dns-v20-5g5cb",pod_ip="172.17.0.6"} 1 +kube_pod_info{host_ip="192.168.99.100",namespace="kube-system",node="minikube",pod="kube-state-metrics-1303537707-7ncd1",pod_ip="172.17.0.3"} 1 +kube_pod_info{host_ip="192.168.99.100",namespace="kube-system",node="minikube",pod="kubernetes-dashboard-vw0l6",pod_ip="172.17.0.5"} 1 +kube_pod_info{host_ip="192.168.99.100",namespace="kube-system",node="minikube",pod="tiller-deploy-3067024529-9lpmb",pod_ip="172.17.0.2"} 1 +# HELP kube_pod_status_phase The pods current phase. +# TYPE kube_pod_status_phase gauge +kube_pod_status_phase{namespace="default",phase="Running",pod="jumpy-owl-redis-3481028193-s78x9"} 0 +kube_pod_status_phase{namespace="default",phase="Succeeded",pod="jumpy-owl-redis-3481028193-s78x9"} 1 +kube_pod_status_phase{namespace="default",phase="Unknown",pod="jumpy-owl-redis-3481028193-s78x9"} 0 +kube_pod_status_phase{namespace="test",phase="Running",pod="jumpy-owl-redis-3481028193-s78x9"} 1 +kube_pod_status_phase{namespace="test",phase="Succeeded",pod="jumpy-owl-redis-3481028193-s78x9"} 0 +kube_pod_status_phase{namespace="test",phase="Unknown",pod="jumpy-owl-redis-3481028193-s78x9"} 0 +kube_pod_status_phase{namespace="jenkins",phase="Running",pod="wise-lynx-jenkins-1616735317-svn6k"} 1 +kube_pod_status_phase{namespace="kube-system",phase="Pending",pod="kube-state-metrics-1303537707-mnzbp"} 1 +kube_pod_status_phase{namespace="kube-system",phase="Running",pod="kube-addon-manager-minikube"} 1 +kube_pod_status_phase{namespace="kube-system",phase="Running",pod="kube-dns-v20-5g5cb"} 1 +kube_pod_status_phase{namespace="kube-system",phase="Running",pod="kube-state-metrics-1303537707-7ncd1"} 1 +kube_pod_status_phase{namespace="kube-system",phase="Running",pod="kubernetes-dashboard-vw0l6"} 1 +kube_pod_status_phase{namespace="kube-system",phase="Running",pod="tiller-deploy-3067024529-9lpmb"} 1 +# HELP kube_pod_status_ready Describes whether the pod is ready to serve requests. +# TYPE kube_pod_status_ready gauge +kube_pod_status_ready{condition="false",namespace="default",pod="jumpy-owl-redis-3481028193-s78x9"} 1 +kube_pod_status_ready{condition="false",namespace="test",pod="jumpy-owl-redis-3481028193-s78x9"} 0 +kube_pod_status_ready{condition="false",namespace="jenkins",pod="wise-lynx-jenkins-1616735317-svn6k"} 0 +kube_pod_status_ready{condition="false",namespace="kube-system",pod="kube-addon-manager-minikube"} 0 +kube_pod_status_ready{condition="false",namespace="kube-system",pod="kube-dns-v20-5g5cb"} 0 +kube_pod_status_ready{condition="false",namespace="kube-system",pod="kube-state-metrics-1303537707-7ncd1"} 0 +kube_pod_status_ready{condition="false",namespace="kube-system",pod="kubernetes-dashboard-vw0l6"} 0 +kube_pod_status_ready{condition="false",namespace="kube-system",pod="tiller-deploy-3067024529-9lpmb"} 0 +kube_pod_status_ready{condition="true",namespace="default",pod="jumpy-owl-redis-3481028193-s78x9"} 0 +kube_pod_status_ready{condition="true",namespace="test",pod="jumpy-owl-redis-3481028193-s78x9"} 1 +kube_pod_status_ready{condition="true",namespace="jenkins",pod="wise-lynx-jenkins-1616735317-svn6k"} 1 +kube_pod_status_ready{condition="true",namespace="kube-system",pod="kube-addon-manager-minikube"} 1 +kube_pod_status_ready{condition="true",namespace="kube-system",pod="kube-dns-v20-5g5cb"} 1 +kube_pod_status_ready{condition="true",namespace="kube-system",pod="kube-state-metrics-1303537707-7ncd1"} 1 +kube_pod_status_ready{condition="true",namespace="kube-system",pod="kubernetes-dashboard-vw0l6"} 1 +kube_pod_status_ready{condition="true",namespace="kube-system",pod="tiller-deploy-3067024529-9lpmb"} 1 +kube_pod_status_ready{condition="unknown",namespace="default",pod="jumpy-owl-redis-3481028193-s78x9"} 0 +kube_pod_status_ready{condition="unknown",namespace="test",pod="jumpy-owl-redis-3481028193-s78x9"} 0 +kube_pod_status_ready{condition="unknown",namespace="jenkins",pod="wise-lynx-jenkins-1616735317-svn6k"} 0 +kube_pod_status_ready{condition="unknown",namespace="kube-system",pod="kube-addon-manager-minikube"} 0 +kube_pod_status_ready{condition="unknown",namespace="kube-system",pod="kube-dns-v20-5g5cb"} 0 +kube_pod_status_ready{condition="unknown",namespace="kube-system",pod="kube-state-metrics-1303537707-7ncd1"} 0 +kube_pod_status_ready{condition="unknown",namespace="kube-system",pod="kubernetes-dashboard-vw0l6"} 0 +kube_pod_status_ready{condition="unknown",namespace="kube-system",pod="tiller-deploy-3067024529-9lpmb"} 0 +# HELP kube_pod_status_scheduled Describes the status of the scheduling process for the pod. +# TYPE kube_pod_status_scheduled gauge +kube_pod_status_scheduled{condition="false",namespace="default",pod="jumpy-owl-redis-3481028193-s78x9"} 0 +kube_pod_status_scheduled{condition="false",namespace="test",pod="jumpy-owl-redis-3481028193-s78x9"} 1 +kube_pod_status_scheduled{condition="false",namespace="jenkins",pod="wise-lynx-jenkins-1616735317-svn6k"} 0 +kube_pod_status_scheduled{condition="false",namespace="kube-system",pod="kube-addon-manager-minikube"} 0 +kube_pod_status_scheduled{condition="false",namespace="kube-system",pod="kube-dns-v20-5g5cb"} 0 +kube_pod_status_scheduled{condition="false",namespace="kube-system",pod="kube-state-metrics-1303537707-7ncd1"} 0 +kube_pod_status_scheduled{condition="false",namespace="kube-system",pod="kube-state-metrics-1303537707-mnzbp"} 1 +kube_pod_status_scheduled{condition="false",namespace="kube-system",pod="kubernetes-dashboard-vw0l6"} 0 +kube_pod_status_scheduled{condition="false",namespace="kube-system",pod="tiller-deploy-3067024529-9lpmb"} 0 +kube_pod_status_scheduled{condition="true",namespace="default",pod="jumpy-owl-redis-3481028193-s78x9"} 1 +kube_pod_status_scheduled{condition="true",namespace="jenkins",pod="wise-lynx-jenkins-1616735317-svn6k"} 1 +kube_pod_status_scheduled{condition="true",namespace="kube-system",pod="kube-addon-manager-minikube"} 1 +kube_pod_status_scheduled{condition="true",namespace="kube-system",pod="kube-dns-v20-5g5cb"} 1 +kube_pod_status_scheduled{condition="true",namespace="kube-system",pod="kube-state-metrics-1303537707-7ncd1"} 1 +kube_pod_status_scheduled{condition="true",namespace="kube-system",pod="kube-state-metrics-1303537707-mnzbp"} 0 +kube_pod_status_scheduled{condition="true",namespace="kube-system",pod="kubernetes-dashboard-vw0l6"} 1 +kube_pod_status_scheduled{condition="true",namespace="kube-system",pod="tiller-deploy-3067024529-9lpmb"} 1 +kube_pod_status_scheduled{condition="unknown",namespace="default",pod="jumpy-owl-redis-3481028193-s78x9"} 0 +kube_pod_status_scheduled{condition="unknown",namespace="jenkins",pod="wise-lynx-jenkins-1616735317-svn6k"} 0 +kube_pod_status_scheduled{condition="unknown",namespace="kube-system",pod="kube-addon-manager-minikube"} 0 +kube_pod_status_scheduled{condition="unknown",namespace="kube-system",pod="kube-dns-v20-5g5cb"} 0 +kube_pod_status_scheduled{condition="unknown",namespace="kube-system",pod="kube-state-metrics-1303537707-7ncd1"} 0 +kube_pod_status_scheduled{condition="unknown",namespace="kube-system",pod="kube-state-metrics-1303537707-mnzbp"} 0 +kube_pod_status_scheduled{condition="unknown",namespace="kube-system",pod="kubernetes-dashboard-vw0l6"} 0 +kube_pod_status_scheduled{condition="unknown",namespace="kube-system",pod="tiller-deploy-3067024529-9lpmb"} 0 +# HELP kube_replicaset_metadata_generation Sequence number representing a specific generation of the desired state. +# TYPE kube_replicaset_metadata_generation gauge +kube_replicaset_metadata_generation{namespace="default",replicaset="jumpy-owl-redis-3481028193"} 1 +kube_replicaset_metadata_generation{namespace="jenkins",replicaset="wise-lynx-jenkins-1616735317"} 1 +kube_replicaset_metadata_generation{namespace="kube-system",replicaset="kube-state-metrics-1303537707"} 1 +kube_replicaset_metadata_generation{namespace="test",replicaset="kube-state-metrics-1303537707"} 1 +kube_replicaset_metadata_generation{namespace="kube-system",replicaset="tiller-deploy-3067024529"} 1 +# HELP kube_replicaset_spec_replicas Number of desired pods for a ReplicaSet. +# TYPE kube_replicaset_spec_replicas gauge +kube_replicaset_spec_replicas{namespace="default",replicaset="jumpy-owl-redis-3481028193"} 1 +kube_replicaset_spec_replicas{namespace="jenkins",replicaset="wise-lynx-jenkins-1616735317"} 1 +kube_replicaset_spec_replicas{namespace="kube-system",replicaset="kube-state-metrics-1303537707"} 2 +kube_replicaset_spec_replicas{namespace="test",replicaset="kube-state-metrics-1303537707"} 3 +kube_replicaset_spec_replicas{namespace="kube-system",replicaset="tiller-deploy-3067024529"} 1 +# HELP kube_replicaset_status_fully_labeled_replicas The number of fully labeled replicas per ReplicaSet. +# TYPE kube_replicaset_status_fully_labeled_replicas gauge +kube_replicaset_status_fully_labeled_replicas{namespace="default",replicaset="jumpy-owl-redis-3481028193"} 1 +kube_replicaset_status_fully_labeled_replicas{namespace="jenkins",replicaset="wise-lynx-jenkins-1616735317"} 1 +kube_replicaset_status_fully_labeled_replicas{namespace="kube-system",replicaset="kube-state-metrics-1303537707"} 2 +kube_replicaset_status_fully_labeled_replicas{namespace="test",replicaset="kube-state-metrics-1303537707"} 4 +kube_replicaset_status_fully_labeled_replicas{namespace="kube-system",replicaset="tiller-deploy-3067024529"} 1 +# HELP kube_replicaset_status_observed_generation The generation observed by the ReplicaSet controller. +# TYPE kube_replicaset_status_observed_generation gauge +kube_replicaset_status_observed_generation{namespace="default",replicaset="jumpy-owl-redis-3481028193"} 1 +kube_replicaset_status_observed_generation{namespace="jenkins",replicaset="wise-lynx-jenkins-1616735317"} 1 +kube_replicaset_status_observed_generation{namespace="kube-system",replicaset="kube-state-metrics-1303537707"} 1 +kube_replicaset_status_observed_generation{namespace="test",replicaset="kube-state-metrics-1303537707"} 5 +kube_replicaset_status_observed_generation{namespace="kube-system",replicaset="tiller-deploy-3067024529"} 1 +# HELP kube_replicaset_status_ready_replicas The number of ready replicas per ReplicaSet. +# TYPE kube_replicaset_status_ready_replicas gauge +kube_replicaset_status_ready_replicas{namespace="default",replicaset="jumpy-owl-redis-3481028193"} 0 +kube_replicaset_status_ready_replicas{namespace="jenkins",replicaset="wise-lynx-jenkins-1616735317"} 1 +kube_replicaset_status_ready_replicas{namespace="kube-system",replicaset="kube-state-metrics-1303537707"} 1 +kube_replicaset_status_ready_replicas{namespace="test",replicaset="kube-state-metrics-1303537707"} 6 +kube_replicaset_status_ready_replicas{namespace="kube-system",replicaset="tiller-deploy-3067024529"} 1 +# HELP kube_replicaset_status_replicas The number of replicas per ReplicaSet. +# TYPE kube_replicaset_status_replicas gauge +kube_replicaset_status_replicas{namespace="default",replicaset="jumpy-owl-redis-3481028193"} 1 +kube_replicaset_status_replicas{namespace="jenkins",replicaset="wise-lynx-jenkins-1616735317"} 1 +kube_replicaset_status_replicas{namespace="kube-system",replicaset="kube-state-metrics-1303537707"} 2 +kube_replicaset_status_replicas{namespace="test",replicaset="kube-state-metrics-1303537707"} 7 +kube_replicaset_status_replicas{namespace="kube-system",replicaset="tiller-deploy-3067024529"} 1 +# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds. +# TYPE process_cpu_seconds_total counter +process_cpu_seconds_total 33.37 +# HELP process_max_fds Maximum number of open file descriptors. +# TYPE process_max_fds gauge +process_max_fds 65536 +# HELP process_open_fds Number of open file descriptors. +# TYPE process_open_fds gauge +process_open_fds 14 +# HELP process_resident_memory_bytes Resident memory size in bytes. +# TYPE process_resident_memory_bytes gauge +process_resident_memory_bytes 4.2102784e+07 +# HELP process_start_time_seconds Start time of the process since unix epoch in seconds. +# TYPE process_start_time_seconds gauge +process_start_time_seconds 1.4939719827e+09 +# HELP process_virtual_memory_bytes Virtual memory size in bytes. +# TYPE process_virtual_memory_bytes gauge +process_virtual_memory_bytes 5.2932608e+07 +# HELP kube_statefulset_created Unix creation timestamp +# TYPE kube_statefulset_created gauge +kube_statefulset_created{namespace="default",statefulset="elasticsearch"} 1.511973651e+09 +kube_statefulset_created{namespace="default",statefulset="mysql"} 1.511989697e+09 +kube_statefulset_created{namespace="custom",statefulset="mysql"} 1.511999697e+09 +# HELP kube_statefulset_labels Kubernetes labels converted to Prometheus labels. +# TYPE kube_statefulset_labels gauge +kube_statefulset_labels{label_app="oci",label_io_kompose_service="elasticsearch",namespace="default",statefulset="elasticsearch"} 1 +kube_statefulset_labels{label_app="oci",label_custom_pod="true",label_io_kompose_service="s-mysql",namespace="default",statefulset="mysql"} 1 +kube_statefulset_labels{label_app="oci",label_custom_pod="true",label_io_kompose_service="s-mysql",namespace="custom",statefulset="mysql"} 1 +# HELP kube_statefulset_metadata_generation Sequence number representing a specific generation of the desired state for the StatefulSet. +# TYPE kube_statefulset_metadata_generation gauge +kube_statefulset_metadata_generation{namespace="default",statefulset="elasticsearch"} 3 +kube_statefulset_metadata_generation{namespace="default",statefulset="mysql"} 4 +kube_statefulset_metadata_generation{namespace="custom",statefulset="mysql"} 5 +# HELP kube_statefulset_replicas Number of desired pods for a StatefulSet. +# TYPE kube_statefulset_replicas gauge +kube_statefulset_replicas{namespace="default",statefulset="elasticsearch"} 4 +kube_statefulset_replicas{namespace="default",statefulset="mysql"} 5 +kube_statefulset_replicas{namespace="custom",statefulset="mysql"} 6 +# HELP kube_statefulset_status_observed_generation The generation observed by the StatefulSet controller. +# TYPE kube_statefulset_status_observed_generation gauge +kube_statefulset_status_observed_generation{namespace="default",statefulset="elasticsearch"} 1 +kube_statefulset_status_observed_generation{namespace="default",statefulset="mysql"} 2 +kube_statefulset_status_observed_generation{namespace="custom",statefulset="mysql"} 3 +# HELP kube_statefulset_status_replicas The number of replicas per StatefulSet. +# TYPE kube_statefulset_status_replicas gauge +kube_statefulset_status_replicas{namespace="default",statefulset="elasticsearch"} 1 +kube_statefulset_status_replicas{namespace="default",statefulset="mysql"} 2 +kube_statefulset_status_replicas{namespace="custom",statefulset="mysql"} 3 diff --git a/metricbeat/module/kubernetes/state_node/_meta/testdata/kube-state-metrics-v1.3.0.plain-expected.json b/metricbeat/module/kubernetes/state_node/_meta/testdata/kube-state-metrics-v1.3.0.plain-expected.json new file mode 100644 index 00000000000..ce9157a036c --- /dev/null +++ b/metricbeat/module/kubernetes/state_node/_meta/testdata/kube-state-metrics-v1.3.0.plain-expected.json @@ -0,0 +1,96 @@ +[ + { + "event": { + "dataset": "kubernetes.node", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "node": { + "cpu": { + "allocatable": { + "cores": 3 + }, + "capacity": { + "cores": 4 + } + }, + "memory": { + "allocatable": { + "bytes": 3097786880 + }, + "capacity": { + "bytes": 4097786880 + } + }, + "name": "minikube-test", + "pod": { + "allocatable": { + "total": 210 + }, + "capacity": { + "total": 310 + } + }, + "status": { + "ready": "true", + "unschedulable": true + } + } + }, + "metricset": { + "name": "state_node" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + }, + { + "event": { + "dataset": "kubernetes.node", + "duration": 115000, + "module": "kubernetes" + }, + "kubernetes": { + "node": { + "cpu": { + "allocatable": { + "cores": 2 + }, + "capacity": { + "cores": 2 + } + }, + "memory": { + "allocatable": { + "bytes": 2097786880 + }, + "capacity": { + "bytes": 2097786880 + } + }, + "name": "minikube", + "pod": { + "allocatable": { + "total": 110 + }, + "capacity": { + "total": 110 + } + }, + "status": { + "ready": "true", + "unschedulable": false + } + } + }, + "metricset": { + "name": "state_node" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "kubernetes" + } + } +] \ No newline at end of file diff --git a/metricbeat/module/kubernetes/state_node/state_node.go b/metricbeat/module/kubernetes/state_node/state_node.go index ab9e2b2e386..8032327af1a 100644 --- a/metricbeat/module/kubernetes/state_node/state_node.go +++ b/metricbeat/module/kubernetes/state_node/state_node.go @@ -18,7 +18,6 @@ package state_node import ( - "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/common/kubernetes" p "github.com/elastic/beats/metricbeat/helper/prometheus" "github.com/elastic/beats/metricbeat/mb" @@ -57,10 +56,6 @@ var ( Labels: map[string]p.LabelMap{ "node": p.KeyLabel("name"), }, - - ExtraFields: map[string]string{ - mb.NamespaceKey: "node", - }, } ) @@ -98,18 +93,26 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { }, nil } -// Fetch methods implements the data gathering and data conversion to the right format -// It returns the event which is then forward to the output. In case of an error, a -// descriptive error must be returned. -func (m *MetricSet) Fetch() ([]common.MapStr, error) { +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(reporter mb.ReporterV2) { m.enricher.Start() events, err := m.prometheus.GetProcessedMetrics(mapping) - if err == nil { - m.enricher.Enrich(events) + if err != nil { + m.Logger().Error(err) + reporter.Error(err) + return } - return events, err + m.enricher.Enrich(events) + for _, event := range events { + reporter.Event(mb.Event{ + MetricSetFields: event, + Namespace: "kubernetes.node", + }) + } } // Close stops this metricset diff --git a/metricbeat/module/kubernetes/state_node/state_node_test.go b/metricbeat/module/kubernetes/state_node/state_node_test.go index 1696e0f8116..e624b4bc040 100644 --- a/metricbeat/module/kubernetes/state_node/state_node_test.go +++ b/metricbeat/module/kubernetes/state_node/state_node_test.go @@ -26,7 +26,7 @@ import ( ) func TestEventMapping(t *testing.T) { - ptest.TestMetricSetEventsFetcher(t, "kubernetes", "state_node", + ptest.TestMetricSet(t, "kubernetes", "state_node", ptest.TestCases{ { MetricsFile: "../_meta/test/kube-state-metrics", From 8ce5440a9eb393d8ca2beed07afebd1dc72f0fb5 Mon Sep 17 00:00:00 2001 From: Christoph Wurm Date: Mon, 11 Mar 2019 16:15:14 +0000 Subject: [PATCH 184/332] [Auditbeat] User dataset: Numerous fixes to error handling (#10942) Fixes a number of issues in the `user` dataset discovered while testing on Fedora 29: * When calling C functions via cgo, don't rely on errno as an indicator of success - check the return value first. * Set errno to 0 before calling getpwent(3) or getspent(3). * Make C function calls thread-safe. * Address a systemd bug where it can return ENOENT even when there is no error. * Don't fail on every error. * Fail system test on WARN/ERROR messages in the log. --- CHANGELOG.next.asciidoc | 1 + x-pack/auditbeat/module/system/user/user.go | 153 ++++++++++-------- .../auditbeat/module/system/user/user_test.go | 9 +- .../module/system/user/users_linux.go | 76 +++++++-- .../auditbeat/tests/system/test_metricsets.py | 3 +- 5 files changed, 153 insertions(+), 89 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index aac4d4c424a..a7403441d5f 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -147,6 +147,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Package: Disable librpm signal handlers. {pull}10694[10694] - Login: Handle different bad login UTMP types. {pull}10865[10865] - System module: Fix and unify bucket closing logic. {pull}10897[10897] +- User dataset: Numerous fixes to error handling. {pull}10942[10942] *Filebeat* diff --git a/x-pack/auditbeat/module/system/user/user.go b/x-pack/auditbeat/module/system/user/user.go index fef8adc1433..2086486a248 100644 --- a/x-pack/auditbeat/module/system/user/user.go +++ b/x-pack/auditbeat/module/system/user/user.go @@ -20,6 +20,7 @@ import ( "github.com/OneOfOne/xxhash" "github.com/gofrs/uuid" + "github.com/joeshaw/multierror" "github.com/pkg/errors" "github.com/elastic/beats/auditbeat/datastore" @@ -288,44 +289,55 @@ func (ms *MetricSet) Fetch(report mb.ReporterV2) { // reportState reports all existing users on the system. func (ms *MetricSet) reportState(report mb.ReporterV2) error { + var errs multierror.Errors ms.lastState = time.Now() users, err := GetUsers(ms.config.DetectPasswordChanges) if err != nil { - return errors.Wrap(err, "failed to get users") + errs = append(errs, errors.Wrap(err, "error while getting users")) } + ms.log.Debugf("Found %v users", len(users)) + if len(users) > 0 { + stateID, err := uuid.NewV4() + if err != nil { + errs = append(errs, errors.Wrap(err, "error generating state ID")) + } - stateID, err := uuid.NewV4() - if err != nil { - return errors.Wrap(err, "error generating state ID") - } - for _, user := range users { - event := ms.userEvent(user, eventTypeState, eventActionExistingUser) - event.RootFields.Put("event.id", stateID.String()) - report.Event(event) - } + for _, user := range users { + event := ms.userEvent(user, eventTypeState, eventActionExistingUser) + event.RootFields.Put("event.id", stateID.String()) + report.Event(event) + } - if ms.cache != nil { - // This will initialize the cache with the current processes - ms.cache.DiffAndUpdateCache(convertToCacheable(users)) - } + if ms.cache != nil { + // This will initialize the cache with the current processes + ms.cache.DiffAndUpdateCache(convertToCacheable(users)) + } - // Save time so we know when to send the state again (config.StatePeriod) - timeBytes, err := ms.lastState.MarshalBinary() - if err != nil { - return err - } - err = ms.bucket.Store(bucketKeyStateTimestamp, timeBytes) - if err != nil { - return errors.Wrap(err, "error writing state timestamp to disk") + // Save time so we know when to send the state again (config.StatePeriod) + timeBytes, err := ms.lastState.MarshalBinary() + if err != nil { + errs = append(errs, err) + } else { + err = ms.bucket.Store(bucketKeyStateTimestamp, timeBytes) + if err != nil { + errs = append(errs, errors.Wrap(err, "error writing state timestamp to disk")) + } + } + + err = ms.saveUsersToDisk(users) + if err != nil { + errs = append(errs, err) + } } - return ms.saveUsersToDisk(users) + return errs.Err() } // reportChanges detects and reports any changes to users on this system since the last call. func (ms *MetricSet) reportChanges(report mb.ReporterV2) error { + var errs multierror.Errors currentTime := time.Now() // If this is not the first call to Fetch/reportChanges, @@ -343,70 +355,75 @@ func (ms *MetricSet) reportChanges(report mb.ReporterV2) error { users, err := GetUsers(ms.config.DetectPasswordChanges) if err != nil { - return errors.Wrap(err, "failed to get users") + errs = append(errs, errors.Wrap(err, "error while getting users")) } ms.log.Debugf("Found %v users", len(users)) - newInCache, missingFromCache := ms.cache.DiffAndUpdateCache(convertToCacheable(users)) + if len(users) > 0 { + newInCache, missingFromCache := ms.cache.DiffAndUpdateCache(convertToCacheable(users)) - if len(newInCache) > 0 && len(missingFromCache) > 0 { - // Check for changes to users - missingUserMap := make(map[string](*User)) - for _, missingUser := range missingFromCache { - missingUserMap[missingUser.(*User).UID] = missingUser.(*User) - } + if len(newInCache) > 0 && len(missingFromCache) > 0 { + // Check for changes to users + missingUserMap := make(map[string](*User)) + for _, missingUser := range missingFromCache { + missingUserMap[missingUser.(*User).UID] = missingUser.(*User) + } - for _, userFromCache := range newInCache { - newUser := userFromCache.(*User) - oldUser, found := missingUserMap[newUser.UID] + for _, userFromCache := range newInCache { + newUser := userFromCache.(*User) + oldUser, found := missingUserMap[newUser.UID] - if found { - // Report password change separately - if ms.config.DetectPasswordChanges && newUser.PasswordType != detectionDisabled && - oldUser.PasswordType != detectionDisabled { + if found { + // Report password change separately + if ms.config.DetectPasswordChanges && newUser.PasswordType != detectionDisabled && + oldUser.PasswordType != detectionDisabled { - passwordChanged := newUser.PasswordChanged.Before(oldUser.PasswordChanged) || - !bytes.Equal(newUser.PasswordHashHash, oldUser.PasswordHashHash) || - newUser.PasswordType != oldUser.PasswordType + passwordChanged := newUser.PasswordChanged.Before(oldUser.PasswordChanged) || + !bytes.Equal(newUser.PasswordHashHash, oldUser.PasswordHashHash) || + newUser.PasswordType != oldUser.PasswordType - if passwordChanged { - report.Event(ms.userEvent(newUser, eventTypeEvent, eventActionPasswordChanged)) + if passwordChanged { + report.Event(ms.userEvent(newUser, eventTypeEvent, eventActionPasswordChanged)) + } } - } - // Hack to check if only the password changed - oldUser.PasswordChanged = newUser.PasswordChanged - oldUser.PasswordHashHash = newUser.PasswordHashHash - oldUser.PasswordType = newUser.PasswordType - if newUser.Hash() != oldUser.Hash() { - report.Event(ms.userEvent(newUser, eventTypeEvent, eventActionUserChanged)) + // Hack to check if only the password changed + oldUser.PasswordChanged = newUser.PasswordChanged + oldUser.PasswordHashHash = newUser.PasswordHashHash + oldUser.PasswordType = newUser.PasswordType + if newUser.Hash() != oldUser.Hash() { + report.Event(ms.userEvent(newUser, eventTypeEvent, eventActionUserChanged)) + } + + delete(missingUserMap, oldUser.UID) + } else { + report.Event(ms.userEvent(newUser, eventTypeEvent, eventActionUserAdded)) } + } - delete(missingUserMap, oldUser.UID) - } else { - report.Event(ms.userEvent(newUser, eventTypeEvent, eventActionUserAdded)) + for _, missingUser := range missingUserMap { + report.Event(ms.userEvent(missingUser, eventTypeEvent, eventActionUserRemoved)) + } + } else { + // No changes to users + for _, user := range newInCache { + report.Event(ms.userEvent(user.(*User), eventTypeEvent, eventActionUserAdded)) } - } - for _, missingUser := range missingUserMap { - report.Event(ms.userEvent(missingUser, eventTypeEvent, eventActionUserRemoved)) - } - } else { - // No changes to users - for _, user := range newInCache { - report.Event(ms.userEvent(user.(*User), eventTypeEvent, eventActionUserAdded)) + for _, user := range missingFromCache { + report.Event(ms.userEvent(user.(*User), eventTypeEvent, eventActionUserRemoved)) + } } - for _, user := range missingFromCache { - report.Event(ms.userEvent(user.(*User), eventTypeEvent, eventActionUserRemoved)) + if len(newInCache) > 0 || len(missingFromCache) > 0 { + err = ms.saveUsersToDisk(users) + if err != nil { + errs = append(errs, err) + } } } - if len(newInCache) > 0 || len(missingFromCache) > 0 { - return ms.saveUsersToDisk(users) - } - - return nil + return errs.Err() } func (ms *MetricSet) userEvent(user *User, eventType string, action eventAction) mb.Event { diff --git a/x-pack/auditbeat/module/system/user/user_test.go b/x-pack/auditbeat/module/system/user/user_test.go index 4669294a4f6..64b367322cf 100644 --- a/x-pack/auditbeat/module/system/user/user_test.go +++ b/x-pack/auditbeat/module/system/user/user_test.go @@ -34,8 +34,11 @@ func TestData(t *testing.T) { func getConfig() map[string]interface{} { return map[string]interface{}{ - "module": "system", - "metricsets": []string{"user"}, - "user.detect_password_changes": true, + "module": "system", + "metricsets": []string{"user"}, + + // Would require root access to /etc/shadow + // which we usually don't have when testing. + "user.detect_password_changes": false, } } diff --git a/x-pack/auditbeat/module/system/user/users_linux.go b/x-pack/auditbeat/module/system/user/users_linux.go index 52b66fad45a..8efab35b633 100644 --- a/x-pack/auditbeat/module/system/user/users_linux.go +++ b/x-pack/auditbeat/module/system/user/users_linux.go @@ -6,18 +6,26 @@ package user +// #include // #include // #include // #include +// +// void clearErrno() { +// errno = 0; +// } import "C" import ( "crypto/sha512" "os/user" + "runtime" "strconv" "strings" + "syscall" "time" + "github.com/joeshaw/multierror" "github.com/pkg/errors" ) @@ -28,24 +36,34 @@ var ( // GetUsers retrieves a list of users using information from // /etc/passwd, /etc/group, and - if configured - /etc/shadow. func GetUsers(readPasswords bool) ([]*User, error) { - users, err := readPasswdFile(readPasswords) - if err != nil { - return nil, err - } + var errs multierror.Errors - err = enrichWithGroups(users) + // We are using a number of thread sensitive C functions in + // this file, most importantly setpwent/getpwent/endpwent and + // setspent/getspent/endspent. And we set errno (which is thread-local). + runtime.LockOSThread() + defer runtime.UnlockOSThread() + + users, err := readPasswdFile(readPasswords) if err != nil { - return nil, err + errs = append(errs, err) } - if readPasswords { - err = enrichWithShadow(users) + if len(users) > 0 { + err = enrichWithGroups(users) if err != nil { - return nil, err + errs = append(errs, err) + } + + if readPasswords { + err = enrichWithShadow(users) + if err != nil { + errs = append(errs, err) + } } } - return users, nil + return users, errs.Err() } func readPasswdFile(readPasswords bool) ([]*User, error) { @@ -54,9 +72,22 @@ func readPasswdFile(readPasswords bool) ([]*User, error) { C.setpwent() defer C.endpwent() - for passwd, err := C.getpwent(); passwd != nil; passwd, err = C.getpwent() { - if err != nil { - return nil, errors.Wrap(err, "error getting user") + for { + // Setting errno to 0 before calling getpwent(). + // See return value section of getpwent(3). + C.clearErrno() + + passwd, err := C.getpwent() + + if passwd == nil { + // getpwent() can return ENOENT even when there is no error, + // see https://github.com/systemd/systemd/issues/9585. + if err != nil && err != syscall.ENOENT { + return users, errors.Wrap(err, "error getting user") + } + + // No more entries + break } // passwd is C.struct_passwd @@ -161,9 +192,22 @@ func readShadowFile() (map[string]shadowFileEntry, error) { defer C.endspent() shadowEntries := make(map[string]shadowFileEntry) - for spwd, err := C.getspent(); spwd != nil; spwd, err = C.getspent() { - if err != nil { - return nil, errors.Wrap(err, "error while reading shadow file") + + for { + // While getspnam(3) does not explicitly call out the need for setting errno to 0 + // as getpwent(3) does, at least glibc uses the same code for both, and so it + // probably makes sense to do the same for both. + C.clearErrno() + + spwd, err := C.getspent() + + if spwd == nil { + if err != nil { + return shadowEntries, errors.Wrap(err, "error while reading shadow file") + } + + // No more entries + break } shadow := shadowFileEntry{ diff --git a/x-pack/auditbeat/tests/system/test_metricsets.py b/x-pack/auditbeat/tests/system/test_metricsets.py index 3dfa25b3ca1..044986a60bd 100644 --- a/x-pack/auditbeat/tests/system/test_metricsets.py +++ b/x-pack/auditbeat/tests/system/test_metricsets.py @@ -91,5 +91,4 @@ def test_metricset_user(self): fields = ["user.entity_id", "system.audit.user.name"] - # Metricset is beta and that generates a warning, TODO: remove later - self.check_metricset("system", "user", COMMON_FIELDS + fields, warnings_allowed=True) + self.check_metricset("system", "user", COMMON_FIELDS + fields) From 7ee2049273e8bff67e22e21a5c5c32ff6c44bfa7 Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Mon, 11 Mar 2019 14:04:52 -0500 Subject: [PATCH 185/332] [Heartbeat] Make dashboard docs point to uptime-contrib. (#11121) These dashboards are now maintained in the new elastic/uptime-contrib repo, so the docs should point there. --- heartbeat/docs/getting-started.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/heartbeat/docs/getting-started.asciidoc b/heartbeat/docs/getting-started.asciidoc index f0f6f423a51..66bb0474df9 100644 --- a/heartbeat/docs/getting-started.asciidoc +++ b/heartbeat/docs/getting-started.asciidoc @@ -214,7 +214,7 @@ include::{libbeat-dir}/docs/shared-template-load.asciidoc[] [[load-kibana-dashboards]] === Step 4: Set up the Kibana dashboards -include::{libbeat-dir}/docs/dashboards.asciidoc[] +Dashboards for heartbeat can be found in the https://github.com/elastic/uptime-contrib[uptime-contrib] github repository. [[heartbeat-starting]] === Step 5: Start Heartbeat From 821baec2411eb070cc32bad3b01b87f1178ed220 Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Mon, 11 Mar 2019 18:44:03 -0500 Subject: [PATCH 186/332] [Heartbeat] Fix missing url.* fields on TCP NXDOMAIN (#10787) TCP checks are not adding URL fields on NXDOMAIN endpoints. This fixes that issue. It does so by ensuring that URL metadata is added before executing the check, and not during, as done previously. A side effect of this is that we now perform DNS lookups once per `{hostname,port}` instead of once per `{hostname}`. This is worth the increased simplicity however, as the code would be quite convoluted otherwise, which would put us at risk for more bugs. Related (but different) 6.x issue: https://github.com/elastic/beats/pull/10777 Fix import formatting --- heartbeat/hbtest/hbtestutil.go | 9 ++- .../monitors/active/dialchain/builder.go | 57 ++++++++++--------- heartbeat/monitors/active/tcp/tcp.go | 9 --- heartbeat/monitors/active/tcp/tcp_test.go | 28 ++++++--- heartbeat/monitors/util.go | 48 ---------------- 5 files changed, 58 insertions(+), 93 deletions(-) diff --git a/heartbeat/hbtest/hbtestutil.go b/heartbeat/hbtest/hbtestutil.go index 0173b6760e6..fca1ab267d3 100644 --- a/heartbeat/hbtest/hbtestutil.go +++ b/heartbeat/hbtest/hbtestutil.go @@ -97,10 +97,17 @@ func TLSChecks(chainIndex, certIndex int, certificate *x509.Certificate) mapval. // BaseChecks creates a skima.Validator that represents the "monitor" field present // in all heartbeat events. +// If IP is set to "" this will check that the field is not present func BaseChecks(ip string, status string, typ string) mapval.Validator { + var ipCheck mapval.IsDef + if len(ip) > 0 { + ipCheck = mapval.IsEqual(ip) + } else { + ipCheck = mapval.Optional(mapval.IsEqual(ip)) + } return mapval.MustCompile(mapval.Map{ "monitor": mapval.Map{ - "ip": ip, + "ip": ipCheck, "duration.us": mapval.IsDuration, "status": status, "id": mapval.IsNonEmptyString, diff --git a/heartbeat/monitors/active/dialchain/builder.go b/heartbeat/monitors/active/dialchain/builder.go index b8d522bbe1e..301c932db57 100644 --- a/heartbeat/monitors/active/dialchain/builder.go +++ b/heartbeat/monitors/active/dialchain/builder.go @@ -18,12 +18,14 @@ package dialchain import ( + "fmt" "net" - "strconv" + "net/url" "time" "github.com/elastic/beats/heartbeat/monitors" "github.com/elastic/beats/heartbeat/monitors/jobs" + "github.com/elastic/beats/heartbeat/monitors/wrappers" "github.com/elastic/beats/libbeat/beat" "github.com/elastic/beats/libbeat/outputs/transport" ) @@ -136,59 +138,60 @@ func MakeDialerJobs( ) ([]jobs.Job, error) { var jobs []jobs.Job for _, endpoint := range endpoints { - endpointJobs, err := makeEndpointJobs(b, scheme, endpoint, mode, fn) - if err != nil { - return nil, err + for _, port := range endpoint.Ports { + endpointURL, err := url.Parse(fmt.Sprintf("%s://%s:%d", scheme, endpoint.Host, port)) + if err != nil { + return nil, err + } + endpointJob, err := makeEndpointJob(b, endpointURL, mode, fn) + if err != nil { + return nil, err + } + jobs = append(jobs, wrappers.WithURLField(endpointURL, endpointJob)) } - jobs = append(jobs, endpointJobs...) + } return jobs, nil } -func makeEndpointJobs( +func makeEndpointJob( b *Builder, - scheme string, - endpoint Endpoint, + endpointURL *url.URL, mode monitors.IPSettings, fn func(*beat.Event, transport.Dialer, string) error, -) ([]jobs.Job, error) { +) (jobs.Job, error) { // Check if SOCKS5 is configured, with relying on the socks5 proxy // in resolving the actual IP. // Create one job for every port number configured. if b.resolveViaSocks5 { - js := make([]jobs.Job, len(endpoint.Ports)) - for i, port := range endpoint.Ports { - address := net.JoinHostPort(endpoint.Host, strconv.Itoa(int(port))) - js[i] = jobs.MakeSimpleJob(func(event *beat.Event) error { - return b.Run(event, address, func(event *beat.Event, dialer transport.Dialer) error { - return fn(event, dialer, address) + return wrappers.WithURLField(endpointURL, + jobs.MakeSimpleJob(func(event *beat.Event) error { + hostPort := net.JoinHostPort(endpointURL.Hostname(), endpointURL.Port()) + return b.Run(event, hostPort, func(event *beat.Event, dialer transport.Dialer) error { + return fn(event, dialer, hostPort) }) - }) - } - return js, nil + })), nil } // Create job that first resolves one or multiple IP (depending on // config.Mode) in order to create one continuation Task per IP. - settings := monitors.MakeHostJobSettings(endpoint.Host, mode) + settings := monitors.MakeHostJobSettings(endpointURL.Hostname(), mode) job, err := monitors.MakeByHostJob(settings, - monitors.MakePingAllIPPortFactory(endpoint.Ports, - func(event *beat.Event, ip *net.IPAddr, port uint16) error { + monitors.MakePingIPFactory( + func(event *beat.Event, ip *net.IPAddr) error { // use address from resolved IP - portStr := strconv.Itoa(int(port)) - ipAddr := net.JoinHostPort(ip.String(), portStr) - hostAddr := net.JoinHostPort(endpoint.Host, portStr) + ipPort := net.JoinHostPort(ip.String(), endpointURL.Port()) cb := func(event *beat.Event, dialer transport.Dialer) error { - return fn(event, dialer, hostAddr) + return fn(event, dialer, ipPort) } - err := b.Run(event, ipAddr, cb) + err := b.Run(event, ipPort, cb) return err })) if err != nil { return nil, err } - return []jobs.Job{job}, nil + return job, nil } diff --git a/heartbeat/monitors/active/tcp/tcp.go b/heartbeat/monitors/active/tcp/tcp.go index 827d7654a1c..0fcc4329b9c 100644 --- a/heartbeat/monitors/active/tcp/tcp.go +++ b/heartbeat/monitors/active/tcp/tcp.go @@ -23,11 +23,9 @@ import ( "strconv" "strings" - "github.com/elastic/beats/heartbeat/eventext" "github.com/elastic/beats/heartbeat/monitors" "github.com/elastic/beats/heartbeat/monitors/active/dialchain" "github.com/elastic/beats/heartbeat/monitors/jobs" - "github.com/elastic/beats/heartbeat/monitors/wrappers" "github.com/elastic/beats/libbeat/beat" "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/logp" @@ -91,13 +89,6 @@ func create( epJobs, err := dialchain.MakeDialerJobs(db, scheme, eps, config.Mode, func(event *beat.Event, dialer transport.Dialer, addr string) error { - u, err := url.Parse(fmt.Sprintf("%s://%s", scheme, addr)) - if err != nil { - return err - } - - eventext.MergeEventFields(event, common.MapStr{"url": wrappers.URLFields(u)}) - return pingHost(event, dialer, addr, timeout, validator) }) if err != nil { diff --git a/heartbeat/monitors/active/tcp/tcp_test.go b/heartbeat/monitors/active/tcp/tcp_test.go index 3b25685636a..af3026cbc00 100644 --- a/heartbeat/monitors/active/tcp/tcp_test.go +++ b/heartbeat/monitors/active/tcp/tcp_test.go @@ -97,10 +97,6 @@ func setupServer(t *testing.T, serverCreator func(http.Handler) *httptest.Server return server, port } -func tcpMonitorChecks(host string, ip string, port uint16, status string) mapval.Validator { - return hbtest.BaseChecks(ip, status, "tcp") -} - func TestUpEndpointJob(t *testing.T) { server, port := setupServer(t, httptest.NewServer) defer server.Close() @@ -174,7 +170,7 @@ func TestConnectionRefusedEndpointJob(t *testing.T) { mapval.Test( t, mapval.Strict(mapval.Compose( - tcpMonitorChecks(ip, ip, port, "down"), + hbtest.BaseChecks(ip, "down", "tcp"), hbtest.SummaryChecks(0, 1), hbtest.SimpleURLChecks(t, "tcp", ip, port), hbtest.ErrorChecks(dialErr, "io"), @@ -192,7 +188,7 @@ func TestUnreachableEndpointJob(t *testing.T) { mapval.Test( t, mapval.Strict(mapval.Compose( - tcpMonitorChecks(ip, ip, port, "down"), + hbtest.BaseChecks(ip, "down", "tcp"), hbtest.SummaryChecks(0, 1), hbtest.SimpleURLChecks(t, "tcp", ip, port), hbtest.ErrorChecks(dialErr, "io"), @@ -219,7 +215,7 @@ func TestCheckUp(t *testing.T) { mapval.Test( t, mapval.Strict(mapval.Compose( - tcpMonitorChecks(host, ip, port, "up"), + hbtest.BaseChecks(ip, "up", "tcp"), hbtest.RespondingTCPChecks(), hbtest.SimpleURLChecks(t, "tcp", host, port), hbtest.SummaryChecks(1, 0), @@ -255,7 +251,7 @@ func TestCheckDown(t *testing.T) { mapval.Test( t, mapval.Strict(mapval.Compose( - tcpMonitorChecks(host, ip, port, "down"), + hbtest.BaseChecks(ip, "down", "tcp"), hbtest.RespondingTCPChecks(), hbtest.SimpleURLChecks(t, "tcp", host, port), hbtest.SummaryChecks(0, 1), @@ -272,6 +268,22 @@ func TestCheckDown(t *testing.T) { "message": "received string mismatch", }, }), + )), event.Fields) +} + +func TestNXDomainJob(t *testing.T) { + host := "notadomainatallforsure.notadomain.notatldreally" + port := uint16(1234) + event := testTCPCheck(t, host, port) + + dialErr := fmt.Sprintf("lookup %s", host) + mapval.Test( + t, + mapval.Strict(mapval.Compose( + hbtest.BaseChecks("", "down", "tcp"), + hbtest.SummaryChecks(0, 1), + hbtest.SimpleURLChecks(t, "tcp", host, port), + hbtest.ErrorChecks(dialErr, "io"), )), event.Fields, ) diff --git a/heartbeat/monitors/util.go b/heartbeat/monitors/util.go index 7f81ac8a455..fa48113ec72 100644 --- a/heartbeat/monitors/util.go +++ b/heartbeat/monitors/util.go @@ -100,54 +100,6 @@ func MakePingIPFactory( } } -// MakePingAllIPFactory wraps a function for building a recursive Task Runner from function callbacks. -func MakePingAllIPFactory( - f func(*net.IPAddr) []func(*beat.Event) error, -) func(*net.IPAddr) jobs.Job { - return func(ip *net.IPAddr) jobs.Job { - cont := f(ip) - switch len(cont) { - case 0: - return emptyTask - case 1: - return MakeSimpleCont(cont[0]) - } - - tasks := make([]jobs.Job, len(cont)) - for i, c := range cont { - tasks[i] = MakeSimpleCont(c) - } - return func(event *beat.Event) ([]jobs.Job, error) { - return tasks, nil - } - } -} - -// MakePingAllIPPortFactory builds a set of TaskRunner supporting a set of -// IP/port-pairs. -func MakePingAllIPPortFactory( - ports []uint16, - f func(*beat.Event, *net.IPAddr, uint16) error, -) func(*net.IPAddr) jobs.Job { - if len(ports) == 1 { - port := ports[0] - return MakePingIPFactory(func(event *beat.Event, ip *net.IPAddr) error { - return f(event, ip, port) - }) - } - - return MakePingAllIPFactory(func(ip *net.IPAddr) []func(event *beat.Event) error { - funcs := make([]func(*beat.Event) error, len(ports)) - for i := range ports { - port := ports[i] - funcs[i] = func(event *beat.Event) error { - return f(event, ip, port) - } - } - return funcs - }) -} - // MakeByIPJob builds a new Job based on already known IP. Similar to // MakeByHostJob, the pingFactory will be used to build the tasks run by the job. // From 33833be118b8f0fa6fa4b94bfae0e85bc5eaee29 Mon Sep 17 00:00:00 2001 From: Chris Mark Date: Tue, 12 Mar 2019 14:11:31 +0200 Subject: [PATCH 187/332] Add NATS Filebeat dashboard #11170 This PR is part of #10071. Co-Authored-By: Stamatis Katsaounis Co-Authored-By: Michael Katsoulis --- .../docs/images/filebeat_nats_dashboard.png | Bin 0 -> 289124 bytes filebeat/docs/modules/nats.asciidoc | 6 +- filebeat/module/nats/_meta/docs.asciidoc | 6 +- .../7/dashboard/Filebeat-nats-overview.json | 1081 +++++++++++++++++ filebeat/module/nats/module.yml | 3 + 5 files changed, 1094 insertions(+), 2 deletions(-) create mode 100644 filebeat/docs/images/filebeat_nats_dashboard.png create mode 100644 filebeat/module/nats/_meta/kibana/7/dashboard/Filebeat-nats-overview.json create mode 100644 filebeat/module/nats/module.yml diff --git a/filebeat/docs/images/filebeat_nats_dashboard.png b/filebeat/docs/images/filebeat_nats_dashboard.png new file mode 100644 index 0000000000000000000000000000000000000000..5028e92244c77a5ccf160824cde0e7319f5403b8 GIT binary patch literal 289124 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

K(Cx(iDR$Jl|Gm`mYn56mLo~XWsI|^R#M$ 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 Date: Tue, 12 Mar 2019 08:53:21 -0400 Subject: [PATCH 188/332] Import updated ECS 1.0.0 go library. (#11196) * Import updated ECS 1.0.0 go library. * Adjust Packetbeat to use int64 for URL ports. * Re-generate golden files for filebeat and x-pack/filebeat --- NOTICE.txt | 3 +- .../access/test/ssl-request.log-expected.json | 2 +- .../apache/access/test/test.log-expected.json | 12 +- .../apache/error/test/test.log-expected.json | 6 +- .../log/test/audit-rhel6.log-expected.json | 24 ++-- .../auditd/log/test/test.log-expected.json | 8 +- .../audit/test/test-access.log-expected.json | 18 +-- .../audit/test/test-audit.log-expected.json | 14 +-- ...lasticsearch_deprecation.log-expected.json | 8 +- ...lasticsearch_deprecation.log-expected.json | 32 ++--- .../test/test-json.log-expected.json | 26 ++-- .../gc/test/test.log-expected.json | 6 +- .../server/test/test-json.log-expected.json | 116 +++++++++--------- .../server/test/test.log-expected.json | 38 +++--- ...g_index_indexing_slowlog.log-expected.json | 12 +- ...ex_indexing_slowlog-json.log-expected.json | 4 +- ...ndex_search_slowlog-json.log-expected.json | 6 +- .../slowlog/test/test.log-expected.json | 12 +- .../log/test/default.log-expected.json | 2 +- .../log/test/haproxy.log-expected.json | 2 +- .../test/httplog-no-headers.log-expected.json | 6 +- .../haproxy/log/test/tcplog.log-expected.json | 2 +- .../icinga/debug/test/test.log-expected.json | 6 +- .../icinga/main/test/test.log-expected.json | 6 +- .../startup/test/test.log-expected.json | 4 +- .../test/test-iis-7.5.log-expected.json | 2 +- .../test/test-ipv6zone.log-expected.json | 2 +- .../iis/access/test/test.log-expected.json | 6 +- .../error/test/ipv6_zone_id.log-expected.json | 2 +- .../iis/error/test/test.log-expected.json | 8 +- .../log/test/controller.log-expected.json | 40 +++--- .../kafka/log/test/server.log-expected.json | 40 +++--- .../test/state-change-1.1.0.log-expected.json | 2 +- .../test/state-change-2.0.0.log-expected.json | 2 +- .../log/test/state-change.log-expected.json | 2 +- .../kibana/log/test/test.log-expected.json | 6 +- .../log/test/logstash-json.log-expected.json | 2 +- .../log/test/logstash-plain.log-expected.json | 4 +- .../test/slowlog-json.log-expected.json | 2 +- .../test/slowlog-plain.log-expected.json | 2 +- .../mongodb-debian-3.2.11.log-expected.json | 68 +++++----- .../mysql/error/test/error.log-expected.json | 24 ++-- .../test/mariadb-10.1.21.log-expected.json | 2 +- .../test/mariadb-10.2.12.log-expected.json | 4 +- .../test/mariadb-explain.log-expected.json | 2 +- .../test/mysql-5.7.22.log-expected.json | 8 +- ...ona-ubuntu-5.7.19-innodb.log-expected.json | 4 +- .../nats/log/test/test.log-expected.json | 36 +++--- .../nginx/access/test/test.log-expected.json | 14 +-- .../nginx/error/test/error.log-expected.json | 4 +- .../result/test/test.log-expected.json | 2 +- ...-9.6-debian-with-slowlog.log-expected.json | 36 +++--- ...ostgresql-9.6-multi-core.log-expected.json | 16 +-- ...gresql-9.6-new-timestamp.log-expected.json | 10 +- .../log/test/redis-5.0.3.log-expected.json | 2 +- .../redis/log/test/test.log-expected.json | 8 +- .../santa/log/test/santa.log-expected.json | 20 +-- .../system/auth/test/test.log-expected.json | 20 +-- .../darwin-syslog-sample.log-expected.json | 6 +- .../syslog/test/suse-syslog.log-expected.json | 4 +- .../access/test/test.log-expected.json | 14 +-- packetbeat/protos/http/event.go | 4 +- packetbeat/protos/http/http.go | 2 +- .../elastic/ecs/code/go/ecs/agent.go | 9 +- .../elastic/ecs/code/go/ecs/base.go | 21 ++-- .../elastic/ecs/code/go/ecs/client.go | 16 +-- .../elastic/ecs/code/go/ecs/cloud.go | 2 +- .../elastic/ecs/code/go/ecs/container.go | 4 +- .../github.com/elastic/ecs/code/go/ecs/ecs.go | 1 - .../elastic/ecs/code/go/ecs/error.go | 6 +- .../elastic/ecs/code/go/ecs/event.go | 43 +++---- .../elastic/ecs/code/go/ecs/file.go | 9 +- .../github.com/elastic/ecs/code/go/ecs/geo.go | 5 +- .../elastic/ecs/code/go/ecs/host.go | 8 +- .../elastic/ecs/code/go/ecs/http.go | 17 +-- .../github.com/elastic/ecs/code/go/ecs/log.go | 4 +- .../elastic/ecs/code/go/ecs/network.go | 31 ++--- .../elastic/ecs/code/go/ecs/observer.go | 18 +-- .../elastic/ecs/code/go/ecs/organization.go | 5 +- .../elastic/ecs/code/go/ecs/process.go | 10 +- .../elastic/ecs/code/go/ecs/related.go | 15 +-- .../elastic/ecs/code/go/ecs/server.go | 16 +-- .../elastic/ecs/code/go/ecs/service.go | 5 +- .../elastic/ecs/code/go/ecs/source.go | 4 +- .../github.com/elastic/ecs/code/go/ecs/url.go | 7 +- .../elastic/ecs/code/go/ecs/user.go | 7 +- .../elastic/ecs/code/go/ecs/user_agent.go | 5 +- .../elastic/ecs/code/go/ecs/version.go | 2 +- vendor/vendor.json | 8 +- .../iptables/log/test/geo.log-expected.json | 2 +- .../iptables/log/test/icmp.log-expected.json | 2 +- .../log/test/iptables.log-expected.json | 20 +-- .../iptables/log/test/ipv6.log-expected.json | 22 ++-- .../log/test/ubiquiti.log-expected.json | 10 +- .../eve/test/eve-alerts.log-expected.json | 40 +++--- .../eve/test/eve-small.log-expected.json | 16 +-- .../test/connection-json.log-expected.json | 8 +- .../zeek/dns/test/dns-json.log-expected.json | 2 +- .../files/test/files-json.log-expected.json | 4 +- .../http/test/http-json.log-expected.json | 2 +- .../notice/test/notice-json.log-expected.json | 4 +- .../zeek/ssl/test/ssl-json.log-expected.json | 4 +- 102 files changed, 619 insertions(+), 602 deletions(-) diff --git a/NOTICE.txt b/NOTICE.txt index 56fa8db63e2..dc031a017bb 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -568,7 +568,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------- Dependency: github.com/elastic/ecs -Revision: 337ddd4674d6a28da97e6d19010c04c43db09e58 +Version: 1.0 +Revision: b9f735dd33b0bbb95dbca4229397c9b7f81f8f53 License type (autodetected): Apache-2.0 ./vendor/github.com/elastic/ecs/LICENSE.txt: -------------------------------------------------------------------- diff --git a/filebeat/module/apache/access/test/ssl-request.log-expected.json b/filebeat/module/apache/access/test/ssl-request.log-expected.json index b714bd934b5..d3b6a937ecd 100644 --- a/filebeat/module/apache/access/test/ssl-request.log-expected.json +++ b/filebeat/module/apache/access/test/ssl-request.log-expected.json @@ -3,7 +3,7 @@ "@timestamp": "2018-08-10T07:45:56.000Z", "apache.access.ssl.cipher": "ECDHE-RSA-AES128-GCM-SHA256", "apache.access.ssl.protocol": "TLSv1.2", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "apache.access", "event.module": "apache", "fileset.name": "access", diff --git a/filebeat/module/apache/access/test/test.log-expected.json b/filebeat/module/apache/access/test/test.log-expected.json index 45034b67089..3c0a8fe0d21 100644 --- a/filebeat/module/apache/access/test/test.log-expected.json +++ b/filebeat/module/apache/access/test/test.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2016-12-26T14:16:29.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "apache.access", "event.module": "apache", "fileset.name": "access", @@ -19,7 +19,7 @@ }, { "@timestamp": "2016-12-26T16:22:13.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "apache.access", "event.module": "apache", "fileset.name": "access", @@ -45,7 +45,7 @@ }, { "@timestamp": "2016-12-26T14:16:48.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "apache.access", "event.module": "apache", "fileset.name": "access", @@ -59,7 +59,7 @@ }, { "@timestamp": "2017-05-29T19:02:48.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "apache.access", "event.module": "apache", "fileset.name": "access", @@ -83,7 +83,7 @@ }, { "@timestamp": "2017-05-29T19:02:48.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "apache.access", "event.module": "apache", "fileset.name": "access", @@ -107,7 +107,7 @@ }, { "@timestamp": "2019-02-02T04:38:45.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "apache.access", "event.module": "apache", "fileset.name": "access", diff --git a/filebeat/module/apache/error/test/test.log-expected.json b/filebeat/module/apache/error/test/test.log-expected.json index ebd4a7bd335..1d33886209f 100644 --- a/filebeat/module/apache/error/test/test.log-expected.json +++ b/filebeat/module/apache/error/test/test.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2016-12-26T16:22:08.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "apache.error", "event.module": "apache", "fileset.name": "error", @@ -16,7 +16,7 @@ { "@timestamp": "2016-12-26T16:15:55.103Z", "apache.error.module": "core", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "apache.error", "event.module": "apache", "fileset.name": "error", @@ -30,7 +30,7 @@ { "@timestamp": "2011-09-09T10:42:29.902Z", "apache.error.module": "core", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "apache.error", "event.module": "apache", "fileset.name": "error", diff --git a/filebeat/module/auditd/log/test/audit-rhel6.log-expected.json b/filebeat/module/auditd/log/test/audit-rhel6.log-expected.json index 6ae5934e328..dde9e07667b 100644 --- a/filebeat/module/auditd/log/test/audit-rhel6.log-expected.json +++ b/filebeat/module/auditd/log/test/audit-rhel6.log-expected.json @@ -3,7 +3,7 @@ "@timestamp": "2017-03-14T19:20:30.178Z", "auditd.log.sequence": 19600327, "auditd.log.ses": "11988", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.action": "user_end", "event.dataset": "auditd.log", "event.module": "auditd", @@ -23,7 +23,7 @@ "@timestamp": "2017-03-14T19:20:30.178Z", "auditd.log.sequence": 19600328, "auditd.log.ses": "11988", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.action": "cred_disp", "event.dataset": "auditd.log", "event.module": "auditd", @@ -43,7 +43,7 @@ "@timestamp": "2017-03-14T19:20:56.192Z", "auditd.log.sequence": 19600329, "auditd.log.ses": "11988", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.action": "user_cmd", "event.dataset": "auditd.log", "event.module": "auditd", @@ -66,7 +66,7 @@ "@timestamp": "2017-03-14T19:20:56.193Z", "auditd.log.sequence": 19600330, "auditd.log.ses": "11988", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.action": "cred_acq", "event.dataset": "auditd.log", "event.module": "auditd", @@ -86,7 +86,7 @@ "@timestamp": "2017-03-14T19:20:56.193Z", "auditd.log.sequence": 19600331, "auditd.log.ses": "11988", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.action": "user_start", "event.dataset": "auditd.log", "event.module": "auditd", @@ -110,7 +110,7 @@ "auditd.log.ses": "4294967295", "auditd.log.src_prefixlen": "16", "destination.address": "10.100.4.0", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.action": "mac_ipsec_event", "event.dataset": "auditd.log", "event.module": "auditd", @@ -136,7 +136,7 @@ "auditd.log.success": "yes", "auditd.log.syscall": "44", "auditd.log.tty": "(none)", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.action": "syscall", "event.dataset": "auditd.log", "event.module": "auditd", @@ -166,7 +166,7 @@ "auditd.log.old_auid": "700", "auditd.log.old_ses": "6793", "auditd.log.sequence": 19623791, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.action": "login", "event.dataset": "auditd.log", "event.module": "auditd", @@ -188,7 +188,7 @@ "auditd.log.sequence": 19623788, "auditd.log.ses": "6793", "auditd.log.spid": "28282", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.action": "crypto_key_user", "event.dataset": "auditd.log", "event.module": "auditd", @@ -209,7 +209,7 @@ "auditd.log.addr": "96.241.146.97", "auditd.log.sequence": 19623789, "auditd.log.ses": "6793", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.action": "user_auth", "event.dataset": "auditd.log", "event.module": "auditd", @@ -230,7 +230,7 @@ "@timestamp": "2017-03-16T04:02:57.804Z", "auditd.log.sequence": 19623807, "auditd.log.ses": "12286", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.action": "user_auth", "event.dataset": "auditd.log", "event.module": "auditd", @@ -251,7 +251,7 @@ "@timestamp": "2017-03-16T04:02:57.805Z", "auditd.log.sequence": 19623808, "auditd.log.ses": "12286", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.action": "user_acct", "event.dataset": "auditd.log", "event.module": "auditd", diff --git a/filebeat/module/auditd/log/test/test.log-expected.json b/filebeat/module/auditd/log/test/test.log-expected.json index 569e2aa5885..562ad0ae00d 100644 --- a/filebeat/module/auditd/log/test/test.log-expected.json +++ b/filebeat/module/auditd/log/test/test.log-expected.json @@ -7,7 +7,7 @@ "auditd.log.ses": "4294967295", "auditd.log.src_prefixlen": "24", "destination.address": "192.168.0.0", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.action": "mac_ipsec_event", "event.dataset": "auditd.log", "event.module": "auditd", @@ -33,7 +33,7 @@ "auditd.log.success": "yes", "auditd.log.syscall": "44", "auditd.log.tty": "(none)", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.action": "syscall", "event.dataset": "auditd.log", "event.module": "auditd", @@ -60,7 +60,7 @@ "@timestamp": "2017-03-14T19:20:56.192Z", "auditd.log.sequence": 19600329, "auditd.log.ses": "11988", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.action": "user_cmd", "event.dataset": "auditd.log", "event.module": "auditd", @@ -93,7 +93,7 @@ "auditd.log.ses": "4294967295", "auditd.log.spid": "1299", "auditd.log.subj": "system_u:system_r:sshd_t:s0-s0:c0.c1023", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.action": "crypto_session", "event.dataset": "auditd.log", "event.module": "auditd", diff --git a/filebeat/module/elasticsearch/audit/test/test-access.log-expected.json b/filebeat/module/elasticsearch/audit/test/test-access.log-expected.json index 3811a496f12..f481092b357 100644 --- a/filebeat/module/elasticsearch/audit/test/test-access.log-expected.json +++ b/filebeat/module/elasticsearch/audit/test/test-access.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2018-06-19T05:16:15.549Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.audit.layer": "rest", "event.dataset": "elasticsearch.audit", "event.module": "elasticsearch", @@ -17,7 +17,7 @@ }, { "@timestamp": "2018-06-19T05:07:52.304Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.audit.layer": "rest", "elasticsearch.node.name": "v_VJhjV", "event.dataset": "elasticsearch.audit", @@ -34,7 +34,7 @@ }, { "@timestamp": "2018-06-19T05:00:15.778Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.audit.action": "indices:data/read/scroll/clear", "elasticsearch.audit.layer": "transport", "elasticsearch.audit.origin.type": "local_node", @@ -52,7 +52,7 @@ }, { "@timestamp": "2018-06-19T05:07:45.544Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.audit.layer": "rest", "elasticsearch.node.name": "v_VJhjV", "event.dataset": "elasticsearch.audit", @@ -68,7 +68,7 @@ }, { "@timestamp": "2018-06-19T05:26:27.268Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.audit.layer": "rest", "event.dataset": "elasticsearch.audit", "event.module": "elasticsearch", @@ -84,7 +84,7 @@ }, { "@timestamp": "2018-06-19T05:55:26.898Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.audit.action": "cluster:monitor/main", "elasticsearch.audit.layer": "transport", "elasticsearch.audit.origin.type": "rest", @@ -102,7 +102,7 @@ }, { "@timestamp": "2018-06-19T05:24:15.190Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.audit.layer": "rest", "elasticsearch.node.name": "v_VJhjV", "event.dataset": "elasticsearch.audit", @@ -120,7 +120,7 @@ }, { "@timestamp": "2019-01-08T14:15:02.011Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.audit.action": "indices:data/read/search[free_context]", "elasticsearch.audit.indices": [ "foo-2019.01.04", @@ -153,7 +153,7 @@ }, { "@timestamp": "2019-01-27T20:04:27.244Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.audit.layer": "rest", "elasticsearch.audit.realm": "default_file", "elasticsearch.audit.url.params": "{username=jacknich2}", diff --git a/filebeat/module/elasticsearch/audit/test/test-audit.log-expected.json b/filebeat/module/elasticsearch/audit/test/test-audit.log-expected.json index c3e4ea3d40e..379067751d2 100644 --- a/filebeat/module/elasticsearch/audit/test/test-audit.log-expected.json +++ b/filebeat/module/elasticsearch/audit/test/test-audit.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2018-10-31T09:34:25.109Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.audit.layer": "rest", "elasticsearch.audit.origin.type": "rest", "elasticsearch.node.id": "DSiWcTyeThWtUXLB9J0BMw", @@ -21,7 +21,7 @@ }, { "@timestamp": "2018-10-31T09:34:25.207Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.audit.layer": "rest", "elasticsearch.audit.origin.type": "rest", "elasticsearch.node.id": "DSiWcTyeThWtUXLB9J0BMw", @@ -41,7 +41,7 @@ }, { "@timestamp": "2018-10-31T09:35:11.428Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.audit.action": "cluster:admin/xpack/security/realm/cache/clear", "elasticsearch.audit.layer": "transport", "elasticsearch.audit.origin.type": "local_node", @@ -66,7 +66,7 @@ }, { "@timestamp": "2018-10-31T09:35:11.430Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.audit.action": "cluster:admin/xpack/security/realm/cache/clear[n]", "elasticsearch.audit.layer": "transport", "elasticsearch.audit.origin.type": "local_node", @@ -91,7 +91,7 @@ }, { "@timestamp": "2018-10-31T09:35:12.303Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.audit.action": "cluster:admin/xpack/security/user/change_password", "elasticsearch.audit.layer": "transport", "elasticsearch.audit.origin.type": "rest", @@ -116,7 +116,7 @@ }, { "@timestamp": "2018-10-31T09:35:12.314Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.audit.action": "indices:admin/create", "elasticsearch.audit.indices": [ ".security-6" @@ -144,7 +144,7 @@ }, { "@timestamp": "2019-01-27T20:15:10.380Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.audit.layer": "rest", "elasticsearch.audit.origin.type": "rest", "elasticsearch.audit.realm": "default_file", diff --git a/filebeat/module/elasticsearch/deprecation/test/elasticsearch_deprecation.log-expected.json b/filebeat/module/elasticsearch/deprecation/test/elasticsearch_deprecation.log-expected.json index 156c28f746e..edd101a0060 100644 --- a/filebeat/module/elasticsearch/deprecation/test/elasticsearch_deprecation.log-expected.json +++ b/filebeat/module/elasticsearch/deprecation/test/elasticsearch_deprecation.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2018-04-23T16:40:13.737Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.d.a.a.i.t.p.PutIndexTemplateRequest", "event.dataset": "elasticsearch.deprecation", "event.module": "elasticsearch", @@ -14,7 +14,7 @@ }, { "@timestamp": "2018-04-23T16:40:13.862Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.d.a.a.i.t.p.PutIndexTemplateRequest", "event.dataset": "elasticsearch.deprecation", "event.module": "elasticsearch", @@ -27,7 +27,7 @@ }, { "@timestamp": "2018-04-23T16:40:14.792Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.d.a.a.i.t.p.PutIndexTemplateRequest", "event.dataset": "elasticsearch.deprecation", "event.module": "elasticsearch", @@ -40,7 +40,7 @@ }, { "@timestamp": "2018-04-23T16:40:15.127Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.d.a.a.i.t.p.PutIndexTemplateRequest", "event.dataset": "elasticsearch.deprecation", "event.module": "elasticsearch", diff --git a/filebeat/module/elasticsearch/deprecation/test/other_elasticsearch_deprecation.log-expected.json b/filebeat/module/elasticsearch/deprecation/test/other_elasticsearch_deprecation.log-expected.json index 1241db9006e..303a95f4043 100644 --- a/filebeat/module/elasticsearch/deprecation/test/other_elasticsearch_deprecation.log-expected.json +++ b/filebeat/module/elasticsearch/deprecation/test/other_elasticsearch_deprecation.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2017-11-30T13:38:16.911Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.d.c.ParseField", "event.dataset": "elasticsearch.deprecation", "event.module": "elasticsearch", @@ -14,7 +14,7 @@ }, { "@timestamp": "2017-11-30T13:38:16.941Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.d.c.ParseField", "event.dataset": "elasticsearch.deprecation", "event.module": "elasticsearch", @@ -27,7 +27,7 @@ }, { "@timestamp": "2017-11-30T13:39:28.986Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.d.i.m.UidFieldMapper", "event.dataset": "elasticsearch.deprecation", "event.module": "elasticsearch", @@ -40,7 +40,7 @@ }, { "@timestamp": "2017-11-30T13:39:36.339Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.d.i.m.UidFieldMapper", "event.dataset": "elasticsearch.deprecation", "event.module": "elasticsearch", @@ -53,7 +53,7 @@ }, { "@timestamp": "2017-11-30T13:40:49.540Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.d.i.m.UidFieldMapper", "event.dataset": "elasticsearch.deprecation", "event.module": "elasticsearch", @@ -66,7 +66,7 @@ }, { "@timestamp": "2017-11-30T14:08:37.413Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.d.i.m.UidFieldMapper", "event.dataset": "elasticsearch.deprecation", "event.module": "elasticsearch", @@ -79,7 +79,7 @@ }, { "@timestamp": "2017-11-30T14:08:37.413Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.d.i.m.UidFieldMapper", "event.dataset": "elasticsearch.deprecation", "event.module": "elasticsearch", @@ -92,7 +92,7 @@ }, { "@timestamp": "2017-11-30T14:08:46.006Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.d.i.m.UidFieldMapper", "event.dataset": "elasticsearch.deprecation", "event.module": "elasticsearch", @@ -105,7 +105,7 @@ }, { "@timestamp": "2017-11-30T14:08:46.006Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.d.i.m.UidFieldMapper", "event.dataset": "elasticsearch.deprecation", "event.module": "elasticsearch", @@ -118,7 +118,7 @@ }, { "@timestamp": "2017-12-01T14:05:54.017Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.d.i.m.AllFieldMapper", "event.dataset": "elasticsearch.deprecation", "event.module": "elasticsearch", @@ -131,7 +131,7 @@ }, { "@timestamp": "2017-12-01T14:05:54.019Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.d.i.m.AllFieldMapper", "event.dataset": "elasticsearch.deprecation", "event.module": "elasticsearch", @@ -144,7 +144,7 @@ }, { "@timestamp": "2017-12-01T14:06:52.059Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.d.i.m.AllFieldMapper", "event.dataset": "elasticsearch.deprecation", "event.module": "elasticsearch", @@ -157,7 +157,7 @@ }, { "@timestamp": "2017-12-01T14:46:10.428Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.d.s.a.InternalOrder$Parser", "event.dataset": "elasticsearch.deprecation", "event.module": "elasticsearch", @@ -170,7 +170,7 @@ }, { "@timestamp": "2017-12-04T16:17:18.271Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.d.a.a.i.t.p.PutIndexTemplateRequest", "event.dataset": "elasticsearch.deprecation", "event.module": "elasticsearch", @@ -183,7 +183,7 @@ }, { "@timestamp": "2017-12-04T16:17:18.282Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.d.i.m.MapperService", "event.dataset": "elasticsearch.deprecation", "event.module": "elasticsearch", @@ -196,7 +196,7 @@ }, { "@timestamp": "2017-12-04T16:20:43.248Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.d.i.m.MapperService", "event.dataset": "elasticsearch.deprecation", "event.module": "elasticsearch", diff --git a/filebeat/module/elasticsearch/deprecation/test/test-json.log-expected.json b/filebeat/module/elasticsearch/deprecation/test/test-json.log-expected.json index 8664764a21a..5f1ae45db0e 100644 --- a/filebeat/module/elasticsearch/deprecation/test/test-json.log-expected.json +++ b/filebeat/module/elasticsearch/deprecation/test/test-json.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2019-01-30T22:16:20.233Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "es1", "elasticsearch.cluster.uuid": "S4dWw65ZT1eu3SltmAr84A", "elasticsearch.component": "o.e.d.r.a.d.RestGetAction", @@ -18,7 +18,7 @@ }, { "@timestamp": "2019-01-30T22:16:22.388Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "es1", "elasticsearch.cluster.uuid": "S4dWw65ZT1eu3SltmAr84A", "elasticsearch.component": "o.e.d.a.b.BulkRequest", @@ -35,7 +35,7 @@ }, { "@timestamp": "2019-01-30T22:16:22.566Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "es1", "elasticsearch.cluster.uuid": "S4dWw65ZT1eu3SltmAr84A", "elasticsearch.component": "o.e.d.r.a.d.RestUpdateAction", @@ -52,7 +52,7 @@ }, { "@timestamp": "2019-01-30T22:16:24.538Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "es1", "elasticsearch.cluster.uuid": "S4dWw65ZT1eu3SltmAr84A", "elasticsearch.component": "o.e.d.r.a.s.RestSearchAction", @@ -69,7 +69,7 @@ }, { "@timestamp": "2019-01-30T22:16:59.311Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "es1", "elasticsearch.cluster.uuid": "S4dWw65ZT1eu3SltmAr84A", "elasticsearch.component": "o.e.d.x.s.r.a.u.RestChangePasswordAction", @@ -86,7 +86,7 @@ }, { "@timestamp": "2019-01-30T22:16:59.922Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "es1", "elasticsearch.cluster.uuid": "S4dWw65ZT1eu3SltmAr84A", "elasticsearch.component": "o.e.d.x.s.r.a.u.RestChangePasswordAction", @@ -103,7 +103,7 @@ }, { "@timestamp": "2019-01-30T22:17:00.095Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "es1", "elasticsearch.cluster.uuid": "S4dWw65ZT1eu3SltmAr84A", "elasticsearch.component": "o.e.d.x.s.r.a.u.RestChangePasswordAction", @@ -120,7 +120,7 @@ }, { "@timestamp": "2019-01-30T22:17:13.226Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "es1", "elasticsearch.cluster.uuid": "S4dWw65ZT1eu3SltmAr84A", "elasticsearch.component": "o.e.d.r.a.d.RestGetAction", @@ -137,7 +137,7 @@ }, { "@timestamp": "2019-01-30T22:17:14.747Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "es1", "elasticsearch.cluster.uuid": "S4dWw65ZT1eu3SltmAr84A", "elasticsearch.component": "o.e.d.a.b.BulkRequest", @@ -154,7 +154,7 @@ }, { "@timestamp": "2019-01-30T22:17:14.801Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "es1", "elasticsearch.cluster.uuid": "S4dWw65ZT1eu3SltmAr84A", "elasticsearch.component": "o.e.d.r.a.d.RestUpdateAction", @@ -171,7 +171,7 @@ }, { "@timestamp": "2019-01-30T22:17:17.546Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "es1", "elasticsearch.cluster.uuid": "S4dWw65ZT1eu3SltmAr84A", "elasticsearch.component": "o.e.d.r.a.s.RestSearchAction", @@ -188,7 +188,7 @@ }, { "@timestamp": "2019-01-30T22:18:33.367Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "es1", "elasticsearch.cluster.uuid": "S4dWw65ZT1eu3SltmAr84A", "elasticsearch.component": "o.e.d.x.w.a.i.IndexAction", @@ -205,7 +205,7 @@ }, { "@timestamp": "2019-01-30T22:18:46.493Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "es1", "elasticsearch.cluster.uuid": "S4dWw65ZT1eu3SltmAr84A", "elasticsearch.component": "o.e.d.i.q.QueryShardContext", diff --git a/filebeat/module/elasticsearch/gc/test/test.log-expected.json b/filebeat/module/elasticsearch/gc/test/test.log-expected.json index 11af8ccec63..ec363c99ba3 100644 --- a/filebeat/module/elasticsearch/gc/test/test.log-expected.json +++ b/filebeat/module/elasticsearch/gc/test/test.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2018-03-03T14:37:06.157Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.gc.heap.size_kb": "253440", "elasticsearch.gc.heap.used_kb": "142444", "elasticsearch.gc.jvm_runtime_sec": "14597.826", @@ -22,7 +22,7 @@ }, { "@timestamp": "2018-06-11T01:53:11.382Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.gc.jvm_runtime_sec": "1396138.752", "elasticsearch.gc.stopping_threads_time_sec": "0.0000702", "elasticsearch.gc.threads_total_stop_time_sec": "0.0083760", @@ -36,7 +36,7 @@ }, { "@timestamp": "2018-06-30T11:35:26.632Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.gc.heap.size_kb": "506816", "elasticsearch.gc.heap.used_kb": "391020", "elasticsearch.gc.jvm_runtime_sec": "224.671", diff --git a/filebeat/module/elasticsearch/server/test/test-json.log-expected.json b/filebeat/module/elasticsearch/server/test/test-json.log-expected.json index f4097bd56d3..5366155e6fe 100644 --- a/filebeat/module/elasticsearch/server/test/test-json.log-expected.json +++ b/filebeat/module/elasticsearch/server/test/test-json.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2019-01-18T07:55:08.159Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.e.NodeEnvironment", "elasticsearch.node.name": "node-0", @@ -16,7 +16,7 @@ }, { "@timestamp": "2019-01-18T07:55:08.163Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.e.NodeEnvironment", "elasticsearch.node.name": "node-0", @@ -31,7 +31,7 @@ }, { "@timestamp": "2019-01-18T07:55:08.165Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.n.Node", "elasticsearch.node.name": "node-0", @@ -46,7 +46,7 @@ }, { "@timestamp": "2019-01-18T07:55:08.166Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.n.Node", "elasticsearch.node.name": "node-0", @@ -61,7 +61,7 @@ }, { "@timestamp": "2019-01-18T07:55:08.166Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.n.Node", "elasticsearch.node.name": "node-0", @@ -76,7 +76,7 @@ }, { "@timestamp": "2019-01-18T07:55:08.167Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.n.Node", "elasticsearch.node.name": "node-0", @@ -91,7 +91,7 @@ }, { "@timestamp": "2019-01-18T07:55:09.492Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", "elasticsearch.node.name": "node-0", @@ -106,7 +106,7 @@ }, { "@timestamp": "2019-01-18T07:55:09.493Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", "elasticsearch.node.name": "node-0", @@ -121,7 +121,7 @@ }, { "@timestamp": "2019-01-18T07:55:09.493Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", "elasticsearch.node.name": "node-0", @@ -136,7 +136,7 @@ }, { "@timestamp": "2019-01-18T07:55:09.493Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", "elasticsearch.node.name": "node-0", @@ -151,7 +151,7 @@ }, { "@timestamp": "2019-01-18T07:55:09.494Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", "elasticsearch.node.name": "node-0", @@ -166,7 +166,7 @@ }, { "@timestamp": "2019-01-18T07:55:09.494Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", "elasticsearch.node.name": "node-0", @@ -181,7 +181,7 @@ }, { "@timestamp": "2019-01-18T07:55:09.494Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", "elasticsearch.node.name": "node-0", @@ -196,7 +196,7 @@ }, { "@timestamp": "2019-01-18T07:55:09.495Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", "elasticsearch.node.name": "node-0", @@ -211,7 +211,7 @@ }, { "@timestamp": "2019-01-18T07:55:09.495Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", "elasticsearch.node.name": "node-0", @@ -226,7 +226,7 @@ }, { "@timestamp": "2019-01-18T07:55:09.495Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", "elasticsearch.node.name": "node-0", @@ -241,7 +241,7 @@ }, { "@timestamp": "2019-01-18T07:55:09.495Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", "elasticsearch.node.name": "node-0", @@ -256,7 +256,7 @@ }, { "@timestamp": "2019-01-18T07:55:09.496Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", "elasticsearch.node.name": "node-0", @@ -271,7 +271,7 @@ }, { "@timestamp": "2019-01-18T07:55:09.496Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", "elasticsearch.node.name": "node-0", @@ -286,7 +286,7 @@ }, { "@timestamp": "2019-01-18T07:55:09.496Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", "elasticsearch.node.name": "node-0", @@ -301,7 +301,7 @@ }, { "@timestamp": "2019-01-18T07:55:09.497Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", "elasticsearch.node.name": "node-0", @@ -316,7 +316,7 @@ }, { "@timestamp": "2019-01-18T07:55:09.497Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", "elasticsearch.node.name": "node-0", @@ -331,7 +331,7 @@ }, { "@timestamp": "2019-01-18T07:55:09.497Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", "elasticsearch.node.name": "node-0", @@ -346,7 +346,7 @@ }, { "@timestamp": "2019-01-18T07:55:09.498Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", "elasticsearch.node.name": "node-0", @@ -361,7 +361,7 @@ }, { "@timestamp": "2019-01-18T07:55:09.498Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", "elasticsearch.node.name": "node-0", @@ -376,7 +376,7 @@ }, { "@timestamp": "2019-01-18T07:55:09.498Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", "elasticsearch.node.name": "node-0", @@ -391,7 +391,7 @@ }, { "@timestamp": "2019-01-18T07:55:09.498Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", "elasticsearch.node.name": "node-0", @@ -406,7 +406,7 @@ }, { "@timestamp": "2019-01-18T07:55:09.499Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", "elasticsearch.node.name": "node-0", @@ -421,7 +421,7 @@ }, { "@timestamp": "2019-01-18T07:55:09.499Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", "elasticsearch.node.name": "node-0", @@ -436,7 +436,7 @@ }, { "@timestamp": "2019-01-18T07:55:09.499Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", "elasticsearch.node.name": "node-0", @@ -451,7 +451,7 @@ }, { "@timestamp": "2019-01-18T07:55:09.499Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", "elasticsearch.node.name": "node-0", @@ -466,7 +466,7 @@ }, { "@timestamp": "2019-01-18T07:55:09.500Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", "elasticsearch.node.name": "node-0", @@ -481,7 +481,7 @@ }, { "@timestamp": "2019-01-18T07:55:09.500Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", "elasticsearch.node.name": "node-0", @@ -496,7 +496,7 @@ }, { "@timestamp": "2019-01-18T07:55:09.500Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", "elasticsearch.node.name": "node-0", @@ -511,7 +511,7 @@ }, { "@timestamp": "2019-01-18T07:55:09.501Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.p.PluginsService", "elasticsearch.node.name": "node-0", @@ -526,7 +526,7 @@ }, { "@timestamp": "2019-01-18T07:55:12.057Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.x.s.a.s.FileRolesStore", "elasticsearch.node.name": "node-0", @@ -541,7 +541,7 @@ }, { "@timestamp": "2019-01-18T07:55:12.426Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.x.m.p.l.CppLogMessageHandler", "elasticsearch.index.id": "25947", @@ -558,7 +558,7 @@ }, { "@timestamp": "2019-01-18T07:55:12.709Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.a.ActionModule", "elasticsearch.node.name": "node-0", @@ -573,7 +573,7 @@ }, { "@timestamp": "2019-01-18T07:55:12.922Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.d.DiscoveryModule", "elasticsearch.node.name": "node-0", @@ -588,7 +588,7 @@ }, { "@timestamp": "2019-01-18T07:55:13.507Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.n.Node", "elasticsearch.node.name": "node-0", @@ -603,7 +603,7 @@ }, { "@timestamp": "2019-01-18T07:55:13.508Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.n.Node", "elasticsearch.node.name": "node-0", @@ -618,7 +618,7 @@ }, { "@timestamp": "2019-01-18T07:55:13.642Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.t.TransportService", "elasticsearch.node.name": "node-0", @@ -633,7 +633,7 @@ }, { "@timestamp": "2019-01-18T07:55:13.675Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.d.z.FileBasedUnicastHostsProvider", "elasticsearch.node.name": "node-0", @@ -648,7 +648,7 @@ }, { "@timestamp": "2019-01-18T07:55:13.796Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.c.s.MasterService", "elasticsearch.node.name": "node-0", @@ -663,7 +663,7 @@ }, { "@timestamp": "2019-01-18T07:55:13.871Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.component": "o.e.c.s.ClusterApplierService", "elasticsearch.node.name": "node-0", @@ -678,7 +678,7 @@ }, { "@timestamp": "2019-01-18T07:55:13.922Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.cluster.uuid": "GmvrbHlNTiSVYiPf8kxg9g", "elasticsearch.component": "o.e.h.AbstractHttpServerTransport", @@ -695,7 +695,7 @@ }, { "@timestamp": "2019-01-18T07:55:13.923Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.cluster.uuid": "GmvrbHlNTiSVYiPf8kxg9g", "elasticsearch.component": "o.e.n.Node", @@ -712,7 +712,7 @@ }, { "@timestamp": "2019-01-18T07:55:14.105Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.cluster.uuid": "GmvrbHlNTiSVYiPf8kxg9g", "elasticsearch.component": "o.e.l.LicenseService", @@ -729,7 +729,7 @@ }, { "@timestamp": "2019-01-18T07:55:14.134Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.cluster.uuid": "GmvrbHlNTiSVYiPf8kxg9g", "elasticsearch.component": "o.e.g.GatewayService", @@ -746,7 +746,7 @@ }, { "@timestamp": "2019-01-18T07:55:51.725Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.cluster.uuid": "GmvrbHlNTiSVYiPf8kxg9g", "elasticsearch.component": "o.e.x.m.p.NativeController", @@ -763,7 +763,7 @@ }, { "@timestamp": "2019-01-18T07:55:51.726Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.cluster.uuid": "GmvrbHlNTiSVYiPf8kxg9g", "elasticsearch.component": "o.e.n.Node", @@ -780,7 +780,7 @@ }, { "@timestamp": "2019-01-18T07:55:51.739Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.cluster.uuid": "GmvrbHlNTiSVYiPf8kxg9g", "elasticsearch.component": "o.e.x.w.WatcherService", @@ -797,7 +797,7 @@ }, { "@timestamp": "2019-01-18T07:55:52.141Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.cluster.uuid": "GmvrbHlNTiSVYiPf8kxg9g", "elasticsearch.component": "o.e.n.Node", @@ -814,7 +814,7 @@ }, { "@timestamp": "2019-01-18T07:55:52.141Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.cluster.uuid": "GmvrbHlNTiSVYiPf8kxg9g", "elasticsearch.component": "o.e.n.Node", @@ -831,7 +831,7 @@ }, { "@timestamp": "2019-01-18T07:55:52.150Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.cluster.uuid": "GmvrbHlNTiSVYiPf8kxg9g", "elasticsearch.component": "o.e.n.Node", @@ -848,7 +848,7 @@ }, { "@timestamp": "2019-01-10T10:18:58.523Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "elasticsearch", "elasticsearch.component": "test", "elasticsearch.node.name": "sample-name", @@ -915,7 +915,7 @@ }, { "@timestamp": "2019-01-10T10:18:58.537Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "elasticsearch", "elasticsearch.component": "o.e.c.l.JsonLoggerTests", "elasticsearch.node.name": "sample-name", @@ -930,7 +930,7 @@ }, { "@timestamp": "2019-01-10T10:18:58.560Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "elasticsearch", "elasticsearch.component": "test", "elasticsearch.node.name": "sample-name", diff --git a/filebeat/module/elasticsearch/server/test/test.log-expected.json b/filebeat/module/elasticsearch/server/test/test.log-expected.json index 4c015f5d02c..9bccc35d3fc 100644 --- a/filebeat/module/elasticsearch/server/test/test.log-expected.json +++ b/filebeat/module/elasticsearch/server/test/test.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2018-05-17T08:29:12.177Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.c.m.MetaDataCreateIndexService", "elasticsearch.index.name": "test-filebeat-modules", "elasticsearch.node.name": "vWNJsZ3", @@ -16,7 +16,7 @@ }, { "@timestamp": "2018-05-17T08:19:35.939Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.n.Node", "elasticsearch.node.name": "", "event.dataset": "elasticsearch.server", @@ -30,7 +30,7 @@ }, { "@timestamp": "2018-05-17T08:19:36.089Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.e.NodeEnvironment", "elasticsearch.node.name": "vWNJsZ3", "event.dataset": "elasticsearch.server", @@ -44,7 +44,7 @@ }, { "@timestamp": "2018-05-17T08:19:36.090Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.e.NodeEnvironment", "elasticsearch.node.name": "vWNJsZ3", "event.dataset": "elasticsearch.server", @@ -58,7 +58,7 @@ }, { "@timestamp": "2018-05-17T08:19:36.116Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.n.Node", "event.dataset": "elasticsearch.server", "event.module": "elasticsearch", @@ -71,7 +71,7 @@ }, { "@timestamp": "2018-05-17T08:23:48.941Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.c.r.a.DiskThresholdMonitor", "elasticsearch.node.name": "vWNJsZ3", "event.dataset": "elasticsearch.server", @@ -85,7 +85,7 @@ }, { "@timestamp": "2018-05-17T08:29:09.245Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.c.m.MetaDataCreateIndexService", "elasticsearch.index.name": "filebeat-test-input", "elasticsearch.node.name": "vWNJsZ3", @@ -100,7 +100,7 @@ }, { "@timestamp": "2018-05-17T08:29:09.576Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.c.m.MetaDataMappingService", "elasticsearch.index.id": "aOGgDwbURfCV57AScqbCgw", "elasticsearch.index.name": "filebeat-test-input", @@ -116,7 +116,7 @@ }, { "@timestamp": "2018-07-09T12:47:33.959Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.c.m.MetaDataMappingService", "elasticsearch.index.id": "3tWftqb4RLKdyCAga9syGA", "elasticsearch.index.name": ".kibana", @@ -132,7 +132,7 @@ }, { "@timestamp": "2018-05-17T08:29:25.598Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.n.Node", "elasticsearch.node.name": "vWNJsZ3", "event.dataset": "elasticsearch.server", @@ -146,7 +146,7 @@ }, { "@timestamp": "2018-05-17T08:29:25.612Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.n.Node", "elasticsearch.node.name": "vWNJsZ3", "event.dataset": "elasticsearch.server", @@ -160,7 +160,7 @@ }, { "@timestamp": "2018-07-03T11:45:48.548Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.d.z.ZenDiscovery", "elasticsearch.node.name": "srvmulpvlsk252_md", "event.dataset": "elasticsearch.server", @@ -174,7 +174,7 @@ }, { "@timestamp": "2018-07-03T11:45:48.548Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.d.z.ZenDiscovery", "elasticsearch.node.name": "srvmulpvlsk252_md", "event.dataset": "elasticsearch.server", @@ -191,7 +191,7 @@ }, { "@timestamp": "2018-07-03T11:45:52.666Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "r.suppressed", "event.dataset": "elasticsearch.server", "event.module": "elasticsearch", @@ -207,7 +207,7 @@ }, { "@timestamp": "2018-07-03T11:48:02.552Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "r.suppressed", "event.dataset": "elasticsearch.server", "event.module": "elasticsearch", @@ -223,7 +223,7 @@ }, { "@timestamp": "2018-07-03T11:45:27.896Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.m.j.JvmGcMonitorService", "elasticsearch.node.name": "srvmulpvlsk252_md", "elasticsearch.server.gc.young.one": "3449979", @@ -242,7 +242,7 @@ }, { "@timestamp": "2018-07-03T11:45:45.604Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.m.j.JvmGcMonitorService", "elasticsearch.node.name": "srvmulpvlsk252_md", "elasticsearch.server.gc.collection_duration.ms": 1600.0, @@ -259,7 +259,7 @@ }, { "@timestamp": "2018-07-03T11:48:02.541Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.a.b.TransportShardBulkAction", "elasticsearch.node.name": "srvmulpvlsk252_md", "event.dataset": "elasticsearch.server", @@ -273,7 +273,7 @@ }, { "@timestamp": "2018-07-03T20:10:07.376Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.component": "o.e.x.m.MonitoringService", "elasticsearch.node.name": "srvmulpvlsk252_md", "event.dataset": "elasticsearch.server", diff --git a/filebeat/module/elasticsearch/slowlog/test/auditlog_index_indexing_slowlog.log-expected.json b/filebeat/module/elasticsearch/slowlog/test/auditlog_index_indexing_slowlog.log-expected.json index e5d67738dfc..9444ced2c68 100644 --- a/filebeat/module/elasticsearch/slowlog/test/auditlog_index_indexing_slowlog.log-expected.json +++ b/filebeat/module/elasticsearch/slowlog/test/auditlog_index_indexing_slowlog.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2018-07-04T21:51:29.536Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.index.id": "VLKxBLvUSYuIMKzpacGjRg", "elasticsearch.index.name": "metricbeat-6.3.0-2018.07.04", "elasticsearch.node.name": "v_VJhjV", @@ -23,7 +23,7 @@ }, { "@timestamp": "2018-07-04T21:51:29.537Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.index.id": "VLKxBLvUSYuIMKzpacGjRg", "elasticsearch.index.name": "metricbeat-6.3.0-2018.07.04", "elasticsearch.node.name": "v_VJhjV", @@ -45,7 +45,7 @@ }, { "@timestamp": "2018-07-04T21:51:29.538Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.index.id": "VLKxBLvUSYuIMKzpacGjRg", "elasticsearch.index.name": "metricbeat-6.3.0-2018.07.04", "elasticsearch.node.name": "v_VJhjV", @@ -67,7 +67,7 @@ }, { "@timestamp": "2018-07-04T21:51:30.411Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.index.id": "VLKxBLvUSYuIMKzpacGjRg", "elasticsearch.index.name": "metricbeat-6.3.0-2018.07.04", "elasticsearch.node.name": "v_VJhjV", @@ -88,7 +88,7 @@ }, { "@timestamp": "2018-07-04T21:51:30.963Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.index.id": "VLKxBLvUSYuIMKzpacGjRg", "elasticsearch.index.name": "metricbeat-6.3.0-2018.07.04", "elasticsearch.node.name": "v_VJhjV", @@ -110,7 +110,7 @@ }, { "@timestamp": "2018-07-04T21:51:30.965Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.index.id": "VLKxBLvUSYuIMKzpacGjRg", "elasticsearch.index.name": "metricbeat-6.3.0-2018.07.04", "elasticsearch.node.name": "v_VJhjV", diff --git a/filebeat/module/elasticsearch/slowlog/test/es_index_indexing_slowlog-json.log-expected.json b/filebeat/module/elasticsearch/slowlog/test/es_index_indexing_slowlog-json.log-expected.json index 74de3b8a203..cbeeab7e72e 100644 --- a/filebeat/module/elasticsearch/slowlog/test/es_index_indexing_slowlog-json.log-expected.json +++ b/filebeat/module/elasticsearch/slowlog/test/es_index_indexing_slowlog-json.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2019-01-29T07:35:54.170Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.cluster.uuid": "oqKkg2eoQh2P_KrKliI3DA", "elasticsearch.component": "i.i.s.index", @@ -26,7 +26,7 @@ }, { "@timestamp": "2019-01-29T07:35:58.359Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.cluster.uuid": "oqKkg2eoQh2P_KrKliI3DA", "elasticsearch.component": "i.i.s.index", diff --git a/filebeat/module/elasticsearch/slowlog/test/es_index_search_slowlog-json.log-expected.json b/filebeat/module/elasticsearch/slowlog/test/es_index_search_slowlog-json.log-expected.json index 9ea5fff1821..e97c7e09954 100644 --- a/filebeat/module/elasticsearch/slowlog/test/es_index_search_slowlog-json.log-expected.json +++ b/filebeat/module/elasticsearch/slowlog/test/es_index_search_slowlog-json.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2019-01-29T07:31:40.426Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.cluster.uuid": "oqKkg2eoQh2P_KrKliI3DA", "elasticsearch.component": "i.s.s.query", @@ -22,7 +22,7 @@ }, { "@timestamp": "2019-01-29T07:36:01.675Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.cluster.uuid": "oqKkg2eoQh2P_KrKliI3DA", "elasticsearch.component": "i.s.s.query", @@ -43,7 +43,7 @@ }, { "@timestamp": "2019-01-29T07:36:01.685Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.cluster.name": "distribution_run", "elasticsearch.cluster.uuid": "oqKkg2eoQh2P_KrKliI3DA", "elasticsearch.component": "i.s.s.fetch", diff --git a/filebeat/module/elasticsearch/slowlog/test/test.log-expected.json b/filebeat/module/elasticsearch/slowlog/test/test.log-expected.json index ec13bd7ce58..4cbb6017644 100644 --- a/filebeat/module/elasticsearch/slowlog/test/test.log-expected.json +++ b/filebeat/module/elasticsearch/slowlog/test/test.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2018-06-29T10:06:14.933Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.index.name": "metricbeat-6.3.0-2018.06.26", "elasticsearch.node.name": "v_VJhjV", "elasticsearch.shard.id": "0", @@ -28,7 +28,7 @@ }, { "@timestamp": "2018-06-29T10:06:14.943Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.index.name": "metricbeat-6.3.0-2018.06.26", "elasticsearch.node.name": "v_VJhjV", "elasticsearch.shard.id": "0", @@ -52,7 +52,7 @@ }, { "@timestamp": "2018-06-29T09:01:01.821Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.index.name": "metricbeat-6.3.0-2018.06.26", "elasticsearch.node.name": "v_VJhjV", "elasticsearch.shard.id": "0", @@ -76,7 +76,7 @@ }, { "@timestamp": "2018-06-29T09:01:01.827Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.index.name": "metricbeat-6.3.0-2018.06.26", "elasticsearch.node.name": "v_VJhjV", "elasticsearch.shard.id": "0", @@ -100,7 +100,7 @@ }, { "@timestamp": "2018-07-04T13:48:07.452Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.index.id": "VLKxBLvUSYuIMKzpacGjRg", "elasticsearch.index.name": "metricbeat-6.3.0-2018.07.04", "elasticsearch.node.name": "v_VJhjV", @@ -122,7 +122,7 @@ }, { "@timestamp": "2018-07-04T21:51:30.411Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "elasticsearch.index.id": "VLKxBLvUSYuIMKzpacGjRg", "elasticsearch.index.name": "metricbeat-6.3.0-2018.07.04", "elasticsearch.node.name": "v_VJhjV", diff --git a/filebeat/module/haproxy/log/test/default.log-expected.json b/filebeat/module/haproxy/log/test/default.log-expected.json index efedfabf69c..bf1982fda86 100644 --- a/filebeat/module/haproxy/log/test/default.log-expected.json +++ b/filebeat/module/haproxy/log/test/default.log-expected.json @@ -2,7 +2,7 @@ { "destination.ip": "1.2.3.4", "destination.port": 5000, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "haproxy.log", "event.module": "haproxy", "fileset.name": "log", diff --git a/filebeat/module/haproxy/log/test/haproxy.log-expected.json b/filebeat/module/haproxy/log/test/haproxy.log-expected.json index 6ebe02ae203..311129d4eef 100644 --- a/filebeat/module/haproxy/log/test/haproxy.log-expected.json +++ b/filebeat/module/haproxy/log/test/haproxy.log-expected.json @@ -1,6 +1,6 @@ [ { - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "haproxy.log", "event.duration": 2000000, "event.module": "haproxy", diff --git a/filebeat/module/haproxy/log/test/httplog-no-headers.log-expected.json b/filebeat/module/haproxy/log/test/httplog-no-headers.log-expected.json index 970b30f90bf..906e10eac46 100644 --- a/filebeat/module/haproxy/log/test/httplog-no-headers.log-expected.json +++ b/filebeat/module/haproxy/log/test/httplog-no-headers.log-expected.json @@ -1,6 +1,6 @@ [ { - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "haproxy.log", "event.duration": 0, "event.module": "haproxy", @@ -36,7 +36,7 @@ "source.port": 35982 }, { - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "haproxy.log", "event.duration": 0, "event.module": "haproxy", @@ -72,7 +72,7 @@ "source.port": 43738 }, { - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "haproxy.log", "event.duration": 0, "event.module": "haproxy", diff --git a/filebeat/module/haproxy/log/test/tcplog.log-expected.json b/filebeat/module/haproxy/log/test/tcplog.log-expected.json index 439e4dc2168..36c117065ef 100644 --- a/filebeat/module/haproxy/log/test/tcplog.log-expected.json +++ b/filebeat/module/haproxy/log/test/tcplog.log-expected.json @@ -1,6 +1,6 @@ [ { - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "haproxy.log", "event.duration": 1000000, "event.module": "haproxy", diff --git a/filebeat/module/icinga/debug/test/test.log-expected.json b/filebeat/module/icinga/debug/test/test.log-expected.json index a6f72f16492..efa0770fa53 100644 --- a/filebeat/module/icinga/debug/test/test.log-expected.json +++ b/filebeat/module/icinga/debug/test/test.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2017-04-04T11:43:09.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "icinga.debug", "event.module": "icinga", "fileset.name": "debug", @@ -14,7 +14,7 @@ }, { "@timestamp": "2017-04-04T11:43:09.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "icinga.debug", "event.module": "icinga", "fileset.name": "debug", @@ -27,7 +27,7 @@ }, { "@timestamp": "2017-04-04T11:43:11.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "icinga.debug", "event.module": "icinga", "fileset.name": "debug", diff --git a/filebeat/module/icinga/main/test/test.log-expected.json b/filebeat/module/icinga/main/test/test.log-expected.json index 88f2ed51826..b922fac0b83 100644 --- a/filebeat/module/icinga/main/test/test.log-expected.json +++ b/filebeat/module/icinga/main/test/test.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2017-04-04T09:16:34.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "icinga.main", "event.module": "icinga", "fileset.name": "main", @@ -14,7 +14,7 @@ }, { "@timestamp": "2017-04-04T09:16:34.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "icinga.main", "event.module": "icinga", "fileset.name": "main", @@ -30,7 +30,7 @@ }, { "@timestamp": "2017-04-04T09:16:48.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "icinga.main", "event.module": "icinga", "fileset.name": "main", diff --git a/filebeat/module/icinga/startup/test/test.log-expected.json b/filebeat/module/icinga/startup/test/test.log-expected.json index 78d16bfe6e9..8a9b0566dad 100644 --- a/filebeat/module/icinga/startup/test/test.log-expected.json +++ b/filebeat/module/icinga/startup/test/test.log-expected.json @@ -1,6 +1,6 @@ [ { - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "icinga.startup", "event.module": "icinga", "fileset.name": "startup", @@ -12,7 +12,7 @@ "service.type": "icinga" }, { - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "icinga.startup", "event.module": "icinga", "fileset.name": "startup", diff --git a/filebeat/module/iis/access/test/test-iis-7.5.log-expected.json b/filebeat/module/iis/access/test/test-iis-7.5.log-expected.json index d7f98b577d4..642a6c38cd5 100644 --- a/filebeat/module/iis/access/test/test-iis-7.5.log-expected.json +++ b/filebeat/module/iis/access/test/test-iis-7.5.log-expected.json @@ -4,7 +4,7 @@ "destination.address": "10.100.220.70", "destination.ip": "10.100.220.70", "destination.port": 80, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iis.access", "event.duration": 792000000, "event.module": "iis", diff --git a/filebeat/module/iis/access/test/test-ipv6zone.log-expected.json b/filebeat/module/iis/access/test/test-ipv6zone.log-expected.json index e025eab6647..15238c225a4 100644 --- a/filebeat/module/iis/access/test/test-ipv6zone.log-expected.json +++ b/filebeat/module/iis/access/test/test-ipv6zone.log-expected.json @@ -5,7 +5,7 @@ "destination.domain": "example.com", "destination.ip": "::1", "destination.port": 80, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iis.access", "event.duration": 789000000, "event.module": "iis", diff --git a/filebeat/module/iis/access/test/test.log-expected.json b/filebeat/module/iis/access/test/test.log-expected.json index c2922c338d1..9bc8586de20 100644 --- a/filebeat/module/iis/access/test/test.log-expected.json +++ b/filebeat/module/iis/access/test/test.log-expected.json @@ -4,7 +4,7 @@ "destination.address": "127.0.0.1", "destination.ip": "127.0.0.1", "destination.port": 80, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iis.access", "event.duration": 123000000, "event.module": "iis", @@ -39,7 +39,7 @@ "@timestamp": "2018-01-01T09:10:11.000Z", "destination.domain": "example.com", "destination.port": 80, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iis.access", "event.duration": 789000000, "event.module": "iis", @@ -73,7 +73,7 @@ "destination.domain": "example.com", "destination.ip": "127.0.0.1", "destination.port": 80, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iis.access", "event.duration": 789000000, "event.module": "iis", diff --git a/filebeat/module/iis/error/test/ipv6_zone_id.log-expected.json b/filebeat/module/iis/error/test/ipv6_zone_id.log-expected.json index 33b85d9f4ef..f3c8c5e6434 100644 --- a/filebeat/module/iis/error/test/ipv6_zone_id.log-expected.json +++ b/filebeat/module/iis/error/test/ipv6_zone_id.log-expected.json @@ -4,7 +4,7 @@ "destination.address": "::1%0", "destination.ip": "::1", "destination.port": 80, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iis.error", "event.module": "iis", "fileset.name": "error", diff --git a/filebeat/module/iis/error/test/test.log-expected.json b/filebeat/module/iis/error/test/test.log-expected.json index 3208798ccd9..8dec1731847 100644 --- a/filebeat/module/iis/error/test/test.log-expected.json +++ b/filebeat/module/iis/error/test/test.log-expected.json @@ -4,7 +4,7 @@ "destination.address": "172.31.77.6", "destination.ip": "172.31.77.6", "destination.port": 80, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iis.error", "event.module": "iis", "fileset.name": "error", @@ -26,7 +26,7 @@ "destination.address": "127.0.0.1", "destination.ip": "127.0.0.1", "destination.port": 80, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iis.error", "event.module": "iis", "fileset.name": "error", @@ -55,7 +55,7 @@ "destination.address": "127.0.0.1", "destination.ip": "127.0.0.1", "destination.port": 80, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iis.error", "event.module": "iis", "fileset.name": "error", @@ -84,7 +84,7 @@ "destination.address": "127.0.0.1", "destination.ip": "127.0.0.1", "destination.port": 80, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iis.error", "event.module": "iis", "fileset.name": "error", diff --git a/filebeat/module/kafka/log/test/controller.log-expected.json b/filebeat/module/kafka/log/test/controller.log-expected.json index 5705de83c0d..cf67a211f1f 100644 --- a/filebeat/module/kafka/log/test/controller.log-expected.json +++ b/filebeat/module/kafka/log/test/controller.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2017-08-04T10:48:21.048Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -15,7 +15,7 @@ }, { "@timestamp": "2017-08-04T10:48:21.063Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -29,7 +29,7 @@ }, { "@timestamp": "2017-08-04T10:48:21.064Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -43,7 +43,7 @@ }, { "@timestamp": "2017-08-04T10:48:21.082Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -57,7 +57,7 @@ }, { "@timestamp": "2017-08-04T10:48:21.085Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -71,7 +71,7 @@ }, { "@timestamp": "2017-08-04T10:48:21.154Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -85,7 +85,7 @@ }, { "@timestamp": "2017-08-04T10:48:21.156Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -99,7 +99,7 @@ }, { "@timestamp": "2017-08-04T10:48:21.157Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -113,7 +113,7 @@ }, { "@timestamp": "2017-08-04T10:48:21.165Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -127,7 +127,7 @@ }, { "@timestamp": "2017-08-04T11:44:22.588Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -141,7 +141,7 @@ }, { "@timestamp": "2017-08-04T11:44:25.094Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -155,7 +155,7 @@ }, { "@timestamp": "2017-08-04T11:44:25.095Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -169,7 +169,7 @@ }, { "@timestamp": "2017-08-04T11:44:25.097Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -183,7 +183,7 @@ }, { "@timestamp": "2017-08-04T11:44:25.099Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -197,7 +197,7 @@ }, { "@timestamp": "2017-08-04T11:44:25.100Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -211,7 +211,7 @@ }, { "@timestamp": "2017-08-04T11:44:25.105Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -225,7 +225,7 @@ }, { "@timestamp": "2017-08-04T11:44:25.111Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -239,7 +239,7 @@ }, { "@timestamp": "2017-08-04T11:44:25.112Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -253,7 +253,7 @@ }, { "@timestamp": "2017-08-04T11:44:25.112Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -267,7 +267,7 @@ }, { "@timestamp": "2017-08-04T11:44:25.113Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", diff --git a/filebeat/module/kafka/log/test/server.log-expected.json b/filebeat/module/kafka/log/test/server.log-expected.json index 5199221e1bb..fe4d64749f1 100644 --- a/filebeat/module/kafka/log/test/server.log-expected.json +++ b/filebeat/module/kafka/log/test/server.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2017-08-04T10:48:20.377Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -15,7 +15,7 @@ }, { "@timestamp": "2017-08-04T10:48:20.379Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -29,7 +29,7 @@ }, { "@timestamp": "2017-08-04T10:48:20.400Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -43,7 +43,7 @@ }, { "@timestamp": "2017-08-04T10:48:20.400Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -57,7 +57,7 @@ }, { "@timestamp": "2017-08-04T10:48:20.401Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -71,7 +71,7 @@ }, { "@timestamp": "2017-08-04T10:48:20.413Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -85,7 +85,7 @@ }, { "@timestamp": "2017-08-04T10:48:20.415Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -99,7 +99,7 @@ }, { "@timestamp": "2017-08-04T10:48:20.420Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -113,7 +113,7 @@ }, { "@timestamp": "2017-08-04T10:48:20.457Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -127,7 +127,7 @@ }, { "@timestamp": "2017-08-04T10:48:20.458Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -141,7 +141,7 @@ }, { "@timestamp": "2017-08-04T10:48:20.748Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -155,7 +155,7 @@ }, { "@timestamp": "2017-08-04T10:48:20.800Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -169,7 +169,7 @@ }, { "@timestamp": "2017-08-04T10:48:20.866Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -183,7 +183,7 @@ }, { "@timestamp": "2017-08-04T10:48:20.873Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -197,7 +197,7 @@ }, { "@timestamp": "2017-08-04T10:48:21.062Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -211,7 +211,7 @@ }, { "@timestamp": "2017-08-04T10:48:21.063Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -225,7 +225,7 @@ }, { "@timestamp": "2017-08-04T10:48:21.095Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -239,7 +239,7 @@ }, { "@timestamp": "2017-08-04T10:48:21.127Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -253,7 +253,7 @@ }, { "@timestamp": "2017-08-04T10:48:21.162Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", @@ -267,7 +267,7 @@ }, { "@timestamp": "2017-08-04T10:48:21.167Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", diff --git a/filebeat/module/kafka/log/test/state-change-1.1.0.log-expected.json b/filebeat/module/kafka/log/test/state-change-1.1.0.log-expected.json index 029085f28e5..e2c49422238 100644 --- a/filebeat/module/kafka/log/test/state-change-1.1.0.log-expected.json +++ b/filebeat/module/kafka/log/test/state-change-1.1.0.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2018-07-16T10:17:06.489Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", diff --git a/filebeat/module/kafka/log/test/state-change-2.0.0.log-expected.json b/filebeat/module/kafka/log/test/state-change-2.0.0.log-expected.json index e0bddd1a28f..fecdbfee0fa 100644 --- a/filebeat/module/kafka/log/test/state-change-2.0.0.log-expected.json +++ b/filebeat/module/kafka/log/test/state-change-2.0.0.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2018-10-31T15:09:30.451Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", diff --git a/filebeat/module/kafka/log/test/state-change.log-expected.json b/filebeat/module/kafka/log/test/state-change.log-expected.json index bef77bc3455..99ba94f9c51 100644 --- a/filebeat/module/kafka/log/test/state-change.log-expected.json +++ b/filebeat/module/kafka/log/test/state-change.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2017-08-04T10:48:21.428Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kafka.log", "event.module": "kafka", "fileset.name": "log", diff --git a/filebeat/module/kibana/log/test/test.log-expected.json b/filebeat/module/kibana/log/test/test.log-expected.json index 96ec123ed68..41425ecdcdc 100644 --- a/filebeat/module/kibana/log/test/test.log-expected.json +++ b/filebeat/module/kibana/log/test/test.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2018-05-09T10:57:55.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kibana.log", "event.duration": 26000000, "event.module": "kibana", @@ -36,7 +36,7 @@ }, { "@timestamp": "2018-05-09T10:59:12.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kibana.log", "event.module": "kibana", "fileset.name": "log", @@ -57,7 +57,7 @@ }, { "@timestamp": "2018-05-09T10:59:12.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "kibana.log", "event.module": "kibana", "fileset.name": "log", diff --git a/filebeat/module/logstash/log/test/logstash-json.log-expected.json b/filebeat/module/logstash/log/test/logstash-json.log-expected.json index f9d1bb97429..898cc27bb96 100644 --- a/filebeat/module/logstash/log/test/logstash-json.log-expected.json +++ b/filebeat/module/logstash/log/test/logstash-json.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2019-01-07T21:25:21.871Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "logstash.log", "event.module": "logstash", "fileset.name": "log", diff --git a/filebeat/module/logstash/log/test/logstash-plain.log-expected.json b/filebeat/module/logstash/log/test/logstash-plain.log-expected.json index 29a5f2c3498..cc001ad153c 100644 --- a/filebeat/module/logstash/log/test/logstash-plain.log-expected.json +++ b/filebeat/module/logstash/log/test/logstash-plain.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2017-10-23T14:20:12.046Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "logstash.log", "event.module": "logstash", "fileset.name": "log", @@ -14,7 +14,7 @@ }, { "@timestamp": "2017-11-20T03:55:00.318Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "logstash.log", "event.module": "logstash", "fileset.name": "log", diff --git a/filebeat/module/logstash/slowlog/test/slowlog-json.log-expected.json b/filebeat/module/logstash/slowlog/test/slowlog-json.log-expected.json index ab0631970f4..50e038e6f4a 100644 --- a/filebeat/module/logstash/slowlog/test/slowlog-json.log-expected.json +++ b/filebeat/module/logstash/slowlog/test/slowlog-json.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2019-01-08T14:58:35.605Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "logstash.slowlog", "event.duration": 5026401704, "event.module": "logstash", diff --git a/filebeat/module/logstash/slowlog/test/slowlog-plain.log-expected.json b/filebeat/module/logstash/slowlog/test/slowlog-plain.log-expected.json index bb454ed5b0d..a6b5633d097 100644 --- a/filebeat/module/logstash/slowlog/test/slowlog-plain.log-expected.json +++ b/filebeat/module/logstash/slowlog/test/slowlog-plain.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2017-10-30T09:57:58.243Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "logstash.slowlog", "event.duration": 3027675106, "event.module": "logstash", diff --git a/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log-expected.json b/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log-expected.json index d1e480cac50..24c4ae1c51b 100644 --- a/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log-expected.json +++ b/filebeat/module/mongodb/log/test/mongodb-debian-3.2.11.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2018-02-05T12:44:56.657Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mongodb.log", "event.module": "mongodb", "fileset.name": "log", @@ -15,7 +15,7 @@ }, { "@timestamp": "2018-02-05T12:44:56.657Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mongodb.log", "event.module": "mongodb", "fileset.name": "log", @@ -29,7 +29,7 @@ }, { "@timestamp": "2018-02-05T12:44:56.657Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mongodb.log", "event.module": "mongodb", "fileset.name": "log", @@ -43,7 +43,7 @@ }, { "@timestamp": "2018-02-05T12:44:56.677Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mongodb.log", "event.module": "mongodb", "fileset.name": "log", @@ -57,7 +57,7 @@ }, { "@timestamp": "2018-02-05T12:44:56.724Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mongodb.log", "event.module": "mongodb", "fileset.name": "log", @@ -71,7 +71,7 @@ }, { "@timestamp": "2018-02-05T12:44:56.724Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mongodb.log", "event.module": "mongodb", "fileset.name": "log", @@ -85,7 +85,7 @@ }, { "@timestamp": "2018-02-05T12:44:56.744Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mongodb.log", "event.module": "mongodb", "fileset.name": "log", @@ -99,7 +99,7 @@ }, { "@timestamp": "2018-02-05T12:50:55.170Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mongodb.log", "event.module": "mongodb", "fileset.name": "log", @@ -113,7 +113,7 @@ }, { "@timestamp": "2018-02-05T12:50:55.487Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mongodb.log", "event.module": "mongodb", "fileset.name": "log", @@ -127,7 +127,7 @@ }, { "@timestamp": "2018-02-05T13:49:45.606Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mongodb.log", "event.module": "mongodb", "fileset.name": "log", @@ -141,7 +141,7 @@ }, { "@timestamp": "2018-02-05T13:49:45.606Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mongodb.log", "event.module": "mongodb", "fileset.name": "log", @@ -155,7 +155,7 @@ }, { "@timestamp": "2018-02-05T13:49:45.606Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mongodb.log", "event.module": "mongodb", "fileset.name": "log", @@ -169,7 +169,7 @@ }, { "@timestamp": "2018-02-05T13:49:45.606Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mongodb.log", "event.module": "mongodb", "fileset.name": "log", @@ -183,7 +183,7 @@ }, { "@timestamp": "2018-02-05T13:49:45.606Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mongodb.log", "event.module": "mongodb", "fileset.name": "log", @@ -197,7 +197,7 @@ }, { "@timestamp": "2018-02-05T13:49:45.688Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mongodb.log", "event.module": "mongodb", "fileset.name": "log", @@ -211,7 +211,7 @@ }, { "@timestamp": "2018-02-05T12:44:56.657Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mongodb.log", "event.module": "mongodb", "fileset.name": "log", @@ -225,7 +225,7 @@ }, { "@timestamp": "2018-02-05T12:44:56.657Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mongodb.log", "event.module": "mongodb", "fileset.name": "log", @@ -239,7 +239,7 @@ }, { "@timestamp": "2018-02-05T12:44:56.657Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mongodb.log", "event.module": "mongodb", "fileset.name": "log", @@ -253,7 +253,7 @@ }, { "@timestamp": "2018-02-05T12:44:56.657Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mongodb.log", "event.module": "mongodb", "fileset.name": "log", @@ -267,7 +267,7 @@ }, { "@timestamp": "2018-02-05T12:50:55.170Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mongodb.log", "event.module": "mongodb", "fileset.name": "log", @@ -281,7 +281,7 @@ }, { "@timestamp": "2018-02-05T12:50:56.180Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mongodb.log", "event.module": "mongodb", "fileset.name": "log", @@ -295,7 +295,7 @@ }, { "@timestamp": "2018-02-05T13:15:42.095Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mongodb.log", "event.module": "mongodb", "fileset.name": "log", @@ -309,7 +309,7 @@ }, { "@timestamp": "2018-02-05T13:49:45.606Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mongodb.log", "event.module": "mongodb", "fileset.name": "log", @@ -323,7 +323,7 @@ }, { "@timestamp": "2018-02-05T13:49:45.606Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mongodb.log", "event.module": "mongodb", "fileset.name": "log", @@ -337,7 +337,7 @@ }, { "@timestamp": "2018-02-05T13:49:45.688Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mongodb.log", "event.module": "mongodb", "fileset.name": "log", @@ -351,7 +351,7 @@ }, { "@timestamp": "2018-02-05T12:44:56.657Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mongodb.log", "event.module": "mongodb", "fileset.name": "log", @@ -365,7 +365,7 @@ }, { "@timestamp": "2018-02-05T12:44:56.657Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mongodb.log", "event.module": "mongodb", "fileset.name": "log", @@ -379,7 +379,7 @@ }, { "@timestamp": "2018-02-05T12:44:56.657Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mongodb.log", "event.module": "mongodb", "fileset.name": "log", @@ -393,7 +393,7 @@ }, { "@timestamp": "2018-02-05T12:50:55.487Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mongodb.log", "event.module": "mongodb", "fileset.name": "log", @@ -407,7 +407,7 @@ }, { "@timestamp": "2018-02-05T12:50:56.180Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mongodb.log", "event.module": "mongodb", "fileset.name": "log", @@ -421,7 +421,7 @@ }, { "@timestamp": "2018-02-05T13:11:41.401Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mongodb.log", "event.module": "mongodb", "fileset.name": "log", @@ -435,7 +435,7 @@ }, { "@timestamp": "2018-02-05T13:49:45.605Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mongodb.log", "event.module": "mongodb", "fileset.name": "log", @@ -449,7 +449,7 @@ }, { "@timestamp": "2018-02-05T13:49:45.605Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mongodb.log", "event.module": "mongodb", "fileset.name": "log", @@ -463,7 +463,7 @@ }, { "@timestamp": "2018-02-05T13:49:45.606Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mongodb.log", "event.module": "mongodb", "fileset.name": "log", diff --git a/filebeat/module/mysql/error/test/error.log-expected.json b/filebeat/module/mysql/error/test/error.log-expected.json index 486756d8a26..b6e9e59c329 100644 --- a/filebeat/module/mysql/error/test/error.log-expected.json +++ b/filebeat/module/mysql/error/test/error.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2016-12-09T13:08:33.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mysql.error", "event.module": "mysql", "fileset.name": "error", @@ -12,7 +12,7 @@ }, { "@timestamp": "2016-12-09T12:08:33.335Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mysql.error", "event.module": "mysql", "fileset.name": "error", @@ -25,7 +25,7 @@ }, { "@timestamp": "2016-12-09T12:08:33.335Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mysql.error", "event.module": "mysql", "fileset.name": "error", @@ -38,7 +38,7 @@ }, { "@timestamp": "2016-12-09T12:08:33.336Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mysql.error", "event.module": "mysql", "fileset.name": "error", @@ -51,7 +51,7 @@ }, { "@timestamp": "2016-12-09T12:08:33.345Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mysql.error", "event.module": "mysql", "fileset.name": "error", @@ -64,7 +64,7 @@ }, { "@timestamp": "2016-12-09T12:08:33.351Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mysql.error", "event.module": "mysql", "fileset.name": "error", @@ -77,7 +77,7 @@ }, { "@timestamp": "2016-12-09T12:08:33.784Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mysql.error", "event.module": "mysql", "fileset.name": "error", @@ -89,7 +89,7 @@ "service.type": "mysql" }, { - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mysql.error", "event.module": "mysql", "fileset.name": "error", @@ -100,7 +100,7 @@ }, { "@timestamp": "2016-12-09T22:21:02.443Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mysql.error", "event.module": "mysql", "fileset.name": "error", @@ -113,7 +113,7 @@ }, { "@timestamp": "2016-12-09T14:18:50.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mysql.error", "event.module": "mysql", "fileset.name": "error", @@ -125,7 +125,7 @@ }, { "@timestamp": "2016-12-09T14:18:50.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mysql.error", "event.module": "mysql", "fileset.name": "error", @@ -137,7 +137,7 @@ }, { "@timestamp": "2016-12-09T14:18:50.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mysql.error", "event.module": "mysql", "fileset.name": "error", diff --git a/filebeat/module/mysql/slowlog/test/mariadb-10.1.21.log-expected.json b/filebeat/module/mysql/slowlog/test/mariadb-10.1.21.log-expected.json index 24b9728d6fb..1a149b8256b 100644 --- a/filebeat/module/mysql/slowlog/test/mariadb-10.1.21.log-expected.json +++ b/filebeat/module/mysql/slowlog/test/mariadb-10.1.21.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2018-06-13T14:04:36.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mysql.slowlog", "event.duration": 2000652000, "event.module": "mysql", diff --git a/filebeat/module/mysql/slowlog/test/mariadb-10.2.12.log-expected.json b/filebeat/module/mysql/slowlog/test/mariadb-10.2.12.log-expected.json index 7a331caecc6..8035013dc54 100644 --- a/filebeat/module/mysql/slowlog/test/mariadb-10.2.12.log-expected.json +++ b/filebeat/module/mysql/slowlog/test/mariadb-10.2.12.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2019-01-17T16:04:03.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mysql.slowlog", "event.duration": 2000227000, "event.module": "mysql", @@ -25,7 +25,7 @@ }, { "@timestamp": "2019-01-17T16:04:18.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mysql.slowlog", "event.duration": 178306016000, "event.module": "mysql", diff --git a/filebeat/module/mysql/slowlog/test/mariadb-explain.log-expected.json b/filebeat/module/mysql/slowlog/test/mariadb-explain.log-expected.json index 4050aa4ddc2..757f8c14fff 100644 --- a/filebeat/module/mysql/slowlog/test/mariadb-explain.log-expected.json +++ b/filebeat/module/mysql/slowlog/test/mariadb-explain.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2013-11-12T13:03:32.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mysql.slowlog", "event.duration": 5524103000, "event.module": "mysql", diff --git a/filebeat/module/mysql/slowlog/test/mysql-5.7.22.log-expected.json b/filebeat/module/mysql/slowlog/test/mysql-5.7.22.log-expected.json index 3036d664435..fe503aada20 100644 --- a/filebeat/module/mysql/slowlog/test/mysql-5.7.22.log-expected.json +++ b/filebeat/module/mysql/slowlog/test/mysql-5.7.22.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2018-08-07T08:27:47.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mysql.slowlog", "event.duration": 15000223000, "event.module": "mysql", @@ -23,7 +23,7 @@ }, { "@timestamp": "2018-08-07T08:27:47.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mysql.slowlog", "event.duration": 153000, "event.module": "mysql", @@ -44,7 +44,7 @@ }, { "@timestamp": "2018-08-07T08:27:47.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mysql.slowlog", "event.duration": 4071491000, "event.module": "mysql", @@ -67,7 +67,7 @@ }, { "@timestamp": "2018-08-07T08:27:47.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mysql.slowlog", "event.duration": 10346539000, "event.module": "mysql", diff --git a/filebeat/module/mysql/slowlog/test/percona-ubuntu-5.7.19-innodb.log-expected.json b/filebeat/module/mysql/slowlog/test/percona-ubuntu-5.7.19-innodb.log-expected.json index 770d0d44980..9420e1c57e1 100644 --- a/filebeat/module/mysql/slowlog/test/percona-ubuntu-5.7.19-innodb.log-expected.json +++ b/filebeat/module/mysql/slowlog/test/percona-ubuntu-5.7.19-innodb.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2019-01-21T06:36:03.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mysql.slowlog", "event.duration": 50365000, "event.module": "mysql", @@ -40,7 +40,7 @@ }, { "@timestamp": "2019-01-21T09:15:36.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "mysql.slowlog", "event.duration": 153883488000, "event.module": "mysql", diff --git a/filebeat/module/nats/log/test/test.log-expected.json b/filebeat/module/nats/log/test/test.log-expected.json index b0e19a5b88a..482ac2b89ae 100644 --- a/filebeat/module/nats/log/test/test.log-expected.json +++ b/filebeat/module/nats/log/test/test.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2019-02-06T07:19:40.624Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "nats.log", "event.module": "nats", "fileset.name": "log", @@ -14,7 +14,7 @@ }, { "@timestamp": "2019-02-06T07:19:40.624Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "nats.log", "event.module": "nats", "fileset.name": "log", @@ -27,7 +27,7 @@ }, { "@timestamp": "2019-02-06T07:19:40.624Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "nats.log", "event.module": "nats", "fileset.name": "log", @@ -40,7 +40,7 @@ }, { "@timestamp": "2019-02-06T07:19:40.624Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "nats.log", "event.module": "nats", "fileset.name": "log", @@ -55,7 +55,7 @@ "@timestamp": "2019-02-06T07:20:08.508Z", "client.ip": "172.18.0.1", "client.port": "38630", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "nats.log", "event.module": "nats", "fileset.name": "log", @@ -71,7 +71,7 @@ "@timestamp": "2019-02-06T07:20:08.510Z", "client.ip": "172.18.0.1", "client.port": "38630", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "nats.log", "event.module": "nats", "fileset.name": "log", @@ -89,7 +89,7 @@ "@timestamp": "2019-02-06T07:20:08.512Z", "client.ip": "172.18.0.1", "client.port": "38630", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "nats.log", "event.module": "nats", "fileset.name": "log", @@ -108,7 +108,7 @@ "@timestamp": "2019-02-06T07:20:08.512Z", "client.ip": "172.18.0.1", "client.port": "38630", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "nats.log", "event.module": "nats", "fileset.name": "log", @@ -125,7 +125,7 @@ "@timestamp": "2019-02-06T07:20:08.512Z", "client.ip": "172.18.0.1", "client.port": "38630", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "nats.log", "event.module": "nats", "fileset.name": "log", @@ -142,7 +142,7 @@ "@timestamp": "2019-02-04T15:40:02.717Z", "client.ip": "50.39.246.116", "client.port": "62388", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "nats.log", "event.module": "nats", "fileset.name": "log", @@ -162,7 +162,7 @@ "@timestamp": "2019-02-04T15:40:02.717Z", "client.ip": "50.39.246.116", "client.port": "62388", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "nats.log", "event.module": "nats", "fileset.name": "log", @@ -179,7 +179,7 @@ "@timestamp": "2019-02-04T15:40:02.717Z", "client.ip": "192.168.176.11", "client.port": "36262", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "nats.log", "event.module": "nats", "fileset.name": "log", @@ -200,7 +200,7 @@ "@timestamp": "2019-02-04T15:40:02.718Z", "client.ip": "192.168.176.11", "client.port": "36262", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "nats.log", "event.module": "nats", "fileset.name": "log", @@ -219,7 +219,7 @@ "@timestamp": "2019-02-04T15:40:02.718Z", "client.ip": "192.168.176.11", "client.port": "36262", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "nats.log", "event.module": "nats", "fileset.name": "log", @@ -236,7 +236,7 @@ "@timestamp": "2019-02-04T15:40:02.718Z", "client.ip": "50.39.246.116", "client.port": "62388", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "nats.log", "event.module": "nats", "fileset.name": "log", @@ -256,7 +256,7 @@ "@timestamp": "2019-02-04T15:40:02.717Z", "client.ip": "50.39.246.116", "client.port": "62388", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "nats.log", "event.module": "nats", "fileset.name": "log", @@ -275,7 +275,7 @@ "@timestamp": "2019-02-04T15:40:02.717Z", "client.ip": "192.168.176.11", "client.port": "36262", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "nats.log", "event.module": "nats", "fileset.name": "log", @@ -295,7 +295,7 @@ "@timestamp": "2019-02-16T07:20:08.512Z", "client.ip": "172.18.0.1", "client.port": "38630", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "nats.log", "event.module": "nats", "fileset.name": "log", diff --git a/filebeat/module/nginx/access/test/test.log-expected.json b/filebeat/module/nginx/access/test/test.log-expected.json index 28e35651b1e..4028baf9964 100644 --- a/filebeat/module/nginx/access/test/test.log-expected.json +++ b/filebeat/module/nginx/access/test/test.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2016-12-07T10:05:07.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "nginx.access", "event.module": "nginx", "fileset.name": "access", @@ -32,7 +32,7 @@ }, { "@timestamp": "2017-05-29T19:02:48.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "nginx.access", "event.module": "nginx", "fileset.name": "access", @@ -59,7 +59,7 @@ }, { "@timestamp": "2016-12-07T10:05:07.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "nginx.access", "event.module": "nginx", "fileset.name": "access", @@ -97,7 +97,7 @@ }, { "@timestamp": "2016-12-07T10:05:07.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "nginx.access", "event.module": "nginx", "fileset.name": "access", @@ -133,7 +133,7 @@ }, { "@timestamp": "2016-01-22T13:18:29.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "nginx.access", "event.module": "nginx", "fileset.name": "access", @@ -168,7 +168,7 @@ }, { "@timestamp": "2016-12-30T06:47:09.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "nginx.access", "event.module": "nginx", "fileset.name": "access", @@ -200,7 +200,7 @@ }, { "@timestamp": "2018-04-12T07:48:40.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "nginx.access", "event.module": "nginx", "fileset.name": "access", diff --git a/filebeat/module/nginx/error/test/error.log-expected.json b/filebeat/module/nginx/error/test/error.log-expected.json index 7c27f95c9f9..e9296a82070 100644 --- a/filebeat/module/nginx/error/test/error.log-expected.json +++ b/filebeat/module/nginx/error/test/error.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2016-10-25T14:49:34.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "nginx.error", "event.module": "nginx", "fileset.name": "error", @@ -16,7 +16,7 @@ }, { "@timestamp": "2016-10-25T14:50:44.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "nginx.error", "event.module": "nginx", "fileset.name": "error", diff --git a/filebeat/module/osquery/result/test/test.log-expected.json b/filebeat/module/osquery/result/test/test.log-expected.json index 6a833e74294..19387ca1090 100644 --- a/filebeat/module/osquery/result/test/test.log-expected.json +++ b/filebeat/module/osquery/result/test/test.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2017-12-28T14:40:08.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "osquery.result", "event.module": "osquery", "fileset.name": "result", diff --git a/filebeat/module/postgresql/log/test/postgresql-9.6-debian-with-slowlog.log-expected.json b/filebeat/module/postgresql/log/test/postgresql-9.6-debian-with-slowlog.log-expected.json index 6dfe9c270c8..126b93ca0de 100644 --- a/filebeat/module/postgresql/log/test/postgresql-9.6-debian-with-slowlog.log-expected.json +++ b/filebeat/module/postgresql/log/test/postgresql-9.6-debian-with-slowlog.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2017-07-31T13:36:42.585Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "postgresql.log", "event.module": "postgresql", "event.timezone": "CEST", @@ -16,7 +16,7 @@ }, { "@timestamp": "2017-07-31T13:36:42.605Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "postgresql.log", "event.module": "postgresql", "event.timezone": "CEST", @@ -31,7 +31,7 @@ }, { "@timestamp": "2017-07-31T13:36:42.615Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "postgresql.log", "event.module": "postgresql", "event.timezone": "CEST", @@ -46,7 +46,7 @@ }, { "@timestamp": "2017-07-31T13:36:42.616Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "postgresql.log", "event.module": "postgresql", "event.timezone": "CEST", @@ -61,7 +61,7 @@ }, { "@timestamp": "2017-07-31T13:36:42.956Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "postgresql.log", "event.module": "postgresql", "event.timezone": "CEST", @@ -78,7 +78,7 @@ }, { "@timestamp": "2017-07-31T13:36:43.557Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "postgresql.log", "event.duration": 37118000, "event.module": "postgresql", @@ -100,7 +100,7 @@ }, { "@timestamp": "2017-07-31T13:36:44.104Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "postgresql.log", "event.duration": 2895000, "event.module": "postgresql", @@ -122,7 +122,7 @@ }, { "@timestamp": "2017-07-31T13:36:44.642Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "postgresql.log", "event.duration": 2809000, "event.module": "postgresql", @@ -144,7 +144,7 @@ }, { "@timestamp": "2017-07-31T13:39:16.249Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "postgresql.log", "event.module": "postgresql", "event.timezone": "CEST", @@ -161,7 +161,7 @@ }, { "@timestamp": "2017-07-31T13:39:17.945Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "postgresql.log", "event.module": "postgresql", "event.timezone": "CEST", @@ -178,7 +178,7 @@ }, { "@timestamp": "2017-07-31T13:39:21.025Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "postgresql.log", "event.duration": 37598000, "event.module": "postgresql", @@ -200,7 +200,7 @@ }, { "@timestamp": "2017-07-31T13:39:31.619Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "postgresql.log", "event.duration": 9482000, "event.module": "postgresql", @@ -219,7 +219,7 @@ }, { "@timestamp": "2017-07-31T13:39:40.147Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "postgresql.log", "event.duration": 765000, "event.module": "postgresql", @@ -238,7 +238,7 @@ }, { "@timestamp": "2017-07-31T13:40:54.310Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "postgresql.log", "event.duration": 26082001, "event.module": "postgresql", @@ -260,7 +260,7 @@ }, { "@timestamp": "2017-07-31T13:43:22.645Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "postgresql.log", "event.duration": 36161999, "event.module": "postgresql", @@ -279,7 +279,7 @@ }, { "@timestamp": "2017-07-31T13:46:02.670Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "postgresql.log", "event.duration": 10540000, "event.module": "postgresql", @@ -298,7 +298,7 @@ }, { "@timestamp": "2017-07-31T13:46:23.016Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "postgresql.log", "event.duration": 5156000, "event.module": "postgresql", @@ -317,7 +317,7 @@ }, { "@timestamp": "2017-07-31T13:46:55.637Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "postgresql.log", "event.duration": 25871000, "event.module": "postgresql", diff --git a/filebeat/module/postgresql/log/test/postgresql-9.6-multi-core.log-expected.json b/filebeat/module/postgresql/log/test/postgresql-9.6-multi-core.log-expected.json index eb8be342a87..d759db48e14 100644 --- a/filebeat/module/postgresql/log/test/postgresql-9.6-multi-core.log-expected.json +++ b/filebeat/module/postgresql/log/test/postgresql-9.6-multi-core.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2017-04-03T22:32:14.322Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "postgresql.log", "event.module": "postgresql", "event.timezone": "CEST", @@ -19,7 +19,7 @@ }, { "@timestamp": "2017-04-03T22:32:14.322Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "postgresql.log", "event.module": "postgresql", "event.timezone": "CEST", @@ -37,7 +37,7 @@ }, { "@timestamp": "2017-04-03T22:35:22.389Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "postgresql.log", "event.duration": 37598000, "event.module": "postgresql", @@ -60,7 +60,7 @@ }, { "@timestamp": "2017-07-31T13:36:43.557Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "postgresql.log", "event.module": "postgresql", "event.timezone": "EST", @@ -76,7 +76,7 @@ }, { "@timestamp": "2017-07-31T13:36:44.227Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "postgresql.log", "event.module": "postgresql", "event.timezone": "EST", @@ -92,7 +92,7 @@ }, { "@timestamp": "2017-07-31T13:46:02.670Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "postgresql.log", "event.module": "postgresql", "event.timezone": "EST", @@ -108,7 +108,7 @@ }, { "@timestamp": "2017-07-31T13:46:23.016Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "postgresql.log", "event.module": "postgresql", "event.timezone": "EST", @@ -126,7 +126,7 @@ }, { "@timestamp": "2017-07-31T13:46:55.637Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "postgresql.log", "event.module": "postgresql", "event.timezone": "EST", diff --git a/filebeat/module/postgresql/log/test/postgresql-9.6-new-timestamp.log-expected.json b/filebeat/module/postgresql/log/test/postgresql-9.6-new-timestamp.log-expected.json index 460b48aee0d..25e2cdee631 100644 --- a/filebeat/module/postgresql/log/test/postgresql-9.6-new-timestamp.log-expected.json +++ b/filebeat/module/postgresql/log/test/postgresql-9.6-new-timestamp.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2017-07-31T13:36:43.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "postgresql.log", "event.module": "postgresql", "event.timezone": "EST", @@ -17,7 +17,7 @@ }, { "@timestamp": "2017-07-31T13:36:44.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "postgresql.log", "event.module": "postgresql", "event.timezone": "EST", @@ -33,7 +33,7 @@ }, { "@timestamp": "2017-07-31T13:46:02.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "postgresql.log", "event.module": "postgresql", "event.timezone": "EST", @@ -49,7 +49,7 @@ }, { "@timestamp": "2017-07-31T13:46:23.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "postgresql.log", "event.module": "postgresql", "event.timezone": "EST", @@ -67,7 +67,7 @@ }, { "@timestamp": "2017-07-31T13:46:55.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "postgresql.log", "event.module": "postgresql", "event.timezone": "EST", diff --git a/filebeat/module/redis/log/test/redis-5.0.3.log-expected.json b/filebeat/module/redis/log/test/redis-5.0.3.log-expected.json index 539d20a8962..063bc3143f9 100644 --- a/filebeat/module/redis/log/test/redis-5.0.3.log-expected.json +++ b/filebeat/module/redis/log/test/redis-5.0.3.log-expected.json @@ -1,6 +1,6 @@ [ { - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "redis.log", "event.module": "redis", "fileset.name": "log", diff --git a/filebeat/module/redis/log/test/test.log-expected.json b/filebeat/module/redis/log/test/test.log-expected.json index 55e77612288..c09cbaf495d 100644 --- a/filebeat/module/redis/log/test/test.log-expected.json +++ b/filebeat/module/redis/log/test/test.log-expected.json @@ -1,6 +1,6 @@ [ { - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "redis.log", "event.module": "redis", "fileset.name": "log", @@ -13,7 +13,7 @@ "service.type": "redis" }, { - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "redis.log", "event.module": "redis", "fileset.name": "log", @@ -24,7 +24,7 @@ "service.type": "redis" }, { - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "redis.log", "event.module": "redis", "fileset.name": "log", @@ -35,7 +35,7 @@ "service.type": "redis" }, { - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "redis.log", "event.module": "redis", "fileset.name": "log", diff --git a/filebeat/module/santa/log/test/santa.log-expected.json b/filebeat/module/santa/log/test/santa.log-expected.json index 9ce1f219b48..ce417e277e3 100644 --- a/filebeat/module/santa/log/test/santa.log-expected.json +++ b/filebeat/module/santa/log/test/santa.log-expected.json @@ -3,7 +3,7 @@ "@timestamp": "2018-12-10T06:45:16.802Z", "certificate.common_name": "Software Signing", "certificate.sha256": "2aa4b9973b7ba07add447ee4da8b5337c3ee2c3a991911e80e7282e8a751fc32", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "santa.log", "event.module": "santa", "fileset.name": "log", @@ -32,7 +32,7 @@ "@timestamp": "2018-12-10T06:45:16.802Z", "certificate.common_name": "Software Signing", "certificate.sha256": "2aa4b9973b7ba07add447ee4da8b5337c3ee2c3a991911e80e7282e8a751fc32", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "santa.log", "event.module": "santa", "fileset.name": "log", @@ -62,7 +62,7 @@ "@timestamp": "2018-12-10T06:45:16.851Z", "certificate.common_name": "Software Signing", "certificate.sha256": "2aa4b9973b7ba07add447ee4da8b5337c3ee2c3a991911e80e7282e8a751fc32", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "santa.log", "event.module": "santa", "fileset.name": "log", @@ -91,7 +91,7 @@ "@timestamp": "2018-12-10T06:45:16.859Z", "certificate.common_name": "Software Signing", "certificate.sha256": "2aa4b9973b7ba07add447ee4da8b5337c3ee2c3a991911e80e7282e8a751fc32", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "santa.log", "event.module": "santa", "fileset.name": "log", @@ -121,7 +121,7 @@ "@timestamp": "2018-12-10T08:45:27.810Z", "certificate.common_name": "Software Signing", "certificate.sha256": "2aa4b9973b7ba07add447ee4da8b5337c3ee2c3a991911e80e7282e8a751fc32", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "santa.log", "event.module": "santa", "fileset.name": "log", @@ -150,7 +150,7 @@ "@timestamp": "2018-12-10T08:45:27.810Z", "certificate.common_name": "Software Signing", "certificate.sha256": "2aa4b9973b7ba07add447ee4da8b5337c3ee2c3a991911e80e7282e8a751fc32", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "santa.log", "event.module": "santa", "fileset.name": "log", @@ -178,7 +178,7 @@ }, { "@timestamp": "2018-12-10T21:37:27.247Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "santa.log", "event.module": "santa", "fileset.name": "log", @@ -209,7 +209,7 @@ "@timestamp": "2018-12-10T16:24:43.992Z", "certificate.common_name": "Software Signing", "certificate.sha256": "2aa4b9973b7ba07add447ee4da8b5337c3ee2c3a991911e80e7282e8a751fc32", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "santa.log", "event.module": "santa", "fileset.name": "log", @@ -235,7 +235,7 @@ "@timestamp": "2018-12-14T05:35:38.313Z", "certificate.common_name": "Developer ID Application: Google, Inc. (EQHXZ8M8AV)", "certificate.sha256": "345a8e098bd04794aaeefda8c9ef56a0bf3d3706d67d35bc0e23f11bb3bffce5", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "santa.log", "event.module": "santa", "fileset.name": "log", @@ -273,7 +273,7 @@ }, { "@timestamp": "2018-12-17T03:03:52.337Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "santa.log", "event.module": "santa", "fileset.name": "log", diff --git a/filebeat/module/system/auth/test/test.log-expected.json b/filebeat/module/system/auth/test/test.log-expected.json index 5a7948ee529..afa5e4854c5 100644 --- a/filebeat/module/system/auth/test/test.log-expected.json +++ b/filebeat/module/system/auth/test/test.log-expected.json @@ -1,6 +1,6 @@ [ { - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.action": "Accepted", "event.dataset": "system.auth", "event.module": "system", @@ -17,7 +17,7 @@ "user.name": "vagrant" }, { - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.action": "Accepted", "event.dataset": "system.auth", "event.module": "system", @@ -33,7 +33,7 @@ "user.name": "vagrant" }, { - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.action": "Invalid", "event.dataset": "system.auth", "event.module": "system", @@ -47,7 +47,7 @@ "user.name": "test" }, { - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.action": "Failed", "event.dataset": "system.auth", "event.module": "system", @@ -69,7 +69,7 @@ "user.name": "root" }, { - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "system.auth", "event.module": "system", "fileset.name": "auth", @@ -84,7 +84,7 @@ "user.name": "vagrant" }, { - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "system.auth", "event.module": "system", "fileset.name": "auth", @@ -101,7 +101,7 @@ "system.auth.ssh.dropped_ip": "123.57.245.163" }, { - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "system.auth", "event.module": "system", "fileset.name": "auth", @@ -116,7 +116,7 @@ "user.name": "vagrant" }, { - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "system.auth", "event.module": "system", "fileset.name": "auth", @@ -132,7 +132,7 @@ "user.name": "tsg" }, { - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "system.auth", "event.module": "system", "fileset.name": "auth", @@ -145,7 +145,7 @@ "service.type": "system" }, { - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "system.auth", "event.module": "system", "fileset.name": "auth", diff --git a/filebeat/module/system/syslog/test/darwin-syslog-sample.log-expected.json b/filebeat/module/system/syslog/test/darwin-syslog-sample.log-expected.json index 1ee3157b651..0de2429298f 100644 --- a/filebeat/module/system/syslog/test/darwin-syslog-sample.log-expected.json +++ b/filebeat/module/system/syslog/test/darwin-syslog-sample.log-expected.json @@ -1,6 +1,6 @@ [ { - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "system.syslog", "event.module": "system", "fileset.name": "syslog", @@ -16,7 +16,7 @@ "service.type": "system" }, { - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "system.syslog", "event.module": "system", "fileset.name": "syslog", @@ -29,7 +29,7 @@ "service.type": "system" }, { - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "system.syslog", "event.module": "system", "fileset.name": "syslog", diff --git a/filebeat/module/system/syslog/test/suse-syslog.log-expected.json b/filebeat/module/system/syslog/test/suse-syslog.log-expected.json index 57f70c29ad8..ab9a3b711b9 100644 --- a/filebeat/module/system/syslog/test/suse-syslog.log-expected.json +++ b/filebeat/module/system/syslog/test/suse-syslog.log-expected.json @@ -1,6 +1,6 @@ [ { - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "system.syslog", "event.module": "system", "fileset.name": "syslog", @@ -13,7 +13,7 @@ "service.type": "system" }, { - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "system.syslog", "event.module": "system", "fileset.name": "syslog", diff --git a/filebeat/module/traefik/access/test/test.log-expected.json b/filebeat/module/traefik/access/test/test.log-expected.json index dc261e2b399..0d77ccb7c48 100644 --- a/filebeat/module/traefik/access/test/test.log-expected.json +++ b/filebeat/module/traefik/access/test/test.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": "2017-10-02T20:22:07.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "traefik.access", "event.duration": 2000000, "event.module": "traefik", @@ -30,7 +30,7 @@ }, { "@timestamp": "2017-10-02T20:22:08.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "traefik.access", "event.duration": 3000000, "event.module": "traefik", @@ -66,7 +66,7 @@ }, { "@timestamp": "2018-02-28T17:30:33.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "traefik.access", "event.duration": 247000000, "event.module": "traefik", @@ -103,7 +103,7 @@ }, { "@timestamp": "2018-11-29T15:03:51.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "traefik.access", "event.duration": 0, "event.module": "traefik", @@ -131,7 +131,7 @@ }, { "@timestamp": "2018-01-19T10:01:02.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "traefik.access", "event.duration": 13000000, "event.module": "traefik", @@ -165,7 +165,7 @@ }, { "@timestamp": "2018-01-19T10:01:02.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "traefik.access", "event.duration": 8000000, "event.module": "traefik", @@ -199,7 +199,7 @@ }, { "@timestamp": "2000-10-10T20:55:36.000Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "traefik.access", "event.module": "traefik", "fileset.name": "access", diff --git a/packetbeat/protos/http/event.go b/packetbeat/protos/http/event.go index 4cc508b8c86..9105ad889df 100644 --- a/packetbeat/protos/http/event.go +++ b/packetbeat/protos/http/event.go @@ -73,7 +73,7 @@ type ProtocolFields struct { } // netURL returns a new ecs.Url object with data from the HTTP request. -func newURL(host string, port int32, path, query string) *ecs.Url { +func newURL(host string, port int64, path, query string) *ecs.Url { u := &ecs.Url{ Scheme: "http", Domain: host, @@ -87,7 +87,7 @@ func newURL(host string, port int32, path, query string) *ecs.Url { return u } -func synthesizeFullURL(u *ecs.Url, port int32) string { +func synthesizeFullURL(u *ecs.Url, port int64) string { if u.Domain == "" || port <= 0 { return "" } diff --git a/packetbeat/protos/http/http.go b/packetbeat/protos/http/http.go index da80883ac0b..f81a44d4207 100644 --- a/packetbeat/protos/http/http.go +++ b/packetbeat/protos/http/http.go @@ -554,7 +554,7 @@ func (http *httpPlugin) newTransaction(requ, resp *message) beat.Event { httpFields.RequestHeaders = http.collectHeaders(requ) // url - u := newURL(host, int32(pbf.Destination.Port), path, params) + u := newURL(host, int64(pbf.Destination.Port), path, params) pb.MarshalStruct(evt.Fields, "url", u) // user-agent diff --git a/vendor/github.com/elastic/ecs/code/go/ecs/agent.go b/vendor/github.com/elastic/ecs/code/go/ecs/agent.go index 7f19e5d96e9..5057c1cd1d7 100644 --- a/vendor/github.com/elastic/ecs/code/go/ecs/agent.go +++ b/vendor/github.com/elastic/ecs/code/go/ecs/agent.go @@ -21,14 +21,15 @@ package ecs // The agent fields contain the data about the software entity, if any, that // collects, detects, or observes events on a host, or takes measurements on a -// host. Examples include Beats. Agents may also run on observers. ECS agent.* -// fields shall be populated with details of the agent running on the host or -// observer where the event happened or the measurement was taken. +// host. +// Examples include Beats. Agents may also run on observers. ECS agent.* fields +// shall be populated with details of the agent running on the host or observer +// where the event happened or the measurement was taken. type Agent struct { // Version of the agent. Version string `ecs:"version"` - // Name of the agent. + // Custom name of the agent. // This is a name that can be given to an agent. This can be helpful if for // example two Filebeat instances are running on the same host but a human // readable separation is needed on which Filebeat instance data is coming diff --git a/vendor/github.com/elastic/ecs/code/go/ecs/base.go b/vendor/github.com/elastic/ecs/code/go/ecs/base.go index 11c000fb5ed..8960635b757 100644 --- a/vendor/github.com/elastic/ecs/code/go/ecs/base.go +++ b/vendor/github.com/elastic/ecs/code/go/ecs/base.go @@ -23,27 +23,30 @@ import ( "time" ) -// The base set contains all fields which are on the top level. These fields -// are common across all types of events. +// The `base` field set contains all fields which are on the top level. These +// fields are common across all types of events. type Base struct { // Date/time when the event originated. - // For log events this is the date/time when the event was generated, and - // not when it was read. + // This is the date/time extracted from the event, typically representing + // when the event was generated by the source. + // If the event source has no original timestamp, this value is typically + // populated by the first time the event was received by the pipeline. // Required field for all events. Timestamp time.Time `ecs:"@timestamp"` // List of keywords used to tag each event. Tags string `ecs:"tags"` - // Key/value pairs. + // Custom key/value pairs. // Can be used to add meta information to events. Should not contain nested // objects. All values are stored as keyword. // Example: `docker` and `k8s` labels. Labels map[string]interface{} `ecs:"labels"` - // For log events the message field contains the log message. - // In other use cases the message field can be used to concatenate - // different values which are then freely searchable. If multiple messages - // exist, they can be combined into one message. + // For log events the message field contains the log message, optimized for + // viewing in a log viewer. + // For structured logs without an original message field, other fields can + // be concatenated to form a human-readable summary of the event. + // If multiple messages exist, they can be combined into one message. Message string `ecs:"message"` } diff --git a/vendor/github.com/elastic/ecs/code/go/ecs/client.go b/vendor/github.com/elastic/ecs/code/go/ecs/client.go index 3c4dac91820..73bead64811 100644 --- a/vendor/github.com/elastic/ecs/code/go/ecs/client.go +++ b/vendor/github.com/elastic/ecs/code/go/ecs/client.go @@ -20,14 +20,14 @@ package ecs // A client is defined as the initiator of a network connection for events -// regarding sessions, connections, or bidirectional flow records. For TCP -// events, the client is the initiator of the TCP connection that sends the SYN -// packet(s). For other protocols, the client is generally the initiator or -// requestor in the network transaction. Some systems use the term "originator" -// to refer the client in TCP connections. The client fields describe details -// about the system acting as the client in the network event. Client fields -// are usually populated in conjunction with server fields. Client fields are -// generally not populated for packet-level events. +// regarding sessions, connections, or bidirectional flow records. +// For TCP events, the client is the initiator of the TCP connection that sends +// the SYN packet(s). For other protocols, the client is generally the +// initiator or requestor in the network transaction. Some systems use the term +// "originator" to refer the client in TCP connections. The client fields +// describe details about the system acting as the client in the network event. +// Client fields are usually populated in conjunction with server fields. +// Client fields are generally not populated for packet-level events. // Client / server representations can add semantic context to an exchange, // which is helpful to visualize the data in certain situations. If your // context falls in that category, you should still ensure that source and diff --git a/vendor/github.com/elastic/ecs/code/go/ecs/cloud.go b/vendor/github.com/elastic/ecs/code/go/ecs/cloud.go index efbe85dfc12..3a6757b3dbf 100644 --- a/vendor/github.com/elastic/ecs/code/go/ecs/cloud.go +++ b/vendor/github.com/elastic/ecs/code/go/ecs/cloud.go @@ -21,7 +21,7 @@ package ecs // Fields related to the cloud or infrastructure the events are coming from. type Cloud struct { - // Name of the cloud provider. Example values are ec2, gce, or + // Name of the cloud provider. Example values are aws, azure, gcp, or // digitalocean. Provider string `ecs:"provider"` diff --git a/vendor/github.com/elastic/ecs/code/go/ecs/container.go b/vendor/github.com/elastic/ecs/code/go/ecs/container.go index a672fc6e3a8..be47d0ce940 100644 --- a/vendor/github.com/elastic/ecs/code/go/ecs/container.go +++ b/vendor/github.com/elastic/ecs/code/go/ecs/container.go @@ -20,8 +20,8 @@ package ecs // Container fields are used for meta information about the specific container -// that is the source of information. These fields help correlate data based -// containers from any runtime. +// that is the source of information. +// These fields help correlate data based containers from any runtime. type Container struct { // Runtime managing this container. Runtime string `ecs:"runtime"` diff --git a/vendor/github.com/elastic/ecs/code/go/ecs/ecs.go b/vendor/github.com/elastic/ecs/code/go/ecs/ecs.go index f6fa12884a9..413878ef0c0 100644 --- a/vendor/github.com/elastic/ecs/code/go/ecs/ecs.go +++ b/vendor/github.com/elastic/ecs/code/go/ecs/ecs.go @@ -26,6 +26,5 @@ type ECS struct { // When querying across multiple indices -- which may conform to slightly // different ECS versions -- this field lets integrations adjust to the // schema version of the events. - // The current version is 1.0.0-beta2 . Version string `ecs:"version"` } diff --git a/vendor/github.com/elastic/ecs/code/go/ecs/error.go b/vendor/github.com/elastic/ecs/code/go/ecs/error.go index 03151abe7b1..1bd27aedb6a 100644 --- a/vendor/github.com/elastic/ecs/code/go/ecs/error.go +++ b/vendor/github.com/elastic/ecs/code/go/ecs/error.go @@ -19,9 +19,9 @@ package ecs -// These fields can represent errors of any kind. Use them for errors that -// happen while fetching events or in cases where the event itself contains an -// error. +// These fields can represent errors of any kind. +// Use them for errors that happen while fetching events or in cases where the +// event itself contains an error. type Error struct { // Unique identifier for the error. ID string `ecs:"id"` diff --git a/vendor/github.com/elastic/ecs/code/go/ecs/event.go b/vendor/github.com/elastic/ecs/code/go/ecs/event.go index a281154f06c..56fcebe0561 100644 --- a/vendor/github.com/elastic/ecs/code/go/ecs/event.go +++ b/vendor/github.com/elastic/ecs/code/go/ecs/event.go @@ -24,15 +24,15 @@ import ( ) // The event fields are used for context information about the log or metric -// event itself. A log is defined as an event containing details of something -// that happened. Log events must include the time at which the thing happened. -// Examples of log events include a process starting on a host, a network -// packet being sent from a source to a destination, or a network connection -// between a client and a server being initiated or closed. A metric is defined -// as an event containing one or more numerical or categorical measurements and -// the time at which the measurement was taken. Examples of metric events -// include memory pressure measured on a host, or vulnerabilities measured on a -// scanned host. +// event itself. +// A log is defined as an event containing details of something that happened. +// Log events must include the time at which the thing happened. Examples of +// log events include a process starting on a host, a network packet being sent +// from a source to a destination, or a network connection between a client and +// a server being initiated or closed. A metric is defined as an event +// containing one or more numerical or categorical measurements and the time at +// which the measurement was taken. Examples of metric events include memory +// pressure measured on a host, or vulnerabilities measured on a scanned host. type Event struct { // Unique ID to describe the event. ID string `ecs:"id"` @@ -80,9 +80,10 @@ type Event struct { // in metricset.name and metricset.module or fileset.name. Dataset string `ecs:"dataset"` - // Severity describes the severity of the event. What the different - // severity values mean can very different between use cases. It's up to - // the implementer to make sure severities are consistent across events. + // Severity describes the original severity of the event. What the + // different severity values mean can very different between use cases. + // It's up to the implementer to make sure severities are consistent across + // events. Severity int64 `ecs:"severity"` // Raw text message of entire event. Used to demonstrate log integrity. @@ -107,15 +108,15 @@ type Event struct { // (e.g. "-05:00"). Timezone string `ecs:"timezone"` - // event.created contains the date when the event was created. - // This timestamp is distinct from @timestamp in that @timestamp contains - // the processed timestamp. For logs these two timestamps can be different - // as the timestamp in the log line and when the event is read for example - // by Filebeat are not identical. `@timestamp` must contain the timestamp - // extracted from the log line, event.created when the log line is read. - // The same could apply to package capturing where @timestamp contains the - // timestamp extracted from the network package and event.created when the - // event was created. + // event.created contains the date/time when the event was first read by an + // agent, or by your pipeline. + // This field is distinct from @timestamp in that @timestamp typically + // contain the time extracted from the original event. + // In most situations, these two timestamps will be slightly different. The + // difference can be used to calculate the delay between your source + // generating an event, and the time when your agent first processed it. + // This can be used to monitor your agent's or pipeline's ability to keep + // up with your event source. // In case the two timestamps are identical, @timestamp should be used. Created time.Time `ecs:"created"` diff --git a/vendor/github.com/elastic/ecs/code/go/ecs/file.go b/vendor/github.com/elastic/ecs/code/go/ecs/file.go index f876e1a7eb8..8b3dfc8a58e 100644 --- a/vendor/github.com/elastic/ecs/code/go/ecs/file.go +++ b/vendor/github.com/elastic/ecs/code/go/ecs/file.go @@ -24,10 +24,11 @@ import ( ) // A file is defined as a set of information that has been created on, or has -// existed on a filesystem. File objects can be associated with host events, -// network events, and/or file events (e.g., those produced by File Integrity -// Monitoring [FIM] products or services). File fields provide details about -// the affected file associated with the event or metric. +// existed on a filesystem. +// File objects can be associated with host events, network events, and/or file +// events (e.g., those produced by File Integrity Monitoring [FIM] products or +// services). File fields provide details about the affected file associated +// with the event or metric. type File struct { // Path to the file. Path string `ecs:"path"` diff --git a/vendor/github.com/elastic/ecs/code/go/ecs/geo.go b/vendor/github.com/elastic/ecs/code/go/ecs/geo.go index 223e9969913..89bfd81704a 100644 --- a/vendor/github.com/elastic/ecs/code/go/ecs/geo.go +++ b/vendor/github.com/elastic/ecs/code/go/ecs/geo.go @@ -19,8 +19,9 @@ package ecs -// Geo fields can carry data about a specific location related to an event or -// geo information derived from an IP field. +// Geo fields can carry data about a specific location related to an event. +// This geolocation information can be derived from techniques such as Geo IP, +// or be user-supplied. type Geo struct { // Longitude and latitude. Location string `ecs:"location"` diff --git a/vendor/github.com/elastic/ecs/code/go/ecs/host.go b/vendor/github.com/elastic/ecs/code/go/ecs/host.go index fbc4dce6a64..6d652bf9e6b 100644 --- a/vendor/github.com/elastic/ecs/code/go/ecs/host.go +++ b/vendor/github.com/elastic/ecs/code/go/ecs/host.go @@ -19,10 +19,10 @@ package ecs -// A host is defined as a general computing instance. ECS host.* fields should -// be populated with details about the host on which the event happened, or on -// which the measurement was taken. Host types include hardware, virtual -// machines, Docker containers, and Kubernetes nodes. +// A host is defined as a general computing instance. +// ECS host.* fields should be populated with details about the host on which +// the event happened, or from which the measurement was taken. Host types +// include hardware, virtual machines, Docker containers, and Kubernetes nodes. type Host struct { // Hostname of the host. // It normally contains what the `hostname` command returns on the host diff --git a/vendor/github.com/elastic/ecs/code/go/ecs/http.go b/vendor/github.com/elastic/ecs/code/go/ecs/http.go index 19b409d6194..0f2228502d1 100644 --- a/vendor/github.com/elastic/ecs/code/go/ecs/http.go +++ b/vendor/github.com/elastic/ecs/code/go/ecs/http.go @@ -19,26 +19,27 @@ package ecs -// Fields related to HTTP activity. +// Fields related to HTTP activity. Use the `url` field set to store the url of +// the request. type Http struct { - // Http request method. - // The field value must be normalized to lowercase for querying. See - // "Lowercase Capitalization" in the "Implementing ECS" section. + // HTTP request method. + // The field value must be normalized to lowercase for querying. See the + // documentation section "Implementing ECS". RequestMethod string `ecs:"request.method"` - // The full http request body. + // The full HTTP request body. RequestBodyContent string `ecs:"request.body.content"` // Referrer for this HTTP request. RequestReferrer string `ecs:"request.referrer"` - // Http response status code. + // HTTP response status code. ResponseStatusCode int64 `ecs:"response.status_code"` - // The full http response body. + // The full HTTP response body. ResponseBodyContent string `ecs:"response.body.content"` - // Http version. + // HTTP version. Version string `ecs:"version"` // Total size in bytes of the request (body and headers). diff --git a/vendor/github.com/elastic/ecs/code/go/ecs/log.go b/vendor/github.com/elastic/ecs/code/go/ecs/log.go index e2d0e07d732..11f3ab8febc 100644 --- a/vendor/github.com/elastic/ecs/code/go/ecs/log.go +++ b/vendor/github.com/elastic/ecs/code/go/ecs/log.go @@ -21,8 +21,8 @@ package ecs // Fields which are specific to log events. type Log struct { - // Log level of the log event. - // Some examples are `WARN`, `ERR`, `INFO`. + // Original log level of the log event. + // Some examples are `warn`, `error`, `i`. Level string `ecs:"level"` // This is the original log message and contains the full log message diff --git a/vendor/github.com/elastic/ecs/code/go/ecs/network.go b/vendor/github.com/elastic/ecs/code/go/ecs/network.go index de34708f1c5..1175227f36b 100644 --- a/vendor/github.com/elastic/ecs/code/go/ecs/network.go +++ b/vendor/github.com/elastic/ecs/code/go/ecs/network.go @@ -20,16 +20,17 @@ package ecs // The network is defined as the communication path over which a host or -// network event happens. The network.* fields should be populated with details -// about the network activity associated with an event. +// network event happens. +// The network.* fields should be populated with details about the network +// activity associated with an event. type Network struct { // Name given by operators to sections of their network. Name string `ecs:"name"` // In the OSI Model this would be the Network Layer. ipv4, ipv6, ipsec, // pim, etc - // The field value must be normalized to lowercase for querying. See - // "Lowercase Capitalization" in the "Implementing ECS" section. + // The field value must be normalized to lowercase for querying. See the + // documentation section "Implementing ECS". Type string `ecs:"type"` // IANA Protocol Number @@ -40,22 +41,22 @@ type Network struct { // Same as network.iana_number, but instead using the Keyword name of the // transport layer (udp, tcp, ipv6-icmp, etc.) - // The field value must be normalized to lowercase for querying. See - // "Lowercase Capitalization" in the "Implementing ECS" section. + // The field value must be normalized to lowercase for querying. See the + // documentation section "Implementing ECS". Transport string `ecs:"transport"` - // A name given to an application. This can be arbitrarily assigned for - // things like microservices, but also apply to things like skype, icq, - // facebook, twitter. This would be used in situations where the vendor or - // service can be decoded such as from the source/dest IP owners, ports, or - // wire format. - // The field value must be normalized to lowercase for querying. See - // "Lowercase Capitalization" in the "Implementing ECS" section. + // A name given to an application level protocol. This can be arbitrarily + // assigned for things like microservices, but also apply to things like + // skype, icq, facebook, twitter. This would be used in situations where + // the vendor or service can be decoded such as from the source/dest IP + // owners, ports, or wire format. + // The field value must be normalized to lowercase for querying. See the + // documentation section "Implementing ECS". Application string `ecs:"application"` // L7 Network protocol name. ex. http, lumberjack, transport protocol. - // The field value must be normalized to lowercase for querying. See - // "Lowercase Capitalization" in the "Implementing ECS" section. + // The field value must be normalized to lowercase for querying. See the + // documentation section "Implementing ECS". Protocol string `ecs:"protocol"` // Direction of the network traffic. diff --git a/vendor/github.com/elastic/ecs/code/go/ecs/observer.go b/vendor/github.com/elastic/ecs/code/go/ecs/observer.go index 5eaeb820775..85422e7ddc5 100644 --- a/vendor/github.com/elastic/ecs/code/go/ecs/observer.go +++ b/vendor/github.com/elastic/ecs/code/go/ecs/observer.go @@ -21,15 +21,15 @@ package ecs // An observer is defined as a special network, security, or application device // used to detect, observe, or create network, security, or application-related -// events and metrics. This could be a custom hardware appliance or a server -// that has been configured to run special network, security, or application -// software. Examples include firewalls, intrusion detection/prevention -// systems, network monitoring sensors, web application firewalls, data loss -// prevention systems, and APM servers. The observer.* fields shall be -// populated with details of the system, if any, that detects, observes and/or -// creates a network, security, or application event or metric. Message queues -// and ETL components used in processing events or metrics are not considered -// observers in ECS. +// events and metrics. +// This could be a custom hardware appliance or a server that has been +// configured to run special network, security, or application software. +// Examples include firewalls, intrusion detection/prevention systems, network +// monitoring sensors, web application firewalls, data loss prevention systems, +// and APM servers. The observer.* fields shall be populated with details of +// the system, if any, that detects, observes and/or creates a network, +// security, or application event or metric. Message queues and ETL components +// used in processing events or metrics are not considered observers in ECS. type Observer struct { // MAC address of the observer MAC string `ecs:"mac"` diff --git a/vendor/github.com/elastic/ecs/code/go/ecs/organization.go b/vendor/github.com/elastic/ecs/code/go/ecs/organization.go index ce196262693..f60af6d90b5 100644 --- a/vendor/github.com/elastic/ecs/code/go/ecs/organization.go +++ b/vendor/github.com/elastic/ecs/code/go/ecs/organization.go @@ -20,8 +20,9 @@ package ecs // The organization fields enrich data with information about the company or -// entity the data is associated with. These fields help you arrange or filter -// data stored in an index by one or multiple organizations. +// entity the data is associated with. +// These fields help you arrange or filter data stored in an index by one or +// multiple organizations. type Organization struct { // Organization name. Name string `ecs:"name"` diff --git a/vendor/github.com/elastic/ecs/code/go/ecs/process.go b/vendor/github.com/elastic/ecs/code/go/ecs/process.go index 3b7837d83aa..b81da4e3dc6 100644 --- a/vendor/github.com/elastic/ecs/code/go/ecs/process.go +++ b/vendor/github.com/elastic/ecs/code/go/ecs/process.go @@ -23,10 +23,10 @@ import ( "time" ) -// These fields contain information about a process. These fields can help you -// correlate metrics information with a process id/name from a log message. -// The `process.pid` often stays in the metric itself and is copied to the -// global field for correlation. +// These fields contain information about a process. +// These fields can help you correlate metrics information with a process +// id/name from a log message. The `process.pid` often stays in the metric +// itself and is copied to the global field for correlation. type Process struct { // Process id. PID int64 `ecs:"pid"` @@ -38,7 +38,7 @@ type Process struct { // Process parent id. PPID int64 `ecs:"ppid"` - // Process arguments. + // Array of process arguments. // May be filtered to protect sensitive information. Args []string `ecs:"args"` diff --git a/vendor/github.com/elastic/ecs/code/go/ecs/related.go b/vendor/github.com/elastic/ecs/code/go/ecs/related.go index f4a7f8dc228..43fea9347ec 100644 --- a/vendor/github.com/elastic/ecs/code/go/ecs/related.go +++ b/vendor/github.com/elastic/ecs/code/go/ecs/related.go @@ -19,13 +19,14 @@ package ecs -// This field set is meant to facilitate pivoting around a piece of data. Some -// pieces of information can be seen in many places in ECS. To facilitate -// searching for them, append values to their corresponding field in -// `related.`. A concrete example is IP addresses, which can be under host, -// observer, source, destination, client, server, and network.forwarded_ip. If -// you append all IPs to `related.ip`, you can then search for a given IP -// trivially, no matter where it appeared, by querying `related.ip:a.b.c.d`. +// This field set is meant to facilitate pivoting around a piece of data. +// Some pieces of information can be seen in many places in an ECS event. To +// facilitate searching for them, store an array of all seen values to their +// corresponding field in `related.`. +// A concrete example is IP addresses, which can be under host, observer, +// source, destination, client, server, and network.forwarded_ip. If you append +// all IPs to `related.ip`, you can then search for a given IP trivially, no +// matter where it appeared, by querying `related.ip:a.b.c.d`. type Related struct { // All of the IPs seen on your event. IP string `ecs:"ip"` diff --git a/vendor/github.com/elastic/ecs/code/go/ecs/server.go b/vendor/github.com/elastic/ecs/code/go/ecs/server.go index c05b64b2fc0..ca81c34ceba 100644 --- a/vendor/github.com/elastic/ecs/code/go/ecs/server.go +++ b/vendor/github.com/elastic/ecs/code/go/ecs/server.go @@ -20,14 +20,14 @@ package ecs // A Server is defined as the responder in a network connection for events -// regarding sessions, connections, or bidirectional flow records. For TCP -// events, the server is the receiver of the initial SYN packet(s) of the TCP -// connection. For other protocols, the server is generally the responder in -// the network transaction. Some systems actually use the term "responder" to -// refer the server in TCP connections. The server fields describe details -// about the system acting as the server in the network event. Server fields -// are usually populated in conjunction with client fields. Server fields are -// generally not populated for packet-level events. +// regarding sessions, connections, or bidirectional flow records. +// For TCP events, the server is the receiver of the initial SYN packet(s) of +// the TCP connection. For other protocols, the server is generally the +// responder in the network transaction. Some systems actually use the term +// "responder" to refer the server in TCP connections. The server fields +// describe details about the system acting as the server in the network event. +// Server fields are usually populated in conjunction with client fields. +// Server fields are generally not populated for packet-level events. // Client / server representations can add semantic context to an exchange, // which is helpful to visualize the data in certain situations. If your // context falls in that category, you should still ensure that source and diff --git a/vendor/github.com/elastic/ecs/code/go/ecs/service.go b/vendor/github.com/elastic/ecs/code/go/ecs/service.go index cdeedd6b379..2e70e0906e4 100644 --- a/vendor/github.com/elastic/ecs/code/go/ecs/service.go +++ b/vendor/github.com/elastic/ecs/code/go/ecs/service.go @@ -20,8 +20,9 @@ package ecs // The service fields describe the service for or from which the data was -// collected. These fields help you find and correlate logs for a specific -// service and version. +// collected. +// These fields help you find and correlate logs for a specific service and +// version. type Service struct { // Unique identifier of the running service. // This id should uniquely identify this service. This makes it possible to diff --git a/vendor/github.com/elastic/ecs/code/go/ecs/source.go b/vendor/github.com/elastic/ecs/code/go/ecs/source.go index 35c4a5c05d1..fd3ea5dd8f9 100644 --- a/vendor/github.com/elastic/ecs/code/go/ecs/source.go +++ b/vendor/github.com/elastic/ecs/code/go/ecs/source.go @@ -19,8 +19,8 @@ package ecs -// Source fields describe details about the source of a packet/event. Source -// fields are usually populated in conjunction with destination fields. +// Source fields describe details about the source of a packet/event. +// Source fields are usually populated in conjunction with destination fields. type Source struct { // Some event source addresses are defined ambiguously. The event will // sometimes list an IP, a domain or a unix socket. You should always diff --git a/vendor/github.com/elastic/ecs/code/go/ecs/url.go b/vendor/github.com/elastic/ecs/code/go/ecs/url.go index de5d53d0d5b..5c7f413892f 100644 --- a/vendor/github.com/elastic/ecs/code/go/ecs/url.go +++ b/vendor/github.com/elastic/ecs/code/go/ecs/url.go @@ -19,7 +19,8 @@ package ecs -// URL fields provide a complete URL, with scheme, host, and path. +// URL fields provide support for complete or partial URLs, and supports the +// breaking down into scheme, domain, path, and so on. type Url struct { // Unmodified original url as seen in the event source. // Note that in network monitoring, the observed URL may be a full URL, @@ -37,14 +38,14 @@ type Url struct { // Note: The `:` is not part of the scheme. Scheme string `ecs:"scheme"` - // Domain of the request, such as "www.elastic.co". + // Domain of the url, such as "www.elastic.co". // In some cases a URL may refer to an IP and/or port directly, without a // domain name. In this case, the IP address would go to the `domain` // field. Domain string `ecs:"domain"` // Port of the request, such as 443. - Port int32 `ecs:"port"` + Port int64 `ecs:"port"` // Path of the request, such as "/search". Path string `ecs:"path"` diff --git a/vendor/github.com/elastic/ecs/code/go/ecs/user.go b/vendor/github.com/elastic/ecs/code/go/ecs/user.go index 77592669933..411a0700385 100644 --- a/vendor/github.com/elastic/ecs/code/go/ecs/user.go +++ b/vendor/github.com/elastic/ecs/code/go/ecs/user.go @@ -19,9 +19,10 @@ package ecs -// The user fields describe information about the user that is relevant to the -// event. Fields can have one entry or multiple entries. If a user has more -// than one id, provide an array that includes all of them. +// The user fields describe information about the user that is relevant to the +// event. +// Fields can have one entry or multiple entries. If a user has more than one +// id, provide an array that includes all of them. type User struct { // One or multiple unique identifiers of the user. ID string `ecs:"id"` diff --git a/vendor/github.com/elastic/ecs/code/go/ecs/user_agent.go b/vendor/github.com/elastic/ecs/code/go/ecs/user_agent.go index 0ee3b280cb3..f2e9268a101 100644 --- a/vendor/github.com/elastic/ecs/code/go/ecs/user_agent.go +++ b/vendor/github.com/elastic/ecs/code/go/ecs/user_agent.go @@ -19,8 +19,9 @@ package ecs -// The user_agent fields normally come from a browser request. They often show -// up in web service logs coming from the parsed user agent string. +// The user_agent fields normally come from a browser request. +// They often show up in web service logs coming from the parsed user agent +// string. type UserAgent struct { // Unparsed version of the user_agent. Original string `ecs:"original"` diff --git a/vendor/github.com/elastic/ecs/code/go/ecs/version.go b/vendor/github.com/elastic/ecs/code/go/ecs/version.go index 5a22ef62e24..9f347a357c4 100644 --- a/vendor/github.com/elastic/ecs/code/go/ecs/version.go +++ b/vendor/github.com/elastic/ecs/code/go/ecs/version.go @@ -20,4 +20,4 @@ package ecs // Version is the Elastic Common Schema version from which this was generated. -const Version = "1.0.0-beta2" +const Version = "1.0.0" diff --git a/vendor/vendor.json b/vendor/vendor.json index d858864327a..d4bcd302afc 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -780,10 +780,12 @@ "revisionTime": "2016-08-05T00:47:13Z" }, { - "checksumSHA1": "mV9PA1PnYJo4QiM3mhHLytX1S6o=", + "checksumSHA1": "pxGrmqkuwRcyb0iOKEum1b3ciqU=", "path": "github.com/elastic/ecs/code/go/ecs", - "revision": "337ddd4674d6a28da97e6d19010c04c43db09e58", - "revisionTime": "2019-01-23T18:47:14Z" + "revision": "b9f735dd33b0bbb95dbca4229397c9b7f81f8f53", + "revisionTime": "2019-03-11T19:22:16Z", + "version": "1.0", + "versionExact": "1.0" }, { "checksumSHA1": "vNnw1bUS8Ct+8H64QuA2DWRJ9SQ=", diff --git a/x-pack/filebeat/module/iptables/log/test/geo.log-expected.json b/x-pack/filebeat/module/iptables/log/test/geo.log-expected.json index bac0edd527a..48756d380e6 100644 --- a/x-pack/filebeat/module/iptables/log/test/geo.log-expected.json +++ b/x-pack/filebeat/module/iptables/log/test/geo.log-expected.json @@ -4,7 +4,7 @@ "destination.ip": "10.4.0.5", "destination.mac": "90:10:20:76:8d:20", "destination.port": 443, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iptables.log", "event.module": "iptables", "event.outcome": "deny", diff --git a/x-pack/filebeat/module/iptables/log/test/icmp.log-expected.json b/x-pack/filebeat/module/iptables/log/test/icmp.log-expected.json index 98830b362b5..89815287460 100644 --- a/x-pack/filebeat/module/iptables/log/test/icmp.log-expected.json +++ b/x-pack/filebeat/module/iptables/log/test/icmp.log-expected.json @@ -3,7 +3,7 @@ "@timestamp": "2019-01-08T03:37:09.000Z", "destination.ip": "192.0.2.83", "destination.mac": "90:10:28:5f:62:24", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iptables.log", "event.module": "iptables", "fileset.name": "log", diff --git a/x-pack/filebeat/module/iptables/log/test/iptables.log-expected.json b/x-pack/filebeat/module/iptables/log/test/iptables.log-expected.json index b759f2fde9c..cc80519c38c 100644 --- a/x-pack/filebeat/module/iptables/log/test/iptables.log-expected.json +++ b/x-pack/filebeat/module/iptables/log/test/iptables.log-expected.json @@ -4,7 +4,7 @@ "destination.ip": "172.16.54.114", "destination.mac": "90:10:35:5a:1e:3a", "destination.port": 445, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iptables.log", "event.module": "iptables", "fileset.name": "log", @@ -39,7 +39,7 @@ "destination.ip": "172.16.54.114", "destination.mac": "90:10:35:5a:1e:3a", "destination.port": 1433, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iptables.log", "event.module": "iptables", "fileset.name": "log", @@ -73,7 +73,7 @@ "destination.ip": "172.16.54.114", "destination.mac": "90:10:35:5a:1e:3a", "destination.port": 445, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iptables.log", "event.module": "iptables", "fileset.name": "log", @@ -108,7 +108,7 @@ "destination.ip": "172.16.54.114", "destination.mac": "90:10:35:5a:1e:3a", "destination.port": 80, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iptables.log", "event.module": "iptables", "fileset.name": "log", @@ -143,7 +143,7 @@ "destination.ip": "172.16.54.114", "destination.mac": "90:10:35:5a:1e:3a", "destination.port": 445, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iptables.log", "event.module": "iptables", "fileset.name": "log", @@ -178,7 +178,7 @@ "destination.ip": "172.16.54.114", "destination.mac": "90:10:35:5a:1e:3a", "destination.port": 445, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iptables.log", "event.module": "iptables", "fileset.name": "log", @@ -212,7 +212,7 @@ "destination.ip": "172.16.54.114", "destination.mac": "90:10:35:5a:1e:3a", "destination.port": 445, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iptables.log", "event.module": "iptables", "fileset.name": "log", @@ -247,7 +247,7 @@ "destination.ip": "172.16.54.114", "destination.mac": "90:10:35:5a:1e:3a", "destination.port": 445, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iptables.log", "event.module": "iptables", "fileset.name": "log", @@ -282,7 +282,7 @@ "destination.ip": "172.16.54.114", "destination.mac": "90:10:35:5a:1e:3a", "destination.port": 139, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iptables.log", "event.module": "iptables", "fileset.name": "log", @@ -316,7 +316,7 @@ "destination.ip": "172.16.54.114", "destination.mac": "90:10:35:5a:1e:3a", "destination.port": 8088, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iptables.log", "event.module": "iptables", "fileset.name": "log", diff --git a/x-pack/filebeat/module/iptables/log/test/ipv6.log-expected.json b/x-pack/filebeat/module/iptables/log/test/ipv6.log-expected.json index 14618432079..b4262893e42 100644 --- a/x-pack/filebeat/module/iptables/log/test/ipv6.log-expected.json +++ b/x-pack/filebeat/module/iptables/log/test/ipv6.log-expected.json @@ -2,7 +2,7 @@ { "@timestamp": "2019-01-22T09:05:05.000Z", "destination.ip": "2001:0db8:0000:0000:0000:0000:0000:0002", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iptables.log", "event.module": "iptables", "fileset.name": "log", @@ -30,7 +30,7 @@ { "@timestamp": "2019-01-22T09:05:05.000Z", "destination.ip": "2001:0db8:0000:0000:0000:0000:0000:0002", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iptables.log", "event.module": "iptables", "fileset.name": "log", @@ -58,7 +58,7 @@ { "@timestamp": "2019-01-22T09:05:06.000Z", "destination.ip": "2001:0db8:0000:0000:0000:0000:0000:0002", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iptables.log", "event.module": "iptables", "fileset.name": "log", @@ -86,7 +86,7 @@ { "@timestamp": "2019-01-22T09:05:06.000Z", "destination.ip": "2001:0db8:0000:0000:0000:0000:0000:0002", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iptables.log", "event.module": "iptables", "fileset.name": "log", @@ -114,7 +114,7 @@ { "@timestamp": "2019-01-22T09:05:07.000Z", "destination.ip": "2001:0db8:0000:0000:0000:0000:0000:0002", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iptables.log", "event.module": "iptables", "fileset.name": "log", @@ -142,7 +142,7 @@ { "@timestamp": "2019-01-22T09:05:07.000Z", "destination.ip": "2001:0db8:0000:0000:0000:0000:0000:0002", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iptables.log", "event.module": "iptables", "fileset.name": "log", @@ -170,7 +170,7 @@ { "@timestamp": "2019-01-22T09:05:08.000Z", "destination.ip": "2001:0db8:0000:0000:0000:0000:0000:0002", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iptables.log", "event.module": "iptables", "fileset.name": "log", @@ -198,7 +198,7 @@ { "@timestamp": "2019-01-22T09:05:08.000Z", "destination.ip": "2001:0db8:0000:0000:0000:0000:0000:0002", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iptables.log", "event.module": "iptables", "fileset.name": "log", @@ -226,7 +226,7 @@ { "@timestamp": "2019-01-22T09:05:09.000Z", "destination.ip": "2001:0db8:0000:0000:0000:0000:0000:0002", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iptables.log", "event.module": "iptables", "fileset.name": "log", @@ -254,7 +254,7 @@ { "@timestamp": "2019-01-22T09:05:09.000Z", "destination.ip": "2001:0db8:0000:0000:0000:0000:0000:0002", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iptables.log", "event.module": "iptables", "fileset.name": "log", @@ -283,7 +283,7 @@ "@timestamp": "2019-01-22T10:52:34.000Z", "destination.ip": "ff02:0000:0000:0000:0000:0000:0000:0016", "destination.mac": "90:10:12:34:56:78", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iptables.log", "event.module": "iptables", "fileset.name": "log", diff --git a/x-pack/filebeat/module/iptables/log/test/ubiquiti.log-expected.json b/x-pack/filebeat/module/iptables/log/test/ubiquiti.log-expected.json index bccb22ca079..c40c574ff2e 100644 --- a/x-pack/filebeat/module/iptables/log/test/ubiquiti.log-expected.json +++ b/x-pack/filebeat/module/iptables/log/test/ubiquiti.log-expected.json @@ -4,7 +4,7 @@ "destination.ip": "255.55.174.225", "destination.mac": "90:10:92:6e:ea:a7", "destination.port": 48689, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iptables.log", "event.module": "iptables", "event.outcome": "allow", @@ -39,7 +39,7 @@ "destination.ip": "192.0.2.25", "destination.mac": "90:10:20:76:8d:20", "destination.port": 443, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iptables.log", "event.module": "iptables", "event.outcome": "allow", @@ -77,7 +77,7 @@ "destination.ip": "192.0.2.25", "destination.mac": "90:10:20:76:8d:20", "destination.port": 1443, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iptables.log", "event.module": "iptables", "event.outcome": "deny", @@ -117,7 +117,7 @@ "destination.ip": "192.0.2.25", "destination.mac": "90:10:20:76:8d:20", "destination.port": 1443, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iptables.log", "event.module": "iptables", "event.outcome": "allow", @@ -155,7 +155,7 @@ "destination.ip": "192.0.2.25", "destination.mac": "90:10:20:76:8d:20", "destination.port": 1443, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "iptables.log", "event.module": "iptables", "event.outcome": "allow", diff --git a/x-pack/filebeat/module/suricata/eve/test/eve-alerts.log-expected.json b/x-pack/filebeat/module/suricata/eve/test/eve-alerts.log-expected.json index b378adcc6bc..42db1c5805f 100644 --- a/x-pack/filebeat/module/suricata/eve/test/eve-alerts.log-expected.json +++ b/x-pack/filebeat/module/suricata/eve/test/eve-alerts.log-expected.json @@ -13,7 +13,7 @@ "destination.ip": "93.184.216.34", "destination.packets": 3, "destination.port": 80, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 223000000, @@ -76,7 +76,7 @@ "destination.ip": "93.184.216.34", "destination.packets": 3, "destination.port": 80, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 244000000, @@ -139,7 +139,7 @@ "destination.ip": "93.184.216.34", "destination.packets": 3, "destination.port": 80, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 233000000, @@ -202,7 +202,7 @@ "destination.ip": "93.184.216.34", "destination.packets": 3, "destination.port": 80, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 231000000, @@ -265,7 +265,7 @@ "destination.ip": "93.184.216.34", "destination.packets": 3, "destination.port": 80, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 229000000, @@ -328,7 +328,7 @@ "destination.ip": "93.184.216.34", "destination.packets": 3, "destination.port": 80, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 301000000, @@ -391,7 +391,7 @@ "destination.ip": "91.189.88.152", "destination.packets": 3, "destination.port": 80, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 85000000, @@ -454,7 +454,7 @@ "destination.ip": "91.189.91.23", "destination.packets": 3, "destination.port": 80, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 242000000, @@ -517,7 +517,7 @@ "destination.ip": "91.189.91.23", "destination.packets": 5, "destination.port": 80, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 362000000, @@ -580,7 +580,7 @@ "destination.ip": "91.189.88.152", "destination.packets": 62, "destination.port": 80, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 365000000, @@ -643,7 +643,7 @@ "destination.ip": "91.189.88.152", "destination.packets": 98, "destination.port": 80, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 432000000, @@ -706,7 +706,7 @@ "destination.ip": "91.189.88.152", "destination.packets": 221, "destination.port": 80, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 532000000, @@ -769,7 +769,7 @@ "destination.ip": "91.189.91.23", "destination.packets": 67, "destination.port": 80, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 821000000, @@ -832,7 +832,7 @@ "destination.ip": "91.189.91.23", "destination.packets": 119, "destination.port": 80, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 1027000000, @@ -895,7 +895,7 @@ "destination.ip": "91.189.91.23", "destination.packets": 253, "destination.port": 80, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 1324000000, @@ -958,7 +958,7 @@ "destination.ip": "91.189.91.23", "destination.packets": 314, "destination.port": 80, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 1475000000, @@ -1021,7 +1021,7 @@ "destination.ip": "91.189.91.23", "destination.packets": 588, "destination.port": 80, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 1850000000, @@ -1084,7 +1084,7 @@ "destination.ip": "91.189.91.23", "destination.packets": 591, "destination.port": 80, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 1971000000, @@ -1147,7 +1147,7 @@ "destination.ip": "91.189.91.23", "destination.packets": 979, "destination.port": 80, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 2436000000, @@ -1209,7 +1209,7 @@ "destination.ip": "91.189.91.23", "destination.packets": 1079, "destination.port": 80, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 2649000000, diff --git a/x-pack/filebeat/module/suricata/eve/test/eve-small.log-expected.json b/x-pack/filebeat/module/suricata/eve/test/eve-small.log-expected.json index d3d2cf03069..7329b4eb4ea 100644 --- a/x-pack/filebeat/module/suricata/eve/test/eve-small.log-expected.json +++ b/x-pack/filebeat/module/suricata/eve/test/eve-small.log-expected.json @@ -3,7 +3,7 @@ "@timestamp": "2018-07-05T19:01:09.820Z", "destination.ip": "192.168.253.112", "destination.port": 22, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.end": "2018-07-05T19:01:09.820Z", @@ -34,7 +34,7 @@ "destination.ip": "192.168.156.70", "destination.packets": 3, "destination.port": 443, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 1251000000, @@ -79,7 +79,7 @@ "destination.domain": "192.168.86.28", "destination.ip": "192.168.86.28", "destination.port": 63963, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.end": "2018-07-05T19:43:47.690Z", @@ -121,7 +121,7 @@ "destination.domain": "192.168.86.28", "destination.ip": "192.168.86.85", "destination.port": 56118, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.end": "2018-07-05T19:44:33.222Z", @@ -171,7 +171,7 @@ "@timestamp": "2018-07-05T19:51:20.213Z", "destination.ip": "192.168.86.85", "destination.port": 39464, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.end": "2018-07-05T19:51:20.213Z", @@ -201,7 +201,7 @@ }, { "@timestamp": "2018-07-05T19:51:23.009Z", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "suricata.eve", "event.end": "2018-07-05T19:51:23.009Z", "event.kind": "metric", @@ -339,7 +339,7 @@ "destination.geo.location.lon": -97.822, "destination.ip": "17.142.164.13", "destination.port": 443, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.end": "2018-07-05T19:51:50.666Z", @@ -374,7 +374,7 @@ "destination.ip": "ff02:0000:0000:0000:0000:0000:0001:0002", "destination.packets": 0, "destination.port": 547, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.category": "network_traffic", "event.dataset": "suricata.eve", "event.duration": 30548000000, diff --git a/x-pack/filebeat/module/zeek/connection/test/connection-json.log-expected.json b/x-pack/filebeat/module/zeek/connection/test/connection-json.log-expected.json index bcfcd9ad0f3..f2fb6932ee7 100644 --- a/x-pack/filebeat/module/zeek/connection/test/connection-json.log-expected.json +++ b/x-pack/filebeat/module/zeek/connection/test/connection-json.log-expected.json @@ -6,7 +6,7 @@ "destination.ip": "192.168.86.1", "destination.packets": 1, "destination.port": 53, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "zeek.connection", "event.duration": 76967000, "event.id": "CAcJw21BbVedgFnYH3", @@ -47,7 +47,7 @@ "destination.ip": "8.8.8.8", "destination.packets": 1, "destination.port": 53, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "zeek.connection", "event.duration": 76967000, "event.id": "CAcJw21BbVedgFnYH4", @@ -87,7 +87,7 @@ "destination.ip": "8.8.8.8", "destination.packets": 1, "destination.port": 53, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "zeek.connection", "event.duration": 76967000, "event.id": "CAcJw21BbVedgFnYH5", @@ -126,7 +126,7 @@ "destination.ip": "198.51.100.249", "destination.packets": 0, "destination.port": 3, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "zeek.connection", "event.id": "Cc6NJ3GRlfjE44I3h", "event.module": "zeek", diff --git a/x-pack/filebeat/module/zeek/dns/test/dns-json.log-expected.json b/x-pack/filebeat/module/zeek/dns/test/dns-json.log-expected.json index 5b618b362fa..4b4b9eaa9af 100644 --- a/x-pack/filebeat/module/zeek/dns/test/dns-json.log-expected.json +++ b/x-pack/filebeat/module/zeek/dns/test/dns-json.log-expected.json @@ -4,7 +4,7 @@ "destination.address": "192.168.86.1", "destination.ip": "192.168.86.1", "destination.port": 53, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "zeek.dns", "event.id": "CAcJw21BbVedgFnYH3", "event.module": "zeek", diff --git a/x-pack/filebeat/module/zeek/files/test/files-json.log-expected.json b/x-pack/filebeat/module/zeek/files/test/files-json.log-expected.json index c1f0c949f21..a88724faca0 100644 --- a/x-pack/filebeat/module/zeek/files/test/files-json.log-expected.json +++ b/x-pack/filebeat/module/zeek/files/test/files-json.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": 1547688796000, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "zeek.files", "event.id": "C8I0zn3r9EPbfLgta6", "event.module": "zeek", @@ -39,7 +39,7 @@ }, { "@timestamp": 1547688801000, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "zeek.files", "event.id": "C6sjVo23iNApLnlAt6", "event.module": "zeek", diff --git a/x-pack/filebeat/module/zeek/http/test/http-json.log-expected.json b/x-pack/filebeat/module/zeek/http/test/http-json.log-expected.json index f9dfb0539fc..6e4d81169fe 100644 --- a/x-pack/filebeat/module/zeek/http/test/http-json.log-expected.json +++ b/x-pack/filebeat/module/zeek/http/test/http-json.log-expected.json @@ -8,7 +8,7 @@ "destination.geo.location.lon": -97.822, "destination.ip": "17.253.5.203", "destination.port": 80, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "zeek.http", "event.id": "CCNp8v1SNzY7v9d1Ih", "event.module": "zeek", diff --git a/x-pack/filebeat/module/zeek/notice/test/notice-json.log-expected.json b/x-pack/filebeat/module/zeek/notice/test/notice-json.log-expected.json index ac821492355..5561a0507a1 100644 --- a/x-pack/filebeat/module/zeek/notice/test/notice-json.log-expected.json +++ b/x-pack/filebeat/module/zeek/notice/test/notice-json.log-expected.json @@ -1,7 +1,7 @@ [ { "@timestamp": 1320435875000, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "zeek.notice", "event.module": "zeek", "fileset.name": "notice", @@ -31,7 +31,7 @@ "destination.geo.region_iso_code": "US-NY", "destination.geo.region_name": "New York", "destination.ip": "207.154.238.205", - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "zeek.notice", "event.module": "zeek", "fileset.name": "notice", diff --git a/x-pack/filebeat/module/zeek/ssl/test/ssl-json.log-expected.json b/x-pack/filebeat/module/zeek/ssl/test/ssl-json.log-expected.json index 196acc7f3b3..74149f4e107 100644 --- a/x-pack/filebeat/module/zeek/ssl/test/ssl-json.log-expected.json +++ b/x-pack/filebeat/module/zeek/ssl/test/ssl-json.log-expected.json @@ -11,7 +11,7 @@ "destination.geo.region_name": "California", "destination.ip": "35.199.178.4", "destination.port": 9243, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "zeek.ssl", "event.id": "CAOvs1BMFCX2Eh0Y3", "event.module": "zeek", @@ -56,7 +56,7 @@ "destination.geo.region_name": "California", "destination.ip": "35.199.178.4", "destination.port": 9243, - "ecs.version": "1.0.0-beta2", + "ecs.version": "1.0.0", "event.dataset": "zeek.ssl", "event.id": "C3mki91FnnNtm0u1ok", "event.module": "zeek", From 75fba3819017593f6a051d18043ac96a5e0470e8 Mon Sep 17 00:00:00 2001 From: kaiyan-sheng Date: Tue, 12 Mar 2019 20:34:05 -0600 Subject: [PATCH 189/332] Fix fields.yml for sqs from message.* to messages.* (#11188) * Fix fields.yml for sqs from message.* to messages.* and field type * Change type back to long * Add format: bytes --- metricbeat/docs/fields.asciidoc | 16 +++++++++------- x-pack/metricbeat/module/aws/fields.go | 2 +- .../metricbeat/module/aws/sqs/_meta/fields.yml | 15 ++++++++------- 3 files changed, 18 insertions(+), 15 deletions(-) diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index 9958378cb32..243d791f81c 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -1316,7 +1316,7 @@ The approximate age of the oldest non-deleted message in the queue. -- -*`aws.sqs.message.delayed`*:: +*`aws.sqs.messages.delayed`*:: + -- type: long @@ -1326,7 +1326,7 @@ TThe number of messages in the queue that are delayed and not available for read -- -*`aws.sqs.message.not_visible`*:: +*`aws.sqs.messages.not_visible`*:: + -- type: long @@ -1336,7 +1336,7 @@ The number of messages that are in flight. -- -*`aws.sqs.message.visible`*:: +*`aws.sqs.messages.visible`*:: + -- type: long @@ -1346,7 +1346,7 @@ The number of messages available for retrieval from the queue. -- -*`aws.sqs.message.deleted`*:: +*`aws.sqs.messages.deleted`*:: + -- type: long @@ -1356,7 +1356,7 @@ The number of messages deleted from the queue. -- -*`aws.sqs.message.received`*:: +*`aws.sqs.messages.received`*:: + -- type: long @@ -1366,7 +1366,7 @@ The number of messages returned by calls to the ReceiveMessage action. -- -*`aws.sqs.message.sent`*:: +*`aws.sqs.messages.sent`*:: + -- type: long @@ -1389,7 +1389,9 @@ The number of ReceiveMessage API calls that did not return a message. *`aws.sqs.sent_message_size.bytes`*:: + -- -type: scaled_float +type: long + +format: bytes The size of messages added to a queue. diff --git a/x-pack/metricbeat/module/aws/fields.go b/x-pack/metricbeat/module/aws/fields.go index bd5350fc48d..0eb1abe1e91 100644 --- a/x-pack/metricbeat/module/aws/fields.go +++ b/x-pack/metricbeat/module/aws/fields.go @@ -19,5 +19,5 @@ func init() { // AssetAws returns asset data. // This is the base64 encoded gzipped contents of module/aws. func AssetAws() string { - return "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" + return "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" } diff --git a/x-pack/metricbeat/module/aws/sqs/_meta/fields.yml b/x-pack/metricbeat/module/aws/sqs/_meta/fields.yml index 9a1edd352e6..9893f0af8a9 100644 --- a/x-pack/metricbeat/module/aws/sqs/_meta/fields.yml +++ b/x-pack/metricbeat/module/aws/sqs/_meta/fields.yml @@ -8,27 +8,27 @@ type: long description: > The approximate age of the oldest non-deleted message in the queue. - - name: message.delayed + - name: messages.delayed type: long description: > TThe number of messages in the queue that are delayed and not available for reading immediately. - - name: message.not_visible + - name: messages.not_visible type: long description: > The number of messages that are in flight. - - name: message.visible + - name: messages.visible type: long description: > The number of messages available for retrieval from the queue. - - name: message.deleted + - name: messages.deleted type: long description: > The number of messages deleted from the queue. - - name: message.received + - name: messages.received type: long description: > The number of messages returned by calls to the ReceiveMessage action. - - name: message.sent + - name: messages.sent type: long description: > The number of messages added to a queue. @@ -37,6 +37,7 @@ description: > The number of ReceiveMessage API calls that did not return a message. - name: sent_message_size.bytes - type: scaled_float + type: long + format: bytes description: > The size of messages added to a queue. From 672cf1bd06625cd19248a19b72f8b5b2e3c51603 Mon Sep 17 00:00:00 2001 From: Shaunak Kashyap Date: Wed, 13 Mar 2019 00:19:54 -0700 Subject: [PATCH 190/332] Add sleep to allow ES sufficient time for CCR (#11172) After repeatedly running the Elasticsearch module integration test in Metricbeat, I found that sometimes Elasticsearch doesn't get enough time to perform CCR and generate CCR stats. This causes the following error, but only some times: ``` --- FAIL: TestFetch (2.44s) --- FAIL: TestFetch/ccr (0.08s) elasticsearch_integration_test.go:92: Error Trace: elasticsearch_integration_test.go:92 Error: Should NOT be empty, but was [] Test: TestFetch/ccr ``` So this PR adds a 300ms sleep to give Elasticsearch enough time to perform CCR and generate CCR stats. After testing various sleep durations, I found that 300ms seemed to be the lowest (round) value I could use that consistently passed this test. Possibly related: #10866 --- .../elasticsearch_integration_test.go | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/metricbeat/module/elasticsearch/elasticsearch_integration_test.go b/metricbeat/module/elasticsearch/elasticsearch_integration_test.go index 6e173a95a4c..a43997a24ee 100644 --- a/metricbeat/module/elasticsearch/elasticsearch_integration_test.go +++ b/metricbeat/module/elasticsearch/elasticsearch_integration_test.go @@ -28,6 +28,7 @@ import ( "net/http" "os" "testing" + "time" "github.com/pkg/errors" @@ -255,9 +256,48 @@ func createCCRStats(host string) error { return errors.Wrap(err, "error creating CCR follower index") } + // Give ES sufficient time to do the replication and produce stats + checkCCRStats := func() (bool, error) { + return checkCCRStatsExists(host) + } + + exists, err := waitForSuccess(checkCCRStats, 200, 5) + if err != nil { + return errors.Wrap(err, "error checking if CCR stats exist") + } + + if !exists { + return fmt.Errorf("expected to find CCR stats but not found") + } + return nil } +func checkCCRStatsExists(host string) (bool, error) { + resp, err := http.Get("http://" + host + "/_ccr/stats") + if err != nil { + return false, err + } + defer resp.Body.Close() + + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + return false, err + } + + var data struct { + FollowStats struct { + Indices []map[string]interface{} `json:"indices"` + } `json:"follow_stats"` + } + err = json.Unmarshal(body, &data) + if err != nil { + return false, err + } + + return len(data.FollowStats.Indices) > 0, nil +} + func setupCCRRemote(host string) error { remoteSettings, err := ioutil.ReadFile("ccr/_meta/test/test_remote_settings.json") if err != nil { @@ -364,3 +404,23 @@ func httpPutJSON(host, path string, body []byte) ([]byte, *http.Response, error) return body, resp, nil } + +type checkSuccessFunction func() (bool, error) + +func waitForSuccess(f checkSuccessFunction, retryIntervalMs time.Duration, numAttempts int) (bool, error) { + for numAttempts > 0 { + success, err := f() + if err != nil { + return false, err + } + + if success { + return success, nil + } + + time.Sleep(retryIntervalMs * time.Millisecond) + numAttempts-- + } + + return false, nil +} From f13cd2f1f45edde9f5c58b1e15f698267bfd5140 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Berfin=20Sar=C4=B1?= Date: Wed, 13 Mar 2019 11:52:25 +0300 Subject: [PATCH 191/332] [Metricbeat] Migrate NGINX stubstatus to use ReporterV2 interface (#11051) Refer to #10774 for more info --- .../module/nginx/stubstatus/_meta/data.json | 26 ++++++++++++------- metricbeat/module/nginx/stubstatus/data.go | 0 .../module/nginx/stubstatus/stubstatus.go | 18 +++++++++---- .../stubstatus/stubstatus_integration_test.go | 24 +++++++++++------ 4 files changed, 45 insertions(+), 23 deletions(-) mode change 100755 => 100644 metricbeat/module/nginx/stubstatus/data.go mode change 100755 => 100644 metricbeat/module/nginx/stubstatus/stubstatus.go diff --git a/metricbeat/module/nginx/stubstatus/_meta/data.json b/metricbeat/module/nginx/stubstatus/_meta/data.json index 8ba3e8d0f31..ed43b432f8e 100644 --- a/metricbeat/module/nginx/stubstatus/_meta/data.json +++ b/metricbeat/module/nginx/stubstatus/_meta/data.json @@ -1,27 +1,33 @@ { "@timestamp": "2017-10-12T08:05:34.853Z", - "beat": { + "agent": { "hostname": "host.example.com", "name": "host.example.com" }, + "event": { + "dataset": "nginx.stubstatus", + "duration": 115000, + "module": "nginx" + }, "metricset": { - "host": "nginx", - "module": "nginx", - "name": "stubstatus", - "rtt": 115 + "name": "stubstatus" }, "nginx": { "stubstatus": { - "accepts": 83, + "accepts": 6254, "active": 2, - "current": 83, + "current": 1, "dropped": 0, - "handled": 83, - "hostname": "nginx", + "handled": 6254, + "hostname": "127.0.0.1", "reading": 0, - "requests": 83, + "requests": 6259, "waiting": 1, "writing": 1 } + }, + "service": { + "address": "127.0.0.1", + "type": "nginx" } } \ No newline at end of file diff --git a/metricbeat/module/nginx/stubstatus/data.go b/metricbeat/module/nginx/stubstatus/data.go old mode 100755 new mode 100644 diff --git a/metricbeat/module/nginx/stubstatus/stubstatus.go b/metricbeat/module/nginx/stubstatus/stubstatus.go old mode 100755 new mode 100644 index 2100e94e61d..f9683b9d65a --- a/metricbeat/module/nginx/stubstatus/stubstatus.go +++ b/metricbeat/module/nginx/stubstatus/stubstatus.go @@ -19,7 +19,7 @@ package stubstatus import ( - "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" @@ -42,6 +42,8 @@ var ( }.Build() ) +var logger = logp.NewLogger("nginx.stubstatus") + func init() { mb.Registry.MustAddMetricSet("nginx", "stubstatus", New, mb.WithHostParser(hostParser), @@ -68,12 +70,18 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { }, nil } -// Fetch makes an HTTP request to fetch status metrics from the stubstatus endpoint. -func (m *MetricSet) Fetch() (common.MapStr, error) { +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(reporter mb.ReporterV2) { scanner, err := m.http.FetchScanner() if err != nil { - return nil, err + logger.Error(err) + reporter.Error(err) + return } + event, _ := eventMapping(scanner, m) + reporter.Event(mb.Event{MetricSetFields: event}) - return eventMapping(scanner, m) + return } diff --git a/metricbeat/module/nginx/stubstatus/stubstatus_integration_test.go b/metricbeat/module/nginx/stubstatus/stubstatus_integration_test.go index d4b12887003..c8cd5bac0f4 100644 --- a/metricbeat/module/nginx/stubstatus/stubstatus_integration_test.go +++ b/metricbeat/module/nginx/stubstatus/stubstatus_integration_test.go @@ -32,23 +32,31 @@ import ( func TestFetch(t *testing.T) { compose.EnsureUp(t, "nginx") - f := mbtest.NewEventFetcher(t, getConfig()) - event, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } + assert.NotEmpty(t, events) - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) + t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), events[0]) // Check number of fields. + event := events[0].MetricSetFields assert.Equal(t, 10, len(event)) } func TestData(t *testing.T) { - f := mbtest.NewEventFetcher(t, getConfig()) + compose.EnsureUp(t, "nginx") + + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) + } + assert.NotEmpty(t, events) - err := mbtest.WriteEvent(f, t) - if err != nil { + if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { t.Fatal("write", err) } } From de138934561aaaacd5e34cfe69382a269154206a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Berfin=20Sar=C4=B1?= Date: Wed, 13 Mar 2019 14:25:23 +0300 Subject: [PATCH 192/332] [Metricbeat] Migrate Ceph osd_tree to use ReporterV2 interface (#11048) --- .../module/ceph/osd_tree/_meta/data.json | 4 ---- metricbeat/module/ceph/osd_tree/osd_tree.go | 20 ++++++++++++++----- .../osd_tree/osd_tree_integration_test.go | 6 +++--- .../module/ceph/osd_tree/osd_tree_test.go | 19 ++++++++++-------- 4 files changed, 29 insertions(+), 20 deletions(-) diff --git a/metricbeat/module/ceph/osd_tree/_meta/data.json b/metricbeat/module/ceph/osd_tree/_meta/data.json index 6f8cf7a9106..af8304299ac 100644 --- a/metricbeat/module/ceph/osd_tree/_meta/data.json +++ b/metricbeat/module/ceph/osd_tree/_meta/data.json @@ -1,9 +1,5 @@ { "@timestamp": "2017-10-12T08:05:34.853Z", - "agent": { - "hostname": "host.example.com", - "name": "host.example.com" - }, "ceph": { "osd_tree": { "children": [ diff --git a/metricbeat/module/ceph/osd_tree/osd_tree.go b/metricbeat/module/ceph/osd_tree/osd_tree.go index e4c70316a86..b936ae93b14 100644 --- a/metricbeat/module/ceph/osd_tree/osd_tree.go +++ b/metricbeat/module/ceph/osd_tree/osd_tree.go @@ -18,7 +18,6 @@ package osd_tree import ( - "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" @@ -61,16 +60,27 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { }, nil } -func (m *MetricSet) Fetch() ([]common.MapStr, error) { +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(reporter mb.ReporterV2) { content, err := m.HTTP.FetchContent() if err != nil { - return nil, err + m.Logger().Error(err) + reporter.Error(err) + return } events, err := eventsMapping(content) if err != nil { - return nil, err + m.Logger().Error(err) + reporter.Error(err) + return + } + + for _, event := range events { + reporter.Event(mb.Event{MetricSetFields: event}) } - return events, nil + return } diff --git a/metricbeat/module/ceph/osd_tree/osd_tree_integration_test.go b/metricbeat/module/ceph/osd_tree/osd_tree_integration_test.go index f7e694b3b46..8b2f4b56bb0 100644 --- a/metricbeat/module/ceph/osd_tree/osd_tree_integration_test.go +++ b/metricbeat/module/ceph/osd_tree/osd_tree_integration_test.go @@ -26,9 +26,9 @@ import ( ) func TestData(t *testing.T) { - f := mbtest.NewEventsFetcher(t, getConfig()) - err := mbtest.WriteEvents(f, t) - if err != nil { + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + + if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { t.Fatal("write", err) } } diff --git a/metricbeat/module/ceph/osd_tree/osd_tree_test.go b/metricbeat/module/ceph/osd_tree/osd_tree_test.go index 8207c4e8156..c8ce52fdf87 100644 --- a/metricbeat/module/ceph/osd_tree/osd_tree_test.go +++ b/metricbeat/module/ceph/osd_tree/osd_tree_test.go @@ -49,14 +49,17 @@ func TestFetchEventContents(t *testing.T) { "hosts": []string{server.URL}, } - f := mbtest.NewEventsFetcher(t, config) - events, err := f.Fetch() - event := events[0] + f := mbtest.NewReportingMetricSetV2(t, config) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) + } + assert.NotEmpty(t, events) + nodeInfo := events[0].MetricSetFields - t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event.StringToPrint()) + t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), nodeInfo.StringToPrint()) //check root bucket info - nodeInfo := events[0] assert.EqualValues(t, "default", nodeInfo["name"]) assert.EqualValues(t, "root", nodeInfo["type"]) assert.EqualValues(t, []string{"-3"}, nodeInfo["children"]) @@ -65,7 +68,7 @@ func TestFetchEventContents(t *testing.T) { assert.EqualValues(t, "", nodeInfo["father"]) //check host bucket info - nodeInfo = events[1] + nodeInfo = events[1].MetricSetFields assert.EqualValues(t, "ceph-mon1", nodeInfo["name"]) assert.EqualValues(t, "host", nodeInfo["type"]) assert.EqualValues(t, []string{"1", "0"}, nodeInfo["children"]) @@ -74,7 +77,7 @@ func TestFetchEventContents(t *testing.T) { assert.EqualValues(t, "default", nodeInfo["father"]) //check osd bucket info - nodeInfo = events[2] + nodeInfo = events[2].MetricSetFields assert.EqualValues(t, "up", nodeInfo["status"]) assert.EqualValues(t, "osd.0", nodeInfo["name"]) assert.EqualValues(t, "osd", nodeInfo["type"]) @@ -88,7 +91,7 @@ func TestFetchEventContents(t *testing.T) { assert.EqualValues(t, "ceph-mon1", nodeInfo["father"]) assert.EqualValues(t, 2, nodeInfo["depth"]) - nodeInfo = events[3] + nodeInfo = events[3].MetricSetFields assert.EqualValues(t, "up", nodeInfo["status"]) assert.EqualValues(t, "osd.1", nodeInfo["name"]) assert.EqualValues(t, "osd", nodeInfo["type"]) From d27417bf98b9908cf16d8f3998173945fb934bf4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Berfin=20Sar=C4=B1?= Date: Wed, 13 Mar 2019 14:32:18 +0300 Subject: [PATCH 193/332] [Metricbeat] Migrate Ceph pool_disk to use ReporterV2 interface (#11049) --- .../module/ceph/pool_disk/_meta/data.json | 4 ---- metricbeat/module/ceph/pool_disk/pool_disk.go | 18 +++++++++++++----- .../pool_disk/pool_disk_integration_test.go | 6 +++--- .../module/ceph/pool_disk/pool_disk_test.go | 12 +++++++----- 4 files changed, 23 insertions(+), 17 deletions(-) diff --git a/metricbeat/module/ceph/pool_disk/_meta/data.json b/metricbeat/module/ceph/pool_disk/_meta/data.json index 8d0d0ba019d..e601c9f5c67 100644 --- a/metricbeat/module/ceph/pool_disk/_meta/data.json +++ b/metricbeat/module/ceph/pool_disk/_meta/data.json @@ -1,9 +1,5 @@ { "@timestamp": "2017-10-12T08:05:34.853Z", - "agent": { - "hostname": "host.example.com", - "name": "host.example.com" - }, "ceph": { "pool_disk": { "id": 0, diff --git a/metricbeat/module/ceph/pool_disk/pool_disk.go b/metricbeat/module/ceph/pool_disk/pool_disk.go index 9a2af58f1fe..761c25887fa 100644 --- a/metricbeat/module/ceph/pool_disk/pool_disk.go +++ b/metricbeat/module/ceph/pool_disk/pool_disk.go @@ -18,7 +18,6 @@ package pool_disk import ( - "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" @@ -61,12 +60,21 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { }, nil } -func (m *MetricSet) Fetch() ([]common.MapStr, error) { +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(reporter mb.ReporterV2) { content, err := m.HTTP.FetchContent() - if err != nil { - return nil, err + m.Logger().Error(err) + reporter.Error(err) + return + } + + events := eventsMapping(content) + for _, event := range events { + reporter.Event(mb.Event{MetricSetFields: event}) } - return eventsMapping(content), nil + return } diff --git a/metricbeat/module/ceph/pool_disk/pool_disk_integration_test.go b/metricbeat/module/ceph/pool_disk/pool_disk_integration_test.go index b15b73e56c5..d4a0dd3a9bb 100644 --- a/metricbeat/module/ceph/pool_disk/pool_disk_integration_test.go +++ b/metricbeat/module/ceph/pool_disk/pool_disk_integration_test.go @@ -26,9 +26,9 @@ import ( ) func TestData(t *testing.T) { - f := mbtest.NewEventsFetcher(t, getConfig()) - err := mbtest.WriteEvents(f, t) - if err != nil { + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + + if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { t.Fatal("write", err) } } diff --git a/metricbeat/module/ceph/pool_disk/pool_disk_test.go b/metricbeat/module/ceph/pool_disk/pool_disk_test.go index a64a373e72b..f5e8a3b9306 100644 --- a/metricbeat/module/ceph/pool_disk/pool_disk_test.go +++ b/metricbeat/module/ceph/pool_disk/pool_disk_test.go @@ -32,6 +32,7 @@ import ( func TestFetchEventContents(t *testing.T) { absPath, err := filepath.Abs("../_meta/testdata/") + assert.NoError(t, err) response, err := ioutil.ReadFile(absPath + "/df_sample_response.json") server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { @@ -47,12 +48,13 @@ func TestFetchEventContents(t *testing.T) { "hosts": []string{server.URL}, } - f := mbtest.NewEventsFetcher(t, config) - events, err := f.Fetch() - event := events[0] - if !assert.NoError(t, err) { - t.FailNow() + f := mbtest.NewReportingMetricSetV2(t, config) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } + assert.NotEmpty(t, events) + event := events[0].MetricSetFields t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event.StringToPrint()) From ac72b5ccb8387440d6b44efdadfd6490bfc3055e Mon Sep 17 00:00:00 2001 From: Shaunak Kashyap Date: Wed, 13 Mar 2019 06:21:40 -0700 Subject: [PATCH 194/332] Always send _type to Monitoring Bulk API (#11217) The Monitoring Bulk API (`POST _xpack/monitoring/_bulk`) does not interpret `_type` in the bulk metadata the same was as the regular Bulk API (`POST _bulk`). In the case of the Monitoring Bulk API, `_type` has a special meaning. It does not correspond to the Elasticsearch document `_type` but rather a `type` field within monitoring documents. The `_type` of those monitoring documents gets automatically set to `_doc` by the Monitoring Bulk API. Therefore, the Beats monitoring code should always send `_type` to the Monitoring Bulk API. --- libbeat/monitoring/report/elasticsearch/client.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libbeat/monitoring/report/elasticsearch/client.go b/libbeat/monitoring/report/elasticsearch/client.go index 456428e450a..7c8939d08f1 100644 --- a/libbeat/monitoring/report/elasticsearch/client.go +++ b/libbeat/monitoring/report/elasticsearch/client.go @@ -116,9 +116,7 @@ func (c *publishClient) Publish(batch publisher.Batch) error { meta := common.MapStr{ "_index": "", "_routing": nil, - } - if c.es.GetVersion().Major < 7 { - meta["_type"] = t + "_type": t, } bulk := [2]interface{}{ common.MapStr{"index": meta}, From efcf034e463e056e10ccc5cbac62b4a51099e405 Mon Sep 17 00:00:00 2001 From: kaiyan-sheng Date: Wed, 13 Mar 2019 07:29:50 -0600 Subject: [PATCH 195/332] Add instance.state.name into fields.yml (#11221) * Add instance.state.name into fields.yml * Rebase and regenerate fields.yml * Update changelog --- CHANGELOG.next.asciidoc | 1 + metricbeat/docs/fields.asciidoc | 12 +++++++++++- x-pack/metricbeat/module/aws/ec2/_meta/fields.yml | 6 +++++- x-pack/metricbeat/module/aws/fields.go | 2 +- 4 files changed, 18 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index a7403441d5f..98157459162 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -196,6 +196,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Collect metrics when EC2 instances are not in running state. {issue}11008[11008] {pull}11023[11023] - Change ECS field cloud.provider to aws. {pull}11023[11023] - Add documentation about jolokia autodiscover fields. {issue}10925[10925] {pull}10979[10979] +- Add missing aws.ec2.instance.state.name into fields.yml. {issue}11219[11219] {pull}11221[11221] *Packetbeat* diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index 243d791f81c..b75801a5f0b 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -1073,6 +1073,16 @@ type: integer The state of the instance, as a 16-bit unsigned integer. +-- + +*`aws.ec2.instance.state.name`*:: ++ +-- +type: keyword + +The state of the instance (pending | running | shutting-down | terminated | stopping | stopped). + + -- *`aws.ec2.instance.threads_per_core`*:: @@ -1080,7 +1090,7 @@ The state of the instance, as a 16-bit unsigned integer. -- type: integer -The state of the instance (pending | running | shutting-down | terminated | stopping | stopped). +The number of threads per CPU core. -- diff --git a/x-pack/metricbeat/module/aws/ec2/_meta/fields.yml b/x-pack/metricbeat/module/aws/ec2/_meta/fields.yml index 1aaefab58f7..45c76e7ac2f 100644 --- a/x-pack/metricbeat/module/aws/ec2/_meta/fields.yml +++ b/x-pack/metricbeat/module/aws/ec2/_meta/fields.yml @@ -100,7 +100,11 @@ type: integer description: > The state of the instance, as a 16-bit unsigned integer. + - name: instance.state.name + type: keyword + description: > + The state of the instance (pending | running | shutting-down | terminated | stopping | stopped). - name: instance.threads_per_core type: integer description: > - The state of the instance (pending | running | shutting-down | terminated | stopping | stopped). + The number of threads per CPU core. diff --git a/x-pack/metricbeat/module/aws/fields.go b/x-pack/metricbeat/module/aws/fields.go index 0eb1abe1e91..90d188ed156 100644 --- a/x-pack/metricbeat/module/aws/fields.go +++ b/x-pack/metricbeat/module/aws/fields.go @@ -19,5 +19,5 @@ func init() { // AssetAws returns asset data. // This is the base64 encoded gzipped contents of module/aws. func AssetAws() string { - return "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" + return "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" } From c85b904c87885c128c9c483df2e8a08cec7d5656 Mon Sep 17 00:00:00 2001 From: Jaime Soriano Pastor Date: Wed, 13 Mar 2019 16:37:29 +0100 Subject: [PATCH 196/332] Multiply also the sum in the prometheus multiplier option (#11111) --- metricbeat/helper/prometheus/metric.go | 5 +++++ metricbeat/helper/prometheus/prometheus_test.go | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/metricbeat/helper/prometheus/metric.go b/metricbeat/helper/prometheus/metric.go index 22dd721861d..c726e4ab99b 100644 --- a/metricbeat/helper/prometheus/metric.go +++ b/metricbeat/helper/prometheus/metric.go @@ -289,6 +289,10 @@ func (o opMultiplyBuckets) Process(field string, value interface{}, labels commo if !ok { return field, value, labels } + sum, ok := histogram["sum"].(float64) + if !ok { + return field, value, labels + } multiplied := common.MapStr{} for k, v := range bucket { if f, err := strconv.ParseFloat(k, 64); err == nil { @@ -299,5 +303,6 @@ func (o opMultiplyBuckets) Process(field string, value interface{}, labels commo } } histogram["bucket"] = multiplied + histogram["sum"] = sum * o.multiplier return field, histogram, labels } diff --git a/metricbeat/helper/prometheus/prometheus_test.go b/metricbeat/helper/prometheus/prometheus_test.go index 97fce8c1c6a..0bcdc3ba3ff 100644 --- a/metricbeat/helper/prometheus/prometheus_test.go +++ b/metricbeat/helper/prometheus/prometheus_test.go @@ -356,7 +356,7 @@ func TestPrometheus(t *testing.T) { "1000": uint64(3), "+Inf": uint64(5), }, - "sum": 4.31, + "sum": 4310.0, }, }, }, From c7ec7d482816cb072e212818973d91c979758d2f Mon Sep 17 00:00:00 2001 From: Alex K <8418476+fearful-symmetry@users.noreply.github.com> Date: Wed, 13 Mar 2019 10:40:52 -0500 Subject: [PATCH 197/332] re-write default config for mysql tests (#11218) --- metricbeat/module/mysql/testing.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/metricbeat/module/mysql/testing.go b/metricbeat/module/mysql/testing.go index 6036d717dc2..f732c1f205e 100644 --- a/metricbeat/module/mysql/testing.go +++ b/metricbeat/module/mysql/testing.go @@ -32,11 +32,11 @@ func GetMySQLEnvDSN() string { dsn := os.Getenv("MYSQL_DSN") if len(dsn) == 0 { - c := &mysql.Config{ - Net: "tcp", - Addr: "127.0.0.1:3306", - User: "root", - } + c := mysql.NewConfig() + c.Net = "tcp" + c.Addr = "127.0.0.1:3306" + c.User = "root" + c.Passwd = "test" dsn = c.FormatDSN() } return dsn From 08b725a2df9502ba5eec2a6b2b611247b7b4c847 Mon Sep 17 00:00:00 2001 From: Shaunak Kashyap Date: Wed, 13 Mar 2019 09:22:21 -0700 Subject: [PATCH 198/332] Connect underlying ES client so ES version is set (#11215) --- libbeat/monitoring/report/elasticsearch/client.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libbeat/monitoring/report/elasticsearch/client.go b/libbeat/monitoring/report/elasticsearch/client.go index 7c8939d08f1..b23b6255e29 100644 --- a/libbeat/monitoring/report/elasticsearch/client.go +++ b/libbeat/monitoring/report/elasticsearch/client.go @@ -21,6 +21,8 @@ import ( "encoding/json" "fmt" + "github.com/pkg/errors" + "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/libbeat/monitoring/report" @@ -48,6 +50,11 @@ func newPublishClient( func (c *publishClient) Connect() error { debugf("Monitoring client: connect.") + err := c.es.Connect() + if err != nil { + return errors.Wrap(err, "cannot connect underlying Elasticsearch client") + } + params := map[string]string{ "filter_path": "features.monitoring.enabled", } From a6a21f45a36f9dfbb88472e3477b5bfa5c2104ca Mon Sep 17 00:00:00 2001 From: kaiyan-sheng Date: Wed, 13 Mar 2019 10:27:15 -0600 Subject: [PATCH 199/332] Add getQueueUrls and SQS queue name (#11151) * Fix sqs queue name * Add function to get queueUrls * Fix field names from message to messages * Move looping through each queueURL into a separate function --- metricbeat/docs/fields.asciidoc | 10 + .../aws/aws-sdk-go-v2/service/sqs/api.go | 3915 +++++++++++++++++ .../aws-sdk-go-v2/service/sqs/checksums.go | 110 + .../service/sqs/customizations.go | 11 + .../aws/aws-sdk-go-v2/service/sqs/doc.go | 67 + .../aws/aws-sdk-go-v2/service/sqs/errors.go | 110 + .../aws/aws-sdk-go-v2/service/sqs/service.go | 85 + .../service/sqs/sqsiface/interface.go | 106 + vendor/vendor.json | 16 + x-pack/metricbeat/module/aws/fields.go | 2 +- .../aws/s3_daily_storage/_meta/data.json | 4 - .../module/aws/s3_request/_meta/data.json | 15 +- .../metricbeat/module/aws/sqs/_meta/data.json | 15 +- .../module/aws/sqs/_meta/docs.asciidoc | 1 + .../module/aws/sqs/_meta/fields.yml | 4 + x-pack/metricbeat/module/aws/sqs/data.go | 1 + x-pack/metricbeat/module/aws/sqs/sqs.go | 58 +- .../module/aws/sqs/sqs_integration_test.go | 1 + x-pack/metricbeat/module/aws/sqs/sqs_test.go | 38 + 19 files changed, 4537 insertions(+), 32 deletions(-) create mode 100644 vendor/github.com/aws/aws-sdk-go-v2/service/sqs/api.go create mode 100644 vendor/github.com/aws/aws-sdk-go-v2/service/sqs/checksums.go create mode 100644 vendor/github.com/aws/aws-sdk-go-v2/service/sqs/customizations.go create mode 100644 vendor/github.com/aws/aws-sdk-go-v2/service/sqs/doc.go create mode 100644 vendor/github.com/aws/aws-sdk-go-v2/service/sqs/errors.go create mode 100644 vendor/github.com/aws/aws-sdk-go-v2/service/sqs/service.go create mode 100644 vendor/github.com/aws/aws-sdk-go-v2/service/sqs/sqsiface/interface.go create mode 100644 x-pack/metricbeat/module/aws/sqs/sqs_test.go diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index b75801a5f0b..08d67cceeed 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -1406,6 +1406,16 @@ format: bytes The size of messages added to a queue. +-- + +*`aws.sqs.queue.name`*:: ++ +-- +type: keyword + +SQS queue name + + -- [[exported-fields-beat]] diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sqs/api.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sqs/api.go new file mode 100644 index 00000000000..72857889cfd --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sqs/api.go @@ -0,0 +1,3915 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sqs + +import ( + "fmt" + + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/internal/awsutil" + "github.com/aws/aws-sdk-go-v2/private/protocol" + "github.com/aws/aws-sdk-go-v2/private/protocol/query" +) + +const opAddPermission = "AddPermission" + +// AddPermissionRequest is a API request type for the AddPermission API operation. +type AddPermissionRequest struct { + *aws.Request + Input *AddPermissionInput + Copy func(*AddPermissionInput) AddPermissionRequest +} + +// Send marshals and sends the AddPermission API request. +func (r AddPermissionRequest) Send() (*AddPermissionOutput, error) { + err := r.Request.Send() + if err != nil { + return nil, err + } + + return r.Request.Data.(*AddPermissionOutput), nil +} + +// AddPermissionRequest returns a request value for making API operation for +// Amazon Simple Queue Service. +// +// Adds a permission to a queue for a specific principal (http://docs.aws.amazon.com/general/latest/gr/glos-chap.html#P). +// This allows sharing access to the queue. +// +// When you create a queue, you have full control access rights for the queue. +// Only you, the owner of the queue, can grant or deny permissions to the queue. +// For more information about these permissions, see Allow Developers to Write +// Messages to a Shared Queue (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-writing-an-sqs-policy.html#write-messages-to-shared-queue) +// in the Amazon Simple Queue Service Developer Guide. +// +// AddPermission writes an Amazon-SQS-generated policy. If you want to write +// your own policy, use SetQueueAttributes to upload your policy. For more information +// about writing your own policy, see Using Custom Policies with the Amazon +// SQS Access Policy Language (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-creating-custom-policies.html) +// in the Amazon Simple Queue Service Developer Guide. +// +// An Amazon SQS policy can have a maximum of 7 actions. +// +// Some actions take lists of parameters. These lists are specified using the +// param.n notation. Values of n are integers starting from 1. For example, +// a parameter list with two elements looks like this: +// +// &Attribute.1=first +// +// &Attribute.2=second +// +// Cross-account permissions don't apply to this action. For more information, +// see see Grant Cross-Account Permissions to a Role and a User Name (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name) +// in the Amazon Simple Queue Service Developer Guide. +// +// // Example sending a request using the AddPermissionRequest method. +// req := client.AddPermissionRequest(params) +// resp, err := req.Send() +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/AddPermission +func (c *SQS) AddPermissionRequest(input *AddPermissionInput) AddPermissionRequest { + op := &aws.Operation{ + Name: opAddPermission, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &AddPermissionInput{} + } + + output := &AddPermissionOutput{} + req := c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(query.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + output.responseMetadata = aws.Response{Request: req} + + return AddPermissionRequest{Request: req, Input: input, Copy: c.AddPermissionRequest} +} + +const opChangeMessageVisibility = "ChangeMessageVisibility" + +// ChangeMessageVisibilityRequest is a API request type for the ChangeMessageVisibility API operation. +type ChangeMessageVisibilityRequest struct { + *aws.Request + Input *ChangeMessageVisibilityInput + Copy func(*ChangeMessageVisibilityInput) ChangeMessageVisibilityRequest +} + +// Send marshals and sends the ChangeMessageVisibility API request. +func (r ChangeMessageVisibilityRequest) Send() (*ChangeMessageVisibilityOutput, error) { + err := r.Request.Send() + if err != nil { + return nil, err + } + + return r.Request.Data.(*ChangeMessageVisibilityOutput), nil +} + +// ChangeMessageVisibilityRequest returns a request value for making API operation for +// Amazon Simple Queue Service. +// +// Changes the visibility timeout of a specified message in a queue to a new +// value. The maximum allowed timeout value is 12 hours. For more information, +// see Visibility Timeout (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html) +// in the Amazon Simple Queue Service Developer Guide. +// +// For example, you have a message with a visibility timeout of 5 minutes. After +// 3 minutes, you call ChangeMessageVisibility with a timeout of 10 minutes. +// You can continue to call ChangeMessageVisibility to extend the visibility +// timeout to a maximum of 12 hours. If you try to extend the visibility timeout +// beyond 12 hours, your request is rejected. +// +// A message is considered to be in flight after it's received from a queue +// by a consumer, but not yet deleted from the queue. +// +// For standard queues, there can be a maximum of 120,000 inflight messages +// per queue. If you reach this limit, Amazon SQS returns the OverLimit error +// message. To avoid reaching the limit, you should delete messages from the +// queue after they're processed. You can also increase the number of queues +// you use to process your messages. +// +// For FIFO queues, there can be a maximum of 20,000 inflight messages per queue. +// If you reach this limit, Amazon SQS returns no error messages. +// +// If you attempt to set the VisibilityTimeout to a value greater than the maximum +// time left, Amazon SQS returns an error. Amazon SQS doesn't automatically +// recalculate and increase the timeout to the maximum remaining time. +// +// Unlike with a queue, when you change the visibility timeout for a specific +// message the timeout value is applied immediately but isn't saved in memory +// for that message. If you don't delete a message after it is received, the +// visibility timeout for the message reverts to the original timeout value +// (not to the value you set using the ChangeMessageVisibility action) the next +// time the message is received. +// +// // Example sending a request using the ChangeMessageVisibilityRequest method. +// req := client.ChangeMessageVisibilityRequest(params) +// resp, err := req.Send() +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ChangeMessageVisibility +func (c *SQS) ChangeMessageVisibilityRequest(input *ChangeMessageVisibilityInput) ChangeMessageVisibilityRequest { + op := &aws.Operation{ + Name: opChangeMessageVisibility, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ChangeMessageVisibilityInput{} + } + + output := &ChangeMessageVisibilityOutput{} + req := c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(query.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + output.responseMetadata = aws.Response{Request: req} + + return ChangeMessageVisibilityRequest{Request: req, Input: input, Copy: c.ChangeMessageVisibilityRequest} +} + +const opChangeMessageVisibilityBatch = "ChangeMessageVisibilityBatch" + +// ChangeMessageVisibilityBatchRequest is a API request type for the ChangeMessageVisibilityBatch API operation. +type ChangeMessageVisibilityBatchRequest struct { + *aws.Request + Input *ChangeMessageVisibilityBatchInput + Copy func(*ChangeMessageVisibilityBatchInput) ChangeMessageVisibilityBatchRequest +} + +// Send marshals and sends the ChangeMessageVisibilityBatch API request. +func (r ChangeMessageVisibilityBatchRequest) Send() (*ChangeMessageVisibilityBatchOutput, error) { + err := r.Request.Send() + if err != nil { + return nil, err + } + + return r.Request.Data.(*ChangeMessageVisibilityBatchOutput), nil +} + +// ChangeMessageVisibilityBatchRequest returns a request value for making API operation for +// Amazon Simple Queue Service. +// +// Changes the visibility timeout of multiple messages. This is a batch version +// of ChangeMessageVisibility. The result of the action on each message is reported +// individually in the response. You can send up to 10 ChangeMessageVisibility +// requests with each ChangeMessageVisibilityBatch action. +// +// Because the batch request can result in a combination of successful and unsuccessful +// actions, you should check for batch errors even when the call returns an +// HTTP status code of 200. +// +// Some actions take lists of parameters. These lists are specified using the +// param.n notation. Values of n are integers starting from 1. For example, +// a parameter list with two elements looks like this: +// +// &Attribute.1=first +// +// &Attribute.2=second +// +// // Example sending a request using the ChangeMessageVisibilityBatchRequest method. +// req := client.ChangeMessageVisibilityBatchRequest(params) +// resp, err := req.Send() +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ChangeMessageVisibilityBatch +func (c *SQS) ChangeMessageVisibilityBatchRequest(input *ChangeMessageVisibilityBatchInput) ChangeMessageVisibilityBatchRequest { + op := &aws.Operation{ + Name: opChangeMessageVisibilityBatch, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ChangeMessageVisibilityBatchInput{} + } + + output := &ChangeMessageVisibilityBatchOutput{} + req := c.newRequest(op, input, output) + output.responseMetadata = aws.Response{Request: req} + + return ChangeMessageVisibilityBatchRequest{Request: req, Input: input, Copy: c.ChangeMessageVisibilityBatchRequest} +} + +const opCreateQueue = "CreateQueue" + +// CreateQueueRequest is a API request type for the CreateQueue API operation. +type CreateQueueRequest struct { + *aws.Request + Input *CreateQueueInput + Copy func(*CreateQueueInput) CreateQueueRequest +} + +// Send marshals and sends the CreateQueue API request. +func (r CreateQueueRequest) Send() (*CreateQueueOutput, error) { + err := r.Request.Send() + if err != nil { + return nil, err + } + + return r.Request.Data.(*CreateQueueOutput), nil +} + +// CreateQueueRequest returns a request value for making API operation for +// Amazon Simple Queue Service. +// +// Creates a new standard or FIFO queue. You can pass one or more attributes +// in the request. Keep the following caveats in mind: +// +// * If you don't specify the FifoQueue attribute, Amazon SQS creates a standard +// queue. +// +// You can't change the queue type after you create it and you can't convert +// an existing standard queue into a FIFO queue. You must either create a +// new FIFO queue for your application or delete your existing standard queue +// and recreate it as a FIFO queue. For more information, see Moving From +// a Standard Queue to a FIFO Queue (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-moving) +// in the Amazon Simple Queue Service Developer Guide. +// +// * If you don't provide a value for an attribute, the queue is created +// with the default value for the attribute. +// +// * If you delete a queue, you must wait at least 60 seconds before creating +// a queue with the same name. +// +// To successfully create a new queue, you must provide a queue name that adheres +// to the limits related to queues (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/limits-queues.html) +// and is unique within the scope of your queues. +// +// To get the queue URL, use the GetQueueUrl action. GetQueueUrl requires only +// the QueueName parameter. be aware of existing queue names: +// +// * If you provide the name of an existing queue along with the exact names +// and values of all the queue's attributes, CreateQueue returns the queue +// URL for the existing queue. +// +// * If the queue name, attribute names, or attribute values don't match +// an existing queue, CreateQueue returns an error. +// +// Some actions take lists of parameters. These lists are specified using the +// param.n notation. Values of n are integers starting from 1. For example, +// a parameter list with two elements looks like this: +// +// &Attribute.1=first +// +// &Attribute.2=second +// +// Cross-account permissions don't apply to this action. For more information, +// see see Grant Cross-Account Permissions to a Role and a User Name (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name) +// in the Amazon Simple Queue Service Developer Guide. +// +// // Example sending a request using the CreateQueueRequest method. +// req := client.CreateQueueRequest(params) +// resp, err := req.Send() +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/CreateQueue +func (c *SQS) CreateQueueRequest(input *CreateQueueInput) CreateQueueRequest { + op := &aws.Operation{ + Name: opCreateQueue, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &CreateQueueInput{} + } + + output := &CreateQueueOutput{} + req := c.newRequest(op, input, output) + output.responseMetadata = aws.Response{Request: req} + + return CreateQueueRequest{Request: req, Input: input, Copy: c.CreateQueueRequest} +} + +const opDeleteMessage = "DeleteMessage" + +// DeleteMessageRequest is a API request type for the DeleteMessage API operation. +type DeleteMessageRequest struct { + *aws.Request + Input *DeleteMessageInput + Copy func(*DeleteMessageInput) DeleteMessageRequest +} + +// Send marshals and sends the DeleteMessage API request. +func (r DeleteMessageRequest) Send() (*DeleteMessageOutput, error) { + err := r.Request.Send() + if err != nil { + return nil, err + } + + return r.Request.Data.(*DeleteMessageOutput), nil +} + +// DeleteMessageRequest returns a request value for making API operation for +// Amazon Simple Queue Service. +// +// Deletes the specified message from the specified queue. To select the message +// to delete, use the ReceiptHandle of the message (not the MessageId which +// you receive when you send the message). Amazon SQS can delete a message from +// a queue even if a visibility timeout setting causes the message to be locked +// by another consumer. Amazon SQS automatically deletes messages left in a +// queue longer than the retention period configured for the queue. +// +// The ReceiptHandle is associated with a specific instance of receiving a message. +// If you receive a message more than once, the ReceiptHandle is different each +// time you receive a message. When you use the DeleteMessage action, you must +// provide the most recently received ReceiptHandle for the message (otherwise, +// the request succeeds, but the message might not be deleted). +// +// For standard queues, it is possible to receive a message even after you delete +// it. This might happen on rare occasions if one of the servers which stores +// a copy of the message is unavailable when you send the request to delete +// the message. The copy remains on the server and might be returned to you +// during a subsequent receive request. You should ensure that your application +// is idempotent, so that receiving a message more than once does not cause +// issues. +// +// // Example sending a request using the DeleteMessageRequest method. +// req := client.DeleteMessageRequest(params) +// resp, err := req.Send() +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/DeleteMessage +func (c *SQS) DeleteMessageRequest(input *DeleteMessageInput) DeleteMessageRequest { + op := &aws.Operation{ + Name: opDeleteMessage, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteMessageInput{} + } + + output := &DeleteMessageOutput{} + req := c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(query.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + output.responseMetadata = aws.Response{Request: req} + + return DeleteMessageRequest{Request: req, Input: input, Copy: c.DeleteMessageRequest} +} + +const opDeleteMessageBatch = "DeleteMessageBatch" + +// DeleteMessageBatchRequest is a API request type for the DeleteMessageBatch API operation. +type DeleteMessageBatchRequest struct { + *aws.Request + Input *DeleteMessageBatchInput + Copy func(*DeleteMessageBatchInput) DeleteMessageBatchRequest +} + +// Send marshals and sends the DeleteMessageBatch API request. +func (r DeleteMessageBatchRequest) Send() (*DeleteMessageBatchOutput, error) { + err := r.Request.Send() + if err != nil { + return nil, err + } + + return r.Request.Data.(*DeleteMessageBatchOutput), nil +} + +// DeleteMessageBatchRequest returns a request value for making API operation for +// Amazon Simple Queue Service. +// +// Deletes up to ten messages from the specified queue. This is a batch version +// of DeleteMessage. The result of the action on each message is reported individually +// in the response. +// +// Because the batch request can result in a combination of successful and unsuccessful +// actions, you should check for batch errors even when the call returns an +// HTTP status code of 200. +// +// Some actions take lists of parameters. These lists are specified using the +// param.n notation. Values of n are integers starting from 1. For example, +// a parameter list with two elements looks like this: +// +// &Attribute.1=first +// +// &Attribute.2=second +// +// // Example sending a request using the DeleteMessageBatchRequest method. +// req := client.DeleteMessageBatchRequest(params) +// resp, err := req.Send() +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/DeleteMessageBatch +func (c *SQS) DeleteMessageBatchRequest(input *DeleteMessageBatchInput) DeleteMessageBatchRequest { + op := &aws.Operation{ + Name: opDeleteMessageBatch, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteMessageBatchInput{} + } + + output := &DeleteMessageBatchOutput{} + req := c.newRequest(op, input, output) + output.responseMetadata = aws.Response{Request: req} + + return DeleteMessageBatchRequest{Request: req, Input: input, Copy: c.DeleteMessageBatchRequest} +} + +const opDeleteQueue = "DeleteQueue" + +// DeleteQueueRequest is a API request type for the DeleteQueue API operation. +type DeleteQueueRequest struct { + *aws.Request + Input *DeleteQueueInput + Copy func(*DeleteQueueInput) DeleteQueueRequest +} + +// Send marshals and sends the DeleteQueue API request. +func (r DeleteQueueRequest) Send() (*DeleteQueueOutput, error) { + err := r.Request.Send() + if err != nil { + return nil, err + } + + return r.Request.Data.(*DeleteQueueOutput), nil +} + +// DeleteQueueRequest returns a request value for making API operation for +// Amazon Simple Queue Service. +// +// Deletes the queue specified by the QueueUrl, regardless of the queue's contents. +// If the specified queue doesn't exist, Amazon SQS returns a successful response. +// +// Be careful with the DeleteQueue action: When you delete a queue, any messages +// in the queue are no longer available. +// +// When you delete a queue, the deletion process takes up to 60 seconds. Requests +// you send involving that queue during the 60 seconds might succeed. For example, +// a SendMessage request might succeed, but after 60 seconds the queue and the +// message you sent no longer exist. +// +// When you delete a queue, you must wait at least 60 seconds before creating +// a queue with the same name. +// +// Cross-account permissions don't apply to this action. For more information, +// see see Grant Cross-Account Permissions to a Role and a User Name (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name) +// in the Amazon Simple Queue Service Developer Guide. +// +// // Example sending a request using the DeleteQueueRequest method. +// req := client.DeleteQueueRequest(params) +// resp, err := req.Send() +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/DeleteQueue +func (c *SQS) DeleteQueueRequest(input *DeleteQueueInput) DeleteQueueRequest { + op := &aws.Operation{ + Name: opDeleteQueue, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &DeleteQueueInput{} + } + + output := &DeleteQueueOutput{} + req := c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(query.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + output.responseMetadata = aws.Response{Request: req} + + return DeleteQueueRequest{Request: req, Input: input, Copy: c.DeleteQueueRequest} +} + +const opGetQueueAttributes = "GetQueueAttributes" + +// GetQueueAttributesRequest is a API request type for the GetQueueAttributes API operation. +type GetQueueAttributesRequest struct { + *aws.Request + Input *GetQueueAttributesInput + Copy func(*GetQueueAttributesInput) GetQueueAttributesRequest +} + +// Send marshals and sends the GetQueueAttributes API request. +func (r GetQueueAttributesRequest) Send() (*GetQueueAttributesOutput, error) { + err := r.Request.Send() + if err != nil { + return nil, err + } + + return r.Request.Data.(*GetQueueAttributesOutput), nil +} + +// GetQueueAttributesRequest returns a request value for making API operation for +// Amazon Simple Queue Service. +// +// Gets attributes for the specified queue. +// +// To determine whether a queue is FIFO (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html), +// you can check whether QueueName ends with the .fifo suffix. +// +// Some actions take lists of parameters. These lists are specified using the +// param.n notation. Values of n are integers starting from 1. For example, +// a parameter list with two elements looks like this: +// +// &Attribute.1=first +// +// &Attribute.2=second +// +// // Example sending a request using the GetQueueAttributesRequest method. +// req := client.GetQueueAttributesRequest(params) +// resp, err := req.Send() +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/GetQueueAttributes +func (c *SQS) GetQueueAttributesRequest(input *GetQueueAttributesInput) GetQueueAttributesRequest { + op := &aws.Operation{ + Name: opGetQueueAttributes, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetQueueAttributesInput{} + } + + output := &GetQueueAttributesOutput{} + req := c.newRequest(op, input, output) + output.responseMetadata = aws.Response{Request: req} + + return GetQueueAttributesRequest{Request: req, Input: input, Copy: c.GetQueueAttributesRequest} +} + +const opGetQueueUrl = "GetQueueUrl" + +// GetQueueUrlRequest is a API request type for the GetQueueUrl API operation. +type GetQueueUrlRequest struct { + *aws.Request + Input *GetQueueUrlInput + Copy func(*GetQueueUrlInput) GetQueueUrlRequest +} + +// Send marshals and sends the GetQueueUrl API request. +func (r GetQueueUrlRequest) Send() (*GetQueueUrlOutput, error) { + err := r.Request.Send() + if err != nil { + return nil, err + } + + return r.Request.Data.(*GetQueueUrlOutput), nil +} + +// GetQueueUrlRequest returns a request value for making API operation for +// Amazon Simple Queue Service. +// +// Returns the URL of an existing Amazon SQS queue. +// +// To access a queue that belongs to another AWS account, use the QueueOwnerAWSAccountId +// parameter to specify the account ID of the queue's owner. The queue's owner +// must grant you permission to access the queue. For more information about +// shared queue access, see AddPermission or see Allow Developers to Write Messages +// to a Shared Queue (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-writing-an-sqs-policy.html#write-messages-to-shared-queue) +// in the Amazon Simple Queue Service Developer Guide. +// +// // Example sending a request using the GetQueueUrlRequest method. +// req := client.GetQueueUrlRequest(params) +// resp, err := req.Send() +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/GetQueueUrl +func (c *SQS) GetQueueUrlRequest(input *GetQueueUrlInput) GetQueueUrlRequest { + op := &aws.Operation{ + Name: opGetQueueUrl, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &GetQueueUrlInput{} + } + + output := &GetQueueUrlOutput{} + req := c.newRequest(op, input, output) + output.responseMetadata = aws.Response{Request: req} + + return GetQueueUrlRequest{Request: req, Input: input, Copy: c.GetQueueUrlRequest} +} + +const opListDeadLetterSourceQueues = "ListDeadLetterSourceQueues" + +// ListDeadLetterSourceQueuesRequest is a API request type for the ListDeadLetterSourceQueues API operation. +type ListDeadLetterSourceQueuesRequest struct { + *aws.Request + Input *ListDeadLetterSourceQueuesInput + Copy func(*ListDeadLetterSourceQueuesInput) ListDeadLetterSourceQueuesRequest +} + +// Send marshals and sends the ListDeadLetterSourceQueues API request. +func (r ListDeadLetterSourceQueuesRequest) Send() (*ListDeadLetterSourceQueuesOutput, error) { + err := r.Request.Send() + if err != nil { + return nil, err + } + + return r.Request.Data.(*ListDeadLetterSourceQueuesOutput), nil +} + +// ListDeadLetterSourceQueuesRequest returns a request value for making API operation for +// Amazon Simple Queue Service. +// +// Returns a list of your queues that have the RedrivePolicy queue attribute +// configured with a dead-letter queue. +// +// For more information about using dead-letter queues, see Using Amazon SQS +// Dead-Letter Queues (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html) +// in the Amazon Simple Queue Service Developer Guide. +// +// // Example sending a request using the ListDeadLetterSourceQueuesRequest method. +// req := client.ListDeadLetterSourceQueuesRequest(params) +// resp, err := req.Send() +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ListDeadLetterSourceQueues +func (c *SQS) ListDeadLetterSourceQueuesRequest(input *ListDeadLetterSourceQueuesInput) ListDeadLetterSourceQueuesRequest { + op := &aws.Operation{ + Name: opListDeadLetterSourceQueues, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListDeadLetterSourceQueuesInput{} + } + + output := &ListDeadLetterSourceQueuesOutput{} + req := c.newRequest(op, input, output) + output.responseMetadata = aws.Response{Request: req} + + return ListDeadLetterSourceQueuesRequest{Request: req, Input: input, Copy: c.ListDeadLetterSourceQueuesRequest} +} + +const opListQueueTags = "ListQueueTags" + +// ListQueueTagsRequest is a API request type for the ListQueueTags API operation. +type ListQueueTagsRequest struct { + *aws.Request + Input *ListQueueTagsInput + Copy func(*ListQueueTagsInput) ListQueueTagsRequest +} + +// Send marshals and sends the ListQueueTags API request. +func (r ListQueueTagsRequest) Send() (*ListQueueTagsOutput, error) { + err := r.Request.Send() + if err != nil { + return nil, err + } + + return r.Request.Data.(*ListQueueTagsOutput), nil +} + +// ListQueueTagsRequest returns a request value for making API operation for +// Amazon Simple Queue Service. +// +// List all cost allocation tags added to the specified Amazon SQS queue. For +// an overview, see Tagging Your Amazon SQS Queues (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-tags.html) +// in the Amazon Simple Queue Service Developer Guide. +// +// When you use queue tags, keep the following guidelines in mind: +// +// * Adding more than 50 tags to a queue isn't recommended. +// +// * Tags don't have any semantic meaning. Amazon SQS interprets tags as +// character strings. +// +// * Tags are case-sensitive. +// +// * A new tag with a key identical to that of an existing tag overwrites +// the existing tag. +// +// * Tagging actions are limited to 5 TPS per AWS account. If your application +// requires a higher throughput, file a technical support request (https://console.aws.amazon.com/support/home#/case/create?issueType=technical). +// +// For a full list of tag restrictions, see Limits Related to Queues (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-limits.html#limits-queues) +// in the Amazon Simple Queue Service Developer Guide. +// +// Cross-account permissions don't apply to this action. For more information, +// see see Grant Cross-Account Permissions to a Role and a User Name (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name) +// in the Amazon Simple Queue Service Developer Guide. +// +// // Example sending a request using the ListQueueTagsRequest method. +// req := client.ListQueueTagsRequest(params) +// resp, err := req.Send() +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ListQueueTags +func (c *SQS) ListQueueTagsRequest(input *ListQueueTagsInput) ListQueueTagsRequest { + op := &aws.Operation{ + Name: opListQueueTags, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListQueueTagsInput{} + } + + output := &ListQueueTagsOutput{} + req := c.newRequest(op, input, output) + output.responseMetadata = aws.Response{Request: req} + + return ListQueueTagsRequest{Request: req, Input: input, Copy: c.ListQueueTagsRequest} +} + +const opListQueues = "ListQueues" + +// ListQueuesRequest is a API request type for the ListQueues API operation. +type ListQueuesRequest struct { + *aws.Request + Input *ListQueuesInput + Copy func(*ListQueuesInput) ListQueuesRequest +} + +// Send marshals and sends the ListQueues API request. +func (r ListQueuesRequest) Send() (*ListQueuesOutput, error) { + err := r.Request.Send() + if err != nil { + return nil, err + } + + return r.Request.Data.(*ListQueuesOutput), nil +} + +// ListQueuesRequest returns a request value for making API operation for +// Amazon Simple Queue Service. +// +// Returns a list of your queues. The maximum number of queues that can be returned +// is 1,000. If you specify a value for the optional QueueNamePrefix parameter, +// only queues with a name that begins with the specified value are returned. +// +// Cross-account permissions don't apply to this action. For more information, +// see see Grant Cross-Account Permissions to a Role and a User Name (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name) +// in the Amazon Simple Queue Service Developer Guide. +// +// // Example sending a request using the ListQueuesRequest method. +// req := client.ListQueuesRequest(params) +// resp, err := req.Send() +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ListQueues +func (c *SQS) ListQueuesRequest(input *ListQueuesInput) ListQueuesRequest { + op := &aws.Operation{ + Name: opListQueues, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ListQueuesInput{} + } + + output := &ListQueuesOutput{} + req := c.newRequest(op, input, output) + output.responseMetadata = aws.Response{Request: req} + + return ListQueuesRequest{Request: req, Input: input, Copy: c.ListQueuesRequest} +} + +const opPurgeQueue = "PurgeQueue" + +// PurgeQueueRequest is a API request type for the PurgeQueue API operation. +type PurgeQueueRequest struct { + *aws.Request + Input *PurgeQueueInput + Copy func(*PurgeQueueInput) PurgeQueueRequest +} + +// Send marshals and sends the PurgeQueue API request. +func (r PurgeQueueRequest) Send() (*PurgeQueueOutput, error) { + err := r.Request.Send() + if err != nil { + return nil, err + } + + return r.Request.Data.(*PurgeQueueOutput), nil +} + +// PurgeQueueRequest returns a request value for making API operation for +// Amazon Simple Queue Service. +// +// Deletes the messages in a queue specified by the QueueURL parameter. +// +// When you use the PurgeQueue action, you can't retrieve any messages deleted +// from a queue. +// +// The message deletion process takes up to 60 seconds. We recommend waiting +// for 60 seconds regardless of your queue's size. +// +// Messages sent to the queue before you call PurgeQueue might be received but +// are deleted within the next minute. +// +// Messages sent to the queue after you call PurgeQueue might be deleted while +// the queue is being purged. +// +// // Example sending a request using the PurgeQueueRequest method. +// req := client.PurgeQueueRequest(params) +// resp, err := req.Send() +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/PurgeQueue +func (c *SQS) PurgeQueueRequest(input *PurgeQueueInput) PurgeQueueRequest { + op := &aws.Operation{ + Name: opPurgeQueue, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &PurgeQueueInput{} + } + + output := &PurgeQueueOutput{} + req := c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(query.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + output.responseMetadata = aws.Response{Request: req} + + return PurgeQueueRequest{Request: req, Input: input, Copy: c.PurgeQueueRequest} +} + +const opReceiveMessage = "ReceiveMessage" + +// ReceiveMessageRequest is a API request type for the ReceiveMessage API operation. +type ReceiveMessageRequest struct { + *aws.Request + Input *ReceiveMessageInput + Copy func(*ReceiveMessageInput) ReceiveMessageRequest +} + +// Send marshals and sends the ReceiveMessage API request. +func (r ReceiveMessageRequest) Send() (*ReceiveMessageOutput, error) { + err := r.Request.Send() + if err != nil { + return nil, err + } + + return r.Request.Data.(*ReceiveMessageOutput), nil +} + +// ReceiveMessageRequest returns a request value for making API operation for +// Amazon Simple Queue Service. +// +// Retrieves one or more messages (up to 10), from the specified queue. Using +// the WaitTimeSeconds parameter enables long-poll support. For more information, +// see Amazon SQS Long Polling (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-long-polling.html) +// in the Amazon Simple Queue Service Developer Guide. +// +// Short poll is the default behavior where a weighted random set of machines +// is sampled on a ReceiveMessage call. Thus, only the messages on the sampled +// machines are returned. If the number of messages in the queue is small (fewer +// than 1,000), you most likely get fewer messages than you requested per ReceiveMessage +// call. If the number of messages in the queue is extremely small, you might +// not receive any messages in a particular ReceiveMessage response. If this +// happens, repeat the request. +// +// For each message returned, the response includes the following: +// +// * The message body. +// +// * An MD5 digest of the message body. For information about MD5, see RFC1321 +// (https://www.ietf.org/rfc/rfc1321.txt). +// +// * The MessageId you received when you sent the message to the queue. +// +// * The receipt handle. +// +// * The message attributes. +// +// * An MD5 digest of the message attributes. +// +// The receipt handle is the identifier you must provide when deleting the message. +// For more information, see Queue and Message Identifiers (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-message-identifiers.html) +// in the Amazon Simple Queue Service Developer Guide. +// +// You can provide the VisibilityTimeout parameter in your request. The parameter +// is applied to the messages that Amazon SQS returns in the response. If you +// don't include the parameter, the overall visibility timeout for the queue +// is used for the returned messages. For more information, see Visibility Timeout +// (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html) +// in the Amazon Simple Queue Service Developer Guide. +// +// A message that isn't deleted or a message whose visibility isn't extended +// before the visibility timeout expires counts as a failed receive. Depending +// on the configuration of the queue, the message might be sent to the dead-letter +// queue. +// +// In the future, new attributes might be added. If you write code that calls +// this action, we recommend that you structure your code so that it can handle +// new attributes gracefully. +// +// // Example sending a request using the ReceiveMessageRequest method. +// req := client.ReceiveMessageRequest(params) +// resp, err := req.Send() +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ReceiveMessage +func (c *SQS) ReceiveMessageRequest(input *ReceiveMessageInput) ReceiveMessageRequest { + op := &aws.Operation{ + Name: opReceiveMessage, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &ReceiveMessageInput{} + } + + output := &ReceiveMessageOutput{} + req := c.newRequest(op, input, output) + output.responseMetadata = aws.Response{Request: req} + + return ReceiveMessageRequest{Request: req, Input: input, Copy: c.ReceiveMessageRequest} +} + +const opRemovePermission = "RemovePermission" + +// RemovePermissionRequest is a API request type for the RemovePermission API operation. +type RemovePermissionRequest struct { + *aws.Request + Input *RemovePermissionInput + Copy func(*RemovePermissionInput) RemovePermissionRequest +} + +// Send marshals and sends the RemovePermission API request. +func (r RemovePermissionRequest) Send() (*RemovePermissionOutput, error) { + err := r.Request.Send() + if err != nil { + return nil, err + } + + return r.Request.Data.(*RemovePermissionOutput), nil +} + +// RemovePermissionRequest returns a request value for making API operation for +// Amazon Simple Queue Service. +// +// Revokes any permissions in the queue policy that matches the specified Label +// parameter. +// +// Only the owner of a queue can remove permissions from it. +// +// Cross-account permissions don't apply to this action. For more information, +// see see Grant Cross-Account Permissions to a Role and a User Name (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name) +// in the Amazon Simple Queue Service Developer Guide. +// +// // Example sending a request using the RemovePermissionRequest method. +// req := client.RemovePermissionRequest(params) +// resp, err := req.Send() +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/RemovePermission +func (c *SQS) RemovePermissionRequest(input *RemovePermissionInput) RemovePermissionRequest { + op := &aws.Operation{ + Name: opRemovePermission, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &RemovePermissionInput{} + } + + output := &RemovePermissionOutput{} + req := c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(query.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + output.responseMetadata = aws.Response{Request: req} + + return RemovePermissionRequest{Request: req, Input: input, Copy: c.RemovePermissionRequest} +} + +const opSendMessage = "SendMessage" + +// SendMessageRequest is a API request type for the SendMessage API operation. +type SendMessageRequest struct { + *aws.Request + Input *SendMessageInput + Copy func(*SendMessageInput) SendMessageRequest +} + +// Send marshals and sends the SendMessage API request. +func (r SendMessageRequest) Send() (*SendMessageOutput, error) { + err := r.Request.Send() + if err != nil { + return nil, err + } + + return r.Request.Data.(*SendMessageOutput), nil +} + +// SendMessageRequest returns a request value for making API operation for +// Amazon Simple Queue Service. +// +// Delivers a message to the specified queue. +// +// A message can include only XML, JSON, and unformatted text. The following +// Unicode characters are allowed: +// +// #x9 | #xA | #xD | #x20 to #xD7FF | #xE000 to #xFFFD | #x10000 to #x10FFFF +// +// Any characters not included in this list will be rejected. For more information, +// see the W3C specification for characters (http://www.w3.org/TR/REC-xml/#charsets). +// +// // Example sending a request using the SendMessageRequest method. +// req := client.SendMessageRequest(params) +// resp, err := req.Send() +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/SendMessage +func (c *SQS) SendMessageRequest(input *SendMessageInput) SendMessageRequest { + op := &aws.Operation{ + Name: opSendMessage, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &SendMessageInput{} + } + + output := &SendMessageOutput{} + req := c.newRequest(op, input, output) + output.responseMetadata = aws.Response{Request: req} + + return SendMessageRequest{Request: req, Input: input, Copy: c.SendMessageRequest} +} + +const opSendMessageBatch = "SendMessageBatch" + +// SendMessageBatchRequest is a API request type for the SendMessageBatch API operation. +type SendMessageBatchRequest struct { + *aws.Request + Input *SendMessageBatchInput + Copy func(*SendMessageBatchInput) SendMessageBatchRequest +} + +// Send marshals and sends the SendMessageBatch API request. +func (r SendMessageBatchRequest) Send() (*SendMessageBatchOutput, error) { + err := r.Request.Send() + if err != nil { + return nil, err + } + + return r.Request.Data.(*SendMessageBatchOutput), nil +} + +// SendMessageBatchRequest returns a request value for making API operation for +// Amazon Simple Queue Service. +// +// Delivers up to ten messages to the specified queue. This is a batch version +// of SendMessage. For a FIFO queue, multiple messages within a single batch +// are enqueued in the order they are sent. +// +// The result of sending each message is reported individually in the response. +// Because the batch request can result in a combination of successful and unsuccessful +// actions, you should check for batch errors even when the call returns an +// HTTP status code of 200. +// +// The maximum allowed individual message size and the maximum total payload +// size (the sum of the individual lengths of all of the batched messages) are +// both 256 KB (262,144 bytes). +// +// A message can include only XML, JSON, and unformatted text. The following +// Unicode characters are allowed: +// +// #x9 | #xA | #xD | #x20 to #xD7FF | #xE000 to #xFFFD | #x10000 to #x10FFFF +// +// Any characters not included in this list will be rejected. For more information, +// see the W3C specification for characters (http://www.w3.org/TR/REC-xml/#charsets). +// +// If you don't specify the DelaySeconds parameter for an entry, Amazon SQS +// uses the default value for the queue. +// +// Some actions take lists of parameters. These lists are specified using the +// param.n notation. Values of n are integers starting from 1. For example, +// a parameter list with two elements looks like this: +// +// &Attribute.1=first +// +// &Attribute.2=second +// +// // Example sending a request using the SendMessageBatchRequest method. +// req := client.SendMessageBatchRequest(params) +// resp, err := req.Send() +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/SendMessageBatch +func (c *SQS) SendMessageBatchRequest(input *SendMessageBatchInput) SendMessageBatchRequest { + op := &aws.Operation{ + Name: opSendMessageBatch, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &SendMessageBatchInput{} + } + + output := &SendMessageBatchOutput{} + req := c.newRequest(op, input, output) + output.responseMetadata = aws.Response{Request: req} + + return SendMessageBatchRequest{Request: req, Input: input, Copy: c.SendMessageBatchRequest} +} + +const opSetQueueAttributes = "SetQueueAttributes" + +// SetQueueAttributesRequest is a API request type for the SetQueueAttributes API operation. +type SetQueueAttributesRequest struct { + *aws.Request + Input *SetQueueAttributesInput + Copy func(*SetQueueAttributesInput) SetQueueAttributesRequest +} + +// Send marshals and sends the SetQueueAttributes API request. +func (r SetQueueAttributesRequest) Send() (*SetQueueAttributesOutput, error) { + err := r.Request.Send() + if err != nil { + return nil, err + } + + return r.Request.Data.(*SetQueueAttributesOutput), nil +} + +// SetQueueAttributesRequest returns a request value for making API operation for +// Amazon Simple Queue Service. +// +// Sets the value of one or more queue attributes. When you change a queue's +// attributes, the change can take up to 60 seconds for most of the attributes +// to propagate throughout the Amazon SQS system. Changes made to the MessageRetentionPeriod +// attribute can take up to 15 minutes. +// +// In the future, new attributes might be added. If you write code that calls +// this action, we recommend that you structure your code so that it can handle +// new attributes gracefully. +// +// Cross-account permissions don't apply to this action. For more information, +// see see Grant Cross-Account Permissions to a Role and a User Name (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name) +// in the Amazon Simple Queue Service Developer Guide. +// +// // Example sending a request using the SetQueueAttributesRequest method. +// req := client.SetQueueAttributesRequest(params) +// resp, err := req.Send() +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/SetQueueAttributes +func (c *SQS) SetQueueAttributesRequest(input *SetQueueAttributesInput) SetQueueAttributesRequest { + op := &aws.Operation{ + Name: opSetQueueAttributes, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &SetQueueAttributesInput{} + } + + output := &SetQueueAttributesOutput{} + req := c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(query.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + output.responseMetadata = aws.Response{Request: req} + + return SetQueueAttributesRequest{Request: req, Input: input, Copy: c.SetQueueAttributesRequest} +} + +const opTagQueue = "TagQueue" + +// TagQueueRequest is a API request type for the TagQueue API operation. +type TagQueueRequest struct { + *aws.Request + Input *TagQueueInput + Copy func(*TagQueueInput) TagQueueRequest +} + +// Send marshals and sends the TagQueue API request. +func (r TagQueueRequest) Send() (*TagQueueOutput, error) { + err := r.Request.Send() + if err != nil { + return nil, err + } + + return r.Request.Data.(*TagQueueOutput), nil +} + +// TagQueueRequest returns a request value for making API operation for +// Amazon Simple Queue Service. +// +// Add cost allocation tags to the specified Amazon SQS queue. For an overview, +// see Tagging Your Amazon SQS Queues (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-tags.html) +// in the Amazon Simple Queue Service Developer Guide. +// +// When you use queue tags, keep the following guidelines in mind: +// +// * Adding more than 50 tags to a queue isn't recommended. +// +// * Tags don't have any semantic meaning. Amazon SQS interprets tags as +// character strings. +// +// * Tags are case-sensitive. +// +// * A new tag with a key identical to that of an existing tag overwrites +// the existing tag. +// +// * Tagging actions are limited to 5 TPS per AWS account. If your application +// requires a higher throughput, file a technical support request (https://console.aws.amazon.com/support/home#/case/create?issueType=technical). +// +// For a full list of tag restrictions, see Limits Related to Queues (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-limits.html#limits-queues) +// in the Amazon Simple Queue Service Developer Guide. +// +// Cross-account permissions don't apply to this action. For more information, +// see see Grant Cross-Account Permissions to a Role and a User Name (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name) +// in the Amazon Simple Queue Service Developer Guide. +// +// // Example sending a request using the TagQueueRequest method. +// req := client.TagQueueRequest(params) +// resp, err := req.Send() +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/TagQueue +func (c *SQS) TagQueueRequest(input *TagQueueInput) TagQueueRequest { + op := &aws.Operation{ + Name: opTagQueue, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &TagQueueInput{} + } + + output := &TagQueueOutput{} + req := c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(query.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + output.responseMetadata = aws.Response{Request: req} + + return TagQueueRequest{Request: req, Input: input, Copy: c.TagQueueRequest} +} + +const opUntagQueue = "UntagQueue" + +// UntagQueueRequest is a API request type for the UntagQueue API operation. +type UntagQueueRequest struct { + *aws.Request + Input *UntagQueueInput + Copy func(*UntagQueueInput) UntagQueueRequest +} + +// Send marshals and sends the UntagQueue API request. +func (r UntagQueueRequest) Send() (*UntagQueueOutput, error) { + err := r.Request.Send() + if err != nil { + return nil, err + } + + return r.Request.Data.(*UntagQueueOutput), nil +} + +// UntagQueueRequest returns a request value for making API operation for +// Amazon Simple Queue Service. +// +// Remove cost allocation tags from the specified Amazon SQS queue. For an overview, +// see Tagging Your Amazon SQS Queues (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-tags.html) +// in the Amazon Simple Queue Service Developer Guide. +// +// When you use queue tags, keep the following guidelines in mind: +// +// * Adding more than 50 tags to a queue isn't recommended. +// +// * Tags don't have any semantic meaning. Amazon SQS interprets tags as +// character strings. +// +// * Tags are case-sensitive. +// +// * A new tag with a key identical to that of an existing tag overwrites +// the existing tag. +// +// * Tagging actions are limited to 5 TPS per AWS account. If your application +// requires a higher throughput, file a technical support request (https://console.aws.amazon.com/support/home#/case/create?issueType=technical). +// +// For a full list of tag restrictions, see Limits Related to Queues (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-limits.html#limits-queues) +// in the Amazon Simple Queue Service Developer Guide. +// +// Cross-account permissions don't apply to this action. For more information, +// see see Grant Cross-Account Permissions to a Role and a User Name (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-customer-managed-policy-examples.html#grant-cross-account-permissions-to-role-and-user-name) +// in the Amazon Simple Queue Service Developer Guide. +// +// // Example sending a request using the UntagQueueRequest method. +// req := client.UntagQueueRequest(params) +// resp, err := req.Send() +// if err == nil { +// fmt.Println(resp) +// } +// +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/UntagQueue +func (c *SQS) UntagQueueRequest(input *UntagQueueInput) UntagQueueRequest { + op := &aws.Operation{ + Name: opUntagQueue, + HTTPMethod: "POST", + HTTPPath: "/", + } + + if input == nil { + input = &UntagQueueInput{} + } + + output := &UntagQueueOutput{} + req := c.newRequest(op, input, output) + req.Handlers.Unmarshal.Remove(query.UnmarshalHandler) + req.Handlers.Unmarshal.PushBackNamed(protocol.UnmarshalDiscardBodyHandler) + output.responseMetadata = aws.Response{Request: req} + + return UntagQueueRequest{Request: req, Input: input, Copy: c.UntagQueueRequest} +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/AddPermissionRequest +type AddPermissionInput struct { + _ struct{} `type:"structure"` + + // The AWS account number of the principal (http://docs.aws.amazon.com/general/latest/gr/glos-chap.html#P) + // who is given permission. The principal must have an AWS account, but does + // not need to be signed up for Amazon SQS. For information about locating the + // AWS account identification, see Your AWS Identifiers (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-making-api-requests.html#sqs-api-request-authentication) + // in the Amazon Simple Queue Service Developer Guide. + // + // AWSAccountIds is a required field + AWSAccountIds []string `locationNameList:"AWSAccountId" type:"list" flattened:"true" required:"true"` + + // The action the client wants to allow for the specified principal. Valid values: + // the name of any action or *. + // + // For more information about these actions, see Overview of Managing Access + // Permissions to Your Amazon Simple Queue Service Resource (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-overview-of-managing-access.html) + // in the Amazon Simple Queue Service Developer Guide. + // + // Specifying SendMessage, DeleteMessage, or ChangeMessageVisibility for ActionName.n + // also grants permissions for the corresponding batch versions of those actions: + // SendMessageBatch, DeleteMessageBatch, and ChangeMessageVisibilityBatch. + // + // Actions is a required field + Actions []string `locationNameList:"ActionName" type:"list" flattened:"true" required:"true"` + + // The unique identification of the permission you're setting (for example, + // AliceSendMessage). Maximum 80 characters. Allowed characters include alphanumeric + // characters, hyphens (-), and underscores (_). + // + // Label is a required field + Label *string `type:"string" required:"true"` + + // The URL of the Amazon SQS queue to which permissions are added. + // + // Queue URLs and names are case-sensitive. + // + // QueueUrl is a required field + QueueUrl *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s AddPermissionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AddPermissionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *AddPermissionInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "AddPermissionInput"} + + if s.AWSAccountIds == nil { + invalidParams.Add(aws.NewErrParamRequired("AWSAccountIds")) + } + + if s.Actions == nil { + invalidParams.Add(aws.NewErrParamRequired("Actions")) + } + + if s.Label == nil { + invalidParams.Add(aws.NewErrParamRequired("Label")) + } + + if s.QueueUrl == nil { + invalidParams.Add(aws.NewErrParamRequired("QueueUrl")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/AddPermissionOutput +type AddPermissionOutput struct { + _ struct{} `type:"structure"` + + responseMetadata aws.Response +} + +// String returns the string representation +func (s AddPermissionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s AddPermissionOutput) GoString() string { + return s.String() +} + +// SDKResponseMetdata return sthe response metadata for the API. +func (s AddPermissionOutput) SDKResponseMetadata() aws.Response { + return s.responseMetadata +} + +// Gives a detailed description of the result of an action on each entry in +// the request. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/BatchResultErrorEntry +type BatchResultErrorEntry struct { + _ struct{} `type:"structure"` + + // An error code representing why the action failed on this entry. + // + // Code is a required field + Code *string `type:"string" required:"true"` + + // The Id of an entry in a batch request. + // + // Id is a required field + Id *string `type:"string" required:"true"` + + // A message explaining why the action failed on this entry. + Message *string `type:"string"` + + // Specifies whether the error happened due to the producer. + // + // SenderFault is a required field + SenderFault *bool `type:"boolean" required:"true"` +} + +// String returns the string representation +func (s BatchResultErrorEntry) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s BatchResultErrorEntry) GoString() string { + return s.String() +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ChangeMessageVisibilityBatchRequest +type ChangeMessageVisibilityBatchInput struct { + _ struct{} `type:"structure"` + + // A list of receipt handles of the messages for which the visibility timeout + // must be changed. + // + // Entries is a required field + Entries []ChangeMessageVisibilityBatchRequestEntry `locationNameList:"ChangeMessageVisibilityBatchRequestEntry" type:"list" flattened:"true" required:"true"` + + // The URL of the Amazon SQS queue whose messages' visibility is changed. + // + // Queue URLs and names are case-sensitive. + // + // QueueUrl is a required field + QueueUrl *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s ChangeMessageVisibilityBatchInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ChangeMessageVisibilityBatchInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ChangeMessageVisibilityBatchInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ChangeMessageVisibilityBatchInput"} + + if s.Entries == nil { + invalidParams.Add(aws.NewErrParamRequired("Entries")) + } + + if s.QueueUrl == nil { + invalidParams.Add(aws.NewErrParamRequired("QueueUrl")) + } + if s.Entries != nil { + for i, v := range s.Entries { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Entries", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// For each message in the batch, the response contains a ChangeMessageVisibilityBatchResultEntry +// tag if the message succeeds or a BatchResultErrorEntry tag if the message +// fails. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ChangeMessageVisibilityBatchResult +type ChangeMessageVisibilityBatchOutput struct { + _ struct{} `type:"structure"` + + responseMetadata aws.Response + + // A list of BatchResultErrorEntry items. + // + // Failed is a required field + Failed []BatchResultErrorEntry `locationNameList:"BatchResultErrorEntry" type:"list" flattened:"true" required:"true"` + + // A list of ChangeMessageVisibilityBatchResultEntry items. + // + // Successful is a required field + Successful []ChangeMessageVisibilityBatchResultEntry `locationNameList:"ChangeMessageVisibilityBatchResultEntry" type:"list" flattened:"true" required:"true"` +} + +// String returns the string representation +func (s ChangeMessageVisibilityBatchOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ChangeMessageVisibilityBatchOutput) GoString() string { + return s.String() +} + +// SDKResponseMetdata return sthe response metadata for the API. +func (s ChangeMessageVisibilityBatchOutput) SDKResponseMetadata() aws.Response { + return s.responseMetadata +} + +// Encloses a receipt handle and an entry id for each message in ChangeMessageVisibilityBatch. +// +// All of the following list parameters must be prefixed with ChangeMessageVisibilityBatchRequestEntry.n, +// where n is an integer value starting with 1. For example, a parameter list +// for this action might look like this: +// +// &ChangeMessageVisibilityBatchRequestEntry.1.Id=change_visibility_msg_2 +// +// &ChangeMessageVisibilityBatchRequestEntry.1.ReceiptHandle=your_receipt_handle +// +// &ChangeMessageVisibilityBatchRequestEntry.1.VisibilityTimeout=45 +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ChangeMessageVisibilityBatchRequestEntry +type ChangeMessageVisibilityBatchRequestEntry struct { + _ struct{} `type:"structure"` + + // An identifier for this particular receipt handle used to communicate the + // result. + // + // The Ids of a batch request need to be unique within a request + // + // Id is a required field + Id *string `type:"string" required:"true"` + + // A receipt handle. + // + // ReceiptHandle is a required field + ReceiptHandle *string `type:"string" required:"true"` + + // The new value (in seconds) for the message's visibility timeout. + VisibilityTimeout *int64 `type:"integer"` +} + +// String returns the string representation +func (s ChangeMessageVisibilityBatchRequestEntry) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ChangeMessageVisibilityBatchRequestEntry) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ChangeMessageVisibilityBatchRequestEntry) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ChangeMessageVisibilityBatchRequestEntry"} + + if s.Id == nil { + invalidParams.Add(aws.NewErrParamRequired("Id")) + } + + if s.ReceiptHandle == nil { + invalidParams.Add(aws.NewErrParamRequired("ReceiptHandle")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Encloses the Id of an entry in ChangeMessageVisibilityBatch. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ChangeMessageVisibilityBatchResultEntry +type ChangeMessageVisibilityBatchResultEntry struct { + _ struct{} `type:"structure"` + + // Represents a message whose visibility timeout has been changed successfully. + // + // Id is a required field + Id *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s ChangeMessageVisibilityBatchResultEntry) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ChangeMessageVisibilityBatchResultEntry) GoString() string { + return s.String() +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ChangeMessageVisibilityRequest +type ChangeMessageVisibilityInput struct { + _ struct{} `type:"structure"` + + // The URL of the Amazon SQS queue whose message's visibility is changed. + // + // Queue URLs and names are case-sensitive. + // + // QueueUrl is a required field + QueueUrl *string `type:"string" required:"true"` + + // The receipt handle associated with the message whose visibility timeout is + // changed. This parameter is returned by the ReceiveMessage action. + // + // ReceiptHandle is a required field + ReceiptHandle *string `type:"string" required:"true"` + + // The new value for the message's visibility timeout (in seconds). Values values: + // 0 to 43200. Maximum: 12 hours. + // + // VisibilityTimeout is a required field + VisibilityTimeout *int64 `type:"integer" required:"true"` +} + +// String returns the string representation +func (s ChangeMessageVisibilityInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ChangeMessageVisibilityInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ChangeMessageVisibilityInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ChangeMessageVisibilityInput"} + + if s.QueueUrl == nil { + invalidParams.Add(aws.NewErrParamRequired("QueueUrl")) + } + + if s.ReceiptHandle == nil { + invalidParams.Add(aws.NewErrParamRequired("ReceiptHandle")) + } + + if s.VisibilityTimeout == nil { + invalidParams.Add(aws.NewErrParamRequired("VisibilityTimeout")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ChangeMessageVisibilityOutput +type ChangeMessageVisibilityOutput struct { + _ struct{} `type:"structure"` + + responseMetadata aws.Response +} + +// String returns the string representation +func (s ChangeMessageVisibilityOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ChangeMessageVisibilityOutput) GoString() string { + return s.String() +} + +// SDKResponseMetdata return sthe response metadata for the API. +func (s ChangeMessageVisibilityOutput) SDKResponseMetadata() aws.Response { + return s.responseMetadata +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/CreateQueueRequest +type CreateQueueInput struct { + _ struct{} `type:"structure"` + + // A map of attributes with their corresponding values. + // + // The following lists the names, descriptions, and values of the special request + // parameters that the CreateQueue action uses: + // + // * DelaySeconds - The length of time, in seconds, for which the delivery + // of all messages in the queue is delayed. Valid values: An integer from + // 0 to 900 seconds (15 minutes). Default: 0. + // + // * MaximumMessageSize - The limit of how many bytes a message can contain + // before Amazon SQS rejects it. Valid values: An integer from 1,024 bytes + // (1 KiB) to 262,144 bytes (256 KiB). Default: 262,144 (256 KiB). + // + // * MessageRetentionPeriod - The length of time, in seconds, for which Amazon + // SQS retains a message. Valid values: An integer from 60 seconds (1 minute) + // to 1,209,600 seconds (14 days). Default: 345,600 (4 days). + // + // * Policy - The queue's policy. A valid AWS policy. For more information + // about policy structure, see Overview of AWS IAM Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html) + // in the Amazon IAM User Guide. + // + // * ReceiveMessageWaitTimeSeconds - The length of time, in seconds, for + // which a ReceiveMessage action waits for a message to arrive. Valid values: + // An integer from 0 to 20 (seconds). Default: 0. + // + // * RedrivePolicy - The string that includes the parameters for the dead-letter + // queue functionality of the source queue. For more information about the + // redrive policy and dead-letter queues, see Using Amazon SQS Dead-Letter + // Queues (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html) + // in the Amazon Simple Queue Service Developer Guide. + // + // deadLetterTargetArn - The Amazon Resource Name (ARN) of the dead-letter queue + // to which Amazon SQS moves messages after the value of maxReceiveCount + // is exceeded. + // + // maxReceiveCount - The number of times a message is delivered to the source + // queue before being moved to the dead-letter queue. When the ReceiveCount + // for a message exceeds the maxReceiveCount for a queue, Amazon SQS moves + // the message to the dead-letter-queue. + // + // The dead-letter queue of a FIFO queue must also be a FIFO queue. Similarly, + // the dead-letter queue of a standard queue must also be a standard queue. + // + // * VisibilityTimeout - The visibility timeout for the queue, in seconds. + // Valid values: An integer from 0 to 43,200 (12 hours). Default: 30. For + // more information about the visibility timeout, see Visibility Timeout + // (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html) + // in the Amazon Simple Queue Service Developer Guide. + // + // The following attributes apply only to server-side-encryption (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html): + // + // * KmsMasterKeyId - The ID of an AWS-managed customer master key (CMK) + // for Amazon SQS or a custom CMK. For more information, see Key Terms (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-sse-key-terms). + // While the alias of the AWS-managed CMK for Amazon SQS is always alias/aws/sqs, + // the alias of a custom CMK can, for example, be alias/MyAlias. For more + // examples, see KeyId (http://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters) + // in the AWS Key Management Service API Reference. + // + // * KmsDataKeyReusePeriodSeconds - The length of time, in seconds, for which + // Amazon SQS can reuse a data key (http://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys) + // to encrypt or decrypt messages before calling AWS KMS again. An integer + // representing seconds, between 60 seconds (1 minute) and 86,400 seconds + // (24 hours). Default: 300 (5 minutes). A shorter time period provides better + // security but results in more calls to KMS which might incur charges after + // Free Tier. For more information, see How Does the Data Key Reuse Period + // Work? (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-how-does-the-data-key-reuse-period-work). + // + // + // The following attributes apply only to FIFO (first-in-first-out) queues (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html): + // + // * FifoQueue - Designates a queue as FIFO. Valid values: true, false. You + // can provide this attribute only during queue creation. You can't change + // it for an existing queue. When you set this attribute, you must also provide + // the MessageGroupId for your messages explicitly. + // + // For more information, see FIFO Queue Logic (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-understanding-logic) + // in the Amazon Simple Queue Service Developer Guide. + // + // * ContentBasedDeduplication - Enables content-based deduplication. Valid + // values: true, false. For more information, see Exactly-Once Processing + // (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-exactly-once-processing) + // in the Amazon Simple Queue Service Developer Guide. + // + // Every message must have a unique MessageDeduplicationId, + // + // You may provide a MessageDeduplicationId explicitly. + // + // If you aren't able to provide a MessageDeduplicationId and you enable ContentBasedDeduplication + // for your queue, Amazon SQS uses a SHA-256 hash to generate the MessageDeduplicationId + // using the body of the message (but not the attributes of the message). + // + // + // If you don't provide a MessageDeduplicationId and the queue doesn't have + // ContentBasedDeduplication set, the action fails with an error. + // + // If the queue has ContentBasedDeduplication set, your MessageDeduplicationId + // overrides the generated one. + // + // When ContentBasedDeduplication is in effect, messages with identical content + // sent within the deduplication interval are treated as duplicates and only + // one copy of the message is delivered. + // + // If you send one message with ContentBasedDeduplication enabled and then another + // message with a MessageDeduplicationId that is the same as the one generated + // for the first MessageDeduplicationId, the two messages are treated as + // duplicates and only one copy of the message is delivered. + Attributes map[string]string `locationName:"Attribute" locationNameKey:"Name" locationNameValue:"Value" type:"map" flattened:"true"` + + // The name of the new queue. The following limits apply to this name: + // + // * A queue name can have up to 80 characters. + // + // * Valid values: alphanumeric characters, hyphens (-), and underscores + // (_). + // + // * A FIFO queue name must end with the .fifo suffix. + // + // Queue URLs and names are case-sensitive. + // + // QueueName is a required field + QueueName *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s CreateQueueInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateQueueInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *CreateQueueInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "CreateQueueInput"} + + if s.QueueName == nil { + invalidParams.Add(aws.NewErrParamRequired("QueueName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Returns the QueueUrl attribute of the created queue. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/CreateQueueResult +type CreateQueueOutput struct { + _ struct{} `type:"structure"` + + responseMetadata aws.Response + + // The URL of the created Amazon SQS queue. + QueueUrl *string `type:"string"` +} + +// String returns the string representation +func (s CreateQueueOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s CreateQueueOutput) GoString() string { + return s.String() +} + +// SDKResponseMetdata return sthe response metadata for the API. +func (s CreateQueueOutput) SDKResponseMetadata() aws.Response { + return s.responseMetadata +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/DeleteMessageBatchRequest +type DeleteMessageBatchInput struct { + _ struct{} `type:"structure"` + + // A list of receipt handles for the messages to be deleted. + // + // Entries is a required field + Entries []DeleteMessageBatchRequestEntry `locationNameList:"DeleteMessageBatchRequestEntry" type:"list" flattened:"true" required:"true"` + + // The URL of the Amazon SQS queue from which messages are deleted. + // + // Queue URLs and names are case-sensitive. + // + // QueueUrl is a required field + QueueUrl *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteMessageBatchInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteMessageBatchInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteMessageBatchInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteMessageBatchInput"} + + if s.Entries == nil { + invalidParams.Add(aws.NewErrParamRequired("Entries")) + } + + if s.QueueUrl == nil { + invalidParams.Add(aws.NewErrParamRequired("QueueUrl")) + } + if s.Entries != nil { + for i, v := range s.Entries { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Entries", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// For each message in the batch, the response contains a DeleteMessageBatchResultEntry +// tag if the message is deleted or a BatchResultErrorEntry tag if the message +// can't be deleted. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/DeleteMessageBatchResult +type DeleteMessageBatchOutput struct { + _ struct{} `type:"structure"` + + responseMetadata aws.Response + + // A list of BatchResultErrorEntry items. + // + // Failed is a required field + Failed []BatchResultErrorEntry `locationNameList:"BatchResultErrorEntry" type:"list" flattened:"true" required:"true"` + + // A list of DeleteMessageBatchResultEntry items. + // + // Successful is a required field + Successful []DeleteMessageBatchResultEntry `locationNameList:"DeleteMessageBatchResultEntry" type:"list" flattened:"true" required:"true"` +} + +// String returns the string representation +func (s DeleteMessageBatchOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteMessageBatchOutput) GoString() string { + return s.String() +} + +// SDKResponseMetdata return sthe response metadata for the API. +func (s DeleteMessageBatchOutput) SDKResponseMetadata() aws.Response { + return s.responseMetadata +} + +// Encloses a receipt handle and an identifier for it. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/DeleteMessageBatchRequestEntry +type DeleteMessageBatchRequestEntry struct { + _ struct{} `type:"structure"` + + // An identifier for this particular receipt handle. This is used to communicate + // the result. + // + // The Ids of a batch request need to be unique within a request + // + // Id is a required field + Id *string `type:"string" required:"true"` + + // A receipt handle. + // + // ReceiptHandle is a required field + ReceiptHandle *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteMessageBatchRequestEntry) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteMessageBatchRequestEntry) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteMessageBatchRequestEntry) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteMessageBatchRequestEntry"} + + if s.Id == nil { + invalidParams.Add(aws.NewErrParamRequired("Id")) + } + + if s.ReceiptHandle == nil { + invalidParams.Add(aws.NewErrParamRequired("ReceiptHandle")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Encloses the Id of an entry in DeleteMessageBatch. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/DeleteMessageBatchResultEntry +type DeleteMessageBatchResultEntry struct { + _ struct{} `type:"structure"` + + // Represents a successfully deleted message. + // + // Id is a required field + Id *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteMessageBatchResultEntry) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteMessageBatchResultEntry) GoString() string { + return s.String() +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/DeleteMessageRequest +type DeleteMessageInput struct { + _ struct{} `type:"structure"` + + // The URL of the Amazon SQS queue from which messages are deleted. + // + // Queue URLs and names are case-sensitive. + // + // QueueUrl is a required field + QueueUrl *string `type:"string" required:"true"` + + // The receipt handle associated with the message to delete. + // + // ReceiptHandle is a required field + ReceiptHandle *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteMessageInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteMessageInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteMessageInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteMessageInput"} + + if s.QueueUrl == nil { + invalidParams.Add(aws.NewErrParamRequired("QueueUrl")) + } + + if s.ReceiptHandle == nil { + invalidParams.Add(aws.NewErrParamRequired("ReceiptHandle")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/DeleteMessageOutput +type DeleteMessageOutput struct { + _ struct{} `type:"structure"` + + responseMetadata aws.Response +} + +// String returns the string representation +func (s DeleteMessageOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteMessageOutput) GoString() string { + return s.String() +} + +// SDKResponseMetdata return sthe response metadata for the API. +func (s DeleteMessageOutput) SDKResponseMetadata() aws.Response { + return s.responseMetadata +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/DeleteQueueRequest +type DeleteQueueInput struct { + _ struct{} `type:"structure"` + + // The URL of the Amazon SQS queue to delete. + // + // Queue URLs and names are case-sensitive. + // + // QueueUrl is a required field + QueueUrl *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s DeleteQueueInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteQueueInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *DeleteQueueInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "DeleteQueueInput"} + + if s.QueueUrl == nil { + invalidParams.Add(aws.NewErrParamRequired("QueueUrl")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/DeleteQueueOutput +type DeleteQueueOutput struct { + _ struct{} `type:"structure"` + + responseMetadata aws.Response +} + +// String returns the string representation +func (s DeleteQueueOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s DeleteQueueOutput) GoString() string { + return s.String() +} + +// SDKResponseMetdata return sthe response metadata for the API. +func (s DeleteQueueOutput) SDKResponseMetadata() aws.Response { + return s.responseMetadata +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/GetQueueAttributesRequest +type GetQueueAttributesInput struct { + _ struct{} `type:"structure"` + + // A list of attributes for which to retrieve information. + // + // In the future, new attributes might be added. If you write code that calls + // this action, we recommend that you structure your code so that it can handle + // new attributes gracefully. + // + // The following attributes are supported: + // + // * All - Returns all values. + // + // * ApproximateNumberOfMessages - Returns the approximate number of messages + // available for retrieval from the queue. + // + // * ApproximateNumberOfMessagesDelayed - Returns the approximate number + // of messages in the queue that are delayed and not available for reading + // immediately. This can happen when the queue is configured as a delay queue + // or when a message has been sent with a delay parameter. + // + // * ApproximateNumberOfMessagesNotVisible - Returns the approximate number + // of messages that are in flight. Messages are considered to be in flight + // if they have been sent to a client but have not yet been deleted or have + // not yet reached the end of their visibility window. + // + // * CreatedTimestamp - Returns the time when the queue was created in seconds + // (epoch time (http://en.wikipedia.org/wiki/Unix_time)). + // + // * DelaySeconds - Returns the default delay on the queue in seconds. + // + // * LastModifiedTimestamp - Returns the time when the queue was last changed + // in seconds (epoch time (http://en.wikipedia.org/wiki/Unix_time)). + // + // * MaximumMessageSize - Returns the limit of how many bytes a message can + // contain before Amazon SQS rejects it. + // + // * MessageRetentionPeriod - Returns the length of time, in seconds, for + // which Amazon SQS retains a message. + // + // * Policy - Returns the policy of the queue. + // + // * QueueArn - Returns the Amazon resource name (ARN) of the queue. + // + // * ReceiveMessageWaitTimeSeconds - Returns the length of time, in seconds, + // for which the ReceiveMessage action waits for a message to arrive. + // + // * RedrivePolicy - Returns the string that includes the parameters for + // dead-letter queue functionality of the source queue. For more information + // about the redrive policy and dead-letter queues, see Using Amazon SQS + // Dead-Letter Queues (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html) + // in the Amazon Simple Queue Service Developer Guide. + // + // deadLetterTargetArn - The Amazon Resource Name (ARN) of the dead-letter queue + // to which Amazon SQS moves messages after the value of maxReceiveCount + // is exceeded. + // + // maxReceiveCount - The number of times a message is delivered to the source + // queue before being moved to the dead-letter queue. When the ReceiveCount + // for a message exceeds the maxReceiveCount for a queue, Amazon SQS moves + // the message to the dead-letter-queue. + // + // * VisibilityTimeout - Returns the visibility timeout for the queue. For + // more information about the visibility timeout, see Visibility Timeout + // (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html) + // in the Amazon Simple Queue Service Developer Guide. + // + // The following attributes apply only to server-side-encryption (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html): + // + // * KmsMasterKeyId - Returns the ID of an AWS-managed customer master key + // (CMK) for Amazon SQS or a custom CMK. For more information, see Key Terms + // (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-sse-key-terms). + // + // + // * KmsDataKeyReusePeriodSeconds - Returns the length of time, in seconds, + // for which Amazon SQS can reuse a data key to encrypt or decrypt messages + // before calling AWS KMS again. For more information, see How Does the Data + // Key Reuse Period Work? (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-how-does-the-data-key-reuse-period-work). + // + // + // The following attributes apply only to FIFO (first-in-first-out) queues (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html): + // + // * FifoQueue - Returns whether the queue is FIFO. For more information, + // see FIFO Queue Logic (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-understanding-logic) + // in the Amazon Simple Queue Service Developer Guide. + // + // To determine whether a queue is FIFO (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html), + // you can check whether QueueName ends with the .fifo suffix. + // + // * ContentBasedDeduplication - Returns whether content-based deduplication + // is enabled for the queue. For more information, see Exactly-Once Processing + // (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-exactly-once-processing) + // in the Amazon Simple Queue Service Developer Guide. + AttributeNames []QueueAttributeName `locationNameList:"AttributeName" type:"list" flattened:"true"` + + // The URL of the Amazon SQS queue whose attribute information is retrieved. + // + // Queue URLs and names are case-sensitive. + // + // QueueUrl is a required field + QueueUrl *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s GetQueueAttributesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetQueueAttributesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetQueueAttributesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetQueueAttributesInput"} + + if s.QueueUrl == nil { + invalidParams.Add(aws.NewErrParamRequired("QueueUrl")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// A list of returned queue attributes. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/GetQueueAttributesResult +type GetQueueAttributesOutput struct { + _ struct{} `type:"structure"` + + responseMetadata aws.Response + + // A map of attributes to their respective values. + Attributes map[string]string `locationName:"Attribute" locationNameKey:"Name" locationNameValue:"Value" type:"map" flattened:"true"` +} + +// String returns the string representation +func (s GetQueueAttributesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetQueueAttributesOutput) GoString() string { + return s.String() +} + +// SDKResponseMetdata return sthe response metadata for the API. +func (s GetQueueAttributesOutput) SDKResponseMetadata() aws.Response { + return s.responseMetadata +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/GetQueueUrlRequest +type GetQueueUrlInput struct { + _ struct{} `type:"structure"` + + // The name of the queue whose URL must be fetched. Maximum 80 characters. Valid + // values: alphanumeric characters, hyphens (-), and underscores (_). + // + // Queue URLs and names are case-sensitive. + // + // QueueName is a required field + QueueName *string `type:"string" required:"true"` + + // The AWS account ID of the account that created the queue. + QueueOwnerAWSAccountId *string `type:"string"` +} + +// String returns the string representation +func (s GetQueueUrlInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetQueueUrlInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *GetQueueUrlInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "GetQueueUrlInput"} + + if s.QueueName == nil { + invalidParams.Add(aws.NewErrParamRequired("QueueName")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// For more information, see Interpreting Responses (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-api-responses.html) +// in the Amazon Simple Queue Service Developer Guide. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/GetQueueUrlResult +type GetQueueUrlOutput struct { + _ struct{} `type:"structure"` + + responseMetadata aws.Response + + // The URL of the queue. + QueueUrl *string `type:"string"` +} + +// String returns the string representation +func (s GetQueueUrlOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s GetQueueUrlOutput) GoString() string { + return s.String() +} + +// SDKResponseMetdata return sthe response metadata for the API. +func (s GetQueueUrlOutput) SDKResponseMetadata() aws.Response { + return s.responseMetadata +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ListDeadLetterSourceQueuesRequest +type ListDeadLetterSourceQueuesInput struct { + _ struct{} `type:"structure"` + + // The URL of a dead-letter queue. + // + // Queue URLs and names are case-sensitive. + // + // QueueUrl is a required field + QueueUrl *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s ListDeadLetterSourceQueuesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListDeadLetterSourceQueuesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListDeadLetterSourceQueuesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListDeadLetterSourceQueuesInput"} + + if s.QueueUrl == nil { + invalidParams.Add(aws.NewErrParamRequired("QueueUrl")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// A list of your dead letter source queues. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ListDeadLetterSourceQueuesResult +type ListDeadLetterSourceQueuesOutput struct { + _ struct{} `type:"structure"` + + responseMetadata aws.Response + + // A list of source queue URLs that have the RedrivePolicy queue attribute configured + // with a dead-letter queue. + // + // QueueUrls is a required field + QueueUrls []string `locationName:"queueUrls" locationNameList:"QueueUrl" type:"list" flattened:"true" required:"true"` +} + +// String returns the string representation +func (s ListDeadLetterSourceQueuesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListDeadLetterSourceQueuesOutput) GoString() string { + return s.String() +} + +// SDKResponseMetdata return sthe response metadata for the API. +func (s ListDeadLetterSourceQueuesOutput) SDKResponseMetadata() aws.Response { + return s.responseMetadata +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ListQueueTagsRequest +type ListQueueTagsInput struct { + _ struct{} `type:"structure"` + + // The URL of the queue. + // + // QueueUrl is a required field + QueueUrl *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s ListQueueTagsInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListQueueTagsInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ListQueueTagsInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ListQueueTagsInput"} + + if s.QueueUrl == nil { + invalidParams.Add(aws.NewErrParamRequired("QueueUrl")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ListQueueTagsResult +type ListQueueTagsOutput struct { + _ struct{} `type:"structure"` + + responseMetadata aws.Response + + // The list of all tags added to the specified queue. + Tags map[string]string `locationName:"Tag" locationNameKey:"Key" locationNameValue:"Value" type:"map" flattened:"true"` +} + +// String returns the string representation +func (s ListQueueTagsOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListQueueTagsOutput) GoString() string { + return s.String() +} + +// SDKResponseMetdata return sthe response metadata for the API. +func (s ListQueueTagsOutput) SDKResponseMetadata() aws.Response { + return s.responseMetadata +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ListQueuesRequest +type ListQueuesInput struct { + _ struct{} `type:"structure"` + + // A string to use for filtering the list results. Only those queues whose name + // begins with the specified string are returned. + // + // Queue URLs and names are case-sensitive. + QueueNamePrefix *string `type:"string"` +} + +// String returns the string representation +func (s ListQueuesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListQueuesInput) GoString() string { + return s.String() +} + +// A list of your queues. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ListQueuesResult +type ListQueuesOutput struct { + _ struct{} `type:"structure"` + + responseMetadata aws.Response + + // A list of queue URLs, up to 1,000 entries. + QueueUrls []string `locationNameList:"QueueUrl" type:"list" flattened:"true"` +} + +// String returns the string representation +func (s ListQueuesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ListQueuesOutput) GoString() string { + return s.String() +} + +// SDKResponseMetdata return sthe response metadata for the API. +func (s ListQueuesOutput) SDKResponseMetadata() aws.Response { + return s.responseMetadata +} + +// An Amazon SQS message. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/Message +type Message struct { + _ struct{} `type:"structure"` + + // A map of the attributes requested in ReceiveMessage to their respective values. + // Supported attributes: + // + // * ApproximateReceiveCount + // + // * ApproximateFirstReceiveTimestamp + // + // * MessageDeduplicationId + // + // * MessageGroupId + // + // * SenderId + // + // * SentTimestamp + // + // * SequenceNumber + // + // ApproximateFirstReceiveTimestamp and SentTimestamp are each returned as an + // integer representing the epoch time (http://en.wikipedia.org/wiki/Unix_time) + // in milliseconds. + Attributes map[string]string `locationName:"Attribute" locationNameKey:"Name" locationNameValue:"Value" type:"map" flattened:"true"` + + // The message's contents (not URL-encoded). + Body *string `type:"string"` + + // An MD5 digest of the non-URL-encoded message body string. + MD5OfBody *string `type:"string"` + + // An MD5 digest of the non-URL-encoded message attribute string. You can use + // this attribute to verify that Amazon SQS received the message correctly. + // Amazon SQS URL-decodes the message before creating the MD5 digest. For information + // about MD5, see RFC1321 (https://www.ietf.org/rfc/rfc1321.txt). + MD5OfMessageAttributes *string `type:"string"` + + // Each message attribute consists of a Name, Type, and Value. For more information, + // see Amazon SQS Message Attributes (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-attributes.html) + // in the Amazon Simple Queue Service Developer Guide. + MessageAttributes map[string]MessageAttributeValue `locationName:"MessageAttribute" locationNameKey:"Name" locationNameValue:"Value" type:"map" flattened:"true"` + + // A unique identifier for the message. A MessageIdis considered unique across + // all AWS accounts for an extended period of time. + MessageId *string `type:"string"` + + // An identifier associated with the act of receiving the message. A new receipt + // handle is returned every time you receive a message. When deleting a message, + // you provide the last received receipt handle to delete the message. + ReceiptHandle *string `type:"string"` +} + +// String returns the string representation +func (s Message) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s Message) GoString() string { + return s.String() +} + +// The user-specified message attribute value. For string data types, the Value +// attribute has the same restrictions on the content as the message body. For +// more information, see SendMessage. +// +// Name, type, value and the message body must not be empty or null. All parts +// of the message attribute, including Name, Type, and Value, are part of the +// message size restriction (256 KB or 262,144 bytes). +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/MessageAttributeValue +type MessageAttributeValue struct { + _ struct{} `type:"structure"` + + // Not implemented. Reserved for future use. + BinaryListValues [][]byte `locationName:"BinaryListValue" locationNameList:"BinaryListValue" type:"list" flattened:"true"` + + // Binary type attributes can store any binary data, such as compressed data, + // encrypted data, or images. + // + // BinaryValue is automatically base64 encoded/decoded by the SDK. + BinaryValue []byte `type:"blob"` + + // Amazon SQS supports the following logical data types: String, Number, and + // Binary. For the Number data type, you must use StringValue. + // + // You can also append custom labels. For more information, see Amazon SQS Message + // Attributes (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-attributes.html) + // in the Amazon Simple Queue Service Developer Guide. + // + // DataType is a required field + DataType *string `type:"string" required:"true"` + + // Not implemented. Reserved for future use. + StringListValues []string `locationName:"StringListValue" locationNameList:"StringListValue" type:"list" flattened:"true"` + + // Strings are Unicode with UTF-8 binary encoding. For a list of code values, + // see ASCII Printable Characters (http://en.wikipedia.org/wiki/ASCII#ASCII_printable_characters). + StringValue *string `type:"string"` +} + +// String returns the string representation +func (s MessageAttributeValue) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s MessageAttributeValue) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *MessageAttributeValue) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "MessageAttributeValue"} + + if s.DataType == nil { + invalidParams.Add(aws.NewErrParamRequired("DataType")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/PurgeQueueRequest +type PurgeQueueInput struct { + _ struct{} `type:"structure"` + + // The URL of the queue from which the PurgeQueue action deletes messages. + // + // Queue URLs and names are case-sensitive. + // + // QueueUrl is a required field + QueueUrl *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s PurgeQueueInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PurgeQueueInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *PurgeQueueInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "PurgeQueueInput"} + + if s.QueueUrl == nil { + invalidParams.Add(aws.NewErrParamRequired("QueueUrl")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/PurgeQueueOutput +type PurgeQueueOutput struct { + _ struct{} `type:"structure"` + + responseMetadata aws.Response +} + +// String returns the string representation +func (s PurgeQueueOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s PurgeQueueOutput) GoString() string { + return s.String() +} + +// SDKResponseMetdata return sthe response metadata for the API. +func (s PurgeQueueOutput) SDKResponseMetadata() aws.Response { + return s.responseMetadata +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ReceiveMessageRequest +type ReceiveMessageInput struct { + _ struct{} `type:"structure"` + + // A list of s that need to be returned along with each message. These attributes + // include: + // + // * All - Returns all values. + // + // * ApproximateFirstReceiveTimestamp - Returns the time the message was + // first received from the queue (epoch time (http://en.wikipedia.org/wiki/Unix_time) + // in milliseconds). + // + // * ApproximateReceiveCount - Returns the number of times a message has + // been received from the queue but not deleted. + // + // * SenderId + // + // For an IAM user, returns the IAM user ID, for example ABCDEFGHI1JKLMNOPQ23R. + // + // For an IAM role, returns the IAM role ID, for example ABCDE1F2GH3I4JK5LMNOP:i-a123b456. + // + // * SentTimestamp - Returns the time the message was sent to the queue (epoch + // time (http://en.wikipedia.org/wiki/Unix_time) in milliseconds). + // + // * MessageDeduplicationId - Returns the value provided by the producer + // that calls the SendMessage action. + // + // * MessageGroupId - Returns the value provided by the producer that calls + // the SendMessage action. Messages with the same MessageGroupId are returned + // in sequence. + // + // * SequenceNumber - Returns the value provided by Amazon SQS. + AttributeNames []QueueAttributeName `locationNameList:"AttributeName" type:"list" flattened:"true"` + + // The maximum number of messages to return. Amazon SQS never returns more messages + // than this value (however, fewer messages might be returned). Valid values: + // 1 to 10. Default: 1. + MaxNumberOfMessages *int64 `type:"integer"` + + // The name of the message attribute, where N is the index. + // + // * The name can contain alphanumeric characters and the underscore (_), + // hyphen (-), and period (.). + // + // * The name is case-sensitive and must be unique among all attribute names + // for the message. + // + // * The name must not start with AWS-reserved prefixes such as AWS. or Amazon. + // (or any casing variants). + // + // * The name must not start or end with a period (.), and it should not + // have periods in succession (..). + // + // * The name can be up to 256 characters long. + // + // When using ReceiveMessage, you can send a list of attribute names to receive, + // or you can return all of the attributes by specifying All or .* in your request. + // You can also use all message attributes starting with a prefix, for example + // bar.*. + MessageAttributeNames []string `locationNameList:"MessageAttributeName" type:"list" flattened:"true"` + + // The URL of the Amazon SQS queue from which messages are received. + // + // Queue URLs and names are case-sensitive. + // + // QueueUrl is a required field + QueueUrl *string `type:"string" required:"true"` + + // This parameter applies only to FIFO (first-in-first-out) queues. + // + // The token used for deduplication of ReceiveMessage calls. If a networking + // issue occurs after a ReceiveMessage action, and instead of a response you + // receive a generic error, you can retry the same action with an identical + // ReceiveRequestAttemptId to retrieve the same set of messages, even if their + // visibility timeout has not yet expired. + // + // * You can use ReceiveRequestAttemptId only for 5 minutes after a ReceiveMessage + // action. + // + // * When you set FifoQueue, a caller of the ReceiveMessage action can provide + // a ReceiveRequestAttemptId explicitly. + // + // * If a caller of the ReceiveMessage action doesn't provide a ReceiveRequestAttemptId, + // Amazon SQS generates a ReceiveRequestAttemptId. + // + // * You can retry the ReceiveMessage action with the same ReceiveRequestAttemptId + // if none of the messages have been modified (deleted or had their visibility + // changes). + // + // * During a visibility timeout, subsequent calls with the same ReceiveRequestAttemptId + // return the same messages and receipt handles. If a retry occurs within + // the deduplication interval, it resets the visibility timeout. For more + // information, see Visibility Timeout (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html) + // in the Amazon Simple Queue Service Developer Guide. + // + // If a caller of the ReceiveMessage action still processes messages when the + // visibility timeout expires and messages become visible, another worker + // consuming from the same queue can receive the same messages and therefore + // process duplicates. Also, if a consumer whose message processing time + // is longer than the visibility timeout tries to delete the processed messages, + // the action fails with an error. + // + // To mitigate this effect, ensure that your application observes a safe threshold + // before the visibility timeout expires and extend the visibility timeout + // as necessary. + // + // * While messages with a particular MessageGroupId are invisible, no more + // messages belonging to the same MessageGroupId are returned until the visibility + // timeout expires. You can still receive messages with another MessageGroupId + // as long as it is also visible. + // + // * If a caller of ReceiveMessage can't track the ReceiveRequestAttemptId, + // no retries work until the original visibility timeout expires. As a result, + // delays might occur but the messages in the queue remain in a strict order. + // + // The length of ReceiveRequestAttemptId is 128 characters. ReceiveRequestAttemptId + // can contain alphanumeric characters (a-z, A-Z, 0-9) and punctuation (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~). + // + // For best practices of using ReceiveRequestAttemptId, see Using the ReceiveRequestAttemptId + // Request Parameter (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-receiverequestattemptid-request-parameter.html) + // in the Amazon Simple Queue Service Developer Guide. + ReceiveRequestAttemptId *string `type:"string"` + + // The duration (in seconds) that the received messages are hidden from subsequent + // retrieve requests after being retrieved by a ReceiveMessage request. + VisibilityTimeout *int64 `type:"integer"` + + // The duration (in seconds) for which the call waits for a message to arrive + // in the queue before returning. If a message is available, the call returns + // sooner than WaitTimeSeconds. If no messages are available and the wait time + // expires, the call returns successfully with an empty list of messages. + WaitTimeSeconds *int64 `type:"integer"` +} + +// String returns the string representation +func (s ReceiveMessageInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ReceiveMessageInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *ReceiveMessageInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "ReceiveMessageInput"} + + if s.QueueUrl == nil { + invalidParams.Add(aws.NewErrParamRequired("QueueUrl")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// A list of received messages. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/ReceiveMessageResult +type ReceiveMessageOutput struct { + _ struct{} `type:"structure"` + + responseMetadata aws.Response + + // A list of messages. + Messages []Message `locationNameList:"Message" type:"list" flattened:"true"` +} + +// String returns the string representation +func (s ReceiveMessageOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s ReceiveMessageOutput) GoString() string { + return s.String() +} + +// SDKResponseMetdata return sthe response metadata for the API. +func (s ReceiveMessageOutput) SDKResponseMetadata() aws.Response { + return s.responseMetadata +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/RemovePermissionRequest +type RemovePermissionInput struct { + _ struct{} `type:"structure"` + + // The identification of the permission to remove. This is the label added using + // the AddPermission action. + // + // Label is a required field + Label *string `type:"string" required:"true"` + + // The URL of the Amazon SQS queue from which permissions are removed. + // + // Queue URLs and names are case-sensitive. + // + // QueueUrl is a required field + QueueUrl *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s RemovePermissionInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s RemovePermissionInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *RemovePermissionInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "RemovePermissionInput"} + + if s.Label == nil { + invalidParams.Add(aws.NewErrParamRequired("Label")) + } + + if s.QueueUrl == nil { + invalidParams.Add(aws.NewErrParamRequired("QueueUrl")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/RemovePermissionOutput +type RemovePermissionOutput struct { + _ struct{} `type:"structure"` + + responseMetadata aws.Response +} + +// String returns the string representation +func (s RemovePermissionOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s RemovePermissionOutput) GoString() string { + return s.String() +} + +// SDKResponseMetdata return sthe response metadata for the API. +func (s RemovePermissionOutput) SDKResponseMetadata() aws.Response { + return s.responseMetadata +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/SendMessageBatchRequest +type SendMessageBatchInput struct { + _ struct{} `type:"structure"` + + // A list of SendMessageBatchRequestEntry items. + // + // Entries is a required field + Entries []SendMessageBatchRequestEntry `locationNameList:"SendMessageBatchRequestEntry" type:"list" flattened:"true" required:"true"` + + // The URL of the Amazon SQS queue to which batched messages are sent. + // + // Queue URLs and names are case-sensitive. + // + // QueueUrl is a required field + QueueUrl *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s SendMessageBatchInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s SendMessageBatchInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *SendMessageBatchInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "SendMessageBatchInput"} + + if s.Entries == nil { + invalidParams.Add(aws.NewErrParamRequired("Entries")) + } + + if s.QueueUrl == nil { + invalidParams.Add(aws.NewErrParamRequired("QueueUrl")) + } + if s.Entries != nil { + for i, v := range s.Entries { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Entries", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// For each message in the batch, the response contains a SendMessageBatchResultEntry +// tag if the message succeeds or a BatchResultErrorEntry tag if the message +// fails. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/SendMessageBatchResult +type SendMessageBatchOutput struct { + _ struct{} `type:"structure"` + + responseMetadata aws.Response + + // A list of BatchResultErrorEntry items with error details about each message + // that can't be enqueued. + // + // Failed is a required field + Failed []BatchResultErrorEntry `locationNameList:"BatchResultErrorEntry" type:"list" flattened:"true" required:"true"` + + // A list of SendMessageBatchResultEntry items. + // + // Successful is a required field + Successful []SendMessageBatchResultEntry `locationNameList:"SendMessageBatchResultEntry" type:"list" flattened:"true" required:"true"` +} + +// String returns the string representation +func (s SendMessageBatchOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s SendMessageBatchOutput) GoString() string { + return s.String() +} + +// SDKResponseMetdata return sthe response metadata for the API. +func (s SendMessageBatchOutput) SDKResponseMetadata() aws.Response { + return s.responseMetadata +} + +// Contains the details of a single Amazon SQS message along with an Id. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/SendMessageBatchRequestEntry +type SendMessageBatchRequestEntry struct { + _ struct{} `type:"structure"` + + // The length of time, in seconds, for which a specific message is delayed. + // Valid values: 0 to 900. Maximum: 15 minutes. Messages with a positive DelaySeconds + // value become available for processing after the delay period is finished. + // If you don't specify a value, the default value for the queue is applied. + // + // When you set FifoQueue, you can't set DelaySeconds per message. You can set + // this parameter only on a queue level. + DelaySeconds *int64 `type:"integer"` + + // An identifier for a message in this batch used to communicate the result. + // + // The Ids of a batch request need to be unique within a request + // + // This identifier can have up to 80 characters. The following characters are + // accepted: alphanumeric characters, hyphens(-), and underscores (_). + // + // Id is a required field + Id *string `type:"string" required:"true"` + + // Each message attribute consists of a Name, Type, and Value. For more information, + // see Amazon SQS Message Attributes (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-attributes.html) + // in the Amazon Simple Queue Service Developer Guide. + MessageAttributes map[string]MessageAttributeValue `locationName:"MessageAttribute" locationNameKey:"Name" locationNameValue:"Value" type:"map" flattened:"true"` + + // The body of the message. + // + // MessageBody is a required field + MessageBody *string `type:"string" required:"true"` + + // This parameter applies only to FIFO (first-in-first-out) queues. + // + // The token used for deduplication of messages within a 5-minute minimum deduplication + // interval. If a message with a particular MessageDeduplicationId is sent successfully, + // subsequent messages with the same MessageDeduplicationId are accepted successfully + // but aren't delivered. For more information, see Exactly-Once Processing + // (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-exactly-once-processing) + // in the Amazon Simple Queue Service Developer Guide. + // + // * Every message must have a unique MessageDeduplicationId, + // + // You may provide a MessageDeduplicationId explicitly. + // + // If you aren't able to provide a MessageDeduplicationId and you enable ContentBasedDeduplication + // for your queue, Amazon SQS uses a SHA-256 hash to generate the MessageDeduplicationId + // using the body of the message (but not the attributes of the message). + // + // + // If you don't provide a MessageDeduplicationId and the queue doesn't have + // ContentBasedDeduplication set, the action fails with an error. + // + // If the queue has ContentBasedDeduplication set, your MessageDeduplicationId + // overrides the generated one. + // + // * When ContentBasedDeduplication is in effect, messages with identical + // content sent within the deduplication interval are treated as duplicates + // and only one copy of the message is delivered. + // + // * If you send one message with ContentBasedDeduplication enabled and then + // another message with a MessageDeduplicationId that is the same as the + // one generated for the first MessageDeduplicationId, the two messages are + // treated as duplicates and only one copy of the message is delivered. + // + // The MessageDeduplicationId is available to the consumer of the message (this + // can be useful for troubleshooting delivery issues). + // + // If a message is sent successfully but the acknowledgement is lost and the + // message is resent with the same MessageDeduplicationId after the deduplication + // interval, Amazon SQS can't detect duplicate messages. + // + // Amazon SQS continues to keep track of the message deduplication ID even after + // the message is received and deleted. + // + // The length of MessageDeduplicationId is 128 characters. MessageDeduplicationId + // can contain alphanumeric characters (a-z, A-Z, 0-9) and punctuation (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~). + // + // For best practices of using MessageDeduplicationId, see Using the MessageDeduplicationId + // Property (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-messagededuplicationid-property.html) + // in the Amazon Simple Queue Service Developer Guide. + MessageDeduplicationId *string `type:"string"` + + // This parameter applies only to FIFO (first-in-first-out) queues. + // + // The tag that specifies that a message belongs to a specific message group. + // Messages that belong to the same message group are processed in a FIFO manner + // (however, messages in different message groups might be processed out of + // order). To interleave multiple ordered streams within a single queue, use + // MessageGroupId values (for example, session data for multiple users). In + // this scenario, multiple consumers can process the queue, but the session + // data of each user is processed in a FIFO fashion. + // + // * You must associate a non-empty MessageGroupId with a message. If you + // don't provide a MessageGroupId, the action fails. + // + // * ReceiveMessage might return messages with multiple MessageGroupId values. + // For each MessageGroupId, the messages are sorted by time sent. The caller + // can't specify a MessageGroupId. + // + // The length of MessageGroupId is 128 characters. Valid values: alphanumeric + // characters and punctuation (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~). + // + // For best practices of using MessageGroupId, see Using the MessageGroupId + // Property (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-messagegroupid-property.html) + // in the Amazon Simple Queue Service Developer Guide. + // + // MessageGroupId is required for FIFO queues. You can't use it for Standard + // queues. + MessageGroupId *string `type:"string"` +} + +// String returns the string representation +func (s SendMessageBatchRequestEntry) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s SendMessageBatchRequestEntry) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *SendMessageBatchRequestEntry) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "SendMessageBatchRequestEntry"} + + if s.Id == nil { + invalidParams.Add(aws.NewErrParamRequired("Id")) + } + + if s.MessageBody == nil { + invalidParams.Add(aws.NewErrParamRequired("MessageBody")) + } + if s.MessageAttributes != nil { + for i, v := range s.MessageAttributes { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MessageAttributes", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Encloses a MessageId for a successfully-enqueued message in a SendMessageBatch. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/SendMessageBatchResultEntry +type SendMessageBatchResultEntry struct { + _ struct{} `type:"structure"` + + // An identifier for the message in this batch. + // + // Id is a required field + Id *string `type:"string" required:"true"` + + // An MD5 digest of the non-URL-encoded message attribute string. You can use + // this attribute to verify that Amazon SQS received the message correctly. + // Amazon SQS URL-decodes the message before creating the MD5 digest. For information + // about MD5, see RFC1321 (https://www.ietf.org/rfc/rfc1321.txt). + MD5OfMessageAttributes *string `type:"string"` + + // An MD5 digest of the non-URL-encoded message attribute string. You can use + // this attribute to verify that Amazon SQS received the message correctly. + // Amazon SQS URL-decodes the message before creating the MD5 digest. For information + // about MD5, see RFC1321 (https://www.ietf.org/rfc/rfc1321.txt). + // + // MD5OfMessageBody is a required field + MD5OfMessageBody *string `type:"string" required:"true"` + + // An identifier for the message. + // + // MessageId is a required field + MessageId *string `type:"string" required:"true"` + + // This parameter applies only to FIFO (first-in-first-out) queues. + // + // The large, non-consecutive number that Amazon SQS assigns to each message. + // + // The length of SequenceNumber is 128 bits. As SequenceNumber continues to + // increase for a particular MessageGroupId. + SequenceNumber *string `type:"string"` +} + +// String returns the string representation +func (s SendMessageBatchResultEntry) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s SendMessageBatchResultEntry) GoString() string { + return s.String() +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/SendMessageRequest +type SendMessageInput struct { + _ struct{} `type:"structure"` + + // The length of time, in seconds, for which to delay a specific message. Valid + // values: 0 to 900. Maximum: 15 minutes. Messages with a positive DelaySeconds + // value become available for processing after the delay period is finished. + // If you don't specify a value, the default value for the queue applies. + // + // When you set FifoQueue, you can't set DelaySeconds per message. You can set + // this parameter only on a queue level. + DelaySeconds *int64 `type:"integer"` + + // Each message attribute consists of a Name, Type, and Value. For more information, + // see Amazon SQS Message Attributes (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-attributes.html) + // in the Amazon Simple Queue Service Developer Guide. + MessageAttributes map[string]MessageAttributeValue `locationName:"MessageAttribute" locationNameKey:"Name" locationNameValue:"Value" type:"map" flattened:"true"` + + // The message to send. The maximum string size is 256 KB. + // + // A message can include only XML, JSON, and unformatted text. The following + // Unicode characters are allowed: + // + // #x9 | #xA | #xD | #x20 to #xD7FF | #xE000 to #xFFFD | #x10000 to #x10FFFF + // + // Any characters not included in this list will be rejected. For more information, + // see the W3C specification for characters (http://www.w3.org/TR/REC-xml/#charsets). + // + // MessageBody is a required field + MessageBody *string `type:"string" required:"true"` + + // This parameter applies only to FIFO (first-in-first-out) queues. + // + // The token used for deduplication of sent messages. If a message with a particular + // MessageDeduplicationId is sent successfully, any messages sent with the same + // MessageDeduplicationId are accepted successfully but aren't delivered during + // the 5-minute deduplication interval. For more information, see Exactly-Once + // Processing (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-exactly-once-processing) + // in the Amazon Simple Queue Service Developer Guide. + // + // * Every message must have a unique MessageDeduplicationId, + // + // You may provide a MessageDeduplicationId explicitly. + // + // If you aren't able to provide a MessageDeduplicationId and you enable ContentBasedDeduplication + // for your queue, Amazon SQS uses a SHA-256 hash to generate the MessageDeduplicationId + // using the body of the message (but not the attributes of the message). + // + // + // If you don't provide a MessageDeduplicationId and the queue doesn't have + // ContentBasedDeduplication set, the action fails with an error. + // + // If the queue has ContentBasedDeduplication set, your MessageDeduplicationId + // overrides the generated one. + // + // * When ContentBasedDeduplication is in effect, messages with identical + // content sent within the deduplication interval are treated as duplicates + // and only one copy of the message is delivered. + // + // * If you send one message with ContentBasedDeduplication enabled and then + // another message with a MessageDeduplicationId that is the same as the + // one generated for the first MessageDeduplicationId, the two messages are + // treated as duplicates and only one copy of the message is delivered. + // + // The MessageDeduplicationId is available to the consumer of the message (this + // can be useful for troubleshooting delivery issues). + // + // If a message is sent successfully but the acknowledgement is lost and the + // message is resent with the same MessageDeduplicationId after the deduplication + // interval, Amazon SQS can't detect duplicate messages. + // + // Amazon SQS continues to keep track of the message deduplication ID even after + // the message is received and deleted. + // + // The length of MessageDeduplicationId is 128 characters. MessageDeduplicationId + // can contain alphanumeric characters (a-z, A-Z, 0-9) and punctuation (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~). + // + // For best practices of using MessageDeduplicationId, see Using the MessageDeduplicationId + // Property (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-messagededuplicationid-property.html) + // in the Amazon Simple Queue Service Developer Guide. + MessageDeduplicationId *string `type:"string"` + + // This parameter applies only to FIFO (first-in-first-out) queues. + // + // The tag that specifies that a message belongs to a specific message group. + // Messages that belong to the same message group are processed in a FIFO manner + // (however, messages in different message groups might be processed out of + // order). To interleave multiple ordered streams within a single queue, use + // MessageGroupId values (for example, session data for multiple users). In + // this scenario, multiple consumers can process the queue, but the session + // data of each user is processed in a FIFO fashion. + // + // * You must associate a non-empty MessageGroupId with a message. If you + // don't provide a MessageGroupId, the action fails. + // + // * ReceiveMessage might return messages with multiple MessageGroupId values. + // For each MessageGroupId, the messages are sorted by time sent. The caller + // can't specify a MessageGroupId. + // + // The length of MessageGroupId is 128 characters. Valid values: alphanumeric + // characters and punctuation (!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~). + // + // For best practices of using MessageGroupId, see Using the MessageGroupId + // Property (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/using-messagegroupid-property.html) + // in the Amazon Simple Queue Service Developer Guide. + // + // MessageGroupId is required for FIFO queues. You can't use it for Standard + // queues. + MessageGroupId *string `type:"string"` + + // The URL of the Amazon SQS queue to which a message is sent. + // + // Queue URLs and names are case-sensitive. + // + // QueueUrl is a required field + QueueUrl *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s SendMessageInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s SendMessageInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *SendMessageInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "SendMessageInput"} + + if s.MessageBody == nil { + invalidParams.Add(aws.NewErrParamRequired("MessageBody")) + } + + if s.QueueUrl == nil { + invalidParams.Add(aws.NewErrParamRequired("QueueUrl")) + } + if s.MessageAttributes != nil { + for i, v := range s.MessageAttributes { + if err := v.Validate(); err != nil { + invalidParams.AddNested(fmt.Sprintf("%s[%v]", "MessageAttributes", i), err.(aws.ErrInvalidParams)) + } + } + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// The MD5OfMessageBody and MessageId elements. +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/SendMessageResult +type SendMessageOutput struct { + _ struct{} `type:"structure"` + + responseMetadata aws.Response + + // An MD5 digest of the non-URL-encoded message attribute string. You can use + // this attribute to verify that Amazon SQS received the message correctly. + // Amazon SQS URL-decodes the message before creating the MD5 digest. For information + // about MD5, see RFC1321 (https://www.ietf.org/rfc/rfc1321.txt). + MD5OfMessageAttributes *string `type:"string"` + + // An MD5 digest of the non-URL-encoded message attribute string. You can use + // this attribute to verify that Amazon SQS received the message correctly. + // Amazon SQS URL-decodes the message before creating the MD5 digest. For information + // about MD5, see RFC1321 (https://www.ietf.org/rfc/rfc1321.txt). + MD5OfMessageBody *string `type:"string"` + + // An attribute containing the MessageId of the message sent to the queue. For + // more information, see Queue and Message Identifiers (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-queue-message-identifiers.html) + // in the Amazon Simple Queue Service Developer Guide. + MessageId *string `type:"string"` + + // This parameter applies only to FIFO (first-in-first-out) queues. + // + // The large, non-consecutive number that Amazon SQS assigns to each message. + // + // The length of SequenceNumber is 128 bits. SequenceNumber continues to increase + // for a particular MessageGroupId. + SequenceNumber *string `type:"string"` +} + +// String returns the string representation +func (s SendMessageOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s SendMessageOutput) GoString() string { + return s.String() +} + +// SDKResponseMetdata return sthe response metadata for the API. +func (s SendMessageOutput) SDKResponseMetadata() aws.Response { + return s.responseMetadata +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/SetQueueAttributesRequest +type SetQueueAttributesInput struct { + _ struct{} `type:"structure"` + + // A map of attributes to set. + // + // The following lists the names, descriptions, and values of the special request + // parameters that the SetQueueAttributes action uses: + // + // * DelaySeconds - The length of time, in seconds, for which the delivery + // of all messages in the queue is delayed. Valid values: An integer from + // 0 to 900 (15 minutes). Default: 0. + // + // * MaximumMessageSize - The limit of how many bytes a message can contain + // before Amazon SQS rejects it. Valid values: An integer from 1,024 bytes + // (1 KiB) up to 262,144 bytes (256 KiB). Default: 262,144 (256 KiB). + // + // * MessageRetentionPeriod - The length of time, in seconds, for which Amazon + // SQS retains a message. Valid values: An integer representing seconds, + // from 60 (1 minute) to 1,209,600 (14 days). Default: 345,600 (4 days). + // + // + // * Policy - The queue's policy. A valid AWS policy. For more information + // about policy structure, see Overview of AWS IAM Policies (http://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html) + // in the Amazon IAM User Guide. + // + // * ReceiveMessageWaitTimeSeconds - The length of time, in seconds, for + // which a ReceiveMessage action waits for a message to arrive. Valid values: + // an integer from 0 to 20 (seconds). Default: 0. + // + // * RedrivePolicy - The string that includes the parameters for the dead-letter + // queue functionality of the source queue. For more information about the + // redrive policy and dead-letter queues, see Using Amazon SQS Dead-Letter + // Queues (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html) + // in the Amazon Simple Queue Service Developer Guide. + // + // deadLetterTargetArn - The Amazon Resource Name (ARN) of the dead-letter queue + // to which Amazon SQS moves messages after the value of maxReceiveCount + // is exceeded. + // + // maxReceiveCount - The number of times a message is delivered to the source + // queue before being moved to the dead-letter queue. When the ReceiveCount + // for a message exceeds the maxReceiveCount for a queue, Amazon SQS moves + // the message to the dead-letter-queue. + // + // The dead-letter queue of a FIFO queue must also be a FIFO queue. Similarly, + // the dead-letter queue of a standard queue must also be a standard queue. + // + // * VisibilityTimeout - The visibility timeout for the queue, in seconds. + // Valid values: an integer from 0 to 43,200 (12 hours). Default: 30. For + // more information about the visibility timeout, see Visibility Timeout + // (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-visibility-timeout.html) + // in the Amazon Simple Queue Service Developer Guide. + // + // The following attributes apply only to server-side-encryption (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html): + // + // * KmsMasterKeyId - The ID of an AWS-managed customer master key (CMK) + // for Amazon SQS or a custom CMK. For more information, see Key Terms (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-sse-key-terms). + // While the alias of the AWS-managed CMK for Amazon SQS is always alias/aws/sqs, + // the alias of a custom CMK can, for example, be alias/MyAlias. For more + // examples, see KeyId (http://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters) + // in the AWS Key Management Service API Reference. + // + // * KmsDataKeyReusePeriodSeconds - The length of time, in seconds, for which + // Amazon SQS can reuse a data key (http://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys) + // to encrypt or decrypt messages before calling AWS KMS again. An integer + // representing seconds, between 60 seconds (1 minute) and 86,400 seconds + // (24 hours). Default: 300 (5 minutes). A shorter time period provides better + // security but results in more calls to KMS which might incur charges after + // Free Tier. For more information, see How Does the Data Key Reuse Period + // Work? (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-server-side-encryption.html#sqs-how-does-the-data-key-reuse-period-work). + // + // + // The following attribute applies only to FIFO (first-in-first-out) queues + // (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html): + // + // * ContentBasedDeduplication - Enables content-based deduplication. For + // more information, see Exactly-Once Processing (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html#FIFO-queues-exactly-once-processing) + // in the Amazon Simple Queue Service Developer Guide. + // + // Every message must have a unique MessageDeduplicationId, + // + // You may provide a MessageDeduplicationId explicitly. + // + // If you aren't able to provide a MessageDeduplicationId and you enable ContentBasedDeduplication + // for your queue, Amazon SQS uses a SHA-256 hash to generate the MessageDeduplicationId + // using the body of the message (but not the attributes of the message). + // + // + // If you don't provide a MessageDeduplicationId and the queue doesn't have + // ContentBasedDeduplication set, the action fails with an error. + // + // If the queue has ContentBasedDeduplication set, your MessageDeduplicationId + // overrides the generated one. + // + // When ContentBasedDeduplication is in effect, messages with identical content + // sent within the deduplication interval are treated as duplicates and only + // one copy of the message is delivered. + // + // If you send one message with ContentBasedDeduplication enabled and then another + // message with a MessageDeduplicationId that is the same as the one generated + // for the first MessageDeduplicationId, the two messages are treated as + // duplicates and only one copy of the message is delivered. + // + // Attributes is a required field + Attributes map[string]string `locationName:"Attribute" locationNameKey:"Name" locationNameValue:"Value" type:"map" flattened:"true" required:"true"` + + // The URL of the Amazon SQS queue whose attributes are set. + // + // Queue URLs and names are case-sensitive. + // + // QueueUrl is a required field + QueueUrl *string `type:"string" required:"true"` +} + +// String returns the string representation +func (s SetQueueAttributesInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s SetQueueAttributesInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *SetQueueAttributesInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "SetQueueAttributesInput"} + + if s.Attributes == nil { + invalidParams.Add(aws.NewErrParamRequired("Attributes")) + } + + if s.QueueUrl == nil { + invalidParams.Add(aws.NewErrParamRequired("QueueUrl")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/SetQueueAttributesOutput +type SetQueueAttributesOutput struct { + _ struct{} `type:"structure"` + + responseMetadata aws.Response +} + +// String returns the string representation +func (s SetQueueAttributesOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s SetQueueAttributesOutput) GoString() string { + return s.String() +} + +// SDKResponseMetdata return sthe response metadata for the API. +func (s SetQueueAttributesOutput) SDKResponseMetadata() aws.Response { + return s.responseMetadata +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/TagQueueRequest +type TagQueueInput struct { + _ struct{} `type:"structure"` + + // The URL of the queue. + // + // QueueUrl is a required field + QueueUrl *string `type:"string" required:"true"` + + // The list of tags to be added to the specified queue. + // + // Tags is a required field + Tags map[string]string `locationName:"Tag" locationNameKey:"Key" locationNameValue:"Value" type:"map" flattened:"true" required:"true"` +} + +// String returns the string representation +func (s TagQueueInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s TagQueueInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *TagQueueInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "TagQueueInput"} + + if s.QueueUrl == nil { + invalidParams.Add(aws.NewErrParamRequired("QueueUrl")) + } + + if s.Tags == nil { + invalidParams.Add(aws.NewErrParamRequired("Tags")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/TagQueueOutput +type TagQueueOutput struct { + _ struct{} `type:"structure"` + + responseMetadata aws.Response +} + +// String returns the string representation +func (s TagQueueOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s TagQueueOutput) GoString() string { + return s.String() +} + +// SDKResponseMetdata return sthe response metadata for the API. +func (s TagQueueOutput) SDKResponseMetadata() aws.Response { + return s.responseMetadata +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/UntagQueueRequest +type UntagQueueInput struct { + _ struct{} `type:"structure"` + + // The URL of the queue. + // + // QueueUrl is a required field + QueueUrl *string `type:"string" required:"true"` + + // The list of tags to be removed from the specified queue. + // + // TagKeys is a required field + TagKeys []string `locationNameList:"TagKey" type:"list" flattened:"true" required:"true"` +} + +// String returns the string representation +func (s UntagQueueInput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UntagQueueInput) GoString() string { + return s.String() +} + +// Validate inspects the fields of the type to determine if they are valid. +func (s *UntagQueueInput) Validate() error { + invalidParams := aws.ErrInvalidParams{Context: "UntagQueueInput"} + + if s.QueueUrl == nil { + invalidParams.Add(aws.NewErrParamRequired("QueueUrl")) + } + + if s.TagKeys == nil { + invalidParams.Add(aws.NewErrParamRequired("TagKeys")) + } + + if invalidParams.Len() > 0 { + return invalidParams + } + return nil +} + +// Please also see https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05/UntagQueueOutput +type UntagQueueOutput struct { + _ struct{} `type:"structure"` + + responseMetadata aws.Response +} + +// String returns the string representation +func (s UntagQueueOutput) String() string { + return awsutil.Prettify(s) +} + +// GoString returns the string representation +func (s UntagQueueOutput) GoString() string { + return s.String() +} + +// SDKResponseMetdata return sthe response metadata for the API. +func (s UntagQueueOutput) SDKResponseMetadata() aws.Response { + return s.responseMetadata +} + +type MessageSystemAttributeName string + +// Enum values for MessageSystemAttributeName +const ( + MessageSystemAttributeNameSenderId MessageSystemAttributeName = "SenderId" + MessageSystemAttributeNameSentTimestamp MessageSystemAttributeName = "SentTimestamp" + MessageSystemAttributeNameApproximateReceiveCount MessageSystemAttributeName = "ApproximateReceiveCount" + MessageSystemAttributeNameApproximateFirstReceiveTimestamp MessageSystemAttributeName = "ApproximateFirstReceiveTimestamp" + MessageSystemAttributeNameSequenceNumber MessageSystemAttributeName = "SequenceNumber" + MessageSystemAttributeNameMessageDeduplicationId MessageSystemAttributeName = "MessageDeduplicationId" + MessageSystemAttributeNameMessageGroupId MessageSystemAttributeName = "MessageGroupId" +) + +func (enum MessageSystemAttributeName) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum MessageSystemAttributeName) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} + +type QueueAttributeName string + +// Enum values for QueueAttributeName +const ( + QueueAttributeNameAll QueueAttributeName = "All" + QueueAttributeNamePolicy QueueAttributeName = "Policy" + QueueAttributeNameVisibilityTimeout QueueAttributeName = "VisibilityTimeout" + QueueAttributeNameMaximumMessageSize QueueAttributeName = "MaximumMessageSize" + QueueAttributeNameMessageRetentionPeriod QueueAttributeName = "MessageRetentionPeriod" + QueueAttributeNameApproximateNumberOfMessages QueueAttributeName = "ApproximateNumberOfMessages" + QueueAttributeNameApproximateNumberOfMessagesNotVisible QueueAttributeName = "ApproximateNumberOfMessagesNotVisible" + QueueAttributeNameCreatedTimestamp QueueAttributeName = "CreatedTimestamp" + QueueAttributeNameLastModifiedTimestamp QueueAttributeName = "LastModifiedTimestamp" + QueueAttributeNameQueueArn QueueAttributeName = "QueueArn" + QueueAttributeNameApproximateNumberOfMessagesDelayed QueueAttributeName = "ApproximateNumberOfMessagesDelayed" + QueueAttributeNameDelaySeconds QueueAttributeName = "DelaySeconds" + QueueAttributeNameReceiveMessageWaitTimeSeconds QueueAttributeName = "ReceiveMessageWaitTimeSeconds" + QueueAttributeNameRedrivePolicy QueueAttributeName = "RedrivePolicy" + QueueAttributeNameFifoQueue QueueAttributeName = "FifoQueue" + QueueAttributeNameContentBasedDeduplication QueueAttributeName = "ContentBasedDeduplication" + QueueAttributeNameKmsMasterKeyId QueueAttributeName = "KmsMasterKeyId" + QueueAttributeNameKmsDataKeyReusePeriodSeconds QueueAttributeName = "KmsDataKeyReusePeriodSeconds" +) + +func (enum QueueAttributeName) MarshalValue() (string, error) { + return string(enum), nil +} + +func (enum QueueAttributeName) MarshalValueBuf(b []byte) ([]byte, error) { + b = b[0:0] + return append(b, enum...), nil +} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sqs/checksums.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sqs/checksums.go new file mode 100644 index 00000000000..87c8222da38 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sqs/checksums.go @@ -0,0 +1,110 @@ +package sqs + +import ( + "crypto/md5" + "encoding/hex" + "fmt" + "strings" + + "github.com/aws/aws-sdk-go-v2/aws" + request "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/aws/awserr" +) + +var ( + errChecksumMissingBody = fmt.Errorf("cannot compute checksum. missing body") + errChecksumMissingMD5 = fmt.Errorf("cannot verify checksum. missing response MD5") +) + +func setupChecksumValidation(r *request.Request) { + switch r.Operation.Name { + case opSendMessage: + r.Handlers.Unmarshal.PushBack(verifySendMessage) + case opSendMessageBatch: + r.Handlers.Unmarshal.PushBack(verifySendMessageBatch) + case opReceiveMessage: + r.Handlers.Unmarshal.PushBack(verifyReceiveMessage) + } +} + +func verifySendMessage(r *request.Request) { + if r.ParamsFilled() { + in := r.Params.(*SendMessageInput) + out := r.Data.(*SendMessageOutput) + err := checksumsMatch(in.MessageBody, out.MD5OfMessageBody) + if err != nil { + setChecksumError(r, err.Error()) + } + } +} + +func verifySendMessageBatch(r *request.Request) { + if r.ParamsFilled() { + entries := map[string]SendMessageBatchResultEntry{} + ids := []string{} + + out := r.Data.(*SendMessageBatchOutput) + for _, entry := range out.Successful { + entries[*entry.Id] = entry + } + + in := r.Params.(*SendMessageBatchInput) + for _, entry := range in.Entries { + e := entries[*entry.Id] + err := checksumsMatch(entry.MessageBody, e.MD5OfMessageBody) + if err != nil { + ids = append(ids, *e.MessageId) + } + } + if len(ids) > 0 { + setChecksumError(r, "invalid messages: %s", strings.Join(ids, ", ")) + } + } +} + +func verifyReceiveMessage(r *request.Request) { + if r.ParamsFilled() { + ids := []string{} + out := r.Data.(*ReceiveMessageOutput) + for i, msg := range out.Messages { + err := checksumsMatch(msg.Body, msg.MD5OfBody) + if err != nil { + if msg.MessageId == nil { + if r.Config.Logger != nil { + r.Config.Logger.Log(fmt.Sprintf( + "WARN: SQS.ReceiveMessage failed checksum request id: %s, message %d has no message ID.", + r.RequestID, i, + )) + } + continue + } + + ids = append(ids, *msg.MessageId) + } + } + if len(ids) > 0 { + setChecksumError(r, "invalid messages: %s", strings.Join(ids, ", ")) + } + } +} + +func checksumsMatch(body, expectedMD5 *string) error { + if body == nil { + return errChecksumMissingBody + } else if expectedMD5 == nil { + return errChecksumMissingMD5 + } + + msum := md5.Sum([]byte(*body)) + sum := hex.EncodeToString(msum[:]) + if sum != *expectedMD5 { + return fmt.Errorf("expected MD5 checksum '%s', got '%s'", *expectedMD5, sum) + } + + return nil +} + +func setChecksumError(r *request.Request, format string, args ...interface{}) { + r.Retryable = aws.Bool(true) + r.Error = awserr.New("InvalidChecksum", fmt.Sprintf(format, args...), nil) +} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sqs/customizations.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sqs/customizations.go new file mode 100644 index 00000000000..b92cc17b512 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sqs/customizations.go @@ -0,0 +1,11 @@ +package sqs + +import request "github.com/aws/aws-sdk-go-v2/aws" + +func init() { + initRequest = func(c *SQS, r *request.Request) { + if !c.DisableComputeChecksums { + setupChecksumValidation(r) + } + } +} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sqs/doc.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sqs/doc.go new file mode 100644 index 00000000000..dd650c4e6eb --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sqs/doc.go @@ -0,0 +1,67 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package sqs provides the client and types for making API +// requests to Amazon Simple Queue Service. +// +// Welcome to the Amazon Simple Queue Service API Reference. +// +// Amazon Simple Queue Service (Amazon SQS) is a reliable, highly-scalable hosted +// queue for storing messages as they travel between applications or microservices. +// Amazon SQS moves data between distributed application components and helps +// you decouple these components. +// +// Standard queues (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/standard-queues.html) +// are available in all regions. FIFO queues (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/FIFO-queues.html) +// are available in the US East (N. Virginia), US East (Ohio), US West (Oregon), +// and EU (Ireland) regions. +// +// You can use AWS SDKs (http://aws.amazon.com/tools/#sdk) to access Amazon +// SQS using your favorite programming language. The SDKs perform tasks such +// as the following automatically: +// +// * Cryptographically sign your service requests +// +// * Retry requests +// +// * Handle error responses +// +// Additional Information +// +// * Amazon SQS Product Page (http://aws.amazon.com/sqs/) +// +// * Amazon Simple Queue Service Developer Guide +// +// Making API Requests (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-making-api-requests.html) +// +// Amazon SQS Message Attributes (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-attributes.html) +// +// Amazon SQS Dead-Letter Queues (http://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html) +// +// * Amazon SQS in the (http://docs.aws.amazon.com/cli/latest/reference/sqs/index.html)AWS +// CLI Command Reference +// +// * Amazon Web Services General Reference +// +// Regions and Endpoints (http://docs.aws.amazon.com/general/latest/gr/rande.html#sqs_region) +// +// See https://docs.aws.amazon.com/goto/WebAPI/sqs-2012-11-05 for more information on this service. +// +// See sqs package documentation for more information. +// https://docs.aws.amazon.com/sdk-for-go/api/service/sqs/ +// +// Using the Client +// +// To Amazon Simple Queue Service with the SDK use the New function to create +// a new service client. With that client you can make API requests to the service. +// These clients are safe to use concurrently. +// +// See the SDK's documentation for more information on how to use the SDK. +// https://docs.aws.amazon.com/sdk-for-go/api/ +// +// See aws.Config documentation for more information on configuring SDK clients. +// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config +// +// See the Amazon Simple Queue Service client SQS for more +// information on creating client for this service. +// https://docs.aws.amazon.com/sdk-for-go/api/service/sqs/#New +package sqs diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sqs/errors.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sqs/errors.go new file mode 100644 index 00000000000..89eb40d7fd2 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sqs/errors.go @@ -0,0 +1,110 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sqs + +const ( + + // ErrCodeBatchEntryIdsNotDistinct for service response error code + // "AWS.SimpleQueueService.BatchEntryIdsNotDistinct". + // + // Two or more batch entries in the request have the same Id. + ErrCodeBatchEntryIdsNotDistinct = "AWS.SimpleQueueService.BatchEntryIdsNotDistinct" + + // ErrCodeBatchRequestTooLong for service response error code + // "AWS.SimpleQueueService.BatchRequestTooLong". + // + // The length of all the messages put together is more than the limit. + ErrCodeBatchRequestTooLong = "AWS.SimpleQueueService.BatchRequestTooLong" + + // ErrCodeEmptyBatchRequest for service response error code + // "AWS.SimpleQueueService.EmptyBatchRequest". + // + // The batch request doesn't contain any entries. + ErrCodeEmptyBatchRequest = "AWS.SimpleQueueService.EmptyBatchRequest" + + // ErrCodeInvalidAttributeName for service response error code + // "InvalidAttributeName". + // + // The specified attribute doesn't exist. + ErrCodeInvalidAttributeName = "InvalidAttributeName" + + // ErrCodeInvalidBatchEntryId for service response error code + // "AWS.SimpleQueueService.InvalidBatchEntryId". + // + // The Id of a batch entry in a batch request doesn't abide by the specification. + ErrCodeInvalidBatchEntryId = "AWS.SimpleQueueService.InvalidBatchEntryId" + + // ErrCodeInvalidIdFormat for service response error code + // "InvalidIdFormat". + // + // The specified receipt handle isn't valid for the current version. + ErrCodeInvalidIdFormat = "InvalidIdFormat" + + // ErrCodeInvalidMessageContents for service response error code + // "InvalidMessageContents". + // + // The message contains characters outside the allowed set. + ErrCodeInvalidMessageContents = "InvalidMessageContents" + + // ErrCodeMessageNotInflight for service response error code + // "AWS.SimpleQueueService.MessageNotInflight". + // + // The specified message isn't in flight. + ErrCodeMessageNotInflight = "AWS.SimpleQueueService.MessageNotInflight" + + // ErrCodeOverLimit for service response error code + // "OverLimit". + // + // The specified action violates a limit. For example, ReceiveMessage returns + // this error if the maximum number of inflight messages is reached and AddPermission + // returns this error if the maximum number of permissions for the queue is + // reached. + ErrCodeOverLimit = "OverLimit" + + // ErrCodePurgeQueueInProgress for service response error code + // "AWS.SimpleQueueService.PurgeQueueInProgress". + // + // Indicates that the specified queue previously received a PurgeQueue request + // within the last 60 seconds (the time it can take to delete the messages in + // the queue). + ErrCodePurgeQueueInProgress = "AWS.SimpleQueueService.PurgeQueueInProgress" + + // ErrCodeQueueDeletedRecently for service response error code + // "AWS.SimpleQueueService.QueueDeletedRecently". + // + // You must wait 60 seconds after deleting a queue before you can create another + // queue with the same name. + ErrCodeQueueDeletedRecently = "AWS.SimpleQueueService.QueueDeletedRecently" + + // ErrCodeQueueDoesNotExist for service response error code + // "AWS.SimpleQueueService.NonExistentQueue". + // + // The specified queue doesn't exist. + ErrCodeQueueDoesNotExist = "AWS.SimpleQueueService.NonExistentQueue" + + // ErrCodeQueueNameExists for service response error code + // "QueueAlreadyExists". + // + // A queue with this name already exists. Amazon SQS returns this error only + // if the request includes attributes whose values differ from those of the + // existing queue. + ErrCodeQueueNameExists = "QueueAlreadyExists" + + // ErrCodeReceiptHandleIsInvalid for service response error code + // "ReceiptHandleIsInvalid". + // + // The specified receipt handle isn't valid. + ErrCodeReceiptHandleIsInvalid = "ReceiptHandleIsInvalid" + + // ErrCodeTooManyEntriesInBatchRequest for service response error code + // "AWS.SimpleQueueService.TooManyEntriesInBatchRequest". + // + // The batch request contains more entries than permissible. + ErrCodeTooManyEntriesInBatchRequest = "AWS.SimpleQueueService.TooManyEntriesInBatchRequest" + + // ErrCodeUnsupportedOperation for service response error code + // "AWS.SimpleQueueService.UnsupportedOperation". + // + // Error code 400. Unsupported operation. + ErrCodeUnsupportedOperation = "AWS.SimpleQueueService.UnsupportedOperation" +) diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sqs/service.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sqs/service.go new file mode 100644 index 00000000000..cc01150237c --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sqs/service.go @@ -0,0 +1,85 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +package sqs + +import ( + "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/aws/signer/v4" + "github.com/aws/aws-sdk-go-v2/private/protocol/query" +) + +// SQS provides the API operation methods for making requests to +// Amazon Simple Queue Service. See this package's package overview docs +// for details on the service. +// +// SQS methods are safe to use concurrently. It is not safe to +// modify mutate any of the struct's properties though. +type SQS struct { + *aws.Client + + // Service specific configurations. (codegen: service_specific_config.go) + + // Disables the computation and validation of request and response checksums. + DisableComputeChecksums bool +} + +// Used for custom client initialization logic +var initClient func(*SQS) + +// Used for custom request initialization logic +var initRequest func(*SQS, *aws.Request) + +// Service information constants +const ( + ServiceName = "sqs" // Service endpoint prefix API calls made to. + EndpointsID = ServiceName // Service ID for Regions and Endpoints metadata. +) + +// New creates a new instance of the SQS client with a config. +// +// Example: +// // Create a SQS client from just a config. +// svc := sqs.New(myConfig) +func New(config aws.Config) *SQS { + var signingName string + signingRegion := config.Region + + svc := &SQS{ + Client: aws.NewClient( + config, + aws.Metadata{ + ServiceName: ServiceName, + SigningName: signingName, + SigningRegion: signingRegion, + APIVersion: "2012-11-05", + }, + ), + } + + // Handlers + svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler) + svc.Handlers.Build.PushBackNamed(query.BuildHandler) + svc.Handlers.Unmarshal.PushBackNamed(query.UnmarshalHandler) + svc.Handlers.UnmarshalMeta.PushBackNamed(query.UnmarshalMetaHandler) + svc.Handlers.UnmarshalError.PushBackNamed(query.UnmarshalErrorHandler) + + // Run custom client initialization if present + if initClient != nil { + initClient(svc) + } + + return svc +} + +// newRequest creates a new request for a SQS operation and runs any +// custom request initialization. +func (c *SQS) newRequest(op *aws.Operation, params, data interface{}) *aws.Request { + req := c.NewRequest(op, params, data) + + // Run custom request initialization if present + if initRequest != nil { + initRequest(c, req) + } + + return req +} diff --git a/vendor/github.com/aws/aws-sdk-go-v2/service/sqs/sqsiface/interface.go b/vendor/github.com/aws/aws-sdk-go-v2/service/sqs/sqsiface/interface.go new file mode 100644 index 00000000000..2432c78cd62 --- /dev/null +++ b/vendor/github.com/aws/aws-sdk-go-v2/service/sqs/sqsiface/interface.go @@ -0,0 +1,106 @@ +// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. + +// Package sqsiface provides an interface to enable mocking the Amazon Simple Queue Service service client +// for testing your code. +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. +package sqsiface + +import ( + "github.com/aws/aws-sdk-go-v2/service/sqs" +) + +// SQSAPI provides an interface to enable mocking the +// sqs.SQS service client's API operation, +// paginators, and waiters. This make unit testing your code that calls out +// to the SDK's service client's calls easier. +// +// The best way to use this interface is so the SDK's service client's calls +// can be stubbed out for unit testing your code with the SDK without needing +// to inject custom request handlers into the SDK's request pipeline. +// +// // myFunc uses an SDK service client to make a request to +// // Amazon Simple Queue Service. +// func myFunc(svc sqsiface.SQSAPI) bool { +// // Make svc.AddPermission request +// } +// +// func main() { +// cfg, err := external.LoadDefaultAWSConfig() +// if err != nil { +// panic("failed to load config, " + err.Error()) +// } +// +// svc := sqs.New(cfg) +// +// myFunc(svc) +// } +// +// In your _test.go file: +// +// // Define a mock struct to be used in your unit tests of myFunc. +// type mockSQSClient struct { +// sqsiface.SQSAPI +// } +// func (m *mockSQSClient) AddPermission(input *sqs.AddPermissionInput) (*sqs.AddPermissionOutput, error) { +// // mock response/functionality +// } +// +// func TestMyFunc(t *testing.T) { +// // Setup Test +// mockSvc := &mockSQSClient{} +// +// myfunc(mockSvc) +// +// // Verify myFunc's functionality +// } +// +// It is important to note that this interface will have breaking changes +// when the service model is updated and adds new API operations, paginators, +// and waiters. Its suggested to use the pattern above for testing, or using +// tooling to generate mocks to satisfy the interfaces. +type SQSAPI interface { + AddPermissionRequest(*sqs.AddPermissionInput) sqs.AddPermissionRequest + + ChangeMessageVisibilityRequest(*sqs.ChangeMessageVisibilityInput) sqs.ChangeMessageVisibilityRequest + + ChangeMessageVisibilityBatchRequest(*sqs.ChangeMessageVisibilityBatchInput) sqs.ChangeMessageVisibilityBatchRequest + + CreateQueueRequest(*sqs.CreateQueueInput) sqs.CreateQueueRequest + + DeleteMessageRequest(*sqs.DeleteMessageInput) sqs.DeleteMessageRequest + + DeleteMessageBatchRequest(*sqs.DeleteMessageBatchInput) sqs.DeleteMessageBatchRequest + + DeleteQueueRequest(*sqs.DeleteQueueInput) sqs.DeleteQueueRequest + + GetQueueAttributesRequest(*sqs.GetQueueAttributesInput) sqs.GetQueueAttributesRequest + + GetQueueUrlRequest(*sqs.GetQueueUrlInput) sqs.GetQueueUrlRequest + + ListDeadLetterSourceQueuesRequest(*sqs.ListDeadLetterSourceQueuesInput) sqs.ListDeadLetterSourceQueuesRequest + + ListQueueTagsRequest(*sqs.ListQueueTagsInput) sqs.ListQueueTagsRequest + + ListQueuesRequest(*sqs.ListQueuesInput) sqs.ListQueuesRequest + + PurgeQueueRequest(*sqs.PurgeQueueInput) sqs.PurgeQueueRequest + + ReceiveMessageRequest(*sqs.ReceiveMessageInput) sqs.ReceiveMessageRequest + + RemovePermissionRequest(*sqs.RemovePermissionInput) sqs.RemovePermissionRequest + + SendMessageRequest(*sqs.SendMessageInput) sqs.SendMessageRequest + + SendMessageBatchRequest(*sqs.SendMessageBatchInput) sqs.SendMessageBatchRequest + + SetQueueAttributesRequest(*sqs.SetQueueAttributesInput) sqs.SetQueueAttributesRequest + + TagQueueRequest(*sqs.TagQueueInput) sqs.TagQueueRequest + + UntagQueueRequest(*sqs.UntagQueueInput) sqs.UntagQueueRequest +} + +var _ SQSAPI = (*sqs.SQS)(nil) diff --git a/vendor/vendor.json b/vendor/vendor.json index d4bcd302afc..e9de9698556 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -445,6 +445,22 @@ "version": "v2.0.0-preview.5", "versionExact": "v2.0.0-preview.5" }, + { + "checksumSHA1": "Y+mpKnu57hYbC4z3nrSFR9BkAec=", + "path": "github.com/aws/aws-sdk-go-v2/service/sqs", + "revision": "d52522b5f4b95591ff6528d7c54923951aadf099", + "revisionTime": "2018-09-27T22:51:20Z", + "version": "v2.0.0-preview.5", + "versionExact": "v2.0.0-preview.5" + }, + { + "checksumSHA1": "zydzuI+ekstlWNf6kXnMKDy/pfM=", + "path": "github.com/aws/aws-sdk-go-v2/service/sqs/sqsiface", + "revision": "d52522b5f4b95591ff6528d7c54923951aadf099", + "revisionTime": "2018-09-27T22:51:20Z", + "version": "v2.0.0-preview.5", + "versionExact": "v2.0.0-preview.5" + }, { "checksumSHA1": "KxyCqGCS+HriTN14zW1NKyXDCT4=", "path": "github.com/aws/aws-sdk-go-v2/service/sts", diff --git a/x-pack/metricbeat/module/aws/fields.go b/x-pack/metricbeat/module/aws/fields.go index 90d188ed156..5d5ff0faf27 100644 --- a/x-pack/metricbeat/module/aws/fields.go +++ b/x-pack/metricbeat/module/aws/fields.go @@ -19,5 +19,5 @@ func init() { // AssetAws returns asset data. // This is the base64 encoded gzipped contents of module/aws. func AssetAws() string { - return "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" + return "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" } diff --git a/x-pack/metricbeat/module/aws/s3_daily_storage/_meta/data.json b/x-pack/metricbeat/module/aws/s3_daily_storage/_meta/data.json index 0cdfffa3aab..a8d34d27bfa 100644 --- a/x-pack/metricbeat/module/aws/s3_daily_storage/_meta/data.json +++ b/x-pack/metricbeat/module/aws/s3_daily_storage/_meta/data.json @@ -1,9 +1,5 @@ { "@timestamp": "2017-10-12T08:05:34.853Z", - "agent": { - "hostname": "host.example.com", - "name": "host.example.com" - }, "aws": { "s3_daily_storage": { "bucket": { diff --git a/x-pack/metricbeat/module/aws/s3_request/_meta/data.json b/x-pack/metricbeat/module/aws/s3_request/_meta/data.json index 22306231c82..6b98c713d5c 100644 --- a/x-pack/metricbeat/module/aws/s3_request/_meta/data.json +++ b/x-pack/metricbeat/module/aws/s3_request/_meta/data.json @@ -1,28 +1,23 @@ { "@timestamp": "2017-10-12T08:05:34.853Z", - "agent": { - "hostname": "host.example.com", - "name": "host.example.com" - }, "aws": { "s3_request": { "bucket": { "name": "test-s3-ks" }, "downloaded": { - "bytes": 1303 + "bytes": 2606 }, "errors": { "4xx": 0, "5xx": 0 }, "latency": { - "first_byte.ms": 544, - "total_request.ms": 545 + "first_byte.ms": 1032, + "total_request.ms": 1032 }, "requests": { - "head": 1, - "list": 1, + "list": 2, "total": 2 }, "uploaded": {} @@ -44,4 +39,4 @@ "name": "s3_request", "type": "s3_request" } -} +} \ No newline at end of file diff --git a/x-pack/metricbeat/module/aws/sqs/_meta/data.json b/x-pack/metricbeat/module/aws/sqs/_meta/data.json index afec23f860d..8611c17c945 100644 --- a/x-pack/metricbeat/module/aws/sqs/_meta/data.json +++ b/x-pack/metricbeat/module/aws/sqs/_meta/data.json @@ -1,9 +1,5 @@ { "@timestamp": "2017-10-12T08:05:34.853Z", - "agent": { - "hostname": "host.example.com", - "name": "host.example.com" - }, "aws": { "sqs": { "empty_receives": 0, @@ -13,12 +9,17 @@ "not_visible": 0, "received": 0, "sent": 0, - "visible": 91 + "visible": 80 }, "oldest_message_age": { - "sec": 86404 + "sec": 83991 + }, + "queue": { + "name": "elb-log-queue-20171218185917658900000001" }, - "sent_message_size": {} + "sent_message_size": { + "bytes": 976 + } } }, "cloud": { diff --git a/x-pack/metricbeat/module/aws/sqs/_meta/docs.asciidoc b/x-pack/metricbeat/module/aws/sqs/_meta/docs.asciidoc index 9db9912db6e..709674047cf 100644 --- a/x-pack/metricbeat/module/aws/sqs/_meta/docs.asciidoc +++ b/x-pack/metricbeat/module/aws/sqs/_meta/docs.asciidoc @@ -8,4 +8,5 @@ Some specific AWS permissions are required for IAM user to collect AWS SQS metri ---- cloudwatch:GetMetricData ec2:DescribeRegions +sqs:ListQueues ---- diff --git a/x-pack/metricbeat/module/aws/sqs/_meta/fields.yml b/x-pack/metricbeat/module/aws/sqs/_meta/fields.yml index 9893f0af8a9..1e36b246574 100644 --- a/x-pack/metricbeat/module/aws/sqs/_meta/fields.yml +++ b/x-pack/metricbeat/module/aws/sqs/_meta/fields.yml @@ -41,3 +41,7 @@ format: bytes description: > The size of messages added to a queue. + - name: queue.name + type: keyword + description: > + SQS queue name diff --git a/x-pack/metricbeat/module/aws/sqs/data.go b/x-pack/metricbeat/module/aws/sqs/data.go index 9c45715b081..f76810cf925 100644 --- a/x-pack/metricbeat/module/aws/sqs/data.go +++ b/x-pack/metricbeat/module/aws/sqs/data.go @@ -26,5 +26,6 @@ var ( "sent_message_size": s.Object{ "bytes": c.Float("SentMessageSize"), }, + "queue.name": c.Str("QueueName"), } ) diff --git a/x-pack/metricbeat/module/aws/sqs/sqs.go b/x-pack/metricbeat/module/aws/sqs/sqs.go index 764d3898b7c..49f7f280750 100644 --- a/x-pack/metricbeat/module/aws/sqs/sqs.go +++ b/x-pack/metricbeat/module/aws/sqs/sqs.go @@ -9,6 +9,9 @@ import ( "strconv" "strings" + "github.com/aws/aws-sdk-go-v2/service/sqs" + "github.com/aws/aws-sdk-go-v2/service/sqs/sqsiface" + "github.com/aws/aws-sdk-go-v2/service/cloudwatch" "github.com/pkg/errors" @@ -79,6 +82,18 @@ func (m *MetricSet) Fetch(report mb.ReporterV2) { for _, regionName := range m.MetricSet.RegionsList { m.MetricSet.AwsConfig.Region = regionName svcCloudwatch := cloudwatch.New(*m.MetricSet.AwsConfig) + svcSQS := sqs.New(*m.MetricSet.AwsConfig) + + // Get queueUrls for each region + queueURLs, err := getQueueUrls(svcSQS) + if err != nil { + m.logger.Error(err.Error()) + report.Error(err) + continue + } + if len(queueURLs) == 0 { + continue + } // Get listMetrics output listMetricsOutput, err := aws.GetListMetricsOutput(namespace, regionName, svcCloudwatch) @@ -107,16 +122,20 @@ func (m *MetricSet) Fetch(report mb.ReporterV2) { } // Create Cloudwatch Events for SQS - event, err := createSQSEvents(metricDataResults, metricsetName, regionName, schemaRequestFields) - if err != nil { - m.logger.Error(err.Error()) - event.Error = err - report.Event(event) - continue - } + createSQSEvents(queueURLs, metricDataResults, regionName, report) + } +} - report.Event(event) +func getQueueUrls(svc sqsiface.SQSAPI) ([]string, error) { + // ListQueues + listQueuesInput := &sqs.ListQueuesInput{} + req := svc.ListQueuesRequest(listQueuesInput) + output, err := req.Send() + if err != nil { + err = errors.Wrap(err, "Error DescribeInstances") + return nil, err } + return output.QueueUrls, nil } func constructMetricQueries(listMetricsOutput []cloudwatch.Metric, period int64) []cloudwatch.MetricDataQuery { @@ -153,19 +172,22 @@ func createMetricDataQuery(metric cloudwatch.Metric, index int, period int64) (m return } -func createSQSEvents(getMetricDataResults []cloudwatch.MetricDataResult, metricsetName string, regionName string, schemaMetricFields s.Schema) (event mb.Event, err error) { +func createEventPerQueue(getMetricDataResults []cloudwatch.MetricDataResult, queueName string, metricsetName string, regionName string, schemaMetricFields s.Schema) (event mb.Event, err error) { event.Service = metricsetName event.RootFields = common.MapStr{} event.RootFields.Put("service.name", metricsetName) event.RootFields.Put("cloud.region", regionName) + // AWS sqs metrics mapOfMetricSetFieldResults := make(map[string]interface{}) for _, output := range getMetricDataResults { if len(output.Values) == 0 { continue } labels := strings.Split(*output.Label, " ") - mapOfMetricSetFieldResults["queue.name"] = labels[0] + if labels[0] != queueName { + continue + } mapOfMetricSetFieldResults[labels[1]] = fmt.Sprint(output.Values[0]) } @@ -174,6 +196,22 @@ func createSQSEvents(getMetricDataResults []cloudwatch.MetricDataResult, metrics err = errors.Wrap(err, "Error trying to apply schemaMetricSetFields in AWS SQS metricbeat module.") return } + event.MetricSetFields = resultMetricSetFields + event.MetricSetFields.Put("queue.name", queueName) return } + +func createSQSEvents(queueURLs []string, metricDataResults []cloudwatch.MetricDataResult, regionName string, report mb.ReporterV2) { + for _, queueURL := range queueURLs { + queueURLParsed := strings.Split(queueURL, "/") + queueName := queueURLParsed[len(queueURLParsed)-1] + event, err := createEventPerQueue(metricDataResults, queueName, metricsetName, regionName, schemaRequestFields) + if err != nil { + event.Error = err + report.Event(event) + continue + } + report.Event(event) + } +} diff --git a/x-pack/metricbeat/module/aws/sqs/sqs_integration_test.go b/x-pack/metricbeat/module/aws/sqs/sqs_integration_test.go index c3d758c82d5..3ca4874f6eb 100644 --- a/x-pack/metricbeat/module/aws/sqs/sqs_integration_test.go +++ b/x-pack/metricbeat/module/aws/sqs/sqs_integration_test.go @@ -48,6 +48,7 @@ func TestFetch(t *testing.T) { mtest.CheckEventField("messages.visible", "float", event, t) mtest.CheckEventField("oldest_message_age.sec", "float", event, t) mtest.CheckEventField("sent_message_size", "float", event, t) + mtest.CheckEventField("queue.name", "string", event, t) } } diff --git a/x-pack/metricbeat/module/aws/sqs/sqs_test.go b/x-pack/metricbeat/module/aws/sqs/sqs_test.go new file mode 100644 index 00000000000..83cd0abd5b2 --- /dev/null +++ b/x-pack/metricbeat/module/aws/sqs/sqs_test.go @@ -0,0 +1,38 @@ +// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one +// or more contributor license agreements. Licensed under the Elastic License; +// you may not use this file except in compliance with the Elastic License. + +// +build !integration + +package sqs + +import ( + "testing" + + awssdk "github.com/aws/aws-sdk-go-v2/aws" + "github.com/aws/aws-sdk-go-v2/service/sqs" + "github.com/aws/aws-sdk-go-v2/service/sqs/sqsiface" + "github.com/stretchr/testify/assert" +) + +// MockSQSClient struct is used for unit tests. +type MockSQSClient struct { + sqsiface.SQSAPI +} + +func (m *MockSQSClient) ListQueuesRequest(input *sqs.ListQueuesInput) sqs.ListQueuesRequest { + return sqs.ListQueuesRequest{ + Request: &awssdk.Request{ + Data: &sqs.ListQueuesOutput{ + QueueUrls: []string{"https://sqs.us-east-1.amazonaws.com/123/sqs1", "https://sqs.us-east-1.amazonaws.com/123/sqs2"}, + }, + }, + } +} + +func TestGetQueueUrls(t *testing.T) { + mockSvc := &MockSQSClient{} + queueUrls, err := getQueueUrls(mockSvc) + assert.NoError(t, err) + assert.Equal(t, []string{"https://sqs.us-east-1.amazonaws.com/123/sqs1", "https://sqs.us-east-1.amazonaws.com/123/sqs2"}, queueUrls) +} From 8169159d7bfe62289cd90274a738a863a7ccd3a2 Mon Sep 17 00:00:00 2001 From: Shaunak Kashyap Date: Wed, 13 Mar 2019 11:21:51 -0700 Subject: [PATCH 200/332] Send system_api_version=7 from beats 7.0.0 onwards (#11197) --- libbeat/monitoring/report/elasticsearch/elasticsearch.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libbeat/monitoring/report/elasticsearch/elasticsearch.go b/libbeat/monitoring/report/elasticsearch/elasticsearch.go index 46bd2104f5c..59d4406a7bf 100644 --- a/libbeat/monitoring/report/elasticsearch/elasticsearch.go +++ b/libbeat/monitoring/report/elasticsearch/elasticsearch.go @@ -68,7 +68,7 @@ var errNoMonitoring = errors.New("xpack monitoring not available") // default monitoring api parameters var defaultParams = map[string]string{ "system_id": "beats", - "system_api_version": "6", + "system_api_version": "7", } func init() { From 822b95a02eb4dde08075040210d6ef2013ec5ac6 Mon Sep 17 00:00:00 2001 From: kaiyan-sheng Date: Wed, 13 Mar 2019 14:46:23 -0600 Subject: [PATCH 201/332] Collect Cloudwatch metrics from the same timestamp (#11142) * Update aws documentation * Add checks for instance fields in TestFetch * Add tests for CheckTimestampInArray and FindTimestamp * Update comment for CheckTimestampInArray * Change test to table driven * Adopt CheckTimestampInArray and FindTimestamp in S3 and SQS --- CHANGELOG.next.asciidoc | 1 + metricbeat/docs/modules/aws.asciidoc | 6 +- .../metricbeat/module/aws/_meta/docs.asciidoc | 6 +- x-pack/metricbeat/module/aws/ec2/ec2.go | 25 +++-- .../module/aws/ec2/ec2_integration_test.go | 8 +- x-pack/metricbeat/module/aws/ec2/ec2_test.go | 30 +++-- .../module/aws/mtest/integration.go | 6 +- .../aws/s3_daily_storage/s3_daily_storage.go | 18 ++- .../module/aws/s3_request/s3_request.go | 18 ++- x-pack/metricbeat/module/aws/sqs/sqs.go | 23 ++-- x-pack/metricbeat/module/aws/utils.go | 52 +++++++++ x-pack/metricbeat/module/aws/utils_test.go | 106 ++++++++++++++++++ 12 files changed, 252 insertions(+), 47 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 98157459162..2a0e98b4b4a 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -197,6 +197,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Change ECS field cloud.provider to aws. {pull}11023[11023] - Add documentation about jolokia autodiscover fields. {issue}10925[10925] {pull}10979[10979] - Add missing aws.ec2.instance.state.name into fields.yml. {issue}11219[11219] {pull}11221[11221] +- Fix ec2 metricset to collect metrics from Cloudwatch with the same timestamp. {pull}11142[11142] *Packetbeat* diff --git a/metricbeat/docs/modules/aws.asciidoc b/metricbeat/docs/modules/aws.asciidoc index 6718eada7ed..ea919d6ee6a 100644 --- a/metricbeat/docs/modules/aws.asciidoc +++ b/metricbeat/docs/modules/aws.asciidoc @@ -31,8 +31,10 @@ see https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html[Te aws> sts get-session-token --serial-number arn:aws:iam::1234:mfa/your-email@example.com --token-code 456789 --duration-seconds 129600 ---- -Since temporary security credentials are short term, after they expire, the user needs to generate new ones and modify -the aws.yml config file with the new credentials. This will cause data loss if the config file is not update with new +Because temporary security credentials are short term, after they expire, the user needs to generate new ones and modify +the aws.yml config file with the new credentials. Unless https://www.elastic.co/guide/en/beats/metricbeat/current/_live_reloading.html[live reloading] +feature is enabled for Metricbeat, the user needs to manually restart Metricbeat after updating the config file in order +to continue collecting Cloudwatch metrics. This will cause data loss if the config file is not updated with new credentials before the old ones expire. For Metricbeat, we recommend users to use access keys in config file to enable aws module making AWS api calls without have to generate new temporary credentials and update the config frequently. diff --git a/x-pack/metricbeat/module/aws/_meta/docs.asciidoc b/x-pack/metricbeat/module/aws/_meta/docs.asciidoc index 42e6da16527..d4a39dc7cf4 100644 --- a/x-pack/metricbeat/module/aws/_meta/docs.asciidoc +++ b/x-pack/metricbeat/module/aws/_meta/docs.asciidoc @@ -24,8 +24,10 @@ see https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html[Te aws> sts get-session-token --serial-number arn:aws:iam::1234:mfa/your-email@example.com --token-code 456789 --duration-seconds 129600 ---- -Since temporary security credentials are short term, after they expire, the user needs to generate new ones and modify -the aws.yml config file with the new credentials. This will cause data loss if the config file is not update with new +Because temporary security credentials are short term, after they expire, the user needs to generate new ones and modify +the aws.yml config file with the new credentials. Unless https://www.elastic.co/guide/en/beats/metricbeat/current/_live_reloading.html[live reloading] +feature is enabled for Metricbeat, the user needs to manually restart Metricbeat after updating the config file in order +to continue collecting Cloudwatch metrics. This will cause data loss if the config file is not updated with new credentials before the old ones expire. For Metricbeat, we recommend users to use access keys in config file to enable aws module making AWS api calls without have to generate new temporary credentials and update the config frequently. diff --git a/x-pack/metricbeat/module/aws/ec2/ec2.go b/x-pack/metricbeat/module/aws/ec2/ec2.go index 9033195516c..1716cd87e1c 100644 --- a/x-pack/metricbeat/module/aws/ec2/ec2.go +++ b/x-pack/metricbeat/module/aws/ec2/ec2.go @@ -166,12 +166,22 @@ func createCloudWatchEvents(getMetricDataResults []cloudwatch.MetricDataResult, // AWS EC2 Metrics mapOfMetricSetFieldResults := make(map[string]interface{}) - for _, output := range getMetricDataResults { - if len(output.Values) == 0 { - continue + + // Find a timestamp for all metrics in output + timestamp := aws.FindTimestamp(getMetricDataResults) + if !timestamp.IsZero() { + for _, output := range getMetricDataResults { + if len(output.Values) == 0 { + continue + } + exists, timestampIdx := aws.CheckTimestampInArray(timestamp, output.Timestamps) + if exists { + labels := strings.Split(*output.Label, " ") + if len(output.Values) > timestampIdx { + mapOfMetricSetFieldResults[labels[1]] = fmt.Sprint(output.Values[timestampIdx]) + } + } } - labels := strings.Split(*output.Label, " ") - mapOfMetricSetFieldResults[labels[1]] = fmt.Sprint(output.Values[0]) } resultMetricSetFields, err := aws.EventMapping(mapOfMetricSetFieldResults, schemaMetricSetFields) @@ -181,8 +191,9 @@ func createCloudWatchEvents(getMetricDataResults []cloudwatch.MetricDataResult, } if len(mapOfMetricSetFieldResults) <= 11 { - info = "Missing Cloudwatch data for instance " + instanceID + ". This is expected for a new instance during the " + - "first data collection. If this shows up multiple times, please recheck the period setting in config." + info = "Missing Cloudwatch data for instance " + instanceID + ". This is expected for non-running instances or " + + "a new instance during the first data collection. If this shows up multiple times, please recheck the period " + + "setting in config." } instanceStateName, err := instanceOutput.State.Name.MarshalValue() diff --git a/x-pack/metricbeat/module/aws/ec2/ec2_integration_test.go b/x-pack/metricbeat/module/aws/ec2/ec2_integration_test.go index d327c539af9..6261a256c91 100644 --- a/x-pack/metricbeat/module/aws/ec2/ec2_integration_test.go +++ b/x-pack/metricbeat/module/aws/ec2/ec2_integration_test.go @@ -39,11 +39,17 @@ func TestFetch(t *testing.T) { mtest.CheckEventField("service.name", "string", event, t) mtest.CheckEventField("cloud.availability_zone", "string", event, t) mtest.CheckEventField("cloud.provider", "string", event, t) - mtest.CheckEventField("cloud.image.id", "string", event, t) mtest.CheckEventField("cloud.instance.id", "string", event, t) mtest.CheckEventField("cloud.machine.type", "string", event, t) mtest.CheckEventField("cloud.provider", "string", event, t) mtest.CheckEventField("cloud.region", "string", event, t) + mtest.CheckEventField("instance.image.id", "string", event, t) + mtest.CheckEventField("instance.state.name", "string", event, t) + mtest.CheckEventField("instance.state.code", "int", event, t) + mtest.CheckEventField("instance.monitoring.state", "string", event, t) + mtest.CheckEventField("instance.core.count", "int", event, t) + mtest.CheckEventField("instance.threads_per_core", "int", event, t) + // MetricSetField mtest.CheckEventField("cpu.total.pct", "float", event, t) mtest.CheckEventField("cpu.credit_usage", "float", event, t) diff --git a/x-pack/metricbeat/module/aws/ec2/ec2_test.go b/x-pack/metricbeat/module/aws/ec2/ec2_test.go index b06d4fc386d..3e440d3920f 100644 --- a/x-pack/metricbeat/module/aws/ec2/ec2_test.go +++ b/x-pack/metricbeat/module/aws/ec2/ec2_test.go @@ -8,6 +8,7 @@ package ec2 import ( "testing" + "time" awssdk "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/cloudwatch" @@ -165,27 +166,32 @@ func TestCreateCloudWatchEvents(t *testing.T) { assert.Equal(t, 1, len(instanceIDs)) instanceID := instanceIDs[0] assert.Equal(t, instanceID, instanceID) + timestamp := time.Now() getMetricDataOutput := []cloudwatch.MetricDataResult{ { - Id: &id1, - Label: &label1, - Values: []float64{0.25}, + Id: &id1, + Label: &label1, + Values: []float64{0.25}, + Timestamps: []time.Time{timestamp}, }, { - Id: &id2, - Label: &label2, - Values: []float64{0.0}, + Id: &id2, + Label: &label2, + Values: []float64{0.0}, + Timestamps: []time.Time{timestamp}, }, { - Id: &id3, - Label: &label3, - Values: []float64{0.0}, + Id: &id3, + Label: &label3, + Values: []float64{0.0}, + Timestamps: []time.Time{timestamp}, }, { - Id: &id4, - Label: &label4, - Values: []float64{0.0}, + Id: &id4, + Label: &label4, + Values: []float64{0.0}, + Timestamps: []time.Time{timestamp}, }, } diff --git a/x-pack/metricbeat/module/aws/mtest/integration.go b/x-pack/metricbeat/module/aws/mtest/integration.go index afacfdcbb0d..aabc2f5d0a0 100644 --- a/x-pack/metricbeat/module/aws/mtest/integration.go +++ b/x-pack/metricbeat/module/aws/mtest/integration.go @@ -76,15 +76,15 @@ func compareType(metricValue interface{}, expectedType string, metricName string switch metricValue.(type) { case float64: if expectedType != "float" { - err = errors.New("Failed: Field " + metricName + "is not in type " + expectedType) + err = errors.New("Failed: Field " + metricName + " is not in type " + expectedType) } case string: if expectedType != "string" { - err = errors.New("Failed: Field " + metricName + "is not in type " + expectedType) + err = errors.New("Failed: Field " + metricName + " is not in type " + expectedType) } case int64: if expectedType != "int" { - err = errors.New("Failed: Field " + metricName + "is not in type " + expectedType) + err = errors.New("Failed: Field " + metricName + " is not in type " + expectedType) } } return diff --git a/x-pack/metricbeat/module/aws/s3_daily_storage/s3_daily_storage.go b/x-pack/metricbeat/module/aws/s3_daily_storage/s3_daily_storage.go index 7110018bbf0..cfee884c668 100644 --- a/x-pack/metricbeat/module/aws/s3_daily_storage/s3_daily_storage.go +++ b/x-pack/metricbeat/module/aws/s3_daily_storage/s3_daily_storage.go @@ -204,14 +204,20 @@ func createCloudWatchEvents(outputs []cloudwatch.MetricDataResult, regionName st // AWS s3_daily_storage metrics mapOfMetricSetFieldResults := make(map[string]interface{}) + // Find a timestamp for all metrics in output - if len(outputs) > 0 && len(outputs[0].Timestamps) > 0 { - timestamp := outputs[0].Timestamps[0] + timestamp := aws.FindTimestamp(outputs) + if !timestamp.IsZero() { for _, output := range outputs { - labels := strings.Split(*output.Label, " ") - // check timestamp to make sure metrics come from the same timestamp - if len(labels) == 3 && labels[0] == bucketName && len(output.Values) > 0 && output.Timestamps[0] == timestamp { - mapOfMetricSetFieldResults[labels[2]] = fmt.Sprint(output.Values[0]) + if len(output.Values) == 0 { + continue + } + exists, timestampIdx := aws.CheckTimestampInArray(timestamp, output.Timestamps) + if exists { + labels := strings.Split(*output.Label, " ") + if labels[0] == bucketName && len(output.Values) > timestampIdx { + mapOfMetricSetFieldResults[labels[2]] = fmt.Sprint(output.Values[timestampIdx]) + } } } } diff --git a/x-pack/metricbeat/module/aws/s3_request/s3_request.go b/x-pack/metricbeat/module/aws/s3_request/s3_request.go index 67f2cd32425..5e759930a89 100644 --- a/x-pack/metricbeat/module/aws/s3_request/s3_request.go +++ b/x-pack/metricbeat/module/aws/s3_request/s3_request.go @@ -205,14 +205,20 @@ func createS3RequestEvents(outputs []cloudwatch.MetricDataResult, regionName str // AWS s3_request metrics mapOfMetricSetFieldResults := make(map[string]interface{}) + // Find a timestamp for all metrics in output - if len(outputs) > 0 && len(outputs[0].Timestamps) > 0 { - timestamp := outputs[0].Timestamps[0] + timestamp := aws.FindTimestamp(outputs) + if !timestamp.IsZero() { for _, output := range outputs { - labels := strings.Split(*output.Label, " ") - // check timestamp to make sure metrics come from the same timestamp - if len(labels) == 3 && labels[0] == bucketName && len(output.Values) > 0 && output.Timestamps[0] == timestamp { - mapOfMetricSetFieldResults[labels[2]] = fmt.Sprint(output.Values[0]) + if len(output.Values) == 0 { + continue + } + exists, timestampIdx := aws.CheckTimestampInArray(timestamp, output.Timestamps) + if exists { + labels := strings.Split(*output.Label, " ") + if labels[0] == bucketName && len(output.Values) > timestampIdx { + mapOfMetricSetFieldResults[labels[2]] = fmt.Sprint(output.Values[timestampIdx]) + } } } } diff --git a/x-pack/metricbeat/module/aws/sqs/sqs.go b/x-pack/metricbeat/module/aws/sqs/sqs.go index 49f7f280750..ab34379b0cb 100644 --- a/x-pack/metricbeat/module/aws/sqs/sqs.go +++ b/x-pack/metricbeat/module/aws/sqs/sqs.go @@ -180,15 +180,22 @@ func createEventPerQueue(getMetricDataResults []cloudwatch.MetricDataResult, que // AWS sqs metrics mapOfMetricSetFieldResults := make(map[string]interface{}) - for _, output := range getMetricDataResults { - if len(output.Values) == 0 { - continue - } - labels := strings.Split(*output.Label, " ") - if labels[0] != queueName { - continue + + // Find a timestamp for all metrics in output + timestamp := aws.FindTimestamp(getMetricDataResults) + if !timestamp.IsZero() { + for _, output := range getMetricDataResults { + if len(output.Values) == 0 { + continue + } + exists, timestampIdx := aws.CheckTimestampInArray(timestamp, output.Timestamps) + if exists { + labels := strings.Split(*output.Label, " ") + if labels[0] == queueName && len(output.Values) > timestampIdx { + mapOfMetricSetFieldResults[labels[1]] = fmt.Sprint(output.Values[timestampIdx]) + } + } } - mapOfMetricSetFieldResults[labels[1]] = fmt.Sprint(output.Values[0]) } resultMetricSetFields, err := aws.EventMapping(mapOfMetricSetFieldResults, schemaMetricFields) diff --git a/x-pack/metricbeat/module/aws/utils.go b/x-pack/metricbeat/module/aws/utils.go index e66ad82d605..2249f82e226 100644 --- a/x-pack/metricbeat/module/aws/utils.go +++ b/x-pack/metricbeat/module/aws/utils.go @@ -84,3 +84,55 @@ func GetMetricDataResults(metricDataQueries []cloudwatch.MetricDataQuery, svc cl func EventMapping(input map[string]interface{}, schema s.Schema) (common.MapStr, error) { return schema.Apply(input, s.FailOnRequired) } + +// CheckTimestampInArray checks if input timestamp exists in timestampArray and if it exists, return the position. +func CheckTimestampInArray(timestamp time.Time, timestampArray []time.Time) (bool, int) { + for i := 0; i < len(timestampArray); i++ { + if timestamp.Equal(timestampArray[i]) { + return true, i + } + } + return false, -1 +} + +// FindTimestamp function checks MetricDataResults and find the timestamp to collect metrics from. +// For example, MetricDataResults might look like: +// metricDataResults = [{ +// Id: "sqs0", +// Label: "testName SentMessageSize", +// StatusCode: Complete, +// Timestamps: [2019-03-11 17:45:00 +0000 UTC], +// Values: [981] +// } { +// Id: "sqs1", +// Label: "testName NumberOfMessagesSent", +// StatusCode: Complete, +// Timestamps: [2019-03-11 17:45:00 +0000 UTC,2019-03-11 17:40:00 +0000 UTC], +// Values: [0.5,0] +// }] +// This case, we are collecting values for both metrics from timestamp 2019-03-11 17:45:00 +0000 UTC. +func FindTimestamp(getMetricDataResults []cloudwatch.MetricDataResult) time.Time { + timestamp := time.Time{} + for _, output := range getMetricDataResults { + // When there are outputs with one timestamp, use this timestamp. + if output.Timestamps != nil && len(output.Timestamps) == 1 { + // Use the first timestamp from Timestamps field to collect the latest data. + timestamp = output.Timestamps[0] + return timestamp + } + } + + // When there is no output with one timestamp, use the latest timestamp from timestamp list. + if timestamp.IsZero() { + for _, output := range getMetricDataResults { + // When there are outputs with one timestamp, use this timestamp + if output.Timestamps != nil && len(output.Timestamps) > 1 { + // Example Timestamps: [2019-03-11 17:36:00 +0000 UTC,2019-03-11 17:31:00 +0000 UTC] + timestamp = output.Timestamps[0] + return timestamp + } + } + } + + return timestamp +} diff --git a/x-pack/metricbeat/module/aws/utils_test.go b/x-pack/metricbeat/module/aws/utils_test.go index 9b57ecd3e67..00bab25d80c 100644 --- a/x-pack/metricbeat/module/aws/utils_test.go +++ b/x-pack/metricbeat/module/aws/utils_test.go @@ -7,6 +7,7 @@ package aws import ( "fmt" "testing" + "time" awssdk "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/cloudwatch" @@ -169,3 +170,108 @@ func TestGetMetricDataResults(t *testing.T) { assert.Equal(t, label4, *getMetricDataResults[3].Label) assert.Equal(t, 0.0, getMetricDataResults[3].Values[0]) } + +func TestCheckTimestampInArray(t *testing.T) { + timestamp1 := time.Now() + timestamp2 := timestamp1.Add(5 * time.Minute) + timestamp3 := timestamp1.Add(10 * time.Minute) + + cases := []struct { + targetTimestamp time.Time + expectedExists bool + expectedIndex int + }{ + { + targetTimestamp: timestamp1, + expectedExists: true, + expectedIndex: 0, + }, + { + targetTimestamp: timestamp3, + expectedExists: false, + expectedIndex: -1, + }, + } + + timestampArray := []time.Time{timestamp1, timestamp2} + for _, c := range cases { + exists, index := CheckTimestampInArray(c.targetTimestamp, timestampArray) + assert.Equal(t, c.expectedExists, exists) + assert.Equal(t, c.expectedIndex, index) + } +} + +func TestFindTimestamp(t *testing.T) { + timestamp1 := time.Now() + timestamp2 := timestamp1.Add(5 * time.Minute) + cases := []struct { + getMetricDataResults []cloudwatch.MetricDataResult + expectedTimestamp time.Time + }{ + { + getMetricDataResults: []cloudwatch.MetricDataResult{ + { + Id: &id1, + Label: &label1, + StatusCode: cloudwatch.StatusCodeComplete, + Timestamps: []time.Time{timestamp1, timestamp2}, + Values: []float64{0, 1}, + }, + { + Id: &id2, + Label: &label2, + StatusCode: cloudwatch.StatusCodeComplete, + Timestamps: []time.Time{timestamp1}, + Values: []float64{2, 3}, + }, + }, + expectedTimestamp: timestamp1, + }, + { + getMetricDataResults: []cloudwatch.MetricDataResult{ + { + Id: &id1, + Label: &label1, + StatusCode: cloudwatch.StatusCodeComplete, + Timestamps: []time.Time{timestamp1, timestamp2}, + Values: []float64{0, 1}, + }, + { + Id: &id2, + Label: &label2, + StatusCode: cloudwatch.StatusCodeComplete, + }, + }, + expectedTimestamp: timestamp1, + }, + { + getMetricDataResults: []cloudwatch.MetricDataResult{ + { + Id: &id1, + Label: &label1, + StatusCode: cloudwatch.StatusCodeComplete, + Timestamps: []time.Time{timestamp1, timestamp2}, + Values: []float64{0, 1}, + }, + { + Id: &id2, + Label: &label2, + StatusCode: cloudwatch.StatusCodeComplete, + }, + { + Id: &id3, + Label: &label2, + StatusCode: cloudwatch.StatusCodeComplete, + Timestamps: []time.Time{timestamp2}, + Values: []float64{2, 3}, + }, + }, + expectedTimestamp: timestamp2, + }, + } + + for _, c := range cases { + outputTimestamp := FindTimestamp(c.getMetricDataResults) + assert.Equal(t, c.expectedTimestamp, outputTimestamp) + } +} From a93a09efa4edb6ba4bf392503bb902659fccd4a1 Mon Sep 17 00:00:00 2001 From: Adrian Serrano Date: Wed, 13 Mar 2019 23:09:48 +0100 Subject: [PATCH 202/332] [Filebeat] allow ingest pipelines in YAML format (#11209) This updates the ingest pipeline loading to look at the pipeline definition file extension and use a JSON or YAML decoder depending on the type. --- CHANGELOG-developer.next.asciidoc | 1 + docs/devguide/modules-dev-guide.asciidoc | 16 ++++++- filebeat/fileset/fileset.go | 56 ++++++++++++++++++++++-- 3 files changed, 67 insertions(+), 6 deletions(-) diff --git a/CHANGELOG-developer.next.asciidoc b/CHANGELOG-developer.next.asciidoc index e8ab8e7f82d..ccbe92355ae 100644 --- a/CHANGELOG-developer.next.asciidoc +++ b/CHANGELOG-developer.next.asciidoc @@ -35,3 +35,4 @@ The list below covers the major changes between 7.0.0-beta1 and master only. - Assertion for documented fields in tests fails if any of the fields in the tested event is documented as an alias. {pull}10921[10921] - Support for Logger in the Metricset base instance. {pull}11106[11106] - Introduce processing.Support to instance.Setting. This allows Beats to fully modify the event processing. {pull}10801[10801] +- Filebeat modules can now use ingest pipelines in YAML format. {pull}11209[11209] diff --git a/docs/devguide/modules-dev-guide.asciidoc b/docs/devguide/modules-dev-guide.asciidoc index ddb1932a403..eb15ae54d18 100644 --- a/docs/devguide/modules-dev-guide.asciidoc +++ b/docs/devguide/modules-dev-guide.asciidoc @@ -308,7 +308,7 @@ The `ingest/` folder contains Elasticsearch Node pipelines are responsible for parsing the log lines and doing other manipulations on the data. -The files in this folder are JSON documents representing +The files in this folder are JSON or YAML documents representing {ref}/pipeline.html[pipeline definitions]. Just like with the `config/` folder, you can define multiple pipelines, but a single one is loaded at runtime based on the information from `manifest.yml`. @@ -330,6 +330,18 @@ The generator creates a JSON object similar to this one: } ---- +Alternatively, you can use YAML formatted pipelines, which uses a simpler syntax: + +[source,yaml] +---- +description: "Pipeline for parsing {module} {fileset} logs" +processors: +on_failure: + - set: + field: error.message + value: "{{ _ingest.on_failure_message }}" +---- + From here, you would typically add processors to the `processors` array to do the actual parsing. For details on how to use ingest node processors, see the {ref}/ingest-processors.html[ingest node documentation]. In @@ -407,7 +419,7 @@ file. The first pipeline in the list is considered to be the entry point pipelin ---- ingest_pipeline: - ingest/main.json - - ingest/plain_logs.json + - ingest/plain_logs.yml - ingest/json_logs.json ---- diff --git a/filebeat/fileset/fileset.go b/filebeat/fileset/fileset.go index e4f50407ac2..d1867b64b8e 100644 --- a/filebeat/fileset/fileset.go +++ b/filebeat/fileset/fileset.go @@ -35,6 +35,7 @@ import ( "text/template" errw "github.com/pkg/errors" + "gopkg.in/yaml.v2" "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/common/cfgwarn" @@ -421,15 +422,28 @@ func (fs *Fileset) GetPipelines(esVersion common.Version) (pipelines []pipeline, return nil, fmt.Errorf("Error reading pipeline file %s: %v", path, err) } - jsonString, err := applyTemplate(vars, string(strContents), true) + encodedString, err := applyTemplate(vars, string(strContents), true) if err != nil { return nil, fmt.Errorf("Error interpreting the template of the ingest pipeline: %v", err) } var content map[string]interface{} - err = json.Unmarshal([]byte(jsonString), &content) - if err != nil { - return nil, fmt.Errorf("Error JSON decoding the pipeline file: %s: %v", path, err) + switch extension := strings.ToLower(filepath.Ext(path)); extension { + case ".json": + if err = json.Unmarshal([]byte(encodedString), &content); err != nil { + return nil, fmt.Errorf("Error JSON decoding the pipeline file: %s: %v", path, err) + } + case ".yaml", ".yml": + if err = yaml.Unmarshal([]byte(encodedString), &content); err != nil { + return nil, fmt.Errorf("Error YAML decoding the pipeline file: %s: %v", path, err) + } + newContent, err := fixYAMLMaps(content) + if err != nil { + return nil, fmt.Errorf("Failed to sanitize the YAML pipeline file: %s: %v", path, err) + } + content = newContent.(map[string]interface{}) + default: + return nil, fmt.Errorf("Unsupported extension '%s' for pipeline file: %s", extension, path) } pipelineID := fs.pipelineIDs[idx] @@ -444,6 +458,40 @@ func (fs *Fileset) GetPipelines(esVersion common.Version) (pipelines []pipeline, return pipelines, nil } +// This function recursively converts maps with interface{} keys, as returned by +// yaml.Unmarshal, to maps of string keys, as expected by the json encoder +// that will be used when delivering the pipeline to Elasticsearch. +// Will return an error when something other than a string is used as a key. +func fixYAMLMaps(elem interface{}) (_ interface{}, err error) { + switch v := elem.(type) { + case map[interface{}]interface{}: + result := make(map[string]interface{}, len(v)) + for key, value := range v { + keyS, ok := key.(string) + if !ok { + return nil, fmt.Errorf("key '%v' is not string but %T", key, key) + } + if result[keyS], err = fixYAMLMaps(value); err != nil { + return nil, err + } + } + return result, nil + case map[string]interface{}: + for key, value := range v { + if v[key], err = fixYAMLMaps(value); err != nil { + return nil, err + } + } + case []interface{}: + for idx, value := range v { + if v[idx], err = fixYAMLMaps(value); err != nil { + return nil, err + } + } + } + return elem, nil +} + // formatPipelineID generates the ID to be used for the pipeline ID in Elasticsearch func formatPipelineID(module, fileset, path, beatVersion string) string { return fmt.Sprintf("filebeat-%s-%s-%s-%s", beatVersion, module, fileset, removeExt(filepath.Base(path))) From 5fb24127d116305b8cac623b8b082255552ed0b8 Mon Sep 17 00:00:00 2001 From: Shaunak Kashyap Date: Thu, 14 Mar 2019 00:22:33 -0700 Subject: [PATCH 203/332] Skip flaky ES integration tests for now (#11230) --- .../module/elasticsearch/elasticsearch_integration_test.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/metricbeat/module/elasticsearch/elasticsearch_integration_test.go b/metricbeat/module/elasticsearch/elasticsearch_integration_test.go index a43997a24ee..cf1bf63ef78 100644 --- a/metricbeat/module/elasticsearch/elasticsearch_integration_test.go +++ b/metricbeat/module/elasticsearch/elasticsearch_integration_test.go @@ -63,6 +63,7 @@ var metricSets = []string{ } func TestFetch(t *testing.T) { + t.Skip("flaky") compose.EnsureUp(t, "elasticsearch") host := net.JoinHostPort(getEnvHost(), getEnvPort()) @@ -100,6 +101,7 @@ func TestFetch(t *testing.T) { } func TestData(t *testing.T) { + t.Skip("flaky") compose.EnsureUp(t, "elasticsearch") host := net.JoinHostPort(getEnvHost(), getEnvPort()) From 5cdc84c1e574648e30703416cf2e9cffcbe03625 Mon Sep 17 00:00:00 2001 From: Adrian Serrano Date: Thu, 14 Mar 2019 09:37:09 +0100 Subject: [PATCH 204/332] Add missing CHANGELOG entry for #10945 (#11238) --- CHANGELOG.next.asciidoc | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 2a0e98b4b4a..19432ddccb5 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -285,6 +285,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Add configuration knob for auto-discover hints to control whether log harvesting is enabled for the pod/container. {issue}10811[10811] {pull}10911[10911] - Change Suricata module pipeline to handle `destination.domain` being set if a reverse DNS processor is used. {issue}10510[10510] - Add the `network.community_id` flow identifier to field to the IPTables, Suricata, and Zeek modules. {pull}11005[11005] +- Add support for loading custom NetFlow and IPFIX field definitions to netflow input. {pull}10945[10945] *Heartbeat* From e5ac2461f15a5d79987e9b637c4a92733a32c8c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?No=C3=A9mi=20V=C3=A1nyi?= Date: Thu, 14 Mar 2019 10:11:56 +0100 Subject: [PATCH 205/332] Move Fields from pacakge libbeat/common to libbeat/mapping (#11198) The structures `Field` and `Fields` are moved from `common` to the package `mapping`. This is a step towards moving things from the abused package `common`. I would like to move fields and other asset related functionality to this package in the future. --- CHANGELOG-developer.next.asciidoc | 1 + auditbeat/module/auditd/audit_linux_test.go | 4 +- libbeat/idxmgmt/idxmgmt_test.go | 3 +- libbeat/kibana/fields_transformer.go | 25 +- libbeat/kibana/fields_transformer_test.go | 269 ++++++++++---------- libbeat/kibana/index_pattern_generator.go | 3 +- libbeat/{common => mapping}/field.go | 2 +- libbeat/{common => mapping}/field_test.go | 23 +- libbeat/template/config.go | 4 +- libbeat/template/processor.go | 67 ++--- libbeat/template/processor_test.go | 137 +++++----- libbeat/template/template.go | 13 +- 12 files changed, 280 insertions(+), 271 deletions(-) rename libbeat/{common => mapping}/field.go (99%) rename libbeat/{common => mapping}/field_test.go (93%) diff --git a/CHANGELOG-developer.next.asciidoc b/CHANGELOG-developer.next.asciidoc index ccbe92355ae..ee7bf7729c1 100644 --- a/CHANGELOG-developer.next.asciidoc +++ b/CHANGELOG-developer.next.asciidoc @@ -22,6 +22,7 @@ The list below covers the major changes between 7.0.0-beta1 and master only. - Remove support for deprecated `GenRootCmd` methods. {pull}10721[10721] - Remove SkipNormalization, SkipAgentMetadata, SkipAddHostName. {pull}10801[10801] {pull}10769[10769] +- Move Fields from package libbeat/common to libbeat/mapping. {pull}11198[11198] ==== Bugfixes diff --git a/auditbeat/module/auditd/audit_linux_test.go b/auditbeat/module/auditd/audit_linux_test.go index 5c5cc10f979..1d69d375ea3 100644 --- a/auditbeat/module/auditd/audit_linux_test.go +++ b/auditbeat/module/auditd/audit_linux_test.go @@ -33,8 +33,8 @@ import ( "github.com/prometheus/procfs" "github.com/elastic/beats/auditbeat/core" - "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/logp" + "github.com/elastic/beats/libbeat/mapping" "github.com/elastic/beats/metricbeat/mb" mbtest "github.com/elastic/beats/metricbeat/mb/testing" "github.com/elastic/go-libaudit" @@ -102,7 +102,7 @@ func TestData(t *testing.T) { // assertFieldsAreDocumented mimics assert_fields_are_documented in Python system tests. func assertFieldsAreDocumented(t *testing.T, events []mb.Event) { - fieldsYml, err := common.LoadFieldsYaml("../../fields.yml") + fieldsYml, err := mapping.LoadFieldsYaml("../../fields.yml") if err != nil { t.Fatal(err) } diff --git a/libbeat/idxmgmt/idxmgmt_test.go b/libbeat/idxmgmt/idxmgmt_test.go index 3d7a841b797..339e8510be9 100644 --- a/libbeat/idxmgmt/idxmgmt_test.go +++ b/libbeat/idxmgmt/idxmgmt_test.go @@ -28,6 +28,7 @@ import ( "github.com/elastic/beats/libbeat/beat" "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/idxmgmt/ilm" + "github.com/elastic/beats/libbeat/mapping" "github.com/elastic/beats/libbeat/template" ) @@ -96,7 +97,7 @@ func TestDefaultSupport_TemplateConfig(t *testing.T) { cloneCfg := func(c template.TemplateConfig) template.TemplateConfig { if c.AppendFields != nil { - tmp := make(common.Fields, len(c.AppendFields)) + tmp := make(mapping.Fields, len(c.AppendFields)) copy(tmp, c.AppendFields) c.AppendFields = tmp } diff --git a/libbeat/kibana/fields_transformer.go b/libbeat/kibana/fields_transformer.go index 3e385144c62..b5ffd82fa04 100644 --- a/libbeat/kibana/fields_transformer.go +++ b/libbeat/kibana/fields_transformer.go @@ -22,12 +22,13 @@ import ( "fmt" "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/mapping" ) var v640 = common.MustNewVersion("6.4.0") type fieldsTransformer struct { - fields common.Fields + fields mapping.Fields transformedFields []common.MapStr transformedFieldFormatMap common.MapStr version *common.Version @@ -35,7 +36,7 @@ type fieldsTransformer struct { migration bool } -func newFieldsTransformer(version *common.Version, fields common.Fields, migration bool) (*fieldsTransformer, error) { +func newFieldsTransformer(version *common.Version, fields mapping.Fields, migration bool) (*fieldsTransformer, error) { if version == nil { return nil, errors.New("Version must be given") } @@ -64,10 +65,10 @@ func (t *fieldsTransformer) transform() (transformed common.MapStr, err error) { // add some meta fields truthy := true falsy := false - t.add(common.Field{Path: "_id", Type: "keyword", Index: &falsy, Analyzed: &falsy, DocValues: &falsy, Searchable: &falsy, Aggregatable: &falsy}) - t.add(common.Field{Path: "_type", Type: "keyword", Index: &falsy, Analyzed: &falsy, DocValues: &falsy, Searchable: &truthy, Aggregatable: &truthy}) - t.add(common.Field{Path: "_index", Type: "keyword", Index: &falsy, Analyzed: &falsy, DocValues: &falsy, Searchable: &falsy, Aggregatable: &falsy}) - t.add(common.Field{Path: "_score", Type: "integer", Index: &falsy, Analyzed: &falsy, DocValues: &falsy, Searchable: &falsy, Aggregatable: &falsy}) + t.add(mapping.Field{Path: "_id", Type: "keyword", Index: &falsy, Analyzed: &falsy, DocValues: &falsy, Searchable: &falsy, Aggregatable: &falsy}) + t.add(mapping.Field{Path: "_type", Type: "keyword", Index: &falsy, Analyzed: &falsy, DocValues: &falsy, Searchable: &truthy, Aggregatable: &truthy}) + t.add(mapping.Field{Path: "_index", Type: "keyword", Index: &falsy, Analyzed: &falsy, DocValues: &falsy, Searchable: &falsy, Aggregatable: &falsy}) + t.add(mapping.Field{Path: "_score", Type: "integer", Index: &falsy, Analyzed: &falsy, DocValues: &falsy, Searchable: &falsy, Aggregatable: &falsy}) transformed = common.MapStr{ "fields": t.transformedFields, @@ -76,7 +77,7 @@ func (t *fieldsTransformer) transform() (transformed common.MapStr, err error) { return } -func (t *fieldsTransformer) transformFields(commonFields common.Fields, path string) { +func (t *fieldsTransformer) transformFields(commonFields mapping.Fields, path string) { for _, f := range commonFields { f.Path = f.Name if path != "" { @@ -119,7 +120,7 @@ func (t *fieldsTransformer) transformFields(commonFields common.Fields, path str } } -func (t *fieldsTransformer) update(target *common.MapStr, override common.Field) error { +func (t *fieldsTransformer) update(target *common.MapStr, override mapping.Field) error { field, _ := transformField(t.version, override) if override.Type == "" || (*target)["type"] == field["type"] { target.Update(field) @@ -133,7 +134,7 @@ func (t *fieldsTransformer) update(target *common.MapStr, override common.Field) return fmt.Errorf("field <%s> is duplicated", override.Path) } -func (t *fieldsTransformer) add(f common.Field) { +func (t *fieldsTransformer) add(f mapping.Field) { if idx := t.keys[f.Path]; idx > 0 { target := &t.transformedFields[idx-1] // 1-indexed if err := t.update(target, f); err != nil { @@ -150,7 +151,7 @@ func (t *fieldsTransformer) add(f common.Field) { } } -func transformField(version *common.Version, f common.Field) (common.MapStr, common.MapStr) { +func transformField(version *common.Version, f mapping.Field) (common.MapStr, common.MapStr) { field := common.MapStr{ "name": f.Path, "count": f.Count, @@ -217,7 +218,7 @@ func getVal(valP *bool, def bool) bool { return def } -func addParams(format *common.MapStr, version *common.Version, f common.Field) { +func addParams(format *common.MapStr, version *common.Version, f mapping.Field) { addFormatParam(format, "pattern", f.Pattern) addFormatParam(format, "inputFormat", f.InputFormat) addFormatParam(format, "outputFormat", f.OutputFormat) @@ -248,7 +249,7 @@ func addFormatParam(f *common.MapStr, key string, val interface{}) { } // takes the highest version where major version <= given version -func addVersionedFormatParam(f *common.MapStr, version *common.Version, key string, val []common.VersionizedString) { +func addVersionedFormatParam(f *common.MapStr, version *common.Version, key string, val []mapping.VersionizedString) { if len(val) == 0 { return } diff --git a/libbeat/kibana/fields_transformer_test.go b/libbeat/kibana/fields_transformer_test.go index 1fb1e8b3a0b..be2fd6864fc 100644 --- a/libbeat/kibana/fields_transformer_test.go +++ b/libbeat/kibana/fields_transformer_test.go @@ -25,6 +25,7 @@ import ( "github.com/stretchr/testify/require" "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/mapping" ) var ( @@ -35,7 +36,7 @@ var ( ) func TestEmpty(t *testing.T) { - trans, err := newFieldsTransformer(version, common.Fields{}, true) + trans, err := newFieldsTransformer(version, mapping.Fields{}, true) assert.NoError(t, err) out, err := trans.transform() assert.NoError(t, err) @@ -93,26 +94,26 @@ func TestEmpty(t *testing.T) { func TestMissingVersion(t *testing.T) { var c *common.Version - _, err := newFieldsTransformer(c, common.Fields{}, true) + _, err := newFieldsTransformer(c, mapping.Fields{}, true) assert.Error(t, err) } func TestDuplicateField(t *testing.T) { testCases := []struct { - commonFields []common.Field + commonFields []mapping.Field }{ // type change - {commonFields: []common.Field{ + {commonFields: []mapping.Field{ {Name: "context", Path: "something"}, {Name: "context", Path: "something", Type: "date"}, }}, // missing overwrite - {commonFields: []common.Field{ + {commonFields: []mapping.Field{ {Name: "context", Path: "something"}, {Name: "context", Path: "something"}, }}, // missing overwrite in source - {commonFields: []common.Field{ + {commonFields: []mapping.Field{ {Name: "context", Path: "something", Overwrite: true}, {Name: "context", Path: "something"}, }}, @@ -127,9 +128,9 @@ func TestDuplicateField(t *testing.T) { } func TestValidDuplicateField(t *testing.T) { - commonFields := common.Fields{ - common.Field{Name: "context", Path: "something", Type: "keyword", Description: "original description"}, - common.Field{Name: "context", Path: "something", Overwrite: true, Description: "updated description", + commonFields := mapping.Fields{ + mapping.Field{Name: "context", Path: "something", Type: "keyword", Description: "original description"}, + mapping.Field{Name: "context", Path: "something", Overwrite: true, Description: "updated description", Aggregatable: &falsy, Analyzed: &truthy, Count: 2, @@ -137,18 +138,18 @@ func TestValidDuplicateField(t *testing.T) { Index: &falsy, Searchable: &falsy, }, - common.Field{ + mapping.Field{ Name: "context", Type: "group", - Fields: common.Fields{ - common.Field{Name: "another", Type: "date"}, + Fields: mapping.Fields{ + mapping.Field{Name: "another", Type: "date"}, }, }, - common.Field{ + mapping.Field{ Name: "context", Type: "group", - Fields: common.Fields{ - common.Field{Name: "another", Overwrite: true}, + Fields: mapping.Fields{ + mapping.Field{Name: "another", Overwrite: true}, }, }, } @@ -171,11 +172,11 @@ func TestValidDuplicateField(t *testing.T) { } func TestInvalidVersion(t *testing.T) { - commonFields := common.Fields{ - common.Field{ + commonFields := mapping.Fields{ + mapping.Field{ Name: "versionTest", Format: "url", - UrlTemplate: []common.VersionizedString{ + UrlTemplate: []mapping.VersionizedString{ {MinVersion: "3", Value: ""}, }, }, @@ -188,26 +189,26 @@ func TestInvalidVersion(t *testing.T) { func TestTransformTypes(t *testing.T) { tests := []struct { - commonField common.Field + commonField mapping.Field expected interface{} }{ - {commonField: common.Field{}, expected: "string"}, - {commonField: common.Field{Type: "half_float"}, expected: "number"}, - {commonField: common.Field{Type: "scaled_float"}, expected: "number"}, - {commonField: common.Field{Type: "float"}, expected: "number"}, - {commonField: common.Field{Type: "integer"}, expected: "number"}, - {commonField: common.Field{Type: "long"}, expected: "number"}, - {commonField: common.Field{Type: "short"}, expected: "number"}, - {commonField: common.Field{Type: "byte"}, expected: "number"}, - {commonField: common.Field{Type: "keyword"}, expected: "string"}, - {commonField: common.Field{Type: "text"}, expected: "string"}, - {commonField: common.Field{Type: "string"}, expected: nil}, - {commonField: common.Field{Type: "date"}, expected: "date"}, - {commonField: common.Field{Type: "geo_point"}, expected: "geo_point"}, - {commonField: common.Field{Type: "invalid"}, expected: nil}, + {commonField: mapping.Field{}, expected: "string"}, + {commonField: mapping.Field{Type: "half_float"}, expected: "number"}, + {commonField: mapping.Field{Type: "scaled_float"}, expected: "number"}, + {commonField: mapping.Field{Type: "float"}, expected: "number"}, + {commonField: mapping.Field{Type: "integer"}, expected: "number"}, + {commonField: mapping.Field{Type: "long"}, expected: "number"}, + {commonField: mapping.Field{Type: "short"}, expected: "number"}, + {commonField: mapping.Field{Type: "byte"}, expected: "number"}, + {commonField: mapping.Field{Type: "keyword"}, expected: "string"}, + {commonField: mapping.Field{Type: "text"}, expected: "string"}, + {commonField: mapping.Field{Type: "string"}, expected: nil}, + {commonField: mapping.Field{Type: "date"}, expected: "date"}, + {commonField: mapping.Field{Type: "geo_point"}, expected: "geo_point"}, + {commonField: mapping.Field{Type: "invalid"}, expected: nil}, } for idx, test := range tests { - trans, _ := newFieldsTransformer(version, common.Fields{test.commonField}, true) + trans, _ := newFieldsTransformer(version, mapping.Fields{test.commonField}, true) transformed, err := trans.transform() assert.NoError(t, err) out := transformed["fields"].([]common.MapStr)[0] @@ -217,32 +218,32 @@ func TestTransformTypes(t *testing.T) { func TestTransformGroup(t *testing.T) { tests := []struct { - commonFields common.Fields + commonFields mapping.Fields expected []string }{ { - commonFields: common.Fields{common.Field{Name: "context", Path: "something"}}, + commonFields: mapping.Fields{mapping.Field{Name: "context", Path: "something"}}, expected: []string{"context"}, }, { - commonFields: common.Fields{ - common.Field{ + commonFields: mapping.Fields{ + mapping.Field{ Name: "context", Type: "group", - Fields: common.Fields{ - common.Field{Name: "another", Type: ""}, + Fields: mapping.Fields{ + mapping.Field{Name: "another", Type: ""}, }, }, - common.Field{ + mapping.Field{ Name: "context", Type: "group", - Fields: common.Fields{ - common.Field{Name: "type", Type: ""}, - common.Field{ + Fields: mapping.Fields{ + mapping.Field{Name: "type", Type: ""}, + mapping.Field{ Name: "metric", Type: "group", - Fields: common.Fields{ - common.Field{Name: "object"}, + Fields: mapping.Fields{ + mapping.Field{Name: "object"}, }, }, }, @@ -265,70 +266,70 @@ func TestTransformGroup(t *testing.T) { func TestTransformMisc(t *testing.T) { tests := []struct { - commonField common.Field + commonField mapping.Field expected interface{} attr string }{ - {commonField: common.Field{}, expected: 0, attr: "count"}, - {commonField: common.Field{Count: 4}, expected: 4, attr: "count"}, + {commonField: mapping.Field{}, expected: 0, attr: "count"}, + {commonField: mapping.Field{Count: 4}, expected: 4, attr: "count"}, // searchable - {commonField: common.Field{}, expected: true, attr: "searchable"}, - {commonField: common.Field{Searchable: &truthy}, expected: true, attr: "searchable"}, - {commonField: common.Field{Searchable: &falsy}, expected: false, attr: "searchable"}, - {commonField: common.Field{Type: "binary"}, expected: false, attr: "searchable"}, - {commonField: common.Field{Searchable: &truthy, Type: "binary"}, expected: false, attr: "searchable"}, + {commonField: mapping.Field{}, expected: true, attr: "searchable"}, + {commonField: mapping.Field{Searchable: &truthy}, expected: true, attr: "searchable"}, + {commonField: mapping.Field{Searchable: &falsy}, expected: false, attr: "searchable"}, + {commonField: mapping.Field{Type: "binary"}, expected: false, attr: "searchable"}, + {commonField: mapping.Field{Searchable: &truthy, Type: "binary"}, expected: false, attr: "searchable"}, // aggregatable - {commonField: common.Field{}, expected: true, attr: "aggregatable"}, - {commonField: common.Field{Aggregatable: &truthy}, expected: true, attr: "aggregatable"}, - {commonField: common.Field{Aggregatable: &falsy}, expected: false, attr: "aggregatable"}, - {commonField: common.Field{Type: "binary"}, expected: false, attr: "aggregatable"}, - {commonField: common.Field{Aggregatable: &truthy, Type: "binary"}, expected: false, attr: "aggregatable"}, - {commonField: common.Field{Type: "keyword"}, expected: true, attr: "aggregatable"}, - {commonField: common.Field{Aggregatable: &truthy, Type: "text"}, expected: false, attr: "aggregatable"}, - {commonField: common.Field{Type: "text"}, expected: false, attr: "aggregatable"}, + {commonField: mapping.Field{}, expected: true, attr: "aggregatable"}, + {commonField: mapping.Field{Aggregatable: &truthy}, expected: true, attr: "aggregatable"}, + {commonField: mapping.Field{Aggregatable: &falsy}, expected: false, attr: "aggregatable"}, + {commonField: mapping.Field{Type: "binary"}, expected: false, attr: "aggregatable"}, + {commonField: mapping.Field{Aggregatable: &truthy, Type: "binary"}, expected: false, attr: "aggregatable"}, + {commonField: mapping.Field{Type: "keyword"}, expected: true, attr: "aggregatable"}, + {commonField: mapping.Field{Aggregatable: &truthy, Type: "text"}, expected: false, attr: "aggregatable"}, + {commonField: mapping.Field{Type: "text"}, expected: false, attr: "aggregatable"}, // analyzed - {commonField: common.Field{}, expected: false, attr: "analyzed"}, - {commonField: common.Field{Analyzed: &truthy}, expected: true, attr: "analyzed"}, - {commonField: common.Field{Analyzed: &falsy}, expected: false, attr: "analyzed"}, - {commonField: common.Field{Type: "binary"}, expected: false, attr: "analyzed"}, - {commonField: common.Field{Analyzed: &truthy, Type: "binary"}, expected: false, attr: "analyzed"}, + {commonField: mapping.Field{}, expected: false, attr: "analyzed"}, + {commonField: mapping.Field{Analyzed: &truthy}, expected: true, attr: "analyzed"}, + {commonField: mapping.Field{Analyzed: &falsy}, expected: false, attr: "analyzed"}, + {commonField: mapping.Field{Type: "binary"}, expected: false, attr: "analyzed"}, + {commonField: mapping.Field{Analyzed: &truthy, Type: "binary"}, expected: false, attr: "analyzed"}, // doc_values always set to true except for meta fields - {commonField: common.Field{}, expected: true, attr: "doc_values"}, - {commonField: common.Field{DocValues: &truthy}, expected: true, attr: "doc_values"}, - {commonField: common.Field{DocValues: &falsy}, expected: false, attr: "doc_values"}, - {commonField: common.Field{Script: "doc[]"}, expected: false, attr: "doc_values"}, - {commonField: common.Field{DocValues: &truthy, Script: "doc[]"}, expected: false, attr: "doc_values"}, - {commonField: common.Field{Type: "binary"}, expected: false, attr: "doc_values"}, - {commonField: common.Field{DocValues: &truthy, Type: "binary"}, expected: true, attr: "doc_values"}, + {commonField: mapping.Field{}, expected: true, attr: "doc_values"}, + {commonField: mapping.Field{DocValues: &truthy}, expected: true, attr: "doc_values"}, + {commonField: mapping.Field{DocValues: &falsy}, expected: false, attr: "doc_values"}, + {commonField: mapping.Field{Script: "doc[]"}, expected: false, attr: "doc_values"}, + {commonField: mapping.Field{DocValues: &truthy, Script: "doc[]"}, expected: false, attr: "doc_values"}, + {commonField: mapping.Field{Type: "binary"}, expected: false, attr: "doc_values"}, + {commonField: mapping.Field{DocValues: &truthy, Type: "binary"}, expected: true, attr: "doc_values"}, // enabled - only applies to objects (and only if set) - {commonField: common.Field{Type: "binary", Enabled: &falsy}, expected: nil, attr: "enabled"}, - {commonField: common.Field{Type: "binary", Enabled: &truthy}, expected: nil, attr: "enabled"}, - {commonField: common.Field{Type: "object", Enabled: &truthy}, expected: true, attr: "enabled"}, - {commonField: common.Field{Type: "object", Enabled: &falsy}, expected: false, attr: "enabled"}, - {commonField: common.Field{Type: "object", Enabled: &falsy}, expected: false, attr: "doc_values"}, + {commonField: mapping.Field{Type: "binary", Enabled: &falsy}, expected: nil, attr: "enabled"}, + {commonField: mapping.Field{Type: "binary", Enabled: &truthy}, expected: nil, attr: "enabled"}, + {commonField: mapping.Field{Type: "object", Enabled: &truthy}, expected: true, attr: "enabled"}, + {commonField: mapping.Field{Type: "object", Enabled: &falsy}, expected: false, attr: "enabled"}, + {commonField: mapping.Field{Type: "object", Enabled: &falsy}, expected: false, attr: "doc_values"}, // indexed - {commonField: common.Field{Type: "binary"}, expected: false, attr: "indexed"}, - {commonField: common.Field{Index: &truthy, Type: "binary"}, expected: false, attr: "indexed"}, + {commonField: mapping.Field{Type: "binary"}, expected: false, attr: "indexed"}, + {commonField: mapping.Field{Index: &truthy, Type: "binary"}, expected: false, attr: "indexed"}, // script, scripted - {commonField: common.Field{}, expected: false, attr: "scripted"}, - {commonField: common.Field{}, expected: nil, attr: "script"}, - {commonField: common.Field{Script: "doc[]"}, expected: true, attr: "scripted"}, - {commonField: common.Field{Script: "doc[]"}, expected: "doc[]", attr: "script"}, - {commonField: common.Field{Type: "binary"}, expected: false, attr: "scripted"}, + {commonField: mapping.Field{}, expected: false, attr: "scripted"}, + {commonField: mapping.Field{}, expected: nil, attr: "script"}, + {commonField: mapping.Field{Script: "doc[]"}, expected: true, attr: "scripted"}, + {commonField: mapping.Field{Script: "doc[]"}, expected: "doc[]", attr: "script"}, + {commonField: mapping.Field{Type: "binary"}, expected: false, attr: "scripted"}, // language - {commonField: common.Field{}, expected: nil, attr: "lang"}, - {commonField: common.Field{Script: "doc[]"}, expected: "painless", attr: "lang"}, + {commonField: mapping.Field{}, expected: nil, attr: "lang"}, + {commonField: mapping.Field{Script: "doc[]"}, expected: "painless", attr: "lang"}, } for idx, test := range tests { - trans, _ := newFieldsTransformer(version, common.Fields{test.commonField}, true) + trans, _ := newFieldsTransformer(version, mapping.Fields{test.commonField}, true) transformed, err := trans.transform() assert.NoError(t, err) out := transformed["fields"].([]common.MapStr)[0] @@ -344,27 +345,27 @@ func TestTransformFieldFormatMap(t *testing.T) { falsy := false tests := []struct { - commonField common.Field + commonField mapping.Field version *common.Version expected common.MapStr }{ { - commonField: common.Field{Name: "c"}, + commonField: mapping.Field{Name: "c"}, expected: common.MapStr{}, version: version, }, { - commonField: common.Field{Name: "c", Format: "url"}, + commonField: mapping.Field{Name: "c", Format: "url"}, expected: common.MapStr{"c": common.MapStr{"id": "url"}}, version: version, }, { - commonField: common.Field{Name: "c", Pattern: "p"}, + commonField: mapping.Field{Name: "c", Pattern: "p"}, expected: common.MapStr{"c": common.MapStr{"params": common.MapStr{"pattern": "p"}}}, version: version, }, { - commonField: common.Field{ + commonField: mapping.Field{ Name: "c", Format: "url", Pattern: "p", @@ -378,7 +379,7 @@ func TestTransformFieldFormatMap(t *testing.T) { version: version, }, { - commonField: common.Field{ + commonField: mapping.Field{ Name: "c", Format: "url", InputFormat: "string", @@ -394,7 +395,7 @@ func TestTransformFieldFormatMap(t *testing.T) { version: version, }, { - commonField: common.Field{ + commonField: mapping.Field{ Name: "c", Format: "url", Pattern: "[^-]", @@ -414,7 +415,7 @@ func TestTransformFieldFormatMap(t *testing.T) { version: version, }, { - commonField: common.Field{ + commonField: mapping.Field{ Name: "c", InputFormat: "string", }, @@ -423,7 +424,7 @@ func TestTransformFieldFormatMap(t *testing.T) { }, { version: version620, - commonField: common.Field{ + commonField: mapping.Field{ Name: "c", Format: "url", Pattern: "[^-]", @@ -432,7 +433,7 @@ func TestTransformFieldFormatMap(t *testing.T) { OutputFormat: "float", OutputPrecision: &precision, LabelTemplate: "lblT", - UrlTemplate: []common.VersionizedString{ + UrlTemplate: []mapping.VersionizedString{ {MinVersion: "5.0.0", Value: "5x.urlTemplate"}, {MinVersion: "6.0.0", Value: "6x.urlTemplate"}, }, @@ -454,10 +455,10 @@ func TestTransformFieldFormatMap(t *testing.T) { }, { version: version620, - commonField: common.Field{ + commonField: mapping.Field{ Name: "c", Format: "url", - UrlTemplate: []common.VersionizedString{ + UrlTemplate: []mapping.VersionizedString{ {MinVersion: "6.4.0", Value: "6x.urlTemplate"}, }, }, @@ -467,10 +468,10 @@ func TestTransformFieldFormatMap(t *testing.T) { }, { version: version620, - commonField: common.Field{ + commonField: mapping.Field{ Name: "c", Format: "url", - UrlTemplate: []common.VersionizedString{ + UrlTemplate: []mapping.VersionizedString{ {MinVersion: "4.7.2", Value: "4x.urlTemplate"}, {MinVersion: "6.5.1", Value: "6x.urlTemplate"}, }, @@ -486,10 +487,10 @@ func TestTransformFieldFormatMap(t *testing.T) { }, { version: version620, - commonField: common.Field{ + commonField: mapping.Field{ Name: "c", Format: "url", - UrlTemplate: []common.VersionizedString{ + UrlTemplate: []mapping.VersionizedString{ {MinVersion: "6.2.0", Value: "6.2.0.urlTemplate"}, {MinVersion: "6.2.0-alpha", Value: "6.2.0-alpha.urlTemplate"}, {MinVersion: "6.2.7", Value: "6.2.7.urlTemplate"}, @@ -506,10 +507,10 @@ func TestTransformFieldFormatMap(t *testing.T) { }, { version: version620, - commonField: common.Field{ + commonField: mapping.Field{ Name: "c", Format: "url", - UrlTemplate: []common.VersionizedString{ + UrlTemplate: []mapping.VersionizedString{ {MinVersion: "4.1.0", Value: "4x.urlTemplate"}, {MinVersion: "5.2.0-rc2", Value: "5.2.0-rc2.urlTemplate"}, {MinVersion: "5.2.0-rc3", Value: "5.2.0-rc3.urlTemplate"}, @@ -527,7 +528,7 @@ func TestTransformFieldFormatMap(t *testing.T) { }, } for idx, test := range tests { - trans, _ := newFieldsTransformer(test.version, common.Fields{test.commonField}, true) + trans, _ := newFieldsTransformer(test.version, mapping.Fields{test.commonField}, true) transformed, err := trans.transform() assert.NoError(t, err) out := transformed["fieldFormatMap"] @@ -537,25 +538,25 @@ func TestTransformFieldFormatMap(t *testing.T) { func TestTransformGroupAndEnabled(t *testing.T) { tests := []struct { - commonFields common.Fields + commonFields mapping.Fields expected []string }{ { - commonFields: common.Fields{common.Field{Name: "context", Path: "something"}}, + commonFields: mapping.Fields{mapping.Field{Name: "context", Path: "something"}}, expected: []string{"context"}, }, { - commonFields: common.Fields{ - common.Field{ + commonFields: mapping.Fields{ + mapping.Field{ Name: "context", Type: "group", - Fields: common.Fields{ - common.Field{Name: "type", Type: ""}, - common.Field{ + Fields: mapping.Fields{ + mapping.Field{Name: "type", Type: ""}, + mapping.Field{ Name: "metric", Type: "group", - Fields: common.Fields{ - common.Field{Name: "object"}, + Fields: mapping.Fields{ + mapping.Field{Name: "object"}, }, }, }, @@ -564,28 +565,28 @@ func TestTransformGroupAndEnabled(t *testing.T) { expected: []string{"context.type", "context.metric.object"}, }, { - commonFields: common.Fields{ - common.Field{Name: "enabledField"}, - common.Field{Name: "disabledField", Enabled: &falsy}, //enabled is ignored for Type!=group - common.Field{ + commonFields: mapping.Fields{ + mapping.Field{Name: "enabledField"}, + mapping.Field{Name: "disabledField", Enabled: &falsy}, //enabled is ignored for Type!=group + mapping.Field{ Name: "enabledGroup", Type: "group", Enabled: &truthy, - Fields: common.Fields{ - common.Field{Name: "type", Type: ""}, + Fields: mapping.Fields{ + mapping.Field{Name: "type", Type: ""}, }, }, - common.Field{ + mapping.Field{ Name: "context", Type: "group", Enabled: &falsy, - Fields: common.Fields{ - common.Field{Name: "type", Type: ""}, - common.Field{ + Fields: mapping.Fields{ + mapping.Field{Name: "type", Type: ""}, + mapping.Field{ Name: "metric", Type: "group", - Fields: common.Fields{ - common.Field{Name: "object"}, + Fields: mapping.Fields{ + mapping.Field{Name: "object"}, }, }, }, @@ -607,15 +608,15 @@ func TestTransformGroupAndEnabled(t *testing.T) { } func TestTransformMultiField(t *testing.T) { - f := common.Field{ + f := mapping.Field{ Name: "context", Type: "", - MultiFields: common.Fields{ - common.Field{Name: "keyword", Type: "keyword"}, - common.Field{Name: "text", Type: "text"}, + MultiFields: mapping.Fields{ + mapping.Field{Name: "keyword", Type: "keyword"}, + mapping.Field{Name: "text", Type: "text"}, }, } - trans, _ := newFieldsTransformer(version, common.Fields{f}, true) + trans, _ := newFieldsTransformer(version, mapping.Fields{f}, true) transformed, err := trans.transform() assert.NoError(t, err) out := transformed["fields"].([]common.MapStr) diff --git a/libbeat/kibana/index_pattern_generator.go b/libbeat/kibana/index_pattern_generator.go index fe426d0a033..93b5406c2de 100644 --- a/libbeat/kibana/index_pattern_generator.go +++ b/libbeat/kibana/index_pattern_generator.go @@ -25,6 +25,7 @@ import ( "regexp" "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/mapping" ) type IndexPatternGenerator struct { @@ -110,7 +111,7 @@ func (i *IndexPatternGenerator) addGeneral(indexPattern *common.MapStr) error { } func (i *IndexPatternGenerator) addFieldsSpecific(indexPattern *common.MapStr) error { - fields, err := common.LoadFields(i.fields) + fields, err := mapping.LoadFields(i.fields) if err != nil { return err } diff --git a/libbeat/common/field.go b/libbeat/mapping/field.go similarity index 99% rename from libbeat/common/field.go rename to libbeat/mapping/field.go index e6f14a50ba5..fc3a7d3073f 100644 --- a/libbeat/common/field.go +++ b/libbeat/mapping/field.go @@ -15,7 +15,7 @@ // specific language governing permissions and limitations // under the License. -package common +package mapping import ( "fmt" diff --git a/libbeat/common/field_test.go b/libbeat/mapping/field_test.go similarity index 93% rename from libbeat/common/field_test.go rename to libbeat/mapping/field_test.go index 31d792cc98b..6d2bfe49551 100644 --- a/libbeat/common/field_test.go +++ b/libbeat/mapping/field_test.go @@ -15,7 +15,7 @@ // specific language governing permissions and limitations // under the License. -package common +package mapping import ( "strings" @@ -25,6 +25,7 @@ import ( "github.com/stretchr/testify/assert" + "github.com/elastic/beats/libbeat/common" "github.com/elastic/go-ucfg/yaml" ) @@ -298,44 +299,44 @@ func TestGetField(t *testing.T) { func TestFieldValidate(t *testing.T) { tests := map[string]struct { - cfg MapStr + cfg common.MapStr field Field err bool }{ "top level object type config": { - cfg: MapStr{"object_type": "scaled_float", "object_type_mapping_type": "float", "scaling_factor": 10}, + cfg: common.MapStr{"object_type": "scaled_float", "object_type_mapping_type": "float", "scaling_factor": 10}, field: Field{ObjectType: "scaled_float", ObjectTypeMappingType: "float", ScalingFactor: 10}, err: false, }, "multiple object type configs": { - cfg: MapStr{"object_type_params": []MapStr{ + cfg: common.MapStr{"object_type_params": []common.MapStr{ {"object_type": "scaled_float", "object_type_mapping_type": "float", "scaling_factor": 100}}}, field: Field{ObjectTypeParams: []ObjectTypeCfg{{ObjectType: "scaled_float", ObjectTypeMappingType: "float", ScalingFactor: 100}}}, err: false, }, "invalid config mixing object_type and object_type_params": { - cfg: MapStr{ + cfg: common.MapStr{ "object_type": "scaled_float", - "object_type_params": []MapStr{{"object_type": "scaled_float", "object_type_mapping_type": "float"}}}, + "object_type_params": []common.MapStr{{"object_type": "scaled_float", "object_type_mapping_type": "float"}}}, err: true, }, "invalid config mixing object_type_mapping_type and object_type_params": { - cfg: MapStr{ + cfg: common.MapStr{ "object_type_mapping_type": "float", - "object_type_params": []MapStr{{"object_type": "scaled_float", "object_type_mapping_type": "float"}}}, + "object_type_params": []common.MapStr{{"object_type": "scaled_float", "object_type_mapping_type": "float"}}}, err: true, }, "invalid config mixing scaling_factor and object_type_params": { - cfg: MapStr{ + cfg: common.MapStr{ "scaling_factor": 100, - "object_type_params": []MapStr{{"object_type": "scaled_float", "object_type_mapping_type": "float"}}}, + "object_type_params": []common.MapStr{{"object_type": "scaled_float", "object_type_mapping_type": "float"}}}, err: true, }, } for name, test := range tests { t.Run(name, func(t *testing.T) { - cfg, err := NewConfigFrom(test.cfg) + cfg, err := common.NewConfigFrom(test.cfg) require.NoError(t, err) var f Field err = cfg.Unpack(&f) diff --git a/libbeat/template/config.go b/libbeat/template/config.go index ed939fcc9a0..53d9ac5eacb 100644 --- a/libbeat/template/config.go +++ b/libbeat/template/config.go @@ -17,7 +17,7 @@ package template -import "github.com/elastic/beats/libbeat/common" +import "github.com/elastic/beats/libbeat/mapping" type TemplateConfig struct { Enabled bool `config:"enabled"` @@ -29,7 +29,7 @@ type TemplateConfig struct { Path string `config:"path"` Name string `config:"name"` } `config:"json"` - AppendFields common.Fields `config:"append_fields"` + AppendFields mapping.Fields `config:"append_fields"` Overwrite bool `config:"overwrite"` Settings TemplateSettings `config:"settings"` } diff --git a/libbeat/template/processor.go b/libbeat/template/processor.go index 4e25bcec03f..4d316c52892 100644 --- a/libbeat/template/processor.go +++ b/libbeat/template/processor.go @@ -22,6 +22,7 @@ import ( "strings" "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/mapping" ) // Processor struct to process fields to template @@ -38,7 +39,7 @@ var ( const scalingFactorKey = "scalingFactor" // Process recursively processes the given fields and writes the template in the given output -func (p *Processor) Process(fields common.Fields, path string, output common.MapStr) error { +func (p *Processor) Process(fields mapping.Fields, path string, output common.MapStr) error { for _, field := range fields { if field.Name == "" { @@ -46,27 +47,27 @@ func (p *Processor) Process(fields common.Fields, path string, output common.Map } field.Path = path - var mapping common.MapStr + var indexMapping common.MapStr switch field.Type { case "ip": - mapping = p.ip(&field) + indexMapping = p.ip(&field) case "scaled_float": - mapping = p.scaledFloat(&field) + indexMapping = p.scaledFloat(&field) case "half_float": - mapping = p.halfFloat(&field) + indexMapping = p.halfFloat(&field) case "integer": - mapping = p.integer(&field) + indexMapping = p.integer(&field) case "text": - mapping = p.text(&field) + indexMapping = p.text(&field) case "", "keyword": - mapping = p.keyword(&field) + indexMapping = p.keyword(&field) case "object": - mapping = p.object(&field) + indexMapping = p.object(&field) case "array": - mapping = p.array(&field) + indexMapping = p.array(&field) case "alias": - mapping = p.alias(&field) + indexMapping = p.alias(&field) case "group": var newPath string if path == "" { @@ -74,14 +75,14 @@ func (p *Processor) Process(fields common.Fields, path string, output common.Map } else { newPath = path + "." + field.Name } - mapping = common.MapStr{} + indexMapping = common.MapStr{} if field.Dynamic.Value != nil { - mapping["dynamic"] = field.Dynamic.Value + indexMapping["dynamic"] = field.Dynamic.Value } // Combine properties with previous field definitions (if any) properties := common.MapStr{} - key := common.GenerateKey(field.Name) + ".properties" + key := mapping.GenerateKey(field.Name) + ".properties" currentProperties, err := output.GetValue(key) if err == nil { var ok bool @@ -95,9 +96,9 @@ func (p *Processor) Process(fields common.Fields, path string, output common.Map if err := p.Process(field.Fields, newPath, properties); err != nil { return err } - mapping["properties"] = properties + indexMapping["properties"] = properties default: - mapping = p.other(&field) + indexMapping = p.other(&field) } switch field.Type { @@ -105,14 +106,14 @@ func (p *Processor) Process(fields common.Fields, path string, output common.Map addToDefaultFields(&field) } - if len(mapping) > 0 { - output.Put(common.GenerateKey(field.Name), mapping) + if len(indexMapping) > 0 { + output.Put(mapping.GenerateKey(field.Name), indexMapping) } } return nil } -func addToDefaultFields(f *common.Field) { +func addToDefaultFields(f *mapping.Field) { fullName := f.Name if f.Path != "" { fullName = f.Path + "." + f.Name @@ -123,7 +124,7 @@ func addToDefaultFields(f *common.Field) { } } -func (p *Processor) other(f *common.Field) common.MapStr { +func (p *Processor) other(f *mapping.Field) common.MapStr { property := getDefaultProperties(f) if f.Type != "" { property["type"] = f.Type @@ -132,13 +133,13 @@ func (p *Processor) other(f *common.Field) common.MapStr { return property } -func (p *Processor) integer(f *common.Field) common.MapStr { +func (p *Processor) integer(f *mapping.Field) common.MapStr { property := getDefaultProperties(f) property["type"] = "long" return property } -func (p *Processor) scaledFloat(f *common.Field, params ...common.MapStr) common.MapStr { +func (p *Processor) scaledFloat(f *mapping.Field, params ...common.MapStr) common.MapStr { property := getDefaultProperties(f) property["type"] = "scaled_float" @@ -163,7 +164,7 @@ func (p *Processor) scaledFloat(f *common.Field, params ...common.MapStr) common return property } -func (p *Processor) halfFloat(f *common.Field) common.MapStr { +func (p *Processor) halfFloat(f *mapping.Field) common.MapStr { property := getDefaultProperties(f) property["type"] = "half_float" @@ -173,7 +174,7 @@ func (p *Processor) halfFloat(f *common.Field) common.MapStr { return property } -func (p *Processor) ip(f *common.Field) common.MapStr { +func (p *Processor) ip(f *mapping.Field) common.MapStr { property := getDefaultProperties(f) property["type"] = "ip" @@ -186,7 +187,7 @@ func (p *Processor) ip(f *common.Field) common.MapStr { return property } -func (p *Processor) keyword(f *common.Field) common.MapStr { +func (p *Processor) keyword(f *mapping.Field) common.MapStr { property := getDefaultProperties(f) property["type"] = "keyword" @@ -213,7 +214,7 @@ func (p *Processor) keyword(f *common.Field) common.MapStr { return property } -func (p *Processor) text(f *common.Field) common.MapStr { +func (p *Processor) text(f *mapping.Field) common.MapStr { properties := getDefaultProperties(f) properties["type"] = "text" @@ -249,7 +250,7 @@ func (p *Processor) text(f *common.Field) common.MapStr { return properties } -func (p *Processor) array(f *common.Field) common.MapStr { +func (p *Processor) array(f *mapping.Field) common.MapStr { properties := getDefaultProperties(f) if f.ObjectType != "" { properties["type"] = f.ObjectType @@ -257,7 +258,7 @@ func (p *Processor) array(f *common.Field) common.MapStr { return properties } -func (p *Processor) alias(f *common.Field) common.MapStr { +func (p *Processor) alias(f *mapping.Field) common.MapStr { // Aliases were introduced in Elasticsearch 6.4, ignore if unsupported if p.EsVersion.LessThan(common.MustNewVersion("6.4.0")) { return nil @@ -274,7 +275,7 @@ func (p *Processor) alias(f *common.Field) common.MapStr { return properties } -func (p *Processor) object(f *common.Field) common.MapStr { +func (p *Processor) object(f *mapping.Field) common.MapStr { matchType := func(onlyType string, mt string) string { if mt != "" { return mt @@ -282,11 +283,11 @@ func (p *Processor) object(f *common.Field) common.MapStr { return onlyType } - var otParams []common.ObjectTypeCfg + var otParams []mapping.ObjectTypeCfg if len(f.ObjectTypeParams) != 0 { otParams = f.ObjectTypeParams } else { - otParams = []common.ObjectTypeCfg{common.ObjectTypeCfg{ + otParams = []mapping.ObjectTypeCfg{mapping.ObjectTypeCfg{ ObjectType: f.ObjectType, ObjectTypeMappingType: f.ObjectTypeMappingType, ScalingFactor: f.ScalingFactor}} } @@ -327,7 +328,7 @@ func (p *Processor) object(f *common.Field) common.MapStr { return properties } -func addDynamicTemplate(f *common.Field, properties common.MapStr, matchType string) { +func addDynamicTemplate(f *mapping.Field, properties common.MapStr, matchType string) { path := "" if len(f.Path) > 0 { path = f.Path + "." @@ -348,7 +349,7 @@ func addDynamicTemplate(f *common.Field, properties common.MapStr, matchType str dynamicTemplates = append(dynamicTemplates, template) } -func getDefaultProperties(f *common.Field) common.MapStr { +func getDefaultProperties(f *mapping.Field) common.MapStr { // Currently no defaults exist properties := common.MapStr{} diff --git a/libbeat/template/processor_test.go b/libbeat/template/processor_test.go index ff8688107aa..e97bb35219e 100644 --- a/libbeat/template/processor_test.go +++ b/libbeat/template/processor_test.go @@ -23,6 +23,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/mapping" ) func TestProcessor(t *testing.T) { @@ -39,92 +40,92 @@ func TestProcessor(t *testing.T) { expected common.MapStr }{ { - output: p.other(&common.Field{Type: "long"}), + output: p.other(&mapping.Field{Type: "long"}), expected: common.MapStr{"type": "long"}, }, { - output: p.scaledFloat(&common.Field{Type: "scaled_float"}), + output: p.scaledFloat(&mapping.Field{Type: "scaled_float"}), expected: common.MapStr{ "type": "scaled_float", "scaling_factor": 1000, }, }, { - output: p.scaledFloat(&common.Field{Type: "scaled_float", ScalingFactor: 100}), + output: p.scaledFloat(&mapping.Field{Type: "scaled_float", ScalingFactor: 100}), expected: common.MapStr{ "type": "scaled_float", "scaling_factor": 100, }, }, { - output: p.scaledFloat(&common.Field{Type: "scaled_float"}, common.MapStr{scalingFactorKey: 0}), + output: p.scaledFloat(&mapping.Field{Type: "scaled_float"}, common.MapStr{scalingFactorKey: 0}), expected: common.MapStr{ "type": "scaled_float", "scaling_factor": 1000, }, }, { - output: p.scaledFloat(&common.Field{Type: "scaled_float"}, common.MapStr{"someKey": 10}), + output: p.scaledFloat(&mapping.Field{Type: "scaled_float"}, common.MapStr{"someKey": 10}), expected: common.MapStr{ "type": "scaled_float", "scaling_factor": 1000, }, }, { - output: p.scaledFloat(&common.Field{Type: "scaled_float"}, common.MapStr{scalingFactorKey: 10}), + output: p.scaledFloat(&mapping.Field{Type: "scaled_float"}, common.MapStr{scalingFactorKey: 10}), expected: common.MapStr{ "type": "scaled_float", "scaling_factor": 10, }, }, { - output: pEsVersion2.scaledFloat(&common.Field{Type: "scaled_float"}), + output: pEsVersion2.scaledFloat(&mapping.Field{Type: "scaled_float"}), expected: common.MapStr{"type": "float"}, }, { - output: p.object(&common.Field{Type: "object", Enabled: &falseVar}), + output: p.object(&mapping.Field{Type: "object", Enabled: &falseVar}), expected: common.MapStr{ "type": "object", "enabled": false, }, }, { - output: p.integer(&common.Field{Type: "long", CopyTo: "hello.world"}), + output: p.integer(&mapping.Field{Type: "long", CopyTo: "hello.world"}), expected: common.MapStr{ "type": "long", "copy_to": "hello.world", }, }, { - output: p.array(&common.Field{Type: "array"}), + output: p.array(&mapping.Field{Type: "array"}), expected: common.MapStr{}, }, { - output: p.array(&common.Field{Type: "array", ObjectType: "text"}), + output: p.array(&mapping.Field{Type: "array", ObjectType: "text"}), expected: common.MapStr{"type": "text"}, }, { - output: p.array(&common.Field{Type: "array", Index: &falseVar, ObjectType: "keyword"}), + output: p.array(&mapping.Field{Type: "array", Index: &falseVar, ObjectType: "keyword"}), expected: common.MapStr{"index": false, "type": "keyword"}, }, { - output: pEsVersion64.alias(&common.Field{Type: "alias", AliasPath: "a.b"}), + output: pEsVersion64.alias(&mapping.Field{Type: "alias", AliasPath: "a.b"}), expected: common.MapStr{"path": "a.b", "type": "alias"}, }, { // alias unsupported in ES < 6.4 - output: pEsVersion63.alias(&common.Field{Type: "alias", AliasPath: "a.b"}), + output: pEsVersion63.alias(&mapping.Field{Type: "alias", AliasPath: "a.b"}), expected: nil, }, { - output: p.object(&common.Field{Type: "object", Enabled: &falseVar}), + output: p.object(&mapping.Field{Type: "object", Enabled: &falseVar}), expected: common.MapStr{ "type": "object", "enabled": false, }, }, { - output: p.text(&common.Field{Type: "text", Analyzer: "autocomplete"}), + output: p.text(&mapping.Field{Type: "text", Analyzer: "autocomplete"}), expected: common.MapStr{ "type": "text", "analyzer": "autocomplete", @@ -132,21 +133,21 @@ func TestProcessor(t *testing.T) { }, }, { - output: p.text(&common.Field{Type: "text", Analyzer: "autocomplete", Norms: true}), + output: p.text(&mapping.Field{Type: "text", Analyzer: "autocomplete", Norms: true}), expected: common.MapStr{ "type": "text", "analyzer": "autocomplete", }, }, { - output: p.text(&common.Field{Type: "text", SearchAnalyzer: "standard", Norms: true}), + output: p.text(&mapping.Field{Type: "text", SearchAnalyzer: "standard", Norms: true}), expected: common.MapStr{ "type": "text", "search_analyzer": "standard", }, }, { - output: p.text(&common.Field{Type: "text", Analyzer: "autocomplete", SearchAnalyzer: "standard", Norms: true}), + output: p.text(&mapping.Field{Type: "text", Analyzer: "autocomplete", SearchAnalyzer: "standard", Norms: true}), expected: common.MapStr{ "type": "text", "analyzer": "autocomplete", @@ -154,7 +155,7 @@ func TestProcessor(t *testing.T) { }, }, { - output: p.text(&common.Field{Type: "text", MultiFields: common.Fields{common.Field{Name: "raw", Type: "keyword"}}, Norms: true}), + output: p.text(&mapping.Field{Type: "text", MultiFields: mapping.Fields{mapping.Field{Name: "raw", Type: "keyword"}}, Norms: true}), expected: common.MapStr{ "type": "text", "fields": common.MapStr{ @@ -166,7 +167,7 @@ func TestProcessor(t *testing.T) { }, }, { - output: p.keyword(&common.Field{Type: "keyword", MultiFields: common.Fields{common.Field{Name: "analyzed", Type: "text", Norms: true}}}), + output: p.keyword(&mapping.Field{Type: "keyword", MultiFields: mapping.Fields{mapping.Field{Name: "analyzed", Type: "text", Norms: true}}}), expected: common.MapStr{ "type": "keyword", "ignore_above": 1024, @@ -178,29 +179,29 @@ func TestProcessor(t *testing.T) { }, }, { - output: p.keyword(&common.Field{Type: "keyword", IgnoreAbove: 256}), + output: p.keyword(&mapping.Field{Type: "keyword", IgnoreAbove: 256}), expected: common.MapStr{ "type": "keyword", "ignore_above": 256, }, }, { - output: p.keyword(&common.Field{Type: "keyword", IgnoreAbove: -1}), + output: p.keyword(&mapping.Field{Type: "keyword", IgnoreAbove: -1}), expected: common.MapStr{ "type": "keyword", }, }, { - output: p.keyword(&common.Field{Type: "keyword"}), + output: p.keyword(&mapping.Field{Type: "keyword"}), expected: common.MapStr{ "type": "keyword", "ignore_above": 1024, }, }, { - output: p.text(&common.Field{Type: "text", MultiFields: common.Fields{ - common.Field{Name: "raw", Type: "keyword"}, - common.Field{Name: "indexed", Type: "text"}, + output: p.text(&mapping.Field{Type: "text", MultiFields: mapping.Fields{ + mapping.Field{Name: "raw", Type: "keyword"}, + mapping.Field{Name: "indexed", Type: "text"}, }, Norms: true}), expected: common.MapStr{ "type": "text", @@ -217,9 +218,9 @@ func TestProcessor(t *testing.T) { }, }, { - output: p.text(&common.Field{Type: "text", MultiFields: common.Fields{ - common.Field{Name: "raw", Type: "keyword"}, - common.Field{Name: "indexed", Type: "text"}, + output: p.text(&mapping.Field{Type: "text", MultiFields: mapping.Fields{ + mapping.Field{Name: "raw", Type: "keyword"}, + mapping.Field{Name: "indexed", Type: "text"}, }, Norms: true}), expected: common.MapStr{ "type": "text", @@ -236,67 +237,67 @@ func TestProcessor(t *testing.T) { }, }, { - output: p.object(&common.Field{Dynamic: common.DynamicType{Value: false}}), + output: p.object(&mapping.Field{Dynamic: mapping.DynamicType{Value: false}}), expected: common.MapStr{ "dynamic": false, "type": "object", }, }, { - output: p.object(&common.Field{Dynamic: common.DynamicType{Value: true}}), + output: p.object(&mapping.Field{Dynamic: mapping.DynamicType{Value: true}}), expected: common.MapStr{ "dynamic": true, "type": "object", }, }, { - output: p.object(&common.Field{Dynamic: common.DynamicType{Value: "strict"}}), + output: p.object(&mapping.Field{Dynamic: mapping.DynamicType{Value: "strict"}}), expected: common.MapStr{ "dynamic": "strict", "type": "object", }, }, { - output: p.other(&common.Field{Type: "long", Index: &falseVar}), + output: p.other(&mapping.Field{Type: "long", Index: &falseVar}), expected: common.MapStr{ "type": "long", "index": false, }, }, { - output: p.other(&common.Field{Type: "text", Index: &trueVar}), + output: p.other(&mapping.Field{Type: "text", Index: &trueVar}), expected: common.MapStr{ "type": "text", "index": true, }, }, { - output: p.other(&common.Field{Type: "long", DocValues: &falseVar}), + output: p.other(&mapping.Field{Type: "long", DocValues: &falseVar}), expected: common.MapStr{ "type": "long", "doc_values": false, }, }, { - output: p.other(&common.Field{Type: "double", DocValues: &falseVar}), + output: p.other(&mapping.Field{Type: "double", DocValues: &falseVar}), expected: common.MapStr{ "type": "double", "doc_values": false, }, }, { - output: p.other(&common.Field{Type: "text", DocValues: &trueVar}), + output: p.other(&mapping.Field{Type: "text", DocValues: &trueVar}), expected: common.MapStr{ "type": "text", "doc_values": true, }, }, { - output: p.alias(&common.Field{Type: "alias", AliasPath: "a.c", MigrationAlias: false}), + output: p.alias(&mapping.Field{Type: "alias", AliasPath: "a.c", MigrationAlias: false}), expected: common.MapStr{"path": "a.c", "type": "alias"}, }, { - output: p.alias(&common.Field{Type: "alias", AliasPath: "a.d", MigrationAlias: true}), + output: p.alias(&mapping.Field{Type: "alias", AliasPath: "a.d", MigrationAlias: true}), expected: nil, }, { - output: migrationP.alias(&common.Field{Type: "alias", AliasPath: "a.e", MigrationAlias: false}), + output: migrationP.alias(&mapping.Field{Type: "alias", AliasPath: "a.e", MigrationAlias: false}), expected: common.MapStr{"path": "a.e", "type": "alias"}, }, { - output: migrationP.alias(&common.Field{Type: "alias", AliasPath: "a.f", MigrationAlias: true}), + output: migrationP.alias(&mapping.Field{Type: "alias", AliasPath: "a.f", MigrationAlias: true}), expected: common.MapStr{"path": "a.f", "type": "alias"}, }, } @@ -309,11 +310,11 @@ func TestProcessor(t *testing.T) { func TestDynamicTemplates(t *testing.T) { p := &Processor{} tests := []struct { - field common.Field + field mapping.Field expected []common.MapStr }{ { - field: common.Field{ + field: mapping.Field{ Type: "object", ObjectType: "keyword", Name: "context", }, @@ -328,7 +329,7 @@ func TestDynamicTemplates(t *testing.T) { }, }, { - field: common.Field{ + field: mapping.Field{ Type: "object", ObjectType: "long", ObjectTypeMappingType: "futuretype", Path: "language", Name: "english", }, @@ -343,7 +344,7 @@ func TestDynamicTemplates(t *testing.T) { }, }, { - field: common.Field{ + field: mapping.Field{ Type: "object", ObjectType: "long", ObjectTypeMappingType: "*", Path: "language", Name: "english", }, @@ -358,7 +359,7 @@ func TestDynamicTemplates(t *testing.T) { }, }, { - field: common.Field{ + field: mapping.Field{ Type: "object", ObjectType: "long", Path: "language", Name: "english", }, @@ -373,7 +374,7 @@ func TestDynamicTemplates(t *testing.T) { }, }, { - field: common.Field{ + field: mapping.Field{ Type: "object", ObjectType: "text", Path: "language", Name: "english", }, @@ -388,7 +389,7 @@ func TestDynamicTemplates(t *testing.T) { }, }, { - field: common.Field{ + field: mapping.Field{ Type: "object", ObjectType: "scaled_float", Name: "core.*.pct", }, @@ -406,7 +407,7 @@ func TestDynamicTemplates(t *testing.T) { }, }, { - field: common.Field{ + field: mapping.Field{ Type: "object", ObjectType: "scaled_float", Name: "core.*.pct", ScalingFactor: 100, ObjectTypeMappingType: "float", }, @@ -424,8 +425,8 @@ func TestDynamicTemplates(t *testing.T) { }, }, { - field: common.Field{ - Type: "object", ObjectTypeParams: []common.ObjectTypeCfg{ + field: mapping.Field{ + Type: "object", ObjectTypeParams: []mapping.ObjectTypeCfg{ {ObjectType: "float", ObjectTypeMappingType: "float"}, {ObjectType: "boolean"}, {ObjectType: "scaled_float", ScalingFactor: 10000}, @@ -460,10 +461,10 @@ func TestDynamicTemplates(t *testing.T) { for _, numericType := range []string{"byte", "double", "float", "long", "short", "boolean"} { gen := struct { - field common.Field + field mapping.Field expected []common.MapStr }{ - field: common.Field{ + field: mapping.Field{ Type: "object", ObjectType: numericType, Name: "somefield", ObjectTypeMappingType: "long", }, @@ -491,22 +492,22 @@ func TestDynamicTemplates(t *testing.T) { func TestPropertiesCombine(t *testing.T) { // Test common fields are combined even if they come from different objects - fields := common.Fields{ - common.Field{ + fields := mapping.Fields{ + mapping.Field{ Name: "test", Type: "group", - Fields: common.Fields{ - common.Field{ + Fields: mapping.Fields{ + mapping.Field{ Name: "one", Type: "text", }, }, }, - common.Field{ + mapping.Field{ Name: "test", Type: "group", - Fields: common.Fields{ - common.Field{ + Fields: mapping.Fields{ + mapping.Field{ Name: "two", Type: "text", }, @@ -541,20 +542,20 @@ func TestPropertiesCombine(t *testing.T) { func TestProcessNoName(t *testing.T) { // Test common fields are combined even if they come from different objects - fields := common.Fields{ - common.Field{ - Fields: common.Fields{ - common.Field{ + fields := mapping.Fields{ + mapping.Field{ + Fields: mapping.Fields{ + mapping.Field{ Name: "one", Type: "text", }, }, }, - common.Field{ + mapping.Field{ Name: "test", Type: "group", - Fields: common.Fields{ - common.Field{ + Fields: mapping.Fields{ + mapping.Field{ Name: "two", Type: "text", }, diff --git a/libbeat/template/template.go b/libbeat/template/template.go index 1e829d196b1..d0b7d7d3d12 100644 --- a/libbeat/template/template.go +++ b/libbeat/template/template.go @@ -26,6 +26,7 @@ import ( "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/common/cfgwarn" "github.com/elastic/beats/libbeat/common/fmtstr" + "github.com/elastic/beats/libbeat/mapping" "github.com/elastic/go-ucfg/yaml" ) @@ -129,7 +130,7 @@ func New( }, nil } -func (t *Template) load(fields common.Fields) (common.MapStr, error) { +func (t *Template) load(fields mapping.Fields) (common.MapStr, error) { // Locking to make sure dynamicTemplates and defaultFields is not accessed in parallel t.Lock() @@ -141,7 +142,7 @@ func (t *Template) load(fields common.Fields) (common.MapStr, error) { var err error if len(t.config.AppendFields) > 0 { cfgwarn.Experimental("append_fields is used.") - fields, err = common.ConcatFields(fields, t.config.AppendFields) + fields, err = mapping.ConcatFields(fields, t.config.AppendFields) if err != nil { return nil, err } @@ -160,7 +161,7 @@ func (t *Template) load(fields common.Fields) (common.MapStr, error) { // LoadFile loads the the template from the given file path func (t *Template) LoadFile(file string) (common.MapStr, error) { - fields, err := common.LoadFieldsYaml(file) + fields, err := mapping.LoadFieldsYaml(file) if err != nil { return nil, err } @@ -311,19 +312,19 @@ func buildIdxSettings(ver common.Version, userSettings common.MapStr) common.Map return indexSettings } -func loadYamlByte(data []byte) (common.Fields, error) { +func loadYamlByte(data []byte) (mapping.Fields, error) { cfg, err := yaml.NewConfig(data) if err != nil { return nil, err } - var keys []common.Field + var keys []mapping.Field err = cfg.Unpack(&keys) if err != nil { return nil, err } - fields := common.Fields{} + fields := mapping.Fields{} for _, key := range keys { fields = append(fields, key.Fields...) } From b1f36ce9905646eb2c30f130926e1e300c5e8f18 Mon Sep 17 00:00:00 2001 From: Jaime Soriano Pastor Date: Thu, 14 Mar 2019 12:18:50 +0100 Subject: [PATCH 206/332] Skip password test in metricbeat redis module (#11243) At the moment, docker containers are shared between tests. Password test changes the password as part of its checks, what can affect the connection of other tests using the same instance, skip this test by now to avoid flakiness in the rest of tests. --- metricbeat/module/redis/info/info_integration_test.go | 3 +++ metricbeat/module/redis/metricset_integration_test.go | 2 ++ 2 files changed, 5 insertions(+) diff --git a/metricbeat/module/redis/info/info_integration_test.go b/metricbeat/module/redis/info/info_integration_test.go index f723bc372e4..d60e1d32b16 100644 --- a/metricbeat/module/redis/info/info_integration_test.go +++ b/metricbeat/module/redis/info/info_integration_test.go @@ -40,6 +40,9 @@ func TestFetch(t *testing.T) { if err != nil { t.Fatal("fetch", err) } + if len(events) == 0 { + t.Fatal("no events") + } event := events[0].MetricSetFields t.Logf("%s/%s event: %+v", ms.Module().Name(), ms.Name(), event) diff --git a/metricbeat/module/redis/metricset_integration_test.go b/metricbeat/module/redis/metricset_integration_test.go index 4c21051ecce..0bb3dec6dec 100644 --- a/metricbeat/module/redis/metricset_integration_test.go +++ b/metricbeat/module/redis/metricset_integration_test.go @@ -37,6 +37,8 @@ const ( ) func TestPasswords(t *testing.T) { + t.Skip("Changing password affects other tests, see https://github.com/elastic/beats/issues/10955") + compose.EnsureUp(t, "redis") registry := mb.NewRegister() From e9537aa779f1988a1f33ef6028a908615eb19e34 Mon Sep 17 00:00:00 2001 From: Christoph Wurm Date: Thu, 14 Mar 2019 14:16:43 +0000 Subject: [PATCH 207/332] [Libbeat] Gracefully shut down on SIGHUP (#10704) SIGHUP is sent to a process if the user's terminal is disconnected. It is one of the five termination signals. Currently, Beats is going to terminate suddenly, i.e. the log will cut off, no shutdown actions are going to be run, etc. This change catches SIGHUP as it already does SIGINT/SIGTERM and runs the usual shutdown actions. This can include waiting for a period of time specified using the shutdown_timeout option Filebeat and Packetbeat support. --- CHANGELOG.next.asciidoc | 2 +- libbeat/service/service.go | 15 +++++++++++---- libbeat/tests/system/test_base.py | 16 ++++++++++++++++ 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 19432ddccb5..6183b7d4a9e 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -240,7 +240,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Add `community_id` processor for computing network flow hashes. {pull}10745[10745] - Add output test to kafka output {pull}10834[10834] - Add ip fields to default_field in Elasticsearch template. {pull}11035[11035] - +- Gracefully shut down on SIGHUP {pull}10704[10704] *Auditbeat* diff --git a/libbeat/service/service.go b/libbeat/service/service.go index b90b614e5bb..4063e5e6be7 100644 --- a/libbeat/service/service.go +++ b/libbeat/service/service.go @@ -42,12 +42,19 @@ import ( func HandleSignals(stopFunction func(), cancel context.CancelFunc) { var callback sync.Once - // On ^C or SIGTERM, gracefully stop the sniffer + // On termination signals, gracefully stop the Beat sigc := make(chan os.Signal, 1) - signal.Notify(sigc, syscall.SIGINT, syscall.SIGTERM) + signal.Notify(sigc, syscall.SIGINT, syscall.SIGTERM, syscall.SIGHUP) go func() { - <-sigc - logp.Debug("service", "Received sigterm/sigint, stopping") + sig := <-sigc + + switch sig { + case syscall.SIGINT, syscall.SIGTERM: + logp.Debug("service", "Received sigterm/sigint, stopping") + case syscall.SIGHUP: + logp.Debug("service", "Received sighup, stopping") + } + cancel() callback.Do(stopFunction) }() diff --git a/libbeat/tests/system/test_base.py b/libbeat/tests/system/test_base.py index 9287b661662..10fe859bf1e 100644 --- a/libbeat/tests/system/test_base.py +++ b/libbeat/tests/system/test_base.py @@ -3,6 +3,7 @@ import json import os import shutil +import signal import subprocess import sys import unittest @@ -20,6 +21,21 @@ def test_base(self): proc = self.start_beat() self.wait_until(lambda: self.log_contains("mockbeat start running.")) proc.check_kill_and_wait() + assert self.log_contains("mockbeat stopped.") + + @unittest.skipIf(sys.platform.startswith("win"), "SIGHUP is not available on Windows") + def test_sighup(self): + """ + Basic test with exiting Mockbeat because of SIGHUP + """ + self.render_config_template( + ) + + proc = self.start_beat() + self.wait_until(lambda: self.log_contains("mockbeat start running.")) + proc.proc.send_signal(signal.SIGHUP) + proc.check_wait() + assert self.log_contains("mockbeat stopped.") def test_no_config(self): """ From c6c6ab9d4714b0f6d83fb6b094a8a0aff7aea334 Mon Sep 17 00:00:00 2001 From: Mathieu Martin Date: Thu, 14 Mar 2019 11:03:09 -0400 Subject: [PATCH 208/332] Re-introduce field formats on ECS fields. (#11240) They were accidentally removed by #11150. --- auditbeat/docs/fields.asciidoc | 20 ++++++++++++++++++++ auditbeat/include/fields.go | 2 +- filebeat/docs/fields.asciidoc | 20 ++++++++++++++++++++ filebeat/include/fields.go | 2 +- heartbeat/docs/fields.asciidoc | 20 ++++++++++++++++++++ heartbeat/include/fields.go | 2 +- journalbeat/docs/fields.asciidoc | 20 ++++++++++++++++++++ journalbeat/include/fields.go | 2 +- libbeat/_meta/fields.ecs.yml | 11 +++++++++++ metricbeat/docs/fields.asciidoc | 20 ++++++++++++++++++++ metricbeat/include/fields/fields.go | 2 +- packetbeat/docs/fields.asciidoc | 20 ++++++++++++++++++++ packetbeat/include/fields.go | 2 +- winlogbeat/docs/fields.asciidoc | 20 ++++++++++++++++++++ winlogbeat/include/fields.go | 2 +- x-pack/functionbeat/docs/fields.asciidoc | 20 ++++++++++++++++++++ x-pack/functionbeat/include/fields.go | 2 +- 17 files changed, 179 insertions(+), 8 deletions(-) diff --git a/auditbeat/docs/fields.asciidoc b/auditbeat/docs/fields.asciidoc index 83b42884b87..90f83fba6d6 100644 --- a/auditbeat/docs/fields.asciidoc +++ b/auditbeat/docs/fields.asciidoc @@ -3066,6 +3066,8 @@ type: long example: 184 +format: bytes + Bytes sent from the client to the server. -- @@ -3445,6 +3447,8 @@ type: long example: 184 +format: bytes + Bytes sent from the destination to the source. -- @@ -3769,6 +3773,8 @@ The concept of a `dataset` (fileset / metricset) is used in Beats as a subset of -- type: long +format: duration + Duration of the event in nanoseconds. If event.start and event.end are known this value should be the difference between the end and start time. @@ -4485,6 +4491,8 @@ type: long example: 887 +format: bytes + Size in bytes of the request body. -- @@ -4507,6 +4515,8 @@ type: long example: 1437 +format: bytes + Total size in bytes of the request (body and headers). -- @@ -4541,6 +4551,8 @@ type: long example: 887 +format: bytes + Size in bytes of the response body. -- @@ -4563,6 +4575,8 @@ type: long example: 1437 +format: bytes + Total size in bytes of the response (body and headers). -- @@ -4646,6 +4660,8 @@ type: long example: 368 +format: bytes + Total bytes transferred in both directions. If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. @@ -5235,6 +5251,8 @@ type: long example: 184 +format: bytes + Bytes sent from the server to the client. -- @@ -5549,6 +5567,8 @@ type: long example: 184 +format: bytes + Bytes sent from the source to the destination. -- diff --git a/auditbeat/include/fields.go b/auditbeat/include/fields.go index 29dfc726782..a6907375f01 100644 --- a/auditbeat/include/fields.go +++ b/auditbeat/include/fields.go @@ -32,5 +32,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "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" + return "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" } diff --git a/filebeat/docs/fields.asciidoc b/filebeat/docs/fields.asciidoc index 65adc5cabd6..ef64cfb498e 100644 --- a/filebeat/docs/fields.asciidoc +++ b/filebeat/docs/fields.asciidoc @@ -1323,6 +1323,8 @@ type: long example: 184 +format: bytes + Bytes sent from the client to the server. -- @@ -1702,6 +1704,8 @@ type: long example: 184 +format: bytes + Bytes sent from the destination to the source. -- @@ -2026,6 +2030,8 @@ The concept of a `dataset` (fileset / metricset) is used in Beats as a subset of -- type: long +format: duration + Duration of the event in nanoseconds. If event.start and event.end are known this value should be the difference between the end and start time. @@ -2742,6 +2748,8 @@ type: long example: 887 +format: bytes + Size in bytes of the request body. -- @@ -2764,6 +2772,8 @@ type: long example: 1437 +format: bytes + Total size in bytes of the request (body and headers). -- @@ -2798,6 +2808,8 @@ type: long example: 887 +format: bytes + Size in bytes of the response body. -- @@ -2820,6 +2832,8 @@ type: long example: 1437 +format: bytes + Total size in bytes of the response (body and headers). -- @@ -2903,6 +2917,8 @@ type: long example: 368 +format: bytes + Total bytes transferred in both directions. If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. @@ -3492,6 +3508,8 @@ type: long example: 184 +format: bytes + Bytes sent from the server to the client. -- @@ -3806,6 +3824,8 @@ type: long example: 184 +format: bytes + Bytes sent from the source to the destination. -- diff --git a/filebeat/include/fields.go b/filebeat/include/fields.go index 15a6824c6ef..7811fca474e 100644 --- a/filebeat/include/fields.go +++ b/filebeat/include/fields.go @@ -32,5 +32,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "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" + return "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" } diff --git a/heartbeat/docs/fields.asciidoc b/heartbeat/docs/fields.asciidoc index e143bc5f6e1..2a212a2e68d 100644 --- a/heartbeat/docs/fields.asciidoc +++ b/heartbeat/docs/fields.asciidoc @@ -489,6 +489,8 @@ type: long example: 184 +format: bytes + Bytes sent from the client to the server. -- @@ -868,6 +870,8 @@ type: long example: 184 +format: bytes + Bytes sent from the destination to the source. -- @@ -1192,6 +1196,8 @@ The concept of a `dataset` (fileset / metricset) is used in Beats as a subset of -- type: long +format: duration + Duration of the event in nanoseconds. If event.start and event.end are known this value should be the difference between the end and start time. @@ -1908,6 +1914,8 @@ type: long example: 887 +format: bytes + Size in bytes of the request body. -- @@ -1930,6 +1938,8 @@ type: long example: 1437 +format: bytes + Total size in bytes of the request (body and headers). -- @@ -1964,6 +1974,8 @@ type: long example: 887 +format: bytes + Size in bytes of the response body. -- @@ -1986,6 +1998,8 @@ type: long example: 1437 +format: bytes + Total size in bytes of the response (body and headers). -- @@ -2069,6 +2083,8 @@ type: long example: 368 +format: bytes + Total bytes transferred in both directions. If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. @@ -2658,6 +2674,8 @@ type: long example: 184 +format: bytes + Bytes sent from the server to the client. -- @@ -2972,6 +2990,8 @@ type: long example: 184 +format: bytes + Bytes sent from the source to the destination. -- diff --git a/heartbeat/include/fields.go b/heartbeat/include/fields.go index 65c552961de..79bf5a59353 100644 --- a/heartbeat/include/fields.go +++ b/heartbeat/include/fields.go @@ -32,5 +32,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "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" + return "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" } diff --git a/journalbeat/docs/fields.asciidoc b/journalbeat/docs/fields.asciidoc index 0650f8aed25..809654a5d90 100644 --- a/journalbeat/docs/fields.asciidoc +++ b/journalbeat/docs/fields.asciidoc @@ -1066,6 +1066,8 @@ type: long example: 184 +format: bytes + Bytes sent from the client to the server. -- @@ -1445,6 +1447,8 @@ type: long example: 184 +format: bytes + Bytes sent from the destination to the source. -- @@ -1769,6 +1773,8 @@ The concept of a `dataset` (fileset / metricset) is used in Beats as a subset of -- type: long +format: duration + Duration of the event in nanoseconds. If event.start and event.end are known this value should be the difference between the end and start time. @@ -2485,6 +2491,8 @@ type: long example: 887 +format: bytes + Size in bytes of the request body. -- @@ -2507,6 +2515,8 @@ type: long example: 1437 +format: bytes + Total size in bytes of the request (body and headers). -- @@ -2541,6 +2551,8 @@ type: long example: 887 +format: bytes + Size in bytes of the response body. -- @@ -2563,6 +2575,8 @@ type: long example: 1437 +format: bytes + Total size in bytes of the response (body and headers). -- @@ -2646,6 +2660,8 @@ type: long example: 368 +format: bytes + Total bytes transferred in both directions. If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. @@ -3235,6 +3251,8 @@ type: long example: 184 +format: bytes + Bytes sent from the server to the client. -- @@ -3549,6 +3567,8 @@ type: long example: 184 +format: bytes + Bytes sent from the source to the destination. -- diff --git a/journalbeat/include/fields.go b/journalbeat/include/fields.go index a0a0f320faf..da63438cf00 100644 --- a/journalbeat/include/fields.go +++ b/journalbeat/include/fields.go @@ -32,5 +32,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "eJzsfWt3G7eS4Pf8CqxyziqeoaiHZVvRnDuzuraTaG/saCx7MnfmzhHBbjSJqBvoAGjRzJ7973tQhVc/SFGW6GvvKB9ikewGCoVCVaGe35Jfz969PX/74/8gryQR0hCWc0PMnGtS8JKRnCuWmXI5ItyQBdVkxgRT1LCcTJfEzBl5/fKS1Er+xjIz+uZbMqWa5UQK+P6GKc2lIIfjg/HB+JtvyUXJqGbkhmtuyNyYWp/u78+4mTfTcSarfVZSbXi2zzJNjCS6mc2YNiSbUzFj8JUdtuCszPX4m2/2yDVbnhKW6W8IMdyU7NQ+8A0hOdOZ4rXhUsBX5Af3DnFvn35DyB4RtGKnZPd/GV4xbWhV735DCCElu2HlKcmkYvBZsd8brlh+Soxq8CuzrNkpyanBj635dl9Rw/btmGQxZwLQxG6YMEQqPuPCom/8DbxHyHuLa67hoTy8xz4aRTOL5kLJKo4wshPzjJblkihWK6aZMFzMYCI3YpxucMO0bFTGwvznRfIC/kbmVBMhPbQlCegZIWnc0LJhAHQAppZ1U9pp3LBusoIrbeD9DliKZYzfRKhqXrOSiwjXO4dz3C9SSEVoWeIIeoz7xD7Sqrabvnt0cPh87+DZ3tHT9wcnpwfPTp8ej0+ePf2P3WSbSzplpR7cYNxNObVUDF/gn1f4/TVbLqTKBzb6ZaONrOwD+4iTmnKlwxpeUkGmjDT2SBhJaJ6TihlKuCikqqgdxH7v1kQu57IpcziGmRSGckEE03brEBwgX/vfWVniHmhCFSPaSIsoqj2kAYDXHkGTXGbXTE0IFTmZXJ/oiUNHB5PuPVrXJc8orrKQcm9KlfuJiZtTe+DzJrM/J/itmNZ0xtYg2LCPZgCLP0hFSjlzeABycGO5zXfYwJ/sk+7nEZG14RX/I5CdJZMbzhb2SHBBKDxtv2AqIMVOp41qMtNYtJVypsmCm7lsDKEiUn0LhhGRZs6U4x4kw53NpMioYSIhfCMtEBWhZN5UVOwpRnM6LRnRTVVRtSQyOXDpKaya0vC6DGvXhH3k2p74OVvGCaspFywnXBhJpAhPd0/ET6wsJflVqjJPtsjQ2boDkBI6nwmp2BWdyht2Sg4Pjo77O/cz18aux72nA6UbOiOMZnO/yvZh/c+dSD87I7LDxM3Rzn+lR5XOmEBKcVz9LHwxU7KpT8nRAB29nzN8M+ySO0WOt1JCp3aTkQsWZmEPj+Wfxsq3wtO+WFqcU3sIy9IeuxHJmcE/pCJyqpm6sduD5Cotmc2l3SmpiKHXTJOKUd0oVtkH3LDhse7h1ISLrGxyRv7MqGUDsFZNKroktNSSqEbYt928So9BoMFCx//gluqG1HPLI6cssmOgbAs/5aX2tIdIUo0Q9pxIRJCFLVmfP++LOVMp857TumaWAu1i4aSGpQJjtwgQjhoLKY2Qxu65X+wpOcfpMqsIyAIXDefWHsRRhG9sSYE4RWTKqBkn5/fs4g2oJE5wthfkdpzW9b5dCs/YmETaSJlvLplHHXBd0DMIL5BauCZWvBIzV7KZzcnvDWvs+HqpDas0Kfk1I3+hxTUdkXcs50gftZIZ05qLmd8U97husrll0j/LmTZUzwmug1wCuh3K8CACkSMKg7YSTwer56xiipZX3HMdd57ZR8NEHnlR71SvPNfds/Taz0F4bo9IwZlC8uHaIfI7XgAHAjalnwS69jqNlWSqAu3AK3A0U1Jb4a8NVfY8TRtDJrjdPJ/AftidcMhImMYJPS6eHRwULUR0lx/Y2b2W/kHw3616c/d1B3FrSRQJG95bgFyfMgJkzPOVy8tby7P/38YCndYC5yvlCL0d1ITiU8gOUQTN+A0DtYUK9xo+7X6es7IumtIeInuo3QrDwGYhyQ/uQBMutKEic2pMhx9pOzEwJUskTpySKE5ZTRV1KohbviaCsRzvH4s5z+b9qcLJzmRlJ7PqdbLu88Iqvp7zwFKRJfmvZGGYICUrDGFVbZb9rSykbO2i3aht7OL7Zb1m+zy3sxMQbehSE1ou7D8Bt1YV1HNPmritThvHd600H0fUiMCzA1bjs0jiboopi4+ACONFa+PjjnUJoLX5Fc3m9krQR3E6jsezu2xuAdX/5q6xbWR3YHpu77h7KjtK1Jis5B095mX8Zo0ic+betASXswIUPoo7xwU3nBoJTIkSwcxCqmur6QgGCpU9dR42VFAUm1GVg+CyckkKPUqeR6E15XjT59JqvkUpF/aGZnW6ltr8/uWFGxVPRQSzB5v9wj6eQAZcRDMR1BX7zOVf35KaZtfMfKefjGEW1LRrJY3MZNmbCm+0Vqy0JvV6loLrOrOXIq8JeCwZRYWmAMyYXMqKBdncaNRxDFMV2fHXdKl2olavWMFUCxTRWaBGNcP97HRQ3NkpCzoY6KAJAhAEYsESM7/NcYoUftSmHRH5CezJaXRjEeJGjcofFxa83xqBGwC6IGp33ohCBkaLCBbS9Ma0XB03bA8Omb++hksvjrfvJwpmCmDWKCfsTVizigrDM9DS2UfjRAr7iMrCCDn4N4G1e8FiJLnhdr38DxY1e7tSpkDb19w01O3HeUGWslFhjoKWpac+LrxcM2wm1XJkH/UcURteloQJq9s6wkXbiOWaOdPG0ofFqUVYwcsyKF20rpWsFaeGlcs7aHU0zxXTelsKHZA7qvCOuNyEjvkGPlNN+ayRjS6XSM7wTuDYC4sWLSsGNiFS2hsgFeT8YkQoyWVlN0AqQkkj+EeipaWTMSF/jZh1MgKMFlEtmDOi6MLD5Al/MnZfTBBlbREn7A0gSrC8QaMFXkEnY15PLCiTMYI1sde4monc6RioIEgRgYD7hNsxvyvTpWH6FplSyqDrt3D+Z/suXiGCFc/h3t6R7dlH1b8rSw5PjltA4AK2INncWcXxx605Z0yOM26WV1vSQl9ys4Speqt/I4VRjJZ9cKQwXDBhtgXT20QjDpP14HsrlZmTs4opntEBIBth1PKKa3mVyXwrqMMpyPnlL8RO0YPw5dlKsLa1mw6kwQ19SQXN+5gqZZbq76vAmTF5VUseeFDbAiXFjJsmR75cUgMfehDs/h+yU0qxc0r2XjwdPz88Pnl6MCI7JTU7p+T42fjZwbPvD0/I/93tAdnH18Ox5A+aqT3Pd5OfULXz6BkRp2ijtJUFmSkqmpIqbpYpA12SzDJy0C8SRvnS88dwjUEK5wolZ8aEYcppWUUppSKiqaZMjUBtn/Oow+gwKIJXknq+1Nz+4c1omT/WOgHhrTSJqwCMhFwQ2hhZAbueMelX21f2p1IbKfbyrLc3is24FNs8ae9ghnUHbe9fX66Ca0tHzcE0eNL+tWFT1kYUr2+BITzQJs7ziyCMPUcEYZFSFt74pWBWzgb79fnFzbH94vzi5nlUMjpytaLZFnDz5uzlKqjTyVF9/VSxfoFvf5JgP2rDIZX5VCCkMuuW2GimxqyivNwS97LMi8AEHuMDABRNWQ6cgwcFYlcTOw1MCyyL3lBe0mnZPx5n5ZQpQ15zoQ1zClULXtDQx1uzqvYti4WzosPEwfgBN8L9uqSmkKoawCvCuUXEppoQTtYHYk71fGuiETFl5yF2HnuuMqkUs3fQlgm/wNuGfdDKFCHFMnUIgkswtfB90MyZJyewCp7jLQE+2NVNgtsok6LAvaJla06ra2RUxNsx8W7eDpdzM2yB0/3SYbpNl7QCAwQY+lBtSTpdzi1jQjUDXDpc9AFJjiSFI9mymckGpwwmM//FaosZRncQJI/cM2EYioAZqFA0uHyjMwtvvmgJdoChPZisdF4V5A0zimdoVNap0ZoK8vrlEZqsLYUUzGRzpkHLSkYn3GjnL4xAWupqu7lb/kqugzG0DYIbVzXCOSIVq6QJplMiG6N5zpKZupAhTJQ4T5lfkN90EV91GmLbI4+DxoHAJegm94LQDst1BNUh7C62kQzuL9vjzLvvI4JwLnCFqhkV/A889DwP7m13ypYk50XBVGofAT2Yg1OXUDyee4YJKgxh4oYrKaq2EhVp6+zXyzA5z0fkRylnJUP6J7+8+5Gc5+iABvNo78D3Nefnz5+/ePHi5OTk+++/b6MTJSQv7f3+j2gCeWisniXzEDuPxQraXYCm4ajEQ9RjDo3eY1SbvcOOSuu8Btsjh3PvLTp/5bkXwOoPYRdQvnd49PT42fMXJ98f0GmWs+JgGOItiuwAc+rX60OdKODwZd899WAQvfF8IPFUrUWjORpXLOdN1daSlbzheQhI2KaqgxzATzj2hzMNtqILPSL0j0axEZll9SgcZKlIzmfc0FJmjIq+pFvo1rLwlrilRblL4icet1QcI6N32PciufXlGkdWeLDtrHBehF4sXBKeU7OMF9zfEQMUaIp3/iZnkZdFOkgSWMk08/POWVknCiTIKwxVDUNrJwnF0iLI8IrdQUBtRcdzSnBcPM/bZ5hXdLZVnpKeDZgsmEYRoAXVZNrw0lhxPgCaobMtQRYpy8FFZ20AkmjP9bMnUZ9r4j67zBYmdSGUrXm3uBtxzdH4E7gJkuy22AmOTioq6Mxqb8BPAh30OAlGmyZsJPGYpYzkVefrNawkeXS9axW15+RpsKaiyWe/HXU5MGbiTb3Nj4rcx/lRv0Q/X8tNuZGzL6qxGKj9QM6+MCw4/f77OPvSDfCGQRd93zkwn83jl5L8o9vv0e33MCA9uv02x9mj2+/R7fc1uf0SIfa1+f5aoJMtOwDvIOy34gVcudhHV+CjK/DRFUgeXYFfmysQ87o7md3rjARvmKF76e54M6LLHMcpN7mk35ZMMJARfr90qyRbHnQvF6krYTGaGDkmE5bpsXtogsk5HoxI4eCds0RZNdpgihIchrIXp03Ir/ZW/XvD1BIizzE3K5ARFznPmCZ7e+72XNGlBwiS80s+m5tyyAmWrAbed/UELGilFZxcGDZTLh6c5r9ZUL3IzOasoh38k1bSrO4ri1BgIKUcpWTLYv06fLE+fzRajDNINnKh6zggnCMqluSai2id+ICpAxWmO+FzYKXGTEmLvJKhy9Wi2WeNAo/KqGY6plj6ZcHec6NZWURPKxU4+h1MTVtSjwGZMLi/IqBJkDkA24roFi3jA9JzAII0L301GCE3fXCxPss6pbGbTm7P65sNc5Rxf4c8Ij5NYdgpUkqvBKLzRPGsRSuBJM8g7b2dPGTJx/MUS1B2y5K0YLDyzXEfaczy9Uz655ieD4zFpyxDzgyvmL2sek+T/dYOFMaImc6ySBbhxvNDUZ85SyA51AdVuFCJmOqEujuZMsxociq4G5N6s6yRhKYq8QgNlQP5UlNmFozZmXxehMhdPETwOeJkLtUIc5+zUlohT878TtyObrwsuSErqZi9cYM5qYQRMQ8FPqYJ5ADQMKKTx9ywMQW7hfWUWiLKK1ZJtSSWyUGeixsuTxAfCe6mKQVT6M3nMcfdPaytEsRyzHC/S2DHBqagTw7owNFJRmss9eCyG9tOAJfsGowdLqssHkCeVHAZk3NwP8LuRe1iTgWZ4AM+m2gSMyfDRtizPgGE7NE8n4zIxJH8HpA8g68KXrK9TDFLaBNMwfH1VsKIIbHaU5xbGbfzVGDZ6QtJq3Tt1VRri8w9zLJqiwsH+ja24zUeBjdDF/lByM35bO7SyoZ5IHBIEKBFb1fCmLA7kMXW2RwkiMnI76lmQrv0rmioogHMAFcc2WtH1Gf8/UqVPdxQ16BoIL4sqD6ysKrQiCwYqUsKZgEXW0BoGLJ0RTRolrHaQG6zCzdAmeZVpxGpsXpSoxl6oDLaDNvOYKfBVxdZQ9hkpKxb9jgUNuruoyNyHKQXsTZc9cjyJCgEFNasGAWa9SnkmIO6xFy9XikgRySoQNqjyi1bz5ztJRZvChl9yVdxWx2sYczAUQdqLYUaMF1WcS5IJbVJcgzBgGqJaCFjnSSNrrMpG9CS8Uj7j1n0SGXtakEZLTNwPzrrTkmXQVYBnpykcwWeQIV3QicGpbREB2wLvOqrpChtvNRlOeGdVH4PSSUFjwm2JBlidxc0Wb9j9qMP9zKSXDNWk6ZGYoWX0ipTbaxCajlA2sajZZmo5mW0HKU7G32BA7ftnBqq2W1mtU/iZKk9xE3TybzPpLBHGe35E/fMhHxnObtmhuw7cayZeWLp2VvGsWKEVR6IbqYRfLj+VDJvSqaB1bWOXconUTOwO9goS2vl0heH4iJOml74kUTiTziN3VQHLTzcZzHaUNOOZ8obtYlfZ5Upc/eVe7/F2S3cggqpWSZFrtuVGvBwguiEVeBnZtU3xci1kAuR1iuLBGOGD6A/XTC7wGs0jp5EAwX1X2xiGlzFRyOoPRba5Z4wqN2Q8L2VPTepF8gy2JJaMYK1ezphQlu0zv1E9Zx8VzM1p7WGCj5Q2abgYsZUrbgwT+x+Krpw7NtIuwEg5YwMC8hZJYU2yi4fri5gIOBmOWA793GWQ3+d/fnlq892+zx/ZVcTglASzbID82Bxl2u+EQF9su5rxx+uNebE6YzfQJhyV8taOG2oG1iXkKSn2ShnfP00dytLzG5rlLaOYgzfTuKYE8tjmFWJaUlVNfkydS0Asm1vABa6bdHjGDU6atfWtMFaPumFpvVkMlpXFEkVilX1F14t9e/tYA2vNW1j6e/oAkw0oSqfLMD5rAI1fXDayhpeskKfFNLKmZx9ZMjzc5ldJRG/OdeWUnIUvWDrB82OUZXNWR4JdtoYwkOdJGVlKrvxauXkCtWeSR+Tl6wmh9+Tg5PTo+enhwcYp/vy9Q+nB//z28Oj43+6ZFljF4CfiJlb7RvVe4XfHY7do4cH7o94MqWqiG4yq+MVTYkaQV2z3L+A/2qV/enwAOq0HpJcmz8djQ/HR+MjXZs/HR49bXssZWMyub0ACcu+3BSrOFiramm8utv7RIbmnniYdVvGtkZOahH5ujDRbIIPOu7kUOgqaBaUl41igzwpjLgRb9qcJ4VxN+dNCHNr7xTX11c6OZSrjmlRSjpoEX3H9TWBEbDcHZeWONtq23dsPBsT7QiXaFkCiPpJtIp80MzdY8DHCTcJd+tCfW3OVDfINcB+JaSqNqC/lYvYfQsmFP4Hy2HYWxY0ClYuqxwXYREHdi8PDw4GSqdVlAsMe3FOxqVsYM8qjIGkAgyCrvwP3Fup1nwmdAKQbl/l7BALimnGmlnqEXEZiDXnxqFl6YsbdRRXzW5YEkN0Vz390r3eMZiFvfPDd2T9r3MMZ4oqn78Pxzcc2VeMCmCiN0wl9+agnlscguPEMuTdaJtpaq9vJGYwuL/Sa0bAwOmm4sxn/gnNtQGjL6LN+8g6B2n3RQeH9lZwb/Uf7xa3XgCcbTC9ArSYlr0KRBvLijuAvcFsMdNrN5Go8Z6VVCFtLWl3V8c7flqEkzhZ7JwLDua2kloqRvOl4zA5K2hTGnK51FbWR8NBwmjO0UwBkNIS0+cWXKcGiLPIe8OkOCUQyinYBIUUYJs/f+Um33ndKFmz/bNKG6ZyWu08SY7rdKrYDboL/OOX73eegB9CkJ9+Oq2qSNyclv6pvYNnpwcHO086x3ZbZQTfMSQXkDZOqW7Q1xXW4sq20xsJSZAhASCW5oagC6uGjtMyvgV3erDzkP3gP6+tfQeF5zveFKKZ6d9HwFGlydRyhbZd0zl87K/gA/duCjBqAFuMde3sdK7AttfdqNYy47F+LmhkvvBdqxqbHlnGvO/sJZ5voJsFNtRqIlIzVzIbTfUw5bnXS8kbtK9ZtP7nD+dv/suX19bRW+TSaKFCHriTUbHxWkQ/AYIWBUObpn28sx5PNUldemcCuotzecN8k1U88GfqK8MDiBUzFANTwTHRYV85s8vfEvN6BYOvSC3DnOeyo4nA3P0IkYfjp7DLYZauehGyK0q5IIzqpQXRMCCh6RIRGl4eiJeonWwP4atbi3O7UByqnmNUm2WdP56/erIasZHmtg1Lmibbh4OLXuzEA2bqypy12zd4ILxjKuVTpG1b2Fq2rgUqwYcFRWaGlp0Kjj3l6PjweRvGh2UMzngEGk4lc17wLnOQC7G17GCUDnaCXbCOqH7qXU3NtsyrF9TMvVLbp1HN/9gEz6s0eViaHcPuNKQ+ke+CTUTauwvNc6+7TexYEHUGDurJk456SdWMmastouI9zADIBo1DL6uSi+tOqPEWs9kBXWAXBUfOiORcgZLhIOlgpNkaS33vAiiBm34AbqriVTuJifrussNqkZDTIKYZk6mC9qP7uEY/+5HJNEQuo8pe0mKxEhqtvz65I63LQkWqI7W74CT5IC1FzyllOVM8mNMMy+Zgho919S1k5xdJxAq6BtWebuq65MFHuJFy8+WkwH3x6W9fYOrbF5b29sWnvD2mu32Z6W5fYqrbF5Dm1r8sePkVvlgtwd6HHJskArdizqoaQ77hGRfKDd0JWMluaDicTitLPL6fUifki8on+txJRCE+QepWIPVP/vNaM5GvZtMyE7nS9SSTVd0YDNp1pZdC26WXlxil6nsnDRss07ZJ0ayCTZJiVZ12yL6PeAa1ENSUwVDdNEjXrhXwGqJy3YhzqvIFVWxEbrgyDS191SQ9Iq+gvEZSugaMUOQvzZQpwQz00MnZnYpSqGzODcsS/9WDpijVPkTNdztI5uud848nz6+et+shPJYleCxLcHeQHssSbI6zRz3tsSzB9ssSWPm5JUh2f3Jjp6UG05ARk/Sj8z7XhXNLk4mHbGJ1h8qeX8VMo7Cuaq9y4e5are5B+9ChnpNWQzrTAY8+fMk1VcHU3xG4yJ03PeivVsXlYgbBCC4MfG1FUtSUXSAxugQtZifQww4w1cXCp5WcAA2I18OlA7ZTKuInt5XDc26LPt+upU0wprlsc6DKhCITSvwAlbYwsMMxSQjq+r2hJZjGw5iuPhfWQsDkNwuAs87FnCHIxYa91laSKJKzjOeQlmp1VyCjyNilfb6z8VKPC1rxcrkl0fTLJcHxyXfe1qdYPqdmRHI25VSMSKEYm+p8RBZc5HIR3f+xJB082YO7KbdVFaOn87qqFKDle5+Pz/n2+bTDKijNLA7eyN/oDeuu4Nqq/J9tDThbABvuXIouiDZqqKLo8fh4fLB3eHi057KxutBvUaFZgX8fqZxgfxXC/70Lrb82fy6I/XyO7q1uJPWINNNGmGYdrVO14D1aH6xpsD3gN6WRw4Px4fH4sAXttoJdfM/MDvv9QSpXZtuX/nWNW53noVXU3A4BnX8noVzxBKqy31SjRAGGIOtE1w2X9VHaFzUp6J16PKKsDiMOyeyBCiOPdX7a1PVY5+exzs9jnZ8vu87P3JiWFf+n9+8v4PNdGn7Yl0I47NhXZSGTRpUTH5jKMHA66TwJQKrSw+s6x25uz/cvTGW+HA+Uj71TQMZlKxajDRKBGbqoPDl5sRocFzizpfP63l09EPFrofyJlaUkC6nKfBjae+LtvTS07ESydLD3nQUMDvGcUSvf+0rT4fHTYWRWzMzl1nL1WujDqTrpxEi8GN0PxVemLA37N5KUcsEUZFBb1ugrOo3JJXO5rjJrKh+/FcbWrgDKzrkPl7fa2+uXlzt9s9eMmRGpoRJL3ZhBNEF/ZLW1QKx3bviYFZNirreblqfo0/39aSlnY/ftOJPVfgd2XUuh2VbPL06x6QFOAfq8J3gdnKuPsId3m2fYQfZph9gBqA01jR4wzd4JzDaqcMxhY+zxQduDtd3bF8C16jp7OE47evgCTE7Y/uw+3ipr0RxEW3VvJGRYpkkzmwhNWPw2rne/+CQkC1VwULjSWb0cQqyU30pBXlAlJiMygSpi9g8+kK7JlGotZ5tprz6ZrJViZRfj02Bpt4QAnOjkiURdLbBoUckNesYNaaBmStAoa6paBQLP0SSpaKzPN3HDep0KqSI1XkIPd19RxY6Y5sv5vXCjpGmanSxNt9hRb0E+DTeMOac3LKQFabupGCac+QKDGP2Hl3YmMolNARQRbEFKLpiGrmk3yQXCXj1KRgXklLVBvm8WMdHSJQnv7oIot+I6tdtOvXEKBP69k4nBMwY+hDdLd/aDoRsTWVJu8Db56pYqdj4Nph2CgaaOqmqEwz9G7MobpjwHifEeBHchSadxIRQ67eLjn/ikgA0/eqdmRjfBx1fOuUvIRI0dKLaYBHKGt6oZv2ECg2fTWR2Hq5U0MpNlu3YPVVNuFFXRKk9ceqlL9YIafRoPRcUzJX2K0QgokJZawmRLPPnxYX29rFm0dPHs9xEpaMamUl6PiFlwY9ChwDVZpCV6LKuJdZNi1Utyw0SelBeCaGbsGhgif62IzUOkbyhbgKdgP7e68/kFhjfrEVTU1iOSjLngymf0fYHaNeXtjmf36UOyi5oUalBGUaFBbwbsT6U9I1wxV7yslU8/cWWZ4E2X5p7WFPff+9I6IzLxB9P9hHKKR6zrpuov9unzk9ZiHbcwy6vtdXc8Q4sS1LmExC5g0EnB9vMLLLPoKIdqsmBl6RhaWI8/ajFooM3rxiH5mxIjZblHZ0JqwzOrKYqcqlb3yDBsUcpFuhk/M6oEpolTE24yM27mzRTuMJYYoK7YfkDeHs/3rF42UBv3dP7LP+q3xz/945sfn7356/7J/Fz9+8Xv2fF//OsfB39qbUUgjS2oMjuv/OBeJ/Os2ShaFDwb/028Y3Y9WPAois7Tvwnyt4Ccv5F/IFxMZSPyvwlC/oHIxiSfuDBMCVriJ0tB8VMjgHD/Jv4mfp0zkY5Z0bpOqvO6nqhWUO1hm7gq5mi6Iq2jIHwSJSYdM3ApO8yuJhA2ZBd/w9lijDCsmNijRipSM8UrZphCQFpAbwZTBKQFgf0XPApusnTkMOl4p0tODvctuimkWlCVs/zqPjEASeuJkC7ujmvyk1OGayU/DlSH+v5ofDg+HLfLlXAq6BVGEW2JwZyfvT0jF547vIWpyHf+5C4Wi7GFYSzVbB+FMBR23ff8ZA+B638x/jg3VZnksl86PgKyyVcO8W9px39oCVUkgIOBdvOWmR9KucCCZvCXM5yGcUs58ze8xllOh9bUQ3g782/b3glUhKZLIsHZCJW2pZe0OkaSebnUhfZHMLL9ygveAvt+3UCcwHWDfJLIde8OCN34y4DY9T9GXcwJ4GHBe9Q2SHiq2ca19ecX/iYRZSaENhD2cQwSbURKoKjfaGa1Ros0K3ujNvvlaWnBTRG81B7qbaDw0hI81YGWEyaGGjp4NGmsx8DIX3Ce9BiGyvkRwyVdWubU5PWImKweEV7fPN/jWVWPCDPZ+MmXh3mTdRC/pfCAcxQ6v1yeQzZ0iUJ0kbrxPVn/bLE4trg7RgwmN6Jas2xEal4BQr88dFqgEzOAKxjT6pfwS/rdujQMEV7vl+yoWcZp6Sl4FHJUMRytd33GGg+h6mzODMvMyI8PL2GRj9tH3GvLN9/sP1Y6bSeehkANSrJGG1mF7AscFNpqg9PZLbVTekSKgs+a2IfDSKIasTkCiJaFsdMl1cfa2SAFV2xBy1KPrIarGoisQQxxKfZrBUuEoXxsoNchEy1RM6GlCjWlFmzagiKZBGKxS6k1GRraIvLs4o3Dhk5bh3pqSI01FEshr7DVOAaFg2M0h1iO0tpsuE4dSEH7kitIDjoqzGtQ7AuduDFduRPyxtlRf29YgwOT1+9/hvwhKYBq/F3P1Ulu9/Bw5OStSoqBGRDqSuUMiuM7fECX09cvL+9gYHrMeXnMebk7SI85L5vj7DHn5THn5avOeemmvATp27Z/fJpRpt8KdHj4z9bOs6WoPiYfPCYfPCYfPCYfPHzygWaK03K7BmN/v3aTOXl/Wy2rh+uM5ev7p2w1dDRZV0qeKZdzaC+GXnPyhug40rJmejwUYeNdBSot9O8vnhBxk2v4p9auP9bHJfwhy5JBSA5eYu1f8Qo6EAfhx2yhtOVpfkikhpXjDGno+LgDwfrGog9AUgljiSFKMyr4H1HZ92ae7ve3xHyk4/j7PROKZ3MkHLjYr2rcVdVUeCktldNXW0TXicpIg0BiY845K2sohE2VomLme9UYV4A2aXhDBQbkgMegHTwfwIjruUu5jL9DukgK6mcr25LSR1APIldvkVJgwZfAgm8hp/dgZ+0U6F9BOrLD3TePNPwqNcOvXC38inXCr0gh/Iq1wS9eFUw8pKF9huNyF8lXG3eSXsncQsvbYUmXURGlXUyFczbnduM3CGIMHXR5vp/QsgsqacXQAgP27UfHNaTEFYYJog1dal+G2Le2xVbUNHSsAgWx5uiogYTBUk5pmRSE9+BGg9JmZahmmyQRfFoMmFJ06cIlAElUzcCRltrJ3kCTRadP4PJqJQ3LDDhPuOE3rVzEnt7pPu4RHTIl98heGf5sdLhT7BHfcKcdRcE+sqyBZgRbQsXZFPqxMAzNdTvosRJn752Q/Uar/SkX+35tn6N8pDtxTgqFjbJXC+j2QDJalgwyt2eKViEPUfOKl3SgDW4X+PrWZM1VkR8X4bR1CkL3hrxTjokftqZQeaU7+n17j7z37UDTXXc9Rvpm+6ODw+d7B8/2jp6+Pzg5PXh2+vR4fPLs6X90mlPMFaP5ZlnUKzOAYAxy/qovtI+O2wFdwIy3TXAwSScMxaILvh9hogFSILgvXbhGnZIreUkFRlJPY8NJcxqGTAoBEEqmSi40mAR8foYDwh/RBZuSms5Y0t1TYof19m4spLrmYnaFYUe9hs4PmkDm5iJhLm9VCJKty0TmsmL7tMR2DjFNK/rrnah9l3y1VtTGxjMMe3P7Wp4FzXjJjZWZNb+R2CJXyQb6u9ecZUkrJ+hd4jcb7BbwgO42HXER6ZoxaAxeUbG0ulEGHnt743z98tL3PHqfguCGxq5xYFrBi101whsrBPd7EQXdm+wUvoiTdP4iEKu6lsJq6168YwaKIBOHxfEkrOQMmtEqZoIdxmIoWvaZHiUpPFNGGigBhD33vVFj5MIwR5EIYlt9bJo/Iv5RKvIQs5TGhUKJDLi21zU0Vy1Lcn7hpb2REXpeT0ao8lDQQoRDmsv7xyDA8wtiFL/htCyXIyIkqagxkGPCAvfmBiajiuUjMl2GWJp0qlM6no6zcT65y+1/kwYVwz6VszKkpJ1faNxjKZLmyOkFux+Wc7lZUI57biA1xxGPq5wQYkQyKYQLICqCfcxFOSg2oyrH8BGtseV1fF5j624eQhytFogRpplUScfeH6Qi719ehK45wDQDmAhbxrj97BDEBYcyDJd/feuiK7/Tvpy9V5dfXiSwjGESrKYSYmK7M7kKseWyhw+/fe3QdKF9Y0DgCi4GhtDMNN6XigF2TFVkJ4y3g8WEi6DtpVCIDuDa19+Cn532712+/aQmz0pcKdUMGZvuTJGuwzGky9YEFDo9wSrciDFCB0th/NaILF4v8KS7t4cGi6iNZTLikPb04ja6Bv8+bdQ9+RKH3/dLaHcdwdsQzS2Xr6gwPPMx7y4xin3ExkGOn8WLir1BFU1pH7vhdrn8D5ZYHQXJmIL7WcxN8rxKhTkKWpaeV/ku8xk1bCbVEpmVy0nThpclYQLazcFjKzJOLMIKblVXNyytayVrxalh5fIudybk5NtSh9CGj43ocGOC6MC8Rs9gqimfNbLR5RKpGd4Jqg70w9dBaQePAbVsfESoL1WHZV2gwJ20dDIm5K8Rs67EYVq9A0+VvdOH7ACk+8nYfeHSVNtqnLCSIeYQ5g1GieF1b2LlD5SHGSNYkxHJmRVZkDXqSz/HVnogZ3i3y+J9Urj+DLlbUIQ8Zro5x4prqAxnpW/COGmHeOMCboHik0q+IDQ4fqeB02PU2mPU2mPU2mPU2mPU2lcdtfaJQWO7/agxHzMWKQuvmh2XLDm/uDm2X5xf3DyPSkZHrn62YLOhSLf7JYpduAyxTxHsbfvXBjlHK4GQUJBj5RIfi0g+FpF8LCJJHotIfm1FJF3JEHgusZb5r24JbPIFR7q2F5P+JtVAXx+rCzngFlSTTJYlNF6+JXip4CJ3xZs8dUIONpJlqLDl57ZP+viAzU0DrJ6ziilabrG0xms/R8qepFMAPfjf8QLEPfTi1k+6NZR4nrRmACuO9g35FQPXlKtKM3EDwunLJTQ6Mn3V74QeF88ODoq2QrON47TbZ82+al0jBBpNEeL+kp0FAk9gGTp3Lluocyn9Fb1mmnBDaqk1n6JPKJBOGBpIKElzRJoVrEdQQ+0evH1e2X2qmeJMZOCH0rphGm2AdizFcrsA11crmurRaR7G9R3aeY5J+jFwAa5cntjRRsbFDDoOu15dvR3Nn75gz9i0YAeUPc+Ov39xlE/Z98XB4Ytjevj86Yvp9OTo+EVxWzmCh2/k4Ck8xs268z8QOpveosKLEEzraB+kEfg3QiWHUi403KcWMqAnXqf8WNDYwbMKFYnPKwb291DAHG98ouWT5K1qEK4zRDhtIN7SBiQlFjFz4NltzLk2ik8bu3JfSQr3VjXg4ggSZy610cPkixZ5b4F2iyVYgMUtpRMG4DK2IV1aFuR1SbXhmfMXJWiGJbg8Xy+mUd9utGGqdStCX8WfGTW6PwTXFjs5K2hTGqj/UweXZ8CXgV7JwJHDmLwgQhI/RujCMVBeMF3DXppgmkQAmK0YY1yvFxi/Q6d/n9D0O50ueNG7MV0SOerHA3K2xSStRAcumSgMfiUrOCUMEhOA4dS1oWsT46hDHWHQUF1g0tr4obqT6e+t7dheUPnuv/lg0PaGBP9JS+fp70rkYVDZQF4Tak8NBmozg23GOzrPTZySBvLrlxEbH43TKgboZmmpf/GbNdofPnW70837cQAqNATstyuKtkdKvGu3+NVSr5Bzrn2R3h/nx3r0/vwdvD+Ie2ckSgsE9SxFn80FhCA9uoAeXUAPA9KjC2hznD26gB5dQF+VCwjr3H1tLiAHNdm2C2hz6b4dP9DAOh/9QI9+oEc/EHn0A31tfqBGIcdyRoAP736Gj6stAB/e/ezv7K77I9FNDaUyMZHNTmQAnJoq2MsP7352VfDckyGMfc7IVDGKKRFyIQgXRhKdzZllLnhZGkHelXtfEs/mN7ntD93mHu7QvHIXcYduVY5Cxf2dxWIxdgaocSZ32iZYyIXJKBgFAJ8VXWLwswvOtRoBluwDvGKweLmM+a+0vTTi8mfAvAtNDTQbuaj5WCQatNOZDK1J3I3dXfp72mB7CS28ForOqu11Wtq10jaxojWqJLQwruTG5NtJgmgj652OYXPy7cQ3GHH9VFDhdkB3eMYW08fPCxSVlv7B/MMru58u3QYCphvN4m4tEzsLlmUI6+ICWvOBhJ+MyGLOIGzftFqqKJZJoY1qwLhoqQcjwr2hp21kStWYgU5g7e0/PT5+uo+m1H/5/U8t0+q3RrbLzQ43+HlIYYUNa2CNrscPkIgOeUZhtX1V+q00LtKci4Gin6O0xkseTicUO/WbOcK0GarT7aEZJLKVcuYuePZVrl2a8G+NNjFE35d8tYxtZYOckJcVXgvDUvBtLqgOgI5ajHfQy/tJG2tHW/FzR8/XOtnJh97zCzf8YOPJCIPZloJ0AU15WnMnPMghaGd8y23jbmmtyY2jN+Xx8dN+2ufx09b8kL61rTNo+SxM4Og12C0AXvwFCwcMriGQvEVfh6567PxfgJ2zj1DgN2nPkM4CKSgoTENfLCHtu3AYEyM4VmNKYIdXja/URGG+aWPCU6NkMlwshmWEEUNHpKo2ER4AHZ+cuLc7zraWN5lMmVkwFiU6JEktJOoJHZmFCtK29vYSRl9N7sBIdjosFdNbJ6eDohfhXcGSerryli+waVRBwkdSCFoasb49g/C9U7d7brHhAj3wKIog6MnLbmiQy045a7vKfkgKXNAbtAMxsAKndxL7DWfaHQV/l8PGOGZOBbzGc5+W6rX3kEjrhCIcM/BDOixVdwmh+juaQL4i68dXYPj4e9s8Hs0dt5o7vjhLxxdr5NBMXdGZv/0knJ3Ebzfg7ziG5/IxBtPe513VIF+VIkgWB9x7e71zJYPmcuFaiS7YNMSIQIhMUkcSy0JQZbWFJoDq9YvNWTL2ifhcJ9nN1t0SfjH3QQCfq/tRQiGIuh5Ql7Sgin/Ou+sH4Tb0ph0nFIlrwEf/By9Luv9sfEC+QzT+E3l58cGhlPxySQ6Prg6x2aSvffaEnNV1yX5l079ws//84Nn4cHz4LLCT7/7y0/s3P4/wnR9Zdi2fEBe5tH94ND4gb+SUl2z/8Nnrw+MTh6f95wfd0q+PxaQHoX4sJv1YTPp+EP+3LSa9XVD/rc91V4gGywW/+WbPznJKpgx66zi14c/4qTXwP8P7L73lIZNVJQW8F+Ib/T0B9MjSlfNwlZ+/WRGsCKB1+iEMrX5tkwO3wNbIFrKx4RX7I4bm4cC05MGuWVMzP3VX0c7DFZ8pivMZ1bD26LiW1rBy+hvLQhdr+HB160r+OQisgFnYMt9ACtDpQkDbEEBD+hYAUUdaOclr+1KnCiWUislz7kr1WDUdglJdAD3ME4p2pXtIhsO/V+3gGrAiaEl8dWsje9TR30RLROlza/cPBh0ku/7AgzTaHd2do6yUTR4P0kv70ZshIDScuuywAUy8cb+iapy1XtV2i1ju8zBonl/BA1d+SF9dTar0qLXWDC+MayUtacabeWAI7pe9j+tpKNU83SuWXn6UclYyXLHbwW/JmUUmphyVeXpoQuQOM3QcAIOl3rIbgw+v3etkDp9CErPf1k8T0o/C83eeaQMC68y1KQ0ns7lMnqvkGK6fzL0wTl7YdC7H5nnJzfJqA+a6/q1NZ3WUtunG9ah803kw3G6jOVqPruAHucyugUodQ3jlPw8cLvwNcm26GRTuN3u09Vwqc4Xy4ZQUtNQWlVRkc6n8fHuBGawQuwEsMig9VnF5JzHSCJRhNCWoGn5lcDtWTFXRWV+23DqbfSs9SnectfPmZpN++nQlnbJSW5b5/pdXv1gNZ0GMJBWtLZ/V7F96sLTUDbJe5SDrRe+5xRVBEMaecq28i3T7E34aGOTc6gsJtTorrH3dJxiOEwKFBupD5OkkxuuXl2m+DA8JMCzT42VVjt1zmENNlYtElmIvvtmxsiLo6yl99da0TKF+iKmUJaNiQ/QWESPgfovb3p9X6vG04WV/yv6OBsG9c3jy6vDg+53NwPnlksAM7Y4kbtevm6m9BWOuitv7v6TfDQwcfw8KTltbiYOSdOfXc7L40q3crAX0+n3uoruW+fBRv9MBSjBQS9dteXCqZoBvfupMFzInH85f9SeCgPmaZg+3qDhifzKZ99jsPSfztqL+ZMiibmeFm03keG5F6/5M4JvA0o8PNV0y5PCctwifT8VnGHYFUm+TtPefF8d1HCa2UOg1UBgY15feDowl3CGGGEHanuEuXIB93FTW+xrWvYr8ZM2dEEwlccE7L9F28r9lowQt7VV0ZzNryz0MLZlULG+qeiVuVm6q88xDSMd06Sxg+Z4f0JtN56yso6NqFaYbwc39KOwsOUay8O0rWtYMD5rL43Y2Ozu1Hvch0kxd/T3AAjtPApQH6Dcki/yTd8rdjWG3/GC37UuPp/WnvQUBYXpI64bM2Cmb07LABLQQCeTbMoyTt7tQpZDRJm/tzWrgbgUQ9skO5w+SLGKJ7fS/IXhSmMA/e9UW5m3YkpC39D/Ffm+4YnlUd7r/Jabjg4OB329dIEaUoQf5w/mr2NIPDDWdGvz9pbmK3ltc2NNPXxXQggdxk5UF7ld1t2rVEb99MVHt3i/5dN/xQ/8v2duzB3vnbnT5HtvhVZB3ygVb0TKhvaiOlrDNVd1xOamJsN89pr2KQUl6v7XcAt1F0uNmHYR3Q0qQJz2usPLg3GsVG57tEOv0mcD68W5g1Z8JrIu7geV2+OHEzqXjDvcUPHIhrLayDcGzIQtOyW4hosLXh/U2STJ8sh8U2Air584OqNVQdzTBzw5y6tb0QFuY1kA8oMB+GWB7BbevdLcCO8iXpG5icNfnEkUWde7+hBO3gmTakOlmqmMf1c8LXJh7DXy4gCu9rEourvXngvIsuq7d1GiuIlDmA2KRZBK2h+YlLsh+zm7WLsQ+eJUk3HwWfKdA1iEjB6pmYG3ATQB/SL3wkwjYZW/puVxoFwaa7IBRjJEpK+WCWFWqzx2S+hvkXrwhVN/JfSsa44PTeuJ3HVMo+ANqp1GpHI/3tcr2M6nYfkUFnTE1zj7h5tBivr7kWMkwhQ+rvchZ7HSUdPXrLNMVIdvCUn+T06tSzq60oabRV848cs+1FqFoGpTgCqsLS/a9TQdXa+9ZD6N7JiFV3cvtBiuC+x4WyWkR7MaLGrZ+ki9Jqn6xRpyvyobjzvb/hzacdSt7tOE8zKoebTgb23AezCoROcHdaSmee99BFiVCKWczJw7WyrcHs/g8zCIwLQ+XoBqhbz8bD2ZJe5gFwHX2LvBntMaAN9a9DN1b5WZFwTLoPJ5MMshwhi1ad3cqycIPcZsriYsbV37vaqNoh9XIiEf35PjZQXH4/MVRzp4fP89OTrL88OlTSvP8uDjKXxxsGPryHnqIevDs3vpwJdUI6ICdLbMy5lUJbtJzBuUookLGxcDVpavP3GfV+5D6p0ueMfhz7/Do6bH77ATo3tFYZ7Jmd0BAJoVRsnQHEi6ZXLQMN3POFFXZfNlf35ABcvBUrl7fLeDBDC2tp2tOgl7uq+x5q3Wgu+/ELZBuYF0M0JR8o3CcTaiiQwl32PkApn1vhWUOrIn3B3dDSGBP14KzmWN+E7yJGRcfxy4V9Q5Yu90i+ymhBNvd6TuaY6GpcVLMZTPAIcZlCG691KWcbQguRLq2r7bAZ13v54Eoho0COzeQZz4o8zaBNpXSPJwoy/OT7PsXx1TnxcFhPmVHrDh6nr8o7BdHz4+zTcM47TZbyFIpBp89MoeFVaIPlHJ2X/TdallbGXepuGyVHL6zGBlU6m7Bl5/Vg+/1Z3Lm8AElpqjhmKfga8V3gXct/D8z8H7WewIfqxw8EEHr5i7aV68r0h2WEZSsRhtZtWhXMB3b1QxDvQKyMzXlRlFf+ahdn8Cp0qybfKcYza+gc4GhnZi6VdmFmWJJR5216SghcnLl8Vx1rOKRHn5v6N30fUO7N6t1N/jbIhSswPEVyQ2doQ0xCX7/fwEAAP//U6PnGA==" + return "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" } diff --git a/libbeat/_meta/fields.ecs.yml b/libbeat/_meta/fields.ecs.yml index 2ecff3ead87..aedd2dedb71 100644 --- a/libbeat/_meta/fields.ecs.yml +++ b/libbeat/_meta/fields.ecs.yml @@ -143,6 +143,7 @@ - name: bytes level: core type: long + format: bytes description: Bytes sent from the client to the server. example: 184 - name: domain @@ -382,6 +383,7 @@ - name: bytes level: core type: long + format: bytes description: Bytes sent from the destination to the source. example: 184 - name: domain @@ -609,6 +611,8 @@ - name: duration level: core type: long + format: duration + input_format: nanoseconds description: 'Duration of the event in nanoseconds. If event.start and event.end are known this value should be the difference @@ -1075,6 +1079,7 @@ - name: request.body.bytes level: extended type: long + format: bytes description: Size in bytes of the request body. example: 887 - name: request.body.content @@ -1086,6 +1091,7 @@ - name: request.bytes level: extended type: long + format: bytes description: Total size in bytes of the request (body and headers). example: 1437 - name: request.method @@ -1106,6 +1112,7 @@ - name: response.body.bytes level: extended type: long + format: bytes description: Size in bytes of the response body. example: 887 - name: response.body.content @@ -1117,6 +1124,7 @@ - name: response.bytes level: extended type: long + format: bytes description: Total size in bytes of the response (body and headers). example: 1437 - name: response.status_code @@ -1185,6 +1193,7 @@ - name: bytes level: core type: long + format: bytes description: 'Total bytes transferred in both directions. If `source.bytes` and `destination.bytes` are known, `network.bytes` is their @@ -1594,6 +1603,7 @@ - name: bytes level: core type: long + format: bytes description: Bytes sent from the server to the client. example: 184 - name: domain @@ -1807,6 +1817,7 @@ - name: bytes level: core type: long + format: bytes description: Bytes sent from the source to the destination. example: 184 - name: domain diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index 08d67cceeed..fed80ffad87 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -4696,6 +4696,8 @@ type: long example: 184 +format: bytes + Bytes sent from the client to the server. -- @@ -5075,6 +5077,8 @@ type: long example: 184 +format: bytes + Bytes sent from the destination to the source. -- @@ -5399,6 +5403,8 @@ The concept of a `dataset` (fileset / metricset) is used in Beats as a subset of -- type: long +format: duration + Duration of the event in nanoseconds. If event.start and event.end are known this value should be the difference between the end and start time. @@ -6115,6 +6121,8 @@ type: long example: 887 +format: bytes + Size in bytes of the request body. -- @@ -6137,6 +6145,8 @@ type: long example: 1437 +format: bytes + Total size in bytes of the request (body and headers). -- @@ -6171,6 +6181,8 @@ type: long example: 887 +format: bytes + Size in bytes of the response body. -- @@ -6193,6 +6205,8 @@ type: long example: 1437 +format: bytes + Total size in bytes of the response (body and headers). -- @@ -6276,6 +6290,8 @@ type: long example: 368 +format: bytes + Total bytes transferred in both directions. If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. @@ -6865,6 +6881,8 @@ type: long example: 184 +format: bytes + Bytes sent from the server to the client. -- @@ -7179,6 +7197,8 @@ type: long example: 184 +format: bytes + Bytes sent from the source to the destination. -- diff --git a/metricbeat/include/fields/fields.go b/metricbeat/include/fields/fields.go index 53c56d4fb62..fb913031719 100644 --- a/metricbeat/include/fields/fields.go +++ b/metricbeat/include/fields/fields.go @@ -32,5 +32,5 @@ func init() { // AssetLibbeatFieldsYml returns asset data. // This is the base64 encoded gzipped contents of ../libbeat/fields.yml. func AssetLibbeatFieldsYml() string { - return "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" + return "eJzsfWtzG7eS6Hf/Clyl6srepaiH5Ue0dXavjuwkqtiO1pI3e85mSwRnQBLRDDABMKSZW/e/30I3XvOgRNmij13L8+HEGs4AjUaju9HP78ivp+/fnb/78X+RV5IIaQjLuSFmxjWZ8IKRnCuWmWI5INyQBdVkygRT1LCcjJfEzBh5fXZJKiV/Z5kZPPqOjKlmOZECns+Z0lwKcjg8GB4MH31HLgpGNSNzrrkhM2MqfbK/P+VmVo+HmSz3WUG14dk+yzQxkuh6OmXakGxGxZTBIzvshLMi18NHj/bIDVueEJbpR4QYbgp2Yl94REjOdKZ4ZbgU8Ij84L4h7uuTR4TsEUFLdkJ2/4/hJdOGltXuI0IIKdicFSckk4rB34r9UXPF8hNiVI2PzLJiJySnBv9szLf7ihq2b8ckixkTgCY2Z8IQqfiUC4u+4SP4jpAri2uu4aU8fMc+GkUzi+aJkmUcYWAn5hktiiVRrFJMM2G4mMJEbsQ4Xe+GaVmrjIX5zyfJB/gbmVFNhPTQFiSgZ4CkMadFzQDoAEwlq7qw07hh3WQTrrSB71tgKZYxPo9QVbxiBRcRrvcO57hfZCIVoUWBI+gh7hP7SMvKbvru0cHh872DZ3tHT68OXp4cPDt5ejx8+ezp33eTbS7omBW6d4NxN+XYUjE8wH9e4/MbtlxIlfds9FmtjSztC/uIk4pypcMazqggY0ZqeySMJDTPSckMJVxMpCqpHcQ+d2silzNZFzkcw0wKQ7kggmm7dQgOkK/932lR4B5oQhUj2kiLKKo9pAGA1x5Bo1xmN0yNCBU5Gd281COHjhYm3Xe0qgqeUVzlRMq9MVXuJybmJ/bA53Vmf07wWzKt6ZTdgmDDPpoeLP4gFSnk1OEByMGN5TbfYQN/sm+6nwdEVoaX/M9AdpZM5pwt7JHgglB42z5gKiDFTqeNqjNTW7QVcqrJgpuZrA2hIlJ9A4YBkWbGlOMeJMOdzaTIqGEiIXwjLRAloWRWl1TsKUZzOi4Y0XVZUrUkMjlw6Sks68Lwqghr14R95Nqe+BlbxgnLMRcsJ1wYSaQIb7dPxE+sKCT5VaoiT7bI0OltByAldD4VUrFrOpZzdkIOD46Ouzv3hmtj1+O+04HSDZ0SRrOZX2XzsP7XTqSfnQHZYWJ+tPPf6VGlUyaQUhxXPw0PpkrW1Qk56qGjqxnDL8MuuVPkeCsldGw3GbngxCzs4bH801j5NvG0L5YW59QewqKwx25AcmbwH1IROdZMze32ILlKS2YzaXdKKmLoDdOkZFTXipX2BTdseK19ODXhIivqnJG/MmrZAKxVk5IuCS20JKoW9ms3r9JDEGiw0OE/uaW6IfXM8sgxi+wYKNvCT3mhPe0hklQthD0nEhFkYUvW58/7YsZUyrxntKqYpUC7WDipYanA2C0ChKPGiZRGSGP33C/2hJzjdJlVBOQEFw3n1h7EQYRvaEmBOEVkzKgZJuf39OItqCROcDYX5HacVtW+XQrP2JBE2kiZby6ZRx1wXdAzCJ8gtXBNrHglZqZkPZ2RP2pW2/H1UhtWalLwG0Z+ppMbOiDvWc6RPiolM6Y1F1O/Ke51XWczy6TfyKk2VM8IroNcArodyvAgApEjCoO2Ek8Hq2asZIoW19xzHXee2UfDRB55UedUrzzX7bP02s9BeG6PyIQzheTDtUPkYz4BDgRsSj8JdO11GivJVAnagVfgaKaktsJfG6rseRrXhoxwu3k+gv2wO+GQkTCNl/R48uzgYNJARHv5gZ191tI/CP6HVW/uv+4gbi2JImHDdwuQ62NGgIx5vnJ5eWN59v83sUCntcD5SjlCZwc1ofgWskMUQVM+Z6C2UOE+w7fdzzNWVJO6sIfIHmq3wjCwWUjygzvQhAttqMicGtPiR9pODEzJEokTpySKU1ZRRZ0K4paviWAsx/vHYsazWXeqcLIzWdrJrHqdrPt8YhVfz3lgqciS/CM5MUyQgk0MYWVllt2tnEjZ2EW7UZvYxatldcv2eW5nJyDa0KUmtFjY/wTcWlVQzzxp4rY6bRy/tdJ8GFEjAs8OWI3vIom7KcYsvgIijE8aGx93rE0Ajc0vaTazV4IuitNxPJ7dZXMDqP4Pd41tIrsF03N7x91T2VGixmQFb+kxZ/HJLYrMqfvSElzOJqDwUdw5Lrjh1EhgSpQIZhZS3VhNRzBQqOyp87ChgqLYlKocBJeVS1LoQfI+Cq0xx5s+l1bznRRyYW9oVqdrqM1XZxduVDwVEcwObPaBfT2BDLiIZiKoK/ady7+9IxXNbph5rJ8MYRbUtCsljcxk0ZkKb7RWrDQm9XqWgus6s5cirwl4LBlFhaYAzJBcypIF2Vxr1HEMUyXZ8dd0qXaiVq/YhKkGKKK1QI1qhvvZ6aC4s2MWdDDQQRMEIAjEgiWmfpvjFCn8qE07IvIT2JNT69oixI0alT8uLHi/1wI3AHRB1O68EYX0jBYRLKTpjGm5Om7YHhwyf30Nl14cb99PFMwUwKxRTtibsGYlFYZnoKWzj8aJFPYRlYUBcvBHgbV7wWIkmXO7Xv4ni5q9XSlToO1rbmrq9uN8QpayVmGOCS0KT31ceLlm2FSq5cC+6jmiNrwoCBNWt3WEi7YRyzVzpo2lD4tTi7AJL4qgdNGqUrJSnBpWLO+h1dE8V0zrTSl0QO6owjvichM65hv4TDnm01rWulgiOcM3gWMvLFq0LBnYhEhhb4BUkPOLAaEkl6XdAKkIJbXgH4mWlk6GhPwtYtbJCDBaRLVgxoiiCw+TJ/zR0D0YIcqaIk7YG0CUYHmNRgu8go6GvBpZUEZDBGtkr3EVE7nTMVBBkCICAfcJt2N+V8ZLw/QdMqWQQdfHq0Xzs8Y+/NX+gNeKYNlz+2HvzZYf4HWgLV8OXx43AMNFbUDaufOL4w8bc06ZHGbcLK83pJmecbOEqTqrfyuFUYwWXXCkMFwwYTYF07tESw6TdeB7J5WZkdOSKZ7RHiBrYdTymmt5ncl8I6jDKcj55S/ETtGB8Ox0JVib2k0HUu+GnlFB8y6mCpmlOv0qcKZMXleSB77UtEpJMeWmzpFXF9TAHx0Idv8v2Smk2Dkhey+eDp8fHr98ejAgOwU1Oyfk+Nnw2cGz7w9fkv+32wGyi6+HY9MfNFN7nhcnP6G659EzIE75RgksJ2SqqKgLqrhZpkx1STLL3EHnSJjnmeeZ4WqDFM4VStOMCcOU07wmhZSKiLocMzUAVX7Go16jw6AIXkGq2VJz+w9vWsv8sdYJCO+kSdwHYDjkgtDayBJY+JRJv9ruBWAstZFiL886e6PYlEuxyZP2Hma47aDt/fvZKrg2dNQcTL0n7d9rNmZNRPHqDhjCC03iPL8IAtpzRBAWKWWhFUAKZmVvsGmfX8yP7YPzi/nzqHi0ZG1Jsw3g5u3p2Sqo08lRpb2HqG9McoFff5JgP2rCIZX5VCCkMrctsdZMDVlJebEh7mWZF4EJPMZ7AJjURdFzDh4UiF1N7DQwLbAsOqe8oOOiezxOizFThrzmQhvmFKoGvKC1Dzdmae1aGyfOsg4TB4MI3BL3q4Iaq2P24BXh3CBiU00IJ+sCMaN6tjHRiJiy8xA7jz1XmVSK2Xtpw6w/wRuIfdHKFCHFMnUSopqeMK0PmjmT5QhWwXO8OcAfdnWj4ErKpJjgXtGiMafVNTIq4o2ZeNdvi8u5GTbA6X5pMd26TVqBAQIMXag2JJ0uZ5YxoZoBbh4uuoAkR5LCkWzY0WSNUwYzmn+w2oqGER8EySP3TBiGImAamiga3MDRwYW3YbQO+0sd2IjJSofWhLxlRvEMDc06NWRTQV6fHaEZ21LIhJlsxjRoWcnohBvtfIgRSEtdTdd3w4fJdTCQNkFw46paOOekYqU0wZxKZG00z1kyUxsyhIkS5z3zC/KbLuKnTkNseulx0DgQuAnd5F4Q2mG5jqA6hN3HXpLB/WVznHn3KiII5wL3qJpSwf/EQ8/z4PJ2p2xJcj6ZMJXaTEAP5uDoJRSP555hggpDmJhzJUXZVKIibZ3+ehkm5/mA/CjltGBI/+SX9z+S8xyd0mAy7Rz4rub8/PnzFy9evHz58vvvv2+iEyUkL+z9/s9oFnlorJ4m8xA7j8UK2mKApuGoxEPUYQ613mNUm73DlkrrPAmbI4dz70E6f+W5F8DqD2EbUL53ePT0+NnzFy+/P6DjLGeTg36INyiyA8ypr68LdaKAw8Ouy+rBIHrr+UDivboVjeZoWLKc12VTS1ZyzvMQpLBJVQc5gJ9w6A9nGoBFF3pA6J+1YgMyzapBOMhSkZxPuaGFzBgVXUm30I1l4S1xQ4tyl8RPPG6pOEZG77DvRXLj4S3OrfBi04HhPAud+LgkZKdiGZ9wf0cMUKB53vmgnJVeTtJBkmBLppmfd8aKKlEgQV5h+GoYWjtJKJYWQYaX7B4CaiM6nlOC4+J53jzDvKTTjfKU9GzAZME0igAtqCbjmhfGivMe0AydbgiySFkOLjptApBEgN4+exIJekssaJvZwqQurLIx7wZ3I645Gn8CN0GS3RQ7wdFJSQWdWu0N+Emggw4nwQjUhI0kXrSUkbxqPb6FlSSv3u5uRe05eRusqWjy2W9GYvaMmXhY7/KtIvdxvtWv0ffXcF2u5QCMaiwGbz+QAzAMC47A/9kOwHRTvLHQRem3DtEX8wKmx2DrCty6Ah8GpK0rcH2cbV2BW1fgt+QKTITYt+YPbIBONuwUvIew34hncOVit+7BrXtw6x4kW/fgt+YexPzvVgb4bYaDt8zQvXR3vGnRZZjjlOtc3O9KOujJHP+8tKwkqx50LxfRK2Exmhg5JCOW6aF7aYRJPB6MSOHgsbNEWdbaYCoTHIaiE89NyK/2pv1HzdQSItQxhyuQERc5z5gme3vuRl3SpQcIkvgLPp2Zos8xlqwGvnd1ByxohRWcXBg2VS5unOa/W1C9yMxmrKQt/JNGcq3uKotQiCClHKVkw4r9Ojy4Pc80WpEzSEpyIe44IJwjKpbkhotosfiAKQYlpkXhe2C5xoxKi7yCoRvWotlnlwKPyqhmOqZi+mXB3nOjWTGJ3lcqcPR7mJ82pB4DMmFwf0VAMyFzADYV0Q1ay3ukZw8Eaf76ajBCDnvvYn02dkpj81YO0Ov5mrnMuL99XhKfztDvKCmkVwLRoaJ41qCVQJKnkB7fTDKy5ON5iiUou2VJ+jBY/ma4jzRmA3sm/Sam8QNj8anNkFvDS2Yvq977ZJ/agcIYMSNaTpJFuPH8UNRn2BJIIvWBFi58IqZEoe5Oxgwzn5wK7sak3lRrJKGpSjxA42VPXtWYmQVjdiafPyFyFyMR/JA4mUtJwhzprJBWyJNTvxN3oxsvS27IUipmb9xgTipgRMxXgT/TRHMAqB/RyWtu2Jiq3cB6Si0R5SUrpVoSy+QgH8YNlyeIjwQ3rwvBFHr4ecyFdy9rqwSxHDPh7xPssYYp6JODPHB0ktEKS0K4LMimY8AlxQZjh8s+iweQJ5VehuQcXJKwe1G7mFFBRviCzzoaxQzLsBH2rI8AIXs0z0cDMnIkvwckz+DRhBdsL1PMEtoIU3V8XZYwYkjA9hTnVsbtPCVYdrpC0ipdexXV2iJzD7OxmuLCgb6J7XiNh8HN0EZ+EHIzPp259LN+HggcEgTopLMrYUzYHch2a20OEsRo4PdUM6FdGlg0VNEAZoArjuy1I+ozA3+lyh5uqH8wqSHmLKg+cmJVoQFZMFIVFMwCLt6A0DBk4Ypt0CxjlYEcaBeCgDLNq04DUmGVpVoz9EpltO63ncFOg/8usoawyUhZd+xxKIDU3kdH5DhIJ4qtvzqS5UlQMCisWTEKNOtTzTFXdYk5fZ2SQY5IUIG0R5Vbtp4520ss8hQy/5JHcVsdrGHMwFF7ajKFWjFtVnEuSCm1SXIRwYBqiWghYz0lje60MevRkvFI+z+z6KXKmlWFMlpk4JJ01p2CLoOsAjw5SecKQYEK74RODFRpiA7YFvjUV1NR2nipy3LCWyn/HpJSCh4TcUkyxO4uaLJ+x+yfPgTMSHLDWEXqCokVPkqrUTWxCinoAGkTj5ZlopqX0WKQ7mz0D/bctnNqqGZ3mdU+iZOl9hA3TStDP5PCHmW054/cOyPy2HJ2zQzZd+JYM/PE0rO3jGNlCas8EF2PI/hw/SllXhdMA6trHLuUT6JmYHewVpbWiqUvIsVFnDS98COJxJ9wGrupDlp4uctitKGmGeOU12odv06PT7X1JRdVba79j4IKqVkmY3Z5K1bAfdwQCHa5yYfNQhB4pkHiwuLxb2a1PsXIjZALkZZDi3Rm+s+tP5Qwu8DbN46eBBaFW4NYx6K4iv1GUDuct810YVC7j+G5FVnz1Hlk+XJBrfTB0kCtiKMNGvV+onpGHldMzWiloUAQFM6ZcDFlqlJcmCd2PxVdOK5vpN0AEI5GhgXkrJRCG2WXDzcesCtws+wxufuQzb5/nf717NUXu7Sev7KrCfEsiULagrm3dswNX4uAPllltuP3lzJzUnjK5xDx3FbOFk6JasfoJSTpaTaKJ1+ezV3mEmvdLbpeS5+Gp6M45siyJmY1aVpQVY6+ThUNgGyaKYDzblpiOf6O/t1bS+ZgqaD0HtR4MxmtLcGkCrWwugsvl/qPZoyHV7Y2sfT3dAGWnVD0T07AZ60CNX1wSs4tvGSFGiqklTM5+8iQ5+cyu06Ch3OuLaXkKLHBRQAKIaMqm7E8Euy4NoSHMkzKimI299ro6Bq1pVEXk5esIoffk4OXJ0fPTw4PMOT37PUPJwf/+7vDo+N/uWRZbReAfxEzs0o73goUPjsculcPD9w/4smUqiS6zqxqOKkLVCSqiuX+A/yvVtlfDg+gDOwhybX5y9HwcHg0PNKV+cvh0dOmo1PWJpObi6uw7MtNsYqDNYqixhu/vYZkaCWKh1k3ZWxj5KTUkS87E60t+KLjTg6FrkDnhPKiVqyXJ4UR1+JN6/OkMO76vAlhbuyd4vrmWieHctUxnRSS9hpS33N9Q2AErKbHpSXOptr2mA2nQ6Id4RItCwBRP4nGlA+auesPuEbhAuIua6ivzZhqx8sG2K+FVOUa9LdyEbvvwPLC/2Q5DHvHggbBOGZ16klYxIHdy8ODg57KbCXlAqNlnG9yKWvYsxLDKakAO6KrLgTXXao1nwqdAKSbN0A7xIJixrJmlnpEXAZizXl/aFH42kktxVWzOUtCj+4bqXDpPm/Z2cLe+eFbsv7XGUZBRZXPX6PjF47sS0YFMNE5U8l1O6jnFofgb7EMeTeadOrK6xuJ9QyuvfSGEbCLuqk480mEQnNtwFaMaPOutdZB2n3RwqG9FXy2+o93izsvAM6kmF4BGkzLXgWiaWbFHcDeYDaYNLabSNR4z0qKnDaWtLuro2kgrfFJnCx2PgkHc1NJLRSj+dJxmJxNaF0YcrnUVtZHe0PCaM7RugGQ0gIz8RZcp3aL08h7w6Q4JRDKCZgShRRg0j9/5SbfeV0rWbH901IbpnJa7jxJjut4rNgcvQz+9curnSfgvhDkp59OyjISN6eFf2vv4NnJwcHOk9ax3VSVwvcMyQWkjVOqa3SRhbW4qvB0LiGfMuQSxMrfEKth1dBhWiV4wp0e7BxrP/i/by2tB3XtW04Yopnp3kfAv6XJ2HKFpjnU+Ynsr+A6994NsIUAW4xl8+x0rn63192o1jLjsTwvaGS+rl6j2JseWMa878wsnm+gdwY21GoiUjNXkRst/DDluddLyVs0y1m0/tcP52//21fv1tHJ5DJyoQAfeKFRsfFaRDeXgk4mDE2h9vXWejzVJGXvneXoPj7pNVNXVvHAN9QXngcQS2YoxrOCP6PFvnJml78h5vUKBl+RpYbp00VLE4G5u4ElD8dPYZfDLG31IiRqFHJBGNVLC6JhQELjJSI0fNwTZlE52R6iXjcWHnehOBRVx2A4yzp/PH/1ZDViI81tGpY047YLBxedkIsHTPqVOWt2h/BAeH9WyqdI07awscRfC1SCDwuKzAwtWgUiO8rR8eHzJowPyxic8Qg0nFLmfMLbzEEuxMYSjVE62Al2wTqiull8FTWbMq9eUDPzSm2XRjX/cx08r9LkYWl2DLvTkA5FHgebiLR3F5rnXncb2bEgWA382qMnLfWSqikz1xtExRXMAMgGjUMvy4KLm1aE8gYT4wFdYBcF/8+A5FyBkuEgaWGk3hhLvXJxl8BNPwA3VfGqnYRSPb5ssVok5DT2acpkqqD96P68RT/7kck0si6jyl7SYt0TGq2/PickLfFCRaojNZvsJGkkDUXPKWU5UzyY0wzLZmCGj2X7LWTnF0mgC3oU1Z6uq6rgwbW4lnLz9WTOffVZc19hxtxXli331WfKbbPkvs4sua8xQ+4ryI7rXha8/AoPVkuwq5CakwTulsxZVWOkOLzjIsCh+QEr2JyGw+m0ssTj+yklR76qNKQvnXsU4hOkbsRf/+T/vtVM5AvjNMxErjI+yWRZ1QZjfV0Vp9DV6ewSg1t9a6Z+g2XalSmaVbAHUyzQ04z094HSoBaCmtIb4ZvG9tq1Al5DMK8bcUZVvqCKDcicK1PTwhdg0gPyCip1JFVwwAhFfq7HTAlmoEVPzu5V30JlM25YlvivHjSzqfKRbb6ZQjJf55x/fPn8+nmzjMK2msG2msH9QdpWM1gfZ1s9bVvNYPPVDKz83BAkuz+5sdOqhWnIiEna3Xmf68K5pcnIQzayukNpz69iplZYorVTBHH3Vq3uQdvcoZ6TFlY61QGPPnzJ9WzBjOEBuMidNz3or1bF5WIKwQguevzW4qaoKbv4Y3QJWsyOoEUeYKqNhU+rVAEaEK/6Kw5spsLET24r++fcFH2+u5U2wZjmktSBKhOKTCjxAxTtwsAOxyQhqOuPmhZgGg9julJfWEIBc+YsAM46F1ONIIUb9lpbSaJIzjKeQzar1V2BjCJjl/b91sZLPZzQkhfLDYmmXy4Jjk8ee1ufYvmMmgHJ2ZhTMSATxdhY5wOy4CKXi+j+j9Xt4M0O3HWxqWIaHZ3XFbMALd/7fHyquE/D7VdBaWZx8Fb+TuesvYIbq/J/sTXgbAFsuHMpuiDaqL7ipMfD4+HB3uHh0Z5L4mpDv0GFZgX+faRygv1VCP/PNrT+2vylIPbzObq3upHUA1KPa2Hq22idqgXv0HpvKYTNAb8ujRweDA+Ph4cNaDcV7OJbcrbY7w9SuYrdvoqw6wvrPA+N+uh2CGgsPAqVj0dQ4H1eDhIFGIKsE103XNYHadvVpDZ46vGIsjqM2CezewqTbMsDNalrWx5oWx5oWx7o6y4PNDOmYcX/6erqAv6+T+8Q+1EIhx36Yi5kVKti5ANTGQZOJ40tAUhVeHhdY9r17fn+g7HMl8OeSrR3BWTcWY32shGf0QSTwKxt9L58+WI1iC6YZkNn+MpdR3AzboXyJ1YUkiykKvJ+aDeAyytpaNGKeGlh9LEFFg77jFGrB3SVq8Pjp/0ILpmZyY3l9DVQilO1spWRyDELAGq7jFmaHmAkKeSCKUjQtizUF4wakkvmcmJlVpc+ziuMrV19lZ1zH1ZvtbzXZ5c7XfPYlJkBqaDQS1WbXjRBm2a1sYCt9274mD2TYq6zm5b36JP9/XEhp0P3dJjJcr8Fu66k0OyLn3Ocdt2DngL5ZU/6bXCuPuoe3i991h20n3bYHdDaUFPrHlPvvWLwmujDMfuNu8cHTY/YZm9zANeq6/HhMG024utAOeH9xv15p+xG8xJtlN+RkLGZJuGsI4Rh8Zu4Lv7ik5osVMHh4Sp4dXISsYh/I6V5QZUYDcgIipnZf/Ce9E+mVGM5m0yj9clpjZQtuxifVkvbJQnglCdvJOrvBGsnFdygp92QGkq3BA21oqpRp/AcTZyKxjKBIzes19GQKlJjKLSc94Vd7Ihp/p3fCzdKmvbZyvp0ix10FuTTesOYMzpnIc1I203FsOPM1znEaEI0AjCRSexXoIhgC1JwwTQ0dJsnFxJ7lSkYFZCj1gT5c7OSiZYu6Xh3F0S+FeupHXjsjV2gGHx2cjJ42sAn8Xbpzn4wnGNiTMoN3iWP7iim59NqmiEdaDopy1o4/GMEsJwz5TlIjB8huAtJeo4LydBpgyH/xicFgPjRWzU42glDvoDPfUIwKmyOscGkklO8pU35nAkMxk1ndRyuUtLITBbNEkJUjblRVEUrP3Hpqi51DEoFajwUJc+U9ClLA6BAWmgJky3x5MeX9c2yYtFyxrM/BmRCMzaW8mZAzIIbgw4KrskirRRkWU0s3xSLb5I5E3lS5Qiio7GhYYgktiI2D5HDoQwCnoL93OrY5xcYLq0HUNhbD0gy5oIrnyH4FWrhlDebsT10i5Rd1K5QqzKKCg06N+zIWNpzwxVzddUaOfsjVzEKvnSp9Gm5c//cl+8ZkJE/rO4nlF087oSuyy4Cnj5/2UCA4yBmeb25ZpSnaLWCEpyQPAZMO6klf36BFSAdNVFNFqwoHJML6/HHLwYmNPnfMCSYU2KkLPboVEhteGa1R5FT1Wh2GYadFHKRbsYbRpXAVHRqwi1oys2sHsP9xxIIlDzbD8jb4/me1dV6yvaezH75Z/3u+Kd/fvvjs7d/2385O1f/efFHdvz3f//z4C+NrQiksQH1ZueVH9zraZ5dG0UnE54NfxPvmV0PFlWK4vTkN0F+C8j5jfwT4WIsa5H/Jgj5JyJrk/zFhWFK0AL/shQU/6oFEO5v4jfx64yJdMySVlVSONi1cLXCaw+72pUxD9TVjx0EgZQoNumYgXPZYXY1gdAku/g5Z4shwrBiYo8aqUjFFC+ZYQoBaQC9HkwRkAYE9r/gtXCTpSOHSYc7bXJyuG/QzUSqBVU5y68/J84g6YoRUtLdcU1+cgpypeTHngpU3x8ND4eHw2ZJFE4FvcZIpQ0xmPPTd6fkwnOHdzAVeexP7mKxGFoYhlJN91EwQ83Zfc9P9hC47oPhx5kpiyRf/tLxEZBXvjqJ/0o7/kMLqFQBHAw0nnfM/FDIBRZNg38542wYt5BTf+urnXW2b00dhDezCzftAUHlaLwkEhyaUARceumrY7Sal0ttaH8EA92vfMIbYH9eoxIncN0gnyRy3bc9Qjf+0iN2/Y9RP3MCuF/wHjWNFJ5qNnGVffPC3y6izITwCcI+DkGiDUgBFPU7zawmaZFmZW/UcL8+zS24QoIn3EO9CRReWoKnOtBywsRQawevKY01Hxj5GedJj2Eo6h8xXNClZU51Xg2IyaoB4dX8+R7PympAmMmGT74+zJushfgNhSCco9D55fIcMq4LFKKLNFTAk/Ubi8Whxd0xYjC5JVWaZQNS8RIQ+vWh0wKdmAZcUZpGK4df0me3pXqI8Hm3LEjFMk4LT8GDkAeLIW+dKzXWkQgFcXNmWGYGfnz4CAuJ3D3iXlO+OeUqKcLaTG4NwSCUZLU2sgwZHjgodAEHx7Zbaqu8iRQTPq1jixAjiarF+gggWk6MnS6pcNbMOJlwxRa0KPTAariqhugdxBCXYr9SsEQYyscfeh0y0RI1E1qqULdqwcYNKJJJIN67kFqTvqEtIk8v3jps6LTTqaeG1IBDsUrzCvuNY1A4OEaMiOUgrf+G69SBFLQv64LkoKPCfAuKfTEVN6YrqULeOtvqHzWrcWDy+uoN5ChJAVTj73quhHOzvYgjJ29pUgxMg1C7KmdQt9/hA5qyvj67vIfRaZtXs82ruT9I27ya9XG2zavZ5tV803k17bSaIH2b9o9PM8p0u5T2D//FOo02FNVtgsM2wWGb4LBNcHj4BAfNFKfFZg3G/n7tJnPy/q56WQ/XtMv3EEjZami2clu5eqZcXqO9GHrNyRui40jLiulhX9SNdxWotJmAv3hCFE6u4T+Vdq27Pi7hH7IoGITp4CXW/iteQXtiI/yYDZQ2vM8PidSwcpwhDU8ftiC4vefpA5BUwlhi2NKUCv5nVPa9maf9/I44kHQcf79nQvFshoQDF/tVPcXKigovpaVy+mqD6FqRGmlgSOwZOmNFBcW2qVJUTH0bHeOK3Ca9eKjAIB3wGDQD9AMYcT33KcnxD0hJSUH9YqVhUvoI6kHk6g1SCiz4EljwHeR0BXbWVhOAFaQjW9x9/ejDb1Iz/MbVwm9YJ/yGFMJvWBv86lXBxEMaWnQ4LneRPFq7yfVK5ha68fZLuoyKKO1iup2zOTd70kFgY2juy/P9hJZdUEkjrhYYsO+MOqwg7W5imCDa0KX2pY59113skk1DVyxQECuOjhpISizkmBZJ0XkPbjQorVfqarpOssGnxYApRZcuXAKQRNUUHGmpnewt9H90+gQur1LSsMyA84QbPm/kO3b0TvfnHtEhG3OP7BXhn7UOd4o94pv6NKMo2EeW1dDwYEOoOB1DzxeG4bpuBz1W4uydE7Jfa7U/5mLfr+1LlKh0J85JobBR9moBHSVIRouCQXb4VNEy5DpqXvKC9nTobQNf3ZkQuiry4yKctlbR6c6Q98o78cNWFKq7tEf/3P4mV75Tabrrro9J12x/dHD4fO/g2d7R06uDlycHz06eHg9fPnv691YDjJliNF8vU3vVsq9gDHL+qiu0j46bAV3AjDdNcDBJKwzFogueDzD5ACkQ3JcuXKNKyZWcUYHR1ePY1NKchCGTYgOEkrGSCw0mAZ+z4YDwR3TBxqSiU5Y0HpXY/L25GwupbriYXmPYUafX9IMmmrm5SJjLWxWCZGszkZks2T4tsGVETN2K/nonat8nj24VtbG5DcO24b5e6IRmvODGysyKzyV271WyhtbzFWdZ0i4K+qP4zQa7Bbyg241NXJS6Zgx6lpdULK1ulIHH3t44X59d+r5KVykIbmjsTAemFbzYlQO8sULAvxdR0CHKTuELRUnnLwKxqisprLbuxTtmpQgyclgcjsJKTqFPrmIm2GEshqJln+lBktYzZqSGMkPQlT4YNQYuDHMQiSB2/Md+/gPiX6UiDzFLaVwolOGAa3tVQQPXoiDnF17aGxmh59VogCoPBS1EOKS52gIYBHh+QYzic06LYjkgQpKSGgN5Jyxwb25gMqpYPiDjZYilSac6ocPxMBvmo/vc/tdpgtHvUzktQpra+YXGPZYi6ducXrC7YTmX6wXluPd60nUc8bjqDCFGJJNCuACiSbCPuSgHxaZU5Rg+ojV2447va+wqzkOIo9UCMcI0kyrpCvyDVOTq7CJ05gGmGcBE2DLG7d8OQVxwKPVw+bd3LrrysfYl8726fHaRwDKESbBiS4iJbc/kqtAWyw4+/PY1Q9OF9s0HgSu4GBhCM1N7XyoG2DFVkp0w3g4WLJ4EbS+FQrQA177GF/zstH/v8u0mOnlW4sq1ZsjYdGuKdB2OIV02JqDQTQpW4UaMETpYbuP3WmTxeoEn3X3dN1hEbSzFEYe0pxe3cQ/96D6V1L15hsPv+yU0O5vgbYjmlsuXVBie+Zh3lyzFPmJzIsfP4kXF3qAmdWFfm3O7XP4nS6yOgmRMwf0s5it5XqXCHBNaFJ5X+Qb4GTVsKtUSmZXLU9OGFwVhAlrawWsrMk4swibcqq5uWFpVSlaKU8OK5X3uTMjJN6UOoQ0fm93hxgTRgbmOnsGUYz6tZa2LJVIzfBNUHWjVr4PSDh4Datn4gFBfDg9Lx0ARPWnpZEjI3yJmXRnFtEIInip7pw/ZAUj3o6F74FJXm2qcsJIh5hXmNUaJ4XVvZOUPlKAZIlijAcmZFVmQSerLS8d2fSBneLuT40Ondf0V8rmg+HnMiHPOFtfIGc5P16zxshn2jYu6A7JPKjWD0OD4rcZR20i2bSTbNpJtG8m2jWT7piPZPjGQbLcbSebjyCJl4fWz5aYl5xfzY/vg/GL+PCoeLVn7xQLQ+qLfPi957MJljX2KYG/axNbIQ1oJhITCHSuXuC1euS1euS1eSbbFK7+14pWutAi8l1jQ/KM7gp18YZK2Pcakv0nV00/I6kIOuAXVJJNFAQ2f7whomnCRuyJPnjohLxvJMlTi8nPbN33MwPrmAlbNWMkULTZYbuO1nyNlT9IpgB78x3wC4h56gOsn7VpLPE9aQoBlRxOaKak1UQzcVa56zcgNCKcvl9BgyXRVv5f0ePLs4GDSVGg2cZx2u6zZV7erhUBDKkLcXbKzSuAJLELH0GUDdS7Nv6Q3TBNuSCW15mP0EwXSCUMDCSWpj0izgnUIqq/NhLfZK7tPFVOciQx8U1rXTKNd0I6lWG4X4Pp5RfM9OtLDuL4zPM8xcT8GM8CVyxM72s24mEKnY9cjrLOj+dMX7BkbT9gBZc+z4+9fHOVj9v3k4PDFMT18/vTFePzy6PjF5K4SBQ/fQMJTeIyldee/J5w2vUWFDyHA1tE+SCPweYTqDoVcaLhPLWRAT7xO+bGgoYRnFSoSn1cM7O+hcDre+ETDT8kbFSJcR4pw2kC8pY1PCix25sCz25hzbRQf13blvuIU7q2qwe0RJM5MaqP7yRet9N4q7RZLsCiLW0orNMBlcUMKtZyQ1wXVhmfOh5SgGZbgcn+9mEZ9u9aGqcatCP0Xf2XU6O4QXFvs5GxC68JATaAquEEDvgz0aAaOHMbkEyIk8WOE7h89ZQjTNeylSadJVIDZiDHG9ZiB8Vt0+o8JV7/X6YIPvWvTJZajftwjZxtM0kp04JKJwuBXsoJTwiAxKRhOXRO6JjEOWtQRBg0VB0aNje+rT5n+3tiOzQWa7/6HDxBtbkjwqTR0nu6uRB4G1Q7kDaH21GDwNjPY3ryl88zjlDSQX7e02PBomFY2QNdLQ/2LT27R/vCtux1x3rcDUKEhYL9ZebQ5UuJxu8PXlnqKnMPtq/QIOd/W1iP0lXiEcD+c4SgtJNSxHn0xtxCCtHULbd1CDwPS1i20Ps62bqGtW+ibcgthPbxvzS3koCabdgutL9034xvqWefWN7T1DW19Q2TrG/rWfEO1Qo7lDAMf3r+BP1dbBT68f+Pv8a4TJdF1BSU1MeHNTmQAnIoq2MsP79+4annuzRDuPmNkrBjF1Am5EIQLI4nOZswyF7wsDSA/y30viWfz61gA+m5zD3doXrnLuUO3KgahWv/OYrEYOqPUMJM7TbMs5MxkFAwFgM+SLjFI2gXxWo0AS/sBXjGovFjGPFnaXBpxeTZg8oWGCJoNXHR9LCYN2ulUhrYm7hbvDAEdbbC5hAZeJ4pOy811btq10jaxrNWqIHRiXGmO0XejBNFGVjstY+fou5FvTuJ6saDC7YBu8YwNppmfT1BUWvoHkxAv7X66tBwIrK41i7u1TGwvWL4hrIsLaBMIEn40IIsZg/B+02jHolgmhTaqBoOjpR6MHPfGn6bhKVVjerqNNbf/5Pj46T6aV//tj780zK3fGdksS9vfHOghhRU2u4E1uv5AQCI65COF1XZV6XfSuIh0LnqKgw7SWjB5OJ1QFNVv5gDTa6hOt4dmkPBWyKm74NlPuXbpxL/X2sRQfl8a1jK2lc11Qv5W+CwMS8HfuaA6ADpoMN5ez+8nbawdbcXPLT1f62QnH3rPL9zwvU0wIwxmUwrSBTT0acyd8CCHoJ3hHbeN+6W/JjeOzpTHx0+76aHHTxvzQ5rXps6g5bMwgaPXYLcAePEXLDDQu4ZA8hZ9LbrqsPN/A3bOPkIh4KSNQzoLpKqgMA09tYS038JhTAzjWLUpgR0+Nb6iE4X5xrUJbw2SyXCxGKoRRgzdlMrKRHgAdHxz5L5uOeAaHmYyZmbBWJTokEy1kKgntGQWKkib2ttLGH01uQMj2WmxVEyDHZ30il6EdwVL6ujKG77AppEGCR9JIWhoxPruTMMrp253XGX9hXzgVRRB0B+YzWmQy045a7rPfkgKYdA52oEYWIHTO4l9wpl2R8Hf5bCBjplRAZ/x3Keveu09JNw6oQjHDHyTDkvlfcKq/oEmkG/I+vENGD7+0TaPrbnjTnPHV2fp+GqNHJqpazr1t5+Es5P4dA3+jmN4Lh/jMu193lUX8tUrgmRxwF3Z650rLTSTC9eGdMHGIW4EwmaSepNYPoIqqy3UAVSvX6zPkrGfxJc6yW629pbwi5kPDPhSXZISCkHUdYC6pBOq+Je8u34QbkPnzdihSFw9Pvo/eVHQ/WfDA/IY0fgv5Ozig0Mp+eWSHB5dH2KjSl8j7Qk5raqC/crGP3Oz//zg2fBwePgssJPHP/909fbNAL/5kWU38glx0Uz7h0fDA/JWjnnB9g+fvT48funwtP/8oF0idlt0uhfqbdHpbdHpz4P4f2zR6c2C+h9drrtCNFgu+OjRnp3lhIwZ9OBxasNf8a/GwP8K3595y0Mmy1IK+C7EPPp7AuiRhSv74SpEP1oRwAigtfom9K3+1mYIboGNkS1kQ8NL9mcM18OBacGDXbOiZnbirqKtl0s+VRTnM6pmzdFxLY1h5fh3loUO2PDH9Z0r+dcgsAJmYct8oylApwsLbUIAzewbAEQdaeUkr+1HrWqVUFImz7kr6WPVdAhUdUH1ME8o7pXuIekPCV+1g7eAFUFLYq4bG9mhju4mWiJK37t1/2DQXrLrDtxLo+3R3TnKClnn8SCd2T+9GQLCxanLGOvBxFv3K6rGWeNTbbeI5T43g+b5Nbxw7Yf0VdikSo9aY83wwbBS0pJmvJkHhuB+2ft4Ow2lmqf7xNLLj1JOC4Yrdjv4HTm1yMQ0pCJPD02I3GGGDgNgsNQ7dqP35Vv3OpnDp5XEjLjbpwkpSeH9e8+0BoG15lqXhpPZXHbPdXIMb5/MfTBMPlh3LsfmecHN8noN5nr7V+vO6iht3Y3rUPm682C43VpzNF5dwQ9ymd0AlTqG8Mr/3XO48DfIv2lnVbjf7NHWM6nMNcqHEzKhhbaopCKbSeXn2wvMYIXYDWCRXumxiss7iZFGoPSjKUFV/ye927FiqpJOu7LlztnsV+lRuuesrS/Xm/TTpyvomBXassyrX179YjWcBTGSlLSyfFazf+vA0lA3yO0qB7ld9J5bXBEEYegp18q7SLc/4V89g5xbfSGhVmeFtZ/7pMNhQqDQaL2PPJ3EeH12mebQ8JAUwzI9XJbF0L2HedVUuUhkKfbily0rK4J+O6Wv3pqGKdQPMZayYFSsid5JxAi43+K2d+eVejiuedGdsrujQXDvHL58dXjw/c564PxySWCGZucSt+s39djegjERxe39z+mznoHj70HBaWorcVCS7vztnCx+dCc3awB9+z630V3JvP+o3+sAJRiopOvK3DtV3cM3P3WmC5mTD+evuhNBwHxFs4dbVByxO5nMO2z2MyfztqLuZMii7maF603keG5Jq+5M4JvAEpEPNV0yZP+cdwifT8VnGHYFUu+StJ8/L47rOExstdBptNAzri/RHRhLuEP0MYK0jcN9uAD7uK6s97WuO5X7yS13QjCVJJdC//ca9pV7mlbaWq3imWZmWMq8LnpLxMfda1cowG/QY47lXiFJMjruVyErNak0Jr5LBXfAJsS/Lqj+21ug7aOTYTXl60Uqxbk9QaKXmeetkX3CcjMxd8VYp83kEl+iASLv2lUiXE0HrAwRRsBgnZJCHV7ovO3C6BYzJlalaUOyVbFcAXnLzrECdKsPNvdgHeCbMyZ3T8X+qLliuaMMfBj0m7C/d+DzKumZj5YkcuoShxmEGe7kMtsZPvr/AQAA//8ifmv1" } diff --git a/packetbeat/docs/fields.asciidoc b/packetbeat/docs/fields.asciidoc index 660b353d06d..f2b8f6fb229 100644 --- a/packetbeat/docs/fields.asciidoc +++ b/packetbeat/docs/fields.asciidoc @@ -2391,6 +2391,8 @@ type: long example: 184 +format: bytes + Bytes sent from the client to the server. -- @@ -2770,6 +2772,8 @@ type: long example: 184 +format: bytes + Bytes sent from the destination to the source. -- @@ -3094,6 +3098,8 @@ The concept of a `dataset` (fileset / metricset) is used in Beats as a subset of -- type: long +format: duration + Duration of the event in nanoseconds. If event.start and event.end are known this value should be the difference between the end and start time. @@ -3810,6 +3816,8 @@ type: long example: 887 +format: bytes + Size in bytes of the request body. -- @@ -3832,6 +3840,8 @@ type: long example: 1437 +format: bytes + Total size in bytes of the request (body and headers). -- @@ -3866,6 +3876,8 @@ type: long example: 887 +format: bytes + Size in bytes of the response body. -- @@ -3888,6 +3900,8 @@ type: long example: 1437 +format: bytes + Total size in bytes of the response (body and headers). -- @@ -3971,6 +3985,8 @@ type: long example: 368 +format: bytes + Total bytes transferred in both directions. If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. @@ -4560,6 +4576,8 @@ type: long example: 184 +format: bytes + Bytes sent from the server to the client. -- @@ -4874,6 +4892,8 @@ type: long example: 184 +format: bytes + Bytes sent from the source to the destination. -- diff --git a/packetbeat/include/fields.go b/packetbeat/include/fields.go index 484cb6c0d00..f4ee6816072 100644 --- a/packetbeat/include/fields.go +++ b/packetbeat/include/fields.go @@ -32,5 +32,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "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" + return "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" } diff --git a/winlogbeat/docs/fields.asciidoc b/winlogbeat/docs/fields.asciidoc index 045af28b4f9..f00df7fb699 100644 --- a/winlogbeat/docs/fields.asciidoc +++ b/winlogbeat/docs/fields.asciidoc @@ -369,6 +369,8 @@ type: long example: 184 +format: bytes + Bytes sent from the client to the server. -- @@ -748,6 +750,8 @@ type: long example: 184 +format: bytes + Bytes sent from the destination to the source. -- @@ -1072,6 +1076,8 @@ The concept of a `dataset` (fileset / metricset) is used in Beats as a subset of -- type: long +format: duration + Duration of the event in nanoseconds. If event.start and event.end are known this value should be the difference between the end and start time. @@ -1788,6 +1794,8 @@ type: long example: 887 +format: bytes + Size in bytes of the request body. -- @@ -1810,6 +1818,8 @@ type: long example: 1437 +format: bytes + Total size in bytes of the request (body and headers). -- @@ -1844,6 +1854,8 @@ type: long example: 887 +format: bytes + Size in bytes of the response body. -- @@ -1866,6 +1878,8 @@ type: long example: 1437 +format: bytes + Total size in bytes of the response (body and headers). -- @@ -1949,6 +1963,8 @@ type: long example: 368 +format: bytes + Total bytes transferred in both directions. If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. @@ -2538,6 +2554,8 @@ type: long example: 184 +format: bytes + Bytes sent from the server to the client. -- @@ -2852,6 +2870,8 @@ type: long example: 184 +format: bytes + Bytes sent from the source to the destination. -- diff --git a/winlogbeat/include/fields.go b/winlogbeat/include/fields.go index 3d8c684291b..e2489109500 100644 --- a/winlogbeat/include/fields.go +++ b/winlogbeat/include/fields.go @@ -32,5 +32,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "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" + return "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" } diff --git a/x-pack/functionbeat/docs/fields.asciidoc b/x-pack/functionbeat/docs/fields.asciidoc index b0621a4d158..5f1aa640fbc 100644 --- a/x-pack/functionbeat/docs/fields.asciidoc +++ b/x-pack/functionbeat/docs/fields.asciidoc @@ -368,6 +368,8 @@ type: long example: 184 +format: bytes + Bytes sent from the client to the server. -- @@ -747,6 +749,8 @@ type: long example: 184 +format: bytes + Bytes sent from the destination to the source. -- @@ -1071,6 +1075,8 @@ The concept of a `dataset` (fileset / metricset) is used in Beats as a subset of -- type: long +format: duration + Duration of the event in nanoseconds. If event.start and event.end are known this value should be the difference between the end and start time. @@ -1787,6 +1793,8 @@ type: long example: 887 +format: bytes + Size in bytes of the request body. -- @@ -1809,6 +1817,8 @@ type: long example: 1437 +format: bytes + Total size in bytes of the request (body and headers). -- @@ -1843,6 +1853,8 @@ type: long example: 887 +format: bytes + Size in bytes of the response body. -- @@ -1865,6 +1877,8 @@ type: long example: 1437 +format: bytes + Total size in bytes of the response (body and headers). -- @@ -1948,6 +1962,8 @@ type: long example: 368 +format: bytes + Total bytes transferred in both directions. If `source.bytes` and `destination.bytes` are known, `network.bytes` is their sum. @@ -2537,6 +2553,8 @@ type: long example: 184 +format: bytes + Bytes sent from the server to the client. -- @@ -2851,6 +2869,8 @@ type: long example: 184 +format: bytes + Bytes sent from the source to the destination. -- diff --git a/x-pack/functionbeat/include/fields.go b/x-pack/functionbeat/include/fields.go index 336f503e099..90075ac94dc 100644 --- a/x-pack/functionbeat/include/fields.go +++ b/x-pack/functionbeat/include/fields.go @@ -19,5 +19,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "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" + return "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" } From 19465057149034338650fb02a45002fd4890f89f Mon Sep 17 00:00:00 2001 From: Adrian Serrano Date: Thu, 14 Mar 2019 21:58:04 +0100 Subject: [PATCH 209/332] Update ingest pipelines to use event.timezone (#11248) * Update ingest pipelines to use event.timezone Previously, `beats.timezone` was used, in master it's not available anymore. However, some ingest pipelines were still using it. --- filebeat/fileset/fileset_test.go | 4 ++-- filebeat/module/kafka/log/ingest/pipeline.json | 2 +- filebeat/module/system/auth/ingest/pipeline.json | 2 +- filebeat/module/system/syslog/ingest/pipeline.json | 2 +- x-pack/filebeat/module/iptables/log/ingest/pipeline.json | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/filebeat/fileset/fileset_test.go b/filebeat/fileset/fileset_test.go index f3b398c8612..1b195d89873 100644 --- a/filebeat/fileset/fileset_test.go +++ b/filebeat/fileset/fileset_test.go @@ -269,9 +269,9 @@ func TestGetPipelineConvertTS(t *testing.T) { marshaled, err := json.Marshal(pipeline.contents) require.NoError(t, err) if cfg.Timezone { - assert.Contains(t, string(marshaled), "beat.timezone") + assert.Contains(t, string(marshaled), "event.timezone") } else { - assert.NotContains(t, string(marshaled), "beat.timezone") + assert.NotContains(t, string(marshaled), "event.timezone") } }) } diff --git a/filebeat/module/kafka/log/ingest/pipeline.json b/filebeat/module/kafka/log/ingest/pipeline.json index cde66f21dfc..5039782341d 100644 --- a/filebeat/module/kafka/log/ingest/pipeline.json +++ b/filebeat/module/kafka/log/ingest/pipeline.json @@ -62,7 +62,7 @@ "field": "kafka.log.timestamp", "target_field": "@timestamp", "formats": ["yyyy-MM-dd HH:mm:ss,SSS"], - {< if .convert_timezone >}"timezone": "{{ beat.timezone }}",{< end >} + {< if .convert_timezone >}"timezone": "{{ event.timezone }}",{< end >} "ignore_failure": true } }, diff --git a/filebeat/module/system/auth/ingest/pipeline.json b/filebeat/module/system/auth/ingest/pipeline.json index 1ba82b5e117..c6b91e067ac 100644 --- a/filebeat/module/system/auth/ingest/pipeline.json +++ b/filebeat/module/system/auth/ingest/pipeline.json @@ -46,7 +46,7 @@ "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ], - {< if .convert_timezone >}"timezone": "{{ beat.timezone }}",{< end >} + {< if .convert_timezone >}"timezone": "{{ event.timezone }}",{< end >} "ignore_failure": true } }, diff --git a/filebeat/module/system/syslog/ingest/pipeline.json b/filebeat/module/system/syslog/ingest/pipeline.json index 1d5f93d724f..37d0c310fcd 100644 --- a/filebeat/module/system/syslog/ingest/pipeline.json +++ b/filebeat/module/system/syslog/ingest/pipeline.json @@ -36,7 +36,7 @@ "MMM dd HH:mm:ss", "yyyy-MM-dd'T'HH:mm:ss.SSSSSSZZ" ], - {< if .convert_timezone >}"timezone": "{{ beat.timezone }}",{< end >} + {< if .convert_timezone >}"timezone": "{{ event.timezone }}",{< end >} "ignore_failure": true } }, diff --git a/x-pack/filebeat/module/iptables/log/ingest/pipeline.json b/x-pack/filebeat/module/iptables/log/ingest/pipeline.json index 1678df94c5e..21b9cb625cc 100644 --- a/x-pack/filebeat/module/iptables/log/ingest/pipeline.json +++ b/x-pack/filebeat/module/iptables/log/ingest/pipeline.json @@ -64,7 +64,7 @@ "date": { "field": "iptables.raw_date", "ignore_failure": true, - {< if .convert_timezone >}"timezone": "{{ beat.timezone }}",{< end >} + {< if .convert_timezone >}"timezone": "{{ event.timezone }}",{< end >} "formats": [ "MMM d HH:mm:ss", "MMM dd HH:mm:ss" From 115eeb7b8228ee15a3f57b4a636f5a55649a68b1 Mon Sep 17 00:00:00 2001 From: Christoph Wurm Date: Thu, 14 Mar 2019 22:12:37 +0000 Subject: [PATCH 210/332] [Auditbeat] Process dataset: Only report processes with executable (#11232) Excludes kernel processes on Linux. They don't provide a lot of value, the names are not unique, and they will not be able to use potential future features like process executable hashes. --- CHANGELOG.next.asciidoc | 1 + x-pack/auditbeat/module/system/process/process.go | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 6183b7d4a9e..68b4b39b566 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -46,6 +46,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Rename user fields to ECS in auditd module. {pull}10456[10456] - Rename `event.type` to `auditd.message_type` in auditd module because event.type is reserved for future use by ECS. {pull}10536[10536] - Rename `auditd.messages` to `event.original` and `auditd.warnings` to `error.message`. {pull}10577[10577] +- Process dataset: Only report processes with executable. {pull}11232[11232] *Filebeat* diff --git a/x-pack/auditbeat/module/system/process/process.go b/x-pack/auditbeat/module/system/process/process.go index e63f3203c31..e4a2b6a6d8d 100644 --- a/x-pack/auditbeat/module/system/process/process.go +++ b/x-pack/auditbeat/module/system/process/process.go @@ -9,6 +9,7 @@ import ( "fmt" "os" "os/user" + "runtime" "strconv" "time" @@ -422,6 +423,11 @@ func (ms *MetricSet) getProcesses() ([]*Process, error) { } } + // Exclude Linux kernel processes, they are not very interesting. + if runtime.GOOS == "linux" && userInfo.UID == "0" && process.Info.Exe == "" { + continue + } + processes = append(processes, process) } From e9fc1b6f907890c1131d4c59ae996a17a2aea27b Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Thu, 14 Mar 2019 16:44:54 -0700 Subject: [PATCH 211/332] Bump version for repositories (#11254) --- libbeat/docs/repositories.asciidoc | 20 ++++++++++---------- libbeat/docs/version.asciidoc | 1 + 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/libbeat/docs/repositories.asciidoc b/libbeat/docs/repositories.asciidoc index 64e9058bd4a..9f6e91f6ff0 100644 --- a/libbeat/docs/repositories.asciidoc +++ b/libbeat/docs/repositories.asciidoc @@ -50,19 +50,19 @@ sudo apt-get install apt-transport-https -------------------------------------------------- ifeval::["{release-state}"=="prerelease"] -. Save the repository definition to +/etc/apt/sources.list.d/elastic-6.x-prerelease.list+: +. Save the repository definition to +/etc/apt/sources.list.d/elastic-{major-version}-prerelease.list+: + ["source","sh",subs="attributes"] -------------------------------------------------- -echo "deb https://artifacts.elastic.co/packages/6.x-prerelease/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x-prerelease.list +echo "deb https://artifacts.elastic.co/packages/{major-version}-prerelease/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-{major-version}-prerelease.list -------------------------------------------------- endif::[] ifeval::["{release-state}"=="released"] -. Save the repository definition to +/etc/apt/sources.list.d/elastic-6.x.list+: +. Save the repository definition to +/etc/apt/sources.list.d/elastic-{major-version}.list+: + ["source","sh",subs="attributes"] -------------------------------------------------- -echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list +echo "deb https://artifacts.elastic.co/packages/{major-version}/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-{major-version}.list -------------------------------------------------- endif::[] + @@ -123,9 +123,9 @@ your `/etc/yum.repos.d/` directory and add the following lines: ifeval::["{release-state}"=="prerelease"] ["source","sh",subs="attributes"] -------------------------------------------------- -[elastic-6.x-prerelease] -name=Elastic repository for 6.x prerelease packages -baseurl=https://artifacts.elastic.co/packages/6.x-prerelease/yum +[elastic-{major-version}-prerelease] +name=Elastic repository for {major-version} prerelease packages +baseurl=https://artifacts.elastic.co/packages/{major-version}-prerelease/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 @@ -136,9 +136,9 @@ endif::[] ifeval::["{release-state}"=="released"] ["source","sh",subs="attributes"] -------------------------------------------------- -[elastic-6.x] -name=Elastic repository for 6.x packages -baseurl=https://artifacts.elastic.co/packages/6.x/yum +[elastic-{major-version}] +name=Elastic repository for {major-version} packages +baseurl=https://artifacts.elastic.co/packages/{major-version}/yum gpgcheck=1 gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch enabled=1 diff --git a/libbeat/docs/version.asciidoc b/libbeat/docs/version.asciidoc index b10046ecb5d..840a3870fa3 100644 --- a/libbeat/docs/version.asciidoc +++ b/libbeat/docs/version.asciidoc @@ -6,3 +6,4 @@ :docker: 1.12 :docker-compose: 1.11 :branch: master +:major-version: 8.x From 0693a22b4c42b9f29478132bafd6f3bb962d13ba Mon Sep 17 00:00:00 2001 From: Andrew Kroh Date: Thu, 14 Mar 2019 21:33:44 -0400 Subject: [PATCH 212/332] Add script processor (#10850) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The script processor executes Javascript code to process an event. The processor uses a pure Go implementation of ECMAScript 5.1. This can be useful in situations where one of the other processors doesn’t provide the functionality you need to filter events. The processor can be configured by embedding Javascript in your configuration file or by pointing the processor at external file(s). See the included documentation for the full details. processors: - script: type: javascript code: > function process(event) { event.Tag("js"); } For observability it can add metrics with a histogram of the execution time and a counter for the number of exceptions that occur. There is an optional timeout configuration option to the processor that will timeout the execution by interrupting the JS code. Rather than have libbeat force the inclusion of the script processor in all Beats, make each Beat opt into the processor. It is imported by the log processing Beats (filebeat, journalbeat, and winlogbeat). Benchmark Results Here's a benchmark to get a rough idea of how long it takes to process an event in the processor's runtime I updated the benchmark to test each case with and without the timeout enabled. BenchmarkBeatEventV0/Put-12 2000000 707 ns/op BenchmarkBeatEventV0/timeout_Put-12 1000000 1510 ns/op BenchmarkBeatEventV0/Object_Put_Key-12 2000000 631 ns/op BenchmarkBeatEventV0/timeout_Object_Put_Key-12 1000000 1252 ns/op BenchmarkBeatEventV0/Get-12 2000000 750 ns/op BenchmarkBeatEventV0/timeout_Get-12 1000000 1495 ns/op BenchmarkBeatEventV0/Get_Undefined_Key-12 1000000 1039 ns/op BenchmarkBeatEventV0/timeout_Get_Undefined_Key-12 1000000 2108 ns/op BenchmarkBeatEventV0/fields_get_key-12 2000000 1044 ns/op BenchmarkBeatEventV0/timeout_fields_get_key-12 1000000 2051 ns/op BenchmarkBeatEventV0/Get_@metadata-12 2000000 750 ns/op BenchmarkBeatEventV0/timeout_Get_@metadata-12 1000000 1745 ns/op BenchmarkBeatEventV0/Put_@metadata-12 1000000 1048 ns/op BenchmarkBeatEventV0/timeout_Put_@metadata-12 500000 2623 ns/op BenchmarkBeatEventV0/Delete_@metadata-12 2000000 842 ns/op BenchmarkBeatEventV0/timeout_Delete_@metadata-12 1000000 1629 ns/op BenchmarkBeatEventV0/Cancel-12 2000000 759 ns/op BenchmarkBeatEventV0/timeout_Cancel-12 1000000 1329 ns/op BenchmarkBeatEventV0/Tag-12 1000000 1189 ns/op BenchmarkBeatEventV0/timeout_Tag-12 1000000 1973 ns/op BenchmarkBeatEventV0/AppendTo-12 2000000 644 ns/op BenchmarkBeatEventV0/timeout_AppendTo-12 1000000 1347 ns/op --- CHANGELOG.next.asciidoc | 1 + NOTICE.txt | 82 + filebeat/cmd/root.go | 3 + journalbeat/cmd/root.go | 3 + libbeat/common/config.go | 6 +- libbeat/docs/processors-using.asciidoc | 186 +- .../script/javascript/beatevent_v0.go | 299 + .../script/javascript/beatevent_v0_test.go | 248 + .../processors/script/javascript/config.go | 62 + .../script/javascript/javascript.go | 220 + .../processors/script/javascript/registry.go | 28 + .../processors/script/javascript/session.go | 256 + .../script/javascript/session_test.go | 186 + libbeat/processors/script/processor.go | 49 + vendor/github.com/dlclark/regexp2/ATTRIB | 133 + vendor/github.com/dlclark/regexp2/LICENSE | 21 + vendor/github.com/dlclark/regexp2/README.md | 67 + vendor/github.com/dlclark/regexp2/match.go | 347 + vendor/github.com/dlclark/regexp2/regexp.go | 357 + vendor/github.com/dlclark/regexp2/replace.go | 177 + vendor/github.com/dlclark/regexp2/runner.go | 1621 + .../dlclark/regexp2/syntax/charclass.go | 784 + .../github.com/dlclark/regexp2/syntax/code.go | 274 + .../dlclark/regexp2/syntax/escape.go | 94 + .../github.com/dlclark/regexp2/syntax/fuzz.go | 20 + .../dlclark/regexp2/syntax/parser.go | 2125 + .../dlclark/regexp2/syntax/prefix.go | 896 + .../dlclark/regexp2/syntax/replacerdata.go | 87 + .../github.com/dlclark/regexp2/syntax/tree.go | 654 + .../dlclark/regexp2/syntax/writer.go | 500 + vendor/github.com/dlclark/regexp2/testoutput1 | 7061 ++ vendor/github.com/dop251/goja/LICENSE | 15 + vendor/github.com/dop251/goja/README.md | 253 + vendor/github.com/dop251/goja/array.go | 486 + vendor/github.com/dop251/goja/array_sparse.go | 455 + .../dop251/goja/ast/README.markdown | 1068 + vendor/github.com/dop251/goja/ast/node.go | 500 + .../github.com/dop251/goja/builtin_array.go | 883 + .../github.com/dop251/goja/builtin_boolean.go | 50 + vendor/github.com/dop251/goja/builtin_date.go | 933 + .../github.com/dop251/goja/builtin_error.go | 62 + .../dop251/goja/builtin_function.go | 165 + .../github.com/dop251/goja/builtin_global.go | 422 + vendor/github.com/dop251/goja/builtin_json.go | 520 + vendor/github.com/dop251/goja/builtin_math.go | 192 + .../github.com/dop251/goja/builtin_number.go | 154 + .../github.com/dop251/goja/builtin_object.go | 412 + .../github.com/dop251/goja/builtin_regexp.go | 272 + .../github.com/dop251/goja/builtin_string.go | 687 + .../dop251/goja/builtin_typedarrays.go | 105 + vendor/github.com/dop251/goja/compiler.go | 461 + .../github.com/dop251/goja/compiler_expr.go | 1562 + .../github.com/dop251/goja/compiler_stmt.go | 793 + vendor/github.com/dop251/goja/date.go | 104 + vendor/github.com/dop251/goja/date_parser.go | 860 + vendor/github.com/dop251/goja/dtoa.go | 290 + .../dop251/goja/file/README.markdown | 110 + vendor/github.com/dop251/goja/file/file.go | 135 + vendor/github.com/dop251/goja/func.go | 240 + vendor/github.com/dop251/goja/ipow.go | 97 + vendor/github.com/dop251/goja/object.go | 625 + vendor/github.com/dop251/goja/object_args.go | 150 + vendor/github.com/dop251/goja/object_gomap.go | 221 + .../dop251/goja/object_gomap_reflect.go | 203 + .../dop251/goja/object_goreflect.go | 515 + .../github.com/dop251/goja/object_goslice.go | 303 + .../dop251/goja/object_goslice_reflect.go | 250 + vendor/github.com/dop251/goja/object_lazy.go | 200 + .../dop251/goja/parser/README.markdown | 184 + vendor/github.com/dop251/goja/parser/error.go | 175 + .../dop251/goja/parser/expression.go | 797 + vendor/github.com/dop251/goja/parser/lexer.go | 830 + .../github.com/dop251/goja/parser/parser.go | 272 + .../github.com/dop251/goja/parser/regexp.go | 403 + vendor/github.com/dop251/goja/parser/scope.go | 44 + .../dop251/goja/parser/statement.go | 715 + vendor/github.com/dop251/goja/regexp.go | 361 + vendor/github.com/dop251/goja/runtime.go | 1492 + vendor/github.com/dop251/goja/srcfile.go | 84 + vendor/github.com/dop251/goja/string.go | 226 + vendor/github.com/dop251/goja/string_ascii.go | 313 + .../github.com/dop251/goja/string_unicode.go | 319 + vendor/github.com/dop251/goja/token/Makefile | 2 + .../dop251/goja/token/README.markdown | 171 + vendor/github.com/dop251/goja/token/token.go | 116 + .../dop251/goja/token/token_const.go | 349 + vendor/github.com/dop251/goja/token/tokenfmt | 222 + vendor/github.com/dop251/goja/value.go | 857 + vendor/github.com/dop251/goja/vm.go | 2514 + .../github.com/go-sourcemap/sourcemap/LICENSE | 25 + .../go-sourcemap/sourcemap/Makefile | 4 + .../go-sourcemap/sourcemap/README.md | 43 + .../go-sourcemap/sourcemap/consumer.go | 233 + .../sourcemap/internal/base64vlq/base64vlq.go | 90 + .../go-sourcemap/sourcemap/mappings.go | 162 + vendor/golang.org/x/text/cases/cases.go | 162 + vendor/golang.org/x/text/cases/context.go | 376 + vendor/golang.org/x/text/cases/fold.go | 34 + vendor/golang.org/x/text/cases/icu.go | 61 + vendor/golang.org/x/text/cases/info.go | 82 + vendor/golang.org/x/text/cases/map.go | 816 + .../golang.org/x/text/cases/tables10.0.0.go | 2253 + vendor/golang.org/x/text/cases/tables9.0.0.go | 2213 + vendor/golang.org/x/text/cases/trieval.go | 215 + vendor/golang.org/x/text/collate/collate.go | 403 + vendor/golang.org/x/text/collate/index.go | 32 + vendor/golang.org/x/text/collate/option.go | 239 + vendor/golang.org/x/text/collate/sort.go | 81 + vendor/golang.org/x/text/collate/tables.go | 73789 ++++++++++++++++ .../x/text/internal/colltab/collelem.go | 371 + .../x/text/internal/colltab/colltab.go | 105 + .../x/text/internal/colltab/contract.go | 145 + .../x/text/internal/colltab/iter.go | 178 + .../x/text/internal/colltab/numeric.go | 236 + .../x/text/internal/colltab/table.go | 275 + .../x/text/internal/colltab/trie.go | 159 + .../x/text/internal/colltab/weighter.go | 31 + vendor/golang.org/x/text/internal/internal.go | 49 + vendor/golang.org/x/text/internal/match.go | 67 + vendor/vendor.json | 83 + winlogbeat/cmd/root.go | 7 +- 121 files changed, 125054 insertions(+), 11 deletions(-) create mode 100644 libbeat/processors/script/javascript/beatevent_v0.go create mode 100644 libbeat/processors/script/javascript/beatevent_v0_test.go create mode 100644 libbeat/processors/script/javascript/config.go create mode 100644 libbeat/processors/script/javascript/javascript.go create mode 100644 libbeat/processors/script/javascript/registry.go create mode 100644 libbeat/processors/script/javascript/session.go create mode 100644 libbeat/processors/script/javascript/session_test.go create mode 100644 libbeat/processors/script/processor.go create mode 100644 vendor/github.com/dlclark/regexp2/ATTRIB create mode 100644 vendor/github.com/dlclark/regexp2/LICENSE create mode 100644 vendor/github.com/dlclark/regexp2/README.md create mode 100644 vendor/github.com/dlclark/regexp2/match.go create mode 100644 vendor/github.com/dlclark/regexp2/regexp.go create mode 100644 vendor/github.com/dlclark/regexp2/replace.go create mode 100644 vendor/github.com/dlclark/regexp2/runner.go create mode 100644 vendor/github.com/dlclark/regexp2/syntax/charclass.go create mode 100644 vendor/github.com/dlclark/regexp2/syntax/code.go create mode 100644 vendor/github.com/dlclark/regexp2/syntax/escape.go create mode 100644 vendor/github.com/dlclark/regexp2/syntax/fuzz.go create mode 100644 vendor/github.com/dlclark/regexp2/syntax/parser.go create mode 100644 vendor/github.com/dlclark/regexp2/syntax/prefix.go create mode 100644 vendor/github.com/dlclark/regexp2/syntax/replacerdata.go create mode 100644 vendor/github.com/dlclark/regexp2/syntax/tree.go create mode 100644 vendor/github.com/dlclark/regexp2/syntax/writer.go create mode 100644 vendor/github.com/dlclark/regexp2/testoutput1 create mode 100644 vendor/github.com/dop251/goja/LICENSE create mode 100644 vendor/github.com/dop251/goja/README.md create mode 100644 vendor/github.com/dop251/goja/array.go create mode 100644 vendor/github.com/dop251/goja/array_sparse.go create mode 100644 vendor/github.com/dop251/goja/ast/README.markdown create mode 100644 vendor/github.com/dop251/goja/ast/node.go create mode 100644 vendor/github.com/dop251/goja/builtin_array.go create mode 100644 vendor/github.com/dop251/goja/builtin_boolean.go create mode 100644 vendor/github.com/dop251/goja/builtin_date.go create mode 100644 vendor/github.com/dop251/goja/builtin_error.go create mode 100644 vendor/github.com/dop251/goja/builtin_function.go create mode 100644 vendor/github.com/dop251/goja/builtin_global.go create mode 100644 vendor/github.com/dop251/goja/builtin_json.go create mode 100644 vendor/github.com/dop251/goja/builtin_math.go create mode 100644 vendor/github.com/dop251/goja/builtin_number.go create mode 100644 vendor/github.com/dop251/goja/builtin_object.go create mode 100644 vendor/github.com/dop251/goja/builtin_regexp.go create mode 100644 vendor/github.com/dop251/goja/builtin_string.go create mode 100644 vendor/github.com/dop251/goja/builtin_typedarrays.go create mode 100644 vendor/github.com/dop251/goja/compiler.go create mode 100644 vendor/github.com/dop251/goja/compiler_expr.go create mode 100644 vendor/github.com/dop251/goja/compiler_stmt.go create mode 100644 vendor/github.com/dop251/goja/date.go create mode 100644 vendor/github.com/dop251/goja/date_parser.go create mode 100644 vendor/github.com/dop251/goja/dtoa.go create mode 100644 vendor/github.com/dop251/goja/file/README.markdown create mode 100644 vendor/github.com/dop251/goja/file/file.go create mode 100644 vendor/github.com/dop251/goja/func.go create mode 100644 vendor/github.com/dop251/goja/ipow.go create mode 100644 vendor/github.com/dop251/goja/object.go create mode 100644 vendor/github.com/dop251/goja/object_args.go create mode 100644 vendor/github.com/dop251/goja/object_gomap.go create mode 100644 vendor/github.com/dop251/goja/object_gomap_reflect.go create mode 100644 vendor/github.com/dop251/goja/object_goreflect.go create mode 100644 vendor/github.com/dop251/goja/object_goslice.go create mode 100644 vendor/github.com/dop251/goja/object_goslice_reflect.go create mode 100644 vendor/github.com/dop251/goja/object_lazy.go create mode 100644 vendor/github.com/dop251/goja/parser/README.markdown create mode 100644 vendor/github.com/dop251/goja/parser/error.go create mode 100644 vendor/github.com/dop251/goja/parser/expression.go create mode 100644 vendor/github.com/dop251/goja/parser/lexer.go create mode 100644 vendor/github.com/dop251/goja/parser/parser.go create mode 100644 vendor/github.com/dop251/goja/parser/regexp.go create mode 100644 vendor/github.com/dop251/goja/parser/scope.go create mode 100644 vendor/github.com/dop251/goja/parser/statement.go create mode 100644 vendor/github.com/dop251/goja/regexp.go create mode 100644 vendor/github.com/dop251/goja/runtime.go create mode 100644 vendor/github.com/dop251/goja/srcfile.go create mode 100644 vendor/github.com/dop251/goja/string.go create mode 100644 vendor/github.com/dop251/goja/string_ascii.go create mode 100644 vendor/github.com/dop251/goja/string_unicode.go create mode 100644 vendor/github.com/dop251/goja/token/Makefile create mode 100644 vendor/github.com/dop251/goja/token/README.markdown create mode 100644 vendor/github.com/dop251/goja/token/token.go create mode 100644 vendor/github.com/dop251/goja/token/token_const.go create mode 100755 vendor/github.com/dop251/goja/token/tokenfmt create mode 100644 vendor/github.com/dop251/goja/value.go create mode 100644 vendor/github.com/dop251/goja/vm.go create mode 100644 vendor/github.com/go-sourcemap/sourcemap/LICENSE create mode 100644 vendor/github.com/go-sourcemap/sourcemap/Makefile create mode 100644 vendor/github.com/go-sourcemap/sourcemap/README.md create mode 100644 vendor/github.com/go-sourcemap/sourcemap/consumer.go create mode 100644 vendor/github.com/go-sourcemap/sourcemap/internal/base64vlq/base64vlq.go create mode 100644 vendor/github.com/go-sourcemap/sourcemap/mappings.go create mode 100644 vendor/golang.org/x/text/cases/cases.go create mode 100644 vendor/golang.org/x/text/cases/context.go create mode 100644 vendor/golang.org/x/text/cases/fold.go create mode 100644 vendor/golang.org/x/text/cases/icu.go create mode 100644 vendor/golang.org/x/text/cases/info.go create mode 100644 vendor/golang.org/x/text/cases/map.go create mode 100644 vendor/golang.org/x/text/cases/tables10.0.0.go create mode 100644 vendor/golang.org/x/text/cases/tables9.0.0.go create mode 100644 vendor/golang.org/x/text/cases/trieval.go create mode 100644 vendor/golang.org/x/text/collate/collate.go create mode 100644 vendor/golang.org/x/text/collate/index.go create mode 100644 vendor/golang.org/x/text/collate/option.go create mode 100644 vendor/golang.org/x/text/collate/sort.go create mode 100644 vendor/golang.org/x/text/collate/tables.go create mode 100644 vendor/golang.org/x/text/internal/colltab/collelem.go create mode 100644 vendor/golang.org/x/text/internal/colltab/colltab.go create mode 100644 vendor/golang.org/x/text/internal/colltab/contract.go create mode 100644 vendor/golang.org/x/text/internal/colltab/iter.go create mode 100644 vendor/golang.org/x/text/internal/colltab/numeric.go create mode 100644 vendor/golang.org/x/text/internal/colltab/table.go create mode 100644 vendor/golang.org/x/text/internal/colltab/trie.go create mode 100644 vendor/golang.org/x/text/internal/colltab/weighter.go create mode 100644 vendor/golang.org/x/text/internal/internal.go create mode 100644 vendor/golang.org/x/text/internal/match.go diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 68b4b39b566..bd7a850a489 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -242,6 +242,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Add output test to kafka output {pull}10834[10834] - Add ip fields to default_field in Elasticsearch template. {pull}11035[11035] - Gracefully shut down on SIGHUP {pull}10704[10704] +- Add `script` processor that supports using Javascript to process events. {pull}10850[10850] *Auditbeat* diff --git a/NOTICE.txt b/NOTICE.txt index dc031a017bb..b2c2b35f504 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -389,6 +389,34 @@ License type (autodetected): Apache-2.0 Apache License 2.0 +-------------------------------------------------------------------- +Dependency: github.com/dlclark/regexp2 +Revision: 7632a260cbaf5e7594fc1544a503456ecd0827f1 +License type (autodetected): MIT +./vendor/github.com/dlclark/regexp2/LICENSE: +-------------------------------------------------------------------- +The MIT License (MIT) + +Copyright (c) Doug Clark + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + -------------------------------------------------------------------- Dependency: github.com/docker/distribution Revision: 1e2f10eb65743fed02f573d31a4587de09afb20e @@ -454,6 +482,28 @@ License type (autodetected): Apache-2.0 Apache License 2.0 +-------------------------------------------------------------------- +Dependency: github.com/dop251/goja +Revision: dd2ac4456e2073f116d6b88741d513addabe0326 +License type (autodetected): MIT +./vendor/github.com/dop251/goja/LICENSE: +-------------------------------------------------------------------- +Copyright (c) 2016 Dmitry Panov + +Copyright (c) 2012 Robert Krimen + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + -------------------------------------------------------------------- Dependency: github.com/dustin/go-humanize Revision: 259d2a102b871d17f30e3cd9881a642961a1e486 @@ -905,6 +955,38 @@ The above copyright notice and this permission notice shall be included in all c THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +-------------------------------------------------------------------- +Dependency: github.com/go-sourcemap/sourcemap +Revision: b019cc30c1eaa584753491b0d8f8c1534bf1eb44 +License type (autodetected): BSD-2-Clause +./vendor/github.com/go-sourcemap/sourcemap/LICENSE: +-------------------------------------------------------------------- +Copyright (c) 2016 The github.com/go-sourcemap/sourcemap Contributors. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + -------------------------------------------------------------------- Dependency: github.com/go-sql-driver/mysql Version: v1.4.1 diff --git a/filebeat/cmd/root.go b/filebeat/cmd/root.go index de591dabebf..e153e11f9ee 100644 --- a/filebeat/cmd/root.go +++ b/filebeat/cmd/root.go @@ -26,6 +26,9 @@ import ( cmd "github.com/elastic/beats/libbeat/cmd" "github.com/elastic/beats/libbeat/cmd/instance" + + // Import the script processor. + _ "github.com/elastic/beats/libbeat/processors/script" ) // Name of this beat diff --git a/journalbeat/cmd/root.go b/journalbeat/cmd/root.go index f9b2d1b31ba..33e15ffaa42 100644 --- a/journalbeat/cmd/root.go +++ b/journalbeat/cmd/root.go @@ -22,6 +22,9 @@ import ( cmd "github.com/elastic/beats/libbeat/cmd" "github.com/elastic/beats/libbeat/cmd/instance" + + // Import the script processor. + _ "github.com/elastic/beats/libbeat/processors/script" ) // Name of this beat diff --git a/libbeat/common/config.go b/libbeat/common/config.go index 7cfca092245..4a9cb851466 100644 --- a/libbeat/common/config.go +++ b/libbeat/common/config.go @@ -146,7 +146,7 @@ func OverwriteConfigOpts(options []ucfg.Option) { func LoadFile(path string) (*Config, error) { if IsStrictPerms() { - if err := ownerHasExclusiveWritePerms(path); err != nil { + if err := OwnerHasExclusiveWritePerms(path); err != nil { return nil, err } } @@ -414,10 +414,10 @@ func filterDebugObject(c interface{}) { } } -// ownerHasExclusiveWritePerms asserts that the current user or root is the +// OwnerHasExclusiveWritePerms asserts that the current user or root is the // owner of the config file and that the config file is (at most) writable by // the owner or root (e.g. group and other cannot have write access). -func ownerHasExclusiveWritePerms(name string) error { +func OwnerHasExclusiveWritePerms(name string) error { if runtime.GOOS == "windows" { return nil } diff --git a/libbeat/docs/processors-using.asciidoc b/libbeat/docs/processors-using.asciidoc index 9e1103541f9..e196c391e04 100644 --- a/libbeat/docs/processors-using.asciidoc +++ b/libbeat/docs/processors-using.asciidoc @@ -195,19 +195,22 @@ endif::[] The supported processors are: * <> + * <> + * <> + * <> * <> + * <> * <> * <> + * <> + * <> * <> * <> * <> * <> - * <> - * <> - * <> - * <> - * <> - * <> +ifeval::[("{beatname_lc}"=="filebeat") or ("{beatname_lc}"=="winlogbeat") or ("{beatname_lc}"=="journalbeat")] + * <> +endif::[] [[conditions]] ==== Conditions @@ -1280,3 +1283,174 @@ set to `true`, this condition will be ignored. `restricted_fields`:: (Optional) By default, the `process.env` field is not output, to avoid leaking sensitive data. If `restricted_fields` is `true`, the field will be present in the output. + +ifeval::[("{beatname_lc}"=="filebeat") or ("{beatname_lc}"=="winlogbeat") or ("{beatname_lc}"=="journalbeat")] +[[processor-script]] +=== Script Processor + +experimental[] + +The script processor executes Javascript code to process an event. The processor +uses a pure Go implementation of ECMAScript 5.1 and has no external +dependencies. This can be useful in situations where one of the other processors +doesn't provide the functionality you need to filter events. + +The processor can be configured by embedding Javascript in your configuration +file or by pointing the processor at external file(s). + +[source,yaml] +---- +processors: +- script: + lang: javascript + id: my_filter + source: > + function process(event) { + event.Tag("js"); + } +---- + +This loads `filter.js` from disk. + +[source,yaml] +---- +processors: +- script: + lang: javascript + id: my_filter + file: ${path.config}/filter.js +---- + +Parameters can be passed to the script by adding `params` to the config. +This allows for a script to be made reusable. When using `params` the +code must define a `register(params)` function to receive the parameters. + +[source,yaml] +---- +processors: +- script: + lang: javascript + id: my_filter + params: + threshold: 15 + source: > + var params = {threshold: 42}; + function register(scriptParams) { + params = scriptParams; + } + function process(event) { + if (event.Get("severity") < params.threshold) { + event.Cancel(); + } + } +---- + +If the script defines a `test()` function it will be invoked when the processor +is loaded. Any exceptions thrown will cause the processor to fail to load. This +can be used to make assertions about the behavior of the script. + +[source,javascript] +---- +function process(event) { + if (event.Get("event.code") === 1102) { + event.Put("event.action", "cleared"); + } +} + +function test() { + var event = process(new Event({event: {code: 1102})); + if (event.Get("event.action") !== "cleared") { + throw "expected event.action === cleared"; + } +} +---- + +[float] +==== Configuration options + +The `script` processor has the following configuration settings: + +`lang`:: This field is required and its value must be `javascript`. + +`tag`:: This is an optional identifier that is added to log messages. If defined +it enables metrics logging for this instance of the processor. The metrics +include the number of exceptions and a histogram of the execution times for +the `process` function. + +`source`:: Inline Javascript source code. + +`file`:: Path to a script file to load. Relative paths are interpreted as +relative to the `path.config` directory. Globs are expanded. + +`files`:: List of script files to load. The scripts are concatenated together. +Relative paths are interpreted as relative to the `path.config` directory. +And globs are expanded. + +`params`:: A dictionary of parameters that are passed to the `register` of the +script. + +`tag_on_exception`:: Tag to add to events in case the Javascript code causes an +exception while processing an event. Defaults to `_js_exception`. + +`timeout`:: This sets an execution timeout for the `process` function. When +the `process` function takes longer than the `timeout` period the function +is interrupted. You can set this option to prevent a script from running for +too long (like preventing an infinite `while` loop). By default there is no +timeout. + +[float] +==== Event API + +The `Event` object passed to the `process` method has the following API. + +[frame="topbot",options="header"] +|=== +|Method |Description + +|`Get(string)` +|Get a value from the event (either a scalar or an object). If the key does not +exist `null` is returned. If no key is provided then an object containing all +fields is returned. + +*Example*: `var value = event.Get(key);` + +|`Put(string, value)` +|Put a value into the event. If the key was already set then the +previous value is returned. It throws an exception if the key cannot be set +because one of the intermediate values is not an object. + +*Example*: `var old = event.Put(key, value);` + +|`Rename(string, string)` +|Rename a key in the event. The target key must not exist. It +returns true if the source key was successfully renamed to the target key. + +*Example*: `var success = event.Rename("source", "target");` + +|`Delete(string)` +|Delete a field from the event. It returns true on success. + +*Example*: `var deleted = event.Delete("user.email");` + +|`Cancel()` +|Flag the event as cancelled which causes the processor to drop +event. + +*Example*: `event.Cancel(); return;` + +|`Tag(string)` +|Append a tag to the `tags` field if the tag does not already +exist. Throws an exception if `tags` exists and is not a string or a list of +strings. + +*Example*: `event.Tag("user_event");` + +|`AppendTo(string, string)` +|`AppendTo` is a specialized `Put` method that converts the existing value to an +array and appends the value if it does not already exist. If there is an +existing value that's not a string or array of strings then an exception is +thrown. + +*Example*: `event.AppendTo("error.message", "invalid file hash");` +|=== +endif::[] diff --git a/libbeat/processors/script/javascript/beatevent_v0.go b/libbeat/processors/script/javascript/beatevent_v0.go new file mode 100644 index 00000000000..c97ba95c8d5 --- /dev/null +++ b/libbeat/processors/script/javascript/beatevent_v0.go @@ -0,0 +1,299 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package javascript + +import ( + "github.com/dop251/goja" + "github.com/pkg/errors" + + "github.com/elastic/beats/libbeat/beat" + "github.com/elastic/beats/libbeat/common" +) + +// IMPORTANT: +// This is the user facing API within Javascript processors. Do not make +// breaking changes to the JS methods. If you must make breaking changes then +// create a new version and require the user to specify an API version in their +// configuration (e.g. api_version: 2). + +type beatEventV0 struct { + vm *goja.Runtime + obj *goja.Object + inner *beat.Event + cancelled bool +} + +func newBeatEventV0(s Session) (Event, error) { + e := &beatEventV0{ + vm: s.Runtime(), + obj: s.Runtime().NewObject(), + } + e.init() + return e, nil +} + +func newBeatEventV0Constructor(s Session) func(call goja.ConstructorCall) *goja.Object { + return func(call goja.ConstructorCall) *goja.Object { + if len(call.Arguments) != 1 { + panic(errors.New("Event constructor requires one argument")) + } + + a0 := call.Argument(0).Export() + + var fields common.MapStr + switch v := a0.(type) { + case map[string]interface{}: + fields = v + case common.MapStr: + fields = v + default: + panic(errors.Errorf("Event constructor requires a "+ + "map[string]interface{} argument but got %T", a0)) + } + + evt := &beatEventV0{ + vm: s.Runtime(), + obj: call.This, + } + evt.init() + evt.reset(&beat.Event{Fields: fields}) + return nil + } +} + +func (e *beatEventV0) init() { + e.obj.Set("Get", e.get) + e.obj.Set("Put", e.put) + e.obj.Set("Rename", e.rename) + e.obj.Set("Delete", e.delete) + e.obj.Set("Cancel", e.cancel) + e.obj.Set("Tag", e.tag) + e.obj.Set("AppendTo", e.appendTo) +} + +// reset the event so that it can be reused to wrap another event. +func (e *beatEventV0) reset(b *beat.Event) error { + e.inner = b + e.cancelled = false + return e.obj.Set("fields", e.vm.ToValue(e.inner.Fields)) +} + +// Wrapped returns the wrapped beat.Event. +func (e *beatEventV0) Wrapped() *beat.Event { + return e.inner +} + +// JSObject returns the goja.Value that represents the event within the +// Javascript runtime. +func (e *beatEventV0) JSObject() goja.Value { + return e.obj +} + +// get returns the specified field. If the field does not exist then null is +// returned. If no field is specified then it returns entire object. +// +// // javascript +// var dataset = evt.Get("event.dataset"); +// +func (e *beatEventV0) get(call goja.FunctionCall) goja.Value { + a0 := call.Argument(0) + if goja.IsUndefined(a0) { + // event.Get() is the same as event.fields (but slower). + return e.vm.ToValue(e.inner.Fields) + } + + v, err := e.inner.GetValue(a0.String()) + if err != nil { + return goja.Null() + } + + return e.vm.ToValue(v) +} + +// put writes a value to the event. If there was a previous value assigned to +// the given field then the old object is returned. It throws an exception if +// you try to write a to a field where one of the intermediate values is not +// an object. +// +// // javascript +// evt.Put("event.action", "process-created"); +// evt.Put("geo.location", {"lon": -73.614830, "lat": 45.505918}); +// +func (e *beatEventV0) put(call goja.FunctionCall) goja.Value { + if len(call.Arguments) != 2 { + panic(errors.New("Put requires two arguments (key and value)")) + } + + key := call.Argument(0).String() + value := call.Argument(1).Export() + + old, err := e.inner.PutValue(key, value) + if err != nil { + panic(err) + } + return e.vm.ToValue(old) +} + +// rename moves a value from one key to another. It returns true on success. +// +// // javascript +// evt.Rename("src_ip", "source.ip"); +// +func (e *beatEventV0) rename(call goja.FunctionCall) goja.Value { + if len(call.Arguments) != 2 { + panic(errors.New("Rename requires two arguments (from and to)")) + } + + from := call.Argument(0).String() + to := call.Argument(1).String() + + if _, err := e.inner.GetValue(to); err == nil { + // Fields cannot be overwritten. Either the target field has to be + // deleted or renamed. + return e.vm.ToValue(false) + } + + fromValue, err := e.inner.GetValue(from) + if err != nil { + return e.vm.ToValue(false) + } + + // Deletion must happen first to support cases where a becomes a.b. + if err = e.inner.Delete(from); err != nil { + return e.vm.ToValue(false) + } + + if _, err = e.inner.PutValue(to, fromValue); err != nil { + // Undo + e.inner.PutValue(from, fromValue) + return e.vm.ToValue(false) + } + + return e.vm.ToValue(true) +} + +// delete deletes a key from the object. If returns true on success. +// +// // javascript +// evt.Delete("http.request.headers.authorization"); +// +func (e *beatEventV0) delete(call goja.FunctionCall) goja.Value { + if len(call.Arguments) != 1 { + panic(errors.New("Delete requires one argument")) + } + + key := call.Argument(0).String() + + if err := e.inner.Delete(key); err != nil { + return e.vm.ToValue(false) + } + return e.vm.ToValue(true) +} + +// IsCancelled returns true if the event has been canceled. +func (e *beatEventV0) IsCancelled() bool { + return e.cancelled +} + +// Cancel marks the event as cancelled. When the processor returns the event +// will be dropped. +func (e *beatEventV0) Cancel() { + e.cancelled = true +} + +// cancel marks the event as cancelled. +func (e *beatEventV0) cancel(call goja.FunctionCall) goja.Value { + e.cancelled = true + return goja.Undefined() +} + +// tag adds a new value to the tags field if it is not already contained in the +// set. +// +// // javascript +// evt.Tag("_parse_failure"); +// +func (e *beatEventV0) tag(call goja.FunctionCall) goja.Value { + if len(call.Arguments) != 1 { + panic(errors.New("Tag requires one argument")) + } + + tag := call.Argument(0).String() + + if err := appendString(e.inner.Fields, "tags", tag, true); err != nil { + panic(err) + } + return goja.Undefined() +} + +// appendTo is a specialized Put method that converts any existing value to +// an array and appends the value if it does not already exist. If there is an +// existing value that's not a string or array of strings then an exception is +// thrown. +// +// // javascript +// evt.AppendTo("error.message", "invalid file hash"); +// +func (e *beatEventV0) appendTo(call goja.FunctionCall) goja.Value { + if len(call.Arguments) != 2 { + panic(errors.New("AppendTo requires two arguments (field and value)")) + } + + field := call.Argument(0).String() + value := call.Argument(1).String() + + if err := appendString(e.inner.Fields, field, value, false); err != nil { + panic(err) + } + return goja.Undefined() +} + +func appendString(m common.MapStr, field, value string, alwaysArray bool) error { + list, _ := m.GetValue(field) + switch v := list.(type) { + case nil: + if alwaysArray { + m.Put(field, []string{value}) + } else { + m.Put(field, value) + } + case string: + if value != v { + m.Put(field, []string{v, value}) + } + case []string: + for _, existingTag := range v { + if value == existingTag { + // Duplicate + return nil + } + } + m.Put(field, append(v, value)) + case []interface{}: + for _, existingTag := range v { + if value == existingTag { + // Duplicate + return nil + } + } + m.Put(field, append(v, value)) + default: + return errors.Errorf("unexpected type %T found for %v field", list, field) + } + return nil +} diff --git a/libbeat/processors/script/javascript/beatevent_v0_test.go b/libbeat/processors/script/javascript/beatevent_v0_test.go new file mode 100644 index 00000000000..983745e5708 --- /dev/null +++ b/libbeat/processors/script/javascript/beatevent_v0_test.go @@ -0,0 +1,248 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package javascript + +import ( + "fmt" + "runtime" + "strings" + "testing" + "time" + + "github.com/stretchr/testify/assert" + + "github.com/elastic/beats/libbeat/beat" + "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/monitoring" +) + +const ( + header = `function process(evt) {` + footer = `}` +) + +type testCase struct { + name string + source string + assert func(t testing.TB, evt *beat.Event, err error) +} + +var eventV0Tests = []testCase{ + { + name: "Put", + source: `evt.Put("hello", "world");`, + assert: func(t testing.TB, evt *beat.Event, err error) { + v, _ := evt.GetValue("hello") + assert.Equal(t, "world", v) + }, + }, + { + name: "Object Put Key", + source: `evt.fields["hello"] = "world";`, + assert: func(t testing.TB, evt *beat.Event, err error) { + v, _ := evt.GetValue("hello") + assert.Equal(t, "world", v) + }, + }, + { + name: "Get", + source: ` + var ip = evt.Get("source.ip"); + + if ("192.0.2.1" !== ip) { + throw "failed to get IP"; + }`, + }, + { + name: "Get Object", + source: ` + var source = evt.Get("source"); + + if ("192.0.2.1" !== source.ip) { + throw "failed to get IP"; + }`, + }, + { + name: "Get Undefined Key", + source: ` + var ip = evt.Get().source.ip; + + if ("192.0.2.1" !== ip) { + throw "failed to get IP"; + }`, + }, + { + name: "fields get key", + source: ` + var ip = evt.fields.source.ip; + + if ("192.0.2.1" !== ip) { + throw "failed to get IP"; + }`, + }, + { + name: "Delete", + source: `if (!evt.Delete("source.ip")) { throw "delete failed"; }`, + assert: func(t testing.TB, evt *beat.Event, err error) { + ip, _ := evt.GetValue("source.ip") + assert.Nil(t, ip) + }, + }, + { + name: "Rename", + source: `if (!evt.Rename("source", "destination")) { throw "rename failed"; }`, + assert: func(t testing.TB, evt *beat.Event, err error) { + ip, _ := evt.GetValue("destination.ip") + assert.Equal(t, "192.0.2.1", ip) + }, + }, + { + name: "Get @metadata", + source: `if (evt.Get("@metadata.pipeline") !== "beat-1.2.3-module") { + throw "failed to get @metadata"; + }`, + }, + { + name: "Put @metadata", + source: `evt.Put("@metadata.foo", "bar");`, + assert: func(t testing.TB, evt *beat.Event, err error) { + assert.Equal(t, "bar", evt.Meta["foo"]) + }, + }, + { + name: "Delete @metadata", + source: `evt.Delete("@metadata.pipeline");`, + assert: func(t testing.TB, evt *beat.Event, err error) { + assert.Nil(t, evt.Meta["pipeline"]) + }, + }, + { + name: "Cancel", + source: `evt.Cancel();`, + assert: func(t testing.TB, evt *beat.Event, err error) { + assert.NoError(t, err) + assert.Nil(t, evt) + }, + }, + { + name: "Tag", + source: `evt.Tag("foo"); evt.Tag("bar"); evt.Tag("foo");`, + assert: func(t testing.TB, evt *beat.Event, err error) { + if assert.NoError(t, err) { + assert.Equal(t, []string{"foo", "bar"}, evt.Fields["tags"]) + } + }, + }, + { + name: "AppendTo", + source: `evt.AppendTo("source.ip", "10.0.0.1");`, + assert: func(t testing.TB, evt *beat.Event, err error) { + if assert.NoError(t, err) { + srcIP, _ := evt.GetValue("source.ip") + assert.Equal(t, []string{"192.0.2.1", "10.0.0.1"}, srcIP) + } + }, + }, +} + +func testEvent() *beat.Event { + return &beat.Event{ + Meta: common.MapStr{ + "pipeline": "beat-1.2.3-module", + }, + Fields: common.MapStr{ + "source": common.MapStr{ + "ip": "192.0.2.1", + }, + }, + } +} + +func TestBeatEventV0(t *testing.T) { + for _, tc := range eventV0Tests { + t.Run(tc.name, func(t *testing.T) { + reg := monitoring.NewRegistry() + + p, err := NewFromConfig(Config{Tag: tc.name, Source: header + tc.source + footer}, reg) + if err != nil { + t.Fatal(err) + } + + evt, err := p.Run(testEvent()) + if tc.assert != nil { + tc.assert(t, evt, err) + } else { + assert.NoError(t, err) + assert.NotNil(t, evt) + } + + // Validate that the processor's metrics exist. + var found bool + prefix := fmt.Sprintf("processor.javascript.%s.histogram.process_time", tc.name) + reg.Do(monitoring.Full, func(name string, v interface{}) { + if !found && strings.HasPrefix(name, prefix) { + found = true + } + }) + assert.True(t, found, "metrics were not found in registry") + }) + } + +} + +func BenchmarkBeatEventV0(b *testing.B) { + goroutinesAtStart := runtime.NumGoroutine() + defer func() { + // Sanity check that timers are not leaking goroutines. + goroutinesAtEnd := runtime.NumGoroutine() + if goroutinesAtEnd != goroutinesAtStart { + b.Errorf("Suspected goroutine leak: atStart=%d, atEnd=%d", + goroutinesAtStart, goroutinesAtEnd) + } + }() + + benchTest := func(tc testCase, timeout time.Duration) func(b *testing.B) { + return func(b *testing.B) { + p, err := NewFromConfig(Config{Source: header + tc.source + footer, Timeout: timeout}, nil) + if err != nil { + b.Fatal(err) + } + + event := testEvent() + b.ResetTimer() + for i := 0; i < b.N; i++ { + _, err := p.Run(event) + if err != nil { + b.Fatal(err) + } + } + } + } + for _, tc := range eventV0Tests { + switch tc.name { + case "Delete", "Rename": + // Skip these tests for the benchmark because they affect the state + // of the event in way that prevents them from being run more than + // one time. + continue + } + + b.Run(tc.name, benchTest(tc, 0)) + b.Run("timeout_"+tc.name, benchTest(tc, 500*time.Millisecond)) + } +} diff --git a/libbeat/processors/script/javascript/config.go b/libbeat/processors/script/javascript/config.go new file mode 100644 index 00000000000..16aae135242 --- /dev/null +++ b/libbeat/processors/script/javascript/config.go @@ -0,0 +1,62 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package javascript + +import ( + "time" + + "github.com/pkg/errors" +) + +// Config defines the Javascript source files to use for the processor. +type Config struct { + Tag string `config:"tag"` // Processor ID for debug and metrics. + Source string `config:"source"` // Inline script to execute. + File string `config:"file"` // Source file. + Files []string `config:"files"` // Multiple source files. + Params map[string]interface{} `config:"params"` // Parameters to pass to script. + Timeout time.Duration `config:"timeout" validate:"min=0"` // Execution timeout. + TagOnException string `config:"tag_on_exception"` // Tag to add to events when an exception happens. +} + +// Validate returns an error if one (and only one) option is not set. +func (c Config) Validate() error { + numConfigured := 0 + for _, set := range []bool{c.Source != "", c.File != "", len(c.Files) > 0} { + if set { + numConfigured++ + } + } + + switch { + case numConfigured == 0: + return errors.Errorf("javascript must be defined via 'file', " + + "'files', or inline as 'source'") + case numConfigured > 1: + return errors.Errorf("javascript can be defined in only one of " + + "'file', 'files', or inline as 'source'") + } + + return nil +} + +func defaultConfig() Config { + return Config{ + TagOnException: "_js_exception", + } +} diff --git a/libbeat/processors/script/javascript/javascript.go b/libbeat/processors/script/javascript/javascript.go new file mode 100644 index 00000000000..cc1dbd034b1 --- /dev/null +++ b/libbeat/processors/script/javascript/javascript.go @@ -0,0 +1,220 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package javascript + +import ( + "bytes" + "io" + "os" + "path/filepath" + "runtime" + "strings" + "time" + + "github.com/pkg/errors" + "github.com/rcrowley/go-metrics" + + "github.com/elastic/beats/libbeat/beat" + "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/monitoring" + "github.com/elastic/beats/libbeat/monitoring/adapter" + "github.com/elastic/beats/libbeat/paths" + "github.com/elastic/beats/libbeat/processors" +) + +type jsProcessor struct { + Config + s *session + sourceFile string + stats *processorStats +} + +// New constructs a new Javascript processor. +func New(c *common.Config) (processors.Processor, error) { + conf := defaultConfig() + if err := c.Unpack(&conf); err != nil { + return nil, err + } + + return NewFromConfig(conf, monitoring.Default) +} + +// NewFromConfig constructs a new Javascript processor from the given config +// object. It loads the sources, compiles them, and validates the entry point. +func NewFromConfig(c Config, reg *monitoring.Registry) (processors.Processor, error) { + err := c.Validate() + if err != nil { + return nil, err + } + + var sourceFile string + var sourceCode []byte + + switch { + case c.Source != "": + sourceFile = "inline.js" + sourceCode = []byte(c.Source) + case c.File != "": + sourceFile, sourceCode, err = loadSources(c.File) + case len(c.Files) > 0: + sourceFile, sourceCode, err = loadSources(c.Files...) + } + if err != nil { + return nil, annotateError(c.Tag, err) + } + + s, err := newSession(sourceFile, sourceCode, c) + if err != nil { + return nil, annotateError(c.Tag, err) + } + + return &jsProcessor{ + Config: c, + s: s, + sourceFile: sourceFile, + stats: getStats(c.Tag, reg), + }, nil +} + +// loadSources loads javascript source from files. +func loadSources(files ...string) (string, []byte, error) { + var sources []string + buf := new(bytes.Buffer) + + readFile := func(path string) error { + if common.IsStrictPerms() { + if err := common.OwnerHasExclusiveWritePerms(path); err != nil { + return err + } + } + + f, err := os.Open(path) + if err != nil { + return errors.Wrapf(err, "failed to open file %v", path) + } + defer f.Close() + + if _, err = io.Copy(buf, f); err != nil { + return errors.Wrapf(err, "failed to read file %v", path) + } + return nil + } + + for _, filePath := range files { + filePath = paths.Resolve(paths.Config, filePath) + + if hasMeta(filePath) { + matches, err := filepath.Glob(filePath) + if err != nil { + return "", nil, err + } + sources = append(sources, matches...) + } else { + sources = append(sources, filePath) + } + } + + if len(sources) == 0 { + return "", nil, errors.Errorf("no sources were found in %v", + strings.Join(files, ", ")) + } + + for _, name := range sources { + if err := readFile(name); err != nil { + return "", nil, err + } + } + + return strings.Join(sources, ";"), buf.Bytes(), nil +} + +func annotateError(id string, err error) error { + if err == nil { + return nil + } + if id != "" { + return errors.Wrapf(err, "failed in processor.javascript with id=%v", id) + } + return errors.Wrap(err, "failed in processor.javascript") +} + +// Run executes the processor on the given it event. It invokes the +// process function defined in the Javascript source. +func (p *jsProcessor) Run(event *beat.Event) (*beat.Event, error) { + run := p.s.runProcessFunc + if p.stats != nil { + run = p.runWithStats + } + rtn, err := run(event) + return rtn, annotateError(p.Tag, err) +} + +func (p *jsProcessor) runWithStats(event *beat.Event) (*beat.Event, error) { + start := time.Now() + event, err := p.s.runProcessFunc(event) + elapsed := time.Since(start) + + p.stats.processTime.Update(int64(elapsed)) + if err != nil { + p.stats.exceptions.Inc() + } + return event, err +} + +func (p *jsProcessor) String() string { + return "script=[type=javascript, id=" + p.Tag + ", sources=" + p.sourceFile + "]" +} + +// hasMeta reports whether path contains any of the magic characters +// recognized by Match/Glob. +func hasMeta(path string) bool { + magicChars := `*?[` + if runtime.GOOS != "windows" { + magicChars = `*?[\` + } + return strings.ContainsAny(path, magicChars) +} + +type processorStats struct { + exceptions *monitoring.Int + processTime metrics.Sample +} + +func getStats(id string, reg *monitoring.Registry) *processorStats { + if id == "" || reg == nil { + return nil + } + + namespace := logName + "." + id + processorReg := reg.GetRegistry(namespace) + if processorReg != nil { + // If a module is reloaded then the namespace could already exist. + processorReg.Clear() + } else { + processorReg = reg.NewRegistry(namespace, monitoring.DoNotReport) + } + + stats := &processorStats{ + exceptions: monitoring.NewInt(processorReg, "exceptions"), + processTime: metrics.NewUniformSample(2048), + } + adapter.NewGoMetrics(processorReg, "histogram", adapter.Accept). + Register("process_time", metrics.NewHistogram(stats.processTime)) + + return stats +} diff --git a/libbeat/processors/script/javascript/registry.go b/libbeat/processors/script/javascript/registry.go new file mode 100644 index 00000000000..12a51e30609 --- /dev/null +++ b/libbeat/processors/script/javascript/registry.go @@ -0,0 +1,28 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package javascript + +var sessionHooks = map[string]SessionHook{} + +// SessionHook is a function that get invoked when each new Session is created. +type SessionHook func(s Session) + +// AddSessionHook registers a SessionHook that gets invoked for each new Session. +func AddSessionHook(name string, mod SessionHook) { + sessionHooks[name] = mod +} diff --git a/libbeat/processors/script/javascript/session.go b/libbeat/processors/script/javascript/session.go new file mode 100644 index 00000000000..7d92ef86b8c --- /dev/null +++ b/libbeat/processors/script/javascript/session.go @@ -0,0 +1,256 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package javascript + +import ( + "reflect" + "time" + + "github.com/dop251/goja" + "github.com/pkg/errors" + + "github.com/elastic/beats/libbeat/beat" + "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/logp" +) + +const ( + logName = "processor.javascript" + + registerFunction = "register" + entryPointFunction = "process" + testFunction = "test" + + timeoutError = "javascript processor execution timeout" +) + +// Session is an instance of the processor. +type Session interface { + // Runtime returns the Javascript runtime used for this session. + Runtime() *goja.Runtime + + // Event returns a pointer to the current event being processed. + Event() Event +} + +// Event is the event being processed by the processor. +type Event interface { + // Cancel marks the event as cancelled such that it will be dropped. + Cancel() + + // IsCancelled returns true if Cancel has been invoked. + IsCancelled() bool + + // Wrapped returns the underlying beat.Event being wrapped. The wrapped + // event is replaced each time a new event is processed. + Wrapped() *beat.Event + + // JSObject returns the Value that represents this object within the + // runtime. + JSObject() goja.Value + + // reset replaces the inner beat.Event and resets the state. + reset(*beat.Event) error +} + +// session is a javascript runtime environment used throughout the life of +// the processor instance. +type session struct { + vm *goja.Runtime + log *logp.Logger + makeEvent func(Session) (Event, error) + evt Event + processFunc goja.Callable + timeout time.Duration + tagOnException string +} + +func newSession( + name string, + src []byte, + conf Config, +) (*session, error) { + // Validate processor source code. + p, err := goja.Compile(name, string(src), true) + if err != nil { + return nil, err + } + + // Setup JS runtime. + s := &session{ + vm: goja.New(), + log: logp.NewLogger(logName), + makeEvent: newBeatEventV0, + timeout: conf.Timeout, + tagOnException: conf.TagOnException, + } + if conf.Tag != "" { + s.log = s.log.With("instance_id", conf.Tag) + } + + // Register modules. + for name, registerModule := range sessionHooks { + s.log.Debugf("Registering module %v with the Javascript runtime.", name) + registerModule(s) + } + + // Register constructor for 'new Event' to enable test() to create events. + s.vm.Set("Event", newBeatEventV0Constructor(s)) + + _, err = s.vm.RunProgram(p) + if err != nil { + return nil, err + } + + if err = s.setProcessFunction(); err != nil { + return nil, err + } + + if len(conf.Params) > 0 { + if err = s.registerScriptParams(conf.Params); err != nil { + return nil, err + } + } + + if err = s.executeTestFunction(); err != nil { + return nil, err + } + + return s, nil +} + +// setProcessFunction validates that the process() function exists and stores +// the handle. +func (s *session) setProcessFunction() error { + processFunc := s.vm.Get(entryPointFunction) + if processFunc == nil { + return errors.New("process function not found") + } + if processFunc.ExportType().Kind() != reflect.Func { + return errors.New("process is not a function") + } + if err := s.vm.ExportTo(processFunc, &s.processFunc); err != nil { + return errors.Wrap(err, "failed to export process function") + } + return nil +} + +// registerScriptParams calls the register() function and passes the params. +func (s *session) registerScriptParams(params map[string]interface{}) error { + registerFunc := s.vm.Get(registerFunction) + if registerFunc == nil { + return errors.New("params were provided but no register function was found") + } + if registerFunc.ExportType().Kind() != reflect.Func { + return errors.New("register is not a function") + } + var register goja.Callable + if err := s.vm.ExportTo(registerFunc, ®ister); err != nil { + return errors.Wrap(err, "failed to export register function") + } + if _, err := register(goja.Undefined(), s.Runtime().ToValue(params)); err != nil { + return errors.Wrap(err, "failed to register script_params") + } + s.log.Debug("Registered params with processor") + return nil +} + +// executeTestFunction executes the test() function if it exists. Any exceptions +// will cause the processor to fail to load. +func (s *session) executeTestFunction() error { + if testFunc := s.vm.Get(testFunction); testFunc != nil { + if testFunc.ExportType().Kind() != reflect.Func { + return errors.New("test is not a function") + } + var test goja.Callable + if err := s.vm.ExportTo(testFunc, &test); err != nil { + return errors.Wrap(err, "failed to export test function") + } + _, err := test(goja.Undefined(), nil) + if err != nil { + return errors.Wrap(err, "failed in test() function") + } + s.log.Debugf("Successful test() execution for processor.") + } + return nil +} + +// setEvent replaces the beat event handle present in the runtime. +func (s *session) setEvent(b *beat.Event) error { + if s.evt == nil { + var err error + s.evt, err = s.makeEvent(s) + if err != nil { + return err + } + } + + return s.evt.reset(b) +} + +// runProcessFunc executes process() from the JS script. +func (s *session) runProcessFunc(b *beat.Event) (*beat.Event, error) { + var err error + if err = s.setEvent(b); err != nil { + // Always return the event even if there was an error. + return b, err + } + + // Interrupt the JS code if execution exceeds timeout. + if s.timeout > 0 { + t := time.AfterFunc(s.timeout, func() { + s.vm.Interrupt(timeoutError) + }) + defer t.Stop() + } + + if _, err = s.processFunc(goja.Undefined(), s.evt.JSObject()); err != nil { + if s.tagOnException != "" { + common.AddTags(b.Fields, []string{s.tagOnException}) + } + appendString(b.Fields, "error.message", err.Error(), false) + return b, errors.Wrap(err, "failed in process function") + } + + if s.evt.IsCancelled() { + return nil, nil + } + return b, nil +} + +// Runtime returns the Javascript runtime used for this session. +func (s *session) Runtime() *goja.Runtime { + return s.vm +} + +// Event returns a pointer to the current event being processed. +func (s *session) Event() Event { + return s.evt +} + +func init() { + // Register common.MapStr as being a simple map[string]interface{} for + // treatment within the JS VM. + AddSessionHook("_type_mapstr", func(s Session) { + s.Runtime().RegisterSimpleMapType(reflect.TypeOf(common.MapStr(nil)), + func(i interface{}) map[string]interface{} { + return map[string]interface{}(i.(common.MapStr)) + }, + ) + }) +} diff --git a/libbeat/processors/script/javascript/session_test.go b/libbeat/processors/script/javascript/session_test.go new file mode 100644 index 00000000000..63d16d923f1 --- /dev/null +++ b/libbeat/processors/script/javascript/session_test.go @@ -0,0 +1,186 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package javascript + +import ( + "testing" + "time" + + "github.com/elastic/beats/libbeat/beat" + "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/logp" + + "github.com/stretchr/testify/assert" +) + +func TestSessionTagOnException(t *testing.T) { + const script = `throw "this tags the event";` + + p, err := NewFromConfig(Config{ + Source: header + script + footer, + TagOnException: defaultConfig().TagOnException, + }, nil) + if err != nil { + t.Fatal(err) + } + + evt, err := p.Run(testEvent()) + assert.Error(t, err) + + tags, _ := evt.GetValue("tags") + assert.Equal(t, []string{"_js_exception"}, tags) +} + +func TestSessionScriptParams(t *testing.T) { + t.Run("register method is optional", func(t *testing.T) { + _, err := NewFromConfig(Config{ + Source: header + footer, + }, nil) + if err != nil { + t.Fatal(err) + } + }) + + t.Run("register required for params", func(t *testing.T) { + _, err := NewFromConfig(Config{ + Source: header + footer, + Params: map[string]interface{}{ + "threshold": 42, + }, + }, nil) + if assert.Error(t, err) { + assert.Contains(t, err.Error(), "params were provided") + } + }) + + t.Run("register params", func(t *testing.T) { + const script = ` + function register(params) { + if (params["threshold"] !== 42) { + throw "invalid threshold"; + } + } + + function process(event) {} + ` + _, err := NewFromConfig(Config{ + Source: script, + Params: map[string]interface{}{ + "threshold": 42, + }, + }, nil) + assert.NoError(t, err) + }) +} + +func TestSessionTestFunction(t *testing.T) { + const script = ` + var fail = false; + + function register(params) { + fail = params["fail"]; + } + + function process(event) { + if (fail) { + throw "intentional failure"; + } + event.Put("hello", "world"); + return event; + } + + function test() { + var event = process(new Event({"hello": "earth"})); + + if (event.fields.hello !== "world") { + throw "invalid hello world"; + } + } + ` + + t.Run("test method is optional", func(t *testing.T) { + _, err := NewFromConfig(Config{ + Source: header + footer, + }, nil) + if err != nil { + t.Fatal(err) + } + }) + + t.Run("test success", func(t *testing.T) { + _, err := NewFromConfig(Config{ + Source: script, + Params: map[string]interface{}{ + "fail": false, + }, + }, nil) + assert.NoError(t, err) + }) + + t.Run("test failure", func(t *testing.T) { + _, err := NewFromConfig(Config{ + Source: script, + Params: map[string]interface{}{ + "fail": true, + }, + }, nil) + assert.Error(t, err) + }) +} + +func TestSessionTimeout(t *testing.T) { + logp.TestingSetup() + + const runawayLoop = ` + while (!evt.fields.stop) { + evt.Put("hello", "world"); + } + ` + + p, err := NewFromConfig(Config{ + Source: header + runawayLoop + footer, + Timeout: 500 * time.Millisecond, + TagOnException: "_js_exception", + }, nil) + if err != nil { + t.Fatal(err) + } + + evt := &beat.Event{ + Fields: common.MapStr{ + "stop": false, + }, + } + + // Execute and expect a timeout. + evt, err = p.Run(evt) + if assert.Error(t, err) { + assert.Contains(t, err.Error(), timeoutError) + + tags, _ := evt.GetValue("tags") + assert.Equal(t, []string{"_js_exception"}, tags) + + errorMessage, _ := evt.GetValue("error.message") + assert.Contains(t, errorMessage, timeoutError) + } + + // Verify that any internal runtime interrupt state has been cleared. + evt.PutValue("stop", true) + _, err = p.Run(evt) + assert.NoError(t, err) +} diff --git a/libbeat/processors/script/processor.go b/libbeat/processors/script/processor.go new file mode 100644 index 00000000000..e6d410b027a --- /dev/null +++ b/libbeat/processors/script/processor.go @@ -0,0 +1,49 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package script + +import ( + "strings" + + "github.com/pkg/errors" + + "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/processors" + "github.com/elastic/beats/libbeat/processors/script/javascript" +) + +func init() { + processors.RegisterPlugin("script", New) +} + +// New constructs a new script processor. +func New(c *common.Config) (processors.Processor, error) { + var config = struct { + Lang string `config:"lang" validate:"required"` + }{} + if err := c.Unpack(&config); err != nil { + return nil, err + } + + switch strings.ToLower(config.Lang) { + case "javascript", "js": + return javascript.New(c) + default: + return nil, errors.Errorf("script type must be declared (e.g. type: javascript)") + } +} diff --git a/vendor/github.com/dlclark/regexp2/ATTRIB b/vendor/github.com/dlclark/regexp2/ATTRIB new file mode 100644 index 00000000000..cdf4560b9e6 --- /dev/null +++ b/vendor/github.com/dlclark/regexp2/ATTRIB @@ -0,0 +1,133 @@ +============ +These pieces of code were ported from dotnet/corefx: + +syntax/charclass.go (from RegexCharClass.cs): ported to use the built-in Go unicode classes. Canonicalize is + a direct port, but most of the other code required large changes because the C# implementation + used a string to represent the CharSet data structure and I cleaned that up in my implementation. + +syntax/code.go (from RegexCode.cs): ported literally with various cleanups and layout to make it more Go-ish. + +syntax/escape.go (from RegexParser.cs): ported Escape method and added some optimizations. Unescape is inspired by + the C# implementation but couldn't be directly ported because of the lack of do-while syntax in Go. + +syntax/parser.go (from RegexpParser.cs and RegexOptions.cs): ported parser struct and associated methods as + literally as possible. Several language differences required changes. E.g. lack pre/post-fix increments as + expressions, lack of do-while loops, lack of overloads, etc. + +syntax/prefix.go (from RegexFCD.cs and RegexBoyerMoore.cs): ported as literally as possible and added support + for unicode chars that are longer than the 16-bit char in C# for the 32-bit rune in Go. + +syntax/replacerdata.go (from RegexReplacement.cs): conceptually ported and re-organized to handle differences + in charclass implementation, and fix odd code layout between RegexParser.cs, Regex.cs, and RegexReplacement.cs. + +syntax/tree.go (from RegexTree.cs and RegexNode.cs): ported literally as possible. + +syntax/writer.go (from RegexWriter.cs): ported literally with minor changes to make it more Go-ish. + +match.go (from RegexMatch.cs): ported, simplified, and changed to handle Go's lack of inheritence. + +regexp.go (from Regex.cs and RegexOptions.cs): conceptually serves the same "starting point", but is simplified + and changed to handle differences in C# strings and Go strings/runes. + +replace.go (from RegexReplacement.cs): ported closely and then cleaned up to combine the MatchEvaluator and + simple string replace implementations. + +runner.go (from RegexRunner.cs): ported literally as possible. + +regexp_test.go (from CaptureTests.cs and GroupNamesAndNumbers.cs): conceptually ported, but the code was + manually structured like Go tests. + +replace_test.go (from RegexReplaceStringTest0.cs): conceptually ported + +rtl_test.go (from RightToLeft.cs): conceptually ported +--- +dotnet/corefx was released under this license: + +The MIT License (MIT) + +Copyright (c) Microsoft Corporation + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +============ +These pieces of code are copied from the Go framework: + +- The overall directory structure of regexp2 was inspired by the Go runtime regexp package. +- The optimization in the escape method of syntax/escape.go is from the Go runtime QuoteMeta() func in regexp/regexp.go +- The method signatures in regexp.go are designed to match the Go framework regexp methods closely +- func regexp2.MustCompile and func quote are almost identifical to the regexp package versions +- BenchmarkMatch* and TestProgramTooLong* funcs in regexp_performance_test.go were copied from the framework + regexp/exec_test.go +--- +The Go framework was released under this license: + +Copyright (c) 2012 The Go Authors. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + * Neither the name of Google Inc. nor the names of its +contributors may be used to endorse or promote products derived from +this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +============ +Some test data were gathered from the Mono project. + +regexp_mono_test.go: ported from https://github.com/mono/mono/blob/master/mcs/class/System/Test/System.Text.RegularExpressions/PerlTrials.cs +--- +Mono tests released under this license: + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + diff --git a/vendor/github.com/dlclark/regexp2/LICENSE b/vendor/github.com/dlclark/regexp2/LICENSE new file mode 100644 index 00000000000..fe83dfdc920 --- /dev/null +++ b/vendor/github.com/dlclark/regexp2/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) Doug Clark + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/vendor/github.com/dlclark/regexp2/README.md b/vendor/github.com/dlclark/regexp2/README.md new file mode 100644 index 00000000000..f4dc33dab40 --- /dev/null +++ b/vendor/github.com/dlclark/regexp2/README.md @@ -0,0 +1,67 @@ +# regexp2 - full featured regular expressions for Go +Regexp2 is a feature-rich RegExp engine for Go. It doesn't have constant time guarantees like the built-in `regexp` package, but it allows backtracking and is compatible with Perl5 and .NET. You'll likely be better off with the RE2 engine from the `regexp` package and should only use this if you need to write very complex patterns or require compatibility with .NET. + +## Basis of the engine +The engine is ported from the .NET framework's System.Text.RegularExpressions.Regex engine. That engine was open sourced in 2015 under the MIT license. There are some fundamental differences between .NET strings and Go strings that required a bit of borrowing from the Go framework regex engine as well. I cleaned up a couple of the dirtier bits during the port (regexcharclass.cs was terrible), but the parse tree, code emmitted, and therefore patterns matched should be identical. + +## Installing +This is a go-gettable library, so install is easy: + + go get github.com/dlclark/regexp2/... + +## Usage +Usage is similar to the Go `regexp` package. Just like in `regexp`, you start by converting a regex into a state machine via the `Compile` or `MustCompile` methods. They ultimately do the same thing, but `MustCompile` will panic if the regex is invalid. You can then use the provided `Regexp` struct to find matches repeatedly. A `Regexp` struct is safe to use across goroutines. + +```go +re := regexp2.MustCompile(`Your pattern`, 0) +if isMatch, _ := re.MatchString(`Something to match`); isMatch { + //do something +} +``` + +The only error that the `*Match*` methods *should* return is a Timeout if you set the `re.MatchTimeout` field. Any other error is a bug in the `regexp2` package. If you need more details about capture groups in a match then use the `FindStringMatch` method, like so: + +```go +if m, _ := re.FindStringMatch(`Something to match`); m != nil { + // the whole match is always group 0 + fmt.Printf("Group 0: %v\n", m.String()) + + // you can get all the groups too + gps := m.Groups() + + // a group can be captured multiple times, so each cap is separately addressable + fmt.Printf("Group 1, first capture", gps[1].Captures[0].String()) + fmt.Printf("Group 1, second capture", gps[1].Captures[1].String()) +} +``` + +Group 0 is embedded in the Match. Group 0 is an automatically-assigned group that encompasses the whole pattern. This means that `m.String()` is the same as `m.Group.String()` and `m.Groups()[0].String()` + +The __last__ capture is embedded in each group, so `g.String()` will return the same thing as `g.Capture.String()` and `g.Captures[len(g.Captures)-1].String()`. + +## Compare `regexp` and `regexp2` +| Category | regexp | regexp2 | +| --- | --- | --- | +| Catastrophic backtracking possible | no, constant execution time guarantees | yes, if your pattern is at risk you can use the `re.MatchTimeout` field | +| Python-style capture groups `(Pre)` | yes | no | +| .NET-style capture groups `(re)` or `('name're)` | no | yes | +| comments `(?#comment)` | no | yes | +| branch numbering reset `(?\|a\|b)` | no | no | +| possessive match `(?>re)` | no | yes | +| positive lookahead `(?=re)` | no | yes | +| negative lookahead `(?!re)` | no | yes | +| positive lookbehind `(?<=re)` | no | yes | +| negative lookbehind `(? 0 && m.matches[cap][m.matchcount[cap]*2-1] != (-3+1) +} + +// matchIndex returns the index of the last specified matched group by capnum +func (m *Match) matchIndex(cap int) int { + i := m.matches[cap][m.matchcount[cap]*2-2] + if i >= 0 { + return i + } + + return m.matches[cap][-3-i] +} + +// matchLength returns the length of the last specified matched group by capnum +func (m *Match) matchLength(cap int) int { + i := m.matches[cap][m.matchcount[cap]*2-1] + if i >= 0 { + return i + } + + return m.matches[cap][-3-i] +} + +// Nonpublic builder: add a capture to the group specified by "c" +func (m *Match) addMatch(c, start, l int) { + + if m.matches[c] == nil { + m.matches[c] = make([]int, 2) + } + + capcount := m.matchcount[c] + + if capcount*2+2 > len(m.matches[c]) { + oldmatches := m.matches[c] + newmatches := make([]int, capcount*8) + copy(newmatches, oldmatches[:capcount*2]) + m.matches[c] = newmatches + } + + m.matches[c][capcount*2] = start + m.matches[c][capcount*2+1] = l + m.matchcount[c] = capcount + 1 + //log.Printf("addMatch: c=%v, i=%v, l=%v ... matches: %v", c, start, l, m.matches) +} + +// Nonpublic builder: Add a capture to balance the specified group. This is used by the +// balanced match construct. (?...) +// +// If there were no such thing as backtracking, this would be as simple as calling RemoveMatch(c). +// However, since we have backtracking, we need to keep track of everything. +func (m *Match) balanceMatch(c int) { + m.balancing = true + + // we'll look at the last capture first + capcount := m.matchcount[c] + target := capcount*2 - 2 + + // first see if it is negative, and therefore is a reference to the next available + // capture group for balancing. If it is, we'll reset target to point to that capture. + if m.matches[c][target] < 0 { + target = -3 - m.matches[c][target] + } + + // move back to the previous capture + target -= 2 + + // if the previous capture is a reference, just copy that reference to the end. Otherwise, point to it. + if target >= 0 && m.matches[c][target] < 0 { + m.addMatch(c, m.matches[c][target], m.matches[c][target+1]) + } else { + m.addMatch(c, -3-target, -4-target /* == -3 - (target + 1) */) + } +} + +// Nonpublic builder: removes a group match by capnum +func (m *Match) removeMatch(c int) { + m.matchcount[c]-- +} + +// GroupCount returns the number of groups this match has matched +func (m *Match) GroupCount() int { + return len(m.matchcount) +} + +// GroupByName returns a group based on the name of the group, or nil if the group name does not exist +func (m *Match) GroupByName(name string) *Group { + num := m.regex.GroupNumberFromName(name) + if num < 0 { + return nil + } + return m.GroupByNumber(num) +} + +// GroupByNumber returns a group based on the number of the group, or nil if the group number does not exist +func (m *Match) GroupByNumber(num int) *Group { + // check our sparse map + if m.sparseCaps != nil { + if newNum, ok := m.sparseCaps[num]; ok { + num = newNum + } + } + if num >= len(m.matchcount) || num < 0 { + return nil + } + + if num == 0 { + return &m.Group + } + + m.populateOtherGroups() + + return &m.otherGroups[num-1] +} + +// Groups returns all the capture groups, starting with group 0 (the full match) +func (m *Match) Groups() []Group { + m.populateOtherGroups() + g := make([]Group, len(m.otherGroups)+1) + g[0] = m.Group + copy(g[1:], m.otherGroups) + return g +} + +func (m *Match) populateOtherGroups() { + // Construct all the Group objects first time called + if m.otherGroups == nil { + m.otherGroups = make([]Group, len(m.matchcount)-1) + for i := 0; i < len(m.otherGroups); i++ { + m.otherGroups[i] = newGroup(m.regex.GroupNameFromNumber(i+1), m.text, m.matches[i+1], m.matchcount[i+1]) + } + } +} + +func (m *Match) groupValueAppendToBuf(groupnum int, buf *bytes.Buffer) { + c := m.matchcount[groupnum] + if c == 0 { + return + } + + matches := m.matches[groupnum] + + index := matches[(c-1)*2] + last := index + matches[(c*2)-1] + + for ; index < last; index++ { + buf.WriteRune(m.text[index]) + } +} + +func newGroup(name string, text []rune, caps []int, capcount int) Group { + g := Group{} + g.text = text + if capcount > 0 { + g.Index = caps[(capcount-1)*2] + g.Length = caps[(capcount*2)-1] + } + g.Name = name + g.Captures = make([]Capture, capcount) + for i := 0; i < capcount; i++ { + g.Captures[i] = Capture{ + text: text, + Index: caps[i*2], + Length: caps[i*2+1], + } + } + //log.Printf("newGroup! capcount %v, %+v", capcount, g) + + return g +} + +func (m *Match) dump() string { + buf := &bytes.Buffer{} + buf.WriteRune('\n') + if len(m.sparseCaps) > 0 { + for k, v := range m.sparseCaps { + fmt.Fprintf(buf, "Slot %v -> %v\n", k, v) + } + } + + for i, g := range m.Groups() { + fmt.Fprintf(buf, "Group %v (%v), %v caps:\n", i, g.Name, len(g.Captures)) + + for _, c := range g.Captures { + fmt.Fprintf(buf, " (%v, %v) %v\n", c.Index, c.Length, c.String()) + } + } + /* + for i := 0; i < len(m.matchcount); i++ { + fmt.Fprintf(buf, "\nGroup %v (%v):\n", i, m.regex.GroupNameFromNumber(i)) + + for j := 0; j < m.matchcount[i]; j++ { + text := "" + + if m.matches[i][j*2] >= 0 { + start := m.matches[i][j*2] + text = m.text[start : start+m.matches[i][j*2+1]] + } + + fmt.Fprintf(buf, " (%v, %v) %v\n", m.matches[i][j*2], m.matches[i][j*2+1], text) + } + } + */ + return buf.String() +} diff --git a/vendor/github.com/dlclark/regexp2/regexp.go b/vendor/github.com/dlclark/regexp2/regexp.go new file mode 100644 index 00000000000..b25fe690f74 --- /dev/null +++ b/vendor/github.com/dlclark/regexp2/regexp.go @@ -0,0 +1,357 @@ +/* +Package regexp2 is a regexp package that has an interface similar to Go's framework regexp engine but uses a +more feature full regex engine behind the scenes. + +It doesn't have constant time guarantees, but it allows backtracking and is compatible with Perl5 and .NET. +You'll likely be better off with the RE2 engine from the regexp package and should only use this if you +need to write very complex patterns or require compatibility with .NET. +*/ +package regexp2 + +import ( + "errors" + "math" + "strconv" + "sync" + "time" + + "github.com/dlclark/regexp2/syntax" +) + +// Default timeout used when running regexp matches -- "forever" +var DefaultMatchTimeout = time.Duration(math.MaxInt64) + +// Regexp is the representation of a compiled regular expression. +// A Regexp is safe for concurrent use by multiple goroutines. +type Regexp struct { + //timeout when trying to find matches + MatchTimeout time.Duration + + // read-only after Compile + pattern string // as passed to Compile + options RegexOptions // options + + caps map[int]int // capnum->index + capnames map[string]int //capture group name -> index + capslist []string //sorted list of capture group names + capsize int // size of the capture array + + code *syntax.Code // compiled program + + // cache of machines for running regexp + muRun sync.Mutex + runner []*runner +} + +// Compile parses a regular expression and returns, if successful, +// a Regexp object that can be used to match against text. +func Compile(expr string, opt RegexOptions) (*Regexp, error) { + // parse it + tree, err := syntax.Parse(expr, syntax.RegexOptions(opt)) + if err != nil { + return nil, err + } + + // translate it to code + code, err := syntax.Write(tree) + if err != nil { + return nil, err + } + + // return it + return &Regexp{ + pattern: expr, + options: opt, + caps: code.Caps, + capnames: tree.Capnames, + capslist: tree.Caplist, + capsize: code.Capsize, + code: code, + MatchTimeout: DefaultMatchTimeout, + }, nil +} + +// MustCompile is like Compile but panics if the expression cannot be parsed. +// It simplifies safe initialization of global variables holding compiled regular +// expressions. +func MustCompile(str string, opt RegexOptions) *Regexp { + regexp, error := Compile(str, opt) + if error != nil { + panic(`regexp2: Compile(` + quote(str) + `): ` + error.Error()) + } + return regexp +} + +// Escape adds backslashes to any special characters in the input string +func Escape(input string) string { + return syntax.Escape(input) +} + +// Unescape removes any backslashes from previously-escaped special characters in the input string +func Unescape(input string) (string, error) { + return syntax.Unescape(input) +} + +// String returns the source text used to compile the regular expression. +func (re *Regexp) String() string { + return re.pattern +} + +func quote(s string) string { + if strconv.CanBackquote(s) { + return "`" + s + "`" + } + return strconv.Quote(s) +} + +// RegexOptions impact the runtime and parsing behavior +// for each specific regex. They are setable in code as well +// as in the regex pattern itself. +type RegexOptions int32 + +const ( + None RegexOptions = 0x0 + IgnoreCase = 0x0001 // "i" + Multiline = 0x0002 // "m" + ExplicitCapture = 0x0004 // "n" + Compiled = 0x0008 // "c" + Singleline = 0x0010 // "s" + IgnorePatternWhitespace = 0x0020 // "x" + RightToLeft = 0x0040 // "r" + Debug = 0x0080 // "d" + ECMAScript = 0x0100 // "e" +) + +func (re *Regexp) RightToLeft() bool { + return re.options&RightToLeft != 0 +} + +func (re *Regexp) Debug() bool { + return re.options&Debug != 0 +} + +// Replace searches the input string and replaces each match found with the replacement text. +// Count will limit the number of matches attempted and startAt will allow +// us to skip past possible matches at the start of the input (left or right depending on RightToLeft option). +// Set startAt and count to -1 to go through the whole string +func (re *Regexp) Replace(input, replacement string, startAt, count int) (string, error) { + data, err := syntax.NewReplacerData(replacement, re.caps, re.capsize, re.capnames, syntax.RegexOptions(re.options)) + if err != nil { + return "", err + } + //TODO: cache ReplacerData + + return replace(re, data, nil, input, startAt, count) +} + +// ReplaceFunc searches the input string and replaces each match found using the string from the evaluator +// Count will limit the number of matches attempted and startAt will allow +// us to skip past possible matches at the start of the input (left or right depending on RightToLeft option). +// Set startAt and count to -1 to go through the whole string. +func (re *Regexp) ReplaceFunc(input string, evaluator MatchEvaluator, startAt, count int) (string, error) { + return replace(re, nil, evaluator, input, startAt, count) +} + +// FindStringMatch searches the input string for a Regexp match +func (re *Regexp) FindStringMatch(s string) (*Match, error) { + // convert string to runes + return re.run(false, -1, getRunes(s)) +} + +// FindRunesMatch searches the input rune slice for a Regexp match +func (re *Regexp) FindRunesMatch(r []rune) (*Match, error) { + return re.run(false, -1, r) +} + +// FindStringMatchStartingAt searches the input string for a Regexp match starting at the startAt index +func (re *Regexp) FindStringMatchStartingAt(s string, startAt int) (*Match, error) { + if startAt > len(s) { + return nil, errors.New("startAt must be less than the length of the input string") + } + r, startAt := re.getRunesAndStart(s, startAt) + if startAt == -1 { + // we didn't find our start index in the string -- that's a problem + return nil, errors.New("startAt must align to the start of a valid rune in the input string") + } + + return re.run(false, startAt, r) +} + +// FindRunesMatchStartingAt searches the input rune slice for a Regexp match starting at the startAt index +func (re *Regexp) FindRunesMatchStartingAt(r []rune, startAt int) (*Match, error) { + return re.run(false, startAt, r) +} + +// FindNextMatch returns the next match in the same input string as the match parameter. +// Will return nil if there is no next match or if given a nil match. +func (re *Regexp) FindNextMatch(m *Match) (*Match, error) { + if m == nil { + return nil, nil + } + + // If previous match was empty, advance by one before matching to prevent + // infinite loop + startAt := m.textpos + if m.Length == 0 { + if m.textpos == len(m.text) { + return nil, nil + } + + if re.RightToLeft() { + startAt-- + } else { + startAt++ + } + } + return re.run(false, startAt, m.text) +} + +// MatchString return true if the string matches the regex +// error will be set if a timeout occurs +func (re *Regexp) MatchString(s string) (bool, error) { + m, err := re.run(true, -1, getRunes(s)) + if err != nil { + return false, err + } + return m != nil, nil +} + +func (re *Regexp) getRunesAndStart(s string, startAt int) ([]rune, int) { + if startAt < 0 { + if re.RightToLeft() { + r := getRunes(s) + return r, len(r) + } + return getRunes(s), 0 + } + ret := make([]rune, len(s)) + i := 0 + runeIdx := -1 + for strIdx, r := range s { + if strIdx == startAt { + runeIdx = i + } + ret[i] = r + i++ + } + return ret[:i], runeIdx +} + +func getRunes(s string) []rune { + ret := make([]rune, len(s)) + i := 0 + for _, r := range s { + ret[i] = r + i++ + } + return ret[:i] +} + +// MatchRunes return true if the runes matches the regex +// error will be set if a timeout occurs +func (re *Regexp) MatchRunes(r []rune) (bool, error) { + m, err := re.run(true, -1, r) + if err != nil { + return false, err + } + return m != nil, nil +} + +// GetGroupNames Returns the set of strings used to name capturing groups in the expression. +func (re *Regexp) GetGroupNames() []string { + var result []string + + if re.capslist == nil { + result = make([]string, re.capsize) + + for i := 0; i < len(result); i++ { + result[i] = strconv.Itoa(i) + } + } else { + result = make([]string, len(re.capslist)) + copy(result, re.capslist) + } + + return result +} + +// GetGroupNumbers returns the integer group numbers corresponding to a group name. +func (re *Regexp) GetGroupNumbers() []int { + var result []int + + if re.caps == nil { + result = make([]int, re.capsize) + + for i := 0; i < len(result); i++ { + result[i] = i + } + } else { + result = make([]int, len(re.caps)) + + for k, v := range re.caps { + result[v] = k + } + } + + return result +} + +// GroupNameFromNumber retrieves a group name that corresponds to a group number. +// It will return "" for and unknown group number. Unnamed groups automatically +// receive a name that is the decimal string equivalent of its number. +func (re *Regexp) GroupNameFromNumber(i int) string { + if re.capslist == nil { + if i >= 0 && i < re.capsize { + return strconv.Itoa(i) + } + + return "" + } + + if re.caps != nil { + var ok bool + if i, ok = re.caps[i]; !ok { + return "" + } + } + + if i >= 0 && i < len(re.capslist) { + return re.capslist[i] + } + + return "" +} + +// GroupNumberFromName returns a group number that corresponds to a group name. +// Returns -1 if the name is not a recognized group name. Numbered groups +// automatically get a group name that is the decimal string equivalent of its number. +func (re *Regexp) GroupNumberFromName(name string) int { + // look up name if we have a hashtable of names + if re.capnames != nil { + if k, ok := re.capnames[name]; ok { + return k + } + + return -1 + } + + // convert to an int if it looks like a number + result := 0 + for i := 0; i < len(name); i++ { + ch := name[i] + + if ch > '9' || ch < '0' { + return -1 + } + + result *= 10 + result += int(ch - '0') + } + + // return int if it's in range + if result >= 0 && result < re.capsize { + return result + } + + return -1 +} diff --git a/vendor/github.com/dlclark/regexp2/replace.go b/vendor/github.com/dlclark/regexp2/replace.go new file mode 100644 index 00000000000..0376bd9d374 --- /dev/null +++ b/vendor/github.com/dlclark/regexp2/replace.go @@ -0,0 +1,177 @@ +package regexp2 + +import ( + "bytes" + "errors" + + "github.com/dlclark/regexp2/syntax" +) + +const ( + replaceSpecials = 4 + replaceLeftPortion = -1 + replaceRightPortion = -2 + replaceLastGroup = -3 + replaceWholeString = -4 +) + +// MatchEvaluator is a function that takes a match and returns a replacement string to be used +type MatchEvaluator func(Match) string + +// Three very similar algorithms appear below: replace (pattern), +// replace (evaluator), and split. + +// Replace Replaces all occurrences of the regex in the string with the +// replacement pattern. +// +// Note that the special case of no matches is handled on its own: +// with no matches, the input string is returned unchanged. +// The right-to-left case is split out because StringBuilder +// doesn't handle right-to-left string building directly very well. +func replace(regex *Regexp, data *syntax.ReplacerData, evaluator MatchEvaluator, input string, startAt, count int) (string, error) { + if count < -1 { + return "", errors.New("Count too small") + } + if count == 0 { + return "", nil + } + + m, err := regex.FindStringMatchStartingAt(input, startAt) + + if err != nil { + return "", err + } + if m == nil { + return input, nil + } + + buf := &bytes.Buffer{} + text := m.text + + if !regex.RightToLeft() { + prevat := 0 + for m != nil { + if m.Index != prevat { + buf.WriteString(string(text[prevat:m.Index])) + } + prevat = m.Index + m.Length + if evaluator == nil { + replacementImpl(data, buf, m) + } else { + buf.WriteString(evaluator(*m)) + } + + count-- + if count == 0 { + break + } + m, err = regex.FindNextMatch(m) + if err != nil { + return "", nil + } + } + + if prevat < len(text) { + buf.WriteString(string(text[prevat:])) + } + } else { + prevat := len(text) + var al []string + + for m != nil { + if m.Index+m.Length != prevat { + al = append(al, string(text[m.Index+m.Length:prevat])) + } + prevat = m.Index + if evaluator == nil { + replacementImplRTL(data, &al, m) + } else { + al = append(al, evaluator(*m)) + } + + count-- + if count == 0 { + break + } + m, err = regex.FindNextMatch(m) + if err != nil { + return "", nil + } + } + + if prevat > 0 { + buf.WriteString(string(text[:prevat])) + } + + for i := len(al) - 1; i >= 0; i-- { + buf.WriteString(al[i]) + } + } + + return buf.String(), nil +} + +// Given a Match, emits into the StringBuilder the evaluated +// substitution pattern. +func replacementImpl(data *syntax.ReplacerData, buf *bytes.Buffer, m *Match) { + for _, r := range data.Rules { + + if r >= 0 { // string lookup + buf.WriteString(data.Strings[r]) + } else if r < -replaceSpecials { // group lookup + m.groupValueAppendToBuf(-replaceSpecials-1-r, buf) + } else { + switch -replaceSpecials - 1 - r { // special insertion patterns + case replaceLeftPortion: + for i := 0; i < m.Index; i++ { + buf.WriteRune(m.text[i]) + } + case replaceRightPortion: + for i := m.Index + m.Length; i < len(m.text); i++ { + buf.WriteRune(m.text[i]) + } + case replaceLastGroup: + m.groupValueAppendToBuf(m.GroupCount()-1, buf) + case replaceWholeString: + for i := 0; i < len(m.text); i++ { + buf.WriteRune(m.text[i]) + } + } + } + } +} + +func replacementImplRTL(data *syntax.ReplacerData, al *[]string, m *Match) { + l := *al + buf := &bytes.Buffer{} + + for _, r := range data.Rules { + buf.Reset() + if r >= 0 { // string lookup + l = append(l, data.Strings[r]) + } else if r < -replaceSpecials { // group lookup + m.groupValueAppendToBuf(-replaceSpecials-1-r, buf) + l = append(l, buf.String()) + } else { + switch -replaceSpecials - 1 - r { // special insertion patterns + case replaceLeftPortion: + for i := 0; i < m.Index; i++ { + buf.WriteRune(m.text[i]) + } + case replaceRightPortion: + for i := m.Index + m.Length; i < len(m.text); i++ { + buf.WriteRune(m.text[i]) + } + case replaceLastGroup: + m.groupValueAppendToBuf(m.GroupCount()-1, buf) + case replaceWholeString: + for i := 0; i < len(m.text); i++ { + buf.WriteRune(m.text[i]) + } + } + l = append(l, buf.String()) + } + } + + *al = l +} diff --git a/vendor/github.com/dlclark/regexp2/runner.go b/vendor/github.com/dlclark/regexp2/runner.go new file mode 100644 index 00000000000..2d84a934b01 --- /dev/null +++ b/vendor/github.com/dlclark/regexp2/runner.go @@ -0,0 +1,1621 @@ +package regexp2 + +import ( + "bytes" + "errors" + "fmt" + "math" + "strconv" + "strings" + "time" + "unicode" + + "github.com/dlclark/regexp2/syntax" +) + +type runner struct { + re *Regexp + code *syntax.Code + + runtextstart int // starting point for search + + runtext []rune // text to search + runtextpos int // current position in text + runtextend int + + // The backtracking stack. Opcodes use this to store data regarding + // what they have matched and where to backtrack to. Each "frame" on + // the stack takes the form of [CodePosition Data1 Data2...], where + // CodePosition is the position of the current opcode and + // the data values are all optional. The CodePosition can be negative, and + // these values (also called "back2") are used by the BranchMark family of opcodes + // to indicate whether they are backtracking after a successful or failed + // match. + // When we backtrack, we pop the CodePosition off the stack, set the current + // instruction pointer to that code position, and mark the opcode + // with a backtracking flag ("Back"). Each opcode then knows how to + // handle its own data. + runtrack []int + runtrackpos int + + // This stack is used to track text positions across different opcodes. + // For example, in /(a*b)+/, the parentheses result in a SetMark/CaptureMark + // pair. SetMark records the text position before we match a*b. Then + // CaptureMark uses that position to figure out where the capture starts. + // Opcodes which push onto this stack are always paired with other opcodes + // which will pop the value from it later. A successful match should mean + // that this stack is empty. + runstack []int + runstackpos int + + // The crawl stack is used to keep track of captures. Every time a group + // has a capture, we push its group number onto the runcrawl stack. In + // the case of a balanced match, we push BOTH groups onto the stack. + runcrawl []int + runcrawlpos int + + runtrackcount int // count of states that may do backtracking + + runmatch *Match // result object + + ignoreTimeout bool + timeout time.Duration // timeout in milliseconds (needed for actual) + timeoutChecksToSkip int + timeoutAt time.Time + + operator syntax.InstOp + codepos int + rightToLeft bool + caseInsensitive bool +} + +// run searches for matches and can continue from the previous match +// +// quick is usually false, but can be true to not return matches, just put it in caches +// textstart is -1 to start at the "beginning" (depending on Right-To-Left), otherwise an index in input +// input is the string to search for our regex pattern +func (re *Regexp) run(quick bool, textstart int, input []rune) (*Match, error) { + + // get a cached runner + runner := re.getRunner() + defer re.putRunner(runner) + + if textstart < 0 { + if re.RightToLeft() { + textstart = len(input) + } else { + textstart = 0 + } + } + + return runner.scan(input, textstart, quick, re.MatchTimeout) +} + +// Scans the string to find the first match. Uses the Match object +// both to feed text in and as a place to store matches that come out. +// +// All the action is in the Go() method. Our +// responsibility is to load up the class members before +// calling Go. +// +// The optimizer can compute a set of candidate starting characters, +// and we could use a separate method Skip() that will quickly scan past +// any characters that we know can't match. +func (r *runner) scan(rt []rune, textstart int, quick bool, timeout time.Duration) (*Match, error) { + r.timeout = timeout + r.ignoreTimeout = (time.Duration(math.MaxInt64) == timeout) + r.runtextstart = textstart + r.runtext = rt + r.runtextend = len(rt) + + stoppos := r.runtextend + bump := 1 + + if r.re.RightToLeft() { + bump = -1 + stoppos = 0 + } + + r.runtextpos = textstart + initted := false + + r.startTimeoutWatch() + for { + if r.re.Debug() { + //fmt.Printf("\nSearch content: %v\n", string(r.runtext)) + fmt.Printf("\nSearch range: from 0 to %v\n", r.runtextend) + fmt.Printf("Firstchar search starting at %v stopping at %v\n", r.runtextpos, stoppos) + } + + if r.findFirstChar() { + if err := r.checkTimeout(); err != nil { + return nil, err + } + + if !initted { + r.initMatch() + initted = true + } + + if r.re.Debug() { + fmt.Printf("Executing engine starting at %v\n\n", r.runtextpos) + } + + if err := r.execute(); err != nil { + return nil, err + } + + if r.runmatch.matchcount[0] > 0 { + // We'll return a match even if it touches a previous empty match + return r.tidyMatch(quick), nil + } + + // reset state for another go + r.runtrackpos = len(r.runtrack) + r.runstackpos = len(r.runstack) + r.runcrawlpos = len(r.runcrawl) + } + + // failure! + + if r.runtextpos == stoppos { + r.tidyMatch(true) + return nil, nil + } + + // Recognize leading []* and various anchors, and bump on failure accordingly + + // r.bump by one and start again + + r.runtextpos += bump + } + // We never get here +} + +func (r *runner) execute() error { + + r.goTo(0) + + for { + + if r.re.Debug() { + r.dumpState() + } + + if err := r.checkTimeout(); err != nil { + return err + } + + switch r.operator { + case syntax.Stop: + return nil + + case syntax.Nothing: + break + + case syntax.Goto: + r.goTo(r.operand(0)) + continue + + case syntax.Testref: + if !r.runmatch.isMatched(r.operand(0)) { + break + } + r.advance(1) + continue + + case syntax.Lazybranch: + r.trackPush1(r.textPos()) + r.advance(1) + continue + + case syntax.Lazybranch | syntax.Back: + r.trackPop() + r.textto(r.trackPeek()) + r.goTo(r.operand(0)) + continue + + case syntax.Setmark: + r.stackPush(r.textPos()) + r.trackPush() + r.advance(0) + continue + + case syntax.Nullmark: + r.stackPush(-1) + r.trackPush() + r.advance(0) + continue + + case syntax.Setmark | syntax.Back, syntax.Nullmark | syntax.Back: + r.stackPop() + break + + case syntax.Getmark: + r.stackPop() + r.trackPush1(r.stackPeek()) + r.textto(r.stackPeek()) + r.advance(0) + continue + + case syntax.Getmark | syntax.Back: + r.trackPop() + r.stackPush(r.trackPeek()) + break + + case syntax.Capturemark: + if r.operand(1) != -1 && !r.runmatch.isMatched(r.operand(1)) { + break + } + r.stackPop() + if r.operand(1) != -1 { + r.transferCapture(r.operand(0), r.operand(1), r.stackPeek(), r.textPos()) + } else { + r.capture(r.operand(0), r.stackPeek(), r.textPos()) + } + r.trackPush1(r.stackPeek()) + + r.advance(2) + + continue + + case syntax.Capturemark | syntax.Back: + r.trackPop() + r.stackPush(r.trackPeek()) + r.uncapture() + if r.operand(0) != -1 && r.operand(1) != -1 { + r.uncapture() + } + + break + + case syntax.Branchmark: + r.stackPop() + + matched := r.textPos() - r.stackPeek() + + if matched != 0 { // Nonempty match -> loop now + r.trackPush2(r.stackPeek(), r.textPos()) // Save old mark, textpos + r.stackPush(r.textPos()) // Make new mark + r.goTo(r.operand(0)) // Loop + } else { // Empty match -> straight now + r.trackPushNeg1(r.stackPeek()) // Save old mark + r.advance(1) // Straight + } + continue + + case syntax.Branchmark | syntax.Back: + r.trackPopN(2) + r.stackPop() + r.textto(r.trackPeekN(1)) // Recall position + r.trackPushNeg1(r.trackPeek()) // Save old mark + r.advance(1) // Straight + continue + + case syntax.Branchmark | syntax.Back2: + r.trackPop() + r.stackPush(r.trackPeek()) // Recall old mark + break // Backtrack + + case syntax.Lazybranchmark: + { + // We hit this the first time through a lazy loop and after each + // successful match of the inner expression. It simply continues + // on and doesn't loop. + r.stackPop() + + oldMarkPos := r.stackPeek() + + if r.textPos() != oldMarkPos { // Nonempty match -> try to loop again by going to 'back' state + if oldMarkPos != -1 { + r.trackPush2(oldMarkPos, r.textPos()) // Save old mark, textpos + } else { + r.trackPush2(r.textPos(), r.textPos()) + } + } else { + // The inner expression found an empty match, so we'll go directly to 'back2' if we + // backtrack. In this case, we need to push something on the stack, since back2 pops. + // However, in the case of ()+? or similar, this empty match may be legitimate, so push the text + // position associated with that empty match. + r.stackPush(oldMarkPos) + + r.trackPushNeg1(r.stackPeek()) // Save old mark + } + r.advance(1) + continue + } + + case syntax.Lazybranchmark | syntax.Back: + + // After the first time, Lazybranchmark | syntax.Back occurs + // with each iteration of the loop, and therefore with every attempted + // match of the inner expression. We'll try to match the inner expression, + // then go back to Lazybranchmark if successful. If the inner expression + // fails, we go to Lazybranchmark | syntax.Back2 + + r.trackPopN(2) + pos := r.trackPeekN(1) + r.trackPushNeg1(r.trackPeek()) // Save old mark + r.stackPush(pos) // Make new mark + r.textto(pos) // Recall position + r.goTo(r.operand(0)) // Loop + continue + + case syntax.Lazybranchmark | syntax.Back2: + // The lazy loop has failed. We'll do a true backtrack and + // start over before the lazy loop. + r.stackPop() + r.trackPop() + r.stackPush(r.trackPeek()) // Recall old mark + break + + case syntax.Setcount: + r.stackPush2(r.textPos(), r.operand(0)) + r.trackPush() + r.advance(1) + continue + + case syntax.Nullcount: + r.stackPush2(-1, r.operand(0)) + r.trackPush() + r.advance(1) + continue + + case syntax.Setcount | syntax.Back: + r.stackPopN(2) + break + + case syntax.Nullcount | syntax.Back: + r.stackPopN(2) + break + + case syntax.Branchcount: + // r.stackPush: + // 0: Mark + // 1: Count + + r.stackPopN(2) + mark := r.stackPeek() + count := r.stackPeekN(1) + matched := r.textPos() - mark + + if count >= r.operand(1) || (matched == 0 && count >= 0) { // Max loops or empty match -> straight now + r.trackPushNeg2(mark, count) // Save old mark, count + r.advance(2) // Straight + } else { // Nonempty match -> count+loop now + r.trackPush1(mark) // remember mark + r.stackPush2(r.textPos(), count+1) // Make new mark, incr count + r.goTo(r.operand(0)) // Loop + } + continue + + case syntax.Branchcount | syntax.Back: + // r.trackPush: + // 0: Previous mark + // r.stackPush: + // 0: Mark (= current pos, discarded) + // 1: Count + r.trackPop() + r.stackPopN(2) + if r.stackPeekN(1) > 0 { // Positive -> can go straight + r.textto(r.stackPeek()) // Zap to mark + r.trackPushNeg2(r.trackPeek(), r.stackPeekN(1)-1) // Save old mark, old count + r.advance(2) // Straight + continue + } + r.stackPush2(r.trackPeek(), r.stackPeekN(1)-1) // recall old mark, old count + break + + case syntax.Branchcount | syntax.Back2: + // r.trackPush: + // 0: Previous mark + // 1: Previous count + r.trackPopN(2) + r.stackPush2(r.trackPeek(), r.trackPeekN(1)) // Recall old mark, old count + break // Backtrack + + case syntax.Lazybranchcount: + // r.stackPush: + // 0: Mark + // 1: Count + + r.stackPopN(2) + mark := r.stackPeek() + count := r.stackPeekN(1) + + if count < 0 { // Negative count -> loop now + r.trackPushNeg1(mark) // Save old mark + r.stackPush2(r.textPos(), count+1) // Make new mark, incr count + r.goTo(r.operand(0)) // Loop + } else { // Nonneg count -> straight now + r.trackPush3(mark, count, r.textPos()) // Save mark, count, position + r.advance(2) // Straight + } + continue + + case syntax.Lazybranchcount | syntax.Back: + // r.trackPush: + // 0: Mark + // 1: Count + // 2: r.textPos + + r.trackPopN(3) + mark := r.trackPeek() + textpos := r.trackPeekN(2) + + if r.trackPeekN(1) < r.operand(1) && textpos != mark { // Under limit and not empty match -> loop + r.textto(textpos) // Recall position + r.stackPush2(textpos, r.trackPeekN(1)+1) // Make new mark, incr count + r.trackPushNeg1(mark) // Save old mark + r.goTo(r.operand(0)) // Loop + continue + } else { // Max loops or empty match -> backtrack + r.stackPush2(r.trackPeek(), r.trackPeekN(1)) // Recall old mark, count + break // backtrack + } + + case syntax.Lazybranchcount | syntax.Back2: + // r.trackPush: + // 0: Previous mark + // r.stackPush: + // 0: Mark (== current pos, discarded) + // 1: Count + r.trackPop() + r.stackPopN(2) + r.stackPush2(r.trackPeek(), r.stackPeekN(1)-1) // Recall old mark, count + break // Backtrack + + case syntax.Setjump: + r.stackPush2(r.trackpos(), r.crawlpos()) + r.trackPush() + r.advance(0) + continue + + case syntax.Setjump | syntax.Back: + r.stackPopN(2) + break + + case syntax.Backjump: + // r.stackPush: + // 0: Saved trackpos + // 1: r.crawlpos + r.stackPopN(2) + r.trackto(r.stackPeek()) + + for r.crawlpos() != r.stackPeekN(1) { + r.uncapture() + } + + break + + case syntax.Forejump: + // r.stackPush: + // 0: Saved trackpos + // 1: r.crawlpos + r.stackPopN(2) + r.trackto(r.stackPeek()) + r.trackPush1(r.stackPeekN(1)) + r.advance(0) + continue + + case syntax.Forejump | syntax.Back: + // r.trackPush: + // 0: r.crawlpos + r.trackPop() + + for r.crawlpos() != r.trackPeek() { + r.uncapture() + } + + break + + case syntax.Bol: + if r.leftchars() > 0 && r.charAt(r.textPos()-1) != '\n' { + break + } + r.advance(0) + continue + + case syntax.Eol: + if r.rightchars() > 0 && r.charAt(r.textPos()) != '\n' { + break + } + r.advance(0) + continue + + case syntax.Boundary: + if !r.isBoundary(r.textPos(), 0, r.runtextend) { + break + } + r.advance(0) + continue + + case syntax.Nonboundary: + if r.isBoundary(r.textPos(), 0, r.runtextend) { + break + } + r.advance(0) + continue + + case syntax.ECMABoundary: + if !r.isECMABoundary(r.textPos(), 0, r.runtextend) { + break + } + r.advance(0) + continue + + case syntax.NonECMABoundary: + if r.isECMABoundary(r.textPos(), 0, r.runtextend) { + break + } + r.advance(0) + continue + + case syntax.Beginning: + if r.leftchars() > 0 { + break + } + r.advance(0) + continue + + case syntax.Start: + if r.textPos() != r.textstart() { + break + } + r.advance(0) + continue + + case syntax.EndZ: + if r.rightchars() > 1 || r.rightchars() == 1 && r.charAt(r.textPos()) != '\n' { + break + } + r.advance(0) + continue + + case syntax.End: + if r.rightchars() > 0 { + break + } + r.advance(0) + continue + + case syntax.One: + if r.forwardchars() < 1 || r.forwardcharnext() != rune(r.operand(0)) { + break + } + + r.advance(1) + continue + + case syntax.Notone: + if r.forwardchars() < 1 || r.forwardcharnext() == rune(r.operand(0)) { + break + } + + r.advance(1) + continue + + case syntax.Set: + + if r.forwardchars() < 1 || !r.code.Sets[r.operand(0)].CharIn(r.forwardcharnext()) { + break + } + + r.advance(1) + continue + + case syntax.Multi: + if !r.runematch(r.code.Strings[r.operand(0)]) { + break + } + + r.advance(1) + continue + + case syntax.Ref: + + capnum := r.operand(0) + + if r.runmatch.isMatched(capnum) { + if !r.refmatch(r.runmatch.matchIndex(capnum), r.runmatch.matchLength(capnum)) { + break + } + } else { + if (r.re.options & ECMAScript) == 0 { + break + } + } + + r.advance(1) + continue + + case syntax.Onerep: + + c := r.operand(1) + + if r.forwardchars() < c { + break + } + + ch := rune(r.operand(0)) + + for c > 0 { + if r.forwardcharnext() != ch { + goto BreakBackward + } + c-- + } + + r.advance(2) + continue + + case syntax.Notonerep: + + c := r.operand(1) + + if r.forwardchars() < c { + break + } + ch := rune(r.operand(0)) + + for c > 0 { + if r.forwardcharnext() == ch { + goto BreakBackward + } + c-- + } + + r.advance(2) + continue + + case syntax.Setrep: + + c := r.operand(1) + + if r.forwardchars() < c { + break + } + + set := r.code.Sets[r.operand(0)] + + for c > 0 { + if !set.CharIn(r.forwardcharnext()) { + goto BreakBackward + } + c-- + } + + r.advance(2) + continue + + case syntax.Oneloop: + + c := r.operand(1) + + if c > r.forwardchars() { + c = r.forwardchars() + } + + ch := rune(r.operand(0)) + i := c + + for ; i > 0; i-- { + if r.forwardcharnext() != ch { + r.backwardnext() + break + } + } + + if c > i { + r.trackPush2(c-i-1, r.textPos()-r.bump()) + } + + r.advance(2) + continue + + case syntax.Notoneloop: + + c := r.operand(1) + + if c > r.forwardchars() { + c = r.forwardchars() + } + + ch := rune(r.operand(0)) + i := c + + for ; i > 0; i-- { + if r.forwardcharnext() == ch { + r.backwardnext() + break + } + } + + if c > i { + r.trackPush2(c-i-1, r.textPos()-r.bump()) + } + + r.advance(2) + continue + + case syntax.Setloop: + + c := r.operand(1) + + if c > r.forwardchars() { + c = r.forwardchars() + } + + set := r.code.Sets[r.operand(0)] + i := c + + for ; i > 0; i-- { + if !set.CharIn(r.forwardcharnext()) { + r.backwardnext() + break + } + } + + if c > i { + r.trackPush2(c-i-1, r.textPos()-r.bump()) + } + + r.advance(2) + continue + + case syntax.Oneloop | syntax.Back, syntax.Notoneloop | syntax.Back: + + r.trackPopN(2) + i := r.trackPeek() + pos := r.trackPeekN(1) + + r.textto(pos) + + if i > 0 { + r.trackPush2(i-1, pos-r.bump()) + } + + r.advance(2) + continue + + case syntax.Setloop | syntax.Back: + + r.trackPopN(2) + i := r.trackPeek() + pos := r.trackPeekN(1) + + r.textto(pos) + + if i > 0 { + r.trackPush2(i-1, pos-r.bump()) + } + + r.advance(2) + continue + + case syntax.Onelazy, syntax.Notonelazy: + + c := r.operand(1) + + if c > r.forwardchars() { + c = r.forwardchars() + } + + if c > 0 { + r.trackPush2(c-1, r.textPos()) + } + + r.advance(2) + continue + + case syntax.Setlazy: + + c := r.operand(1) + + if c > r.forwardchars() { + c = r.forwardchars() + } + + if c > 0 { + r.trackPush2(c-1, r.textPos()) + } + + r.advance(2) + continue + + case syntax.Onelazy | syntax.Back: + + r.trackPopN(2) + pos := r.trackPeekN(1) + r.textto(pos) + + if r.forwardcharnext() != rune(r.operand(0)) { + break + } + + i := r.trackPeek() + + if i > 0 { + r.trackPush2(i-1, pos+r.bump()) + } + + r.advance(2) + continue + + case syntax.Notonelazy | syntax.Back: + + r.trackPopN(2) + pos := r.trackPeekN(1) + r.textto(pos) + + if r.forwardcharnext() == rune(r.operand(0)) { + break + } + + i := r.trackPeek() + + if i > 0 { + r.trackPush2(i-1, pos+r.bump()) + } + + r.advance(2) + continue + + case syntax.Setlazy | syntax.Back: + + r.trackPopN(2) + pos := r.trackPeekN(1) + r.textto(pos) + + if !r.code.Sets[r.operand(0)].CharIn(r.forwardcharnext()) { + break + } + + i := r.trackPeek() + + if i > 0 { + r.trackPush2(i-1, pos+r.bump()) + } + + r.advance(2) + continue + + default: + return errors.New("unknown state in regex runner") + } + + BreakBackward: + ; + + // "break Backward" comes here: + r.backtrack() + } +} + +// increase the size of stack and track storage +func (r *runner) ensureStorage() { + if r.runstackpos < r.runtrackcount*4 { + doubleIntSlice(&r.runstack, &r.runstackpos) + } + if r.runtrackpos < r.runtrackcount*4 { + doubleIntSlice(&r.runtrack, &r.runtrackpos) + } +} + +func doubleIntSlice(s *[]int, pos *int) { + oldLen := len(*s) + newS := make([]int, oldLen*2) + + copy(newS[oldLen:], *s) + *pos += oldLen + *s = newS +} + +// Save a number on the longjump unrolling stack +func (r *runner) crawl(i int) { + if r.runcrawlpos == 0 { + doubleIntSlice(&r.runcrawl, &r.runcrawlpos) + } + r.runcrawlpos-- + r.runcrawl[r.runcrawlpos] = i +} + +// Remove a number from the longjump unrolling stack +func (r *runner) popcrawl() int { + val := r.runcrawl[r.runcrawlpos] + r.runcrawlpos++ + return val +} + +// Get the height of the stack +func (r *runner) crawlpos() int { + return len(r.runcrawl) - r.runcrawlpos +} + +func (r *runner) advance(i int) { + r.codepos += (i + 1) + r.setOperator(r.code.Codes[r.codepos]) +} + +func (r *runner) goTo(newpos int) { + // when branching backward, ensure storage + if newpos < r.codepos { + r.ensureStorage() + } + + r.setOperator(r.code.Codes[newpos]) + r.codepos = newpos +} + +func (r *runner) textto(newpos int) { + r.runtextpos = newpos +} + +func (r *runner) trackto(newpos int) { + r.runtrackpos = len(r.runtrack) - newpos +} + +func (r *runner) textstart() int { + return r.runtextstart +} + +func (r *runner) textPos() int { + return r.runtextpos +} + +// push onto the backtracking stack +func (r *runner) trackpos() int { + return len(r.runtrack) - r.runtrackpos +} + +func (r *runner) trackPush() { + r.runtrackpos-- + r.runtrack[r.runtrackpos] = r.codepos +} + +func (r *runner) trackPush1(I1 int) { + r.runtrackpos-- + r.runtrack[r.runtrackpos] = I1 + r.runtrackpos-- + r.runtrack[r.runtrackpos] = r.codepos +} + +func (r *runner) trackPush2(I1, I2 int) { + r.runtrackpos-- + r.runtrack[r.runtrackpos] = I1 + r.runtrackpos-- + r.runtrack[r.runtrackpos] = I2 + r.runtrackpos-- + r.runtrack[r.runtrackpos] = r.codepos +} + +func (r *runner) trackPush3(I1, I2, I3 int) { + r.runtrackpos-- + r.runtrack[r.runtrackpos] = I1 + r.runtrackpos-- + r.runtrack[r.runtrackpos] = I2 + r.runtrackpos-- + r.runtrack[r.runtrackpos] = I3 + r.runtrackpos-- + r.runtrack[r.runtrackpos] = r.codepos +} + +func (r *runner) trackPushNeg1(I1 int) { + r.runtrackpos-- + r.runtrack[r.runtrackpos] = I1 + r.runtrackpos-- + r.runtrack[r.runtrackpos] = -r.codepos +} + +func (r *runner) trackPushNeg2(I1, I2 int) { + r.runtrackpos-- + r.runtrack[r.runtrackpos] = I1 + r.runtrackpos-- + r.runtrack[r.runtrackpos] = I2 + r.runtrackpos-- + r.runtrack[r.runtrackpos] = -r.codepos +} + +func (r *runner) backtrack() { + newpos := r.runtrack[r.runtrackpos] + r.runtrackpos++ + + if r.re.Debug() { + if newpos < 0 { + fmt.Printf(" Backtracking (back2) to code position %v\n", -newpos) + } else { + fmt.Printf(" Backtracking to code position %v\n", newpos) + } + } + + if newpos < 0 { + newpos = -newpos + r.setOperator(r.code.Codes[newpos] | syntax.Back2) + } else { + r.setOperator(r.code.Codes[newpos] | syntax.Back) + } + + // When branching backward, ensure storage + if newpos < r.codepos { + r.ensureStorage() + } + + r.codepos = newpos +} + +func (r *runner) setOperator(op int) { + r.caseInsensitive = (0 != (op & syntax.Ci)) + r.rightToLeft = (0 != (op & syntax.Rtl)) + r.operator = syntax.InstOp(op & ^(syntax.Rtl | syntax.Ci)) +} + +func (r *runner) trackPop() { + r.runtrackpos++ +} + +// pop framesize items from the backtracking stack +func (r *runner) trackPopN(framesize int) { + r.runtrackpos += framesize +} + +// Technically we are actually peeking at items already popped. So if you want to +// get and pop the top item from the stack, you do +// r.trackPop(); +// r.trackPeek(); +func (r *runner) trackPeek() int { + return r.runtrack[r.runtrackpos-1] +} + +// get the ith element down on the backtracking stack +func (r *runner) trackPeekN(i int) int { + return r.runtrack[r.runtrackpos-i-1] +} + +// Push onto the grouping stack +func (r *runner) stackPush(I1 int) { + r.runstackpos-- + r.runstack[r.runstackpos] = I1 +} + +func (r *runner) stackPush2(I1, I2 int) { + r.runstackpos-- + r.runstack[r.runstackpos] = I1 + r.runstackpos-- + r.runstack[r.runstackpos] = I2 +} + +func (r *runner) stackPop() { + r.runstackpos++ +} + +// pop framesize items from the grouping stack +func (r *runner) stackPopN(framesize int) { + r.runstackpos += framesize +} + +// Technically we are actually peeking at items already popped. So if you want to +// get and pop the top item from the stack, you do +// r.stackPop(); +// r.stackPeek(); +func (r *runner) stackPeek() int { + return r.runstack[r.runstackpos-1] +} + +// get the ith element down on the grouping stack +func (r *runner) stackPeekN(i int) int { + return r.runstack[r.runstackpos-i-1] +} + +func (r *runner) operand(i int) int { + return r.code.Codes[r.codepos+i+1] +} + +func (r *runner) leftchars() int { + return r.runtextpos +} + +func (r *runner) rightchars() int { + return r.runtextend - r.runtextpos +} + +func (r *runner) bump() int { + if r.rightToLeft { + return -1 + } + return 1 +} + +func (r *runner) forwardchars() int { + if r.rightToLeft { + return r.runtextpos + } + return r.runtextend - r.runtextpos +} + +func (r *runner) forwardcharnext() rune { + var ch rune + if r.rightToLeft { + r.runtextpos-- + ch = r.runtext[r.runtextpos] + } else { + ch = r.runtext[r.runtextpos] + r.runtextpos++ + } + + if r.caseInsensitive { + return unicode.ToLower(ch) + } + return ch +} + +func (r *runner) runematch(str []rune) bool { + var pos int + + c := len(str) + if !r.rightToLeft { + if r.runtextend-r.runtextpos < c { + return false + } + + pos = r.runtextpos + c + } else { + if r.runtextpos-0 < c { + return false + } + + pos = r.runtextpos + } + + if !r.caseInsensitive { + for c != 0 { + c-- + pos-- + if str[c] != r.runtext[pos] { + return false + } + } + } else { + for c != 0 { + c-- + pos-- + if str[c] != unicode.ToLower(r.runtext[pos]) { + return false + } + } + } + + if !r.rightToLeft { + pos += len(str) + } + + r.runtextpos = pos + + return true +} + +func (r *runner) refmatch(index, len int) bool { + var c, pos, cmpos int + + if !r.rightToLeft { + if r.runtextend-r.runtextpos < len { + return false + } + + pos = r.runtextpos + len + } else { + if r.runtextpos-0 < len { + return false + } + + pos = r.runtextpos + } + cmpos = index + len + + c = len + + if !r.caseInsensitive { + for c != 0 { + c-- + cmpos-- + pos-- + if r.runtext[cmpos] != r.runtext[pos] { + return false + } + + } + } else { + for c != 0 { + c-- + cmpos-- + pos-- + + if unicode.ToLower(r.runtext[cmpos]) != unicode.ToLower(r.runtext[pos]) { + return false + } + } + } + + if !r.rightToLeft { + pos += len + } + + r.runtextpos = pos + + return true +} + +func (r *runner) backwardnext() { + if r.rightToLeft { + r.runtextpos++ + } else { + r.runtextpos-- + } +} + +func (r *runner) charAt(j int) rune { + return r.runtext[j] +} + +func (r *runner) findFirstChar() bool { + + if 0 != (r.code.Anchors & (syntax.AnchorBeginning | syntax.AnchorStart | syntax.AnchorEndZ | syntax.AnchorEnd)) { + if !r.code.RightToLeft { + if (0 != (r.code.Anchors&syntax.AnchorBeginning) && r.runtextpos > 0) || + (0 != (r.code.Anchors&syntax.AnchorStart) && r.runtextpos > r.runtextstart) { + r.runtextpos = r.runtextend + return false + } + if 0 != (r.code.Anchors&syntax.AnchorEndZ) && r.runtextpos < r.runtextend-1 { + r.runtextpos = r.runtextend - 1 + } else if 0 != (r.code.Anchors&syntax.AnchorEnd) && r.runtextpos < r.runtextend { + r.runtextpos = r.runtextend + } + } else { + if (0 != (r.code.Anchors&syntax.AnchorEnd) && r.runtextpos < r.runtextend) || + (0 != (r.code.Anchors&syntax.AnchorEndZ) && (r.runtextpos < r.runtextend-1 || + (r.runtextpos == r.runtextend-1 && r.charAt(r.runtextpos) != '\n'))) || + (0 != (r.code.Anchors&syntax.AnchorStart) && r.runtextpos < r.runtextstart) { + r.runtextpos = 0 + return false + } + if 0 != (r.code.Anchors&syntax.AnchorBeginning) && r.runtextpos > 0 { + r.runtextpos = 0 + } + } + + if r.code.BmPrefix != nil { + return r.code.BmPrefix.IsMatch(r.runtext, r.runtextpos, 0, r.runtextend) + } + + return true // found a valid start or end anchor + } else if r.code.BmPrefix != nil { + r.runtextpos = r.code.BmPrefix.Scan(r.runtext, r.runtextpos, 0, r.runtextend) + + if r.runtextpos == -1 { + if r.code.RightToLeft { + r.runtextpos = 0 + } else { + r.runtextpos = r.runtextend + } + return false + } + + return true + } else if r.code.FcPrefix == nil { + return true + } + + r.rightToLeft = r.code.RightToLeft + r.caseInsensitive = r.code.FcPrefix.CaseInsensitive + + set := r.code.FcPrefix.PrefixSet + if set.IsSingleton() { + ch := set.SingletonChar() + for i := r.forwardchars(); i > 0; i-- { + if ch == r.forwardcharnext() { + r.backwardnext() + return true + } + } + } else { + for i := r.forwardchars(); i > 0; i-- { + n := r.forwardcharnext() + //fmt.Printf("%v in %v: %v\n", string(n), set.String(), set.CharIn(n)) + if set.CharIn(n) { + r.backwardnext() + return true + } + } + } + + return false +} + +func (r *runner) initMatch() { + // Use a hashtable'ed Match object if the capture numbers are sparse + + if r.runmatch == nil { + if r.re.caps != nil { + r.runmatch = newMatchSparse(r.re, r.re.caps, r.re.capsize, r.runtext, r.runtextstart) + } else { + r.runmatch = newMatch(r.re, r.re.capsize, r.runtext, r.runtextstart) + } + } else { + r.runmatch.reset(r.runtext, r.runtextstart) + } + + // note we test runcrawl, because it is the last one to be allocated + // If there is an alloc failure in the middle of the three allocations, + // we may still return to reuse this instance, and we want to behave + // as if the allocations didn't occur. (we used to test _trackcount != 0) + + if r.runcrawl != nil { + r.runtrackpos = len(r.runtrack) + r.runstackpos = len(r.runstack) + r.runcrawlpos = len(r.runcrawl) + return + } + + r.initTrackCount() + + tracksize := r.runtrackcount * 8 + stacksize := r.runtrackcount * 8 + + if tracksize < 32 { + tracksize = 32 + } + if stacksize < 16 { + stacksize = 16 + } + + r.runtrack = make([]int, tracksize) + r.runtrackpos = tracksize + + r.runstack = make([]int, stacksize) + r.runstackpos = stacksize + + r.runcrawl = make([]int, 32) + r.runcrawlpos = 32 +} + +func (r *runner) tidyMatch(quick bool) *Match { + if !quick { + match := r.runmatch + + r.runmatch = nil + + match.tidy(r.runtextpos) + return match + } else { + // send back our match -- it's not leaving the package, so it's safe to not clean it up + // this reduces allocs for frequent calls to the "IsMatch" bool-only functions + return r.runmatch + } +} + +// capture captures a subexpression. Note that the +// capnum used here has already been mapped to a non-sparse +// index (by the code generator RegexWriter). +func (r *runner) capture(capnum, start, end int) { + if end < start { + T := end + end = start + start = T + } + + r.crawl(capnum) + r.runmatch.addMatch(capnum, start, end-start) +} + +// transferCapture captures a subexpression. Note that the +// capnum used here has already been mapped to a non-sparse +// index (by the code generator RegexWriter). +func (r *runner) transferCapture(capnum, uncapnum, start, end int) { + var start2, end2 int + + // these are the two intervals that are cancelling each other + + if end < start { + T := end + end = start + start = T + } + + start2 = r.runmatch.matchIndex(uncapnum) + end2 = start2 + r.runmatch.matchLength(uncapnum) + + // The new capture gets the innermost defined interval + + if start >= end2 { + end = start + start = end2 + } else if end <= start2 { + start = start2 + } else { + if end > end2 { + end = end2 + } + if start2 > start { + start = start2 + } + } + + r.crawl(uncapnum) + r.runmatch.balanceMatch(uncapnum) + + if capnum != -1 { + r.crawl(capnum) + r.runmatch.addMatch(capnum, start, end-start) + } +} + +// revert the last capture +func (r *runner) uncapture() { + capnum := r.popcrawl() + r.runmatch.removeMatch(capnum) +} + +//debug + +func (r *runner) dumpState() { + back := "" + if r.operator&syntax.Back != 0 { + back = " Back" + } + if r.operator&syntax.Back2 != 0 { + back += " Back2" + } + fmt.Printf("Text: %v\nTrack: %v\nStack: %v\n %s%s\n\n", + r.textposDescription(), + r.stackDescription(r.runtrack, r.runtrackpos), + r.stackDescription(r.runstack, r.runstackpos), + r.code.OpcodeDescription(r.codepos), + back) +} + +func (r *runner) stackDescription(a []int, index int) string { + buf := &bytes.Buffer{} + + fmt.Fprintf(buf, "%v/%v", len(a)-index, len(a)) + if buf.Len() < 8 { + buf.WriteString(strings.Repeat(" ", 8-buf.Len())) + } + + buf.WriteRune('(') + for i := index; i < len(a); i++ { + if i > index { + buf.WriteRune(' ') + } + + buf.WriteString(strconv.Itoa(a[i])) + } + + buf.WriteRune(')') + + return buf.String() +} + +func (r *runner) textposDescription() string { + buf := &bytes.Buffer{} + + buf.WriteString(strconv.Itoa(r.runtextpos)) + + if buf.Len() < 8 { + buf.WriteString(strings.Repeat(" ", 8-buf.Len())) + } + + if r.runtextpos > 0 { + buf.WriteString(syntax.CharDescription(r.runtext[r.runtextpos-1])) + } else { + buf.WriteRune('^') + } + + buf.WriteRune('>') + + for i := r.runtextpos; i < r.runtextend; i++ { + buf.WriteString(syntax.CharDescription(r.runtext[i])) + } + if buf.Len() >= 64 { + buf.Truncate(61) + buf.WriteString("...") + } else { + buf.WriteRune('$') + } + + return buf.String() +} + +// decide whether the pos +// at the specified index is a boundary or not. It's just not worth +// emitting inline code for this logic. +func (r *runner) isBoundary(index, startpos, endpos int) bool { + return (index > startpos && syntax.IsWordChar(r.runtext[index-1])) != + (index < endpos && syntax.IsWordChar(r.runtext[index])) +} + +func (r *runner) isECMABoundary(index, startpos, endpos int) bool { + return (index > startpos && syntax.IsECMAWordChar(r.runtext[index-1])) != + (index < endpos && syntax.IsECMAWordChar(r.runtext[index])) +} + +// this seems like a comment to justify randomly picking 1000 :-P +// We have determined this value in a series of experiments where x86 retail +// builds (ono-lab-optimized) were run on different pattern/input pairs. Larger values +// of TimeoutCheckFrequency did not tend to increase performance; smaller values +// of TimeoutCheckFrequency tended to slow down the execution. +const timeoutCheckFrequency int = 1000 + +func (r *runner) startTimeoutWatch() { + if r.ignoreTimeout { + return + } + + r.timeoutChecksToSkip = timeoutCheckFrequency + r.timeoutAt = time.Now().Add(r.timeout) +} + +func (r *runner) checkTimeout() error { + if r.ignoreTimeout { + return nil + } + r.timeoutChecksToSkip-- + if r.timeoutChecksToSkip != 0 { + return nil + } + + r.timeoutChecksToSkip = timeoutCheckFrequency + return r.doCheckTimeout() +} + +func (r *runner) doCheckTimeout() error { + current := time.Now() + + if current.Before(r.timeoutAt) { + return nil + } + + if r.re.Debug() { + //Debug.WriteLine("") + //Debug.WriteLine("RegEx match timeout occurred!") + //Debug.WriteLine("Specified timeout: " + TimeSpan.FromMilliseconds(_timeout).ToString()) + //Debug.WriteLine("Timeout check frequency: " + TimeoutCheckFrequency) + //Debug.WriteLine("Search pattern: " + _runregex._pattern) + //Debug.WriteLine("Input: " + r.runtext) + //Debug.WriteLine("About to throw RegexMatchTimeoutException.") + } + + return fmt.Errorf("match timeout after %v on input `%v`", r.timeout, string(r.runtext)) +} + +func (r *runner) initTrackCount() { + r.runtrackcount = r.code.TrackCount +} + +// getRunner returns a run to use for matching re. +// It uses the re's runner cache if possible, to avoid +// unnecessary allocation. +func (re *Regexp) getRunner() *runner { + re.muRun.Lock() + if n := len(re.runner); n > 0 { + z := re.runner[n-1] + re.runner = re.runner[:n-1] + re.muRun.Unlock() + return z + } + re.muRun.Unlock() + z := &runner{ + re: re, + code: re.code, + } + return z +} + +// putRunner returns a runner to the re's cache. +// There is no attempt to limit the size of the cache, so it will +// grow to the maximum number of simultaneous matches +// run using re. (The cache empties when re gets garbage collected.) +func (re *Regexp) putRunner(r *runner) { + re.muRun.Lock() + re.runner = append(re.runner, r) + re.muRun.Unlock() +} diff --git a/vendor/github.com/dlclark/regexp2/syntax/charclass.go b/vendor/github.com/dlclark/regexp2/syntax/charclass.go new file mode 100644 index 00000000000..f312ea7a08b --- /dev/null +++ b/vendor/github.com/dlclark/regexp2/syntax/charclass.go @@ -0,0 +1,784 @@ +package syntax + +import ( + "bytes" + "encoding/binary" + "fmt" + "sort" + "unicode" + "unicode/utf8" +) + +// CharSet combines start-end rune ranges and unicode categories representing a set of characters +type CharSet struct { + ranges []singleRange + categories []category + sub *CharSet //optional subtractor + negate bool + anything bool +} + +type category struct { + negate bool + cat string +} + +type singleRange struct { + first rune + last rune +} + +const ( + spaceCategoryText = " " + wordCategoryText = "W" +) + +var ( + ecmaSpace = []rune{0x0009, 0x000e, 0x0020, 0x0021, 0x00a0, 0x00a1, 0x1680, 0x1681, 0x2000, 0x200b, 0x2028, 0x202a, 0x202f, 0x2030, 0x205f, 0x2060, 0x3000, 0x3001, 0xfeff, 0xff00} + ecmaWord = []rune{0x0030, 0x003a, 0x0041, 0x005b, 0x005f, 0x0060, 0x0061, 0x007b} + ecmaDigit = []rune{0x0030, 0x003a} +) + +var ( + AnyClass = getCharSetFromOldString([]rune{0}, false) + ECMAAnyClass = getCharSetFromOldString([]rune{0, 0x000a, 0x000b, 0x000d, 0x000e}, false) + NoneClass = getCharSetFromOldString(nil, false) + ECMAWordClass = getCharSetFromOldString(ecmaWord, false) + NotECMAWordClass = getCharSetFromOldString(ecmaWord, true) + ECMASpaceClass = getCharSetFromOldString(ecmaSpace, false) + NotECMASpaceClass = getCharSetFromOldString(ecmaSpace, true) + ECMADigitClass = getCharSetFromOldString(ecmaDigit, false) + NotECMADigitClass = getCharSetFromOldString(ecmaDigit, true) + + WordClass = getCharSetFromCategoryString(false, false, wordCategoryText) + NotWordClass = getCharSetFromCategoryString(true, false, wordCategoryText) + SpaceClass = getCharSetFromCategoryString(false, false, spaceCategoryText) + NotSpaceClass = getCharSetFromCategoryString(true, false, spaceCategoryText) + DigitClass = getCharSetFromCategoryString(false, false, "Nd") + NotDigitClass = getCharSetFromCategoryString(false, true, "Nd") +) + +var unicodeCategories = func() map[string]*unicode.RangeTable { + retVal := make(map[string]*unicode.RangeTable) + for k, v := range unicode.Scripts { + retVal[k] = v + } + for k, v := range unicode.Categories { + retVal[k] = v + } + for k, v := range unicode.Properties { + retVal[k] = v + } + return retVal +}() + +func getCharSetFromCategoryString(negateSet bool, negateCat bool, cats ...string) func() *CharSet { + if negateCat && negateSet { + panic("BUG! You should only negate the set OR the category in a constant setup, but not both") + } + + c := CharSet{negate: negateSet} + + c.categories = make([]category, len(cats)) + for i, cat := range cats { + c.categories[i] = category{cat: cat, negate: negateCat} + } + return func() *CharSet { + //make a copy each time + local := c + //return that address + return &local + } +} + +func getCharSetFromOldString(setText []rune, negate bool) func() *CharSet { + c := CharSet{} + if len(setText) > 0 { + fillFirst := false + l := len(setText) + if negate { + if setText[0] == 0 { + setText = setText[1:] + } else { + l++ + fillFirst = true + } + } + + if l%2 == 0 { + c.ranges = make([]singleRange, l/2) + } else { + c.ranges = make([]singleRange, l/2+1) + } + + first := true + if fillFirst { + c.ranges[0] = singleRange{first: 0} + first = false + } + + i := 0 + for _, r := range setText { + if first { + // lower bound in a new range + c.ranges[i] = singleRange{first: r} + first = false + } else { + c.ranges[i].last = r - 1 + i++ + first = true + } + } + if !first { + c.ranges[i].last = utf8.MaxRune + } + } + + return func() *CharSet { + local := c + return &local + } +} + +// Copy makes a deep copy to prevent accidental mutation of a set +func (c CharSet) Copy() CharSet { + ret := CharSet{ + anything: c.anything, + negate: c.negate, + } + + ret.ranges = append(ret.ranges, c.ranges...) + ret.categories = append(ret.categories, c.categories...) + + if c.sub != nil { + sub := c.sub.Copy() + ret.sub = &sub + } + + return ret +} + +// gets a human-readable description for a set string +func (c CharSet) String() string { + buf := &bytes.Buffer{} + buf.WriteRune('[') + + if c.IsNegated() { + buf.WriteRune('^') + } + + for _, r := range c.ranges { + + buf.WriteString(CharDescription(r.first)) + if r.first != r.last { + if r.last-r.first != 1 { + //groups that are 1 char apart skip the dash + buf.WriteRune('-') + } + buf.WriteString(CharDescription(r.last)) + } + } + + for _, c := range c.categories { + buf.WriteString(c.String()) + } + + if c.sub != nil { + buf.WriteRune('-') + buf.WriteString(c.sub.String()) + } + + buf.WriteRune(']') + + return buf.String() +} + +// mapHashFill converts a charset into a buffer for use in maps +func (c CharSet) mapHashFill(buf *bytes.Buffer) { + if c.negate { + buf.WriteByte(0) + } else { + buf.WriteByte(1) + } + + binary.Write(buf, binary.LittleEndian, len(c.ranges)) + binary.Write(buf, binary.LittleEndian, len(c.categories)) + for _, r := range c.ranges { + buf.WriteRune(r.first) + buf.WriteRune(r.last) + } + for _, ct := range c.categories { + buf.WriteString(ct.cat) + if ct.negate { + buf.WriteByte(1) + } else { + buf.WriteByte(0) + } + } + + if c.sub != nil { + c.sub.mapHashFill(buf) + } +} + +// CharIn returns true if the rune is in our character set (either ranges or categories). +// It handles negations and subtracted sub-charsets. +func (c CharSet) CharIn(ch rune) bool { + val := false + // in s && !s.subtracted + + //check ranges + for _, r := range c.ranges { + if ch < r.first { + continue + } + if ch <= r.last { + val = true + break + } + } + + //check categories if we haven't already found a range + if !val && len(c.categories) > 0 { + for _, ct := range c.categories { + // special categories...then unicode + if ct.cat == spaceCategoryText { + if unicode.IsSpace(ch) { + // we found a space so we're done + // negate means this is a "bad" thing + val = !ct.negate + break + } else if ct.negate { + val = true + break + } + } else if ct.cat == wordCategoryText { + if IsWordChar(ch) { + val = !ct.negate + break + } else if ct.negate { + val = true + break + } + } else if unicode.Is(unicodeCategories[ct.cat], ch) { + // if we're in this unicode category then we're done + // if negate=true on this category then we "failed" our test + // otherwise we're good that we found it + val = !ct.negate + break + } else if ct.negate { + val = true + break + } + } + } + + // negate the whole char set + if c.negate { + val = !val + } + + // get subtracted recurse + if val && c.sub != nil { + val = !c.sub.CharIn(ch) + } + + //log.Printf("Char '%v' in %v == %v", string(ch), c.String(), val) + return val +} + +func (c category) String() string { + switch c.cat { + case spaceCategoryText: + if c.negate { + return "\\S" + } + return "\\s" + case wordCategoryText: + if c.negate { + return "\\W" + } + return "\\w" + } + if _, ok := unicodeCategories[c.cat]; ok { + + if c.negate { + return "\\P{" + c.cat + "}" + } + return "\\p{" + c.cat + "}" + } + return "Unknown category: " + c.cat +} + +// CharDescription Produces a human-readable description for a single character. +func CharDescription(ch rune) string { + /*if ch == '\\' { + return "\\\\" + } + + if ch > ' ' && ch <= '~' { + return string(ch) + } else if ch == '\n' { + return "\\n" + } else if ch == ' ' { + return "\\ " + }*/ + + b := &bytes.Buffer{} + escape(b, ch, false) //fmt.Sprintf("%U", ch) + return b.String() +} + +// According to UTS#18 Unicode Regular Expressions (http://www.unicode.org/reports/tr18/) +// RL 1.4 Simple Word Boundaries The class of includes all Alphabetic +// values from the Unicode character database, from UnicodeData.txt [UData], plus the U+200C +// ZERO WIDTH NON-JOINER and U+200D ZERO WIDTH JOINER. +func IsWordChar(r rune) bool { + //"L", "Mn", "Nd", "Pc" + return unicode.In(r, + unicode.Categories["L"], unicode.Categories["Mn"], + unicode.Categories["Nd"], unicode.Categories["Pc"]) || r == '\u200D' || r == '\u200C' + //return 'A' <= r && r <= 'Z' || 'a' <= r && r <= 'z' || '0' <= r && r <= '9' || r == '_' +} + +func IsECMAWordChar(r rune) bool { + return unicode.In(r, + unicode.Categories["L"], unicode.Categories["Mn"], + unicode.Categories["Nd"], unicode.Categories["Pc"]) + + //return 'A' <= r && r <= 'Z' || 'a' <= r && r <= 'z' || '0' <= r && r <= '9' || r == '_' +} + +// SingletonChar will return the char from the first range without validation. +// It assumes you have checked for IsSingleton or IsSingletonInverse and will panic given bad input +func (c CharSet) SingletonChar() rune { + return c.ranges[0].first +} + +func (c CharSet) IsSingleton() bool { + return !c.negate && //negated is multiple chars + len(c.categories) == 0 && len(c.ranges) == 1 && // multiple ranges and unicode classes represent multiple chars + c.sub == nil && // subtraction means we've got multiple chars + c.ranges[0].first == c.ranges[0].last // first and last equal means we're just 1 char +} + +func (c CharSet) IsSingletonInverse() bool { + return c.negate && //same as above, but requires negated + len(c.categories) == 0 && len(c.ranges) == 1 && // multiple ranges and unicode classes represent multiple chars + c.sub == nil && // subtraction means we've got multiple chars + c.ranges[0].first == c.ranges[0].last // first and last equal means we're just 1 char +} + +func (c CharSet) IsMergeable() bool { + return !c.IsNegated() && !c.HasSubtraction() +} + +func (c CharSet) IsNegated() bool { + return c.negate +} + +func (c CharSet) HasSubtraction() bool { + return c.sub != nil +} + +func (c CharSet) IsEmpty() bool { + return len(c.ranges) == 0 && len(c.categories) == 0 && c.sub == nil +} + +func (c *CharSet) addDigit(ecma, negate bool, pattern string) { + if ecma { + if negate { + c.addRanges(NotECMADigitClass().ranges) + } else { + c.addRanges(ECMADigitClass().ranges) + } + } else { + c.addCategories(category{cat: "Nd", negate: negate}) + } +} + +func (c *CharSet) addChar(ch rune) { + c.addRange(ch, ch) +} + +func (c *CharSet) addSpace(ecma, negate bool) { + if ecma { + if negate { + c.addRanges(NotECMASpaceClass().ranges) + } else { + c.addRanges(ECMASpaceClass().ranges) + } + } else { + c.addCategories(category{cat: spaceCategoryText, negate: negate}) + } +} + +func (c *CharSet) addWord(ecma, negate bool) { + if ecma { + if negate { + c.addRanges(NotECMAWordClass().ranges) + } else { + c.addRanges(ECMAWordClass().ranges) + } + } else { + c.addCategories(category{cat: wordCategoryText, negate: negate}) + } +} + +// Add set ranges and categories into ours -- no deduping or anything +func (c *CharSet) addSet(set CharSet) { + if c.anything { + return + } + if set.anything { + c.makeAnything() + return + } + // just append here to prevent double-canon + c.ranges = append(c.ranges, set.ranges...) + c.addCategories(set.categories...) + c.canonicalize() +} + +func (c *CharSet) makeAnything() { + c.anything = true + c.categories = []category{} + c.ranges = AnyClass().ranges +} + +func (c *CharSet) addCategories(cats ...category) { + // don't add dupes and remove positive+negative + if c.anything { + // if we've had a previous positive+negative group then + // just return, we're as broad as we can get + return + } + + for _, ct := range cats { + found := false + for _, ct2 := range c.categories { + if ct.cat == ct2.cat { + if ct.negate != ct2.negate { + // oposite negations...this mean we just + // take us as anything and move on + c.makeAnything() + return + } + found = true + break + } + } + + if !found { + c.categories = append(c.categories, ct) + } + } +} + +// Merges new ranges to our own +func (c *CharSet) addRanges(ranges []singleRange) { + if c.anything { + return + } + c.ranges = append(c.ranges, ranges...) + c.canonicalize() +} + +func isValidUnicodeCat(catName string) bool { + _, ok := unicodeCategories[catName] + return ok +} + +func (c *CharSet) addCategory(categoryName string, negate, caseInsensitive bool, pattern string) { + if !isValidUnicodeCat(categoryName) { + // unknown unicode category, script, or property "blah" + panic(fmt.Errorf("Unknown unicode category, script, or property '%v'", categoryName)) + + } + + if caseInsensitive && (categoryName == "Ll" || categoryName == "Lu" || categoryName == "Lt") { + // when RegexOptions.IgnoreCase is specified then {Ll} {Lu} and {Lt} cases should all match + c.addCategories( + category{cat: "Ll", negate: negate}, + category{cat: "Lu", negate: negate}, + category{cat: "Lt", negate: negate}) + } + c.addCategories(category{cat: categoryName, negate: negate}) +} + +func (c *CharSet) addSubtraction(sub *CharSet) { + c.sub = sub +} + +func (c *CharSet) addRange(chMin, chMax rune) { + c.ranges = append(c.ranges, singleRange{first: chMin, last: chMax}) + c.canonicalize() +} + +type singleRangeSorter []singleRange + +func (p singleRangeSorter) Len() int { return len(p) } +func (p singleRangeSorter) Less(i, j int) bool { return p[i].first < p[j].first } +func (p singleRangeSorter) Swap(i, j int) { p[i], p[j] = p[j], p[i] } + +// Logic to reduce a character class to a unique, sorted form. +func (c *CharSet) canonicalize() { + var i, j int + var last rune + + // + // Find and eliminate overlapping or abutting ranges + // + + if len(c.ranges) > 1 { + sort.Sort(singleRangeSorter(c.ranges)) + + done := false + + for i, j = 1, 0; ; i++ { + for last = c.ranges[j].last; ; i++ { + if i == len(c.ranges) || last == utf8.MaxRune { + done = true + break + } + + CurrentRange := c.ranges[i] + if CurrentRange.first > last+1 { + break + } + + if last < CurrentRange.last { + last = CurrentRange.last + } + } + + c.ranges[j] = singleRange{first: c.ranges[j].first, last: last} + + j++ + + if done { + break + } + + if j < i { + c.ranges[j] = c.ranges[i] + } + } + + c.ranges = append(c.ranges[:j], c.ranges[len(c.ranges):]...) + } +} + +// Adds to the class any lowercase versions of characters already +// in the class. Used for case-insensitivity. +func (c *CharSet) addLowercase() { + if c.anything { + return + } + toAdd := []singleRange{} + for i := 0; i < len(c.ranges); i++ { + r := c.ranges[i] + if r.first == r.last { + lower := unicode.ToLower(r.first) + c.ranges[i] = singleRange{first: lower, last: lower} + } else { + toAdd = append(toAdd, r) + } + } + + for _, r := range toAdd { + c.addLowercaseRange(r.first, r.last) + } + c.canonicalize() +} + +/************************************************************************** + Let U be the set of Unicode character values and let L be the lowercase + function, mapping from U to U. To perform case insensitive matching of + character sets, we need to be able to map an interval I in U, say + + I = [chMin, chMax] = { ch : chMin <= ch <= chMax } + + to a set A such that A contains L(I) and A is contained in the union of + I and L(I). + + The table below partitions U into intervals on which L is non-decreasing. + Thus, for any interval J = [a, b] contained in one of these intervals, + L(J) is contained in [L(a), L(b)]. + + It is also true that for any such J, [L(a), L(b)] is contained in the + union of J and L(J). This does not follow from L being non-decreasing on + these intervals. It follows from the nature of the L on each interval. + On each interval, L has one of the following forms: + + (1) L(ch) = constant (LowercaseSet) + (2) L(ch) = ch + offset (LowercaseAdd) + (3) L(ch) = ch | 1 (LowercaseBor) + (4) L(ch) = ch + (ch & 1) (LowercaseBad) + + It is easy to verify that for any of these forms [L(a), L(b)] is + contained in the union of [a, b] and L([a, b]). +***************************************************************************/ + +const ( + LowercaseSet = 0 // Set to arg. + LowercaseAdd = 1 // Add arg. + LowercaseBor = 2 // Bitwise or with 1. + LowercaseBad = 3 // Bitwise and with 1 and add original. +) + +type lcMap struct { + chMin, chMax rune + op, data int32 +} + +var lcTable = []lcMap{ + lcMap{'\u0041', '\u005A', LowercaseAdd, 32}, + lcMap{'\u00C0', '\u00DE', LowercaseAdd, 32}, + lcMap{'\u0100', '\u012E', LowercaseBor, 0}, + lcMap{'\u0130', '\u0130', LowercaseSet, 0x0069}, + lcMap{'\u0132', '\u0136', LowercaseBor, 0}, + lcMap{'\u0139', '\u0147', LowercaseBad, 0}, + lcMap{'\u014A', '\u0176', LowercaseBor, 0}, + lcMap{'\u0178', '\u0178', LowercaseSet, 0x00FF}, + lcMap{'\u0179', '\u017D', LowercaseBad, 0}, + lcMap{'\u0181', '\u0181', LowercaseSet, 0x0253}, + lcMap{'\u0182', '\u0184', LowercaseBor, 0}, + lcMap{'\u0186', '\u0186', LowercaseSet, 0x0254}, + lcMap{'\u0187', '\u0187', LowercaseSet, 0x0188}, + lcMap{'\u0189', '\u018A', LowercaseAdd, 205}, + lcMap{'\u018B', '\u018B', LowercaseSet, 0x018C}, + lcMap{'\u018E', '\u018E', LowercaseSet, 0x01DD}, + lcMap{'\u018F', '\u018F', LowercaseSet, 0x0259}, + lcMap{'\u0190', '\u0190', LowercaseSet, 0x025B}, + lcMap{'\u0191', '\u0191', LowercaseSet, 0x0192}, + lcMap{'\u0193', '\u0193', LowercaseSet, 0x0260}, + lcMap{'\u0194', '\u0194', LowercaseSet, 0x0263}, + lcMap{'\u0196', '\u0196', LowercaseSet, 0x0269}, + lcMap{'\u0197', '\u0197', LowercaseSet, 0x0268}, + lcMap{'\u0198', '\u0198', LowercaseSet, 0x0199}, + lcMap{'\u019C', '\u019C', LowercaseSet, 0x026F}, + lcMap{'\u019D', '\u019D', LowercaseSet, 0x0272}, + lcMap{'\u019F', '\u019F', LowercaseSet, 0x0275}, + lcMap{'\u01A0', '\u01A4', LowercaseBor, 0}, + lcMap{'\u01A7', '\u01A7', LowercaseSet, 0x01A8}, + lcMap{'\u01A9', '\u01A9', LowercaseSet, 0x0283}, + lcMap{'\u01AC', '\u01AC', LowercaseSet, 0x01AD}, + lcMap{'\u01AE', '\u01AE', LowercaseSet, 0x0288}, + lcMap{'\u01AF', '\u01AF', LowercaseSet, 0x01B0}, + lcMap{'\u01B1', '\u01B2', LowercaseAdd, 217}, + lcMap{'\u01B3', '\u01B5', LowercaseBad, 0}, + lcMap{'\u01B7', '\u01B7', LowercaseSet, 0x0292}, + lcMap{'\u01B8', '\u01B8', LowercaseSet, 0x01B9}, + lcMap{'\u01BC', '\u01BC', LowercaseSet, 0x01BD}, + lcMap{'\u01C4', '\u01C5', LowercaseSet, 0x01C6}, + lcMap{'\u01C7', '\u01C8', LowercaseSet, 0x01C9}, + lcMap{'\u01CA', '\u01CB', LowercaseSet, 0x01CC}, + lcMap{'\u01CD', '\u01DB', LowercaseBad, 0}, + lcMap{'\u01DE', '\u01EE', LowercaseBor, 0}, + lcMap{'\u01F1', '\u01F2', LowercaseSet, 0x01F3}, + lcMap{'\u01F4', '\u01F4', LowercaseSet, 0x01F5}, + lcMap{'\u01FA', '\u0216', LowercaseBor, 0}, + lcMap{'\u0386', '\u0386', LowercaseSet, 0x03AC}, + lcMap{'\u0388', '\u038A', LowercaseAdd, 37}, + lcMap{'\u038C', '\u038C', LowercaseSet, 0x03CC}, + lcMap{'\u038E', '\u038F', LowercaseAdd, 63}, + lcMap{'\u0391', '\u03AB', LowercaseAdd, 32}, + lcMap{'\u03E2', '\u03EE', LowercaseBor, 0}, + lcMap{'\u0401', '\u040F', LowercaseAdd, 80}, + lcMap{'\u0410', '\u042F', LowercaseAdd, 32}, + lcMap{'\u0460', '\u0480', LowercaseBor, 0}, + lcMap{'\u0490', '\u04BE', LowercaseBor, 0}, + lcMap{'\u04C1', '\u04C3', LowercaseBad, 0}, + lcMap{'\u04C7', '\u04C7', LowercaseSet, 0x04C8}, + lcMap{'\u04CB', '\u04CB', LowercaseSet, 0x04CC}, + lcMap{'\u04D0', '\u04EA', LowercaseBor, 0}, + lcMap{'\u04EE', '\u04F4', LowercaseBor, 0}, + lcMap{'\u04F8', '\u04F8', LowercaseSet, 0x04F9}, + lcMap{'\u0531', '\u0556', LowercaseAdd, 48}, + lcMap{'\u10A0', '\u10C5', LowercaseAdd, 48}, + lcMap{'\u1E00', '\u1EF8', LowercaseBor, 0}, + lcMap{'\u1F08', '\u1F0F', LowercaseAdd, -8}, + lcMap{'\u1F18', '\u1F1F', LowercaseAdd, -8}, + lcMap{'\u1F28', '\u1F2F', LowercaseAdd, -8}, + lcMap{'\u1F38', '\u1F3F', LowercaseAdd, -8}, + lcMap{'\u1F48', '\u1F4D', LowercaseAdd, -8}, + lcMap{'\u1F59', '\u1F59', LowercaseSet, 0x1F51}, + lcMap{'\u1F5B', '\u1F5B', LowercaseSet, 0x1F53}, + lcMap{'\u1F5D', '\u1F5D', LowercaseSet, 0x1F55}, + lcMap{'\u1F5F', '\u1F5F', LowercaseSet, 0x1F57}, + lcMap{'\u1F68', '\u1F6F', LowercaseAdd, -8}, + lcMap{'\u1F88', '\u1F8F', LowercaseAdd, -8}, + lcMap{'\u1F98', '\u1F9F', LowercaseAdd, -8}, + lcMap{'\u1FA8', '\u1FAF', LowercaseAdd, -8}, + lcMap{'\u1FB8', '\u1FB9', LowercaseAdd, -8}, + lcMap{'\u1FBA', '\u1FBB', LowercaseAdd, -74}, + lcMap{'\u1FBC', '\u1FBC', LowercaseSet, 0x1FB3}, + lcMap{'\u1FC8', '\u1FCB', LowercaseAdd, -86}, + lcMap{'\u1FCC', '\u1FCC', LowercaseSet, 0x1FC3}, + lcMap{'\u1FD8', '\u1FD9', LowercaseAdd, -8}, + lcMap{'\u1FDA', '\u1FDB', LowercaseAdd, -100}, + lcMap{'\u1FE8', '\u1FE9', LowercaseAdd, -8}, + lcMap{'\u1FEA', '\u1FEB', LowercaseAdd, -112}, + lcMap{'\u1FEC', '\u1FEC', LowercaseSet, 0x1FE5}, + lcMap{'\u1FF8', '\u1FF9', LowercaseAdd, -128}, + lcMap{'\u1FFA', '\u1FFB', LowercaseAdd, -126}, + lcMap{'\u1FFC', '\u1FFC', LowercaseSet, 0x1FF3}, + lcMap{'\u2160', '\u216F', LowercaseAdd, 16}, + lcMap{'\u24B6', '\u24D0', LowercaseAdd, 26}, + lcMap{'\uFF21', '\uFF3A', LowercaseAdd, 32}, +} + +func (c *CharSet) addLowercaseRange(chMin, chMax rune) { + var i, iMax, iMid int + var chMinT, chMaxT rune + var lc lcMap + + for i, iMax = 0, len(lcTable); i < iMax; { + iMid = (i + iMax) / 2 + if lcTable[iMid].chMax < chMin { + i = iMid + 1 + } else { + iMax = iMid + } + } + + for ; i < len(lcTable); i++ { + lc = lcTable[i] + if lc.chMin > chMax { + return + } + chMinT = lc.chMin + if chMinT < chMin { + chMinT = chMin + } + + chMaxT = lc.chMax + if chMaxT > chMax { + chMaxT = chMax + } + + switch lc.op { + case LowercaseSet: + chMinT = rune(lc.data) + chMaxT = rune(lc.data) + break + case LowercaseAdd: + chMinT += lc.data + chMaxT += lc.data + break + case LowercaseBor: + chMinT |= 1 + chMaxT |= 1 + break + case LowercaseBad: + chMinT += (chMinT & 1) + chMaxT += (chMaxT & 1) + break + } + + if chMinT < chMin || chMaxT > chMax { + c.addRange(chMinT, chMaxT) + } + } +} diff --git a/vendor/github.com/dlclark/regexp2/syntax/code.go b/vendor/github.com/dlclark/regexp2/syntax/code.go new file mode 100644 index 00000000000..686e822af82 --- /dev/null +++ b/vendor/github.com/dlclark/regexp2/syntax/code.go @@ -0,0 +1,274 @@ +package syntax + +import ( + "bytes" + "fmt" + "math" +) + +// similar to prog.go in the go regex package...also with comment 'may not belong in this package' + +// File provides operator constants for use by the Builder and the Machine. + +// Implementation notes: +// +// Regexps are built into RegexCodes, which contain an operation array, +// a string table, and some constants. +// +// Each operation is one of the codes below, followed by the integer +// operands specified for each op. +// +// Strings and sets are indices into a string table. + +type InstOp int + +const ( + // lef/back operands description + + Onerep InstOp = 0 // lef,back char,min,max a {n} + Notonerep = 1 // lef,back char,min,max .{n} + Setrep = 2 // lef,back set,min,max [\d]{n} + + Oneloop = 3 // lef,back char,min,max a {,n} + Notoneloop = 4 // lef,back char,min,max .{,n} + Setloop = 5 // lef,back set,min,max [\d]{,n} + + Onelazy = 6 // lef,back char,min,max a {,n}? + Notonelazy = 7 // lef,back char,min,max .{,n}? + Setlazy = 8 // lef,back set,min,max [\d]{,n}? + + One = 9 // lef char a + Notone = 10 // lef char [^a] + Set = 11 // lef set [a-z\s] \w \s \d + + Multi = 12 // lef string abcd + Ref = 13 // lef group \# + + Bol = 14 // ^ + Eol = 15 // $ + Boundary = 16 // \b + Nonboundary = 17 // \B + Beginning = 18 // \A + Start = 19 // \G + EndZ = 20 // \Z + End = 21 // \Z + + Nothing = 22 // Reject! + + // Primitive control structures + + Lazybranch = 23 // back jump straight first + Branchmark = 24 // back jump branch first for loop + Lazybranchmark = 25 // back jump straight first for loop + Nullcount = 26 // back val set counter, null mark + Setcount = 27 // back val set counter, make mark + Branchcount = 28 // back jump,limit branch++ if zero<=c impl group slots + Capsize int // number of impl group slots + FcPrefix *Prefix // the set of candidate first characters (may be null) + BmPrefix *BmPrefix // the fixed prefix string as a Boyer-Moore machine (may be null) + Anchors AnchorLoc // the set of zero-length start anchors (RegexFCD.Bol, etc) + RightToLeft bool // true if right to left +} + +func opcodeBacktracks(op InstOp) bool { + op &= Mask + + switch op { + case Oneloop, Notoneloop, Setloop, Onelazy, Notonelazy, Setlazy, Lazybranch, Branchmark, Lazybranchmark, + Nullcount, Setcount, Branchcount, Lazybranchcount, Setmark, Capturemark, Getmark, Setjump, Backjump, + Forejump, Goto: + return true + + default: + return false + } +} + +func opcodeSize(op InstOp) int { + op &= Mask + + switch op { + case Nothing, Bol, Eol, Boundary, Nonboundary, ECMABoundary, NonECMABoundary, Beginning, Start, EndZ, + End, Nullmark, Setmark, Getmark, Setjump, Backjump, Forejump, Stop: + return 1 + + case One, Notone, Multi, Ref, Testref, Goto, Nullcount, Setcount, Lazybranch, Branchmark, Lazybranchmark, + Prune, Set: + return 2 + + case Capturemark, Branchcount, Lazybranchcount, Onerep, Notonerep, Oneloop, Notoneloop, Onelazy, Notonelazy, + Setlazy, Setrep, Setloop: + return 3 + + default: + panic(fmt.Errorf("Unexpected op code: %v", op)) + } +} + +var codeStr = []string{ + "Onerep", "Notonerep", "Setrep", + "Oneloop", "Notoneloop", "Setloop", + "Onelazy", "Notonelazy", "Setlazy", + "One", "Notone", "Set", + "Multi", "Ref", + "Bol", "Eol", "Boundary", "Nonboundary", "Beginning", "Start", "EndZ", "End", + "Nothing", + "Lazybranch", "Branchmark", "Lazybranchmark", + "Nullcount", "Setcount", "Branchcount", "Lazybranchcount", + "Nullmark", "Setmark", "Capturemark", "Getmark", + "Setjump", "Backjump", "Forejump", "Testref", "Goto", + "Prune", "Stop", + "ECMABoundary", "NonECMABoundary", +} + +func operatorDescription(op InstOp) string { + desc := codeStr[op&Mask] + if (op & Ci) != 0 { + desc += "-Ci" + } + if (op & Rtl) != 0 { + desc += "-Rtl" + } + if (op & Back) != 0 { + desc += "-Back" + } + if (op & Back2) != 0 { + desc += "-Back2" + } + + return desc +} + +// OpcodeDescription is a humman readable string of the specific offset +func (c *Code) OpcodeDescription(offset int) string { + buf := &bytes.Buffer{} + + op := InstOp(c.Codes[offset]) + fmt.Fprintf(buf, "%06d ", offset) + + if opcodeBacktracks(op & Mask) { + buf.WriteString("*") + } else { + buf.WriteString(" ") + } + buf.WriteString(operatorDescription(op)) + buf.WriteString("(") + op &= Mask + + switch op { + case One, Notone, Onerep, Notonerep, Oneloop, Notoneloop, Onelazy, Notonelazy: + buf.WriteString("Ch = ") + buf.WriteString(CharDescription(rune(c.Codes[offset+1]))) + + case Set, Setrep, Setloop, Setlazy: + buf.WriteString("Set = ") + buf.WriteString(c.Sets[c.Codes[offset+1]].String()) + + case Multi: + fmt.Fprintf(buf, "String = %s", string(c.Strings[c.Codes[offset+1]])) + + case Ref, Testref: + fmt.Fprintf(buf, "Index = %d", c.Codes[offset+1]) + + case Capturemark: + fmt.Fprintf(buf, "Index = %d", c.Codes[offset+1]) + if c.Codes[offset+2] != -1 { + fmt.Fprintf(buf, ", Unindex = %d", c.Codes[offset+2]) + } + + case Nullcount, Setcount: + fmt.Fprintf(buf, "Value = %d", c.Codes[offset+1]) + + case Goto, Lazybranch, Branchmark, Lazybranchmark, Branchcount, Lazybranchcount: + fmt.Fprintf(buf, "Addr = %d", c.Codes[offset+1]) + } + + switch op { + case Onerep, Notonerep, Oneloop, Notoneloop, Onelazy, Notonelazy, Setrep, Setloop, Setlazy: + buf.WriteString(", Rep = ") + if c.Codes[offset+2] == math.MaxInt32 { + buf.WriteString("inf") + } else { + fmt.Fprintf(buf, "%d", c.Codes[offset+2]) + } + + case Branchcount, Lazybranchcount: + buf.WriteString(", Limit = ") + if c.Codes[offset+2] == math.MaxInt32 { + buf.WriteString("inf") + } else { + fmt.Fprintf(buf, "%d", c.Codes[offset+2]) + } + + } + + buf.WriteString(")") + + return buf.String() +} + +func (c *Code) Dump() string { + buf := &bytes.Buffer{} + + if c.RightToLeft { + fmt.Fprintln(buf, "Direction: right-to-left") + } else { + fmt.Fprintln(buf, "Direction: left-to-right") + } + if c.FcPrefix == nil { + fmt.Fprintln(buf, "Firstchars: n/a") + } else { + fmt.Fprintf(buf, "Firstchars: %v\n", c.FcPrefix.PrefixSet.String()) + } + + if c.BmPrefix == nil { + fmt.Fprintln(buf, "Prefix: n/a") + } else { + fmt.Fprintf(buf, "Prefix: %v\n", Escape(c.BmPrefix.String())) + } + + fmt.Fprintf(buf, "Anchors: %v\n", c.Anchors) + fmt.Fprintln(buf) + + if c.BmPrefix != nil { + fmt.Fprintln(buf, "BoyerMoore:") + fmt.Fprintln(buf, c.BmPrefix.Dump(" ")) + } + for i := 0; i < len(c.Codes); i += opcodeSize(InstOp(c.Codes[i])) { + fmt.Fprintln(buf, c.OpcodeDescription(i)) + } + + return buf.String() +} diff --git a/vendor/github.com/dlclark/regexp2/syntax/escape.go b/vendor/github.com/dlclark/regexp2/syntax/escape.go new file mode 100644 index 00000000000..609df10731d --- /dev/null +++ b/vendor/github.com/dlclark/regexp2/syntax/escape.go @@ -0,0 +1,94 @@ +package syntax + +import ( + "bytes" + "strconv" + "strings" + "unicode" +) + +func Escape(input string) string { + b := &bytes.Buffer{} + for _, r := range input { + escape(b, r, false) + } + return b.String() +} + +const meta = `\.+*?()|[]{}^$# ` + +func escape(b *bytes.Buffer, r rune, force bool) { + if unicode.IsPrint(r) { + if strings.IndexRune(meta, r) >= 0 || force { + b.WriteRune('\\') + } + b.WriteRune(r) + return + } + + switch r { + case '\a': + b.WriteString(`\a`) + case '\f': + b.WriteString(`\f`) + case '\n': + b.WriteString(`\n`) + case '\r': + b.WriteString(`\r`) + case '\t': + b.WriteString(`\t`) + case '\v': + b.WriteString(`\v`) + default: + if r < 0x100 { + b.WriteString(`\x`) + s := strconv.FormatInt(int64(r), 16) + if len(s) == 1 { + b.WriteRune('0') + } + b.WriteString(s) + break + } + b.WriteString(`\u`) + b.WriteString(strconv.FormatInt(int64(r), 16)) + } +} + +func Unescape(input string) (string, error) { + idx := strings.IndexRune(input, '\\') + // no slashes means no unescape needed + if idx == -1 { + return input, nil + } + + buf := bytes.NewBufferString(input[:idx]) + // get the runes for the rest of the string -- we're going full parser scan on this + + p := parser{} + p.setPattern(input[idx+1:]) + for { + if p.rightMost() { + return "", p.getErr(ErrIllegalEndEscape) + } + r, err := p.scanCharEscape() + if err != nil { + return "", err + } + buf.WriteRune(r) + // are we done? + if p.rightMost() { + return buf.String(), nil + } + + r = p.moveRightGetChar() + for r != '\\' { + buf.WriteRune(r) + if p.rightMost() { + // we're done, no more slashes + return buf.String(), nil + } + // keep scanning until we get another slash + r = p.moveRightGetChar() + } + } +} diff --git a/vendor/github.com/dlclark/regexp2/syntax/fuzz.go b/vendor/github.com/dlclark/regexp2/syntax/fuzz.go new file mode 100644 index 00000000000..ee863866dba --- /dev/null +++ b/vendor/github.com/dlclark/regexp2/syntax/fuzz.go @@ -0,0 +1,20 @@ +// +build gofuzz + +package syntax + +// Fuzz is the input point for go-fuzz +func Fuzz(data []byte) int { + sdata := string(data) + tree, err := Parse(sdata, RegexOptions(0)) + if err != nil { + return 0 + } + + // translate it to code + _, err = Write(tree) + if err != nil { + panic(err) + } + + return 1 +} diff --git a/vendor/github.com/dlclark/regexp2/syntax/parser.go b/vendor/github.com/dlclark/regexp2/syntax/parser.go new file mode 100644 index 00000000000..6e8ea83482c --- /dev/null +++ b/vendor/github.com/dlclark/regexp2/syntax/parser.go @@ -0,0 +1,2125 @@ +package syntax + +import ( + "fmt" + "math" + "os" + "sort" + "strconv" + "unicode" +) + +type RegexOptions int32 + +const ( + IgnoreCase RegexOptions = 0x0001 // "i" + Multiline = 0x0002 // "m" + ExplicitCapture = 0x0004 // "n" + Compiled = 0x0008 // "c" + Singleline = 0x0010 // "s" + IgnorePatternWhitespace = 0x0020 // "x" + RightToLeft = 0x0040 // "r" + Debug = 0x0080 // "d" + ECMAScript = 0x0100 // "e" +) + +func optionFromCode(ch rune) RegexOptions { + // case-insensitive + switch ch { + case 'i', 'I': + return IgnoreCase + case 'r', 'R': + return RightToLeft + case 'm', 'M': + return Multiline + case 'n', 'N': + return ExplicitCapture + case 's', 'S': + return Singleline + case 'x', 'X': + return IgnorePatternWhitespace + case 'd', 'D': + return Debug + case 'e', 'E': + return ECMAScript + default: + return 0 + } +} + +// An Error describes a failure to parse a regular expression +// and gives the offending expression. +type Error struct { + Code ErrorCode + Expr string + Args []interface{} +} + +func (e *Error) Error() string { + if len(e.Args) == 0 { + return "error parsing regexp: " + e.Code.String() + " in `" + e.Expr + "`" + } + return "error parsing regexp: " + fmt.Sprintf(e.Code.String(), e.Args...) + " in `" + e.Expr + "`" +} + +// An ErrorCode describes a failure to parse a regular expression. +type ErrorCode string + +const ( + // internal issue + ErrInternalError ErrorCode = "regexp/syntax: internal error" + // Parser errors + ErrUnterminatedComment = "unterminated comment" + ErrInvalidCharRange = "invalid character class range" + ErrInvalidRepeatSize = "invalid repeat count" + ErrInvalidUTF8 = "invalid UTF-8" + ErrCaptureGroupOutOfRange = "capture group number out of range" + ErrUnexpectedParen = "unexpected )" + ErrMissingParen = "missing closing )" + ErrMissingBrace = "missing closing }" + ErrInvalidRepeatOp = "invalid nested repetition operator" + ErrMissingRepeatArgument = "missing argument to repetition operator" + ErrConditionalExpression = "illegal conditional (?(...)) expression" + ErrTooManyAlternates = "too many | in (?()|)" + ErrUnrecognizedGrouping = "unrecognized grouping construct: (%v" + ErrInvalidGroupName = "invalid group name: group names must begin with a word character and have a matching terminator" + ErrCapNumNotZero = "capture number cannot be zero" + ErrUndefinedBackRef = "reference to undefined group number %v" + ErrUndefinedNameRef = "reference to undefined group name %v" + ErrAlternationCantCapture = "alternation conditions do not capture and cannot be named" + ErrAlternationCantHaveComment = "alternation conditions cannot be comments" + ErrMalformedReference = "(?(%v) ) malformed" + ErrUndefinedReference = "(?(%v) ) reference to undefined group" + ErrIllegalEndEscape = "illegal \\ at end of pattern" + ErrMalformedSlashP = "malformed \\p{X} character escape" + ErrIncompleteSlashP = "incomplete \\p{X} character escape" + ErrUnknownSlashP = "unknown unicode category, script, or property '%v'" + ErrUnrecognizedEscape = "unrecognized escape sequence \\%v" + ErrMissingControl = "missing control character" + ErrUnrecognizedControl = "unrecognized control character" + ErrTooFewHex = "insufficient hexadecimal digits" + ErrInvalidHex = "hex values may not be larger than 0x10FFFF" + ErrMalformedNameRef = "malformed \\k<...> named back reference" + ErrBadClassInCharRange = "cannot include class \\%v in character range" + ErrUnterminatedBracket = "unterminated [] set" + ErrSubtractionMustBeLast = "a subtraction must be the last element in a character class" + ErrReversedCharRange = "[x-y] range in reverse order" +) + +func (e ErrorCode) String() string { + return string(e) +} + +type parser struct { + stack *regexNode + group *regexNode + alternation *regexNode + concatenation *regexNode + unit *regexNode + + patternRaw string + pattern []rune + + currentPos int + specialCase *unicode.SpecialCase + + autocap int + capcount int + captop int + capsize int + + caps map[int]int + capnames map[string]int + + capnumlist []int + capnamelist []string + + options RegexOptions + optionsStack []RegexOptions + ignoreNextParen bool +} + +const ( + maxValueDiv10 int = math.MaxInt32 / 10 + maxValueMod10 = math.MaxInt32 % 10 +) + +// Parse converts a regex string into a parse tree +func Parse(re string, op RegexOptions) (*RegexTree, error) { + p := parser{ + options: op, + caps: make(map[int]int), + } + p.setPattern(re) + + if err := p.countCaptures(); err != nil { + return nil, err + } + + p.reset(op) + root, err := p.scanRegex() + + if err != nil { + return nil, err + } + tree := &RegexTree{ + root: root, + caps: p.caps, + capnumlist: p.capnumlist, + captop: p.captop, + Capnames: p.capnames, + Caplist: p.capnamelist, + options: op, + } + + if tree.options&Debug > 0 { + os.Stdout.WriteString(tree.Dump()) + } + + return tree, nil +} + +func (p *parser) setPattern(pattern string) { + p.patternRaw = pattern + p.pattern = make([]rune, 0, len(pattern)) + + //populate our rune array to handle utf8 encoding + for _, r := range pattern { + p.pattern = append(p.pattern, r) + } +} +func (p *parser) getErr(code ErrorCode, args ...interface{}) error { + return &Error{Code: code, Expr: p.patternRaw, Args: args} +} + +func (p *parser) noteCaptureSlot(i, pos int) { + if _, ok := p.caps[i]; !ok { + // the rhs of the hashtable isn't used in the parser + p.caps[i] = pos + p.capcount++ + + if p.captop <= i { + if i == math.MaxInt32 { + p.captop = i + } else { + p.captop = i + 1 + } + } + } +} + +func (p *parser) noteCaptureName(name string, pos int) { + if p.capnames == nil { + p.capnames = make(map[string]int) + } + + if _, ok := p.capnames[name]; !ok { + p.capnames[name] = pos + p.capnamelist = append(p.capnamelist, name) + } +} + +func (p *parser) assignNameSlots() { + if p.capnames != nil { + for _, name := range p.capnamelist { + for p.isCaptureSlot(p.autocap) { + p.autocap++ + } + pos := p.capnames[name] + p.capnames[name] = p.autocap + p.noteCaptureSlot(p.autocap, pos) + + p.autocap++ + } + } + + // if the caps array has at least one gap, construct the list of used slots + if p.capcount < p.captop { + p.capnumlist = make([]int, p.capcount) + i := 0 + + for k := range p.caps { + p.capnumlist[i] = k + i++ + } + + sort.Ints(p.capnumlist) + } + + // merge capsnumlist into capnamelist + if p.capnames != nil || p.capnumlist != nil { + var oldcapnamelist []string + var next int + var k int + + if p.capnames == nil { + oldcapnamelist = nil + p.capnames = make(map[string]int) + p.capnamelist = []string{} + next = -1 + } else { + oldcapnamelist = p.capnamelist + p.capnamelist = []string{} + next = p.capnames[oldcapnamelist[0]] + } + + for i := 0; i < p.capcount; i++ { + j := i + if p.capnumlist != nil { + j = p.capnumlist[i] + } + + if next == j { + p.capnamelist = append(p.capnamelist, oldcapnamelist[k]) + k++ + + if k == len(oldcapnamelist) { + next = -1 + } else { + next = p.capnames[oldcapnamelist[k]] + } + + } else { + //feature: culture? + str := strconv.Itoa(j) + p.capnamelist = append(p.capnamelist, str) + p.capnames[str] = j + } + } + } +} + +func (p *parser) consumeAutocap() int { + r := p.autocap + p.autocap++ + return r +} + +// CountCaptures is a prescanner for deducing the slots used for +// captures by doing a partial tokenization of the pattern. +func (p *parser) countCaptures() error { + var ch rune + + p.noteCaptureSlot(0, 0) + + p.autocap = 1 + + for p.charsRight() > 0 { + pos := p.textpos() + ch = p.moveRightGetChar() + switch ch { + case '\\': + if p.charsRight() > 0 { + p.moveRight(1) + } + + case '#': + if p.useOptionX() { + p.moveLeft() + p.scanBlank() + } + + case '[': + p.scanCharSet(false, true) + + case ')': + if !p.emptyOptionsStack() { + p.popOptions() + } + + case '(': + if p.charsRight() >= 2 && p.rightChar(1) == '#' && p.rightChar(0) == '?' { + p.moveLeft() + p.scanBlank() + } else { + p.pushOptions() + if p.charsRight() > 0 && p.rightChar(0) == '?' { + // we have (?... + p.moveRight(1) + + if p.charsRight() > 1 && (p.rightChar(0) == '<' || p.rightChar(0) == '\'') { + // named group: (?<... or (?'... + + p.moveRight(1) + ch = p.rightChar(0) + + if ch != '0' && IsWordChar(ch) { + if ch >= '1' && ch <= '9' { + dec, err := p.scanDecimal() + if err != nil { + return err + } + p.noteCaptureSlot(dec, pos) + } else { + p.noteCaptureName(p.scanCapname(), pos) + } + } + } else { + // (?... + + // get the options if it's an option construct (?cimsx-cimsx...) + p.scanOptions() + + if p.charsRight() > 0 { + if p.rightChar(0) == ')' { + // (?cimsx-cimsx) + p.moveRight(1) + p.popKeepOptions() + } else if p.rightChar(0) == '(' { + // alternation construct: (?(foo)yes|no) + // ignore the next paren so we don't capture the condition + p.ignoreNextParen = true + + // break from here so we don't reset ignoreNextParen + continue + } + } + } + } else { + if !p.useOptionN() && !p.ignoreNextParen { + p.noteCaptureSlot(p.consumeAutocap(), pos) + } + } + } + + p.ignoreNextParen = false + + } + } + + p.assignNameSlots() + return nil +} + +func (p *parser) reset(topopts RegexOptions) { + p.currentPos = 0 + p.autocap = 1 + p.ignoreNextParen = false + + if len(p.optionsStack) > 0 { + p.optionsStack = p.optionsStack[:0] + } + + p.options = topopts + p.stack = nil +} + +func (p *parser) scanRegex() (*regexNode, error) { + ch := '@' // nonspecial ch, means at beginning + isQuant := false + + p.startGroup(newRegexNodeMN(ntCapture, p.options, 0, -1)) + + for p.charsRight() > 0 { + wasPrevQuantifier := isQuant + isQuant = false + + if err := p.scanBlank(); err != nil { + return nil, err + } + + startpos := p.textpos() + + // move past all of the normal characters. We'll stop when we hit some kind of control character, + // or if IgnorePatternWhiteSpace is on, we'll stop when we see some whitespace. + if p.useOptionX() { + for p.charsRight() > 0 { + ch = p.rightChar(0) + //UGLY: clean up, this is ugly + if !(!isStopperX(ch) || (ch == '{' && !p.isTrueQuantifier())) { + break + } + p.moveRight(1) + } + } else { + for p.charsRight() > 0 { + ch = p.rightChar(0) + if !(!isSpecial(ch) || ch == '{' && !p.isTrueQuantifier()) { + break + } + p.moveRight(1) + } + } + + endpos := p.textpos() + + p.scanBlank() + + if p.charsRight() == 0 { + ch = '!' // nonspecial, means at end + } else if ch = p.rightChar(0); isSpecial(ch) { + isQuant = isQuantifier(ch) + p.moveRight(1) + } else { + ch = ' ' // nonspecial, means at ordinary char + } + + if startpos < endpos { + cchUnquantified := endpos - startpos + if isQuant { + cchUnquantified-- + } + wasPrevQuantifier = false + + if cchUnquantified > 0 { + p.addToConcatenate(startpos, cchUnquantified, false) + } + + if isQuant { + p.addUnitOne(p.charAt(endpos - 1)) + } + } + + switch ch { + case '!': + goto BreakOuterScan + + case ' ': + goto ContinueOuterScan + + case '[': + cc, err := p.scanCharSet(p.useOptionI(), false) + if err != nil { + return nil, err + } + p.addUnitSet(cc) + + case '(': + p.pushOptions() + + if grouper, err := p.scanGroupOpen(); err != nil { + return nil, err + } else if grouper == nil { + p.popKeepOptions() + } else { + p.pushGroup() + p.startGroup(grouper) + } + + continue + + case '|': + p.addAlternate() + goto ContinueOuterScan + + case ')': + if p.emptyStack() { + return nil, p.getErr(ErrUnexpectedParen) + } + + if err := p.addGroup(); err != nil { + return nil, err + } + if err := p.popGroup(); err != nil { + return nil, err + } + p.popOptions() + + if p.unit == nil { + goto ContinueOuterScan + } + + case '\\': + n, err := p.scanBackslash() + if err != nil { + return nil, err + } + p.addUnitNode(n) + + case '^': + if p.useOptionM() { + p.addUnitType(ntBol) + } else { + p.addUnitType(ntBeginning) + } + + case '$': + if p.useOptionM() { + p.addUnitType(ntEol) + } else { + p.addUnitType(ntEndZ) + } + + case '.': + if p.useOptionE() { + p.addUnitSet(ECMAAnyClass()) + } else if p.useOptionS() { + p.addUnitSet(AnyClass()) + } else { + p.addUnitNotone('\n') + } + + case '{', '*', '+', '?': + if p.unit == nil { + if wasPrevQuantifier { + return nil, p.getErr(ErrInvalidRepeatOp) + } else { + return nil, p.getErr(ErrMissingRepeatArgument) + } + } + p.moveLeft() + + default: + return nil, p.getErr(ErrInternalError) + } + + if err := p.scanBlank(); err != nil { + return nil, err + } + + if p.charsRight() > 0 { + isQuant = p.isTrueQuantifier() + } + if p.charsRight() == 0 || !isQuant { + //maintain odd C# assignment order -- not sure if required, could clean up? + p.addConcatenate() + goto ContinueOuterScan + } + + ch = p.moveRightGetChar() + + // Handle quantifiers + for p.unit != nil { + var min, max int + var lazy bool + + switch ch { + case '*': + min = 0 + max = math.MaxInt32 + + case '?': + min = 0 + max = 1 + + case '+': + min = 1 + max = math.MaxInt32 + + case '{': + { + var err error + startpos = p.textpos() + if min, err = p.scanDecimal(); err != nil { + return nil, err + } + max = min + if startpos < p.textpos() { + if p.charsRight() > 0 && p.rightChar(0) == ',' { + p.moveRight(1) + if p.charsRight() == 0 || p.rightChar(0) == '}' { + max = math.MaxInt32 + } else { + if max, err = p.scanDecimal(); err != nil { + return nil, err + } + } + } + } + + if startpos == p.textpos() || p.charsRight() == 0 || p.moveRightGetChar() != '}' { + p.addConcatenate() + p.textto(startpos - 1) + goto ContinueOuterScan + } + } + + default: + return nil, p.getErr(ErrInternalError) + } + + if err := p.scanBlank(); err != nil { + return nil, err + } + + if p.charsRight() == 0 || p.rightChar(0) != '?' { + lazy = false + } else { + p.moveRight(1) + lazy = true + } + + if min > max { + return nil, p.getErr(ErrInvalidRepeatSize) + } + + p.addConcatenate3(lazy, min, max) + } + + ContinueOuterScan: + } + +BreakOuterScan: + ; + + if !p.emptyStack() { + return nil, p.getErr(ErrMissingParen) + } + + if err := p.addGroup(); err != nil { + return nil, err + } + + return p.unit, nil + +} + +/* + * Simple parsing for replacement patterns + */ +func (p *parser) scanReplacement() (*regexNode, error) { + var c, startpos int + + p.concatenation = newRegexNode(ntConcatenate, p.options) + + for { + c = p.charsRight() + if c == 0 { + break + } + + startpos = p.textpos() + + for c > 0 && p.rightChar(0) != '$' { + p.moveRight(1) + c-- + } + + p.addToConcatenate(startpos, p.textpos()-startpos, true) + + if c > 0 { + if p.moveRightGetChar() == '$' { + n, err := p.scanDollar() + if err != nil { + return nil, err + } + p.addUnitNode(n) + } + p.addConcatenate() + } + } + + return p.concatenation, nil +} + +/* + * Scans $ patterns recognized within replacement patterns + */ +func (p *parser) scanDollar() (*regexNode, error) { + if p.charsRight() == 0 { + return newRegexNodeCh(ntOne, p.options, '$'), nil + } + + ch := p.rightChar(0) + angled := false + backpos := p.textpos() + lastEndPos := backpos + + // Note angle + + if ch == '{' && p.charsRight() > 1 { + angled = true + p.moveRight(1) + ch = p.rightChar(0) + } + + // Try to parse backreference: \1 or \{1} or \{cap} + + if ch >= '0' && ch <= '9' { + if !angled && p.useOptionE() { + capnum := -1 + newcapnum := int(ch - '0') + p.moveRight(1) + if p.isCaptureSlot(newcapnum) { + capnum = newcapnum + lastEndPos = p.textpos() + } + + for p.charsRight() > 0 { + ch = p.rightChar(0) + if ch < '0' || ch > '9' { + break + } + digit := int(ch - '0') + if newcapnum > maxValueDiv10 || (newcapnum == maxValueDiv10 && digit > maxValueMod10) { + return nil, p.getErr(ErrCaptureGroupOutOfRange) + } + + newcapnum = newcapnum*10 + digit + + p.moveRight(1) + if p.isCaptureSlot(newcapnum) { + capnum = newcapnum + lastEndPos = p.textpos() + } + } + p.textto(lastEndPos) + if capnum >= 0 { + return newRegexNodeM(ntRef, p.options, capnum), nil + } + } else { + capnum, err := p.scanDecimal() + if err != nil { + return nil, err + } + if !angled || p.charsRight() > 0 && p.moveRightGetChar() == '}' { + if p.isCaptureSlot(capnum) { + return newRegexNodeM(ntRef, p.options, capnum), nil + } + } + } + } else if angled && IsWordChar(ch) { + capname := p.scanCapname() + + if p.charsRight() > 0 && p.moveRightGetChar() == '}' { + if p.isCaptureName(capname) { + return newRegexNodeM(ntRef, p.options, p.captureSlotFromName(capname)), nil + } + } + } else if !angled { + capnum := 1 + + switch ch { + case '$': + p.moveRight(1) + return newRegexNodeCh(ntOne, p.options, '$'), nil + case '&': + capnum = 0 + case '`': + capnum = replaceLeftPortion + case '\'': + capnum = replaceRightPortion + case '+': + capnum = replaceLastGroup + case '_': + capnum = replaceWholeString + } + + if capnum != 1 { + p.moveRight(1) + return newRegexNodeM(ntRef, p.options, capnum), nil + } + } + + // unrecognized $: literalize + + p.textto(backpos) + return newRegexNodeCh(ntOne, p.options, '$'), nil +} + +// scanGroupOpen scans chars following a '(' (not counting the '('), and returns +// a RegexNode for the type of group scanned, or nil if the group +// simply changed options (?cimsx-cimsx) or was a comment (#...). +func (p *parser) scanGroupOpen() (*regexNode, error) { + var ch rune + var nt nodeType + var err error + close := '>' + start := p.textpos() + + // just return a RegexNode if we have: + // 1. "(" followed by nothing + // 2. "(x" where x != ? + // 3. "(?)" + if p.charsRight() == 0 || p.rightChar(0) != '?' || (p.rightChar(0) == '?' && (p.charsRight() > 1 && p.rightChar(1) == ')')) { + if p.useOptionN() || p.ignoreNextParen { + p.ignoreNextParen = false + return newRegexNode(ntGroup, p.options), nil + } + return newRegexNodeMN(ntCapture, p.options, p.consumeAutocap(), -1), nil + } + + p.moveRight(1) + + for { + if p.charsRight() == 0 { + break + } + + switch ch = p.moveRightGetChar(); ch { + case ':': + nt = ntGroup + + case '=': + p.options &= ^RightToLeft + nt = ntRequire + + case '!': + p.options &= ^RightToLeft + nt = ntPrevent + + case '>': + nt = ntGreedy + + case '\'': + close = '\'' + fallthrough + + case '<': + if p.charsRight() == 0 { + goto BreakRecognize + } + + switch ch = p.moveRightGetChar(); ch { + case '=': + if close == '\'' { + goto BreakRecognize + } + + p.options |= RightToLeft + nt = ntRequire + + case '!': + if close == '\'' { + goto BreakRecognize + } + + p.options |= RightToLeft + nt = ntPrevent + + default: + p.moveLeft() + capnum := -1 + uncapnum := -1 + proceed := false + + // grab part before - + + if ch >= '0' && ch <= '9' { + if capnum, err = p.scanDecimal(); err != nil { + return nil, err + } + + if !p.isCaptureSlot(capnum) { + capnum = -1 + } + + // check if we have bogus characters after the number + if p.charsRight() > 0 && !(p.rightChar(0) == close || p.rightChar(0) == '-') { + return nil, p.getErr(ErrInvalidGroupName) + } + if capnum == 0 { + return nil, p.getErr(ErrCapNumNotZero) + } + } else if IsWordChar(ch) { + capname := p.scanCapname() + + if p.isCaptureName(capname) { + capnum = p.captureSlotFromName(capname) + } + + // check if we have bogus character after the name + if p.charsRight() > 0 && !(p.rightChar(0) == close || p.rightChar(0) == '-') { + return nil, p.getErr(ErrInvalidGroupName) + } + } else if ch == '-' { + proceed = true + } else { + // bad group name - starts with something other than a word character and isn't a number + return nil, p.getErr(ErrInvalidGroupName) + } + + // grab part after - if any + + if (capnum != -1 || proceed == true) && p.charsRight() > 0 && p.rightChar(0) == '-' { + p.moveRight(1) + + //no more chars left, no closing char, etc + if p.charsRight() == 0 { + return nil, p.getErr(ErrInvalidGroupName) + } + + ch = p.rightChar(0) + if ch >= '0' && ch <= '9' { + if uncapnum, err = p.scanDecimal(); err != nil { + return nil, err + } + + if !p.isCaptureSlot(uncapnum) { + return nil, p.getErr(ErrUndefinedBackRef, uncapnum) + } + + // check if we have bogus characters after the number + if p.charsRight() > 0 && p.rightChar(0) != close { + return nil, p.getErr(ErrInvalidGroupName) + } + } else if IsWordChar(ch) { + uncapname := p.scanCapname() + + if !p.isCaptureName(uncapname) { + return nil, p.getErr(ErrUndefinedNameRef, uncapname) + } + uncapnum = p.captureSlotFromName(uncapname) + + // check if we have bogus character after the name + if p.charsRight() > 0 && p.rightChar(0) != close { + return nil, p.getErr(ErrInvalidGroupName) + } + } else { + // bad group name - starts with something other than a word character and isn't a number + return nil, p.getErr(ErrInvalidGroupName) + } + } + + // actually make the node + + if (capnum != -1 || uncapnum != -1) && p.charsRight() > 0 && p.moveRightGetChar() == close { + return newRegexNodeMN(ntCapture, p.options, capnum, uncapnum), nil + } + goto BreakRecognize + } + + case '(': + // alternation construct (?(...) | ) + + parenPos := p.textpos() + if p.charsRight() > 0 { + ch = p.rightChar(0) + + // check if the alternation condition is a backref + if ch >= '0' && ch <= '9' { + var capnum int + if capnum, err = p.scanDecimal(); err != nil { + return nil, err + } + if p.charsRight() > 0 && p.moveRightGetChar() == ')' { + if p.isCaptureSlot(capnum) { + return newRegexNodeM(ntTestref, p.options, capnum), nil + } + return nil, p.getErr(ErrUndefinedReference, capnum) + } + + return nil, p.getErr(ErrMalformedReference, capnum) + + } else if IsWordChar(ch) { + capname := p.scanCapname() + + if p.isCaptureName(capname) && p.charsRight() > 0 && p.moveRightGetChar() == ')' { + return newRegexNodeM(ntTestref, p.options, p.captureSlotFromName(capname)), nil + } + } + } + // not a backref + nt = ntTestgroup + p.textto(parenPos - 1) // jump to the start of the parentheses + p.ignoreNextParen = true // but make sure we don't try to capture the insides + + charsRight := p.charsRight() + if charsRight >= 3 && p.rightChar(1) == '?' { + rightchar2 := p.rightChar(2) + // disallow comments in the condition + if rightchar2 == '#' { + return nil, p.getErr(ErrAlternationCantHaveComment) + } + + // disallow named capture group (?<..>..) in the condition + if rightchar2 == '\'' { + return nil, p.getErr(ErrAlternationCantCapture) + } + + if charsRight >= 4 && (rightchar2 == '<' && p.rightChar(3) != '!' && p.rightChar(3) != '=') { + return nil, p.getErr(ErrAlternationCantCapture) + } + } + + default: + p.moveLeft() + + nt = ntGroup + // disallow options in the children of a testgroup node + if p.group.t != ntTestgroup { + p.scanOptions() + } + if p.charsRight() == 0 { + goto BreakRecognize + } + + if ch = p.moveRightGetChar(); ch == ')' { + return nil, nil + } + + if ch != ':' { + goto BreakRecognize + } + + } + + return newRegexNode(nt, p.options), nil + } + +BreakRecognize: + + // break Recognize comes here + + return nil, p.getErr(ErrUnrecognizedGrouping, string(p.pattern[start:p.textpos()])) +} + +// scans backslash specials and basics +func (p *parser) scanBackslash() (*regexNode, error) { + + if p.charsRight() == 0 { + return nil, p.getErr(ErrIllegalEndEscape) + } + + switch ch := p.rightChar(0); ch { + case 'b', 'B', 'A', 'G', 'Z', 'z': + p.moveRight(1) + return newRegexNode(p.typeFromCode(ch), p.options), nil + + case 'w': + p.moveRight(1) + if p.useOptionE() { + return newRegexNodeSet(ntSet, p.options, ECMAWordClass()), nil + } + return newRegexNodeSet(ntSet, p.options, WordClass()), nil + + case 'W': + p.moveRight(1) + if p.useOptionE() { + return newRegexNodeSet(ntSet, p.options, NotECMAWordClass()), nil + } + return newRegexNodeSet(ntSet, p.options, NotWordClass()), nil + + case 's': + p.moveRight(1) + if p.useOptionE() { + return newRegexNodeSet(ntSet, p.options, ECMASpaceClass()), nil + } + return newRegexNodeSet(ntSet, p.options, SpaceClass()), nil + + case 'S': + p.moveRight(1) + if p.useOptionE() { + return newRegexNodeSet(ntSet, p.options, NotECMASpaceClass()), nil + } + return newRegexNodeSet(ntSet, p.options, NotSpaceClass()), nil + + case 'd': + p.moveRight(1) + if p.useOptionE() { + return newRegexNodeSet(ntSet, p.options, ECMADigitClass()), nil + } + return newRegexNodeSet(ntSet, p.options, DigitClass()), nil + + case 'D': + p.moveRight(1) + if p.useOptionE() { + return newRegexNodeSet(ntSet, p.options, NotECMADigitClass()), nil + } + return newRegexNodeSet(ntSet, p.options, NotDigitClass()), nil + + case 'p', 'P': + p.moveRight(1) + prop, err := p.parseProperty() + if err != nil { + return nil, err + } + cc := &CharSet{} + cc.addCategory(prop, (ch != 'p'), p.useOptionI(), p.patternRaw) + if p.useOptionI() { + cc.addLowercase() + } + + return newRegexNodeSet(ntSet, p.options, cc), nil + + default: + return p.scanBasicBackslash() + } +} + +// Scans \-style backreferences and character escapes +func (p *parser) scanBasicBackslash() (*regexNode, error) { + if p.charsRight() == 0 { + return nil, p.getErr(ErrIllegalEndEscape) + } + angled := false + close := '\x00' + + backpos := p.textpos() + ch := p.rightChar(0) + + // allow \k instead of \, which is now deprecated + + if ch == 'k' { + if p.charsRight() >= 2 { + p.moveRight(1) + ch = p.moveRightGetChar() + + if ch == '<' || ch == '\'' { + angled = true + if ch == '\'' { + close = '\'' + } else { + close = '>' + } + } + } + + if !angled || p.charsRight() <= 0 { + return nil, p.getErr(ErrMalformedNameRef) + } + + ch = p.rightChar(0) + + } else if (ch == '<' || ch == '\'') && p.charsRight() > 1 { // Note angle without \g + angled = true + if ch == '\'' { + close = '\'' + } else { + close = '>' + } + + p.moveRight(1) + ch = p.rightChar(0) + } + + // Try to parse backreference: \<1> or \ + + if angled && ch >= '0' && ch <= '9' { + capnum, err := p.scanDecimal() + if err != nil { + return nil, err + } + + if p.charsRight() > 0 && p.moveRightGetChar() == close { + if p.isCaptureSlot(capnum) { + return newRegexNodeM(ntRef, p.options, capnum), nil + } else { + return nil, p.getErr(ErrUndefinedBackRef, capnum) + } + } + } else if !angled && ch >= '1' && ch <= '9' { // Try to parse backreference or octal: \1 + capnum, err := p.scanDecimal() + if err != nil { + return nil, err + } + if p.useOptionE() || p.isCaptureSlot(capnum) { + return newRegexNodeM(ntRef, p.options, capnum), nil + } + if capnum <= 9 { + return nil, p.getErr(ErrUndefinedBackRef, capnum) + } + + } else if angled && IsWordChar(ch) { + capname := p.scanCapname() + + if p.charsRight() > 0 && p.moveRightGetChar() == close { + if p.isCaptureName(capname) { + return newRegexNodeM(ntRef, p.options, p.captureSlotFromName(capname)), nil + } + return nil, p.getErr(ErrUndefinedNameRef, capname) + } + } + + // Not backreference: must be char code + + p.textto(backpos) + ch, err := p.scanCharEscape() + if err != nil { + return nil, err + } + + if p.useOptionI() { + ch = unicode.ToLower(ch) + } + + return newRegexNodeCh(ntOne, p.options, ch), nil +} + +// Scans X for \p{X} or \P{X} +func (p *parser) parseProperty() (string, error) { + if p.charsRight() < 3 { + return "", p.getErr(ErrIncompleteSlashP) + } + ch := p.moveRightGetChar() + if ch != '{' { + return "", p.getErr(ErrMalformedSlashP) + } + + startpos := p.textpos() + for p.charsRight() > 0 { + ch = p.moveRightGetChar() + if !(IsWordChar(ch) || ch == '-') { + p.moveLeft() + break + } + } + capname := string(p.pattern[startpos:p.textpos()]) + + if p.charsRight() == 0 || p.moveRightGetChar() != '}' { + return "", p.getErr(ErrIncompleteSlashP) + } + + if !isValidUnicodeCat(capname) { + return "", p.getErr(ErrUnknownSlashP, capname) + } + + return capname, nil +} + +// Returns ReNode type for zero-length assertions with a \ code. +func (p *parser) typeFromCode(ch rune) nodeType { + switch ch { + case 'b': + if p.useOptionE() { + return ntECMABoundary + } + return ntBoundary + case 'B': + if p.useOptionE() { + return ntNonECMABoundary + } + return ntNonboundary + case 'A': + return ntBeginning + case 'G': + return ntStart + case 'Z': + return ntEndZ + case 'z': + return ntEnd + default: + return ntNothing + } +} + +// Scans whitespace or x-mode comments. +func (p *parser) scanBlank() error { + if p.useOptionX() { + for { + for p.charsRight() > 0 && isSpace(p.rightChar(0)) { + p.moveRight(1) + } + + if p.charsRight() == 0 { + break + } + + if p.rightChar(0) == '#' { + for p.charsRight() > 0 && p.rightChar(0) != '\n' { + p.moveRight(1) + } + } else if p.charsRight() >= 3 && p.rightChar(2) == '#' && + p.rightChar(1) == '?' && p.rightChar(0) == '(' { + for p.charsRight() > 0 && p.rightChar(0) != ')' { + p.moveRight(1) + } + if p.charsRight() == 0 { + return p.getErr(ErrUnterminatedComment) + } + p.moveRight(1) + } else { + break + } + } + } else { + for { + if p.charsRight() < 3 || p.rightChar(2) != '#' || + p.rightChar(1) != '?' || p.rightChar(0) != '(' { + return nil + } + + for p.charsRight() > 0 && p.rightChar(0) != ')' { + p.moveRight(1) + } + if p.charsRight() == 0 { + return p.getErr(ErrUnterminatedComment) + } + p.moveRight(1) + } + } + return nil +} + +func (p *parser) scanCapname() string { + startpos := p.textpos() + + for p.charsRight() > 0 { + if !IsWordChar(p.moveRightGetChar()) { + p.moveLeft() + break + } + } + + return string(p.pattern[startpos:p.textpos()]) +} + +//Scans contents of [] (not including []'s), and converts to a set. +func (p *parser) scanCharSet(caseInsensitive, scanOnly bool) (*CharSet, error) { + ch := '\x00' + chPrev := '\x00' + inRange := false + firstChar := true + closed := false + + var cc *CharSet + if !scanOnly { + cc = &CharSet{} + } + + if p.charsRight() > 0 && p.rightChar(0) == '^' { + p.moveRight(1) + if !scanOnly { + cc.negate = true + } + } + + for ; p.charsRight() > 0; firstChar = false { + fTranslatedChar := false + ch = p.moveRightGetChar() + if ch == ']' { + if !firstChar { + closed = true + break + } else if p.useOptionE() { + if !scanOnly { + cc.addRanges(NoneClass().ranges) + } + closed = true + break + } + + } else if ch == '\\' && p.charsRight() > 0 { + switch ch = p.moveRightGetChar(); ch { + case 'D', 'd': + if !scanOnly { + if inRange { + return nil, p.getErr(ErrBadClassInCharRange, ch) + } + cc.addDigit(p.useOptionE(), ch == 'D', p.patternRaw) + } + continue + + case 'S', 's': + if !scanOnly { + if inRange { + return nil, p.getErr(ErrBadClassInCharRange, ch) + } + cc.addSpace(p.useOptionE(), ch == 'S') + } + continue + + case 'W', 'w': + if !scanOnly { + if inRange { + return nil, p.getErr(ErrBadClassInCharRange, ch) + } + + cc.addWord(p.useOptionE(), ch == 'W') + } + continue + + case 'p', 'P': + if !scanOnly { + if inRange { + return nil, p.getErr(ErrBadClassInCharRange, ch) + } + prop, err := p.parseProperty() + if err != nil { + return nil, err + } + cc.addCategory(prop, (ch != 'p'), caseInsensitive, p.patternRaw) + } else { + p.parseProperty() + } + + continue + + case '-': + if !scanOnly { + cc.addRange(ch, ch) + } + continue + + default: + p.moveLeft() + var err error + ch, err = p.scanCharEscape() // non-literal character + if err != nil { + return nil, err + } + fTranslatedChar = true + break // this break will only break out of the switch + } + } else if ch == '[' { + // This is code for Posix style properties - [:Ll:] or [:IsTibetan:]. + // It currently doesn't do anything other than skip the whole thing! + if p.charsRight() > 0 && p.rightChar(0) == ':' && !inRange { + savePos := p.textpos() + + p.moveRight(1) + p.scanCapname() // throwaway the name + if p.charsRight() < 2 || p.moveRightGetChar() != ':' || p.moveRightGetChar() != ']' { + p.textto(savePos) + } + // else lookup name (nyi) + } + } + + if inRange { + inRange = false + if !scanOnly { + if ch == '[' && !fTranslatedChar && !firstChar { + // We thought we were in a range, but we're actually starting a subtraction. + // In that case, we'll add chPrev to our char class, skip the opening [, and + // scan the new character class recursively. + cc.addChar(chPrev) + sub, err := p.scanCharSet(caseInsensitive, false) + if err != nil { + return nil, err + } + cc.addSubtraction(sub) + + if p.charsRight() > 0 && p.rightChar(0) != ']' { + return nil, p.getErr(ErrSubtractionMustBeLast) + } + } else { + // a regular range, like a-z + if chPrev > ch { + return nil, p.getErr(ErrReversedCharRange) + } + cc.addRange(chPrev, ch) + } + } + } else if p.charsRight() >= 2 && p.rightChar(0) == '-' && p.rightChar(1) != ']' { + // this could be the start of a range + chPrev = ch + inRange = true + p.moveRight(1) + } else if p.charsRight() >= 1 && ch == '-' && !fTranslatedChar && p.rightChar(0) == '[' && !firstChar { + // we aren't in a range, and now there is a subtraction. Usually this happens + // only when a subtraction follows a range, like [a-z-[b]] + if !scanOnly { + p.moveRight(1) + sub, err := p.scanCharSet(caseInsensitive, false) + if err != nil { + return nil, err + } + cc.addSubtraction(sub) + + if p.charsRight() > 0 && p.rightChar(0) != ']' { + return nil, p.getErr(ErrSubtractionMustBeLast) + } + } else { + p.moveRight(1) + p.scanCharSet(caseInsensitive, true) + } + } else { + if !scanOnly { + cc.addRange(ch, ch) + } + } + } + + if !closed { + return nil, p.getErr(ErrUnterminatedBracket) + } + + if !scanOnly && caseInsensitive { + cc.addLowercase() + } + + return cc, nil +} + +// Scans any number of decimal digits (pegs value at 2^31-1 if too large) +func (p *parser) scanDecimal() (int, error) { + i := 0 + var d int + + for p.charsRight() > 0 { + d = int(p.rightChar(0) - '0') + if d < 0 || d > 9 { + break + } + p.moveRight(1) + + if i > maxValueDiv10 || (i == maxValueDiv10 && d > maxValueMod10) { + return 0, p.getErr(ErrCaptureGroupOutOfRange) + } + + i *= 10 + i += d + } + + return int(i), nil +} + +// Returns true for options allowed only at the top level +func isOnlyTopOption(option RegexOptions) bool { + return option == RightToLeft || option == ECMAScript +} + +// Scans cimsx-cimsx option string, stops at the first unrecognized char. +func (p *parser) scanOptions() { + + for off := false; p.charsRight() > 0; p.moveRight(1) { + ch := p.rightChar(0) + + if ch == '-' { + off = true + } else if ch == '+' { + off = false + } else { + option := optionFromCode(ch) + if option == 0 || isOnlyTopOption(option) { + return + } + + if off { + p.options &= ^option + } else { + p.options |= option + } + } + } +} + +// Scans \ code for escape codes that map to single unicode chars. +func (p *parser) scanCharEscape() (rune, error) { + + ch := p.moveRightGetChar() + + if ch >= '0' && ch <= '7' { + p.moveLeft() + return p.scanOctal(), nil + } + + switch ch { + case 'x': + // support for \x{HEX} syntax from Perl and PCRE + if p.charsRight() > 0 && p.rightChar(0) == '{' { + p.moveRight(1) + return p.scanHexUntilBrace() + } + return p.scanHex(2) + case 'u': + return p.scanHex(4) + case 'a': + return '\u0007', nil + case 'b': + return '\b', nil + case 'e': + return '\u001B', nil + case 'f': + return '\f', nil + case 'n': + return '\n', nil + case 'r': + return '\r', nil + case 't': + return '\t', nil + case 'v': + return '\u000B', nil + case 'c': + return p.scanControl() + default: + if !p.useOptionE() && IsWordChar(ch) { + return 0, p.getErr(ErrUnrecognizedEscape, string(ch)) + } + return ch, nil + } +} + +// Grabs and converts an ascii control character +func (p *parser) scanControl() (rune, error) { + if p.charsRight() <= 0 { + return 0, p.getErr(ErrMissingControl) + } + + ch := p.moveRightGetChar() + + // \ca interpreted as \cA + + if ch >= 'a' && ch <= 'z' { + ch = (ch - ('a' - 'A')) + } + ch = (ch - '@') + if ch >= 0 && ch < ' ' { + return ch, nil + } + + return 0, p.getErr(ErrUnrecognizedControl) + +} + +// Scan hex digits until we hit a closing brace. +// Non-hex digits, hex value too large for UTF-8, or running out of chars are errors +func (p *parser) scanHexUntilBrace() (rune, error) { + // PCRE spec reads like unlimited hex digits are allowed, but unicode has a limit + // so we can enforce that + i := 0 + hasContent := false + + for p.charsRight() > 0 { + ch := p.moveRightGetChar() + if ch == '}' { + // hit our close brace, we're done here + // prevent \x{} + if !hasContent { + return 0, p.getErr(ErrTooFewHex) + } + return rune(i), nil + } + hasContent = true + // no brace needs to be hex digit + d := hexDigit(ch) + if d < 0 { + return 0, p.getErr(ErrMissingBrace) + } + + i *= 0x10 + i += d + + if i > unicode.MaxRune { + return 0, p.getErr(ErrInvalidHex) + } + } + + // we only make it here if we run out of digits without finding the brace + return 0, p.getErr(ErrMissingBrace) +} + +// Scans exactly c hex digits (c=2 for \xFF, c=4 for \uFFFF) +func (p *parser) scanHex(c int) (rune, error) { + + i := 0 + + if p.charsRight() >= c { + for c > 0 { + d := hexDigit(p.moveRightGetChar()) + if d < 0 { + break + } + i *= 0x10 + i += d + c-- + } + } + + if c > 0 { + return 0, p.getErr(ErrTooFewHex) + } + + return rune(i), nil +} + +// Returns n <= 0xF for a hex digit. +func hexDigit(ch rune) int { + + if d := uint(ch - '0'); d <= 9 { + return int(d) + } + + if d := uint(ch - 'a'); d <= 5 { + return int(d + 0xa) + } + + if d := uint(ch - 'A'); d <= 5 { + return int(d + 0xa) + } + + return -1 +} + +// Scans up to three octal digits (stops before exceeding 0377). +func (p *parser) scanOctal() rune { + // Consume octal chars only up to 3 digits and value 0377 + + c := 3 + + if c > p.charsRight() { + c = p.charsRight() + } + + //we know the first char is good because the caller had to check + i := 0 + d := int(p.rightChar(0) - '0') + for c > 0 && d <= 7 { + i *= 8 + i += d + if p.useOptionE() && i >= 0x20 { + break + } + c-- + + p.moveRight(1) + if !p.rightMost() { + d = int(p.rightChar(0) - '0') + } + } + + // Octal codes only go up to 255. Any larger and the behavior that Perl follows + // is simply to truncate the high bits. + i &= 0xFF + + return rune(i) +} + +// Returns the current parsing position. +func (p *parser) textpos() int { + return p.currentPos +} + +// Zaps to a specific parsing position. +func (p *parser) textto(pos int) { + p.currentPos = pos +} + +// Returns the char at the right of the current parsing position and advances to the right. +func (p *parser) moveRightGetChar() rune { + ch := p.pattern[p.currentPos] + p.currentPos++ + return ch +} + +// Moves the current position to the right. +func (p *parser) moveRight(i int) { + // default would be 1 + p.currentPos += i +} + +// Moves the current parsing position one to the left. +func (p *parser) moveLeft() { + p.currentPos-- +} + +// Returns the char left of the current parsing position. +func (p *parser) charAt(i int) rune { + return p.pattern[i] +} + +// Returns the char i chars right of the current parsing position. +func (p *parser) rightChar(i int) rune { + // default would be 0 + return p.pattern[p.currentPos+i] +} + +// Number of characters to the right of the current parsing position. +func (p *parser) charsRight() int { + return len(p.pattern) - p.currentPos +} + +func (p *parser) rightMost() bool { + return p.currentPos == len(p.pattern) +} + +// Looks up the slot number for a given name +func (p *parser) captureSlotFromName(capname string) int { + return p.capnames[capname] +} + +// True if the capture slot was noted +func (p *parser) isCaptureSlot(i int) bool { + if p.caps != nil { + _, ok := p.caps[i] + return ok + } + + return (i >= 0 && i < p.capsize) +} + +// Looks up the slot number for a given name +func (p *parser) isCaptureName(capname string) bool { + if p.capnames == nil { + return false + } + + _, ok := p.capnames[capname] + return ok +} + +// option shortcuts + +// True if N option disabling '(' autocapture is on. +func (p *parser) useOptionN() bool { + return (p.options & ExplicitCapture) != 0 +} + +// True if I option enabling case-insensitivity is on. +func (p *parser) useOptionI() bool { + return (p.options & IgnoreCase) != 0 +} + +// True if M option altering meaning of $ and ^ is on. +func (p *parser) useOptionM() bool { + return (p.options & Multiline) != 0 +} + +// True if S option altering meaning of . is on. +func (p *parser) useOptionS() bool { + return (p.options & Singleline) != 0 +} + +// True if X option enabling whitespace/comment mode is on. +func (p *parser) useOptionX() bool { + return (p.options & IgnorePatternWhitespace) != 0 +} + +// True if E option enabling ECMAScript behavior on. +func (p *parser) useOptionE() bool { + return (p.options & ECMAScript) != 0 +} + +// True if options stack is empty. +func (p *parser) emptyOptionsStack() bool { + return len(p.optionsStack) == 0 +} + +// Finish the current quantifiable (when a quantifier is not found or is not possible) +func (p *parser) addConcatenate() { + // The first (| inside a Testgroup group goes directly to the group + p.concatenation.addChild(p.unit) + p.unit = nil +} + +// Finish the current quantifiable (when a quantifier is found) +func (p *parser) addConcatenate3(lazy bool, min, max int) { + p.concatenation.addChild(p.unit.makeQuantifier(lazy, min, max)) + p.unit = nil +} + +// Sets the current unit to a single char node +func (p *parser) addUnitOne(ch rune) { + if p.useOptionI() { + ch = unicode.ToLower(ch) + } + + p.unit = newRegexNodeCh(ntOne, p.options, ch) +} + +// Sets the current unit to a single inverse-char node +func (p *parser) addUnitNotone(ch rune) { + if p.useOptionI() { + ch = unicode.ToLower(ch) + } + + p.unit = newRegexNodeCh(ntNotone, p.options, ch) +} + +// Sets the current unit to a single set node +func (p *parser) addUnitSet(set *CharSet) { + p.unit = newRegexNodeSet(ntSet, p.options, set) +} + +// Sets the current unit to a subtree +func (p *parser) addUnitNode(node *regexNode) { + p.unit = node +} + +// Sets the current unit to an assertion of the specified type +func (p *parser) addUnitType(t nodeType) { + p.unit = newRegexNode(t, p.options) +} + +// Finish the current group (in response to a ')' or end) +func (p *parser) addGroup() error { + if p.group.t == ntTestgroup || p.group.t == ntTestref { + p.group.addChild(p.concatenation.reverseLeft()) + if (p.group.t == ntTestref && len(p.group.children) > 2) || len(p.group.children) > 3 { + return p.getErr(ErrTooManyAlternates) + } + } else { + p.alternation.addChild(p.concatenation.reverseLeft()) + p.group.addChild(p.alternation) + } + + p.unit = p.group + return nil +} + +// Pops the option stack, but keeps the current options unchanged. +func (p *parser) popKeepOptions() { + lastIdx := len(p.optionsStack) - 1 + p.optionsStack = p.optionsStack[:lastIdx] +} + +// Recalls options from the stack. +func (p *parser) popOptions() { + lastIdx := len(p.optionsStack) - 1 + // get the last item on the stack and then remove it by reslicing + p.options = p.optionsStack[lastIdx] + p.optionsStack = p.optionsStack[:lastIdx] +} + +// Saves options on a stack. +func (p *parser) pushOptions() { + p.optionsStack = append(p.optionsStack, p.options) +} + +// Add a string to the last concatenate. +func (p *parser) addToConcatenate(pos, cch int, isReplacement bool) { + var node *regexNode + + if cch == 0 { + return + } + + if cch > 1 { + str := p.pattern[pos : pos+cch] + + if p.useOptionI() && !isReplacement { + // We do the ToLower character by character for consistency. With surrogate chars, doing + // a ToLower on the entire string could actually change the surrogate pair. This is more correct + // linguistically, but since Regex doesn't support surrogates, it's more important to be + // consistent. + for i := 0; i < len(str); i++ { + str[i] = unicode.ToLower(str[i]) + } + } + + node = newRegexNodeStr(ntMulti, p.options, str) + } else { + ch := p.charAt(pos) + + if p.useOptionI() && !isReplacement { + ch = unicode.ToLower(ch) + } + + node = newRegexNodeCh(ntOne, p.options, ch) + } + + p.concatenation.addChild(node) +} + +// Push the parser state (in response to an open paren) +func (p *parser) pushGroup() { + p.group.next = p.stack + p.alternation.next = p.group + p.concatenation.next = p.alternation + p.stack = p.concatenation +} + +// Remember the pushed state (in response to a ')') +func (p *parser) popGroup() error { + p.concatenation = p.stack + p.alternation = p.concatenation.next + p.group = p.alternation.next + p.stack = p.group.next + + // The first () inside a Testgroup group goes directly to the group + if p.group.t == ntTestgroup && len(p.group.children) == 0 { + if p.unit == nil { + return p.getErr(ErrConditionalExpression) + } + + p.group.addChild(p.unit) + p.unit = nil + } + return nil +} + +// True if the group stack is empty. +func (p *parser) emptyStack() bool { + return p.stack == nil +} + +// Start a new round for the parser state (in response to an open paren or string start) +func (p *parser) startGroup(openGroup *regexNode) { + p.group = openGroup + p.alternation = newRegexNode(ntAlternate, p.options) + p.concatenation = newRegexNode(ntConcatenate, p.options) +} + +// Finish the current concatenation (in response to a |) +func (p *parser) addAlternate() { + // The | parts inside a Testgroup group go directly to the group + + if p.group.t == ntTestgroup || p.group.t == ntTestref { + p.group.addChild(p.concatenation.reverseLeft()) + } else { + p.alternation.addChild(p.concatenation.reverseLeft()) + } + + p.concatenation = newRegexNode(ntConcatenate, p.options) +} + +// For categorizing ascii characters. + +const ( + Q byte = 5 // quantifier + S = 4 // ordinary stopper + Z = 3 // ScanBlank stopper + X = 2 // whitespace + E = 1 // should be escaped +) + +var _category = []byte{ + //01 2 3 4 5 6 7 8 9 A B C D E F 0 1 2 3 4 5 6 7 8 9 A B C D E F + 0, 0, 0, 0, 0, 0, 0, 0, 0, X, X, X, X, X, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + // ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? + X, 0, 0, Z, S, 0, 0, 0, S, S, Q, Q, 0, 0, S, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, Q, + //@A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, S, S, 0, S, 0, + //'a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, Q, S, 0, 0, 0, +} + +func isSpace(ch rune) bool { + return (ch <= ' ' && _category[ch] == X) +} + +// Returns true for those characters that terminate a string of ordinary chars. +func isSpecial(ch rune) bool { + return (ch <= '|' && _category[ch] >= S) +} + +// Returns true for those characters that terminate a string of ordinary chars. +func isStopperX(ch rune) bool { + return (ch <= '|' && _category[ch] >= X) +} + +// Returns true for those characters that begin a quantifier. +func isQuantifier(ch rune) bool { + return (ch <= '{' && _category[ch] >= Q) +} + +func (p *parser) isTrueQuantifier() bool { + nChars := p.charsRight() + if nChars == 0 { + return false + } + + startpos := p.textpos() + ch := p.charAt(startpos) + if ch != '{' { + return ch <= '{' && _category[ch] >= Q + } + + //UGLY: this is ugly -- the original code was ugly too + pos := startpos + for { + nChars-- + if nChars <= 0 { + break + } + pos++ + ch = p.charAt(pos) + if ch < '0' || ch > '9' { + break + } + } + + if nChars == 0 || pos-startpos == 1 { + return false + } + if ch == '}' { + return true + } + if ch != ',' { + return false + } + for { + nChars-- + if nChars <= 0 { + break + } + pos++ + ch = p.charAt(pos) + if ch < '0' || ch > '9' { + break + } + } + + return nChars > 0 && ch == '}' +} diff --git a/vendor/github.com/dlclark/regexp2/syntax/prefix.go b/vendor/github.com/dlclark/regexp2/syntax/prefix.go new file mode 100644 index 00000000000..011ef0b4168 --- /dev/null +++ b/vendor/github.com/dlclark/regexp2/syntax/prefix.go @@ -0,0 +1,896 @@ +package syntax + +import ( + "bytes" + "fmt" + "strconv" + "unicode" + "unicode/utf8" +) + +type Prefix struct { + PrefixStr []rune + PrefixSet CharSet + CaseInsensitive bool +} + +// It takes a RegexTree and computes the set of chars that can start it. +func getFirstCharsPrefix(tree *RegexTree) *Prefix { + s := regexFcd{ + fcStack: make([]regexFc, 32), + intStack: make([]int, 32), + } + fc := s.regexFCFromRegexTree(tree) + + if fc == nil || fc.nullable || fc.cc.IsEmpty() { + return nil + } + fcSet := fc.getFirstChars() + return &Prefix{PrefixSet: fcSet, CaseInsensitive: fc.caseInsensitive} +} + +type regexFcd struct { + intStack []int + intDepth int + fcStack []regexFc + fcDepth int + skipAllChildren bool // don't process any more children at the current level + skipchild bool // don't process the current child. + failed bool +} + +/* + * The main FC computation. It does a shortcutted depth-first walk + * through the tree and calls CalculateFC to emits code before + * and after each child of an interior node, and at each leaf. + */ +func (s *regexFcd) regexFCFromRegexTree(tree *RegexTree) *regexFc { + curNode := tree.root + curChild := 0 + + for { + if len(curNode.children) == 0 { + // This is a leaf node + s.calculateFC(curNode.t, curNode, 0) + } else if curChild < len(curNode.children) && !s.skipAllChildren { + // This is an interior node, and we have more children to analyze + s.calculateFC(curNode.t|beforeChild, curNode, curChild) + + if !s.skipchild { + curNode = curNode.children[curChild] + // this stack is how we get a depth first walk of the tree. + s.pushInt(curChild) + curChild = 0 + } else { + curChild++ + s.skipchild = false + } + continue + } + + // This is an interior node where we've finished analyzing all the children, or + // the end of a leaf node. + s.skipAllChildren = false + + if s.intIsEmpty() { + break + } + + curChild = s.popInt() + curNode = curNode.next + + s.calculateFC(curNode.t|afterChild, curNode, curChild) + if s.failed { + return nil + } + + curChild++ + } + + if s.fcIsEmpty() { + return nil + } + + return s.popFC() +} + +// To avoid recursion, we use a simple integer stack. +// This is the push. +func (s *regexFcd) pushInt(I int) { + if s.intDepth >= len(s.intStack) { + expanded := make([]int, s.intDepth*2) + copy(expanded, s.intStack) + s.intStack = expanded + } + + s.intStack[s.intDepth] = I + s.intDepth++ +} + +// True if the stack is empty. +func (s *regexFcd) intIsEmpty() bool { + return s.intDepth == 0 +} + +// This is the pop. +func (s *regexFcd) popInt() int { + s.intDepth-- + return s.intStack[s.intDepth] +} + +// We also use a stack of RegexFC objects. +// This is the push. +func (s *regexFcd) pushFC(fc regexFc) { + if s.fcDepth >= len(s.fcStack) { + expanded := make([]regexFc, s.fcDepth*2) + copy(expanded, s.fcStack) + s.fcStack = expanded + } + + s.fcStack[s.fcDepth] = fc + s.fcDepth++ +} + +// True if the stack is empty. +func (s *regexFcd) fcIsEmpty() bool { + return s.fcDepth == 0 +} + +// This is the pop. +func (s *regexFcd) popFC() *regexFc { + s.fcDepth-- + return &s.fcStack[s.fcDepth] +} + +// This is the top. +func (s *regexFcd) topFC() *regexFc { + return &s.fcStack[s.fcDepth-1] +} + +// Called in Beforechild to prevent further processing of the current child +func (s *regexFcd) skipChild() { + s.skipchild = true +} + +// FC computation and shortcut cases for each node type +func (s *regexFcd) calculateFC(nt nodeType, node *regexNode, CurIndex int) { + //fmt.Printf("NodeType: %v, CurIndex: %v, Desc: %v\n", nt, CurIndex, node.description()) + ci := false + rtl := false + + if nt <= ntRef { + if (node.options & IgnoreCase) != 0 { + ci = true + } + if (node.options & RightToLeft) != 0 { + rtl = true + } + } + + switch nt { + case ntConcatenate | beforeChild, ntAlternate | beforeChild, ntTestref | beforeChild, ntLoop | beforeChild, ntLazyloop | beforeChild: + break + + case ntTestgroup | beforeChild: + if CurIndex == 0 { + s.skipChild() + } + break + + case ntEmpty: + s.pushFC(regexFc{nullable: true}) + break + + case ntConcatenate | afterChild: + if CurIndex != 0 { + child := s.popFC() + cumul := s.topFC() + + s.failed = !cumul.addFC(*child, true) + } + + fc := s.topFC() + if !fc.nullable { + s.skipAllChildren = true + } + break + + case ntTestgroup | afterChild: + if CurIndex > 1 { + child := s.popFC() + cumul := s.topFC() + + s.failed = !cumul.addFC(*child, false) + } + break + + case ntAlternate | afterChild, ntTestref | afterChild: + if CurIndex != 0 { + child := s.popFC() + cumul := s.topFC() + + s.failed = !cumul.addFC(*child, false) + } + break + + case ntLoop | afterChild, ntLazyloop | afterChild: + if node.m == 0 { + fc := s.topFC() + fc.nullable = true + } + break + + case ntGroup | beforeChild, ntGroup | afterChild, ntCapture | beforeChild, ntCapture | afterChild, ntGreedy | beforeChild, ntGreedy | afterChild: + break + + case ntRequire | beforeChild, ntPrevent | beforeChild: + s.skipChild() + s.pushFC(regexFc{nullable: true}) + break + + case ntRequire | afterChild, ntPrevent | afterChild: + break + + case ntOne, ntNotone: + s.pushFC(newRegexFc(node.ch, nt == ntNotone, false, ci)) + break + + case ntOneloop, ntOnelazy: + s.pushFC(newRegexFc(node.ch, false, node.m == 0, ci)) + break + + case ntNotoneloop, ntNotonelazy: + s.pushFC(newRegexFc(node.ch, true, node.m == 0, ci)) + break + + case ntMulti: + if len(node.str) == 0 { + s.pushFC(regexFc{nullable: true}) + } else if !rtl { + s.pushFC(newRegexFc(node.str[0], false, false, ci)) + } else { + s.pushFC(newRegexFc(node.str[len(node.str)-1], false, false, ci)) + } + break + + case ntSet: + s.pushFC(regexFc{cc: node.set.Copy(), nullable: false, caseInsensitive: ci}) + break + + case ntSetloop, ntSetlazy: + s.pushFC(regexFc{cc: node.set.Copy(), nullable: node.m == 0, caseInsensitive: ci}) + break + + case ntRef: + s.pushFC(regexFc{cc: *AnyClass(), nullable: true, caseInsensitive: false}) + break + + case ntNothing, ntBol, ntEol, ntBoundary, ntNonboundary, ntECMABoundary, ntNonECMABoundary, ntBeginning, ntStart, ntEndZ, ntEnd: + s.pushFC(regexFc{nullable: true}) + break + + default: + panic(fmt.Sprintf("unexpected op code: %v", nt)) + } +} + +type regexFc struct { + cc CharSet + nullable bool + caseInsensitive bool +} + +func newRegexFc(ch rune, not, nullable, caseInsensitive bool) regexFc { + r := regexFc{ + caseInsensitive: caseInsensitive, + nullable: nullable, + } + if not { + if ch > 0 { + r.cc.addRange('\x00', ch-1) + } + if ch < 0xFFFF { + r.cc.addRange(ch+1, utf8.MaxRune) + } + } else { + r.cc.addRange(ch, ch) + } + return r +} + +func (r *regexFc) getFirstChars() CharSet { + if r.caseInsensitive { + r.cc.addLowercase() + } + + return r.cc +} + +func (r *regexFc) addFC(fc regexFc, concatenate bool) bool { + if !r.cc.IsMergeable() || !fc.cc.IsMergeable() { + return false + } + + if concatenate { + if !r.nullable { + return true + } + + if !fc.nullable { + r.nullable = false + } + } else { + if fc.nullable { + r.nullable = true + } + } + + r.caseInsensitive = r.caseInsensitive || fc.caseInsensitive + r.cc.addSet(fc.cc) + + return true +} + +// This is a related computation: it takes a RegexTree and computes the +// leading substring if it sees one. It's quite trivial and gives up easily. +func getPrefix(tree *RegexTree) *Prefix { + var concatNode *regexNode + nextChild := 0 + + curNode := tree.root + + for { + switch curNode.t { + case ntConcatenate: + if len(curNode.children) > 0 { + concatNode = curNode + nextChild = 0 + } + + case ntGreedy, ntCapture: + curNode = curNode.children[0] + concatNode = nil + continue + + case ntOneloop, ntOnelazy: + if curNode.m > 0 { + return &Prefix{ + PrefixStr: repeat(curNode.ch, curNode.m), + CaseInsensitive: (curNode.options & IgnoreCase) != 0, + } + } + return nil + + case ntOne: + return &Prefix{ + PrefixStr: []rune{curNode.ch}, + CaseInsensitive: (curNode.options & IgnoreCase) != 0, + } + + case ntMulti: + return &Prefix{ + PrefixStr: curNode.str, + CaseInsensitive: (curNode.options & IgnoreCase) != 0, + } + + case ntBol, ntEol, ntBoundary, ntECMABoundary, ntBeginning, ntStart, + ntEndZ, ntEnd, ntEmpty, ntRequire, ntPrevent: + + default: + return nil + } + + if concatNode == nil || nextChild >= len(concatNode.children) { + return nil + } + + curNode = concatNode.children[nextChild] + nextChild++ + } +} + +// repeat the rune r, c times... up to the max of MaxPrefixSize +func repeat(r rune, c int) []rune { + if c > MaxPrefixSize { + c = MaxPrefixSize + } + + ret := make([]rune, c) + + // binary growth using copy for speed + ret[0] = r + bp := 1 + for bp < len(ret) { + copy(ret[bp:], ret[:bp]) + bp *= 2 + } + + return ret +} + +// BmPrefix precomputes the Boyer-Moore +// tables for fast string scanning. These tables allow +// you to scan for the first occurrence of a string within +// a large body of text without examining every character. +// The performance of the heuristic depends on the actual +// string and the text being searched, but usually, the longer +// the string that is being searched for, the fewer characters +// need to be examined. +type BmPrefix struct { + positive []int + negativeASCII []int + negativeUnicode [][]int + pattern []rune + lowASCII rune + highASCII rune + rightToLeft bool + caseInsensitive bool +} + +func newBmPrefix(pattern []rune, caseInsensitive, rightToLeft bool) *BmPrefix { + + b := &BmPrefix{ + rightToLeft: rightToLeft, + caseInsensitive: caseInsensitive, + pattern: pattern, + } + + if caseInsensitive { + for i := 0; i < len(b.pattern); i++ { + // We do the ToLower character by character for consistency. With surrogate chars, doing + // a ToLower on the entire string could actually change the surrogate pair. This is more correct + // linguistically, but since Regex doesn't support surrogates, it's more important to be + // consistent. + + b.pattern[i] = unicode.ToLower(b.pattern[i]) + } + } + + var beforefirst, last, bump int + var scan, match int + + if !rightToLeft { + beforefirst = -1 + last = len(b.pattern) - 1 + bump = 1 + } else { + beforefirst = len(b.pattern) + last = 0 + bump = -1 + } + + // PART I - the good-suffix shift table + // + // compute the positive requirement: + // if char "i" is the first one from the right that doesn't match, + // then we know the matcher can advance by _positive[i]. + // + // This algorithm is a simplified variant of the standard + // Boyer-Moore good suffix calculation. + + b.positive = make([]int, len(b.pattern)) + + examine := last + ch := b.pattern[examine] + b.positive[examine] = bump + examine -= bump + +Outerloop: + for { + // find an internal char (examine) that matches the tail + + for { + if examine == beforefirst { + break Outerloop + } + if b.pattern[examine] == ch { + break + } + examine -= bump + } + + match = last + scan = examine + + // find the length of the match + for { + if scan == beforefirst || b.pattern[match] != b.pattern[scan] { + // at the end of the match, note the difference in _positive + // this is not the length of the match, but the distance from the internal match + // to the tail suffix. + if b.positive[match] == 0 { + b.positive[match] = match - scan + } + + // System.Diagnostics.Debug.WriteLine("Set positive[" + match + "] to " + (match - scan)); + + break + } + + scan -= bump + match -= bump + } + + examine -= bump + } + + match = last - bump + + // scan for the chars for which there are no shifts that yield a different candidate + + // The inside of the if statement used to say + // "_positive[match] = last - beforefirst;" + // This is slightly less aggressive in how much we skip, but at worst it + // should mean a little more work rather than skipping a potential match. + for match != beforefirst { + if b.positive[match] == 0 { + b.positive[match] = bump + } + + match -= bump + } + + // PART II - the bad-character shift table + // + // compute the negative requirement: + // if char "ch" is the reject character when testing position "i", + // we can slide up by _negative[ch]; + // (_negative[ch] = str.Length - 1 - str.LastIndexOf(ch)) + // + // the lookup table is divided into ASCII and Unicode portions; + // only those parts of the Unicode 16-bit code set that actually + // appear in the string are in the table. (Maximum size with + // Unicode is 65K; ASCII only case is 512 bytes.) + + b.negativeASCII = make([]int, 128) + + for i := 0; i < len(b.negativeASCII); i++ { + b.negativeASCII[i] = last - beforefirst + } + + b.lowASCII = 127 + b.highASCII = 0 + + for examine = last; examine != beforefirst; examine -= bump { + ch = b.pattern[examine] + + switch { + case ch < 128: + if b.lowASCII > ch { + b.lowASCII = ch + } + + if b.highASCII < ch { + b.highASCII = ch + } + + if b.negativeASCII[ch] == last-beforefirst { + b.negativeASCII[ch] = last - examine + } + case ch <= 0xffff: + i, j := ch>>8, ch&0xFF + + if b.negativeUnicode == nil { + b.negativeUnicode = make([][]int, 256) + } + + if b.negativeUnicode[i] == nil { + newarray := make([]int, 256) + + for k := 0; k < len(newarray); k++ { + newarray[k] = last - beforefirst + } + + if i == 0 { + copy(newarray, b.negativeASCII) + //TODO: this line needed? + b.negativeASCII = newarray + } + + b.negativeUnicode[i] = newarray + } + + if b.negativeUnicode[i][j] == last-beforefirst { + b.negativeUnicode[i][j] = last - examine + } + default: + // we can't do the filter because this algo doesn't support + // unicode chars >0xffff + return nil + } + } + + return b +} + +func (b *BmPrefix) String() string { + return string(b.pattern) +} + +// Dump returns the contents of the filter as a human readable string +func (b *BmPrefix) Dump(indent string) string { + buf := &bytes.Buffer{} + + fmt.Fprintf(buf, "%sBM Pattern: %s\n%sPositive: ", indent, string(b.pattern), indent) + for i := 0; i < len(b.positive); i++ { + buf.WriteString(strconv.Itoa(b.positive[i])) + buf.WriteRune(' ') + } + buf.WriteRune('\n') + + if b.negativeASCII != nil { + buf.WriteString(indent) + buf.WriteString("Negative table\n") + for i := 0; i < len(b.negativeASCII); i++ { + if b.negativeASCII[i] != len(b.pattern) { + fmt.Fprintf(buf, "%s %s %s\n", indent, Escape(string(rune(i))), strconv.Itoa(b.negativeASCII[i])) + } + } + } + + return buf.String() +} + +// Scan uses the Boyer-Moore algorithm to find the first occurrence +// of the specified string within text, beginning at index, and +// constrained within beglimit and endlimit. +// +// The direction and case-sensitivity of the match is determined +// by the arguments to the RegexBoyerMoore constructor. +func (b *BmPrefix) Scan(text []rune, index, beglimit, endlimit int) int { + var ( + defadv, test, test2 int + match, startmatch, endmatch int + bump, advance int + chTest rune + unicodeLookup []int + ) + + if !b.rightToLeft { + defadv = len(b.pattern) + startmatch = len(b.pattern) - 1 + endmatch = 0 + test = index + defadv - 1 + bump = 1 + } else { + defadv = -len(b.pattern) + startmatch = 0 + endmatch = -defadv - 1 + test = index + defadv + bump = -1 + } + + chMatch := b.pattern[startmatch] + + for { + if test >= endlimit || test < beglimit { + return -1 + } + + chTest = text[test] + + if b.caseInsensitive { + chTest = unicode.ToLower(chTest) + } + + if chTest != chMatch { + if chTest < 128 { + advance = b.negativeASCII[chTest] + } else if chTest < 0xffff && len(b.negativeUnicode) > 0 { + unicodeLookup = b.negativeUnicode[chTest>>8] + if len(unicodeLookup) > 0 { + advance = unicodeLookup[chTest&0xFF] + } else { + advance = defadv + } + } else { + advance = defadv + } + + test += advance + } else { // if (chTest == chMatch) + test2 = test + match = startmatch + + for { + if match == endmatch { + if b.rightToLeft { + return test2 + 1 + } else { + return test2 + } + } + + match -= bump + test2 -= bump + + chTest = text[test2] + + if b.caseInsensitive { + chTest = unicode.ToLower(chTest) + } + + if chTest != b.pattern[match] { + advance = b.positive[match] + if (chTest & 0xFF80) == 0 { + test2 = (match - startmatch) + b.negativeASCII[chTest] + } else if chTest < 0xffff && len(b.negativeUnicode) > 0 { + unicodeLookup = b.negativeUnicode[chTest>>8] + if len(unicodeLookup) > 0 { + test2 = (match - startmatch) + unicodeLookup[chTest&0xFF] + } else { + test += advance + break + } + } else { + test += advance + break + } + + if b.rightToLeft { + if test2 < advance { + advance = test2 + } + } else if test2 > advance { + advance = test2 + } + + test += advance + break + } + } + } + } +} + +// When a regex is anchored, we can do a quick IsMatch test instead of a Scan +func (b *BmPrefix) IsMatch(text []rune, index, beglimit, endlimit int) bool { + if !b.rightToLeft { + if index < beglimit || endlimit-index < len(b.pattern) { + return false + } + + return b.matchPattern(text, index) + } else { + if index > endlimit || index-beglimit < len(b.pattern) { + return false + } + + return b.matchPattern(text, index-len(b.pattern)) + } +} + +func (b *BmPrefix) matchPattern(text []rune, index int) bool { + if len(text)-index < len(b.pattern) { + return false + } + + if b.caseInsensitive { + for i := 0; i < len(b.pattern); i++ { + //Debug.Assert(textinfo.ToLower(_pattern[i]) == _pattern[i], "pattern should be converted to lower case in constructor!"); + if unicode.ToLower(text[index+i]) != b.pattern[i] { + return false + } + } + return true + } else { + for i := 0; i < len(b.pattern); i++ { + if text[index+i] != b.pattern[i] { + return false + } + } + return true + } +} + +type AnchorLoc int16 + +// where the regex can be pegged +const ( + AnchorBeginning AnchorLoc = 0x0001 + AnchorBol = 0x0002 + AnchorStart = 0x0004 + AnchorEol = 0x0008 + AnchorEndZ = 0x0010 + AnchorEnd = 0x0020 + AnchorBoundary = 0x0040 + AnchorECMABoundary = 0x0080 +) + +func getAnchors(tree *RegexTree) AnchorLoc { + + var concatNode *regexNode + nextChild, result := 0, AnchorLoc(0) + + curNode := tree.root + + for { + switch curNode.t { + case ntConcatenate: + if len(curNode.children) > 0 { + concatNode = curNode + nextChild = 0 + } + + case ntGreedy, ntCapture: + curNode = curNode.children[0] + concatNode = nil + continue + + case ntBol, ntEol, ntBoundary, ntECMABoundary, ntBeginning, + ntStart, ntEndZ, ntEnd: + return result | anchorFromType(curNode.t) + + case ntEmpty, ntRequire, ntPrevent: + + default: + return result + } + + if concatNode == nil || nextChild >= len(concatNode.children) { + return result + } + + curNode = concatNode.children[nextChild] + nextChild++ + } +} + +func anchorFromType(t nodeType) AnchorLoc { + switch t { + case ntBol: + return AnchorBol + case ntEol: + return AnchorEol + case ntBoundary: + return AnchorBoundary + case ntECMABoundary: + return AnchorECMABoundary + case ntBeginning: + return AnchorBeginning + case ntStart: + return AnchorStart + case ntEndZ: + return AnchorEndZ + case ntEnd: + return AnchorEnd + default: + return 0 + } +} + +// anchorDescription returns a human-readable description of the anchors +func (anchors AnchorLoc) String() string { + buf := &bytes.Buffer{} + + if 0 != (anchors & AnchorBeginning) { + buf.WriteString(", Beginning") + } + if 0 != (anchors & AnchorStart) { + buf.WriteString(", Start") + } + if 0 != (anchors & AnchorBol) { + buf.WriteString(", Bol") + } + if 0 != (anchors & AnchorBoundary) { + buf.WriteString(", Boundary") + } + if 0 != (anchors & AnchorECMABoundary) { + buf.WriteString(", ECMABoundary") + } + if 0 != (anchors & AnchorEol) { + buf.WriteString(", Eol") + } + if 0 != (anchors & AnchorEnd) { + buf.WriteString(", End") + } + if 0 != (anchors & AnchorEndZ) { + buf.WriteString(", EndZ") + } + + // trim off comma + if buf.Len() >= 2 { + return buf.String()[2:] + } + return "None" +} diff --git a/vendor/github.com/dlclark/regexp2/syntax/replacerdata.go b/vendor/github.com/dlclark/regexp2/syntax/replacerdata.go new file mode 100644 index 00000000000..bcf4d3f2574 --- /dev/null +++ b/vendor/github.com/dlclark/regexp2/syntax/replacerdata.go @@ -0,0 +1,87 @@ +package syntax + +import ( + "bytes" + "errors" +) + +type ReplacerData struct { + Rep string + Strings []string + Rules []int +} + +const ( + replaceSpecials = 4 + replaceLeftPortion = -1 + replaceRightPortion = -2 + replaceLastGroup = -3 + replaceWholeString = -4 +) + +//ErrReplacementError is a general error during parsing the replacement text +var ErrReplacementError = errors.New("Replacement pattern error.") + +// NewReplacerData will populate a reusable replacer data struct based on the given replacement string +// and the capture group data from a regexp +func NewReplacerData(rep string, caps map[int]int, capsize int, capnames map[string]int, op RegexOptions) (*ReplacerData, error) { + p := parser{ + options: op, + caps: caps, + capsize: capsize, + capnames: capnames, + } + p.setPattern(rep) + concat, err := p.scanReplacement() + if err != nil { + return nil, err + } + + if concat.t != ntConcatenate { + panic(ErrReplacementError) + } + + sb := &bytes.Buffer{} + var ( + strings []string + rules []int + ) + + for _, child := range concat.children { + switch child.t { + case ntMulti: + child.writeStrToBuf(sb) + + case ntOne: + sb.WriteRune(child.ch) + + case ntRef: + if sb.Len() > 0 { + rules = append(rules, len(strings)) + strings = append(strings, sb.String()) + sb.Reset() + } + slot := child.m + + if len(caps) > 0 && slot >= 0 { + slot = caps[slot] + } + + rules = append(rules, -replaceSpecials-1-slot) + + default: + panic(ErrReplacementError) + } + } + + if sb.Len() > 0 { + rules = append(rules, len(strings)) + strings = append(strings, sb.String()) + } + + return &ReplacerData{ + Rep: rep, + Strings: strings, + Rules: rules, + }, nil +} diff --git a/vendor/github.com/dlclark/regexp2/syntax/tree.go b/vendor/github.com/dlclark/regexp2/syntax/tree.go new file mode 100644 index 00000000000..ea28829319b --- /dev/null +++ b/vendor/github.com/dlclark/regexp2/syntax/tree.go @@ -0,0 +1,654 @@ +package syntax + +import ( + "bytes" + "fmt" + "math" + "strconv" +) + +type RegexTree struct { + root *regexNode + caps map[int]int + capnumlist []int + captop int + Capnames map[string]int + Caplist []string + options RegexOptions +} + +// It is built into a parsed tree for a regular expression. + +// Implementation notes: +// +// Since the node tree is a temporary data structure only used +// during compilation of the regexp to integer codes, it's +// designed for clarity and convenience rather than +// space efficiency. +// +// RegexNodes are built into a tree, linked by the n.children list. +// Each node also has a n.parent and n.ichild member indicating +// its parent and which child # it is in its parent's list. +// +// RegexNodes come in as many types as there are constructs in +// a regular expression, for example, "concatenate", "alternate", +// "one", "rept", "group". There are also node types for basic +// peephole optimizations, e.g., "onerep", "notsetrep", etc. +// +// Because perl 5 allows "lookback" groups that scan backwards, +// each node also gets a "direction". Normally the value of +// boolean n.backward = false. +// +// During parsing, top-level nodes are also stacked onto a parse +// stack (a stack of trees). For this purpose we have a n.next +// pointer. [Note that to save a few bytes, we could overload the +// n.parent pointer instead.] +// +// On the parse stack, each tree has a "role" - basically, the +// nonterminal in the grammar that the parser has currently +// assigned to the tree. That code is stored in n.role. +// +// Finally, some of the different kinds of nodes have data. +// Two integers (for the looping constructs) are stored in +// n.operands, an an object (either a string or a set) +// is stored in n.data +type regexNode struct { + t nodeType + children []*regexNode + str []rune + set *CharSet + ch rune + m int + n int + options RegexOptions + next *regexNode +} + +type nodeType int32 + +const ( + // The following are leaves, and correspond to primitive operations + + ntOnerep nodeType = 0 // lef,back char,min,max a {n} + ntNotonerep = 1 // lef,back char,min,max .{n} + ntSetrep = 2 // lef,back set,min,max [\d]{n} + ntOneloop = 3 // lef,back char,min,max a {,n} + ntNotoneloop = 4 // lef,back char,min,max .{,n} + ntSetloop = 5 // lef,back set,min,max [\d]{,n} + ntOnelazy = 6 // lef,back char,min,max a {,n}? + ntNotonelazy = 7 // lef,back char,min,max .{,n}? + ntSetlazy = 8 // lef,back set,min,max [\d]{,n}? + ntOne = 9 // lef char a + ntNotone = 10 // lef char [^a] + ntSet = 11 // lef set [a-z\s] \w \s \d + ntMulti = 12 // lef string abcd + ntRef = 13 // lef group \# + ntBol = 14 // ^ + ntEol = 15 // $ + ntBoundary = 16 // \b + ntNonboundary = 17 // \B + ntBeginning = 18 // \A + ntStart = 19 // \G + ntEndZ = 20 // \Z + ntEnd = 21 // \Z + + // Interior nodes do not correspond to primitive operations, but + // control structures compositing other operations + + // Concat and alternate take n children, and can run forward or backwards + + ntNothing = 22 // [] + ntEmpty = 23 // () + ntAlternate = 24 // a|b + ntConcatenate = 25 // ab + ntLoop = 26 // m,x * + ? {,} + ntLazyloop = 27 // m,x *? +? ?? {,}? + ntCapture = 28 // n () + ntGroup = 29 // (?:) + ntRequire = 30 // (?=) (?<=) + ntPrevent = 31 // (?!) (?) (?<) + ntTestref = 33 // (?(n) | ) + ntTestgroup = 34 // (?(...) | ) + + ntECMABoundary = 41 // \b + ntNonECMABoundary = 42 // \B +) + +func newRegexNode(t nodeType, opt RegexOptions) *regexNode { + return ®exNode{ + t: t, + options: opt, + } +} + +func newRegexNodeCh(t nodeType, opt RegexOptions, ch rune) *regexNode { + return ®exNode{ + t: t, + options: opt, + ch: ch, + } +} + +func newRegexNodeStr(t nodeType, opt RegexOptions, str []rune) *regexNode { + return ®exNode{ + t: t, + options: opt, + str: str, + } +} + +func newRegexNodeSet(t nodeType, opt RegexOptions, set *CharSet) *regexNode { + return ®exNode{ + t: t, + options: opt, + set: set, + } +} + +func newRegexNodeM(t nodeType, opt RegexOptions, m int) *regexNode { + return ®exNode{ + t: t, + options: opt, + m: m, + } +} +func newRegexNodeMN(t nodeType, opt RegexOptions, m, n int) *regexNode { + return ®exNode{ + t: t, + options: opt, + m: m, + n: n, + } +} + +func (n *regexNode) writeStrToBuf(buf *bytes.Buffer) { + for i := 0; i < len(n.str); i++ { + buf.WriteRune(n.str[i]) + } +} + +func (n *regexNode) addChild(child *regexNode) { + reduced := child.reduce() + n.children = append(n.children, reduced) + reduced.next = n +} + +func (n *regexNode) insertChildren(afterIndex int, nodes []*regexNode) { + newChildren := make([]*regexNode, 0, len(n.children)+len(nodes)) + n.children = append(append(append(newChildren, n.children[:afterIndex]...), nodes...), n.children[afterIndex:]...) +} + +// removes children including the start but not the end index +func (n *regexNode) removeChildren(startIndex, endIndex int) { + n.children = append(n.children[:startIndex], n.children[endIndex:]...) +} + +// Pass type as OneLazy or OneLoop +func (n *regexNode) makeRep(t nodeType, min, max int) { + n.t += (t - ntOne) + n.m = min + n.n = max +} + +func (n *regexNode) reduce() *regexNode { + switch n.t { + case ntAlternate: + return n.reduceAlternation() + + case ntConcatenate: + return n.reduceConcatenation() + + case ntLoop, ntLazyloop: + return n.reduceRep() + + case ntGroup: + return n.reduceGroup() + + case ntSet, ntSetloop: + return n.reduceSet() + + default: + return n + } +} + +// Basic optimization. Single-letter alternations can be replaced +// by faster set specifications, and nested alternations with no +// intervening operators can be flattened: +// +// a|b|c|def|g|h -> [a-c]|def|[gh] +// apple|(?:orange|pear)|grape -> apple|orange|pear|grape +func (n *regexNode) reduceAlternation() *regexNode { + if len(n.children) == 0 { + return newRegexNode(ntNothing, n.options) + } + + wasLastSet := false + lastNodeCannotMerge := false + var optionsLast RegexOptions + var i, j int + + for i, j = 0, 0; i < len(n.children); i, j = i+1, j+1 { + at := n.children[i] + + if j < i { + n.children[j] = at + } + + for { + if at.t == ntAlternate { + for k := 0; k < len(at.children); k++ { + at.children[k].next = n + } + n.insertChildren(i+1, at.children) + + j-- + } else if at.t == ntSet || at.t == ntOne { + // Cannot merge sets if L or I options differ, or if either are negated. + optionsAt := at.options & (RightToLeft | IgnoreCase) + + if at.t == ntSet { + if !wasLastSet || optionsLast != optionsAt || lastNodeCannotMerge || !at.set.IsMergeable() { + wasLastSet = true + lastNodeCannotMerge = !at.set.IsMergeable() + optionsLast = optionsAt + break + } + } else if !wasLastSet || optionsLast != optionsAt || lastNodeCannotMerge { + wasLastSet = true + lastNodeCannotMerge = false + optionsLast = optionsAt + break + } + + // The last node was a Set or a One, we're a Set or One and our options are the same. + // Merge the two nodes. + j-- + prev := n.children[j] + + var prevCharClass *CharSet + if prev.t == ntOne { + prevCharClass = &CharSet{} + prevCharClass.addChar(prev.ch) + } else { + prevCharClass = prev.set + } + + if at.t == ntOne { + prevCharClass.addChar(at.ch) + } else { + prevCharClass.addSet(*at.set) + } + + prev.t = ntSet + prev.set = prevCharClass + } else if at.t == ntNothing { + j-- + } else { + wasLastSet = false + lastNodeCannotMerge = false + } + break + } + } + + if j < i { + n.removeChildren(j, i) + } + + return n.stripEnation(ntNothing) +} + +// Basic optimization. Adjacent strings can be concatenated. +// +// (?:abc)(?:def) -> abcdef +func (n *regexNode) reduceConcatenation() *regexNode { + // Eliminate empties and concat adjacent strings/chars + + var optionsLast RegexOptions + var optionsAt RegexOptions + var i, j int + + if len(n.children) == 0 { + return newRegexNode(ntEmpty, n.options) + } + + wasLastString := false + + for i, j = 0, 0; i < len(n.children); i, j = i+1, j+1 { + var at, prev *regexNode + + at = n.children[i] + + if j < i { + n.children[j] = at + } + + if at.t == ntConcatenate && + ((at.options & RightToLeft) == (n.options & RightToLeft)) { + for k := 0; k < len(at.children); k++ { + at.children[k].next = n + } + + //insert at.children at i+1 index in n.children + n.insertChildren(i+1, at.children) + + j-- + } else if at.t == ntMulti || at.t == ntOne { + // Cannot merge strings if L or I options differ + optionsAt = at.options & (RightToLeft | IgnoreCase) + + if !wasLastString || optionsLast != optionsAt { + wasLastString = true + optionsLast = optionsAt + continue + } + + j-- + prev = n.children[j] + + if prev.t == ntOne { + prev.t = ntMulti + prev.str = []rune{prev.ch} + } + + if (optionsAt & RightToLeft) == 0 { + if at.t == ntOne { + prev.str = append(prev.str, at.ch) + } else { + prev.str = append(prev.str, at.str...) + } + } else { + if at.t == ntOne { + // insert at the front by expanding our slice, copying the data over, and then setting the value + prev.str = append(prev.str, 0) + copy(prev.str[1:], prev.str) + prev.str[0] = at.ch + } else { + //insert at the front...this one we'll make a new slice and copy both into it + merge := make([]rune, len(prev.str)+len(at.str)) + copy(merge, at.str) + copy(merge[len(at.str):], prev.str) + prev.str = merge + } + } + } else if at.t == ntEmpty { + j-- + } else { + wasLastString = false + } + } + + if j < i { + // remove indices j through i from the children + n.removeChildren(j, i) + } + + return n.stripEnation(ntEmpty) +} + +// Nested repeaters just get multiplied with each other if they're not +// too lumpy +func (n *regexNode) reduceRep() *regexNode { + + u := n + t := n.t + min := n.m + max := n.n + + for { + if len(u.children) == 0 { + break + } + + child := u.children[0] + + // multiply reps of the same type only + if child.t != t { + childType := child.t + + if !(childType >= ntOneloop && childType <= ntSetloop && t == ntLoop || + childType >= ntOnelazy && childType <= ntSetlazy && t == ntLazyloop) { + break + } + } + + // child can be too lumpy to blur, e.g., (a {100,105}) {3} or (a {2,})? + // [but things like (a {2,})+ are not too lumpy...] + if u.m == 0 && child.m > 1 || child.n < child.m*2 { + break + } + + u = child + if u.m > 0 { + if (math.MaxInt32-1)/u.m < min { + u.m = math.MaxInt32 + } else { + u.m = u.m * min + } + } + if u.n > 0 { + if (math.MaxInt32-1)/u.n < max { + u.n = math.MaxInt32 + } else { + u.n = u.n * max + } + } + } + + if math.MaxInt32 == min { + return newRegexNode(ntNothing, n.options) + } + return u + +} + +// Simple optimization. If a concatenation or alternation has only +// one child strip out the intermediate node. If it has zero children, +// turn it into an empty. +func (n *regexNode) stripEnation(emptyType nodeType) *regexNode { + switch len(n.children) { + case 0: + return newRegexNode(emptyType, n.options) + case 1: + return n.children[0] + default: + return n + } +} + +func (n *regexNode) reduceGroup() *regexNode { + u := n + + for u.t == ntGroup { + u = u.children[0] + } + + return u +} + +// Simple optimization. If a set is a singleton, an inverse singleton, +// or empty, it's transformed accordingly. +func (n *regexNode) reduceSet() *regexNode { + // Extract empty-set, one and not-one case as special + + if n.set == nil { + n.t = ntNothing + } else if n.set.IsSingleton() { + n.ch = n.set.SingletonChar() + n.set = nil + n.t += (ntOne - ntSet) + } else if n.set.IsSingletonInverse() { + n.ch = n.set.SingletonChar() + n.set = nil + n.t += (ntNotone - ntSet) + } + + return n +} + +func (n *regexNode) reverseLeft() *regexNode { + if n.options&RightToLeft != 0 && n.t == ntConcatenate && len(n.children) > 0 { + //reverse children order + for left, right := 0, len(n.children)-1; left < right; left, right = left+1, right-1 { + n.children[left], n.children[right] = n.children[right], n.children[left] + } + } + + return n +} + +func (n *regexNode) makeQuantifier(lazy bool, min, max int) *regexNode { + if min == 0 && max == 0 { + return newRegexNode(ntEmpty, n.options) + } + + if min == 1 && max == 1 { + return n + } + + switch n.t { + case ntOne, ntNotone, ntSet: + if lazy { + n.makeRep(Onelazy, min, max) + } else { + n.makeRep(Oneloop, min, max) + } + return n + + default: + var t nodeType + if lazy { + t = ntLazyloop + } else { + t = ntLoop + } + result := newRegexNodeMN(t, n.options, min, max) + result.addChild(n) + return result + } +} + +// debug functions + +var typeStr = []string{ + "Onerep", "Notonerep", "Setrep", + "Oneloop", "Notoneloop", "Setloop", + "Onelazy", "Notonelazy", "Setlazy", + "One", "Notone", "Set", + "Multi", "Ref", + "Bol", "Eol", "Boundary", "Nonboundary", + "Beginning", "Start", "EndZ", "End", + "Nothing", "Empty", + "Alternate", "Concatenate", + "Loop", "Lazyloop", + "Capture", "Group", "Require", "Prevent", "Greedy", + "Testref", "Testgroup", + "Unknown", "Unknown", "Unknown", + "Unknown", "Unknown", "Unknown", + "ECMABoundary", "NonECMABoundary", +} + +func (n *regexNode) description() string { + buf := &bytes.Buffer{} + + buf.WriteString(typeStr[n.t]) + + if (n.options & ExplicitCapture) != 0 { + buf.WriteString("-C") + } + if (n.options & IgnoreCase) != 0 { + buf.WriteString("-I") + } + if (n.options & RightToLeft) != 0 { + buf.WriteString("-L") + } + if (n.options & Multiline) != 0 { + buf.WriteString("-M") + } + if (n.options & Singleline) != 0 { + buf.WriteString("-S") + } + if (n.options & IgnorePatternWhitespace) != 0 { + buf.WriteString("-X") + } + if (n.options & ECMAScript) != 0 { + buf.WriteString("-E") + } + + switch n.t { + case ntOneloop, ntNotoneloop, ntOnelazy, ntNotonelazy, ntOne, ntNotone: + buf.WriteString("(Ch = " + CharDescription(n.ch) + ")") + break + case ntCapture: + buf.WriteString("(index = " + strconv.Itoa(n.m) + ", unindex = " + strconv.Itoa(n.n) + ")") + break + case ntRef, ntTestref: + buf.WriteString("(index = " + strconv.Itoa(n.m) + ")") + break + case ntMulti: + fmt.Fprintf(buf, "(String = %s)", string(n.str)) + break + case ntSet, ntSetloop, ntSetlazy: + buf.WriteString("(Set = " + n.set.String() + ")") + break + } + + switch n.t { + case ntOneloop, ntNotoneloop, ntOnelazy, ntNotonelazy, ntSetloop, ntSetlazy, ntLoop, ntLazyloop: + buf.WriteString("(Min = ") + buf.WriteString(strconv.Itoa(n.m)) + buf.WriteString(", Max = ") + if n.n == math.MaxInt32 { + buf.WriteString("inf") + } else { + buf.WriteString(strconv.Itoa(n.n)) + } + buf.WriteString(")") + + break + } + + return buf.String() +} + +var padSpace = []byte(" ") + +func (t *RegexTree) Dump() string { + return t.root.dump() +} + +func (n *regexNode) dump() string { + var stack []int + CurNode := n + CurChild := 0 + + buf := bytes.NewBufferString(CurNode.description()) + buf.WriteRune('\n') + + for { + if CurNode.children != nil && CurChild < len(CurNode.children) { + stack = append(stack, CurChild+1) + CurNode = CurNode.children[CurChild] + CurChild = 0 + + Depth := len(stack) + if Depth > 32 { + Depth = 32 + } + buf.Write(padSpace[:Depth]) + buf.WriteString(CurNode.description()) + buf.WriteRune('\n') + } else { + if len(stack) == 0 { + break + } + + CurChild = stack[len(stack)-1] + stack = stack[:len(stack)-1] + CurNode = CurNode.next + } + } + return buf.String() +} diff --git a/vendor/github.com/dlclark/regexp2/syntax/writer.go b/vendor/github.com/dlclark/regexp2/syntax/writer.go new file mode 100644 index 00000000000..a5aa11ca067 --- /dev/null +++ b/vendor/github.com/dlclark/regexp2/syntax/writer.go @@ -0,0 +1,500 @@ +package syntax + +import ( + "bytes" + "fmt" + "math" + "os" +) + +func Write(tree *RegexTree) (*Code, error) { + w := writer{ + intStack: make([]int, 0, 32), + emitted: make([]int, 2), + stringhash: make(map[string]int), + sethash: make(map[string]int), + } + + code, err := w.codeFromTree(tree) + + if tree.options&Debug > 0 && code != nil { + os.Stdout.WriteString(code.Dump()) + os.Stdout.WriteString("\n") + } + + return code, err +} + +type writer struct { + emitted []int + + intStack []int + curpos int + stringhash map[string]int + stringtable [][]rune + sethash map[string]int + settable []*CharSet + counting bool + count int + trackcount int + caps map[int]int +} + +const ( + beforeChild nodeType = 64 + afterChild = 128 + //MaxPrefixSize is the largest number of runes we'll use for a BoyerMoyer prefix + MaxPrefixSize = 50 +) + +// The top level RegexCode generator. It does a depth-first walk +// through the tree and calls EmitFragment to emits code before +// and after each child of an interior node, and at each leaf. +// +// It runs two passes, first to count the size of the generated +// code, and second to generate the code. +// +// We should time it against the alternative, which is +// to just generate the code and grow the array as we go. +func (w *writer) codeFromTree(tree *RegexTree) (*Code, error) { + var ( + curNode *regexNode + curChild int + capsize int + ) + // construct sparse capnum mapping if some numbers are unused + + if tree.capnumlist == nil || tree.captop == len(tree.capnumlist) { + capsize = tree.captop + w.caps = nil + } else { + capsize = len(tree.capnumlist) + w.caps = tree.caps + for i := 0; i < len(tree.capnumlist); i++ { + w.caps[tree.capnumlist[i]] = i + } + } + + w.counting = true + + for { + if !w.counting { + w.emitted = make([]int, w.count) + } + + curNode = tree.root + curChild = 0 + + w.emit1(Lazybranch, 0) + + for { + if len(curNode.children) == 0 { + w.emitFragment(curNode.t, curNode, 0) + } else if curChild < len(curNode.children) { + w.emitFragment(curNode.t|beforeChild, curNode, curChild) + + curNode = curNode.children[curChild] + + w.pushInt(curChild) + curChild = 0 + continue + } + + if w.emptyStack() { + break + } + + curChild = w.popInt() + curNode = curNode.next + + w.emitFragment(curNode.t|afterChild, curNode, curChild) + curChild++ + } + + w.patchJump(0, w.curPos()) + w.emit(Stop) + + if !w.counting { + break + } + + w.counting = false + } + + fcPrefix := getFirstCharsPrefix(tree) + prefix := getPrefix(tree) + rtl := (tree.options & RightToLeft) != 0 + + var bmPrefix *BmPrefix + //TODO: benchmark string prefixes + if prefix != nil && len(prefix.PrefixStr) > 0 && MaxPrefixSize > 0 { + if len(prefix.PrefixStr) > MaxPrefixSize { + // limit prefix changes to 10k + prefix.PrefixStr = prefix.PrefixStr[:MaxPrefixSize] + } + bmPrefix = newBmPrefix(prefix.PrefixStr, prefix.CaseInsensitive, rtl) + } else { + bmPrefix = nil + } + + return &Code{ + Codes: w.emitted, + Strings: w.stringtable, + Sets: w.settable, + TrackCount: w.trackcount, + Caps: w.caps, + Capsize: capsize, + FcPrefix: fcPrefix, + BmPrefix: bmPrefix, + Anchors: getAnchors(tree), + RightToLeft: rtl, + }, nil +} + +// The main RegexCode generator. It does a depth-first walk +// through the tree and calls EmitFragment to emits code before +// and after each child of an interior node, and at each leaf. +func (w *writer) emitFragment(nodetype nodeType, node *regexNode, curIndex int) error { + bits := InstOp(0) + + if nodetype <= ntRef { + if (node.options & RightToLeft) != 0 { + bits |= Rtl + } + if (node.options & IgnoreCase) != 0 { + bits |= Ci + } + } + ntBits := nodeType(bits) + + switch nodetype { + case ntConcatenate | beforeChild, ntConcatenate | afterChild, ntEmpty: + break + + case ntAlternate | beforeChild: + if curIndex < len(node.children)-1 { + w.pushInt(w.curPos()) + w.emit1(Lazybranch, 0) + } + + case ntAlternate | afterChild: + if curIndex < len(node.children)-1 { + lbPos := w.popInt() + w.pushInt(w.curPos()) + w.emit1(Goto, 0) + w.patchJump(lbPos, w.curPos()) + } else { + for i := 0; i < curIndex; i++ { + w.patchJump(w.popInt(), w.curPos()) + } + } + break + + case ntTestref | beforeChild: + if curIndex == 0 { + w.emit(Setjump) + w.pushInt(w.curPos()) + w.emit1(Lazybranch, 0) + w.emit1(Testref, w.mapCapnum(node.m)) + w.emit(Forejump) + } + + case ntTestref | afterChild: + if curIndex == 0 { + branchpos := w.popInt() + w.pushInt(w.curPos()) + w.emit1(Goto, 0) + w.patchJump(branchpos, w.curPos()) + w.emit(Forejump) + if len(node.children) <= 1 { + w.patchJump(w.popInt(), w.curPos()) + } + } else if curIndex == 1 { + w.patchJump(w.popInt(), w.curPos()) + } + + case ntTestgroup | beforeChild: + if curIndex == 0 { + w.emit(Setjump) + w.emit(Setmark) + w.pushInt(w.curPos()) + w.emit1(Lazybranch, 0) + } + + case ntTestgroup | afterChild: + if curIndex == 0 { + w.emit(Getmark) + w.emit(Forejump) + } else if curIndex == 1 { + Branchpos := w.popInt() + w.pushInt(w.curPos()) + w.emit1(Goto, 0) + w.patchJump(Branchpos, w.curPos()) + w.emit(Getmark) + w.emit(Forejump) + if len(node.children) <= 2 { + w.patchJump(w.popInt(), w.curPos()) + } + } else if curIndex == 2 { + w.patchJump(w.popInt(), w.curPos()) + } + + case ntLoop | beforeChild, ntLazyloop | beforeChild: + + if node.n < math.MaxInt32 || node.m > 1 { + if node.m == 0 { + w.emit1(Nullcount, 0) + } else { + w.emit1(Setcount, 1-node.m) + } + } else if node.m == 0 { + w.emit(Nullmark) + } else { + w.emit(Setmark) + } + + if node.m == 0 { + w.pushInt(w.curPos()) + w.emit1(Goto, 0) + } + w.pushInt(w.curPos()) + + case ntLoop | afterChild, ntLazyloop | afterChild: + + startJumpPos := w.curPos() + lazy := (nodetype - (ntLoop | afterChild)) + + if node.n < math.MaxInt32 || node.m > 1 { + if node.n == math.MaxInt32 { + w.emit2(InstOp(Branchcount+lazy), w.popInt(), math.MaxInt32) + } else { + w.emit2(InstOp(Branchcount+lazy), w.popInt(), node.n-node.m) + } + } else { + w.emit1(InstOp(Branchmark+lazy), w.popInt()) + } + + if node.m == 0 { + w.patchJump(w.popInt(), startJumpPos) + } + + case ntGroup | beforeChild, ntGroup | afterChild: + + case ntCapture | beforeChild: + w.emit(Setmark) + + case ntCapture | afterChild: + w.emit2(Capturemark, w.mapCapnum(node.m), w.mapCapnum(node.n)) + + case ntRequire | beforeChild: + // NOTE: the following line causes lookahead/lookbehind to be + // NON-BACKTRACKING. It can be commented out with (*) + w.emit(Setjump) + + w.emit(Setmark) + + case ntRequire | afterChild: + w.emit(Getmark) + + // NOTE: the following line causes lookahead/lookbehind to be + // NON-BACKTRACKING. It can be commented out with (*) + w.emit(Forejump) + + case ntPrevent | beforeChild: + w.emit(Setjump) + w.pushInt(w.curPos()) + w.emit1(Lazybranch, 0) + + case ntPrevent | afterChild: + w.emit(Backjump) + w.patchJump(w.popInt(), w.curPos()) + w.emit(Forejump) + + case ntGreedy | beforeChild: + w.emit(Setjump) + + case ntGreedy | afterChild: + w.emit(Forejump) + + case ntOne, ntNotone: + w.emit1(InstOp(node.t|ntBits), int(node.ch)) + + case ntNotoneloop, ntNotonelazy, ntOneloop, ntOnelazy: + if node.m > 0 { + if node.t == ntOneloop || node.t == ntOnelazy { + w.emit2(Onerep|bits, int(node.ch), node.m) + } else { + w.emit2(Notonerep|bits, int(node.ch), node.m) + } + } + if node.n > node.m { + if node.n == math.MaxInt32 { + w.emit2(InstOp(node.t|ntBits), int(node.ch), math.MaxInt32) + } else { + w.emit2(InstOp(node.t|ntBits), int(node.ch), node.n-node.m) + } + } + + case ntSetloop, ntSetlazy: + if node.m > 0 { + w.emit2(Setrep|bits, w.setCode(node.set), node.m) + } + if node.n > node.m { + if node.n == math.MaxInt32 { + w.emit2(InstOp(node.t|ntBits), w.setCode(node.set), math.MaxInt32) + } else { + w.emit2(InstOp(node.t|ntBits), w.setCode(node.set), node.n-node.m) + } + } + + case ntMulti: + w.emit1(InstOp(node.t|ntBits), w.stringCode(node.str)) + + case ntSet: + w.emit1(InstOp(node.t|ntBits), w.setCode(node.set)) + + case ntRef: + w.emit1(InstOp(node.t|ntBits), w.mapCapnum(node.m)) + + case ntNothing, ntBol, ntEol, ntBoundary, ntNonboundary, ntECMABoundary, ntNonECMABoundary, ntBeginning, ntStart, ntEndZ, ntEnd: + w.emit(InstOp(node.t)) + + default: + return fmt.Errorf("unexpected opcode in regular expression generation: %v", nodetype) + } + + return nil +} + +// To avoid recursion, we use a simple integer stack. +// This is the push. +func (w *writer) pushInt(i int) { + w.intStack = append(w.intStack, i) +} + +// Returns true if the stack is empty. +func (w *writer) emptyStack() bool { + return len(w.intStack) == 0 +} + +// This is the pop. +func (w *writer) popInt() int { + //get our item + idx := len(w.intStack) - 1 + i := w.intStack[idx] + //trim our slice + w.intStack = w.intStack[:idx] + return i +} + +// Returns the current position in the emitted code. +func (w *writer) curPos() int { + return w.curpos +} + +// Fixes up a jump instruction at the specified offset +// so that it jumps to the specified jumpDest. +func (w *writer) patchJump(offset, jumpDest int) { + w.emitted[offset+1] = jumpDest +} + +// Returns an index in the set table for a charset +// uses a map to eliminate duplicates. +func (w *writer) setCode(set *CharSet) int { + if w.counting { + return 0 + } + + buf := &bytes.Buffer{} + + set.mapHashFill(buf) + hash := buf.String() + i, ok := w.sethash[hash] + if !ok { + i = len(w.sethash) + w.sethash[hash] = i + w.settable = append(w.settable, set) + } + return i +} + +// Returns an index in the string table for a string. +// uses a map to eliminate duplicates. +func (w *writer) stringCode(str []rune) int { + if w.counting { + return 0 + } + + hash := string(str) + i, ok := w.stringhash[hash] + if !ok { + i = len(w.stringhash) + w.stringhash[hash] = i + w.stringtable = append(w.stringtable, str) + } + + return i +} + +// When generating code on a regex that uses a sparse set +// of capture slots, we hash them to a dense set of indices +// for an array of capture slots. Instead of doing the hash +// at match time, it's done at compile time, here. +func (w *writer) mapCapnum(capnum int) int { + if capnum == -1 { + return -1 + } + + if w.caps != nil { + return w.caps[capnum] + } + + return capnum +} + +// Emits a zero-argument operation. Note that the emit +// functions all run in two modes: they can emit code, or +// they can just count the size of the code. +func (w *writer) emit(op InstOp) { + if w.counting { + w.count++ + if opcodeBacktracks(op) { + w.trackcount++ + } + return + } + w.emitted[w.curpos] = int(op) + w.curpos++ +} + +// Emits a one-argument operation. +func (w *writer) emit1(op InstOp, opd1 int) { + if w.counting { + w.count += 2 + if opcodeBacktracks(op) { + w.trackcount++ + } + return + } + w.emitted[w.curpos] = int(op) + w.curpos++ + w.emitted[w.curpos] = opd1 + w.curpos++ +} + +// Emits a two-argument operation. +func (w *writer) emit2(op InstOp, opd1, opd2 int) { + if w.counting { + w.count += 3 + if opcodeBacktracks(op) { + w.trackcount++ + } + return + } + w.emitted[w.curpos] = int(op) + w.curpos++ + w.emitted[w.curpos] = opd1 + w.curpos++ + w.emitted[w.curpos] = opd2 + w.curpos++ +} diff --git a/vendor/github.com/dlclark/regexp2/testoutput1 b/vendor/github.com/dlclark/regexp2/testoutput1 new file mode 100644 index 00000000000..fbf63fdf2fe --- /dev/null +++ b/vendor/github.com/dlclark/regexp2/testoutput1 @@ -0,0 +1,7061 @@ +# This set of tests is for features that are compatible with all versions of +# Perl >= 5.10, in non-UTF mode. It should run clean for the 8-bit, 16-bit, and +# 32-bit PCRE libraries, and also using the perltest.pl script. + +#forbid_utf +#newline_default lf any anycrlf +#perltest + +/the quick brown fox/ + the quick brown fox + 0: the quick brown fox + What do you know about the quick brown fox? + 0: the quick brown fox +\= Expect no match + The quick brown FOX +No match + What do you know about THE QUICK BROWN FOX? +No match + +/The quick brown fox/i + the quick brown fox + 0: the quick brown fox + The quick brown FOX + 0: The quick brown FOX + What do you know about the quick brown fox? + 0: the quick brown fox + What do you know about THE QUICK BROWN FOX? + 0: THE QUICK BROWN FOX + +/abcd\t\n\r\f\a\e\071\x3b\$\\\?caxyz/ + abcd\t\n\r\f\a\e9;\$\\?caxyz + 0: abcd\x09\x0a\x0d\x0c\x07\x1b9;$\?caxyz + +/a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/ + abxyzpqrrrabbxyyyypqAzz + 0: abxyzpqrrrabbxyyyypqAzz + abxyzpqrrrabbxyyyypqAzz + 0: abxyzpqrrrabbxyyyypqAzz + aabxyzpqrrrabbxyyyypqAzz + 0: aabxyzpqrrrabbxyyyypqAzz + aaabxyzpqrrrabbxyyyypqAzz + 0: aaabxyzpqrrrabbxyyyypqAzz + aaaabxyzpqrrrabbxyyyypqAzz + 0: aaaabxyzpqrrrabbxyyyypqAzz + abcxyzpqrrrabbxyyyypqAzz + 0: abcxyzpqrrrabbxyyyypqAzz + aabcxyzpqrrrabbxyyyypqAzz + 0: aabcxyzpqrrrabbxyyyypqAzz + aaabcxyzpqrrrabbxyyyypAzz + 0: aaabcxyzpqrrrabbxyyyypAzz + aaabcxyzpqrrrabbxyyyypqAzz + 0: aaabcxyzpqrrrabbxyyyypqAzz + aaabcxyzpqrrrabbxyyyypqqAzz + 0: aaabcxyzpqrrrabbxyyyypqqAzz + aaabcxyzpqrrrabbxyyyypqqqAzz + 0: aaabcxyzpqrrrabbxyyyypqqqAzz + aaabcxyzpqrrrabbxyyyypqqqqAzz + 0: aaabcxyzpqrrrabbxyyyypqqqqAzz + aaabcxyzpqrrrabbxyyyypqqqqqAzz + 0: aaabcxyzpqrrrabbxyyyypqqqqqAzz + aaabcxyzpqrrrabbxyyyypqqqqqqAzz + 0: aaabcxyzpqrrrabbxyyyypqqqqqqAzz + aaaabcxyzpqrrrabbxyyyypqAzz + 0: aaaabcxyzpqrrrabbxyyyypqAzz + abxyzzpqrrrabbxyyyypqAzz + 0: abxyzzpqrrrabbxyyyypqAzz + aabxyzzzpqrrrabbxyyyypqAzz + 0: aabxyzzzpqrrrabbxyyyypqAzz + aaabxyzzzzpqrrrabbxyyyypqAzz + 0: aaabxyzzzzpqrrrabbxyyyypqAzz + aaaabxyzzzzpqrrrabbxyyyypqAzz + 0: aaaabxyzzzzpqrrrabbxyyyypqAzz + abcxyzzpqrrrabbxyyyypqAzz + 0: abcxyzzpqrrrabbxyyyypqAzz + aabcxyzzzpqrrrabbxyyyypqAzz + 0: aabcxyzzzpqrrrabbxyyyypqAzz + aaabcxyzzzzpqrrrabbxyyyypqAzz + 0: aaabcxyzzzzpqrrrabbxyyyypqAzz + aaaabcxyzzzzpqrrrabbxyyyypqAzz + 0: aaaabcxyzzzzpqrrrabbxyyyypqAzz + aaaabcxyzzzzpqrrrabbbxyyyypqAzz + 0: aaaabcxyzzzzpqrrrabbbxyyyypqAzz + aaaabcxyzzzzpqrrrabbbxyyyyypqAzz + 0: aaaabcxyzzzzpqrrrabbbxyyyyypqAzz + aaabcxyzpqrrrabbxyyyypABzz + 0: aaabcxyzpqrrrabbxyyyypABzz + aaabcxyzpqrrrabbxyyyypABBzz + 0: aaabcxyzpqrrrabbxyyyypABBzz + >>>aaabxyzpqrrrabbxyyyypqAzz + 0: aaabxyzpqrrrabbxyyyypqAzz + >aaaabxyzpqrrrabbxyyyypqAzz + 0: aaaabxyzpqrrrabbxyyyypqAzz + >>>>abcxyzpqrrrabbxyyyypqAzz + 0: abcxyzpqrrrabbxyyyypqAzz +\= Expect no match + abxyzpqrrabbxyyyypqAzz +No match + abxyzpqrrrrabbxyyyypqAzz +No match + abxyzpqrrrabxyyyypqAzz +No match + aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz +No match + aaaabcxyzzzzpqrrrabbbxyyypqAzz +No match + aaabcxyzpqrrrabbxyyyypqqqqqqqAzz +No match + +/^(abc){1,2}zz/ + abczz + 0: abczz + 1: abc + abcabczz + 0: abcabczz + 1: abc +\= Expect no match + zz +No match + abcabcabczz +No match + >>abczz +No match + +/^(b+?|a){1,2}?c/ + bc + 0: bc + 1: b + bbc + 0: bbc + 1: b + bbbc + 0: bbbc + 1: bb + bac + 0: bac + 1: a + bbac + 0: bbac + 1: a + aac + 0: aac + 1: a + abbbbbbbbbbbc + 0: abbbbbbbbbbbc + 1: bbbbbbbbbbb + bbbbbbbbbbbac + 0: bbbbbbbbbbbac + 1: a +\= Expect no match + aaac +No match + abbbbbbbbbbbac +No match + +/^(b+|a){1,2}c/ + bc + 0: bc + 1: b + bbc + 0: bbc + 1: bb + bbbc + 0: bbbc + 1: bbb + bac + 0: bac + 1: a + bbac + 0: bbac + 1: a + aac + 0: aac + 1: a + abbbbbbbbbbbc + 0: abbbbbbbbbbbc + 1: bbbbbbbbbbb + bbbbbbbbbbbac + 0: bbbbbbbbbbbac + 1: a +\= Expect no match + aaac +No match + abbbbbbbbbbbac +No match + +/^(b+|a){1,2}?bc/ + bbc + 0: bbc + 1: b + +/^(b*|ba){1,2}?bc/ + babc + 0: babc + 1: ba + bbabc + 0: bbabc + 1: ba + bababc + 0: bababc + 1: ba +\= Expect no match + bababbc +No match + babababc +No match + +/^(ba|b*){1,2}?bc/ + babc + 0: babc + 1: ba + bbabc + 0: bbabc + 1: ba + bababc + 0: bababc + 1: ba +\= Expect no match + bababbc +No match + babababc +No match + +#/^\ca\cA\c[;\c:/ +# \x01\x01\e;z +# 0: \x01\x01\x1b;z + +/^[ab\]cde]/ + athing + 0: a + bthing + 0: b + ]thing + 0: ] + cthing + 0: c + dthing + 0: d + ething + 0: e +\= Expect no match + fthing +No match + [thing +No match + \\thing +No match + +/^[]cde]/ + ]thing + 0: ] + cthing + 0: c + dthing + 0: d + ething + 0: e +\= Expect no match + athing +No match + fthing +No match + +/^[^ab\]cde]/ + fthing + 0: f + [thing + 0: [ + \\thing + 0: \ +\= Expect no match + athing +No match + bthing +No match + ]thing +No match + cthing +No match + dthing +No match + ething +No match + +/^[^]cde]/ + athing + 0: a + fthing + 0: f +\= Expect no match + ]thing +No match + cthing +No match + dthing +No match + ething +No match + +# DLC - I don't get this one +#/^\/ +#  +# 0: \x81 + +#updated to handle 16-bits utf8 +/^ÿ/ + ÿ + 0: \xc3\xbf + +/^[0-9]+$/ + 0 + 0: 0 + 1 + 0: 1 + 2 + 0: 2 + 3 + 0: 3 + 4 + 0: 4 + 5 + 0: 5 + 6 + 0: 6 + 7 + 0: 7 + 8 + 0: 8 + 9 + 0: 9 + 10 + 0: 10 + 100 + 0: 100 +\= Expect no match + abc +No match + +/^.*nter/ + enter + 0: enter + inter + 0: inter + uponter + 0: uponter + +/^xxx[0-9]+$/ + xxx0 + 0: xxx0 + xxx1234 + 0: xxx1234 +\= Expect no match + xxx +No match + +/^.+[0-9][0-9][0-9]$/ + x123 + 0: x123 + x1234 + 0: x1234 + xx123 + 0: xx123 + 123456 + 0: 123456 +\= Expect no match + 123 +No match + +/^.+?[0-9][0-9][0-9]$/ + x123 + 0: x123 + x1234 + 0: x1234 + xx123 + 0: xx123 + 123456 + 0: 123456 +\= Expect no match + 123 +No match + +/^([^!]+)!(.+)=apquxz\.ixr\.zzz\.ac\.uk$/ + abc!pqr=apquxz.ixr.zzz.ac.uk + 0: abc!pqr=apquxz.ixr.zzz.ac.uk + 1: abc + 2: pqr +\= Expect no match + !pqr=apquxz.ixr.zzz.ac.uk +No match + abc!=apquxz.ixr.zzz.ac.uk +No match + abc!pqr=apquxz:ixr.zzz.ac.uk +No match + abc!pqr=apquxz.ixr.zzz.ac.ukk +No match + +/:/ + Well, we need a colon: somewhere + 0: : +\= Expect no match + Fail without a colon +No match + +/([\da-f:]+)$/i + 0abc + 0: 0abc + 1: 0abc + abc + 0: abc + 1: abc + fed + 0: fed + 1: fed + E + 0: E + 1: E + :: + 0: :: + 1: :: + 5f03:12C0::932e + 0: 5f03:12C0::932e + 1: 5f03:12C0::932e + fed def + 0: def + 1: def + Any old stuff + 0: ff + 1: ff +\= Expect no match + 0zzz +No match + gzzz +No match + fed\x20 +No match + Any old rubbish +No match + +/^.*\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/ + .1.2.3 + 0: .1.2.3 + 1: 1 + 2: 2 + 3: 3 + A.12.123.0 + 0: A.12.123.0 + 1: 12 + 2: 123 + 3: 0 +\= Expect no match + .1.2.3333 +No match + 1.2.3 +No match + 1234.2.3 +No match + +/^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/ + 1 IN SOA non-sp1 non-sp2( + 0: 1 IN SOA non-sp1 non-sp2( + 1: 1 + 2: non-sp1 + 3: non-sp2 + 1 IN SOA non-sp1 non-sp2 ( + 0: 1 IN SOA non-sp1 non-sp2 ( + 1: 1 + 2: non-sp1 + 3: non-sp2 +\= Expect no match + 1IN SOA non-sp1 non-sp2( +No match + +/^[a-zA-Z\d][a-zA-Z\d\-]*(\.[a-zA-Z\d][a-zA-z\d\-]*)*\.$/ + a. + 0: a. + Z. + 0: Z. + 2. + 0: 2. + ab-c.pq-r. + 0: ab-c.pq-r. + 1: .pq-r + sxk.zzz.ac.uk. + 0: sxk.zzz.ac.uk. + 1: .uk + x-.y-. + 0: x-.y-. + 1: .y- +\= Expect no match + -abc.peq. +No match + +/^\*\.[a-z]([a-z\-\d]*[a-z\d]+)?(\.[a-z]([a-z\-\d]*[a-z\d]+)?)*$/ + *.a + 0: *.a + *.b0-a + 0: *.b0-a + 1: 0-a + *.c3-b.c + 0: *.c3-b.c + 1: 3-b + 2: .c + *.c-a.b-c + 0: *.c-a.b-c + 1: -a + 2: .b-c + 3: -c +\= Expect no match + *.0 +No match + *.a- +No match + *.a-b.c- +No match + *.c-a.0-c +No match + +/^(?=ab(de))(abd)(e)/ + abde + 0: abde + 1: de + 2: abd + 3: e + +/^(?!(ab)de|x)(abd)(f)/ + abdf + 0: abdf + 1: + 2: abd + 3: f + +/^(?=(ab(cd)))(ab)/ + abcd + 0: ab + 1: abcd + 2: cd + 3: ab + +/^[\da-f](\.[\da-f])*$/i + a.b.c.d + 0: a.b.c.d + 1: .d + A.B.C.D + 0: A.B.C.D + 1: .D + a.b.c.1.2.3.C + 0: a.b.c.1.2.3.C + 1: .C + +/^\".*\"\s*(;.*)?$/ + \"1234\" + 0: "1234" + \"abcd\" ; + 0: "abcd" ; + 1: ; + \"\" ; rhubarb + 0: "" ; rhubarb + 1: ; rhubarb +\= Expect no match + \"1234\" : things +No match + +/^$/ + \ + 0: +\= Expect no match + A non-empty line +No match + +/ ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/x + ab c + 0: ab c +\= Expect no match + abc +No match + ab cde +No match + +/(?x) ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/ + ab c + 0: ab c +\= Expect no match + abc +No match + ab cde +No match + +/^ a\ b[c ]d $/x + a bcd + 0: a bcd + a b d + 0: a b d +\= Expect no match + abcd +No match + ab d +No match + +/^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/ + abcdefhijklm + 0: abcdefhijklm + 1: abc + 2: bc + 3: c + 4: def + 5: ef + 6: f + 7: hij + 8: ij + 9: j +10: klm +11: lm +12: m + +/^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$/ + abcdefhijklm + 0: abcdefhijklm + 1: bc + 2: c + 3: ef + 4: f + 5: ij + 6: j + 7: lm + 8: m + +#/^[\w][\W][\s][\S][\d][\D][\b][\n][\c]][\022]/ +# a+ Z0+\x08\n\x1d\x12 +# 0: a+ Z0+\x08\x0a\x1d\x12 + +/^[.^$|()*+?{,}]+/ + .^\$(*+)|{?,?} + 0: .^$(*+)|{?,?} + +/^a*\w/ + z + 0: z + az + 0: az + aaaz + 0: aaaz + a + 0: a + aa + 0: aa + aaaa + 0: aaaa + a+ + 0: a + aa+ + 0: aa + +/^a*?\w/ + z + 0: z + az + 0: a + aaaz + 0: a + a + 0: a + aa + 0: a + aaaa + 0: a + a+ + 0: a + aa+ + 0: a + +/^a+\w/ + az + 0: az + aaaz + 0: aaaz + aa + 0: aa + aaaa + 0: aaaa + aa+ + 0: aa + +/^a+?\w/ + az + 0: az + aaaz + 0: aa + aa + 0: aa + aaaa + 0: aa + aa+ + 0: aa + +/^\d{8}\w{2,}/ + 1234567890 + 0: 1234567890 + 12345678ab + 0: 12345678ab + 12345678__ + 0: 12345678__ +\= Expect no match + 1234567 +No match + +/^[aeiou\d]{4,5}$/ + uoie + 0: uoie + 1234 + 0: 1234 + 12345 + 0: 12345 + aaaaa + 0: aaaaa +\= Expect no match + 123456 +No match + +/^[aeiou\d]{4,5}?/ + uoie + 0: uoie + 1234 + 0: 1234 + 12345 + 0: 1234 + aaaaa + 0: aaaa + 123456 + 0: 1234 + +/\A(abc|def)=(\1){2,3}\Z/ + abc=abcabc + 0: abc=abcabc + 1: abc + 2: abc + def=defdefdef + 0: def=defdefdef + 1: def + 2: def +\= Expect no match + abc=defdef +No match + +/^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\11*(\3\4)\1(?#)2$/ + abcdefghijkcda2 + 0: abcdefghijkcda2 + 1: a + 2: b + 3: c + 4: d + 5: e + 6: f + 7: g + 8: h + 9: i +10: j +11: k +12: cd + abcdefghijkkkkcda2 + 0: abcdefghijkkkkcda2 + 1: a + 2: b + 3: c + 4: d + 5: e + 6: f + 7: g + 8: h + 9: i +10: j +11: k +12: cd + +/(cat(a(ract|tonic)|erpillar)) \1()2(3)/ + cataract cataract23 + 0: cataract cataract23 + 1: cataract + 2: aract + 3: ract + 4: + 5: 3 + catatonic catatonic23 + 0: catatonic catatonic23 + 1: catatonic + 2: atonic + 3: tonic + 4: + 5: 3 + caterpillar caterpillar23 + 0: caterpillar caterpillar23 + 1: caterpillar + 2: erpillar + 3: + 4: + 5: 3 + + +/^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]/ + From abcd Mon Sep 01 12:33:02 1997 + 0: From abcd Mon Sep 01 12:33 + 1: abcd + +/^From\s+\S+\s+([a-zA-Z]{3}\s+){2}\d{1,2}\s+\d\d:\d\d/ + From abcd Mon Sep 01 12:33:02 1997 + 0: From abcd Mon Sep 01 12:33 + 1: Sep + From abcd Mon Sep 1 12:33:02 1997 + 0: From abcd Mon Sep 1 12:33 + 1: Sep +\= Expect no match + From abcd Sep 01 12:33:02 1997 +No match + +/^12.34/s + 12\n34 + 0: 12\x0a34 + 12\r34 + 0: 12\x0d34 + +/\w+(?=\t)/ + the quick brown\t fox + 0: brown + +/foo(?!bar)(.*)/ + foobar is foolish see? + 0: foolish see? + 1: lish see? + +/(?:(?!foo)...|^.{0,2})bar(.*)/ + foobar crowbar etc + 0: rowbar etc + 1: etc + barrel + 0: barrel + 1: rel + 2barrel + 0: 2barrel + 1: rel + A barrel + 0: A barrel + 1: rel + +/^(\D*)(?=\d)(?!123)/ + abc456 + 0: abc + 1: abc +\= Expect no match + abc123 +No match + +/^1234(?# test newlines + inside)/ + 1234 + 0: 1234 + +/^1234 #comment in extended re + /x + 1234 + 0: 1234 + +/#rhubarb + abcd/x + abcd + 0: abcd + +/^abcd#rhubarb/x + abcd + 0: abcd + +/^(a)\1{2,3}(.)/ + aaab + 0: aaab + 1: a + 2: b + aaaab + 0: aaaab + 1: a + 2: b + aaaaab + 0: aaaaa + 1: a + 2: a + aaaaaab + 0: aaaaa + 1: a + 2: a + +/(?!^)abc/ + the abc + 0: abc +\= Expect no match + abc +No match + +/(?=^)abc/ + abc + 0: abc +\= Expect no match + the abc +No match + +/^[ab]{1,3}(ab*|b)/ + aabbbbb + 0: aabb + 1: b + +/^[ab]{1,3}?(ab*|b)/ + aabbbbb + 0: aabbbbb + 1: abbbbb + +/^[ab]{1,3}?(ab*?|b)/ + aabbbbb + 0: aa + 1: a + +/^[ab]{1,3}(ab*?|b)/ + aabbbbb + 0: aabb + 1: b + +/ (?: [\040\t] | \( +(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* +\) )* # optional leading comment +(?: (?: +[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... +(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom +| +" (?: # opening quote... +[^\\\x80-\xff\n\015"] # Anything except backslash and quote +| # or +\\ [^\x80-\xff] # Escaped something (something != CR) +)* " # closing quote +) # initial word +(?: (?: [\040\t] | \( +(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* +\) )* \. (?: [\040\t] | \( +(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* +\) )* (?: +[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... +(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom +| +" (?: # opening quote... +[^\\\x80-\xff\n\015"] # Anything except backslash and quote +| # or +\\ [^\x80-\xff] # Escaped something (something != CR) +)* " # closing quote +) )* # further okay, if led by a period +(?: [\040\t] | \( +(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* +\) )* @ (?: [\040\t] | \( +(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* +\) )* (?: +[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... +(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom +| \[ # [ +(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff +\] # ] +) # initial subdomain +(?: # +(?: [\040\t] | \( +(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* +\) )* \. # if led by a period... +(?: [\040\t] | \( +(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* +\) )* (?: +[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... +(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom +| \[ # [ +(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff +\] # ] +) # ...further okay +)* +# address +| # or +(?: +[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... +(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom +| +" (?: # opening quote... +[^\\\x80-\xff\n\015"] # Anything except backslash and quote +| # or +\\ [^\x80-\xff] # Escaped something (something != CR) +)* " # closing quote +) # one word, optionally followed by.... +(?: +[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] | # atom and space parts, or... +\( +(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* +\) | # comments, or... + +" (?: # opening quote... +[^\\\x80-\xff\n\015"] # Anything except backslash and quote +| # or +\\ [^\x80-\xff] # Escaped something (something != CR) +)* " # closing quote +# quoted strings +)* +< (?: [\040\t] | \( +(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* +\) )* # leading < +(?: @ (?: [\040\t] | \( +(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* +\) )* (?: +[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... +(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom +| \[ # [ +(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff +\] # ] +) # initial subdomain +(?: # +(?: [\040\t] | \( +(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* +\) )* \. # if led by a period... +(?: [\040\t] | \( +(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* +\) )* (?: +[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... +(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom +| \[ # [ +(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff +\] # ] +) # ...further okay +)* + +(?: (?: [\040\t] | \( +(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* +\) )* , (?: [\040\t] | \( +(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* +\) )* @ (?: [\040\t] | \( +(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* +\) )* (?: +[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... +(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom +| \[ # [ +(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff +\] # ] +) # initial subdomain +(?: # +(?: [\040\t] | \( +(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* +\) )* \. # if led by a period... +(?: [\040\t] | \( +(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* +\) )* (?: +[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... +(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom +| \[ # [ +(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff +\] # ] +) # ...further okay +)* +)* # further okay, if led by comma +: # closing colon +(?: [\040\t] | \( +(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* +\) )* )? # optional route +(?: +[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... +(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom +| +" (?: # opening quote... +[^\\\x80-\xff\n\015"] # Anything except backslash and quote +| # or +\\ [^\x80-\xff] # Escaped something (something != CR) +)* " # closing quote +) # initial word +(?: (?: [\040\t] | \( +(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* +\) )* \. (?: [\040\t] | \( +(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* +\) )* (?: +[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... +(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom +| +" (?: # opening quote... +[^\\\x80-\xff\n\015"] # Anything except backslash and quote +| # or +\\ [^\x80-\xff] # Escaped something (something != CR) +)* " # closing quote +) )* # further okay, if led by a period +(?: [\040\t] | \( +(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* +\) )* @ (?: [\040\t] | \( +(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* +\) )* (?: +[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... +(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom +| \[ # [ +(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff +\] # ] +) # initial subdomain +(?: # +(?: [\040\t] | \( +(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* +\) )* \. # if led by a period... +(?: [\040\t] | \( +(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* +\) )* (?: +[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... +(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom +| \[ # [ +(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff +\] # ] +) # ...further okay +)* +# address spec +(?: [\040\t] | \( +(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* +\) )* > # trailing > +# name and address +) (?: [\040\t] | \( +(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* +\) )* # optional trailing comment +/x + Alan Other + 0: Alan Other + + 0: user@dom.ain + user\@dom.ain + 0: user@dom.ain + \"A. Other\" (a comment) + 0: "A. Other" (a comment) + A. Other (a comment) + 0: Other (a comment) + \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay + 0: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re.lay + A missing angle @,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... +(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom +# Atom +| # or +" # " +[^\\\x80-\xff\n\015"] * # normal +(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )* +" # " +# Quoted string +) +[\040\t]* # Nab whitespace. +(?: +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: # ( +(?: \\ [^\x80-\xff] | +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* +\) # ) +) # special +[^\\\x80-\xff\n\015()] * # normal* +)* # )* +\) # ) +[\040\t]* )* # If comment found, allow more spaces. +(?: +\. +[\040\t]* # Nab whitespace. +(?: +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: # ( +(?: \\ [^\x80-\xff] | +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* +\) # ) +) # special +[^\\\x80-\xff\n\015()] * # normal* +)* # )* +\) # ) +[\040\t]* )* # If comment found, allow more spaces. +(?: +[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... +(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom +# Atom +| # or +" # " +[^\\\x80-\xff\n\015"] * # normal +(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )* +" # " +# Quoted string +) +[\040\t]* # Nab whitespace. +(?: +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: # ( +(?: \\ [^\x80-\xff] | +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* +\) # ) +) # special +[^\\\x80-\xff\n\015()] * # normal* +)* # )* +\) # ) +[\040\t]* )* # If comment found, allow more spaces. +# additional words +)* +@ +[\040\t]* # Nab whitespace. +(?: +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: # ( +(?: \\ [^\x80-\xff] | +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* +\) # ) +) # special +[^\\\x80-\xff\n\015()] * # normal* +)* # )* +\) # ) +[\040\t]* )* # If comment found, allow more spaces. +(?: +[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... +(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom +| +\[ # [ +(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff +\] # ] +) +[\040\t]* # Nab whitespace. +(?: +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: # ( +(?: \\ [^\x80-\xff] | +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* +\) # ) +) # special +[^\\\x80-\xff\n\015()] * # normal* +)* # )* +\) # ) +[\040\t]* )* # If comment found, allow more spaces. +# optional trailing comments +(?: +\. +[\040\t]* # Nab whitespace. +(?: +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: # ( +(?: \\ [^\x80-\xff] | +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* +\) # ) +) # special +[^\\\x80-\xff\n\015()] * # normal* +)* # )* +\) # ) +[\040\t]* )* # If comment found, allow more spaces. +(?: +[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... +(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom +| +\[ # [ +(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff +\] # ] +) +[\040\t]* # Nab whitespace. +(?: +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: # ( +(?: \\ [^\x80-\xff] | +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* +\) # ) +) # special +[^\\\x80-\xff\n\015()] * # normal* +)* # )* +\) # ) +[\040\t]* )* # If comment found, allow more spaces. +# optional trailing comments +)* +# address +| # or +(?: +[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... +(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom +# Atom +| # or +" # " +[^\\\x80-\xff\n\015"] * # normal +(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )* +" # " +# Quoted string +) +# leading word +[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] * # "normal" atoms and or spaces +(?: +(?: +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: # ( +(?: \\ [^\x80-\xff] | +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* +\) # ) +) # special +[^\\\x80-\xff\n\015()] * # normal* +)* # )* +\) # ) +| +" # " +[^\\\x80-\xff\n\015"] * # normal +(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )* +" # " +) # "special" comment or quoted string +[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] * # more "normal" +)* +< +[\040\t]* # Nab whitespace. +(?: +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: # ( +(?: \\ [^\x80-\xff] | +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* +\) # ) +) # special +[^\\\x80-\xff\n\015()] * # normal* +)* # )* +\) # ) +[\040\t]* )* # If comment found, allow more spaces. +# < +(?: +@ +[\040\t]* # Nab whitespace. +(?: +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: # ( +(?: \\ [^\x80-\xff] | +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* +\) # ) +) # special +[^\\\x80-\xff\n\015()] * # normal* +)* # )* +\) # ) +[\040\t]* )* # If comment found, allow more spaces. +(?: +[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... +(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom +| +\[ # [ +(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff +\] # ] +) +[\040\t]* # Nab whitespace. +(?: +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: # ( +(?: \\ [^\x80-\xff] | +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* +\) # ) +) # special +[^\\\x80-\xff\n\015()] * # normal* +)* # )* +\) # ) +[\040\t]* )* # If comment found, allow more spaces. +# optional trailing comments +(?: +\. +[\040\t]* # Nab whitespace. +(?: +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: # ( +(?: \\ [^\x80-\xff] | +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* +\) # ) +) # special +[^\\\x80-\xff\n\015()] * # normal* +)* # )* +\) # ) +[\040\t]* )* # If comment found, allow more spaces. +(?: +[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... +(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom +| +\[ # [ +(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff +\] # ] +) +[\040\t]* # Nab whitespace. +(?: +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: # ( +(?: \\ [^\x80-\xff] | +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* +\) # ) +) # special +[^\\\x80-\xff\n\015()] * # normal* +)* # )* +\) # ) +[\040\t]* )* # If comment found, allow more spaces. +# optional trailing comments +)* +(?: , +[\040\t]* # Nab whitespace. +(?: +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: # ( +(?: \\ [^\x80-\xff] | +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* +\) # ) +) # special +[^\\\x80-\xff\n\015()] * # normal* +)* # )* +\) # ) +[\040\t]* )* # If comment found, allow more spaces. +@ +[\040\t]* # Nab whitespace. +(?: +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: # ( +(?: \\ [^\x80-\xff] | +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* +\) # ) +) # special +[^\\\x80-\xff\n\015()] * # normal* +)* # )* +\) # ) +[\040\t]* )* # If comment found, allow more spaces. +(?: +[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... +(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom +| +\[ # [ +(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff +\] # ] +) +[\040\t]* # Nab whitespace. +(?: +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: # ( +(?: \\ [^\x80-\xff] | +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* +\) # ) +) # special +[^\\\x80-\xff\n\015()] * # normal* +)* # )* +\) # ) +[\040\t]* )* # If comment found, allow more spaces. +# optional trailing comments +(?: +\. +[\040\t]* # Nab whitespace. +(?: +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: # ( +(?: \\ [^\x80-\xff] | +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* +\) # ) +) # special +[^\\\x80-\xff\n\015()] * # normal* +)* # )* +\) # ) +[\040\t]* )* # If comment found, allow more spaces. +(?: +[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... +(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom +| +\[ # [ +(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff +\] # ] +) +[\040\t]* # Nab whitespace. +(?: +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: # ( +(?: \\ [^\x80-\xff] | +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* +\) # ) +) # special +[^\\\x80-\xff\n\015()] * # normal* +)* # )* +\) # ) +[\040\t]* )* # If comment found, allow more spaces. +# optional trailing comments +)* +)* # additional domains +: +[\040\t]* # Nab whitespace. +(?: +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: # ( +(?: \\ [^\x80-\xff] | +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* +\) # ) +) # special +[^\\\x80-\xff\n\015()] * # normal* +)* # )* +\) # ) +[\040\t]* )* # If comment found, allow more spaces. +# optional trailing comments +)? # optional route +(?: +[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... +(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom +# Atom +| # or +" # " +[^\\\x80-\xff\n\015"] * # normal +(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )* +" # " +# Quoted string +) +[\040\t]* # Nab whitespace. +(?: +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: # ( +(?: \\ [^\x80-\xff] | +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* +\) # ) +) # special +[^\\\x80-\xff\n\015()] * # normal* +)* # )* +\) # ) +[\040\t]* )* # If comment found, allow more spaces. +(?: +\. +[\040\t]* # Nab whitespace. +(?: +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: # ( +(?: \\ [^\x80-\xff] | +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* +\) # ) +) # special +[^\\\x80-\xff\n\015()] * # normal* +)* # )* +\) # ) +[\040\t]* )* # If comment found, allow more spaces. +(?: +[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... +(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom +# Atom +| # or +" # " +[^\\\x80-\xff\n\015"] * # normal +(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )* +" # " +# Quoted string +) +[\040\t]* # Nab whitespace. +(?: +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: # ( +(?: \\ [^\x80-\xff] | +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* +\) # ) +) # special +[^\\\x80-\xff\n\015()] * # normal* +)* # )* +\) # ) +[\040\t]* )* # If comment found, allow more spaces. +# additional words +)* +@ +[\040\t]* # Nab whitespace. +(?: +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: # ( +(?: \\ [^\x80-\xff] | +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* +\) # ) +) # special +[^\\\x80-\xff\n\015()] * # normal* +)* # )* +\) # ) +[\040\t]* )* # If comment found, allow more spaces. +(?: +[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... +(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom +| +\[ # [ +(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff +\] # ] +) +[\040\t]* # Nab whitespace. +(?: +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: # ( +(?: \\ [^\x80-\xff] | +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* +\) # ) +) # special +[^\\\x80-\xff\n\015()] * # normal* +)* # )* +\) # ) +[\040\t]* )* # If comment found, allow more spaces. +# optional trailing comments +(?: +\. +[\040\t]* # Nab whitespace. +(?: +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: # ( +(?: \\ [^\x80-\xff] | +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* +\) # ) +) # special +[^\\\x80-\xff\n\015()] * # normal* +)* # )* +\) # ) +[\040\t]* )* # If comment found, allow more spaces. +(?: +[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... +(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom +| +\[ # [ +(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff +\] # ] +) +[\040\t]* # Nab whitespace. +(?: +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: # ( +(?: \\ [^\x80-\xff] | +\( # ( +[^\\\x80-\xff\n\015()] * # normal* +(?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* +\) # ) +) # special +[^\\\x80-\xff\n\015()] * # normal* +)* # )* +\) # ) +[\040\t]* )* # If comment found, allow more spaces. +# optional trailing comments +)* +# address spec +> # > +# name and address +) +/x + Alan Other + 0: Alan Other + + 0: user@dom.ain + user\@dom.ain + 0: user@dom.ain + \"A. Other\" (a comment) + 0: "A. Other" + A. Other (a comment) + 0: Other + \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay + 0: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re.lay + A missing angle ?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f + +/P[^*]TAIRE[^*]{1,6}?LL/ + xxxxxxxxxxxPSTAIREISLLxxxxxxxxx + 0: PSTAIREISLL + +/P[^*]TAIRE[^*]{1,}?LL/ + xxxxxxxxxxxPSTAIREISLLxxxxxxxxx + 0: PSTAIREISLL + +/(\.\d\d[1-9]?)\d+/ + 1.230003938 + 0: .230003938 + 1: .23 + 1.875000282 + 0: .875000282 + 1: .875 + 1.235 + 0: .235 + 1: .23 + +/(\.\d\d((?=0)|\d(?=\d)))/ + 1.230003938 + 0: .23 + 1: .23 + 2: + 1.875000282 + 0: .875 + 1: .875 + 2: 5 +\= Expect no match + 1.235 +No match + +/\b(foo)\s+(\w+)/i + Food is on the foo table + 0: foo table + 1: foo + 2: table + +/foo(.*)bar/ + The food is under the bar in the barn. + 0: food is under the bar in the bar + 1: d is under the bar in the + +/foo(.*?)bar/ + The food is under the bar in the barn. + 0: food is under the bar + 1: d is under the + +/(.*)(\d*)/ + I have 2 numbers: 53147 + 0: I have 2 numbers: 53147 + 1: I have 2 numbers: 53147 + 2: + +/(.*)(\d+)/ + I have 2 numbers: 53147 + 0: I have 2 numbers: 53147 + 1: I have 2 numbers: 5314 + 2: 7 + +/(.*?)(\d*)/ + I have 2 numbers: 53147 + 0: + 1: + 2: + +/(.*?)(\d+)/ + I have 2 numbers: 53147 + 0: I have 2 + 1: I have + 2: 2 + +/(.*)(\d+)$/ + I have 2 numbers: 53147 + 0: I have 2 numbers: 53147 + 1: I have 2 numbers: 5314 + 2: 7 + +/(.*?)(\d+)$/ + I have 2 numbers: 53147 + 0: I have 2 numbers: 53147 + 1: I have 2 numbers: + 2: 53147 + +/(.*)\b(\d+)$/ + I have 2 numbers: 53147 + 0: I have 2 numbers: 53147 + 1: I have 2 numbers: + 2: 53147 + +/(.*\D)(\d+)$/ + I have 2 numbers: 53147 + 0: I have 2 numbers: 53147 + 1: I have 2 numbers: + 2: 53147 + +/^\D*(?!123)/ + ABC123 + 0: AB + +/^(\D*)(?=\d)(?!123)/ + ABC445 + 0: ABC + 1: ABC +\= Expect no match + ABC123 +No match + +/^[W-]46]/ + W46]789 + 0: W46] + -46]789 + 0: -46] +\= Expect no match + Wall +No match + Zebra +No match + 42 +No match + [abcd] +No match + ]abcd[ +No match + +/^[W-\]46]/ + W46]789 + 0: W + Wall + 0: W + Zebra + 0: Z + Xylophone + 0: X + 42 + 0: 4 + [abcd] + 0: [ + ]abcd[ + 0: ] + \\backslash + 0: \ +\= Expect no match + -46]789 +No match + well +No match + +/\d\d\/\d\d\/\d\d\d\d/ + 01/01/2000 + 0: 01/01/2000 + +/word (?:[a-zA-Z0-9]+ ){0,10}otherword/ + word cat dog elephant mussel cow horse canary baboon snake shark otherword + 0: word cat dog elephant mussel cow horse canary baboon snake shark otherword +\= Expect no match + word cat dog elephant mussel cow horse canary baboon snake shark +No match + +/word (?:[a-zA-Z0-9]+ ){0,300}otherword/ +\= Expect no match + word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope +No match + +/^(a){0,0}/ + bcd + 0: + abc + 0: + aab + 0: + +/^(a){0,1}/ + bcd + 0: + abc + 0: a + 1: a + aab + 0: a + 1: a + +/^(a){0,2}/ + bcd + 0: + abc + 0: a + 1: a + aab + 0: aa + 1: a + +/^(a){0,3}/ + bcd + 0: + abc + 0: a + 1: a + aab + 0: aa + 1: a + aaa + 0: aaa + 1: a + +/^(a){0,}/ + bcd + 0: + abc + 0: a + 1: a + aab + 0: aa + 1: a + aaa + 0: aaa + 1: a + aaaaaaaa + 0: aaaaaaaa + 1: a + +/^(a){1,1}/ + abc + 0: a + 1: a + aab + 0: a + 1: a +\= Expect no match + bcd +No match + +/^(a){1,2}/ + abc + 0: a + 1: a + aab + 0: aa + 1: a +\= Expect no match + bcd +No match + +/^(a){1,3}/ + abc + 0: a + 1: a + aab + 0: aa + 1: a + aaa + 0: aaa + 1: a +\= Expect no match + bcd +No match + +/^(a){1,}/ + abc + 0: a + 1: a + aab + 0: aa + 1: a + aaa + 0: aaa + 1: a + aaaaaaaa + 0: aaaaaaaa + 1: a +\= Expect no match + bcd +No match + +/.*\.gif/ + borfle\nbib.gif\nno + 0: bib.gif + +/.{0,}\.gif/ + borfle\nbib.gif\nno + 0: bib.gif + +/.*\.gif/m + borfle\nbib.gif\nno + 0: bib.gif + +/.*\.gif/s + borfle\nbib.gif\nno + 0: borfle\x0abib.gif + +/.*\.gif/ms + borfle\nbib.gif\nno + 0: borfle\x0abib.gif + +/.*$/ + borfle\nbib.gif\nno + 0: no + +/.*$/m + borfle\nbib.gif\nno + 0: borfle + +/.*$/s + borfle\nbib.gif\nno + 0: borfle\x0abib.gif\x0ano + +/.*$/ms + borfle\nbib.gif\nno + 0: borfle\x0abib.gif\x0ano + +/.*$/ + borfle\nbib.gif\nno\n + 0: no + +/.*$/m + borfle\nbib.gif\nno\n + 0: borfle + +/.*$/s + borfle\nbib.gif\nno\n + 0: borfle\x0abib.gif\x0ano\x0a + +/.*$/ms + borfle\nbib.gif\nno\n + 0: borfle\x0abib.gif\x0ano\x0a + +/(.*X|^B)/ + abcde\n1234Xyz + 0: 1234X + 1: 1234X + BarFoo + 0: B + 1: B +\= Expect no match + abcde\nBar +No match + +/(.*X|^B)/m + abcde\n1234Xyz + 0: 1234X + 1: 1234X + BarFoo + 0: B + 1: B + abcde\nBar + 0: B + 1: B + +/(.*X|^B)/s + abcde\n1234Xyz + 0: abcde\x0a1234X + 1: abcde\x0a1234X + BarFoo + 0: B + 1: B +\= Expect no match + abcde\nBar +No match + +/(.*X|^B)/ms + abcde\n1234Xyz + 0: abcde\x0a1234X + 1: abcde\x0a1234X + BarFoo + 0: B + 1: B + abcde\nBar + 0: B + 1: B + +/(?s)(.*X|^B)/ + abcde\n1234Xyz + 0: abcde\x0a1234X + 1: abcde\x0a1234X + BarFoo + 0: B + 1: B +\= Expect no match + abcde\nBar +No match + +/(?s:.*X|^B)/ + abcde\n1234Xyz + 0: abcde\x0a1234X + BarFoo + 0: B +\= Expect no match + abcde\nBar +No match + +/^.*B/ +\= Expect no match + abc\nB +No match + +/(?s)^.*B/ + abc\nB + 0: abc\x0aB + +/(?m)^.*B/ + abc\nB + 0: B + +/(?ms)^.*B/ + abc\nB + 0: abc\x0aB + +/(?ms)^B/ + abc\nB + 0: B + +/(?s)B$/ + B\n + 0: B + +/^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/ + 123456654321 + 0: 123456654321 + +/^\d\d\d\d\d\d\d\d\d\d\d\d/ + 123456654321 + 0: 123456654321 + +/^[\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d]/ + 123456654321 + 0: 123456654321 + +/^[abc]{12}/ + abcabcabcabc + 0: abcabcabcabc + +/^[a-c]{12}/ + abcabcabcabc + 0: abcabcabcabc + +/^(a|b|c){12}/ + abcabcabcabc + 0: abcabcabcabc + 1: c + +/^[abcdefghijklmnopqrstuvwxy0123456789]/ + n + 0: n +\= Expect no match + z +No match + +/abcde{0,0}/ + abcd + 0: abcd +\= Expect no match + abce +No match + +/ab[cd]{0,0}e/ + abe + 0: abe +\= Expect no match + abcde +No match + +/ab(c){0,0}d/ + abd + 0: abd +\= Expect no match + abcd +No match + +/a(b*)/ + a + 0: a + 1: + ab + 0: ab + 1: b + abbbb + 0: abbbb + 1: bbbb +\= Expect no match + bbbbb +No match + +/ab\d{0}e/ + abe + 0: abe +\= Expect no match + ab1e +No match + +/"([^\\"]+|\\.)*"/ + the \"quick\" brown fox + 0: "quick" + 1: quick + \"the \\\"quick\\\" brown fox\" + 0: "the \"quick\" brown fox" + 1: brown fox + +/]{0,})>]{0,})>([\d]{0,}\.)(.*)((
([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/is + 43.
Word Processor
(N-1286)
Lega lstaff.comCA - Statewide + 0: 43.Word Processor
(N-1286)
Lega lstaff.comCA - Statewide + 1: BGCOLOR='#DBE9E9' + 2: align=left valign=top + 3: 43. + 4: Word Processor
(N-1286) + 5: + 6: + 7: + 8: align=left valign=top + 9: Lega lstaff.com +10: align=left valign=top +11: CA - Statewide + +/a[^a]b/ + acb + 0: acb + a\nb + 0: a\x0ab + +/a.b/ + acb + 0: acb +\= Expect no match + a\nb +No match + +/a[^a]b/s + acb + 0: acb + a\nb + 0: a\x0ab + +/a.b/s + acb + 0: acb + a\nb + 0: a\x0ab + +/^(b+?|a){1,2}?c/ + bac + 0: bac + 1: a + bbac + 0: bbac + 1: a + bbbac + 0: bbbac + 1: a + bbbbac + 0: bbbbac + 1: a + bbbbbac + 0: bbbbbac + 1: a + +/^(b+|a){1,2}?c/ + bac + 0: bac + 1: a + bbac + 0: bbac + 1: a + bbbac + 0: bbbac + 1: a + bbbbac + 0: bbbbac + 1: a + bbbbbac + 0: bbbbbac + 1: a + +/(?!\A)x/m + a\bx\n + 0: x + a\nx\n + 0: x +\= Expect no match + x\nb\n +No match + +/(A|B)*?CD/ + CD + 0: CD + +/(A|B)*CD/ + CD + 0: CD + +/(AB)*?\1/ + ABABAB + 0: ABAB + 1: AB + +/(AB)*\1/ + ABABAB + 0: ABABAB + 1: AB + +/(?.*/)foo" + /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo + 0: /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo +\= Expect no match + /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/ +No match + +/(?>(\.\d\d[1-9]?))\d+/ + 1.230003938 + 0: .230003938 + 1: .23 + 1.875000282 + 0: .875000282 + 1: .875 +\= Expect no match + 1.235 +No match + +/^((?>\w+)|(?>\s+))*$/ + now is the time for all good men to come to the aid of the party + 0: now is the time for all good men to come to the aid of the party + 1: party +\= Expect no match + this is not a line with only words and spaces! +No match + +/(\d+)(\w)/ + 12345a + 0: 12345a + 1: 12345 + 2: a + 12345+ + 0: 12345 + 1: 1234 + 2: 5 + +/((?>\d+))(\w)/ + 12345a + 0: 12345a + 1: 12345 + 2: a +\= Expect no match + 12345+ +No match + +/(?>a+)b/ + aaab + 0: aaab + +/((?>a+)b)/ + aaab + 0: aaab + 1: aaab + +/(?>(a+))b/ + aaab + 0: aaab + 1: aaa + +/(?>b)+/ + aaabbbccc + 0: bbb + +/(?>a+|b+|c+)*c/ + aaabbbbccccd + 0: aaabbbbc + +/((?>[^()]+)|\([^()]*\))+/ + ((abc(ade)ufh()()x + 0: abc(ade)ufh()()x + 1: x + +/\(((?>[^()]+)|\([^()]+\))+\)/ + (abc) + 0: (abc) + 1: abc + (abc(def)xyz) + 0: (abc(def)xyz) + 1: xyz +\= Expect no match + ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +No match + +/a(?-i)b/i + ab + 0: ab + Ab + 0: Ab +\= Expect no match + aB +No match + AB +No match + +/(a (?x)b c)d e/ + a bcd e + 0: a bcd e + 1: a bc +\= Expect no match + a b cd e +No match + abcd e +No match + a bcde +No match + +/(a b(?x)c d (?-x)e f)/ + a bcde f + 0: a bcde f + 1: a bcde f +\= Expect no match + abcdef +No match + +/(a(?i)b)c/ + abc + 0: abc + 1: ab + aBc + 0: aBc + 1: aB +\= Expect no match + abC +No match + aBC +No match + Abc +No match + ABc +No match + ABC +No match + AbC +No match + +/a(?i:b)c/ + abc + 0: abc + aBc + 0: aBc +\= Expect no match + ABC +No match + abC +No match + aBC +No match + +/a(?i:b)*c/ + aBc + 0: aBc + aBBc + 0: aBBc +\= Expect no match + aBC +No match + aBBC +No match + +/a(?=b(?i)c)\w\wd/ + abcd + 0: abcd + abCd + 0: abCd +\= Expect no match + aBCd +No match + abcD +No match + +/(?s-i:more.*than).*million/i + more than million + 0: more than million + more than MILLION + 0: more than MILLION + more \n than Million + 0: more \x0a than Million +\= Expect no match + MORE THAN MILLION +No match + more \n than \n million +No match + +/(?:(?s-i)more.*than).*million/i + more than million + 0: more than million + more than MILLION + 0: more than MILLION + more \n than Million + 0: more \x0a than Million +\= Expect no match + MORE THAN MILLION +No match + more \n than \n million +No match + +/(?>a(?i)b+)+c/ + abc + 0: abc + aBbc + 0: aBbc + aBBc + 0: aBBc +\= Expect no match + Abc +No match + abAb +No match + abbC +No match + +/(?=a(?i)b)\w\wc/ + abc + 0: abc + aBc + 0: aBc +\= Expect no match + Ab +No match + abC +No match + aBC +No match + +/(?<=a(?i)b)(\w\w)c/ + abxxc + 0: xxc + 1: xx + aBxxc + 0: xxc + 1: xx +\= Expect no match + Abxxc +No match + ABxxc +No match + abxxC +No match + +/(?:(a)|b)(?(1)A|B)/ + aA + 0: aA + 1: a + bB + 0: bB +\= Expect no match + aB +No match + bA +No match + +/^(a)?(?(1)a|b)+$/ + aa + 0: aa + 1: a + b + 0: b + bb + 0: bb +\= Expect no match + ab +No match + +# Perl gets this next one wrong if the pattern ends with $; in that case it +# fails to match "12". + +/^(?(?=abc)\w{3}:|\d\d)/ + abc: + 0: abc: + 12 + 0: 12 + 123 + 0: 12 +\= Expect no match + xyz +No match + +/^(?(?!abc)\d\d|\w{3}:)$/ + abc: + 0: abc: + 12 + 0: 12 +\= Expect no match + 123 +No match + xyz +No match + +/(?(?<=foo)bar|cat)/ + foobar + 0: bar + cat + 0: cat + fcat + 0: cat + focat + 0: cat +\= Expect no match + foocat +No match + +/(?(?a*)*/ + a + 0: a + aa + 0: aa + aaaa + 0: aaaa + +/(abc|)+/ + abc + 0: abc + 1: + abcabc + 0: abcabc + 1: + abcabcabc + 0: abcabcabc + 1: + xyz + 0: + 1: + +/([a]*)*/ + a + 0: a + 1: + aaaaa + 0: aaaaa + 1: + +/([ab]*)*/ + a + 0: a + 1: + b + 0: b + 1: + ababab + 0: ababab + 1: + aaaabcde + 0: aaaab + 1: + bbbb + 0: bbbb + 1: + +/([^a]*)*/ + b + 0: b + 1: + bbbb + 0: bbbb + 1: + aaa + 0: + 1: + +/([^ab]*)*/ + cccc + 0: cccc + 1: + abab + 0: + 1: + +/([a]*?)*/ + a + 0: + 1: + aaaa + 0: + 1: + +/([ab]*?)*/ + a + 0: + 1: + b + 0: + 1: + abab + 0: + 1: + baba + 0: + 1: + +/([^a]*?)*/ + b + 0: + 1: + bbbb + 0: + 1: + aaa + 0: + 1: + +/([^ab]*?)*/ + c + 0: + 1: + cccc + 0: + 1: + baba + 0: + 1: + +/(?>a*)*/ + a + 0: a + aaabcde + 0: aaa + +/((?>a*))*/ + aaaaa + 0: aaaaa + 1: + aabbaa + 0: aa + 1: + +/((?>a*?))*/ + aaaaa + 0: + 1: + aabbaa + 0: + 1: + +/(?(?=[^a-z]+[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ) /x + 12-sep-98 + 0: 12-sep-98 + 12-09-98 + 0: 12-09-98 +\= Expect no match + sep-12-98 +No match + +/(?<=(foo))bar\1/ + foobarfoo + 0: barfoo + 1: foo + foobarfootling + 0: barfoo + 1: foo +\= Expect no match + foobar +No match + barfoo +No match + +/(?i:saturday|sunday)/ + saturday + 0: saturday + sunday + 0: sunday + Saturday + 0: Saturday + Sunday + 0: Sunday + SATURDAY + 0: SATURDAY + SUNDAY + 0: SUNDAY + SunDay + 0: SunDay + +/(a(?i)bc|BB)x/ + abcx + 0: abcx + 1: abc + aBCx + 0: aBCx + 1: aBC + bbx + 0: bbx + 1: bb + BBx + 0: BBx + 1: BB +\= Expect no match + abcX +No match + aBCX +No match + bbX +No match + BBX +No match + +/^([ab](?i)[cd]|[ef])/ + ac + 0: ac + 1: ac + aC + 0: aC + 1: aC + bD + 0: bD + 1: bD + elephant + 0: e + 1: e + Europe + 0: E + 1: E + frog + 0: f + 1: f + France + 0: F + 1: F +\= Expect no match + Africa +No match + +/^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/ + ab + 0: ab + 1: ab + aBd + 0: aBd + 1: aBd + xy + 0: xy + 1: xy + xY + 0: xY + 1: xY + zebra + 0: z + 1: z + Zambesi + 0: Z + 1: Z +\= Expect no match + aCD +No match + XY +No match + +/(?<=foo\n)^bar/m + foo\nbar + 0: bar +\= Expect no match + bar +No match + baz\nbar +No match + +/(?<=(?]&/ + <&OUT + 0: <& + +/^(a\1?){4}$/ + aaaaaaaaaa + 0: aaaaaaaaaa + 1: aaaa +\= Expect no match + AB +No match + aaaaaaaaa +No match + aaaaaaaaaaa +No match + +/^(a(?(1)\1)){4}$/ + aaaaaaaaaa + 0: aaaaaaaaaa + 1: aaaa +\= Expect no match + aaaaaaaaa +No match + aaaaaaaaaaa +No match + +/(?:(f)(o)(o)|(b)(a)(r))*/ + foobar + 0: foobar + 1: f + 2: o + 3: o + 4: b + 5: a + 6: r + +/(?<=a)b/ + ab + 0: b +\= Expect no match + cb +No match + b +No match + +/(? + 2: abcd + xy:z:::abcd + 0: xy:z:::abcd + 1: xy:z::: + 2: abcd + +/^[^bcd]*(c+)/ + aexycd + 0: aexyc + 1: c + +/(a*)b+/ + caab + 0: aab + 1: aa + +/([\w:]+::)?(\w+)$/ + abcd + 0: abcd + 1: + 2: abcd + xy:z:::abcd + 0: xy:z:::abcd + 1: xy:z::: + 2: abcd +\= Expect no match + abcd: +No match + abcd: +No match + +/^[^bcd]*(c+)/ + aexycd + 0: aexyc + 1: c + +/(>a+)ab/ + +/(?>a+)b/ + aaab + 0: aaab + +/([[:]+)/ + a:[b]: + 0: :[ + 1: :[ + +/([[=]+)/ + a=[b]= + 0: =[ + 1: =[ + +/([[.]+)/ + a.[b]. + 0: .[ + 1: .[ + +/((?>a+)b)/ + aaab + 0: aaab + 1: aaab + +/(?>(a+))b/ + aaab + 0: aaab + 1: aaa + +/((?>[^()]+)|\([^()]*\))+/ + ((abc(ade)ufh()()x + 0: abc(ade)ufh()()x + 1: x + +/a\Z/ +\= Expect no match + aaab +No match + a\nb\n +No match + +/b\Z/ + a\nb\n + 0: b + +/b\z/ + +/b\Z/ + a\nb + 0: b + +/b\z/ + a\nb + 0: b + +/^(?>(?(1)\.|())[^\W_](?>[a-z0-9-]*[^\W_])?)+$/ + a + 0: a + 1: + abc + 0: abc + 1: + a-b + 0: a-b + 1: + 0-9 + 0: 0-9 + 1: + a.b + 0: a.b + 1: + 5.6.7 + 0: 5.6.7 + 1: + the.quick.brown.fox + 0: the.quick.brown.fox + 1: + a100.b200.300c + 0: a100.b200.300c + 1: + 12-ab.1245 + 0: 12-ab.1245 + 1: +\= Expect no match + \ +No match + .a +No match + -a +No match + a- +No match + a. +No match + a_b +No match + a.- +No match + a.. +No match + ab..bc +No match + the.quick.brown.fox- +No match + the.quick.brown.fox. +No match + the.quick.brown.fox_ +No match + the.quick.brown.fox+ +No match + +/(?>.*)(?<=(abcd|wxyz))/ + alphabetabcd + 0: alphabetabcd + 1: abcd + endingwxyz + 0: endingwxyz + 1: wxyz +\= Expect no match + a rather long string that doesn't end with one of them +No match + +/word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/ + word cat dog elephant mussel cow horse canary baboon snake shark otherword + 0: word cat dog elephant mussel cow horse canary baboon snake shark otherword +\= Expect no match + word cat dog elephant mussel cow horse canary baboon snake shark +No match + +/word (?>[a-zA-Z0-9]+ ){0,30}otherword/ +\= Expect no match + word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope +No match + +/(?<=\d{3}(?!999))foo/ + 999foo + 0: foo + 123999foo + 0: foo +\= Expect no match + 123abcfoo +No match + +/(?<=(?!...999)\d{3})foo/ + 999foo + 0: foo + 123999foo + 0: foo +\= Expect no match + 123abcfoo +No match + +/(?<=\d{3}(?!999)...)foo/ + 123abcfoo + 0: foo + 123456foo + 0: foo +\= Expect no match + 123999foo +No match + +/(?<=\d{3}...)(? + 2: + 3: abcd +
+ 2: + 3: abcd + \s*)=(?>\s*) # find + 2: + 3: abcd + Z)+|A)*/ + ZABCDEFG + 0: ZA + 1: A + +/((?>)+|A)*/ + ZABCDEFG + 0: + 1: + +/^[\d-a]/ + abcde + 0: a + -things + 0: - + 0digit + 0: 0 +\= Expect no match + bcdef +No match + +/[\s]+/ + > \x09\x0a\x0c\x0d\x0b< + 0: \x09\x0a\x0c\x0d\x0b + +/\s+/ + > \x09\x0a\x0c\x0d\x0b< + 0: \x09\x0a\x0c\x0d\x0b + +/a b/x + ab + 0: ab + +/(?!\A)x/m + a\nxb\n + 0: x + +/(?!^)x/m +\= Expect no match + a\nxb\n +No match + +#/abc\Qabc\Eabc/ +# abcabcabc +# 0: abcabcabc + +#/abc\Q(*+|\Eabc/ +# abc(*+|abc +# 0: abc(*+|abc + +#/ abc\Q abc\Eabc/x +# abc abcabc +# 0: abc abcabc +#\= Expect no match +# abcabcabc +#No match + +#/abc#comment +# \Q#not comment +# literal\E/x +# abc#not comment\n literal +# 0: abc#not comment\x0a literal + +#/abc#comment +# \Q#not comment +# literal/x +# abc#not comment\n literal +# 0: abc#not comment\x0a literal + +#/abc#comment +# \Q#not comment +# literal\E #more comment +# /x +# abc#not comment\n literal +# 0: abc#not comment\x0a literal + +#/abc#comment +# \Q#not comment +# literal\E #more comment/x +# abc#not comment\n literal +# 0: abc#not comment\x0a literal + +#/\Qabc\$xyz\E/ +# abc\\\$xyz +# 0: abc\$xyz + +#/\Qabc\E\$\Qxyz\E/ +# abc\$xyz +# 0: abc$xyz + +/\Gabc/ + abc + 0: abc +\= Expect no match + xyzabc +No match + +/a(?x: b c )d/ + XabcdY + 0: abcd +\= Expect no match + Xa b c d Y +No match + +/((?x)x y z | a b c)/ + XabcY + 0: abc + 1: abc + AxyzB + 0: xyz + 1: xyz + +/(?i)AB(?-i)C/ + XabCY + 0: abC +\= Expect no match + XabcY +No match + +/((?i)AB(?-i)C|D)E/ + abCE + 0: abCE + 1: abC + DE + 0: DE + 1: D +\= Expect no match + abcE +No match + abCe +No match + dE +No match + De +No match + +/(.*)\d+\1/ + abc123abc + 0: abc123abc + 1: abc + abc123bc + 0: bc123bc + 1: bc + +/(.*)\d+\1/s + abc123abc + 0: abc123abc + 1: abc + abc123bc + 0: bc123bc + 1: bc + +/((.*))\d+\1/ + abc123abc + 0: abc123abc + 1: abc + 2: abc + abc123bc + 0: bc123bc + 1: bc + 2: bc + +# This tests for an IPv6 address in the form where it can have up to +# eight components, one and only one of which is empty. This must be +# an internal component. + +/^(?!:) # colon disallowed at start + (?: # start of item + (?: [0-9a-f]{1,4} | # 1-4 hex digits or + (?(1)0 | () ) ) # if null previously matched, fail; else null + : # followed by colon + ){1,7} # end item; 1-7 of them required + [0-9a-f]{1,4} $ # final hex number at end of string + (?(1)|.) # check that there was an empty component + /ix + a123::a123 + 0: a123::a123 + 1: + a123:b342::abcd + 0: a123:b342::abcd + 1: + a123:b342::324e:abcd + 0: a123:b342::324e:abcd + 1: + a123:ddde:b342::324e:abcd + 0: a123:ddde:b342::324e:abcd + 1: + a123:ddde:b342::324e:dcba:abcd + 0: a123:ddde:b342::324e:dcba:abcd + 1: + a123:ddde:9999:b342::324e:dcba:abcd + 0: a123:ddde:9999:b342::324e:dcba:abcd + 1: +\= Expect no match + 1:2:3:4:5:6:7:8 +No match + a123:bce:ddde:9999:b342::324e:dcba:abcd +No match + a123::9999:b342::324e:dcba:abcd +No match + abcde:2:3:4:5:6:7:8 +No match + ::1 +No match + abcd:fee0:123:: +No match + :1 +No match + 1: +No match + +#/[z\Qa-d]\E]/ +# z +# 0: z +# a +# 0: a +# - +# 0: - +# d +# 0: d +# ] +# 0: ] +#\= Expect no match +# b +#No match + +#TODO: PCRE has an optimization to make this workable, .NET does not +#/(a+)*b/ +#\= Expect no match +# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +#No match + +# All these had to be updated because we understand unicode +# and this looks like it's expecting single byte matches + +# .NET generates \xe4...not sure what's up, might just be different code pages +/(?i)reg(?:ul(?:[aä]|ae)r|ex)/ + REGular + 0: REGular + regulaer + 0: regulaer + Regex + 0: Regex + regulär + 0: regul\xc3\xa4r + +#/Åæåä[à-ÿÀ-ß]+/ +# Åæåäà +# 0: \xc5\xe6\xe5\xe4\xe0 +# Åæåäÿ +# 0: \xc5\xe6\xe5\xe4\xff +# ÅæåäÀ +# 0: \xc5\xe6\xe5\xe4\xc0 +# Åæåäß +# 0: \xc5\xe6\xe5\xe4\xdf + +/(?<=Z)X./ + \x84XAZXB + 0: XB + +/ab cd (?x) de fg/ + ab cd defg + 0: ab cd defg + +/ab cd(?x) de fg/ + ab cddefg + 0: ab cddefg +\= Expect no match + abcddefg +No match + +/(? + 2: + D + 0: D + 1: + 2: + +# this is really long with debug -- removing for now +#/(a|)*\d/ +# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 +# 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 +# 1: +#\= Expect no match +# aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +#No match + +/(?>a|)*\d/ + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 + 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 +\= Expect no match + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +No match + +/(?:a|)*\d/ + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 + 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 +\= Expect no match + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +No match + +/^(?s)(?>.*)(? + 2: a + +/(?>(a))b|(a)c/ + ac + 0: ac + 1: + 2: a + +/(?=(a))ab|(a)c/ + ac + 0: ac + 1: + 2: a + +/((?>(a))b|(a)c)/ + ac + 0: ac + 1: ac + 2: + 3: a + +/(?=(?>(a))b|(a)c)(..)/ + ac + 0: ac + 1: + 2: a + 3: ac + +/(?>(?>(a))b|(a)c)/ + ac + 0: ac + 1: + 2: a + +/((?>(a+)b)+(aabab))/ + aaaabaaabaabab + 0: aaaabaaabaabab + 1: aaaabaaabaabab + 2: aaa + 3: aabab + +/(?>a+|ab)+?c/ +\= Expect no match + aabc +No match + +/(?>a+|ab)+c/ +\= Expect no match + aabc +No match + +/(?:a+|ab)+c/ + aabc + 0: aabc + +/^(?:a|ab)+c/ + aaaabc + 0: aaaabc + +/(?=abc){0}xyz/ + xyz + 0: xyz + +/(?=abc){1}xyz/ +\= Expect no match + xyz +No match + +/(?=(a))?./ + ab + 0: a + 1: a + bc + 0: b + +/(?=(a))??./ + ab + 0: a + bc + 0: b + +/^(?!a){0}\w+/ + aaaaa + 0: aaaaa + +/(?<=(abc))?xyz/ + abcxyz + 0: xyz + 1: abc + pqrxyz + 0: xyz + +/^[g]+/ + ggg<<>> + 0: ggg<<>> +\= Expect no match + \\ga +No match + +/^[ga]+/ + gggagagaxyz + 0: gggagaga + +/[:a]xxx[b:]/ + :xxx: + 0: :xxx: + +/(?<=a{2})b/i + xaabc + 0: b +\= Expect no match + xabc +No match + +/(? +# 4: +# 5: c +# 6: d +# 7: Y + +#/^X(?7)(a)(?|(b|(?|(r)|(t))(s))|(q))(c)(d)(Y)/ +# XYabcdY +# 0: XYabcdY +# 1: a +# 2: b +# 3: +# 4: +# 5: c +# 6: d +# 7: Y + +/(?'abc'\w+):\k{2}/ + a:aaxyz + 0: a:aa + 1: a + ab:ababxyz + 0: ab:abab + 1: ab +\= Expect no match + a:axyz +No match + ab:abxyz +No match + +/^(?a)? (?(ab)b|c) (?(ab)d|e)/x + abd + 0: abd + 1: a + ce + 0: ce + +# .NET has more consistent grouping numbers with these dupe groups for the two options +/(?:a(? (?')|(?")) |b(? (?')|(?")) ) (?(quote)[a-z]+|[0-9]+)/x,dupnames + a\"aaaaa + 0: a"aaaaa + 1: " + 2: + 3: " + b\"aaaaa + 0: b"aaaaa + 1: " + 2: + 3: " +\= Expect no match + b\"11111 +No match + +#/(?P(?P0)(?P>L1)|(?P>L2))/ +# 0 +# 0: 0 +# 1: 0 +# 00 +# 0: 00 +# 1: 00 +# 2: 0 +# 0000 +# 0: 0000 +# 1: 0000 +# 2: 0 + +#/(?P(?P0)|(?P>L2)(?P>L1))/ +# 0 +# 0: 0 +# 1: 0 +# 2: 0 +# 00 +# 0: 0 +# 1: 0 +# 2: 0 +# 0000 +# 0: 0 +# 1: 0 +# 2: 0 + +# Check the use of names for failure + +# Check opening parens in comment when seeking forward reference. + +#/(?P(?P=abn)xxx|)+/ +# xxx +# 0: +# 1: + +#Posses +/^(a)?(\w)/ + aaaaX + 0: aa + 1: a + 2: a + YZ + 0: Y + 1: + 2: Y + +#Posses +/^(?:a)?(\w)/ + aaaaX + 0: aa + 1: a + YZ + 0: Y + 1: Y + +/\A.*?(a|bc)/ + ba + 0: ba + 1: a + +/\A.*?(?:a|bc|d)/ + ba + 0: ba + +# -------------------------- + +/(another)?(\1?)test/ + hello world test + 0: test + 1: + 2: + +/(another)?(\1+)test/ +\= Expect no match + hello world test +No match + +/((?:a?)*)*c/ + aac + 0: aac + 1: + +/((?>a?)*)*c/ + aac + 0: aac + 1: + +/(?>.*?a)(?<=ba)/ + aba + 0: ba + +/(?:.*?a)(?<=ba)/ + aba + 0: aba + +/(?>.*?a)b/s + aab + 0: ab + +/(?>.*?a)b/ + aab + 0: ab + +/(?>^a)b/s +\= Expect no match + aab +No match + +/(?>.*?)(?<=(abcd)|(wxyz))/ + alphabetabcd + 0: + 1: abcd + endingwxyz + 0: + 1: + 2: wxyz + +/(?>.*)(?<=(abcd)|(wxyz))/ + alphabetabcd + 0: alphabetabcd + 1: abcd + endingwxyz + 0: endingwxyz + 1: + 2: wxyz + +"(?>.*)foo" +\= Expect no match + abcdfooxyz +No match + +"(?>.*?)foo" + abcdfooxyz + 0: foo + +# Tests that try to figure out how Perl works. My hypothesis is that the first +# verb that is backtracked onto is the one that acts. This seems to be the case +# almost all the time, but there is one exception that is perhaps a bug. + +/a(?=bc).|abd/ + abd + 0: abd + abc + 0: ab + +/a(?>bc)d|abd/ + abceabd + 0: abd + +# These tests were formerly in test 2, but changes in PCRE and Perl have +# made them compatible. + +/^(a)?(?(1)a|b)+$/ +\= Expect no match + a +No match + +# ---- + +/^\d*\w{4}/ + 1234 + 0: 1234 +\= Expect no match + 123 +No match + +/^[^b]*\w{4}/ + aaaa + 0: aaaa +\= Expect no match + aaa +No match + +/^[^b]*\w{4}/i + aaaa + 0: aaaa +\= Expect no match + aaa +No match + +/^a*\w{4}/ + aaaa + 0: aaaa +\= Expect no match + aaa +No match + +/^a*\w{4}/i + aaaa + 0: aaaa +\= Expect no match + aaa +No match + +/(?:(?foo)|(?bar))\k/dupnames + foofoo + 0: foofoo + 1: foo + barbar + 0: barbar + 1: bar + +# A notable difference between PCRE and .NET. According to +# the PCRE docs: +# If you make a subroutine call to a non-unique named +# subpattern, the one that corresponds to the first +# occurrence of the name is used. In the absence of +# duplicate numbers (see the previous section) this is +# the one with the lowest number. +# .NET takes the most recently captured number according to MSDN: +# A backreference refers to the most recent definition of +# a group (the definition most immediately to the left, +# when matching left to right). When a group makes multiple +# captures, a backreference refers to the most recent capture. + +#/(?A)(?:(?foo)|(?bar))\k/dupnames +# AfooA +# 0: AfooA +# 1: A +# 2: foo +# AbarA +# 0: AbarA +# 1: A +# 2: +# 3: bar +#\= Expect no match +# Afoofoo +#No match +# Abarbar +#No match + +/^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/ + 1 IN SOA non-sp1 non-sp2( + 0: 1 IN SOA non-sp1 non-sp2( + 1: 1 + 2: non-sp1 + 3: non-sp2 + +# TODO: .NET's group number ordering here in the second example is a bit odd +/^ (?:(?A)|(?'B'B)(?A)) (?(A)x) (?(B)y)$/x,dupnames + Ax + 0: Ax + 1: A + BAxy + 0: BAxy + 1: A + 2: B + +/ ^ a + b $ /x + aaaab + 0: aaaab + +/ ^ a + #comment + b $ /x + aaaab + 0: aaaab + +/ ^ a + #comment + #comment + b $ /x + aaaab + 0: aaaab + +/ ^ (?> a + ) b $ /x + aaaab + 0: aaaab + +/ ^ ( a + ) + \w $ /x + aaaab + 0: aaaab + 1: aaaa + +/(?:x|(?:(xx|yy)+|x|x|x|x|x)|a|a|a)bc/ +\= Expect no match + acb +No match + +#Posses +#/\A(?:[^\"]+|\"(?:[^\"]*|\"\")*\")+/ +# NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED +# 0: NON QUOTED "QUOT""ED" AFTER + +#Posses +#/\A(?:[^\"]+|\"(?:[^\"]+|\"\")*\")+/ +# NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED +# 0: NON QUOTED "QUOT""ED" AFTER + +#Posses +#/\A(?:[^\"]+|\"(?:[^\"]+|\"\")+\")+/ +# NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED +# 0: NON QUOTED "QUOT""ED" AFTER + +#Posses +#/\A([^\"1]+|[\"2]([^\"3]*|[\"4][\"5])*[\"6])+/ +# NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED +# 0: NON QUOTED "QUOT""ED" AFTER +# 1: AFTER +# 2: + +/^\w+(?>\s*)(?<=\w)/ + test test + 0: tes + +#/(?Pa)?(?Pb)?(?()c|d)*l/ +# acl +# 0: acl +# 1: a +# bdl +# 0: bdl +# 1: +# 2: b +# adl +# 0: dl +# bcl +# 0: l + +/\sabc/ + \x0babc + 0: \x0babc + +#/[\Qa]\E]+/ +# aa]] +# 0: aa]] + +#/[\Q]a\E]+/ +# aa]] +# 0: aa]] + +/A((((((((a))))))))\8B/ + AaaB + 0: AaaB + 1: a + 2: a + 3: a + 4: a + 5: a + 6: a + 7: a + 8: a + +/A(((((((((a)))))))))\9B/ + AaaB + 0: AaaB + 1: a + 2: a + 3: a + 4: a + 5: a + 6: a + 7: a + 8: a + 9: a + +/(|ab)*?d/ + abd + 0: abd + 1: ab + xyd + 0: d + +/(\2|a)(\1)/ + aaa + 0: aa + 1: a + 2: a + +/(\2)(\1)/ + +"Z*(|d*){216}" + +/((((((((((((x))))))))))))\12/ + xx + 0: xx + 1: x + 2: x + 3: x + 4: x + 5: x + 6: x + 7: x + 8: x + 9: x +10: x +11: x +12: x + +#"(?|(\k'Pm')|(?'Pm'))" +# abcd +# 0: +# 1: + +#/(?|(aaa)|(b))\g{1}/ +# aaaaaa +# 0: aaaaaa +# 1: aaa +# bb +# 0: bb +# 1: b + +#/(?|(aaa)|(b))(?1)/ +# aaaaaa +# 0: aaaaaa +# 1: aaa +# baaa +# 0: baaa +# 1: b +#\= Expect no match +# bb +#No match + +#/(?|(aaa)|(b))/ +# xaaa +# 0: aaa +# 1: aaa +# xbc +# 0: b +# 1: b + +#/(?|(?'a'aaa)|(?'a'b))\k'a'/ +# aaaaaa +# 0: aaaaaa +# 1: aaa +# bb +# 0: bb +# 1: b + +#/(?|(?'a'aaa)|(?'a'b))(?'a'cccc)\k'a'/dupnames +# aaaccccaaa +# 0: aaaccccaaa +# 1: aaa +# 2: cccc +# bccccb +# 0: bccccb +# 1: b +# 2: cccc + +# End of testinput1 diff --git a/vendor/github.com/dop251/goja/LICENSE b/vendor/github.com/dop251/goja/LICENSE new file mode 100644 index 00000000000..09c000454f7 --- /dev/null +++ b/vendor/github.com/dop251/goja/LICENSE @@ -0,0 +1,15 @@ +Copyright (c) 2016 Dmitry Panov + +Copyright (c) 2012 Robert Krimen + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/github.com/dop251/goja/README.md b/vendor/github.com/dop251/goja/README.md new file mode 100644 index 00000000000..aa62f099b84 --- /dev/null +++ b/vendor/github.com/dop251/goja/README.md @@ -0,0 +1,253 @@ +goja +==== + +ECMAScript 5.1(+) implementation in Go. + +[![GoDoc](https://godoc.org/github.com/dop251/goja?status.svg)](https://godoc.org/github.com/dop251/goja) + +Goja is an implementation of ECMAScript 5.1 in pure Go with emphasis on standard compliance and +performance. + +This project was largely inspired by [otto](https://github.com/robertkrimen/otto). + +Features +-------- + + * Full ECMAScript 5.1 support (yes, including regex and strict mode). + * Passes nearly all [tc39 tests](https://github.com/tc39/test262) tagged with es5id. The goal is to pass all of them. Note, the last working commit is https://github.com/tc39/test262/commit/1ba3a7c4a93fc93b3d0d7e4146f59934a896837d. The next commit made use of template strings which goja does not support. + * Capable of running Babel, Typescript compiler and pretty much anything written in ES5. + * Sourcemaps. + +FAQ +--- + +### How fast is it? + +Although it's faster than many scripting language implementations in Go I have seen +(for example it's 6-7 times faster than otto on average) it is not a +replacement for V8 or SpiderMonkey or any other general-purpose JavaScript engine. +You can find some benchmarks [here](https://github.com/dop251/goja/issues/2). + +### Why would I want to use it over a V8 wrapper? + +It greatly depends on your usage scenario. If most of the work is done in javascript +(for example crypto or any other heavy calculations) you are definitely better off with V8. + +If you need a scripting language that drives an engine written in Go so +you need to make frequent calls between Go and javascript passing complex data structures +then the cgo overhead may outweigh the benefits of having a faster javascript engine. + +Because it's written in pure Go there are no external dependencies, it's very easy to build and it +should run on any platform supported by Go. + +It gives you a much better control over execution environment so can be useful for research. + +### Is it goroutine-safe? + +No. An instance of goja.Runtime can only be used by a single goroutine +at a time. You can create as many instances of Runtime as you like but +it's not possible to pass object values between runtimes. + +### Where is setTimeout()? + +setTimeout() assumes concurrent execution of code which requires an execution +environment, for example an event loop similar to nodejs or a browser. +There is a [separate project](https://github.com/dop251/goja_nodejs) aimed at providing some of the NodeJS functionality +and it includes an event loop. + +### Can you implement (feature X from ES6 or higher)? + +It's very unlikely that I will be adding new functionality any time soon. It don't have enough time +for adding full ES6 support and I don't want to end up with something that is stuck in between ES5 and ES6. +Most of the new features are available through shims and transpilers. Goja can run Babel and any +other transpiler as long as it's written in ES5. You can even add a wrapper that will do the translation +on the fly. Sourcemaps are supported. + +### How do I contribute? + +Before submitting a pull request please make sure that: + +- You followed ECMA standard as close as possible. If adding a new feature make sure you've read the specification, +do not just base it on a couple of examples that work fine. +- Your change does not have a significant negative impact on performance (unless it's a bugfix and it's unavoidable) +- It passes all relevant tc39 tests. + +Current Status +-------------- + + * API is still work in progress and is subject to change. + * Some of the AnnexB functionality is missing. + * No typed arrays yet. + +Basic Example +------------- + +```go +vm := goja.New() +v, err := vm.RunString("2 + 2") +if err != nil { + panic(err) +} +if num := v.Export().(int64); num != 4 { + panic(num) +} +``` + +Passing Values to JS +-------------------- + +Any Go value can be passed to JS using Runtime.ToValue() method. Primitive types (ints and uints, floats, string, bool) +are converted to the corresponding JavaScript primitives. + +*func(FunctionCall) Value* is treated as a native JavaScript function. + +*func(ConstructorCall) \*Object* is treated as a JavaScript constructor (see Native Constructors). + +*map[string]interface{}* is converted into a host object that largely behaves like a JavaScript Object. + +*[]interface{}* is converted into a host object that behaves largely like a JavaScript Array, however it's not extensible +because extending it can change the pointer so it becomes detached from the original. + +**[]interface{}* is same as above, but the array becomes extensible. + +A function is wrapped within a native JavaScript function. When called the arguments are automatically converted to +the appropriate Go types. If conversion is not possible, a TypeError is thrown. + +A slice type is converted into a generic reflect based host object that behaves similar to an unexpandable Array. + +A map type with numeric or string keys and no methods is converted into a host object where properties are map keys. + +A map type with methods is converted into a host object where properties are method names, +the map values are not accessible. This is to avoid ambiguity between m\["Property"\] and m.Property. + +Any other type is converted to a generic reflect based host object. Depending on the underlying type it behaves similar +to a Number, String, Boolean or Object. + +Note that these conversions wrap the original value which means any changes made inside JS +are reflected on the value and calling Export() returns the original value. This applies to all +reflect based types. + +Exporting Values from JS +------------------------ + +A JS value can be exported into its default Go representation using Value.Export() method. + +Alternatively it can be exported into a specific Go variable using Runtime.ExportTo() method. + +Native Constructors +------------------- + +In order to implement a constructor function in Go: +```go +func MyObject(call goja.ConstructorCall) *Object { + // call.This contains the newly created object as per http://www.ecma-international.org/ecma-262/5.1/index.html#sec-13.2.2 + // call.Arguments contain arguments passed to the function + + call.This.Set("method", method) + + //... + + // If return value is a non-nil *Object, it will be used instead of call.This + // This way it is possible to return a Go struct or a map converted + // into goja.Value using runtime.ToValue(), however in this case + // instanceof will not work as expected. + return nil +} + +runtime.Set("MyObject", MyObject) + +``` + +Then it can be used in JS as follows: + +```js +var o = new MyObject(arg); +var o1 = MyObject(arg); // same thing +o instanceof MyObject && o1 instanceof MyObject; // true +``` + +Regular Expressions +------------------- + +Goja uses the embedded Go regexp library where possible, otherwise it falls back to [regexp2](https://github.com/dlclark/regexp2). + +Exceptions +---------- + +Any exception thrown in JavaScript is returned as an error of type *Exception. It is possible to extract the value thrown +by using the Value() method: + +```go +vm := New() +_, err := vm.RunString(` + +throw("Test"); + +`) + +if jserr, ok := err.(*Exception); ok { + if jserr.Value().Export() != "Test" { + panic("wrong value") + } +} else { + panic("wrong type") +} +``` + +If a native Go function panics with a Value, it is thrown as a Javascript exception (and therefore can be caught): + +```go +var vm *Runtime + +func Test() { + panic(vm.ToValue("Error")) +} + +vm = New() +vm.Set("Test", Test) +_, err := vm.RunString(` + +try { + Test(); +} catch(e) { + if (e !== "Error") { + throw e; + } +} + +`) + +if err != nil { + panic(err) +} +``` + +Interrupting +------------ + +```go +func TestInterrupt(t *testing.T) { + const SCRIPT = ` + var i = 0; + for (;;) { + i++; + } + ` + + vm := New() + time.AfterFunc(200 * time.Millisecond, func() { + vm.Interrupt("halt") + }) + + _, err := vm.RunString(SCRIPT) + if err == nil { + t.Fatal("Err is nil") + } + // err is of type *InterruptError and its Value() method returns whatever has been passed to vm.Interrupt() +} +``` + +NodeJS Compatibility +-------------------- + +There is a [separate project](https://github.com/dop251/goja_nodejs) aimed at providing some of the NodeJS functionality. diff --git a/vendor/github.com/dop251/goja/array.go b/vendor/github.com/dop251/goja/array.go new file mode 100644 index 00000000000..55f75ebd00c --- /dev/null +++ b/vendor/github.com/dop251/goja/array.go @@ -0,0 +1,486 @@ +package goja + +import ( + "math" + "reflect" + "strconv" +) + +type arrayObject struct { + baseObject + values []Value + length int64 + objCount int64 + propValueCount int + lengthProp valueProperty +} + +func (a *arrayObject) init() { + a.baseObject.init() + a.lengthProp.writable = true + + a._put("length", &a.lengthProp) +} + +func (a *arrayObject) getLength() Value { + return intToValue(a.length) +} + +func (a *arrayObject) _setLengthInt(l int64, throw bool) bool { + if l >= 0 && l <= math.MaxUint32 { + ret := true + if l <= a.length { + if a.propValueCount > 0 { + // Slow path + var s int64 + if a.length < int64(len(a.values)) { + s = a.length - 1 + } else { + s = int64(len(a.values)) - 1 + } + for i := s; i >= l; i-- { + if prop, ok := a.values[i].(*valueProperty); ok { + if !prop.configurable { + l = i + 1 + ret = false + break + } + a.propValueCount-- + } + } + } + } + if l <= int64(len(a.values)) { + if l >= 16 && l < int64(cap(a.values))>>2 { + ar := make([]Value, l) + copy(ar, a.values) + a.values = ar + } else { + ar := a.values[l:len(a.values)] + for i, _ := range ar { + ar[i] = nil + } + a.values = a.values[:l] + } + } + a.length = l + if !ret { + a.val.runtime.typeErrorResult(throw, "Cannot redefine property: length") + } + return ret + } + panic(a.val.runtime.newError(a.val.runtime.global.RangeError, "Invalid array length")) +} + +func (a *arrayObject) setLengthInt(l int64, throw bool) bool { + if l == a.length { + return true + } + if !a.lengthProp.writable { + a.val.runtime.typeErrorResult(throw, "length is not writable") + return false + } + return a._setLengthInt(l, throw) +} + +func (a *arrayObject) setLength(v Value, throw bool) bool { + l, ok := toIntIgnoreNegZero(v) + if ok && l == a.length { + return true + } + if !a.lengthProp.writable { + a.val.runtime.typeErrorResult(throw, "length is not writable") + return false + } + if ok { + return a._setLengthInt(l, throw) + } + panic(a.val.runtime.newError(a.val.runtime.global.RangeError, "Invalid array length")) +} + +func (a *arrayObject) getIdx(idx int64, origNameStr string, origName Value) (v Value) { + if idx >= 0 && idx < int64(len(a.values)) { + v = a.values[idx] + } + if v == nil && a.prototype != nil { + if origName != nil { + v = a.prototype.self.getProp(origName) + } else { + v = a.prototype.self.getPropStr(origNameStr) + } + } + return +} + +func (a *arrayObject) sortLen() int64 { + return int64(len(a.values)) +} + +func (a *arrayObject) sortGet(i int64) Value { + v := a.values[i] + if p, ok := v.(*valueProperty); ok { + v = p.get(a.val) + } + return v +} + +func (a *arrayObject) swap(i, j int64) { + a.values[i], a.values[j] = a.values[j], a.values[i] +} + +func toIdx(v Value) (idx int64) { + idx = -1 + if idxVal, ok1 := v.(valueInt); ok1 { + idx = int64(idxVal) + } else { + if i, err := strconv.ParseInt(v.String(), 10, 64); err == nil { + idx = i + } + } + if idx >= 0 && idx < math.MaxUint32 { + return + } + return -1 +} + +func strToIdx(s string) (idx int64) { + idx = -1 + if i, err := strconv.ParseInt(s, 10, 64); err == nil { + idx = i + } + + if idx >= 0 && idx < math.MaxUint32 { + return + } + return -1 +} + +func (a *arrayObject) getProp(n Value) Value { + if idx := toIdx(n); idx >= 0 { + return a.getIdx(idx, "", n) + } + + if n.String() == "length" { + return a.getLengthProp() + } + return a.baseObject.getProp(n) +} + +func (a *arrayObject) getLengthProp() Value { + a.lengthProp.value = intToValue(a.length) + return &a.lengthProp +} + +func (a *arrayObject) getPropStr(name string) Value { + if i := strToIdx(name); i >= 0 { + return a.getIdx(i, name, nil) + } + if name == "length" { + return a.getLengthProp() + } + return a.baseObject.getPropStr(name) +} + +func (a *arrayObject) getOwnProp(name string) Value { + if i := strToIdx(name); i >= 0 { + if i >= 0 && i < int64(len(a.values)) { + return a.values[i] + } + } + if name == "length" { + return a.getLengthProp() + } + return a.baseObject.getOwnProp(name) +} + +func (a *arrayObject) putIdx(idx int64, val Value, throw bool, origNameStr string, origName Value) { + var prop Value + if idx < int64(len(a.values)) { + prop = a.values[idx] + } + + if prop == nil { + if a.prototype != nil { + var pprop Value + if origName != nil { + pprop = a.prototype.self.getProp(origName) + } else { + pprop = a.prototype.self.getPropStr(origNameStr) + } + if pprop, ok := pprop.(*valueProperty); ok { + if !pprop.isWritable() { + a.val.runtime.typeErrorResult(throw) + return + } + if pprop.accessor { + pprop.set(a.val, val) + return + } + } + } + + if !a.extensible { + a.val.runtime.typeErrorResult(throw) + return + } + if idx >= a.length { + if !a.setLengthInt(idx+1, throw) { + return + } + } + if idx >= int64(len(a.values)) { + if !a.expand(idx) { + a.val.self.(*sparseArrayObject).putIdx(idx, val, throw, origNameStr, origName) + return + } + } + } else { + if prop, ok := prop.(*valueProperty); ok { + if !prop.isWritable() { + a.val.runtime.typeErrorResult(throw) + return + } + prop.set(a.val, val) + return + } + } + + a.values[idx] = val + a.objCount++ +} + +func (a *arrayObject) put(n Value, val Value, throw bool) { + if idx := toIdx(n); idx >= 0 { + a.putIdx(idx, val, throw, "", n) + } else { + if n.String() == "length" { + a.setLength(val, throw) + } else { + a.baseObject.put(n, val, throw) + } + } +} + +func (a *arrayObject) putStr(name string, val Value, throw bool) { + if idx := strToIdx(name); idx >= 0 { + a.putIdx(idx, val, throw, name, nil) + } else { + if name == "length" { + a.setLength(val, throw) + } else { + a.baseObject.putStr(name, val, throw) + } + } +} + +type arrayPropIter struct { + a *arrayObject + recursive bool + idx int +} + +func (i *arrayPropIter) next() (propIterItem, iterNextFunc) { + for i.idx < len(i.a.values) { + name := strconv.Itoa(i.idx) + prop := i.a.values[i.idx] + i.idx++ + if prop != nil { + return propIterItem{name: name, value: prop}, i.next + } + } + + return i.a.baseObject._enumerate(i.recursive)() +} + +func (a *arrayObject) _enumerate(recursive bool) iterNextFunc { + return (&arrayPropIter{ + a: a, + recursive: recursive, + }).next +} + +func (a *arrayObject) enumerate(all, recursive bool) iterNextFunc { + return (&propFilterIter{ + wrapped: a._enumerate(recursive), + all: all, + seen: make(map[string]bool), + }).next +} + +func (a *arrayObject) hasOwnProperty(n Value) bool { + if idx := toIdx(n); idx >= 0 { + return idx < int64(len(a.values)) && a.values[idx] != nil && a.values[idx] != _undefined + } else { + return a.baseObject.hasOwnProperty(n) + } +} + +func (a *arrayObject) hasOwnPropertyStr(name string) bool { + if idx := strToIdx(name); idx >= 0 { + return idx < int64(len(a.values)) && a.values[idx] != nil && a.values[idx] != _undefined + } else { + return a.baseObject.hasOwnPropertyStr(name) + } +} + +func (a *arrayObject) expand(idx int64) bool { + targetLen := idx + 1 + if targetLen > int64(len(a.values)) { + if targetLen < int64(cap(a.values)) { + a.values = a.values[:targetLen] + } else { + if idx > 4096 && (a.objCount == 0 || idx/a.objCount > 10) { + //log.Println("Switching standard->sparse") + sa := &sparseArrayObject{ + baseObject: a.baseObject, + length: a.length, + propValueCount: a.propValueCount, + } + sa.setValues(a.values) + sa.val.self = sa + sa.init() + sa.lengthProp.writable = a.lengthProp.writable + return false + } else { + // Use the same algorithm as in runtime.growSlice + newcap := int64(cap(a.values)) + doublecap := newcap + newcap + if targetLen > doublecap { + newcap = targetLen + } else { + if len(a.values) < 1024 { + newcap = doublecap + } else { + for newcap < targetLen { + newcap += newcap / 4 + } + } + } + newValues := make([]Value, targetLen, newcap) + copy(newValues, a.values) + a.values = newValues + } + } + } + return true +} + +func (r *Runtime) defineArrayLength(prop *valueProperty, descr propertyDescr, setter func(Value, bool) bool, throw bool) bool { + ret := true + + if descr.Configurable == FLAG_TRUE || descr.Enumerable == FLAG_TRUE || descr.Getter != nil || descr.Setter != nil { + ret = false + goto Reject + } + + if newLen := descr.Value; newLen != nil { + ret = setter(newLen, false) + } else { + ret = true + } + + if descr.Writable != FLAG_NOT_SET { + w := descr.Writable.Bool() + if prop.writable { + prop.writable = w + } else { + if w { + ret = false + goto Reject + } + } + } + +Reject: + if !ret { + r.typeErrorResult(throw, "Cannot redefine property: length") + } + + return ret +} + +func (a *arrayObject) defineOwnProperty(n Value, descr propertyDescr, throw bool) bool { + if idx := toIdx(n); idx >= 0 { + var existing Value + if idx < int64(len(a.values)) { + existing = a.values[idx] + } + prop, ok := a.baseObject._defineOwnProperty(n, existing, descr, throw) + if ok { + if idx >= a.length { + if !a.setLengthInt(idx+1, throw) { + return false + } + } + if a.expand(idx) { + a.values[idx] = prop + a.objCount++ + if _, ok := prop.(*valueProperty); ok { + a.propValueCount++ + } + } else { + a.val.self.(*sparseArrayObject).putIdx(idx, prop, throw, "", nil) + } + } + return ok + } else { + if n.String() == "length" { + return a.val.runtime.defineArrayLength(&a.lengthProp, descr, a.setLength, throw) + } + return a.baseObject.defineOwnProperty(n, descr, throw) + } +} + +func (a *arrayObject) _deleteProp(idx int64, throw bool) bool { + if idx < int64(len(a.values)) { + if v := a.values[idx]; v != nil { + if p, ok := v.(*valueProperty); ok { + if !p.configurable { + a.val.runtime.typeErrorResult(throw, "Cannot delete property '%d' of %s", idx, a.val.ToString()) + return false + } + a.propValueCount-- + } + a.values[idx] = nil + a.objCount-- + } + } + return true +} + +func (a *arrayObject) delete(n Value, throw bool) bool { + if idx := toIdx(n); idx >= 0 { + return a._deleteProp(idx, throw) + } + return a.baseObject.delete(n, throw) +} + +func (a *arrayObject) deleteStr(name string, throw bool) bool { + if idx := strToIdx(name); idx >= 0 { + return a._deleteProp(idx, throw) + } + return a.baseObject.deleteStr(name, throw) +} + +func (a *arrayObject) export() interface{} { + arr := make([]interface{}, a.length) + for i, v := range a.values { + if v != nil { + arr[i] = v.Export() + } + } + + return arr +} + +func (a *arrayObject) exportType() reflect.Type { + return reflectTypeArray +} + +func (a *arrayObject) setValuesFromSparse(items []sparseArrayItem) { + a.values = make([]Value, int(items[len(items)-1].idx+1)) + for _, item := range items { + a.values[item.idx] = item.value + } + a.objCount = int64(len(items)) +} diff --git a/vendor/github.com/dop251/goja/array_sparse.go b/vendor/github.com/dop251/goja/array_sparse.go new file mode 100644 index 00000000000..f8fd8c56928 --- /dev/null +++ b/vendor/github.com/dop251/goja/array_sparse.go @@ -0,0 +1,455 @@ +package goja + +import ( + "math" + "reflect" + "sort" + "strconv" +) + +type sparseArrayItem struct { + idx int64 + value Value +} + +type sparseArrayObject struct { + baseObject + items []sparseArrayItem + length int64 + propValueCount int + lengthProp valueProperty +} + +func (a *sparseArrayObject) init() { + a.baseObject.init() + a.lengthProp.writable = true + + a._put("length", &a.lengthProp) +} + +func (a *sparseArrayObject) getLength() Value { + return intToValue(a.length) +} + +func (a *sparseArrayObject) findIdx(idx int64) int { + return sort.Search(len(a.items), func(i int) bool { + return a.items[i].idx >= idx + }) +} + +func (a *sparseArrayObject) _setLengthInt(l int64, throw bool) bool { + if l >= 0 && l <= math.MaxUint32 { + ret := true + + if l <= a.length { + if a.propValueCount > 0 { + // Slow path + for i := len(a.items) - 1; i >= 0; i-- { + item := a.items[i] + if item.idx <= l { + break + } + if prop, ok := item.value.(*valueProperty); ok { + if !prop.configurable { + l = item.idx + 1 + ret = false + break + } + a.propValueCount-- + } + } + } + } + + idx := a.findIdx(l) + + aa := a.items[idx:] + for i, _ := range aa { + aa[i].value = nil + } + a.items = a.items[:idx] + a.length = l + if !ret { + a.val.runtime.typeErrorResult(throw, "Cannot redefine property: length") + } + return ret + } + panic(a.val.runtime.newError(a.val.runtime.global.RangeError, "Invalid array length")) +} + +func (a *sparseArrayObject) setLengthInt(l int64, throw bool) bool { + if l == a.length { + return true + } + if !a.lengthProp.writable { + a.val.runtime.typeErrorResult(throw, "length is not writable") + return false + } + return a._setLengthInt(l, throw) +} + +func (a *sparseArrayObject) setLength(v Value, throw bool) bool { + l, ok := toIntIgnoreNegZero(v) + if ok && l == a.length { + return true + } + if !a.lengthProp.writable { + a.val.runtime.typeErrorResult(throw, "length is not writable") + return false + } + if ok { + return a._setLengthInt(l, throw) + } + panic(a.val.runtime.newError(a.val.runtime.global.RangeError, "Invalid array length")) +} + +func (a *sparseArrayObject) getIdx(idx int64, origNameStr string, origName Value) (v Value) { + i := a.findIdx(idx) + if i < len(a.items) && a.items[i].idx == idx { + return a.items[i].value + } + + if a.prototype != nil { + if origName != nil { + v = a.prototype.self.getProp(origName) + } else { + v = a.prototype.self.getPropStr(origNameStr) + } + } + return +} + +func (a *sparseArrayObject) getProp(n Value) Value { + if idx := toIdx(n); idx >= 0 { + return a.getIdx(idx, "", n) + } + + if n.String() == "length" { + return a.getLengthProp() + } + return a.baseObject.getProp(n) +} + +func (a *sparseArrayObject) getLengthProp() Value { + a.lengthProp.value = intToValue(a.length) + return &a.lengthProp +} + +func (a *sparseArrayObject) getOwnProp(name string) Value { + if idx := strToIdx(name); idx >= 0 { + i := a.findIdx(idx) + if i < len(a.items) && a.items[i].idx == idx { + return a.items[i].value + } + return nil + } + if name == "length" { + return a.getLengthProp() + } + return a.baseObject.getOwnProp(name) +} + +func (a *sparseArrayObject) getPropStr(name string) Value { + if i := strToIdx(name); i >= 0 { + return a.getIdx(i, name, nil) + } + if name == "length" { + return a.getLengthProp() + } + return a.baseObject.getPropStr(name) +} + +func (a *sparseArrayObject) putIdx(idx int64, val Value, throw bool, origNameStr string, origName Value) { + var prop Value + i := a.findIdx(idx) + if i < len(a.items) && a.items[i].idx == idx { + prop = a.items[i].value + } + + if prop == nil { + if a.prototype != nil { + var pprop Value + if origName != nil { + pprop = a.prototype.self.getProp(origName) + } else { + pprop = a.prototype.self.getPropStr(origNameStr) + } + if pprop, ok := pprop.(*valueProperty); ok { + if !pprop.isWritable() { + a.val.runtime.typeErrorResult(throw) + return + } + if pprop.accessor { + pprop.set(a.val, val) + return + } + } + } + + if !a.extensible { + a.val.runtime.typeErrorResult(throw) + return + } + + if idx >= a.length { + if !a.setLengthInt(idx+1, throw) { + return + } + } + + if a.expand() { + a.items = append(a.items, sparseArrayItem{}) + copy(a.items[i+1:], a.items[i:]) + a.items[i] = sparseArrayItem{ + idx: idx, + value: val, + } + } else { + a.val.self.(*arrayObject).putIdx(idx, val, throw, origNameStr, origName) + return + } + } else { + if prop, ok := prop.(*valueProperty); ok { + if !prop.isWritable() { + a.val.runtime.typeErrorResult(throw) + return + } + prop.set(a.val, val) + return + } else { + a.items[i].value = val + } + } + +} + +func (a *sparseArrayObject) put(n Value, val Value, throw bool) { + if idx := toIdx(n); idx >= 0 { + a.putIdx(idx, val, throw, "", n) + } else { + if n.String() == "length" { + a.setLength(val, throw) + } else { + a.baseObject.put(n, val, throw) + } + } +} + +func (a *sparseArrayObject) putStr(name string, val Value, throw bool) { + if idx := strToIdx(name); idx >= 0 { + a.putIdx(idx, val, throw, name, nil) + } else { + if name == "length" { + a.setLength(val, throw) + } else { + a.baseObject.putStr(name, val, throw) + } + } +} + +type sparseArrayPropIter struct { + a *sparseArrayObject + recursive bool + idx int +} + +func (i *sparseArrayPropIter) next() (propIterItem, iterNextFunc) { + for i.idx < len(i.a.items) { + name := strconv.Itoa(int(i.a.items[i.idx].idx)) + prop := i.a.items[i.idx].value + i.idx++ + if prop != nil { + return propIterItem{name: name, value: prop}, i.next + } + } + + return i.a.baseObject._enumerate(i.recursive)() +} + +func (a *sparseArrayObject) _enumerate(recursive bool) iterNextFunc { + return (&sparseArrayPropIter{ + a: a, + recursive: recursive, + }).next +} + +func (a *sparseArrayObject) enumerate(all, recursive bool) iterNextFunc { + return (&propFilterIter{ + wrapped: a._enumerate(recursive), + all: all, + seen: make(map[string]bool), + }).next +} + +func (a *sparseArrayObject) setValues(values []Value) { + a.items = nil + for i, val := range values { + if val != nil { + a.items = append(a.items, sparseArrayItem{ + idx: int64(i), + value: val, + }) + } + } +} + +func (a *sparseArrayObject) hasOwnProperty(n Value) bool { + if idx := toIdx(n); idx >= 0 { + i := a.findIdx(idx) + if i < len(a.items) && a.items[i].idx == idx { + return a.items[i].value != _undefined + } + return false + } else { + return a.baseObject.hasOwnProperty(n) + } +} + +func (a *sparseArrayObject) hasOwnPropertyStr(name string) bool { + if idx := strToIdx(name); idx >= 0 { + i := a.findIdx(idx) + if i < len(a.items) && a.items[i].idx == idx { + return a.items[i].value != _undefined + } + return false + } else { + return a.baseObject.hasOwnPropertyStr(name) + } +} + +func (a *sparseArrayObject) expand() bool { + if l := len(a.items); l >= 1024 { + if int(a.items[l-1].idx)/l < 8 { + //log.Println("Switching sparse->standard") + ar := &arrayObject{ + baseObject: a.baseObject, + length: a.length, + propValueCount: a.propValueCount, + } + ar.setValuesFromSparse(a.items) + ar.val.self = ar + ar.init() + ar.lengthProp.writable = a.lengthProp.writable + return false + } + } + return true +} + +func (a *sparseArrayObject) defineOwnProperty(n Value, descr propertyDescr, throw bool) bool { + if idx := toIdx(n); idx >= 0 { + var existing Value + i := a.findIdx(idx) + if i < len(a.items) && a.items[i].idx == idx { + existing = a.items[i].value + } + prop, ok := a.baseObject._defineOwnProperty(n, existing, descr, throw) + if ok { + if idx >= a.length { + if !a.setLengthInt(idx+1, throw) { + return false + } + } + if i >= len(a.items) || a.items[i].idx != idx { + if a.expand() { + a.items = append(a.items, sparseArrayItem{}) + copy(a.items[i+1:], a.items[i:]) + a.items[i] = sparseArrayItem{ + idx: idx, + value: prop, + } + if idx >= a.length { + a.length = idx + 1 + } + } else { + return a.val.self.defineOwnProperty(n, descr, throw) + } + } else { + a.items[i].value = prop + } + if _, ok := prop.(*valueProperty); ok { + a.propValueCount++ + } + } + return ok + } else { + if n.String() == "length" { + return a.val.runtime.defineArrayLength(&a.lengthProp, descr, a.setLength, throw) + } + return a.baseObject.defineOwnProperty(n, descr, throw) + } +} + +func (a *sparseArrayObject) _deleteProp(idx int64, throw bool) bool { + i := a.findIdx(idx) + if i < len(a.items) && a.items[i].idx == idx { + if p, ok := a.items[i].value.(*valueProperty); ok { + if !p.configurable { + a.val.runtime.typeErrorResult(throw, "Cannot delete property '%d' of %s", idx, a.val.ToString()) + return false + } + a.propValueCount-- + } + copy(a.items[i:], a.items[i+1:]) + a.items[len(a.items)-1].value = nil + a.items = a.items[:len(a.items)-1] + } + return true +} + +func (a *sparseArrayObject) delete(n Value, throw bool) bool { + if idx := toIdx(n); idx >= 0 { + return a._deleteProp(idx, throw) + } + return a.baseObject.delete(n, throw) +} + +func (a *sparseArrayObject) deleteStr(name string, throw bool) bool { + if idx := strToIdx(name); idx >= 0 { + return a._deleteProp(idx, throw) + } + return a.baseObject.deleteStr(name, throw) +} + +func (a *sparseArrayObject) sortLen() int64 { + if len(a.items) > 0 { + return a.items[len(a.items)-1].idx + 1 + } + + return 0 +} + +func (a *sparseArrayObject) sortGet(i int64) Value { + idx := a.findIdx(i) + if idx < len(a.items) && a.items[idx].idx == i { + v := a.items[idx].value + if p, ok := v.(*valueProperty); ok { + v = p.get(a.val) + } + return v + } + return nil +} + +func (a *sparseArrayObject) swap(i, j int64) { + idxI := a.findIdx(i) + idxJ := a.findIdx(j) + + if idxI < len(a.items) && a.items[idxI].idx == i && idxJ < len(a.items) && a.items[idxJ].idx == j { + a.items[idxI].value, a.items[idxJ].value = a.items[idxJ].value, a.items[idxI].value + } +} + +func (a *sparseArrayObject) export() interface{} { + arr := make([]interface{}, a.length) + for _, item := range a.items { + if item.value != nil { + arr[item.idx] = item.value.Export() + } + } + return arr +} + +func (a *sparseArrayObject) exportType() reflect.Type { + return reflectTypeArray +} diff --git a/vendor/github.com/dop251/goja/ast/README.markdown b/vendor/github.com/dop251/goja/ast/README.markdown new file mode 100644 index 00000000000..a785da9112d --- /dev/null +++ b/vendor/github.com/dop251/goja/ast/README.markdown @@ -0,0 +1,1068 @@ +# ast +-- + import "github.com/robertkrimen/otto/ast" + +Package ast declares types representing a JavaScript AST. + + +### Warning + +The parser and AST interfaces are still works-in-progress (particularly where +node types are concerned) and may change in the future. + +## Usage + +#### type ArrayLiteral + +```go +type ArrayLiteral struct { + LeftBracket file.Idx + RightBracket file.Idx + Value []Expression +} +``` + + +#### func (*ArrayLiteral) Idx0 + +```go +func (self *ArrayLiteral) Idx0() file.Idx +``` + +#### func (*ArrayLiteral) Idx1 + +```go +func (self *ArrayLiteral) Idx1() file.Idx +``` + +#### type AssignExpression + +```go +type AssignExpression struct { + Operator token.Token + Left Expression + Right Expression +} +``` + + +#### func (*AssignExpression) Idx0 + +```go +func (self *AssignExpression) Idx0() file.Idx +``` + +#### func (*AssignExpression) Idx1 + +```go +func (self *AssignExpression) Idx1() file.Idx +``` + +#### type BadExpression + +```go +type BadExpression struct { + From file.Idx + To file.Idx +} +``` + + +#### func (*BadExpression) Idx0 + +```go +func (self *BadExpression) Idx0() file.Idx +``` + +#### func (*BadExpression) Idx1 + +```go +func (self *BadExpression) Idx1() file.Idx +``` + +#### type BadStatement + +```go +type BadStatement struct { + From file.Idx + To file.Idx +} +``` + + +#### func (*BadStatement) Idx0 + +```go +func (self *BadStatement) Idx0() file.Idx +``` + +#### func (*BadStatement) Idx1 + +```go +func (self *BadStatement) Idx1() file.Idx +``` + +#### type BinaryExpression + +```go +type BinaryExpression struct { + Operator token.Token + Left Expression + Right Expression + Comparison bool +} +``` + + +#### func (*BinaryExpression) Idx0 + +```go +func (self *BinaryExpression) Idx0() file.Idx +``` + +#### func (*BinaryExpression) Idx1 + +```go +func (self *BinaryExpression) Idx1() file.Idx +``` + +#### type BlockStatement + +```go +type BlockStatement struct { + LeftBrace file.Idx + List []Statement + RightBrace file.Idx +} +``` + + +#### func (*BlockStatement) Idx0 + +```go +func (self *BlockStatement) Idx0() file.Idx +``` + +#### func (*BlockStatement) Idx1 + +```go +func (self *BlockStatement) Idx1() file.Idx +``` + +#### type BooleanLiteral + +```go +type BooleanLiteral struct { + Idx file.Idx + Literal string + Value bool +} +``` + + +#### func (*BooleanLiteral) Idx0 + +```go +func (self *BooleanLiteral) Idx0() file.Idx +``` + +#### func (*BooleanLiteral) Idx1 + +```go +func (self *BooleanLiteral) Idx1() file.Idx +``` + +#### type BracketExpression + +```go +type BracketExpression struct { + Left Expression + Member Expression + LeftBracket file.Idx + RightBracket file.Idx +} +``` + + +#### func (*BracketExpression) Idx0 + +```go +func (self *BracketExpression) Idx0() file.Idx +``` + +#### func (*BracketExpression) Idx1 + +```go +func (self *BracketExpression) Idx1() file.Idx +``` + +#### type BranchStatement + +```go +type BranchStatement struct { + Idx file.Idx + Token token.Token + Label *Identifier +} +``` + + +#### func (*BranchStatement) Idx0 + +```go +func (self *BranchStatement) Idx0() file.Idx +``` + +#### func (*BranchStatement) Idx1 + +```go +func (self *BranchStatement) Idx1() file.Idx +``` + +#### type CallExpression + +```go +type CallExpression struct { + Callee Expression + LeftParenthesis file.Idx + ArgumentList []Expression + RightParenthesis file.Idx +} +``` + + +#### func (*CallExpression) Idx0 + +```go +func (self *CallExpression) Idx0() file.Idx +``` + +#### func (*CallExpression) Idx1 + +```go +func (self *CallExpression) Idx1() file.Idx +``` + +#### type CaseStatement + +```go +type CaseStatement struct { + Case file.Idx + Test Expression + Consequent []Statement +} +``` + + +#### func (*CaseStatement) Idx0 + +```go +func (self *CaseStatement) Idx0() file.Idx +``` + +#### func (*CaseStatement) Idx1 + +```go +func (self *CaseStatement) Idx1() file.Idx +``` + +#### type CatchStatement + +```go +type CatchStatement struct { + Catch file.Idx + Parameter *Identifier + Body Statement +} +``` + + +#### func (*CatchStatement) Idx0 + +```go +func (self *CatchStatement) Idx0() file.Idx +``` + +#### func (*CatchStatement) Idx1 + +```go +func (self *CatchStatement) Idx1() file.Idx +``` + +#### type ConditionalExpression + +```go +type ConditionalExpression struct { + Test Expression + Consequent Expression + Alternate Expression +} +``` + + +#### func (*ConditionalExpression) Idx0 + +```go +func (self *ConditionalExpression) Idx0() file.Idx +``` + +#### func (*ConditionalExpression) Idx1 + +```go +func (self *ConditionalExpression) Idx1() file.Idx +``` + +#### type DebuggerStatement + +```go +type DebuggerStatement struct { + Debugger file.Idx +} +``` + + +#### func (*DebuggerStatement) Idx0 + +```go +func (self *DebuggerStatement) Idx0() file.Idx +``` + +#### func (*DebuggerStatement) Idx1 + +```go +func (self *DebuggerStatement) Idx1() file.Idx +``` + +#### type Declaration + +```go +type Declaration interface { + // contains filtered or unexported methods +} +``` + +All declaration nodes implement the Declaration interface. + +#### type DoWhileStatement + +```go +type DoWhileStatement struct { + Do file.Idx + Test Expression + Body Statement +} +``` + + +#### func (*DoWhileStatement) Idx0 + +```go +func (self *DoWhileStatement) Idx0() file.Idx +``` + +#### func (*DoWhileStatement) Idx1 + +```go +func (self *DoWhileStatement) Idx1() file.Idx +``` + +#### type DotExpression + +```go +type DotExpression struct { + Left Expression + Identifier Identifier +} +``` + + +#### func (*DotExpression) Idx0 + +```go +func (self *DotExpression) Idx0() file.Idx +``` + +#### func (*DotExpression) Idx1 + +```go +func (self *DotExpression) Idx1() file.Idx +``` + +#### type EmptyStatement + +```go +type EmptyStatement struct { + Semicolon file.Idx +} +``` + + +#### func (*EmptyStatement) Idx0 + +```go +func (self *EmptyStatement) Idx0() file.Idx +``` + +#### func (*EmptyStatement) Idx1 + +```go +func (self *EmptyStatement) Idx1() file.Idx +``` + +#### type Expression + +```go +type Expression interface { + Node + // contains filtered or unexported methods +} +``` + +All expression nodes implement the Expression interface. + +#### type ExpressionStatement + +```go +type ExpressionStatement struct { + Expression Expression +} +``` + + +#### func (*ExpressionStatement) Idx0 + +```go +func (self *ExpressionStatement) Idx0() file.Idx +``` + +#### func (*ExpressionStatement) Idx1 + +```go +func (self *ExpressionStatement) Idx1() file.Idx +``` + +#### type ForInStatement + +```go +type ForInStatement struct { + For file.Idx + Into Expression + Source Expression + Body Statement +} +``` + + +#### func (*ForInStatement) Idx0 + +```go +func (self *ForInStatement) Idx0() file.Idx +``` + +#### func (*ForInStatement) Idx1 + +```go +func (self *ForInStatement) Idx1() file.Idx +``` + +#### type ForStatement + +```go +type ForStatement struct { + For file.Idx + Initializer Expression + Update Expression + Test Expression + Body Statement +} +``` + + +#### func (*ForStatement) Idx0 + +```go +func (self *ForStatement) Idx0() file.Idx +``` + +#### func (*ForStatement) Idx1 + +```go +func (self *ForStatement) Idx1() file.Idx +``` + +#### type FunctionDeclaration + +```go +type FunctionDeclaration struct { + Function *FunctionLiteral +} +``` + + +#### type FunctionLiteral + +```go +type FunctionLiteral struct { + Function file.Idx + Name *Identifier + ParameterList *ParameterList + Body Statement + Source string + + DeclarationList []Declaration +} +``` + + +#### func (*FunctionLiteral) Idx0 + +```go +func (self *FunctionLiteral) Idx0() file.Idx +``` + +#### func (*FunctionLiteral) Idx1 + +```go +func (self *FunctionLiteral) Idx1() file.Idx +``` + +#### type Identifier + +```go +type Identifier struct { + Name string + Idx file.Idx +} +``` + + +#### func (*Identifier) Idx0 + +```go +func (self *Identifier) Idx0() file.Idx +``` + +#### func (*Identifier) Idx1 + +```go +func (self *Identifier) Idx1() file.Idx +``` + +#### type IfStatement + +```go +type IfStatement struct { + If file.Idx + Test Expression + Consequent Statement + Alternate Statement +} +``` + + +#### func (*IfStatement) Idx0 + +```go +func (self *IfStatement) Idx0() file.Idx +``` + +#### func (*IfStatement) Idx1 + +```go +func (self *IfStatement) Idx1() file.Idx +``` + +#### type LabelledStatement + +```go +type LabelledStatement struct { + Label *Identifier + Colon file.Idx + Statement Statement +} +``` + + +#### func (*LabelledStatement) Idx0 + +```go +func (self *LabelledStatement) Idx0() file.Idx +``` + +#### func (*LabelledStatement) Idx1 + +```go +func (self *LabelledStatement) Idx1() file.Idx +``` + +#### type NewExpression + +```go +type NewExpression struct { + New file.Idx + Callee Expression + LeftParenthesis file.Idx + ArgumentList []Expression + RightParenthesis file.Idx +} +``` + + +#### func (*NewExpression) Idx0 + +```go +func (self *NewExpression) Idx0() file.Idx +``` + +#### func (*NewExpression) Idx1 + +```go +func (self *NewExpression) Idx1() file.Idx +``` + +#### type Node + +```go +type Node interface { + Idx0() file.Idx // The index of the first character belonging to the node + Idx1() file.Idx // The index of the first character immediately after the node +} +``` + +All nodes implement the Node interface. + +#### type NullLiteral + +```go +type NullLiteral struct { + Idx file.Idx + Literal string +} +``` + + +#### func (*NullLiteral) Idx0 + +```go +func (self *NullLiteral) Idx0() file.Idx +``` + +#### func (*NullLiteral) Idx1 + +```go +func (self *NullLiteral) Idx1() file.Idx +``` + +#### type NumberLiteral + +```go +type NumberLiteral struct { + Idx file.Idx + Literal string + Value interface{} +} +``` + + +#### func (*NumberLiteral) Idx0 + +```go +func (self *NumberLiteral) Idx0() file.Idx +``` + +#### func (*NumberLiteral) Idx1 + +```go +func (self *NumberLiteral) Idx1() file.Idx +``` + +#### type ObjectLiteral + +```go +type ObjectLiteral struct { + LeftBrace file.Idx + RightBrace file.Idx + Value []Property +} +``` + + +#### func (*ObjectLiteral) Idx0 + +```go +func (self *ObjectLiteral) Idx0() file.Idx +``` + +#### func (*ObjectLiteral) Idx1 + +```go +func (self *ObjectLiteral) Idx1() file.Idx +``` + +#### type ParameterList + +```go +type ParameterList struct { + Opening file.Idx + List []*Identifier + Closing file.Idx +} +``` + + +#### type Program + +```go +type Program struct { + Body []Statement + + DeclarationList []Declaration + + File *file.File +} +``` + + +#### func (*Program) Idx0 + +```go +func (self *Program) Idx0() file.Idx +``` + +#### func (*Program) Idx1 + +```go +func (self *Program) Idx1() file.Idx +``` + +#### type Property + +```go +type Property struct { + Key string + Kind string + Value Expression +} +``` + + +#### type RegExpLiteral + +```go +type RegExpLiteral struct { + Idx file.Idx + Literal string + Pattern string + Flags string + Value string +} +``` + + +#### func (*RegExpLiteral) Idx0 + +```go +func (self *RegExpLiteral) Idx0() file.Idx +``` + +#### func (*RegExpLiteral) Idx1 + +```go +func (self *RegExpLiteral) Idx1() file.Idx +``` + +#### type ReturnStatement + +```go +type ReturnStatement struct { + Return file.Idx + Argument Expression +} +``` + + +#### func (*ReturnStatement) Idx0 + +```go +func (self *ReturnStatement) Idx0() file.Idx +``` + +#### func (*ReturnStatement) Idx1 + +```go +func (self *ReturnStatement) Idx1() file.Idx +``` + +#### type SequenceExpression + +```go +type SequenceExpression struct { + Sequence []Expression +} +``` + + +#### func (*SequenceExpression) Idx0 + +```go +func (self *SequenceExpression) Idx0() file.Idx +``` + +#### func (*SequenceExpression) Idx1 + +```go +func (self *SequenceExpression) Idx1() file.Idx +``` + +#### type Statement + +```go +type Statement interface { + Node + // contains filtered or unexported methods +} +``` + +All statement nodes implement the Statement interface. + +#### type StringLiteral + +```go +type StringLiteral struct { + Idx file.Idx + Literal string + Value string +} +``` + + +#### func (*StringLiteral) Idx0 + +```go +func (self *StringLiteral) Idx0() file.Idx +``` + +#### func (*StringLiteral) Idx1 + +```go +func (self *StringLiteral) Idx1() file.Idx +``` + +#### type SwitchStatement + +```go +type SwitchStatement struct { + Switch file.Idx + Discriminant Expression + Default int + Body []*CaseStatement +} +``` + + +#### func (*SwitchStatement) Idx0 + +```go +func (self *SwitchStatement) Idx0() file.Idx +``` + +#### func (*SwitchStatement) Idx1 + +```go +func (self *SwitchStatement) Idx1() file.Idx +``` + +#### type ThisExpression + +```go +type ThisExpression struct { + Idx file.Idx +} +``` + + +#### func (*ThisExpression) Idx0 + +```go +func (self *ThisExpression) Idx0() file.Idx +``` + +#### func (*ThisExpression) Idx1 + +```go +func (self *ThisExpression) Idx1() file.Idx +``` + +#### type ThrowStatement + +```go +type ThrowStatement struct { + Throw file.Idx + Argument Expression +} +``` + + +#### func (*ThrowStatement) Idx0 + +```go +func (self *ThrowStatement) Idx0() file.Idx +``` + +#### func (*ThrowStatement) Idx1 + +```go +func (self *ThrowStatement) Idx1() file.Idx +``` + +#### type TryStatement + +```go +type TryStatement struct { + Try file.Idx + Body Statement + Catch *CatchStatement + Finally Statement +} +``` + + +#### func (*TryStatement) Idx0 + +```go +func (self *TryStatement) Idx0() file.Idx +``` + +#### func (*TryStatement) Idx1 + +```go +func (self *TryStatement) Idx1() file.Idx +``` + +#### type UnaryExpression + +```go +type UnaryExpression struct { + Operator token.Token + Idx file.Idx // If a prefix operation + Operand Expression + Postfix bool +} +``` + + +#### func (*UnaryExpression) Idx0 + +```go +func (self *UnaryExpression) Idx0() file.Idx +``` + +#### func (*UnaryExpression) Idx1 + +```go +func (self *UnaryExpression) Idx1() file.Idx +``` + +#### type VariableDeclaration + +```go +type VariableDeclaration struct { + Var file.Idx + List []*VariableExpression +} +``` + + +#### type VariableExpression + +```go +type VariableExpression struct { + Name string + Idx file.Idx + Initializer Expression +} +``` + + +#### func (*VariableExpression) Idx0 + +```go +func (self *VariableExpression) Idx0() file.Idx +``` + +#### func (*VariableExpression) Idx1 + +```go +func (self *VariableExpression) Idx1() file.Idx +``` + +#### type VariableStatement + +```go +type VariableStatement struct { + Var file.Idx + List []Expression +} +``` + + +#### func (*VariableStatement) Idx0 + +```go +func (self *VariableStatement) Idx0() file.Idx +``` + +#### func (*VariableStatement) Idx1 + +```go +func (self *VariableStatement) Idx1() file.Idx +``` + +#### type WhileStatement + +```go +type WhileStatement struct { + While file.Idx + Test Expression + Body Statement +} +``` + + +#### func (*WhileStatement) Idx0 + +```go +func (self *WhileStatement) Idx0() file.Idx +``` + +#### func (*WhileStatement) Idx1 + +```go +func (self *WhileStatement) Idx1() file.Idx +``` + +#### type WithStatement + +```go +type WithStatement struct { + With file.Idx + Object Expression + Body Statement +} +``` + + +#### func (*WithStatement) Idx0 + +```go +func (self *WithStatement) Idx0() file.Idx +``` + +#### func (*WithStatement) Idx1 + +```go +func (self *WithStatement) Idx1() file.Idx +``` + +-- +**godocdown** http://github.com/robertkrimen/godocdown diff --git a/vendor/github.com/dop251/goja/ast/node.go b/vendor/github.com/dop251/goja/ast/node.go new file mode 100644 index 00000000000..6c4ac7d0b7b --- /dev/null +++ b/vendor/github.com/dop251/goja/ast/node.go @@ -0,0 +1,500 @@ +/* +Package ast declares types representing a JavaScript AST. + +Warning + +The parser and AST interfaces are still works-in-progress (particularly where +node types are concerned) and may change in the future. + +*/ +package ast + +import ( + "github.com/dop251/goja/file" + "github.com/dop251/goja/token" + "github.com/go-sourcemap/sourcemap" +) + +// All nodes implement the Node interface. +type Node interface { + Idx0() file.Idx // The index of the first character belonging to the node + Idx1() file.Idx // The index of the first character immediately after the node +} + +// ========== // +// Expression // +// ========== // + +type ( + // All expression nodes implement the Expression interface. + Expression interface { + Node + _expressionNode() + } + + ArrayLiteral struct { + LeftBracket file.Idx + RightBracket file.Idx + Value []Expression + } + + AssignExpression struct { + Operator token.Token + Left Expression + Right Expression + } + + BadExpression struct { + From file.Idx + To file.Idx + } + + BinaryExpression struct { + Operator token.Token + Left Expression + Right Expression + Comparison bool + } + + BooleanLiteral struct { + Idx file.Idx + Literal string + Value bool + } + + BracketExpression struct { + Left Expression + Member Expression + LeftBracket file.Idx + RightBracket file.Idx + } + + CallExpression struct { + Callee Expression + LeftParenthesis file.Idx + ArgumentList []Expression + RightParenthesis file.Idx + } + + ConditionalExpression struct { + Test Expression + Consequent Expression + Alternate Expression + } + + DotExpression struct { + Left Expression + Identifier Identifier + } + + FunctionLiteral struct { + Function file.Idx + Name *Identifier + ParameterList *ParameterList + Body Statement + Source string + + DeclarationList []Declaration + } + + Identifier struct { + Name string + Idx file.Idx + } + + NewExpression struct { + New file.Idx + Callee Expression + LeftParenthesis file.Idx + ArgumentList []Expression + RightParenthesis file.Idx + } + + NullLiteral struct { + Idx file.Idx + Literal string + } + + NumberLiteral struct { + Idx file.Idx + Literal string + Value interface{} + } + + ObjectLiteral struct { + LeftBrace file.Idx + RightBrace file.Idx + Value []Property + } + + ParameterList struct { + Opening file.Idx + List []*Identifier + Closing file.Idx + } + + Property struct { + Key string + Kind string + Value Expression + } + + RegExpLiteral struct { + Idx file.Idx + Literal string + Pattern string + Flags string + } + + SequenceExpression struct { + Sequence []Expression + } + + StringLiteral struct { + Idx file.Idx + Literal string + Value string + } + + ThisExpression struct { + Idx file.Idx + } + + UnaryExpression struct { + Operator token.Token + Idx file.Idx // If a prefix operation + Operand Expression + Postfix bool + } + + VariableExpression struct { + Name string + Idx file.Idx + Initializer Expression + } +) + +// _expressionNode + +func (*ArrayLiteral) _expressionNode() {} +func (*AssignExpression) _expressionNode() {} +func (*BadExpression) _expressionNode() {} +func (*BinaryExpression) _expressionNode() {} +func (*BooleanLiteral) _expressionNode() {} +func (*BracketExpression) _expressionNode() {} +func (*CallExpression) _expressionNode() {} +func (*ConditionalExpression) _expressionNode() {} +func (*DotExpression) _expressionNode() {} +func (*FunctionLiteral) _expressionNode() {} +func (*Identifier) _expressionNode() {} +func (*NewExpression) _expressionNode() {} +func (*NullLiteral) _expressionNode() {} +func (*NumberLiteral) _expressionNode() {} +func (*ObjectLiteral) _expressionNode() {} +func (*RegExpLiteral) _expressionNode() {} +func (*SequenceExpression) _expressionNode() {} +func (*StringLiteral) _expressionNode() {} +func (*ThisExpression) _expressionNode() {} +func (*UnaryExpression) _expressionNode() {} +func (*VariableExpression) _expressionNode() {} + +// ========= // +// Statement // +// ========= // + +type ( + // All statement nodes implement the Statement interface. + Statement interface { + Node + _statementNode() + } + + BadStatement struct { + From file.Idx + To file.Idx + } + + BlockStatement struct { + LeftBrace file.Idx + List []Statement + RightBrace file.Idx + } + + BranchStatement struct { + Idx file.Idx + Token token.Token + Label *Identifier + } + + CaseStatement struct { + Case file.Idx + Test Expression + Consequent []Statement + } + + CatchStatement struct { + Catch file.Idx + Parameter *Identifier + Body Statement + } + + DebuggerStatement struct { + Debugger file.Idx + } + + DoWhileStatement struct { + Do file.Idx + Test Expression + Body Statement + } + + EmptyStatement struct { + Semicolon file.Idx + } + + ExpressionStatement struct { + Expression Expression + } + + ForInStatement struct { + For file.Idx + Into Expression + Source Expression + Body Statement + } + + ForStatement struct { + For file.Idx + Initializer Expression + Update Expression + Test Expression + Body Statement + } + + IfStatement struct { + If file.Idx + Test Expression + Consequent Statement + Alternate Statement + } + + LabelledStatement struct { + Label *Identifier + Colon file.Idx + Statement Statement + } + + ReturnStatement struct { + Return file.Idx + Argument Expression + } + + SwitchStatement struct { + Switch file.Idx + Discriminant Expression + Default int + Body []*CaseStatement + } + + ThrowStatement struct { + Throw file.Idx + Argument Expression + } + + TryStatement struct { + Try file.Idx + Body Statement + Catch *CatchStatement + Finally Statement + } + + VariableStatement struct { + Var file.Idx + List []Expression + } + + WhileStatement struct { + While file.Idx + Test Expression + Body Statement + } + + WithStatement struct { + With file.Idx + Object Expression + Body Statement + } +) + +// _statementNode + +func (*BadStatement) _statementNode() {} +func (*BlockStatement) _statementNode() {} +func (*BranchStatement) _statementNode() {} +func (*CaseStatement) _statementNode() {} +func (*CatchStatement) _statementNode() {} +func (*DebuggerStatement) _statementNode() {} +func (*DoWhileStatement) _statementNode() {} +func (*EmptyStatement) _statementNode() {} +func (*ExpressionStatement) _statementNode() {} +func (*ForInStatement) _statementNode() {} +func (*ForStatement) _statementNode() {} +func (*IfStatement) _statementNode() {} +func (*LabelledStatement) _statementNode() {} +func (*ReturnStatement) _statementNode() {} +func (*SwitchStatement) _statementNode() {} +func (*ThrowStatement) _statementNode() {} +func (*TryStatement) _statementNode() {} +func (*VariableStatement) _statementNode() {} +func (*WhileStatement) _statementNode() {} +func (*WithStatement) _statementNode() {} + +// =========== // +// Declaration // +// =========== // + +type ( + // All declaration nodes implement the Declaration interface. + Declaration interface { + _declarationNode() + } + + FunctionDeclaration struct { + Function *FunctionLiteral + } + + VariableDeclaration struct { + Var file.Idx + List []*VariableExpression + } +) + +// _declarationNode + +func (*FunctionDeclaration) _declarationNode() {} +func (*VariableDeclaration) _declarationNode() {} + +// ==== // +// Node // +// ==== // + +type Program struct { + Body []Statement + + DeclarationList []Declaration + + File *file.File + + SourceMap *sourcemap.Consumer +} + +// ==== // +// Idx0 // +// ==== // + +func (self *ArrayLiteral) Idx0() file.Idx { return self.LeftBracket } +func (self *AssignExpression) Idx0() file.Idx { return self.Left.Idx0() } +func (self *BadExpression) Idx0() file.Idx { return self.From } +func (self *BinaryExpression) Idx0() file.Idx { return self.Left.Idx0() } +func (self *BooleanLiteral) Idx0() file.Idx { return self.Idx } +func (self *BracketExpression) Idx0() file.Idx { return self.Left.Idx0() } +func (self *CallExpression) Idx0() file.Idx { return self.Callee.Idx0() } +func (self *ConditionalExpression) Idx0() file.Idx { return self.Test.Idx0() } +func (self *DotExpression) Idx0() file.Idx { return self.Left.Idx0() } +func (self *FunctionLiteral) Idx0() file.Idx { return self.Function } +func (self *Identifier) Idx0() file.Idx { return self.Idx } +func (self *NewExpression) Idx0() file.Idx { return self.New } +func (self *NullLiteral) Idx0() file.Idx { return self.Idx } +func (self *NumberLiteral) Idx0() file.Idx { return self.Idx } +func (self *ObjectLiteral) Idx0() file.Idx { return self.LeftBrace } +func (self *RegExpLiteral) Idx0() file.Idx { return self.Idx } +func (self *SequenceExpression) Idx0() file.Idx { return self.Sequence[0].Idx0() } +func (self *StringLiteral) Idx0() file.Idx { return self.Idx } +func (self *ThisExpression) Idx0() file.Idx { return self.Idx } +func (self *UnaryExpression) Idx0() file.Idx { return self.Idx } +func (self *VariableExpression) Idx0() file.Idx { return self.Idx } + +func (self *BadStatement) Idx0() file.Idx { return self.From } +func (self *BlockStatement) Idx0() file.Idx { return self.LeftBrace } +func (self *BranchStatement) Idx0() file.Idx { return self.Idx } +func (self *CaseStatement) Idx0() file.Idx { return self.Case } +func (self *CatchStatement) Idx0() file.Idx { return self.Catch } +func (self *DebuggerStatement) Idx0() file.Idx { return self.Debugger } +func (self *DoWhileStatement) Idx0() file.Idx { return self.Do } +func (self *EmptyStatement) Idx0() file.Idx { return self.Semicolon } +func (self *ExpressionStatement) Idx0() file.Idx { return self.Expression.Idx0() } +func (self *ForInStatement) Idx0() file.Idx { return self.For } +func (self *ForStatement) Idx0() file.Idx { return self.For } +func (self *IfStatement) Idx0() file.Idx { return self.If } +func (self *LabelledStatement) Idx0() file.Idx { return self.Label.Idx0() } +func (self *Program) Idx0() file.Idx { return self.Body[0].Idx0() } +func (self *ReturnStatement) Idx0() file.Idx { return self.Return } +func (self *SwitchStatement) Idx0() file.Idx { return self.Switch } +func (self *ThrowStatement) Idx0() file.Idx { return self.Throw } +func (self *TryStatement) Idx0() file.Idx { return self.Try } +func (self *VariableStatement) Idx0() file.Idx { return self.Var } +func (self *WhileStatement) Idx0() file.Idx { return self.While } +func (self *WithStatement) Idx0() file.Idx { return self.With } + +// ==== // +// Idx1 // +// ==== // + +func (self *ArrayLiteral) Idx1() file.Idx { return self.RightBracket } +func (self *AssignExpression) Idx1() file.Idx { return self.Right.Idx1() } +func (self *BadExpression) Idx1() file.Idx { return self.To } +func (self *BinaryExpression) Idx1() file.Idx { return self.Right.Idx1() } +func (self *BooleanLiteral) Idx1() file.Idx { return file.Idx(int(self.Idx) + len(self.Literal)) } +func (self *BracketExpression) Idx1() file.Idx { return self.RightBracket + 1 } +func (self *CallExpression) Idx1() file.Idx { return self.RightParenthesis + 1 } +func (self *ConditionalExpression) Idx1() file.Idx { return self.Test.Idx1() } +func (self *DotExpression) Idx1() file.Idx { return self.Identifier.Idx1() } +func (self *FunctionLiteral) Idx1() file.Idx { return self.Body.Idx1() } +func (self *Identifier) Idx1() file.Idx { return file.Idx(int(self.Idx) + len(self.Name)) } +func (self *NewExpression) Idx1() file.Idx { return self.RightParenthesis + 1 } +func (self *NullLiteral) Idx1() file.Idx { return file.Idx(int(self.Idx) + 4) } // "null" +func (self *NumberLiteral) Idx1() file.Idx { return file.Idx(int(self.Idx) + len(self.Literal)) } +func (self *ObjectLiteral) Idx1() file.Idx { return self.RightBrace } +func (self *RegExpLiteral) Idx1() file.Idx { return file.Idx(int(self.Idx) + len(self.Literal)) } +func (self *SequenceExpression) Idx1() file.Idx { return self.Sequence[0].Idx1() } +func (self *StringLiteral) Idx1() file.Idx { return file.Idx(int(self.Idx) + len(self.Literal)) } +func (self *ThisExpression) Idx1() file.Idx { return self.Idx } +func (self *UnaryExpression) Idx1() file.Idx { + if self.Postfix { + return self.Operand.Idx1() + 2 // ++ -- + } + return self.Operand.Idx1() +} +func (self *VariableExpression) Idx1() file.Idx { + if self.Initializer == nil { + return file.Idx(int(self.Idx) + len(self.Name) + 1) + } + return self.Initializer.Idx1() +} + +func (self *BadStatement) Idx1() file.Idx { return self.To } +func (self *BlockStatement) Idx1() file.Idx { return self.RightBrace + 1 } +func (self *BranchStatement) Idx1() file.Idx { return self.Idx } +func (self *CaseStatement) Idx1() file.Idx { return self.Consequent[len(self.Consequent)-1].Idx1() } +func (self *CatchStatement) Idx1() file.Idx { return self.Body.Idx1() } +func (self *DebuggerStatement) Idx1() file.Idx { return self.Debugger + 8 } +func (self *DoWhileStatement) Idx1() file.Idx { return self.Test.Idx1() } +func (self *EmptyStatement) Idx1() file.Idx { return self.Semicolon + 1 } +func (self *ExpressionStatement) Idx1() file.Idx { return self.Expression.Idx1() } +func (self *ForInStatement) Idx1() file.Idx { return self.Body.Idx1() } +func (self *ForStatement) Idx1() file.Idx { return self.Body.Idx1() } +func (self *IfStatement) Idx1() file.Idx { + if self.Alternate != nil { + return self.Alternate.Idx1() + } + return self.Consequent.Idx1() +} +func (self *LabelledStatement) Idx1() file.Idx { return self.Colon + 1 } +func (self *Program) Idx1() file.Idx { return self.Body[len(self.Body)-1].Idx1() } +func (self *ReturnStatement) Idx1() file.Idx { return self.Return } +func (self *SwitchStatement) Idx1() file.Idx { return self.Body[len(self.Body)-1].Idx1() } +func (self *ThrowStatement) Idx1() file.Idx { return self.Throw } +func (self *TryStatement) Idx1() file.Idx { return self.Try } +func (self *VariableStatement) Idx1() file.Idx { return self.List[len(self.List)-1].Idx1() } +func (self *WhileStatement) Idx1() file.Idx { return self.Body.Idx1() } +func (self *WithStatement) Idx1() file.Idx { return self.Body.Idx1() } diff --git a/vendor/github.com/dop251/goja/builtin_array.go b/vendor/github.com/dop251/goja/builtin_array.go new file mode 100644 index 00000000000..6abad846f4e --- /dev/null +++ b/vendor/github.com/dop251/goja/builtin_array.go @@ -0,0 +1,883 @@ +package goja + +import ( + "bytes" + "sort" + "strings" +) + +func (r *Runtime) builtin_newArray(args []Value, proto *Object) *Object { + l := len(args) + if l == 1 { + if al, ok := args[0].assertInt(); ok { + return r.newArrayLength(al) + } else if f, ok := args[0].assertFloat(); ok { + al := int64(f) + if float64(al) == f { + return r.newArrayLength(al) + } else { + panic(r.newError(r.global.RangeError, "Invalid array length")) + } + } + return r.newArrayValues([]Value{args[0]}) + } else { + argsCopy := make([]Value, l) + copy(argsCopy, args) + return r.newArrayValues(argsCopy) + } +} + +func (r *Runtime) generic_push(obj *Object, call FunctionCall) Value { + l := toLength(obj.self.getStr("length")) + nl := l + int64(len(call.Arguments)) + if nl >= maxInt { + r.typeErrorResult(true, "Invalid array length") + panic("unreachable") + } + for i, arg := range call.Arguments { + obj.self.put(intToValue(l+int64(i)), arg, true) + } + n := intToValue(nl) + obj.self.putStr("length", n, true) + return n +} + +func (r *Runtime) arrayproto_push(call FunctionCall) Value { + obj := call.This.ToObject(r) + return r.generic_push(obj, call) +} + +func (r *Runtime) arrayproto_pop_generic(obj *Object, call FunctionCall) Value { + l := toLength(obj.self.getStr("length")) + if l == 0 { + obj.self.putStr("length", intToValue(0), true) + return _undefined + } + idx := intToValue(l - 1) + val := obj.self.get(idx) + obj.self.delete(idx, true) + obj.self.putStr("length", idx, true) + return val +} + +func (r *Runtime) arrayproto_pop(call FunctionCall) Value { + obj := call.This.ToObject(r) + if a, ok := obj.self.(*arrayObject); ok { + l := a.length + if l > 0 { + var val Value + l-- + if l < int64(len(a.values)) { + val = a.values[l] + } + if val == nil { + // optimisation bail-out + return r.arrayproto_pop_generic(obj, call) + } + if _, ok := val.(*valueProperty); ok { + // optimisation bail-out + return r.arrayproto_pop_generic(obj, call) + } + //a._setLengthInt(l, false) + a.values[l] = nil + a.values = a.values[:l] + a.length = l + return val + } + return _undefined + } else { + return r.arrayproto_pop_generic(obj, call) + } +} + +func (r *Runtime) arrayproto_join(call FunctionCall) Value { + o := call.This.ToObject(r) + l := int(toLength(o.self.getStr("length"))) + sep := "" + if s := call.Argument(0); s != _undefined { + sep = s.String() + } else { + sep = "," + } + if l == 0 { + return stringEmpty + } + + var buf bytes.Buffer + + element0 := o.self.get(intToValue(0)) + if element0 != nil && element0 != _undefined && element0 != _null { + buf.WriteString(element0.String()) + } + + for i := 1; i < l; i++ { + buf.WriteString(sep) + element := o.self.get(intToValue(int64(i))) + if element != nil && element != _undefined && element != _null { + buf.WriteString(element.String()) + } + } + + return newStringValue(buf.String()) +} + +func (r *Runtime) arrayproto_toString(call FunctionCall) Value { + array := call.This.ToObject(r) + f := array.self.getStr("join") + if fObj, ok := f.(*Object); ok { + if fcall, ok := fObj.self.assertCallable(); ok { + return fcall(FunctionCall{ + This: array, + }) + } + } + return r.objectproto_toString(FunctionCall{ + This: array, + }) +} + +func (r *Runtime) writeItemLocaleString(item Value, buf *bytes.Buffer) { + if item != nil && item != _undefined && item != _null { + itemObj := item.ToObject(r) + if f, ok := itemObj.self.getStr("toLocaleString").(*Object); ok { + if c, ok := f.self.assertCallable(); ok { + strVal := c(FunctionCall{ + This: itemObj, + }) + buf.WriteString(strVal.String()) + return + } + } + r.typeErrorResult(true, "Property 'toLocaleString' of object %s is not a function", itemObj) + } +} + +func (r *Runtime) arrayproto_toLocaleString_generic(obj *Object, start int64, buf *bytes.Buffer) Value { + length := toLength(obj.self.getStr("length")) + for i := int64(start); i < length; i++ { + if i > 0 { + buf.WriteByte(',') + } + item := obj.self.get(intToValue(i)) + r.writeItemLocaleString(item, buf) + } + return newStringValue(buf.String()) +} + +func (r *Runtime) arrayproto_toLocaleString(call FunctionCall) Value { + array := call.This.ToObject(r) + if a, ok := array.self.(*arrayObject); ok { + var buf bytes.Buffer + for i := int64(0); i < a.length; i++ { + var item Value + if i < int64(len(a.values)) { + item = a.values[i] + } + if item == nil { + return r.arrayproto_toLocaleString_generic(array, i, &buf) + } + if prop, ok := item.(*valueProperty); ok { + item = prop.get(array) + } + if i > 0 { + buf.WriteByte(',') + } + r.writeItemLocaleString(item, &buf) + } + return newStringValue(buf.String()) + } else { + return r.arrayproto_toLocaleString_generic(array, 0, bytes.NewBuffer(nil)) + } + +} + +func (r *Runtime) arrayproto_concat_append(a *Object, item Value) { + descr := propertyDescr{ + Writable: FLAG_TRUE, + Enumerable: FLAG_TRUE, + Configurable: FLAG_TRUE, + } + + aLength := toLength(a.self.getStr("length")) + if obj, ok := item.(*Object); ok { + if isArray(obj) { + length := toLength(obj.self.getStr("length")) + for i := int64(0); i < length; i++ { + v := obj.self.get(intToValue(i)) + if v != nil { + descr.Value = v + a.self.defineOwnProperty(intToValue(aLength), descr, false) + aLength++ + } else { + aLength++ + a.self.putStr("length", intToValue(aLength), false) + } + } + return + } + } + descr.Value = item + a.self.defineOwnProperty(intToValue(aLength), descr, false) +} + +func (r *Runtime) arrayproto_concat(call FunctionCall) Value { + a := r.newArrayValues(nil) + r.arrayproto_concat_append(a, call.This.ToObject(r)) + for _, item := range call.Arguments { + r.arrayproto_concat_append(a, item) + } + return a +} + +func max(a, b int64) int64 { + if a > b { + return a + } + return b +} + +func min(a, b int64) int64 { + if a < b { + return a + } + return b +} + +func (r *Runtime) arrayproto_slice(call FunctionCall) Value { + o := call.This.ToObject(r) + length := toLength(o.self.getStr("length")) + start := call.Argument(0).ToInteger() + if start < 0 { + start = max(length+start, 0) + } else { + start = min(start, length) + } + var end int64 + if endArg := call.Argument(1); endArg != _undefined { + end = endArg.ToInteger() + } else { + end = length + } + if end < 0 { + end = max(length+end, 0) + } else { + end = min(end, length) + } + + count := end - start + if count < 0 { + count = 0 + } + a := r.newArrayLength(count) + + n := int64(0) + descr := propertyDescr{ + Writable: FLAG_TRUE, + Enumerable: FLAG_TRUE, + Configurable: FLAG_TRUE, + } + for start < end { + p := o.self.get(intToValue(start)) + if p != nil && p != _undefined { + descr.Value = p + a.self.defineOwnProperty(intToValue(n), descr, false) + } + start++ + n++ + } + return a +} + +func (r *Runtime) arrayproto_sort(call FunctionCall) Value { + o := call.This.ToObject(r) + + var compareFn func(FunctionCall) Value + + if arg, ok := call.Argument(0).(*Object); ok { + compareFn, _ = arg.self.assertCallable() + } + + ctx := arraySortCtx{ + obj: o.self, + compare: compareFn, + } + + sort.Sort(&ctx) + return o +} + +func (r *Runtime) arrayproto_splice(call FunctionCall) Value { + o := call.This.ToObject(r) + a := r.newArrayValues(nil) + length := toLength(o.self.getStr("length")) + relativeStart := call.Argument(0).ToInteger() + var actualStart int64 + if relativeStart < 0 { + actualStart = max(length+relativeStart, 0) + } else { + actualStart = min(relativeStart, length) + } + + actualDeleteCount := min(max(call.Argument(1).ToInteger(), 0), length-actualStart) + + for k := int64(0); k < actualDeleteCount; k++ { + from := intToValue(k + actualStart) + if o.self.hasProperty(from) { + a.self.put(intToValue(k), o.self.get(from), false) + } + } + + itemCount := max(int64(len(call.Arguments)-2), 0) + if itemCount < actualDeleteCount { + for k := actualStart; k < length-actualDeleteCount; k++ { + from := intToValue(k + actualDeleteCount) + to := intToValue(k + itemCount) + if o.self.hasProperty(from) { + o.self.put(to, o.self.get(from), true) + } else { + o.self.delete(to, true) + } + } + + for k := length; k > length-actualDeleteCount+itemCount; k-- { + o.self.delete(intToValue(k-1), true) + } + } else if itemCount > actualDeleteCount { + for k := length - actualDeleteCount; k > actualStart; k-- { + from := intToValue(k + actualDeleteCount - 1) + to := intToValue(k + itemCount - 1) + if o.self.hasProperty(from) { + o.self.put(to, o.self.get(from), true) + } else { + o.self.delete(to, true) + } + } + } + + if itemCount > 0 { + for i, item := range call.Arguments[2:] { + o.self.put(intToValue(actualStart+int64(i)), item, true) + } + } + + o.self.putStr("length", intToValue(length-actualDeleteCount+itemCount), true) + + return a +} + +func (r *Runtime) arrayproto_unshift(call FunctionCall) Value { + o := call.This.ToObject(r) + length := toLength(o.self.getStr("length")) + argCount := int64(len(call.Arguments)) + for k := length - 1; k >= 0; k-- { + from := intToValue(k) + to := intToValue(k + argCount) + if o.self.hasProperty(from) { + o.self.put(to, o.self.get(from), true) + } else { + o.self.delete(to, true) + } + } + + for k, arg := range call.Arguments { + o.self.put(intToValue(int64(k)), arg, true) + } + + newLen := intToValue(length + argCount) + o.self.putStr("length", newLen, true) + return newLen +} + +func (r *Runtime) arrayproto_indexOf(call FunctionCall) Value { + o := call.This.ToObject(r) + length := toLength(o.self.getStr("length")) + if length == 0 { + return intToValue(-1) + } + + n := call.Argument(1).ToInteger() + if n >= length { + return intToValue(-1) + } + + if n < 0 { + n = max(length+n, 0) + } + + searchElement := call.Argument(0) + + for ; n < length; n++ { + idx := intToValue(n) + if val := o.self.get(idx); val != nil { + if searchElement.StrictEquals(val) { + return idx + } + } + } + + return intToValue(-1) +} + +func (r *Runtime) arrayproto_lastIndexOf(call FunctionCall) Value { + o := call.This.ToObject(r) + length := toLength(o.self.getStr("length")) + if length == 0 { + return intToValue(-1) + } + + var fromIndex int64 + + if len(call.Arguments) < 2 { + fromIndex = length - 1 + } else { + fromIndex = call.Argument(1).ToInteger() + if fromIndex >= 0 { + fromIndex = min(fromIndex, length-1) + } else { + fromIndex += length + } + } + + searchElement := call.Argument(0) + + for k := fromIndex; k >= 0; k-- { + idx := intToValue(k) + if val := o.self.get(idx); val != nil { + if searchElement.StrictEquals(val) { + return idx + } + } + } + + return intToValue(-1) +} + +func (r *Runtime) arrayproto_every(call FunctionCall) Value { + o := call.This.ToObject(r) + length := toLength(o.self.getStr("length")) + callbackFn := call.Argument(0).ToObject(r) + if callbackFn, ok := callbackFn.self.assertCallable(); ok { + fc := FunctionCall{ + This: call.Argument(1), + Arguments: []Value{nil, nil, o}, + } + for k := int64(0); k < length; k++ { + idx := intToValue(k) + if val := o.self.get(idx); val != nil { + fc.Arguments[0] = val + fc.Arguments[1] = idx + if !callbackFn(fc).ToBoolean() { + return valueFalse + } + } + } + } else { + r.typeErrorResult(true, "%s is not a function", call.Argument(0)) + } + return valueTrue +} + +func (r *Runtime) arrayproto_some(call FunctionCall) Value { + o := call.This.ToObject(r) + length := toLength(o.self.getStr("length")) + callbackFn := call.Argument(0).ToObject(r) + if callbackFn, ok := callbackFn.self.assertCallable(); ok { + fc := FunctionCall{ + This: call.Argument(1), + Arguments: []Value{nil, nil, o}, + } + for k := int64(0); k < length; k++ { + idx := intToValue(k) + if val := o.self.get(idx); val != nil { + fc.Arguments[0] = val + fc.Arguments[1] = idx + if callbackFn(fc).ToBoolean() { + return valueTrue + } + } + } + } else { + r.typeErrorResult(true, "%s is not a function", call.Argument(0)) + } + return valueFalse +} + +func (r *Runtime) arrayproto_forEach(call FunctionCall) Value { + o := call.This.ToObject(r) + length := toLength(o.self.getStr("length")) + callbackFn := call.Argument(0).ToObject(r) + if callbackFn, ok := callbackFn.self.assertCallable(); ok { + fc := FunctionCall{ + This: call.Argument(1), + Arguments: []Value{nil, nil, o}, + } + for k := int64(0); k < length; k++ { + idx := intToValue(k) + if val := o.self.get(idx); val != nil { + fc.Arguments[0] = val + fc.Arguments[1] = idx + callbackFn(fc) + } + } + } else { + r.typeErrorResult(true, "%s is not a function", call.Argument(0)) + } + return _undefined +} + +func (r *Runtime) arrayproto_map(call FunctionCall) Value { + o := call.This.ToObject(r) + length := toLength(o.self.getStr("length")) + callbackFn := call.Argument(0).ToObject(r) + if callbackFn, ok := callbackFn.self.assertCallable(); ok { + fc := FunctionCall{ + This: call.Argument(1), + Arguments: []Value{nil, nil, o}, + } + a := r.newArrayObject() + a._setLengthInt(length, true) + a.values = make([]Value, length) + for k := int64(0); k < length; k++ { + idx := intToValue(k) + if val := o.self.get(idx); val != nil { + fc.Arguments[0] = val + fc.Arguments[1] = idx + a.values[k] = callbackFn(fc) + a.objCount++ + } + } + return a.val + } else { + r.typeErrorResult(true, "%s is not a function", call.Argument(0)) + } + panic("unreachable") +} + +func (r *Runtime) arrayproto_filter(call FunctionCall) Value { + o := call.This.ToObject(r) + length := toLength(o.self.getStr("length")) + callbackFn := call.Argument(0).ToObject(r) + if callbackFn, ok := callbackFn.self.assertCallable(); ok { + a := r.newArrayObject() + fc := FunctionCall{ + This: call.Argument(1), + Arguments: []Value{nil, nil, o}, + } + for k := int64(0); k < length; k++ { + idx := intToValue(k) + if val := o.self.get(idx); val != nil { + fc.Arguments[0] = val + fc.Arguments[1] = idx + if callbackFn(fc).ToBoolean() { + a.values = append(a.values, val) + } + } + } + a.length = int64(len(a.values)) + a.objCount = a.length + return a.val + } else { + r.typeErrorResult(true, "%s is not a function", call.Argument(0)) + } + panic("unreachable") +} + +func (r *Runtime) arrayproto_reduce(call FunctionCall) Value { + o := call.This.ToObject(r) + length := toLength(o.self.getStr("length")) + callbackFn := call.Argument(0).ToObject(r) + if callbackFn, ok := callbackFn.self.assertCallable(); ok { + fc := FunctionCall{ + This: _undefined, + Arguments: []Value{nil, nil, nil, o}, + } + + var k int64 + + if len(call.Arguments) >= 2 { + fc.Arguments[0] = call.Argument(1) + } else { + for ; k < length; k++ { + idx := intToValue(k) + if val := o.self.get(idx); val != nil { + fc.Arguments[0] = val + break + } + } + if fc.Arguments[0] == nil { + r.typeErrorResult(true, "No initial value") + panic("unreachable") + } + k++ + } + + for ; k < length; k++ { + idx := intToValue(k) + if val := o.self.get(idx); val != nil { + fc.Arguments[1] = val + fc.Arguments[2] = idx + fc.Arguments[0] = callbackFn(fc) + } + } + return fc.Arguments[0] + } else { + r.typeErrorResult(true, "%s is not a function", call.Argument(0)) + } + panic("unreachable") +} + +func (r *Runtime) arrayproto_reduceRight(call FunctionCall) Value { + o := call.This.ToObject(r) + length := toLength(o.self.getStr("length")) + callbackFn := call.Argument(0).ToObject(r) + if callbackFn, ok := callbackFn.self.assertCallable(); ok { + fc := FunctionCall{ + This: _undefined, + Arguments: []Value{nil, nil, nil, o}, + } + + k := length - 1 + + if len(call.Arguments) >= 2 { + fc.Arguments[0] = call.Argument(1) + } else { + for ; k >= 0; k-- { + idx := intToValue(k) + if val := o.self.get(idx); val != nil { + fc.Arguments[0] = val + break + } + } + if fc.Arguments[0] == nil { + r.typeErrorResult(true, "No initial value") + panic("unreachable") + } + k-- + } + + for ; k >= 0; k-- { + idx := intToValue(k) + if val := o.self.get(idx); val != nil { + fc.Arguments[1] = val + fc.Arguments[2] = idx + fc.Arguments[0] = callbackFn(fc) + } + } + return fc.Arguments[0] + } else { + r.typeErrorResult(true, "%s is not a function", call.Argument(0)) + } + panic("unreachable") +} + +func arrayproto_reverse_generic_step(o *Object, lower, upper int64) { + lowerP := intToValue(lower) + upperP := intToValue(upper) + lowerValue := o.self.get(lowerP) + upperValue := o.self.get(upperP) + if lowerValue != nil && upperValue != nil { + o.self.put(lowerP, upperValue, true) + o.self.put(upperP, lowerValue, true) + } else if lowerValue == nil && upperValue != nil { + o.self.put(lowerP, upperValue, true) + o.self.delete(upperP, true) + } else if lowerValue != nil && upperValue == nil { + o.self.delete(lowerP, true) + o.self.put(upperP, lowerValue, true) + } +} + +func (r *Runtime) arrayproto_reverse_generic(o *Object, start int64) { + l := toLength(o.self.getStr("length")) + middle := l / 2 + for lower := start; lower != middle; lower++ { + arrayproto_reverse_generic_step(o, lower, l-lower-1) + } +} + +func (r *Runtime) arrayproto_reverse(call FunctionCall) Value { + o := call.This.ToObject(r) + if a, ok := o.self.(*arrayObject); ok { + l := a.length + middle := l / 2 + al := int64(len(a.values)) + for lower := int64(0); lower != middle; lower++ { + upper := l - lower - 1 + var lowerValue, upperValue Value + if upper >= al || lower >= al { + goto bailout + } + lowerValue = a.values[lower] + if lowerValue == nil { + goto bailout + } + if _, ok := lowerValue.(*valueProperty); ok { + goto bailout + } + upperValue = a.values[upper] + if upperValue == nil { + goto bailout + } + if _, ok := upperValue.(*valueProperty); ok { + goto bailout + } + + a.values[lower], a.values[upper] = upperValue, lowerValue + continue + bailout: + arrayproto_reverse_generic_step(o, lower, upper) + } + //TODO: go arrays + } else { + r.arrayproto_reverse_generic(o, 0) + } + return o +} + +func (r *Runtime) arrayproto_shift(call FunctionCall) Value { + o := call.This.ToObject(r) + length := toLength(o.self.getStr("length")) + if length == 0 { + o.self.putStr("length", intToValue(0), true) + return _undefined + } + first := o.self.get(intToValue(0)) + for i := int64(1); i < length; i++ { + v := o.self.get(intToValue(i)) + if v != nil && v != _undefined { + o.self.put(intToValue(i-1), v, true) + } else { + o.self.delete(intToValue(i-1), true) + } + } + + lv := intToValue(length - 1) + o.self.delete(lv, true) + o.self.putStr("length", lv, true) + + return first +} + +func (r *Runtime) array_isArray(call FunctionCall) Value { + if o, ok := call.Argument(0).(*Object); ok { + if isArray(o) { + return valueTrue + } + } + return valueFalse +} + +func (r *Runtime) createArrayProto(val *Object) objectImpl { + o := &arrayObject{ + baseObject: baseObject{ + class: classArray, + val: val, + extensible: true, + prototype: r.global.ObjectPrototype, + }, + } + o.init() + + o._putProp("constructor", r.global.Array, true, false, true) + o._putProp("pop", r.newNativeFunc(r.arrayproto_pop, nil, "pop", nil, 0), true, false, true) + o._putProp("push", r.newNativeFunc(r.arrayproto_push, nil, "push", nil, 1), true, false, true) + o._putProp("join", r.newNativeFunc(r.arrayproto_join, nil, "join", nil, 1), true, false, true) + o._putProp("toString", r.newNativeFunc(r.arrayproto_toString, nil, "toString", nil, 0), true, false, true) + o._putProp("toLocaleString", r.newNativeFunc(r.arrayproto_toLocaleString, nil, "toLocaleString", nil, 0), true, false, true) + o._putProp("concat", r.newNativeFunc(r.arrayproto_concat, nil, "concat", nil, 1), true, false, true) + o._putProp("reverse", r.newNativeFunc(r.arrayproto_reverse, nil, "reverse", nil, 0), true, false, true) + o._putProp("shift", r.newNativeFunc(r.arrayproto_shift, nil, "shift", nil, 0), true, false, true) + o._putProp("slice", r.newNativeFunc(r.arrayproto_slice, nil, "slice", nil, 2), true, false, true) + o._putProp("sort", r.newNativeFunc(r.arrayproto_sort, nil, "sort", nil, 1), true, false, true) + o._putProp("splice", r.newNativeFunc(r.arrayproto_splice, nil, "splice", nil, 2), true, false, true) + o._putProp("unshift", r.newNativeFunc(r.arrayproto_unshift, nil, "unshift", nil, 1), true, false, true) + o._putProp("indexOf", r.newNativeFunc(r.arrayproto_indexOf, nil, "indexOf", nil, 1), true, false, true) + o._putProp("lastIndexOf", r.newNativeFunc(r.arrayproto_lastIndexOf, nil, "lastIndexOf", nil, 1), true, false, true) + o._putProp("every", r.newNativeFunc(r.arrayproto_every, nil, "every", nil, 1), true, false, true) + o._putProp("some", r.newNativeFunc(r.arrayproto_some, nil, "some", nil, 1), true, false, true) + o._putProp("forEach", r.newNativeFunc(r.arrayproto_forEach, nil, "forEach", nil, 1), true, false, true) + o._putProp("map", r.newNativeFunc(r.arrayproto_map, nil, "map", nil, 1), true, false, true) + o._putProp("filter", r.newNativeFunc(r.arrayproto_filter, nil, "filter", nil, 1), true, false, true) + o._putProp("reduce", r.newNativeFunc(r.arrayproto_reduce, nil, "reduce", nil, 1), true, false, true) + o._putProp("reduceRight", r.newNativeFunc(r.arrayproto_reduceRight, nil, "reduceRight", nil, 1), true, false, true) + + return o +} + +func (r *Runtime) createArray(val *Object) objectImpl { + o := r.newNativeFuncConstructObj(val, r.builtin_newArray, "Array", r.global.ArrayPrototype, 1) + o._putProp("isArray", r.newNativeFunc(r.array_isArray, nil, "isArray", nil, 1), true, false, true) + return o +} + +func (r *Runtime) initArray() { + //r.global.ArrayPrototype = r.newArray(r.global.ObjectPrototype).val + //o := r.global.ArrayPrototype.self + r.global.ArrayPrototype = r.newLazyObject(r.createArrayProto) + + //r.global.Array = r.newNativeFuncConstruct(r.builtin_newArray, "Array", r.global.ArrayPrototype, 1) + //o = r.global.Array.self + //o._putProp("isArray", r.newNativeFunc(r.array_isArray, nil, "isArray", nil, 1), true, false, true) + r.global.Array = r.newLazyObject(r.createArray) + + r.addToGlobal("Array", r.global.Array) +} + +type sortable interface { + sortLen() int64 + sortGet(int64) Value + swap(int64, int64) +} + +type arraySortCtx struct { + obj sortable + compare func(FunctionCall) Value +} + +func (ctx *arraySortCtx) sortCompare(x, y Value) int { + if x == nil && y == nil { + return 0 + } + + if x == nil { + return 1 + } + + if y == nil { + return -1 + } + + if x == _undefined && y == _undefined { + return 0 + } + + if x == _undefined { + return 1 + } + + if y == _undefined { + return -1 + } + + if ctx.compare != nil { + return int(ctx.compare(FunctionCall{ + This: _undefined, + Arguments: []Value{x, y}, + }).ToInteger()) + } + return strings.Compare(x.String(), y.String()) +} + +// sort.Interface + +func (a *arraySortCtx) Len() int { + return int(a.obj.sortLen()) +} + +func (a *arraySortCtx) Less(j, k int) bool { + return a.sortCompare(a.obj.sortGet(int64(j)), a.obj.sortGet(int64(k))) < 0 +} + +func (a *arraySortCtx) Swap(j, k int) { + a.obj.swap(int64(j), int64(k)) +} diff --git a/vendor/github.com/dop251/goja/builtin_boolean.go b/vendor/github.com/dop251/goja/builtin_boolean.go new file mode 100644 index 00000000000..df8d18cff88 --- /dev/null +++ b/vendor/github.com/dop251/goja/builtin_boolean.go @@ -0,0 +1,50 @@ +package goja + +func (r *Runtime) booleanproto_toString(call FunctionCall) Value { + var b bool + switch o := call.This.(type) { + case valueBool: + b = bool(o) + goto success + case *Object: + if p, ok := o.self.(*primitiveValueObject); ok { + if b1, ok := p.pValue.(valueBool); ok { + b = bool(b1) + goto success + } + } + } + r.typeErrorResult(true, "Method Boolean.prototype.toString is called on incompatible receiver") + +success: + if b { + return stringTrue + } + return stringFalse +} + +func (r *Runtime) booleanproto_valueOf(call FunctionCall) Value { + switch o := call.This.(type) { + case valueBool: + return o + case *Object: + if p, ok := o.self.(*primitiveValueObject); ok { + if b, ok := p.pValue.(valueBool); ok { + return b + } + } + } + + r.typeErrorResult(true, "Method Boolean.prototype.valueOf is called on incompatible receiver") + return nil +} + +func (r *Runtime) initBoolean() { + r.global.BooleanPrototype = r.newPrimitiveObject(valueFalse, r.global.ObjectPrototype, classBoolean) + o := r.global.BooleanPrototype.self + o._putProp("toString", r.newNativeFunc(r.booleanproto_toString, nil, "toString", nil, 0), true, false, true) + o._putProp("valueOf", r.newNativeFunc(r.booleanproto_valueOf, nil, "valueOf", nil, 0), true, false, true) + + r.global.Boolean = r.newNativeFunc(r.builtin_Boolean, r.builtin_newBoolean, "Boolean", r.global.BooleanPrototype, 1) + r.addToGlobal("Boolean", r.global.Boolean) +} diff --git a/vendor/github.com/dop251/goja/builtin_date.go b/vendor/github.com/dop251/goja/builtin_date.go new file mode 100644 index 00000000000..a0c866c253e --- /dev/null +++ b/vendor/github.com/dop251/goja/builtin_date.go @@ -0,0 +1,933 @@ +package goja + +import ( + "fmt" + "math" + "time" +) + +const ( + maxTime = 8.64e15 +) + +func timeFromMsec(msec int64) time.Time { + sec := msec / 1000 + nsec := (msec % 1000) * 1e6 + return time.Unix(sec, nsec) +} + +func timeToMsec(t time.Time) int64 { + return t.Unix()*1000 + int64(t.Nanosecond())/1e6 +} + +func makeDate(args []Value, loc *time.Location) (t time.Time, valid bool) { + pick := func(index int, default_ int64) (int64, bool) { + if index >= len(args) { + return default_, true + } + value := args[index] + if valueInt, ok := value.assertInt(); ok { + return valueInt, true + } + valueFloat := value.ToFloat() + if math.IsNaN(valueFloat) || math.IsInf(valueFloat, 0) { + return 0, false + } + return int64(valueFloat), true + } + + switch { + case len(args) >= 2: + var year, month, day, hour, minute, second, millisecond int64 + if year, valid = pick(0, 1900); !valid { + return + } + if month, valid = pick(1, 0); !valid { + return + } + if day, valid = pick(2, 1); !valid { + return + } + if hour, valid = pick(3, 0); !valid { + return + } + if minute, valid = pick(4, 0); !valid { + return + } + if second, valid = pick(5, 0); !valid { + return + } + if millisecond, valid = pick(6, 0); !valid { + return + } + + if year >= 0 && year <= 99 { + year += 1900 + } + + t = time.Date(int(year), time.Month(int(month)+1), int(day), int(hour), int(minute), int(second), int(millisecond)*1e6, loc) + case len(args) == 0: + t = time.Now() + valid = true + default: // one argument + pv := toPrimitiveNumber(args[0]) + if val, ok := pv.assertString(); ok { + return dateParse(val.String()) + } + + var n int64 + if i, ok := pv.assertInt(); ok { + n = i + } else if f, ok := pv.assertFloat(); ok { + if math.IsNaN(f) || math.IsInf(f, 0) { + return + } + if math.Abs(f) > maxTime { + return + } + n = int64(f) + } else { + n = pv.ToInteger() + } + t = timeFromMsec(n) + valid = true + } + msec := t.Unix()*1000 + int64(t.Nanosecond()/1e6) + if msec < 0 { + msec = -msec + } + if msec > maxTime { + valid = false + } + return +} + +func (r *Runtime) newDateTime(args []Value, loc *time.Location) *Object { + t, isSet := makeDate(args, loc) + return r.newDateObject(t, isSet) +} + +func (r *Runtime) builtin_newDate(args []Value) *Object { + return r.newDateTime(args, time.Local) +} + +func (r *Runtime) builtin_date(call FunctionCall) Value { + return asciiString(dateFormat(time.Now())) +} + +func (r *Runtime) date_parse(call FunctionCall) Value { + t, set := dateParse(call.Argument(0).String()) + if set { + return intToValue(timeToMsec(t)) + } + return _NaN +} + +func (r *Runtime) date_UTC(call FunctionCall) Value { + t, valid := makeDate(call.Arguments, time.UTC) + if !valid { + return _NaN + } + return intToValue(timeToMsec(t)) +} + +func (r *Runtime) date_now(call FunctionCall) Value { + return intToValue(timeToMsec(time.Now())) +} + +func (r *Runtime) dateproto_toString(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + return asciiString(d.time.Format(dateTimeLayout)) + } else { + return stringInvalidDate + } + } + r.typeErrorResult(true, "Method Date.prototype.toString is called on incompatible receiver") + panic("Unreachable") +} + +func (r *Runtime) dateproto_toUTCString(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + return asciiString(d.time.In(time.UTC).Format(dateTimeLayout)) + } else { + return stringInvalidDate + } + } + r.typeErrorResult(true, "Method Date.prototype.toUTCString is called on incompatible receiver") + panic("Unreachable") +} + +func (r *Runtime) dateproto_toISOString(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + utc := d.time.In(time.UTC) + year := utc.Year() + if year >= -9999 && year <= 9999 { + return asciiString(utc.Format(isoDateTimeLayout)) + } + // extended year + return asciiString(fmt.Sprintf("%+06d-", year) + utc.Format(isoDateTimeLayout[5:])) + } else { + panic(r.newError(r.global.RangeError, "Invalid time value")) + } + } + r.typeErrorResult(true, "Method Date.prototype.toISOString is called on incompatible receiver") + panic("Unreachable") +} + +func (r *Runtime) dateproto_toJSON(call FunctionCall) Value { + obj := r.toObject(call.This) + tv := obj.self.toPrimitiveNumber() + if f, ok := tv.assertFloat(); ok { + if math.IsNaN(f) || math.IsInf(f, 0) { + return _null + } + } else if _, ok := tv.assertInt(); !ok { + return _null + } + + if toISO, ok := obj.self.getStr("toISOString").(*Object); ok { + if toISO, ok := toISO.self.assertCallable(); ok { + return toISO(FunctionCall{ + This: obj, + }) + } + } + + r.typeErrorResult(true, "toISOString is not a function") + panic("Unreachable") +} + +func (r *Runtime) dateproto_toDateString(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + return asciiString(d.time.Format(dateLayout)) + } else { + return stringInvalidDate + } + } + r.typeErrorResult(true, "Method Date.prototype.toDateString is called on incompatible receiver") + panic("Unreachable") +} + +func (r *Runtime) dateproto_toTimeString(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + return asciiString(d.time.Format(timeLayout)) + } else { + return stringInvalidDate + } + } + r.typeErrorResult(true, "Method Date.prototype.toTimeString is called on incompatible receiver") + panic("Unreachable") +} + +func (r *Runtime) dateproto_toLocaleString(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + return asciiString(d.time.Format(datetimeLayout_en_GB)) + } else { + return stringInvalidDate + } + } + r.typeErrorResult(true, "Method Date.prototype.toLocaleString is called on incompatible receiver") + panic("Unreachable") +} + +func (r *Runtime) dateproto_toLocaleDateString(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + return asciiString(d.time.Format(dateLayout_en_GB)) + } else { + return stringInvalidDate + } + } + r.typeErrorResult(true, "Method Date.prototype.toLocaleDateString is called on incompatible receiver") + panic("Unreachable") +} + +func (r *Runtime) dateproto_toLocaleTimeString(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + return asciiString(d.time.Format(timeLayout_en_GB)) + } else { + return stringInvalidDate + } + } + r.typeErrorResult(true, "Method Date.prototype.toLocaleTimeString is called on incompatible receiver") + panic("Unreachable") +} + +func (r *Runtime) dateproto_valueOf(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + return intToValue(d.time.Unix()*1000 + int64(d.time.Nanosecond()/1e6)) + } else { + return _NaN + } + } + r.typeErrorResult(true, "Method Date.prototype.valueOf is called on incompatible receiver") + return nil +} + +func (r *Runtime) dateproto_getTime(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + return intToValue(timeToMsec(d.time)) + } else { + return _NaN + } + } + r.typeErrorResult(true, "Method Date.prototype.getTime is called on incompatible receiver") + return nil +} + +func (r *Runtime) dateproto_getFullYear(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + return intToValue(int64(d.time.Year())) + } else { + return _NaN + } + } + r.typeErrorResult(true, "Method Date.prototype.getFullYear is called on incompatible receiver") + return nil +} + +func (r *Runtime) dateproto_getUTCFullYear(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + return intToValue(int64(d.time.In(time.UTC).Year())) + } else { + return _NaN + } + } + r.typeErrorResult(true, "Method Date.prototype.getUTCFullYear is called on incompatible receiver") + return nil +} + +func (r *Runtime) dateproto_getMonth(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + return intToValue(int64(d.time.Month()) - 1) + } else { + return _NaN + } + } + r.typeErrorResult(true, "Method Date.prototype.getMonth is called on incompatible receiver") + return nil +} + +func (r *Runtime) dateproto_getUTCMonth(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + return intToValue(int64(d.time.In(time.UTC).Month()) - 1) + } else { + return _NaN + } + } + r.typeErrorResult(true, "Method Date.prototype.getUTCMonth is called on incompatible receiver") + return nil +} + +func (r *Runtime) dateproto_getHours(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + return intToValue(int64(d.time.Hour())) + } else { + return _NaN + } + } + r.typeErrorResult(true, "Method Date.prototype.getHours is called on incompatible receiver") + return nil +} + +func (r *Runtime) dateproto_getUTCHours(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + return intToValue(int64(d.time.In(time.UTC).Hour())) + } else { + return _NaN + } + } + r.typeErrorResult(true, "Method Date.prototype.getUTCHours is called on incompatible receiver") + return nil +} + +func (r *Runtime) dateproto_getDate(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + return intToValue(int64(d.time.Day())) + } else { + return _NaN + } + } + r.typeErrorResult(true, "Method Date.prototype.getDate is called on incompatible receiver") + return nil +} + +func (r *Runtime) dateproto_getUTCDate(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + return intToValue(int64(d.time.In(time.UTC).Day())) + } else { + return _NaN + } + } + r.typeErrorResult(true, "Method Date.prototype.getUTCDate is called on incompatible receiver") + return nil +} + +func (r *Runtime) dateproto_getDay(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + return intToValue(int64(d.time.Weekday())) + } else { + return _NaN + } + } + r.typeErrorResult(true, "Method Date.prototype.getDay is called on incompatible receiver") + return nil +} + +func (r *Runtime) dateproto_getUTCDay(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + return intToValue(int64(d.time.In(time.UTC).Weekday())) + } else { + return _NaN + } + } + r.typeErrorResult(true, "Method Date.prototype.getUTCDay is called on incompatible receiver") + return nil +} + +func (r *Runtime) dateproto_getMinutes(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + return intToValue(int64(d.time.Minute())) + } else { + return _NaN + } + } + r.typeErrorResult(true, "Method Date.prototype.getMinutes is called on incompatible receiver") + return nil +} + +func (r *Runtime) dateproto_getUTCMinutes(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + return intToValue(int64(d.time.In(time.UTC).Minute())) + } else { + return _NaN + } + } + r.typeErrorResult(true, "Method Date.prototype.getUTCMinutes is called on incompatible receiver") + return nil +} + +func (r *Runtime) dateproto_getSeconds(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + return intToValue(int64(d.time.Second())) + } else { + return _NaN + } + } + r.typeErrorResult(true, "Method Date.prototype.getSeconds is called on incompatible receiver") + return nil +} + +func (r *Runtime) dateproto_getUTCSeconds(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + return intToValue(int64(d.time.In(time.UTC).Second())) + } else { + return _NaN + } + } + r.typeErrorResult(true, "Method Date.prototype.getUTCSeconds is called on incompatible receiver") + return nil +} + +func (r *Runtime) dateproto_getMilliseconds(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + return intToValue(int64(d.time.Nanosecond() / 1e6)) + } else { + return _NaN + } + } + r.typeErrorResult(true, "Method Date.prototype.getMilliseconds is called on incompatible receiver") + return nil +} + +func (r *Runtime) dateproto_getUTCMilliseconds(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + return intToValue(int64(d.time.In(time.UTC).Nanosecond() / 1e6)) + } else { + return _NaN + } + } + r.typeErrorResult(true, "Method Date.prototype.getUTCMilliseconds is called on incompatible receiver") + return nil +} + +func (r *Runtime) dateproto_getTimezoneOffset(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + _, offset := d.time.Zone() + return floatToValue(float64(-offset) / 60) + } else { + return _NaN + } + } + r.typeErrorResult(true, "Method Date.prototype.getTimezoneOffset is called on incompatible receiver") + return nil +} + +func (r *Runtime) dateproto_setTime(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + msec := call.Argument(0).ToInteger() + d.time = timeFromMsec(msec) + return intToValue(msec) + } + r.typeErrorResult(true, "Method Date.prototype.setTime is called on incompatible receiver") + panic("Unreachable") +} + +func (r *Runtime) dateproto_setMilliseconds(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + msec := call.Argument(0).ToInteger() + m := timeToMsec(d.time) - int64(d.time.Nanosecond())/1e6 + msec + d.time = timeFromMsec(m) + return intToValue(m) + } else { + return _NaN + } + } + r.typeErrorResult(true, "Method Date.prototype.setMilliseconds is called on incompatible receiver") + panic("Unreachable") +} + +func (r *Runtime) dateproto_setUTCMilliseconds(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + msec := call.Argument(0).ToInteger() + m := timeToMsec(d.time) - int64(d.time.Nanosecond())/1e6 + msec + d.time = timeFromMsec(m) + return intToValue(m) + } else { + return _NaN + } + } + r.typeErrorResult(true, "Method Date.prototype.setUTCMilliseconds is called on incompatible receiver") + panic("Unreachable") +} + +func (r *Runtime) dateproto_setSeconds(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + sec := int(call.Argument(0).ToInteger()) + var nsec int + if len(call.Arguments) > 1 { + nsec = int(call.Arguments[1].ToInteger() * 1e6) + } else { + nsec = d.time.Nanosecond() + } + d.time = time.Date(d.time.Year(), d.time.Month(), d.time.Day(), d.time.Hour(), d.time.Minute(), sec, nsec, time.Local) + return intToValue(timeToMsec(d.time)) + } else { + return _NaN + } + } + r.typeErrorResult(true, "Method Date.prototype.setSeconds is called on incompatible receiver") + panic("Unreachable") +} + +func (r *Runtime) dateproto_setUTCSeconds(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + sec := int(call.Argument(0).ToInteger()) + var nsec int + t := d.time.In(time.UTC) + if len(call.Arguments) > 1 { + nsec = int(call.Arguments[1].ToInteger() * 1e6) + } else { + nsec = t.Nanosecond() + } + d.time = time.Date(t.Year(), t.Month(), t.Day(), t.Hour(), t.Minute(), sec, nsec, time.UTC).In(time.Local) + return intToValue(timeToMsec(d.time)) + } else { + return _NaN + } + } + r.typeErrorResult(true, "Method Date.prototype.setUTCSeconds is called on incompatible receiver") + panic("Unreachable") +} + +func (r *Runtime) dateproto_setMinutes(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + min := int(call.Argument(0).ToInteger()) + var sec, nsec int + if len(call.Arguments) > 1 { + sec = int(call.Arguments[1].ToInteger()) + } else { + sec = d.time.Second() + } + if len(call.Arguments) > 2 { + nsec = int(call.Arguments[2].ToInteger() * 1e6) + } else { + nsec = d.time.Nanosecond() + } + d.time = time.Date(d.time.Year(), d.time.Month(), d.time.Day(), d.time.Hour(), min, sec, nsec, time.Local) + return intToValue(timeToMsec(d.time)) + } else { + return _NaN + } + } + r.typeErrorResult(true, "Method Date.prototype.setMinutes is called on incompatible receiver") + panic("Unreachable") +} + +func (r *Runtime) dateproto_setUTCMinutes(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + min := int(call.Argument(0).ToInteger()) + var sec, nsec int + t := d.time.In(time.UTC) + if len(call.Arguments) > 1 { + sec = int(call.Arguments[1].ToInteger()) + } else { + sec = t.Second() + } + if len(call.Arguments) > 2 { + nsec = int(call.Arguments[2].ToInteger() * 1e6) + } else { + nsec = t.Nanosecond() + } + d.time = time.Date(t.Year(), t.Month(), t.Day(), t.Hour(), min, sec, nsec, time.UTC).In(time.Local) + return intToValue(timeToMsec(d.time)) + } else { + return _NaN + } + } + r.typeErrorResult(true, "Method Date.prototype.setUTCMinutes is called on incompatible receiver") + panic("Unreachable") +} + +func (r *Runtime) dateproto_setHours(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + hour := int(call.Argument(0).ToInteger()) + var min, sec, nsec int + if len(call.Arguments) > 1 { + min = int(call.Arguments[1].ToInteger()) + } else { + min = d.time.Minute() + } + if len(call.Arguments) > 2 { + sec = int(call.Arguments[2].ToInteger()) + } else { + sec = d.time.Second() + } + if len(call.Arguments) > 3 { + nsec = int(call.Arguments[3].ToInteger() * 1e6) + } else { + nsec = d.time.Nanosecond() + } + d.time = time.Date(d.time.Year(), d.time.Month(), d.time.Day(), hour, min, sec, nsec, time.Local) + return intToValue(timeToMsec(d.time)) + } else { + return _NaN + } + } + r.typeErrorResult(true, "Method Date.prototype.setHours is called on incompatible receiver") + panic("Unreachable") +} + +func (r *Runtime) dateproto_setUTCHours(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + hour := int(call.Argument(0).ToInteger()) + var min, sec, nsec int + t := d.time.In(time.UTC) + if len(call.Arguments) > 1 { + min = int(call.Arguments[1].ToInteger()) + } else { + min = t.Minute() + } + if len(call.Arguments) > 2 { + sec = int(call.Arguments[2].ToInteger()) + } else { + sec = t.Second() + } + if len(call.Arguments) > 3 { + nsec = int(call.Arguments[3].ToInteger() * 1e6) + } else { + nsec = t.Nanosecond() + } + d.time = time.Date(d.time.Year(), d.time.Month(), d.time.Day(), hour, min, sec, nsec, time.UTC).In(time.Local) + return intToValue(timeToMsec(d.time)) + } else { + return _NaN + } + } + r.typeErrorResult(true, "Method Date.prototype.setUTCHours is called on incompatible receiver") + panic("Unreachable") +} + +func (r *Runtime) dateproto_setDate(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + d.time = time.Date(d.time.Year(), d.time.Month(), int(call.Argument(0).ToInteger()), d.time.Hour(), d.time.Minute(), d.time.Second(), d.time.Nanosecond(), time.Local) + return intToValue(timeToMsec(d.time)) + } else { + return _NaN + } + } + r.typeErrorResult(true, "Method Date.prototype.setDate is called on incompatible receiver") + panic("Unreachable") +} + +func (r *Runtime) dateproto_setUTCDate(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + t := d.time.In(time.UTC) + d.time = time.Date(t.Year(), t.Month(), int(call.Argument(0).ToInteger()), t.Hour(), t.Minute(), t.Second(), t.Nanosecond(), time.UTC).In(time.Local) + return intToValue(timeToMsec(d.time)) + } else { + return _NaN + } + } + r.typeErrorResult(true, "Method Date.prototype.setUTCDate is called on incompatible receiver") + panic("Unreachable") +} + +func (r *Runtime) dateproto_setMonth(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + month := time.Month(int(call.Argument(0).ToInteger()) + 1) + var day int + if len(call.Arguments) > 1 { + day = int(call.Arguments[1].ToInteger()) + } else { + day = d.time.Day() + } + d.time = time.Date(d.time.Year(), month, day, d.time.Hour(), d.time.Minute(), d.time.Second(), d.time.Nanosecond(), time.Local) + return intToValue(timeToMsec(d.time)) + } else { + return _NaN + } + } + r.typeErrorResult(true, "Method Date.prototype.setMonth is called on incompatible receiver") + panic("Unreachable") +} + +func (r *Runtime) dateproto_setUTCMonth(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if d.isSet { + month := time.Month(int(call.Argument(0).ToInteger()) + 1) + var day int + t := d.time.In(time.UTC) + if len(call.Arguments) > 1 { + day = int(call.Arguments[1].ToInteger()) + } else { + day = t.Day() + } + d.time = time.Date(t.Year(), month, day, t.Hour(), t.Minute(), t.Second(), t.Nanosecond(), time.UTC).In(time.Local) + return intToValue(timeToMsec(d.time)) + } else { + return _NaN + } + } + r.typeErrorResult(true, "Method Date.prototype.setUTCMonth is called on incompatible receiver") + panic("Unreachable") +} + +func (r *Runtime) dateproto_setFullYear(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if !d.isSet { + d.time = time.Unix(0, 0) + } + year := int(call.Argument(0).ToInteger()) + var month time.Month + var day int + if len(call.Arguments) > 1 { + month = time.Month(call.Arguments[1].ToInteger() + 1) + } else { + month = d.time.Month() + } + if len(call.Arguments) > 2 { + day = int(call.Arguments[2].ToInteger()) + } else { + day = d.time.Day() + } + d.time = time.Date(year, month, day, d.time.Hour(), d.time.Minute(), d.time.Second(), d.time.Nanosecond(), time.Local) + return intToValue(timeToMsec(d.time)) + } + r.typeErrorResult(true, "Method Date.prototype.setFullYear is called on incompatible receiver") + panic("Unreachable") +} + +func (r *Runtime) dateproto_setUTCFullYear(call FunctionCall) Value { + obj := r.toObject(call.This) + if d, ok := obj.self.(*dateObject); ok { + if !d.isSet { + d.time = time.Unix(0, 0) + } + year := int(call.Argument(0).ToInteger()) + var month time.Month + var day int + t := d.time.In(time.UTC) + if len(call.Arguments) > 1 { + month = time.Month(call.Arguments[1].ToInteger() + 1) + } else { + month = t.Month() + } + if len(call.Arguments) > 2 { + day = int(call.Arguments[2].ToInteger()) + } else { + day = t.Day() + } + d.time = time.Date(year, month, day, t.Hour(), t.Minute(), t.Second(), t.Nanosecond(), time.UTC).In(time.Local) + return intToValue(timeToMsec(d.time)) + } + r.typeErrorResult(true, "Method Date.prototype.setUTCFullYear is called on incompatible receiver") + panic("Unreachable") +} + +func (r *Runtime) createDateProto(val *Object) objectImpl { + o := &baseObject{ + class: classObject, + val: val, + extensible: true, + prototype: r.global.ObjectPrototype, + } + o.init() + + o._putProp("constructor", r.global.Date, true, false, true) + o._putProp("toString", r.newNativeFunc(r.dateproto_toString, nil, "toString", nil, 0), true, false, true) + o._putProp("toDateString", r.newNativeFunc(r.dateproto_toDateString, nil, "toDateString", nil, 0), true, false, true) + o._putProp("toTimeString", r.newNativeFunc(r.dateproto_toTimeString, nil, "toTimeString", nil, 0), true, false, true) + o._putProp("toLocaleString", r.newNativeFunc(r.dateproto_toLocaleString, nil, "toLocaleString", nil, 0), true, false, true) + o._putProp("toLocaleDateString", r.newNativeFunc(r.dateproto_toLocaleDateString, nil, "toLocaleDateString", nil, 0), true, false, true) + o._putProp("toLocaleTimeString", r.newNativeFunc(r.dateproto_toLocaleTimeString, nil, "toLocaleTimeString", nil, 0), true, false, true) + o._putProp("valueOf", r.newNativeFunc(r.dateproto_valueOf, nil, "valueOf", nil, 0), true, false, true) + o._putProp("getTime", r.newNativeFunc(r.dateproto_getTime, nil, "getTime", nil, 0), true, false, true) + o._putProp("getFullYear", r.newNativeFunc(r.dateproto_getFullYear, nil, "getFullYear", nil, 0), true, false, true) + o._putProp("getUTCFullYear", r.newNativeFunc(r.dateproto_getUTCFullYear, nil, "getUTCFullYear", nil, 0), true, false, true) + o._putProp("getMonth", r.newNativeFunc(r.dateproto_getMonth, nil, "getMonth", nil, 0), true, false, true) + o._putProp("getUTCMonth", r.newNativeFunc(r.dateproto_getUTCMonth, nil, "getUTCMonth", nil, 0), true, false, true) + o._putProp("getDate", r.newNativeFunc(r.dateproto_getDate, nil, "getDate", nil, 0), true, false, true) + o._putProp("getUTCDate", r.newNativeFunc(r.dateproto_getUTCDate, nil, "getUTCDate", nil, 0), true, false, true) + o._putProp("getDay", r.newNativeFunc(r.dateproto_getDay, nil, "getDay", nil, 0), true, false, true) + o._putProp("getUTCDay", r.newNativeFunc(r.dateproto_getUTCDay, nil, "getUTCDay", nil, 0), true, false, true) + o._putProp("getHours", r.newNativeFunc(r.dateproto_getHours, nil, "getHours", nil, 0), true, false, true) + o._putProp("getUTCHours", r.newNativeFunc(r.dateproto_getUTCHours, nil, "getUTCHours", nil, 0), true, false, true) + o._putProp("getMinutes", r.newNativeFunc(r.dateproto_getMinutes, nil, "getMinutes", nil, 0), true, false, true) + o._putProp("getUTCMinutes", r.newNativeFunc(r.dateproto_getUTCMinutes, nil, "getUTCMinutes", nil, 0), true, false, true) + o._putProp("getSeconds", r.newNativeFunc(r.dateproto_getSeconds, nil, "getSeconds", nil, 0), true, false, true) + o._putProp("getUTCSeconds", r.newNativeFunc(r.dateproto_getUTCSeconds, nil, "getUTCSeconds", nil, 0), true, false, true) + o._putProp("getMilliseconds", r.newNativeFunc(r.dateproto_getMilliseconds, nil, "getMilliseconds", nil, 0), true, false, true) + o._putProp("getUTCMilliseconds", r.newNativeFunc(r.dateproto_getUTCMilliseconds, nil, "getUTCMilliseconds", nil, 0), true, false, true) + o._putProp("getTimezoneOffset", r.newNativeFunc(r.dateproto_getTimezoneOffset, nil, "getTimezoneOffset", nil, 0), true, false, true) + o._putProp("setTime", r.newNativeFunc(r.dateproto_setTime, nil, "setTime", nil, 1), true, false, true) + o._putProp("setMilliseconds", r.newNativeFunc(r.dateproto_setMilliseconds, nil, "setMilliseconds", nil, 1), true, false, true) + o._putProp("setUTCMilliseconds", r.newNativeFunc(r.dateproto_setUTCMilliseconds, nil, "setUTCMilliseconds", nil, 1), true, false, true) + o._putProp("setSeconds", r.newNativeFunc(r.dateproto_setSeconds, nil, "setSeconds", nil, 2), true, false, true) + o._putProp("setUTCSeconds", r.newNativeFunc(r.dateproto_setUTCSeconds, nil, "setUTCSeconds", nil, 2), true, false, true) + o._putProp("setMinutes", r.newNativeFunc(r.dateproto_setMinutes, nil, "setMinutes", nil, 3), true, false, true) + o._putProp("setUTCMinutes", r.newNativeFunc(r.dateproto_setUTCMinutes, nil, "setUTCMinutes", nil, 3), true, false, true) + o._putProp("setHours", r.newNativeFunc(r.dateproto_setHours, nil, "setHours", nil, 4), true, false, true) + o._putProp("setUTCHours", r.newNativeFunc(r.dateproto_setUTCHours, nil, "setUTCHours", nil, 4), true, false, true) + o._putProp("setDate", r.newNativeFunc(r.dateproto_setDate, nil, "setDate", nil, 1), true, false, true) + o._putProp("setUTCDate", r.newNativeFunc(r.dateproto_setUTCDate, nil, "setUTCDate", nil, 1), true, false, true) + o._putProp("setMonth", r.newNativeFunc(r.dateproto_setMonth, nil, "setMonth", nil, 2), true, false, true) + o._putProp("setUTCMonth", r.newNativeFunc(r.dateproto_setUTCMonth, nil, "setUTCMonth", nil, 2), true, false, true) + o._putProp("setFullYear", r.newNativeFunc(r.dateproto_setFullYear, nil, "setFullYear", nil, 3), true, false, true) + o._putProp("setUTCFullYear", r.newNativeFunc(r.dateproto_setUTCFullYear, nil, "setUTCFullYear", nil, 3), true, false, true) + o._putProp("toUTCString", r.newNativeFunc(r.dateproto_toUTCString, nil, "toUTCString", nil, 0), true, false, true) + o._putProp("toISOString", r.newNativeFunc(r.dateproto_toISOString, nil, "toISOString", nil, 0), true, false, true) + o._putProp("toJSON", r.newNativeFunc(r.dateproto_toJSON, nil, "toJSON", nil, 1), true, false, true) + + return o +} + +func (r *Runtime) createDate(val *Object) objectImpl { + o := r.newNativeFuncObj(val, r.builtin_date, r.builtin_newDate, "Date", r.global.DatePrototype, 7) + + o._putProp("parse", r.newNativeFunc(r.date_parse, nil, "parse", nil, 1), true, false, true) + o._putProp("UTC", r.newNativeFunc(r.date_UTC, nil, "UTC", nil, 7), true, false, true) + o._putProp("now", r.newNativeFunc(r.date_now, nil, "now", nil, 0), true, false, true) + + return o +} + +func (r *Runtime) newLazyObject(create func(*Object) objectImpl) *Object { + val := &Object{runtime: r} + o := &lazyObject{ + val: val, + create: create, + } + val.self = o + return val +} + +func (r *Runtime) initDate() { + //r.global.DatePrototype = r.newObject() + //o := r.global.DatePrototype.self + r.global.DatePrototype = r.newLazyObject(r.createDateProto) + + //r.global.Date = r.newNativeFunc(r.builtin_date, r.builtin_newDate, "Date", r.global.DatePrototype, 7) + //o := r.global.Date.self + r.global.Date = r.newLazyObject(r.createDate) + + r.addToGlobal("Date", r.global.Date) +} diff --git a/vendor/github.com/dop251/goja/builtin_error.go b/vendor/github.com/dop251/goja/builtin_error.go new file mode 100644 index 00000000000..5e95b426e63 --- /dev/null +++ b/vendor/github.com/dop251/goja/builtin_error.go @@ -0,0 +1,62 @@ +package goja + +func (r *Runtime) initErrors() { + r.global.ErrorPrototype = r.NewObject() + o := r.global.ErrorPrototype.self + o._putProp("message", stringEmpty, true, false, true) + o._putProp("name", stringError, true, false, true) + o._putProp("toString", r.newNativeFunc(r.error_toString, nil, "toString", nil, 0), true, false, true) + + r.global.Error = r.newNativeFuncConstruct(r.builtin_Error, "Error", r.global.ErrorPrototype, 1) + o = r.global.Error.self + r.addToGlobal("Error", r.global.Error) + + r.global.TypeErrorPrototype = r.builtin_new(r.global.Error, []Value{}) + o = r.global.TypeErrorPrototype.self + o._putProp("name", stringTypeError, true, false, true) + + r.global.TypeError = r.newNativeFuncConstructProto(r.builtin_Error, "TypeError", r.global.TypeErrorPrototype, r.global.Error, 1) + r.addToGlobal("TypeError", r.global.TypeError) + + r.global.ReferenceErrorPrototype = r.builtin_new(r.global.Error, []Value{}) + o = r.global.ReferenceErrorPrototype.self + o._putProp("name", stringReferenceError, true, false, true) + + r.global.ReferenceError = r.newNativeFuncConstructProto(r.builtin_Error, "ReferenceError", r.global.ReferenceErrorPrototype, r.global.Error, 1) + r.addToGlobal("ReferenceError", r.global.ReferenceError) + + r.global.SyntaxErrorPrototype = r.builtin_new(r.global.Error, []Value{}) + o = r.global.SyntaxErrorPrototype.self + o._putProp("name", stringSyntaxError, true, false, true) + + r.global.SyntaxError = r.newNativeFuncConstructProto(r.builtin_Error, "SyntaxError", r.global.SyntaxErrorPrototype, r.global.Error, 1) + r.addToGlobal("SyntaxError", r.global.SyntaxError) + + r.global.RangeErrorPrototype = r.builtin_new(r.global.Error, []Value{}) + o = r.global.RangeErrorPrototype.self + o._putProp("name", stringRangeError, true, false, true) + + r.global.RangeError = r.newNativeFuncConstructProto(r.builtin_Error, "RangeError", r.global.RangeErrorPrototype, r.global.Error, 1) + r.addToGlobal("RangeError", r.global.RangeError) + + r.global.EvalErrorPrototype = r.builtin_new(r.global.Error, []Value{}) + o = r.global.EvalErrorPrototype.self + o._putProp("name", stringEvalError, true, false, true) + + r.global.EvalError = r.newNativeFuncConstructProto(r.builtin_Error, "EvalError", r.global.EvalErrorPrototype, r.global.Error, 1) + r.addToGlobal("EvalError", r.global.EvalError) + + r.global.URIErrorPrototype = r.builtin_new(r.global.Error, []Value{}) + o = r.global.URIErrorPrototype.self + o._putProp("name", stringURIError, true, false, true) + + r.global.URIError = r.newNativeFuncConstructProto(r.builtin_Error, "URIError", r.global.URIErrorPrototype, r.global.Error, 1) + r.addToGlobal("URIError", r.global.URIError) + + r.global.GoErrorPrototype = r.builtin_new(r.global.Error, []Value{}) + o = r.global.GoErrorPrototype.self + o._putProp("name", stringGoError, true, false, true) + + r.global.GoError = r.newNativeFuncConstructProto(r.builtin_Error, "GoError", r.global.GoErrorPrototype, r.global.Error, 1) + r.addToGlobal("GoError", r.global.GoError) +} diff --git a/vendor/github.com/dop251/goja/builtin_function.go b/vendor/github.com/dop251/goja/builtin_function.go new file mode 100644 index 00000000000..075cd3122bf --- /dev/null +++ b/vendor/github.com/dop251/goja/builtin_function.go @@ -0,0 +1,165 @@ +package goja + +import ( + "fmt" +) + +func (r *Runtime) builtin_Function(args []Value, proto *Object) *Object { + src := "(function anonymous(" + if len(args) > 1 { + for _, arg := range args[:len(args)-1] { + src += arg.String() + "," + } + src = src[:len(src)-1] + } + body := "" + if len(args) > 0 { + body = args[len(args)-1].String() + } + src += "){" + body + "})" + + return r.toObject(r.eval(src, false, false, _undefined)) +} + +func (r *Runtime) functionproto_toString(call FunctionCall) Value { + obj := r.toObject(call.This) +repeat: + switch f := obj.self.(type) { + case *funcObject: + return newStringValue(f.src) + case *nativeFuncObject: + return newStringValue(fmt.Sprintf("function %s() { [native code] }", f.nameProp.get(call.This).ToString())) + case *boundFuncObject: + return newStringValue(fmt.Sprintf("function %s() { [native code] }", f.nameProp.get(call.This).ToString())) + case *lazyObject: + obj.self = f.create(obj) + goto repeat + } + + r.typeErrorResult(true, "Object is not a function") + return nil +} + +func (r *Runtime) toValueArray(a Value) []Value { + obj := r.toObject(a) + l := toUInt32(obj.self.getStr("length")) + ret := make([]Value, l) + for i := uint32(0); i < l; i++ { + ret[i] = obj.self.get(valueInt(i)) + } + return ret +} + +func (r *Runtime) functionproto_apply(call FunctionCall) Value { + f := r.toCallable(call.This) + var args []Value + if len(call.Arguments) >= 2 { + args = r.toValueArray(call.Arguments[1]) + } + return f(FunctionCall{ + This: call.Argument(0), + Arguments: args, + }) +} + +func (r *Runtime) functionproto_call(call FunctionCall) Value { + f := r.toCallable(call.This) + var args []Value + if len(call.Arguments) > 0 { + args = call.Arguments[1:] + } + return f(FunctionCall{ + This: call.Argument(0), + Arguments: args, + }) +} + +func (r *Runtime) boundCallable(target func(FunctionCall) Value, boundArgs []Value) func(FunctionCall) Value { + var this Value + var args []Value + if len(boundArgs) > 0 { + this = boundArgs[0] + args = make([]Value, len(boundArgs)-1) + copy(args, boundArgs[1:]) + } else { + this = _undefined + } + return func(call FunctionCall) Value { + a := append(args, call.Arguments...) + return target(FunctionCall{ + This: this, + Arguments: a, + }) + } +} + +func (r *Runtime) boundConstruct(target func([]Value) *Object, boundArgs []Value) func([]Value) *Object { + if target == nil { + return nil + } + var args []Value + if len(boundArgs) > 1 { + args = make([]Value, len(boundArgs)-1) + copy(args, boundArgs[1:]) + } + return func(fargs []Value) *Object { + a := append(args, fargs...) + copy(a, args) + return target(a) + } +} + +func (r *Runtime) functionproto_bind(call FunctionCall) Value { + obj := r.toObject(call.This) + f := obj.self + var fcall func(FunctionCall) Value + var construct func([]Value) *Object +repeat: + switch ff := f.(type) { + case *funcObject: + fcall = ff.Call + construct = ff.construct + case *nativeFuncObject: + fcall = ff.f + construct = ff.construct + case *boundFuncObject: + f = &ff.nativeFuncObject + goto repeat + case *lazyObject: + f = ff.create(obj) + goto repeat + default: + r.typeErrorResult(true, "Value is not callable: %s", obj.ToString()) + } + + l := int(toUInt32(obj.self.getStr("length"))) + l -= len(call.Arguments) - 1 + if l < 0 { + l = 0 + } + + v := &Object{runtime: r} + + ff := r.newNativeFuncObj(v, r.boundCallable(fcall, call.Arguments), r.boundConstruct(construct, call.Arguments), "", nil, l) + v.self = &boundFuncObject{ + nativeFuncObject: *ff, + } + + //ret := r.newNativeFunc(r.boundCallable(f, call.Arguments), nil, "", nil, l) + //o := ret.self + //o.putStr("caller", r.global.throwerProperty, false) + //o.putStr("arguments", r.global.throwerProperty, false) + return v +} + +func (r *Runtime) initFunction() { + o := r.global.FunctionPrototype.self + o.(*nativeFuncObject).prototype = r.global.ObjectPrototype + o._putProp("toString", r.newNativeFunc(r.functionproto_toString, nil, "toString", nil, 0), true, false, true) + o._putProp("apply", r.newNativeFunc(r.functionproto_apply, nil, "apply", nil, 2), true, false, true) + o._putProp("call", r.newNativeFunc(r.functionproto_call, nil, "call", nil, 1), true, false, true) + o._putProp("bind", r.newNativeFunc(r.functionproto_bind, nil, "bind", nil, 1), true, false, true) + + r.global.Function = r.newNativeFuncConstruct(r.builtin_Function, "Function", r.global.FunctionPrototype, 1) + r.addToGlobal("Function", r.global.Function) +} diff --git a/vendor/github.com/dop251/goja/builtin_global.go b/vendor/github.com/dop251/goja/builtin_global.go new file mode 100644 index 00000000000..88cac2b3a2c --- /dev/null +++ b/vendor/github.com/dop251/goja/builtin_global.go @@ -0,0 +1,422 @@ +package goja + +import ( + "errors" + "io" + "math" + "regexp" + "strconv" + "unicode/utf16" + "unicode/utf8" +) + +var ( + parseFloatRegexp = regexp.MustCompile(`^([+-]?(?:Infinity|[0-9]*\.?[0-9]*(?:[eE][+-]?[0-9]+)?))`) +) + +func (r *Runtime) builtin_isNaN(call FunctionCall) Value { + if math.IsNaN(call.Argument(0).ToFloat()) { + return valueTrue + } else { + return valueFalse + } +} + +func (r *Runtime) builtin_parseInt(call FunctionCall) Value { + str := call.Argument(0).ToString().toTrimmedUTF8() + radix := int(toInt32(call.Argument(1))) + v, _ := parseInt(str, radix) + return v +} + +func (r *Runtime) builtin_parseFloat(call FunctionCall) Value { + m := parseFloatRegexp.FindStringSubmatch(call.Argument(0).ToString().toTrimmedUTF8()) + if len(m) == 2 { + if s := m[1]; s != "" && s != "+" && s != "-" { + switch s { + case "+", "-": + case "Infinity", "+Infinity": + return _positiveInf + case "-Infinity": + return _negativeInf + default: + f, err := strconv.ParseFloat(s, 64) + if err == nil || isRangeErr(err) { + return floatToValue(f) + } + } + } + } + return _NaN +} + +func (r *Runtime) builtin_isFinite(call FunctionCall) Value { + f := call.Argument(0).ToFloat() + if math.IsNaN(f) || math.IsInf(f, 0) { + return valueFalse + } + return valueTrue +} + +func (r *Runtime) _encode(uriString valueString, unescaped *[256]bool) valueString { + reader := uriString.reader(0) + utf8Buf := make([]byte, utf8.UTFMax) + needed := false + l := 0 + for { + rn, _, err := reader.ReadRune() + if err != nil { + if err != io.EOF { + panic(r.newError(r.global.URIError, "Malformed URI")) + } + break + } + + if rn >= utf8.RuneSelf { + needed = true + l += utf8.EncodeRune(utf8Buf, rn) * 3 + } else if !unescaped[rn] { + needed = true + l += 3 + } else { + l++ + } + } + + if !needed { + return uriString + } + + buf := make([]byte, l) + i := 0 + reader = uriString.reader(0) + for { + rn, _, err := reader.ReadRune() + if err != nil { + break + } + + if rn >= utf8.RuneSelf { + n := utf8.EncodeRune(utf8Buf, rn) + for _, b := range utf8Buf[:n] { + buf[i] = '%' + buf[i+1] = "0123456789ABCDEF"[b>>4] + buf[i+2] = "0123456789ABCDEF"[b&15] + i += 3 + } + } else if !unescaped[rn] { + buf[i] = '%' + buf[i+1] = "0123456789ABCDEF"[rn>>4] + buf[i+2] = "0123456789ABCDEF"[rn&15] + i += 3 + } else { + buf[i] = byte(rn) + i++ + } + } + return asciiString(string(buf)) +} + +func (r *Runtime) _decode(sv valueString, reservedSet *[256]bool) valueString { + s := sv.String() + hexCount := 0 + for i := 0; i < len(s); { + switch s[i] { + case '%': + if i+2 >= len(s) || !ishex(s[i+1]) || !ishex(s[i+2]) { + panic(r.newError(r.global.URIError, "Malformed URI")) + } + c := unhex(s[i+1])<<4 | unhex(s[i+2]) + if !reservedSet[c] { + hexCount++ + } + i += 3 + default: + i++ + } + } + + if hexCount == 0 { + return sv + } + + t := make([]byte, len(s)-hexCount*2) + j := 0 + isUnicode := false + for i := 0; i < len(s); { + ch := s[i] + switch ch { + case '%': + c := unhex(s[i+1])<<4 | unhex(s[i+2]) + if reservedSet[c] { + t[j] = s[i] + t[j+1] = s[i+1] + t[j+2] = s[i+2] + j += 3 + } else { + t[j] = c + if c >= utf8.RuneSelf { + isUnicode = true + } + j++ + } + i += 3 + default: + if ch >= utf8.RuneSelf { + isUnicode = true + } + t[j] = ch + j++ + i++ + } + } + + if !isUnicode { + return asciiString(t) + } + + us := make([]rune, 0, len(s)) + for len(t) > 0 { + rn, size := utf8.DecodeRune(t) + if rn == utf8.RuneError { + if size != 3 || t[0] != 0xef || t[1] != 0xbf || t[2] != 0xbd { + panic(r.newError(r.global.URIError, "Malformed URI")) + } + } + us = append(us, rn) + t = t[size:] + } + return unicodeString(utf16.Encode(us)) +} + +func ishex(c byte) bool { + switch { + case '0' <= c && c <= '9': + return true + case 'a' <= c && c <= 'f': + return true + case 'A' <= c && c <= 'F': + return true + } + return false +} + +func unhex(c byte) byte { + switch { + case '0' <= c && c <= '9': + return c - '0' + case 'a' <= c && c <= 'f': + return c - 'a' + 10 + case 'A' <= c && c <= 'F': + return c - 'A' + 10 + } + return 0 +} + +func (r *Runtime) builtin_decodeURI(call FunctionCall) Value { + uriString := call.Argument(0).ToString() + return r._decode(uriString, &uriReservedHash) +} + +func (r *Runtime) builtin_decodeURIComponent(call FunctionCall) Value { + uriString := call.Argument(0).ToString() + return r._decode(uriString, &emptyEscapeSet) +} + +func (r *Runtime) builtin_encodeURI(call FunctionCall) Value { + uriString := call.Argument(0).ToString() + return r._encode(uriString, &uriReservedUnescapedHash) +} + +func (r *Runtime) builtin_encodeURIComponent(call FunctionCall) Value { + uriString := call.Argument(0).ToString() + return r._encode(uriString, &uriUnescaped) +} + +func (r *Runtime) initGlobalObject() { + o := r.globalObject.self + o._putProp("NaN", _NaN, false, false, false) + o._putProp("undefined", _undefined, false, false, false) + o._putProp("Infinity", _positiveInf, false, false, false) + + o._putProp("isNaN", r.newNativeFunc(r.builtin_isNaN, nil, "isNaN", nil, 1), true, false, true) + o._putProp("parseInt", r.newNativeFunc(r.builtin_parseInt, nil, "parseInt", nil, 2), true, false, true) + o._putProp("parseFloat", r.newNativeFunc(r.builtin_parseFloat, nil, "parseFloat", nil, 1), true, false, true) + o._putProp("isFinite", r.newNativeFunc(r.builtin_isFinite, nil, "isFinite", nil, 1), true, false, true) + o._putProp("decodeURI", r.newNativeFunc(r.builtin_decodeURI, nil, "decodeURI", nil, 1), true, false, true) + o._putProp("decodeURIComponent", r.newNativeFunc(r.builtin_decodeURIComponent, nil, "decodeURIComponent", nil, 1), true, false, true) + o._putProp("encodeURI", r.newNativeFunc(r.builtin_encodeURI, nil, "encodeURI", nil, 1), true, false, true) + o._putProp("encodeURIComponent", r.newNativeFunc(r.builtin_encodeURIComponent, nil, "encodeURIComponent", nil, 1), true, false, true) + + o._putProp("toString", r.newNativeFunc(func(FunctionCall) Value { + return stringGlobalObject + }, nil, "toString", nil, 0), false, false, false) + + // TODO: Annex B + +} + +func digitVal(d byte) int { + var v byte + switch { + case '0' <= d && d <= '9': + v = d - '0' + case 'a' <= d && d <= 'z': + v = d - 'a' + 10 + case 'A' <= d && d <= 'Z': + v = d - 'A' + 10 + default: + return 36 + } + return int(v) +} + +// ECMAScript compatible version of strconv.ParseInt +func parseInt(s string, base int) (Value, error) { + var n int64 + var err error + var cutoff, maxVal int64 + var sign bool + i := 0 + + if len(s) < 1 { + err = strconv.ErrSyntax + goto Error + } + + switch s[0] { + case '-': + sign = true + s = s[1:] + case '+': + s = s[1:] + } + + if len(s) < 1 { + err = strconv.ErrSyntax + goto Error + } + + // Look for hex prefix. + if s[0] == '0' && len(s) > 1 && (s[1] == 'x' || s[1] == 'X') { + if base == 0 || base == 16 { + base = 16 + s = s[2:] + } + } + + switch { + case len(s) < 1: + err = strconv.ErrSyntax + goto Error + + case 2 <= base && base <= 36: + // valid base; nothing to do + + case base == 0: + // Look for hex prefix. + switch { + case s[0] == '0' && len(s) > 1 && (s[1] == 'x' || s[1] == 'X'): + if len(s) < 3 { + err = strconv.ErrSyntax + goto Error + } + base = 16 + s = s[2:] + default: + base = 10 + } + + default: + err = errors.New("invalid base " + strconv.Itoa(base)) + goto Error + } + + // Cutoff is the smallest number such that cutoff*base > maxInt64. + // Use compile-time constants for common cases. + switch base { + case 10: + cutoff = math.MaxInt64/10 + 1 + case 16: + cutoff = math.MaxInt64/16 + 1 + default: + cutoff = math.MaxInt64/int64(base) + 1 + } + + maxVal = math.MaxInt64 + for ; i < len(s); i++ { + if n >= cutoff { + // n*base overflows + return parseLargeInt(float64(n), s[i:], base, sign) + } + v := digitVal(s[i]) + if v >= base { + break + } + n *= int64(base) + + n1 := n + int64(v) + if n1 < n || n1 > maxVal { + // n+v overflows + return parseLargeInt(float64(n)+float64(v), s[i+1:], base, sign) + } + n = n1 + } + + if i == 0 { + err = strconv.ErrSyntax + goto Error + } + + if sign { + n = -n + } + return intToValue(n), nil + +Error: + return _NaN, err +} + +func parseLargeInt(n float64, s string, base int, sign bool) (Value, error) { + i := 0 + b := float64(base) + for ; i < len(s); i++ { + v := digitVal(s[i]) + if v >= base { + break + } + n = n*b + float64(v) + } + if sign { + n = -n + } + // We know it can't be represented as int, so use valueFloat instead of floatToValue + return valueFloat(n), nil +} + +var ( + uriUnescaped [256]bool + uriReserved [256]bool + uriReservedHash [256]bool + uriReservedUnescapedHash [256]bool + emptyEscapeSet [256]bool +) + +func init() { + for _, c := range "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.!~*'()" { + uriUnescaped[c] = true + } + + for _, c := range ";/?:@&=+$," { + uriReserved[c] = true + } + + for i := 0; i < 256; i++ { + if uriUnescaped[i] || uriReserved[i] { + uriReservedUnescapedHash[i] = true + } + uriReservedHash[i] = uriReserved[i] + } + uriReservedUnescapedHash['#'] = true + uriReservedHash['#'] = true +} diff --git a/vendor/github.com/dop251/goja/builtin_json.go b/vendor/github.com/dop251/goja/builtin_json.go new file mode 100644 index 00000000000..41e65f6da06 --- /dev/null +++ b/vendor/github.com/dop251/goja/builtin_json.go @@ -0,0 +1,520 @@ +package goja + +import ( + "bytes" + "encoding/json" + "fmt" + "io" + "math" + "strings" +) + +var hex = "0123456789abcdef" + +func (r *Runtime) builtinJSON_parse(call FunctionCall) Value { + d := json.NewDecoder(bytes.NewBufferString(call.Argument(0).String())) + + value, err := r.builtinJSON_decodeValue(d) + if err != nil { + panic(r.newError(r.global.SyntaxError, err.Error())) + } + + if tok, err := d.Token(); err != io.EOF { + panic(r.newError(r.global.SyntaxError, "Unexpected token at the end: %v", tok)) + } + + var reviver func(FunctionCall) Value + + if arg1 := call.Argument(1); arg1 != _undefined { + reviver, _ = arg1.ToObject(r).self.assertCallable() + } + + if reviver != nil { + root := r.NewObject() + root.self.putStr("", value, false) + return r.builtinJSON_reviveWalk(reviver, root, stringEmpty) + } + + return value +} + +func (r *Runtime) builtinJSON_decodeToken(d *json.Decoder, tok json.Token) (Value, error) { + switch tok := tok.(type) { + case json.Delim: + switch tok { + case '{': + return r.builtinJSON_decodeObject(d) + case '[': + return r.builtinJSON_decodeArray(d) + } + case nil: + return _null, nil + case string: + return newStringValue(tok), nil + case float64: + return floatToValue(tok), nil + case bool: + if tok { + return valueTrue, nil + } + return valueFalse, nil + } + return nil, fmt.Errorf("Unexpected token (%T): %v", tok, tok) +} + +func (r *Runtime) builtinJSON_decodeValue(d *json.Decoder) (Value, error) { + tok, err := d.Token() + if err != nil { + return nil, err + } + return r.builtinJSON_decodeToken(d, tok) +} + +func (r *Runtime) builtinJSON_decodeObject(d *json.Decoder) (*Object, error) { + object := r.NewObject() + for { + key, end, err := r.builtinJSON_decodeObjectKey(d) + if err != nil { + return nil, err + } + if end { + break + } + value, err := r.builtinJSON_decodeValue(d) + if err != nil { + return nil, err + } + + if key == "__proto__" { + descr := propertyDescr{ + Value: value, + Writable: FLAG_TRUE, + Enumerable: FLAG_TRUE, + Configurable: FLAG_TRUE, + } + object.self.defineOwnProperty(string__proto__, descr, false) + } else { + object.self.putStr(key, value, false) + } + } + return object, nil +} + +func (r *Runtime) builtinJSON_decodeObjectKey(d *json.Decoder) (string, bool, error) { + tok, err := d.Token() + if err != nil { + return "", false, err + } + switch tok := tok.(type) { + case json.Delim: + if tok == '}' { + return "", true, nil + } + case string: + return tok, false, nil + } + + return "", false, fmt.Errorf("Unexpected token (%T): %v", tok, tok) +} + +func (r *Runtime) builtinJSON_decodeArray(d *json.Decoder) (*Object, error) { + var arrayValue []Value + for { + tok, err := d.Token() + if err != nil { + return nil, err + } + if delim, ok := tok.(json.Delim); ok { + if delim == ']' { + break + } + } + value, err := r.builtinJSON_decodeToken(d, tok) + if err != nil { + return nil, err + } + arrayValue = append(arrayValue, value) + } + return r.newArrayValues(arrayValue), nil +} + +func isArray(object *Object) bool { + switch object.self.className() { + case classArray: + return true + default: + return false + } +} + +func (r *Runtime) builtinJSON_reviveWalk(reviver func(FunctionCall) Value, holder *Object, name Value) Value { + value := holder.self.get(name) + if value == nil { + value = _undefined + } + + if object := value.(*Object); object != nil { + if isArray(object) { + length := object.self.getStr("length").ToInteger() + for index := int64(0); index < length; index++ { + name := intToValue(index) + value := r.builtinJSON_reviveWalk(reviver, object, name) + if value == _undefined { + object.self.delete(name, false) + } else { + object.self.put(name, value, false) + } + } + } else { + for item, f := object.self.enumerate(false, false)(); f != nil; item, f = f() { + value := r.builtinJSON_reviveWalk(reviver, object, name) + if value == _undefined { + object.self.deleteStr(item.name, false) + } else { + object.self.putStr(item.name, value, false) + } + } + } + } + return reviver(FunctionCall{ + This: holder, + Arguments: []Value{name, value}, + }) +} + +type _builtinJSON_stringifyContext struct { + r *Runtime + stack []*Object + propertyList []Value + replacerFunction func(FunctionCall) Value + gap, indent string + buf bytes.Buffer +} + +func (r *Runtime) builtinJSON_stringify(call FunctionCall) Value { + ctx := _builtinJSON_stringifyContext{ + r: r, + } + + replacer, _ := call.Argument(1).(*Object) + if replacer != nil { + if isArray(replacer) { + length := replacer.self.getStr("length").ToInteger() + seen := map[string]bool{} + propertyList := make([]Value, length) + length = 0 + for index := range propertyList { + var name string + value := replacer.self.get(intToValue(int64(index))) + if s, ok := value.assertString(); ok { + name = s.String() + } else if _, ok := value.assertInt(); ok { + name = value.String() + } else if _, ok := value.assertFloat(); ok { + name = value.String() + } else if o, ok := value.(*Object); ok { + switch o.self.className() { + case classNumber, classString: + name = value.String() + } + } + if seen[name] { + continue + } + seen[name] = true + length += 1 + propertyList[index] = newStringValue(name) + } + ctx.propertyList = propertyList[0:length] + } else if c, ok := replacer.self.assertCallable(); ok { + ctx.replacerFunction = c + } + } + if spaceValue := call.Argument(2); spaceValue != _undefined { + if o, ok := spaceValue.(*Object); ok { + switch o := o.self.(type) { + case *primitiveValueObject: + spaceValue = o.pValue + case *stringObject: + spaceValue = o.value + } + } + isNum := false + var num int64 + num, isNum = spaceValue.assertInt() + if !isNum { + if f, ok := spaceValue.assertFloat(); ok { + num = int64(f) + isNum = true + } + } + if isNum { + if num > 0 { + if num > 10 { + num = 10 + } + ctx.gap = strings.Repeat(" ", int(num)) + } + } else { + if s, ok := spaceValue.assertString(); ok { + str := s.String() + if len(str) > 10 { + ctx.gap = str[:10] + } else { + ctx.gap = str + } + } + } + } + + if ctx.do(call.Argument(0)) { + return newStringValue(ctx.buf.String()) + } + return _undefined +} + +func (ctx *_builtinJSON_stringifyContext) do(v Value) bool { + holder := ctx.r.NewObject() + holder.self.putStr("", v, false) + return ctx.str(stringEmpty, holder) +} + +func (ctx *_builtinJSON_stringifyContext) str(key Value, holder *Object) bool { + value := holder.self.get(key) + if value == nil { + value = _undefined + } + + if object, ok := value.(*Object); ok { + if toJSON, ok := object.self.getStr("toJSON").(*Object); ok { + if c, ok := toJSON.self.assertCallable(); ok { + value = c(FunctionCall{ + This: value, + Arguments: []Value{key}, + }) + } + } + } + + if ctx.replacerFunction != nil { + value = ctx.replacerFunction(FunctionCall{ + This: holder, + Arguments: []Value{key, value}, + }) + } + + if o, ok := value.(*Object); ok { + switch o1 := o.self.(type) { + case *primitiveValueObject: + value = o1.pValue + case *stringObject: + value = o1.value + case *objectGoReflect: + if o1.toJson != nil { + value = ctx.r.ToValue(o1.toJson()) + } else if v, ok := o1.origValue.Interface().(json.Marshaler); ok { + b, err := v.MarshalJSON() + if err != nil { + panic(err) + } + ctx.buf.Write(b) + return true + } else { + switch o1.className() { + case classNumber: + value = o1.toPrimitiveNumber() + case classString: + value = o1.toPrimitiveString() + case classBoolean: + if o.ToInteger() != 0 { + value = valueTrue + } else { + value = valueFalse + } + } + } + } + } + + switch value1 := value.(type) { + case valueBool: + if value1 { + ctx.buf.WriteString("true") + } else { + ctx.buf.WriteString("false") + } + case valueString: + ctx.quote(value1) + case valueInt: + ctx.buf.WriteString(value.String()) + case valueFloat: + if !math.IsNaN(float64(value1)) && !math.IsInf(float64(value1), 0) { + ctx.buf.WriteString(value.String()) + } else { + ctx.buf.WriteString("null") + } + case valueNull: + ctx.buf.WriteString("null") + case *Object: + for _, object := range ctx.stack { + if value1 == object { + ctx.r.typeErrorResult(true, "Converting circular structure to JSON") + } + } + ctx.stack = append(ctx.stack, value1) + defer func() { ctx.stack = ctx.stack[:len(ctx.stack)-1] }() + if _, ok := value1.self.assertCallable(); !ok { + if isArray(value1) { + ctx.ja(value1) + } else { + ctx.jo(value1) + } + } else { + return false + } + default: + return false + } + return true +} + +func (ctx *_builtinJSON_stringifyContext) ja(array *Object) { + var stepback string + if ctx.gap != "" { + stepback = ctx.indent + ctx.indent += ctx.gap + } + length := array.self.getStr("length").ToInteger() + if length == 0 { + ctx.buf.WriteString("[]") + return + } + + ctx.buf.WriteByte('[') + var separator string + if ctx.gap != "" { + ctx.buf.WriteByte('\n') + ctx.buf.WriteString(ctx.indent) + separator = ",\n" + ctx.indent + } else { + separator = "," + } + + for i := int64(0); i < length; i++ { + if !ctx.str(intToValue(i), array) { + ctx.buf.WriteString("null") + } + if i < length-1 { + ctx.buf.WriteString(separator) + } + } + if ctx.gap != "" { + ctx.buf.WriteByte('\n') + ctx.buf.WriteString(stepback) + ctx.indent = stepback + } + ctx.buf.WriteByte(']') +} + +func (ctx *_builtinJSON_stringifyContext) jo(object *Object) { + var stepback string + if ctx.gap != "" { + stepback = ctx.indent + ctx.indent += ctx.gap + } + + ctx.buf.WriteByte('{') + mark := ctx.buf.Len() + var separator string + if ctx.gap != "" { + ctx.buf.WriteByte('\n') + ctx.buf.WriteString(ctx.indent) + separator = ",\n" + ctx.indent + } else { + separator = "," + } + + var props []Value + if ctx.propertyList == nil { + for item, f := object.self.enumerate(false, false)(); f != nil; item, f = f() { + props = append(props, newStringValue(item.name)) + } + } else { + props = ctx.propertyList + } + + empty := true + for _, name := range props { + off := ctx.buf.Len() + if !empty { + ctx.buf.WriteString(separator) + } + ctx.quote(name.ToString()) + if ctx.gap != "" { + ctx.buf.WriteString(": ") + } else { + ctx.buf.WriteByte(':') + } + if ctx.str(name, object) { + if empty { + empty = false + } + } else { + ctx.buf.Truncate(off) + } + } + + if empty { + ctx.buf.Truncate(mark) + } else { + if ctx.gap != "" { + ctx.buf.WriteByte('\n') + ctx.buf.WriteString(stepback) + ctx.indent = stepback + } + } + ctx.buf.WriteByte('}') +} + +func (ctx *_builtinJSON_stringifyContext) quote(str valueString) { + ctx.buf.WriteByte('"') + reader := str.reader(0) + for { + r, _, err := reader.ReadRune() + if err != nil { + break + } + switch r { + case '"', '\\': + ctx.buf.WriteByte('\\') + ctx.buf.WriteByte(byte(r)) + case 0x08: + ctx.buf.WriteString(`\b`) + case 0x09: + ctx.buf.WriteString(`\t`) + case 0x0A: + ctx.buf.WriteString(`\n`) + case 0x0C: + ctx.buf.WriteString(`\f`) + case 0x0D: + ctx.buf.WriteString(`\r`) + default: + if r < 0x20 { + ctx.buf.WriteString(`\u00`) + ctx.buf.WriteByte(hex[r>>4]) + ctx.buf.WriteByte(hex[r&0xF]) + } else { + ctx.buf.WriteRune(r) + } + } + } + ctx.buf.WriteByte('"') +} + +func (r *Runtime) initJSON() { + JSON := r.newBaseObject(r.global.ObjectPrototype, "JSON") + JSON._putProp("parse", r.newNativeFunc(r.builtinJSON_parse, nil, "parse", nil, 2), true, false, true) + JSON._putProp("stringify", r.newNativeFunc(r.builtinJSON_stringify, nil, "stringify", nil, 3), true, false, true) + + r.addToGlobal("JSON", JSON.val) +} diff --git a/vendor/github.com/dop251/goja/builtin_math.go b/vendor/github.com/dop251/goja/builtin_math.go new file mode 100644 index 00000000000..f6ec2162220 --- /dev/null +++ b/vendor/github.com/dop251/goja/builtin_math.go @@ -0,0 +1,192 @@ +package goja + +import ( + "math" +) + +func (r *Runtime) math_abs(call FunctionCall) Value { + return floatToValue(math.Abs(call.Argument(0).ToFloat())) +} + +func (r *Runtime) math_acos(call FunctionCall) Value { + return floatToValue(math.Acos(call.Argument(0).ToFloat())) +} + +func (r *Runtime) math_asin(call FunctionCall) Value { + return floatToValue(math.Asin(call.Argument(0).ToFloat())) +} + +func (r *Runtime) math_atan(call FunctionCall) Value { + return floatToValue(math.Atan(call.Argument(0).ToFloat())) +} + +func (r *Runtime) math_atan2(call FunctionCall) Value { + y := call.Argument(0).ToFloat() + x := call.Argument(1).ToFloat() + + return floatToValue(math.Atan2(y, x)) +} + +func (r *Runtime) math_ceil(call FunctionCall) Value { + return floatToValue(math.Ceil(call.Argument(0).ToFloat())) +} + +func (r *Runtime) math_cos(call FunctionCall) Value { + return floatToValue(math.Cos(call.Argument(0).ToFloat())) +} + +func (r *Runtime) math_exp(call FunctionCall) Value { + return floatToValue(math.Exp(call.Argument(0).ToFloat())) +} + +func (r *Runtime) math_floor(call FunctionCall) Value { + return floatToValue(math.Floor(call.Argument(0).ToFloat())) +} + +func (r *Runtime) math_log(call FunctionCall) Value { + return floatToValue(math.Log(call.Argument(0).ToFloat())) +} + +func (r *Runtime) math_max(call FunctionCall) Value { + if len(call.Arguments) == 0 { + return _negativeInf + } + + result := call.Arguments[0].ToFloat() + if math.IsNaN(result) { + return _NaN + } + for _, arg := range call.Arguments[1:] { + f := arg.ToFloat() + if math.IsNaN(f) { + return _NaN + } + result = math.Max(result, f) + } + return floatToValue(result) +} + +func (r *Runtime) math_min(call FunctionCall) Value { + if len(call.Arguments) == 0 { + return _positiveInf + } + + result := call.Arguments[0].ToFloat() + if math.IsNaN(result) { + return _NaN + } + for _, arg := range call.Arguments[1:] { + f := arg.ToFloat() + if math.IsNaN(f) { + return _NaN + } + result = math.Min(result, f) + } + return floatToValue(result) +} + +func (r *Runtime) math_pow(call FunctionCall) Value { + x := call.Argument(0) + y := call.Argument(1) + if x, ok := x.assertInt(); ok { + if y, ok := y.assertInt(); ok && y >= 0 && y < 64 { + if y == 0 { + return intToValue(1) + } + if x == 0 { + return intToValue(0) + } + ip := ipow(x, y) + if ip != 0 { + return intToValue(ip) + } + } + } + + return floatToValue(math.Pow(x.ToFloat(), y.ToFloat())) +} + +func (r *Runtime) math_random(call FunctionCall) Value { + return floatToValue(r.rand()) +} + +func (r *Runtime) math_round(call FunctionCall) Value { + f := call.Argument(0).ToFloat() + if math.IsNaN(f) { + return _NaN + } + + if f == 0 && math.Signbit(f) { + return _negativeZero + } + + t := math.Trunc(f) + + if f >= 0 { + if f-t >= 0.5 { + return floatToValue(t + 1) + } + } else { + if t-f > 0.5 { + return floatToValue(t - 1) + } + } + + return floatToValue(t) +} + +func (r *Runtime) math_sin(call FunctionCall) Value { + return floatToValue(math.Sin(call.Argument(0).ToFloat())) +} + +func (r *Runtime) math_sqrt(call FunctionCall) Value { + return floatToValue(math.Sqrt(call.Argument(0).ToFloat())) +} + +func (r *Runtime) math_tan(call FunctionCall) Value { + return floatToValue(math.Tan(call.Argument(0).ToFloat())) +} + +func (r *Runtime) createMath(val *Object) objectImpl { + m := &baseObject{ + class: "Math", + val: val, + extensible: true, + prototype: r.global.ObjectPrototype, + } + m.init() + + m._putProp("E", valueFloat(math.E), false, false, false) + m._putProp("LN10", valueFloat(math.Ln10), false, false, false) + m._putProp("LN2", valueFloat(math.Ln2), false, false, false) + m._putProp("LOG2E", valueFloat(math.Log2E), false, false, false) + m._putProp("LOG10E", valueFloat(math.Log10E), false, false, false) + m._putProp("PI", valueFloat(math.Pi), false, false, false) + m._putProp("SQRT1_2", valueFloat(sqrt1_2), false, false, false) + m._putProp("SQRT2", valueFloat(math.Sqrt2), false, false, false) + + m._putProp("abs", r.newNativeFunc(r.math_abs, nil, "abs", nil, 1), true, false, true) + m._putProp("acos", r.newNativeFunc(r.math_acos, nil, "acos", nil, 1), true, false, true) + m._putProp("asin", r.newNativeFunc(r.math_asin, nil, "asin", nil, 1), true, false, true) + m._putProp("atan", r.newNativeFunc(r.math_atan, nil, "atan", nil, 1), true, false, true) + m._putProp("atan2", r.newNativeFunc(r.math_atan2, nil, "atan2", nil, 2), true, false, true) + m._putProp("ceil", r.newNativeFunc(r.math_ceil, nil, "ceil", nil, 1), true, false, true) + m._putProp("cos", r.newNativeFunc(r.math_cos, nil, "cos", nil, 1), true, false, true) + m._putProp("exp", r.newNativeFunc(r.math_exp, nil, "exp", nil, 1), true, false, true) + m._putProp("floor", r.newNativeFunc(r.math_floor, nil, "floor", nil, 1), true, false, true) + m._putProp("log", r.newNativeFunc(r.math_log, nil, "log", nil, 1), true, false, true) + m._putProp("max", r.newNativeFunc(r.math_max, nil, "max", nil, 2), true, false, true) + m._putProp("min", r.newNativeFunc(r.math_min, nil, "min", nil, 2), true, false, true) + m._putProp("pow", r.newNativeFunc(r.math_pow, nil, "pow", nil, 2), true, false, true) + m._putProp("random", r.newNativeFunc(r.math_random, nil, "random", nil, 0), true, false, true) + m._putProp("round", r.newNativeFunc(r.math_round, nil, "round", nil, 1), true, false, true) + m._putProp("sin", r.newNativeFunc(r.math_sin, nil, "sin", nil, 1), true, false, true) + m._putProp("sqrt", r.newNativeFunc(r.math_sqrt, nil, "sqrt", nil, 1), true, false, true) + m._putProp("tan", r.newNativeFunc(r.math_tan, nil, "tan", nil, 1), true, false, true) + + return m +} + +func (r *Runtime) initMath() { + r.addToGlobal("Math", r.newLazyObject(r.createMath)) +} diff --git a/vendor/github.com/dop251/goja/builtin_number.go b/vendor/github.com/dop251/goja/builtin_number.go new file mode 100644 index 00000000000..a151639895c --- /dev/null +++ b/vendor/github.com/dop251/goja/builtin_number.go @@ -0,0 +1,154 @@ +package goja + +import ( + "math" + "strconv" +) + +func (r *Runtime) numberproto_valueOf(call FunctionCall) Value { + this := call.This + if !isNumber(this) { + r.typeErrorResult(true, "Value is not a number") + } + if _, ok := this.assertInt(); ok { + return this + } + + if _, ok := this.assertFloat(); ok { + return this + } + + if obj, ok := this.(*Object); ok { + if v, ok := obj.self.(*primitiveValueObject); ok { + return v.pValue + } + } + + r.typeErrorResult(true, "Number.prototype.valueOf is not generic") + return nil +} + +func isNumber(v Value) bool { + switch t := v.(type) { + case valueFloat, valueInt: + return true + case *Object: + switch t := t.self.(type) { + case *primitiveValueObject: + return isNumber(t.pValue) + } + } + return false +} + +func (r *Runtime) numberproto_toString(call FunctionCall) Value { + if !isNumber(call.This) { + r.typeErrorResult(true, "Value is not a number") + } + var radix int + if arg := call.Argument(0); arg != _undefined { + radix = int(arg.ToInteger()) + } else { + radix = 10 + } + + if radix < 2 || radix > 36 { + panic(r.newError(r.global.RangeError, "toString() radix argument must be between 2 and 36")) + } + + num := call.This.ToFloat() + + if math.IsNaN(num) { + return stringNaN + } + + if math.IsInf(num, 1) { + return stringInfinity + } + + if math.IsInf(num, -1) { + return stringNegInfinity + } + + if radix == 10 { + var fmt byte + if math.Abs(num) >= 1e21 { + fmt = 'e' + } else { + fmt = 'f' + } + return asciiString(strconv.FormatFloat(num, fmt, -1, 64)) + } + + return asciiString(dtobasestr(num, radix)) +} + +func (r *Runtime) numberproto_toFixed(call FunctionCall) Value { + prec := call.Argument(0).ToInteger() + if prec < 0 || prec > 20 { + panic(r.newError(r.global.RangeError, "toFixed() precision must be between 0 and 20")) + } + + num := call.This.ToFloat() + if math.IsNaN(num) { + return stringNaN + } + if math.Abs(num) >= 1e21 { + return asciiString(strconv.FormatFloat(num, 'g', -1, 64)) + } + return asciiString(strconv.FormatFloat(num, 'f', int(prec), 64)) +} + +func (r *Runtime) numberproto_toExponential(call FunctionCall) Value { + prec := call.Argument(0).ToInteger() + if prec < 0 || prec > 20 { + panic(r.newError(r.global.RangeError, "toExponential() precision must be between 0 and 20")) + } + + num := call.This.ToFloat() + if math.IsNaN(num) { + return stringNaN + } + if math.Abs(num) >= 1e21 { + return asciiString(strconv.FormatFloat(num, 'g', -1, 64)) + } + return asciiString(strconv.FormatFloat(num, 'e', int(prec), 64)) +} + +func (r *Runtime) numberproto_toPrecision(call FunctionCall) Value { + prec := call.Argument(0).ToInteger() + if prec < 0 || prec > 20 { + panic(r.newError(r.global.RangeError, "toPrecision() precision must be between 0 and 20")) + } + + num := call.This.ToFloat() + if math.IsNaN(num) { + return stringNaN + } + if math.Abs(num) >= 1e21 { + return asciiString(strconv.FormatFloat(num, 'g', -1, 64)) + } + return asciiString(strconv.FormatFloat(num, 'g', int(prec), 64)) +} + +func (r *Runtime) initNumber() { + r.global.NumberPrototype = r.newPrimitiveObject(valueInt(0), r.global.ObjectPrototype, classNumber) + o := r.global.NumberPrototype.self + o._putProp("valueOf", r.newNativeFunc(r.numberproto_valueOf, nil, "valueOf", nil, 0), true, false, true) + o._putProp("toString", r.newNativeFunc(r.numberproto_toString, nil, "toString", nil, 0), true, false, true) + o._putProp("toLocaleString", r.newNativeFunc(r.numberproto_toString, nil, "toLocaleString", nil, 0), true, false, true) + o._putProp("toFixed", r.newNativeFunc(r.numberproto_toFixed, nil, "toFixed", nil, 1), true, false, true) + o._putProp("toExponential", r.newNativeFunc(r.numberproto_toExponential, nil, "toExponential", nil, 1), true, false, true) + o._putProp("toPrecision", r.newNativeFunc(r.numberproto_toPrecision, nil, "toPrecision", nil, 1), true, false, true) + + r.global.Number = r.newNativeFunc(r.builtin_Number, r.builtin_newNumber, "Number", r.global.NumberPrototype, 1) + o = r.global.Number.self + o._putProp("MAX_VALUE", valueFloat(math.MaxFloat64), false, false, false) + o._putProp("MIN_VALUE", valueFloat(math.SmallestNonzeroFloat64), false, false, false) + o._putProp("NaN", _NaN, false, false, false) + o._putProp("NEGATIVE_INFINITY", _negativeInf, false, false, false) + o._putProp("POSITIVE_INFINITY", _positiveInf, false, false, false) + o._putProp("EPSILON", _epsilon, false, false, false) + r.addToGlobal("Number", r.global.Number) + +} diff --git a/vendor/github.com/dop251/goja/builtin_object.go b/vendor/github.com/dop251/goja/builtin_object.go new file mode 100644 index 00000000000..050512d7117 --- /dev/null +++ b/vendor/github.com/dop251/goja/builtin_object.go @@ -0,0 +1,412 @@ +package goja + +import ( + "fmt" +) + +func (r *Runtime) builtin_Object(args []Value, proto *Object) *Object { + if len(args) > 0 { + arg := args[0] + if arg != _undefined && arg != _null { + return arg.ToObject(r) + } + } + return r.NewObject() +} + +func (r *Runtime) object_getPrototypeOf(call FunctionCall) Value { + o := call.Argument(0).ToObject(r) + p := o.self.proto() + if p == nil { + return _null + } + return p +} + +func (r *Runtime) object_getOwnPropertyDescriptor(call FunctionCall) Value { + obj := call.Argument(0).ToObject(r) + propName := call.Argument(1).String() + desc := obj.self.getOwnProp(propName) + if desc == nil { + return _undefined + } + var writable, configurable, enumerable, accessor bool + var get, set *Object + var value Value + if v, ok := desc.(*valueProperty); ok { + writable = v.writable + configurable = v.configurable + enumerable = v.enumerable + accessor = v.accessor + value = v.value + get = v.getterFunc + set = v.setterFunc + } else { + writable = true + configurable = true + enumerable = true + value = desc + } + + ret := r.NewObject() + o := ret.self + if !accessor { + o.putStr("value", value, false) + o.putStr("writable", r.toBoolean(writable), false) + } else { + if get != nil { + o.putStr("get", get, false) + } else { + o.putStr("get", _undefined, false) + } + if set != nil { + o.putStr("set", set, false) + } else { + o.putStr("set", _undefined, false) + } + } + o.putStr("enumerable", r.toBoolean(enumerable), false) + o.putStr("configurable", r.toBoolean(configurable), false) + + return ret +} + +func (r *Runtime) object_getOwnPropertyNames(call FunctionCall) Value { + // ES6 + obj := call.Argument(0).ToObject(r) + // obj := r.toObject(call.Argument(0)) + + var values []Value + for item, f := obj.self.enumerate(true, false)(); f != nil; item, f = f() { + values = append(values, newStringValue(item.name)) + } + return r.newArrayValues(values) +} + +func (r *Runtime) toPropertyDescr(v Value) (ret propertyDescr) { + if o, ok := v.(*Object); ok { + descr := o.self + + ret.Value = descr.getStr("value") + + if p := descr.getStr("writable"); p != nil { + ret.Writable = ToFlag(p.ToBoolean()) + } + if p := descr.getStr("enumerable"); p != nil { + ret.Enumerable = ToFlag(p.ToBoolean()) + } + if p := descr.getStr("configurable"); p != nil { + ret.Configurable = ToFlag(p.ToBoolean()) + } + + ret.Getter = descr.getStr("get") + ret.Setter = descr.getStr("set") + + if ret.Getter != nil && ret.Getter != _undefined { + if _, ok := r.toObject(ret.Getter).self.assertCallable(); !ok { + r.typeErrorResult(true, "getter must be a function") + } + } + + if ret.Setter != nil && ret.Setter != _undefined { + if _, ok := r.toObject(ret.Setter).self.assertCallable(); !ok { + r.typeErrorResult(true, "setter must be a function") + } + } + + if (ret.Getter != nil || ret.Setter != nil) && (ret.Value != nil || ret.Writable != FLAG_NOT_SET) { + r.typeErrorResult(true, "Invalid property descriptor. Cannot both specify accessors and a value or writable attribute") + return + } + } else { + r.typeErrorResult(true, "Property description must be an object: %s", v.String()) + } + + return +} + +func (r *Runtime) _defineProperties(o *Object, p Value) { + type propItem struct { + name string + prop propertyDescr + } + props := p.ToObject(r) + var list []propItem + for item, f := props.self.enumerate(false, false)(); f != nil; item, f = f() { + list = append(list, propItem{ + name: item.name, + prop: r.toPropertyDescr(props.self.getStr(item.name)), + }) + } + for _, prop := range list { + o.self.defineOwnProperty(newStringValue(prop.name), prop.prop, true) + } +} + +func (r *Runtime) object_create(call FunctionCall) Value { + var proto *Object + if arg := call.Argument(0); arg != _null { + if o, ok := arg.(*Object); ok { + proto = o + } else { + r.typeErrorResult(true, "Object prototype may only be an Object or null: %s", arg.String()) + } + } + o := r.newBaseObject(proto, classObject).val + + if props := call.Argument(1); props != _undefined { + r._defineProperties(o, props) + } + + return o +} + +func (r *Runtime) object_defineProperty(call FunctionCall) (ret Value) { + if obj, ok := call.Argument(0).(*Object); ok { + descr := r.toPropertyDescr(call.Argument(2)) + obj.self.defineOwnProperty(call.Argument(1), descr, true) + ret = call.Argument(0) + } else { + r.typeErrorResult(true, "Object.defineProperty called on non-object") + } + return +} + +func (r *Runtime) object_defineProperties(call FunctionCall) Value { + obj := r.toObject(call.Argument(0)) + r._defineProperties(obj, call.Argument(1)) + return obj +} + +func (r *Runtime) object_seal(call FunctionCall) Value { + // ES6 + arg := call.Argument(0) + if obj, ok := arg.(*Object); ok { + descr := propertyDescr{ + Writable: FLAG_TRUE, + Enumerable: FLAG_TRUE, + Configurable: FLAG_FALSE, + } + for item, f := obj.self.enumerate(true, false)(); f != nil; item, f = f() { + v := obj.self.getOwnProp(item.name) + if prop, ok := v.(*valueProperty); ok { + if !prop.configurable { + continue + } + prop.configurable = false + } else { + descr.Value = v + obj.self.defineOwnProperty(newStringValue(item.name), descr, true) + //obj.self._putProp(item.name, v, true, true, false) + } + } + obj.self.preventExtensions() + return obj + } + return arg +} + +func (r *Runtime) object_freeze(call FunctionCall) Value { + arg := call.Argument(0) + if obj, ok := arg.(*Object); ok { + descr := propertyDescr{ + Writable: FLAG_FALSE, + Enumerable: FLAG_TRUE, + Configurable: FLAG_FALSE, + } + for item, f := obj.self.enumerate(true, false)(); f != nil; item, f = f() { + v := obj.self.getOwnProp(item.name) + if prop, ok := v.(*valueProperty); ok { + prop.configurable = false + if prop.value != nil { + prop.writable = false + } + } else { + descr.Value = v + obj.self.defineOwnProperty(newStringValue(item.name), descr, true) + } + } + obj.self.preventExtensions() + return obj + } else { + // ES6 behavior + return arg + } +} + +func (r *Runtime) object_preventExtensions(call FunctionCall) (ret Value) { + arg := call.Argument(0) + if obj, ok := arg.(*Object); ok { + obj.self.preventExtensions() + return obj + } + // ES6 + //r.typeErrorResult(true, "Object.preventExtensions called on non-object") + //panic("Unreachable") + return arg +} + +func (r *Runtime) object_isSealed(call FunctionCall) Value { + if obj, ok := call.Argument(0).(*Object); ok { + if obj.self.isExtensible() { + return valueFalse + } + for item, f := obj.self.enumerate(true, false)(); f != nil; item, f = f() { + prop := obj.self.getOwnProp(item.name) + if prop, ok := prop.(*valueProperty); ok { + if prop.configurable { + return valueFalse + } + } else { + return valueFalse + } + } + } else { + // ES6 + //r.typeErrorResult(true, "Object.isSealed called on non-object") + return valueTrue + } + return valueTrue +} + +func (r *Runtime) object_isFrozen(call FunctionCall) Value { + if obj, ok := call.Argument(0).(*Object); ok { + if obj.self.isExtensible() { + return valueFalse + } + for item, f := obj.self.enumerate(true, false)(); f != nil; item, f = f() { + prop := obj.self.getOwnProp(item.name) + if prop, ok := prop.(*valueProperty); ok { + if prop.configurable || prop.value != nil && prop.writable { + return valueFalse + } + } else { + return valueFalse + } + } + } else { + // ES6 + //r.typeErrorResult(true, "Object.isFrozen called on non-object") + return valueTrue + } + return valueTrue +} + +func (r *Runtime) object_isExtensible(call FunctionCall) Value { + if obj, ok := call.Argument(0).(*Object); ok { + if obj.self.isExtensible() { + return valueTrue + } + return valueFalse + } else { + // ES6 + //r.typeErrorResult(true, "Object.isExtensible called on non-object") + return valueFalse + } +} + +func (r *Runtime) object_keys(call FunctionCall) Value { + // ES6 + obj := call.Argument(0).ToObject(r) + //if obj, ok := call.Argument(0).(*valueObject); ok { + var keys []Value + for item, f := obj.self.enumerate(false, false)(); f != nil; item, f = f() { + keys = append(keys, newStringValue(item.name)) + } + return r.newArrayValues(keys) + //} else { + // r.typeErrorResult(true, "Object.keys called on non-object") + //} + //return nil +} + +func (r *Runtime) objectproto_hasOwnProperty(call FunctionCall) Value { + p := call.Argument(0).String() + o := call.This.ToObject(r) + if o.self.hasOwnPropertyStr(p) { + return valueTrue + } else { + return valueFalse + } +} + +func (r *Runtime) objectproto_isPrototypeOf(call FunctionCall) Value { + if v, ok := call.Argument(0).(*Object); ok { + o := call.This.ToObject(r) + for { + v = v.self.proto() + if v == nil { + break + } + if v == o { + return valueTrue + } + } + } + return valueFalse +} + +func (r *Runtime) objectproto_propertyIsEnumerable(call FunctionCall) Value { + p := call.Argument(0).ToString() + o := call.This.ToObject(r) + pv := o.self.getOwnProp(p.String()) + if pv == nil { + return valueFalse + } + if prop, ok := pv.(*valueProperty); ok { + if !prop.enumerable { + return valueFalse + } + } + return valueTrue +} + +func (r *Runtime) objectproto_toString(call FunctionCall) Value { + switch o := call.This.(type) { + case valueNull: + return stringObjectNull + case valueUndefined: + return stringObjectUndefined + case *Object: + return newStringValue(fmt.Sprintf("[object %s]", o.self.className())) + default: + obj := call.This.ToObject(r) + return newStringValue(fmt.Sprintf("[object %s]", obj.self.className())) + } +} + +func (r *Runtime) objectproto_toLocaleString(call FunctionCall) Value { + return call.This.ToObject(r).ToString() +} + +func (r *Runtime) objectproto_valueOf(call FunctionCall) Value { + return call.This.ToObject(r) +} + +func (r *Runtime) initObject() { + o := r.global.ObjectPrototype.self + o._putProp("toString", r.newNativeFunc(r.objectproto_toString, nil, "toString", nil, 0), true, false, true) + o._putProp("toLocaleString", r.newNativeFunc(r.objectproto_toLocaleString, nil, "toLocaleString", nil, 0), true, false, true) + o._putProp("valueOf", r.newNativeFunc(r.objectproto_valueOf, nil, "valueOf", nil, 0), true, false, true) + o._putProp("hasOwnProperty", r.newNativeFunc(r.objectproto_hasOwnProperty, nil, "hasOwnProperty", nil, 1), true, false, true) + o._putProp("isPrototypeOf", r.newNativeFunc(r.objectproto_isPrototypeOf, nil, "isPrototypeOf", nil, 1), true, false, true) + o._putProp("propertyIsEnumerable", r.newNativeFunc(r.objectproto_propertyIsEnumerable, nil, "propertyIsEnumerable", nil, 1), true, false, true) + + r.global.Object = r.newNativeFuncConstruct(r.builtin_Object, classObject, r.global.ObjectPrototype, 1) + o = r.global.Object.self + o._putProp("defineProperty", r.newNativeFunc(r.object_defineProperty, nil, "defineProperty", nil, 3), true, false, true) + o._putProp("defineProperties", r.newNativeFunc(r.object_defineProperties, nil, "defineProperties", nil, 2), true, false, true) + o._putProp("getOwnPropertyDescriptor", r.newNativeFunc(r.object_getOwnPropertyDescriptor, nil, "getOwnPropertyDescriptor", nil, 2), true, false, true) + o._putProp("getPrototypeOf", r.newNativeFunc(r.object_getPrototypeOf, nil, "getPrototypeOf", nil, 1), true, false, true) + o._putProp("getOwnPropertyNames", r.newNativeFunc(r.object_getOwnPropertyNames, nil, "getOwnPropertyNames", nil, 1), true, false, true) + o._putProp("create", r.newNativeFunc(r.object_create, nil, "create", nil, 2), true, false, true) + o._putProp("seal", r.newNativeFunc(r.object_seal, nil, "seal", nil, 1), true, false, true) + o._putProp("freeze", r.newNativeFunc(r.object_freeze, nil, "freeze", nil, 1), true, false, true) + o._putProp("preventExtensions", r.newNativeFunc(r.object_preventExtensions, nil, "preventExtensions", nil, 1), true, false, true) + o._putProp("isSealed", r.newNativeFunc(r.object_isSealed, nil, "isSealed", nil, 1), true, false, true) + o._putProp("isFrozen", r.newNativeFunc(r.object_isFrozen, nil, "isFrozen", nil, 1), true, false, true) + o._putProp("isExtensible", r.newNativeFunc(r.object_isExtensible, nil, "isExtensible", nil, 1), true, false, true) + o._putProp("keys", r.newNativeFunc(r.object_keys, nil, "keys", nil, 1), true, false, true) + + r.addToGlobal("Object", r.global.Object) +} diff --git a/vendor/github.com/dop251/goja/builtin_regexp.go b/vendor/github.com/dop251/goja/builtin_regexp.go new file mode 100644 index 00000000000..3a4d524b900 --- /dev/null +++ b/vendor/github.com/dop251/goja/builtin_regexp.go @@ -0,0 +1,272 @@ +package goja + +import ( + "fmt" + "github.com/dlclark/regexp2" + "github.com/dop251/goja/parser" + "regexp" +) + +func (r *Runtime) newRegexpObject(proto *Object) *regexpObject { + v := &Object{runtime: r} + + o := ®expObject{} + o.class = classRegExp + o.val = v + o.extensible = true + v.self = o + o.prototype = proto + o.init() + return o +} + +func (r *Runtime) newRegExpp(pattern regexpPattern, patternStr valueString, global, ignoreCase, multiline bool, proto *Object) *Object { + o := r.newRegexpObject(proto) + + o.pattern = pattern + o.source = patternStr + o.global = global + o.ignoreCase = ignoreCase + o.multiline = multiline + + return o.val +} + +func compileRegexp(patternStr, flags string) (p regexpPattern, global, ignoreCase, multiline bool, err error) { + + if flags != "" { + invalidFlags := func() { + err = fmt.Errorf("Invalid flags supplied to RegExp constructor '%s'", flags) + } + for _, chr := range flags { + switch chr { + case 'g': + if global { + invalidFlags() + return + } + global = true + case 'm': + if multiline { + invalidFlags() + return + } + multiline = true + case 'i': + if ignoreCase { + invalidFlags() + return + } + ignoreCase = true + default: + invalidFlags() + return + } + } + } + + re2Str, err1 := parser.TransformRegExp(patternStr) + if /*false &&*/ err1 == nil { + re2flags := "" + if multiline { + re2flags += "m" + } + if ignoreCase { + re2flags += "i" + } + if len(re2flags) > 0 { + re2Str = fmt.Sprintf("(?%s:%s)", re2flags, re2Str) + } + + pattern, err1 := regexp.Compile(re2Str) + if err1 != nil { + err = fmt.Errorf("Invalid regular expression (re2): %s (%v)", re2Str, err1) + return + } + + p = (*regexpWrapper)(pattern) + } else { + var opts regexp2.RegexOptions = regexp2.ECMAScript + if multiline { + opts |= regexp2.Multiline + } + if ignoreCase { + opts |= regexp2.IgnoreCase + } + regexp2Pattern, err1 := regexp2.Compile(patternStr, opts) + if err1 != nil { + err = fmt.Errorf("Invalid regular expression (regexp2): %s (%v)", patternStr, err1) + return + } + p = (*regexp2Wrapper)(regexp2Pattern) + } + return +} + +func (r *Runtime) newRegExp(patternStr valueString, flags string, proto *Object) *Object { + pattern, global, ignoreCase, multiline, err := compileRegexp(patternStr.String(), flags) + if err != nil { + panic(r.newSyntaxError(err.Error(), -1)) + } + return r.newRegExpp(pattern, patternStr, global, ignoreCase, multiline, proto) +} + +func (r *Runtime) builtin_newRegExp(args []Value) *Object { + var pattern valueString + var flags string + if len(args) > 0 { + if obj, ok := args[0].(*Object); ok { + if regexp, ok := obj.self.(*regexpObject); ok { + if len(args) < 2 || args[1] == _undefined { + return regexp.clone() + } else { + return r.newRegExp(regexp.source, args[1].String(), r.global.RegExpPrototype) + } + } + } + if args[0] != _undefined { + pattern = args[0].ToString() + } + } + if len(args) > 1 { + if a := args[1]; a != _undefined { + flags = a.String() + } + } + if pattern == nil { + pattern = stringEmpty + } + return r.newRegExp(pattern, flags, r.global.RegExpPrototype) +} + +func (r *Runtime) builtin_RegExp(call FunctionCall) Value { + flags := call.Argument(1) + if flags == _undefined { + if obj, ok := call.Argument(0).(*Object); ok { + if _, ok := obj.self.(*regexpObject); ok { + return call.Arguments[0] + } + } + } + return r.builtin_newRegExp(call.Arguments) +} + +func (r *Runtime) regexpproto_exec(call FunctionCall) Value { + if this, ok := r.toObject(call.This).self.(*regexpObject); ok { + return this.exec(call.Argument(0).ToString()) + } else { + r.typeErrorResult(true, "Method RegExp.prototype.exec called on incompatible receiver %s", call.This.ToString()) + return nil + } +} + +func (r *Runtime) regexpproto_test(call FunctionCall) Value { + if this, ok := r.toObject(call.This).self.(*regexpObject); ok { + if this.test(call.Argument(0).ToString()) { + return valueTrue + } else { + return valueFalse + } + } else { + r.typeErrorResult(true, "Method RegExp.prototype.test called on incompatible receiver %s", call.This.ToString()) + return nil + } +} + +func (r *Runtime) regexpproto_toString(call FunctionCall) Value { + if this, ok := r.toObject(call.This).self.(*regexpObject); ok { + var g, i, m string + if this.global { + g = "g" + } + if this.ignoreCase { + i = "i" + } + if this.multiline { + m = "m" + } + return newStringValue(fmt.Sprintf("/%s/%s%s%s", this.source.String(), g, i, m)) + } else { + r.typeErrorResult(true, "Method RegExp.prototype.toString called on incompatible receiver %s", call.This) + return nil + } +} + +func (r *Runtime) regexpproto_getSource(call FunctionCall) Value { + if this, ok := r.toObject(call.This).self.(*regexpObject); ok { + return this.source + } else { + r.typeErrorResult(true, "Method RegExp.prototype.source getter called on incompatible receiver %s", call.This.ToString()) + return nil + } +} + +func (r *Runtime) regexpproto_getGlobal(call FunctionCall) Value { + if this, ok := r.toObject(call.This).self.(*regexpObject); ok { + if this.global { + return valueTrue + } else { + return valueFalse + } + } else { + r.typeErrorResult(true, "Method RegExp.prototype.global getter called on incompatible receiver %s", call.This.ToString()) + return nil + } +} + +func (r *Runtime) regexpproto_getMultiline(call FunctionCall) Value { + if this, ok := r.toObject(call.This).self.(*regexpObject); ok { + if this.multiline { + return valueTrue + } else { + return valueFalse + } + } else { + r.typeErrorResult(true, "Method RegExp.prototype.multiline getter called on incompatible receiver %s", call.This.ToString()) + return nil + } +} + +func (r *Runtime) regexpproto_getIgnoreCase(call FunctionCall) Value { + if this, ok := r.toObject(call.This).self.(*regexpObject); ok { + if this.ignoreCase { + return valueTrue + } else { + return valueFalse + } + } else { + r.typeErrorResult(true, "Method RegExp.prototype.ignoreCase getter called on incompatible receiver %s", call.This.ToString()) + return nil + } +} + +func (r *Runtime) initRegExp() { + r.global.RegExpPrototype = r.NewObject() + o := r.global.RegExpPrototype.self + o._putProp("exec", r.newNativeFunc(r.regexpproto_exec, nil, "exec", nil, 1), true, false, true) + o._putProp("test", r.newNativeFunc(r.regexpproto_test, nil, "test", nil, 1), true, false, true) + o._putProp("toString", r.newNativeFunc(r.regexpproto_toString, nil, "toString", nil, 0), true, false, true) + o.putStr("source", &valueProperty{ + configurable: true, + getterFunc: r.newNativeFunc(r.regexpproto_getSource, nil, "get source", nil, 0), + accessor: true, + }, false) + o.putStr("global", &valueProperty{ + configurable: true, + getterFunc: r.newNativeFunc(r.regexpproto_getGlobal, nil, "get global", nil, 0), + accessor: true, + }, false) + o.putStr("multiline", &valueProperty{ + configurable: true, + getterFunc: r.newNativeFunc(r.regexpproto_getMultiline, nil, "get multiline", nil, 0), + accessor: true, + }, false) + o.putStr("ignoreCase", &valueProperty{ + configurable: true, + getterFunc: r.newNativeFunc(r.regexpproto_getIgnoreCase, nil, "get ignoreCase", nil, 0), + accessor: true, + }, false) + + r.global.RegExp = r.newNativeFunc(r.builtin_RegExp, r.builtin_newRegExp, "RegExp", r.global.RegExpPrototype, 2) + r.addToGlobal("RegExp", r.global.RegExp) +} diff --git a/vendor/github.com/dop251/goja/builtin_string.go b/vendor/github.com/dop251/goja/builtin_string.go new file mode 100644 index 00000000000..a09574cb74e --- /dev/null +++ b/vendor/github.com/dop251/goja/builtin_string.go @@ -0,0 +1,687 @@ +package goja + +import ( + "bytes" + "github.com/dop251/goja/parser" + "golang.org/x/text/collate" + "golang.org/x/text/language" + "golang.org/x/text/unicode/norm" + "math" + "strings" + "unicode/utf8" +) + +var ( + collator = collate.New(language.Und) +) + +func (r *Runtime) builtin_String(call FunctionCall) Value { + if len(call.Arguments) > 0 { + arg := call.Arguments[0] + if _, ok := arg.assertString(); ok { + return arg + } + return arg.ToString() + } else { + return newStringValue("") + } +} + +func (r *Runtime) _newString(s valueString) *Object { + v := &Object{runtime: r} + + o := &stringObject{} + o.class = classString + o.val = v + o.extensible = true + v.self = o + o.prototype = r.global.StringPrototype + if s != nil { + o.value = s + } + o.init() + return v +} + +func (r *Runtime) builtin_newString(args []Value) *Object { + var s valueString + if len(args) > 0 { + s = args[0].ToString() + } else { + s = stringEmpty + } + return r._newString(s) +} + +func searchSubstringUTF8(str, search string) (ret [][]int) { + searchPos := 0 + l := len(str) + if searchPos < l { + p := strings.Index(str[searchPos:], search) + if p != -1 { + p += searchPos + searchPos = p + len(search) + ret = append(ret, []int{p, searchPos}) + } + } + return +} + +func (r *Runtime) stringproto_toStringValueOf(this Value, funcName string) Value { + if str, ok := this.assertString(); ok { + return str + } + if obj, ok := this.(*Object); ok { + if strObj, ok := obj.self.(*stringObject); ok { + return strObj.value + } + } + r.typeErrorResult(true, "String.prototype.%s is called on incompatible receiver", funcName) + return nil +} + +func (r *Runtime) stringproto_toString(call FunctionCall) Value { + return r.stringproto_toStringValueOf(call.This, "toString") +} + +func (r *Runtime) stringproto_valueOf(call FunctionCall) Value { + return r.stringproto_toStringValueOf(call.This, "valueOf") +} + +func (r *Runtime) string_fromcharcode(call FunctionCall) Value { + b := make([]byte, len(call.Arguments)) + for i, arg := range call.Arguments { + chr := toUInt16(arg) + if chr >= utf8.RuneSelf { + bb := make([]uint16, len(call.Arguments)) + for j := 0; j < i; j++ { + bb[j] = uint16(b[j]) + } + bb[i] = chr + i++ + for j, arg := range call.Arguments[i:] { + bb[i+j] = toUInt16(arg) + } + return unicodeString(bb) + } + b[i] = byte(chr) + } + + return asciiString(b) +} + +func (r *Runtime) stringproto_charAt(call FunctionCall) Value { + r.checkObjectCoercible(call.This) + s := call.This.ToString() + pos := call.Argument(0).ToInteger() + if pos < 0 || pos >= s.length() { + return stringEmpty + } + return newStringValue(string(s.charAt(pos))) +} + +func (r *Runtime) stringproto_charCodeAt(call FunctionCall) Value { + r.checkObjectCoercible(call.This) + s := call.This.ToString() + pos := call.Argument(0).ToInteger() + if pos < 0 || pos >= s.length() { + return _NaN + } + return intToValue(int64(s.charAt(pos) & 0xFFFF)) +} + +func (r *Runtime) stringproto_concat(call FunctionCall) Value { + r.checkObjectCoercible(call.This) + strs := make([]valueString, len(call.Arguments)+1) + strs[0] = call.This.ToString() + _, allAscii := strs[0].(asciiString) + totalLen := strs[0].length() + for i, arg := range call.Arguments { + s := arg.ToString() + if allAscii { + _, allAscii = s.(asciiString) + } + strs[i+1] = s + totalLen += s.length() + } + + if allAscii { + buf := bytes.NewBuffer(make([]byte, 0, totalLen)) + for _, s := range strs { + buf.WriteString(s.String()) + } + return asciiString(buf.String()) + } else { + buf := make([]uint16, totalLen) + pos := int64(0) + for _, s := range strs { + switch s := s.(type) { + case asciiString: + for i := 0; i < len(s); i++ { + buf[pos] = uint16(s[i]) + pos++ + } + case unicodeString: + copy(buf[pos:], s) + pos += s.length() + } + } + return unicodeString(buf) + } +} + +func (r *Runtime) stringproto_indexOf(call FunctionCall) Value { + r.checkObjectCoercible(call.This) + value := call.This.ToString() + target := call.Argument(0).ToString() + pos := call.Argument(1).ToInteger() + + if pos < 0 { + pos = 0 + } else { + l := value.length() + if pos > l { + pos = l + } + } + + return intToValue(value.index(target, pos)) +} + +func (r *Runtime) stringproto_lastIndexOf(call FunctionCall) Value { + r.checkObjectCoercible(call.This) + value := call.This.ToString() + target := call.Argument(0).ToString() + numPos := call.Argument(1).ToNumber() + + var pos int64 + if f, ok := numPos.assertFloat(); ok && math.IsNaN(f) { + pos = value.length() + } else { + pos = numPos.ToInteger() + if pos < 0 { + pos = 0 + } else { + l := value.length() + if pos > l { + pos = l + } + } + } + + return intToValue(value.lastIndex(target, pos)) +} + +func (r *Runtime) stringproto_localeCompare(call FunctionCall) Value { + r.checkObjectCoercible(call.This) + this := norm.NFD.String(call.This.String()) + that := norm.NFD.String(call.Argument(0).String()) + return intToValue(int64(collator.CompareString(this, that))) +} + +func (r *Runtime) stringproto_match(call FunctionCall) Value { + r.checkObjectCoercible(call.This) + s := call.This.ToString() + regexp := call.Argument(0) + var rx *regexpObject + if regexp, ok := regexp.(*Object); ok { + rx, _ = regexp.self.(*regexpObject) + } + + if rx == nil { + rx = r.builtin_newRegExp([]Value{regexp}).self.(*regexpObject) + } + + if rx.global { + rx.putStr("lastIndex", intToValue(0), false) + var a []Value + var previousLastIndex int64 + for { + match, result := rx.execRegexp(s) + if !match { + break + } + thisIndex := rx.getStr("lastIndex").ToInteger() + if thisIndex == previousLastIndex { + previousLastIndex++ + rx.putStr("lastIndex", intToValue(previousLastIndex), false) + } else { + previousLastIndex = thisIndex + } + a = append(a, s.substring(int64(result[0]), int64(result[1]))) + } + if len(a) == 0 { + return _null + } + return r.newArrayValues(a) + } else { + return rx.exec(s) + } +} + +func (r *Runtime) stringproto_replace(call FunctionCall) Value { + s := call.This.ToString() + var str string + var isASCII bool + if astr, ok := s.(asciiString); ok { + str = string(astr) + isASCII = true + } else { + str = s.String() + } + searchValue := call.Argument(0) + replaceValue := call.Argument(1) + + var found [][]int + + if searchValue, ok := searchValue.(*Object); ok { + if regexp, ok := searchValue.self.(*regexpObject); ok { + find := 1 + if regexp.global { + find = -1 + } + if isASCII { + found = regexp.pattern.FindAllSubmatchIndexASCII(str, find) + } else { + found = regexp.pattern.FindAllSubmatchIndexUTF8(str, find) + } + if found == nil { + return s + } + } + } + + if found == nil { + found = searchSubstringUTF8(str, searchValue.String()) + } + + if len(found) == 0 { + return s + } + + var buf bytes.Buffer + lastIndex := 0 + + var rcall func(FunctionCall) Value + + if replaceValue, ok := replaceValue.(*Object); ok { + if c, ok := replaceValue.self.assertCallable(); ok { + rcall = c + } + } + + if rcall != nil { + for _, item := range found { + if item[0] != lastIndex { + buf.WriteString(str[lastIndex:item[0]]) + } + matchCount := len(item) / 2 + argumentList := make([]Value, matchCount+2) + for index := 0; index < matchCount; index++ { + offset := 2 * index + if item[offset] != -1 { + if isASCII { + argumentList[index] = asciiString(str[item[offset]:item[offset+1]]) + } else { + argumentList[index] = newStringValue(str[item[offset]:item[offset+1]]) + } + } else { + argumentList[index] = _undefined + } + } + argumentList[matchCount] = valueInt(item[0]) + argumentList[matchCount+1] = s + replacement := rcall(FunctionCall{ + This: _undefined, + Arguments: argumentList, + }).String() + buf.WriteString(replacement) + lastIndex = item[1] + } + } else { + newstring := replaceValue.String() + + for _, item := range found { + if item[0] != lastIndex { + buf.WriteString(str[lastIndex:item[0]]) + } + matches := len(item) / 2 + for i := 0; i < len(newstring); i++ { + if newstring[i] == '$' && i < len(newstring)-1 { + ch := newstring[i+1] + switch ch { + case '$': + buf.WriteByte('$') + case '`': + buf.WriteString(str[0:item[0]]) + case '\'': + buf.WriteString(str[item[1]:]) + case '&': + buf.WriteString(str[item[0]:item[1]]) + default: + matchNumber := 0 + l := 0 + for _, ch := range newstring[i+1:] { + if ch >= '0' && ch <= '9' { + m := matchNumber*10 + int(ch-'0') + if m >= matches { + break + } + matchNumber = m + l++ + } else { + break + } + } + if l > 0 { + offset := 2 * matchNumber + if offset < len(item) && item[offset] != -1 { + buf.WriteString(str[item[offset]:item[offset+1]]) + } + i += l - 1 + } else { + buf.WriteByte('$') + buf.WriteByte(ch) + } + + } + i++ + } else { + buf.WriteByte(newstring[i]) + } + } + lastIndex = item[1] + } + } + + if lastIndex != len(str) { + buf.WriteString(str[lastIndex:]) + } + + return newStringValue(buf.String()) +} + +func (r *Runtime) stringproto_search(call FunctionCall) Value { + r.checkObjectCoercible(call.This) + s := call.This.ToString() + regexp := call.Argument(0) + var rx *regexpObject + if regexp, ok := regexp.(*Object); ok { + rx, _ = regexp.self.(*regexpObject) + } + + if rx == nil { + rx = r.builtin_newRegExp([]Value{regexp}).self.(*regexpObject) + } + + match, result := rx.execRegexp(s) + if !match { + return intToValue(-1) + } + return intToValue(int64(result[0])) +} + +func (r *Runtime) stringproto_slice(call FunctionCall) Value { + r.checkObjectCoercible(call.This) + s := call.This.ToString() + + l := s.length() + start := call.Argument(0).ToInteger() + var end int64 + if arg1 := call.Argument(1); arg1 != _undefined { + end = arg1.ToInteger() + } else { + end = l + } + + if start < 0 { + start += l + if start < 0 { + start = 0 + } + } else { + if start > l { + start = l + } + } + + if end < 0 { + end += l + if end < 0 { + end = 0 + } + } else { + if end > l { + end = l + } + } + + if end > start { + return s.substring(start, end) + } + return stringEmpty +} + +func (r *Runtime) stringproto_split(call FunctionCall) Value { + r.checkObjectCoercible(call.This) + s := call.This.ToString() + + separatorValue := call.Argument(0) + limitValue := call.Argument(1) + limit := -1 + if limitValue != _undefined { + limit = int(toUInt32(limitValue)) + } + + if limit == 0 { + return r.newArrayValues(nil) + } + + if separatorValue == _undefined { + return r.newArrayValues([]Value{s}) + } + + var search *regexpObject + if o, ok := separatorValue.(*Object); ok { + search, _ = o.self.(*regexpObject) + } + + if search != nil { + targetLength := s.length() + valueArray := []Value{} + result := search.pattern.FindAllSubmatchIndex(s, -1) + lastIndex := 0 + found := 0 + + for _, match := range result { + if match[0] == match[1] { + // FIXME Ugh, this is a hack + if match[0] == 0 || int64(match[0]) == targetLength { + continue + } + } + + if lastIndex != match[0] { + valueArray = append(valueArray, s.substring(int64(lastIndex), int64(match[0]))) + found++ + } else if lastIndex == match[0] { + if lastIndex != -1 { + valueArray = append(valueArray, stringEmpty) + found++ + } + } + + lastIndex = match[1] + if found == limit { + goto RETURN + } + + captureCount := len(match) / 2 + for index := 1; index < captureCount; index++ { + offset := index * 2 + var value Value + if match[offset] != -1 { + value = s.substring(int64(match[offset]), int64(match[offset+1])) + } else { + value = _undefined + } + valueArray = append(valueArray, value) + found++ + if found == limit { + goto RETURN + } + } + } + + if found != limit { + if int64(lastIndex) != targetLength { + valueArray = append(valueArray, s.substring(int64(lastIndex), targetLength)) + } else { + valueArray = append(valueArray, stringEmpty) + } + } + + RETURN: + return r.newArrayValues(valueArray) + + } else { + separator := separatorValue.String() + + excess := false + str := s.String() + if limit > len(str) { + limit = len(str) + } + splitLimit := limit + if limit > 0 { + splitLimit = limit + 1 + excess = true + } + + split := strings.SplitN(str, separator, splitLimit) + + if excess && len(split) > limit { + split = split[:limit] + } + + valueArray := make([]Value, len(split)) + for index, value := range split { + valueArray[index] = newStringValue(value) + } + + return r.newArrayValues(valueArray) + } + +} + +func (r *Runtime) stringproto_substring(call FunctionCall) Value { + r.checkObjectCoercible(call.This) + s := call.This.ToString() + + l := s.length() + intStart := call.Argument(0).ToInteger() + var intEnd int64 + if end := call.Argument(1); end != _undefined { + intEnd = end.ToInteger() + } else { + intEnd = l + } + if intStart < 0 { + intStart = 0 + } else if intStart > l { + intStart = l + } + + if intEnd < 0 { + intEnd = 0 + } else if intEnd > l { + intEnd = l + } + + if intStart > intEnd { + intStart, intEnd = intEnd, intStart + } + + return s.substring(intStart, intEnd) +} + +func (r *Runtime) stringproto_toLowerCase(call FunctionCall) Value { + r.checkObjectCoercible(call.This) + s := call.This.ToString() + + return s.toLower() +} + +func (r *Runtime) stringproto_toUpperCase(call FunctionCall) Value { + r.checkObjectCoercible(call.This) + s := call.This.ToString() + + return s.toUpper() +} + +func (r *Runtime) stringproto_trim(call FunctionCall) Value { + r.checkObjectCoercible(call.This) + s := call.This.ToString() + + return newStringValue(strings.Trim(s.String(), parser.WhitespaceChars)) +} + +func (r *Runtime) stringproto_substr(call FunctionCall) Value { + s := call.This.ToString() + start := call.Argument(0).ToInteger() + var length int64 + sl := int64(s.length()) + if arg := call.Argument(1); arg != _undefined { + length = arg.ToInteger() + } else { + length = sl + } + + if start < 0 { + start = max(sl+start, 0) + } + + length = min(max(length, 0), sl-start) + if length <= 0 { + return stringEmpty + } + + return s.substring(start, start+length) +} + +func (r *Runtime) initString() { + r.global.StringPrototype = r.builtin_newString([]Value{stringEmpty}) + + o := r.global.StringPrototype.self + o.(*stringObject).prototype = r.global.ObjectPrototype + o._putProp("toString", r.newNativeFunc(r.stringproto_toString, nil, "toString", nil, 0), true, false, true) + o._putProp("valueOf", r.newNativeFunc(r.stringproto_valueOf, nil, "valueOf", nil, 0), true, false, true) + o._putProp("charAt", r.newNativeFunc(r.stringproto_charAt, nil, "charAt", nil, 1), true, false, true) + o._putProp("charCodeAt", r.newNativeFunc(r.stringproto_charCodeAt, nil, "charCodeAt", nil, 1), true, false, true) + o._putProp("concat", r.newNativeFunc(r.stringproto_concat, nil, "concat", nil, 1), true, false, true) + o._putProp("indexOf", r.newNativeFunc(r.stringproto_indexOf, nil, "indexOf", nil, 1), true, false, true) + o._putProp("lastIndexOf", r.newNativeFunc(r.stringproto_lastIndexOf, nil, "lastIndexOf", nil, 1), true, false, true) + o._putProp("localeCompare", r.newNativeFunc(r.stringproto_localeCompare, nil, "localeCompare", nil, 1), true, false, true) + o._putProp("match", r.newNativeFunc(r.stringproto_match, nil, "match", nil, 1), true, false, true) + o._putProp("replace", r.newNativeFunc(r.stringproto_replace, nil, "replace", nil, 2), true, false, true) + o._putProp("search", r.newNativeFunc(r.stringproto_search, nil, "search", nil, 1), true, false, true) + o._putProp("slice", r.newNativeFunc(r.stringproto_slice, nil, "slice", nil, 2), true, false, true) + o._putProp("split", r.newNativeFunc(r.stringproto_split, nil, "split", nil, 2), true, false, true) + o._putProp("substring", r.newNativeFunc(r.stringproto_substring, nil, "substring", nil, 2), true, false, true) + o._putProp("toLowerCase", r.newNativeFunc(r.stringproto_toLowerCase, nil, "toLowerCase", nil, 0), true, false, true) + o._putProp("toLocaleLowerCase", r.newNativeFunc(r.stringproto_toLowerCase, nil, "toLocaleLowerCase", nil, 0), true, false, true) + o._putProp("toUpperCase", r.newNativeFunc(r.stringproto_toUpperCase, nil, "toUpperCase", nil, 0), true, false, true) + o._putProp("toLocaleUpperCase", r.newNativeFunc(r.stringproto_toUpperCase, nil, "toLocaleUpperCase", nil, 0), true, false, true) + o._putProp("trim", r.newNativeFunc(r.stringproto_trim, nil, "trim", nil, 0), true, false, true) + + // Annex B + o._putProp("substr", r.newNativeFunc(r.stringproto_substr, nil, "substr", nil, 2), true, false, true) + + r.global.String = r.newNativeFunc(r.builtin_String, r.builtin_newString, "String", r.global.StringPrototype, 1) + o = r.global.String.self + o._putProp("fromCharCode", r.newNativeFunc(r.string_fromcharcode, nil, "fromCharCode", nil, 1), true, false, true) + + r.addToGlobal("String", r.global.String) + + r.stringSingleton = r.builtin_new(r.global.String, nil).self.(*stringObject) +} diff --git a/vendor/github.com/dop251/goja/builtin_typedarrays.go b/vendor/github.com/dop251/goja/builtin_typedarrays.go new file mode 100644 index 00000000000..507c1843fa2 --- /dev/null +++ b/vendor/github.com/dop251/goja/builtin_typedarrays.go @@ -0,0 +1,105 @@ +package goja + +type objectArrayBuffer struct { + baseObject + data []byte +} + +func (o *objectArrayBuffer) export() interface{} { + return o.data +} + +func (r *Runtime) _newArrayBuffer(proto *Object, o *Object) *objectArrayBuffer { + if o == nil { + o = &Object{runtime: r} + } + b := &objectArrayBuffer{ + baseObject: baseObject{ + class: classObject, + val: o, + prototype: proto, + extensible: true, + }, + } + o.self = b + b.init() + return b +} + +func (r *Runtime) builtin_ArrayBuffer(args []Value, proto *Object) *Object { + b := r._newArrayBuffer(proto, nil) + if len(args) > 0 { + b.data = make([]byte, toLength(args[0])) + } + return b.val +} + +func (r *Runtime) arrayBufferProto_getByteLength(call FunctionCall) Value { + o := r.toObject(call.This) + if b, ok := o.self.(*objectArrayBuffer); ok { + return intToValue(int64(len(b.data))) + } + r.typeErrorResult(true, "Object is not ArrayBuffer: %s", o) + panic("unreachable") +} + +func (r *Runtime) arrayBufferProto_slice(call FunctionCall) Value { + o := r.toObject(call.This) + if b, ok := o.self.(*objectArrayBuffer); ok { + l := int64(len(b.data)) + start := toLength(call.Argument(0)) + if start < 0 { + start = l + start + } + if start < 0 { + start = 0 + } else if start > l { + start = l + } + var stop int64 + if arg := call.Argument(1); arg != _undefined { + stop = toLength(arg) + if stop < 0 { + stop = int64(len(b.data)) + stop + } + if stop < 0 { + stop = 0 + } else if stop > l { + stop = l + } + + } else { + stop = l + } + + ret := r._newArrayBuffer(r.global.ArrayBufferPrototype, nil) + + if stop > start { + ret.data = b.data[start:stop] + } + + return ret.val + } + r.typeErrorResult(true, "Object is not ArrayBuffer: %s", o) + panic("unreachable") +} + +func (r *Runtime) createArrayBufferProto(val *Object) objectImpl { + b := r._newArrayBuffer(r.global.Object, val) + byteLengthProp := &valueProperty{ + accessor: true, + configurable: true, + getterFunc: r.newNativeFunc(r.arrayBufferProto_getByteLength, nil, "get byteLength", nil, 0), + } + b._put("byteLength", byteLengthProp) + b._putProp("slice", r.newNativeFunc(r.arrayBufferProto_slice, nil, "slice", nil, 2), true, false, true) + return b +} + +func (r *Runtime) initTypedArrays() { + + r.global.ArrayBufferPrototype = r.newLazyObject(r.createArrayBufferProto) + + r.global.ArrayBuffer = r.newNativeFuncConstruct(r.builtin_ArrayBuffer, "ArrayBuffer", r.global.ArrayBufferPrototype, 1) + r.addToGlobal("ArrayBuffer", r.global.ArrayBuffer) +} diff --git a/vendor/github.com/dop251/goja/compiler.go b/vendor/github.com/dop251/goja/compiler.go new file mode 100644 index 00000000000..1a95e9c61fd --- /dev/null +++ b/vendor/github.com/dop251/goja/compiler.go @@ -0,0 +1,461 @@ +package goja + +import ( + "fmt" + "github.com/dop251/goja/ast" + "github.com/dop251/goja/file" + "sort" + "strconv" +) + +const ( + blockLoop = iota + blockTry + blockBranch + blockSwitch + blockWith +) + +type CompilerError struct { + Message string + File *SrcFile + Offset int +} + +type CompilerSyntaxError struct { + CompilerError +} + +type CompilerReferenceError struct { + CompilerError +} + +type srcMapItem struct { + pc int + srcPos int +} + +type Program struct { + code []instruction + values []Value + + funcName string + src *SrcFile + srcMap []srcMapItem +} + +type compiler struct { + p *Program + scope *scope + block *block + blockStart int + + enumGetExpr compiledEnumGetExpr + + evalVM *vm +} + +type scope struct { + names map[string]uint32 + outer *scope + strict bool + eval bool + lexical bool + dynamic bool + accessed bool + argsNeeded bool + thisNeeded bool + + namesMap map[string]string + lastFreeTmp int +} + +type block struct { + typ int + label string + needResult bool + cont int + breaks []int + conts []int + outer *block +} + +func (c *compiler) leaveBlock() { + lbl := len(c.p.code) + for _, item := range c.block.breaks { + c.p.code[item] = jump(lbl - item) + } + if c.block.typ == blockLoop { + for _, item := range c.block.conts { + c.p.code[item] = jump(c.block.cont - item) + } + } + c.block = c.block.outer +} + +func (e *CompilerSyntaxError) Error() string { + if e.File != nil { + return fmt.Sprintf("SyntaxError: %s at %s", e.Message, e.File.Position(e.Offset)) + } + return fmt.Sprintf("SyntaxError: %s", e.Message) +} + +func (e *CompilerReferenceError) Error() string { + return fmt.Sprintf("ReferenceError: %s", e.Message) +} + +func (c *compiler) newScope() { + strict := false + if c.scope != nil { + strict = c.scope.strict + } + c.scope = &scope{ + outer: c.scope, + names: make(map[string]uint32), + strict: strict, + namesMap: make(map[string]string), + } +} + +func (c *compiler) popScope() { + c.scope = c.scope.outer +} + +func newCompiler() *compiler { + c := &compiler{ + p: &Program{}, + } + + c.enumGetExpr.init(c, file.Idx(0)) + + c.newScope() + c.scope.dynamic = true + return c +} + +func (p *Program) defineLiteralValue(val Value) uint32 { + for idx, v := range p.values { + if v.SameAs(val) { + return uint32(idx) + } + } + idx := uint32(len(p.values)) + p.values = append(p.values, val) + return idx +} + +func (p *Program) dumpCode(logger func(format string, args ...interface{})) { + p._dumpCode("", logger) +} + +func (p *Program) _dumpCode(indent string, logger func(format string, args ...interface{})) { + logger("values: %+v", p.values) + for pc, ins := range p.code { + logger("%s %d: %T(%v)", indent, pc, ins, ins) + if f, ok := ins.(*newFunc); ok { + f.prg._dumpCode(indent+">", logger) + } + } +} + +func (p *Program) sourceOffset(pc int) int { + i := sort.Search(len(p.srcMap), func(idx int) bool { + return p.srcMap[idx].pc > pc + }) - 1 + if i >= 0 { + return p.srcMap[i].srcPos + } + + return 0 +} + +func (s *scope) isFunction() bool { + if !s.lexical { + return s.outer != nil + } + return s.outer.isFunction() +} + +func (s *scope) lookupName(name string) (idx uint32, found, noDynamics bool) { + var level uint32 = 0 + noDynamics = true + for curScope := s; curScope != nil; curScope = curScope.outer { + if curScope != s { + curScope.accessed = true + } + if curScope.dynamic { + noDynamics = false + } else { + var mapped string + if m, exists := curScope.namesMap[name]; exists { + mapped = m + } else { + mapped = name + } + if i, exists := curScope.names[mapped]; exists { + idx = i | (level << 24) + found = true + return + } + } + if name == "arguments" && !s.lexical && s.isFunction() { + s.argsNeeded = true + s.accessed = true + idx, _ = s.bindName(name) + found = true + return + } + level++ + } + return +} + +func (s *scope) bindName(name string) (uint32, bool) { + if s.lexical { + return s.outer.bindName(name) + } + + if idx, exists := s.names[name]; exists { + return idx, false + } + idx := uint32(len(s.names)) + s.names[name] = idx + return idx, true +} + +func (s *scope) bindNameShadow(name string) (uint32, bool) { + if s.lexical { + return s.outer.bindName(name) + } + + unique := true + + if idx, exists := s.names[name]; exists { + unique = false + // shadow the var + delete(s.names, name) + n := strconv.Itoa(int(idx)) + s.names[n] = idx + } + idx := uint32(len(s.names)) + s.names[name] = idx + return idx, unique +} + +func (c *compiler) markBlockStart() { + c.blockStart = len(c.p.code) +} + +func (c *compiler) compile(in *ast.Program) { + c.p.src = NewSrcFile(in.File.Name(), in.File.Source(), in.SourceMap) + + if len(in.Body) > 0 { + if !c.scope.strict { + c.scope.strict = c.isStrict(in.Body) + } + } + + c.compileDeclList(in.DeclarationList, false) + c.compileFunctions(in.DeclarationList) + + c.markBlockStart() + c.compileStatements(in.Body, true) + + c.p.code = append(c.p.code, halt) + code := c.p.code + c.p.code = make([]instruction, 0, len(code)+len(c.scope.names)+2) + if c.scope.eval { + if !c.scope.strict { + c.emit(jne(2), newStash) + } else { + c.emit(pop, newStash) + } + } + l := len(c.p.code) + c.p.code = c.p.code[:l+len(c.scope.names)] + for name, nameIdx := range c.scope.names { + c.p.code[l+int(nameIdx)] = bindName(name) + } + + c.p.code = append(c.p.code, code...) + for i, _ := range c.p.srcMap { + c.p.srcMap[i].pc += len(c.scope.names) + } + +} + +func (c *compiler) compileDeclList(v []ast.Declaration, inFunc bool) { + for _, value := range v { + switch value := value.(type) { + case *ast.FunctionDeclaration: + c.compileFunctionDecl(value) + case *ast.VariableDeclaration: + c.compileVarDecl(value, inFunc) + default: + panic(fmt.Errorf("Unsupported declaration: %T", value)) + } + } +} + +func (c *compiler) compileFunctions(v []ast.Declaration) { + for _, value := range v { + if value, ok := value.(*ast.FunctionDeclaration); ok { + c.compileFunction(value) + } + } +} + +func (c *compiler) compileVarDecl(v *ast.VariableDeclaration, inFunc bool) { + for _, item := range v.List { + if c.scope.strict { + c.checkIdentifierLName(item.Name, int(item.Idx)-1) + c.checkIdentifierName(item.Name, int(item.Idx)-1) + } + if !inFunc || item.Name != "arguments" { + idx, ok := c.scope.bindName(item.Name) + _ = idx + //log.Printf("Define var: %s: %x", item.Name, idx) + if !ok { + // TODO: error + } + } + } +} + +func (c *compiler) addDecls() []instruction { + code := make([]instruction, len(c.scope.names)) + for name, nameIdx := range c.scope.names { + code[nameIdx] = bindName(name) + } + return code +} + +func (c *compiler) convertInstrToStashless(instr uint32, args int) (newIdx int, convert bool) { + level := instr >> 24 + idx := instr & 0x00FFFFFF + if level > 0 { + level-- + newIdx = int((level << 24) | idx) + } else { + iidx := int(idx) + if iidx < args { + newIdx = -iidx - 1 + } else { + newIdx = iidx - args + 1 + } + convert = true + } + return +} + +func (c *compiler) convertFunctionToStashless(code []instruction, args int) { + code[0] = enterFuncStashless{stackSize: uint32(len(c.scope.names) - args), args: uint32(args)} + for pc := 1; pc < len(code); pc++ { + instr := code[pc] + if instr == ret { + code[pc] = retStashless + } + switch instr := instr.(type) { + case getLocal: + if newIdx, convert := c.convertInstrToStashless(uint32(instr), args); convert { + code[pc] = loadStack(newIdx) + } else { + code[pc] = getLocal(newIdx) + } + case setLocal: + if newIdx, convert := c.convertInstrToStashless(uint32(instr), args); convert { + code[pc] = storeStack(newIdx) + } else { + code[pc] = setLocal(newIdx) + } + case setLocalP: + if newIdx, convert := c.convertInstrToStashless(uint32(instr), args); convert { + code[pc] = storeStackP(newIdx) + } else { + code[pc] = setLocalP(newIdx) + } + case getVar: + level := instr.idx >> 24 + idx := instr.idx & 0x00FFFFFF + level-- + instr.idx = level<<24 | idx + code[pc] = instr + case setVar: + level := instr.idx >> 24 + idx := instr.idx & 0x00FFFFFF + level-- + instr.idx = level<<24 | idx + code[pc] = instr + } + } +} + +func (c *compiler) compileFunctionDecl(v *ast.FunctionDeclaration) { + idx, ok := c.scope.bindName(v.Function.Name.Name) + if !ok { + // TODO: error + } + _ = idx + // log.Printf("Define function: %s: %x", v.Function.Name.Name, idx) +} + +func (c *compiler) compileFunction(v *ast.FunctionDeclaration) { + e := &compiledIdentifierExpr{ + name: v.Function.Name.Name, + } + e.init(c, v.Function.Idx0()) + e.emitSetter(c.compileFunctionLiteral(v.Function, false)) + c.emit(pop) +} + +func (c *compiler) emit(instructions ...instruction) { + c.p.code = append(c.p.code, instructions...) +} + +func (c *compiler) throwSyntaxError(offset int, format string, args ...interface{}) { + panic(&CompilerSyntaxError{ + CompilerError: CompilerError{ + File: c.p.src, + Offset: offset, + Message: fmt.Sprintf(format, args...), + }, + }) +} + +func (c *compiler) isStrict(list []ast.Statement) bool { + for _, st := range list { + if st, ok := st.(*ast.ExpressionStatement); ok { + if e, ok := st.Expression.(*ast.StringLiteral); ok { + if e.Literal == `"use strict"` || e.Literal == `'use strict'` { + return true + } + } else { + break + } + } else { + break + } + } + return false +} + +func (c *compiler) isStrictStatement(s ast.Statement) bool { + if s, ok := s.(*ast.BlockStatement); ok { + return c.isStrict(s.List) + } + return false +} + +func (c *compiler) checkIdentifierName(name string, offset int) { + switch name { + case "implements", "interface", "let", "package", "private", "protected", "public", "static", "yield": + c.throwSyntaxError(offset, "Unexpected strict mode reserved word") + } +} + +func (c *compiler) checkIdentifierLName(name string, offset int) { + switch name { + case "eval", "arguments": + c.throwSyntaxError(offset, "Assignment to eval or arguments is not allowed in strict mode") + } +} diff --git a/vendor/github.com/dop251/goja/compiler_expr.go b/vendor/github.com/dop251/goja/compiler_expr.go new file mode 100644 index 00000000000..9d215ca0de0 --- /dev/null +++ b/vendor/github.com/dop251/goja/compiler_expr.go @@ -0,0 +1,1562 @@ +package goja + +import ( + "fmt" + "github.com/dop251/goja/ast" + "github.com/dop251/goja/file" + "github.com/dop251/goja/token" + "regexp" +) + +var ( + octalRegexp = regexp.MustCompile(`^0[0-7]`) +) + +type compiledExpr interface { + emitGetter(putOnStack bool) + emitSetter(valueExpr compiledExpr) + emitUnary(prepare, body func(), postfix, putOnStack bool) + deleteExpr() compiledExpr + constant() bool + addSrcMap() +} + +type compiledExprOrRef interface { + compiledExpr + emitGetterOrRef() +} + +type compiledCallExpr struct { + baseCompiledExpr + args []compiledExpr + callee compiledExpr +} + +type compiledObjectLiteral struct { + baseCompiledExpr + expr *ast.ObjectLiteral +} + +type compiledArrayLiteral struct { + baseCompiledExpr + expr *ast.ArrayLiteral +} + +type compiledRegexpLiteral struct { + baseCompiledExpr + expr *ast.RegExpLiteral +} + +type compiledLiteral struct { + baseCompiledExpr + val Value +} + +type compiledAssignExpr struct { + baseCompiledExpr + left, right compiledExpr + operator token.Token +} + +type deleteGlobalExpr struct { + baseCompiledExpr + name string +} + +type deleteVarExpr struct { + baseCompiledExpr + name string +} + +type deletePropExpr struct { + baseCompiledExpr + left compiledExpr + name string +} + +type deleteElemExpr struct { + baseCompiledExpr + left, member compiledExpr +} + +type constantExpr struct { + baseCompiledExpr + val Value +} + +type baseCompiledExpr struct { + c *compiler + offset int +} + +type compiledIdentifierExpr struct { + baseCompiledExpr + name string +} + +type compiledFunctionLiteral struct { + baseCompiledExpr + expr *ast.FunctionLiteral + isExpr bool +} + +type compiledBracketExpr struct { + baseCompiledExpr + left, member compiledExpr +} + +type compiledThisExpr struct { + baseCompiledExpr +} + +type compiledNewExpr struct { + baseCompiledExpr + callee compiledExpr + args []compiledExpr +} + +type compiledSequenceExpr struct { + baseCompiledExpr + sequence []compiledExpr +} + +type compiledUnaryExpr struct { + baseCompiledExpr + operand compiledExpr + operator token.Token + postfix bool +} + +type compiledConditionalExpr struct { + baseCompiledExpr + test, consequent, alternate compiledExpr +} + +type compiledLogicalOr struct { + baseCompiledExpr + left, right compiledExpr +} + +type compiledLogicalAnd struct { + baseCompiledExpr + left, right compiledExpr +} + +type compiledBinaryExpr struct { + baseCompiledExpr + left, right compiledExpr + operator token.Token +} + +type compiledVariableExpr struct { + baseCompiledExpr + name string + initializer compiledExpr + expr *ast.VariableExpression +} + +type compiledEnumGetExpr struct { + baseCompiledExpr +} + +type defaultDeleteExpr struct { + baseCompiledExpr + expr compiledExpr +} + +func (e *defaultDeleteExpr) emitGetter(putOnStack bool) { + e.expr.emitGetter(false) + if putOnStack { + e.c.emit(loadVal(e.c.p.defineLiteralValue(valueTrue))) + } +} + +func (c *compiler) compileExpression(v ast.Expression) compiledExpr { + // log.Printf("compileExpression: %T", v) + switch v := v.(type) { + case nil: + return nil + case *ast.AssignExpression: + return c.compileAssignExpression(v) + case *ast.NumberLiteral: + return c.compileNumberLiteral(v) + case *ast.StringLiteral: + return c.compileStringLiteral(v) + case *ast.BooleanLiteral: + return c.compileBooleanLiteral(v) + case *ast.NullLiteral: + r := &compiledLiteral{ + val: _null, + } + r.init(c, v.Idx0()) + return r + case *ast.Identifier: + return c.compileIdentifierExpression(v) + case *ast.CallExpression: + return c.compileCallExpression(v) + case *ast.ObjectLiteral: + return c.compileObjectLiteral(v) + case *ast.ArrayLiteral: + return c.compileArrayLiteral(v) + case *ast.RegExpLiteral: + return c.compileRegexpLiteral(v) + case *ast.VariableExpression: + return c.compileVariableExpression(v) + case *ast.BinaryExpression: + return c.compileBinaryExpression(v) + case *ast.UnaryExpression: + return c.compileUnaryExpression(v) + case *ast.ConditionalExpression: + return c.compileConditionalExpression(v) + case *ast.FunctionLiteral: + return c.compileFunctionLiteral(v, true) + case *ast.DotExpression: + r := &compiledDotExpr{ + left: c.compileExpression(v.Left), + name: v.Identifier.Name, + } + r.init(c, v.Idx0()) + return r + case *ast.BracketExpression: + r := &compiledBracketExpr{ + left: c.compileExpression(v.Left), + member: c.compileExpression(v.Member), + } + r.init(c, v.Idx0()) + return r + case *ast.ThisExpression: + r := &compiledThisExpr{} + r.init(c, v.Idx0()) + return r + case *ast.SequenceExpression: + return c.compileSequenceExpression(v) + case *ast.NewExpression: + return c.compileNewExpression(v) + default: + panic(fmt.Errorf("Unknown expression type: %T", v)) + } +} + +func (e *baseCompiledExpr) constant() bool { + return false +} + +func (e *baseCompiledExpr) init(c *compiler, idx file.Idx) { + e.c = c + e.offset = int(idx) - 1 +} + +func (e *baseCompiledExpr) emitSetter(valueExpr compiledExpr) { + e.c.throwSyntaxError(e.offset, "Not a valid left-value expression") +} + +func (e *baseCompiledExpr) deleteExpr() compiledExpr { + r := &constantExpr{ + val: valueTrue, + } + r.init(e.c, file.Idx(e.offset+1)) + return r +} + +func (e *baseCompiledExpr) emitUnary(prepare, body func(), postfix bool, putOnStack bool) { + e.c.throwSyntaxError(e.offset, "Not a valid left-value expression") +} + +func (e *baseCompiledExpr) addSrcMap() { + if e.offset > 0 { + e.c.p.srcMap = append(e.c.p.srcMap, srcMapItem{pc: len(e.c.p.code), srcPos: e.offset}) + } +} + +func (e *constantExpr) emitGetter(putOnStack bool) { + if putOnStack { + e.addSrcMap() + e.c.emit(loadVal(e.c.p.defineLiteralValue(e.val))) + } +} + +func (e *compiledIdentifierExpr) emitGetter(putOnStack bool) { + e.addSrcMap() + if idx, found, noDynamics := e.c.scope.lookupName(e.name); noDynamics { + if found { + if putOnStack { + e.c.emit(getLocal(idx)) + } + } else { + panic("No dynamics and not found") + } + } else { + if found { + e.c.emit(getVar{name: e.name, idx: idx}) + } else { + e.c.emit(getVar1(e.name)) + } + if !putOnStack { + e.c.emit(pop) + } + } +} + +func (e *compiledIdentifierExpr) emitGetterOrRef() { + e.addSrcMap() + if idx, found, noDynamics := e.c.scope.lookupName(e.name); noDynamics { + if found { + e.c.emit(getLocal(idx)) + } else { + panic("No dynamics and not found") + } + } else { + if found { + e.c.emit(getVar{name: e.name, idx: idx, ref: true}) + } else { + e.c.emit(getVar1Callee(e.name)) + } + } +} + +func (c *compiler) emitVarSetter1(name string, offset int, emitRight func(isRef bool)) { + if c.scope.strict { + c.checkIdentifierLName(name, offset) + } + + if idx, found, noDynamics := c.scope.lookupName(name); noDynamics { + emitRight(false) + if found { + c.emit(setLocal(idx)) + } else { + if c.scope.strict { + c.emit(setGlobalStrict(name)) + } else { + c.emit(setGlobal(name)) + } + } + } else { + if found { + c.emit(resolveVar{name: name, idx: idx, strict: c.scope.strict}) + emitRight(true) + c.emit(putValue) + } else { + if c.scope.strict { + c.emit(resolveVar1Strict(name)) + } else { + c.emit(resolveVar1(name)) + } + emitRight(true) + c.emit(putValue) + } + } +} + +func (c *compiler) emitVarSetter(name string, offset int, valueExpr compiledExpr) { + c.emitVarSetter1(name, offset, func(bool) { + c.emitExpr(valueExpr, true) + }) +} + +func (e *compiledVariableExpr) emitSetter(valueExpr compiledExpr) { + e.c.emitVarSetter(e.name, e.offset, valueExpr) +} + +func (e *compiledIdentifierExpr) emitSetter(valueExpr compiledExpr) { + e.c.emitVarSetter(e.name, e.offset, valueExpr) +} + +func (e *compiledIdentifierExpr) emitUnary(prepare, body func(), postfix, putOnStack bool) { + if putOnStack { + e.c.emitVarSetter1(e.name, e.offset, func(isRef bool) { + e.c.emit(loadUndef) + if isRef { + e.c.emit(getValue) + } else { + e.emitGetter(true) + } + if prepare != nil { + prepare() + } + if !postfix { + body() + } + e.c.emit(rdupN(1)) + if postfix { + body() + } + }) + e.c.emit(pop) + } else { + e.c.emitVarSetter1(e.name, e.offset, func(isRef bool) { + if isRef { + e.c.emit(getValue) + } else { + e.emitGetter(true) + } + body() + }) + e.c.emit(pop) + } +} + +func (e *compiledIdentifierExpr) deleteExpr() compiledExpr { + if e.c.scope.strict { + e.c.throwSyntaxError(e.offset, "Delete of an unqualified identifier in strict mode") + panic("Unreachable") + } + if _, found, noDynamics := e.c.scope.lookupName(e.name); noDynamics { + if !found { + r := &deleteGlobalExpr{ + name: e.name, + } + r.init(e.c, file.Idx(0)) + return r + } else { + r := &constantExpr{ + val: valueFalse, + } + r.init(e.c, file.Idx(0)) + return r + } + } else { + r := &deleteVarExpr{ + name: e.name, + } + r.init(e.c, file.Idx(e.offset+1)) + return r + } +} + +type compiledDotExpr struct { + baseCompiledExpr + left compiledExpr + name string +} + +func (e *compiledDotExpr) emitGetter(putOnStack bool) { + e.left.emitGetter(true) + e.addSrcMap() + e.c.emit(getProp(e.name)) + if !putOnStack { + e.c.emit(pop) + } +} + +func (e *compiledDotExpr) emitSetter(valueExpr compiledExpr) { + e.left.emitGetter(true) + valueExpr.emitGetter(true) + if e.c.scope.strict { + e.c.emit(setPropStrict(e.name)) + } else { + e.c.emit(setProp(e.name)) + } +} + +func (e *compiledDotExpr) emitUnary(prepare, body func(), postfix, putOnStack bool) { + if !putOnStack { + e.left.emitGetter(true) + e.c.emit(dup) + e.c.emit(getProp(e.name)) + body() + if e.c.scope.strict { + e.c.emit(setPropStrict(e.name), pop) + } else { + e.c.emit(setProp(e.name), pop) + } + } else { + if !postfix { + e.left.emitGetter(true) + e.c.emit(dup) + e.c.emit(getProp(e.name)) + if prepare != nil { + prepare() + } + body() + if e.c.scope.strict { + e.c.emit(setPropStrict(e.name)) + } else { + e.c.emit(setProp(e.name)) + } + } else { + e.c.emit(loadUndef) + e.left.emitGetter(true) + e.c.emit(dup) + e.c.emit(getProp(e.name)) + if prepare != nil { + prepare() + } + e.c.emit(rdupN(2)) + body() + if e.c.scope.strict { + e.c.emit(setPropStrict(e.name)) + } else { + e.c.emit(setProp(e.name)) + } + e.c.emit(pop) + } + } +} + +func (e *compiledDotExpr) deleteExpr() compiledExpr { + r := &deletePropExpr{ + left: e.left, + name: e.name, + } + r.init(e.c, file.Idx(0)) + return r +} + +func (e *compiledBracketExpr) emitGetter(putOnStack bool) { + e.left.emitGetter(true) + e.member.emitGetter(true) + e.addSrcMap() + e.c.emit(getElem) + if !putOnStack { + e.c.emit(pop) + } +} + +func (e *compiledBracketExpr) emitSetter(valueExpr compiledExpr) { + e.left.emitGetter(true) + e.member.emitGetter(true) + valueExpr.emitGetter(true) + if e.c.scope.strict { + e.c.emit(setElemStrict) + } else { + e.c.emit(setElem) + } +} + +func (e *compiledBracketExpr) emitUnary(prepare, body func(), postfix, putOnStack bool) { + if !putOnStack { + e.left.emitGetter(true) + e.member.emitGetter(true) + e.c.emit(dupN(1), dupN(1)) + e.c.emit(getElem) + body() + if e.c.scope.strict { + e.c.emit(setElemStrict, pop) + } else { + e.c.emit(setElem, pop) + } + } else { + if !postfix { + e.left.emitGetter(true) + e.member.emitGetter(true) + e.c.emit(dupN(1), dupN(1)) + e.c.emit(getElem) + if prepare != nil { + prepare() + } + body() + if e.c.scope.strict { + e.c.emit(setElemStrict) + } else { + e.c.emit(setElem) + } + } else { + e.c.emit(loadUndef) + e.left.emitGetter(true) + e.member.emitGetter(true) + e.c.emit(dupN(1), dupN(1)) + e.c.emit(getElem) + if prepare != nil { + prepare() + } + e.c.emit(rdupN(3)) + body() + if e.c.scope.strict { + e.c.emit(setElemStrict, pop) + } else { + e.c.emit(setElem, pop) + } + } + } +} + +func (e *compiledBracketExpr) deleteExpr() compiledExpr { + r := &deleteElemExpr{ + left: e.left, + member: e.member, + } + r.init(e.c, file.Idx(0)) + return r +} + +func (e *deleteElemExpr) emitGetter(putOnStack bool) { + e.left.emitGetter(true) + e.member.emitGetter(true) + e.addSrcMap() + if e.c.scope.strict { + e.c.emit(deleteElemStrict) + } else { + e.c.emit(deleteElem) + } + if !putOnStack { + e.c.emit(pop) + } +} + +func (e *deletePropExpr) emitGetter(putOnStack bool) { + e.left.emitGetter(true) + e.addSrcMap() + if e.c.scope.strict { + e.c.emit(deletePropStrict(e.name)) + } else { + e.c.emit(deleteProp(e.name)) + } + if !putOnStack { + e.c.emit(pop) + } +} + +func (e *deleteVarExpr) emitGetter(putOnStack bool) { + /*if e.c.scope.strict { + e.c.throwSyntaxError(e.offset, "Delete of an unqualified identifier in strict mode") + return + }*/ + e.c.emit(deleteVar(e.name)) + if !putOnStack { + e.c.emit(pop) + } +} + +func (e *deleteGlobalExpr) emitGetter(putOnStack bool) { + /*if e.c.scope.strict { + e.c.throwSyntaxError(e.offset, "Delete of an unqualified identifier in strict mode") + return + }*/ + + e.c.emit(deleteGlobal(e.name)) + if !putOnStack { + e.c.emit(pop) + } +} + +func (e *compiledAssignExpr) emitGetter(putOnStack bool) { + e.addSrcMap() + switch e.operator { + case token.ASSIGN: + e.left.emitSetter(e.right) + case token.PLUS: + e.left.emitUnary(nil, func() { + e.right.emitGetter(true) + e.c.emit(add) + }, false, putOnStack) + return + case token.MINUS: + e.left.emitUnary(nil, func() { + e.right.emitGetter(true) + e.c.emit(sub) + }, false, putOnStack) + return + case token.MULTIPLY: + e.left.emitUnary(nil, func() { + e.right.emitGetter(true) + e.c.emit(mul) + }, false, putOnStack) + return + case token.SLASH: + e.left.emitUnary(nil, func() { + e.right.emitGetter(true) + e.c.emit(div) + }, false, putOnStack) + return + case token.REMAINDER: + e.left.emitUnary(nil, func() { + e.right.emitGetter(true) + e.c.emit(mod) + }, false, putOnStack) + return + case token.OR: + e.left.emitUnary(nil, func() { + e.right.emitGetter(true) + e.c.emit(or) + }, false, putOnStack) + return + case token.AND: + e.left.emitUnary(nil, func() { + e.right.emitGetter(true) + e.c.emit(and) + }, false, putOnStack) + return + case token.EXCLUSIVE_OR: + e.left.emitUnary(nil, func() { + e.right.emitGetter(true) + e.c.emit(xor) + }, false, putOnStack) + return + case token.SHIFT_LEFT: + e.left.emitUnary(nil, func() { + e.right.emitGetter(true) + e.c.emit(sal) + }, false, putOnStack) + return + case token.SHIFT_RIGHT: + e.left.emitUnary(nil, func() { + e.right.emitGetter(true) + e.c.emit(sar) + }, false, putOnStack) + return + case token.UNSIGNED_SHIFT_RIGHT: + e.left.emitUnary(nil, func() { + e.right.emitGetter(true) + e.c.emit(shr) + }, false, putOnStack) + return + default: + panic(fmt.Errorf("Unknown assign operator: %s", e.operator.String())) + } + if !putOnStack { + e.c.emit(pop) + } +} + +func (e *compiledLiteral) emitGetter(putOnStack bool) { + if putOnStack { + e.addSrcMap() + e.c.emit(loadVal(e.c.p.defineLiteralValue(e.val))) + } +} + +func (e *compiledLiteral) constant() bool { + return true +} + +func (e *compiledFunctionLiteral) emitGetter(putOnStack bool) { + e.c.newScope() + savedBlockStart := e.c.blockStart + savedPrg := e.c.p + e.c.p = &Program{ + src: e.c.p.src, + } + e.c.blockStart = 0 + + if e.expr.Name != nil { + e.c.p.funcName = e.expr.Name.Name + } + block := e.c.block + e.c.block = nil + defer func() { + e.c.block = block + }() + + if !e.c.scope.strict { + e.c.scope.strict = e.c.isStrictStatement(e.expr.Body) + } + + if e.c.scope.strict { + if e.expr.Name != nil { + e.c.checkIdentifierLName(e.expr.Name.Name, int(e.expr.Name.Idx)-1) + } + for _, item := range e.expr.ParameterList.List { + e.c.checkIdentifierName(item.Name, int(item.Idx)-1) + e.c.checkIdentifierLName(item.Name, int(item.Idx)-1) + } + } + + length := len(e.expr.ParameterList.List) + + for _, item := range e.expr.ParameterList.List { + _, unique := e.c.scope.bindNameShadow(item.Name) + if !unique && e.c.scope.strict { + e.c.throwSyntaxError(int(item.Idx)-1, "Strict mode function may not have duplicate parameter names (%s)", item.Name) + return + } + } + paramsCount := len(e.c.scope.names) + e.c.compileDeclList(e.expr.DeclarationList, true) + var needCallee bool + var calleeIdx uint32 + if e.isExpr && e.expr.Name != nil { + if idx, ok := e.c.scope.bindName(e.expr.Name.Name); ok { + calleeIdx = idx + needCallee = true + } + } + lenBefore := len(e.c.scope.names) + namesBefore := make([]string, 0, lenBefore) + for key, _ := range e.c.scope.names { + namesBefore = append(namesBefore, key) + } + maxPreambleLen := 2 + e.c.p.code = make([]instruction, maxPreambleLen) + if needCallee { + e.c.emit(loadCallee, setLocalP(calleeIdx)) + } + + e.c.compileFunctions(e.expr.DeclarationList) + e.c.markBlockStart() + e.c.compileStatement(e.expr.Body, false) + + if e.c.blockStart >= len(e.c.p.code)-1 || e.c.p.code[len(e.c.p.code)-1] != ret { + e.c.emit(loadUndef, ret) + } + + if !e.c.scope.dynamic && !e.c.scope.accessed { + // log.Printf("Function can use inline stash") + l := 0 + if !e.c.scope.strict && e.c.scope.thisNeeded { + l = 2 + e.c.p.code = e.c.p.code[maxPreambleLen-2:] + e.c.p.code[1] = boxThis + } else { + l = 1 + e.c.p.code = e.c.p.code[maxPreambleLen-1:] + } + e.c.convertFunctionToStashless(e.c.p.code, paramsCount) + for i, _ := range e.c.p.srcMap { + e.c.p.srcMap[i].pc -= maxPreambleLen - l + } + } else { + l := 1 + len(e.c.scope.names) + if e.c.scope.argsNeeded { + l += 2 + } + if !e.c.scope.strict && e.c.scope.thisNeeded { + l++ + } + + code := make([]instruction, l+len(e.c.p.code)-maxPreambleLen) + code[0] = enterFunc(length) + for name, nameIdx := range e.c.scope.names { + code[nameIdx+1] = bindName(name) + } + pos := 1 + len(e.c.scope.names) + + if !e.c.scope.strict && e.c.scope.thisNeeded { + code[pos] = boxThis + pos++ + } + + if e.c.scope.argsNeeded { + if e.c.scope.strict { + code[pos] = createArgsStrict(length) + } else { + code[pos] = createArgs(length) + } + pos++ + idx, exists := e.c.scope.names["arguments"] + if !exists { + panic("No arguments") + } + code[pos] = setLocalP(idx) + pos++ + } + + copy(code[l:], e.c.p.code[maxPreambleLen:]) + e.c.p.code = code + for i, _ := range e.c.p.srcMap { + e.c.p.srcMap[i].pc += l - maxPreambleLen + } + } + + strict := e.c.scope.strict + p := e.c.p + // e.c.p.dumpCode() + e.c.popScope() + e.c.p = savedPrg + e.c.blockStart = savedBlockStart + name := "" + if e.expr.Name != nil { + name = e.expr.Name.Name + } + e.c.emit(&newFunc{prg: p, length: uint32(length), name: name, srcStart: uint32(e.expr.Idx0() - 1), srcEnd: uint32(e.expr.Idx1() - 1), strict: strict}) + if !putOnStack { + e.c.emit(pop) + } +} + +func (c *compiler) compileFunctionLiteral(v *ast.FunctionLiteral, isExpr bool) compiledExpr { + if v.Name != nil && c.scope.strict { + c.checkIdentifierLName(v.Name.Name, int(v.Name.Idx)-1) + } + r := &compiledFunctionLiteral{ + expr: v, + isExpr: isExpr, + } + r.init(c, v.Idx0()) + return r +} + +func nearestNonLexical(s *scope) *scope { + for ; s != nil && s.lexical; s = s.outer { + } + return s +} + +func (e *compiledThisExpr) emitGetter(putOnStack bool) { + if putOnStack { + e.addSrcMap() + if e.c.scope.eval || e.c.scope.isFunction() { + nearestNonLexical(e.c.scope).thisNeeded = true + e.c.emit(loadStack(0)) + } else { + e.c.emit(loadGlobalObject) + } + } +} + +/* +func (e *compiledThisExpr) deleteExpr() compiledExpr { + r := &compiledLiteral{ + val: valueTrue, + } + r.init(e.c, 0) + return r +} +*/ + +func (e *compiledNewExpr) emitGetter(putOnStack bool) { + e.callee.emitGetter(true) + for _, expr := range e.args { + expr.emitGetter(true) + } + e.addSrcMap() + e.c.emit(_new(len(e.args))) + if !putOnStack { + e.c.emit(pop) + } +} + +func (c *compiler) compileNewExpression(v *ast.NewExpression) compiledExpr { + args := make([]compiledExpr, len(v.ArgumentList)) + for i, expr := range v.ArgumentList { + args[i] = c.compileExpression(expr) + } + r := &compiledNewExpr{ + callee: c.compileExpression(v.Callee), + args: args, + } + r.init(c, v.Idx0()) + return r +} + +func (e *compiledSequenceExpr) emitGetter(putOnStack bool) { + if len(e.sequence) > 0 { + for i := 0; i < len(e.sequence)-1; i++ { + e.sequence[i].emitGetter(false) + } + e.sequence[len(e.sequence)-1].emitGetter(putOnStack) + } +} + +func (c *compiler) compileSequenceExpression(v *ast.SequenceExpression) compiledExpr { + s := make([]compiledExpr, len(v.Sequence)) + for i, expr := range v.Sequence { + s[i] = c.compileExpression(expr) + } + r := &compiledSequenceExpr{ + sequence: s, + } + var idx file.Idx + if len(v.Sequence) > 0 { + idx = v.Idx0() + } + r.init(c, idx) + return r +} + +func (c *compiler) emitThrow(v Value) { + if o, ok := v.(*Object); ok { + t := o.self.getStr("name").String() + switch t { + case "TypeError": + c.emit(getVar1(t)) + msg := o.self.getStr("message") + if msg != nil { + c.emit(loadVal(c.p.defineLiteralValue(msg))) + c.emit(_new(1)) + } else { + c.emit(_new(0)) + } + c.emit(throw) + return + } + } + panic(fmt.Errorf("Unknown exception type thrown while evaliating constant expression: %s", v.String())) +} + +func (c *compiler) emitConst(expr compiledExpr, putOnStack bool) { + v, ex := c.evalConst(expr) + if ex == nil { + if putOnStack { + c.emit(loadVal(c.p.defineLiteralValue(v))) + } + } else { + c.emitThrow(ex.val) + } +} + +func (c *compiler) emitExpr(expr compiledExpr, putOnStack bool) { + if expr.constant() { + c.emitConst(expr, putOnStack) + } else { + expr.emitGetter(putOnStack) + } +} + +func (c *compiler) evalConst(expr compiledExpr) (Value, *Exception) { + if expr, ok := expr.(*compiledLiteral); ok { + return expr.val, nil + } + if c.evalVM == nil { + c.evalVM = New().vm + } + var savedPrg *Program + createdPrg := false + if c.evalVM.prg == nil { + c.evalVM.prg = &Program{} + savedPrg = c.p + c.p = c.evalVM.prg + createdPrg = true + } + savedPc := len(c.p.code) + expr.emitGetter(true) + c.emit(halt) + c.evalVM.pc = savedPc + ex := c.evalVM.runTry() + if createdPrg { + c.evalVM.prg = nil + c.evalVM.pc = 0 + c.p = savedPrg + } else { + c.evalVM.prg.code = c.evalVM.prg.code[:savedPc] + c.p.code = c.evalVM.prg.code + } + if ex == nil { + return c.evalVM.pop(), nil + } + return nil, ex +} + +func (e *compiledUnaryExpr) constant() bool { + return e.operand.constant() +} + +func (e *compiledUnaryExpr) emitGetter(putOnStack bool) { + var prepare, body func() + + toNumber := func() { + e.c.emit(toNumber) + } + + switch e.operator { + case token.NOT: + e.operand.emitGetter(true) + e.c.emit(not) + goto end + case token.BITWISE_NOT: + e.operand.emitGetter(true) + e.c.emit(bnot) + goto end + case token.TYPEOF: + if o, ok := e.operand.(compiledExprOrRef); ok { + o.emitGetterOrRef() + } else { + e.operand.emitGetter(true) + } + e.c.emit(typeof) + goto end + case token.DELETE: + e.operand.deleteExpr().emitGetter(putOnStack) + return + case token.MINUS: + e.c.emitExpr(e.operand, true) + e.c.emit(neg) + goto end + case token.PLUS: + e.c.emitExpr(e.operand, true) + e.c.emit(plus) + goto end + case token.INCREMENT: + prepare = toNumber + body = func() { + e.c.emit(inc) + } + case token.DECREMENT: + prepare = toNumber + body = func() { + e.c.emit(dec) + } + case token.VOID: + e.c.emitExpr(e.operand, false) + if putOnStack { + e.c.emit(loadUndef) + } + return + default: + panic(fmt.Errorf("Unknown unary operator: %s", e.operator.String())) + } + + e.operand.emitUnary(prepare, body, e.postfix, putOnStack) + return + +end: + if !putOnStack { + e.c.emit(pop) + } +} + +func (c *compiler) compileUnaryExpression(v *ast.UnaryExpression) compiledExpr { + r := &compiledUnaryExpr{ + operand: c.compileExpression(v.Operand), + operator: v.Operator, + postfix: v.Postfix, + } + r.init(c, v.Idx0()) + return r +} + +func (e *compiledConditionalExpr) emitGetter(putOnStack bool) { + e.test.emitGetter(true) + j := len(e.c.p.code) + e.c.emit(nil) + e.consequent.emitGetter(putOnStack) + j1 := len(e.c.p.code) + e.c.emit(nil) + e.c.p.code[j] = jne(len(e.c.p.code) - j) + e.alternate.emitGetter(putOnStack) + e.c.p.code[j1] = jump(len(e.c.p.code) - j1) +} + +func (c *compiler) compileConditionalExpression(v *ast.ConditionalExpression) compiledExpr { + r := &compiledConditionalExpr{ + test: c.compileExpression(v.Test), + consequent: c.compileExpression(v.Consequent), + alternate: c.compileExpression(v.Alternate), + } + r.init(c, v.Idx0()) + return r +} + +func (e *compiledLogicalOr) constant() bool { + if e.left.constant() { + if v, ex := e.c.evalConst(e.left); ex == nil { + if v.ToBoolean() { + return true + } + return e.right.constant() + } else { + return true + } + } + + return false +} + +func (e *compiledLogicalOr) emitGetter(putOnStack bool) { + if e.left.constant() { + if v, ex := e.c.evalConst(e.left); ex == nil { + if !v.ToBoolean() { + e.c.emitExpr(e.right, putOnStack) + } else { + if putOnStack { + e.c.emit(loadVal(e.c.p.defineLiteralValue(v))) + } + } + } else { + e.c.emitThrow(ex.val) + } + return + } + e.c.emitExpr(e.left, true) + e.c.markBlockStart() + j := len(e.c.p.code) + e.addSrcMap() + e.c.emit(nil) + e.c.emit(pop) + e.c.emitExpr(e.right, true) + e.c.p.code[j] = jeq1(len(e.c.p.code) - j) + if !putOnStack { + e.c.emit(pop) + } +} + +func (e *compiledLogicalAnd) constant() bool { + if e.left.constant() { + if v, ex := e.c.evalConst(e.left); ex == nil { + if !v.ToBoolean() { + return true + } else { + return e.right.constant() + } + } else { + return true + } + } + + return false +} + +func (e *compiledLogicalAnd) emitGetter(putOnStack bool) { + var j int + if e.left.constant() { + if v, ex := e.c.evalConst(e.left); ex == nil { + if !v.ToBoolean() { + e.c.emit(loadVal(e.c.p.defineLiteralValue(v))) + } else { + e.c.emitExpr(e.right, putOnStack) + } + } else { + e.c.emitThrow(ex.val) + } + return + } + e.left.emitGetter(true) + e.c.markBlockStart() + j = len(e.c.p.code) + e.addSrcMap() + e.c.emit(nil) + e.c.emit(pop) + e.c.emitExpr(e.right, true) + e.c.p.code[j] = jneq1(len(e.c.p.code) - j) + if !putOnStack { + e.c.emit(pop) + } +} + +func (e *compiledBinaryExpr) constant() bool { + return e.left.constant() && e.right.constant() +} + +func (e *compiledBinaryExpr) emitGetter(putOnStack bool) { + e.c.emitExpr(e.left, true) + e.c.emitExpr(e.right, true) + e.addSrcMap() + + switch e.operator { + case token.LESS: + e.c.emit(op_lt) + case token.GREATER: + e.c.emit(op_gt) + case token.LESS_OR_EQUAL: + e.c.emit(op_lte) + case token.GREATER_OR_EQUAL: + e.c.emit(op_gte) + case token.EQUAL: + e.c.emit(op_eq) + case token.NOT_EQUAL: + e.c.emit(op_neq) + case token.STRICT_EQUAL: + e.c.emit(op_strict_eq) + case token.STRICT_NOT_EQUAL: + e.c.emit(op_strict_neq) + case token.PLUS: + e.c.emit(add) + case token.MINUS: + e.c.emit(sub) + case token.MULTIPLY: + e.c.emit(mul) + case token.SLASH: + e.c.emit(div) + case token.REMAINDER: + e.c.emit(mod) + case token.AND: + e.c.emit(and) + case token.OR: + e.c.emit(or) + case token.EXCLUSIVE_OR: + e.c.emit(xor) + case token.INSTANCEOF: + e.c.emit(op_instanceof) + case token.IN: + e.c.emit(op_in) + case token.SHIFT_LEFT: + e.c.emit(sal) + case token.SHIFT_RIGHT: + e.c.emit(sar) + case token.UNSIGNED_SHIFT_RIGHT: + e.c.emit(shr) + default: + panic(fmt.Errorf("Unknown operator: %s", e.operator.String())) + } + + if !putOnStack { + e.c.emit(pop) + } +} + +func (c *compiler) compileBinaryExpression(v *ast.BinaryExpression) compiledExpr { + + switch v.Operator { + case token.LOGICAL_OR: + return c.compileLogicalOr(v.Left, v.Right, v.Idx0()) + case token.LOGICAL_AND: + return c.compileLogicalAnd(v.Left, v.Right, v.Idx0()) + } + + r := &compiledBinaryExpr{ + left: c.compileExpression(v.Left), + right: c.compileExpression(v.Right), + operator: v.Operator, + } + r.init(c, v.Idx0()) + return r +} + +func (c *compiler) compileLogicalOr(left, right ast.Expression, idx file.Idx) compiledExpr { + r := &compiledLogicalOr{ + left: c.compileExpression(left), + right: c.compileExpression(right), + } + r.init(c, idx) + return r +} + +func (c *compiler) compileLogicalAnd(left, right ast.Expression, idx file.Idx) compiledExpr { + r := &compiledLogicalAnd{ + left: c.compileExpression(left), + right: c.compileExpression(right), + } + r.init(c, idx) + return r +} + +func (e *compiledVariableExpr) emitGetter(putOnStack bool) { + if e.initializer != nil { + idExpr := &compiledIdentifierExpr{ + name: e.name, + } + idExpr.init(e.c, file.Idx(0)) + idExpr.emitSetter(e.initializer) + if !putOnStack { + e.c.emit(pop) + } + } else { + if putOnStack { + e.c.emit(loadUndef) + } + } +} + +func (c *compiler) compileVariableExpression(v *ast.VariableExpression) compiledExpr { + r := &compiledVariableExpr{ + name: v.Name, + initializer: c.compileExpression(v.Initializer), + } + r.init(c, v.Idx0()) + return r +} + +func (e *compiledObjectLiteral) emitGetter(putOnStack bool) { + e.addSrcMap() + e.c.emit(newObject) + for _, prop := range e.expr.Value { + e.c.compileExpression(prop.Value).emitGetter(true) + switch prop.Kind { + case "value": + if prop.Key == "__proto__" { + e.c.emit(setProto) + } else { + e.c.emit(setProp1(prop.Key)) + } + case "get": + e.c.emit(setPropGetter(prop.Key)) + case "set": + e.c.emit(setPropSetter(prop.Key)) + default: + panic(fmt.Errorf("Unknown property kind: %s", prop.Kind)) + } + } + if !putOnStack { + e.c.emit(pop) + } +} + +func (c *compiler) compileObjectLiteral(v *ast.ObjectLiteral) compiledExpr { + r := &compiledObjectLiteral{ + expr: v, + } + r.init(c, v.Idx0()) + return r +} + +func (e *compiledArrayLiteral) emitGetter(putOnStack bool) { + e.addSrcMap() + for _, v := range e.expr.Value { + if v != nil { + e.c.compileExpression(v).emitGetter(true) + } else { + e.c.emit(loadNil) + } + } + e.c.emit(newArray(len(e.expr.Value))) + if !putOnStack { + e.c.emit(pop) + } +} + +func (c *compiler) compileArrayLiteral(v *ast.ArrayLiteral) compiledExpr { + r := &compiledArrayLiteral{ + expr: v, + } + r.init(c, v.Idx0()) + return r +} + +func (e *compiledRegexpLiteral) emitGetter(putOnStack bool) { + if putOnStack { + pattern, global, ignoreCase, multiline, err := compileRegexp(e.expr.Pattern, e.expr.Flags) + if err != nil { + e.c.throwSyntaxError(e.offset, err.Error()) + } + + e.c.emit(&newRegexp{pattern: pattern, + src: newStringValue(e.expr.Pattern), + global: global, + ignoreCase: ignoreCase, + multiline: multiline, + }) + } +} + +func (c *compiler) compileRegexpLiteral(v *ast.RegExpLiteral) compiledExpr { + r := &compiledRegexpLiteral{ + expr: v, + } + r.init(c, v.Idx0()) + return r +} + +func (e *compiledCallExpr) emitGetter(putOnStack bool) { + var calleeName string + switch callee := e.callee.(type) { + case *compiledDotExpr: + callee.left.emitGetter(true) + e.c.emit(dup) + e.c.emit(getPropCallee(callee.name)) + case *compiledBracketExpr: + callee.left.emitGetter(true) + e.c.emit(dup) + callee.member.emitGetter(true) + e.c.emit(getElemCallee) + case *compiledIdentifierExpr: + e.c.emit(loadUndef) + calleeName = callee.name + callee.emitGetterOrRef() + default: + e.c.emit(loadUndef) + callee.emitGetter(true) + } + + for _, expr := range e.args { + expr.emitGetter(true) + } + + e.addSrcMap() + if calleeName == "eval" { + e.c.scope.dynamic = true + e.c.scope.thisNeeded = true + if e.c.scope.lexical { + e.c.scope.outer.dynamic = true + } + e.c.scope.accessed = true + if e.c.scope.strict { + e.c.emit(callEvalStrict(len(e.args))) + } else { + e.c.emit(callEval(len(e.args))) + } + } else { + e.c.emit(call(len(e.args))) + } + + if !putOnStack { + e.c.emit(pop) + } +} + +func (e *compiledCallExpr) deleteExpr() compiledExpr { + r := &defaultDeleteExpr{ + expr: e, + } + r.init(e.c, file.Idx(e.offset+1)) + return r +} + +func (c *compiler) compileCallExpression(v *ast.CallExpression) compiledExpr { + + args := make([]compiledExpr, len(v.ArgumentList)) + for i, argExpr := range v.ArgumentList { + args[i] = c.compileExpression(argExpr) + } + + r := &compiledCallExpr{ + args: args, + callee: c.compileExpression(v.Callee), + } + r.init(c, v.LeftParenthesis) + return r +} + +func (c *compiler) compileIdentifierExpression(v *ast.Identifier) compiledExpr { + if c.scope.strict { + c.checkIdentifierName(v.Name, int(v.Idx)-1) + } + + r := &compiledIdentifierExpr{ + name: v.Name, + } + r.offset = int(v.Idx) - 1 + r.init(c, v.Idx0()) + return r +} + +func (c *compiler) compileNumberLiteral(v *ast.NumberLiteral) compiledExpr { + if c.scope.strict && octalRegexp.MatchString(v.Literal) { + c.throwSyntaxError(int(v.Idx)-1, "Octal literals are not allowed in strict mode") + panic("Unreachable") + } + var val Value + switch num := v.Value.(type) { + case int64: + val = intToValue(num) + case float64: + val = floatToValue(num) + default: + panic(fmt.Errorf("Unsupported number literal type: %T", v.Value)) + } + r := &compiledLiteral{ + val: val, + } + r.init(c, v.Idx0()) + return r +} + +func (c *compiler) compileStringLiteral(v *ast.StringLiteral) compiledExpr { + r := &compiledLiteral{ + val: newStringValue(v.Value), + } + r.init(c, v.Idx0()) + return r +} + +func (c *compiler) compileBooleanLiteral(v *ast.BooleanLiteral) compiledExpr { + var val Value + if v.Value { + val = valueTrue + } else { + val = valueFalse + } + + r := &compiledLiteral{ + val: val, + } + r.init(c, v.Idx0()) + return r +} + +func (c *compiler) compileAssignExpression(v *ast.AssignExpression) compiledExpr { + // log.Printf("compileAssignExpression(): %+v", v) + + r := &compiledAssignExpr{ + left: c.compileExpression(v.Left), + right: c.compileExpression(v.Right), + operator: v.Operator, + } + r.init(c, v.Idx0()) + return r +} + +func (e *compiledEnumGetExpr) emitGetter(putOnStack bool) { + e.c.emit(enumGet) + if !putOnStack { + e.c.emit(pop) + } +} diff --git a/vendor/github.com/dop251/goja/compiler_stmt.go b/vendor/github.com/dop251/goja/compiler_stmt.go new file mode 100644 index 00000000000..b402fb2dc95 --- /dev/null +++ b/vendor/github.com/dop251/goja/compiler_stmt.go @@ -0,0 +1,793 @@ +package goja + +import ( + "fmt" + "github.com/dop251/goja/ast" + "github.com/dop251/goja/file" + "github.com/dop251/goja/token" + "strconv" +) + +func (c *compiler) compileStatement(v ast.Statement, needResult bool) { + // log.Printf("compileStatement(): %T", v) + + switch v := v.(type) { + case *ast.BlockStatement: + c.compileBlockStatement(v, needResult) + case *ast.ExpressionStatement: + c.compileExpressionStatement(v, needResult) + case *ast.VariableStatement: + c.compileVariableStatement(v, needResult) + case *ast.ReturnStatement: + c.compileReturnStatement(v) + case *ast.IfStatement: + c.compileIfStatement(v, needResult) + case *ast.DoWhileStatement: + c.compileDoWhileStatement(v, needResult) + case *ast.ForStatement: + c.compileForStatement(v, needResult) + case *ast.ForInStatement: + c.compileForInStatement(v, needResult) + case *ast.WhileStatement: + c.compileWhileStatement(v, needResult) + case *ast.BranchStatement: + c.compileBranchStatement(v, needResult) + case *ast.TryStatement: + c.compileTryStatement(v) + if needResult { + c.emit(loadUndef) + } + case *ast.ThrowStatement: + c.compileThrowStatement(v) + case *ast.SwitchStatement: + c.compileSwitchStatement(v, needResult) + case *ast.LabelledStatement: + c.compileLabeledStatement(v, needResult) + case *ast.EmptyStatement: + c.compileEmptyStatement(needResult) + case *ast.WithStatement: + c.compileWithStatement(v, needResult) + case *ast.DebuggerStatement: + default: + panic(fmt.Errorf("Unknown statement type: %T", v)) + } +} + +func (c *compiler) compileLabeledStatement(v *ast.LabelledStatement, needResult bool) { + label := v.Label.Name + for b := c.block; b != nil; b = b.outer { + if b.label == label { + c.throwSyntaxError(int(v.Label.Idx-1), "Label '%s' has already been declared", label) + } + } + switch s := v.Statement.(type) { + case *ast.ForInStatement: + c.compileLabeledForInStatement(s, needResult, label) + case *ast.ForStatement: + c.compileLabeledForStatement(s, needResult, label) + case *ast.WhileStatement: + c.compileLabeledWhileStatement(s, needResult, label) + case *ast.DoWhileStatement: + c.compileLabeledDoWhileStatement(s, needResult, label) + default: + c.compileGenericLabeledStatement(v.Statement, needResult, label) + } +} + +func (c *compiler) compileTryStatement(v *ast.TryStatement) { + if c.scope.strict && v.Catch != nil { + switch v.Catch.Parameter.Name { + case "arguments", "eval": + c.throwSyntaxError(int(v.Catch.Parameter.Idx)-1, "Catch variable may not be eval or arguments in strict mode") + } + } + c.block = &block{ + typ: blockTry, + outer: c.block, + } + lbl := len(c.p.code) + c.emit(nil) + c.compileStatement(v.Body, false) + c.emit(halt) + lbl2 := len(c.p.code) + c.emit(nil) + var catchOffset int + dynamicCatch := true + if v.Catch != nil { + dyn := nearestNonLexical(c.scope).dynamic + accessed := c.scope.accessed + c.newScope() + c.scope.bindName(v.Catch.Parameter.Name) + c.scope.lexical = true + start := len(c.p.code) + c.emit(nil) + catchOffset = len(c.p.code) - lbl + c.emit(enterCatch(v.Catch.Parameter.Name)) + c.compileStatement(v.Catch.Body, false) + dyn1 := c.scope.dynamic + accessed1 := c.scope.accessed + c.popScope() + if !dyn && !dyn1 && !accessed1 { + c.scope.accessed = accessed + dynamicCatch = false + code := c.p.code[start+1:] + m := make(map[uint32]uint32) + remap := func(instr uint32) uint32 { + level := instr >> 24 + idx := instr & 0x00FFFFFF + if level > 0 { + level-- + return (level << 24) | idx + } else { + // remap + newIdx, exists := m[idx] + if !exists { + exname := " __tmp" + strconv.Itoa(c.scope.lastFreeTmp) + c.scope.lastFreeTmp++ + newIdx, _ = c.scope.bindName(exname) + m[idx] = newIdx + } + return newIdx + } + } + for pc, instr := range code { + switch instr := instr.(type) { + case getLocal: + code[pc] = getLocal(remap(uint32(instr))) + case setLocal: + code[pc] = setLocal(remap(uint32(instr))) + case setLocalP: + code[pc] = setLocalP(remap(uint32(instr))) + } + } + if catchVarIdx, exists := m[0]; exists { + c.p.code[start] = setLocal(catchVarIdx) + c.p.code[start+1] = pop + catchOffset-- + } else { + c.p.code[start+1] = nil + catchOffset++ + } + } else { + c.scope.accessed = true + } + + /* + if true/*sc.dynamic/ { + dynamicCatch = true + c.scope.accessed = true + c.newScope() + c.scope.bindName(v.Catch.Parameter.Name) + c.scope.lexical = true + c.emit(enterCatch(v.Catch.Parameter.Name)) + c.compileStatement(v.Catch.Body, false) + c.popScope() + } else { + exname := " __tmp" + strconv.Itoa(c.scope.lastFreeTmp) + c.scope.lastFreeTmp++ + catchVarIdx, _ := c.scope.bindName(exname) + c.emit(setLocal(catchVarIdx), pop) + saved, wasSaved := c.scope.namesMap[v.Catch.Parameter.Name] + c.scope.namesMap[v.Catch.Parameter.Name] = exname + c.compileStatement(v.Catch.Body, false) + if wasSaved { + c.scope.namesMap[v.Catch.Parameter.Name] = saved + } else { + delete(c.scope.namesMap, v.Catch.Parameter.Name) + } + c.scope.lastFreeTmp-- + }*/ + c.emit(halt) + } + var finallyOffset int + if v.Finally != nil { + lbl1 := len(c.p.code) + c.emit(nil) + finallyOffset = len(c.p.code) - lbl + c.compileStatement(v.Finally, false) + c.emit(halt, retFinally) + c.p.code[lbl1] = jump(len(c.p.code) - lbl1) + } + c.p.code[lbl] = try{catchOffset: int32(catchOffset), finallyOffset: int32(finallyOffset), dynamic: dynamicCatch} + c.p.code[lbl2] = jump(len(c.p.code) - lbl2) + c.leaveBlock() +} + +func (c *compiler) compileThrowStatement(v *ast.ThrowStatement) { + //c.p.srcMap = append(c.p.srcMap, srcMapItem{pc: len(c.p.code), srcPos: int(v.Throw) - 1}) + c.compileExpression(v.Argument).emitGetter(true) + c.emit(throw) +} + +func (c *compiler) compileDoWhileStatement(v *ast.DoWhileStatement, needResult bool) { + c.compileLabeledDoWhileStatement(v, needResult, "") +} + +func (c *compiler) compileLabeledDoWhileStatement(v *ast.DoWhileStatement, needResult bool, label string) { + c.block = &block{ + typ: blockLoop, + outer: c.block, + label: label, + needResult: needResult, + } + + if needResult { + c.emit(jump(2)) + } + start := len(c.p.code) + if needResult { + c.emit(pop) + } + c.markBlockStart() + c.compileStatement(v.Body, needResult) + c.block.cont = len(c.p.code) + c.emitExpr(c.compileExpression(v.Test), true) + c.emit(jeq(start - len(c.p.code))) + c.leaveBlock() +} + +func (c *compiler) compileForStatement(v *ast.ForStatement, needResult bool) { + c.compileLabeledForStatement(v, needResult, "") +} + +func (c *compiler) compileLabeledForStatement(v *ast.ForStatement, needResult bool, label string) { + c.block = &block{ + typ: blockLoop, + outer: c.block, + label: label, + needResult: needResult, + } + + if v.Initializer != nil { + c.compileExpression(v.Initializer).emitGetter(false) + } + if needResult { + c.emit(loadUndef) // initial result + } + start := len(c.p.code) + c.markBlockStart() + var j int + testConst := false + if v.Test != nil { + expr := c.compileExpression(v.Test) + if expr.constant() { + r, ex := c.evalConst(expr) + if ex == nil { + if r.ToBoolean() { + testConst = true + } else { + // TODO: Properly implement dummy compilation (no garbage in block, scope, etc..) + /* + p := c.p + c.p = &program{} + c.compileStatement(v.Body, false) + if v.Update != nil { + c.compileExpression(v.Update).emitGetter(false) + } + c.p = p*/ + goto end + } + } else { + expr.addSrcMap() + c.emitThrow(ex.val) + goto end + } + } else { + expr.emitGetter(true) + j = len(c.p.code) + c.emit(nil) + } + } + if needResult { + c.emit(pop) // remove last result + } + c.markBlockStart() + c.compileStatement(v.Body, needResult) + c.block.cont = len(c.p.code) + if v.Update != nil { + c.compileExpression(v.Update).emitGetter(false) + } + c.emit(jump(start - len(c.p.code))) + if v.Test != nil { + if !testConst { + c.p.code[j] = jne(len(c.p.code) - j) + } + } +end: + c.leaveBlock() + c.markBlockStart() +} + +func (c *compiler) compileForInStatement(v *ast.ForInStatement, needResult bool) { + c.compileLabeledForInStatement(v, needResult, "") +} + +func (c *compiler) compileLabeledForInStatement(v *ast.ForInStatement, needResult bool, label string) { + c.block = &block{ + typ: blockLoop, + outer: c.block, + label: label, + needResult: needResult, + } + + c.compileExpression(v.Source).emitGetter(true) + c.emit(enumerate) + if needResult { + c.emit(loadUndef) + } + start := len(c.p.code) + c.markBlockStart() + c.block.cont = start + c.emit(nil) + c.compileExpression(v.Into).emitSetter(&c.enumGetExpr) + c.emit(pop) + if needResult { + c.emit(pop) // remove last result + } + c.markBlockStart() + c.compileStatement(v.Body, needResult) + c.emit(jump(start - len(c.p.code))) + c.p.code[start] = enumNext(len(c.p.code) - start) + c.leaveBlock() + c.markBlockStart() + c.emit(enumPop) +} + +func (c *compiler) compileWhileStatement(v *ast.WhileStatement, needResult bool) { + c.compileLabeledWhileStatement(v, needResult, "") +} + +func (c *compiler) compileLabeledWhileStatement(v *ast.WhileStatement, needResult bool, label string) { + c.block = &block{ + typ: blockLoop, + outer: c.block, + label: label, + needResult: needResult, + } + + if needResult { + c.emit(loadUndef) + } + start := len(c.p.code) + c.markBlockStart() + c.block.cont = start + expr := c.compileExpression(v.Test) + testTrue := false + var j int + if expr.constant() { + if t, ex := c.evalConst(expr); ex == nil { + if t.ToBoolean() { + testTrue = true + } else { + p := c.p + c.p = &Program{} + c.compileStatement(v.Body, false) + c.p = p + goto end + } + } else { + c.emitThrow(ex.val) + goto end + } + } else { + expr.emitGetter(true) + j = len(c.p.code) + c.emit(nil) + } + if needResult { + c.emit(pop) + } + c.markBlockStart() + c.compileStatement(v.Body, needResult) + c.emit(jump(start - len(c.p.code))) + if !testTrue { + c.p.code[j] = jne(len(c.p.code) - j) + } +end: + c.leaveBlock() + c.markBlockStart() +} + +func (c *compiler) compileEmptyStatement(needResult bool) { + if needResult { + if len(c.p.code) == c.blockStart { + // first statement in block, use undefined as result + c.emit(loadUndef) + } + } +} + +func (c *compiler) compileBranchStatement(v *ast.BranchStatement, needResult bool) { + switch v.Token { + case token.BREAK: + c.compileBreak(v.Label, v.Idx) + case token.CONTINUE: + c.compileContinue(v.Label, v.Idx) + default: + panic(fmt.Errorf("Unknown branch statement token: %s", v.Token.String())) + } +} + +func (c *compiler) findBranchBlock(st *ast.BranchStatement) *block { + switch st.Token { + case token.BREAK: + return c.findBreakBlock(st.Label) + case token.CONTINUE: + return c.findContinueBlock(st.Label) + } + return nil +} + +func (c *compiler) findContinueBlock(label *ast.Identifier) (block *block) { + if label != nil { + for b := c.block; b != nil; b = b.outer { + if b.typ == blockLoop && b.label == label.Name { + block = b + break + } + } + } else { + // find the nearest loop + for b := c.block; b != nil; b = b.outer { + if b.typ == blockLoop { + block = b + break + } + } + } + + return +} + +func (c *compiler) findBreakBlock(label *ast.Identifier) (block *block) { + if label != nil { + for b := c.block; b != nil; b = b.outer { + if b.label == label.Name { + block = b + break + } + } + } else { + // find the nearest loop or switch + L: + for b := c.block; b != nil; b = b.outer { + switch b.typ { + case blockLoop, blockSwitch: + block = b + break L + } + } + } + + return +} + +func (c *compiler) compileBreak(label *ast.Identifier, idx file.Idx) { + var block *block + if label != nil { + for b := c.block; b != nil; b = b.outer { + switch b.typ { + case blockTry: + c.emit(halt) + case blockWith: + c.emit(leaveWith) + } + if b.label == label.Name { + block = b + break + } + } + } else { + // find the nearest loop or switch + L: + for b := c.block; b != nil; b = b.outer { + switch b.typ { + case blockTry: + c.emit(halt) + case blockWith: + c.emit(leaveWith) + case blockLoop, blockSwitch: + block = b + break L + } + } + } + + if block != nil { + if len(c.p.code) == c.blockStart && block.needResult { + c.emit(loadUndef) + } + block.breaks = append(block.breaks, len(c.p.code)) + c.emit(nil) + } else { + c.throwSyntaxError(int(idx)-1, "Undefined label '%s'", label.Name) + } +} + +func (c *compiler) compileContinue(label *ast.Identifier, idx file.Idx) { + var block *block + if label != nil { + for b := c.block; b != nil; b = b.outer { + if b.typ == blockTry { + c.emit(halt) + } else if b.typ == blockLoop && b.label == label.Name { + block = b + break + } + } + } else { + // find the nearest loop + for b := c.block; b != nil; b = b.outer { + if b.typ == blockTry { + c.emit(halt) + } else if b.typ == blockLoop { + block = b + break + } + } + } + + if block != nil { + if len(c.p.code) == c.blockStart && block.needResult { + c.emit(loadUndef) + } + block.conts = append(block.conts, len(c.p.code)) + c.emit(nil) + } else { + c.throwSyntaxError(int(idx)-1, "Undefined label '%s'", label.Name) + } +} + +func (c *compiler) compileIfStatement(v *ast.IfStatement, needResult bool) { + test := c.compileExpression(v.Test) + if test.constant() { + r, ex := c.evalConst(test) + if ex != nil { + test.addSrcMap() + c.emitThrow(ex.val) + return + } + if r.ToBoolean() { + c.markBlockStart() + c.compileStatement(v.Consequent, needResult) + if v.Alternate != nil { + p := c.p + c.p = &Program{} + c.markBlockStart() + c.compileStatement(v.Alternate, false) + c.p = p + } + } else { + // TODO: Properly implement dummy compilation (no garbage in block, scope, etc..) + p := c.p + c.p = &Program{} + c.compileStatement(v.Consequent, false) + c.p = p + if v.Alternate != nil { + c.compileStatement(v.Alternate, needResult) + } else { + if needResult { + c.emit(loadUndef) + } + } + } + return + } + test.emitGetter(true) + jmp := len(c.p.code) + c.emit(nil) + c.markBlockStart() + c.compileStatement(v.Consequent, needResult) + if v.Alternate != nil { + jmp1 := len(c.p.code) + c.emit(nil) + c.p.code[jmp] = jne(len(c.p.code) - jmp) + c.markBlockStart() + c.compileStatement(v.Alternate, needResult) + c.p.code[jmp1] = jump(len(c.p.code) - jmp1) + c.markBlockStart() + } else { + c.p.code[jmp] = jne(len(c.p.code) - jmp) + c.markBlockStart() + if needResult { + c.emit(loadUndef) + } + } +} + +func (c *compiler) compileReturnStatement(v *ast.ReturnStatement) { + if v.Argument != nil { + c.compileExpression(v.Argument).emitGetter(true) + //c.emit(checkResolve) + } else { + c.emit(loadUndef) + } + for b := c.block; b != nil; b = b.outer { + if b.typ == blockTry { + c.emit(halt) + } + } + c.emit(ret) +} + +func (c *compiler) compileVariableStatement(v *ast.VariableStatement, needResult bool) { + for _, expr := range v.List { + c.compileExpression(expr).emitGetter(false) + } + if needResult { + c.emit(loadUndef) + } +} + +func (c *compiler) getFirstNonEmptyStatement(st ast.Statement) ast.Statement { + switch st := st.(type) { + case *ast.BlockStatement: + return c.getFirstNonEmptyStatementList(st.List) + case *ast.LabelledStatement: + return c.getFirstNonEmptyStatement(st.Statement) + } + return st +} + +func (c *compiler) getFirstNonEmptyStatementList(list []ast.Statement) ast.Statement { + for _, st := range list { + switch st := st.(type) { + case *ast.EmptyStatement: + continue + case *ast.BlockStatement: + return c.getFirstNonEmptyStatementList(st.List) + case *ast.LabelledStatement: + return c.getFirstNonEmptyStatement(st.Statement) + } + return st + } + return nil +} + +func (c *compiler) compileStatements(list []ast.Statement, needResult bool) { + if len(list) > 0 { + cur := list[0] + for idx := 0; idx < len(list); { + var next ast.Statement + // find next non-empty statement + for idx++; idx < len(list); idx++ { + if _, empty := list[idx].(*ast.EmptyStatement); !empty { + next = list[idx] + break + } + } + + if next != nil { + bs := c.getFirstNonEmptyStatement(next) + if bs, ok := bs.(*ast.BranchStatement); ok { + block := c.findBranchBlock(bs) + if block != nil { + c.compileStatement(cur, block.needResult) + cur = next + continue + } + } + c.compileStatement(cur, false) + cur = next + } else { + c.compileStatement(cur, needResult) + } + } + } else { + if needResult { + c.emit(loadUndef) + } + } +} + +func (c *compiler) compileGenericLabeledStatement(v ast.Statement, needResult bool, label string) { + c.block = &block{ + typ: blockBranch, + outer: c.block, + label: label, + needResult: needResult, + } + c.compileStatement(v, needResult) + c.leaveBlock() +} + +func (c *compiler) compileBlockStatement(v *ast.BlockStatement, needResult bool) { + c.compileStatements(v.List, needResult) +} + +func (c *compiler) compileExpressionStatement(v *ast.ExpressionStatement, needResult bool) { + expr := c.compileExpression(v.Expression) + if expr.constant() { + c.emitConst(expr, needResult) + } else { + expr.emitGetter(needResult) + } +} + +func (c *compiler) compileWithStatement(v *ast.WithStatement, needResult bool) { + if c.scope.strict { + c.throwSyntaxError(int(v.With)-1, "Strict mode code may not include a with statement") + return + } + c.compileExpression(v.Object).emitGetter(true) + c.emit(enterWith) + c.block = &block{ + outer: c.block, + typ: blockWith, + needResult: needResult, + } + c.newScope() + c.scope.dynamic = true + c.scope.lexical = true + c.compileStatement(v.Body, needResult) + c.emit(leaveWith) + c.leaveBlock() + c.popScope() +} + +func (c *compiler) compileSwitchStatement(v *ast.SwitchStatement, needResult bool) { + c.block = &block{ + typ: blockSwitch, + outer: c.block, + needResult: needResult, + } + + c.compileExpression(v.Discriminant).emitGetter(true) + + jumps := make([]int, len(v.Body)) + + for i, s := range v.Body { + if s.Test != nil { + c.emit(dup) + c.compileExpression(s.Test).emitGetter(true) + c.emit(op_strict_eq) + c.emit(jne(3), pop) + jumps[i] = len(c.p.code) + c.emit(nil) + } + } + + c.emit(pop) + jumpNoMatch := -1 + if v.Default != -1 { + if v.Default != 0 { + jumps[v.Default] = len(c.p.code) + c.emit(nil) + } + } else { + jumpNoMatch = len(c.p.code) + c.emit(nil) + } + + for i, s := range v.Body { + if s.Test != nil || i != 0 { + c.p.code[jumps[i]] = jump(len(c.p.code) - jumps[i]) + c.markBlockStart() + } + nr := false + c.markBlockStart() + if needResult { + if i < len(v.Body)-1 { + st := c.getFirstNonEmptyStatementList(v.Body[i+1].Consequent) + if st, ok := st.(*ast.BranchStatement); ok && st.Token == token.BREAK { + if c.findBreakBlock(st.Label) != nil { + stmts := append(s.Consequent, st) + c.compileStatements(stmts, false) + continue + } + } + } else { + nr = true + } + } + c.compileStatements(s.Consequent, nr) + } + if jumpNoMatch != -1 { + c.p.code[jumpNoMatch] = jump(len(c.p.code) - jumpNoMatch) + if len(v.Body) == 0 && needResult { + c.emit(loadUndef) + } + } + c.leaveBlock() + c.markBlockStart() +} diff --git a/vendor/github.com/dop251/goja/date.go b/vendor/github.com/dop251/goja/date.go new file mode 100644 index 00000000000..c17d597cf54 --- /dev/null +++ b/vendor/github.com/dop251/goja/date.go @@ -0,0 +1,104 @@ +package goja + +import ( + "time" +) + +const ( + dateTimeLayout = "Mon Jan 02 2006 15:04:05 GMT-0700 (MST)" + isoDateTimeLayout = "2006-01-02T15:04:05.000Z" + dateLayout = "Mon Jan 02 2006" + timeLayout = "15:04:05 GMT-0700 (MST)" + datetimeLayout_en_GB = "01/02/2006, 15:04:05" + dateLayout_en_GB = "01/02/2006" + timeLayout_en_GB = "15:04:05" +) + +type dateObject struct { + baseObject + time time.Time + isSet bool +} + +var ( + dateLayoutList = []string{ + "2006-01-02T15:04:05.000Z0700", + "2006-01-02T15:04:05.000", + "2006-01-02T15:04:05Z0700", + "2006-01-02T15:04:05", + "2006-01-02", + time.RFC1123, + time.RFC1123Z, + dateTimeLayout, + time.UnixDate, + time.ANSIC, + time.RubyDate, + "Mon, 02 Jan 2006 15:04:05 GMT-0700 (MST)", + "Mon, 02 Jan 2006 15:04:05 -0700 (MST)", + + "2006", + "2006-01", + + "2006T15:04", + "2006-01T15:04", + "2006-01-02T15:04", + + "2006T15:04:05", + "2006-01T15:04:05", + + "2006T15:04:05.000", + "2006-01T15:04:05.000", + + "2006T15:04Z0700", + "2006-01T15:04Z0700", + "2006-01-02T15:04Z0700", + + "2006T15:04:05Z0700", + "2006-01T15:04:05Z0700", + + "2006T15:04:05.000Z0700", + "2006-01T15:04:05.000Z0700", + } +) + +func dateParse(date string) (time.Time, bool) { + var t time.Time + var err error + for _, layout := range dateLayoutList { + t, err = parseDate(layout, date, time.UTC) + if err == nil { + break + } + } + unix := timeToMsec(t) + return t, err == nil && unix >= -8640000000000000 && unix <= 8640000000000000 +} + +func (r *Runtime) newDateObject(t time.Time, isSet bool) *Object { + v := &Object{runtime: r} + d := &dateObject{} + v.self = d + d.val = v + d.class = classDate + d.prototype = r.global.DatePrototype + d.extensible = true + d.init() + d.time = t.In(time.Local) + d.isSet = isSet + return v +} + +func dateFormat(t time.Time) string { + return t.Local().Format(dateTimeLayout) +} + +func (d *dateObject) toPrimitive() Value { + return d.toPrimitiveString() +} + +func (d *dateObject) export() interface{} { + if d.isSet { + return d.time + } + return nil +} diff --git a/vendor/github.com/dop251/goja/date_parser.go b/vendor/github.com/dop251/goja/date_parser.go new file mode 100644 index 00000000000..0841cf40e10 --- /dev/null +++ b/vendor/github.com/dop251/goja/date_parser.go @@ -0,0 +1,860 @@ +package goja + +// This is a slightly modified version of the standard Go parser to make it more compatible with ECMAScript 5.1 +// Changes: +// - 6-digit extended years are supported in place of long year (2006) in the form of +123456 +// - Timezone formats tolerate colons, e.g. -0700 will parse -07:00 +// - Short week day will also parse long week day +// - Timezone in brackets, "(MST)", will match any string in brackets (e.g. "(GMT Standard Time)") +// - If offset is not set and timezone name is unknown, an error is returned +// - If offset and timezone name are both set the offset takes precedence and the resulting Location will be FixedZone("", offset) + +// Original copyright message: + +// Copyright 2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +import ( + "errors" + "time" +) + +const ( + _ = iota + stdLongMonth = iota + stdNeedDate // "January" + stdMonth // "Jan" + stdNumMonth // "1" + stdZeroMonth // "01" + stdLongWeekDay // "Monday" + stdWeekDay // "Mon" + stdDay // "2" + stdUnderDay // "_2" + stdZeroDay // "02" + stdHour = iota + stdNeedClock // "15" + stdHour12 // "3" + stdZeroHour12 // "03" + stdMinute // "4" + stdZeroMinute // "04" + stdSecond // "5" + stdZeroSecond // "05" + stdLongYear = iota + stdNeedDate // "2006" + stdYear // "06" + stdPM = iota + stdNeedClock // "PM" + stdpm // "pm" + stdTZ = iota // "MST" + stdBracketTZ // "(MST)" + stdISO8601TZ // "Z0700" // prints Z for UTC + stdISO8601SecondsTZ // "Z070000" + stdISO8601ShortTZ // "Z07" + stdISO8601ColonTZ // "Z07:00" // prints Z for UTC + stdISO8601ColonSecondsTZ // "Z07:00:00" + stdNumTZ // "-0700" // always numeric + stdNumSecondsTz // "-070000" + stdNumShortTZ // "-07" // always numeric + stdNumColonTZ // "-07:00" // always numeric + stdNumColonSecondsTZ // "-07:00:00" + stdFracSecond0 // ".0", ".00", ... , trailing zeros included + stdFracSecond9 // ".9", ".99", ..., trailing zeros omitted + + stdNeedDate = 1 << 8 // need month, day, year + stdNeedClock = 2 << 8 // need hour, minute, second + stdArgShift = 16 // extra argument in high bits, above low stdArgShift + stdMask = 1<= 69 { // Unix time starts Dec 31 1969 in some time zones + year += 1900 + } else { + year += 2000 + } + case stdLongYear: + if len(value) >= 7 && (value[0] == '-' || value[0] == '+') { // extended year + neg := value[0] == '-' + p, value = value[1:7], value[7:] + year, err = atoi(p) + if neg { + year = -year + } + } else { + if len(value) < 4 || !isDigit(value, 0) { + err = errBad + break + } + p, value = value[0:4], value[4:] + year, err = atoi(p) + } + + case stdMonth: + month, value, err = lookup(shortMonthNames, value) + month++ + case stdLongMonth: + month, value, err = lookup(longMonthNames, value) + month++ + case stdNumMonth, stdZeroMonth: + month, value, err = getnum(value, std == stdZeroMonth) + if month <= 0 || 12 < month { + rangeErrString = "month" + } + case stdWeekDay: + // Ignore weekday except for error checking. + _, value, err = lookup(longDayNames, value) + if err != nil { + _, value, err = lookup(shortDayNames, value) + } + case stdLongWeekDay: + _, value, err = lookup(longDayNames, value) + case stdDay, stdUnderDay, stdZeroDay: + if std == stdUnderDay && len(value) > 0 && value[0] == ' ' { + value = value[1:] + } + day, value, err = getnum(value, std == stdZeroDay) + if day < 0 { + // Note that we allow any one- or two-digit day here. + rangeErrString = "day" + } + case stdHour: + hour, value, err = getnum(value, false) + if hour < 0 || 24 <= hour { + rangeErrString = "hour" + } + case stdHour12, stdZeroHour12: + hour, value, err = getnum(value, std == stdZeroHour12) + if hour < 0 || 12 < hour { + rangeErrString = "hour" + } + case stdMinute, stdZeroMinute: + min, value, err = getnum(value, std == stdZeroMinute) + if min < 0 || 60 <= min { + rangeErrString = "minute" + } + case stdSecond, stdZeroSecond: + sec, value, err = getnum(value, std == stdZeroSecond) + if sec < 0 || 60 <= sec { + rangeErrString = "second" + break + } + // Special case: do we have a fractional second but no + // fractional second in the format? + if len(value) >= 2 && value[0] == '.' && isDigit(value, 1) { + _, std, _ = nextStdChunk(layout) + std &= stdMask + if std == stdFracSecond0 || std == stdFracSecond9 { + // Fractional second in the layout; proceed normally + break + } + // No fractional second in the layout but we have one in the input. + n := 2 + for ; n < len(value) && isDigit(value, n); n++ { + } + nsec, rangeErrString, err = parseNanoseconds(value, n) + value = value[n:] + } + case stdPM: + if len(value) < 2 { + err = errBad + break + } + p, value = value[0:2], value[2:] + switch p { + case "PM": + pmSet = true + case "AM": + amSet = true + default: + err = errBad + } + case stdpm: + if len(value) < 2 { + err = errBad + break + } + p, value = value[0:2], value[2:] + switch p { + case "pm": + pmSet = true + case "am": + amSet = true + default: + err = errBad + } + case stdISO8601TZ, stdISO8601ColonTZ, stdISO8601SecondsTZ, stdISO8601ShortTZ, stdISO8601ColonSecondsTZ, stdNumTZ, stdNumShortTZ, stdNumColonTZ, stdNumSecondsTz, stdNumColonSecondsTZ: + if (std == stdISO8601TZ || std == stdISO8601ShortTZ || std == stdISO8601ColonTZ || + std == stdISO8601SecondsTZ || std == stdISO8601ColonSecondsTZ) && len(value) >= 1 && value[0] == 'Z' { + + value = value[1:] + z = time.UTC + break + } + var sign, hour, min, seconds string + if std == stdISO8601ColonTZ || std == stdNumColonTZ || std == stdNumTZ || std == stdISO8601TZ { + if len(value) < 4 { + err = errBad + break + } + if value[3] != ':' { + if std == stdNumColonTZ || std == stdISO8601ColonTZ || len(value) < 5 { + err = errBad + break + } + sign, hour, min, seconds, value = value[0:1], value[1:3], value[3:5], "00", value[5:] + } else { + if len(value) < 6 { + err = errBad + break + } + sign, hour, min, seconds, value = value[0:1], value[1:3], value[4:6], "00", value[6:] + } + } else if std == stdNumShortTZ || std == stdISO8601ShortTZ { + if len(value) < 3 { + err = errBad + break + } + sign, hour, min, seconds, value = value[0:1], value[1:3], "00", "00", value[3:] + } else if std == stdISO8601ColonSecondsTZ || std == stdNumColonSecondsTZ || std == stdISO8601SecondsTZ || std == stdNumSecondsTz { + if len(value) < 7 { + err = errBad + break + } + if value[3] != ':' || value[6] != ':' { + if std == stdISO8601ColonSecondsTZ || std == stdNumColonSecondsTZ || len(value) < 7 { + err = errBad + break + } + sign, hour, min, seconds, value = value[0:1], value[1:3], value[3:5], value[5:7], value[7:] + } else { + if len(value) < 9 { + err = errBad + break + } + sign, hour, min, seconds, value = value[0:1], value[1:3], value[4:6], value[7:9], value[9:] + } + } + var hr, mm, ss int + hr, err = atoi(hour) + if err == nil { + mm, err = atoi(min) + } + if err == nil { + ss, err = atoi(seconds) + } + zoneOffset = (hr*60+mm)*60 + ss // offset is in seconds + switch sign[0] { + case '+': + case '-': + zoneOffset = -zoneOffset + default: + err = errBad + } + case stdTZ: + // Does it look like a time zone? + if len(value) >= 3 && value[0:3] == "UTC" { + z = time.UTC + value = value[3:] + break + } + n, ok := parseTimeZone(value) + if !ok { + err = errBad + break + } + zoneName, value = value[:n], value[n:] + case stdBracketTZ: + if len(value) < 3 || value[0] != '(' { + err = errBad + break + } + i := 1 + for ; ; i++ { + if i >= len(value) { + err = errBad + break + } + if value[i] == ')' { + zoneName, value = value[1:i], value[i+1:] + break + } + } + + case stdFracSecond0: + // stdFracSecond0 requires the exact number of digits as specified in + // the layout. + ndigit := 1 + (std >> stdArgShift) + if len(value) < ndigit { + err = errBad + break + } + nsec, rangeErrString, err = parseNanoseconds(value, ndigit) + value = value[ndigit:] + + case stdFracSecond9: + if len(value) < 2 || value[0] != '.' || value[1] < '0' || '9' < value[1] { + // Fractional second omitted. + break + } + // Take any number of digits, even more than asked for, + // because it is what the stdSecond case would do. + i := 0 + for i < 9 && i+1 < len(value) && '0' <= value[i+1] && value[i+1] <= '9' { + i++ + } + nsec, rangeErrString, err = parseNanoseconds(value, 1+i) + value = value[1+i:] + } + if rangeErrString != "" { + return time.Time{}, &time.ParseError{Layout: alayout, Value: avalue, LayoutElem: stdstr, ValueElem: value, Message: ": " + rangeErrString + " out of range"} + } + if err != nil { + return time.Time{}, &time.ParseError{Layout: alayout, Value: avalue, LayoutElem: stdstr, ValueElem: value} + } + } + if pmSet && hour < 12 { + hour += 12 + } else if amSet && hour == 12 { + hour = 0 + } + + // Validate the day of the month. + if day < 1 || day > daysIn(time.Month(month), year) { + return time.Time{}, &time.ParseError{Layout: alayout, Value: avalue, ValueElem: value, Message: ": day out of range"} + } + + if z == nil { + if zoneOffset == -1 { + if zoneName != "" { + if z1, err := time.LoadLocation(zoneName); err == nil { + z = z1 + } else { + return time.Time{}, &time.ParseError{Layout: alayout, Value: avalue, ValueElem: value, Message: ": unknown timezone"} + } + } else { + z = defaultLocation + } + } else if zoneOffset == 0 { + z = time.UTC + } else { + z = time.FixedZone("", zoneOffset) + } + } + + return time.Date(year, time.Month(month), day, hour, min, sec, nsec, z), nil +} + +var errLeadingInt = errors.New("time: bad [0-9]*") // never printed + +func signedLeadingInt(s string) (x int64, rem string, err error) { + neg := false + if s != "" && (s[0] == '-' || s[0] == '+') { + neg = s[0] == '-' + s = s[1:] + } + x, rem, err = leadingInt(s) + if err != nil { + return + } + + if neg { + x = -x + } + return +} + +// leadingInt consumes the leading [0-9]* from s. +func leadingInt(s string) (x int64, rem string, err error) { + i := 0 + for ; i < len(s); i++ { + c := s[i] + if c < '0' || c > '9' { + break + } + if x > (1<<63-1)/10 { + // overflow + return 0, "", errLeadingInt + } + x = x*10 + int64(c) - '0' + if x < 0 { + // overflow + return 0, "", errLeadingInt + } + } + return x, s[i:], nil +} + +// nextStdChunk finds the first occurrence of a std string in +// layout and returns the text before, the std string, and the text after. +func nextStdChunk(layout string) (prefix string, std int, suffix string) { + for i := 0; i < len(layout); i++ { + switch c := int(layout[i]); c { + case 'J': // January, Jan + if len(layout) >= i+3 && layout[i:i+3] == "Jan" { + if len(layout) >= i+7 && layout[i:i+7] == "January" { + return layout[0:i], stdLongMonth, layout[i+7:] + } + if !startsWithLowerCase(layout[i+3:]) { + return layout[0:i], stdMonth, layout[i+3:] + } + } + + case 'M': // Monday, Mon, MST + if len(layout) >= i+3 { + if layout[i:i+3] == "Mon" { + if len(layout) >= i+6 && layout[i:i+6] == "Monday" { + return layout[0:i], stdLongWeekDay, layout[i+6:] + } + if !startsWithLowerCase(layout[i+3:]) { + return layout[0:i], stdWeekDay, layout[i+3:] + } + } + if layout[i:i+3] == "MST" { + return layout[0:i], stdTZ, layout[i+3:] + } + } + + case '0': // 01, 02, 03, 04, 05, 06 + if len(layout) >= i+2 && '1' <= layout[i+1] && layout[i+1] <= '6' { + return layout[0:i], std0x[layout[i+1]-'1'], layout[i+2:] + } + + case '1': // 15, 1 + if len(layout) >= i+2 && layout[i+1] == '5' { + return layout[0:i], stdHour, layout[i+2:] + } + return layout[0:i], stdNumMonth, layout[i+1:] + + case '2': // 2006, 2 + if len(layout) >= i+4 && layout[i:i+4] == "2006" { + return layout[0:i], stdLongYear, layout[i+4:] + } + return layout[0:i], stdDay, layout[i+1:] + + case '_': // _2, _2006 + if len(layout) >= i+2 && layout[i+1] == '2' { + //_2006 is really a literal _, followed by stdLongYear + if len(layout) >= i+5 && layout[i+1:i+5] == "2006" { + return layout[0 : i+1], stdLongYear, layout[i+5:] + } + return layout[0:i], stdUnderDay, layout[i+2:] + } + + case '3': + return layout[0:i], stdHour12, layout[i+1:] + + case '4': + return layout[0:i], stdMinute, layout[i+1:] + + case '5': + return layout[0:i], stdSecond, layout[i+1:] + + case 'P': // PM + if len(layout) >= i+2 && layout[i+1] == 'M' { + return layout[0:i], stdPM, layout[i+2:] + } + + case 'p': // pm + if len(layout) >= i+2 && layout[i+1] == 'm' { + return layout[0:i], stdpm, layout[i+2:] + } + + case '-': // -070000, -07:00:00, -0700, -07:00, -07 + if len(layout) >= i+7 && layout[i:i+7] == "-070000" { + return layout[0:i], stdNumSecondsTz, layout[i+7:] + } + if len(layout) >= i+9 && layout[i:i+9] == "-07:00:00" { + return layout[0:i], stdNumColonSecondsTZ, layout[i+9:] + } + if len(layout) >= i+5 && layout[i:i+5] == "-0700" { + return layout[0:i], stdNumTZ, layout[i+5:] + } + if len(layout) >= i+6 && layout[i:i+6] == "-07:00" { + return layout[0:i], stdNumColonTZ, layout[i+6:] + } + if len(layout) >= i+3 && layout[i:i+3] == "-07" { + return layout[0:i], stdNumShortTZ, layout[i+3:] + } + + case 'Z': // Z070000, Z07:00:00, Z0700, Z07:00, + if len(layout) >= i+7 && layout[i:i+7] == "Z070000" { + return layout[0:i], stdISO8601SecondsTZ, layout[i+7:] + } + if len(layout) >= i+9 && layout[i:i+9] == "Z07:00:00" { + return layout[0:i], stdISO8601ColonSecondsTZ, layout[i+9:] + } + if len(layout) >= i+5 && layout[i:i+5] == "Z0700" { + return layout[0:i], stdISO8601TZ, layout[i+5:] + } + if len(layout) >= i+6 && layout[i:i+6] == "Z07:00" { + return layout[0:i], stdISO8601ColonTZ, layout[i+6:] + } + if len(layout) >= i+3 && layout[i:i+3] == "Z07" { + return layout[0:i], stdISO8601ShortTZ, layout[i+3:] + } + + case '.': // .000 or .999 - repeated digits for fractional seconds. + if i+1 < len(layout) && (layout[i+1] == '0' || layout[i+1] == '9') { + ch := layout[i+1] + j := i + 1 + for j < len(layout) && layout[j] == ch { + j++ + } + // String of digits must end here - only fractional second is all digits. + if !isDigit(layout, j) { + std := stdFracSecond0 + if layout[i+1] == '9' { + std = stdFracSecond9 + } + std |= (j - (i + 1)) << stdArgShift + return layout[0:i], std, layout[j:] + } + } + case '(': + if len(layout) >= i+5 && layout[i:i+5] == "(MST)" { + return layout[0:i], stdBracketTZ, layout[i+5:] + } + } + } + return layout, 0, "" +} + +var longDayNames = []string{ + "Sunday", + "Monday", + "Tuesday", + "Wednesday", + "Thursday", + "Friday", + "Saturday", +} + +var shortDayNames = []string{ + "Sun", + "Mon", + "Tue", + "Wed", + "Thu", + "Fri", + "Sat", +} + +var shortMonthNames = []string{ + "Jan", + "Feb", + "Mar", + "Apr", + "May", + "Jun", + "Jul", + "Aug", + "Sep", + "Oct", + "Nov", + "Dec", +} + +var longMonthNames = []string{ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December", +} + +// isDigit reports whether s[i] is in range and is a decimal digit. +func isDigit(s string, i int) bool { + if len(s) <= i { + return false + } + c := s[i] + return '0' <= c && c <= '9' +} + +// getnum parses s[0:1] or s[0:2] (fixed forces the latter) +// as a decimal integer and returns the integer and the +// remainder of the string. +func getnum(s string, fixed bool) (int, string, error) { + if !isDigit(s, 0) { + return 0, s, errBad + } + if !isDigit(s, 1) { + if fixed { + return 0, s, errBad + } + return int(s[0] - '0'), s[1:], nil + } + return int(s[0]-'0')*10 + int(s[1]-'0'), s[2:], nil +} + +func cutspace(s string) string { + for len(s) > 0 && s[0] == ' ' { + s = s[1:] + } + return s +} + +// skip removes the given prefix from value, +// treating runs of space characters as equivalent. +func skip(value, prefix string) (string, error) { + for len(prefix) > 0 { + if prefix[0] == ' ' { + if len(value) > 0 && value[0] != ' ' { + return value, errBad + } + prefix = cutspace(prefix) + value = cutspace(value) + continue + } + if len(value) == 0 || value[0] != prefix[0] { + return value, errBad + } + prefix = prefix[1:] + value = value[1:] + } + return value, nil +} + +// Never printed, just needs to be non-nil for return by atoi. +var atoiError = errors.New("time: invalid number") + +// Duplicates functionality in strconv, but avoids dependency. +func atoi(s string) (x int, err error) { + q, rem, err := signedLeadingInt(s) + x = int(q) + if err != nil || rem != "" { + return 0, atoiError + } + return x, nil +} + +// match reports whether s1 and s2 match ignoring case. +// It is assumed s1 and s2 are the same length. +func match(s1, s2 string) bool { + for i := 0; i < len(s1); i++ { + c1 := s1[i] + c2 := s2[i] + if c1 != c2 { + // Switch to lower-case; 'a'-'A' is known to be a single bit. + c1 |= 'a' - 'A' + c2 |= 'a' - 'A' + if c1 != c2 || c1 < 'a' || c1 > 'z' { + return false + } + } + } + return true +} + +func lookup(tab []string, val string) (int, string, error) { + for i, v := range tab { + if len(val) >= len(v) && match(val[0:len(v)], v) { + return i, val[len(v):], nil + } + } + return -1, val, errBad +} + +// daysBefore[m] counts the number of days in a non-leap year +// before month m begins. There is an entry for m=12, counting +// the number of days before January of next year (365). +var daysBefore = [...]int32{ + 0, + 31, + 31 + 28, + 31 + 28 + 31, + 31 + 28 + 31 + 30, + 31 + 28 + 31 + 30 + 31, + 31 + 28 + 31 + 30 + 31 + 30, + 31 + 28 + 31 + 30 + 31 + 30 + 31, + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31, + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30, + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31, + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30, + 31 + 28 + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + 31, +} + +func isLeap(year int) bool { + return year%4 == 0 && (year%100 != 0 || year%400 == 0) +} + +func daysIn(m time.Month, year int) int { + if m == time.February && isLeap(year) { + return 29 + } + return int(daysBefore[m] - daysBefore[m-1]) +} + +// parseTimeZone parses a time zone string and returns its length. Time zones +// are human-generated and unpredictable. We can't do precise error checking. +// On the other hand, for a correct parse there must be a time zone at the +// beginning of the string, so it's almost always true that there's one +// there. We look at the beginning of the string for a run of upper-case letters. +// If there are more than 5, it's an error. +// If there are 4 or 5 and the last is a T, it's a time zone. +// If there are 3, it's a time zone. +// Otherwise, other than special cases, it's not a time zone. +// GMT is special because it can have an hour offset. +func parseTimeZone(value string) (length int, ok bool) { + if len(value) < 3 { + return 0, false + } + // Special case 1: ChST and MeST are the only zones with a lower-case letter. + if len(value) >= 4 && (value[:4] == "ChST" || value[:4] == "MeST") { + return 4, true + } + // Special case 2: GMT may have an hour offset; treat it specially. + if value[:3] == "GMT" { + length = parseGMT(value) + return length, true + } + // Special Case 3: Some time zones are not named, but have +/-00 format + if value[0] == '+' || value[0] == '-' { + length = parseSignedOffset(value) + return length, true + } + // How many upper-case letters are there? Need at least three, at most five. + var nUpper int + for nUpper = 0; nUpper < 6; nUpper++ { + if nUpper >= len(value) { + break + } + if c := value[nUpper]; c < 'A' || 'Z' < c { + break + } + } + switch nUpper { + case 0, 1, 2, 6: + return 0, false + case 5: // Must end in T to match. + if value[4] == 'T' { + return 5, true + } + case 4: + // Must end in T, except one special case. + if value[3] == 'T' || value[:4] == "WITA" { + return 4, true + } + case 3: + return 3, true + } + return 0, false +} + +// parseGMT parses a GMT time zone. The input string is known to start "GMT". +// The function checks whether that is followed by a sign and a number in the +// range -14 through 12 excluding zero. +func parseGMT(value string) int { + value = value[3:] + if len(value) == 0 { + return 3 + } + + return 3 + parseSignedOffset(value) +} + +// parseSignedOffset parses a signed timezone offset (e.g. "+03" or "-04"). +// The function checks for a signed number in the range -14 through +12 excluding zero. +// Returns length of the found offset string or 0 otherwise +func parseSignedOffset(value string) int { + sign := value[0] + if sign != '-' && sign != '+' { + return 0 + } + x, rem, err := leadingInt(value[1:]) + if err != nil { + return 0 + } + if sign == '-' { + x = -x + } + if x == 0 || x < -14 || 12 < x { + return 0 + } + return len(value) - len(rem) +} + +func parseNanoseconds(value string, nbytes int) (ns int, rangeErrString string, err error) { + if value[0] != '.' { + err = errBad + return + } + if ns, err = atoi(value[1:nbytes]); err != nil { + return + } + if ns < 0 || 1e9 <= ns { + rangeErrString = "fractional second" + return + } + // We need nanoseconds, which means scaling by the number + // of missing digits in the format, maximum length 10. If it's + // longer than 10, we won't scale. + scaleDigits := 10 - nbytes + for i := 0; i < scaleDigits; i++ { + ns *= 10 + } + return +} + +// std0x records the std values for "01", "02", ..., "06". +var std0x = [...]int{stdZeroMonth, stdZeroDay, stdZeroHour12, stdZeroMinute, stdZeroSecond, stdYear} + +// startsWithLowerCase reports whether the string has a lower-case letter at the beginning. +// Its purpose is to prevent matching strings like "Month" when looking for "Mon". +func startsWithLowerCase(str string) bool { + if len(str) == 0 { + return false + } + c := str[0] + return 'a' <= c && c <= 'z' +} diff --git a/vendor/github.com/dop251/goja/dtoa.go b/vendor/github.com/dop251/goja/dtoa.go new file mode 100644 index 00000000000..0962eb8512b --- /dev/null +++ b/vendor/github.com/dop251/goja/dtoa.go @@ -0,0 +1,290 @@ +package goja + +// Ported from Rhino (https://github.com/mozilla/rhino/blob/master/src/org/mozilla/javascript/DToA.java) + +import ( + "bytes" + "fmt" + "math" + "math/big" + "strconv" +) + +const ( + frac_mask = 0xfffff + exp_shift = 20 + exp_msk1 = 0x100000 + + exp_shiftL = 52 + exp_mask_shifted = 0x7ff + frac_maskL = 0xfffffffffffff + exp_msk1L = 0x10000000000000 + exp_shift1 = 20 + exp_mask = 0x7ff00000 + bias = 1023 + p = 53 + bndry_mask = 0xfffff + log2P = 1 + + digits = "0123456789abcdefghijklmnopqrstuvwxyz" +) + +func lo0bits(x uint32) (k uint32) { + + if (x & 7) != 0 { + if (x & 1) != 0 { + return 0 + } + if (x & 2) != 0 { + return 1 + } + return 2 + } + if (x & 0xffff) == 0 { + k = 16 + x >>= 16 + } + if (x & 0xff) == 0 { + k += 8 + x >>= 8 + } + if (x & 0xf) == 0 { + k += 4 + x >>= 4 + } + if (x & 0x3) == 0 { + k += 2 + x >>= 2 + } + if (x & 1) == 0 { + k++ + x >>= 1 + if (x & 1) == 0 { + return 32 + } + } + return +} + +func hi0bits(x uint32) (k uint32) { + + if (x & 0xffff0000) == 0 { + k = 16 + x <<= 16 + } + if (x & 0xff000000) == 0 { + k += 8 + x <<= 8 + } + if (x & 0xf0000000) == 0 { + k += 4 + x <<= 4 + } + if (x & 0xc0000000) == 0 { + k += 2 + x <<= 2 + } + if (x & 0x80000000) == 0 { + k++ + if (x & 0x40000000) == 0 { + return 32 + } + } + return +} + +func stuffBits(bits []byte, offset int, val uint32) { + bits[offset] = byte(val >> 24) + bits[offset+1] = byte(val >> 16) + bits[offset+2] = byte(val >> 8) + bits[offset+3] = byte(val) +} + +func d2b(d float64) (b *big.Int, e int32, bits uint32) { + dBits := math.Float64bits(d) + d0 := uint32(dBits >> 32) + d1 := uint32(dBits) + + z := d0 & frac_mask + d0 &= 0x7fffffff /* clear sign bit, which we ignore */ + + var de, k, i uint32 + var dbl_bits []byte + if de = (d0 >> exp_shift); de != 0 { + z |= exp_msk1 + } + + y := d1 + if y != 0 { + dbl_bits = make([]byte, 8) + k = lo0bits(y) + y >>= k + if k != 0 { + stuffBits(dbl_bits, 4, y|z<<(32-k)) + z >>= k + } else { + stuffBits(dbl_bits, 4, y) + } + stuffBits(dbl_bits, 0, z) + if z != 0 { + i = 2 + } else { + i = 1 + } + } else { + dbl_bits = make([]byte, 4) + k = lo0bits(z) + z >>= k + stuffBits(dbl_bits, 0, z) + k += 32 + i = 1 + } + + if de != 0 { + e = int32(de - bias - (p - 1) + k) + bits = p - k + } else { + e = int32(de - bias - (p - 1) + 1 + k) + bits = 32*i - hi0bits(z) + } + b = (&big.Int{}).SetBytes(dbl_bits) + return +} + +func dtobasestr(num float64, radix int) string { + var negative bool + if num < 0 { + num = -num + negative = true + } + + dfloor := math.Floor(num) + ldfloor := int64(dfloor) + var intDigits string + if dfloor == float64(ldfloor) { + if negative { + ldfloor = -ldfloor + } + intDigits = strconv.FormatInt(ldfloor, radix) + } else { + floorBits := math.Float64bits(num) + exp := int(floorBits>>exp_shiftL) & exp_mask_shifted + var mantissa int64 + if exp == 0 { + mantissa = int64((floorBits & frac_maskL) << 1) + } else { + mantissa = int64((floorBits & frac_maskL) | exp_msk1L) + } + + if negative { + mantissa = -mantissa + } + exp -= 1075 + x := big.NewInt(mantissa) + if exp > 0 { + x.Lsh(x, uint(exp)) + } else if exp < 0 { + x.Rsh(x, uint(-exp)) + } + intDigits = x.Text(radix) + } + + if num == dfloor { + // No fraction part + return intDigits + } else { + /* We have a fraction. */ + var buffer bytes.Buffer + buffer.WriteString(intDigits) + buffer.WriteByte('.') + df := num - dfloor + + dBits := math.Float64bits(num) + word0 := uint32(dBits >> 32) + word1 := uint32(dBits) + + b, e, _ := d2b(df) + // JS_ASSERT(e < 0); + /* At this point df = b * 2^e. e must be less than zero because 0 < df < 1. */ + + s2 := -int32((word0 >> exp_shift1) & (exp_mask >> exp_shift1)) + if s2 == 0 { + s2 = -1 + } + s2 += bias + p + /* 1/2^s2 = (nextDouble(d) - d)/2 */ + // JS_ASSERT(-s2 < e); + if -s2 >= e { + panic(fmt.Errorf("-s2 >= e: %d, %d", -s2, e)) + } + mlo := big.NewInt(1) + mhi := mlo + if (word1 == 0) && ((word0 & bndry_mask) == 0) && ((word0 & (exp_mask & (exp_mask << 1))) != 0) { + /* The special case. Here we want to be within a quarter of the last input + significant digit instead of one half of it when the output string's value is less than d. */ + s2 += log2P + mhi = big.NewInt(1 << log2P) + } + + b.Lsh(b, uint(e+s2)) + s := big.NewInt(1) + s.Lsh(s, uint(s2)) + /* At this point we have the following: + * s = 2^s2; + * 1 > df = b/2^s2 > 0; + * (d - prevDouble(d))/2 = mlo/2^s2; + * (nextDouble(d) - d)/2 = mhi/2^s2. */ + bigBase := big.NewInt(int64(radix)) + + done := false + m := &big.Int{} + delta := &big.Int{} + for !done { + b.Mul(b, bigBase) + b.DivMod(b, s, m) + digit := byte(b.Int64()) + b, m = m, b + mlo.Mul(mlo, bigBase) + if mlo != mhi { + mhi.Mul(mhi, bigBase) + } + + /* Do we yet have the shortest string that will round to d? */ + j := b.Cmp(mlo) + /* j is b/2^s2 compared with mlo/2^s2. */ + + delta.Sub(s, mhi) + var j1 int + if delta.Sign() <= 0 { + j1 = 1 + } else { + j1 = b.Cmp(delta) + } + /* j1 is b/2^s2 compared with 1 - mhi/2^s2. */ + if j1 == 0 && (word1&1) == 0 { + if j > 0 { + digit++ + } + done = true + } else if j < 0 || (j == 0 && ((word1 & 1) == 0)) { + if j1 > 0 { + /* Either dig or dig+1 would work here as the least significant digit. + Use whichever would produce an output value closer to d. */ + b.Lsh(b, 1) + j1 = b.Cmp(s) + if j1 > 0 { /* The even test (|| (j1 == 0 && (digit & 1))) is not here because it messes up odd base output such as 3.5 in base 3. */ + digit++ + } + } + done = true + } else if j1 > 0 { + digit++ + done = true + } + // JS_ASSERT(digit < (uint32)base); + buffer.WriteByte(digits[digit]) + } + + return buffer.String() + } +} diff --git a/vendor/github.com/dop251/goja/file/README.markdown b/vendor/github.com/dop251/goja/file/README.markdown new file mode 100644 index 00000000000..79757baa8e5 --- /dev/null +++ b/vendor/github.com/dop251/goja/file/README.markdown @@ -0,0 +1,110 @@ +# file +-- + import "github.com/robertkrimen/otto/file" + +Package file encapsulates the file abstractions used by the ast & parser. + +## Usage + +#### type File + +```go +type File struct { +} +``` + + +#### func NewFile + +```go +func NewFile(filename, src string, base int) *File +``` + +#### func (*File) Base + +```go +func (fl *File) Base() int +``` + +#### func (*File) Name + +```go +func (fl *File) Name() string +``` + +#### func (*File) Source + +```go +func (fl *File) Source() string +``` + +#### type FileSet + +```go +type FileSet struct { +} +``` + +A FileSet represents a set of source files. + +#### func (*FileSet) AddFile + +```go +func (self *FileSet) AddFile(filename, src string) int +``` +AddFile adds a new file with the given filename and src. + +This an internal method, but exported for cross-package use. + +#### func (*FileSet) File + +```go +func (self *FileSet) File(idx Idx) *File +``` + +#### func (*FileSet) Position + +```go +func (self *FileSet) Position(idx Idx) *Position +``` +Position converts an Idx in the FileSet into a Position. + +#### type Idx + +```go +type Idx int +``` + +Idx is a compact encoding of a source position within a file set. It can be +converted into a Position for a more convenient, but much larger, +representation. + +#### type Position + +```go +type Position struct { + Filename string // The filename where the error occurred, if any + Offset int // The src offset + Line int // The line number, starting at 1 + Column int // The column number, starting at 1 (The character count) + +} +``` + +Position describes an arbitrary source position including the filename, line, +and column location. + +#### func (*Position) String + +```go +func (self *Position) String() string +``` +String returns a string in one of several forms: + + file:line:column A valid position with filename + line:column A valid position without filename + file An invalid position with filename + - An invalid position without filename + +-- +**godocdown** http://github.com/robertkrimen/godocdown diff --git a/vendor/github.com/dop251/goja/file/file.go b/vendor/github.com/dop251/goja/file/file.go new file mode 100644 index 00000000000..76524ac39e1 --- /dev/null +++ b/vendor/github.com/dop251/goja/file/file.go @@ -0,0 +1,135 @@ +// Package file encapsulates the file abstractions used by the ast & parser. +// +package file + +import ( + "fmt" + "strings" +) + +// Idx is a compact encoding of a source position within a file set. +// It can be converted into a Position for a more convenient, but much +// larger, representation. +type Idx int + +// Position describes an arbitrary source position +// including the filename, line, and column location. +type Position struct { + Filename string // The filename where the error occurred, if any + Offset int // The src offset + Line int // The line number, starting at 1 + Column int // The column number, starting at 1 (The character count) + +} + +// A Position is valid if the line number is > 0. + +func (self *Position) isValid() bool { + return self.Line > 0 +} + +// String returns a string in one of several forms: +// +// file:line:column A valid position with filename +// line:column A valid position without filename +// file An invalid position with filename +// - An invalid position without filename +// +func (self *Position) String() string { + str := self.Filename + if self.isValid() { + if str != "" { + str += ":" + } + str += fmt.Sprintf("%d:%d", self.Line, self.Column) + } + if str == "" { + str = "-" + } + return str +} + +// FileSet + +// A FileSet represents a set of source files. +type FileSet struct { + files []*File + last *File +} + +// AddFile adds a new file with the given filename and src. +// +// This an internal method, but exported for cross-package use. +func (self *FileSet) AddFile(filename, src string) int { + base := self.nextBase() + file := &File{ + name: filename, + src: src, + base: base, + } + self.files = append(self.files, file) + self.last = file + return base +} + +func (self *FileSet) nextBase() int { + if self.last == nil { + return 1 + } + return self.last.base + len(self.last.src) + 1 +} + +func (self *FileSet) File(idx Idx) *File { + for _, file := range self.files { + if idx <= Idx(file.base+len(file.src)) { + return file + } + } + return nil +} + +// Position converts an Idx in the FileSet into a Position. +func (self *FileSet) Position(idx Idx) *Position { + position := &Position{} + for _, file := range self.files { + if idx <= Idx(file.base+len(file.src)) { + offset := int(idx) - file.base + src := file.src[:offset] + position.Filename = file.name + position.Offset = offset + position.Line = 1 + strings.Count(src, "\n") + if index := strings.LastIndex(src, "\n"); index >= 0 { + position.Column = offset - index + } else { + position.Column = 1 + len(src) + } + } + } + return position +} + +type File struct { + name string + src string + base int // This will always be 1 or greater +} + +func NewFile(filename, src string, base int) *File { + return &File{ + name: filename, + src: src, + base: base, + } +} + +func (fl *File) Name() string { + return fl.name +} + +func (fl *File) Source() string { + return fl.src +} + +func (fl *File) Base() int { + return fl.base +} diff --git a/vendor/github.com/dop251/goja/func.go b/vendor/github.com/dop251/goja/func.go new file mode 100644 index 00000000000..a4927b00973 --- /dev/null +++ b/vendor/github.com/dop251/goja/func.go @@ -0,0 +1,240 @@ +package goja + +import "reflect" + +type baseFuncObject struct { + baseObject + + nameProp, lenProp valueProperty +} + +type funcObject struct { + baseFuncObject + + stash *stash + prg *Program + src string +} + +type nativeFuncObject struct { + baseFuncObject + + f func(FunctionCall) Value + construct func(args []Value) *Object +} + +type boundFuncObject struct { + nativeFuncObject +} + +func (f *nativeFuncObject) export() interface{} { + return f.f +} + +func (f *nativeFuncObject) exportType() reflect.Type { + return reflect.TypeOf(f.f) +} + +func (f *funcObject) getPropStr(name string) Value { + switch name { + case "prototype": + if _, exists := f.values["prototype"]; !exists { + return f.addPrototype() + } + } + + return f.baseObject.getPropStr(name) +} + +func (f *funcObject) addPrototype() Value { + proto := f.val.runtime.NewObject() + proto.self._putProp("constructor", f.val, true, false, true) + return f._putProp("prototype", proto, true, false, false) +} + +func (f *funcObject) getProp(n Value) Value { + return f.getPropStr(n.String()) +} + +func (f *funcObject) hasOwnProperty(n Value) bool { + if r := f.baseObject.hasOwnProperty(n); r { + return true + } + + name := n.String() + if name == "prototype" { + return true + } + return false +} + +func (f *funcObject) hasOwnPropertyStr(name string) bool { + if r := f.baseObject.hasOwnPropertyStr(name); r { + return true + } + + if name == "prototype" { + return true + } + return false +} + +func (f *funcObject) construct(args []Value) *Object { + proto := f.getStr("prototype") + var protoObj *Object + if p, ok := proto.(*Object); ok { + protoObj = p + } else { + protoObj = f.val.runtime.global.ObjectPrototype + } + obj := f.val.runtime.newBaseObject(protoObj, classObject).val + ret := f.Call(FunctionCall{ + This: obj, + Arguments: args, + }) + + if ret, ok := ret.(*Object); ok { + return ret + } + return obj +} + +func (f *funcObject) Call(call FunctionCall) Value { + vm := f.val.runtime.vm + pc := vm.pc + + vm.stack.expand(vm.sp + len(call.Arguments) + 1) + vm.stack[vm.sp] = f.val + vm.sp++ + if call.This != nil { + vm.stack[vm.sp] = call.This + } else { + vm.stack[vm.sp] = _undefined + } + vm.sp++ + for _, arg := range call.Arguments { + if arg != nil { + vm.stack[vm.sp] = arg + } else { + vm.stack[vm.sp] = _undefined + } + vm.sp++ + } + + vm.pc = -1 + vm.pushCtx() + vm.args = len(call.Arguments) + vm.prg = f.prg + vm.stash = f.stash + vm.pc = 0 + vm.run() + vm.pc = pc + vm.halt = false + return vm.pop() +} + +func (f *funcObject) export() interface{} { + return f.Call +} + +func (f *funcObject) exportType() reflect.Type { + return reflect.TypeOf(f.Call) +} + +func (f *funcObject) assertCallable() (func(FunctionCall) Value, bool) { + return f.Call, true +} + +func (f *baseFuncObject) init(name string, length int) { + f.baseObject.init() + + f.nameProp.configurable = true + f.nameProp.value = newStringValue(name) + f._put("name", &f.nameProp) + + f.lenProp.configurable = true + f.lenProp.value = valueInt(length) + f._put("length", &f.lenProp) +} + +func (f *baseFuncObject) hasInstance(v Value) bool { + if v, ok := v.(*Object); ok { + o := f.val.self.getStr("prototype") + if o1, ok := o.(*Object); ok { + for { + v = v.self.proto() + if v == nil { + return false + } + if o1 == v { + return true + } + } + } else { + f.val.runtime.typeErrorResult(true, "prototype is not an object") + } + } + + return false +} + +func (f *nativeFuncObject) defaultConstruct(ccall func(ConstructorCall) *Object, args []Value) *Object { + proto := f.getStr("prototype") + var protoObj *Object + if p, ok := proto.(*Object); ok { + protoObj = p + } else { + protoObj = f.val.runtime.global.ObjectPrototype + } + obj := f.val.runtime.newBaseObject(protoObj, classObject).val + ret := ccall(ConstructorCall{ + This: obj, + Arguments: args, + }) + + if ret != nil { + return ret + } + return obj +} + +func (f *nativeFuncObject) assertCallable() (func(FunctionCall) Value, bool) { + if f.f != nil { + return f.f, true + } + return nil, false +} + +func (f *boundFuncObject) getProp(n Value) Value { + return f.getPropStr(n.String()) +} + +func (f *boundFuncObject) getPropStr(name string) Value { + if name == "caller" || name == "arguments" { + //f.runtime.typeErrorResult(true, "'caller' and 'arguments' are restricted function properties and cannot be accessed in this context.") + return f.val.runtime.global.throwerProperty + } + return f.nativeFuncObject.getPropStr(name) +} + +func (f *boundFuncObject) delete(n Value, throw bool) bool { + return f.deleteStr(n.String(), throw) +} + +func (f *boundFuncObject) deleteStr(name string, throw bool) bool { + if name == "caller" || name == "arguments" { + return true + } + return f.nativeFuncObject.deleteStr(name, throw) +} + +func (f *boundFuncObject) putStr(name string, val Value, throw bool) { + if name == "caller" || name == "arguments" { + f.val.runtime.typeErrorResult(true, "'caller' and 'arguments' are restricted function properties and cannot be accessed in this context.") + } + f.nativeFuncObject.putStr(name, val, throw) +} + +func (f *boundFuncObject) put(n Value, val Value, throw bool) { + f.putStr(n.String(), val, throw) +} diff --git a/vendor/github.com/dop251/goja/ipow.go b/vendor/github.com/dop251/goja/ipow.go new file mode 100644 index 00000000000..2462a98cbac --- /dev/null +++ b/vendor/github.com/dop251/goja/ipow.go @@ -0,0 +1,97 @@ +package goja + +// ported from https://gist.github.com/orlp/3551590 + +var highest_bit_set = [256]byte{ + 0, 1, 2, 2, 3, 3, 3, 3, + 4, 4, 4, 4, 4, 4, 4, 4, + 5, 5, 5, 5, 5, 5, 5, 5, + 5, 5, 5, 5, 5, 5, 5, 5, + 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 255, // anything past 63 is a guaranteed overflow with base > 1 + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, + 255, 255, 255, 255, 255, 255, 255, 255, +} + +func ipow(base, exp int64) (result int64) { + result = 1 + + switch highest_bit_set[byte(exp)] { + case 255: // we use 255 as an overflow marker and return 0 on overflow/underflow + if base == 1 { + return 1 + } + + if base == -1 { + return 1 - 2*(exp&1) + } + + return 0 + case 6: + if exp&1 != 0 { + result *= base + } + exp >>= 1 + base *= base + fallthrough + case 5: + if exp&1 != 0 { + result *= base + } + exp >>= 1 + base *= base + fallthrough + case 4: + if exp&1 != 0 { + result *= base + } + exp >>= 1 + base *= base + fallthrough + case 3: + if exp&1 != 0 { + result *= base + } + exp >>= 1 + base *= base + fallthrough + case 2: + if exp&1 != 0 { + result *= base + } + exp >>= 1 + base *= base + fallthrough + case 1: + if exp&1 != 0 { + result *= base + } + fallthrough + default: + return result + } +} diff --git a/vendor/github.com/dop251/goja/object.go b/vendor/github.com/dop251/goja/object.go new file mode 100644 index 00000000000..1319af62e8f --- /dev/null +++ b/vendor/github.com/dop251/goja/object.go @@ -0,0 +1,625 @@ +package goja + +import "reflect" + +const ( + classObject = "Object" + classArray = "Array" + classFunction = "Function" + classNumber = "Number" + classString = "String" + classBoolean = "Boolean" + classError = "Error" + classRegExp = "RegExp" + classDate = "Date" +) + +type Object struct { + runtime *Runtime + self objectImpl +} + +type iterNextFunc func() (propIterItem, iterNextFunc) + +type propertyDescr struct { + Value Value + + Writable, Configurable, Enumerable Flag + + Getter, Setter Value +} + +type objectImpl interface { + sortable + className() string + get(Value) Value + getProp(Value) Value + getPropStr(string) Value + getStr(string) Value + getOwnProp(string) Value + put(Value, Value, bool) + putStr(string, Value, bool) + hasProperty(Value) bool + hasPropertyStr(string) bool + hasOwnProperty(Value) bool + hasOwnPropertyStr(string) bool + _putProp(name string, value Value, writable, enumerable, configurable bool) Value + defineOwnProperty(name Value, descr propertyDescr, throw bool) bool + toPrimitiveNumber() Value + toPrimitiveString() Value + toPrimitive() Value + assertCallable() (call func(FunctionCall) Value, ok bool) + deleteStr(name string, throw bool) bool + delete(name Value, throw bool) bool + proto() *Object + hasInstance(v Value) bool + isExtensible() bool + preventExtensions() + enumerate(all, recusrive bool) iterNextFunc + _enumerate(recursive bool) iterNextFunc + export() interface{} + exportType() reflect.Type + equal(objectImpl) bool +} + +type baseObject struct { + class string + val *Object + prototype *Object + extensible bool + + values map[string]Value + propNames []string +} + +type primitiveValueObject struct { + baseObject + pValue Value +} + +func (o *primitiveValueObject) export() interface{} { + return o.pValue.Export() +} + +func (o *primitiveValueObject) exportType() reflect.Type { + return o.pValue.ExportType() +} + +type FunctionCall struct { + This Value + Arguments []Value +} + +type ConstructorCall struct { + This *Object + Arguments []Value +} + +func (f FunctionCall) Argument(idx int) Value { + if idx < len(f.Arguments) { + return f.Arguments[idx] + } + return _undefined +} + +func (f ConstructorCall) Argument(idx int) Value { + if idx < len(f.Arguments) { + return f.Arguments[idx] + } + return _undefined +} + +func (o *baseObject) init() { + o.values = make(map[string]Value) +} + +func (o *baseObject) className() string { + return o.class +} + +func (o *baseObject) getPropStr(name string) Value { + if val := o.getOwnProp(name); val != nil { + return val + } + if o.prototype != nil { + return o.prototype.self.getPropStr(name) + } + return nil +} + +func (o *baseObject) getProp(n Value) Value { + return o.val.self.getPropStr(n.String()) +} + +func (o *baseObject) hasProperty(n Value) bool { + return o.val.self.getProp(n) != nil +} + +func (o *baseObject) hasPropertyStr(name string) bool { + return o.val.self.getPropStr(name) != nil +} + +func (o *baseObject) _getStr(name string) Value { + p := o.getOwnProp(name) + + if p == nil && o.prototype != nil { + p = o.prototype.self.getPropStr(name) + } + + if p, ok := p.(*valueProperty); ok { + return p.get(o.val) + } + + return p +} + +func (o *baseObject) getStr(name string) Value { + p := o.val.self.getPropStr(name) + if p, ok := p.(*valueProperty); ok { + return p.get(o.val) + } + + return p +} + +func (o *baseObject) get(n Value) Value { + return o.getStr(n.String()) +} + +func (o *baseObject) checkDeleteProp(name string, prop *valueProperty, throw bool) bool { + if !prop.configurable { + o.val.runtime.typeErrorResult(throw, "Cannot delete property '%s' of %s", name, o.val.ToString()) + return false + } + return true +} + +func (o *baseObject) checkDelete(name string, val Value, throw bool) bool { + if val, ok := val.(*valueProperty); ok { + return o.checkDeleteProp(name, val, throw) + } + return true +} + +func (o *baseObject) _delete(name string) { + delete(o.values, name) + for i, n := range o.propNames { + if n == name { + copy(o.propNames[i:], o.propNames[i+1:]) + o.propNames = o.propNames[:len(o.propNames)-1] + break + } + } +} + +func (o *baseObject) deleteStr(name string, throw bool) bool { + if val, exists := o.values[name]; exists { + if !o.checkDelete(name, val, throw) { + return false + } + o._delete(name) + return true + } + return true +} + +func (o *baseObject) delete(n Value, throw bool) bool { + return o.deleteStr(n.String(), throw) +} + +func (o *baseObject) put(n Value, val Value, throw bool) { + o.putStr(n.String(), val, throw) +} + +func (o *baseObject) getOwnProp(name string) Value { + v := o.values[name] + if v == nil && name == "__proto" { + return o.prototype + } + return v +} + +func (o *baseObject) putStr(name string, val Value, throw bool) { + if v, exists := o.values[name]; exists { + if prop, ok := v.(*valueProperty); ok { + if !prop.isWritable() { + o.val.runtime.typeErrorResult(throw, "Cannot assign to read only property '%s'", name) + return + } + prop.set(o.val, val) + return + } + o.values[name] = val + return + } + + if name == "__proto__" { + if !o.extensible { + o.val.runtime.typeErrorResult(throw, "%s is not extensible", o.val) + return + } + if val == _undefined || val == _null { + o.prototype = nil + return + } else { + if val, ok := val.(*Object); ok { + o.prototype = val + } + } + return + } + + var pprop Value + if proto := o.prototype; proto != nil { + pprop = proto.self.getPropStr(name) + } + + if pprop != nil { + if prop, ok := pprop.(*valueProperty); ok { + if !prop.isWritable() { + o.val.runtime.typeErrorResult(throw) + return + } + if prop.accessor { + prop.set(o.val, val) + return + } + } + } else { + if !o.extensible { + o.val.runtime.typeErrorResult(throw) + return + } + } + + o.values[name] = val + o.propNames = append(o.propNames, name) +} + +func (o *baseObject) hasOwnProperty(n Value) bool { + v := o.values[n.String()] + return v != nil +} + +func (o *baseObject) hasOwnPropertyStr(name string) bool { + v := o.values[name] + return v != nil +} + +func (o *baseObject) _defineOwnProperty(name, existingValue Value, descr propertyDescr, throw bool) (val Value, ok bool) { + + getterObj, _ := descr.Getter.(*Object) + setterObj, _ := descr.Setter.(*Object) + + var existing *valueProperty + + if existingValue == nil { + if !o.extensible { + o.val.runtime.typeErrorResult(throw) + return nil, false + } + existing = &valueProperty{} + } else { + if existing, ok = existingValue.(*valueProperty); !ok { + existing = &valueProperty{ + writable: true, + enumerable: true, + configurable: true, + value: existingValue, + } + } + + if !existing.configurable { + if descr.Configurable == FLAG_TRUE { + goto Reject + } + if descr.Enumerable != FLAG_NOT_SET && descr.Enumerable.Bool() != existing.enumerable { + goto Reject + } + } + if existing.accessor && descr.Value != nil || !existing.accessor && (getterObj != nil || setterObj != nil) { + if !existing.configurable { + goto Reject + } + } else if !existing.accessor { + if !existing.configurable { + if !existing.writable { + if descr.Writable == FLAG_TRUE { + goto Reject + } + if descr.Value != nil && !descr.Value.SameAs(existing.value) { + goto Reject + } + } + } + } else { + if !existing.configurable { + if descr.Getter != nil && existing.getterFunc != getterObj || descr.Setter != nil && existing.setterFunc != setterObj { + goto Reject + } + } + } + } + + if descr.Writable == FLAG_TRUE && descr.Enumerable == FLAG_TRUE && descr.Configurable == FLAG_TRUE && descr.Value != nil { + return descr.Value, true + } + + if descr.Writable != FLAG_NOT_SET { + existing.writable = descr.Writable.Bool() + } + if descr.Enumerable != FLAG_NOT_SET { + existing.enumerable = descr.Enumerable.Bool() + } + if descr.Configurable != FLAG_NOT_SET { + existing.configurable = descr.Configurable.Bool() + } + + if descr.Value != nil { + existing.value = descr.Value + existing.getterFunc = nil + existing.setterFunc = nil + } + + if descr.Value != nil || descr.Writable != FLAG_NOT_SET { + existing.accessor = false + } + + if descr.Getter != nil { + existing.getterFunc = propGetter(o.val, descr.Getter, o.val.runtime) + existing.value = nil + existing.accessor = true + } + + if descr.Setter != nil { + existing.setterFunc = propSetter(o.val, descr.Setter, o.val.runtime) + existing.value = nil + existing.accessor = true + } + + if !existing.accessor && existing.value == nil { + existing.value = _undefined + } + + return existing, true + +Reject: + o.val.runtime.typeErrorResult(throw, "Cannot redefine property: %s", name.ToString()) + return nil, false + +} + +func (o *baseObject) defineOwnProperty(n Value, descr propertyDescr, throw bool) bool { + name := n.String() + existingVal := o.values[name] + if v, ok := o._defineOwnProperty(n, existingVal, descr, throw); ok { + o.values[name] = v + if existingVal == nil { + o.propNames = append(o.propNames, name) + } + return true + } + return false +} + +func (o *baseObject) _put(name string, v Value) { + if _, exists := o.values[name]; !exists { + o.propNames = append(o.propNames, name) + } + + o.values[name] = v +} + +func (o *baseObject) _putProp(name string, value Value, writable, enumerable, configurable bool) Value { + if writable && enumerable && configurable { + o._put(name, value) + return value + } else { + p := &valueProperty{ + value: value, + writable: writable, + enumerable: enumerable, + configurable: configurable, + } + o._put(name, p) + return p + } +} + +func (o *baseObject) tryPrimitive(methodName string) Value { + if method, ok := o.getStr(methodName).(*Object); ok { + if call, ok := method.self.assertCallable(); ok { + v := call(FunctionCall{ + This: o.val, + }) + if _, fail := v.(*Object); !fail { + return v + } + } + } + return nil +} + +func (o *baseObject) toPrimitiveNumber() Value { + if v := o.tryPrimitive("valueOf"); v != nil { + return v + } + + if v := o.tryPrimitive("toString"); v != nil { + return v + } + + o.val.runtime.typeErrorResult(true, "Could not convert %v to primitive", o) + return nil +} + +func (o *baseObject) toPrimitiveString() Value { + if v := o.tryPrimitive("toString"); v != nil { + return v + } + + if v := o.tryPrimitive("valueOf"); v != nil { + return v + } + + o.val.runtime.typeErrorResult(true, "Could not convert %v to primitive", o) + return nil +} + +func (o *baseObject) toPrimitive() Value { + return o.toPrimitiveNumber() +} + +func (o *baseObject) assertCallable() (func(FunctionCall) Value, bool) { + return nil, false +} + +func (o *baseObject) proto() *Object { + return o.prototype +} + +func (o *baseObject) isExtensible() bool { + return o.extensible +} + +func (o *baseObject) preventExtensions() { + o.extensible = false +} + +func (o *baseObject) sortLen() int64 { + return toLength(o.val.self.getStr("length")) +} + +func (o *baseObject) sortGet(i int64) Value { + return o.val.self.get(intToValue(i)) +} + +func (o *baseObject) swap(i, j int64) { + ii := intToValue(i) + jj := intToValue(j) + + x := o.val.self.get(ii) + y := o.val.self.get(jj) + + o.val.self.put(ii, y, false) + o.val.self.put(jj, x, false) +} + +func (o *baseObject) export() interface{} { + m := make(map[string]interface{}) + + for item, f := o.enumerate(false, false)(); f != nil; item, f = f() { + v := item.value + if v == nil { + v = o.getStr(item.name) + } + if v != nil { + m[item.name] = v.Export() + } else { + m[item.name] = nil + } + } + return m +} + +func (o *baseObject) exportType() reflect.Type { + return reflectTypeMap +} + +type enumerableFlag int + +const ( + _ENUM_UNKNOWN enumerableFlag = iota + _ENUM_FALSE + _ENUM_TRUE +) + +type propIterItem struct { + name string + value Value // set only when enumerable == _ENUM_UNKNOWN + enumerable enumerableFlag +} + +type objectPropIter struct { + o *baseObject + propNames []string + recursive bool + idx int +} + +type propFilterIter struct { + wrapped iterNextFunc + all bool + seen map[string]bool +} + +func (i *propFilterIter) next() (propIterItem, iterNextFunc) { + for { + var item propIterItem + item, i.wrapped = i.wrapped() + if i.wrapped == nil { + return propIterItem{}, nil + } + + if !i.seen[item.name] { + i.seen[item.name] = true + if !i.all { + if item.enumerable == _ENUM_FALSE { + continue + } + if item.enumerable == _ENUM_UNKNOWN { + if prop, ok := item.value.(*valueProperty); ok { + if !prop.enumerable { + continue + } + } + } + } + return item, i.next + } + } +} + +func (i *objectPropIter) next() (propIterItem, iterNextFunc) { + for i.idx < len(i.propNames) { + name := i.propNames[i.idx] + i.idx++ + prop := i.o.values[name] + if prop != nil { + return propIterItem{name: name, value: prop}, i.next + } + } + + if i.recursive && i.o.prototype != nil { + return i.o.prototype.self._enumerate(i.recursive)() + } + return propIterItem{}, nil +} + +func (o *baseObject) _enumerate(recursive bool) iterNextFunc { + propNames := make([]string, len(o.propNames)) + copy(propNames, o.propNames) + return (&objectPropIter{ + o: o, + propNames: propNames, + recursive: recursive, + }).next +} + +func (o *baseObject) enumerate(all, recursive bool) iterNextFunc { + return (&propFilterIter{ + wrapped: o._enumerate(recursive), + all: all, + seen: make(map[string]bool), + }).next +} + +func (o *baseObject) equal(other objectImpl) bool { + // Rely on parent reference comparison + return false +} + +func (o *baseObject) hasInstance(v Value) bool { + o.val.runtime.typeErrorResult(true, "Expecting a function in instanceof check, but got %s", o.val.ToString()) + panic("Unreachable") +} diff --git a/vendor/github.com/dop251/goja/object_args.go b/vendor/github.com/dop251/goja/object_args.go new file mode 100644 index 00000000000..16113dec824 --- /dev/null +++ b/vendor/github.com/dop251/goja/object_args.go @@ -0,0 +1,150 @@ +package goja + +type argumentsObject struct { + baseObject + length int +} + +type mappedProperty struct { + valueProperty + v *Value +} + +func (a *argumentsObject) getPropStr(name string) Value { + if prop, ok := a.values[name].(*mappedProperty); ok { + return *prop.v + } + return a.baseObject.getPropStr(name) +} + +func (a *argumentsObject) getProp(n Value) Value { + return a.getPropStr(n.String()) +} + +func (a *argumentsObject) init() { + a.baseObject.init() + a._putProp("length", intToValue(int64(a.length)), true, false, true) +} + +func (a *argumentsObject) put(n Value, val Value, throw bool) { + a.putStr(n.String(), val, throw) +} + +func (a *argumentsObject) putStr(name string, val Value, throw bool) { + if prop, ok := a.values[name].(*mappedProperty); ok { + if !prop.writable { + a.val.runtime.typeErrorResult(throw, "Property is not writable: %s", name) + return + } + *prop.v = val + return + } + a.baseObject.putStr(name, val, throw) +} + +func (a *argumentsObject) deleteStr(name string, throw bool) bool { + if prop, ok := a.values[name].(*mappedProperty); ok { + if !a.checkDeleteProp(name, &prop.valueProperty, throw) { + return false + } + a._delete(name) + return true + } + + return a.baseObject.deleteStr(name, throw) +} + +func (a *argumentsObject) delete(n Value, throw bool) bool { + return a.deleteStr(n.String(), throw) +} + +type argumentsPropIter1 struct { + a *argumentsObject + idx int + recursive bool +} + +type argumentsPropIter struct { + wrapped iterNextFunc +} + +func (i *argumentsPropIter) next() (propIterItem, iterNextFunc) { + var item propIterItem + item, i.wrapped = i.wrapped() + if i.wrapped == nil { + return propIterItem{}, nil + } + if prop, ok := item.value.(*mappedProperty); ok { + item.value = *prop.v + } + return item, i.next +} + +func (a *argumentsObject) _enumerate(recursive bool) iterNextFunc { + return (&argumentsPropIter{ + wrapped: a.baseObject._enumerate(recursive), + }).next + +} + +func (a *argumentsObject) enumerate(all, recursive bool) iterNextFunc { + return (&argumentsPropIter{ + wrapped: a.baseObject.enumerate(all, recursive), + }).next +} + +func (a *argumentsObject) defineOwnProperty(n Value, descr propertyDescr, throw bool) bool { + name := n.String() + if mapped, ok := a.values[name].(*mappedProperty); ok { + existing := &valueProperty{ + configurable: mapped.configurable, + writable: true, + enumerable: mapped.enumerable, + value: mapped.get(a.val), + } + + val, ok := a.baseObject._defineOwnProperty(n, existing, descr, throw) + if !ok { + return false + } + + if prop, ok := val.(*valueProperty); ok { + if !prop.accessor { + *mapped.v = prop.value + } + if prop.accessor || !prop.writable { + a._put(name, prop) + return true + } + mapped.configurable = prop.configurable + mapped.enumerable = prop.enumerable + } else { + *mapped.v = val + mapped.configurable = true + mapped.enumerable = true + } + + return true + } + + return a.baseObject.defineOwnProperty(n, descr, throw) +} + +func (a *argumentsObject) getOwnProp(name string) Value { + if mapped, ok := a.values[name].(*mappedProperty); ok { + return *mapped.v + } + + return a.baseObject.getOwnProp(name) +} + +func (a *argumentsObject) export() interface{} { + arr := make([]interface{}, a.length) + for i, _ := range arr { + v := a.get(intToValue(int64(i))) + if v != nil { + arr[i] = v.Export() + } + } + return arr +} diff --git a/vendor/github.com/dop251/goja/object_gomap.go b/vendor/github.com/dop251/goja/object_gomap.go new file mode 100644 index 00000000000..678c5e30173 --- /dev/null +++ b/vendor/github.com/dop251/goja/object_gomap.go @@ -0,0 +1,221 @@ +package goja + +import ( + "reflect" + "strconv" +) + +type objectGoMapSimple struct { + baseObject + data map[string]interface{} +} + +func (o *objectGoMapSimple) init() { + o.baseObject.init() + o.prototype = o.val.runtime.global.ObjectPrototype + o.class = classObject + o.extensible = true +} + +func (o *objectGoMapSimple) _get(n Value) Value { + return o._getStr(n.String()) +} + +func (o *objectGoMapSimple) _getStr(name string) Value { + v, exists := o.data[name] + if !exists { + return nil + } + return o.val.runtime.ToValue(v) +} + +func (o *objectGoMapSimple) get(n Value) Value { + return o.getStr(n.String()) +} + +func (o *objectGoMapSimple) getProp(n Value) Value { + return o.getPropStr(n.String()) +} + +func (o *objectGoMapSimple) getPropStr(name string) Value { + if v := o._getStr(name); v != nil { + return v + } + return o.baseObject.getPropStr(name) +} + +func (o *objectGoMapSimple) getStr(name string) Value { + if v := o._getStr(name); v != nil { + return v + } + return o.baseObject._getStr(name) +} + +func (o *objectGoMapSimple) getOwnProp(name string) Value { + if v := o._getStr(name); v != nil { + return v + } + return o.baseObject.getOwnProp(name) +} + +func (o *objectGoMapSimple) put(n Value, val Value, throw bool) { + o.putStr(n.String(), val, throw) +} + +func (o *objectGoMapSimple) _hasStr(name string) bool { + _, exists := o.data[name] + return exists +} + +func (o *objectGoMapSimple) _has(n Value) bool { + return o._hasStr(n.String()) +} + +func (o *objectGoMapSimple) putStr(name string, val Value, throw bool) { + if o.extensible || o._hasStr(name) { + o.data[name] = val.Export() + } else { + o.val.runtime.typeErrorResult(throw, "Host object is not extensible") + } +} + +func (o *objectGoMapSimple) hasProperty(n Value) bool { + if o._has(n) { + return true + } + return o.baseObject.hasProperty(n) +} + +func (o *objectGoMapSimple) hasPropertyStr(name string) bool { + if o._hasStr(name) { + return true + } + return o.baseObject.hasOwnPropertyStr(name) +} + +func (o *objectGoMapSimple) hasOwnProperty(n Value) bool { + return o._has(n) +} + +func (o *objectGoMapSimple) hasOwnPropertyStr(name string) bool { + return o._hasStr(name) +} + +func (o *objectGoMapSimple) _putProp(name string, value Value, writable, enumerable, configurable bool) Value { + o.putStr(name, value, false) + return value +} + +func (o *objectGoMapSimple) defineOwnProperty(name Value, descr propertyDescr, throw bool) bool { + if descr.Getter != nil || descr.Setter != nil { + o.val.runtime.typeErrorResult(throw, "Host objects do not support accessor properties") + return false + } + o.put(name, descr.Value, throw) + return true +} + +/* +func (o *objectGoMapSimple) toPrimitiveNumber() Value { + return o.toPrimitiveString() +} + +func (o *objectGoMapSimple) toPrimitiveString() Value { + return stringObjectObject +} + +func (o *objectGoMapSimple) toPrimitive() Value { + return o.toPrimitiveString() +} + +func (o *objectGoMapSimple) assertCallable() (call func(FunctionCall) Value, ok bool) { + return nil, false +} +*/ + +func (o *objectGoMapSimple) deleteStr(name string, throw bool) bool { + delete(o.data, name) + return true +} + +func (o *objectGoMapSimple) delete(name Value, throw bool) bool { + return o.deleteStr(name.String(), throw) +} + +type gomapPropIter struct { + o *objectGoMapSimple + propNames []string + recursive bool + idx int +} + +func (i *gomapPropIter) next() (propIterItem, iterNextFunc) { + for i.idx < len(i.propNames) { + name := i.propNames[i.idx] + i.idx++ + if _, exists := i.o.data[name]; exists { + return propIterItem{name: name, enumerable: _ENUM_TRUE}, i.next + } + } + + if i.recursive { + return i.o.prototype.self._enumerate(true)() + } + + return propIterItem{}, nil +} + +func (o *objectGoMapSimple) enumerate(all, recursive bool) iterNextFunc { + return (&propFilterIter{ + wrapped: o._enumerate(recursive), + all: all, + seen: make(map[string]bool), + }).next +} + +func (o *objectGoMapSimple) _enumerate(recursive bool) iterNextFunc { + propNames := make([]string, len(o.data)) + i := 0 + for key, _ := range o.data { + propNames[i] = key + i++ + } + return (&gomapPropIter{ + o: o, + propNames: propNames, + recursive: recursive, + }).next +} + +func (o *objectGoMapSimple) export() interface{} { + return o.data +} + +func (o *objectGoMapSimple) exportType() reflect.Type { + return reflectTypeMap +} + +func (o *objectGoMapSimple) equal(other objectImpl) bool { + if other, ok := other.(*objectGoMapSimple); ok { + return o == other + } + return false +} + +func (o *objectGoMapSimple) sortLen() int64 { + return int64(len(o.data)) +} + +func (o *objectGoMapSimple) sortGet(i int64) Value { + return o.getStr(strconv.FormatInt(i, 10)) +} + +func (o *objectGoMapSimple) swap(i, j int64) { + ii := strconv.FormatInt(i, 10) + jj := strconv.FormatInt(j, 10) + x := o.getStr(ii) + y := o.getStr(jj) + + o.putStr(ii, y, false) + o.putStr(jj, x, false) +} diff --git a/vendor/github.com/dop251/goja/object_gomap_reflect.go b/vendor/github.com/dop251/goja/object_gomap_reflect.go new file mode 100644 index 00000000000..a040d363aff --- /dev/null +++ b/vendor/github.com/dop251/goja/object_gomap_reflect.go @@ -0,0 +1,203 @@ +package goja + +import "reflect" + +type objectGoMapReflect struct { + objectGoReflect + + keyType, valueType reflect.Type +} + +func (o *objectGoMapReflect) init() { + o.objectGoReflect.init() + o.keyType = o.value.Type().Key() + o.valueType = o.value.Type().Elem() +} + +func (o *objectGoMapReflect) toKey(n Value) reflect.Value { + key, err := o.val.runtime.toReflectValue(n, o.keyType) + if err != nil { + o.val.runtime.typeErrorResult(true, "map key conversion error: %v", err) + panic("unreachable") + } + return key +} + +func (o *objectGoMapReflect) strToKey(name string) reflect.Value { + if o.keyType.Kind() == reflect.String { + return reflect.ValueOf(name).Convert(o.keyType) + } + return o.toKey(newStringValue(name)) +} + +func (o *objectGoMapReflect) _get(n Value) Value { + if v := o.value.MapIndex(o.toKey(n)); v.IsValid() { + return o.val.runtime.ToValue(v.Interface()) + } + + return nil +} + +func (o *objectGoMapReflect) _getStr(name string) Value { + if v := o.value.MapIndex(o.strToKey(name)); v.IsValid() { + return o.val.runtime.ToValue(v.Interface()) + } + + return nil +} + +func (o *objectGoMapReflect) get(n Value) Value { + if v := o._get(n); v != nil { + return v + } + return o.objectGoReflect.get(n) +} + +func (o *objectGoMapReflect) getStr(name string) Value { + if v := o._getStr(name); v != nil { + return v + } + return o.objectGoReflect.getStr(name) +} + +func (o *objectGoMapReflect) getProp(n Value) Value { + return o.get(n) +} + +func (o *objectGoMapReflect) getPropStr(name string) Value { + return o.getStr(name) +} + +func (o *objectGoMapReflect) getOwnProp(name string) Value { + if v := o._getStr(name); v != nil { + return &valueProperty{ + value: v, + writable: true, + enumerable: true, + } + } + return o.objectGoReflect.getOwnProp(name) +} + +func (o *objectGoMapReflect) toValue(val Value, throw bool) (reflect.Value, bool) { + v, err := o.val.runtime.toReflectValue(val, o.valueType) + if err != nil { + o.val.runtime.typeErrorResult(throw, "map value conversion error: %v", err) + return reflect.Value{}, false + } + + return v, true +} + +func (o *objectGoMapReflect) put(key, val Value, throw bool) { + k := o.toKey(key) + v, ok := o.toValue(val, throw) + if !ok { + return + } + o.value.SetMapIndex(k, v) +} + +func (o *objectGoMapReflect) putStr(name string, val Value, throw bool) { + k := o.strToKey(name) + v, ok := o.toValue(val, throw) + if !ok { + return + } + o.value.SetMapIndex(k, v) +} + +func (o *objectGoMapReflect) _putProp(name string, value Value, writable, enumerable, configurable bool) Value { + o.putStr(name, value, true) + return value +} + +func (o *objectGoMapReflect) defineOwnProperty(n Value, descr propertyDescr, throw bool) bool { + name := n.String() + if !o.val.runtime.checkHostObjectPropertyDescr(name, descr, throw) { + return false + } + + o.put(n, descr.Value, throw) + return true +} + +func (o *objectGoMapReflect) hasOwnPropertyStr(name string) bool { + return o.value.MapIndex(o.strToKey(name)).IsValid() +} + +func (o *objectGoMapReflect) hasOwnProperty(n Value) bool { + return o.value.MapIndex(o.toKey(n)).IsValid() +} + +func (o *objectGoMapReflect) hasProperty(n Value) bool { + if o.hasOwnProperty(n) { + return true + } + return o.objectGoReflect.hasProperty(n) +} + +func (o *objectGoMapReflect) hasPropertyStr(name string) bool { + if o.hasOwnPropertyStr(name) { + return true + } + return o.objectGoReflect.hasPropertyStr(name) +} + +func (o *objectGoMapReflect) delete(n Value, throw bool) bool { + o.value.SetMapIndex(o.toKey(n), reflect.Value{}) + return true +} + +func (o *objectGoMapReflect) deleteStr(name string, throw bool) bool { + o.value.SetMapIndex(o.strToKey(name), reflect.Value{}) + return true +} + +type gomapReflectPropIter struct { + o *objectGoMapReflect + keys []reflect.Value + idx int + recursive bool +} + +func (i *gomapReflectPropIter) next() (propIterItem, iterNextFunc) { + for i.idx < len(i.keys) { + key := i.keys[i.idx] + v := i.o.value.MapIndex(key) + i.idx++ + if v.IsValid() { + return propIterItem{name: key.String(), enumerable: _ENUM_TRUE}, i.next + } + } + + if i.recursive { + return i.o.objectGoReflect._enumerate(true)() + } + + return propIterItem{}, nil +} + +func (o *objectGoMapReflect) _enumerate(recusrive bool) iterNextFunc { + r := &gomapReflectPropIter{ + o: o, + keys: o.value.MapKeys(), + recursive: recusrive, + } + return r.next +} + +func (o *objectGoMapReflect) enumerate(all, recursive bool) iterNextFunc { + return (&propFilterIter{ + wrapped: o._enumerate(recursive), + all: all, + seen: make(map[string]bool), + }).next +} + +func (o *objectGoMapReflect) equal(other objectImpl) bool { + if other, ok := other.(*objectGoMapReflect); ok { + return o.value.Interface() == other.value.Interface() + } + return false +} diff --git a/vendor/github.com/dop251/goja/object_goreflect.go b/vendor/github.com/dop251/goja/object_goreflect.go new file mode 100644 index 00000000000..e83344e678a --- /dev/null +++ b/vendor/github.com/dop251/goja/object_goreflect.go @@ -0,0 +1,515 @@ +package goja + +import ( + "fmt" + "go/ast" + "reflect" +) + +// JsonEncodable allows custom JSON encoding by JSON.stringify() +// Note that if the returned value itself also implements JsonEncodable, it won't have any effect. +type JsonEncodable interface { + JsonEncodable() interface{} +} + +// FieldNameMapper provides custom mapping between Go and JavaScript property names. +type FieldNameMapper interface { + // FieldName returns a JavaScript name for the given struct field in the given type. + // If this method returns "" the field becomes hidden. + FieldName(t reflect.Type, f reflect.StructField) string + + // FieldName returns a JavaScript name for the given method in the given type. + // If this method returns "" the method becomes hidden. + MethodName(t reflect.Type, m reflect.Method) string +} + +type reflectFieldInfo struct { + Index []int + Anonymous bool +} + +type reflectTypeInfo struct { + Fields map[string]reflectFieldInfo + Methods map[string]int + FieldNames, MethodNames []string +} + +type objectGoReflect struct { + baseObject + origValue, value reflect.Value + + valueTypeInfo, origValueTypeInfo *reflectTypeInfo + + toJson func() interface{} +} + +func (o *objectGoReflect) init() { + o.baseObject.init() + switch o.value.Kind() { + case reflect.Bool: + o.class = classBoolean + o.prototype = o.val.runtime.global.BooleanPrototype + case reflect.String: + o.class = classString + o.prototype = o.val.runtime.global.StringPrototype + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, + reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, + reflect.Float32, reflect.Float64: + + o.class = classNumber + o.prototype = o.val.runtime.global.NumberPrototype + default: + o.class = classObject + o.prototype = o.val.runtime.global.ObjectPrototype + } + + o.baseObject._putProp("toString", o.val.runtime.newNativeFunc(o.toStringFunc, nil, "toString", nil, 0), true, false, true) + o.baseObject._putProp("valueOf", o.val.runtime.newNativeFunc(o.valueOfFunc, nil, "valueOf", nil, 0), true, false, true) + + o.valueTypeInfo = o.val.runtime.typeInfo(o.value.Type()) + o.origValueTypeInfo = o.val.runtime.typeInfo(o.origValue.Type()) + + if j, ok := o.origValue.Interface().(JsonEncodable); ok { + o.toJson = j.JsonEncodable + } +} + +func (o *objectGoReflect) toStringFunc(call FunctionCall) Value { + return o.toPrimitiveString() +} + +func (o *objectGoReflect) valueOfFunc(call FunctionCall) Value { + return o.toPrimitive() +} + +func (o *objectGoReflect) get(n Value) Value { + return o.getStr(n.String()) +} + +func (o *objectGoReflect) _getField(jsName string) reflect.Value { + if info, exists := o.valueTypeInfo.Fields[jsName]; exists { + v := o.value.FieldByIndex(info.Index) + if info.Anonymous { + v = v.Addr() + } + return v + } + + return reflect.Value{} +} + +func (o *objectGoReflect) _getMethod(jsName string) reflect.Value { + if idx, exists := o.origValueTypeInfo.Methods[jsName]; exists { + return o.origValue.Method(idx) + } + + return reflect.Value{} +} + +func (o *objectGoReflect) _get(name string) Value { + if o.value.Kind() == reflect.Struct { + if v := o._getField(name); v.IsValid() { + return o.val.runtime.ToValue(v.Interface()) + } + } + + if v := o._getMethod(name); v.IsValid() { + return o.val.runtime.ToValue(v.Interface()) + } + + return nil +} + +func (o *objectGoReflect) getStr(name string) Value { + if v := o._get(name); v != nil { + return v + } + return o.baseObject._getStr(name) +} + +func (o *objectGoReflect) getProp(n Value) Value { + name := n.String() + if p := o.getOwnProp(name); p != nil { + return p + } + return o.baseObject.getOwnProp(name) +} + +func (o *objectGoReflect) getPropStr(name string) Value { + if v := o.getOwnProp(name); v != nil { + return v + } + return o.baseObject.getPropStr(name) +} + +func (o *objectGoReflect) getOwnProp(name string) Value { + if o.value.Kind() == reflect.Struct { + if v := o._getField(name); v.IsValid() { + return &valueProperty{ + value: o.val.runtime.ToValue(v.Interface()), + writable: v.CanSet(), + enumerable: true, + } + } + } + + if v := o._getMethod(name); v.IsValid() { + return &valueProperty{ + value: o.val.runtime.ToValue(v.Interface()), + enumerable: true, + } + } + + return nil +} + +func (o *objectGoReflect) put(n Value, val Value, throw bool) { + o.putStr(n.String(), val, throw) +} + +func (o *objectGoReflect) putStr(name string, val Value, throw bool) { + if !o._put(name, val, throw) { + o.val.runtime.typeErrorResult(throw, "Cannot assign to property %s of a host object", name) + } +} + +func (o *objectGoReflect) _put(name string, val Value, throw bool) bool { + if o.value.Kind() == reflect.Struct { + if v := o._getField(name); v.IsValid() { + if !v.CanSet() { + o.val.runtime.typeErrorResult(throw, "Cannot assign to a non-addressable or read-only property %s of a host object", name) + return false + } + vv, err := o.val.runtime.toReflectValue(val, v.Type()) + if err != nil { + o.val.runtime.typeErrorResult(throw, "Go struct conversion error: %v", err) + return false + } + v.Set(vv) + return true + } + } + return false +} + +func (o *objectGoReflect) _putProp(name string, value Value, writable, enumerable, configurable bool) Value { + if o._put(name, value, false) { + return value + } + return o.baseObject._putProp(name, value, writable, enumerable, configurable) +} + +func (r *Runtime) checkHostObjectPropertyDescr(name string, descr propertyDescr, throw bool) bool { + if descr.Getter != nil || descr.Setter != nil { + r.typeErrorResult(throw, "Host objects do not support accessor properties") + return false + } + if descr.Writable == FLAG_FALSE { + r.typeErrorResult(throw, "Host object field %s cannot be made read-only", name) + return false + } + if descr.Configurable == FLAG_TRUE { + r.typeErrorResult(throw, "Host object field %s cannot be made configurable", name) + return false + } + return true +} + +func (o *objectGoReflect) defineOwnProperty(n Value, descr propertyDescr, throw bool) bool { + name := n.String() + if ast.IsExported(name) { + if o.value.Kind() == reflect.Struct { + if v := o._getField(name); v.IsValid() { + if !o.val.runtime.checkHostObjectPropertyDescr(name, descr, throw) { + return false + } + val := descr.Value + if val == nil { + val = _undefined + } + vv, err := o.val.runtime.toReflectValue(val, v.Type()) + if err != nil { + o.val.runtime.typeErrorResult(throw, "Go struct conversion error: %v", err) + return false + } + v.Set(vv) + return true + } + } + } + + return o.baseObject.defineOwnProperty(n, descr, throw) +} + +func (o *objectGoReflect) _has(name string) bool { + if !ast.IsExported(name) { + return false + } + if o.value.Kind() == reflect.Struct { + if v := o._getField(name); v.IsValid() { + return true + } + } + if v := o._getMethod(name); v.IsValid() { + return true + } + return false +} + +func (o *objectGoReflect) hasProperty(n Value) bool { + name := n.String() + if o._has(name) { + return true + } + return o.baseObject.hasProperty(n) +} + +func (o *objectGoReflect) hasPropertyStr(name string) bool { + if o._has(name) { + return true + } + return o.baseObject.hasPropertyStr(name) +} + +func (o *objectGoReflect) hasOwnProperty(n Value) bool { + return o._has(n.String()) +} + +func (o *objectGoReflect) hasOwnPropertyStr(name string) bool { + return o._has(name) +} + +func (o *objectGoReflect) _toNumber() Value { + switch o.value.Kind() { + case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: + return intToValue(o.value.Int()) + case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64: + return intToValue(int64(o.value.Uint())) + case reflect.Bool: + if o.value.Bool() { + return intToValue(1) + } else { + return intToValue(0) + } + case reflect.Float32, reflect.Float64: + return floatToValue(o.value.Float()) + } + return nil +} + +func (o *objectGoReflect) _toString() Value { + switch o.value.Kind() { + case reflect.String: + return newStringValue(o.value.String()) + case reflect.Bool: + if o.value.Interface().(bool) { + return stringTrue + } else { + return stringFalse + } + } + switch v := o.value.Interface().(type) { + case fmt.Stringer: + return newStringValue(v.String()) + } + return stringObjectObject +} + +func (o *objectGoReflect) toPrimitiveNumber() Value { + if v := o._toNumber(); v != nil { + return v + } + return o._toString() +} + +func (o *objectGoReflect) toPrimitiveString() Value { + if v := o._toNumber(); v != nil { + return v.ToString() + } + return o._toString() +} + +func (o *objectGoReflect) toPrimitive() Value { + if o.prototype == o.val.runtime.global.NumberPrototype { + return o.toPrimitiveNumber() + } + return o.toPrimitiveString() +} + +func (o *objectGoReflect) deleteStr(name string, throw bool) bool { + if o._has(name) { + o.val.runtime.typeErrorResult(throw, "Cannot delete property %s from a Go type") + return false + } + return o.baseObject.deleteStr(name, throw) +} + +func (o *objectGoReflect) delete(name Value, throw bool) bool { + return o.deleteStr(name.String(), throw) +} + +type goreflectPropIter struct { + o *objectGoReflect + idx int + recursive bool +} + +func (i *goreflectPropIter) nextField() (propIterItem, iterNextFunc) { + names := i.o.valueTypeInfo.FieldNames + if i.idx < len(names) { + name := names[i.idx] + i.idx++ + return propIterItem{name: name, enumerable: _ENUM_TRUE}, i.nextField + } + + i.idx = 0 + return i.nextMethod() +} + +func (i *goreflectPropIter) nextMethod() (propIterItem, iterNextFunc) { + names := i.o.origValueTypeInfo.MethodNames + if i.idx < len(names) { + name := names[i.idx] + i.idx++ + return propIterItem{name: name, enumerable: _ENUM_TRUE}, i.nextMethod + } + + if i.recursive { + return i.o.baseObject._enumerate(true)() + } + + return propIterItem{}, nil +} + +func (o *objectGoReflect) _enumerate(recursive bool) iterNextFunc { + r := &goreflectPropIter{ + o: o, + recursive: recursive, + } + if o.value.Kind() == reflect.Struct { + return r.nextField + } + return r.nextMethod +} + +func (o *objectGoReflect) enumerate(all, recursive bool) iterNextFunc { + return (&propFilterIter{ + wrapped: o._enumerate(recursive), + all: all, + seen: make(map[string]bool), + }).next +} + +func (o *objectGoReflect) export() interface{} { + return o.origValue.Interface() +} + +func (o *objectGoReflect) exportType() reflect.Type { + return o.origValue.Type() +} + +func (o *objectGoReflect) equal(other objectImpl) bool { + if other, ok := other.(*objectGoReflect); ok { + return o.value.Interface() == other.value.Interface() + } + return false +} + +func (r *Runtime) buildFieldInfo(t reflect.Type, index []int, info *reflectTypeInfo) { + n := t.NumField() + for i := 0; i < n; i++ { + field := t.Field(i) + name := field.Name + if !ast.IsExported(name) { + continue + } + if r.fieldNameMapper != nil { + name = r.fieldNameMapper.FieldName(t, field) + if name == "" { + continue + } + } + + if inf, exists := info.Fields[name]; !exists { + info.FieldNames = append(info.FieldNames, name) + } else { + if len(inf.Index) <= len(index) { + continue + } + } + + idx := make([]int, len(index)+1) + copy(idx, index) + idx[len(idx)-1] = i + + info.Fields[name] = reflectFieldInfo{ + Index: idx, + Anonymous: field.Anonymous, + } + if field.Anonymous { + typ := field.Type + for typ.Kind() == reflect.Ptr { + typ = typ.Elem() + } + if typ.Kind() == reflect.Struct { + r.buildFieldInfo(typ, idx, info) + } + } + } +} + +func (r *Runtime) buildTypeInfo(t reflect.Type) (info *reflectTypeInfo) { + info = new(reflectTypeInfo) + if t.Kind() == reflect.Struct { + info.Fields = make(map[string]reflectFieldInfo) + n := t.NumField() + info.FieldNames = make([]string, 0, n) + r.buildFieldInfo(t, nil, info) + } + + info.Methods = make(map[string]int) + n := t.NumMethod() + info.MethodNames = make([]string, 0, n) + for i := 0; i < n; i++ { + method := t.Method(i) + name := method.Name + if !ast.IsExported(name) { + continue + } + if r.fieldNameMapper != nil { + name = r.fieldNameMapper.MethodName(t, method) + if name == "" { + continue + } + } + + if _, exists := info.Methods[name]; !exists { + info.MethodNames = append(info.MethodNames, name) + } + + info.Methods[name] = i + } + return +} + +func (r *Runtime) typeInfo(t reflect.Type) (info *reflectTypeInfo) { + var exists bool + if info, exists = r.typeInfoCache[t]; !exists { + info = r.buildTypeInfo(t) + if r.typeInfoCache == nil { + r.typeInfoCache = make(map[reflect.Type]*reflectTypeInfo) + } + r.typeInfoCache[t] = info + } + + return +} + +// Sets a custom field name mapper for Go types. It can be called at any time, however +// the mapping for any given value is fixed at the point of creation. +// Setting this to nil restores the default behaviour which is all exported fields and methods are mapped to their +// original unchanged names. +func (r *Runtime) SetFieldNameMapper(mapper FieldNameMapper) { + r.fieldNameMapper = mapper + r.typeInfoCache = nil +} diff --git a/vendor/github.com/dop251/goja/object_goslice.go b/vendor/github.com/dop251/goja/object_goslice.go new file mode 100644 index 00000000000..cb7df72e2c1 --- /dev/null +++ b/vendor/github.com/dop251/goja/object_goslice.go @@ -0,0 +1,303 @@ +package goja + +import ( + "reflect" + "strconv" +) + +type objectGoSlice struct { + baseObject + data *[]interface{} + lengthProp valueProperty + sliceExtensible bool +} + +func (o *objectGoSlice) init() { + o.baseObject.init() + o.class = classArray + o.prototype = o.val.runtime.global.ArrayPrototype + o.lengthProp.writable = o.sliceExtensible + o._setLen() + o.baseObject._put("length", &o.lengthProp) +} + +func (o *objectGoSlice) _setLen() { + o.lengthProp.value = intToValue(int64(len(*o.data))) +} + +func (o *objectGoSlice) getIdx(idx int64) Value { + if idx < int64(len(*o.data)) { + return o.val.runtime.ToValue((*o.data)[idx]) + } + return nil +} + +func (o *objectGoSlice) _get(n Value) Value { + if idx := toIdx(n); idx >= 0 { + return o.getIdx(idx) + } + return nil +} + +func (o *objectGoSlice) _getStr(name string) Value { + if idx := strToIdx(name); idx >= 0 { + return o.getIdx(idx) + } + return nil +} + +func (o *objectGoSlice) get(n Value) Value { + if v := o._get(n); v != nil { + return v + } + return o.baseObject._getStr(n.String()) +} + +func (o *objectGoSlice) getStr(name string) Value { + if v := o._getStr(name); v != nil { + return v + } + return o.baseObject._getStr(name) +} + +func (o *objectGoSlice) getProp(n Value) Value { + if v := o._get(n); v != nil { + return v + } + return o.baseObject.getPropStr(n.String()) +} + +func (o *objectGoSlice) getPropStr(name string) Value { + if v := o._getStr(name); v != nil { + return v + } + return o.baseObject.getPropStr(name) +} + +func (o *objectGoSlice) getOwnProp(name string) Value { + if v := o._getStr(name); v != nil { + return &valueProperty{ + value: v, + writable: true, + enumerable: true, + } + } + return o.baseObject.getOwnProp(name) +} + +func (o *objectGoSlice) grow(size int64) { + newcap := int64(cap(*o.data)) + if newcap < size { + // Use the same algorithm as in runtime.growSlice + doublecap := newcap + newcap + if size > doublecap { + newcap = size + } else { + if len(*o.data) < 1024 { + newcap = doublecap + } else { + for newcap < size { + newcap += newcap / 4 + } + } + } + + n := make([]interface{}, size, newcap) + copy(n, *o.data) + *o.data = n + } else { + *o.data = (*o.data)[:size] + } + o._setLen() +} + +func (o *objectGoSlice) putIdx(idx int64, v Value, throw bool) { + if idx >= int64(len(*o.data)) { + if !o.sliceExtensible { + o.val.runtime.typeErrorResult(throw, "Cannot extend Go slice") + return + } + o.grow(idx + 1) + } + (*o.data)[idx] = v.Export() +} + +func (o *objectGoSlice) put(n Value, val Value, throw bool) { + if idx := toIdx(n); idx >= 0 { + o.putIdx(idx, val, throw) + return + } + // TODO: length + o.baseObject.put(n, val, throw) +} + +func (o *objectGoSlice) putStr(name string, val Value, throw bool) { + if idx := strToIdx(name); idx >= 0 { + o.putIdx(idx, val, throw) + return + } + // TODO: length + o.baseObject.putStr(name, val, throw) +} + +func (o *objectGoSlice) _has(n Value) bool { + if idx := toIdx(n); idx >= 0 { + return idx < int64(len(*o.data)) + } + return false +} + +func (o *objectGoSlice) _hasStr(name string) bool { + if idx := strToIdx(name); idx >= 0 { + return idx < int64(len(*o.data)) + } + return false +} + +func (o *objectGoSlice) hasProperty(n Value) bool { + if o._has(n) { + return true + } + return o.baseObject.hasProperty(n) +} + +func (o *objectGoSlice) hasPropertyStr(name string) bool { + if o._hasStr(name) { + return true + } + return o.baseObject.hasPropertyStr(name) +} + +func (o *objectGoSlice) hasOwnProperty(n Value) bool { + if o._has(n) { + return true + } + return o.baseObject.hasOwnProperty(n) +} + +func (o *objectGoSlice) hasOwnPropertyStr(name string) bool { + if o._hasStr(name) { + return true + } + return o.baseObject.hasOwnPropertyStr(name) +} + +func (o *objectGoSlice) _putProp(name string, value Value, writable, enumerable, configurable bool) Value { + o.putStr(name, value, false) + return value +} + +func (o *objectGoSlice) defineOwnProperty(n Value, descr propertyDescr, throw bool) bool { + if idx := toIdx(n); idx >= 0 { + if !o.val.runtime.checkHostObjectPropertyDescr(n.String(), descr, throw) { + return false + } + val := descr.Value + if val == nil { + val = _undefined + } + o.putIdx(idx, val, throw) + return true + } + return o.baseObject.defineOwnProperty(n, descr, throw) +} + +func (o *objectGoSlice) toPrimitiveNumber() Value { + return o.toPrimitiveString() +} + +func (o *objectGoSlice) toPrimitiveString() Value { + return o.val.runtime.arrayproto_join(FunctionCall{ + This: o.val, + }) +} + +func (o *objectGoSlice) toPrimitive() Value { + return o.toPrimitiveString() +} + +func (o *objectGoSlice) deleteStr(name string, throw bool) bool { + if idx := strToIdx(name); idx >= 0 && idx < int64(len(*o.data)) { + (*o.data)[idx] = nil + return true + } + return o.baseObject.deleteStr(name, throw) +} + +func (o *objectGoSlice) delete(name Value, throw bool) bool { + if idx := toIdx(name); idx >= 0 && idx < int64(len(*o.data)) { + (*o.data)[idx] = nil + return true + } + return o.baseObject.delete(name, throw) +} + +type goslicePropIter struct { + o *objectGoSlice + recursive bool + idx, limit int +} + +func (i *goslicePropIter) next() (propIterItem, iterNextFunc) { + if i.idx < i.limit && i.idx < len(*i.o.data) { + name := strconv.Itoa(i.idx) + i.idx++ + return propIterItem{name: name, enumerable: _ENUM_TRUE}, i.next + } + + if i.recursive { + return i.o.prototype.self._enumerate(i.recursive)() + } + + return propIterItem{}, nil +} + +func (o *objectGoSlice) enumerate(all, recursive bool) iterNextFunc { + return (&propFilterIter{ + wrapped: o._enumerate(recursive), + all: all, + seen: make(map[string]bool), + }).next + +} + +func (o *objectGoSlice) _enumerate(recursive bool) iterNextFunc { + return (&goslicePropIter{ + o: o, + recursive: recursive, + limit: len(*o.data), + }).next +} + +func (o *objectGoSlice) export() interface{} { + return *o.data +} + +func (o *objectGoSlice) exportType() reflect.Type { + return reflectTypeArray +} + +func (o *objectGoSlice) equal(other objectImpl) bool { + if other, ok := other.(*objectGoSlice); ok { + return o.data == other.data + } + return false +} + +func (o *objectGoSlice) sortLen() int64 { + return int64(len(*o.data)) +} + +func (o *objectGoSlice) sortGet(i int64) Value { + return o.get(intToValue(i)) +} + +func (o *objectGoSlice) swap(i, j int64) { + ii := intToValue(i) + jj := intToValue(j) + x := o.get(ii) + y := o.get(jj) + + o.put(ii, y, false) + o.put(jj, x, false) +} diff --git a/vendor/github.com/dop251/goja/object_goslice_reflect.go b/vendor/github.com/dop251/goja/object_goslice_reflect.go new file mode 100644 index 00000000000..d0ac9d24579 --- /dev/null +++ b/vendor/github.com/dop251/goja/object_goslice_reflect.go @@ -0,0 +1,250 @@ +package goja + +import ( + "reflect" + "strconv" +) + +type objectGoSliceReflect struct { + objectGoReflect + lengthProp valueProperty +} + +func (o *objectGoSliceReflect) init() { + o.objectGoReflect.init() + o.class = classArray + o.prototype = o.val.runtime.global.ArrayPrototype + o.lengthProp.writable = false + o._setLen() + o.baseObject._put("length", &o.lengthProp) +} + +func (o *objectGoSliceReflect) _setLen() { + o.lengthProp.value = intToValue(int64(o.value.Len())) +} + +func (o *objectGoSliceReflect) _has(n Value) bool { + if idx := toIdx(n); idx >= 0 { + return idx < int64(o.value.Len()) + } + return false +} + +func (o *objectGoSliceReflect) _hasStr(name string) bool { + if idx := strToIdx(name); idx >= 0 { + return idx < int64(o.value.Len()) + } + return false +} + +func (o *objectGoSliceReflect) getIdx(idx int64) Value { + if idx < int64(o.value.Len()) { + return o.val.runtime.ToValue(o.value.Index(int(idx)).Interface()) + } + return nil +} + +func (o *objectGoSliceReflect) _get(n Value) Value { + if idx := toIdx(n); idx >= 0 { + return o.getIdx(idx) + } + return nil +} + +func (o *objectGoSliceReflect) _getStr(name string) Value { + if idx := strToIdx(name); idx >= 0 { + return o.getIdx(idx) + } + return nil +} + +func (o *objectGoSliceReflect) get(n Value) Value { + if v := o._get(n); v != nil { + return v + } + return o.objectGoReflect.get(n) +} + +func (o *objectGoSliceReflect) getProp(n Value) Value { + if v := o._get(n); v != nil { + return v + } + return o.objectGoReflect.getProp(n) +} + +func (o *objectGoSliceReflect) getPropStr(name string) Value { + if v := o._getStr(name); v != nil { + return v + } + return o.objectGoReflect.getPropStr(name) +} + +func (o *objectGoSliceReflect) getOwnProp(name string) Value { + if v := o._getStr(name); v != nil { + return v + } + return o.objectGoReflect.getOwnProp(name) +} + +func (o *objectGoSliceReflect) putIdx(idx int64, v Value, throw bool) { + if idx >= int64(o.value.Len()) { + o.val.runtime.typeErrorResult(throw, "Cannot extend a Go reflect slice") + return + } + val, err := o.val.runtime.toReflectValue(v, o.value.Type().Elem()) + if err != nil { + o.val.runtime.typeErrorResult(throw, "Go type conversion error: %v", err) + return + } + o.value.Index(int(idx)).Set(val) +} + +func (o *objectGoSliceReflect) put(n Value, val Value, throw bool) { + if idx := toIdx(n); idx >= 0 { + o.putIdx(idx, val, throw) + return + } + // TODO: length + o.objectGoReflect.put(n, val, throw) +} + +func (o *objectGoSliceReflect) putStr(name string, val Value, throw bool) { + if idx := strToIdx(name); idx >= 0 { + o.putIdx(idx, val, throw) + return + } + // TODO: length + o.objectGoReflect.putStr(name, val, throw) +} + +func (o *objectGoSliceReflect) hasProperty(n Value) bool { + if o._has(n) { + return true + } + return o.objectGoReflect.hasProperty(n) +} + +func (o *objectGoSliceReflect) hasPropertyStr(name string) bool { + if o._hasStr(name) { + return true + } + return o.objectGoReflect.hasOwnPropertyStr(name) +} + +func (o *objectGoSliceReflect) hasOwnProperty(n Value) bool { + if o._has(n) { + return true + } + return o.objectGoReflect.hasOwnProperty(n) +} + +func (o *objectGoSliceReflect) hasOwnPropertyStr(name string) bool { + if o._hasStr(name) { + return true + } + return o.objectGoReflect.hasOwnPropertyStr(name) +} + +func (o *objectGoSliceReflect) _putProp(name string, value Value, writable, enumerable, configurable bool) Value { + o.putStr(name, value, false) + return value +} + +func (o *objectGoSliceReflect) defineOwnProperty(name Value, descr propertyDescr, throw bool) bool { + if !o.val.runtime.checkHostObjectPropertyDescr(name.String(), descr, throw) { + return false + } + o.put(name, descr.Value, throw) + return true +} + +func (o *objectGoSliceReflect) toPrimitiveNumber() Value { + return o.toPrimitiveString() +} + +func (o *objectGoSliceReflect) toPrimitiveString() Value { + return o.val.runtime.arrayproto_join(FunctionCall{ + This: o.val, + }) +} + +func (o *objectGoSliceReflect) toPrimitive() Value { + return o.toPrimitiveString() +} + +func (o *objectGoSliceReflect) deleteStr(name string, throw bool) bool { + if idx := strToIdx(name); idx >= 0 && idx < int64(o.value.Len()) { + o.value.Index(int(idx)).Set(reflect.Zero(o.value.Type().Elem())) + return true + } + return o.objectGoReflect.deleteStr(name, throw) +} + +func (o *objectGoSliceReflect) delete(name Value, throw bool) bool { + if idx := toIdx(name); idx >= 0 && idx < int64(o.value.Len()) { + o.value.Index(int(idx)).Set(reflect.Zero(o.value.Type().Elem())) + return true + } + return true +} + +type gosliceReflectPropIter struct { + o *objectGoSliceReflect + recursive bool + idx, limit int +} + +func (i *gosliceReflectPropIter) next() (propIterItem, iterNextFunc) { + if i.idx < i.limit && i.idx < i.o.value.Len() { + name := strconv.Itoa(i.idx) + i.idx++ + return propIterItem{name: name, enumerable: _ENUM_TRUE}, i.next + } + + if i.recursive { + return i.o.prototype.self._enumerate(i.recursive)() + } + + return propIterItem{}, nil +} + +func (o *objectGoSliceReflect) enumerate(all, recursive bool) iterNextFunc { + return (&propFilterIter{ + wrapped: o._enumerate(recursive), + all: all, + seen: make(map[string]bool), + }).next +} + +func (o *objectGoSliceReflect) _enumerate(recursive bool) iterNextFunc { + return (&gosliceReflectPropIter{ + o: o, + recursive: recursive, + limit: o.value.Len(), + }).next +} + +func (o *objectGoSliceReflect) equal(other objectImpl) bool { + if other, ok := other.(*objectGoSliceReflect); ok { + return o.value.Interface() == other.value.Interface() + } + return false +} + +func (o *objectGoSliceReflect) sortLen() int64 { + return int64(o.value.Len()) +} + +func (o *objectGoSliceReflect) sortGet(i int64) Value { + return o.get(intToValue(i)) +} + +func (o *objectGoSliceReflect) swap(i, j int64) { + ii := intToValue(i) + jj := intToValue(j) + x := o.get(ii) + y := o.get(jj) + + o.put(ii, y, false) + o.put(jj, x, false) +} diff --git a/vendor/github.com/dop251/goja/object_lazy.go b/vendor/github.com/dop251/goja/object_lazy.go new file mode 100644 index 00000000000..6fb405d0fb4 --- /dev/null +++ b/vendor/github.com/dop251/goja/object_lazy.go @@ -0,0 +1,200 @@ +package goja + +import "reflect" + +type lazyObject struct { + val *Object + create func(*Object) objectImpl +} + +func (o *lazyObject) className() string { + obj := o.create(o.val) + o.val.self = obj + return obj.className() +} + +func (o *lazyObject) get(n Value) Value { + obj := o.create(o.val) + o.val.self = obj + return obj.get(n) +} + +func (o *lazyObject) getProp(n Value) Value { + obj := o.create(o.val) + o.val.self = obj + return obj.getProp(n) +} + +func (o *lazyObject) getPropStr(name string) Value { + obj := o.create(o.val) + o.val.self = obj + return obj.getPropStr(name) +} + +func (o *lazyObject) getStr(name string) Value { + obj := o.create(o.val) + o.val.self = obj + return obj.getStr(name) +} + +func (o *lazyObject) getOwnProp(name string) Value { + obj := o.create(o.val) + o.val.self = obj + return obj.getOwnProp(name) +} + +func (o *lazyObject) put(n Value, val Value, throw bool) { + obj := o.create(o.val) + o.val.self = obj + obj.put(n, val, throw) +} + +func (o *lazyObject) putStr(name string, val Value, throw bool) { + obj := o.create(o.val) + o.val.self = obj + obj.putStr(name, val, throw) +} + +func (o *lazyObject) hasProperty(n Value) bool { + obj := o.create(o.val) + o.val.self = obj + return obj.hasProperty(n) +} + +func (o *lazyObject) hasPropertyStr(name string) bool { + obj := o.create(o.val) + o.val.self = obj + return obj.hasPropertyStr(name) +} + +func (o *lazyObject) hasOwnProperty(n Value) bool { + obj := o.create(o.val) + o.val.self = obj + return obj.hasOwnProperty(n) +} + +func (o *lazyObject) hasOwnPropertyStr(name string) bool { + obj := o.create(o.val) + o.val.self = obj + return obj.hasOwnPropertyStr(name) +} + +func (o *lazyObject) _putProp(name string, value Value, writable, enumerable, configurable bool) Value { + obj := o.create(o.val) + o.val.self = obj + return obj._putProp(name, value, writable, enumerable, configurable) +} + +func (o *lazyObject) defineOwnProperty(name Value, descr propertyDescr, throw bool) bool { + obj := o.create(o.val) + o.val.self = obj + return obj.defineOwnProperty(name, descr, throw) +} + +func (o *lazyObject) toPrimitiveNumber() Value { + obj := o.create(o.val) + o.val.self = obj + return obj.toPrimitiveNumber() +} + +func (o *lazyObject) toPrimitiveString() Value { + obj := o.create(o.val) + o.val.self = obj + return obj.toPrimitiveString() +} + +func (o *lazyObject) toPrimitive() Value { + obj := o.create(o.val) + o.val.self = obj + return obj.toPrimitive() +} + +func (o *lazyObject) assertCallable() (call func(FunctionCall) Value, ok bool) { + obj := o.create(o.val) + o.val.self = obj + return obj.assertCallable() +} + +func (o *lazyObject) deleteStr(name string, throw bool) bool { + obj := o.create(o.val) + o.val.self = obj + return obj.deleteStr(name, throw) +} + +func (o *lazyObject) delete(name Value, throw bool) bool { + obj := o.create(o.val) + o.val.self = obj + return obj.delete(name, throw) +} + +func (o *lazyObject) proto() *Object { + obj := o.create(o.val) + o.val.self = obj + return obj.proto() +} + +func (o *lazyObject) hasInstance(v Value) bool { + obj := o.create(o.val) + o.val.self = obj + return obj.hasInstance(v) +} + +func (o *lazyObject) isExtensible() bool { + obj := o.create(o.val) + o.val.self = obj + return obj.isExtensible() +} + +func (o *lazyObject) preventExtensions() { + obj := o.create(o.val) + o.val.self = obj + obj.preventExtensions() +} + +func (o *lazyObject) enumerate(all, recusrive bool) iterNextFunc { + obj := o.create(o.val) + o.val.self = obj + return obj.enumerate(all, recusrive) +} + +func (o *lazyObject) _enumerate(recursive bool) iterNextFunc { + obj := o.create(o.val) + o.val.self = obj + return obj._enumerate(recursive) +} + +func (o *lazyObject) export() interface{} { + obj := o.create(o.val) + o.val.self = obj + return obj.export() +} + +func (o *lazyObject) exportType() reflect.Type { + obj := o.create(o.val) + o.val.self = obj + return obj.exportType() +} + +func (o *lazyObject) equal(other objectImpl) bool { + obj := o.create(o.val) + o.val.self = obj + return obj.equal(other) +} + +func (o *lazyObject) sortLen() int64 { + obj := o.create(o.val) + o.val.self = obj + return obj.sortLen() +} + +func (o *lazyObject) sortGet(i int64) Value { + obj := o.create(o.val) + o.val.self = obj + return obj.sortGet(i) +} + +func (o *lazyObject) swap(i, j int64) { + obj := o.create(o.val) + o.val.self = obj + obj.swap(i, j) +} diff --git a/vendor/github.com/dop251/goja/parser/README.markdown b/vendor/github.com/dop251/goja/parser/README.markdown new file mode 100644 index 00000000000..ec1186d4638 --- /dev/null +++ b/vendor/github.com/dop251/goja/parser/README.markdown @@ -0,0 +1,184 @@ +# parser +-- + import "github.com/dop251/goja/parser" + +Package parser implements a parser for JavaScript. Borrowed from https://github.com/robertkrimen/otto/tree/master/parser + + import ( + "github.com/dop251/goja/parser" + ) + +Parse and return an AST + + filename := "" // A filename is optional + src := ` + // Sample xyzzy example + (function(){ + if (3.14159 > 0) { + console.log("Hello, World."); + return; + } + + var xyzzy = NaN; + console.log("Nothing happens."); + return xyzzy; + })(); + ` + + // Parse some JavaScript, yielding a *ast.Program and/or an ErrorList + program, err := parser.ParseFile(nil, filename, src, 0) + + +### Warning + +The parser and AST interfaces are still works-in-progress (particularly where +node types are concerned) and may change in the future. + +## Usage + +#### func ParseFile + +```go +func ParseFile(fileSet *file.FileSet, filename string, src interface{}, mode Mode) (*ast.Program, error) +``` +ParseFile parses the source code of a single JavaScript/ECMAScript source file +and returns the corresponding ast.Program node. + +If fileSet == nil, ParseFile parses source without a FileSet. If fileSet != nil, +ParseFile first adds filename and src to fileSet. + +The filename argument is optional and is used for labelling errors, etc. + +src may be a string, a byte slice, a bytes.Buffer, or an io.Reader, but it MUST +always be in UTF-8. + + // Parse some JavaScript, yielding a *ast.Program and/or an ErrorList + program, err := parser.ParseFile(nil, "", `if (abc > 1) {}`, 0) + +#### func ParseFunction + +```go +func ParseFunction(parameterList, body string) (*ast.FunctionLiteral, error) +``` +ParseFunction parses a given parameter list and body as a function and returns +the corresponding ast.FunctionLiteral node. + +The parameter list, if any, should be a comma-separated list of identifiers. + +#### func ReadSource + +```go +func ReadSource(filename string, src interface{}) ([]byte, error) +``` + +#### func TransformRegExp + +```go +func TransformRegExp(pattern string) (string, error) +``` +TransformRegExp transforms a JavaScript pattern into a Go "regexp" pattern. + +re2 (Go) cannot do backtracking, so the presence of a lookahead (?=) (?!) or +backreference (\1, \2, ...) will cause an error. + +re2 (Go) has a different definition for \s: [\t\n\f\r ]. The JavaScript +definition, on the other hand, also includes \v, Unicode "Separator, Space", +etc. + +If the pattern is invalid (not valid even in JavaScript), then this function +returns the empty string and an error. + +If the pattern is valid, but incompatible (contains a lookahead or +backreference), then this function returns the transformation (a non-empty +string) AND an error. + +#### type Error + +```go +type Error struct { + Position file.Position + Message string +} +``` + +An Error represents a parsing error. It includes the position where the error +occurred and a message/description. + +#### func (Error) Error + +```go +func (self Error) Error() string +``` + +#### type ErrorList + +```go +type ErrorList []*Error +``` + +ErrorList is a list of *Errors. + +#### func (*ErrorList) Add + +```go +func (self *ErrorList) Add(position file.Position, msg string) +``` +Add adds an Error with given position and message to an ErrorList. + +#### func (ErrorList) Err + +```go +func (self ErrorList) Err() error +``` +Err returns an error equivalent to this ErrorList. If the list is empty, Err +returns nil. + +#### func (ErrorList) Error + +```go +func (self ErrorList) Error() string +``` +Error implements the Error interface. + +#### func (ErrorList) Len + +```go +func (self ErrorList) Len() int +``` + +#### func (ErrorList) Less + +```go +func (self ErrorList) Less(i, j int) bool +``` + +#### func (*ErrorList) Reset + +```go +func (self *ErrorList) Reset() +``` +Reset resets an ErrorList to no errors. + +#### func (ErrorList) Sort + +```go +func (self ErrorList) Sort() +``` + +#### func (ErrorList) Swap + +```go +func (self ErrorList) Swap(i, j int) +``` + +#### type Mode + +```go +type Mode uint +``` + +A Mode value is a set of flags (or 0). They control optional parser +functionality. + +-- +**godocdown** http://github.com/robertkrimen/godocdown diff --git a/vendor/github.com/dop251/goja/parser/error.go b/vendor/github.com/dop251/goja/parser/error.go new file mode 100644 index 00000000000..bfa33f250a2 --- /dev/null +++ b/vendor/github.com/dop251/goja/parser/error.go @@ -0,0 +1,175 @@ +package parser + +import ( + "fmt" + "sort" + + "github.com/dop251/goja/file" + "github.com/dop251/goja/token" +) + +const ( + err_UnexpectedToken = "Unexpected token %v" + err_UnexpectedEndOfInput = "Unexpected end of input" + err_UnexpectedEscape = "Unexpected escape" +) + +// UnexpectedNumber: 'Unexpected number', +// UnexpectedString: 'Unexpected string', +// UnexpectedIdentifier: 'Unexpected identifier', +// UnexpectedReserved: 'Unexpected reserved word', +// NewlineAfterThrow: 'Illegal newline after throw', +// InvalidRegExp: 'Invalid regular expression', +// UnterminatedRegExp: 'Invalid regular expression: missing /', +// InvalidLHSInAssignment: 'Invalid left-hand side in assignment', +// InvalidLHSInForIn: 'Invalid left-hand side in for-in', +// MultipleDefaultsInSwitch: 'More than one default clause in switch statement', +// NoCatchOrFinally: 'Missing catch or finally after try', +// UnknownLabel: 'Undefined label \'%0\'', +// Redeclaration: '%0 \'%1\' has already been declared', +// IllegalContinue: 'Illegal continue statement', +// IllegalBreak: 'Illegal break statement', +// IllegalReturn: 'Illegal return statement', +// StrictModeWith: 'Strict mode code may not include a with statement', +// StrictCatchVariable: 'Catch variable may not be eval or arguments in strict mode', +// StrictVarName: 'Variable name may not be eval or arguments in strict mode', +// StrictParamName: 'Parameter name eval or arguments is not allowed in strict mode', +// StrictParamDupe: 'Strict mode function may not have duplicate parameter names', +// StrictFunctionName: 'Function name may not be eval or arguments in strict mode', +// StrictOctalLiteral: 'Octal literals are not allowed in strict mode.', +// StrictDelete: 'Delete of an unqualified identifier in strict mode.', +// StrictDuplicateProperty: 'Duplicate data property in object literal not allowed in strict mode', +// AccessorDataProperty: 'Object literal may not have data and accessor property with the same name', +// AccessorGetSet: 'Object literal may not have multiple get/set accessors with the same name', +// StrictLHSAssignment: 'Assignment to eval or arguments is not allowed in strict mode', +// StrictLHSPostfix: 'Postfix increment/decrement may not have eval or arguments operand in strict mode', +// StrictLHSPrefix: 'Prefix increment/decrement may not have eval or arguments operand in strict mode', +// StrictReservedWord: 'Use of future reserved word in strict mode' + +// A SyntaxError is a description of an ECMAScript syntax error. + +// An Error represents a parsing error. It includes the position where the error occurred and a message/description. +type Error struct { + Position file.Position + Message string +} + +// FIXME Should this be "SyntaxError"? + +func (self Error) Error() string { + filename := self.Position.Filename + if filename == "" { + filename = "(anonymous)" + } + return fmt.Sprintf("%s: Line %d:%d %s", + filename, + self.Position.Line, + self.Position.Column, + self.Message, + ) +} + +func (self *_parser) error(place interface{}, msg string, msgValues ...interface{}) *Error { + idx := file.Idx(0) + switch place := place.(type) { + case int: + idx = self.idxOf(place) + case file.Idx: + if place == 0 { + idx = self.idxOf(self.chrOffset) + } else { + idx = place + } + default: + panic(fmt.Errorf("error(%T, ...)", place)) + } + + position := self.position(idx) + msg = fmt.Sprintf(msg, msgValues...) + self.errors.Add(position, msg) + return self.errors[len(self.errors)-1] +} + +func (self *_parser) errorUnexpected(idx file.Idx, chr rune) error { + if chr == -1 { + return self.error(idx, err_UnexpectedEndOfInput) + } + return self.error(idx, err_UnexpectedToken, token.ILLEGAL) +} + +func (self *_parser) errorUnexpectedToken(tkn token.Token) error { + switch tkn { + case token.EOF: + return self.error(file.Idx(0), err_UnexpectedEndOfInput) + } + value := tkn.String() + switch tkn { + case token.BOOLEAN, token.NULL: + value = self.literal + case token.IDENTIFIER: + return self.error(self.idx, "Unexpected identifier") + case token.KEYWORD: + // TODO Might be a future reserved word + return self.error(self.idx, "Unexpected reserved word") + case token.NUMBER: + return self.error(self.idx, "Unexpected number") + case token.STRING: + return self.error(self.idx, "Unexpected string") + } + return self.error(self.idx, err_UnexpectedToken, value) +} + +// ErrorList is a list of *Errors. +// +type ErrorList []*Error + +// Add adds an Error with given position and message to an ErrorList. +func (self *ErrorList) Add(position file.Position, msg string) { + *self = append(*self, &Error{position, msg}) +} + +// Reset resets an ErrorList to no errors. +func (self *ErrorList) Reset() { *self = (*self)[0:0] } + +func (self ErrorList) Len() int { return len(self) } +func (self ErrorList) Swap(i, j int) { self[i], self[j] = self[j], self[i] } +func (self ErrorList) Less(i, j int) bool { + x := &self[i].Position + y := &self[j].Position + if x.Filename < y.Filename { + return true + } + if x.Filename == y.Filename { + if x.Line < y.Line { + return true + } + if x.Line == y.Line { + return x.Column < y.Column + } + } + return false +} + +func (self ErrorList) Sort() { + sort.Sort(self) +} + +// Error implements the Error interface. +func (self ErrorList) Error() string { + switch len(self) { + case 0: + return "no errors" + case 1: + return self[0].Error() + } + return fmt.Sprintf("%s (and %d more errors)", self[0].Error(), len(self)-1) +} + +// Err returns an error equivalent to this ErrorList. +// If the list is empty, Err returns nil. +func (self ErrorList) Err() error { + if len(self) == 0 { + return nil + } + return self +} diff --git a/vendor/github.com/dop251/goja/parser/expression.go b/vendor/github.com/dop251/goja/parser/expression.go new file mode 100644 index 00000000000..3eaa64e3709 --- /dev/null +++ b/vendor/github.com/dop251/goja/parser/expression.go @@ -0,0 +1,797 @@ +package parser + +import ( + "github.com/dop251/goja/ast" + "github.com/dop251/goja/file" + "github.com/dop251/goja/token" +) + +func (self *_parser) parseIdentifier() *ast.Identifier { + literal := self.literal + idx := self.idx + self.next() + return &ast.Identifier{ + Name: literal, + Idx: idx, + } +} + +func (self *_parser) parsePrimaryExpression() ast.Expression { + literal := self.literal + idx := self.idx + switch self.token { + case token.IDENTIFIER: + self.next() + if len(literal) > 1 { + tkn, strict := token.IsKeyword(literal) + if tkn == token.KEYWORD { + if !strict { + self.error(idx, "Unexpected reserved word") + } + } + } + return &ast.Identifier{ + Name: literal, + Idx: idx, + } + case token.NULL: + self.next() + return &ast.NullLiteral{ + Idx: idx, + Literal: literal, + } + case token.BOOLEAN: + self.next() + value := false + switch literal { + case "true": + value = true + case "false": + value = false + default: + self.error(idx, "Illegal boolean literal") + } + return &ast.BooleanLiteral{ + Idx: idx, + Literal: literal, + Value: value, + } + case token.STRING: + self.next() + value, err := parseStringLiteral(literal[1 : len(literal)-1]) + if err != nil { + self.error(idx, err.Error()) + } + return &ast.StringLiteral{ + Idx: idx, + Literal: literal, + Value: value, + } + case token.NUMBER: + self.next() + value, err := parseNumberLiteral(literal) + if err != nil { + self.error(idx, err.Error()) + value = 0 + } + return &ast.NumberLiteral{ + Idx: idx, + Literal: literal, + Value: value, + } + case token.SLASH, token.QUOTIENT_ASSIGN: + return self.parseRegExpLiteral() + case token.LEFT_BRACE: + return self.parseObjectLiteral() + case token.LEFT_BRACKET: + return self.parseArrayLiteral() + case token.LEFT_PARENTHESIS: + self.expect(token.LEFT_PARENTHESIS) + expression := self.parseExpression() + self.expect(token.RIGHT_PARENTHESIS) + return expression + case token.THIS: + self.next() + return &ast.ThisExpression{ + Idx: idx, + } + case token.FUNCTION: + return self.parseFunction(false) + } + + self.errorUnexpectedToken(self.token) + self.nextStatement() + return &ast.BadExpression{From: idx, To: self.idx} +} + +func (self *_parser) parseRegExpLiteral() *ast.RegExpLiteral { + + offset := self.chrOffset - 1 // Opening slash already gotten + if self.token == token.QUOTIENT_ASSIGN { + offset -= 1 // = + } + idx := self.idxOf(offset) + + pattern, err := self.scanString(offset) + endOffset := self.chrOffset + + if err == nil { + pattern = pattern[1 : len(pattern)-1] + } + + flags := "" + if !isLineTerminator(self.chr) && !isLineWhiteSpace(self.chr) { + self.next() + + if self.token == token.IDENTIFIER { // gim + + flags = self.literal + self.next() + endOffset = self.chrOffset - 1 + } + } else { + self.next() + } + + literal := self.str[offset:endOffset] + + return &ast.RegExpLiteral{ + Idx: idx, + Literal: literal, + Pattern: pattern, + Flags: flags, + } +} + +func (self *_parser) parseVariableDeclaration(declarationList *[]*ast.VariableExpression) ast.Expression { + + if self.token != token.IDENTIFIER { + idx := self.expect(token.IDENTIFIER) + self.nextStatement() + return &ast.BadExpression{From: idx, To: self.idx} + } + + literal := self.literal + idx := self.idx + self.next() + node := &ast.VariableExpression{ + Name: literal, + Idx: idx, + } + + if declarationList != nil { + *declarationList = append(*declarationList, node) + } + + if self.token == token.ASSIGN { + self.next() + node.Initializer = self.parseAssignmentExpression() + } + + return node +} + +func (self *_parser) parseVariableDeclarationList(var_ file.Idx) []ast.Expression { + + var declarationList []*ast.VariableExpression // Avoid bad expressions + var list []ast.Expression + + for { + list = append(list, self.parseVariableDeclaration(&declarationList)) + if self.token != token.COMMA { + break + } + self.next() + } + + self.scope.declare(&ast.VariableDeclaration{ + Var: var_, + List: declarationList, + }) + + return list +} + +func (self *_parser) parseObjectPropertyKey() (string, string) { + idx, tkn, literal := self.idx, self.token, self.literal + value := "" + self.next() + switch tkn { + case token.IDENTIFIER: + value = literal + case token.NUMBER: + var err error + _, err = parseNumberLiteral(literal) + if err != nil { + self.error(idx, err.Error()) + } else { + value = literal + } + case token.STRING: + var err error + value, err = parseStringLiteral(literal[1 : len(literal)-1]) + if err != nil { + self.error(idx, err.Error()) + } + default: + // null, false, class, etc. + if matchIdentifier.MatchString(literal) { + value = literal + } + } + return literal, value +} + +func (self *_parser) parseObjectProperty() ast.Property { + + literal, value := self.parseObjectPropertyKey() + if literal == "get" && self.token != token.COLON { + idx := self.idx + _, value := self.parseObjectPropertyKey() + parameterList := self.parseFunctionParameterList() + + node := &ast.FunctionLiteral{ + Function: idx, + ParameterList: parameterList, + } + self.parseFunctionBlock(node) + return ast.Property{ + Key: value, + Kind: "get", + Value: node, + } + } else if literal == "set" && self.token != token.COLON { + idx := self.idx + _, value := self.parseObjectPropertyKey() + parameterList := self.parseFunctionParameterList() + + node := &ast.FunctionLiteral{ + Function: idx, + ParameterList: parameterList, + } + self.parseFunctionBlock(node) + return ast.Property{ + Key: value, + Kind: "set", + Value: node, + } + } + + self.expect(token.COLON) + + return ast.Property{ + Key: value, + Kind: "value", + Value: self.parseAssignmentExpression(), + } +} + +func (self *_parser) parseObjectLiteral() ast.Expression { + var value []ast.Property + idx0 := self.expect(token.LEFT_BRACE) + for self.token != token.RIGHT_BRACE && self.token != token.EOF { + property := self.parseObjectProperty() + value = append(value, property) + if self.token != token.RIGHT_BRACE { + self.expect(token.COMMA) + } else { + break + } + } + idx1 := self.expect(token.RIGHT_BRACE) + + return &ast.ObjectLiteral{ + LeftBrace: idx0, + RightBrace: idx1, + Value: value, + } +} + +func (self *_parser) parseArrayLiteral() ast.Expression { + + idx0 := self.expect(token.LEFT_BRACKET) + var value []ast.Expression + for self.token != token.RIGHT_BRACKET && self.token != token.EOF { + if self.token == token.COMMA { + self.next() + value = append(value, nil) + continue + } + value = append(value, self.parseAssignmentExpression()) + if self.token != token.RIGHT_BRACKET { + self.expect(token.COMMA) + } + } + idx1 := self.expect(token.RIGHT_BRACKET) + + return &ast.ArrayLiteral{ + LeftBracket: idx0, + RightBracket: idx1, + Value: value, + } +} + +func (self *_parser) parseArgumentList() (argumentList []ast.Expression, idx0, idx1 file.Idx) { + idx0 = self.expect(token.LEFT_PARENTHESIS) + if self.token != token.RIGHT_PARENTHESIS { + for { + argumentList = append(argumentList, self.parseAssignmentExpression()) + if self.token != token.COMMA { + break + } + self.next() + } + } + idx1 = self.expect(token.RIGHT_PARENTHESIS) + return +} + +func (self *_parser) parseCallExpression(left ast.Expression) ast.Expression { + argumentList, idx0, idx1 := self.parseArgumentList() + return &ast.CallExpression{ + Callee: left, + LeftParenthesis: idx0, + ArgumentList: argumentList, + RightParenthesis: idx1, + } +} + +func (self *_parser) parseDotMember(left ast.Expression) ast.Expression { + period := self.expect(token.PERIOD) + + literal := self.literal + idx := self.idx + + if !matchIdentifier.MatchString(literal) { + self.expect(token.IDENTIFIER) + self.nextStatement() + return &ast.BadExpression{From: period, To: self.idx} + } + + self.next() + + return &ast.DotExpression{ + Left: left, + Identifier: ast.Identifier{ + Idx: idx, + Name: literal, + }, + } +} + +func (self *_parser) parseBracketMember(left ast.Expression) ast.Expression { + idx0 := self.expect(token.LEFT_BRACKET) + member := self.parseExpression() + idx1 := self.expect(token.RIGHT_BRACKET) + return &ast.BracketExpression{ + LeftBracket: idx0, + Left: left, + Member: member, + RightBracket: idx1, + } +} + +func (self *_parser) parseNewExpression() ast.Expression { + idx := self.expect(token.NEW) + callee := self.parseLeftHandSideExpression() + node := &ast.NewExpression{ + New: idx, + Callee: callee, + } + if self.token == token.LEFT_PARENTHESIS { + argumentList, idx0, idx1 := self.parseArgumentList() + node.ArgumentList = argumentList + node.LeftParenthesis = idx0 + node.RightParenthesis = idx1 + } + return node +} + +func (self *_parser) parseLeftHandSideExpression() ast.Expression { + + var left ast.Expression + if self.token == token.NEW { + left = self.parseNewExpression() + } else { + left = self.parsePrimaryExpression() + } + + for { + if self.token == token.PERIOD { + left = self.parseDotMember(left) + } else if self.token == token.LEFT_BRACKET { + left = self.parseBracketMember(left) + } else { + break + } + } + + return left +} + +func (self *_parser) parseLeftHandSideExpressionAllowCall() ast.Expression { + + allowIn := self.scope.allowIn + self.scope.allowIn = true + defer func() { + self.scope.allowIn = allowIn + }() + + var left ast.Expression + if self.token == token.NEW { + left = self.parseNewExpression() + } else { + left = self.parsePrimaryExpression() + } + + for { + if self.token == token.PERIOD { + left = self.parseDotMember(left) + } else if self.token == token.LEFT_BRACKET { + left = self.parseBracketMember(left) + } else if self.token == token.LEFT_PARENTHESIS { + left = self.parseCallExpression(left) + } else { + break + } + } + + return left +} + +func (self *_parser) parsePostfixExpression() ast.Expression { + operand := self.parseLeftHandSideExpressionAllowCall() + + switch self.token { + case token.INCREMENT, token.DECREMENT: + // Make sure there is no line terminator here + if self.implicitSemicolon { + break + } + tkn := self.token + idx := self.idx + self.next() + switch operand.(type) { + case *ast.Identifier, *ast.DotExpression, *ast.BracketExpression: + default: + self.error(idx, "Invalid left-hand side in assignment") + self.nextStatement() + return &ast.BadExpression{From: idx, To: self.idx} + } + return &ast.UnaryExpression{ + Operator: tkn, + Idx: idx, + Operand: operand, + Postfix: true, + } + } + + return operand +} + +func (self *_parser) parseUnaryExpression() ast.Expression { + + switch self.token { + case token.PLUS, token.MINUS, token.NOT, token.BITWISE_NOT: + fallthrough + case token.DELETE, token.VOID, token.TYPEOF: + tkn := self.token + idx := self.idx + self.next() + return &ast.UnaryExpression{ + Operator: tkn, + Idx: idx, + Operand: self.parseUnaryExpression(), + } + case token.INCREMENT, token.DECREMENT: + tkn := self.token + idx := self.idx + self.next() + operand := self.parseUnaryExpression() + switch operand.(type) { + case *ast.Identifier, *ast.DotExpression, *ast.BracketExpression: + default: + self.error(idx, "Invalid left-hand side in assignment") + self.nextStatement() + return &ast.BadExpression{From: idx, To: self.idx} + } + return &ast.UnaryExpression{ + Operator: tkn, + Idx: idx, + Operand: operand, + } + } + + return self.parsePostfixExpression() +} + +func (self *_parser) parseMultiplicativeExpression() ast.Expression { + next := self.parseUnaryExpression + left := next() + + for self.token == token.MULTIPLY || self.token == token.SLASH || + self.token == token.REMAINDER { + tkn := self.token + self.next() + left = &ast.BinaryExpression{ + Operator: tkn, + Left: left, + Right: next(), + } + } + + return left +} + +func (self *_parser) parseAdditiveExpression() ast.Expression { + next := self.parseMultiplicativeExpression + left := next() + + for self.token == token.PLUS || self.token == token.MINUS { + tkn := self.token + self.next() + left = &ast.BinaryExpression{ + Operator: tkn, + Left: left, + Right: next(), + } + } + + return left +} + +func (self *_parser) parseShiftExpression() ast.Expression { + next := self.parseAdditiveExpression + left := next() + + for self.token == token.SHIFT_LEFT || self.token == token.SHIFT_RIGHT || + self.token == token.UNSIGNED_SHIFT_RIGHT { + tkn := self.token + self.next() + left = &ast.BinaryExpression{ + Operator: tkn, + Left: left, + Right: next(), + } + } + + return left +} + +func (self *_parser) parseRelationalExpression() ast.Expression { + next := self.parseShiftExpression + left := next() + + allowIn := self.scope.allowIn + self.scope.allowIn = true + defer func() { + self.scope.allowIn = allowIn + }() + + switch self.token { + case token.LESS, token.LESS_OR_EQUAL, token.GREATER, token.GREATER_OR_EQUAL: + tkn := self.token + self.next() + return &ast.BinaryExpression{ + Operator: tkn, + Left: left, + Right: self.parseRelationalExpression(), + Comparison: true, + } + case token.INSTANCEOF: + tkn := self.token + self.next() + return &ast.BinaryExpression{ + Operator: tkn, + Left: left, + Right: self.parseRelationalExpression(), + } + case token.IN: + if !allowIn { + return left + } + tkn := self.token + self.next() + return &ast.BinaryExpression{ + Operator: tkn, + Left: left, + Right: self.parseRelationalExpression(), + } + } + + return left +} + +func (self *_parser) parseEqualityExpression() ast.Expression { + next := self.parseRelationalExpression + left := next() + + for self.token == token.EQUAL || self.token == token.NOT_EQUAL || + self.token == token.STRICT_EQUAL || self.token == token.STRICT_NOT_EQUAL { + tkn := self.token + self.next() + left = &ast.BinaryExpression{ + Operator: tkn, + Left: left, + Right: next(), + Comparison: true, + } + } + + return left +} + +func (self *_parser) parseBitwiseAndExpression() ast.Expression { + next := self.parseEqualityExpression + left := next() + + for self.token == token.AND { + tkn := self.token + self.next() + left = &ast.BinaryExpression{ + Operator: tkn, + Left: left, + Right: next(), + } + } + + return left +} + +func (self *_parser) parseBitwiseExclusiveOrExpression() ast.Expression { + next := self.parseBitwiseAndExpression + left := next() + + for self.token == token.EXCLUSIVE_OR { + tkn := self.token + self.next() + left = &ast.BinaryExpression{ + Operator: tkn, + Left: left, + Right: next(), + } + } + + return left +} + +func (self *_parser) parseBitwiseOrExpression() ast.Expression { + next := self.parseBitwiseExclusiveOrExpression + left := next() + + for self.token == token.OR { + tkn := self.token + self.next() + left = &ast.BinaryExpression{ + Operator: tkn, + Left: left, + Right: next(), + } + } + + return left +} + +func (self *_parser) parseLogicalAndExpression() ast.Expression { + next := self.parseBitwiseOrExpression + left := next() + + for self.token == token.LOGICAL_AND { + tkn := self.token + self.next() + left = &ast.BinaryExpression{ + Operator: tkn, + Left: left, + Right: next(), + } + } + + return left +} + +func (self *_parser) parseLogicalOrExpression() ast.Expression { + next := self.parseLogicalAndExpression + left := next() + + for self.token == token.LOGICAL_OR { + tkn := self.token + self.next() + left = &ast.BinaryExpression{ + Operator: tkn, + Left: left, + Right: next(), + } + } + + return left +} + +func (self *_parser) parseConditionlExpression() ast.Expression { + left := self.parseLogicalOrExpression() + + if self.token == token.QUESTION_MARK { + self.next() + consequent := self.parseAssignmentExpression() + self.expect(token.COLON) + return &ast.ConditionalExpression{ + Test: left, + Consequent: consequent, + Alternate: self.parseAssignmentExpression(), + } + } + + return left +} + +func (self *_parser) parseAssignmentExpression() ast.Expression { + left := self.parseConditionlExpression() + var operator token.Token + switch self.token { + case token.ASSIGN: + operator = self.token + case token.ADD_ASSIGN: + operator = token.PLUS + case token.SUBTRACT_ASSIGN: + operator = token.MINUS + case token.MULTIPLY_ASSIGN: + operator = token.MULTIPLY + case token.QUOTIENT_ASSIGN: + operator = token.SLASH + case token.REMAINDER_ASSIGN: + operator = token.REMAINDER + case token.AND_ASSIGN: + operator = token.AND + case token.AND_NOT_ASSIGN: + operator = token.AND_NOT + case token.OR_ASSIGN: + operator = token.OR + case token.EXCLUSIVE_OR_ASSIGN: + operator = token.EXCLUSIVE_OR + case token.SHIFT_LEFT_ASSIGN: + operator = token.SHIFT_LEFT + case token.SHIFT_RIGHT_ASSIGN: + operator = token.SHIFT_RIGHT + case token.UNSIGNED_SHIFT_RIGHT_ASSIGN: + operator = token.UNSIGNED_SHIFT_RIGHT + } + + if operator != 0 { + idx := self.idx + self.next() + switch left.(type) { + case *ast.Identifier, *ast.DotExpression, *ast.BracketExpression: + default: + self.error(left.Idx0(), "Invalid left-hand side in assignment") + self.nextStatement() + return &ast.BadExpression{From: idx, To: self.idx} + } + return &ast.AssignExpression{ + Left: left, + Operator: operator, + Right: self.parseAssignmentExpression(), + } + } + + return left +} + +func (self *_parser) parseExpression() ast.Expression { + next := self.parseAssignmentExpression + left := next() + + if self.token == token.COMMA { + sequence := []ast.Expression{left} + for { + if self.token != token.COMMA { + break + } + self.next() + sequence = append(sequence, next()) + } + return &ast.SequenceExpression{ + Sequence: sequence, + } + } + + return left +} diff --git a/vendor/github.com/dop251/goja/parser/lexer.go b/vendor/github.com/dop251/goja/parser/lexer.go new file mode 100644 index 00000000000..771822271c7 --- /dev/null +++ b/vendor/github.com/dop251/goja/parser/lexer.go @@ -0,0 +1,830 @@ +package parser + +import ( + "bytes" + "errors" + "fmt" + "regexp" + "strconv" + "strings" + "unicode" + "unicode/utf8" + + "github.com/dop251/goja/file" + "github.com/dop251/goja/token" + "unicode/utf16" +) + +type _chr struct { + value rune + width int +} + +var matchIdentifier = regexp.MustCompile(`^[$_\p{L}][$_\p{L}\d}]*$`) + +func isDecimalDigit(chr rune) bool { + return '0' <= chr && chr <= '9' +} + +func digitValue(chr rune) int { + switch { + case '0' <= chr && chr <= '9': + return int(chr - '0') + case 'a' <= chr && chr <= 'f': + return int(chr - 'a' + 10) + case 'A' <= chr && chr <= 'F': + return int(chr - 'A' + 10) + } + return 16 // Larger than any legal digit value +} + +func isDigit(chr rune, base int) bool { + return digitValue(chr) < base +} + +func isIdentifierStart(chr rune) bool { + return chr == '$' || chr == '_' || chr == '\\' || + 'a' <= chr && chr <= 'z' || 'A' <= chr && chr <= 'Z' || + chr >= utf8.RuneSelf && unicode.IsLetter(chr) +} + +func isIdentifierPart(chr rune) bool { + return chr == '$' || chr == '_' || chr == '\\' || + 'a' <= chr && chr <= 'z' || 'A' <= chr && chr <= 'Z' || + '0' <= chr && chr <= '9' || + chr >= utf8.RuneSelf && (unicode.IsLetter(chr) || unicode.IsDigit(chr)) +} + +func (self *_parser) scanIdentifier() (string, error) { + offset := self.chrOffset + parse := false + for isIdentifierPart(self.chr) { + if self.chr == '\\' { + distance := self.chrOffset - offset + self.read() + if self.chr != 'u' { + return "", fmt.Errorf("Invalid identifier escape character: %c (%s)", self.chr, string(self.chr)) + } + parse = true + var value rune + for j := 0; j < 4; j++ { + self.read() + decimal, ok := hex2decimal(byte(self.chr)) + if !ok { + return "", fmt.Errorf("Invalid identifier escape character: %c (%s)", self.chr, string(self.chr)) + } + value = value<<4 | decimal + } + if value == '\\' { + return "", fmt.Errorf("Invalid identifier escape value: %c (%s)", value, string(value)) + } else if distance == 0 { + if !isIdentifierStart(value) { + return "", fmt.Errorf("Invalid identifier escape value: %c (%s)", value, string(value)) + } + } else if distance > 0 { + if !isIdentifierPart(value) { + return "", fmt.Errorf("Invalid identifier escape value: %c (%s)", value, string(value)) + } + } + } + self.read() + } + literal := string(self.str[offset:self.chrOffset]) + if parse { + return parseStringLiteral(literal) + } + return literal, nil +} + +// 7.2 +func isLineWhiteSpace(chr rune) bool { + switch chr { + case '\u0009', '\u000b', '\u000c', '\u0020', '\u00a0', '\ufeff': + return true + case '\u000a', '\u000d', '\u2028', '\u2029': + return false + case '\u0085': + return false + } + return unicode.IsSpace(chr) +} + +// 7.3 +func isLineTerminator(chr rune) bool { + switch chr { + case '\u000a', '\u000d', '\u2028', '\u2029': + return true + } + return false +} + +func (self *_parser) scan() (tkn token.Token, literal string, idx file.Idx) { + + self.implicitSemicolon = false + + for { + self.skipWhiteSpace() + + idx = self.idxOf(self.chrOffset) + insertSemicolon := false + + switch chr := self.chr; { + case isIdentifierStart(chr): + var err error + literal, err = self.scanIdentifier() + if err != nil { + tkn = token.ILLEGAL + break + } + if len(literal) > 1 { + // Keywords are longer than 1 character, avoid lookup otherwise + var strict bool + tkn, strict = token.IsKeyword(literal) + + switch tkn { + + case 0: // Not a keyword + if literal == "true" || literal == "false" { + self.insertSemicolon = true + tkn = token.BOOLEAN + return + } else if literal == "null" { + self.insertSemicolon = true + tkn = token.NULL + return + } + + case token.KEYWORD: + tkn = token.KEYWORD + if strict { + // TODO If strict and in strict mode, then this is not a break + break + } + return + + case + token.THIS, + token.BREAK, + token.THROW, // A newline after a throw is not allowed, but we need to detect it + token.RETURN, + token.CONTINUE, + token.DEBUGGER: + self.insertSemicolon = true + return + + default: + return + + } + } + self.insertSemicolon = true + tkn = token.IDENTIFIER + return + case '0' <= chr && chr <= '9': + self.insertSemicolon = true + tkn, literal = self.scanNumericLiteral(false) + return + default: + self.read() + switch chr { + case -1: + if self.insertSemicolon { + self.insertSemicolon = false + self.implicitSemicolon = true + } + tkn = token.EOF + case '\r', '\n', '\u2028', '\u2029': + self.insertSemicolon = false + self.implicitSemicolon = true + continue + case ':': + tkn = token.COLON + case '.': + if digitValue(self.chr) < 10 { + insertSemicolon = true + tkn, literal = self.scanNumericLiteral(true) + } else { + tkn = token.PERIOD + } + case ',': + tkn = token.COMMA + case ';': + tkn = token.SEMICOLON + case '(': + tkn = token.LEFT_PARENTHESIS + case ')': + tkn = token.RIGHT_PARENTHESIS + insertSemicolon = true + case '[': + tkn = token.LEFT_BRACKET + case ']': + tkn = token.RIGHT_BRACKET + insertSemicolon = true + case '{': + tkn = token.LEFT_BRACE + case '}': + tkn = token.RIGHT_BRACE + insertSemicolon = true + case '+': + tkn = self.switch3(token.PLUS, token.ADD_ASSIGN, '+', token.INCREMENT) + if tkn == token.INCREMENT { + insertSemicolon = true + } + case '-': + tkn = self.switch3(token.MINUS, token.SUBTRACT_ASSIGN, '-', token.DECREMENT) + if tkn == token.DECREMENT { + insertSemicolon = true + } + case '*': + tkn = self.switch2(token.MULTIPLY, token.MULTIPLY_ASSIGN) + case '/': + if self.chr == '/' { + self.skipSingleLineComment() + continue + } else if self.chr == '*' { + self.skipMultiLineComment() + continue + } else { + // Could be division, could be RegExp literal + tkn = self.switch2(token.SLASH, token.QUOTIENT_ASSIGN) + insertSemicolon = true + } + case '%': + tkn = self.switch2(token.REMAINDER, token.REMAINDER_ASSIGN) + case '^': + tkn = self.switch2(token.EXCLUSIVE_OR, token.EXCLUSIVE_OR_ASSIGN) + case '<': + tkn = self.switch4(token.LESS, token.LESS_OR_EQUAL, '<', token.SHIFT_LEFT, token.SHIFT_LEFT_ASSIGN) + case '>': + tkn = self.switch6(token.GREATER, token.GREATER_OR_EQUAL, '>', token.SHIFT_RIGHT, token.SHIFT_RIGHT_ASSIGN, '>', token.UNSIGNED_SHIFT_RIGHT, token.UNSIGNED_SHIFT_RIGHT_ASSIGN) + case '=': + tkn = self.switch2(token.ASSIGN, token.EQUAL) + if tkn == token.EQUAL && self.chr == '=' { + self.read() + tkn = token.STRICT_EQUAL + } + case '!': + tkn = self.switch2(token.NOT, token.NOT_EQUAL) + if tkn == token.NOT_EQUAL && self.chr == '=' { + self.read() + tkn = token.STRICT_NOT_EQUAL + } + case '&': + if self.chr == '^' { + self.read() + tkn = self.switch2(token.AND_NOT, token.AND_NOT_ASSIGN) + } else { + tkn = self.switch3(token.AND, token.AND_ASSIGN, '&', token.LOGICAL_AND) + } + case '|': + tkn = self.switch3(token.OR, token.OR_ASSIGN, '|', token.LOGICAL_OR) + case '~': + tkn = token.BITWISE_NOT + case '?': + tkn = token.QUESTION_MARK + case '"', '\'': + insertSemicolon = true + tkn = token.STRING + var err error + literal, err = self.scanString(self.chrOffset - 1) + if err != nil { + tkn = token.ILLEGAL + } + default: + self.errorUnexpected(idx, chr) + tkn = token.ILLEGAL + } + } + self.insertSemicolon = insertSemicolon + return + } +} + +func (self *_parser) switch2(tkn0, tkn1 token.Token) token.Token { + if self.chr == '=' { + self.read() + return tkn1 + } + return tkn0 +} + +func (self *_parser) switch3(tkn0, tkn1 token.Token, chr2 rune, tkn2 token.Token) token.Token { + if self.chr == '=' { + self.read() + return tkn1 + } + if self.chr == chr2 { + self.read() + return tkn2 + } + return tkn0 +} + +func (self *_parser) switch4(tkn0, tkn1 token.Token, chr2 rune, tkn2, tkn3 token.Token) token.Token { + if self.chr == '=' { + self.read() + return tkn1 + } + if self.chr == chr2 { + self.read() + if self.chr == '=' { + self.read() + return tkn3 + } + return tkn2 + } + return tkn0 +} + +func (self *_parser) switch6(tkn0, tkn1 token.Token, chr2 rune, tkn2, tkn3 token.Token, chr3 rune, tkn4, tkn5 token.Token) token.Token { + if self.chr == '=' { + self.read() + return tkn1 + } + if self.chr == chr2 { + self.read() + if self.chr == '=' { + self.read() + return tkn3 + } + if self.chr == chr3 { + self.read() + if self.chr == '=' { + self.read() + return tkn5 + } + return tkn4 + } + return tkn2 + } + return tkn0 +} + +func (self *_parser) chrAt(index int) _chr { + value, width := utf8.DecodeRuneInString(self.str[index:]) + return _chr{ + value: value, + width: width, + } +} + +func (self *_parser) _peek() rune { + if self.offset+1 < self.length { + return rune(self.str[self.offset+1]) + } + return -1 +} + +func (self *_parser) read() { + if self.offset < self.length { + self.chrOffset = self.offset + chr, width := rune(self.str[self.offset]), 1 + if chr >= utf8.RuneSelf { // !ASCII + chr, width = utf8.DecodeRuneInString(self.str[self.offset:]) + if chr == utf8.RuneError && width == 1 { + self.error(self.chrOffset, "Invalid UTF-8 character") + } + } + self.offset += width + self.chr = chr + } else { + self.chrOffset = self.length + self.chr = -1 // EOF + } +} + +// This is here since the functions are so similar +func (self *_RegExp_parser) read() { + if self.offset < self.length { + self.chrOffset = self.offset + chr, width := rune(self.str[self.offset]), 1 + if chr >= utf8.RuneSelf { // !ASCII + chr, width = utf8.DecodeRuneInString(self.str[self.offset:]) + if chr == utf8.RuneError && width == 1 { + self.error(self.chrOffset, "Invalid UTF-8 character") + } + } + self.offset += width + self.chr = chr + } else { + self.chrOffset = self.length + self.chr = -1 // EOF + } +} + +func (self *_parser) skipSingleLineComment() { + for self.chr != -1 { + self.read() + if isLineTerminator(self.chr) { + return + } + } +} + +func (self *_parser) skipMultiLineComment() { + self.read() + for self.chr >= 0 { + chr := self.chr + self.read() + if chr == '*' && self.chr == '/' { + self.read() + return + } + } + + self.errorUnexpected(0, self.chr) +} + +func (self *_parser) skipWhiteSpace() { + for { + switch self.chr { + case ' ', '\t', '\f', '\v', '\u00a0', '\ufeff': + self.read() + continue + case '\r': + if self._peek() == '\n' { + self.read() + } + fallthrough + case '\u2028', '\u2029', '\n': + if self.insertSemicolon { + return + } + self.read() + continue + } + if self.chr >= utf8.RuneSelf { + if unicode.IsSpace(self.chr) { + self.read() + continue + } + } + break + } +} + +func (self *_parser) skipLineWhiteSpace() { + for isLineWhiteSpace(self.chr) { + self.read() + } +} + +func (self *_parser) scanMantissa(base int) { + for digitValue(self.chr) < base { + self.read() + } +} + +func (self *_parser) scanEscape(quote rune) { + + var length, base uint32 + switch self.chr { + //case '0', '1', '2', '3', '4', '5', '6', '7': + // Octal: + // length, base, limit = 3, 8, 255 + case 'a', 'b', 'f', 'n', 'r', 't', 'v', '\\', '"', '\'', '0': + self.read() + return + case '\r', '\n', '\u2028', '\u2029': + self.scanNewline() + return + case 'x': + self.read() + length, base = 2, 16 + case 'u': + self.read() + length, base = 4, 16 + default: + self.read() // Always make progress + return + } + + var value uint32 + for ; length > 0 && self.chr != quote && self.chr >= 0; length-- { + digit := uint32(digitValue(self.chr)) + if digit >= base { + break + } + value = value*base + digit + self.read() + } +} + +func (self *_parser) scanString(offset int) (string, error) { + // " ' / + quote := rune(self.str[offset]) + + for self.chr != quote { + chr := self.chr + if chr == '\n' || chr == '\r' || chr == '\u2028' || chr == '\u2029' || chr < 0 { + goto newline + } + self.read() + if chr == '\\' { + if quote == '/' { + if self.chr == '\n' || self.chr == '\r' || self.chr == '\u2028' || self.chr == '\u2029' || self.chr < 0 { + goto newline + } + self.read() + } else { + self.scanEscape(quote) + } + } else if chr == '[' && quote == '/' { + // Allow a slash (/) in a bracket character class ([...]) + // TODO Fix this, this is hacky... + quote = -1 + } else if chr == ']' && quote == -1 { + quote = '/' + } + } + + // " ' / + self.read() + + return string(self.str[offset:self.chrOffset]), nil + +newline: + self.scanNewline() + err := "String not terminated" + if quote == '/' { + err = "Invalid regular expression: missing /" + self.error(self.idxOf(offset), err) + } + return "", errors.New(err) +} + +func (self *_parser) scanNewline() { + if self.chr == '\r' { + self.read() + if self.chr != '\n' { + return + } + } + self.read() +} + +func hex2decimal(chr byte) (value rune, ok bool) { + { + chr := rune(chr) + switch { + case '0' <= chr && chr <= '9': + return chr - '0', true + case 'a' <= chr && chr <= 'f': + return chr - 'a' + 10, true + case 'A' <= chr && chr <= 'F': + return chr - 'A' + 10, true + } + return + } +} + +func parseNumberLiteral(literal string) (value interface{}, err error) { + // TODO Is Uint okay? What about -MAX_UINT + value, err = strconv.ParseInt(literal, 0, 64) + if err == nil { + return + } + + parseIntErr := err // Save this first error, just in case + + value, err = strconv.ParseFloat(literal, 64) + if err == nil { + return + } else if err.(*strconv.NumError).Err == strconv.ErrRange { + // Infinity, etc. + return value, nil + } + + err = parseIntErr + + if err.(*strconv.NumError).Err == strconv.ErrRange { + if len(literal) > 2 && literal[0] == '0' && (literal[1] == 'X' || literal[1] == 'x') { + // Could just be a very large number (e.g. 0x8000000000000000) + var value float64 + literal = literal[2:] + for _, chr := range literal { + digit := digitValue(chr) + if digit >= 16 { + goto error + } + value = value*16 + float64(digit) + } + return value, nil + } + } + +error: + return nil, errors.New("Illegal numeric literal") +} + +func parseStringLiteral(literal string) (string, error) { + // Best case scenario... + if literal == "" { + return "", nil + } + + // Slightly less-best case scenario... + if !strings.ContainsRune(literal, '\\') { + return literal, nil + } + + str := literal + buffer := bytes.NewBuffer(make([]byte, 0, 3*len(literal)/2)) + var surrogate rune + S: + for len(str) > 0 { + switch chr := str[0]; { + // We do not explicitly handle the case of the quote + // value, which can be: " ' / + // This assumes we're already passed a partially well-formed literal + case chr >= utf8.RuneSelf: + chr, size := utf8.DecodeRuneInString(str) + buffer.WriteRune(chr) + str = str[size:] + continue + case chr != '\\': + buffer.WriteByte(chr) + str = str[1:] + continue + } + + if len(str) <= 1 { + panic("len(str) <= 1") + } + chr := str[1] + var value rune + if chr >= utf8.RuneSelf { + str = str[1:] + var size int + value, size = utf8.DecodeRuneInString(str) + str = str[size:] // \ + + } else { + str = str[2:] // \ + switch chr { + case 'b': + value = '\b' + case 'f': + value = '\f' + case 'n': + value = '\n' + case 'r': + value = '\r' + case 't': + value = '\t' + case 'v': + value = '\v' + case 'x', 'u': + size := 0 + switch chr { + case 'x': + size = 2 + case 'u': + size = 4 + } + if len(str) < size { + return "", fmt.Errorf("invalid escape: \\%s: len(%q) != %d", string(chr), str, size) + } + for j := 0; j < size; j++ { + decimal, ok := hex2decimal(str[j]) + if !ok { + return "", fmt.Errorf("invalid escape: \\%s: %q", string(chr), str[:size]) + } + value = value<<4 | decimal + } + str = str[size:] + if chr == 'x' { + break + } + if value > utf8.MaxRune { + panic("value > utf8.MaxRune") + } + case '0': + if len(str) == 0 || '0' > str[0] || str[0] > '7' { + value = 0 + break + } + fallthrough + case '1', '2', '3', '4', '5', '6', '7': + // TODO strict + value = rune(chr) - '0' + j := 0 + for ; j < 2; j++ { + if len(str) < j+1 { + break + } + chr := str[j] + if '0' > chr || chr > '7' { + break + } + decimal := rune(str[j]) - '0' + value = (value << 3) | decimal + } + str = str[j:] + case '\\': + value = '\\' + case '\'', '"': + value = rune(chr) + case '\r': + if len(str) > 0 { + if str[0] == '\n' { + str = str[1:] + } + } + fallthrough + case '\n': + continue + default: + value = rune(chr) + } + if surrogate != 0 { + value = utf16.DecodeRune(surrogate, value) + surrogate = 0 + } else { + if utf16.IsSurrogate(value) { + surrogate = value + continue S + } + } + } + buffer.WriteRune(value) + } + + return buffer.String(), nil +} + +func (self *_parser) scanNumericLiteral(decimalPoint bool) (token.Token, string) { + + offset := self.chrOffset + tkn := token.NUMBER + + if decimalPoint { + offset-- + self.scanMantissa(10) + goto exponent + } + + if self.chr == '0' { + offset := self.chrOffset + self.read() + if self.chr == 'x' || self.chr == 'X' { + // Hexadecimal + self.read() + if isDigit(self.chr, 16) { + self.read() + } else { + return token.ILLEGAL, self.str[offset:self.chrOffset] + } + self.scanMantissa(16) + + if self.chrOffset-offset <= 2 { + // Only "0x" or "0X" + self.error(0, "Illegal hexadecimal number") + } + + goto hexadecimal + } else if self.chr == '.' { + // Float + goto float + } else { + // Octal, Float + if self.chr == 'e' || self.chr == 'E' { + goto exponent + } + self.scanMantissa(8) + if self.chr == '8' || self.chr == '9' { + return token.ILLEGAL, self.str[offset:self.chrOffset] + } + goto octal + } + } + + self.scanMantissa(10) + +float: + if self.chr == '.' { + self.read() + self.scanMantissa(10) + } + +exponent: + if self.chr == 'e' || self.chr == 'E' { + self.read() + if self.chr == '-' || self.chr == '+' { + self.read() + } + if isDecimalDigit(self.chr) { + self.read() + self.scanMantissa(10) + } else { + return token.ILLEGAL, self.str[offset:self.chrOffset] + } + } + +hexadecimal: +octal: + if isIdentifierStart(self.chr) || isDecimalDigit(self.chr) { + return token.ILLEGAL, self.str[offset:self.chrOffset] + } + + return tkn, self.str[offset:self.chrOffset] +} diff --git a/vendor/github.com/dop251/goja/parser/parser.go b/vendor/github.com/dop251/goja/parser/parser.go new file mode 100644 index 00000000000..d108e256533 --- /dev/null +++ b/vendor/github.com/dop251/goja/parser/parser.go @@ -0,0 +1,272 @@ +/* +Package parser implements a parser for JavaScript. + + import ( + "github.com/dop251/goja/parser" + ) + +Parse and return an AST + + filename := "" // A filename is optional + src := ` + // Sample xyzzy example + (function(){ + if (3.14159 > 0) { + console.log("Hello, World."); + return; + } + + var xyzzy = NaN; + console.log("Nothing happens."); + return xyzzy; + })(); + ` + + // Parse some JavaScript, yielding a *ast.Program and/or an ErrorList + program, err := parser.ParseFile(nil, filename, src, 0) + +Warning + +The parser and AST interfaces are still works-in-progress (particularly where +node types are concerned) and may change in the future. + +*/ +package parser + +import ( + "bytes" + "errors" + "io" + "io/ioutil" + + "github.com/dop251/goja/ast" + "github.com/dop251/goja/file" + "github.com/dop251/goja/token" +) + +// A Mode value is a set of flags (or 0). They control optional parser functionality. +type Mode uint + +const ( + IgnoreRegExpErrors Mode = 1 << iota // Ignore RegExp compatibility errors (allow backtracking) +) + +type _parser struct { + str string + length int + base int + + chr rune // The current character + chrOffset int // The offset of current character + offset int // The offset after current character (may be greater than 1) + + idx file.Idx // The index of token + token token.Token // The token + literal string // The literal of the token, if any + + scope *_scope + insertSemicolon bool // If we see a newline, then insert an implicit semicolon + implicitSemicolon bool // An implicit semicolon exists + + errors ErrorList + + recover struct { + // Scratch when trying to seek to the next statement, etc. + idx file.Idx + count int + } + + mode Mode + + file *file.File +} + +func _newParser(filename, src string, base int) *_parser { + return &_parser{ + chr: ' ', // This is set so we can start scanning by skipping whitespace + str: src, + length: len(src), + base: base, + file: file.NewFile(filename, src, base), + } +} + +func newParser(filename, src string) *_parser { + return _newParser(filename, src, 1) +} + +func ReadSource(filename string, src interface{}) ([]byte, error) { + if src != nil { + switch src := src.(type) { + case string: + return []byte(src), nil + case []byte: + return src, nil + case *bytes.Buffer: + if src != nil { + return src.Bytes(), nil + } + case io.Reader: + var bfr bytes.Buffer + if _, err := io.Copy(&bfr, src); err != nil { + return nil, err + } + return bfr.Bytes(), nil + } + return nil, errors.New("invalid source") + } + return ioutil.ReadFile(filename) +} + +// ParseFile parses the source code of a single JavaScript/ECMAScript source file and returns +// the corresponding ast.Program node. +// +// If fileSet == nil, ParseFile parses source without a FileSet. +// If fileSet != nil, ParseFile first adds filename and src to fileSet. +// +// The filename argument is optional and is used for labelling errors, etc. +// +// src may be a string, a byte slice, a bytes.Buffer, or an io.Reader, but it MUST always be in UTF-8. +// +// // Parse some JavaScript, yielding a *ast.Program and/or an ErrorList +// program, err := parser.ParseFile(nil, "", `if (abc > 1) {}`, 0) +// +func ParseFile(fileSet *file.FileSet, filename string, src interface{}, mode Mode) (*ast.Program, error) { + str, err := ReadSource(filename, src) + if err != nil { + return nil, err + } + { + str := string(str) + + base := 1 + if fileSet != nil { + base = fileSet.AddFile(filename, str) + } + + parser := _newParser(filename, str, base) + parser.mode = mode + return parser.parse() + } +} + +// ParseFunction parses a given parameter list and body as a function and returns the +// corresponding ast.FunctionLiteral node. +// +// The parameter list, if any, should be a comma-separated list of identifiers. +// +func ParseFunction(parameterList, body string) (*ast.FunctionLiteral, error) { + + src := "(function(" + parameterList + ") {\n" + body + "\n})" + + parser := _newParser("", src, 1) + program, err := parser.parse() + if err != nil { + return nil, err + } + + return program.Body[0].(*ast.ExpressionStatement).Expression.(*ast.FunctionLiteral), nil +} + +func (self *_parser) slice(idx0, idx1 file.Idx) string { + from := int(idx0) - self.base + to := int(idx1) - self.base + if from >= 0 && to <= len(self.str) { + return self.str[from:to] + } + + return "" +} + +func (self *_parser) parse() (*ast.Program, error) { + self.next() + program := self.parseProgram() + if false { + self.errors.Sort() + } + return program, self.errors.Err() +} + +func (self *_parser) next() { + self.token, self.literal, self.idx = self.scan() +} + +func (self *_parser) optionalSemicolon() { + if self.token == token.SEMICOLON { + self.next() + return + } + + if self.implicitSemicolon { + self.implicitSemicolon = false + return + } + + if self.token != token.EOF && self.token != token.RIGHT_BRACE { + self.expect(token.SEMICOLON) + } +} + +func (self *_parser) semicolon() { + if self.token != token.RIGHT_PARENTHESIS && self.token != token.RIGHT_BRACE { + if self.implicitSemicolon { + self.implicitSemicolon = false + return + } + + self.expect(token.SEMICOLON) + } +} + +func (self *_parser) idxOf(offset int) file.Idx { + return file.Idx(self.base + offset) +} + +func (self *_parser) expect(value token.Token) file.Idx { + idx := self.idx + if self.token != value { + self.errorUnexpectedToken(self.token) + } + self.next() + return idx +} + +func lineCount(str string) (int, int) { + line, last := 0, -1 + pair := false + for index, chr := range str { + switch chr { + case '\r': + line += 1 + last = index + pair = true + continue + case '\n': + if !pair { + line += 1 + } + last = index + case '\u2028', '\u2029': + line += 1 + last = index + 2 + } + pair = false + } + return line, last +} + +func (self *_parser) position(idx file.Idx) file.Position { + position := file.Position{} + offset := int(idx) - self.base + str := self.str[:offset] + position.Filename = self.file.Name() + line, last := lineCount(str) + position.Line = 1 + line + if last >= 0 { + position.Column = offset - last + } else { + position.Column = 1 + len(str) + } + + return position +} diff --git a/vendor/github.com/dop251/goja/parser/regexp.go b/vendor/github.com/dop251/goja/parser/regexp.go new file mode 100644 index 00000000000..3244858cf62 --- /dev/null +++ b/vendor/github.com/dop251/goja/parser/regexp.go @@ -0,0 +1,403 @@ +package parser + +import ( + "bytes" + "fmt" + "strconv" + "strings" + "unicode/utf8" +) + +const ( + WhitespaceChars = " \f\n\r\t\v\u00a0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u2028\u2029\u202f\u205f\u3000\ufeff" +) + +type _RegExp_parser struct { + str string + length int + + chr rune // The current character + chrOffset int // The offset of current character + offset int // The offset after current character (may be greater than 1) + + errors []error + invalid bool // The input is an invalid JavaScript RegExp + + goRegexp *bytes.Buffer +} + +// TransformRegExp transforms a JavaScript pattern into a Go "regexp" pattern. +// +// re2 (Go) cannot do backtracking, so the presence of a lookahead (?=) (?!) or +// backreference (\1, \2, ...) will cause an error. +// +// re2 (Go) has a different definition for \s: [\t\n\f\r ]. +// The JavaScript definition, on the other hand, also includes \v, Unicode "Separator, Space", etc. +// +// If the pattern is invalid (not valid even in JavaScript), then this function +// returns the empty string and an error. +// +// If the pattern is valid, but incompatible (contains a lookahead or backreference), +// then this function returns the transformation (a non-empty string) AND an error. +func TransformRegExp(pattern string) (string, error) { + + if pattern == "" { + return "", nil + } + + // TODO If without \, if without (?=, (?!, then another shortcut + + parser := _RegExp_parser{ + str: pattern, + length: len(pattern), + goRegexp: bytes.NewBuffer(make([]byte, 0, 3*len(pattern)/2)), + } + parser.read() // Pull in the first character + parser.scan() + var err error + if len(parser.errors) > 0 { + err = parser.errors[0] + } + if parser.invalid { + return "", err + } + + // Might not be re2 compatible, but is still a valid JavaScript RegExp + return parser.goRegexp.String(), err +} + +func (self *_RegExp_parser) scan() { + for self.chr != -1 { + switch self.chr { + case '\\': + self.read() + self.scanEscape(false) + case '(': + self.pass() + self.scanGroup() + case '[': + self.scanBracket() + case ')': + self.error(-1, "Unmatched ')'") + self.invalid = true + self.pass() + case '.': + self.goRegexp.WriteString("[^\\r\\n]") + self.read() + default: + self.pass() + } + } +} + +// (...) +func (self *_RegExp_parser) scanGroup() { + str := self.str[self.chrOffset:] + if len(str) > 1 { // A possibility of (?= or (?! + if str[0] == '?' { + if str[1] == '=' || str[1] == '!' { + self.error(-1, "re2: Invalid (%s) ", self.str[self.chrOffset:self.chrOffset+2]) + } + } + } + for self.chr != -1 && self.chr != ')' { + switch self.chr { + case '\\': + self.read() + self.scanEscape(false) + case '(': + self.pass() + self.scanGroup() + case '[': + self.scanBracket() + case '.': + self.goRegexp.WriteString("[^\\r\\n]") + self.read() + default: + self.pass() + continue + } + } + if self.chr != ')' { + self.error(-1, "Unterminated group") + self.invalid = true + return + } + self.pass() +} + +// [...] +func (self *_RegExp_parser) scanBracket() { + str := self.str[self.chrOffset:] + if strings.HasPrefix(str, "[]") { + // [] -- Empty character class + self.goRegexp.WriteString("[^\u0000-uffff]") + self.offset += 1 + self.read() + return + } + + if strings.HasPrefix(str, "[^]") { + self.goRegexp.WriteString("[\u0000-\uffff]") + self.offset += 2 + self.read() + return + } + + + self.pass() + for self.chr != -1 { + if self.chr == ']' { + break + } else if self.chr == '\\' { + self.read() + self.scanEscape(true) + continue + } + self.pass() + } + if self.chr != ']' { + self.error(-1, "Unterminated character class") + self.invalid = true + return + } + self.pass() +} + +// \... +func (self *_RegExp_parser) scanEscape(inClass bool) { + offset := self.chrOffset + + var length, base uint32 + switch self.chr { + + case '0', '1', '2', '3', '4', '5', '6', '7': + var value int64 + size := 0 + for { + digit := int64(digitValue(self.chr)) + if digit >= 8 { + // Not a valid digit + break + } + value = value*8 + digit + self.read() + size += 1 + } + if size == 1 { // The number of characters read + _, err := self.goRegexp.Write([]byte{'\\', byte(value) + '0'}) + if err != nil { + self.errors = append(self.errors, err) + } + if value != 0 { + // An invalid backreference + self.error(-1, "re2: Invalid \\%d ", value) + } + return + } + tmp := []byte{'\\', 'x', '0', 0} + if value >= 16 { + tmp = tmp[0:2] + } else { + tmp = tmp[0:3] + } + tmp = strconv.AppendInt(tmp, value, 16) + _, err := self.goRegexp.Write(tmp) + if err != nil { + self.errors = append(self.errors, err) + } + return + + case '8', '9': + size := 0 + for { + digit := digitValue(self.chr) + if digit >= 10 { + // Not a valid digit + break + } + self.read() + size += 1 + } + err := self.goRegexp.WriteByte('\\') + if err != nil { + self.errors = append(self.errors, err) + } + _, err = self.goRegexp.WriteString(self.str[offset:self.chrOffset]) + if err != nil { + self.errors = append(self.errors, err) + } + self.error(-1, "re2: Invalid \\%s ", self.str[offset:self.chrOffset]) + return + + case 'x': + self.read() + length, base = 2, 16 + + case 'u': + self.read() + length, base = 4, 16 + + case 'b': + if inClass { + _, err := self.goRegexp.Write([]byte{'\\', 'x', '0', '8'}) + if err != nil { + self.errors = append(self.errors, err) + } + self.read() + return + } + fallthrough + + case 'B': + fallthrough + + case 'd', 'D', 'w', 'W': + // This is slightly broken, because ECMAScript + // includes \v in \s, \S, while re2 does not + fallthrough + + case '\\': + fallthrough + + case 'f', 'n', 'r', 't', 'v': + err := self.goRegexp.WriteByte('\\') + if err != nil { + self.errors = append(self.errors, err) + } + self.pass() + return + + case 'c': + self.read() + var value int64 + if 'a' <= self.chr && self.chr <= 'z' { + value = int64(self.chr) - 'a' + 1 + } else if 'A' <= self.chr && self.chr <= 'Z' { + value = int64(self.chr) - 'A' + 1 + } else { + err := self.goRegexp.WriteByte('c') + if err != nil { + self.errors = append(self.errors, err) + } + return + } + tmp := []byte{'\\', 'x', '0', 0} + if value >= 16 { + tmp = tmp[0:2] + } else { + tmp = tmp[0:3] + } + tmp = strconv.AppendInt(tmp, value, 16) + _, err := self.goRegexp.Write(tmp) + if err != nil { + self.errors = append(self.errors, err) + } + self.read() + return + case 's': + if inClass { + self.goRegexp.WriteString(WhitespaceChars) + } else { + self.goRegexp.WriteString("[" + WhitespaceChars + "]") + } + self.read() + return + case 'S': + if inClass { + self.error(self.chrOffset, "S in class") + self.invalid = true + return + } else { + self.goRegexp.WriteString("[^" + WhitespaceChars + "]") + } + self.read() + return + default: + // $ is an identifier character, so we have to have + // a special case for it here + if self.chr == '$' || self.chr < utf8.RuneSelf && !isIdentifierPart(self.chr) { + // A non-identifier character needs escaping + err := self.goRegexp.WriteByte('\\') + if err != nil { + self.errors = append(self.errors, err) + } + } else { + // Unescape the character for re2 + } + self.pass() + return + } + + // Otherwise, we're a \u.... or \x... + valueOffset := self.chrOffset + + var value uint32 + { + length := length + for ; length > 0; length-- { + digit := uint32(digitValue(self.chr)) + if digit >= base { + // Not a valid digit + goto skip + } + value = value*base + digit + self.read() + } + } + + if length == 4 { + _, err := self.goRegexp.Write([]byte{ + '\\', + 'x', + '{', + self.str[valueOffset+0], + self.str[valueOffset+1], + self.str[valueOffset+2], + self.str[valueOffset+3], + '}', + }) + if err != nil { + self.errors = append(self.errors, err) + } + } else if length == 2 { + _, err := self.goRegexp.Write([]byte{ + '\\', + 'x', + self.str[valueOffset+0], + self.str[valueOffset+1], + }) + if err != nil { + self.errors = append(self.errors, err) + } + } else { + // Should never, ever get here... + self.error(-1, "re2: Illegal branch in scanEscape") + goto skip + } + + return + +skip: + _, err := self.goRegexp.WriteString(self.str[offset:self.chrOffset]) + if err != nil { + self.errors = append(self.errors, err) + } +} + +func (self *_RegExp_parser) pass() { + if self.chr != -1 { + _, err := self.goRegexp.WriteRune(self.chr) + if err != nil { + self.errors = append(self.errors, err) + } + } + self.read() +} + +// TODO Better error reporting, use the offset, etc. +func (self *_RegExp_parser) error(offset int, msg string, msgValues ...interface{}) error { + err := fmt.Errorf(msg, msgValues...) + self.errors = append(self.errors, err) + return err +} diff --git a/vendor/github.com/dop251/goja/parser/scope.go b/vendor/github.com/dop251/goja/parser/scope.go new file mode 100644 index 00000000000..1710d5fef32 --- /dev/null +++ b/vendor/github.com/dop251/goja/parser/scope.go @@ -0,0 +1,44 @@ +package parser + +import ( + "github.com/dop251/goja/ast" +) + +type _scope struct { + outer *_scope + allowIn bool + inIteration bool + inSwitch bool + inFunction bool + declarationList []ast.Declaration + + labels []string +} + +func (self *_parser) openScope() { + self.scope = &_scope{ + outer: self.scope, + allowIn: true, + } +} + +func (self *_parser) closeScope() { + self.scope = self.scope.outer +} + +func (self *_scope) declare(declaration ast.Declaration) { + self.declarationList = append(self.declarationList, declaration) +} + +func (self *_scope) hasLabel(name string) bool { + for _, label := range self.labels { + if label == name { + return true + } + } + if self.outer != nil && !self.inFunction { + // Crossing a function boundary to look for a label is verboten + return self.outer.hasLabel(name) + } + return false +} diff --git a/vendor/github.com/dop251/goja/parser/statement.go b/vendor/github.com/dop251/goja/parser/statement.go new file mode 100644 index 00000000000..cd513357c95 --- /dev/null +++ b/vendor/github.com/dop251/goja/parser/statement.go @@ -0,0 +1,715 @@ +package parser + +import ( + "github.com/dop251/goja/ast" + "github.com/dop251/goja/file" + "github.com/dop251/goja/token" + "github.com/go-sourcemap/sourcemap" + "encoding/base64" + "strings" + "os" + "io/ioutil" + "net/url" +) + +func (self *_parser) parseBlockStatement() *ast.BlockStatement { + node := &ast.BlockStatement{} + node.LeftBrace = self.expect(token.LEFT_BRACE) + node.List = self.parseStatementList() + node.RightBrace = self.expect(token.RIGHT_BRACE) + + return node +} + +func (self *_parser) parseEmptyStatement() ast.Statement { + idx := self.expect(token.SEMICOLON) + return &ast.EmptyStatement{Semicolon: idx} +} + +func (self *_parser) parseStatementList() (list []ast.Statement) { + for self.token != token.RIGHT_BRACE && self.token != token.EOF { + list = append(list, self.parseStatement()) + } + + return +} + +func (self *_parser) parseStatement() ast.Statement { + + if self.token == token.EOF { + self.errorUnexpectedToken(self.token) + return &ast.BadStatement{From: self.idx, To: self.idx + 1} + } + + switch self.token { + case token.SEMICOLON: + return self.parseEmptyStatement() + case token.LEFT_BRACE: + return self.parseBlockStatement() + case token.IF: + return self.parseIfStatement() + case token.DO: + return self.parseDoWhileStatement() + case token.WHILE: + return self.parseWhileStatement() + case token.FOR: + return self.parseForOrForInStatement() + case token.BREAK: + return self.parseBreakStatement() + case token.CONTINUE: + return self.parseContinueStatement() + case token.DEBUGGER: + return self.parseDebuggerStatement() + case token.WITH: + return self.parseWithStatement() + case token.VAR: + return self.parseVariableStatement() + case token.FUNCTION: + self.parseFunction(true) + // FIXME + return &ast.EmptyStatement{} + case token.SWITCH: + return self.parseSwitchStatement() + case token.RETURN: + return self.parseReturnStatement() + case token.THROW: + return self.parseThrowStatement() + case token.TRY: + return self.parseTryStatement() + } + + expression := self.parseExpression() + + if identifier, isIdentifier := expression.(*ast.Identifier); isIdentifier && self.token == token.COLON { + // LabelledStatement + colon := self.idx + self.next() // : + label := identifier.Name + for _, value := range self.scope.labels { + if label == value { + self.error(identifier.Idx0(), "Label '%s' already exists", label) + } + } + self.scope.labels = append(self.scope.labels, label) // Push the label + statement := self.parseStatement() + self.scope.labels = self.scope.labels[:len(self.scope.labels)-1] // Pop the label + return &ast.LabelledStatement{ + Label: identifier, + Colon: colon, + Statement: statement, + } + } + + self.optionalSemicolon() + + return &ast.ExpressionStatement{ + Expression: expression, + } +} + +func (self *_parser) parseTryStatement() ast.Statement { + + node := &ast.TryStatement{ + Try: self.expect(token.TRY), + Body: self.parseBlockStatement(), + } + + if self.token == token.CATCH { + catch := self.idx + self.next() + self.expect(token.LEFT_PARENTHESIS) + if self.token != token.IDENTIFIER { + self.expect(token.IDENTIFIER) + self.nextStatement() + return &ast.BadStatement{From: catch, To: self.idx} + } else { + identifier := self.parseIdentifier() + self.expect(token.RIGHT_PARENTHESIS) + node.Catch = &ast.CatchStatement{ + Catch: catch, + Parameter: identifier, + Body: self.parseBlockStatement(), + } + } + } + + if self.token == token.FINALLY { + self.next() + node.Finally = self.parseBlockStatement() + } + + if node.Catch == nil && node.Finally == nil { + self.error(node.Try, "Missing catch or finally after try") + return &ast.BadStatement{From: node.Try, To: node.Body.Idx1()} + } + + return node +} + +func (self *_parser) parseFunctionParameterList() *ast.ParameterList { + opening := self.expect(token.LEFT_PARENTHESIS) + var list []*ast.Identifier + for self.token != token.RIGHT_PARENTHESIS && self.token != token.EOF { + if self.token != token.IDENTIFIER { + self.expect(token.IDENTIFIER) + } else { + list = append(list, self.parseIdentifier()) + } + if self.token != token.RIGHT_PARENTHESIS { + self.expect(token.COMMA) + } + } + closing := self.expect(token.RIGHT_PARENTHESIS) + + return &ast.ParameterList{ + Opening: opening, + List: list, + Closing: closing, + } +} + +func (self *_parser) parseParameterList() (list []string) { + for self.token != token.EOF { + if self.token != token.IDENTIFIER { + self.expect(token.IDENTIFIER) + } + list = append(list, self.literal) + self.next() + if self.token != token.EOF { + self.expect(token.COMMA) + } + } + return +} + +func (self *_parser) parseFunction(declaration bool) *ast.FunctionLiteral { + + node := &ast.FunctionLiteral{ + Function: self.expect(token.FUNCTION), + } + + var name *ast.Identifier + if self.token == token.IDENTIFIER { + name = self.parseIdentifier() + if declaration { + self.scope.declare(&ast.FunctionDeclaration{ + Function: node, + }) + } + } else if declaration { + // Use expect error handling + self.expect(token.IDENTIFIER) + } + node.Name = name + node.ParameterList = self.parseFunctionParameterList() + self.parseFunctionBlock(node) + node.Source = self.slice(node.Idx0(), node.Idx1()) + + return node +} + +func (self *_parser) parseFunctionBlock(node *ast.FunctionLiteral) { + { + self.openScope() + inFunction := self.scope.inFunction + self.scope.inFunction = true + defer func() { + self.scope.inFunction = inFunction + self.closeScope() + }() + node.Body = self.parseBlockStatement() + node.DeclarationList = self.scope.declarationList + } +} + +func (self *_parser) parseDebuggerStatement() ast.Statement { + idx := self.expect(token.DEBUGGER) + + node := &ast.DebuggerStatement{ + Debugger: idx, + } + + self.semicolon() + + return node +} + +func (self *_parser) parseReturnStatement() ast.Statement { + idx := self.expect(token.RETURN) + + if !self.scope.inFunction { + self.error(idx, "Illegal return statement") + self.nextStatement() + return &ast.BadStatement{From: idx, To: self.idx} + } + + node := &ast.ReturnStatement{ + Return: idx, + } + + if !self.implicitSemicolon && self.token != token.SEMICOLON && self.token != token.RIGHT_BRACE && self.token != token.EOF { + node.Argument = self.parseExpression() + } + + self.semicolon() + + return node +} + +func (self *_parser) parseThrowStatement() ast.Statement { + idx := self.expect(token.THROW) + + if self.implicitSemicolon { + if self.chr == -1 { // Hackish + self.error(idx, "Unexpected end of input") + } else { + self.error(idx, "Illegal newline after throw") + } + self.nextStatement() + return &ast.BadStatement{From: idx, To: self.idx} + } + + node := &ast.ThrowStatement{ + Argument: self.parseExpression(), + } + + self.semicolon() + + return node +} + +func (self *_parser) parseSwitchStatement() ast.Statement { + self.expect(token.SWITCH) + self.expect(token.LEFT_PARENTHESIS) + node := &ast.SwitchStatement{ + Discriminant: self.parseExpression(), + Default: -1, + } + self.expect(token.RIGHT_PARENTHESIS) + + self.expect(token.LEFT_BRACE) + + inSwitch := self.scope.inSwitch + self.scope.inSwitch = true + defer func() { + self.scope.inSwitch = inSwitch + }() + + for index := 0; self.token != token.EOF; index++ { + if self.token == token.RIGHT_BRACE { + self.next() + break + } + + clause := self.parseCaseStatement() + if clause.Test == nil { + if node.Default != -1 { + self.error(clause.Case, "Already saw a default in switch") + } + node.Default = index + } + node.Body = append(node.Body, clause) + } + + return node +} + +func (self *_parser) parseWithStatement() ast.Statement { + self.expect(token.WITH) + self.expect(token.LEFT_PARENTHESIS) + node := &ast.WithStatement{ + Object: self.parseExpression(), + } + self.expect(token.RIGHT_PARENTHESIS) + + node.Body = self.parseStatement() + + return node +} + +func (self *_parser) parseCaseStatement() *ast.CaseStatement { + + node := &ast.CaseStatement{ + Case: self.idx, + } + if self.token == token.DEFAULT { + self.next() + } else { + self.expect(token.CASE) + node.Test = self.parseExpression() + } + self.expect(token.COLON) + + for { + if self.token == token.EOF || + self.token == token.RIGHT_BRACE || + self.token == token.CASE || + self.token == token.DEFAULT { + break + } + node.Consequent = append(node.Consequent, self.parseStatement()) + + } + + return node +} + +func (self *_parser) parseIterationStatement() ast.Statement { + inIteration := self.scope.inIteration + self.scope.inIteration = true + defer func() { + self.scope.inIteration = inIteration + }() + return self.parseStatement() +} + +func (self *_parser) parseForIn(idx file.Idx, into ast.Expression) *ast.ForInStatement { + + // Already have consumed " in" + + source := self.parseExpression() + self.expect(token.RIGHT_PARENTHESIS) + + return &ast.ForInStatement{ + For: idx, + Into: into, + Source: source, + Body: self.parseIterationStatement(), + } +} + +func (self *_parser) parseFor(idx file.Idx, initializer ast.Expression) *ast.ForStatement { + + // Already have consumed " ;" + + var test, update ast.Expression + + if self.token != token.SEMICOLON { + test = self.parseExpression() + } + self.expect(token.SEMICOLON) + + if self.token != token.RIGHT_PARENTHESIS { + update = self.parseExpression() + } + self.expect(token.RIGHT_PARENTHESIS) + + return &ast.ForStatement{ + For: idx, + Initializer: initializer, + Test: test, + Update: update, + Body: self.parseIterationStatement(), + } +} + +func (self *_parser) parseForOrForInStatement() ast.Statement { + idx := self.expect(token.FOR) + self.expect(token.LEFT_PARENTHESIS) + + var left []ast.Expression + + forIn := false + if self.token != token.SEMICOLON { + + allowIn := self.scope.allowIn + self.scope.allowIn = false + if self.token == token.VAR { + var_ := self.idx + self.next() + list := self.parseVariableDeclarationList(var_) + if len(list) == 1 && self.token == token.IN { + self.next() // in + forIn = true + left = []ast.Expression{list[0]} // There is only one declaration + } else { + left = list + } + } else { + left = append(left, self.parseExpression()) + if self.token == token.IN { + self.next() + forIn = true + } + } + self.scope.allowIn = allowIn + } + + if forIn { + switch left[0].(type) { + case *ast.Identifier, *ast.DotExpression, *ast.BracketExpression, *ast.VariableExpression: + // These are all acceptable + default: + self.error(idx, "Invalid left-hand side in for-in") + self.nextStatement() + return &ast.BadStatement{From: idx, To: self.idx} + } + return self.parseForIn(idx, left[0]) + } + + self.expect(token.SEMICOLON) + return self.parseFor(idx, &ast.SequenceExpression{Sequence: left}) +} + +func (self *_parser) parseVariableStatement() *ast.VariableStatement { + + idx := self.expect(token.VAR) + + list := self.parseVariableDeclarationList(idx) + self.semicolon() + + return &ast.VariableStatement{ + Var: idx, + List: list, + } +} + +func (self *_parser) parseDoWhileStatement() ast.Statement { + inIteration := self.scope.inIteration + self.scope.inIteration = true + defer func() { + self.scope.inIteration = inIteration + }() + + self.expect(token.DO) + node := &ast.DoWhileStatement{} + if self.token == token.LEFT_BRACE { + node.Body = self.parseBlockStatement() + } else { + node.Body = self.parseStatement() + } + + self.expect(token.WHILE) + self.expect(token.LEFT_PARENTHESIS) + node.Test = self.parseExpression() + self.expect(token.RIGHT_PARENTHESIS) + if self.token == token.SEMICOLON { + self.next() + } + + return node +} + +func (self *_parser) parseWhileStatement() ast.Statement { + self.expect(token.WHILE) + self.expect(token.LEFT_PARENTHESIS) + node := &ast.WhileStatement{ + Test: self.parseExpression(), + } + self.expect(token.RIGHT_PARENTHESIS) + node.Body = self.parseIterationStatement() + + return node +} + +func (self *_parser) parseIfStatement() ast.Statement { + self.expect(token.IF) + self.expect(token.LEFT_PARENTHESIS) + node := &ast.IfStatement{ + Test: self.parseExpression(), + } + self.expect(token.RIGHT_PARENTHESIS) + + if self.token == token.LEFT_BRACE { + node.Consequent = self.parseBlockStatement() + } else { + node.Consequent = self.parseStatement() + } + + if self.token == token.ELSE { + self.next() + node.Alternate = self.parseStatement() + } + + return node +} + +func (self *_parser) parseSourceElement() ast.Statement { + return self.parseStatement() +} + +func (self *_parser) parseSourceElements() []ast.Statement { + body := []ast.Statement(nil) + + for { + if self.token != token.STRING { + break + } + + body = append(body, self.parseSourceElement()) + } + + for self.token != token.EOF { + body = append(body, self.parseSourceElement()) + } + + return body +} + +func (self *_parser) parseProgram() *ast.Program { + self.openScope() + defer self.closeScope() + return &ast.Program{ + Body: self.parseSourceElements(), + DeclarationList: self.scope.declarationList, + File: self.file, + SourceMap: self.parseSourceMap(), + } +} + +func (self *_parser) parseSourceMap() *sourcemap.Consumer { + lastLine := self.str[strings.LastIndexByte(self.str, '\n') + 1:] + if strings.HasPrefix(lastLine, "//# sourceMappingURL") { + urlIndex := strings.Index(lastLine, "=") + urlStr := lastLine[urlIndex+1:] + + var data []byte + if strings.HasPrefix(urlStr, "data:application/json") { + b64Index := strings.Index(urlStr, ",") + b64 := urlStr[b64Index+1:] + if d, err := base64.StdEncoding.DecodeString(b64); err == nil { + data = d + } + } else { + if smUrl, err := url.Parse(urlStr); err == nil { + if smUrl.Scheme == "" || smUrl.Scheme == "file" { + if f, err := os.Open(smUrl.Path); err == nil { + if d, err := ioutil.ReadAll(f); err == nil { + data = d + } + } + } else { + // Not implemented - compile error? + return nil + } + } + } + + if data == nil { + return nil + } + + if sm, err := sourcemap.Parse(self.file.Name(), data); err == nil { + return sm + } + } + return nil +} + +func (self *_parser) parseBreakStatement() ast.Statement { + idx := self.expect(token.BREAK) + semicolon := self.implicitSemicolon + if self.token == token.SEMICOLON { + semicolon = true + self.next() + } + + if semicolon || self.token == token.RIGHT_BRACE { + self.implicitSemicolon = false + if !self.scope.inIteration && !self.scope.inSwitch { + goto illegal + } + return &ast.BranchStatement{ + Idx: idx, + Token: token.BREAK, + } + } + + if self.token == token.IDENTIFIER { + identifier := self.parseIdentifier() + if !self.scope.hasLabel(identifier.Name) { + self.error(idx, "Undefined label '%s'", identifier.Name) + return &ast.BadStatement{From: idx, To: identifier.Idx1()} + } + self.semicolon() + return &ast.BranchStatement{ + Idx: idx, + Token: token.BREAK, + Label: identifier, + } + } + + self.expect(token.IDENTIFIER) + +illegal: + self.error(idx, "Illegal break statement") + self.nextStatement() + return &ast.BadStatement{From: idx, To: self.idx} +} + +func (self *_parser) parseContinueStatement() ast.Statement { + idx := self.expect(token.CONTINUE) + semicolon := self.implicitSemicolon + if self.token == token.SEMICOLON { + semicolon = true + self.next() + } + + if semicolon || self.token == token.RIGHT_BRACE { + self.implicitSemicolon = false + if !self.scope.inIteration { + goto illegal + } + return &ast.BranchStatement{ + Idx: idx, + Token: token.CONTINUE, + } + } + + if self.token == token.IDENTIFIER { + identifier := self.parseIdentifier() + if !self.scope.hasLabel(identifier.Name) { + self.error(idx, "Undefined label '%s'", identifier.Name) + return &ast.BadStatement{From: idx, To: identifier.Idx1()} + } + if !self.scope.inIteration { + goto illegal + } + self.semicolon() + return &ast.BranchStatement{ + Idx: idx, + Token: token.CONTINUE, + Label: identifier, + } + } + + self.expect(token.IDENTIFIER) + +illegal: + self.error(idx, "Illegal continue statement") + self.nextStatement() + return &ast.BadStatement{From: idx, To: self.idx} +} + +// Find the next statement after an error (recover) +func (self *_parser) nextStatement() { + for { + switch self.token { + case token.BREAK, token.CONTINUE, + token.FOR, token.IF, token.RETURN, token.SWITCH, + token.VAR, token.DO, token.TRY, token.WITH, + token.WHILE, token.THROW, token.CATCH, token.FINALLY: + // Return only if parser made some progress since last + // sync or if it has not reached 10 next calls without + // progress. Otherwise consume at least one token to + // avoid an endless parser loop + if self.idx == self.recover.idx && self.recover.count < 10 { + self.recover.count++ + return + } + if self.idx > self.recover.idx { + self.recover.idx = self.idx + self.recover.count = 0 + return + } + // Reaching here indicates a parser bug, likely an + // incorrect token list in this function, but it only + // leads to skipping of possibly correct code if a + // previous error is present, and thus is preferred + // over a non-terminating parse. + case token.EOF: + return + } + self.next() + } +} diff --git a/vendor/github.com/dop251/goja/regexp.go b/vendor/github.com/dop251/goja/regexp.go new file mode 100644 index 00000000000..9c20d80fde4 --- /dev/null +++ b/vendor/github.com/dop251/goja/regexp.go @@ -0,0 +1,361 @@ +package goja + +import ( + "fmt" + "github.com/dlclark/regexp2" + "regexp" + "unicode/utf16" + "unicode/utf8" +) + +type regexpPattern interface { + FindSubmatchIndex(valueString, int) []int + FindAllSubmatchIndex(valueString, int) [][]int + FindAllSubmatchIndexUTF8(string, int) [][]int + FindAllSubmatchIndexASCII(string, int) [][]int + MatchString(valueString) bool +} + +type regexp2Wrapper regexp2.Regexp +type regexpWrapper regexp.Regexp + +type regexpObject struct { + baseObject + pattern regexpPattern + source valueString + + global, multiline, ignoreCase bool +} + +func (r *regexp2Wrapper) FindSubmatchIndex(s valueString, start int) (result []int) { + wrapped := (*regexp2.Regexp)(r) + var match *regexp2.Match + var err error + switch s := s.(type) { + case asciiString: + match, err = wrapped.FindStringMatch(string(s)[start:]) + case unicodeString: + match, err = wrapped.FindRunesMatch(utf16.Decode(s[start:])) + default: + panic(fmt.Errorf("Unknown string type: %T", s)) + } + if err != nil { + return + } + + if match == nil { + return + } + groups := match.Groups() + + result = make([]int, 0, len(groups)<<1) + for _, group := range groups { + if len(group.Captures) > 0 { + result = append(result, group.Index, group.Index+group.Length) + } else { + result = append(result, -1, 0) + } + } + return +} + +func (r *regexp2Wrapper) FindAllSubmatchIndexUTF8(s string, n int) [][]int { + wrapped := (*regexp2.Regexp)(r) + if n < 0 { + n = len(s) + 1 + } + results := make([][]int, 0, n) + + idxMap := make([]int, 0, len(s)) + runes := make([]rune, 0, len(s)) + for pos, rr := range s { + runes = append(runes, rr) + idxMap = append(idxMap, pos) + } + idxMap = append(idxMap, len(s)) + + match, err := wrapped.FindRunesMatch(runes) + if err != nil { + return nil + } + i := 0 + for match != nil && i < n { + groups := match.Groups() + + result := make([]int, 0, len(groups)<<1) + + for _, group := range groups { + if len(group.Captures) > 0 { + result = append(result, idxMap[group.Index], idxMap[group.Index+group.Length]) + } else { + result = append(result, -1, 0) + } + } + + results = append(results, result) + match, err = wrapped.FindNextMatch(match) + if err != nil { + return nil + } + i++ + } + return results +} + +func (r *regexp2Wrapper) FindAllSubmatchIndexASCII(s string, n int) [][]int { + wrapped := (*regexp2.Regexp)(r) + if n < 0 { + n = len(s) + 1 + } + results := make([][]int, 0, n) + + match, err := wrapped.FindStringMatch(s) + if err != nil { + return nil + } + i := 0 + for match != nil && i < n { + groups := match.Groups() + + result := make([]int, 0, len(groups)<<1) + + for _, group := range groups { + if len(group.Captures) > 0 { + result = append(result, group.Index, group.Index+group.Length) + } else { + result = append(result, -1, 0) + } + } + + results = append(results, result) + match, err = wrapped.FindNextMatch(match) + if err != nil { + return nil + } + i++ + } + return results +} + +func (r *regexp2Wrapper) findAllSubmatchIndexUTF16(s unicodeString, n int) [][]int { + wrapped := (*regexp2.Regexp)(r) + if n < 0 { + n = len(s) + 1 + } + results := make([][]int, 0, n) + + rd := runeReaderReplace{s.reader(0)} + posMap := make([]int, s.length()+1) + curPos := 0 + curRuneIdx := 0 + runes := make([]rune, 0, s.length()) + for { + rn, size, err := rd.ReadRune() + if err != nil { + break + } + runes = append(runes, rn) + posMap[curRuneIdx] = curPos + curRuneIdx++ + curPos += size + } + posMap[curRuneIdx] = curPos + + match, err := wrapped.FindRunesMatch(runes) + if err != nil { + return nil + } + for match != nil { + groups := match.Groups() + + result := make([]int, 0, len(groups)<<1) + + for _, group := range groups { + if len(group.Captures) > 0 { + start := posMap[group.Index] + end := posMap[group.Index+group.Length] + result = append(result, start, end) + } else { + result = append(result, -1, 0) + } + } + + results = append(results, result) + match, err = wrapped.FindNextMatch(match) + if err != nil { + return nil + } + } + return results +} + +func (r *regexp2Wrapper) FindAllSubmatchIndex(s valueString, n int) [][]int { + switch s := s.(type) { + case asciiString: + return r.FindAllSubmatchIndexASCII(string(s), n) + case unicodeString: + return r.findAllSubmatchIndexUTF16(s, n) + default: + panic("Unsupported string type") + } +} + +func (r *regexp2Wrapper) MatchString(s valueString) bool { + wrapped := (*regexp2.Regexp)(r) + + switch s := s.(type) { + case asciiString: + matched, _ := wrapped.MatchString(string(s)) + return matched + case unicodeString: + matched, _ := wrapped.MatchRunes(utf16.Decode(s)) + return matched + default: + panic(fmt.Errorf("Unknown string type: %T", s)) + } +} + +func (r *regexpWrapper) FindSubmatchIndex(s valueString, start int) (result []int) { + wrapped := (*regexp.Regexp)(r) + return wrapped.FindReaderSubmatchIndex(runeReaderReplace{s.reader(start)}) +} + +func (r *regexpWrapper) MatchString(s valueString) bool { + wrapped := (*regexp.Regexp)(r) + return wrapped.MatchReader(runeReaderReplace{s.reader(0)}) +} + +func (r *regexpWrapper) FindAllSubmatchIndex(s valueString, n int) [][]int { + wrapped := (*regexp.Regexp)(r) + switch s := s.(type) { + case asciiString: + return wrapped.FindAllStringSubmatchIndex(string(s), n) + case unicodeString: + return r.findAllSubmatchIndexUTF16(s, n) + default: + panic("Unsupported string type") + } +} + +func (r *regexpWrapper) FindAllSubmatchIndexUTF8(s string, n int) [][]int { + wrapped := (*regexp.Regexp)(r) + return wrapped.FindAllStringSubmatchIndex(s, n) +} + +func (r *regexpWrapper) FindAllSubmatchIndexASCII(s string, n int) [][]int { + return r.FindAllSubmatchIndexUTF8(s, n) +} + +func (r *regexpWrapper) findAllSubmatchIndexUTF16(s unicodeString, n int) [][]int { + wrapped := (*regexp.Regexp)(r) + utf8Bytes := make([]byte, 0, len(s)*2) + posMap := make(map[int]int) + curPos := 0 + rd := runeReaderReplace{s.reader(0)} + for { + rn, size, err := rd.ReadRune() + if err != nil { + break + } + l := len(utf8Bytes) + utf8Bytes = append(utf8Bytes, 0, 0, 0, 0) + n := utf8.EncodeRune(utf8Bytes[l:], rn) + utf8Bytes = utf8Bytes[:l+n] + posMap[l] = curPos + curPos += size + } + posMap[len(utf8Bytes)] = curPos + + rr := wrapped.FindAllSubmatchIndex(utf8Bytes, n) + for _, res := range rr { + for j, pos := range res { + mapped, exists := posMap[pos] + if !exists { + panic("Unicode match is not on rune boundary") + } + res[j] = mapped + } + } + return rr +} + +func (r *regexpObject) execResultToArray(target valueString, result []int) Value { + captureCount := len(result) >> 1 + valueArray := make([]Value, captureCount) + matchIndex := result[0] + lowerBound := matchIndex + for index := 0; index < captureCount; index++ { + offset := index << 1 + if result[offset] >= lowerBound { + valueArray[index] = target.substring(int64(result[offset]), int64(result[offset+1])) + lowerBound = result[offset] + } else { + valueArray[index] = _undefined + } + } + match := r.val.runtime.newArrayValues(valueArray) + match.self.putStr("input", target, false) + match.self.putStr("index", intToValue(int64(matchIndex)), false) + return match +} + +func (r *regexpObject) execRegexp(target valueString) (match bool, result []int) { + lastIndex := int64(0) + if p := r.getStr("lastIndex"); p != nil { + lastIndex = p.ToInteger() + if lastIndex < 0 { + lastIndex = 0 + } + } + index := lastIndex + if !r.global { + index = 0 + } + if index >= 0 && index <= target.length() { + result = r.pattern.FindSubmatchIndex(target, int(index)) + } + if result == nil { + r.putStr("lastIndex", intToValue(0), true) + return + } + match = true + startIndex := index + endIndex := int(lastIndex) + result[1] + // We do this shift here because the .FindStringSubmatchIndex above + // was done on a local subordinate slice of the string, not the whole string + for index, _ := range result { + result[index] += int(startIndex) + } + if r.global { + r.putStr("lastIndex", intToValue(int64(endIndex)), true) + } + return +} + +func (r *regexpObject) exec(target valueString) Value { + match, result := r.execRegexp(target) + if match { + return r.execResultToArray(target, result) + } + return _null +} + +func (r *regexpObject) test(target valueString) bool { + match, _ := r.execRegexp(target) + return match +} + +func (r *regexpObject) clone() *Object { + r1 := r.val.runtime.newRegexpObject(r.prototype) + r1.source = r.source + r1.pattern = r.pattern + r1.global = r.global + r1.ignoreCase = r.ignoreCase + r1.multiline = r.multiline + return r1.val +} + +func (r *regexpObject) init() { + r.baseObject.init() + r._putProp("lastIndex", intToValue(0), true, false, false) +} diff --git a/vendor/github.com/dop251/goja/runtime.go b/vendor/github.com/dop251/goja/runtime.go new file mode 100644 index 00000000000..4cb16896df9 --- /dev/null +++ b/vendor/github.com/dop251/goja/runtime.go @@ -0,0 +1,1492 @@ +package goja + +import ( + "bytes" + "errors" + "fmt" + "go/ast" + "math" + "math/rand" + "reflect" + "strconv" + + js_ast "github.com/dop251/goja/ast" + "github.com/dop251/goja/parser" +) + +const ( + sqrt1_2 float64 = math.Sqrt2 / 2 +) + +var ( + typeCallable = reflect.TypeOf(Callable(nil)) + typeValue = reflect.TypeOf((*Value)(nil)).Elem() +) + +type global struct { + Object *Object + Array *Object + Function *Object + String *Object + Number *Object + Boolean *Object + RegExp *Object + Date *Object + + ArrayBuffer *Object + + Error *Object + TypeError *Object + ReferenceError *Object + SyntaxError *Object + RangeError *Object + EvalError *Object + URIError *Object + + GoError *Object + + ObjectPrototype *Object + ArrayPrototype *Object + NumberPrototype *Object + StringPrototype *Object + BooleanPrototype *Object + FunctionPrototype *Object + RegExpPrototype *Object + DatePrototype *Object + + ArrayBufferPrototype *Object + + ErrorPrototype *Object + TypeErrorPrototype *Object + SyntaxErrorPrototype *Object + RangeErrorPrototype *Object + ReferenceErrorPrototype *Object + EvalErrorPrototype *Object + URIErrorPrototype *Object + + GoErrorPrototype *Object + + Eval *Object + + thrower *Object + throwerProperty Value +} + +type Flag int + +const ( + FLAG_NOT_SET Flag = iota + FLAG_FALSE + FLAG_TRUE +) + +func (f Flag) Bool() bool { + return f == FLAG_TRUE +} + +func ToFlag(b bool) Flag { + if b { + return FLAG_TRUE + } + return FLAG_FALSE +} + +type RandSource func() float64 + +type Runtime struct { + global global + globalObject *Object + stringSingleton *stringObject + rand RandSource + + typeInfoCache map[reflect.Type]*reflectTypeInfo + fieldNameMapper FieldNameMapper + simpleMapTypes map[reflect.Type]func(interface{}) map[string]interface{} + + vm *vm +} + +type stackFrame struct { + prg *Program + funcName string + pc int +} + +func (f *stackFrame) position() Position { + return f.prg.src.Position(f.prg.sourceOffset(f.pc)) +} + +func (f *stackFrame) write(b *bytes.Buffer) { + if f.prg != nil { + if n := f.prg.funcName; n != "" { + b.WriteString(n) + b.WriteString(" (") + } + if n := f.prg.src.name; n != "" { + b.WriteString(n) + } else { + b.WriteString("") + } + b.WriteByte(':') + b.WriteString(f.position().String()) + b.WriteByte('(') + b.WriteString(strconv.Itoa(f.pc)) + b.WriteByte(')') + if f.prg.funcName != "" { + b.WriteByte(')') + } + } else { + if f.funcName != "" { + b.WriteString(f.funcName) + b.WriteString(" (") + } + b.WriteString("native") + if f.funcName != "" { + b.WriteByte(')') + } + } +} + +type Exception struct { + val Value + stack []stackFrame +} + +type InterruptedError struct { + Exception + iface interface{} +} + +func (e *InterruptedError) Value() interface{} { + return e.iface +} + +func (e *InterruptedError) String() string { + if e == nil { + return "" + } + var b bytes.Buffer + if e.iface != nil { + b.WriteString(fmt.Sprint(e.iface)) + b.WriteByte('\n') + } + e.writeFullStack(&b) + return b.String() +} + +func (e *InterruptedError) Error() string { + if e == nil || e.iface == nil { + return "" + } + var b bytes.Buffer + b.WriteString(fmt.Sprint(e.iface)) + e.writeShortStack(&b) + return b.String() +} + +func (e *Exception) writeFullStack(b *bytes.Buffer) { + for _, frame := range e.stack { + b.WriteString("\tat ") + frame.write(b) + b.WriteByte('\n') + } +} + +func (e *Exception) writeShortStack(b *bytes.Buffer) { + if len(e.stack) > 0 && (e.stack[0].prg != nil || e.stack[0].funcName != "") { + b.WriteString(" at ") + e.stack[0].write(b) + } +} + +func (e *Exception) String() string { + if e == nil { + return "" + } + var b bytes.Buffer + if e.val != nil { + b.WriteString(e.val.String()) + b.WriteByte('\n') + } + e.writeFullStack(&b) + return b.String() +} + +func (e *Exception) Error() string { + if e == nil || e.val == nil { + return "" + } + var b bytes.Buffer + b.WriteString(e.val.String()) + e.writeShortStack(&b) + return b.String() +} + +func (e *Exception) Value() Value { + return e.val +} + +func (r *Runtime) addToGlobal(name string, value Value) { + r.globalObject.self._putProp(name, value, true, false, true) +} + +func (r *Runtime) init() { + r.rand = rand.Float64 + r.global.ObjectPrototype = r.newBaseObject(nil, classObject).val + r.globalObject = r.NewObject() + + r.vm = &vm{ + r: r, + } + r.vm.init() + + r.global.FunctionPrototype = r.newNativeFunc(nil, nil, "Empty", nil, 0) + r.initObject() + r.initFunction() + r.initArray() + r.initString() + r.initNumber() + r.initRegExp() + r.initDate() + r.initBoolean() + + r.initErrors() + + r.global.Eval = r.newNativeFunc(r.builtin_eval, nil, "eval", nil, 1) + r.addToGlobal("eval", r.global.Eval) + + r.initGlobalObject() + + r.initMath() + r.initJSON() + + //r.initTypedArrays() + + r.global.thrower = r.newNativeFunc(r.builtin_thrower, nil, "thrower", nil, 0) + r.global.throwerProperty = &valueProperty{ + getterFunc: r.global.thrower, + setterFunc: r.global.thrower, + accessor: true, + } +} + +func (r *Runtime) typeErrorResult(throw bool, args ...interface{}) { + if throw { + panic(r.NewTypeError(args...)) + } +} + +func (r *Runtime) newError(typ *Object, format string, args ...interface{}) Value { + msg := fmt.Sprintf(format, args...) + return r.builtin_new(typ, []Value{newStringValue(msg)}) +} + +func (r *Runtime) throwReferenceError(name string) { + panic(r.newError(r.global.ReferenceError, "%s is not defined", name)) +} + +func (r *Runtime) newSyntaxError(msg string, offset int) Value { + return r.builtin_new((r.global.SyntaxError), []Value{newStringValue(msg)}) +} + +func (r *Runtime) newArray(prototype *Object) (a *arrayObject) { + v := &Object{runtime: r} + + a = &arrayObject{} + a.class = classArray + a.val = v + a.extensible = true + v.self = a + a.prototype = prototype + a.init() + return +} + +func (r *Runtime) newArrayObject() *arrayObject { + return r.newArray(r.global.ArrayPrototype) +} + +func (r *Runtime) newArrayValues(values []Value) *Object { + v := &Object{runtime: r} + + a := &arrayObject{} + a.class = classArray + a.val = v + a.extensible = true + v.self = a + a.prototype = r.global.ArrayPrototype + a.init() + a.values = values + a.length = int64(len(values)) + a.objCount = a.length + return v +} + +func (r *Runtime) newArrayLength(l int64) *Object { + a := r.newArrayValues(nil) + a.self.putStr("length", intToValue(l), true) + return a +} + +func (r *Runtime) newBaseObject(proto *Object, class string) (o *baseObject) { + v := &Object{runtime: r} + + o = &baseObject{} + o.class = class + o.val = v + o.extensible = true + v.self = o + o.prototype = proto + o.init() + return +} + +func (r *Runtime) NewObject() (v *Object) { + return r.newBaseObject(r.global.ObjectPrototype, classObject).val +} + +// CreateObject creates an object with given prototype. Equivalent of Object.create(proto). +func (r *Runtime) CreateObject(proto *Object) *Object { + return r.newBaseObject(proto, classObject).val +} + +func (r *Runtime) NewTypeError(args ...interface{}) *Object { + msg := "" + if len(args) > 0 { + f, _ := args[0].(string) + msg = fmt.Sprintf(f, args[1:]...) + } + return r.builtin_new(r.global.TypeError, []Value{newStringValue(msg)}) +} + +func (r *Runtime) NewGoError(err error) *Object { + e := r.newError(r.global.GoError, err.Error()).(*Object) + e.Set("value", err) + return e +} + +func (r *Runtime) newFunc(name string, len int, strict bool) (f *funcObject) { + v := &Object{runtime: r} + + f = &funcObject{} + f.class = classFunction + f.val = v + f.extensible = true + v.self = f + f.prototype = r.global.FunctionPrototype + f.init(name, len) + if strict { + f._put("caller", r.global.throwerProperty) + f._put("arguments", r.global.throwerProperty) + } + return +} + +func (r *Runtime) newNativeFuncObj(v *Object, call func(FunctionCall) Value, construct func(args []Value) *Object, name string, proto *Object, length int) *nativeFuncObject { + f := &nativeFuncObject{ + baseFuncObject: baseFuncObject{ + baseObject: baseObject{ + class: classFunction, + val: v, + extensible: true, + prototype: r.global.FunctionPrototype, + }, + }, + f: call, + construct: construct, + } + v.self = f + f.init(name, length) + if proto != nil { + f._putProp("prototype", proto, false, false, false) + } + return f +} + +func (r *Runtime) newNativeConstructor(call func(ConstructorCall) *Object, name string, length int) *Object { + v := &Object{runtime: r} + + f := &nativeFuncObject{ + baseFuncObject: baseFuncObject{ + baseObject: baseObject{ + class: classFunction, + val: v, + extensible: true, + prototype: r.global.FunctionPrototype, + }, + }, + } + + f.f = func(c FunctionCall) Value { + return f.defaultConstruct(call, c.Arguments) + } + + f.construct = func(args []Value) *Object { + return f.defaultConstruct(call, args) + } + + v.self = f + f.init(name, length) + + proto := r.NewObject() + proto.self._putProp("constructor", v, true, false, true) + f._putProp("prototype", proto, true, false, false) + + return v +} + +func (r *Runtime) newNativeFunc(call func(FunctionCall) Value, construct func(args []Value) *Object, name string, proto *Object, length int) *Object { + v := &Object{runtime: r} + + f := &nativeFuncObject{ + baseFuncObject: baseFuncObject{ + baseObject: baseObject{ + class: classFunction, + val: v, + extensible: true, + prototype: r.global.FunctionPrototype, + }, + }, + f: call, + construct: construct, + } + v.self = f + f.init(name, length) + if proto != nil { + f._putProp("prototype", proto, false, false, false) + proto.self._putProp("constructor", v, true, false, true) + } + return v +} + +func (r *Runtime) newNativeFuncConstructObj(v *Object, construct func(args []Value, proto *Object) *Object, name string, proto *Object, length int) *nativeFuncObject { + f := &nativeFuncObject{ + baseFuncObject: baseFuncObject{ + baseObject: baseObject{ + class: classFunction, + val: v, + extensible: true, + prototype: r.global.FunctionPrototype, + }, + }, + f: r.constructWrap(construct, proto), + construct: func(args []Value) *Object { + return construct(args, proto) + }, + } + + f.init(name, length) + if proto != nil { + f._putProp("prototype", proto, false, false, false) + } + return f +} + +func (r *Runtime) newNativeFuncConstruct(construct func(args []Value, proto *Object) *Object, name string, prototype *Object, length int) *Object { + return r.newNativeFuncConstructProto(construct, name, prototype, r.global.FunctionPrototype, length) +} + +func (r *Runtime) newNativeFuncConstructProto(construct func(args []Value, proto *Object) *Object, name string, prototype, proto *Object, length int) *Object { + v := &Object{runtime: r} + + f := &nativeFuncObject{} + f.class = classFunction + f.val = v + f.extensible = true + v.self = f + f.prototype = proto + f.f = r.constructWrap(construct, prototype) + f.construct = func(args []Value) *Object { + return construct(args, prototype) + } + f.init(name, length) + if prototype != nil { + f._putProp("prototype", prototype, false, false, false) + prototype.self._putProp("constructor", v, true, false, true) + } + return v +} + +func (r *Runtime) newPrimitiveObject(value Value, proto *Object, class string) *Object { + v := &Object{runtime: r} + + o := &primitiveValueObject{} + o.class = class + o.val = v + o.extensible = true + v.self = o + o.prototype = proto + o.pValue = value + o.init() + return v +} + +func (r *Runtime) builtin_Number(call FunctionCall) Value { + if len(call.Arguments) > 0 { + return call.Arguments[0].ToNumber() + } else { + return intToValue(0) + } +} + +func (r *Runtime) builtin_newNumber(args []Value) *Object { + var v Value + if len(args) > 0 { + v = args[0].ToNumber() + } else { + v = intToValue(0) + } + return r.newPrimitiveObject(v, r.global.NumberPrototype, classNumber) +} + +func (r *Runtime) builtin_Boolean(call FunctionCall) Value { + if len(call.Arguments) > 0 { + if call.Arguments[0].ToBoolean() { + return valueTrue + } else { + return valueFalse + } + } else { + return valueFalse + } +} + +func (r *Runtime) builtin_newBoolean(args []Value) *Object { + var v Value + if len(args) > 0 { + if args[0].ToBoolean() { + v = valueTrue + } else { + v = valueFalse + } + } else { + v = valueFalse + } + return r.newPrimitiveObject(v, r.global.BooleanPrototype, classBoolean) +} + +func (r *Runtime) error_toString(call FunctionCall) Value { + obj := call.This.ToObject(r).self + msg := obj.getStr("message") + name := obj.getStr("name") + var nameStr, msgStr string + if name != nil && name != _undefined { + nameStr = name.String() + } + if msg != nil && msg != _undefined { + msgStr = msg.String() + } + if nameStr != "" && msgStr != "" { + return newStringValue(fmt.Sprintf("%s: %s", name.String(), msgStr)) + } else { + if nameStr != "" { + return name.ToString() + } else { + return msg.ToString() + } + } +} + +func (r *Runtime) builtin_Error(args []Value, proto *Object) *Object { + obj := r.newBaseObject(proto, classError) + if len(args) > 0 && args[0] != _undefined { + obj._putProp("message", args[0], true, false, true) + } + return obj.val +} + +func (r *Runtime) builtin_new(construct *Object, args []Value) *Object { +repeat: + switch f := construct.self.(type) { + case *nativeFuncObject: + if f.construct != nil { + return f.construct(args) + } else { + panic("Not a constructor") + } + case *boundFuncObject: + if f.construct != nil { + return f.construct(args) + } else { + panic("Not a constructor") + } + case *funcObject: + // TODO: implement + panic("Not implemented") + case *lazyObject: + construct.self = f.create(construct) + goto repeat + default: + panic("Not a constructor") + } +} + +func (r *Runtime) throw(e Value) { + panic(e) +} + +func (r *Runtime) builtin_thrower(call FunctionCall) Value { + r.typeErrorResult(true, "'caller', 'callee', and 'arguments' properties may not be accessed on strict mode functions or the arguments objects for calls to them") + return nil +} + +func (r *Runtime) eval(src string, direct, strict bool, this Value) Value { + + p, err := r.compile("", src, strict, true) + if err != nil { + panic(err) + } + + vm := r.vm + + vm.pushCtx() + vm.prg = p + vm.pc = 0 + if !direct { + vm.stash = nil + } + vm.sb = vm.sp + vm.push(this) + if strict { + vm.push(valueTrue) + } else { + vm.push(valueFalse) + } + vm.run() + vm.popCtx() + vm.halt = false + retval := vm.stack[vm.sp-1] + vm.sp -= 2 + return retval +} + +func (r *Runtime) builtin_eval(call FunctionCall) Value { + if len(call.Arguments) == 0 { + return _undefined + } + if str, ok := call.Arguments[0].assertString(); ok { + return r.eval(str.String(), false, false, r.globalObject) + } + return call.Arguments[0] +} + +func (r *Runtime) constructWrap(construct func(args []Value, proto *Object) *Object, proto *Object) func(call FunctionCall) Value { + return func(call FunctionCall) Value { + return construct(call.Arguments, proto) + } +} + +func (r *Runtime) toCallable(v Value) func(FunctionCall) Value { + if call, ok := r.toObject(v).self.assertCallable(); ok { + return call + } + r.typeErrorResult(true, "Value is not callable: %s", v.ToString()) + return nil +} + +func (r *Runtime) checkObjectCoercible(v Value) { + switch v.(type) { + case valueUndefined, valueNull: + r.typeErrorResult(true, "Value is not object coercible") + } +} + +func toUInt32(v Value) uint32 { + v = v.ToNumber() + if i, ok := v.assertInt(); ok { + return uint32(i) + } + + if f, ok := v.assertFloat(); ok { + if !math.IsNaN(f) && !math.IsInf(f, 0) { + return uint32(int64(f)) + } + } + return 0 +} + +func toUInt16(v Value) uint16 { + v = v.ToNumber() + if i, ok := v.assertInt(); ok { + return uint16(i) + } + + if f, ok := v.assertFloat(); ok { + if !math.IsNaN(f) && !math.IsInf(f, 0) { + return uint16(int64(f)) + } + } + return 0 +} + +func toLength(v Value) int64 { + if v == nil { + return 0 + } + i := v.ToInteger() + if i < 0 { + return 0 + } + if i >= maxInt { + return maxInt - 1 + } + return i +} + +func toInt32(v Value) int32 { + v = v.ToNumber() + if i, ok := v.assertInt(); ok { + return int32(i) + } + + if f, ok := v.assertFloat(); ok { + if !math.IsNaN(f) && !math.IsInf(f, 0) { + return int32(int64(f)) + } + } + return 0 +} + +func (r *Runtime) toBoolean(b bool) Value { + if b { + return valueTrue + } else { + return valueFalse + } +} + +// New creates an instance of a Javascript runtime that can be used to run code. Multiple instances may be created and +// used simultaneously, however it is not possible to pass JS values across runtimes. +func New() *Runtime { + r := &Runtime{} + r.init() + return r +} + +// Compile creates an internal representation of the JavaScript code that can be later run using the Runtime.RunProgram() +// method. This representation is not linked to a runtime in any way and can be run in multiple runtimes (possibly +// at the same time). +func Compile(name, src string, strict bool) (*Program, error) { + return compile(name, src, strict, false) +} + +// CompileAST creates an internal representation of the JavaScript code that can be later run using the Runtime.RunProgram() +// method. This representation is not linked to a runtime in any way and can be run in multiple runtimes (possibly +// at the same time). +func CompileAST(prg *js_ast.Program, strict bool) (*Program, error) { + return compileAST(prg, strict, false) +} + +// MustCompile is like Compile but panics if the code cannot be compiled. +// It simplifies safe initialization of global variables holding compiled JavaScript code. +func MustCompile(name, src string, strict bool) *Program { + prg, err := Compile(name, src, strict) + if err != nil { + panic(err) + } + + return prg +} + +func compile(name, src string, strict, eval bool) (p *Program, err error) { + prg, err1 := parser.ParseFile(nil, name, src, 0) + if err1 != nil { + switch err1 := err1.(type) { + case parser.ErrorList: + if len(err1) > 0 && err1[0].Message == "Invalid left-hand side in assignment" { + err = &CompilerReferenceError{ + CompilerError: CompilerError{ + Message: err1.Error(), + }, + } + return + } + } + // FIXME offset + err = &CompilerSyntaxError{ + CompilerError: CompilerError{ + Message: err1.Error(), + }, + } + return + } + + p, err = compileAST(prg, strict, eval) + + return +} + +func compileAST(prg *js_ast.Program, strict, eval bool) (p *Program, err error) { + c := newCompiler() + c.scope.strict = strict + c.scope.eval = eval + + defer func() { + if x := recover(); x != nil { + p = nil + switch x1 := x.(type) { + case *CompilerSyntaxError: + err = x1 + default: + panic(x) + } + } + }() + + c.compile(prg) + p = c.p + return +} + +func (r *Runtime) compile(name, src string, strict, eval bool) (p *Program, err error) { + p, err = compile(name, src, strict, eval) + if err != nil { + switch x1 := err.(type) { + case *CompilerSyntaxError: + err = &Exception{ + val: r.builtin_new(r.global.SyntaxError, []Value{newStringValue(x1.Error())}), + } + case *CompilerReferenceError: + err = &Exception{ + val: r.newError(r.global.ReferenceError, x1.Message), + } // TODO proper message + } + } + return +} + +// RunString executes the given string in the global context. +func (r *Runtime) RunString(str string) (Value, error) { + return r.RunScript("", str) +} + +// RunScript executes the given string in the global context. +func (r *Runtime) RunScript(name, src string) (Value, error) { + p, err := Compile(name, src, false) + + if err != nil { + return nil, err + } + + return r.RunProgram(p) +} + +// RunProgram executes a pre-compiled (see Compile()) code in the global context. +func (r *Runtime) RunProgram(p *Program) (result Value, err error) { + defer func() { + if x := recover(); x != nil { + if intr, ok := x.(*InterruptedError); ok { + err = intr + } else { + panic(x) + } + } + }() + recursive := false + if len(r.vm.callStack) > 0 { + recursive = true + r.vm.pushCtx() + } + r.vm.prg = p + r.vm.pc = 0 + ex := r.vm.runTry() + if ex == nil { + result = r.vm.pop() + } else { + err = ex + } + if recursive { + r.vm.popCtx() + r.vm.halt = false + r.vm.clearStack() + } else { + r.vm.stack = nil + } + return +} + +// Interrupt a running JavaScript. The corresponding Go call will return an *InterruptedError containing v. +// Note, it only works while in JavaScript code, it does not interrupt native Go functions (which includes all built-ins). +func (r *Runtime) Interrupt(v interface{}) { + r.vm.Interrupt(v) +} + +/* +ToValue converts a Go value into JavaScript value. + +Primitive types (ints and uints, floats, string, bool) are converted to the corresponding JavaScript primitives. + +func(FunctionCall) Value is treated as a native JavaScript function. + +map[string]interface{} is converted into a host object that largely behaves like a JavaScript Object. + +[]interface{} is converted into a host object that behaves largely like a JavaScript Array, however it's not extensible +because extending it can change the pointer so it becomes detached from the original. + +*[]interface{} same as above, but the array becomes extensible. + +A function is wrapped within a native JavaScript function. When called the arguments are automatically converted to +the appropriate Go types. If conversion is not possible, a TypeError is thrown. + +A slice type is converted into a generic reflect based host object that behaves similar to an unexpandable Array. + +Any other type is converted to a generic reflect based host object. Depending on the underlying type it behaves similar +to a Number, String, Boolean or Object. + +Note that the underlying type is not lost, calling Export() returns the original Go value. This applies to all +reflect based types. +*/ +func (r *Runtime) ToValue(i interface{}) Value { + switch i := i.(type) { + case nil: + return _null + case Value: + // TODO: prevent importing Objects from a different runtime + return i + case string: + return newStringValue(i) + case bool: + if i { + return valueTrue + } else { + return valueFalse + } + case func(FunctionCall) Value: + return r.newNativeFunc(i, nil, "", nil, 0) + case func(ConstructorCall) *Object: + return r.newNativeConstructor(i, "", 0) + case int: + return intToValue(int64(i)) + case int8: + return intToValue(int64(i)) + case int16: + return intToValue(int64(i)) + case int32: + return intToValue(int64(i)) + case int64: + return intToValue(i) + case uint: + if int64(i) <= math.MaxInt64 { + return intToValue(int64(i)) + } else { + return floatToValue(float64(i)) + } + case uint8: + return intToValue(int64(i)) + case uint16: + return intToValue(int64(i)) + case uint32: + return intToValue(int64(i)) + case uint64: + if i <= math.MaxInt64 { + return intToValue(int64(i)) + } + return floatToValue(float64(i)) + case float32: + return floatToValue(float64(i)) + case float64: + return floatToValue(i) + case map[string]interface{}: + obj := &Object{runtime: r} + m := &objectGoMapSimple{ + baseObject: baseObject{ + val: obj, + extensible: true, + }, + data: i, + } + obj.self = m + m.init() + return obj + case []interface{}: + obj := &Object{runtime: r} + a := &objectGoSlice{ + baseObject: baseObject{ + val: obj, + }, + data: &i, + } + obj.self = a + a.init() + return obj + case *[]interface{}: + obj := &Object{runtime: r} + a := &objectGoSlice{ + baseObject: baseObject{ + val: obj, + }, + data: i, + sliceExtensible: true, + } + obj.self = a + a.init() + return obj + } + + origValue := reflect.ValueOf(i) + value := origValue + for value.Kind() == reflect.Ptr { + value = reflect.Indirect(value) + } + + if !value.IsValid() { + return _null + } + + if convert, isSimpleMapType := r.simpleMapTypes[value.Type()]; isSimpleMapType { + obj := &Object{runtime: r} + m := &objectGoMapSimple{ + baseObject: baseObject{ + val: obj, + extensible: true, + }, + data: convert(i), + } + obj.self = m + m.init() + return obj + } + + switch value.Kind() { + case reflect.Map: + if value.Type().NumMethod() == 0 { + switch value.Type().Key().Kind() { + case reflect.String, reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64, + reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, + reflect.Float64, reflect.Float32: + + obj := &Object{runtime: r} + m := &objectGoMapReflect{ + objectGoReflect: objectGoReflect{ + baseObject: baseObject{ + val: obj, + extensible: true, + }, + origValue: origValue, + value: value, + }, + } + m.init() + obj.self = m + return obj + } + } + case reflect.Slice: + obj := &Object{runtime: r} + a := &objectGoSliceReflect{ + objectGoReflect: objectGoReflect{ + baseObject: baseObject{ + val: obj, + }, + origValue: origValue, + value: value, + }, + } + a.init() + obj.self = a + return obj + case reflect.Func: + return r.newNativeFunc(r.wrapReflectFunc(value), nil, "", nil, value.Type().NumIn()) + } + + obj := &Object{runtime: r} + o := &objectGoReflect{ + baseObject: baseObject{ + val: obj, + }, + origValue: origValue, + value: value, + } + obj.self = o + o.init() + return obj +} + +func (r *Runtime) wrapReflectFunc(value reflect.Value) func(FunctionCall) Value { + return func(call FunctionCall) Value { + typ := value.Type() + nargs := typ.NumIn() + var in []reflect.Value + + if l := len(call.Arguments); l < nargs { + // fill missing arguments with zero values + n := nargs + if typ.IsVariadic() { + n-- + } + in = make([]reflect.Value, n) + for i := l; i < n; i++ { + in[i] = reflect.Zero(typ.In(i)) + } + } else { + if l > nargs && !typ.IsVariadic() { + l = nargs + } + in = make([]reflect.Value, l) + } + + callSlice := false + for i, a := range call.Arguments { + var t reflect.Type + + n := i + if n >= nargs-1 && typ.IsVariadic() { + if n > nargs-1 { + n = nargs - 1 + } + + t = typ.In(n).Elem() + } else if n > nargs-1 { // ignore extra arguments + break + } else { + t = typ.In(n) + } + + // if this is a variadic Go function, and the caller has supplied + // exactly the number of JavaScript arguments required, and this + // is the last JavaScript argument, try treating the it as the + // actual set of variadic Go arguments. if that succeeds, break + // out of the loop. + if typ.IsVariadic() && len(call.Arguments) == nargs && i == nargs-1 { + if v, err := r.toReflectValue(a, typ.In(n)); err == nil { + in[i] = v + callSlice = true + break + } + } + var err error + in[i], err = r.toReflectValue(a, t) + if err != nil { + panic(r.newError(r.global.TypeError, "Could not convert function call parameter %v to %v", a, t)) + } + } + + var out []reflect.Value + if callSlice { + out = value.CallSlice(in) + } else { + out = value.Call(in) + } + + if len(out) == 0 { + return _undefined + } + + if last := out[len(out)-1]; last.Type().Name() == "error" { + if !last.IsNil() { + err := last.Interface() + if _, ok := err.(*Exception); ok { + panic(err) + } + panic(r.NewGoError(last.Interface().(error))) + } + out = out[:len(out)-1] + } + + switch len(out) { + case 0: + return _undefined + case 1: + return r.ToValue(out[0].Interface()) + default: + s := make([]interface{}, len(out)) + for i, v := range out { + s[i] = v.Interface() + } + + return r.ToValue(s) + } + } +} + +func (r *Runtime) toReflectValue(v Value, typ reflect.Type) (reflect.Value, error) { + switch typ.Kind() { + case reflect.String: + return reflect.ValueOf(v.String()).Convert(typ), nil + case reflect.Bool: + return reflect.ValueOf(v.ToBoolean()).Convert(typ), nil + case reflect.Int: + i, _ := toInt(v) + return reflect.ValueOf(int(i)).Convert(typ), nil + case reflect.Int64: + i, _ := toInt(v) + return reflect.ValueOf(i).Convert(typ), nil + case reflect.Int32: + i, _ := toInt(v) + return reflect.ValueOf(int32(i)).Convert(typ), nil + case reflect.Int16: + i, _ := toInt(v) + return reflect.ValueOf(int16(i)).Convert(typ), nil + case reflect.Int8: + i, _ := toInt(v) + return reflect.ValueOf(int8(i)).Convert(typ), nil + case reflect.Uint: + i, _ := toInt(v) + return reflect.ValueOf(uint(i)).Convert(typ), nil + case reflect.Uint64: + i, _ := toInt(v) + return reflect.ValueOf(uint64(i)).Convert(typ), nil + case reflect.Uint32: + i, _ := toInt(v) + return reflect.ValueOf(uint32(i)).Convert(typ), nil + case reflect.Uint16: + i, _ := toInt(v) + return reflect.ValueOf(uint16(i)).Convert(typ), nil + case reflect.Uint8: + i, _ := toInt(v) + return reflect.ValueOf(uint8(i)).Convert(typ), nil + } + + if typ == typeCallable { + if fn, ok := AssertFunction(v); ok { + return reflect.ValueOf(fn), nil + } + } + + if typ.Implements(typeValue) { + return reflect.ValueOf(v), nil + } + + et := v.ExportType() + if et == nil { + return reflect.Zero(typ), nil + } + if et.AssignableTo(typ) { + return reflect.ValueOf(v.Export()), nil + } else if et.ConvertibleTo(typ) { + return reflect.ValueOf(v.Export()).Convert(typ), nil + } + + switch typ.Kind() { + case reflect.Slice: + if o, ok := v.(*Object); ok { + if o.self.className() == classArray { + l := int(toLength(o.self.getStr("length"))) + s := reflect.MakeSlice(typ, l, l) + elemTyp := typ.Elem() + for i := 0; i < l; i++ { + item := o.self.get(intToValue(int64(i))) + itemval, err := r.toReflectValue(item, elemTyp) + if err != nil { + return reflect.Value{}, fmt.Errorf("Could not convert array element %v to %v at %d", v, typ, i) + } + s.Index(i).Set(itemval) + } + return s, nil + } + } + case reflect.Map: + if o, ok := v.(*Object); ok { + m := reflect.MakeMap(typ) + keyTyp := typ.Key() + elemTyp := typ.Elem() + needConvertKeys := !reflect.ValueOf("").Type().AssignableTo(keyTyp) + for item, f := o.self.enumerate(false, false)(); f != nil; item, f = f() { + var kv reflect.Value + var err error + if needConvertKeys { + kv, err = r.toReflectValue(newStringValue(item.name), keyTyp) + if err != nil { + return reflect.Value{}, fmt.Errorf("Could not convert map key %s to %v", item.name, typ) + } + } else { + kv = reflect.ValueOf(item.name) + } + + ival := item.value + if ival == nil { + ival = o.self.getStr(item.name) + } + if ival != nil { + vv, err := r.toReflectValue(ival, elemTyp) + if err != nil { + return reflect.Value{}, fmt.Errorf("Could not convert map value %v to %v at key %s", ival, typ, item.name) + } + m.SetMapIndex(kv, vv) + } else { + m.SetMapIndex(kv, reflect.Zero(elemTyp)) + } + } + return m, nil + } + case reflect.Struct: + if o, ok := v.(*Object); ok { + s := reflect.New(typ).Elem() + for i := 0; i < typ.NumField(); i++ { + field := typ.Field(i) + if ast.IsExported(field.Name) { + v := o.self.getStr(field.Name) + if v != nil { + vv, err := r.toReflectValue(v, field.Type) + if err != nil { + return reflect.Value{}, fmt.Errorf("Could not convert struct value %v to %v for field %s", v, field.Type, field.Name) + + } + s.Field(i).Set(vv) + } + } + } + return s, nil + } + case reflect.Func: + if fn, ok := AssertFunction(v); ok { + return reflect.MakeFunc(typ, r.wrapJSFunc(fn, typ)), nil + } + } + + return reflect.Value{}, fmt.Errorf("Could not convert %v to %v", v, typ) +} + +func (r *Runtime) wrapJSFunc(fn Callable, typ reflect.Type) func(args []reflect.Value) (results []reflect.Value) { + return func(args []reflect.Value) (results []reflect.Value) { + jsArgs := make([]Value, len(args)) + for i, arg := range args { + jsArgs[i] = r.ToValue(arg.Interface()) + } + + results = make([]reflect.Value, typ.NumOut()) + res, err := fn(_undefined, jsArgs...) + if err == nil { + if typ.NumOut() > 0 { + results[0], err = r.toReflectValue(res, typ.Out(0)) + } + } + + if err != nil { + if typ.NumOut() == 2 && typ.Out(1).Name() == "error" { + results[1] = reflect.ValueOf(err).Convert(typ.Out(1)) + } else { + panic(err) + } + } + + for i, v := range results { + if !v.IsValid() { + results[i] = reflect.Zero(typ.Out(i)) + } + } + + return + } +} + +// ExportTo converts a JavaScript value into the specified Go value. The second parameter must be a non-nil pointer. +// Returns error if conversion is not possible. +func (r *Runtime) ExportTo(v Value, target interface{}) error { + tval := reflect.ValueOf(target) + if tval.Kind() != reflect.Ptr || tval.IsNil() { + return errors.New("target must be a non-nil pointer") + } + vv, err := r.toReflectValue(v, tval.Elem().Type()) + if err != nil { + return err + } + tval.Elem().Set(vv) + return nil +} + +// GlobalObject returns the global object. +func (r *Runtime) GlobalObject() *Object { + return r.globalObject +} + +// Set the specified value as a property of the global object. +// The value is first converted using ToValue() +func (r *Runtime) Set(name string, value interface{}) { + r.globalObject.self.putStr(name, r.ToValue(value), false) +} + +// Get the specified property of the global object. +func (r *Runtime) Get(name string) Value { + return r.globalObject.self.getStr(name) +} + +// SetRandSource sets random source for this Runtime. If not called, the default math/rand is used. +func (r *Runtime) SetRandSource(source RandSource) { + r.rand = source +} + +func (r *Runtime) RegisterSimpleMapType(t reflect.Type, convert func(interface{}) map[string]interface{}) { + if r.simpleMapTypes == nil { + r.simpleMapTypes = map[reflect.Type]func(interface{}) map[string]interface{}{} + } + r.simpleMapTypes[t] = convert +} + +// Callable represents a JavaScript function that can be called from Go. +type Callable func(this Value, args ...Value) (Value, error) + +// AssertFunction checks if the Value is a function and returns a Callable. +func AssertFunction(v Value) (Callable, bool) { + if obj, ok := v.(*Object); ok { + if f, ok := obj.self.assertCallable(); ok { + return func(this Value, args ...Value) (ret Value, err error) { + defer func() { + if x := recover(); x != nil { + if ex, ok := x.(*InterruptedError); ok { + err = ex + } else { + panic(x) + } + } + }() + ex := obj.runtime.vm.try(func() { + ret = f(FunctionCall{ + This: this, + Arguments: args, + }) + }) + if ex != nil { + err = ex + } + obj.runtime.vm.clearStack() + return + }, true + } + } + return nil, false +} + +// IsUndefined returns true if the supplied Value is undefined. Note, it checks against the real undefined, not +// against the global object's 'undefined' property. +func IsUndefined(v Value) bool { + return v == _undefined +} + +// IsNull returns true if the supplied Value is null. +func IsNull(v Value) bool { + return v == _null +} + +// Undefined returns JS undefined value. Note if global 'undefined' property is changed this still returns the original value. +func Undefined() Value { + return _undefined +} + +// Null returns JS null value. +func Null() Value { + return _null +} + +func tryFunc(f func()) (err error) { + defer func() { + if x := recover(); x != nil { + switch x := x.(type) { + case *Exception: + err = x + case *InterruptedError: + err = x + case Value: + err = &Exception{ + val: x, + } + default: + panic(x) + } + } + }() + + f() + + return nil +} diff --git a/vendor/github.com/dop251/goja/srcfile.go b/vendor/github.com/dop251/goja/srcfile.go new file mode 100644 index 00000000000..47254637837 --- /dev/null +++ b/vendor/github.com/dop251/goja/srcfile.go @@ -0,0 +1,84 @@ +package goja + +import ( + "fmt" + "github.com/go-sourcemap/sourcemap" + "sort" + "strings" +) + +type Position struct { + Line, Col int +} + +type SrcFile struct { + name string + src string + + lineOffsets []int + lastScannedOffset int + sourceMap *sourcemap.Consumer +} + +func NewSrcFile(name, src string, sourceMap *sourcemap.Consumer) *SrcFile { + return &SrcFile{ + name: name, + src: src, + sourceMap: sourceMap, + } +} + +func (f *SrcFile) Position(offset int) Position { + var line int + if offset > f.lastScannedOffset { + line = f.scanTo(offset) + } else { + line = sort.Search(len(f.lineOffsets), func(x int) bool { return f.lineOffsets[x] > offset }) - 1 + } + + var lineStart int + if line >= 0 { + lineStart = f.lineOffsets[line] + } + + row := line + 2 + col := offset - lineStart + 1 + + if f.sourceMap != nil { + if _, _, row, col, ok := f.sourceMap.Source(row, col); ok { + return Position{ + Line: row, + Col: col, + } + } + } + + return Position{ + Line: row, + Col: col, + } +} + +func (f *SrcFile) scanTo(offset int) int { + o := f.lastScannedOffset + for o < offset { + p := strings.Index(f.src[o:], "\n") + if p == -1 { + f.lastScannedOffset = len(f.src) + return len(f.lineOffsets) - 1 + } + o = o + p + 1 + f.lineOffsets = append(f.lineOffsets, o) + } + f.lastScannedOffset = o + + if o == offset { + return len(f.lineOffsets) - 1 + } + + return len(f.lineOffsets) - 2 +} + +func (p Position) String() string { + return fmt.Sprintf("%d:%d", p.Line, p.Col) +} diff --git a/vendor/github.com/dop251/goja/string.go b/vendor/github.com/dop251/goja/string.go new file mode 100644 index 00000000000..c2504f45288 --- /dev/null +++ b/vendor/github.com/dop251/goja/string.go @@ -0,0 +1,226 @@ +package goja + +import ( + "io" + "strconv" + "unicode/utf16" + "unicode/utf8" +) + +var ( + stringTrue valueString = asciiString("true") + stringFalse valueString = asciiString("false") + stringNull valueString = asciiString("null") + stringUndefined valueString = asciiString("undefined") + stringObjectC valueString = asciiString("object") + stringFunction valueString = asciiString("function") + stringBoolean valueString = asciiString("boolean") + stringString valueString = asciiString("string") + stringNumber valueString = asciiString("number") + stringNaN valueString = asciiString("NaN") + stringInfinity = asciiString("Infinity") + stringPlusInfinity = asciiString("+Infinity") + stringNegInfinity = asciiString("-Infinity") + stringEmpty valueString = asciiString("") + string__proto__ valueString = asciiString("__proto__") + + stringError valueString = asciiString("Error") + stringTypeError valueString = asciiString("TypeError") + stringReferenceError valueString = asciiString("ReferenceError") + stringSyntaxError valueString = asciiString("SyntaxError") + stringRangeError valueString = asciiString("RangeError") + stringEvalError valueString = asciiString("EvalError") + stringURIError valueString = asciiString("URIError") + stringGoError valueString = asciiString("GoError") + + stringObjectNull valueString = asciiString("[object Null]") + stringObjectObject valueString = asciiString("[object Object]") + stringObjectUndefined valueString = asciiString("[object Undefined]") + stringGlobalObject valueString = asciiString("Global Object") + stringInvalidDate valueString = asciiString("Invalid Date") +) + +type valueString interface { + Value + charAt(int64) rune + length() int64 + concat(valueString) valueString + substring(start, end int64) valueString + compareTo(valueString) int + reader(start int) io.RuneReader + index(valueString, int64) int64 + lastIndex(valueString, int64) int64 + toLower() valueString + toUpper() valueString + toTrimmedUTF8() string +} + +type stringObject struct { + baseObject + value valueString + length int64 + lengthProp valueProperty +} + +func newUnicodeString(s string) valueString { + return unicodeString(utf16.Encode([]rune(s))) +} + +func newStringValue(s string) valueString { + for _, chr := range s { + if chr >= utf8.RuneSelf { + return newUnicodeString(s) + } + } + return asciiString(s) +} + +func (s *stringObject) init() { + s.baseObject.init() + s.setLength() +} + +func (s *stringObject) setLength() { + if s.value != nil { + s.length = s.value.length() + } + s.lengthProp.value = intToValue(s.length) + s._put("length", &s.lengthProp) +} + +func (s *stringObject) get(n Value) Value { + if idx := toIdx(n); idx >= 0 && idx < s.length { + return s.getIdx(idx) + } + return s.baseObject.get(n) +} + +func (s *stringObject) getStr(name string) Value { + if i := strToIdx(name); i >= 0 && i < s.length { + return s.getIdx(i) + } + return s.baseObject.getStr(name) +} + +func (s *stringObject) getPropStr(name string) Value { + if i := strToIdx(name); i >= 0 && i < s.length { + return s.getIdx(i) + } + return s.baseObject.getPropStr(name) +} + +func (s *stringObject) getProp(n Value) Value { + if i := toIdx(n); i >= 0 && i < s.length { + return s.getIdx(i) + } + return s.baseObject.getProp(n) +} + +func (s *stringObject) getOwnProp(name string) Value { + if i := strToIdx(name); i >= 0 && i < s.length { + val := s.getIdx(i) + return &valueProperty{ + value: val, + enumerable: true, + } + } + + return s.baseObject.getOwnProp(name) +} + +func (s *stringObject) getIdx(idx int64) Value { + return s.value.substring(idx, idx+1) +} + +func (s *stringObject) put(n Value, val Value, throw bool) { + if i := toIdx(n); i >= 0 && i < s.length { + s.val.runtime.typeErrorResult(throw, "Cannot assign to read only property '%d' of a String", i) + return + } + + s.baseObject.put(n, val, throw) +} + +func (s *stringObject) putStr(name string, val Value, throw bool) { + if i := strToIdx(name); i >= 0 && i < s.length { + s.val.runtime.typeErrorResult(throw, "Cannot assign to read only property '%d' of a String", i) + return + } + + s.baseObject.putStr(name, val, throw) +} + +func (s *stringObject) defineOwnProperty(n Value, descr propertyDescr, throw bool) bool { + if i := toIdx(n); i >= 0 && i < s.length { + s.val.runtime.typeErrorResult(throw, "Cannot redefine property: %d", i) + return false + } + + return s.baseObject.defineOwnProperty(n, descr, throw) +} + +type stringPropIter struct { + str valueString // separate, because obj can be the singleton + obj *stringObject + idx, length int64 + recursive bool +} + +func (i *stringPropIter) next() (propIterItem, iterNextFunc) { + if i.idx < i.length { + name := strconv.FormatInt(i.idx, 10) + i.idx++ + return propIterItem{name: name, enumerable: _ENUM_TRUE}, i.next + } + + return i.obj.baseObject._enumerate(i.recursive)() +} + +func (s *stringObject) _enumerate(recursive bool) iterNextFunc { + return (&stringPropIter{ + str: s.value, + obj: s, + length: s.length, + recursive: recursive, + }).next +} + +func (s *stringObject) enumerate(all, recursive bool) iterNextFunc { + return (&propFilterIter{ + wrapped: s._enumerate(recursive), + all: all, + seen: make(map[string]bool), + }).next +} + +func (s *stringObject) deleteStr(name string, throw bool) bool { + if i := strToIdx(name); i >= 0 && i < s.length { + s.val.runtime.typeErrorResult(throw, "Cannot delete property '%d' of a String", i) + return false + } + + return s.baseObject.deleteStr(name, throw) +} + +func (s *stringObject) delete(n Value, throw bool) bool { + if i := toIdx(n); i >= 0 && i < s.length { + s.val.runtime.typeErrorResult(throw, "Cannot delete property '%d' of a String", i) + return false + } + + return s.baseObject.delete(n, throw) +} + +func (s *stringObject) hasOwnProperty(n Value) bool { + if i := toIdx(n); i >= 0 && i < s.length { + return true + } + return s.baseObject.hasOwnProperty(n) +} + +func (s *stringObject) hasOwnPropertyStr(name string) bool { + if i := strToIdx(name); i >= 0 && i < s.length { + return true + } + return s.baseObject.hasOwnPropertyStr(name) +} diff --git a/vendor/github.com/dop251/goja/string_ascii.go b/vendor/github.com/dop251/goja/string_ascii.go new file mode 100644 index 00000000000..8fecf341b4c --- /dev/null +++ b/vendor/github.com/dop251/goja/string_ascii.go @@ -0,0 +1,313 @@ +package goja + +import ( + "fmt" + "io" + "math" + "reflect" + "strconv" + "strings" +) + +type asciiString string + +type asciiRuneReader struct { + s asciiString + pos int +} + +func (rr *asciiRuneReader) ReadRune() (r rune, size int, err error) { + if rr.pos < len(rr.s) { + r = rune(rr.s[rr.pos]) + size = 1 + rr.pos++ + } else { + err = io.EOF + } + return +} + +func (s asciiString) reader(start int) io.RuneReader { + return &asciiRuneReader{ + s: s[start:], + } +} + +// ss must be trimmed +func strToInt(ss string) (int64, error) { + if ss == "" { + return 0, nil + } + if ss == "-0" { + return 0, strconv.ErrSyntax + } + if len(ss) > 2 { + switch ss[:2] { + case "0x", "0X": + i, _ := strconv.ParseInt(ss[2:], 16, 64) + return i, nil + case "0b", "0B": + i, _ := strconv.ParseInt(ss[2:], 2, 64) + return i, nil + case "0o", "0O": + i, _ := strconv.ParseInt(ss[2:], 8, 64) + return i, nil + } + } + return strconv.ParseInt(ss, 10, 64) +} + +func (s asciiString) _toInt() (int64, error) { + return strToInt(strings.TrimSpace(string(s))) +} + +func isRangeErr(err error) bool { + if err, ok := err.(*strconv.NumError); ok { + return err.Err == strconv.ErrRange + } + return false +} + +func (s asciiString) _toFloat() (float64, error) { + ss := strings.TrimSpace(string(s)) + if ss == "" { + return 0, nil + } + if ss == "-0" { + var f float64 + return -f, nil + } + f, err := strconv.ParseFloat(ss, 64) + if isRangeErr(err) { + err = nil + } + return f, err +} + +func (s asciiString) ToInteger() int64 { + if s == "" { + return 0 + } + if s == "Infinity" || s == "+Infinity" { + return math.MaxInt64 + } + if s == "-Infinity" { + return math.MinInt64 + } + i, err := s._toInt() + if err != nil { + f, err := s._toFloat() + if err == nil { + return int64(f) + } + } + return i +} + +func (s asciiString) ToString() valueString { + return s +} + +func (s asciiString) String() string { + return string(s) +} + +func (s asciiString) ToFloat() float64 { + if s == "" { + return 0 + } + if s == "Infinity" || s == "+Infinity" { + return math.Inf(1) + } + if s == "-Infinity" { + return math.Inf(-1) + } + f, err := s._toFloat() + if err != nil { + i, err := s._toInt() + if err == nil { + return float64(i) + } + f = math.NaN() + } + return f +} + +func (s asciiString) ToBoolean() bool { + return s != "" +} + +func (s asciiString) ToNumber() Value { + if s == "" { + return intToValue(0) + } + if s == "Infinity" || s == "+Infinity" { + return _positiveInf + } + if s == "-Infinity" { + return _negativeInf + } + + if i, err := s._toInt(); err == nil { + return intToValue(i) + } + + if f, err := s._toFloat(); err == nil { + return floatToValue(f) + } + + return _NaN +} + +func (s asciiString) ToObject(r *Runtime) *Object { + return r._newString(s) +} + +func (s asciiString) SameAs(other Value) bool { + if otherStr, ok := other.(asciiString); ok { + return s == otherStr + } + return false +} + +func (s asciiString) Equals(other Value) bool { + if o, ok := other.(asciiString); ok { + return s == o + } + + if o, ok := other.assertInt(); ok { + if o1, e := s._toInt(); e == nil { + return o1 == o + } + return false + } + + if o, ok := other.assertFloat(); ok { + return s.ToFloat() == o + } + + if o, ok := other.(valueBool); ok { + if o1, e := s._toFloat(); e == nil { + return o1 == o.ToFloat() + } + return false + } + + if o, ok := other.(*Object); ok { + return s.Equals(o.self.toPrimitive()) + } + return false +} + +func (s asciiString) StrictEquals(other Value) bool { + if otherStr, ok := other.(asciiString); ok { + return s == otherStr + } + return false +} + +func (s asciiString) assertInt() (int64, bool) { + return 0, false +} + +func (s asciiString) assertFloat() (float64, bool) { + return 0, false +} + +func (s asciiString) assertString() (valueString, bool) { + return s, true +} + +func (s asciiString) baseObject(r *Runtime) *Object { + ss := r.stringSingleton + ss.value = s + ss.setLength() + return ss.val +} + +func (s asciiString) charAt(idx int64) rune { + return rune(s[idx]) +} + +func (s asciiString) length() int64 { + return int64(len(s)) +} + +func (s asciiString) concat(other valueString) valueString { + switch other := other.(type) { + case asciiString: + b := make([]byte, len(s)+len(other)) + copy(b, s) + copy(b[len(s):], other) + return asciiString(b) + //return asciiString(string(s) + string(other)) + case unicodeString: + b := make([]uint16, len(s)+len(other)) + for i := 0; i < len(s); i++ { + b[i] = uint16(s[i]) + } + copy(b[len(s):], other) + return unicodeString(b) + default: + panic(fmt.Errorf("Unknown string type: %T", other)) + } +} + +func (s asciiString) substring(start, end int64) valueString { + return asciiString(s[start:end]) +} + +func (s asciiString) compareTo(other valueString) int { + switch other := other.(type) { + case asciiString: + return strings.Compare(string(s), string(other)) + case unicodeString: + return strings.Compare(string(s), other.String()) + default: + panic(fmt.Errorf("Unknown string type: %T", other)) + } +} + +func (s asciiString) index(substr valueString, start int64) int64 { + if substr, ok := substr.(asciiString); ok { + p := int64(strings.Index(string(s[start:]), string(substr))) + if p >= 0 { + return p + start + } + } + return -1 +} + +func (s asciiString) lastIndex(substr valueString, pos int64) int64 { + if substr, ok := substr.(asciiString); ok { + end := pos + int64(len(substr)) + var ss string + if end > int64(len(s)) { + ss = string(s) + } else { + ss = string(s[:end]) + } + return int64(strings.LastIndex(ss, string(substr))) + } + return -1 +} + +func (s asciiString) toLower() valueString { + return asciiString(strings.ToLower(string(s))) +} + +func (s asciiString) toUpper() valueString { + return asciiString(strings.ToUpper(string(s))) +} + +func (s asciiString) toTrimmedUTF8() string { + return strings.TrimSpace(string(s)) +} + +func (s asciiString) Export() interface{} { + return string(s) +} + +func (s asciiString) ExportType() reflect.Type { + return reflectTypeString +} diff --git a/vendor/github.com/dop251/goja/string_unicode.go b/vendor/github.com/dop251/goja/string_unicode.go new file mode 100644 index 00000000000..48903bab343 --- /dev/null +++ b/vendor/github.com/dop251/goja/string_unicode.go @@ -0,0 +1,319 @@ +package goja + +import ( + "errors" + "fmt" + "github.com/dop251/goja/parser" + "golang.org/x/text/cases" + "golang.org/x/text/language" + "io" + "math" + "reflect" + "regexp" + "strings" + "unicode/utf16" + "unicode/utf8" +) + +type unicodeString []uint16 + +type unicodeRuneReader struct { + s unicodeString + pos int +} + +type runeReaderReplace struct { + wrapped io.RuneReader +} + +var ( + InvalidRuneError = errors.New("Invalid rune") +) + +var ( + unicodeTrimRegexp = regexp.MustCompile("^[" + parser.WhitespaceChars + "]*(.*?)[" + parser.WhitespaceChars + "]*$") +) + +func (rr runeReaderReplace) ReadRune() (r rune, size int, err error) { + r, size, err = rr.wrapped.ReadRune() + if err == InvalidRuneError { + err = nil + r = utf8.RuneError + } + return +} + +func (rr *unicodeRuneReader) ReadRune() (r rune, size int, err error) { + if rr.pos < len(rr.s) { + r = rune(rr.s[rr.pos]) + if r != utf8.RuneError { + if utf16.IsSurrogate(r) { + if rr.pos+1 < len(rr.s) { + r1 := utf16.DecodeRune(r, rune(rr.s[rr.pos+1])) + size++ + rr.pos++ + if r1 == utf8.RuneError { + err = InvalidRuneError + } else { + r = r1 + } + } else { + err = InvalidRuneError + } + } + } + size++ + rr.pos++ + } else { + err = io.EOF + } + return +} + +func (s unicodeString) reader(start int) io.RuneReader { + return &unicodeRuneReader{ + s: s[start:], + } +} + +func (s unicodeString) ToInteger() int64 { + return 0 +} + +func (s unicodeString) ToString() valueString { + return s +} + +func (s unicodeString) ToFloat() float64 { + return math.NaN() +} + +func (s unicodeString) ToBoolean() bool { + return len(s) > 0 +} + +func (s unicodeString) toTrimmedUTF8() string { + if len(s) == 0 { + return "" + } + return unicodeTrimRegexp.FindStringSubmatch(s.String())[1] +} + +func (s unicodeString) ToNumber() Value { + return asciiString(s.toTrimmedUTF8()).ToNumber() +} + +func (s unicodeString) ToObject(r *Runtime) *Object { + return r._newString(s) +} + +func (s unicodeString) equals(other unicodeString) bool { + if len(s) != len(other) { + return false + } + for i, r := range s { + if r != other[i] { + return false + } + } + return true +} + +func (s unicodeString) SameAs(other Value) bool { + if otherStr, ok := other.(unicodeString); ok { + return s.equals(otherStr) + } + + return false +} + +func (s unicodeString) Equals(other Value) bool { + if s.SameAs(other) { + return true + } + + if _, ok := other.assertInt(); ok { + return false + } + + if _, ok := other.assertFloat(); ok { + return false + } + + if _, ok := other.(valueBool); ok { + return false + } + + if o, ok := other.(*Object); ok { + return s.Equals(o.self.toPrimitive()) + } + return false +} + +func (s unicodeString) StrictEquals(other Value) bool { + return s.SameAs(other) +} + +func (s unicodeString) assertInt() (int64, bool) { + return 0, false +} + +func (s unicodeString) assertFloat() (float64, bool) { + return 0, false +} + +func (s unicodeString) assertString() (valueString, bool) { + return s, true +} + +func (s unicodeString) baseObject(r *Runtime) *Object { + ss := r.stringSingleton + ss.value = s + ss.setLength() + return ss.val +} + +func (s unicodeString) charAt(idx int64) rune { + return rune(s[idx]) +} + +func (s unicodeString) length() int64 { + return int64(len(s)) +} + +func (s unicodeString) concat(other valueString) valueString { + switch other := other.(type) { + case unicodeString: + return unicodeString(append(s, other...)) + case asciiString: + b := make([]uint16, len(s)+len(other)) + copy(b, s) + b1 := b[len(s):] + for i := 0; i < len(other); i++ { + b1[i] = uint16(other[i]) + } + return unicodeString(b) + default: + panic(fmt.Errorf("Unknown string type: %T", other)) + } +} + +func (s unicodeString) substring(start, end int64) valueString { + ss := s[start:end] + for _, c := range ss { + if c >= utf8.RuneSelf { + return unicodeString(ss) + } + } + as := make([]byte, end-start) + for i, c := range ss { + as[i] = byte(c) + } + return asciiString(as) +} + +func (s unicodeString) String() string { + return string(utf16.Decode(s)) +} + +func (s unicodeString) compareTo(other valueString) int { + return strings.Compare(s.String(), other.String()) +} + +func (s unicodeString) index(substr valueString, start int64) int64 { + var ss []uint16 + switch substr := substr.(type) { + case unicodeString: + ss = substr + case asciiString: + ss = make([]uint16, len(substr)) + for i := 0; i < len(substr); i++ { + ss[i] = uint16(substr[i]) + } + default: + panic(fmt.Errorf("Unknown string type: %T", substr)) + } + + // TODO: optimise + end := int64(len(s) - len(ss)) + for start <= end { + for i := int64(0); i < int64(len(ss)); i++ { + if s[start+i] != ss[i] { + goto nomatch + } + } + + return start + nomatch: + start++ + } + return -1 +} + +func (s unicodeString) lastIndex(substr valueString, start int64) int64 { + var ss []uint16 + switch substr := substr.(type) { + case unicodeString: + ss = substr + case asciiString: + ss = make([]uint16, len(substr)) + for i := 0; i < len(substr); i++ { + ss[i] = uint16(substr[i]) + } + default: + panic(fmt.Errorf("Unknown string type: %T", substr)) + } + + if maxStart := int64(len(s) - len(ss)); start > maxStart { + start = maxStart + } + // TODO: optimise + for start >= 0 { + for i := int64(0); i < int64(len(ss)); i++ { + if s[start+i] != ss[i] { + goto nomatch + } + } + + return start + nomatch: + start-- + } + return -1 +} + +func (s unicodeString) toLower() valueString { + caser := cases.Lower(language.Und) + r := []rune(caser.String(s.String())) + // Workaround + ascii := true + for i := 0; i < len(r)-1; i++ { + if (i == 0 || r[i-1] != 0x3b1) && r[i] == 0x345 && r[i+1] == 0x3c2 { + i++ + r[i] = 0x3c3 + } + if r[i] >= utf8.RuneSelf { + ascii = false + } + } + if ascii { + ascii = r[len(r)-1] < utf8.RuneSelf + } + if ascii { + return asciiString(r) + } + return unicodeString(utf16.Encode(r)) +} + +func (s unicodeString) toUpper() valueString { + caser := cases.Upper(language.Und) + return newStringValue(caser.String(s.String())) +} + +func (s unicodeString) Export() interface{} { + return s.String() +} + +func (s unicodeString) ExportType() reflect.Type { + return reflectTypeString +} diff --git a/vendor/github.com/dop251/goja/token/Makefile b/vendor/github.com/dop251/goja/token/Makefile new file mode 100644 index 00000000000..1e85c73488d --- /dev/null +++ b/vendor/github.com/dop251/goja/token/Makefile @@ -0,0 +1,2 @@ +token_const.go: tokenfmt + ./$^ | gofmt > $@ diff --git a/vendor/github.com/dop251/goja/token/README.markdown b/vendor/github.com/dop251/goja/token/README.markdown new file mode 100644 index 00000000000..ff3b1610403 --- /dev/null +++ b/vendor/github.com/dop251/goja/token/README.markdown @@ -0,0 +1,171 @@ +# token +-- + import "github.com/robertkrimen/otto/token" + +Package token defines constants representing the lexical tokens of JavaScript +(ECMA5). + +## Usage + +```go +const ( + ILLEGAL + EOF + COMMENT + KEYWORD + + STRING + BOOLEAN + NULL + NUMBER + IDENTIFIER + + PLUS // + + MINUS // - + MULTIPLY // * + SLASH // / + REMAINDER // % + + AND // & + OR // | + EXCLUSIVE_OR // ^ + SHIFT_LEFT // << + SHIFT_RIGHT // >> + UNSIGNED_SHIFT_RIGHT // >>> + AND_NOT // &^ + + ADD_ASSIGN // += + SUBTRACT_ASSIGN // -= + MULTIPLY_ASSIGN // *= + QUOTIENT_ASSIGN // /= + REMAINDER_ASSIGN // %= + + AND_ASSIGN // &= + OR_ASSIGN // |= + EXCLUSIVE_OR_ASSIGN // ^= + SHIFT_LEFT_ASSIGN // <<= + SHIFT_RIGHT_ASSIGN // >>= + UNSIGNED_SHIFT_RIGHT_ASSIGN // >>>= + AND_NOT_ASSIGN // &^= + + LOGICAL_AND // && + LOGICAL_OR // || + INCREMENT // ++ + DECREMENT // -- + + EQUAL // == + STRICT_EQUAL // === + LESS // < + GREATER // > + ASSIGN // = + NOT // ! + + BITWISE_NOT // ~ + + NOT_EQUAL // != + STRICT_NOT_EQUAL // !== + LESS_OR_EQUAL // <= + GREATER_OR_EQUAL // >= + + LEFT_PARENTHESIS // ( + LEFT_BRACKET // [ + LEFT_BRACE // { + COMMA // , + PERIOD // . + + RIGHT_PARENTHESIS // ) + RIGHT_BRACKET // ] + RIGHT_BRACE // } + SEMICOLON // ; + COLON // : + QUESTION_MARK // ? + + IF + IN + DO + + VAR + FOR + NEW + TRY + + THIS + ELSE + CASE + VOID + WITH + + WHILE + BREAK + CATCH + THROW + + RETURN + TYPEOF + DELETE + SWITCH + + DEFAULT + FINALLY + + FUNCTION + CONTINUE + DEBUGGER + + INSTANCEOF +) +``` + +#### type Token + +```go +type Token int +``` + +Token is the set of lexical tokens in JavaScript (ECMA5). + +#### func IsKeyword + +```go +func IsKeyword(literal string) (Token, bool) +``` +IsKeyword returns the keyword token if literal is a keyword, a KEYWORD token if +the literal is a future keyword (const, let, class, super, ...), or 0 if the +literal is not a keyword. + +If the literal is a keyword, IsKeyword returns a second value indicating if the +literal is considered a future keyword in strict-mode only. + +7.6.1.2 Future Reserved Words: + + const + class + enum + export + extends + import + super + +7.6.1.2 Future Reserved Words (strict): + + implements + interface + let + package + private + protected + public + static + +#### func (Token) String + +```go +func (tkn Token) String() string +``` +String returns the string corresponding to the token. For operators, delimiters, +and keywords the string is the actual token string (e.g., for the token PLUS, +the String() is "+"). For all other tokens the string corresponds to the token +name (e.g. for the token IDENTIFIER, the string is "IDENTIFIER"). + +-- +**godocdown** http://github.com/robertkrimen/godocdown diff --git a/vendor/github.com/dop251/goja/token/token.go b/vendor/github.com/dop251/goja/token/token.go new file mode 100644 index 00000000000..0e941ac96de --- /dev/null +++ b/vendor/github.com/dop251/goja/token/token.go @@ -0,0 +1,116 @@ +// Package token defines constants representing the lexical tokens of JavaScript (ECMA5). +package token + +import ( + "strconv" +) + +// Token is the set of lexical tokens in JavaScript (ECMA5). +type Token int + +// String returns the string corresponding to the token. +// For operators, delimiters, and keywords the string is the actual +// token string (e.g., for the token PLUS, the String() is +// "+"). For all other tokens the string corresponds to the token +// name (e.g. for the token IDENTIFIER, the string is "IDENTIFIER"). +// +func (tkn Token) String() string { + if 0 == tkn { + return "UNKNOWN" + } + if tkn < Token(len(token2string)) { + return token2string[tkn] + } + return "token(" + strconv.Itoa(int(tkn)) + ")" +} + +// This is not used for anything +func (tkn Token) precedence(in bool) int { + + switch tkn { + case LOGICAL_OR: + return 1 + + case LOGICAL_AND: + return 2 + + case OR, OR_ASSIGN: + return 3 + + case EXCLUSIVE_OR: + return 4 + + case AND, AND_ASSIGN, AND_NOT, AND_NOT_ASSIGN: + return 5 + + case EQUAL, + NOT_EQUAL, + STRICT_EQUAL, + STRICT_NOT_EQUAL: + return 6 + + case LESS, GREATER, LESS_OR_EQUAL, GREATER_OR_EQUAL, INSTANCEOF: + return 7 + + case IN: + if in { + return 7 + } + return 0 + + case SHIFT_LEFT, SHIFT_RIGHT, UNSIGNED_SHIFT_RIGHT: + fallthrough + case SHIFT_LEFT_ASSIGN, SHIFT_RIGHT_ASSIGN, UNSIGNED_SHIFT_RIGHT_ASSIGN: + return 8 + + case PLUS, MINUS, ADD_ASSIGN, SUBTRACT_ASSIGN: + return 9 + + case MULTIPLY, SLASH, REMAINDER, MULTIPLY_ASSIGN, QUOTIENT_ASSIGN, REMAINDER_ASSIGN: + return 11 + } + return 0 +} + +type _keyword struct { + token Token + futureKeyword bool + strict bool +} + +// IsKeyword returns the keyword token if literal is a keyword, a KEYWORD token +// if the literal is a future keyword (const, let, class, super, ...), or 0 if the literal is not a keyword. +// +// If the literal is a keyword, IsKeyword returns a second value indicating if the literal +// is considered a future keyword in strict-mode only. +// +// 7.6.1.2 Future Reserved Words: +// +// const +// class +// enum +// export +// extends +// import +// super +// +// 7.6.1.2 Future Reserved Words (strict): +// +// implements +// interface +// let +// package +// private +// protected +// public +// static +// +func IsKeyword(literal string) (Token, bool) { + if keyword, exists := keywordTable[literal]; exists { + if keyword.futureKeyword { + return KEYWORD, keyword.strict + } + return keyword.token, false + } + return 0, false +} diff --git a/vendor/github.com/dop251/goja/token/token_const.go b/vendor/github.com/dop251/goja/token/token_const.go new file mode 100644 index 00000000000..b1d83c6de9b --- /dev/null +++ b/vendor/github.com/dop251/goja/token/token_const.go @@ -0,0 +1,349 @@ +package token + +const ( + _ Token = iota + + ILLEGAL + EOF + COMMENT + KEYWORD + + STRING + BOOLEAN + NULL + NUMBER + IDENTIFIER + + PLUS // + + MINUS // - + MULTIPLY // * + SLASH // / + REMAINDER // % + + AND // & + OR // | + EXCLUSIVE_OR // ^ + SHIFT_LEFT // << + SHIFT_RIGHT // >> + UNSIGNED_SHIFT_RIGHT // >>> + AND_NOT // &^ + + ADD_ASSIGN // += + SUBTRACT_ASSIGN // -= + MULTIPLY_ASSIGN // *= + QUOTIENT_ASSIGN // /= + REMAINDER_ASSIGN // %= + + AND_ASSIGN // &= + OR_ASSIGN // |= + EXCLUSIVE_OR_ASSIGN // ^= + SHIFT_LEFT_ASSIGN // <<= + SHIFT_RIGHT_ASSIGN // >>= + UNSIGNED_SHIFT_RIGHT_ASSIGN // >>>= + AND_NOT_ASSIGN // &^= + + LOGICAL_AND // && + LOGICAL_OR // || + INCREMENT // ++ + DECREMENT // -- + + EQUAL // == + STRICT_EQUAL // === + LESS // < + GREATER // > + ASSIGN // = + NOT // ! + + BITWISE_NOT // ~ + + NOT_EQUAL // != + STRICT_NOT_EQUAL // !== + LESS_OR_EQUAL // <= + GREATER_OR_EQUAL // >= + + LEFT_PARENTHESIS // ( + LEFT_BRACKET // [ + LEFT_BRACE // { + COMMA // , + PERIOD // . + + RIGHT_PARENTHESIS // ) + RIGHT_BRACKET // ] + RIGHT_BRACE // } + SEMICOLON // ; + COLON // : + QUESTION_MARK // ? + + firstKeyword + IF + IN + DO + + VAR + FOR + NEW + TRY + + THIS + ELSE + CASE + VOID + WITH + + WHILE + BREAK + CATCH + THROW + + RETURN + TYPEOF + DELETE + SWITCH + + DEFAULT + FINALLY + + FUNCTION + CONTINUE + DEBUGGER + + INSTANCEOF + lastKeyword +) + +var token2string = [...]string{ + ILLEGAL: "ILLEGAL", + EOF: "EOF", + COMMENT: "COMMENT", + KEYWORD: "KEYWORD", + STRING: "STRING", + BOOLEAN: "BOOLEAN", + NULL: "NULL", + NUMBER: "NUMBER", + IDENTIFIER: "IDENTIFIER", + PLUS: "+", + MINUS: "-", + MULTIPLY: "*", + SLASH: "/", + REMAINDER: "%", + AND: "&", + OR: "|", + EXCLUSIVE_OR: "^", + SHIFT_LEFT: "<<", + SHIFT_RIGHT: ">>", + UNSIGNED_SHIFT_RIGHT: ">>>", + AND_NOT: "&^", + ADD_ASSIGN: "+=", + SUBTRACT_ASSIGN: "-=", + MULTIPLY_ASSIGN: "*=", + QUOTIENT_ASSIGN: "/=", + REMAINDER_ASSIGN: "%=", + AND_ASSIGN: "&=", + OR_ASSIGN: "|=", + EXCLUSIVE_OR_ASSIGN: "^=", + SHIFT_LEFT_ASSIGN: "<<=", + SHIFT_RIGHT_ASSIGN: ">>=", + UNSIGNED_SHIFT_RIGHT_ASSIGN: ">>>=", + AND_NOT_ASSIGN: "&^=", + LOGICAL_AND: "&&", + LOGICAL_OR: "||", + INCREMENT: "++", + DECREMENT: "--", + EQUAL: "==", + STRICT_EQUAL: "===", + LESS: "<", + GREATER: ">", + ASSIGN: "=", + NOT: "!", + BITWISE_NOT: "~", + NOT_EQUAL: "!=", + STRICT_NOT_EQUAL: "!==", + LESS_OR_EQUAL: "<=", + GREATER_OR_EQUAL: ">=", + LEFT_PARENTHESIS: "(", + LEFT_BRACKET: "[", + LEFT_BRACE: "{", + COMMA: ",", + PERIOD: ".", + RIGHT_PARENTHESIS: ")", + RIGHT_BRACKET: "]", + RIGHT_BRACE: "}", + SEMICOLON: ";", + COLON: ":", + QUESTION_MARK: "?", + IF: "if", + IN: "in", + DO: "do", + VAR: "var", + FOR: "for", + NEW: "new", + TRY: "try", + THIS: "this", + ELSE: "else", + CASE: "case", + VOID: "void", + WITH: "with", + WHILE: "while", + BREAK: "break", + CATCH: "catch", + THROW: "throw", + RETURN: "return", + TYPEOF: "typeof", + DELETE: "delete", + SWITCH: "switch", + DEFAULT: "default", + FINALLY: "finally", + FUNCTION: "function", + CONTINUE: "continue", + DEBUGGER: "debugger", + INSTANCEOF: "instanceof", +} + +var keywordTable = map[string]_keyword{ + "if": _keyword{ + token: IF, + }, + "in": _keyword{ + token: IN, + }, + "do": _keyword{ + token: DO, + }, + "var": _keyword{ + token: VAR, + }, + "for": _keyword{ + token: FOR, + }, + "new": _keyword{ + token: NEW, + }, + "try": _keyword{ + token: TRY, + }, + "this": _keyword{ + token: THIS, + }, + "else": _keyword{ + token: ELSE, + }, + "case": _keyword{ + token: CASE, + }, + "void": _keyword{ + token: VOID, + }, + "with": _keyword{ + token: WITH, + }, + "while": _keyword{ + token: WHILE, + }, + "break": _keyword{ + token: BREAK, + }, + "catch": _keyword{ + token: CATCH, + }, + "throw": _keyword{ + token: THROW, + }, + "return": _keyword{ + token: RETURN, + }, + "typeof": _keyword{ + token: TYPEOF, + }, + "delete": _keyword{ + token: DELETE, + }, + "switch": _keyword{ + token: SWITCH, + }, + "default": _keyword{ + token: DEFAULT, + }, + "finally": _keyword{ + token: FINALLY, + }, + "function": _keyword{ + token: FUNCTION, + }, + "continue": _keyword{ + token: CONTINUE, + }, + "debugger": _keyword{ + token: DEBUGGER, + }, + "instanceof": _keyword{ + token: INSTANCEOF, + }, + "const": _keyword{ + token: KEYWORD, + futureKeyword: true, + }, + "class": _keyword{ + token: KEYWORD, + futureKeyword: true, + }, + "enum": _keyword{ + token: KEYWORD, + futureKeyword: true, + }, + "export": _keyword{ + token: KEYWORD, + futureKeyword: true, + }, + "extends": _keyword{ + token: KEYWORD, + futureKeyword: true, + }, + "import": _keyword{ + token: KEYWORD, + futureKeyword: true, + }, + "super": _keyword{ + token: KEYWORD, + futureKeyword: true, + }, + "implements": _keyword{ + token: KEYWORD, + futureKeyword: true, + strict: true, + }, + "interface": _keyword{ + token: KEYWORD, + futureKeyword: true, + strict: true, + }, + "let": _keyword{ + token: KEYWORD, + futureKeyword: true, + strict: true, + }, + "package": _keyword{ + token: KEYWORD, + futureKeyword: true, + strict: true, + }, + "private": _keyword{ + token: KEYWORD, + futureKeyword: true, + strict: true, + }, + "protected": _keyword{ + token: KEYWORD, + futureKeyword: true, + strict: true, + }, + "public": _keyword{ + token: KEYWORD, + futureKeyword: true, + strict: true, + }, + "static": _keyword{ + token: KEYWORD, + futureKeyword: true, + strict: true, + }, +} diff --git a/vendor/github.com/dop251/goja/token/tokenfmt b/vendor/github.com/dop251/goja/token/tokenfmt new file mode 100755 index 00000000000..63dd5d9e6d1 --- /dev/null +++ b/vendor/github.com/dop251/goja/token/tokenfmt @@ -0,0 +1,222 @@ +#!/usr/bin/env perl + +use strict; +use warnings; + +my (%token, @order, @keywords); + +{ + my $keywords; + my @const; + push @const, <<_END_; +package token + +const( + _ Token = iota +_END_ + + for (split m/\n/, <<_END_) { +ILLEGAL +EOF +COMMENT +KEYWORD + +STRING +BOOLEAN +NULL +NUMBER +IDENTIFIER + +PLUS + +MINUS - +MULTIPLY * +SLASH / +REMAINDER % + +AND & +OR | +EXCLUSIVE_OR ^ +SHIFT_LEFT << +SHIFT_RIGHT >> +UNSIGNED_SHIFT_RIGHT >>> +AND_NOT &^ + +ADD_ASSIGN += +SUBTRACT_ASSIGN -= +MULTIPLY_ASSIGN *= +QUOTIENT_ASSIGN /= +REMAINDER_ASSIGN %= + +AND_ASSIGN &= +OR_ASSIGN |= +EXCLUSIVE_OR_ASSIGN ^= +SHIFT_LEFT_ASSIGN <<= +SHIFT_RIGHT_ASSIGN >>= +UNSIGNED_SHIFT_RIGHT_ASSIGN >>>= +AND_NOT_ASSIGN &^= + +LOGICAL_AND && +LOGICAL_OR || +INCREMENT ++ +DECREMENT -- + +EQUAL == +STRICT_EQUAL === +LESS < +GREATER > +ASSIGN = +NOT ! + +BITWISE_NOT ~ + +NOT_EQUAL != +STRICT_NOT_EQUAL !== +LESS_OR_EQUAL <= +GREATER_OR_EQUAL <= + +LEFT_PARENTHESIS ( +LEFT_BRACKET [ +LEFT_BRACE { +COMMA , +PERIOD . + +RIGHT_PARENTHESIS ) +RIGHT_BRACKET ] +RIGHT_BRACE } +SEMICOLON ; +COLON : +QUESTION_MARK ? + +firstKeyword +IF +IN +DO + +VAR +FOR +NEW +TRY + +THIS +ELSE +CASE +VOID +WITH + +WHILE +BREAK +CATCH +THROW + +RETURN +TYPEOF +DELETE +SWITCH + +DEFAULT +FINALLY + +FUNCTION +CONTINUE +DEBUGGER + +INSTANCEOF +lastKeyword +_END_ + chomp; + + next if m/^\s*#/; + + my ($name, $symbol) = m/(\w+)\s*(\S+)?/; + + if (defined $symbol) { + push @order, $name; + push @const, "$name // $symbol"; + $token{$name} = $symbol; + } elsif (defined $name) { + $keywords ||= $name eq 'firstKeyword'; + + push @const, $name; + #$const[-1] .= " Token = iota" if 2 == @const; + if ($name =~ m/^([A-Z]+)/) { + push @keywords, $name if $keywords; + push @order, $name; + if ($token{SEMICOLON}) { + $token{$name} = lc $1; + } else { + $token{$name} = $name; + } + } + } else { + push @const, ""; + } + + } + push @const, ")"; + print join "\n", @const, ""; +} + +{ + print <<_END_; + +var token2string = [...]string{ +_END_ + for my $name (@order) { + print "$name: \"$token{$name}\",\n"; + } + print <<_END_; +} +_END_ + + print <<_END_; + +var keywordTable = map[string]_keyword{ +_END_ + for my $name (@keywords) { + print <<_END_ + "@{[ lc $name ]}": _keyword{ + token: $name, + }, +_END_ + } + + for my $name (qw/ + const + class + enum + export + extends + import + super + /) { + print <<_END_ + "$name": _keyword{ + token: KEYWORD, + futureKeyword: true, + }, +_END_ + } + + for my $name (qw/ + implements + interface + let + package + private + protected + public + static + /) { + print <<_END_ + "$name": _keyword{ + token: KEYWORD, + futureKeyword: true, + strict: true, + }, +_END_ + } + + print <<_END_; +} +_END_ +} diff --git a/vendor/github.com/dop251/goja/value.go b/vendor/github.com/dop251/goja/value.go new file mode 100644 index 00000000000..6a9407fd7f8 --- /dev/null +++ b/vendor/github.com/dop251/goja/value.go @@ -0,0 +1,857 @@ +package goja + +import ( + "math" + "reflect" + "regexp" + "strconv" +) + +var ( + valueFalse Value = valueBool(false) + valueTrue Value = valueBool(true) + _null Value = valueNull{} + _NaN Value = valueFloat(math.NaN()) + _positiveInf Value = valueFloat(math.Inf(+1)) + _negativeInf Value = valueFloat(math.Inf(-1)) + _positiveZero Value + _negativeZero Value = valueFloat(math.Float64frombits(0 | (1 << 63))) + _epsilon = valueFloat(2.2204460492503130808472633361816e-16) + _undefined Value = valueUndefined{} +) + +var ( + reflectTypeInt = reflect.TypeOf(int64(0)) + reflectTypeBool = reflect.TypeOf(false) + reflectTypeNil = reflect.TypeOf(nil) + reflectTypeFloat = reflect.TypeOf(float64(0)) + reflectTypeMap = reflect.TypeOf(map[string]interface{}{}) + reflectTypeArray = reflect.TypeOf([]interface{}{}) + reflectTypeString = reflect.TypeOf("") +) + +var intCache [256]Value + +type Value interface { + ToInteger() int64 + ToString() valueString + String() string + ToFloat() float64 + ToNumber() Value + ToBoolean() bool + ToObject(*Runtime) *Object + SameAs(Value) bool + Equals(Value) bool + StrictEquals(Value) bool + Export() interface{} + ExportType() reflect.Type + + assertInt() (int64, bool) + assertString() (valueString, bool) + assertFloat() (float64, bool) + + baseObject(r *Runtime) *Object +} + +type valueInt int64 +type valueFloat float64 +type valueBool bool +type valueNull struct{} +type valueUndefined struct { + valueNull +} + +type valueUnresolved struct { + r *Runtime + ref string +} + +type memberUnresolved struct { + valueUnresolved +} + +type valueProperty struct { + value Value + writable bool + configurable bool + enumerable bool + accessor bool + getterFunc *Object + setterFunc *Object +} + +func propGetter(o Value, v Value, r *Runtime) *Object { + if v == _undefined { + return nil + } + if obj, ok := v.(*Object); ok { + if _, ok := obj.self.assertCallable(); ok { + return obj + } + } + r.typeErrorResult(true, "Getter must be a function: %s", v.ToString()) + return nil +} + +func propSetter(o Value, v Value, r *Runtime) *Object { + if v == _undefined { + return nil + } + if obj, ok := v.(*Object); ok { + if _, ok := obj.self.assertCallable(); ok { + return obj + } + } + r.typeErrorResult(true, "Setter must be a function: %s", v.ToString()) + return nil +} + +func (i valueInt) ToInteger() int64 { + return int64(i) +} + +func (i valueInt) ToString() valueString { + return asciiString(i.String()) +} + +func (i valueInt) String() string { + return strconv.FormatInt(int64(i), 10) +} + +func (i valueInt) ToFloat() float64 { + return float64(int64(i)) +} + +func (i valueInt) ToBoolean() bool { + return i != 0 +} + +func (i valueInt) ToObject(r *Runtime) *Object { + return r.newPrimitiveObject(i, r.global.NumberPrototype, classNumber) +} + +func (i valueInt) ToNumber() Value { + return i +} + +func (i valueInt) SameAs(other Value) bool { + if otherInt, ok := other.assertInt(); ok { + return int64(i) == otherInt + } + return false +} + +func (i valueInt) Equals(other Value) bool { + if o, ok := other.assertInt(); ok { + return int64(i) == o + } + if o, ok := other.assertFloat(); ok { + return float64(i) == o + } + if o, ok := other.assertString(); ok { + return o.ToNumber().Equals(i) + } + if o, ok := other.(valueBool); ok { + return int64(i) == o.ToInteger() + } + if o, ok := other.(*Object); ok { + return i.Equals(o.self.toPrimitiveNumber()) + } + return false +} + +func (i valueInt) StrictEquals(other Value) bool { + if otherInt, ok := other.assertInt(); ok { + return int64(i) == otherInt + } else if otherFloat, ok := other.assertFloat(); ok { + return float64(i) == otherFloat + } + return false +} + +func (i valueInt) assertInt() (int64, bool) { + return int64(i), true +} + +func (i valueInt) assertFloat() (float64, bool) { + return 0, false +} + +func (i valueInt) assertString() (valueString, bool) { + return nil, false +} + +func (i valueInt) baseObject(r *Runtime) *Object { + return r.global.NumberPrototype +} + +func (i valueInt) Export() interface{} { + return int64(i) +} + +func (i valueInt) ExportType() reflect.Type { + return reflectTypeInt +} + +func (o valueBool) ToInteger() int64 { + if o { + return 1 + } + return 0 +} + +func (o valueBool) ToString() valueString { + if o { + return stringTrue + } + return stringFalse +} + +func (o valueBool) String() string { + if o { + return "true" + } + return "false" +} + +func (o valueBool) ToFloat() float64 { + if o { + return 1.0 + } + return 0 +} + +func (o valueBool) ToBoolean() bool { + return bool(o) +} + +func (o valueBool) ToObject(r *Runtime) *Object { + return r.newPrimitiveObject(o, r.global.BooleanPrototype, "Boolean") +} + +func (o valueBool) ToNumber() Value { + if o { + return valueInt(1) + } + return valueInt(0) +} + +func (o valueBool) SameAs(other Value) bool { + if other, ok := other.(valueBool); ok { + return o == other + } + return false +} + +func (b valueBool) Equals(other Value) bool { + if o, ok := other.(valueBool); ok { + return b == o + } + + if b { + return other.Equals(intToValue(1)) + } else { + return other.Equals(intToValue(0)) + } + +} + +func (o valueBool) StrictEquals(other Value) bool { + if other, ok := other.(valueBool); ok { + return o == other + } + return false +} + +func (o valueBool) assertInt() (int64, bool) { + return 0, false +} + +func (o valueBool) assertFloat() (float64, bool) { + return 0, false +} + +func (o valueBool) assertString() (valueString, bool) { + return nil, false +} + +func (o valueBool) baseObject(r *Runtime) *Object { + return r.global.BooleanPrototype +} + +func (o valueBool) Export() interface{} { + return bool(o) +} + +func (o valueBool) ExportType() reflect.Type { + return reflectTypeBool +} + +func (n valueNull) ToInteger() int64 { + return 0 +} + +func (n valueNull) ToString() valueString { + return stringNull +} + +func (n valueNull) String() string { + return "null" +} + +func (u valueUndefined) ToString() valueString { + return stringUndefined +} + +func (u valueUndefined) String() string { + return "undefined" +} + +func (u valueUndefined) ToNumber() Value { + return _NaN +} + +func (u valueUndefined) SameAs(other Value) bool { + _, same := other.(valueUndefined) + return same +} + +func (u valueUndefined) StrictEquals(other Value) bool { + _, same := other.(valueUndefined) + return same +} + +func (u valueUndefined) ToFloat() float64 { + return math.NaN() +} + +func (n valueNull) ToFloat() float64 { + return 0 +} + +func (n valueNull) ToBoolean() bool { + return false +} + +func (n valueNull) ToObject(r *Runtime) *Object { + r.typeErrorResult(true, "Cannot convert undefined or null to object") + return nil + //return r.newObject() +} + +func (n valueNull) ToNumber() Value { + return intToValue(0) +} + +func (n valueNull) SameAs(other Value) bool { + _, same := other.(valueNull) + return same +} + +func (n valueNull) Equals(other Value) bool { + switch other.(type) { + case valueUndefined, valueNull: + return true + } + return false +} + +func (n valueNull) StrictEquals(other Value) bool { + _, same := other.(valueNull) + return same +} + +func (n valueNull) assertInt() (int64, bool) { + return 0, false +} + +func (n valueNull) assertFloat() (float64, bool) { + return 0, false +} + +func (n valueNull) assertString() (valueString, bool) { + return nil, false +} + +func (n valueNull) baseObject(r *Runtime) *Object { + return nil +} + +func (n valueNull) Export() interface{} { + return nil +} + +func (n valueNull) ExportType() reflect.Type { + return reflectTypeNil +} + +func (p *valueProperty) ToInteger() int64 { + return 0 +} + +func (p *valueProperty) ToString() valueString { + return stringEmpty +} + +func (p *valueProperty) String() string { + return "" +} + +func (p *valueProperty) ToFloat() float64 { + return math.NaN() +} + +func (p *valueProperty) ToBoolean() bool { + return false +} + +func (p *valueProperty) ToObject(r *Runtime) *Object { + return nil +} + +func (p *valueProperty) ToNumber() Value { + return nil +} + +func (p *valueProperty) assertInt() (int64, bool) { + return 0, false +} + +func (p *valueProperty) assertFloat() (float64, bool) { + return 0, false +} + +func (p *valueProperty) assertString() (valueString, bool) { + return nil, false +} + +func (p *valueProperty) isWritable() bool { + return p.writable || p.setterFunc != nil +} + +func (p *valueProperty) get(this Value) Value { + if p.getterFunc == nil { + if p.value != nil { + return p.value + } + return _undefined + } + call, _ := p.getterFunc.self.assertCallable() + return call(FunctionCall{ + This: this, + }) +} + +func (p *valueProperty) set(this, v Value) { + if p.setterFunc == nil { + p.value = v + return + } + call, _ := p.setterFunc.self.assertCallable() + call(FunctionCall{ + This: this, + Arguments: []Value{v}, + }) +} + +func (p *valueProperty) SameAs(other Value) bool { + if otherProp, ok := other.(*valueProperty); ok { + return p == otherProp + } + return false +} + +func (p *valueProperty) Equals(other Value) bool { + return false +} + +func (p *valueProperty) StrictEquals(other Value) bool { + return false +} + +func (n *valueProperty) baseObject(r *Runtime) *Object { + r.typeErrorResult(true, "BUG: baseObject() is called on valueProperty") // TODO error message + return nil +} + +func (n *valueProperty) Export() interface{} { + panic("Cannot export valueProperty") +} + +func (n *valueProperty) ExportType() reflect.Type { + panic("Cannot export valueProperty") +} + +func (f valueFloat) ToInteger() int64 { + switch { + case math.IsNaN(float64(f)): + return 0 + case math.IsInf(float64(f), 1): + return int64(math.MaxInt64) + case math.IsInf(float64(f), -1): + return int64(math.MinInt64) + } + return int64(f) +} + +func (f valueFloat) ToString() valueString { + return asciiString(f.String()) +} + +var matchLeading0Exponent = regexp.MustCompile(`([eE][\+\-])0+([1-9])`) // 1e-07 => 1e-7 + +func (f valueFloat) String() string { + value := float64(f) + if math.IsNaN(value) { + return "NaN" + } else if math.IsInf(value, 0) { + if math.Signbit(value) { + return "-Infinity" + } + return "Infinity" + } else if f == _negativeZero { + return "0" + } + exponent := math.Log10(math.Abs(value)) + if exponent >= 21 || exponent < -6 { + return matchLeading0Exponent.ReplaceAllString(strconv.FormatFloat(value, 'g', -1, 64), "$1$2") + } + return strconv.FormatFloat(value, 'f', -1, 64) +} + +func (f valueFloat) ToFloat() float64 { + return float64(f) +} + +func (f valueFloat) ToBoolean() bool { + return float64(f) != 0.0 && !math.IsNaN(float64(f)) +} + +func (f valueFloat) ToObject(r *Runtime) *Object { + return r.newPrimitiveObject(f, r.global.NumberPrototype, "Number") +} + +func (f valueFloat) ToNumber() Value { + return f +} + +func (f valueFloat) SameAs(other Value) bool { + if o, ok := other.assertFloat(); ok { + this := float64(f) + if math.IsNaN(this) && math.IsNaN(o) { + return true + } else { + ret := this == o + if ret && this == 0 { + ret = math.Signbit(this) == math.Signbit(o) + } + return ret + } + } else if o, ok := other.assertInt(); ok { + this := float64(f) + ret := this == float64(o) + if ret && this == 0 { + ret = !math.Signbit(this) + } + return ret + } + return false +} + +func (f valueFloat) Equals(other Value) bool { + if o, ok := other.assertFloat(); ok { + return float64(f) == o + } + + if o, ok := other.assertInt(); ok { + return float64(f) == float64(o) + } + + if _, ok := other.assertString(); ok { + return float64(f) == other.ToFloat() + } + + if o, ok := other.(valueBool); ok { + return float64(f) == o.ToFloat() + } + + if o, ok := other.(*Object); ok { + return f.Equals(o.self.toPrimitiveNumber()) + } + + return false +} + +func (f valueFloat) StrictEquals(other Value) bool { + if o, ok := other.assertFloat(); ok { + return float64(f) == o + } else if o, ok := other.assertInt(); ok { + return float64(f) == float64(o) + } + return false +} + +func (f valueFloat) assertInt() (int64, bool) { + return 0, false +} + +func (f valueFloat) assertFloat() (float64, bool) { + return float64(f), true +} + +func (f valueFloat) assertString() (valueString, bool) { + return nil, false +} + +func (f valueFloat) baseObject(r *Runtime) *Object { + return r.global.NumberPrototype +} + +func (f valueFloat) Export() interface{} { + return float64(f) +} + +func (f valueFloat) ExportType() reflect.Type { + return reflectTypeFloat +} + +func (o *Object) ToInteger() int64 { + return o.self.toPrimitiveNumber().ToNumber().ToInteger() +} + +func (o *Object) ToString() valueString { + return o.self.toPrimitiveString().ToString() +} + +func (o *Object) String() string { + return o.self.toPrimitiveString().String() +} + +func (o *Object) ToFloat() float64 { + return o.self.toPrimitiveNumber().ToFloat() +} + +func (o *Object) ToBoolean() bool { + return true +} + +func (o *Object) ToObject(r *Runtime) *Object { + return o +} + +func (o *Object) ToNumber() Value { + return o.self.toPrimitiveNumber().ToNumber() +} + +func (o *Object) SameAs(other Value) bool { + if other, ok := other.(*Object); ok { + return o == other + } + return false +} + +func (o *Object) Equals(other Value) bool { + if other, ok := other.(*Object); ok { + return o == other || o.self.equal(other.self) + } + + if _, ok := other.assertInt(); ok { + return o.self.toPrimitive().Equals(other) + } + + if _, ok := other.assertFloat(); ok { + return o.self.toPrimitive().Equals(other) + } + + if other, ok := other.(valueBool); ok { + return o.Equals(other.ToNumber()) + } + + if _, ok := other.assertString(); ok { + return o.self.toPrimitive().Equals(other) + } + return false +} + +func (o *Object) StrictEquals(other Value) bool { + if other, ok := other.(*Object); ok { + return o == other || o.self.equal(other.self) + } + return false +} + +func (o *Object) assertInt() (int64, bool) { + return 0, false +} + +func (o *Object) assertFloat() (float64, bool) { + return 0, false +} + +func (o *Object) assertString() (valueString, bool) { + return nil, false +} + +func (o *Object) baseObject(r *Runtime) *Object { + return o +} + +func (o *Object) Export() interface{} { + return o.self.export() +} + +func (o *Object) ExportType() reflect.Type { + return o.self.exportType() +} + +func (o *Object) Get(name string) Value { + return o.self.getStr(name) +} + +func (o *Object) Keys() (keys []string) { + for item, f := o.self.enumerate(false, false)(); f != nil; item, f = f() { + keys = append(keys, item.name) + } + + return +} + +// DefineDataProperty is a Go equivalent of Object.defineProperty(o, name, {value: value, writable: writable, +// configurable: configurable, enumerable: enumerable}) +func (o *Object) DefineDataProperty(name string, value Value, writable, configurable, enumerable Flag) error { + return tryFunc(func() { + o.self.defineOwnProperty(newStringValue(name), propertyDescr{ + Value: value, + Writable: writable, + Configurable: configurable, + Enumerable: enumerable, + }, true) + }) +} + +// DefineAccessorProperty is a Go equivalent of Object.defineProperty(o, name, {get: getter, set: setter, +// configurable: configurable, enumerable: enumerable}) +func (o *Object) DefineAccessorProperty(name string, getter, setter Value, configurable, enumerable Flag) error { + return tryFunc(func() { + o.self.defineOwnProperty(newStringValue(name), propertyDescr{ + Getter: getter, + Setter: setter, + Configurable: configurable, + Enumerable: enumerable, + }, true) + }) +} + +func (o *Object) Set(name string, value interface{}) error { + return tryFunc(func() { + o.self.putStr(name, o.runtime.ToValue(value), true) + }) +} + +// MarshalJSON returns JSON representation of the Object. It is equivalent to JSON.stringify(o). +// Note, this implements json.Marshaler so that json.Marshal() can be used without the need to Export(). +func (o *Object) MarshalJSON() ([]byte, error) { + ctx := _builtinJSON_stringifyContext{ + r: o.runtime, + } + ex := o.runtime.vm.try(func() { + if !ctx.do(o) { + ctx.buf.WriteString("null") + } + }) + if ex != nil { + return nil, ex + } + return ctx.buf.Bytes(), nil +} + +func (o valueUnresolved) throw() { + o.r.throwReferenceError(o.ref) +} + +func (o valueUnresolved) ToInteger() int64 { + o.throw() + return 0 +} + +func (o valueUnresolved) ToString() valueString { + o.throw() + return nil +} + +func (o valueUnresolved) String() string { + o.throw() + return "" +} + +func (o valueUnresolved) ToFloat() float64 { + o.throw() + return 0 +} + +func (o valueUnresolved) ToBoolean() bool { + o.throw() + return false +} + +func (o valueUnresolved) ToObject(r *Runtime) *Object { + o.throw() + return nil +} + +func (o valueUnresolved) ToNumber() Value { + o.throw() + return nil +} + +func (o valueUnresolved) SameAs(other Value) bool { + o.throw() + return false +} + +func (o valueUnresolved) Equals(other Value) bool { + o.throw() + return false +} + +func (o valueUnresolved) StrictEquals(other Value) bool { + o.throw() + return false +} + +func (o valueUnresolved) assertInt() (int64, bool) { + o.throw() + return 0, false +} + +func (o valueUnresolved) assertFloat() (float64, bool) { + o.throw() + return 0, false +} + +func (o valueUnresolved) assertString() (valueString, bool) { + o.throw() + return nil, false +} + +func (o valueUnresolved) baseObject(r *Runtime) *Object { + o.throw() + return nil +} + +func (o valueUnresolved) Export() interface{} { + o.throw() + return nil +} + +func (o valueUnresolved) ExportType() reflect.Type { + o.throw() + return nil +} + +func init() { + for i := 0; i < 256; i++ { + intCache[i] = valueInt(i - 128) + } + _positiveZero = intToValue(0) +} diff --git a/vendor/github.com/dop251/goja/vm.go b/vendor/github.com/dop251/goja/vm.go new file mode 100644 index 00000000000..722817ce08f --- /dev/null +++ b/vendor/github.com/dop251/goja/vm.go @@ -0,0 +1,2514 @@ +package goja + +import ( + "fmt" + "log" + "math" + "strconv" + "sync" + "sync/atomic" +) + +const ( + maxInt = 1 << 53 +) + +type valueStack []Value + +type stash struct { + values valueStack + extraArgs valueStack + names map[string]uint32 + obj objectImpl + + outer *stash +} + +type context struct { + prg *Program + funcName string + stash *stash + pc, sb int + args int +} + +type iterStackItem struct { + val Value + f iterNextFunc +} + +type ref interface { + get() Value + set(Value) + refname() string +} + +type stashRef struct { + v *Value + n string +} + +func (r stashRef) get() Value { + return *r.v +} + +func (r *stashRef) set(v Value) { + *r.v = v +} + +func (r *stashRef) refname() string { + return r.n +} + +type objRef struct { + base objectImpl + name string + strict bool +} + +func (r *objRef) get() Value { + return r.base.getStr(r.name) +} + +func (r *objRef) set(v Value) { + r.base.putStr(r.name, v, r.strict) +} + +func (r *objRef) refname() string { + return r.name +} + +type unresolvedRef struct { + runtime *Runtime + name string +} + +func (r *unresolvedRef) get() Value { + r.runtime.throwReferenceError(r.name) + panic("Unreachable") +} + +func (r *unresolvedRef) set(v Value) { + r.get() +} + +func (r *unresolvedRef) refname() string { + return r.name +} + +type vm struct { + r *Runtime + prg *Program + funcName string + pc int + stack valueStack + sp, sb, args int + + stash *stash + callStack []context + iterStack []iterStackItem + refStack []ref + + stashAllocs int + halt bool + + interrupted uint32 + interruptVal interface{} + interruptLock sync.Mutex +} + +type instruction interface { + exec(*vm) +} + +func intToValue(i int64) Value { + if i >= -maxInt && i <= maxInt { + if i >= -128 && i <= 127 { + return intCache[i+128] + } + return valueInt(i) + } + return valueFloat(float64(i)) +} + +func floatToInt(f float64) (result int64, ok bool) { + if (f != 0 || !math.Signbit(f)) && !math.IsInf(f, 0) && f == math.Trunc(f) && f >= -maxInt && f <= maxInt { + return int64(f), true + } + return 0, false +} + +func floatToValue(f float64) (result Value) { + if i, ok := floatToInt(f); ok { + return intToValue(i) + } + switch { + case f == 0: + return _negativeZero + case math.IsNaN(f): + return _NaN + case math.IsInf(f, 1): + return _positiveInf + case math.IsInf(f, -1): + return _negativeInf + } + return valueFloat(f) +} + +func toInt(v Value) (int64, bool) { + num := v.ToNumber() + if i, ok := num.assertInt(); ok { + return i, true + } + if f, ok := num.assertFloat(); ok { + if i, ok := floatToInt(f); ok { + return i, true + } + } + return 0, false +} + +func toIntIgnoreNegZero(v Value) (int64, bool) { + num := v.ToNumber() + if i, ok := num.assertInt(); ok { + return i, true + } + if f, ok := num.assertFloat(); ok { + if v == _negativeZero { + return 0, true + } + if i, ok := floatToInt(f); ok { + return i, true + } + } + return 0, false +} + +func (s *valueStack) expand(idx int) { + if idx < len(*s) { + return + } + + if idx < cap(*s) { + *s = (*s)[:idx+1] + } else { + n := make([]Value, idx+1, (idx+1)<<1) + copy(n, *s) + *s = n + } +} + +func (s *stash) put(name string, v Value) bool { + if s.obj != nil { + if found := s.obj.getStr(name); found != nil { + s.obj.putStr(name, v, false) + return true + } + return false + } else { + if idx, found := s.names[name]; found { + s.values.expand(int(idx)) + s.values[idx] = v + return true + } + return false + } +} + +func (s *stash) putByIdx(idx uint32, v Value) { + if s.obj != nil { + panic("Attempt to put by idx into an object scope") + } + s.values.expand(int(idx)) + s.values[idx] = v +} + +func (s *stash) getByIdx(idx uint32) Value { + if int(idx) < len(s.values) { + return s.values[idx] + } + return _undefined +} + +func (s *stash) getByName(name string, vm *vm) (v Value, exists bool) { + if s.obj != nil { + v = s.obj.getStr(name) + if v == nil { + return nil, false + //return valueUnresolved{r: vm.r, ref: name}, false + } + return v, true + } + if idx, exists := s.names[name]; exists { + return s.values[idx], true + } + return nil, false + //return valueUnresolved{r: vm.r, ref: name}, false +} + +func (s *stash) createBinding(name string) { + if s.names == nil { + s.names = make(map[string]uint32) + } + if _, exists := s.names[name]; !exists { + s.names[name] = uint32(len(s.names)) + s.values = append(s.values, _undefined) + } +} + +func (s *stash) deleteBinding(name string) bool { + if s.obj != nil { + return s.obj.deleteStr(name, false) + } + if idx, found := s.names[name]; found { + s.values[idx] = nil + delete(s.names, name) + return true + } + return false +} + +func (vm *vm) newStash() { + vm.stash = &stash{ + outer: vm.stash, + } + vm.stashAllocs++ +} + +func (vm *vm) init() { +} + +func (vm *vm) run() { + vm.halt = false + interrupted := false + for !vm.halt { + if interrupted = atomic.LoadUint32(&vm.interrupted) != 0; interrupted { + break + } + vm.prg.code[vm.pc].exec(vm) + } + + if interrupted { + vm.interruptLock.Lock() + v := &InterruptedError{ + iface: vm.interruptVal, + } + atomic.StoreUint32(&vm.interrupted, 0) + vm.interruptVal = nil + vm.interruptLock.Unlock() + panic(v) + } +} + +func (vm *vm) Interrupt(v interface{}) { + vm.interruptLock.Lock() + vm.interruptVal = v + atomic.StoreUint32(&vm.interrupted, 1) + vm.interruptLock.Unlock() +} + +func (vm *vm) captureStack(stack []stackFrame, ctxOffset int) []stackFrame { + // Unroll the context stack + stack = append(stack, stackFrame{prg: vm.prg, pc: vm.pc, funcName: vm.funcName}) + for i := len(vm.callStack) - 1; i > ctxOffset-1; i-- { + if vm.callStack[i].pc != -1 { + stack = append(stack, stackFrame{prg: vm.callStack[i].prg, pc: vm.callStack[i].pc - 1, funcName: vm.callStack[i].funcName}) + } + } + return stack +} + +func (vm *vm) try(f func()) (ex *Exception) { + var ctx context + vm.saveCtx(&ctx) + + ctxOffset := len(vm.callStack) + sp := vm.sp + iterLen := len(vm.iterStack) + refLen := len(vm.refStack) + + defer func() { + if x := recover(); x != nil { + defer func() { + vm.callStack = vm.callStack[:ctxOffset] + vm.restoreCtx(&ctx) + vm.sp = sp + + // Restore other stacks + iterTail := vm.iterStack[iterLen:] + for i, _ := range iterTail { + iterTail[i] = iterStackItem{} + } + vm.iterStack = vm.iterStack[:iterLen] + refTail := vm.refStack[refLen:] + for i, _ := range refTail { + refTail[i] = nil + } + vm.refStack = vm.refStack[:refLen] + }() + switch x1 := x.(type) { + case Value: + ex = &Exception{ + val: x1, + } + case *InterruptedError: + x1.stack = vm.captureStack(x1.stack, ctxOffset) + panic(x1) + case *Exception: + ex = x1 + default: + if vm.prg != nil { + vm.prg.dumpCode(log.Printf) + } + //log.Print("Stack: ", string(debug.Stack())) + panic(fmt.Errorf("Panic at %d: %v", vm.pc, x)) + } + ex.stack = vm.captureStack(ex.stack, ctxOffset) + } + }() + + f() + return +} + +func (vm *vm) runTry() (ex *Exception) { + return vm.try(vm.run) +} + +func (vm *vm) push(v Value) { + vm.stack.expand(vm.sp) + vm.stack[vm.sp] = v + vm.sp++ +} + +func (vm *vm) pop() Value { + vm.sp-- + return vm.stack[vm.sp] +} + +func (vm *vm) peek() Value { + return vm.stack[vm.sp-1] +} + +func (vm *vm) saveCtx(ctx *context) { + ctx.prg = vm.prg + ctx.funcName = vm.funcName + ctx.stash = vm.stash + ctx.pc = vm.pc + ctx.sb = vm.sb + ctx.args = vm.args +} + +func (vm *vm) pushCtx() { + /* + vm.ctxStack = append(vm.ctxStack, context{ + prg: vm.prg, + stash: vm.stash, + pc: vm.pc, + sb: vm.sb, + args: vm.args, + })*/ + vm.callStack = append(vm.callStack, context{}) + vm.saveCtx(&vm.callStack[len(vm.callStack)-1]) +} + +func (vm *vm) restoreCtx(ctx *context) { + vm.prg = ctx.prg + vm.funcName = ctx.funcName + vm.pc = ctx.pc + vm.stash = ctx.stash + vm.sb = ctx.sb + vm.args = ctx.args +} + +func (vm *vm) popCtx() { + l := len(vm.callStack) - 1 + vm.prg = vm.callStack[l].prg + vm.callStack[l].prg = nil + vm.funcName = vm.callStack[l].funcName + vm.pc = vm.callStack[l].pc + vm.stash = vm.callStack[l].stash + vm.callStack[l].stash = nil + vm.sb = vm.callStack[l].sb + vm.args = vm.callStack[l].args + + vm.callStack = vm.callStack[:l] +} + +func (r *Runtime) toObject(v Value, args ...interface{}) *Object { + //r.checkResolveable(v) + if obj, ok := v.(*Object); ok { + return obj + } + if len(args) > 0 { + r.typeErrorResult(true, args) + } else { + r.typeErrorResult(true, "Value is not an object: %s", v.ToString()) + } + panic("Unreachable") +} + +func (r *Runtime) toCallee(v Value) *Object { + if obj, ok := v.(*Object); ok { + return obj + } + switch unresolved := v.(type) { + case valueUnresolved: + unresolved.throw() + panic("Unreachable") + case memberUnresolved: + r.typeErrorResult(true, "Object has no member '%s'", unresolved.ref) + panic("Unreachable") + } + r.typeErrorResult(true, "Value is not an object: %s", v.ToString()) + panic("Unreachable") +} + +type _newStash struct{} + +var newStash _newStash + +func (_newStash) exec(vm *vm) { + vm.newStash() + vm.pc++ +} + +type _noop struct{} + +var noop _noop + +func (_noop) exec(vm *vm) { + vm.pc++ +} + +type loadVal uint32 + +func (l loadVal) exec(vm *vm) { + vm.push(vm.prg.values[l]) + vm.pc++ +} + +type loadVal1 uint32 + +func (l *loadVal1) exec(vm *vm) { + vm.push(vm.prg.values[*l]) + vm.pc++ +} + +type _loadUndef struct{} + +var loadUndef _loadUndef + +func (_loadUndef) exec(vm *vm) { + vm.push(_undefined) + vm.pc++ +} + +type _loadNil struct{} + +var loadNil _loadNil + +func (_loadNil) exec(vm *vm) { + vm.push(nil) + vm.pc++ +} + +type _loadGlobalObject struct{} + +var loadGlobalObject _loadGlobalObject + +func (_loadGlobalObject) exec(vm *vm) { + vm.push(vm.r.globalObject) + vm.pc++ +} + +type loadStack int + +func (l loadStack) exec(vm *vm) { + // l < 0 -- arg<-l-1> + // l > 0 -- var + // l == 0 -- this + + if l < 0 { + arg := int(-l) + if arg > vm.args { + vm.push(_undefined) + } else { + vm.push(vm.stack[vm.sb+arg]) + } + } else if l > 0 { + vm.push(vm.stack[vm.sb+vm.args+int(l)]) + } else { + vm.push(vm.stack[vm.sb]) + } + vm.pc++ +} + +type _loadCallee struct{} + +var loadCallee _loadCallee + +func (_loadCallee) exec(vm *vm) { + vm.push(vm.stack[vm.sb-1]) + vm.pc++ +} + +func (vm *vm) storeStack(s int) { + // l < 0 -- arg<-l-1> + // l > 0 -- var + // l == 0 -- this + + if s < 0 { + vm.stack[vm.sb-s] = vm.stack[vm.sp-1] + } else if s > 0 { + vm.stack[vm.sb+vm.args+s] = vm.stack[vm.sp-1] + } else { + panic("Attempt to modify this") + } + vm.pc++ +} + +type storeStack int + +func (s storeStack) exec(vm *vm) { + vm.storeStack(int(s)) +} + +type storeStackP int + +func (s storeStackP) exec(vm *vm) { + vm.storeStack(int(s)) + vm.sp-- +} + +type _toNumber struct{} + +var toNumber _toNumber + +func (_toNumber) exec(vm *vm) { + vm.stack[vm.sp-1] = vm.stack[vm.sp-1].ToNumber() + vm.pc++ +} + +type _add struct{} + +var add _add + +func (_add) exec(vm *vm) { + right := vm.stack[vm.sp-1] + left := vm.stack[vm.sp-2] + + if o, ok := left.(*Object); ok { + left = o.self.toPrimitive() + } + + if o, ok := right.(*Object); ok { + right = o.self.toPrimitive() + } + + var ret Value + + leftString, isLeftString := left.assertString() + rightString, isRightString := right.assertString() + + if isLeftString || isRightString { + if !isLeftString { + leftString = left.ToString() + } + if !isRightString { + rightString = right.ToString() + } + ret = leftString.concat(rightString) + } else { + if leftInt, ok := left.assertInt(); ok { + if rightInt, ok := right.assertInt(); ok { + ret = intToValue(int64(leftInt) + int64(rightInt)) + } else { + ret = floatToValue(float64(leftInt) + right.ToFloat()) + } + } else { + ret = floatToValue(left.ToFloat() + right.ToFloat()) + } + } + + vm.stack[vm.sp-2] = ret + vm.sp-- + vm.pc++ +} + +type _sub struct{} + +var sub _sub + +func (_sub) exec(vm *vm) { + right := vm.stack[vm.sp-1] + left := vm.stack[vm.sp-2] + + var result Value + + if left, ok := left.assertInt(); ok { + if right, ok := right.assertInt(); ok { + result = intToValue(left - right) + goto end + } + } + + result = floatToValue(left.ToFloat() - right.ToFloat()) +end: + vm.sp-- + vm.stack[vm.sp-1] = result + vm.pc++ +} + +type _mul struct{} + +var mul _mul + +func (_mul) exec(vm *vm) { + left := vm.stack[vm.sp-2] + right := vm.stack[vm.sp-1] + + var result Value + + if left, ok := toInt(left); ok { + if right, ok := toInt(right); ok { + if left == 0 && right == -1 || left == -1 && right == 0 { + result = _negativeZero + goto end + } + res := left * right + // check for overflow + if left == 0 || right == 0 || res/left == right { + result = intToValue(res) + goto end + } + + } + } + + result = floatToValue(left.ToFloat() * right.ToFloat()) + +end: + vm.sp-- + vm.stack[vm.sp-1] = result + vm.pc++ +} + +type _div struct{} + +var div _div + +func (_div) exec(vm *vm) { + left := vm.stack[vm.sp-2].ToFloat() + right := vm.stack[vm.sp-1].ToFloat() + + var result Value + + if math.IsNaN(left) || math.IsNaN(right) { + result = _NaN + goto end + } + if math.IsInf(left, 0) && math.IsInf(right, 0) { + result = _NaN + goto end + } + if left == 0 && right == 0 { + result = _NaN + goto end + } + + if math.IsInf(left, 0) { + if math.Signbit(left) == math.Signbit(right) { + result = _positiveInf + goto end + } else { + result = _negativeInf + goto end + } + } + if math.IsInf(right, 0) { + if math.Signbit(left) == math.Signbit(right) { + result = _positiveZero + goto end + } else { + result = _negativeZero + goto end + } + } + if right == 0 { + if math.Signbit(left) == math.Signbit(right) { + result = _positiveInf + goto end + } else { + result = _negativeInf + goto end + } + } + + result = floatToValue(left / right) + +end: + vm.sp-- + vm.stack[vm.sp-1] = result + vm.pc++ +} + +type _mod struct{} + +var mod _mod + +func (_mod) exec(vm *vm) { + left := vm.stack[vm.sp-2] + right := vm.stack[vm.sp-1] + + var result Value + + if leftInt, ok := toInt(left); ok { + if rightInt, ok := toInt(right); ok { + if rightInt == 0 { + result = _NaN + goto end + } + r := leftInt % rightInt + if r == 0 && leftInt < 0 { + result = _negativeZero + } else { + result = intToValue(leftInt % rightInt) + } + goto end + } + } + + result = floatToValue(math.Mod(left.ToFloat(), right.ToFloat())) +end: + vm.sp-- + vm.stack[vm.sp-1] = result + vm.pc++ +} + +type _neg struct{} + +var neg _neg + +func (_neg) exec(vm *vm) { + operand := vm.stack[vm.sp-1] + + var result Value + + if i, ok := toInt(operand); ok { + if i == 0 { + result = _negativeZero + } else { + result = valueInt(-i) + } + } else { + f := operand.ToFloat() + if !math.IsNaN(f) { + f = -f + } + result = valueFloat(f) + } + + vm.stack[vm.sp-1] = result + vm.pc++ +} + +type _plus struct{} + +var plus _plus + +func (_plus) exec(vm *vm) { + vm.stack[vm.sp-1] = vm.stack[vm.sp-1].ToNumber() + vm.pc++ +} + +type _inc struct{} + +var inc _inc + +func (_inc) exec(vm *vm) { + v := vm.stack[vm.sp-1] + + if i, ok := toInt(v); ok { + v = intToValue(i + 1) + goto end + } + + v = valueFloat(v.ToFloat() + 1) + +end: + vm.stack[vm.sp-1] = v + vm.pc++ +} + +type _dec struct{} + +var dec _dec + +func (_dec) exec(vm *vm) { + v := vm.stack[vm.sp-1] + + if i, ok := toInt(v); ok { + v = intToValue(i - 1) + goto end + } + + v = valueFloat(v.ToFloat() - 1) + +end: + vm.stack[vm.sp-1] = v + vm.pc++ +} + +type _and struct{} + +var and _and + +func (_and) exec(vm *vm) { + left := toInt32(vm.stack[vm.sp-2]) + right := toInt32(vm.stack[vm.sp-1]) + vm.stack[vm.sp-2] = intToValue(int64(left & right)) + vm.sp-- + vm.pc++ +} + +type _or struct{} + +var or _or + +func (_or) exec(vm *vm) { + left := toInt32(vm.stack[vm.sp-2]) + right := toInt32(vm.stack[vm.sp-1]) + vm.stack[vm.sp-2] = intToValue(int64(left | right)) + vm.sp-- + vm.pc++ +} + +type _xor struct{} + +var xor _xor + +func (_xor) exec(vm *vm) { + left := toInt32(vm.stack[vm.sp-2]) + right := toInt32(vm.stack[vm.sp-1]) + vm.stack[vm.sp-2] = intToValue(int64(left ^ right)) + vm.sp-- + vm.pc++ +} + +type _bnot struct{} + +var bnot _bnot + +func (_bnot) exec(vm *vm) { + op := toInt32(vm.stack[vm.sp-1]) + vm.stack[vm.sp-1] = intToValue(int64(^op)) + vm.pc++ +} + +type _sal struct{} + +var sal _sal + +func (_sal) exec(vm *vm) { + left := toInt32(vm.stack[vm.sp-2]) + right := toUInt32(vm.stack[vm.sp-1]) + vm.stack[vm.sp-2] = intToValue(int64(left << (right & 0x1F))) + vm.sp-- + vm.pc++ +} + +type _sar struct{} + +var sar _sar + +func (_sar) exec(vm *vm) { + left := toInt32(vm.stack[vm.sp-2]) + right := toUInt32(vm.stack[vm.sp-1]) + vm.stack[vm.sp-2] = intToValue(int64(left >> (right & 0x1F))) + vm.sp-- + vm.pc++ +} + +type _shr struct{} + +var shr _shr + +func (_shr) exec(vm *vm) { + left := toUInt32(vm.stack[vm.sp-2]) + right := toUInt32(vm.stack[vm.sp-1]) + vm.stack[vm.sp-2] = intToValue(int64(left >> (right & 0x1F))) + vm.sp-- + vm.pc++ +} + +type _halt struct{} + +var halt _halt + +func (_halt) exec(vm *vm) { + vm.halt = true + vm.pc++ +} + +type jump int32 + +func (j jump) exec(vm *vm) { + vm.pc += int(j) +} + +type _setElem struct{} + +var setElem _setElem + +func (_setElem) exec(vm *vm) { + obj := vm.r.toObject(vm.stack[vm.sp-3]) + propName := vm.stack[vm.sp-2] + val := vm.stack[vm.sp-1] + + obj.self.put(propName, val, false) + + vm.sp -= 2 + vm.stack[vm.sp-1] = val + vm.pc++ +} + +type _setElemStrict struct{} + +var setElemStrict _setElemStrict + +func (_setElemStrict) exec(vm *vm) { + obj := vm.r.toObject(vm.stack[vm.sp-3]) + propName := vm.stack[vm.sp-2] + val := vm.stack[vm.sp-1] + + obj.self.put(propName, val, true) + + vm.sp -= 2 + vm.stack[vm.sp-1] = val + vm.pc++ +} + +type _deleteElem struct{} + +var deleteElem _deleteElem + +func (_deleteElem) exec(vm *vm) { + obj := vm.r.toObject(vm.stack[vm.sp-2]) + propName := vm.stack[vm.sp-1] + if !obj.self.hasProperty(propName) || obj.self.delete(propName, false) { + vm.stack[vm.sp-2] = valueTrue + } else { + vm.stack[vm.sp-2] = valueFalse + } + vm.sp-- + vm.pc++ +} + +type _deleteElemStrict struct{} + +var deleteElemStrict _deleteElemStrict + +func (_deleteElemStrict) exec(vm *vm) { + obj := vm.r.toObject(vm.stack[vm.sp-2]) + propName := vm.stack[vm.sp-1] + obj.self.delete(propName, true) + vm.stack[vm.sp-2] = valueTrue + vm.sp-- + vm.pc++ +} + +type deleteProp string + +func (d deleteProp) exec(vm *vm) { + obj := vm.r.toObject(vm.stack[vm.sp-1]) + if !obj.self.hasPropertyStr(string(d)) || obj.self.deleteStr(string(d), false) { + vm.stack[vm.sp-1] = valueTrue + } else { + vm.stack[vm.sp-1] = valueFalse + } + vm.pc++ +} + +type deletePropStrict string + +func (d deletePropStrict) exec(vm *vm) { + obj := vm.r.toObject(vm.stack[vm.sp-1]) + obj.self.deleteStr(string(d), true) + vm.stack[vm.sp-1] = valueTrue + vm.pc++ +} + +type setProp string + +func (p setProp) exec(vm *vm) { + val := vm.stack[vm.sp-1] + + vm.r.toObject(vm.stack[vm.sp-2]).self.putStr(string(p), val, false) + vm.stack[vm.sp-2] = val + vm.sp-- + vm.pc++ +} + +type setPropStrict string + +func (p setPropStrict) exec(vm *vm) { + obj := vm.stack[vm.sp-2] + val := vm.stack[vm.sp-1] + + obj1 := vm.r.toObject(obj) + obj1.self.putStr(string(p), val, true) + vm.stack[vm.sp-2] = val + vm.sp-- + vm.pc++ +} + +type setProp1 string + +func (p setProp1) exec(vm *vm) { + vm.r.toObject(vm.stack[vm.sp-2]).self._putProp(string(p), vm.stack[vm.sp-1], true, true, true) + + vm.sp-- + vm.pc++ +} + +type _setProto struct{} + +var setProto _setProto + +func (_setProto) exec(vm *vm) { + vm.r.toObject(vm.stack[vm.sp-2]).self.putStr("__proto__", vm.stack[vm.sp-1], true) + + vm.sp-- + vm.pc++ +} + +type setPropGetter string + +func (s setPropGetter) exec(vm *vm) { + obj := vm.r.toObject(vm.stack[vm.sp-2]) + val := vm.stack[vm.sp-1] + + descr := propertyDescr{ + Getter: val, + Configurable: FLAG_TRUE, + Enumerable: FLAG_TRUE, + } + + obj.self.defineOwnProperty(newStringValue(string(s)), descr, false) + + vm.sp-- + vm.pc++ +} + +type setPropSetter string + +func (s setPropSetter) exec(vm *vm) { + obj := vm.r.toObject(vm.stack[vm.sp-2]) + val := vm.stack[vm.sp-1] + + descr := propertyDescr{ + Setter: val, + Configurable: FLAG_TRUE, + Enumerable: FLAG_TRUE, + } + + obj.self.defineOwnProperty(newStringValue(string(s)), descr, false) + + vm.sp-- + vm.pc++ +} + +type getProp string + +func (g getProp) exec(vm *vm) { + v := vm.stack[vm.sp-1] + obj := v.baseObject(vm.r) + if obj == nil { + vm.r.typeErrorResult(true, "Cannot read property '%s' of undefined", g) + } + prop := obj.self.getPropStr(string(g)) + if prop1, ok := prop.(*valueProperty); ok { + vm.stack[vm.sp-1] = prop1.get(v) + } else { + if prop == nil { + prop = _undefined + } + vm.stack[vm.sp-1] = prop + } + + vm.pc++ +} + +type getPropCallee string + +func (g getPropCallee) exec(vm *vm) { + v := vm.stack[vm.sp-1] + obj := v.baseObject(vm.r) + if obj == nil { + vm.r.typeErrorResult(true, "Cannot read property '%s' of undefined", g) + } + prop := obj.self.getPropStr(string(g)) + if prop1, ok := prop.(*valueProperty); ok { + vm.stack[vm.sp-1] = prop1.get(v) + } else { + if prop == nil { + prop = memberUnresolved{valueUnresolved{r: vm.r, ref: string(g)}} + } + vm.stack[vm.sp-1] = prop + } + + vm.pc++ +} + +type _getElem struct{} + +var getElem _getElem + +func (_getElem) exec(vm *vm) { + v := vm.stack[vm.sp-2] + obj := v.baseObject(vm.r) + propName := vm.stack[vm.sp-1] + if obj == nil { + vm.r.typeErrorResult(true, "Cannot read property '%s' of undefined", propName.String()) + } + + prop := obj.self.getProp(propName) + if prop1, ok := prop.(*valueProperty); ok { + vm.stack[vm.sp-2] = prop1.get(v) + } else { + if prop == nil { + prop = _undefined + } + vm.stack[vm.sp-2] = prop + } + + vm.sp-- + vm.pc++ +} + +type _getElemCallee struct{} + +var getElemCallee _getElemCallee + +func (_getElemCallee) exec(vm *vm) { + v := vm.stack[vm.sp-2] + obj := v.baseObject(vm.r) + propName := vm.stack[vm.sp-1] + if obj == nil { + vm.r.typeErrorResult(true, "Cannot read property '%s' of undefined", propName.String()) + panic("Unreachable") + } + + prop := obj.self.getProp(propName) + if prop1, ok := prop.(*valueProperty); ok { + vm.stack[vm.sp-2] = prop1.get(v) + } else { + if prop == nil { + prop = memberUnresolved{valueUnresolved{r: vm.r, ref: propName.String()}} + } + vm.stack[vm.sp-2] = prop + } + + vm.sp-- + vm.pc++ +} + +type _dup struct{} + +var dup _dup + +func (_dup) exec(vm *vm) { + vm.push(vm.stack[vm.sp-1]) + vm.pc++ +} + +type dupN uint32 + +func (d dupN) exec(vm *vm) { + vm.push(vm.stack[vm.sp-1-int(d)]) + vm.pc++ +} + +type rdupN uint32 + +func (d rdupN) exec(vm *vm) { + vm.stack[vm.sp-1-int(d)] = vm.stack[vm.sp-1] + vm.pc++ +} + +type _newObject struct{} + +var newObject _newObject + +func (_newObject) exec(vm *vm) { + vm.push(vm.r.NewObject()) + vm.pc++ +} + +type newArray uint32 + +func (l newArray) exec(vm *vm) { + values := make([]Value, l) + if l > 0 { + copy(values, vm.stack[vm.sp-int(l):vm.sp]) + } + obj := vm.r.newArrayValues(values) + if l > 0 { + vm.sp -= int(l) - 1 + vm.stack[vm.sp-1] = obj + } else { + vm.push(obj) + } + vm.pc++ +} + +type newRegexp struct { + pattern regexpPattern + src valueString + + global, ignoreCase, multiline bool +} + +func (n *newRegexp) exec(vm *vm) { + vm.push(vm.r.newRegExpp(n.pattern, n.src, n.global, n.ignoreCase, n.multiline, vm.r.global.RegExpPrototype)) + vm.pc++ +} + +func (vm *vm) setLocal(s int) { + v := vm.stack[vm.sp-1] + level := s >> 24 + idx := uint32(s & 0x00FFFFFF) + stash := vm.stash + for i := 0; i < level; i++ { + stash = stash.outer + } + stash.putByIdx(idx, v) + vm.pc++ +} + +type setLocal uint32 + +func (s setLocal) exec(vm *vm) { + vm.setLocal(int(s)) +} + +type setLocalP uint32 + +func (s setLocalP) exec(vm *vm) { + vm.setLocal(int(s)) + vm.sp-- +} + +type setVar struct { + name string + idx uint32 +} + +func (s setVar) exec(vm *vm) { + v := vm.peek() + + level := int(s.idx >> 24) + idx := uint32(s.idx & 0x00FFFFFF) + stash := vm.stash + name := s.name + for i := 0; i < level; i++ { + if stash.put(name, v) { + goto end + } + stash = stash.outer + } + + if stash != nil { + stash.putByIdx(idx, v) + } else { + vm.r.globalObject.self.putStr(name, v, false) + } + +end: + vm.pc++ +} + +type resolveVar1 string + +func (s resolveVar1) exec(vm *vm) { + name := string(s) + var ref ref + for stash := vm.stash; stash != nil; stash = stash.outer { + if stash.obj != nil { + if stash.obj.hasPropertyStr(name) { + ref = &objRef{ + base: stash.obj, + name: name, + } + goto end + } + } else { + if idx, exists := stash.names[name]; exists { + ref = &stashRef{ + v: &stash.values[idx], + } + goto end + } + } + } + + ref = &objRef{ + base: vm.r.globalObject.self, + name: name, + } + +end: + vm.refStack = append(vm.refStack, ref) + vm.pc++ +} + +type deleteVar string + +func (d deleteVar) exec(vm *vm) { + name := string(d) + ret := true + for stash := vm.stash; stash != nil; stash = stash.outer { + if stash.obj != nil { + if stash.obj.hasPropertyStr(name) { + ret = stash.obj.deleteStr(name, false) + goto end + } + } else { + if _, exists := stash.names[name]; exists { + ret = false + goto end + } + } + } + + if vm.r.globalObject.self.hasPropertyStr(name) { + ret = vm.r.globalObject.self.deleteStr(name, false) + } + +end: + if ret { + vm.push(valueTrue) + } else { + vm.push(valueFalse) + } + vm.pc++ +} + +type deleteGlobal string + +func (d deleteGlobal) exec(vm *vm) { + name := string(d) + var ret bool + if vm.r.globalObject.self.hasPropertyStr(name) { + ret = vm.r.globalObject.self.deleteStr(name, false) + } else { + ret = true + } + if ret { + vm.push(valueTrue) + } else { + vm.push(valueFalse) + } + vm.pc++ +} + +type resolveVar1Strict string + +func (s resolveVar1Strict) exec(vm *vm) { + name := string(s) + var ref ref + for stash := vm.stash; stash != nil; stash = stash.outer { + if stash.obj != nil { + if stash.obj.hasPropertyStr(name) { + ref = &objRef{ + base: stash.obj, + name: name, + strict: true, + } + goto end + } + } else { + if idx, exists := stash.names[name]; exists { + ref = &stashRef{ + v: &stash.values[idx], + } + goto end + } + } + } + + if vm.r.globalObject.self.hasPropertyStr(name) { + ref = &objRef{ + base: vm.r.globalObject.self, + name: name, + strict: true, + } + goto end + } + + ref = &unresolvedRef{ + runtime: vm.r, + name: string(s), + } + +end: + vm.refStack = append(vm.refStack, ref) + vm.pc++ +} + +type setGlobal string + +func (s setGlobal) exec(vm *vm) { + v := vm.peek() + + vm.r.globalObject.self.putStr(string(s), v, false) + vm.pc++ +} + +type setVarStrict struct { + name string + idx uint32 +} + +func (s setVarStrict) exec(vm *vm) { + v := vm.peek() + + level := int(s.idx >> 24) + idx := uint32(s.idx & 0x00FFFFFF) + stash := vm.stash + name := s.name + for i := 0; i < level; i++ { + if stash.put(name, v) { + goto end + } + stash = stash.outer + } + + if stash != nil { + stash.putByIdx(idx, v) + } else { + o := vm.r.globalObject.self + if o.hasOwnPropertyStr(name) { + o.putStr(name, v, true) + } else { + vm.r.throwReferenceError(name) + } + } + +end: + vm.pc++ +} + +type setVar1Strict string + +func (s setVar1Strict) exec(vm *vm) { + v := vm.peek() + var o objectImpl + + name := string(s) + for stash := vm.stash; stash != nil; stash = stash.outer { + if stash.put(name, v) { + goto end + } + } + o = vm.r.globalObject.self + if o.hasOwnPropertyStr(name) { + o.putStr(name, v, true) + } else { + vm.r.throwReferenceError(name) + } +end: + vm.pc++ +} + +type setGlobalStrict string + +func (s setGlobalStrict) exec(vm *vm) { + v := vm.peek() + + name := string(s) + o := vm.r.globalObject.self + if o.hasOwnPropertyStr(name) { + o.putStr(name, v, true) + } else { + vm.r.throwReferenceError(name) + } + vm.pc++ +} + +type getLocal uint32 + +func (g getLocal) exec(vm *vm) { + level := int(g >> 24) + idx := uint32(g & 0x00FFFFFF) + stash := vm.stash + for i := 0; i < level; i++ { + stash = stash.outer + } + + vm.push(stash.getByIdx(idx)) + vm.pc++ +} + +type getVar struct { + name string + idx uint32 + ref bool +} + +func (g getVar) exec(vm *vm) { + level := int(g.idx >> 24) + idx := uint32(g.idx & 0x00FFFFFF) + stash := vm.stash + name := g.name + for i := 0; i < level; i++ { + if v, found := stash.getByName(name, vm); found { + vm.push(v) + goto end + } + stash = stash.outer + } + if stash != nil { + vm.push(stash.getByIdx(idx)) + } else { + v := vm.r.globalObject.self.getStr(name) + if v == nil { + if g.ref { + v = valueUnresolved{r: vm.r, ref: name} + } else { + vm.r.throwReferenceError(name) + } + } + vm.push(v) + } +end: + vm.pc++ +} + +type resolveVar struct { + name string + idx uint32 + strict bool +} + +func (r resolveVar) exec(vm *vm) { + level := int(r.idx >> 24) + idx := uint32(r.idx & 0x00FFFFFF) + stash := vm.stash + var ref ref + for i := 0; i < level; i++ { + if stash.obj != nil { + if stash.obj.hasPropertyStr(r.name) { + ref = &objRef{ + base: stash.obj, + name: r.name, + strict: r.strict, + } + goto end + } + } else { + if idx, exists := stash.names[r.name]; exists { + ref = &stashRef{ + v: &stash.values[idx], + } + goto end + } + } + stash = stash.outer + } + + if stash != nil { + ref = &stashRef{ + v: &stash.values[idx], + } + goto end + } /*else { + if vm.r.globalObject.self.hasProperty(nameVal) { + ref = &objRef{ + base: vm.r.globalObject.self, + name: r.name, + } + goto end + } + } */ + + ref = &unresolvedRef{ + runtime: vm.r, + name: r.name, + } + +end: + vm.refStack = append(vm.refStack, ref) + vm.pc++ +} + +type _getValue struct{} + +var getValue _getValue + +func (_getValue) exec(vm *vm) { + ref := vm.refStack[len(vm.refStack)-1] + if v := ref.get(); v != nil { + vm.push(v) + } else { + vm.r.throwReferenceError(ref.refname()) + panic("Unreachable") + } + vm.pc++ +} + +type _putValue struct{} + +var putValue _putValue + +func (_putValue) exec(vm *vm) { + l := len(vm.refStack) - 1 + ref := vm.refStack[l] + vm.refStack[l] = nil + vm.refStack = vm.refStack[:l] + ref.set(vm.stack[vm.sp-1]) + vm.pc++ +} + +type getVar1 string + +func (n getVar1) exec(vm *vm) { + name := string(n) + var val Value + for stash := vm.stash; stash != nil; stash = stash.outer { + if v, exists := stash.getByName(name, vm); exists { + val = v + break + } + } + if val == nil { + val = vm.r.globalObject.self.getStr(name) + if val == nil { + vm.r.throwReferenceError(name) + } + } + vm.push(val) + vm.pc++ +} + +type getVar1Callee string + +func (n getVar1Callee) exec(vm *vm) { + name := string(n) + var val Value + for stash := vm.stash; stash != nil; stash = stash.outer { + if v, exists := stash.getByName(name, vm); exists { + val = v + break + } + } + if val == nil { + val = vm.r.globalObject.self.getStr(name) + if val == nil { + val = valueUnresolved{r: vm.r, ref: name} + } + } + vm.push(val) + vm.pc++ +} + +type _pop struct{} + +var pop _pop + +func (_pop) exec(vm *vm) { + vm.sp-- + vm.pc++ +} + +type _swap struct{} + +var swap _swap + +func (_swap) exec(vm *vm) { + vm.stack[vm.sp-1], vm.stack[vm.sp-2] = vm.stack[vm.sp-2], vm.stack[vm.sp-1] + vm.pc++ +} + +func (vm *vm) callEval(n int, strict bool) { + if vm.r.toObject(vm.stack[vm.sp-n-1]) == vm.r.global.Eval { + if n > 0 { + srcVal := vm.stack[vm.sp-n] + if src, ok := srcVal.assertString(); ok { + var this Value + if vm.sb != 0 { + this = vm.stack[vm.sb] + } else { + this = vm.r.globalObject + } + ret := vm.r.eval(src.String(), true, strict, this) + vm.stack[vm.sp-n-2] = ret + } else { + vm.stack[vm.sp-n-2] = srcVal + } + } else { + vm.stack[vm.sp-n-2] = _undefined + } + + vm.sp -= n + 1 + vm.pc++ + } else { + call(n).exec(vm) + } +} + +type callEval uint32 + +func (numargs callEval) exec(vm *vm) { + vm.callEval(int(numargs), false) +} + +type callEvalStrict uint32 + +func (numargs callEvalStrict) exec(vm *vm) { + vm.callEval(int(numargs), true) +} + +type _boxThis struct{} + +var boxThis _boxThis + +func (_boxThis) exec(vm *vm) { + v := vm.stack[vm.sb] + if v == _undefined || v == _null { + vm.stack[vm.sb] = vm.r.globalObject + } else { + vm.stack[vm.sb] = v.ToObject(vm.r) + } + vm.pc++ +} + +type call uint32 + +func (numargs call) exec(vm *vm) { + // this + // callee + // arg0 + // ... + // arg + n := int(numargs) + v := vm.stack[vm.sp-n-1] // callee + obj := vm.r.toCallee(v) +repeat: + switch f := obj.self.(type) { + case *funcObject: + vm.pc++ + vm.pushCtx() + vm.args = n + vm.prg = f.prg + vm.stash = f.stash + vm.pc = 0 + vm.stack[vm.sp-n-1], vm.stack[vm.sp-n-2] = vm.stack[vm.sp-n-2], vm.stack[vm.sp-n-1] + return + case *nativeFuncObject: + vm._nativeCall(f, n) + case *boundFuncObject: + vm._nativeCall(&f.nativeFuncObject, n) + case *lazyObject: + obj.self = f.create(obj) + goto repeat + default: + vm.r.typeErrorResult(true, "Not a function: %s", obj.ToString()) + } +} + +func (vm *vm) _nativeCall(f *nativeFuncObject, n int) { + if f.f != nil { + vm.pushCtx() + vm.prg = nil + vm.funcName = f.nameProp.get(nil).String() + ret := f.f(FunctionCall{ + Arguments: vm.stack[vm.sp-n : vm.sp], + This: vm.stack[vm.sp-n-2], + }) + if ret == nil { + ret = _undefined + } + vm.stack[vm.sp-n-2] = ret + vm.popCtx() + } else { + vm.stack[vm.sp-n-2] = _undefined + } + vm.sp -= n + 1 + vm.pc++ +} + +func (vm *vm) clearStack() { + stackTail := vm.stack[vm.sp:] + for i := range stackTail { + stackTail[i] = nil + } + vm.stack = vm.stack[:vm.sp] +} + +type enterFunc uint32 + +func (e enterFunc) exec(vm *vm) { + // Input stack: + // + // callee + // this + // arg0 + // ... + // argN + // <- sp + + // Output stack: + // + // this <- sb + // <- sp + + vm.newStash() + offset := vm.args - int(e) + vm.stash.values = make([]Value, e) + if offset > 0 { + copy(vm.stash.values, vm.stack[vm.sp-vm.args:]) + vm.stash.extraArgs = make([]Value, offset) + copy(vm.stash.extraArgs, vm.stack[vm.sp-offset:]) + } else { + copy(vm.stash.values, vm.stack[vm.sp-vm.args:]) + vv := vm.stash.values[vm.args:] + for i, _ := range vv { + vv[i] = _undefined + } + } + vm.sp -= vm.args + vm.sb = vm.sp - 1 + vm.pc++ +} + +type _ret struct{} + +var ret _ret + +func (_ret) exec(vm *vm) { + // callee -3 + // this -2 + // retval -1 + + vm.stack[vm.sp-3] = vm.stack[vm.sp-1] + vm.sp -= 2 + vm.popCtx() + if vm.pc < 0 { + vm.halt = true + } +} + +type enterFuncStashless struct { + stackSize uint32 + args uint32 +} + +func (e enterFuncStashless) exec(vm *vm) { + vm.sb = vm.sp - vm.args - 1 + var ss int + d := int(e.args) - vm.args + if d > 0 { + ss = int(e.stackSize) + d + vm.args = int(e.args) + } else { + ss = int(e.stackSize) + } + sp := vm.sp + if ss > 0 { + vm.sp += int(ss) + vm.stack.expand(vm.sp) + s := vm.stack[sp:vm.sp] + for i, _ := range s { + s[i] = _undefined + } + } + vm.pc++ +} + +type _retStashless struct{} + +var retStashless _retStashless + +func (_retStashless) exec(vm *vm) { + retval := vm.stack[vm.sp-1] + vm.sp = vm.sb + vm.stack[vm.sp-1] = retval + vm.popCtx() + if vm.pc < 0 { + vm.halt = true + } +} + +type newFunc struct { + prg *Program + name string + length uint32 + strict bool + + srcStart, srcEnd uint32 +} + +func (n *newFunc) exec(vm *vm) { + obj := vm.r.newFunc(n.name, int(n.length), n.strict) + obj.prg = n.prg + obj.stash = vm.stash + obj.src = n.prg.src.src[n.srcStart:n.srcEnd] + vm.push(obj.val) + vm.pc++ +} + +type bindName string + +func (d bindName) exec(vm *vm) { + if vm.stash != nil { + vm.stash.createBinding(string(d)) + } else { + vm.r.globalObject.self._putProp(string(d), _undefined, true, true, false) + } + vm.pc++ +} + +type jne int32 + +func (j jne) exec(vm *vm) { + vm.sp-- + if !vm.stack[vm.sp].ToBoolean() { + vm.pc += int(j) + } else { + vm.pc++ + } +} + +type jeq int32 + +func (j jeq) exec(vm *vm) { + vm.sp-- + if vm.stack[vm.sp].ToBoolean() { + vm.pc += int(j) + } else { + vm.pc++ + } +} + +type jeq1 int32 + +func (j jeq1) exec(vm *vm) { + if vm.stack[vm.sp-1].ToBoolean() { + vm.pc += int(j) + } else { + vm.pc++ + } +} + +type jneq1 int32 + +func (j jneq1) exec(vm *vm) { + if !vm.stack[vm.sp-1].ToBoolean() { + vm.pc += int(j) + } else { + vm.pc++ + } +} + +type _not struct{} + +var not _not + +func (_not) exec(vm *vm) { + if vm.stack[vm.sp-1].ToBoolean() { + vm.stack[vm.sp-1] = valueFalse + } else { + vm.stack[vm.sp-1] = valueTrue + } + vm.pc++ +} + +func toPrimitiveNumber(v Value) Value { + if o, ok := v.(*Object); ok { + return o.self.toPrimitiveNumber() + } + return v +} + +func cmp(px, py Value) Value { + var ret bool + var nx, ny float64 + + if xs, ok := px.assertString(); ok { + if ys, ok := py.assertString(); ok { + ret = xs.compareTo(ys) < 0 + goto end + } + } + + if xi, ok := px.assertInt(); ok { + if yi, ok := py.assertInt(); ok { + ret = xi < yi + goto end + } + } + + nx = px.ToFloat() + ny = py.ToFloat() + + if math.IsNaN(nx) || math.IsNaN(ny) { + return _undefined + } + + ret = nx < ny + +end: + if ret { + return valueTrue + } + return valueFalse + +} + +type _op_lt struct{} + +var op_lt _op_lt + +func (_op_lt) exec(vm *vm) { + left := toPrimitiveNumber(vm.stack[vm.sp-2]) + right := toPrimitiveNumber(vm.stack[vm.sp-1]) + + r := cmp(left, right) + if r == _undefined { + vm.stack[vm.sp-2] = valueFalse + } else { + vm.stack[vm.sp-2] = r + } + vm.sp-- + vm.pc++ +} + +type _op_lte struct{} + +var op_lte _op_lte + +func (_op_lte) exec(vm *vm) { + left := toPrimitiveNumber(vm.stack[vm.sp-2]) + right := toPrimitiveNumber(vm.stack[vm.sp-1]) + + r := cmp(right, left) + if r == _undefined || r == valueTrue { + vm.stack[vm.sp-2] = valueFalse + } else { + vm.stack[vm.sp-2] = valueTrue + } + + vm.sp-- + vm.pc++ +} + +type _op_gt struct{} + +var op_gt _op_gt + +func (_op_gt) exec(vm *vm) { + left := toPrimitiveNumber(vm.stack[vm.sp-2]) + right := toPrimitiveNumber(vm.stack[vm.sp-1]) + + r := cmp(right, left) + if r == _undefined { + vm.stack[vm.sp-2] = valueFalse + } else { + vm.stack[vm.sp-2] = r + } + vm.sp-- + vm.pc++ +} + +type _op_gte struct{} + +var op_gte _op_gte + +func (_op_gte) exec(vm *vm) { + left := toPrimitiveNumber(vm.stack[vm.sp-2]) + right := toPrimitiveNumber(vm.stack[vm.sp-1]) + + r := cmp(left, right) + if r == _undefined || r == valueTrue { + vm.stack[vm.sp-2] = valueFalse + } else { + vm.stack[vm.sp-2] = valueTrue + } + + vm.sp-- + vm.pc++ +} + +type _op_eq struct{} + +var op_eq _op_eq + +func (_op_eq) exec(vm *vm) { + if vm.stack[vm.sp-2].Equals(vm.stack[vm.sp-1]) { + vm.stack[vm.sp-2] = valueTrue + } else { + vm.stack[vm.sp-2] = valueFalse + } + vm.sp-- + vm.pc++ +} + +type _op_neq struct{} + +var op_neq _op_neq + +func (_op_neq) exec(vm *vm) { + if vm.stack[vm.sp-2].Equals(vm.stack[vm.sp-1]) { + vm.stack[vm.sp-2] = valueFalse + } else { + vm.stack[vm.sp-2] = valueTrue + } + vm.sp-- + vm.pc++ +} + +type _op_strict_eq struct{} + +var op_strict_eq _op_strict_eq + +func (_op_strict_eq) exec(vm *vm) { + if vm.stack[vm.sp-2].StrictEquals(vm.stack[vm.sp-1]) { + vm.stack[vm.sp-2] = valueTrue + } else { + vm.stack[vm.sp-2] = valueFalse + } + vm.sp-- + vm.pc++ +} + +type _op_strict_neq struct{} + +var op_strict_neq _op_strict_neq + +func (_op_strict_neq) exec(vm *vm) { + if vm.stack[vm.sp-2].StrictEquals(vm.stack[vm.sp-1]) { + vm.stack[vm.sp-2] = valueFalse + } else { + vm.stack[vm.sp-2] = valueTrue + } + vm.sp-- + vm.pc++ +} + +type _op_instanceof struct{} + +var op_instanceof _op_instanceof + +func (_op_instanceof) exec(vm *vm) { + left := vm.stack[vm.sp-2] + right := vm.r.toObject(vm.stack[vm.sp-1]) + + if right.self.hasInstance(left) { + vm.stack[vm.sp-2] = valueTrue + } else { + vm.stack[vm.sp-2] = valueFalse + } + + vm.sp-- + vm.pc++ +} + +type _op_in struct{} + +var op_in _op_in + +func (_op_in) exec(vm *vm) { + left := vm.stack[vm.sp-2] + right := vm.r.toObject(vm.stack[vm.sp-1]) + + if right.self.hasProperty(left) { + vm.stack[vm.sp-2] = valueTrue + } else { + vm.stack[vm.sp-2] = valueFalse + } + + vm.sp-- + vm.pc++ +} + +type try struct { + catchOffset int32 + finallyOffset int32 + dynamic bool +} + +func (t try) exec(vm *vm) { + o := vm.pc + vm.pc++ + ex := vm.runTry() + if ex != nil && t.catchOffset > 0 { + // run the catch block (in try) + vm.pc = o + int(t.catchOffset) + // TODO: if ex.val is an Error, set the stack property + if t.dynamic { + vm.newStash() + vm.stash.putByIdx(0, ex.val) + } else { + vm.push(ex.val) + } + ex = vm.runTry() + if t.dynamic { + vm.stash = vm.stash.outer + } + } + + if t.finallyOffset > 0 { + pc := vm.pc + // Run finally + vm.pc = o + int(t.finallyOffset) + vm.run() + if vm.prg.code[vm.pc] == retFinally { + vm.pc = pc + } else { + // break or continue out of finally, dropping exception + ex = nil + } + } + + vm.halt = false + + if ex != nil { + panic(ex) + } +} + +type _retFinally struct{} + +var retFinally _retFinally + +func (_retFinally) exec(vm *vm) { + vm.pc++ +} + +type enterCatch string + +func (varName enterCatch) exec(vm *vm) { + vm.stash.names = map[string]uint32{ + string(varName): 0, + } + vm.pc++ +} + +type _throw struct{} + +var throw _throw + +func (_throw) exec(vm *vm) { + panic(vm.stack[vm.sp-1]) +} + +type _new uint32 + +func (n _new) exec(vm *vm) { + obj := vm.r.toObject(vm.stack[vm.sp-1-int(n)]) +repeat: + switch f := obj.self.(type) { + case *funcObject: + args := make([]Value, n) + copy(args, vm.stack[vm.sp-int(n):]) + vm.sp -= int(n) + vm.stack[vm.sp-1] = f.construct(args) + case *nativeFuncObject: + vm._nativeNew(f, int(n)) + case *boundFuncObject: + vm._nativeNew(&f.nativeFuncObject, int(n)) + case *lazyObject: + obj.self = f.create(obj) + goto repeat + default: + vm.r.typeErrorResult(true, "Not a constructor") + } + + vm.pc++ +} + +func (vm *vm) _nativeNew(f *nativeFuncObject, n int) { + if f.construct != nil { + args := make([]Value, n) + copy(args, vm.stack[vm.sp-n:]) + vm.sp -= n + vm.stack[vm.sp-1] = f.construct(args) + } else { + vm.r.typeErrorResult(true, "Not a constructor") + } +} + +type _typeof struct{} + +var typeof _typeof + +func (_typeof) exec(vm *vm) { + var r Value + switch v := vm.stack[vm.sp-1].(type) { + case valueUndefined, valueUnresolved: + r = stringUndefined + case valueNull: + r = stringObjectC + case *Object: + repeat: + switch s := v.self.(type) { + case *funcObject, *nativeFuncObject, *boundFuncObject: + r = stringFunction + case *lazyObject: + v.self = s.create(v) + goto repeat + default: + r = stringObjectC + } + case valueBool: + r = stringBoolean + case valueString: + r = stringString + case valueInt, valueFloat: + r = stringNumber + default: + panic(fmt.Errorf("Unknown type: %T", v)) + } + vm.stack[vm.sp-1] = r + vm.pc++ +} + +type createArgs uint32 + +func (formalArgs createArgs) exec(vm *vm) { + v := &Object{runtime: vm.r} + args := &argumentsObject{} + args.extensible = true + args.prototype = vm.r.global.ObjectPrototype + args.class = "Arguments" + v.self = args + args.val = v + args.length = vm.args + args.init() + i := 0 + c := int(formalArgs) + if vm.args < c { + c = vm.args + } + for ; i < c; i++ { + args._put(strconv.Itoa(i), &mappedProperty{ + valueProperty: valueProperty{ + writable: true, + configurable: true, + enumerable: true, + }, + v: &vm.stash.values[i], + }) + } + + for _, v := range vm.stash.extraArgs { + args._put(strconv.Itoa(i), v) + i++ + } + + args._putProp("callee", vm.stack[vm.sb-1], true, false, true) + vm.push(v) + vm.pc++ +} + +type createArgsStrict uint32 + +func (formalArgs createArgsStrict) exec(vm *vm) { + args := vm.r.newBaseObject(vm.r.global.ObjectPrototype, "Arguments") + i := 0 + c := int(formalArgs) + if vm.args < c { + c = vm.args + } + for _, v := range vm.stash.values[:c] { + args._put(strconv.Itoa(i), v) + i++ + } + + for _, v := range vm.stash.extraArgs { + args._put(strconv.Itoa(i), v) + i++ + } + + args._putProp("length", intToValue(int64(vm.args)), true, false, true) + args._put("callee", vm.r.global.throwerProperty) + args._put("caller", vm.r.global.throwerProperty) + vm.push(args.val) + vm.pc++ +} + +type _enterWith struct{} + +var enterWith _enterWith + +func (_enterWith) exec(vm *vm) { + vm.newStash() + vm.stash.obj = vm.stack[vm.sp-1].ToObject(vm.r).self + vm.sp-- + vm.pc++ +} + +type _leaveWith struct{} + +var leaveWith _leaveWith + +func (_leaveWith) exec(vm *vm) { + vm.stash = vm.stash.outer + vm.pc++ +} + +func emptyIter() (propIterItem, iterNextFunc) { + return propIterItem{}, nil +} + +type _enumerate struct{} + +var enumerate _enumerate + +func (_enumerate) exec(vm *vm) { + v := vm.stack[vm.sp-1] + if v == _undefined || v == _null { + vm.iterStack = append(vm.iterStack, iterStackItem{f: emptyIter}) + } else { + vm.iterStack = append(vm.iterStack, iterStackItem{f: v.ToObject(vm.r).self.enumerate(false, true)}) + } + vm.sp-- + vm.pc++ +} + +type enumNext int32 + +func (jmp enumNext) exec(vm *vm) { + l := len(vm.iterStack) - 1 + item, n := vm.iterStack[l].f() + if n != nil { + vm.iterStack[l].val = newStringValue(item.name) + vm.iterStack[l].f = n + vm.pc++ + } else { + vm.pc += int(jmp) + } +} + +type _enumGet struct{} + +var enumGet _enumGet + +func (_enumGet) exec(vm *vm) { + l := len(vm.iterStack) - 1 + vm.push(vm.iterStack[l].val) + vm.pc++ +} + +type _enumPop struct{} + +var enumPop _enumPop + +func (_enumPop) exec(vm *vm) { + l := len(vm.iterStack) - 1 + vm.iterStack[l] = iterStackItem{} + vm.iterStack = vm.iterStack[:l] + vm.pc++ +} diff --git a/vendor/github.com/go-sourcemap/sourcemap/LICENSE b/vendor/github.com/go-sourcemap/sourcemap/LICENSE new file mode 100644 index 00000000000..405d20f9c66 --- /dev/null +++ b/vendor/github.com/go-sourcemap/sourcemap/LICENSE @@ -0,0 +1,25 @@ +Copyright (c) 2016 The github.com/go-sourcemap/sourcemap Contributors. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above +copyright notice, this list of conditions and the following disclaimer +in the documentation and/or other materials provided with the +distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/vendor/github.com/go-sourcemap/sourcemap/Makefile b/vendor/github.com/go-sourcemap/sourcemap/Makefile new file mode 100644 index 00000000000..161c4fd0fdd --- /dev/null +++ b/vendor/github.com/go-sourcemap/sourcemap/Makefile @@ -0,0 +1,4 @@ +all: + go test ./... + go test ./... -short -race + go vet diff --git a/vendor/github.com/go-sourcemap/sourcemap/README.md b/vendor/github.com/go-sourcemap/sourcemap/README.md new file mode 100644 index 00000000000..ba9b3b881ce --- /dev/null +++ b/vendor/github.com/go-sourcemap/sourcemap/README.md @@ -0,0 +1,43 @@ +# Source maps consumer for Golang + +[![Build Status](https://travis-ci.org/go-sourcemap/sourcemap.svg)](https://travis-ci.org/go-sourcemap/sourcemap) + +API docs: https://godoc.org/github.com/go-sourcemap/sourcemap. +Examples: https://godoc.org/github.com/go-sourcemap/sourcemap#pkg-examples. +Spec: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit. + +## Installation + +Install: + +```shell +go get -u github.com/go-sourcemap/sourcemap +``` + +## Quickstart + +```go +func ExampleParse() { + mapURL := "http://code.jquery.com/jquery-2.0.3.min.map" + resp, err := http.Get(mapURL) + if err != nil { + panic(err) + } + defer resp.Body.Close() + + b, err := ioutil.ReadAll(resp.Body) + if err != nil { + panic(err) + } + + smap, err := sourcemap.Parse(mapURL, b) + if err != nil { + panic(err) + } + + line, column := 5, 6789 + file, fn, line, col, ok := smap.Source(line, column) + fmt.Println(file, fn, line, col, ok) + // Output: http://code.jquery.com/jquery-2.0.3.js apply 4360 27 true +} +``` diff --git a/vendor/github.com/go-sourcemap/sourcemap/consumer.go b/vendor/github.com/go-sourcemap/sourcemap/consumer.go new file mode 100644 index 00000000000..2a65085516f --- /dev/null +++ b/vendor/github.com/go-sourcemap/sourcemap/consumer.go @@ -0,0 +1,233 @@ +package sourcemap + +import ( + "encoding/json" + "fmt" + "net/url" + "path" + "sort" +) + +type sourceMap struct { + Version int `json:"version"` + File string `json:"file"` + SourceRoot string `json:"sourceRoot"` + Sources []string `json:"sources"` + SourcesContent []string `json:"sourcesContent"` + Names []json.Number `json:"names"` + Mappings string `json:"mappings"` + + mappings []mapping +} + +type v3 struct { + sourceMap + Sections []section `json:"sections"` +} + +func (m *sourceMap) parse(sourcemapURL string) error { + if err := checkVersion(m.Version); err != nil { + return err + } + + var sourceRootURL *url.URL + if m.SourceRoot != "" { + u, err := url.Parse(m.SourceRoot) + if err != nil { + return err + } + if u.IsAbs() { + sourceRootURL = u + } + } else if sourcemapURL != "" { + u, err := url.Parse(sourcemapURL) + if err != nil { + return err + } + if u.IsAbs() { + u.Path = path.Dir(u.Path) + sourceRootURL = u + } + } + + for i, src := range m.Sources { + m.Sources[i] = m.absSource(sourceRootURL, src) + } + + mappings, err := parseMappings(m.Mappings) + if err != nil { + return err + } + + m.mappings = mappings + // Free memory. + m.Mappings = "" + + return nil +} + +func (m *sourceMap) absSource(root *url.URL, source string) string { + if path.IsAbs(source) { + return source + } + + if u, err := url.Parse(source); err == nil && u.IsAbs() { + return source + } + + if root != nil { + u := *root + u.Path = path.Join(u.Path, source) + return u.String() + } + + if m.SourceRoot != "" { + return path.Join(m.SourceRoot, source) + } + + return source +} + +type section struct { + Offset struct { + Line int `json:"line"` + Column int `json:"column"` + } `json:"offset"` + Map *sourceMap `json:"map"` +} + +type Consumer struct { + sourcemapURL string + file string + sections []section +} + +func Parse(sourcemapURL string, b []byte) (*Consumer, error) { + v3 := new(v3) + err := json.Unmarshal(b, v3) + if err != nil { + return nil, err + } + + if err := checkVersion(v3.Version); err != nil { + return nil, err + } + + if len(v3.Sections) == 0 { + v3.Sections = append(v3.Sections, section{ + Map: &v3.sourceMap, + }) + } + + for _, s := range v3.Sections { + err := s.Map.parse(sourcemapURL) + if err != nil { + return nil, err + } + } + + reverse(v3.Sections) + return &Consumer{ + sourcemapURL: sourcemapURL, + file: v3.File, + sections: v3.Sections, + }, nil +} + +func (c *Consumer) SourcemapURL() string { + return c.sourcemapURL +} + +// File returns an optional name of the generated code +// that this source map is associated with. +func (c *Consumer) File() string { + return c.file +} + +// Source returns the original source, name, line, and column information +// for the generated source's line and column positions. +func (c *Consumer) Source( + genLine, genColumn int, +) (source, name string, line, column int, ok bool) { + for i := range c.sections { + s := &c.sections[i] + if s.Offset.Line < genLine || + (s.Offset.Line+1 == genLine && s.Offset.Column <= genColumn) { + genLine -= s.Offset.Line + genColumn -= s.Offset.Column + return c.source(s.Map, genLine, genColumn) + } + } + return +} + +func (c *Consumer) source( + m *sourceMap, genLine, genColumn int, +) (source, name string, line, column int, ok bool) { + i := sort.Search(len(m.mappings), func(i int) bool { + m := &m.mappings[i] + if int(m.genLine) == genLine { + return int(m.genColumn) >= genColumn + } + return int(m.genLine) >= genLine + }) + + // Mapping not found. + if i == len(m.mappings) { + return + } + + match := &m.mappings[i] + + // Fuzzy match. + if int(match.genLine) > genLine || int(match.genColumn) > genColumn { + if i == 0 { + return + } + match = &m.mappings[i-1] + } + + if match.sourcesInd >= 0 { + source = m.Sources[match.sourcesInd] + } + if match.namesInd >= 0 { + name = string(m.Names[match.namesInd]) + } + line = int(match.sourceLine) + column = int(match.sourceColumn) + ok = true + return +} + +// SourceContent returns the original source content for the source. +func (c *Consumer) SourceContent(source string) string { + for i := range c.sections { + s := &c.sections[i] + for i, src := range s.Map.Sources { + if src == source { + if i < len(s.Map.SourcesContent) { + return s.Map.SourcesContent[i] + } + break + } + } + } + return "" +} + +func checkVersion(version int) error { + if version == 3 || version == 0 { + return nil + } + return fmt.Errorf( + "sourcemap: got version=%d, but only 3rd version is supported", + version, + ) +} + +func reverse(ss []section) { + last := len(ss) - 1 + for i := 0; i < len(ss)/2; i++ { + ss[i], ss[last-i] = ss[last-i], ss[i] + } +} diff --git a/vendor/github.com/go-sourcemap/sourcemap/internal/base64vlq/base64vlq.go b/vendor/github.com/go-sourcemap/sourcemap/internal/base64vlq/base64vlq.go new file mode 100644 index 00000000000..4804f5a8ffb --- /dev/null +++ b/vendor/github.com/go-sourcemap/sourcemap/internal/base64vlq/base64vlq.go @@ -0,0 +1,90 @@ +package base64vlq + +import "io" + +const encodeStd = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" + +const ( + vlqBaseShift = 5 + vlqBase = 1 << vlqBaseShift + vlqBaseMask = vlqBase - 1 + vlqSignBit = 1 + vlqContinuationBit = vlqBase +) + +var decodeMap [256]byte + +func init() { + for i := 0; i < len(encodeStd); i++ { + decodeMap[encodeStd[i]] = byte(i) + } +} + +func toVLQSigned(n int32) int32 { + if n < 0 { + return -n<<1 + 1 + } + return n << 1 +} + +func fromVLQSigned(n int32) int32 { + isNeg := n&vlqSignBit != 0 + n >>= 1 + if isNeg { + return -n + } + return n +} + +type Encoder struct { + w io.ByteWriter +} + +func NewEncoder(w io.ByteWriter) *Encoder { + return &Encoder{ + w: w, + } +} + +func (enc Encoder) Encode(n int32) error { + n = toVLQSigned(n) + for digit := int32(vlqContinuationBit); digit&vlqContinuationBit != 0; { + digit = n & vlqBaseMask + n >>= vlqBaseShift + if n > 0 { + digit |= vlqContinuationBit + } + + err := enc.w.WriteByte(encodeStd[digit]) + if err != nil { + return err + } + } + return nil +} + +type Decoder struct { + r io.ByteReader +} + +func NewDecoder(r io.ByteReader) Decoder { + return Decoder{ + r: r, + } +} + +func (dec Decoder) Decode() (n int32, err error) { + shift := uint(0) + for continuation := true; continuation; { + c, err := dec.r.ReadByte() + if err != nil { + return 0, err + } + + c = decodeMap[c] + continuation = c&vlqContinuationBit != 0 + n += int32(c&vlqBaseMask) << shift + shift += vlqBaseShift + } + return fromVLQSigned(n), nil +} diff --git a/vendor/github.com/go-sourcemap/sourcemap/mappings.go b/vendor/github.com/go-sourcemap/sourcemap/mappings.go new file mode 100644 index 00000000000..f200ce3c113 --- /dev/null +++ b/vendor/github.com/go-sourcemap/sourcemap/mappings.go @@ -0,0 +1,162 @@ +package sourcemap + +import ( + "errors" + "io" + "strings" + + "github.com/go-sourcemap/sourcemap/internal/base64vlq" +) + +type fn func(m *mappings) (fn, error) + +type mapping struct { + genLine int32 + genColumn int32 + sourcesInd int32 + sourceLine int32 + sourceColumn int32 + namesInd int32 +} + +type mappings struct { + rd *strings.Reader + dec base64vlq.Decoder + + hasName bool + value mapping + + values []mapping +} + +func parseMappings(s string) ([]mapping, error) { + if s == "" { + return nil, errors.New("sourcemap: mappings are empty") + } + + rd := strings.NewReader(s) + m := &mappings{ + rd: rd, + dec: base64vlq.NewDecoder(rd), + + values: make([]mapping, 0, mappingsNumber(s)), + } + m.value.genLine = 1 + m.value.sourceLine = 1 + + err := m.parse() + if err != nil { + return nil, err + } + + values := m.values + m.values = nil + return values, nil +} + +func mappingsNumber(s string) int { + return strings.Count(s, ",") + strings.Count(s, ";") +} + +func (m *mappings) parse() error { + next := parseGenCol + for { + c, err := m.rd.ReadByte() + if err == io.EOF { + m.pushValue() + return nil + } + if err != nil { + return err + } + + switch c { + case ',': + m.pushValue() + next = parseGenCol + case ';': + m.pushValue() + + m.value.genLine++ + m.value.genColumn = 0 + + next = parseGenCol + default: + err := m.rd.UnreadByte() + if err != nil { + return err + } + + next, err = next(m) + if err != nil { + return err + } + } + } +} + +func parseGenCol(m *mappings) (fn, error) { + n, err := m.dec.Decode() + if err != nil { + return nil, err + } + m.value.genColumn += n + return parseSourcesInd, nil +} + +func parseSourcesInd(m *mappings) (fn, error) { + n, err := m.dec.Decode() + if err != nil { + return nil, err + } + m.value.sourcesInd += n + return parseSourceLine, nil +} + +func parseSourceLine(m *mappings) (fn, error) { + n, err := m.dec.Decode() + if err != nil { + return nil, err + } + m.value.sourceLine += n + return parseSourceCol, nil +} + +func parseSourceCol(m *mappings) (fn, error) { + n, err := m.dec.Decode() + if err != nil { + return nil, err + } + m.value.sourceColumn += n + return parseNamesInd, nil +} + +func parseNamesInd(m *mappings) (fn, error) { + n, err := m.dec.Decode() + if err != nil { + return nil, err + } + m.hasName = true + m.value.namesInd += n + return parseGenCol, nil +} + +func (m *mappings) pushValue() { + if m.value.sourceLine == 1 && m.value.sourceColumn == 0 { + return + } + + if m.hasName { + m.values = append(m.values, m.value) + m.hasName = false + } else { + m.values = append(m.values, mapping{ + genLine: m.value.genLine, + genColumn: m.value.genColumn, + sourcesInd: m.value.sourcesInd, + sourceLine: m.value.sourceLine, + sourceColumn: m.value.sourceColumn, + namesInd: -1, + }) + } +} diff --git a/vendor/golang.org/x/text/cases/cases.go b/vendor/golang.org/x/text/cases/cases.go new file mode 100644 index 00000000000..752cdf03167 --- /dev/null +++ b/vendor/golang.org/x/text/cases/cases.go @@ -0,0 +1,162 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:generate go run gen.go gen_trieval.go + +// Package cases provides general and language-specific case mappers. +package cases // import "golang.org/x/text/cases" + +import ( + "golang.org/x/text/language" + "golang.org/x/text/transform" +) + +// References: +// - Unicode Reference Manual Chapter 3.13, 4.2, and 5.18. +// - https://www.unicode.org/reports/tr29/ +// - https://www.unicode.org/Public/6.3.0/ucd/CaseFolding.txt +// - https://www.unicode.org/Public/6.3.0/ucd/SpecialCasing.txt +// - https://www.unicode.org/Public/6.3.0/ucd/DerivedCoreProperties.txt +// - https://www.unicode.org/Public/6.3.0/ucd/auxiliary/WordBreakProperty.txt +// - https://www.unicode.org/Public/6.3.0/ucd/auxiliary/WordBreakTest.txt +// - http://userguide.icu-project.org/transforms/casemappings + +// TODO: +// - Case folding +// - Wide and Narrow? +// - Segmenter option for title casing. +// - ASCII fast paths +// - Encode Soft-Dotted property within trie somehow. + +// A Caser transforms given input to a certain case. It implements +// transform.Transformer. +// +// A Caser may be stateful and should therefore not be shared between +// goroutines. +type Caser struct { + t transform.SpanningTransformer +} + +// Bytes returns a new byte slice with the result of converting b to the case +// form implemented by c. +func (c Caser) Bytes(b []byte) []byte { + b, _, _ = transform.Bytes(c.t, b) + return b +} + +// String returns a string with the result of transforming s to the case form +// implemented by c. +func (c Caser) String(s string) string { + s, _, _ = transform.String(c.t, s) + return s +} + +// Reset resets the Caser to be reused for new input after a previous call to +// Transform. +func (c Caser) Reset() { c.t.Reset() } + +// Transform implements the transform.Transformer interface and transforms the +// given input to the case form implemented by c. +func (c Caser) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + return c.t.Transform(dst, src, atEOF) +} + +// Span implements the transform.SpanningTransformer interface. +func (c Caser) Span(src []byte, atEOF bool) (n int, err error) { + return c.t.Span(src, atEOF) +} + +// Upper returns a Caser for language-specific uppercasing. +func Upper(t language.Tag, opts ...Option) Caser { + return Caser{makeUpper(t, getOpts(opts...))} +} + +// Lower returns a Caser for language-specific lowercasing. +func Lower(t language.Tag, opts ...Option) Caser { + return Caser{makeLower(t, getOpts(opts...))} +} + +// Title returns a Caser for language-specific title casing. It uses an +// approximation of the default Unicode Word Break algorithm. +func Title(t language.Tag, opts ...Option) Caser { + return Caser{makeTitle(t, getOpts(opts...))} +} + +// Fold returns a Caser that implements Unicode case folding. The returned Caser +// is stateless and safe to use concurrently by multiple goroutines. +// +// Case folding does not normalize the input and may not preserve a normal form. +// Use the collate or search package for more convenient and linguistically +// sound comparisons. Use golang.org/x/text/secure/precis for string comparisons +// where security aspects are a concern. +func Fold(opts ...Option) Caser { + return Caser{makeFold(getOpts(opts...))} +} + +// An Option is used to modify the behavior of a Caser. +type Option func(o options) options + +// TODO: consider these options to take a boolean as well, like FinalSigma. +// The advantage of using this approach is that other providers of a lower-case +// algorithm could set different defaults by prefixing a user-provided slice +// of options with their own. This is handy, for instance, for the precis +// package which would override the default to not handle the Greek final sigma. + +var ( + // NoLower disables the lowercasing of non-leading letters for a title + // caser. + NoLower Option = noLower + + // Compact omits mappings in case folding for characters that would grow the + // input. (Unimplemented.) + Compact Option = compact +) + +// TODO: option to preserve a normal form, if applicable? + +type options struct { + noLower bool + simple bool + + // TODO: segmenter, max ignorable, alternative versions, etc. + + ignoreFinalSigma bool +} + +func getOpts(o ...Option) (res options) { + for _, f := range o { + res = f(res) + } + return +} + +func noLower(o options) options { + o.noLower = true + return o +} + +func compact(o options) options { + o.simple = true + return o +} + +// HandleFinalSigma specifies whether the special handling of Greek final sigma +// should be enabled. Unicode prescribes handling the Greek final sigma for all +// locales, but standards like IDNA and PRECIS override this default. +func HandleFinalSigma(enable bool) Option { + if enable { + return handleFinalSigma + } + return ignoreFinalSigma +} + +func ignoreFinalSigma(o options) options { + o.ignoreFinalSigma = true + return o +} + +func handleFinalSigma(o options) options { + o.ignoreFinalSigma = false + return o +} diff --git a/vendor/golang.org/x/text/cases/context.go b/vendor/golang.org/x/text/cases/context.go new file mode 100644 index 00000000000..e9aa9e1936f --- /dev/null +++ b/vendor/golang.org/x/text/cases/context.go @@ -0,0 +1,376 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package cases + +import "golang.org/x/text/transform" + +// A context is used for iterating over source bytes, fetching case info and +// writing to a destination buffer. +// +// Casing operations may need more than one rune of context to decide how a rune +// should be cased. Casing implementations should call checkpoint on context +// whenever it is known to be safe to return the runes processed so far. +// +// It is recommended for implementations to not allow for more than 30 case +// ignorables as lookahead (analogous to the limit in norm) and to use state if +// unbounded lookahead is needed for cased runes. +type context struct { + dst, src []byte + atEOF bool + + pDst int // pDst points past the last written rune in dst. + pSrc int // pSrc points to the start of the currently scanned rune. + + // checkpoints safe to return in Transform, where nDst <= pDst and nSrc <= pSrc. + nDst, nSrc int + err error + + sz int // size of current rune + info info // case information of currently scanned rune + + // State preserved across calls to Transform. + isMidWord bool // false if next cased letter needs to be title-cased. +} + +func (c *context) Reset() { + c.isMidWord = false +} + +// ret returns the return values for the Transform method. It checks whether +// there were insufficient bytes in src to complete and introduces an error +// accordingly, if necessary. +func (c *context) ret() (nDst, nSrc int, err error) { + if c.err != nil || c.nSrc == len(c.src) { + return c.nDst, c.nSrc, c.err + } + // This point is only reached by mappers if there was no short destination + // buffer. This means that the source buffer was exhausted and that c.sz was + // set to 0 by next. + if c.atEOF && c.pSrc == len(c.src) { + return c.pDst, c.pSrc, nil + } + return c.nDst, c.nSrc, transform.ErrShortSrc +} + +// retSpan returns the return values for the Span method. It checks whether +// there were insufficient bytes in src to complete and introduces an error +// accordingly, if necessary. +func (c *context) retSpan() (n int, err error) { + _, nSrc, err := c.ret() + return nSrc, err +} + +// checkpoint sets the return value buffer points for Transform to the current +// positions. +func (c *context) checkpoint() { + if c.err == nil { + c.nDst, c.nSrc = c.pDst, c.pSrc+c.sz + } +} + +// unreadRune causes the last rune read by next to be reread on the next +// invocation of next. Only one unreadRune may be called after a call to next. +func (c *context) unreadRune() { + c.sz = 0 +} + +func (c *context) next() bool { + c.pSrc += c.sz + if c.pSrc == len(c.src) || c.err != nil { + c.info, c.sz = 0, 0 + return false + } + v, sz := trie.lookup(c.src[c.pSrc:]) + c.info, c.sz = info(v), sz + if c.sz == 0 { + if c.atEOF { + // A zero size means we have an incomplete rune. If we are atEOF, + // this means it is an illegal rune, which we will consume one + // byte at a time. + c.sz = 1 + } else { + c.err = transform.ErrShortSrc + return false + } + } + return true +} + +// writeBytes adds bytes to dst. +func (c *context) writeBytes(b []byte) bool { + if len(c.dst)-c.pDst < len(b) { + c.err = transform.ErrShortDst + return false + } + // This loop is faster than using copy. + for _, ch := range b { + c.dst[c.pDst] = ch + c.pDst++ + } + return true +} + +// writeString writes the given string to dst. +func (c *context) writeString(s string) bool { + if len(c.dst)-c.pDst < len(s) { + c.err = transform.ErrShortDst + return false + } + // This loop is faster than using copy. + for i := 0; i < len(s); i++ { + c.dst[c.pDst] = s[i] + c.pDst++ + } + return true +} + +// copy writes the current rune to dst. +func (c *context) copy() bool { + return c.writeBytes(c.src[c.pSrc : c.pSrc+c.sz]) +} + +// copyXOR copies the current rune to dst and modifies it by applying the XOR +// pattern of the case info. It is the responsibility of the caller to ensure +// that this is a rune with a XOR pattern defined. +func (c *context) copyXOR() bool { + if !c.copy() { + return false + } + if c.info&xorIndexBit == 0 { + // Fast path for 6-bit XOR pattern, which covers most cases. + c.dst[c.pDst-1] ^= byte(c.info >> xorShift) + } else { + // Interpret XOR bits as an index. + // TODO: test performance for unrolling this loop. Verify that we have + // at least two bytes and at most three. + idx := c.info >> xorShift + for p := c.pDst - 1; ; p-- { + c.dst[p] ^= xorData[idx] + idx-- + if xorData[idx] == 0 { + break + } + } + } + return true +} + +// hasPrefix returns true if src[pSrc:] starts with the given string. +func (c *context) hasPrefix(s string) bool { + b := c.src[c.pSrc:] + if len(b) < len(s) { + return false + } + for i, c := range b[:len(s)] { + if c != s[i] { + return false + } + } + return true +} + +// caseType returns an info with only the case bits, normalized to either +// cLower, cUpper, cTitle or cUncased. +func (c *context) caseType() info { + cm := c.info & 0x7 + if cm < 4 { + return cm + } + if cm >= cXORCase { + // xor the last bit of the rune with the case type bits. + b := c.src[c.pSrc+c.sz-1] + return info(b&1) ^ cm&0x3 + } + if cm == cIgnorableCased { + return cLower + } + return cUncased +} + +// lower writes the lowercase version of the current rune to dst. +func lower(c *context) bool { + ct := c.caseType() + if c.info&hasMappingMask == 0 || ct == cLower { + return c.copy() + } + if c.info&exceptionBit == 0 { + return c.copyXOR() + } + e := exceptions[c.info>>exceptionShift:] + offset := 2 + e[0]&lengthMask // size of header + fold string + if nLower := (e[1] >> lengthBits) & lengthMask; nLower != noChange { + return c.writeString(e[offset : offset+nLower]) + } + return c.copy() +} + +func isLower(c *context) bool { + ct := c.caseType() + if c.info&hasMappingMask == 0 || ct == cLower { + return true + } + if c.info&exceptionBit == 0 { + c.err = transform.ErrEndOfSpan + return false + } + e := exceptions[c.info>>exceptionShift:] + if nLower := (e[1] >> lengthBits) & lengthMask; nLower != noChange { + c.err = transform.ErrEndOfSpan + return false + } + return true +} + +// upper writes the uppercase version of the current rune to dst. +func upper(c *context) bool { + ct := c.caseType() + if c.info&hasMappingMask == 0 || ct == cUpper { + return c.copy() + } + if c.info&exceptionBit == 0 { + return c.copyXOR() + } + e := exceptions[c.info>>exceptionShift:] + offset := 2 + e[0]&lengthMask // size of header + fold string + // Get length of first special case mapping. + n := (e[1] >> lengthBits) & lengthMask + if ct == cTitle { + // The first special case mapping is for lower. Set n to the second. + if n == noChange { + n = 0 + } + n, e = e[1]&lengthMask, e[n:] + } + if n != noChange { + return c.writeString(e[offset : offset+n]) + } + return c.copy() +} + +// isUpper writes the isUppercase version of the current rune to dst. +func isUpper(c *context) bool { + ct := c.caseType() + if c.info&hasMappingMask == 0 || ct == cUpper { + return true + } + if c.info&exceptionBit == 0 { + c.err = transform.ErrEndOfSpan + return false + } + e := exceptions[c.info>>exceptionShift:] + // Get length of first special case mapping. + n := (e[1] >> lengthBits) & lengthMask + if ct == cTitle { + n = e[1] & lengthMask + } + if n != noChange { + c.err = transform.ErrEndOfSpan + return false + } + return true +} + +// title writes the title case version of the current rune to dst. +func title(c *context) bool { + ct := c.caseType() + if c.info&hasMappingMask == 0 || ct == cTitle { + return c.copy() + } + if c.info&exceptionBit == 0 { + if ct == cLower { + return c.copyXOR() + } + return c.copy() + } + // Get the exception data. + e := exceptions[c.info>>exceptionShift:] + offset := 2 + e[0]&lengthMask // size of header + fold string + + nFirst := (e[1] >> lengthBits) & lengthMask + if nTitle := e[1] & lengthMask; nTitle != noChange { + if nFirst != noChange { + e = e[nFirst:] + } + return c.writeString(e[offset : offset+nTitle]) + } + if ct == cLower && nFirst != noChange { + // Use the uppercase version instead. + return c.writeString(e[offset : offset+nFirst]) + } + // Already in correct case. + return c.copy() +} + +// isTitle reports whether the current rune is in title case. +func isTitle(c *context) bool { + ct := c.caseType() + if c.info&hasMappingMask == 0 || ct == cTitle { + return true + } + if c.info&exceptionBit == 0 { + if ct == cLower { + c.err = transform.ErrEndOfSpan + return false + } + return true + } + // Get the exception data. + e := exceptions[c.info>>exceptionShift:] + if nTitle := e[1] & lengthMask; nTitle != noChange { + c.err = transform.ErrEndOfSpan + return false + } + nFirst := (e[1] >> lengthBits) & lengthMask + if ct == cLower && nFirst != noChange { + c.err = transform.ErrEndOfSpan + return false + } + return true +} + +// foldFull writes the foldFull version of the current rune to dst. +func foldFull(c *context) bool { + if c.info&hasMappingMask == 0 { + return c.copy() + } + ct := c.caseType() + if c.info&exceptionBit == 0 { + if ct != cLower || c.info&inverseFoldBit != 0 { + return c.copyXOR() + } + return c.copy() + } + e := exceptions[c.info>>exceptionShift:] + n := e[0] & lengthMask + if n == 0 { + if ct == cLower { + return c.copy() + } + n = (e[1] >> lengthBits) & lengthMask + } + return c.writeString(e[2 : 2+n]) +} + +// isFoldFull reports whether the current run is mapped to foldFull +func isFoldFull(c *context) bool { + if c.info&hasMappingMask == 0 { + return true + } + ct := c.caseType() + if c.info&exceptionBit == 0 { + if ct != cLower || c.info&inverseFoldBit != 0 { + c.err = transform.ErrEndOfSpan + return false + } + return true + } + e := exceptions[c.info>>exceptionShift:] + n := e[0] & lengthMask + if n == 0 && ct == cLower { + return true + } + c.err = transform.ErrEndOfSpan + return false +} diff --git a/vendor/golang.org/x/text/cases/fold.go b/vendor/golang.org/x/text/cases/fold.go new file mode 100644 index 00000000000..85cc434fac0 --- /dev/null +++ b/vendor/golang.org/x/text/cases/fold.go @@ -0,0 +1,34 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package cases + +import "golang.org/x/text/transform" + +type caseFolder struct{ transform.NopResetter } + +// caseFolder implements the Transformer interface for doing case folding. +func (t *caseFolder) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + c := context{dst: dst, src: src, atEOF: atEOF} + for c.next() { + foldFull(&c) + c.checkpoint() + } + return c.ret() +} + +func (t *caseFolder) Span(src []byte, atEOF bool) (n int, err error) { + c := context{src: src, atEOF: atEOF} + for c.next() && isFoldFull(&c) { + c.checkpoint() + } + return c.retSpan() +} + +func makeFold(o options) transform.SpanningTransformer { + // TODO: Special case folding, through option Language, Special/Turkic, or + // both. + // TODO: Implement Compact options. + return &caseFolder{} +} diff --git a/vendor/golang.org/x/text/cases/icu.go b/vendor/golang.org/x/text/cases/icu.go new file mode 100644 index 00000000000..46530d1e408 --- /dev/null +++ b/vendor/golang.org/x/text/cases/icu.go @@ -0,0 +1,61 @@ +// Copyright 2016 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// +build icu + +package cases + +// Ideally these functions would be defined in a test file, but go test doesn't +// allow CGO in tests. The build tag should ensure either way that these +// functions will not end up in the package. + +// TODO: Ensure that the correct ICU version is set. + +/* +#cgo LDFLAGS: -licui18n.57 -licuuc.57 +#include +#include +#include +#include +#include +*/ +import "C" + +import "unsafe" + +func doICU(tag, caser, input string) string { + err := C.UErrorCode(0) + loc := C.CString(tag) + cm := C.ucasemap_open(loc, C.uint32_t(0), &err) + + buf := make([]byte, len(input)*4) + dst := (*C.char)(unsafe.Pointer(&buf[0])) + src := C.CString(input) + + cn := C.int32_t(0) + + switch caser { + case "fold": + cn = C.ucasemap_utf8FoldCase(cm, + dst, C.int32_t(len(buf)), + src, C.int32_t(len(input)), + &err) + case "lower": + cn = C.ucasemap_utf8ToLower(cm, + dst, C.int32_t(len(buf)), + src, C.int32_t(len(input)), + &err) + case "upper": + cn = C.ucasemap_utf8ToUpper(cm, + dst, C.int32_t(len(buf)), + src, C.int32_t(len(input)), + &err) + case "title": + cn = C.ucasemap_utf8ToTitle(cm, + dst, C.int32_t(len(buf)), + src, C.int32_t(len(input)), + &err) + } + return string(buf[:cn]) +} diff --git a/vendor/golang.org/x/text/cases/info.go b/vendor/golang.org/x/text/cases/info.go new file mode 100644 index 00000000000..87a7c3e9557 --- /dev/null +++ b/vendor/golang.org/x/text/cases/info.go @@ -0,0 +1,82 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package cases + +func (c info) cccVal() info { + if c&exceptionBit != 0 { + return info(exceptions[c>>exceptionShift]) & cccMask + } + return c & cccMask +} + +func (c info) cccType() info { + ccc := c.cccVal() + if ccc <= cccZero { + return cccZero + } + return ccc +} + +// TODO: Implement full Unicode breaking algorithm: +// 1) Implement breaking in separate package. +// 2) Use the breaker here. +// 3) Compare table size and performance of using the more generic breaker. +// +// Note that we can extend the current algorithm to be much more accurate. This +// only makes sense, though, if the performance and/or space penalty of using +// the generic breaker is big. Extra data will only be needed for non-cased +// runes, which means there are sufficient bits left in the caseType. +// ICU prohibits breaking in such cases as well. + +// For the purpose of title casing we use an approximation of the Unicode Word +// Breaking algorithm defined in Annex #29: +// https://www.unicode.org/reports/tr29/#Default_Grapheme_Cluster_Table. +// +// For our approximation, we group the Word Break types into the following +// categories, with associated rules: +// +// 1) Letter: +// ALetter, Hebrew_Letter, Numeric, ExtendNumLet, Extend, Format_FE, ZWJ. +// Rule: Never break between consecutive runes of this category. +// +// 2) Mid: +// MidLetter, MidNumLet, Single_Quote. +// (Cf. case-ignorable: MidLetter, MidNumLet, Single_Quote or cat is Mn, +// Me, Cf, Lm or Sk). +// Rule: Don't break between Letter and Mid, but break between two Mids. +// +// 3) Break: +// Any other category: NewLine, MidNum, CR, LF, Double_Quote, Katakana, and +// Other. +// These categories should always result in a break between two cased letters. +// Rule: Always break. +// +// Note 1: the Katakana and MidNum categories can, in esoteric cases, result in +// preventing a break between two cased letters. For now we will ignore this +// (e.g. [ALetter] [ExtendNumLet] [Katakana] [ExtendNumLet] [ALetter] and +// [ALetter] [Numeric] [MidNum] [Numeric] [ALetter].) +// +// Note 2: the rule for Mid is very approximate, but works in most cases. To +// improve, we could store the categories in the trie value and use a FA to +// manage breaks. See TODO comment above. +// +// Note 3: according to the spec, it is possible for the Extend category to +// introduce breaks between other categories grouped in Letter. However, this +// is undesirable for our purposes. ICU prevents breaks in such cases as well. + +// isBreak returns whether this rune should introduce a break. +func (c info) isBreak() bool { + return c.cccVal() == cccBreak +} + +// isLetter returns whether the rune is of break type ALetter, Hebrew_Letter, +// Numeric, ExtendNumLet, or Extend. +func (c info) isLetter() bool { + ccc := c.cccVal() + if ccc == cccZero { + return !c.isCaseIgnorable() + } + return ccc != cccBreak +} diff --git a/vendor/golang.org/x/text/cases/map.go b/vendor/golang.org/x/text/cases/map.go new file mode 100644 index 00000000000..0f7c6a14bb7 --- /dev/null +++ b/vendor/golang.org/x/text/cases/map.go @@ -0,0 +1,816 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package cases + +// This file contains the definitions of case mappings for all supported +// languages. The rules for the language-specific tailorings were taken and +// modified from the CLDR transform definitions in common/transforms. + +import ( + "strings" + "unicode" + "unicode/utf8" + + "golang.org/x/text/internal" + "golang.org/x/text/language" + "golang.org/x/text/transform" + "golang.org/x/text/unicode/norm" +) + +// A mapFunc takes a context set to the current rune and writes the mapped +// version to the same context. It may advance the context to the next rune. It +// returns whether a checkpoint is possible: whether the pDst bytes written to +// dst so far won't need changing as we see more source bytes. +type mapFunc func(*context) bool + +// A spanFunc takes a context set to the current rune and returns whether this +// rune would be altered when written to the output. It may advance the context +// to the next rune. It returns whether a checkpoint is possible. +type spanFunc func(*context) bool + +// maxIgnorable defines the maximum number of ignorables to consider for +// lookahead operations. +const maxIgnorable = 30 + +// supported lists the language tags for which we have tailorings. +const supported = "und af az el lt nl tr" + +func init() { + tags := []language.Tag{} + for _, s := range strings.Split(supported, " ") { + tags = append(tags, language.MustParse(s)) + } + matcher = internal.NewInheritanceMatcher(tags) + Supported = language.NewCoverage(tags) +} + +var ( + matcher *internal.InheritanceMatcher + + Supported language.Coverage + + // We keep the following lists separate, instead of having a single per- + // language struct, to give the compiler a chance to remove unused code. + + // Some uppercase mappers are stateless, so we can precompute the + // Transformers and save a bit on runtime allocations. + upperFunc = []struct { + upper mapFunc + span spanFunc + }{ + {nil, nil}, // und + {nil, nil}, // af + {aztrUpper(upper), isUpper}, // az + {elUpper, noSpan}, // el + {ltUpper(upper), noSpan}, // lt + {nil, nil}, // nl + {aztrUpper(upper), isUpper}, // tr + } + + undUpper transform.SpanningTransformer = &undUpperCaser{} + undLower transform.SpanningTransformer = &undLowerCaser{} + undLowerIgnoreSigma transform.SpanningTransformer = &undLowerIgnoreSigmaCaser{} + + lowerFunc = []mapFunc{ + nil, // und + nil, // af + aztrLower, // az + nil, // el + ltLower, // lt + nil, // nl + aztrLower, // tr + } + + titleInfos = []struct { + title mapFunc + lower mapFunc + titleSpan spanFunc + rewrite func(*context) + }{ + {title, lower, isTitle, nil}, // und + {title, lower, isTitle, afnlRewrite}, // af + {aztrUpper(title), aztrLower, isTitle, nil}, // az + {title, lower, isTitle, nil}, // el + {ltUpper(title), ltLower, noSpan, nil}, // lt + {nlTitle, lower, nlTitleSpan, afnlRewrite}, // nl + {aztrUpper(title), aztrLower, isTitle, nil}, // tr + } +) + +func makeUpper(t language.Tag, o options) transform.SpanningTransformer { + _, i, _ := matcher.Match(t) + f := upperFunc[i].upper + if f == nil { + return undUpper + } + return &simpleCaser{f: f, span: upperFunc[i].span} +} + +func makeLower(t language.Tag, o options) transform.SpanningTransformer { + _, i, _ := matcher.Match(t) + f := lowerFunc[i] + if f == nil { + if o.ignoreFinalSigma { + return undLowerIgnoreSigma + } + return undLower + } + if o.ignoreFinalSigma { + return &simpleCaser{f: f, span: isLower} + } + return &lowerCaser{ + first: f, + midWord: finalSigma(f), + } +} + +func makeTitle(t language.Tag, o options) transform.SpanningTransformer { + _, i, _ := matcher.Match(t) + x := &titleInfos[i] + lower := x.lower + if o.noLower { + lower = (*context).copy + } else if !o.ignoreFinalSigma { + lower = finalSigma(lower) + } + return &titleCaser{ + title: x.title, + lower: lower, + titleSpan: x.titleSpan, + rewrite: x.rewrite, + } +} + +func noSpan(c *context) bool { + c.err = transform.ErrEndOfSpan + return false +} + +// TODO: consider a similar special case for the fast majority lower case. This +// is a bit more involved so will require some more precise benchmarking to +// justify it. + +type undUpperCaser struct{ transform.NopResetter } + +// undUpperCaser implements the Transformer interface for doing an upper case +// mapping for the root locale (und). It eliminates the need for an allocation +// as it prevents escaping by not using function pointers. +func (t undUpperCaser) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + c := context{dst: dst, src: src, atEOF: atEOF} + for c.next() { + upper(&c) + c.checkpoint() + } + return c.ret() +} + +func (t undUpperCaser) Span(src []byte, atEOF bool) (n int, err error) { + c := context{src: src, atEOF: atEOF} + for c.next() && isUpper(&c) { + c.checkpoint() + } + return c.retSpan() +} + +// undLowerIgnoreSigmaCaser implements the Transformer interface for doing +// a lower case mapping for the root locale (und) ignoring final sigma +// handling. This casing algorithm is used in some performance-critical packages +// like secure/precis and x/net/http/idna, which warrants its special-casing. +type undLowerIgnoreSigmaCaser struct{ transform.NopResetter } + +func (t undLowerIgnoreSigmaCaser) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + c := context{dst: dst, src: src, atEOF: atEOF} + for c.next() && lower(&c) { + c.checkpoint() + } + return c.ret() + +} + +// Span implements a generic lower-casing. This is possible as isLower works +// for all lowercasing variants. All lowercase variants only vary in how they +// transform a non-lowercase letter. They will never change an already lowercase +// letter. In addition, there is no state. +func (t undLowerIgnoreSigmaCaser) Span(src []byte, atEOF bool) (n int, err error) { + c := context{src: src, atEOF: atEOF} + for c.next() && isLower(&c) { + c.checkpoint() + } + return c.retSpan() +} + +type simpleCaser struct { + context + f mapFunc + span spanFunc +} + +// simpleCaser implements the Transformer interface for doing a case operation +// on a rune-by-rune basis. +func (t *simpleCaser) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + c := context{dst: dst, src: src, atEOF: atEOF} + for c.next() && t.f(&c) { + c.checkpoint() + } + return c.ret() +} + +func (t *simpleCaser) Span(src []byte, atEOF bool) (n int, err error) { + c := context{src: src, atEOF: atEOF} + for c.next() && t.span(&c) { + c.checkpoint() + } + return c.retSpan() +} + +// undLowerCaser implements the Transformer interface for doing a lower case +// mapping for the root locale (und) ignoring final sigma handling. This casing +// algorithm is used in some performance-critical packages like secure/precis +// and x/net/http/idna, which warrants its special-casing. +type undLowerCaser struct{ transform.NopResetter } + +func (t undLowerCaser) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + c := context{dst: dst, src: src, atEOF: atEOF} + + for isInterWord := true; c.next(); { + if isInterWord { + if c.info.isCased() { + if !lower(&c) { + break + } + isInterWord = false + } else if !c.copy() { + break + } + } else { + if c.info.isNotCasedAndNotCaseIgnorable() { + if !c.copy() { + break + } + isInterWord = true + } else if !c.hasPrefix("Σ") { + if !lower(&c) { + break + } + } else if !finalSigmaBody(&c) { + break + } + } + c.checkpoint() + } + return c.ret() +} + +func (t undLowerCaser) Span(src []byte, atEOF bool) (n int, err error) { + c := context{src: src, atEOF: atEOF} + for c.next() && isLower(&c) { + c.checkpoint() + } + return c.retSpan() +} + +// lowerCaser implements the Transformer interface. The default Unicode lower +// casing requires different treatment for the first and subsequent characters +// of a word, most notably to handle the Greek final Sigma. +type lowerCaser struct { + undLowerIgnoreSigmaCaser + + context + + first, midWord mapFunc +} + +func (t *lowerCaser) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + t.context = context{dst: dst, src: src, atEOF: atEOF} + c := &t.context + + for isInterWord := true; c.next(); { + if isInterWord { + if c.info.isCased() { + if !t.first(c) { + break + } + isInterWord = false + } else if !c.copy() { + break + } + } else { + if c.info.isNotCasedAndNotCaseIgnorable() { + if !c.copy() { + break + } + isInterWord = true + } else if !t.midWord(c) { + break + } + } + c.checkpoint() + } + return c.ret() +} + +// titleCaser implements the Transformer interface. Title casing algorithms +// distinguish between the first letter of a word and subsequent letters of the +// same word. It uses state to avoid requiring a potentially infinite lookahead. +type titleCaser struct { + context + + // rune mappings used by the actual casing algorithms. + title mapFunc + lower mapFunc + titleSpan spanFunc + + rewrite func(*context) +} + +// Transform implements the standard Unicode title case algorithm as defined in +// Chapter 3 of The Unicode Standard: +// toTitlecase(X): Find the word boundaries in X according to Unicode Standard +// Annex #29, "Unicode Text Segmentation." For each word boundary, find the +// first cased character F following the word boundary. If F exists, map F to +// Titlecase_Mapping(F); then map all characters C between F and the following +// word boundary to Lowercase_Mapping(C). +func (t *titleCaser) Transform(dst, src []byte, atEOF bool) (nDst, nSrc int, err error) { + t.context = context{dst: dst, src: src, atEOF: atEOF, isMidWord: t.isMidWord} + c := &t.context + + if !c.next() { + return c.ret() + } + + for { + p := c.info + if t.rewrite != nil { + t.rewrite(c) + } + + wasMid := p.isMid() + // Break out of this loop on failure to ensure we do not modify the + // state incorrectly. + if p.isCased() { + if !c.isMidWord { + if !t.title(c) { + break + } + c.isMidWord = true + } else if !t.lower(c) { + break + } + } else if !c.copy() { + break + } else if p.isBreak() { + c.isMidWord = false + } + + // As we save the state of the transformer, it is safe to call + // checkpoint after any successful write. + if !(c.isMidWord && wasMid) { + c.checkpoint() + } + + if !c.next() { + break + } + if wasMid && c.info.isMid() { + c.isMidWord = false + } + } + return c.ret() +} + +func (t *titleCaser) Span(src []byte, atEOF bool) (n int, err error) { + t.context = context{src: src, atEOF: atEOF, isMidWord: t.isMidWord} + c := &t.context + + if !c.next() { + return c.retSpan() + } + + for { + p := c.info + if t.rewrite != nil { + t.rewrite(c) + } + + wasMid := p.isMid() + // Break out of this loop on failure to ensure we do not modify the + // state incorrectly. + if p.isCased() { + if !c.isMidWord { + if !t.titleSpan(c) { + break + } + c.isMidWord = true + } else if !isLower(c) { + break + } + } else if p.isBreak() { + c.isMidWord = false + } + // As we save the state of the transformer, it is safe to call + // checkpoint after any successful write. + if !(c.isMidWord && wasMid) { + c.checkpoint() + } + + if !c.next() { + break + } + if wasMid && c.info.isMid() { + c.isMidWord = false + } + } + return c.retSpan() +} + +// finalSigma adds Greek final Sigma handing to another casing function. It +// determines whether a lowercased sigma should be σ or ς, by looking ahead for +// case-ignorables and a cased letters. +func finalSigma(f mapFunc) mapFunc { + return func(c *context) bool { + if !c.hasPrefix("Σ") { + return f(c) + } + return finalSigmaBody(c) + } +} + +func finalSigmaBody(c *context) bool { + // Current rune must be ∑. + + // ::NFD(); + // # 03A3; 03C2; 03A3; 03A3; Final_Sigma; # GREEK CAPITAL LETTER SIGMA + // Σ } [:case-ignorable:]* [:cased:] → σ; + // [:cased:] [:case-ignorable:]* { Σ → ς; + // ::Any-Lower; + // ::NFC(); + + p := c.pDst + c.writeString("ς") + + // TODO: we should do this here, but right now this will never have an + // effect as this is called when the prefix is Sigma, whereas Dutch and + // Afrikaans only test for an apostrophe. + // + // if t.rewrite != nil { + // t.rewrite(c) + // } + + // We need to do one more iteration after maxIgnorable, as a cased + // letter is not an ignorable and may modify the result. + wasMid := false + for i := 0; i < maxIgnorable+1; i++ { + if !c.next() { + return false + } + if !c.info.isCaseIgnorable() { + // All Midword runes are also case ignorable, so we are + // guaranteed to have a letter or word break here. As we are + // unreading the run, there is no need to unset c.isMidWord; + // the title caser will handle this. + if c.info.isCased() { + // p+1 is guaranteed to be in bounds: if writing ς was + // successful, p+1 will contain the second byte of ς. If not, + // this function will have returned after c.next returned false. + c.dst[p+1]++ // ς → σ + } + c.unreadRune() + return true + } + // A case ignorable may also introduce a word break, so we may need + // to continue searching even after detecting a break. + isMid := c.info.isMid() + if (wasMid && isMid) || c.info.isBreak() { + c.isMidWord = false + } + wasMid = isMid + c.copy() + } + return true +} + +// finalSigmaSpan would be the same as isLower. + +// elUpper implements Greek upper casing, which entails removing a predefined +// set of non-blocked modifiers. Note that these accents should not be removed +// for title casing! +// Example: "Οδός" -> "ΟΔΟΣ". +func elUpper(c *context) bool { + // From CLDR: + // [:Greek:] [^[:ccc=Not_Reordered:][:ccc=Above:]]*? { [\u0313\u0314\u0301\u0300\u0306\u0342\u0308\u0304] → ; + // [:Greek:] [^[:ccc=Not_Reordered:][:ccc=Iota_Subscript:]]*? { \u0345 → ; + + r, _ := utf8.DecodeRune(c.src[c.pSrc:]) + oldPDst := c.pDst + if !upper(c) { + return false + } + if !unicode.Is(unicode.Greek, r) { + return true + } + i := 0 + // Take the properties of the uppercased rune that is already written to the + // destination. This saves us the trouble of having to uppercase the + // decomposed rune again. + if b := norm.NFD.Properties(c.dst[oldPDst:]).Decomposition(); b != nil { + // Restore the destination position and process the decomposed rune. + r, sz := utf8.DecodeRune(b) + if r <= 0xFF { // See A.6.1 + return true + } + c.pDst = oldPDst + // Insert the first rune and ignore the modifiers. See A.6.2. + c.writeBytes(b[:sz]) + i = len(b[sz:]) / 2 // Greek modifiers are always of length 2. + } + + for ; i < maxIgnorable && c.next(); i++ { + switch r, _ := utf8.DecodeRune(c.src[c.pSrc:]); r { + // Above and Iota Subscript + case 0x0300, // U+0300 COMBINING GRAVE ACCENT + 0x0301, // U+0301 COMBINING ACUTE ACCENT + 0x0304, // U+0304 COMBINING MACRON + 0x0306, // U+0306 COMBINING BREVE + 0x0308, // U+0308 COMBINING DIAERESIS + 0x0313, // U+0313 COMBINING COMMA ABOVE + 0x0314, // U+0314 COMBINING REVERSED COMMA ABOVE + 0x0342, // U+0342 COMBINING GREEK PERISPOMENI + 0x0345: // U+0345 COMBINING GREEK YPOGEGRAMMENI + // No-op. Gobble the modifier. + + default: + switch v, _ := trie.lookup(c.src[c.pSrc:]); info(v).cccType() { + case cccZero: + c.unreadRune() + return true + + // We don't need to test for IotaSubscript as the only rune that + // qualifies (U+0345) was already excluded in the switch statement + // above. See A.4. + + case cccAbove: + return c.copy() + default: + // Some other modifier. We're still allowed to gobble Greek + // modifiers after this. + c.copy() + } + } + } + return i == maxIgnorable +} + +// TODO: implement elUpperSpan (low-priority: complex and infrequent). + +func ltLower(c *context) bool { + // From CLDR: + // # Introduce an explicit dot above when lowercasing capital I's and J's + // # whenever there are more accents above. + // # (of the accents used in Lithuanian: grave, acute, tilde above, and ogonek) + // # 0049; 0069 0307; 0049; 0049; lt More_Above; # LATIN CAPITAL LETTER I + // # 004A; 006A 0307; 004A; 004A; lt More_Above; # LATIN CAPITAL LETTER J + // # 012E; 012F 0307; 012E; 012E; lt More_Above; # LATIN CAPITAL LETTER I WITH OGONEK + // # 00CC; 0069 0307 0300; 00CC; 00CC; lt; # LATIN CAPITAL LETTER I WITH GRAVE + // # 00CD; 0069 0307 0301; 00CD; 00CD; lt; # LATIN CAPITAL LETTER I WITH ACUTE + // # 0128; 0069 0307 0303; 0128; 0128; lt; # LATIN CAPITAL LETTER I WITH TILDE + // ::NFD(); + // I } [^[:ccc=Not_Reordered:][:ccc=Above:]]* [:ccc=Above:] → i \u0307; + // J } [^[:ccc=Not_Reordered:][:ccc=Above:]]* [:ccc=Above:] → j \u0307; + // I \u0328 (Į) } [^[:ccc=Not_Reordered:][:ccc=Above:]]* [:ccc=Above:] → i \u0328 \u0307; + // I \u0300 (Ì) → i \u0307 \u0300; + // I \u0301 (Í) → i \u0307 \u0301; + // I \u0303 (Ĩ) → i \u0307 \u0303; + // ::Any-Lower(); + // ::NFC(); + + i := 0 + if r := c.src[c.pSrc]; r < utf8.RuneSelf { + lower(c) + if r != 'I' && r != 'J' { + return true + } + } else { + p := norm.NFD.Properties(c.src[c.pSrc:]) + if d := p.Decomposition(); len(d) >= 3 && (d[0] == 'I' || d[0] == 'J') { + // UTF-8 optimization: the decomposition will only have an above + // modifier if the last rune of the decomposition is in [U+300-U+311]. + // In all other cases, a decomposition starting with I is always + // an I followed by modifiers that are not cased themselves. See A.2. + if d[1] == 0xCC && d[2] <= 0x91 { // A.2.4. + if !c.writeBytes(d[:1]) { + return false + } + c.dst[c.pDst-1] += 'a' - 'A' // lower + + // Assumption: modifier never changes on lowercase. See A.1. + // Assumption: all modifiers added have CCC = Above. See A.2.3. + return c.writeString("\u0307") && c.writeBytes(d[1:]) + } + // In all other cases the additional modifiers will have a CCC + // that is less than 230 (Above). We will insert the U+0307, if + // needed, after these modifiers so that a string in FCD form + // will remain so. See A.2.2. + lower(c) + i = 1 + } else { + return lower(c) + } + } + + for ; i < maxIgnorable && c.next(); i++ { + switch c.info.cccType() { + case cccZero: + c.unreadRune() + return true + case cccAbove: + return c.writeString("\u0307") && c.copy() // See A.1. + default: + c.copy() // See A.1. + } + } + return i == maxIgnorable +} + +// ltLowerSpan would be the same as isLower. + +func ltUpper(f mapFunc) mapFunc { + return func(c *context) bool { + // Unicode: + // 0307; 0307; ; ; lt After_Soft_Dotted; # COMBINING DOT ABOVE + // + // From CLDR: + // # Remove \u0307 following soft-dotteds (i, j, and the like), with possible + // # intervening non-230 marks. + // ::NFD(); + // [:Soft_Dotted:] [^[:ccc=Not_Reordered:][:ccc=Above:]]* { \u0307 → ; + // ::Any-Upper(); + // ::NFC(); + + // TODO: See A.5. A soft-dotted rune never has an exception. This would + // allow us to overload the exception bit and encode this property in + // info. Need to measure performance impact of this. + r, _ := utf8.DecodeRune(c.src[c.pSrc:]) + oldPDst := c.pDst + if !f(c) { + return false + } + if !unicode.Is(unicode.Soft_Dotted, r) { + return true + } + + // We don't need to do an NFD normalization, as a soft-dotted rune never + // contains U+0307. See A.3. + + i := 0 + for ; i < maxIgnorable && c.next(); i++ { + switch c.info.cccType() { + case cccZero: + c.unreadRune() + return true + case cccAbove: + if c.hasPrefix("\u0307") { + // We don't do a full NFC, but rather combine runes for + // some of the common cases. (Returning NFC or + // preserving normal form is neither a requirement nor + // a possibility anyway). + if !c.next() { + return false + } + if c.dst[oldPDst] == 'I' && c.pDst == oldPDst+1 && c.src[c.pSrc] == 0xcc { + s := "" + switch c.src[c.pSrc+1] { + case 0x80: // U+0300 COMBINING GRAVE ACCENT + s = "\u00cc" // U+00CC LATIN CAPITAL LETTER I WITH GRAVE + case 0x81: // U+0301 COMBINING ACUTE ACCENT + s = "\u00cd" // U+00CD LATIN CAPITAL LETTER I WITH ACUTE + case 0x83: // U+0303 COMBINING TILDE + s = "\u0128" // U+0128 LATIN CAPITAL LETTER I WITH TILDE + case 0x88: // U+0308 COMBINING DIAERESIS + s = "\u00cf" // U+00CF LATIN CAPITAL LETTER I WITH DIAERESIS + default: + } + if s != "" { + c.pDst = oldPDst + return c.writeString(s) + } + } + } + return c.copy() + default: + c.copy() + } + } + return i == maxIgnorable + } +} + +// TODO: implement ltUpperSpan (low priority: complex and infrequent). + +func aztrUpper(f mapFunc) mapFunc { + return func(c *context) bool { + // i→İ; + if c.src[c.pSrc] == 'i' { + return c.writeString("İ") + } + return f(c) + } +} + +func aztrLower(c *context) (done bool) { + // From CLDR: + // # I and i-dotless; I-dot and i are case pairs in Turkish and Azeri + // # 0130; 0069; 0130; 0130; tr; # LATIN CAPITAL LETTER I WITH DOT ABOVE + // İ→i; + // # When lowercasing, remove dot_above in the sequence I + dot_above, which will turn into i. + // # This matches the behavior of the canonically equivalent I-dot_above + // # 0307; ; 0307; 0307; tr After_I; # COMBINING DOT ABOVE + // # When lowercasing, unless an I is before a dot_above, it turns into a dotless i. + // # 0049; 0131; 0049; 0049; tr Not_Before_Dot; # LATIN CAPITAL LETTER I + // I([^[:ccc=Not_Reordered:][:ccc=Above:]]*)\u0307 → i$1 ; + // I→ı ; + // ::Any-Lower(); + if c.hasPrefix("\u0130") { // İ + return c.writeString("i") + } + if c.src[c.pSrc] != 'I' { + return lower(c) + } + + // We ignore the lower-case I for now, but insert it later when we know + // which form we need. + start := c.pSrc + c.sz + + i := 0 +Loop: + // We check for up to n ignorables before \u0307. As \u0307 is an + // ignorable as well, n is maxIgnorable-1. + for ; i < maxIgnorable && c.next(); i++ { + switch c.info.cccType() { + case cccAbove: + if c.hasPrefix("\u0307") { + return c.writeString("i") && c.writeBytes(c.src[start:c.pSrc]) // ignore U+0307 + } + done = true + break Loop + case cccZero: + c.unreadRune() + done = true + break Loop + default: + // We'll write this rune after we know which starter to use. + } + } + if i == maxIgnorable { + done = true + } + return c.writeString("ı") && c.writeBytes(c.src[start:c.pSrc+c.sz]) && done +} + +// aztrLowerSpan would be the same as isLower. + +func nlTitle(c *context) bool { + // From CLDR: + // # Special titlecasing for Dutch initial "ij". + // ::Any-Title(); + // # Fix up Ij at the beginning of a "word" (per Any-Title, notUAX #29) + // [:^WB=ALetter:] [:WB=Extend:]* [[:WB=MidLetter:][:WB=MidNumLet:]]? { Ij } → IJ ; + if c.src[c.pSrc] != 'I' && c.src[c.pSrc] != 'i' { + return title(c) + } + + if !c.writeString("I") || !c.next() { + return false + } + if c.src[c.pSrc] == 'j' || c.src[c.pSrc] == 'J' { + return c.writeString("J") + } + c.unreadRune() + return true +} + +func nlTitleSpan(c *context) bool { + // From CLDR: + // # Special titlecasing for Dutch initial "ij". + // ::Any-Title(); + // # Fix up Ij at the beginning of a "word" (per Any-Title, notUAX #29) + // [:^WB=ALetter:] [:WB=Extend:]* [[:WB=MidLetter:][:WB=MidNumLet:]]? { Ij } → IJ ; + if c.src[c.pSrc] != 'I' { + return isTitle(c) + } + if !c.next() || c.src[c.pSrc] == 'j' { + return false + } + if c.src[c.pSrc] != 'J' { + c.unreadRune() + } + return true +} + +// Not part of CLDR, but see https://unicode.org/cldr/trac/ticket/7078. +func afnlRewrite(c *context) { + if c.hasPrefix("'") || c.hasPrefix("’") { + c.isMidWord = true + } +} diff --git a/vendor/golang.org/x/text/cases/tables10.0.0.go b/vendor/golang.org/x/text/cases/tables10.0.0.go new file mode 100644 index 00000000000..9800782af5c --- /dev/null +++ b/vendor/golang.org/x/text/cases/tables10.0.0.go @@ -0,0 +1,2253 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +// +build go1.10 + +package cases + +// UnicodeVersion is the Unicode version from which the tables in this package are derived. +const UnicodeVersion = "10.0.0" + +var xorData string = "" + // Size: 185 bytes + "\x00\x06\x07\x00\x01?\x00\x0f\x03\x00\x0f\x12\x00\x0f\x1f\x00\x0f\x1d" + + "\x00\x01\x13\x00\x0f\x16\x00\x0f\x0b\x00\x0f3\x00\x0f7\x00\x01#\x00\x0f?" + + "\x00\x0e'\x00\x0f/\x00\x0e>\x00\x0f*\x00\x0c&\x00\x0c*\x00\x0c;\x00\x0c9" + + "\x00\x0c%\x00\x01\x08\x00\x03\x0d\x00\x03\x09\x00\x02\x06\x00\x02\x02" + + "\x00\x02\x0c\x00\x01\x00\x00\x01\x03\x00\x01\x01\x00\x01 \x00\x01\x0c" + + "\x00\x01\x10\x00\x03\x10\x00\x036 \x00\x037 \x00\x0b#\x10\x00\x0b 0\x00" + + "\x0b!\x10\x00\x0b!0\x00\x0b(\x04\x00\x03\x04\x1e\x00\x03\x0a\x00\x02:" + + "\x00\x02>\x00\x02,\x00\x02\x00\x00\x02\x10\x00\x01<\x00\x01&\x00\x01*" + + "\x00\x01.\x00\x010\x003 \x00\x01\x18\x00\x01(\x00\x01\x1e\x00\x01\x22" + +var exceptions string = "" + // Size: 1852 bytes + "\x00\x12\x10μΜ\x12\x12ssSSSs\x13\x18i̇i̇\x10\x08I\x13\x18ʼnʼN\x11\x08sS" + + "\x12\x12dždžDž\x12\x12dždžDŽ\x10\x12DŽDž\x12\x12ljljLj\x12\x12ljljLJ\x10\x12LJLj\x12\x12" + + "njnjNj\x12\x12njnjNJ\x10\x12NJNj\x13\x18ǰJ̌\x12\x12dzdzDz\x12\x12dzdzDZ\x10\x12DZDz" + + "\x13\x18ⱥⱥ\x13\x18ⱦⱦ\x10\x18Ȿ\x10\x18Ɀ\x10\x18Ɐ\x10\x18Ɑ\x10\x18Ɒ\x10" + + "\x18Ɜ\x10\x18Ɡ\x10\x18Ɥ\x10\x18Ɦ\x10\x18Ɪ\x10\x18Ɫ\x10\x18Ɬ\x10\x18Ɱ\x10" + + "\x18Ɽ\x10\x18Ʇ\x10\x18Ʝ\x10\x18Ʞ2\x10ιΙ\x160ΐΪ́\x160ΰΫ́\x12\x10σΣ" + + "\x12\x10βΒ\x12\x10θΘ\x12\x10φΦ\x12\x10πΠ\x12\x10κΚ\x12\x10ρΡ\x12\x10εΕ" + + "\x14$եւԵՒԵւ\x12\x10вВ\x12\x10дД\x12\x10оО\x12\x10сС\x12\x10тТ\x12\x10тТ" + + "\x12\x10ъЪ\x12\x10ѣѢ\x13\x18ꙋꙊ\x13\x18ẖH̱\x13\x18ẗT̈\x13\x18ẘW̊\x13" + + "\x18ẙY̊\x13\x18aʾAʾ\x13\x18ṡṠ\x12\x10ssß\x14 ὐΥ̓\x160ὒΥ̓̀\x160ὔΥ̓́" + + "\x160ὖΥ̓͂\x15+ἀιἈΙᾈ\x15+ἁιἉΙᾉ\x15+ἂιἊΙᾊ\x15+ἃιἋΙᾋ\x15+ἄιἌΙᾌ\x15+ἅιἍΙᾍ" + + "\x15+ἆιἎΙᾎ\x15+ἇιἏΙᾏ\x15\x1dἀιᾀἈΙ\x15\x1dἁιᾁἉΙ\x15\x1dἂιᾂἊΙ\x15\x1dἃιᾃἋΙ" + + "\x15\x1dἄιᾄἌΙ\x15\x1dἅιᾅἍΙ\x15\x1dἆιᾆἎΙ\x15\x1dἇιᾇἏΙ\x15+ἠιἨΙᾘ\x15+ἡιἩΙᾙ" + + "\x15+ἢιἪΙᾚ\x15+ἣιἫΙᾛ\x15+ἤιἬΙᾜ\x15+ἥιἭΙᾝ\x15+ἦιἮΙᾞ\x15+ἧιἯΙᾟ\x15\x1dἠιᾐἨ" + + "Ι\x15\x1dἡιᾑἩΙ\x15\x1dἢιᾒἪΙ\x15\x1dἣιᾓἫΙ\x15\x1dἤιᾔἬΙ\x15\x1dἥιᾕἭΙ\x15" + + "\x1dἦιᾖἮΙ\x15\x1dἧιᾗἯΙ\x15+ὠιὨΙᾨ\x15+ὡιὩΙᾩ\x15+ὢιὪΙᾪ\x15+ὣιὫΙᾫ\x15+ὤιὬΙᾬ" + + "\x15+ὥιὭΙᾭ\x15+ὦιὮΙᾮ\x15+ὧιὯΙᾯ\x15\x1dὠιᾠὨΙ\x15\x1dὡιᾡὩΙ\x15\x1dὢιᾢὪΙ" + + "\x15\x1dὣιᾣὫΙ\x15\x1dὤιᾤὬΙ\x15\x1dὥιᾥὭΙ\x15\x1dὦιᾦὮΙ\x15\x1dὧιᾧὯΙ\x15-ὰι" + + "ᾺΙᾺͅ\x14#αιΑΙᾼ\x14$άιΆΙΆͅ\x14 ᾶΑ͂\x166ᾶιΑ͂Ιᾼ͂\x14\x1cαιᾳΑΙ\x12\x10ι" + + "Ι\x15-ὴιῊΙῊͅ\x14#ηιΗΙῌ\x14$ήιΉΙΉͅ\x14 ῆΗ͂\x166ῆιΗ͂Ιῌ͂\x14\x1cηιῃΗΙ" + + "\x160ῒΪ̀\x160ΐΪ́\x14 ῖΙ͂\x160ῗΪ͂\x160ῢΫ̀\x160ΰΫ́\x14 ῤΡ" + + "̓\x14 ῦΥ͂\x160ῧΫ͂\x15-ὼιῺΙῺͅ\x14#ωιΩΙῼ\x14$ώιΏΙΏͅ\x14 ῶΩ͂\x166ῶιΩ" + + "͂Ιῼ͂\x14\x1cωιῳΩΙ\x12\x10ωω\x11\x08kk\x12\x10åå\x12\x10ɫɫ\x12\x10ɽɽ" + + "\x10\x10Ⱥ\x10\x10Ⱦ\x12\x10ɑɑ\x12\x10ɱɱ\x12\x10ɐɐ\x12\x10ɒɒ\x12\x10ȿȿ\x12" + + "\x10ɀɀ\x12\x10ɥɥ\x12\x10ɦɦ\x12\x10ɜɜ\x12\x10ɡɡ\x12\x10ɬɬ\x12\x10ɪɪ\x12" + + "\x10ʞʞ\x12\x10ʇʇ\x12\x10ʝʝ\x12\x12ffFFFf\x12\x12fiFIFi\x12\x12flFLFl\x13" + + "\x1bffiFFIFfi\x13\x1bfflFFLFfl\x12\x12stSTSt\x12\x12stSTSt\x14$մնՄՆՄն" + + "\x14$մեՄԵՄե\x14$միՄԻՄի\x14$վնՎՆՎն\x14$մխՄԽՄխ" + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *caseTrie) lookup(s []byte) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return caseValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := caseIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := caseIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = caseIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := caseIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = caseIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = caseIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *caseTrie) lookupUnsafe(s []byte) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return caseValues[c0] + } + i := caseIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = caseIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = caseIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *caseTrie) lookupString(s string) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return caseValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := caseIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := caseIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = caseIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := caseIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = caseIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = caseIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *caseTrie) lookupStringUnsafe(s string) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return caseValues[c0] + } + i := caseIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = caseIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = caseIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// caseTrie. Total size: 11892 bytes (11.61 KiB). Checksum: abd4a0bc39341b30. +type caseTrie struct{} + +func newCaseTrie(i int) *caseTrie { + return &caseTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *caseTrie) lookupValue(n uint32, b byte) uint16 { + switch { + case n < 18: + return uint16(caseValues[n<<6+uint32(b)]) + default: + n -= 18 + return uint16(sparse.lookup(n, b)) + } +} + +// caseValues: 20 blocks, 1280 entries, 2560 bytes +// The third block is the zero block. +var caseValues = [1280]uint16{ + // Block 0x0, offset 0x0 + 0x27: 0x0054, + 0x2e: 0x0054, + 0x30: 0x0010, 0x31: 0x0010, 0x32: 0x0010, 0x33: 0x0010, 0x34: 0x0010, 0x35: 0x0010, + 0x36: 0x0010, 0x37: 0x0010, 0x38: 0x0010, 0x39: 0x0010, 0x3a: 0x0054, + // Block 0x1, offset 0x40 + 0x41: 0x2013, 0x42: 0x2013, 0x43: 0x2013, 0x44: 0x2013, 0x45: 0x2013, + 0x46: 0x2013, 0x47: 0x2013, 0x48: 0x2013, 0x49: 0x2013, 0x4a: 0x2013, 0x4b: 0x2013, + 0x4c: 0x2013, 0x4d: 0x2013, 0x4e: 0x2013, 0x4f: 0x2013, 0x50: 0x2013, 0x51: 0x2013, + 0x52: 0x2013, 0x53: 0x2013, 0x54: 0x2013, 0x55: 0x2013, 0x56: 0x2013, 0x57: 0x2013, + 0x58: 0x2013, 0x59: 0x2013, 0x5a: 0x2013, + 0x5e: 0x0004, 0x5f: 0x0010, 0x60: 0x0004, 0x61: 0x2012, 0x62: 0x2012, 0x63: 0x2012, + 0x64: 0x2012, 0x65: 0x2012, 0x66: 0x2012, 0x67: 0x2012, 0x68: 0x2012, 0x69: 0x2012, + 0x6a: 0x2012, 0x6b: 0x2012, 0x6c: 0x2012, 0x6d: 0x2012, 0x6e: 0x2012, 0x6f: 0x2012, + 0x70: 0x2012, 0x71: 0x2012, 0x72: 0x2012, 0x73: 0x2012, 0x74: 0x2012, 0x75: 0x2012, + 0x76: 0x2012, 0x77: 0x2012, 0x78: 0x2012, 0x79: 0x2012, 0x7a: 0x2012, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x0852, 0xc1: 0x0b53, 0xc2: 0x0113, 0xc3: 0x0112, 0xc4: 0x0113, 0xc5: 0x0112, + 0xc6: 0x0b53, 0xc7: 0x0f13, 0xc8: 0x0f12, 0xc9: 0x0e53, 0xca: 0x1153, 0xcb: 0x0713, + 0xcc: 0x0712, 0xcd: 0x0012, 0xce: 0x1453, 0xcf: 0x1753, 0xd0: 0x1a53, 0xd1: 0x0313, + 0xd2: 0x0312, 0xd3: 0x1d53, 0xd4: 0x2053, 0xd5: 0x2352, 0xd6: 0x2653, 0xd7: 0x2653, + 0xd8: 0x0113, 0xd9: 0x0112, 0xda: 0x2952, 0xdb: 0x0012, 0xdc: 0x1d53, 0xdd: 0x2c53, + 0xde: 0x2f52, 0xdf: 0x3253, 0xe0: 0x0113, 0xe1: 0x0112, 0xe2: 0x0113, 0xe3: 0x0112, + 0xe4: 0x0113, 0xe5: 0x0112, 0xe6: 0x3553, 0xe7: 0x0f13, 0xe8: 0x0f12, 0xe9: 0x3853, + 0xea: 0x0012, 0xeb: 0x0012, 0xec: 0x0113, 0xed: 0x0112, 0xee: 0x3553, 0xef: 0x1f13, + 0xf0: 0x1f12, 0xf1: 0x3b53, 0xf2: 0x3e53, 0xf3: 0x0713, 0xf4: 0x0712, 0xf5: 0x0313, + 0xf6: 0x0312, 0xf7: 0x4153, 0xf8: 0x0113, 0xf9: 0x0112, 0xfa: 0x0012, 0xfb: 0x0010, + 0xfc: 0x0113, 0xfd: 0x0112, 0xfe: 0x0012, 0xff: 0x4452, + // Block 0x4, offset 0x100 + 0x100: 0x0010, 0x101: 0x0010, 0x102: 0x0010, 0x103: 0x0010, 0x104: 0x04cb, 0x105: 0x05c9, + 0x106: 0x06ca, 0x107: 0x078b, 0x108: 0x0889, 0x109: 0x098a, 0x10a: 0x0a4b, 0x10b: 0x0b49, + 0x10c: 0x0c4a, 0x10d: 0x0313, 0x10e: 0x0312, 0x10f: 0x1f13, 0x110: 0x1f12, 0x111: 0x0313, + 0x112: 0x0312, 0x113: 0x0713, 0x114: 0x0712, 0x115: 0x0313, 0x116: 0x0312, 0x117: 0x0f13, + 0x118: 0x0f12, 0x119: 0x0313, 0x11a: 0x0312, 0x11b: 0x0713, 0x11c: 0x0712, 0x11d: 0x1452, + 0x11e: 0x0113, 0x11f: 0x0112, 0x120: 0x0113, 0x121: 0x0112, 0x122: 0x0113, 0x123: 0x0112, + 0x124: 0x0113, 0x125: 0x0112, 0x126: 0x0113, 0x127: 0x0112, 0x128: 0x0113, 0x129: 0x0112, + 0x12a: 0x0113, 0x12b: 0x0112, 0x12c: 0x0113, 0x12d: 0x0112, 0x12e: 0x0113, 0x12f: 0x0112, + 0x130: 0x0d0a, 0x131: 0x0e0b, 0x132: 0x0f09, 0x133: 0x100a, 0x134: 0x0113, 0x135: 0x0112, + 0x136: 0x2353, 0x137: 0x4453, 0x138: 0x0113, 0x139: 0x0112, 0x13a: 0x0113, 0x13b: 0x0112, + 0x13c: 0x0113, 0x13d: 0x0112, 0x13e: 0x0113, 0x13f: 0x0112, + // Block 0x5, offset 0x140 + 0x140: 0x136a, 0x141: 0x0313, 0x142: 0x0312, 0x143: 0x0853, 0x144: 0x4753, 0x145: 0x4a53, + 0x146: 0x0113, 0x147: 0x0112, 0x148: 0x0113, 0x149: 0x0112, 0x14a: 0x0113, 0x14b: 0x0112, + 0x14c: 0x0113, 0x14d: 0x0112, 0x14e: 0x0113, 0x14f: 0x0112, 0x150: 0x140a, 0x151: 0x14aa, + 0x152: 0x154a, 0x153: 0x0b52, 0x154: 0x0b52, 0x155: 0x0012, 0x156: 0x0e52, 0x157: 0x1152, + 0x158: 0x0012, 0x159: 0x1752, 0x15a: 0x0012, 0x15b: 0x1a52, 0x15c: 0x15ea, 0x15d: 0x0012, + 0x15e: 0x0012, 0x15f: 0x0012, 0x160: 0x1d52, 0x161: 0x168a, 0x162: 0x0012, 0x163: 0x2052, + 0x164: 0x0012, 0x165: 0x172a, 0x166: 0x17ca, 0x167: 0x0012, 0x168: 0x2652, 0x169: 0x2652, + 0x16a: 0x186a, 0x16b: 0x190a, 0x16c: 0x19aa, 0x16d: 0x0012, 0x16e: 0x0012, 0x16f: 0x1d52, + 0x170: 0x0012, 0x171: 0x1a4a, 0x172: 0x2c52, 0x173: 0x0012, 0x174: 0x0012, 0x175: 0x3252, + 0x176: 0x0012, 0x177: 0x0012, 0x178: 0x0012, 0x179: 0x0012, 0x17a: 0x0012, 0x17b: 0x0012, + 0x17c: 0x0012, 0x17d: 0x1aea, 0x17e: 0x0012, 0x17f: 0x0012, + // Block 0x6, offset 0x180 + 0x180: 0x3552, 0x181: 0x0012, 0x182: 0x0012, 0x183: 0x3852, 0x184: 0x0012, 0x185: 0x0012, + 0x186: 0x0012, 0x187: 0x1b8a, 0x188: 0x3552, 0x189: 0x4752, 0x18a: 0x3b52, 0x18b: 0x3e52, + 0x18c: 0x4a52, 0x18d: 0x0012, 0x18e: 0x0012, 0x18f: 0x0012, 0x190: 0x0012, 0x191: 0x0012, + 0x192: 0x4152, 0x193: 0x0012, 0x194: 0x0010, 0x195: 0x0012, 0x196: 0x0012, 0x197: 0x0012, + 0x198: 0x0012, 0x199: 0x0012, 0x19a: 0x0012, 0x19b: 0x0012, 0x19c: 0x0012, 0x19d: 0x1c2a, + 0x19e: 0x1cca, 0x19f: 0x0012, 0x1a0: 0x0012, 0x1a1: 0x0012, 0x1a2: 0x0012, 0x1a3: 0x0012, + 0x1a4: 0x0012, 0x1a5: 0x0012, 0x1a6: 0x0012, 0x1a7: 0x0012, 0x1a8: 0x0012, 0x1a9: 0x0012, + 0x1aa: 0x0012, 0x1ab: 0x0012, 0x1ac: 0x0012, 0x1ad: 0x0012, 0x1ae: 0x0012, 0x1af: 0x0012, + 0x1b0: 0x0015, 0x1b1: 0x0015, 0x1b2: 0x0015, 0x1b3: 0x0015, 0x1b4: 0x0015, 0x1b5: 0x0015, + 0x1b6: 0x0015, 0x1b7: 0x0015, 0x1b8: 0x0015, 0x1b9: 0x0014, 0x1ba: 0x0014, 0x1bb: 0x0014, + 0x1bc: 0x0014, 0x1bd: 0x0014, 0x1be: 0x0014, 0x1bf: 0x0014, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x0024, 0x1c1: 0x0024, 0x1c2: 0x0024, 0x1c3: 0x0024, 0x1c4: 0x0024, 0x1c5: 0x1d6d, + 0x1c6: 0x0024, 0x1c7: 0x0034, 0x1c8: 0x0034, 0x1c9: 0x0034, 0x1ca: 0x0024, 0x1cb: 0x0024, + 0x1cc: 0x0024, 0x1cd: 0x0034, 0x1ce: 0x0034, 0x1cf: 0x0014, 0x1d0: 0x0024, 0x1d1: 0x0024, + 0x1d2: 0x0024, 0x1d3: 0x0034, 0x1d4: 0x0034, 0x1d5: 0x0034, 0x1d6: 0x0034, 0x1d7: 0x0024, + 0x1d8: 0x0034, 0x1d9: 0x0034, 0x1da: 0x0034, 0x1db: 0x0024, 0x1dc: 0x0034, 0x1dd: 0x0034, + 0x1de: 0x0034, 0x1df: 0x0034, 0x1e0: 0x0034, 0x1e1: 0x0034, 0x1e2: 0x0034, 0x1e3: 0x0024, + 0x1e4: 0x0024, 0x1e5: 0x0024, 0x1e6: 0x0024, 0x1e7: 0x0024, 0x1e8: 0x0024, 0x1e9: 0x0024, + 0x1ea: 0x0024, 0x1eb: 0x0024, 0x1ec: 0x0024, 0x1ed: 0x0024, 0x1ee: 0x0024, 0x1ef: 0x0024, + 0x1f0: 0x0113, 0x1f1: 0x0112, 0x1f2: 0x0113, 0x1f3: 0x0112, 0x1f4: 0x0014, 0x1f5: 0x0004, + 0x1f6: 0x0113, 0x1f7: 0x0112, 0x1fa: 0x0015, 0x1fb: 0x4d52, + 0x1fc: 0x5052, 0x1fd: 0x5052, 0x1ff: 0x5353, + // Block 0x8, offset 0x200 + 0x204: 0x0004, 0x205: 0x0004, + 0x206: 0x2a13, 0x207: 0x0054, 0x208: 0x2513, 0x209: 0x2713, 0x20a: 0x2513, + 0x20c: 0x5653, 0x20e: 0x5953, 0x20f: 0x5c53, 0x210: 0x1e2a, 0x211: 0x2013, + 0x212: 0x2013, 0x213: 0x2013, 0x214: 0x2013, 0x215: 0x2013, 0x216: 0x2013, 0x217: 0x2013, + 0x218: 0x2013, 0x219: 0x2013, 0x21a: 0x2013, 0x21b: 0x2013, 0x21c: 0x2013, 0x21d: 0x2013, + 0x21e: 0x2013, 0x21f: 0x2013, 0x220: 0x5f53, 0x221: 0x5f53, 0x223: 0x5f53, + 0x224: 0x5f53, 0x225: 0x5f53, 0x226: 0x5f53, 0x227: 0x5f53, 0x228: 0x5f53, 0x229: 0x5f53, + 0x22a: 0x5f53, 0x22b: 0x5f53, 0x22c: 0x2a12, 0x22d: 0x2512, 0x22e: 0x2712, 0x22f: 0x2512, + 0x230: 0x1fea, 0x231: 0x2012, 0x232: 0x2012, 0x233: 0x2012, 0x234: 0x2012, 0x235: 0x2012, + 0x236: 0x2012, 0x237: 0x2012, 0x238: 0x2012, 0x239: 0x2012, 0x23a: 0x2012, 0x23b: 0x2012, + 0x23c: 0x2012, 0x23d: 0x2012, 0x23e: 0x2012, 0x23f: 0x2012, + // Block 0x9, offset 0x240 + 0x240: 0x5f52, 0x241: 0x5f52, 0x242: 0x21aa, 0x243: 0x5f52, 0x244: 0x5f52, 0x245: 0x5f52, + 0x246: 0x5f52, 0x247: 0x5f52, 0x248: 0x5f52, 0x249: 0x5f52, 0x24a: 0x5f52, 0x24b: 0x5f52, + 0x24c: 0x5652, 0x24d: 0x5952, 0x24e: 0x5c52, 0x24f: 0x1813, 0x250: 0x226a, 0x251: 0x232a, + 0x252: 0x0013, 0x253: 0x0013, 0x254: 0x0013, 0x255: 0x23ea, 0x256: 0x24aa, 0x257: 0x1812, + 0x258: 0x0113, 0x259: 0x0112, 0x25a: 0x0113, 0x25b: 0x0112, 0x25c: 0x0113, 0x25d: 0x0112, + 0x25e: 0x0113, 0x25f: 0x0112, 0x260: 0x0113, 0x261: 0x0112, 0x262: 0x0113, 0x263: 0x0112, + 0x264: 0x0113, 0x265: 0x0112, 0x266: 0x0113, 0x267: 0x0112, 0x268: 0x0113, 0x269: 0x0112, + 0x26a: 0x0113, 0x26b: 0x0112, 0x26c: 0x0113, 0x26d: 0x0112, 0x26e: 0x0113, 0x26f: 0x0112, + 0x270: 0x256a, 0x271: 0x262a, 0x272: 0x0b12, 0x273: 0x5352, 0x274: 0x6253, 0x275: 0x26ea, + 0x277: 0x0f13, 0x278: 0x0f12, 0x279: 0x0b13, 0x27a: 0x0113, 0x27b: 0x0112, + 0x27c: 0x0012, 0x27d: 0x4d53, 0x27e: 0x5053, 0x27f: 0x5053, + // Block 0xa, offset 0x280 + 0x280: 0x0812, 0x281: 0x0812, 0x282: 0x0812, 0x283: 0x0812, 0x284: 0x0812, 0x285: 0x0812, + 0x288: 0x0813, 0x289: 0x0813, 0x28a: 0x0813, 0x28b: 0x0813, + 0x28c: 0x0813, 0x28d: 0x0813, 0x290: 0x372a, 0x291: 0x0812, + 0x292: 0x386a, 0x293: 0x0812, 0x294: 0x3a2a, 0x295: 0x0812, 0x296: 0x3bea, 0x297: 0x0812, + 0x299: 0x0813, 0x29b: 0x0813, 0x29d: 0x0813, + 0x29f: 0x0813, 0x2a0: 0x0812, 0x2a1: 0x0812, 0x2a2: 0x0812, 0x2a3: 0x0812, + 0x2a4: 0x0812, 0x2a5: 0x0812, 0x2a6: 0x0812, 0x2a7: 0x0812, 0x2a8: 0x0813, 0x2a9: 0x0813, + 0x2aa: 0x0813, 0x2ab: 0x0813, 0x2ac: 0x0813, 0x2ad: 0x0813, 0x2ae: 0x0813, 0x2af: 0x0813, + 0x2b0: 0x8b52, 0x2b1: 0x8b52, 0x2b2: 0x8e52, 0x2b3: 0x8e52, 0x2b4: 0x9152, 0x2b5: 0x9152, + 0x2b6: 0x9452, 0x2b7: 0x9452, 0x2b8: 0x9752, 0x2b9: 0x9752, 0x2ba: 0x9a52, 0x2bb: 0x9a52, + 0x2bc: 0x4d52, 0x2bd: 0x4d52, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x3daa, 0x2c1: 0x3f8a, 0x2c2: 0x416a, 0x2c3: 0x434a, 0x2c4: 0x452a, 0x2c5: 0x470a, + 0x2c6: 0x48ea, 0x2c7: 0x4aca, 0x2c8: 0x4ca9, 0x2c9: 0x4e89, 0x2ca: 0x5069, 0x2cb: 0x5249, + 0x2cc: 0x5429, 0x2cd: 0x5609, 0x2ce: 0x57e9, 0x2cf: 0x59c9, 0x2d0: 0x5baa, 0x2d1: 0x5d8a, + 0x2d2: 0x5f6a, 0x2d3: 0x614a, 0x2d4: 0x632a, 0x2d5: 0x650a, 0x2d6: 0x66ea, 0x2d7: 0x68ca, + 0x2d8: 0x6aa9, 0x2d9: 0x6c89, 0x2da: 0x6e69, 0x2db: 0x7049, 0x2dc: 0x7229, 0x2dd: 0x7409, + 0x2de: 0x75e9, 0x2df: 0x77c9, 0x2e0: 0x79aa, 0x2e1: 0x7b8a, 0x2e2: 0x7d6a, 0x2e3: 0x7f4a, + 0x2e4: 0x812a, 0x2e5: 0x830a, 0x2e6: 0x84ea, 0x2e7: 0x86ca, 0x2e8: 0x88a9, 0x2e9: 0x8a89, + 0x2ea: 0x8c69, 0x2eb: 0x8e49, 0x2ec: 0x9029, 0x2ed: 0x9209, 0x2ee: 0x93e9, 0x2ef: 0x95c9, + 0x2f0: 0x0812, 0x2f1: 0x0812, 0x2f2: 0x97aa, 0x2f3: 0x99ca, 0x2f4: 0x9b6a, + 0x2f6: 0x9d2a, 0x2f7: 0x9e6a, 0x2f8: 0x0813, 0x2f9: 0x0813, 0x2fa: 0x8b53, 0x2fb: 0x8b53, + 0x2fc: 0xa0e9, 0x2fd: 0x0004, 0x2fe: 0xa28a, 0x2ff: 0x0004, + // Block 0xc, offset 0x300 + 0x300: 0x0004, 0x301: 0x0004, 0x302: 0xa34a, 0x303: 0xa56a, 0x304: 0xa70a, + 0x306: 0xa8ca, 0x307: 0xaa0a, 0x308: 0x8e53, 0x309: 0x8e53, 0x30a: 0x9153, 0x30b: 0x9153, + 0x30c: 0xac89, 0x30d: 0x0004, 0x30e: 0x0004, 0x30f: 0x0004, 0x310: 0x0812, 0x311: 0x0812, + 0x312: 0xae2a, 0x313: 0xafea, 0x316: 0xb1aa, 0x317: 0xb2ea, + 0x318: 0x0813, 0x319: 0x0813, 0x31a: 0x9453, 0x31b: 0x9453, 0x31d: 0x0004, + 0x31e: 0x0004, 0x31f: 0x0004, 0x320: 0x0812, 0x321: 0x0812, 0x322: 0xb4aa, 0x323: 0xb66a, + 0x324: 0xb82a, 0x325: 0x0912, 0x326: 0xb96a, 0x327: 0xbaaa, 0x328: 0x0813, 0x329: 0x0813, + 0x32a: 0x9a53, 0x32b: 0x9a53, 0x32c: 0x0913, 0x32d: 0x0004, 0x32e: 0x0004, 0x32f: 0x0004, + 0x332: 0xbc6a, 0x333: 0xbe8a, 0x334: 0xc02a, + 0x336: 0xc1ea, 0x337: 0xc32a, 0x338: 0x9753, 0x339: 0x9753, 0x33a: 0x4d53, 0x33b: 0x4d53, + 0x33c: 0xc5a9, 0x33d: 0x0004, 0x33e: 0x0004, + // Block 0xd, offset 0x340 + 0x342: 0x0013, + 0x347: 0x0013, 0x34a: 0x0012, 0x34b: 0x0013, + 0x34c: 0x0013, 0x34d: 0x0013, 0x34e: 0x0012, 0x34f: 0x0012, 0x350: 0x0013, 0x351: 0x0013, + 0x352: 0x0013, 0x353: 0x0012, 0x355: 0x0013, + 0x359: 0x0013, 0x35a: 0x0013, 0x35b: 0x0013, 0x35c: 0x0013, 0x35d: 0x0013, + 0x364: 0x0013, 0x366: 0xc74b, 0x368: 0x0013, + 0x36a: 0xc80b, 0x36b: 0xc88b, 0x36c: 0x0013, 0x36d: 0x0013, 0x36f: 0x0012, + 0x370: 0x0013, 0x371: 0x0013, 0x372: 0x9d53, 0x373: 0x0013, 0x374: 0x0012, 0x375: 0x0010, + 0x376: 0x0010, 0x377: 0x0010, 0x378: 0x0010, 0x379: 0x0012, + 0x37c: 0x0012, 0x37d: 0x0012, 0x37e: 0x0013, 0x37f: 0x0013, + // Block 0xe, offset 0x380 + 0x380: 0x1a13, 0x381: 0x1a13, 0x382: 0x1e13, 0x383: 0x1e13, 0x384: 0x1a13, 0x385: 0x1a13, + 0x386: 0x2613, 0x387: 0x2613, 0x388: 0x2a13, 0x389: 0x2a13, 0x38a: 0x2e13, 0x38b: 0x2e13, + 0x38c: 0x2a13, 0x38d: 0x2a13, 0x38e: 0x2613, 0x38f: 0x2613, 0x390: 0xa052, 0x391: 0xa052, + 0x392: 0xa352, 0x393: 0xa352, 0x394: 0xa652, 0x395: 0xa652, 0x396: 0xa352, 0x397: 0xa352, + 0x398: 0xa052, 0x399: 0xa052, 0x39a: 0x1a12, 0x39b: 0x1a12, 0x39c: 0x1e12, 0x39d: 0x1e12, + 0x39e: 0x1a12, 0x39f: 0x1a12, 0x3a0: 0x2612, 0x3a1: 0x2612, 0x3a2: 0x2a12, 0x3a3: 0x2a12, + 0x3a4: 0x2e12, 0x3a5: 0x2e12, 0x3a6: 0x2a12, 0x3a7: 0x2a12, 0x3a8: 0x2612, 0x3a9: 0x2612, + // Block 0xf, offset 0x3c0 + 0x3c0: 0x6552, 0x3c1: 0x6552, 0x3c2: 0x6552, 0x3c3: 0x6552, 0x3c4: 0x6552, 0x3c5: 0x6552, + 0x3c6: 0x6552, 0x3c7: 0x6552, 0x3c8: 0x6552, 0x3c9: 0x6552, 0x3ca: 0x6552, 0x3cb: 0x6552, + 0x3cc: 0x6552, 0x3cd: 0x6552, 0x3ce: 0x6552, 0x3cf: 0x6552, 0x3d0: 0xa952, 0x3d1: 0xa952, + 0x3d2: 0xa952, 0x3d3: 0xa952, 0x3d4: 0xa952, 0x3d5: 0xa952, 0x3d6: 0xa952, 0x3d7: 0xa952, + 0x3d8: 0xa952, 0x3d9: 0xa952, 0x3da: 0xa952, 0x3db: 0xa952, 0x3dc: 0xa952, 0x3dd: 0xa952, + 0x3de: 0xa952, 0x3e0: 0x0113, 0x3e1: 0x0112, 0x3e2: 0xc94b, 0x3e3: 0x8853, + 0x3e4: 0xca0b, 0x3e5: 0xcaca, 0x3e6: 0xcb4a, 0x3e7: 0x0f13, 0x3e8: 0x0f12, 0x3e9: 0x0313, + 0x3ea: 0x0312, 0x3eb: 0x0713, 0x3ec: 0x0712, 0x3ed: 0xcbcb, 0x3ee: 0xcc8b, 0x3ef: 0xcd4b, + 0x3f0: 0xce0b, 0x3f1: 0x0012, 0x3f2: 0x0113, 0x3f3: 0x0112, 0x3f4: 0x0012, 0x3f5: 0x0313, + 0x3f6: 0x0312, 0x3f7: 0x0012, 0x3f8: 0x0012, 0x3f9: 0x0012, 0x3fa: 0x0012, 0x3fb: 0x0012, + 0x3fc: 0x0015, 0x3fd: 0x0015, 0x3fe: 0xcecb, 0x3ff: 0xcf8b, + // Block 0x10, offset 0x400 + 0x400: 0x0113, 0x401: 0x0112, 0x402: 0x0113, 0x403: 0x0112, 0x404: 0x0113, 0x405: 0x0112, + 0x406: 0x0113, 0x407: 0x0112, 0x408: 0x0014, 0x409: 0x0014, 0x40a: 0x0014, 0x40b: 0x0713, + 0x40c: 0x0712, 0x40d: 0xd04b, 0x40e: 0x0012, 0x40f: 0x0010, 0x410: 0x0113, 0x411: 0x0112, + 0x412: 0x0113, 0x413: 0x0112, 0x414: 0x0012, 0x415: 0x0012, 0x416: 0x0113, 0x417: 0x0112, + 0x418: 0x0113, 0x419: 0x0112, 0x41a: 0x0113, 0x41b: 0x0112, 0x41c: 0x0113, 0x41d: 0x0112, + 0x41e: 0x0113, 0x41f: 0x0112, 0x420: 0x0113, 0x421: 0x0112, 0x422: 0x0113, 0x423: 0x0112, + 0x424: 0x0113, 0x425: 0x0112, 0x426: 0x0113, 0x427: 0x0112, 0x428: 0x0113, 0x429: 0x0112, + 0x42a: 0xd10b, 0x42b: 0xd1cb, 0x42c: 0xd28b, 0x42d: 0xd34b, 0x42e: 0xd40b, + 0x430: 0xd4cb, 0x431: 0xd58b, 0x432: 0xd64b, 0x433: 0xac53, 0x434: 0x0113, 0x435: 0x0112, + 0x436: 0x0113, 0x437: 0x0112, + // Block 0x11, offset 0x440 + 0x440: 0xd70a, 0x441: 0xd80a, 0x442: 0xd90a, 0x443: 0xda0a, 0x444: 0xdb6a, 0x445: 0xdcca, + 0x446: 0xddca, + 0x453: 0xdeca, 0x454: 0xe08a, 0x455: 0xe24a, 0x456: 0xe40a, 0x457: 0xe5ca, + 0x45d: 0x0010, + 0x45e: 0x0034, 0x45f: 0x0010, 0x460: 0x0010, 0x461: 0x0010, 0x462: 0x0010, 0x463: 0x0010, + 0x464: 0x0010, 0x465: 0x0010, 0x466: 0x0010, 0x467: 0x0010, 0x468: 0x0010, + 0x46a: 0x0010, 0x46b: 0x0010, 0x46c: 0x0010, 0x46d: 0x0010, 0x46e: 0x0010, 0x46f: 0x0010, + 0x470: 0x0010, 0x471: 0x0010, 0x472: 0x0010, 0x473: 0x0010, 0x474: 0x0010, 0x475: 0x0010, + 0x476: 0x0010, 0x478: 0x0010, 0x479: 0x0010, 0x47a: 0x0010, 0x47b: 0x0010, + 0x47c: 0x0010, 0x47e: 0x0010, + // Block 0x12, offset 0x480 + 0x480: 0x2213, 0x481: 0x2213, 0x482: 0x2613, 0x483: 0x2613, 0x484: 0x2213, 0x485: 0x2213, + 0x486: 0x2e13, 0x487: 0x2e13, 0x488: 0x2213, 0x489: 0x2213, 0x48a: 0x2613, 0x48b: 0x2613, + 0x48c: 0x2213, 0x48d: 0x2213, 0x48e: 0x3e13, 0x48f: 0x3e13, 0x490: 0x2213, 0x491: 0x2213, + 0x492: 0x2613, 0x493: 0x2613, 0x494: 0x2213, 0x495: 0x2213, 0x496: 0x2e13, 0x497: 0x2e13, + 0x498: 0x2213, 0x499: 0x2213, 0x49a: 0x2613, 0x49b: 0x2613, 0x49c: 0x2213, 0x49d: 0x2213, + 0x49e: 0xb553, 0x49f: 0xb553, 0x4a0: 0xb853, 0x4a1: 0xb853, 0x4a2: 0x2212, 0x4a3: 0x2212, + 0x4a4: 0x2612, 0x4a5: 0x2612, 0x4a6: 0x2212, 0x4a7: 0x2212, 0x4a8: 0x2e12, 0x4a9: 0x2e12, + 0x4aa: 0x2212, 0x4ab: 0x2212, 0x4ac: 0x2612, 0x4ad: 0x2612, 0x4ae: 0x2212, 0x4af: 0x2212, + 0x4b0: 0x3e12, 0x4b1: 0x3e12, 0x4b2: 0x2212, 0x4b3: 0x2212, 0x4b4: 0x2612, 0x4b5: 0x2612, + 0x4b6: 0x2212, 0x4b7: 0x2212, 0x4b8: 0x2e12, 0x4b9: 0x2e12, 0x4ba: 0x2212, 0x4bb: 0x2212, + 0x4bc: 0x2612, 0x4bd: 0x2612, 0x4be: 0x2212, 0x4bf: 0x2212, + // Block 0x13, offset 0x4c0 + 0x4c2: 0x0010, + 0x4c7: 0x0010, 0x4c9: 0x0010, 0x4cb: 0x0010, + 0x4cd: 0x0010, 0x4ce: 0x0010, 0x4cf: 0x0010, 0x4d1: 0x0010, + 0x4d2: 0x0010, 0x4d4: 0x0010, 0x4d7: 0x0010, + 0x4d9: 0x0010, 0x4db: 0x0010, 0x4dd: 0x0010, + 0x4df: 0x0010, 0x4e1: 0x0010, 0x4e2: 0x0010, + 0x4e4: 0x0010, 0x4e7: 0x0010, 0x4e8: 0x0010, 0x4e9: 0x0010, + 0x4ea: 0x0010, 0x4ec: 0x0010, 0x4ed: 0x0010, 0x4ee: 0x0010, 0x4ef: 0x0010, + 0x4f0: 0x0010, 0x4f1: 0x0010, 0x4f2: 0x0010, 0x4f4: 0x0010, 0x4f5: 0x0010, + 0x4f6: 0x0010, 0x4f7: 0x0010, 0x4f9: 0x0010, 0x4fa: 0x0010, 0x4fb: 0x0010, + 0x4fc: 0x0010, 0x4fe: 0x0010, +} + +// caseIndex: 25 blocks, 1600 entries, 3200 bytes +// Block 0 is the zero block. +var caseIndex = [1600]uint16{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x12, 0xc3: 0x13, 0xc4: 0x14, 0xc5: 0x15, 0xc6: 0x01, 0xc7: 0x02, + 0xc8: 0x16, 0xc9: 0x03, 0xca: 0x04, 0xcb: 0x17, 0xcc: 0x18, 0xcd: 0x05, 0xce: 0x06, 0xcf: 0x07, + 0xd0: 0x19, 0xd1: 0x1a, 0xd2: 0x1b, 0xd3: 0x1c, 0xd4: 0x1d, 0xd5: 0x1e, 0xd6: 0x1f, 0xd7: 0x20, + 0xd8: 0x21, 0xd9: 0x22, 0xda: 0x23, 0xdb: 0x24, 0xdc: 0x25, 0xdd: 0x26, 0xde: 0x27, 0xdf: 0x28, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, + 0xea: 0x06, 0xeb: 0x07, 0xec: 0x07, 0xed: 0x08, 0xef: 0x09, + 0xf0: 0x14, 0xf3: 0x16, + // Block 0x4, offset 0x100 + 0x120: 0x29, 0x121: 0x2a, 0x122: 0x2b, 0x123: 0x2c, 0x124: 0x2d, 0x125: 0x2e, 0x126: 0x2f, 0x127: 0x30, + 0x128: 0x31, 0x129: 0x32, 0x12a: 0x33, 0x12b: 0x34, 0x12c: 0x35, 0x12d: 0x36, 0x12e: 0x37, 0x12f: 0x38, + 0x130: 0x39, 0x131: 0x3a, 0x132: 0x3b, 0x133: 0x3c, 0x134: 0x3d, 0x135: 0x3e, 0x136: 0x3f, 0x137: 0x40, + 0x138: 0x41, 0x139: 0x42, 0x13a: 0x43, 0x13b: 0x44, 0x13c: 0x45, 0x13d: 0x46, 0x13e: 0x47, 0x13f: 0x48, + // Block 0x5, offset 0x140 + 0x140: 0x49, 0x141: 0x4a, 0x142: 0x4b, 0x143: 0x4c, 0x144: 0x23, 0x145: 0x23, 0x146: 0x23, 0x147: 0x23, + 0x148: 0x23, 0x149: 0x4d, 0x14a: 0x4e, 0x14b: 0x4f, 0x14c: 0x50, 0x14d: 0x51, 0x14e: 0x52, 0x14f: 0x53, + 0x150: 0x54, 0x151: 0x23, 0x152: 0x23, 0x153: 0x23, 0x154: 0x23, 0x155: 0x23, 0x156: 0x23, 0x157: 0x23, + 0x158: 0x23, 0x159: 0x55, 0x15a: 0x56, 0x15b: 0x57, 0x15c: 0x58, 0x15d: 0x59, 0x15e: 0x5a, 0x15f: 0x5b, + 0x160: 0x5c, 0x161: 0x5d, 0x162: 0x5e, 0x163: 0x5f, 0x164: 0x60, 0x165: 0x61, 0x167: 0x62, + 0x168: 0x63, 0x169: 0x64, 0x16a: 0x65, 0x16c: 0x66, 0x16d: 0x67, 0x16e: 0x68, 0x16f: 0x69, + 0x170: 0x6a, 0x171: 0x6b, 0x172: 0x6c, 0x173: 0x6d, 0x174: 0x6e, 0x175: 0x6f, 0x176: 0x70, 0x177: 0x71, + 0x178: 0x72, 0x179: 0x72, 0x17a: 0x73, 0x17b: 0x72, 0x17c: 0x74, 0x17d: 0x08, 0x17e: 0x09, 0x17f: 0x0a, + // Block 0x6, offset 0x180 + 0x180: 0x75, 0x181: 0x76, 0x182: 0x77, 0x183: 0x78, 0x184: 0x0b, 0x185: 0x79, 0x186: 0x7a, + 0x192: 0x7b, 0x193: 0x0c, + 0x1b0: 0x7c, 0x1b1: 0x0d, 0x1b2: 0x72, 0x1b3: 0x7d, 0x1b4: 0x7e, 0x1b5: 0x7f, 0x1b6: 0x80, 0x1b7: 0x81, + 0x1b8: 0x82, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x83, 0x1c2: 0x84, 0x1c3: 0x85, 0x1c4: 0x86, 0x1c5: 0x23, 0x1c6: 0x87, + // Block 0x8, offset 0x200 + 0x200: 0x88, 0x201: 0x23, 0x202: 0x23, 0x203: 0x23, 0x204: 0x23, 0x205: 0x23, 0x206: 0x23, 0x207: 0x23, + 0x208: 0x23, 0x209: 0x23, 0x20a: 0x23, 0x20b: 0x23, 0x20c: 0x23, 0x20d: 0x23, 0x20e: 0x23, 0x20f: 0x23, + 0x210: 0x23, 0x211: 0x23, 0x212: 0x89, 0x213: 0x8a, 0x214: 0x23, 0x215: 0x23, 0x216: 0x23, 0x217: 0x23, + 0x218: 0x8b, 0x219: 0x8c, 0x21a: 0x8d, 0x21b: 0x8e, 0x21c: 0x8f, 0x21d: 0x90, 0x21e: 0x0e, 0x21f: 0x91, + 0x220: 0x92, 0x221: 0x93, 0x222: 0x23, 0x223: 0x94, 0x224: 0x95, 0x225: 0x96, 0x226: 0x97, 0x227: 0x98, + 0x228: 0x99, 0x229: 0x9a, 0x22a: 0x9b, 0x22b: 0x9c, 0x22c: 0x9d, 0x22d: 0x9e, 0x22e: 0x9f, 0x22f: 0xa0, + 0x230: 0x23, 0x231: 0x23, 0x232: 0x23, 0x233: 0x23, 0x234: 0x23, 0x235: 0x23, 0x236: 0x23, 0x237: 0x23, + 0x238: 0x23, 0x239: 0x23, 0x23a: 0x23, 0x23b: 0x23, 0x23c: 0x23, 0x23d: 0x23, 0x23e: 0x23, 0x23f: 0x23, + // Block 0x9, offset 0x240 + 0x240: 0x23, 0x241: 0x23, 0x242: 0x23, 0x243: 0x23, 0x244: 0x23, 0x245: 0x23, 0x246: 0x23, 0x247: 0x23, + 0x248: 0x23, 0x249: 0x23, 0x24a: 0x23, 0x24b: 0x23, 0x24c: 0x23, 0x24d: 0x23, 0x24e: 0x23, 0x24f: 0x23, + 0x250: 0x23, 0x251: 0x23, 0x252: 0x23, 0x253: 0x23, 0x254: 0x23, 0x255: 0x23, 0x256: 0x23, 0x257: 0x23, + 0x258: 0x23, 0x259: 0x23, 0x25a: 0x23, 0x25b: 0x23, 0x25c: 0x23, 0x25d: 0x23, 0x25e: 0x23, 0x25f: 0x23, + 0x260: 0x23, 0x261: 0x23, 0x262: 0x23, 0x263: 0x23, 0x264: 0x23, 0x265: 0x23, 0x266: 0x23, 0x267: 0x23, + 0x268: 0x23, 0x269: 0x23, 0x26a: 0x23, 0x26b: 0x23, 0x26c: 0x23, 0x26d: 0x23, 0x26e: 0x23, 0x26f: 0x23, + 0x270: 0x23, 0x271: 0x23, 0x272: 0x23, 0x273: 0x23, 0x274: 0x23, 0x275: 0x23, 0x276: 0x23, 0x277: 0x23, + 0x278: 0x23, 0x279: 0x23, 0x27a: 0x23, 0x27b: 0x23, 0x27c: 0x23, 0x27d: 0x23, 0x27e: 0x23, 0x27f: 0x23, + // Block 0xa, offset 0x280 + 0x280: 0x23, 0x281: 0x23, 0x282: 0x23, 0x283: 0x23, 0x284: 0x23, 0x285: 0x23, 0x286: 0x23, 0x287: 0x23, + 0x288: 0x23, 0x289: 0x23, 0x28a: 0x23, 0x28b: 0x23, 0x28c: 0x23, 0x28d: 0x23, 0x28e: 0x23, 0x28f: 0x23, + 0x290: 0x23, 0x291: 0x23, 0x292: 0x23, 0x293: 0x23, 0x294: 0x23, 0x295: 0x23, 0x296: 0x23, 0x297: 0x23, + 0x298: 0x23, 0x299: 0x23, 0x29a: 0x23, 0x29b: 0x23, 0x29c: 0x23, 0x29d: 0x23, 0x29e: 0xa1, 0x29f: 0xa2, + // Block 0xb, offset 0x2c0 + 0x2ec: 0x0f, 0x2ed: 0xa3, 0x2ee: 0xa4, 0x2ef: 0xa5, + 0x2f0: 0x23, 0x2f1: 0x23, 0x2f2: 0x23, 0x2f3: 0x23, 0x2f4: 0xa6, 0x2f5: 0xa7, 0x2f6: 0xa8, 0x2f7: 0xa9, + 0x2f8: 0xaa, 0x2f9: 0xab, 0x2fa: 0x23, 0x2fb: 0xac, 0x2fc: 0xad, 0x2fd: 0xae, 0x2fe: 0xaf, 0x2ff: 0xb0, + // Block 0xc, offset 0x300 + 0x300: 0xb1, 0x301: 0xb2, 0x302: 0x23, 0x303: 0xb3, 0x305: 0xb4, 0x307: 0xb5, + 0x30a: 0xb6, 0x30b: 0xb7, 0x30c: 0xb8, 0x30d: 0xb9, 0x30e: 0xba, 0x30f: 0xbb, + 0x310: 0xbc, 0x311: 0xbd, 0x312: 0xbe, 0x313: 0xbf, 0x314: 0xc0, 0x315: 0xc1, + 0x318: 0x23, 0x319: 0x23, 0x31a: 0x23, 0x31b: 0x23, 0x31c: 0xc2, 0x31d: 0xc3, + 0x320: 0xc4, 0x321: 0xc5, 0x322: 0xc6, 0x323: 0xc7, 0x324: 0xc8, 0x326: 0xc9, + 0x328: 0xca, 0x329: 0xcb, 0x32a: 0xcc, 0x32b: 0xcd, 0x32c: 0x5f, 0x32d: 0xce, 0x32e: 0xcf, + 0x330: 0x23, 0x331: 0xd0, 0x332: 0xd1, 0x333: 0xd2, + // Block 0xd, offset 0x340 + 0x340: 0xd3, 0x341: 0xd4, 0x342: 0xd5, 0x343: 0xd6, 0x344: 0xd7, 0x345: 0xd8, 0x346: 0xd9, 0x347: 0xda, + 0x348: 0xdb, 0x34a: 0xdc, 0x34b: 0xdd, 0x34c: 0xde, 0x34d: 0xdf, + 0x350: 0xe0, 0x351: 0xe1, 0x352: 0xe2, 0x353: 0xe3, 0x356: 0xe4, 0x357: 0xe5, + 0x358: 0xe6, 0x359: 0xe7, 0x35a: 0xe8, 0x35b: 0xe9, 0x35c: 0xea, + 0x362: 0xeb, 0x363: 0xec, + 0x368: 0xed, 0x369: 0xee, 0x36a: 0xef, 0x36b: 0xf0, + 0x370: 0xf1, 0x371: 0xf2, 0x372: 0xf3, 0x374: 0xf4, 0x375: 0xf5, + // Block 0xe, offset 0x380 + 0x380: 0x23, 0x381: 0x23, 0x382: 0x23, 0x383: 0x23, 0x384: 0x23, 0x385: 0x23, 0x386: 0x23, 0x387: 0x23, + 0x388: 0x23, 0x389: 0x23, 0x38a: 0x23, 0x38b: 0x23, 0x38c: 0x23, 0x38d: 0x23, 0x38e: 0xf6, + 0x390: 0x23, 0x391: 0xf7, 0x392: 0x23, 0x393: 0x23, 0x394: 0x23, 0x395: 0xf8, + // Block 0xf, offset 0x3c0 + 0x3c0: 0x23, 0x3c1: 0x23, 0x3c2: 0x23, 0x3c3: 0x23, 0x3c4: 0x23, 0x3c5: 0x23, 0x3c6: 0x23, 0x3c7: 0x23, + 0x3c8: 0x23, 0x3c9: 0x23, 0x3ca: 0x23, 0x3cb: 0x23, 0x3cc: 0x23, 0x3cd: 0x23, 0x3ce: 0x23, 0x3cf: 0x23, + 0x3d0: 0xf7, + // Block 0x10, offset 0x400 + 0x410: 0x23, 0x411: 0x23, 0x412: 0x23, 0x413: 0x23, 0x414: 0x23, 0x415: 0x23, 0x416: 0x23, 0x417: 0x23, + 0x418: 0x23, 0x419: 0xf9, + // Block 0x11, offset 0x440 + 0x460: 0x23, 0x461: 0x23, 0x462: 0x23, 0x463: 0x23, 0x464: 0x23, 0x465: 0x23, 0x466: 0x23, 0x467: 0x23, + 0x468: 0xf0, 0x469: 0xfa, 0x46b: 0xfb, 0x46c: 0xfc, 0x46d: 0xfd, 0x46e: 0xfe, + 0x47c: 0x23, 0x47d: 0xff, 0x47e: 0x100, 0x47f: 0x101, + // Block 0x12, offset 0x480 + 0x4b0: 0x23, 0x4b1: 0x102, 0x4b2: 0x103, + // Block 0x13, offset 0x4c0 + 0x4c5: 0x104, 0x4c6: 0x105, + 0x4c9: 0x106, + 0x4d0: 0x107, 0x4d1: 0x108, 0x4d2: 0x109, 0x4d3: 0x10a, 0x4d4: 0x10b, 0x4d5: 0x10c, 0x4d6: 0x10d, 0x4d7: 0x10e, + 0x4d8: 0x10f, 0x4d9: 0x110, 0x4da: 0x111, 0x4db: 0x112, 0x4dc: 0x113, 0x4dd: 0x114, 0x4de: 0x115, 0x4df: 0x116, + 0x4e8: 0x117, 0x4e9: 0x118, 0x4ea: 0x119, + // Block 0x14, offset 0x500 + 0x500: 0x11a, + 0x520: 0x23, 0x521: 0x23, 0x522: 0x23, 0x523: 0x11b, 0x524: 0x10, 0x525: 0x11c, + 0x538: 0x11d, 0x539: 0x11, 0x53a: 0x11e, + // Block 0x15, offset 0x540 + 0x544: 0x11f, 0x545: 0x120, 0x546: 0x121, + 0x54f: 0x122, + // Block 0x16, offset 0x580 + 0x590: 0x0a, 0x591: 0x0b, 0x592: 0x0c, 0x593: 0x0d, 0x594: 0x0e, 0x596: 0x0f, + 0x59b: 0x10, 0x59d: 0x11, 0x59e: 0x12, 0x59f: 0x13, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x123, 0x5c1: 0x124, 0x5c4: 0x124, 0x5c5: 0x124, 0x5c6: 0x124, 0x5c7: 0x125, + // Block 0x18, offset 0x600 + 0x620: 0x15, +} + +// sparseOffsets: 277 entries, 554 bytes +var sparseOffsets = []uint16{0x0, 0x9, 0xf, 0x18, 0x24, 0x2e, 0x35, 0x38, 0x3c, 0x3f, 0x43, 0x4d, 0x4f, 0x54, 0x64, 0x6b, 0x70, 0x7e, 0x7f, 0x8d, 0x9c, 0xa6, 0xa9, 0xaf, 0xb7, 0xba, 0xbc, 0xca, 0xd0, 0xde, 0xe9, 0xf5, 0x100, 0x10c, 0x116, 0x122, 0x12d, 0x139, 0x145, 0x14d, 0x155, 0x15f, 0x16a, 0x176, 0x17d, 0x188, 0x18d, 0x195, 0x198, 0x19d, 0x1a1, 0x1a5, 0x1ac, 0x1b5, 0x1bd, 0x1be, 0x1c7, 0x1ce, 0x1d6, 0x1dc, 0x1e2, 0x1e7, 0x1eb, 0x1ee, 0x1f0, 0x1f3, 0x1f8, 0x1f9, 0x1fb, 0x1fd, 0x1ff, 0x206, 0x20b, 0x20f, 0x218, 0x21b, 0x21e, 0x224, 0x225, 0x230, 0x231, 0x232, 0x237, 0x244, 0x24c, 0x254, 0x25d, 0x266, 0x26f, 0x274, 0x277, 0x280, 0x28d, 0x28f, 0x296, 0x298, 0x2a4, 0x2a5, 0x2b0, 0x2b8, 0x2c0, 0x2c6, 0x2c7, 0x2d5, 0x2da, 0x2dd, 0x2e2, 0x2e6, 0x2ec, 0x2f1, 0x2f4, 0x2f9, 0x2fe, 0x2ff, 0x305, 0x307, 0x308, 0x30a, 0x30c, 0x30f, 0x310, 0x312, 0x315, 0x31b, 0x31f, 0x321, 0x326, 0x32d, 0x331, 0x33a, 0x33b, 0x343, 0x347, 0x34c, 0x354, 0x35a, 0x360, 0x36a, 0x36f, 0x378, 0x37e, 0x385, 0x389, 0x391, 0x393, 0x395, 0x398, 0x39a, 0x39c, 0x39d, 0x39e, 0x3a0, 0x3a2, 0x3a8, 0x3ad, 0x3af, 0x3b5, 0x3b8, 0x3ba, 0x3c0, 0x3c5, 0x3c7, 0x3c8, 0x3c9, 0x3ca, 0x3cc, 0x3ce, 0x3d0, 0x3d3, 0x3d5, 0x3d8, 0x3e0, 0x3e3, 0x3e7, 0x3ef, 0x3f1, 0x3f2, 0x3f3, 0x3f5, 0x3fb, 0x3fd, 0x3fe, 0x400, 0x402, 0x404, 0x411, 0x412, 0x413, 0x417, 0x419, 0x41a, 0x41b, 0x41c, 0x41d, 0x421, 0x425, 0x42b, 0x42d, 0x434, 0x437, 0x43b, 0x441, 0x44a, 0x450, 0x456, 0x460, 0x46a, 0x46c, 0x473, 0x479, 0x47f, 0x485, 0x488, 0x48e, 0x491, 0x499, 0x49a, 0x4a1, 0x4a2, 0x4a5, 0x4af, 0x4b5, 0x4bb, 0x4bc, 0x4c2, 0x4c5, 0x4cd, 0x4d4, 0x4db, 0x4dc, 0x4dd, 0x4de, 0x4df, 0x4e1, 0x4e3, 0x4e5, 0x4e9, 0x4ea, 0x4ec, 0x4ed, 0x4ee, 0x4f0, 0x4f5, 0x4fa, 0x4fe, 0x4ff, 0x502, 0x506, 0x511, 0x515, 0x51d, 0x522, 0x526, 0x529, 0x52d, 0x530, 0x533, 0x538, 0x53c, 0x540, 0x544, 0x548, 0x54a, 0x54c, 0x54f, 0x554, 0x556, 0x55b, 0x564, 0x569, 0x56a, 0x56d, 0x56e, 0x56f, 0x571, 0x572, 0x573} + +// sparseValues: 1395 entries, 5580 bytes +var sparseValues = [1395]valueRange{ + // Block 0x0, offset 0x0 + {value: 0x0004, lo: 0xa8, hi: 0xa8}, + {value: 0x0012, lo: 0xaa, hi: 0xaa}, + {value: 0x0014, lo: 0xad, hi: 0xad}, + {value: 0x0004, lo: 0xaf, hi: 0xaf}, + {value: 0x0004, lo: 0xb4, hi: 0xb4}, + {value: 0x002a, lo: 0xb5, hi: 0xb5}, + {value: 0x0054, lo: 0xb7, hi: 0xb7}, + {value: 0x0004, lo: 0xb8, hi: 0xb8}, + {value: 0x0012, lo: 0xba, hi: 0xba}, + // Block 0x1, offset 0x9 + {value: 0x2013, lo: 0x80, hi: 0x96}, + {value: 0x2013, lo: 0x98, hi: 0x9e}, + {value: 0x00ea, lo: 0x9f, hi: 0x9f}, + {value: 0x2012, lo: 0xa0, hi: 0xb6}, + {value: 0x2012, lo: 0xb8, hi: 0xbe}, + {value: 0x0252, lo: 0xbf, hi: 0xbf}, + // Block 0x2, offset 0xf + {value: 0x0117, lo: 0x80, hi: 0xaf}, + {value: 0x01eb, lo: 0xb0, hi: 0xb0}, + {value: 0x02ea, lo: 0xb1, hi: 0xb1}, + {value: 0x0117, lo: 0xb2, hi: 0xb7}, + {value: 0x0012, lo: 0xb8, hi: 0xb8}, + {value: 0x0316, lo: 0xb9, hi: 0xba}, + {value: 0x0716, lo: 0xbb, hi: 0xbc}, + {value: 0x0316, lo: 0xbd, hi: 0xbe}, + {value: 0x0553, lo: 0xbf, hi: 0xbf}, + // Block 0x3, offset 0x18 + {value: 0x0552, lo: 0x80, hi: 0x80}, + {value: 0x0316, lo: 0x81, hi: 0x82}, + {value: 0x0716, lo: 0x83, hi: 0x84}, + {value: 0x0316, lo: 0x85, hi: 0x86}, + {value: 0x0f16, lo: 0x87, hi: 0x88}, + {value: 0x034a, lo: 0x89, hi: 0x89}, + {value: 0x0117, lo: 0x8a, hi: 0xb7}, + {value: 0x0253, lo: 0xb8, hi: 0xb8}, + {value: 0x0316, lo: 0xb9, hi: 0xba}, + {value: 0x0716, lo: 0xbb, hi: 0xbc}, + {value: 0x0316, lo: 0xbd, hi: 0xbe}, + {value: 0x044a, lo: 0xbf, hi: 0xbf}, + // Block 0x4, offset 0x24 + {value: 0x0117, lo: 0x80, hi: 0x9f}, + {value: 0x2f53, lo: 0xa0, hi: 0xa0}, + {value: 0x0012, lo: 0xa1, hi: 0xa1}, + {value: 0x0117, lo: 0xa2, hi: 0xb3}, + {value: 0x0012, lo: 0xb4, hi: 0xb9}, + {value: 0x10cb, lo: 0xba, hi: 0xba}, + {value: 0x0716, lo: 0xbb, hi: 0xbc}, + {value: 0x2953, lo: 0xbd, hi: 0xbd}, + {value: 0x11cb, lo: 0xbe, hi: 0xbe}, + {value: 0x12ca, lo: 0xbf, hi: 0xbf}, + // Block 0x5, offset 0x2e + {value: 0x0015, lo: 0x80, hi: 0x81}, + {value: 0x0014, lo: 0x82, hi: 0x97}, + {value: 0x0004, lo: 0x98, hi: 0x9d}, + {value: 0x0014, lo: 0x9e, hi: 0x9f}, + {value: 0x0015, lo: 0xa0, hi: 0xa4}, + {value: 0x0004, lo: 0xa5, hi: 0xab}, + {value: 0x0014, lo: 0xac, hi: 0xbf}, + // Block 0x6, offset 0x35 + {value: 0x0024, lo: 0x80, hi: 0x94}, + {value: 0x0034, lo: 0x95, hi: 0xbc}, + {value: 0x0024, lo: 0xbd, hi: 0xbf}, + // Block 0x7, offset 0x38 + {value: 0x6553, lo: 0x80, hi: 0x8f}, + {value: 0x2013, lo: 0x90, hi: 0x9f}, + {value: 0x5f53, lo: 0xa0, hi: 0xaf}, + {value: 0x2012, lo: 0xb0, hi: 0xbf}, + // Block 0x8, offset 0x3c + {value: 0x5f52, lo: 0x80, hi: 0x8f}, + {value: 0x6552, lo: 0x90, hi: 0x9f}, + {value: 0x0117, lo: 0xa0, hi: 0xbf}, + // Block 0x9, offset 0x3f + {value: 0x0117, lo: 0x80, hi: 0x81}, + {value: 0x0024, lo: 0x83, hi: 0x87}, + {value: 0x0014, lo: 0x88, hi: 0x89}, + {value: 0x0117, lo: 0x8a, hi: 0xbf}, + // Block 0xa, offset 0x43 + {value: 0x0f13, lo: 0x80, hi: 0x80}, + {value: 0x0316, lo: 0x81, hi: 0x82}, + {value: 0x0716, lo: 0x83, hi: 0x84}, + {value: 0x0316, lo: 0x85, hi: 0x86}, + {value: 0x0f16, lo: 0x87, hi: 0x88}, + {value: 0x0316, lo: 0x89, hi: 0x8a}, + {value: 0x0716, lo: 0x8b, hi: 0x8c}, + {value: 0x0316, lo: 0x8d, hi: 0x8e}, + {value: 0x0f12, lo: 0x8f, hi: 0x8f}, + {value: 0x0117, lo: 0x90, hi: 0xbf}, + // Block 0xb, offset 0x4d + {value: 0x0117, lo: 0x80, hi: 0xaf}, + {value: 0x6553, lo: 0xb1, hi: 0xbf}, + // Block 0xc, offset 0x4f + {value: 0x3013, lo: 0x80, hi: 0x8f}, + {value: 0x6853, lo: 0x90, hi: 0x96}, + {value: 0x0014, lo: 0x99, hi: 0x99}, + {value: 0x6552, lo: 0xa1, hi: 0xaf}, + {value: 0x3012, lo: 0xb0, hi: 0xbf}, + // Block 0xd, offset 0x54 + {value: 0x6852, lo: 0x80, hi: 0x86}, + {value: 0x27aa, lo: 0x87, hi: 0x87}, + {value: 0x0034, lo: 0x91, hi: 0x91}, + {value: 0x0024, lo: 0x92, hi: 0x95}, + {value: 0x0034, lo: 0x96, hi: 0x96}, + {value: 0x0024, lo: 0x97, hi: 0x99}, + {value: 0x0034, lo: 0x9a, hi: 0x9b}, + {value: 0x0024, lo: 0x9c, hi: 0xa1}, + {value: 0x0034, lo: 0xa2, hi: 0xa7}, + {value: 0x0024, lo: 0xa8, hi: 0xa9}, + {value: 0x0034, lo: 0xaa, hi: 0xaa}, + {value: 0x0024, lo: 0xab, hi: 0xac}, + {value: 0x0034, lo: 0xad, hi: 0xae}, + {value: 0x0024, lo: 0xaf, hi: 0xaf}, + {value: 0x0034, lo: 0xb0, hi: 0xbd}, + {value: 0x0034, lo: 0xbf, hi: 0xbf}, + // Block 0xe, offset 0x64 + {value: 0x0034, lo: 0x81, hi: 0x82}, + {value: 0x0024, lo: 0x84, hi: 0x84}, + {value: 0x0034, lo: 0x85, hi: 0x85}, + {value: 0x0034, lo: 0x87, hi: 0x87}, + {value: 0x0010, lo: 0x90, hi: 0xaa}, + {value: 0x0010, lo: 0xb0, hi: 0xb3}, + {value: 0x0054, lo: 0xb4, hi: 0xb4}, + // Block 0xf, offset 0x6b + {value: 0x0014, lo: 0x80, hi: 0x85}, + {value: 0x0024, lo: 0x90, hi: 0x97}, + {value: 0x0034, lo: 0x98, hi: 0x9a}, + {value: 0x0014, lo: 0x9c, hi: 0x9c}, + {value: 0x0010, lo: 0xa0, hi: 0xbf}, + // Block 0x10, offset 0x70 + {value: 0x0014, lo: 0x80, hi: 0x80}, + {value: 0x0010, lo: 0x81, hi: 0x8a}, + {value: 0x0034, lo: 0x8b, hi: 0x92}, + {value: 0x0024, lo: 0x93, hi: 0x94}, + {value: 0x0034, lo: 0x95, hi: 0x96}, + {value: 0x0024, lo: 0x97, hi: 0x9b}, + {value: 0x0034, lo: 0x9c, hi: 0x9c}, + {value: 0x0024, lo: 0x9d, hi: 0x9e}, + {value: 0x0034, lo: 0x9f, hi: 0x9f}, + {value: 0x0010, lo: 0xa0, hi: 0xa9}, + {value: 0x0010, lo: 0xab, hi: 0xab}, + {value: 0x0010, lo: 0xae, hi: 0xaf}, + {value: 0x0034, lo: 0xb0, hi: 0xb0}, + {value: 0x0010, lo: 0xb1, hi: 0xbf}, + // Block 0x11, offset 0x7e + {value: 0x0010, lo: 0x80, hi: 0xbf}, + // Block 0x12, offset 0x7f + {value: 0x0010, lo: 0x80, hi: 0x93}, + {value: 0x0010, lo: 0x95, hi: 0x95}, + {value: 0x0024, lo: 0x96, hi: 0x9c}, + {value: 0x0014, lo: 0x9d, hi: 0x9d}, + {value: 0x0024, lo: 0x9f, hi: 0xa2}, + {value: 0x0034, lo: 0xa3, hi: 0xa3}, + {value: 0x0024, lo: 0xa4, hi: 0xa4}, + {value: 0x0014, lo: 0xa5, hi: 0xa6}, + {value: 0x0024, lo: 0xa7, hi: 0xa8}, + {value: 0x0034, lo: 0xaa, hi: 0xaa}, + {value: 0x0024, lo: 0xab, hi: 0xac}, + {value: 0x0034, lo: 0xad, hi: 0xad}, + {value: 0x0010, lo: 0xae, hi: 0xbc}, + {value: 0x0010, lo: 0xbf, hi: 0xbf}, + // Block 0x13, offset 0x8d + {value: 0x0014, lo: 0x8f, hi: 0x8f}, + {value: 0x0010, lo: 0x90, hi: 0x90}, + {value: 0x0034, lo: 0x91, hi: 0x91}, + {value: 0x0010, lo: 0x92, hi: 0xaf}, + {value: 0x0024, lo: 0xb0, hi: 0xb0}, + {value: 0x0034, lo: 0xb1, hi: 0xb1}, + {value: 0x0024, lo: 0xb2, hi: 0xb3}, + {value: 0x0034, lo: 0xb4, hi: 0xb4}, + {value: 0x0024, lo: 0xb5, hi: 0xb6}, + {value: 0x0034, lo: 0xb7, hi: 0xb9}, + {value: 0x0024, lo: 0xba, hi: 0xba}, + {value: 0x0034, lo: 0xbb, hi: 0xbc}, + {value: 0x0024, lo: 0xbd, hi: 0xbd}, + {value: 0x0034, lo: 0xbe, hi: 0xbe}, + {value: 0x0024, lo: 0xbf, hi: 0xbf}, + // Block 0x14, offset 0x9c + {value: 0x0024, lo: 0x80, hi: 0x81}, + {value: 0x0034, lo: 0x82, hi: 0x82}, + {value: 0x0024, lo: 0x83, hi: 0x83}, + {value: 0x0034, lo: 0x84, hi: 0x84}, + {value: 0x0024, lo: 0x85, hi: 0x85}, + {value: 0x0034, lo: 0x86, hi: 0x86}, + {value: 0x0024, lo: 0x87, hi: 0x87}, + {value: 0x0034, lo: 0x88, hi: 0x88}, + {value: 0x0024, lo: 0x89, hi: 0x8a}, + {value: 0x0010, lo: 0x8d, hi: 0xbf}, + // Block 0x15, offset 0xa6 + {value: 0x0010, lo: 0x80, hi: 0xa5}, + {value: 0x0014, lo: 0xa6, hi: 0xb0}, + {value: 0x0010, lo: 0xb1, hi: 0xb1}, + // Block 0x16, offset 0xa9 + {value: 0x0010, lo: 0x80, hi: 0xaa}, + {value: 0x0024, lo: 0xab, hi: 0xb1}, + {value: 0x0034, lo: 0xb2, hi: 0xb2}, + {value: 0x0024, lo: 0xb3, hi: 0xb3}, + {value: 0x0014, lo: 0xb4, hi: 0xb5}, + {value: 0x0014, lo: 0xba, hi: 0xba}, + // Block 0x17, offset 0xaf + {value: 0x0010, lo: 0x80, hi: 0x95}, + {value: 0x0024, lo: 0x96, hi: 0x99}, + {value: 0x0014, lo: 0x9a, hi: 0x9a}, + {value: 0x0024, lo: 0x9b, hi: 0xa3}, + {value: 0x0014, lo: 0xa4, hi: 0xa4}, + {value: 0x0024, lo: 0xa5, hi: 0xa7}, + {value: 0x0014, lo: 0xa8, hi: 0xa8}, + {value: 0x0024, lo: 0xa9, hi: 0xad}, + // Block 0x18, offset 0xb7 + {value: 0x0010, lo: 0x80, hi: 0x98}, + {value: 0x0034, lo: 0x99, hi: 0x9b}, + {value: 0x0010, lo: 0xa0, hi: 0xaa}, + // Block 0x19, offset 0xba + {value: 0x0010, lo: 0xa0, hi: 0xb4}, + {value: 0x0010, lo: 0xb6, hi: 0xbd}, + // Block 0x1a, offset 0xbc + {value: 0x0024, lo: 0x94, hi: 0xa1}, + {value: 0x0014, lo: 0xa2, hi: 0xa2}, + {value: 0x0034, lo: 0xa3, hi: 0xa3}, + {value: 0x0024, lo: 0xa4, hi: 0xa5}, + {value: 0x0034, lo: 0xa6, hi: 0xa6}, + {value: 0x0024, lo: 0xa7, hi: 0xa8}, + {value: 0x0034, lo: 0xa9, hi: 0xa9}, + {value: 0x0024, lo: 0xaa, hi: 0xac}, + {value: 0x0034, lo: 0xad, hi: 0xb2}, + {value: 0x0024, lo: 0xb3, hi: 0xb5}, + {value: 0x0034, lo: 0xb6, hi: 0xb6}, + {value: 0x0024, lo: 0xb7, hi: 0xb8}, + {value: 0x0034, lo: 0xb9, hi: 0xba}, + {value: 0x0024, lo: 0xbb, hi: 0xbf}, + // Block 0x1b, offset 0xca + {value: 0x0014, lo: 0x80, hi: 0x82}, + {value: 0x0010, lo: 0x83, hi: 0xb9}, + {value: 0x0014, lo: 0xba, hi: 0xba}, + {value: 0x0010, lo: 0xbb, hi: 0xbb}, + {value: 0x0034, lo: 0xbc, hi: 0xbc}, + {value: 0x0010, lo: 0xbd, hi: 0xbf}, + // Block 0x1c, offset 0xd0 + {value: 0x0010, lo: 0x80, hi: 0x80}, + {value: 0x0014, lo: 0x81, hi: 0x88}, + {value: 0x0010, lo: 0x89, hi: 0x8c}, + {value: 0x0034, lo: 0x8d, hi: 0x8d}, + {value: 0x0010, lo: 0x8e, hi: 0x90}, + {value: 0x0024, lo: 0x91, hi: 0x91}, + {value: 0x0034, lo: 0x92, hi: 0x92}, + {value: 0x0024, lo: 0x93, hi: 0x94}, + {value: 0x0014, lo: 0x95, hi: 0x97}, + {value: 0x0010, lo: 0x98, hi: 0xa1}, + {value: 0x0014, lo: 0xa2, hi: 0xa3}, + {value: 0x0010, lo: 0xa6, hi: 0xaf}, + {value: 0x0014, lo: 0xb1, hi: 0xb1}, + {value: 0x0010, lo: 0xb2, hi: 0xbf}, + // Block 0x1d, offset 0xde + {value: 0x0010, lo: 0x80, hi: 0x80}, + {value: 0x0014, lo: 0x81, hi: 0x81}, + {value: 0x0010, lo: 0x82, hi: 0x83}, + {value: 0x0010, lo: 0x85, hi: 0x8c}, + {value: 0x0010, lo: 0x8f, hi: 0x90}, + {value: 0x0010, lo: 0x93, hi: 0xa8}, + {value: 0x0010, lo: 0xaa, hi: 0xb0}, + {value: 0x0010, lo: 0xb2, hi: 0xb2}, + {value: 0x0010, lo: 0xb6, hi: 0xb9}, + {value: 0x0034, lo: 0xbc, hi: 0xbc}, + {value: 0x0010, lo: 0xbd, hi: 0xbf}, + // Block 0x1e, offset 0xe9 + {value: 0x0010, lo: 0x80, hi: 0x80}, + {value: 0x0014, lo: 0x81, hi: 0x84}, + {value: 0x0010, lo: 0x87, hi: 0x88}, + {value: 0x0010, lo: 0x8b, hi: 0x8c}, + {value: 0x0034, lo: 0x8d, hi: 0x8d}, + {value: 0x0010, lo: 0x8e, hi: 0x8e}, + {value: 0x0010, lo: 0x97, hi: 0x97}, + {value: 0x0010, lo: 0x9c, hi: 0x9d}, + {value: 0x0010, lo: 0x9f, hi: 0xa1}, + {value: 0x0014, lo: 0xa2, hi: 0xa3}, + {value: 0x0010, lo: 0xa6, hi: 0xb1}, + {value: 0x0010, lo: 0xbc, hi: 0xbc}, + // Block 0x1f, offset 0xf5 + {value: 0x0014, lo: 0x81, hi: 0x82}, + {value: 0x0010, lo: 0x83, hi: 0x83}, + {value: 0x0010, lo: 0x85, hi: 0x8a}, + {value: 0x0010, lo: 0x8f, hi: 0x90}, + {value: 0x0010, lo: 0x93, hi: 0xa8}, + {value: 0x0010, lo: 0xaa, hi: 0xb0}, + {value: 0x0010, lo: 0xb2, hi: 0xb3}, + {value: 0x0010, lo: 0xb5, hi: 0xb6}, + {value: 0x0010, lo: 0xb8, hi: 0xb9}, + {value: 0x0034, lo: 0xbc, hi: 0xbc}, + {value: 0x0010, lo: 0xbe, hi: 0xbf}, + // Block 0x20, offset 0x100 + {value: 0x0010, lo: 0x80, hi: 0x80}, + {value: 0x0014, lo: 0x81, hi: 0x82}, + {value: 0x0014, lo: 0x87, hi: 0x88}, + {value: 0x0014, lo: 0x8b, hi: 0x8c}, + {value: 0x0034, lo: 0x8d, hi: 0x8d}, + {value: 0x0014, lo: 0x91, hi: 0x91}, + {value: 0x0010, lo: 0x99, hi: 0x9c}, + {value: 0x0010, lo: 0x9e, hi: 0x9e}, + {value: 0x0010, lo: 0xa6, hi: 0xaf}, + {value: 0x0014, lo: 0xb0, hi: 0xb1}, + {value: 0x0010, lo: 0xb2, hi: 0xb4}, + {value: 0x0014, lo: 0xb5, hi: 0xb5}, + // Block 0x21, offset 0x10c + {value: 0x0014, lo: 0x81, hi: 0x82}, + {value: 0x0010, lo: 0x83, hi: 0x83}, + {value: 0x0010, lo: 0x85, hi: 0x8d}, + {value: 0x0010, lo: 0x8f, hi: 0x91}, + {value: 0x0010, lo: 0x93, hi: 0xa8}, + {value: 0x0010, lo: 0xaa, hi: 0xb0}, + {value: 0x0010, lo: 0xb2, hi: 0xb3}, + {value: 0x0010, lo: 0xb5, hi: 0xb9}, + {value: 0x0034, lo: 0xbc, hi: 0xbc}, + {value: 0x0010, lo: 0xbd, hi: 0xbf}, + // Block 0x22, offset 0x116 + {value: 0x0010, lo: 0x80, hi: 0x80}, + {value: 0x0014, lo: 0x81, hi: 0x85}, + {value: 0x0014, lo: 0x87, hi: 0x88}, + {value: 0x0010, lo: 0x89, hi: 0x89}, + {value: 0x0010, lo: 0x8b, hi: 0x8c}, + {value: 0x0034, lo: 0x8d, hi: 0x8d}, + {value: 0x0010, lo: 0x90, hi: 0x90}, + {value: 0x0010, lo: 0xa0, hi: 0xa1}, + {value: 0x0014, lo: 0xa2, hi: 0xa3}, + {value: 0x0010, lo: 0xa6, hi: 0xaf}, + {value: 0x0010, lo: 0xb9, hi: 0xb9}, + {value: 0x0014, lo: 0xba, hi: 0xbf}, + // Block 0x23, offset 0x122 + {value: 0x0014, lo: 0x81, hi: 0x81}, + {value: 0x0010, lo: 0x82, hi: 0x83}, + {value: 0x0010, lo: 0x85, hi: 0x8c}, + {value: 0x0010, lo: 0x8f, hi: 0x90}, + {value: 0x0010, lo: 0x93, hi: 0xa8}, + {value: 0x0010, lo: 0xaa, hi: 0xb0}, + {value: 0x0010, lo: 0xb2, hi: 0xb3}, + {value: 0x0010, lo: 0xb5, hi: 0xb9}, + {value: 0x0034, lo: 0xbc, hi: 0xbc}, + {value: 0x0010, lo: 0xbd, hi: 0xbe}, + {value: 0x0014, lo: 0xbf, hi: 0xbf}, + // Block 0x24, offset 0x12d + {value: 0x0010, lo: 0x80, hi: 0x80}, + {value: 0x0014, lo: 0x81, hi: 0x84}, + {value: 0x0010, lo: 0x87, hi: 0x88}, + {value: 0x0010, lo: 0x8b, hi: 0x8c}, + {value: 0x0034, lo: 0x8d, hi: 0x8d}, + {value: 0x0014, lo: 0x96, hi: 0x96}, + {value: 0x0010, lo: 0x97, hi: 0x97}, + {value: 0x0010, lo: 0x9c, hi: 0x9d}, + {value: 0x0010, lo: 0x9f, hi: 0xa1}, + {value: 0x0014, lo: 0xa2, hi: 0xa3}, + {value: 0x0010, lo: 0xa6, hi: 0xaf}, + {value: 0x0010, lo: 0xb1, hi: 0xb1}, + // Block 0x25, offset 0x139 + {value: 0x0014, lo: 0x82, hi: 0x82}, + {value: 0x0010, lo: 0x83, hi: 0x83}, + {value: 0x0010, lo: 0x85, hi: 0x8a}, + {value: 0x0010, lo: 0x8e, hi: 0x90}, + {value: 0x0010, lo: 0x92, hi: 0x95}, + {value: 0x0010, lo: 0x99, hi: 0x9a}, + {value: 0x0010, lo: 0x9c, hi: 0x9c}, + {value: 0x0010, lo: 0x9e, hi: 0x9f}, + {value: 0x0010, lo: 0xa3, hi: 0xa4}, + {value: 0x0010, lo: 0xa8, hi: 0xaa}, + {value: 0x0010, lo: 0xae, hi: 0xb9}, + {value: 0x0010, lo: 0xbe, hi: 0xbf}, + // Block 0x26, offset 0x145 + {value: 0x0014, lo: 0x80, hi: 0x80}, + {value: 0x0010, lo: 0x81, hi: 0x82}, + {value: 0x0010, lo: 0x86, hi: 0x88}, + {value: 0x0010, lo: 0x8a, hi: 0x8c}, + {value: 0x0034, lo: 0x8d, hi: 0x8d}, + {value: 0x0010, lo: 0x90, hi: 0x90}, + {value: 0x0010, lo: 0x97, hi: 0x97}, + {value: 0x0010, lo: 0xa6, hi: 0xaf}, + // Block 0x27, offset 0x14d + {value: 0x0014, lo: 0x80, hi: 0x80}, + {value: 0x0010, lo: 0x81, hi: 0x83}, + {value: 0x0010, lo: 0x85, hi: 0x8c}, + {value: 0x0010, lo: 0x8e, hi: 0x90}, + {value: 0x0010, lo: 0x92, hi: 0xa8}, + {value: 0x0010, lo: 0xaa, hi: 0xb9}, + {value: 0x0010, lo: 0xbd, hi: 0xbd}, + {value: 0x0014, lo: 0xbe, hi: 0xbf}, + // Block 0x28, offset 0x155 + {value: 0x0014, lo: 0x80, hi: 0x80}, + {value: 0x0010, lo: 0x81, hi: 0x84}, + {value: 0x0014, lo: 0x86, hi: 0x88}, + {value: 0x0014, lo: 0x8a, hi: 0x8c}, + {value: 0x0034, lo: 0x8d, hi: 0x8d}, + {value: 0x0034, lo: 0x95, hi: 0x96}, + {value: 0x0010, lo: 0x98, hi: 0x9a}, + {value: 0x0010, lo: 0xa0, hi: 0xa1}, + {value: 0x0014, lo: 0xa2, hi: 0xa3}, + {value: 0x0010, lo: 0xa6, hi: 0xaf}, + // Block 0x29, offset 0x15f + {value: 0x0010, lo: 0x80, hi: 0x80}, + {value: 0x0014, lo: 0x81, hi: 0x81}, + {value: 0x0010, lo: 0x82, hi: 0x83}, + {value: 0x0010, lo: 0x85, hi: 0x8c}, + {value: 0x0010, lo: 0x8e, hi: 0x90}, + {value: 0x0010, lo: 0x92, hi: 0xa8}, + {value: 0x0010, lo: 0xaa, hi: 0xb3}, + {value: 0x0010, lo: 0xb5, hi: 0xb9}, + {value: 0x0034, lo: 0xbc, hi: 0xbc}, + {value: 0x0010, lo: 0xbd, hi: 0xbe}, + {value: 0x0014, lo: 0xbf, hi: 0xbf}, + // Block 0x2a, offset 0x16a + {value: 0x0010, lo: 0x80, hi: 0x84}, + {value: 0x0014, lo: 0x86, hi: 0x86}, + {value: 0x0010, lo: 0x87, hi: 0x88}, + {value: 0x0010, lo: 0x8a, hi: 0x8b}, + {value: 0x0014, lo: 0x8c, hi: 0x8c}, + {value: 0x0034, lo: 0x8d, hi: 0x8d}, + {value: 0x0010, lo: 0x95, hi: 0x96}, + {value: 0x0010, lo: 0x9e, hi: 0x9e}, + {value: 0x0010, lo: 0xa0, hi: 0xa1}, + {value: 0x0014, lo: 0xa2, hi: 0xa3}, + {value: 0x0010, lo: 0xa6, hi: 0xaf}, + {value: 0x0010, lo: 0xb1, hi: 0xb2}, + // Block 0x2b, offset 0x176 + {value: 0x0014, lo: 0x80, hi: 0x81}, + {value: 0x0010, lo: 0x82, hi: 0x83}, + {value: 0x0010, lo: 0x85, hi: 0x8c}, + {value: 0x0010, lo: 0x8e, hi: 0x90}, + {value: 0x0010, lo: 0x92, hi: 0xba}, + {value: 0x0034, lo: 0xbb, hi: 0xbc}, + {value: 0x0010, lo: 0xbd, hi: 0xbf}, + // Block 0x2c, offset 0x17d + {value: 0x0010, lo: 0x80, hi: 0x80}, + {value: 0x0014, lo: 0x81, hi: 0x84}, + {value: 0x0010, lo: 0x86, hi: 0x88}, + {value: 0x0010, lo: 0x8a, hi: 0x8c}, + {value: 0x0034, lo: 0x8d, hi: 0x8d}, + {value: 0x0010, lo: 0x8e, hi: 0x8e}, + {value: 0x0010, lo: 0x94, hi: 0x97}, + {value: 0x0010, lo: 0x9f, hi: 0xa1}, + {value: 0x0014, lo: 0xa2, hi: 0xa3}, + {value: 0x0010, lo: 0xa6, hi: 0xaf}, + {value: 0x0010, lo: 0xba, hi: 0xbf}, + // Block 0x2d, offset 0x188 + {value: 0x0010, lo: 0x82, hi: 0x83}, + {value: 0x0010, lo: 0x85, hi: 0x96}, + {value: 0x0010, lo: 0x9a, hi: 0xb1}, + {value: 0x0010, lo: 0xb3, hi: 0xbb}, + {value: 0x0010, lo: 0xbd, hi: 0xbd}, + // Block 0x2e, offset 0x18d + {value: 0x0010, lo: 0x80, hi: 0x86}, + {value: 0x0034, lo: 0x8a, hi: 0x8a}, + {value: 0x0010, lo: 0x8f, hi: 0x91}, + {value: 0x0014, lo: 0x92, hi: 0x94}, + {value: 0x0014, lo: 0x96, hi: 0x96}, + {value: 0x0010, lo: 0x98, hi: 0x9f}, + {value: 0x0010, lo: 0xa6, hi: 0xaf}, + {value: 0x0010, lo: 0xb2, hi: 0xb3}, + // Block 0x2f, offset 0x195 + {value: 0x0014, lo: 0xb1, hi: 0xb1}, + {value: 0x0014, lo: 0xb4, hi: 0xb7}, + {value: 0x0034, lo: 0xb8, hi: 0xba}, + // Block 0x30, offset 0x198 + {value: 0x0004, lo: 0x86, hi: 0x86}, + {value: 0x0014, lo: 0x87, hi: 0x87}, + {value: 0x0034, lo: 0x88, hi: 0x8b}, + {value: 0x0014, lo: 0x8c, hi: 0x8e}, + {value: 0x0010, lo: 0x90, hi: 0x99}, + // Block 0x31, offset 0x19d + {value: 0x0014, lo: 0xb1, hi: 0xb1}, + {value: 0x0014, lo: 0xb4, hi: 0xb7}, + {value: 0x0034, lo: 0xb8, hi: 0xb9}, + {value: 0x0014, lo: 0xbb, hi: 0xbc}, + // Block 0x32, offset 0x1a1 + {value: 0x0004, lo: 0x86, hi: 0x86}, + {value: 0x0034, lo: 0x88, hi: 0x8b}, + {value: 0x0014, lo: 0x8c, hi: 0x8d}, + {value: 0x0010, lo: 0x90, hi: 0x99}, + // Block 0x33, offset 0x1a5 + {value: 0x0010, lo: 0x80, hi: 0x80}, + {value: 0x0034, lo: 0x98, hi: 0x99}, + {value: 0x0010, lo: 0xa0, hi: 0xa9}, + {value: 0x0034, lo: 0xb5, hi: 0xb5}, + {value: 0x0034, lo: 0xb7, hi: 0xb7}, + {value: 0x0034, lo: 0xb9, hi: 0xb9}, + {value: 0x0010, lo: 0xbe, hi: 0xbf}, + // Block 0x34, offset 0x1ac + {value: 0x0010, lo: 0x80, hi: 0x87}, + {value: 0x0010, lo: 0x89, hi: 0xac}, + {value: 0x0034, lo: 0xb1, hi: 0xb2}, + {value: 0x0014, lo: 0xb3, hi: 0xb3}, + {value: 0x0034, lo: 0xb4, hi: 0xb4}, + {value: 0x0014, lo: 0xb5, hi: 0xb9}, + {value: 0x0034, lo: 0xba, hi: 0xbd}, + {value: 0x0014, lo: 0xbe, hi: 0xbe}, + {value: 0x0010, lo: 0xbf, hi: 0xbf}, + // Block 0x35, offset 0x1b5 + {value: 0x0034, lo: 0x80, hi: 0x80}, + {value: 0x0014, lo: 0x81, hi: 0x81}, + {value: 0x0024, lo: 0x82, hi: 0x83}, + {value: 0x0034, lo: 0x84, hi: 0x84}, + {value: 0x0024, lo: 0x86, hi: 0x87}, + {value: 0x0010, lo: 0x88, hi: 0x8c}, + {value: 0x0014, lo: 0x8d, hi: 0x97}, + {value: 0x0014, lo: 0x99, hi: 0xbc}, + // Block 0x36, offset 0x1bd + {value: 0x0034, lo: 0x86, hi: 0x86}, + // Block 0x37, offset 0x1be + {value: 0x0010, lo: 0xab, hi: 0xac}, + {value: 0x0014, lo: 0xad, hi: 0xb0}, + {value: 0x0010, lo: 0xb1, hi: 0xb1}, + {value: 0x0014, lo: 0xb2, hi: 0xb6}, + {value: 0x0034, lo: 0xb7, hi: 0xb7}, + {value: 0x0010, lo: 0xb8, hi: 0xb8}, + {value: 0x0034, lo: 0xb9, hi: 0xba}, + {value: 0x0010, lo: 0xbb, hi: 0xbc}, + {value: 0x0014, lo: 0xbd, hi: 0xbe}, + // Block 0x38, offset 0x1c7 + {value: 0x0010, lo: 0x80, hi: 0x89}, + {value: 0x0010, lo: 0x96, hi: 0x97}, + {value: 0x0014, lo: 0x98, hi: 0x99}, + {value: 0x0014, lo: 0x9e, hi: 0xa0}, + {value: 0x0010, lo: 0xa2, hi: 0xa4}, + {value: 0x0010, lo: 0xa7, hi: 0xad}, + {value: 0x0014, lo: 0xb1, hi: 0xb4}, + // Block 0x39, offset 0x1ce + {value: 0x0014, lo: 0x82, hi: 0x82}, + {value: 0x0010, lo: 0x83, hi: 0x84}, + {value: 0x0014, lo: 0x85, hi: 0x86}, + {value: 0x0010, lo: 0x87, hi: 0x8c}, + {value: 0x0034, lo: 0x8d, hi: 0x8d}, + {value: 0x0010, lo: 0x8f, hi: 0x9c}, + {value: 0x0014, lo: 0x9d, hi: 0x9d}, + {value: 0x6c53, lo: 0xa0, hi: 0xbf}, + // Block 0x3a, offset 0x1d6 + {value: 0x7053, lo: 0x80, hi: 0x85}, + {value: 0x7053, lo: 0x87, hi: 0x87}, + {value: 0x7053, lo: 0x8d, hi: 0x8d}, + {value: 0x0010, lo: 0x90, hi: 0xba}, + {value: 0x0014, lo: 0xbc, hi: 0xbc}, + {value: 0x0010, lo: 0xbd, hi: 0xbf}, + // Block 0x3b, offset 0x1dc + {value: 0x0010, lo: 0x80, hi: 0x88}, + {value: 0x0010, lo: 0x8a, hi: 0x8d}, + {value: 0x0010, lo: 0x90, hi: 0x96}, + {value: 0x0010, lo: 0x98, hi: 0x98}, + {value: 0x0010, lo: 0x9a, hi: 0x9d}, + {value: 0x0010, lo: 0xa0, hi: 0xbf}, + // Block 0x3c, offset 0x1e2 + {value: 0x0010, lo: 0x80, hi: 0x88}, + {value: 0x0010, lo: 0x8a, hi: 0x8d}, + {value: 0x0010, lo: 0x90, hi: 0xb0}, + {value: 0x0010, lo: 0xb2, hi: 0xb5}, + {value: 0x0010, lo: 0xb8, hi: 0xbe}, + // Block 0x3d, offset 0x1e7 + {value: 0x0010, lo: 0x80, hi: 0x80}, + {value: 0x0010, lo: 0x82, hi: 0x85}, + {value: 0x0010, lo: 0x88, hi: 0x96}, + {value: 0x0010, lo: 0x98, hi: 0xbf}, + // Block 0x3e, offset 0x1eb + {value: 0x0010, lo: 0x80, hi: 0x90}, + {value: 0x0010, lo: 0x92, hi: 0x95}, + {value: 0x0010, lo: 0x98, hi: 0xbf}, + // Block 0x3f, offset 0x1ee + {value: 0x0010, lo: 0x80, hi: 0x9a}, + {value: 0x0024, lo: 0x9d, hi: 0x9f}, + // Block 0x40, offset 0x1f0 + {value: 0x0010, lo: 0x80, hi: 0x8f}, + {value: 0x7453, lo: 0xa0, hi: 0xaf}, + {value: 0x7853, lo: 0xb0, hi: 0xbf}, + // Block 0x41, offset 0x1f3 + {value: 0x7c53, lo: 0x80, hi: 0x8f}, + {value: 0x8053, lo: 0x90, hi: 0x9f}, + {value: 0x7c53, lo: 0xa0, hi: 0xaf}, + {value: 0x0813, lo: 0xb0, hi: 0xb5}, + {value: 0x0892, lo: 0xb8, hi: 0xbd}, + // Block 0x42, offset 0x1f8 + {value: 0x0010, lo: 0x81, hi: 0xbf}, + // Block 0x43, offset 0x1f9 + {value: 0x0010, lo: 0x80, hi: 0xac}, + {value: 0x0010, lo: 0xaf, hi: 0xbf}, + // Block 0x44, offset 0x1fb + {value: 0x0010, lo: 0x81, hi: 0x9a}, + {value: 0x0010, lo: 0xa0, hi: 0xbf}, + // Block 0x45, offset 0x1fd + {value: 0x0010, lo: 0x80, hi: 0xaa}, + {value: 0x0010, lo: 0xae, hi: 0xb8}, + // Block 0x46, offset 0x1ff + {value: 0x0010, lo: 0x80, hi: 0x8c}, + {value: 0x0010, lo: 0x8e, hi: 0x91}, + {value: 0x0014, lo: 0x92, hi: 0x93}, + {value: 0x0034, lo: 0x94, hi: 0x94}, + {value: 0x0010, lo: 0xa0, hi: 0xb1}, + {value: 0x0014, lo: 0xb2, hi: 0xb3}, + {value: 0x0034, lo: 0xb4, hi: 0xb4}, + // Block 0x47, offset 0x206 + {value: 0x0010, lo: 0x80, hi: 0x91}, + {value: 0x0014, lo: 0x92, hi: 0x93}, + {value: 0x0010, lo: 0xa0, hi: 0xac}, + {value: 0x0010, lo: 0xae, hi: 0xb0}, + {value: 0x0014, lo: 0xb2, hi: 0xb3}, + // Block 0x48, offset 0x20b + {value: 0x0014, lo: 0xb4, hi: 0xb5}, + {value: 0x0010, lo: 0xb6, hi: 0xb6}, + {value: 0x0014, lo: 0xb7, hi: 0xbd}, + {value: 0x0010, lo: 0xbe, hi: 0xbf}, + // Block 0x49, offset 0x20f + {value: 0x0010, lo: 0x80, hi: 0x85}, + {value: 0x0014, lo: 0x86, hi: 0x86}, + {value: 0x0010, lo: 0x87, hi: 0x88}, + {value: 0x0014, lo: 0x89, hi: 0x91}, + {value: 0x0034, lo: 0x92, hi: 0x92}, + {value: 0x0014, lo: 0x93, hi: 0x93}, + {value: 0x0004, lo: 0x97, hi: 0x97}, + {value: 0x0024, lo: 0x9d, hi: 0x9d}, + {value: 0x0010, lo: 0xa0, hi: 0xa9}, + // Block 0x4a, offset 0x218 + {value: 0x0014, lo: 0x8b, hi: 0x8e}, + {value: 0x0010, lo: 0x90, hi: 0x99}, + {value: 0x0010, lo: 0xa0, hi: 0xbf}, + // Block 0x4b, offset 0x21b + {value: 0x0010, lo: 0x80, hi: 0x82}, + {value: 0x0014, lo: 0x83, hi: 0x83}, + {value: 0x0010, lo: 0x84, hi: 0xb7}, + // Block 0x4c, offset 0x21e + {value: 0x0010, lo: 0x80, hi: 0x84}, + {value: 0x0014, lo: 0x85, hi: 0x86}, + {value: 0x0010, lo: 0x87, hi: 0xa8}, + {value: 0x0034, lo: 0xa9, hi: 0xa9}, + {value: 0x0010, lo: 0xaa, hi: 0xaa}, + {value: 0x0010, lo: 0xb0, hi: 0xbf}, + // Block 0x4d, offset 0x224 + {value: 0x0010, lo: 0x80, hi: 0xb5}, + // Block 0x4e, offset 0x225 + {value: 0x0010, lo: 0x80, hi: 0x9e}, + {value: 0x0014, lo: 0xa0, hi: 0xa2}, + {value: 0x0010, lo: 0xa3, hi: 0xa6}, + {value: 0x0014, lo: 0xa7, hi: 0xa8}, + {value: 0x0010, lo: 0xa9, hi: 0xab}, + {value: 0x0010, lo: 0xb0, hi: 0xb1}, + {value: 0x0014, lo: 0xb2, hi: 0xb2}, + {value: 0x0010, lo: 0xb3, hi: 0xb8}, + {value: 0x0034, lo: 0xb9, hi: 0xb9}, + {value: 0x0024, lo: 0xba, hi: 0xba}, + {value: 0x0034, lo: 0xbb, hi: 0xbb}, + // Block 0x4f, offset 0x230 + {value: 0x0010, lo: 0x86, hi: 0x8f}, + // Block 0x50, offset 0x231 + {value: 0x0010, lo: 0x90, hi: 0x99}, + // Block 0x51, offset 0x232 + {value: 0x0010, lo: 0x80, hi: 0x96}, + {value: 0x0024, lo: 0x97, hi: 0x97}, + {value: 0x0034, lo: 0x98, hi: 0x98}, + {value: 0x0010, lo: 0x99, hi: 0x9a}, + {value: 0x0014, lo: 0x9b, hi: 0x9b}, + // Block 0x52, offset 0x237 + {value: 0x0010, lo: 0x95, hi: 0x95}, + {value: 0x0014, lo: 0x96, hi: 0x96}, + {value: 0x0010, lo: 0x97, hi: 0x97}, + {value: 0x0014, lo: 0x98, hi: 0x9e}, + {value: 0x0034, lo: 0xa0, hi: 0xa0}, + {value: 0x0010, lo: 0xa1, hi: 0xa1}, + {value: 0x0014, lo: 0xa2, hi: 0xa2}, + {value: 0x0010, lo: 0xa3, hi: 0xa4}, + {value: 0x0014, lo: 0xa5, hi: 0xac}, + {value: 0x0010, lo: 0xad, hi: 0xb2}, + {value: 0x0014, lo: 0xb3, hi: 0xb4}, + {value: 0x0024, lo: 0xb5, hi: 0xbc}, + {value: 0x0034, lo: 0xbf, hi: 0xbf}, + // Block 0x53, offset 0x244 + {value: 0x0010, lo: 0x80, hi: 0x89}, + {value: 0x0010, lo: 0x90, hi: 0x99}, + {value: 0x0004, lo: 0xa7, hi: 0xa7}, + {value: 0x0024, lo: 0xb0, hi: 0xb4}, + {value: 0x0034, lo: 0xb5, hi: 0xba}, + {value: 0x0024, lo: 0xbb, hi: 0xbc}, + {value: 0x0034, lo: 0xbd, hi: 0xbd}, + {value: 0x0014, lo: 0xbe, hi: 0xbe}, + // Block 0x54, offset 0x24c + {value: 0x0014, lo: 0x80, hi: 0x83}, + {value: 0x0010, lo: 0x84, hi: 0xb3}, + {value: 0x0034, lo: 0xb4, hi: 0xb4}, + {value: 0x0010, lo: 0xb5, hi: 0xb5}, + {value: 0x0014, lo: 0xb6, hi: 0xba}, + {value: 0x0010, lo: 0xbb, hi: 0xbb}, + {value: 0x0014, lo: 0xbc, hi: 0xbc}, + {value: 0x0010, lo: 0xbd, hi: 0xbf}, + // Block 0x55, offset 0x254 + {value: 0x0010, lo: 0x80, hi: 0x81}, + {value: 0x0014, lo: 0x82, hi: 0x82}, + {value: 0x0010, lo: 0x83, hi: 0x83}, + {value: 0x0030, lo: 0x84, hi: 0x84}, + {value: 0x0010, lo: 0x85, hi: 0x8b}, + {value: 0x0010, lo: 0x90, hi: 0x99}, + {value: 0x0024, lo: 0xab, hi: 0xab}, + {value: 0x0034, lo: 0xac, hi: 0xac}, + {value: 0x0024, lo: 0xad, hi: 0xb3}, + // Block 0x56, offset 0x25d + {value: 0x0014, lo: 0x80, hi: 0x81}, + {value: 0x0010, lo: 0x82, hi: 0xa1}, + {value: 0x0014, lo: 0xa2, hi: 0xa5}, + {value: 0x0010, lo: 0xa6, hi: 0xa7}, + {value: 0x0014, lo: 0xa8, hi: 0xa9}, + {value: 0x0030, lo: 0xaa, hi: 0xaa}, + {value: 0x0034, lo: 0xab, hi: 0xab}, + {value: 0x0014, lo: 0xac, hi: 0xad}, + {value: 0x0010, lo: 0xae, hi: 0xbf}, + // Block 0x57, offset 0x266 + {value: 0x0010, lo: 0x80, hi: 0xa5}, + {value: 0x0034, lo: 0xa6, hi: 0xa6}, + {value: 0x0010, lo: 0xa7, hi: 0xa7}, + {value: 0x0014, lo: 0xa8, hi: 0xa9}, + {value: 0x0010, lo: 0xaa, hi: 0xac}, + {value: 0x0014, lo: 0xad, hi: 0xad}, + {value: 0x0010, lo: 0xae, hi: 0xae}, + {value: 0x0014, lo: 0xaf, hi: 0xb1}, + {value: 0x0030, lo: 0xb2, hi: 0xb3}, + // Block 0x58, offset 0x26f + {value: 0x0010, lo: 0x80, hi: 0xab}, + {value: 0x0014, lo: 0xac, hi: 0xb3}, + {value: 0x0010, lo: 0xb4, hi: 0xb5}, + {value: 0x0014, lo: 0xb6, hi: 0xb6}, + {value: 0x0034, lo: 0xb7, hi: 0xb7}, + // Block 0x59, offset 0x274 + {value: 0x0010, lo: 0x80, hi: 0x89}, + {value: 0x0010, lo: 0x8d, hi: 0xb7}, + {value: 0x0014, lo: 0xb8, hi: 0xbd}, + // Block 0x5a, offset 0x277 + {value: 0x296a, lo: 0x80, hi: 0x80}, + {value: 0x2a2a, lo: 0x81, hi: 0x81}, + {value: 0x2aea, lo: 0x82, hi: 0x82}, + {value: 0x2baa, lo: 0x83, hi: 0x83}, + {value: 0x2c6a, lo: 0x84, hi: 0x84}, + {value: 0x2d2a, lo: 0x85, hi: 0x85}, + {value: 0x2dea, lo: 0x86, hi: 0x86}, + {value: 0x2eaa, lo: 0x87, hi: 0x87}, + {value: 0x2f6a, lo: 0x88, hi: 0x88}, + // Block 0x5b, offset 0x280 + {value: 0x0024, lo: 0x90, hi: 0x92}, + {value: 0x0034, lo: 0x94, hi: 0x99}, + {value: 0x0024, lo: 0x9a, hi: 0x9b}, + {value: 0x0034, lo: 0x9c, hi: 0x9f}, + {value: 0x0024, lo: 0xa0, hi: 0xa0}, + {value: 0x0010, lo: 0xa1, hi: 0xa1}, + {value: 0x0034, lo: 0xa2, hi: 0xa8}, + {value: 0x0010, lo: 0xa9, hi: 0xac}, + {value: 0x0034, lo: 0xad, hi: 0xad}, + {value: 0x0010, lo: 0xae, hi: 0xb3}, + {value: 0x0024, lo: 0xb4, hi: 0xb4}, + {value: 0x0010, lo: 0xb5, hi: 0xb7}, + {value: 0x0024, lo: 0xb8, hi: 0xb9}, + // Block 0x5c, offset 0x28d + {value: 0x0012, lo: 0x80, hi: 0xab}, + {value: 0x0015, lo: 0xac, hi: 0xbf}, + // Block 0x5d, offset 0x28f + {value: 0x0015, lo: 0x80, hi: 0xaa}, + {value: 0x0012, lo: 0xab, hi: 0xb7}, + {value: 0x0015, lo: 0xb8, hi: 0xb8}, + {value: 0x8452, lo: 0xb9, hi: 0xb9}, + {value: 0x0012, lo: 0xba, hi: 0xbc}, + {value: 0x8852, lo: 0xbd, hi: 0xbd}, + {value: 0x0012, lo: 0xbe, hi: 0xbf}, + // Block 0x5e, offset 0x296 + {value: 0x0012, lo: 0x80, hi: 0x9a}, + {value: 0x0015, lo: 0x9b, hi: 0xbf}, + // Block 0x5f, offset 0x298 + {value: 0x0024, lo: 0x80, hi: 0x81}, + {value: 0x0034, lo: 0x82, hi: 0x82}, + {value: 0x0024, lo: 0x83, hi: 0x89}, + {value: 0x0034, lo: 0x8a, hi: 0x8a}, + {value: 0x0024, lo: 0x8b, hi: 0x8c}, + {value: 0x0034, lo: 0x8d, hi: 0x90}, + {value: 0x0024, lo: 0x91, hi: 0xb5}, + {value: 0x0034, lo: 0xb6, hi: 0xb9}, + {value: 0x0024, lo: 0xbb, hi: 0xbb}, + {value: 0x0034, lo: 0xbc, hi: 0xbd}, + {value: 0x0024, lo: 0xbe, hi: 0xbe}, + {value: 0x0034, lo: 0xbf, hi: 0xbf}, + // Block 0x60, offset 0x2a4 + {value: 0x0117, lo: 0x80, hi: 0xbf}, + // Block 0x61, offset 0x2a5 + {value: 0x0117, lo: 0x80, hi: 0x95}, + {value: 0x306a, lo: 0x96, hi: 0x96}, + {value: 0x316a, lo: 0x97, hi: 0x97}, + {value: 0x326a, lo: 0x98, hi: 0x98}, + {value: 0x336a, lo: 0x99, hi: 0x99}, + {value: 0x346a, lo: 0x9a, hi: 0x9a}, + {value: 0x356a, lo: 0x9b, hi: 0x9b}, + {value: 0x0012, lo: 0x9c, hi: 0x9d}, + {value: 0x366b, lo: 0x9e, hi: 0x9e}, + {value: 0x0012, lo: 0x9f, hi: 0x9f}, + {value: 0x0117, lo: 0xa0, hi: 0xbf}, + // Block 0x62, offset 0x2b0 + {value: 0x0812, lo: 0x80, hi: 0x87}, + {value: 0x0813, lo: 0x88, hi: 0x8f}, + {value: 0x0812, lo: 0x90, hi: 0x95}, + {value: 0x0813, lo: 0x98, hi: 0x9d}, + {value: 0x0812, lo: 0xa0, hi: 0xa7}, + {value: 0x0813, lo: 0xa8, hi: 0xaf}, + {value: 0x0812, lo: 0xb0, hi: 0xb7}, + {value: 0x0813, lo: 0xb8, hi: 0xbf}, + // Block 0x63, offset 0x2b8 + {value: 0x0004, lo: 0x8b, hi: 0x8b}, + {value: 0x0014, lo: 0x8c, hi: 0x8f}, + {value: 0x0054, lo: 0x98, hi: 0x99}, + {value: 0x0054, lo: 0xa4, hi: 0xa4}, + {value: 0x0054, lo: 0xa7, hi: 0xa7}, + {value: 0x0014, lo: 0xaa, hi: 0xae}, + {value: 0x0010, lo: 0xaf, hi: 0xaf}, + {value: 0x0010, lo: 0xbf, hi: 0xbf}, + // Block 0x64, offset 0x2c0 + {value: 0x0010, lo: 0x80, hi: 0x80}, + {value: 0x0010, lo: 0x94, hi: 0x94}, + {value: 0x0014, lo: 0xa0, hi: 0xa4}, + {value: 0x0014, lo: 0xa6, hi: 0xaf}, + {value: 0x0015, lo: 0xb1, hi: 0xb1}, + {value: 0x0015, lo: 0xbf, hi: 0xbf}, + // Block 0x65, offset 0x2c6 + {value: 0x0015, lo: 0x90, hi: 0x9c}, + // Block 0x66, offset 0x2c7 + {value: 0x0024, lo: 0x90, hi: 0x91}, + {value: 0x0034, lo: 0x92, hi: 0x93}, + {value: 0x0024, lo: 0x94, hi: 0x97}, + {value: 0x0034, lo: 0x98, hi: 0x9a}, + {value: 0x0024, lo: 0x9b, hi: 0x9c}, + {value: 0x0014, lo: 0x9d, hi: 0xa0}, + {value: 0x0024, lo: 0xa1, hi: 0xa1}, + {value: 0x0014, lo: 0xa2, hi: 0xa4}, + {value: 0x0034, lo: 0xa5, hi: 0xa6}, + {value: 0x0024, lo: 0xa7, hi: 0xa7}, + {value: 0x0034, lo: 0xa8, hi: 0xa8}, + {value: 0x0024, lo: 0xa9, hi: 0xa9}, + {value: 0x0034, lo: 0xaa, hi: 0xaf}, + {value: 0x0024, lo: 0xb0, hi: 0xb0}, + // Block 0x67, offset 0x2d5 + {value: 0x0016, lo: 0x85, hi: 0x86}, + {value: 0x0012, lo: 0x87, hi: 0x89}, + {value: 0x9d52, lo: 0x8e, hi: 0x8e}, + {value: 0x1013, lo: 0xa0, hi: 0xaf}, + {value: 0x1012, lo: 0xb0, hi: 0xbf}, + // Block 0x68, offset 0x2da + {value: 0x0010, lo: 0x80, hi: 0x82}, + {value: 0x0716, lo: 0x83, hi: 0x84}, + {value: 0x0010, lo: 0x85, hi: 0x88}, + // Block 0x69, offset 0x2dd + {value: 0xa053, lo: 0xb6, hi: 0xb7}, + {value: 0xa353, lo: 0xb8, hi: 0xb9}, + {value: 0xa653, lo: 0xba, hi: 0xbb}, + {value: 0xa353, lo: 0xbc, hi: 0xbd}, + {value: 0xa053, lo: 0xbe, hi: 0xbf}, + // Block 0x6a, offset 0x2e2 + {value: 0x3013, lo: 0x80, hi: 0x8f}, + {value: 0x6553, lo: 0x90, hi: 0x9f}, + {value: 0xa953, lo: 0xa0, hi: 0xae}, + {value: 0x3012, lo: 0xb0, hi: 0xbf}, + // Block 0x6b, offset 0x2e6 + {value: 0x0117, lo: 0x80, hi: 0xa3}, + {value: 0x0012, lo: 0xa4, hi: 0xa4}, + {value: 0x0716, lo: 0xab, hi: 0xac}, + {value: 0x0316, lo: 0xad, hi: 0xae}, + {value: 0x0024, lo: 0xaf, hi: 0xb1}, + {value: 0x0117, lo: 0xb2, hi: 0xb3}, + // Block 0x6c, offset 0x2ec + {value: 0x6c52, lo: 0x80, hi: 0x9f}, + {value: 0x7052, lo: 0xa0, hi: 0xa5}, + {value: 0x7052, lo: 0xa7, hi: 0xa7}, + {value: 0x7052, lo: 0xad, hi: 0xad}, + {value: 0x0010, lo: 0xb0, hi: 0xbf}, + // Block 0x6d, offset 0x2f1 + {value: 0x0010, lo: 0x80, hi: 0xa7}, + {value: 0x0014, lo: 0xaf, hi: 0xaf}, + {value: 0x0034, lo: 0xbf, hi: 0xbf}, + // Block 0x6e, offset 0x2f4 + {value: 0x0010, lo: 0x80, hi: 0x96}, + {value: 0x0010, lo: 0xa0, hi: 0xa6}, + {value: 0x0010, lo: 0xa8, hi: 0xae}, + {value: 0x0010, lo: 0xb0, hi: 0xb6}, + {value: 0x0010, lo: 0xb8, hi: 0xbe}, + // Block 0x6f, offset 0x2f9 + {value: 0x0010, lo: 0x80, hi: 0x86}, + {value: 0x0010, lo: 0x88, hi: 0x8e}, + {value: 0x0010, lo: 0x90, hi: 0x96}, + {value: 0x0010, lo: 0x98, hi: 0x9e}, + {value: 0x0024, lo: 0xa0, hi: 0xbf}, + // Block 0x70, offset 0x2fe + {value: 0x0014, lo: 0xaf, hi: 0xaf}, + // Block 0x71, offset 0x2ff + {value: 0x0014, lo: 0x85, hi: 0x85}, + {value: 0x0034, lo: 0xaa, hi: 0xad}, + {value: 0x0030, lo: 0xae, hi: 0xaf}, + {value: 0x0004, lo: 0xb1, hi: 0xb5}, + {value: 0x0014, lo: 0xbb, hi: 0xbb}, + {value: 0x0010, lo: 0xbc, hi: 0xbc}, + // Block 0x72, offset 0x305 + {value: 0x0034, lo: 0x99, hi: 0x9a}, + {value: 0x0004, lo: 0x9b, hi: 0x9e}, + // Block 0x73, offset 0x307 + {value: 0x0004, lo: 0xbc, hi: 0xbe}, + // Block 0x74, offset 0x308 + {value: 0x0010, lo: 0x85, hi: 0xae}, + {value: 0x0010, lo: 0xb1, hi: 0xbf}, + // Block 0x75, offset 0x30a + {value: 0x0010, lo: 0x80, hi: 0x8e}, + {value: 0x0010, lo: 0xa0, hi: 0xba}, + // Block 0x76, offset 0x30c + {value: 0x0010, lo: 0x80, hi: 0x94}, + {value: 0x0014, lo: 0x95, hi: 0x95}, + {value: 0x0010, lo: 0x96, hi: 0xbf}, + // Block 0x77, offset 0x30f + {value: 0x0010, lo: 0x80, hi: 0x8c}, + // Block 0x78, offset 0x310 + {value: 0x0010, lo: 0x90, hi: 0xb7}, + {value: 0x0014, lo: 0xb8, hi: 0xbd}, + // Block 0x79, offset 0x312 + {value: 0x0010, lo: 0x80, hi: 0x8b}, + {value: 0x0014, lo: 0x8c, hi: 0x8c}, + {value: 0x0010, lo: 0x90, hi: 0xab}, + // Block 0x7a, offset 0x315 + {value: 0x0117, lo: 0x80, hi: 0xad}, + {value: 0x0010, lo: 0xae, hi: 0xae}, + {value: 0x0024, lo: 0xaf, hi: 0xaf}, + {value: 0x0014, lo: 0xb0, hi: 0xb2}, + {value: 0x0024, lo: 0xb4, hi: 0xbd}, + {value: 0x0014, lo: 0xbf, hi: 0xbf}, + // Block 0x7b, offset 0x31b + {value: 0x0117, lo: 0x80, hi: 0x9b}, + {value: 0x0015, lo: 0x9c, hi: 0x9d}, + {value: 0x0024, lo: 0x9e, hi: 0x9f}, + {value: 0x0010, lo: 0xa0, hi: 0xbf}, + // Block 0x7c, offset 0x31f + {value: 0x0010, lo: 0x80, hi: 0xaf}, + {value: 0x0024, lo: 0xb0, hi: 0xb1}, + // Block 0x7d, offset 0x321 + {value: 0x0004, lo: 0x80, hi: 0x96}, + {value: 0x0014, lo: 0x97, hi: 0xa1}, + {value: 0x0117, lo: 0xa2, hi: 0xaf}, + {value: 0x0012, lo: 0xb0, hi: 0xb1}, + {value: 0x0117, lo: 0xb2, hi: 0xbf}, + // Block 0x7e, offset 0x326 + {value: 0x0117, lo: 0x80, hi: 0xaf}, + {value: 0x0015, lo: 0xb0, hi: 0xb0}, + {value: 0x0012, lo: 0xb1, hi: 0xb8}, + {value: 0x0316, lo: 0xb9, hi: 0xba}, + {value: 0x0716, lo: 0xbb, hi: 0xbc}, + {value: 0x8453, lo: 0xbd, hi: 0xbd}, + {value: 0x0117, lo: 0xbe, hi: 0xbf}, + // Block 0x7f, offset 0x32d + {value: 0x0010, lo: 0xb7, hi: 0xb7}, + {value: 0x0015, lo: 0xb8, hi: 0xb9}, + {value: 0x0012, lo: 0xba, hi: 0xba}, + {value: 0x0010, lo: 0xbb, hi: 0xbf}, + // Block 0x80, offset 0x331 + {value: 0x0010, lo: 0x80, hi: 0x81}, + {value: 0x0014, lo: 0x82, hi: 0x82}, + {value: 0x0010, lo: 0x83, hi: 0x85}, + {value: 0x0034, lo: 0x86, hi: 0x86}, + {value: 0x0010, lo: 0x87, hi: 0x8a}, + {value: 0x0014, lo: 0x8b, hi: 0x8b}, + {value: 0x0010, lo: 0x8c, hi: 0xa4}, + {value: 0x0014, lo: 0xa5, hi: 0xa6}, + {value: 0x0010, lo: 0xa7, hi: 0xa7}, + // Block 0x81, offset 0x33a + {value: 0x0010, lo: 0x80, hi: 0xb3}, + // Block 0x82, offset 0x33b + {value: 0x0010, lo: 0x80, hi: 0x83}, + {value: 0x0034, lo: 0x84, hi: 0x84}, + {value: 0x0014, lo: 0x85, hi: 0x85}, + {value: 0x0010, lo: 0x90, hi: 0x99}, + {value: 0x0024, lo: 0xa0, hi: 0xb1}, + {value: 0x0010, lo: 0xb2, hi: 0xb7}, + {value: 0x0010, lo: 0xbb, hi: 0xbb}, + {value: 0x0010, lo: 0xbd, hi: 0xbd}, + // Block 0x83, offset 0x343 + {value: 0x0010, lo: 0x80, hi: 0xa5}, + {value: 0x0014, lo: 0xa6, hi: 0xaa}, + {value: 0x0034, lo: 0xab, hi: 0xad}, + {value: 0x0010, lo: 0xb0, hi: 0xbf}, + // Block 0x84, offset 0x347 + {value: 0x0010, lo: 0x80, hi: 0x86}, + {value: 0x0014, lo: 0x87, hi: 0x91}, + {value: 0x0010, lo: 0x92, hi: 0x92}, + {value: 0x0030, lo: 0x93, hi: 0x93}, + {value: 0x0010, lo: 0xa0, hi: 0xbc}, + // Block 0x85, offset 0x34c + {value: 0x0014, lo: 0x80, hi: 0x82}, + {value: 0x0010, lo: 0x83, hi: 0xb2}, + {value: 0x0034, lo: 0xb3, hi: 0xb3}, + {value: 0x0010, lo: 0xb4, hi: 0xb5}, + {value: 0x0014, lo: 0xb6, hi: 0xb9}, + {value: 0x0010, lo: 0xba, hi: 0xbb}, + {value: 0x0014, lo: 0xbc, hi: 0xbc}, + {value: 0x0010, lo: 0xbd, hi: 0xbf}, + // Block 0x86, offset 0x354 + {value: 0x0030, lo: 0x80, hi: 0x80}, + {value: 0x0014, lo: 0x8f, hi: 0x8f}, + {value: 0x0010, lo: 0x90, hi: 0x99}, + {value: 0x0014, lo: 0xa5, hi: 0xa5}, + {value: 0x0004, lo: 0xa6, hi: 0xa6}, + {value: 0x0010, lo: 0xb0, hi: 0xb9}, + // Block 0x87, offset 0x35a + {value: 0x0010, lo: 0x80, hi: 0xa8}, + {value: 0x0014, lo: 0xa9, hi: 0xae}, + {value: 0x0010, lo: 0xaf, hi: 0xb0}, + {value: 0x0014, lo: 0xb1, hi: 0xb2}, + {value: 0x0010, lo: 0xb3, hi: 0xb4}, + {value: 0x0014, lo: 0xb5, hi: 0xb6}, + // Block 0x88, offset 0x360 + {value: 0x0010, lo: 0x80, hi: 0x82}, + {value: 0x0014, lo: 0x83, hi: 0x83}, + {value: 0x0010, lo: 0x84, hi: 0x8b}, + {value: 0x0014, lo: 0x8c, hi: 0x8c}, + {value: 0x0010, lo: 0x8d, hi: 0x8d}, + {value: 0x0010, lo: 0x90, hi: 0x99}, + {value: 0x0004, lo: 0xb0, hi: 0xb0}, + {value: 0x0010, lo: 0xbb, hi: 0xbb}, + {value: 0x0014, lo: 0xbc, hi: 0xbc}, + {value: 0x0010, lo: 0xbd, hi: 0xbd}, + // Block 0x89, offset 0x36a + {value: 0x0024, lo: 0xb0, hi: 0xb0}, + {value: 0x0024, lo: 0xb2, hi: 0xb3}, + {value: 0x0034, lo: 0xb4, hi: 0xb4}, + {value: 0x0024, lo: 0xb7, hi: 0xb8}, + {value: 0x0024, lo: 0xbe, hi: 0xbf}, + // Block 0x8a, offset 0x36f + {value: 0x0024, lo: 0x81, hi: 0x81}, + {value: 0x0004, lo: 0x9d, hi: 0x9d}, + {value: 0x0010, lo: 0xa0, hi: 0xab}, + {value: 0x0014, lo: 0xac, hi: 0xad}, + {value: 0x0010, lo: 0xae, hi: 0xaf}, + {value: 0x0010, lo: 0xb2, hi: 0xb2}, + {value: 0x0014, lo: 0xb3, hi: 0xb4}, + {value: 0x0010, lo: 0xb5, hi: 0xb5}, + {value: 0x0034, lo: 0xb6, hi: 0xb6}, + // Block 0x8b, offset 0x378 + {value: 0x0010, lo: 0x81, hi: 0x86}, + {value: 0x0010, lo: 0x89, hi: 0x8e}, + {value: 0x0010, lo: 0x91, hi: 0x96}, + {value: 0x0010, lo: 0xa0, hi: 0xa6}, + {value: 0x0010, lo: 0xa8, hi: 0xae}, + {value: 0x0012, lo: 0xb0, hi: 0xbf}, + // Block 0x8c, offset 0x37e + {value: 0x0012, lo: 0x80, hi: 0x92}, + {value: 0xac52, lo: 0x93, hi: 0x93}, + {value: 0x0012, lo: 0x94, hi: 0x9a}, + {value: 0x0014, lo: 0x9b, hi: 0x9b}, + {value: 0x0015, lo: 0x9c, hi: 0x9f}, + {value: 0x0012, lo: 0xa0, hi: 0xa5}, + {value: 0x74d2, lo: 0xb0, hi: 0xbf}, + // Block 0x8d, offset 0x385 + {value: 0x78d2, lo: 0x80, hi: 0x8f}, + {value: 0x7cd2, lo: 0x90, hi: 0x9f}, + {value: 0x80d2, lo: 0xa0, hi: 0xaf}, + {value: 0x7cd2, lo: 0xb0, hi: 0xbf}, + // Block 0x8e, offset 0x389 + {value: 0x0010, lo: 0x80, hi: 0xa4}, + {value: 0x0014, lo: 0xa5, hi: 0xa5}, + {value: 0x0010, lo: 0xa6, hi: 0xa7}, + {value: 0x0014, lo: 0xa8, hi: 0xa8}, + {value: 0x0010, lo: 0xa9, hi: 0xaa}, + {value: 0x0010, lo: 0xac, hi: 0xac}, + {value: 0x0034, lo: 0xad, hi: 0xad}, + {value: 0x0010, lo: 0xb0, hi: 0xb9}, + // Block 0x8f, offset 0x391 + {value: 0x0010, lo: 0x80, hi: 0xa3}, + {value: 0x0010, lo: 0xb0, hi: 0xbf}, + // Block 0x90, offset 0x393 + {value: 0x0010, lo: 0x80, hi: 0x86}, + {value: 0x0010, lo: 0x8b, hi: 0xbb}, + // Block 0x91, offset 0x395 + {value: 0x0010, lo: 0x80, hi: 0x81}, + {value: 0x0010, lo: 0x83, hi: 0x84}, + {value: 0x0010, lo: 0x86, hi: 0xbf}, + // Block 0x92, offset 0x398 + {value: 0x0010, lo: 0x80, hi: 0xb1}, + {value: 0x0004, lo: 0xb2, hi: 0xbf}, + // Block 0x93, offset 0x39a + {value: 0x0004, lo: 0x80, hi: 0x81}, + {value: 0x0010, lo: 0x93, hi: 0xbf}, + // Block 0x94, offset 0x39c + {value: 0x0010, lo: 0x80, hi: 0xbd}, + // Block 0x95, offset 0x39d + {value: 0x0010, lo: 0x90, hi: 0xbf}, + // Block 0x96, offset 0x39e + {value: 0x0010, lo: 0x80, hi: 0x8f}, + {value: 0x0010, lo: 0x92, hi: 0xbf}, + // Block 0x97, offset 0x3a0 + {value: 0x0010, lo: 0x80, hi: 0x87}, + {value: 0x0010, lo: 0xb0, hi: 0xbb}, + // Block 0x98, offset 0x3a2 + {value: 0x0014, lo: 0x80, hi: 0x8f}, + {value: 0x0054, lo: 0x93, hi: 0x93}, + {value: 0x0024, lo: 0xa0, hi: 0xa6}, + {value: 0x0034, lo: 0xa7, hi: 0xad}, + {value: 0x0024, lo: 0xae, hi: 0xaf}, + {value: 0x0010, lo: 0xb3, hi: 0xb4}, + // Block 0x99, offset 0x3a8 + {value: 0x0010, lo: 0x8d, hi: 0x8f}, + {value: 0x0054, lo: 0x92, hi: 0x92}, + {value: 0x0054, lo: 0x95, hi: 0x95}, + {value: 0x0010, lo: 0xb0, hi: 0xb4}, + {value: 0x0010, lo: 0xb6, hi: 0xbf}, + // Block 0x9a, offset 0x3ad + {value: 0x0010, lo: 0x80, hi: 0xbc}, + {value: 0x0014, lo: 0xbf, hi: 0xbf}, + // Block 0x9b, offset 0x3af + {value: 0x0054, lo: 0x87, hi: 0x87}, + {value: 0x0054, lo: 0x8e, hi: 0x8e}, + {value: 0x0054, lo: 0x9a, hi: 0x9a}, + {value: 0x5f53, lo: 0xa1, hi: 0xba}, + {value: 0x0004, lo: 0xbe, hi: 0xbe}, + {value: 0x0010, lo: 0xbf, hi: 0xbf}, + // Block 0x9c, offset 0x3b5 + {value: 0x0004, lo: 0x80, hi: 0x80}, + {value: 0x5f52, lo: 0x81, hi: 0x9a}, + {value: 0x0004, lo: 0xb0, hi: 0xb0}, + // Block 0x9d, offset 0x3b8 + {value: 0x0014, lo: 0x9e, hi: 0x9f}, + {value: 0x0010, lo: 0xa0, hi: 0xbe}, + // Block 0x9e, offset 0x3ba + {value: 0x0010, lo: 0x82, hi: 0x87}, + {value: 0x0010, lo: 0x8a, hi: 0x8f}, + {value: 0x0010, lo: 0x92, hi: 0x97}, + {value: 0x0010, lo: 0x9a, hi: 0x9c}, + {value: 0x0004, lo: 0xa3, hi: 0xa3}, + {value: 0x0014, lo: 0xb9, hi: 0xbb}, + // Block 0x9f, offset 0x3c0 + {value: 0x0010, lo: 0x80, hi: 0x8b}, + {value: 0x0010, lo: 0x8d, hi: 0xa6}, + {value: 0x0010, lo: 0xa8, hi: 0xba}, + {value: 0x0010, lo: 0xbc, hi: 0xbd}, + {value: 0x0010, lo: 0xbf, hi: 0xbf}, + // Block 0xa0, offset 0x3c5 + {value: 0x0010, lo: 0x80, hi: 0x8d}, + {value: 0x0010, lo: 0x90, hi: 0x9d}, + // Block 0xa1, offset 0x3c7 + {value: 0x0010, lo: 0x80, hi: 0xba}, + // Block 0xa2, offset 0x3c8 + {value: 0x0010, lo: 0x80, hi: 0xb4}, + // Block 0xa3, offset 0x3c9 + {value: 0x0034, lo: 0xbd, hi: 0xbd}, + // Block 0xa4, offset 0x3ca + {value: 0x0010, lo: 0x80, hi: 0x9c}, + {value: 0x0010, lo: 0xa0, hi: 0xbf}, + // Block 0xa5, offset 0x3cc + {value: 0x0010, lo: 0x80, hi: 0x90}, + {value: 0x0034, lo: 0xa0, hi: 0xa0}, + // Block 0xa6, offset 0x3ce + {value: 0x0010, lo: 0x80, hi: 0x9f}, + {value: 0x0010, lo: 0xad, hi: 0xbf}, + // Block 0xa7, offset 0x3d0 + {value: 0x0010, lo: 0x80, hi: 0x8a}, + {value: 0x0010, lo: 0x90, hi: 0xb5}, + {value: 0x0024, lo: 0xb6, hi: 0xba}, + // Block 0xa8, offset 0x3d3 + {value: 0x0010, lo: 0x80, hi: 0x9d}, + {value: 0x0010, lo: 0xa0, hi: 0xbf}, + // Block 0xa9, offset 0x3d5 + {value: 0x0010, lo: 0x80, hi: 0x83}, + {value: 0x0010, lo: 0x88, hi: 0x8f}, + {value: 0x0010, lo: 0x91, hi: 0x95}, + // Block 0xaa, offset 0x3d8 + {value: 0x2813, lo: 0x80, hi: 0x87}, + {value: 0x3813, lo: 0x88, hi: 0x8f}, + {value: 0x2813, lo: 0x90, hi: 0x97}, + {value: 0xaf53, lo: 0x98, hi: 0x9f}, + {value: 0xb253, lo: 0xa0, hi: 0xa7}, + {value: 0x2812, lo: 0xa8, hi: 0xaf}, + {value: 0x3812, lo: 0xb0, hi: 0xb7}, + {value: 0x2812, lo: 0xb8, hi: 0xbf}, + // Block 0xab, offset 0x3e0 + {value: 0xaf52, lo: 0x80, hi: 0x87}, + {value: 0xb252, lo: 0x88, hi: 0x8f}, + {value: 0x0010, lo: 0x90, hi: 0xbf}, + // Block 0xac, offset 0x3e3 + {value: 0x0010, lo: 0x80, hi: 0x9d}, + {value: 0x0010, lo: 0xa0, hi: 0xa9}, + {value: 0xb253, lo: 0xb0, hi: 0xb7}, + {value: 0xaf53, lo: 0xb8, hi: 0xbf}, + // Block 0xad, offset 0x3e7 + {value: 0x2813, lo: 0x80, hi: 0x87}, + {value: 0x3813, lo: 0x88, hi: 0x8f}, + {value: 0x2813, lo: 0x90, hi: 0x93}, + {value: 0xb252, lo: 0x98, hi: 0x9f}, + {value: 0xaf52, lo: 0xa0, hi: 0xa7}, + {value: 0x2812, lo: 0xa8, hi: 0xaf}, + {value: 0x3812, lo: 0xb0, hi: 0xb7}, + {value: 0x2812, lo: 0xb8, hi: 0xbb}, + // Block 0xae, offset 0x3ef + {value: 0x0010, lo: 0x80, hi: 0xa7}, + {value: 0x0010, lo: 0xb0, hi: 0xbf}, + // Block 0xaf, offset 0x3f1 + {value: 0x0010, lo: 0x80, hi: 0xa3}, + // Block 0xb0, offset 0x3f2 + {value: 0x0010, lo: 0x80, hi: 0xb6}, + // Block 0xb1, offset 0x3f3 + {value: 0x0010, lo: 0x80, hi: 0x95}, + {value: 0x0010, lo: 0xa0, hi: 0xa7}, + // Block 0xb2, offset 0x3f5 + {value: 0x0010, lo: 0x80, hi: 0x85}, + {value: 0x0010, lo: 0x88, hi: 0x88}, + {value: 0x0010, lo: 0x8a, hi: 0xb5}, + {value: 0x0010, lo: 0xb7, hi: 0xb8}, + {value: 0x0010, lo: 0xbc, hi: 0xbc}, + {value: 0x0010, lo: 0xbf, hi: 0xbf}, + // Block 0xb3, offset 0x3fb + {value: 0x0010, lo: 0x80, hi: 0x95}, + {value: 0x0010, lo: 0xa0, hi: 0xb6}, + // Block 0xb4, offset 0x3fd + {value: 0x0010, lo: 0x80, hi: 0x9e}, + // Block 0xb5, offset 0x3fe + {value: 0x0010, lo: 0xa0, hi: 0xb2}, + {value: 0x0010, lo: 0xb4, hi: 0xb5}, + // Block 0xb6, offset 0x400 + {value: 0x0010, lo: 0x80, hi: 0x95}, + {value: 0x0010, lo: 0xa0, hi: 0xb9}, + // Block 0xb7, offset 0x402 + {value: 0x0010, lo: 0x80, hi: 0xb7}, + {value: 0x0010, lo: 0xbe, hi: 0xbf}, + // Block 0xb8, offset 0x404 + {value: 0x0010, lo: 0x80, hi: 0x80}, + {value: 0x0014, lo: 0x81, hi: 0x83}, + {value: 0x0014, lo: 0x85, hi: 0x86}, + {value: 0x0014, lo: 0x8c, hi: 0x8c}, + {value: 0x0034, lo: 0x8d, hi: 0x8d}, + {value: 0x0014, lo: 0x8e, hi: 0x8e}, + {value: 0x0024, lo: 0x8f, hi: 0x8f}, + {value: 0x0010, lo: 0x90, hi: 0x93}, + {value: 0x0010, lo: 0x95, hi: 0x97}, + {value: 0x0010, lo: 0x99, hi: 0xb3}, + {value: 0x0024, lo: 0xb8, hi: 0xb8}, + {value: 0x0034, lo: 0xb9, hi: 0xba}, + {value: 0x0034, lo: 0xbf, hi: 0xbf}, + // Block 0xb9, offset 0x411 + {value: 0x0010, lo: 0xa0, hi: 0xbc}, + // Block 0xba, offset 0x412 + {value: 0x0010, lo: 0x80, hi: 0x9c}, + // Block 0xbb, offset 0x413 + {value: 0x0010, lo: 0x80, hi: 0x87}, + {value: 0x0010, lo: 0x89, hi: 0xa4}, + {value: 0x0024, lo: 0xa5, hi: 0xa5}, + {value: 0x0034, lo: 0xa6, hi: 0xa6}, + // Block 0xbc, offset 0x417 + {value: 0x0010, lo: 0x80, hi: 0x95}, + {value: 0x0010, lo: 0xa0, hi: 0xb2}, + // Block 0xbd, offset 0x419 + {value: 0x0010, lo: 0x80, hi: 0x91}, + // Block 0xbe, offset 0x41a + {value: 0x0010, lo: 0x80, hi: 0x88}, + // Block 0xbf, offset 0x41b + {value: 0x5653, lo: 0x80, hi: 0xb2}, + // Block 0xc0, offset 0x41c + {value: 0x5652, lo: 0x80, hi: 0xb2}, + // Block 0xc1, offset 0x41d + {value: 0x0010, lo: 0x80, hi: 0x80}, + {value: 0x0014, lo: 0x81, hi: 0x81}, + {value: 0x0010, lo: 0x82, hi: 0xb7}, + {value: 0x0014, lo: 0xb8, hi: 0xbf}, + // Block 0xc2, offset 0x421 + {value: 0x0014, lo: 0x80, hi: 0x85}, + {value: 0x0034, lo: 0x86, hi: 0x86}, + {value: 0x0010, lo: 0xa6, hi: 0xaf}, + {value: 0x0034, lo: 0xbf, hi: 0xbf}, + // Block 0xc3, offset 0x425 + {value: 0x0014, lo: 0x80, hi: 0x81}, + {value: 0x0010, lo: 0x82, hi: 0xb2}, + {value: 0x0014, lo: 0xb3, hi: 0xb6}, + {value: 0x0010, lo: 0xb7, hi: 0xb8}, + {value: 0x0034, lo: 0xb9, hi: 0xba}, + {value: 0x0014, lo: 0xbd, hi: 0xbd}, + // Block 0xc4, offset 0x42b + {value: 0x0010, lo: 0x90, hi: 0xa8}, + {value: 0x0010, lo: 0xb0, hi: 0xb9}, + // Block 0xc5, offset 0x42d + {value: 0x0024, lo: 0x80, hi: 0x82}, + {value: 0x0010, lo: 0x83, hi: 0xa6}, + {value: 0x0014, lo: 0xa7, hi: 0xab}, + {value: 0x0010, lo: 0xac, hi: 0xac}, + {value: 0x0014, lo: 0xad, hi: 0xb2}, + {value: 0x0034, lo: 0xb3, hi: 0xb4}, + {value: 0x0010, lo: 0xb6, hi: 0xbf}, + // Block 0xc6, offset 0x434 + {value: 0x0010, lo: 0x90, hi: 0xb2}, + {value: 0x0034, lo: 0xb3, hi: 0xb3}, + {value: 0x0010, lo: 0xb6, hi: 0xb6}, + // Block 0xc7, offset 0x437 + {value: 0x0014, lo: 0x80, hi: 0x81}, + {value: 0x0010, lo: 0x82, hi: 0xb5}, + {value: 0x0014, lo: 0xb6, hi: 0xbe}, + {value: 0x0010, lo: 0xbf, hi: 0xbf}, + // Block 0xc8, offset 0x43b + {value: 0x0030, lo: 0x80, hi: 0x80}, + {value: 0x0010, lo: 0x81, hi: 0x84}, + {value: 0x0034, lo: 0x8a, hi: 0x8a}, + {value: 0x0014, lo: 0x8b, hi: 0x8c}, + {value: 0x0010, lo: 0x90, hi: 0x9a}, + {value: 0x0010, lo: 0x9c, hi: 0x9c}, + // Block 0xc9, offset 0x441 + {value: 0x0010, lo: 0x80, hi: 0x91}, + {value: 0x0010, lo: 0x93, hi: 0xae}, + {value: 0x0014, lo: 0xaf, hi: 0xb1}, + {value: 0x0010, lo: 0xb2, hi: 0xb3}, + {value: 0x0014, lo: 0xb4, hi: 0xb4}, + {value: 0x0030, lo: 0xb5, hi: 0xb5}, + {value: 0x0034, lo: 0xb6, hi: 0xb6}, + {value: 0x0014, lo: 0xb7, hi: 0xb7}, + {value: 0x0014, lo: 0xbe, hi: 0xbe}, + // Block 0xca, offset 0x44a + {value: 0x0010, lo: 0x80, hi: 0x86}, + {value: 0x0010, lo: 0x88, hi: 0x88}, + {value: 0x0010, lo: 0x8a, hi: 0x8d}, + {value: 0x0010, lo: 0x8f, hi: 0x9d}, + {value: 0x0010, lo: 0x9f, hi: 0xa8}, + {value: 0x0010, lo: 0xb0, hi: 0xbf}, + // Block 0xcb, offset 0x450 + {value: 0x0010, lo: 0x80, hi: 0x9e}, + {value: 0x0014, lo: 0x9f, hi: 0x9f}, + {value: 0x0010, lo: 0xa0, hi: 0xa2}, + {value: 0x0014, lo: 0xa3, hi: 0xa8}, + {value: 0x0034, lo: 0xa9, hi: 0xaa}, + {value: 0x0010, lo: 0xb0, hi: 0xb9}, + // Block 0xcc, offset 0x456 + {value: 0x0014, lo: 0x80, hi: 0x81}, + {value: 0x0010, lo: 0x82, hi: 0x83}, + {value: 0x0010, lo: 0x85, hi: 0x8c}, + {value: 0x0010, lo: 0x8f, hi: 0x90}, + {value: 0x0010, lo: 0x93, hi: 0xa8}, + {value: 0x0010, lo: 0xaa, hi: 0xb0}, + {value: 0x0010, lo: 0xb2, hi: 0xb3}, + {value: 0x0010, lo: 0xb5, hi: 0xb9}, + {value: 0x0034, lo: 0xbc, hi: 0xbc}, + {value: 0x0010, lo: 0xbd, hi: 0xbf}, + // Block 0xcd, offset 0x460 + {value: 0x0014, lo: 0x80, hi: 0x80}, + {value: 0x0010, lo: 0x81, hi: 0x84}, + {value: 0x0010, lo: 0x87, hi: 0x88}, + {value: 0x0010, lo: 0x8b, hi: 0x8c}, + {value: 0x0030, lo: 0x8d, hi: 0x8d}, + {value: 0x0010, lo: 0x90, hi: 0x90}, + {value: 0x0010, lo: 0x97, hi: 0x97}, + {value: 0x0010, lo: 0x9d, hi: 0xa3}, + {value: 0x0024, lo: 0xa6, hi: 0xac}, + {value: 0x0024, lo: 0xb0, hi: 0xb4}, + // Block 0xce, offset 0x46a + {value: 0x0010, lo: 0x80, hi: 0xb7}, + {value: 0x0014, lo: 0xb8, hi: 0xbf}, + // Block 0xcf, offset 0x46c + {value: 0x0010, lo: 0x80, hi: 0x81}, + {value: 0x0034, lo: 0x82, hi: 0x82}, + {value: 0x0014, lo: 0x83, hi: 0x84}, + {value: 0x0010, lo: 0x85, hi: 0x85}, + {value: 0x0034, lo: 0x86, hi: 0x86}, + {value: 0x0010, lo: 0x87, hi: 0x8a}, + {value: 0x0010, lo: 0x90, hi: 0x99}, + // Block 0xd0, offset 0x473 + {value: 0x0010, lo: 0x80, hi: 0xb2}, + {value: 0x0014, lo: 0xb3, hi: 0xb8}, + {value: 0x0010, lo: 0xb9, hi: 0xb9}, + {value: 0x0014, lo: 0xba, hi: 0xba}, + {value: 0x0010, lo: 0xbb, hi: 0xbe}, + {value: 0x0014, lo: 0xbf, hi: 0xbf}, + // Block 0xd1, offset 0x479 + {value: 0x0014, lo: 0x80, hi: 0x80}, + {value: 0x0010, lo: 0x81, hi: 0x81}, + {value: 0x0034, lo: 0x82, hi: 0x83}, + {value: 0x0010, lo: 0x84, hi: 0x85}, + {value: 0x0010, lo: 0x87, hi: 0x87}, + {value: 0x0010, lo: 0x90, hi: 0x99}, + // Block 0xd2, offset 0x47f + {value: 0x0010, lo: 0x80, hi: 0xb1}, + {value: 0x0014, lo: 0xb2, hi: 0xb5}, + {value: 0x0010, lo: 0xb8, hi: 0xbb}, + {value: 0x0014, lo: 0xbc, hi: 0xbd}, + {value: 0x0010, lo: 0xbe, hi: 0xbe}, + {value: 0x0034, lo: 0xbf, hi: 0xbf}, + // Block 0xd3, offset 0x485 + {value: 0x0034, lo: 0x80, hi: 0x80}, + {value: 0x0010, lo: 0x98, hi: 0x9b}, + {value: 0x0014, lo: 0x9c, hi: 0x9d}, + // Block 0xd4, offset 0x488 + {value: 0x0010, lo: 0x80, hi: 0xb2}, + {value: 0x0014, lo: 0xb3, hi: 0xba}, + {value: 0x0010, lo: 0xbb, hi: 0xbc}, + {value: 0x0014, lo: 0xbd, hi: 0xbd}, + {value: 0x0010, lo: 0xbe, hi: 0xbe}, + {value: 0x0034, lo: 0xbf, hi: 0xbf}, + // Block 0xd5, offset 0x48e + {value: 0x0014, lo: 0x80, hi: 0x80}, + {value: 0x0010, lo: 0x84, hi: 0x84}, + {value: 0x0010, lo: 0x90, hi: 0x99}, + // Block 0xd6, offset 0x491 + {value: 0x0010, lo: 0x80, hi: 0xaa}, + {value: 0x0014, lo: 0xab, hi: 0xab}, + {value: 0x0010, lo: 0xac, hi: 0xac}, + {value: 0x0014, lo: 0xad, hi: 0xad}, + {value: 0x0010, lo: 0xae, hi: 0xaf}, + {value: 0x0014, lo: 0xb0, hi: 0xb5}, + {value: 0x0030, lo: 0xb6, hi: 0xb6}, + {value: 0x0034, lo: 0xb7, hi: 0xb7}, + // Block 0xd7, offset 0x499 + {value: 0x0010, lo: 0x80, hi: 0x89}, + // Block 0xd8, offset 0x49a + {value: 0x0014, lo: 0x9d, hi: 0x9f}, + {value: 0x0010, lo: 0xa0, hi: 0xa1}, + {value: 0x0014, lo: 0xa2, hi: 0xa5}, + {value: 0x0010, lo: 0xa6, hi: 0xa6}, + {value: 0x0014, lo: 0xa7, hi: 0xaa}, + {value: 0x0034, lo: 0xab, hi: 0xab}, + {value: 0x0010, lo: 0xb0, hi: 0xb9}, + // Block 0xd9, offset 0x4a1 + {value: 0x5f53, lo: 0xa0, hi: 0xbf}, + // Block 0xda, offset 0x4a2 + {value: 0x5f52, lo: 0x80, hi: 0x9f}, + {value: 0x0010, lo: 0xa0, hi: 0xa9}, + {value: 0x0010, lo: 0xbf, hi: 0xbf}, + // Block 0xdb, offset 0x4a5 + {value: 0x0010, lo: 0x80, hi: 0x80}, + {value: 0x0014, lo: 0x81, hi: 0x86}, + {value: 0x0010, lo: 0x87, hi: 0x88}, + {value: 0x0014, lo: 0x89, hi: 0x8a}, + {value: 0x0010, lo: 0x8b, hi: 0xb2}, + {value: 0x0014, lo: 0xb3, hi: 0xb3}, + {value: 0x0034, lo: 0xb4, hi: 0xb4}, + {value: 0x0014, lo: 0xb5, hi: 0xb8}, + {value: 0x0010, lo: 0xb9, hi: 0xba}, + {value: 0x0014, lo: 0xbb, hi: 0xbe}, + // Block 0xdc, offset 0x4af + {value: 0x0034, lo: 0x87, hi: 0x87}, + {value: 0x0010, lo: 0x90, hi: 0x90}, + {value: 0x0014, lo: 0x91, hi: 0x96}, + {value: 0x0010, lo: 0x97, hi: 0x98}, + {value: 0x0014, lo: 0x99, hi: 0x9b}, + {value: 0x0010, lo: 0x9c, hi: 0xbf}, + // Block 0xdd, offset 0x4b5 + {value: 0x0010, lo: 0x80, hi: 0x83}, + {value: 0x0010, lo: 0x86, hi: 0x89}, + {value: 0x0014, lo: 0x8a, hi: 0x96}, + {value: 0x0010, lo: 0x97, hi: 0x97}, + {value: 0x0014, lo: 0x98, hi: 0x98}, + {value: 0x0034, lo: 0x99, hi: 0x99}, + // Block 0xde, offset 0x4bb + {value: 0x0010, lo: 0x80, hi: 0xb8}, + // Block 0xdf, offset 0x4bc + {value: 0x0010, lo: 0x80, hi: 0x88}, + {value: 0x0010, lo: 0x8a, hi: 0xaf}, + {value: 0x0014, lo: 0xb0, hi: 0xb6}, + {value: 0x0014, lo: 0xb8, hi: 0xbd}, + {value: 0x0010, lo: 0xbe, hi: 0xbe}, + {value: 0x0034, lo: 0xbf, hi: 0xbf}, + // Block 0xe0, offset 0x4c2 + {value: 0x0010, lo: 0x80, hi: 0x80}, + {value: 0x0010, lo: 0x90, hi: 0x99}, + {value: 0x0010, lo: 0xb2, hi: 0xbf}, + // Block 0xe1, offset 0x4c5 + {value: 0x0010, lo: 0x80, hi: 0x8f}, + {value: 0x0014, lo: 0x92, hi: 0xa7}, + {value: 0x0010, lo: 0xa9, hi: 0xa9}, + {value: 0x0014, lo: 0xaa, hi: 0xb0}, + {value: 0x0010, lo: 0xb1, hi: 0xb1}, + {value: 0x0014, lo: 0xb2, hi: 0xb3}, + {value: 0x0010, lo: 0xb4, hi: 0xb4}, + {value: 0x0014, lo: 0xb5, hi: 0xb6}, + // Block 0xe2, offset 0x4cd + {value: 0x0010, lo: 0x80, hi: 0x86}, + {value: 0x0010, lo: 0x88, hi: 0x89}, + {value: 0x0010, lo: 0x8b, hi: 0xb0}, + {value: 0x0014, lo: 0xb1, hi: 0xb6}, + {value: 0x0014, lo: 0xba, hi: 0xba}, + {value: 0x0014, lo: 0xbc, hi: 0xbd}, + {value: 0x0014, lo: 0xbf, hi: 0xbf}, + // Block 0xe3, offset 0x4d4 + {value: 0x0014, lo: 0x80, hi: 0x81}, + {value: 0x0034, lo: 0x82, hi: 0x82}, + {value: 0x0014, lo: 0x83, hi: 0x83}, + {value: 0x0034, lo: 0x84, hi: 0x85}, + {value: 0x0010, lo: 0x86, hi: 0x86}, + {value: 0x0014, lo: 0x87, hi: 0x87}, + {value: 0x0010, lo: 0x90, hi: 0x99}, + // Block 0xe4, offset 0x4db + {value: 0x0010, lo: 0x80, hi: 0x99}, + // Block 0xe5, offset 0x4dc + {value: 0x0010, lo: 0x80, hi: 0xae}, + // Block 0xe6, offset 0x4dd + {value: 0x0010, lo: 0x80, hi: 0x83}, + // Block 0xe7, offset 0x4de + {value: 0x0010, lo: 0x80, hi: 0x86}, + // Block 0xe8, offset 0x4df + {value: 0x0010, lo: 0x80, hi: 0x9e}, + {value: 0x0010, lo: 0xa0, hi: 0xa9}, + // Block 0xe9, offset 0x4e1 + {value: 0x0010, lo: 0x90, hi: 0xad}, + {value: 0x0034, lo: 0xb0, hi: 0xb4}, + // Block 0xea, offset 0x4e3 + {value: 0x0010, lo: 0x80, hi: 0xaf}, + {value: 0x0024, lo: 0xb0, hi: 0xb6}, + // Block 0xeb, offset 0x4e5 + {value: 0x0014, lo: 0x80, hi: 0x83}, + {value: 0x0010, lo: 0x90, hi: 0x99}, + {value: 0x0010, lo: 0xa3, hi: 0xb7}, + {value: 0x0010, lo: 0xbd, hi: 0xbf}, + // Block 0xec, offset 0x4e9 + {value: 0x0010, lo: 0x80, hi: 0x8f}, + // Block 0xed, offset 0x4ea + {value: 0x0010, lo: 0x80, hi: 0x84}, + {value: 0x0010, lo: 0x90, hi: 0xbe}, + // Block 0xee, offset 0x4ec + {value: 0x0014, lo: 0x8f, hi: 0x9f}, + // Block 0xef, offset 0x4ed + {value: 0x0014, lo: 0xa0, hi: 0xa1}, + // Block 0xf0, offset 0x4ee + {value: 0x0010, lo: 0x80, hi: 0xaa}, + {value: 0x0010, lo: 0xb0, hi: 0xbc}, + // Block 0xf1, offset 0x4f0 + {value: 0x0010, lo: 0x80, hi: 0x88}, + {value: 0x0010, lo: 0x90, hi: 0x99}, + {value: 0x0014, lo: 0x9d, hi: 0x9d}, + {value: 0x0034, lo: 0x9e, hi: 0x9e}, + {value: 0x0014, lo: 0xa0, hi: 0xa3}, + // Block 0xf2, offset 0x4f5 + {value: 0x0030, lo: 0xa5, hi: 0xa6}, + {value: 0x0034, lo: 0xa7, hi: 0xa9}, + {value: 0x0030, lo: 0xad, hi: 0xb2}, + {value: 0x0014, lo: 0xb3, hi: 0xba}, + {value: 0x0034, lo: 0xbb, hi: 0xbf}, + // Block 0xf3, offset 0x4fa + {value: 0x0034, lo: 0x80, hi: 0x82}, + {value: 0x0024, lo: 0x85, hi: 0x89}, + {value: 0x0034, lo: 0x8a, hi: 0x8b}, + {value: 0x0024, lo: 0xaa, hi: 0xad}, + // Block 0xf4, offset 0x4fe + {value: 0x0024, lo: 0x82, hi: 0x84}, + // Block 0xf5, offset 0x4ff + {value: 0x0013, lo: 0x80, hi: 0x99}, + {value: 0x0012, lo: 0x9a, hi: 0xb3}, + {value: 0x0013, lo: 0xb4, hi: 0xbf}, + // Block 0xf6, offset 0x502 + {value: 0x0013, lo: 0x80, hi: 0x8d}, + {value: 0x0012, lo: 0x8e, hi: 0x94}, + {value: 0x0012, lo: 0x96, hi: 0xa7}, + {value: 0x0013, lo: 0xa8, hi: 0xbf}, + // Block 0xf7, offset 0x506 + {value: 0x0013, lo: 0x80, hi: 0x81}, + {value: 0x0012, lo: 0x82, hi: 0x9b}, + {value: 0x0013, lo: 0x9c, hi: 0x9c}, + {value: 0x0013, lo: 0x9e, hi: 0x9f}, + {value: 0x0013, lo: 0xa2, hi: 0xa2}, + {value: 0x0013, lo: 0xa5, hi: 0xa6}, + {value: 0x0013, lo: 0xa9, hi: 0xac}, + {value: 0x0013, lo: 0xae, hi: 0xb5}, + {value: 0x0012, lo: 0xb6, hi: 0xb9}, + {value: 0x0012, lo: 0xbb, hi: 0xbb}, + {value: 0x0012, lo: 0xbd, hi: 0xbf}, + // Block 0xf8, offset 0x511 + {value: 0x0012, lo: 0x80, hi: 0x83}, + {value: 0x0012, lo: 0x85, hi: 0x8f}, + {value: 0x0013, lo: 0x90, hi: 0xa9}, + {value: 0x0012, lo: 0xaa, hi: 0xbf}, + // Block 0xf9, offset 0x515 + {value: 0x0012, lo: 0x80, hi: 0x83}, + {value: 0x0013, lo: 0x84, hi: 0x85}, + {value: 0x0013, lo: 0x87, hi: 0x8a}, + {value: 0x0013, lo: 0x8d, hi: 0x94}, + {value: 0x0013, lo: 0x96, hi: 0x9c}, + {value: 0x0012, lo: 0x9e, hi: 0xb7}, + {value: 0x0013, lo: 0xb8, hi: 0xb9}, + {value: 0x0013, lo: 0xbb, hi: 0xbe}, + // Block 0xfa, offset 0x51d + {value: 0x0013, lo: 0x80, hi: 0x84}, + {value: 0x0013, lo: 0x86, hi: 0x86}, + {value: 0x0013, lo: 0x8a, hi: 0x90}, + {value: 0x0012, lo: 0x92, hi: 0xab}, + {value: 0x0013, lo: 0xac, hi: 0xbf}, + // Block 0xfb, offset 0x522 + {value: 0x0013, lo: 0x80, hi: 0x85}, + {value: 0x0012, lo: 0x86, hi: 0x9f}, + {value: 0x0013, lo: 0xa0, hi: 0xb9}, + {value: 0x0012, lo: 0xba, hi: 0xbf}, + // Block 0xfc, offset 0x526 + {value: 0x0012, lo: 0x80, hi: 0x93}, + {value: 0x0013, lo: 0x94, hi: 0xad}, + {value: 0x0012, lo: 0xae, hi: 0xbf}, + // Block 0xfd, offset 0x529 + {value: 0x0012, lo: 0x80, hi: 0x87}, + {value: 0x0013, lo: 0x88, hi: 0xa1}, + {value: 0x0012, lo: 0xa2, hi: 0xbb}, + {value: 0x0013, lo: 0xbc, hi: 0xbf}, + // Block 0xfe, offset 0x52d + {value: 0x0013, lo: 0x80, hi: 0x95}, + {value: 0x0012, lo: 0x96, hi: 0xaf}, + {value: 0x0013, lo: 0xb0, hi: 0xbf}, + // Block 0xff, offset 0x530 + {value: 0x0013, lo: 0x80, hi: 0x89}, + {value: 0x0012, lo: 0x8a, hi: 0xa5}, + {value: 0x0013, lo: 0xa8, hi: 0xbf}, + // Block 0x100, offset 0x533 + {value: 0x0013, lo: 0x80, hi: 0x80}, + {value: 0x0012, lo: 0x82, hi: 0x9a}, + {value: 0x0012, lo: 0x9c, hi: 0xa1}, + {value: 0x0013, lo: 0xa2, hi: 0xba}, + {value: 0x0012, lo: 0xbc, hi: 0xbf}, + // Block 0x101, offset 0x538 + {value: 0x0012, lo: 0x80, hi: 0x94}, + {value: 0x0012, lo: 0x96, hi: 0x9b}, + {value: 0x0013, lo: 0x9c, hi: 0xb4}, + {value: 0x0012, lo: 0xb6, hi: 0xbf}, + // Block 0x102, offset 0x53c + {value: 0x0012, lo: 0x80, hi: 0x8e}, + {value: 0x0012, lo: 0x90, hi: 0x95}, + {value: 0x0013, lo: 0x96, hi: 0xae}, + {value: 0x0012, lo: 0xb0, hi: 0xbf}, + // Block 0x103, offset 0x540 + {value: 0x0012, lo: 0x80, hi: 0x88}, + {value: 0x0012, lo: 0x8a, hi: 0x8f}, + {value: 0x0013, lo: 0x90, hi: 0xa8}, + {value: 0x0012, lo: 0xaa, hi: 0xbf}, + // Block 0x104, offset 0x544 + {value: 0x0012, lo: 0x80, hi: 0x82}, + {value: 0x0012, lo: 0x84, hi: 0x89}, + {value: 0x0017, lo: 0x8a, hi: 0x8b}, + {value: 0x0010, lo: 0x8e, hi: 0xbf}, + // Block 0x105, offset 0x548 + {value: 0x0014, lo: 0x80, hi: 0xb6}, + {value: 0x0014, lo: 0xbb, hi: 0xbf}, + // Block 0x106, offset 0x54a + {value: 0x0014, lo: 0x80, hi: 0xac}, + {value: 0x0014, lo: 0xb5, hi: 0xb5}, + // Block 0x107, offset 0x54c + {value: 0x0014, lo: 0x84, hi: 0x84}, + {value: 0x0014, lo: 0x9b, hi: 0x9f}, + {value: 0x0014, lo: 0xa1, hi: 0xaf}, + // Block 0x108, offset 0x54f + {value: 0x0024, lo: 0x80, hi: 0x86}, + {value: 0x0024, lo: 0x88, hi: 0x98}, + {value: 0x0024, lo: 0x9b, hi: 0xa1}, + {value: 0x0024, lo: 0xa3, hi: 0xa4}, + {value: 0x0024, lo: 0xa6, hi: 0xaa}, + // Block 0x109, offset 0x554 + {value: 0x0010, lo: 0x80, hi: 0x84}, + {value: 0x0034, lo: 0x90, hi: 0x96}, + // Block 0x10a, offset 0x556 + {value: 0xb552, lo: 0x80, hi: 0x81}, + {value: 0xb852, lo: 0x82, hi: 0x83}, + {value: 0x0024, lo: 0x84, hi: 0x89}, + {value: 0x0034, lo: 0x8a, hi: 0x8a}, + {value: 0x0010, lo: 0x90, hi: 0x99}, + // Block 0x10b, offset 0x55b + {value: 0x0010, lo: 0x80, hi: 0x83}, + {value: 0x0010, lo: 0x85, hi: 0x9f}, + {value: 0x0010, lo: 0xa1, hi: 0xa2}, + {value: 0x0010, lo: 0xa4, hi: 0xa4}, + {value: 0x0010, lo: 0xa7, hi: 0xa7}, + {value: 0x0010, lo: 0xa9, hi: 0xb2}, + {value: 0x0010, lo: 0xb4, hi: 0xb7}, + {value: 0x0010, lo: 0xb9, hi: 0xb9}, + {value: 0x0010, lo: 0xbb, hi: 0xbb}, + // Block 0x10c, offset 0x564 + {value: 0x0010, lo: 0x80, hi: 0x89}, + {value: 0x0010, lo: 0x8b, hi: 0x9b}, + {value: 0x0010, lo: 0xa1, hi: 0xa3}, + {value: 0x0010, lo: 0xa5, hi: 0xa9}, + {value: 0x0010, lo: 0xab, hi: 0xbb}, + // Block 0x10d, offset 0x569 + {value: 0x0013, lo: 0xb0, hi: 0xbf}, + // Block 0x10e, offset 0x56a + {value: 0x0013, lo: 0x80, hi: 0x89}, + {value: 0x0013, lo: 0x90, hi: 0xa9}, + {value: 0x0013, lo: 0xb0, hi: 0xbf}, + // Block 0x10f, offset 0x56d + {value: 0x0013, lo: 0x80, hi: 0x89}, + // Block 0x110, offset 0x56e + {value: 0x0004, lo: 0xbb, hi: 0xbf}, + // Block 0x111, offset 0x56f + {value: 0x0014, lo: 0x81, hi: 0x81}, + {value: 0x0014, lo: 0xa0, hi: 0xbf}, + // Block 0x112, offset 0x571 + {value: 0x0014, lo: 0x80, hi: 0xbf}, + // Block 0x113, offset 0x572 + {value: 0x0014, lo: 0x80, hi: 0xaf}, +} + +// Total table size 13961 bytes (13KiB); checksum: 4CC48DA3 diff --git a/vendor/golang.org/x/text/cases/tables9.0.0.go b/vendor/golang.org/x/text/cases/tables9.0.0.go new file mode 100644 index 00000000000..b8d87c603a4 --- /dev/null +++ b/vendor/golang.org/x/text/cases/tables9.0.0.go @@ -0,0 +1,2213 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +// +build !go1.10 + +package cases + +// UnicodeVersion is the Unicode version from which the tables in this package are derived. +const UnicodeVersion = "9.0.0" + +var xorData string = "" + // Size: 185 bytes + "\x00\x06\x07\x00\x01?\x00\x0f\x03\x00\x0f\x12\x00\x0f\x1f\x00\x0f\x1d" + + "\x00\x01\x13\x00\x0f\x16\x00\x0f\x0b\x00\x0f3\x00\x0f7\x00\x01#\x00\x0f?" + + "\x00\x0e'\x00\x0f/\x00\x0e>\x00\x0f*\x00\x0c&\x00\x0c*\x00\x0c;\x00\x0c9" + + "\x00\x0c%\x00\x01\x08\x00\x03\x0d\x00\x03\x09\x00\x02\x06\x00\x02\x02" + + "\x00\x02\x0c\x00\x01\x00\x00\x01\x03\x00\x01\x01\x00\x01 \x00\x01\x0c" + + "\x00\x01\x10\x00\x03\x10\x00\x036 \x00\x037 \x00\x0b#\x10\x00\x0b 0\x00" + + "\x0b!\x10\x00\x0b!0\x00\x0b(\x04\x00\x03\x04\x1e\x00\x03\x0a\x00\x02:" + + "\x00\x02>\x00\x02,\x00\x02\x00\x00\x02\x10\x00\x01<\x00\x01&\x00\x01*" + + "\x00\x01.\x00\x010\x003 \x00\x01\x18\x00\x01(\x00\x01\x1e\x00\x01\x22" + +var exceptions string = "" + // Size: 1852 bytes + "\x00\x12\x10μΜ\x12\x12ssSSSs\x13\x18i̇i̇\x10\x08I\x13\x18ʼnʼN\x11\x08sS" + + "\x12\x12dždžDž\x12\x12dždžDŽ\x10\x12DŽDž\x12\x12ljljLj\x12\x12ljljLJ\x10\x12LJLj\x12\x12" + + "njnjNj\x12\x12njnjNJ\x10\x12NJNj\x13\x18ǰJ̌\x12\x12dzdzDz\x12\x12dzdzDZ\x10\x12DZDz" + + "\x13\x18ⱥⱥ\x13\x18ⱦⱦ\x10\x18Ȿ\x10\x18Ɀ\x10\x18Ɐ\x10\x18Ɑ\x10\x18Ɒ\x10" + + "\x18Ɜ\x10\x18Ɡ\x10\x18Ɥ\x10\x18Ɦ\x10\x18Ɪ\x10\x18Ɫ\x10\x18Ɬ\x10\x18Ɱ\x10" + + "\x18Ɽ\x10\x18Ʇ\x10\x18Ʝ\x10\x18Ʞ2\x10ιΙ\x160ΐΪ́\x160ΰΫ́\x12\x10σΣ" + + "\x12\x10βΒ\x12\x10θΘ\x12\x10φΦ\x12\x10πΠ\x12\x10κΚ\x12\x10ρΡ\x12\x10εΕ" + + "\x14$եւԵՒԵւ\x12\x10вВ\x12\x10дД\x12\x10оО\x12\x10сС\x12\x10тТ\x12\x10тТ" + + "\x12\x10ъЪ\x12\x10ѣѢ\x13\x18ꙋꙊ\x13\x18ẖH̱\x13\x18ẗT̈\x13\x18ẘW̊\x13" + + "\x18ẙY̊\x13\x18aʾAʾ\x13\x18ṡṠ\x12\x10ssß\x14 ὐΥ̓\x160ὒΥ̓̀\x160ὔΥ̓́" + + "\x160ὖΥ̓͂\x15+ἀιἈΙᾈ\x15+ἁιἉΙᾉ\x15+ἂιἊΙᾊ\x15+ἃιἋΙᾋ\x15+ἄιἌΙᾌ\x15+ἅιἍΙᾍ" + + "\x15+ἆιἎΙᾎ\x15+ἇιἏΙᾏ\x15\x1dἀιᾀἈΙ\x15\x1dἁιᾁἉΙ\x15\x1dἂιᾂἊΙ\x15\x1dἃιᾃἋΙ" + + "\x15\x1dἄιᾄἌΙ\x15\x1dἅιᾅἍΙ\x15\x1dἆιᾆἎΙ\x15\x1dἇιᾇἏΙ\x15+ἠιἨΙᾘ\x15+ἡιἩΙᾙ" + + "\x15+ἢιἪΙᾚ\x15+ἣιἫΙᾛ\x15+ἤιἬΙᾜ\x15+ἥιἭΙᾝ\x15+ἦιἮΙᾞ\x15+ἧιἯΙᾟ\x15\x1dἠιᾐἨ" + + "Ι\x15\x1dἡιᾑἩΙ\x15\x1dἢιᾒἪΙ\x15\x1dἣιᾓἫΙ\x15\x1dἤιᾔἬΙ\x15\x1dἥιᾕἭΙ\x15" + + "\x1dἦιᾖἮΙ\x15\x1dἧιᾗἯΙ\x15+ὠιὨΙᾨ\x15+ὡιὩΙᾩ\x15+ὢιὪΙᾪ\x15+ὣιὫΙᾫ\x15+ὤιὬΙᾬ" + + "\x15+ὥιὭΙᾭ\x15+ὦιὮΙᾮ\x15+ὧιὯΙᾯ\x15\x1dὠιᾠὨΙ\x15\x1dὡιᾡὩΙ\x15\x1dὢιᾢὪΙ" + + "\x15\x1dὣιᾣὫΙ\x15\x1dὤιᾤὬΙ\x15\x1dὥιᾥὭΙ\x15\x1dὦιᾦὮΙ\x15\x1dὧιᾧὯΙ\x15-ὰι" + + "ᾺΙᾺͅ\x14#αιΑΙᾼ\x14$άιΆΙΆͅ\x14 ᾶΑ͂\x166ᾶιΑ͂Ιᾼ͂\x14\x1cαιᾳΑΙ\x12\x10ι" + + "Ι\x15-ὴιῊΙῊͅ\x14#ηιΗΙῌ\x14$ήιΉΙΉͅ\x14 ῆΗ͂\x166ῆιΗ͂Ιῌ͂\x14\x1cηιῃΗΙ" + + "\x160ῒΪ̀\x160ΐΪ́\x14 ῖΙ͂\x160ῗΪ͂\x160ῢΫ̀\x160ΰΫ́\x14 ῤΡ" + + "̓\x14 ῦΥ͂\x160ῧΫ͂\x15-ὼιῺΙῺͅ\x14#ωιΩΙῼ\x14$ώιΏΙΏͅ\x14 ῶΩ͂\x166ῶιΩ" + + "͂Ιῼ͂\x14\x1cωιῳΩΙ\x12\x10ωω\x11\x08kk\x12\x10åå\x12\x10ɫɫ\x12\x10ɽɽ" + + "\x10\x10Ⱥ\x10\x10Ⱦ\x12\x10ɑɑ\x12\x10ɱɱ\x12\x10ɐɐ\x12\x10ɒɒ\x12\x10ȿȿ\x12" + + "\x10ɀɀ\x12\x10ɥɥ\x12\x10ɦɦ\x12\x10ɜɜ\x12\x10ɡɡ\x12\x10ɬɬ\x12\x10ɪɪ\x12" + + "\x10ʞʞ\x12\x10ʇʇ\x12\x10ʝʝ\x12\x12ffFFFf\x12\x12fiFIFi\x12\x12flFLFl\x13" + + "\x1bffiFFIFfi\x13\x1bfflFFLFfl\x12\x12stSTSt\x12\x12stSTSt\x14$մնՄՆՄն" + + "\x14$մեՄԵՄե\x14$միՄԻՄի\x14$վնՎՆՎն\x14$մխՄԽՄխ" + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *caseTrie) lookup(s []byte) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return caseValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := caseIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := caseIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = caseIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := caseIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = caseIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = caseIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *caseTrie) lookupUnsafe(s []byte) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return caseValues[c0] + } + i := caseIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = caseIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = caseIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// lookupString returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *caseTrie) lookupString(s string) (v uint16, sz int) { + c0 := s[0] + switch { + case c0 < 0x80: // is ASCII + return caseValues[c0], 1 + case c0 < 0xC2: + return 0, 1 // Illegal UTF-8: not a starter, not ASCII. + case c0 < 0xE0: // 2-byte UTF-8 + if len(s) < 2 { + return 0, 0 + } + i := caseIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c1), 2 + case c0 < 0xF0: // 3-byte UTF-8 + if len(s) < 3 { + return 0, 0 + } + i := caseIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = caseIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c2), 3 + case c0 < 0xF8: // 4-byte UTF-8 + if len(s) < 4 { + return 0, 0 + } + i := caseIndex[c0] + c1 := s[1] + if c1 < 0x80 || 0xC0 <= c1 { + return 0, 1 // Illegal UTF-8: not a continuation byte. + } + o := uint32(i)<<6 + uint32(c1) + i = caseIndex[o] + c2 := s[2] + if c2 < 0x80 || 0xC0 <= c2 { + return 0, 2 // Illegal UTF-8: not a continuation byte. + } + o = uint32(i)<<6 + uint32(c2) + i = caseIndex[o] + c3 := s[3] + if c3 < 0x80 || 0xC0 <= c3 { + return 0, 3 // Illegal UTF-8: not a continuation byte. + } + return t.lookupValue(uint32(i), c3), 4 + } + // Illegal rune + return 0, 1 +} + +// lookupStringUnsafe returns the trie value for the first UTF-8 encoding in s. +// s must start with a full and valid UTF-8 encoded rune. +func (t *caseTrie) lookupStringUnsafe(s string) uint16 { + c0 := s[0] + if c0 < 0x80 { // is ASCII + return caseValues[c0] + } + i := caseIndex[c0] + if c0 < 0xE0 { // 2-byte UTF-8 + return t.lookupValue(uint32(i), s[1]) + } + i = caseIndex[uint32(i)<<6+uint32(s[1])] + if c0 < 0xF0 { // 3-byte UTF-8 + return t.lookupValue(uint32(i), s[2]) + } + i = caseIndex[uint32(i)<<6+uint32(s[2])] + if c0 < 0xF8 { // 4-byte UTF-8 + return t.lookupValue(uint32(i), s[3]) + } + return 0 +} + +// caseTrie. Total size: 11742 bytes (11.47 KiB). Checksum: 147a11466b427436. +type caseTrie struct{} + +func newCaseTrie(i int) *caseTrie { + return &caseTrie{} +} + +// lookupValue determines the type of block n and looks up the value for b. +func (t *caseTrie) lookupValue(n uint32, b byte) uint16 { + switch { + case n < 18: + return uint16(caseValues[n<<6+uint32(b)]) + default: + n -= 18 + return uint16(sparse.lookup(n, b)) + } +} + +// caseValues: 20 blocks, 1280 entries, 2560 bytes +// The third block is the zero block. +var caseValues = [1280]uint16{ + // Block 0x0, offset 0x0 + 0x27: 0x0054, + 0x2e: 0x0054, + 0x30: 0x0010, 0x31: 0x0010, 0x32: 0x0010, 0x33: 0x0010, 0x34: 0x0010, 0x35: 0x0010, + 0x36: 0x0010, 0x37: 0x0010, 0x38: 0x0010, 0x39: 0x0010, 0x3a: 0x0054, + // Block 0x1, offset 0x40 + 0x41: 0x2013, 0x42: 0x2013, 0x43: 0x2013, 0x44: 0x2013, 0x45: 0x2013, + 0x46: 0x2013, 0x47: 0x2013, 0x48: 0x2013, 0x49: 0x2013, 0x4a: 0x2013, 0x4b: 0x2013, + 0x4c: 0x2013, 0x4d: 0x2013, 0x4e: 0x2013, 0x4f: 0x2013, 0x50: 0x2013, 0x51: 0x2013, + 0x52: 0x2013, 0x53: 0x2013, 0x54: 0x2013, 0x55: 0x2013, 0x56: 0x2013, 0x57: 0x2013, + 0x58: 0x2013, 0x59: 0x2013, 0x5a: 0x2013, + 0x5e: 0x0004, 0x5f: 0x0010, 0x60: 0x0004, 0x61: 0x2012, 0x62: 0x2012, 0x63: 0x2012, + 0x64: 0x2012, 0x65: 0x2012, 0x66: 0x2012, 0x67: 0x2012, 0x68: 0x2012, 0x69: 0x2012, + 0x6a: 0x2012, 0x6b: 0x2012, 0x6c: 0x2012, 0x6d: 0x2012, 0x6e: 0x2012, 0x6f: 0x2012, + 0x70: 0x2012, 0x71: 0x2012, 0x72: 0x2012, 0x73: 0x2012, 0x74: 0x2012, 0x75: 0x2012, + 0x76: 0x2012, 0x77: 0x2012, 0x78: 0x2012, 0x79: 0x2012, 0x7a: 0x2012, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc0: 0x0852, 0xc1: 0x0b53, 0xc2: 0x0113, 0xc3: 0x0112, 0xc4: 0x0113, 0xc5: 0x0112, + 0xc6: 0x0b53, 0xc7: 0x0f13, 0xc8: 0x0f12, 0xc9: 0x0e53, 0xca: 0x1153, 0xcb: 0x0713, + 0xcc: 0x0712, 0xcd: 0x0012, 0xce: 0x1453, 0xcf: 0x1753, 0xd0: 0x1a53, 0xd1: 0x0313, + 0xd2: 0x0312, 0xd3: 0x1d53, 0xd4: 0x2053, 0xd5: 0x2352, 0xd6: 0x2653, 0xd7: 0x2653, + 0xd8: 0x0113, 0xd9: 0x0112, 0xda: 0x2952, 0xdb: 0x0012, 0xdc: 0x1d53, 0xdd: 0x2c53, + 0xde: 0x2f52, 0xdf: 0x3253, 0xe0: 0x0113, 0xe1: 0x0112, 0xe2: 0x0113, 0xe3: 0x0112, + 0xe4: 0x0113, 0xe5: 0x0112, 0xe6: 0x3553, 0xe7: 0x0f13, 0xe8: 0x0f12, 0xe9: 0x3853, + 0xea: 0x0012, 0xeb: 0x0012, 0xec: 0x0113, 0xed: 0x0112, 0xee: 0x3553, 0xef: 0x1f13, + 0xf0: 0x1f12, 0xf1: 0x3b53, 0xf2: 0x3e53, 0xf3: 0x0713, 0xf4: 0x0712, 0xf5: 0x0313, + 0xf6: 0x0312, 0xf7: 0x4153, 0xf8: 0x0113, 0xf9: 0x0112, 0xfa: 0x0012, 0xfb: 0x0010, + 0xfc: 0x0113, 0xfd: 0x0112, 0xfe: 0x0012, 0xff: 0x4452, + // Block 0x4, offset 0x100 + 0x100: 0x0010, 0x101: 0x0010, 0x102: 0x0010, 0x103: 0x0010, 0x104: 0x04cb, 0x105: 0x05c9, + 0x106: 0x06ca, 0x107: 0x078b, 0x108: 0x0889, 0x109: 0x098a, 0x10a: 0x0a4b, 0x10b: 0x0b49, + 0x10c: 0x0c4a, 0x10d: 0x0313, 0x10e: 0x0312, 0x10f: 0x1f13, 0x110: 0x1f12, 0x111: 0x0313, + 0x112: 0x0312, 0x113: 0x0713, 0x114: 0x0712, 0x115: 0x0313, 0x116: 0x0312, 0x117: 0x0f13, + 0x118: 0x0f12, 0x119: 0x0313, 0x11a: 0x0312, 0x11b: 0x0713, 0x11c: 0x0712, 0x11d: 0x1452, + 0x11e: 0x0113, 0x11f: 0x0112, 0x120: 0x0113, 0x121: 0x0112, 0x122: 0x0113, 0x123: 0x0112, + 0x124: 0x0113, 0x125: 0x0112, 0x126: 0x0113, 0x127: 0x0112, 0x128: 0x0113, 0x129: 0x0112, + 0x12a: 0x0113, 0x12b: 0x0112, 0x12c: 0x0113, 0x12d: 0x0112, 0x12e: 0x0113, 0x12f: 0x0112, + 0x130: 0x0d0a, 0x131: 0x0e0b, 0x132: 0x0f09, 0x133: 0x100a, 0x134: 0x0113, 0x135: 0x0112, + 0x136: 0x2353, 0x137: 0x4453, 0x138: 0x0113, 0x139: 0x0112, 0x13a: 0x0113, 0x13b: 0x0112, + 0x13c: 0x0113, 0x13d: 0x0112, 0x13e: 0x0113, 0x13f: 0x0112, + // Block 0x5, offset 0x140 + 0x140: 0x136a, 0x141: 0x0313, 0x142: 0x0312, 0x143: 0x0853, 0x144: 0x4753, 0x145: 0x4a53, + 0x146: 0x0113, 0x147: 0x0112, 0x148: 0x0113, 0x149: 0x0112, 0x14a: 0x0113, 0x14b: 0x0112, + 0x14c: 0x0113, 0x14d: 0x0112, 0x14e: 0x0113, 0x14f: 0x0112, 0x150: 0x140a, 0x151: 0x14aa, + 0x152: 0x154a, 0x153: 0x0b52, 0x154: 0x0b52, 0x155: 0x0012, 0x156: 0x0e52, 0x157: 0x1152, + 0x158: 0x0012, 0x159: 0x1752, 0x15a: 0x0012, 0x15b: 0x1a52, 0x15c: 0x15ea, 0x15d: 0x0012, + 0x15e: 0x0012, 0x15f: 0x0012, 0x160: 0x1d52, 0x161: 0x168a, 0x162: 0x0012, 0x163: 0x2052, + 0x164: 0x0012, 0x165: 0x172a, 0x166: 0x17ca, 0x167: 0x0012, 0x168: 0x2652, 0x169: 0x2652, + 0x16a: 0x186a, 0x16b: 0x190a, 0x16c: 0x19aa, 0x16d: 0x0012, 0x16e: 0x0012, 0x16f: 0x1d52, + 0x170: 0x0012, 0x171: 0x1a4a, 0x172: 0x2c52, 0x173: 0x0012, 0x174: 0x0012, 0x175: 0x3252, + 0x176: 0x0012, 0x177: 0x0012, 0x178: 0x0012, 0x179: 0x0012, 0x17a: 0x0012, 0x17b: 0x0012, + 0x17c: 0x0012, 0x17d: 0x1aea, 0x17e: 0x0012, 0x17f: 0x0012, + // Block 0x6, offset 0x180 + 0x180: 0x3552, 0x181: 0x0012, 0x182: 0x0012, 0x183: 0x3852, 0x184: 0x0012, 0x185: 0x0012, + 0x186: 0x0012, 0x187: 0x1b8a, 0x188: 0x3552, 0x189: 0x4752, 0x18a: 0x3b52, 0x18b: 0x3e52, + 0x18c: 0x4a52, 0x18d: 0x0012, 0x18e: 0x0012, 0x18f: 0x0012, 0x190: 0x0012, 0x191: 0x0012, + 0x192: 0x4152, 0x193: 0x0012, 0x194: 0x0010, 0x195: 0x0012, 0x196: 0x0012, 0x197: 0x0012, + 0x198: 0x0012, 0x199: 0x0012, 0x19a: 0x0012, 0x19b: 0x0012, 0x19c: 0x0012, 0x19d: 0x1c2a, + 0x19e: 0x1cca, 0x19f: 0x0012, 0x1a0: 0x0012, 0x1a1: 0x0012, 0x1a2: 0x0012, 0x1a3: 0x0012, + 0x1a4: 0x0012, 0x1a5: 0x0012, 0x1a6: 0x0012, 0x1a7: 0x0012, 0x1a8: 0x0012, 0x1a9: 0x0012, + 0x1aa: 0x0012, 0x1ab: 0x0012, 0x1ac: 0x0012, 0x1ad: 0x0012, 0x1ae: 0x0012, 0x1af: 0x0012, + 0x1b0: 0x0015, 0x1b1: 0x0015, 0x1b2: 0x0015, 0x1b3: 0x0015, 0x1b4: 0x0015, 0x1b5: 0x0015, + 0x1b6: 0x0015, 0x1b7: 0x0015, 0x1b8: 0x0015, 0x1b9: 0x0014, 0x1ba: 0x0014, 0x1bb: 0x0014, + 0x1bc: 0x0014, 0x1bd: 0x0014, 0x1be: 0x0014, 0x1bf: 0x0014, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x0024, 0x1c1: 0x0024, 0x1c2: 0x0024, 0x1c3: 0x0024, 0x1c4: 0x0024, 0x1c5: 0x1d6d, + 0x1c6: 0x0024, 0x1c7: 0x0034, 0x1c8: 0x0034, 0x1c9: 0x0034, 0x1ca: 0x0024, 0x1cb: 0x0024, + 0x1cc: 0x0024, 0x1cd: 0x0034, 0x1ce: 0x0034, 0x1cf: 0x0014, 0x1d0: 0x0024, 0x1d1: 0x0024, + 0x1d2: 0x0024, 0x1d3: 0x0034, 0x1d4: 0x0034, 0x1d5: 0x0034, 0x1d6: 0x0034, 0x1d7: 0x0024, + 0x1d8: 0x0034, 0x1d9: 0x0034, 0x1da: 0x0034, 0x1db: 0x0024, 0x1dc: 0x0034, 0x1dd: 0x0034, + 0x1de: 0x0034, 0x1df: 0x0034, 0x1e0: 0x0034, 0x1e1: 0x0034, 0x1e2: 0x0034, 0x1e3: 0x0024, + 0x1e4: 0x0024, 0x1e5: 0x0024, 0x1e6: 0x0024, 0x1e7: 0x0024, 0x1e8: 0x0024, 0x1e9: 0x0024, + 0x1ea: 0x0024, 0x1eb: 0x0024, 0x1ec: 0x0024, 0x1ed: 0x0024, 0x1ee: 0x0024, 0x1ef: 0x0024, + 0x1f0: 0x0113, 0x1f1: 0x0112, 0x1f2: 0x0113, 0x1f3: 0x0112, 0x1f4: 0x0014, 0x1f5: 0x0004, + 0x1f6: 0x0113, 0x1f7: 0x0112, 0x1fa: 0x0015, 0x1fb: 0x4d52, + 0x1fc: 0x5052, 0x1fd: 0x5052, 0x1ff: 0x5353, + // Block 0x8, offset 0x200 + 0x204: 0x0004, 0x205: 0x0004, + 0x206: 0x2a13, 0x207: 0x0054, 0x208: 0x2513, 0x209: 0x2713, 0x20a: 0x2513, + 0x20c: 0x5653, 0x20e: 0x5953, 0x20f: 0x5c53, 0x210: 0x1e2a, 0x211: 0x2013, + 0x212: 0x2013, 0x213: 0x2013, 0x214: 0x2013, 0x215: 0x2013, 0x216: 0x2013, 0x217: 0x2013, + 0x218: 0x2013, 0x219: 0x2013, 0x21a: 0x2013, 0x21b: 0x2013, 0x21c: 0x2013, 0x21d: 0x2013, + 0x21e: 0x2013, 0x21f: 0x2013, 0x220: 0x5f53, 0x221: 0x5f53, 0x223: 0x5f53, + 0x224: 0x5f53, 0x225: 0x5f53, 0x226: 0x5f53, 0x227: 0x5f53, 0x228: 0x5f53, 0x229: 0x5f53, + 0x22a: 0x5f53, 0x22b: 0x5f53, 0x22c: 0x2a12, 0x22d: 0x2512, 0x22e: 0x2712, 0x22f: 0x2512, + 0x230: 0x1fea, 0x231: 0x2012, 0x232: 0x2012, 0x233: 0x2012, 0x234: 0x2012, 0x235: 0x2012, + 0x236: 0x2012, 0x237: 0x2012, 0x238: 0x2012, 0x239: 0x2012, 0x23a: 0x2012, 0x23b: 0x2012, + 0x23c: 0x2012, 0x23d: 0x2012, 0x23e: 0x2012, 0x23f: 0x2012, + // Block 0x9, offset 0x240 + 0x240: 0x5f52, 0x241: 0x5f52, 0x242: 0x21aa, 0x243: 0x5f52, 0x244: 0x5f52, 0x245: 0x5f52, + 0x246: 0x5f52, 0x247: 0x5f52, 0x248: 0x5f52, 0x249: 0x5f52, 0x24a: 0x5f52, 0x24b: 0x5f52, + 0x24c: 0x5652, 0x24d: 0x5952, 0x24e: 0x5c52, 0x24f: 0x1813, 0x250: 0x226a, 0x251: 0x232a, + 0x252: 0x0013, 0x253: 0x0013, 0x254: 0x0013, 0x255: 0x23ea, 0x256: 0x24aa, 0x257: 0x1812, + 0x258: 0x0113, 0x259: 0x0112, 0x25a: 0x0113, 0x25b: 0x0112, 0x25c: 0x0113, 0x25d: 0x0112, + 0x25e: 0x0113, 0x25f: 0x0112, 0x260: 0x0113, 0x261: 0x0112, 0x262: 0x0113, 0x263: 0x0112, + 0x264: 0x0113, 0x265: 0x0112, 0x266: 0x0113, 0x267: 0x0112, 0x268: 0x0113, 0x269: 0x0112, + 0x26a: 0x0113, 0x26b: 0x0112, 0x26c: 0x0113, 0x26d: 0x0112, 0x26e: 0x0113, 0x26f: 0x0112, + 0x270: 0x256a, 0x271: 0x262a, 0x272: 0x0b12, 0x273: 0x5352, 0x274: 0x6253, 0x275: 0x26ea, + 0x277: 0x0f13, 0x278: 0x0f12, 0x279: 0x0b13, 0x27a: 0x0113, 0x27b: 0x0112, + 0x27c: 0x0012, 0x27d: 0x4d53, 0x27e: 0x5053, 0x27f: 0x5053, + // Block 0xa, offset 0x280 + 0x280: 0x0812, 0x281: 0x0812, 0x282: 0x0812, 0x283: 0x0812, 0x284: 0x0812, 0x285: 0x0812, + 0x288: 0x0813, 0x289: 0x0813, 0x28a: 0x0813, 0x28b: 0x0813, + 0x28c: 0x0813, 0x28d: 0x0813, 0x290: 0x372a, 0x291: 0x0812, + 0x292: 0x386a, 0x293: 0x0812, 0x294: 0x3a2a, 0x295: 0x0812, 0x296: 0x3bea, 0x297: 0x0812, + 0x299: 0x0813, 0x29b: 0x0813, 0x29d: 0x0813, + 0x29f: 0x0813, 0x2a0: 0x0812, 0x2a1: 0x0812, 0x2a2: 0x0812, 0x2a3: 0x0812, + 0x2a4: 0x0812, 0x2a5: 0x0812, 0x2a6: 0x0812, 0x2a7: 0x0812, 0x2a8: 0x0813, 0x2a9: 0x0813, + 0x2aa: 0x0813, 0x2ab: 0x0813, 0x2ac: 0x0813, 0x2ad: 0x0813, 0x2ae: 0x0813, 0x2af: 0x0813, + 0x2b0: 0x8b52, 0x2b1: 0x8b52, 0x2b2: 0x8e52, 0x2b3: 0x8e52, 0x2b4: 0x9152, 0x2b5: 0x9152, + 0x2b6: 0x9452, 0x2b7: 0x9452, 0x2b8: 0x9752, 0x2b9: 0x9752, 0x2ba: 0x9a52, 0x2bb: 0x9a52, + 0x2bc: 0x4d52, 0x2bd: 0x4d52, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x3daa, 0x2c1: 0x3f8a, 0x2c2: 0x416a, 0x2c3: 0x434a, 0x2c4: 0x452a, 0x2c5: 0x470a, + 0x2c6: 0x48ea, 0x2c7: 0x4aca, 0x2c8: 0x4ca9, 0x2c9: 0x4e89, 0x2ca: 0x5069, 0x2cb: 0x5249, + 0x2cc: 0x5429, 0x2cd: 0x5609, 0x2ce: 0x57e9, 0x2cf: 0x59c9, 0x2d0: 0x5baa, 0x2d1: 0x5d8a, + 0x2d2: 0x5f6a, 0x2d3: 0x614a, 0x2d4: 0x632a, 0x2d5: 0x650a, 0x2d6: 0x66ea, 0x2d7: 0x68ca, + 0x2d8: 0x6aa9, 0x2d9: 0x6c89, 0x2da: 0x6e69, 0x2db: 0x7049, 0x2dc: 0x7229, 0x2dd: 0x7409, + 0x2de: 0x75e9, 0x2df: 0x77c9, 0x2e0: 0x79aa, 0x2e1: 0x7b8a, 0x2e2: 0x7d6a, 0x2e3: 0x7f4a, + 0x2e4: 0x812a, 0x2e5: 0x830a, 0x2e6: 0x84ea, 0x2e7: 0x86ca, 0x2e8: 0x88a9, 0x2e9: 0x8a89, + 0x2ea: 0x8c69, 0x2eb: 0x8e49, 0x2ec: 0x9029, 0x2ed: 0x9209, 0x2ee: 0x93e9, 0x2ef: 0x95c9, + 0x2f0: 0x0812, 0x2f1: 0x0812, 0x2f2: 0x97aa, 0x2f3: 0x99ca, 0x2f4: 0x9b6a, + 0x2f6: 0x9d2a, 0x2f7: 0x9e6a, 0x2f8: 0x0813, 0x2f9: 0x0813, 0x2fa: 0x8b53, 0x2fb: 0x8b53, + 0x2fc: 0xa0e9, 0x2fd: 0x0004, 0x2fe: 0xa28a, 0x2ff: 0x0004, + // Block 0xc, offset 0x300 + 0x300: 0x0004, 0x301: 0x0004, 0x302: 0xa34a, 0x303: 0xa56a, 0x304: 0xa70a, + 0x306: 0xa8ca, 0x307: 0xaa0a, 0x308: 0x8e53, 0x309: 0x8e53, 0x30a: 0x9153, 0x30b: 0x9153, + 0x30c: 0xac89, 0x30d: 0x0004, 0x30e: 0x0004, 0x30f: 0x0004, 0x310: 0x0812, 0x311: 0x0812, + 0x312: 0xae2a, 0x313: 0xafea, 0x316: 0xb1aa, 0x317: 0xb2ea, + 0x318: 0x0813, 0x319: 0x0813, 0x31a: 0x9453, 0x31b: 0x9453, 0x31d: 0x0004, + 0x31e: 0x0004, 0x31f: 0x0004, 0x320: 0x0812, 0x321: 0x0812, 0x322: 0xb4aa, 0x323: 0xb66a, + 0x324: 0xb82a, 0x325: 0x0912, 0x326: 0xb96a, 0x327: 0xbaaa, 0x328: 0x0813, 0x329: 0x0813, + 0x32a: 0x9a53, 0x32b: 0x9a53, 0x32c: 0x0913, 0x32d: 0x0004, 0x32e: 0x0004, 0x32f: 0x0004, + 0x332: 0xbc6a, 0x333: 0xbe8a, 0x334: 0xc02a, + 0x336: 0xc1ea, 0x337: 0xc32a, 0x338: 0x9753, 0x339: 0x9753, 0x33a: 0x4d53, 0x33b: 0x4d53, + 0x33c: 0xc5a9, 0x33d: 0x0004, 0x33e: 0x0004, + // Block 0xd, offset 0x340 + 0x342: 0x0013, + 0x347: 0x0013, 0x34a: 0x0012, 0x34b: 0x0013, + 0x34c: 0x0013, 0x34d: 0x0013, 0x34e: 0x0012, 0x34f: 0x0012, 0x350: 0x0013, 0x351: 0x0013, + 0x352: 0x0013, 0x353: 0x0012, 0x355: 0x0013, + 0x359: 0x0013, 0x35a: 0x0013, 0x35b: 0x0013, 0x35c: 0x0013, 0x35d: 0x0013, + 0x364: 0x0013, 0x366: 0xc74b, 0x368: 0x0013, + 0x36a: 0xc80b, 0x36b: 0xc88b, 0x36c: 0x0013, 0x36d: 0x0013, 0x36f: 0x0012, + 0x370: 0x0013, 0x371: 0x0013, 0x372: 0x9d53, 0x373: 0x0013, 0x374: 0x0012, 0x375: 0x0010, + 0x376: 0x0010, 0x377: 0x0010, 0x378: 0x0010, 0x379: 0x0012, + 0x37c: 0x0012, 0x37d: 0x0012, 0x37e: 0x0013, 0x37f: 0x0013, + // Block 0xe, offset 0x380 + 0x380: 0x1a13, 0x381: 0x1a13, 0x382: 0x1e13, 0x383: 0x1e13, 0x384: 0x1a13, 0x385: 0x1a13, + 0x386: 0x2613, 0x387: 0x2613, 0x388: 0x2a13, 0x389: 0x2a13, 0x38a: 0x2e13, 0x38b: 0x2e13, + 0x38c: 0x2a13, 0x38d: 0x2a13, 0x38e: 0x2613, 0x38f: 0x2613, 0x390: 0xa052, 0x391: 0xa052, + 0x392: 0xa352, 0x393: 0xa352, 0x394: 0xa652, 0x395: 0xa652, 0x396: 0xa352, 0x397: 0xa352, + 0x398: 0xa052, 0x399: 0xa052, 0x39a: 0x1a12, 0x39b: 0x1a12, 0x39c: 0x1e12, 0x39d: 0x1e12, + 0x39e: 0x1a12, 0x39f: 0x1a12, 0x3a0: 0x2612, 0x3a1: 0x2612, 0x3a2: 0x2a12, 0x3a3: 0x2a12, + 0x3a4: 0x2e12, 0x3a5: 0x2e12, 0x3a6: 0x2a12, 0x3a7: 0x2a12, 0x3a8: 0x2612, 0x3a9: 0x2612, + // Block 0xf, offset 0x3c0 + 0x3c0: 0x6552, 0x3c1: 0x6552, 0x3c2: 0x6552, 0x3c3: 0x6552, 0x3c4: 0x6552, 0x3c5: 0x6552, + 0x3c6: 0x6552, 0x3c7: 0x6552, 0x3c8: 0x6552, 0x3c9: 0x6552, 0x3ca: 0x6552, 0x3cb: 0x6552, + 0x3cc: 0x6552, 0x3cd: 0x6552, 0x3ce: 0x6552, 0x3cf: 0x6552, 0x3d0: 0xa952, 0x3d1: 0xa952, + 0x3d2: 0xa952, 0x3d3: 0xa952, 0x3d4: 0xa952, 0x3d5: 0xa952, 0x3d6: 0xa952, 0x3d7: 0xa952, + 0x3d8: 0xa952, 0x3d9: 0xa952, 0x3da: 0xa952, 0x3db: 0xa952, 0x3dc: 0xa952, 0x3dd: 0xa952, + 0x3de: 0xa952, 0x3e0: 0x0113, 0x3e1: 0x0112, 0x3e2: 0xc94b, 0x3e3: 0x8853, + 0x3e4: 0xca0b, 0x3e5: 0xcaca, 0x3e6: 0xcb4a, 0x3e7: 0x0f13, 0x3e8: 0x0f12, 0x3e9: 0x0313, + 0x3ea: 0x0312, 0x3eb: 0x0713, 0x3ec: 0x0712, 0x3ed: 0xcbcb, 0x3ee: 0xcc8b, 0x3ef: 0xcd4b, + 0x3f0: 0xce0b, 0x3f1: 0x0012, 0x3f2: 0x0113, 0x3f3: 0x0112, 0x3f4: 0x0012, 0x3f5: 0x0313, + 0x3f6: 0x0312, 0x3f7: 0x0012, 0x3f8: 0x0012, 0x3f9: 0x0012, 0x3fa: 0x0012, 0x3fb: 0x0012, + 0x3fc: 0x0015, 0x3fd: 0x0015, 0x3fe: 0xcecb, 0x3ff: 0xcf8b, + // Block 0x10, offset 0x400 + 0x400: 0x0113, 0x401: 0x0112, 0x402: 0x0113, 0x403: 0x0112, 0x404: 0x0113, 0x405: 0x0112, + 0x406: 0x0113, 0x407: 0x0112, 0x408: 0x0014, 0x409: 0x0004, 0x40a: 0x0004, 0x40b: 0x0713, + 0x40c: 0x0712, 0x40d: 0xd04b, 0x40e: 0x0012, 0x40f: 0x0010, 0x410: 0x0113, 0x411: 0x0112, + 0x412: 0x0113, 0x413: 0x0112, 0x414: 0x0012, 0x415: 0x0012, 0x416: 0x0113, 0x417: 0x0112, + 0x418: 0x0113, 0x419: 0x0112, 0x41a: 0x0113, 0x41b: 0x0112, 0x41c: 0x0113, 0x41d: 0x0112, + 0x41e: 0x0113, 0x41f: 0x0112, 0x420: 0x0113, 0x421: 0x0112, 0x422: 0x0113, 0x423: 0x0112, + 0x424: 0x0113, 0x425: 0x0112, 0x426: 0x0113, 0x427: 0x0112, 0x428: 0x0113, 0x429: 0x0112, + 0x42a: 0xd10b, 0x42b: 0xd1cb, 0x42c: 0xd28b, 0x42d: 0xd34b, 0x42e: 0xd40b, + 0x430: 0xd4cb, 0x431: 0xd58b, 0x432: 0xd64b, 0x433: 0xac53, 0x434: 0x0113, 0x435: 0x0112, + 0x436: 0x0113, 0x437: 0x0112, + // Block 0x11, offset 0x440 + 0x440: 0xd70a, 0x441: 0xd80a, 0x442: 0xd90a, 0x443: 0xda0a, 0x444: 0xdb6a, 0x445: 0xdcca, + 0x446: 0xddca, + 0x453: 0xdeca, 0x454: 0xe08a, 0x455: 0xe24a, 0x456: 0xe40a, 0x457: 0xe5ca, + 0x45d: 0x0010, + 0x45e: 0x0034, 0x45f: 0x0010, 0x460: 0x0010, 0x461: 0x0010, 0x462: 0x0010, 0x463: 0x0010, + 0x464: 0x0010, 0x465: 0x0010, 0x466: 0x0010, 0x467: 0x0010, 0x468: 0x0010, + 0x46a: 0x0010, 0x46b: 0x0010, 0x46c: 0x0010, 0x46d: 0x0010, 0x46e: 0x0010, 0x46f: 0x0010, + 0x470: 0x0010, 0x471: 0x0010, 0x472: 0x0010, 0x473: 0x0010, 0x474: 0x0010, 0x475: 0x0010, + 0x476: 0x0010, 0x478: 0x0010, 0x479: 0x0010, 0x47a: 0x0010, 0x47b: 0x0010, + 0x47c: 0x0010, 0x47e: 0x0010, + // Block 0x12, offset 0x480 + 0x480: 0x2213, 0x481: 0x2213, 0x482: 0x2613, 0x483: 0x2613, 0x484: 0x2213, 0x485: 0x2213, + 0x486: 0x2e13, 0x487: 0x2e13, 0x488: 0x2213, 0x489: 0x2213, 0x48a: 0x2613, 0x48b: 0x2613, + 0x48c: 0x2213, 0x48d: 0x2213, 0x48e: 0x3e13, 0x48f: 0x3e13, 0x490: 0x2213, 0x491: 0x2213, + 0x492: 0x2613, 0x493: 0x2613, 0x494: 0x2213, 0x495: 0x2213, 0x496: 0x2e13, 0x497: 0x2e13, + 0x498: 0x2213, 0x499: 0x2213, 0x49a: 0x2613, 0x49b: 0x2613, 0x49c: 0x2213, 0x49d: 0x2213, + 0x49e: 0xb553, 0x49f: 0xb553, 0x4a0: 0xb853, 0x4a1: 0xb853, 0x4a2: 0x2212, 0x4a3: 0x2212, + 0x4a4: 0x2612, 0x4a5: 0x2612, 0x4a6: 0x2212, 0x4a7: 0x2212, 0x4a8: 0x2e12, 0x4a9: 0x2e12, + 0x4aa: 0x2212, 0x4ab: 0x2212, 0x4ac: 0x2612, 0x4ad: 0x2612, 0x4ae: 0x2212, 0x4af: 0x2212, + 0x4b0: 0x3e12, 0x4b1: 0x3e12, 0x4b2: 0x2212, 0x4b3: 0x2212, 0x4b4: 0x2612, 0x4b5: 0x2612, + 0x4b6: 0x2212, 0x4b7: 0x2212, 0x4b8: 0x2e12, 0x4b9: 0x2e12, 0x4ba: 0x2212, 0x4bb: 0x2212, + 0x4bc: 0x2612, 0x4bd: 0x2612, 0x4be: 0x2212, 0x4bf: 0x2212, + // Block 0x13, offset 0x4c0 + 0x4c2: 0x0010, + 0x4c7: 0x0010, 0x4c9: 0x0010, 0x4cb: 0x0010, + 0x4cd: 0x0010, 0x4ce: 0x0010, 0x4cf: 0x0010, 0x4d1: 0x0010, + 0x4d2: 0x0010, 0x4d4: 0x0010, 0x4d7: 0x0010, + 0x4d9: 0x0010, 0x4db: 0x0010, 0x4dd: 0x0010, + 0x4df: 0x0010, 0x4e1: 0x0010, 0x4e2: 0x0010, + 0x4e4: 0x0010, 0x4e7: 0x0010, 0x4e8: 0x0010, 0x4e9: 0x0010, + 0x4ea: 0x0010, 0x4ec: 0x0010, 0x4ed: 0x0010, 0x4ee: 0x0010, 0x4ef: 0x0010, + 0x4f0: 0x0010, 0x4f1: 0x0010, 0x4f2: 0x0010, 0x4f4: 0x0010, 0x4f5: 0x0010, + 0x4f6: 0x0010, 0x4f7: 0x0010, 0x4f9: 0x0010, 0x4fa: 0x0010, 0x4fb: 0x0010, + 0x4fc: 0x0010, 0x4fe: 0x0010, +} + +// caseIndex: 25 blocks, 1600 entries, 3200 bytes +// Block 0 is the zero block. +var caseIndex = [1600]uint16{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0xc2: 0x12, 0xc3: 0x13, 0xc4: 0x14, 0xc5: 0x15, 0xc6: 0x01, 0xc7: 0x02, + 0xc8: 0x16, 0xc9: 0x03, 0xca: 0x04, 0xcb: 0x17, 0xcc: 0x18, 0xcd: 0x05, 0xce: 0x06, 0xcf: 0x07, + 0xd0: 0x19, 0xd1: 0x1a, 0xd2: 0x1b, 0xd3: 0x1c, 0xd4: 0x1d, 0xd5: 0x1e, 0xd6: 0x1f, 0xd7: 0x20, + 0xd8: 0x21, 0xd9: 0x22, 0xda: 0x23, 0xdb: 0x24, 0xdc: 0x25, 0xdd: 0x26, 0xde: 0x27, 0xdf: 0x28, + 0xe0: 0x02, 0xe1: 0x03, 0xe2: 0x04, 0xe3: 0x05, + 0xea: 0x06, 0xeb: 0x07, 0xec: 0x07, 0xed: 0x08, 0xef: 0x09, + 0xf0: 0x14, 0xf3: 0x16, + // Block 0x4, offset 0x100 + 0x120: 0x29, 0x121: 0x2a, 0x122: 0x2b, 0x123: 0x2c, 0x124: 0x2d, 0x125: 0x2e, 0x126: 0x2f, 0x127: 0x30, + 0x128: 0x31, 0x129: 0x32, 0x12a: 0x33, 0x12b: 0x34, 0x12c: 0x35, 0x12d: 0x36, 0x12e: 0x37, 0x12f: 0x38, + 0x130: 0x39, 0x131: 0x3a, 0x132: 0x3b, 0x133: 0x3c, 0x134: 0x3d, 0x135: 0x3e, 0x136: 0x3f, 0x137: 0x40, + 0x138: 0x41, 0x139: 0x42, 0x13a: 0x43, 0x13b: 0x44, 0x13c: 0x45, 0x13d: 0x46, 0x13e: 0x47, 0x13f: 0x48, + // Block 0x5, offset 0x140 + 0x140: 0x49, 0x141: 0x4a, 0x142: 0x4b, 0x143: 0x4c, 0x144: 0x23, 0x145: 0x23, 0x146: 0x23, 0x147: 0x23, + 0x148: 0x23, 0x149: 0x4d, 0x14a: 0x4e, 0x14b: 0x4f, 0x14c: 0x50, 0x14d: 0x51, 0x14e: 0x52, 0x14f: 0x53, + 0x150: 0x54, 0x151: 0x23, 0x152: 0x23, 0x153: 0x23, 0x154: 0x23, 0x155: 0x23, 0x156: 0x23, 0x157: 0x23, + 0x158: 0x23, 0x159: 0x55, 0x15a: 0x56, 0x15b: 0x57, 0x15c: 0x58, 0x15d: 0x59, 0x15e: 0x5a, 0x15f: 0x5b, + 0x160: 0x5c, 0x161: 0x5d, 0x162: 0x5e, 0x163: 0x5f, 0x164: 0x60, 0x165: 0x61, 0x167: 0x62, + 0x168: 0x63, 0x169: 0x64, 0x16a: 0x65, 0x16c: 0x66, 0x16d: 0x67, 0x16e: 0x68, 0x16f: 0x69, + 0x170: 0x6a, 0x171: 0x6b, 0x172: 0x6c, 0x173: 0x6d, 0x174: 0x6e, 0x175: 0x6f, 0x176: 0x70, 0x177: 0x71, + 0x178: 0x72, 0x179: 0x72, 0x17a: 0x73, 0x17b: 0x72, 0x17c: 0x74, 0x17d: 0x08, 0x17e: 0x09, 0x17f: 0x0a, + // Block 0x6, offset 0x180 + 0x180: 0x75, 0x181: 0x76, 0x182: 0x77, 0x183: 0x78, 0x184: 0x0b, 0x185: 0x79, 0x186: 0x7a, + 0x192: 0x7b, 0x193: 0x0c, + 0x1b0: 0x7c, 0x1b1: 0x0d, 0x1b2: 0x72, 0x1b3: 0x7d, 0x1b4: 0x7e, 0x1b5: 0x7f, 0x1b6: 0x80, 0x1b7: 0x81, + 0x1b8: 0x82, + // Block 0x7, offset 0x1c0 + 0x1c0: 0x83, 0x1c2: 0x84, 0x1c3: 0x85, 0x1c4: 0x86, 0x1c5: 0x23, 0x1c6: 0x87, + // Block 0x8, offset 0x200 + 0x200: 0x88, 0x201: 0x23, 0x202: 0x23, 0x203: 0x23, 0x204: 0x23, 0x205: 0x23, 0x206: 0x23, 0x207: 0x23, + 0x208: 0x23, 0x209: 0x23, 0x20a: 0x23, 0x20b: 0x23, 0x20c: 0x23, 0x20d: 0x23, 0x20e: 0x23, 0x20f: 0x23, + 0x210: 0x23, 0x211: 0x23, 0x212: 0x89, 0x213: 0x8a, 0x214: 0x23, 0x215: 0x23, 0x216: 0x23, 0x217: 0x23, + 0x218: 0x8b, 0x219: 0x8c, 0x21a: 0x8d, 0x21b: 0x8e, 0x21c: 0x8f, 0x21d: 0x90, 0x21e: 0x0e, 0x21f: 0x91, + 0x220: 0x92, 0x221: 0x93, 0x222: 0x23, 0x223: 0x94, 0x224: 0x95, 0x225: 0x96, 0x226: 0x97, 0x227: 0x98, + 0x228: 0x99, 0x229: 0x9a, 0x22a: 0x9b, 0x22b: 0x9c, 0x22c: 0x9d, 0x22d: 0x9e, 0x22e: 0x9f, 0x22f: 0xa0, + 0x230: 0x23, 0x231: 0x23, 0x232: 0x23, 0x233: 0x23, 0x234: 0x23, 0x235: 0x23, 0x236: 0x23, 0x237: 0x23, + 0x238: 0x23, 0x239: 0x23, 0x23a: 0x23, 0x23b: 0x23, 0x23c: 0x23, 0x23d: 0x23, 0x23e: 0x23, 0x23f: 0x23, + // Block 0x9, offset 0x240 + 0x240: 0x23, 0x241: 0x23, 0x242: 0x23, 0x243: 0x23, 0x244: 0x23, 0x245: 0x23, 0x246: 0x23, 0x247: 0x23, + 0x248: 0x23, 0x249: 0x23, 0x24a: 0x23, 0x24b: 0x23, 0x24c: 0x23, 0x24d: 0x23, 0x24e: 0x23, 0x24f: 0x23, + 0x250: 0x23, 0x251: 0x23, 0x252: 0x23, 0x253: 0x23, 0x254: 0x23, 0x255: 0x23, 0x256: 0x23, 0x257: 0x23, + 0x258: 0x23, 0x259: 0x23, 0x25a: 0x23, 0x25b: 0x23, 0x25c: 0x23, 0x25d: 0x23, 0x25e: 0x23, 0x25f: 0x23, + 0x260: 0x23, 0x261: 0x23, 0x262: 0x23, 0x263: 0x23, 0x264: 0x23, 0x265: 0x23, 0x266: 0x23, 0x267: 0x23, + 0x268: 0x23, 0x269: 0x23, 0x26a: 0x23, 0x26b: 0x23, 0x26c: 0x23, 0x26d: 0x23, 0x26e: 0x23, 0x26f: 0x23, + 0x270: 0x23, 0x271: 0x23, 0x272: 0x23, 0x273: 0x23, 0x274: 0x23, 0x275: 0x23, 0x276: 0x23, 0x277: 0x23, + 0x278: 0x23, 0x279: 0x23, 0x27a: 0x23, 0x27b: 0x23, 0x27c: 0x23, 0x27d: 0x23, 0x27e: 0x23, 0x27f: 0x23, + // Block 0xa, offset 0x280 + 0x280: 0x23, 0x281: 0x23, 0x282: 0x23, 0x283: 0x23, 0x284: 0x23, 0x285: 0x23, 0x286: 0x23, 0x287: 0x23, + 0x288: 0x23, 0x289: 0x23, 0x28a: 0x23, 0x28b: 0x23, 0x28c: 0x23, 0x28d: 0x23, 0x28e: 0x23, 0x28f: 0x23, + 0x290: 0x23, 0x291: 0x23, 0x292: 0x23, 0x293: 0x23, 0x294: 0x23, 0x295: 0x23, 0x296: 0x23, 0x297: 0x23, + 0x298: 0x23, 0x299: 0x23, 0x29a: 0x23, 0x29b: 0x23, 0x29c: 0x23, 0x29d: 0x23, 0x29e: 0xa1, 0x29f: 0xa2, + // Block 0xb, offset 0x2c0 + 0x2ec: 0x0f, 0x2ed: 0xa3, 0x2ee: 0xa4, 0x2ef: 0xa5, + 0x2f0: 0x23, 0x2f1: 0x23, 0x2f2: 0x23, 0x2f3: 0x23, 0x2f4: 0xa6, 0x2f5: 0xa7, 0x2f6: 0xa8, 0x2f7: 0xa9, + 0x2f8: 0xaa, 0x2f9: 0xab, 0x2fa: 0x23, 0x2fb: 0xac, 0x2fc: 0xad, 0x2fd: 0xae, 0x2fe: 0xaf, 0x2ff: 0xb0, + // Block 0xc, offset 0x300 + 0x300: 0xb1, 0x301: 0xb2, 0x302: 0x23, 0x303: 0xb3, 0x305: 0xb4, 0x307: 0xb5, + 0x30a: 0xb6, 0x30b: 0xb7, 0x30c: 0xb8, 0x30d: 0xb9, 0x30e: 0xba, 0x30f: 0xbb, + 0x310: 0xbc, 0x311: 0xbd, 0x312: 0xbe, 0x313: 0xbf, 0x314: 0xc0, 0x315: 0xc1, + 0x318: 0x23, 0x319: 0x23, 0x31a: 0x23, 0x31b: 0x23, 0x31c: 0xc2, 0x31d: 0xc3, + 0x320: 0xc4, 0x321: 0xc5, 0x322: 0xc6, 0x323: 0xc7, 0x324: 0xc8, 0x326: 0xc9, + 0x328: 0xca, 0x329: 0xcb, 0x32a: 0xcc, 0x32b: 0xcd, 0x32c: 0x5f, 0x32d: 0xce, 0x32e: 0xcf, + 0x330: 0x23, 0x331: 0xd0, 0x332: 0xd1, 0x333: 0xd2, + // Block 0xd, offset 0x340 + 0x340: 0xd3, 0x341: 0xd4, 0x342: 0xd5, 0x343: 0xd6, 0x344: 0xd7, 0x345: 0xd8, 0x346: 0xd9, 0x347: 0xda, + 0x348: 0xdb, 0x34a: 0xdc, 0x34b: 0xdd, 0x34c: 0xde, 0x34d: 0xdf, + 0x350: 0xe0, 0x351: 0xe1, 0x352: 0xe2, 0x353: 0xe3, 0x356: 0xe4, 0x357: 0xe5, + 0x358: 0xe6, 0x359: 0xe7, 0x35a: 0xe8, 0x35b: 0xe9, 0x35c: 0xea, + 0x362: 0xeb, 0x363: 0xec, + 0x36b: 0xed, + 0x370: 0xee, 0x371: 0xef, 0x372: 0xf0, + // Block 0xe, offset 0x380 + 0x380: 0x23, 0x381: 0x23, 0x382: 0x23, 0x383: 0x23, 0x384: 0x23, 0x385: 0x23, 0x386: 0x23, 0x387: 0x23, + 0x388: 0x23, 0x389: 0x23, 0x38a: 0x23, 0x38b: 0x23, 0x38c: 0x23, 0x38d: 0x23, 0x38e: 0xf1, + 0x390: 0x23, 0x391: 0xf2, 0x392: 0x23, 0x393: 0x23, 0x394: 0x23, 0x395: 0xf3, + // Block 0xf, offset 0x3c0 + 0x3c0: 0x23, 0x3c1: 0x23, 0x3c2: 0x23, 0x3c3: 0x23, 0x3c4: 0x23, 0x3c5: 0x23, 0x3c6: 0x23, 0x3c7: 0x23, + 0x3c8: 0x23, 0x3c9: 0x23, 0x3ca: 0x23, 0x3cb: 0x23, 0x3cc: 0x23, 0x3cd: 0x23, 0x3ce: 0x23, 0x3cf: 0x23, + 0x3d0: 0xf2, + // Block 0x10, offset 0x400 + 0x410: 0x23, 0x411: 0x23, 0x412: 0x23, 0x413: 0x23, 0x414: 0x23, 0x415: 0x23, 0x416: 0x23, 0x417: 0x23, + 0x418: 0x23, 0x419: 0xf4, + // Block 0x11, offset 0x440 + 0x460: 0x23, 0x461: 0x23, 0x462: 0x23, 0x463: 0x23, 0x464: 0x23, 0x465: 0x23, 0x466: 0x23, 0x467: 0x23, + 0x468: 0xed, 0x469: 0xf5, 0x46b: 0xf6, 0x46c: 0xf7, 0x46d: 0xf8, 0x46e: 0xf9, + 0x47c: 0x23, 0x47d: 0xfa, 0x47e: 0xfb, 0x47f: 0xfc, + // Block 0x12, offset 0x480 + 0x4b0: 0x23, 0x4b1: 0xfd, 0x4b2: 0xfe, + // Block 0x13, offset 0x4c0 + 0x4c5: 0xff, 0x4c6: 0x100, + 0x4c9: 0x101, + 0x4d0: 0x102, 0x4d1: 0x103, 0x4d2: 0x104, 0x4d3: 0x105, 0x4d4: 0x106, 0x4d5: 0x107, 0x4d6: 0x108, 0x4d7: 0x109, + 0x4d8: 0x10a, 0x4d9: 0x10b, 0x4da: 0x10c, 0x4db: 0x10d, 0x4dc: 0x10e, 0x4dd: 0x10f, 0x4de: 0x110, 0x4df: 0x111, + 0x4e8: 0x112, 0x4e9: 0x113, 0x4ea: 0x114, + // Block 0x14, offset 0x500 + 0x500: 0x115, + 0x520: 0x23, 0x521: 0x23, 0x522: 0x23, 0x523: 0x116, 0x524: 0x10, 0x525: 0x117, + 0x538: 0x118, 0x539: 0x11, 0x53a: 0x119, + // Block 0x15, offset 0x540 + 0x544: 0x11a, 0x545: 0x11b, 0x546: 0x11c, + 0x54f: 0x11d, + // Block 0x16, offset 0x580 + 0x590: 0x0a, 0x591: 0x0b, 0x592: 0x0c, 0x593: 0x0d, 0x594: 0x0e, 0x596: 0x0f, + 0x59b: 0x10, 0x59d: 0x11, 0x59e: 0x12, 0x59f: 0x13, + // Block 0x17, offset 0x5c0 + 0x5c0: 0x11e, 0x5c1: 0x11f, 0x5c4: 0x11f, 0x5c5: 0x11f, 0x5c6: 0x11f, 0x5c7: 0x120, + // Block 0x18, offset 0x600 + 0x620: 0x15, +} + +// sparseOffsets: 272 entries, 544 bytes +var sparseOffsets = []uint16{0x0, 0x9, 0xf, 0x18, 0x24, 0x2e, 0x3a, 0x3d, 0x41, 0x44, 0x48, 0x52, 0x54, 0x59, 0x69, 0x70, 0x75, 0x83, 0x84, 0x92, 0xa1, 0xab, 0xae, 0xb4, 0xbc, 0xbe, 0xc0, 0xce, 0xd4, 0xe2, 0xed, 0xf8, 0x103, 0x10f, 0x119, 0x124, 0x12f, 0x13b, 0x147, 0x14f, 0x157, 0x161, 0x16c, 0x178, 0x17e, 0x189, 0x18e, 0x196, 0x199, 0x19e, 0x1a2, 0x1a6, 0x1ad, 0x1b6, 0x1be, 0x1bf, 0x1c8, 0x1cf, 0x1d7, 0x1dd, 0x1e3, 0x1e8, 0x1ec, 0x1ef, 0x1f1, 0x1f4, 0x1f9, 0x1fa, 0x1fc, 0x1fe, 0x200, 0x207, 0x20c, 0x210, 0x219, 0x21c, 0x21f, 0x225, 0x226, 0x231, 0x232, 0x233, 0x238, 0x245, 0x24d, 0x255, 0x25e, 0x267, 0x270, 0x275, 0x278, 0x281, 0x28e, 0x290, 0x297, 0x299, 0x2a4, 0x2a5, 0x2b0, 0x2b8, 0x2c0, 0x2c6, 0x2c7, 0x2d5, 0x2da, 0x2dd, 0x2e2, 0x2e6, 0x2ec, 0x2f1, 0x2f4, 0x2f9, 0x2fe, 0x2ff, 0x305, 0x307, 0x308, 0x30a, 0x30c, 0x30f, 0x310, 0x312, 0x315, 0x31b, 0x31f, 0x321, 0x327, 0x32e, 0x332, 0x33b, 0x33c, 0x344, 0x348, 0x34d, 0x355, 0x35b, 0x361, 0x36b, 0x370, 0x379, 0x37f, 0x386, 0x38a, 0x392, 0x394, 0x396, 0x399, 0x39b, 0x39d, 0x39e, 0x39f, 0x3a1, 0x3a3, 0x3a9, 0x3ae, 0x3b0, 0x3b6, 0x3b9, 0x3bb, 0x3c1, 0x3c6, 0x3c8, 0x3c9, 0x3ca, 0x3cb, 0x3cd, 0x3cf, 0x3d1, 0x3d4, 0x3d6, 0x3d9, 0x3e1, 0x3e4, 0x3e8, 0x3f0, 0x3f2, 0x3f3, 0x3f4, 0x3f6, 0x3fc, 0x3fe, 0x3ff, 0x401, 0x403, 0x405, 0x412, 0x413, 0x414, 0x418, 0x41a, 0x41b, 0x41c, 0x41d, 0x41e, 0x422, 0x426, 0x42c, 0x42e, 0x435, 0x438, 0x43c, 0x442, 0x44b, 0x451, 0x457, 0x461, 0x46b, 0x46d, 0x474, 0x47a, 0x480, 0x486, 0x489, 0x48f, 0x492, 0x49a, 0x49b, 0x4a2, 0x4a3, 0x4a6, 0x4a7, 0x4ad, 0x4b0, 0x4b8, 0x4b9, 0x4ba, 0x4bb, 0x4bc, 0x4be, 0x4c0, 0x4c2, 0x4c6, 0x4c7, 0x4c9, 0x4ca, 0x4cb, 0x4cd, 0x4d2, 0x4d7, 0x4db, 0x4dc, 0x4df, 0x4e3, 0x4ee, 0x4f2, 0x4fa, 0x4ff, 0x503, 0x506, 0x50a, 0x50d, 0x510, 0x515, 0x519, 0x51d, 0x521, 0x525, 0x527, 0x529, 0x52c, 0x531, 0x533, 0x538, 0x541, 0x546, 0x547, 0x54a, 0x54b, 0x54c, 0x54e, 0x54f, 0x550} + +// sparseValues: 1360 entries, 5440 bytes +var sparseValues = [1360]valueRange{ + // Block 0x0, offset 0x0 + {value: 0x0004, lo: 0xa8, hi: 0xa8}, + {value: 0x0012, lo: 0xaa, hi: 0xaa}, + {value: 0x0014, lo: 0xad, hi: 0xad}, + {value: 0x0004, lo: 0xaf, hi: 0xaf}, + {value: 0x0004, lo: 0xb4, hi: 0xb4}, + {value: 0x002a, lo: 0xb5, hi: 0xb5}, + {value: 0x0054, lo: 0xb7, hi: 0xb7}, + {value: 0x0004, lo: 0xb8, hi: 0xb8}, + {value: 0x0012, lo: 0xba, hi: 0xba}, + // Block 0x1, offset 0x9 + {value: 0x2013, lo: 0x80, hi: 0x96}, + {value: 0x2013, lo: 0x98, hi: 0x9e}, + {value: 0x00ea, lo: 0x9f, hi: 0x9f}, + {value: 0x2012, lo: 0xa0, hi: 0xb6}, + {value: 0x2012, lo: 0xb8, hi: 0xbe}, + {value: 0x0252, lo: 0xbf, hi: 0xbf}, + // Block 0x2, offset 0xf + {value: 0x0117, lo: 0x80, hi: 0xaf}, + {value: 0x01eb, lo: 0xb0, hi: 0xb0}, + {value: 0x02ea, lo: 0xb1, hi: 0xb1}, + {value: 0x0117, lo: 0xb2, hi: 0xb7}, + {value: 0x0012, lo: 0xb8, hi: 0xb8}, + {value: 0x0316, lo: 0xb9, hi: 0xba}, + {value: 0x0716, lo: 0xbb, hi: 0xbc}, + {value: 0x0316, lo: 0xbd, hi: 0xbe}, + {value: 0x0553, lo: 0xbf, hi: 0xbf}, + // Block 0x3, offset 0x18 + {value: 0x0552, lo: 0x80, hi: 0x80}, + {value: 0x0316, lo: 0x81, hi: 0x82}, + {value: 0x0716, lo: 0x83, hi: 0x84}, + {value: 0x0316, lo: 0x85, hi: 0x86}, + {value: 0x0f16, lo: 0x87, hi: 0x88}, + {value: 0x034a, lo: 0x89, hi: 0x89}, + {value: 0x0117, lo: 0x8a, hi: 0xb7}, + {value: 0x0253, lo: 0xb8, hi: 0xb8}, + {value: 0x0316, lo: 0xb9, hi: 0xba}, + {value: 0x0716, lo: 0xbb, hi: 0xbc}, + {value: 0x0316, lo: 0xbd, hi: 0xbe}, + {value: 0x044a, lo: 0xbf, hi: 0xbf}, + // Block 0x4, offset 0x24 + {value: 0x0117, lo: 0x80, hi: 0x9f}, + {value: 0x2f53, lo: 0xa0, hi: 0xa0}, + {value: 0x0012, lo: 0xa1, hi: 0xa1}, + {value: 0x0117, lo: 0xa2, hi: 0xb3}, + {value: 0x0012, lo: 0xb4, hi: 0xb9}, + {value: 0x10cb, lo: 0xba, hi: 0xba}, + {value: 0x0716, lo: 0xbb, hi: 0xbc}, + {value: 0x2953, lo: 0xbd, hi: 0xbd}, + {value: 0x11cb, lo: 0xbe, hi: 0xbe}, + {value: 0x12ca, lo: 0xbf, hi: 0xbf}, + // Block 0x5, offset 0x2e + {value: 0x0015, lo: 0x80, hi: 0x81}, + {value: 0x0004, lo: 0x82, hi: 0x85}, + {value: 0x0014, lo: 0x86, hi: 0x91}, + {value: 0x0004, lo: 0x92, hi: 0x96}, + {value: 0x0054, lo: 0x97, hi: 0x97}, + {value: 0x0004, lo: 0x98, hi: 0x9f}, + {value: 0x0015, lo: 0xa0, hi: 0xa4}, + {value: 0x0004, lo: 0xa5, hi: 0xab}, + {value: 0x0014, lo: 0xac, hi: 0xac}, + {value: 0x0004, lo: 0xad, hi: 0xad}, + {value: 0x0014, lo: 0xae, hi: 0xae}, + {value: 0x0004, lo: 0xaf, hi: 0xbf}, + // Block 0x6, offset 0x3a + {value: 0x0024, lo: 0x80, hi: 0x94}, + {value: 0x0034, lo: 0x95, hi: 0xbc}, + {value: 0x0024, lo: 0xbd, hi: 0xbf}, + // Block 0x7, offset 0x3d + {value: 0x6553, lo: 0x80, hi: 0x8f}, + {value: 0x2013, lo: 0x90, hi: 0x9f}, + {value: 0x5f53, lo: 0xa0, hi: 0xaf}, + {value: 0x2012, lo: 0xb0, hi: 0xbf}, + // Block 0x8, offset 0x41 + {value: 0x5f52, lo: 0x80, hi: 0x8f}, + {value: 0x6552, lo: 0x90, hi: 0x9f}, + {value: 0x0117, lo: 0xa0, hi: 0xbf}, + // Block 0x9, offset 0x44 + {value: 0x0117, lo: 0x80, hi: 0x81}, + {value: 0x0024, lo: 0x83, hi: 0x87}, + {value: 0x0014, lo: 0x88, hi: 0x89}, + {value: 0x0117, lo: 0x8a, hi: 0xbf}, + // Block 0xa, offset 0x48 + {value: 0x0f13, lo: 0x80, hi: 0x80}, + {value: 0x0316, lo: 0x81, hi: 0x82}, + {value: 0x0716, lo: 0x83, hi: 0x84}, + {value: 0x0316, lo: 0x85, hi: 0x86}, + {value: 0x0f16, lo: 0x87, hi: 0x88}, + {value: 0x0316, lo: 0x89, hi: 0x8a}, + {value: 0x0716, lo: 0x8b, hi: 0x8c}, + {value: 0x0316, lo: 0x8d, hi: 0x8e}, + {value: 0x0f12, lo: 0x8f, hi: 0x8f}, + {value: 0x0117, lo: 0x90, hi: 0xbf}, + // Block 0xb, offset 0x52 + {value: 0x0117, lo: 0x80, hi: 0xaf}, + {value: 0x6553, lo: 0xb1, hi: 0xbf}, + // Block 0xc, offset 0x54 + {value: 0x3013, lo: 0x80, hi: 0x8f}, + {value: 0x6853, lo: 0x90, hi: 0x96}, + {value: 0x0014, lo: 0x99, hi: 0x99}, + {value: 0x6552, lo: 0xa1, hi: 0xaf}, + {value: 0x3012, lo: 0xb0, hi: 0xbf}, + // Block 0xd, offset 0x59 + {value: 0x6852, lo: 0x80, hi: 0x86}, + {value: 0x27aa, lo: 0x87, hi: 0x87}, + {value: 0x0034, lo: 0x91, hi: 0x91}, + {value: 0x0024, lo: 0x92, hi: 0x95}, + {value: 0x0034, lo: 0x96, hi: 0x96}, + {value: 0x0024, lo: 0x97, hi: 0x99}, + {value: 0x0034, lo: 0x9a, hi: 0x9b}, + {value: 0x0024, lo: 0x9c, hi: 0xa1}, + {value: 0x0034, lo: 0xa2, hi: 0xa7}, + {value: 0x0024, lo: 0xa8, hi: 0xa9}, + {value: 0x0034, lo: 0xaa, hi: 0xaa}, + {value: 0x0024, lo: 0xab, hi: 0xac}, + {value: 0x0034, lo: 0xad, hi: 0xae}, + {value: 0x0024, lo: 0xaf, hi: 0xaf}, + {value: 0x0034, lo: 0xb0, hi: 0xbd}, + {value: 0x0034, lo: 0xbf, hi: 0xbf}, + // Block 0xe, offset 0x69 + {value: 0x0034, lo: 0x81, hi: 0x82}, + {value: 0x0024, lo: 0x84, hi: 0x84}, + {value: 0x0034, lo: 0x85, hi: 0x85}, + {value: 0x0034, lo: 0x87, hi: 0x87}, + {value: 0x0010, lo: 0x90, hi: 0xaa}, + {value: 0x0010, lo: 0xb0, hi: 0xb3}, + {value: 0x0054, lo: 0xb4, hi: 0xb4}, + // Block 0xf, offset 0x70 + {value: 0x0014, lo: 0x80, hi: 0x85}, + {value: 0x0024, lo: 0x90, hi: 0x97}, + {value: 0x0034, lo: 0x98, hi: 0x9a}, + {value: 0x0014, lo: 0x9c, hi: 0x9c}, + {value: 0x0010, lo: 0xa0, hi: 0xbf}, + // Block 0x10, offset 0x75 + {value: 0x0014, lo: 0x80, hi: 0x80}, + {value: 0x0010, lo: 0x81, hi: 0x8a}, + {value: 0x0034, lo: 0x8b, hi: 0x92}, + {value: 0x0024, lo: 0x93, hi: 0x94}, + {value: 0x0034, lo: 0x95, hi: 0x96}, + {value: 0x0024, lo: 0x97, hi: 0x9b}, + {value: 0x0034, lo: 0x9c, hi: 0x9c}, + {value: 0x0024, lo: 0x9d, hi: 0x9e}, + {value: 0x0034, lo: 0x9f, hi: 0x9f}, + {value: 0x0010, lo: 0xa0, hi: 0xa9}, + {value: 0x0010, lo: 0xab, hi: 0xab}, + {value: 0x0010, lo: 0xae, hi: 0xaf}, + {value: 0x0034, lo: 0xb0, hi: 0xb0}, + {value: 0x0010, lo: 0xb1, hi: 0xbf}, + // Block 0x11, offset 0x83 + {value: 0x0010, lo: 0x80, hi: 0xbf}, + // Block 0x12, offset 0x84 + {value: 0x0010, lo: 0x80, hi: 0x93}, + {value: 0x0010, lo: 0x95, hi: 0x95}, + {value: 0x0024, lo: 0x96, hi: 0x9c}, + {value: 0x0014, lo: 0x9d, hi: 0x9d}, + {value: 0x0024, lo: 0x9f, hi: 0xa2}, + {value: 0x0034, lo: 0xa3, hi: 0xa3}, + {value: 0x0024, lo: 0xa4, hi: 0xa4}, + {value: 0x0014, lo: 0xa5, hi: 0xa6}, + {value: 0x0024, lo: 0xa7, hi: 0xa8}, + {value: 0x0034, lo: 0xaa, hi: 0xaa}, + {value: 0x0024, lo: 0xab, hi: 0xac}, + {value: 0x0034, lo: 0xad, hi: 0xad}, + {value: 0x0010, lo: 0xae, hi: 0xbc}, + {value: 0x0010, lo: 0xbf, hi: 0xbf}, + // Block 0x13, offset 0x92 + {value: 0x0014, lo: 0x8f, hi: 0x8f}, + {value: 0x0010, lo: 0x90, hi: 0x90}, + {value: 0x0034, lo: 0x91, hi: 0x91}, + {value: 0x0010, lo: 0x92, hi: 0xaf}, + {value: 0x0024, lo: 0xb0, hi: 0xb0}, + {value: 0x0034, lo: 0xb1, hi: 0xb1}, + {value: 0x0024, lo: 0xb2, hi: 0xb3}, + {value: 0x0034, lo: 0xb4, hi: 0xb4}, + {value: 0x0024, lo: 0xb5, hi: 0xb6}, + {value: 0x0034, lo: 0xb7, hi: 0xb9}, + {value: 0x0024, lo: 0xba, hi: 0xba}, + {value: 0x0034, lo: 0xbb, hi: 0xbc}, + {value: 0x0024, lo: 0xbd, hi: 0xbd}, + {value: 0x0034, lo: 0xbe, hi: 0xbe}, + {value: 0x0024, lo: 0xbf, hi: 0xbf}, + // Block 0x14, offset 0xa1 + {value: 0x0024, lo: 0x80, hi: 0x81}, + {value: 0x0034, lo: 0x82, hi: 0x82}, + {value: 0x0024, lo: 0x83, hi: 0x83}, + {value: 0x0034, lo: 0x84, hi: 0x84}, + {value: 0x0024, lo: 0x85, hi: 0x85}, + {value: 0x0034, lo: 0x86, hi: 0x86}, + {value: 0x0024, lo: 0x87, hi: 0x87}, + {value: 0x0034, lo: 0x88, hi: 0x88}, + {value: 0x0024, lo: 0x89, hi: 0x8a}, + {value: 0x0010, lo: 0x8d, hi: 0xbf}, + // Block 0x15, offset 0xab + {value: 0x0010, lo: 0x80, hi: 0xa5}, + {value: 0x0014, lo: 0xa6, hi: 0xb0}, + {value: 0x0010, lo: 0xb1, hi: 0xb1}, + // Block 0x16, offset 0xae + {value: 0x0010, lo: 0x80, hi: 0xaa}, + {value: 0x0024, lo: 0xab, hi: 0xb1}, + {value: 0x0034, lo: 0xb2, hi: 0xb2}, + {value: 0x0024, lo: 0xb3, hi: 0xb3}, + {value: 0x0014, lo: 0xb4, hi: 0xb5}, + {value: 0x0014, lo: 0xba, hi: 0xba}, + // Block 0x17, offset 0xb4 + {value: 0x0010, lo: 0x80, hi: 0x95}, + {value: 0x0024, lo: 0x96, hi: 0x99}, + {value: 0x0014, lo: 0x9a, hi: 0x9a}, + {value: 0x0024, lo: 0x9b, hi: 0xa3}, + {value: 0x0014, lo: 0xa4, hi: 0xa4}, + {value: 0x0024, lo: 0xa5, hi: 0xa7}, + {value: 0x0014, lo: 0xa8, hi: 0xa8}, + {value: 0x0024, lo: 0xa9, hi: 0xad}, + // Block 0x18, offset 0xbc + {value: 0x0010, lo: 0x80, hi: 0x98}, + {value: 0x0034, lo: 0x99, hi: 0x9b}, + // Block 0x19, offset 0xbe + {value: 0x0010, lo: 0xa0, hi: 0xb4}, + {value: 0x0010, lo: 0xb6, hi: 0xbd}, + // Block 0x1a, offset 0xc0 + {value: 0x0024, lo: 0x94, hi: 0xa1}, + {value: 0x0014, lo: 0xa2, hi: 0xa2}, + {value: 0x0034, lo: 0xa3, hi: 0xa3}, + {value: 0x0024, lo: 0xa4, hi: 0xa5}, + {value: 0x0034, lo: 0xa6, hi: 0xa6}, + {value: 0x0024, lo: 0xa7, hi: 0xa8}, + {value: 0x0034, lo: 0xa9, hi: 0xa9}, + {value: 0x0024, lo: 0xaa, hi: 0xac}, + {value: 0x0034, lo: 0xad, hi: 0xb2}, + {value: 0x0024, lo: 0xb3, hi: 0xb5}, + {value: 0x0034, lo: 0xb6, hi: 0xb6}, + {value: 0x0024, lo: 0xb7, hi: 0xb8}, + {value: 0x0034, lo: 0xb9, hi: 0xba}, + {value: 0x0024, lo: 0xbb, hi: 0xbf}, + // Block 0x1b, offset 0xce + {value: 0x0014, lo: 0x80, hi: 0x82}, + {value: 0x0010, lo: 0x83, hi: 0xb9}, + {value: 0x0014, lo: 0xba, hi: 0xba}, + {value: 0x0010, lo: 0xbb, hi: 0xbb}, + {value: 0x0034, lo: 0xbc, hi: 0xbc}, + {value: 0x0010, lo: 0xbd, hi: 0xbf}, + // Block 0x1c, offset 0xd4 + {value: 0x0010, lo: 0x80, hi: 0x80}, + {value: 0x0014, lo: 0x81, hi: 0x88}, + {value: 0x0010, lo: 0x89, hi: 0x8c}, + {value: 0x0034, lo: 0x8d, hi: 0x8d}, + {value: 0x0010, lo: 0x8e, hi: 0x90}, + {value: 0x0024, lo: 0x91, hi: 0x91}, + {value: 0x0034, lo: 0x92, hi: 0x92}, + {value: 0x0024, lo: 0x93, hi: 0x94}, + {value: 0x0014, lo: 0x95, hi: 0x97}, + {value: 0x0010, lo: 0x98, hi: 0xa1}, + {value: 0x0014, lo: 0xa2, hi: 0xa3}, + {value: 0x0010, lo: 0xa6, hi: 0xaf}, + {value: 0x0014, lo: 0xb1, hi: 0xb1}, + {value: 0x0010, lo: 0xb2, hi: 0xbf}, + // Block 0x1d, offset 0xe2 + {value: 0x0010, lo: 0x80, hi: 0x80}, + {value: 0x0014, lo: 0x81, hi: 0x81}, + {value: 0x0010, lo: 0x82, hi: 0x83}, + {value: 0x0010, lo: 0x85, hi: 0x8c}, + {value: 0x0010, lo: 0x8f, hi: 0x90}, + {value: 0x0010, lo: 0x93, hi: 0xa8}, + {value: 0x0010, lo: 0xaa, hi: 0xb0}, + {value: 0x0010, lo: 0xb2, hi: 0xb2}, + {value: 0x0010, lo: 0xb6, hi: 0xb9}, + {value: 0x0034, lo: 0xbc, hi: 0xbc}, + {value: 0x0010, lo: 0xbd, hi: 0xbf}, + // Block 0x1e, offset 0xed + {value: 0x0010, lo: 0x80, hi: 0x80}, + {value: 0x0014, lo: 0x81, hi: 0x84}, + {value: 0x0010, lo: 0x87, hi: 0x88}, + {value: 0x0010, lo: 0x8b, hi: 0x8c}, + {value: 0x0034, lo: 0x8d, hi: 0x8d}, + {value: 0x0010, lo: 0x8e, hi: 0x8e}, + {value: 0x0010, lo: 0x97, hi: 0x97}, + {value: 0x0010, lo: 0x9c, hi: 0x9d}, + {value: 0x0010, lo: 0x9f, hi: 0xa1}, + {value: 0x0014, lo: 0xa2, hi: 0xa3}, + {value: 0x0010, lo: 0xa6, hi: 0xb1}, + // Block 0x1f, offset 0xf8 + {value: 0x0014, lo: 0x81, hi: 0x82}, + {value: 0x0010, lo: 0x83, hi: 0x83}, + {value: 0x0010, lo: 0x85, hi: 0x8a}, + {value: 0x0010, lo: 0x8f, hi: 0x90}, + {value: 0x0010, lo: 0x93, hi: 0xa8}, + {value: 0x0010, lo: 0xaa, hi: 0xb0}, + {value: 0x0010, lo: 0xb2, hi: 0xb3}, + {value: 0x0010, lo: 0xb5, hi: 0xb6}, + {value: 0x0010, lo: 0xb8, hi: 0xb9}, + {value: 0x0034, lo: 0xbc, hi: 0xbc}, + {value: 0x0010, lo: 0xbe, hi: 0xbf}, + // Block 0x20, offset 0x103 + {value: 0x0010, lo: 0x80, hi: 0x80}, + {value: 0x0014, lo: 0x81, hi: 0x82}, + {value: 0x0014, lo: 0x87, hi: 0x88}, + {value: 0x0014, lo: 0x8b, hi: 0x8c}, + {value: 0x0034, lo: 0x8d, hi: 0x8d}, + {value: 0x0014, lo: 0x91, hi: 0x91}, + {value: 0x0010, lo: 0x99, hi: 0x9c}, + {value: 0x0010, lo: 0x9e, hi: 0x9e}, + {value: 0x0010, lo: 0xa6, hi: 0xaf}, + {value: 0x0014, lo: 0xb0, hi: 0xb1}, + {value: 0x0010, lo: 0xb2, hi: 0xb4}, + {value: 0x0014, lo: 0xb5, hi: 0xb5}, + // Block 0x21, offset 0x10f + {value: 0x0014, lo: 0x81, hi: 0x82}, + {value: 0x0010, lo: 0x83, hi: 0x83}, + {value: 0x0010, lo: 0x85, hi: 0x8d}, + {value: 0x0010, lo: 0x8f, hi: 0x91}, + {value: 0x0010, lo: 0x93, hi: 0xa8}, + {value: 0x0010, lo: 0xaa, hi: 0xb0}, + {value: 0x0010, lo: 0xb2, hi: 0xb3}, + {value: 0x0010, lo: 0xb5, hi: 0xb9}, + {value: 0x0034, lo: 0xbc, hi: 0xbc}, + {value: 0x0010, lo: 0xbd, hi: 0xbf}, + // Block 0x22, offset 0x119 + {value: 0x0010, lo: 0x80, hi: 0x80}, + {value: 0x0014, lo: 0x81, hi: 0x85}, + {value: 0x0014, lo: 0x87, hi: 0x88}, + {value: 0x0010, lo: 0x89, hi: 0x89}, + {value: 0x0010, lo: 0x8b, hi: 0x8c}, + {value: 0x0034, lo: 0x8d, hi: 0x8d}, + {value: 0x0010, lo: 0x90, hi: 0x90}, + {value: 0x0010, lo: 0xa0, hi: 0xa1}, + {value: 0x0014, lo: 0xa2, hi: 0xa3}, + {value: 0x0010, lo: 0xa6, hi: 0xaf}, + {value: 0x0010, lo: 0xb9, hi: 0xb9}, + // Block 0x23, offset 0x124 + {value: 0x0014, lo: 0x81, hi: 0x81}, + {value: 0x0010, lo: 0x82, hi: 0x83}, + {value: 0x0010, lo: 0x85, hi: 0x8c}, + {value: 0x0010, lo: 0x8f, hi: 0x90}, + {value: 0x0010, lo: 0x93, hi: 0xa8}, + {value: 0x0010, lo: 0xaa, hi: 0xb0}, + {value: 0x0010, lo: 0xb2, hi: 0xb3}, + {value: 0x0010, lo: 0xb5, hi: 0xb9}, + {value: 0x0034, lo: 0xbc, hi: 0xbc}, + {value: 0x0010, lo: 0xbd, hi: 0xbe}, + {value: 0x0014, lo: 0xbf, hi: 0xbf}, + // Block 0x24, offset 0x12f + {value: 0x0010, lo: 0x80, hi: 0x80}, + {value: 0x0014, lo: 0x81, hi: 0x84}, + {value: 0x0010, lo: 0x87, hi: 0x88}, + {value: 0x0010, lo: 0x8b, hi: 0x8c}, + {value: 0x0034, lo: 0x8d, hi: 0x8d}, + {value: 0x0014, lo: 0x96, hi: 0x96}, + {value: 0x0010, lo: 0x97, hi: 0x97}, + {value: 0x0010, lo: 0x9c, hi: 0x9d}, + {value: 0x0010, lo: 0x9f, hi: 0xa1}, + {value: 0x0014, lo: 0xa2, hi: 0xa3}, + {value: 0x0010, lo: 0xa6, hi: 0xaf}, + {value: 0x0010, lo: 0xb1, hi: 0xb1}, + // Block 0x25, offset 0x13b + {value: 0x0014, lo: 0x82, hi: 0x82}, + {value: 0x0010, lo: 0x83, hi: 0x83}, + {value: 0x0010, lo: 0x85, hi: 0x8a}, + {value: 0x0010, lo: 0x8e, hi: 0x90}, + {value: 0x0010, lo: 0x92, hi: 0x95}, + {value: 0x0010, lo: 0x99, hi: 0x9a}, + {value: 0x0010, lo: 0x9c, hi: 0x9c}, + {value: 0x0010, lo: 0x9e, hi: 0x9f}, + {value: 0x0010, lo: 0xa3, hi: 0xa4}, + {value: 0x0010, lo: 0xa8, hi: 0xaa}, + {value: 0x0010, lo: 0xae, hi: 0xb9}, + {value: 0x0010, lo: 0xbe, hi: 0xbf}, + // Block 0x26, offset 0x147 + {value: 0x0014, lo: 0x80, hi: 0x80}, + {value: 0x0010, lo: 0x81, hi: 0x82}, + {value: 0x0010, lo: 0x86, hi: 0x88}, + {value: 0x0010, lo: 0x8a, hi: 0x8c}, + {value: 0x0034, lo: 0x8d, hi: 0x8d}, + {value: 0x0010, lo: 0x90, hi: 0x90}, + {value: 0x0010, lo: 0x97, hi: 0x97}, + {value: 0x0010, lo: 0xa6, hi: 0xaf}, + // Block 0x27, offset 0x14f + {value: 0x0014, lo: 0x80, hi: 0x80}, + {value: 0x0010, lo: 0x81, hi: 0x83}, + {value: 0x0010, lo: 0x85, hi: 0x8c}, + {value: 0x0010, lo: 0x8e, hi: 0x90}, + {value: 0x0010, lo: 0x92, hi: 0xa8}, + {value: 0x0010, lo: 0xaa, hi: 0xb9}, + {value: 0x0010, lo: 0xbd, hi: 0xbd}, + {value: 0x0014, lo: 0xbe, hi: 0xbf}, + // Block 0x28, offset 0x157 + {value: 0x0014, lo: 0x80, hi: 0x80}, + {value: 0x0010, lo: 0x81, hi: 0x84}, + {value: 0x0014, lo: 0x86, hi: 0x88}, + {value: 0x0014, lo: 0x8a, hi: 0x8c}, + {value: 0x0034, lo: 0x8d, hi: 0x8d}, + {value: 0x0034, lo: 0x95, hi: 0x96}, + {value: 0x0010, lo: 0x98, hi: 0x9a}, + {value: 0x0010, lo: 0xa0, hi: 0xa1}, + {value: 0x0014, lo: 0xa2, hi: 0xa3}, + {value: 0x0010, lo: 0xa6, hi: 0xaf}, + // Block 0x29, offset 0x161 + {value: 0x0010, lo: 0x80, hi: 0x80}, + {value: 0x0014, lo: 0x81, hi: 0x81}, + {value: 0x0010, lo: 0x82, hi: 0x83}, + {value: 0x0010, lo: 0x85, hi: 0x8c}, + {value: 0x0010, lo: 0x8e, hi: 0x90}, + {value: 0x0010, lo: 0x92, hi: 0xa8}, + {value: 0x0010, lo: 0xaa, hi: 0xb3}, + {value: 0x0010, lo: 0xb5, hi: 0xb9}, + {value: 0x0034, lo: 0xbc, hi: 0xbc}, + {value: 0x0010, lo: 0xbd, hi: 0xbe}, + {value: 0x0014, lo: 0xbf, hi: 0xbf}, + // Block 0x2a, offset 0x16c + {value: 0x0010, lo: 0x80, hi: 0x84}, + {value: 0x0014, lo: 0x86, hi: 0x86}, + {value: 0x0010, lo: 0x87, hi: 0x88}, + {value: 0x0010, lo: 0x8a, hi: 0x8b}, + {value: 0x0014, lo: 0x8c, hi: 0x8c}, + {value: 0x0034, lo: 0x8d, hi: 0x8d}, + {value: 0x0010, lo: 0x95, hi: 0x96}, + {value: 0x0010, lo: 0x9e, hi: 0x9e}, + {value: 0x0010, lo: 0xa0, hi: 0xa1}, + {value: 0x0014, lo: 0xa2, hi: 0xa3}, + {value: 0x0010, lo: 0xa6, hi: 0xaf}, + {value: 0x0010, lo: 0xb1, hi: 0xb2}, + // Block 0x2b, offset 0x178 + {value: 0x0014, lo: 0x81, hi: 0x81}, + {value: 0x0010, lo: 0x82, hi: 0x83}, + {value: 0x0010, lo: 0x85, hi: 0x8c}, + {value: 0x0010, lo: 0x8e, hi: 0x90}, + {value: 0x0010, lo: 0x92, hi: 0xba}, + {value: 0x0010, lo: 0xbd, hi: 0xbf}, + // Block 0x2c, offset 0x17e + {value: 0x0010, lo: 0x80, hi: 0x80}, + {value: 0x0014, lo: 0x81, hi: 0x84}, + {value: 0x0010, lo: 0x86, hi: 0x88}, + {value: 0x0010, lo: 0x8a, hi: 0x8c}, + {value: 0x0034, lo: 0x8d, hi: 0x8d}, + {value: 0x0010, lo: 0x8e, hi: 0x8e}, + {value: 0x0010, lo: 0x94, hi: 0x97}, + {value: 0x0010, lo: 0x9f, hi: 0xa1}, + {value: 0x0014, lo: 0xa2, hi: 0xa3}, + {value: 0x0010, lo: 0xa6, hi: 0xaf}, + {value: 0x0010, lo: 0xba, hi: 0xbf}, + // Block 0x2d, offset 0x189 + {value: 0x0010, lo: 0x82, hi: 0x83}, + {value: 0x0010, lo: 0x85, hi: 0x96}, + {value: 0x0010, lo: 0x9a, hi: 0xb1}, + {value: 0x0010, lo: 0xb3, hi: 0xbb}, + {value: 0x0010, lo: 0xbd, hi: 0xbd}, + // Block 0x2e, offset 0x18e + {value: 0x0010, lo: 0x80, hi: 0x86}, + {value: 0x0034, lo: 0x8a, hi: 0x8a}, + {value: 0x0010, lo: 0x8f, hi: 0x91}, + {value: 0x0014, lo: 0x92, hi: 0x94}, + {value: 0x0014, lo: 0x96, hi: 0x96}, + {value: 0x0010, lo: 0x98, hi: 0x9f}, + {value: 0x0010, lo: 0xa6, hi: 0xaf}, + {value: 0x0010, lo: 0xb2, hi: 0xb3}, + // Block 0x2f, offset 0x196 + {value: 0x0014, lo: 0xb1, hi: 0xb1}, + {value: 0x0014, lo: 0xb4, hi: 0xb7}, + {value: 0x0034, lo: 0xb8, hi: 0xba}, + // Block 0x30, offset 0x199 + {value: 0x0004, lo: 0x86, hi: 0x86}, + {value: 0x0014, lo: 0x87, hi: 0x87}, + {value: 0x0034, lo: 0x88, hi: 0x8b}, + {value: 0x0014, lo: 0x8c, hi: 0x8e}, + {value: 0x0010, lo: 0x90, hi: 0x99}, + // Block 0x31, offset 0x19e + {value: 0x0014, lo: 0xb1, hi: 0xb1}, + {value: 0x0014, lo: 0xb4, hi: 0xb7}, + {value: 0x0034, lo: 0xb8, hi: 0xb9}, + {value: 0x0014, lo: 0xbb, hi: 0xbc}, + // Block 0x32, offset 0x1a2 + {value: 0x0004, lo: 0x86, hi: 0x86}, + {value: 0x0034, lo: 0x88, hi: 0x8b}, + {value: 0x0014, lo: 0x8c, hi: 0x8d}, + {value: 0x0010, lo: 0x90, hi: 0x99}, + // Block 0x33, offset 0x1a6 + {value: 0x0010, lo: 0x80, hi: 0x80}, + {value: 0x0034, lo: 0x98, hi: 0x99}, + {value: 0x0010, lo: 0xa0, hi: 0xa9}, + {value: 0x0034, lo: 0xb5, hi: 0xb5}, + {value: 0x0034, lo: 0xb7, hi: 0xb7}, + {value: 0x0034, lo: 0xb9, hi: 0xb9}, + {value: 0x0010, lo: 0xbe, hi: 0xbf}, + // Block 0x34, offset 0x1ad + {value: 0x0010, lo: 0x80, hi: 0x87}, + {value: 0x0010, lo: 0x89, hi: 0xac}, + {value: 0x0034, lo: 0xb1, hi: 0xb2}, + {value: 0x0014, lo: 0xb3, hi: 0xb3}, + {value: 0x0034, lo: 0xb4, hi: 0xb4}, + {value: 0x0014, lo: 0xb5, hi: 0xb9}, + {value: 0x0034, lo: 0xba, hi: 0xbd}, + {value: 0x0014, lo: 0xbe, hi: 0xbe}, + {value: 0x0010, lo: 0xbf, hi: 0xbf}, + // Block 0x35, offset 0x1b6 + {value: 0x0034, lo: 0x80, hi: 0x80}, + {value: 0x0014, lo: 0x81, hi: 0x81}, + {value: 0x0024, lo: 0x82, hi: 0x83}, + {value: 0x0034, lo: 0x84, hi: 0x84}, + {value: 0x0024, lo: 0x86, hi: 0x87}, + {value: 0x0010, lo: 0x88, hi: 0x8c}, + {value: 0x0014, lo: 0x8d, hi: 0x97}, + {value: 0x0014, lo: 0x99, hi: 0xbc}, + // Block 0x36, offset 0x1be + {value: 0x0034, lo: 0x86, hi: 0x86}, + // Block 0x37, offset 0x1bf + {value: 0x0010, lo: 0xab, hi: 0xac}, + {value: 0x0014, lo: 0xad, hi: 0xb0}, + {value: 0x0010, lo: 0xb1, hi: 0xb1}, + {value: 0x0014, lo: 0xb2, hi: 0xb6}, + {value: 0x0034, lo: 0xb7, hi: 0xb7}, + {value: 0x0010, lo: 0xb8, hi: 0xb8}, + {value: 0x0034, lo: 0xb9, hi: 0xba}, + {value: 0x0010, lo: 0xbb, hi: 0xbc}, + {value: 0x0014, lo: 0xbd, hi: 0xbe}, + // Block 0x38, offset 0x1c8 + {value: 0x0010, lo: 0x80, hi: 0x89}, + {value: 0x0010, lo: 0x96, hi: 0x97}, + {value: 0x0014, lo: 0x98, hi: 0x99}, + {value: 0x0014, lo: 0x9e, hi: 0xa0}, + {value: 0x0010, lo: 0xa2, hi: 0xa4}, + {value: 0x0010, lo: 0xa7, hi: 0xad}, + {value: 0x0014, lo: 0xb1, hi: 0xb4}, + // Block 0x39, offset 0x1cf + {value: 0x0014, lo: 0x82, hi: 0x82}, + {value: 0x0010, lo: 0x83, hi: 0x84}, + {value: 0x0014, lo: 0x85, hi: 0x86}, + {value: 0x0010, lo: 0x87, hi: 0x8c}, + {value: 0x0034, lo: 0x8d, hi: 0x8d}, + {value: 0x0010, lo: 0x8f, hi: 0x9c}, + {value: 0x0014, lo: 0x9d, hi: 0x9d}, + {value: 0x6c53, lo: 0xa0, hi: 0xbf}, + // Block 0x3a, offset 0x1d7 + {value: 0x7053, lo: 0x80, hi: 0x85}, + {value: 0x7053, lo: 0x87, hi: 0x87}, + {value: 0x7053, lo: 0x8d, hi: 0x8d}, + {value: 0x0010, lo: 0x90, hi: 0xba}, + {value: 0x0014, lo: 0xbc, hi: 0xbc}, + {value: 0x0010, lo: 0xbd, hi: 0xbf}, + // Block 0x3b, offset 0x1dd + {value: 0x0010, lo: 0x80, hi: 0x88}, + {value: 0x0010, lo: 0x8a, hi: 0x8d}, + {value: 0x0010, lo: 0x90, hi: 0x96}, + {value: 0x0010, lo: 0x98, hi: 0x98}, + {value: 0x0010, lo: 0x9a, hi: 0x9d}, + {value: 0x0010, lo: 0xa0, hi: 0xbf}, + // Block 0x3c, offset 0x1e3 + {value: 0x0010, lo: 0x80, hi: 0x88}, + {value: 0x0010, lo: 0x8a, hi: 0x8d}, + {value: 0x0010, lo: 0x90, hi: 0xb0}, + {value: 0x0010, lo: 0xb2, hi: 0xb5}, + {value: 0x0010, lo: 0xb8, hi: 0xbe}, + // Block 0x3d, offset 0x1e8 + {value: 0x0010, lo: 0x80, hi: 0x80}, + {value: 0x0010, lo: 0x82, hi: 0x85}, + {value: 0x0010, lo: 0x88, hi: 0x96}, + {value: 0x0010, lo: 0x98, hi: 0xbf}, + // Block 0x3e, offset 0x1ec + {value: 0x0010, lo: 0x80, hi: 0x90}, + {value: 0x0010, lo: 0x92, hi: 0x95}, + {value: 0x0010, lo: 0x98, hi: 0xbf}, + // Block 0x3f, offset 0x1ef + {value: 0x0010, lo: 0x80, hi: 0x9a}, + {value: 0x0024, lo: 0x9d, hi: 0x9f}, + // Block 0x40, offset 0x1f1 + {value: 0x0010, lo: 0x80, hi: 0x8f}, + {value: 0x7453, lo: 0xa0, hi: 0xaf}, + {value: 0x7853, lo: 0xb0, hi: 0xbf}, + // Block 0x41, offset 0x1f4 + {value: 0x7c53, lo: 0x80, hi: 0x8f}, + {value: 0x8053, lo: 0x90, hi: 0x9f}, + {value: 0x7c53, lo: 0xa0, hi: 0xaf}, + {value: 0x0813, lo: 0xb0, hi: 0xb5}, + {value: 0x0892, lo: 0xb8, hi: 0xbd}, + // Block 0x42, offset 0x1f9 + {value: 0x0010, lo: 0x81, hi: 0xbf}, + // Block 0x43, offset 0x1fa + {value: 0x0010, lo: 0x80, hi: 0xac}, + {value: 0x0010, lo: 0xaf, hi: 0xbf}, + // Block 0x44, offset 0x1fc + {value: 0x0010, lo: 0x81, hi: 0x9a}, + {value: 0x0010, lo: 0xa0, hi: 0xbf}, + // Block 0x45, offset 0x1fe + {value: 0x0010, lo: 0x80, hi: 0xaa}, + {value: 0x0010, lo: 0xae, hi: 0xb8}, + // Block 0x46, offset 0x200 + {value: 0x0010, lo: 0x80, hi: 0x8c}, + {value: 0x0010, lo: 0x8e, hi: 0x91}, + {value: 0x0014, lo: 0x92, hi: 0x93}, + {value: 0x0034, lo: 0x94, hi: 0x94}, + {value: 0x0010, lo: 0xa0, hi: 0xb1}, + {value: 0x0014, lo: 0xb2, hi: 0xb3}, + {value: 0x0034, lo: 0xb4, hi: 0xb4}, + // Block 0x47, offset 0x207 + {value: 0x0010, lo: 0x80, hi: 0x91}, + {value: 0x0014, lo: 0x92, hi: 0x93}, + {value: 0x0010, lo: 0xa0, hi: 0xac}, + {value: 0x0010, lo: 0xae, hi: 0xb0}, + {value: 0x0014, lo: 0xb2, hi: 0xb3}, + // Block 0x48, offset 0x20c + {value: 0x0014, lo: 0xb4, hi: 0xb5}, + {value: 0x0010, lo: 0xb6, hi: 0xb6}, + {value: 0x0014, lo: 0xb7, hi: 0xbd}, + {value: 0x0010, lo: 0xbe, hi: 0xbf}, + // Block 0x49, offset 0x210 + {value: 0x0010, lo: 0x80, hi: 0x85}, + {value: 0x0014, lo: 0x86, hi: 0x86}, + {value: 0x0010, lo: 0x87, hi: 0x88}, + {value: 0x0014, lo: 0x89, hi: 0x91}, + {value: 0x0034, lo: 0x92, hi: 0x92}, + {value: 0x0014, lo: 0x93, hi: 0x93}, + {value: 0x0004, lo: 0x97, hi: 0x97}, + {value: 0x0024, lo: 0x9d, hi: 0x9d}, + {value: 0x0010, lo: 0xa0, hi: 0xa9}, + // Block 0x4a, offset 0x219 + {value: 0x0014, lo: 0x8b, hi: 0x8e}, + {value: 0x0010, lo: 0x90, hi: 0x99}, + {value: 0x0010, lo: 0xa0, hi: 0xbf}, + // Block 0x4b, offset 0x21c + {value: 0x0010, lo: 0x80, hi: 0x82}, + {value: 0x0014, lo: 0x83, hi: 0x83}, + {value: 0x0010, lo: 0x84, hi: 0xb7}, + // Block 0x4c, offset 0x21f + {value: 0x0010, lo: 0x80, hi: 0x84}, + {value: 0x0014, lo: 0x85, hi: 0x86}, + {value: 0x0010, lo: 0x87, hi: 0xa8}, + {value: 0x0034, lo: 0xa9, hi: 0xa9}, + {value: 0x0010, lo: 0xaa, hi: 0xaa}, + {value: 0x0010, lo: 0xb0, hi: 0xbf}, + // Block 0x4d, offset 0x225 + {value: 0x0010, lo: 0x80, hi: 0xb5}, + // Block 0x4e, offset 0x226 + {value: 0x0010, lo: 0x80, hi: 0x9e}, + {value: 0x0014, lo: 0xa0, hi: 0xa2}, + {value: 0x0010, lo: 0xa3, hi: 0xa6}, + {value: 0x0014, lo: 0xa7, hi: 0xa8}, + {value: 0x0010, lo: 0xa9, hi: 0xab}, + {value: 0x0010, lo: 0xb0, hi: 0xb1}, + {value: 0x0014, lo: 0xb2, hi: 0xb2}, + {value: 0x0010, lo: 0xb3, hi: 0xb8}, + {value: 0x0034, lo: 0xb9, hi: 0xb9}, + {value: 0x0024, lo: 0xba, hi: 0xba}, + {value: 0x0034, lo: 0xbb, hi: 0xbb}, + // Block 0x4f, offset 0x231 + {value: 0x0010, lo: 0x86, hi: 0x8f}, + // Block 0x50, offset 0x232 + {value: 0x0010, lo: 0x90, hi: 0x99}, + // Block 0x51, offset 0x233 + {value: 0x0010, lo: 0x80, hi: 0x96}, + {value: 0x0024, lo: 0x97, hi: 0x97}, + {value: 0x0034, lo: 0x98, hi: 0x98}, + {value: 0x0010, lo: 0x99, hi: 0x9a}, + {value: 0x0014, lo: 0x9b, hi: 0x9b}, + // Block 0x52, offset 0x238 + {value: 0x0010, lo: 0x95, hi: 0x95}, + {value: 0x0014, lo: 0x96, hi: 0x96}, + {value: 0x0010, lo: 0x97, hi: 0x97}, + {value: 0x0014, lo: 0x98, hi: 0x9e}, + {value: 0x0034, lo: 0xa0, hi: 0xa0}, + {value: 0x0010, lo: 0xa1, hi: 0xa1}, + {value: 0x0014, lo: 0xa2, hi: 0xa2}, + {value: 0x0010, lo: 0xa3, hi: 0xa4}, + {value: 0x0014, lo: 0xa5, hi: 0xac}, + {value: 0x0010, lo: 0xad, hi: 0xb2}, + {value: 0x0014, lo: 0xb3, hi: 0xb4}, + {value: 0x0024, lo: 0xb5, hi: 0xbc}, + {value: 0x0034, lo: 0xbf, hi: 0xbf}, + // Block 0x53, offset 0x245 + {value: 0x0010, lo: 0x80, hi: 0x89}, + {value: 0x0010, lo: 0x90, hi: 0x99}, + {value: 0x0004, lo: 0xa7, hi: 0xa7}, + {value: 0x0024, lo: 0xb0, hi: 0xb4}, + {value: 0x0034, lo: 0xb5, hi: 0xba}, + {value: 0x0024, lo: 0xbb, hi: 0xbc}, + {value: 0x0034, lo: 0xbd, hi: 0xbd}, + {value: 0x0014, lo: 0xbe, hi: 0xbe}, + // Block 0x54, offset 0x24d + {value: 0x0014, lo: 0x80, hi: 0x83}, + {value: 0x0010, lo: 0x84, hi: 0xb3}, + {value: 0x0034, lo: 0xb4, hi: 0xb4}, + {value: 0x0010, lo: 0xb5, hi: 0xb5}, + {value: 0x0014, lo: 0xb6, hi: 0xba}, + {value: 0x0010, lo: 0xbb, hi: 0xbb}, + {value: 0x0014, lo: 0xbc, hi: 0xbc}, + {value: 0x0010, lo: 0xbd, hi: 0xbf}, + // Block 0x55, offset 0x255 + {value: 0x0010, lo: 0x80, hi: 0x81}, + {value: 0x0014, lo: 0x82, hi: 0x82}, + {value: 0x0010, lo: 0x83, hi: 0x83}, + {value: 0x0030, lo: 0x84, hi: 0x84}, + {value: 0x0010, lo: 0x85, hi: 0x8b}, + {value: 0x0010, lo: 0x90, hi: 0x99}, + {value: 0x0024, lo: 0xab, hi: 0xab}, + {value: 0x0034, lo: 0xac, hi: 0xac}, + {value: 0x0024, lo: 0xad, hi: 0xb3}, + // Block 0x56, offset 0x25e + {value: 0x0014, lo: 0x80, hi: 0x81}, + {value: 0x0010, lo: 0x82, hi: 0xa1}, + {value: 0x0014, lo: 0xa2, hi: 0xa5}, + {value: 0x0010, lo: 0xa6, hi: 0xa7}, + {value: 0x0014, lo: 0xa8, hi: 0xa9}, + {value: 0x0030, lo: 0xaa, hi: 0xaa}, + {value: 0x0034, lo: 0xab, hi: 0xab}, + {value: 0x0014, lo: 0xac, hi: 0xad}, + {value: 0x0010, lo: 0xae, hi: 0xbf}, + // Block 0x57, offset 0x267 + {value: 0x0010, lo: 0x80, hi: 0xa5}, + {value: 0x0034, lo: 0xa6, hi: 0xa6}, + {value: 0x0010, lo: 0xa7, hi: 0xa7}, + {value: 0x0014, lo: 0xa8, hi: 0xa9}, + {value: 0x0010, lo: 0xaa, hi: 0xac}, + {value: 0x0014, lo: 0xad, hi: 0xad}, + {value: 0x0010, lo: 0xae, hi: 0xae}, + {value: 0x0014, lo: 0xaf, hi: 0xb1}, + {value: 0x0030, lo: 0xb2, hi: 0xb3}, + // Block 0x58, offset 0x270 + {value: 0x0010, lo: 0x80, hi: 0xab}, + {value: 0x0014, lo: 0xac, hi: 0xb3}, + {value: 0x0010, lo: 0xb4, hi: 0xb5}, + {value: 0x0014, lo: 0xb6, hi: 0xb6}, + {value: 0x0034, lo: 0xb7, hi: 0xb7}, + // Block 0x59, offset 0x275 + {value: 0x0010, lo: 0x80, hi: 0x89}, + {value: 0x0010, lo: 0x8d, hi: 0xb7}, + {value: 0x0014, lo: 0xb8, hi: 0xbd}, + // Block 0x5a, offset 0x278 + {value: 0x296a, lo: 0x80, hi: 0x80}, + {value: 0x2a2a, lo: 0x81, hi: 0x81}, + {value: 0x2aea, lo: 0x82, hi: 0x82}, + {value: 0x2baa, lo: 0x83, hi: 0x83}, + {value: 0x2c6a, lo: 0x84, hi: 0x84}, + {value: 0x2d2a, lo: 0x85, hi: 0x85}, + {value: 0x2dea, lo: 0x86, hi: 0x86}, + {value: 0x2eaa, lo: 0x87, hi: 0x87}, + {value: 0x2f6a, lo: 0x88, hi: 0x88}, + // Block 0x5b, offset 0x281 + {value: 0x0024, lo: 0x90, hi: 0x92}, + {value: 0x0034, lo: 0x94, hi: 0x99}, + {value: 0x0024, lo: 0x9a, hi: 0x9b}, + {value: 0x0034, lo: 0x9c, hi: 0x9f}, + {value: 0x0024, lo: 0xa0, hi: 0xa0}, + {value: 0x0010, lo: 0xa1, hi: 0xa1}, + {value: 0x0034, lo: 0xa2, hi: 0xa8}, + {value: 0x0010, lo: 0xa9, hi: 0xac}, + {value: 0x0034, lo: 0xad, hi: 0xad}, + {value: 0x0010, lo: 0xae, hi: 0xb3}, + {value: 0x0024, lo: 0xb4, hi: 0xb4}, + {value: 0x0010, lo: 0xb5, hi: 0xb6}, + {value: 0x0024, lo: 0xb8, hi: 0xb9}, + // Block 0x5c, offset 0x28e + {value: 0x0012, lo: 0x80, hi: 0xab}, + {value: 0x0015, lo: 0xac, hi: 0xbf}, + // Block 0x5d, offset 0x290 + {value: 0x0015, lo: 0x80, hi: 0xaa}, + {value: 0x0012, lo: 0xab, hi: 0xb7}, + {value: 0x0015, lo: 0xb8, hi: 0xb8}, + {value: 0x8452, lo: 0xb9, hi: 0xb9}, + {value: 0x0012, lo: 0xba, hi: 0xbc}, + {value: 0x8852, lo: 0xbd, hi: 0xbd}, + {value: 0x0012, lo: 0xbe, hi: 0xbf}, + // Block 0x5e, offset 0x297 + {value: 0x0012, lo: 0x80, hi: 0x9a}, + {value: 0x0015, lo: 0x9b, hi: 0xbf}, + // Block 0x5f, offset 0x299 + {value: 0x0024, lo: 0x80, hi: 0x81}, + {value: 0x0034, lo: 0x82, hi: 0x82}, + {value: 0x0024, lo: 0x83, hi: 0x89}, + {value: 0x0034, lo: 0x8a, hi: 0x8a}, + {value: 0x0024, lo: 0x8b, hi: 0x8c}, + {value: 0x0034, lo: 0x8d, hi: 0x90}, + {value: 0x0024, lo: 0x91, hi: 0xb5}, + {value: 0x0024, lo: 0xbb, hi: 0xbb}, + {value: 0x0034, lo: 0xbc, hi: 0xbd}, + {value: 0x0024, lo: 0xbe, hi: 0xbe}, + {value: 0x0034, lo: 0xbf, hi: 0xbf}, + // Block 0x60, offset 0x2a4 + {value: 0x0117, lo: 0x80, hi: 0xbf}, + // Block 0x61, offset 0x2a5 + {value: 0x0117, lo: 0x80, hi: 0x95}, + {value: 0x306a, lo: 0x96, hi: 0x96}, + {value: 0x316a, lo: 0x97, hi: 0x97}, + {value: 0x326a, lo: 0x98, hi: 0x98}, + {value: 0x336a, lo: 0x99, hi: 0x99}, + {value: 0x346a, lo: 0x9a, hi: 0x9a}, + {value: 0x356a, lo: 0x9b, hi: 0x9b}, + {value: 0x0012, lo: 0x9c, hi: 0x9d}, + {value: 0x366b, lo: 0x9e, hi: 0x9e}, + {value: 0x0012, lo: 0x9f, hi: 0x9f}, + {value: 0x0117, lo: 0xa0, hi: 0xbf}, + // Block 0x62, offset 0x2b0 + {value: 0x0812, lo: 0x80, hi: 0x87}, + {value: 0x0813, lo: 0x88, hi: 0x8f}, + {value: 0x0812, lo: 0x90, hi: 0x95}, + {value: 0x0813, lo: 0x98, hi: 0x9d}, + {value: 0x0812, lo: 0xa0, hi: 0xa7}, + {value: 0x0813, lo: 0xa8, hi: 0xaf}, + {value: 0x0812, lo: 0xb0, hi: 0xb7}, + {value: 0x0813, lo: 0xb8, hi: 0xbf}, + // Block 0x63, offset 0x2b8 + {value: 0x0004, lo: 0x8b, hi: 0x8b}, + {value: 0x0014, lo: 0x8c, hi: 0x8f}, + {value: 0x0054, lo: 0x98, hi: 0x99}, + {value: 0x0054, lo: 0xa4, hi: 0xa4}, + {value: 0x0054, lo: 0xa7, hi: 0xa7}, + {value: 0x0014, lo: 0xaa, hi: 0xae}, + {value: 0x0010, lo: 0xaf, hi: 0xaf}, + {value: 0x0010, lo: 0xbf, hi: 0xbf}, + // Block 0x64, offset 0x2c0 + {value: 0x0010, lo: 0x80, hi: 0x80}, + {value: 0x0010, lo: 0x94, hi: 0x94}, + {value: 0x0014, lo: 0xa0, hi: 0xa4}, + {value: 0x0014, lo: 0xa6, hi: 0xaf}, + {value: 0x0015, lo: 0xb1, hi: 0xb1}, + {value: 0x0015, lo: 0xbf, hi: 0xbf}, + // Block 0x65, offset 0x2c6 + {value: 0x0015, lo: 0x90, hi: 0x9c}, + // Block 0x66, offset 0x2c7 + {value: 0x0024, lo: 0x90, hi: 0x91}, + {value: 0x0034, lo: 0x92, hi: 0x93}, + {value: 0x0024, lo: 0x94, hi: 0x97}, + {value: 0x0034, lo: 0x98, hi: 0x9a}, + {value: 0x0024, lo: 0x9b, hi: 0x9c}, + {value: 0x0014, lo: 0x9d, hi: 0xa0}, + {value: 0x0024, lo: 0xa1, hi: 0xa1}, + {value: 0x0014, lo: 0xa2, hi: 0xa4}, + {value: 0x0034, lo: 0xa5, hi: 0xa6}, + {value: 0x0024, lo: 0xa7, hi: 0xa7}, + {value: 0x0034, lo: 0xa8, hi: 0xa8}, + {value: 0x0024, lo: 0xa9, hi: 0xa9}, + {value: 0x0034, lo: 0xaa, hi: 0xaf}, + {value: 0x0024, lo: 0xb0, hi: 0xb0}, + // Block 0x67, offset 0x2d5 + {value: 0x0016, lo: 0x85, hi: 0x86}, + {value: 0x0012, lo: 0x87, hi: 0x89}, + {value: 0x9d52, lo: 0x8e, hi: 0x8e}, + {value: 0x1013, lo: 0xa0, hi: 0xaf}, + {value: 0x1012, lo: 0xb0, hi: 0xbf}, + // Block 0x68, offset 0x2da + {value: 0x0010, lo: 0x80, hi: 0x82}, + {value: 0x0716, lo: 0x83, hi: 0x84}, + {value: 0x0010, lo: 0x85, hi: 0x88}, + // Block 0x69, offset 0x2dd + {value: 0xa053, lo: 0xb6, hi: 0xb7}, + {value: 0xa353, lo: 0xb8, hi: 0xb9}, + {value: 0xa653, lo: 0xba, hi: 0xbb}, + {value: 0xa353, lo: 0xbc, hi: 0xbd}, + {value: 0xa053, lo: 0xbe, hi: 0xbf}, + // Block 0x6a, offset 0x2e2 + {value: 0x3013, lo: 0x80, hi: 0x8f}, + {value: 0x6553, lo: 0x90, hi: 0x9f}, + {value: 0xa953, lo: 0xa0, hi: 0xae}, + {value: 0x3012, lo: 0xb0, hi: 0xbf}, + // Block 0x6b, offset 0x2e6 + {value: 0x0117, lo: 0x80, hi: 0xa3}, + {value: 0x0012, lo: 0xa4, hi: 0xa4}, + {value: 0x0716, lo: 0xab, hi: 0xac}, + {value: 0x0316, lo: 0xad, hi: 0xae}, + {value: 0x0024, lo: 0xaf, hi: 0xb1}, + {value: 0x0117, lo: 0xb2, hi: 0xb3}, + // Block 0x6c, offset 0x2ec + {value: 0x6c52, lo: 0x80, hi: 0x9f}, + {value: 0x7052, lo: 0xa0, hi: 0xa5}, + {value: 0x7052, lo: 0xa7, hi: 0xa7}, + {value: 0x7052, lo: 0xad, hi: 0xad}, + {value: 0x0010, lo: 0xb0, hi: 0xbf}, + // Block 0x6d, offset 0x2f1 + {value: 0x0010, lo: 0x80, hi: 0xa7}, + {value: 0x0014, lo: 0xaf, hi: 0xaf}, + {value: 0x0034, lo: 0xbf, hi: 0xbf}, + // Block 0x6e, offset 0x2f4 + {value: 0x0010, lo: 0x80, hi: 0x96}, + {value: 0x0010, lo: 0xa0, hi: 0xa6}, + {value: 0x0010, lo: 0xa8, hi: 0xae}, + {value: 0x0010, lo: 0xb0, hi: 0xb6}, + {value: 0x0010, lo: 0xb8, hi: 0xbe}, + // Block 0x6f, offset 0x2f9 + {value: 0x0010, lo: 0x80, hi: 0x86}, + {value: 0x0010, lo: 0x88, hi: 0x8e}, + {value: 0x0010, lo: 0x90, hi: 0x96}, + {value: 0x0010, lo: 0x98, hi: 0x9e}, + {value: 0x0024, lo: 0xa0, hi: 0xbf}, + // Block 0x70, offset 0x2fe + {value: 0x0014, lo: 0xaf, hi: 0xaf}, + // Block 0x71, offset 0x2ff + {value: 0x0014, lo: 0x85, hi: 0x85}, + {value: 0x0034, lo: 0xaa, hi: 0xad}, + {value: 0x0030, lo: 0xae, hi: 0xaf}, + {value: 0x0004, lo: 0xb1, hi: 0xb5}, + {value: 0x0014, lo: 0xbb, hi: 0xbb}, + {value: 0x0010, lo: 0xbc, hi: 0xbc}, + // Block 0x72, offset 0x305 + {value: 0x0034, lo: 0x99, hi: 0x9a}, + {value: 0x0004, lo: 0x9b, hi: 0x9e}, + // Block 0x73, offset 0x307 + {value: 0x0004, lo: 0xbc, hi: 0xbe}, + // Block 0x74, offset 0x308 + {value: 0x0010, lo: 0x85, hi: 0xad}, + {value: 0x0010, lo: 0xb1, hi: 0xbf}, + // Block 0x75, offset 0x30a + {value: 0x0010, lo: 0x80, hi: 0x8e}, + {value: 0x0010, lo: 0xa0, hi: 0xba}, + // Block 0x76, offset 0x30c + {value: 0x0010, lo: 0x80, hi: 0x94}, + {value: 0x0014, lo: 0x95, hi: 0x95}, + {value: 0x0010, lo: 0x96, hi: 0xbf}, + // Block 0x77, offset 0x30f + {value: 0x0010, lo: 0x80, hi: 0x8c}, + // Block 0x78, offset 0x310 + {value: 0x0010, lo: 0x90, hi: 0xb7}, + {value: 0x0014, lo: 0xb8, hi: 0xbd}, + // Block 0x79, offset 0x312 + {value: 0x0010, lo: 0x80, hi: 0x8b}, + {value: 0x0014, lo: 0x8c, hi: 0x8c}, + {value: 0x0010, lo: 0x90, hi: 0xab}, + // Block 0x7a, offset 0x315 + {value: 0x0117, lo: 0x80, hi: 0xad}, + {value: 0x0010, lo: 0xae, hi: 0xae}, + {value: 0x0024, lo: 0xaf, hi: 0xaf}, + {value: 0x0014, lo: 0xb0, hi: 0xb2}, + {value: 0x0024, lo: 0xb4, hi: 0xbd}, + {value: 0x0014, lo: 0xbf, hi: 0xbf}, + // Block 0x7b, offset 0x31b + {value: 0x0117, lo: 0x80, hi: 0x9b}, + {value: 0x0015, lo: 0x9c, hi: 0x9d}, + {value: 0x0024, lo: 0x9e, hi: 0x9f}, + {value: 0x0010, lo: 0xa0, hi: 0xbf}, + // Block 0x7c, offset 0x31f + {value: 0x0010, lo: 0x80, hi: 0xaf}, + {value: 0x0024, lo: 0xb0, hi: 0xb1}, + // Block 0x7d, offset 0x321 + {value: 0x0004, lo: 0x80, hi: 0x96}, + {value: 0x0014, lo: 0x97, hi: 0x9f}, + {value: 0x0004, lo: 0xa0, hi: 0xa1}, + {value: 0x0117, lo: 0xa2, hi: 0xaf}, + {value: 0x0012, lo: 0xb0, hi: 0xb1}, + {value: 0x0117, lo: 0xb2, hi: 0xbf}, + // Block 0x7e, offset 0x327 + {value: 0x0117, lo: 0x80, hi: 0xaf}, + {value: 0x0015, lo: 0xb0, hi: 0xb0}, + {value: 0x0012, lo: 0xb1, hi: 0xb8}, + {value: 0x0316, lo: 0xb9, hi: 0xba}, + {value: 0x0716, lo: 0xbb, hi: 0xbc}, + {value: 0x8453, lo: 0xbd, hi: 0xbd}, + {value: 0x0117, lo: 0xbe, hi: 0xbf}, + // Block 0x7f, offset 0x32e + {value: 0x0010, lo: 0xb7, hi: 0xb7}, + {value: 0x0015, lo: 0xb8, hi: 0xb9}, + {value: 0x0012, lo: 0xba, hi: 0xba}, + {value: 0x0010, lo: 0xbb, hi: 0xbf}, + // Block 0x80, offset 0x332 + {value: 0x0010, lo: 0x80, hi: 0x81}, + {value: 0x0014, lo: 0x82, hi: 0x82}, + {value: 0x0010, lo: 0x83, hi: 0x85}, + {value: 0x0034, lo: 0x86, hi: 0x86}, + {value: 0x0010, lo: 0x87, hi: 0x8a}, + {value: 0x0014, lo: 0x8b, hi: 0x8b}, + {value: 0x0010, lo: 0x8c, hi: 0xa4}, + {value: 0x0014, lo: 0xa5, hi: 0xa6}, + {value: 0x0010, lo: 0xa7, hi: 0xa7}, + // Block 0x81, offset 0x33b + {value: 0x0010, lo: 0x80, hi: 0xb3}, + // Block 0x82, offset 0x33c + {value: 0x0010, lo: 0x80, hi: 0x83}, + {value: 0x0034, lo: 0x84, hi: 0x84}, + {value: 0x0014, lo: 0x85, hi: 0x85}, + {value: 0x0010, lo: 0x90, hi: 0x99}, + {value: 0x0024, lo: 0xa0, hi: 0xb1}, + {value: 0x0010, lo: 0xb2, hi: 0xb7}, + {value: 0x0010, lo: 0xbb, hi: 0xbb}, + {value: 0x0010, lo: 0xbd, hi: 0xbd}, + // Block 0x83, offset 0x344 + {value: 0x0010, lo: 0x80, hi: 0xa5}, + {value: 0x0014, lo: 0xa6, hi: 0xaa}, + {value: 0x0034, lo: 0xab, hi: 0xad}, + {value: 0x0010, lo: 0xb0, hi: 0xbf}, + // Block 0x84, offset 0x348 + {value: 0x0010, lo: 0x80, hi: 0x86}, + {value: 0x0014, lo: 0x87, hi: 0x91}, + {value: 0x0010, lo: 0x92, hi: 0x92}, + {value: 0x0030, lo: 0x93, hi: 0x93}, + {value: 0x0010, lo: 0xa0, hi: 0xbc}, + // Block 0x85, offset 0x34d + {value: 0x0014, lo: 0x80, hi: 0x82}, + {value: 0x0010, lo: 0x83, hi: 0xb2}, + {value: 0x0034, lo: 0xb3, hi: 0xb3}, + {value: 0x0010, lo: 0xb4, hi: 0xb5}, + {value: 0x0014, lo: 0xb6, hi: 0xb9}, + {value: 0x0010, lo: 0xba, hi: 0xbb}, + {value: 0x0014, lo: 0xbc, hi: 0xbc}, + {value: 0x0010, lo: 0xbd, hi: 0xbf}, + // Block 0x86, offset 0x355 + {value: 0x0030, lo: 0x80, hi: 0x80}, + {value: 0x0014, lo: 0x8f, hi: 0x8f}, + {value: 0x0010, lo: 0x90, hi: 0x99}, + {value: 0x0014, lo: 0xa5, hi: 0xa5}, + {value: 0x0004, lo: 0xa6, hi: 0xa6}, + {value: 0x0010, lo: 0xb0, hi: 0xb9}, + // Block 0x87, offset 0x35b + {value: 0x0010, lo: 0x80, hi: 0xa8}, + {value: 0x0014, lo: 0xa9, hi: 0xae}, + {value: 0x0010, lo: 0xaf, hi: 0xb0}, + {value: 0x0014, lo: 0xb1, hi: 0xb2}, + {value: 0x0010, lo: 0xb3, hi: 0xb4}, + {value: 0x0014, lo: 0xb5, hi: 0xb6}, + // Block 0x88, offset 0x361 + {value: 0x0010, lo: 0x80, hi: 0x82}, + {value: 0x0014, lo: 0x83, hi: 0x83}, + {value: 0x0010, lo: 0x84, hi: 0x8b}, + {value: 0x0014, lo: 0x8c, hi: 0x8c}, + {value: 0x0010, lo: 0x8d, hi: 0x8d}, + {value: 0x0010, lo: 0x90, hi: 0x99}, + {value: 0x0004, lo: 0xb0, hi: 0xb0}, + {value: 0x0010, lo: 0xbb, hi: 0xbb}, + {value: 0x0014, lo: 0xbc, hi: 0xbc}, + {value: 0x0010, lo: 0xbd, hi: 0xbd}, + // Block 0x89, offset 0x36b + {value: 0x0024, lo: 0xb0, hi: 0xb0}, + {value: 0x0024, lo: 0xb2, hi: 0xb3}, + {value: 0x0034, lo: 0xb4, hi: 0xb4}, + {value: 0x0024, lo: 0xb7, hi: 0xb8}, + {value: 0x0024, lo: 0xbe, hi: 0xbf}, + // Block 0x8a, offset 0x370 + {value: 0x0024, lo: 0x81, hi: 0x81}, + {value: 0x0004, lo: 0x9d, hi: 0x9d}, + {value: 0x0010, lo: 0xa0, hi: 0xab}, + {value: 0x0014, lo: 0xac, hi: 0xad}, + {value: 0x0010, lo: 0xae, hi: 0xaf}, + {value: 0x0010, lo: 0xb2, hi: 0xb2}, + {value: 0x0014, lo: 0xb3, hi: 0xb4}, + {value: 0x0010, lo: 0xb5, hi: 0xb5}, + {value: 0x0034, lo: 0xb6, hi: 0xb6}, + // Block 0x8b, offset 0x379 + {value: 0x0010, lo: 0x81, hi: 0x86}, + {value: 0x0010, lo: 0x89, hi: 0x8e}, + {value: 0x0010, lo: 0x91, hi: 0x96}, + {value: 0x0010, lo: 0xa0, hi: 0xa6}, + {value: 0x0010, lo: 0xa8, hi: 0xae}, + {value: 0x0012, lo: 0xb0, hi: 0xbf}, + // Block 0x8c, offset 0x37f + {value: 0x0012, lo: 0x80, hi: 0x92}, + {value: 0xac52, lo: 0x93, hi: 0x93}, + {value: 0x0012, lo: 0x94, hi: 0x9a}, + {value: 0x0004, lo: 0x9b, hi: 0x9b}, + {value: 0x0015, lo: 0x9c, hi: 0x9f}, + {value: 0x0012, lo: 0xa0, hi: 0xa5}, + {value: 0x74d2, lo: 0xb0, hi: 0xbf}, + // Block 0x8d, offset 0x386 + {value: 0x78d2, lo: 0x80, hi: 0x8f}, + {value: 0x7cd2, lo: 0x90, hi: 0x9f}, + {value: 0x80d2, lo: 0xa0, hi: 0xaf}, + {value: 0x7cd2, lo: 0xb0, hi: 0xbf}, + // Block 0x8e, offset 0x38a + {value: 0x0010, lo: 0x80, hi: 0xa4}, + {value: 0x0014, lo: 0xa5, hi: 0xa5}, + {value: 0x0010, lo: 0xa6, hi: 0xa7}, + {value: 0x0014, lo: 0xa8, hi: 0xa8}, + {value: 0x0010, lo: 0xa9, hi: 0xaa}, + {value: 0x0010, lo: 0xac, hi: 0xac}, + {value: 0x0034, lo: 0xad, hi: 0xad}, + {value: 0x0010, lo: 0xb0, hi: 0xb9}, + // Block 0x8f, offset 0x392 + {value: 0x0010, lo: 0x80, hi: 0xa3}, + {value: 0x0010, lo: 0xb0, hi: 0xbf}, + // Block 0x90, offset 0x394 + {value: 0x0010, lo: 0x80, hi: 0x86}, + {value: 0x0010, lo: 0x8b, hi: 0xbb}, + // Block 0x91, offset 0x396 + {value: 0x0010, lo: 0x80, hi: 0x81}, + {value: 0x0010, lo: 0x83, hi: 0x84}, + {value: 0x0010, lo: 0x86, hi: 0xbf}, + // Block 0x92, offset 0x399 + {value: 0x0010, lo: 0x80, hi: 0xb1}, + {value: 0x0004, lo: 0xb2, hi: 0xbf}, + // Block 0x93, offset 0x39b + {value: 0x0004, lo: 0x80, hi: 0x81}, + {value: 0x0010, lo: 0x93, hi: 0xbf}, + // Block 0x94, offset 0x39d + {value: 0x0010, lo: 0x80, hi: 0xbd}, + // Block 0x95, offset 0x39e + {value: 0x0010, lo: 0x90, hi: 0xbf}, + // Block 0x96, offset 0x39f + {value: 0x0010, lo: 0x80, hi: 0x8f}, + {value: 0x0010, lo: 0x92, hi: 0xbf}, + // Block 0x97, offset 0x3a1 + {value: 0x0010, lo: 0x80, hi: 0x87}, + {value: 0x0010, lo: 0xb0, hi: 0xbb}, + // Block 0x98, offset 0x3a3 + {value: 0x0014, lo: 0x80, hi: 0x8f}, + {value: 0x0054, lo: 0x93, hi: 0x93}, + {value: 0x0024, lo: 0xa0, hi: 0xa6}, + {value: 0x0034, lo: 0xa7, hi: 0xad}, + {value: 0x0024, lo: 0xae, hi: 0xaf}, + {value: 0x0010, lo: 0xb3, hi: 0xb4}, + // Block 0x99, offset 0x3a9 + {value: 0x0010, lo: 0x8d, hi: 0x8f}, + {value: 0x0054, lo: 0x92, hi: 0x92}, + {value: 0x0054, lo: 0x95, hi: 0x95}, + {value: 0x0010, lo: 0xb0, hi: 0xb4}, + {value: 0x0010, lo: 0xb6, hi: 0xbf}, + // Block 0x9a, offset 0x3ae + {value: 0x0010, lo: 0x80, hi: 0xbc}, + {value: 0x0014, lo: 0xbf, hi: 0xbf}, + // Block 0x9b, offset 0x3b0 + {value: 0x0054, lo: 0x87, hi: 0x87}, + {value: 0x0054, lo: 0x8e, hi: 0x8e}, + {value: 0x0054, lo: 0x9a, hi: 0x9a}, + {value: 0x5f53, lo: 0xa1, hi: 0xba}, + {value: 0x0004, lo: 0xbe, hi: 0xbe}, + {value: 0x0010, lo: 0xbf, hi: 0xbf}, + // Block 0x9c, offset 0x3b6 + {value: 0x0004, lo: 0x80, hi: 0x80}, + {value: 0x5f52, lo: 0x81, hi: 0x9a}, + {value: 0x0004, lo: 0xb0, hi: 0xb0}, + // Block 0x9d, offset 0x3b9 + {value: 0x0014, lo: 0x9e, hi: 0x9f}, + {value: 0x0010, lo: 0xa0, hi: 0xbe}, + // Block 0x9e, offset 0x3bb + {value: 0x0010, lo: 0x82, hi: 0x87}, + {value: 0x0010, lo: 0x8a, hi: 0x8f}, + {value: 0x0010, lo: 0x92, hi: 0x97}, + {value: 0x0010, lo: 0x9a, hi: 0x9c}, + {value: 0x0004, lo: 0xa3, hi: 0xa3}, + {value: 0x0014, lo: 0xb9, hi: 0xbb}, + // Block 0x9f, offset 0x3c1 + {value: 0x0010, lo: 0x80, hi: 0x8b}, + {value: 0x0010, lo: 0x8d, hi: 0xa6}, + {value: 0x0010, lo: 0xa8, hi: 0xba}, + {value: 0x0010, lo: 0xbc, hi: 0xbd}, + {value: 0x0010, lo: 0xbf, hi: 0xbf}, + // Block 0xa0, offset 0x3c6 + {value: 0x0010, lo: 0x80, hi: 0x8d}, + {value: 0x0010, lo: 0x90, hi: 0x9d}, + // Block 0xa1, offset 0x3c8 + {value: 0x0010, lo: 0x80, hi: 0xba}, + // Block 0xa2, offset 0x3c9 + {value: 0x0010, lo: 0x80, hi: 0xb4}, + // Block 0xa3, offset 0x3ca + {value: 0x0034, lo: 0xbd, hi: 0xbd}, + // Block 0xa4, offset 0x3cb + {value: 0x0010, lo: 0x80, hi: 0x9c}, + {value: 0x0010, lo: 0xa0, hi: 0xbf}, + // Block 0xa5, offset 0x3cd + {value: 0x0010, lo: 0x80, hi: 0x90}, + {value: 0x0034, lo: 0xa0, hi: 0xa0}, + // Block 0xa6, offset 0x3cf + {value: 0x0010, lo: 0x80, hi: 0x9f}, + {value: 0x0010, lo: 0xb0, hi: 0xbf}, + // Block 0xa7, offset 0x3d1 + {value: 0x0010, lo: 0x80, hi: 0x8a}, + {value: 0x0010, lo: 0x90, hi: 0xb5}, + {value: 0x0024, lo: 0xb6, hi: 0xba}, + // Block 0xa8, offset 0x3d4 + {value: 0x0010, lo: 0x80, hi: 0x9d}, + {value: 0x0010, lo: 0xa0, hi: 0xbf}, + // Block 0xa9, offset 0x3d6 + {value: 0x0010, lo: 0x80, hi: 0x83}, + {value: 0x0010, lo: 0x88, hi: 0x8f}, + {value: 0x0010, lo: 0x91, hi: 0x95}, + // Block 0xaa, offset 0x3d9 + {value: 0x2813, lo: 0x80, hi: 0x87}, + {value: 0x3813, lo: 0x88, hi: 0x8f}, + {value: 0x2813, lo: 0x90, hi: 0x97}, + {value: 0xaf53, lo: 0x98, hi: 0x9f}, + {value: 0xb253, lo: 0xa0, hi: 0xa7}, + {value: 0x2812, lo: 0xa8, hi: 0xaf}, + {value: 0x3812, lo: 0xb0, hi: 0xb7}, + {value: 0x2812, lo: 0xb8, hi: 0xbf}, + // Block 0xab, offset 0x3e1 + {value: 0xaf52, lo: 0x80, hi: 0x87}, + {value: 0xb252, lo: 0x88, hi: 0x8f}, + {value: 0x0010, lo: 0x90, hi: 0xbf}, + // Block 0xac, offset 0x3e4 + {value: 0x0010, lo: 0x80, hi: 0x9d}, + {value: 0x0010, lo: 0xa0, hi: 0xa9}, + {value: 0xb253, lo: 0xb0, hi: 0xb7}, + {value: 0xaf53, lo: 0xb8, hi: 0xbf}, + // Block 0xad, offset 0x3e8 + {value: 0x2813, lo: 0x80, hi: 0x87}, + {value: 0x3813, lo: 0x88, hi: 0x8f}, + {value: 0x2813, lo: 0x90, hi: 0x93}, + {value: 0xb252, lo: 0x98, hi: 0x9f}, + {value: 0xaf52, lo: 0xa0, hi: 0xa7}, + {value: 0x2812, lo: 0xa8, hi: 0xaf}, + {value: 0x3812, lo: 0xb0, hi: 0xb7}, + {value: 0x2812, lo: 0xb8, hi: 0xbb}, + // Block 0xae, offset 0x3f0 + {value: 0x0010, lo: 0x80, hi: 0xa7}, + {value: 0x0010, lo: 0xb0, hi: 0xbf}, + // Block 0xaf, offset 0x3f2 + {value: 0x0010, lo: 0x80, hi: 0xa3}, + // Block 0xb0, offset 0x3f3 + {value: 0x0010, lo: 0x80, hi: 0xb6}, + // Block 0xb1, offset 0x3f4 + {value: 0x0010, lo: 0x80, hi: 0x95}, + {value: 0x0010, lo: 0xa0, hi: 0xa7}, + // Block 0xb2, offset 0x3f6 + {value: 0x0010, lo: 0x80, hi: 0x85}, + {value: 0x0010, lo: 0x88, hi: 0x88}, + {value: 0x0010, lo: 0x8a, hi: 0xb5}, + {value: 0x0010, lo: 0xb7, hi: 0xb8}, + {value: 0x0010, lo: 0xbc, hi: 0xbc}, + {value: 0x0010, lo: 0xbf, hi: 0xbf}, + // Block 0xb3, offset 0x3fc + {value: 0x0010, lo: 0x80, hi: 0x95}, + {value: 0x0010, lo: 0xa0, hi: 0xb6}, + // Block 0xb4, offset 0x3fe + {value: 0x0010, lo: 0x80, hi: 0x9e}, + // Block 0xb5, offset 0x3ff + {value: 0x0010, lo: 0xa0, hi: 0xb2}, + {value: 0x0010, lo: 0xb4, hi: 0xb5}, + // Block 0xb6, offset 0x401 + {value: 0x0010, lo: 0x80, hi: 0x95}, + {value: 0x0010, lo: 0xa0, hi: 0xb9}, + // Block 0xb7, offset 0x403 + {value: 0x0010, lo: 0x80, hi: 0xb7}, + {value: 0x0010, lo: 0xbe, hi: 0xbf}, + // Block 0xb8, offset 0x405 + {value: 0x0010, lo: 0x80, hi: 0x80}, + {value: 0x0014, lo: 0x81, hi: 0x83}, + {value: 0x0014, lo: 0x85, hi: 0x86}, + {value: 0x0014, lo: 0x8c, hi: 0x8c}, + {value: 0x0034, lo: 0x8d, hi: 0x8d}, + {value: 0x0014, lo: 0x8e, hi: 0x8e}, + {value: 0x0024, lo: 0x8f, hi: 0x8f}, + {value: 0x0010, lo: 0x90, hi: 0x93}, + {value: 0x0010, lo: 0x95, hi: 0x97}, + {value: 0x0010, lo: 0x99, hi: 0xb3}, + {value: 0x0024, lo: 0xb8, hi: 0xb8}, + {value: 0x0034, lo: 0xb9, hi: 0xba}, + {value: 0x0034, lo: 0xbf, hi: 0xbf}, + // Block 0xb9, offset 0x412 + {value: 0x0010, lo: 0xa0, hi: 0xbc}, + // Block 0xba, offset 0x413 + {value: 0x0010, lo: 0x80, hi: 0x9c}, + // Block 0xbb, offset 0x414 + {value: 0x0010, lo: 0x80, hi: 0x87}, + {value: 0x0010, lo: 0x89, hi: 0xa4}, + {value: 0x0024, lo: 0xa5, hi: 0xa5}, + {value: 0x0034, lo: 0xa6, hi: 0xa6}, + // Block 0xbc, offset 0x418 + {value: 0x0010, lo: 0x80, hi: 0x95}, + {value: 0x0010, lo: 0xa0, hi: 0xb2}, + // Block 0xbd, offset 0x41a + {value: 0x0010, lo: 0x80, hi: 0x91}, + // Block 0xbe, offset 0x41b + {value: 0x0010, lo: 0x80, hi: 0x88}, + // Block 0xbf, offset 0x41c + {value: 0x5653, lo: 0x80, hi: 0xb2}, + // Block 0xc0, offset 0x41d + {value: 0x5652, lo: 0x80, hi: 0xb2}, + // Block 0xc1, offset 0x41e + {value: 0x0010, lo: 0x80, hi: 0x80}, + {value: 0x0014, lo: 0x81, hi: 0x81}, + {value: 0x0010, lo: 0x82, hi: 0xb7}, + {value: 0x0014, lo: 0xb8, hi: 0xbf}, + // Block 0xc2, offset 0x422 + {value: 0x0014, lo: 0x80, hi: 0x85}, + {value: 0x0034, lo: 0x86, hi: 0x86}, + {value: 0x0010, lo: 0xa6, hi: 0xaf}, + {value: 0x0034, lo: 0xbf, hi: 0xbf}, + // Block 0xc3, offset 0x426 + {value: 0x0014, lo: 0x80, hi: 0x81}, + {value: 0x0010, lo: 0x82, hi: 0xb2}, + {value: 0x0014, lo: 0xb3, hi: 0xb6}, + {value: 0x0010, lo: 0xb7, hi: 0xb8}, + {value: 0x0034, lo: 0xb9, hi: 0xba}, + {value: 0x0014, lo: 0xbd, hi: 0xbd}, + // Block 0xc4, offset 0x42c + {value: 0x0010, lo: 0x90, hi: 0xa8}, + {value: 0x0010, lo: 0xb0, hi: 0xb9}, + // Block 0xc5, offset 0x42e + {value: 0x0024, lo: 0x80, hi: 0x82}, + {value: 0x0010, lo: 0x83, hi: 0xa6}, + {value: 0x0014, lo: 0xa7, hi: 0xab}, + {value: 0x0010, lo: 0xac, hi: 0xac}, + {value: 0x0014, lo: 0xad, hi: 0xb2}, + {value: 0x0034, lo: 0xb3, hi: 0xb4}, + {value: 0x0010, lo: 0xb6, hi: 0xbf}, + // Block 0xc6, offset 0x435 + {value: 0x0010, lo: 0x90, hi: 0xb2}, + {value: 0x0034, lo: 0xb3, hi: 0xb3}, + {value: 0x0010, lo: 0xb6, hi: 0xb6}, + // Block 0xc7, offset 0x438 + {value: 0x0014, lo: 0x80, hi: 0x81}, + {value: 0x0010, lo: 0x82, hi: 0xb5}, + {value: 0x0014, lo: 0xb6, hi: 0xbe}, + {value: 0x0010, lo: 0xbf, hi: 0xbf}, + // Block 0xc8, offset 0x43c + {value: 0x0030, lo: 0x80, hi: 0x80}, + {value: 0x0010, lo: 0x81, hi: 0x84}, + {value: 0x0034, lo: 0x8a, hi: 0x8a}, + {value: 0x0014, lo: 0x8b, hi: 0x8c}, + {value: 0x0010, lo: 0x90, hi: 0x9a}, + {value: 0x0010, lo: 0x9c, hi: 0x9c}, + // Block 0xc9, offset 0x442 + {value: 0x0010, lo: 0x80, hi: 0x91}, + {value: 0x0010, lo: 0x93, hi: 0xae}, + {value: 0x0014, lo: 0xaf, hi: 0xb1}, + {value: 0x0010, lo: 0xb2, hi: 0xb3}, + {value: 0x0014, lo: 0xb4, hi: 0xb4}, + {value: 0x0030, lo: 0xb5, hi: 0xb5}, + {value: 0x0034, lo: 0xb6, hi: 0xb6}, + {value: 0x0014, lo: 0xb7, hi: 0xb7}, + {value: 0x0014, lo: 0xbe, hi: 0xbe}, + // Block 0xca, offset 0x44b + {value: 0x0010, lo: 0x80, hi: 0x86}, + {value: 0x0010, lo: 0x88, hi: 0x88}, + {value: 0x0010, lo: 0x8a, hi: 0x8d}, + {value: 0x0010, lo: 0x8f, hi: 0x9d}, + {value: 0x0010, lo: 0x9f, hi: 0xa8}, + {value: 0x0010, lo: 0xb0, hi: 0xbf}, + // Block 0xcb, offset 0x451 + {value: 0x0010, lo: 0x80, hi: 0x9e}, + {value: 0x0014, lo: 0x9f, hi: 0x9f}, + {value: 0x0010, lo: 0xa0, hi: 0xa2}, + {value: 0x0014, lo: 0xa3, hi: 0xa8}, + {value: 0x0034, lo: 0xa9, hi: 0xaa}, + {value: 0x0010, lo: 0xb0, hi: 0xb9}, + // Block 0xcc, offset 0x457 + {value: 0x0014, lo: 0x80, hi: 0x81}, + {value: 0x0010, lo: 0x82, hi: 0x83}, + {value: 0x0010, lo: 0x85, hi: 0x8c}, + {value: 0x0010, lo: 0x8f, hi: 0x90}, + {value: 0x0010, lo: 0x93, hi: 0xa8}, + {value: 0x0010, lo: 0xaa, hi: 0xb0}, + {value: 0x0010, lo: 0xb2, hi: 0xb3}, + {value: 0x0010, lo: 0xb5, hi: 0xb9}, + {value: 0x0034, lo: 0xbc, hi: 0xbc}, + {value: 0x0010, lo: 0xbd, hi: 0xbf}, + // Block 0xcd, offset 0x461 + {value: 0x0014, lo: 0x80, hi: 0x80}, + {value: 0x0010, lo: 0x81, hi: 0x84}, + {value: 0x0010, lo: 0x87, hi: 0x88}, + {value: 0x0010, lo: 0x8b, hi: 0x8c}, + {value: 0x0030, lo: 0x8d, hi: 0x8d}, + {value: 0x0010, lo: 0x90, hi: 0x90}, + {value: 0x0010, lo: 0x97, hi: 0x97}, + {value: 0x0010, lo: 0x9d, hi: 0xa3}, + {value: 0x0024, lo: 0xa6, hi: 0xac}, + {value: 0x0024, lo: 0xb0, hi: 0xb4}, + // Block 0xce, offset 0x46b + {value: 0x0010, lo: 0x80, hi: 0xb7}, + {value: 0x0014, lo: 0xb8, hi: 0xbf}, + // Block 0xcf, offset 0x46d + {value: 0x0010, lo: 0x80, hi: 0x81}, + {value: 0x0034, lo: 0x82, hi: 0x82}, + {value: 0x0014, lo: 0x83, hi: 0x84}, + {value: 0x0010, lo: 0x85, hi: 0x85}, + {value: 0x0034, lo: 0x86, hi: 0x86}, + {value: 0x0010, lo: 0x87, hi: 0x8a}, + {value: 0x0010, lo: 0x90, hi: 0x99}, + // Block 0xd0, offset 0x474 + {value: 0x0010, lo: 0x80, hi: 0xb2}, + {value: 0x0014, lo: 0xb3, hi: 0xb8}, + {value: 0x0010, lo: 0xb9, hi: 0xb9}, + {value: 0x0014, lo: 0xba, hi: 0xba}, + {value: 0x0010, lo: 0xbb, hi: 0xbe}, + {value: 0x0014, lo: 0xbf, hi: 0xbf}, + // Block 0xd1, offset 0x47a + {value: 0x0014, lo: 0x80, hi: 0x80}, + {value: 0x0010, lo: 0x81, hi: 0x81}, + {value: 0x0034, lo: 0x82, hi: 0x83}, + {value: 0x0010, lo: 0x84, hi: 0x85}, + {value: 0x0010, lo: 0x87, hi: 0x87}, + {value: 0x0010, lo: 0x90, hi: 0x99}, + // Block 0xd2, offset 0x480 + {value: 0x0010, lo: 0x80, hi: 0xb1}, + {value: 0x0014, lo: 0xb2, hi: 0xb5}, + {value: 0x0010, lo: 0xb8, hi: 0xbb}, + {value: 0x0014, lo: 0xbc, hi: 0xbd}, + {value: 0x0010, lo: 0xbe, hi: 0xbe}, + {value: 0x0034, lo: 0xbf, hi: 0xbf}, + // Block 0xd3, offset 0x486 + {value: 0x0034, lo: 0x80, hi: 0x80}, + {value: 0x0010, lo: 0x98, hi: 0x9b}, + {value: 0x0014, lo: 0x9c, hi: 0x9d}, + // Block 0xd4, offset 0x489 + {value: 0x0010, lo: 0x80, hi: 0xb2}, + {value: 0x0014, lo: 0xb3, hi: 0xba}, + {value: 0x0010, lo: 0xbb, hi: 0xbc}, + {value: 0x0014, lo: 0xbd, hi: 0xbd}, + {value: 0x0010, lo: 0xbe, hi: 0xbe}, + {value: 0x0034, lo: 0xbf, hi: 0xbf}, + // Block 0xd5, offset 0x48f + {value: 0x0014, lo: 0x80, hi: 0x80}, + {value: 0x0010, lo: 0x84, hi: 0x84}, + {value: 0x0010, lo: 0x90, hi: 0x99}, + // Block 0xd6, offset 0x492 + {value: 0x0010, lo: 0x80, hi: 0xaa}, + {value: 0x0014, lo: 0xab, hi: 0xab}, + {value: 0x0010, lo: 0xac, hi: 0xac}, + {value: 0x0014, lo: 0xad, hi: 0xad}, + {value: 0x0010, lo: 0xae, hi: 0xaf}, + {value: 0x0014, lo: 0xb0, hi: 0xb5}, + {value: 0x0030, lo: 0xb6, hi: 0xb6}, + {value: 0x0034, lo: 0xb7, hi: 0xb7}, + // Block 0xd7, offset 0x49a + {value: 0x0010, lo: 0x80, hi: 0x89}, + // Block 0xd8, offset 0x49b + {value: 0x0014, lo: 0x9d, hi: 0x9f}, + {value: 0x0010, lo: 0xa0, hi: 0xa1}, + {value: 0x0014, lo: 0xa2, hi: 0xa5}, + {value: 0x0010, lo: 0xa6, hi: 0xa6}, + {value: 0x0014, lo: 0xa7, hi: 0xaa}, + {value: 0x0034, lo: 0xab, hi: 0xab}, + {value: 0x0010, lo: 0xb0, hi: 0xb9}, + // Block 0xd9, offset 0x4a2 + {value: 0x5f53, lo: 0xa0, hi: 0xbf}, + // Block 0xda, offset 0x4a3 + {value: 0x5f52, lo: 0x80, hi: 0x9f}, + {value: 0x0010, lo: 0xa0, hi: 0xa9}, + {value: 0x0010, lo: 0xbf, hi: 0xbf}, + // Block 0xdb, offset 0x4a6 + {value: 0x0010, lo: 0x80, hi: 0xb8}, + // Block 0xdc, offset 0x4a7 + {value: 0x0010, lo: 0x80, hi: 0x88}, + {value: 0x0010, lo: 0x8a, hi: 0xaf}, + {value: 0x0014, lo: 0xb0, hi: 0xb6}, + {value: 0x0014, lo: 0xb8, hi: 0xbd}, + {value: 0x0010, lo: 0xbe, hi: 0xbe}, + {value: 0x0034, lo: 0xbf, hi: 0xbf}, + // Block 0xdd, offset 0x4ad + {value: 0x0010, lo: 0x80, hi: 0x80}, + {value: 0x0010, lo: 0x90, hi: 0x99}, + {value: 0x0010, lo: 0xb2, hi: 0xbf}, + // Block 0xde, offset 0x4b0 + {value: 0x0010, lo: 0x80, hi: 0x8f}, + {value: 0x0014, lo: 0x92, hi: 0xa7}, + {value: 0x0010, lo: 0xa9, hi: 0xa9}, + {value: 0x0014, lo: 0xaa, hi: 0xb0}, + {value: 0x0010, lo: 0xb1, hi: 0xb1}, + {value: 0x0014, lo: 0xb2, hi: 0xb3}, + {value: 0x0010, lo: 0xb4, hi: 0xb4}, + {value: 0x0014, lo: 0xb5, hi: 0xb6}, + // Block 0xdf, offset 0x4b8 + {value: 0x0010, lo: 0x80, hi: 0x99}, + // Block 0xe0, offset 0x4b9 + {value: 0x0010, lo: 0x80, hi: 0xae}, + // Block 0xe1, offset 0x4ba + {value: 0x0010, lo: 0x80, hi: 0x83}, + // Block 0xe2, offset 0x4bb + {value: 0x0010, lo: 0x80, hi: 0x86}, + // Block 0xe3, offset 0x4bc + {value: 0x0010, lo: 0x80, hi: 0x9e}, + {value: 0x0010, lo: 0xa0, hi: 0xa9}, + // Block 0xe4, offset 0x4be + {value: 0x0010, lo: 0x90, hi: 0xad}, + {value: 0x0034, lo: 0xb0, hi: 0xb4}, + // Block 0xe5, offset 0x4c0 + {value: 0x0010, lo: 0x80, hi: 0xaf}, + {value: 0x0024, lo: 0xb0, hi: 0xb6}, + // Block 0xe6, offset 0x4c2 + {value: 0x0014, lo: 0x80, hi: 0x83}, + {value: 0x0010, lo: 0x90, hi: 0x99}, + {value: 0x0010, lo: 0xa3, hi: 0xb7}, + {value: 0x0010, lo: 0xbd, hi: 0xbf}, + // Block 0xe7, offset 0x4c6 + {value: 0x0010, lo: 0x80, hi: 0x8f}, + // Block 0xe8, offset 0x4c7 + {value: 0x0010, lo: 0x80, hi: 0x84}, + {value: 0x0010, lo: 0x90, hi: 0xbe}, + // Block 0xe9, offset 0x4c9 + {value: 0x0014, lo: 0x8f, hi: 0x9f}, + // Block 0xea, offset 0x4ca + {value: 0x0014, lo: 0xa0, hi: 0xa0}, + // Block 0xeb, offset 0x4cb + {value: 0x0010, lo: 0x80, hi: 0xaa}, + {value: 0x0010, lo: 0xb0, hi: 0xbc}, + // Block 0xec, offset 0x4cd + {value: 0x0010, lo: 0x80, hi: 0x88}, + {value: 0x0010, lo: 0x90, hi: 0x99}, + {value: 0x0014, lo: 0x9d, hi: 0x9d}, + {value: 0x0034, lo: 0x9e, hi: 0x9e}, + {value: 0x0014, lo: 0xa0, hi: 0xa3}, + // Block 0xed, offset 0x4d2 + {value: 0x0030, lo: 0xa5, hi: 0xa6}, + {value: 0x0034, lo: 0xa7, hi: 0xa9}, + {value: 0x0030, lo: 0xad, hi: 0xb2}, + {value: 0x0014, lo: 0xb3, hi: 0xba}, + {value: 0x0034, lo: 0xbb, hi: 0xbf}, + // Block 0xee, offset 0x4d7 + {value: 0x0034, lo: 0x80, hi: 0x82}, + {value: 0x0024, lo: 0x85, hi: 0x89}, + {value: 0x0034, lo: 0x8a, hi: 0x8b}, + {value: 0x0024, lo: 0xaa, hi: 0xad}, + // Block 0xef, offset 0x4db + {value: 0x0024, lo: 0x82, hi: 0x84}, + // Block 0xf0, offset 0x4dc + {value: 0x0013, lo: 0x80, hi: 0x99}, + {value: 0x0012, lo: 0x9a, hi: 0xb3}, + {value: 0x0013, lo: 0xb4, hi: 0xbf}, + // Block 0xf1, offset 0x4df + {value: 0x0013, lo: 0x80, hi: 0x8d}, + {value: 0x0012, lo: 0x8e, hi: 0x94}, + {value: 0x0012, lo: 0x96, hi: 0xa7}, + {value: 0x0013, lo: 0xa8, hi: 0xbf}, + // Block 0xf2, offset 0x4e3 + {value: 0x0013, lo: 0x80, hi: 0x81}, + {value: 0x0012, lo: 0x82, hi: 0x9b}, + {value: 0x0013, lo: 0x9c, hi: 0x9c}, + {value: 0x0013, lo: 0x9e, hi: 0x9f}, + {value: 0x0013, lo: 0xa2, hi: 0xa2}, + {value: 0x0013, lo: 0xa5, hi: 0xa6}, + {value: 0x0013, lo: 0xa9, hi: 0xac}, + {value: 0x0013, lo: 0xae, hi: 0xb5}, + {value: 0x0012, lo: 0xb6, hi: 0xb9}, + {value: 0x0012, lo: 0xbb, hi: 0xbb}, + {value: 0x0012, lo: 0xbd, hi: 0xbf}, + // Block 0xf3, offset 0x4ee + {value: 0x0012, lo: 0x80, hi: 0x83}, + {value: 0x0012, lo: 0x85, hi: 0x8f}, + {value: 0x0013, lo: 0x90, hi: 0xa9}, + {value: 0x0012, lo: 0xaa, hi: 0xbf}, + // Block 0xf4, offset 0x4f2 + {value: 0x0012, lo: 0x80, hi: 0x83}, + {value: 0x0013, lo: 0x84, hi: 0x85}, + {value: 0x0013, lo: 0x87, hi: 0x8a}, + {value: 0x0013, lo: 0x8d, hi: 0x94}, + {value: 0x0013, lo: 0x96, hi: 0x9c}, + {value: 0x0012, lo: 0x9e, hi: 0xb7}, + {value: 0x0013, lo: 0xb8, hi: 0xb9}, + {value: 0x0013, lo: 0xbb, hi: 0xbe}, + // Block 0xf5, offset 0x4fa + {value: 0x0013, lo: 0x80, hi: 0x84}, + {value: 0x0013, lo: 0x86, hi: 0x86}, + {value: 0x0013, lo: 0x8a, hi: 0x90}, + {value: 0x0012, lo: 0x92, hi: 0xab}, + {value: 0x0013, lo: 0xac, hi: 0xbf}, + // Block 0xf6, offset 0x4ff + {value: 0x0013, lo: 0x80, hi: 0x85}, + {value: 0x0012, lo: 0x86, hi: 0x9f}, + {value: 0x0013, lo: 0xa0, hi: 0xb9}, + {value: 0x0012, lo: 0xba, hi: 0xbf}, + // Block 0xf7, offset 0x503 + {value: 0x0012, lo: 0x80, hi: 0x93}, + {value: 0x0013, lo: 0x94, hi: 0xad}, + {value: 0x0012, lo: 0xae, hi: 0xbf}, + // Block 0xf8, offset 0x506 + {value: 0x0012, lo: 0x80, hi: 0x87}, + {value: 0x0013, lo: 0x88, hi: 0xa1}, + {value: 0x0012, lo: 0xa2, hi: 0xbb}, + {value: 0x0013, lo: 0xbc, hi: 0xbf}, + // Block 0xf9, offset 0x50a + {value: 0x0013, lo: 0x80, hi: 0x95}, + {value: 0x0012, lo: 0x96, hi: 0xaf}, + {value: 0x0013, lo: 0xb0, hi: 0xbf}, + // Block 0xfa, offset 0x50d + {value: 0x0013, lo: 0x80, hi: 0x89}, + {value: 0x0012, lo: 0x8a, hi: 0xa5}, + {value: 0x0013, lo: 0xa8, hi: 0xbf}, + // Block 0xfb, offset 0x510 + {value: 0x0013, lo: 0x80, hi: 0x80}, + {value: 0x0012, lo: 0x82, hi: 0x9a}, + {value: 0x0012, lo: 0x9c, hi: 0xa1}, + {value: 0x0013, lo: 0xa2, hi: 0xba}, + {value: 0x0012, lo: 0xbc, hi: 0xbf}, + // Block 0xfc, offset 0x515 + {value: 0x0012, lo: 0x80, hi: 0x94}, + {value: 0x0012, lo: 0x96, hi: 0x9b}, + {value: 0x0013, lo: 0x9c, hi: 0xb4}, + {value: 0x0012, lo: 0xb6, hi: 0xbf}, + // Block 0xfd, offset 0x519 + {value: 0x0012, lo: 0x80, hi: 0x8e}, + {value: 0x0012, lo: 0x90, hi: 0x95}, + {value: 0x0013, lo: 0x96, hi: 0xae}, + {value: 0x0012, lo: 0xb0, hi: 0xbf}, + // Block 0xfe, offset 0x51d + {value: 0x0012, lo: 0x80, hi: 0x88}, + {value: 0x0012, lo: 0x8a, hi: 0x8f}, + {value: 0x0013, lo: 0x90, hi: 0xa8}, + {value: 0x0012, lo: 0xaa, hi: 0xbf}, + // Block 0xff, offset 0x521 + {value: 0x0012, lo: 0x80, hi: 0x82}, + {value: 0x0012, lo: 0x84, hi: 0x89}, + {value: 0x0017, lo: 0x8a, hi: 0x8b}, + {value: 0x0010, lo: 0x8e, hi: 0xbf}, + // Block 0x100, offset 0x525 + {value: 0x0014, lo: 0x80, hi: 0xb6}, + {value: 0x0014, lo: 0xbb, hi: 0xbf}, + // Block 0x101, offset 0x527 + {value: 0x0014, lo: 0x80, hi: 0xac}, + {value: 0x0014, lo: 0xb5, hi: 0xb5}, + // Block 0x102, offset 0x529 + {value: 0x0014, lo: 0x84, hi: 0x84}, + {value: 0x0014, lo: 0x9b, hi: 0x9f}, + {value: 0x0014, lo: 0xa1, hi: 0xaf}, + // Block 0x103, offset 0x52c + {value: 0x0024, lo: 0x80, hi: 0x86}, + {value: 0x0024, lo: 0x88, hi: 0x98}, + {value: 0x0024, lo: 0x9b, hi: 0xa1}, + {value: 0x0024, lo: 0xa3, hi: 0xa4}, + {value: 0x0024, lo: 0xa6, hi: 0xaa}, + // Block 0x104, offset 0x531 + {value: 0x0010, lo: 0x80, hi: 0x84}, + {value: 0x0034, lo: 0x90, hi: 0x96}, + // Block 0x105, offset 0x533 + {value: 0xb552, lo: 0x80, hi: 0x81}, + {value: 0xb852, lo: 0x82, hi: 0x83}, + {value: 0x0024, lo: 0x84, hi: 0x89}, + {value: 0x0034, lo: 0x8a, hi: 0x8a}, + {value: 0x0010, lo: 0x90, hi: 0x99}, + // Block 0x106, offset 0x538 + {value: 0x0010, lo: 0x80, hi: 0x83}, + {value: 0x0010, lo: 0x85, hi: 0x9f}, + {value: 0x0010, lo: 0xa1, hi: 0xa2}, + {value: 0x0010, lo: 0xa4, hi: 0xa4}, + {value: 0x0010, lo: 0xa7, hi: 0xa7}, + {value: 0x0010, lo: 0xa9, hi: 0xb2}, + {value: 0x0010, lo: 0xb4, hi: 0xb7}, + {value: 0x0010, lo: 0xb9, hi: 0xb9}, + {value: 0x0010, lo: 0xbb, hi: 0xbb}, + // Block 0x107, offset 0x541 + {value: 0x0010, lo: 0x80, hi: 0x89}, + {value: 0x0010, lo: 0x8b, hi: 0x9b}, + {value: 0x0010, lo: 0xa1, hi: 0xa3}, + {value: 0x0010, lo: 0xa5, hi: 0xa9}, + {value: 0x0010, lo: 0xab, hi: 0xbb}, + // Block 0x108, offset 0x546 + {value: 0x0013, lo: 0xb0, hi: 0xbf}, + // Block 0x109, offset 0x547 + {value: 0x0013, lo: 0x80, hi: 0x89}, + {value: 0x0013, lo: 0x90, hi: 0xa9}, + {value: 0x0013, lo: 0xb0, hi: 0xbf}, + // Block 0x10a, offset 0x54a + {value: 0x0013, lo: 0x80, hi: 0x89}, + // Block 0x10b, offset 0x54b + {value: 0x0004, lo: 0xbb, hi: 0xbf}, + // Block 0x10c, offset 0x54c + {value: 0x0014, lo: 0x81, hi: 0x81}, + {value: 0x0014, lo: 0xa0, hi: 0xbf}, + // Block 0x10d, offset 0x54e + {value: 0x0014, lo: 0x80, hi: 0xbf}, + // Block 0x10e, offset 0x54f + {value: 0x0014, lo: 0x80, hi: 0xaf}, +} + +// Total table size 13811 bytes (13KiB); checksum: 4CC48DA3 diff --git a/vendor/golang.org/x/text/cases/trieval.go b/vendor/golang.org/x/text/cases/trieval.go new file mode 100644 index 00000000000..fb221f843f4 --- /dev/null +++ b/vendor/golang.org/x/text/cases/trieval.go @@ -0,0 +1,215 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +package cases + +// This file contains definitions for interpreting the trie value of the case +// trie generated by "go run gen*.go". It is shared by both the generator +// program and the resultant package. Sharing is achieved by the generator +// copying gen_trieval.go to trieval.go and changing what's above this comment. + +// info holds case information for a single rune. It is the value returned +// by a trie lookup. Most mapping information can be stored in a single 16-bit +// value. If not, for example when a rune is mapped to multiple runes, the value +// stores some basic case data and an index into an array with additional data. +// +// The per-rune values have the following format: +// +// if (exception) { +// 15..5 unsigned exception index +// 4 unused +// } else { +// 15..8 XOR pattern or index to XOR pattern for case mapping +// Only 13..8 are used for XOR patterns. +// 7 inverseFold (fold to upper, not to lower) +// 6 index: interpret the XOR pattern as an index +// or isMid if case mode is cIgnorableUncased. +// 5..4 CCC: zero (normal or break), above or other +// } +// 3 exception: interpret this value as an exception index +// (TODO: is this bit necessary? Probably implied from case mode.) +// 2..0 case mode +// +// For the non-exceptional cases, a rune must be either uncased, lowercase or +// uppercase. If the rune is cased, the XOR pattern maps either a lowercase +// rune to uppercase or an uppercase rune to lowercase (applied to the 10 +// least-significant bits of the rune). +// +// See the definitions below for a more detailed description of the various +// bits. +type info uint16 + +const ( + casedMask = 0x0003 + fullCasedMask = 0x0007 + ignorableMask = 0x0006 + ignorableValue = 0x0004 + + inverseFoldBit = 1 << 7 + isMidBit = 1 << 6 + + exceptionBit = 1 << 3 + exceptionShift = 5 + numExceptionBits = 11 + + xorIndexBit = 1 << 6 + xorShift = 8 + + // There is no mapping if all xor bits and the exception bit are zero. + hasMappingMask = 0xff80 | exceptionBit +) + +// The case mode bits encodes the case type of a rune. This includes uncased, +// title, upper and lower case and case ignorable. (For a definition of these +// terms see Chapter 3 of The Unicode Standard Core Specification.) In some rare +// cases, a rune can be both cased and case-ignorable. This is encoded by +// cIgnorableCased. A rune of this type is always lower case. Some runes are +// cased while not having a mapping. +// +// A common pattern for scripts in the Unicode standard is for upper and lower +// case runes to alternate for increasing rune values (e.g. the accented Latin +// ranges starting from U+0100 and U+1E00 among others and some Cyrillic +// characters). We use this property by defining a cXORCase mode, where the case +// mode (always upper or lower case) is derived from the rune value. As the XOR +// pattern for case mappings is often identical for successive runes, using +// cXORCase can result in large series of identical trie values. This, in turn, +// allows us to better compress the trie blocks. +const ( + cUncased info = iota // 000 + cTitle // 001 + cLower // 010 + cUpper // 011 + cIgnorableUncased // 100 + cIgnorableCased // 101 // lower case if mappings exist + cXORCase // 11x // case is cLower | ((rune&1) ^ x) + + maxCaseMode = cUpper +) + +func (c info) isCased() bool { + return c&casedMask != 0 +} + +func (c info) isCaseIgnorable() bool { + return c&ignorableMask == ignorableValue +} + +func (c info) isNotCasedAndNotCaseIgnorable() bool { + return c&fullCasedMask == 0 +} + +func (c info) isCaseIgnorableAndNotCased() bool { + return c&fullCasedMask == cIgnorableUncased +} + +func (c info) isMid() bool { + return c&(fullCasedMask|isMidBit) == isMidBit|cIgnorableUncased +} + +// The case mapping implementation will need to know about various Canonical +// Combining Class (CCC) values. We encode two of these in the trie value: +// cccZero (0) and cccAbove (230). If the value is cccOther, it means that +// CCC(r) > 0, but not 230. A value of cccBreak means that CCC(r) == 0 and that +// the rune also has the break category Break (see below). +const ( + cccBreak info = iota << 4 + cccZero + cccAbove + cccOther + + cccMask = cccBreak | cccZero | cccAbove | cccOther +) + +const ( + starter = 0 + above = 230 + iotaSubscript = 240 +) + +// The exceptions slice holds data that does not fit in a normal info entry. +// The entry is pointed to by the exception index in an entry. It has the +// following format: +// +// Header +// byte 0: +// 7..6 unused +// 5..4 CCC type (same bits as entry) +// 3 unused +// 2..0 length of fold +// +// byte 1: +// 7..6 unused +// 5..3 length of 1st mapping of case type +// 2..0 length of 2nd mapping of case type +// +// case 1st 2nd +// lower -> upper, title +// upper -> lower, title +// title -> lower, upper +// +// Lengths with the value 0x7 indicate no value and implies no change. +// A length of 0 indicates a mapping to zero-length string. +// +// Body bytes: +// case folding bytes +// lowercase mapping bytes +// uppercase mapping bytes +// titlecase mapping bytes +// closure mapping bytes (for NFKC_Casefold). (TODO) +// +// Fallbacks: +// missing fold -> lower +// missing title -> upper +// all missing -> original rune +// +// exceptions starts with a dummy byte to enforce that there is no zero index +// value. +const ( + lengthMask = 0x07 + lengthBits = 3 + noChange = 0 +) + +// References to generated trie. + +var trie = newCaseTrie(0) + +var sparse = sparseBlocks{ + values: sparseValues[:], + offsets: sparseOffsets[:], +} + +// Sparse block lookup code. + +// valueRange is an entry in a sparse block. +type valueRange struct { + value uint16 + lo, hi byte +} + +type sparseBlocks struct { + values []valueRange + offsets []uint16 +} + +// lookup returns the value from values block n for byte b using binary search. +func (s *sparseBlocks) lookup(n uint32, b byte) uint16 { + lo := s.offsets[n] + hi := s.offsets[n+1] + for lo < hi { + m := lo + (hi-lo)/2 + r := s.values[m] + if r.lo <= b && b <= r.hi { + return r.value + } + if b < r.lo { + hi = m + } else { + lo = m + 1 + } + } + return 0 +} + +// lastRuneForTesting is the last rune used for testing. Everything after this +// is boring. +const lastRuneForTesting = rune(0x1FFFF) diff --git a/vendor/golang.org/x/text/collate/collate.go b/vendor/golang.org/x/text/collate/collate.go new file mode 100644 index 00000000000..d8c23cb696a --- /dev/null +++ b/vendor/golang.org/x/text/collate/collate.go @@ -0,0 +1,403 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// TODO: remove hard-coded versions when we have implemented fractional weights. +// The current implementation is incompatible with later CLDR versions. +//go:generate go run maketables.go -cldr=23 -unicode=6.2.0 + +// Package collate contains types for comparing and sorting Unicode strings +// according to a given collation order. +package collate // import "golang.org/x/text/collate" + +import ( + "bytes" + "strings" + + "golang.org/x/text/internal/colltab" + "golang.org/x/text/language" +) + +// Collator provides functionality for comparing strings for a given +// collation order. +type Collator struct { + options + + sorter sorter + + _iter [2]iter +} + +func (c *Collator) iter(i int) *iter { + // TODO: evaluate performance for making the second iterator optional. + return &c._iter[i] +} + +// Supported returns the list of languages for which collating differs from its parent. +func Supported() []language.Tag { + // TODO: use language.Coverage instead. + + t := make([]language.Tag, len(tags)) + copy(t, tags) + return t +} + +func init() { + ids := strings.Split(availableLocales, ",") + tags = make([]language.Tag, len(ids)) + for i, s := range ids { + tags[i] = language.Raw.MustParse(s) + } +} + +var tags []language.Tag + +// New returns a new Collator initialized for the given locale. +func New(t language.Tag, o ...Option) *Collator { + index := colltab.MatchLang(t, tags) + c := newCollator(getTable(locales[index])) + + // Set options from the user-supplied tag. + c.setFromTag(t) + + // Set the user-supplied options. + c.setOptions(o) + + c.init() + return c +} + +// NewFromTable returns a new Collator for the given Weighter. +func NewFromTable(w colltab.Weighter, o ...Option) *Collator { + c := newCollator(w) + c.setOptions(o) + c.init() + return c +} + +func (c *Collator) init() { + if c.numeric { + c.t = colltab.NewNumericWeighter(c.t) + } + c._iter[0].init(c) + c._iter[1].init(c) +} + +// Buffer holds keys generated by Key and KeyString. +type Buffer struct { + buf [4096]byte + key []byte +} + +func (b *Buffer) init() { + if b.key == nil { + b.key = b.buf[:0] + } +} + +// Reset clears the buffer from previous results generated by Key and KeyString. +func (b *Buffer) Reset() { + b.key = b.key[:0] +} + +// Compare returns an integer comparing the two byte slices. +// The result will be 0 if a==b, -1 if a < b, and +1 if a > b. +func (c *Collator) Compare(a, b []byte) int { + // TODO: skip identical prefixes once we have a fast way to detect if a rune is + // part of a contraction. This would lead to roughly a 10% speedup for the colcmp regtest. + c.iter(0).SetInput(a) + c.iter(1).SetInput(b) + if res := c.compare(); res != 0 { + return res + } + if !c.ignore[colltab.Identity] { + return bytes.Compare(a, b) + } + return 0 +} + +// CompareString returns an integer comparing the two strings. +// The result will be 0 if a==b, -1 if a < b, and +1 if a > b. +func (c *Collator) CompareString(a, b string) int { + // TODO: skip identical prefixes once we have a fast way to detect if a rune is + // part of a contraction. This would lead to roughly a 10% speedup for the colcmp regtest. + c.iter(0).SetInputString(a) + c.iter(1).SetInputString(b) + if res := c.compare(); res != 0 { + return res + } + if !c.ignore[colltab.Identity] { + if a < b { + return -1 + } else if a > b { + return 1 + } + } + return 0 +} + +func compareLevel(f func(i *iter) int, a, b *iter) int { + a.pce = 0 + b.pce = 0 + for { + va := f(a) + vb := f(b) + if va != vb { + if va < vb { + return -1 + } + return 1 + } else if va == 0 { + break + } + } + return 0 +} + +func (c *Collator) compare() int { + ia, ib := c.iter(0), c.iter(1) + // Process primary level + if c.alternate != altShifted { + // TODO: implement script reordering + if res := compareLevel((*iter).nextPrimary, ia, ib); res != 0 { + return res + } + } else { + // TODO: handle shifted + } + if !c.ignore[colltab.Secondary] { + f := (*iter).nextSecondary + if c.backwards { + f = (*iter).prevSecondary + } + if res := compareLevel(f, ia, ib); res != 0 { + return res + } + } + // TODO: special case handling (Danish?) + if !c.ignore[colltab.Tertiary] || c.caseLevel { + if res := compareLevel((*iter).nextTertiary, ia, ib); res != 0 { + return res + } + if !c.ignore[colltab.Quaternary] { + if res := compareLevel((*iter).nextQuaternary, ia, ib); res != 0 { + return res + } + } + } + return 0 +} + +// Key returns the collation key for str. +// Passing the buffer buf may avoid memory allocations. +// The returned slice will point to an allocation in Buffer and will remain +// valid until the next call to buf.Reset(). +func (c *Collator) Key(buf *Buffer, str []byte) []byte { + // See https://www.unicode.org/reports/tr10/#Main_Algorithm for more details. + buf.init() + return c.key(buf, c.getColElems(str)) +} + +// KeyFromString returns the collation key for str. +// Passing the buffer buf may avoid memory allocations. +// The returned slice will point to an allocation in Buffer and will retain +// valid until the next call to buf.ResetKeys(). +func (c *Collator) KeyFromString(buf *Buffer, str string) []byte { + // See https://www.unicode.org/reports/tr10/#Main_Algorithm for more details. + buf.init() + return c.key(buf, c.getColElemsString(str)) +} + +func (c *Collator) key(buf *Buffer, w []colltab.Elem) []byte { + processWeights(c.alternate, c.t.Top(), w) + kn := len(buf.key) + c.keyFromElems(buf, w) + return buf.key[kn:] +} + +func (c *Collator) getColElems(str []byte) []colltab.Elem { + i := c.iter(0) + i.SetInput(str) + for i.Next() { + } + return i.Elems +} + +func (c *Collator) getColElemsString(str string) []colltab.Elem { + i := c.iter(0) + i.SetInputString(str) + for i.Next() { + } + return i.Elems +} + +type iter struct { + wa [512]colltab.Elem + + colltab.Iter + pce int +} + +func (i *iter) init(c *Collator) { + i.Weighter = c.t + i.Elems = i.wa[:0] +} + +func (i *iter) nextPrimary() int { + for { + for ; i.pce < i.N; i.pce++ { + if v := i.Elems[i.pce].Primary(); v != 0 { + i.pce++ + return v + } + } + if !i.Next() { + return 0 + } + } + panic("should not reach here") +} + +func (i *iter) nextSecondary() int { + for ; i.pce < len(i.Elems); i.pce++ { + if v := i.Elems[i.pce].Secondary(); v != 0 { + i.pce++ + return v + } + } + return 0 +} + +func (i *iter) prevSecondary() int { + for ; i.pce < len(i.Elems); i.pce++ { + if v := i.Elems[len(i.Elems)-i.pce-1].Secondary(); v != 0 { + i.pce++ + return v + } + } + return 0 +} + +func (i *iter) nextTertiary() int { + for ; i.pce < len(i.Elems); i.pce++ { + if v := i.Elems[i.pce].Tertiary(); v != 0 { + i.pce++ + return int(v) + } + } + return 0 +} + +func (i *iter) nextQuaternary() int { + for ; i.pce < len(i.Elems); i.pce++ { + if v := i.Elems[i.pce].Quaternary(); v != 0 { + i.pce++ + return v + } + } + return 0 +} + +func appendPrimary(key []byte, p int) []byte { + // Convert to variable length encoding; supports up to 23 bits. + if p <= 0x7FFF { + key = append(key, uint8(p>>8), uint8(p)) + } else { + key = append(key, uint8(p>>16)|0x80, uint8(p>>8), uint8(p)) + } + return key +} + +// keyFromElems converts the weights ws to a compact sequence of bytes. +// The result will be appended to the byte buffer in buf. +func (c *Collator) keyFromElems(buf *Buffer, ws []colltab.Elem) { + for _, v := range ws { + if w := v.Primary(); w > 0 { + buf.key = appendPrimary(buf.key, w) + } + } + if !c.ignore[colltab.Secondary] { + buf.key = append(buf.key, 0, 0) + // TODO: we can use one 0 if we can guarantee that all non-zero weights are > 0xFF. + if !c.backwards { + for _, v := range ws { + if w := v.Secondary(); w > 0 { + buf.key = append(buf.key, uint8(w>>8), uint8(w)) + } + } + } else { + for i := len(ws) - 1; i >= 0; i-- { + if w := ws[i].Secondary(); w > 0 { + buf.key = append(buf.key, uint8(w>>8), uint8(w)) + } + } + } + } else if c.caseLevel { + buf.key = append(buf.key, 0, 0) + } + if !c.ignore[colltab.Tertiary] || c.caseLevel { + buf.key = append(buf.key, 0, 0) + for _, v := range ws { + if w := v.Tertiary(); w > 0 { + buf.key = append(buf.key, uint8(w)) + } + } + // Derive the quaternary weights from the options and other levels. + // Note that we represent MaxQuaternary as 0xFF. The first byte of the + // representation of a primary weight is always smaller than 0xFF, + // so using this single byte value will compare correctly. + if !c.ignore[colltab.Quaternary] && c.alternate >= altShifted { + if c.alternate == altShiftTrimmed { + lastNonFFFF := len(buf.key) + buf.key = append(buf.key, 0) + for _, v := range ws { + if w := v.Quaternary(); w == colltab.MaxQuaternary { + buf.key = append(buf.key, 0xFF) + } else if w > 0 { + buf.key = appendPrimary(buf.key, w) + lastNonFFFF = len(buf.key) + } + } + buf.key = buf.key[:lastNonFFFF] + } else { + buf.key = append(buf.key, 0) + for _, v := range ws { + if w := v.Quaternary(); w == colltab.MaxQuaternary { + buf.key = append(buf.key, 0xFF) + } else if w > 0 { + buf.key = appendPrimary(buf.key, w) + } + } + } + } + } +} + +func processWeights(vw alternateHandling, top uint32, wa []colltab.Elem) { + ignore := false + vtop := int(top) + switch vw { + case altShifted, altShiftTrimmed: + for i := range wa { + if p := wa[i].Primary(); p <= vtop && p != 0 { + wa[i] = colltab.MakeQuaternary(p) + ignore = true + } else if p == 0 { + if ignore { + wa[i] = colltab.Ignore + } + } else { + ignore = false + } + } + case altBlanked: + for i := range wa { + if p := wa[i].Primary(); p <= vtop && (ignore || p != 0) { + wa[i] = colltab.Ignore + ignore = true + } else { + ignore = false + } + } + } +} diff --git a/vendor/golang.org/x/text/collate/index.go b/vendor/golang.org/x/text/collate/index.go new file mode 100644 index 00000000000..535fb5402a8 --- /dev/null +++ b/vendor/golang.org/x/text/collate/index.go @@ -0,0 +1,32 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package collate + +import "golang.org/x/text/internal/colltab" + +const blockSize = 64 + +func getTable(t tableIndex) *colltab.Table { + return &colltab.Table{ + Index: colltab.Trie{ + Index0: mainLookup[:][blockSize*t.lookupOffset:], + Values0: mainValues[:][blockSize*t.valuesOffset:], + Index: mainLookup[:], + Values: mainValues[:], + }, + ExpandElem: mainExpandElem[:], + ContractTries: colltab.ContractTrieSet(mainCTEntries[:]), + ContractElem: mainContractElem[:], + MaxContractLen: 18, + VariableTop: varTop, + } +} + +// tableIndex holds information for constructing a table +// for a certain locale based on the main table. +type tableIndex struct { + lookupOffset uint32 + valuesOffset uint32 +} diff --git a/vendor/golang.org/x/text/collate/option.go b/vendor/golang.org/x/text/collate/option.go new file mode 100644 index 00000000000..19cb546751f --- /dev/null +++ b/vendor/golang.org/x/text/collate/option.go @@ -0,0 +1,239 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package collate + +import ( + "sort" + + "golang.org/x/text/internal/colltab" + "golang.org/x/text/language" + "golang.org/x/text/unicode/norm" +) + +// newCollator creates a new collator with default options configured. +func newCollator(t colltab.Weighter) *Collator { + // Initialize a collator with default options. + c := &Collator{ + options: options{ + ignore: [colltab.NumLevels]bool{ + colltab.Quaternary: true, + colltab.Identity: true, + }, + f: norm.NFD, + t: t, + }, + } + + // TODO: store vt in tags or remove. + c.variableTop = t.Top() + + return c +} + +// An Option is used to change the behavior of a Collator. Options override the +// settings passed through the locale identifier. +type Option struct { + priority int + f func(o *options) +} + +type prioritizedOptions []Option + +func (p prioritizedOptions) Len() int { + return len(p) +} + +func (p prioritizedOptions) Swap(i, j int) { + p[i], p[j] = p[j], p[i] +} + +func (p prioritizedOptions) Less(i, j int) bool { + return p[i].priority < p[j].priority +} + +type options struct { + // ignore specifies which levels to ignore. + ignore [colltab.NumLevels]bool + + // caseLevel is true if there is an additional level of case matching + // between the secondary and tertiary levels. + caseLevel bool + + // backwards specifies the order of sorting at the secondary level. + // This option exists predominantly to support reverse sorting of accents in French. + backwards bool + + // numeric specifies whether any sequence of decimal digits (category is Nd) + // is sorted at a primary level with its numeric value. + // For example, "A-21" < "A-123". + // This option is set by wrapping the main Weighter with NewNumericWeighter. + numeric bool + + // alternate specifies an alternative handling of variables. + alternate alternateHandling + + // variableTop is the largest primary value that is considered to be + // variable. + variableTop uint32 + + t colltab.Weighter + + f norm.Form +} + +func (o *options) setOptions(opts []Option) { + sort.Sort(prioritizedOptions(opts)) + for _, x := range opts { + x.f(o) + } +} + +// OptionsFromTag extracts the BCP47 collation options from the tag and +// configures a collator accordingly. These options are set before any other +// option. +func OptionsFromTag(t language.Tag) Option { + return Option{0, func(o *options) { + o.setFromTag(t) + }} +} + +func (o *options) setFromTag(t language.Tag) { + o.caseLevel = ldmlBool(t, o.caseLevel, "kc") + o.backwards = ldmlBool(t, o.backwards, "kb") + o.numeric = ldmlBool(t, o.numeric, "kn") + + // Extract settings from the BCP47 u extension. + switch t.TypeForKey("ks") { // strength + case "level1": + o.ignore[colltab.Secondary] = true + o.ignore[colltab.Tertiary] = true + case "level2": + o.ignore[colltab.Tertiary] = true + case "level3", "": + // The default. + case "level4": + o.ignore[colltab.Quaternary] = false + case "identic": + o.ignore[colltab.Quaternary] = false + o.ignore[colltab.Identity] = false + } + + switch t.TypeForKey("ka") { + case "shifted": + o.alternate = altShifted + // The following two types are not official BCP47, but we support them to + // give access to this otherwise hidden functionality. The name blanked is + // derived from the LDML name blanked and posix reflects the main use of + // the shift-trimmed option. + case "blanked": + o.alternate = altBlanked + case "posix": + o.alternate = altShiftTrimmed + } + + // TODO: caseFirst ("kf"), reorder ("kr"), and maybe variableTop ("vt"). + + // Not used: + // - normalization ("kk", not necessary for this implementation) + // - hiraganaQuatenary ("kh", obsolete) +} + +func ldmlBool(t language.Tag, old bool, key string) bool { + switch t.TypeForKey(key) { + case "true": + return true + case "false": + return false + default: + return old + } +} + +var ( + // IgnoreCase sets case-insensitive comparison. + IgnoreCase Option = ignoreCase + ignoreCase = Option{3, ignoreCaseF} + + // IgnoreDiacritics causes diacritical marks to be ignored. ("o" == "ö"). + IgnoreDiacritics Option = ignoreDiacritics + ignoreDiacritics = Option{3, ignoreDiacriticsF} + + // IgnoreWidth causes full-width characters to match their half-width + // equivalents. + IgnoreWidth Option = ignoreWidth + ignoreWidth = Option{2, ignoreWidthF} + + // Loose sets the collator to ignore diacritics, case and width. + Loose Option = loose + loose = Option{4, looseF} + + // Force ordering if strings are equivalent but not equal. + Force Option = force + force = Option{5, forceF} + + // Numeric specifies that numbers should sort numerically ("2" < "12"). + Numeric Option = numeric + numeric = Option{5, numericF} +) + +func ignoreWidthF(o *options) { + o.ignore[colltab.Tertiary] = true + o.caseLevel = true +} + +func ignoreDiacriticsF(o *options) { + o.ignore[colltab.Secondary] = true +} + +func ignoreCaseF(o *options) { + o.ignore[colltab.Tertiary] = true + o.caseLevel = false +} + +func looseF(o *options) { + ignoreWidthF(o) + ignoreDiacriticsF(o) + ignoreCaseF(o) +} + +func forceF(o *options) { + o.ignore[colltab.Identity] = false +} + +func numericF(o *options) { o.numeric = true } + +// Reorder overrides the pre-defined ordering of scripts and character sets. +func Reorder(s ...string) Option { + // TODO: need fractional weights to implement this. + panic("TODO: implement") +} + +// TODO: consider making these public again. These options cannot be fully +// specified in BCP47, so an API interface seems warranted. Still a higher-level +// interface would be nice (e.g. a POSIX option for enabling altShiftTrimmed) + +// alternateHandling identifies the various ways in which variables are handled. +// A rune with a primary weight lower than the variable top is considered a +// variable. +// See https://www.unicode.org/reports/tr10/#Variable_Weighting for details. +type alternateHandling int + +const ( + // altNonIgnorable turns off special handling of variables. + altNonIgnorable alternateHandling = iota + + // altBlanked sets variables and all subsequent primary ignorables to be + // ignorable at all levels. This is identical to removing all variables + // and subsequent primary ignorables from the input. + altBlanked + + // altShifted sets variables to be ignorable for levels one through three and + // adds a fourth level based on the values of the ignored levels. + altShifted + + // altShiftTrimmed is a slight variant of altShifted that is used to + // emulate POSIX. + altShiftTrimmed +) diff --git a/vendor/golang.org/x/text/collate/sort.go b/vendor/golang.org/x/text/collate/sort.go new file mode 100644 index 00000000000..62f1e75a3c4 --- /dev/null +++ b/vendor/golang.org/x/text/collate/sort.go @@ -0,0 +1,81 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package collate + +import ( + "bytes" + "sort" +) + +const ( + maxSortBuffer = 40960 + maxSortEntries = 4096 +) + +type swapper interface { + Swap(i, j int) +} + +type sorter struct { + buf *Buffer + keys [][]byte + src swapper +} + +func (s *sorter) init(n int) { + if s.buf == nil { + s.buf = &Buffer{} + s.buf.init() + } + if cap(s.keys) < n { + s.keys = make([][]byte, n) + } + s.keys = s.keys[0:n] +} + +func (s *sorter) sort(src swapper) { + s.src = src + sort.Sort(s) +} + +func (s sorter) Len() int { + return len(s.keys) +} + +func (s sorter) Less(i, j int) bool { + return bytes.Compare(s.keys[i], s.keys[j]) == -1 +} + +func (s sorter) Swap(i, j int) { + s.keys[i], s.keys[j] = s.keys[j], s.keys[i] + s.src.Swap(i, j) +} + +// A Lister can be sorted by Collator's Sort method. +type Lister interface { + Len() int + Swap(i, j int) + // Bytes returns the bytes of the text at index i. + Bytes(i int) []byte +} + +// Sort uses sort.Sort to sort the strings represented by x using the rules of c. +func (c *Collator) Sort(x Lister) { + n := x.Len() + c.sorter.init(n) + for i := 0; i < n; i++ { + c.sorter.keys[i] = c.Key(c.sorter.buf, x.Bytes(i)) + } + c.sorter.sort(x) +} + +// SortStrings uses sort.Sort to sort the strings in x using the rules of c. +func (c *Collator) SortStrings(x []string) { + c.sorter.init(len(x)) + for i, s := range x { + c.sorter.keys[i] = c.KeyFromString(c.sorter.buf, s) + } + c.sorter.sort(sort.StringSlice(x)) +} diff --git a/vendor/golang.org/x/text/collate/tables.go b/vendor/golang.org/x/text/collate/tables.go new file mode 100644 index 00000000000..9ec4f3d4940 --- /dev/null +++ b/vendor/golang.org/x/text/collate/tables.go @@ -0,0 +1,73789 @@ +// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT. + +package collate + +// UnicodeVersion is the Unicode version from which the tables in this package are derived. +const UnicodeVersion = "6.2.0" + +// CLDRVersion is the CLDR version from which the tables in this package are derived. +const CLDRVersion = "23" + +var availableLocales = "und,aa,af,ar,as,az,be,bg,bn,bs,bs-Cyrl,ca,cs,cy,da,de-u-co-phonebk,de,dz,ee,el,en,en-US,en-US-u-va-posix,eo,es,et,fa,fa-AF,fi,fi-u-co-standard,fil,fo,fr,fr-CA,gu,ha,haw,he,hi,hr,hu,hy,ig,is,ja,kk,kl,km,kn,ko,kok,ln-u-co-phonetic,ln,lt,lv,mk,ml,mr,mt,my,nb,nn,nso,om,or,pa,pl,ps,ro,ru,se,si,sk,sl,sq,sr,sr-Latn,ssy,sv,sv-u-co-standard,ta,te,th,tn,to,tr,uk,ur,vi,wae,yo,zh,zh-u-co-stroke,zh-Hant-u-co-pinyin,zh-Hant" + +const varTop = 0x30e + +var locales = [...]tableIndex{ + { // und + lookupOffset: 0x15, + valuesOffset: 0x0, + }, + { // aa + lookupOffset: 0x1c, + valuesOffset: 0x1b4, + }, + { // af + lookupOffset: 0x1d, + valuesOffset: 0x0, + }, + { // ar + lookupOffset: 0x1f, + valuesOffset: 0x0, + }, + { // as + lookupOffset: 0x21, + valuesOffset: 0x0, + }, + { // az + lookupOffset: 0x27, + valuesOffset: 0x1d7, + }, + { // be + lookupOffset: 0x28, + valuesOffset: 0x0, + }, + { // bg + lookupOffset: 0x15, + valuesOffset: 0x0, + }, + { // bn + lookupOffset: 0x2a, + valuesOffset: 0x0, + }, + { // bs + lookupOffset: 0x15, + valuesOffset: 0x0, + }, + { // bs-Cyrl + lookupOffset: 0x15, + valuesOffset: 0x0, + }, + { // ca + lookupOffset: 0x2b, + valuesOffset: 0x1ec, + }, + { // cs + lookupOffset: 0x2d, + valuesOffset: 0x1f0, + }, + { // cy + lookupOffset: 0x15, + valuesOffset: 0x1f5, + }, + { // da + lookupOffset: 0x30, + valuesOffset: 0x1f7, + }, + { // de-u-co-phonebk + lookupOffset: 0x32, + valuesOffset: 0x201, + }, + { // de + lookupOffset: 0x15, + valuesOffset: 0x0, + }, + { // dz + lookupOffset: 0x34, + valuesOffset: 0x0, + }, + { // ee + lookupOffset: 0x3a, + valuesOffset: 0x20a, + }, + { // el + lookupOffset: 0x15, + valuesOffset: 0x0, + }, + { // en + lookupOffset: 0x15, + valuesOffset: 0x0, + }, + { // en-US + lookupOffset: 0x15, + valuesOffset: 0x0, + }, + { // en-US-u-va-posix + lookupOffset: 0x41, + valuesOffset: 0x219, + }, + { // eo + lookupOffset: 0x42, + valuesOffset: 0x23b, + }, + { // es + lookupOffset: 0x43, + valuesOffset: 0x23f, + }, + { // et + lookupOffset: 0x49, + valuesOffset: 0x242, + }, + { // fa + lookupOffset: 0x4b, + valuesOffset: 0x0, + }, + { // fa-AF + lookupOffset: 0x15, + valuesOffset: 0x0, + }, + { // fi + lookupOffset: 0x4e, + valuesOffset: 0x25a, + }, + { // fi-u-co-standard + lookupOffset: 0x54, + valuesOffset: 0x265, + }, + { // fil + lookupOffset: 0x43, + valuesOffset: 0x272, + }, + { // fo + lookupOffset: 0x30, + valuesOffset: 0x1f7, + }, + { // fr + lookupOffset: 0x15, + valuesOffset: 0x0, + }, + { // fr-CA + lookupOffset: 0x15, + valuesOffset: 0x0, + }, + { // gu + lookupOffset: 0x56, + valuesOffset: 0x0, + }, + { // ha + lookupOffset: 0x57, + valuesOffset: 0x275, + }, + { // haw + lookupOffset: 0x5e, + valuesOffset: 0x27a, + }, + { // he + lookupOffset: 0x5f, + valuesOffset: 0x0, + }, + { // hi + lookupOffset: 0x61, + valuesOffset: 0x0, + }, + { // hr + lookupOffset: 0x63, + valuesOffset: 0x291, + }, + { // hu + lookupOffset: 0x65, + valuesOffset: 0x297, + }, + { // hy + lookupOffset: 0x66, + valuesOffset: 0x0, + }, + { // ig + lookupOffset: 0x68, + valuesOffset: 0x29f, + }, + { // is + lookupOffset: 0x6a, + valuesOffset: 0x2a3, + }, + { // ja + lookupOffset: 0x76, + valuesOffset: 0x0, + }, + { // kk + lookupOffset: 0x77, + valuesOffset: 0x0, + }, + { // kl + lookupOffset: 0x78, + valuesOffset: 0x414, + }, + { // km + lookupOffset: 0x7a, + valuesOffset: 0x0, + }, + { // kn + lookupOffset: 0x7c, + valuesOffset: 0x0, + }, + { // ko + lookupOffset: 0x88, + valuesOffset: 0x0, + }, + { // kok + lookupOffset: 0x8a, + valuesOffset: 0x0, + }, + { // ln-u-co-phonetic + lookupOffset: 0x8b, + valuesOffset: 0x570, + }, + { // ln + lookupOffset: 0x8b, + valuesOffset: 0x0, + }, + { // lt + lookupOffset: 0x91, + valuesOffset: 0x574, + }, + { // lv + lookupOffset: 0x93, + valuesOffset: 0x582, + }, + { // mk + lookupOffset: 0x15, + valuesOffset: 0x0, + }, + { // ml + lookupOffset: 0x95, + valuesOffset: 0x0, + }, + { // mr + lookupOffset: 0x97, + valuesOffset: 0x0, + }, + { // mt + lookupOffset: 0x9a, + valuesOffset: 0x58a, + }, + { // my + lookupOffset: 0x9c, + valuesOffset: 0x0, + }, + { // nb + lookupOffset: 0x30, + valuesOffset: 0x593, + }, + { // nn + lookupOffset: 0x30, + valuesOffset: 0x593, + }, + { // nso + lookupOffset: 0x9e, + valuesOffset: 0x595, + }, + { // om + lookupOffset: 0x15, + valuesOffset: 0x59b, + }, + { // or + lookupOffset: 0xa0, + valuesOffset: 0x0, + }, + { // pa + lookupOffset: 0xa2, + valuesOffset: 0x0, + }, + { // pl + lookupOffset: 0xa4, + valuesOffset: 0x5a1, + }, + { // ps + lookupOffset: 0xa7, + valuesOffset: 0x0, + }, + { // ro + lookupOffset: 0xa9, + valuesOffset: 0x5b3, + }, + { // ru + lookupOffset: 0x15, + valuesOffset: 0x0, + }, + { // se + lookupOffset: 0xab, + valuesOffset: 0x5ba, + }, + { // si + lookupOffset: 0xad, + valuesOffset: 0x0, + }, + { // sk + lookupOffset: 0xaf, + valuesOffset: 0x5c7, + }, + { // sl + lookupOffset: 0xb0, + valuesOffset: 0x5cc, + }, + { // sq + lookupOffset: 0xb2, + valuesOffset: 0x5cf, + }, + { // sr + lookupOffset: 0x15, + valuesOffset: 0x0, + }, + { // sr-Latn + lookupOffset: 0x15, + valuesOffset: 0x0, + }, + { // ssy + lookupOffset: 0x1c, + valuesOffset: 0x1b4, + }, + { // sv + lookupOffset: 0xb4, + valuesOffset: 0x5d3, + }, + { // sv-u-co-standard + lookupOffset: 0xb6, + valuesOffset: 0x5d9, + }, + { // ta + lookupOffset: 0xb8, + valuesOffset: 0x0, + }, + { // te + lookupOffset: 0xba, + valuesOffset: 0x0, + }, + { // th + lookupOffset: 0xbc, + valuesOffset: 0x0, + }, + { // tn + lookupOffset: 0x9e, + valuesOffset: 0x595, + }, + { // to + lookupOffset: 0xbe, + valuesOffset: 0x5e1, + }, + { // tr + lookupOffset: 0xc4, + valuesOffset: 0x5ed, + }, + { // uk + lookupOffset: 0xc5, + valuesOffset: 0x0, + }, + { // ur + lookupOffset: 0xc7, + valuesOffset: 0x0, + }, + { // vi + lookupOffset: 0xc9, + valuesOffset: 0x5fc, + }, + { // wae + lookupOffset: 0xca, + valuesOffset: 0x610, + }, + { // yo + lookupOffset: 0xcc, + valuesOffset: 0x613, + }, + { // zh + lookupOffset: 0xe6, + valuesOffset: 0x618, + }, + { // zh-u-co-stroke + lookupOffset: 0xff, + valuesOffset: 0x618, + }, + { // zh-Hant-u-co-pinyin + lookupOffset: 0xe6, + valuesOffset: 0x618, + }, + { // zh-Hant + lookupOffset: 0xff, + valuesOffset: 0x618, + }, +} + +// mainExpandElem: 46864 entries, 187456 bytes +var mainExpandElem = [46864]uint32{ + // Block 0, offset 0x0 + 0x00000002, 0xAE604702, 0xAE603202, 0x00000002, 0xA000A51A, 0xA000BA1A, + 0x00000002, 0xA000A91A, 0xA000BA1A, 0x00000002, 0xA000AD1A, 0xA000BA1A, + 0x00000002, 0xA000B21A, 0xA000BA1A, 0x00000002, 0xA000B61A, 0xA000BA1A, + 0x00000002, 0xA000BA1A, 0xA000D11A, 0x00000004, 0x0003F484, 0x0029CE84, + 0x0029CC84, 0x0003F69F, 0x00000004, 0x0003F484, 0x0029CE84, 0x0029CE84, + 0x0003F69F, 0x00000004, 0x0003F484, 0x0029CE84, 0x0029D084, 0x0003F69F, + 0x00000004, 0x0003F484, 0x0029CE84, 0x0029D284, 0x0003F69F, 0x00000004, + 0x0003F484, 0x0029CE84, 0x0029D484, 0x0003F69F, 0x00000004, 0x0003F484, + 0x0029CE84, 0x0029D684, 0x0003F69F, 0x00000004, 0x0003F484, 0x0029CE84, + 0x0029D884, 0x0003F69F, 0x00000004, 0x0003F484, 0x0029CE84, 0x0029DA84, + 0x0003F69F, 0x00000004, 0x0003F484, 0x0029CE84, + // Block 1, offset 0x40 + 0x0029DC84, 0x0003F69F, 0x00000004, 0x0003F484, 0x0029CE84, 0x0029DE84, + 0x0003F69F, 0x00000004, 0x0003F484, 0x0029D084, 0x0029CC84, 0x0003F69F, + 0x00000004, 0x0003F484, 0x0062AC84, 0x0063A884, 0x0003F69F, 0x00000004, + 0x0003F484, 0x0062B084, 0x0063A884, 0x0003F69F, 0x00000004, 0x0003F484, + 0x0062B284, 0x0063A884, 0x0003F69F, 0x00000004, 0x0003F484, 0x0062B684, + 0x0063A884, 0x0003F69F, 0x00000004, 0x0003F484, 0x0062B884, 0x0063A884, + 0x0003F69F, 0x00000004, 0x0003F484, 0x0062BA84, 0x0063A884, 0x0003F69F, + 0x00000004, 0x0003F484, 0x0062BE84, 0x0063A884, 0x0003F69F, 0x00000004, + 0x0003F484, 0x0062C284, 0x0063A884, 0x0003F69F, 0x00000007, 0x0003F484, + 0x0062C284, 0x0063B884, 0x0062C484, 0x0063B084, 0x00646A84, 0x0003F69F, + 0x00000006, 0x0003F484, 0x0062C284, 0x0063B884, + // Block 2, offset 0x80 + 0x0062D084, 0x0063C284, 0x0003F69F, 0x00000004, 0x0003F484, 0x0062C484, + 0x0063A884, 0x0003F69F, 0x00000004, 0x0003F484, 0x0062C484, 0x0063C284, + 0x0003F69F, 0x00000004, 0x0003F484, 0x0062C884, 0x0063A884, 0x0003F69F, + 0x00000004, 0x0003F484, 0x0062CA84, 0x0063A884, 0x0003F69F, 0x00000004, + 0x0003F484, 0x0062CC84, 0x0063A884, 0x0003F69F, 0x00000004, 0x0003F484, + 0x0062CE84, 0x0063A884, 0x0003F69F, 0x00000004, 0x0003F484, 0x0062D084, + 0x0063A884, 0x0003F69F, 0x00000004, 0x00050E84, 0x00050E84, 0x00050E84, + 0x00050E9F, 0x00000002, 0x40062C20, 0xAE603202, 0x00000002, 0x40062C20, + 0xAE603502, 0x00000002, 0x40062C20, 0xAE604502, 0x00000002, 0x40063620, + 0xAE603202, 0x00000002, 0x40063620, 0xAE603502, 0x00000002, 0x40063620, + 0xAE604502, 0x00000002, 0x40063820, 0xAE603202, + // Block 3, offset 0xc0 + 0x00000002, 0x40063820, 0xAE603502, 0x00000002, 0x40063820, 0xAE604502, + 0x00000002, 0x40084420, 0xA0105402, 0x00000002, 0x40084620, 0xA0105402, + 0x00000002, 0x40084C20, 0xA0105402, 0x00000002, 0x4008B820, 0xA0105402, + 0x00000002, 0x4008BC20, 0xA0105402, 0x00000002, 0x4008C020, 0xA0105402, + 0x00000002, 0x40091E20, 0xA0105402, 0x00000002, 0x40092620, 0xA0105402, + 0x00000002, 0x40092A20, 0xA0105402, 0x00000002, 0x40094020, 0xA0105402, + 0x00000002, 0x40094220, 0xA0105402, 0x00000002, 0x40094420, 0xA0105402, + 0x00000002, 0x40097820, 0xA0105402, 0x00000002, 0x40097A20, 0xA0105402, + 0x00000004, 0x00098484, 0x00098484, 0x00098484, 0x0009849F, 0x00000002, + 0x40099E20, 0xA0105402, 0x00000002, 0x4009AA20, 0xA0105402, 0x00000002, + 0x4009AC20, 0xA0105402, 0x00000002, 0x4009B020, + // Block 4, offset 0x100 + 0xA0105402, 0x00000002, 0x4009B820, 0xA0105402, 0x00000002, 0x4009DE20, + 0xA0105402, 0x00000002, 0x4009E220, 0xA0105402, 0x00000002, 0x4009E420, + 0xA0105402, 0x00000002, 0x4009F420, 0xA0105402, 0x00000002, 0x4009F620, + 0xA0105402, 0x00000002, 0x4009F820, 0xA0105402, 0x00000002, 0x4009FA20, + 0xA0105402, 0x00000002, 0x4009FC20, 0xA0105402, 0x00000002, 0x4009FE20, + 0xA0105402, 0x00000002, 0x400A0020, 0xA0105402, 0x00000002, 0x400A0220, + 0xA0105402, 0x00000002, 0x400A0820, 0xA0105402, 0x00000002, 0x400A0A20, + 0xA0105402, 0x00000002, 0x400A0C20, 0xA0105402, 0x00000002, 0x400A0E20, + 0xA0105402, 0x00000002, 0x400A1E20, 0xA0105402, 0x00000002, 0x400A2020, + 0xA0105402, 0x00000002, 0x400A4020, 0xA0105402, 0x00000002, 0x400A4C20, + 0xA0105402, 0x00000002, 0x400A4E20, 0xA0105402, + // Block 5, offset 0x140 + 0x00000002, 0x400A5220, 0xA0105402, 0x00000002, 0x400A5820, 0xA0105402, + 0x00000002, 0x400A5A20, 0xA0105402, 0x00000002, 0x400A5C20, 0xA0105402, + 0x00000002, 0x400A5E20, 0xA0105402, 0x00000002, 0x40164620, 0xA0105402, + 0x00000002, 0x4027CE20, 0xA0012802, 0x00000002, 0x4027D020, 0xA0012802, + 0x00000002, 0x4027D420, 0xA0812802, 0x00000002, 0x4027D820, 0xA0812802, + 0x00000002, 0x4029CC20, 0xA0013F02, 0x00000002, 0x4029CC20, 0xA0014002, + 0x00000002, 0x4029CC20, 0xA0014202, 0x00000002, 0x4029CC20, 0xA0014402, + 0x00000002, 0x4029CC20, 0xA0014502, 0x00000002, 0x4029CC20, 0xA0014602, + 0x00000002, 0x4029CC20, 0xA0014702, 0x00000002, 0x4029CC20, 0xA0014802, + 0x00000002, 0x4029CC20, 0xA0014902, 0x00000002, 0x4029CC20, 0xA0014A02, + 0x00000002, 0x4029CC20, 0xA0014B02, 0x00000002, + // Block 6, offset 0x180 + 0x4029CC20, 0xA0014B02, 0x00000002, 0x4029CC20, 0xA0014C02, 0x00000002, + 0x4029CC20, 0xA0014D02, 0x00000002, 0x4029CC20, 0xA0014E02, 0x00000002, + 0x4029CC20, 0xA0014F02, 0x00000002, 0x4029CC20, 0xA0015002, 0x00000002, + 0x4029CC20, 0xA0015102, 0x00000002, 0x4029CC20, 0xA0015202, 0x00000002, + 0x4029CC20, 0xA0015302, 0x00000002, 0x4029CC20, 0xA0015402, 0x00000002, + 0x4029CC20, 0xA0015502, 0x00000002, 0x4029CC20, 0xA0015602, 0x00000002, + 0x0029CC84, 0xA0015604, 0x00000002, 0x4029CC20, 0xA0015702, 0x00000002, + 0x4029CC20, 0xA0015802, 0x00000002, 0x4029CC20, 0xA0015902, 0x00000002, + 0x4029CC20, 0xA0015A02, 0x00000002, 0x4029CC20, 0xA0015B02, 0x00000002, + 0x4029CC20, 0xA0015C02, 0x00000002, 0x4029CC20, 0xA0015D02, 0x00000002, + 0x4029CC20, 0xA0015E02, 0x00000002, 0x4029CC20, + // Block 7, offset 0x1c0 + 0xA0015F02, 0x00000002, 0x4029CC20, 0xA0016002, 0x00000002, 0x4029CC20, + 0xA0016102, 0x00000002, 0x4029CC20, 0xA0016202, 0x00000002, 0x4029CC20, + 0xA0016302, 0x00000002, 0x4029CC20, 0xA0016402, 0x00000002, 0x4029CC20, + 0xA0016502, 0x00000002, 0x4029CC20, 0xA0016602, 0x00000002, 0x4029CC20, + 0xA0016802, 0x00000002, 0x4029CC20, 0xA0017202, 0x00000002, 0x4029CC20, + 0xA0017302, 0x00000002, 0x4029CC20, 0xA0017402, 0x00000003, 0x0029CC9E, + 0x0009589E, 0x0029D29E, 0x00000002, 0x4029CE20, 0xA0013F02, 0x00000002, + 0x4029CE20, 0xA0014002, 0x00000002, 0x4029CE20, 0xA0014102, 0x00000002, + 0x4029CE20, 0xA0014202, 0x00000002, 0x4029CE20, 0xA0014302, 0x00000002, + 0x4029CE20, 0xA0014402, 0x00000002, 0x4029CE20, 0xA0014502, 0x00000002, + 0x4029CE20, 0xA0014602, 0x00000002, 0x4029CE20, + // Block 8, offset 0x200 + 0xA0014702, 0x00000002, 0x4029CE20, 0xA0014802, 0x00000002, 0x4029CE20, + 0xA0014902, 0x00000002, 0x4029CE20, 0xA0014A02, 0x00000002, 0x4029CE20, + 0xA0014B02, 0x00000002, 0x4029CE20, 0xA0014B02, 0x00000002, 0x4029CE20, + 0xA0014B02, 0x00000002, 0x4029CE20, 0xA0014C02, 0x00000002, 0x4029CE20, + 0xA0014D02, 0x00000002, 0x4029CE20, 0xA0014E02, 0x00000002, 0x4029CE20, + 0xA0014F02, 0x00000002, 0x4029CE20, 0xA0015002, 0x00000002, 0x4029CE20, + 0xA0015102, 0x00000002, 0x4029CE20, 0xA0015102, 0x00000002, 0x4029CE20, + 0xA0015202, 0x00000002, 0x4029CE20, 0xA0015302, 0x00000002, 0x4029CE20, + 0xA0015402, 0x00000002, 0x4029CE20, 0xA0015502, 0x00000002, 0x4029CE20, + 0xA0015602, 0x00000002, 0x0029CE84, 0xA0015604, 0x00000002, 0x4029CE20, + 0xA0015702, 0x00000002, 0x4029CE20, 0xA0015802, + // Block 9, offset 0x240 + 0x00000002, 0x4029CE20, 0xA0015902, 0x00000002, 0x4029CE20, 0xA0015A02, + 0x00000002, 0x4029CE20, 0xA0015B02, 0x00000002, 0x4029CE20, 0xA0015C02, + 0x00000002, 0x4029CE20, 0xA0015D02, 0x00000002, 0x4029CE20, 0xA0015E02, + 0x00000002, 0x4029CE20, 0xA0015F02, 0x00000002, 0x4029CE20, 0xA0016002, + 0x00000002, 0x4029CE20, 0xA0016102, 0x00000002, 0x4029CE20, 0xA0016202, + 0x00000002, 0x4029CE20, 0xA0016302, 0x00000002, 0x4029CE20, 0xA0016402, + 0x00000002, 0x4029CE20, 0xA0016502, 0x00000002, 0x4029CE20, 0xA0016602, + 0x00000002, 0x4029CE20, 0xA0016702, 0x00000002, 0x4029CE20, 0xA0016802, + 0x00000002, 0x4029CE20, 0xA0016802, 0x00000002, 0x4029CE20, 0xA0016802, + 0x00000002, 0x4029CE20, 0xA0016802, 0x00000002, 0x4029CE20, 0xA0016A02, + 0x00000002, 0x4029CE20, 0xA0016B02, 0x00000002, + // Block 10, offset 0x280 + 0x4029CE20, 0xA0016C02, 0x00000002, 0x4029CE20, 0xA0016C02, 0x00000002, + 0x4029CE20, 0xA0016C02, 0x00000002, 0x4029CE20, 0xA0016C02, 0x00000002, + 0x4029CE20, 0xA0016C02, 0x00000002, 0x4029CE20, 0xA0016C02, 0x00000002, + 0x4029CE20, 0xA0016D02, 0x00000002, 0x4029CE20, 0xA0016E02, 0x00000002, + 0x4029CE20, 0xA0016F02, 0x00000002, 0x4029CE20, 0xA0017002, 0x00000002, + 0x4029CE20, 0xA0017102, 0x00000002, 0x4029CE20, 0xA0017202, 0x00000002, + 0x4029CE20, 0xA0017302, 0x00000002, 0x4029CE20, 0xA0017402, 0x00000002, + 0x4029CE20, 0xA0017502, 0x00000002, 0x4029CE20, 0xA0017602, 0x00000002, + 0x4029CE20, 0xA0017702, 0x00000004, 0x0029CE9E, 0x0009589E, 0x0029CE9E, + 0x0029CC9E, 0x00000003, 0x0029CE9E, 0x0009589E, 0x0029D09E, 0x00000003, + 0x0029CE9E, 0x0009589E, 0x0029D29E, 0x00000003, + // Block 11, offset 0x2c0 + 0x0029CE9E, 0x0009589E, 0x0029D49E, 0x00000003, 0x0029CE9E, 0x0009589E, + 0x0029D69E, 0x00000003, 0x0029CE9E, 0x0009589E, 0x0029D89E, 0x00000003, + 0x0029CE9E, 0x0009589E, 0x0029DA9E, 0x00000003, 0x0029CE9E, 0x0009589E, + 0x0029DC9E, 0x00000003, 0x0029CE9E, 0x0009589E, 0x0029DE9E, 0x00000002, + 0x0029CE86, 0x0029CC86, 0x00000002, 0x0029CE86, 0x0029CC86, 0x00000002, + 0x0029CE86, 0x0029CC86, 0x00000002, 0x0029CE86, 0x0029CC86, 0x00000002, + 0x0029CE86, 0x0029CC86, 0x00000002, 0x0029CE86, 0x0029CE86, 0x00000002, + 0x0029CE86, 0x0029D086, 0x00000002, 0x0029CE86, 0x0029D286, 0x00000002, + 0x0029CE86, 0x0029D486, 0x00000002, 0x0029CE86, 0x0029D686, 0x00000002, + 0x0029CE86, 0x0029D886, 0x00000002, 0x0029CE86, 0x0029DA86, 0x00000002, + 0x0029CE86, 0x0029DC86, 0x00000002, 0x0029CE86, + // Block 12, offset 0x300 + 0x0029DE86, 0x00000002, 0x4029D020, 0xA0013F02, 0x00000002, 0x4029D020, + 0xA0014002, 0x00000002, 0x4029D020, 0xA0014102, 0x00000002, 0x4029D020, + 0xA0014202, 0x00000002, 0x4029D020, 0xA0014302, 0x00000002, 0x4029D020, + 0xA0014402, 0x00000002, 0x4029D020, 0xA0014502, 0x00000002, 0x4029D020, + 0xA0014602, 0x00000002, 0x4029D020, 0xA0014702, 0x00000002, 0x4029D020, + 0xA0014802, 0x00000002, 0x4029D020, 0xA0014902, 0x00000002, 0x4029D020, + 0xA0014A02, 0x00000002, 0x4029D020, 0xA0014B02, 0x00000002, 0x4029D020, + 0xA0014B02, 0x00000002, 0x4029D020, 0xA0014B02, 0x00000002, 0x4029D020, + 0xA0014C02, 0x00000002, 0x4029D020, 0xA0014D02, 0x00000002, 0x4029D020, + 0xA0014E02, 0x00000002, 0x4029D020, 0xA0014F02, 0x00000002, 0x4029D020, + 0xA0015002, 0x00000002, 0x4029D020, 0xA0015102, + // Block 13, offset 0x340 + 0x00000002, 0x4029D020, 0xA0015202, 0x00000002, 0x4029D020, 0xA0015302, + 0x00000002, 0x4029D020, 0xA0015402, 0x00000002, 0x4029D020, 0xA0015502, + 0x00000002, 0x4029D020, 0xA0015602, 0x00000002, 0x0029D084, 0xA0015604, + 0x00000002, 0x4029D020, 0xA0015702, 0x00000002, 0x4029D020, 0xA0015802, + 0x00000002, 0x4029D020, 0xA0015902, 0x00000002, 0x4029D020, 0xA0015A02, + 0x00000002, 0x4029D020, 0xA0015B02, 0x00000002, 0x4029D020, 0xA0015C02, + 0x00000002, 0x4029D020, 0xA0015D02, 0x00000002, 0x4029D020, 0xA0015E02, + 0x00000002, 0x4029D020, 0xA0015F02, 0x00000002, 0x4029D020, 0xA0016002, + 0x00000002, 0x4029D020, 0xA0016102, 0x00000002, 0x4029D020, 0xA0016202, + 0x00000002, 0x4029D020, 0xA0016302, 0x00000002, 0x4029D020, 0xA0016402, + 0x00000002, 0x4029D020, 0xA0016502, 0x00000002, + // Block 14, offset 0x380 + 0x4029D020, 0xA0016602, 0x00000002, 0x4029D020, 0xA0016702, 0x00000002, + 0x4029D020, 0xA0016802, 0x00000002, 0x4029D020, 0xA0016802, 0x00000002, + 0x4029D020, 0xA0016802, 0x00000002, 0x4029D020, 0xA0016802, 0x00000002, + 0x4029D020, 0xA0016B02, 0x00000002, 0x4029D020, 0xA0016C02, 0x00000002, + 0x4029D020, 0xA0016C02, 0x00000002, 0x4029D020, 0xA0016C02, 0x00000002, + 0x4029D020, 0xA0016C02, 0x00000002, 0x4029D020, 0xA0016C02, 0x00000002, + 0x4029D020, 0xA0016C02, 0x00000002, 0x4029D020, 0xA0016C02, 0x00000002, + 0x4029D020, 0xA0016C02, 0x00000002, 0x4029D020, 0xA0016C02, 0x00000002, + 0x4029D020, 0xA0016E02, 0x00000002, 0x4029D020, 0xA0016F02, 0x00000002, + 0x4029D020, 0xA0017002, 0x00000002, 0x4029D020, 0xA0017102, 0x00000002, + 0x4029D020, 0xA0017202, 0x00000002, 0x4029D020, + // Block 15, offset 0x3c0 + 0xA0017302, 0x00000002, 0x4029D020, 0xA0017402, 0x00000002, 0x4029D020, + 0xA0017502, 0x00000002, 0x4029D020, 0xA0017602, 0x00000002, 0x4029D020, + 0xA0017702, 0x00000003, 0x0029D09E, 0x0009589E, 0x0029D29E, 0x00000003, + 0x0029D09E, 0x0009589E, 0x0029D69E, 0x00000002, 0x0029D086, 0x0029CC86, + 0x00000002, 0x0029D086, 0x0029CC86, 0x00000002, 0x4029D220, 0xA0013F02, + 0x00000002, 0x4029D220, 0xA0014002, 0x00000002, 0x4029D220, 0xA0014102, + 0x00000002, 0x4029D220, 0xA0014202, 0x00000002, 0x4029D220, 0xA0014302, + 0x00000002, 0x4029D220, 0xA0014402, 0x00000002, 0x4029D220, 0xA0014502, + 0x00000002, 0x4029D220, 0xA0014602, 0x00000002, 0x4029D220, 0xA0014702, + 0x00000002, 0x4029D220, 0xA0014802, 0x00000002, 0x4029D220, 0xA0014902, + 0x00000002, 0x4029D220, 0xA0014A02, 0x00000002, + // Block 16, offset 0x400 + 0x4029D220, 0xA0014B02, 0x00000002, 0x4029D220, 0xA0014B02, 0x00000002, + 0x4029D220, 0xA0014B02, 0x00000002, 0x4029D220, 0xA0014C02, 0x00000002, + 0x4029D220, 0xA0014D02, 0x00000002, 0x4029D220, 0xA0014E02, 0x00000002, + 0x4029D220, 0xA0014F02, 0x00000002, 0x4029D220, 0xA0015002, 0x00000002, + 0x4029D220, 0xA0015102, 0x00000002, 0x4029D220, 0xA0015202, 0x00000002, + 0x4029D220, 0xA0015302, 0x00000002, 0x4029D220, 0xA0015402, 0x00000002, + 0x4029D220, 0xA0015502, 0x00000002, 0x4029D220, 0xA0015602, 0x00000002, + 0x0029D284, 0xA0015604, 0x00000002, 0x4029D220, 0xA0015702, 0x00000002, + 0x4029D220, 0xA0015802, 0x00000002, 0x4029D220, 0xA0015902, 0x00000002, + 0x4029D220, 0xA0015A02, 0x00000002, 0x4029D220, 0xA0015B02, 0x00000002, + 0x4029D220, 0xA0015C02, 0x00000002, 0x4029D220, + // Block 17, offset 0x440 + 0xA0015D02, 0x00000002, 0x4029D220, 0xA0015E02, 0x00000002, 0x4029D220, + 0xA0015F02, 0x00000002, 0x4029D220, 0xA0016002, 0x00000002, 0x4029D220, + 0xA0016102, 0x00000002, 0x4029D220, 0xA0016202, 0x00000002, 0x4029D220, + 0xA0016302, 0x00000002, 0x4029D220, 0xA0016402, 0x00000002, 0x4029D220, + 0xA0016502, 0x00000002, 0x4029D220, 0xA0016602, 0x00000002, 0x4029D220, + 0xA0016702, 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220, + 0xA0016C02, 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220, + 0xA0016C02, 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220, + 0xA0016C02, 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220, + 0xA0016C02, 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220, + 0xA0016C02, 0x00000002, 0x4029D220, 0xA0016C02, + // Block 18, offset 0x480 + 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220, 0xA0016C02, + 0x00000002, 0x4029D220, 0xA0016C02, 0x00000002, 0x4029D220, 0xA0016E02, + 0x00000002, 0x4029D220, 0xA0016F02, 0x00000002, 0x4029D220, 0xA0017002, + 0x00000002, 0x4029D220, 0xA0017102, 0x00000002, 0x4029D220, 0xA0017202, + 0x00000002, 0x4029D220, 0xA0017302, 0x00000002, 0x4029D220, 0xA0017402, + 0x00000002, 0x4029D220, 0xA0017502, 0x00000002, 0x4029D220, 0xA0017602, + 0x00000002, 0x4029D220, 0xA0017702, 0x00000003, 0x0029D29E, 0x0009589E, + 0x0029D49E, 0x00000003, 0x0029D29E, 0x0009589E, 0x0029D69E, 0x00000003, + 0x0029D29E, 0x0009589E, 0x0029DC9E, 0x00000002, 0x0029D286, 0x0029CC86, + 0x00000002, 0x4029D420, 0xA0013F02, 0x00000002, 0x4029D420, 0xA0014002, + 0x00000002, 0x4029D420, 0xA0014102, 0x00000002, + // Block 19, offset 0x4c0 + 0x4029D420, 0xA0014202, 0x00000002, 0x4029D420, 0xA0014302, 0x00000002, + 0x4029D420, 0xA0014402, 0x00000002, 0x4029D420, 0xA0014502, 0x00000002, + 0x4029D420, 0xA0014602, 0x00000002, 0x4029D420, 0xA0014702, 0x00000002, + 0x4029D420, 0xA0014802, 0x00000002, 0x4029D420, 0xA0014902, 0x00000002, + 0x4029D420, 0xA0014A02, 0x00000002, 0x4029D420, 0xA0014B02, 0x00000002, + 0x4029D420, 0xA0014C02, 0x00000002, 0x4029D420, 0xA0014D02, 0x00000002, + 0x4029D420, 0xA0014E02, 0x00000002, 0x4029D420, 0xA0014F02, 0x00000002, + 0x4029D420, 0xA0015002, 0x00000002, 0x4029D420, 0xA0015102, 0x00000002, + 0x4029D420, 0xA0015202, 0x00000002, 0x4029D420, 0xA0015302, 0x00000002, + 0x4029D420, 0xA0015402, 0x00000002, 0x4029D420, 0xA0015502, 0x00000002, + 0x4029D420, 0xA0015602, 0x00000002, 0x0029D484, + // Block 20, offset 0x500 + 0xA0015604, 0x00000002, 0x4029D420, 0xA0015702, 0x00000002, 0x4029D420, + 0xA0015802, 0x00000002, 0x4029D420, 0xA0015902, 0x00000002, 0x4029D420, + 0xA0015A02, 0x00000002, 0x4029D420, 0xA0015B02, 0x00000002, 0x4029D420, + 0xA0015C02, 0x00000002, 0x4029D420, 0xA0015D02, 0x00000002, 0x4029D420, + 0xA0015E02, 0x00000002, 0x4029D420, 0xA0015F02, 0x00000002, 0x4029D420, + 0xA0016002, 0x00000002, 0x4029D420, 0xA0016102, 0x00000002, 0x4029D420, + 0xA0016202, 0x00000002, 0x4029D420, 0xA0016302, 0x00000002, 0x4029D420, + 0xA0016402, 0x00000002, 0x4029D420, 0xA0016502, 0x00000002, 0x4029D420, + 0xA0016602, 0x00000002, 0x4029D420, 0xA0016702, 0x00000002, 0x4029D420, + 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, + 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02, + // Block 21, offset 0x540 + 0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02, + 0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02, + 0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02, + 0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02, + 0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, 0xA0016C02, + 0x00000002, 0x4029D420, 0xA0016C02, 0x00000002, 0x4029D420, 0xA0017002, + 0x00000002, 0x4029D420, 0xA0017102, 0x00000002, 0x4029D420, 0xA0017202, + 0x00000002, 0x4029D420, 0xA0017302, 0x00000002, 0x4029D420, 0xA0017402, + 0x00000002, 0x4029D420, 0xA0017502, 0x00000002, 0x4029D420, 0xA0017602, + 0x00000002, 0x4029D420, 0xA0017702, 0x00000003, 0x0029D49E, 0x0009589E, + 0x0029D69E, 0x00000002, 0x0029D486, 0x0029CC86, + // Block 22, offset 0x580 + 0x00000002, 0x4029D620, 0xA0013F02, 0x00000002, 0x4029D620, 0xA0014002, + 0x00000002, 0x4029D620, 0xA0014102, 0x00000002, 0x4029D620, 0xA0014202, + 0x00000002, 0x4029D620, 0xA0014302, 0x00000002, 0x4029D620, 0xA0014402, + 0x00000002, 0x4029D620, 0xA0014502, 0x00000002, 0x4029D620, 0xA0014602, + 0x00000002, 0x4029D620, 0xA0014702, 0x00000002, 0x4029D620, 0xA0014802, + 0x00000002, 0x4029D620, 0xA0014902, 0x00000002, 0x4029D620, 0xA0014A02, + 0x00000002, 0x4029D620, 0xA0014B02, 0x00000002, 0x4029D620, 0xA0014C02, + 0x00000002, 0x4029D620, 0xA0014D02, 0x00000002, 0x4029D620, 0xA0014E02, + 0x00000002, 0x4029D620, 0xA0014F02, 0x00000002, 0x4029D620, 0xA0015002, + 0x00000002, 0x4029D620, 0xA0015102, 0x00000002, 0x4029D620, 0xA0015202, + 0x00000002, 0x4029D620, 0xA0015302, 0x00000002, + // Block 23, offset 0x5c0 + 0x4029D620, 0xA0015402, 0x00000002, 0x4029D620, 0xA0015502, 0x00000002, + 0x4029D620, 0xA0015602, 0x00000002, 0x0029D684, 0xA0015604, 0x00000002, + 0x4029D620, 0xA0015702, 0x00000002, 0x4029D620, 0xA0015802, 0x00000002, + 0x4029D620, 0xA0015902, 0x00000002, 0x4029D620, 0xA0015A02, 0x00000002, + 0x4029D620, 0xA0015B02, 0x00000002, 0x4029D620, 0xA0015C02, 0x00000002, + 0x4029D620, 0xA0015D02, 0x00000002, 0x4029D620, 0xA0015E02, 0x00000002, + 0x4029D620, 0xA0015F02, 0x00000002, 0x4029D620, 0xA0016002, 0x00000002, + 0x4029D620, 0xA0016102, 0x00000002, 0x4029D620, 0xA0016202, 0x00000002, + 0x4029D620, 0xA0016302, 0x00000002, 0x4029D620, 0xA0016402, 0x00000002, + 0x4029D620, 0xA0016502, 0x00000002, 0x4029D620, 0xA0016602, 0x00000002, + 0x4029D620, 0xA0016702, 0x00000002, 0x4029D620, + // Block 24, offset 0x600 + 0xA0016802, 0x00000002, 0x4029D620, 0xA0016802, 0x00000002, 0x4029D620, + 0xA0016802, 0x00000002, 0x4029D620, 0xA0016802, 0x00000002, 0x4029D620, + 0xA0016802, 0x00000002, 0x4029D620, 0xA0016A02, 0x00000002, 0x4029D620, + 0xA0016C02, 0x00000002, 0x4029D620, 0xA0016C02, 0x00000002, 0x4029D620, + 0xA0016C02, 0x00000002, 0x4029D620, 0xA0016C02, 0x00000002, 0x4029D620, + 0xA0016C02, 0x00000002, 0x4029D620, 0xA0016C02, 0x00000002, 0x4029D620, + 0xA0016C02, 0x00000002, 0x4029D620, 0xA0016C02, 0x00000002, 0x4029D620, + 0xA0016C02, 0x00000002, 0x4029D620, 0xA0016C02, 0x00000002, 0x4029D620, + 0xA0016C02, 0x00000002, 0x4029D620, 0xA0017202, 0x00000002, 0x4029D620, + 0xA0017302, 0x00000002, 0x4029D620, 0xA0017402, 0x00000002, 0x4029D620, + 0xA0017502, 0x00000002, 0x4029D620, 0xA0017702, + // Block 25, offset 0x640 + 0x00000003, 0x0029D69E, 0x0009589E, 0x0029D89E, 0x00000003, 0x0029D69E, + 0x0009589E, 0x0029DC9E, 0x00000002, 0x0029D686, 0x0029CC86, 0x00000002, + 0x4029D820, 0xA0013F02, 0x00000002, 0x4029D820, 0xA0014002, 0x00000002, + 0x4029D820, 0xA0014102, 0x00000002, 0x4029D820, 0xA0014202, 0x00000002, + 0x4029D820, 0xA0014302, 0x00000002, 0x4029D820, 0xA0014402, 0x00000002, + 0x4029D820, 0xA0014502, 0x00000002, 0x4029D820, 0xA0014602, 0x00000002, + 0x4029D820, 0xA0014702, 0x00000002, 0x4029D820, 0xA0014802, 0x00000002, + 0x4029D820, 0xA0014902, 0x00000002, 0x4029D820, 0xA0014A02, 0x00000002, + 0x4029D820, 0xA0014B02, 0x00000002, 0x4029D820, 0xA0014C02, 0x00000002, + 0x4029D820, 0xA0014D02, 0x00000002, 0x4029D820, 0xA0014E02, 0x00000002, + 0x4029D820, 0xA0014F02, 0x00000002, 0x4029D820, + // Block 26, offset 0x680 + 0xA0015002, 0x00000002, 0x4029D820, 0xA0015102, 0x00000002, 0x4029D820, + 0xA0015202, 0x00000002, 0x4029D820, 0xA0015302, 0x00000002, 0x4029D820, + 0xA0015402, 0x00000002, 0x4029D820, 0xA0015502, 0x00000002, 0x4029D820, + 0xA0015602, 0x00000002, 0x0029D884, 0xA0015604, 0x00000002, 0x4029D820, + 0xA0015702, 0x00000002, 0x4029D820, 0xA0015802, 0x00000002, 0x4029D820, + 0xA0015902, 0x00000002, 0x4029D820, 0xA0015A02, 0x00000002, 0x4029D820, + 0xA0015B02, 0x00000002, 0x4029D820, 0xA0015C02, 0x00000002, 0x4029D820, + 0xA0015D02, 0x00000002, 0x4029D820, 0xA0015E02, 0x00000002, 0x4029D820, + 0xA0015F02, 0x00000002, 0x4029D820, 0xA0016002, 0x00000002, 0x4029D820, + 0xA0016102, 0x00000002, 0x4029D820, 0xA0016202, 0x00000002, 0x4029D820, + 0xA0016302, 0x00000002, 0x4029D820, 0xA0016402, + // Block 27, offset 0x6c0 + 0x00000002, 0x4029D820, 0xA0016502, 0x00000002, 0x4029D820, 0xA0016602, + 0x00000002, 0x4029D820, 0xA0016702, 0x00000002, 0x4029D820, 0xA0016902, + 0x00000002, 0x4029D820, 0xA0016C02, 0x00000002, 0x4029D820, 0xA0016C02, + 0x00000002, 0x4029D820, 0xA0016C02, 0x00000002, 0x4029D820, 0xA0016C02, + 0x00000002, 0x4029D820, 0xA0016C02, 0x00000002, 0x4029D820, 0xA0016C02, + 0x00000002, 0x4029D820, 0xA0016C02, 0x00000002, 0x4029D820, 0xA0017202, + 0x00000002, 0x4029D820, 0xA0017302, 0x00000002, 0x4029D820, 0xA0017402, + 0x00000002, 0x4029D820, 0xA0017502, 0x00000002, 0x4029D820, 0xA0017702, + 0x00000002, 0x0029D886, 0x0029CC86, 0x00000002, 0x4029DA20, 0xA0013F02, + 0x00000002, 0x4029DA20, 0xA0014002, 0x00000002, 0x4029DA20, 0xA0014102, + 0x00000002, 0x4029DA20, 0xA0014202, 0x00000002, + // Block 28, offset 0x700 + 0x4029DA20, 0xA0014302, 0x00000002, 0x4029DA20, 0xA0014402, 0x00000002, + 0x4029DA20, 0xA0014502, 0x00000002, 0x4029DA20, 0xA0014602, 0x00000002, + 0x4029DA20, 0xA0014702, 0x00000002, 0x4029DA20, 0xA0014802, 0x00000002, + 0x4029DA20, 0xA0014902, 0x00000002, 0x4029DA20, 0xA0014A02, 0x00000002, + 0x4029DA20, 0xA0014B02, 0x00000002, 0x4029DA20, 0xA0014C02, 0x00000002, + 0x4029DA20, 0xA0014D02, 0x00000002, 0x4029DA20, 0xA0014E02, 0x00000002, + 0x4029DA20, 0xA0014F02, 0x00000002, 0x4029DA20, 0xA0015002, 0x00000002, + 0x4029DA20, 0xA0015102, 0x00000002, 0x4029DA20, 0xA0015202, 0x00000002, + 0x4029DA20, 0xA0015302, 0x00000002, 0x4029DA20, 0xA0015402, 0x00000002, + 0x4029DA20, 0xA0015502, 0x00000002, 0x4029DA20, 0xA0015602, 0x00000002, + 0x0029DA84, 0xA0015604, 0x00000002, 0x4029DA20, + // Block 29, offset 0x740 + 0xA0015702, 0x00000002, 0x4029DA20, 0xA0015802, 0x00000002, 0x4029DA20, + 0xA0015902, 0x00000002, 0x4029DA20, 0xA0015A02, 0x00000002, 0x4029DA20, + 0xA0015B02, 0x00000002, 0x4029DA20, 0xA0015C02, 0x00000002, 0x4029DA20, + 0xA0015D02, 0x00000002, 0x4029DA20, 0xA0015E02, 0x00000002, 0x4029DA20, + 0xA0015F02, 0x00000002, 0x4029DA20, 0xA0016002, 0x00000002, 0x4029DA20, + 0xA0016102, 0x00000002, 0x4029DA20, 0xA0016202, 0x00000002, 0x4029DA20, + 0xA0016302, 0x00000002, 0x4029DA20, 0xA0016402, 0x00000002, 0x4029DA20, + 0xA0016502, 0x00000002, 0x4029DA20, 0xA0016602, 0x00000002, 0x4029DA20, + 0xA0016702, 0x00000002, 0x4029DA20, 0xA0016C02, 0x00000002, 0x4029DA20, + 0xA0016C02, 0x00000002, 0x4029DA20, 0xA0016C02, 0x00000002, 0x4029DA20, + 0xA0016C02, 0x00000002, 0x4029DA20, 0xA0016C02, + // Block 30, offset 0x780 + 0x00000002, 0x4029DA20, 0xA0016C02, 0x00000002, 0x4029DA20, 0xA0016C02, + 0x00000002, 0x4029DA20, 0xA0016C02, 0x00000002, 0x4029DA20, 0xA0017202, + 0x00000002, 0x4029DA20, 0xA0017302, 0x00000002, 0x4029DA20, 0xA0017402, + 0x00000002, 0x4029DA20, 0xA0017502, 0x00000002, 0x4029DA20, 0xA0017702, + 0x00000003, 0x0029DA9E, 0x0009589E, 0x0029DC9E, 0x00000002, 0x0029DA86, + 0x0029CC86, 0x00000002, 0x4029DC20, 0xA0013F02, 0x00000002, 0x4029DC20, + 0xA0014002, 0x00000002, 0x4029DC20, 0xA0014102, 0x00000002, 0x4029DC20, + 0xA0014202, 0x00000002, 0x4029DC20, 0xA0014302, 0x00000002, 0x4029DC20, + 0xA0014402, 0x00000002, 0x4029DC20, 0xA0014502, 0x00000002, 0x4029DC20, + 0xA0014602, 0x00000002, 0x4029DC20, 0xA0014702, 0x00000002, 0x4029DC20, + 0xA0014802, 0x00000002, 0x4029DC20, 0xA0014902, + // Block 31, offset 0x7c0 + 0x00000002, 0x4029DC20, 0xA0014A02, 0x00000002, 0x4029DC20, 0xA0014B02, + 0x00000002, 0x4029DC20, 0xA0014C02, 0x00000002, 0x4029DC20, 0xA0014D02, + 0x00000002, 0x4029DC20, 0xA0014E02, 0x00000002, 0x4029DC20, 0xA0014F02, + 0x00000002, 0x4029DC20, 0xA0015002, 0x00000002, 0x4029DC20, 0xA0015102, + 0x00000002, 0x4029DC20, 0xA0015202, 0x00000002, 0x4029DC20, 0xA0015302, + 0x00000002, 0x4029DC20, 0xA0015402, 0x00000002, 0x4029DC20, 0xA0015502, + 0x00000002, 0x4029DC20, 0xA0015602, 0x00000002, 0x0029DC84, 0xA0015604, + 0x00000002, 0x4029DC20, 0xA0015702, 0x00000002, 0x4029DC20, 0xA0015802, + 0x00000002, 0x4029DC20, 0xA0015902, 0x00000002, 0x4029DC20, 0xA0015A02, + 0x00000002, 0x4029DC20, 0xA0015B02, 0x00000002, 0x4029DC20, 0xA0015C02, + 0x00000002, 0x4029DC20, 0xA0015D02, 0x00000002, + // Block 32, offset 0x800 + 0x4029DC20, 0xA0015E02, 0x00000002, 0x4029DC20, 0xA0015F02, 0x00000002, + 0x4029DC20, 0xA0016002, 0x00000002, 0x4029DC20, 0xA0016102, 0x00000002, + 0x4029DC20, 0xA0016202, 0x00000002, 0x4029DC20, 0xA0016302, 0x00000002, + 0x4029DC20, 0xA0016402, 0x00000002, 0x4029DC20, 0xA0016502, 0x00000002, + 0x4029DC20, 0xA0016602, 0x00000002, 0x4029DC20, 0xA0016702, 0x00000002, + 0x4029DC20, 0xA0016C02, 0x00000002, 0x4029DC20, 0xA0016C02, 0x00000002, + 0x4029DC20, 0xA0016C02, 0x00000002, 0x4029DC20, 0xA0016C02, 0x00000002, + 0x4029DC20, 0xA0016C02, 0x00000002, 0x4029DC20, 0xA0016C02, 0x00000002, + 0x4029DC20, 0xA0016C02, 0x00000002, 0x4029DC20, 0xA0017202, 0x00000002, + 0x4029DC20, 0xA0017302, 0x00000002, 0x4029DC20, 0xA0017402, 0x00000002, + 0x4029DC20, 0xA0017502, 0x00000002, 0x4029DC20, + // Block 33, offset 0x840 + 0xA0017702, 0x00000002, 0x0029DC86, 0x0029CC86, 0x00000002, 0x4029DE20, + 0xA0013F02, 0x00000002, 0x4029DE20, 0xA0014002, 0x00000002, 0x4029DE20, + 0xA0014102, 0x00000002, 0x4029DE20, 0xA0014202, 0x00000002, 0x4029DE20, + 0xA0014302, 0x00000002, 0x4029DE20, 0xA0014402, 0x00000002, 0x4029DE20, + 0xA0014502, 0x00000002, 0x4029DE20, 0xA0014602, 0x00000002, 0x4029DE20, + 0xA0014702, 0x00000002, 0x4029DE20, 0xA0014802, 0x00000002, 0x4029DE20, + 0xA0014902, 0x00000002, 0x4029DE20, 0xA0014A02, 0x00000002, 0x4029DE20, + 0xA0014B02, 0x00000002, 0x4029DE20, 0xA0014C02, 0x00000002, 0x4029DE20, + 0xA0014D02, 0x00000002, 0x4029DE20, 0xA0014E02, 0x00000002, 0x4029DE20, + 0xA0014F02, 0x00000002, 0x4029DE20, 0xA0015002, 0x00000002, 0x4029DE20, + 0xA0015102, 0x00000002, 0x4029DE20, 0xA0015202, + // Block 34, offset 0x880 + 0x00000002, 0x4029DE20, 0xA0015302, 0x00000002, 0x4029DE20, 0xA0015402, + 0x00000002, 0x4029DE20, 0xA0015502, 0x00000002, 0x4029DE20, 0xA0015602, + 0x00000002, 0x0029DE84, 0xA0015604, 0x00000002, 0x4029DE20, 0xA0015702, + 0x00000002, 0x4029DE20, 0xA0015802, 0x00000002, 0x4029DE20, 0xA0015902, + 0x00000002, 0x4029DE20, 0xA0015A02, 0x00000002, 0x4029DE20, 0xA0015B02, + 0x00000002, 0x4029DE20, 0xA0015C02, 0x00000002, 0x4029DE20, 0xA0015D02, + 0x00000002, 0x4029DE20, 0xA0015E02, 0x00000002, 0x4029DE20, 0xA0015F02, + 0x00000002, 0x4029DE20, 0xA0016002, 0x00000002, 0x4029DE20, 0xA0016102, + 0x00000002, 0x4029DE20, 0xA0016202, 0x00000002, 0x4029DE20, 0xA0016302, + 0x00000002, 0x4029DE20, 0xA0016402, 0x00000002, 0x4029DE20, 0xA0016502, + 0x00000002, 0x4029DE20, 0xA0016602, 0x00000002, + // Block 35, offset 0x8c0 + 0x4029DE20, 0xA0016702, 0x00000002, 0x4029DE20, 0xA0016C02, 0x00000002, + 0x4029DE20, 0xA0016C02, 0x00000002, 0x4029DE20, 0xA0016C02, 0x00000002, + 0x4029DE20, 0xA0016C02, 0x00000002, 0x4029DE20, 0xA0016C02, 0x00000002, + 0x4029DE20, 0xA0016C02, 0x00000002, 0x4029DE20, 0xA0016C02, 0x00000002, + 0x4029DE20, 0xA0016C02, 0x00000002, 0x4029DE20, 0xA0016C02, 0x00000002, + 0x4029DE20, 0xA0017202, 0x00000002, 0x4029DE20, 0xA0017302, 0x00000002, + 0x4029DE20, 0xA0017402, 0x00000002, 0x4029DE20, 0xA0017502, 0x00000002, + 0x4029DE20, 0xA0017702, 0x00000002, 0x402BDE20, 0xAE603202, 0x00000002, + 0x002BDE88, 0xAE603202, 0x00000002, 0x402BDE20, 0xAE603502, 0x00000002, + 0x002BDE88, 0xAE603502, 0x00000002, 0x402BDE20, 0xAE603702, 0x00000002, + 0x002BDE88, 0xAE603702, 0x00000003, 0x402BDE20, + // Block 36, offset 0x900 + 0xAE603702, 0xAE603202, 0x00000003, 0x002BDE88, 0xAE603702, 0xAE603202, + 0x00000003, 0x402BDE20, 0xAE603702, 0xAE603502, 0x00000003, 0x002BDE88, + 0xAE603702, 0xAE603502, 0x00000003, 0x402BDE20, 0xAE603702, 0xAE604E02, + 0x00000003, 0x002BDE88, 0xAE603702, 0xAE604E02, 0x00000003, 0x402BDE20, + 0xAE603702, 0xAE606402, 0x00000003, 0x002BDE88, 0xAE603702, 0xAE606402, + 0x00000002, 0x402BDE20, 0xAE603C02, 0x00000002, 0x002BDE88, 0xAE603C02, + 0x00000003, 0x402BDE20, 0xAE603C02, 0xAE603202, 0x00000003, 0x002BDE88, + 0xAE603C02, 0xAE603202, 0x00000003, 0x402BDE20, 0xAE603C02, 0xAE603502, + 0x00000003, 0x002BDE88, 0xAE603C02, 0xAE603502, 0x00000003, 0x402BDE20, + 0xAE603C02, 0xAE604E02, 0x00000003, 0x002BDE88, 0xAE603C02, 0xAE604E02, + 0x00000003, 0x402BDE20, 0xAE603C02, 0xAE606402, + // Block 37, offset 0x940 + 0x00000003, 0x002BDE88, 0xAE603C02, 0xAE606402, 0x00000002, 0x402BDE20, + 0xAE604102, 0x00000002, 0x002BDE88, 0xAE604102, 0x00000002, 0x402BDE20, + 0xAE604302, 0x00000002, 0x002BDE88, 0xAE604302, 0x00000003, 0x402BDE20, + 0xAE604302, 0xAE603202, 0x00000003, 0x002BDE88, 0xAE604302, 0xAE603202, + 0x00000002, 0x402BDE20, 0xAE604702, 0x00000002, 0x002BDE88, 0xAE604702, + 0x00000003, 0x402BDE20, 0xAE604702, 0xAE605B02, 0x00000003, 0x002BDE88, + 0xAE604702, 0xAE605B02, 0x00000002, 0x402BDE20, 0xAE604E02, 0x00000002, + 0x002BDE88, 0xAE604E02, 0x00000002, 0x402BDE20, 0xAE605202, 0x00000002, + 0x002BDE88, 0xAE605202, 0x00000003, 0x402BDE20, 0xAE605202, 0xAE605B02, + 0x00000003, 0x002BDE88, 0xAE605202, 0xAE605B02, 0x00000002, 0x402BDE20, + 0xACA05902, 0x00000002, 0x002BDE88, 0xACA05902, + // Block 38, offset 0x980 + 0x00000002, 0x402BDE20, 0xAE605B02, 0x00000002, 0x002BDE88, 0xAE605B02, + 0x00000002, 0x402BDE20, 0xAE606402, 0x00000002, 0x002BDE88, 0xAE606402, + 0x00000002, 0x402BDE20, 0xAE606502, 0x00000002, 0x002BDE88, 0xAE606502, + 0x00000002, 0x402BDE20, 0xAE606702, 0x00000002, 0x002BDE88, 0xAE606702, + 0x00000002, 0x402BDE20, 0xADC07002, 0x00000002, 0x002BDE88, 0xADC07002, + 0x00000003, 0x402BDE20, 0xADC07002, 0xAE603702, 0x00000003, 0x002BDE88, + 0xADC07002, 0xAE603702, 0x00000003, 0x402BDE20, 0xADC07002, 0xAE603C02, + 0x00000003, 0x002BDE88, 0xADC07002, 0xAE603C02, 0x00000002, 0x402BDE20, + 0xADC07602, 0x00000002, 0x002BDE88, 0xADC07602, 0x00000002, 0x84E615EF, + 0xAE613904, 0x00000004, 0x002BDE9C, 0x0002E49C, 0x002E829C, 0x0002E49C, + 0x00000003, 0x002BDE84, 0x0004E284, 0x002C3A84, + // Block 39, offset 0x9c0 + 0x00000003, 0x002BDE84, 0x0004E284, 0x002FE684, 0x00000003, 0x002BDE8A, + 0x0004E284, 0x002FE68A, 0x00000003, 0x002BDE9D, 0x0009569C, 0x002E829C, + 0x00000002, 0x002BDE84, 0x002BDE84, 0x00000002, 0x002BDE8A, 0x002BDE8A, + 0x00000002, 0x002BDE9D, 0x002C0A9D, 0x00000003, 0x002BDE84, 0xA0013904, + 0x002C9884, 0x00000003, 0x84E615EF, 0xAE613904, 0x84E6164C, 0x00000003, + 0x002BDE8A, 0xA0013904, 0x002C988A, 0x00000003, 0x002BDE94, 0xA0013914, + 0x002C9894, 0x00000004, 0x002BDE84, 0xA0013904, 0x002C9884, 0xAE603202, + 0x00000004, 0x002BDE8A, 0xA0013904, 0x002C988A, 0xAE603202, 0x00000004, + 0x002BDE84, 0xA0013904, 0x002C9884, 0xAE605B02, 0x00000004, 0x002BDE8A, + 0xA0013904, 0x002C988A, 0xAE605B02, 0x00000002, 0x84E615EF, 0x84E61771, + 0x00000002, 0x002BDE84, 0x002EE284, 0x00000002, + // Block 40, offset 0xa00 + 0x002BDE8A, 0x002EE28A, 0x00000002, 0x002BDE84, 0x00306C84, 0x00000002, + 0x002BDE8A, 0x00306C8A, 0x00000002, 0x84E615EF, 0x84E6185F, 0x00000002, + 0x002BDE84, 0x0030BE84, 0x00000002, 0x002BDE8A, 0x0030BE8A, 0x00000003, + 0x002BDE84, 0xA0013904, 0x0030BE84, 0x00000003, 0x002BDE8A, 0xA0013904, + 0x0030BE8A, 0x00000002, 0x002BDE84, 0x00310084, 0x00000002, 0x002BDE8A, + 0x0031008A, 0x00000002, 0x402C0A20, 0xAE605202, 0x00000002, 0x002C0A88, + 0xAE605202, 0x00000002, 0x402C0A20, 0xADC07002, 0x00000002, 0x002C0A88, + 0xADC07002, 0x00000002, 0x402C0A20, 0xADC07B02, 0x00000002, 0x002C0A88, + 0xADC07B02, 0x00000003, 0x002C0A9C, 0x002BDE9C, 0x002F7A9C, 0x00000002, + 0x402C3A20, 0xAE603202, 0x00000002, 0x002C3A88, 0xAE603202, 0x00000002, + 0x402C3A20, 0xAE603C02, 0x00000002, 0x002C3A88, + // Block 41, offset 0xa40 + 0xAE603C02, 0x00000002, 0x402C3A20, 0xAE604102, 0x00000002, 0x002C3A88, + 0xAE604102, 0x00000002, 0x402C3A20, 0xAE605202, 0x00000002, 0x002C3A88, + 0xAE605202, 0x00000002, 0x402C3A20, 0xACA05602, 0x00000002, 0x84E6161D, + 0xAE605604, 0x00000002, 0x002C3A88, 0xACA05602, 0x00000003, 0x402C3A20, + 0xACA05602, 0xAE603202, 0x00000003, 0x002C3A88, 0xACA05602, 0xAE603202, + 0x00000003, 0x002C3A84, 0x0004E284, 0x002EE284, 0x00000003, 0x002C3A84, + 0x0004E284, 0x00306C84, 0x00000004, 0x002C3A9D, 0x0009569C, 0x002DFE9C, + 0x002D229C, 0x00000003, 0x002C3A9C, 0x002BDE9C, 0x002E229C, 0x00000002, + 0x002C3A9D, 0x002E229D, 0x00000003, 0x002C3A9C, 0x002E829C, 0x0029D09C, + 0x00000003, 0x002C3A9C, 0x002E829C, 0x0029D29C, 0x00000003, 0x002C3A9D, + 0x002EE29C, 0x0002E49C, 0x00000004, 0x002C3A9D, + // Block 42, offset 0xa80 + 0x002EE29D, 0x002EE29D, 0x002E229D, 0x00000002, 0x402C6220, 0xAE604102, + 0x00000002, 0x002C6288, 0xAE604102, 0x00000002, 0x402C6220, 0xAE605202, + 0x00000002, 0x002C6288, 0xAE605202, 0x00000002, 0x402C6220, 0xACA05602, + 0x00000002, 0x002C6288, 0xACA05602, 0x00000002, 0x402C6220, 0xADC07002, + 0x00000002, 0x002C6288, 0xADC07002, 0x00000002, 0x402C6220, 0xADC07802, + 0x00000002, 0x002C6288, 0xADC07802, 0x00000002, 0x402C6220, 0xADC07B02, + 0x00000002, 0x002C6288, 0xADC07B02, 0x00000002, 0x402C6220, 0xA0007D02, + 0x00000002, 0x002C6288, 0xA0007D02, 0x00000002, 0x002C6284, 0xA0013904, + 0x00000002, 0x84E61631, 0xAE613904, 0x00000002, 0x002C628A, 0xA0013904, + 0x00000002, 0x84E61631, 0xAE613A04, 0x00000002, 0x002C6284, 0xA0013A04, + 0x00000002, 0x002C628A, 0xA0013A04, 0x00000002, + // Block 43, offset 0xac0 + 0x002C6284, 0x002C0A84, 0x00000003, 0x002C629C, 0x002E829C, 0x0029D09C, + 0x00000003, 0x002C629C, 0x002E829C, 0x0029D29C, 0x00000002, 0x002C6284, + 0x00312A84, 0x00000003, 0x002C6284, 0x00312A84, 0xA0004104, 0x00000003, + 0x002C628A, 0x00312A84, 0xA0004104, 0x00000003, 0x002C628A, 0x00312A8A, + 0xA0004104, 0x00000002, 0x002C6284, 0x00315084, 0x00000002, 0x002C6284, + 0x00316484, 0x00000002, 0x402C9820, 0xAE603202, 0x00000002, 0x002C9888, + 0xAE603202, 0x00000002, 0x402C9820, 0xAE603502, 0x00000002, 0x002C9888, + 0xAE603502, 0x00000002, 0x402C9820, 0xAE603702, 0x00000002, 0x002C9888, + 0xAE603702, 0x00000002, 0x402C9820, 0xAE603C02, 0x00000002, 0x002C9888, + 0xAE603C02, 0x00000003, 0x402C9820, 0xAE603C02, 0xAE603202, 0x00000003, + 0x002C9888, 0xAE603C02, 0xAE603202, 0x00000003, + // Block 44, offset 0xb00 + 0x402C9820, 0xAE603C02, 0xAE603502, 0x00000003, 0x002C9888, 0xAE603C02, + 0xAE603502, 0x00000003, 0x402C9820, 0xAE603C02, 0xAE604E02, 0x00000003, + 0x002C9888, 0xAE603C02, 0xAE604E02, 0x00000003, 0x402C9820, 0xAE603C02, + 0xAE606402, 0x00000003, 0x002C9888, 0xAE603C02, 0xAE606402, 0x00000002, + 0x402C9820, 0xAE604102, 0x00000002, 0x002C9888, 0xAE604102, 0x00000002, + 0x402C9820, 0xAE604702, 0x00000002, 0x002C9888, 0xAE604702, 0x00000002, + 0x402C9820, 0xAE604E02, 0x00000002, 0x002C9888, 0xAE604E02, 0x00000002, + 0x402C9820, 0xAE605202, 0x00000002, 0x002C9888, 0xAE605202, 0x00000002, + 0x402C9820, 0xACA05602, 0x00000002, 0x002C9888, 0xACA05602, 0x00000003, + 0x402C9820, 0xACA05602, 0xAE603702, 0x00000003, 0x002C9888, 0xACA05602, + 0xAE603702, 0x00000002, 0x402C9820, 0xACA05902, + // Block 45, offset 0xb40 + 0x00000002, 0x002C9888, 0xACA05902, 0x00000002, 0x402C9820, 0xAE605B02, + 0x00000002, 0x002C9888, 0xAE605B02, 0x00000003, 0x402C9820, 0xAE605B02, + 0xAE603202, 0x00000003, 0x002C9888, 0xAE605B02, 0xAE603202, 0x00000003, + 0x402C9820, 0xAE605B02, 0xAE603502, 0x00000003, 0x002C9888, 0xAE605B02, + 0xAE603502, 0x00000002, 0x402C9820, 0xAE606402, 0x00000002, 0x002C9888, + 0xAE606402, 0x00000002, 0x402C9820, 0xAE606502, 0x00000002, 0x002C9888, + 0xAE606502, 0x00000002, 0x402C9820, 0xAE606702, 0x00000002, 0x002C9888, + 0xAE606702, 0x00000002, 0x402C9820, 0xADC07002, 0x00000002, 0x002C9888, + 0xADC07002, 0x00000003, 0x402C9820, 0xADC07002, 0xAE603C02, 0x00000003, + 0x002C9888, 0xADC07002, 0xAE603C02, 0x00000002, 0x402C9820, 0xADC07802, + 0x00000002, 0x002C9888, 0xADC07802, 0x00000002, + // Block 46, offset 0xb80 + 0x402C9820, 0xADC07A02, 0x00000002, 0x002C9888, 0xADC07A02, 0x00000003, + 0x002C989C, 0x002F7A9C, 0x002D229C, 0x00000002, 0x402D0820, 0xAE605202, + 0x00000002, 0x002D0888, 0xAE605202, 0x00000002, 0x002D0884, 0xA0013A04, + 0x00000002, 0x002D088A, 0xA0013A04, 0x00000003, 0x002D088A, 0x002BDE8A, + 0x0030F68A, 0x00000003, 0x002D0884, 0x002D0884, 0x002D9A84, 0x00000003, + 0x002D0884, 0x002D0884, 0x002E2284, 0x00000002, 0x002D0884, 0x002EDA84, + 0x00000004, 0x002D089D, 0x002F7A9D, 0x002C989D, 0x002C989D, 0x00000002, + 0x402D2220, 0xAE603202, 0x00000002, 0x002D2288, 0xAE603202, 0x00000002, + 0x402D2220, 0xAE603702, 0x00000002, 0x002D2288, 0xAE603702, 0x00000002, + 0x402D2220, 0xAE603C02, 0x00000002, 0x002D2288, 0xAE603C02, 0x00000002, + 0x402D2220, 0xAE604102, 0x00000002, 0x002D2288, + // Block 47, offset 0xbc0 + 0xAE604102, 0x00000002, 0x402D2220, 0xAE605202, 0x00000002, 0x002D2288, + 0xAE605202, 0x00000002, 0x402D2220, 0xACA05602, 0x00000002, 0x002D2288, + 0xACA05602, 0x00000002, 0x402D2220, 0xAE605B02, 0x00000002, 0x002D2288, + 0xAE605B02, 0x00000002, 0x002D2284, 0xA0006104, 0x00000002, 0x002D228A, + 0xA0006104, 0x00000002, 0x002D2284, 0xA0013A04, 0x00000002, 0x002D228A, + 0xA0013A04, 0x00000003, 0x002D229C, 0x002BDE9C, 0x002E229C, 0x00000003, + 0x002D229D, 0x002D689D, 0x00312A9C, 0x00000003, 0x002D229D, 0x002F2C9D, + 0x002BDE9C, 0x00000002, 0x402D6820, 0xAE603C02, 0x00000002, 0x002D6888, + 0xAE603C02, 0x00000002, 0x402D6820, 0xAE604102, 0x00000002, 0x002D6888, + 0xAE604102, 0x00000002, 0x402D6820, 0xAE604702, 0x00000002, 0x002D6888, + 0xAE604702, 0x00000002, 0x402D6820, 0xAE605202, + // Block 48, offset 0xc00 + 0x00000002, 0x002D6888, 0xAE605202, 0x00000002, 0x402D6820, 0xACA05602, + 0x00000002, 0x002D6888, 0xACA05602, 0x00000002, 0x402D6820, 0xADC07002, + 0x00000002, 0x002D6888, 0xADC07002, 0x00000002, 0x402D6820, 0xADC07902, + 0x00000002, 0x002D6888, 0xADC07902, 0x00000002, 0x402D6820, 0xADC07B02, + 0x00000002, 0x402D6820, 0xA0007D02, 0x00000002, 0x002D6888, 0xA0007D02, + 0x00000003, 0x002D689C, 0x002F2C9D, 0x002BDE9C, 0x00000002, 0x402D9A20, + 0xAE603202, 0x00000002, 0x002D9A88, 0xAE603202, 0x00000002, 0x402D9A20, + 0xAE603502, 0x00000002, 0x002D9A88, 0xAE603502, 0x00000002, 0x402D9A20, + 0xAE603702, 0x00000002, 0x002D9A88, 0xAE603702, 0x00000002, 0x402D9A20, + 0xAE603C02, 0x00000002, 0x002D9A88, 0xAE603C02, 0x00000002, 0x402D9A20, + 0xAE604102, 0x00000002, 0x002D9A88, 0xAE604102, + // Block 49, offset 0xc40 + 0x00000002, 0x402D9A20, 0xAE604702, 0x00000002, 0x002D9A88, 0xAE604702, + 0x00000003, 0x402D9A20, 0xAE604702, 0xAE603202, 0x00000003, 0x002D9A88, + 0xAE604702, 0xAE603202, 0x00000002, 0x402D9A20, 0xAE604E02, 0x00000002, + 0x002D9A88, 0xAE604E02, 0x00000002, 0x002D9A88, 0xAE605202, 0x00000002, + 0x402D9A20, 0xACA05902, 0x00000002, 0x002D9A88, 0xACA05902, 0x00000002, + 0x402D9A20, 0xAE605B02, 0x00000002, 0x002D9A88, 0xAE605B02, 0x00000002, + 0x402D9A20, 0xAE606402, 0x00000002, 0x002D9A88, 0xAE606402, 0x00000002, + 0x402D9A20, 0xAE606502, 0x00000002, 0x002D9A88, 0xAE606502, 0x00000002, + 0x402D9A20, 0xAE606702, 0x00000002, 0x002D9A88, 0xAE606702, 0x00000002, + 0x402D9A20, 0xADC07002, 0x00000002, 0x002D9A88, 0xADC07002, 0x00000002, + 0x402D9A20, 0xADC07A02, 0x00000002, 0x002D9A88, + // Block 50, offset 0xc80 + 0xADC07A02, 0x00000002, 0x002D9A9D, 0x002C3A9D, 0x00000002, 0x002D9A9D, + 0x002C629D, 0x00000002, 0x402DCC20, 0xAE603C02, 0x00000002, 0x002DCC88, + 0xAE603C02, 0x00000002, 0x402DCC20, 0xAE604102, 0x00000002, 0x402DFE20, + 0xAE603202, 0x00000002, 0x002DFE88, 0xAE603202, 0x00000002, 0x402DFE20, + 0xAE604102, 0x00000002, 0x002DFE88, 0xAE604102, 0x00000002, 0x402DFE20, + 0xACA05602, 0x00000002, 0x002DFE88, 0xACA05602, 0x00000002, 0x002DFE84, + 0xA0006104, 0x00000002, 0x002DFE8A, 0xA0006104, 0x00000002, 0x402DFE20, + 0xADC07002, 0x00000002, 0x002DFE88, 0xADC07002, 0x00000002, 0x402DFE20, + 0xADC07B02, 0x00000002, 0x002DFE88, 0xADC07B02, 0x00000004, 0x002DFE9C, + 0x002C3A9C, 0x002BDE9C, 0x002E229C, 0x00000003, 0x002DFE9C, 0x002D689D, + 0x00312A9C, 0x00000003, 0x002DFE9C, 0x002E829C, + // Block 51, offset 0xcc0 + 0x0029D09C, 0x00000003, 0x002DFE9C, 0x002E829C, 0x0029D29C, 0x00000003, + 0x002DFE9C, 0x002F2C9D, 0x002BDE9C, 0x00000002, 0x402E2220, 0xAE603202, + 0x00000002, 0x002E2288, 0xAE603202, 0x00000002, 0x402E2220, 0xAE604102, + 0x00000002, 0x002E2288, 0xAE604102, 0x00000002, 0x402E2220, 0xACA05602, + 0x00000002, 0x002E2288, 0xACA05602, 0x00000002, 0x402E2220, 0xADC07002, + 0x00000002, 0x002E2288, 0xADC07002, 0x00000003, 0x402E2220, 0xADC07002, + 0xAE605B02, 0x00000003, 0x002E2288, 0xADC07002, 0xAE605B02, 0x00000002, + 0x402E2220, 0xADC07802, 0x00000002, 0x002E2288, 0xADC07802, 0x00000002, + 0x402E2220, 0xADC07B02, 0x00000002, 0x002E2288, 0xADC07B02, 0x00000002, + 0x402E2220, 0xA0007D02, 0x00000002, 0x002E2288, 0xA0007D02, 0x00000002, + 0x402E2220, 0xA0013902, 0x00000002, 0x402E2220, + // Block 52, offset 0xd00 + 0xA0013902, 0x00000002, 0x002E2288, 0xA0013902, 0x00000002, 0x002E2288, + 0xA0013902, 0x00000002, 0x002E2284, 0x002E2284, 0x00000002, 0x002E228A, + 0x002E228A, 0x00000003, 0x002E229C, 0x002EE29C, 0x002D229C, 0x00000002, + 0x002E2284, 0x002FE684, 0x00000003, 0x002E229D, 0x00302C9D, 0x002C629D, + 0x00000002, 0x002E2284, 0x00312A84, 0x00000002, 0x402E8220, 0xAE603202, + 0x00000002, 0x002E8288, 0xAE603202, 0x00000002, 0x402E8220, 0xAE605202, + 0x00000002, 0x002E8288, 0xAE605202, 0x00000002, 0x402E8220, 0xADC07002, + 0x00000002, 0x002E8288, 0xADC07002, 0x00000003, 0x002E829C, 0x0009569C, + 0x002FE69C, 0x00000004, 0x002E829C, 0x0009569C, 0x002FE69C, 0x0029D09C, + 0x00000003, 0x002E829D, 0x002D689D, 0x00312A9C, 0x00000003, 0x002E829C, + 0x002D9A9C, 0x002E229C, 0x00000003, 0x002E829C, + // Block 53, offset 0xd40 + 0x002E829C, 0x0029D09C, 0x00000003, 0x002E829C, 0x002E829C, 0x0029D29C, + 0x00000003, 0x002E829C, 0x002EE29C, 0x002E229C, 0x00000003, 0x002E829D, + 0x002F2C9D, 0x002BDE9C, 0x00000002, 0x402E9E20, 0xAE603202, 0x00000002, + 0x002E9E88, 0xAE603202, 0x00000002, 0x402E9E20, 0xAE603502, 0x00000002, + 0x002E9E88, 0xAE603502, 0x00000002, 0x402E9E20, 0xAE604102, 0x00000002, + 0x002E9E88, 0xAE604102, 0x00000002, 0x402E9E20, 0xAE604E02, 0x00000002, + 0x002E9E88, 0xAE604E02, 0x00000002, 0x402E9E20, 0xAE605202, 0x00000002, + 0x002E9E88, 0xAE605202, 0x00000002, 0x402E9E20, 0xACA05602, 0x00000002, + 0x002E9E88, 0xACA05602, 0x00000002, 0x002E9E84, 0xA0006104, 0x00000002, + 0x002E9E8A, 0xA0006104, 0x00000002, 0x402E9E20, 0xADC07002, 0x00000002, + 0x002E9E88, 0xADC07002, 0x00000002, 0x402E9E20, + // Block 54, offset 0xd80 + 0xADC07802, 0x00000002, 0x002E9E88, 0xADC07802, 0x00000002, 0x402E9E20, + 0xADC07B02, 0x00000002, 0x002E9E88, 0xADC07B02, 0x00000003, 0x002E9E9D, + 0x002C989D, 0x0030E29D, 0x00000002, 0x002E9E9D, 0x002D229D, 0x00000002, + 0x402EE220, 0xAE603202, 0x00000002, 0x002EE288, 0xAE603202, 0x00000002, + 0x402EE220, 0xAE603502, 0x00000002, 0x002EE288, 0xAE603502, 0x00000002, + 0x402EE220, 0xAE603702, 0x00000002, 0x002EE288, 0xAE603702, 0x00000002, + 0x402EE220, 0xAE603C02, 0x00000002, 0x002EE288, 0xAE603C02, 0x00000003, + 0x402EE220, 0xAE603C02, 0xAE603202, 0x00000003, 0x002EE288, 0xAE603C02, + 0xAE603202, 0x00000003, 0x402EE220, 0xAE603C02, 0xAE603502, 0x00000003, + 0x002EE288, 0xAE603C02, 0xAE603502, 0x00000003, 0x402EE220, 0xAE603C02, + 0xAE604E02, 0x00000003, 0x002EE288, 0xAE603C02, + // Block 55, offset 0xdc0 + 0xAE604E02, 0x00000003, 0x402EE220, 0xAE603C02, 0xAE606402, 0x00000003, + 0x002EE288, 0xAE603C02, 0xAE606402, 0x00000002, 0x402EE220, 0xAE604102, + 0x00000002, 0x002EE288, 0xAE604102, 0x00000002, 0x402EE220, 0xAE604702, + 0x00000002, 0x002EE288, 0xAE604702, 0x00000003, 0x402EE220, 0xAE604702, + 0xAE605B02, 0x00000003, 0x002EE288, 0xAE604702, 0xAE605B02, 0x00000002, + 0x402EE220, 0xAE604D02, 0x00000002, 0x002EE288, 0xAE604D02, 0x00000002, + 0x402EE220, 0xAE604E02, 0x00000002, 0x002EE288, 0xAE604E02, 0x00000003, + 0x402EE220, 0xAE604E02, 0xAE603202, 0x00000003, 0x002EE288, 0xAE604E02, + 0xAE603202, 0x00000003, 0x402EE220, 0xAE604E02, 0xAE604702, 0x00000003, + 0x002EE288, 0xAE604E02, 0xAE604702, 0x00000003, 0x402EE220, 0xAE604E02, + 0xAE605B02, 0x00000003, 0x002EE288, 0xAE604E02, + // Block 56, offset 0xe00 + 0xAE605B02, 0x00000002, 0x402EE220, 0xAE605202, 0x00000002, 0x002EE288, + 0xAE605202, 0x00000003, 0x402EE220, 0xAE605202, 0xAE605B02, 0x00000003, + 0x002EE288, 0xAE605202, 0xAE605B02, 0x00000002, 0x402EE220, 0xA0005402, + 0x00000002, 0x002EE288, 0xA0005402, 0x00000003, 0x402EE220, 0xA0005402, + 0xAE603202, 0x00000003, 0x002EE288, 0xA0005402, 0xAE603202, 0x00000002, + 0x402EE220, 0xACA05902, 0x00000002, 0x002EE288, 0xACA05902, 0x00000003, + 0x402EE220, 0xACA05902, 0xAE605B02, 0x00000003, 0x002EE288, 0xACA05902, + 0xAE605B02, 0x00000002, 0x402EE220, 0xAE605B02, 0x00000002, 0x002EE288, + 0xAE605B02, 0x00000003, 0x402EE220, 0xAE605B02, 0xAE603202, 0x00000003, + 0x002EE288, 0xAE605B02, 0xAE603202, 0x00000003, 0x402EE220, 0xAE605B02, + 0xAE603502, 0x00000003, 0x002EE288, 0xAE605B02, + // Block 57, offset 0xe40 + 0xAE603502, 0x00000002, 0x402EE220, 0xAE606402, 0x00000002, 0x002EE288, + 0xAE606402, 0x00000002, 0x402EE220, 0xAE606502, 0x00000002, 0x002EE288, + 0xAE606502, 0x00000002, 0x402EE220, 0xAE606702, 0x00000002, 0x002EE288, + 0xAE606702, 0x00000002, 0x402EE220, 0xAD806802, 0x00000002, 0x002EE288, + 0xAD806802, 0x00000003, 0x402EE220, 0xAD806802, 0xAE603202, 0x00000003, + 0x002EE288, 0xAD806802, 0xAE603202, 0x00000003, 0x402EE220, 0xAD806802, + 0xAE603502, 0x00000003, 0x002EE288, 0xAD806802, 0xAE603502, 0x00000003, + 0x402EE220, 0xAD806802, 0xAE604E02, 0x00000003, 0x002EE288, 0xAD806802, + 0xAE604E02, 0x00000003, 0x402EE220, 0xAD806802, 0xAE606402, 0x00000003, + 0x002EE288, 0xAD806802, 0xAE606402, 0x00000003, 0x402EE220, 0xAD806802, + 0xADC07002, 0x00000003, 0x002EE288, 0xAD806802, + // Block 58, offset 0xe80 + 0xADC07002, 0x00000002, 0x402EE220, 0xADC07002, 0x00000002, 0x002EE288, + 0xADC07002, 0x00000003, 0x402EE220, 0xADC07002, 0xAE603C02, 0x00000003, + 0x002EE288, 0xADC07002, 0xAE603C02, 0x00000003, 0x002EE284, 0xA0013904, + 0x002C9884, 0x00000003, 0x002EE28A, 0xA0013904, 0x002C988A, 0x00000003, + 0x002EE294, 0xA0013914, 0x002C9894, 0x00000002, 0x002EE29D, 0x002DFE9D, + 0x00000002, 0x002EE284, 0x002EE284, 0x00000002, 0x002EE28A, 0x002EE28A, + 0x00000002, 0x402F2C20, 0xAE603202, 0x00000002, 0x002F2C88, 0xAE603202, + 0x00000002, 0x402F2C20, 0xAE605202, 0x00000002, 0x002F2C88, 0xAE605202, + 0x00000004, 0x002F2C9C, 0x0002E49C, 0x002E829C, 0x0002E49C, 0x00000002, + 0x002F2C9D, 0x002BDE9D, 0x00000003, 0x002F2C9D, 0x002F2C9D, 0x002E829D, + 0x00000003, 0x002F2C9D, 0x002F2C9D, 0x0030BE9D, + // Block 59, offset 0xec0 + 0x00000003, 0x002F2C9D, 0x00302C9D, 0x002C989D, 0x00000002, 0x002F5684, + 0x002F2C84, 0x00000002, 0x402F7A20, 0xAE603202, 0x00000002, 0x002F7A88, + 0xAE603202, 0x00000002, 0x402F7A20, 0xAE604102, 0x00000002, 0x002F7A88, + 0xAE604102, 0x00000002, 0x402F7A20, 0xAE605202, 0x00000002, 0x002F7A88, + 0xAE605202, 0x00000002, 0x402F7A20, 0xACA05602, 0x00000002, 0x002F7A88, + 0xACA05602, 0x00000002, 0x002F7A84, 0xA0006104, 0x00000002, 0x002F7A8A, + 0xA0006104, 0x00000002, 0x402F7A20, 0xAE606502, 0x00000002, 0x002F7A88, + 0xAE606502, 0x00000002, 0x402F7A20, 0xAE606702, 0x00000002, 0x002F7A88, + 0xAE606702, 0x00000002, 0x402F7A20, 0xADC07002, 0x00000002, 0x002F7A88, + 0xADC07002, 0x00000003, 0x402F7A20, 0xADC07002, 0xAE605B02, 0x00000003, + 0x002F7A88, 0xADC07002, 0xAE605B02, 0x00000002, + // Block 60, offset 0xf00 + 0x402F7A20, 0xADC07B02, 0x00000002, 0x002F7A88, 0xADC07B02, 0x00000002, + 0x002F7A84, 0xA0013A04, 0x00000002, 0x002F7A8A, 0xA0013A04, 0x00000003, + 0x002F7A9C, 0x002BDE9C, 0x002C629C, 0x00000005, 0x002F7A9C, 0x002BDE9C, + 0x002C629C, 0x0009569C, 0x002FE69C, 0x00000006, 0x002F7A9C, 0x002BDE9C, + 0x002C629C, 0x0009569C, 0x002FE69C, 0x0029D09C, 0x00000002, 0x402FE620, + 0xAE603202, 0x00000002, 0x002FE688, 0xAE603202, 0x00000003, 0x402FE620, + 0xAE603202, 0xAE605202, 0x00000003, 0x002FE688, 0xAE603202, 0xAE605202, + 0x00000002, 0x402FE620, 0xAE603C02, 0x00000002, 0x002FE688, 0xAE603C02, + 0x00000002, 0x402FE620, 0xAE604102, 0x00000002, 0x002FE688, 0xAE604102, + 0x00000003, 0x402FE620, 0xAE604102, 0xAE605202, 0x00000003, 0x002FE688, + 0xAE604102, 0xAE605202, 0x00000002, 0x402FE620, + // Block 61, offset 0xf40 + 0xAE605202, 0x00000002, 0x002FE688, 0xAE605202, 0x00000002, 0x402FE620, + 0xACA05602, 0x00000002, 0x002FE688, 0xACA05602, 0x00000002, 0x002FE684, + 0xA0006104, 0x00000002, 0x002FE68A, 0xA0006104, 0x00000002, 0x402FE620, + 0xADC07002, 0x00000002, 0x002FE688, 0xADC07002, 0x00000003, 0x402FE620, + 0xADC07002, 0xAE605202, 0x00000003, 0x002FE688, 0xADC07002, 0xAE605202, + 0x00000002, 0x402FE620, 0xADC07702, 0x00000002, 0x002FE688, 0xADC07702, + 0x00000002, 0x002FE684, 0xA0013A04, 0x00000002, 0x84E617F3, 0xAE613A04, + 0x00000002, 0x002FE684, 0xA0013A04, 0x00000002, 0x002FE68A, 0xA0013A04, + 0x00000003, 0x002FE684, 0xA0013A04, 0xAE605202, 0x00000002, 0x002FE69D, + 0x002BDE9D, 0x00000003, 0x002FE69D, 0x002EE29D, 0x002FE69D, 0x00000003, + 0x002FE684, 0xA0013904, 0x002FE684, 0x00000003, + // Block 62, offset 0xf80 + 0x002FE68A, 0xA0013904, 0x002FE68A, 0x00000003, 0x002FE684, 0xA0013A04, + 0x00302C84, 0x00000002, 0x40302C20, 0xAE604102, 0x00000002, 0x00302C88, + 0xAE604102, 0x00000002, 0x40302C20, 0xAE604702, 0x00000002, 0x40302C20, + 0xAE605202, 0x00000002, 0x00302C88, 0xAE605202, 0x00000002, 0x40302C20, + 0xACA05602, 0x00000002, 0x00302C88, 0xACA05602, 0x00000002, 0x40302C20, + 0xADC07002, 0x00000002, 0x00302C88, 0xADC07002, 0x00000002, 0x40302C20, + 0xADC07702, 0x00000002, 0x00302C88, 0xADC07702, 0x00000002, 0x40302C20, + 0xADC07802, 0x00000002, 0x00302C88, 0xADC07802, 0x00000002, 0x40302C20, + 0xADC07B02, 0x00000002, 0x00302C88, 0xADC07B02, 0x00000002, 0x00302C84, + 0xA0013A04, 0x00000002, 0x00302C8A, 0xA0013A04, 0x00000002, 0x00302C84, + 0x002C5684, 0x00000003, 0x00302C8A, 0x002C988A, + // Block 63, offset 0xfc0 + 0x002E228A, 0x00000003, 0x00302C84, 0xA0013904, 0x002D6884, 0x00000003, + 0x00302C9D, 0x002D689D, 0x00312A9C, 0x00000002, 0x00302C84, 0x002FE684, + 0x00000002, 0x00302C84, 0x002FE684, 0x00000002, 0x00302C84, 0x00300884, + 0x00000002, 0x00302C84, 0x00312A84, 0x00000002, 0x00302C8A, 0x00312A84, + 0x00000002, 0x40306C20, 0xAE603202, 0x00000002, 0x00306C88, 0xAE603202, + 0x00000002, 0x40306C20, 0xAE603502, 0x00000002, 0x00306C88, 0xAE603502, + 0x00000002, 0x40306C20, 0xAE603702, 0x00000002, 0x00306C88, 0xAE603702, + 0x00000002, 0x40306C20, 0xAE603C02, 0x00000002, 0x00306C88, 0xAE603C02, + 0x00000002, 0x40306C20, 0xAE604102, 0x00000002, 0x00306C88, 0xAE604102, + 0x00000002, 0x40306C20, 0xAE604302, 0x00000002, 0x00306C88, 0xAE604302, + 0x00000002, 0x40306C20, 0xAE604702, 0x00000002, + // Block 64, offset 0x1000 + 0x00306C88, 0xAE604702, 0x00000003, 0x40306C20, 0xAE604702, 0xAE603202, + 0x00000003, 0x00306C88, 0xAE604702, 0xAE603202, 0x00000003, 0x40306C20, + 0xAE604702, 0xAE603502, 0x00000003, 0x00306C88, 0xAE604702, 0xAE603502, + 0x00000003, 0x40306C20, 0xAE604702, 0xAE604102, 0x00000003, 0x00306C88, + 0xAE604702, 0xAE604102, 0x00000003, 0x40306C20, 0xAE604702, 0xAE605B02, + 0x00000003, 0x00306C88, 0xAE604702, 0xAE605B02, 0x00000002, 0x40306C20, + 0xAE604D02, 0x00000002, 0x00306C88, 0xAE604D02, 0x00000002, 0x40306C20, + 0xAE604E02, 0x00000002, 0x00306C88, 0xAE604E02, 0x00000003, 0x40306C20, + 0xAE604E02, 0xAE603202, 0x00000003, 0x00306C88, 0xAE604E02, 0xAE603202, + 0x00000002, 0x40306C20, 0xACA05902, 0x00000002, 0x00306C88, 0xACA05902, + 0x00000002, 0x40306C20, 0xAE605B02, 0x00000002, + // Block 65, offset 0x1040 + 0x00306C88, 0xAE605B02, 0x00000003, 0x40306C20, 0xAE605B02, 0xAE604702, + 0x00000003, 0x00306C88, 0xAE605B02, 0xAE604702, 0x00000002, 0x40306C20, + 0xAE606402, 0x00000002, 0x00306C88, 0xAE606402, 0x00000002, 0x40306C20, + 0xAE606502, 0x00000002, 0x00306C88, 0xAE606502, 0x00000002, 0x40306C20, + 0xAE606702, 0x00000002, 0x00306C88, 0xAE606702, 0x00000002, 0x40306C20, + 0xAD806802, 0x00000002, 0x00306C88, 0xAD806802, 0x00000003, 0x40306C20, + 0xAD806802, 0xAE603202, 0x00000003, 0x00306C88, 0xAD806802, 0xAE603202, + 0x00000003, 0x40306C20, 0xAD806802, 0xAE603502, 0x00000003, 0x00306C88, + 0xAD806802, 0xAE603502, 0x00000003, 0x40306C20, 0xAD806802, 0xAE604E02, + 0x00000003, 0x00306C88, 0xAD806802, 0xAE604E02, 0x00000003, 0x40306C20, + 0xAD806802, 0xAE606402, 0x00000003, 0x00306C88, + // Block 66, offset 0x1080 + 0xAD806802, 0xAE606402, 0x00000003, 0x40306C20, 0xAD806802, 0xADC07002, + 0x00000003, 0x00306C88, 0xAD806802, 0xADC07002, 0x00000002, 0x40306C20, + 0xADC07002, 0x00000002, 0x00306C88, 0xADC07002, 0x00000002, 0x40306C20, + 0xADC07502, 0x00000002, 0x00306C88, 0xADC07502, 0x00000002, 0x40306C20, + 0xADC07802, 0x00000002, 0x00306C88, 0xADC07802, 0x00000002, 0x40306C20, + 0xADC07A02, 0x00000002, 0x00306C88, 0xADC07A02, 0x00000003, 0x00306C9D, + 0x002F2C9D, 0x0002BA9C, 0x00000002, 0x4030BE20, 0xAE604E02, 0x00000002, + 0x0030BE88, 0xAE604E02, 0x00000002, 0x4030BE20, 0xADC07002, 0x00000002, + 0x0030BE88, 0xADC07002, 0x00000003, 0x0030BE9D, 0x0009569C, 0x002E829C, + 0x00000004, 0x0030BE84, 0x002D9A84, 0x002D9A84, 0x002D9A9F, 0x00000004, + 0x0030BE8A, 0x002D9A8A, 0x002D9A8A, 0x002D9A9F, + // Block 67, offset 0x10c0 + 0x00000002, 0x0030BE9D, 0x002FE69D, 0x00000002, 0x0030BE84, 0x00310084, + 0x00000002, 0x0030BE8A, 0x0031008A, 0x00000002, 0x4030E220, 0xAE603202, + 0x00000002, 0x0030E288, 0xAE603202, 0x00000002, 0x4030E220, 0xAE603502, + 0x00000002, 0x0030E288, 0xAE603502, 0x00000002, 0x4030E220, 0xAE603C02, + 0x00000002, 0x0030E288, 0xAE603C02, 0x00000002, 0x4030E220, 0xAE604302, + 0x00000002, 0x4030E220, 0xAE604702, 0x00000002, 0x0030E288, 0xAE604702, + 0x00000002, 0x4030E220, 0xAE605202, 0x00000002, 0x0030E288, 0xAE605202, + 0x00000002, 0x4030E220, 0xADC07002, 0x00000002, 0x0030E288, 0xADC07002, + 0x00000002, 0x0030E29D, 0x002C3A9D, 0x00000002, 0x4030F620, 0xAE604702, + 0x00000002, 0x0030F688, 0xAE604702, 0x00000002, 0x4030F620, 0xAE605202, + 0x00000002, 0x0030F688, 0xAE605202, 0x00000002, + // Block 68, offset 0x1100 + 0x40310020, 0xAE603202, 0x00000002, 0x00310088, 0xAE603202, 0x00000002, + 0x40310020, 0xAE603502, 0x00000002, 0x00310088, 0xAE603502, 0x00000002, + 0x40310020, 0xAE603C02, 0x00000002, 0x00310088, 0xAE603C02, 0x00000002, + 0x40310020, 0xAE604302, 0x00000002, 0x40310020, 0xAE604702, 0x00000002, + 0x00310088, 0xAE604702, 0x00000002, 0x40310020, 0xAE604E02, 0x00000002, + 0x00310088, 0xAE604E02, 0x00000002, 0x40310020, 0xAE605202, 0x00000002, + 0x00310088, 0xAE605202, 0x00000002, 0x40310020, 0xAE605B02, 0x00000002, + 0x00310088, 0xAE605B02, 0x00000002, 0x40310020, 0xAE606402, 0x00000002, + 0x00310088, 0xAE606402, 0x00000002, 0x40310020, 0xADC07002, 0x00000002, + 0x00310088, 0xADC07002, 0x00000002, 0x40312A20, 0xAE603202, 0x00000002, + 0x00312A88, 0xAE603202, 0x00000002, 0x40312A20, + // Block 69, offset 0x1140 + 0xAE603C02, 0x00000002, 0x00312A88, 0xAE603C02, 0x00000002, 0x40312A20, + 0xAE604102, 0x00000002, 0x00312A88, 0xAE604102, 0x00000002, 0x40312A20, + 0xAE605202, 0x00000002, 0x00312A88, 0xAE605202, 0x00000002, 0x40312A20, + 0xADC07002, 0x00000002, 0x00312A88, 0xADC07002, 0x00000002, 0x40312A20, + 0xADC07B02, 0x00000002, 0x00312A88, 0xADC07B02, 0x00000002, 0x00312A84, + 0x0030E284, 0x00000002, 0x40316420, 0xAE604102, 0x00000002, 0x00316488, + 0xAE604102, 0x00000002, 0x40325220, 0xAE602202, 0x00000002, 0x00325288, + 0xAE602202, 0x00000003, 0x40325220, 0xAE602202, 0xAE603202, 0x00000003, + 0x00325288, 0xAE602202, 0xAE603202, 0x00000004, 0x40325220, 0xAE602202, + 0xAE603202, 0xAF007F02, 0x00000004, 0x00325288, 0xAE602202, 0xAE603202, + 0xAF007F02, 0x00000003, 0x40325220, 0xAE602202, + // Block 70, offset 0x1180 + 0xAE603502, 0x00000003, 0x00325288, 0xAE602202, 0xAE603502, 0x00000004, + 0x40325220, 0xAE602202, 0xAE603502, 0xAF007F02, 0x00000004, 0x00325288, + 0xAE602202, 0xAE603502, 0xAF007F02, 0x00000003, 0x40325220, 0xAE602202, + 0xAE604502, 0x00000003, 0x00325288, 0xAE602202, 0xAE604502, 0x00000004, + 0x40325220, 0xAE602202, 0xAE604502, 0xAF007F02, 0x00000004, 0x00325288, + 0xAE602202, 0xAE604502, 0xAF007F02, 0x00000003, 0x40325220, 0xAE602202, + 0xAF007F02, 0x00000003, 0x00325288, 0xAE602202, 0xAF007F02, 0x00000002, + 0x40325220, 0xAE602A02, 0x00000002, 0x00325288, 0xAE602A02, 0x00000003, + 0x40325220, 0xAE602A02, 0xAE603202, 0x00000003, 0x00325288, 0xAE602A02, + 0xAE603202, 0x00000004, 0x40325220, 0xAE602A02, 0xAE603202, 0xAF007F02, + 0x00000004, 0x00325288, 0xAE602A02, 0xAE603202, + // Block 71, offset 0x11c0 + 0xAF007F02, 0x00000003, 0x40325220, 0xAE602A02, 0xAE603502, 0x00000003, + 0x00325288, 0xAE602A02, 0xAE603502, 0x00000004, 0x40325220, 0xAE602A02, + 0xAE603502, 0xAF007F02, 0x00000004, 0x00325288, 0xAE602A02, 0xAE603502, + 0xAF007F02, 0x00000003, 0x40325220, 0xAE602A02, 0xAE604502, 0x00000003, + 0x00325288, 0xAE602A02, 0xAE604502, 0x00000004, 0x40325220, 0xAE602A02, + 0xAE604502, 0xAF007F02, 0x00000004, 0x00325288, 0xAE602A02, 0xAE604502, + 0xAF007F02, 0x00000003, 0x40325220, 0xAE602A02, 0xAF007F02, 0x00000003, + 0x00325288, 0xAE602A02, 0xAF007F02, 0x00000002, 0x40325220, 0xAE603202, + 0x00000002, 0x00325288, 0xAE603202, 0x00000003, 0x40325220, 0xAE603202, + 0xAF007F02, 0x00000002, 0x40325220, 0xAE603502, 0x00000002, 0x00325288, + 0xAE603502, 0x00000003, 0x40325220, 0xAE603502, + // Block 72, offset 0x1200 + 0xAF007F02, 0x00000002, 0x40325220, 0xAE603702, 0x00000002, 0x00325288, + 0xAE603702, 0x00000002, 0x40325220, 0xAE604502, 0x00000003, 0x40325220, + 0xAE604502, 0xAF007F02, 0x00000002, 0x40325220, 0xAE605B02, 0x00000002, + 0x00325288, 0xAE605B02, 0x00000002, 0x40325220, 0xAF007F02, 0x00000002, + 0x00325288, 0xAF007F02, 0x00000002, 0x40325C20, 0xAE602202, 0x00000002, + 0x00325C88, 0xAE602202, 0x00000003, 0x40325C20, 0xAE602202, 0xAE603202, + 0x00000003, 0x00325C88, 0xAE602202, 0xAE603202, 0x00000003, 0x40325C20, + 0xAE602202, 0xAE603502, 0x00000003, 0x00325C88, 0xAE602202, 0xAE603502, + 0x00000002, 0x40325C20, 0xAE602A02, 0x00000002, 0x00325C88, 0xAE602A02, + 0x00000003, 0x40325C20, 0xAE602A02, 0xAE603202, 0x00000003, 0x00325C88, + 0xAE602A02, 0xAE603202, 0x00000003, 0x40325C20, + // Block 73, offset 0x1240 + 0xAE602A02, 0xAE603502, 0x00000003, 0x00325C88, 0xAE602A02, 0xAE603502, + 0x00000002, 0x40325C20, 0xAE603202, 0x00000002, 0x00325C88, 0xAE603202, + 0x00000002, 0x40325C20, 0xAE603502, 0x00000002, 0x00325C88, 0xAE603502, + 0x00000002, 0x40326820, 0xAE602202, 0x00000002, 0x00326888, 0xAE602202, + 0x00000003, 0x40326820, 0xAE602202, 0xAE603202, 0x00000003, 0x00326888, + 0xAE602202, 0xAE603202, 0x00000004, 0x40326820, 0xAE602202, 0xAE603202, + 0xAF007F02, 0x00000004, 0x00326888, 0xAE602202, 0xAE603202, 0xAF007F02, + 0x00000003, 0x40326820, 0xAE602202, 0xAE603502, 0x00000003, 0x00326888, + 0xAE602202, 0xAE603502, 0x00000004, 0x40326820, 0xAE602202, 0xAE603502, + 0xAF007F02, 0x00000004, 0x00326888, 0xAE602202, 0xAE603502, 0xAF007F02, + 0x00000003, 0x40326820, 0xAE602202, 0xAE604502, + // Block 74, offset 0x1280 + 0x00000003, 0x00326888, 0xAE602202, 0xAE604502, 0x00000004, 0x40326820, + 0xAE602202, 0xAE604502, 0xAF007F02, 0x00000004, 0x00326888, 0xAE602202, + 0xAE604502, 0xAF007F02, 0x00000003, 0x40326820, 0xAE602202, 0xAF007F02, + 0x00000003, 0x00326888, 0xAE602202, 0xAF007F02, 0x00000002, 0x40326820, + 0xAE602A02, 0x00000002, 0x00326888, 0xAE602A02, 0x00000003, 0x40326820, + 0xAE602A02, 0xAE603202, 0x00000003, 0x00326888, 0xAE602A02, 0xAE603202, + 0x00000004, 0x40326820, 0xAE602A02, 0xAE603202, 0xAF007F02, 0x00000004, + 0x00326888, 0xAE602A02, 0xAE603202, 0xAF007F02, 0x00000003, 0x40326820, + 0xAE602A02, 0xAE603502, 0x00000003, 0x00326888, 0xAE602A02, 0xAE603502, + 0x00000004, 0x40326820, 0xAE602A02, 0xAE603502, 0xAF007F02, 0x00000004, + 0x00326888, 0xAE602A02, 0xAE603502, 0xAF007F02, + // Block 75, offset 0x12c0 + 0x00000003, 0x40326820, 0xAE602A02, 0xAE604502, 0x00000003, 0x00326888, + 0xAE602A02, 0xAE604502, 0x00000004, 0x40326820, 0xAE602A02, 0xAE604502, + 0xAF007F02, 0x00000004, 0x00326888, 0xAE602A02, 0xAE604502, 0xAF007F02, + 0x00000003, 0x40326820, 0xAE602A02, 0xAF007F02, 0x00000003, 0x00326888, + 0xAE602A02, 0xAF007F02, 0x00000002, 0x40326820, 0xAE603202, 0x00000002, + 0x00326888, 0xAE603202, 0x00000003, 0x40326820, 0xAE603202, 0xAF007F02, + 0x00000002, 0x40326820, 0xAE603502, 0x00000002, 0x00326888, 0xAE603502, + 0x00000003, 0x40326820, 0xAE603502, 0xAF007F02, 0x00000002, 0x40326820, + 0xAE604502, 0x00000003, 0x40326820, 0xAE604502, 0xAF007F02, 0x00000002, + 0x40326820, 0xAF007F02, 0x00000002, 0x00326888, 0xAF007F02, 0x00000002, + 0x40326C20, 0xAE602202, 0x00000002, 0x00326C88, + // Block 76, offset 0x1300 + 0xAE602202, 0x00000003, 0x40326C20, 0xAE602202, 0xAE603202, 0x00000003, + 0x00326C88, 0xAE602202, 0xAE603202, 0x00000003, 0x40326C20, 0xAE602202, + 0xAE603502, 0x00000003, 0x00326C88, 0xAE602202, 0xAE603502, 0x00000003, + 0x40326C20, 0xAE602202, 0xAE604502, 0x00000003, 0x00326C88, 0xAE602202, + 0xAE604502, 0x00000002, 0x40326C20, 0xAE602A02, 0x00000002, 0x00326C88, + 0xAE602A02, 0x00000003, 0x40326C20, 0xAE602A02, 0xAE603202, 0x00000003, + 0x00326C88, 0xAE602A02, 0xAE603202, 0x00000003, 0x40326C20, 0xAE602A02, + 0xAE603502, 0x00000003, 0x00326C88, 0xAE602A02, 0xAE603502, 0x00000003, + 0x40326C20, 0xAE602A02, 0xAE604502, 0x00000003, 0x00326C88, 0xAE602A02, + 0xAE604502, 0x00000002, 0x40326C20, 0xAE603202, 0x00000002, 0x00326C88, + 0xAE603202, 0x00000002, 0x40326C20, 0xAE603502, + // Block 77, offset 0x1340 + 0x00000002, 0x00326C88, 0xAE603502, 0x00000002, 0x40326C20, 0xAE603702, + 0x00000002, 0x00326C88, 0xAE603702, 0x00000002, 0x40326C20, 0xAE604502, + 0x00000002, 0x40326C20, 0xAE604702, 0x00000002, 0x00326C88, 0xAE604702, + 0x00000003, 0x40326C20, 0xAE604702, 0xAE603202, 0x00000003, 0x40326C20, + 0xAE604702, 0xAE603502, 0x00000003, 0x40326C20, 0xAE604702, 0xAE604502, + 0x00000002, 0x40326C20, 0xAE605B02, 0x00000002, 0x00326C88, 0xAE605B02, + 0x00000003, 0x00327084, 0x00325284, 0x00326C84, 0x00000003, 0x0032708A, + 0x00325284, 0x00326C84, 0x00000002, 0x40327C20, 0xAE602202, 0x00000002, + 0x00327C88, 0xAE602202, 0x00000003, 0x40327C20, 0xAE602202, 0xAE603202, + 0x00000003, 0x00327C88, 0xAE602202, 0xAE603202, 0x00000003, 0x40327C20, + 0xAE602202, 0xAE603502, 0x00000003, 0x00327C88, + // Block 78, offset 0x1380 + 0xAE602202, 0xAE603502, 0x00000002, 0x40327C20, 0xAE602A02, 0x00000002, + 0x00327C88, 0xAE602A02, 0x00000003, 0x40327C20, 0xAE602A02, 0xAE603202, + 0x00000003, 0x00327C88, 0xAE602A02, 0xAE603202, 0x00000003, 0x40327C20, + 0xAE602A02, 0xAE603502, 0x00000003, 0x00327C88, 0xAE602A02, 0xAE603502, + 0x00000002, 0x40327C20, 0xAE603202, 0x00000002, 0x00327C88, 0xAE603202, + 0x00000002, 0x40327C20, 0xAE603502, 0x00000002, 0x00327C88, 0xAE603502, + 0x00000002, 0x40328820, 0xAE602202, 0x00000002, 0x40328820, 0xAE602A02, + 0x00000002, 0x00328888, 0xAE602A02, 0x00000002, 0x40329820, 0xAE602202, + 0x00000003, 0x40329820, 0xAE602202, 0xAE603202, 0x00000003, 0x40329820, + 0xAE602202, 0xAE603502, 0x00000003, 0x40329820, 0xAE602202, 0xAE604502, + 0x00000002, 0x40329820, 0xAE602A02, 0x00000002, + // Block 79, offset 0x13c0 + 0x00329888, 0xAE602A02, 0x00000003, 0x40329820, 0xAE602A02, 0xAE603202, + 0x00000003, 0x00329888, 0xAE602A02, 0xAE603202, 0x00000003, 0x40329820, + 0xAE602A02, 0xAE603502, 0x00000003, 0x00329888, 0xAE602A02, 0xAE603502, + 0x00000003, 0x40329820, 0xAE602A02, 0xAE604502, 0x00000003, 0x00329888, + 0xAE602A02, 0xAE604502, 0x00000002, 0x40329820, 0xAE603202, 0x00000002, + 0x00329888, 0xAE603202, 0x00000002, 0x40329820, 0xAE603502, 0x00000002, + 0x00329888, 0xAE603502, 0x00000002, 0x40329820, 0xAE603702, 0x00000002, + 0x00329888, 0xAE603702, 0x00000002, 0x40329820, 0xAE604502, 0x00000002, + 0x40329820, 0xAE604702, 0x00000002, 0x00329888, 0xAE604702, 0x00000003, + 0x40329820, 0xAE604702, 0xAE603202, 0x00000003, 0x40329820, 0xAE604702, + 0xAE603502, 0x00000003, 0x40329820, 0xAE604702, + // Block 80, offset 0x1400 + 0xAE604502, 0x00000002, 0x40329820, 0xAE605B02, 0x00000002, 0x00329888, + 0xAE605B02, 0x00000002, 0x4032A220, 0xAE602202, 0x00000002, 0x0032A288, + 0xAE602202, 0x00000003, 0x4032A220, 0xAE602202, 0xAE603202, 0x00000003, + 0x0032A288, 0xAE602202, 0xAE603202, 0x00000004, 0x4032A220, 0xAE602202, + 0xAE603202, 0xAF007F02, 0x00000004, 0x0032A288, 0xAE602202, 0xAE603202, + 0xAF007F02, 0x00000003, 0x4032A220, 0xAE602202, 0xAE603502, 0x00000003, + 0x0032A288, 0xAE602202, 0xAE603502, 0x00000004, 0x4032A220, 0xAE602202, + 0xAE603502, 0xAF007F02, 0x00000004, 0x0032A288, 0xAE602202, 0xAE603502, + 0xAF007F02, 0x00000003, 0x4032A220, 0xAE602202, 0xAE604502, 0x00000003, + 0x0032A288, 0xAE602202, 0xAE604502, 0x00000004, 0x4032A220, 0xAE602202, + 0xAE604502, 0xAF007F02, 0x00000004, 0x0032A288, + // Block 81, offset 0x1440 + 0xAE602202, 0xAE604502, 0xAF007F02, 0x00000003, 0x4032A220, 0xAE602202, + 0xAF007F02, 0x00000003, 0x0032A288, 0xAE602202, 0xAF007F02, 0x00000002, + 0x4032A220, 0xAE602A02, 0x00000002, 0x0032A288, 0xAE602A02, 0x00000003, + 0x4032A220, 0xAE602A02, 0xAE603202, 0x00000003, 0x0032A288, 0xAE602A02, + 0xAE603202, 0x00000004, 0x4032A220, 0xAE602A02, 0xAE603202, 0xAF007F02, + 0x00000004, 0x0032A288, 0xAE602A02, 0xAE603202, 0xAF007F02, 0x00000003, + 0x4032A220, 0xAE602A02, 0xAE603502, 0x00000003, 0x0032A288, 0xAE602A02, + 0xAE603502, 0x00000004, 0x4032A220, 0xAE602A02, 0xAE603502, 0xAF007F02, + 0x00000004, 0x0032A288, 0xAE602A02, 0xAE603502, 0xAF007F02, 0x00000003, + 0x4032A220, 0xAE602A02, 0xAE604502, 0x00000003, 0x0032A288, 0xAE602A02, + 0xAE604502, 0x00000004, 0x4032A220, 0xAE602A02, + // Block 82, offset 0x1480 + 0xAE604502, 0xAF007F02, 0x00000004, 0x0032A288, 0xAE602A02, 0xAE604502, + 0xAF007F02, 0x00000003, 0x4032A220, 0xAE602A02, 0xAF007F02, 0x00000003, + 0x0032A288, 0xAE602A02, 0xAF007F02, 0x00000002, 0x4032A220, 0xAE603202, + 0x00000002, 0x0032A288, 0xAE603202, 0x00000003, 0x4032A220, 0xAE603202, + 0xAF007F02, 0x00000002, 0x4032A220, 0xAE603502, 0x00000002, 0x0032A288, + 0xAE603502, 0x00000003, 0x4032A220, 0xAE603502, 0xAF007F02, 0x00000002, + 0x4032A220, 0xAE604502, 0x00000003, 0x4032A220, 0xAE604502, 0xAF007F02, + 0x00000002, 0x4032A220, 0xAF007F02, 0x00000002, 0x0032A288, 0xAF007F02, + 0x00000003, 0x0032C084, 0x0032AA84, 0x0032BE84, 0x00000002, 0x00336284, + 0xA0013A04, 0x00000002, 0x0033628A, 0xA0013A04, 0x00000002, 0x4033B220, + 0xAE603502, 0x00000002, 0x0033B288, 0xAE603502, + // Block 83, offset 0x14c0 + 0x00000002, 0x4033B220, 0xAE604702, 0x00000002, 0x0033B288, 0xAE604702, + 0x00000002, 0x4033CA20, 0xAE603702, 0x00000002, 0x0033CA88, 0xAE603702, + 0x00000002, 0x40341420, 0xAE603502, 0x00000002, 0x00341488, 0xAE603502, + 0x00000002, 0x40341420, 0xAE605B02, 0x00000002, 0x00341488, 0xAE605B02, + 0x00000002, 0x84E61A9D, 0x84E61AA6, 0x00000002, 0x40357220, 0xAE605B02, + 0x00000002, 0x00357288, 0xAE605B02, 0x00000002, 0x40389020, 0xA1108C02, + 0x00000002, 0x40389020, 0xA1208D02, 0x00000002, 0x40389020, 0xA1509202, + 0x00000002, 0x40389220, 0xA1509202, 0x00000002, 0x40389220, 0xA1709502, + 0x00000002, 0x40389420, 0xA1509202, 0x00000002, 0x40389620, 0xA1509202, + 0x00000002, 0x40389820, 0xA1509202, 0x00000002, 0x40389A20, 0xA1308E02, + 0x00000002, 0x40389A20, 0xA1509202, 0x00000002, + // Block 84, offset 0x1500 + 0x00389A84, 0x00389A84, 0x00000002, 0x00389A84, 0x0038A284, 0x00000002, + 0x40389C20, 0xA1509202, 0x00000002, 0x4038A020, 0xA1509202, 0x00000002, + 0x4038A220, 0xA0E08902, 0x00000002, 0x4038A220, 0xA1509202, 0x00000002, + 0x0038A284, 0x0038A284, 0x00000003, 0x0038A284, 0x0038A284, 0xA1108C02, + 0x00000002, 0x4038A420, 0xA1509202, 0x00000002, 0x0038A499, 0xA1509202, + 0x00000002, 0x4038A420, 0xA1709502, 0x00000002, 0x4038A620, 0xA1509202, + 0x00000002, 0x4038A820, 0xA1509202, 0x00000002, 0x4038AA20, 0xA1509202, + 0x00000002, 0x4038AC20, 0xA1509202, 0x00000002, 0x4038B020, 0xA1509202, + 0x00000002, 0x0038B099, 0xA1509202, 0x00000002, 0x4038B020, 0xA1709502, + 0x00000002, 0x4038B220, 0xA1509202, 0x00000002, 0x4038B420, 0xA1509202, + 0x00000002, 0x4038B620, 0xA1509202, 0x00000002, + // Block 85, offset 0x1540 + 0x4038B820, 0xA1909002, 0x00000002, 0x4038B820, 0xA1809102, 0x00000002, + 0x4038B820, 0xA1509202, 0x00000003, 0x4038B820, 0xA1509202, 0xA1909002, + 0x00000003, 0x4038B820, 0xA1509202, 0xA1809102, 0x00000002, 0x4038BA20, + 0xA1509202, 0x00000002, 0x00391C84, 0xA0013A04, 0x00000002, 0x00393099, + 0x00393899, 0x00000002, 0x0039309A, 0x0039389A, 0x00000002, 0x00393097, + 0x00396497, 0x00000002, 0x0039309A, 0x0039649A, 0x00000002, 0x00393097, + 0x00397297, 0x00000002, 0x0039309A, 0x0039729A, 0x00000002, 0x00393097, + 0x00397497, 0x00000002, 0x00393099, 0x0039A499, 0x00000002, 0x00393099, + 0x0039A699, 0x00000002, 0x00393097, 0x003A4E97, 0x00000002, 0x00393098, + 0x003A4E98, 0x00000002, 0x00393099, 0x003A4E99, 0x00000002, 0x0039309A, + 0x003A4E9A, 0x00000002, 0x00393099, 0x003A5699, + // Block 86, offset 0x1580 + 0x00000002, 0x00393097, 0x003A6897, 0x00000002, 0x00393098, 0x003A6898, + 0x00000002, 0x00393099, 0x003A7299, 0x00000002, 0x0039309A, 0x003A729A, + 0x00000002, 0x00393099, 0x003A7499, 0x00000002, 0x0039309A, 0x003A749A, + 0x00000002, 0x00393099, 0x003A7A99, 0x00000002, 0x0039309A, 0x003A7A9A, + 0x00000002, 0x00393099, 0x003A7C99, 0x00000002, 0x0039309A, 0x003A7C9A, + 0x00000002, 0x00393099, 0x003A7E99, 0x00000002, 0x0039309A, 0x003A7E9A, + 0x00000002, 0x00393097, 0x003A8E97, 0x00000002, 0x00393099, 0x003A8E99, + 0x00000002, 0x00393099, 0x003A8E99, 0x00000002, 0x0039309A, 0x003A8E9A, + 0x00000002, 0x0039309A, 0x003A8E9A, 0x00000002, 0x00393099, 0x003A9099, + 0x00000002, 0x0039309A, 0x003A909A, 0x00000002, 0x00393097, 0x003A9897, + 0x00000002, 0x00393099, 0x003A9899, 0x00000002, + // Block 87, offset 0x15c0 + 0x0039309A, 0x003A989A, 0x00000004, 0x0039389A, 0x003A1A9A, 0x00393C9A, + 0x0039A49A, 0x00000004, 0x0039389A, 0x003A409A, 0x003A409A, 0x003A689A, + 0x00000003, 0x00393C99, 0x00397299, 0x003A9099, 0x00000003, 0x00393C99, + 0x00397499, 0x003A9099, 0x00000003, 0x00395697, 0x00396497, 0x003A4E97, + 0x00000003, 0x00395699, 0x00396499, 0x003A8E99, 0x00000003, 0x00395699, + 0x00396499, 0x003A9099, 0x00000003, 0x00395697, 0x00397297, 0x00396497, + 0x00000003, 0x00395699, 0x00397299, 0x00396499, 0x00000003, 0x00395697, + 0x00397297, 0x003A4E97, 0x00000003, 0x00395697, 0x00397497, 0x003A4E97, + 0x00000003, 0x00395699, 0x00397499, 0x003A8E99, 0x00000003, 0x00395699, + 0x00397499, 0x003A9099, 0x00000003, 0x00395697, 0x003A4E97, 0x00396497, + 0x00000003, 0x00395697, 0x003A4E97, 0x00397297, + // Block 88, offset 0x1600 + 0x00000003, 0x00395697, 0x003A4E97, 0x00397497, 0x00000003, 0x00395699, + 0x003A4E99, 0x003A8E99, 0x00000003, 0x00395699, 0x003A4E99, 0x003A9099, + 0x00000003, 0x00396499, 0x00397299, 0x003A8E99, 0x00000003, 0x00396499, + 0x00397299, 0x003A9099, 0x00000008, 0x0039649A, 0x003A409A, 0x0002129A, + 0x0039649A, 0x003A409A, 0x0039389A, 0x003A409A, 0x003A689A, 0x00000003, + 0x00396497, 0x003A4E97, 0x00397297, 0x00000003, 0x00396499, 0x003A4E99, + 0x00397299, 0x00000003, 0x00396499, 0x003A4E99, 0x003A8E99, 0x00000003, + 0x00396499, 0x003A4E99, 0x003A9099, 0x00000003, 0x00397299, 0x00396499, + 0x003A9099, 0x00000003, 0x00397299, 0x003A4E99, 0x003A8E99, 0x00000003, + 0x00397299, 0x003A4E99, 0x003A9099, 0x00000004, 0x0039A49A, 0x0039C69A, + 0x003A749A, 0x003A409A, 0x00000003, 0x0039C697, + // Block 89, offset 0x1640 + 0x00396497, 0x00397297, 0x00000003, 0x0039C699, 0x00396499, 0x003A8E99, + 0x00000003, 0x0039C697, 0x00397297, 0x00396497, 0x00000003, 0x0039C699, + 0x00397499, 0x003A8E99, 0x00000003, 0x0039C699, 0x00397499, 0x003A9099, + 0x00000003, 0x0039C697, 0x003A4E97, 0x00396497, 0x00000003, 0x0039C697, + 0x003A4E97, 0x00397297, 0x00000003, 0x0039C699, 0x003A4E99, 0x00397299, + 0x00000003, 0x0039C697, 0x003A4E97, 0x003A4E97, 0x00000003, 0x0039C699, + 0x003A4E99, 0x003A4E99, 0x00000003, 0x0039C899, 0x00396499, 0x003A9099, + 0x00000003, 0x0039C897, 0x00397297, 0x003A4E97, 0x00000003, 0x0039C899, + 0x00397299, 0x003A4E99, 0x00000003, 0x0039C899, 0x00397299, 0x003A9099, + 0x00000003, 0x0039C897, 0x003A4E97, 0x00397497, 0x00000003, 0x0039C899, + 0x003A4E99, 0x00397499, 0x00000003, 0x0039C897, + // Block 90, offset 0x1680 + 0x003A4E97, 0x003A4E97, 0x00000003, 0x0039C899, 0x003A4E99, 0x003A4E99, + 0x00000003, 0x0039DC97, 0x00397297, 0x00397297, 0x00000003, 0x0039DC99, + 0x00397299, 0x00397299, 0x00000003, 0x0039DC99, 0x00397299, 0x003A9099, + 0x00000004, 0x0039DC9A, 0x003A409A, 0x0039EE9A, 0x003A4E9A, 0x00000003, + 0x0039DC9A, 0x003A409A, 0x003A8E9A, 0x00000012, 0x0039DC9A, 0x003A409A, + 0x003A8E9A, 0x0002129A, 0x0039389A, 0x003A409A, 0x003A409A, 0x003A689A, + 0x0002129A, 0x0039EE9A, 0x003A409A, 0x003A909A, 0x003A689A, 0x0002129A, + 0x003A749A, 0x0039C69A, 0x003A409A, 0x003A4E9A, 0x00000003, 0x0039DC9A, + 0x003A409A, 0x003AAA9A, 0x00000003, 0x0039DC97, 0x003A4E97, 0x003A4E97, + 0x00000003, 0x0039DC99, 0x003A4E99, 0x003A4E99, 0x00000003, 0x0039DE99, + 0x00397299, 0x003A8E99, 0x00000003, 0x0039DE99, + // Block 91, offset 0x16c0 + 0x00397299, 0x003A9099, 0x00000003, 0x0039DE97, 0x00397497, 0x003A4E97, + 0x00000003, 0x0039DE99, 0x00397499, 0x003A4E99, 0x00000003, 0x0039E697, + 0x003A4E97, 0x00397297, 0x00000003, 0x0039E699, 0x003A4E99, 0x00397299, + 0x00000003, 0x0039E697, 0x003A4E97, 0x003A4E97, 0x00000003, 0x0039E699, + 0x003A4E99, 0x003A9099, 0x00000003, 0x0039EE97, 0x00396497, 0x003A4E97, + 0x00000003, 0x0039EE99, 0x00396499, 0x003A4E99, 0x00000004, 0x0039EE9A, + 0x003A409A, 0x003A909A, 0x003A689A, 0x00000003, 0x0039EE97, 0x003A4E97, + 0x003A4E97, 0x00000003, 0x0039EE99, 0x003A4E99, 0x003A4E99, 0x00000003, + 0x0039EE99, 0x003A4E99, 0x003A8E99, 0x00000003, 0x0039EE99, 0x003A4E99, + 0x003A9099, 0x00000003, 0x0039F099, 0x003A4E99, 0x003A4E99, 0x00000003, + 0x0039F099, 0x003A4E99, 0x003A8E99, 0x00000003, + // Block 92, offset 0x1700 + 0x0039F099, 0x003A4E99, 0x003A9099, 0x00000003, 0x0039FC97, 0x00397497, + 0x003A4E97, 0x00000003, 0x0039FC99, 0x00397499, 0x003A4E99, 0x00000003, + 0x0039FC99, 0x003A4E99, 0x003A9099, 0x00000003, 0x003A129A, 0x003A409A, + 0x003AAA9A, 0x00000003, 0x003A1297, 0x003A4E97, 0x00397297, 0x00000003, + 0x003A1299, 0x003A4E99, 0x00397299, 0x00000003, 0x003A1299, 0x003A4E99, + 0x003A4E99, 0x00000003, 0x003A1299, 0x003A4E99, 0x003A9099, 0x00000003, + 0x003A1A97, 0x003A4E97, 0x003A4E97, 0x00000003, 0x003A1A99, 0x003A4E99, + 0x003A4E99, 0x00000003, 0x003A1A99, 0x003A4E99, 0x003A9099, 0x00000002, + 0x003A4099, 0x00391E99, 0x00000002, 0x003A409A, 0x00391E9A, 0x00000002, + 0x003A4099, 0x00392099, 0x00000002, 0x003A409A, 0x0039209A, 0x00000002, + 0x003A4099, 0x00392899, 0x00000002, 0x003A409A, + // Block 93, offset 0x1740 + 0x0039289A, 0x00000003, 0x003A4097, 0x00396497, 0x00396497, 0x00000003, + 0x003A4099, 0x00396499, 0x00396499, 0x00000003, 0x003A4097, 0x00396497, + 0x003A4E97, 0x00000003, 0x003A4099, 0x00396499, 0x003A4E99, 0x00000003, + 0x003A4099, 0x00396499, 0x003A9099, 0x00000003, 0x003A4097, 0x00397297, + 0x003A4E97, 0x00000003, 0x003A4099, 0x00397299, 0x003A4E99, 0x00000003, + 0x003A4099, 0x00397299, 0x003A8E99, 0x00000003, 0x003A4099, 0x00397299, + 0x003A9099, 0x00000003, 0x003A4097, 0x00397497, 0x003A4E97, 0x00000003, + 0x003A4099, 0x00397499, 0x003A4E99, 0x00000003, 0x003A4097, 0x003A4E97, + 0x00397297, 0x00000003, 0x003A4099, 0x003A4E99, 0x00397299, 0x00000003, + 0x003A4099, 0x003A4E99, 0x003A9099, 0x00000002, 0x003A4E84, 0xA0013A04, + 0x00000003, 0x003A4E97, 0x00396497, 0x00397297, + // Block 94, offset 0x1780 + 0x00000003, 0x003A4E97, 0x00396497, 0x00397497, 0x00000003, 0x003A4E97, + 0x00396497, 0x003A4E97, 0x00000003, 0x003A4E99, 0x00396499, 0x003A9099, + 0x00000003, 0x003A4E97, 0x00397297, 0x00396497, 0x00000003, 0x003A4E97, + 0x00397297, 0x003A4E97, 0x00000004, 0x003A4E9A, 0x0039729A, 0x003A4E9A, + 0x0039889A, 0x00000003, 0x003A4E99, 0x00397299, 0x003A9099, 0x00000003, + 0x003A4E97, 0x00397497, 0x00396497, 0x00000003, 0x003A4E97, 0x00397497, + 0x003A4E97, 0x00000003, 0x003A4E99, 0x00397499, 0x003A9099, 0x00000003, + 0x003A4E99, 0x003A4E99, 0x003A9099, 0x00000003, 0x003A5697, 0x00396497, + 0x00397297, 0x00000003, 0x003A5699, 0x00396499, 0x00397299, 0x00000003, + 0x003A5697, 0x00396497, 0x003A4E97, 0x00000003, 0x003A5699, 0x00396499, + 0x003A4E99, 0x00000003, 0x003A5699, 0x00396499, + // Block 95, offset 0x17c0 + 0x003A8E99, 0x00000003, 0x003A5699, 0x00396499, 0x003A9099, 0x00000003, + 0x003A5697, 0x00397297, 0x003A4E97, 0x00000003, 0x003A5699, 0x00397299, + 0x003A8E99, 0x00000003, 0x003A5699, 0x00397299, 0x003A9099, 0x00000003, + 0x003A5699, 0x003A4E99, 0x003A8E99, 0x00000003, 0x003A5699, 0x003A4E99, + 0x003A9099, 0x00000003, 0x003A6897, 0x003A4E97, 0x00396497, 0x00000003, + 0x003A6897, 0x003A4E97, 0x003A4E97, 0x00000002, 0x403A6C20, 0xAE60BE02, + 0x00000002, 0x403A7220, 0xAE60BE02, 0x00000004, 0x003A749A, 0x0039C69A, + 0x003A409A, 0x003A4E9A, 0x00000003, 0x003A9099, 0x00396499, 0x003A9099, + 0x00000003, 0x003A9099, 0x00397299, 0x003A9099, 0x00000003, 0x003A9097, + 0x003A4E97, 0x003A4E97, 0x00000003, 0x003A9099, 0x003A4E99, 0x003A4E99, + 0x00000003, 0x003A9099, 0x003A4E99, 0x003A9099, + // Block 96, offset 0x1800 + 0x00000002, 0x403AAA20, 0xAE60BE02, 0x00000002, 0x003AB284, 0xA0013C04, + 0x00000002, 0x003AB484, 0xA0013A04, 0x00000002, 0x003AB484, 0xA0013C04, + 0x00000002, 0x003AB884, 0xA0013C04, 0x00000002, 0x003AC484, 0xA0013A04, + 0x00000002, 0x003AD884, 0xA0013A04, 0x00000002, 0x003B9484, 0xA0013904, + 0x00000002, 0x003B9684, 0xA0013904, 0x00000002, 0x003B9A84, 0xA0013904, + 0x00000002, 0x403FEC20, 0xA070F102, 0x00000002, 0x403FEE20, 0xA070F102, + 0x00000002, 0x403FF020, 0xA070F102, 0x00000002, 0x403FFC20, 0xA070F102, + 0x00000002, 0x40400A20, 0xA070F102, 0x00000002, 0x40400E20, 0xA070F102, + 0x00000002, 0x40401A20, 0xA070F102, 0x00000002, 0x40401E20, 0xA070F102, + 0x00000002, 0x40402820, 0xA070F102, 0x00000002, 0x40402C20, 0xA070F102, + 0x00000002, 0x40403020, 0xA070F102, 0x00000002, + // Block 97, offset 0x1840 + 0x4040B020, 0xA070F102, 0x00000002, 0x4040B220, 0xA070F102, 0x00000002, + 0x0040B684, 0x0040F884, 0x00000002, 0x4040CA20, 0xA070F102, 0x00000002, + 0x40411620, 0xA070F102, 0x00000002, 0x40411E20, 0xA070F102, 0x00000002, + 0x40412020, 0xA070F102, 0x00000002, 0x40412A20, 0xA070F102, 0x00000002, + 0x40414620, 0xA070F102, 0x00000002, 0x40415420, 0xA070F102, 0x00000002, + 0x40422A20, 0xA070F102, 0x00000002, 0x40422C20, 0xA070F102, 0x00000002, + 0x00442284, 0x00449084, 0x00000002, 0x00443E84, 0x00449084, 0x00000002, + 0x00444884, 0x00449084, 0x00000002, 0x00445884, 0x00449084, 0x00000002, + 0x00445884, 0x00449084, 0x00000002, 0x00445A84, 0x00449084, 0x00000002, + 0x00446684, 0x00449084, 0x00000002, 0x4046AA20, 0xA070F102, 0x00000002, + 0x4046AC20, 0xA070F102, 0x00000002, 0x4046BE20, + // Block 98, offset 0x1880 + 0xA070F102, 0x00000002, 0x40491020, 0x40498420, 0x00000002, 0x40491020, + 0x40498620, 0x00000002, 0x40491020, 0x40498820, 0x00000002, 0x40491020, + 0x40498A20, 0x00000002, 0x40491020, 0x40498C20, 0x00000002, 0x40491220, + 0x40498420, 0x00000002, 0x40491220, 0x40498620, 0x00000002, 0x40491220, + 0x40498820, 0x00000002, 0x40491220, 0x40498A20, 0x00000002, 0x40491220, + 0x40498C20, 0x00000002, 0x40491420, 0x40498420, 0x00000002, 0x40491420, + 0x40498620, 0x00000002, 0x40491420, 0x40498820, 0x00000002, 0x40491420, + 0x40498A20, 0x00000002, 0x40491420, 0x40498C20, 0x00000002, 0x40491620, + 0x40498420, 0x00000002, 0x40491620, 0x40498620, 0x00000002, 0x40491620, + 0x40498820, 0x00000002, 0x40491620, 0x40498A20, 0x00000002, 0x40491620, + 0x40498C20, 0x00000002, 0x40491820, 0x40498420, + // Block 99, offset 0x18c0 + 0x00000002, 0x40491820, 0x40498620, 0x00000002, 0x40491820, 0x40498820, + 0x00000002, 0x40491820, 0x40498A20, 0x00000002, 0x40491820, 0x40498C20, + 0x00000002, 0x40491A20, 0x40498420, 0x00000002, 0x40491A20, 0x40498620, + 0x00000002, 0x40491A20, 0x40498820, 0x00000002, 0x40491A20, 0x40498A20, + 0x00000002, 0x40491A20, 0x40498C20, 0x00000002, 0x40491C20, 0x40498420, + 0x00000002, 0x40491C20, 0x40498620, 0x00000002, 0x40491C20, 0x40498820, + 0x00000002, 0x40491C20, 0x40498A20, 0x00000002, 0x40491C20, 0x40498C20, + 0x00000002, 0x40491E20, 0x40498420, 0x00000002, 0x40491E20, 0x40498620, + 0x00000002, 0x40491E20, 0x40498820, 0x00000002, 0x40491E20, 0x40498A20, + 0x00000002, 0x40491E20, 0x40498C20, 0x00000002, 0x40492020, 0x40498420, + 0x00000002, 0x40492020, 0x40498620, 0x00000002, + // Block 100, offset 0x1900 + 0x40492020, 0x40498820, 0x00000002, 0x40492020, 0x40498A20, 0x00000002, + 0x40492020, 0x40498C20, 0x00000002, 0x40492220, 0x40498420, 0x00000002, + 0x40492220, 0x40498620, 0x00000002, 0x40492220, 0x40498820, 0x00000002, + 0x40492220, 0x40498A20, 0x00000002, 0x40492220, 0x40498C20, 0x00000002, + 0x40492420, 0x40498420, 0x00000002, 0x40492420, 0x40498620, 0x00000002, + 0x40492420, 0x40498820, 0x00000002, 0x40492420, 0x40498A20, 0x00000002, + 0x40492420, 0x40498C20, 0x00000002, 0x40492620, 0x40498420, 0x00000002, + 0x40492620, 0x40498620, 0x00000002, 0x40492620, 0x40498820, 0x00000002, + 0x40492620, 0x40498A20, 0x00000002, 0x40492620, 0x40498C20, 0x00000002, + 0x40492820, 0x40498420, 0x00000002, 0x40492820, 0x40498620, 0x00000002, + 0x40492820, 0x40498820, 0x00000002, 0x40492820, + // Block 101, offset 0x1940 + 0x40498A20, 0x00000002, 0x40492820, 0x40498C20, 0x00000002, 0x40492A20, + 0x40498420, 0x00000002, 0x40492A20, 0x40498620, 0x00000002, 0x40492A20, + 0x40498820, 0x00000002, 0x40492A20, 0x40498A20, 0x00000002, 0x40492A20, + 0x40498C20, 0x00000002, 0x40492C20, 0x40498420, 0x00000002, 0x40492C20, + 0x40498620, 0x00000002, 0x40492C20, 0x40498820, 0x00000002, 0x40492C20, + 0x40498A20, 0x00000002, 0x40492C20, 0x40498C20, 0x00000002, 0x40492E20, + 0x40498420, 0x00000002, 0x40492E20, 0x40498620, 0x00000002, 0x40492E20, + 0x40498820, 0x00000002, 0x40492E20, 0x40498A20, 0x00000002, 0x40492E20, + 0x40498C20, 0x00000002, 0x40493020, 0x40498420, 0x00000002, 0x40493020, + 0x40498620, 0x00000002, 0x40493020, 0x40498820, 0x00000002, 0x40493020, + 0x40498A20, 0x00000002, 0x40493020, 0x40498C20, + // Block 102, offset 0x1980 + 0x00000002, 0x40493220, 0x40498420, 0x00000002, 0x40493220, 0x40498620, + 0x00000002, 0x40493220, 0x40498820, 0x00000002, 0x40493220, 0x40498A20, + 0x00000002, 0x40493220, 0x40498C20, 0x00000002, 0x40493420, 0x40498420, + 0x00000002, 0x40493420, 0x40498620, 0x00000002, 0x40493420, 0x40498820, + 0x00000002, 0x40493420, 0x40498A20, 0x00000002, 0x40493420, 0x40498C20, + 0x00000002, 0x40493620, 0x40498420, 0x00000002, 0x40493620, 0x40498620, + 0x00000002, 0x40493620, 0x40498820, 0x00000002, 0x40493620, 0x40498A20, + 0x00000002, 0x40493620, 0x40498C20, 0x00000002, 0x40493820, 0x40498420, + 0x00000002, 0x40493820, 0x40498620, 0x00000002, 0x40493820, 0x40498820, + 0x00000002, 0x40493820, 0x40498A20, 0x00000002, 0x40493820, 0x40498C20, + 0x00000002, 0x40493A20, 0x40498420, 0x00000002, + // Block 103, offset 0x19c0 + 0x40493A20, 0x40498620, 0x00000002, 0x40493A20, 0x40498820, 0x00000002, + 0x40493A20, 0x40498A20, 0x00000002, 0x40493A20, 0x40498C20, 0x00000002, + 0x40493C20, 0x40498420, 0x00000002, 0x40493C20, 0x40498620, 0x00000002, + 0x40493C20, 0x40498820, 0x00000002, 0x40493C20, 0x40498A20, 0x00000002, + 0x40493C20, 0x40498C20, 0x00000002, 0x40493E20, 0x40498420, 0x00000002, + 0x40493E20, 0x40498620, 0x00000002, 0x40493E20, 0x40498820, 0x00000002, + 0x40493E20, 0x40498A20, 0x00000002, 0x40493E20, 0x40498C20, 0x00000002, + 0x40494020, 0x40498420, 0x00000002, 0x40494020, 0x40498620, 0x00000002, + 0x40494020, 0x40498820, 0x00000002, 0x40494020, 0x40498A20, 0x00000002, + 0x40494020, 0x40498C20, 0x00000002, 0x40494220, 0x40498420, 0x00000002, + 0x40494220, 0x40498620, 0x00000002, 0x40494220, + // Block 104, offset 0x1a00 + 0x40498820, 0x00000002, 0x40494220, 0x40498A20, 0x00000002, 0x40494220, + 0x40498C20, 0x00000002, 0x40494420, 0x40498420, 0x00000002, 0x40494420, + 0x40498620, 0x00000002, 0x40494420, 0x40498820, 0x00000002, 0x40494420, + 0x40498A20, 0x00000002, 0x40494420, 0x40498C20, 0x00000002, 0x40494620, + 0x40498420, 0x00000002, 0x40494620, 0x40498620, 0x00000002, 0x40494620, + 0x40498820, 0x00000002, 0x40494620, 0x40498A20, 0x00000002, 0x40494620, + 0x40498C20, 0x00000002, 0x40494820, 0x40498420, 0x00000002, 0x40494820, + 0x40498620, 0x00000002, 0x40494820, 0x40498820, 0x00000002, 0x40494820, + 0x40498A20, 0x00000002, 0x40494820, 0x40498C20, 0x00000002, 0x40494A20, + 0x40498420, 0x00000002, 0x40494A20, 0x40498620, 0x00000002, 0x40494A20, + 0x40498820, 0x00000002, 0x40494A20, 0x40498A20, + // Block 105, offset 0x1a40 + 0x00000002, 0x40494A20, 0x40498C20, 0x00000002, 0x40494C20, 0x40498420, + 0x00000002, 0x40494C20, 0x40498620, 0x00000002, 0x40494C20, 0x40498820, + 0x00000002, 0x40494C20, 0x40498A20, 0x00000002, 0x40494C20, 0x40498C20, + 0x00000002, 0x40494E20, 0x40498420, 0x00000002, 0x40494E20, 0x40498620, + 0x00000002, 0x40494E20, 0x40498820, 0x00000002, 0x40494E20, 0x40498A20, + 0x00000002, 0x40494E20, 0x40498C20, 0x00000002, 0x40495020, 0x40498420, + 0x00000002, 0x40495020, 0x40498620, 0x00000002, 0x40495020, 0x40498820, + 0x00000002, 0x40495020, 0x40498A20, 0x00000002, 0x40495020, 0x40498C20, + 0x00000002, 0x40495220, 0x40498420, 0x00000002, 0x40495220, 0x40498620, + 0x00000002, 0x40495220, 0x40498820, 0x00000002, 0x40495220, 0x40498A20, + 0x00000002, 0x40495220, 0x40498C20, 0x00000002, + // Block 106, offset 0x1a80 + 0x40495420, 0x40498420, 0x00000002, 0x40495420, 0x40498620, 0x00000002, + 0x40495420, 0x40498820, 0x00000002, 0x40495420, 0x40498A20, 0x00000002, + 0x40495420, 0x40498C20, 0x00000002, 0x40495620, 0x40498420, 0x00000002, + 0x40495620, 0x40498620, 0x00000002, 0x40495620, 0x40498820, 0x00000002, + 0x40495620, 0x40498A20, 0x00000002, 0x40495620, 0x40498C20, 0x00000002, + 0x40495820, 0x40498420, 0x00000002, 0x40495820, 0x40498620, 0x00000002, + 0x40495820, 0x40498820, 0x00000002, 0x40495820, 0x40498A20, 0x00000002, + 0x40495820, 0x40498C20, 0x00000002, 0x40495A20, 0x40498420, 0x00000002, + 0x40495A20, 0x40498620, 0x00000002, 0x40495A20, 0x40498820, 0x00000002, + 0x40495A20, 0x40498A20, 0x00000002, 0x40495A20, 0x40498C20, 0x00000002, + 0x40495C20, 0x40498420, 0x00000002, 0x40495C20, + // Block 107, offset 0x1ac0 + 0x40498620, 0x00000002, 0x40495C20, 0x40498820, 0x00000002, 0x40495C20, + 0x40498A20, 0x00000002, 0x40495C20, 0x40498C20, 0x00000002, 0x40495E20, + 0x40498420, 0x00000002, 0x40495E20, 0x40498620, 0x00000002, 0x40495E20, + 0x40498820, 0x00000002, 0x40495E20, 0x40498A20, 0x00000002, 0x40495E20, + 0x40498C20, 0x00000002, 0x40496020, 0x40498420, 0x00000002, 0x40496020, + 0x40498620, 0x00000002, 0x40496020, 0x40498820, 0x00000002, 0x40496020, + 0x40498A20, 0x00000002, 0x40496020, 0x40498C20, 0x00000002, 0x40496220, + 0x40498420, 0x00000002, 0x40496220, 0x40498620, 0x00000002, 0x40496220, + 0x40498820, 0x00000002, 0x40496220, 0x40498A20, 0x00000002, 0x40496220, + 0x40498C20, 0x00000002, 0x40496420, 0x40498420, 0x00000002, 0x40496420, + 0x40498620, 0x00000002, 0x40496420, 0x40498820, + // Block 108, offset 0x1b00 + 0x00000002, 0x40496420, 0x40498A20, 0x00000002, 0x40496420, 0x40498C20, + 0x00000002, 0x40496620, 0x40498420, 0x00000002, 0x40496620, 0x40498620, + 0x00000002, 0x40496620, 0x40498820, 0x00000002, 0x40496620, 0x40498A20, + 0x00000002, 0x40496620, 0x40498C20, 0x00000002, 0x40496820, 0x40498420, + 0x00000002, 0x40496820, 0x40498620, 0x00000002, 0x40496820, 0x40498820, + 0x00000002, 0x40496820, 0x40498A20, 0x00000002, 0x40496820, 0x40498C20, + 0x00000002, 0x40496A20, 0x40498420, 0x00000002, 0x40496A20, 0x40498620, + 0x00000002, 0x40496A20, 0x40498820, 0x00000002, 0x40496A20, 0x40498A20, + 0x00000002, 0x40496A20, 0x40498C20, 0x00000002, 0x40499020, 0x4049E620, + 0x00000002, 0x40499020, 0x4049E820, 0x00000002, 0x40499020, 0x4049EA20, + 0x00000002, 0x40499020, 0x4049EC20, 0x00000002, + // Block 109, offset 0x1b40 + 0x40499020, 0x4049EE20, 0x00000002, 0x40499220, 0x4049E620, 0x00000002, + 0x40499220, 0x4049E820, 0x00000002, 0x40499220, 0x4049EA20, 0x00000002, + 0x40499220, 0x4049EC20, 0x00000002, 0x40499220, 0x4049EE20, 0x00000002, + 0x40499420, 0x4049E620, 0x00000002, 0x40499420, 0x4049E820, 0x00000002, + 0x40499420, 0x4049EA20, 0x00000002, 0x40499420, 0x4049EC20, 0x00000002, + 0x40499420, 0x4049EE20, 0x00000002, 0x40499620, 0x4049E620, 0x00000002, + 0x40499620, 0x4049E820, 0x00000002, 0x40499620, 0x4049EA20, 0x00000002, + 0x40499620, 0x4049EC20, 0x00000002, 0x40499620, 0x4049EE20, 0x00000002, + 0x40499820, 0x4049E620, 0x00000002, 0x40499820, 0x4049E820, 0x00000002, + 0x40499820, 0x4049EA20, 0x00000002, 0x40499820, 0x4049EC20, 0x00000002, + 0x40499820, 0x4049EE20, 0x00000002, 0x40499A20, + // Block 110, offset 0x1b80 + 0x4049E620, 0x00000002, 0x40499A20, 0x4049E820, 0x00000002, 0x40499A20, + 0x4049EA20, 0x00000002, 0x40499A20, 0x4049EC20, 0x00000002, 0x40499A20, + 0x4049EE20, 0x00000002, 0x40499C20, 0x4049E620, 0x00000002, 0x40499C20, + 0x4049E820, 0x00000002, 0x40499C20, 0x4049EA20, 0x00000002, 0x40499C20, + 0x4049EC20, 0x00000002, 0x40499C20, 0x4049EE20, 0x00000002, 0x40499E20, + 0x4049E620, 0x00000002, 0x40499E20, 0x4049E820, 0x00000002, 0x40499E20, + 0x4049EA20, 0x00000002, 0x40499E20, 0x4049EC20, 0x00000002, 0x40499E20, + 0x4049EE20, 0x00000002, 0x4049A020, 0x4049E620, 0x00000002, 0x4049A020, + 0x4049E820, 0x00000002, 0x4049A020, 0x4049EA20, 0x00000002, 0x4049A020, + 0x4049EC20, 0x00000002, 0x4049A020, 0x4049EE20, 0x00000002, 0x4049A220, + 0x4049E620, 0x00000002, 0x4049A220, 0x4049E820, + // Block 111, offset 0x1bc0 + 0x00000002, 0x4049A220, 0x4049EA20, 0x00000002, 0x4049A220, 0x4049EC20, + 0x00000002, 0x4049A220, 0x4049EE20, 0x00000002, 0x4049A420, 0x4049E620, + 0x00000002, 0x4049A420, 0x4049E820, 0x00000002, 0x4049A420, 0x4049EA20, + 0x00000002, 0x4049A420, 0x4049EC20, 0x00000002, 0x4049A420, 0x4049EE20, + 0x00000002, 0x4049A620, 0x4049E620, 0x00000002, 0x4049A620, 0x4049E820, + 0x00000002, 0x4049A620, 0x4049EA20, 0x00000002, 0x4049A620, 0x4049EC20, + 0x00000002, 0x4049A620, 0x4049EE20, 0x00000002, 0x4049A820, 0x4049E620, + 0x00000002, 0x4049A820, 0x4049E820, 0x00000002, 0x4049A820, 0x4049EA20, + 0x00000002, 0x4049A820, 0x4049EC20, 0x00000002, 0x4049A820, 0x4049EE20, + 0x00000002, 0x4049AA20, 0x4049E620, 0x00000002, 0x4049AA20, 0x4049E820, + 0x00000002, 0x4049AA20, 0x4049EA20, 0x00000002, + // Block 112, offset 0x1c00 + 0x4049AA20, 0x4049EC20, 0x00000002, 0x4049AA20, 0x4049EE20, 0x00000002, + 0x4049AC20, 0x4049E620, 0x00000002, 0x4049AC20, 0x4049E820, 0x00000002, + 0x4049AC20, 0x4049EA20, 0x00000002, 0x4049AC20, 0x4049EC20, 0x00000002, + 0x4049AC20, 0x4049EE20, 0x00000002, 0x4049AE20, 0x4049E620, 0x00000002, + 0x4049AE20, 0x4049E820, 0x00000002, 0x4049AE20, 0x4049EA20, 0x00000002, + 0x4049AE20, 0x4049EC20, 0x00000002, 0x4049AE20, 0x4049EE20, 0x00000002, + 0x4049B020, 0x4049E620, 0x00000002, 0x4049B020, 0x4049E820, 0x00000002, + 0x4049B020, 0x4049EA20, 0x00000002, 0x4049B020, 0x4049EC20, 0x00000002, + 0x4049B020, 0x4049EE20, 0x00000002, 0x4049B220, 0x4049E620, 0x00000002, + 0x4049B220, 0x4049E820, 0x00000002, 0x4049B220, 0x4049EA20, 0x00000002, + 0x4049B220, 0x4049EC20, 0x00000002, 0x4049B220, + // Block 113, offset 0x1c40 + 0x4049EE20, 0x00000002, 0x4049B420, 0x4049E620, 0x00000002, 0x4049B420, + 0x4049E820, 0x00000002, 0x4049B420, 0x4049EA20, 0x00000002, 0x4049B420, + 0x4049EC20, 0x00000002, 0x4049B420, 0x4049EE20, 0x00000002, 0x4049B620, + 0x4049E620, 0x00000002, 0x4049B620, 0x4049E820, 0x00000002, 0x4049B620, + 0x4049EA20, 0x00000002, 0x4049B620, 0x4049EC20, 0x00000002, 0x4049B620, + 0x4049EE20, 0x00000002, 0x4049B820, 0x4049E620, 0x00000002, 0x4049B820, + 0x4049E820, 0x00000002, 0x4049B820, 0x4049EA20, 0x00000002, 0x4049B820, + 0x4049EC20, 0x00000002, 0x4049B820, 0x4049EE20, 0x00000002, 0x4049BA20, + 0x4049E620, 0x00000002, 0x4049BA20, 0x4049E820, 0x00000002, 0x4049BA20, + 0x4049EA20, 0x00000002, 0x4049BA20, 0x4049EC20, 0x00000002, 0x4049BA20, + 0x4049EE20, 0x00000002, 0x4049BC20, 0x4049E620, + // Block 114, offset 0x1c80 + 0x00000002, 0x4049BC20, 0x4049E820, 0x00000002, 0x4049BC20, 0x4049EA20, + 0x00000002, 0x4049BC20, 0x4049EC20, 0x00000002, 0x4049BC20, 0x4049EE20, + 0x00000002, 0x4049BE20, 0x4049E620, 0x00000002, 0x4049BE20, 0x4049E820, + 0x00000002, 0x4049BE20, 0x4049EA20, 0x00000002, 0x4049BE20, 0x4049EC20, + 0x00000002, 0x4049BE20, 0x4049EE20, 0x00000002, 0x4049C020, 0x4049E620, + 0x00000002, 0x4049C020, 0x4049E820, 0x00000002, 0x4049C020, 0x4049EA20, + 0x00000002, 0x4049C020, 0x4049EC20, 0x00000002, 0x4049C020, 0x4049EE20, + 0x00000002, 0x4049C220, 0x4049E620, 0x00000002, 0x4049C220, 0x4049E820, + 0x00000002, 0x4049C220, 0x4049EA20, 0x00000002, 0x4049C220, 0x4049EC20, + 0x00000002, 0x4049C220, 0x4049EE20, 0x00000003, 0x0049C484, 0x0049AC84, + 0x4049E620, 0x00000003, 0x0049C484, 0x0049AC84, + // Block 115, offset 0x1cc0 + 0x4049E820, 0x00000003, 0x0049C484, 0x0049AC84, 0x4049EA20, 0x00000003, + 0x0049C484, 0x0049AC84, 0x4049EC20, 0x00000003, 0x0049C484, 0x0049AC84, + 0x4049EE20, 0x00000003, 0x0049C484, 0x0049BA84, 0x4049E620, 0x00000003, + 0x0049C484, 0x0049BA84, 0x4049E820, 0x00000003, 0x0049C484, 0x0049BA84, + 0x4049EA20, 0x00000003, 0x0049C484, 0x0049BA84, 0x4049EC20, 0x00000003, + 0x0049C484, 0x0049BA84, 0x4049EE20, 0x00000002, 0x4049C420, 0x4049E620, + 0x00000002, 0x4049C420, 0x4049E820, 0x00000002, 0x4049C420, 0x4049EA20, + 0x00000002, 0x4049C420, 0x4049EC20, 0x00000002, 0x4049C420, 0x4049EE20, + 0x00000002, 0x4049C620, 0x4049E620, 0x00000002, 0x4049C620, 0x4049E820, + 0x00000002, 0x4049C620, 0x4049EA20, 0x00000002, 0x4049C620, 0x4049EC20, + 0x00000002, 0x4049C620, 0x4049EE20, 0x00000002, + // Block 116, offset 0x1d00 + 0x4049C820, 0x4049E620, 0x00000002, 0x4049C820, 0x4049E820, 0x00000002, + 0x4049C820, 0x4049EA20, 0x00000002, 0x4049C820, 0x4049EC20, 0x00000002, + 0x4049C820, 0x4049EE20, 0x00000002, 0x4049F020, 0x404A5A20, 0x00000002, + 0x4049F020, 0x404A5C20, 0x00000002, 0x4049F020, 0x404A6220, 0x00000002, + 0x4049F020, 0x404A6620, 0x00000002, 0x4049F020, 0x404A6820, 0x00000002, + 0x4049F220, 0x404A5A20, 0x00000002, 0x4049F220, 0x404A5C20, 0x00000002, + 0x4049F220, 0x404A6220, 0x00000002, 0x4049F220, 0x404A6620, 0x00000002, + 0x4049F220, 0x404A6820, 0x00000002, 0x4049F420, 0x404A5A20, 0x00000002, + 0x4049F420, 0x404A5C20, 0x00000002, 0x4049F420, 0x404A6220, 0x00000002, + 0x4049F420, 0x404A6620, 0x00000002, 0x4049F420, 0x404A6820, 0x00000002, + 0x4049F620, 0x404A5A20, 0x00000002, 0x4049F620, + // Block 117, offset 0x1d40 + 0x404A5C20, 0x00000002, 0x4049F620, 0x404A6220, 0x00000002, 0x4049F620, + 0x404A6620, 0x00000002, 0x4049F620, 0x404A6820, 0x00000002, 0x4049F820, + 0x404A5A20, 0x00000002, 0x4049F820, 0x404A5C20, 0x00000002, 0x4049F820, + 0x404A6220, 0x00000002, 0x4049F820, 0x404A6620, 0x00000002, 0x4049F820, + 0x404A6820, 0x00000002, 0x4049FA20, 0x404A5A20, 0x00000002, 0x4049FA20, + 0x404A5C20, 0x00000002, 0x4049FA20, 0x404A6220, 0x00000002, 0x4049FA20, + 0x404A6620, 0x00000002, 0x4049FA20, 0x404A6820, 0x00000002, 0x4049FC20, + 0x404A5A20, 0x00000002, 0x4049FC20, 0x404A5C20, 0x00000002, 0x4049FC20, + 0x404A6220, 0x00000002, 0x4049FC20, 0x404A6620, 0x00000002, 0x4049FC20, + 0x404A6820, 0x00000002, 0x4049FE20, 0x404A5A20, 0x00000002, 0x4049FE20, + 0x404A5C20, 0x00000002, 0x4049FE20, 0x404A6220, + // Block 118, offset 0x1d80 + 0x00000002, 0x4049FE20, 0x404A6620, 0x00000002, 0x4049FE20, 0x404A6820, + 0x00000002, 0x404A0020, 0x404A5A20, 0x00000002, 0x404A0020, 0x404A5C20, + 0x00000002, 0x404A0020, 0x404A6220, 0x00000002, 0x404A0020, 0x404A6620, + 0x00000002, 0x404A0020, 0x404A6820, 0x00000002, 0x404A0220, 0x404A5A20, + 0x00000002, 0x404A0220, 0x404A5C20, 0x00000002, 0x404A0220, 0x404A6220, + 0x00000002, 0x404A0220, 0x404A6620, 0x00000002, 0x404A0220, 0x404A6820, + 0x00000002, 0x404A0420, 0x404A5A20, 0x00000002, 0x404A0420, 0x404A5C20, + 0x00000002, 0x404A0420, 0x404A6220, 0x00000002, 0x404A0420, 0x404A6620, + 0x00000002, 0x404A0420, 0x404A6820, 0x00000002, 0x404A0620, 0x404A5A20, + 0x00000002, 0x404A0620, 0x404A5C20, 0x00000002, 0x404A0620, 0x404A6220, + 0x00000002, 0x404A0620, 0x404A6620, 0x00000002, + // Block 119, offset 0x1dc0 + 0x404A0620, 0x404A6820, 0x00000002, 0x404A0820, 0x404A5A20, 0x00000002, + 0x404A0820, 0x404A5C20, 0x00000002, 0x404A0820, 0x404A6220, 0x00000002, + 0x404A0820, 0x404A6620, 0x00000002, 0x404A0820, 0x404A6820, 0x00000002, + 0x404A0A20, 0x404A5A20, 0x00000002, 0x404A0A20, 0x404A5C20, 0x00000002, + 0x404A0A20, 0x404A6220, 0x00000002, 0x404A0A20, 0x404A6620, 0x00000002, + 0x404A0A20, 0x404A6820, 0x00000002, 0x404A0C20, 0x404A5A20, 0x00000002, + 0x404A0C20, 0x404A5C20, 0x00000002, 0x404A0C20, 0x404A6220, 0x00000002, + 0x404A0C20, 0x404A6620, 0x00000002, 0x404A0C20, 0x404A6820, 0x00000002, + 0x404A0E20, 0x404A5A20, 0x00000002, 0x404A0E20, 0x404A5C20, 0x00000002, + 0x404A0E20, 0x404A6220, 0x00000002, 0x404A0E20, 0x404A6620, 0x00000002, + 0x404A0E20, 0x404A6820, 0x00000002, 0x404A1020, + // Block 120, offset 0x1e00 + 0x404A5A20, 0x00000002, 0x404A1020, 0x404A5C20, 0x00000002, 0x404A1020, + 0x404A6220, 0x00000002, 0x404A1020, 0x404A6620, 0x00000002, 0x404A1020, + 0x404A6820, 0x00000002, 0x404A1220, 0x404A5A20, 0x00000002, 0x404A1220, + 0x404A5C20, 0x00000002, 0x404A1220, 0x404A6220, 0x00000002, 0x404A1220, + 0x404A6620, 0x00000002, 0x404A1220, 0x404A6820, 0x00000002, 0x404A1420, + 0x404A5A20, 0x00000002, 0x404A1420, 0x404A5C20, 0x00000002, 0x404A1420, + 0x404A6220, 0x00000002, 0x404A1420, 0x404A6620, 0x00000002, 0x404A1420, + 0x404A6820, 0x00000002, 0x404A1620, 0x404A5A20, 0x00000002, 0x404A1620, + 0x404A5C20, 0x00000002, 0x404A1620, 0x404A6220, 0x00000002, 0x404A1620, + 0x404A6620, 0x00000002, 0x404A1620, 0x404A6820, 0x00000002, 0x404A1820, + 0x404A5A20, 0x00000002, 0x404A1820, 0x404A5C20, + // Block 121, offset 0x1e40 + 0x00000002, 0x404A1820, 0x404A6220, 0x00000002, 0x404A1820, 0x404A6620, + 0x00000002, 0x404A1820, 0x404A6820, 0x00000002, 0x404A1A20, 0x404A5A20, + 0x00000002, 0x404A1A20, 0x404A5C20, 0x00000002, 0x404A1A20, 0x404A6220, + 0x00000002, 0x404A1A20, 0x404A6620, 0x00000002, 0x404A1A20, 0x404A6820, + 0x00000002, 0x404A1C20, 0x404A5A20, 0x00000002, 0x404A1C20, 0x404A5C20, + 0x00000002, 0x404A1C20, 0x404A6220, 0x00000002, 0x404A1C20, 0x404A6620, + 0x00000002, 0x404A1C20, 0x404A6820, 0x00000002, 0x404A1E20, 0x404A5A20, + 0x00000002, 0x404A1E20, 0x404A5C20, 0x00000002, 0x404A1E20, 0x404A6220, + 0x00000002, 0x404A1E20, 0x404A6620, 0x00000002, 0x404A1E20, 0x404A6820, + 0x00000002, 0x404A2020, 0x404A5A20, 0x00000002, 0x404A2020, 0x404A5C20, + 0x00000002, 0x404A2020, 0x404A6220, 0x00000002, + // Block 122, offset 0x1e80 + 0x404A2020, 0x404A6620, 0x00000002, 0x404A2020, 0x404A6820, 0x00000002, + 0x404A2220, 0x404A5A20, 0x00000002, 0x404A2220, 0x404A5C20, 0x00000002, + 0x404A2220, 0x404A6220, 0x00000002, 0x404A2220, 0x404A6620, 0x00000002, + 0x404A2220, 0x404A6820, 0x00000002, 0x404A2420, 0x404A5A20, 0x00000002, + 0x404A2420, 0x404A5C20, 0x00000002, 0x404A2420, 0x404A6220, 0x00000002, + 0x404A2420, 0x404A6620, 0x00000002, 0x404A2420, 0x404A6820, 0x00000002, + 0x404A2620, 0x404A5A20, 0x00000002, 0x404A2620, 0x404A5C20, 0x00000002, + 0x404A2620, 0x404A6220, 0x00000002, 0x404A2620, 0x404A6620, 0x00000002, + 0x404A2620, 0x404A6820, 0x00000002, 0x404A2820, 0x404A5A20, 0x00000002, + 0x404A2820, 0x404A5C20, 0x00000002, 0x404A2820, 0x404A6220, 0x00000002, + 0x404A2820, 0x404A6620, 0x00000002, 0x404A2820, + // Block 123, offset 0x1ec0 + 0x404A6820, 0x00000002, 0x404A2A20, 0x404A5A20, 0x00000002, 0x404A2A20, + 0x404A5C20, 0x00000002, 0x404A2A20, 0x404A6220, 0x00000002, 0x404A2A20, + 0x404A6620, 0x00000002, 0x404A2A20, 0x404A6820, 0x00000002, 0x404A2C20, + 0x404A5A20, 0x00000002, 0x404A2C20, 0x404A5C20, 0x00000002, 0x404A2C20, + 0x404A6220, 0x00000002, 0x404A2C20, 0x404A6620, 0x00000002, 0x404A2C20, + 0x404A6820, 0x00000002, 0x404A2E20, 0x404A5A20, 0x00000002, 0x404A2E20, + 0x404A5C20, 0x00000002, 0x404A2E20, 0x404A6220, 0x00000002, 0x404A2E20, + 0x404A6620, 0x00000002, 0x404A2E20, 0x404A6820, 0x00000002, 0x404A3020, + 0x404A5A20, 0x00000002, 0x404A3020, 0x404A5C20, 0x00000002, 0x404A3020, + 0x404A6220, 0x00000002, 0x404A3020, 0x404A6620, 0x00000002, 0x404A3020, + 0x404A6820, 0x00000002, 0x404A3220, 0x404A5A20, + // Block 124, offset 0x1f00 + 0x00000002, 0x404A3220, 0x404A5C20, 0x00000002, 0x404A3220, 0x404A6220, + 0x00000002, 0x404A3220, 0x404A6620, 0x00000002, 0x404A3220, 0x404A6820, + 0x00000002, 0x404A3420, 0x404A5A20, 0x00000002, 0x404A3420, 0x404A5C20, + 0x00000002, 0x404A3420, 0x404A6220, 0x00000002, 0x404A3420, 0x404A6620, + 0x00000002, 0x404A3420, 0x404A6820, 0x00000002, 0x404A3620, 0x404A5A20, + 0x00000002, 0x404A3620, 0x404A5C20, 0x00000002, 0x404A3620, 0x404A6220, + 0x00000002, 0x404A3620, 0x404A6620, 0x00000002, 0x404A3620, 0x404A6820, + 0x00000002, 0x404A3820, 0x404A5A20, 0x00000002, 0x404A3820, 0x404A5C20, + 0x00000002, 0x404A3820, 0x404A6220, 0x00000002, 0x404A3820, 0x404A6620, + 0x00000002, 0x404A3820, 0x404A6820, 0x00000002, 0x404A3A20, 0x404A5A20, + 0x00000002, 0x404A3A20, 0x404A5C20, 0x00000002, + // Block 125, offset 0x1f40 + 0x404A3A20, 0x404A6220, 0x00000002, 0x404A3A20, 0x404A6620, 0x00000002, + 0x404A3A20, 0x404A6820, 0x00000002, 0x404A3C20, 0x404A5A20, 0x00000002, + 0x404A3C20, 0x404A5C20, 0x00000002, 0x404A3C20, 0x404A6220, 0x00000002, + 0x404A3C20, 0x404A6620, 0x00000002, 0x404A3C20, 0x404A6820, 0x00000002, + 0x404A3E20, 0x404A5A20, 0x00000002, 0x404A3E20, 0x404A5C20, 0x00000002, + 0x404A3E20, 0x404A6220, 0x00000002, 0x404A3E20, 0x404A6620, 0x00000002, + 0x404A3E20, 0x404A6820, 0x00000002, 0x404A4020, 0x404A5A20, 0x00000002, + 0x404A4020, 0x404A5C20, 0x00000002, 0x404A4020, 0x404A6220, 0x00000002, + 0x404A4020, 0x404A6620, 0x00000002, 0x404A4020, 0x404A6820, 0x00000002, + 0x404A4220, 0x404A5A20, 0x00000002, 0x404A4220, 0x404A5C20, 0x00000002, + 0x404A4220, 0x404A6220, 0x00000002, 0x404A4220, + // Block 126, offset 0x1f80 + 0x404A6620, 0x00000002, 0x404A4220, 0x404A6820, 0x00000002, 0x404A4420, + 0x404A5A20, 0x00000002, 0x404A4420, 0x404A5C20, 0x00000002, 0x404A4420, + 0x404A6220, 0x00000002, 0x404A4420, 0x404A6620, 0x00000002, 0x404A4420, + 0x404A6820, 0x00000002, 0x404A4620, 0x404A5A20, 0x00000002, 0x404A4620, + 0x404A5C20, 0x00000002, 0x404A4620, 0x404A6220, 0x00000002, 0x404A4620, + 0x404A6620, 0x00000002, 0x404A4620, 0x404A6820, 0x00000002, 0x404A4820, + 0x404A5A20, 0x00000002, 0x404A4820, 0x404A5C20, 0x00000002, 0x404A4820, + 0x404A6220, 0x00000002, 0x404A4820, 0x404A6620, 0x00000002, 0x404A4820, + 0x404A6820, 0x00000002, 0x404A4A20, 0x404A5A20, 0x00000002, 0x404A4A20, + 0x404A5C20, 0x00000002, 0x404A4A20, 0x404A6220, 0x00000002, 0x404A4A20, + 0x404A6620, 0x00000002, 0x404A4A20, 0x404A6820, + // Block 127, offset 0x1fc0 + 0x00000002, 0x404A4C20, 0x404A5A20, 0x00000002, 0x404A4C20, 0x404A5C20, + 0x00000002, 0x404A4C20, 0x404A6220, 0x00000002, 0x404A4C20, 0x404A6620, + 0x00000002, 0x404A4C20, 0x404A6820, 0x00000002, 0x404A4E20, 0x404A5A20, + 0x00000002, 0x404A4E20, 0x404A5C20, 0x00000002, 0x404A4E20, 0x404A6220, + 0x00000002, 0x404A4E20, 0x404A6620, 0x00000002, 0x404A4E20, 0x404A6820, + 0x00000002, 0x404A7620, 0x404AF820, 0x00000002, 0x404A7820, 0x404AF820, + 0x00000002, 0x404A8020, 0x404B0020, 0x00000002, 0x404A8220, 0x404B0020, + 0x00000002, 0x404AA020, 0x404B0020, 0x00000002, 0x404AA220, 0x404B0020, + 0x00000002, 0x404AB020, 0x404B0020, 0x00000002, 0x404AB220, 0x404B0020, + 0x00000002, 0x404AC020, 0x404B0020, 0x00000002, 0x404AC220, 0x404B0020, + 0x00000002, 0x404AD020, 0x404B0020, 0x00000002, + // Block 128, offset 0x2000 + 0x404AD220, 0x404B0020, 0x00000002, 0x004AD684, 0xA0013A04, 0x00000002, + 0x004AE684, 0xA0013A04, 0x00000002, 0x004AE884, 0xA0013A04, 0x00000002, + 0x004AEA84, 0xA0013A04, 0x00000002, 0x404AEA20, 0x8281258D, 0x00000002, + 0x404AEA20, 0x82812591, 0x00000002, 0x404AF020, 0x8281258D, 0x00000002, + 0x404AF020, 0x82812591, 0x00000003, 0x004B0284, 0x004B3084, 0xA000F304, + 0x00000003, 0x004EA684, 0x004F1484, 0x004EA684, 0x00000002, 0x0050AE84, + 0x0050DA84, 0x00000003, 0x0050AE84, 0x0050DA84, 0x0050F084, 0x00000003, + 0x00514E84, 0x00519A84, 0x00514E84, 0x00000002, 0x005ADA84, 0xA0013904, + 0x00000002, 0x005ADC84, 0xA0013904, 0x00000002, 0x005ADC84, 0xA0013A04, + 0x00000002, 0x005ADE84, 0xA0013904, 0x00000002, 0x005ADE84, 0x005ADE84, + 0x00000002, 0x005AE084, 0xA0013904, 0x00000002, + // Block 129, offset 0x2040 + 0x005AE084, 0xA0013A04, 0x00000002, 0x005AE084, 0xA0013C04, 0x00000002, + 0x005AE084, 0xA0013D04, 0x00000002, 0x005AE884, 0xA0013904, 0x00000002, + 0x005AE884, 0xA0013A04, 0x00000002, 0x005AE884, 0xA0013C04, 0x00000002, + 0x005AE884, 0xA0013D04, 0x00000002, 0x005AEC84, 0xA0013904, 0x00000002, + 0x005AEE84, 0xA0013904, 0x00000002, 0x005AEE84, 0xA0013A04, 0x00000002, + 0x005AEE84, 0xA0013C04, 0x00000002, 0x005AF084, 0xA0013904, 0x00000002, + 0x005AF084, 0xA0013A04, 0x00000002, 0x005AF284, 0xA0013904, 0x00000002, + 0x005AF484, 0xA0013904, 0x00000002, 0x005AF684, 0xA0013904, 0x00000002, + 0x005AF684, 0x005B0884, 0x00000002, 0x005AFA84, 0xA0013904, 0x00000002, + 0x005AFE84, 0xA0013904, 0x00000002, 0x005AFE84, 0xA0013A04, 0x00000002, + 0x005AFE84, 0xA0013C04, 0x00000002, 0x005AFE84, + // Block 130, offset 0x2080 + 0xA0013D04, 0x00000002, 0x005AFE84, 0xA0013E04, 0x00000002, 0x005B0084, + 0xA0013904, 0x00000002, 0x005B0084, 0xA0013A04, 0x00000002, 0x005B0284, + 0xA0013904, 0x00000002, 0x005B0284, 0xA0013A04, 0x00000002, 0x005B0684, + 0xA0013904, 0x00000002, 0x005B0684, 0xA0013A04, 0x00000004, 0x005B0684, + 0xA0013904, 0x005B0684, 0xA0013904, 0x00000002, 0x005B0884, 0xA0013904, + 0x00000002, 0x005B0A84, 0xA0013904, 0x00000002, 0x005B2484, 0xA0013904, + 0x00000002, 0x005B2484, 0xA0013A04, 0x00000002, 0x005B2684, 0xA0013904, + 0x00000002, 0x005B2A84, 0xA0013904, 0x00000002, 0x005B3084, 0xA0013904, + 0x00000002, 0x005B3284, 0xA0013904, 0x00000002, 0x005B3484, 0xA0013904, + 0x00000002, 0x005B3684, 0xA0013904, 0x00000002, 0x005B3884, 0xA0013904, + 0x00000002, 0x005B3A84, 0xA0013904, 0x00000002, + // Block 131, offset 0x20c0 + 0x005B3E84, 0xA0013904, 0x00000002, 0x005B4084, 0xA0013904, 0x00000002, + 0x005B4284, 0xA0013904, 0x00000002, 0x005B4484, 0xA0013904, 0x00000002, + 0x005B4684, 0xA0013904, 0x00000002, 0x005B4884, 0xA0013904, 0x00000002, + 0x005B5284, 0xA0013904, 0x00000002, 0x005B5484, 0xA0013904, 0x00000002, + 0x005B5684, 0xA0013904, 0x00000002, 0x005B5884, 0xA0013904, 0x00000002, + 0x005B5C84, 0xA0013904, 0x00000002, 0x005B6484, 0xA0013904, 0x00000002, + 0x005B6684, 0xA0013904, 0x00000002, 0x005B6884, 0xA0013904, 0x00000002, + 0x005B6A84, 0xA0013904, 0x00000002, 0x005B6C84, 0xA0013904, 0x00000002, + 0x005B7484, 0xA0013904, 0x00000002, 0x005B7684, 0xA0013904, 0x00000002, + 0x005B7884, 0xA0013904, 0x00000002, 0x005B7A84, 0xA0013904, 0x00000002, + 0x005B9884, 0x005D9684, 0x00000002, 0x005BBC84, + // Block 132, offset 0x2100 + 0x005D9684, 0x00000002, 0x005BE684, 0x005D9684, 0x00000002, 0x005C0E84, + 0x005D9884, 0x00000002, 0x005C2484, 0x005D9684, 0x00000002, 0x005C3084, + 0x005D9884, 0x00000002, 0x005C3484, 0x005D9884, 0x00000002, 0x005C4084, + 0x005D9684, 0x00000002, 0x005C8A84, 0x005D9684, 0x00000002, 0x005CE884, + 0x005D9684, 0x00000002, 0x005D1684, 0x005D9684, 0x00000002, 0x005D2284, + 0x005D9884, 0x00000002, 0x005D3084, 0x005D9684, 0x00000004, 0x0062C486, + 0x0063C286, 0x0062C286, 0x0063CE86, 0x00000005, 0x0062C886, 0x0063A886, + 0x00648286, 0x0062AC86, 0x0063B886, 0x00000003, 0x0065769C, 0x0027D69C, + 0x0065CA9C, 0x00000005, 0x0065769C, 0x0065AA9C, 0xA001291C, 0x0027D69C, + 0x00659E9C, 0x00000004, 0x0065769C, 0x0065CA9C, 0x0065AE9C, 0x0065769C, + 0x00000005, 0x0065769C, 0x0065D89C, 0x0065B09C, + // Block 133, offset 0x2140 + 0xA001291C, 0x0065769C, 0x00000005, 0x0065789C, 0x0065A29C, 0x0065D89C, + 0x0065869C, 0xA001281C, 0x00000003, 0x0065789C, 0x0065D89C, 0x0065989C, + 0x00000002, 0x00657A8E, 0xA0812802, 0x00000002, 0x00657A91, 0xA0812802, + 0x00000003, 0x00657A9C, 0x0065809C, 0x0065D89C, 0x00000004, 0x00657E9C, + 0x0027D69C, 0x0065829C, 0x0027D69C, 0x00000006, 0x00657E9C, 0x0065909C, + 0x0065869C, 0x0027D69C, 0x00659E9C, 0xA001281C, 0x00000003, 0x0065809C, + 0x0027D69C, 0x0065B89C, 0x00000003, 0x0065809C, 0x0065D89C, 0x0065909C, + 0x00000002, 0x0065828E, 0xA0812802, 0x00000002, 0x00658291, 0xA0812802, + 0x00000003, 0x0065829C, 0x0065789C, 0x0065C89C, 0x00000004, 0x0065829C, + 0x0065C69C, 0x00659A9C, 0x00659E9C, 0x00000004, 0x0065829C, 0x0065CE9C, + 0x0065C89C, 0x0027D69C, 0x00000004, 0x0065829C, + // Block 134, offset 0x2180 + 0xA001281C, 0x0065CE9C, 0x0065D89C, 0x00000004, 0x0065829C, 0xA001281C, + 0x0065D89C, 0x0065B49C, 0x00000002, 0x0065848E, 0xA0812802, 0x00000002, + 0x00658491, 0xA0812802, 0x00000004, 0x0065849C, 0xA001281C, 0x0065829C, + 0xA001281C, 0x00000004, 0x0065849C, 0xA001281C, 0x0065A29C, 0x0027D69C, + 0x00000004, 0x0065849C, 0x0065C09C, 0x0065C89C, 0x0027D69C, 0x00000006, + 0x0065849C, 0xA001281C, 0x0065CA9C, 0x0065969C, 0xA001281C, 0x0027D69C, + 0x00000006, 0x0065849C, 0x0065CE9C, 0x0065869C, 0xA001281C, 0x0065C69C, + 0x0065B89C, 0x00000006, 0x0065849C, 0x0065CE9C, 0x0065BA9C, 0x0027D69C, + 0x00659E9C, 0x0065CA9C, 0x00000005, 0x0065849C, 0x0065CE9C, 0x0065D09C, + 0x00659A9C, 0x00659E9C, 0x00000002, 0x0065868E, 0xA0812802, 0x00000002, + 0x00658691, 0xA0812802, 0x00000004, 0x0065869C, + // Block 135, offset 0x21c0 + 0xA001281C, 0x0065C69C, 0x0065B89C, 0x00000006, 0x0065869C, 0xA001281C, + 0x0065C69C, 0x0065B89C, 0x00659E9C, 0x0065D89C, 0x00000006, 0x0065869C, + 0x0065CA9C, 0x0065929C, 0xA001281C, 0x0065789C, 0x0065CE9C, 0x00000004, + 0x0065869C, 0x0065CE9C, 0x0027D69C, 0x0065A69C, 0x00000002, 0x0065888E, + 0xA0812802, 0x00000002, 0x00658891, 0xA0812802, 0x00000003, 0x0065889C, + 0x0027D69C, 0x0065909C, 0x00000002, 0x00658A8E, 0xA0812802, 0x00000002, + 0x00658A91, 0xA0812802, 0x00000004, 0x00658A9C, 0x0027D69C, 0x0065B29C, + 0xA001291C, 0x00000003, 0x00658A9C, 0x0065CA9C, 0x0065A09C, 0x00000002, + 0x00658C8E, 0xA0812802, 0x00000002, 0x00658C91, 0xA0812802, 0x00000004, + 0x00658C9C, 0x0065789C, 0x0065869C, 0x0065CA9C, 0x00000005, 0x00658C9C, + 0x0065D89C, 0x0065989C, 0x0027D69C, 0x0065B89C, + // Block 136, offset 0x2200 + 0x00000002, 0x00658E8E, 0xA0812802, 0x00000002, 0x00658E91, 0xA0812802, + 0x00000002, 0x00658E84, 0x0065BA84, 0x00000005, 0x00658E9C, 0x0065C89C, + 0x0065D89C, 0x0065869C, 0xA001281C, 0x00000002, 0x0065908E, 0xA0812802, + 0x00000002, 0x00659091, 0xA0812802, 0x00000002, 0x0065928E, 0xA0812802, + 0x00000002, 0x00659291, 0xA0812802, 0x00000003, 0x0065929C, 0x0065D89C, + 0x0065989C, 0x00000003, 0x0065929C, 0x0065D89C, 0x00659E9C, 0x00000002, + 0x0065948E, 0xA0812802, 0x00000002, 0x00659491, 0xA0812802, 0x00000002, + 0x0065968E, 0xA0812802, 0x00000002, 0x00659691, 0xA0812802, 0x00000004, + 0x0065969C, 0xA001281C, 0x0027D69C, 0x0065909C, 0x00000002, 0x0065988E, + 0xA0812802, 0x00000002, 0x00659891, 0xA0812802, 0x00000002, 0x00659A8E, + 0xA0812802, 0x00000002, 0x00659A91, 0xA0812802, + // Block 137, offset 0x2240 + 0x00000002, 0x00659C8E, 0xA0812802, 0x00000002, 0x00659C91, 0xA0812802, + 0x00000003, 0x00659C9C, 0xA001281C, 0x00658E9C, 0x00000002, 0x00659E8E, + 0xA0812802, 0x00000002, 0x00659E91, 0xA0812802, 0x00000003, 0x00659E9C, + 0xA001281C, 0x0065CA9C, 0x00000003, 0x0065A89C, 0x00659A9C, 0x00659E9C, + 0x00000002, 0x0065AA8E, 0xA0812802, 0x00000002, 0x0065AA91, 0xA0812802, + 0x00000002, 0x0065AA8E, 0xA0812902, 0x00000002, 0x0065AA91, 0xA0812902, + 0x00000006, 0x0065AA9C, 0xA001291C, 0x0027D69C, 0x0065929C, 0x0065D89C, + 0x00659E9C, 0x00000004, 0x0065AA9C, 0xA001291C, 0x0027D69C, 0x00659A9C, + 0x00000005, 0x0065AA9C, 0xA001281C, 0x0027D69C, 0x0065CC9C, 0x0065CA9C, + 0x00000003, 0x0065AA9C, 0x0065789C, 0x00659A9C, 0x00000002, 0x0065AC8E, + 0xA0812802, 0x00000002, 0x0065AC91, 0xA0812802, + // Block 138, offset 0x2280 + 0x00000002, 0x0065AC8E, 0xA0812902, 0x00000002, 0x0065AC91, 0xA0812902, + 0x00000006, 0x0065AC9C, 0xA001291C, 0x0065769C, 0x0065909C, 0x00659E9C, + 0x0065CA9C, 0x00000004, 0x0065AC9C, 0xA001291C, 0x0065869C, 0x0065CA9C, + 0x00000003, 0x0065AC9C, 0xA001291C, 0x00658A9C, 0x00000003, 0x0065AC9C, + 0xA001281C, 0x0065CA9C, 0x00000002, 0x0065AE8E, 0xA0812802, 0x00000002, + 0x0065AE91, 0xA0812802, 0x00000002, 0x0065AE8E, 0xA0812902, 0x00000002, + 0x0065AE91, 0xA0812902, 0x00000006, 0x0065AE9C, 0x0065769C, 0x0065C69C, + 0x00659A9C, 0x00659E9C, 0xA001281C, 0x00000004, 0x0065AE9C, 0x0065789C, + 0x0027D69C, 0x00659E9C, 0x00000006, 0x0065AE9C, 0xA001281C, 0x00659A9C, + 0x00658E9C, 0x00657E9C, 0x0065CA9C, 0x00000003, 0x0065AE9C, 0x0065C69C, + 0x0065D89C, 0x00000002, 0x0065B08E, 0xA0812802, + // Block 139, offset 0x22c0 + 0x00000002, 0x0065B091, 0xA0812802, 0x00000002, 0x0065B08E, 0xA0812902, + 0x00000002, 0x0065B091, 0xA0812902, 0x00000005, 0x0065B09C, 0xA001291C, + 0x0027D69C, 0x00658E9C, 0xA001281C, 0x00000004, 0x0065B09C, 0xA001281C, + 0x0027D69C, 0x0065969C, 0x00000005, 0x0065B09C, 0x0065869C, 0x0065969C, + 0x0027D69C, 0x0065CA9C, 0x00000003, 0x0065B09C, 0xA001291C, 0x0065949C, + 0x00000004, 0x0065B09C, 0xA001291C, 0x0065A29C, 0x0065AC9C, 0x00000003, + 0x0065B09C, 0x0065CA9C, 0x00659A9C, 0x00000004, 0x0065B09C, 0xA001291C, + 0x0065D89C, 0x0065909C, 0x00000002, 0x0065B28E, 0xA0812802, 0x00000002, + 0x0065B291, 0xA0812802, 0x00000002, 0x0065B28E, 0xA0812902, 0x00000002, + 0x0065B291, 0xA0812902, 0x00000003, 0x0065B29C, 0x0027D69C, 0x0065CA9C, + 0x00000003, 0x0065B29C, 0x0027D69C, 0x0065D89C, + // Block 140, offset 0x2300 + 0x00000005, 0x0065B29C, 0xA001291C, 0x0065789C, 0x0065D89C, 0x00659E9C, + 0x00000004, 0x0065B29C, 0xA001281C, 0x0065CA9C, 0x00659E9C, 0x00000005, + 0x0065B29C, 0xA001291C, 0x0065D89C, 0x00659E9C, 0xA001281C, 0x00000004, + 0x0065B49C, 0x0065789C, 0x0065869C, 0x0065CE9C, 0x00000003, 0x0065B49C, + 0x0065789C, 0x0065CA9C, 0x00000002, 0x0065B484, 0x00659084, 0x00000003, + 0x0065B49C, 0x00659A9C, 0x0065AA9C, 0x00000003, 0x0065B49C, 0x0065CA9C, + 0x0065869C, 0x00000005, 0x0065B49C, 0x0065D89C, 0x00658E9C, 0x0065C49C, + 0x0065D89C, 0x00000004, 0x0065B69C, 0x0065869C, 0x0065CE9C, 0x0065D89C, + 0x00000006, 0x0065B69C, 0x0065C89C, 0x0065AA9C, 0xA001281C, 0x0027D69C, + 0x0065CA9C, 0x00000004, 0x0065BA9C, 0x0027D69C, 0x00659E9C, 0x0065CA9C, + 0x00000003, 0x0065BA9C, 0x0065829C, 0xA001281C, + // Block 141, offset 0x2340 + 0x00000005, 0x0065BA9C, 0x0065829C, 0xA001281C, 0x00659E9C, 0x0065D89C, + 0x00000004, 0x0065BE9C, 0x0027D69C, 0x00659E9C, 0xA001281C, 0x00000003, + 0x0065BE9C, 0x0027D69C, 0x0065CA9C, 0x00000003, 0x0065C09C, 0x0065769C, + 0x0065D89C, 0x00000004, 0x0065C89C, 0x00659A9C, 0x00659E9C, 0x0065CA9C, + 0x00000005, 0x0065CA9C, 0x0027D69C, 0x0065AE9C, 0xA001281C, 0x0065CA9C, + 0x00000004, 0x0065CA9C, 0x0065AC9C, 0xA001291C, 0x0027D69C, 0x00000006, + 0x0065CC9C, 0x0065D89C, 0x00659E9C, 0x0065889C, 0xA001281C, 0x0065D89C, + 0x00000002, 0x0065D091, 0xA0812802, 0x00000003, 0x0065D09C, 0x00659A9C, + 0x00659E9C, 0x00000002, 0x0065D291, 0xA0812802, 0x00000002, 0x0065D491, + 0xA0812802, 0x00000002, 0x0065D691, 0xA0812802, 0x00000002, 0x0065DA84, + 0xA0013A04, 0x00000002, 0x0065EC84, 0xA0013A04, + // Block 142, offset 0x2380 + 0x00000002, 0x0065F684, 0xA0013A04, 0x00000002, 0x00660684, 0xA0013A04, + 0x00000002, 0x00661284, 0xA0013A04, 0x00000002, 0x00661484, 0xA0013A04, + 0x00000002, 0x00661C84, 0xA0013A04, 0x00000002, 0x00661E84, 0xA0013A04, + 0x00000002, 0x00662284, 0xA0013A04, 0x00000002, 0x00663884, 0xA0013A04, + 0x00000002, 0x00663896, 0xA0013A16, 0x00000002, 0x00663A84, 0xA0013A04, + 0x00000002, 0x00663A84, 0xA0013C04, 0x00000002, 0x0075C284, 0xA0013904, + 0x00000002, 0x00862084, 0xA0013904, 0x00000002, 0x00862284, 0xA0013904, + 0x00000002, 0x00862484, 0xA0013904, 0x00000002, 0x00862684, 0xA0013904, + 0x00000002, 0x00862884, 0xA0013904, 0x00000002, 0x00862A84, 0xA0013904, + 0x00000002, 0x00862C84, 0xA0013904, 0x00000002, 0x00862C84, 0xA0013A04, + 0x00000002, 0x00862E84, 0xA0013904, 0x00000002, + // Block 143, offset 0x23c0 + 0x00863084, 0xA0013904, 0x00000002, 0x00863284, 0xA0013904, 0x00000002, + 0x00863284, 0xA0013A04, 0x00000002, 0x00863484, 0xA0013904, 0x00000002, + 0x00863484, 0xA0013A04, 0x00000002, 0x00863684, 0xA0013904, 0x00000002, + 0x00863684, 0xA0013A04, 0x00000002, 0x00863884, 0xA0013904, 0x00000002, + 0x00863A84, 0xA0013904, 0x00000002, 0x00863C84, 0xA0013904, 0x00000002, + 0x00863E84, 0xA0013904, 0x00000002, 0x00863E84, 0xA0013A04, 0x00000002, + 0x00863E84, 0xA0013C04, 0x00000002, 0x00864084, 0xA0013904, 0x00000002, + 0x00864284, 0xA0013904, 0x00000002, 0x00864484, 0xA0013904, 0x00000002, + 0x00864684, 0xA0013904, 0x00000002, 0x00864684, 0xA0013A04, 0x00000002, + 0x00864884, 0xA0013904, 0x00000002, 0x00864884, 0xA0013A04, 0x00000002, + 0x00864A84, 0xA0013904, 0x00000002, 0x00864C84, + // Block 144, offset 0x2400 + 0xA0013904, 0x00000002, 0x029C6C84, 0xA0013904, 0x00000002, 0x029CB284, + 0xA0013904, 0x00000002, 0x02A30484, 0xA0013904, 0x00000002, 0x02A3C084, + 0xA0013904, 0x00000002, 0x02A40084, 0xA0013904, 0x00000002, 0x02A6B884, + 0xA0013904, 0x00000002, 0x02A6D284, 0xA0013904, 0x00000002, 0x02A70484, + 0xA0013904, 0x00000002, 0x02B81E84, 0xA0013904, 0x00000002, 0x02B81E84, + 0xA0013A04, 0x00000002, 0x02B84484, 0xA0013904, 0x00000002, 0x02B84684, + 0xA0013904, 0x00000002, 0x02BEA084, 0xA0013904, 0x00000002, 0x02BF8684, + 0xA0013904, 0x00000002, 0x02CBCA84, 0xA0013904, 0x00000002, 0x02CE1084, + 0xA0013904, 0x00000004, 0x02D0549C, 0x02BE1E9C, 0x029E349C, 0x02F27C9C, + 0x00000002, 0x02D6F484, 0xA0013904, 0x00000002, 0x02E45684, 0xA0013904, + 0x00000002, 0x02E4B684, 0xA0013904, 0x00000002, + // Block 145, offset 0x2440 + 0x02E71684, 0xA0013904, 0x00000002, 0x02EB1684, 0xA0013904, 0x00000002, + 0x02EDDC84, 0xA0013904, 0x00000002, 0x02F27484, 0xA0013904, 0x00000002, + 0x02F5F284, 0xA0013904, 0x00000002, 0x02FEA484, 0xA0013904, 0x00000002, + 0x02FEA684, 0xA0013904, 0x00000002, 0x02FEA684, 0xA0013A04, 0x00000002, + 0x02FF1484, 0xA0013904, 0x00000002, 0x02FF1484, 0xA0013A04, 0x00000002, + 0x0300FE84, 0xA0013904, 0x00000002, 0x03011284, 0xA0013904, 0x00000002, + 0x0303F884, 0xA0013904, 0x00000002, 0x0304F284, 0xA0013904, 0x00000002, + 0x0304F284, 0xA0013A04, 0x00000002, 0x0313A484, 0xA0013904, 0x00000002, + 0x031B6684, 0xA0013904, 0x00000002, 0x031F6C84, 0xA0013904, 0x00000002, + 0x031F6C84, 0xA0013A04, 0x00000002, 0x03212284, 0xA0013904, 0x00000002, + 0x032C3884, 0xA0013904, 0x00000002, 0x032DD084, + // Block 146, offset 0x2480 + 0xA0013904, 0x00000002, 0x0331C084, 0xA0013904, 0x00000002, 0x03332C84, + 0xA0013904, 0x00000002, 0x03355084, 0xA0013904, 0x00000002, 0x03367884, + 0xA0013904, 0x00000002, 0x033CEA84, 0xA0013904, 0x00000002, 0x033E9484, + 0xA0013904, 0x00000002, 0x033EA484, 0xA0013904, 0x00000002, 0x033F1A84, + 0xA0013904, 0x00000002, 0x033F3884, 0xA0013904, 0x00000002, 0x033F3884, + 0xA0013A04, 0x00000003, 0x0003F484, 0x002C9884, 0x0003F69F, 0x00000003, + 0x0003F484, 0x002C988A, 0x0003F69F, 0x00000003, 0x0003F484, 0x002D6884, + 0x0003F69F, 0x00000003, 0x0003F484, 0x002D688A, 0x0003F69F, 0x00000003, + 0x0003F484, 0x002D9A84, 0x0003F69F, 0x00000003, 0x0003F484, 0x002D9A8A, + 0x0003F69F, 0x00000003, 0x0003F484, 0x002DFE84, 0x0003F69F, 0x00000003, + 0x0003F484, 0x002DFE8A, 0x0003F69F, 0x00000003, + // Block 147, offset 0x24c0 + 0x0003F484, 0x002EE284, 0x0003F69F, 0x00000003, 0x0003F484, 0x002EE28A, + 0x0003F69F, 0x00000003, 0x0003F484, 0x002F5684, 0x0003F69F, 0x00000003, + 0x0003F484, 0x002F568A, 0x0003F69F, 0x00000003, 0x0003F484, 0x002F7A84, + 0x0003F69F, 0x00000003, 0x0003F484, 0x002F7A8A, 0x0003F69F, 0x00000003, + 0x0003F484, 0x002FE684, 0x0003F69F, 0x00000003, 0x0003F484, 0x002FE68A, + 0x0003F69F, 0x00000003, 0x0003F484, 0x00302C84, 0x0003F69F, 0x00000003, + 0x0003F484, 0x00302C8A, 0x0003F69F, 0x00000003, 0x0003F484, 0x0030F684, + 0x0003F69F, 0x00000003, 0x0003F484, 0x0030F68A, 0x0003F69F, 0x00000003, + 0x0004B084, 0x002FE68A, 0x0004B29F, 0x00000002, 0x002C0A9D, 0x002F569C, + 0x00000002, 0x402C0C20, 0xAE604102, 0x00000002, 0x002C0C83, 0xAE604102, + 0x00000002, 0x402C0C20, 0xAE604702, 0x00000002, + // Block 148, offset 0x2500 + 0x402C0C20, 0xAE605202, 0x00000002, 0x002C0C83, 0xAE605202, 0x00000002, + 0x402C0C20, 0xACA05602, 0x00000002, 0x002C0C83, 0xACA05602, 0x00000002, + 0x402C0C20, 0xADC07002, 0x00000002, 0x002C0C83, 0xADC07002, 0x00000002, + 0x402C0C20, 0xADC07702, 0x00000002, 0x002C0C83, 0xADC07702, 0x00000002, + 0x402C0C20, 0xADC07802, 0x00000002, 0x002C0C83, 0xADC07802, 0x00000002, + 0x402C0C20, 0xADC07B02, 0x00000002, 0x002C0C83, 0xADC07B02, 0x00000002, + 0x402C0E20, 0xAE603202, 0x00000002, 0x002C0E83, 0xAE603202, 0x00000003, + 0x402C0E20, 0xAE603202, 0xAE605202, 0x00000003, 0x002C0E83, 0xAE603202, + 0xAE605202, 0x00000002, 0x402C0E20, 0xAE603C02, 0x00000002, 0x002C0E83, + 0xAE603C02, 0x00000002, 0x402C0E20, 0xAE604102, 0x00000002, 0x002C0E83, + 0xAE604102, 0x00000003, 0x402C0E20, 0xAE604102, + // Block 149, offset 0x2540 + 0xAE605202, 0x00000003, 0x002C0E83, 0xAE604102, 0xAE605202, 0x00000002, + 0x402C0E20, 0xAE605202, 0x00000002, 0x002C0E83, 0xAE605202, 0x00000002, + 0x402C0E20, 0xACA05602, 0x00000002, 0x002C0E83, 0xACA05602, 0x00000002, + 0x402C0E20, 0xADC07002, 0x00000002, 0x002C0E83, 0xADC07002, 0x00000003, + 0x402C0E20, 0xADC07002, 0xAE605202, 0x00000003, 0x002C0E83, 0xADC07002, + 0xAE605202, 0x00000002, 0x402C0E20, 0xADC07702, 0x00000002, 0x002C0E83, + 0xADC07702, 0x00000002, 0x402C1020, 0xAE603202, 0x00000002, 0x002C1083, + 0xAE603202, 0x00000002, 0x402C1020, 0xAE603502, 0x00000002, 0x002C1083, + 0xAE603502, 0x00000002, 0x402C1020, 0xAE603702, 0x00000002, 0x002C1083, + 0xAE603702, 0x00000002, 0x402C1020, 0xAE603C02, 0x00000002, 0x002C1083, + 0xAE603C02, 0x00000003, 0x402C1020, 0xAE603C02, + // Block 150, offset 0x2580 + 0xAE603202, 0x00000003, 0x002C1083, 0xAE603C02, 0xAE603202, 0x00000003, + 0x402C1020, 0xAE603C02, 0xAE603502, 0x00000003, 0x002C1083, 0xAE603C02, + 0xAE603502, 0x00000003, 0x402C1020, 0xAE603C02, 0xAE604E02, 0x00000003, + 0x002C1083, 0xAE603C02, 0xAE604E02, 0x00000003, 0x402C1020, 0xAE603C02, + 0xAE606402, 0x00000003, 0x002C1083, 0xAE603C02, 0xAE606402, 0x00000002, + 0x402C1020, 0xAE604102, 0x00000002, 0x002C1083, 0xAE604102, 0x00000002, + 0x402C1020, 0xAE604702, 0x00000002, 0x002C1083, 0xAE604702, 0x00000002, + 0x402C1020, 0xAE604E02, 0x00000002, 0x002C1083, 0xAE604E02, 0x00000002, + 0x402C1020, 0xAE605202, 0x00000002, 0x002C1083, 0xAE605202, 0x00000002, + 0x402C1020, 0xACA05602, 0x00000002, 0x002C1083, 0xACA05602, 0x00000003, + 0x402C1020, 0xACA05602, 0xAE603702, 0x00000003, + // Block 151, offset 0x25c0 + 0x002C1083, 0xACA05602, 0xAE603702, 0x00000002, 0x402C1020, 0xACA05902, + 0x00000002, 0x002C1083, 0xACA05902, 0x00000002, 0x402C1020, 0xAE605B02, + 0x00000002, 0x002C1083, 0xAE605B02, 0x00000003, 0x402C1020, 0xAE605B02, + 0xAE603202, 0x00000003, 0x002C1083, 0xAE605B02, 0xAE603202, 0x00000003, + 0x402C1020, 0xAE605B02, 0xAE603502, 0x00000003, 0x002C1083, 0xAE605B02, + 0xAE603502, 0x00000002, 0x402C1020, 0xAE606402, 0x00000002, 0x002C1083, + 0xAE606402, 0x00000002, 0x402C1020, 0xAE606502, 0x00000002, 0x002C1083, + 0xAE606502, 0x00000002, 0x402C1020, 0xAE606702, 0x00000002, 0x002C1083, + 0xAE606702, 0x00000002, 0x402C1020, 0xADC07002, 0x00000002, 0x002C1083, + 0xADC07002, 0x00000003, 0x402C1020, 0xADC07002, 0xAE603C02, 0x00000003, + 0x002C1083, 0xADC07002, 0xAE603C02, 0x00000002, + // Block 152, offset 0x2600 + 0x402C1020, 0xADC07802, 0x00000002, 0x002C1083, 0xADC07802, 0x00000002, + 0x402C1020, 0xADC07A02, 0x00000002, 0x002C1083, 0xADC07A02, 0x00000002, + 0x402C3C20, 0xAE603202, 0x00000002, 0x002C3C83, 0xAE603202, 0x00000002, + 0x402C3C20, 0xAE604102, 0x00000002, 0x002C3C83, 0xAE604102, 0x00000002, + 0x402C3C20, 0xACA05602, 0x00000002, 0x002C3C83, 0xACA05602, 0x00000002, + 0x402C3C20, 0xADC07002, 0x00000002, 0x002C3C83, 0xADC07002, 0x00000002, + 0x402C3C20, 0xADC07B02, 0x00000002, 0x002C3C83, 0xADC07B02, 0x00000002, + 0x402C3E20, 0xAE604702, 0x00000002, 0x002C3E83, 0xAE604702, 0x00000002, + 0x402C3E20, 0xAE605202, 0x00000002, 0x002C3E83, 0xAE605202, 0x00000002, + 0x402C4020, 0xAE603202, 0x00000002, 0x002C4083, 0xAE603202, 0x00000002, + 0x402C4020, 0xAE603502, 0x00000002, 0x002C4083, + // Block 153, offset 0x2640 + 0xAE603502, 0x00000002, 0x402C4020, 0xAE603702, 0x00000002, 0x002C4083, + 0xAE603702, 0x00000002, 0x402C4020, 0xAE603C02, 0x00000002, 0x002C4083, + 0xAE603C02, 0x00000002, 0x402C4020, 0xAE604102, 0x00000002, 0x002C4083, + 0xAE604102, 0x00000002, 0x402C4020, 0xAE604702, 0x00000002, 0x002C4083, + 0xAE604702, 0x00000003, 0x402C4020, 0xAE604702, 0xAE603202, 0x00000003, + 0x002C4083, 0xAE604702, 0xAE603202, 0x00000002, 0x402C4020, 0xAE604E02, + 0x00000002, 0x002C4083, 0xAE604E02, 0x00000002, 0x002C4083, 0xAE605202, + 0x00000002, 0x402C4020, 0xACA05902, 0x00000002, 0x002C4083, 0xACA05902, + 0x00000002, 0x402C4020, 0xAE605B02, 0x00000002, 0x002C4083, 0xAE605B02, + 0x00000002, 0x402C4020, 0xAE606402, 0x00000002, 0x002C4083, 0xAE606402, + 0x00000002, 0x402C4020, 0xAE606502, 0x00000002, + // Block 154, offset 0x2680 + 0x002C4083, 0xAE606502, 0x00000002, 0x402C4020, 0xAE606702, 0x00000002, + 0x002C4083, 0xAE606702, 0x00000002, 0x402C4020, 0xADC07002, 0x00000002, + 0x002C4083, 0xADC07002, 0x00000002, 0x402C4020, 0xADC07A02, 0x00000002, + 0x002C4083, 0xADC07A02, 0x00000002, 0x402C6620, 0xAE603202, 0x00000002, + 0x002C6683, 0xAE603202, 0x00000002, 0x402C6620, 0xAE604102, 0x00000002, + 0x002C6683, 0xAE604102, 0x00000002, 0x402C6620, 0xAE605202, 0x00000002, + 0x002C6683, 0xAE605202, 0x00000002, 0x402C6620, 0xACA05602, 0x00000002, + 0x002C6683, 0xACA05602, 0x00000002, 0x402C6620, 0xAE606502, 0x00000002, + 0x002C6683, 0xAE606502, 0x00000002, 0x402C6620, 0xAE606702, 0x00000002, + 0x002C6683, 0xAE606702, 0x00000002, 0x402C6620, 0xADC07002, 0x00000002, + 0x002C6683, 0xADC07002, 0x00000003, 0x402C6620, + // Block 155, offset 0x26c0 + 0xADC07002, 0xAE605B02, 0x00000003, 0x002C6683, 0xADC07002, 0xAE605B02, + 0x00000002, 0x402C6620, 0xADC07B02, 0x00000002, 0x002C6683, 0xADC07B02, + 0x00000002, 0x002C989C, 0x0030BE9D, 0x00000002, 0x002D0884, 0x002D9A84, + 0x00000002, 0x402D2420, 0xAE603202, 0x00000002, 0x002D2483, 0xAE603202, + 0x00000002, 0x402D2420, 0xAE603502, 0x00000002, 0x002D2483, 0xAE603502, + 0x00000002, 0x402D2420, 0xAE603702, 0x00000002, 0x002D2483, 0xAE603702, + 0x00000002, 0x402D2420, 0xAE603C02, 0x00000002, 0x002D2483, 0xAE603C02, + 0x00000003, 0x402D2420, 0xAE603C02, 0xAE603202, 0x00000003, 0x002D2483, + 0xAE603C02, 0xAE603202, 0x00000003, 0x402D2420, 0xAE603C02, 0xAE603502, + 0x00000003, 0x002D2483, 0xAE603C02, 0xAE603502, 0x00000003, 0x402D2420, + 0xAE603C02, 0xAE604E02, 0x00000003, 0x002D2483, + // Block 156, offset 0x2700 + 0xAE603C02, 0xAE604E02, 0x00000003, 0x402D2420, 0xAE603C02, 0xAE606402, + 0x00000003, 0x002D2483, 0xAE603C02, 0xAE606402, 0x00000002, 0x402D2420, + 0xAE604102, 0x00000002, 0x002D2483, 0xAE604102, 0x00000002, 0x402D2420, + 0xAE604702, 0x00000002, 0x002D2483, 0xAE604702, 0x00000003, 0x402D2420, + 0xAE604702, 0xAE605B02, 0x00000003, 0x002D2483, 0xAE604702, 0xAE605B02, + 0x00000002, 0x402D2420, 0xAE604D02, 0x00000002, 0x002D2483, 0xAE604D02, + 0x00000002, 0x402D2420, 0xAE604E02, 0x00000002, 0x002D2483, 0xAE604E02, + 0x00000003, 0x402D2420, 0xAE604E02, 0xAE603202, 0x00000003, 0x002D2483, + 0xAE604E02, 0xAE603202, 0x00000003, 0x402D2420, 0xAE604E02, 0xAE604702, + 0x00000003, 0x002D2483, 0xAE604E02, 0xAE604702, 0x00000003, 0x402D2420, + 0xAE604E02, 0xAE605B02, 0x00000003, 0x002D2483, + // Block 157, offset 0x2740 + 0xAE604E02, 0xAE605B02, 0x00000002, 0x402D2420, 0xAE605202, 0x00000002, + 0x002D2483, 0xAE605202, 0x00000003, 0x402D2420, 0xAE605202, 0xAE605B02, + 0x00000003, 0x002D2483, 0xAE605202, 0xAE605B02, 0x00000002, 0x402D2420, + 0xACA05902, 0x00000002, 0x002D2483, 0xACA05902, 0x00000003, 0x402D2420, + 0xACA05902, 0xAE605B02, 0x00000003, 0x002D2483, 0xACA05902, 0xAE605B02, + 0x00000002, 0x402D2420, 0xAE605B02, 0x00000002, 0x002D2483, 0xAE605B02, + 0x00000003, 0x402D2420, 0xAE605B02, 0xAE603202, 0x00000003, 0x002D2483, + 0xAE605B02, 0xAE603202, 0x00000003, 0x402D2420, 0xAE605B02, 0xAE603502, + 0x00000003, 0x002D2483, 0xAE605B02, 0xAE603502, 0x00000002, 0x402D2420, + 0xAE606402, 0x00000002, 0x002D2483, 0xAE606402, 0x00000002, 0x402D2420, + 0xAE606502, 0x00000002, 0x002D2483, 0xAE606502, + // Block 158, offset 0x2780 + 0x00000002, 0x402D2420, 0xAE606702, 0x00000002, 0x002D2483, 0xAE606702, + 0x00000002, 0x402D2420, 0xAD806802, 0x00000002, 0x002D2483, 0xAD806802, + 0x00000003, 0x402D2420, 0xAD806802, 0xAE603202, 0x00000003, 0x002D2483, + 0xAD806802, 0xAE603202, 0x00000003, 0x402D2420, 0xAD806802, 0xAE603502, + 0x00000003, 0x002D2483, 0xAD806802, 0xAE603502, 0x00000003, 0x402D2420, + 0xAD806802, 0xAE604E02, 0x00000003, 0x002D2483, 0xAD806802, 0xAE604E02, + 0x00000003, 0x402D2420, 0xAD806802, 0xAE606402, 0x00000003, 0x002D2483, + 0xAD806802, 0xAE606402, 0x00000003, 0x402D2420, 0xAD806802, 0xADC07002, + 0x00000003, 0x002D2483, 0xAD806802, 0xADC07002, 0x00000002, 0x402D2420, + 0xADC07002, 0x00000002, 0x002D2483, 0xADC07002, 0x00000003, 0x402D2420, + 0xADC07002, 0xAE603C02, 0x00000003, 0x002D2483, + // Block 159, offset 0x27c0 + 0xADC07002, 0xAE603C02, 0x00000002, 0x002D689C, 0x002BDE9C, 0x00000002, + 0x002D689D, 0x002D229C, 0x00000002, 0x002D689D, 0x002F2C9D, 0x00000002, + 0x002D689D, 0x0030BE9D, 0x00000002, 0x002D689D, 0x00312A9C, 0x00000002, + 0x002D9A84, 0x002D9A9F, 0x00000002, 0x002D9A8A, 0x002D9A9F, 0x00000003, + 0x002D9A84, 0x002D9A84, 0x002D9A9F, 0x00000003, 0x002D9A8A, 0x002D9A8A, + 0x002D9A9F, 0x00000002, 0x002D9A84, 0x002DCC84, 0x00000002, 0x002D9A8A, + 0x002DCC8A, 0x00000002, 0x002D9A9C, 0x002E9E9C, 0x00000002, 0x002D9A9D, + 0x00306C9D, 0x00000002, 0x002D9A84, 0x0030BE9F, 0x00000002, 0x002D9A8A, + 0x0030BE9F, 0x00000002, 0x002D9A84, 0x0030F69F, 0x00000002, 0x002D9A8A, + 0x0030F69F, 0x00000002, 0x002DFE9C, 0x002BDE9D, 0x00000002, 0x002DFE9D, + 0x002C0A9D, 0x00000002, 0x002DFE9C, 0x002D229C, + // Block 160, offset 0x2800 + 0x00000002, 0x002DFE9D, 0x002DFE9D, 0x00000002, 0x002DFE9C, 0x002E229C, + 0x00000002, 0x002DFE9C, 0x002E829C, 0x00000002, 0x002DFE9D, 0x002E829D, + 0x00000002, 0x002DFE9C, 0x00302C9C, 0x00000002, 0x002DFE9C, 0x0030BE9D, + 0x00000002, 0x002DFE9C, 0x0030E29D, 0x00000002, 0x002DFE9C, 0x0032A29D, + 0x00000002, 0x002E229C, 0x0030F69C, 0x00000002, 0x002E829C, 0x002FE69C, + 0x00000002, 0x002E9E8A, 0x002EE284, 0x00000002, 0x002E9E9C, 0x002FE69C, + 0x00000002, 0x002EE29C, 0x0030BE9D, 0x00000002, 0x002F2C9D, 0x002D689D, + 0x00000002, 0x002F2C9D, 0x002F7A9D, 0x00000002, 0x002F2C9C, 0x002FE69C, + 0x00000002, 0x002FE69D, 0x002C629D, 0x00000002, 0x002FE694, 0x002E8294, + 0x00000002, 0x002FE69C, 0x002F7A9C, 0x00000002, 0x002FE69D, 0x002FE69D, + 0x00000002, 0x002FE684, 0x00302C84, 0x00000002, + // Block 161, offset 0x2840 + 0x002FE69D, 0x0030BE9C, 0x00000002, 0x00302C94, 0x002E8294, 0x00000002, + 0x0030BE84, 0x002D9A9F, 0x00000002, 0x0030BE8A, 0x002D9A9F, 0x00000003, + 0x0030BE84, 0x002D9A84, 0x002D9A9F, 0x00000003, 0x0030BE8A, 0x002D9A8A, + 0x002D9A9F, 0x00000002, 0x4030E420, 0xAE603C02, 0x00000002, 0x0030E483, + 0xAE603C02, 0x00000002, 0x4030E420, 0xAE604102, 0x00000002, 0x0030E483, + 0xAE604102, 0x00000002, 0x4030E420, 0xAE604702, 0x00000002, 0x0030E483, + 0xAE604702, 0x00000002, 0x4030E420, 0xAE605202, 0x00000002, 0x0030E483, + 0xAE605202, 0x00000002, 0x4030E420, 0xACA05602, 0x00000002, 0x0030E483, + 0xACA05602, 0x00000002, 0x4030E420, 0xADC07002, 0x00000002, 0x0030E483, + 0xADC07002, 0x00000002, 0x4030E420, 0xADC07902, 0x00000002, 0x0030E483, + 0xADC07902, 0x00000002, 0x4030E420, 0xADC07B02, + // Block 162, offset 0x2880 + 0x00000002, 0x0030F684, 0x002D9A9F, 0x00000002, 0x0030F68A, 0x002D9A9F, + 0x00000003, 0x0030F684, 0x002D9A84, 0x002D9A9F, 0x00000003, 0x0030F68A, + 0x002D9A8A, 0x002D9A9F, 0x00000002, 0x0032769C, 0x002FE69C, 0x00000002, + 0x00393C99, 0x003A8E99, 0x00000002, 0x00393C9A, 0x003A8E9A, 0x00000002, + 0x00395699, 0x003A8E99, 0x00000002, 0x0039569A, 0x003A8E9A, 0x00000002, + 0x00395899, 0x003A8E99, 0x00000002, 0x0039589A, 0x003A8E9A, 0x00000002, + 0x00396499, 0x003A8E99, 0x00000002, 0x0039649A, 0x003A8E9A, 0x00000002, + 0x00397299, 0x003A8E99, 0x00000002, 0x0039729A, 0x003A8E9A, 0x00000002, + 0x00397499, 0x003A8E99, 0x00000002, 0x0039749A, 0x003A8E9A, 0x00000002, + 0x0039C699, 0x003A8E99, 0x00000002, 0x0039C69A, 0x003A8E9A, 0x00000002, + 0x0039C899, 0x003A8E99, 0x00000002, 0x0039C89A, + // Block 163, offset 0x28c0 + 0x003A8E9A, 0x00000002, 0x0039DC99, 0x003A8E99, 0x00000002, 0x0039DC9A, + 0x003A8E9A, 0x00000002, 0x0039DE99, 0x003A8E99, 0x00000002, 0x0039DE9A, + 0x003A8E9A, 0x00000002, 0x0039E699, 0x003A8E99, 0x00000002, 0x0039E69A, + 0x003A8E9A, 0x00000002, 0x0039EE99, 0x003A8E99, 0x00000002, 0x0039EE9A, + 0x003A8E9A, 0x00000002, 0x0039F099, 0x003A8E99, 0x00000002, 0x0039F09A, + 0x003A8E9A, 0x00000002, 0x0039FC99, 0x003A8E99, 0x00000002, 0x0039FC9A, + 0x003A8E9A, 0x00000002, 0x003A1299, 0x003A8E99, 0x00000002, 0x003A129A, + 0x003A8E9A, 0x00000002, 0x003A1A99, 0x003A8E99, 0x00000002, 0x003A1A9A, + 0x003A8E9A, 0x00000002, 0x003A4099, 0x003A8E99, 0x00000002, 0x003A409A, + 0x003A8E9A, 0x00000002, 0x003A4E9A, 0x003A8E9A, 0x00000002, 0x003A5699, + 0x003A8E99, 0x00000002, 0x003A569A, 0x003A8E9A, + // Block 164, offset 0x2900 + 0x00000002, 0x003A689A, 0x003A8E9A, 0x00000002, 0x003A9099, 0x003A8E99, + 0x00000002, 0x003A909A, 0x003A8E9A, 0x00000002, 0x402D6A20, 0xAE604702, + 0x00000002, 0x002D6A83, 0xAE604702, 0x00000002, 0x402D6A20, 0xAE605202, + 0x00000002, 0x002D6A83, 0xAE605202, 0x00000002, 0x002D9883, 0xAE603202, + 0x00000002, 0x002D9883, 0xAE603502, 0x00000002, 0x002D9883, 0xAE603702, + 0x00000002, 0x002D9883, 0xAE603C02, 0x00000002, 0x002D9883, 0xAE604102, + 0x00000002, 0x002D9883, 0xAE604702, 0x00000003, 0x002D9883, 0xAE604702, + 0xAE603202, 0x00000002, 0x002D9883, 0xAE604E02, 0x00000002, 0x002D9883, + 0xACA05902, 0x00000002, 0x002D9883, 0xAE605B02, 0x00000002, 0x002D9883, + 0xAE606402, 0x00000002, 0x002D9883, 0xAE606502, 0x00000002, 0x002D9883, + 0xAE606702, 0x00000002, 0x002D9883, 0xADC07002, + // Block 165, offset 0x2940 + 0x00000002, 0x002D9883, 0xADC07A02, 0x00000002, 0x402EE420, 0xAE604E02, + 0x00000002, 0x002EE483, 0xAE604E02, 0x00000002, 0x402EE420, 0xAE605B02, + 0x00000002, 0x002EE483, 0xAE605B02, 0x00000002, 0x40306E20, 0xAE603202, + 0x00000002, 0x00306E83, 0xAE603202, 0x00000002, 0x40306E20, 0xAE603502, + 0x00000002, 0x00306E83, 0xAE603502, 0x00000002, 0x40306E20, 0xAE604102, + 0x00000002, 0x00306E83, 0xAE604102, 0x00000002, 0x40306E20, 0xAE605B02, + 0x00000002, 0x00306E83, 0xAE605B02, 0x00000002, 0x402FE820, 0xAE605202, + 0x00000002, 0x002FE883, 0xAE605202, 0x00000002, 0x002C6294, 0xA0013914, + 0x00000002, 0x00302C83, 0x402D6820, 0x00000002, 0x00302C89, 0x002D6888, + 0x00000002, 0x40310021, 0xAE603202, 0x00000002, 0x003100A3, 0xAE603202, + 0x00000002, 0x40310021, 0xAE603502, 0x00000002, + // Block 166, offset 0x2980 + 0x003100A3, 0xAE603502, 0x00000002, 0x40310021, 0xAE604102, 0x00000002, + 0x003100A3, 0xAE604102, 0x00000002, 0x40310021, 0xAE605B02, 0x00000002, + 0x003100A3, 0xAE605B02, 0x00000002, 0x40320C20, 0xAE603202, 0x00000002, + 0x00320C83, 0xAE603202, 0x00000002, 0x40320C20, 0xAE605B02, 0x00000002, + 0x00320C83, 0xAE605B02, 0x00000002, 0x40320C21, 0xAE605B02, 0x00000002, + 0x00320CA3, 0xAE605B02, 0x00000002, 0x40320E20, 0xAE603202, 0x00000002, + 0x00320E83, 0xAE603202, 0x00000002, 0x40320E21, 0xAE604E02, 0x00000002, + 0x00320EA3, 0xAE604E02, 0x00000002, 0x40320E21, 0xAE605B02, 0x00000002, + 0x00320EA3, 0xAE605B02, 0x00000002, 0x40321020, 0xAE603202, 0x00000002, + 0x00321083, 0xAE603202, 0x00000002, 0x402BDE21, 0x002C9888, 0x00000002, + 0x002BDEA3, 0x002C9888, 0x00000003, 0x402BDE21, + // Block 167, offset 0x29c0 + 0x002C9888, 0xAE605B02, 0x00000003, 0x002BDEA3, 0x002C9888, 0xAE605B02, + 0x00000002, 0x402EE221, 0x002C9888, 0x00000002, 0x002EE2A3, 0x002C9888, + 0x00000003, 0x402EE221, 0x002C9888, 0xAE604E02, 0x00000003, 0x002EE2A3, + 0x002C9888, 0xAE604E02, 0x00000003, 0x402EE221, 0x002C9888, 0xAE605B02, + 0x00000003, 0x002EE2A3, 0x002C9888, 0xAE605B02, 0x00000002, 0x40306C21, + 0x002C9888, 0x00000002, 0x00306CA3, 0x002C9888, 0x00000003, 0x40306C21, + 0x002C9888, 0xAE603202, 0x00000003, 0x00306CA3, 0x002C9888, 0xAE603202, + 0x00000003, 0x40306C21, 0x002C9888, 0xAE603502, 0x00000003, 0x00306CA3, + 0x002C9888, 0xAE603502, 0x00000003, 0x40306C21, 0x002C9888, 0xAE604102, + 0x00000003, 0x00306CA3, 0x002C9888, 0xAE604102, 0x00000003, 0x40306C21, + 0x002C9888, 0xAE605B02, 0x00000003, 0x00306CA3, + // Block 168, offset 0x2a00 + 0x002C9888, 0xAE605B02, 0x00000002, 0x404A7620, 0x838225B3, 0x00000004, + 0x004A8083, 0x404AB020, 0x404A8020, 0x404AFA20, 0x00000004, 0x004A8084, + 0x404AB020, 0x404A8020, 0x404AFA20, 0x00000004, 0x004A8083, 0x404AB420, + 0x404A8020, 0x404AFA20, 0x00000004, 0x004A8084, 0x404AB420, 0x404A8020, + 0x404AFA20, 0x00000004, 0x004A8083, 0x404AFA20, 0x404A8020, 0x404AFA20, + 0x00000004, 0x004A8084, 0x404AFA20, 0x404A8020, 0x404AFA20, 0x00000002, + 0x404A8020, 0x828225B5, 0x00000004, 0x004AB083, 0x404A8020, 0x404A8020, + 0x404AFA20, 0x00000004, 0x004AB084, 0x404A8020, 0x404A8020, 0x404AFA20, + 0x00000004, 0x004AB083, 0x404A8420, 0x404A8020, 0x404AFA20, 0x00000004, + 0x004AB084, 0x404A8420, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AB083, + 0x404AB820, 0x404A8020, 0x404AFA20, 0x00000004, + // Block 169, offset 0x2a40 + 0x004AB084, 0x404AB820, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AB083, + 0x404AC020, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AB084, 0x404AC020, + 0x404A8020, 0x404AFA20, 0x00000004, 0x004AB083, 0x404AC420, 0x404A8020, + 0x404AFA20, 0x00000004, 0x004AB084, 0x404AC420, 0x404A8020, 0x404AFA20, + 0x00000002, 0x404AB020, 0x828225B5, 0x00000002, 0x004AB083, 0x828225B5, + 0x00000004, 0x004AC083, 0x404A8020, 0x404A8020, 0x404AFA20, 0x00000004, + 0x004AC084, 0x404A8020, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AC083, + 0x404AB020, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AC084, 0x404AB020, + 0x404A8020, 0x404AFA20, 0x00000004, 0x004AC083, 0x404AFA20, 0x404A8020, + 0x404AFA20, 0x00000004, 0x004AC084, 0x404AFA20, 0x404A8020, 0x404AFA20, + 0x00000002, 0x404AC020, 0x828225B5, 0x00000004, + // Block 170, offset 0x2a80 + 0x004AC483, 0x404A8420, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AC484, + 0x404A8420, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AC483, 0x404AB020, + 0x404A8020, 0x404AFA20, 0x00000004, 0x004AC484, 0x404AB020, 0x404A8020, + 0x404AFA20, 0x00000004, 0x004AC483, 0x404AB420, 0x404A8020, 0x404AFA20, + 0x00000004, 0x004AC484, 0x404AB420, 0x404A8020, 0x404AFA20, 0x00000002, + 0x404AD020, 0x828225B5, 0x00000004, 0x004AE083, 0x404A8020, 0x404A8020, + 0x404AFA20, 0x00000004, 0x004AE084, 0x404A8020, 0x404A8020, 0x404AFA20, + 0x00000004, 0x004AE083, 0x404AB020, 0x404A8020, 0x404AFA20, 0x00000004, + 0x004AE084, 0x404AB020, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AE083, + 0x404AC020, 0x404A8020, 0x404AFA20, 0x00000004, 0x004AE084, 0x404AC020, + 0x404A8020, 0x404AFA20, 0x00000002, 0x404AEA20, + // Block 171, offset 0x2ac0 + 0x8281258B, 0x00000002, 0x404AF020, 0x8281258B, 0x00000002, 0x82822599, + 0x838225B3, 0x00000002, 0x8282259B, 0x828225B5, 0x00000002, 0x828225A3, + 0x828225B5, 0x00000002, 0x838225A3, 0x828225B5, 0x00000002, 0x828225A7, + 0x828225B5, 0x00000002, 0x828225AB, 0x828225B5, 0x00000002, 0x402BDE20, + 0xAE604202, 0x00000002, 0x002BDE88, 0xAE604202, 0x00000003, 0x402BDE20, + 0xAE604202, 0xAE603202, 0x00000003, 0x002BDE88, 0xAE604202, 0xAE603202, + 0x00000003, 0x402BDE20, 0xAE604202, 0xAE603502, 0x00000003, 0x002BDE88, + 0xAE604202, 0xAE603502, 0x00000003, 0x402BDE20, 0xAE604202, 0xAE604E02, + 0x00000003, 0x002BDE88, 0xAE604202, 0xAE604E02, 0x00000003, 0x402BDE20, + 0xAE604202, 0xAE606402, 0x00000003, 0x002BDE88, 0xAE604202, 0xAE606402, + 0x00000003, 0x402BDE20, 0xADC07002, 0xAE604202, + // Block 172, offset 0x2b00 + 0x00000003, 0x002BDE88, 0xADC07002, 0xAE604202, 0x00000002, 0x402C3A20, + 0xAE604202, 0x00000002, 0x002C3A88, 0xAE604202, 0x00000002, 0x402C9820, + 0xAE604202, 0x00000002, 0x002C9888, 0xAE604202, 0x00000003, 0x402C9820, + 0xAE604202, 0xAE603202, 0x00000003, 0x002C9888, 0xAE604202, 0xAE603202, + 0x00000003, 0x402C9820, 0xAE604202, 0xAE603502, 0x00000003, 0x002C9888, + 0xAE604202, 0xAE603502, 0x00000003, 0x402C9820, 0xAE604202, 0xAE604E02, + 0x00000003, 0x002C9888, 0xAE604202, 0xAE604E02, 0x00000003, 0x402C9820, + 0xAE604202, 0xAE606402, 0x00000003, 0x002C9888, 0xAE604202, 0xAE606402, + 0x00000003, 0x402C9820, 0xADC07002, 0xAE604202, 0x00000003, 0x002C9888, + 0xADC07002, 0xAE604202, 0x00000002, 0x402D2220, 0xAE604202, 0x00000002, + 0x002D2288, 0xAE604202, 0x00000002, 0x402D6820, + // Block 173, offset 0x2b40 + 0xAE604202, 0x00000002, 0x002D6888, 0xAE604202, 0x00000002, 0x402D9A20, + 0xAE604202, 0x00000002, 0x002D9A88, 0xAE604202, 0x00000002, 0x402DCC20, + 0xAE604202, 0x00000002, 0x002DCC88, 0xAE604202, 0x00000002, 0x402EE220, + 0xAE604202, 0x00000002, 0x002EE288, 0xAE604202, 0x00000003, 0x402EE220, + 0xAE604202, 0xAE603202, 0x00000003, 0x002EE288, 0xAE604202, 0xAE603202, + 0x00000003, 0x402EE220, 0xAE604202, 0xAE603502, 0x00000003, 0x002EE288, + 0xAE604202, 0xAE603502, 0x00000003, 0x402EE220, 0xAE604202, 0xAE604E02, + 0x00000003, 0x002EE288, 0xAE604202, 0xAE604E02, 0x00000003, 0x402EE220, + 0xAE604202, 0xAE606402, 0x00000003, 0x002EE288, 0xAE604202, 0xAE606402, + 0x00000003, 0x402EE220, 0xADC07002, 0xAE604202, 0x00000003, 0x002EE288, + 0xADC07002, 0xAE604202, 0x00000002, 0x402FE620, + // Block 174, offset 0x2b80 + 0xAE604202, 0x00000002, 0x002FE688, 0xAE604202, 0x00000002, 0x40306C20, + 0xAE604202, 0x00000002, 0x00306C88, 0xAE604202, 0x00000002, 0x4030E220, + 0xAE604202, 0x00000002, 0x0030E288, 0xAE604202, 0x00000002, 0x40310020, + 0xAE604202, 0x00000002, 0x00310088, 0xAE604202, 0x00000002, 0x40312A20, + 0xAE604202, 0x00000002, 0x00312A88, 0xAE604202, 0x00000003, 0x00026C84, + 0x00026C84, 0x0009429F, 0x00000002, 0x0002BA84, 0x0002BA9F, 0x00000002, + 0x0002BA84, 0x0002C49F, 0x00000002, 0x0002C484, 0x0002BA9F, 0x00000002, + 0x0002C484, 0x0002C49F, 0x00000002, 0x0002E484, 0x0002E49F, 0x00000002, + 0x0002E496, 0x0002E49F, 0x00000003, 0x0002E484, 0x0002E484, 0x0002E49F, + 0x00000003, 0x0002E496, 0x0002E496, 0x0002E49F, 0x00000003, 0x0003F484, + 0x0029CE84, 0x0003F69F, 0x00000003, 0x0003F484, + // Block 175, offset 0x2bc0 + 0x0029D084, 0x0003F69F, 0x00000003, 0x0003F484, 0x0029D284, 0x0003F69F, + 0x00000003, 0x0003F484, 0x0029D484, 0x0003F69F, 0x00000003, 0x0003F484, + 0x0029D684, 0x0003F69F, 0x00000003, 0x0003F484, 0x0029D884, 0x0003F69F, + 0x00000003, 0x0003F484, 0x0029DA84, 0x0003F69F, 0x00000003, 0x0003F484, + 0x0029DC84, 0x0003F69F, 0x00000003, 0x0003F484, 0x0029DE84, 0x0003F69F, + 0x00000003, 0x0003F484, 0x002BDE84, 0x0003F69F, 0x00000003, 0x0003F484, + 0x002BDE8A, 0x0003F69F, 0x00000003, 0x0003F484, 0x002C0A84, 0x0003F69F, + 0x00000003, 0x0003F484, 0x002C0A8A, 0x0003F69F, 0x00000003, 0x0003F484, + 0x002C3A84, 0x0003F69F, 0x00000003, 0x0003F484, 0x002C3A8A, 0x0003F69F, + 0x00000003, 0x0003F484, 0x002C6284, 0x0003F69F, 0x00000003, 0x0003F484, + 0x002C628A, 0x0003F69F, 0x00000003, 0x0003F484, + // Block 176, offset 0x2c00 + 0x002D0884, 0x0003F69F, 0x00000003, 0x0003F484, 0x002D088A, 0x0003F69F, + 0x00000003, 0x0003F484, 0x002D2284, 0x0003F69F, 0x00000003, 0x0003F484, + 0x002D228A, 0x0003F69F, 0x00000003, 0x0003F484, 0x002DCC84, 0x0003F69F, + 0x00000003, 0x0003F484, 0x002DCC8A, 0x0003F69F, 0x00000003, 0x0003F484, + 0x002E2284, 0x0003F69F, 0x00000003, 0x0003F484, 0x002E228A, 0x0003F69F, + 0x00000003, 0x0003F484, 0x002E8284, 0x0003F69F, 0x00000003, 0x0003F484, + 0x002E828A, 0x0003F69F, 0x00000003, 0x0003F484, 0x002E9E84, 0x0003F69F, + 0x00000003, 0x0003F484, 0x002E9E8A, 0x0003F69F, 0x00000003, 0x0003F484, + 0x002F2C84, 0x0003F69F, 0x00000003, 0x0003F484, 0x002F2C8A, 0x0003F69F, + 0x00000003, 0x0003F484, 0x00306C84, 0x0003F69F, 0x00000003, 0x0003F484, + 0x00306C8A, 0x0003F69F, 0x00000003, 0x0003F484, + // Block 177, offset 0x2c40 + 0x0030BE84, 0x0003F69F, 0x00000003, 0x0003F484, 0x0030BE8A, 0x0003F69F, + 0x00000003, 0x0003F484, 0x0030E284, 0x0003F69F, 0x00000003, 0x0003F484, + 0x0030E28A, 0x0003F69F, 0x00000003, 0x0003F484, 0x00310084, 0x0003F69F, + 0x00000003, 0x0003F484, 0x0031008A, 0x0003F69F, 0x00000003, 0x0003F484, + 0x00312A84, 0x0003F69F, 0x00000003, 0x0003F484, 0x00312A8A, 0x0003F69F, + 0x00000003, 0x0003F484, 0x0062AC84, 0x0003F69F, 0x00000003, 0x0003F484, + 0x0062B084, 0x0003F69F, 0x00000003, 0x0003F484, 0x0062B284, 0x0003F69F, + 0x00000003, 0x0003F484, 0x0062B684, 0x0003F69F, 0x00000003, 0x0003F484, + 0x0062B884, 0x0003F69F, 0x00000003, 0x0003F484, 0x0062BA84, 0x0003F69F, + 0x00000003, 0x0003F484, 0x0062BE84, 0x0003F69F, 0x00000003, 0x0003F484, + 0x0062C284, 0x0003F69F, 0x00000003, 0x0003F484, + // Block 178, offset 0x2c80 + 0x0062C484, 0x0003F69F, 0x00000003, 0x0003F484, 0x0062C884, 0x0003F69F, + 0x00000003, 0x0003F484, 0x0062CA84, 0x0003F69F, 0x00000003, 0x0003F484, + 0x0062CC84, 0x0003F69F, 0x00000003, 0x0003F484, 0x0062CE84, 0x0003F69F, + 0x00000003, 0x0003F484, 0x0062D084, 0x0003F69F, 0x00000003, 0x0003F484, + 0x029C0084, 0x0003F69F, 0x00000003, 0x0003F484, 0x029C0684, 0x0003F69F, + 0x00000003, 0x0003F484, 0x029C1284, 0x0003F69F, 0x00000003, 0x0003F484, + 0x029CBA84, 0x0003F69F, 0x00000003, 0x0003F484, 0x029D1884, 0x0003F69F, + 0x00000003, 0x0003F484, 0x029D2884, 0x0003F69F, 0x00000003, 0x0003F484, + 0x029DC684, 0x0003F69F, 0x00000003, 0x0003F484, 0x029E0284, 0x0003F69F, + 0x00000003, 0x0003F484, 0x029E2284, 0x0003F69F, 0x00000003, 0x0003F484, + 0x02A2D684, 0x0003F69F, 0x00000003, 0x0003F484, + // Block 179, offset 0x2cc0 + 0x02A2DA84, 0x0003F69F, 0x00000003, 0x0003F484, 0x02A56884, 0x0003F69F, + 0x00000003, 0x0003F484, 0x02A68284, 0x0003F69F, 0x00000003, 0x0003F484, + 0x02A6A884, 0x0003F69F, 0x00000003, 0x0003F484, 0x02A81A84, 0x0003F69F, + 0x00000003, 0x0003F484, 0x02A8F884, 0x0003F69F, 0x00000003, 0x0003F484, + 0x02ADB684, 0x0003F69F, 0x00000003, 0x0003F484, 0x02AE3E84, 0x0003F69F, + 0x00000003, 0x0003F484, 0x02B6CC84, 0x0003F69F, 0x00000003, 0x0003F484, + 0x02CBCA84, 0x0003F69F, 0x00000003, 0x0003F484, 0x02CE1084, 0x0003F69F, + 0x00000003, 0x0003F484, 0x02CE1284, 0x0003F69F, 0x00000003, 0x0003F484, + 0x02CE5084, 0x0003F69F, 0x00000003, 0x0003F484, 0x02D05484, 0x0003F69F, + 0x00000003, 0x0003F484, 0x02D86884, 0x0003F69F, 0x00000003, 0x0003F484, + 0x02E0D684, 0x0003F69F, 0x00000003, 0x0003F484, + // Block 180, offset 0x2d00 + 0x02E4F284, 0x0003F69F, 0x00000003, 0x0003F484, 0x02EDC684, 0x0003F69F, + 0x00000003, 0x0003F484, 0x02F27C84, 0x0003F69F, 0x00000003, 0x0003F484, + 0x02F2BA84, 0x0003F69F, 0x00000003, 0x0003F484, 0x02F2DA84, 0x0003F69F, + 0x00000003, 0x0003F484, 0x0303D484, 0x0003F69F, 0x00000003, 0x0003F484, + 0x0303E684, 0x0003F69F, 0x00000003, 0x0003F484, 0x03194284, 0x0003F69F, + 0x00000003, 0x0003F484, 0x03198E84, 0x0003F69F, 0x00000003, 0x0003F484, + 0x0323A284, 0x0003F69F, 0x00000002, 0x00070484, 0x002C3A8A, 0x00000002, + 0x00070484, 0x002D088A, 0x00000002, 0x00094284, 0x0009429F, 0x00000003, + 0x00094284, 0x00094284, 0x0009429F, 0x00000002, 0x0029CC84, 0x0002409F, + 0x00000002, 0x0029CC84, 0x0002E49F, 0x00000002, 0x0029CC84, 0x02E1729F, + 0x00000002, 0x0029CE84, 0x0002409F, 0x00000002, + // Block 181, offset 0x2d40 + 0x0029CE84, 0x0002E49F, 0x00000002, 0x0029CE9E, 0x0009589E, 0x00000002, + 0x0029CE86, 0x0029CC86, 0x00000003, 0x0029CE84, 0x0029CC84, 0x0002E49F, + 0x00000003, 0x0029CE84, 0x0029CC84, 0x02CBCA9F, 0x00000003, 0x0029CE84, + 0x0029CC84, 0x02CE109F, 0x00000003, 0x0029CE84, 0x0029CC84, 0x02E1729F, + 0x00000002, 0x0029CE86, 0x0029CE86, 0x00000003, 0x0029CE84, 0x0029CE84, + 0x0002E49F, 0x00000003, 0x0029CE84, 0x0029CE84, 0x02CBCA9F, 0x00000003, + 0x0029CE84, 0x0029CE84, 0x02CE109F, 0x00000003, 0x0029CE84, 0x0029CE84, + 0x02E1729F, 0x00000002, 0x0029CE86, 0x0029D086, 0x00000003, 0x0029CE84, + 0x0029D084, 0x0002E49F, 0x00000003, 0x0029CE84, 0x0029D084, 0x02CBCA9F, + 0x00000003, 0x0029CE84, 0x0029D084, 0x02CE109F, 0x00000003, 0x0029CE84, + 0x0029D084, 0x02E1729F, 0x00000002, 0x0029CE86, + // Block 182, offset 0x2d80 + 0x0029D286, 0x00000003, 0x0029CE84, 0x0029D284, 0x0002E49F, 0x00000003, + 0x0029CE84, 0x0029D284, 0x02CBCA9F, 0x00000003, 0x0029CE84, 0x0029D284, + 0x02E1729F, 0x00000002, 0x0029CE86, 0x0029D486, 0x00000003, 0x0029CE84, + 0x0029D484, 0x0002E49F, 0x00000003, 0x0029CE84, 0x0029D484, 0x02CBCA9F, + 0x00000003, 0x0029CE84, 0x0029D484, 0x02E1729F, 0x00000002, 0x0029CE86, + 0x0029D686, 0x00000003, 0x0029CE84, 0x0029D684, 0x0002E49F, 0x00000003, + 0x0029CE84, 0x0029D684, 0x02CBCA9F, 0x00000003, 0x0029CE84, 0x0029D684, + 0x02E1729F, 0x00000002, 0x0029CE86, 0x0029D886, 0x00000003, 0x0029CE84, + 0x0029D884, 0x0002E49F, 0x00000003, 0x0029CE84, 0x0029D884, 0x02CBCA9F, + 0x00000003, 0x0029CE84, 0x0029D884, 0x02E1729F, 0x00000002, 0x0029CE86, + 0x0029DA86, 0x00000003, 0x0029CE84, 0x0029DA84, + // Block 183, offset 0x2dc0 + 0x0002E49F, 0x00000003, 0x0029CE84, 0x0029DA84, 0x02CBCA9F, 0x00000003, + 0x0029CE84, 0x0029DA84, 0x02E1729F, 0x00000002, 0x0029CE86, 0x0029DC86, + 0x00000003, 0x0029CE84, 0x0029DC84, 0x0002E49F, 0x00000003, 0x0029CE84, + 0x0029DC84, 0x02CBCA9F, 0x00000003, 0x0029CE84, 0x0029DC84, 0x02E1729F, + 0x00000002, 0x0029CE86, 0x0029DE86, 0x00000003, 0x0029CE84, 0x0029DE84, + 0x0002E49F, 0x00000003, 0x0029CE84, 0x0029DE84, 0x02CBCA9F, 0x00000003, + 0x0029CE84, 0x0029DE84, 0x02E1729F, 0x00000002, 0x0029CE84, 0x02CBCA9F, + 0x00000002, 0x0029CE84, 0x02CE109F, 0x00000002, 0x0029CE84, 0x02E1729F, + 0x00000002, 0x0029D084, 0x0002409F, 0x00000002, 0x0029D084, 0x0002E49F, + 0x00000002, 0x0029D086, 0x0029CC86, 0x00000003, 0x0029D084, 0x0029CC84, + 0x0002E49F, 0x00000003, 0x0029D084, 0x0029CC84, + // Block 184, offset 0x2e00 + 0x02CBCA9F, 0x00000003, 0x0029D084, 0x0029CC84, 0x02E1729F, 0x00000002, + 0x0029D086, 0x0029CE86, 0x00000003, 0x0029D084, 0x0029CE84, 0x02CBCA9F, + 0x00000003, 0x0029D084, 0x0029CE84, 0x02E1729F, 0x00000002, 0x0029D086, + 0x0029D086, 0x00000003, 0x0029D084, 0x0029D084, 0x02CBCA9F, 0x00000003, + 0x0029D084, 0x0029D084, 0x02E1729F, 0x00000002, 0x0029D086, 0x0029D286, + 0x00000003, 0x0029D084, 0x0029D284, 0x02CBCA9F, 0x00000003, 0x0029D084, + 0x0029D284, 0x02E1729F, 0x00000002, 0x0029D086, 0x0029D486, 0x00000003, + 0x0029D084, 0x0029D484, 0x02CBCA9F, 0x00000003, 0x0029D084, 0x0029D484, + 0x02E1729F, 0x00000002, 0x0029D086, 0x0029D686, 0x00000003, 0x0029D084, + 0x0029D684, 0x02CBCA9F, 0x00000002, 0x0029D086, 0x0029D886, 0x00000003, + 0x0029D084, 0x0029D884, 0x02CBCA9F, 0x00000002, + // Block 185, offset 0x2e40 + 0x0029D086, 0x0029DA86, 0x00000003, 0x0029D084, 0x0029DA84, 0x02CBCA9F, + 0x00000002, 0x0029D086, 0x0029DC86, 0x00000003, 0x0029D084, 0x0029DC84, + 0x02CBCA9F, 0x00000002, 0x0029D086, 0x0029DE86, 0x00000003, 0x0029D084, + 0x0029DE84, 0x02CBCA9F, 0x00000002, 0x0029D084, 0x02CBCA9F, 0x00000002, + 0x0029D084, 0x02CE109F, 0x00000002, 0x0029D084, 0x02E1729F, 0x00000002, + 0x0029D284, 0x0002409F, 0x00000002, 0x0029D284, 0x0002E49F, 0x00000002, + 0x0029D286, 0x0029CC86, 0x00000003, 0x0029D284, 0x0029CC84, 0x02CBCA9F, + 0x00000002, 0x0029D286, 0x0029CE86, 0x00000003, 0x0029D284, 0x0029CE84, + 0x02CBCA9F, 0x00000002, 0x0029D286, 0x0029D086, 0x00000002, 0x0029D286, + 0x0029D286, 0x00000002, 0x0029D286, 0x0029D486, 0x00000002, 0x0029D286, + 0x0029D686, 0x00000002, 0x0029D286, 0x0029D886, + // Block 186, offset 0x2e80 + 0x00000002, 0x0029D286, 0x0029DA86, 0x00000002, 0x0029D286, 0x0029DC86, + 0x00000002, 0x0029D286, 0x0029DE86, 0x00000002, 0x0029D284, 0x02CBCA9F, + 0x00000002, 0x0029D284, 0x02CE109F, 0x00000002, 0x0029D284, 0x02E1729F, + 0x00000002, 0x0029D484, 0x0002409F, 0x00000002, 0x0029D484, 0x0002E49F, + 0x00000002, 0x0029D486, 0x0029CC86, 0x00000002, 0x0029D486, 0x0029CE86, + 0x00000002, 0x0029D486, 0x0029D086, 0x00000002, 0x0029D486, 0x0029D286, + 0x00000002, 0x0029D486, 0x0029D486, 0x00000002, 0x0029D486, 0x0029D686, + 0x00000002, 0x0029D486, 0x0029D886, 0x00000002, 0x0029D486, 0x0029DA86, + 0x00000002, 0x0029D486, 0x0029DC86, 0x00000002, 0x0029D486, 0x0029DE86, + 0x00000002, 0x0029D484, 0x02CBCA9F, 0x00000002, 0x0029D484, 0x02CE109F, + 0x00000002, 0x0029D484, 0x02E1729F, 0x00000002, + // Block 187, offset 0x2ec0 + 0x0029D684, 0x0002409F, 0x00000002, 0x0029D684, 0x0002E49F, 0x00000002, + 0x0029D686, 0x0029CC86, 0x00000002, 0x0029D684, 0x02CBCA9F, 0x00000002, + 0x0029D684, 0x02CE109F, 0x00000002, 0x0029D684, 0x02E1729F, 0x00000002, + 0x0029D884, 0x0002409F, 0x00000002, 0x0029D884, 0x0002E49F, 0x00000002, + 0x0029D884, 0x02CBCA9F, 0x00000002, 0x0029D884, 0x02CE109F, 0x00000002, + 0x0029D884, 0x02E1729F, 0x00000002, 0x0029DA84, 0x0002409F, 0x00000002, + 0x0029DA84, 0x0002E49F, 0x00000002, 0x0029DA84, 0x02CBCA9F, 0x00000002, + 0x0029DA84, 0x02CE109F, 0x00000002, 0x0029DA84, 0x02E1729F, 0x00000002, + 0x0029DC84, 0x0002409F, 0x00000002, 0x0029DC84, 0x0002E49F, 0x00000002, + 0x0029DC84, 0x02CBCA9F, 0x00000002, 0x0029DC84, 0x02CE109F, 0x00000002, + 0x0029DC84, 0x02E1729F, 0x00000002, 0x0029DE84, + // Block 188, offset 0x2f00 + 0x0002409F, 0x00000002, 0x0029DE84, 0x0002E49F, 0x00000002, 0x0029DE84, + 0x02CBCA9F, 0x00000002, 0x0029DE84, 0x02CE109F, 0x00000002, 0x0029DE84, + 0x02E1729F, 0x00000002, 0x002BDE9D, 0x00306C9D, 0x00000002, 0x002BDE84, + 0x0031E284, 0x00000002, 0x402C1820, 0xA0105402, 0x00000002, 0x402C1A20, + 0xA0105402, 0x00000002, 0x402C1C20, 0xA0105402, 0x00000002, 0x402C2220, + 0xAE603202, 0x00000002, 0x402C2220, 0xAE603502, 0x00000002, 0x402C2220, + 0xAE603702, 0x00000003, 0x402C2220, 0xAE603702, 0xAE603202, 0x00000003, + 0x402C2220, 0xAE603702, 0xAE603502, 0x00000003, 0x402C2220, 0xAE603702, + 0xAE604E02, 0x00000003, 0x402C2220, 0xAE603702, 0xAE606402, 0x00000002, + 0x402C2220, 0xAE603C02, 0x00000003, 0x402C2220, 0xAE603C02, 0xAE603202, + 0x00000003, 0x402C2220, 0xAE603C02, 0xAE603502, + // Block 189, offset 0x2f40 + 0x00000003, 0x402C2220, 0xAE603C02, 0xAE604E02, 0x00000003, 0x402C2220, + 0xAE603C02, 0xAE606402, 0x00000002, 0x402C2220, 0xAE604102, 0x00000002, + 0x402C2220, 0xAE604302, 0x00000003, 0x402C2220, 0xAE604302, 0xAE603202, + 0x00000002, 0x402C2220, 0xAE604702, 0x00000003, 0x402C2220, 0xAE604702, + 0xAE605B02, 0x00000002, 0x402C2220, 0xAE604E02, 0x00000002, 0x402C2220, + 0xAE605202, 0x00000003, 0x402C2220, 0xAE605202, 0xAE605B02, 0x00000002, + 0x402C2220, 0xACA05902, 0x00000002, 0x402C2220, 0xAE605B02, 0x00000002, + 0x402C2220, 0xAE606402, 0x00000002, 0x402C2220, 0xAE606502, 0x00000002, + 0x402C2220, 0xAE606702, 0x00000002, 0x402C2220, 0xADC07002, 0x00000003, + 0x402C2220, 0xADC07002, 0xAE603702, 0x00000003, 0x402C2220, 0xADC07002, + 0xAE603C02, 0x00000002, 0x402C2220, 0xADC07602, + // Block 190, offset 0x2f80 + 0x00000002, 0x402C2420, 0xAE605202, 0x00000002, 0x402C2420, 0xADC07002, + 0x00000002, 0x402C2420, 0xADC07B02, 0x00000002, 0x402C2620, 0xAE603202, + 0x00000002, 0x402C2620, 0xAE603C02, 0x00000002, 0x402C2620, 0xAE604102, + 0x00000002, 0x402C2620, 0xAE605202, 0x00000002, 0x402C2620, 0xACA05602, + 0x00000003, 0x402C2620, 0xACA05602, 0xAE603202, 0x00000002, 0x402C2820, + 0xAE604102, 0x00000002, 0x402C2820, 0xAE605202, 0x00000002, 0x402C2820, + 0xACA05602, 0x00000002, 0x402C2820, 0xADC07002, 0x00000002, 0x402C2820, + 0xADC07802, 0x00000002, 0x402C2820, 0xADC07B02, 0x00000002, 0x402C2A20, + 0xAE603202, 0x00000002, 0x402C2A20, 0xAE603502, 0x00000002, 0x402C2A20, + 0xAE603702, 0x00000002, 0x402C2A20, 0xAE603C02, 0x00000003, 0x402C2A20, + 0xAE603C02, 0xAE603202, 0x00000003, 0x402C2A20, + // Block 191, offset 0x2fc0 + 0xAE603C02, 0xAE603502, 0x00000003, 0x402C2A20, 0xAE603C02, 0xAE604E02, + 0x00000003, 0x402C2A20, 0xAE603C02, 0xAE606402, 0x00000002, 0x402C2A20, + 0xAE604102, 0x00000002, 0x402C2A20, 0xAE604702, 0x00000002, 0x402C2A20, + 0xAE604E02, 0x00000002, 0x402C2A20, 0xAE605202, 0x00000002, 0x402C2A20, + 0xACA05602, 0x00000003, 0x402C2A20, 0xACA05602, 0xAE603702, 0x00000002, + 0x402C2A20, 0xACA05902, 0x00000002, 0x402C2A20, 0xAE605B02, 0x00000003, + 0x402C2A20, 0xAE605B02, 0xAE603202, 0x00000003, 0x402C2A20, 0xAE605B02, + 0xAE603502, 0x00000002, 0x402C2A20, 0xAE606402, 0x00000002, 0x402C2A20, + 0xAE606502, 0x00000002, 0x402C2A20, 0xAE606702, 0x00000002, 0x402C2A20, + 0xADC07002, 0x00000003, 0x402C2A20, 0xADC07002, 0xAE603C02, 0x00000002, + 0x402C2A20, 0xADC07802, 0x00000002, 0x402C2A20, + // Block 192, offset 0x3000 + 0xADC07A02, 0x00000002, 0x402C2C20, 0xAE605202, 0x00000002, 0x402C2E20, + 0xAE603202, 0x00000002, 0x402C2E20, 0xAE603702, 0x00000002, 0x402C2E20, + 0xAE603C02, 0x00000002, 0x402C2E20, 0xAE604102, 0x00000002, 0x402C2E20, + 0xAE605202, 0x00000002, 0x402C2E20, 0xACA05602, 0x00000002, 0x402C2E20, + 0xAE605B02, 0x00000002, 0x402C3020, 0xAE603C02, 0x00000002, 0x402C3020, + 0xAE604102, 0x00000002, 0x402C3020, 0xAE604702, 0x00000002, 0x402C3020, + 0xAE605202, 0x00000002, 0x402C3020, 0xACA05602, 0x00000002, 0x402C3020, + 0xADC07002, 0x00000002, 0x402C3020, 0xADC07902, 0x00000002, 0x402C3220, + 0xAE603202, 0x00000002, 0x402C3220, 0xAE603502, 0x00000002, 0x402C3220, + 0xAE603702, 0x00000002, 0x402C3220, 0xAE603C02, 0x00000002, 0x402C3220, + 0xAE604102, 0x00000002, 0x402C3220, 0xAE604702, + // Block 193, offset 0x3040 + 0x00000003, 0x402C3220, 0xAE604702, 0xAE603202, 0x00000002, 0x402C3220, + 0xAE604E02, 0x00000002, 0x402C3220, 0xAE605202, 0x00000002, 0x402C3220, + 0xACA05902, 0x00000002, 0x402C3220, 0xAE605B02, 0x00000002, 0x402C3220, + 0xAE606402, 0x00000002, 0x402C3220, 0xAE606502, 0x00000002, 0x402C3220, + 0xAE606702, 0x00000002, 0x402C3220, 0xADC07002, 0x00000002, 0x402C3220, + 0xADC07A02, 0x00000002, 0x402C3420, 0xAE603C02, 0x00000002, 0x402C3620, + 0xAE603202, 0x00000002, 0x402C3620, 0xAE604102, 0x00000002, 0x402C3620, + 0xACA05602, 0x00000002, 0x402C3620, 0xADC07002, 0x00000002, 0x402C3620, + 0xADC07B02, 0x00000002, 0x402C3820, 0xAE603202, 0x00000002, 0x402C3820, + 0xAE604102, 0x00000002, 0x402C3820, 0xACA05602, 0x00000002, 0x402C3820, + 0xADC07002, 0x00000003, 0x402C3820, 0xADC07002, + // Block 194, offset 0x3080 + 0xAE605B02, 0x00000002, 0x402C3820, 0xADC07802, 0x00000002, 0x402C3820, + 0xADC07B02, 0x00000002, 0x402C3A20, 0xAE603202, 0x00000002, 0x402C3A20, + 0xAE605202, 0x00000002, 0x402C3A20, 0xADC07002, 0x00000002, 0x002C3A9C, + 0x002C3A9C, 0x00000002, 0x002C3A8C, 0x002C628C, 0x00000002, 0x002C3A9C, + 0x002C629C, 0x00000002, 0x002C3A9C, 0x002E829C, 0x00000002, 0x402C3C20, + 0xAE603202, 0x00000002, 0x402C3C20, 0xAE603502, 0x00000002, 0x402C3C20, + 0xAE604102, 0x00000002, 0x402C3C20, 0xAE604E02, 0x00000002, 0x402C3C20, + 0xAE605202, 0x00000002, 0x402C3C20, 0xACA05602, 0x00000002, 0x402C3C20, + 0xADC07002, 0x00000002, 0x402C3C20, 0xADC07802, 0x00000002, 0x402C3C20, + 0xADC07B02, 0x00000002, 0x402C3E20, 0xAE603202, 0x00000002, 0x402C3E20, + 0xAE603502, 0x00000002, 0x402C3E20, 0xAE603702, + // Block 195, offset 0x30c0 + 0x00000002, 0x402C3E20, 0xAE603C02, 0x00000003, 0x402C3E20, 0xAE603C02, + 0xAE603202, 0x00000003, 0x402C3E20, 0xAE603C02, 0xAE603502, 0x00000003, + 0x402C3E20, 0xAE603C02, 0xAE604E02, 0x00000003, 0x402C3E20, 0xAE603C02, + 0xAE606402, 0x00000002, 0x402C3E20, 0xAE604102, 0x00000002, 0x402C3E20, + 0xAE604702, 0x00000003, 0x402C3E20, 0xAE604702, 0xAE605B02, 0x00000002, + 0x402C3E20, 0xAE604D02, 0x00000002, 0x402C3E20, 0xAE604E02, 0x00000003, + 0x402C3E20, 0xAE604E02, 0xAE603202, 0x00000003, 0x402C3E20, 0xAE604E02, + 0xAE604702, 0x00000003, 0x402C3E20, 0xAE604E02, 0xAE605B02, 0x00000002, + 0x402C3E20, 0xAE605202, 0x00000003, 0x402C3E20, 0xAE605202, 0xAE605B02, + 0x00000002, 0x402C3E20, 0xACA05902, 0x00000003, 0x402C3E20, 0xACA05902, + 0xAE605B02, 0x00000002, 0x402C3E20, 0xAE605B02, + // Block 196, offset 0x3100 + 0x00000003, 0x402C3E20, 0xAE605B02, 0xAE603202, 0x00000003, 0x402C3E20, + 0xAE605B02, 0xAE603502, 0x00000002, 0x402C3E20, 0xAE606402, 0x00000002, + 0x402C3E20, 0xAE606502, 0x00000002, 0x402C3E20, 0xAE606702, 0x00000002, + 0x402C3E20, 0xAD806802, 0x00000003, 0x402C3E20, 0xAD806802, 0xAE603202, + 0x00000003, 0x402C3E20, 0xAD806802, 0xAE603502, 0x00000003, 0x402C3E20, + 0xAD806802, 0xAE604E02, 0x00000003, 0x402C3E20, 0xAD806802, 0xAE606402, + 0x00000003, 0x402C3E20, 0xAD806802, 0xADC07002, 0x00000002, 0x402C3E20, + 0xADC07002, 0x00000003, 0x402C3E20, 0xADC07002, 0xAE603C02, 0x00000002, + 0x402C4020, 0xAE603202, 0x00000002, 0x402C4020, 0xAE605202, 0x00000002, + 0x402C4420, 0xAE603202, 0x00000002, 0x402C4420, 0xAE604102, 0x00000002, + 0x402C4420, 0xAE605202, 0x00000002, 0x402C4420, + // Block 197, offset 0x3140 + 0xACA05602, 0x00000002, 0x402C4420, 0xAE606502, 0x00000002, 0x402C4420, + 0xAE606702, 0x00000002, 0x402C4420, 0xADC07002, 0x00000003, 0x402C4420, + 0xADC07002, 0xAE605B02, 0x00000002, 0x402C4420, 0xADC07B02, 0x00000002, + 0x402C4620, 0xAE603202, 0x00000003, 0x402C4620, 0xAE603202, 0xAE605202, + 0x00000002, 0x402C4620, 0xAE603C02, 0x00000002, 0x402C4620, 0xAE604102, + 0x00000003, 0x402C4620, 0xAE604102, 0xAE605202, 0x00000002, 0x402C4620, + 0xAE605202, 0x00000002, 0x402C4620, 0xACA05602, 0x00000002, 0x402C4620, + 0xADC07002, 0x00000003, 0x402C4620, 0xADC07002, 0xAE605202, 0x00000002, + 0x402C4620, 0xADC07702, 0x00000002, 0x402C4820, 0xAE604102, 0x00000002, + 0x402C4820, 0xAE605202, 0x00000002, 0x402C4820, 0xACA05602, 0x00000002, + 0x402C4820, 0xADC07002, 0x00000002, 0x402C4820, + // Block 198, offset 0x3180 + 0xADC07702, 0x00000002, 0x402C4820, 0xADC07802, 0x00000002, 0x402C4820, + 0xADC07B02, 0x00000002, 0x402C4A20, 0xAE603202, 0x00000002, 0x402C4A20, + 0xAE603502, 0x00000002, 0x402C4A20, 0xAE603702, 0x00000002, 0x402C4A20, + 0xAE603C02, 0x00000002, 0x402C4A20, 0xAE604102, 0x00000002, 0x402C4A20, + 0xAE604302, 0x00000002, 0x402C4A20, 0xAE604702, 0x00000003, 0x402C4A20, + 0xAE604702, 0xAE603202, 0x00000003, 0x402C4A20, 0xAE604702, 0xAE603502, + 0x00000003, 0x402C4A20, 0xAE604702, 0xAE604102, 0x00000003, 0x402C4A20, + 0xAE604702, 0xAE605B02, 0x00000002, 0x402C4A20, 0xAE604D02, 0x00000002, + 0x402C4A20, 0xAE604E02, 0x00000003, 0x402C4A20, 0xAE604E02, 0xAE603202, + 0x00000002, 0x402C4A20, 0xACA05902, 0x00000002, 0x402C4A20, 0xAE605B02, + 0x00000003, 0x402C4A20, 0xAE605B02, 0xAE604702, + // Block 199, offset 0x31c0 + 0x00000002, 0x402C4A20, 0xAE606402, 0x00000002, 0x402C4A20, 0xAE606502, + 0x00000002, 0x402C4A20, 0xAE606702, 0x00000002, 0x402C4A20, 0xAD806802, + 0x00000003, 0x402C4A20, 0xAD806802, 0xAE603202, 0x00000003, 0x402C4A20, + 0xAD806802, 0xAE603502, 0x00000003, 0x402C4A20, 0xAD806802, 0xAE604E02, + 0x00000003, 0x402C4A20, 0xAD806802, 0xAE606402, 0x00000003, 0x402C4A20, + 0xAD806802, 0xADC07002, 0x00000002, 0x402C4A20, 0xADC07002, 0x00000002, + 0x402C4A20, 0xADC07502, 0x00000002, 0x402C4A20, 0xADC07802, 0x00000002, + 0x402C4A20, 0xADC07A02, 0x00000002, 0x402C4C20, 0xAE604E02, 0x00000002, + 0x402C4C20, 0xADC07002, 0x00000002, 0x402C4E20, 0xAE603202, 0x00000002, + 0x402C4E20, 0xAE603502, 0x00000002, 0x402C4E20, 0xAE603C02, 0x00000002, + 0x402C4E20, 0xAE604702, 0x00000002, 0x402C4E20, + // Block 200, offset 0x3200 + 0xAE605202, 0x00000002, 0x402C4E20, 0xADC07002, 0x00000002, 0x402C5020, + 0xAE604702, 0x00000002, 0x402C5020, 0xAE605202, 0x00000002, 0x402C5220, + 0xAE603202, 0x00000002, 0x402C5220, 0xAE603502, 0x00000002, 0x402C5220, + 0xAE603C02, 0x00000002, 0x402C5220, 0xAE604702, 0x00000002, 0x402C5220, + 0xAE604E02, 0x00000002, 0x402C5220, 0xAE605202, 0x00000002, 0x402C5220, + 0xAE605B02, 0x00000002, 0x402C5220, 0xAE606402, 0x00000002, 0x402C5220, + 0xADC07002, 0x00000002, 0x402C5420, 0xAE603202, 0x00000002, 0x402C5420, + 0xAE603C02, 0x00000002, 0x402C5420, 0xAE604102, 0x00000002, 0x402C5420, + 0xAE605202, 0x00000002, 0x402C5420, 0xADC07002, 0x00000002, 0x402C5420, + 0xADC07B02, 0x00000002, 0x402C6220, 0xAE603202, 0x00000002, 0x402C6220, + 0xAE603502, 0x00000002, 0x402C6220, 0xAE603702, + // Block 201, offset 0x3240 + 0x00000003, 0x402C6220, 0xAE603702, 0xAE603202, 0x00000003, 0x402C6220, + 0xAE603702, 0xAE603502, 0x00000003, 0x402C6220, 0xAE603702, 0xAE604E02, + 0x00000003, 0x402C6220, 0xAE603702, 0xAE606402, 0x00000002, 0x402C6220, + 0xAE603C02, 0x00000003, 0x402C6220, 0xAE603C02, 0xAE603202, 0x00000003, + 0x402C6220, 0xAE603C02, 0xAE603502, 0x00000003, 0x402C6220, 0xAE603C02, + 0xAE604E02, 0x00000003, 0x402C6220, 0xAE603C02, 0xAE606402, 0x00000002, + 0x402C6220, 0xAE604102, 0x00000002, 0x402C6220, 0xAE604302, 0x00000003, + 0x402C6220, 0xAE604302, 0xAE603202, 0x00000002, 0x402C6220, 0xAE604702, + 0x00000003, 0x402C6220, 0xAE604702, 0xAE605B02, 0x00000002, 0x402C6220, + 0xAE604E02, 0x00000002, 0x402C6220, 0xAE605202, 0x00000003, 0x402C6220, + 0xAE605202, 0xAE605B02, 0x00000002, 0x402C6220, + // Block 202, offset 0x3280 + 0xACA05902, 0x00000002, 0x402C6220, 0xAE605B02, 0x00000002, 0x402C6220, + 0xAE606402, 0x00000002, 0x402C6220, 0xAE606502, 0x00000002, 0x402C6220, + 0xAE606702, 0x00000002, 0x402C6220, 0xADC07002, 0x00000003, 0x402C6220, + 0xADC07002, 0xAE603702, 0x00000003, 0x402C6220, 0xADC07002, 0xAE603C02, + 0x00000002, 0x402C6220, 0xADC07602, 0x00000002, 0x002C629C, 0x002BDE9C, + 0x00000002, 0x002C629C, 0x002C0A9D, 0x00000002, 0x002C629D, 0x002DCC9D, + 0x00000002, 0x002C629C, 0x002E229C, 0x00000002, 0x002C629C, 0x002E829C, + 0x00000002, 0x002C6284, 0x00312A84, 0x00000002, 0x002C628A, 0x00312A84, + 0x00000002, 0x002C628A, 0x00312A8A, 0x00000002, 0x402C6420, 0xAE605202, + 0x00000002, 0x402C6420, 0xADC07002, 0x00000002, 0x402C6420, 0xADC07B02, + 0x00000002, 0x402C6620, 0xAE603202, 0x00000002, + // Block 203, offset 0x32c0 + 0x402C6620, 0xAE603C02, 0x00000002, 0x402C6620, 0xAE604102, 0x00000002, + 0x402C6620, 0xAE605202, 0x00000002, 0x402C6620, 0xACA05602, 0x00000003, + 0x402C6620, 0xACA05602, 0xAE603202, 0x00000002, 0x402C6820, 0xAE604102, + 0x00000002, 0x402C6820, 0xAE605202, 0x00000002, 0x402C6820, 0xACA05602, + 0x00000002, 0x402C6820, 0xADC07002, 0x00000002, 0x402C6820, 0xADC07802, + 0x00000002, 0x402C6820, 0xADC07B02, 0x00000002, 0x402C6A20, 0xAE603202, + 0x00000002, 0x402C6A20, 0xAE603502, 0x00000002, 0x402C6A20, 0xAE603702, + 0x00000002, 0x402C6A20, 0xAE603C02, 0x00000003, 0x402C6A20, 0xAE603C02, + 0xAE603202, 0x00000003, 0x402C6A20, 0xAE603C02, 0xAE603502, 0x00000003, + 0x402C6A20, 0xAE603C02, 0xAE604E02, 0x00000003, 0x402C6A20, 0xAE603C02, + 0xAE606402, 0x00000002, 0x402C6A20, 0xAE604102, + // Block 204, offset 0x3300 + 0x00000002, 0x402C6A20, 0xAE604702, 0x00000002, 0x402C6A20, 0xAE604E02, + 0x00000002, 0x402C6A20, 0xAE605202, 0x00000002, 0x402C6A20, 0xACA05602, + 0x00000003, 0x402C6A20, 0xACA05602, 0xAE603702, 0x00000002, 0x402C6A20, + 0xACA05902, 0x00000002, 0x402C6A20, 0xAE605B02, 0x00000003, 0x402C6A20, + 0xAE605B02, 0xAE603202, 0x00000003, 0x402C6A20, 0xAE605B02, 0xAE603502, + 0x00000002, 0x402C6A20, 0xAE606402, 0x00000002, 0x402C6A20, 0xAE606502, + 0x00000002, 0x402C6A20, 0xAE606702, 0x00000002, 0x402C6A20, 0xADC07002, + 0x00000003, 0x402C6A20, 0xADC07002, 0xAE603C02, 0x00000002, 0x402C6A20, + 0xADC07802, 0x00000002, 0x402C6A20, 0xADC07A02, 0x00000002, 0x402C6C20, + 0xAE605202, 0x00000002, 0x402C6E20, 0xAE603202, 0x00000002, 0x402C6E20, + 0xAE603702, 0x00000002, 0x402C6E20, 0xAE603C02, + // Block 205, offset 0x3340 + 0x00000002, 0x402C6E20, 0xAE604102, 0x00000002, 0x402C6E20, 0xAE605202, + 0x00000002, 0x402C6E20, 0xACA05602, 0x00000002, 0x402C6E20, 0xAE605B02, + 0x00000002, 0x402C7020, 0xAE603C02, 0x00000002, 0x402C7020, 0xAE604102, + 0x00000002, 0x402C7020, 0xAE604702, 0x00000002, 0x402C7020, 0xAE605202, + 0x00000002, 0x402C7020, 0xACA05602, 0x00000002, 0x402C7020, 0xADC07002, + 0x00000002, 0x402C7020, 0xADC07902, 0x00000002, 0x402C7020, 0xADC07B02, + 0x00000002, 0x402C7220, 0xAE603202, 0x00000002, 0x402C7220, 0xAE603502, + 0x00000002, 0x402C7220, 0xAE603702, 0x00000002, 0x402C7220, 0xAE603C02, + 0x00000002, 0x402C7220, 0xAE604102, 0x00000002, 0x402C7220, 0xAE604702, + 0x00000003, 0x402C7220, 0xAE604702, 0xAE603202, 0x00000002, 0x402C7220, + 0xAE604E02, 0x00000002, 0x402C7220, 0xACA05902, + // Block 206, offset 0x3380 + 0x00000002, 0x402C7220, 0xAE605B02, 0x00000002, 0x402C7220, 0xAE606402, + 0x00000002, 0x402C7220, 0xAE606502, 0x00000002, 0x402C7220, 0xAE606702, + 0x00000002, 0x402C7220, 0xADC07002, 0x00000002, 0x402C7220, 0xADC07A02, + 0x00000002, 0x402C7420, 0xAE603C02, 0x00000002, 0x402C7420, 0xAE604102, + 0x00000002, 0x402C7620, 0xAE603202, 0x00000002, 0x402C7620, 0xAE604102, + 0x00000002, 0x402C7620, 0xACA05602, 0x00000002, 0x402C7620, 0xADC07002, + 0x00000002, 0x402C7620, 0xADC07B02, 0x00000002, 0x402C7820, 0xAE603202, + 0x00000002, 0x402C7820, 0xAE604102, 0x00000002, 0x402C7820, 0xACA05602, + 0x00000002, 0x402C7820, 0xADC07002, 0x00000003, 0x402C7820, 0xADC07002, + 0xAE605B02, 0x00000002, 0x402C7820, 0xADC07802, 0x00000002, 0x402C7820, + 0xADC07B02, 0x00000002, 0x402C7A20, 0xAE603202, + // Block 207, offset 0x33c0 + 0x00000002, 0x402C7A20, 0xAE605202, 0x00000002, 0x402C7A20, 0xADC07002, + 0x00000002, 0x402C7C20, 0xAE603202, 0x00000002, 0x402C7C20, 0xAE603502, + 0x00000002, 0x402C7C20, 0xAE604102, 0x00000002, 0x402C7C20, 0xAE604E02, + 0x00000002, 0x402C7C20, 0xAE605202, 0x00000002, 0x402C7C20, 0xACA05602, + 0x00000002, 0x402C7C20, 0xADC07002, 0x00000002, 0x402C7C20, 0xADC07802, + 0x00000002, 0x402C7C20, 0xADC07B02, 0x00000002, 0x402C7E20, 0xAE603202, + 0x00000002, 0x402C7E20, 0xAE603502, 0x00000002, 0x402C7E20, 0xAE603702, + 0x00000002, 0x402C7E20, 0xAE603C02, 0x00000003, 0x402C7E20, 0xAE603C02, + 0xAE603202, 0x00000003, 0x402C7E20, 0xAE603C02, 0xAE603502, 0x00000003, + 0x402C7E20, 0xAE603C02, 0xAE604E02, 0x00000003, 0x402C7E20, 0xAE603C02, + 0xAE606402, 0x00000002, 0x402C7E20, 0xAE604102, + // Block 208, offset 0x3400 + 0x00000002, 0x402C7E20, 0xAE604702, 0x00000003, 0x402C7E20, 0xAE604702, + 0xAE605B02, 0x00000002, 0x402C7E20, 0xAE604D02, 0x00000002, 0x402C7E20, + 0xAE604E02, 0x00000003, 0x402C7E20, 0xAE604E02, 0xAE603202, 0x00000003, + 0x402C7E20, 0xAE604E02, 0xAE604702, 0x00000003, 0x402C7E20, 0xAE604E02, + 0xAE605B02, 0x00000002, 0x402C7E20, 0xAE605202, 0x00000003, 0x402C7E20, + 0xAE605202, 0xAE605B02, 0x00000002, 0x402C7E20, 0xACA05902, 0x00000003, + 0x402C7E20, 0xACA05902, 0xAE605B02, 0x00000002, 0x402C7E20, 0xAE605B02, + 0x00000003, 0x402C7E20, 0xAE605B02, 0xAE603202, 0x00000003, 0x402C7E20, + 0xAE605B02, 0xAE603502, 0x00000002, 0x402C7E20, 0xAE606402, 0x00000002, + 0x402C7E20, 0xAE606502, 0x00000002, 0x402C7E20, 0xAE606702, 0x00000002, + 0x402C7E20, 0xAD806802, 0x00000003, 0x402C7E20, + // Block 209, offset 0x3440 + 0xAD806802, 0xAE603202, 0x00000003, 0x402C7E20, 0xAD806802, 0xAE603502, + 0x00000003, 0x402C7E20, 0xAD806802, 0xAE604E02, 0x00000003, 0x402C7E20, + 0xAD806802, 0xAE606402, 0x00000003, 0x402C7E20, 0xAD806802, 0xADC07002, + 0x00000002, 0x402C7E20, 0xADC07002, 0x00000003, 0x402C7E20, 0xADC07002, + 0xAE603C02, 0x00000002, 0x402C8020, 0xAE603202, 0x00000002, 0x402C8020, + 0xAE605202, 0x00000002, 0x402C8420, 0xAE603202, 0x00000002, 0x402C8420, + 0xAE604102, 0x00000002, 0x402C8420, 0xAE605202, 0x00000002, 0x402C8420, + 0xACA05602, 0x00000002, 0x402C8420, 0xAE606502, 0x00000002, 0x402C8420, + 0xAE606702, 0x00000002, 0x402C8420, 0xADC07002, 0x00000003, 0x402C8420, + 0xADC07002, 0xAE605B02, 0x00000002, 0x402C8420, 0xADC07B02, 0x00000002, + 0x402C8620, 0xAE603202, 0x00000003, 0x402C8620, + // Block 210, offset 0x3480 + 0xAE603202, 0xAE605202, 0x00000002, 0x402C8620, 0xAE603C02, 0x00000002, + 0x402C8620, 0xAE604102, 0x00000003, 0x402C8620, 0xAE604102, 0xAE605202, + 0x00000002, 0x402C8620, 0xAE605202, 0x00000002, 0x402C8620, 0xACA05602, + 0x00000002, 0x402C8620, 0xADC07002, 0x00000003, 0x402C8620, 0xADC07002, + 0xAE605202, 0x00000002, 0x402C8620, 0xADC07702, 0x00000002, 0x402C8820, + 0xAE604102, 0x00000002, 0x402C8820, 0xAE604702, 0x00000002, 0x402C8820, + 0xAE605202, 0x00000002, 0x402C8820, 0xACA05602, 0x00000002, 0x402C8820, + 0xADC07002, 0x00000002, 0x402C8820, 0xADC07702, 0x00000002, 0x402C8820, + 0xADC07802, 0x00000002, 0x402C8820, 0xADC07B02, 0x00000002, 0x402C8A20, + 0xAE603202, 0x00000002, 0x402C8A20, 0xAE603502, 0x00000002, 0x402C8A20, + 0xAE603702, 0x00000002, 0x402C8A20, 0xAE603C02, + // Block 211, offset 0x34c0 + 0x00000002, 0x402C8A20, 0xAE604102, 0x00000002, 0x402C8A20, 0xAE604302, + 0x00000002, 0x402C8A20, 0xAE604702, 0x00000003, 0x402C8A20, 0xAE604702, + 0xAE603202, 0x00000003, 0x402C8A20, 0xAE604702, 0xAE603502, 0x00000003, + 0x402C8A20, 0xAE604702, 0xAE604102, 0x00000003, 0x402C8A20, 0xAE604702, + 0xAE605B02, 0x00000002, 0x402C8A20, 0xAE604D02, 0x00000002, 0x402C8A20, + 0xAE604E02, 0x00000003, 0x402C8A20, 0xAE604E02, 0xAE603202, 0x00000002, + 0x402C8A20, 0xACA05902, 0x00000002, 0x402C8A20, 0xAE605B02, 0x00000003, + 0x402C8A20, 0xAE605B02, 0xAE604702, 0x00000002, 0x402C8A20, 0xAE606402, + 0x00000002, 0x402C8A20, 0xAE606502, 0x00000002, 0x402C8A20, 0xAE606702, + 0x00000002, 0x402C8A20, 0xAD806802, 0x00000003, 0x402C8A20, 0xAD806802, + 0xAE603202, 0x00000003, 0x402C8A20, 0xAD806802, + // Block 212, offset 0x3500 + 0xAE603502, 0x00000003, 0x402C8A20, 0xAD806802, 0xAE604E02, 0x00000003, + 0x402C8A20, 0xAD806802, 0xAE606402, 0x00000003, 0x402C8A20, 0xAD806802, + 0xADC07002, 0x00000002, 0x402C8A20, 0xADC07002, 0x00000002, 0x402C8A20, + 0xADC07502, 0x00000002, 0x402C8A20, 0xADC07802, 0x00000002, 0x402C8A20, + 0xADC07A02, 0x00000002, 0x402C8C20, 0xAE604E02, 0x00000002, 0x402C8C20, + 0xADC07002, 0x00000002, 0x402C8E20, 0xAE603202, 0x00000002, 0x402C8E20, + 0xAE603502, 0x00000002, 0x402C8E20, 0xAE603C02, 0x00000002, 0x402C8E20, + 0xAE604302, 0x00000002, 0x402C8E20, 0xAE604702, 0x00000002, 0x402C8E20, + 0xAE605202, 0x00000002, 0x402C8E20, 0xADC07002, 0x00000002, 0x402C9020, + 0xAE604702, 0x00000002, 0x402C9020, 0xAE605202, 0x00000002, 0x402C9220, + 0xAE603202, 0x00000002, 0x402C9220, 0xAE603502, + // Block 213, offset 0x3540 + 0x00000002, 0x402C9220, 0xAE603C02, 0x00000002, 0x402C9220, 0xAE604302, + 0x00000002, 0x402C9220, 0xAE604702, 0x00000002, 0x402C9220, 0xAE604E02, + 0x00000002, 0x402C9220, 0xAE605202, 0x00000002, 0x402C9220, 0xAE605B02, + 0x00000002, 0x402C9220, 0xAE606402, 0x00000002, 0x402C9220, 0xADC07002, + 0x00000002, 0x402C9420, 0xAE603202, 0x00000002, 0x402C9420, 0xAE603C02, + 0x00000002, 0x402C9420, 0xAE604102, 0x00000002, 0x402C9420, 0xAE605202, + 0x00000002, 0x402C9420, 0xADC07002, 0x00000002, 0x402C9420, 0xADC07B02, + 0x00000002, 0x002D0884, 0x002D0884, 0x00000002, 0x002D0884, 0x002E2284, + 0x00000002, 0x002D089C, 0x002E829C, 0x00000002, 0x002D229D, 0x002C0A9D, + 0x00000002, 0x002D229D, 0x0031009C, 0x00000002, 0x002E2284, 0x002DCC84, + 0x00000002, 0x002E228A, 0x002DCC84, 0x00000002, + // Block 214, offset 0x3580 + 0x002E228A, 0x002DCC8A, 0x00000002, 0x002E229C, 0x002E829C, 0x00000002, + 0x002E229C, 0x002E9E9C, 0x00000002, 0x002E829C, 0x0029D09C, 0x00000002, + 0x002E829C, 0x0029D29C, 0x00000002, 0x002E829C, 0x002BDE9D, 0x00000002, + 0x002E829C, 0x002C0A9C, 0x00000002, 0x002E829D, 0x002C0A9D, 0x00000002, + 0x002E8294, 0x002C3A94, 0x00000002, 0x002E8294, 0x002C6294, 0x00000002, + 0x002E829C, 0x002D229C, 0x00000002, 0x002E829C, 0x002E229C, 0x00000002, + 0x002E829C, 0x002E829C, 0x00000002, 0x002E829C, 0x0030BE9D, 0x00000002, + 0x002E829D, 0x0030BE9D, 0x00000002, 0x002E829D, 0x0030BE9D, 0x00000002, + 0x002E829C, 0x0030E29D, 0x00000002, 0x002E829D, 0x0030E29D, 0x00000002, + 0x002E829D, 0x0032A29D, 0x00000002, 0x002E9E9C, 0x002BDE9D, 0x00000002, + 0x002E9E9C, 0x002D089D, 0x00000002, 0x002E9E84, + // Block 215, offset 0x35c0 + 0x002DCC84, 0x00000002, 0x002E9E8A, 0x002DCC84, 0x00000002, 0x002E9E8A, + 0x002DCC8A, 0x00000002, 0x002E9E9C, 0x002E829C, 0x00000002, 0x002E9E9C, + 0x0030BE9D, 0x00000002, 0x002E9E9C, 0x0030E29D, 0x00000002, 0x002F2C9C, + 0x002BDE9D, 0x00000002, 0x002F2C9D, 0x002BDE9C, 0x00000002, 0x002F2C9C, + 0x002C3A9C, 0x00000002, 0x002F2C9C, 0x002D089D, 0x00000002, 0x002F2C9C, + 0x0030BE9D, 0x00000002, 0x002F2C9C, 0x0030E29D, 0x00000002, 0x0030E29D, + 0x002C0A9C, 0x00000002, 0x0030E29D, 0x002C3A9D, 0x00000002, 0x0030E28C, + 0x00312A8C, 0x00000002, 0x0031DE84, 0x002E9E84, 0x00000002, 0x0032769C, + 0x002BDE9D, 0x00000002, 0x0032769C, 0x002D089D, 0x00000002, 0x0032769C, + 0x002D229C, 0x00000002, 0x0032769C, 0x002E229C, 0x00000002, 0x0032769C, + 0x002E829C, 0x00000002, 0x0032769C, 0x0030BE9D, + // Block 216, offset 0x3600 + 0x00000002, 0x0032769C, 0x0030E29D, 0x00000002, 0x40302620, 0xAE605202, + 0x00000002, 0x00302683, 0xAE605202, 0x00000002, 0x40302820, 0xAE603202, + 0x00000002, 0x00302883, 0xAE603202, 0x00000002, 0x40302820, 0xAE603C02, + 0x00000002, 0x00302883, 0xAE603C02, 0x00000002, 0x40302820, 0xAE605202, + 0x00000002, 0x00302883, 0xAE605202, 0x00000002, 0x40302820, 0xADC07002, + 0x00000002, 0x00302883, 0xADC07002, 0x00000002, 0x40302820, 0xADC07B02, + 0x00000002, 0x00302883, 0xADC07B02, 0x00000002, 0x4030BE21, 0xAE603202, + 0x00000002, 0x0030BEA3, 0xAE603202, 0x00000002, 0x4030BE21, 0xAE603502, + 0x00000002, 0x0030BEA3, 0xAE603502, 0x00000002, 0x4030BE21, 0xAE603C02, + 0x00000002, 0x0030BEA3, 0xAE603C02, 0x00000002, 0x4030BE21, 0xAE604302, + 0x00000002, 0x4030BE21, 0xAE604702, 0x00000002, + // Block 217, offset 0x3640 + 0x0030BEA3, 0xAE604702, 0x00000002, 0x4030BE21, 0xAE605202, 0x00000002, + 0x0030BEA3, 0xAE605202, 0x00000002, 0x4030BE21, 0xADC07002, 0x00000002, + 0x0030BEA3, 0xADC07002, 0x00000002, 0x4030EE20, 0xAE603202, 0x00000002, + 0x0030EE83, 0xAE603202, 0x00000002, 0x4030EE20, 0xAE603C02, 0x00000002, + 0x0030EE83, 0xAE603C02, 0x00000002, 0x4030EE20, 0xAE604702, 0x00000002, + 0x0030EE83, 0xAE604702, 0x00000002, 0x4030EE20, 0xAE605B02, 0x00000002, + 0x0030EE83, 0xAE605B02, 0x00000002, 0x4030EE20, 0xAD806802, 0x00000002, + 0x0030EE83, 0xAD806802, 0x00000002, 0x4030F020, 0xAE605B02, 0x00000002, + 0x0030F083, 0xAE605B02, 0x00000002, 0x4030F220, 0xAE605B02, 0x00000002, + 0x0030F283, 0xAE605B02, 0x00000002, 0x4030F420, 0xAE603202, 0x00000002, + 0x0030F483, 0xAE603202, 0x00000002, 0x4030F420, + // Block 218, offset 0x3680 + 0xAE603502, 0x00000002, 0x0030F483, 0xAE603502, 0x00000002, 0x4030F420, + 0xAE604102, 0x00000002, 0x0030F483, 0xAE604102, 0x00000002, 0x4030F420, + 0xAE605B02, 0x00000002, 0x0030F483, 0xAE605B02, 0x00000002, 0xA000B218, + 0xA000BA18, 0x00000002, 0xA000B618, 0xA000BA18, 0x00000002, 0x00393899, + 0xA000A219, 0x00000002, 0x0039389A, 0xA000A21A, 0x00000002, 0x00393C97, + 0x003A6897, 0x00000002, 0x00393C98, 0x003A6898, 0x00000002, 0x00393C99, + 0x003A9099, 0x00000002, 0x00393C9A, 0x003A909A, 0x00000002, 0x00395697, + 0x003A6897, 0x00000002, 0x00395698, 0x003A6898, 0x00000002, 0x00395699, + 0x003A9099, 0x00000002, 0x0039569A, 0x003A909A, 0x00000002, 0x00395898, + 0x003A6898, 0x00000002, 0x00395899, 0x003A9099, 0x00000002, 0x0039589A, + 0x003A909A, 0x00000002, 0x00396499, 0x003A9099, + // Block 219, offset 0x36c0 + 0x00000002, 0x0039649A, 0x003A909A, 0x00000002, 0x00397299, 0x003A9099, + 0x00000002, 0x0039729A, 0x003A909A, 0x00000002, 0x00397499, 0x003A9099, + 0x00000002, 0x0039749A, 0x003A909A, 0x00000002, 0x0039C697, 0x003A6897, + 0x00000002, 0x0039C698, 0x003A6898, 0x00000002, 0x0039C699, 0x003A9099, + 0x00000002, 0x0039C69A, 0x003A909A, 0x00000002, 0x0039C897, 0x003A6897, + 0x00000002, 0x0039C898, 0x003A6898, 0x00000002, 0x0039C899, 0x003A9099, + 0x00000002, 0x0039C89A, 0x003A909A, 0x00000002, 0x0039DC99, 0x003A9099, + 0x00000002, 0x0039DC9A, 0x003A909A, 0x00000002, 0x0039DE99, 0x003A9099, + 0x00000002, 0x0039DE9A, 0x003A909A, 0x00000002, 0x0039E699, 0x003A9099, + 0x00000002, 0x0039E69A, 0x003A909A, 0x00000002, 0x0039EE99, 0x003A9099, + 0x00000002, 0x0039EE9A, 0x003A909A, 0x00000002, + // Block 220, offset 0x3700 + 0x0039F099, 0x003A9099, 0x00000002, 0x0039F09A, 0x003A909A, 0x00000002, + 0x0039FC99, 0x003A9099, 0x00000002, 0x0039FC9A, 0x003A909A, 0x00000002, + 0x003A1299, 0x003A9099, 0x00000002, 0x003A129A, 0x003A909A, 0x00000002, + 0x003A1A99, 0x00393899, 0x00000002, 0x003A1A9A, 0x0039389A, 0x00000002, + 0x003A1A97, 0x00396497, 0x00000002, 0x003A1A9A, 0x0039649A, 0x00000002, + 0x003A1A97, 0x00397297, 0x00000002, 0x003A1A9A, 0x0039729A, 0x00000002, + 0x003A1A97, 0x00397497, 0x00000002, 0x003A1A9A, 0x0039749A, 0x00000002, + 0x003A1A97, 0x003A4097, 0x00000002, 0x003A1A98, 0x003A4098, 0x00000002, + 0x003A1A99, 0x003A4099, 0x00000002, 0x003A1A9A, 0x003A409A, 0x00000002, + 0x003A1A97, 0x003A4E97, 0x00000002, 0x003A1A98, 0x003A4E98, 0x00000002, + 0x003A1A99, 0x003A4E99, 0x00000002, 0x003A1A9A, + // Block 221, offset 0x3740 + 0x003A4E9A, 0x00000002, 0x003A1A99, 0x003A9099, 0x00000002, 0x003A1A9A, + 0x003A909A, 0x00000002, 0x003A4097, 0x003A6897, 0x00000002, 0x003A4099, + 0x003A9099, 0x00000002, 0x003A409A, 0x003A909A, 0x00000002, 0x003A4E9A, + 0x003A909A, 0x00000002, 0x003A5697, 0x003A6897, 0x00000002, 0x003A5698, + 0x003A6898, 0x00000002, 0x003A5699, 0x003A9099, 0x00000002, 0x003A569A, + 0x003A909A, 0x00000002, 0x003A6897, 0xA000D117, 0x00000002, 0x003A6897, + 0x00396497, 0x00000002, 0x003A689A, 0x0039649A, 0x00000002, 0x003A6897, + 0x003A4E97, 0x00000002, 0x003A689A, 0x003A4E9A, 0x00000002, 0x003A689A, + 0x003A909A, 0x00000002, 0x003A7299, 0xA000BE19, 0x00000002, 0x003A729A, + 0xA000BE1A, 0x00000002, 0x403A8822, 0xAE60BE02, 0x00000002, 0x003A8E99, + 0xA000D119, 0x00000002, 0x003A8E9A, 0xA000D11A, + // Block 222, offset 0x3780 + 0x00000002, 0x003A9084, 0x00391C84, 0x00000002, 0x003A9097, 0x00396497, + 0x00000002, 0x003A909A, 0x0039649A, 0x00000002, 0x003A9097, 0x00397297, + 0x00000002, 0x003A909A, 0x0039729A, 0x00000002, 0x003A9097, 0x00397497, + 0x00000002, 0x003A909A, 0x0039749A, 0x00000002, 0x003A9099, 0x0039A499, + 0x00000002, 0x003A9099, 0x0039A699, 0x00000002, 0x003A9097, 0x003A4E97, + 0x00000002, 0x003A9098, 0x003A4E98, 0x00000002, 0x003A9099, 0x003A4E99, + 0x00000002, 0x003A909A, 0x003A4E9A, 0x00000002, 0x003A9099, 0x003A5699, + 0x00000002, 0x003A9097, 0x003A6897, 0x00000002, 0x003A9098, 0x003A6898, + 0x00000002, 0x003A9099, 0x003A9099, 0x00000002, 0x003A909A, 0x003A909A, + 0x00000002, 0x403A9222, 0xAE60BE02, 0x00000002, 0x003AAA99, 0xA000BE19, + 0x00000002, 0x003AAA9A, 0xA000BE1A, 0x00000002, + // Block 223, offset 0x37c0 + 0x402C6221, 0x40021220, 0x00000002, 0x002C62A3, 0x40021220, 0x00000002, + 0x402D2221, 0x40021220, 0x00000002, 0x002D22A3, 0x40021220, 0x00000002, + 0x402E9E21, 0x40021220, 0x00000002, 0x002E9EA3, 0x40021220, 0x00000002, + 0x40302C21, 0x40021220, 0x00000002, 0x00302CA3, 0x40021220, 0x00000002, + 0x40312A21, 0x40021220, 0x00000002, 0x00312AA3, 0x40021220, 0x00000003, + 0x40312A21, 0x40021220, 0xAE604102, 0x00000003, 0x00312AA3, 0x40021220, + 0xAE604102, 0x00000002, 0x40320E20, 0xAE605B02, 0x00000002, 0x00320E83, + 0xAE605B02, 0x00000002, 0x40320E21, 0xAE603202, 0x00000002, 0x00320EA3, + 0xAE603202, 0x00000002, 0x40321020, 0xAE604E02, 0x00000002, 0x00321083, + 0xAE604E02, 0x00000002, 0x40321020, 0xAE605B02, 0x00000002, 0x00321083, + 0xAE605B02, 0x00000002, 0x40321021, 0xAE603202, + // Block 224, offset 0x3800 + 0x00000002, 0x003210A3, 0xAE603202, 0x00000002, 0x40302C21, 0x402D6820, + 0x00000002, 0x00302CA3, 0x402D6820, 0x00000002, 0x40321023, 0xAE603202, + 0x00000002, 0x003210E3, 0xAE603202, 0x00000002, 0x40321023, 0xAE603C02, + 0x00000002, 0x003210E3, 0xAE603C02, 0x00000002, 0x40321023, 0xAE604702, + 0x00000002, 0x003210E3, 0xAE604702, 0x00000002, 0x40321023, 0xAE605B02, + 0x00000002, 0x003210E3, 0xAE605B02, 0x00000002, 0x40321023, 0xAD806802, + 0x00000002, 0x003210E3, 0xAD806802, 0x00000002, 0x002BDE83, 0xAE603202, + 0x00000002, 0x002BDE83, 0xAE603502, 0x00000002, 0x002BDE83, 0xAE603702, + 0x00000003, 0x002BDE83, 0xAE603702, 0xAE603202, 0x00000003, 0x002BDE83, + 0xAE603702, 0xAE603502, 0x00000003, 0x002BDE83, 0xAE603702, 0xAE604E02, + 0x00000003, 0x002BDE83, 0xAE603702, 0xAE606402, + // Block 225, offset 0x3840 + 0x00000002, 0x002BDE83, 0xAE603C02, 0x00000003, 0x002BDE83, 0xAE603C02, + 0xAE603202, 0x00000003, 0x002BDE83, 0xAE603C02, 0xAE603502, 0x00000003, + 0x002BDE83, 0xAE603C02, 0xAE604E02, 0x00000003, 0x002BDE83, 0xAE603C02, + 0xAE606402, 0x00000002, 0x002BDE83, 0xAE604102, 0x00000002, 0x002BDE83, + 0xAE604302, 0x00000003, 0x002BDE83, 0xAE604302, 0xAE603202, 0x00000002, + 0x002BDE83, 0xAE604702, 0x00000003, 0x002BDE83, 0xAE604702, 0xAE605B02, + 0x00000002, 0x002BDE83, 0xAE604E02, 0x00000002, 0x002BDE83, 0xAE605202, + 0x00000003, 0x002BDE83, 0xAE605202, 0xAE605B02, 0x00000002, 0x002BDE83, + 0xACA05902, 0x00000002, 0x002BDE83, 0xAE605B02, 0x00000002, 0x002BDE83, + 0xAE606402, 0x00000002, 0x002BDE83, 0xAE606502, 0x00000002, 0x002BDE83, + 0xAE606702, 0x00000002, 0x002BDE83, 0xADC07002, + // Block 226, offset 0x3880 + 0x00000003, 0x002BDE83, 0xADC07002, 0xAE603702, 0x00000003, 0x002BDE83, + 0xADC07002, 0xAE603C02, 0x00000002, 0x002BDE83, 0xADC07602, 0x00000002, + 0x402BE020, 0xAE603202, 0x00000002, 0x002BE083, 0xAE603202, 0x00000002, + 0x402BE020, 0xAE603502, 0x00000002, 0x002BE083, 0xAE603502, 0x00000002, + 0x402BE020, 0xAE603702, 0x00000002, 0x002BE083, 0xAE603702, 0x00000002, + 0x402BE020, 0xAE603C02, 0x00000002, 0x002BE083, 0xAE603C02, 0x00000003, + 0x402BE020, 0xAE603C02, 0xAE603202, 0x00000003, 0x002BE083, 0xAE603C02, + 0xAE603202, 0x00000003, 0x402BE020, 0xAE603C02, 0xAE603502, 0x00000003, + 0x002BE083, 0xAE603C02, 0xAE603502, 0x00000003, 0x402BE020, 0xAE603C02, + 0xAE604E02, 0x00000003, 0x002BE083, 0xAE603C02, 0xAE604E02, 0x00000003, + 0x402BE020, 0xAE603C02, 0xAE606402, 0x00000003, + // Block 227, offset 0x38c0 + 0x002BE083, 0xAE603C02, 0xAE606402, 0x00000002, 0x402BE020, 0xAE604102, + 0x00000002, 0x002BE083, 0xAE604102, 0x00000002, 0x402BE020, 0xAE604702, + 0x00000002, 0x002BE083, 0xAE604702, 0x00000002, 0x402BE020, 0xAE604E02, + 0x00000002, 0x002BE083, 0xAE604E02, 0x00000002, 0x402BE020, 0xAE605202, + 0x00000002, 0x002BE083, 0xAE605202, 0x00000002, 0x402BE020, 0xACA05602, + 0x00000002, 0x002BE083, 0xACA05602, 0x00000003, 0x402BE020, 0xACA05602, + 0xAE603702, 0x00000003, 0x002BE083, 0xACA05602, 0xAE603702, 0x00000002, + 0x402BE020, 0xACA05902, 0x00000002, 0x002BE083, 0xACA05902, 0x00000002, + 0x402BE020, 0xAE605B02, 0x00000002, 0x002BE083, 0xAE605B02, 0x00000003, + 0x402BE020, 0xAE605B02, 0xAE603202, 0x00000003, 0x002BE083, 0xAE605B02, + 0xAE603202, 0x00000003, 0x402BE020, 0xAE605B02, + // Block 228, offset 0x3900 + 0xAE603502, 0x00000003, 0x002BE083, 0xAE605B02, 0xAE603502, 0x00000002, + 0x402BE020, 0xAE606402, 0x00000002, 0x002BE083, 0xAE606402, 0x00000002, + 0x402BE020, 0xAE606502, 0x00000002, 0x002BE083, 0xAE606502, 0x00000002, + 0x402BE020, 0xAE606702, 0x00000002, 0x002BE083, 0xAE606702, 0x00000002, + 0x402BE020, 0xADC07002, 0x00000002, 0x002BE083, 0xADC07002, 0x00000003, + 0x402BE020, 0xADC07002, 0xAE603C02, 0x00000003, 0x002BE083, 0xADC07002, + 0xAE603C02, 0x00000002, 0x402BE020, 0xADC07802, 0x00000002, 0x002BE083, + 0xADC07802, 0x00000002, 0x402BE020, 0xADC07A02, 0x00000002, 0x002BE083, + 0xADC07A02, 0x00000002, 0x402BE220, 0xAE603202, 0x00000002, 0x002BE283, + 0xAE603202, 0x00000002, 0x402BE220, 0xAE603502, 0x00000002, 0x002BE283, + 0xAE603502, 0x00000002, 0x402BE220, 0xAE603702, + // Block 229, offset 0x3940 + 0x00000002, 0x002BE283, 0xAE603702, 0x00000002, 0x402BE220, 0xAE603C02, + 0x00000002, 0x002BE283, 0xAE603C02, 0x00000002, 0x402BE220, 0xAE604102, + 0x00000002, 0x002BE283, 0xAE604102, 0x00000002, 0x402BE220, 0xAE604702, + 0x00000002, 0x002BE283, 0xAE604702, 0x00000003, 0x402BE220, 0xAE604702, + 0xAE603202, 0x00000003, 0x002BE283, 0xAE604702, 0xAE603202, 0x00000002, + 0x402BE220, 0xAE604E02, 0x00000002, 0x002BE283, 0xAE604E02, 0x00000002, + 0x002BE283, 0xAE605202, 0x00000002, 0x402BE220, 0xACA05902, 0x00000002, + 0x002BE283, 0xACA05902, 0x00000002, 0x402BE220, 0xAE605B02, 0x00000002, + 0x002BE283, 0xAE605B02, 0x00000002, 0x402BE220, 0xAE606402, 0x00000002, + 0x002BE283, 0xAE606402, 0x00000002, 0x402BE220, 0xAE606502, 0x00000002, + 0x002BE283, 0xAE606502, 0x00000002, 0x402BE220, + // Block 230, offset 0x3980 + 0xAE606702, 0x00000002, 0x002BE283, 0xAE606702, 0x00000002, 0x402BE220, + 0xADC07002, 0x00000002, 0x002BE283, 0xADC07002, 0x00000002, 0x402BE220, + 0xADC07A02, 0x00000002, 0x002BE283, 0xADC07A02, 0x00000002, 0x402BE420, + 0xAE603202, 0x00000002, 0x002BE483, 0xAE603202, 0x00000002, 0x402BE420, + 0xAE603502, 0x00000002, 0x002BE483, 0xAE603502, 0x00000002, 0x402BE420, + 0xAE603702, 0x00000002, 0x002BE483, 0xAE603702, 0x00000002, 0x402BE420, + 0xAE603C02, 0x00000002, 0x002BE483, 0xAE603C02, 0x00000003, 0x402BE420, + 0xAE603C02, 0xAE603202, 0x00000003, 0x002BE483, 0xAE603C02, 0xAE603202, + 0x00000003, 0x402BE420, 0xAE603C02, 0xAE603502, 0x00000003, 0x002BE483, + 0xAE603C02, 0xAE603502, 0x00000003, 0x402BE420, 0xAE603C02, 0xAE604E02, + 0x00000003, 0x002BE483, 0xAE603C02, 0xAE604E02, + // Block 231, offset 0x39c0 + 0x00000003, 0x402BE420, 0xAE603C02, 0xAE606402, 0x00000003, 0x002BE483, + 0xAE603C02, 0xAE606402, 0x00000002, 0x402BE420, 0xAE604102, 0x00000002, + 0x002BE483, 0xAE604102, 0x00000002, 0x402BE420, 0xAE604702, 0x00000002, + 0x002BE483, 0xAE604702, 0x00000003, 0x402BE420, 0xAE604702, 0xAE605B02, + 0x00000003, 0x002BE483, 0xAE604702, 0xAE605B02, 0x00000002, 0x402BE420, + 0xAE604D02, 0x00000002, 0x002BE483, 0xAE604D02, 0x00000002, 0x402BE420, + 0xAE604E02, 0x00000002, 0x002BE483, 0xAE604E02, 0x00000003, 0x402BE420, + 0xAE604E02, 0xAE603202, 0x00000003, 0x002BE483, 0xAE604E02, 0xAE603202, + 0x00000003, 0x402BE420, 0xAE604E02, 0xAE604702, 0x00000003, 0x002BE483, + 0xAE604E02, 0xAE604702, 0x00000003, 0x402BE420, 0xAE604E02, 0xAE605B02, + 0x00000003, 0x002BE483, 0xAE604E02, 0xAE605B02, + // Block 232, offset 0x3a00 + 0x00000002, 0x402BE420, 0xAE605202, 0x00000002, 0x002BE483, 0xAE605202, + 0x00000003, 0x402BE420, 0xAE605202, 0xAE605B02, 0x00000003, 0x002BE483, + 0xAE605202, 0xAE605B02, 0x00000002, 0x402BE420, 0xACA05902, 0x00000002, + 0x002BE483, 0xACA05902, 0x00000003, 0x402BE420, 0xACA05902, 0xAE605B02, + 0x00000003, 0x002BE483, 0xACA05902, 0xAE605B02, 0x00000002, 0x402BE420, + 0xAE605B02, 0x00000002, 0x002BE483, 0xAE605B02, 0x00000003, 0x402BE420, + 0xAE605B02, 0xAE603202, 0x00000003, 0x002BE483, 0xAE605B02, 0xAE603202, + 0x00000003, 0x402BE420, 0xAE605B02, 0xAE603502, 0x00000003, 0x002BE483, + 0xAE605B02, 0xAE603502, 0x00000002, 0x402BE420, 0xAE606402, 0x00000002, + 0x002BE483, 0xAE606402, 0x00000002, 0x402BE420, 0xAE606502, 0x00000002, + 0x002BE483, 0xAE606502, 0x00000002, 0x402BE420, + // Block 233, offset 0x3a40 + 0xAE606702, 0x00000002, 0x002BE483, 0xAE606702, 0x00000002, 0x402BE420, + 0xAD806802, 0x00000002, 0x002BE483, 0xAD806802, 0x00000003, 0x402BE420, + 0xAD806802, 0xAE603202, 0x00000003, 0x002BE483, 0xAD806802, 0xAE603202, + 0x00000003, 0x402BE420, 0xAD806802, 0xAE603502, 0x00000003, 0x002BE483, + 0xAD806802, 0xAE603502, 0x00000003, 0x402BE420, 0xAD806802, 0xAE604E02, + 0x00000003, 0x002BE483, 0xAD806802, 0xAE604E02, 0x00000003, 0x402BE420, + 0xAD806802, 0xAE606402, 0x00000003, 0x002BE483, 0xAD806802, 0xAE606402, + 0x00000003, 0x402BE420, 0xAD806802, 0xADC07002, 0x00000003, 0x002BE483, + 0xAD806802, 0xADC07002, 0x00000002, 0x402BE420, 0xADC07002, 0x00000002, + 0x002BE483, 0xADC07002, 0x00000003, 0x402BE420, 0xADC07002, 0xAE603C02, + 0x00000003, 0x002BE483, 0xADC07002, 0xAE603C02, + // Block 234, offset 0x3a80 + 0x00000002, 0x402BE620, 0xAE603202, 0x00000002, 0x002BE683, 0xAE603202, + 0x00000002, 0x402BE620, 0xAE603502, 0x00000002, 0x002BE683, 0xAE603502, + 0x00000002, 0x402BE620, 0xAE603702, 0x00000002, 0x002BE683, 0xAE603702, + 0x00000002, 0x402BE620, 0xAE603C02, 0x00000002, 0x002BE683, 0xAE603C02, + 0x00000002, 0x402BE620, 0xAE604102, 0x00000002, 0x002BE683, 0xAE604102, + 0x00000002, 0x402BE620, 0xAE604302, 0x00000002, 0x002BE683, 0xAE604302, + 0x00000002, 0x402BE620, 0xAE604702, 0x00000002, 0x002BE683, 0xAE604702, + 0x00000003, 0x402BE620, 0xAE604702, 0xAE603202, 0x00000003, 0x002BE683, + 0xAE604702, 0xAE603202, 0x00000003, 0x402BE620, 0xAE604702, 0xAE603502, + 0x00000003, 0x002BE683, 0xAE604702, 0xAE603502, 0x00000003, 0x402BE620, + 0xAE604702, 0xAE604102, 0x00000003, 0x002BE683, + // Block 235, offset 0x3ac0 + 0xAE604702, 0xAE604102, 0x00000003, 0x402BE620, 0xAE604702, 0xAE605B02, + 0x00000003, 0x002BE683, 0xAE604702, 0xAE605B02, 0x00000002, 0x402BE620, + 0xAE604D02, 0x00000002, 0x002BE683, 0xAE604D02, 0x00000002, 0x402BE620, + 0xAE604E02, 0x00000002, 0x002BE683, 0xAE604E02, 0x00000003, 0x402BE620, + 0xAE604E02, 0xAE603202, 0x00000003, 0x002BE683, 0xAE604E02, 0xAE603202, + 0x00000002, 0x402BE620, 0xACA05902, 0x00000002, 0x002BE683, 0xACA05902, + 0x00000002, 0x402BE620, 0xAE605B02, 0x00000002, 0x002BE683, 0xAE605B02, + 0x00000003, 0x402BE620, 0xAE605B02, 0xAE604702, 0x00000003, 0x002BE683, + 0xAE605B02, 0xAE604702, 0x00000002, 0x402BE620, 0xAE606402, 0x00000002, + 0x002BE683, 0xAE606402, 0x00000002, 0x402BE620, 0xAE606502, 0x00000002, + 0x002BE683, 0xAE606502, 0x00000002, 0x402BE620, + // Block 236, offset 0x3b00 + 0xAE606702, 0x00000002, 0x002BE683, 0xAE606702, 0x00000002, 0x402BE620, + 0xAD806802, 0x00000002, 0x002BE683, 0xAD806802, 0x00000003, 0x402BE620, + 0xAD806802, 0xAE603202, 0x00000003, 0x002BE683, 0xAD806802, 0xAE603202, + 0x00000003, 0x402BE620, 0xAD806802, 0xAE603502, 0x00000003, 0x002BE683, + 0xAD806802, 0xAE603502, 0x00000003, 0x402BE620, 0xAD806802, 0xAE604E02, + 0x00000003, 0x002BE683, 0xAD806802, 0xAE604E02, 0x00000003, 0x402BE620, + 0xAD806802, 0xAE606402, 0x00000003, 0x002BE683, 0xAD806802, 0xAE606402, + 0x00000003, 0x402BE620, 0xAD806802, 0xADC07002, 0x00000003, 0x002BE683, + 0xAD806802, 0xADC07002, 0x00000002, 0x402BE620, 0xADC07002, 0x00000002, + 0x002BE683, 0xADC07002, 0x00000002, 0x402BE620, 0xADC07502, 0x00000002, + 0x002BE683, 0xADC07502, 0x00000002, 0x402BE620, + // Block 237, offset 0x3b40 + 0xADC07802, 0x00000002, 0x002BE683, 0xADC07802, 0x00000002, 0x402BE620, + 0xADC07A02, 0x00000002, 0x002BE683, 0xADC07A02, 0x00000002, 0x402BE820, + 0xAE603C02, 0x00000002, 0x002BE883, 0xAE603C02, 0x00000002, 0x402BE820, + 0xAE604102, 0x00000002, 0x002BE883, 0xAE604102, 0x00000002, 0x402BE820, + 0xAE604702, 0x00000002, 0x002BE883, 0xAE604702, 0x00000002, 0x402BE820, + 0xAE605202, 0x00000002, 0x002BE883, 0xAE605202, 0x00000002, 0x402BE820, + 0xACA05602, 0x00000002, 0x002BE883, 0xACA05602, 0x00000002, 0x402BE820, + 0xADC07002, 0x00000002, 0x002BE883, 0xADC07002, 0x00000002, 0x402BE820, + 0xADC07902, 0x00000002, 0x002BE883, 0xADC07902, 0x00000002, 0x402BE820, + 0xADC07B02, 0x00000002, 0x402BEA20, 0xAE603202, 0x00000002, 0x002BEA83, + 0xAE603202, 0x00000002, 0x402BEA20, 0xAE604102, + // Block 238, offset 0x3b80 + 0x00000002, 0x002BEA83, 0xAE604102, 0x00000002, 0x402BEA20, 0xACA05602, + 0x00000002, 0x002BEA83, 0xACA05602, 0x00000002, 0x402BEA20, 0xADC07002, + 0x00000002, 0x002BEA83, 0xADC07002, 0x00000002, 0x402BEA20, 0xADC07B02, + 0x00000002, 0x002BEA83, 0xADC07B02, 0x00000002, 0x402BEC20, 0xAE603202, + 0x00000002, 0x002BEC83, 0xAE603202, 0x00000002, 0x402BEC20, 0xAE604102, + 0x00000002, 0x002BEC83, 0xAE604102, 0x00000002, 0x402BEC20, 0xACA05602, + 0x00000002, 0x002BEC83, 0xACA05602, 0x00000002, 0x402BEC20, 0xADC07002, + 0x00000002, 0x002BEC83, 0xADC07002, 0x00000003, 0x402BEC20, 0xADC07002, + 0xAE605B02, 0x00000003, 0x002BEC83, 0xADC07002, 0xAE605B02, 0x00000002, + 0x402BEC20, 0xADC07802, 0x00000002, 0x002BEC83, 0xADC07802, 0x00000002, + 0x402BEC20, 0xADC07B02, 0x00000002, 0x002BEC83, + // Block 239, offset 0x3bc0 + 0xADC07B02, 0x00000002, 0x402BEE20, 0xAE603202, 0x00000002, 0x002BEE83, + 0xAE603202, 0x00000002, 0x402BEE20, 0xAE605202, 0x00000002, 0x002BEE83, + 0xAE605202, 0x00000002, 0x402BEE20, 0xADC07002, 0x00000002, 0x002BEE83, + 0xADC07002, 0x00000002, 0x402BF020, 0xAE603202, 0x00000002, 0x002BF083, + 0xAE603202, 0x00000002, 0x402BF020, 0xAE603502, 0x00000002, 0x002BF083, + 0xAE603502, 0x00000002, 0x402BF020, 0xAE604102, 0x00000002, 0x002BF083, + 0xAE604102, 0x00000002, 0x402BF020, 0xAE604E02, 0x00000002, 0x002BF083, + 0xAE604E02, 0x00000002, 0x402BF020, 0xAE605202, 0x00000002, 0x002BF083, + 0xAE605202, 0x00000002, 0x402BF020, 0xACA05602, 0x00000002, 0x002BF083, + 0xACA05602, 0x00000002, 0x402BF020, 0xADC07002, 0x00000002, 0x002BF083, + 0xADC07002, 0x00000002, 0x402BF020, 0xADC07802, + // Block 240, offset 0x3c00 + 0x00000002, 0x002BF083, 0xADC07802, 0x00000002, 0x402BF020, 0xADC07B02, + 0x00000002, 0x002BF083, 0xADC07B02, 0x00000002, 0x402BF220, 0xAE603202, + 0x00000002, 0x002BF283, 0xAE603202, 0x00000002, 0x402BF220, 0xAE605202, + 0x00000002, 0x002BF283, 0xAE605202, 0x00000002, 0x402BF420, 0xAE603202, + 0x00000002, 0x002BF483, 0xAE603202, 0x00000002, 0x402BF420, 0xAE603502, + 0x00000002, 0x002BF483, 0xAE603502, 0x00000002, 0x402BF420, 0xAE603C02, + 0x00000002, 0x002BF483, 0xAE603C02, 0x00000002, 0x402BF420, 0xAE604302, + 0x00000002, 0x402BF420, 0xAE604702, 0x00000002, 0x002BF483, 0xAE604702, + 0x00000002, 0x402BF420, 0xAE605202, 0x00000002, 0x002BF483, 0xAE605202, + 0x00000002, 0x402BF420, 0xADC07002, 0x00000002, 0x002BF483, 0xADC07002, + 0x00000002, 0x402C3E20, 0xACA05602, 0x00000002, + // Block 241, offset 0x3c40 + 0x002C3E83, 0xACA05602, 0x00000002, 0x002C3C83, 0x402C3C20, 0x00000002, + 0x002C3C85, 0x402C3C20, 0x00000002, 0x002C3C87, 0x002C3C86, 0x00000002, + 0x002C6483, 0x402C6420, 0x00000002, 0x002C6485, 0x402C6420, 0x00000002, + 0x002C6487, 0x002C6486, 0x00000002, 0x002C6683, 0x402C6620, 0x00000002, + 0x002C6685, 0x402C6620, 0x00000002, 0x002C6687, 0x002C6686, 0x00000002, + 0x002D2483, 0x402D2420, 0x00000002, 0x002D2485, 0x402D2420, 0x00000002, + 0x002D2487, 0x002D2486, 0x00000002, 0x002E2483, 0x402E2420, 0x00000002, + 0x002E2485, 0x402E2420, 0x00000002, 0x002E2487, 0x002E2486, 0x00000002, + 0x002EA083, 0x402EA020, 0x00000002, 0x002EA085, 0x402EA020, 0x00000002, + 0x002EA087, 0x002EA086, 0x00000002, 0x002FE883, 0x402FE820, 0x00000002, + 0x002FE885, 0x402FE820, 0x00000002, 0x002FE887, + // Block 242, offset 0x3c80 + 0x002FE886, 0x00000002, 0x00302E83, 0x40302E20, 0x00000002, 0x00302E85, + 0x40302E20, 0x00000002, 0x00302E87, 0x00302E86, 0x00000002, 0x00312C83, + 0x40312C20, 0x00000002, 0x00312C85, 0x40312C20, 0x00000002, 0x00312C87, + 0x00312C86, 0x00000002, 0x402EE420, 0xAE603C02, 0x00000002, 0x002EE483, + 0xAE603C02, 0x00000002, 0x402EE420, 0xAD806802, 0x00000002, 0x002EE483, + 0xAD806802, 0x00000002, 0x40306E20, 0xAD806802, 0x00000002, 0x00306E83, + 0xAD806802, 0x00000002, 0x402C0820, 0xAE603702, 0x00000002, 0x002C0883, + 0xAE603702, 0x00000002, 0x402C0820, 0xAE603C02, 0x00000002, 0x002C0883, + 0xAE603C02, 0x00000002, 0x402D0620, 0xAE603C02, 0x00000002, 0x002D0683, + 0xAE603C02, 0x00000002, 0x402D0620, 0xAE605B02, 0x00000002, 0x002D0683, + 0xAE605B02, 0x00000002, 0x402DCA20, 0xAE604702, + // Block 243, offset 0x3cc0 + 0x00000002, 0x002DCA83, 0xAE604702, 0x00000002, 0x402F2A20, 0xAE603C02, + 0x00000002, 0x002F2A83, 0xAE603C02, 0x00000002, 0x402F2A20, 0xAE604E02, + 0x00000002, 0x002F2A83, 0xAE604E02, 0x00000002, 0x402F2A20, 0xAE605B02, + 0x00000002, 0x002F2A83, 0xAE605B02, 0x00000002, 0x402F2A20, 0xAD806802, + 0x00000002, 0x002F2A83, 0xAD806802, 0x00000002, 0x4030BC20, 0xAE604702, + 0x00000002, 0x0030BC83, 0xAE604702, 0x00000002, 0x4030BC20, 0xAE604E02, + 0x00000002, 0x0030BC83, 0xAE604E02, 0x00000002, 0x4030BC20, 0xAD806802, + 0x00000002, 0x0030BC83, 0xAD806802, 0x00000002, 0x40320E20, 0xAE604E02, + 0x00000002, 0x00320E83, 0xAE604E02, 0x00000003, 0x0004B084, 0x029C1284, + 0x0004B29F, 0x00000003, 0x0004B084, 0x029D1884, 0x0004B29F, 0x00000003, + 0x0004B084, 0x02A5BA84, 0x0004B29F, 0x00000003, + // Block 244, offset 0x3d00 + 0x0004B084, 0x02B71284, 0x0004B29F, 0x00000003, 0x0004B084, 0x02C4A684, + 0x0004B29F, 0x00000003, 0x0004B084, 0x02CAAE84, 0x0004B29F, 0x00000003, + 0x0004B084, 0x02CE5884, 0x0004B29F, 0x00000003, 0x0004B084, 0x02E17284, + 0x0004B29F, 0x00000003, 0x0004B084, 0x02EDAE84, 0x0004B29F, 0x00000002, + 0x0065768E, 0x0065768F, 0x00000002, 0x0065768E, 0x00657691, 0x00000002, + 0x00657690, 0x0065768F, 0x00000002, 0x00657690, 0x00657691, 0x00000002, + 0x0065768E, 0x0065828F, 0x00000002, 0x0065768E, 0x00658291, 0x00000003, + 0x0065768E, 0x00658291, 0xA0812802, 0x00000002, 0x0065768E, 0x00658C91, + 0x00000003, 0x0065768E, 0x00658C91, 0xA0812802, 0x00000002, 0x0065768E, + 0x00659691, 0x00000003, 0x0065768E, 0x00659691, 0xA0812802, 0x00000002, + 0x0065768E, 0x0065A091, 0x00000002, 0x0065768E, + // Block 245, offset 0x3d40 + 0x0065AA8F, 0x00000002, 0x0065768E, 0x0065AA91, 0x00000003, 0x0065768E, + 0x0065AA91, 0xA0812802, 0x00000003, 0x0065768E, 0x0065AA91, 0xA0812902, + 0x00000002, 0x0065768E, 0x0065B491, 0x00000002, 0x0065768E, 0x0065BE8F, + 0x00000002, 0x0065768E, 0x0065BE91, 0x00000002, 0x0065768E, 0x0065C68F, + 0x00000002, 0x0065768E, 0x0065C691, 0x00000002, 0x0065768E, 0x0065D08F, + 0x00000002, 0x0065768E, 0x0065D091, 0x00000003, 0x0065768E, 0x0065D091, + 0xA0812802, 0x00000002, 0x0065788E, 0x0065788F, 0x00000002, 0x0065788E, + 0x00657891, 0x00000002, 0x00657890, 0x0065788F, 0x00000002, 0x00657890, + 0x00657891, 0x00000002, 0x0065788E, 0x00658491, 0x00000003, 0x0065788E, + 0x00658491, 0xA0812802, 0x00000002, 0x0065788E, 0x00658E8F, 0x00000002, + 0x0065788E, 0x00658E91, 0x00000003, 0x0065788E, + // Block 246, offset 0x3d80 + 0x00658E91, 0xA0812802, 0x00000002, 0x0065788E, 0x00659891, 0x00000003, + 0x0065788E, 0x00659891, 0xA0812802, 0x00000002, 0x0065788E, 0x0065A291, + 0x00000002, 0x0065788E, 0x0065AC8F, 0x00000002, 0x0065788E, 0x0065AC91, + 0x00000003, 0x0065788E, 0x0065AC91, 0xA0812802, 0x00000003, 0x0065788E, + 0x0065AC91, 0xA0812902, 0x00000002, 0x0065788E, 0x0065B691, 0x00000002, + 0x0065788E, 0x0065C88F, 0x00000002, 0x0065788E, 0x0065C891, 0x00000002, + 0x0065788E, 0x0065D291, 0x00000003, 0x0065788E, 0x0065D291, 0xA0812802, + 0x00000002, 0x00657A8E, 0x00657A8F, 0x00000002, 0x00657A8E, 0x00657A91, + 0x00000002, 0x00657A90, 0x00657A8F, 0x00000002, 0x00657A90, 0x00657A91, + 0x00000003, 0x00657A8E, 0x00657A91, 0xA0812802, 0x00000003, 0x00657A90, + 0x00657A8F, 0xA0812802, 0x00000003, 0x00657A90, + // Block 247, offset 0x3dc0 + 0x00657A91, 0xA0812802, 0x00000004, 0x00657A90, 0x00657A91, 0xA0812802, + 0xA0812802, 0x00000002, 0x00657A8E, 0x0065868F, 0x00000002, 0x00657A8E, + 0x00658691, 0x00000003, 0x00657A8E, 0x00658691, 0xA0812802, 0x00000002, + 0x00657A8E, 0x0065908F, 0x00000002, 0x00657A8E, 0x00659091, 0x00000003, + 0x00657A8E, 0x00659091, 0xA0812802, 0x00000002, 0x00657A8E, 0x00659A8F, + 0x00000002, 0x00657A8E, 0x00659A91, 0x00000003, 0x00657A8E, 0x00659A91, + 0xA0812802, 0x00000002, 0x00657A8E, 0x0065A48F, 0x00000002, 0x00657A8E, + 0x0065A491, 0x00000002, 0x00657A8E, 0x0065AE8F, 0x00000002, 0x00657A8E, + 0x0065AE91, 0x00000003, 0x00657A8E, 0x0065AE91, 0xA0812802, 0x00000003, + 0x00657A8E, 0x0065AE91, 0xA0812902, 0x00000002, 0x00657A8E, 0x0065B88F, + 0x00000002, 0x00657A8E, 0x0065B891, 0x00000002, + // Block 248, offset 0x3e00 + 0x00657A8E, 0x0065C08F, 0x00000002, 0x00657A8E, 0x0065C091, 0x00000002, + 0x00657A8E, 0x0065CA8F, 0x00000002, 0x00657A8E, 0x0065CA91, 0x00000002, + 0x00657E8E, 0x00657E8F, 0x00000002, 0x00657E8E, 0x00657E91, 0x00000002, + 0x00657E90, 0x00657E8F, 0x00000002, 0x00657E90, 0x00657E91, 0x00000002, + 0x00657E8E, 0x0065888F, 0x00000002, 0x00657E8E, 0x00658891, 0x00000003, + 0x00657E8E, 0x00658891, 0xA0812802, 0x00000002, 0x00657E8E, 0x00659291, + 0x00000003, 0x00657E8E, 0x00659291, 0xA0812802, 0x00000002, 0x00657E8E, + 0x00659C91, 0x00000003, 0x00657E8E, 0x00659C91, 0xA0812802, 0x00000002, + 0x00657E8E, 0x0065A691, 0x00000002, 0x00657E8E, 0x0065B08F, 0x00000002, + 0x00657E8E, 0x0065B091, 0x00000003, 0x00657E8E, 0x0065B091, 0xA0812802, + 0x00000003, 0x00657E8E, 0x0065B091, 0xA0812902, + // Block 249, offset 0x3e40 + 0x00000002, 0x00657E8E, 0x0065BA91, 0x00000002, 0x00657E8E, 0x0065CC8F, + 0x00000002, 0x00657E8E, 0x0065CC91, 0x00000002, 0x00657E8E, 0x0065D491, + 0x00000003, 0x00657E8E, 0x0065D491, 0xA0812802, 0x00000002, 0x0065808E, + 0x0065808F, 0x00000002, 0x0065808E, 0x00658091, 0x00000002, 0x00658090, + 0x0065808F, 0x00000002, 0x00658090, 0x00658091, 0x00000002, 0x0065808E, + 0x00658A91, 0x00000003, 0x0065808E, 0x00658A91, 0xA0812802, 0x00000002, + 0x0065808E, 0x00659491, 0x00000003, 0x0065808E, 0x00659491, 0xA0812802, + 0x00000002, 0x0065808E, 0x00659E8F, 0x00000002, 0x0065808E, 0x00659E91, + 0x00000003, 0x0065808E, 0x00659E91, 0xA0812802, 0x00000002, 0x0065808E, + 0x0065A891, 0x00000002, 0x0065808E, 0x0065B28F, 0x00000002, 0x0065808E, + 0x0065B291, 0x00000003, 0x0065808E, 0x0065B291, + // Block 250, offset 0x3e80 + 0xA0812802, 0x00000003, 0x0065808E, 0x0065B291, 0xA0812902, 0x00000002, + 0x0065808E, 0x0065BC91, 0x00000002, 0x0065808E, 0x0065C48F, 0x00000002, + 0x0065808E, 0x0065C491, 0x00000002, 0x0065808E, 0x0065CE8F, 0x00000002, + 0x0065808E, 0x0065CE91, 0x00000002, 0x0065808E, 0x0065D691, 0x00000003, + 0x0065808E, 0x0065D691, 0xA0812802, 0x00000002, 0x00658290, 0x0065828F, + 0x00000002, 0x00658290, 0x00658291, 0x00000003, 0x0065848F, 0x00658291, + 0xA0812802, 0x00000002, 0x00658490, 0x00658491, 0x00000003, 0x00658490, + 0x00658491, 0xA0812802, 0x00000004, 0x00658490, 0x00658491, 0xA0812802, + 0xA0812802, 0x00000002, 0x00658690, 0x0065868F, 0x00000002, 0x00658690, + 0x00658691, 0x00000003, 0x00658690, 0x0065868F, 0xA0812802, 0x00000003, + 0x00658690, 0x00658691, 0xA0812802, 0x00000004, + // Block 251, offset 0x3ec0 + 0x00658690, 0x00658691, 0xA0812802, 0xA0812802, 0x00000002, 0x00658890, + 0x0065888F, 0x00000002, 0x00658890, 0x00658891, 0x00000003, 0x00658A8F, + 0x00658891, 0xA0812802, 0x00000002, 0x00658A90, 0x00658A91, 0x00000003, + 0x00658A90, 0x00658A91, 0xA0812802, 0x00000004, 0x00658A90, 0x00658A91, + 0xA0812802, 0xA0812802, 0x00000002, 0x40658A21, 0x00659E91, 0x00000002, + 0x00658C90, 0x00658C91, 0x00000003, 0x00658C90, 0x00658C91, 0xA0812802, + 0x00000004, 0x00658C90, 0x00658C91, 0xA0812802, 0xA0812802, 0x00000002, + 0x00658E90, 0x00658E8F, 0x00000002, 0x00658E90, 0x00658E91, 0x00000003, + 0x00658E90, 0x00658E8F, 0xA0812802, 0x00000003, 0x00658E90, 0x00658E91, + 0xA0812802, 0x00000004, 0x00658E90, 0x00658E91, 0xA0812802, 0xA0812802, + 0x00000002, 0x00659090, 0x0065908F, 0x00000002, + // Block 252, offset 0x3f00 + 0x00659090, 0x00659091, 0x00000003, 0x00659090, 0x0065908F, 0xA0812802, + 0x00000003, 0x00659090, 0x00659091, 0xA0812802, 0x00000004, 0x00659090, + 0x00659091, 0xA0812802, 0xA0812802, 0x00000002, 0x00659290, 0x00659291, + 0x00000003, 0x00659290, 0x00659291, 0xA0812802, 0x00000004, 0x00659290, + 0x00659291, 0xA0812802, 0xA0812802, 0x00000002, 0x00659490, 0x00659491, + 0x00000003, 0x00659490, 0x00659491, 0xA0812802, 0x00000004, 0x00659490, + 0x00659491, 0xA0812802, 0xA0812802, 0x00000002, 0x00659690, 0x00659691, + 0x00000003, 0x00659690, 0x00659691, 0xA0812802, 0x00000004, 0x00659690, + 0x00659691, 0xA0812802, 0xA0812802, 0x00000002, 0x00659890, 0x00659891, + 0x00000003, 0x00659890, 0x00659891, 0xA0812802, 0x00000004, 0x00659890, + 0x00659891, 0xA0812802, 0xA0812802, 0x00000002, + // Block 253, offset 0x3f40 + 0x00659A90, 0x00659A8F, 0x00000002, 0x00659A90, 0x00659A91, 0x00000003, + 0x00659A90, 0x00659A8F, 0xA0812802, 0x00000003, 0x00659A90, 0x00659A91, + 0xA0812802, 0x00000004, 0x00659A90, 0x00659A91, 0xA0812802, 0xA0812802, + 0x00000002, 0x00659C90, 0x00659C91, 0x00000003, 0x00659C90, 0x00659C91, + 0xA0812802, 0x00000004, 0x00659C90, 0x00659C91, 0xA0812802, 0xA0812802, + 0x00000002, 0x00659E90, 0x00659E8F, 0x00000002, 0x00659E90, 0x00659E91, + 0x00000003, 0x00659E90, 0x00659E8F, 0xA0812802, 0x00000003, 0x00659E90, + 0x00659E91, 0xA0812802, 0x00000004, 0x00659E90, 0x00659E91, 0xA0812802, + 0xA0812802, 0x00000002, 0x0065A090, 0x0065A091, 0x00000002, 0x0065A290, + 0x0065A291, 0x00000002, 0x0065A490, 0x0065A48F, 0x00000002, 0x0065A490, + 0x0065A491, 0x00000002, 0x0065A690, 0x0065A691, + // Block 254, offset 0x3f80 + 0x00000002, 0x0065A890, 0x0065A891, 0x00000002, 0x0065AA90, 0x0065AA8F, + 0x00000002, 0x0065AA90, 0x0065AA91, 0x00000003, 0x0065AA90, 0x0065AA8F, + 0xA0812802, 0x00000003, 0x0065AA90, 0x0065AA91, 0xA0812802, 0x00000004, + 0x0065AA90, 0x0065AA91, 0xA0812802, 0xA0812802, 0x00000003, 0x0065AA90, + 0x0065AA91, 0xA0812902, 0x00000004, 0x0065AA90, 0x0065AA91, 0xA0812902, + 0xA0812802, 0x00000002, 0x0065AC90, 0x0065AC8F, 0x00000002, 0x0065AC90, + 0x0065AC91, 0x00000003, 0x0065AC90, 0x0065AC8F, 0xA0812802, 0x00000003, + 0x0065AC90, 0x0065AC91, 0xA0812802, 0x00000004, 0x0065AC90, 0x0065AC91, + 0xA0812802, 0xA0812802, 0x00000003, 0x0065AC90, 0x0065AC91, 0xA0812902, + 0x00000004, 0x0065AC90, 0x0065AC91, 0xA0812902, 0xA0812802, 0x00000002, + 0x0065AE90, 0x0065AE8F, 0x00000002, 0x0065AE90, + // Block 255, offset 0x3fc0 + 0x0065AE91, 0x00000003, 0x0065AE90, 0x0065AE8F, 0xA0812802, 0x00000003, + 0x0065AE90, 0x0065AE91, 0xA0812802, 0x00000004, 0x0065AE90, 0x0065AE91, + 0xA0812802, 0xA0812802, 0x00000003, 0x0065AE90, 0x0065AE91, 0xA0812902, + 0x00000004, 0x0065AE90, 0x0065AE91, 0xA0812902, 0xA0812802, 0x00000002, + 0x0065B090, 0x0065B08F, 0x00000002, 0x0065B090, 0x0065B091, 0x00000003, + 0x0065B090, 0x0065B08F, 0xA0812802, 0x00000003, 0x0065B090, 0x0065B091, + 0xA0812802, 0x00000004, 0x0065B090, 0x0065B091, 0xA0812802, 0xA0812802, + 0x00000003, 0x0065B090, 0x0065B091, 0xA0812902, 0x00000004, 0x0065B090, + 0x0065B091, 0xA0812902, 0xA0812802, 0x00000002, 0x0065B290, 0x0065B28F, + 0x00000002, 0x0065B290, 0x0065B291, 0x00000003, 0x0065B290, 0x0065B28F, + 0xA0812802, 0x00000003, 0x0065B290, 0x0065B291, + // Block 256, offset 0x4000 + 0xA0812802, 0x00000004, 0x0065B290, 0x0065B291, 0xA0812802, 0xA0812802, + 0x00000003, 0x0065B290, 0x0065B291, 0xA0812902, 0x00000004, 0x0065B290, + 0x0065B291, 0xA0812902, 0xA0812802, 0x00000002, 0x0065B490, 0x0065B491, + 0x00000002, 0x0065B690, 0x0065B691, 0x00000002, 0x0065B890, 0x0065B88F, + 0x00000002, 0x0065B890, 0x0065B891, 0x00000002, 0x0065BA90, 0x0065BA91, + 0x00000002, 0x0065BC90, 0x0065BC91, 0x00000002, 0x0065BE90, 0x0065BE8F, + 0x00000002, 0x0065BE90, 0x0065BE91, 0x00000002, 0x0065C090, 0x0065C08F, + 0x00000002, 0x0065C090, 0x0065C091, 0x00000002, 0x0065C490, 0x0065C48F, + 0x00000002, 0x0065C490, 0x0065C491, 0x00000002, 0x4065C421, 0x0065C891, + 0x00000002, 0x0065C690, 0x0065C68F, 0x00000002, 0x0065C690, 0x0065C691, + 0x00000002, 0x0065C890, 0x0065C88F, 0x00000002, + // Block 257, offset 0x4040 + 0x0065C890, 0x0065C891, 0x00000002, 0x0065CA90, 0x0065CA8F, 0x00000002, + 0x0065CA90, 0x0065CA91, 0x00000002, 0x0065CC90, 0x0065CC8F, 0x00000002, + 0x0065CC90, 0x0065CC91, 0x00000002, 0x0065CE90, 0x0065CE8F, 0x00000002, + 0x0065CE90, 0x0065CE91, 0x00000002, 0x0065D090, 0x0065D08F, 0x00000002, + 0x0065D090, 0x0065D091, 0x00000003, 0x0065D090, 0x0065D08F, 0xA0812802, + 0x00000003, 0x0065D090, 0x0065D091, 0xA0812802, 0x00000004, 0x0065D090, + 0x0065D091, 0xA0812802, 0xA0812802, 0x00000002, 0x0065D290, 0x0065D291, + 0x00000003, 0x0065D290, 0x0065D291, 0xA0812802, 0x00000004, 0x0065D290, + 0x0065D291, 0xA0812802, 0xA0812802, 0x00000002, 0x0065D490, 0x0065D491, + 0x00000003, 0x0065D490, 0x0065D491, 0xA0812802, 0x00000004, 0x0065D490, + 0x0065D491, 0xA0812802, 0xA0812802, 0x00000002, + // Block 258, offset 0x4080 + 0x0065D690, 0x0065D691, 0x00000003, 0x0065D690, 0x0065D691, 0xA0812802, + 0x00000004, 0x0065D690, 0x0065D691, 0xA0812802, 0xA0812802, 0x00000002, + 0x0065D890, 0x0065D891, 0x00000002, 0x02B24E9C, 0x02D6C69C, 0x00000002, + 0x02BCE69C, 0x02C4209C, 0x00000002, 0x02CC1C9C, 0x02D9769C, 0x00000002, + 0x02CC5A9C, 0x02A9189C, 0x00000003, 0x00032683, 0x404FDA20, 0x40032620, + 0x00000003, 0x404FD821, 0x82092817, 0x404FA420, 0x00000003, 0x404FD821, + 0x82092817, 0x404FA620, 0x00000003, 0x404FD821, 0x82092817, 0x404FA820, + 0x00000003, 0x404FD821, 0x82092817, 0x404FAA20, 0x00000003, 0x404FD821, + 0x82092817, 0x404FAC20, 0x00000003, 0x404FD821, 0x82092817, 0x404FAE20, + 0x00000003, 0x404FD821, 0x82092817, 0x404FB020, 0x00000003, 0x404FD821, + 0x82092817, 0x404FB220, 0x00000003, 0x404FD821, + // Block 259, offset 0x40c0 + 0x82092817, 0x404FB420, 0x00000003, 0x404FD821, 0x82092817, 0x404FB620, + 0x00000003, 0x404FD821, 0x82092817, 0x404FB820, 0x00000003, 0x404FD821, + 0x82092817, 0x404FBA20, 0x00000003, 0x404FD821, 0x82092817, 0x404FBC20, + 0x00000003, 0x404FD821, 0x82092817, 0x404FBE20, 0x00000003, 0x404FD821, + 0x82092817, 0x404FC020, 0x00000003, 0x404FD821, 0x82092817, 0x404FC220, + 0x00000003, 0x404FD821, 0x82092817, 0x404FC420, 0x00000003, 0x404FD821, + 0x82092817, 0x404FC620, 0x00000003, 0x404FD821, 0x82092817, 0x404FC820, + 0x00000003, 0x404FD821, 0x82092817, 0x404FCA20, 0x00000003, 0x404FD821, + 0x82092817, 0x404FCC20, 0x00000003, 0x404FD821, 0x82092817, 0x404FCE20, + 0x00000003, 0x404FD821, 0x82092817, 0x404FD020, 0x00000003, 0x404FD821, + 0x82092817, 0x404FD220, 0x00000003, 0x404FD821, + // Block 260, offset 0x4100 + 0x82092817, 0x404FD420, 0x00000003, 0x404FD821, 0x82092817, 0x404FD620, + 0x00000003, 0x404FD821, 0x82092817, 0x404FD820, 0x00000003, 0x404FD821, + 0x82092817, 0x404FDA20, 0x00000003, 0x404FD821, 0x82092817, 0x404FDA20, + 0x00000003, 0x404FD821, 0x82092817, 0x404FDC20, 0x00000003, 0x404FD821, + 0x82092817, 0x404FDC20, 0x00000003, 0x404FD821, 0x82092817, 0x404FDC20, + 0x00000003, 0x404FD821, 0x82092817, 0x404FDE20, 0x00000003, 0x404FD821, + 0x82092817, 0x404FDE20, 0x00000003, 0x404FD821, 0x82092817, 0x404FE020, + 0x00000003, 0x404FD821, 0x82092817, 0x404FE220, 0x00000003, 0x404FD821, + 0x82092817, 0x404FE420, 0x00000003, 0x404FD821, 0x82092817, 0x404FE620, + 0x00000003, 0x404FD821, 0x82092817, 0x404FE820, 0x00000002, 0x404FE820, + 0x40500E20, 0x00000002, 0x404FE821, 0x40501020, + // Block 261, offset 0x4140 + 0x00000002, 0x404FE821, 0x40501220, 0x00000002, 0x404FE821, 0x40501820, + 0x00000003, 0x004FE8A3, 0x40501820, 0x404FA420, 0x00000002, 0x404FE821, + 0x40501A20, 0x00000003, 0x004FE8A3, 0x40501A20, 0x404FDC20, 0x00000002, + 0x404FE821, 0x40502620, 0x00000002, 0x404FE821, 0x40502820, 0x00000002, + 0x404FE821, 0x40502A20, 0x00000002, 0x004FE8A3, 0x40502A20, 0x00000002, + 0x404FE821, 0x40502C20, 0x00000002, 0x4062AC21, 0x4063A820, 0x00000002, + 0x4062AC22, 0x4063A820, 0x00000002, 0x4062AC23, 0x4063A820, 0x00000002, + 0x4062AC24, 0x4063A820, 0x00000002, 0x4062AC25, 0x4063A820, 0x00000002, + 0x4062AC26, 0x4063A820, 0x00000002, 0x4062AC27, 0x4063A820, 0x00000002, + 0x4062AC28, 0x4063A820, 0x00000002, 0x4062AC29, 0x4063A820, 0x00000002, + 0x4062AC2A, 0x4063A820, 0x00000002, 0x4062AC2B, + // Block 262, offset 0x4180 + 0x4063A820, 0x00000002, 0x4062AC2C, 0x4063A820, 0x00000002, 0x4062AC2D, + 0x4063A820, 0x00000002, 0x4062AC2E, 0x4063A820, 0x00000002, 0x4062AC2F, + 0x4063A820, 0x00000002, 0x4062AC30, 0x4063A820, 0x00000002, 0x4062AC31, + 0x4063A820, 0x00000002, 0x4062AC32, 0x4063A820, 0x00000002, 0x4062AC33, + 0x4063A820, 0x00000002, 0x4062AC34, 0x4063A820, 0x00000002, 0x4062AC35, + 0x4063A820, 0x00000002, 0x4062AC36, 0x4063A820, 0x00000002, 0x4062AC37, + 0x4063A820, 0x00000002, 0x4062AC38, 0x4063A820, 0x00000002, 0x4062AC39, + 0x4063A820, 0x00000002, 0x4062AC3A, 0x4063A820, 0x00000002, 0x4062AC3B, + 0x4063A820, 0x00000002, 0x4062AC3C, 0x4063A820, 0x00000002, 0x4062AC3D, + 0x4063A820, 0x00000002, 0x4062AC3E, 0x4063A820, 0x00000002, 0x4062AC3F, + 0x4063A820, 0x00000002, 0x4062AC40, 0x4063A820, + // Block 263, offset 0x41c0 + 0x00000002, 0x4062AC41, 0x4063A820, 0x00000002, 0x4062AC42, 0x4063A820, + 0x00000002, 0x4062AC43, 0x4063A820, 0x00000002, 0x4062AC44, 0x4063A820, + 0x00000002, 0x4062AC45, 0x4063A820, 0x00000002, 0x4062AC46, 0x4063A820, + 0x00000002, 0x4062AC47, 0x4063A820, 0x00000002, 0x4062AC48, 0x4063A820, + 0x00000002, 0x4062AC49, 0x4063A820, 0x00000002, 0x4062AC4A, 0x4063A820, + 0x00000002, 0x4062AC4B, 0x4063A820, 0x00000002, 0x4062AC4C, 0x4063A820, + 0x00000003, 0x4062AC21, 0x4063A820, 0x40646420, 0x00000003, 0x4062AC22, + 0x4063A820, 0x40646420, 0x00000003, 0x4062AC23, 0x4063A820, 0x40646420, + 0x00000003, 0x4062AC24, 0x4063A820, 0x40646420, 0x00000003, 0x4062AC25, + 0x4063A820, 0x40646420, 0x00000003, 0x4062AC26, 0x4063A820, 0x40646420, + 0x00000003, 0x4062AC27, 0x4063A820, 0x40646420, + // Block 264, offset 0x4200 + 0x00000003, 0x4062AC28, 0x4063A820, 0x40646420, 0x00000003, 0x4062AC29, + 0x4063A820, 0x40646420, 0x00000003, 0x4062AC2A, 0x4063A820, 0x40646420, + 0x00000003, 0x4062AC2B, 0x4063A820, 0x40646420, 0x00000003, 0x4062AC2C, + 0x4063A820, 0x40646420, 0x00000003, 0x4062AC2D, 0x4063A820, 0x40646420, + 0x00000003, 0x4062AC2E, 0x4063A820, 0x40646420, 0x00000003, 0x4062AC2F, + 0x4063A820, 0x40646420, 0x00000003, 0x4062AC30, 0x4063A820, 0x40646420, + 0x00000003, 0x4062AC31, 0x4063A820, 0x40646420, 0x00000003, 0x4062AC21, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC22, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062AC23, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC24, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC25, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062AC26, 0x4063A820, 0x40646A20, + // Block 265, offset 0x4240 + 0x00000003, 0x4062AC27, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC28, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC29, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062AC2A, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC2B, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC2C, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062AC2D, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC2E, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC2F, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062AC30, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC31, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC32, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062AC33, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC34, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC35, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062AC36, 0x4063A820, 0x40646A20, + // Block 266, offset 0x4280 + 0x00000003, 0x4062AC37, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC38, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC39, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062AC3A, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC3B, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC3C, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062AC3D, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC3E, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC3F, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062AC40, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC41, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC42, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062AC43, 0x4063A820, 0x40646A20, 0x00000003, 0x4062AC21, + 0x4063A820, 0x40647220, 0x00000003, 0x4062AC22, 0x4063A820, 0x40647220, + 0x00000003, 0x4062AC23, 0x4063A820, 0x40647220, + // Block 267, offset 0x42c0 + 0x00000003, 0x4062AC24, 0x4063A820, 0x40647220, 0x00000003, 0x4062AC25, + 0x4063A820, 0x40647220, 0x00000003, 0x4062AC26, 0x4063A820, 0x40647220, + 0x00000003, 0x4062AC27, 0x4063A820, 0x40647220, 0x00000003, 0x4062AC28, + 0x4063A820, 0x40647220, 0x00000003, 0x4062AC29, 0x4063A820, 0x40647220, + 0x00000003, 0x4062AC2A, 0x4063A820, 0x40647220, 0x00000003, 0x4062AC2B, + 0x4063A820, 0x40647220, 0x00000003, 0x4062AC2C, 0x4063A820, 0x40647220, + 0x00000003, 0x4062AC2D, 0x4063A820, 0x40647220, 0x00000003, 0x4062AC2E, + 0x4063A820, 0x40647220, 0x00000003, 0x4062AC2F, 0x4063A820, 0x40647220, + 0x00000003, 0x4062AC30, 0x4063A820, 0x40647220, 0x00000003, 0x4062AC21, + 0x4063A820, 0x40648220, 0x00000003, 0x4062AC22, 0x4063A820, 0x40648220, + 0x00000003, 0x4062AC23, 0x4063A820, 0x40648220, + // Block 268, offset 0x4300 + 0x00000003, 0x4062AC24, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC25, + 0x4063A820, 0x40648220, 0x00000003, 0x4062AC26, 0x4063A820, 0x40648220, + 0x00000003, 0x4062AC27, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC28, + 0x4063A820, 0x40648220, 0x00000003, 0x4062AC29, 0x4063A820, 0x40648220, + 0x00000003, 0x4062AC2A, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC2B, + 0x4063A820, 0x40648220, 0x00000003, 0x4062AC2C, 0x4063A820, 0x40648220, + 0x00000003, 0x4062AC2D, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC2E, + 0x4063A820, 0x40648220, 0x00000003, 0x4062AC2F, 0x4063A820, 0x40648220, + 0x00000003, 0x4062AC30, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC31, + 0x4063A820, 0x40648220, 0x00000003, 0x4062AC32, 0x4063A820, 0x40648220, + 0x00000003, 0x4062AC33, 0x4063A820, 0x40648220, + // Block 269, offset 0x4340 + 0x00000003, 0x4062AC34, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC35, + 0x4063A820, 0x40648220, 0x00000003, 0x4062AC36, 0x4063A820, 0x40648220, + 0x00000003, 0x4062AC37, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC38, + 0x4063A820, 0x40648220, 0x00000003, 0x4062AC39, 0x4063A820, 0x40648220, + 0x00000003, 0x4062AC3A, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC3B, + 0x4063A820, 0x40648220, 0x00000003, 0x4062AC3C, 0x4063A820, 0x40648220, + 0x00000003, 0x4062AC3D, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC3E, + 0x4063A820, 0x40648220, 0x00000003, 0x4062AC3F, 0x4063A820, 0x40648220, + 0x00000003, 0x4062AC40, 0x4063A820, 0x40648220, 0x00000003, 0x4062AC41, + 0x4063A820, 0x40648220, 0x00000003, 0x4062AC42, 0x4063A820, 0x40648220, + 0x00000003, 0x4062AC43, 0x4063A820, 0x40648220, + // Block 270, offset 0x4380 + 0x00000003, 0x4062AC21, 0x4063A820, 0x40648420, 0x00000003, 0x4062AC22, + 0x4063A820, 0x40648420, 0x00000003, 0x4062AC23, 0x4063A820, 0x40648420, + 0x00000003, 0x4062AC24, 0x4063A820, 0x40648420, 0x00000003, 0x4062AC25, + 0x4063A820, 0x40648420, 0x00000003, 0x4062AC26, 0x4063A820, 0x40648420, + 0x00000003, 0x4062AC27, 0x4063A820, 0x40648420, 0x00000003, 0x4062AC21, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC22, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062AC23, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC24, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC25, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062AC26, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC27, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC28, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062AC29, 0x4063A820, 0x40648C20, + // Block 271, offset 0x43c0 + 0x00000003, 0x4062AC2A, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC2B, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC2C, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062AC2D, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC2E, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC2F, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062AC30, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC31, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC32, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062AC33, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC34, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC35, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062AC36, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC37, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC38, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062AC39, 0x4063A820, 0x40648C20, + // Block 272, offset 0x4400 + 0x00000003, 0x4062AC3A, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC3B, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC3C, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062AC3D, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC3E, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC3F, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062AC40, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC41, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC42, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062AC43, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC44, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC45, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062AC46, 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC47, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062AC48, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062AC49, 0x4063A820, 0x40648C20, + // Block 273, offset 0x4440 + 0x00000002, 0x4062AC21, 0x4063AA20, 0x00000002, 0x4062AC22, 0x4063AA20, + 0x00000002, 0x4062AC23, 0x4063AA20, 0x00000002, 0x4062AC24, 0x4063AA20, + 0x00000002, 0x4062AC25, 0x4063AA20, 0x00000002, 0x4062AC26, 0x4063AA20, + 0x00000002, 0x4062AC27, 0x4063AA20, 0x00000002, 0x4062AC28, 0x4063AA20, + 0x00000002, 0x4062AC29, 0x4063AA20, 0x00000002, 0x4062AC2A, 0x4063AA20, + 0x00000002, 0x4062AC2B, 0x4063AA20, 0x00000002, 0x4062AC2C, 0x4063AA20, + 0x00000002, 0x4062AC2D, 0x4063AA20, 0x00000002, 0x4062AC2E, 0x4063AA20, + 0x00000002, 0x4062AC2F, 0x4063AA20, 0x00000002, 0x4062AC30, 0x4063AA20, + 0x00000002, 0x4062AC31, 0x4063AA20, 0x00000002, 0x4062AC32, 0x4063AA20, + 0x00000002, 0x4062AC33, 0x4063AA20, 0x00000002, 0x4062AC34, 0x4063AA20, + 0x00000002, 0x4062AC35, 0x4063AA20, 0x00000002, + // Block 274, offset 0x4480 + 0x4062AC36, 0x4063AA20, 0x00000002, 0x4062AC37, 0x4063AA20, 0x00000002, + 0x4062AC38, 0x4063AA20, 0x00000002, 0x4062AC39, 0x4063AA20, 0x00000002, + 0x4062AC3A, 0x4063AA20, 0x00000003, 0x4062AC21, 0x4063AA20, 0x40646420, + 0x00000003, 0x4062AC22, 0x4063AA20, 0x40646420, 0x00000003, 0x4062AC21, + 0x4063AA20, 0x40648C20, 0x00000003, 0x4062AC22, 0x4063AA20, 0x40648C20, + 0x00000003, 0x4062AC23, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062AC24, + 0x4063AA20, 0x40648C20, 0x00000003, 0x4062AC25, 0x4063AA20, 0x40648C20, + 0x00000003, 0x4062AC26, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062AC21, + 0x4063AC20, 0x40646420, 0x00000002, 0x4062AC21, 0x4063B020, 0x00000002, + 0x4062AC22, 0x4063B020, 0x00000002, 0x4062AC23, 0x4063B020, 0x00000002, + 0x4062AC24, 0x4063B020, 0x00000002, 0x4062AC25, + // Block 275, offset 0x44c0 + 0x4063B020, 0x00000002, 0x4062AC26, 0x4063B020, 0x00000002, 0x4062AC27, + 0x4063B020, 0x00000002, 0x4062AC28, 0x4063B020, 0x00000002, 0x4062AC29, + 0x4063B020, 0x00000002, 0x4062AC2A, 0x4063B020, 0x00000002, 0x4062AC2B, + 0x4063B020, 0x00000002, 0x4062AC2C, 0x4063B020, 0x00000002, 0x4062AC2D, + 0x4063B020, 0x00000002, 0x4062AC2E, 0x4063B020, 0x00000002, 0x4062AC2F, + 0x4063B020, 0x00000002, 0x4062AC30, 0x4063B020, 0x00000002, 0x4062AC31, + 0x4063B020, 0x00000002, 0x4062AC32, 0x4063B020, 0x00000002, 0x4062AC33, + 0x4063B020, 0x00000002, 0x4062AC34, 0x4063B020, 0x00000002, 0x4062AC35, + 0x4063B020, 0x00000002, 0x4062AC36, 0x4063B020, 0x00000002, 0x4062AC37, + 0x4063B020, 0x00000002, 0x4062AC38, 0x4063B020, 0x00000002, 0x4062AC39, + 0x4063B020, 0x00000002, 0x4062AC3A, 0x4063B020, + // Block 276, offset 0x4500 + 0x00000002, 0x4062AC3B, 0x4063B020, 0x00000002, 0x4062AC3C, 0x4063B020, + 0x00000002, 0x4062AC3D, 0x4063B020, 0x00000002, 0x4062AC3E, 0x4063B020, + 0x00000003, 0x4062AC21, 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC22, + 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC23, 0x4063B020, 0x40646A20, + 0x00000003, 0x4062AC24, 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC25, + 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC26, 0x4063B020, 0x40646A20, + 0x00000003, 0x4062AC27, 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC28, + 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC29, 0x4063B020, 0x40646A20, + 0x00000003, 0x4062AC2A, 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC2B, + 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC2C, 0x4063B020, 0x40646A20, + 0x00000003, 0x4062AC2D, 0x4063B020, 0x40646A20, + // Block 277, offset 0x4540 + 0x00000003, 0x4062AC2E, 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC2F, + 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC30, 0x4063B020, 0x40646A20, + 0x00000003, 0x4062AC31, 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC32, + 0x4063B020, 0x40646A20, 0x00000003, 0x4062AC21, 0x4063B020, 0x40647220, + 0x00000003, 0x4062AC22, 0x4063B020, 0x40647220, 0x00000003, 0x4062AC23, + 0x4063B020, 0x40647220, 0x00000003, 0x4062AC24, 0x4063B020, 0x40647220, + 0x00000003, 0x4062AC25, 0x4063B020, 0x40647220, 0x00000003, 0x4062AC26, + 0x4063B020, 0x40647220, 0x00000003, 0x4062AC27, 0x4063B020, 0x40647220, + 0x00000003, 0x4062AC21, 0x4063B020, 0x40648220, 0x00000003, 0x4062AC22, + 0x4063B020, 0x40648220, 0x00000003, 0x4062AC23, 0x4063B020, 0x40648220, + 0x00000003, 0x4062AC24, 0x4063B020, 0x40648220, + // Block 278, offset 0x4580 + 0x00000003, 0x4062AC25, 0x4063B020, 0x40648220, 0x00000003, 0x4062AC26, + 0x4063B020, 0x40648220, 0x00000003, 0x4062AC27, 0x4063B020, 0x40648220, + 0x00000003, 0x4062AC28, 0x4063B020, 0x40648220, 0x00000003, 0x4062AC29, + 0x4063B020, 0x40648220, 0x00000003, 0x4062AC21, 0x4063B020, 0x40648420, + 0x00000003, 0x4062AC22, 0x4063B020, 0x40648420, 0x00000003, 0x4062AC23, + 0x4063B020, 0x40648420, 0x00000003, 0x4062AC24, 0x4063B020, 0x40648420, + 0x00000003, 0x4062AC25, 0x4063B020, 0x40648420, 0x00000002, 0x4062AC21, + 0x4063B220, 0x00000002, 0x4062AC22, 0x4063B220, 0x00000002, 0x4062AC23, + 0x4063B220, 0x00000003, 0x4062AC21, 0x4063B420, 0x40646420, 0x00000003, + 0x4062AC22, 0x4063B420, 0x40646420, 0x00000003, 0x4062AC23, 0x4063B420, + 0x40646420, 0x00000003, 0x4062AC24, 0x4063B420, + // Block 279, offset 0x45c0 + 0x40646420, 0x00000003, 0x4062AC25, 0x4063B420, 0x40646420, 0x00000003, + 0x4062AC26, 0x4063B420, 0x40646420, 0x00000003, 0x4062AC27, 0x4063B420, + 0x40646420, 0x00000003, 0x4062AC28, 0x4063B420, 0x40646420, 0x00000003, + 0x4062AC29, 0x4063B420, 0x40646420, 0x00000003, 0x4062AC2A, 0x4063B420, + 0x40646420, 0x00000003, 0x4062AC2B, 0x4063B420, 0x40646420, 0x00000003, + 0x4062AC2C, 0x4063B420, 0x40646420, 0x00000003, 0x4062AC2D, 0x4063B420, + 0x40646420, 0x00000003, 0x4062AC21, 0x4063B420, 0x40646A20, 0x00000003, + 0x4062AC22, 0x4063B420, 0x40646A20, 0x00000003, 0x4062AC23, 0x4063B420, + 0x40646A20, 0x00000003, 0x4062AC24, 0x4063B420, 0x40646A20, 0x00000003, + 0x4062AC25, 0x4063B420, 0x40646A20, 0x00000003, 0x4062AC26, 0x4063B420, + 0x40646A20, 0x00000003, 0x4062AC27, 0x4063B420, + // Block 280, offset 0x4600 + 0x40646A20, 0x00000003, 0x4062AC28, 0x4063B420, 0x40646A20, 0x00000003, + 0x4062AC29, 0x4063B420, 0x40646A20, 0x00000003, 0x4062AC2A, 0x4063B420, + 0x40646A20, 0x00000003, 0x4062AC2B, 0x4063B420, 0x40646A20, 0x00000003, + 0x4062AC2C, 0x4063B420, 0x40646A20, 0x00000003, 0x4062AC2D, 0x4063B420, + 0x40646A20, 0x00000003, 0x4062AC2E, 0x4063B420, 0x40646A20, 0x00000003, + 0x4062AC2F, 0x4063B420, 0x40646A20, 0x00000003, 0x4062AC30, 0x4063B420, + 0x40646A20, 0x00000003, 0x4062AC31, 0x4063B420, 0x40646A20, 0x00000003, + 0x4062AC32, 0x4063B420, 0x40646A20, 0x00000003, 0x4062AC33, 0x4063B420, + 0x40646A20, 0x00000003, 0x4062AC34, 0x4063B420, 0x40646A20, 0x00000003, + 0x4062AC21, 0x4063B420, 0x40647220, 0x00000003, 0x4062AC22, 0x4063B420, + 0x40647220, 0x00000003, 0x4062AC23, 0x4063B420, + // Block 281, offset 0x4640 + 0x40647220, 0x00000003, 0x4062AC24, 0x4063B420, 0x40647220, 0x00000003, + 0x4062AC25, 0x4063B420, 0x40647220, 0x00000003, 0x4062AC26, 0x4063B420, + 0x40647220, 0x00000003, 0x4062AC27, 0x4063B420, 0x40647220, 0x00000003, + 0x4062AC28, 0x4063B420, 0x40647220, 0x00000003, 0x4062AC29, 0x4063B420, + 0x40647220, 0x00000003, 0x4062AC21, 0x4063B420, 0x40648220, 0x00000003, + 0x4062AC22, 0x4063B420, 0x40648220, 0x00000003, 0x4062AC23, 0x4063B420, + 0x40648220, 0x00000003, 0x4062AC24, 0x4063B420, 0x40648220, 0x00000003, + 0x4062AC25, 0x4063B420, 0x40648220, 0x00000003, 0x4062AC26, 0x4063B420, + 0x40648220, 0x00000003, 0x4062AC27, 0x4063B420, 0x40648220, 0x00000003, + 0x4062AC28, 0x4063B420, 0x40648220, 0x00000003, 0x4062AC29, 0x4063B420, + 0x40648220, 0x00000003, 0x4062AC2A, 0x4063B420, + // Block 282, offset 0x4680 + 0x40648220, 0x00000003, 0x4062AC2B, 0x4063B420, 0x40648220, 0x00000003, + 0x4062AC2C, 0x4063B420, 0x40648220, 0x00000003, 0x4062AC2D, 0x4063B420, + 0x40648220, 0x00000003, 0x4062AC2E, 0x4063B420, 0x40648220, 0x00000003, + 0x4062AC2F, 0x4063B420, 0x40648220, 0x00000003, 0x4062AC21, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062AC22, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062AC23, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC24, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062AC25, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062AC26, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC27, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062AC28, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062AC29, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC2A, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062AC2B, 0x4063B420, + // Block 283, offset 0x46c0 + 0x40648C20, 0x00000003, 0x4062AC2C, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062AC2D, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC2E, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062AC2F, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062AC30, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC31, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062AC32, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062AC33, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC34, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062AC35, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062AC36, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC37, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062AC38, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062AC39, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC3A, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062AC3B, 0x4063B420, + // Block 284, offset 0x4700 + 0x40648C20, 0x00000003, 0x4062AC3C, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062AC3D, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC3E, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062AC3F, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062AC40, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC41, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062AC42, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062AC43, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC44, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062AC45, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062AC46, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC47, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062AC48, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062AC49, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC4A, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062AC4B, 0x4063B420, + // Block 285, offset 0x4740 + 0x40648C20, 0x00000003, 0x4062AC4C, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062AC4D, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC4E, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062AC4F, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062AC50, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC51, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062AC52, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062AC53, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC54, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062AC55, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062AC56, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC57, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062AC58, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062AC59, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC5A, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062AC5B, 0x4063B420, + // Block 286, offset 0x4780 + 0x40648C20, 0x00000003, 0x4062AC5C, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062AC5D, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC5E, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062AC5F, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062AC60, 0x4063B420, 0x40648C20, 0x00000003, 0x4062AC61, 0x4063B420, + 0x40648C20, 0x00000002, 0x4062AC21, 0x4063B620, 0x00000002, 0x4062AC22, + 0x4063B620, 0x00000002, 0x4062AC23, 0x4063B620, 0x00000002, 0x4062AC24, + 0x4063B620, 0x00000002, 0x4062AC25, 0x4063B620, 0x00000002, 0x4062AC26, + 0x4063B620, 0x00000002, 0x4062AC27, 0x4063B620, 0x00000002, 0x4062AC28, + 0x4063B620, 0x00000002, 0x4062AC29, 0x4063B620, 0x00000002, 0x4062AC2A, + 0x4063B620, 0x00000002, 0x4062AC2B, 0x4063B620, 0x00000002, 0x4062AC2C, + 0x4063B620, 0x00000002, 0x4062AC2D, 0x4063B620, + // Block 287, offset 0x47c0 + 0x00000002, 0x4062AC2E, 0x4063B620, 0x00000002, 0x4062AC2F, 0x4063B620, + 0x00000002, 0x4062AC30, 0x4063B620, 0x00000002, 0x4062AC31, 0x4063B620, + 0x00000002, 0x4062AC32, 0x4063B620, 0x00000002, 0x4062AC33, 0x4063B620, + 0x00000002, 0x4062AC34, 0x4063B620, 0x00000002, 0x4062AC35, 0x4063B620, + 0x00000002, 0x4062AC36, 0x4063B620, 0x00000002, 0x4062AC37, 0x4063B620, + 0x00000002, 0x4062AC38, 0x4063B620, 0x00000002, 0x4062AC39, 0x4063B620, + 0x00000002, 0x4062AC3A, 0x4063B620, 0x00000002, 0x4062AC3B, 0x4063B620, + 0x00000002, 0x4062AC3C, 0x4063B620, 0x00000002, 0x4062AC3D, 0x4063B620, + 0x00000002, 0x4062AC3E, 0x4063B620, 0x00000002, 0x4062AC3F, 0x4063B620, + 0x00000002, 0x4062AC40, 0x4063B620, 0x00000002, 0x4062AC41, 0x4063B620, + 0x00000002, 0x4062AC42, 0x4063B620, 0x00000002, + // Block 288, offset 0x4800 + 0x4062AC43, 0x4063B620, 0x00000002, 0x4062AC44, 0x4063B620, 0x00000002, + 0x4062AC21, 0x4063B820, 0x00000002, 0x4062AC22, 0x4063B820, 0x00000002, + 0x4062AC23, 0x4063B820, 0x00000002, 0x4062AC24, 0x4063B820, 0x00000002, + 0x4062AC25, 0x4063B820, 0x00000002, 0x4062AC26, 0x4063B820, 0x00000002, + 0x4062AC27, 0x4063B820, 0x00000002, 0x4062AC28, 0x4063B820, 0x00000002, + 0x4062AC29, 0x4063B820, 0x00000002, 0x4062AC2A, 0x4063B820, 0x00000002, + 0x4062AC2B, 0x4063B820, 0x00000002, 0x4062AC2C, 0x4063B820, 0x00000002, + 0x4062AC2D, 0x4063B820, 0x00000002, 0x4062AC2E, 0x4063B820, 0x00000002, + 0x4062AC2F, 0x4063B820, 0x00000002, 0x4062AC30, 0x4063B820, 0x00000002, + 0x4062AC31, 0x4063B820, 0x00000002, 0x4062AC32, 0x4063B820, 0x00000002, + 0x4062AC33, 0x4063B820, 0x00000002, 0x4062AC34, + // Block 289, offset 0x4840 + 0x4063B820, 0x00000002, 0x4062AC35, 0x4063B820, 0x00000002, 0x4062AC36, + 0x4063B820, 0x00000002, 0x4062AC37, 0x4063B820, 0x00000002, 0x4062AC38, + 0x4063B820, 0x00000002, 0x4062AC39, 0x4063B820, 0x00000002, 0x4062AC3A, + 0x4063B820, 0x00000002, 0x4062AC3B, 0x4063B820, 0x00000002, 0x4062AC3C, + 0x4063B820, 0x00000002, 0x4062AC3D, 0x4063B820, 0x00000002, 0x4062AC3E, + 0x4063B820, 0x00000002, 0x4062AC3F, 0x4063B820, 0x00000002, 0x4062AC40, + 0x4063B820, 0x00000002, 0x4062AC41, 0x4063B820, 0x00000002, 0x4062AC42, + 0x4063B820, 0x00000002, 0x4062AC43, 0x4063B820, 0x00000002, 0x4062AC44, + 0x4063B820, 0x00000002, 0x4062AC45, 0x4063B820, 0x00000002, 0x4062AC46, + 0x4063B820, 0x00000002, 0x4062AC47, 0x4063B820, 0x00000002, 0x4062AC48, + 0x4063B820, 0x00000002, 0x4062AC49, 0x4063B820, + // Block 290, offset 0x4880 + 0x00000002, 0x4062AC4A, 0x4063B820, 0x00000002, 0x4062AC4B, 0x4063B820, + 0x00000002, 0x4062AC4C, 0x4063B820, 0x00000002, 0x4062AC4D, 0x4063B820, + 0x00000002, 0x4062AC4E, 0x4063B820, 0x00000002, 0x4062AC4F, 0x4063B820, + 0x00000002, 0x4062AC50, 0x4063B820, 0x00000002, 0x4062AC51, 0x4063B820, + 0x00000002, 0x4062AC52, 0x4063B820, 0x00000002, 0x4062AC53, 0x4063B820, + 0x00000002, 0x4062AC54, 0x4063B820, 0x00000002, 0x4062AC55, 0x4063B820, + 0x00000002, 0x4062AC56, 0x4063B820, 0x00000002, 0x4062AC57, 0x4063B820, + 0x00000002, 0x4062AC58, 0x4063B820, 0x00000002, 0x4062AC59, 0x4063B820, + 0x00000002, 0x4062AC5A, 0x4063B820, 0x00000002, 0x4062AC5B, 0x4063B820, + 0x00000002, 0x4062AC5C, 0x4063B820, 0x00000002, 0x4062AC5D, 0x4063B820, + 0x00000002, 0x4062AC5E, 0x4063B820, 0x00000002, + // Block 291, offset 0x48c0 + 0x4062AC5F, 0x4063B820, 0x00000002, 0x4062AC60, 0x4063B820, 0x00000002, + 0x4062AC61, 0x4063B820, 0x00000002, 0x4062AC62, 0x4063B820, 0x00000002, + 0x4062AC63, 0x4063B820, 0x00000003, 0x4062AC21, 0x4063B820, 0x40646420, + 0x00000003, 0x4062AC22, 0x4063B820, 0x40646420, 0x00000003, 0x4062AC23, + 0x4063B820, 0x40646420, 0x00000003, 0x4062AC24, 0x4063B820, 0x40646420, + 0x00000003, 0x4062AC25, 0x4063B820, 0x40646420, 0x00000003, 0x4062AC26, + 0x4063B820, 0x40646420, 0x00000003, 0x4062AC27, 0x4063B820, 0x40646420, + 0x00000003, 0x4062AC28, 0x4063B820, 0x40646420, 0x00000003, 0x4062AC29, + 0x4063B820, 0x40646420, 0x00000003, 0x4062AC2A, 0x4063B820, 0x40646420, + 0x00000003, 0x4062AC2B, 0x4063B820, 0x40646420, 0x00000003, 0x4062AC2C, + 0x4063B820, 0x40646420, 0x00000003, 0x4062AC21, + // Block 292, offset 0x4900 + 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC22, 0x4063B820, 0x40646A20, + 0x00000003, 0x4062AC23, 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC24, + 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC25, 0x4063B820, 0x40646A20, + 0x00000003, 0x4062AC26, 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC27, + 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC28, 0x4063B820, 0x40646A20, + 0x00000003, 0x4062AC29, 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC2A, + 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC2B, 0x4063B820, 0x40646A20, + 0x00000003, 0x4062AC2C, 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC2D, + 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC2E, 0x4063B820, 0x40646A20, + 0x00000003, 0x4062AC2F, 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC30, + 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC31, + // Block 293, offset 0x4940 + 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC32, 0x4063B820, 0x40646A20, + 0x00000003, 0x4062AC33, 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC34, + 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC35, 0x4063B820, 0x40646A20, + 0x00000003, 0x4062AC36, 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC37, + 0x4063B820, 0x40646A20, 0x00000003, 0x4062AC38, 0x4063B820, 0x40646A20, + 0x00000003, 0x4062AC21, 0x4063B820, 0x40647220, 0x00000003, 0x4062AC22, + 0x4063B820, 0x40647220, 0x00000003, 0x4062AC23, 0x4063B820, 0x40647220, + 0x00000003, 0x4062AC24, 0x4063B820, 0x40647220, 0x00000003, 0x4062AC25, + 0x4063B820, 0x40647220, 0x00000003, 0x4062AC26, 0x4063B820, 0x40647220, + 0x00000003, 0x4062AC21, 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC22, + 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC23, + // Block 294, offset 0x4980 + 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC24, 0x4063B820, 0x40648C20, + 0x00000003, 0x4062AC25, 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC26, + 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC27, 0x4063B820, 0x40648C20, + 0x00000003, 0x4062AC28, 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC29, + 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC2A, 0x4063B820, 0x40648C20, + 0x00000003, 0x4062AC2B, 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC2C, + 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC2D, 0x4063B820, 0x40648C20, + 0x00000003, 0x4062AC2E, 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC2F, + 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC30, 0x4063B820, 0x40648C20, + 0x00000003, 0x4062AC31, 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC32, + 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC33, + // Block 295, offset 0x49c0 + 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC34, 0x4063B820, 0x40648C20, + 0x00000003, 0x4062AC35, 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC36, + 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC37, 0x4063B820, 0x40648C20, + 0x00000003, 0x4062AC38, 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC39, + 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC3A, 0x4063B820, 0x40648C20, + 0x00000003, 0x4062AC3B, 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC3C, + 0x4063B820, 0x40648C20, 0x00000003, 0x4062AC21, 0x4063B820, 0x40648E20, + 0x00000002, 0x4062AC21, 0x4063BA20, 0x00000002, 0x4062AC22, 0x4063BA20, + 0x00000002, 0x4062AC23, 0x4063BA20, 0x00000002, 0x4062AC24, 0x4063BA20, + 0x00000002, 0x4062AC25, 0x4063BA20, 0x00000002, 0x4062AC26, 0x4063BA20, + 0x00000002, 0x4062AC27, 0x4063BA20, 0x00000002, + // Block 296, offset 0x4a00 + 0x4062AC28, 0x4063BA20, 0x00000002, 0x4062AC29, 0x4063BA20, 0x00000002, + 0x4062AC2A, 0x4063BA20, 0x00000002, 0x4062AC2B, 0x4063BA20, 0x00000002, + 0x4062AC2C, 0x4063BA20, 0x00000002, 0x4062AC2D, 0x4063BA20, 0x00000002, + 0x4062AC2E, 0x4063BA20, 0x00000002, 0x4062AC2F, 0x4063BA20, 0x00000002, + 0x4062AC30, 0x4063BA20, 0x00000002, 0x4062AC31, 0x4063BA20, 0x00000002, + 0x4062AC32, 0x4063BA20, 0x00000002, 0x4062AC33, 0x4063BA20, 0x00000002, + 0x4062AC34, 0x4063BA20, 0x00000002, 0x4062AC35, 0x4063BA20, 0x00000002, + 0x4062AC36, 0x4063BA20, 0x00000002, 0x4062AC37, 0x4063BA20, 0x00000002, + 0x4062AC38, 0x4063BA20, 0x00000002, 0x4062AC39, 0x4063BA20, 0x00000003, + 0x4062AC21, 0x4063BA20, 0x40646420, 0x00000003, 0x4062AC22, 0x4063BA20, + 0x40646420, 0x00000003, 0x4062AC23, 0x4063BA20, + // Block 297, offset 0x4a40 + 0x40646420, 0x00000003, 0x4062AC24, 0x4063BA20, 0x40646420, 0x00000003, + 0x4062AC25, 0x4063BA20, 0x40646420, 0x00000003, 0x4062AC26, 0x4063BA20, + 0x40646420, 0x00000003, 0x4062AC27, 0x4063BA20, 0x40646420, 0x00000003, + 0x4062AC28, 0x4063BA20, 0x40646420, 0x00000003, 0x4062AC29, 0x4063BA20, + 0x40646420, 0x00000003, 0x4062AC21, 0x4063BA20, 0x40646A20, 0x00000003, + 0x4062AC22, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC23, 0x4063BA20, + 0x40646A20, 0x00000003, 0x4062AC24, 0x4063BA20, 0x40646A20, 0x00000003, + 0x4062AC25, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC26, 0x4063BA20, + 0x40646A20, 0x00000003, 0x4062AC27, 0x4063BA20, 0x40646A20, 0x00000003, + 0x4062AC28, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC29, 0x4063BA20, + 0x40646A20, 0x00000003, 0x4062AC2A, 0x4063BA20, + // Block 298, offset 0x4a80 + 0x40646A20, 0x00000003, 0x4062AC2B, 0x4063BA20, 0x40646A20, 0x00000003, + 0x4062AC2C, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC2D, 0x4063BA20, + 0x40646A20, 0x00000003, 0x4062AC2E, 0x4063BA20, 0x40646A20, 0x00000003, + 0x4062AC2F, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC30, 0x4063BA20, + 0x40646A20, 0x00000003, 0x4062AC31, 0x4063BA20, 0x40646A20, 0x00000003, + 0x4062AC32, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC33, 0x4063BA20, + 0x40646A20, 0x00000003, 0x4062AC34, 0x4063BA20, 0x40646A20, 0x00000003, + 0x4062AC35, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC36, 0x4063BA20, + 0x40646A20, 0x00000003, 0x4062AC37, 0x4063BA20, 0x40646A20, 0x00000003, + 0x4062AC38, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC39, 0x4063BA20, + 0x40646A20, 0x00000003, 0x4062AC3A, 0x4063BA20, + // Block 299, offset 0x4ac0 + 0x40646A20, 0x00000003, 0x4062AC3B, 0x4063BA20, 0x40646A20, 0x00000003, + 0x4062AC3C, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC3D, 0x4063BA20, + 0x40646A20, 0x00000003, 0x4062AC3E, 0x4063BA20, 0x40646A20, 0x00000003, + 0x4062AC3F, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062AC21, 0x4063BA20, + 0x40647220, 0x00000003, 0x4062AC22, 0x4063BA20, 0x40647220, 0x00000003, + 0x4062AC23, 0x4063BA20, 0x40647220, 0x00000003, 0x4062AC24, 0x4063BA20, + 0x40647220, 0x00000003, 0x4062AC25, 0x4063BA20, 0x40647220, 0x00000003, + 0x4062AC26, 0x4063BA20, 0x40647220, 0x00000003, 0x4062AC27, 0x4063BA20, + 0x40647220, 0x00000003, 0x4062AC28, 0x4063BA20, 0x40647220, 0x00000003, + 0x4062AC29, 0x4063BA20, 0x40647220, 0x00000003, 0x4062AC2A, 0x4063BA20, + 0x40647220, 0x00000003, 0x4062AC21, 0x4063BA20, + // Block 300, offset 0x4b00 + 0x40648C20, 0x00000003, 0x4062AC22, 0x4063BA20, 0x40648C20, 0x00000003, + 0x4062AC23, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC24, 0x4063BA20, + 0x40648C20, 0x00000003, 0x4062AC25, 0x4063BA20, 0x40648C20, 0x00000003, + 0x4062AC26, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC27, 0x4063BA20, + 0x40648C20, 0x00000003, 0x4062AC28, 0x4063BA20, 0x40648C20, 0x00000003, + 0x4062AC29, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC2A, 0x4063BA20, + 0x40648C20, 0x00000003, 0x4062AC2B, 0x4063BA20, 0x40648C20, 0x00000003, + 0x4062AC2C, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC2D, 0x4063BA20, + 0x40648C20, 0x00000003, 0x4062AC2E, 0x4063BA20, 0x40648C20, 0x00000003, + 0x4062AC2F, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC30, 0x4063BA20, + 0x40648C20, 0x00000003, 0x4062AC31, 0x4063BA20, + // Block 301, offset 0x4b40 + 0x40648C20, 0x00000003, 0x4062AC32, 0x4063BA20, 0x40648C20, 0x00000003, + 0x4062AC33, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC34, 0x4063BA20, + 0x40648C20, 0x00000003, 0x4062AC35, 0x4063BA20, 0x40648C20, 0x00000003, + 0x4062AC36, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062AC37, 0x4063BA20, + 0x40648C20, 0x00000003, 0x4062AC38, 0x4063BA20, 0x40648C20, 0x00000002, + 0x4062AC21, 0x4063BC20, 0x00000002, 0x4062AC22, 0x4063BC20, 0x00000002, + 0x4062AC23, 0x4063BC20, 0x00000002, 0x4062AC24, 0x4063BC20, 0x00000002, + 0x4062AC25, 0x4063BC20, 0x00000002, 0x4062AC26, 0x4063BC20, 0x00000002, + 0x4062AC27, 0x4063BC20, 0x00000002, 0x4062AC21, 0x4063BE20, 0x00000002, + 0x4062AC22, 0x4063BE20, 0x00000002, 0x4062AC23, 0x4063BE20, 0x00000002, + 0x4062AC24, 0x4063BE20, 0x00000002, 0x4062AC25, + // Block 302, offset 0x4b80 + 0x4063BE20, 0x00000002, 0x4062AC26, 0x4063BE20, 0x00000002, 0x4062AC27, + 0x4063BE20, 0x00000002, 0x4062AC28, 0x4063BE20, 0x00000002, 0x4062AC29, + 0x4063BE20, 0x00000002, 0x4062AC2A, 0x4063BE20, 0x00000002, 0x4062AC2B, + 0x4063BE20, 0x00000002, 0x4062AC2C, 0x4063BE20, 0x00000002, 0x4062AC2D, + 0x4063BE20, 0x00000002, 0x4062AC2E, 0x4063BE20, 0x00000002, 0x4062AC2F, + 0x4063BE20, 0x00000002, 0x4062AC30, 0x4063BE20, 0x00000003, 0x4062AC21, + 0x4063BE20, 0x40646420, 0x00000003, 0x4062AC21, 0x4063BE20, 0x40648C20, + 0x00000003, 0x4062AC22, 0x4063BE20, 0x40648C20, 0x00000003, 0x4062AC23, + 0x4063BE20, 0x40648C20, 0x00000003, 0x4062AC24, 0x4063BE20, 0x40648C20, + 0x00000003, 0x4062AC25, 0x4063BE20, 0x40648C20, 0x00000003, 0x4062AC26, + 0x4063BE20, 0x40648C20, 0x00000003, 0x4062AC27, + // Block 303, offset 0x4bc0 + 0x4063BE20, 0x40648C20, 0x00000003, 0x4062AC28, 0x4063BE20, 0x40648C20, + 0x00000002, 0x4062AC21, 0x4063C020, 0x00000002, 0x4062AC22, 0x4063C020, + 0x00000002, 0x4062AC23, 0x4063C020, 0x00000002, 0x4062AC24, 0x4063C020, + 0x00000002, 0x4062AC25, 0x4063C020, 0x00000002, 0x4062AC26, 0x4063C020, + 0x00000002, 0x4062AC27, 0x4063C020, 0x00000002, 0x4062AC28, 0x4063C020, + 0x00000002, 0x4062AC29, 0x4063C020, 0x00000002, 0x4062AC2A, 0x4063C020, + 0x00000002, 0x4062AC2B, 0x4063C020, 0x00000002, 0x4062AC2C, 0x4063C020, + 0x00000002, 0x4062AC2D, 0x4063C020, 0x00000002, 0x4062AC2E, 0x4063C020, + 0x00000002, 0x4062AC2F, 0x4063C020, 0x00000002, 0x4062AC30, 0x4063C020, + 0x00000002, 0x4062AC31, 0x4063C020, 0x00000002, 0x4062AC32, 0x4063C020, + 0x00000002, 0x4062AC33, 0x4063C020, 0x00000002, + // Block 304, offset 0x4c00 + 0x4062AC34, 0x4063C020, 0x00000002, 0x4062AC35, 0x4063C020, 0x00000002, + 0x4062AC36, 0x4063C020, 0x00000002, 0x4062AC37, 0x4063C020, 0x00000002, + 0x4062AC38, 0x4063C020, 0x00000002, 0x4062AC39, 0x4063C020, 0x00000002, + 0x4062AC3A, 0x4063C020, 0x00000002, 0x4062AC3B, 0x4063C020, 0x00000002, + 0x4062AC3C, 0x4063C020, 0x00000002, 0x4062AC3D, 0x4063C020, 0x00000002, + 0x4062AC3E, 0x4063C020, 0x00000002, 0x4062AC3F, 0x4063C020, 0x00000002, + 0x4062AC40, 0x4063C020, 0x00000002, 0x4062AC41, 0x4063C020, 0x00000002, + 0x4062AC42, 0x4063C020, 0x00000002, 0x4062AC43, 0x4063C020, 0x00000002, + 0x4062AC44, 0x4063C020, 0x00000002, 0x4062AC45, 0x4063C020, 0x00000002, + 0x4062AC46, 0x4063C020, 0x00000002, 0x4062AC47, 0x4063C020, 0x00000002, + 0x4062AC48, 0x4063C020, 0x00000002, 0x4062AC49, + // Block 305, offset 0x4c40 + 0x4063C020, 0x00000002, 0x4062AC4A, 0x4063C020, 0x00000002, 0x4062AC4B, + 0x4063C020, 0x00000002, 0x4062AC4C, 0x4063C020, 0x00000002, 0x4062AC21, + 0x4063C220, 0x00000002, 0x4062AC22, 0x4063C220, 0x00000002, 0x4062AC23, + 0x4063C220, 0x00000002, 0x4062AC24, 0x4063C220, 0x00000002, 0x4062AC25, + 0x4063C220, 0x00000002, 0x4062AC26, 0x4063C220, 0x00000002, 0x4062AC27, + 0x4063C220, 0x00000002, 0x4062AC28, 0x4063C220, 0x00000002, 0x4062AC29, + 0x4063C220, 0x00000002, 0x4062AC2A, 0x4063C220, 0x00000002, 0x4062AC2B, + 0x4063C220, 0x00000002, 0x4062AC2C, 0x4063C220, 0x00000002, 0x4062AC2D, + 0x4063C220, 0x00000002, 0x4062AC2E, 0x4063C220, 0x00000002, 0x4062AC2F, + 0x4063C220, 0x00000002, 0x4062AC30, 0x4063C220, 0x00000002, 0x4062AC31, + 0x4063C220, 0x00000002, 0x4062AC32, 0x4063C220, + // Block 306, offset 0x4c80 + 0x00000002, 0x4062AC33, 0x4063C220, 0x00000002, 0x4062AC34, 0x4063C220, + 0x00000002, 0x4062AC35, 0x4063C220, 0x00000002, 0x4062AC36, 0x4063C220, + 0x00000002, 0x4062AC37, 0x4063C220, 0x00000002, 0x4062AC38, 0x4063C220, + 0x00000002, 0x4062AC39, 0x4063C220, 0x00000002, 0x4062AC3A, 0x4063C220, + 0x00000002, 0x4062AC3B, 0x4063C220, 0x00000002, 0x4062AC3C, 0x4063C220, + 0x00000002, 0x4062AC3D, 0x4063C220, 0x00000002, 0x4062AC3E, 0x4063C220, + 0x00000002, 0x4062AC3F, 0x4063C220, 0x00000002, 0x4062AC40, 0x4063C220, + 0x00000002, 0x4062AC41, 0x4063C220, 0x00000002, 0x4062AC42, 0x4063C220, + 0x00000002, 0x4062AC43, 0x4063C220, 0x00000002, 0x4062AC44, 0x4063C220, + 0x00000002, 0x4062AC45, 0x4063C220, 0x00000002, 0x4062AC46, 0x4063C220, + 0x00000002, 0x4062AC47, 0x4063C220, 0x00000002, + // Block 307, offset 0x4cc0 + 0x4062AC48, 0x4063C220, 0x00000002, 0x4062AC49, 0x4063C220, 0x00000002, + 0x4062AC4A, 0x4063C220, 0x00000002, 0x4062AC4B, 0x4063C220, 0x00000002, + 0x4062AC4C, 0x4063C220, 0x00000002, 0x4062AC4D, 0x4063C220, 0x00000002, + 0x4062AC4E, 0x4063C220, 0x00000002, 0x4062AC4F, 0x4063C220, 0x00000002, + 0x4062AC50, 0x4063C220, 0x00000002, 0x4062AC51, 0x4063C220, 0x00000002, + 0x4062AC52, 0x4063C220, 0x00000002, 0x4062AC53, 0x4063C220, 0x00000002, + 0x4062AC54, 0x4063C220, 0x00000002, 0x4062AC55, 0x4063C220, 0x00000002, + 0x4062AC56, 0x4063C220, 0x00000002, 0x4062AC57, 0x4063C220, 0x00000002, + 0x4062AC58, 0x4063C220, 0x00000002, 0x4062AC59, 0x4063C220, 0x00000002, + 0x4062AC5A, 0x4063C220, 0x00000002, 0x4062AC5B, 0x4063C220, 0x00000002, + 0x4062AC5C, 0x4063C220, 0x00000002, 0x4062AC5D, + // Block 308, offset 0x4d00 + 0x4063C220, 0x00000002, 0x4062AC5E, 0x4063C220, 0x00000002, 0x4062AC5F, + 0x4063C220, 0x00000002, 0x4062AC60, 0x4063C220, 0x00000002, 0x4062AC61, + 0x4063C220, 0x00000002, 0x4062AC62, 0x4063C220, 0x00000002, 0x4062AC63, + 0x4063C220, 0x00000002, 0x4062AC64, 0x4063C220, 0x00000002, 0x4062AC65, + 0x4063C220, 0x00000002, 0x4062AC66, 0x4063C220, 0x00000002, 0x4062AC67, + 0x4063C220, 0x00000002, 0x4062AC68, 0x4063C220, 0x00000002, 0x4062AC69, + 0x4063C220, 0x00000002, 0x4062AC6A, 0x4063C220, 0x00000002, 0x4062AC6B, + 0x4063C220, 0x00000002, 0x4062AC6C, 0x4063C220, 0x00000002, 0x4062AC6D, + 0x4063C220, 0x00000002, 0x4062AC6E, 0x4063C220, 0x00000002, 0x4062AC6F, + 0x4063C220, 0x00000002, 0x4062AC70, 0x4063C220, 0x00000002, 0x4062AC71, + 0x4063C220, 0x00000002, 0x4062AC72, 0x4063C220, + // Block 309, offset 0x4d40 + 0x00000002, 0x4062AC73, 0x4063C220, 0x00000002, 0x4062AC74, 0x4063C220, + 0x00000002, 0x4062AC75, 0x4063C220, 0x00000002, 0x4062AC76, 0x4063C220, + 0x00000002, 0x4062AC77, 0x4063C220, 0x00000002, 0x4062AC78, 0x4063C220, + 0x00000002, 0x4062AC79, 0x4063C220, 0x00000002, 0x4062AC7A, 0x4063C220, + 0x00000002, 0x4062AC7B, 0x4063C220, 0x00000002, 0x4062AC7C, 0x4063C220, + 0x00000002, 0x4062AC7D, 0x4063C220, 0x00000002, 0x4062AC7E, 0x4063C220, + 0x00000002, 0x4062AC7F, 0x4063C220, 0x00000002, 0x4062AC80, 0x4063C220, + 0x00000002, 0x4062AC81, 0x4063C220, 0x00000002, 0x4062AC82, 0x4063C220, + 0x00000002, 0x4062AC83, 0x4063C220, 0x00000002, 0x4062AC84, 0x4063C220, + 0x00000002, 0x4062AC85, 0x4063C220, 0x00000002, 0x4062AC86, 0x4063C220, + 0x00000002, 0x4062AC87, 0x4063C220, 0x00000003, + // Block 310, offset 0x4d80 + 0x4062AC21, 0x4063C220, 0x40646420, 0x00000003, 0x4062AC22, 0x4063C220, + 0x40646420, 0x00000003, 0x4062AC23, 0x4063C220, 0x40646420, 0x00000003, + 0x4062AC24, 0x4063C220, 0x40646420, 0x00000003, 0x4062AC25, 0x4063C220, + 0x40646420, 0x00000003, 0x4062AC26, 0x4063C220, 0x40646420, 0x00000003, + 0x4062AC27, 0x4063C220, 0x40646420, 0x00000003, 0x4062AC28, 0x4063C220, + 0x40646420, 0x00000003, 0x4062AC29, 0x4063C220, 0x40646420, 0x00000003, + 0x4062AC2A, 0x4063C220, 0x40646420, 0x00000003, 0x4062AC21, 0x4063C220, + 0x40646A20, 0x00000003, 0x4062AC22, 0x4063C220, 0x40646A20, 0x00000003, + 0x4062AC23, 0x4063C220, 0x40646A20, 0x00000003, 0x4062AC24, 0x4063C220, + 0x40646A20, 0x00000003, 0x4062AC25, 0x4063C220, 0x40646A20, 0x00000003, + 0x4062AC26, 0x4063C220, 0x40646A20, 0x00000003, + // Block 311, offset 0x4dc0 + 0x4062AC27, 0x4063C220, 0x40646A20, 0x00000003, 0x4062AC28, 0x4063C220, + 0x40646A20, 0x00000003, 0x4062AC29, 0x4063C220, 0x40646A20, 0x00000003, + 0x4062AC21, 0x4063C220, 0x40647220, 0x00000003, 0x4062AC22, 0x4063C220, + 0x40647220, 0x00000003, 0x4062AC23, 0x4063C220, 0x40647220, 0x00000003, + 0x4062AC24, 0x4063C220, 0x40647220, 0x00000003, 0x4062AC25, 0x4063C220, + 0x40647220, 0x00000003, 0x4062AC26, 0x4063C220, 0x40647220, 0x00000003, + 0x4062AC27, 0x4063C220, 0x40647220, 0x00000003, 0x4062AC28, 0x4063C220, + 0x40647220, 0x00000003, 0x4062AC21, 0x4063C220, 0x40648C20, 0x00000003, + 0x4062AC22, 0x4063C220, 0x40648C20, 0x00000003, 0x4062AC23, 0x4063C220, + 0x40648C20, 0x00000003, 0x4062AC24, 0x4063C220, 0x40648C20, 0x00000003, + 0x4062AC25, 0x4063C220, 0x40648C20, 0x00000003, + // Block 312, offset 0x4e00 + 0x4062AC26, 0x4063C220, 0x40648C20, 0x00000003, 0x4062AC27, 0x4063C220, + 0x40648C20, 0x00000003, 0x4062AC21, 0x4063C420, 0x40646A20, 0x00000003, + 0x4062AC22, 0x4063C420, 0x40646A20, 0x00000003, 0x4062AC23, 0x4063C420, + 0x40646A20, 0x00000003, 0x4062AC24, 0x4063C420, 0x40646A20, 0x00000003, + 0x4062AC25, 0x4063C420, 0x40646A20, 0x00000003, 0x4062AC26, 0x4063C420, + 0x40646A20, 0x00000003, 0x4062AC27, 0x4063C420, 0x40646A20, 0x00000003, + 0x4062AC28, 0x4063C420, 0x40646A20, 0x00000003, 0x4062AC29, 0x4063C420, + 0x40646A20, 0x00000003, 0x4062AC2A, 0x4063C420, 0x40646A20, 0x00000003, + 0x4062AC2B, 0x4063C420, 0x40646A20, 0x00000003, 0x4062AC2C, 0x4063C420, + 0x40646A20, 0x00000003, 0x4062AC2D, 0x4063C420, 0x40646A20, 0x00000003, + 0x4062AC2E, 0x4063C420, 0x40646A20, 0x00000003, + // Block 313, offset 0x4e40 + 0x4062AC2F, 0x4063C420, 0x40646A20, 0x00000003, 0x4062AC30, 0x4063C420, + 0x40646A20, 0x00000003, 0x4062AC21, 0x4063C420, 0x40647220, 0x00000003, + 0x4062AC22, 0x4063C420, 0x40647220, 0x00000003, 0x4062AC23, 0x4063C420, + 0x40647220, 0x00000003, 0x4062AC24, 0x4063C420, 0x40647220, 0x00000003, + 0x4062AC25, 0x4063C420, 0x40647220, 0x00000002, 0x4062AC21, 0x4063C620, + 0x00000002, 0x4062AC22, 0x4063C620, 0x00000002, 0x4062AC23, 0x4063C620, + 0x00000002, 0x4062AC24, 0x4063C620, 0x00000002, 0x4062AC25, 0x4063C620, + 0x00000002, 0x4062AC26, 0x4063C620, 0x00000002, 0x4062AC27, 0x4063C620, + 0x00000002, 0x4062AC28, 0x4063C620, 0x00000002, 0x4062AC29, 0x4063C620, + 0x00000002, 0x4062AC2A, 0x4063C620, 0x00000002, 0x4062AC2B, 0x4063C620, + 0x00000002, 0x4062AC2C, 0x4063C620, 0x00000002, + // Block 314, offset 0x4e80 + 0x4062AC2D, 0x4063C620, 0x00000002, 0x4062AC2E, 0x4063C620, 0x00000002, + 0x4062AC2F, 0x4063C620, 0x00000002, 0x4062AC30, 0x4063C620, 0x00000002, + 0x4062AC31, 0x4063C620, 0x00000002, 0x4062AC32, 0x4063C620, 0x00000002, + 0x4062AC33, 0x4063C620, 0x00000002, 0x4062AC34, 0x4063C620, 0x00000002, + 0x4062AC21, 0x4063C820, 0x00000002, 0x4062AC22, 0x4063C820, 0x00000002, + 0x4062AC23, 0x4063C820, 0x00000002, 0x4062AC24, 0x4063C820, 0x00000002, + 0x4062AC21, 0x4063CA20, 0x00000002, 0x4062AC22, 0x4063CA20, 0x00000002, + 0x4062AC23, 0x4063CA20, 0x00000002, 0x4062AC24, 0x4063CA20, 0x00000002, + 0x4062AC25, 0x4063CA20, 0x00000002, 0x4062AC26, 0x4063CA20, 0x00000002, + 0x4062AC27, 0x4063CA20, 0x00000002, 0x4062AC28, 0x4063CA20, 0x00000002, + 0x4062AC29, 0x4063CA20, 0x00000002, 0x4062AC2A, + // Block 315, offset 0x4ec0 + 0x4063CA20, 0x00000002, 0x4062AC2B, 0x4063CA20, 0x00000002, 0x4062AC2C, + 0x4063CA20, 0x00000002, 0x4062AC2D, 0x4063CA20, 0x00000002, 0x4062AC2E, + 0x4063CA20, 0x00000002, 0x4062AC2F, 0x4063CA20, 0x00000002, 0x4062AC30, + 0x4063CA20, 0x00000002, 0x4062AC31, 0x4063CA20, 0x00000002, 0x4062AC32, + 0x4063CA20, 0x00000002, 0x4062AC33, 0x4063CA20, 0x00000002, 0x4062AC34, + 0x4063CA20, 0x00000002, 0x4062AC35, 0x4063CA20, 0x00000002, 0x4062AC36, + 0x4063CA20, 0x00000002, 0x4062AC37, 0x4063CA20, 0x00000002, 0x4062AC38, + 0x4063CA20, 0x00000002, 0x4062AC39, 0x4063CA20, 0x00000002, 0x4062AC3A, + 0x4063CA20, 0x00000002, 0x4062AC3B, 0x4063CA20, 0x00000002, 0x4062AC3C, + 0x4063CA20, 0x00000002, 0x4062AC3D, 0x4063CA20, 0x00000002, 0x4062AC3E, + 0x4063CA20, 0x00000002, 0x4062AC3F, 0x4063CA20, + // Block 316, offset 0x4f00 + 0x00000002, 0x4062AC40, 0x4063CA20, 0x00000003, 0x4062AC21, 0x4063CA20, + 0x40646A20, 0x00000003, 0x4062AC22, 0x4063CA20, 0x40646A20, 0x00000003, + 0x4062AC23, 0x4063CA20, 0x40646A20, 0x00000003, 0x4062AC24, 0x4063CA20, + 0x40646A20, 0x00000003, 0x4062AC25, 0x4063CA20, 0x40646A20, 0x00000003, + 0x4062AC26, 0x4063CA20, 0x40646A20, 0x00000003, 0x4062AC27, 0x4063CA20, + 0x40646A20, 0x00000003, 0x4062AC28, 0x4063CA20, 0x40646A20, 0x00000003, + 0x4062AC21, 0x4063CA20, 0x40647220, 0x00000003, 0x4062AC21, 0x4063CC20, + 0x40646420, 0x00000003, 0x4062AC22, 0x4063CC20, 0x40646420, 0x00000003, + 0x4062AC23, 0x4063CC20, 0x40646420, 0x00000003, 0x4062AC24, 0x4063CC20, + 0x40646420, 0x00000003, 0x4062AC25, 0x4063CC20, 0x40646420, 0x00000003, + 0x4062AC26, 0x4063CC20, 0x40646420, 0x00000003, + // Block 317, offset 0x4f40 + 0x4062AC27, 0x4063CC20, 0x40646420, 0x00000003, 0x4062AC28, 0x4063CC20, + 0x40646420, 0x00000003, 0x4062AC29, 0x4063CC20, 0x40646420, 0x00000003, + 0x4062AC2A, 0x4063CC20, 0x40646420, 0x00000003, 0x4062AC2B, 0x4063CC20, + 0x40646420, 0x00000003, 0x4062AC21, 0x4063CC20, 0x40646A20, 0x00000003, + 0x4062AC22, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC23, 0x4063CC20, + 0x40646A20, 0x00000003, 0x4062AC24, 0x4063CC20, 0x40646A20, 0x00000003, + 0x4062AC25, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC26, 0x4063CC20, + 0x40646A20, 0x00000003, 0x4062AC27, 0x4063CC20, 0x40646A20, 0x00000003, + 0x4062AC28, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC29, 0x4063CC20, + 0x40646A20, 0x00000003, 0x4062AC2A, 0x4063CC20, 0x40646A20, 0x00000003, + 0x4062AC2B, 0x4063CC20, 0x40646A20, 0x00000003, + // Block 318, offset 0x4f80 + 0x4062AC2C, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC2D, 0x4063CC20, + 0x40646A20, 0x00000003, 0x4062AC2E, 0x4063CC20, 0x40646A20, 0x00000003, + 0x4062AC2F, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC30, 0x4063CC20, + 0x40646A20, 0x00000003, 0x4062AC31, 0x4063CC20, 0x40646A20, 0x00000003, + 0x4062AC32, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC33, 0x4063CC20, + 0x40646A20, 0x00000003, 0x4062AC34, 0x4063CC20, 0x40646A20, 0x00000003, + 0x4062AC35, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC36, 0x4063CC20, + 0x40646A20, 0x00000003, 0x4062AC37, 0x4063CC20, 0x40646A20, 0x00000003, + 0x4062AC38, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062AC39, 0x4063CC20, + 0x40646A20, 0x00000003, 0x4062AC21, 0x4063CC20, 0x40648220, 0x00000003, + 0x4062AC22, 0x4063CC20, 0x40648220, 0x00000003, + // Block 319, offset 0x4fc0 + 0x4062AC23, 0x4063CC20, 0x40648220, 0x00000003, 0x4062AC24, 0x4063CC20, + 0x40648220, 0x00000003, 0x4062AC25, 0x4063CC20, 0x40648220, 0x00000003, + 0x4062AC26, 0x4063CC20, 0x40648220, 0x00000003, 0x4062AC27, 0x4063CC20, + 0x40648220, 0x00000003, 0x4062AC28, 0x4063CC20, 0x40648220, 0x00000003, + 0x4062AC29, 0x4063CC20, 0x40648220, 0x00000003, 0x4062AC2A, 0x4063CC20, + 0x40648220, 0x00000003, 0x4062AC2B, 0x4063CC20, 0x40648220, 0x00000003, + 0x4062AC2C, 0x4063CC20, 0x40648220, 0x00000003, 0x4062AC2D, 0x4063CC20, + 0x40648220, 0x00000003, 0x4062AC2E, 0x4063CC20, 0x40648220, 0x00000003, + 0x4062AC2F, 0x4063CC20, 0x40648220, 0x00000003, 0x4062AC30, 0x4063CC20, + 0x40648220, 0x00000003, 0x4062AC31, 0x4063CC20, 0x40648220, 0x00000003, + 0x4062AC32, 0x4063CC20, 0x40648220, 0x00000003, + // Block 320, offset 0x5000 + 0x4062AC21, 0x4063CC20, 0x40648420, 0x00000003, 0x4062AC22, 0x4063CC20, + 0x40648420, 0x00000003, 0x4062AC23, 0x4063CC20, 0x40648420, 0x00000003, + 0x4062AC24, 0x4063CC20, 0x40648420, 0x00000003, 0x4062AC25, 0x4063CC20, + 0x40648420, 0x00000003, 0x4062AC26, 0x4063CC20, 0x40648420, 0x00000003, + 0x4062AC27, 0x4063CC20, 0x40648420, 0x00000003, 0x4062AC28, 0x4063CC20, + 0x40648420, 0x00000003, 0x4062AC29, 0x4063CC20, 0x40648420, 0x00000003, + 0x4062AC2A, 0x4063CC20, 0x40648420, 0x00000003, 0x4062AC2B, 0x4063CC20, + 0x40648420, 0x00000003, 0x4062AC2C, 0x4063CC20, 0x40648420, 0x00000003, + 0x4062AC2D, 0x4063CC20, 0x40648420, 0x00000003, 0x4062AC21, 0x4063CC20, + 0x40648C20, 0x00000003, 0x4062AC22, 0x4063CC20, 0x40648C20, 0x00000003, + 0x4062AC23, 0x4063CC20, 0x40648C20, 0x00000003, + // Block 321, offset 0x5040 + 0x4062AC24, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062AC25, 0x4063CC20, + 0x40648C20, 0x00000003, 0x4062AC26, 0x4063CC20, 0x40648C20, 0x00000002, + 0x4062AC21, 0x4063D020, 0x00000002, 0x4062AC22, 0x4063D020, 0x00000002, + 0x4062AC23, 0x4063D020, 0x00000002, 0x4062AC24, 0x4063D020, 0x00000002, + 0x4062AC25, 0x4063D020, 0x00000002, 0x4062AC26, 0x4063D020, 0x00000002, + 0x4062AC27, 0x4063D020, 0x00000002, 0x4062AC28, 0x4063D020, 0x00000002, + 0x4062AC29, 0x4063D020, 0x00000002, 0x4062AC2A, 0x4063D020, 0x00000002, + 0x4062AC2B, 0x4063D020, 0x00000002, 0x4062AC2C, 0x4063D020, 0x00000002, + 0x4062AC2D, 0x4063D020, 0x00000002, 0x4062AC2E, 0x4063D020, 0x00000002, + 0x4062AC2F, 0x4063D020, 0x00000002, 0x4062AC30, 0x4063D020, 0x00000002, + 0x4062AC31, 0x4063D020, 0x00000002, 0x4062AC32, + // Block 322, offset 0x5080 + 0x4063D020, 0x00000002, 0x4062AC33, 0x4063D020, 0x00000002, 0x4062AC34, + 0x4063D020, 0x00000002, 0x4062AC35, 0x4063D020, 0x00000002, 0x4062AC36, + 0x4063D020, 0x00000002, 0x4062AC37, 0x4063D020, 0x00000002, 0x4062AC38, + 0x4063D020, 0x00000002, 0x4062AC39, 0x4063D020, 0x00000002, 0x4062AC3A, + 0x4063D020, 0x00000002, 0x4062AC3B, 0x4063D020, 0x00000002, 0x4062AC3C, + 0x4063D020, 0x00000002, 0x4062AC3D, 0x4063D020, 0x00000002, 0x4062AC3E, + 0x4063D020, 0x00000002, 0x4062AC3F, 0x4063D020, 0x00000002, 0x4062AC40, + 0x4063D020, 0x00000002, 0x4062AC41, 0x4063D020, 0x00000002, 0x4062AC42, + 0x4063D020, 0x00000002, 0x4062AC43, 0x4063D020, 0x00000002, 0x4062AC44, + 0x4063D020, 0x00000002, 0x4062AC45, 0x4063D020, 0x00000002, 0x4062AC46, + 0x4063D020, 0x00000002, 0x4062AC47, 0x4063D020, + // Block 323, offset 0x50c0 + 0x00000002, 0x4062AC48, 0x4063D020, 0x00000002, 0x4062AC49, 0x4063D020, + 0x00000002, 0x4062AC4A, 0x4063D020, 0x00000002, 0x4062AC4B, 0x4063D020, + 0x00000002, 0x4062AC4C, 0x4063D020, 0x00000002, 0x4062AC4D, 0x4063D020, + 0x00000002, 0x4062AC4E, 0x4063D020, 0x00000002, 0x4062AC4F, 0x4063D020, + 0x00000002, 0x4062AC50, 0x4063D020, 0x00000002, 0x4062AC51, 0x4063D020, + 0x00000002, 0x4062AC52, 0x4063D020, 0x00000002, 0x4062AC53, 0x4063D020, + 0x00000002, 0x4062AC54, 0x4063D020, 0x00000002, 0x4062AC55, 0x4063D020, + 0x00000002, 0x4062AC56, 0x4063D020, 0x00000002, 0x4062AC57, 0x4063D020, + 0x00000002, 0x4062AC58, 0x4063D020, 0x00000002, 0x4062AC59, 0x4063D020, + 0x00000002, 0x4062AC5A, 0x4063D020, 0x00000002, 0x4062AC5B, 0x4063D020, + 0x00000002, 0x4062AC5C, 0x4063D020, 0x00000002, + // Block 324, offset 0x5100 + 0x4062AC5D, 0x4063D020, 0x00000002, 0x4062AC5E, 0x4063D020, 0x00000002, + 0x4062AC5F, 0x4063D020, 0x00000002, 0x4062AC60, 0x4063D020, 0x00000002, + 0x4062AC61, 0x4063D020, 0x00000002, 0x4062AC62, 0x4063D020, 0x00000002, + 0x4062AC63, 0x4063D020, 0x00000002, 0x4062AC64, 0x4063D020, 0x00000002, + 0x4062AC65, 0x4063D020, 0x00000002, 0x4062AC66, 0x4063D020, 0x00000002, + 0x4062AC67, 0x4063D020, 0x00000002, 0x4062AC68, 0x4063D020, 0x00000002, + 0x4062AC69, 0x4063D020, 0x00000002, 0x4062AC6A, 0x4063D020, 0x00000002, + 0x4062AC6B, 0x4063D020, 0x00000002, 0x4062AC6C, 0x4063D020, 0x00000002, + 0x4062AC6D, 0x4063D020, 0x00000002, 0x4062AC6E, 0x4063D020, 0x00000002, + 0x4062AC6F, 0x4063D020, 0x00000002, 0x4062AC70, 0x4063D020, 0x00000002, + 0x4062AC71, 0x4063D020, 0x00000002, 0x4062AC72, + // Block 325, offset 0x5140 + 0x4063D020, 0x00000002, 0x4062AC73, 0x4063D020, 0x00000002, 0x4062AC74, + 0x4063D020, 0x00000002, 0x4062AC75, 0x4063D020, 0x00000002, 0x4062AC76, + 0x4063D020, 0x00000002, 0x4062AC77, 0x4063D020, 0x00000002, 0x4062AC78, + 0x4063D020, 0x00000002, 0x4062AC79, 0x4063D020, 0x00000002, 0x4062AC7A, + 0x4063D020, 0x00000002, 0x4062AC7B, 0x4063D020, 0x00000002, 0x4062AC7C, + 0x4063D020, 0x00000002, 0x4062AC7D, 0x4063D020, 0x00000002, 0x4062AC7E, + 0x4063D020, 0x00000002, 0x4062AC7F, 0x4063D020, 0x00000002, 0x4062AC80, + 0x4063D020, 0x00000002, 0x4062AC81, 0x4063D020, 0x00000002, 0x4062AC82, + 0x4063D020, 0x00000002, 0x4062AC83, 0x4063D020, 0x00000002, 0x4062AC84, + 0x4063D020, 0x00000003, 0x4062AC21, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062AC21, 0x4063D020, 0x40647220, 0x00000003, + // Block 326, offset 0x5180 + 0x4062AC22, 0x4063D020, 0x40647220, 0x00000003, 0x4062AC23, 0x4063D020, + 0x40647220, 0x00000003, 0x4062AC24, 0x4063D020, 0x40647220, 0x00000003, + 0x4062AC25, 0x4063D020, 0x40647220, 0x00000003, 0x4062AC26, 0x4063D020, + 0x40647220, 0x00000003, 0x4062AC21, 0x4063D020, 0x40648220, 0x00000003, + 0x4062AE21, 0x4063D020, 0x40646420, 0x00000002, 0x4062B021, 0x4063A820, + 0x00000002, 0x4062B022, 0x4063A820, 0x00000002, 0x4062B023, 0x4063A820, + 0x00000002, 0x4062B024, 0x4063A820, 0x00000002, 0x4062B025, 0x4063A820, + 0x00000002, 0x4062B026, 0x4063A820, 0x00000002, 0x4062B027, 0x4063A820, + 0x00000002, 0x4062B028, 0x4063A820, 0x00000002, 0x4062B029, 0x4063A820, + 0x00000002, 0x4062B02A, 0x4063A820, 0x00000002, 0x4062B02B, 0x4063A820, + 0x00000003, 0x4062B021, 0x4063A820, 0x40646420, + // Block 327, offset 0x51c0 + 0x00000003, 0x4062B021, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B022, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062B023, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062B024, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B025, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062B026, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062B027, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B021, + 0x4063A820, 0x40647220, 0x00000003, 0x4062B022, 0x4063A820, 0x40647220, + 0x00000003, 0x4062B021, 0x4063A820, 0x40648220, 0x00000003, 0x4062B022, + 0x4063A820, 0x40648220, 0x00000003, 0x4062B023, 0x4063A820, 0x40648220, + 0x00000003, 0x4062B024, 0x4063A820, 0x40648220, 0x00000003, 0x4062B025, + 0x4063A820, 0x40648220, 0x00000003, 0x4062B026, 0x4063A820, 0x40648220, + 0x00000003, 0x4062B027, 0x4063A820, 0x40648220, + // Block 328, offset 0x5200 + 0x00000003, 0x4062B021, 0x4063A820, 0x40648420, 0x00000003, 0x4062B022, + 0x4063A820, 0x40648420, 0x00000003, 0x4062B021, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062B022, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B023, + 0x4063A820, 0x40648C20, 0x00000002, 0x4062B021, 0x4063AA20, 0x00000002, + 0x4062B022, 0x4063AA20, 0x00000002, 0x4062B023, 0x4063AA20, 0x00000002, + 0x4062B024, 0x4063AA20, 0x00000002, 0x4062B025, 0x4063AA20, 0x00000002, + 0x4062B026, 0x4063AA20, 0x00000002, 0x4062B027, 0x4063AA20, 0x00000002, + 0x4062B028, 0x4063AA20, 0x00000002, 0x4062B029, 0x4063AA20, 0x00000002, + 0x4062B02A, 0x4063AA20, 0x00000002, 0x4062B021, 0x4063B420, 0x00000003, + 0x4062B021, 0x4063B420, 0x40646420, 0x00000003, 0x4062B021, 0x4063B420, + 0x40646A20, 0x00000003, 0x4062B022, 0x4063B420, + // Block 329, offset 0x5240 + 0x40646A20, 0x00000003, 0x4062B023, 0x4063B420, 0x40646A20, 0x00000003, + 0x4062B024, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B021, 0x4063B420, + 0x40648220, 0x00000003, 0x4062B022, 0x4063B420, 0x40648220, 0x00000003, + 0x4062B023, 0x4063B420, 0x40648220, 0x00000003, 0x4062B024, 0x4063B420, + 0x40648220, 0x00000003, 0x4062B021, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062B022, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B023, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062B024, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062B025, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B026, 0x4063B420, + 0x40648C20, 0x00000002, 0x4062B021, 0x4063B820, 0x00000002, 0x4062B022, + 0x4063B820, 0x00000002, 0x4062B023, 0x4063B820, 0x00000002, 0x4062B024, + 0x4063B820, 0x00000002, 0x4062B025, 0x4063B820, + // Block 330, offset 0x5280 + 0x00000002, 0x4062B026, 0x4063B820, 0x00000002, 0x4062B027, 0x4063B820, + 0x00000002, 0x4062B028, 0x4063B820, 0x00000002, 0x4062B029, 0x4063B820, + 0x00000002, 0x4062B02A, 0x4063B820, 0x00000002, 0x4062B02B, 0x4063B820, + 0x00000002, 0x4062B02C, 0x4063B820, 0x00000003, 0x4062B021, 0x4063B820, + 0x40648C20, 0x00000003, 0x4062B022, 0x4063B820, 0x40648C20, 0x00000003, + 0x4062B023, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B024, 0x4063B820, + 0x40648C20, 0x00000003, 0x4062B025, 0x4063B820, 0x40648C20, 0x00000003, + 0x4062B026, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B027, 0x4063B820, + 0x40648C20, 0x00000002, 0x4062B021, 0x4063BE20, 0x00000002, 0x4062B022, + 0x4063BE20, 0x00000002, 0x4062B023, 0x4063BE20, 0x00000002, 0x4062B021, + 0x4063C020, 0x00000002, 0x4062B022, 0x4063C020, + // Block 331, offset 0x52c0 + 0x00000002, 0x4062B023, 0x4063C020, 0x00000002, 0x4062B024, 0x4063C020, + 0x00000002, 0x4062B025, 0x4063C020, 0x00000002, 0x4062B026, 0x4063C020, + 0x00000002, 0x4062B027, 0x4063C020, 0x00000002, 0x4062B021, 0x4063C220, + 0x00000002, 0x4062B022, 0x4063C220, 0x00000003, 0x4062B021, 0x4063C220, + 0x40646A20, 0x00000003, 0x4062B021, 0x4063C220, 0x40647220, 0x00000003, + 0x4062B022, 0x4063C220, 0x40647220, 0x00000003, 0x4062B023, 0x4063C220, + 0x40647220, 0x00000002, 0x4062B021, 0x4063CA20, 0x00000002, 0x4062B022, + 0x4063CA20, 0x00000002, 0x4062B023, 0x4063CA20, 0x00000002, 0x4062B024, + 0x4063CA20, 0x00000003, 0x4062B021, 0x4063CA20, 0x40646420, 0x00000003, + 0x4062B021, 0x4063CC20, 0x40648C20, 0x00000002, 0x4062B021, 0x4063D020, + 0x00000002, 0x4062B022, 0x4063D020, 0x00000002, + // Block 332, offset 0x5300 + 0x4062B023, 0x4063D020, 0x00000002, 0x4062B024, 0x4063D020, 0x00000002, + 0x4062B025, 0x4063D020, 0x00000002, 0x4062B026, 0x4063D020, 0x00000002, + 0x4062B027, 0x4063D020, 0x00000002, 0x4062B028, 0x4063D020, 0x00000003, + 0x4062B021, 0x4063D020, 0x40646420, 0x00000003, 0x4062B022, 0x4063D020, + 0x40646420, 0x00000003, 0x4062B023, 0x4063D020, 0x40646420, 0x00000003, + 0x4062B024, 0x4063D020, 0x40646420, 0x00000002, 0x4062B221, 0x4063A820, + 0x00000002, 0x4062B222, 0x4063A820, 0x00000002, 0x4062B223, 0x4063A820, + 0x00000003, 0x4062B221, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B222, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062B223, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062B224, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B225, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062B226, + // Block 333, offset 0x5340 + 0x4063A820, 0x40646A20, 0x00000003, 0x4062B227, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062B228, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B229, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062B22A, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062B22B, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B22C, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062B22D, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062B22E, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B22F, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062B230, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062B231, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B232, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062B233, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062B234, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B235, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062B236, + // Block 334, offset 0x5380 + 0x4063A820, 0x40646A20, 0x00000003, 0x4062B237, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062B238, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B239, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062B23A, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062B23B, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B23C, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062B23D, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062B221, 0x4063A820, 0x40647220, 0x00000003, 0x4062B222, + 0x4063A820, 0x40647220, 0x00000003, 0x4062B223, 0x4063A820, 0x40647220, + 0x00000003, 0x4062B224, 0x4063A820, 0x40647220, 0x00000003, 0x4062B225, + 0x4063A820, 0x40647220, 0x00000003, 0x4062B226, 0x4063A820, 0x40647220, + 0x00000003, 0x4062B227, 0x4063A820, 0x40647220, 0x00000003, 0x4062B228, + 0x4063A820, 0x40647220, 0x00000003, 0x4062B229, + // Block 335, offset 0x53c0 + 0x4063A820, 0x40647220, 0x00000003, 0x4062B22A, 0x4063A820, 0x40647220, + 0x00000003, 0x4062B221, 0x4063A820, 0x40648220, 0x00000003, 0x4062B222, + 0x4063A820, 0x40648220, 0x00000003, 0x4062B223, 0x4063A820, 0x40648220, + 0x00000003, 0x4062B224, 0x4063A820, 0x40648220, 0x00000003, 0x4062B225, + 0x4063A820, 0x40648220, 0x00000003, 0x4062B226, 0x4063A820, 0x40648220, + 0x00000003, 0x4062B227, 0x4063A820, 0x40648220, 0x00000003, 0x4062B228, + 0x4063A820, 0x40648220, 0x00000003, 0x4062B229, 0x4063A820, 0x40648220, + 0x00000003, 0x4062B22A, 0x4063A820, 0x40648220, 0x00000003, 0x4062B22B, + 0x4063A820, 0x40648220, 0x00000003, 0x4062B22C, 0x4063A820, 0x40648220, + 0x00000003, 0x4062B22D, 0x4063A820, 0x40648220, 0x00000003, 0x4062B22E, + 0x4063A820, 0x40648220, 0x00000003, 0x4062B22F, + // Block 336, offset 0x5400 + 0x4063A820, 0x40648220, 0x00000003, 0x4062B230, 0x4063A820, 0x40648220, + 0x00000003, 0x4062B231, 0x4063A820, 0x40648220, 0x00000003, 0x4062B232, + 0x4063A820, 0x40648220, 0x00000003, 0x4062B233, 0x4063A820, 0x40648220, + 0x00000003, 0x4062B234, 0x4063A820, 0x40648220, 0x00000003, 0x4062B235, + 0x4063A820, 0x40648220, 0x00000003, 0x4062B236, 0x4063A820, 0x40648220, + 0x00000003, 0x4062B237, 0x4063A820, 0x40648220, 0x00000003, 0x4062B238, + 0x4063A820, 0x40648220, 0x00000003, 0x4062B239, 0x4063A820, 0x40648220, + 0x00000003, 0x4062B23A, 0x4063A820, 0x40648220, 0x00000003, 0x4062B23B, + 0x4063A820, 0x40648220, 0x00000003, 0x4062B23C, 0x4063A820, 0x40648220, + 0x00000003, 0x4062B23D, 0x4063A820, 0x40648220, 0x00000003, 0x4062B221, + 0x4063A820, 0x40648420, 0x00000003, 0x4062B222, + // Block 337, offset 0x5440 + 0x4063A820, 0x40648420, 0x00000003, 0x4062B223, 0x4063A820, 0x40648420, + 0x00000003, 0x4062B224, 0x4063A820, 0x40648420, 0x00000003, 0x4062B225, + 0x4063A820, 0x40648420, 0x00000003, 0x4062B221, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062B222, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B223, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062B224, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062B225, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B226, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062B227, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062B228, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B229, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062B22A, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062B22B, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B22C, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062B22D, + // Block 338, offset 0x5480 + 0x4063A820, 0x40648C20, 0x00000003, 0x4062B22E, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062B22F, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B230, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062B231, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062B232, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B233, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062B234, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062B235, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B236, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062B237, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062B238, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B239, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062B23A, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062B23B, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B23C, + 0x4063A820, 0x40648C20, 0x00000002, 0x4062B221, + // Block 339, offset 0x54c0 + 0x4063AA20, 0x00000002, 0x4062B222, 0x4063AA20, 0x00000002, 0x4062B223, + 0x4063AA20, 0x00000002, 0x4062B224, 0x4063AA20, 0x00000002, 0x4062B225, + 0x4063AA20, 0x00000002, 0x4062B226, 0x4063AA20, 0x00000002, 0x4062B227, + 0x4063AA20, 0x00000002, 0x4062B228, 0x4063AA20, 0x00000002, 0x4062B229, + 0x4063AA20, 0x00000002, 0x4062B22A, 0x4063AA20, 0x00000002, 0x4062B22B, + 0x4063AA20, 0x00000002, 0x4062B22C, 0x4063AA20, 0x00000002, 0x4062B22D, + 0x4063AA20, 0x00000002, 0x4062B22E, 0x4063AA20, 0x00000002, 0x4062B22F, + 0x4063AA20, 0x00000002, 0x4062B230, 0x4063AA20, 0x00000002, 0x4062B231, + 0x4063AA20, 0x00000002, 0x4062B232, 0x4063AA20, 0x00000002, 0x4062B233, + 0x4063AA20, 0x00000002, 0x4062B234, 0x4063AA20, 0x00000002, 0x4062B235, + 0x4063AA20, 0x00000002, 0x4062B236, 0x4063AA20, + // Block 340, offset 0x5500 + 0x00000003, 0x4062B221, 0x4063AA20, 0x40646420, 0x00000003, 0x4062B221, + 0x4063B020, 0x40646420, 0x00000003, 0x4062B222, 0x4063B020, 0x40646420, + 0x00000002, 0x4062B221, 0x4063B820, 0x00000002, 0x4062B222, 0x4063B820, + 0x00000002, 0x4062B223, 0x4063B820, 0x00000002, 0x4062B224, 0x4063B820, + 0x00000002, 0x4062B225, 0x4063B820, 0x00000002, 0x4062B226, 0x4063B820, + 0x00000002, 0x4062B227, 0x4063B820, 0x00000002, 0x4062B228, 0x4063B820, + 0x00000002, 0x4062B229, 0x4063B820, 0x00000002, 0x4062B22A, 0x4063B820, + 0x00000002, 0x4062B22B, 0x4063B820, 0x00000002, 0x4062B22C, 0x4063B820, + 0x00000002, 0x4062B22D, 0x4063B820, 0x00000002, 0x4062B22E, 0x4063B820, + 0x00000002, 0x4062B22F, 0x4063B820, 0x00000002, 0x4062B230, 0x4063B820, + 0x00000002, 0x4062B231, 0x4063B820, 0x00000002, + // Block 341, offset 0x5540 + 0x4062B232, 0x4063B820, 0x00000002, 0x4062B233, 0x4063B820, 0x00000002, + 0x4062B234, 0x4063B820, 0x00000002, 0x4062B235, 0x4063B820, 0x00000002, + 0x4062B236, 0x4063B820, 0x00000002, 0x4062B237, 0x4063B820, 0x00000002, + 0x4062B238, 0x4063B820, 0x00000002, 0x4062B239, 0x4063B820, 0x00000002, + 0x4062B23A, 0x4063B820, 0x00000002, 0x4062B23B, 0x4063B820, 0x00000002, + 0x4062B23C, 0x4063B820, 0x00000002, 0x4062B23D, 0x4063B820, 0x00000002, + 0x4062B23E, 0x4063B820, 0x00000002, 0x4062B23F, 0x4063B820, 0x00000002, + 0x4062B240, 0x4063B820, 0x00000002, 0x4062B241, 0x4063B820, 0x00000002, + 0x4062B242, 0x4063B820, 0x00000002, 0x4062B243, 0x4063B820, 0x00000002, + 0x4062B244, 0x4063B820, 0x00000002, 0x4062B245, 0x4063B820, 0x00000002, + 0x4062B246, 0x4063B820, 0x00000002, 0x4062B247, + // Block 342, offset 0x5580 + 0x4063B820, 0x00000002, 0x4062B248, 0x4063B820, 0x00000002, 0x4062B249, + 0x4063B820, 0x00000002, 0x4062B24A, 0x4063B820, 0x00000002, 0x4062B24B, + 0x4063B820, 0x00000002, 0x4062B24C, 0x4063B820, 0x00000002, 0x4062B24D, + 0x4063B820, 0x00000002, 0x4062B24E, 0x4063B820, 0x00000002, 0x4062B24F, + 0x4063B820, 0x00000002, 0x4062B250, 0x4063B820, 0x00000002, 0x4062B251, + 0x4063B820, 0x00000002, 0x4062B252, 0x4063B820, 0x00000002, 0x4062B253, + 0x4063B820, 0x00000002, 0x4062B254, 0x4063B820, 0x00000002, 0x4062B255, + 0x4063B820, 0x00000002, 0x4062B256, 0x4063B820, 0x00000002, 0x4062B257, + 0x4063B820, 0x00000002, 0x4062B258, 0x4063B820, 0x00000002, 0x4062B259, + 0x4063B820, 0x00000002, 0x4062B25A, 0x4063B820, 0x00000002, 0x4062B25B, + 0x4063B820, 0x00000003, 0x4062B221, 0x4063B820, + // Block 343, offset 0x55c0 + 0x40646420, 0x00000003, 0x4062B222, 0x4063B820, 0x40646420, 0x00000003, + 0x4062B223, 0x4063B820, 0x40646420, 0x00000003, 0x4062B224, 0x4063B820, + 0x40646420, 0x00000003, 0x4062B225, 0x4063B820, 0x40646420, 0x00000003, + 0x4062B226, 0x4063B820, 0x40646420, 0x00000003, 0x4062B227, 0x4063B820, + 0x40646420, 0x00000003, 0x4062B228, 0x4063B820, 0x40646420, 0x00000003, + 0x4062B229, 0x4063B820, 0x40646420, 0x00000003, 0x4062B22A, 0x4063B820, + 0x40646420, 0x00000003, 0x4062B22B, 0x4063B820, 0x40646420, 0x00000003, + 0x4062B22C, 0x4063B820, 0x40646420, 0x00000003, 0x4062B221, 0x4063B820, + 0x40646A20, 0x00000003, 0x4062B222, 0x4063B820, 0x40646A20, 0x00000003, + 0x4062B223, 0x4063B820, 0x40646A20, 0x00000003, 0x4062B224, 0x4063B820, + 0x40646A20, 0x00000003, 0x4062B225, 0x4063B820, + // Block 344, offset 0x5600 + 0x40646A20, 0x00000003, 0x4062B226, 0x4063B820, 0x40646A20, 0x00000003, + 0x4062B227, 0x4063B820, 0x40646A20, 0x00000003, 0x4062B228, 0x4063B820, + 0x40646A20, 0x00000003, 0x4062B229, 0x4063B820, 0x40646A20, 0x00000003, + 0x4062B22A, 0x4063B820, 0x40646A20, 0x00000003, 0x4062B22B, 0x4063B820, + 0x40646A20, 0x00000003, 0x4062B22C, 0x4063B820, 0x40646A20, 0x00000003, + 0x4062B22D, 0x4063B820, 0x40646A20, 0x00000003, 0x4062B221, 0x4063B820, + 0x40647220, 0x00000003, 0x4062B222, 0x4063B820, 0x40647220, 0x00000003, + 0x4062B223, 0x4063B820, 0x40647220, 0x00000003, 0x4062B224, 0x4063B820, + 0x40647220, 0x00000003, 0x4062B221, 0x4063B820, 0x40648C20, 0x00000003, + 0x4062B222, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B223, 0x4063B820, + 0x40648C20, 0x00000003, 0x4062B224, 0x4063B820, + // Block 345, offset 0x5640 + 0x40648C20, 0x00000003, 0x4062B225, 0x4063B820, 0x40648C20, 0x00000003, + 0x4062B226, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B227, 0x4063B820, + 0x40648C20, 0x00000003, 0x4062B228, 0x4063B820, 0x40648C20, 0x00000003, + 0x4062B229, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B22A, 0x4063B820, + 0x40648C20, 0x00000003, 0x4062B22B, 0x4063B820, 0x40648C20, 0x00000003, + 0x4062B22C, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B22D, 0x4063B820, + 0x40648C20, 0x00000003, 0x4062B22E, 0x4063B820, 0x40648C20, 0x00000003, + 0x4062B22F, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B230, 0x4063B820, + 0x40648C20, 0x00000003, 0x4062B231, 0x4063B820, 0x40648C20, 0x00000003, + 0x4062B232, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B233, 0x4063B820, + 0x40648C20, 0x00000003, 0x4062B234, 0x4063B820, + // Block 346, offset 0x5680 + 0x40648C20, 0x00000003, 0x4062B235, 0x4063B820, 0x40648C20, 0x00000003, + 0x4062B236, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B237, 0x4063B820, + 0x40648C20, 0x00000003, 0x4062B238, 0x4063B820, 0x40648C20, 0x00000003, + 0x4062B239, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B23A, 0x4063B820, + 0x40648C20, 0x00000003, 0x4062B23B, 0x4063B820, 0x40648C20, 0x00000003, + 0x4062B23C, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B23D, 0x4063B820, + 0x40648C20, 0x00000003, 0x4062B23E, 0x4063B820, 0x40648C20, 0x00000003, + 0x4062B23F, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B240, 0x4063B820, + 0x40648C20, 0x00000003, 0x4062B241, 0x4063B820, 0x40648C20, 0x00000002, + 0x4062B221, 0x4063C220, 0x00000002, 0x4062B222, 0x4063C220, 0x00000002, + 0x4062B223, 0x4063C220, 0x00000002, 0x4062B224, + // Block 347, offset 0x56c0 + 0x4063C220, 0x00000002, 0x4062B225, 0x4063C220, 0x00000002, 0x4062B226, + 0x4063C220, 0x00000002, 0x4062B227, 0x4063C220, 0x00000002, 0x4062B228, + 0x4063C220, 0x00000002, 0x4062B229, 0x4063C220, 0x00000002, 0x4062B22A, + 0x4063C220, 0x00000002, 0x4062B22B, 0x4063C220, 0x00000002, 0x4062B22C, + 0x4063C220, 0x00000002, 0x4062B22D, 0x4063C220, 0x00000002, 0x4062B22E, + 0x4063C220, 0x00000002, 0x4062B22F, 0x4063C220, 0x00000002, 0x4062B230, + 0x4063C220, 0x00000002, 0x4062B231, 0x4063C220, 0x00000003, 0x4062B221, + 0x4063C220, 0x40646A20, 0x00000003, 0x4062B222, 0x4063C220, 0x40646A20, + 0x00000003, 0x4062B223, 0x4063C220, 0x40646A20, 0x00000003, 0x4062B224, + 0x4063C220, 0x40646A20, 0x00000003, 0x4062B225, 0x4063C220, 0x40646A20, + 0x00000003, 0x4062B226, 0x4063C220, 0x40646A20, + // Block 348, offset 0x5700 + 0x00000003, 0x4062B227, 0x4063C220, 0x40646A20, 0x00000003, 0x4062B228, + 0x4063C220, 0x40646A20, 0x00000003, 0x4062B221, 0x4063C220, 0x40647220, + 0x00000003, 0x4062B221, 0x4063CC20, 0x40646420, 0x00000003, 0x4062B221, + 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B222, 0x4063CC20, 0x40648C20, + 0x00000003, 0x4062B223, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B224, + 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B225, 0x4063CC20, 0x40648C20, + 0x00000003, 0x4062B226, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B227, + 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B228, 0x4063CC20, 0x40648C20, + 0x00000003, 0x4062B229, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B22A, + 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B22B, 0x4063CC20, 0x40648C20, + 0x00000003, 0x4062B22C, 0x4063CC20, 0x40648C20, + // Block 349, offset 0x5740 + 0x00000003, 0x4062B22D, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B22E, + 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B22F, 0x4063CC20, 0x40648C20, + 0x00000003, 0x4062B230, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B231, + 0x4063CC20, 0x40648C20, 0x00000002, 0x4062B621, 0x4063A820, 0x00000002, + 0x4062B622, 0x4063A820, 0x00000002, 0x4062B623, 0x4063A820, 0x00000002, + 0x4062B624, 0x4063A820, 0x00000002, 0x4062B625, 0x4063A820, 0x00000002, + 0x4062B626, 0x4063A820, 0x00000002, 0x4062B627, 0x4063A820, 0x00000002, + 0x4062B628, 0x4063A820, 0x00000002, 0x4062B629, 0x4063A820, 0x00000002, + 0x4062B62A, 0x4063A820, 0x00000002, 0x4062B62B, 0x4063A820, 0x00000002, + 0x4062B62C, 0x4063A820, 0x00000002, 0x4062B62D, 0x4063A820, 0x00000002, + 0x4062B62E, 0x4063A820, 0x00000002, 0x4062B62F, + // Block 350, offset 0x5780 + 0x4063A820, 0x00000002, 0x4062B630, 0x4063A820, 0x00000002, 0x4062B631, + 0x4063A820, 0x00000003, 0x4062B621, 0x4063A820, 0x40646420, 0x00000003, + 0x4062B622, 0x4063A820, 0x40646420, 0x00000003, 0x4062B623, 0x4063A820, + 0x40646420, 0x00000003, 0x4062B624, 0x4063A820, 0x40646420, 0x00000003, + 0x4062B625, 0x4063A820, 0x40646420, 0x00000003, 0x4062B626, 0x4063A820, + 0x40646420, 0x00000003, 0x4062B627, 0x4063A820, 0x40646420, 0x00000003, + 0x4062B628, 0x4063A820, 0x40646420, 0x00000003, 0x4062B629, 0x4063A820, + 0x40646420, 0x00000003, 0x4062B621, 0x4063A820, 0x40646A20, 0x00000003, + 0x4062B622, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B623, 0x4063A820, + 0x40646A20, 0x00000003, 0x4062B624, 0x4063A820, 0x40646A20, 0x00000003, + 0x4062B625, 0x4063A820, 0x40646A20, 0x00000003, + // Block 351, offset 0x57c0 + 0x4062B626, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B627, 0x4063A820, + 0x40646A20, 0x00000003, 0x4062B628, 0x4063A820, 0x40646A20, 0x00000003, + 0x4062B629, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B62A, 0x4063A820, + 0x40646A20, 0x00000003, 0x4062B62B, 0x4063A820, 0x40646A20, 0x00000003, + 0x4062B62C, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B62D, 0x4063A820, + 0x40646A20, 0x00000003, 0x4062B62E, 0x4063A820, 0x40646A20, 0x00000003, + 0x4062B62F, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B621, 0x4063A820, + 0x40647220, 0x00000003, 0x4062B622, 0x4063A820, 0x40647220, 0x00000003, + 0x4062B623, 0x4063A820, 0x40647220, 0x00000003, 0x4062B624, 0x4063A820, + 0x40647220, 0x00000003, 0x4062B621, 0x4063A820, 0x40648220, 0x00000003, + 0x4062B622, 0x4063A820, 0x40648220, 0x00000003, + // Block 352, offset 0x5800 + 0x4062B623, 0x4063A820, 0x40648220, 0x00000003, 0x4062B624, 0x4063A820, + 0x40648220, 0x00000003, 0x4062B625, 0x4063A820, 0x40648220, 0x00000003, + 0x4062B626, 0x4063A820, 0x40648220, 0x00000003, 0x4062B627, 0x4063A820, + 0x40648220, 0x00000003, 0x4062B628, 0x4063A820, 0x40648220, 0x00000003, + 0x4062B629, 0x4063A820, 0x40648220, 0x00000003, 0x4062B62A, 0x4063A820, + 0x40648220, 0x00000003, 0x4062B62B, 0x4063A820, 0x40648220, 0x00000003, + 0x4062B62C, 0x4063A820, 0x40648220, 0x00000003, 0x4062B621, 0x4063A820, + 0x40648420, 0x00000003, 0x4062B622, 0x4063A820, 0x40648420, 0x00000003, + 0x4062B623, 0x4063A820, 0x40648420, 0x00000003, 0x4062B624, 0x4063A820, + 0x40648420, 0x00000003, 0x4062B621, 0x4063A820, 0x40648C20, 0x00000003, + 0x4062B622, 0x4063A820, 0x40648C20, 0x00000003, + // Block 353, offset 0x5840 + 0x4062B623, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B624, 0x4063A820, + 0x40648C20, 0x00000003, 0x4062B625, 0x4063A820, 0x40648C20, 0x00000003, + 0x4062B626, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B627, 0x4063A820, + 0x40648C20, 0x00000003, 0x4062B628, 0x4063A820, 0x40648C20, 0x00000003, + 0x4062B629, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B62A, 0x4063A820, + 0x40648C20, 0x00000003, 0x4062B62B, 0x4063A820, 0x40648C20, 0x00000003, + 0x4062B62C, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B62D, 0x4063A820, + 0x40648C20, 0x00000003, 0x4062B62E, 0x4063A820, 0x40648C20, 0x00000002, + 0x4062B621, 0x4063AA20, 0x00000002, 0x4062B622, 0x4063AA20, 0x00000002, + 0x4062B623, 0x4063AA20, 0x00000002, 0x4062B624, 0x4063AA20, 0x00000002, + 0x4062B625, 0x4063AA20, 0x00000002, 0x4062B626, + // Block 354, offset 0x5880 + 0x4063AA20, 0x00000003, 0x4062B621, 0x4063AA20, 0x40648C20, 0x00000003, + 0x4062B621, 0x4063AC20, 0x40646420, 0x00000003, 0x4062B622, 0x4063AC20, + 0x40646420, 0x00000003, 0x4062B623, 0x4063AC20, 0x40646420, 0x00000003, + 0x4062B621, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062B622, 0x4063AC20, + 0x40648C20, 0x00000003, 0x4062B623, 0x4063AC20, 0x40648C20, 0x00000003, + 0x4062B624, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062B625, 0x4063AC20, + 0x40648C20, 0x00000003, 0x4062B626, 0x4063AC20, 0x40648C20, 0x00000003, + 0x4062B627, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062B628, 0x4063AC20, + 0x40648C20, 0x00000003, 0x4062B629, 0x4063AC20, 0x40648C20, 0x00000003, + 0x4062B62A, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062B62B, 0x4063AC20, + 0x40648C20, 0x00000003, 0x4062B62C, 0x4063AC20, + // Block 355, offset 0x58c0 + 0x40648C20, 0x00000003, 0x4062B62D, 0x4063AC20, 0x40648C20, 0x00000003, + 0x4062B62E, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062B62F, 0x4063AC20, + 0x40648C20, 0x00000003, 0x4062B630, 0x4063AC20, 0x40648C20, 0x00000003, + 0x4062B631, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062B632, 0x4063AC20, + 0x40648C20, 0x00000003, 0x4062B633, 0x4063AC20, 0x40648C20, 0x00000002, + 0x4062B621, 0x4063B420, 0x00000002, 0x4062B622, 0x4063B420, 0x00000002, + 0x4062B623, 0x4063B420, 0x00000002, 0x4062B624, 0x4063B420, 0x00000002, + 0x4062B625, 0x4063B420, 0x00000002, 0x4062B626, 0x4063B420, 0x00000002, + 0x4062B627, 0x4063B420, 0x00000002, 0x4062B628, 0x4063B420, 0x00000002, + 0x4062B629, 0x4063B420, 0x00000002, 0x4062B62A, 0x4063B420, 0x00000002, + 0x4062B62B, 0x4063B420, 0x00000002, 0x4062B62C, + // Block 356, offset 0x5900 + 0x4063B420, 0x00000002, 0x4062B62D, 0x4063B420, 0x00000002, 0x4062B62E, + 0x4063B420, 0x00000002, 0x4062B62F, 0x4063B420, 0x00000002, 0x4062B630, + 0x4063B420, 0x00000002, 0x4062B631, 0x4063B420, 0x00000002, 0x4062B632, + 0x4063B420, 0x00000002, 0x4062B633, 0x4063B420, 0x00000002, 0x4062B634, + 0x4063B420, 0x00000002, 0x4062B635, 0x4063B420, 0x00000002, 0x4062B636, + 0x4063B420, 0x00000002, 0x4062B637, 0x4063B420, 0x00000002, 0x4062B638, + 0x4063B420, 0x00000002, 0x4062B639, 0x4063B420, 0x00000002, 0x4062B63A, + 0x4063B420, 0x00000002, 0x4062B63B, 0x4063B420, 0x00000002, 0x4062B63C, + 0x4063B420, 0x00000002, 0x4062B63D, 0x4063B420, 0x00000003, 0x4062B621, + 0x4063B420, 0x40646420, 0x00000003, 0x4062B622, 0x4063B420, 0x40646420, + 0x00000003, 0x4062B623, 0x4063B420, 0x40646420, + // Block 357, offset 0x5940 + 0x00000003, 0x4062B624, 0x4063B420, 0x40646420, 0x00000003, 0x4062B625, + 0x4063B420, 0x40646420, 0x00000003, 0x4062B626, 0x4063B420, 0x40646420, + 0x00000003, 0x4062B627, 0x4063B420, 0x40646420, 0x00000003, 0x4062B628, + 0x4063B420, 0x40646420, 0x00000003, 0x4062B629, 0x4063B420, 0x40646420, + 0x00000003, 0x4062B62A, 0x4063B420, 0x40646420, 0x00000003, 0x4062B62B, + 0x4063B420, 0x40646420, 0x00000003, 0x4062B62C, 0x4063B420, 0x40646420, + 0x00000003, 0x4062B62D, 0x4063B420, 0x40646420, 0x00000003, 0x4062B621, + 0x4063B420, 0x40646A20, 0x00000003, 0x4062B622, 0x4063B420, 0x40646A20, + 0x00000003, 0x4062B623, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B624, + 0x4063B420, 0x40646A20, 0x00000003, 0x4062B625, 0x4063B420, 0x40646A20, + 0x00000003, 0x4062B626, 0x4063B420, 0x40646A20, + // Block 358, offset 0x5980 + 0x00000003, 0x4062B627, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B628, + 0x4063B420, 0x40646A20, 0x00000003, 0x4062B629, 0x4063B420, 0x40646A20, + 0x00000003, 0x4062B62A, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B62B, + 0x4063B420, 0x40646A20, 0x00000003, 0x4062B62C, 0x4063B420, 0x40646A20, + 0x00000003, 0x4062B62D, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B62E, + 0x4063B420, 0x40646A20, 0x00000003, 0x4062B62F, 0x4063B420, 0x40646A20, + 0x00000003, 0x4062B630, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B631, + 0x4063B420, 0x40646A20, 0x00000003, 0x4062B632, 0x4063B420, 0x40646A20, + 0x00000003, 0x4062B633, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B621, + 0x4063B420, 0x40647220, 0x00000003, 0x4062B622, 0x4063B420, 0x40647220, + 0x00000003, 0x4062B623, 0x4063B420, 0x40647220, + // Block 359, offset 0x59c0 + 0x00000003, 0x4062B624, 0x4063B420, 0x40647220, 0x00000003, 0x4062B625, + 0x4063B420, 0x40647220, 0x00000003, 0x4062B626, 0x4063B420, 0x40647220, + 0x00000003, 0x4062B627, 0x4063B420, 0x40647220, 0x00000003, 0x4062B628, + 0x4063B420, 0x40647220, 0x00000003, 0x4062B629, 0x4063B420, 0x40647220, + 0x00000003, 0x4062B621, 0x4063B420, 0x40648220, 0x00000003, 0x4062B622, + 0x4063B420, 0x40648220, 0x00000003, 0x4062B623, 0x4063B420, 0x40648220, + 0x00000003, 0x4062B624, 0x4063B420, 0x40648220, 0x00000003, 0x4062B625, + 0x4063B420, 0x40648220, 0x00000003, 0x4062B626, 0x4063B420, 0x40648220, + 0x00000003, 0x4062B627, 0x4063B420, 0x40648220, 0x00000003, 0x4062B628, + 0x4063B420, 0x40648220, 0x00000003, 0x4062B621, 0x4063B420, 0x40648420, + 0x00000003, 0x4062B622, 0x4063B420, 0x40648420, + // Block 360, offset 0x5a00 + 0x00000003, 0x4062B623, 0x4063B420, 0x40648420, 0x00000003, 0x4062B621, + 0x4063B420, 0x40648C20, 0x00000003, 0x4062B622, 0x4063B420, 0x40648C20, + 0x00000003, 0x4062B623, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B624, + 0x4063B420, 0x40648C20, 0x00000003, 0x4062B625, 0x4063B420, 0x40648C20, + 0x00000003, 0x4062B626, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B627, + 0x4063B420, 0x40648C20, 0x00000003, 0x4062B628, 0x4063B420, 0x40648C20, + 0x00000003, 0x4062B629, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B62A, + 0x4063B420, 0x40648C20, 0x00000003, 0x4062B62B, 0x4063B420, 0x40648C20, + 0x00000003, 0x4062B62C, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B62D, + 0x4063B420, 0x40648C20, 0x00000003, 0x4062B62E, 0x4063B420, 0x40648C20, + 0x00000003, 0x4062B62F, 0x4063B420, 0x40648C20, + // Block 361, offset 0x5a40 + 0x00000003, 0x4062B630, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B631, + 0x4063B420, 0x40648C20, 0x00000003, 0x4062B632, 0x4063B420, 0x40648C20, + 0x00000003, 0x4062B633, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B634, + 0x4063B420, 0x40648C20, 0x00000003, 0x4062B635, 0x4063B420, 0x40648C20, + 0x00000003, 0x4062B636, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B637, + 0x4063B420, 0x40648C20, 0x00000003, 0x4062B638, 0x4063B420, 0x40648C20, + 0x00000003, 0x4062B639, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B63A, + 0x4063B420, 0x40648C20, 0x00000003, 0x4062B63B, 0x4063B420, 0x40648C20, + 0x00000003, 0x4062B63C, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B63D, + 0x4063B420, 0x40648C20, 0x00000003, 0x4062B63E, 0x4063B420, 0x40648C20, + 0x00000002, 0x4062B621, 0x4063B620, 0x00000002, + // Block 362, offset 0x5a80 + 0x4062B622, 0x4063B620, 0x00000002, 0x4062B623, 0x4063B620, 0x00000002, + 0x4062B624, 0x4063B620, 0x00000002, 0x4062B625, 0x4063B620, 0x00000002, + 0x4062B626, 0x4063B620, 0x00000002, 0x4062B627, 0x4063B620, 0x00000002, + 0x4062B621, 0x4063B820, 0x00000002, 0x4062B622, 0x4063B820, 0x00000002, + 0x4062B623, 0x4063B820, 0x00000002, 0x4062B624, 0x4063B820, 0x00000002, + 0x4062B625, 0x4063B820, 0x00000002, 0x4062B626, 0x4063B820, 0x00000002, + 0x4062B627, 0x4063B820, 0x00000002, 0x4062B628, 0x4063B820, 0x00000002, + 0x4062B629, 0x4063B820, 0x00000002, 0x4062B62A, 0x4063B820, 0x00000002, + 0x4062B62B, 0x4063B820, 0x00000002, 0x4062B62C, 0x4063B820, 0x00000002, + 0x4062B62D, 0x4063B820, 0x00000002, 0x4062B62E, 0x4063B820, 0x00000002, + 0x4062B62F, 0x4063B820, 0x00000002, 0x4062B630, + // Block 363, offset 0x5ac0 + 0x4063B820, 0x00000002, 0x4062B631, 0x4063B820, 0x00000002, 0x4062B632, + 0x4063B820, 0x00000002, 0x4062B633, 0x4063B820, 0x00000002, 0x4062B634, + 0x4063B820, 0x00000002, 0x4062B635, 0x4063B820, 0x00000002, 0x4062B636, + 0x4063B820, 0x00000002, 0x4062B637, 0x4063B820, 0x00000002, 0x4062B638, + 0x4063B820, 0x00000002, 0x4062B639, 0x4063B820, 0x00000002, 0x4062B63A, + 0x4063B820, 0x00000002, 0x4062B63B, 0x4063B820, 0x00000002, 0x4062B63C, + 0x4063B820, 0x00000002, 0x4062B63D, 0x4063B820, 0x00000002, 0x4062B63E, + 0x4063B820, 0x00000002, 0x4062B63F, 0x4063B820, 0x00000003, 0x4062B621, + 0x4063B820, 0x40646420, 0x00000003, 0x4062B622, 0x4063B820, 0x40646420, + 0x00000003, 0x4062B623, 0x4063B820, 0x40646420, 0x00000003, 0x4062B624, + 0x4063B820, 0x40646420, 0x00000003, 0x4062B625, + // Block 364, offset 0x5b00 + 0x4063B820, 0x40646420, 0x00000003, 0x4062B626, 0x4063B820, 0x40646420, + 0x00000003, 0x4062B627, 0x4063B820, 0x40646420, 0x00000003, 0x4062B628, + 0x4063B820, 0x40646420, 0x00000003, 0x4062B629, 0x4063B820, 0x40646420, + 0x00000003, 0x4062B62A, 0x4063B820, 0x40646420, 0x00000003, 0x4062B62B, + 0x4063B820, 0x40646420, 0x00000003, 0x4062B62C, 0x4063B820, 0x40646420, + 0x00000003, 0x4062B62D, 0x4063B820, 0x40646420, 0x00000003, 0x4062B62E, + 0x4063B820, 0x40646420, 0x00000003, 0x4062B621, 0x4063B820, 0x40646A20, + 0x00000003, 0x4062B621, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B622, + 0x4063B820, 0x40648C20, 0x00000003, 0x4062B623, 0x4063B820, 0x40648C20, + 0x00000003, 0x4062B624, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B625, + 0x4063B820, 0x40648C20, 0x00000003, 0x4062B626, + // Block 365, offset 0x5b40 + 0x4063B820, 0x40648C20, 0x00000003, 0x4062B627, 0x4063B820, 0x40648C20, + 0x00000003, 0x4062B628, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B629, + 0x4063B820, 0x40648C20, 0x00000003, 0x4062B62A, 0x4063B820, 0x40648C20, + 0x00000003, 0x4062B62B, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B62C, + 0x4063B820, 0x40648C20, 0x00000003, 0x4062B62D, 0x4063B820, 0x40648C20, + 0x00000003, 0x4062B62E, 0x4063B820, 0x40648C20, 0x00000002, 0x4062B621, + 0x4063BE20, 0x00000002, 0x4062B622, 0x4063BE20, 0x00000002, 0x4062B623, + 0x4063BE20, 0x00000002, 0x4062B624, 0x4063BE20, 0x00000002, 0x4062B625, + 0x4063BE20, 0x00000002, 0x4062B626, 0x4063BE20, 0x00000002, 0x4062B627, + 0x4063BE20, 0x00000002, 0x4062B628, 0x4063BE20, 0x00000002, 0x4062B629, + 0x4063BE20, 0x00000002, 0x4062B62A, 0x4063BE20, + // Block 366, offset 0x5b80 + 0x00000002, 0x4062B62B, 0x4063BE20, 0x00000002, 0x4062B62C, 0x4063BE20, + 0x00000002, 0x4062B62D, 0x4063BE20, 0x00000002, 0x4062B62E, 0x4063BE20, + 0x00000002, 0x4062B62F, 0x4063BE20, 0x00000002, 0x4062B630, 0x4063BE20, + 0x00000002, 0x4062B631, 0x4063BE20, 0x00000002, 0x4062B632, 0x4063BE20, + 0x00000002, 0x4062B633, 0x4063BE20, 0x00000002, 0x4062B621, 0x4063C020, + 0x00000002, 0x4062B622, 0x4063C020, 0x00000002, 0x4062B623, 0x4063C020, + 0x00000002, 0x4062B624, 0x4063C020, 0x00000002, 0x4062B625, 0x4063C020, + 0x00000002, 0x4062B626, 0x4063C020, 0x00000002, 0x4062B627, 0x4063C020, + 0x00000002, 0x4062B628, 0x4063C020, 0x00000002, 0x4062B629, 0x4063C020, + 0x00000002, 0x4062B62A, 0x4063C020, 0x00000002, 0x4062B62B, 0x4063C020, + 0x00000002, 0x4062B62C, 0x4063C020, 0x00000002, + // Block 367, offset 0x5bc0 + 0x4062B62D, 0x4063C020, 0x00000002, 0x4062B62E, 0x4063C020, 0x00000002, + 0x4062B62F, 0x4063C020, 0x00000002, 0x4062B630, 0x4063C020, 0x00000002, + 0x4062B631, 0x4063C020, 0x00000002, 0x4062B632, 0x4063C020, 0x00000002, + 0x4062B633, 0x4063C020, 0x00000002, 0x4062B634, 0x4063C020, 0x00000002, + 0x4062B635, 0x4063C020, 0x00000002, 0x4062B636, 0x4063C020, 0x00000002, + 0x4062B637, 0x4063C020, 0x00000002, 0x4062B638, 0x4063C020, 0x00000003, + 0x4062B621, 0x4063C020, 0x40648C20, 0x00000003, 0x4062B622, 0x4063C020, + 0x40648C20, 0x00000002, 0x4062B621, 0x4063C220, 0x00000002, 0x4062B622, + 0x4063C220, 0x00000002, 0x4062B623, 0x4063C220, 0x00000002, 0x4062B624, + 0x4063C220, 0x00000002, 0x4062B625, 0x4063C220, 0x00000002, 0x4062B626, + 0x4063C220, 0x00000002, 0x4062B627, 0x4063C220, + // Block 368, offset 0x5c00 + 0x00000002, 0x4062B628, 0x4063C220, 0x00000002, 0x4062B629, 0x4063C220, + 0x00000002, 0x4062B62A, 0x4063C220, 0x00000002, 0x4062B62B, 0x4063C220, + 0x00000002, 0x4062B62C, 0x4063C220, 0x00000002, 0x4062B62D, 0x4063C220, + 0x00000002, 0x4062B62E, 0x4063C220, 0x00000002, 0x4062B62F, 0x4063C220, + 0x00000002, 0x4062B630, 0x4063C220, 0x00000002, 0x4062B631, 0x4063C220, + 0x00000002, 0x4062B632, 0x4063C220, 0x00000002, 0x4062B633, 0x4063C220, + 0x00000002, 0x4062B634, 0x4063C220, 0x00000002, 0x4062B621, 0x4063CA20, + 0x00000002, 0x4062B622, 0x4063CA20, 0x00000002, 0x4062B623, 0x4063CA20, + 0x00000002, 0x4062B624, 0x4063CA20, 0x00000002, 0x4062B625, 0x4063CA20, + 0x00000002, 0x4062B626, 0x4063CA20, 0x00000002, 0x4062B627, 0x4063CA20, + 0x00000002, 0x4062B628, 0x4063CA20, 0x00000002, + // Block 369, offset 0x5c40 + 0x4062B629, 0x4063CA20, 0x00000002, 0x4062B62A, 0x4063CA20, 0x00000002, + 0x4062B62B, 0x4063CA20, 0x00000002, 0x4062B62C, 0x4063CA20, 0x00000002, + 0x4062B62D, 0x4063CA20, 0x00000002, 0x4062B62E, 0x4063CA20, 0x00000002, + 0x4062B62F, 0x4063CA20, 0x00000002, 0x4062B630, 0x4063CA20, 0x00000002, + 0x4062B631, 0x4063CA20, 0x00000002, 0x4062B632, 0x4063CA20, 0x00000002, + 0x4062B633, 0x4063CA20, 0x00000003, 0x4062B621, 0x4063CA20, 0x40646420, + 0x00000003, 0x4062B622, 0x4063CA20, 0x40646420, 0x00000003, 0x4062B623, + 0x4063CA20, 0x40646420, 0x00000003, 0x4062B624, 0x4063CA20, 0x40646420, + 0x00000003, 0x4062B621, 0x4063CA20, 0x40646A20, 0x00000003, 0x4062B622, + 0x4063CA20, 0x40646A20, 0x00000003, 0x4062B623, 0x4063CA20, 0x40646A20, + 0x00000003, 0x4062B624, 0x4063CA20, 0x40646A20, + // Block 370, offset 0x5c80 + 0x00000003, 0x4062B625, 0x4063CA20, 0x40646A20, 0x00000003, 0x4062B626, + 0x4063CA20, 0x40646A20, 0x00000003, 0x4062B627, 0x4063CA20, 0x40646A20, + 0x00000003, 0x4062B621, 0x4063CA20, 0x40647220, 0x00000003, 0x4062B622, + 0x4063CA20, 0x40647220, 0x00000003, 0x4062B623, 0x4063CA20, 0x40647220, + 0x00000003, 0x4062B624, 0x4063CA20, 0x40647220, 0x00000003, 0x4062B625, + 0x4063CA20, 0x40647220, 0x00000003, 0x4062B621, 0x4063CA20, 0x40648C20, + 0x00000003, 0x4062B622, 0x4063CA20, 0x40648C20, 0x00000003, 0x4062B623, + 0x4063CA20, 0x40648C20, 0x00000003, 0x4062B621, 0x4063CC20, 0x40646420, + 0x00000003, 0x4062B622, 0x4063CC20, 0x40646420, 0x00000003, 0x4062B623, + 0x4063CC20, 0x40646420, 0x00000003, 0x4062B621, 0x4063CC20, 0x40648220, + 0x00000003, 0x4062B622, 0x4063CC20, 0x40648220, + // Block 371, offset 0x5cc0 + 0x00000003, 0x4062B623, 0x4063CC20, 0x40648220, 0x00000003, 0x4062B624, + 0x4063CC20, 0x40648220, 0x00000003, 0x4062B621, 0x4063CC20, 0x40648C20, + 0x00000003, 0x4062B622, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B623, + 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B624, 0x4063CC20, 0x40648C20, + 0x00000003, 0x4062B625, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B626, + 0x4063CC20, 0x40648C20, 0x00000003, 0x4062B627, 0x4063CC20, 0x40648C20, + 0x00000003, 0x4062B628, 0x4063CC20, 0x40648C20, 0x00000002, 0x4062B621, + 0x4063D020, 0x00000002, 0x4062B622, 0x4063D020, 0x00000002, 0x4062B623, + 0x4063D020, 0x00000002, 0x4062B624, 0x4063D020, 0x00000002, 0x4062B625, + 0x4063D020, 0x00000002, 0x4062B626, 0x4063D020, 0x00000002, 0x4062B627, + 0x4063D020, 0x00000002, 0x4062B628, 0x4063D020, + // Block 372, offset 0x5d00 + 0x00000002, 0x4062B629, 0x4063D020, 0x00000002, 0x4062B62A, 0x4063D020, + 0x00000002, 0x4062B62B, 0x4063D020, 0x00000002, 0x4062B62C, 0x4063D020, + 0x00000002, 0x4062B62D, 0x4063D020, 0x00000002, 0x4062B62E, 0x4063D020, + 0x00000002, 0x4062B62F, 0x4063D020, 0x00000002, 0x4062B630, 0x4063D020, + 0x00000002, 0x4062B631, 0x4063D020, 0x00000002, 0x4062B632, 0x4063D020, + 0x00000002, 0x4062B633, 0x4063D020, 0x00000002, 0x4062B634, 0x4063D020, + 0x00000002, 0x4062B635, 0x4063D020, 0x00000002, 0x4062B636, 0x4063D020, + 0x00000002, 0x4062B637, 0x4063D020, 0x00000002, 0x4062B638, 0x4063D020, + 0x00000002, 0x4062B639, 0x4063D020, 0x00000002, 0x4062B63A, 0x4063D020, + 0x00000002, 0x4062B63B, 0x4063D020, 0x00000002, 0x4062B63C, 0x4063D020, + 0x00000002, 0x4062B63D, 0x4063D020, 0x00000002, + // Block 373, offset 0x5d40 + 0x4062B63E, 0x4063D020, 0x00000002, 0x4062B63F, 0x4063D020, 0x00000002, + 0x4062B640, 0x4063D020, 0x00000002, 0x4062B641, 0x4063D020, 0x00000002, + 0x4062B642, 0x4063D020, 0x00000002, 0x4062B643, 0x4063D020, 0x00000002, + 0x4062B644, 0x4063D020, 0x00000002, 0x4062B645, 0x4063D020, 0x00000002, + 0x4062B646, 0x4063D020, 0x00000002, 0x4062B647, 0x4063D020, 0x00000003, + 0x4062B621, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B622, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062B623, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062B624, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B625, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062B626, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062B627, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B628, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062B629, 0x4063D020, + // Block 374, offset 0x5d80 + 0x40646A20, 0x00000003, 0x4062B62A, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062B62B, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B62C, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062B62D, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062B62E, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B62F, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062B630, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062B631, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B632, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062B633, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062B634, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B635, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062B621, 0x4063D020, 0x40648220, 0x00000003, + 0x4062B622, 0x4063D020, 0x40648220, 0x00000003, 0x4062B623, 0x4063D020, + 0x40648220, 0x00000003, 0x4062B624, 0x4063D020, + // Block 375, offset 0x5dc0 + 0x40648220, 0x00000003, 0x4062B625, 0x4063D020, 0x40648220, 0x00000003, + 0x4062B626, 0x4063D020, 0x40648220, 0x00000003, 0x4062B621, 0x4063D020, + 0x40648420, 0x00000003, 0x4062B622, 0x4063D020, 0x40648420, 0x00000003, + 0x4062B623, 0x4063D020, 0x40648420, 0x00000003, 0x4062B624, 0x4063D020, + 0x40648420, 0x00000003, 0x4062B625, 0x4063D020, 0x40648420, 0x00000002, + 0x4062B821, 0x4063A820, 0x00000002, 0x4062B822, 0x4063A820, 0x00000002, + 0x4062B823, 0x4063A820, 0x00000002, 0x4062B824, 0x4063A820, 0x00000002, + 0x4062B825, 0x4063A820, 0x00000002, 0x4062B826, 0x4063A820, 0x00000002, + 0x4062B827, 0x4063A820, 0x00000002, 0x4062B828, 0x4063A820, 0x00000002, + 0x4062B829, 0x4063A820, 0x00000002, 0x4062B82A, 0x4063A820, 0x00000002, + 0x4062B82B, 0x4063A820, 0x00000002, 0x4062B82C, + // Block 376, offset 0x5e00 + 0x4063A820, 0x00000002, 0x4062B82D, 0x4063A820, 0x00000002, 0x4062B82E, + 0x4063A820, 0x00000003, 0x4062B821, 0x4063A820, 0x40646420, 0x00000003, + 0x4062B822, 0x4063A820, 0x40646420, 0x00000003, 0x4062B823, 0x4063A820, + 0x40646420, 0x00000003, 0x4062B824, 0x4063A820, 0x40646420, 0x00000003, + 0x4062B825, 0x4063A820, 0x40646420, 0x00000003, 0x4062B826, 0x4063A820, + 0x40646420, 0x00000003, 0x4062B827, 0x4063A820, 0x40646420, 0x00000003, + 0x4062B828, 0x4063A820, 0x40646420, 0x00000003, 0x4062B821, 0x4063A820, + 0x40646A20, 0x00000003, 0x4062B822, 0x4063A820, 0x40646A20, 0x00000003, + 0x4062B823, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B824, 0x4063A820, + 0x40646A20, 0x00000003, 0x4062B825, 0x4063A820, 0x40646A20, 0x00000003, + 0x4062B826, 0x4063A820, 0x40646A20, 0x00000003, + // Block 377, offset 0x5e40 + 0x4062B827, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B828, 0x4063A820, + 0x40646A20, 0x00000003, 0x4062B829, 0x4063A820, 0x40646A20, 0x00000003, + 0x4062B82A, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B82B, 0x4063A820, + 0x40646A20, 0x00000003, 0x4062B82C, 0x4063A820, 0x40646A20, 0x00000003, + 0x4062B82D, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B82E, 0x4063A820, + 0x40646A20, 0x00000003, 0x4062B82F, 0x4063A820, 0x40646A20, 0x00000003, + 0x4062B830, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B831, 0x4063A820, + 0x40646A20, 0x00000003, 0x4062B832, 0x4063A820, 0x40646A20, 0x00000003, + 0x4062B833, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B834, 0x4063A820, + 0x40646A20, 0x00000003, 0x4062B835, 0x4063A820, 0x40646A20, 0x00000003, + 0x4062B836, 0x4063A820, 0x40646A20, 0x00000003, + // Block 378, offset 0x5e80 + 0x4062B837, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B838, 0x4063A820, + 0x40646A20, 0x00000003, 0x4062B839, 0x4063A820, 0x40646A20, 0x00000003, + 0x4062B83A, 0x4063A820, 0x40646A20, 0x00000003, 0x4062B83B, 0x4063A820, + 0x40646A20, 0x00000003, 0x4062B83C, 0x4063A820, 0x40646A20, 0x00000003, + 0x4062B821, 0x4063A820, 0x40647220, 0x00000003, 0x4062B822, 0x4063A820, + 0x40647220, 0x00000003, 0x4062B823, 0x4063A820, 0x40647220, 0x00000003, + 0x4062B824, 0x4063A820, 0x40647220, 0x00000003, 0x4062B825, 0x4063A820, + 0x40647220, 0x00000003, 0x4062B826, 0x4063A820, 0x40647220, 0x00000003, + 0x4062B827, 0x4063A820, 0x40647220, 0x00000003, 0x4062B828, 0x4063A820, + 0x40647220, 0x00000003, 0x4062B829, 0x4063A820, 0x40647220, 0x00000003, + 0x4062B821, 0x4063A820, 0x40648C20, 0x00000003, + // Block 379, offset 0x5ec0 + 0x4062B822, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B823, 0x4063A820, + 0x40648C20, 0x00000003, 0x4062B824, 0x4063A820, 0x40648C20, 0x00000003, + 0x4062B825, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B826, 0x4063A820, + 0x40648C20, 0x00000003, 0x4062B827, 0x4063A820, 0x40648C20, 0x00000003, + 0x4062B828, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B829, 0x4063A820, + 0x40648C20, 0x00000003, 0x4062B82A, 0x4063A820, 0x40648C20, 0x00000003, + 0x4062B82B, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B82C, 0x4063A820, + 0x40648C20, 0x00000003, 0x4062B82D, 0x4063A820, 0x40648C20, 0x00000003, + 0x4062B82E, 0x4063A820, 0x40648C20, 0x00000003, 0x4062B82F, 0x4063A820, + 0x40648C20, 0x00000003, 0x4062B830, 0x4063A820, 0x40648C20, 0x00000003, + 0x4062B831, 0x4063A820, 0x40648C20, 0x00000003, + // Block 380, offset 0x5f00 + 0x4062B832, 0x4063A820, 0x40648C20, 0x00000002, 0x4062B821, 0x4063AA20, + 0x00000002, 0x4062B822, 0x4063AA20, 0x00000002, 0x4062B823, 0x4063AA20, + 0x00000002, 0x4062B824, 0x4063AA20, 0x00000002, 0x4062B825, 0x4063AA20, + 0x00000002, 0x4062B826, 0x4063AA20, 0x00000002, 0x4062B827, 0x4063AA20, + 0x00000002, 0x4062B828, 0x4063AA20, 0x00000002, 0x4062B829, 0x4063AA20, + 0x00000002, 0x4062B82A, 0x4063AA20, 0x00000002, 0x4062B82B, 0x4063AA20, + 0x00000002, 0x4062B82C, 0x4063AA20, 0x00000002, 0x4062B82D, 0x4063AA20, + 0x00000002, 0x4062B82E, 0x4063AA20, 0x00000002, 0x4062B82F, 0x4063AA20, + 0x00000002, 0x4062B830, 0x4063AA20, 0x00000002, 0x4062B831, 0x4063AA20, + 0x00000002, 0x4062B832, 0x4063AA20, 0x00000002, 0x4062B833, 0x4063AA20, + 0x00000002, 0x4062B834, 0x4063AA20, 0x00000002, + // Block 381, offset 0x5f40 + 0x4062B835, 0x4063AA20, 0x00000002, 0x4062B836, 0x4063AA20, 0x00000002, + 0x4062B837, 0x4063AA20, 0x00000003, 0x4062B821, 0x4063AA20, 0x40646420, + 0x00000003, 0x4062B822, 0x4063AA20, 0x40646420, 0x00000003, 0x4062B823, + 0x4063AA20, 0x40646420, 0x00000003, 0x4062B824, 0x4063AA20, 0x40646420, + 0x00000003, 0x4062B825, 0x4063AA20, 0x40646420, 0x00000003, 0x4062B826, + 0x4063AA20, 0x40646420, 0x00000003, 0x4062B827, 0x4063AA20, 0x40646420, + 0x00000003, 0x4062B828, 0x4063AA20, 0x40646420, 0x00000003, 0x4062B821, + 0x4063AA20, 0x40648C20, 0x00000003, 0x4062B822, 0x4063AA20, 0x40648C20, + 0x00000003, 0x4062B823, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062B824, + 0x4063AA20, 0x40648C20, 0x00000003, 0x4062B825, 0x4063AA20, 0x40648C20, + 0x00000003, 0x4062B826, 0x4063AA20, 0x40648C20, + // Block 382, offset 0x5f80 + 0x00000003, 0x4062B827, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062B828, + 0x4063AA20, 0x40648C20, 0x00000003, 0x4062B829, 0x4063AA20, 0x40648C20, + 0x00000003, 0x4062B82A, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062B821, + 0x4063B420, 0x40646420, 0x00000003, 0x4062B822, 0x4063B420, 0x40646420, + 0x00000003, 0x4062B823, 0x4063B420, 0x40646420, 0x00000003, 0x4062B824, + 0x4063B420, 0x40646420, 0x00000003, 0x4062B821, 0x4063B420, 0x40646A20, + 0x00000003, 0x4062B822, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B823, + 0x4063B420, 0x40646A20, 0x00000003, 0x4062B824, 0x4063B420, 0x40646A20, + 0x00000003, 0x4062B825, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B826, + 0x4063B420, 0x40646A20, 0x00000003, 0x4062B827, 0x4063B420, 0x40646A20, + 0x00000003, 0x4062B828, 0x4063B420, 0x40646A20, + // Block 383, offset 0x5fc0 + 0x00000003, 0x4062B829, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B82A, + 0x4063B420, 0x40646A20, 0x00000003, 0x4062B82B, 0x4063B420, 0x40646A20, + 0x00000003, 0x4062B82C, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B82D, + 0x4063B420, 0x40646A20, 0x00000003, 0x4062B82E, 0x4063B420, 0x40646A20, + 0x00000003, 0x4062B82F, 0x4063B420, 0x40646A20, 0x00000003, 0x4062B830, + 0x4063B420, 0x40646A20, 0x00000003, 0x4062B821, 0x4063B420, 0x40647220, + 0x00000003, 0x4062B822, 0x4063B420, 0x40647220, 0x00000003, 0x4062B823, + 0x4063B420, 0x40647220, 0x00000003, 0x4062B824, 0x4063B420, 0x40647220, + 0x00000003, 0x4062B821, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B822, + 0x4063B420, 0x40648C20, 0x00000003, 0x4062B823, 0x4063B420, 0x40648C20, + 0x00000003, 0x4062B824, 0x4063B420, 0x40648C20, + // Block 384, offset 0x6000 + 0x00000003, 0x4062B825, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B826, + 0x4063B420, 0x40648C20, 0x00000003, 0x4062B827, 0x4063B420, 0x40648C20, + 0x00000003, 0x4062B828, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B829, + 0x4063B420, 0x40648C20, 0x00000003, 0x4062B82A, 0x4063B420, 0x40648C20, + 0x00000003, 0x4062B82B, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B82C, + 0x4063B420, 0x40648C20, 0x00000003, 0x4062B82D, 0x4063B420, 0x40648C20, + 0x00000003, 0x4062B82E, 0x4063B420, 0x40648C20, 0x00000003, 0x4062B82F, + 0x4063B420, 0x40648C20, 0x00000003, 0x4062B830, 0x4063B420, 0x40648C20, + 0x00000002, 0x4062B821, 0x4063B620, 0x00000002, 0x4062B821, 0x4063B820, + 0x00000002, 0x4062B822, 0x4063B820, 0x00000002, 0x4062B823, 0x4063B820, + 0x00000002, 0x4062B824, 0x4063B820, 0x00000002, + // Block 385, offset 0x6040 + 0x4062B825, 0x4063B820, 0x00000002, 0x4062B826, 0x4063B820, 0x00000002, + 0x4062B827, 0x4063B820, 0x00000002, 0x4062B828, 0x4063B820, 0x00000002, + 0x4062B829, 0x4063B820, 0x00000002, 0x4062B82A, 0x4063B820, 0x00000002, + 0x4062B82B, 0x4063B820, 0x00000002, 0x4062B82C, 0x4063B820, 0x00000002, + 0x4062B82D, 0x4063B820, 0x00000002, 0x4062B82E, 0x4063B820, 0x00000002, + 0x4062B82F, 0x4063B820, 0x00000002, 0x4062B830, 0x4063B820, 0x00000002, + 0x4062B831, 0x4063B820, 0x00000002, 0x4062B832, 0x4063B820, 0x00000002, + 0x4062B833, 0x4063B820, 0x00000002, 0x4062B834, 0x4063B820, 0x00000002, + 0x4062B835, 0x4063B820, 0x00000002, 0x4062B836, 0x4063B820, 0x00000002, + 0x4062B837, 0x4063B820, 0x00000002, 0x4062B838, 0x4063B820, 0x00000002, + 0x4062B839, 0x4063B820, 0x00000002, 0x4062B83A, + // Block 386, offset 0x6080 + 0x4063B820, 0x00000002, 0x4062B83B, 0x4063B820, 0x00000002, 0x4062B83C, + 0x4063B820, 0x00000002, 0x4062B83D, 0x4063B820, 0x00000002, 0x4062B83E, + 0x4063B820, 0x00000002, 0x4062B83F, 0x4063B820, 0x00000002, 0x4062B840, + 0x4063B820, 0x00000002, 0x4062B841, 0x4063B820, 0x00000002, 0x4062B842, + 0x4063B820, 0x00000002, 0x4062B843, 0x4063B820, 0x00000002, 0x4062B844, + 0x4063B820, 0x00000002, 0x4062B845, 0x4063B820, 0x00000002, 0x4062B846, + 0x4063B820, 0x00000002, 0x4062B847, 0x4063B820, 0x00000003, 0x4062B821, + 0x4063B820, 0x40646420, 0x00000003, 0x4062B822, 0x4063B820, 0x40646420, + 0x00000003, 0x4062B823, 0x4063B820, 0x40646420, 0x00000003, 0x4062B824, + 0x4063B820, 0x40646420, 0x00000003, 0x4062B825, 0x4063B820, 0x40646420, + 0x00000003, 0x4062B826, 0x4063B820, 0x40646420, + // Block 387, offset 0x60c0 + 0x00000003, 0x4062B827, 0x4063B820, 0x40646420, 0x00000003, 0x4062B828, + 0x4063B820, 0x40646420, 0x00000003, 0x4062B829, 0x4063B820, 0x40646420, + 0x00000003, 0x4062B821, 0x4063B820, 0x40647220, 0x00000003, 0x4062B822, + 0x4063B820, 0x40647220, 0x00000003, 0x4062B821, 0x4063B820, 0x40648C20, + 0x00000003, 0x4062B822, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B823, + 0x4063B820, 0x40648C20, 0x00000003, 0x4062B824, 0x4063B820, 0x40648C20, + 0x00000003, 0x4062B825, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B826, + 0x4063B820, 0x40648C20, 0x00000003, 0x4062B827, 0x4063B820, 0x40648C20, + 0x00000003, 0x4062B828, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B829, + 0x4063B820, 0x40648C20, 0x00000003, 0x4062B82A, 0x4063B820, 0x40648C20, + 0x00000003, 0x4062B82B, 0x4063B820, 0x40648C20, + // Block 388, offset 0x6100 + 0x00000003, 0x4062B82C, 0x4063B820, 0x40648C20, 0x00000003, 0x4062B82D, + 0x4063B820, 0x40648C20, 0x00000002, 0x4062B821, 0x4063C020, 0x00000002, + 0x4062B822, 0x4063C020, 0x00000002, 0x4062B823, 0x4063C020, 0x00000002, + 0x4062B824, 0x4063C020, 0x00000002, 0x4062B825, 0x4063C020, 0x00000002, + 0x4062B826, 0x4063C020, 0x00000002, 0x4062B827, 0x4063C020, 0x00000002, + 0x4062B828, 0x4063C020, 0x00000002, 0x4062B829, 0x4063C020, 0x00000002, + 0x4062B82A, 0x4063C020, 0x00000002, 0x4062B82B, 0x4063C020, 0x00000002, + 0x4062B82C, 0x4063C020, 0x00000002, 0x4062B82D, 0x4063C020, 0x00000002, + 0x4062B82E, 0x4063C020, 0x00000002, 0x4062B82F, 0x4063C020, 0x00000002, + 0x4062B830, 0x4063C020, 0x00000002, 0x4062B821, 0x4063C220, 0x00000002, + 0x4062B822, 0x4063C220, 0x00000002, 0x4062B823, + // Block 389, offset 0x6140 + 0x4063C220, 0x00000002, 0x4062B824, 0x4063C220, 0x00000002, 0x4062B825, + 0x4063C220, 0x00000002, 0x4062B826, 0x4063C220, 0x00000002, 0x4062B827, + 0x4063C220, 0x00000002, 0x4062B828, 0x4063C220, 0x00000002, 0x4062B829, + 0x4063C220, 0x00000002, 0x4062B82A, 0x4063C220, 0x00000002, 0x4062B82B, + 0x4063C220, 0x00000002, 0x4062B82C, 0x4063C220, 0x00000002, 0x4062B82D, + 0x4063C220, 0x00000002, 0x4062B82E, 0x4063C220, 0x00000002, 0x4062B82F, + 0x4063C220, 0x00000002, 0x4062B830, 0x4063C220, 0x00000002, 0x4062B831, + 0x4063C220, 0x00000002, 0x4062B832, 0x4063C220, 0x00000002, 0x4062B833, + 0x4063C220, 0x00000002, 0x4062B834, 0x4063C220, 0x00000002, 0x4062B835, + 0x4063C220, 0x00000002, 0x4062B836, 0x4063C220, 0x00000002, 0x4062B837, + 0x4063C220, 0x00000002, 0x4062B838, 0x4063C220, + // Block 390, offset 0x6180 + 0x00000002, 0x4062B839, 0x4063C220, 0x00000002, 0x4062B83A, 0x4063C220, + 0x00000002, 0x4062B83B, 0x4063C220, 0x00000003, 0x4062B821, 0x4063C220, + 0x40646420, 0x00000003, 0x4062B822, 0x4063C220, 0x40646420, 0x00000003, + 0x4062B823, 0x4063C220, 0x40646420, 0x00000003, 0x4062B821, 0x4063C220, + 0x40646A20, 0x00000003, 0x4062B822, 0x4063C220, 0x40646A20, 0x00000003, + 0x4062B823, 0x4063C220, 0x40646A20, 0x00000003, 0x4062B824, 0x4063C220, + 0x40646A20, 0x00000003, 0x4062B825, 0x4063C220, 0x40646A20, 0x00000003, + 0x4062B826, 0x4063C220, 0x40646A20, 0x00000003, 0x4062B827, 0x4063C220, + 0x40646A20, 0x00000003, 0x4062B828, 0x4063C220, 0x40646A20, 0x00000003, + 0x4062B829, 0x4063C220, 0x40646A20, 0x00000003, 0x4062B82A, 0x4063C220, + 0x40646A20, 0x00000003, 0x4062B82B, 0x4063C220, + // Block 391, offset 0x61c0 + 0x40646A20, 0x00000003, 0x4062B82C, 0x4063C220, 0x40646A20, 0x00000003, + 0x4062B82D, 0x4063C220, 0x40646A20, 0x00000003, 0x4062B82E, 0x4063C220, + 0x40646A20, 0x00000003, 0x4062B82F, 0x4063C220, 0x40646A20, 0x00000003, + 0x4062B830, 0x4063C220, 0x40646A20, 0x00000003, 0x4062B831, 0x4063C220, + 0x40646A20, 0x00000003, 0x4062B832, 0x4063C220, 0x40646A20, 0x00000003, + 0x4062B833, 0x4063C220, 0x40646A20, 0x00000003, 0x4062B821, 0x4063C220, + 0x40647220, 0x00000003, 0x4062B822, 0x4063C220, 0x40647220, 0x00000003, + 0x4062B823, 0x4063C220, 0x40647220, 0x00000002, 0x4062B821, 0x4063D020, + 0x00000002, 0x4062B822, 0x4063D020, 0x00000002, 0x4062B823, 0x4063D020, + 0x00000002, 0x4062B824, 0x4063D020, 0x00000002, 0x4062B825, 0x4063D020, + 0x00000002, 0x4062B826, 0x4063D020, 0x00000002, + // Block 392, offset 0x6200 + 0x4062B827, 0x4063D020, 0x00000002, 0x4062B828, 0x4063D020, 0x00000002, + 0x4062B829, 0x4063D020, 0x00000002, 0x4062B82A, 0x4063D020, 0x00000002, + 0x4062B82B, 0x4063D020, 0x00000002, 0x4062B82C, 0x4063D020, 0x00000002, + 0x4062B82D, 0x4063D020, 0x00000002, 0x4062B82E, 0x4063D020, 0x00000002, + 0x4062B82F, 0x4063D020, 0x00000002, 0x4062B830, 0x4063D020, 0x00000002, + 0x4062B831, 0x4063D020, 0x00000002, 0x4062B832, 0x4063D020, 0x00000002, + 0x4062B833, 0x4063D020, 0x00000002, 0x4062B834, 0x4063D020, 0x00000002, + 0x4062B835, 0x4063D020, 0x00000002, 0x4062B836, 0x4063D020, 0x00000002, + 0x4062B837, 0x4063D020, 0x00000002, 0x4062B838, 0x4063D020, 0x00000002, + 0x4062B839, 0x4063D020, 0x00000002, 0x4062B83A, 0x4063D020, 0x00000002, + 0x4062B83B, 0x4063D020, 0x00000002, 0x4062B83C, + // Block 393, offset 0x6240 + 0x4063D020, 0x00000002, 0x4062B83D, 0x4063D020, 0x00000002, 0x4062B83E, + 0x4063D020, 0x00000002, 0x4062B83F, 0x4063D020, 0x00000002, 0x4062B840, + 0x4063D020, 0x00000002, 0x4062B841, 0x4063D020, 0x00000003, 0x4062B821, + 0x4063D020, 0x40646A20, 0x00000003, 0x4062B822, 0x4063D020, 0x40646A20, + 0x00000003, 0x4062B823, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B824, + 0x4063D020, 0x40646A20, 0x00000003, 0x4062B825, 0x4063D020, 0x40646A20, + 0x00000003, 0x4062B826, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B827, + 0x4063D020, 0x40646A20, 0x00000003, 0x4062B828, 0x4063D020, 0x40646A20, + 0x00000003, 0x4062B829, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B82A, + 0x4063D020, 0x40646A20, 0x00000003, 0x4062B82B, 0x4063D020, 0x40646A20, + 0x00000003, 0x4062B82C, 0x4063D020, 0x40646A20, + // Block 394, offset 0x6280 + 0x00000003, 0x4062B82D, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B82E, + 0x4063D020, 0x40646A20, 0x00000003, 0x4062B82F, 0x4063D020, 0x40646A20, + 0x00000003, 0x4062B830, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B831, + 0x4063D020, 0x40646A20, 0x00000003, 0x4062B832, 0x4063D020, 0x40646A20, + 0x00000003, 0x4062B833, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B834, + 0x4063D020, 0x40646A20, 0x00000003, 0x4062B835, 0x4063D020, 0x40646A20, + 0x00000003, 0x4062B836, 0x4063D020, 0x40646A20, 0x00000003, 0x4062B837, + 0x4063D020, 0x40646A20, 0x00000003, 0x4062B821, 0x4063D020, 0x40647220, + 0x00000003, 0x4062B822, 0x4063D020, 0x40647220, 0x00000003, 0x4062B823, + 0x4063D020, 0x40647220, 0x00000003, 0x4062B824, 0x4063D020, 0x40647220, + 0x00000003, 0x4062B825, 0x4063D020, 0x40647220, + // Block 395, offset 0x62c0 + 0x00000003, 0x4062BA21, 0x4063A820, 0x40646420, 0x00000003, 0x4062BA22, + 0x4063A820, 0x40646420, 0x00000003, 0x4062BA23, 0x4063A820, 0x40646420, + 0x00000003, 0x4062BA24, 0x4063A820, 0x40646420, 0x00000003, 0x4062BA25, + 0x4063A820, 0x40646420, 0x00000003, 0x4062BA26, 0x4063A820, 0x40646420, + 0x00000003, 0x4062BA27, 0x4063A820, 0x40646420, 0x00000003, 0x4062BA28, + 0x4063A820, 0x40646420, 0x00000003, 0x4062BA29, 0x4063A820, 0x40646420, + 0x00000003, 0x4062BA2A, 0x4063A820, 0x40646420, 0x00000003, 0x4062BA2B, + 0x4063A820, 0x40646420, 0x00000003, 0x4062BA2C, 0x4063A820, 0x40646420, + 0x00000003, 0x4062BA2D, 0x4063A820, 0x40646420, 0x00000003, 0x4062BA2E, + 0x4063A820, 0x40646420, 0x00000003, 0x4062BA2F, 0x4063A820, 0x40646420, + 0x00000003, 0x4062BA30, 0x4063A820, 0x40646420, + // Block 396, offset 0x6300 + 0x00000003, 0x4062BA31, 0x4063A820, 0x40646420, 0x00000003, 0x4062BA32, + 0x4063A820, 0x40646420, 0x00000003, 0x4062BA33, 0x4063A820, 0x40646420, + 0x00000003, 0x4062BA34, 0x4063A820, 0x40646420, 0x00000003, 0x4062BA35, + 0x4063A820, 0x40646420, 0x00000003, 0x4062BA36, 0x4063A820, 0x40646420, + 0x00000003, 0x4062BA37, 0x4063A820, 0x40646420, 0x00000003, 0x4062BA38, + 0x4063A820, 0x40646420, 0x00000003, 0x4062BA39, 0x4063A820, 0x40646420, + 0x00000003, 0x4062BA21, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA22, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA23, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062BA24, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA25, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA26, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062BA27, 0x4063A820, 0x40646A20, + // Block 397, offset 0x6340 + 0x00000003, 0x4062BA28, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA29, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA2A, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062BA2B, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA2C, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA2D, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062BA2E, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA2F, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA30, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062BA31, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA32, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA33, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062BA34, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA35, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA36, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062BA37, 0x4063A820, 0x40646A20, + // Block 398, offset 0x6380 + 0x00000003, 0x4062BA38, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA39, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA3A, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062BA3B, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA3C, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA3D, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062BA3E, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA3F, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA40, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062BA41, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BA21, + 0x4063A820, 0x40647220, 0x00000003, 0x4062BA22, 0x4063A820, 0x40647220, + 0x00000003, 0x4062BA23, 0x4063A820, 0x40647220, 0x00000003, 0x4062BA24, + 0x4063A820, 0x40647220, 0x00000003, 0x4062BA25, 0x4063A820, 0x40647220, + 0x00000003, 0x4062BA26, 0x4063A820, 0x40647220, + // Block 399, offset 0x63c0 + 0x00000003, 0x4062BA27, 0x4063A820, 0x40647220, 0x00000003, 0x4062BA28, + 0x4063A820, 0x40647220, 0x00000003, 0x4062BA29, 0x4063A820, 0x40647220, + 0x00000003, 0x4062BA2A, 0x4063A820, 0x40647220, 0x00000003, 0x4062BA2B, + 0x4063A820, 0x40647220, 0x00000003, 0x4062BA2C, 0x4063A820, 0x40647220, + 0x00000003, 0x4062BA2D, 0x4063A820, 0x40647220, 0x00000003, 0x4062BA2E, + 0x4063A820, 0x40647220, 0x00000003, 0x4062BA2F, 0x4063A820, 0x40647220, + 0x00000003, 0x4062BA30, 0x4063A820, 0x40647220, 0x00000003, 0x4062BA21, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA22, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062BA23, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA24, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA25, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062BA26, 0x4063A820, 0x40648C20, + // Block 400, offset 0x6400 + 0x00000003, 0x4062BA27, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA28, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA29, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062BA2A, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA2B, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA2C, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062BA2D, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA2E, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA2F, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062BA30, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA31, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA32, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062BA33, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA34, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA35, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062BA36, 0x4063A820, 0x40648C20, + // Block 401, offset 0x6440 + 0x00000003, 0x4062BA37, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA38, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA39, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062BA3A, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA3B, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA3C, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062BA3D, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA3E, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA3F, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062BA40, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA41, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA42, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062BA43, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA44, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA45, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062BA46, 0x4063A820, 0x40648C20, + // Block 402, offset 0x6480 + 0x00000003, 0x4062BA47, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA48, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062BA49, 0x4063A820, 0x40648C20, + 0x00000002, 0x4062BA21, 0x4063AA20, 0x00000002, 0x4062BA22, 0x4063AA20, + 0x00000002, 0x4062BA23, 0x4063AA20, 0x00000002, 0x4062BA24, 0x4063AA20, + 0x00000002, 0x4062BA25, 0x4063AA20, 0x00000002, 0x4062BA26, 0x4063AA20, + 0x00000002, 0x4062BA27, 0x4063AA20, 0x00000002, 0x4062BA28, 0x4063AA20, + 0x00000002, 0x4062BA29, 0x4063AA20, 0x00000002, 0x4062BA2A, 0x4063AA20, + 0x00000002, 0x4062BA2B, 0x4063AA20, 0x00000002, 0x4062BA2C, 0x4063AA20, + 0x00000002, 0x4062BA2D, 0x4063AA20, 0x00000002, 0x4062BA2E, 0x4063AA20, + 0x00000002, 0x4062BA2F, 0x4063AA20, 0x00000002, 0x4062BA30, 0x4063AA20, + 0x00000002, 0x4062BA31, 0x4063AA20, 0x00000002, + // Block 403, offset 0x64c0 + 0x4062BA32, 0x4063AA20, 0x00000002, 0x4062BA33, 0x4063AA20, 0x00000002, + 0x4062BA34, 0x4063AA20, 0x00000002, 0x4062BA35, 0x4063AA20, 0x00000002, + 0x4062BA36, 0x4063AA20, 0x00000002, 0x4062BA37, 0x4063AA20, 0x00000002, + 0x4062BA38, 0x4063AA20, 0x00000003, 0x4062BA21, 0x4063AA20, 0x40646420, + 0x00000003, 0x4062BA22, 0x4063AA20, 0x40646420, 0x00000003, 0x4062BA23, + 0x4063AA20, 0x40646420, 0x00000003, 0x4062BA24, 0x4063AA20, 0x40646420, + 0x00000003, 0x4062BA25, 0x4063AA20, 0x40646420, 0x00000003, 0x4062BA26, + 0x4063AA20, 0x40646420, 0x00000003, 0x4062BA27, 0x4063AA20, 0x40646420, + 0x00000003, 0x4062BA28, 0x4063AA20, 0x40646420, 0x00000003, 0x4062BA29, + 0x4063AA20, 0x40646420, 0x00000003, 0x4062BA21, 0x4063B020, 0x40646A20, + 0x00000003, 0x4062BA22, 0x4063B020, 0x40646A20, + // Block 404, offset 0x6500 + 0x00000003, 0x4062BA23, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BA24, + 0x4063B020, 0x40646A20, 0x00000003, 0x4062BA25, 0x4063B020, 0x40646A20, + 0x00000003, 0x4062BA26, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BA27, + 0x4063B020, 0x40646A20, 0x00000003, 0x4062BA28, 0x4063B020, 0x40646A20, + 0x00000003, 0x4062BA29, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BA2A, + 0x4063B020, 0x40646A20, 0x00000003, 0x4062BA2B, 0x4063B020, 0x40646A20, + 0x00000003, 0x4062BA2C, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BA2D, + 0x4063B020, 0x40646A20, 0x00000003, 0x4062BA2E, 0x4063B020, 0x40646A20, + 0x00000003, 0x4062BA21, 0x4063B020, 0x40647220, 0x00000003, 0x4062BA22, + 0x4063B020, 0x40647220, 0x00000003, 0x4062BA23, 0x4063B020, 0x40647220, + 0x00000003, 0x4062BA24, 0x4063B020, 0x40647220, + // Block 405, offset 0x6540 + 0x00000003, 0x4062BA25, 0x4063B020, 0x40647220, 0x00000003, 0x4062BA26, + 0x4063B020, 0x40647220, 0x00000003, 0x4062BA21, 0x4063B020, 0x40648220, + 0x00000003, 0x4062BA22, 0x4063B020, 0x40648220, 0x00000003, 0x4062BA23, + 0x4063B020, 0x40648220, 0x00000003, 0x4062BA24, 0x4063B020, 0x40648220, + 0x00000003, 0x4062BA25, 0x4063B020, 0x40648220, 0x00000003, 0x4062BA26, + 0x4063B020, 0x40648220, 0x00000003, 0x4062BA27, 0x4063B020, 0x40648220, + 0x00000003, 0x4062BA28, 0x4063B020, 0x40648220, 0x00000003, 0x4062BA29, + 0x4063B020, 0x40648220, 0x00000003, 0x4062BA2A, 0x4063B020, 0x40648220, + 0x00000003, 0x4062BA2B, 0x4063B020, 0x40648220, 0x00000003, 0x4062BA2C, + 0x4063B020, 0x40648220, 0x00000003, 0x4062BA21, 0x4063B020, 0x40648420, + 0x00000003, 0x4062BA22, 0x4063B020, 0x40648420, + // Block 406, offset 0x6580 + 0x00000003, 0x4062BA21, 0x4063B420, 0x40646420, 0x00000003, 0x4062BA22, + 0x4063B420, 0x40646420, 0x00000003, 0x4062BA23, 0x4063B420, 0x40646420, + 0x00000003, 0x4062BA24, 0x4063B420, 0x40646420, 0x00000003, 0x4062BA25, + 0x4063B420, 0x40646420, 0x00000003, 0x4062BA26, 0x4063B420, 0x40646420, + 0x00000003, 0x4062BA27, 0x4063B420, 0x40646420, 0x00000003, 0x4062BA28, + 0x4063B420, 0x40646420, 0x00000003, 0x4062BA29, 0x4063B420, 0x40646420, + 0x00000003, 0x4062BA2A, 0x4063B420, 0x40646420, 0x00000003, 0x4062BA2B, + 0x4063B420, 0x40646420, 0x00000003, 0x4062BA2C, 0x4063B420, 0x40646420, + 0x00000003, 0x4062BA2D, 0x4063B420, 0x40646420, 0x00000003, 0x4062BA2E, + 0x4063B420, 0x40646420, 0x00000003, 0x4062BA2F, 0x4063B420, 0x40646420, + 0x00000003, 0x4062BA30, 0x4063B420, 0x40646420, + // Block 407, offset 0x65c0 + 0x00000003, 0x4062BA31, 0x4063B420, 0x40646420, 0x00000003, 0x4062BA21, + 0x4063B420, 0x40646A20, 0x00000003, 0x4062BA22, 0x4063B420, 0x40646A20, + 0x00000003, 0x4062BA23, 0x4063B420, 0x40646A20, 0x00000003, 0x4062BA24, + 0x4063B420, 0x40646A20, 0x00000003, 0x4062BA25, 0x4063B420, 0x40646A20, + 0x00000003, 0x4062BA26, 0x4063B420, 0x40646A20, 0x00000003, 0x4062BA27, + 0x4063B420, 0x40646A20, 0x00000003, 0x4062BA28, 0x4063B420, 0x40646A20, + 0x00000003, 0x4062BA29, 0x4063B420, 0x40646A20, 0x00000003, 0x4062BA2A, + 0x4063B420, 0x40646A20, 0x00000003, 0x4062BA2B, 0x4063B420, 0x40646A20, + 0x00000003, 0x4062BA2C, 0x4063B420, 0x40646A20, 0x00000003, 0x4062BA2D, + 0x4063B420, 0x40646A20, 0x00000003, 0x4062BA2E, 0x4063B420, 0x40646A20, + 0x00000003, 0x4062BA2F, 0x4063B420, 0x40646A20, + // Block 408, offset 0x6600 + 0x00000003, 0x4062BA21, 0x4063B420, 0x40647220, 0x00000003, 0x4062BA22, + 0x4063B420, 0x40647220, 0x00000003, 0x4062BA23, 0x4063B420, 0x40647220, + 0x00000003, 0x4062BA24, 0x4063B420, 0x40647220, 0x00000003, 0x4062BA25, + 0x4063B420, 0x40647220, 0x00000003, 0x4062BA26, 0x4063B420, 0x40647220, + 0x00000003, 0x4062BA21, 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA22, + 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA23, 0x4063B420, 0x40648C20, + 0x00000003, 0x4062BA24, 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA25, + 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA26, 0x4063B420, 0x40648C20, + 0x00000003, 0x4062BA27, 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA28, + 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA29, 0x4063B420, 0x40648C20, + 0x00000003, 0x4062BA2A, 0x4063B420, 0x40648C20, + // Block 409, offset 0x6640 + 0x00000003, 0x4062BA2B, 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA2C, + 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA2D, 0x4063B420, 0x40648C20, + 0x00000003, 0x4062BA2E, 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA2F, + 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA30, 0x4063B420, 0x40648C20, + 0x00000003, 0x4062BA31, 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA32, + 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA33, 0x4063B420, 0x40648C20, + 0x00000003, 0x4062BA34, 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA35, + 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA36, 0x4063B420, 0x40648C20, + 0x00000003, 0x4062BA37, 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA38, + 0x4063B420, 0x40648C20, 0x00000003, 0x4062BA39, 0x4063B420, 0x40648C20, + 0x00000002, 0x4062BA21, 0x4063B820, 0x00000002, + // Block 410, offset 0x6680 + 0x4062BA22, 0x4063B820, 0x00000002, 0x4062BA23, 0x4063B820, 0x00000002, + 0x4062BA24, 0x4063B820, 0x00000002, 0x4062BA25, 0x4063B820, 0x00000002, + 0x4062BA26, 0x4063B820, 0x00000002, 0x4062BA27, 0x4063B820, 0x00000002, + 0x4062BA28, 0x4063B820, 0x00000002, 0x4062BA29, 0x4063B820, 0x00000002, + 0x4062BA2A, 0x4063B820, 0x00000002, 0x4062BA2B, 0x4063B820, 0x00000002, + 0x4062BA2C, 0x4063B820, 0x00000002, 0x4062BA2D, 0x4063B820, 0x00000002, + 0x4062BA2E, 0x4063B820, 0x00000002, 0x4062BA2F, 0x4063B820, 0x00000002, + 0x4062BA30, 0x4063B820, 0x00000002, 0x4062BA31, 0x4063B820, 0x00000002, + 0x4062BA32, 0x4063B820, 0x00000002, 0x4062BA33, 0x4063B820, 0x00000002, + 0x4062BA34, 0x4063B820, 0x00000002, 0x4062BA35, 0x4063B820, 0x00000002, + 0x4062BA36, 0x4063B820, 0x00000002, 0x4062BA37, + // Block 411, offset 0x66c0 + 0x4063B820, 0x00000003, 0x4062BA21, 0x4063B820, 0x40646420, 0x00000003, + 0x4062BA22, 0x4063B820, 0x40646420, 0x00000003, 0x4062BA23, 0x4063B820, + 0x40646420, 0x00000003, 0x4062BA24, 0x4063B820, 0x40646420, 0x00000003, + 0x4062BA25, 0x4063B820, 0x40646420, 0x00000003, 0x4062BA26, 0x4063B820, + 0x40646420, 0x00000003, 0x4062BA27, 0x4063B820, 0x40646420, 0x00000003, + 0x4062BA28, 0x4063B820, 0x40646420, 0x00000003, 0x4062BA29, 0x4063B820, + 0x40646420, 0x00000003, 0x4062BA2A, 0x4063B820, 0x40646420, 0x00000003, + 0x4062BA2B, 0x4063B820, 0x40646420, 0x00000003, 0x4062BA2C, 0x4063B820, + 0x40646420, 0x00000003, 0x4062BA2D, 0x4063B820, 0x40646420, 0x00000003, + 0x4062BA2E, 0x4063B820, 0x40646420, 0x00000003, 0x4062BA2F, 0x4063B820, + 0x40646420, 0x00000003, 0x4062BA30, 0x4063B820, + // Block 412, offset 0x6700 + 0x40646420, 0x00000003, 0x4062BA31, 0x4063B820, 0x40646420, 0x00000003, + 0x4062BA32, 0x4063B820, 0x40646420, 0x00000003, 0x4062BA33, 0x4063B820, + 0x40646420, 0x00000003, 0x4062BA34, 0x4063B820, 0x40646420, 0x00000003, + 0x4062BA35, 0x4063B820, 0x40646420, 0x00000003, 0x4062BA36, 0x4063B820, + 0x40646420, 0x00000003, 0x4062BA37, 0x4063B820, 0x40646420, 0x00000003, + 0x4062BA38, 0x4063B820, 0x40646420, 0x00000003, 0x4062BA39, 0x4063B820, + 0x40646420, 0x00000003, 0x4062BA3A, 0x4063B820, 0x40646420, 0x00000003, + 0x4062BA21, 0x4063B820, 0x40646A20, 0x00000003, 0x4062BA21, 0x4063B820, + 0x40647220, 0x00000003, 0x4062BA21, 0x4063B820, 0x40648C20, 0x00000003, + 0x4062BA22, 0x4063B820, 0x40648C20, 0x00000003, 0x4062BA23, 0x4063B820, + 0x40648C20, 0x00000003, 0x4062BA24, 0x4063B820, + // Block 413, offset 0x6740 + 0x40648C20, 0x00000003, 0x4062BA25, 0x4063B820, 0x40648C20, 0x00000003, + 0x4062BA26, 0x4063B820, 0x40648C20, 0x00000003, 0x4062BA27, 0x4063B820, + 0x40648C20, 0x00000003, 0x4062BA28, 0x4063B820, 0x40648C20, 0x00000003, + 0x4062BA29, 0x4063B820, 0x40648C20, 0x00000003, 0x4062BA2A, 0x4063B820, + 0x40648C20, 0x00000003, 0x4062BA2B, 0x4063B820, 0x40648C20, 0x00000003, + 0x4062BA2C, 0x4063B820, 0x40648C20, 0x00000003, 0x4062BA2D, 0x4063B820, + 0x40648C20, 0x00000003, 0x4062BA2E, 0x4063B820, 0x40648C20, 0x00000003, + 0x4062BA2F, 0x4063B820, 0x40648C20, 0x00000003, 0x4062BA30, 0x4063B820, + 0x40648C20, 0x00000003, 0x4062BA31, 0x4063B820, 0x40648C20, 0x00000003, + 0x4062BA32, 0x4063B820, 0x40648C20, 0x00000003, 0x4062BA33, 0x4063B820, + 0x40648C20, 0x00000003, 0x4062BA34, 0x4063B820, + // Block 414, offset 0x6780 + 0x40648C20, 0x00000003, 0x4062BA35, 0x4063B820, 0x40648C20, 0x00000003, + 0x4062BA36, 0x4063B820, 0x40648C20, 0x00000002, 0x4062BA21, 0x4063C220, + 0x00000002, 0x4062BA22, 0x4063C220, 0x00000002, 0x4062BA23, 0x4063C220, + 0x00000002, 0x4062BA24, 0x4063C220, 0x00000002, 0x4062BA25, 0x4063C220, + 0x00000002, 0x4062BA26, 0x4063C220, 0x00000002, 0x4062BA27, 0x4063C220, + 0x00000002, 0x4062BA28, 0x4063C220, 0x00000002, 0x4062BA29, 0x4063C220, + 0x00000002, 0x4062BA2A, 0x4063C220, 0x00000002, 0x4062BA2B, 0x4063C220, + 0x00000002, 0x4062BA2C, 0x4063C220, 0x00000002, 0x4062BA2D, 0x4063C220, + 0x00000002, 0x4062BA2E, 0x4063C220, 0x00000002, 0x4062BA2F, 0x4063C220, + 0x00000002, 0x4062BA30, 0x4063C220, 0x00000002, 0x4062BA31, 0x4063C220, + 0x00000002, 0x4062BA32, 0x4063C220, 0x00000002, + // Block 415, offset 0x67c0 + 0x4062BA33, 0x4063C220, 0x00000002, 0x4062BA34, 0x4063C220, 0x00000002, + 0x4062BA35, 0x4063C220, 0x00000002, 0x4062BA36, 0x4063C220, 0x00000002, + 0x4062BA37, 0x4063C220, 0x00000002, 0x4062BA38, 0x4063C220, 0x00000002, + 0x4062BA39, 0x4063C220, 0x00000002, 0x4062BA3A, 0x4063C220, 0x00000002, + 0x4062BA3B, 0x4063C220, 0x00000002, 0x4062BA3C, 0x4063C220, 0x00000002, + 0x4062BA3D, 0x4063C220, 0x00000002, 0x4062BA3E, 0x4063C220, 0x00000002, + 0x4062BA3F, 0x4063C220, 0x00000002, 0x4062BA40, 0x4063C220, 0x00000002, + 0x4062BA41, 0x4063C220, 0x00000002, 0x4062BA42, 0x4063C220, 0x00000002, + 0x4062BA43, 0x4063C220, 0x00000002, 0x4062BA44, 0x4063C220, 0x00000002, + 0x4062BA45, 0x4063C220, 0x00000002, 0x4062BA46, 0x4063C220, 0x00000002, + 0x4062BA47, 0x4063C220, 0x00000002, 0x4062BA48, + // Block 416, offset 0x6800 + 0x4063C220, 0x00000002, 0x4062BA49, 0x4063C220, 0x00000002, 0x4062BA4A, + 0x4063C220, 0x00000002, 0x4062BA4B, 0x4063C220, 0x00000002, 0x4062BA4C, + 0x4063C220, 0x00000002, 0x4062BA4D, 0x4063C220, 0x00000002, 0x4062BA4E, + 0x4063C220, 0x00000002, 0x4062BA4F, 0x4063C220, 0x00000002, 0x4062BA50, + 0x4063C220, 0x00000002, 0x4062BA51, 0x4063C220, 0x00000002, 0x4062BA52, + 0x4063C220, 0x00000002, 0x4062BA53, 0x4063C220, 0x00000002, 0x4062BA54, + 0x4063C220, 0x00000002, 0x4062BA55, 0x4063C220, 0x00000002, 0x4062BA56, + 0x4063C220, 0x00000002, 0x4062BA57, 0x4063C220, 0x00000002, 0x4062BA58, + 0x4063C220, 0x00000002, 0x4062BA59, 0x4063C220, 0x00000002, 0x4062BA5A, + 0x4063C220, 0x00000002, 0x4062BA5B, 0x4063C220, 0x00000002, 0x4062BA5C, + 0x4063C220, 0x00000002, 0x4062BA5D, 0x4063C220, + // Block 417, offset 0x6840 + 0x00000002, 0x4062BA5E, 0x4063C220, 0x00000002, 0x4062BA5F, 0x4063C220, + 0x00000002, 0x4062BA60, 0x4063C220, 0x00000002, 0x4062BA61, 0x4063C220, + 0x00000002, 0x4062BA62, 0x4063C220, 0x00000002, 0x4062BA63, 0x4063C220, + 0x00000002, 0x4062BA64, 0x4063C220, 0x00000002, 0x4062BA65, 0x4063C220, + 0x00000003, 0x4062BA21, 0x4063C220, 0x40646420, 0x00000003, 0x4062BA21, + 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA22, 0x4063C220, 0x40646A20, + 0x00000003, 0x4062BA23, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA24, + 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA25, 0x4063C220, 0x40646A20, + 0x00000003, 0x4062BA26, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA27, + 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA28, 0x4063C220, 0x40646A20, + 0x00000003, 0x4062BA29, 0x4063C220, 0x40646A20, + // Block 418, offset 0x6880 + 0x00000003, 0x4062BA2A, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA2B, + 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA2C, 0x4063C220, 0x40646A20, + 0x00000003, 0x4062BA2D, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA2E, + 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA2F, 0x4063C220, 0x40646A20, + 0x00000003, 0x4062BA30, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA31, + 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA32, 0x4063C220, 0x40646A20, + 0x00000003, 0x4062BA33, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA34, + 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA35, 0x4063C220, 0x40646A20, + 0x00000003, 0x4062BA36, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA37, + 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA38, 0x4063C220, 0x40646A20, + 0x00000003, 0x4062BA39, 0x4063C220, 0x40646A20, + // Block 419, offset 0x68c0 + 0x00000003, 0x4062BA3A, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA3B, + 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA3C, 0x4063C220, 0x40646A20, + 0x00000003, 0x4062BA3D, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA3E, + 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA3F, 0x4063C220, 0x40646A20, + 0x00000003, 0x4062BA40, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA41, + 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA42, 0x4063C220, 0x40646A20, + 0x00000003, 0x4062BA43, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA44, + 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA45, 0x4063C220, 0x40646A20, + 0x00000003, 0x4062BA46, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BA21, + 0x4063C220, 0x40647220, 0x00000003, 0x4062BA22, 0x4063C220, 0x40647220, + 0x00000003, 0x4062BA23, 0x4063C220, 0x40647220, + // Block 420, offset 0x6900 + 0x00000003, 0x4062BA24, 0x4063C220, 0x40647220, 0x00000003, 0x4062BA25, + 0x4063C220, 0x40647220, 0x00000003, 0x4062BA26, 0x4063C220, 0x40647220, + 0x00000003, 0x4062BA27, 0x4063C220, 0x40647220, 0x00000003, 0x4062BA28, + 0x4063C220, 0x40647220, 0x00000003, 0x4062BA29, 0x4063C220, 0x40647220, + 0x00000003, 0x4062BA2A, 0x4063C220, 0x40647220, 0x00000003, 0x4062BA2B, + 0x4063C220, 0x40647220, 0x00000003, 0x4062BA2C, 0x4063C220, 0x40647220, + 0x00000003, 0x4062BA21, 0x4063C220, 0x40648C20, 0x00000003, 0x4062BA22, + 0x4063C220, 0x40648C20, 0x00000003, 0x4062BA23, 0x4063C220, 0x40648C20, + 0x00000003, 0x4062BA24, 0x4063C220, 0x40648C20, 0x00000003, 0x4062BA25, + 0x4063C220, 0x40648C20, 0x00000003, 0x4062BA26, 0x4063C220, 0x40648C20, + 0x00000003, 0x4062BA27, 0x4063C220, 0x40648C20, + // Block 421, offset 0x6940 + 0x00000003, 0x4062BA28, 0x4063C220, 0x40648C20, 0x00000003, 0x4062BA29, + 0x4063C220, 0x40648C20, 0x00000002, 0x4062BA21, 0x4063D020, 0x00000002, + 0x4062BA22, 0x4063D020, 0x00000002, 0x4062BA23, 0x4063D020, 0x00000002, + 0x4062BA24, 0x4063D020, 0x00000002, 0x4062BA25, 0x4063D020, 0x00000002, + 0x4062BA26, 0x4063D020, 0x00000002, 0x4062BA27, 0x4063D020, 0x00000002, + 0x4062BA28, 0x4063D020, 0x00000002, 0x4062BA29, 0x4063D020, 0x00000002, + 0x4062BA2A, 0x4063D020, 0x00000002, 0x4062BA2B, 0x4063D020, 0x00000002, + 0x4062BA2C, 0x4063D020, 0x00000002, 0x4062BA2D, 0x4063D020, 0x00000002, + 0x4062BA2E, 0x4063D020, 0x00000002, 0x4062BA2F, 0x4063D020, 0x00000002, + 0x4062BA30, 0x4063D020, 0x00000002, 0x4062BA31, 0x4063D020, 0x00000002, + 0x4062BA32, 0x4063D020, 0x00000002, 0x4062BA33, + // Block 422, offset 0x6980 + 0x4063D020, 0x00000002, 0x4062BA34, 0x4063D020, 0x00000002, 0x4062BA35, + 0x4063D020, 0x00000002, 0x4062BA36, 0x4063D020, 0x00000002, 0x4062BA37, + 0x4063D020, 0x00000002, 0x4062BA38, 0x4063D020, 0x00000002, 0x4062BA39, + 0x4063D020, 0x00000002, 0x4062BA3A, 0x4063D020, 0x00000002, 0x4062BA3B, + 0x4063D020, 0x00000002, 0x4062BA3C, 0x4063D020, 0x00000002, 0x4062BA3D, + 0x4063D020, 0x00000002, 0x4062BA3E, 0x4063D020, 0x00000002, 0x4062BA3F, + 0x4063D020, 0x00000002, 0x4062BA40, 0x4063D020, 0x00000002, 0x4062BA41, + 0x4063D020, 0x00000002, 0x4062BA42, 0x4063D020, 0x00000002, 0x4062BA43, + 0x4063D020, 0x00000002, 0x4062BA44, 0x4063D020, 0x00000002, 0x4062BA45, + 0x4063D020, 0x00000002, 0x4062BA46, 0x4063D020, 0x00000002, 0x4062BA47, + 0x4063D020, 0x00000002, 0x4062BA48, 0x4063D020, + // Block 423, offset 0x69c0 + 0x00000002, 0x4062BA49, 0x4063D020, 0x00000002, 0x4062BA4A, 0x4063D020, + 0x00000002, 0x4062BA4B, 0x4063D020, 0x00000002, 0x4062BA4C, 0x4063D020, + 0x00000002, 0x4062BA4D, 0x4063D020, 0x00000002, 0x4062BA4E, 0x4063D020, + 0x00000002, 0x4062BA4F, 0x4063D020, 0x00000002, 0x4062BA50, 0x4063D020, + 0x00000002, 0x4062BA51, 0x4063D020, 0x00000002, 0x4062BA52, 0x4063D020, + 0x00000002, 0x4062BA53, 0x4063D020, 0x00000002, 0x4062BA54, 0x4063D020, + 0x00000002, 0x4062BA55, 0x4063D020, 0x00000002, 0x4062BA56, 0x4063D020, + 0x00000002, 0x4062BA57, 0x4063D020, 0x00000002, 0x4062BA58, 0x4063D020, + 0x00000002, 0x4062BA59, 0x4063D020, 0x00000002, 0x4062BA5A, 0x4063D020, + 0x00000002, 0x4062BA5B, 0x4063D020, 0x00000002, 0x4062BA5C, 0x4063D020, + 0x00000002, 0x4062BA5D, 0x4063D020, 0x00000002, + // Block 424, offset 0x6a00 + 0x4062BA5E, 0x4063D020, 0x00000002, 0x4062BA5F, 0x4063D020, 0x00000002, + 0x4062BA60, 0x4063D020, 0x00000002, 0x4062BA61, 0x4063D020, 0x00000002, + 0x4062BA62, 0x4063D020, 0x00000002, 0x4062BA63, 0x4063D020, 0x00000002, + 0x4062BA64, 0x4063D020, 0x00000002, 0x4062BA65, 0x4063D020, 0x00000002, + 0x4062BA66, 0x4063D020, 0x00000002, 0x4062BA67, 0x4063D020, 0x00000002, + 0x4062BA68, 0x4063D020, 0x00000002, 0x4062BA69, 0x4063D020, 0x00000002, + 0x4062BA6A, 0x4063D020, 0x00000002, 0x4062BA6B, 0x4063D020, 0x00000002, + 0x4062BA6C, 0x4063D020, 0x00000002, 0x4062BA6D, 0x4063D020, 0x00000002, + 0x4062BA6E, 0x4063D020, 0x00000002, 0x4062BA6F, 0x4063D020, 0x00000002, + 0x4062BA70, 0x4063D020, 0x00000002, 0x4062BA71, 0x4063D020, 0x00000002, + 0x4062BA72, 0x4063D020, 0x00000002, 0x4062BA73, + // Block 425, offset 0x6a40 + 0x4063D020, 0x00000002, 0x4062BA74, 0x4063D020, 0x00000002, 0x4062BA75, + 0x4063D020, 0x00000003, 0x4062BA21, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062BA22, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BA23, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062BA24, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062BA25, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BA26, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062BA27, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062BA28, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BA29, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062BA2A, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062BA2B, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BA2C, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062BA2D, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062BA2E, 0x4063D020, 0x40646A20, 0x00000003, + // Block 426, offset 0x6a80 + 0x4062BA2F, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BA30, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062BA31, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062BA32, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BA33, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062BA34, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062BA35, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BA36, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062BA37, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062BA38, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BA39, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062BA3A, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062BA3B, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BA21, 0x4063D020, + 0x40648C20, 0x00000003, 0x4062BA22, 0x4063D020, 0x40648C20, 0x00000003, + 0x4062BA23, 0x4063D020, 0x40648C20, 0x00000003, + // Block 427, offset 0x6ac0 + 0x4062BA24, 0x4063D020, 0x40648C20, 0x00000003, 0x4062BA25, 0x4063D020, + 0x40648C20, 0x00000003, 0x4062BA26, 0x4063D020, 0x40648C20, 0x00000003, + 0x4062BA27, 0x4063D020, 0x40648C20, 0x00000003, 0x4062BA28, 0x4063D020, + 0x40648C20, 0x00000002, 0x4062BE21, 0x4063A820, 0x00000002, 0x4062BE22, + 0x4063A820, 0x00000002, 0x4062BE23, 0x4063A820, 0x00000002, 0x4062BE24, + 0x4063A820, 0x00000002, 0x4062BE25, 0x4063A820, 0x00000002, 0x4062BE26, + 0x4063A820, 0x00000002, 0x4062BE27, 0x4063A820, 0x00000002, 0x4062BE28, + 0x4063A820, 0x00000002, 0x4062BE29, 0x4063A820, 0x00000002, 0x4062BE2A, + 0x4063A820, 0x00000002, 0x4062BE2B, 0x4063A820, 0x00000002, 0x4062BE2C, + 0x4063A820, 0x00000002, 0x4062BE2D, 0x4063A820, 0x00000002, 0x4062BE2E, + 0x4063A820, 0x00000002, 0x4062BE2F, 0x4063A820, + // Block 428, offset 0x6b00 + 0x00000002, 0x4062BE30, 0x4063A820, 0x00000002, 0x4062BE31, 0x4063A820, + 0x00000002, 0x4062BE32, 0x4063A820, 0x00000002, 0x4062BE33, 0x4063A820, + 0x00000002, 0x4062BE34, 0x4063A820, 0x00000002, 0x4062BE35, 0x4063A820, + 0x00000002, 0x4062BE36, 0x4063A820, 0x00000002, 0x4062BE37, 0x4063A820, + 0x00000002, 0x4062BE38, 0x4063A820, 0x00000002, 0x4062BE39, 0x4063A820, + 0x00000002, 0x4062BE3A, 0x4063A820, 0x00000002, 0x4062BE3B, 0x4063A820, + 0x00000002, 0x4062BE3C, 0x4063A820, 0x00000002, 0x4062BE3D, 0x4063A820, + 0x00000002, 0x4062BE3E, 0x4063A820, 0x00000002, 0x4062BE3F, 0x4063A820, + 0x00000002, 0x4062BE40, 0x4063A820, 0x00000002, 0x4062BE41, 0x4063A820, + 0x00000002, 0x4062BE42, 0x4063A820, 0x00000002, 0x4062BE43, 0x4063A820, + 0x00000002, 0x4062BE44, 0x4063A820, 0x00000002, + // Block 429, offset 0x6b40 + 0x4062BE45, 0x4063A820, 0x00000002, 0x4062BE46, 0x4063A820, 0x00000002, + 0x4062BE47, 0x4063A820, 0x00000002, 0x4062BE48, 0x4063A820, 0x00000002, + 0x4062BE49, 0x4063A820, 0x00000002, 0x4062BE4A, 0x4063A820, 0x00000002, + 0x4062BE4B, 0x4063A820, 0x00000002, 0x4062BE4C, 0x4063A820, 0x00000002, + 0x4062BE4D, 0x4063A820, 0x00000002, 0x4062BE4E, 0x4063A820, 0x00000002, + 0x4062BE4F, 0x4063A820, 0x00000002, 0x4062BE50, 0x4063A820, 0x00000002, + 0x4062BE51, 0x4063A820, 0x00000002, 0x4062BE52, 0x4063A820, 0x00000002, + 0x4062BE53, 0x4063A820, 0x00000002, 0x4062BE54, 0x4063A820, 0x00000002, + 0x4062BE55, 0x4063A820, 0x00000002, 0x4062BE56, 0x4063A820, 0x00000002, + 0x4062BE57, 0x4063A820, 0x00000002, 0x4062BE58, 0x4063A820, 0x00000002, + 0x4062BE59, 0x4063A820, 0x00000002, 0x4062BE5A, + // Block 430, offset 0x6b80 + 0x4063A820, 0x00000002, 0x4062BE5B, 0x4063A820, 0x00000002, 0x4062BE5C, + 0x4063A820, 0x00000002, 0x4062BE5D, 0x4063A820, 0x00000002, 0x4062BE5E, + 0x4063A820, 0x00000002, 0x4062BE5F, 0x4063A820, 0x00000002, 0x4062BE60, + 0x4063A820, 0x00000002, 0x4062BE61, 0x4063A820, 0x00000002, 0x4062BE62, + 0x4063A820, 0x00000002, 0x4062BE63, 0x4063A820, 0x00000002, 0x4062BE64, + 0x4063A820, 0x00000002, 0x4062BE65, 0x4063A820, 0x00000002, 0x4062BE66, + 0x4063A820, 0x00000002, 0x4062BE67, 0x4063A820, 0x00000002, 0x4062BE68, + 0x4063A820, 0x00000002, 0x4062BE69, 0x4063A820, 0x00000002, 0x4062BE6A, + 0x4063A820, 0x00000002, 0x4062BE6B, 0x4063A820, 0x00000002, 0x4062BE6C, + 0x4063A820, 0x00000002, 0x4062BE6D, 0x4063A820, 0x00000002, 0x4062BE6E, + 0x4063A820, 0x00000002, 0x4062BE6F, 0x4063A820, + // Block 431, offset 0x6bc0 + 0x00000003, 0x4062BE21, 0x4063A820, 0x40646420, 0x00000003, 0x4062BE22, + 0x4063A820, 0x40646420, 0x00000003, 0x4062BE23, 0x4063A820, 0x40646420, + 0x00000003, 0x4062BE24, 0x4063A820, 0x40646420, 0x00000003, 0x4062BE25, + 0x4063A820, 0x40646420, 0x00000003, 0x4062BE26, 0x4063A820, 0x40646420, + 0x00000003, 0x4062BE21, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE22, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE23, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062BE24, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE25, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE26, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062BE27, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE28, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE29, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062BE2A, 0x4063A820, 0x40646A20, + // Block 432, offset 0x6c00 + 0x00000003, 0x4062BE2B, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE2C, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE2D, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062BE2E, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE2F, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE30, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062BE31, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE32, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE33, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062BE34, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE35, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE36, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062BE37, 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE38, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062BE21, 0x4063A820, 0x40647220, + 0x00000003, 0x4062BE22, 0x4063A820, 0x40647220, + // Block 433, offset 0x6c40 + 0x00000003, 0x4062BE23, 0x4063A820, 0x40647220, 0x00000003, 0x4062BE24, + 0x4063A820, 0x40647220, 0x00000003, 0x4062BE25, 0x4063A820, 0x40647220, + 0x00000003, 0x4062BE21, 0x4063A820, 0x40648220, 0x00000003, 0x4062BE22, + 0x4063A820, 0x40648220, 0x00000003, 0x4062BE23, 0x4063A820, 0x40648220, + 0x00000003, 0x4062BE24, 0x4063A820, 0x40648220, 0x00000003, 0x4062BE25, + 0x4063A820, 0x40648220, 0x00000003, 0x4062BE26, 0x4063A820, 0x40648220, + 0x00000003, 0x4062BE27, 0x4063A820, 0x40648220, 0x00000003, 0x4062BE28, + 0x4063A820, 0x40648220, 0x00000003, 0x4062BE29, 0x4063A820, 0x40648220, + 0x00000003, 0x4062BE2A, 0x4063A820, 0x40648220, 0x00000003, 0x4062BE21, + 0x4063A820, 0x40648420, 0x00000003, 0x4062BE22, 0x4063A820, 0x40648420, + 0x00000003, 0x4062BE23, 0x4063A820, 0x40648420, + // Block 434, offset 0x6c80 + 0x00000003, 0x4062BE24, 0x4063A820, 0x40648420, 0x00000003, 0x4062BE25, + 0x4063A820, 0x40648420, 0x00000003, 0x4062BE26, 0x4063A820, 0x40648420, + 0x00000003, 0x4062BE27, 0x4063A820, 0x40648420, 0x00000003, 0x4062BE28, + 0x4063A820, 0x40648420, 0x00000003, 0x4062BE29, 0x4063A820, 0x40648420, + 0x00000003, 0x4062BE2A, 0x4063A820, 0x40648420, 0x00000003, 0x4062BE2B, + 0x4063A820, 0x40648420, 0x00000003, 0x4062BE21, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062BE22, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE23, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE24, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062BE25, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE26, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE27, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062BE28, 0x4063A820, 0x40648C20, + // Block 435, offset 0x6cc0 + 0x00000003, 0x4062BE29, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE2A, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE2B, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062BE2C, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE2D, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE2E, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062BE2F, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE30, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE31, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062BE32, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE33, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE34, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062BE35, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE36, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE37, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062BE38, 0x4063A820, 0x40648C20, + // Block 436, offset 0x6d00 + 0x00000003, 0x4062BE39, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE3A, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE3B, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062BE3C, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE3D, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE3E, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062BE3F, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE40, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE41, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062BE42, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE43, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE44, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062BE45, 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE46, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062BE47, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062BE48, 0x4063A820, 0x40648C20, + // Block 437, offset 0x6d40 + 0x00000002, 0x4062BE21, 0x4063AA20, 0x00000002, 0x4062BE22, 0x4063AA20, + 0x00000002, 0x4062BE23, 0x4063AA20, 0x00000002, 0x4062BE24, 0x4063AA20, + 0x00000003, 0x4062BE21, 0x4063AA20, 0x40646420, 0x00000003, 0x4062BE22, + 0x4063AA20, 0x40646420, 0x00000003, 0x4062BE23, 0x4063AA20, 0x40646420, + 0x00000003, 0x4062BE24, 0x4063AA20, 0x40646420, 0x00000003, 0x4062BE25, + 0x4063AA20, 0x40646420, 0x00000003, 0x4062BE26, 0x4063AA20, 0x40646420, + 0x00000003, 0x4062BE27, 0x4063AA20, 0x40646420, 0x00000003, 0x4062BE21, + 0x4063AA20, 0x40648C20, 0x00000003, 0x4062BE22, 0x4063AA20, 0x40648C20, + 0x00000003, 0x4062BE23, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062BE24, + 0x4063AA20, 0x40648C20, 0x00000003, 0x4062BE25, 0x4063AA20, 0x40648C20, + 0x00000003, 0x4062BE26, 0x4063AA20, 0x40648C20, + // Block 438, offset 0x6d80 + 0x00000002, 0x4062BE21, 0x4063B020, 0x00000002, 0x4062BE22, 0x4063B020, + 0x00000002, 0x4062BE23, 0x4063B020, 0x00000002, 0x4062BE24, 0x4063B020, + 0x00000002, 0x4062BE25, 0x4063B020, 0x00000002, 0x4062BE26, 0x4063B020, + 0x00000002, 0x4062BE27, 0x4063B020, 0x00000002, 0x4062BE28, 0x4063B020, + 0x00000002, 0x4062BE29, 0x4063B020, 0x00000002, 0x4062BE2A, 0x4063B020, + 0x00000002, 0x4062BE2B, 0x4063B020, 0x00000002, 0x4062BE2C, 0x4063B020, + 0x00000002, 0x4062BE2D, 0x4063B020, 0x00000002, 0x4062BE2E, 0x4063B020, + 0x00000002, 0x4062BE2F, 0x4063B020, 0x00000002, 0x4062BE30, 0x4063B020, + 0x00000002, 0x4062BE31, 0x4063B020, 0x00000002, 0x4062BE32, 0x4063B020, + 0x00000002, 0x4062BE33, 0x4063B020, 0x00000002, 0x4062BE34, 0x4063B020, + 0x00000002, 0x4062BE35, 0x4063B020, 0x00000002, + // Block 439, offset 0x6dc0 + 0x4062BE36, 0x4063B020, 0x00000002, 0x4062BE37, 0x4063B020, 0x00000002, + 0x4062BE38, 0x4063B020, 0x00000002, 0x4062BE39, 0x4063B020, 0x00000002, + 0x4062BE3A, 0x4063B020, 0x00000002, 0x4062BE3B, 0x4063B020, 0x00000002, + 0x4062BE3C, 0x4063B020, 0x00000002, 0x4062BE3D, 0x4063B020, 0x00000002, + 0x4062BE3E, 0x4063B020, 0x00000002, 0x4062BE3F, 0x4063B020, 0x00000002, + 0x4062BE40, 0x4063B020, 0x00000002, 0x4062BE41, 0x4063B020, 0x00000002, + 0x4062BE42, 0x4063B020, 0x00000002, 0x4062BE43, 0x4063B020, 0x00000002, + 0x4062BE44, 0x4063B020, 0x00000002, 0x4062BE45, 0x4063B020, 0x00000002, + 0x4062BE46, 0x4063B020, 0x00000002, 0x4062BE47, 0x4063B020, 0x00000002, + 0x4062BE48, 0x4063B020, 0x00000003, 0x4062BE21, 0x4063B020, 0x40646420, + 0x00000003, 0x4062BE22, 0x4063B020, 0x40646420, + // Block 440, offset 0x6e00 + 0x00000003, 0x4062BE23, 0x4063B020, 0x40646420, 0x00000003, 0x4062BE24, + 0x4063B020, 0x40646420, 0x00000003, 0x4062BE25, 0x4063B020, 0x40646420, + 0x00000003, 0x4062BE26, 0x4063B020, 0x40646420, 0x00000003, 0x4062BE27, + 0x4063B020, 0x40646420, 0x00000003, 0x4062BE28, 0x4063B020, 0x40646420, + 0x00000003, 0x4062BE29, 0x4063B020, 0x40646420, 0x00000003, 0x4062BE2A, + 0x4063B020, 0x40646420, 0x00000003, 0x4062BE2B, 0x4063B020, 0x40646420, + 0x00000003, 0x4062BE2C, 0x4063B020, 0x40646420, 0x00000003, 0x4062BE2D, + 0x4063B020, 0x40646420, 0x00000003, 0x4062BE2E, 0x4063B020, 0x40646420, + 0x00000003, 0x4062BE2F, 0x4063B020, 0x40646420, 0x00000003, 0x4062BE30, + 0x4063B020, 0x40646420, 0x00000003, 0x4062BE31, 0x4063B020, 0x40646420, + 0x00000003, 0x4062BE32, 0x4063B020, 0x40646420, + // Block 441, offset 0x6e40 + 0x00000003, 0x4062BE33, 0x4063B020, 0x40646420, 0x00000003, 0x4062BE34, + 0x4063B020, 0x40646420, 0x00000003, 0x4062BE35, 0x4063B020, 0x40646420, + 0x00000003, 0x4062BE36, 0x4063B020, 0x40646420, 0x00000003, 0x4062BE21, + 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE22, 0x4063B020, 0x40646A20, + 0x00000003, 0x4062BE23, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE24, + 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE25, 0x4063B020, 0x40646A20, + 0x00000003, 0x4062BE26, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE27, + 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE28, 0x4063B020, 0x40646A20, + 0x00000003, 0x4062BE29, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE2A, + 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE2B, 0x4063B020, 0x40646A20, + 0x00000003, 0x4062BE2C, 0x4063B020, 0x40646A20, + // Block 442, offset 0x6e80 + 0x00000003, 0x4062BE2D, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE2E, + 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE2F, 0x4063B020, 0x40646A20, + 0x00000003, 0x4062BE30, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE31, + 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE32, 0x4063B020, 0x40646A20, + 0x00000003, 0x4062BE33, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE34, + 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE35, 0x4063B020, 0x40646A20, + 0x00000003, 0x4062BE36, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE37, + 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE38, 0x4063B020, 0x40646A20, + 0x00000003, 0x4062BE39, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE3A, + 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE3B, 0x4063B020, 0x40646A20, + 0x00000003, 0x4062BE3C, 0x4063B020, 0x40646A20, + // Block 443, offset 0x6ec0 + 0x00000003, 0x4062BE3D, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE3E, + 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE3F, 0x4063B020, 0x40646A20, + 0x00000003, 0x4062BE40, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE41, + 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE42, 0x4063B020, 0x40646A20, + 0x00000003, 0x4062BE43, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE44, + 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE45, 0x4063B020, 0x40646A20, + 0x00000003, 0x4062BE46, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE47, + 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE48, 0x4063B020, 0x40646A20, + 0x00000003, 0x4062BE49, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE4A, + 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE4B, 0x4063B020, 0x40646A20, + 0x00000003, 0x4062BE4C, 0x4063B020, 0x40646A20, + // Block 444, offset 0x6f00 + 0x00000003, 0x4062BE4D, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE4E, + 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE4F, 0x4063B020, 0x40646A20, + 0x00000003, 0x4062BE50, 0x4063B020, 0x40646A20, 0x00000003, 0x4062BE21, + 0x4063B020, 0x40647220, 0x00000003, 0x4062BE22, 0x4063B020, 0x40647220, + 0x00000003, 0x4062BE23, 0x4063B020, 0x40647220, 0x00000003, 0x4062BE24, + 0x4063B020, 0x40647220, 0x00000003, 0x4062BE25, 0x4063B020, 0x40647220, + 0x00000003, 0x4062BE26, 0x4063B020, 0x40647220, 0x00000003, 0x4062BE27, + 0x4063B020, 0x40647220, 0x00000003, 0x4062BE28, 0x4063B020, 0x40647220, + 0x00000003, 0x4062BE29, 0x4063B020, 0x40647220, 0x00000003, 0x4062BE2A, + 0x4063B020, 0x40647220, 0x00000003, 0x4062BE2B, 0x4063B020, 0x40647220, + 0x00000003, 0x4062BE2C, 0x4063B020, 0x40647220, + // Block 445, offset 0x6f40 + 0x00000003, 0x4062BE2D, 0x4063B020, 0x40647220, 0x00000003, 0x4062BE2E, + 0x4063B020, 0x40647220, 0x00000003, 0x4062BE2F, 0x4063B020, 0x40647220, + 0x00000003, 0x4062BE30, 0x4063B020, 0x40647220, 0x00000003, 0x4062BE31, + 0x4063B020, 0x40647220, 0x00000003, 0x4062BE32, 0x4063B020, 0x40647220, + 0x00000003, 0x4062BE33, 0x4063B020, 0x40647220, 0x00000003, 0x4062BE34, + 0x4063B020, 0x40647220, 0x00000003, 0x4062BE35, 0x4063B020, 0x40647220, + 0x00000003, 0x4062BE21, 0x4063B020, 0x40648220, 0x00000003, 0x4062BE22, + 0x4063B020, 0x40648220, 0x00000003, 0x4062BE23, 0x4063B020, 0x40648220, + 0x00000003, 0x4062BE24, 0x4063B020, 0x40648220, 0x00000003, 0x4062BE25, + 0x4063B020, 0x40648220, 0x00000003, 0x4062BE26, 0x4063B020, 0x40648220, + 0x00000003, 0x4062BE27, 0x4063B020, 0x40648220, + // Block 446, offset 0x6f80 + 0x00000003, 0x4062BE28, 0x4063B020, 0x40648220, 0x00000003, 0x4062BE29, + 0x4063B020, 0x40648220, 0x00000003, 0x4062BE2A, 0x4063B020, 0x40648220, + 0x00000003, 0x4062BE2B, 0x4063B020, 0x40648220, 0x00000003, 0x4062BE2C, + 0x4063B020, 0x40648220, 0x00000003, 0x4062BE2D, 0x4063B020, 0x40648220, + 0x00000003, 0x4062BE2E, 0x4063B020, 0x40648220, 0x00000003, 0x4062BE2F, + 0x4063B020, 0x40648220, 0x00000003, 0x4062BE21, 0x4063B020, 0x40648420, + 0x00000003, 0x4062BE22, 0x4063B020, 0x40648420, 0x00000003, 0x4062BE23, + 0x4063B020, 0x40648420, 0x00000003, 0x4062BE24, 0x4063B020, 0x40648420, + 0x00000003, 0x4062BE25, 0x4063B020, 0x40648420, 0x00000003, 0x4062BE26, + 0x4063B020, 0x40648420, 0x00000003, 0x4062BE27, 0x4063B020, 0x40648420, + 0x00000003, 0x4062BE28, 0x4063B020, 0x40648420, + // Block 447, offset 0x6fc0 + 0x00000003, 0x4062BE29, 0x4063B020, 0x40648420, 0x00000003, 0x4062BE2A, + 0x4063B020, 0x40648420, 0x00000003, 0x4062BE21, 0x4063B020, 0x40648C20, + 0x00000003, 0x4062BE22, 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE23, + 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE24, 0x4063B020, 0x40648C20, + 0x00000003, 0x4062BE25, 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE26, + 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE27, 0x4063B020, 0x40648C20, + 0x00000003, 0x4062BE28, 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE29, + 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE2A, 0x4063B020, 0x40648C20, + 0x00000003, 0x4062BE2B, 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE2C, + 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE2D, 0x4063B020, 0x40648C20, + 0x00000003, 0x4062BE2E, 0x4063B020, 0x40648C20, + // Block 448, offset 0x7000 + 0x00000003, 0x4062BE2F, 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE30, + 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE31, 0x4063B020, 0x40648C20, + 0x00000003, 0x4062BE32, 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE33, + 0x4063B020, 0x40648C20, 0x00000003, 0x4062BE34, 0x4063B020, 0x40648C20, + 0x00000002, 0x4062BE21, 0x4063B220, 0x00000002, 0x4062BE22, 0x4063B220, + 0x00000002, 0x4062BE23, 0x4063B220, 0x00000002, 0x4062BE24, 0x4063B220, + 0x00000002, 0x4062BE25, 0x4063B220, 0x00000002, 0x4062BE26, 0x4063B220, + 0x00000002, 0x4062BE27, 0x4063B220, 0x00000002, 0x4062BE28, 0x4063B220, + 0x00000002, 0x4062BE29, 0x4063B220, 0x00000002, 0x4062BE2A, 0x4063B220, + 0x00000002, 0x4062BE2B, 0x4063B220, 0x00000002, 0x4062BE2C, 0x4063B220, + 0x00000002, 0x4062BE21, 0x4063B820, 0x00000002, + // Block 449, offset 0x7040 + 0x4062BE22, 0x4063B820, 0x00000002, 0x4062BE23, 0x4063B820, 0x00000002, + 0x4062BE24, 0x4063B820, 0x00000002, 0x4062BE25, 0x4063B820, 0x00000002, + 0x4062BE26, 0x4063B820, 0x00000002, 0x4062BE27, 0x4063B820, 0x00000002, + 0x4062BE28, 0x4063B820, 0x00000002, 0x4062BE29, 0x4063B820, 0x00000002, + 0x4062BE2A, 0x4063B820, 0x00000002, 0x4062BE2B, 0x4063B820, 0x00000002, + 0x4062BE2C, 0x4063B820, 0x00000002, 0x4062BE2D, 0x4063B820, 0x00000002, + 0x4062BE2E, 0x4063B820, 0x00000002, 0x4062BE2F, 0x4063B820, 0x00000002, + 0x4062BE30, 0x4063B820, 0x00000002, 0x4062BE31, 0x4063B820, 0x00000002, + 0x4062BE32, 0x4063B820, 0x00000002, 0x4062BE33, 0x4063B820, 0x00000002, + 0x4062BE34, 0x4063B820, 0x00000002, 0x4062BE35, 0x4063B820, 0x00000002, + 0x4062BE36, 0x4063B820, 0x00000002, 0x4062BE37, + // Block 450, offset 0x7080 + 0x4063B820, 0x00000002, 0x4062BE38, 0x4063B820, 0x00000002, 0x4062BE39, + 0x4063B820, 0x00000002, 0x4062BE3A, 0x4063B820, 0x00000002, 0x4062BE3B, + 0x4063B820, 0x00000002, 0x4062BE3C, 0x4063B820, 0x00000002, 0x4062BE3D, + 0x4063B820, 0x00000002, 0x4062BE3E, 0x4063B820, 0x00000002, 0x4062BE3F, + 0x4063B820, 0x00000002, 0x4062BE40, 0x4063B820, 0x00000002, 0x4062BE41, + 0x4063B820, 0x00000002, 0x4062BE42, 0x4063B820, 0x00000002, 0x4062BE43, + 0x4063B820, 0x00000002, 0x4062BE44, 0x4063B820, 0x00000002, 0x4062BE45, + 0x4063B820, 0x00000002, 0x4062BE46, 0x4063B820, 0x00000002, 0x4062BE47, + 0x4063B820, 0x00000002, 0x4062BE48, 0x4063B820, 0x00000002, 0x4062BE49, + 0x4063B820, 0x00000002, 0x4062BE4A, 0x4063B820, 0x00000002, 0x4062BE4B, + 0x4063B820, 0x00000002, 0x4062BE4C, 0x4063B820, + // Block 451, offset 0x70c0 + 0x00000002, 0x4062BE4D, 0x4063B820, 0x00000002, 0x4062BE4E, 0x4063B820, + 0x00000002, 0x4062BE4F, 0x4063B820, 0x00000002, 0x4062BE50, 0x4063B820, + 0x00000002, 0x4062BE51, 0x4063B820, 0x00000002, 0x4062BE52, 0x4063B820, + 0x00000002, 0x4062BE53, 0x4063B820, 0x00000002, 0x4062BE54, 0x4063B820, + 0x00000002, 0x4062BE55, 0x4063B820, 0x00000002, 0x4062BE56, 0x4063B820, + 0x00000002, 0x4062BE57, 0x4063B820, 0x00000002, 0x4062BE58, 0x4063B820, + 0x00000002, 0x4062BE59, 0x4063B820, 0x00000002, 0x4062BE5A, 0x4063B820, + 0x00000002, 0x4062BE5B, 0x4063B820, 0x00000002, 0x4062BE5C, 0x4063B820, + 0x00000003, 0x4062BE21, 0x4063B820, 0x40646420, 0x00000003, 0x4062BE22, + 0x4063B820, 0x40646420, 0x00000003, 0x4062BE23, 0x4063B820, 0x40646420, + 0x00000003, 0x4062BE24, 0x4063B820, 0x40646420, + // Block 452, offset 0x7100 + 0x00000003, 0x4062BE25, 0x4063B820, 0x40646420, 0x00000003, 0x4062BE26, + 0x4063B820, 0x40646420, 0x00000003, 0x4062BE27, 0x4063B820, 0x40646420, + 0x00000003, 0x4062BE28, 0x4063B820, 0x40646420, 0x00000003, 0x4062BE29, + 0x4063B820, 0x40646420, 0x00000003, 0x4062BE2A, 0x4063B820, 0x40646420, + 0x00000003, 0x4062BE2B, 0x4063B820, 0x40646420, 0x00000003, 0x4062BE21, + 0x4063B820, 0x40646A20, 0x00000003, 0x4062BE22, 0x4063B820, 0x40646A20, + 0x00000003, 0x4062BE23, 0x4063B820, 0x40646A20, 0x00000003, 0x4062BE24, + 0x4063B820, 0x40646A20, 0x00000003, 0x4062BE25, 0x4063B820, 0x40646A20, + 0x00000003, 0x4062BE26, 0x4063B820, 0x40646A20, 0x00000003, 0x4062BE27, + 0x4063B820, 0x40646A20, 0x00000003, 0x4062BE28, 0x4063B820, 0x40646A20, + 0x00000003, 0x4062BE21, 0x4063B820, 0x40647220, + // Block 453, offset 0x7140 + 0x00000003, 0x4062BE22, 0x4063B820, 0x40647220, 0x00000003, 0x4062BE23, + 0x4063B820, 0x40647220, 0x00000003, 0x4062BE21, 0x4063B820, 0x40648C20, + 0x00000003, 0x4062BE22, 0x4063B820, 0x40648C20, 0x00000003, 0x4062BE23, + 0x4063B820, 0x40648C20, 0x00000003, 0x4062BE24, 0x4063B820, 0x40648C20, + 0x00000003, 0x4062BE25, 0x4063B820, 0x40648C20, 0x00000003, 0x4062BE26, + 0x4063B820, 0x40648C20, 0x00000003, 0x4062BE27, 0x4063B820, 0x40648C20, + 0x00000003, 0x4062BE28, 0x4063B820, 0x40648C20, 0x00000003, 0x4062BE29, + 0x4063B820, 0x40648C20, 0x00000003, 0x4062BE2A, 0x4063B820, 0x40648C20, + 0x00000003, 0x4062BE2B, 0x4063B820, 0x40648C20, 0x00000002, 0x4062BE21, + 0x4063BC20, 0x00000002, 0x4062BE22, 0x4063BC20, 0x00000002, 0x4062BE23, + 0x4063BC20, 0x00000002, 0x4062BE24, 0x4063BC20, + // Block 454, offset 0x7180 + 0x00000002, 0x4062BE25, 0x4063BC20, 0x00000002, 0x4062BE26, 0x4063BC20, + 0x00000002, 0x4062BE27, 0x4063BC20, 0x00000002, 0x4062BE21, 0x4063BE20, + 0x00000002, 0x4062BE22, 0x4063BE20, 0x00000002, 0x4062BE21, 0x4063C220, + 0x00000002, 0x4062BE22, 0x4063C220, 0x00000002, 0x4062BE23, 0x4063C220, + 0x00000002, 0x4062BE24, 0x4063C220, 0x00000002, 0x4062BE25, 0x4063C220, + 0x00000002, 0x4062BE26, 0x4063C220, 0x00000002, 0x4062BE27, 0x4063C220, + 0x00000002, 0x4062BE28, 0x4063C220, 0x00000002, 0x4062BE29, 0x4063C220, + 0x00000002, 0x4062BE2A, 0x4063C220, 0x00000002, 0x4062BE2B, 0x4063C220, + 0x00000002, 0x4062BE2C, 0x4063C220, 0x00000002, 0x4062BE2D, 0x4063C220, + 0x00000002, 0x4062BE2E, 0x4063C220, 0x00000002, 0x4062BE2F, 0x4063C220, + 0x00000002, 0x4062BE30, 0x4063C220, 0x00000002, + // Block 455, offset 0x71c0 + 0x4062BE31, 0x4063C220, 0x00000002, 0x4062BE32, 0x4063C220, 0x00000002, + 0x4062BE33, 0x4063C220, 0x00000002, 0x4062BE34, 0x4063C220, 0x00000002, + 0x4062BE35, 0x4063C220, 0x00000002, 0x4062BE36, 0x4063C220, 0x00000002, + 0x4062BE37, 0x4063C220, 0x00000002, 0x4062BE38, 0x4063C220, 0x00000002, + 0x4062BE39, 0x4063C220, 0x00000002, 0x4062BE3A, 0x4063C220, 0x00000002, + 0x4062BE3B, 0x4063C220, 0x00000002, 0x4062BE3C, 0x4063C220, 0x00000002, + 0x4062BE3D, 0x4063C220, 0x00000002, 0x4062BE3E, 0x4063C220, 0x00000002, + 0x4062BE3F, 0x4063C220, 0x00000002, 0x4062BE40, 0x4063C220, 0x00000002, + 0x4062BE41, 0x4063C220, 0x00000002, 0x4062BE42, 0x4063C220, 0x00000002, + 0x4062BE43, 0x4063C220, 0x00000002, 0x4062BE44, 0x4063C220, 0x00000002, + 0x4062BE45, 0x4063C220, 0x00000002, 0x4062BE46, + // Block 456, offset 0x7200 + 0x4063C220, 0x00000002, 0x4062BE47, 0x4063C220, 0x00000002, 0x4062BE48, + 0x4063C220, 0x00000002, 0x4062BE49, 0x4063C220, 0x00000002, 0x4062BE4A, + 0x4063C220, 0x00000002, 0x4062BE4B, 0x4063C220, 0x00000002, 0x4062BE4C, + 0x4063C220, 0x00000002, 0x4062BE4D, 0x4063C220, 0x00000002, 0x4062BE4E, + 0x4063C220, 0x00000002, 0x4062BE4F, 0x4063C220, 0x00000002, 0x4062BE50, + 0x4063C220, 0x00000002, 0x4062BE51, 0x4063C220, 0x00000002, 0x4062BE52, + 0x4063C220, 0x00000002, 0x4062BE53, 0x4063C220, 0x00000002, 0x4062BE54, + 0x4063C220, 0x00000002, 0x4062BE55, 0x4063C220, 0x00000002, 0x4062BE56, + 0x4063C220, 0x00000002, 0x4062BE57, 0x4063C220, 0x00000002, 0x4062BE58, + 0x4063C220, 0x00000002, 0x4062BE59, 0x4063C220, 0x00000002, 0x4062BE5A, + 0x4063C220, 0x00000002, 0x4062BE5B, 0x4063C220, + // Block 457, offset 0x7240 + 0x00000002, 0x4062BE5C, 0x4063C220, 0x00000002, 0x4062BE5D, 0x4063C220, + 0x00000002, 0x4062BE5E, 0x4063C220, 0x00000002, 0x4062BE5F, 0x4063C220, + 0x00000002, 0x4062BE60, 0x4063C220, 0x00000002, 0x4062BE61, 0x4063C220, + 0x00000002, 0x4062BE62, 0x4063C220, 0x00000002, 0x4062BE63, 0x4063C220, + 0x00000002, 0x4062BE64, 0x4063C220, 0x00000002, 0x4062BE65, 0x4063C220, + 0x00000002, 0x4062BE66, 0x4063C220, 0x00000002, 0x4062BE67, 0x4063C220, + 0x00000002, 0x4062BE68, 0x4063C220, 0x00000002, 0x4062BE69, 0x4063C220, + 0x00000002, 0x4062BE6A, 0x4063C220, 0x00000002, 0x4062BE6B, 0x4063C220, + 0x00000002, 0x4062BE6C, 0x4063C220, 0x00000002, 0x4062BE6D, 0x4063C220, + 0x00000002, 0x4062BE6E, 0x4063C220, 0x00000002, 0x4062BE6F, 0x4063C220, + 0x00000002, 0x4062BE70, 0x4063C220, 0x00000002, + // Block 458, offset 0x7280 + 0x4062BE71, 0x4063C220, 0x00000002, 0x4062BE72, 0x4063C220, 0x00000003, + 0x4062BE21, 0x4063C220, 0x40646420, 0x00000003, 0x4062BE22, 0x4063C220, + 0x40646420, 0x00000003, 0x4062BE23, 0x4063C220, 0x40646420, 0x00000003, + 0x4062BE24, 0x4063C220, 0x40646420, 0x00000003, 0x4062BE25, 0x4063C220, + 0x40646420, 0x00000003, 0x4062BE26, 0x4063C220, 0x40646420, 0x00000003, + 0x4062BE27, 0x4063C220, 0x40646420, 0x00000003, 0x4062BE28, 0x4063C220, + 0x40646420, 0x00000003, 0x4062BE29, 0x4063C220, 0x40646420, 0x00000003, + 0x4062BE2A, 0x4063C220, 0x40646420, 0x00000003, 0x4062BE2B, 0x4063C220, + 0x40646420, 0x00000003, 0x4062BE2C, 0x4063C220, 0x40646420, 0x00000003, + 0x4062BE2D, 0x4063C220, 0x40646420, 0x00000003, 0x4062BE2E, 0x4063C220, + 0x40646420, 0x00000003, 0x4062BE2F, 0x4063C220, + // Block 459, offset 0x72c0 + 0x40646420, 0x00000003, 0x4062BE30, 0x4063C220, 0x40646420, 0x00000003, + 0x4062BE31, 0x4063C220, 0x40646420, 0x00000003, 0x4062BE32, 0x4063C220, + 0x40646420, 0x00000003, 0x4062BE33, 0x4063C220, 0x40646420, 0x00000003, + 0x4062BE21, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE22, 0x4063C220, + 0x40646A20, 0x00000003, 0x4062BE23, 0x4063C220, 0x40646A20, 0x00000003, + 0x4062BE24, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE25, 0x4063C220, + 0x40646A20, 0x00000003, 0x4062BE26, 0x4063C220, 0x40646A20, 0x00000003, + 0x4062BE27, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE28, 0x4063C220, + 0x40646A20, 0x00000003, 0x4062BE29, 0x4063C220, 0x40646A20, 0x00000003, + 0x4062BE2A, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE2B, 0x4063C220, + 0x40646A20, 0x00000003, 0x4062BE2C, 0x4063C220, + // Block 460, offset 0x7300 + 0x40646A20, 0x00000003, 0x4062BE2D, 0x4063C220, 0x40646A20, 0x00000003, + 0x4062BE2E, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE2F, 0x4063C220, + 0x40646A20, 0x00000003, 0x4062BE30, 0x4063C220, 0x40646A20, 0x00000003, + 0x4062BE31, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE32, 0x4063C220, + 0x40646A20, 0x00000003, 0x4062BE33, 0x4063C220, 0x40646A20, 0x00000003, + 0x4062BE34, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE35, 0x4063C220, + 0x40646A20, 0x00000003, 0x4062BE36, 0x4063C220, 0x40646A20, 0x00000003, + 0x4062BE37, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE38, 0x4063C220, + 0x40646A20, 0x00000003, 0x4062BE39, 0x4063C220, 0x40646A20, 0x00000003, + 0x4062BE3A, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE3B, 0x4063C220, + 0x40646A20, 0x00000003, 0x4062BE3C, 0x4063C220, + // Block 461, offset 0x7340 + 0x40646A20, 0x00000003, 0x4062BE3D, 0x4063C220, 0x40646A20, 0x00000003, + 0x4062BE3E, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE3F, 0x4063C220, + 0x40646A20, 0x00000003, 0x4062BE40, 0x4063C220, 0x40646A20, 0x00000003, + 0x4062BE41, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE42, 0x4063C220, + 0x40646A20, 0x00000003, 0x4062BE43, 0x4063C220, 0x40646A20, 0x00000003, + 0x4062BE44, 0x4063C220, 0x40646A20, 0x00000003, 0x4062BE21, 0x4063C220, + 0x40647220, 0x00000003, 0x4062BE22, 0x4063C220, 0x40647220, 0x00000003, + 0x4062BE23, 0x4063C220, 0x40647220, 0x00000003, 0x4062BE24, 0x4063C220, + 0x40647220, 0x00000003, 0x4062BE25, 0x4063C220, 0x40647220, 0x00000003, + 0x4062BE21, 0x4063C220, 0x40648C20, 0x00000003, 0x4062BE22, 0x4063C220, + 0x40648C20, 0x00000003, 0x4062BE23, 0x4063C220, + // Block 462, offset 0x7380 + 0x40648C20, 0x00000003, 0x4062BE24, 0x4063C220, 0x40648C20, 0x00000002, + 0x4062BE21, 0x4063C820, 0x00000002, 0x4062BE22, 0x4063C820, 0x00000002, + 0x4062BE23, 0x4063C820, 0x00000003, 0x4062BE21, 0x4063CC20, 0x40647220, + 0x00000003, 0x4062BE22, 0x4063CC20, 0x40647220, 0x00000003, 0x4062BE23, + 0x4063CC20, 0x40647220, 0x00000003, 0x4062BE24, 0x4063CC20, 0x40647220, + 0x00000003, 0x4062BE21, 0x4063CC20, 0x40648420, 0x00000003, 0x4062BE22, + 0x4063CC20, 0x40648420, 0x00000003, 0x4062BE23, 0x4063CC20, 0x40648420, + 0x00000003, 0x4062BE24, 0x4063CC20, 0x40648420, 0x00000003, 0x4062BE25, + 0x4063CC20, 0x40648420, 0x00000003, 0x4062BE26, 0x4063CC20, 0x40648420, + 0x00000003, 0x4062BE27, 0x4063CC20, 0x40648420, 0x00000003, 0x4062BE28, + 0x4063CC20, 0x40648420, 0x00000003, 0x4062BE21, + // Block 463, offset 0x73c0 + 0x4063CC20, 0x40648C20, 0x00000003, 0x4062BE22, 0x4063CC20, 0x40648C20, + 0x00000003, 0x4062BE23, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062BE24, + 0x4063CC20, 0x40648C20, 0x00000003, 0x4062BE25, 0x4063CC20, 0x40648C20, + 0x00000003, 0x4062BE26, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062BE27, + 0x4063CC20, 0x40648C20, 0x00000003, 0x4062BE28, 0x4063CC20, 0x40648C20, + 0x00000003, 0x4062BE29, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062BE2A, + 0x4063CC20, 0x40648C20, 0x00000003, 0x4062BE2B, 0x4063CC20, 0x40648C20, + 0x00000003, 0x4062BE2C, 0x4063CC20, 0x40648C20, 0x00000002, 0x4062BE21, + 0x4063D020, 0x00000002, 0x4062BE22, 0x4063D020, 0x00000002, 0x4062BE23, + 0x4063D020, 0x00000002, 0x4062BE24, 0x4063D020, 0x00000002, 0x4062BE25, + 0x4063D020, 0x00000002, 0x4062BE26, 0x4063D020, + // Block 464, offset 0x7400 + 0x00000002, 0x4062BE27, 0x4063D020, 0x00000002, 0x4062BE28, 0x4063D020, + 0x00000002, 0x4062BE29, 0x4063D020, 0x00000002, 0x4062BE2A, 0x4063D020, + 0x00000002, 0x4062BE2B, 0x4063D020, 0x00000002, 0x4062BE2C, 0x4063D020, + 0x00000002, 0x4062BE2D, 0x4063D020, 0x00000002, 0x4062BE2E, 0x4063D020, + 0x00000002, 0x4062BE2F, 0x4063D020, 0x00000002, 0x4062BE30, 0x4063D020, + 0x00000002, 0x4062BE31, 0x4063D020, 0x00000002, 0x4062BE32, 0x4063D020, + 0x00000002, 0x4062BE33, 0x4063D020, 0x00000002, 0x4062BE34, 0x4063D020, + 0x00000002, 0x4062BE35, 0x4063D020, 0x00000002, 0x4062BE36, 0x4063D020, + 0x00000002, 0x4062BE37, 0x4063D020, 0x00000002, 0x4062BE38, 0x4063D020, + 0x00000002, 0x4062BE39, 0x4063D020, 0x00000002, 0x4062BE3A, 0x4063D020, + 0x00000002, 0x4062BE3B, 0x4063D020, 0x00000002, + // Block 465, offset 0x7440 + 0x4062BE3C, 0x4063D020, 0x00000002, 0x4062BE3D, 0x4063D020, 0x00000002, + 0x4062BE3E, 0x4063D020, 0x00000002, 0x4062BE3F, 0x4063D020, 0x00000002, + 0x4062BE40, 0x4063D020, 0x00000002, 0x4062BE41, 0x4063D020, 0x00000002, + 0x4062BE42, 0x4063D020, 0x00000002, 0x4062BE43, 0x4063D020, 0x00000002, + 0x4062BE44, 0x4063D020, 0x00000002, 0x4062BE45, 0x4063D020, 0x00000002, + 0x4062BE46, 0x4063D020, 0x00000002, 0x4062BE47, 0x4063D020, 0x00000002, + 0x4062BE48, 0x4063D020, 0x00000002, 0x4062BE49, 0x4063D020, 0x00000002, + 0x4062BE4A, 0x4063D020, 0x00000002, 0x4062BE4B, 0x4063D020, 0x00000002, + 0x4062BE4C, 0x4063D020, 0x00000002, 0x4062BE4D, 0x4063D020, 0x00000003, + 0x4062BE21, 0x4063D020, 0x40646420, 0x00000003, 0x4062BE22, 0x4063D020, + 0x40646420, 0x00000003, 0x4062BE23, 0x4063D020, + // Block 466, offset 0x7480 + 0x40646420, 0x00000003, 0x4062BE24, 0x4063D020, 0x40646420, 0x00000003, + 0x4062BE25, 0x4063D020, 0x40646420, 0x00000003, 0x4062BE26, 0x4063D020, + 0x40646420, 0x00000003, 0x4062BE27, 0x4063D020, 0x40646420, 0x00000003, + 0x4062BE28, 0x4063D020, 0x40646420, 0x00000003, 0x4062BE29, 0x4063D020, + 0x40646420, 0x00000003, 0x4062BE2A, 0x4063D020, 0x40646420, 0x00000003, + 0x4062BE2B, 0x4063D020, 0x40646420, 0x00000003, 0x4062BE2C, 0x4063D020, + 0x40646420, 0x00000003, 0x4062BE2D, 0x4063D020, 0x40646420, 0x00000003, + 0x4062BE2E, 0x4063D020, 0x40646420, 0x00000003, 0x4062BE2F, 0x4063D020, + 0x40646420, 0x00000003, 0x4062BE30, 0x4063D020, 0x40646420, 0x00000003, + 0x4062BE31, 0x4063D020, 0x40646420, 0x00000003, 0x4062BE32, 0x4063D020, + 0x40646420, 0x00000003, 0x4062BE21, 0x4063D020, + // Block 467, offset 0x74c0 + 0x40646A20, 0x00000003, 0x4062BE22, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062BE23, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE24, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062BE25, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062BE26, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE27, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062BE28, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062BE29, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE2A, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062BE2B, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062BE2C, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE2D, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062BE2E, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062BE2F, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE30, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062BE31, 0x4063D020, + // Block 468, offset 0x7500 + 0x40646A20, 0x00000003, 0x4062BE32, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062BE33, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE34, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062BE35, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062BE36, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE37, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062BE38, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062BE39, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE3A, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062BE3B, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062BE3C, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE3D, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062BE3E, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062BE3F, 0x4063D020, 0x40646A20, 0x00000003, 0x4062BE40, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062BE41, 0x4063D020, + // Block 469, offset 0x7540 + 0x40646A20, 0x00000003, 0x4062BE21, 0x4063D020, 0x40647220, 0x00000003, + 0x4062BE22, 0x4063D020, 0x40647220, 0x00000003, 0x4062BE23, 0x4063D020, + 0x40647220, 0x00000003, 0x4062BE24, 0x4063D020, 0x40647220, 0x00000003, + 0x4062BE25, 0x4063D020, 0x40647220, 0x00000003, 0x4062BE26, 0x4063D020, + 0x40647220, 0x00000003, 0x4062BE21, 0x4063D020, 0x40648220, 0x00000003, + 0x4062BE22, 0x4063D020, 0x40648220, 0x00000003, 0x4062BE23, 0x4063D020, + 0x40648220, 0x00000003, 0x4062BE24, 0x4063D020, 0x40648220, 0x00000003, + 0x4062BE25, 0x4063D020, 0x40648220, 0x00000003, 0x4062BE26, 0x4063D020, + 0x40648220, 0x00000003, 0x4062BE27, 0x4063D020, 0x40648220, 0x00000003, + 0x4062BE28, 0x4063D020, 0x40648220, 0x00000003, 0x4062BE29, 0x4063D020, + 0x40648220, 0x00000003, 0x4062BE2A, 0x4063D020, + // Block 470, offset 0x7580 + 0x40648220, 0x00000003, 0x4062BE2B, 0x4063D020, 0x40648220, 0x00000003, + 0x4062BE2C, 0x4063D020, 0x40648220, 0x00000003, 0x4062BE2D, 0x4063D020, + 0x40648220, 0x00000003, 0x4062BE2E, 0x4063D020, 0x40648220, 0x00000003, + 0x4062BE2F, 0x4063D020, 0x40648220, 0x00000003, 0x4062BE21, 0x4063D020, + 0x40648420, 0x00000003, 0x4062BE22, 0x4063D020, 0x40648420, 0x00000003, + 0x4062BE23, 0x4063D020, 0x40648420, 0x00000003, 0x4062C021, 0x4063A820, + 0x40648C20, 0x00000002, 0x4062C021, 0x4063D020, 0x00000002, 0x4062C221, + 0x4063A820, 0x00000002, 0x4062C222, 0x4063A820, 0x00000002, 0x4062C223, + 0x4063A820, 0x00000002, 0x4062C224, 0x4063A820, 0x00000002, 0x4062C225, + 0x4063A820, 0x00000002, 0x4062C226, 0x4063A820, 0x00000002, 0x4062C227, + 0x4063A820, 0x00000002, 0x4062C228, 0x4063A820, + // Block 471, offset 0x75c0 + 0x00000002, 0x4062C229, 0x4063A820, 0x00000002, 0x4062C22A, 0x4063A820, + 0x00000002, 0x4062C22B, 0x4063A820, 0x00000002, 0x4062C22C, 0x4063A820, + 0x00000002, 0x4062C22D, 0x4063A820, 0x00000002, 0x4062C22E, 0x4063A820, + 0x00000002, 0x4062C22F, 0x4063A820, 0x00000002, 0x4062C230, 0x4063A820, + 0x00000002, 0x4062C231, 0x4063A820, 0x00000002, 0x4062C232, 0x4063A820, + 0x00000002, 0x4062C233, 0x4063A820, 0x00000002, 0x4062C234, 0x4063A820, + 0x00000002, 0x4062C235, 0x4063A820, 0x00000002, 0x4062C236, 0x4063A820, + 0x00000002, 0x4062C237, 0x4063A820, 0x00000002, 0x4062C238, 0x4063A820, + 0x00000002, 0x4062C239, 0x4063A820, 0x00000002, 0x4062C23A, 0x4063A820, + 0x00000002, 0x4062C23B, 0x4063A820, 0x00000002, 0x4062C23C, 0x4063A820, + 0x00000002, 0x4062C23D, 0x4063A820, 0x00000003, + // Block 472, offset 0x7600 + 0x4062C221, 0x4063A820, 0x40646420, 0x00000003, 0x4062C222, 0x4063A820, + 0x40646420, 0x00000003, 0x4062C223, 0x4063A820, 0x40646420, 0x00000003, + 0x4062C224, 0x4063A820, 0x40646420, 0x00000003, 0x4062C225, 0x4063A820, + 0x40646420, 0x00000003, 0x4062C226, 0x4063A820, 0x40646420, 0x00000003, + 0x4062C227, 0x4063A820, 0x40646420, 0x00000003, 0x4062C228, 0x4063A820, + 0x40646420, 0x00000003, 0x4062C229, 0x4063A820, 0x40646420, 0x00000003, + 0x4062C22A, 0x4063A820, 0x40646420, 0x00000003, 0x4062C22B, 0x4063A820, + 0x40646420, 0x00000003, 0x4062C22C, 0x4063A820, 0x40646420, 0x00000003, + 0x4062C22D, 0x4063A820, 0x40646420, 0x00000003, 0x4062C22E, 0x4063A820, + 0x40646420, 0x00000003, 0x4062C22F, 0x4063A820, 0x40646420, 0x00000003, + 0x4062C230, 0x4063A820, 0x40646420, 0x00000003, + // Block 473, offset 0x7640 + 0x4062C231, 0x4063A820, 0x40646420, 0x00000003, 0x4062C232, 0x4063A820, + 0x40646420, 0x00000003, 0x4062C233, 0x4063A820, 0x40646420, 0x00000003, + 0x4062C234, 0x4063A820, 0x40646420, 0x00000003, 0x4062C235, 0x4063A820, + 0x40646420, 0x00000003, 0x4062C236, 0x4063A820, 0x40646420, 0x00000003, + 0x4062C237, 0x4063A820, 0x40646420, 0x00000003, 0x4062C238, 0x4063A820, + 0x40646420, 0x00000003, 0x4062C239, 0x4063A820, 0x40646420, 0x00000003, + 0x4062C221, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C222, 0x4063A820, + 0x40646A20, 0x00000003, 0x4062C223, 0x4063A820, 0x40646A20, 0x00000003, + 0x4062C224, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C225, 0x4063A820, + 0x40646A20, 0x00000003, 0x4062C226, 0x4063A820, 0x40646A20, 0x00000003, + 0x4062C227, 0x4063A820, 0x40646A20, 0x00000003, + // Block 474, offset 0x7680 + 0x4062C228, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C229, 0x4063A820, + 0x40646A20, 0x00000003, 0x4062C22A, 0x4063A820, 0x40646A20, 0x00000003, + 0x4062C22B, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C22C, 0x4063A820, + 0x40646A20, 0x00000003, 0x4062C22D, 0x4063A820, 0x40646A20, 0x00000003, + 0x4062C22E, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C221, 0x4063A820, + 0x40647220, 0x00000003, 0x4062C222, 0x4063A820, 0x40647220, 0x00000003, + 0x4062C223, 0x4063A820, 0x40647220, 0x00000003, 0x4062C224, 0x4063A820, + 0x40647220, 0x00000003, 0x4062C225, 0x4063A820, 0x40647220, 0x00000003, + 0x4062C226, 0x4063A820, 0x40647220, 0x00000003, 0x4062C227, 0x4063A820, + 0x40647220, 0x00000003, 0x4062C228, 0x4063A820, 0x40647220, 0x00000003, + 0x4062C229, 0x4063A820, 0x40647220, 0x00000003, + // Block 475, offset 0x76c0 + 0x4062C22A, 0x4063A820, 0x40647220, 0x00000003, 0x4062C22B, 0x4063A820, + 0x40647220, 0x00000003, 0x4062C22C, 0x4063A820, 0x40647220, 0x00000003, + 0x4062C221, 0x4063A820, 0x40648220, 0x00000003, 0x4062C222, 0x4063A820, + 0x40648220, 0x00000003, 0x4062C223, 0x4063A820, 0x40648220, 0x00000003, + 0x4062C224, 0x4063A820, 0x40648220, 0x00000003, 0x4062C225, 0x4063A820, + 0x40648220, 0x00000003, 0x4062C226, 0x4063A820, 0x40648220, 0x00000003, + 0x4062C227, 0x4063A820, 0x40648220, 0x00000003, 0x4062C228, 0x4063A820, + 0x40648220, 0x00000003, 0x4062C229, 0x4063A820, 0x40648220, 0x00000003, + 0x4062C22A, 0x4063A820, 0x40648220, 0x00000003, 0x4062C22B, 0x4063A820, + 0x40648220, 0x00000003, 0x4062C22C, 0x4063A820, 0x40648220, 0x00000003, + 0x4062C22D, 0x4063A820, 0x40648220, 0x00000003, + // Block 476, offset 0x7700 + 0x4062C22E, 0x4063A820, 0x40648220, 0x00000003, 0x4062C22F, 0x4063A820, + 0x40648220, 0x00000003, 0x4062C230, 0x4063A820, 0x40648220, 0x00000003, + 0x4062C231, 0x4063A820, 0x40648220, 0x00000003, 0x4062C232, 0x4063A820, + 0x40648220, 0x00000003, 0x4062C233, 0x4063A820, 0x40648220, 0x00000003, + 0x4062C221, 0x4063A820, 0x40648420, 0x00000003, 0x4062C222, 0x4063A820, + 0x40648420, 0x00000003, 0x4062C223, 0x4063A820, 0x40648420, 0x00000003, + 0x4062C224, 0x4063A820, 0x40648420, 0x00000003, 0x4062C221, 0x4063A820, + 0x40648C20, 0x00000003, 0x4062C222, 0x4063A820, 0x40648C20, 0x00000003, + 0x4062C223, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C224, 0x4063A820, + 0x40648C20, 0x00000003, 0x4062C225, 0x4063A820, 0x40648C20, 0x00000003, + 0x4062C226, 0x4063A820, 0x40648C20, 0x00000003, + // Block 477, offset 0x7740 + 0x4062C227, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C228, 0x4063A820, + 0x40648C20, 0x00000003, 0x4062C229, 0x4063A820, 0x40648C20, 0x00000003, + 0x4062C22A, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C22B, 0x4063A820, + 0x40648C20, 0x00000003, 0x4062C22C, 0x4063A820, 0x40648C20, 0x00000002, + 0x4062C221, 0x4063AA20, 0x00000002, 0x4062C222, 0x4063AA20, 0x00000002, + 0x4062C223, 0x4063AA20, 0x00000002, 0x4062C224, 0x4063AA20, 0x00000002, + 0x4062C225, 0x4063AA20, 0x00000002, 0x4062C226, 0x4063AA20, 0x00000002, + 0x4062C227, 0x4063AA20, 0x00000002, 0x4062C228, 0x4063AA20, 0x00000002, + 0x4062C229, 0x4063AA20, 0x00000002, 0x4062C22A, 0x4063AA20, 0x00000002, + 0x4062C22B, 0x4063AA20, 0x00000002, 0x4062C22C, 0x4063AA20, 0x00000002, + 0x4062C22D, 0x4063AA20, 0x00000002, 0x4062C22E, + // Block 478, offset 0x7780 + 0x4063AA20, 0x00000002, 0x4062C22F, 0x4063AA20, 0x00000002, 0x4062C230, + 0x4063AA20, 0x00000002, 0x4062C231, 0x4063AA20, 0x00000002, 0x4062C232, + 0x4063AA20, 0x00000002, 0x4062C233, 0x4063AA20, 0x00000002, 0x4062C234, + 0x4063AA20, 0x00000002, 0x4062C235, 0x4063AA20, 0x00000002, 0x4062C236, + 0x4063AA20, 0x00000002, 0x4062C237, 0x4063AA20, 0x00000002, 0x4062C238, + 0x4063AA20, 0x00000002, 0x4062C239, 0x4063AA20, 0x00000002, 0x4062C23A, + 0x4063AA20, 0x00000002, 0x4062C23B, 0x4063AA20, 0x00000002, 0x4062C23C, + 0x4063AA20, 0x00000002, 0x4062C23D, 0x4063AA20, 0x00000002, 0x4062C23E, + 0x4063AA20, 0x00000002, 0x4062C23F, 0x4063AA20, 0x00000003, 0x4062C221, + 0x4063AA20, 0x40646420, 0x00000003, 0x4062C222, 0x4063AA20, 0x40646420, + 0x00000003, 0x4062C223, 0x4063AA20, 0x40646420, + // Block 479, offset 0x77c0 + 0x00000003, 0x4062C224, 0x4063AA20, 0x40646420, 0x00000003, 0x4062C225, + 0x4063AA20, 0x40646420, 0x00000003, 0x4062C226, 0x4063AA20, 0x40646420, + 0x00000003, 0x4062C227, 0x4063AA20, 0x40646420, 0x00000003, 0x4062C228, + 0x4063AA20, 0x40646420, 0x00000003, 0x4062C229, 0x4063AA20, 0x40646420, + 0x00000003, 0x4062C22A, 0x4063AA20, 0x40646420, 0x00000003, 0x4062C22B, + 0x4063AA20, 0x40646420, 0x00000003, 0x4062C221, 0x4063AA20, 0x40648C20, + 0x00000003, 0x4062C222, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062C223, + 0x4063AA20, 0x40648C20, 0x00000003, 0x4062C224, 0x4063AA20, 0x40648C20, + 0x00000003, 0x4062C225, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062C226, + 0x4063AA20, 0x40648C20, 0x00000003, 0x4062C227, 0x4063AA20, 0x40648C20, + 0x00000003, 0x4062C228, 0x4063AA20, 0x40648C20, + // Block 480, offset 0x7800 + 0x00000002, 0x4062C221, 0x4063AC20, 0x00000002, 0x4062C222, 0x4063AC20, + 0x00000002, 0x4062C223, 0x4063AC20, 0x00000002, 0x4062C224, 0x4063AC20, + 0x00000002, 0x4062C225, 0x4063AC20, 0x00000002, 0x4062C226, 0x4063AC20, + 0x00000002, 0x4062C227, 0x4063AC20, 0x00000002, 0x4062C228, 0x4063AC20, + 0x00000002, 0x4062C229, 0x4063AC20, 0x00000002, 0x4062C22A, 0x4063AC20, + 0x00000002, 0x4062C22B, 0x4063AC20, 0x00000003, 0x4062C221, 0x4063AC20, + 0x40646420, 0x00000003, 0x4062C222, 0x4063AC20, 0x40646420, 0x00000003, + 0x4062C223, 0x4063AC20, 0x40646420, 0x00000003, 0x4062C224, 0x4063AC20, + 0x40646420, 0x00000003, 0x4062C225, 0x4063AC20, 0x40646420, 0x00000003, + 0x4062C226, 0x4063AC20, 0x40646420, 0x00000003, 0x4062C227, 0x4063AC20, + 0x40646420, 0x00000003, 0x4062C228, 0x4063AC20, + // Block 481, offset 0x7840 + 0x40646420, 0x00000003, 0x4062C229, 0x4063AC20, 0x40646420, 0x00000003, + 0x4062C22A, 0x4063AC20, 0x40646420, 0x00000003, 0x4062C22B, 0x4063AC20, + 0x40646420, 0x00000003, 0x4062C22C, 0x4063AC20, 0x40646420, 0x00000003, + 0x4062C22D, 0x4063AC20, 0x40646420, 0x00000003, 0x4062C22E, 0x4063AC20, + 0x40646420, 0x00000003, 0x4062C22F, 0x4063AC20, 0x40646420, 0x00000003, + 0x4062C221, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C222, 0x4063AC20, + 0x40648C20, 0x00000003, 0x4062C223, 0x4063AC20, 0x40648C20, 0x00000003, + 0x4062C224, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C225, 0x4063AC20, + 0x40648C20, 0x00000003, 0x4062C226, 0x4063AC20, 0x40648C20, 0x00000003, + 0x4062C227, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C228, 0x4063AC20, + 0x40648C20, 0x00000003, 0x4062C229, 0x4063AC20, + // Block 482, offset 0x7880 + 0x40648C20, 0x00000003, 0x4062C22A, 0x4063AC20, 0x40648C20, 0x00000003, + 0x4062C22B, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C22C, 0x4063AC20, + 0x40648C20, 0x00000003, 0x4062C22D, 0x4063AC20, 0x40648C20, 0x00000003, + 0x4062C22E, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C22F, 0x4063AC20, + 0x40648C20, 0x00000003, 0x4062C230, 0x4063AC20, 0x40648C20, 0x00000003, + 0x4062C231, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C232, 0x4063AC20, + 0x40648C20, 0x00000003, 0x4062C233, 0x4063AC20, 0x40648C20, 0x00000003, + 0x4062C234, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C235, 0x4063AC20, + 0x40648C20, 0x00000003, 0x4062C236, 0x4063AC20, 0x40648C20, 0x00000003, + 0x4062C237, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C238, 0x4063AC20, + 0x40648C20, 0x00000003, 0x4062C239, 0x4063AC20, + // Block 483, offset 0x78c0 + 0x40648C20, 0x00000003, 0x4062C23A, 0x4063AC20, 0x40648C20, 0x00000003, + 0x4062C23B, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C23C, 0x4063AC20, + 0x40648C20, 0x00000003, 0x4062C23D, 0x4063AC20, 0x40648C20, 0x00000003, + 0x4062C23E, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C23F, 0x4063AC20, + 0x40648C20, 0x00000003, 0x4062C240, 0x4063AC20, 0x40648C20, 0x00000003, + 0x4062C241, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062C242, 0x4063AC20, + 0x40648C20, 0x00000002, 0x4062C221, 0x4063B020, 0x00000002, 0x4062C222, + 0x4063B020, 0x00000002, 0x4062C223, 0x4063B020, 0x00000002, 0x4062C224, + 0x4063B020, 0x00000002, 0x4062C225, 0x4063B020, 0x00000002, 0x4062C226, + 0x4063B020, 0x00000002, 0x4062C227, 0x4063B020, 0x00000002, 0x4062C228, + 0x4063B020, 0x00000002, 0x4062C229, 0x4063B020, + // Block 484, offset 0x7900 + 0x00000002, 0x4062C22A, 0x4063B020, 0x00000002, 0x4062C22B, 0x4063B020, + 0x00000002, 0x4062C22C, 0x4063B020, 0x00000002, 0x4062C22D, 0x4063B020, + 0x00000002, 0x4062C22E, 0x4063B020, 0x00000003, 0x4062C221, 0x4063B020, + 0x40646420, 0x00000003, 0x4062C222, 0x4063B020, 0x40646420, 0x00000003, + 0x4062C223, 0x4063B020, 0x40646420, 0x00000003, 0x4062C224, 0x4063B020, + 0x40646420, 0x00000003, 0x4062C225, 0x4063B020, 0x40646420, 0x00000003, + 0x4062C226, 0x4063B020, 0x40646420, 0x00000003, 0x4062C221, 0x4063B020, + 0x40646A20, 0x00000003, 0x4062C222, 0x4063B020, 0x40646A20, 0x00000003, + 0x4062C223, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C224, 0x4063B020, + 0x40646A20, 0x00000003, 0x4062C225, 0x4063B020, 0x40646A20, 0x00000003, + 0x4062C226, 0x4063B020, 0x40646A20, 0x00000003, + // Block 485, offset 0x7940 + 0x4062C227, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C228, 0x4063B020, + 0x40646A20, 0x00000003, 0x4062C229, 0x4063B020, 0x40646A20, 0x00000003, + 0x4062C22A, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C22B, 0x4063B020, + 0x40646A20, 0x00000003, 0x4062C22C, 0x4063B020, 0x40646A20, 0x00000003, + 0x4062C22D, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C221, 0x4063B020, + 0x40647220, 0x00000003, 0x4062C222, 0x4063B020, 0x40647220, 0x00000003, + 0x4062C223, 0x4063B020, 0x40647220, 0x00000003, 0x4062C221, 0x4063B020, + 0x40648220, 0x00000003, 0x4062C222, 0x4063B020, 0x40648220, 0x00000003, + 0x4062C223, 0x4063B020, 0x40648220, 0x00000003, 0x4062C224, 0x4063B020, + 0x40648220, 0x00000003, 0x4062C225, 0x4063B020, 0x40648220, 0x00000003, + 0x4062C226, 0x4063B020, 0x40648220, 0x00000003, + // Block 486, offset 0x7980 + 0x4062C227, 0x4063B020, 0x40648220, 0x00000003, 0x4062C228, 0x4063B020, + 0x40648220, 0x00000003, 0x4062C229, 0x4063B020, 0x40648220, 0x00000003, + 0x4062C22A, 0x4063B020, 0x40648220, 0x00000003, 0x4062C22B, 0x4063B020, + 0x40648220, 0x00000003, 0x4062C22C, 0x4063B020, 0x40648220, 0x00000003, + 0x4062C221, 0x4063B020, 0x40648420, 0x00000003, 0x4062C222, 0x4063B020, + 0x40648420, 0x00000003, 0x4062C223, 0x4063B020, 0x40648420, 0x00000003, + 0x4062C224, 0x4063B020, 0x40648420, 0x00000002, 0x4062C221, 0x4063B220, + 0x00000002, 0x4062C222, 0x4063B220, 0x00000003, 0x4062C221, 0x4063B220, + 0x40646A20, 0x00000002, 0x4062C221, 0x4063B420, 0x00000002, 0x4062C222, + 0x4063B420, 0x00000002, 0x4062C223, 0x4063B420, 0x00000002, 0x4062C224, + 0x4063B420, 0x00000002, 0x4062C225, 0x4063B420, + // Block 487, offset 0x79c0 + 0x00000002, 0x4062C226, 0x4063B420, 0x00000002, 0x4062C227, 0x4063B420, + 0x00000002, 0x4062C228, 0x4063B420, 0x00000002, 0x4062C229, 0x4063B420, + 0x00000002, 0x4062C22A, 0x4063B420, 0x00000002, 0x4062C22B, 0x4063B420, + 0x00000002, 0x4062C22C, 0x4063B420, 0x00000002, 0x4062C22D, 0x4063B420, + 0x00000002, 0x4062C22E, 0x4063B420, 0x00000003, 0x4062C221, 0x4063B420, + 0x40646420, 0x00000003, 0x4062C222, 0x4063B420, 0x40646420, 0x00000003, + 0x4062C223, 0x4063B420, 0x40646420, 0x00000003, 0x4062C224, 0x4063B420, + 0x40646420, 0x00000003, 0x4062C225, 0x4063B420, 0x40646420, 0x00000003, + 0x4062C226, 0x4063B420, 0x40646420, 0x00000003, 0x4062C227, 0x4063B420, + 0x40646420, 0x00000003, 0x4062C228, 0x4063B420, 0x40646420, 0x00000003, + 0x4062C229, 0x4063B420, 0x40646420, 0x00000003, + // Block 488, offset 0x7a00 + 0x4062C22A, 0x4063B420, 0x40646420, 0x00000003, 0x4062C22B, 0x4063B420, + 0x40646420, 0x00000003, 0x4062C22C, 0x4063B420, 0x40646420, 0x00000003, + 0x4062C22D, 0x4063B420, 0x40646420, 0x00000003, 0x4062C221, 0x4063B420, + 0x40646A20, 0x00000003, 0x4062C222, 0x4063B420, 0x40646A20, 0x00000003, + 0x4062C223, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C224, 0x4063B420, + 0x40646A20, 0x00000003, 0x4062C225, 0x4063B420, 0x40646A20, 0x00000003, + 0x4062C226, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C227, 0x4063B420, + 0x40646A20, 0x00000003, 0x4062C228, 0x4063B420, 0x40646A20, 0x00000003, + 0x4062C229, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C22A, 0x4063B420, + 0x40646A20, 0x00000003, 0x4062C22B, 0x4063B420, 0x40646A20, 0x00000003, + 0x4062C22C, 0x4063B420, 0x40646A20, 0x00000003, + // Block 489, offset 0x7a40 + 0x4062C22D, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C22E, 0x4063B420, + 0x40646A20, 0x00000003, 0x4062C22F, 0x4063B420, 0x40646A20, 0x00000003, + 0x4062C230, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C231, 0x4063B420, + 0x40646A20, 0x00000003, 0x4062C232, 0x4063B420, 0x40646A20, 0x00000003, + 0x4062C233, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C234, 0x4063B420, + 0x40646A20, 0x00000003, 0x4062C235, 0x4063B420, 0x40646A20, 0x00000003, + 0x4062C236, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C237, 0x4063B420, + 0x40646A20, 0x00000003, 0x4062C238, 0x4063B420, 0x40646A20, 0x00000003, + 0x4062C239, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C23A, 0x4063B420, + 0x40646A20, 0x00000003, 0x4062C23B, 0x4063B420, 0x40646A20, 0x00000003, + 0x4062C23C, 0x4063B420, 0x40646A20, 0x00000003, + // Block 490, offset 0x7a80 + 0x4062C23D, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C23E, 0x4063B420, + 0x40646A20, 0x00000003, 0x4062C23F, 0x4063B420, 0x40646A20, 0x00000003, + 0x4062C240, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C241, 0x4063B420, + 0x40646A20, 0x00000003, 0x4062C242, 0x4063B420, 0x40646A20, 0x00000003, + 0x4062C243, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C244, 0x4063B420, + 0x40646A20, 0x00000003, 0x4062C245, 0x4063B420, 0x40646A20, 0x00000003, + 0x4062C246, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C247, 0x4063B420, + 0x40646A20, 0x00000003, 0x4062C248, 0x4063B420, 0x40646A20, 0x00000003, + 0x4062C249, 0x4063B420, 0x40646A20, 0x00000003, 0x4062C24A, 0x4063B420, + 0x40646A20, 0x00000003, 0x4062C24B, 0x4063B420, 0x40646A20, 0x00000003, + 0x4062C24C, 0x4063B420, 0x40646A20, 0x00000003, + // Block 491, offset 0x7ac0 + 0x4062C221, 0x4063B420, 0x40647220, 0x00000003, 0x4062C222, 0x4063B420, + 0x40647220, 0x00000003, 0x4062C223, 0x4063B420, 0x40647220, 0x00000003, + 0x4062C224, 0x4063B420, 0x40647220, 0x00000003, 0x4062C225, 0x4063B420, + 0x40647220, 0x00000003, 0x4062C221, 0x4063B420, 0x40648220, 0x00000003, + 0x4062C222, 0x4063B420, 0x40648220, 0x00000003, 0x4062C223, 0x4063B420, + 0x40648220, 0x00000003, 0x4062C224, 0x4063B420, 0x40648220, 0x00000003, + 0x4062C225, 0x4063B420, 0x40648220, 0x00000003, 0x4062C226, 0x4063B420, + 0x40648220, 0x00000003, 0x4062C227, 0x4063B420, 0x40648220, 0x00000003, + 0x4062C228, 0x4063B420, 0x40648220, 0x00000003, 0x4062C229, 0x4063B420, + 0x40648220, 0x00000003, 0x4062C22A, 0x4063B420, 0x40648220, 0x00000003, + 0x4062C22B, 0x4063B420, 0x40648220, 0x00000003, + // Block 492, offset 0x7b00 + 0x4062C22C, 0x4063B420, 0x40648220, 0x00000003, 0x4062C22D, 0x4063B420, + 0x40648220, 0x00000003, 0x4062C22E, 0x4063B420, 0x40648220, 0x00000003, + 0x4062C22F, 0x4063B420, 0x40648220, 0x00000003, 0x4062C230, 0x4063B420, + 0x40648220, 0x00000003, 0x4062C231, 0x4063B420, 0x40648220, 0x00000003, + 0x4062C232, 0x4063B420, 0x40648220, 0x00000003, 0x4062C233, 0x4063B420, + 0x40648220, 0x00000003, 0x4062C234, 0x4063B420, 0x40648220, 0x00000003, + 0x4062C235, 0x4063B420, 0x40648220, 0x00000003, 0x4062C236, 0x4063B420, + 0x40648220, 0x00000003, 0x4062C221, 0x4063B420, 0x40648420, 0x00000003, + 0x4062C222, 0x4063B420, 0x40648420, 0x00000003, 0x4062C223, 0x4063B420, + 0x40648420, 0x00000003, 0x4062C224, 0x4063B420, 0x40648420, 0x00000003, + 0x4062C225, 0x4063B420, 0x40648420, 0x00000003, + // Block 493, offset 0x7b40 + 0x4062C226, 0x4063B420, 0x40648420, 0x00000003, 0x4062C227, 0x4063B420, + 0x40648420, 0x00000003, 0x4062C221, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062C222, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C223, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062C224, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062C225, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C226, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062C227, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062C228, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C229, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062C22A, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062C22B, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C22C, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062C22D, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062C22E, 0x4063B420, 0x40648C20, 0x00000003, + // Block 494, offset 0x7b80 + 0x4062C22F, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C230, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062C231, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062C232, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C233, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062C234, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062C235, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C236, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062C237, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062C238, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C239, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062C23A, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062C23B, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C23C, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062C23D, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062C23E, 0x4063B420, 0x40648C20, 0x00000003, + // Block 495, offset 0x7bc0 + 0x4062C23F, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C240, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062C241, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062C242, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C243, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062C244, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062C245, 0x4063B420, 0x40648C20, 0x00000003, 0x4062C246, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062C247, 0x4063B420, 0x40648C20, 0x00000002, + 0x4062C221, 0x4063B620, 0x00000002, 0x4062C222, 0x4063B620, 0x00000002, + 0x4062C223, 0x4063B620, 0x00000002, 0x4062C224, 0x4063B620, 0x00000002, + 0x4062C225, 0x4063B620, 0x00000002, 0x4062C226, 0x4063B620, 0x00000002, + 0x4062C227, 0x4063B620, 0x00000002, 0x4062C228, 0x4063B620, 0x00000002, + 0x4062C229, 0x4063B620, 0x00000002, 0x4062C22A, + // Block 496, offset 0x7c00 + 0x4063B620, 0x00000002, 0x4062C22B, 0x4063B620, 0x00000002, 0x4062C22C, + 0x4063B620, 0x00000002, 0x4062C22D, 0x4063B620, 0x00000002, 0x4062C22E, + 0x4063B620, 0x00000002, 0x4062C22F, 0x4063B620, 0x00000002, 0x4062C230, + 0x4063B620, 0x00000002, 0x4062C231, 0x4063B620, 0x00000002, 0x4062C232, + 0x4063B620, 0x00000002, 0x4062C233, 0x4063B620, 0x00000002, 0x4062C234, + 0x4063B620, 0x00000002, 0x4062C235, 0x4063B620, 0x00000002, 0x4062C236, + 0x4063B620, 0x00000002, 0x4062C237, 0x4063B620, 0x00000002, 0x4062C238, + 0x4063B620, 0x00000002, 0x4062C239, 0x4063B620, 0x00000002, 0x4062C23A, + 0x4063B620, 0x00000002, 0x4062C23B, 0x4063B620, 0x00000002, 0x4062C23C, + 0x4063B620, 0x00000002, 0x4062C23D, 0x4063B620, 0x00000002, 0x4062C23E, + 0x4063B620, 0x00000002, 0x4062C23F, 0x4063B620, + // Block 497, offset 0x7c40 + 0x00000002, 0x4062C240, 0x4063B620, 0x00000002, 0x4062C241, 0x4063B620, + 0x00000002, 0x4062C242, 0x4063B620, 0x00000002, 0x4062C243, 0x4063B620, + 0x00000002, 0x4062C244, 0x4063B620, 0x00000002, 0x4062C245, 0x4063B620, + 0x00000002, 0x4062C246, 0x4063B620, 0x00000002, 0x4062C247, 0x4063B620, + 0x00000002, 0x4062C221, 0x4063B820, 0x00000002, 0x4062C222, 0x4063B820, + 0x00000002, 0x4062C223, 0x4063B820, 0x00000002, 0x4062C224, 0x4063B820, + 0x00000002, 0x4062C225, 0x4063B820, 0x00000002, 0x4062C226, 0x4063B820, + 0x00000002, 0x4062C227, 0x4063B820, 0x00000002, 0x4062C228, 0x4063B820, + 0x00000002, 0x4062C229, 0x4063B820, 0x00000002, 0x4062C22A, 0x4063B820, + 0x00000002, 0x4062C22B, 0x4063B820, 0x00000002, 0x4062C22C, 0x4063B820, + 0x00000002, 0x4062C22D, 0x4063B820, 0x00000002, + // Block 498, offset 0x7c80 + 0x4062C22E, 0x4063B820, 0x00000002, 0x4062C22F, 0x4063B820, 0x00000002, + 0x4062C230, 0x4063B820, 0x00000002, 0x4062C231, 0x4063B820, 0x00000002, + 0x4062C232, 0x4063B820, 0x00000002, 0x4062C233, 0x4063B820, 0x00000002, + 0x4062C234, 0x4063B820, 0x00000002, 0x4062C235, 0x4063B820, 0x00000002, + 0x4062C236, 0x4063B820, 0x00000002, 0x4062C237, 0x4063B820, 0x00000002, + 0x4062C238, 0x4063B820, 0x00000002, 0x4062C239, 0x4063B820, 0x00000002, + 0x4062C23A, 0x4063B820, 0x00000002, 0x4062C23B, 0x4063B820, 0x00000002, + 0x4062C23C, 0x4063B820, 0x00000002, 0x4062C23D, 0x4063B820, 0x00000002, + 0x4062C23E, 0x4063B820, 0x00000002, 0x4062C23F, 0x4063B820, 0x00000002, + 0x4062C240, 0x4063B820, 0x00000002, 0x4062C241, 0x4063B820, 0x00000002, + 0x4062C242, 0x4063B820, 0x00000002, 0x4062C243, + // Block 499, offset 0x7cc0 + 0x4063B820, 0x00000002, 0x4062C244, 0x4063B820, 0x00000002, 0x4062C245, + 0x4063B820, 0x00000002, 0x4062C246, 0x4063B820, 0x00000002, 0x4062C247, + 0x4063B820, 0x00000002, 0x4062C248, 0x4063B820, 0x00000002, 0x4062C249, + 0x4063B820, 0x00000002, 0x4062C24A, 0x4063B820, 0x00000002, 0x4062C24B, + 0x4063B820, 0x00000002, 0x4062C24C, 0x4063B820, 0x00000002, 0x4062C24D, + 0x4063B820, 0x00000002, 0x4062C24E, 0x4063B820, 0x00000002, 0x4062C24F, + 0x4063B820, 0x00000002, 0x4062C250, 0x4063B820, 0x00000002, 0x4062C251, + 0x4063B820, 0x00000002, 0x4062C252, 0x4063B820, 0x00000002, 0x4062C253, + 0x4063B820, 0x00000002, 0x4062C254, 0x4063B820, 0x00000002, 0x4062C255, + 0x4063B820, 0x00000002, 0x4062C256, 0x4063B820, 0x00000003, 0x4062C221, + 0x4063B820, 0x40646420, 0x00000003, 0x4062C222, + // Block 500, offset 0x7d00 + 0x4063B820, 0x40646420, 0x00000003, 0x4062C223, 0x4063B820, 0x40646420, + 0x00000003, 0x4062C224, 0x4063B820, 0x40646420, 0x00000003, 0x4062C225, + 0x4063B820, 0x40646420, 0x00000003, 0x4062C221, 0x4063B820, 0x40646A20, + 0x00000003, 0x4062C222, 0x4063B820, 0x40646A20, 0x00000003, 0x4062C223, + 0x4063B820, 0x40646A20, 0x00000003, 0x4062C224, 0x4063B820, 0x40646A20, + 0x00000003, 0x4062C225, 0x4063B820, 0x40646A20, 0x00000003, 0x4062C226, + 0x4063B820, 0x40646A20, 0x00000003, 0x4062C227, 0x4063B820, 0x40646A20, + 0x00000003, 0x4062C228, 0x4063B820, 0x40646A20, 0x00000003, 0x4062C229, + 0x4063B820, 0x40646A20, 0x00000003, 0x4062C22A, 0x4063B820, 0x40646A20, + 0x00000003, 0x4062C22B, 0x4063B820, 0x40646A20, 0x00000003, 0x4062C22C, + 0x4063B820, 0x40646A20, 0x00000003, 0x4062C22D, + // Block 501, offset 0x7d40 + 0x4063B820, 0x40646A20, 0x00000003, 0x4062C22E, 0x4063B820, 0x40646A20, + 0x00000003, 0x4062C22F, 0x4063B820, 0x40646A20, 0x00000003, 0x4062C230, + 0x4063B820, 0x40646A20, 0x00000003, 0x4062C231, 0x4063B820, 0x40646A20, + 0x00000003, 0x4062C221, 0x4063B820, 0x40647220, 0x00000003, 0x4062C222, + 0x4063B820, 0x40647220, 0x00000003, 0x4062C223, 0x4063B820, 0x40647220, + 0x00000003, 0x4062C221, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C222, + 0x4063B820, 0x40648C20, 0x00000003, 0x4062C223, 0x4063B820, 0x40648C20, + 0x00000003, 0x4062C224, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C225, + 0x4063B820, 0x40648C20, 0x00000003, 0x4062C226, 0x4063B820, 0x40648C20, + 0x00000003, 0x4062C227, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C228, + 0x4063B820, 0x40648C20, 0x00000003, 0x4062C229, + // Block 502, offset 0x7d80 + 0x4063B820, 0x40648C20, 0x00000003, 0x4062C22A, 0x4063B820, 0x40648C20, + 0x00000003, 0x4062C22B, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C22C, + 0x4063B820, 0x40648C20, 0x00000003, 0x4062C22D, 0x4063B820, 0x40648C20, + 0x00000003, 0x4062C22E, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C22F, + 0x4063B820, 0x40648C20, 0x00000003, 0x4062C230, 0x4063B820, 0x40648C20, + 0x00000003, 0x4062C231, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C232, + 0x4063B820, 0x40648C20, 0x00000002, 0x4062C221, 0x4063BA20, 0x00000002, + 0x4062C222, 0x4063BA20, 0x00000002, 0x4062C223, 0x4063BA20, 0x00000002, + 0x4062C224, 0x4063BA20, 0x00000002, 0x4062C225, 0x4063BA20, 0x00000002, + 0x4062C226, 0x4063BA20, 0x00000002, 0x4062C227, 0x4063BA20, 0x00000002, + 0x4062C228, 0x4063BA20, 0x00000002, 0x4062C229, + // Block 503, offset 0x7dc0 + 0x4063BA20, 0x00000002, 0x4062C22A, 0x4063BA20, 0x00000002, 0x4062C22B, + 0x4063BA20, 0x00000002, 0x4062C22C, 0x4063BA20, 0x00000002, 0x4062C22D, + 0x4063BA20, 0x00000002, 0x4062C22E, 0x4063BA20, 0x00000002, 0x4062C22F, + 0x4063BA20, 0x00000002, 0x4062C230, 0x4063BA20, 0x00000002, 0x4062C231, + 0x4063BA20, 0x00000003, 0x4062C221, 0x4063BA20, 0x40646A20, 0x00000003, + 0x4062C222, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062C223, 0x4063BA20, + 0x40646A20, 0x00000003, 0x4062C224, 0x4063BA20, 0x40646A20, 0x00000003, + 0x4062C225, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062C226, 0x4063BA20, + 0x40646A20, 0x00000003, 0x4062C227, 0x4063BA20, 0x40646A20, 0x00000003, + 0x4062C228, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062C229, 0x4063BA20, + 0x40646A20, 0x00000003, 0x4062C22A, 0x4063BA20, + // Block 504, offset 0x7e00 + 0x40646A20, 0x00000003, 0x4062C22B, 0x4063BA20, 0x40646A20, 0x00000003, + 0x4062C22C, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062C22D, 0x4063BA20, + 0x40646A20, 0x00000003, 0x4062C22E, 0x4063BA20, 0x40646A20, 0x00000003, + 0x4062C22F, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062C230, 0x4063BA20, + 0x40646A20, 0x00000003, 0x4062C231, 0x4063BA20, 0x40646A20, 0x00000003, + 0x4062C232, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062C233, 0x4063BA20, + 0x40646A20, 0x00000003, 0x4062C234, 0x4063BA20, 0x40646A20, 0x00000003, + 0x4062C235, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062C236, 0x4063BA20, + 0x40646A20, 0x00000003, 0x4062C237, 0x4063BA20, 0x40646A20, 0x00000003, + 0x4062C238, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062C239, 0x4063BA20, + 0x40646A20, 0x00000003, 0x4062C23A, 0x4063BA20, + // Block 505, offset 0x7e40 + 0x40646A20, 0x00000003, 0x4062C221, 0x4063BA20, 0x40647220, 0x00000003, + 0x4062C221, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062C222, 0x4063BA20, + 0x40648C20, 0x00000003, 0x4062C223, 0x4063BA20, 0x40648C20, 0x00000003, + 0x4062C224, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062C225, 0x4063BA20, + 0x40648C20, 0x00000003, 0x4062C226, 0x4063BA20, 0x40648C20, 0x00000003, + 0x4062C227, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062C228, 0x4063BA20, + 0x40648C20, 0x00000002, 0x4062C221, 0x4063BC20, 0x00000002, 0x4062C222, + 0x4063BC20, 0x00000002, 0x4062C223, 0x4063BC20, 0x00000002, 0x4062C224, + 0x4063BC20, 0x00000002, 0x4062C225, 0x4063BC20, 0x00000002, 0x4062C221, + 0x4063BE20, 0x00000002, 0x4062C222, 0x4063BE20, 0x00000002, 0x4062C223, + 0x4063BE20, 0x00000002, 0x4062C224, 0x4063BE20, + // Block 506, offset 0x7e80 + 0x00000002, 0x4062C225, 0x4063BE20, 0x00000002, 0x4062C226, 0x4063BE20, + 0x00000002, 0x4062C227, 0x4063BE20, 0x00000002, 0x4062C228, 0x4063BE20, + 0x00000002, 0x4062C229, 0x4063BE20, 0x00000002, 0x4062C22A, 0x4063BE20, + 0x00000002, 0x4062C22B, 0x4063BE20, 0x00000002, 0x4062C22C, 0x4063BE20, + 0x00000002, 0x4062C22D, 0x4063BE20, 0x00000002, 0x4062C22E, 0x4063BE20, + 0x00000002, 0x4062C221, 0x4063C020, 0x00000002, 0x4062C222, 0x4063C020, + 0x00000002, 0x4062C223, 0x4063C020, 0x00000002, 0x4062C224, 0x4063C020, + 0x00000002, 0x4062C225, 0x4063C020, 0x00000002, 0x4062C226, 0x4063C020, + 0x00000002, 0x4062C227, 0x4063C020, 0x00000002, 0x4062C228, 0x4063C020, + 0x00000002, 0x4062C229, 0x4063C020, 0x00000002, 0x4062C22A, 0x4063C020, + 0x00000002, 0x4062C22B, 0x4063C020, 0x00000002, + // Block 507, offset 0x7ec0 + 0x4062C22C, 0x4063C020, 0x00000002, 0x4062C22D, 0x4063C020, 0x00000002, + 0x4062C22E, 0x4063C020, 0x00000002, 0x4062C22F, 0x4063C020, 0x00000002, + 0x4062C230, 0x4063C020, 0x00000002, 0x4062C231, 0x4063C020, 0x00000002, + 0x4062C232, 0x4063C020, 0x00000002, 0x4062C233, 0x4063C020, 0x00000002, + 0x4062C234, 0x4063C020, 0x00000002, 0x4062C235, 0x4063C020, 0x00000002, + 0x4062C236, 0x4063C020, 0x00000002, 0x4062C237, 0x4063C020, 0x00000002, + 0x4062C238, 0x4063C020, 0x00000002, 0x4062C239, 0x4063C020, 0x00000002, + 0x4062C23A, 0x4063C020, 0x00000002, 0x4062C23B, 0x4063C020, 0x00000002, + 0x4062C23C, 0x4063C020, 0x00000002, 0x4062C23D, 0x4063C020, 0x00000002, + 0x4062C23E, 0x4063C020, 0x00000002, 0x4062C23F, 0x4063C020, 0x00000002, + 0x4062C240, 0x4063C020, 0x00000002, 0x4062C241, + // Block 508, offset 0x7f00 + 0x4063C020, 0x00000002, 0x4062C242, 0x4063C020, 0x00000002, 0x4062C243, + 0x4063C020, 0x00000002, 0x4062C244, 0x4063C020, 0x00000002, 0x4062C245, + 0x4063C020, 0x00000002, 0x4062C246, 0x4063C020, 0x00000002, 0x4062C247, + 0x4063C020, 0x00000002, 0x4062C248, 0x4063C020, 0x00000002, 0x4062C249, + 0x4063C020, 0x00000002, 0x4062C24A, 0x4063C020, 0x00000002, 0x4062C24B, + 0x4063C020, 0x00000002, 0x4062C24C, 0x4063C020, 0x00000003, 0x4062C221, + 0x4063C020, 0x40646420, 0x00000003, 0x4062C222, 0x4063C020, 0x40646420, + 0x00000003, 0x4062C223, 0x4063C020, 0x40646420, 0x00000003, 0x4062C224, + 0x4063C020, 0x40646420, 0x00000003, 0x4062C225, 0x4063C020, 0x40646420, + 0x00000003, 0x4062C226, 0x4063C020, 0x40646420, 0x00000003, 0x4062C227, + 0x4063C020, 0x40646420, 0x00000003, 0x4062C228, + // Block 509, offset 0x7f40 + 0x4063C020, 0x40646420, 0x00000003, 0x4062C221, 0x4063C020, 0x40648C20, + 0x00000003, 0x4062C222, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C223, + 0x4063C020, 0x40648C20, 0x00000003, 0x4062C224, 0x4063C020, 0x40648C20, + 0x00000003, 0x4062C225, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C226, + 0x4063C020, 0x40648C20, 0x00000003, 0x4062C227, 0x4063C020, 0x40648C20, + 0x00000003, 0x4062C228, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C229, + 0x4063C020, 0x40648C20, 0x00000003, 0x4062C22A, 0x4063C020, 0x40648C20, + 0x00000003, 0x4062C22B, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C22C, + 0x4063C020, 0x40648C20, 0x00000003, 0x4062C22D, 0x4063C020, 0x40648C20, + 0x00000003, 0x4062C22E, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C22F, + 0x4063C020, 0x40648C20, 0x00000003, 0x4062C230, + // Block 510, offset 0x7f80 + 0x4063C020, 0x40648C20, 0x00000003, 0x4062C231, 0x4063C020, 0x40648C20, + 0x00000003, 0x4062C232, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C233, + 0x4063C020, 0x40648C20, 0x00000003, 0x4062C234, 0x4063C020, 0x40648C20, + 0x00000003, 0x4062C235, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C236, + 0x4063C020, 0x40648C20, 0x00000003, 0x4062C237, 0x4063C020, 0x40648C20, + 0x00000003, 0x4062C238, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C239, + 0x4063C020, 0x40648C20, 0x00000003, 0x4062C23A, 0x4063C020, 0x40648C20, + 0x00000003, 0x4062C23B, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C23C, + 0x4063C020, 0x40648C20, 0x00000003, 0x4062C23D, 0x4063C020, 0x40648C20, + 0x00000003, 0x4062C23E, 0x4063C020, 0x40648C20, 0x00000003, 0x4062C23F, + 0x4063C020, 0x40648C20, 0x00000003, 0x4062C240, + // Block 511, offset 0x7fc0 + 0x4063C020, 0x40648C20, 0x00000003, 0x4062C241, 0x4063C020, 0x40648C20, + 0x00000002, 0x4062C221, 0x4063C220, 0x00000002, 0x4062C222, 0x4063C220, + 0x00000002, 0x4062C223, 0x4063C220, 0x00000002, 0x4062C224, 0x4063C220, + 0x00000002, 0x4062C225, 0x4063C220, 0x00000002, 0x4062C226, 0x4063C220, + 0x00000002, 0x4062C227, 0x4063C220, 0x00000002, 0x4062C228, 0x4063C220, + 0x00000002, 0x4062C229, 0x4063C220, 0x00000002, 0x4062C22A, 0x4063C220, + 0x00000002, 0x4062C22B, 0x4063C220, 0x00000002, 0x4062C22C, 0x4063C220, + 0x00000002, 0x4062C22D, 0x4063C220, 0x00000002, 0x4062C22E, 0x4063C220, + 0x00000002, 0x4062C22F, 0x4063C220, 0x00000002, 0x4062C230, 0x4063C220, + 0x00000002, 0x4062C231, 0x4063C220, 0x00000002, 0x4062C232, 0x4063C220, + 0x00000002, 0x4062C233, 0x4063C220, 0x00000002, + // Block 512, offset 0x8000 + 0x4062C234, 0x4063C220, 0x00000002, 0x4062C235, 0x4063C220, 0x00000002, + 0x4062C236, 0x4063C220, 0x00000002, 0x4062C237, 0x4063C220, 0x00000002, + 0x4062C238, 0x4063C220, 0x00000002, 0x4062C239, 0x4063C220, 0x00000002, + 0x4062C23A, 0x4063C220, 0x00000002, 0x4062C23B, 0x4063C220, 0x00000002, + 0x4062C23C, 0x4063C220, 0x00000002, 0x4062C23D, 0x4063C220, 0x00000002, + 0x4062C23E, 0x4063C220, 0x00000002, 0x4062C23F, 0x4063C220, 0x00000002, + 0x4062C240, 0x4063C220, 0x00000002, 0x4062C241, 0x4063C220, 0x00000002, + 0x4062C242, 0x4063C220, 0x00000002, 0x4062C243, 0x4063C220, 0x00000002, + 0x4062C244, 0x4063C220, 0x00000002, 0x4062C245, 0x4063C220, 0x00000002, + 0x4062C246, 0x4063C220, 0x00000002, 0x4062C247, 0x4063C220, 0x00000002, + 0x4062C248, 0x4063C220, 0x00000002, 0x4062C249, + // Block 513, offset 0x8040 + 0x4063C220, 0x00000002, 0x4062C24A, 0x4063C220, 0x00000002, 0x4062C24B, + 0x4063C220, 0x00000002, 0x4062C24C, 0x4063C220, 0x00000002, 0x4062C24D, + 0x4063C220, 0x00000002, 0x4062C24E, 0x4063C220, 0x00000002, 0x4062C24F, + 0x4063C220, 0x00000002, 0x4062C250, 0x4063C220, 0x00000002, 0x4062C251, + 0x4063C220, 0x00000002, 0x4062C252, 0x4063C220, 0x00000002, 0x4062C253, + 0x4063C220, 0x00000002, 0x4062C254, 0x4063C220, 0x00000003, 0x4062C221, + 0x4063C220, 0x40646420, 0x00000003, 0x4062C222, 0x4063C220, 0x40646420, + 0x00000003, 0x4062C223, 0x4063C220, 0x40646420, 0x00000003, 0x4062C224, + 0x4063C220, 0x40646420, 0x00000003, 0x4062C225, 0x4063C220, 0x40646420, + 0x00000003, 0x4062C226, 0x4063C220, 0x40646420, 0x00000003, 0x4062C227, + 0x4063C220, 0x40646420, 0x00000003, 0x4062C228, + // Block 514, offset 0x8080 + 0x4063C220, 0x40646420, 0x00000003, 0x4062C229, 0x4063C220, 0x40646420, + 0x00000003, 0x4062C22A, 0x4063C220, 0x40646420, 0x00000003, 0x4062C221, + 0x4063C220, 0x40646A20, 0x00000003, 0x4062C222, 0x4063C220, 0x40646A20, + 0x00000003, 0x4062C223, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C224, + 0x4063C220, 0x40646A20, 0x00000003, 0x4062C225, 0x4063C220, 0x40646A20, + 0x00000003, 0x4062C226, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C227, + 0x4063C220, 0x40646A20, 0x00000003, 0x4062C228, 0x4063C220, 0x40646A20, + 0x00000003, 0x4062C229, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C22A, + 0x4063C220, 0x40646A20, 0x00000003, 0x4062C22B, 0x4063C220, 0x40646A20, + 0x00000003, 0x4062C22C, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C22D, + 0x4063C220, 0x40646A20, 0x00000003, 0x4062C22E, + // Block 515, offset 0x80c0 + 0x4063C220, 0x40646A20, 0x00000003, 0x4062C22F, 0x4063C220, 0x40646A20, + 0x00000003, 0x4062C230, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C231, + 0x4063C220, 0x40646A20, 0x00000003, 0x4062C232, 0x4063C220, 0x40646A20, + 0x00000003, 0x4062C221, 0x4063C220, 0x40647220, 0x00000003, 0x4062C222, + 0x4063C220, 0x40647220, 0x00000003, 0x4062C223, 0x4063C220, 0x40647220, + 0x00000003, 0x4062C221, 0x4063C220, 0x40648C20, 0x00000003, 0x4062C222, + 0x4063C220, 0x40648C20, 0x00000003, 0x4062C221, 0x4063C420, 0x40646A20, + 0x00000003, 0x4062C222, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C223, + 0x4063C420, 0x40646A20, 0x00000003, 0x4062C224, 0x4063C420, 0x40646A20, + 0x00000003, 0x4062C225, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C226, + 0x4063C420, 0x40646A20, 0x00000003, 0x4062C227, + // Block 516, offset 0x8100 + 0x4063C420, 0x40646A20, 0x00000003, 0x4062C228, 0x4063C420, 0x40646A20, + 0x00000003, 0x4062C229, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C22A, + 0x4063C420, 0x40646A20, 0x00000003, 0x4062C22B, 0x4063C420, 0x40646A20, + 0x00000003, 0x4062C22C, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C22D, + 0x4063C420, 0x40646A20, 0x00000003, 0x4062C22E, 0x4063C420, 0x40646A20, + 0x00000003, 0x4062C22F, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C230, + 0x4063C420, 0x40646A20, 0x00000003, 0x4062C231, 0x4063C420, 0x40646A20, + 0x00000003, 0x4062C232, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C233, + 0x4063C420, 0x40646A20, 0x00000003, 0x4062C234, 0x4063C420, 0x40646A20, + 0x00000003, 0x4062C235, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C236, + 0x4063C420, 0x40646A20, 0x00000003, 0x4062C237, + // Block 517, offset 0x8140 + 0x4063C420, 0x40646A20, 0x00000003, 0x4062C238, 0x4063C420, 0x40646A20, + 0x00000003, 0x4062C239, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C23A, + 0x4063C420, 0x40646A20, 0x00000003, 0x4062C23B, 0x4063C420, 0x40646A20, + 0x00000003, 0x4062C23C, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C23D, + 0x4063C420, 0x40646A20, 0x00000003, 0x4062C23E, 0x4063C420, 0x40646A20, + 0x00000003, 0x4062C23F, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C240, + 0x4063C420, 0x40646A20, 0x00000003, 0x4062C241, 0x4063C420, 0x40646A20, + 0x00000003, 0x4062C242, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C243, + 0x4063C420, 0x40646A20, 0x00000003, 0x4062C244, 0x4063C420, 0x40646A20, + 0x00000003, 0x4062C245, 0x4063C420, 0x40646A20, 0x00000003, 0x4062C246, + 0x4063C420, 0x40646A20, 0x00000003, 0x4062C247, + // Block 518, offset 0x8180 + 0x4063C420, 0x40646A20, 0x00000003, 0x4062C248, 0x4063C420, 0x40646A20, + 0x00000003, 0x4062C221, 0x4063C420, 0x40647220, 0x00000003, 0x4062C222, + 0x4063C420, 0x40647220, 0x00000003, 0x4062C223, 0x4063C420, 0x40647220, + 0x00000003, 0x4062C224, 0x4063C420, 0x40647220, 0x00000003, 0x4062C225, + 0x4063C420, 0x40647220, 0x00000002, 0x4062C221, 0x4063C820, 0x00000002, + 0x4062C222, 0x4063C820, 0x00000002, 0x4062C223, 0x4063C820, 0x00000002, + 0x4062C224, 0x4063C820, 0x00000002, 0x4062C225, 0x4063C820, 0x00000002, + 0x4062C226, 0x4063C820, 0x00000002, 0x4062C227, 0x4063C820, 0x00000002, + 0x4062C228, 0x4063C820, 0x00000002, 0x4062C229, 0x4063C820, 0x00000002, + 0x4062C22A, 0x4063C820, 0x00000002, 0x4062C22B, 0x4063C820, 0x00000002, + 0x4062C22C, 0x4063C820, 0x00000002, 0x4062C22D, + // Block 519, offset 0x81c0 + 0x4063C820, 0x00000002, 0x4062C22E, 0x4063C820, 0x00000002, 0x4062C22F, + 0x4063C820, 0x00000002, 0x4062C230, 0x4063C820, 0x00000002, 0x4062C231, + 0x4063C820, 0x00000002, 0x4062C232, 0x4063C820, 0x00000002, 0x4062C233, + 0x4063C820, 0x00000002, 0x4062C234, 0x4063C820, 0x00000002, 0x4062C235, + 0x4063C820, 0x00000002, 0x4062C236, 0x4063C820, 0x00000002, 0x4062C237, + 0x4063C820, 0x00000002, 0x4062C238, 0x4063C820, 0x00000002, 0x4062C239, + 0x4063C820, 0x00000002, 0x4062C23A, 0x4063C820, 0x00000002, 0x4062C23B, + 0x4063C820, 0x00000002, 0x4062C23C, 0x4063C820, 0x00000002, 0x4062C23D, + 0x4063C820, 0x00000002, 0x4062C23E, 0x4063C820, 0x00000002, 0x4062C23F, + 0x4063C820, 0x00000002, 0x4062C240, 0x4063C820, 0x00000002, 0x4062C241, + 0x4063C820, 0x00000002, 0x4062C242, 0x4063C820, + // Block 520, offset 0x8200 + 0x00000002, 0x4062C243, 0x4063C820, 0x00000002, 0x4062C244, 0x4063C820, + 0x00000002, 0x4062C245, 0x4063C820, 0x00000002, 0x4062C246, 0x4063C820, + 0x00000002, 0x4062C247, 0x4063C820, 0x00000002, 0x4062C221, 0x4063CA20, + 0x00000002, 0x4062C222, 0x4063CA20, 0x00000002, 0x4062C223, 0x4063CA20, + 0x00000002, 0x4062C224, 0x4063CA20, 0x00000002, 0x4062C225, 0x4063CA20, + 0x00000002, 0x4062C226, 0x4063CA20, 0x00000002, 0x4062C227, 0x4063CA20, + 0x00000002, 0x4062C228, 0x4063CA20, 0x00000002, 0x4062C229, 0x4063CA20, + 0x00000002, 0x4062C22A, 0x4063CA20, 0x00000002, 0x4062C22B, 0x4063CA20, + 0x00000002, 0x4062C22C, 0x4063CA20, 0x00000002, 0x4062C22D, 0x4063CA20, + 0x00000002, 0x4062C22E, 0x4063CA20, 0x00000002, 0x4062C22F, 0x4063CA20, + 0x00000002, 0x4062C230, 0x4063CA20, 0x00000002, + // Block 521, offset 0x8240 + 0x4062C231, 0x4063CA20, 0x00000002, 0x4062C232, 0x4063CA20, 0x00000002, + 0x4062C233, 0x4063CA20, 0x00000002, 0x4062C234, 0x4063CA20, 0x00000002, + 0x4062C235, 0x4063CA20, 0x00000002, 0x4062C236, 0x4063CA20, 0x00000002, + 0x4062C237, 0x4063CA20, 0x00000002, 0x4062C238, 0x4063CA20, 0x00000002, + 0x4062C239, 0x4063CA20, 0x00000002, 0x4062C23A, 0x4063CA20, 0x00000002, + 0x4062C23B, 0x4063CA20, 0x00000002, 0x4062C23C, 0x4063CA20, 0x00000002, + 0x4062C23D, 0x4063CA20, 0x00000002, 0x4062C23E, 0x4063CA20, 0x00000002, + 0x4062C23F, 0x4063CA20, 0x00000002, 0x4062C240, 0x4063CA20, 0x00000002, + 0x4062C241, 0x4063CA20, 0x00000002, 0x4062C242, 0x4063CA20, 0x00000002, + 0x4062C243, 0x4063CA20, 0x00000002, 0x4062C244, 0x4063CA20, 0x00000002, + 0x4062C245, 0x4063CA20, 0x00000002, 0x4062C246, + // Block 522, offset 0x8280 + 0x4063CA20, 0x00000002, 0x4062C247, 0x4063CA20, 0x00000002, 0x4062C248, + 0x4063CA20, 0x00000002, 0x4062C249, 0x4063CA20, 0x00000002, 0x4062C24A, + 0x4063CA20, 0x00000002, 0x4062C24B, 0x4063CA20, 0x00000002, 0x4062C24C, + 0x4063CA20, 0x00000002, 0x4062C24D, 0x4063CA20, 0x00000002, 0x4062C24E, + 0x4063CA20, 0x00000002, 0x4062C24F, 0x4063CA20, 0x00000002, 0x4062C250, + 0x4063CA20, 0x00000002, 0x4062C251, 0x4063CA20, 0x00000002, 0x4062C252, + 0x4063CA20, 0x00000002, 0x4062C253, 0x4063CA20, 0x00000002, 0x4062C254, + 0x4063CA20, 0x00000002, 0x4062C255, 0x4063CA20, 0x00000002, 0x4062C256, + 0x4063CA20, 0x00000002, 0x4062C257, 0x4063CA20, 0x00000002, 0x4062C258, + 0x4063CA20, 0x00000002, 0x4062C259, 0x4063CA20, 0x00000002, 0x4062C25A, + 0x4063CA20, 0x00000002, 0x4062C25B, 0x4063CA20, + // Block 523, offset 0x82c0 + 0x00000002, 0x4062C25C, 0x4063CA20, 0x00000002, 0x4062C25D, 0x4063CA20, + 0x00000002, 0x4062C25E, 0x4063CA20, 0x00000002, 0x4062C25F, 0x4063CA20, + 0x00000002, 0x4062C260, 0x4063CA20, 0x00000002, 0x4062C261, 0x4063CA20, + 0x00000002, 0x4062C262, 0x4063CA20, 0x00000002, 0x4062C263, 0x4063CA20, + 0x00000002, 0x4062C264, 0x4063CA20, 0x00000002, 0x4062C265, 0x4063CA20, + 0x00000002, 0x4062C266, 0x4063CA20, 0x00000002, 0x4062C267, 0x4063CA20, + 0x00000002, 0x4062C268, 0x4063CA20, 0x00000002, 0x4062C269, 0x4063CA20, + 0x00000002, 0x4062C26A, 0x4063CA20, 0x00000002, 0x4062C26B, 0x4063CA20, + 0x00000002, 0x4062C26C, 0x4063CA20, 0x00000002, 0x4062C26D, 0x4063CA20, + 0x00000003, 0x4062C221, 0x4063CA20, 0x40646420, 0x00000003, 0x4062C222, + 0x4063CA20, 0x40646420, 0x00000003, 0x4062C223, + // Block 524, offset 0x8300 + 0x4063CA20, 0x40646420, 0x00000003, 0x4062C224, 0x4063CA20, 0x40646420, + 0x00000003, 0x4062C225, 0x4063CA20, 0x40646420, 0x00000003, 0x4062C221, + 0x4063CA20, 0x40646A20, 0x00000003, 0x4062C222, 0x4063CA20, 0x40646A20, + 0x00000003, 0x4062C223, 0x4063CA20, 0x40646A20, 0x00000003, 0x4062C224, + 0x4063CA20, 0x40646A20, 0x00000003, 0x4062C225, 0x4063CA20, 0x40646A20, + 0x00000003, 0x4062C226, 0x4063CA20, 0x40646A20, 0x00000003, 0x4062C227, + 0x4063CA20, 0x40646A20, 0x00000003, 0x4062C228, 0x4063CA20, 0x40646A20, + 0x00000003, 0x4062C229, 0x4063CA20, 0x40646A20, 0x00000003, 0x4062C22A, + 0x4063CA20, 0x40646A20, 0x00000003, 0x4062C22B, 0x4063CA20, 0x40646A20, + 0x00000003, 0x4062C221, 0x4063CA20, 0x40647220, 0x00000003, 0x4062C222, + 0x4063CA20, 0x40647220, 0x00000003, 0x4062C223, + // Block 525, offset 0x8340 + 0x4063CA20, 0x40647220, 0x00000003, 0x4062C221, 0x4063CA20, 0x40648C20, + 0x00000003, 0x4062C222, 0x4063CA20, 0x40648C20, 0x00000003, 0x4062C223, + 0x4063CA20, 0x40648C20, 0x00000003, 0x4062C224, 0x4063CA20, 0x40648C20, + 0x00000003, 0x4062C225, 0x4063CA20, 0x40648C20, 0x00000003, 0x4062C221, + 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C222, 0x4063CC20, 0x40646A20, + 0x00000003, 0x4062C223, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C224, + 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C225, 0x4063CC20, 0x40646A20, + 0x00000003, 0x4062C226, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C227, + 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C228, 0x4063CC20, 0x40646A20, + 0x00000003, 0x4062C229, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C22A, + 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C22B, + // Block 526, offset 0x8380 + 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C22C, 0x4063CC20, 0x40646A20, + 0x00000003, 0x4062C22D, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C22E, + 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C22F, 0x4063CC20, 0x40646A20, + 0x00000003, 0x4062C230, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C231, + 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C232, 0x4063CC20, 0x40646A20, + 0x00000003, 0x4062C233, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C234, + 0x4063CC20, 0x40646A20, 0x00000003, 0x4062C221, 0x4063CC20, 0x40647220, + 0x00000003, 0x4062C222, 0x4063CC20, 0x40647220, 0x00000003, 0x4062C221, + 0x4063CC20, 0x40648220, 0x00000003, 0x4062C222, 0x4063CC20, 0x40648220, + 0x00000003, 0x4062C223, 0x4063CC20, 0x40648220, 0x00000003, 0x4062C224, + 0x4063CC20, 0x40648220, 0x00000003, 0x4062C225, + // Block 527, offset 0x83c0 + 0x4063CC20, 0x40648220, 0x00000003, 0x4062C226, 0x4063CC20, 0x40648220, + 0x00000003, 0x4062C227, 0x4063CC20, 0x40648220, 0x00000003, 0x4062C228, + 0x4063CC20, 0x40648220, 0x00000003, 0x4062C229, 0x4063CC20, 0x40648220, + 0x00000003, 0x4062C22A, 0x4063CC20, 0x40648220, 0x00000003, 0x4062C22B, + 0x4063CC20, 0x40648220, 0x00000003, 0x4062C221, 0x4063CC20, 0x40648420, + 0x00000003, 0x4062C222, 0x4063CC20, 0x40648420, 0x00000003, 0x4062C223, + 0x4063CC20, 0x40648420, 0x00000003, 0x4062C224, 0x4063CC20, 0x40648420, + 0x00000003, 0x4062C225, 0x4063CC20, 0x40648420, 0x00000003, 0x4062C226, + 0x4063CC20, 0x40648420, 0x00000003, 0x4062C221, 0x4063CC20, 0x40648C20, + 0x00000003, 0x4062C222, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062C223, + 0x4063CC20, 0x40648C20, 0x00000003, 0x4062C224, + // Block 528, offset 0x8400 + 0x4063CC20, 0x40648C20, 0x00000002, 0x4062C221, 0x4063CE20, 0x00000002, + 0x4062C222, 0x4063CE20, 0x00000002, 0x4062C223, 0x4063CE20, 0x00000002, + 0x4062C224, 0x4063CE20, 0x00000002, 0x4062C225, 0x4063CE20, 0x00000002, + 0x4062C226, 0x4063CE20, 0x00000002, 0x4062C227, 0x4063CE20, 0x00000002, + 0x4062C228, 0x4063CE20, 0x00000002, 0x4062C229, 0x4063CE20, 0x00000002, + 0x4062C22A, 0x4063CE20, 0x00000002, 0x4062C22B, 0x4063CE20, 0x00000002, + 0x4062C22C, 0x4063CE20, 0x00000002, 0x4062C22D, 0x4063CE20, 0x00000002, + 0x4062C22E, 0x4063CE20, 0x00000002, 0x4062C22F, 0x4063CE20, 0x00000002, + 0x4062C230, 0x4063CE20, 0x00000002, 0x4062C231, 0x4063CE20, 0x00000002, + 0x4062C232, 0x4063CE20, 0x00000002, 0x4062C233, 0x4063CE20, 0x00000002, + 0x4062C234, 0x4063CE20, 0x00000002, 0x4062C235, + // Block 529, offset 0x8440 + 0x4063CE20, 0x00000002, 0x4062C236, 0x4063CE20, 0x00000002, 0x4062C237, + 0x4063CE20, 0x00000002, 0x4062C238, 0x4063CE20, 0x00000002, 0x4062C239, + 0x4063CE20, 0x00000002, 0x4062C23A, 0x4063CE20, 0x00000002, 0x4062C23B, + 0x4063CE20, 0x00000002, 0x4062C23C, 0x4063CE20, 0x00000002, 0x4062C23D, + 0x4063CE20, 0x00000002, 0x4062C221, 0x4063D020, 0x00000002, 0x4062C222, + 0x4063D020, 0x00000002, 0x4062C223, 0x4063D020, 0x00000002, 0x4062C224, + 0x4063D020, 0x00000002, 0x4062C225, 0x4063D020, 0x00000002, 0x4062C226, + 0x4063D020, 0x00000002, 0x4062C227, 0x4063D020, 0x00000002, 0x4062C228, + 0x4063D020, 0x00000002, 0x4062C229, 0x4063D020, 0x00000002, 0x4062C22A, + 0x4063D020, 0x00000002, 0x4062C22B, 0x4063D020, 0x00000002, 0x4062C22C, + 0x4063D020, 0x00000002, 0x4062C22D, 0x4063D020, + // Block 530, offset 0x8480 + 0x00000002, 0x4062C22E, 0x4063D020, 0x00000002, 0x4062C22F, 0x4063D020, + 0x00000002, 0x4062C230, 0x4063D020, 0x00000002, 0x4062C231, 0x4063D020, + 0x00000002, 0x4062C232, 0x4063D020, 0x00000002, 0x4062C233, 0x4063D020, + 0x00000002, 0x4062C234, 0x4063D020, 0x00000002, 0x4062C235, 0x4063D020, + 0x00000002, 0x4062C236, 0x4063D020, 0x00000002, 0x4062C237, 0x4063D020, + 0x00000002, 0x4062C238, 0x4063D020, 0x00000002, 0x4062C239, 0x4063D020, + 0x00000002, 0x4062C23A, 0x4063D020, 0x00000002, 0x4062C23B, 0x4063D020, + 0x00000002, 0x4062C23C, 0x4063D020, 0x00000002, 0x4062C23D, 0x4063D020, + 0x00000002, 0x4062C23E, 0x4063D020, 0x00000002, 0x4062C23F, 0x4063D020, + 0x00000002, 0x4062C240, 0x4063D020, 0x00000002, 0x4062C241, 0x4063D020, + 0x00000002, 0x4062C242, 0x4063D020, 0x00000002, + // Block 531, offset 0x84c0 + 0x4062C243, 0x4063D020, 0x00000003, 0x4062C221, 0x4063D020, 0x40646420, + 0x00000003, 0x4062C222, 0x4063D020, 0x40646420, 0x00000003, 0x4062C223, + 0x4063D020, 0x40646420, 0x00000003, 0x4062C224, 0x4063D020, 0x40646420, + 0x00000003, 0x4062C225, 0x4063D020, 0x40646420, 0x00000003, 0x4062C226, + 0x4063D020, 0x40646420, 0x00000003, 0x4062C227, 0x4063D020, 0x40646420, + 0x00000003, 0x4062C228, 0x4063D020, 0x40646420, 0x00000003, 0x4062C229, + 0x4063D020, 0x40646420, 0x00000003, 0x4062C221, 0x4063D020, 0x40646A20, + 0x00000003, 0x4062C222, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C223, + 0x4063D020, 0x40646A20, 0x00000003, 0x4062C224, 0x4063D020, 0x40646A20, + 0x00000003, 0x4062C225, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C226, + 0x4063D020, 0x40646A20, 0x00000003, 0x4062C227, + // Block 532, offset 0x8500 + 0x4063D020, 0x40646A20, 0x00000003, 0x4062C228, 0x4063D020, 0x40646A20, + 0x00000003, 0x4062C229, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C22A, + 0x4063D020, 0x40646A20, 0x00000003, 0x4062C22B, 0x4063D020, 0x40646A20, + 0x00000003, 0x4062C22C, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C22D, + 0x4063D020, 0x40646A20, 0x00000003, 0x4062C22E, 0x4063D020, 0x40646A20, + 0x00000003, 0x4062C22F, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C230, + 0x4063D020, 0x40646A20, 0x00000003, 0x4062C231, 0x4063D020, 0x40646A20, + 0x00000003, 0x4062C232, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C233, + 0x4063D020, 0x40646A20, 0x00000003, 0x4062C234, 0x4063D020, 0x40646A20, + 0x00000003, 0x4062C235, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C236, + 0x4063D020, 0x40646A20, 0x00000003, 0x4062C237, + // Block 533, offset 0x8540 + 0x4063D020, 0x40646A20, 0x00000003, 0x4062C238, 0x4063D020, 0x40646A20, + 0x00000003, 0x4062C239, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C23A, + 0x4063D020, 0x40646A20, 0x00000003, 0x4062C23B, 0x4063D020, 0x40646A20, + 0x00000003, 0x4062C23C, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C221, + 0x4063D020, 0x40647220, 0x00000003, 0x4062C222, 0x4063D020, 0x40647220, + 0x00000003, 0x4062C223, 0x4063D020, 0x40647220, 0x00000003, 0x4062C224, + 0x4063D020, 0x40647220, 0x00000003, 0x4062C225, 0x4063D020, 0x40647220, + 0x00000003, 0x4062C226, 0x4063D020, 0x40647220, 0x00000003, 0x4062C227, + 0x4063D020, 0x40647220, 0x00000003, 0x4062C228, 0x4063D020, 0x40647220, + 0x00000003, 0x4062C229, 0x4063D020, 0x40647220, 0x00000003, 0x4062C22A, + 0x4063D020, 0x40647220, 0x00000003, 0x4062C22B, + // Block 534, offset 0x8580 + 0x4063D020, 0x40647220, 0x00000003, 0x4062C221, 0x4063D020, 0x40648220, + 0x00000003, 0x4062C222, 0x4063D020, 0x40648220, 0x00000003, 0x4062C223, + 0x4063D020, 0x40648220, 0x00000003, 0x4062C224, 0x4063D020, 0x40648220, + 0x00000003, 0x4062C225, 0x4063D020, 0x40648220, 0x00000003, 0x4062C226, + 0x4063D020, 0x40648220, 0x00000003, 0x4062C227, 0x4063D020, 0x40648220, + 0x00000003, 0x4062C228, 0x4063D020, 0x40648220, 0x00000003, 0x4062C229, + 0x4063D020, 0x40648220, 0x00000003, 0x4062C22A, 0x4063D020, 0x40648220, + 0x00000003, 0x4062C22B, 0x4063D020, 0x40648220, 0x00000003, 0x4062C22C, + 0x4063D020, 0x40648220, 0x00000003, 0x4062C221, 0x4063D020, 0x40648420, + 0x00000003, 0x4062C222, 0x4063D020, 0x40648420, 0x00000003, 0x4062C223, + 0x4063D020, 0x40648420, 0x00000003, 0x4062C221, + // Block 535, offset 0x85c0 + 0x4063D020, 0x40648C20, 0x00000003, 0x4062C222, 0x4063D020, 0x40648C20, + 0x00000003, 0x4062C223, 0x4063D020, 0x40648C20, 0x00000003, 0x4062C224, + 0x4063D020, 0x40648C20, 0x00000003, 0x4062C225, 0x4063D020, 0x40648C20, + 0x00000002, 0x4062C421, 0x4063A820, 0x00000002, 0x4062C422, 0x4063A820, + 0x00000002, 0x4062C423, 0x4063A820, 0x00000002, 0x4062C424, 0x4063A820, + 0x00000002, 0x4062C425, 0x4063A820, 0x00000002, 0x4062C426, 0x4063A820, + 0x00000002, 0x4062C427, 0x4063A820, 0x00000002, 0x4062C428, 0x4063A820, + 0x00000002, 0x4062C429, 0x4063A820, 0x00000002, 0x4062C42A, 0x4063A820, + 0x00000002, 0x4062C42B, 0x4063A820, 0x00000002, 0x4062C42C, 0x4063A820, + 0x00000002, 0x4062C42D, 0x4063A820, 0x00000002, 0x4062C42E, 0x4063A820, + 0x00000002, 0x4062C42F, 0x4063A820, 0x00000002, + // Block 536, offset 0x8600 + 0x4062C430, 0x4063A820, 0x00000002, 0x4062C431, 0x4063A820, 0x00000002, + 0x4062C432, 0x4063A820, 0x00000002, 0x4062C433, 0x4063A820, 0x00000002, + 0x4062C434, 0x4063A820, 0x00000002, 0x4062C435, 0x4063A820, 0x00000002, + 0x4062C436, 0x4063A820, 0x00000002, 0x4062C437, 0x4063A820, 0x00000002, + 0x4062C438, 0x4063A820, 0x00000002, 0x4062C439, 0x4063A820, 0x00000002, + 0x4062C43A, 0x4063A820, 0x00000002, 0x4062C43B, 0x4063A820, 0x00000002, + 0x4062C43C, 0x4063A820, 0x00000002, 0x4062C43D, 0x4063A820, 0x00000002, + 0x4062C43E, 0x4063A820, 0x00000002, 0x4062C43F, 0x4063A820, 0x00000002, + 0x4062C440, 0x4063A820, 0x00000002, 0x4062C441, 0x4063A820, 0x00000002, + 0x4062C442, 0x4063A820, 0x00000002, 0x4062C443, 0x4063A820, 0x00000002, + 0x4062C444, 0x4063A820, 0x00000002, 0x4062C445, + // Block 537, offset 0x8640 + 0x4063A820, 0x00000002, 0x4062C446, 0x4063A820, 0x00000002, 0x4062C447, + 0x4063A820, 0x00000002, 0x4062C448, 0x4063A820, 0x00000002, 0x4062C449, + 0x4063A820, 0x00000002, 0x4062C44A, 0x4063A820, 0x00000002, 0x4062C44B, + 0x4063A820, 0x00000002, 0x4062C44C, 0x4063A820, 0x00000002, 0x4062C44D, + 0x4063A820, 0x00000002, 0x4062C44E, 0x4063A820, 0x00000002, 0x4062C44F, + 0x4063A820, 0x00000002, 0x4062C450, 0x4063A820, 0x00000002, 0x4062C451, + 0x4063A820, 0x00000002, 0x4062C452, 0x4063A820, 0x00000002, 0x4062C453, + 0x4063A820, 0x00000002, 0x4062C454, 0x4063A820, 0x00000003, 0x4062C421, + 0x4063A820, 0x40646420, 0x00000003, 0x4062C422, 0x4063A820, 0x40646420, + 0x00000003, 0x4062C423, 0x4063A820, 0x40646420, 0x00000003, 0x4062C424, + 0x4063A820, 0x40646420, 0x00000003, 0x4062C425, + // Block 538, offset 0x8680 + 0x4063A820, 0x40646420, 0x00000003, 0x4062C426, 0x4063A820, 0x40646420, + 0x00000003, 0x4062C427, 0x4063A820, 0x40646420, 0x00000003, 0x4062C428, + 0x4063A820, 0x40646420, 0x00000003, 0x4062C429, 0x4063A820, 0x40646420, + 0x00000003, 0x4062C42A, 0x4063A820, 0x40646420, 0x00000003, 0x4062C42B, + 0x4063A820, 0x40646420, 0x00000003, 0x4062C42C, 0x4063A820, 0x40646420, + 0x00000003, 0x4062C42D, 0x4063A820, 0x40646420, 0x00000003, 0x4062C42E, + 0x4063A820, 0x40646420, 0x00000003, 0x4062C42F, 0x4063A820, 0x40646420, + 0x00000003, 0x4062C430, 0x4063A820, 0x40646420, 0x00000003, 0x4062C431, + 0x4063A820, 0x40646420, 0x00000003, 0x4062C432, 0x4063A820, 0x40646420, + 0x00000003, 0x4062C433, 0x4063A820, 0x40646420, 0x00000003, 0x4062C434, + 0x4063A820, 0x40646420, 0x00000003, 0x4062C435, + // Block 539, offset 0x86c0 + 0x4063A820, 0x40646420, 0x00000003, 0x4062C421, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062C422, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C423, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062C424, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062C425, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C426, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062C427, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062C428, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C421, + 0x4063A820, 0x40648220, 0x00000003, 0x4062C422, 0x4063A820, 0x40648220, + 0x00000003, 0x4062C423, 0x4063A820, 0x40648220, 0x00000003, 0x4062C424, + 0x4063A820, 0x40648220, 0x00000003, 0x4062C425, 0x4063A820, 0x40648220, + 0x00000003, 0x4062C426, 0x4063A820, 0x40648220, 0x00000003, 0x4062C427, + 0x4063A820, 0x40648220, 0x00000003, 0x4062C428, + // Block 540, offset 0x8700 + 0x4063A820, 0x40648220, 0x00000003, 0x4062C429, 0x4063A820, 0x40648220, + 0x00000003, 0x4062C421, 0x4063A820, 0x40648420, 0x00000003, 0x4062C422, + 0x4063A820, 0x40648420, 0x00000003, 0x4062C423, 0x4063A820, 0x40648420, + 0x00000003, 0x4062C424, 0x4063A820, 0x40648420, 0x00000003, 0x4062C425, + 0x4063A820, 0x40648420, 0x00000003, 0x4062C426, 0x4063A820, 0x40648420, + 0x00000003, 0x4062C421, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C422, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062C423, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062C424, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C425, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062C426, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062C427, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C428, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062C429, + // Block 541, offset 0x8740 + 0x4063A820, 0x40648C20, 0x00000003, 0x4062C42A, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062C42B, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C42C, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062C42D, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062C42E, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C42F, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062C430, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062C431, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C432, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062C433, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062C434, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C435, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062C436, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062C437, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C438, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062C439, + // Block 542, offset 0x8780 + 0x4063A820, 0x40648C20, 0x00000003, 0x4062C43A, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062C43B, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C43C, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062C43D, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062C43E, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C43F, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062C440, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062C441, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C442, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062C443, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062C444, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C445, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062C446, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062C447, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C448, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062C449, + // Block 543, offset 0x87c0 + 0x4063A820, 0x40648C20, 0x00000003, 0x4062C44A, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062C44B, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C44C, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062C44D, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062C44E, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C44F, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062C450, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062C451, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C452, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062C453, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062C454, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C455, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062C456, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062C457, 0x4063A820, 0x40648C20, 0x00000002, 0x4062C421, + 0x4063AA20, 0x00000002, 0x4062C422, 0x4063AA20, + // Block 544, offset 0x8800 + 0x00000002, 0x4062C423, 0x4063AA20, 0x00000002, 0x4062C424, 0x4063AA20, + 0x00000002, 0x4062C425, 0x4063AA20, 0x00000002, 0x4062C426, 0x4063AA20, + 0x00000002, 0x4062C427, 0x4063AA20, 0x00000002, 0x4062C428, 0x4063AA20, + 0x00000002, 0x4062C429, 0x4063AA20, 0x00000002, 0x4062C42A, 0x4063AA20, + 0x00000002, 0x4062C42B, 0x4063AA20, 0x00000002, 0x4062C42C, 0x4063AA20, + 0x00000002, 0x4062C42D, 0x4063AA20, 0x00000002, 0x4062C42E, 0x4063AA20, + 0x00000002, 0x4062C42F, 0x4063AA20, 0x00000002, 0x4062C430, 0x4063AA20, + 0x00000002, 0x4062C431, 0x4063AA20, 0x00000002, 0x4062C432, 0x4063AA20, + 0x00000002, 0x4062C433, 0x4063AA20, 0x00000002, 0x4062C434, 0x4063AA20, + 0x00000002, 0x4062C435, 0x4063AA20, 0x00000002, 0x4062C436, 0x4063AA20, + 0x00000002, 0x4062C437, 0x4063AA20, 0x00000003, + // Block 545, offset 0x8840 + 0x4062C421, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062C422, 0x4063AA20, + 0x40648C20, 0x00000003, 0x4062C423, 0x4063AA20, 0x40648C20, 0x00000003, + 0x4062C424, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062C425, 0x4063AA20, + 0x40648C20, 0x00000003, 0x4062C426, 0x4063AA20, 0x40648C20, 0x00000003, + 0x4062C427, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062C428, 0x4063AA20, + 0x40648C20, 0x00000002, 0x4062C421, 0x4063B020, 0x00000002, 0x4062C422, + 0x4063B020, 0x00000002, 0x4062C423, 0x4063B020, 0x00000002, 0x4062C424, + 0x4063B020, 0x00000002, 0x4062C425, 0x4063B020, 0x00000002, 0x4062C426, + 0x4063B020, 0x00000002, 0x4062C427, 0x4063B020, 0x00000002, 0x4062C428, + 0x4063B020, 0x00000002, 0x4062C429, 0x4063B020, 0x00000002, 0x4062C42A, + 0x4063B020, 0x00000002, 0x4062C42B, 0x4063B020, + // Block 546, offset 0x8880 + 0x00000002, 0x4062C42C, 0x4063B020, 0x00000002, 0x4062C42D, 0x4063B020, + 0x00000002, 0x4062C42E, 0x4063B020, 0x00000002, 0x4062C42F, 0x4063B020, + 0x00000002, 0x4062C430, 0x4063B020, 0x00000002, 0x4062C431, 0x4063B020, + 0x00000002, 0x4062C432, 0x4063B020, 0x00000002, 0x4062C433, 0x4063B020, + 0x00000002, 0x4062C434, 0x4063B020, 0x00000002, 0x4062C435, 0x4063B020, + 0x00000002, 0x4062C436, 0x4063B020, 0x00000002, 0x4062C437, 0x4063B020, + 0x00000002, 0x4062C438, 0x4063B020, 0x00000002, 0x4062C439, 0x4063B020, + 0x00000002, 0x4062C43A, 0x4063B020, 0x00000002, 0x4062C43B, 0x4063B020, + 0x00000002, 0x4062C43C, 0x4063B020, 0x00000002, 0x4062C43D, 0x4063B020, + 0x00000002, 0x4062C43E, 0x4063B020, 0x00000002, 0x4062C43F, 0x4063B020, + 0x00000002, 0x4062C440, 0x4063B020, 0x00000002, + // Block 547, offset 0x88c0 + 0x4062C441, 0x4063B020, 0x00000002, 0x4062C442, 0x4063B020, 0x00000002, + 0x4062C443, 0x4063B020, 0x00000002, 0x4062C444, 0x4063B020, 0x00000002, + 0x4062C445, 0x4063B020, 0x00000002, 0x4062C446, 0x4063B020, 0x00000002, + 0x4062C447, 0x4063B020, 0x00000002, 0x4062C448, 0x4063B020, 0x00000002, + 0x4062C449, 0x4063B020, 0x00000002, 0x4062C44A, 0x4063B020, 0x00000002, + 0x4062C44B, 0x4063B020, 0x00000002, 0x4062C44C, 0x4063B020, 0x00000002, + 0x4062C44D, 0x4063B020, 0x00000002, 0x4062C44E, 0x4063B020, 0x00000003, + 0x4062C421, 0x4063B020, 0x40646420, 0x00000003, 0x4062C422, 0x4063B020, + 0x40646420, 0x00000003, 0x4062C423, 0x4063B020, 0x40646420, 0x00000003, + 0x4062C424, 0x4063B020, 0x40646420, 0x00000003, 0x4062C425, 0x4063B020, + 0x40646420, 0x00000003, 0x4062C426, 0x4063B020, + // Block 548, offset 0x8900 + 0x40646420, 0x00000003, 0x4062C427, 0x4063B020, 0x40646420, 0x00000003, + 0x4062C428, 0x4063B020, 0x40646420, 0x00000003, 0x4062C429, 0x4063B020, + 0x40646420, 0x00000003, 0x4062C42A, 0x4063B020, 0x40646420, 0x00000003, + 0x4062C42B, 0x4063B020, 0x40646420, 0x00000003, 0x4062C42C, 0x4063B020, + 0x40646420, 0x00000003, 0x4062C42D, 0x4063B020, 0x40646420, 0x00000003, + 0x4062C42E, 0x4063B020, 0x40646420, 0x00000003, 0x4062C42F, 0x4063B020, + 0x40646420, 0x00000003, 0x4062C430, 0x4063B020, 0x40646420, 0x00000003, + 0x4062C431, 0x4063B020, 0x40646420, 0x00000003, 0x4062C432, 0x4063B020, + 0x40646420, 0x00000003, 0x4062C433, 0x4063B020, 0x40646420, 0x00000003, + 0x4062C434, 0x4063B020, 0x40646420, 0x00000003, 0x4062C435, 0x4063B020, + 0x40646420, 0x00000003, 0x4062C436, 0x4063B020, + // Block 549, offset 0x8940 + 0x40646420, 0x00000003, 0x4062C437, 0x4063B020, 0x40646420, 0x00000003, + 0x4062C438, 0x4063B020, 0x40646420, 0x00000003, 0x4062C439, 0x4063B020, + 0x40646420, 0x00000003, 0x4062C43A, 0x4063B020, 0x40646420, 0x00000003, + 0x4062C43B, 0x4063B020, 0x40646420, 0x00000003, 0x4062C43C, 0x4063B020, + 0x40646420, 0x00000003, 0x4062C43D, 0x4063B020, 0x40646420, 0x00000003, + 0x4062C43E, 0x4063B020, 0x40646420, 0x00000003, 0x4062C43F, 0x4063B020, + 0x40646420, 0x00000003, 0x4062C421, 0x4063B020, 0x40646A20, 0x00000003, + 0x4062C422, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C423, 0x4063B020, + 0x40646A20, 0x00000003, 0x4062C424, 0x4063B020, 0x40646A20, 0x00000003, + 0x4062C425, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C426, 0x4063B020, + 0x40646A20, 0x00000003, 0x4062C427, 0x4063B020, + // Block 550, offset 0x8980 + 0x40646A20, 0x00000003, 0x4062C428, 0x4063B020, 0x40646A20, 0x00000003, + 0x4062C429, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C42A, 0x4063B020, + 0x40646A20, 0x00000003, 0x4062C42B, 0x4063B020, 0x40646A20, 0x00000003, + 0x4062C42C, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C42D, 0x4063B020, + 0x40646A20, 0x00000003, 0x4062C42E, 0x4063B020, 0x40646A20, 0x00000003, + 0x4062C42F, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C430, 0x4063B020, + 0x40646A20, 0x00000003, 0x4062C431, 0x4063B020, 0x40646A20, 0x00000003, + 0x4062C432, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C433, 0x4063B020, + 0x40646A20, 0x00000003, 0x4062C434, 0x4063B020, 0x40646A20, 0x00000003, + 0x4062C435, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C436, 0x4063B020, + 0x40646A20, 0x00000003, 0x4062C437, 0x4063B020, + // Block 551, offset 0x89c0 + 0x40646A20, 0x00000003, 0x4062C438, 0x4063B020, 0x40646A20, 0x00000003, + 0x4062C439, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C43A, 0x4063B020, + 0x40646A20, 0x00000003, 0x4062C43B, 0x4063B020, 0x40646A20, 0x00000003, + 0x4062C43C, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C43D, 0x4063B020, + 0x40646A20, 0x00000003, 0x4062C43E, 0x4063B020, 0x40646A20, 0x00000003, + 0x4062C43F, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C440, 0x4063B020, + 0x40646A20, 0x00000003, 0x4062C441, 0x4063B020, 0x40646A20, 0x00000003, + 0x4062C442, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C443, 0x4063B020, + 0x40646A20, 0x00000003, 0x4062C444, 0x4063B020, 0x40646A20, 0x00000003, + 0x4062C445, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C446, 0x4063B020, + 0x40646A20, 0x00000003, 0x4062C447, 0x4063B020, + // Block 552, offset 0x8a00 + 0x40646A20, 0x00000003, 0x4062C448, 0x4063B020, 0x40646A20, 0x00000003, + 0x4062C449, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C44A, 0x4063B020, + 0x40646A20, 0x00000003, 0x4062C44B, 0x4063B020, 0x40646A20, 0x00000003, + 0x4062C44C, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C44D, 0x4063B020, + 0x40646A20, 0x00000003, 0x4062C44E, 0x4063B020, 0x40646A20, 0x00000003, + 0x4062C44F, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C450, 0x4063B020, + 0x40646A20, 0x00000003, 0x4062C451, 0x4063B020, 0x40646A20, 0x00000003, + 0x4062C452, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C453, 0x4063B020, + 0x40646A20, 0x00000003, 0x4062C454, 0x4063B020, 0x40646A20, 0x00000003, + 0x4062C455, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C456, 0x4063B020, + 0x40646A20, 0x00000003, 0x4062C457, 0x4063B020, + // Block 553, offset 0x8a40 + 0x40646A20, 0x00000003, 0x4062C458, 0x4063B020, 0x40646A20, 0x00000003, + 0x4062C459, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C45A, 0x4063B020, + 0x40646A20, 0x00000003, 0x4062C45B, 0x4063B020, 0x40646A20, 0x00000003, + 0x4062C45C, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C45D, 0x4063B020, + 0x40646A20, 0x00000003, 0x4062C45E, 0x4063B020, 0x40646A20, 0x00000003, + 0x4062C45F, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C460, 0x4063B020, + 0x40646A20, 0x00000003, 0x4062C461, 0x4063B020, 0x40646A20, 0x00000003, + 0x4062C462, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C463, 0x4063B020, + 0x40646A20, 0x00000003, 0x4062C464, 0x4063B020, 0x40646A20, 0x00000003, + 0x4062C465, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C466, 0x4063B020, + 0x40646A20, 0x00000003, 0x4062C467, 0x4063B020, + // Block 554, offset 0x8a80 + 0x40646A20, 0x00000003, 0x4062C468, 0x4063B020, 0x40646A20, 0x00000003, + 0x4062C469, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C46A, 0x4063B020, + 0x40646A20, 0x00000003, 0x4062C46B, 0x4063B020, 0x40646A20, 0x00000003, + 0x4062C46C, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C46D, 0x4063B020, + 0x40646A20, 0x00000003, 0x4062C46E, 0x4063B020, 0x40646A20, 0x00000003, + 0x4062C46F, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C470, 0x4063B020, + 0x40646A20, 0x00000003, 0x4062C471, 0x4063B020, 0x40646A20, 0x00000003, + 0x4062C421, 0x4063B020, 0x40647220, 0x00000003, 0x4062C422, 0x4063B020, + 0x40647220, 0x00000003, 0x4062C423, 0x4063B020, 0x40647220, 0x00000003, + 0x4062C424, 0x4063B020, 0x40647220, 0x00000003, 0x4062C425, 0x4063B020, + 0x40647220, 0x00000003, 0x4062C426, 0x4063B020, + // Block 555, offset 0x8ac0 + 0x40647220, 0x00000003, 0x4062C427, 0x4063B020, 0x40647220, 0x00000003, + 0x4062C428, 0x4063B020, 0x40647220, 0x00000003, 0x4062C429, 0x4063B020, + 0x40647220, 0x00000003, 0x4062C42A, 0x4063B020, 0x40647220, 0x00000003, + 0x4062C42B, 0x4063B020, 0x40647220, 0x00000003, 0x4062C421, 0x4063B020, + 0x40648220, 0x00000003, 0x4062C422, 0x4063B020, 0x40648220, 0x00000003, + 0x4062C423, 0x4063B020, 0x40648220, 0x00000003, 0x4062C424, 0x4063B020, + 0x40648220, 0x00000003, 0x4062C425, 0x4063B020, 0x40648220, 0x00000003, + 0x4062C426, 0x4063B020, 0x40648220, 0x00000003, 0x4062C427, 0x4063B020, + 0x40648220, 0x00000003, 0x4062C428, 0x4063B020, 0x40648220, 0x00000003, + 0x4062C429, 0x4063B020, 0x40648220, 0x00000003, 0x4062C42A, 0x4063B020, + 0x40648220, 0x00000003, 0x4062C42B, 0x4063B020, + // Block 556, offset 0x8b00 + 0x40648220, 0x00000003, 0x4062C42C, 0x4063B020, 0x40648220, 0x00000003, + 0x4062C42D, 0x4063B020, 0x40648220, 0x00000003, 0x4062C42E, 0x4063B020, + 0x40648220, 0x00000003, 0x4062C42F, 0x4063B020, 0x40648220, 0x00000003, + 0x4062C430, 0x4063B020, 0x40648220, 0x00000003, 0x4062C431, 0x4063B020, + 0x40648220, 0x00000003, 0x4062C432, 0x4063B020, 0x40648220, 0x00000003, + 0x4062C433, 0x4063B020, 0x40648220, 0x00000003, 0x4062C434, 0x4063B020, + 0x40648220, 0x00000003, 0x4062C421, 0x4063B020, 0x40648420, 0x00000003, + 0x4062C422, 0x4063B020, 0x40648420, 0x00000003, 0x4062C423, 0x4063B020, + 0x40648420, 0x00000003, 0x4062C424, 0x4063B020, 0x40648420, 0x00000003, + 0x4062C425, 0x4063B020, 0x40648420, 0x00000003, 0x4062C426, 0x4063B020, + 0x40648420, 0x00000003, 0x4062C427, 0x4063B020, + // Block 557, offset 0x8b40 + 0x40648420, 0x00000003, 0x4062C428, 0x4063B020, 0x40648420, 0x00000003, + 0x4062C429, 0x4063B020, 0x40648420, 0x00000003, 0x4062C421, 0x4063B020, + 0x40648C20, 0x00000003, 0x4062C422, 0x4063B020, 0x40648C20, 0x00000003, + 0x4062C423, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C424, 0x4063B020, + 0x40648C20, 0x00000003, 0x4062C425, 0x4063B020, 0x40648C20, 0x00000003, + 0x4062C426, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C427, 0x4063B020, + 0x40648C20, 0x00000003, 0x4062C428, 0x4063B020, 0x40648C20, 0x00000003, + 0x4062C429, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C42A, 0x4063B020, + 0x40648C20, 0x00000003, 0x4062C42B, 0x4063B020, 0x40648C20, 0x00000003, + 0x4062C42C, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C42D, 0x4063B020, + 0x40648C20, 0x00000003, 0x4062C42E, 0x4063B020, + // Block 558, offset 0x8b80 + 0x40648C20, 0x00000003, 0x4062C42F, 0x4063B020, 0x40648C20, 0x00000003, + 0x4062C430, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C431, 0x4063B020, + 0x40648C20, 0x00000003, 0x4062C432, 0x4063B020, 0x40648C20, 0x00000003, + 0x4062C433, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C434, 0x4063B020, + 0x40648C20, 0x00000003, 0x4062C435, 0x4063B020, 0x40648C20, 0x00000003, + 0x4062C436, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C437, 0x4063B020, + 0x40648C20, 0x00000003, 0x4062C438, 0x4063B020, 0x40648C20, 0x00000003, + 0x4062C439, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C43A, 0x4063B020, + 0x40648C20, 0x00000003, 0x4062C43B, 0x4063B020, 0x40648C20, 0x00000003, + 0x4062C43C, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C43D, 0x4063B020, + 0x40648C20, 0x00000003, 0x4062C43E, 0x4063B020, + // Block 559, offset 0x8bc0 + 0x40648C20, 0x00000003, 0x4062C43F, 0x4063B020, 0x40648C20, 0x00000003, + 0x4062C440, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C441, 0x4063B020, + 0x40648C20, 0x00000003, 0x4062C442, 0x4063B020, 0x40648C20, 0x00000003, + 0x4062C443, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C444, 0x4063B020, + 0x40648C20, 0x00000003, 0x4062C445, 0x4063B020, 0x40648C20, 0x00000003, + 0x4062C446, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C447, 0x4063B020, + 0x40648C20, 0x00000003, 0x4062C448, 0x4063B020, 0x40648C20, 0x00000003, + 0x4062C449, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C44A, 0x4063B020, + 0x40648C20, 0x00000003, 0x4062C44B, 0x4063B020, 0x40648C20, 0x00000003, + 0x4062C44C, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C44D, 0x4063B020, + 0x40648C20, 0x00000003, 0x4062C44E, 0x4063B020, + // Block 560, offset 0x8c00 + 0x40648C20, 0x00000003, 0x4062C44F, 0x4063B020, 0x40648C20, 0x00000003, + 0x4062C450, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C451, 0x4063B020, + 0x40648C20, 0x00000003, 0x4062C452, 0x4063B020, 0x40648C20, 0x00000003, + 0x4062C453, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C454, 0x4063B020, + 0x40648C20, 0x00000003, 0x4062C455, 0x4063B020, 0x40648C20, 0x00000003, + 0x4062C456, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C457, 0x4063B020, + 0x40648C20, 0x00000003, 0x4062C458, 0x4063B020, 0x40648C20, 0x00000003, + 0x4062C459, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C45A, 0x4063B020, + 0x40648C20, 0x00000003, 0x4062C45B, 0x4063B020, 0x40648C20, 0x00000003, + 0x4062C45C, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C45D, 0x4063B020, + 0x40648C20, 0x00000003, 0x4062C45E, 0x4063B020, + // Block 561, offset 0x8c40 + 0x40648C20, 0x00000003, 0x4062C45F, 0x4063B020, 0x40648C20, 0x00000003, + 0x4062C460, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C461, 0x4063B020, + 0x40648C20, 0x00000003, 0x4062C462, 0x4063B020, 0x40648C20, 0x00000003, + 0x4062C463, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C464, 0x4063B020, + 0x40648C20, 0x00000003, 0x4062C465, 0x4063B020, 0x40648C20, 0x00000003, + 0x4062C466, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C467, 0x4063B020, + 0x40648C20, 0x00000003, 0x4062C468, 0x4063B020, 0x40648C20, 0x00000003, + 0x4062C469, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C46A, 0x4063B020, + 0x40648C20, 0x00000002, 0x4062C421, 0x4063B220, 0x00000002, 0x4062C422, + 0x4063B220, 0x00000002, 0x4062C423, 0x4063B220, 0x00000002, 0x4062C424, + 0x4063B220, 0x00000002, 0x4062C425, 0x4063B220, + // Block 562, offset 0x8c80 + 0x00000002, 0x4062C426, 0x4063B220, 0x00000002, 0x4062C427, 0x4063B220, + 0x00000002, 0x4062C428, 0x4063B220, 0x00000002, 0x4062C429, 0x4063B220, + 0x00000002, 0x4062C42A, 0x4063B220, 0x00000002, 0x4062C42B, 0x4063B220, + 0x00000002, 0x4062C42C, 0x4063B220, 0x00000002, 0x4062C42D, 0x4063B220, + 0x00000002, 0x4062C42E, 0x4063B220, 0x00000002, 0x4062C42F, 0x4063B220, + 0x00000002, 0x4062C430, 0x4063B220, 0x00000002, 0x4062C431, 0x4063B220, + 0x00000002, 0x4062C432, 0x4063B220, 0x00000002, 0x4062C433, 0x4063B220, + 0x00000002, 0x4062C434, 0x4063B220, 0x00000002, 0x4062C435, 0x4063B220, + 0x00000002, 0x4062C436, 0x4063B220, 0x00000002, 0x4062C437, 0x4063B220, + 0x00000002, 0x4062C438, 0x4063B220, 0x00000002, 0x4062C439, 0x4063B220, + 0x00000002, 0x4062C43A, 0x4063B220, 0x00000002, + // Block 563, offset 0x8cc0 + 0x4062C43B, 0x4063B220, 0x00000002, 0x4062C43C, 0x4063B220, 0x00000002, + 0x4062C43D, 0x4063B220, 0x00000002, 0x4062C43E, 0x4063B220, 0x00000002, + 0x4062C43F, 0x4063B220, 0x00000002, 0x4062C440, 0x4063B220, 0x00000002, + 0x4062C441, 0x4063B220, 0x00000002, 0x4062C442, 0x4063B220, 0x00000002, + 0x4062C443, 0x4063B220, 0x00000002, 0x4062C444, 0x4063B220, 0x00000002, + 0x4062C445, 0x4063B220, 0x00000002, 0x4062C446, 0x4063B220, 0x00000002, + 0x4062C447, 0x4063B220, 0x00000002, 0x4062C448, 0x4063B220, 0x00000002, + 0x4062C421, 0x4063B820, 0x00000002, 0x4062C422, 0x4063B820, 0x00000002, + 0x4062C423, 0x4063B820, 0x00000002, 0x4062C424, 0x4063B820, 0x00000002, + 0x4062C425, 0x4063B820, 0x00000002, 0x4062C426, 0x4063B820, 0x00000002, + 0x4062C427, 0x4063B820, 0x00000002, 0x4062C428, + // Block 564, offset 0x8d00 + 0x4063B820, 0x00000002, 0x4062C429, 0x4063B820, 0x00000002, 0x4062C42A, + 0x4063B820, 0x00000002, 0x4062C42B, 0x4063B820, 0x00000002, 0x4062C42C, + 0x4063B820, 0x00000002, 0x4062C42D, 0x4063B820, 0x00000002, 0x4062C42E, + 0x4063B820, 0x00000002, 0x4062C42F, 0x4063B820, 0x00000002, 0x4062C430, + 0x4063B820, 0x00000002, 0x4062C431, 0x4063B820, 0x00000002, 0x4062C432, + 0x4063B820, 0x00000002, 0x4062C433, 0x4063B820, 0x00000002, 0x4062C434, + 0x4063B820, 0x00000002, 0x4062C435, 0x4063B820, 0x00000002, 0x4062C436, + 0x4063B820, 0x00000002, 0x4062C437, 0x4063B820, 0x00000002, 0x4062C438, + 0x4063B820, 0x00000002, 0x4062C439, 0x4063B820, 0x00000002, 0x4062C43A, + 0x4063B820, 0x00000002, 0x4062C43B, 0x4063B820, 0x00000002, 0x4062C43C, + 0x4063B820, 0x00000002, 0x4062C43D, 0x4063B820, + // Block 565, offset 0x8d40 + 0x00000002, 0x4062C43E, 0x4063B820, 0x00000002, 0x4062C43F, 0x4063B820, + 0x00000002, 0x4062C440, 0x4063B820, 0x00000002, 0x4062C441, 0x4063B820, + 0x00000002, 0x4062C442, 0x4063B820, 0x00000002, 0x4062C443, 0x4063B820, + 0x00000002, 0x4062C444, 0x4063B820, 0x00000002, 0x4062C445, 0x4063B820, + 0x00000002, 0x4062C446, 0x4063B820, 0x00000002, 0x4062C447, 0x4063B820, + 0x00000002, 0x4062C448, 0x4063B820, 0x00000002, 0x4062C449, 0x4063B820, + 0x00000002, 0x4062C44A, 0x4063B820, 0x00000002, 0x4062C44B, 0x4063B820, + 0x00000002, 0x4062C44C, 0x4063B820, 0x00000002, 0x4062C44D, 0x4063B820, + 0x00000002, 0x4062C44E, 0x4063B820, 0x00000002, 0x4062C44F, 0x4063B820, + 0x00000002, 0x4062C450, 0x4063B820, 0x00000002, 0x4062C451, 0x4063B820, + 0x00000002, 0x4062C452, 0x4063B820, 0x00000002, + // Block 566, offset 0x8d80 + 0x4062C453, 0x4063B820, 0x00000002, 0x4062C454, 0x4063B820, 0x00000002, + 0x4062C455, 0x4063B820, 0x00000002, 0x4062C456, 0x4063B820, 0x00000002, + 0x4062C457, 0x4063B820, 0x00000002, 0x4062C458, 0x4063B820, 0x00000002, + 0x4062C459, 0x4063B820, 0x00000002, 0x4062C45A, 0x4063B820, 0x00000002, + 0x4062C45B, 0x4063B820, 0x00000002, 0x4062C45C, 0x4063B820, 0x00000002, + 0x4062C45D, 0x4063B820, 0x00000002, 0x4062C45E, 0x4063B820, 0x00000002, + 0x4062C45F, 0x4063B820, 0x00000002, 0x4062C460, 0x4063B820, 0x00000002, + 0x4062C461, 0x4063B820, 0x00000002, 0x4062C462, 0x4063B820, 0x00000002, + 0x4062C463, 0x4063B820, 0x00000002, 0x4062C464, 0x4063B820, 0x00000002, + 0x4062C465, 0x4063B820, 0x00000002, 0x4062C466, 0x4063B820, 0x00000002, + 0x4062C467, 0x4063B820, 0x00000002, 0x4062C468, + // Block 567, offset 0x8dc0 + 0x4063B820, 0x00000002, 0x4062C469, 0x4063B820, 0x00000002, 0x4062C46A, + 0x4063B820, 0x00000002, 0x4062C46B, 0x4063B820, 0x00000002, 0x4062C46C, + 0x4063B820, 0x00000002, 0x4062C46D, 0x4063B820, 0x00000002, 0x4062C46E, + 0x4063B820, 0x00000002, 0x4062C46F, 0x4063B820, 0x00000002, 0x4062C470, + 0x4063B820, 0x00000003, 0x4062C421, 0x4063B820, 0x40646420, 0x00000003, + 0x4062C422, 0x4063B820, 0x40646420, 0x00000003, 0x4062C423, 0x4063B820, + 0x40646420, 0x00000003, 0x4062C424, 0x4063B820, 0x40646420, 0x00000003, + 0x4062C425, 0x4063B820, 0x40646420, 0x00000003, 0x4062C421, 0x4063B820, + 0x40646A20, 0x00000003, 0x4062C422, 0x4063B820, 0x40646A20, 0x00000003, + 0x4062C423, 0x4063B820, 0x40646A20, 0x00000003, 0x4062C421, 0x4063B820, + 0x40647220, 0x00000003, 0x4062C422, 0x4063B820, + // Block 568, offset 0x8e00 + 0x40647220, 0x00000003, 0x4062C423, 0x4063B820, 0x40647220, 0x00000003, + 0x4062C421, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C422, 0x4063B820, + 0x40648C20, 0x00000003, 0x4062C423, 0x4063B820, 0x40648C20, 0x00000003, + 0x4062C424, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C425, 0x4063B820, + 0x40648C20, 0x00000003, 0x4062C426, 0x4063B820, 0x40648C20, 0x00000003, + 0x4062C427, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C428, 0x4063B820, + 0x40648C20, 0x00000003, 0x4062C429, 0x4063B820, 0x40648C20, 0x00000003, + 0x4062C42A, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C42B, 0x4063B820, + 0x40648C20, 0x00000003, 0x4062C42C, 0x4063B820, 0x40648C20, 0x00000003, + 0x4062C42D, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C42E, 0x4063B820, + 0x40648C20, 0x00000003, 0x4062C42F, 0x4063B820, + // Block 569, offset 0x8e40 + 0x40648C20, 0x00000003, 0x4062C430, 0x4063B820, 0x40648C20, 0x00000003, + 0x4062C431, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C432, 0x4063B820, + 0x40648C20, 0x00000003, 0x4062C433, 0x4063B820, 0x40648C20, 0x00000003, + 0x4062C434, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C435, 0x4063B820, + 0x40648C20, 0x00000003, 0x4062C436, 0x4063B820, 0x40648C20, 0x00000003, + 0x4062C437, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C438, 0x4063B820, + 0x40648C20, 0x00000003, 0x4062C439, 0x4063B820, 0x40648C20, 0x00000003, + 0x4062C43A, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C43B, 0x4063B820, + 0x40648C20, 0x00000002, 0x4062C421, 0x4063BA20, 0x00000002, 0x4062C422, + 0x4063BA20, 0x00000002, 0x4062C423, 0x4063BA20, 0x00000002, 0x4062C424, + 0x4063BA20, 0x00000002, 0x4062C425, 0x4063BA20, + // Block 570, offset 0x8e80 + 0x00000002, 0x4062C426, 0x4063BA20, 0x00000002, 0x4062C427, 0x4063BA20, + 0x00000002, 0x4062C428, 0x4063BA20, 0x00000002, 0x4062C429, 0x4063BA20, + 0x00000002, 0x4062C421, 0x4063BE20, 0x00000002, 0x4062C421, 0x4063C220, + 0x00000002, 0x4062C422, 0x4063C220, 0x00000002, 0x4062C423, 0x4063C220, + 0x00000002, 0x4062C424, 0x4063C220, 0x00000002, 0x4062C425, 0x4063C220, + 0x00000002, 0x4062C426, 0x4063C220, 0x00000002, 0x4062C427, 0x4063C220, + 0x00000002, 0x4062C428, 0x4063C220, 0x00000002, 0x4062C429, 0x4063C220, + 0x00000002, 0x4062C42A, 0x4063C220, 0x00000002, 0x4062C42B, 0x4063C220, + 0x00000002, 0x4062C42C, 0x4063C220, 0x00000002, 0x4062C42D, 0x4063C220, + 0x00000002, 0x4062C42E, 0x4063C220, 0x00000002, 0x4062C42F, 0x4063C220, + 0x00000002, 0x4062C430, 0x4063C220, 0x00000002, + // Block 571, offset 0x8ec0 + 0x4062C431, 0x4063C220, 0x00000002, 0x4062C432, 0x4063C220, 0x00000002, + 0x4062C433, 0x4063C220, 0x00000002, 0x4062C434, 0x4063C220, 0x00000002, + 0x4062C435, 0x4063C220, 0x00000002, 0x4062C436, 0x4063C220, 0x00000002, + 0x4062C437, 0x4063C220, 0x00000002, 0x4062C438, 0x4063C220, 0x00000002, + 0x4062C439, 0x4063C220, 0x00000002, 0x4062C43A, 0x4063C220, 0x00000002, + 0x4062C43B, 0x4063C220, 0x00000002, 0x4062C43C, 0x4063C220, 0x00000002, + 0x4062C43D, 0x4063C220, 0x00000002, 0x4062C43E, 0x4063C220, 0x00000002, + 0x4062C43F, 0x4063C220, 0x00000002, 0x4062C440, 0x4063C220, 0x00000002, + 0x4062C441, 0x4063C220, 0x00000002, 0x4062C442, 0x4063C220, 0x00000002, + 0x4062C443, 0x4063C220, 0x00000002, 0x4062C444, 0x4063C220, 0x00000002, + 0x4062C445, 0x4063C220, 0x00000002, 0x4062C446, + // Block 572, offset 0x8f00 + 0x4063C220, 0x00000002, 0x4062C447, 0x4063C220, 0x00000002, 0x4062C448, + 0x4063C220, 0x00000002, 0x4062C449, 0x4063C220, 0x00000002, 0x4062C44A, + 0x4063C220, 0x00000002, 0x4062C44B, 0x4063C220, 0x00000002, 0x4062C44C, + 0x4063C220, 0x00000002, 0x4062C44D, 0x4063C220, 0x00000002, 0x4062C44E, + 0x4063C220, 0x00000002, 0x4062C44F, 0x4063C220, 0x00000002, 0x4062C450, + 0x4063C220, 0x00000002, 0x4062C451, 0x4063C220, 0x00000002, 0x4062C452, + 0x4063C220, 0x00000002, 0x4062C453, 0x4063C220, 0x00000002, 0x4062C454, + 0x4063C220, 0x00000002, 0x4062C455, 0x4063C220, 0x00000002, 0x4062C456, + 0x4063C220, 0x00000002, 0x4062C457, 0x4063C220, 0x00000002, 0x4062C458, + 0x4063C220, 0x00000002, 0x4062C459, 0x4063C220, 0x00000002, 0x4062C45A, + 0x4063C220, 0x00000002, 0x4062C45B, 0x4063C220, + // Block 573, offset 0x8f40 + 0x00000002, 0x4062C45C, 0x4063C220, 0x00000002, 0x4062C45D, 0x4063C220, + 0x00000002, 0x4062C45E, 0x4063C220, 0x00000003, 0x4062C421, 0x4063C220, + 0x40646420, 0x00000003, 0x4062C422, 0x4063C220, 0x40646420, 0x00000003, + 0x4062C421, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C422, 0x4063C220, + 0x40646A20, 0x00000003, 0x4062C423, 0x4063C220, 0x40646A20, 0x00000003, + 0x4062C424, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C425, 0x4063C220, + 0x40646A20, 0x00000003, 0x4062C426, 0x4063C220, 0x40646A20, 0x00000003, + 0x4062C427, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C428, 0x4063C220, + 0x40646A20, 0x00000003, 0x4062C429, 0x4063C220, 0x40646A20, 0x00000003, + 0x4062C42A, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C42B, 0x4063C220, + 0x40646A20, 0x00000003, 0x4062C42C, 0x4063C220, + // Block 574, offset 0x8f80 + 0x40646A20, 0x00000003, 0x4062C42D, 0x4063C220, 0x40646A20, 0x00000003, + 0x4062C42E, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C42F, 0x4063C220, + 0x40646A20, 0x00000003, 0x4062C430, 0x4063C220, 0x40646A20, 0x00000003, + 0x4062C431, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C432, 0x4063C220, + 0x40646A20, 0x00000003, 0x4062C433, 0x4063C220, 0x40646A20, 0x00000003, + 0x4062C434, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C435, 0x4063C220, + 0x40646A20, 0x00000003, 0x4062C436, 0x4063C220, 0x40646A20, 0x00000003, + 0x4062C437, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C438, 0x4063C220, + 0x40646A20, 0x00000003, 0x4062C439, 0x4063C220, 0x40646A20, 0x00000003, + 0x4062C43A, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C43B, 0x4063C220, + 0x40646A20, 0x00000003, 0x4062C43C, 0x4063C220, + // Block 575, offset 0x8fc0 + 0x40646A20, 0x00000003, 0x4062C43D, 0x4063C220, 0x40646A20, 0x00000003, + 0x4062C43E, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C43F, 0x4063C220, + 0x40646A20, 0x00000003, 0x4062C440, 0x4063C220, 0x40646A20, 0x00000003, + 0x4062C441, 0x4063C220, 0x40646A20, 0x00000003, 0x4062C442, 0x4063C220, + 0x40646A20, 0x00000003, 0x4062C421, 0x4063C220, 0x40647220, 0x00000003, + 0x4062C422, 0x4063C220, 0x40647220, 0x00000003, 0x4062C421, 0x4063C220, + 0x40648C20, 0x00000003, 0x4062C422, 0x4063C220, 0x40648C20, 0x00000003, + 0x4062C423, 0x4063C220, 0x40648C20, 0x00000003, 0x4062C424, 0x4063C220, + 0x40648C20, 0x00000003, 0x4062C425, 0x4063C220, 0x40648C20, 0x00000003, + 0x4062C421, 0x4063CC20, 0x40646420, 0x00000003, 0x4062C422, 0x4063CC20, + 0x40646420, 0x00000003, 0x4062C423, 0x4063CC20, + // Block 576, offset 0x9000 + 0x40646420, 0x00000003, 0x4062C421, 0x4063CC20, 0x40647220, 0x00000003, + 0x4062C422, 0x4063CC20, 0x40647220, 0x00000003, 0x4062C421, 0x4063CC20, + 0x40648420, 0x00000003, 0x4062C422, 0x4063CC20, 0x40648420, 0x00000003, + 0x4062C423, 0x4063CC20, 0x40648420, 0x00000003, 0x4062C424, 0x4063CC20, + 0x40648420, 0x00000003, 0x4062C425, 0x4063CC20, 0x40648420, 0x00000003, + 0x4062C421, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062C422, 0x4063CC20, + 0x40648C20, 0x00000003, 0x4062C423, 0x4063CC20, 0x40648C20, 0x00000003, + 0x4062C424, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062C425, 0x4063CC20, + 0x40648C20, 0x00000003, 0x4062C426, 0x4063CC20, 0x40648C20, 0x00000003, + 0x4062C427, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062C428, 0x4063CC20, + 0x40648C20, 0x00000003, 0x4062C429, 0x4063CC20, + // Block 577, offset 0x9040 + 0x40648C20, 0x00000003, 0x4062C42A, 0x4063CC20, 0x40648C20, 0x00000003, + 0x4062C42B, 0x4063CC20, 0x40648C20, 0x00000003, 0x4062C42C, 0x4063CC20, + 0x40648C20, 0x00000003, 0x4062C42D, 0x4063CC20, 0x40648C20, 0x00000003, + 0x4062C42E, 0x4063CC20, 0x40648C20, 0x00000002, 0x4062C421, 0x4063D020, + 0x00000002, 0x4062C422, 0x4063D020, 0x00000002, 0x4062C423, 0x4063D020, + 0x00000002, 0x4062C424, 0x4063D020, 0x00000002, 0x4062C425, 0x4063D020, + 0x00000002, 0x4062C426, 0x4063D020, 0x00000002, 0x4062C427, 0x4063D020, + 0x00000002, 0x4062C428, 0x4063D020, 0x00000002, 0x4062C429, 0x4063D020, + 0x00000002, 0x4062C42A, 0x4063D020, 0x00000002, 0x4062C42B, 0x4063D020, + 0x00000002, 0x4062C42C, 0x4063D020, 0x00000002, 0x4062C42D, 0x4063D020, + 0x00000002, 0x4062C42E, 0x4063D020, 0x00000002, + // Block 578, offset 0x9080 + 0x4062C42F, 0x4063D020, 0x00000002, 0x4062C430, 0x4063D020, 0x00000002, + 0x4062C431, 0x4063D020, 0x00000002, 0x4062C432, 0x4063D020, 0x00000002, + 0x4062C433, 0x4063D020, 0x00000002, 0x4062C434, 0x4063D020, 0x00000002, + 0x4062C435, 0x4063D020, 0x00000002, 0x4062C436, 0x4063D020, 0x00000002, + 0x4062C437, 0x4063D020, 0x00000002, 0x4062C438, 0x4063D020, 0x00000002, + 0x4062C439, 0x4063D020, 0x00000002, 0x4062C43A, 0x4063D020, 0x00000002, + 0x4062C43B, 0x4063D020, 0x00000002, 0x4062C43C, 0x4063D020, 0x00000002, + 0x4062C43D, 0x4063D020, 0x00000002, 0x4062C43E, 0x4063D020, 0x00000002, + 0x4062C43F, 0x4063D020, 0x00000002, 0x4062C440, 0x4063D020, 0x00000002, + 0x4062C441, 0x4063D020, 0x00000002, 0x4062C442, 0x4063D020, 0x00000002, + 0x4062C443, 0x4063D020, 0x00000002, 0x4062C444, + // Block 579, offset 0x90c0 + 0x4063D020, 0x00000002, 0x4062C445, 0x4063D020, 0x00000002, 0x4062C446, + 0x4063D020, 0x00000002, 0x4062C447, 0x4063D020, 0x00000002, 0x4062C448, + 0x4063D020, 0x00000002, 0x4062C449, 0x4063D020, 0x00000002, 0x4062C44A, + 0x4063D020, 0x00000002, 0x4062C44B, 0x4063D020, 0x00000002, 0x4062C44C, + 0x4063D020, 0x00000002, 0x4062C44D, 0x4063D020, 0x00000002, 0x4062C44E, + 0x4063D020, 0x00000002, 0x4062C44F, 0x4063D020, 0x00000002, 0x4062C450, + 0x4063D020, 0x00000003, 0x4062C421, 0x4063D020, 0x40646420, 0x00000003, + 0x4062C422, 0x4063D020, 0x40646420, 0x00000003, 0x4062C423, 0x4063D020, + 0x40646420, 0x00000003, 0x4062C424, 0x4063D020, 0x40646420, 0x00000003, + 0x4062C425, 0x4063D020, 0x40646420, 0x00000003, 0x4062C426, 0x4063D020, + 0x40646420, 0x00000003, 0x4062C421, 0x4063D020, + // Block 580, offset 0x9100 + 0x40646A20, 0x00000003, 0x4062C422, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062C423, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C424, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062C425, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062C426, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C427, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062C428, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062C429, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C42A, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062C42B, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062C42C, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C42D, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062C42E, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062C42F, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C430, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062C431, 0x4063D020, + // Block 581, offset 0x9140 + 0x40646A20, 0x00000003, 0x4062C432, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062C433, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C434, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062C435, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062C436, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C437, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062C438, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062C439, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C43A, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062C43B, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062C43C, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C43D, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062C43E, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062C43F, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C440, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062C441, 0x4063D020, + // Block 582, offset 0x9180 + 0x40646A20, 0x00000003, 0x4062C442, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062C443, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C444, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062C445, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062C446, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C447, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062C448, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062C449, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C44A, 0x4063D020, + 0x40646A20, 0x00000003, 0x4062C44B, 0x4063D020, 0x40646A20, 0x00000003, + 0x4062C44C, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C421, 0x4063D020, + 0x40647220, 0x00000003, 0x4062C422, 0x4063D020, 0x40647220, 0x00000003, + 0x4062C423, 0x4063D020, 0x40647220, 0x00000003, 0x4062C424, 0x4063D020, + 0x40647220, 0x00000003, 0x4062C425, 0x4063D020, + // Block 583, offset 0x91c0 + 0x40647220, 0x00000003, 0x4062C426, 0x4063D020, 0x40647220, 0x00000003, + 0x4062C427, 0x4063D020, 0x40647220, 0x00000003, 0x4062C428, 0x4063D020, + 0x40647220, 0x00000003, 0x4062C429, 0x4063D020, 0x40647220, 0x00000003, + 0x4062C42A, 0x4063D020, 0x40647220, 0x00000003, 0x4062C42B, 0x4063D020, + 0x40647220, 0x00000003, 0x4062C42C, 0x4063D020, 0x40647220, 0x00000003, + 0x4062C42D, 0x4063D020, 0x40647220, 0x00000003, 0x4062C42E, 0x4063D020, + 0x40647220, 0x00000003, 0x4062C42F, 0x4063D020, 0x40647220, 0x00000003, + 0x4062C430, 0x4063D020, 0x40647220, 0x00000003, 0x4062C431, 0x4063D020, + 0x40647220, 0x00000003, 0x4062C432, 0x4063D020, 0x40647220, 0x00000003, + 0x4062C433, 0x4063D020, 0x40647220, 0x00000003, 0x4062C434, 0x4063D020, + 0x40647220, 0x00000003, 0x4062C421, 0x4063D020, + // Block 584, offset 0x9200 + 0x40648220, 0x00000003, 0x4062C422, 0x4063D020, 0x40648220, 0x00000003, + 0x4062C423, 0x4063D020, 0x40648220, 0x00000003, 0x4062C421, 0x4063D020, + 0x40648420, 0x00000003, 0x4062C422, 0x4063D020, 0x40648420, 0x00000003, + 0x4062C423, 0x4063D020, 0x40648420, 0x00000003, 0x4062C424, 0x4063D020, + 0x40648420, 0x00000003, 0x4062C425, 0x4063D020, 0x40648420, 0x00000003, + 0x4062C426, 0x4063D020, 0x40648420, 0x00000003, 0x4062C427, 0x4063D020, + 0x40648420, 0x00000003, 0x4062C428, 0x4063D020, 0x40648420, 0x00000003, + 0x4062C421, 0x4063D020, 0x40648C20, 0x00000003, 0x4062C422, 0x4063D020, + 0x40648C20, 0x00000003, 0x4062C423, 0x4063D020, 0x40648C20, 0x00000003, + 0x4062C424, 0x4063D020, 0x40648C20, 0x00000003, 0x4062C425, 0x4063D020, + 0x40648C20, 0x00000003, 0x4062C426, 0x4063D020, + // Block 585, offset 0x9240 + 0x40648C20, 0x00000003, 0x4062C427, 0x4063D020, 0x40648C20, 0x00000002, + 0x4062C821, 0x4063A820, 0x00000002, 0x4062C822, 0x4063A820, 0x00000002, + 0x4062C823, 0x4063A820, 0x00000002, 0x4062C824, 0x4063A820, 0x00000002, + 0x4062C825, 0x4063A820, 0x00000002, 0x4062C826, 0x4063A820, 0x00000002, + 0x4062C827, 0x4063A820, 0x00000002, 0x4062C828, 0x4063A820, 0x00000002, + 0x4062C829, 0x4063A820, 0x00000002, 0x4062C82A, 0x4063A820, 0x00000002, + 0x4062C82B, 0x4063A820, 0x00000002, 0x4062C82C, 0x4063A820, 0x00000002, + 0x4062C82D, 0x4063A820, 0x00000002, 0x4062C82E, 0x4063A820, 0x00000002, + 0x4062C82F, 0x4063A820, 0x00000002, 0x4062C830, 0x4063A820, 0x00000002, + 0x4062C831, 0x4063A820, 0x00000002, 0x4062C832, 0x4063A820, 0x00000002, + 0x4062C833, 0x4063A820, 0x00000002, 0x4062C834, + // Block 586, offset 0x9280 + 0x4063A820, 0x00000002, 0x4062C835, 0x4063A820, 0x00000002, 0x4062C836, + 0x4063A820, 0x00000003, 0x4062C821, 0x4063A820, 0x40646420, 0x00000003, + 0x4062C822, 0x4063A820, 0x40646420, 0x00000003, 0x4062C823, 0x4063A820, + 0x40646420, 0x00000003, 0x4062C824, 0x4063A820, 0x40646420, 0x00000003, + 0x4062C825, 0x4063A820, 0x40646420, 0x00000003, 0x4062C826, 0x4063A820, + 0x40646420, 0x00000003, 0x4062C827, 0x4063A820, 0x40646420, 0x00000003, + 0x4062C828, 0x4063A820, 0x40646420, 0x00000003, 0x4062C829, 0x4063A820, + 0x40646420, 0x00000003, 0x4062C82A, 0x4063A820, 0x40646420, 0x00000003, + 0x4062C821, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C822, 0x4063A820, + 0x40646A20, 0x00000003, 0x4062C823, 0x4063A820, 0x40646A20, 0x00000003, + 0x4062C824, 0x4063A820, 0x40646A20, 0x00000003, + // Block 587, offset 0x92c0 + 0x4062C825, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C826, 0x4063A820, + 0x40646A20, 0x00000003, 0x4062C827, 0x4063A820, 0x40646A20, 0x00000003, + 0x4062C828, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C829, 0x4063A820, + 0x40646A20, 0x00000003, 0x4062C82A, 0x4063A820, 0x40646A20, 0x00000003, + 0x4062C82B, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C82C, 0x4063A820, + 0x40646A20, 0x00000003, 0x4062C82D, 0x4063A820, 0x40646A20, 0x00000003, + 0x4062C82E, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C82F, 0x4063A820, + 0x40646A20, 0x00000003, 0x4062C830, 0x4063A820, 0x40646A20, 0x00000003, + 0x4062C831, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C832, 0x4063A820, + 0x40646A20, 0x00000003, 0x4062C833, 0x4063A820, 0x40646A20, 0x00000003, + 0x4062C834, 0x4063A820, 0x40646A20, 0x00000003, + // Block 588, offset 0x9300 + 0x4062C835, 0x4063A820, 0x40646A20, 0x00000003, 0x4062C836, 0x4063A820, + 0x40646A20, 0x00000003, 0x4062C837, 0x4063A820, 0x40646A20, 0x00000003, + 0x4062C821, 0x4063A820, 0x40647220, 0x00000003, 0x4062C822, 0x4063A820, + 0x40647220, 0x00000003, 0x4062C823, 0x4063A820, 0x40647220, 0x00000003, + 0x4062C824, 0x4063A820, 0x40647220, 0x00000003, 0x4062C825, 0x4063A820, + 0x40647220, 0x00000003, 0x4062C826, 0x4063A820, 0x40647220, 0x00000003, + 0x4062C827, 0x4063A820, 0x40647220, 0x00000003, 0x4062C821, 0x4063A820, + 0x40648220, 0x00000003, 0x4062C822, 0x4063A820, 0x40648220, 0x00000003, + 0x4062C823, 0x4063A820, 0x40648220, 0x00000003, 0x4062C824, 0x4063A820, + 0x40648220, 0x00000003, 0x4062C825, 0x4063A820, 0x40648220, 0x00000003, + 0x4062C826, 0x4063A820, 0x40648220, 0x00000003, + // Block 589, offset 0x9340 + 0x4062C827, 0x4063A820, 0x40648220, 0x00000003, 0x4062C828, 0x4063A820, + 0x40648220, 0x00000003, 0x4062C829, 0x4063A820, 0x40648220, 0x00000003, + 0x4062C82A, 0x4063A820, 0x40648220, 0x00000003, 0x4062C82B, 0x4063A820, + 0x40648220, 0x00000003, 0x4062C82C, 0x4063A820, 0x40648220, 0x00000003, + 0x4062C82D, 0x4063A820, 0x40648220, 0x00000003, 0x4062C82E, 0x4063A820, + 0x40648220, 0x00000003, 0x4062C82F, 0x4063A820, 0x40648220, 0x00000003, + 0x4062C830, 0x4063A820, 0x40648220, 0x00000003, 0x4062C831, 0x4063A820, + 0x40648220, 0x00000003, 0x4062C832, 0x4063A820, 0x40648220, 0x00000003, + 0x4062C833, 0x4063A820, 0x40648220, 0x00000003, 0x4062C834, 0x4063A820, + 0x40648220, 0x00000003, 0x4062C835, 0x4063A820, 0x40648220, 0x00000003, + 0x4062C836, 0x4063A820, 0x40648220, 0x00000003, + // Block 590, offset 0x9380 + 0x4062C837, 0x4063A820, 0x40648220, 0x00000003, 0x4062C838, 0x4063A820, + 0x40648220, 0x00000003, 0x4062C839, 0x4063A820, 0x40648220, 0x00000003, + 0x4062C83A, 0x4063A820, 0x40648220, 0x00000003, 0x4062C821, 0x4063A820, + 0x40648C20, 0x00000003, 0x4062C822, 0x4063A820, 0x40648C20, 0x00000003, + 0x4062C823, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C824, 0x4063A820, + 0x40648C20, 0x00000003, 0x4062C825, 0x4063A820, 0x40648C20, 0x00000003, + 0x4062C826, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C827, 0x4063A820, + 0x40648C20, 0x00000003, 0x4062C828, 0x4063A820, 0x40648C20, 0x00000003, + 0x4062C829, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C82A, 0x4063A820, + 0x40648C20, 0x00000003, 0x4062C82B, 0x4063A820, 0x40648C20, 0x00000003, + 0x4062C82C, 0x4063A820, 0x40648C20, 0x00000003, + // Block 591, offset 0x93c0 + 0x4062C82D, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C82E, 0x4063A820, + 0x40648C20, 0x00000003, 0x4062C82F, 0x4063A820, 0x40648C20, 0x00000003, + 0x4062C830, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C831, 0x4063A820, + 0x40648C20, 0x00000003, 0x4062C832, 0x4063A820, 0x40648C20, 0x00000003, + 0x4062C833, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C834, 0x4063A820, + 0x40648C20, 0x00000003, 0x4062C835, 0x4063A820, 0x40648C20, 0x00000003, + 0x4062C836, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C837, 0x4063A820, + 0x40648C20, 0x00000003, 0x4062C838, 0x4063A820, 0x40648C20, 0x00000003, + 0x4062C839, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C83A, 0x4063A820, + 0x40648C20, 0x00000003, 0x4062C83B, 0x4063A820, 0x40648C20, 0x00000003, + 0x4062C83C, 0x4063A820, 0x40648C20, 0x00000003, + // Block 592, offset 0x9400 + 0x4062C83D, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C83E, 0x4063A820, + 0x40648C20, 0x00000003, 0x4062C83F, 0x4063A820, 0x40648C20, 0x00000003, + 0x4062C840, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C841, 0x4063A820, + 0x40648C20, 0x00000003, 0x4062C842, 0x4063A820, 0x40648C20, 0x00000003, + 0x4062C843, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C844, 0x4063A820, + 0x40648C20, 0x00000003, 0x4062C845, 0x4063A820, 0x40648C20, 0x00000003, + 0x4062C846, 0x4063A820, 0x40648C20, 0x00000003, 0x4062C847, 0x4063A820, + 0x40648C20, 0x00000003, 0x4062C848, 0x4063A820, 0x40648C20, 0x00000003, + 0x4062C849, 0x4063A820, 0x40648C20, 0x00000002, 0x4062C821, 0x4063AA20, + 0x00000002, 0x4062C822, 0x4063AA20, 0x00000002, 0x4062C823, 0x4063AA20, + 0x00000002, 0x4062C824, 0x4063AA20, 0x00000002, + // Block 593, offset 0x9440 + 0x4062C825, 0x4063AA20, 0x00000002, 0x4062C826, 0x4063AA20, 0x00000002, + 0x4062C827, 0x4063AA20, 0x00000002, 0x4062C828, 0x4063AA20, 0x00000002, + 0x4062C829, 0x4063AA20, 0x00000002, 0x4062C82A, 0x4063AA20, 0x00000002, + 0x4062C82B, 0x4063AA20, 0x00000002, 0x4062C82C, 0x4063AA20, 0x00000002, + 0x4062C82D, 0x4063AA20, 0x00000002, 0x4062C82E, 0x4063AA20, 0x00000003, + 0x4062C821, 0x4063AA20, 0x40646420, 0x00000003, 0x4062C822, 0x4063AA20, + 0x40646420, 0x00000003, 0x4062C823, 0x4063AA20, 0x40646420, 0x00000003, + 0x4062C824, 0x4063AA20, 0x40646420, 0x00000003, 0x4062C825, 0x4063AA20, + 0x40646420, 0x00000003, 0x4062C826, 0x4063AA20, 0x40646420, 0x00000003, + 0x4062C827, 0x4063AA20, 0x40646420, 0x00000003, 0x4062C828, 0x4063AA20, + 0x40646420, 0x00000003, 0x4062C829, 0x4063AA20, + // Block 594, offset 0x9480 + 0x40646420, 0x00000003, 0x4062C82A, 0x4063AA20, 0x40646420, 0x00000002, + 0x4062C821, 0x4063B020, 0x00000002, 0x4062C822, 0x4063B020, 0x00000002, + 0x4062C823, 0x4063B020, 0x00000002, 0x4062C824, 0x4063B020, 0x00000002, + 0x4062C825, 0x4063B020, 0x00000002, 0x4062C826, 0x4063B020, 0x00000002, + 0x4062C827, 0x4063B020, 0x00000002, 0x4062C828, 0x4063B020, 0x00000002, + 0x4062C829, 0x4063B020, 0x00000003, 0x4062C821, 0x4063B020, 0x40646420, + 0x00000003, 0x4062C822, 0x4063B020, 0x40646420, 0x00000003, 0x4062C823, + 0x4063B020, 0x40646420, 0x00000003, 0x4062C824, 0x4063B020, 0x40646420, + 0x00000003, 0x4062C825, 0x4063B020, 0x40646420, 0x00000003, 0x4062C826, + 0x4063B020, 0x40646420, 0x00000003, 0x4062C827, 0x4063B020, 0x40646420, + 0x00000003, 0x4062C828, 0x4063B020, 0x40646420, + // Block 595, offset 0x94c0 + 0x00000003, 0x4062C829, 0x4063B020, 0x40646420, 0x00000003, 0x4062C82A, + 0x4063B020, 0x40646420, 0x00000003, 0x4062C82B, 0x4063B020, 0x40646420, + 0x00000003, 0x4062C82C, 0x4063B020, 0x40646420, 0x00000003, 0x4062C82D, + 0x4063B020, 0x40646420, 0x00000003, 0x4062C82E, 0x4063B020, 0x40646420, + 0x00000003, 0x4062C82F, 0x4063B020, 0x40646420, 0x00000003, 0x4062C830, + 0x4063B020, 0x40646420, 0x00000003, 0x4062C831, 0x4063B020, 0x40646420, + 0x00000003, 0x4062C832, 0x4063B020, 0x40646420, 0x00000003, 0x4062C833, + 0x4063B020, 0x40646420, 0x00000003, 0x4062C834, 0x4063B020, 0x40646420, + 0x00000003, 0x4062C835, 0x4063B020, 0x40646420, 0x00000003, 0x4062C836, + 0x4063B020, 0x40646420, 0x00000003, 0x4062C837, 0x4063B020, 0x40646420, + 0x00000003, 0x4062C821, 0x4063B020, 0x40646A20, + // Block 596, offset 0x9500 + 0x00000003, 0x4062C822, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C823, + 0x4063B020, 0x40646A20, 0x00000003, 0x4062C824, 0x4063B020, 0x40646A20, + 0x00000003, 0x4062C825, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C826, + 0x4063B020, 0x40646A20, 0x00000003, 0x4062C827, 0x4063B020, 0x40646A20, + 0x00000003, 0x4062C828, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C829, + 0x4063B020, 0x40646A20, 0x00000003, 0x4062C82A, 0x4063B020, 0x40646A20, + 0x00000003, 0x4062C82B, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C82C, + 0x4063B020, 0x40646A20, 0x00000003, 0x4062C82D, 0x4063B020, 0x40646A20, + 0x00000003, 0x4062C82E, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C82F, + 0x4063B020, 0x40646A20, 0x00000003, 0x4062C830, 0x4063B020, 0x40646A20, + 0x00000003, 0x4062C831, 0x4063B020, 0x40646A20, + // Block 597, offset 0x9540 + 0x00000003, 0x4062C832, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C833, + 0x4063B020, 0x40646A20, 0x00000003, 0x4062C834, 0x4063B020, 0x40646A20, + 0x00000003, 0x4062C835, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C836, + 0x4063B020, 0x40646A20, 0x00000003, 0x4062C837, 0x4063B020, 0x40646A20, + 0x00000003, 0x4062C838, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C839, + 0x4063B020, 0x40646A20, 0x00000003, 0x4062C83A, 0x4063B020, 0x40646A20, + 0x00000003, 0x4062C83B, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C83C, + 0x4063B020, 0x40646A20, 0x00000003, 0x4062C83D, 0x4063B020, 0x40646A20, + 0x00000003, 0x4062C83E, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C83F, + 0x4063B020, 0x40646A20, 0x00000003, 0x4062C840, 0x4063B020, 0x40646A20, + 0x00000003, 0x4062C841, 0x4063B020, 0x40646A20, + // Block 598, offset 0x9580 + 0x00000003, 0x4062C842, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C843, + 0x4063B020, 0x40646A20, 0x00000003, 0x4062C844, 0x4063B020, 0x40646A20, + 0x00000003, 0x4062C845, 0x4063B020, 0x40646A20, 0x00000003, 0x4062C821, + 0x4063B020, 0x40647220, 0x00000003, 0x4062C822, 0x4063B020, 0x40647220, + 0x00000003, 0x4062C823, 0x4063B020, 0x40647220, 0x00000003, 0x4062C824, + 0x4063B020, 0x40647220, 0x00000003, 0x4062C825, 0x4063B020, 0x40647220, + 0x00000003, 0x4062C826, 0x4063B020, 0x40647220, 0x00000003, 0x4062C827, + 0x4063B020, 0x40647220, 0x00000003, 0x4062C828, 0x4063B020, 0x40647220, + 0x00000003, 0x4062C829, 0x4063B020, 0x40647220, 0x00000003, 0x4062C82A, + 0x4063B020, 0x40647220, 0x00000003, 0x4062C82B, 0x4063B020, 0x40647220, + 0x00000003, 0x4062C82C, 0x4063B020, 0x40647220, + // Block 599, offset 0x95c0 + 0x00000003, 0x4062C82D, 0x4063B020, 0x40647220, 0x00000003, 0x4062C82E, + 0x4063B020, 0x40647220, 0x00000003, 0x4062C82F, 0x4063B020, 0x40647220, + 0x00000003, 0x4062C830, 0x4063B020, 0x40647220, 0x00000003, 0x4062C831, + 0x4063B020, 0x40647220, 0x00000003, 0x4062C832, 0x4063B020, 0x40647220, + 0x00000003, 0x4062C833, 0x4063B020, 0x40647220, 0x00000003, 0x4062C834, + 0x4063B020, 0x40647220, 0x00000003, 0x4062C821, 0x4063B020, 0x40648220, + 0x00000003, 0x4062C822, 0x4063B020, 0x40648220, 0x00000003, 0x4062C823, + 0x4063B020, 0x40648220, 0x00000003, 0x4062C824, 0x4063B020, 0x40648220, + 0x00000003, 0x4062C825, 0x4063B020, 0x40648220, 0x00000003, 0x4062C826, + 0x4063B020, 0x40648220, 0x00000003, 0x4062C827, 0x4063B020, 0x40648220, + 0x00000003, 0x4062C828, 0x4063B020, 0x40648220, + // Block 600, offset 0x9600 + 0x00000003, 0x4062C829, 0x4063B020, 0x40648220, 0x00000003, 0x4062C82A, + 0x4063B020, 0x40648220, 0x00000003, 0x4062C82B, 0x4063B020, 0x40648220, + 0x00000003, 0x4062C82C, 0x4063B020, 0x40648220, 0x00000003, 0x4062C82D, + 0x4063B020, 0x40648220, 0x00000003, 0x4062C82E, 0x4063B020, 0x40648220, + 0x00000003, 0x4062C82F, 0x4063B020, 0x40648220, 0x00000003, 0x4062C830, + 0x4063B020, 0x40648220, 0x00000003, 0x4062C831, 0x4063B020, 0x40648220, + 0x00000003, 0x4062C832, 0x4063B020, 0x40648220, 0x00000003, 0x4062C821, + 0x4063B020, 0x40648420, 0x00000003, 0x4062C822, 0x4063B020, 0x40648420, + 0x00000003, 0x4062C823, 0x4063B020, 0x40648420, 0x00000003, 0x4062C824, + 0x4063B020, 0x40648420, 0x00000003, 0x4062C825, 0x4063B020, 0x40648420, + 0x00000003, 0x4062C826, 0x4063B020, 0x40648420, + // Block 601, offset 0x9640 + 0x00000003, 0x4062C827, 0x4063B020, 0x40648420, 0x00000003, 0x4062C828, + 0x4063B020, 0x40648420, 0x00000003, 0x4062C829, 0x4063B020, 0x40648420, + 0x00000003, 0x4062C82A, 0x4063B020, 0x40648420, 0x00000003, 0x4062C82B, + 0x4063B020, 0x40648420, 0x00000003, 0x4062C82C, 0x4063B020, 0x40648420, + 0x00000003, 0x4062C82D, 0x4063B020, 0x40648420, 0x00000003, 0x4062C82E, + 0x4063B020, 0x40648420, 0x00000003, 0x4062C82F, 0x4063B020, 0x40648420, + 0x00000003, 0x4062C821, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C822, + 0x4063B020, 0x40648C20, 0x00000003, 0x4062C823, 0x4063B020, 0x40648C20, + 0x00000003, 0x4062C824, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C825, + 0x4063B020, 0x40648C20, 0x00000003, 0x4062C826, 0x4063B020, 0x40648C20, + 0x00000003, 0x4062C827, 0x4063B020, 0x40648C20, + // Block 602, offset 0x9680 + 0x00000003, 0x4062C828, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C829, + 0x4063B020, 0x40648C20, 0x00000003, 0x4062C82A, 0x4063B020, 0x40648C20, + 0x00000003, 0x4062C82B, 0x4063B020, 0x40648C20, 0x00000003, 0x4062C82C, + 0x4063B020, 0x40648C20, 0x00000002, 0x4062C821, 0x4063B220, 0x00000002, + 0x4062C822, 0x4063B220, 0x00000002, 0x4062C823, 0x4063B220, 0x00000002, + 0x4062C824, 0x4063B220, 0x00000002, 0x4062C825, 0x4063B220, 0x00000002, + 0x4062C826, 0x4063B220, 0x00000002, 0x4062C827, 0x4063B220, 0x00000002, + 0x4062C828, 0x4063B220, 0x00000002, 0x4062C829, 0x4063B220, 0x00000002, + 0x4062C82A, 0x4063B220, 0x00000002, 0x4062C82B, 0x4063B220, 0x00000002, + 0x4062C82C, 0x4063B220, 0x00000002, 0x4062C82D, 0x4063B220, 0x00000002, + 0x4062C82E, 0x4063B220, 0x00000002, 0x4062C82F, + // Block 603, offset 0x96c0 + 0x4063B220, 0x00000002, 0x4062C830, 0x4063B220, 0x00000002, 0x4062C831, + 0x4063B220, 0x00000002, 0x4062C832, 0x4063B220, 0x00000002, 0x4062C833, + 0x4063B220, 0x00000002, 0x4062C834, 0x4063B220, 0x00000002, 0x4062C821, + 0x4063B820, 0x00000002, 0x4062C822, 0x4063B820, 0x00000002, 0x4062C823, + 0x4063B820, 0x00000002, 0x4062C824, 0x4063B820, 0x00000002, 0x4062C825, + 0x4063B820, 0x00000002, 0x4062C826, 0x4063B820, 0x00000002, 0x4062C827, + 0x4063B820, 0x00000002, 0x4062C828, 0x4063B820, 0x00000002, 0x4062C829, + 0x4063B820, 0x00000002, 0x4062C82A, 0x4063B820, 0x00000002, 0x4062C82B, + 0x4063B820, 0x00000002, 0x4062C82C, 0x4063B820, 0x00000002, 0x4062C82D, + 0x4063B820, 0x00000002, 0x4062C82E, 0x4063B820, 0x00000002, 0x4062C82F, + 0x4063B820, 0x00000002, 0x4062C830, 0x4063B820, + // Block 604, offset 0x9700 + 0x00000002, 0x4062C831, 0x4063B820, 0x00000002, 0x4062C832, 0x4063B820, + 0x00000002, 0x4062C833, 0x4063B820, 0x00000002, 0x4062C834, 0x4063B820, + 0x00000002, 0x4062C835, 0x4063B820, 0x00000002, 0x4062C836, 0x4063B820, + 0x00000002, 0x4062C837, 0x4063B820, 0x00000002, 0x4062C838, 0x4063B820, + 0x00000002, 0x4062C839, 0x4063B820, 0x00000002, 0x4062C83A, 0x4063B820, + 0x00000002, 0x4062C83B, 0x4063B820, 0x00000002, 0x4062C83C, 0x4063B820, + 0x00000002, 0x4062C83D, 0x4063B820, 0x00000002, 0x4062C83E, 0x4063B820, + 0x00000002, 0x4062C83F, 0x4063B820, 0x00000002, 0x4062C840, 0x4063B820, + 0x00000002, 0x4062C841, 0x4063B820, 0x00000002, 0x4062C842, 0x4063B820, + 0x00000002, 0x4062C843, 0x4063B820, 0x00000002, 0x4062C844, 0x4063B820, + 0x00000002, 0x4062C845, 0x4063B820, 0x00000002, + // Block 605, offset 0x9740 + 0x4062C846, 0x4063B820, 0x00000002, 0x4062C847, 0x4063B820, 0x00000002, + 0x4062C848, 0x4063B820, 0x00000002, 0x4062C849, 0x4063B820, 0x00000002, + 0x4062C84A, 0x4063B820, 0x00000002, 0x4062C84B, 0x4063B820, 0x00000002, + 0x4062C84C, 0x4063B820, 0x00000002, 0x4062C84D, 0x4063B820, 0x00000002, + 0x4062C84E, 0x4063B820, 0x00000002, 0x4062C84F, 0x4063B820, 0x00000002, + 0x4062C850, 0x4063B820, 0x00000002, 0x4062C851, 0x4063B820, 0x00000002, + 0x4062C852, 0x4063B820, 0x00000002, 0x4062C853, 0x4063B820, 0x00000002, + 0x4062C854, 0x4063B820, 0x00000002, 0x4062C855, 0x4063B820, 0x00000002, + 0x4062C856, 0x4063B820, 0x00000002, 0x4062C857, 0x4063B820, 0x00000002, + 0x4062C858, 0x4063B820, 0x00000003, 0x4062C821, 0x4063B820, 0x40646420, + 0x00000003, 0x4062C822, 0x4063B820, 0x40646420, + // Block 606, offset 0x9780 + 0x00000003, 0x4062C823, 0x4063B820, 0x40646420, 0x00000003, 0x4062C824, + 0x4063B820, 0x40646420, 0x00000003, 0x4062C825, 0x4063B820, 0x40646420, + 0x00000003, 0x4062C826, 0x4063B820, 0x40646420, 0x00000003, 0x4062C827, + 0x4063B820, 0x40646420, 0x00000003, 0x4062C828, 0x4063B820, 0x40646420, + 0x00000003, 0x4062C829, 0x4063B820, 0x40646420, 0x00000003, 0x4062C82A, + 0x4063B820, 0x40646420, 0x00000003, 0x4062C82B, 0x4063B820, 0x40646420, + 0x00000003, 0x4062C82C, 0x4063B820, 0x40646420, 0x00000003, 0x4062C821, + 0x4063B820, 0x40646A20, 0x00000003, 0x4062C822, 0x4063B820, 0x40646A20, + 0x00000003, 0x4062C823, 0x4063B820, 0x40646A20, 0x00000003, 0x4062C824, + 0x4063B820, 0x40646A20, 0x00000003, 0x4062C825, 0x4063B820, 0x40646A20, + 0x00000003, 0x4062C821, 0x4063B820, 0x40648C20, + // Block 607, offset 0x97c0 + 0x00000003, 0x4062C822, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C823, + 0x4063B820, 0x40648C20, 0x00000003, 0x4062C824, 0x4063B820, 0x40648C20, + 0x00000003, 0x4062C825, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C826, + 0x4063B820, 0x40648C20, 0x00000003, 0x4062C827, 0x4063B820, 0x40648C20, + 0x00000003, 0x4062C828, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C829, + 0x4063B820, 0x40648C20, 0x00000003, 0x4062C82A, 0x4063B820, 0x40648C20, + 0x00000003, 0x4062C82B, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C82C, + 0x4063B820, 0x40648C20, 0x00000003, 0x4062C82D, 0x4063B820, 0x40648C20, + 0x00000003, 0x4062C82E, 0x4063B820, 0x40648C20, 0x00000003, 0x4062C82F, + 0x4063B820, 0x40648C20, 0x00000003, 0x4062C821, 0x4063BA20, 0x40647220, + 0x00000002, 0x4062C821, 0x4063BE20, 0x00000002, + // Block 608, offset 0x9800 + 0x4062C822, 0x4063BE20, 0x00000002, 0x4062C823, 0x4063BE20, 0x00000002, + 0x4062C824, 0x4063BE20, 0x00000002, 0x4062C825, 0x4063BE20, 0x00000002, + 0x4062C826, 0x4063BE20, 0x00000002, 0x4062C827, 0x4063BE20, 0x00000002, + 0x4062C828, 0x4063BE20, 0x00000002, 0x4062C829, 0x4063BE20, 0x00000002, + 0x4062C82A, 0x4063BE20, 0x00000002, 0x4062C82B, 0x4063BE20, 0x00000002, + 0x4062C821, 0x4063C220, 0x00000002, 0x4062C822, 0x4063C220, 0x00000002, + 0x4062C823, 0x4063C220, 0x00000002, 0x4062C824, 0x4063C220, 0x00000002, + 0x4062C825, 0x4063C220, 0x00000002, 0x4062C826, 0x4063C220, 0x00000002, + 0x4062C827, 0x4063C220, 0x00000002, 0x4062C828, 0x4063C220, 0x00000002, + 0x4062C829, 0x4063C220, 0x00000002, 0x4062C82A, 0x4063C220, 0x00000002, + 0x4062C82B, 0x4063C220, 0x00000002, 0x4062C82C, + // Block 609, offset 0x9840 + 0x4063C220, 0x00000002, 0x4062C82D, 0x4063C220, 0x00000002, 0x4062C82E, + 0x4063C220, 0x00000002, 0x4062C82F, 0x4063C220, 0x00000002, 0x4062C830, + 0x4063C220, 0x00000002, 0x4062C831, 0x4063C220, 0x00000002, 0x4062C832, + 0x4063C220, 0x00000002, 0x4062C833, 0x4063C220, 0x00000002, 0x4062C834, + 0x4063C220, 0x00000002, 0x4062C835, 0x4063C220, 0x00000002, 0x4062C836, + 0x4063C220, 0x00000002, 0x4062C837, 0x4063C220, 0x00000002, 0x4062C838, + 0x4063C220, 0x00000002, 0x4062C839, 0x4063C220, 0x00000002, 0x4062C83A, + 0x4063C220, 0x00000002, 0x4062C83B, 0x4063C220, 0x00000002, 0x4062C83C, + 0x4063C220, 0x00000002, 0x4062C83D, 0x4063C220, 0x00000002, 0x4062C83E, + 0x4063C220, 0x00000002, 0x4062C83F, 0x4063C220, 0x00000002, 0x4062C840, + 0x4063C220, 0x00000002, 0x4062C841, 0x4063C220, + // Block 610, offset 0x9880 + 0x00000002, 0x4062C842, 0x4063C220, 0x00000002, 0x4062C843, 0x4063C220, + 0x00000002, 0x4062C844, 0x4063C220, 0x00000002, 0x4062C845, 0x4063C220, + 0x00000002, 0x4062C846, 0x4063C220, 0x00000002, 0x4062C847, 0x4063C220, + 0x00000002, 0x4062C848, 0x4063C220, 0x00000002, 0x4062C849, 0x4063C220, + 0x00000002, 0x4062C84A, 0x4063C220, 0x00000002, 0x4062C84B, 0x4063C220, + 0x00000002, 0x4062C84C, 0x4063C220, 0x00000002, 0x4062C84D, 0x4063C220, + 0x00000002, 0x4062C84E, 0x4063C220, 0x00000002, 0x4062C84F, 0x4063C220, + 0x00000002, 0x4062C850, 0x4063C220, 0x00000002, 0x4062C851, 0x4063C220, + 0x00000002, 0x4062C852, 0x4063C220, 0x00000002, 0x4062C853, 0x4063C220, + 0x00000003, 0x4062C821, 0x4063C220, 0x40646420, 0x00000003, 0x4062C822, + 0x4063C220, 0x40646420, 0x00000003, 0x4062C823, + // Block 611, offset 0x98c0 + 0x4063C220, 0x40646420, 0x00000003, 0x4062C824, 0x4063C220, 0x40646420, + 0x00000003, 0x4062C825, 0x4063C220, 0x40646420, 0x00000003, 0x4062C826, + 0x4063C220, 0x40646420, 0x00000003, 0x4062C827, 0x4063C220, 0x40646420, + 0x00000003, 0x4062C828, 0x4063C220, 0x40646420, 0x00000003, 0x4062C829, + 0x4063C220, 0x40646420, 0x00000003, 0x4062C82A, 0x4063C220, 0x40646420, + 0x00000003, 0x4062C82B, 0x4063C220, 0x40646420, 0x00000003, 0x4062C82C, + 0x4063C220, 0x40646420, 0x00000003, 0x4062C82D, 0x4063C220, 0x40646420, + 0x00000003, 0x4062C82E, 0x4063C220, 0x40646420, 0x00000003, 0x4062C82F, + 0x4063C220, 0x40646420, 0x00000003, 0x4062C830, 0x4063C220, 0x40646420, + 0x00000003, 0x4062C831, 0x4063C220, 0x40646420, 0x00000003, 0x4062C821, + 0x4063C220, 0x40646A20, 0x00000003, 0x4062C822, + // Block 612, offset 0x9900 + 0x4063C220, 0x40646A20, 0x00000003, 0x4062C823, 0x4063C220, 0x40646A20, + 0x00000003, 0x4062C821, 0x4063C220, 0x40647220, 0x00000003, 0x4062C822, + 0x4063C220, 0x40647220, 0x00000003, 0x4062C823, 0x4063C220, 0x40647220, + 0x00000003, 0x4062C824, 0x4063C220, 0x40647220, 0x00000003, 0x4062C821, + 0x4063C220, 0x40648C20, 0x00000003, 0x4062C822, 0x4063C220, 0x40648C20, + 0x00000003, 0x4062C823, 0x4063C220, 0x40648C20, 0x00000003, 0x4062C824, + 0x4063C220, 0x40648C20, 0x00000003, 0x4062C825, 0x4063C220, 0x40648C20, + 0x00000003, 0x4062C826, 0x4063C220, 0x40648C20, 0x00000003, 0x4062C827, + 0x4063C220, 0x40648C20, 0x00000003, 0x4062C828, 0x4063C220, 0x40648C20, + 0x00000003, 0x4062C829, 0x4063C220, 0x40648C20, 0x00000002, 0x4062C821, + 0x4063C620, 0x00000002, 0x4062C822, 0x4063C620, + // Block 613, offset 0x9940 + 0x00000002, 0x4062C823, 0x4063C620, 0x00000002, 0x4062C824, 0x4063C620, + 0x00000002, 0x4062C825, 0x4063C620, 0x00000002, 0x4062C826, 0x4063C620, + 0x00000002, 0x4062C827, 0x4063C620, 0x00000002, 0x4062C828, 0x4063C620, + 0x00000002, 0x4062C829, 0x4063C620, 0x00000002, 0x4062C821, 0x4063C820, + 0x00000002, 0x4062C822, 0x4063C820, 0x00000002, 0x4062C823, 0x4063C820, + 0x00000002, 0x4062C824, 0x4063C820, 0x00000002, 0x4062C825, 0x4063C820, + 0x00000002, 0x4062C826, 0x4063C820, 0x00000002, 0x4062C827, 0x4063C820, + 0x00000002, 0x4062C828, 0x4063C820, 0x00000002, 0x4062C829, 0x4063C820, + 0x00000002, 0x4062C82A, 0x4063C820, 0x00000002, 0x4062C82B, 0x4063C820, + 0x00000002, 0x4062C82C, 0x4063C820, 0x00000002, 0x4062C82D, 0x4063C820, + 0x00000002, 0x4062C82E, 0x4063C820, 0x00000002, + // Block 614, offset 0x9980 + 0x4062C82F, 0x4063C820, 0x00000002, 0x4062C830, 0x4063C820, 0x00000002, + 0x4062C831, 0x4063C820, 0x00000003, 0x4062C821, 0x4063CC20, 0x40646420, + 0x00000003, 0x4062C822, 0x4063CC20, 0x40646420, 0x00000003, 0x4062C823, + 0x4063CC20, 0x40646420, 0x00000003, 0x4062C824, 0x4063CC20, 0x40646420, + 0x00000003, 0x4062C825, 0x4063CC20, 0x40646420, 0x00000003, 0x4062C826, + 0x4063CC20, 0x40646420, 0x00000003, 0x4062C827, 0x4063CC20, 0x40646420, + 0x00000003, 0x4062C821, 0x4063CC20, 0x40648C20, 0x00000002, 0x4062C821, + 0x4063D020, 0x00000002, 0x4062C822, 0x4063D020, 0x00000002, 0x4062C823, + 0x4063D020, 0x00000002, 0x4062C824, 0x4063D020, 0x00000002, 0x4062C825, + 0x4063D020, 0x00000002, 0x4062C826, 0x4063D020, 0x00000002, 0x4062C827, + 0x4063D020, 0x00000002, 0x4062C828, 0x4063D020, + // Block 615, offset 0x99c0 + 0x00000002, 0x4062C829, 0x4063D020, 0x00000002, 0x4062C82A, 0x4063D020, + 0x00000002, 0x4062C82B, 0x4063D020, 0x00000002, 0x4062C82C, 0x4063D020, + 0x00000002, 0x4062C82D, 0x4063D020, 0x00000002, 0x4062C82E, 0x4063D020, + 0x00000002, 0x4062C82F, 0x4063D020, 0x00000002, 0x4062C830, 0x4063D020, + 0x00000002, 0x4062C831, 0x4063D020, 0x00000002, 0x4062C832, 0x4063D020, + 0x00000002, 0x4062C833, 0x4063D020, 0x00000002, 0x4062C834, 0x4063D020, + 0x00000002, 0x4062C835, 0x4063D020, 0x00000002, 0x4062C836, 0x4063D020, + 0x00000002, 0x4062C837, 0x4063D020, 0x00000002, 0x4062C838, 0x4063D020, + 0x00000002, 0x4062C839, 0x4063D020, 0x00000002, 0x4062C83A, 0x4063D020, + 0x00000002, 0x4062C83B, 0x4063D020, 0x00000002, 0x4062C83C, 0x4063D020, + 0x00000002, 0x4062C83D, 0x4063D020, 0x00000002, + // Block 616, offset 0x9a00 + 0x4062C83E, 0x4063D020, 0x00000002, 0x4062C83F, 0x4063D020, 0x00000002, + 0x4062C840, 0x4063D020, 0x00000002, 0x4062C841, 0x4063D020, 0x00000002, + 0x4062C842, 0x4063D020, 0x00000002, 0x4062C843, 0x4063D020, 0x00000002, + 0x4062C844, 0x4063D020, 0x00000002, 0x4062C845, 0x4063D020, 0x00000002, + 0x4062C846, 0x4063D020, 0x00000002, 0x4062C847, 0x4063D020, 0x00000002, + 0x4062C848, 0x4063D020, 0x00000002, 0x4062C849, 0x4063D020, 0x00000002, + 0x4062C84A, 0x4063D020, 0x00000003, 0x4062C821, 0x4063D020, 0x40646420, + 0x00000003, 0x4062C822, 0x4063D020, 0x40646420, 0x00000003, 0x4062C823, + 0x4063D020, 0x40646420, 0x00000003, 0x4062C824, 0x4063D020, 0x40646420, + 0x00000003, 0x4062C821, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C822, + 0x4063D020, 0x40646A20, 0x00000003, 0x4062C823, + // Block 617, offset 0x9a40 + 0x4063D020, 0x40646A20, 0x00000003, 0x4062C824, 0x4063D020, 0x40646A20, + 0x00000003, 0x4062C825, 0x4063D020, 0x40646A20, 0x00000003, 0x4062C821, + 0x4063D020, 0x40647220, 0x00000003, 0x4062C822, 0x4063D020, 0x40647220, + 0x00000003, 0x4062C823, 0x4063D020, 0x40647220, 0x00000003, 0x4062C821, + 0x4063D020, 0x40648220, 0x00000003, 0x4062C822, 0x4063D020, 0x40648220, + 0x00000003, 0x4062C823, 0x4063D020, 0x40648220, 0x00000003, 0x4062C824, + 0x4063D020, 0x40648220, 0x00000003, 0x4062C825, 0x4063D020, 0x40648220, + 0x00000003, 0x4062C826, 0x4063D020, 0x40648220, 0x00000003, 0x4062C827, + 0x4063D020, 0x40648220, 0x00000003, 0x4062C828, 0x4063D020, 0x40648220, + 0x00000003, 0x4062C829, 0x4063D020, 0x40648220, 0x00000003, 0x4062C82A, + 0x4063D020, 0x40648220, 0x00000003, 0x4062C82B, + // Block 618, offset 0x9a80 + 0x4063D020, 0x40648220, 0x00000003, 0x4062C82C, 0x4063D020, 0x40648220, + 0x00000003, 0x4062C82D, 0x4063D020, 0x40648220, 0x00000003, 0x4062C82E, + 0x4063D020, 0x40648220, 0x00000003, 0x4062C82F, 0x4063D020, 0x40648220, + 0x00000003, 0x4062C830, 0x4063D020, 0x40648220, 0x00000003, 0x4062C821, + 0x4063D020, 0x40648420, 0x00000003, 0x4062C821, 0x4063D020, 0x40648C20, + 0x00000003, 0x4062C822, 0x4063D020, 0x40648C20, 0x00000002, 0x4062CA21, + 0x4063BC20, 0x00000002, 0x4062CA22, 0x4063BC20, 0x00000002, 0x4062CA23, + 0x4063BC20, 0x00000002, 0x4062CC21, 0x4063A820, 0x00000002, 0x4062CC22, + 0x4063A820, 0x00000002, 0x4062CC23, 0x4063A820, 0x00000002, 0x4062CC24, + 0x4063A820, 0x00000002, 0x4062CC25, 0x4063A820, 0x00000002, 0x4062CC26, + 0x4063A820, 0x00000002, 0x4062CC27, 0x4063A820, + // Block 619, offset 0x9ac0 + 0x00000002, 0x4062CC28, 0x4063A820, 0x00000002, 0x4062CC29, 0x4063A820, + 0x00000002, 0x4062CC2A, 0x4063A820, 0x00000002, 0x4062CC2B, 0x4063A820, + 0x00000002, 0x4062CC2C, 0x4063A820, 0x00000002, 0x4062CC2D, 0x4063A820, + 0x00000002, 0x4062CC2E, 0x4063A820, 0x00000002, 0x4062CC2F, 0x4063A820, + 0x00000002, 0x4062CC30, 0x4063A820, 0x00000002, 0x4062CC31, 0x4063A820, + 0x00000002, 0x4062CC32, 0x4063A820, 0x00000002, 0x4062CC33, 0x4063A820, + 0x00000002, 0x4062CC34, 0x4063A820, 0x00000002, 0x4062CC35, 0x4063A820, + 0x00000002, 0x4062CC36, 0x4063A820, 0x00000002, 0x4062CC37, 0x4063A820, + 0x00000002, 0x4062CC38, 0x4063A820, 0x00000002, 0x4062CC39, 0x4063A820, + 0x00000002, 0x4062CC3A, 0x4063A820, 0x00000002, 0x4062CC3B, 0x4063A820, + 0x00000003, 0x4062CC21, 0x4063A820, 0x40646420, + // Block 620, offset 0x9b00 + 0x00000003, 0x4062CC22, 0x4063A820, 0x40646420, 0x00000003, 0x4062CC23, + 0x4063A820, 0x40646420, 0x00000003, 0x4062CC24, 0x4063A820, 0x40646420, + 0x00000003, 0x4062CC25, 0x4063A820, 0x40646420, 0x00000003, 0x4062CC26, + 0x4063A820, 0x40646420, 0x00000003, 0x4062CC27, 0x4063A820, 0x40646420, + 0x00000003, 0x4062CC28, 0x4063A820, 0x40646420, 0x00000003, 0x4062CC29, + 0x4063A820, 0x40646420, 0x00000003, 0x4062CC2A, 0x4063A820, 0x40646420, + 0x00000003, 0x4062CC2B, 0x4063A820, 0x40646420, 0x00000003, 0x4062CC2C, + 0x4063A820, 0x40646420, 0x00000003, 0x4062CC2D, 0x4063A820, 0x40646420, + 0x00000003, 0x4062CC2E, 0x4063A820, 0x40646420, 0x00000003, 0x4062CC2F, + 0x4063A820, 0x40646420, 0x00000003, 0x4062CC30, 0x4063A820, 0x40646420, + 0x00000003, 0x4062CC31, 0x4063A820, 0x40646420, + // Block 621, offset 0x9b40 + 0x00000003, 0x4062CC32, 0x4063A820, 0x40646420, 0x00000003, 0x4062CC33, + 0x4063A820, 0x40646420, 0x00000003, 0x4062CC34, 0x4063A820, 0x40646420, + 0x00000003, 0x4062CC35, 0x4063A820, 0x40646420, 0x00000003, 0x4062CC36, + 0x4063A820, 0x40646420, 0x00000003, 0x4062CC37, 0x4063A820, 0x40646420, + 0x00000003, 0x4062CC21, 0x4063A820, 0x40646A20, 0x00000003, 0x4062CC22, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062CC23, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062CC24, 0x4063A820, 0x40646A20, 0x00000003, 0x4062CC25, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062CC26, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062CC27, 0x4063A820, 0x40646A20, 0x00000003, 0x4062CC28, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062CC29, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062CC2A, 0x4063A820, 0x40646A20, + // Block 622, offset 0x9b80 + 0x00000003, 0x4062CC2B, 0x4063A820, 0x40646A20, 0x00000003, 0x4062CC2C, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062CC2D, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062CC2E, 0x4063A820, 0x40646A20, 0x00000003, 0x4062CC2F, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062CC21, 0x4063A820, 0x40647220, + 0x00000003, 0x4062CC22, 0x4063A820, 0x40647220, 0x00000003, 0x4062CC23, + 0x4063A820, 0x40647220, 0x00000003, 0x4062CC21, 0x4063A820, 0x40648220, + 0x00000003, 0x4062CC22, 0x4063A820, 0x40648220, 0x00000003, 0x4062CC23, + 0x4063A820, 0x40648220, 0x00000003, 0x4062CC24, 0x4063A820, 0x40648220, + 0x00000003, 0x4062CC25, 0x4063A820, 0x40648220, 0x00000003, 0x4062CC26, + 0x4063A820, 0x40648220, 0x00000003, 0x4062CC27, 0x4063A820, 0x40648220, + 0x00000003, 0x4062CC21, 0x4063A820, 0x40648420, + // Block 623, offset 0x9bc0 + 0x00000003, 0x4062CC22, 0x4063A820, 0x40648420, 0x00000003, 0x4062CC23, + 0x4063A820, 0x40648420, 0x00000003, 0x4062CC24, 0x4063A820, 0x40648420, + 0x00000003, 0x4062CC25, 0x4063A820, 0x40648420, 0x00000003, 0x4062CC26, + 0x4063A820, 0x40648420, 0x00000003, 0x4062CC21, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062CC22, 0x4063A820, 0x40648C20, 0x00000003, 0x4062CC23, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062CC24, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062CC25, 0x4063A820, 0x40648C20, 0x00000003, 0x4062CC26, + 0x4063A820, 0x40648C20, 0x00000003, 0x4062CC27, 0x4063A820, 0x40648C20, + 0x00000003, 0x4062CC28, 0x4063A820, 0x40648C20, 0x00000002, 0x4062CC21, + 0x4063AA20, 0x00000002, 0x4062CC22, 0x4063AA20, 0x00000002, 0x4062CC23, + 0x4063AA20, 0x00000002, 0x4062CC24, 0x4063AA20, + // Block 624, offset 0x9c00 + 0x00000002, 0x4062CC25, 0x4063AA20, 0x00000002, 0x4062CC26, 0x4063AA20, + 0x00000002, 0x4062CC27, 0x4063AA20, 0x00000002, 0x4062CC28, 0x4063AA20, + 0x00000002, 0x4062CC29, 0x4063AA20, 0x00000002, 0x4062CC2A, 0x4063AA20, + 0x00000002, 0x4062CC2B, 0x4063AA20, 0x00000002, 0x4062CC2C, 0x4063AA20, + 0x00000002, 0x4062CC2D, 0x4063AA20, 0x00000002, 0x4062CC2E, 0x4063AA20, + 0x00000002, 0x4062CC2F, 0x4063AA20, 0x00000002, 0x4062CC30, 0x4063AA20, + 0x00000002, 0x4062CC31, 0x4063AA20, 0x00000002, 0x4062CC32, 0x4063AA20, + 0x00000002, 0x4062CC33, 0x4063AA20, 0x00000002, 0x4062CC34, 0x4063AA20, + 0x00000002, 0x4062CC35, 0x4063AA20, 0x00000003, 0x4062CC21, 0x4063AA20, + 0x40646420, 0x00000003, 0x4062CC22, 0x4063AA20, 0x40646420, 0x00000003, + 0x4062CC21, 0x4063AA20, 0x40648C20, 0x00000003, + // Block 625, offset 0x9c40 + 0x4062CC22, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062CC23, 0x4063AA20, + 0x40648C20, 0x00000002, 0x4062CC21, 0x4063B020, 0x00000002, 0x4062CC21, + 0x4063B820, 0x00000002, 0x4062CC22, 0x4063B820, 0x00000002, 0x4062CC23, + 0x4063B820, 0x00000002, 0x4062CC24, 0x4063B820, 0x00000003, 0x4062CC21, + 0x4063B820, 0x40646A20, 0x00000003, 0x4062CC22, 0x4063B820, 0x40646A20, + 0x00000003, 0x4062CC23, 0x4063B820, 0x40646A20, 0x00000003, 0x4062CC21, + 0x4063B820, 0x40648C20, 0x00000003, 0x4062CC22, 0x4063B820, 0x40648C20, + 0x00000003, 0x4062CC23, 0x4063B820, 0x40648C20, 0x00000003, 0x4062CC24, + 0x4063B820, 0x40648C20, 0x00000003, 0x4062CC25, 0x4063B820, 0x40648C20, + 0x00000003, 0x4062CC26, 0x4063B820, 0x40648C20, 0x00000003, 0x4062CC27, + 0x4063B820, 0x40648C20, 0x00000003, 0x4062CC28, + // Block 626, offset 0x9c80 + 0x4063B820, 0x40648C20, 0x00000003, 0x4062CC29, 0x4063B820, 0x40648C20, + 0x00000002, 0x4062CC21, 0x4063BE20, 0x00000002, 0x4062CC22, 0x4063BE20, + 0x00000002, 0x4062CC23, 0x4063BE20, 0x00000002, 0x4062CC24, 0x4063BE20, + 0x00000002, 0x4062CC25, 0x4063BE20, 0x00000002, 0x4062CC26, 0x4063BE20, + 0x00000002, 0x4062CC27, 0x4063BE20, 0x00000002, 0x4062CC21, 0x4063C220, + 0x00000002, 0x4062CC22, 0x4063C220, 0x00000002, 0x4062CC23, 0x4063C220, + 0x00000002, 0x4062CC24, 0x4063C220, 0x00000002, 0x4062CC25, 0x4063C220, + 0x00000002, 0x4062CC26, 0x4063C220, 0x00000002, 0x4062CC27, 0x4063C220, + 0x00000002, 0x4062CC28, 0x4063C220, 0x00000002, 0x4062CC29, 0x4063C220, + 0x00000003, 0x4062CC21, 0x4063C220, 0x40648C20, 0x00000003, 0x4062CC21, + 0x4063CC20, 0x40646420, 0x00000003, 0x4062CC22, + // Block 627, offset 0x9cc0 + 0x4063CC20, 0x40646420, 0x00000003, 0x4062CC23, 0x4063CC20, 0x40646420, + 0x00000003, 0x4062CC21, 0x4063CC20, 0x40648220, 0x00000002, 0x4062CE21, + 0x4063A820, 0x00000002, 0x4062CE22, 0x4063A820, 0x00000002, 0x4062CE23, + 0x4063A820, 0x00000002, 0x4062CE24, 0x4063A820, 0x00000002, 0x4062CE25, + 0x4063A820, 0x00000002, 0x4062CE26, 0x4063A820, 0x00000002, 0x4062CE27, + 0x4063A820, 0x00000002, 0x4062CE28, 0x4063A820, 0x00000002, 0x4062CE29, + 0x4063A820, 0x00000002, 0x4062CE2A, 0x4063A820, 0x00000002, 0x4062CE2B, + 0x4063A820, 0x00000002, 0x4062CE2C, 0x4063A820, 0x00000002, 0x4062CE2D, + 0x4063A820, 0x00000002, 0x4062CE2E, 0x4063A820, 0x00000002, 0x4062CE2F, + 0x4063A820, 0x00000002, 0x4062CE30, 0x4063A820, 0x00000002, 0x4062CE31, + 0x4063A820, 0x00000002, 0x4062CE32, 0x4063A820, + // Block 628, offset 0x9d00 + 0x00000002, 0x4062CE33, 0x4063A820, 0x00000002, 0x4062CE34, 0x4063A820, + 0x00000002, 0x4062CE35, 0x4063A820, 0x00000002, 0x4062CE36, 0x4063A820, + 0x00000002, 0x4062CE37, 0x4063A820, 0x00000002, 0x4062CE38, 0x4063A820, + 0x00000002, 0x4062CE39, 0x4063A820, 0x00000002, 0x4062CE3A, 0x4063A820, + 0x00000002, 0x4062CE3B, 0x4063A820, 0x00000002, 0x4062CE3C, 0x4063A820, + 0x00000002, 0x4062CE3D, 0x4063A820, 0x00000002, 0x4062CE3E, 0x4063A820, + 0x00000003, 0x4062CE21, 0x4063A820, 0x40646A20, 0x00000003, 0x4062CE22, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062CE23, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062CE24, 0x4063A820, 0x40646A20, 0x00000003, 0x4062CE25, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062CE26, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062CE27, 0x4063A820, 0x40646A20, + // Block 629, offset 0x9d40 + 0x00000003, 0x4062CE28, 0x4063A820, 0x40646A20, 0x00000003, 0x4062CE29, + 0x4063A820, 0x40646A20, 0x00000003, 0x4062CE2A, 0x4063A820, 0x40646A20, + 0x00000003, 0x4062CE21, 0x4063A820, 0x40647220, 0x00000003, 0x4062CE22, + 0x4063A820, 0x40647220, 0x00000003, 0x4062CE23, 0x4063A820, 0x40647220, + 0x00000003, 0x4062CE24, 0x4063A820, 0x40647220, 0x00000003, 0x4062CE25, + 0x4063A820, 0x40647220, 0x00000002, 0x4062CE21, 0x4063AA20, 0x00000002, + 0x4062CE22, 0x4063AA20, 0x00000002, 0x4062CE23, 0x4063AA20, 0x00000002, + 0x4062CE24, 0x4063AA20, 0x00000002, 0x4062CE25, 0x4063AA20, 0x00000002, + 0x4062CE26, 0x4063AA20, 0x00000002, 0x4062CE27, 0x4063AA20, 0x00000002, + 0x4062CE28, 0x4063AA20, 0x00000002, 0x4062CE29, 0x4063AA20, 0x00000002, + 0x4062CE2A, 0x4063AA20, 0x00000002, 0x4062CE2B, + // Block 630, offset 0x9d80 + 0x4063AA20, 0x00000002, 0x4062CE2C, 0x4063AA20, 0x00000002, 0x4062CE2D, + 0x4063AA20, 0x00000002, 0x4062CE2E, 0x4063AA20, 0x00000002, 0x4062CE2F, + 0x4063AA20, 0x00000002, 0x4062CE30, 0x4063AA20, 0x00000003, 0x4062CE21, + 0x4063AA20, 0x40648C20, 0x00000003, 0x4062CE22, 0x4063AA20, 0x40648C20, + 0x00000003, 0x4062CE23, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062CE24, + 0x4063AA20, 0x40648C20, 0x00000003, 0x4062CE25, 0x4063AA20, 0x40648C20, + 0x00000003, 0x4062CE26, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062CE27, + 0x4063AA20, 0x40648C20, 0x00000003, 0x4062CE28, 0x4063AA20, 0x40648C20, + 0x00000003, 0x4062CE21, 0x4063AC20, 0x40646420, 0x00000003, 0x4062CE21, + 0x4063B420, 0x40646A20, 0x00000003, 0x4062CE22, 0x4063B420, 0x40646A20, + 0x00000003, 0x4062CE23, 0x4063B420, 0x40646A20, + // Block 631, offset 0x9dc0 + 0x00000003, 0x4062CE24, 0x4063B420, 0x40646A20, 0x00000003, 0x4062CE25, + 0x4063B420, 0x40646A20, 0x00000003, 0x4062CE26, 0x4063B420, 0x40646A20, + 0x00000003, 0x4062CE27, 0x4063B420, 0x40646A20, 0x00000003, 0x4062CE28, + 0x4063B420, 0x40646A20, 0x00000003, 0x4062CE29, 0x4063B420, 0x40646A20, + 0x00000003, 0x4062CE2A, 0x4063B420, 0x40646A20, 0x00000003, 0x4062CE2B, + 0x4063B420, 0x40646A20, 0x00000003, 0x4062CE2C, 0x4063B420, 0x40646A20, + 0x00000003, 0x4062CE2D, 0x4063B420, 0x40646A20, 0x00000003, 0x4062CE2E, + 0x4063B420, 0x40646A20, 0x00000003, 0x4062CE2F, 0x4063B420, 0x40646A20, + 0x00000003, 0x4062CE30, 0x4063B420, 0x40646A20, 0x00000003, 0x4062CE31, + 0x4063B420, 0x40646A20, 0x00000003, 0x4062CE32, 0x4063B420, 0x40646A20, + 0x00000003, 0x4062CE33, 0x4063B420, 0x40646A20, + // Block 632, offset 0x9e00 + 0x00000003, 0x4062CE21, 0x4063B420, 0x40648220, 0x00000003, 0x4062CE22, + 0x4063B420, 0x40648220, 0x00000003, 0x4062CE23, 0x4063B420, 0x40648220, + 0x00000003, 0x4062CE21, 0x4063B420, 0x40648C20, 0x00000003, 0x4062CE22, + 0x4063B420, 0x40648C20, 0x00000003, 0x4062CE23, 0x4063B420, 0x40648C20, + 0x00000003, 0x4062CE24, 0x4063B420, 0x40648C20, 0x00000003, 0x4062CE25, + 0x4063B420, 0x40648C20, 0x00000003, 0x4062CE26, 0x4063B420, 0x40648C20, + 0x00000003, 0x4062CE27, 0x4063B420, 0x40648C20, 0x00000003, 0x4062CE28, + 0x4063B420, 0x40648C20, 0x00000003, 0x4062CE29, 0x4063B420, 0x40648C20, + 0x00000003, 0x4062CE2A, 0x4063B420, 0x40648C20, 0x00000003, 0x4062CE2B, + 0x4063B420, 0x40648C20, 0x00000002, 0x4062CE21, 0x4063B620, 0x00000002, + 0x4062CE22, 0x4063B620, 0x00000002, 0x4062CE23, + // Block 633, offset 0x9e40 + 0x4063B620, 0x00000002, 0x4062CE24, 0x4063B620, 0x00000002, 0x4062CE25, + 0x4063B620, 0x00000002, 0x4062CE26, 0x4063B620, 0x00000002, 0x4062CE27, + 0x4063B620, 0x00000002, 0x4062CE28, 0x4063B620, 0x00000002, 0x4062CE29, + 0x4063B620, 0x00000002, 0x4062CE2A, 0x4063B620, 0x00000002, 0x4062CE2B, + 0x4063B620, 0x00000002, 0x4062CE2C, 0x4063B620, 0x00000002, 0x4062CE2D, + 0x4063B620, 0x00000002, 0x4062CE2E, 0x4063B620, 0x00000002, 0x4062CE21, + 0x4063B820, 0x00000002, 0x4062CE22, 0x4063B820, 0x00000002, 0x4062CE23, + 0x4063B820, 0x00000002, 0x4062CE24, 0x4063B820, 0x00000002, 0x4062CE25, + 0x4063B820, 0x00000002, 0x4062CE26, 0x4063B820, 0x00000002, 0x4062CE27, + 0x4063B820, 0x00000002, 0x4062CE28, 0x4063B820, 0x00000002, 0x4062CE29, + 0x4063B820, 0x00000002, 0x4062CE2A, 0x4063B820, + // Block 634, offset 0x9e80 + 0x00000002, 0x4062CE2B, 0x4063B820, 0x00000002, 0x4062CE2C, 0x4063B820, + 0x00000002, 0x4062CE2D, 0x4063B820, 0x00000002, 0x4062CE2E, 0x4063B820, + 0x00000002, 0x4062CE2F, 0x4063B820, 0x00000002, 0x4062CE30, 0x4063B820, + 0x00000002, 0x4062CE31, 0x4063B820, 0x00000002, 0x4062CE32, 0x4063B820, + 0x00000002, 0x4062CE33, 0x4063B820, 0x00000002, 0x4062CE34, 0x4063B820, + 0x00000002, 0x4062CE35, 0x4063B820, 0x00000002, 0x4062CE36, 0x4063B820, + 0x00000002, 0x4062CE37, 0x4063B820, 0x00000002, 0x4062CE38, 0x4063B820, + 0x00000002, 0x4062CE39, 0x4063B820, 0x00000002, 0x4062CE3A, 0x4063B820, + 0x00000002, 0x4062CE3B, 0x4063B820, 0x00000002, 0x4062CE3C, 0x4063B820, + 0x00000002, 0x4062CE3D, 0x4063B820, 0x00000002, 0x4062CE3E, 0x4063B820, + 0x00000002, 0x4062CE3F, 0x4063B820, 0x00000002, + // Block 635, offset 0x9ec0 + 0x4062CE40, 0x4063B820, 0x00000002, 0x4062CE41, 0x4063B820, 0x00000002, + 0x4062CE42, 0x4063B820, 0x00000002, 0x4062CE43, 0x4063B820, 0x00000002, + 0x4062CE44, 0x4063B820, 0x00000002, 0x4062CE45, 0x4063B820, 0x00000002, + 0x4062CE46, 0x4063B820, 0x00000002, 0x4062CE47, 0x4063B820, 0x00000003, + 0x4062CE21, 0x4063B820, 0x40646420, 0x00000003, 0x4062CE22, 0x4063B820, + 0x40646420, 0x00000003, 0x4062CE23, 0x4063B820, 0x40646420, 0x00000003, + 0x4062CE24, 0x4063B820, 0x40646420, 0x00000003, 0x4062CE25, 0x4063B820, + 0x40646420, 0x00000002, 0x4062CE21, 0x4063C020, 0x00000002, 0x4062CE22, + 0x4063C020, 0x00000002, 0x4062CE23, 0x4063C020, 0x00000002, 0x4062CE24, + 0x4063C020, 0x00000002, 0x4062CE25, 0x4063C020, 0x00000002, 0x4062CE26, + 0x4063C020, 0x00000002, 0x4062CE27, 0x4063C020, + // Block 636, offset 0x9f00 + 0x00000002, 0x4062CE28, 0x4063C020, 0x00000002, 0x4062CE29, 0x4063C020, + 0x00000002, 0x4062CE2A, 0x4063C020, 0x00000002, 0x4062CE2B, 0x4063C020, + 0x00000002, 0x4062CE2C, 0x4063C020, 0x00000002, 0x4062CE2D, 0x4063C020, + 0x00000002, 0x4062CE2E, 0x4063C020, 0x00000002, 0x4062CE2F, 0x4063C020, + 0x00000002, 0x4062CE30, 0x4063C020, 0x00000002, 0x4062CE31, 0x4063C020, + 0x00000002, 0x4062CE32, 0x4063C020, 0x00000002, 0x4062CE33, 0x4063C020, + 0x00000002, 0x4062CE34, 0x4063C020, 0x00000002, 0x4062CE35, 0x4063C020, + 0x00000002, 0x4062CE36, 0x4063C020, 0x00000002, 0x4062CE37, 0x4063C020, + 0x00000002, 0x4062CE38, 0x4063C020, 0x00000002, 0x4062CE39, 0x4063C020, + 0x00000002, 0x4062CE3A, 0x4063C020, 0x00000002, 0x4062CE3B, 0x4063C020, + 0x00000003, 0x4062CE21, 0x4063C220, 0x40648220, + // Block 637, offset 0x9f40 + 0x00000003, 0x4062CE22, 0x4063C220, 0x40648220, 0x00000003, 0x4062CE23, + 0x4063C220, 0x40648220, 0x00000003, 0x4062CE21, 0x4063C220, 0x40648C20, + 0x00000003, 0x4062CE22, 0x4063C220, 0x40648C20, 0x00000003, 0x4062CE23, + 0x4063C220, 0x40648C20, 0x00000003, 0x4062CE24, 0x4063C220, 0x40648C20, + 0x00000003, 0x4062CE25, 0x4063C220, 0x40648C20, 0x00000003, 0x4062CE26, + 0x4063C220, 0x40648C20, 0x00000003, 0x4062CE27, 0x4063C220, 0x40648C20, + 0x00000002, 0x4062CE21, 0x4063D020, 0x00000002, 0x4062CE22, 0x4063D020, + 0x00000002, 0x4062CE23, 0x4063D020, 0x00000002, 0x4062CE24, 0x4063D020, + 0x00000002, 0x4062CE25, 0x4063D020, 0x00000002, 0x4062CE26, 0x4063D020, + 0x00000002, 0x4062CE27, 0x4063D020, 0x00000002, 0x4062CE28, 0x4063D020, + 0x00000002, 0x4062CE29, 0x4063D020, 0x00000002, + // Block 638, offset 0x9f80 + 0x4062CE2A, 0x4063D020, 0x00000002, 0x4062CE2B, 0x4063D020, 0x00000003, + 0x4062CE21, 0x4063D020, 0x40646420, 0x00000003, 0x4062CE21, 0x4063D020, + 0x40647220, 0x00000003, 0x4062CE22, 0x4063D020, 0x40647220, 0x00000003, + 0x4062CE23, 0x4063D020, 0x40647220, 0x00000003, 0x4062CE24, 0x4063D020, + 0x40647220, 0x00000003, 0x4062CE25, 0x4063D020, 0x40647220, 0x00000003, + 0x4062CE26, 0x4063D020, 0x40647220, 0x00000003, 0x4062CE27, 0x4063D020, + 0x40647220, 0x00000003, 0x4062CE28, 0x4063D020, 0x40647220, 0x00000003, + 0x4062CE29, 0x4063D020, 0x40647220, 0x00000003, 0x4062CE2A, 0x4063D020, + 0x40647220, 0x00000003, 0x4062CE2B, 0x4063D020, 0x40647220, 0x00000003, + 0x4062CE2C, 0x4063D020, 0x40647220, 0x00000003, 0x4062CE2D, 0x4063D020, + 0x40647220, 0x00000003, 0x4062CE2E, 0x4063D020, + // Block 639, offset 0x9fc0 + 0x40647220, 0x00000003, 0x4062CE2F, 0x4063D020, 0x40647220, 0x00000003, + 0x4062CE30, 0x4063D020, 0x40647220, 0x00000003, 0x4062CE31, 0x4063D020, + 0x40647220, 0x00000003, 0x4062CE32, 0x4063D020, 0x40647220, 0x00000003, + 0x4062CE33, 0x4063D020, 0x40647220, 0x00000003, 0x4062CE34, 0x4063D020, + 0x40647220, 0x00000003, 0x4062CE35, 0x4063D020, 0x40647220, 0x00000003, + 0x4062CE36, 0x4063D020, 0x40647220, 0x00000003, 0x4062CE21, 0x4063D020, + 0x40648420, 0x00000003, 0x4062CE22, 0x4063D020, 0x40648420, 0x00000003, + 0x4062CE23, 0x4063D020, 0x40648420, 0x00000002, 0x4062D021, 0x4063A820, + 0x00000002, 0x4062D022, 0x4063A820, 0x00000002, 0x4062D023, 0x4063A820, + 0x00000002, 0x4062D024, 0x4063A820, 0x00000002, 0x4062D025, 0x4063A820, + 0x00000002, 0x4062D026, 0x4063A820, 0x00000002, + // Block 640, offset 0xa000 + 0x4062D027, 0x4063A820, 0x00000002, 0x4062D028, 0x4063A820, 0x00000002, + 0x4062D029, 0x4063A820, 0x00000002, 0x4062D02A, 0x4063A820, 0x00000002, + 0x4062D02B, 0x4063A820, 0x00000002, 0x4062D02C, 0x4063A820, 0x00000002, + 0x4062D02D, 0x4063A820, 0x00000002, 0x4062D02E, 0x4063A820, 0x00000002, + 0x4062D02F, 0x4063A820, 0x00000002, 0x4062D030, 0x4063A820, 0x00000002, + 0x4062D031, 0x4063A820, 0x00000002, 0x4062D032, 0x4063A820, 0x00000002, + 0x4062D033, 0x4063A820, 0x00000002, 0x4062D034, 0x4063A820, 0x00000002, + 0x4062D035, 0x4063A820, 0x00000002, 0x4062D036, 0x4063A820, 0x00000003, + 0x4062D021, 0x4063A820, 0x40646420, 0x00000003, 0x4062D022, 0x4063A820, + 0x40646420, 0x00000003, 0x4062D023, 0x4063A820, 0x40646420, 0x00000003, + 0x4062D024, 0x4063A820, 0x40646420, 0x00000003, + // Block 641, offset 0xa040 + 0x4062D025, 0x4063A820, 0x40646420, 0x00000003, 0x4062D026, 0x4063A820, + 0x40646420, 0x00000003, 0x4062D027, 0x4063A820, 0x40646420, 0x00000003, + 0x4062D028, 0x4063A820, 0x40646420, 0x00000003, 0x4062D029, 0x4063A820, + 0x40646420, 0x00000003, 0x4062D02A, 0x4063A820, 0x40646420, 0x00000003, + 0x4062D02B, 0x4063A820, 0x40646420, 0x00000003, 0x4062D021, 0x4063A820, + 0x40646A20, 0x00000003, 0x4062D022, 0x4063A820, 0x40646A20, 0x00000003, + 0x4062D023, 0x4063A820, 0x40646A20, 0x00000003, 0x4062D024, 0x4063A820, + 0x40646A20, 0x00000003, 0x4062D025, 0x4063A820, 0x40646A20, 0x00000003, + 0x4062D026, 0x4063A820, 0x40646A20, 0x00000003, 0x4062D027, 0x4063A820, + 0x40646A20, 0x00000003, 0x4062D028, 0x4063A820, 0x40646A20, 0x00000003, + 0x4062D029, 0x4063A820, 0x40646A20, 0x00000003, + // Block 642, offset 0xa080 + 0x4062D02A, 0x4063A820, 0x40646A20, 0x00000003, 0x4062D02B, 0x4063A820, + 0x40646A20, 0x00000003, 0x4062D02C, 0x4063A820, 0x40646A20, 0x00000003, + 0x4062D02D, 0x4063A820, 0x40646A20, 0x00000003, 0x4062D02E, 0x4063A820, + 0x40646A20, 0x00000003, 0x4062D02F, 0x4063A820, 0x40646A20, 0x00000003, + 0x4062D030, 0x4063A820, 0x40646A20, 0x00000003, 0x4062D031, 0x4063A820, + 0x40646A20, 0x00000003, 0x4062D032, 0x4063A820, 0x40646A20, 0x00000003, + 0x4062D033, 0x4063A820, 0x40646A20, 0x00000003, 0x4062D034, 0x4063A820, + 0x40646A20, 0x00000003, 0x4062D035, 0x4063A820, 0x40646A20, 0x00000003, + 0x4062D036, 0x4063A820, 0x40646A20, 0x00000003, 0x4062D037, 0x4063A820, + 0x40646A20, 0x00000003, 0x4062D021, 0x4063A820, 0x40647220, 0x00000003, + 0x4062D022, 0x4063A820, 0x40647220, 0x00000003, + // Block 643, offset 0xa0c0 + 0x4062D023, 0x4063A820, 0x40647220, 0x00000003, 0x4062D021, 0x4063A820, + 0x40648220, 0x00000003, 0x4062D022, 0x4063A820, 0x40648220, 0x00000003, + 0x4062D023, 0x4063A820, 0x40648220, 0x00000003, 0x4062D024, 0x4063A820, + 0x40648220, 0x00000003, 0x4062D025, 0x4063A820, 0x40648220, 0x00000003, + 0x4062D026, 0x4063A820, 0x40648220, 0x00000003, 0x4062D027, 0x4063A820, + 0x40648220, 0x00000003, 0x4062D028, 0x4063A820, 0x40648220, 0x00000003, + 0x4062D029, 0x4063A820, 0x40648220, 0x00000003, 0x4062D02A, 0x4063A820, + 0x40648220, 0x00000003, 0x4062D02B, 0x4063A820, 0x40648220, 0x00000003, + 0x4062D02C, 0x4063A820, 0x40648220, 0x00000003, 0x4062D02D, 0x4063A820, + 0x40648220, 0x00000003, 0x4062D02E, 0x4063A820, 0x40648220, 0x00000003, + 0x4062D02F, 0x4063A820, 0x40648220, 0x00000003, + // Block 644, offset 0xa100 + 0x4062D030, 0x4063A820, 0x40648220, 0x00000003, 0x4062D031, 0x4063A820, + 0x40648220, 0x00000003, 0x4062D021, 0x4063A820, 0x40648420, 0x00000003, + 0x4062D022, 0x4063A820, 0x40648420, 0x00000003, 0x4062D023, 0x4063A820, + 0x40648420, 0x00000003, 0x4062D024, 0x4063A820, 0x40648420, 0x00000003, + 0x4062D025, 0x4063A820, 0x40648420, 0x00000003, 0x4062D026, 0x4063A820, + 0x40648420, 0x00000003, 0x4062D027, 0x4063A820, 0x40648420, 0x00000003, + 0x4062D028, 0x4063A820, 0x40648420, 0x00000003, 0x4062D029, 0x4063A820, + 0x40648420, 0x00000003, 0x4062D02A, 0x4063A820, 0x40648420, 0x00000003, + 0x4062D02B, 0x4063A820, 0x40648420, 0x00000003, 0x4062D02C, 0x4063A820, + 0x40648420, 0x00000003, 0x4062D02D, 0x4063A820, 0x40648420, 0x00000003, + 0x4062D02E, 0x4063A820, 0x40648420, 0x00000003, + // Block 645, offset 0xa140 + 0x4062D021, 0x4063A820, 0x40648C20, 0x00000003, 0x4062D022, 0x4063A820, + 0x40648C20, 0x00000003, 0x4062D023, 0x4063A820, 0x40648C20, 0x00000003, + 0x4062D024, 0x4063A820, 0x40648C20, 0x00000003, 0x4062D025, 0x4063A820, + 0x40648C20, 0x00000003, 0x4062D026, 0x4063A820, 0x40648C20, 0x00000003, + 0x4062D027, 0x4063A820, 0x40648C20, 0x00000003, 0x4062D028, 0x4063A820, + 0x40648C20, 0x00000003, 0x4062D029, 0x4063A820, 0x40648C20, 0x00000003, + 0x4062D02A, 0x4063A820, 0x40648C20, 0x00000003, 0x4062D02B, 0x4063A820, + 0x40648C20, 0x00000003, 0x4062D02C, 0x4063A820, 0x40648C20, 0x00000003, + 0x4062D02D, 0x4063A820, 0x40648C20, 0x00000003, 0x4062D02E, 0x4063A820, + 0x40648C20, 0x00000003, 0x4062D02F, 0x4063A820, 0x40648C20, 0x00000003, + 0x4062D030, 0x4063A820, 0x40648C20, 0x00000003, + // Block 646, offset 0xa180 + 0x4062D031, 0x4063A820, 0x40648C20, 0x00000003, 0x4062D032, 0x4063A820, + 0x40648C20, 0x00000003, 0x4062D033, 0x4063A820, 0x40648C20, 0x00000003, + 0x4062D034, 0x4063A820, 0x40648C20, 0x00000002, 0x4062D021, 0x4063AA20, + 0x00000002, 0x4062D022, 0x4063AA20, 0x00000002, 0x4062D023, 0x4063AA20, + 0x00000002, 0x4062D024, 0x4063AA20, 0x00000002, 0x4062D025, 0x4063AA20, + 0x00000002, 0x4062D026, 0x4063AA20, 0x00000002, 0x4062D027, 0x4063AA20, + 0x00000002, 0x4062D028, 0x4063AA20, 0x00000002, 0x4062D029, 0x4063AA20, + 0x00000002, 0x4062D02A, 0x4063AA20, 0x00000002, 0x4062D02B, 0x4063AA20, + 0x00000002, 0x4062D02C, 0x4063AA20, 0x00000002, 0x4062D02D, 0x4063AA20, + 0x00000002, 0x4062D02E, 0x4063AA20, 0x00000002, 0x4062D02F, 0x4063AA20, + 0x00000002, 0x4062D030, 0x4063AA20, 0x00000002, + // Block 647, offset 0xa1c0 + 0x4062D031, 0x4063AA20, 0x00000002, 0x4062D032, 0x4063AA20, 0x00000002, + 0x4062D033, 0x4063AA20, 0x00000002, 0x4062D034, 0x4063AA20, 0x00000002, + 0x4062D035, 0x4063AA20, 0x00000002, 0x4062D036, 0x4063AA20, 0x00000002, + 0x4062D037, 0x4063AA20, 0x00000002, 0x4062D038, 0x4063AA20, 0x00000002, + 0x4062D039, 0x4063AA20, 0x00000002, 0x4062D03A, 0x4063AA20, 0x00000002, + 0x4062D03B, 0x4063AA20, 0x00000002, 0x4062D03C, 0x4063AA20, 0x00000002, + 0x4062D03D, 0x4063AA20, 0x00000003, 0x4062D021, 0x4063AA20, 0x40646420, + 0x00000003, 0x4062D022, 0x4063AA20, 0x40646420, 0x00000003, 0x4062D023, + 0x4063AA20, 0x40646420, 0x00000003, 0x4062D024, 0x4063AA20, 0x40646420, + 0x00000003, 0x4062D021, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062D022, + 0x4063AA20, 0x40648C20, 0x00000003, 0x4062D023, + // Block 648, offset 0xa200 + 0x4063AA20, 0x40648C20, 0x00000003, 0x4062D024, 0x4063AA20, 0x40648C20, + 0x00000003, 0x4062D025, 0x4063AA20, 0x40648C20, 0x00000003, 0x4062D026, + 0x4063AA20, 0x40648C20, 0x00000003, 0x4062D021, 0x4063AC20, 0x40648C20, + 0x00000003, 0x4062D022, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062D023, + 0x4063AC20, 0x40648C20, 0x00000003, 0x4062D024, 0x4063AC20, 0x40648C20, + 0x00000003, 0x4062D025, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062D026, + 0x4063AC20, 0x40648C20, 0x00000003, 0x4062D027, 0x4063AC20, 0x40648C20, + 0x00000003, 0x4062D028, 0x4063AC20, 0x40648C20, 0x00000003, 0x4062D029, + 0x4063AC20, 0x40648C20, 0x00000003, 0x4062D02A, 0x4063AC20, 0x40648C20, + 0x00000002, 0x4062D021, 0x4063B020, 0x00000002, 0x4062D022, 0x4063B020, + 0x00000002, 0x4062D023, 0x4063B020, 0x00000002, + // Block 649, offset 0xa240 + 0x4062D024, 0x4063B020, 0x00000002, 0x4062D025, 0x4063B020, 0x00000003, + 0x4062D021, 0x4063B020, 0x40646A20, 0x00000003, 0x4062D022, 0x4063B020, + 0x40646A20, 0x00000003, 0x4062D023, 0x4063B020, 0x40646A20, 0x00000003, + 0x4062D024, 0x4063B020, 0x40646A20, 0x00000003, 0x4062D025, 0x4063B020, + 0x40646A20, 0x00000003, 0x4062D026, 0x4063B020, 0x40646A20, 0x00000003, + 0x4062D027, 0x4063B020, 0x40646A20, 0x00000003, 0x4062D021, 0x4063B020, + 0x40647220, 0x00000003, 0x4062D021, 0x4063B020, 0x40648220, 0x00000003, + 0x4062D022, 0x4063B020, 0x40648220, 0x00000003, 0x4062D023, 0x4063B020, + 0x40648220, 0x00000003, 0x4062D024, 0x4063B020, 0x40648220, 0x00000003, + 0x4062D025, 0x4063B020, 0x40648220, 0x00000003, 0x4062D021, 0x4063B420, + 0x40646420, 0x00000003, 0x4062D022, 0x4063B420, + // Block 650, offset 0xa280 + 0x40646420, 0x00000003, 0x4062D023, 0x4063B420, 0x40646420, 0x00000003, + 0x4062D024, 0x4063B420, 0x40646420, 0x00000003, 0x4062D025, 0x4063B420, + 0x40646420, 0x00000003, 0x4062D026, 0x4063B420, 0x40646420, 0x00000003, + 0x4062D027, 0x4063B420, 0x40646420, 0x00000003, 0x4062D028, 0x4063B420, + 0x40646420, 0x00000003, 0x4062D021, 0x4063B420, 0x40646A20, 0x00000003, + 0x4062D022, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D023, 0x4063B420, + 0x40646A20, 0x00000003, 0x4062D024, 0x4063B420, 0x40646A20, 0x00000003, + 0x4062D025, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D026, 0x4063B420, + 0x40646A20, 0x00000003, 0x4062D027, 0x4063B420, 0x40646A20, 0x00000003, + 0x4062D028, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D029, 0x4063B420, + 0x40646A20, 0x00000003, 0x4062D02A, 0x4063B420, + // Block 651, offset 0xa2c0 + 0x40646A20, 0x00000003, 0x4062D02B, 0x4063B420, 0x40646A20, 0x00000003, + 0x4062D02C, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D02D, 0x4063B420, + 0x40646A20, 0x00000003, 0x4062D02E, 0x4063B420, 0x40646A20, 0x00000003, + 0x4062D02F, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D030, 0x4063B420, + 0x40646A20, 0x00000003, 0x4062D031, 0x4063B420, 0x40646A20, 0x00000003, + 0x4062D032, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D033, 0x4063B420, + 0x40646A20, 0x00000003, 0x4062D034, 0x4063B420, 0x40646A20, 0x00000003, + 0x4062D035, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D036, 0x4063B420, + 0x40646A20, 0x00000003, 0x4062D037, 0x4063B420, 0x40646A20, 0x00000003, + 0x4062D038, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D039, 0x4063B420, + 0x40646A20, 0x00000003, 0x4062D03A, 0x4063B420, + // Block 652, offset 0xa300 + 0x40646A20, 0x00000003, 0x4062D03B, 0x4063B420, 0x40646A20, 0x00000003, + 0x4062D03C, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D03D, 0x4063B420, + 0x40646A20, 0x00000003, 0x4062D03E, 0x4063B420, 0x40646A20, 0x00000003, + 0x4062D03F, 0x4063B420, 0x40646A20, 0x00000003, 0x4062D040, 0x4063B420, + 0x40646A20, 0x00000003, 0x4062D021, 0x4063B420, 0x40647220, 0x00000003, + 0x4062D022, 0x4063B420, 0x40647220, 0x00000003, 0x4062D023, 0x4063B420, + 0x40647220, 0x00000003, 0x4062D024, 0x4063B420, 0x40647220, 0x00000003, + 0x4062D025, 0x4063B420, 0x40647220, 0x00000003, 0x4062D026, 0x4063B420, + 0x40647220, 0x00000003, 0x4062D021, 0x4063B420, 0x40648220, 0x00000003, + 0x4062D021, 0x4063B420, 0x40648420, 0x00000003, 0x4062D022, 0x4063B420, + 0x40648420, 0x00000003, 0x4062D023, 0x4063B420, + // Block 653, offset 0xa340 + 0x40648420, 0x00000003, 0x4062D024, 0x4063B420, 0x40648420, 0x00000003, + 0x4062D025, 0x4063B420, 0x40648420, 0x00000003, 0x4062D026, 0x4063B420, + 0x40648420, 0x00000003, 0x4062D027, 0x4063B420, 0x40648420, 0x00000003, + 0x4062D028, 0x4063B420, 0x40648420, 0x00000003, 0x4062D029, 0x4063B420, + 0x40648420, 0x00000003, 0x4062D02A, 0x4063B420, 0x40648420, 0x00000003, + 0x4062D02B, 0x4063B420, 0x40648420, 0x00000003, 0x4062D02C, 0x4063B420, + 0x40648420, 0x00000003, 0x4062D02D, 0x4063B420, 0x40648420, 0x00000003, + 0x4062D02E, 0x4063B420, 0x40648420, 0x00000003, 0x4062D02F, 0x4063B420, + 0x40648420, 0x00000003, 0x4062D030, 0x4063B420, 0x40648420, 0x00000003, + 0x4062D031, 0x4063B420, 0x40648420, 0x00000003, 0x4062D032, 0x4063B420, + 0x40648420, 0x00000003, 0x4062D033, 0x4063B420, + // Block 654, offset 0xa380 + 0x40648420, 0x00000003, 0x4062D021, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062D022, 0x4063B420, 0x40648C20, 0x00000003, 0x4062D023, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062D024, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062D025, 0x4063B420, 0x40648C20, 0x00000003, 0x4062D026, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062D027, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062D028, 0x4063B420, 0x40648C20, 0x00000003, 0x4062D029, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062D02A, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062D02B, 0x4063B420, 0x40648C20, 0x00000003, 0x4062D02C, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062D02D, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062D02E, 0x4063B420, 0x40648C20, 0x00000003, 0x4062D02F, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062D030, 0x4063B420, + // Block 655, offset 0xa3c0 + 0x40648C20, 0x00000003, 0x4062D031, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062D032, 0x4063B420, 0x40648C20, 0x00000003, 0x4062D033, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062D034, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062D035, 0x4063B420, 0x40648C20, 0x00000003, 0x4062D036, 0x4063B420, + 0x40648C20, 0x00000003, 0x4062D037, 0x4063B420, 0x40648C20, 0x00000003, + 0x4062D038, 0x4063B420, 0x40648C20, 0x00000003, 0x4062D039, 0x4063B420, + 0x40648C20, 0x00000002, 0x4062D021, 0x4063B620, 0x00000002, 0x4062D022, + 0x4063B620, 0x00000002, 0x4062D023, 0x4063B620, 0x00000002, 0x4062D024, + 0x4063B620, 0x00000002, 0x4062D025, 0x4063B620, 0x00000002, 0x4062D026, + 0x4063B620, 0x00000002, 0x4062D027, 0x4063B620, 0x00000002, 0x4062D028, + 0x4063B620, 0x00000002, 0x4062D029, 0x4063B620, + // Block 656, offset 0xa400 + 0x00000002, 0x4062D02A, 0x4063B620, 0x00000002, 0x4062D02B, 0x4063B620, + 0x00000002, 0x4062D02C, 0x4063B620, 0x00000002, 0x4062D02D, 0x4063B620, + 0x00000002, 0x4062D02E, 0x4063B620, 0x00000002, 0x4062D02F, 0x4063B620, + 0x00000002, 0x4062D030, 0x4063B620, 0x00000002, 0x4062D031, 0x4063B620, + 0x00000002, 0x4062D021, 0x4063B820, 0x00000002, 0x4062D022, 0x4063B820, + 0x00000002, 0x4062D023, 0x4063B820, 0x00000002, 0x4062D024, 0x4063B820, + 0x00000002, 0x4062D025, 0x4063B820, 0x00000002, 0x4062D026, 0x4063B820, + 0x00000002, 0x4062D027, 0x4063B820, 0x00000002, 0x4062D028, 0x4063B820, + 0x00000002, 0x4062D029, 0x4063B820, 0x00000002, 0x4062D02A, 0x4063B820, + 0x00000002, 0x4062D02B, 0x4063B820, 0x00000002, 0x4062D02C, 0x4063B820, + 0x00000002, 0x4062D02D, 0x4063B820, 0x00000002, + // Block 657, offset 0xa440 + 0x4062D02E, 0x4063B820, 0x00000002, 0x4062D02F, 0x4063B820, 0x00000002, + 0x4062D030, 0x4063B820, 0x00000002, 0x4062D031, 0x4063B820, 0x00000002, + 0x4062D032, 0x4063B820, 0x00000002, 0x4062D033, 0x4063B820, 0x00000002, + 0x4062D034, 0x4063B820, 0x00000002, 0x4062D035, 0x4063B820, 0x00000002, + 0x4062D036, 0x4063B820, 0x00000002, 0x4062D037, 0x4063B820, 0x00000002, + 0x4062D038, 0x4063B820, 0x00000002, 0x4062D039, 0x4063B820, 0x00000002, + 0x4062D03A, 0x4063B820, 0x00000002, 0x4062D03B, 0x4063B820, 0x00000002, + 0x4062D03C, 0x4063B820, 0x00000002, 0x4062D03D, 0x4063B820, 0x00000002, + 0x4062D03E, 0x4063B820, 0x00000002, 0x4062D03F, 0x4063B820, 0x00000002, + 0x4062D040, 0x4063B820, 0x00000002, 0x4062D041, 0x4063B820, 0x00000002, + 0x4062D042, 0x4063B820, 0x00000002, 0x4062D043, + // Block 658, offset 0xa480 + 0x4063B820, 0x00000002, 0x4062D044, 0x4063B820, 0x00000002, 0x4062D045, + 0x4063B820, 0x00000002, 0x4062D046, 0x4063B820, 0x00000002, 0x4062D047, + 0x4063B820, 0x00000002, 0x4062D048, 0x4063B820, 0x00000002, 0x4062D049, + 0x4063B820, 0x00000002, 0x4062D04A, 0x4063B820, 0x00000002, 0x4062D04B, + 0x4063B820, 0x00000002, 0x4062D04C, 0x4063B820, 0x00000002, 0x4062D04D, + 0x4063B820, 0x00000002, 0x4062D04E, 0x4063B820, 0x00000002, 0x4062D04F, + 0x4063B820, 0x00000002, 0x4062D050, 0x4063B820, 0x00000002, 0x4062D051, + 0x4063B820, 0x00000002, 0x4062D052, 0x4063B820, 0x00000002, 0x4062D053, + 0x4063B820, 0x00000002, 0x4062D054, 0x4063B820, 0x00000002, 0x4062D055, + 0x4063B820, 0x00000002, 0x4062D056, 0x4063B820, 0x00000002, 0x4062D057, + 0x4063B820, 0x00000002, 0x4062D058, 0x4063B820, + // Block 659, offset 0xa4c0 + 0x00000002, 0x4062D059, 0x4063B820, 0x00000002, 0x4062D05A, 0x4063B820, + 0x00000002, 0x4062D05B, 0x4063B820, 0x00000003, 0x4062D021, 0x4063B820, + 0x40646420, 0x00000003, 0x4062D022, 0x4063B820, 0x40646420, 0x00000003, + 0x4062D023, 0x4063B820, 0x40646420, 0x00000003, 0x4062D021, 0x4063B820, + 0x40646A20, 0x00000003, 0x4062D022, 0x4063B820, 0x40646A20, 0x00000003, + 0x4062D023, 0x4063B820, 0x40646A20, 0x00000003, 0x4062D024, 0x4063B820, + 0x40646A20, 0x00000003, 0x4062D025, 0x4063B820, 0x40646A20, 0x00000003, + 0x4062D026, 0x4063B820, 0x40646A20, 0x00000003, 0x4062D027, 0x4063B820, + 0x40646A20, 0x00000003, 0x4062D028, 0x4063B820, 0x40646A20, 0x00000003, + 0x4062D029, 0x4063B820, 0x40646A20, 0x00000003, 0x4062D02A, 0x4063B820, + 0x40646A20, 0x00000003, 0x4062D02B, 0x4063B820, + // Block 660, offset 0xa500 + 0x40646A20, 0x00000003, 0x4062D021, 0x4063B820, 0x40647220, 0x00000003, + 0x4062D022, 0x4063B820, 0x40647220, 0x00000003, 0x4062D023, 0x4063B820, + 0x40647220, 0x00000003, 0x4062D024, 0x4063B820, 0x40647220, 0x00000003, + 0x4062D021, 0x4063B820, 0x40648C20, 0x00000003, 0x4062D022, 0x4063B820, + 0x40648C20, 0x00000003, 0x4062D023, 0x4063B820, 0x40648C20, 0x00000003, + 0x4062D024, 0x4063B820, 0x40648C20, 0x00000003, 0x4062D025, 0x4063B820, + 0x40648C20, 0x00000003, 0x4062D026, 0x4063B820, 0x40648C20, 0x00000003, + 0x4062D027, 0x4063B820, 0x40648C20, 0x00000003, 0x4062D028, 0x4063B820, + 0x40648C20, 0x00000003, 0x4062D029, 0x4063B820, 0x40648C20, 0x00000003, + 0x4062D02A, 0x4063B820, 0x40648C20, 0x00000003, 0x4062D02B, 0x4063B820, + 0x40648C20, 0x00000003, 0x4062D02C, 0x4063B820, + // Block 661, offset 0xa540 + 0x40648C20, 0x00000003, 0x4062D02D, 0x4063B820, 0x40648C20, 0x00000003, + 0x4062D02E, 0x4063B820, 0x40648C20, 0x00000003, 0x4062D02F, 0x4063B820, + 0x40648C20, 0x00000002, 0x4062D021, 0x4063BA20, 0x00000002, 0x4062D022, + 0x4063BA20, 0x00000002, 0x4062D023, 0x4063BA20, 0x00000002, 0x4062D024, + 0x4063BA20, 0x00000002, 0x4062D025, 0x4063BA20, 0x00000002, 0x4062D026, + 0x4063BA20, 0x00000002, 0x4062D027, 0x4063BA20, 0x00000002, 0x4062D028, + 0x4063BA20, 0x00000002, 0x4062D029, 0x4063BA20, 0x00000002, 0x4062D02A, + 0x4063BA20, 0x00000002, 0x4062D02B, 0x4063BA20, 0x00000002, 0x4062D02C, + 0x4063BA20, 0x00000002, 0x4062D02D, 0x4063BA20, 0x00000002, 0x4062D02E, + 0x4063BA20, 0x00000002, 0x4062D02F, 0x4063BA20, 0x00000002, 0x4062D030, + 0x4063BA20, 0x00000002, 0x4062D031, 0x4063BA20, + // Block 662, offset 0xa580 + 0x00000002, 0x4062D032, 0x4063BA20, 0x00000002, 0x4062D033, 0x4063BA20, + 0x00000002, 0x4062D034, 0x4063BA20, 0x00000002, 0x4062D035, 0x4063BA20, + 0x00000003, 0x4062D021, 0x4063BA20, 0x40646420, 0x00000003, 0x4062D022, + 0x4063BA20, 0x40646420, 0x00000003, 0x4062D023, 0x4063BA20, 0x40646420, + 0x00000003, 0x4062D024, 0x4063BA20, 0x40646420, 0x00000003, 0x4062D025, + 0x4063BA20, 0x40646420, 0x00000003, 0x4062D026, 0x4063BA20, 0x40646420, + 0x00000003, 0x4062D027, 0x4063BA20, 0x40646420, 0x00000003, 0x4062D028, + 0x4063BA20, 0x40646420, 0x00000003, 0x4062D029, 0x4063BA20, 0x40646420, + 0x00000003, 0x4062D021, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D022, + 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D023, 0x4063BA20, 0x40646A20, + 0x00000003, 0x4062D024, 0x4063BA20, 0x40646A20, + // Block 663, offset 0xa5c0 + 0x00000003, 0x4062D025, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D026, + 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D027, 0x4063BA20, 0x40646A20, + 0x00000003, 0x4062D028, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D029, + 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D02A, 0x4063BA20, 0x40646A20, + 0x00000003, 0x4062D02B, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D02C, + 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D02D, 0x4063BA20, 0x40646A20, + 0x00000003, 0x4062D02E, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D02F, + 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D030, 0x4063BA20, 0x40646A20, + 0x00000003, 0x4062D031, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D032, + 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D033, 0x4063BA20, 0x40646A20, + 0x00000003, 0x4062D034, 0x4063BA20, 0x40646A20, + // Block 664, offset 0xa600 + 0x00000003, 0x4062D035, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D036, + 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D037, 0x4063BA20, 0x40646A20, + 0x00000003, 0x4062D038, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D039, + 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D03A, 0x4063BA20, 0x40646A20, + 0x00000003, 0x4062D03B, 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D03C, + 0x4063BA20, 0x40646A20, 0x00000003, 0x4062D03D, 0x4063BA20, 0x40646A20, + 0x00000003, 0x4062D021, 0x4063BA20, 0x40647220, 0x00000003, 0x4062D022, + 0x4063BA20, 0x40647220, 0x00000003, 0x4062D023, 0x4063BA20, 0x40647220, + 0x00000003, 0x4062D024, 0x4063BA20, 0x40647220, 0x00000003, 0x4062D025, + 0x4063BA20, 0x40647220, 0x00000003, 0x4062D026, 0x4063BA20, 0x40647220, + 0x00000003, 0x4062D021, 0x4063BA20, 0x40648C20, + // Block 665, offset 0xa640 + 0x00000003, 0x4062D022, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D023, + 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D024, 0x4063BA20, 0x40648C20, + 0x00000003, 0x4062D025, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D026, + 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D027, 0x4063BA20, 0x40648C20, + 0x00000003, 0x4062D028, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D029, + 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D02A, 0x4063BA20, 0x40648C20, + 0x00000003, 0x4062D02B, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D02C, + 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D02D, 0x4063BA20, 0x40648C20, + 0x00000003, 0x4062D02E, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D02F, + 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D030, 0x4063BA20, 0x40648C20, + 0x00000003, 0x4062D031, 0x4063BA20, 0x40648C20, + // Block 666, offset 0xa680 + 0x00000003, 0x4062D032, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D033, + 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D034, 0x4063BA20, 0x40648C20, + 0x00000003, 0x4062D035, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D036, + 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D037, 0x4063BA20, 0x40648C20, + 0x00000003, 0x4062D038, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D039, + 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D03A, 0x4063BA20, 0x40648C20, + 0x00000003, 0x4062D03B, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D03C, + 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D03D, 0x4063BA20, 0x40648C20, + 0x00000003, 0x4062D03E, 0x4063BA20, 0x40648C20, 0x00000003, 0x4062D03F, + 0x4063BA20, 0x40648C20, 0x00000002, 0x4062D021, 0x4063BE20, 0x00000002, + 0x4062D022, 0x4063BE20, 0x00000002, 0x4062D023, + // Block 667, offset 0xa6c0 + 0x4063BE20, 0x00000002, 0x4062D024, 0x4063BE20, 0x00000002, 0x4062D025, + 0x4063BE20, 0x00000002, 0x4062D026, 0x4063BE20, 0x00000002, 0x4062D027, + 0x4063BE20, 0x00000002, 0x4062D028, 0x4063BE20, 0x00000002, 0x4062D029, + 0x4063BE20, 0x00000002, 0x4062D02A, 0x4063BE20, 0x00000002, 0x4062D02B, + 0x4063BE20, 0x00000002, 0x4062D02C, 0x4063BE20, 0x00000002, 0x4062D02D, + 0x4063BE20, 0x00000002, 0x4062D02E, 0x4063BE20, 0x00000002, 0x4062D02F, + 0x4063BE20, 0x00000002, 0x4062D030, 0x4063BE20, 0x00000002, 0x4062D031, + 0x4063BE20, 0x00000002, 0x4062D032, 0x4063BE20, 0x00000002, 0x4062D033, + 0x4063BE20, 0x00000002, 0x4062D034, 0x4063BE20, 0x00000002, 0x4062D035, + 0x4063BE20, 0x00000002, 0x4062D036, 0x4063BE20, 0x00000002, 0x4062D037, + 0x4063BE20, 0x00000002, 0x4062D038, 0x4063BE20, + // Block 668, offset 0xa700 + 0x00000002, 0x4062D039, 0x4063BE20, 0x00000002, 0x4062D03A, 0x4063BE20, + 0x00000002, 0x4062D03B, 0x4063BE20, 0x00000002, 0x4062D03C, 0x4063BE20, + 0x00000002, 0x4062D03D, 0x4063BE20, 0x00000003, 0x4062D021, 0x4063BE20, + 0x40646420, 0x00000003, 0x4062D022, 0x4063BE20, 0x40646420, 0x00000003, + 0x4062D023, 0x4063BE20, 0x40646420, 0x00000003, 0x4062D021, 0x4063BE20, + 0x40648C20, 0x00000003, 0x4062D022, 0x4063BE20, 0x40648C20, 0x00000003, + 0x4062D023, 0x4063BE20, 0x40648C20, 0x00000003, 0x4062D024, 0x4063BE20, + 0x40648C20, 0x00000003, 0x4062D025, 0x4063BE20, 0x40648C20, 0x00000003, + 0x4062D026, 0x4063BE20, 0x40648C20, 0x00000002, 0x4062D021, 0x4063C020, + 0x00000002, 0x4062D022, 0x4063C020, 0x00000002, 0x4062D023, 0x4063C020, + 0x00000002, 0x4062D024, 0x4063C020, 0x00000002, + // Block 669, offset 0xa740 + 0x4062D025, 0x4063C020, 0x00000002, 0x4062D026, 0x4063C020, 0x00000002, + 0x4062D027, 0x4063C020, 0x00000002, 0x4062D028, 0x4063C020, 0x00000002, + 0x4062D029, 0x4063C020, 0x00000002, 0x4062D02A, 0x4063C020, 0x00000002, + 0x4062D02B, 0x4063C020, 0x00000002, 0x4062D02C, 0x4063C020, 0x00000002, + 0x4062D02D, 0x4063C020, 0x00000002, 0x4062D02E, 0x4063C020, 0x00000002, + 0x4062D02F, 0x4063C020, 0x00000002, 0x4062D030, 0x4063C020, 0x00000002, + 0x4062D031, 0x4063C020, 0x00000002, 0x4062D032, 0x4063C020, 0x00000002, + 0x4062D033, 0x4063C020, 0x00000002, 0x4062D034, 0x4063C020, 0x00000002, + 0x4062D035, 0x4063C020, 0x00000002, 0x4062D021, 0x4063C220, 0x00000002, + 0x4062D022, 0x4063C220, 0x00000002, 0x4062D023, 0x4063C220, 0x00000002, + 0x4062D024, 0x4063C220, 0x00000002, 0x4062D025, + // Block 670, offset 0xa780 + 0x4063C220, 0x00000002, 0x4062D026, 0x4063C220, 0x00000002, 0x4062D027, + 0x4063C220, 0x00000002, 0x4062D028, 0x4063C220, 0x00000002, 0x4062D029, + 0x4063C220, 0x00000002, 0x4062D02A, 0x4063C220, 0x00000002, 0x4062D02B, + 0x4063C220, 0x00000002, 0x4062D02C, 0x4063C220, 0x00000002, 0x4062D02D, + 0x4063C220, 0x00000002, 0x4062D02E, 0x4063C220, 0x00000002, 0x4062D02F, + 0x4063C220, 0x00000002, 0x4062D030, 0x4063C220, 0x00000002, 0x4062D031, + 0x4063C220, 0x00000002, 0x4062D032, 0x4063C220, 0x00000002, 0x4062D033, + 0x4063C220, 0x00000002, 0x4062D034, 0x4063C220, 0x00000002, 0x4062D035, + 0x4063C220, 0x00000002, 0x4062D036, 0x4063C220, 0x00000002, 0x4062D037, + 0x4063C220, 0x00000002, 0x4062D038, 0x4063C220, 0x00000003, 0x4062D021, + 0x4063C220, 0x40646A20, 0x00000003, 0x4062D022, + // Block 671, offset 0xa7c0 + 0x4063C220, 0x40646A20, 0x00000003, 0x4062D023, 0x4063C220, 0x40646A20, + 0x00000003, 0x4062D024, 0x4063C220, 0x40646A20, 0x00000003, 0x4062D025, + 0x4063C220, 0x40646A20, 0x00000003, 0x4062D026, 0x4063C220, 0x40646A20, + 0x00000003, 0x4062D027, 0x4063C220, 0x40646A20, 0x00000003, 0x4062D028, + 0x4063C220, 0x40646A20, 0x00000003, 0x4062D029, 0x4063C220, 0x40646A20, + 0x00000003, 0x4062D02A, 0x4063C220, 0x40646A20, 0x00000003, 0x4062D02B, + 0x4063C220, 0x40646A20, 0x00000003, 0x4062D02C, 0x4063C220, 0x40646A20, + 0x00000003, 0x4062D02D, 0x4063C220, 0x40646A20, 0x00000003, 0x4062D02E, + 0x4063C220, 0x40646A20, 0x00000003, 0x4062D02F, 0x4063C220, 0x40646A20, + 0x00000003, 0x4062D030, 0x4063C220, 0x40646A20, 0x00000003, 0x4062D021, + 0x4063C220, 0x40647220, 0x00000003, 0x4062D021, + // Block 672, offset 0xa800 + 0x4063C220, 0x40648C20, 0x00000003, 0x4062D021, 0x4063C420, 0x40646A20, + 0x00000003, 0x4062D022, 0x4063C420, 0x40646A20, 0x00000003, 0x4062D023, + 0x4063C420, 0x40646A20, 0x00000003, 0x4062D024, 0x4063C420, 0x40646A20, + 0x00000003, 0x4062D025, 0x4063C420, 0x40646A20, 0x00000003, 0x4062D026, + 0x4063C420, 0x40646A20, 0x00000003, 0x4062D027, 0x4063C420, 0x40646A20, + 0x00000002, 0x4062D021, 0x4063C620, 0x00000002, 0x4062D022, 0x4063C620, + 0x00000002, 0x4062D023, 0x4063C620, 0x00000002, 0x4062D024, 0x4063C620, + 0x00000002, 0x4062D025, 0x4063C620, 0x00000002, 0x4062D026, 0x4063C620, + 0x00000002, 0x4062D027, 0x4063C620, 0x00000002, 0x4062D021, 0x4063C820, + 0x00000002, 0x4062D022, 0x4063C820, 0x00000002, 0x4062D023, 0x4063C820, + 0x00000002, 0x4062D024, 0x4063C820, 0x00000002, + // Block 673, offset 0xa840 + 0x4062D025, 0x4063C820, 0x00000002, 0x4062D026, 0x4063C820, 0x00000002, + 0x4062D027, 0x4063C820, 0x00000002, 0x4062D028, 0x4063C820, 0x00000002, + 0x4062D029, 0x4063C820, 0x00000002, 0x4062D02A, 0x4063C820, 0x00000002, + 0x4062D021, 0x4063CA20, 0x00000002, 0x4062D022, 0x4063CA20, 0x00000002, + 0x4062D023, 0x4063CA20, 0x00000002, 0x4062D024, 0x4063CA20, 0x00000002, + 0x4062D025, 0x4063CA20, 0x00000002, 0x4062D026, 0x4063CA20, 0x00000002, + 0x4062D027, 0x4063CA20, 0x00000002, 0x4062D028, 0x4063CA20, 0x00000002, + 0x4062D029, 0x4063CA20, 0x00000002, 0x4062D02A, 0x4063CA20, 0x00000003, + 0x4062D021, 0x4063CA20, 0x40647220, 0x00000003, 0x4062D022, 0x4063CA20, + 0x40647220, 0x00000003, 0x4062D023, 0x4063CA20, 0x40647220, 0x00000003, + 0x4062D024, 0x4063CA20, 0x40647220, 0x00000003, + // Block 674, offset 0xa880 + 0x4062D021, 0x4063CA20, 0x40648C20, 0x00000003, 0x4062D022, 0x4063CA20, + 0x40648C20, 0x00000003, 0x4062D023, 0x4063CA20, 0x40648C20, 0x00000003, + 0x4062D024, 0x4063CA20, 0x40648C20, 0x00000003, 0x4062D025, 0x4063CA20, + 0x40648C20, 0x00000003, 0x4062D026, 0x4063CA20, 0x40648C20, 0x00000003, + 0x4062D027, 0x4063CA20, 0x40648C20, 0x00000003, 0x4062D021, 0x4063CC20, + 0x40646420, 0x00000003, 0x4062D021, 0x4063CC20, 0x40646A20, 0x00000003, + 0x4062D022, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062D023, 0x4063CC20, + 0x40646A20, 0x00000003, 0x4062D024, 0x4063CC20, 0x40646A20, 0x00000003, + 0x4062D025, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062D026, 0x4063CC20, + 0x40646A20, 0x00000003, 0x4062D027, 0x4063CC20, 0x40646A20, 0x00000003, + 0x4062D028, 0x4063CC20, 0x40646A20, 0x00000003, + // Block 675, offset 0xa8c0 + 0x4062D029, 0x4063CC20, 0x40646A20, 0x00000003, 0x4062D02A, 0x4063CC20, + 0x40646A20, 0x00000003, 0x4062D021, 0x4063CC20, 0x40647220, 0x00000003, + 0x4062D022, 0x4063CC20, 0x40647220, 0x00000003, 0x4062D023, 0x4063CC20, + 0x40647220, 0x00000003, 0x4062D024, 0x4063CC20, 0x40647220, 0x00000003, + 0x4062D025, 0x4063CC20, 0x40647220, 0x00000003, 0x4062D026, 0x4063CC20, + 0x40647220, 0x00000003, 0x4062D027, 0x4063CC20, 0x40647220, 0x00000003, + 0x4062D028, 0x4063CC20, 0x40647220, 0x00000003, 0x4062D029, 0x4063CC20, + 0x40647220, 0x00000003, 0x4062D021, 0x4063CC20, 0x40648220, 0x00000003, + 0x4062D022, 0x4063CC20, 0x40648220, 0x00000003, 0x4062D023, 0x4063CC20, + 0x40648220, 0x00000003, 0x4062D024, 0x4063CC20, 0x40648220, 0x00000003, + 0x4062D021, 0x4063CC20, 0x40648420, 0x00000003, + // Block 676, offset 0xa900 + 0x4062D022, 0x4063CC20, 0x40648420, 0x00000003, 0x4062D023, 0x4063CC20, + 0x40648420, 0x00000003, 0x4062D024, 0x4063CC20, 0x40648420, 0x00000003, + 0x4062D025, 0x4063CC20, 0x40648420, 0x00000003, 0x4062D026, 0x4063CC20, + 0x40648420, 0x00000003, 0x4062D027, 0x4063CC20, 0x40648420, 0x00000003, + 0x4062D028, 0x4063CC20, 0x40648420, 0x00000003, 0x4062D021, 0x4063CC20, + 0x40648C20, 0x00000002, 0x4062D021, 0x4063CE20, 0x00000002, 0x4062D022, + 0x4063CE20, 0x00000002, 0x4062D023, 0x4063CE20, 0x00000002, 0x4062D024, + 0x4063CE20, 0x00000002, 0x4062D025, 0x4063CE20, 0x00000002, 0x4062D026, + 0x4063CE20, 0x00000002, 0x4062D027, 0x4063CE20, 0x00000002, 0x4062D028, + 0x4063CE20, 0x00000002, 0x4062D029, 0x4063CE20, 0x00000002, 0x4062D02A, + 0x4063CE20, 0x00000002, 0x4062D02B, 0x4063CE20, + // Block 677, offset 0xa940 + 0x00000002, 0x4062D02C, 0x4063CE20, 0x00000002, 0x4062D02D, 0x4063CE20, + 0x00000002, 0x4062D02E, 0x4063CE20, 0x00000002, 0x4062D02F, 0x4063CE20, + 0x00000002, 0x4062D030, 0x4063CE20, 0x00000002, 0x4062D031, 0x4063CE20, + 0x00000002, 0x4062D032, 0x4063CE20, 0x00000002, 0x4062D033, 0x4063CE20, + 0x00000002, 0x4062D034, 0x4063CE20, 0x00000002, 0x4062D035, 0x4063CE20, + 0x00000002, 0x4062D036, 0x4063CE20, 0x00000002, 0x4062D037, 0x4063CE20, + 0x00000002, 0x4062D038, 0x4063CE20, 0x00000002, 0x4062D039, 0x4063CE20, + 0x00000002, 0x4062D03A, 0x4063CE20, 0x00000002, 0x4062D03B, 0x4063CE20, + 0x00000002, 0x4062D03C, 0x4063CE20, 0x00000002, 0x4062D03D, 0x4063CE20, + 0x00000002, 0x4062D03E, 0x4063CE20, 0x00000002, 0x4062D03F, 0x4063CE20, + 0x00000003, 0x4062D021, 0x4063D020, 0x40647220, + // Block 678, offset 0xa980 + 0x00000003, 0x4062D022, 0x4063D020, 0x40647220, 0x00000003, 0x4062D023, + 0x4063D020, 0x40647220, 0x00000003, 0x4062D024, 0x4063D020, 0x40647220, + 0x00000003, 0x4062D025, 0x4063D020, 0x40647220, 0x00000003, 0x4062D026, + 0x4063D020, 0x40647220, 0x00000002, 0x40403C20, 0xA070F102, 0x00000002, + 0x402D9A22, 0xAE603202, 0x00000002, 0x002D9AC3, 0xAE603202, 0x00000002, + 0x402D9A22, 0xAE603502, 0x00000002, 0x002D9AC3, 0xAE603502, 0x00000002, + 0x402D9A22, 0xAE603C02, 0x00000002, 0x002D9AC3, 0xAE603C02, 0x00000002, + 0x402D9A22, 0xAE604302, 0x00000002, 0x402D9A22, 0xAE604702, 0x00000002, + 0x002D9AC3, 0xAE604702, 0x00000002, 0x402D9A22, 0xAE604E02, 0x00000002, + 0x002D9AC3, 0xAE604E02, 0x00000002, 0x402D9A22, 0xAE605202, 0x00000002, + 0x002D9AC3, 0xAE605202, 0x00000002, 0x402D9A22, + // Block 679, offset 0xa9c0 + 0xAE605B02, 0x00000002, 0x002D9AC3, 0xAE605B02, 0x00000002, 0x402D9A22, + 0xAE606402, 0x00000002, 0x002D9AC3, 0xAE606402, 0x00000002, 0x402D9A22, + 0xADC07002, 0x00000002, 0x002D9AC3, 0xADC07002, 0x00000002, 0x40306C22, + 0xAE604702, 0x00000002, 0x00306CC3, 0xAE604702, 0x00000002, 0x40302A20, + 0xAE605202, 0x00000002, 0x00302A83, 0xAE605202, 0x00000002, 0x40442221, + 0x82092248, 0x00000002, 0x004422A3, 0x82092248, 0x00000002, 0x40443E21, + 0x82092248, 0x00000002, 0x00443EA3, 0x82092248, 0x00000002, 0x00444883, + 0x82092248, 0x00000002, 0x40444821, 0x82092248, 0x00000002, 0x004448A3, + 0x82092248, 0x00000002, 0x40445421, 0x82092248, 0x00000002, 0x40445821, + 0x82092248, 0x00000002, 0x004458A3, 0x82092248, 0x00000002, 0x40445A21, + 0x82092248, 0x00000002, 0x00445AA3, 0x82092248, + // Block 680, offset 0xaa00 + 0x00000002, 0x40446621, 0x82092248, 0x00000002, 0x004466A3, 0x82092248, + 0x00000002, 0x402D6820, 0xA0007D02, 0x00000002, 0x002D6894, 0xA0007D14, + 0x00000005, 0x404E6020, 0x404E8420, 0x404E2420, 0x8209278B, 0x404F3020, + 0x00000006, 0x404E6A20, 0x8209278B, 0x404E6A20, 0x404EEE20, 0x404E7220, + 0x8209278B, 0x00000006, 0x404E6A21, 0x40510E20, 0x404EE620, 0x404EEE20, + 0x404E1420, 0x8209278B, 0x00000004, 0x404E8C21, 0x40510A20, 0x404EFE20, + 0x404F2E20, 0x00000006, 0x404E9420, 0x404E1420, 0x8209278B, 0x404E8220, + 0x404E1420, 0x8209278B, 0x00000005, 0x404E9420, 0x404E1420, 0x8209278B, + 0x404E8820, 0x404EDE20, 0x0000000A, 0x404E9421, 0x404E4820, 0x8209278B, + 0x404F3020, 0x404E1420, 0x404EFE20, 0x404EDE20, 0x404E2420, 0x8209278B, + 0x404F3020, 0x00000003, 0x404EA620, 0x404E8420, + // Block 681, offset 0xaa40 + 0x404EEA20, 0x00000003, 0x404EA620, 0x8209278A, 0x404EA620, 0x00000002, + 0x004EC283, 0x404EE620, 0x00000002, 0x404EC221, 0x404EE620, 0x00000002, + 0x004EC283, 0x404EEA20, 0x00000002, 0x004EC283, 0x404EEE20, 0x00000003, + 0x004EC283, 0x404EEE20, 0x404F0C20, 0x00000002, 0x004EC283, 0x404EF420, + 0x00000002, 0x004EC283, 0x404EFE20, 0x00000002, 0x004EC284, 0x404EFE20, + 0x00000003, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x00000005, 0x004EC283, + 0x404EFE20, 0x404EDE20, 0x404E1420, 0x8209278A, 0x00000005, 0x004EC284, + 0x404EFE20, 0x404EDE20, 0x404E1420, 0x8209278A, 0x00000005, 0x004EC283, + 0x404EFE20, 0x404EDE20, 0x404E1420, 0x8209278B, 0x00000005, 0x004EC284, + 0x404EFE20, 0x404EDE20, 0x404E1420, 0x8209278B, 0x00000005, 0x004EC283, + 0x404EFE20, 0x404EDE20, 0x404E1820, 0x8209278A, + // Block 682, offset 0xaa80 + 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E1820, 0x8209278A, + 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E1820, 0x8209278B, + 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E1820, 0x8209278B, + 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E1C20, 0x8209278A, + 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E1C20, 0x8209278A, + 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E1C20, 0x8209278B, + 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E1C20, 0x8209278B, + 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E2220, 0x8209278A, + 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E2220, 0x8209278A, + 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E2220, 0x8209278B, + 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, + // Block 683, offset 0xaac0 + 0x404E2220, 0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, + 0x404E2420, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, + 0x404E2420, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, + 0x404E2420, 0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, + 0x404E2420, 0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, + 0x404E2820, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, + 0x404E2820, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, + 0x404E2820, 0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, + 0x404E2820, 0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, + 0x404E2E20, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, + 0x404E2E20, 0x8209278A, 0x00000005, 0x004EC283, + // Block 684, offset 0xab00 + 0x404EFE20, 0x404EDE20, 0x404E2E20, 0x8209278B, 0x00000005, 0x004EC284, + 0x404EFE20, 0x404EDE20, 0x404E2E20, 0x8209278B, 0x00000005, 0x004EC283, + 0x404EFE20, 0x404EDE20, 0x404E3220, 0x8209278A, 0x00000005, 0x004EC284, + 0x404EFE20, 0x404EDE20, 0x404E3220, 0x8209278A, 0x00000005, 0x004EC283, + 0x404EFE20, 0x404EDE20, 0x404E3220, 0x8209278B, 0x00000005, 0x004EC284, + 0x404EFE20, 0x404EDE20, 0x404E3220, 0x8209278B, 0x00000005, 0x004EC283, + 0x404EFE20, 0x404EDE20, 0x404E4220, 0x8209278A, 0x00000005, 0x004EC284, + 0x404EFE20, 0x404EDE20, 0x404E4220, 0x8209278A, 0x00000005, 0x004EC283, + 0x404EFE20, 0x404EDE20, 0x404E4220, 0x8209278B, 0x00000005, 0x004EC284, + 0x404EFE20, 0x404EDE20, 0x404E4220, 0x8209278B, 0x00000005, 0x004EC283, + 0x404EFE20, 0x404EDE20, 0x404E4820, 0x8209278A, + // Block 685, offset 0xab40 + 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E4820, 0x8209278A, + 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E4820, 0x8209278B, + 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E4820, 0x8209278B, + 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E4A20, 0x8209278A, + 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E4A20, 0x8209278A, + 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E4A20, 0x8209278B, + 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E4A20, 0x8209278B, + 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E4E20, 0x8209278A, + 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E4E20, 0x8209278A, + 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E4E20, 0x8209278B, + 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, + // Block 686, offset 0xab80 + 0x404E4E20, 0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, + 0x404E5220, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, + 0x404E5220, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, + 0x404E5220, 0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, + 0x404E5220, 0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, + 0x404E5620, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, + 0x404E5620, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, + 0x404E5620, 0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, + 0x404E5620, 0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, + 0x404E5A20, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, + 0x404E5A20, 0x8209278A, 0x00000005, 0x004EC283, + // Block 687, offset 0xabc0 + 0x404EFE20, 0x404EDE20, 0x404E5A20, 0x8209278B, 0x00000005, 0x004EC284, + 0x404EFE20, 0x404EDE20, 0x404E5A20, 0x8209278B, 0x00000005, 0x004EC283, + 0x404EFE20, 0x404EDE20, 0x404E5E20, 0x8209278A, 0x00000005, 0x004EC284, + 0x404EFE20, 0x404EDE20, 0x404E5E20, 0x8209278A, 0x00000005, 0x004EC283, + 0x404EFE20, 0x404EDE20, 0x404E5E20, 0x8209278B, 0x00000005, 0x004EC284, + 0x404EFE20, 0x404EDE20, 0x404E5E20, 0x8209278B, 0x00000005, 0x004EC283, + 0x404EFE20, 0x404EDE20, 0x404E6020, 0x8209278A, 0x00000005, 0x004EC284, + 0x404EFE20, 0x404EDE20, 0x404E6020, 0x8209278A, 0x00000005, 0x004EC283, + 0x404EFE20, 0x404EDE20, 0x404E6020, 0x8209278B, 0x00000005, 0x004EC284, + 0x404EFE20, 0x404EDE20, 0x404E6020, 0x8209278B, 0x00000005, 0x004EC283, + 0x404EFE20, 0x404EDE20, 0x404E6220, 0x8209278A, + // Block 688, offset 0xac00 + 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E6220, 0x8209278A, + 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E6220, 0x8209278B, + 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E6220, 0x8209278B, + 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E6620, 0x8209278A, + 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E6620, 0x8209278A, + 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E6620, 0x8209278B, + 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E6620, 0x8209278B, + 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E6A20, 0x8209278A, + 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E6A20, 0x8209278A, + 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E6A20, 0x8209278B, + 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, + // Block 689, offset 0xac40 + 0x404E6A20, 0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, + 0x404E7220, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, + 0x404E7220, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, + 0x404E7220, 0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, + 0x404E7220, 0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, + 0x404E7420, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, + 0x404E7420, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, + 0x404E7420, 0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, + 0x404E7420, 0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, + 0x404E7E20, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, + 0x404E7E20, 0x8209278A, 0x00000005, 0x004EC283, + // Block 690, offset 0xac80 + 0x404EFE20, 0x404EDE20, 0x404E7E20, 0x8209278B, 0x00000005, 0x004EC284, + 0x404EFE20, 0x404EDE20, 0x404E7E20, 0x8209278B, 0x00000005, 0x004EC283, + 0x404EFE20, 0x404EDE20, 0x404E8220, 0x8209278A, 0x00000005, 0x004EC284, + 0x404EFE20, 0x404EDE20, 0x404E8220, 0x8209278A, 0x00000005, 0x004EC283, + 0x404EFE20, 0x404EDE20, 0x404E8220, 0x8209278B, 0x00000005, 0x004EC284, + 0x404EFE20, 0x404EDE20, 0x404E8220, 0x8209278B, 0x00000005, 0x004EC283, + 0x404EFE20, 0x404EDE20, 0x404E8420, 0x8209278A, 0x00000005, 0x004EC284, + 0x404EFE20, 0x404EDE20, 0x404E8420, 0x8209278A, 0x00000005, 0x004EC283, + 0x404EFE20, 0x404EDE20, 0x404E8420, 0x8209278B, 0x00000005, 0x004EC284, + 0x404EFE20, 0x404EDE20, 0x404E8420, 0x8209278B, 0x00000005, 0x004EC283, + 0x404EFE20, 0x404EDE20, 0x404E8820, 0x8209278A, + // Block 691, offset 0xacc0 + 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E8820, 0x8209278A, + 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E8820, 0x8209278B, + 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E8820, 0x8209278B, + 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E8C20, 0x8209278A, + 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E8C20, 0x8209278A, + 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E8C20, 0x8209278B, + 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E8C20, 0x8209278B, + 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E9420, 0x8209278A, + 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, 0x404E9420, 0x8209278A, + 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, 0x404E9420, 0x8209278B, + 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, + // Block 692, offset 0xad00 + 0x404E9420, 0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, + 0x404EA620, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, + 0x404EA620, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, + 0x404EA620, 0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, + 0x404EA620, 0x8209278B, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, + 0x404EAA20, 0x8209278A, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, + 0x404EAA20, 0x8209278A, 0x00000005, 0x004EC283, 0x404EFE20, 0x404EDE20, + 0x404EAA20, 0x8209278B, 0x00000005, 0x004EC284, 0x404EFE20, 0x404EDE20, + 0x404EAA20, 0x8209278B, 0x00000004, 0x004EC283, 0x404EFE20, 0x404EDE20, + 0x8209278B, 0x00000006, 0x404EFE20, 0x404EDE20, 0x404E1420, 0x8209278B, + 0x404E1420, 0x40510420, 0x00000002, 0x402C9A20, + // Block 693, offset 0xad40 + 0xAE603202, 0x00000002, 0x002C9A83, 0xAE603202, 0x00000002, 0x402C9A20, + 0xAE603502, 0x00000002, 0x002C9A83, 0xAE603502, 0x00000002, 0x402C9A20, + 0xAE604E02, 0x00000002, 0x002C9A83, 0xAE604E02, 0x00000002, 0x402C9A20, + 0xAE606402, 0x00000002, 0x002C9A83, 0xAE606402, 0x00000002, 0x402C9A20, + 0xADC07002, 0x00000002, 0x002C9A83, 0xADC07002, 0x00000002, 0x402EE420, + 0xAE603202, 0x00000002, 0x002EE483, 0xAE603202, 0x00000002, 0x402EE420, + 0xAE603502, 0x00000002, 0x002EE483, 0xAE603502, 0x00000002, 0x402EE420, + 0xAE606402, 0x00000002, 0x002EE483, 0xAE606402, 0x00000002, 0x402EE420, + 0xADC07002, 0x00000002, 0x002EE483, 0xADC07002, 0x00000002, 0x40411620, + 0xA000FA02, 0x00000002, 0x40411E20, 0xA000FA02, 0x00000002, 0x40412020, + 0xA000FA02, 0x00000002, 0x40412A20, 0xA000FA02, + // Block 694, offset 0xad80 + 0x00000002, 0x40414620, 0xA000FA02, 0x00000002, 0x40415420, 0xA000FA02, + 0x00000002, 0x403A6822, 0xAE60BE02, 0x00000002, 0x003A7C84, 0x00391C84, + 0x00000002, 0x003A7C9A, 0x00391C9A, 0x00000002, 0x40320820, 0xAE603202, + 0x00000002, 0x00320883, 0xAE603202, 0x00000002, 0x40320A20, 0xAE603202, + 0x00000002, 0x00320A83, 0xAE603202, 0x00000002, 0x40320A20, 0xAE605B02, + 0x00000002, 0x00320A83, 0xAE605B02, 0x00000002, 0x40320E21, 0xAE603702, + 0x00000002, 0x00320EA3, 0xAE603702, 0x00000002, 0x40320E21, 0xAE603C02, + 0x00000002, 0x00320EA3, 0xAE603C02, 0x00000002, 0x40321022, 0xAE603202, + 0x00000002, 0x003210C3, 0xAE603202, 0x00000002, 0x40321022, 0xAE604702, + 0x00000002, 0x003210C3, 0xAE604702, 0x00000002, 0x40321022, 0xAE605B02, + 0x00000002, 0x003210C3, 0xAE605B02, 0x00000002, + // Block 695, offset 0xadc0 + 0x40321022, 0xAD806802, 0x00000002, 0x003210C3, 0xAD806802, 0x00000002, + 0x40321023, 0xAE603502, 0x00000002, 0x003210E3, 0xAE603502, 0x00000002, + 0x40321023, 0xAE604E02, 0x00000002, 0x003210E3, 0xAE604E02, 0x00000002, + 0x40321023, 0xAE606402, 0x00000002, 0x003210E3, 0xAE606402, 0x00000002, + 0x40321023, 0xADC07002, 0x00000002, 0x003210E3, 0xADC07002, 0x00000002, + 0x40321024, 0xAE605B02, 0x00000002, 0x00321103, 0xAE605B02, 0x00000002, + 0x402C6020, 0xAE603202, 0x00000002, 0x002C6083, 0xAE603202, 0x00000002, + 0x40321024, 0xAE603202, 0x00000002, 0x00321103, 0xAE603202, 0x00000002, + 0x40321024, 0xAE603502, 0x00000002, 0x00321103, 0xAE603502, 0x00000002, + 0x40321024, 0xAE604E02, 0x00000002, 0x00321103, 0xAE604E02, 0x00000002, + 0x40321024, 0xAE606402, 0x00000002, 0x00321103, + // Block 696, offset 0xae00 + 0xAE606402, 0x00000002, 0x40321024, 0xADC07002, 0x00000002, 0x00321103, + 0xADC07002, 0x00000002, 0x0030BE83, 0xAE604E02, 0x00000002, 0x0030BE83, + 0xADC07002, 0x00000002, 0x00497283, 0x40496C20, 0x00000002, 0x00497284, + 0x40496C20, 0x00000002, 0x402BDE21, 0xAE603702, 0x00000002, 0x002BDEA3, + 0xAE603702, 0x00000002, 0x402BDE21, 0xAE603C02, 0x00000002, 0x002BDEA3, + 0xAE603C02, 0x00000002, 0x402BDE21, 0xAE604302, 0x00000002, 0x002BDEA3, + 0xAE604302, 0x00000002, 0x402BDE22, 0xAE604702, 0x00000002, 0x002BDEC3, + 0xAE604702, 0x00000002, 0x402BDE22, 0xAE605202, 0x00000002, 0x002BDEC3, + 0xAE605202, 0x00000002, 0x402C9821, 0xAE603C02, 0x00000002, 0x002C98A3, + 0xAE603C02, 0x00000002, 0x402C9822, 0xAE603202, 0x00000002, 0x002C98C3, + 0xAE603202, 0x00000002, 0x402C9822, 0xAE603502, + // Block 697, offset 0xae40 + 0x00000002, 0x002C98C3, 0xAE603502, 0x00000002, 0x402D9A21, 0xAE604702, + 0x00000002, 0x002D9AA3, 0xAE604702, 0x00000002, 0x402EE221, 0xAE603C02, + 0x00000002, 0x002EE2A3, 0xAE603C02, 0x00000002, 0x402EE221, 0xAE604E02, + 0x00000002, 0x002EE2A3, 0xAE604E02, 0x00000002, 0x402EE221, 0xAD806802, + 0x00000002, 0x002EE2A3, 0xAD806802, 0x00000002, 0x402EE222, 0xAE603202, + 0x00000002, 0x002EE2C3, 0xAE603202, 0x00000002, 0x402EE222, 0xAE603502, + 0x00000002, 0x002EE2C3, 0xAE603502, 0x00000002, 0x402EE222, 0xAE604702, + 0x00000002, 0x002EE2C3, 0xAE604702, 0x00000002, 0x402EE222, 0xAE604E02, + 0x00000002, 0x002EE2C3, 0xAE604E02, 0x00000002, 0x402EE222, 0xAE605202, + 0x00000002, 0x002EE2C3, 0xAE605202, 0x00000002, 0x402EE222, 0xACA05902, + 0x00000002, 0x002EE2C3, 0xACA05902, 0x00000002, + // Block 698, offset 0xae80 + 0x40306C21, 0xAE604702, 0x00000002, 0x00306CA3, 0xAE604702, 0x00000002, + 0x40306C21, 0xAE604E02, 0x00000002, 0x00306CA3, 0xAE604E02, 0x00000002, + 0x40306C21, 0xAD806802, 0x00000002, 0x00306CA3, 0xAD806802, 0x00000002, + 0xA000AD18, 0xA000BA18, 0x00000002, 0x00393C97, 0x00396497, 0x00000002, + 0x00393C9A, 0x0039649A, 0x00000002, 0x00393C97, 0x00397297, 0x00000002, + 0x00393C9A, 0x0039729A, 0x00000002, 0x00393C97, 0x00397497, 0x00000002, + 0x00393C9A, 0x0039749A, 0x00000002, 0x00393C99, 0x0039A499, 0x00000002, + 0x00393C99, 0x0039A699, 0x00000002, 0x00393C97, 0x003A4E97, 0x00000002, + 0x00393C98, 0x003A4E98, 0x00000002, 0x00393C99, 0x003A4E99, 0x00000002, + 0x00393C9A, 0x003A4E9A, 0x00000002, 0x00393C99, 0x003A5699, 0x00000002, + 0x00395697, 0x00396497, 0x00000002, 0x0039569A, + // Block 699, offset 0xaec0 + 0x0039649A, 0x00000002, 0x00395697, 0x00397297, 0x00000002, 0x0039569A, + 0x0039729A, 0x00000002, 0x00395697, 0x00397497, 0x00000002, 0x0039569A, + 0x0039749A, 0x00000002, 0x00395699, 0x0039A499, 0x00000002, 0x00395699, + 0x0039A699, 0x00000002, 0x00395697, 0x003A4E97, 0x00000002, 0x00395698, + 0x003A4E98, 0x00000002, 0x00395699, 0x003A4E99, 0x00000002, 0x0039569A, + 0x003A4E9A, 0x00000002, 0x00395699, 0x003A5699, 0x00000002, 0x0039589A, + 0x0039649A, 0x00000002, 0x00395899, 0x0039A499, 0x00000002, 0x00395899, + 0x0039A699, 0x00000002, 0x00395897, 0x003A4E97, 0x00000002, 0x00395898, + 0x003A4E98, 0x00000002, 0x00395899, 0x003A4E99, 0x00000002, 0x0039589A, + 0x003A4E9A, 0x00000002, 0x00395899, 0x003A5699, 0x00000002, 0x00396497, + 0x00397297, 0x00000002, 0x0039649A, 0x0039729A, + // Block 700, offset 0xaf00 + 0x00000002, 0x00396497, 0x003A4E97, 0x00000002, 0x0039649A, 0x003A4E9A, + 0x00000002, 0x00397297, 0x00396497, 0x00000002, 0x0039729A, 0x0039649A, + 0x00000002, 0x00397297, 0x003A4E97, 0x00000002, 0x0039729A, 0x003A4E9A, + 0x00000002, 0x00397497, 0x00396497, 0x00000002, 0x0039749A, 0x0039649A, + 0x00000002, 0x0039749A, 0x0039729A, 0x00000002, 0x00397497, 0x003A4E97, + 0x00000002, 0x0039749A, 0x003A4E9A, 0x00000002, 0x00398A9A, 0xA000D11A, + 0x00000002, 0x0039A49A, 0xA000D11A, 0x00000002, 0x0039C697, 0x00396497, + 0x00000002, 0x0039C698, 0x00396498, 0x00000002, 0x0039C69A, 0x0039649A, + 0x00000002, 0x0039C697, 0x00397297, 0x00000002, 0x0039C698, 0x00397298, + 0x00000002, 0x0039C69A, 0x0039729A, 0x00000002, 0x0039C697, 0x00397497, + 0x00000002, 0x0039C698, 0x00397498, 0x00000002, + // Block 701, offset 0xaf40 + 0x0039C69A, 0x0039749A, 0x00000002, 0x0039C699, 0x0039A499, 0x00000002, + 0x0039C69A, 0x0039A49A, 0x00000002, 0x0039C697, 0x003A4E97, 0x00000002, + 0x0039C698, 0x003A4E98, 0x00000002, 0x0039C69A, 0x003A4E9A, 0x00000002, + 0x0039C897, 0x00396497, 0x00000002, 0x0039C898, 0x00396498, 0x00000002, + 0x0039C899, 0x00396499, 0x00000002, 0x0039C89A, 0x0039649A, 0x00000002, + 0x0039C897, 0x00397297, 0x00000002, 0x0039C898, 0x00397298, 0x00000002, + 0x0039C899, 0x00397299, 0x00000002, 0x0039C89A, 0x0039729A, 0x00000002, + 0x0039C897, 0x00397497, 0x00000002, 0x0039C898, 0x00397498, 0x00000002, + 0x0039C899, 0x00397499, 0x00000002, 0x0039C89A, 0x0039749A, 0x00000002, + 0x0039C899, 0x0039A499, 0x00000002, 0x0039C89A, 0x0039A49A, 0x00000002, + 0x0039C897, 0x003A4E97, 0x00000002, 0x0039C898, + // Block 702, offset 0xaf80 + 0x003A4E98, 0x00000002, 0x0039C899, 0x003A4E99, 0x00000002, 0x0039C89A, + 0x003A4E9A, 0x00000002, 0x0039DC97, 0x00397297, 0x00000002, 0x0039DC9A, + 0x0039729A, 0x00000002, 0x0039DC97, 0x00397497, 0x00000002, 0x0039DC99, + 0x0039A499, 0x00000002, 0x0039DC9A, 0x0039A49A, 0x00000002, 0x0039DC97, + 0x003A4E97, 0x00000002, 0x0039DC9A, 0x003A4E9A, 0x00000002, 0x0039DE97, + 0x00396497, 0x00000002, 0x0039DE9A, 0x0039649A, 0x00000002, 0x0039DE97, + 0x00397297, 0x00000002, 0x0039DE9A, 0x0039729A, 0x00000002, 0x0039DE97, + 0x00397497, 0x00000002, 0x0039DE9A, 0x0039749A, 0x00000002, 0x0039DE99, + 0x0039A499, 0x00000002, 0x0039DE9A, 0x0039A49A, 0x00000002, 0x0039DE97, + 0x003A4E97, 0x00000002, 0x0039DE9A, 0x003A4E9A, 0x00000002, 0x0039E697, + 0x00397297, 0x00000002, 0x0039E69A, 0x0039729A, + // Block 703, offset 0xafc0 + 0x00000002, 0x0039E697, 0x003A4E97, 0x00000002, 0x0039E698, 0x003A4E98, + 0x00000002, 0x0039E69A, 0x003A4E9A, 0x00000002, 0x0039E897, 0x003A4E97, + 0x00000002, 0x0039E898, 0x003A4E98, 0x00000002, 0x0039E89A, 0x003A4E9A, + 0x00000002, 0x0039EE97, 0x00396497, 0x00000002, 0x0039EE9A, 0x0039649A, + 0x00000002, 0x0039EE97, 0x003A4E97, 0x00000002, 0x0039EE9A, 0x003A4E9A, + 0x00000002, 0x0039F097, 0x00396497, 0x00000002, 0x0039F09A, 0x0039649A, + 0x00000002, 0x0039F097, 0x003A4E97, 0x00000002, 0x0039F09A, 0x003A4E9A, + 0x00000002, 0x0039FC97, 0x00396497, 0x00000002, 0x0039FC9A, 0x0039649A, + 0x00000002, 0x0039FC97, 0x00397297, 0x00000002, 0x0039FC9A, 0x0039729A, + 0x00000002, 0x0039FC97, 0x00397497, 0x00000002, 0x0039FC9A, 0x0039749A, + 0x00000002, 0x0039FC97, 0x003A4E97, 0x00000002, + // Block 704, offset 0xb000 + 0x0039FC9A, 0x003A4E9A, 0x00000002, 0x003A1297, 0x00397297, 0x00000002, + 0x003A129A, 0x0039729A, 0x00000002, 0x003A1297, 0x003A4E97, 0x00000002, + 0x003A129A, 0x003A4E9A, 0x00000002, 0x003A4099, 0x00393899, 0x00000002, + 0x003A409A, 0x0039389A, 0x00000002, 0x003A4097, 0x00396497, 0x00000002, + 0x003A409A, 0x0039649A, 0x00000002, 0x003A4097, 0x00397297, 0x00000002, + 0x003A409A, 0x0039729A, 0x00000002, 0x003A4097, 0x00397497, 0x00000002, + 0x003A409A, 0x0039749A, 0x00000002, 0x003A4097, 0x003A4E97, 0x00000002, + 0x003A4098, 0x003A4E98, 0x00000002, 0x003A4099, 0x003A4E99, 0x00000002, + 0x003A409A, 0x003A4E9A, 0x00000002, 0x003A4E99, 0x00393899, 0x00000002, + 0x003A4E97, 0x00396497, 0x00000002, 0x003A4E9A, 0x0039649A, 0x00000002, + 0x003A4E97, 0x00397297, 0x00000002, 0x003A4E9A, + // Block 705, offset 0xb040 + 0x0039729A, 0x00000002, 0x003A4E97, 0x00397497, 0x00000002, 0x003A4E9A, + 0x0039749A, 0x00000002, 0x003A4E97, 0x003A4E97, 0x00000002, 0x003A4E99, + 0x003A4E99, 0x00000002, 0x003A4E9A, 0x003A4E9A, 0x00000002, 0x003A5697, + 0x00396497, 0x00000002, 0x003A569A, 0x0039649A, 0x00000002, 0x003A5697, + 0x00397297, 0x00000002, 0x003A569A, 0x0039729A, 0x00000002, 0x003A5697, + 0x00397497, 0x00000002, 0x003A569A, 0x0039749A, 0x00000002, 0x003A5699, + 0x0039A499, 0x00000002, 0x003A5699, 0x0039A699, 0x00000002, 0x003A5697, + 0x003A4E97, 0x00000002, 0x003A5698, 0x003A4E98, 0x00000002, 0x003A5699, + 0x003A4E99, 0x00000002, 0x003A569A, 0x003A4E9A, 0x00000002, 0x003A5699, + 0x003A5699, 0x00000002, 0x403A7220, 0xA000C602, 0x00000002, 0x003A7484, + 0x00391C84, 0x00000002, 0xAE604702, 0xAE603802, + // Block 706, offset 0xb080 + 0x00000002, 0x40062C20, 0xAE603802, 0x00000002, 0x40063620, 0xAE603802, + 0x00000002, 0x40063820, 0xAE603802, 0x00000002, 0x402BDE20, 0xAE603602, + 0x00000002, 0x002BDE88, 0xAE603602, 0x00000002, 0x402BDE20, 0xAE603702, + 0x00000002, 0x002BDE88, 0xAE603702, 0x00000002, 0x402BDE20, 0xAE603802, + 0x00000002, 0x002BDE88, 0xAE603802, 0x00000002, 0x402BDE20, 0xAE603902, + 0x00000002, 0x002BDE88, 0xAE603902, 0x00000003, 0x402BDE20, 0xAE604302, + 0xAE603802, 0x00000003, 0x002BDE88, 0xAE604302, 0xAE603802, 0x00000004, + 0x002BDE84, 0xA0013904, 0x002C9884, 0xAE603802, 0x00000004, 0x002BDE8A, + 0xA0013904, 0x002C988A, 0xAE603802, 0x00000002, 0x402BE020, 0xAE603602, + 0x00000002, 0x002BE083, 0xAE603602, 0x00000002, 0x402BE020, 0xAE603702, + 0x00000002, 0x002BE083, 0xAE603702, 0x00000002, + // Block 707, offset 0xb0c0 + 0x402BE020, 0xAE603802, 0x00000002, 0x002BE083, 0xAE603802, 0x00000002, + 0x402BE020, 0xAE603902, 0x00000002, 0x002BE083, 0xAE603902, 0x00000002, + 0x402BE220, 0xAE603602, 0x00000002, 0x002BE283, 0xAE603602, 0x00000002, + 0x402BE220, 0xAE603702, 0x00000002, 0x002BE283, 0xAE603702, 0x00000002, + 0x402BE220, 0xAE603802, 0x00000002, 0x002BE283, 0xAE603802, 0x00000002, + 0x402BE220, 0xAE603902, 0x00000002, 0x002BE283, 0xAE603902, 0x00000002, + 0x402C0A20, 0xAE603902, 0x00000002, 0x002C0A88, 0xAE603902, 0x00000002, + 0x402C3A20, 0xAE603802, 0x00000002, 0x002C3A88, 0xAE603802, 0x00000003, + 0x402C3A20, 0xACA05602, 0xAE603802, 0x00000003, 0x002C3A88, 0xACA05602, + 0xAE603802, 0x00000002, 0x402C6220, 0xAE603902, 0x00000002, 0x002C6288, + 0xAE603902, 0x00000002, 0x402C9820, 0xAE603602, + // Block 708, offset 0xb100 + 0x00000002, 0x002C9888, 0xAE603602, 0x00000002, 0x402C9820, 0xAE603702, + 0x00000002, 0x002C9888, 0xAE603702, 0x00000002, 0x402C9820, 0xAE603802, + 0x00000002, 0x002C9888, 0xAE603802, 0x00000002, 0x402C9820, 0xAE603902, + 0x00000002, 0x002C9888, 0xAE603902, 0x00000003, 0x402C9820, 0xAE605B02, + 0xAE603802, 0x00000003, 0x002C9888, 0xAE605B02, 0xAE603802, 0x00000002, + 0x402C9A20, 0xAE603602, 0x00000002, 0x002C9A83, 0xAE603602, 0x00000002, + 0x402C9A20, 0xAE603702, 0x00000002, 0x002C9A83, 0xAE603702, 0x00000002, + 0x402C9A20, 0xAE603802, 0x00000002, 0x002C9A83, 0xAE603802, 0x00000002, + 0x402C9A20, 0xAE603902, 0x00000002, 0x002C9A83, 0xAE603902, 0x00000002, + 0x402D2220, 0xAE603802, 0x00000002, 0x002D2288, 0xAE603802, 0x00000002, + 0x402D6820, 0xAE603902, 0x00000002, 0x002D6888, + // Block 709, offset 0xb140 + 0xAE603902, 0x00000002, 0x402D9A20, 0xAE603602, 0x00000002, 0x002D9A88, + 0xAE603602, 0x00000002, 0x402D9A20, 0xAE603702, 0x00000002, 0x002D9A88, + 0xAE603702, 0x00000002, 0x402D9A20, 0xAE603802, 0x00000002, 0x002D9A88, + 0xAE603802, 0x00000002, 0x402D9A20, 0xAE603902, 0x00000002, 0x002D9A88, + 0xAE603902, 0x00000003, 0x402D9A20, 0xAE604702, 0xAE603802, 0x00000003, + 0x002D9A88, 0xAE604702, 0xAE603802, 0x00000002, 0x402DFE20, 0xAE603802, + 0x00000002, 0x002DFE88, 0xAE603802, 0x00000002, 0x402DFE20, 0xAE603902, + 0x00000002, 0x002DFE88, 0xAE603902, 0x00000002, 0x402E2220, 0xAE603802, + 0x00000002, 0x002E2288, 0xAE603802, 0x00000002, 0x402E2220, 0xAE603902, + 0x00000002, 0x002E2288, 0xAE603902, 0x00000003, 0x402E2220, 0xAE603902, + 0xAE605B02, 0x00000003, 0x002E2288, 0xAE603902, + // Block 710, offset 0xb180 + 0xAE605B02, 0x00000002, 0x402E8220, 0xAE603802, 0x00000002, 0x002E8288, + 0xAE603802, 0x00000002, 0x402E8220, 0xAE603902, 0x00000002, 0x002E8288, + 0xAE603902, 0x00000002, 0x402E9E20, 0xAE603702, 0x00000002, 0x002E9E88, + 0xAE603702, 0x00000002, 0x402E9E20, 0xAE603802, 0x00000002, 0x002E9E88, + 0xAE603802, 0x00000002, 0x402E9E20, 0xAE603902, 0x00000002, 0x002E9E88, + 0xAE603902, 0x00000002, 0x402EE220, 0xAE603602, 0x00000002, 0x002EE288, + 0xAE603602, 0x00000002, 0x402EE220, 0xAE603702, 0x00000002, 0x002EE288, + 0xAE603702, 0x00000003, 0x402EE220, 0xAE603702, 0xAE603802, 0x00000003, + 0x002EE288, 0xAE603702, 0xAE603802, 0x00000003, 0x402EE220, 0xAE603702, + 0xAE604702, 0x00000003, 0x002EE288, 0xAE603702, 0xAE604702, 0x00000003, + 0x402EE220, 0xAE603702, 0xAE605B02, 0x00000003, + // Block 711, offset 0xb1c0 + 0x002EE288, 0xAE603702, 0xAE605B02, 0x00000002, 0x402EE220, 0xAE603802, + 0x00000002, 0x002EE288, 0xAE603802, 0x00000002, 0x402EE220, 0xAE603902, + 0x00000002, 0x002EE288, 0xAE603902, 0x00000003, 0x402EE220, 0xA0005402, + 0xAE603802, 0x00000003, 0x002EE288, 0xA0005402, 0xAE603802, 0x00000003, + 0x402EE220, 0xAE605B02, 0xAE603802, 0x00000003, 0x002EE288, 0xAE605B02, + 0xAE603802, 0x00000002, 0x402EE420, 0xAE603602, 0x00000002, 0x002EE483, + 0xAE603602, 0x00000002, 0x402EE420, 0xAE603702, 0x00000002, 0x002EE483, + 0xAE603702, 0x00000002, 0x402EE420, 0xAE603802, 0x00000002, 0x002EE483, + 0xAE603802, 0x00000002, 0x402EE420, 0xAE603902, 0x00000002, 0x002EE483, + 0xAE603902, 0x00000002, 0x402EE620, 0xAE603502, 0x00000002, 0x002EE683, + 0xAE603502, 0x00000002, 0x402EE620, 0xAE603602, + // Block 712, offset 0xb200 + 0x00000002, 0x002EE683, 0xAE603602, 0x00000002, 0x402EE620, 0xAE603702, + 0x00000002, 0x002EE683, 0xAE603702, 0x00000002, 0x402EE620, 0xAE603802, + 0x00000002, 0x002EE683, 0xAE603802, 0x00000002, 0x402EE620, 0xAE603902, + 0x00000002, 0x002EE683, 0xAE603902, 0x00000002, 0x402F2C20, 0xAE603802, + 0x00000002, 0x002F2C88, 0xAE603802, 0x00000002, 0x402F7A20, 0xAE603802, + 0x00000002, 0x002F7A88, 0xAE603802, 0x00000002, 0x402F7A20, 0xAE603902, + 0x00000002, 0x002F7A88, 0xAE603902, 0x00000003, 0x402F7A20, 0xAE603902, + 0xAE605B02, 0x00000003, 0x002F7A88, 0xAE603902, 0xAE605B02, 0x00000002, + 0x402FE620, 0xAE603802, 0x00000002, 0x002FE688, 0xAE603802, 0x00000003, + 0x402FE620, 0xAE603802, 0xAE605202, 0x00000003, 0x002FE688, 0xAE603802, + 0xAE605202, 0x00000002, 0x402FE620, 0xAE603902, + // Block 713, offset 0xb240 + 0x00000002, 0x002FE688, 0xAE603902, 0x00000003, 0x402FE620, 0xAE603902, + 0xAE605202, 0x00000003, 0x002FE688, 0xAE603902, 0xAE605202, 0x00000002, + 0x40302C20, 0xAE603902, 0x00000002, 0x00302C88, 0xAE603902, 0x00000002, + 0x40306C20, 0xAE603602, 0x00000002, 0x00306C88, 0xAE603602, 0x00000002, + 0x40306C20, 0xAE603702, 0x00000002, 0x00306C88, 0xAE603702, 0x00000003, + 0x40306C20, 0xAE603702, 0xAE603802, 0x00000003, 0x00306C88, 0xAE603702, + 0xAE603802, 0x00000002, 0x40306C20, 0xAE603802, 0x00000002, 0x00306C88, + 0xAE603802, 0x00000002, 0x40306C20, 0xAE603902, 0x00000002, 0x00306C88, + 0xAE603902, 0x00000003, 0x40306C20, 0xAE604702, 0xAE603802, 0x00000003, + 0x00306C88, 0xAE604702, 0xAE603802, 0x00000002, 0x40306E20, 0xAE603602, + 0x00000002, 0x00306E83, 0xAE603602, 0x00000002, + // Block 714, offset 0xb280 + 0x40306E20, 0xAE603702, 0x00000002, 0x00306E83, 0xAE603702, 0x00000002, + 0x40306E20, 0xAE603802, 0x00000002, 0x00306E83, 0xAE603802, 0x00000002, + 0x40306E20, 0xAE603902, 0x00000002, 0x00306E83, 0xAE603902, 0x00000002, + 0x4030BE20, 0xAE603702, 0x00000002, 0x0030BE88, 0xAE603702, 0x00000002, + 0x4030BE20, 0xAE603902, 0x00000002, 0x0030BE88, 0xAE603902, 0x00000002, + 0x4030E220, 0xAE603802, 0x00000002, 0x0030E288, 0xAE603802, 0x00000002, + 0x4030E220, 0xAE603902, 0x00000002, 0x0030E288, 0xAE603902, 0x00000002, + 0x40310020, 0xAE603602, 0x00000002, 0x00310088, 0xAE603602, 0x00000002, + 0x40310020, 0xAE603702, 0x00000002, 0x00310088, 0xAE603702, 0x00000002, + 0x40310020, 0xAE603802, 0x00000002, 0x00310088, 0xAE603802, 0x00000002, + 0x40310020, 0xAE603902, 0x00000002, 0x00310088, + // Block 715, offset 0xb2c0 + 0xAE603902, 0x00000002, 0x40312A20, 0xAE603802, 0x00000002, 0x00312A88, + 0xAE603802, 0x00000002, 0x40312A20, 0xAE603902, 0x00000002, 0x00312A88, + 0xAE603902, 0x00000003, 0x40325220, 0xAE602202, 0xAE603802, 0x00000003, + 0x00325288, 0xAE602202, 0xAE603802, 0x00000004, 0x40325220, 0xAE602202, + 0xAE603802, 0xAF007F02, 0x00000004, 0x00325288, 0xAE602202, 0xAE603802, + 0xAF007F02, 0x00000003, 0x40325220, 0xAE602A02, 0xAE603802, 0x00000003, + 0x00325288, 0xAE602A02, 0xAE603802, 0x00000004, 0x40325220, 0xAE602A02, + 0xAE603802, 0xAF007F02, 0x00000004, 0x00325288, 0xAE602A02, 0xAE603802, + 0xAF007F02, 0x00000002, 0x40325220, 0xAE603802, 0x00000002, 0x00325288, + 0xAE603802, 0x00000003, 0x40325220, 0xAE603802, 0xAF007F02, 0x00000003, + 0x40325C20, 0xAE602202, 0xAE603802, 0x00000003, + // Block 716, offset 0xb300 + 0x00325C88, 0xAE602202, 0xAE603802, 0x00000003, 0x40325C20, 0xAE602A02, + 0xAE603802, 0x00000003, 0x00325C88, 0xAE602A02, 0xAE603802, 0x00000002, + 0x40325C20, 0xAE603802, 0x00000002, 0x00325C88, 0xAE603802, 0x00000003, + 0x40326820, 0xAE602202, 0xAE603802, 0x00000003, 0x00326888, 0xAE602202, + 0xAE603802, 0x00000004, 0x40326820, 0xAE602202, 0xAE603802, 0xAF007F02, + 0x00000004, 0x00326888, 0xAE602202, 0xAE603802, 0xAF007F02, 0x00000003, + 0x40326820, 0xAE602A02, 0xAE603802, 0x00000003, 0x00326888, 0xAE602A02, + 0xAE603802, 0x00000004, 0x40326820, 0xAE602A02, 0xAE603802, 0xAF007F02, + 0x00000004, 0x00326888, 0xAE602A02, 0xAE603802, 0xAF007F02, 0x00000002, + 0x40326820, 0xAE603802, 0x00000002, 0x00326888, 0xAE603802, 0x00000003, + 0x40326820, 0xAE603802, 0xAF007F02, 0x00000003, + // Block 717, offset 0xb340 + 0x40326C20, 0xAE602202, 0xAE603802, 0x00000003, 0x00326C88, 0xAE602202, + 0xAE603802, 0x00000003, 0x40326C20, 0xAE602A02, 0xAE603802, 0x00000003, + 0x00326C88, 0xAE602A02, 0xAE603802, 0x00000002, 0x40326C20, 0xAE603802, + 0x00000002, 0x00326C88, 0xAE603802, 0x00000003, 0x40326C20, 0xAE604702, + 0xAE603802, 0x00000003, 0x40327C20, 0xAE602202, 0xAE603802, 0x00000003, + 0x00327C88, 0xAE602202, 0xAE603802, 0x00000003, 0x40327C20, 0xAE602A02, + 0xAE603802, 0x00000003, 0x00327C88, 0xAE602A02, 0xAE603802, 0x00000002, + 0x40327C20, 0xAE603802, 0x00000002, 0x00327C88, 0xAE603802, 0x00000003, + 0x40329820, 0xAE602202, 0xAE603802, 0x00000003, 0x40329820, 0xAE602A02, + 0xAE603802, 0x00000003, 0x00329888, 0xAE602A02, 0xAE603802, 0x00000002, + 0x40329820, 0xAE603802, 0x00000002, 0x00329888, + // Block 718, offset 0xb380 + 0xAE603802, 0x00000003, 0x40329820, 0xAE604702, 0xAE603802, 0x00000003, + 0x4032A220, 0xAE602202, 0xAE603802, 0x00000003, 0x0032A288, 0xAE602202, + 0xAE603802, 0x00000004, 0x4032A220, 0xAE602202, 0xAE603802, 0xAF007F02, + 0x00000004, 0x0032A288, 0xAE602202, 0xAE603802, 0xAF007F02, 0x00000003, + 0x4032A220, 0xAE602A02, 0xAE603802, 0x00000003, 0x0032A288, 0xAE602A02, + 0xAE603802, 0x00000004, 0x4032A220, 0xAE602A02, 0xAE603802, 0xAF007F02, + 0x00000004, 0x0032A288, 0xAE602A02, 0xAE603802, 0xAF007F02, 0x00000002, + 0x4032A220, 0xAE603802, 0x00000002, 0x0032A288, 0xAE603802, 0x00000003, + 0x4032A220, 0xAE603802, 0xAF007F02, 0x00000002, 0x402BDE20, 0xAE603202, + 0x00000002, 0x402C9820, 0xAE603202, 0x00000002, 0x402D9A20, 0xAE603202, + 0x00000002, 0x402EE220, 0xAE603202, 0x00000002, + // Block 719, offset 0xb3c0 + 0x40306C20, 0xAE603202, 0x00000002, 0x402C9A20, 0xAE603C02, 0x00000002, + 0x002C9A83, 0xAE603C02, 0x00000003, 0x0003F483, 0x6C030A20, 0x4003F620, + 0x00000003, 0x0003F483, 0x6C110E20, 0x4003F620, 0x00000003, 0x0003F483, + 0x6C272220, 0x4003F620, 0x00000003, 0x0003F483, 0x6C37B420, 0x4003F620, + 0x00000003, 0x0003F483, 0x6C549820, 0x4003F620, 0x00000003, 0x0003F483, + 0x6C5D8420, 0x4003F620, 0x00000003, 0x0003F483, 0x6C61F420, 0x4003F620, + 0x00000003, 0x0003F483, 0x6C64CA20, 0x4003F620, 0x00000003, 0x0003F483, + 0x6C6C2E20, 0x4003F620, 0x00000003, 0x0003F483, 0x6C6F9A20, 0x4003F620, + 0x00000003, 0x0003F483, 0x6C814020, 0x4003F620, 0x00000003, 0x0003F483, + 0x6C8F2420, 0x4003F620, 0x00000003, 0x0003F483, 0x6C9FE620, 0x4003F620, + 0x00000003, 0x0003F483, 0x6CA25C20, 0x4003F620, + // Block 720, offset 0xb400 + 0x00000003, 0x0003F483, 0x6CB4C620, 0x4003F620, 0x00000003, 0x0003F483, + 0x6CB6C820, 0x4003F620, 0x00000003, 0x0003F483, 0x6CC63620, 0x4003F620, + 0x00000003, 0x0003F483, 0x6CC9F220, 0x4003F620, 0x00000003, 0x0003F483, + 0x6CCF3620, 0x4003F620, 0x00000003, 0x0003F483, 0x6CD22420, 0x4003F620, + 0x00000003, 0x0003F483, 0x6CD70220, 0x4003F620, 0x00000003, 0x0003F483, + 0x6CD87420, 0x4003F620, 0x00000003, 0x0003F483, 0x6CE27020, 0x4003F620, + 0x00000003, 0x0003F483, 0x6CE91020, 0x4003F620, 0x00000003, 0x0003F483, + 0x6CF41420, 0x4003F620, 0x00000003, 0x0003F483, 0x6D007020, 0x4003F620, + 0x00000003, 0x0003F483, 0x6D04B220, 0x4003F620, 0x00000003, 0x0003F483, + 0x6D08F820, 0x4003F620, 0x00000003, 0x0003F483, 0x6D13B620, 0x4003F620, + 0x00000003, 0x0003F483, 0x6D1F9820, 0x4003F620, + // Block 721, offset 0xb440 + 0x00000003, 0x0003F483, 0x6D266820, 0x4003F620, 0x00000003, 0x0003F483, + 0x6D357020, 0x4003F620, 0x00000003, 0x0003F483, 0x6D399220, 0x4003F620, + 0x00000003, 0x0003F483, 0x6D3AC620, 0x4003F620, 0x00000003, 0x0003F483, + 0x6D3E6020, 0x4003F620, 0x00000003, 0x0003F483, 0x6D3F2A20, 0x4003F620, + 0x00000003, 0x0004B083, 0x6C011220, 0x4004B220, 0x00000003, 0x0004B083, + 0x6C044020, 0x4004B220, 0x00000003, 0x0004B083, 0x6C079220, 0x4004B220, + 0x00000003, 0x0004B083, 0x6C26E020, 0x4004B220, 0x00000003, 0x0004B083, + 0x6C2A1220, 0x4004B220, 0x00000003, 0x0004B083, 0x6C2D0A20, 0x4004B220, + 0x00000003, 0x0004B083, 0x6C37B420, 0x4004B220, 0x00000003, 0x0004B083, + 0x6CC9F220, 0x4004B220, 0x00000003, 0x0004B083, 0x6CD16420, 0x4004B220, + 0x00000003, 0x0029CE83, 0x4029CC20, 0x6C2D0A20, + // Block 722, offset 0xb480 + 0x00000003, 0x0029CE83, 0x4029CC20, 0x6CC63620, 0x00000003, 0x0029CE83, + 0x4029CC20, 0x6D266820, 0x00000003, 0x0029CE83, 0x4029CE20, 0x6C2D0A20, + 0x00000003, 0x0029CE83, 0x4029CE20, 0x6CC63620, 0x00000003, 0x0029CE83, + 0x4029CE20, 0x6D266820, 0x00000003, 0x0029CE83, 0x4029D020, 0x6C2D0A20, + 0x00000003, 0x0029CE83, 0x4029D020, 0x6CC63620, 0x00000003, 0x0029CE83, + 0x4029D020, 0x6D266820, 0x00000003, 0x0029CE83, 0x4029D220, 0x6C2D0A20, + 0x00000003, 0x0029CE83, 0x4029D220, 0x6CC63620, 0x00000003, 0x0029CE83, + 0x4029D420, 0x6C2D0A20, 0x00000003, 0x0029CE83, 0x4029D420, 0x6CC63620, + 0x00000003, 0x0029CE83, 0x4029D620, 0x6C2D0A20, 0x00000003, 0x0029CE83, + 0x4029D620, 0x6CC63620, 0x00000003, 0x0029CE83, 0x4029D820, 0x6C2D0A20, + 0x00000003, 0x0029CE83, 0x4029D820, 0x6CC63620, + // Block 723, offset 0xb4c0 + 0x00000003, 0x0029CE83, 0x4029DA20, 0x6C2D0A20, 0x00000003, 0x0029CE83, + 0x4029DA20, 0x6CC63620, 0x00000003, 0x0029CE83, 0x4029DC20, 0x6C2D0A20, + 0x00000003, 0x0029CE83, 0x4029DC20, 0x6CC63620, 0x00000003, 0x0029CE83, + 0x4029DE20, 0x6C2D0A20, 0x00000003, 0x0029CE83, 0x4029DE20, 0x6CC63620, + 0x00000003, 0x0029D083, 0x4029CC20, 0x6C2D0A20, 0x00000003, 0x0029D083, + 0x4029CC20, 0x6CC63620, 0x00000003, 0x0029D083, 0x4029CE20, 0x6C2D0A20, + 0x00000003, 0x0029D083, 0x4029CE20, 0x6CC63620, 0x00000003, 0x0029D083, + 0x4029D020, 0x6C2D0A20, 0x00000003, 0x0029D083, 0x4029D020, 0x6CC63620, + 0x00000003, 0x0029D083, 0x4029D220, 0x6C2D0A20, 0x00000003, 0x0029D083, + 0x4029D220, 0x6CC63620, 0x00000003, 0x0029D083, 0x4029D420, 0x6C2D0A20, + 0x00000003, 0x0029D083, 0x4029D420, 0x6CC63620, + // Block 724, offset 0xb500 + 0x00000003, 0x0029D083, 0x4029D620, 0x6CC63620, 0x00000003, 0x0029D083, + 0x4029D820, 0x6CC63620, 0x00000003, 0x0029D083, 0x4029DA20, 0x6CC63620, + 0x00000003, 0x0029D083, 0x4029DC20, 0x6CC63620, 0x00000003, 0x0029D083, + 0x4029DE20, 0x6CC63620, 0x00000003, 0x0029D283, 0x4029CC20, 0x6CC63620, + 0x00000003, 0x0029D283, 0x4029CE20, 0x6CC63620, 0x00000002, 0x402BDE1C, + 0xAE604702, 0x00000002, 0x002BDE03, 0xAE604702, 0x00000002, 0x402BDE1C, + 0xAE605202, 0x00000002, 0x002BDE03, 0xAE605202, 0x00000002, 0x402BDE1D, + 0xAE603702, 0x00000002, 0x002BDE23, 0xAE603702, 0x00000002, 0x402BDE1D, + 0xAE603C02, 0x00000002, 0x002BDE23, 0xAE603C02, 0x00000002, 0x402BDE1D, + 0xAE604302, 0x00000002, 0x002BDE23, 0xAE604302, 0x00000002, 0x402BDE1F, + 0xAE603702, 0x00000002, 0x002BDE63, 0xAE603702, + // Block 725, offset 0xb540 + 0x00000002, 0x402BDE1F, 0xAE603C02, 0x00000002, 0x002BDE63, 0xAE603C02, + 0x00000002, 0x402C981C, 0xAE603202, 0x00000002, 0x002C9803, 0xAE603202, + 0x00000002, 0x402C981C, 0xAE603502, 0x00000002, 0x002C9803, 0xAE603502, + 0x00000002, 0x402D9A1D, 0xAE604702, 0x00000002, 0x002D9A23, 0xAE604702, + 0x00000002, 0x402EE21C, 0xAE603202, 0x00000002, 0x002EE203, 0xAE603202, + 0x00000002, 0x402EE21C, 0xAE603502, 0x00000002, 0x002EE203, 0xAE603502, + 0x00000002, 0x402EE21C, 0xAE604702, 0x00000002, 0x002EE203, 0xAE604702, + 0x00000002, 0x402EE21C, 0xAE604E02, 0x00000002, 0x002EE203, 0xAE604E02, + 0x00000002, 0x402EE21C, 0xAE605202, 0x00000002, 0x002EE203, 0xAE605202, + 0x00000002, 0x402EE21C, 0xACA05902, 0x00000002, 0x002EE203, 0xACA05902, + 0x00000002, 0x402EE21D, 0xAE603C02, 0x00000002, + // Block 726, offset 0xb580 + 0x002EE223, 0xAE603C02, 0x00000002, 0x402EE21D, 0xAE604E02, 0x00000002, + 0x002EE223, 0xAE604E02, 0x00000002, 0x402EE21D, 0xAD806802, 0x00000002, + 0x002EE223, 0xAD806802, 0x00000002, 0x402EE21F, 0xAE603C02, 0x00000002, + 0x002EE263, 0xAE603C02, 0x00000002, 0x402EE21F, 0xAD806802, 0x00000002, + 0x002EE263, 0xAD806802, 0x00000002, 0x40306C1C, 0xAE604702, 0x00000002, + 0x00306C03, 0xAE604702, 0x00000002, 0x40306C1D, 0xAE604E02, 0x00000002, + 0x00306C23, 0xAE604E02, 0x00000002, 0x40306C1D, 0xAD806802, 0x00000002, + 0x00306C23, 0xAD806802, 0x00000002, 0x40306C1F, 0xAD806802, 0x00000002, + 0x00306C63, 0xAD806802, 0x00000004, 0x2D399283, 0x6CD2FC20, 0x6C5B8A20, + 0x6CCF3620, 0x00000003, 0x0003F483, 0x6C000220, 0x4003F620, 0x00000003, + 0x0003F483, 0x6C003620, 0x4003F620, 0x00000003, + // Block 727, offset 0xb5c0 + 0x0003F483, 0x6C006220, 0x4003F620, 0x00000003, 0x0003F483, 0x6C007420, + 0x4003F620, 0x00000003, 0x0003F483, 0x6C008820, 0x4003F620, 0x00000003, + 0x0003F483, 0x6C00B620, 0x4003F620, 0x00000003, 0x0003F483, 0x6C00DC20, + 0x4003F620, 0x00000003, 0x0003F483, 0x6C018420, 0x4003F620, 0x00000003, + 0x0003F483, 0x6C028820, 0x4003F620, 0x00000003, 0x0003F483, 0x6C02D820, + 0x4003F620, 0x00000003, 0x0003F483, 0x6C049620, 0x4003F620, 0x00000003, + 0x0003F483, 0x6C049C20, 0x4003F620, 0x00000003, 0x0003F483, 0x6C049E20, + 0x4003F620, 0x00000003, 0x0003F483, 0x6C04C620, 0x4003F620, 0x00000003, + 0x0003F483, 0x6C04D020, 0x4003F620, 0x00000003, 0x0003F483, 0x6C05E620, + 0x4003F620, 0x00000003, 0x0003F483, 0x6C079020, 0x4003F620, 0x00000003, + 0x0003F483, 0x6C0BA020, 0x4003F620, 0x00000003, + // Block 728, offset 0xb600 + 0x0003F483, 0x6C0BC020, 0x4003F620, 0x00000003, 0x0003F483, 0x6C0E3E20, + 0x4003F620, 0x00000003, 0x0003F483, 0x6C127420, 0x4003F620, 0x00000003, + 0x0003F483, 0x6C147E20, 0x4003F620, 0x00000003, 0x0003F483, 0x6C148220, + 0x4003F620, 0x00000003, 0x0003F483, 0x6C185220, 0x4003F620, 0x00000003, + 0x0003F483, 0x6C2BB220, 0x4003F620, 0x00000003, 0x0003F483, 0x6C2CA220, + 0x4003F620, 0x00000003, 0x0003F483, 0x6C2FD820, 0x4003F620, 0x00000003, + 0x0003F483, 0x6C3CEE20, 0x4003F620, 0x00000003, 0x0003F483, 0x6C41DC20, + 0x4003F620, 0x00000003, 0x0003F483, 0x6C741620, 0x4003F620, 0x00000003, + 0x0003F483, 0x6C791620, 0x4003F620, 0x00000003, 0x0003F483, 0x6C7DE020, + 0x4003F620, 0x00000003, 0x0003F483, 0x6C86F020, 0x4003F620, 0x00000003, + 0x0003F483, 0x6CA6A420, 0x4003F620, 0x00000003, + // Block 729, offset 0xb640 + 0x0003F483, 0x6D0F3820, 0x4003F620, 0x00000003, 0x0003F483, 0x6D2EFA20, + 0x4003F620, 0x00000003, 0x0004B083, 0x6C007420, 0x4004B220, 0x00000003, + 0x0004B083, 0x6C00DC20, 0x4004B220, 0x00000003, 0x0004B083, 0x6C093E20, + 0x4004B220, 0x00000003, 0x0004B083, 0x6C096620, 0x4004B220, 0x00000003, + 0x0004B083, 0x6C0FC420, 0x4004B220, 0x00000003, 0x0004B083, 0x6C555C20, + 0x4004B220, 0x00000003, 0x0004B083, 0x6C9AC020, 0x4004B220, 0x00000003, + 0x0004B083, 0x6CA4CC20, 0x4004B220, 0x00000003, 0x0004B083, 0x6CB9B020, + 0x4004B220, 0x00000003, 0x0029CE83, 0x4029CC20, 0x6C049620, 0x00000003, + 0x0029CE83, 0x4029CC20, 0x6C049C20, 0x00000003, 0x0029CE83, 0x4029CC20, + 0x6C555C20, 0x00000003, 0x0029CE83, 0x4029CE20, 0x6C049620, 0x00000003, + 0x0029CE83, 0x4029CE20, 0x6C049C20, 0x00000003, + // Block 730, offset 0xb680 + 0x0029CE83, 0x4029CE20, 0x6C555C20, 0x00000003, 0x0029CE83, 0x4029D020, + 0x6C049620, 0x00000003, 0x0029CE83, 0x4029D020, 0x6C049C20, 0x00000003, + 0x0029CE83, 0x4029D020, 0x6C555C20, 0x00000003, 0x0029CE83, 0x4029D220, + 0x6C049620, 0x00000003, 0x0029CE83, 0x4029D220, 0x6C555C20, 0x00000003, + 0x0029CE83, 0x4029D420, 0x6C049620, 0x00000003, 0x0029CE83, 0x4029D420, + 0x6C555C20, 0x00000003, 0x0029CE83, 0x4029D620, 0x6C049620, 0x00000003, + 0x0029CE83, 0x4029D620, 0x6C555C20, 0x00000003, 0x0029CE83, 0x4029D820, + 0x6C049620, 0x00000003, 0x0029CE83, 0x4029D820, 0x6C555C20, 0x00000003, + 0x0029CE83, 0x4029DA20, 0x6C049620, 0x00000003, 0x0029CE83, 0x4029DA20, + 0x6C555C20, 0x00000003, 0x0029CE83, 0x4029DC20, 0x6C049620, 0x00000003, + 0x0029CE83, 0x4029DC20, 0x6C555C20, 0x00000003, + // Block 731, offset 0xb6c0 + 0x0029CE83, 0x4029DE20, 0x6C049620, 0x00000003, 0x0029CE83, 0x4029DE20, + 0x6C555C20, 0x00000003, 0x0029D083, 0x4029CC20, 0x6C049620, 0x00000003, + 0x0029D083, 0x4029CC20, 0x6C555C20, 0x00000003, 0x0029D083, 0x4029CE20, + 0x6C049620, 0x00000003, 0x0029D083, 0x4029CE20, 0x6C555C20, 0x00000003, + 0x0029D083, 0x4029D020, 0x6C049620, 0x00000003, 0x0029D083, 0x4029D020, + 0x6C555C20, 0x00000003, 0x0029D083, 0x4029D220, 0x6C049620, 0x00000003, + 0x0029D083, 0x4029D220, 0x6C555C20, 0x00000003, 0x0029D083, 0x4029D420, + 0x6C049620, 0x00000003, 0x0029D083, 0x4029D420, 0x6C555C20, 0x00000003, + 0x0029D083, 0x4029D620, 0x6C049620, 0x00000003, 0x0029D083, 0x4029D820, + 0x6C049620, 0x00000003, 0x0029D083, 0x4029DA20, 0x6C049620, 0x00000003, + 0x0029D083, 0x4029DC20, 0x6C049620, 0x00000003, + // Block 732, offset 0xb700 + 0x0029D083, 0x4029DE20, 0x6C049620, 0x00000003, 0x0029D283, 0x4029CC20, + 0x6C049620, 0x00000003, 0x0029D283, 0x4029CE20, 0x6C049620, 0x00000004, + 0x2C741683, 0x6C111820, 0x6C0BD220, 0x6C3CEE20, +} + +// mainContractElem: 4120 entries, 16480 bytes +var mainContractElem = [4120]uint32{ + // Block 0, offset 0x0 + 0x402E2220, 0xE0000CFB, 0xE0000CFB, 0x002E2288, 0xE0000D01, 0xE0000D01, + 0x40332220, 0x40332A20, 0x40333220, 0x00332288, 0x00332A88, 0x00333288, + 0x40333A20, 0x40334220, 0x00333A88, 0x00334288, 0x40336220, 0x4033A220, + 0x4033A220, 0x00336288, 0x0033A288, 0x0033A288, 0x4033B220, 0x4033BA20, + 0x0033B288, 0x0033BA88, 0x4033CA20, 0x4033D420, 0x0033CA88, 0x0033D488, + 0x4033E420, 0x4033F220, 0x0033E488, 0x0033F288, 0x40341420, 0x40343E20, + 0x40342420, 0x00341488, 0x00343E88, 0x00342488, 0x40342C20, 0x40343620, + 0x00342C88, 0x00343688, 0x4034EE20, 0x4034F620, 0x0034EE88, 0x0034F688, + 0x4034FE20, 0x40350620, 0x0034FE88, 0x00350688, 0x40345020, 0x40356A20, + 0x40356A20, 0x00345088, 0x00356A88, 0x00356A88, 0x40357220, 0x40357A20, + 0x40358220, 0x40358A20, 0x00357288, 0x00357A88, + // Block 1, offset 0x40 + 0x00358288, 0x00358A88, 0x40361820, 0x40362220, 0x00361888, 0x00362288, + 0x40367E20, 0x40368620, 0x00367E88, 0x00368688, 0x4036A820, 0x4036B020, + 0x0036A888, 0x0036B088, 0x40371420, 0x40371C20, 0x00371488, 0x00371C88, + 0x40393820, 0x40391E20, 0x40392020, 0x40392820, 0x403A7420, 0x40392620, + 0x403A9020, 0x40393020, 0x4040F020, 0x4040F420, 0x4040F620, 0x40426E20, + 0x40427220, 0x40427020, 0x40427420, 0x40429020, 0x40429420, 0x4042D020, + 0x4042D620, 0x4042DA20, 0x4042D220, 0x4042D820, 0x40435E20, 0x40436220, + 0x4043E020, 0x4043E220, 0x4043F020, 0x4043F820, 0x4043F620, 0x4043F220, + 0x4043F420, 0x4043F620, 0x4043F820, 0x40448220, 0x40448820, 0x40448C20, + 0x40448420, 0x40448A20, 0x40451E20, 0x40452620, 0x40452020, 0x40452420, + 0x40452820, 0x40452420, 0x40452620, 0x40498420, + // Block 2, offset 0x80 + 0xE0001881, 0xE0001890, 0xE000189F, 0xE00018AE, 0xE00018BD, 0xE00018CC, + 0xE00018DB, 0xE00018EA, 0xE00018F9, 0xE0001908, 0xE0001917, 0xE0001926, + 0xE0001935, 0xE0001944, 0xE0001953, 0xE0001962, 0xE0001971, 0xE0001980, + 0xE000198F, 0xE000199E, 0xE00019AD, 0xE00019BC, 0xE00019CB, 0xE00019DA, + 0xE00019E9, 0xE00019F8, 0xE0001A07, 0xE0001A16, 0xE0001A25, 0xE0001A34, + 0xE0001A43, 0xE0001A52, 0xE0001A61, 0xE0001A70, 0xE0001A7F, 0xE0001A8E, + 0xE0001A9D, 0xE0001AAC, 0xE0001ABB, 0xE0001ACA, 0xE0001AD9, 0xE0001AE8, + 0xE0001AF7, 0xE0001B06, 0xE0001B15, 0xE0001B24, 0x40498620, 0xE0001884, + 0xE0001893, 0xE00018A2, 0xE00018B1, 0xE00018C0, 0xE00018CF, 0xE00018DE, + 0xE00018ED, 0xE00018FC, 0xE000190B, 0xE000191A, 0xE0001929, 0xE0001938, + 0xE0001947, 0xE0001956, 0xE0001965, 0xE0001974, + // Block 3, offset 0xc0 + 0xE0001983, 0xE0001992, 0xE00019A1, 0xE00019B0, 0xE00019BF, 0xE00019CE, + 0xE00019DD, 0xE00019EC, 0xE00019FB, 0xE0001A0A, 0xE0001A19, 0xE0001A28, + 0xE0001A37, 0xE0001A46, 0xE0001A55, 0xE0001A64, 0xE0001A73, 0xE0001A82, + 0xE0001A91, 0xE0001AA0, 0xE0001AAF, 0xE0001ABE, 0xE0001ACD, 0xE0001ADC, + 0xE0001AEB, 0xE0001AFA, 0xE0001B09, 0xE0001B18, 0xE0001B27, 0x40498820, + 0xE0001887, 0xE0001896, 0xE00018A5, 0xE00018B4, 0xE00018C3, 0xE00018D2, + 0xE00018E1, 0xE00018F0, 0xE00018FF, 0xE000190E, 0xE000191D, 0xE000192C, + 0xE000193B, 0xE000194A, 0xE0001959, 0xE0001968, 0xE0001977, 0xE0001986, + 0xE0001995, 0xE00019A4, 0xE00019B3, 0xE00019C2, 0xE00019D1, 0xE00019E0, + 0xE00019EF, 0xE00019FE, 0xE0001A0D, 0xE0001A1C, 0xE0001A2B, 0xE0001A3A, + 0xE0001A49, 0xE0001A58, 0xE0001A67, 0xE0001A76, + // Block 4, offset 0x100 + 0xE0001A85, 0xE0001A94, 0xE0001AA3, 0xE0001AB2, 0xE0001AC1, 0xE0001AD0, + 0xE0001ADF, 0xE0001AEE, 0xE0001AFD, 0xE0001B0C, 0xE0001B1B, 0xE0001B2A, + 0x40498A20, 0xE000188A, 0xE0001899, 0xE00018A8, 0xE00018B7, 0xE00018C6, + 0xE00018D5, 0xE00018E4, 0xE00018F3, 0xE0001902, 0xE0001911, 0xE0001920, + 0xE000192F, 0xE000193E, 0xE000194D, 0xE000195C, 0xE000196B, 0xE000197A, + 0xE0001989, 0xE0001998, 0xE00019A7, 0xE00019B6, 0xE00019C5, 0xE00019D4, + 0xE00019E3, 0xE00019F2, 0xE0001A01, 0xE0001A10, 0xE0001A1F, 0xE0001A2E, + 0xE0001A3D, 0xE0001A4C, 0xE0001A5B, 0xE0001A6A, 0xE0001A79, 0xE0001A88, + 0xE0001A97, 0xE0001AA6, 0xE0001AB5, 0xE0001AC4, 0xE0001AD3, 0xE0001AE2, + 0xE0001AF1, 0xE0001B00, 0xE0001B0F, 0xE0001B1E, 0xE0001B2D, 0x40498C20, + 0xE000188D, 0xE000189C, 0xE00018AB, 0xE00018BA, + // Block 5, offset 0x140 + 0xE00018C9, 0xE00018D8, 0xE00018E7, 0xE00018F6, 0xE0001905, 0xE0001914, + 0xE0001923, 0xE0001932, 0xE0001941, 0xE0001950, 0xE000195F, 0xE000196E, + 0xE000197D, 0xE000198C, 0xE000199B, 0xE00019AA, 0xE00019B9, 0xE00019C8, + 0xE00019D7, 0xE00019E6, 0xE00019F5, 0xE0001A04, 0xE0001A13, 0xE0001A22, + 0xE0001A31, 0xE0001A40, 0xE0001A4F, 0xE0001A5E, 0xE0001A6D, 0xE0001A7C, + 0xE0001A8B, 0xE0001A9A, 0xE0001AA9, 0xE0001AB8, 0xE0001AC7, 0xE0001AD6, + 0xE0001AE5, 0xE0001AF4, 0xE0001B03, 0xE0001B12, 0xE0001B21, 0xE0001B30, + 0xA0010502, 0x40497420, 0x4049E620, 0xE0001B42, 0xE0001B51, 0xE0001B60, + 0xE0001B6F, 0xE0001B7E, 0xE0001B9C, 0xE0001BBA, 0xE0001BC9, 0xE0001BD8, + 0xE0001BE7, 0xE0001BF6, 0xE0001C05, 0xE0001C14, 0xE0001C23, 0xE0001C32, + 0xE0001C41, 0xE0001C50, 0xE0001C5F, 0xE0001C6E, + // Block 6, offset 0x180 + 0xE0001C7D, 0xE0001C8C, 0xE0001C9B, 0xE0001CAA, 0xE0001B8D, 0xE0001CE1, + 0xE0001CF0, 0xE0001CFF, 0xE0001CB9, 0xE0001CCD, 0xE0001B33, 0xE0001BAB, + 0x4049E820, 0xE0001B45, 0xE0001B54, 0xE0001B63, 0xE0001B72, 0xE0001B81, + 0xE0001B9F, 0xE0001BBD, 0xE0001BCC, 0xE0001BDB, 0xE0001BEA, 0xE0001BF9, + 0xE0001C08, 0xE0001C17, 0xE0001C26, 0xE0001C35, 0xE0001C44, 0xE0001C53, + 0xE0001C62, 0xE0001C71, 0xE0001C80, 0xE0001C8F, 0xE0001C9E, 0xE0001CAD, + 0xE0001B90, 0xE0001CE4, 0xE0001CF3, 0xE0001D02, 0xE0001CBD, 0xE0001CD1, + 0xE0001B36, 0xE0001BAE, 0x4049EA20, 0xE0001B48, 0xE0001B57, 0xE0001B66, + 0xE0001B75, 0xE0001B84, 0xE0001BA2, 0xE0001BC0, 0xE0001BCF, 0xE0001BDE, + 0xE0001BED, 0xE0001BFC, 0xE0001C0B, 0xE0001C1A, 0xE0001C29, 0xE0001C38, + 0xE0001C47, 0xE0001C56, 0xE0001C65, 0xE0001C74, + // Block 7, offset 0x1c0 + 0xE0001C83, 0xE0001C92, 0xE0001CA1, 0xE0001CB0, 0xE0001B93, 0xE0001CE7, + 0xE0001CF6, 0xE0001D05, 0xE0001CC1, 0xE0001CD5, 0xE0001B39, 0xE0001BB1, + 0x4049EC20, 0xE0001B4B, 0xE0001B5A, 0xE0001B69, 0xE0001B78, 0xE0001B87, + 0xE0001BA5, 0xE0001BC3, 0xE0001BD2, 0xE0001BE1, 0xE0001BF0, 0xE0001BFF, + 0xE0001C0E, 0xE0001C1D, 0xE0001C2C, 0xE0001C3B, 0xE0001C4A, 0xE0001C59, + 0xE0001C68, 0xE0001C77, 0xE0001C86, 0xE0001C95, 0xE0001CA4, 0xE0001CB3, + 0xE0001B96, 0xE0001CEA, 0xE0001CF9, 0xE0001D08, 0xE0001CC5, 0xE0001CD9, + 0xE0001B3C, 0xE0001BB4, 0x4049EE20, 0xE0001B4E, 0xE0001B5D, 0xE0001B6C, + 0xE0001B7B, 0xE0001B8A, 0xE0001BA8, 0xE0001BC6, 0xE0001BD5, 0xE0001BE4, + 0xE0001BF3, 0xE0001C02, 0xE0001C11, 0xE0001C20, 0xE0001C2F, 0xE0001C3E, + 0xE0001C4D, 0xE0001C5C, 0xE0001C6B, 0xE0001C7A, + // Block 8, offset 0x200 + 0xE0001C89, 0xE0001C98, 0xE0001CA7, 0xE0001CB6, 0xE0001B99, 0xE0001CED, + 0xE0001CFC, 0xE0001D0B, 0xE0001CC9, 0xE0001CDD, 0xE0001B3F, 0xE0001BB7, + 0xA0010B02, 0x4049D220, 0x404A5A20, 0xE0001D0E, 0xE0001D1D, 0xE0001D2C, + 0xE0001D3B, 0xE0001D4A, 0xE0001D59, 0xE0001D68, 0xE0001D77, 0xE0001D86, + 0xE0001D95, 0xE0001DA4, 0xE0001DB3, 0xE0001DC2, 0xE0001DD1, 0xE0001DE0, + 0xE0001DEF, 0xE0001DFE, 0xE0001E0D, 0xE0001E1C, 0xE0001E2B, 0xE0001E3A, + 0xE0001E49, 0xE0001E58, 0xE0001E67, 0xE0001E76, 0xE0001E85, 0xE0001E94, + 0xE0001EA3, 0xE0001EB2, 0xE0001EC1, 0xE0001ED0, 0xE0001EDF, 0xE0001EEE, + 0xE0001EFD, 0xE0001F0C, 0xE0001F1B, 0xE0001F2A, 0xE0001F39, 0xE0001F48, + 0xE0001F57, 0xE0001F66, 0xE0001F75, 0xE0001F84, 0xE0001F93, 0xE0001FA2, + 0xE0001FB1, 0xE0001FC0, 0xE0001FCF, 0x404A5C20, + // Block 9, offset 0x240 + 0xE0001D11, 0xE0001D20, 0xE0001D2F, 0xE0001D3E, 0xE0001D4D, 0xE0001D5C, + 0xE0001D6B, 0xE0001D7A, 0xE0001D89, 0xE0001D98, 0xE0001DA7, 0xE0001DB6, + 0xE0001DC5, 0xE0001DD4, 0xE0001DE3, 0xE0001DF2, 0xE0001E01, 0xE0001E10, + 0xE0001E1F, 0xE0001E2E, 0xE0001E3D, 0xE0001E4C, 0xE0001E5B, 0xE0001E6A, + 0xE0001E79, 0xE0001E88, 0xE0001E97, 0xE0001EA6, 0xE0001EB5, 0xE0001EC4, + 0xE0001ED3, 0xE0001EE2, 0xE0001EF1, 0xE0001F00, 0xE0001F0F, 0xE0001F1E, + 0xE0001F2D, 0xE0001F3C, 0xE0001F4B, 0xE0001F5A, 0xE0001F69, 0xE0001F78, + 0xE0001F87, 0xE0001F96, 0xE0001FA5, 0xE0001FB4, 0xE0001FC3, 0xE0001FD2, + 0x404A6220, 0xE0001D14, 0xE0001D23, 0xE0001D32, 0xE0001D41, 0xE0001D50, + 0xE0001D5F, 0xE0001D6E, 0xE0001D7D, 0xE0001D8C, 0xE0001D9B, 0xE0001DAA, + 0xE0001DB9, 0xE0001DC8, 0xE0001DD7, 0xE0001DE6, + // Block 10, offset 0x280 + 0xE0001DF5, 0xE0001E04, 0xE0001E13, 0xE0001E22, 0xE0001E31, 0xE0001E40, + 0xE0001E4F, 0xE0001E5E, 0xE0001E6D, 0xE0001E7C, 0xE0001E8B, 0xE0001E9A, + 0xE0001EA9, 0xE0001EB8, 0xE0001EC7, 0xE0001ED6, 0xE0001EE5, 0xE0001EF4, + 0xE0001F03, 0xE0001F12, 0xE0001F21, 0xE0001F30, 0xE0001F3F, 0xE0001F4E, + 0xE0001F5D, 0xE0001F6C, 0xE0001F7B, 0xE0001F8A, 0xE0001F99, 0xE0001FA8, + 0xE0001FB7, 0xE0001FC6, 0xE0001FD5, 0x404A6620, 0xE0001D17, 0xE0001D26, + 0xE0001D35, 0xE0001D44, 0xE0001D53, 0xE0001D62, 0xE0001D71, 0xE0001D80, + 0xE0001D8F, 0xE0001D9E, 0xE0001DAD, 0xE0001DBC, 0xE0001DCB, 0xE0001DDA, + 0xE0001DE9, 0xE0001DF8, 0xE0001E07, 0xE0001E16, 0xE0001E25, 0xE0001E34, + 0xE0001E43, 0xE0001E52, 0xE0001E61, 0xE0001E70, 0xE0001E7F, 0xE0001E8E, + 0xE0001E9D, 0xE0001EAC, 0xE0001EBB, 0xE0001ECA, + // Block 11, offset 0x2c0 + 0xE0001ED9, 0xE0001EE8, 0xE0001EF7, 0xE0001F06, 0xE0001F15, 0xE0001F24, + 0xE0001F33, 0xE0001F42, 0xE0001F51, 0xE0001F60, 0xE0001F6F, 0xE0001F7E, + 0xE0001F8D, 0xE0001F9C, 0xE0001FAB, 0xE0001FBA, 0xE0001FC9, 0xE0001FD8, + 0x404A6820, 0xE0001D1A, 0xE0001D29, 0xE0001D38, 0xE0001D47, 0xE0001D56, + 0xE0001D65, 0xE0001D74, 0xE0001D83, 0xE0001D92, 0xE0001DA1, 0xE0001DB0, + 0xE0001DBF, 0xE0001DCE, 0xE0001DDD, 0xE0001DEC, 0xE0001DFB, 0xE0001E0A, + 0xE0001E19, 0xE0001E28, 0xE0001E37, 0xE0001E46, 0xE0001E55, 0xE0001E64, + 0xE0001E73, 0xE0001E82, 0xE0001E91, 0xE0001EA0, 0xE0001EAF, 0xE0001EBE, + 0xE0001ECD, 0xE0001EDC, 0xE0001EEB, 0xE0001EFA, 0xE0001F09, 0xE0001F18, + 0xE0001F27, 0xE0001F36, 0xE0001F45, 0xE0001F54, 0xE0001F63, 0xE0001F72, + 0xE0001F81, 0xE0001F90, 0xE0001F9F, 0xE0001FAE, + // Block 12, offset 0x300 + 0xE0001FBD, 0xE0001FCC, 0xE0001FDB, 0x404AEA20, 0xE000200E, 0xE0002011, + 0x404B2620, 0x404B2420, 0x404B2620, 0x404AF020, 0xE0002014, 0xE0002017, + 0x404B2A20, 0x404B2820, 0x404B2A20, 0x8281258B, 0x8281258D, 0x82812591, + 0x8281258F, 0x404ECA20, 0x404ECC20, 0x404F9C20, 0x404F9620, 0x404F9E20, + 0x404F9820, 0x40522620, 0x40522820, 0x40522A20, 0x40522C20, 0x40522E20, + 0x40523020, 0x40523220, 0x40523420, 0x40523620, 0x40523820, 0x40523E20, + 0x40524020, 0x40529C20, 0x40529E20, 0x4052A020, 0x4052A220, 0x4052A420, + 0x4052A820, 0x4052A620, 0x4052AA20, 0x4052AC20, 0x4052AE20, 0x4040B620, + 0x4040B420, 0x40409820, 0x4040DC20, 0x402C3A20, 0x402C3C20, 0x002C3A88, + 0x002C3C83, 0x402D2220, 0x402D2420, 0x002D2288, 0x002D2483, 0x002D9883, + 0x002D9A83, 0x402EE220, 0x402EE420, 0x002EE288, + // Block 13, offset 0x340 + 0x002EE483, 0x402FE620, 0x402FE820, 0x002FE688, 0x002FE883, 0x40306C20, + 0x40306E20, 0x00306C88, 0x00306E83, 0x4033B220, 0x4033BA20, 0x4033B420, + 0x0033B288, 0x0033BA88, 0x0033B483, 0x402E2220, 0x402E2221, 0x402E2221, + 0x002E2288, 0x002E22A3, 0x002E22A3, 0x402C3A20, 0x402C3C20, 0x002D6A83, + 0x402D6A20, 0x002C3A88, 0x002C3C83, 0x002D6A85, 0x002D6A84, 0x402F7A20, + 0x402F7C20, 0x002F7A88, 0x002F7C83, 0x40312A20, 0x40312C20, 0x00312A88, + 0x00312C83, 0x002C3A88, 0x002C3C84, 0x002C3C83, 0x402C6220, 0x402C6420, + 0x002C6288, 0x002C6484, 0x002C6483, 0x402D0820, 0x402D0A20, 0x002D0888, + 0x002D0A84, 0x002D0A83, 0x402E9E20, 0x402D2420, 0x002E9E88, 0x002D2484, + 0x002D2483, 0x402E2220, 0xE0000CFB, 0xE0000CFB, 0x402E2420, 0x002E2288, + 0xE0000D01, 0xE0000D01, 0x002E2484, 0x002E2483, + // Block 14, offset 0x380 + 0x402F2C20, 0x402F2E20, 0x002F2C88, 0x002F2E84, 0x002F2E83, 0x002F7A88, + 0x002F7C84, 0x002F7C83, 0x40302C20, 0x40302E20, 0x00302C88, 0x00302E84, + 0x00302E83, 0x40306C20, 0x40310021, 0x40310022, 0x00306C88, 0x003100A3, + 0x003100C3, 0x402BDE20, 0x40320C21, 0x40321020, 0x00321084, 0x002BDE88, + 0x00320CA3, 0x00321083, 0x00321086, 0x00321085, 0x402C9820, 0x40320C22, + 0x002C9888, 0x00320CC3, 0x402EE220, 0x40320E21, 0x40320E22, 0x002EE288, + 0x00320EA3, 0x00320EC3, 0x402BDE20, 0xE00029B8, 0x002BDE88, 0xE00029BB, + 0x402EE220, 0xE00029C6, 0x002EE288, 0xE00029C9, 0x40306C20, 0xE00029DC, + 0x00306C88, 0xE00029DF, 0xAE611302, 0x404A7621, 0x404A7C21, 0x404AB020, + 0x404ACC20, 0x404ACE20, 0x404AD020, 0x404AD220, 0x404AD420, 0x404ADA20, + 0x404A8220, 0x404A8420, 0xE0002A26, 0xE0002A2B, + // Block 15, offset 0x3c0 + 0x404A8620, 0x404A8820, 0x404A8A20, 0x404A8C20, 0x404A8E20, 0x404A9020, + 0x404A9220, 0x404A9420, 0x404A9620, 0x404A9820, 0x404A9A20, 0x404A9C20, + 0x404A8620, 0x404A8820, 0xE0002A30, 0xE0002A35, 0x404A8A20, 0x404A8C20, + 0x404A8E20, 0x404A9020, 0x404ABA20, 0x404ABC20, 0xE0002A3A, 0xE0002A3F, + 0x404ABE20, 0x404AC020, 0x404AC220, 0x404AC420, 0x404AC620, 0x404AC820, + 0x404ACA20, 0x404AD620, 0x404AD820, 0x404AC220, 0x404AC420, 0xE0002A44, + 0xE0002A49, 0x404AC620, 0x404AC820, 0x404ACA20, 0x404ACC20, 0x404ACE20, + 0x404AD020, 0x404AD220, 0x404AD420, 0x404AD620, 0x404AD820, 0x404ADA20, + 0x404ADC20, 0x404AC620, 0x404AC820, 0xE0002A4E, 0xE0002A53, 0x404ACA20, + 0x404ACC20, 0x404ACE20, 0x404AD020, 0x404AD220, 0x404AD420, 0x404AD620, + 0x404AD820, 0x404ADC20, 0x404A7820, 0x404AC020, + // Block 16, offset 0x400 + 0x404A9E20, 0xE0002A5E, 0xE0002A63, 0x404AA020, 0x404AA220, 0x404AA420, + 0x404AA620, 0x404AA820, 0x404AAA20, 0x404AAC20, 0x004AA283, 0x404AAE20, + 0x404AB020, 0x404AB220, 0x404ACC20, 0xE0002A68, 0xE0002A6D, 0x404ACE20, + 0x404AD020, 0x404AD220, 0x404AD420, 0x404AD620, 0x404AD820, 0x404ADA20, + 0x404ADC20, 0x004ACE83, 0x404A8220, 0x404AE820, 0x404AA420, 0x404A9A20, + 0x404A9E20, 0x404AB420, 0x404B1420, 0x404AE420, 0x404AD220, 0x404AD820, + 0x404AEA20, 0x404A9020, 0x404AB620, 0x404B1620, 0x404B1620, 0x404B1820, + 0xE0002A72, 0xE0002A77, 0x404B1A20, 0x404B1C20, 0x404B1E20, 0x404B2020, + 0x404B2220, 0x404B2420, 0x404B2620, 0x404B2820, 0x404B2A20, 0x004B1E83, + 0x404A8420, 0x404AEA20, 0x404AA620, 0x404AA020, 0x404AB820, 0x404B1820, + 0x404AE620, 0x404AD420, 0x404B2C20, 0x404B2E20, + // Block 17, offset 0x440 + 0x404B3020, 0x404A7A20, 0x404A8C20, 0x404AAC20, 0x404ACC20, 0x404ADC20, + 0x404AE020, 0x404AF620, 0x404AE820, 0x404A7C20, 0x404AE220, 0x404A9E20, + 0x404A9620, 0x404A9A20, 0x404AAE20, 0x404B0E20, 0x404AE020, 0x404AFC20, + 0x404ADE20, 0x404ACE20, 0x404AD620, 0x404AEE20, 0x404A7E20, 0x404AE420, + 0x404AA020, 0x404A8E20, 0x404A9820, 0x404AB020, 0x404B1020, 0x404ADA20, + 0x404AFE20, 0x404B0020, 0x404AC420, 0x404AB420, 0x404AB620, 0x404AB820, + 0x404ABA20, 0x404ABC20, 0x404ABE20, 0x404AC020, 0x404A9220, 0xE0002A7F, + 0xE0002A84, 0x404A9420, 0x404A9620, 0x404A9820, 0x404A9A20, 0x404A9C20, + 0x404ADE20, 0x404AE020, 0xE0002A89, 0xE0002A8E, 0x404AE220, 0x404AE420, + 0x404AE620, 0x404AE820, 0x404AEA20, 0x404AEC20, 0x404ACA20, 0x404ACC20, + 0xE0002A93, 0xE0002A98, 0x404ACE20, 0x404AD020, + // Block 18, offset 0x480 + 0x404AD220, 0x404AD420, 0x404AD620, 0x404AD820, 0x404ADA20, 0x404ADC20, + 0x404ADE20, 0x004AD283, 0x404A7E20, 0x404A8E20, 0x404A9220, 0x404A9820, + 0x404AAE20, 0x404ACE20, 0x404AD220, 0x404AFA20, 0x404A8020, 0x404AE620, + 0x404AA220, 0x404A9C20, 0x404AB220, 0x404B1220, 0x404AE220, 0x404ADC20, + 0x404B0020, 0x404AE020, 0x404AD020, 0x404AE020, 0x404AC220, 0x404AC420, + 0xE0002AA0, 0xE0002AA5, 0x404AC620, 0x404AC820, 0x404ACA20, 0x404ACC20, + 0x404ACE20, 0x404AD020, 0x404AD220, 0x404AD420, 0x404AD620, 0x404AD820, + 0x404ADA20, 0x404ADC20, 0x004ACC83, 0x404ADE20, 0x404AE020, 0x404AEE20, + 0x404AF020, 0xE0002AAA, 0xE0002AAF, 0x404AF220, 0x404AF420, 0x404AF620, + 0x404AF820, 0x404AFA20, 0x404AFC20, 0x404AFE20, 0x404B0020, 0x404B0220, + 0x404B0420, 0x404B0620, 0x404B0820, 0x404B0A20, + // Block 19, offset 0x4c0 + 0x004AF883, 0x404B0C20, 0x404ADE20, 0x404AE020, 0xE0002AB4, 0xE0002AB9, + 0x404AE220, 0x404AE420, 0x404AE620, 0x404AE820, 0x404AEA20, 0x404AEC20, + 0x404AEE20, 0x404AF020, 0x404AF220, 0x404AF420, 0x404AF620, 0x004AE883, + 0x404AF820, 0x404AFA20, 0x404A8020, 0x404A9020, 0x404A9420, 0x404AB020, + 0x404ABE20, 0x404AD020, 0x404AD420, 0x404A8020, 0x404AB220, 0x404AB420, + 0xE0002A05, 0xE0002A0A, 0x404AB620, 0x404AB820, 0x404ABA20, 0x404ABC20, + 0x404ABE20, 0x404AC020, 0x404AC220, 0x404AC420, 0x404AC620, 0x404AC820, + 0x404ACA20, 0x004ABA83, 0x404AB620, 0x404AB820, 0xE0002A0F, 0xE0002A14, + 0x404ABA20, 0x404ABC20, 0x404ABE20, 0x404AC020, 0x404AC220, 0x404AC420, + 0x404AC620, 0x404AC820, 0x004ABE83, 0x404AFC20, 0x404AFE20, 0xE0002A19, + 0xE0002A1E, 0x404B0020, 0x404B0220, 0x404B0420, + // Block 20, offset 0x500 + 0x404B0620, 0x404B0820, 0x404B0A20, 0x404B0C20, 0x404B0E20, 0x404B1020, + 0x404B1220, 0x404B1420, 0x404A8A20, 0x404A9620, 0x404AAA20, 0x404ACA20, + 0x404ADA20, 0x404ADE20, 0x404AE620, 0x404AF420, 0xAE611602, 0x404A9421, + 0xAE611402, 0x404AB821, 0x404ABC21, 0x828225B1, 0xE000200E, 0xE0002011, + 0x404B2620, 0xE0002ABE, 0xE000200E, 0xE0002011, 0x404B2420, 0x404B2620, + 0x828225B2, 0xE0002014, 0xE0002017, 0x404B2A20, 0xE0002AC1, 0xE0002014, + 0xE0002017, 0x404B2820, 0x404B2A20, 0xAE610F02, 0x8281258D, 0x82812591, + 0x8281258F, 0x002D2288, 0x002D2484, 0x002D2483, 0x402DFE20, 0x402E0020, + 0x002DFE88, 0x002E0084, 0x002E0083, 0x402E9E20, 0x402EA020, 0x002E9E88, + 0x002EA084, 0x002EA083, 0x402C7820, 0xE0000CFB, 0xE0000CFB, 0x402C3820, + 0xE0000D01, 0xE0000D01, 0x402D6820, 0x402D6A20, + // Block 21, offset 0x540 + 0x002D6888, 0x002D6A83, 0x402DCC20, 0x402DCE20, 0x002DCC88, 0x002DCE83, + 0x002E9E88, 0x002EA083, 0x402FE620, 0x40302620, 0x002FE688, 0x00302683, + 0x40302820, 0x40302A20, 0x00302883, 0x00302A83, 0x402EE220, 0x4030EE20, + 0x4030F220, 0x002EE288, 0x0030EE83, 0x0030F283, 0x402BDE20, 0x4030F020, + 0x002BDE88, 0x0030F083, 0x40306C20, 0x4030F420, 0x00306C88, 0x0030F483, + 0x40393820, 0x40393620, 0x40393A21, 0x40393A23, 0x403A7420, 0x40393A25, + 0x403A9220, 0x40393A26, 0x403A9221, 0x00393B43, 0x403A9223, 0x00393B44, + 0x403A8821, 0x403A8825, 0x40306C20, 0x40310021, 0x00306C88, 0x003100A3, + 0x402BDE20, 0x40320E20, 0x40320C20, 0x002BDE88, 0x00320E83, 0x00320C83, + 0x402EE220, 0x40321020, 0x002EE288, 0x00321083, 0x402EE220, 0x40321023, + 0x40321020, 0x40321022, 0x002EE288, 0x003210E3, + // Block 22, offset 0x580 + 0x00321083, 0x003210C3, 0x402E9E20, 0x402EA020, 0x402EA220, 0x002E9E88, + 0x002EA083, 0x002EA284, 0x002EA283, 0x002FE688, 0x002FE884, 0x002FE883, + 0x4031DE20, 0x00310286, 0x00310283, 0x4003D220, 0x00310287, 0x00310284, + 0x402BEC20, 0xE0000CFB, 0xE0000CFB, 0x002BEC83, 0xE0000D01, 0xE0000D01, + 0x402C3A20, 0x402C3E20, 0x402C3C20, 0x002C3A88, 0x002C3E83, 0x002C3C83, + 0x402C6220, 0x402C6420, 0x402C6420, 0x002C6288, 0x002C6486, 0x002C6484, + 0x002C6486, 0x002C6484, 0x002E2288, 0xE0000D01, 0xE0000D01, 0x002E2486, + 0x002E2484, 0x002E9E88, 0x002EA086, 0x002EA084, 0x402C3A20, 0xE0003C42, + 0x402C3C20, 0x002C3A88, 0xE0003C48, 0xE0003C45, 0x002C3C86, 0x002C3C84, + 0x402C6220, 0xE0003C54, 0xE0003C4B, 0x402C6620, 0x402C6420, 0x002C6288, + 0xE0003C5A, 0xE0003C57, 0xE0003C51, 0x002C6686, + // Block 23, offset 0x5c0 + 0xE0003C4E, 0x002C6684, 0x002C6486, 0x002C6484, 0x402D2220, 0xE0003C5D, + 0x402D2420, 0x002D2288, 0xE0003C63, 0xE0003C60, 0x002D2486, 0x002D2484, + 0x402E2220, 0xE0003C66, 0xE0000CFB, 0xE0000CFB, 0x402E2420, 0x002E2288, + 0xE0003C6C, 0xE0003C69, 0xE0000D01, 0xE0000D01, 0x002E2486, 0x002E2484, + 0x402E9E20, 0xE0003C6F, 0x402EA020, 0x002E9E88, 0xE0003C75, 0xE0003C72, + 0x002EA086, 0x002EA084, 0x402EE220, 0x402EE420, 0x402EE421, 0x002EE288, + 0x002EE483, 0x002EE4A3, 0x402FE620, 0xE0003C78, 0x402FE820, 0x002FE688, + 0xE0003C7E, 0xE0003C7B, 0x002FE886, 0x002FE884, 0x40302C20, 0xE0003C81, + 0x40302E20, 0x00302C88, 0xE0003C87, 0xE0003C84, 0x00302E86, 0x00302E84, + 0x40306C20, 0x40306E20, 0x40306E21, 0x00306C88, 0x00306E83, 0x00306EA3, + 0x40312A20, 0xE0003C8A, 0x40312C20, 0x00312A88, + // Block 24, offset 0x600 + 0xE0003C90, 0xE0003C8D, 0x00312C86, 0x00312C84, 0x00384A88, 0x00388A83, + 0x402C3A20, 0x402C0C20, 0x002C3A88, 0x002C0C84, 0x002C0C83, 0x402D2220, + 0x402D2420, 0x402D2620, 0x402D2820, 0x002D2288, 0x002D2484, 0x002D2684, + 0x002D2884, 0x002D2483, 0x002D2683, 0x002D2883, 0x402D9A20, 0x402D9C20, + 0x002D9A88, 0x002D9C83, 0x402DFE20, 0x402E0020, 0x402E0220, 0x002DFE88, + 0x002E0084, 0x002E0284, 0x002E0083, 0x002E0283, 0x402E9E20, 0x402EA020, + 0x402EA220, 0x402EA420, 0x002E9E88, 0x002EA083, 0x002EA284, 0x002EA484, + 0x002EA283, 0x002EA483, 0x402BDE20, 0x402C0820, 0x40320C21, 0x40321020, + 0x002BDE88, 0x002C0883, 0x00320CA3, 0x00321083, 0x402C9820, 0x402D0620, + 0x002C9888, 0x002D0683, 0x402D9A20, 0x402DCA20, 0x002D9A88, 0x002DCA83, + 0x402EE220, 0x402F2A20, 0x40320E20, 0x002EE288, + // Block 25, offset 0x640 + 0x002F2A83, 0x00320E83, 0x40306C20, 0x4030BC20, 0x00306C88, 0x0030BC83, + 0x40310020, 0x40312820, 0x00310088, 0x00312883, 0x0065768F, 0xE0003D1D, + 0xE0003D17, 0x0065768F, 0xE0003D17, 0xE0003D1D, 0x00657691, 0xE0003D20, + 0xE0003D1A, 0x00657691, 0xE0003D1A, 0xE0003D20, 0x0065828F, 0xE0003E9B, + 0xE0003D23, 0x0065828F, 0xE0003D23, 0xE0003E9B, 0x00658291, 0xE0003EA1, + 0xE0003D29, 0xE0003E9E, 0xE0003D26, 0x00658291, 0xE0003D29, 0xE0003EA1, + 0xE0003D26, 0xE0003E9E, 0x00658291, 0xE0003D26, 0xE0003E9E, 0xE000216D, + 0xE0003EA1, 0xE0003D29, 0xE000216D, 0xE0003D29, 0xE0003EA1, 0x00658C91, + 0xE0003EE4, 0xE0003EE0, 0xE0003D30, 0xE0003EE0, 0xE0003EDD, 0xE0003EE0, + 0xE0003D2D, 0x00658C91, 0xE0003EE4, 0xE0003D30, 0xE0003EE0, 0xE0003EE0, + 0xE0003D2D, 0xE0003EDD, 0xE0003EE0, 0x00658C91, + // Block 26, offset 0x680 + 0xE0003EE0, 0xE0003D2D, 0xE0003EDD, 0xE0003EE0, 0xE00021F2, 0xE0003EE0, + 0xE0003EE4, 0xE0003D30, 0xE00021F2, 0xE0003D30, 0xE0003EE0, 0xE0003EE4, + 0x00659691, 0xE0003F2E, 0xE0003F2A, 0xE0003D37, 0xE0003F2A, 0xE0003F27, + 0xE0003F2A, 0xE0003D34, 0x00659691, 0xE0003F2E, 0xE0003D37, 0xE0003F2A, + 0xE0003F2A, 0xE0003D34, 0xE0003F27, 0xE0003F2A, 0x00659691, 0xE0003F2A, + 0xE0003D34, 0xE0003F27, 0xE0003F2A, 0xE000222C, 0xE0003F2A, 0xE0003F2E, + 0xE0003D37, 0xE000222C, 0xE0003D37, 0xE0003F2A, 0xE0003F2E, 0x0065A091, + 0xE0003F71, 0xE0003D3B, 0x0065A091, 0xE0003D3B, 0xE0003F71, 0x0065AA8F, + 0xE0003F89, 0xE0003D3E, 0xE0003F83, 0xE0003F89, 0x0065AA91, 0xE0003F91, + 0xE0003F9A, 0xE0003F8D, 0xE0003D44, 0xE0003F96, 0xE0003D48, 0xE0003F8D, + 0xE0003F86, 0xE0003F8D, 0xE0003D41, 0x0065AA91, + // Block 27, offset 0x6c0 + 0xE0003F91, 0xE0003F9A, 0xE0003D44, 0xE0003F8D, 0xE0003D48, 0xE0003F96, + 0xE0003F8D, 0xE0003D41, 0xE0003F86, 0xE0003F8D, 0x0065AA91, 0xE0003F8D, + 0xE0003D41, 0xE0003F86, 0xE0003F8D, 0xE000225B, 0xE0003F8D, 0xE0003F91, + 0xE0003D44, 0xE000225B, 0xE0003D44, 0xE0003F8D, 0xE0003F91, 0xE0002261, + 0xE0003F96, 0xE0003F9A, 0xE0003D48, 0xE0002261, 0xE0003D48, 0xE0003F96, + 0xE0003F9A, 0x0065B491, 0xE000400F, 0xE0003D4C, 0x0065B491, 0xE0003D4C, + 0xE000400F, 0x0065BE8F, 0xE0004021, 0xE0003D4F, 0x0065BE8F, 0xE0003D4F, + 0xE0004021, 0x0065BE91, 0xE0004024, 0xE0003D52, 0x0065BE91, 0xE0003D52, + 0xE0004024, 0x0065C68F, 0xE0003D55, 0xE0004036, 0x0065C691, 0xE0004039, + 0xE0003D58, 0x0065C691, 0xE0003D58, 0xE0004039, 0x0065D08F, 0xE000405A, + 0xE0004054, 0xE000405A, 0xE0003D5B, 0x0065D08F, + // Block 28, offset 0x700 + 0xE000405A, 0xE0003D5B, 0xE0004054, 0xE000405A, 0x0065D091, 0xE000405E, + 0xE0004057, 0xE000405E, 0xE0003D5E, 0x0065D091, 0xE0004062, 0xE0003D61, + 0xE000405E, 0xE000405E, 0xE0003D5E, 0xE0004057, 0xE000405E, 0x0065D091, + 0xE000405E, 0xE0003D5E, 0xE0004057, 0xE000405E, 0xE000236A, 0xE0003D61, + 0xE000405E, 0xE0004062, 0x0065788F, 0xE0003D6B, 0xE0003D65, 0x0065788F, + 0xE0003D65, 0xE0003D6B, 0x00657891, 0xE0003D6E, 0xE0003D68, 0x00657891, + 0xE0003D68, 0xE0003D6E, 0x00658491, 0xE0003EAC, 0xE0003EA8, 0xE0003D74, + 0xE0003EA8, 0xE0003EA5, 0xE0003EA8, 0xE0003D71, 0x00658491, 0xE0003EAC, + 0xE0003D74, 0xE0003EA8, 0xE0003EA8, 0xE0003D71, 0xE0003EA5, 0xE0003EA8, + 0x00658491, 0xE0003EA8, 0xE0003D71, 0xE0003EA5, 0xE0003EA8, 0xE000218B, + 0xE0003EA8, 0xE0003EAC, 0xE0003D74, 0xE000218B, + // Block 29, offset 0x740 + 0xE0003D74, 0xE0003EA8, 0xE0003EAC, 0x00658E8F, 0xE0003EEF, 0xE0003D78, + 0xE0003EE9, 0xE0003EEF, 0x00658E91, 0xE0003EF7, 0xE0003EF3, 0xE0003D7E, + 0xE0003EF3, 0xE0003EEC, 0xE0003EF3, 0xE0003D7B, 0x00658E91, 0xE0003EF7, + 0xE0003D7E, 0xE0003EF3, 0xE0003EF3, 0xE0003D7B, 0xE0003EEC, 0xE0003EF3, + 0x00658E91, 0xE0003EF3, 0xE0003D7B, 0xE0003EEC, 0xE0003EF3, 0xE0002203, + 0xE0003EF3, 0xE0003EF7, 0xE0003D7E, 0xE0002203, 0xE0003D7E, 0xE0003EF3, + 0xE0003EF7, 0x00659891, 0xE0003F3A, 0xE0003F36, 0xE0003D85, 0xE0003F36, + 0xE0003F33, 0xE0003F36, 0xE0003D82, 0x00659891, 0xE0003F3A, 0xE0003D85, + 0xE0003F36, 0xE0003F36, 0xE0003D82, 0xE0003F33, 0xE0003F36, 0x00659891, + 0xE0003F36, 0xE0003D82, 0xE0003F33, 0xE0003F36, 0xE0002237, 0xE0003F36, + 0xE0003F3A, 0xE0003D85, 0xE0002237, 0xE0003D85, + // Block 30, offset 0x780 + 0xE0003F36, 0xE0003F3A, 0x0065A291, 0xE0003F74, 0xE0003D89, 0x0065A291, + 0xE0003D89, 0xE0003F74, 0x0065AC8F, 0xE0003FA5, 0xE0003D8C, 0xE0003F9F, + 0xE0003FA5, 0x0065AC91, 0xE0003FAD, 0xE0003FB6, 0xE0003FA9, 0xE0003D92, + 0xE0003FB2, 0xE0003D96, 0xE0003FA9, 0xE0003FA2, 0xE0003FA9, 0xE0003D8F, + 0x0065AC91, 0xE0003FAD, 0xE0003FB6, 0xE0003D92, 0xE0003FA9, 0xE0003D96, + 0xE0003FB2, 0xE0003FA9, 0xE0003D8F, 0xE0003FA2, 0xE0003FA9, 0x0065AC91, + 0xE0003FA9, 0xE0003D8F, 0xE0003FA2, 0xE0003FA9, 0xE000227D, 0xE0003FA9, + 0xE0003FAD, 0xE0003D92, 0xE000227D, 0xE0003D92, 0xE0003FA9, 0xE0003FAD, + 0xE0002283, 0xE0003FB2, 0xE0003FB6, 0xE0003D96, 0xE0002283, 0xE0003D96, + 0xE0003FB2, 0xE0003FB6, 0x0065B691, 0xE0004012, 0xE0003D9A, 0x0065B691, + 0xE0003D9A, 0xE0004012, 0x0065C88F, 0xE0003D9D, + // Block 31, offset 0x7c0 + 0xE000403C, 0x0065C891, 0xE000403F, 0xE0003DA0, 0x0065C891, 0xE0003DA0, + 0xE000403F, 0x0065D291, 0xE000406A, 0xE0004067, 0xE000406A, 0xE0003DA3, + 0x0065D291, 0xE000406E, 0xE0003DA6, 0xE000406A, 0xE000406A, 0xE0003DA3, + 0xE0004067, 0xE000406A, 0xE0002371, 0xE0003DA6, 0xE000406A, 0xE000406E, + 0x00657A8F, 0xE0003DBA, 0xE0003DB0, 0xE0003DBA, 0xE0003DAA, 0x00657A8F, + 0xE0003DBA, 0xE0003DAA, 0xE0003DB0, 0xE0003DBA, 0x00657A91, 0xE0003DC2, + 0xE0003DBE, 0xE0003DB6, 0xE0003DBE, 0xE0003DB3, 0xE0003DBE, 0xE0003DAD, + 0x00657A91, 0xE0003DC2, 0xE0003DB6, 0xE0003DBE, 0xE0003DBE, 0xE0003DAD, + 0xE0003DB3, 0xE0003DBE, 0x00657A91, 0xE0003DBE, 0xE0003DAD, 0xE0003DB3, + 0xE0003DBE, 0xE000214F, 0xE0003DBE, 0xE0003DC2, 0xE0003DB6, 0xE000214F, + 0xE0003DB6, 0xE0003DBE, 0xE0003DC2, 0x0065868F, + // Block 32, offset 0x800 + 0xE0003EB7, 0xE0003DC7, 0xE0003EB1, 0xE0003EB7, 0x00658691, 0xE0003EBF, + 0xE0003EBB, 0xE0003DCD, 0xE0003EBB, 0xE0003EB4, 0xE0003EBB, 0xE0003DCA, + 0x00658691, 0xE0003EBF, 0xE0003DCD, 0xE0003EBB, 0xE0003EBB, 0xE0003DCA, + 0xE0003EB4, 0xE0003EBB, 0x00658691, 0xE0003EBB, 0xE0003DCA, 0xE0003EB4, + 0xE0003EBB, 0xE00021BB, 0xE0003EBB, 0xE0003EBF, 0xE0003DCD, 0xE00021BB, + 0xE0003DCD, 0xE0003EBB, 0xE0003EBF, 0x0065908F, 0xE0003F02, 0xE0003DD1, + 0xE0003EFC, 0xE0003F02, 0x00659091, 0xE0003F0A, 0xE0003F06, 0xE0003DD7, + 0xE0003F06, 0xE0003EFF, 0xE0003F06, 0xE0003DD4, 0x00659091, 0xE0003F0A, + 0xE0003DD7, 0xE0003F06, 0xE0003F06, 0xE0003DD4, 0xE0003EFF, 0xE0003F06, + 0x00659091, 0xE0003F06, 0xE0003DD4, 0xE0003EFF, 0xE0003F06, 0xE0002212, + 0xE0003F06, 0xE0003F0A, 0xE0003DD7, 0xE0002212, + // Block 33, offset 0x840 + 0xE0003DD7, 0xE0003F06, 0xE0003F0A, 0x00659A8F, 0xE0003F45, 0xE0003F3F, + 0xE0003F45, 0xE0003DDB, 0x00659A8F, 0xE0003F45, 0xE0003DDB, 0xE0003F3F, + 0xE0003F45, 0x00659A91, 0xE0003F4D, 0xE0003F49, 0xE0003DE1, 0xE0003F49, + 0xE0003F42, 0xE0003F49, 0xE0003DDE, 0x00659A91, 0xE0003F4D, 0xE0003DE1, + 0xE0003F49, 0xE0003F49, 0xE0003DDE, 0xE0003F42, 0xE0003F49, 0x00659A91, + 0xE0003F49, 0xE0003DDE, 0xE0003F42, 0xE0003F49, 0xE000223D, 0xE0003F49, + 0xE0003F4D, 0xE0003DE1, 0xE000223D, 0xE0003DE1, 0xE0003F49, 0xE0003F4D, + 0x0065A48F, 0xE0003DE5, 0xE0003F77, 0x0065A491, 0xE0003F7A, 0xE0003DE8, + 0x0065A491, 0xE0003DE8, 0xE0003F7A, 0x0065AE8F, 0xE0003FC1, 0xE0003DEB, + 0xE0003FBB, 0xE0003FC1, 0x0065AE91, 0xE0003FC9, 0xE0003FD2, 0xE0003FC5, + 0xE0003DF1, 0xE0003FCE, 0xE0003DF5, 0xE0003FC5, + // Block 34, offset 0x880 + 0xE0003FBE, 0xE0003FC5, 0xE0003DEE, 0x0065AE91, 0xE0003FC9, 0xE0003FD2, + 0xE0003DF1, 0xE0003FC5, 0xE0003DF5, 0xE0003FCE, 0xE0003FC5, 0xE0003DEE, + 0xE0003FBE, 0xE0003FC5, 0x0065AE91, 0xE0003FC5, 0xE0003DEE, 0xE0003FBE, + 0xE0003FC5, 0xE000229D, 0xE0003FC5, 0xE0003FC9, 0xE0003DF1, 0xE000229D, + 0xE0003DF1, 0xE0003FC5, 0xE0003FC9, 0xE00022A3, 0xE0003FCE, 0xE0003FD2, + 0xE0003DF5, 0xE00022A3, 0xE0003DF5, 0xE0003FCE, 0xE0003FD2, 0x0065B88F, + 0xE0003DF9, 0xE0004015, 0x0065B891, 0xE0004018, 0xE0003DFC, 0x0065B891, + 0xE0003DFC, 0xE0004018, 0x0065C08F, 0xE0004027, 0xE0003DFF, 0x0065C08F, + 0xE0003DFF, 0xE0004027, 0x0065C091, 0xE000402A, 0xE0003E02, 0x0065C091, + 0xE0003E02, 0xE000402A, 0x0065CA8F, 0xE0003E05, 0xE0004042, 0x0065CA91, + 0xE0004045, 0xE0003E08, 0x0065CA91, 0xE0003E08, + // Block 35, offset 0x8c0 + 0xE0004045, 0x00657E8F, 0xE0003E11, 0xE0003E0B, 0x00657E8F, 0xE0003E0B, + 0xE0003E11, 0x00657E91, 0xE0003E14, 0xE0003E0E, 0x00657E91, 0xE0003E0E, + 0xE0003E14, 0x0065888F, 0xE0003EC4, 0xE0003E17, 0x0065888F, 0xE0003E17, + 0xE0003EC4, 0x00658891, 0xE0003ECA, 0xE0003E1D, 0xE0003EC7, 0xE0003E1A, + 0x00658891, 0xE0003E1D, 0xE0003ECA, 0xE0003E1A, 0xE0003EC7, 0x00658891, + 0xE0003E1A, 0xE0003EC7, 0xE00021D9, 0xE0003ECA, 0xE0003E1D, 0xE00021D9, + 0xE0003E1D, 0xE0003ECA, 0x00659291, 0xE0003F16, 0xE0003F12, 0xE0003E24, + 0xE0003F12, 0xE0003F0F, 0xE0003F12, 0xE0003E21, 0x00659291, 0xE0003F16, + 0xE0003E24, 0xE0003F12, 0xE0003F12, 0xE0003E21, 0xE0003F0F, 0xE0003F12, + 0x00659291, 0xE0003F12, 0xE0003E21, 0xE0003F0F, 0xE0003F12, 0xE0002218, + 0xE0003F12, 0xE0003F16, 0xE0003E24, 0xE0002218, + // Block 36, offset 0x900 + 0xE0003E24, 0xE0003F12, 0xE0003F16, 0x00659C91, 0xE0003F59, 0xE0003F55, + 0xE0003E2B, 0xE0003F55, 0xE0003F52, 0xE0003F55, 0xE0003E28, 0x00659C91, + 0xE0003F59, 0xE0003E2B, 0xE0003F55, 0xE0003F55, 0xE0003E28, 0xE0003F52, + 0xE0003F55, 0x00659C91, 0xE0003F55, 0xE0003E28, 0xE0003F52, 0xE0003F55, + 0xE0002243, 0xE0003F55, 0xE0003F59, 0xE0003E2B, 0xE0002243, 0xE0003E2B, + 0xE0003F55, 0xE0003F59, 0x0065A691, 0xE0003F7D, 0xE0003E2F, 0x0065A691, + 0xE0003E2F, 0xE0003F7D, 0x0065B08F, 0xE0003FDD, 0xE0003E32, 0xE0003FD7, + 0xE0003FDD, 0x0065B091, 0xE0003FE5, 0xE0003FEE, 0xE0003FE1, 0xE0003E38, + 0xE0003FEA, 0xE0003E3C, 0xE0003FE1, 0xE0003FDA, 0xE0003FE1, 0xE0003E35, + 0x0065B091, 0xE0003FE5, 0xE0003FEE, 0xE0003E38, 0xE0003FE1, 0xE0003E3C, + 0xE0003FEA, 0xE0003FE1, 0xE0003E35, 0xE0003FDA, + // Block 37, offset 0x940 + 0xE0003FE1, 0x0065B091, 0xE0003FE1, 0xE0003E35, 0xE0003FDA, 0xE0003FE1, + 0xE00022C0, 0xE0003FE1, 0xE0003FE5, 0xE0003E38, 0xE00022C0, 0xE0003E38, + 0xE0003FE1, 0xE0003FE5, 0xE00022C6, 0xE0003FEA, 0xE0003FEE, 0xE0003E3C, + 0xE00022C6, 0xE0003E3C, 0xE0003FEA, 0xE0003FEE, 0x0065BA91, 0xE000401B, + 0xE0003E40, 0x0065BA91, 0xE0003E40, 0xE000401B, 0x0065CC8F, 0xE0003E43, + 0xE0004048, 0x0065CC91, 0xE000404B, 0xE0003E46, 0x0065CC91, 0xE0003E46, + 0xE000404B, 0x0065D491, 0xE0004076, 0xE0004073, 0xE0004076, 0xE0003E49, + 0x0065D491, 0xE000407A, 0xE0003E4C, 0xE0004076, 0xE0004076, 0xE0003E49, + 0xE0004073, 0xE0004076, 0xE0002374, 0xE0003E4C, 0xE0004076, 0xE000407A, + 0x0065808F, 0xE0003E56, 0xE0003E50, 0x0065808F, 0xE0003E50, 0xE0003E56, + 0x00658091, 0xE0003E59, 0xE0003E53, 0x00658091, + // Block 38, offset 0x980 + 0xE0003E53, 0xE0003E59, 0x00658A91, 0xE0003ED5, 0xE0003ED1, 0xE0003E5F, + 0xE0003ED1, 0xE0003ECE, 0xE0003ED1, 0xE0003E5C, 0x00658A91, 0xE0003ED5, + 0xE0003E5F, 0xE0003ED1, 0xE0003ED1, 0xE0003E5C, 0xE0003ECE, 0xE0003ED1, + 0x00658A91, 0xE0003ED1, 0xE0003E5C, 0xE0003ECE, 0xE0003ED1, 0xE00021E3, + 0xE0003ED1, 0xE0003ED5, 0xE0003E5F, 0xE00021E3, 0xE0003E5F, 0xE0003ED1, + 0xE0003ED5, 0x00659491, 0xE0003F22, 0xE0003F1E, 0xE0003E66, 0xE0003F1E, + 0xE0003F1B, 0xE0003F1E, 0xE0003E63, 0x00659491, 0xE0003F22, 0xE0003E66, + 0xE0003F1E, 0xE0003F1E, 0xE0003E63, 0xE0003F1B, 0xE0003F1E, 0x00659491, + 0xE0003F1E, 0xE0003E63, 0xE0003F1B, 0xE0003F1E, 0xE0002226, 0xE0003F1E, + 0xE0003F22, 0xE0003E66, 0xE0002226, 0xE0003E66, 0xE0003F1E, 0xE0003F22, + 0x00659E8F, 0xE0003F64, 0xE0003E6A, 0xE0003F5E, + // Block 39, offset 0x9c0 + 0xE0003F64, 0x00659E91, 0xE0003F6C, 0xE0003F68, 0xE0003E70, 0xE0003F68, + 0xE0003F61, 0xE0003F68, 0xE0003E6D, 0x00659E91, 0xE0003F6C, 0xE0003E70, + 0xE0003F68, 0xE0003F68, 0xE0003E6D, 0xE0003F61, 0xE0003F68, 0x00659E91, + 0xE0003F68, 0xE0003E6D, 0xE0003F61, 0xE0003F68, 0xE000224D, 0xE0003F68, + 0xE0003F6C, 0xE0003E70, 0xE000224D, 0xE0003E70, 0xE0003F68, 0xE0003F6C, + 0x0065A891, 0xE0003F80, 0xE0003E74, 0x0065A891, 0xE0003E74, 0xE0003F80, + 0x0065B28F, 0xE0003FF9, 0xE0003E77, 0xE0003FF3, 0xE0003FF9, 0x0065B291, + 0xE0004001, 0xE000400A, 0xE0003FFD, 0xE0003E7D, 0xE0004006, 0xE0003E81, + 0xE0003FFD, 0xE0003FF6, 0xE0003FFD, 0xE0003E7A, 0x0065B291, 0xE0004001, + 0xE000400A, 0xE0003E7D, 0xE0003FFD, 0xE0003E81, 0xE0004006, 0xE0003FFD, + 0xE0003E7A, 0xE0003FF6, 0xE0003FFD, 0x0065B291, + // Block 40, offset 0xa00 + 0xE0003FFD, 0xE0003E7A, 0xE0003FF6, 0xE0003FFD, 0xE00022EF, 0xE0003FFD, + 0xE0004001, 0xE0003E7D, 0xE00022EF, 0xE0003E7D, 0xE0003FFD, 0xE0004001, + 0xE00022F5, 0xE0004006, 0xE000400A, 0xE0003E81, 0xE00022F5, 0xE0003E81, + 0xE0004006, 0xE000400A, 0x0065BC91, 0xE000401E, 0xE0003E85, 0x0065BC91, + 0xE0003E85, 0xE000401E, 0x0065C48F, 0xE000402D, 0xE0003E88, 0x0065C48F, + 0xE0003E88, 0xE000402D, 0x0065C491, 0xE0004030, 0xE0003E8B, 0x0065C491, + 0xE0003E8B, 0xE0004030, 0x0065CE8F, 0xE0003E8E, 0xE000404E, 0x0065CE91, + 0xE0004051, 0xE0003E91, 0x0065CE91, 0xE0003E91, 0xE0004051, 0x0065D691, + 0xE0004082, 0xE000407F, 0xE0004082, 0xE0003E94, 0x0065D691, 0xE0004086, + 0xE0003E97, 0xE0004082, 0xE0004082, 0xE0003E94, 0xE000407F, 0xE0004082, + 0x0065D691, 0xE0004082, 0xE0003E94, 0xE000407F, + // Block 41, offset 0xa40 + 0xE0004082, 0xE0002377, 0xE0003E97, 0xE0004082, 0xE0004086, 0x0065D891, + 0xE000408B, 0x40368C20, 0x40343620, 0x00368C83, 0x00343688, 0x002DFE88, + 0x002F56A3, 0x402BDE20, 0x40320C21, 0x40321020, 0x002BDE88, 0x00320CA3, + 0x00321083, 0x404FA420, 0xE000409E, 0x404FA620, 0xE00040A2, 0x404FA820, + 0xE00040A6, 0x404FAA20, 0xE00040AA, 0x404FAC20, 0xE00040AE, 0x404FAE20, + 0xE00040B2, 0x404FB020, 0xE00040B6, 0x404FB220, 0xE00040BA, 0x404FB420, + 0xE00040BE, 0x404FB620, 0xE00040C2, 0x404FB820, 0xE00040C6, 0x404FBA20, + 0xE00040CA, 0x404FBC20, 0xE00040CE, 0x404FBE20, 0xE00040D2, 0x404FC020, + 0xE00040D6, 0x404FC220, 0xE00040DA, 0x404FC420, 0xE00040DE, 0x404FC620, + 0xE00040E2, 0x404FC820, 0xE00040E6, 0x404FCA20, 0xE00040EA, 0x404FCC20, + 0xE00040EE, 0x404FCE20, 0xE00040F2, 0x404FD020, + // Block 42, offset 0xa80 + 0xE00040F6, 0x404FD220, 0xE00040FA, 0x404FD420, 0xE00040FE, 0x404FD620, + 0xE0004102, 0x404FD820, 0xE0004106, 0x404FDA20, 0xE000410A, 0x404FDA20, + 0xE000410E, 0x404FDC20, 0xE0004112, 0x404FDC20, 0xE0004116, 0x404FDC20, + 0xE000411A, 0x404FDE20, 0xE000411E, 0x404FDE20, 0xE0004122, 0x404FE020, + 0xE0004126, 0x404FE220, 0xE000412A, 0x404FE420, 0xE000412E, 0x404FE620, + 0xE0004132, 0x404FE820, 0xE0004136, 0x40501820, 0x40502E20, 0x40503820, + 0x40500E20, 0x40503220, 0x40501020, 0x40503620, 0x40502420, 0x40503A20, + 0x40502A20, 0x40503C20, 0x403FEC20, 0x40403E20, 0x402D2220, 0x002D2483, + 0x402D2420, 0x002D2288, 0x002D2485, 0x002D2484, 0x402DFE20, 0x002E0083, + 0x402E0020, 0x002DFE88, 0x002E0085, 0x002E0084, 0x402E8220, 0x002E8483, + 0x002E8683, 0x002E8883, 0x002E8A83, 0x402E8420, + // Block 43, offset 0xac0 + 0x402E8620, 0x402E8820, 0x402E8A20, 0x002E8288, 0x002E8485, 0x002E8685, + 0x002E8885, 0x002E8A85, 0x002E8484, 0x002E8684, 0x002E8884, 0x002E8A84, + 0x402E9E20, 0x002EA485, 0x002EA484, 0x002EA483, 0x402EA420, 0x002EA083, + 0x002EA283, 0x002EA683, 0x002EA883, 0x002EAA83, 0x002EAC83, 0x002EAE83, + 0x402EA020, 0x402EA220, 0x402EA620, 0x402EA820, 0x402EAA20, 0x402EAC20, + 0x402EAE20, 0x002E9E88, 0x002EA488, 0x002EA487, 0x002EA486, 0x002EA085, + 0x002EA285, 0x002EA685, 0x002EA885, 0x002EAA85, 0x002EAC85, 0x002EAE85, + 0x002EA084, 0x002EA284, 0x002EA684, 0x002EA884, 0x002EAA84, 0x002EAC84, + 0x002EAE84, 0x402FE620, 0x002FE883, 0x402FE820, 0x002FE688, 0x002FE885, + 0x002FE884, 0x40302C20, 0x00302E83, 0x40302E20, 0x00302C88, 0x00302E85, + 0x00302E84, 0xAE605202, 0xAE603502, 0xAE603202, + // Block 44, offset 0xb00 + 0xAE604E02, 0x402BDE20, 0x402BDE21, 0x002BDE88, 0x002BDEA3, 0x402C9820, + 0x402C9822, 0x402C9821, 0x002C9888, 0x002C98C3, 0x002C98A3, 0x402D9A20, + 0x402D9A21, 0x002D9A88, 0x002D9AA3, 0x40306C20, 0x40306C22, 0x40306C21, + 0x00306C88, 0x00306CC3, 0x00306CA3, 0x402C3A20, 0x402C6020, 0x002C3A88, + 0x002C6083, 0x402D2220, 0x402D6620, 0x002D2288, 0x002D6683, 0x402DFE20, + 0x402E2020, 0x002DFE88, 0x002E2083, 0x402E2220, 0xE0000CFB, 0x402E8020, + 0xE0000CFB, 0x002E2288, 0xE0000D01, 0x002E8083, 0xE0000D01, 0x402E9E20, + 0x402EE020, 0x002E9E88, 0x002EE083, 0x402F7A20, 0x402FE420, 0x002F7A88, + 0x002FE483, 0x402FE620, 0x40302A20, 0x002FE688, 0x00302A83, 0x40312A20, + 0x40316220, 0x00312A88, 0x00316283, 0x40442220, 0xE000A9DC, 0x40443E20, + 0xE000A9E2, 0xE000A9EE, 0xE000A9E8, 0x40444820, + // Block 45, offset 0xb40 + 0xE000A9EB, 0x40445820, 0xE000A9F4, 0x40445A20, 0xE000A9FA, 0x40446620, + 0xE000AA00, 0x40448220, 0x40448820, 0x00448C83, 0x403FFC20, 0x40404020, + 0x002C3A88, 0x402C3820, 0x402C3A20, 0x002C3883, 0x002D2288, 0x402D6620, + 0x002D6683, 0x402D2020, 0x402D2220, 0x002D6684, 0x002D6685, 0x002D2083, + 0x00312A88, 0x40312820, 0x40312A20, 0x00312883, 0x404E6020, 0xE000AA0C, + 0x404FFE20, 0x404FFE21, 0x404E6A20, 0xE000AA12, 0x40502820, 0x40502821, + 0x404E9420, 0xE000AA2C, 0xE000AA25, 0x4050AC20, 0x4050AC21, 0x4005B820, + 0xE000AA32, 0x404EA620, 0xE000AA3D, 0x4050C820, 0x4050C821, 0xE000AA4E, + 0xE000AA51, 0xE000AA55, 0xE000AA5E, 0xE000AA62, 0xE000AA6E, 0xE000AA7A, + 0xE000AA86, 0xE000AA92, 0xE000AA9E, 0xE000AAAA, 0xE000AAB6, 0xE000AAC2, + 0xE000AACE, 0xE000AADA, 0xE000AAE6, 0xE000AAF2, + // Block 46, offset 0xb80 + 0xE000AAFE, 0xE000AB0A, 0xE000AB16, 0xE000AB22, 0xE000AB2E, 0xE000AB3A, + 0xE000AB46, 0xE000AB52, 0xE000AB5E, 0xE000AB6A, 0xE000AB76, 0xE000AB82, + 0xE000AB8E, 0xE000AB9A, 0xE000ABA6, 0xE000ABB2, 0xE000ABBE, 0xE000ABCA, + 0xE000ABD6, 0xE000ABE2, 0xE000ABEE, 0xE000ABFA, 0xE000AC06, 0xE000AC12, + 0xE000AC1E, 0xE000AC2A, 0xE000AC36, 0xE000AC42, 0xE000AC4E, 0xE000AC5A, + 0xE000AC66, 0xE000AC72, 0xE000AC7E, 0xE000AC8A, 0xE000AC96, 0xE000ACA2, + 0xE000ACAE, 0xE000ACBA, 0xE000ACC6, 0xE000ACD2, 0xE000ACDE, 0xE000ACEA, + 0xE000ACF6, 0xE000AD02, 0xE000AD0E, 0xE000AD1A, 0xE000AD26, 0xE000AA68, + 0xE000AA74, 0xE000AA80, 0xE000AA8C, 0xE000AA98, 0xE000AAA4, 0xE000AAB0, + 0xE000AABC, 0xE000AAC8, 0xE000AAD4, 0xE000AAE0, 0xE000AAEC, 0xE000AAF8, + 0xE000AB04, 0xE000AB10, 0xE000AB1C, 0xE000AB28, + // Block 47, offset 0xbc0 + 0xE000AB34, 0xE000AB40, 0xE000AB4C, 0xE000AB58, 0xE000AB64, 0xE000AB70, + 0xE000AB7C, 0xE000AB88, 0xE000AB94, 0xE000ABA0, 0xE000ABAC, 0xE000ABB8, + 0xE000ABC4, 0xE000ABD0, 0xE000ABDC, 0xE000ABE8, 0xE000ABF4, 0xE000AC00, + 0xE000AC0C, 0xE000AC18, 0xE000AC24, 0xE000AC30, 0xE000AC3C, 0xE000AC48, + 0xE000AC54, 0xE000AC60, 0xE000AC6C, 0xE000AC78, 0xE000AC84, 0xE000AC90, + 0xE000AC9C, 0xE000ACA8, 0xE000ACB4, 0xE000ACC0, 0xE000ACCC, 0xE000ACD8, + 0xE000ACE4, 0xE000ACF0, 0xE000ACFC, 0xE000AD08, 0xE000AD14, 0xE000AD20, + 0xE000AD2C, 0x404EFE20, 0x404F5222, 0xE000AD37, 0x404F5220, 0x404F5020, + 0x404F1A22, 0x404F1A23, 0x404F2822, 0x404F2823, 0x404F3622, 0x404F3623, + 0x404F4422, 0x404F4423, 0x404F5223, 0x404F6022, 0x404F6023, 0x404F6E22, + 0x404F6E23, 0x404F7C22, 0x404F7C23, 0x404F8A21, + // Block 48, offset 0xc00 + 0x404F9822, 0x404F9823, 0x404FA622, 0x404FA623, 0x404FB422, 0x404FB423, + 0x404FC222, 0x404FC223, 0x404FD022, 0x404FD023, 0x404FDE22, 0x404FDE23, + 0x404FEC22, 0x404FEC23, 0x404FFA22, 0x404FFA23, 0x40500822, 0x40500823, + 0x40501622, 0x40501623, 0x40502422, 0x40502423, 0x40503222, 0x40503223, + 0x40504022, 0x40504023, 0x40504E22, 0x40504E23, 0x40505C22, 0x40505C23, + 0x40506A22, 0x40506A23, 0x40508C22, 0x40508C23, 0x40509A22, 0x40509A23, + 0x4050A822, 0x4050A823, 0x4050B622, 0x4050B623, 0x4050C421, 0x4050D222, + 0x4050D223, 0x4050E022, 0x4050E023, 0x4050EE21, 0x4050FC21, 0x404F1A20, + 0x404F1A21, 0x404F2820, 0x404F2821, 0x404F3620, 0x404F3621, 0x404F4420, + 0x404F4421, 0x404F5221, 0x404F6020, 0x404F6021, 0x404F6E20, 0x404F6E21, + 0x404F7C20, 0x404F7C21, 0x404F8A20, 0x404F9820, + // Block 49, offset 0xc40 + 0x404F9821, 0x404FA620, 0x404FA621, 0x404FB420, 0x404FB421, 0x404FC220, + 0x404FC221, 0x404FD020, 0x404FD021, 0x404FDE20, 0x404FDE21, 0x404FEC20, + 0x404FEC21, 0x404FFA20, 0x404FFA21, 0x40500820, 0x40500821, 0x40501620, + 0x40501621, 0x40502420, 0x40502421, 0x40503220, 0x40503221, 0x40504020, + 0x40504021, 0x40504E20, 0x40504E21, 0x40505C20, 0x40505C21, 0x40506A20, + 0x40506A21, 0x40508C20, 0x40508C21, 0x40509A20, 0x40509A21, 0x4050A820, + 0x4050A821, 0x4050B620, 0x4050B621, 0x4050C420, 0x4050D220, 0x4050D221, + 0x4050E020, 0x4050E021, 0x4050EE20, 0x4050FC20, 0x404F1820, 0x404F1821, + 0x404F2620, 0x404F2621, 0x404F3420, 0x404F3421, 0x404F4220, 0x404F4221, + 0x404F5021, 0x404F5E20, 0x404F5E21, 0x404F6C20, 0x404F6C21, 0x404F7A20, + 0x404F7A21, 0x404F8820, 0x404F9620, 0x404F9621, + // Block 50, offset 0xc80 + 0x404FA420, 0x404FA421, 0x404FB220, 0x404FB221, 0x404FC020, 0x404FC021, + 0x404FCE20, 0x404FCE21, 0x404FDC20, 0x404FDC21, 0x404FEA20, 0x404FEA21, + 0x404FF820, 0x404FF821, 0x40500620, 0x40500621, 0x40501420, 0x40501421, + 0x40502220, 0x40502221, 0x40503020, 0x40503021, 0x40503E20, 0x40503E21, + 0x40504C20, 0x40504C21, 0x40505A20, 0x40505A21, 0x40506820, 0x40506821, + 0x40508A20, 0x40508A21, 0x40509820, 0x40509821, 0x4050A620, 0x4050A621, + 0x4050B420, 0x4050B421, 0x4050C220, 0x4050D020, 0x4050D021, 0x4050DE20, + 0x4050DE21, 0x4050EC20, 0x4050FA20, 0x404F0A21, 0x404F0A20, 0x404F0821, + 0x404F0820, 0x404EE620, 0x404F5420, 0x404F4C20, 0x40507620, 0x40507A20, + 0x404F1C20, 0x404F1C21, 0x404F2A20, 0x404F2A21, 0x404F3820, 0x404F3821, + 0x404F4620, 0x404F4621, 0x404F5421, 0x404F6220, + // Block 51, offset 0xcc0 + 0x404F6221, 0x404F7020, 0x404F7021, 0x404F7E20, 0x404F7E21, 0x404F8C20, + 0x404F9A20, 0x404F9A21, 0x404FA820, 0x404FA821, 0x404FB620, 0x404FB621, + 0x404FC420, 0x404FC421, 0x404FD220, 0x404FD221, 0x404FE020, 0x404FE021, + 0x404FEE20, 0x404FEE21, 0x404FFC20, 0x404FFC21, 0x40500A20, 0x40500A21, + 0x40501820, 0x40501821, 0x40502620, 0x40502621, 0x40503420, 0x40503421, + 0x40504220, 0x40504221, 0x40505020, 0x40505021, 0x40505E20, 0x40505E21, + 0x40506C20, 0x40506C21, 0x40508E20, 0x40508E21, 0x40509C20, 0x40509C21, + 0x4050AA20, 0x4050AA21, 0x4050B820, 0x4050B821, 0x4050C620, 0x4050D420, + 0x4050D421, 0x4050E220, 0x4050E221, 0x4050F020, 0x4050FE20, 0x404F1420, + 0x404F1421, 0x404F2220, 0x404F2221, 0x404F3020, 0x404F3021, 0x404F3E20, + 0x404F3E21, 0x404F4C21, 0x404F5A20, 0x404F5A21, + // Block 52, offset 0xd00 + 0x404F6820, 0x404F6821, 0x404F7620, 0x404F7621, 0x404F8420, 0x404F9220, + 0x404F9221, 0x404FA020, 0x404FA021, 0x404FAE20, 0x404FAE21, 0x404FBC20, + 0x404FBC21, 0x404FCA20, 0x404FCA21, 0x404FD820, 0x404FD821, 0x404FE620, + 0x404FE621, 0x404FF420, 0x404FF421, 0x40500220, 0x40500221, 0x40501020, + 0x40501021, 0x40501E20, 0x40501E21, 0x40502C20, 0x40502C21, 0x40503A20, + 0x40503A21, 0x40504820, 0x40504821, 0x40505620, 0x40505621, 0x40506420, + 0x40506421, 0x40507220, 0x40507221, 0x40509420, 0x40509421, 0x4050A220, + 0x4050A221, 0x4050B020, 0x4050B021, 0x4050BE20, 0x4050CC20, 0x4050CC21, + 0x4050DA20, 0x4050DA21, 0x4050E820, 0x4050F620, 0x40507820, 0x40507C20, + 0x404F0E20, 0x40507420, 0x404E1420, 0x404F1020, 0x404F1021, 0x404EDE20, + 0x404F4A20, 0x404F1220, 0x404F1221, 0x404F2020, + // Block 53, offset 0xd40 + 0x404F2021, 0x404F2E20, 0x404F2E21, 0x404F3C20, 0x404F3C21, 0x404F4A21, + 0x404F5820, 0x404F5821, 0x404F6620, 0x404F6621, 0x404F7420, 0x404F7421, + 0x404F8220, 0x404F9020, 0x404F9021, 0x404F9E20, 0x404F9E21, 0x404FAC20, + 0x404FAC21, 0x404FBA20, 0x404FBA21, 0x404FC820, 0x404FC821, 0x404FD620, + 0x404FD621, 0x404FE420, 0x404FE421, 0x404FF220, 0x404FF221, 0x40500020, + 0x40500021, 0x40500E20, 0x40500E21, 0x40501C20, 0x40501C21, 0x40502A20, + 0x40502A21, 0x40503820, 0x40503821, 0x40504620, 0x40504621, 0x40505420, + 0x40505421, 0x40506220, 0x40506221, 0x40507020, 0x40507021, 0x40509220, + 0x40509221, 0x4050A020, 0x4050A021, 0x4050AE20, 0x4050AE21, 0x4050BC20, + 0x4050CA20, 0x4050CA21, 0x4050D820, 0x4050D821, 0x4050E620, 0x4050F420, + 0x404EDE21, 0x404F4A22, 0x404F1222, 0x404F1223, + // Block 54, offset 0xd80 + 0x404F2022, 0x404F2023, 0x404F2E22, 0x404F2E23, 0x404F3C22, 0x404F3C23, + 0x404F4A23, 0x404F5822, 0x404F5823, 0x404F6622, 0x404F6623, 0x404F7422, + 0x404F7423, 0x404F8221, 0x404F9022, 0x404F9023, 0x404F9E22, 0x404F9E23, + 0x404FAC22, 0x404FAC23, 0x404FBA22, 0x404FBA23, 0x404FC822, 0x404FC823, + 0x404FD622, 0x404FD623, 0x404FE422, 0x404FE423, 0x404FF222, 0x404FF223, + 0x40500022, 0x40500023, 0x40500E22, 0x40500E23, 0x40501C22, 0x40501C23, + 0x40502A22, 0x40502A23, 0x40503822, 0x40503823, 0x40504622, 0x40504623, + 0x40505422, 0x40505423, 0x40506222, 0x40506223, 0x40507022, 0x40507023, + 0x40509222, 0x40509223, 0x4050A022, 0x4050A023, 0x4050AE22, 0x4050AE23, + 0x4050BC21, 0x4050CA22, 0x4050CA23, 0x4050D822, 0x4050D823, 0x4050E621, + 0x4050F421, 0x404EEE20, 0x404F4E20, 0x40508220, + // Block 55, offset 0xdc0 + 0x40508620, 0x404F1620, 0x404F1621, 0x404F2420, 0x404F2421, 0x404F3220, + 0x404F3221, 0x404F4020, 0x404F4021, 0x404F4E21, 0x404F5C20, 0x404F5C21, + 0x404F6A20, 0x404F6A21, 0x404F7820, 0x404F7821, 0x404F8620, 0x404F9420, + 0x404F9421, 0x404FA220, 0x404FA221, 0x404FB020, 0x404FB021, 0x404FBE20, + 0x404FBE21, 0x404FCC20, 0x404FCC21, 0x404FDA20, 0x404FDA21, 0x404FE820, + 0x404FE821, 0x404FF620, 0x404FF621, 0x40500420, 0x40500421, 0x40501220, + 0x40501221, 0x40502020, 0x40502021, 0x40502E20, 0x40502E21, 0x40503C20, + 0x40503C21, 0x40504A20, 0x40504A21, 0x40505820, 0x40505821, 0x40506620, + 0x40506621, 0x40507E20, 0x40507E21, 0x40509620, 0x40509621, 0x4050A420, + 0x4050A421, 0x4050B220, 0x4050B221, 0x4050C020, 0x4050CE20, 0x4050CE21, + 0x4050DC20, 0x4050DC21, 0x4050EA20, 0x4050F820, + // Block 56, offset 0xe00 + 0x40508420, 0x40508820, 0x40508020, 0x404E1820, 0x404F1E20, 0x404F1E21, + 0x404E1C20, 0x404F2C20, 0x404F2C21, 0x404F2E20, 0x404F3220, 0x404E2220, + 0x404F3A20, 0x404F3A21, 0x404E2420, 0x404F4820, 0x404F4821, 0x404E2820, + 0x404F5620, 0x404F5621, 0x404E2E20, 0x404F6420, 0x404F6421, 0x404E3220, + 0x404F7220, 0x404F7221, 0x404E3A20, 0x404F8020, 0x404E4220, 0x404F8E20, + 0x404F8E21, 0x404E4820, 0x404F9C20, 0x404F9C21, 0x404E4A20, 0x404FAA20, + 0x404FAA21, 0x404E4E20, 0x404FB820, 0x404FB821, 0x404E5220, 0x404FC620, + 0x404FC621, 0x404E5620, 0x404FD420, 0x404FD421, 0x404E5A20, 0x404FE220, + 0x404FE221, 0x404E5E20, 0x404FF020, 0x404FF021, 0x404E6220, 0x40500C20, + 0x40500C21, 0x404E6620, 0x40501A20, 0x40501A21, 0x404E7220, 0x40503620, + 0x40503621, 0x404E7420, 0x40504420, 0x40504421, + // Block 57, offset 0xe40 + 0x404E7E20, 0x40505220, 0x40505221, 0x404E8220, 0x40506020, 0x40506021, + 0x404E8420, 0x40506E20, 0x40506E21, 0x404E8820, 0x40509020, 0x40509021, + 0x404E8C20, 0x40509E20, 0x40509E21, 0x404E9820, 0x4050BA20, 0x404EAA20, + 0x4050D620, 0x4050D621, 0x404EB620, 0x4050E420, 0x404EC220, 0x4050F220, + 0x40510420, 0x40511A20, 0x40511020, 0x40511420, 0x40510620, 0x40511C20, + 0x40511220, 0x40511620, 0x40510A20, 0x40511820, 0x402BDE20, 0x40320C21, + 0x40321020, 0x40321021, 0x002BDE88, 0x00320CA3, 0x00321083, 0x003210A4, + 0x003210A3, 0x402C9820, 0x402C9A20, 0x002C9888, 0x002C9A83, 0x402C3A20, + 0x40312C20, 0x002C3A88, 0x00312C84, 0x00312C83, 0x402C6220, 0x40312E20, + 0x002C6288, 0x00312E84, 0x00312E83, 0x402DFE20, 0x40313020, 0x002DFE88, + 0x00313084, 0x00313083, 0x402E9E20, 0x40313220, + // Block 58, offset 0xe80 + 0x002E9E88, 0x00313284, 0x00313283, 0x402F2C20, 0x40313420, 0x002F2C88, + 0x00313484, 0x00313483, 0x402FE620, 0x40313620, 0x002FE688, 0x00313683, + 0x40421220, 0x40425A20, 0x402BDE20, 0x402BE020, 0x002BDE88, 0x002BE083, + 0x40312A20, 0x40312C20, 0x40312E20, 0x00312A88, 0x00312C83, 0x00312E83, + 0x40393820, 0x40393620, 0x40393821, 0x40393824, 0x40397220, 0x40396621, + 0x403A6821, 0x003A6883, 0x403A6820, 0x003A6884, 0x403A7420, 0x403A7421, + 0x403A9220, 0x403A9226, 0x403A9221, 0x003A9343, 0x403A9223, 0x003A9344, + 0x402BDE20, 0x402BE220, 0x402BE020, 0x002BDE88, 0x002BE283, 0x002BE083, + 0x402FE620, 0x402FE820, 0x402FE820, 0x002FE688, 0x002FE883, 0x002FE883, + 0x40302C20, 0x40302E20, 0x40302E20, 0x00302C88, 0x00302E83, 0x00302E83, + 0x402BDE20, 0x402C0820, 0x40320E21, 0x40320C21, + // Block 59, offset 0xec0 + 0x40320E20, 0x40320C20, 0x002BDE88, 0x002C0883, 0x00320EA3, 0x00320CA3, + 0x00320E83, 0x00320C83, 0x402C3A20, 0x402C5C20, 0x002C3A88, 0x002C5C83, + 0x402C5E20, 0x402C6020, 0x002C5E83, 0x002C6083, 0x402D2220, 0x402D6420, + 0x002D2288, 0x002D6483, 0x402E9E20, 0x402EE021, 0x402EE022, 0x002E9E88, + 0x002EE0A3, 0x002EE0C3, 0x40312A20, 0x40320620, 0x00312A88, 0x00320683, + 0x402EE220, 0x40321023, 0x40321022, 0x40321020, 0x40321021, 0x40321024, + 0x002EE288, 0x003210E3, 0x003210C3, 0x00321083, 0x003210A3, 0x00321103, + 0x402C6220, 0x402C9620, 0x002C6288, 0x002C9684, 0x002C9683, 0x002D2288, + 0x002D6684, 0x002D6683, 0x402E2220, 0xE0000CFB, 0xE0000CFB, 0x402E8020, + 0x002E2288, 0xE0000D01, 0xE0000D01, 0x002E8084, 0x002E8083, 0x002E9E88, + 0x002EE084, 0x002EE083, 0x002F7A88, 0x002FE484, + // Block 60, offset 0xf00 + 0x002FE483, 0x002FE688, 0x00302A84, 0x00302A83, 0x40302C20, 0x40306A20, + 0x00302C88, 0x00306A84, 0x00306A83, 0x4030F620, 0x4030FE20, 0x0030F688, + 0x0030FE84, 0x0030FE83, 0x00312A88, 0x00316284, 0x00316283, 0x402C9820, + 0x40320E22, 0x002C9888, 0x00320EC3, 0x402EE220, 0x40321024, 0x40321020, + 0x40321022, 0x002EE288, 0x00321103, 0x00321083, 0x003210C3, 0x40429820, + 0x4042C220, 0x4042C420, 0x40429620, 0x40429A20, 0x40429820, 0x40429C20, + 0x40429A20, 0x40429E20, 0x40429C20, 0x4042A020, 0x40429E20, 0x4042A220, + 0x4042A020, 0x4042A420, 0x4042A220, 0x4042A620, 0x4042A420, 0x4042A820, + 0x4042A620, 0x4042AA20, 0x4042A820, 0x4042AC20, 0x4042AA20, 0x4042AE20, + 0x4042AC20, 0x4042B020, 0x4042AE20, 0x4042B220, 0x4042B020, 0x4042B420, + 0x4042B220, 0x4042B620, 0x4042B420, 0x4042B820, + // Block 61, offset 0xf40 + 0x4042B620, 0x4042BA20, 0x4042B820, 0x4042BC20, 0x4042BA20, 0x4042BE20, + 0x4042BC20, 0x4042C020, 0x4042BE20, 0x4042C220, 0x4042C020, 0x4042C420, + 0x4042C220, 0x40496C20, 0xE000AE0D, 0xE000AE10, 0x402BDE20, 0x402BDE21, + 0x402BDE22, 0x002BDE88, 0x002BDEA3, 0x002BDEC3, 0x402C9820, 0x402C9821, + 0x402C9822, 0x002C9888, 0x002C98A3, 0x002C98C3, 0x402D9A20, 0x402D9A21, + 0x402D9A22, 0x002D9A88, 0x002D9AA3, 0x002D9AC3, 0x402EE220, 0x402EE221, + 0x402EE222, 0x002EE288, 0x002EE2A3, 0x002EE2C3, 0x40306C20, 0x40306C21, + 0x40306C22, 0x00306C88, 0x00306CA3, 0x00306CC3, 0x40393820, 0x40393A20, + 0x40393821, 0x40392820, 0x40393C20, 0x40393E20, 0x40394020, 0x40394220, + 0x40394420, 0x40394620, 0x40394820, 0x40394A20, 0x40394E20, 0x40395020, + 0x40395220, 0x40395420, 0x40395A20, 0x40395C20, + // Block 62, offset 0xf80 + 0x40395E20, 0x40396020, 0x40396420, 0x40396620, 0x40396820, 0x40396A20, + 0x40398420, 0x40398620, 0x40398820, 0x40398A20, 0x40398C20, 0x40398E20, + 0x40399020, 0x40399220, 0x40399420, 0x40399620, 0x40399820, 0x40399A20, + 0x40399C20, 0x40399C21, 0x40399E20, 0x4039A020, 0x4039A021, 0x403A9020, + 0x4039A821, 0x4039A820, 0x4039AA20, 0x4039AC20, 0x4039AC21, 0x402EE220, + 0x402EE420, 0x402EE620, 0x002EE288, 0x002EE483, 0x002EE683, 0x402BDE20, + 0xE0000966, 0xE000B3B3, 0xE0000958, 0xE0000966, 0x402C3A20, 0xE0000A41, + 0x402C9820, 0xE000B3B6, 0x402D9A20, 0xE000B3B9, 0x402EE220, 0xE0000DE3, + 0xE000B3BC, 0xE0000DCF, 0xE0000DE3, 0x402FE620, 0xE0000F30, 0x40306C20, + 0xE0001028, 0xE000B3BF, 0xE0000FFC, 0xE0001028, 0x402BDE20, 0x402BDE1F, + 0x402BDE1D, 0x402BDE1C, 0x402BDE1E, 0x002BDE88, + // Block 63, offset 0xfc0 + 0x002BDE63, 0x002BDE23, 0x002BDE03, 0x002BDE43, 0x402C9820, 0x402C9824, + 0x402C9822, 0x402C9821, 0x402C9823, 0x402C981F, 0x402C981D, 0x402C981C, + 0x402C981E, 0x002C9888, 0x002C9903, 0x002C98C3, 0x002C98A3, 0x002C98E3, + 0x002C9863, 0x002C9823, 0x002C9803, 0x002C9843, 0xE0000AF1, 0x402C9821, + 0x402C9823, 0xE0000AF4, 0x002C98A3, 0x002C98E3, 0x402D9A20, 0x402D9A1F, + 0x402D9A1D, 0x402D9A1C, 0x402D9A1E, 0x002D9A88, 0x002D9A63, 0x002D9A23, + 0x002D9A03, 0x002D9A43, 0x402E8220, 0x402E821F, 0x402E821D, 0x402E821C, + 0x402E821E, 0x002E8288, 0x002E8263, 0x002E8223, 0x002E8203, 0x002E8243, + 0x402E9E20, 0x402E9E1F, 0x402E9E1D, 0x402E9E1C, 0x402E9E1E, 0x002E9E88, + 0x002E9E63, 0x002E9E23, 0x002E9E03, 0x002E9E43, 0x402EE220, 0x402EE21F, + 0x402EE21D, 0x402EE21C, 0x402EE21E, 0x002EE288, + // Block 64, offset 0x1000 + 0x002EE263, 0x002EE223, 0x002EE203, 0x002EE243, 0x40306C20, 0x40306C24, + 0x40306C22, 0x40306C21, 0x40306C23, 0x40306C1F, 0x40306C1D, 0x40306C1C, + 0x40306C25, 0x40306C1E, 0x00306C88, 0x00306D03, 0x00306CC3, 0x00306CA3, + 0x00306CE3, 0x00306C63, 0x00306C23, 0x00306C03, 0x00306D23, 0x00306C43, +} + +// mainValues: 251456 entries, 1005824 bytes +// Block 2 is the null block. +var mainValues = [251456]uint32{ + // Block 0x0, offset 0x0 + 0x0000: 0xa0000000, 0x0001: 0xa0000000, 0x0002: 0xa0000000, 0x0003: 0xa0000000, + 0x0004: 0xa0000000, 0x0005: 0xa0000000, 0x0006: 0xa0000000, 0x0007: 0xa0000000, + 0x0008: 0xa0000000, 0x0009: 0x40020020, 0x000a: 0x40020220, 0x000b: 0x40020420, + 0x000c: 0x40020620, 0x000d: 0x40020820, 0x000e: 0xa0000000, 0x000f: 0xa0000000, + 0x0010: 0xa0000000, 0x0011: 0xa0000000, 0x0012: 0xa0000000, 0x0013: 0xa0000000, + 0x0014: 0xa0000000, 0x0015: 0xa0000000, 0x0016: 0xa0000000, 0x0017: 0xa0000000, + 0x0018: 0xa0000000, 0x0019: 0xa0000000, 0x001a: 0xa0000000, 0x001b: 0xa0000000, + 0x001c: 0xa0000000, 0x001d: 0xa0000000, 0x001e: 0xa0000000, 0x001f: 0xa0000000, + 0x0020: 0x40021220, 0x0021: 0x4002ba20, 0x0022: 0x4003e020, 0x0023: 0x4004ea20, + 0x0024: 0x4027de20, 0x0025: 0x4004ec20, 0x0026: 0x4004e620, 0x0027: 0x4003d220, + 0x0028: 0x4003f420, 0x0029: 0x4003f620, 0x002a: 0x4004d820, 0x002b: 0x40093820, + 0x002c: 0x40024020, 0x002d: 0x40021a20, 0x002e: 0x4002e420, 0x002f: 0x4004e220, + 0x0030: 0x4029cc20, 0x0031: 0x4029ce20, 0x0032: 0x4029d020, 0x0033: 0x4029d220, + 0x0034: 0x4029d420, 0x0035: 0x4029d620, 0x0036: 0x4029d820, 0x0037: 0x4029da20, + 0x0038: 0x4029dc20, 0x0039: 0x4029de20, 0x003a: 0x40026c20, 0x003b: 0x40026220, + 0x003c: 0x40094020, 0x003d: 0x40094220, 0x003e: 0x40094420, 0x003f: 0x4002c420, + // Block 0x1, offset 0x40 + 0x0040: 0x4004d620, 0x0041: 0x002bde88, 0x0042: 0x002c0a88, 0x0043: 0x002c3a88, + 0x0044: 0x002c6288, 0x0045: 0x002c9888, 0x0046: 0x002d0888, 0x0047: 0x002d2288, + 0x0048: 0x002d6888, 0x0049: 0x002d9a88, 0x004a: 0x002dcc88, 0x004b: 0x002dfe88, + 0x004c: 0xc0030002, 0x004d: 0x002e8288, 0x004e: 0x002e9e88, 0x004f: 0x002ee288, + 0x0050: 0x002f2c88, 0x0051: 0x002f5688, 0x0052: 0x002f7a88, 0x0053: 0x002fe688, + 0x0054: 0x00302c88, 0x0055: 0x00306c88, 0x0056: 0x0030be88, 0x0057: 0x0030e288, + 0x0058: 0x0030f688, 0x0059: 0x00310088, 0x005a: 0x00312a88, 0x005b: 0x4003f820, + 0x005c: 0x4004e420, 0x005d: 0x4003fa20, 0x005e: 0x40062420, 0x005f: 0x40021620, + 0x0060: 0x40061e20, 0x0061: 0x402bde20, 0x0062: 0x402c0a20, 0x0063: 0x402c3a20, + 0x0064: 0x402c6220, 0x0065: 0x402c9820, 0x0066: 0x402d0820, 0x0067: 0x402d2220, + 0x0068: 0x402d6820, 0x0069: 0x402d9a20, 0x006a: 0x402dcc20, 0x006b: 0x402dfe20, + 0x006c: 0xc0000002, 0x006d: 0x402e8220, 0x006e: 0x402e9e20, 0x006f: 0x402ee220, + 0x0070: 0x402f2c20, 0x0071: 0x402f5620, 0x0072: 0x402f7a20, 0x0073: 0x402fe620, + 0x0074: 0x40302c20, 0x0075: 0x40306c20, 0x0076: 0x4030be20, 0x0077: 0x4030e220, + 0x0078: 0x4030f620, 0x0079: 0x40310020, 0x007a: 0x40312a20, 0x007b: 0x4003fc20, + 0x007c: 0x40094820, 0x007d: 0x4003fe20, 0x007e: 0x40094c20, 0x007f: 0xa0000000, + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0x00c0: 0xa0000000, 0x00c1: 0xa0000000, 0x00c2: 0xa0000000, 0x00c3: 0xa0000000, + 0x00c4: 0xa0000000, 0x00c5: 0x40020a20, 0x00c6: 0xa0000000, 0x00c7: 0xa0000000, + 0x00c8: 0xa0000000, 0x00c9: 0xa0000000, 0x00ca: 0xa0000000, 0x00cb: 0xa0000000, + 0x00cc: 0xa0000000, 0x00cd: 0xa0000000, 0x00ce: 0xa0000000, 0x00cf: 0xa0000000, + 0x00d0: 0xa0000000, 0x00d1: 0xa0000000, 0x00d2: 0xa0000000, 0x00d3: 0xa0000000, + 0x00d4: 0xa0000000, 0x00d5: 0xa0000000, 0x00d6: 0xa0000000, 0x00d7: 0xa0000000, + 0x00d8: 0xa0000000, 0x00d9: 0xa0000000, 0x00da: 0xa0000000, 0x00db: 0xa0000000, + 0x00dc: 0xa0000000, 0x00dd: 0xa0000000, 0x00de: 0xa0000000, 0x00df: 0xa0000000, + 0x00e0: 0x0002129b, 0x00e1: 0x4002bc20, 0x00e2: 0x4027dc20, 0x00e3: 0x4027e020, + 0x00e4: 0x4027da20, 0x00e5: 0x4027e220, 0x00e6: 0x40094a20, 0x00e7: 0x4004ce20, + 0x00e8: 0x40062c20, 0x00e9: 0x40081820, 0x00ea: 0x002bde94, 0x00eb: 0x4003f020, + 0x00ec: 0x40094620, 0x00ed: 0xa0000000, 0x00ee: 0x40081a20, 0x00ef: 0x40062620, + 0x00f0: 0x40070420, 0x00f1: 0x40093a20, 0x00f2: 0x0029d094, 0x00f3: 0x0029d294, + 0x00f4: 0x40062020, 0x00f5: 0x00327684, 0x00f6: 0x4004d220, 0x00f7: 0x40030620, + 0x00f8: 0x40063220, 0x00f9: 0x0029ce94, 0x00fa: 0x002ee294, 0x00fb: 0x4003f220, + 0x00fc: 0xe00002bf, 0x00fd: 0xe00002b7, 0x00fe: 0xe00004a7, 0x00ff: 0x4002c620, + // Block 0x4, offset 0x100 + 0x0100: 0xe00008f5, 0x0101: 0xe00008ef, 0x0102: 0xe0000921, 0x0103: 0xe0000969, + 0x0104: 0xe000095b, 0x0105: 0xe000094d, 0x0106: 0xe00009dd, 0x0107: 0xe0000a53, + 0x0108: 0xe0000ae8, 0x0109: 0xe0000ae2, 0x010a: 0xe0000af4, 0x010b: 0xe0000b20, + 0x010c: 0xe0000c2b, 0x010d: 0xe0000c25, 0x010e: 0xe0000c37, 0x010f: 0xe0000c43, + 0x0110: 0xe0000ab3, 0x0111: 0xe0000d63, 0x0112: 0xe0000d9a, 0x0113: 0xe0000d94, + 0x0114: 0xe0000da6, 0x0115: 0xe0000de6, 0x0116: 0xe0000dd2, 0x0117: 0x40093e20, + 0x0118: 0xe0000e12, 0x0119: 0xe0000fe1, 0x011a: 0xe0000fdb, 0x011b: 0xe0000fed, + 0x011c: 0xe0000fff, 0x011d: 0xe0001102, 0x011e: 0x00318888, 0x011f: 0xe0000f7b, + 0x0120: 0xe00008f2, 0x0121: 0xe00008ec, 0x0122: 0xe000091e, 0x0123: 0xe0000966, + 0x0124: 0xe0000958, 0x0125: 0xe000094a, 0x0126: 0xe00009d5, 0x0127: 0xe0000a4d, + 0x0128: 0xe0000ae5, 0x0129: 0xe0000adf, 0x012a: 0xe0000af1, 0x012b: 0xe0000b1d, + 0x012c: 0xe0000c28, 0x012d: 0xe0000c22, 0x012e: 0xe0000c34, 0x012f: 0xe0000c40, + 0x0130: 0xe0000aad, 0x0131: 0xe0000d60, 0x0132: 0xe0000d97, 0x0133: 0xe0000d91, + 0x0134: 0xe0000da3, 0x0135: 0xe0000de3, 0x0136: 0xe0000dcf, 0x0137: 0x40093c20, + 0x0138: 0xe0000e0f, 0x0139: 0xe0000fde, 0x013a: 0xe0000fd8, 0x013b: 0xe0000fea, + 0x013c: 0xe0000ffc, 0x013d: 0xe00010ff, 0x013e: 0x40318820, 0x013f: 0xe0001114, + // Block 0x5, offset 0x140 + 0x0140: 0xe0000983, 0x0141: 0xe0000980, 0x0142: 0xe00008fb, 0x0143: 0xe00008f8, + 0x0144: 0xe000097d, 0x0145: 0xe000097a, 0x0146: 0xe0000a38, 0x0147: 0xe0000a35, + 0x0148: 0xe0000a3e, 0x0149: 0xe0000a3b, 0x014a: 0xe0000a4a, 0x014b: 0xe0000a47, + 0x014c: 0xe0000a44, 0x014d: 0xe0000a41, 0x014e: 0xe0000a86, 0x014f: 0xe0000a83, + 0x0150: 0xe0000aaa, 0x0151: 0xe0000aa7, 0x0152: 0xe0000b46, 0x0153: 0xe0000b43, + 0x0154: 0xe0000aee, 0x0155: 0xe0000aeb, 0x0156: 0xe0000b2c, 0x0157: 0xe0000b29, + 0x0158: 0xe0000b40, 0x0159: 0xe0000b3d, 0x015a: 0xe0000b1a, 0x015b: 0xe0000b17, + 0x015c: 0xe0000bb8, 0x015d: 0xe0000bb5, 0x015e: 0xe0000bb2, 0x015f: 0xe0000baf, + 0x0160: 0xe0000bc4, 0x0161: 0xe0000bc1, 0x0162: 0xe0000bca, 0x0163: 0xe0000bc7, + 0x0164: 0xe0000bee, 0x0165: 0xe0000beb, 0x0166: 0xe0000c1b, 0x0167: 0xe0000c18, + 0x0168: 0xe0000c51, 0x0169: 0xe0000c4e, 0x016a: 0xe0000c60, 0x016b: 0xe0000c5d, + 0x016c: 0xe0000c31, 0x016d: 0xe0000c2e, 0x016e: 0xe0000c5a, 0x016f: 0xe0000c57, + 0x0170: 0xe0000c54, 0x0171: 0x402da220, 0x0172: 0xf0000a0a, 0x0173: 0xf0000404, + 0x0174: 0xe0000c8a, 0x0175: 0xe0000c87, 0x0176: 0xe0000c9f, 0x0177: 0xe0000c9c, + 0x0178: 0x402f7220, 0x0179: 0xe0000ccc, 0x017a: 0xe0000cc9, 0x017b: 0xe0000cd8, + 0x017c: 0xe0000cd5, 0x017d: 0xe0000cd2, 0x017e: 0xe0000ccf, 0x017f: 0xe0000d04, + // Block 0x6, offset 0x180 + 0x0180: 0xe0000cfe, 0x0181: 0xe0000cf8, 0x0182: 0xe0000cf5, 0x0183: 0xe0000d51, + 0x0184: 0xe0000d4e, 0x0185: 0xe0000d6f, 0x0186: 0xe0000d6c, 0x0187: 0xe0000d5d, + 0x0188: 0xe0000d5a, 0x0189: 0xf0000404, 0x018a: 0x002eda88, 0x018b: 0x402eda20, + 0x018c: 0xe0000e2e, 0x018d: 0xe0000e2b, 0x018e: 0xe0000da0, 0x018f: 0xe0000d9d, + 0x0190: 0xe0000de0, 0x0191: 0xe0000ddd, 0x0192: 0xe0000e93, 0x0193: 0xe0000e8f, + 0x0194: 0xe0000eca, 0x0195: 0xe0000ec7, 0x0196: 0xe0000edc, 0x0197: 0xe0000ed9, + 0x0198: 0xe0000ed0, 0x0199: 0xe0000ecd, 0x019a: 0xe0000f1f, 0x019b: 0xe0000f1c, + 0x019c: 0xe0000f2d, 0x019d: 0xe0000f2a, 0x019e: 0xe0000f47, 0x019f: 0xe0000f44, + 0x01a0: 0xe0000f33, 0x01a1: 0xe0000f30, 0x01a2: 0xe0000f99, 0x01a3: 0xe0000f96, + 0x01a4: 0xe0000f8a, 0x01a5: 0xe0000f87, 0x01a6: 0x00303688, 0x01a7: 0x40303620, + 0x01a8: 0xe000102b, 0x01a9: 0xe0001028, 0x01aa: 0xe000103f, 0x01ab: 0xe000103c, + 0x01ac: 0xe0000fe7, 0x01ad: 0xe0000fe4, 0x01ae: 0xe0000ff9, 0x01af: 0xe0000ff6, + 0x01b0: 0xe0001025, 0x01b1: 0xe0001022, 0x01b2: 0xe0001039, 0x01b3: 0xe0001036, + 0x01b4: 0xe00010d8, 0x01b5: 0xe00010d5, 0x01b6: 0xe000110e, 0x01b7: 0xe000110b, + 0x01b8: 0xe0001117, 0x01b9: 0xe000113b, 0x01ba: 0xe0001138, 0x01bb: 0xe000114d, + 0x01bc: 0xe000114a, 0x01bd: 0xe0001147, 0x01be: 0xe0001144, 0x01bf: 0xe0000f64, + // Block 0x7, offset 0x1c0 + 0x01c0: 0x402c1a20, 0x01c1: 0x002c2a88, 0x01c2: 0x002c3288, 0x01c3: 0x402c3220, + 0x01c4: 0x0031c488, 0x01c5: 0x4031c420, 0x01c6: 0x002efa88, 0x01c7: 0x002c4e88, + 0x01c8: 0x402c4e20, 0x01c9: 0x002c7288, 0x01ca: 0x002c7a88, 0x01cb: 0x002c8488, + 0x01cc: 0x402c8420, 0x01cd: 0xe000115c, 0x01ce: 0x002cae88, 0x01cf: 0x002cb888, + 0x01d0: 0x002cc288, 0x01d1: 0x002d1688, 0x01d2: 0x402d1620, 0x01d3: 0x002d4488, + 0x01d4: 0x002d5888, 0x01d5: 0x402d7820, 0x01d6: 0x002dc288, 0x01d7: 0x002db688, + 0x01d8: 0x002e0a88, 0x01d9: 0x402e0a20, 0x01da: 0x402e3820, 0x01db: 0x402e7220, + 0x01dc: 0x0030a088, 0x01dd: 0x002eb488, 0x01de: 0x402ebc20, 0x01df: 0x002f1088, + 0x01e0: 0xe0000e56, 0x01e1: 0xe0000e53, 0x01e2: 0x002d6088, 0x01e3: 0x402d6020, + 0x01e4: 0x002f3e88, 0x01e5: 0x402f3e20, 0x01e6: 0x002f8288, 0x01e7: 0x0031b488, + 0x01e8: 0x4031b420, 0x01e9: 0x00300888, 0x01ea: 0x40301220, 0x01eb: 0x40304220, + 0x01ec: 0x00304a88, 0x01ed: 0x40304a20, 0x01ee: 0x00305288, 0x01ef: 0xe000105f, + 0x01f0: 0xe000105c, 0x01f1: 0x0030b488, 0x01f2: 0x0030cc88, 0x01f3: 0x00311888, + 0x01f4: 0x40311820, 0x01f5: 0x00313488, 0x01f6: 0x40313420, 0x01f7: 0x00316488, + 0x01f8: 0x00316e88, 0x01f9: 0x40316e20, 0x01fa: 0x40317820, 0x01fb: 0x4031a620, + 0x01fc: 0x0031bc88, 0x01fd: 0x4031bc20, 0x01fe: 0xe0000fc9, 0x01ff: 0x40319420, + // Block 0x8, offset 0x200 + 0x0200: 0x40321220, 0x0201: 0x40321a20, 0x0202: 0x40322220, 0x0203: 0x40322a20, + 0x0204: 0xe0000ad5, 0x0205: 0xe0000ad1, 0x0206: 0xe0000acd, 0x0207: 0xf0000a0a, + 0x0208: 0xf000040a, 0x0209: 0xf0000404, 0x020a: 0xf0000a0a, 0x020b: 0xf000040a, + 0x020c: 0xf0000404, 0x020d: 0xe0000947, 0x020e: 0xe0000944, 0x020f: 0xe0000c3d, + 0x0210: 0xe0000c3a, 0x0211: 0xe0000dcc, 0x0212: 0xe0000dc9, 0x0213: 0xe0000ff3, + 0x0214: 0xe0000ff0, 0x0215: 0xe000101e, 0x0216: 0xe000101a, 0x0217: 0xe0001006, + 0x0218: 0xe0001002, 0x0219: 0xe0001016, 0x021a: 0xe0001012, 0x021b: 0xe000100e, + 0x021c: 0xe000100a, 0x021d: 0x402cae20, 0x021e: 0xe0000962, 0x021f: 0xe000095e, + 0x0220: 0xe0000976, 0x0221: 0xe0000972, 0x0222: 0xe00009f4, 0x0223: 0xe00009ef, + 0x0224: 0x002d3a88, 0x0225: 0x402d3a20, 0x0226: 0xe0000bbe, 0x0227: 0xe0000bbb, + 0x0228: 0xe0000c99, 0x0229: 0xe0000c96, 0x022a: 0xe0000e20, 0x022b: 0xe0000e1d, + 0x022c: 0xe0000e27, 0x022d: 0xe0000e23, 0x022e: 0xe0001162, 0x022f: 0xe000115f, + 0x0230: 0xe0000c8d, 0x0231: 0xf0000a0a, 0x0232: 0xf000040a, 0x0233: 0xf0000404, + 0x0234: 0xe0000bac, 0x0235: 0xe0000ba9, 0x0236: 0x002d7888, 0x0237: 0x00319488, + 0x0238: 0xe0000d57, 0x0239: 0xe0000d54, 0x023a: 0xe0000954, 0x023b: 0xe0000950, + 0x023c: 0xe00009ea, 0x023d: 0xe00009e5, 0x023e: 0xe0000e19, 0x023f: 0xe0000e15, + // Block 0x9, offset 0x240 + 0x0240: 0xe000098f, 0x0241: 0xe000098c, 0x0242: 0xe0000995, 0x0243: 0xe0000992, + 0x0244: 0xe0000b62, 0x0245: 0xe0000b5f, 0x0246: 0xe0000b68, 0x0247: 0xe0000b65, + 0x0248: 0xe0000c6c, 0x0249: 0xe0000c69, 0x024a: 0xe0000c72, 0x024b: 0xe0000c6f, + 0x024c: 0xe0000e4a, 0x024d: 0xe0000e47, 0x024e: 0xe0000e50, 0x024f: 0xe0000e4d, + 0x0250: 0xe0000ee8, 0x0251: 0xe0000ee5, 0x0252: 0xe0000eee, 0x0253: 0xe0000eeb, + 0x0254: 0xe0001053, 0x0255: 0xe0001050, 0x0256: 0xe0001059, 0x0257: 0xe0001056, + 0x0258: 0xe0000f61, 0x0259: 0xe0000f5e, 0x025a: 0xe0000fa5, 0x025b: 0xe0000fa2, + 0x025c: 0x00312288, 0x025d: 0x40312220, 0x025e: 0xe0000bf4, 0x025f: 0xe0000bf1, + 0x0260: 0x002ebc88, 0x0261: 0x402c8c20, 0x0262: 0x002f2288, 0x0263: 0x402f2220, + 0x0264: 0x00314088, 0x0265: 0x40314020, 0x0266: 0xe000096f, 0x0267: 0xe000096c, + 0x0268: 0xe0000b32, 0x0269: 0xe0000b2f, 0x026a: 0xe0000dd9, 0x026b: 0xe0000dd5, + 0x026c: 0xe0000dfd, 0x026d: 0xe0000df9, 0x026e: 0xe0000e04, 0x026f: 0xe0000e01, + 0x0270: 0xe0000e0b, 0x0271: 0xe0000e07, 0x0272: 0xe0001129, 0x0273: 0xe0001126, + 0x0274: 0x402e5e20, 0x0275: 0x402ed020, 0x0276: 0x40305a20, 0x0277: 0x402dd420, + 0x0278: 0xe0000abf, 0x0279: 0xe0000ec4, 0x027a: 0x002be888, 0x027b: 0x002c4488, + 0x027c: 0x402c4420, 0x027d: 0x002e3888, 0x027e: 0x00303e88, 0x027f: 0x402ffc20, + // Block 0xa, offset 0x280 + 0x0280: 0x40315820, 0x0281: 0x0031d488, 0x0282: 0x4031d420, 0x0283: 0x002c1a88, + 0x0284: 0x00307c88, 0x0285: 0x0030da88, 0x0286: 0x002ca288, 0x0287: 0x402ca220, + 0x0288: 0x002dde88, 0x0289: 0x402dde20, 0x028a: 0x002f6a88, 0x028b: 0x402f6a20, + 0x028c: 0x002f8e88, 0x028d: 0x402f8e20, 0x028e: 0x00311088, 0x028f: 0x40311020, + 0x0290: 0x402bf020, 0x0291: 0x402bf820, 0x0292: 0x402c0220, 0x0293: 0x402c2a20, + 0x0294: 0x402efa20, 0x0295: 0x402c5620, 0x0296: 0x402c7220, 0x0297: 0x402c7a20, + 0x0298: 0x402ccc20, 0x0299: 0x402cb820, 0x029a: 0x402cd420, 0x029b: 0x402cc220, + 0x029c: 0x402cdc20, 0x029d: 0x402ce820, 0x029e: 0x402cf020, 0x029f: 0x402dee20, + 0x02a0: 0x402d4420, 0x02a1: 0x402d2a20, 0x02a2: 0x402d3220, 0x02a3: 0x402d5820, + 0x02a4: 0x402d0020, 0x02a5: 0x40308820, 0x02a6: 0x402d8020, 0x02a7: 0x402d8e20, + 0x02a8: 0x402db620, 0x02a9: 0x402dc220, 0x02aa: 0x402daa20, 0x02ab: 0x402e4220, + 0x02ac: 0x402e4a20, 0x02ad: 0x402e5420, 0x02ae: 0x402e6820, 0x02af: 0x4030a020, + 0x02b0: 0x4030ac20, 0x02b1: 0x402e9020, 0x02b2: 0x402eb420, 0x02b3: 0x402ec820, + 0x02b4: 0x402ea620, 0x02b5: 0x402f1020, 0x02b6: 0x402eee20, 0x02b7: 0x402f1a20, + 0x02b8: 0x402f4c20, 0x02b9: 0x402f9820, 0x02ba: 0x402fa220, 0x02bb: 0x402fac20, + 0x02bc: 0x402fb620, 0x02bd: 0x402fbe20, 0x02be: 0x402fc620, 0x02bf: 0x402fd020, + // Block 0xb, offset 0x2c0 + 0x02c0: 0x402f8220, 0x02c1: 0x402fd820, 0x02c2: 0x402ff420, 0x02c3: 0x40300820, + 0x02c4: 0x402df620, 0x02c5: 0x40301a20, 0x02c6: 0x40302420, 0x02c7: 0x40306420, + 0x02c8: 0x40305220, 0x02c9: 0x40307c20, 0x02ca: 0x4030b420, 0x02cb: 0x4030cc20, + 0x02cc: 0x4030da20, 0x02cd: 0x4030ee20, 0x02ce: 0x402e7a20, 0x02cf: 0x40310820, + 0x02d0: 0x40314820, 0x02d1: 0x40315020, 0x02d2: 0x40316420, 0x02d3: 0x40318020, + 0x02d4: 0x4031cc20, 0x02d5: 0x4031e820, 0x02d6: 0x40320a20, 0x02d7: 0x40323220, + 0x02d8: 0x40323a20, 0x02d9: 0x402c1220, 0x02da: 0x402cf820, 0x02db: 0x402d4c20, + 0x02dc: 0x402d7020, 0x02dd: 0x402de620, 0x02de: 0x402e1a20, 0x02df: 0x402e2a20, + 0x02e0: 0x402f6220, 0x02e1: 0x4031fa20, 0x02e2: 0x40320220, 0x02e3: 0xe0000aca, + 0x02e4: 0xe0000adc, 0x02e5: 0xe0000ad9, 0x02e6: 0xe0000fcc, 0x02e7: 0xe0000fcf, + 0x02e8: 0xe0000fba, 0x02e9: 0xe0000ba1, 0x02ea: 0xe0000d11, 0x02eb: 0xe0000d18, + 0x02ec: 0x40324220, 0x02ed: 0x40324a20, 0x02ee: 0x40309020, 0x02ef: 0x40309820, + 0x02f0: 0x002d6894, 0x02f1: 0x002d8094, 0x02f2: 0x002dcc94, 0x02f3: 0x002f7a94, + 0x02f4: 0x002f9894, 0x02f5: 0x002fac94, 0x02f6: 0x002fd894, 0x02f7: 0x0030e294, + 0x02f8: 0x00310094, 0x02f9: 0x40064020, 0x02fa: 0x40064420, 0x02fb: 0x402d9620, + 0x02fc: 0x4031de20, 0x02fd: 0x402d9820, 0x02fe: 0x4031e220, 0x02ff: 0x4031f020, + // Block 0xc, offset 0x300 + 0x0300: 0x4031dc20, 0x0301: 0x4031f220, 0x0302: 0x40064620, 0x0303: 0x40064820, + 0x0304: 0x40064a20, 0x0305: 0x40064c20, 0x0306: 0x40064e20, 0x0307: 0x40065020, + 0x0308: 0x40065220, 0x0309: 0x40065420, 0x030a: 0x40065620, 0x030b: 0x40065820, + 0x030c: 0x40065a20, 0x030d: 0x40065c20, 0x030e: 0x40065e20, 0x030f: 0x40066020, + 0x0310: 0x4027b220, 0x0311: 0x4027b420, 0x0312: 0x40066220, 0x0313: 0x40066420, + 0x0314: 0x40066620, 0x0315: 0x40066820, 0x0316: 0x40066a20, 0x0317: 0x40066c20, + 0x0318: 0x40062820, 0x0319: 0x40062a20, 0x031a: 0x40062e20, 0x031b: 0x40063420, + 0x031c: 0x40062220, 0x031d: 0x40063020, 0x031e: 0x40066e20, 0x031f: 0x40067020, + 0x0320: 0x002d5894, 0x0321: 0x002e2294, 0x0322: 0x002fe694, 0x0323: 0x0030f694, + 0x0324: 0x0031e894, 0x0325: 0x40067220, 0x0326: 0x40067420, 0x0327: 0x40067620, + 0x0328: 0x40067820, 0x0329: 0x40067a20, 0x032a: 0x40067c20, 0x032b: 0x40067e20, + 0x032c: 0x40068020, 0x032d: 0x40068220, 0x032e: 0x4031e020, 0x032f: 0x40068420, + 0x0330: 0x40068620, 0x0331: 0x40068820, 0x0332: 0x40068a20, 0x0333: 0x40068c20, + 0x0334: 0x40068e20, 0x0335: 0x40069020, 0x0336: 0x40069220, 0x0337: 0x40069420, + 0x0338: 0x40069620, 0x0339: 0x40069820, 0x033a: 0x40069a20, 0x033b: 0x40069c20, + 0x033c: 0x40069e20, 0x033d: 0x4006a020, 0x033e: 0x4006a220, 0x033f: 0x4006a420, + // Block 0xd, offset 0x340 + 0x0340: 0xae603502, 0x0341: 0xae603202, 0x0342: 0xae603c02, 0x0343: 0xae604e02, + 0x0344: 0xae605b02, 0x0345: 0xae606302, 0x0346: 0xae603702, 0x0347: 0xae605202, + 0x0348: 0xae604702, 0x0349: 0xae606402, 0x034a: 0xae604302, 0x034b: 0xae604d02, + 0x034c: 0xae604102, 0x034d: 0xae605f02, 0x034e: 0xae605f02, 0x034f: 0xae606502, + 0x0350: 0xae606602, 0x0351: 0xae606702, 0x0352: 0xae605f02, 0x0353: 0xae602202, + 0x0354: 0xae602a02, 0x0355: 0xae805f02, 0x0356: 0xadc06002, 0x0357: 0xadc06002, + 0x0358: 0xadc06002, 0x0359: 0xadc06002, 0x035a: 0xae805f02, 0x035b: 0xad806802, + 0x035c: 0xadc06002, 0x035d: 0xadc06002, 0x035e: 0xadc06002, 0x035f: 0xadc06002, + 0x0360: 0xadc06002, 0x0361: 0xaca06e02, 0x0362: 0xaca06f02, 0x0363: 0xadc07002, + 0x0364: 0xadc07502, 0x0365: 0xadc07602, 0x0366: 0xadc07702, 0x0367: 0xaca05602, + 0x0368: 0xaca05902, 0x0369: 0xadc06002, 0x036a: 0xadc06002, 0x036b: 0xadc06002, + 0x036c: 0xadc06002, 0x036d: 0xadc07802, 0x036e: 0xadc07902, 0x036f: 0xadc06002, + 0x0370: 0xadc07a02, 0x0371: 0xadc07b02, 0x0372: 0xadc02102, 0x0373: 0xadc06002, + 0x0374: 0xa0107c02, 0x0375: 0xa0107d02, 0x0376: 0xa0106102, 0x0377: 0xa0106102, + 0x0378: 0xa0105402, 0x0379: 0xadc07e02, 0x037a: 0xadc06002, 0x037b: 0xadc06002, + 0x037c: 0xadc06002, 0x037d: 0xae605f02, 0x037e: 0xae605f02, 0x037f: 0xae605f02, + // Block 0xe, offset 0x380 + 0x0380: 0xae603502, 0x0381: 0xae603202, 0x0382: 0xae604502, 0x0383: 0xae602202, + 0x0384: 0xe0000000, 0x0385: 0xaf007f02, 0x0386: 0xae605f02, 0x0387: 0xadc06002, + 0x0388: 0xadc06002, 0x0389: 0xadc06002, 0x038a: 0xae605f02, 0x038b: 0xae605f02, + 0x038c: 0xae605f02, 0x038d: 0xadc06002, 0x038e: 0xadc06002, 0x038f: 0xa0000000, + 0x0390: 0xae605f02, 0x0391: 0xae605f02, 0x0392: 0xae605f02, 0x0393: 0xadc06002, + 0x0394: 0xadc06002, 0x0395: 0xadc06002, 0x0396: 0xadc06002, 0x0397: 0xae605f02, + 0x0398: 0xae808002, 0x0399: 0xadc06002, 0x039a: 0xadc06002, 0x039b: 0xae605f02, + 0x039c: 0xae906002, 0x039d: 0xaea05f02, 0x039e: 0xaea05f02, 0x039f: 0xae906002, + 0x03a0: 0xaea08102, 0x03a1: 0xaea08202, 0x03a2: 0xae906002, 0x03a3: 0x84e615ef, + 0x03a4: 0x84e6164c, 0x03a5: 0x84e616cd, 0x03a6: 0x84e61771, 0x03a7: 0x84e61836, + 0x03a8: 0x84e6161d, 0x03a9: 0x84e61631, 0x03aa: 0x84e616b4, 0x03ab: 0x84e61741, + 0x03ac: 0x84e617bd, 0x03ad: 0x84e61816, 0x03ae: 0x84e6185f, 0x03af: 0x84e6187b, + 0x03b0: 0x00326688, 0x03b1: 0x40326620, 0x03b2: 0x0032a688, 0x03b3: 0x4032a620, + 0x03b4: 0x40064020, 0x03b5: 0x40064220, 0x03b6: 0x00326088, 0x03b7: 0x40326020, + 0x03ba: 0x00326c84, 0x03bb: 0x40329220, + 0x03bc: 0x40329020, 0x03bd: 0x40329420, 0x03be: 0x40026220, + // Block 0xf, offset 0x3c0 + 0x03c4: 0x40062020, 0x03c5: 0xe00000ab, 0x03c6: 0xe00011f0, 0x03c7: 0x40030620, + 0x03c8: 0xe0001249, 0x03c9: 0xe00012dd, 0x03ca: 0xe000133a, + 0x03cc: 0xe000139b, 0x03ce: 0xe00013dd, 0x03cf: 0xe0001492, + 0x03d0: 0xe0001352, 0x03d1: 0x00325288, 0x03d2: 0x00325488, 0x03d3: 0x00325688, + 0x03d4: 0x00325a88, 0x03d5: 0x00325c88, 0x03d6: 0x00326488, 0x03d7: 0x00326888, + 0x03d8: 0x00326a88, 0x03d9: 0x00326c88, 0x03da: 0x00327088, 0x03db: 0x00327288, + 0x03dc: 0x00327688, 0x03dd: 0x00327888, 0x03de: 0x00327a88, 0x03df: 0x00327c88, + 0x03e0: 0x00327e88, 0x03e1: 0x00328888, 0x03e3: 0x00328e88, + 0x03e4: 0x00329688, 0x03e5: 0x00329888, 0x03e6: 0x00329a88, 0x03e7: 0x00329c88, + 0x03e8: 0x00329e88, 0x03e9: 0x0032a288, 0x03ea: 0xe000134f, 0x03eb: 0xe00013f2, + 0x03ec: 0xe00011ed, 0x03ed: 0xe0001246, 0x03ee: 0xe00012da, 0x03ef: 0xe0001337, + 0x03f0: 0xe00013f5, 0x03f1: 0x40325220, 0x03f2: 0x40325420, 0x03f3: 0x40325620, + 0x03f4: 0x40325a20, 0x03f5: 0x40325c20, 0x03f6: 0x40326420, 0x03f7: 0x40326820, + 0x03f8: 0x40326a20, 0x03f9: 0x40326c20, 0x03fa: 0x40327020, 0x03fb: 0x40327220, + 0x03fc: 0x40327620, 0x03fd: 0x40327820, 0x03fe: 0x40327a20, 0x03ff: 0x40327c20, + // Block 0x10, offset 0x400 + 0x0400: 0x40327e20, 0x0401: 0x40328820, 0x0402: 0x00328e99, 0x0403: 0x40328e20, + 0x0404: 0x40329620, 0x0405: 0x40329820, 0x0406: 0x40329a20, 0x0407: 0x40329c20, + 0x0408: 0x40329e20, 0x0409: 0x4032a220, 0x040a: 0xe000134c, 0x040b: 0xe00013ef, + 0x040c: 0xe0001398, 0x040d: 0xe00013da, 0x040e: 0xe000148f, 0x040f: 0xe0001368, + 0x0410: 0x00325484, 0x0411: 0x00326a84, 0x0412: 0x0032988a, 0x0413: 0xf000020a, + 0x0414: 0xf000020a, 0x0415: 0x00329a84, 0x0416: 0x00327e84, 0x0417: 0xe0001364, + 0x0418: 0x00328688, 0x0419: 0x40328620, 0x041a: 0x00326288, 0x041b: 0x40326220, + 0x041c: 0x00325e88, 0x041d: 0x40325e20, 0x041e: 0x00328488, 0x041f: 0x40328420, + 0x0420: 0x0032a488, 0x0421: 0x4032a420, 0x0422: 0x0032e888, 0x0423: 0x4032e820, + 0x0424: 0x0032f288, 0x0425: 0x4032f220, 0x0426: 0x0032f488, 0x0427: 0x4032f420, + 0x0428: 0x0032fa88, 0x0429: 0x4032fa20, 0x042a: 0x00330888, 0x042b: 0x40330820, + 0x042c: 0x00330e88, 0x042d: 0x40330e20, 0x042e: 0x00331688, 0x042f: 0x40331620, + 0x0430: 0x00327084, 0x0431: 0x00328884, 0x0432: 0x00328e84, 0x0433: 0x40326e20, + 0x0434: 0x00326a8a, 0x0435: 0x00325c84, 0x0436: 0x40092e20, 0x0437: 0x0032a888, + 0x0438: 0x4032a820, 0x0439: 0x00328e8a, 0x043a: 0x00328288, 0x043b: 0x40328220, + 0x043c: 0x40328c20, 0x043d: 0x00329288, 0x043e: 0x00329088, 0x043f: 0x00329488, + // Block 0x11, offset 0x440 + 0x0440: 0xe00014bd, 0x0441: 0xe00014c3, 0x0442: 0x00339688, 0x0443: 0x0033a288, + 0x0444: 0x0033c288, 0x0445: 0x0033fc88, 0x0446: 0xc02a0071, 0x0447: 0x00343688, + 0x0448: 0x00344688, 0x0449: 0x00349a88, 0x044a: 0x0034e488, 0x044b: 0x00356288, + 0x044c: 0x00356a88, 0x044d: 0xe00014cf, 0x044e: 0x00357a88, 0x044f: 0x00365488, + 0x0450: 0xc0090041, 0x0451: 0x00335288, 0x0452: 0x00335a88, 0x0453: 0xc0130092, + 0x0454: 0x00338a88, 0x0455: 0xc01800d1, 0x0456: 0xc01c0071, 0x0457: 0xc0200071, + 0x0458: 0xc0250041, 0x0459: 0x00343e88, 0x045a: 0xc0370092, 0x045b: 0x00348488, + 0x045c: 0x0034a888, 0x045d: 0x0034ba88, 0x045e: 0xc02e0071, 0x045f: 0x00350e88, + 0x0460: 0x00352888, 0x0461: 0x00353a88, 0x0462: 0x00354c88, 0x0463: 0xc03e00f1, + 0x0464: 0x0035ac88, 0x0465: 0x0035b488, 0x0466: 0x00360288, 0x0467: 0xc0440071, + 0x0468: 0x00365c88, 0x0469: 0x00366688, 0x046a: 0x00367488, 0x046b: 0xc0480071, + 0x046c: 0x00368e88, 0x046d: 0xc04c0071, 0x046e: 0x0036b888, 0x046f: 0x0036c488, + 0x0470: 0xc0060041, 0x0471: 0x40335220, 0x0472: 0x40335a20, 0x0473: 0xc0100092, + 0x0474: 0x40338a20, 0x0475: 0xc01600d1, 0x0476: 0xc01a0071, 0x0477: 0xc01e0071, + 0x0478: 0xc0220041, 0x0479: 0x40343e20, 0x047a: 0xc0340092, 0x047b: 0x40348420, + 0x047c: 0x4034a820, 0x047d: 0x4034ba20, 0x047e: 0xc02c0071, 0x047f: 0x40350e20, + // Block 0x12, offset 0x480 + 0x0480: 0x40352820, 0x0481: 0x40353a20, 0x0482: 0x40354c20, 0x0483: 0xc03a00f1, + 0x0484: 0x4035ac20, 0x0485: 0x4035b420, 0x0486: 0x40360220, 0x0487: 0xc0420071, + 0x0488: 0x40365c20, 0x0489: 0x40366620, 0x048a: 0x40367420, 0x048b: 0xc0460071, + 0x048c: 0x40368e20, 0x048d: 0xc04a0071, 0x048e: 0x4036b820, 0x048f: 0x4036c420, + 0x0490: 0xe00014ba, 0x0491: 0xe00014c0, 0x0492: 0x40339620, 0x0493: 0x4033a220, + 0x0494: 0x4033c220, 0x0495: 0x4033fc20, 0x0496: 0xc0280071, 0x0497: 0x40343620, + 0x0498: 0x40344620, 0x0499: 0x40349a20, 0x049a: 0x4034e420, 0x049b: 0x40356220, + 0x049c: 0x40356a20, 0x049d: 0xe00014cc, 0x049e: 0x40357a20, 0x049f: 0x40365420, + 0x04a0: 0x0035e088, 0x04a1: 0x4035e020, 0x04a2: 0x00369e88, 0x04a3: 0x40369e20, + 0x04a4: 0x0036ce88, 0x04a5: 0x4036ce20, 0x04a6: 0x0036d688, 0x04a7: 0x4036d620, + 0x04a8: 0x0036ea88, 0x04a9: 0x4036ea20, 0x04aa: 0x0036e088, 0x04ab: 0x4036e020, + 0x04ac: 0x0036f488, 0x04ad: 0x4036f420, 0x04ae: 0x0036fc88, 0x04af: 0x4036fc20, + 0x04b0: 0x00370488, 0x04b1: 0x40370420, 0x04b2: 0x00370c88, 0x04b3: 0x40370c20, + 0x04b4: 0xc0500131, 0x04b5: 0xc04e0131, 0x04b6: 0x00371c88, 0x04b7: 0x40371c20, + 0x04b8: 0x0035a488, 0x04b9: 0x4035a420, 0x04ba: 0x0035fa88, 0x04bb: 0x4035fa20, + 0x04bc: 0x0035f288, 0x04bd: 0x4035f220, 0x04be: 0x0035e888, 0x04bf: 0x4035e820, + // Block 0x13, offset 0x4c0 + 0x04c0: 0x00352088, 0x04c1: 0x40352020, 0x04c2: 0x40070620, 0x04c3: 0xae608302, + 0x04c4: 0xae605f02, 0x04c5: 0xae602a02, 0x04c6: 0xae602202, 0x04c7: 0xae605f02, + 0x04c8: 0xa0000000, 0x04c9: 0xa0000000, 0x04ca: 0x00341c88, 0x04cb: 0x40341c20, + 0x04cc: 0x00369688, 0x04cd: 0x40369620, 0x04ce: 0x00353088, 0x04cf: 0x40353020, + 0x04d0: 0xe00014b7, 0x04d1: 0xe00014b4, 0x04d2: 0x00336a88, 0x04d3: 0x40336a20, + 0x04d4: 0x00337a88, 0x04d5: 0x40337a20, 0x04d6: 0x0033dc88, 0x04d7: 0x4033dc20, + 0x04d8: 0x0033aa88, 0x04d9: 0x4033aa20, 0x04da: 0x00345888, 0x04db: 0x40345820, + 0x04dc: 0x00347888, 0x04dd: 0x40347820, 0x04de: 0x00347088, 0x04df: 0x40347020, + 0x04e0: 0x00346888, 0x04e1: 0x40346820, 0x04e2: 0x0034ca88, 0x04e3: 0x4034ca20, + 0x04e4: 0x0034dc88, 0x04e5: 0x4034dc20, 0x04e6: 0x00351888, 0x04e7: 0x40351820, + 0x04e8: 0x00372688, 0x04e9: 0x40372620, 0x04ea: 0x00354488, 0x04eb: 0x40354420, + 0x04ec: 0x00355888, 0x04ed: 0x40355820, 0x04ee: 0x00359288, 0x04ef: 0x40359220, + 0x04f0: 0x00359a88, 0x04f1: 0x40359a20, 0x04f2: 0x0035cc88, 0x04f3: 0x4035cc20, + 0x04f4: 0x00360e88, 0x04f5: 0x40360e20, 0x04f6: 0x00362a88, 0x04f7: 0x40362a20, + 0x04f8: 0x00363a88, 0x04f9: 0x40363a20, 0x04fa: 0x0035d488, 0x04fb: 0x4035d420, + 0x04fc: 0x00364488, 0x04fd: 0x40364420, 0x04fe: 0x00364c88, 0x04ff: 0x40364c20, + // Block 0x14, offset 0x500 + 0x0500: 0x00373088, 0x0501: 0xe00014c9, 0x0502: 0xe00014c6, 0x0503: 0x00346088, + 0x0504: 0x40346020, 0x0505: 0x00348e88, 0x0506: 0x40348e20, 0x0507: 0x0034d288, + 0x0508: 0x4034d220, 0x0509: 0x0034c288, 0x050a: 0x4034c220, 0x050b: 0x00363288, + 0x050c: 0x40363220, 0x050d: 0x0034b088, 0x050e: 0x4034b020, 0x050f: 0x40373020, + 0x0510: 0x00332a88, 0x0511: 0x40332a20, 0x0512: 0x00333288, 0x0513: 0x40333220, + 0x0514: 0x00334a88, 0x0515: 0x40334a20, 0x0516: 0x0033ba88, 0x0517: 0x4033ba20, + 0x0518: 0xc00e0071, 0x0519: 0xc00c0071, 0x051a: 0x00334288, 0x051b: 0x40334220, + 0x051c: 0x0033d488, 0x051d: 0x4033d420, 0x051e: 0x0033f288, 0x051f: 0x4033f220, + 0x0520: 0x00340688, 0x0521: 0x40340620, 0x0522: 0xe00014d5, 0x0523: 0xe00014d2, + 0x0524: 0x00342488, 0x0525: 0x40342420, 0x0526: 0x0034f688, 0x0527: 0x4034f620, + 0x0528: 0xc0320071, 0x0529: 0xc0300071, 0x052a: 0x00350688, 0x052b: 0x40350620, + 0x052c: 0x0036b088, 0x052d: 0x4036b020, 0x052e: 0xe00014de, 0x052f: 0xe00014db, + 0x0530: 0x00358288, 0x0531: 0x40358220, 0x0532: 0x00358a88, 0x0533: 0x40358a20, + 0x0534: 0x00362288, 0x0535: 0x40362220, 0x0536: 0x00338288, 0x0537: 0x40338220, + 0x0538: 0x00368688, 0x0539: 0x40368620, 0x053a: 0x00337288, 0x053b: 0x40337220, + 0x053c: 0x0035bc88, 0x053d: 0x4035bc20, 0x053e: 0x0035c488, 0x053f: 0x4035c420, + // Block 0x15, offset 0x540 + 0x0540: 0x00339288, 0x0541: 0x40339220, 0x0542: 0x0033a088, 0x0543: 0x4033a020, + 0x0544: 0x0033ee88, 0x0545: 0x4033ee20, 0x0546: 0x00341088, 0x0547: 0x40341020, + 0x0548: 0x0034a488, 0x0549: 0x4034a420, 0x054a: 0x0034ec88, 0x054b: 0x4034ec20, + 0x054c: 0x00354288, 0x054d: 0x40354220, 0x054e: 0x00355688, 0x054f: 0x40355620, + 0x0550: 0x0033f088, 0x0551: 0x4033f020, 0x0552: 0x00349688, 0x0553: 0x40349620, + 0x0554: 0x0034a688, 0x0555: 0x4034a620, 0x0556: 0x00353888, 0x0557: 0x40353820, + 0x0558: 0x0036cc88, 0x0559: 0x4036cc20, 0x055a: 0x00348288, 0x055b: 0x40348220, + 0x055c: 0x00372e88, 0x055d: 0x40372e20, 0x055e: 0x00348088, 0x055f: 0x40348020, + 0x0560: 0x00349888, 0x0561: 0x40349820, 0x0562: 0x0034da88, 0x0563: 0x4034da20, + 0x0564: 0x00351688, 0x0565: 0x40351620, 0x0566: 0x0035dc88, 0x0567: 0x4035dc20, + 0x0571: 0x00384288, 0x0572: 0x00384488, 0x0573: 0x00384688, + 0x0574: 0x00384888, 0x0575: 0x00384a88, 0x0576: 0x00384c88, 0x0577: 0x00384e88, + 0x0578: 0x00385088, 0x0579: 0x00385288, 0x057a: 0x00385488, 0x057b: 0x00385688, + 0x057c: 0x00385888, 0x057d: 0x00385a88, 0x057e: 0x00385c88, 0x057f: 0x00385e88, + // Block 0x16, offset 0x580 + 0x0580: 0x00386088, 0x0581: 0x00386288, 0x0582: 0x00386488, 0x0583: 0x00386688, + 0x0584: 0x00386888, 0x0585: 0x00386a88, 0x0586: 0x00386c88, 0x0587: 0x00386e88, + 0x0588: 0x00387088, 0x0589: 0x00387288, 0x058a: 0x00387488, 0x058b: 0x00387688, + 0x058c: 0x00387888, 0x058d: 0x00387a88, 0x058e: 0x00387c88, 0x058f: 0x00387e88, + 0x0590: 0x00388088, 0x0591: 0x00388288, 0x0592: 0x00388488, 0x0593: 0x00388688, + 0x0594: 0x00388888, 0x0595: 0x00388a88, 0x0596: 0x00388c88, + 0x0599: 0x40388e20, 0x059a: 0x40054e20, 0x059b: 0x40055020, + 0x059c: 0x4002be20, 0x059d: 0x40024620, 0x059e: 0x4002ca20, 0x059f: 0x40055220, + 0x05a1: 0x40384220, 0x05a2: 0x40384420, 0x05a3: 0x40384620, + 0x05a4: 0x40384820, 0x05a5: 0x40384a20, 0x05a6: 0x40384c20, 0x05a7: 0x40384e20, + 0x05a8: 0x40385020, 0x05a9: 0x40385220, 0x05aa: 0x40385420, 0x05ab: 0x40385620, + 0x05ac: 0x40385820, 0x05ad: 0x40385a20, 0x05ae: 0x40385c20, 0x05af: 0x40385e20, + 0x05b0: 0x40386020, 0x05b1: 0x40386220, 0x05b2: 0x40386420, 0x05b3: 0x40386620, + 0x05b4: 0x40386820, 0x05b5: 0x40386a20, 0x05b6: 0x40386c20, 0x05b7: 0x40386e20, + 0x05b8: 0x40387020, 0x05b9: 0x40387220, 0x05ba: 0x40387420, 0x05bb: 0x40387620, + 0x05bc: 0x40387820, 0x05bd: 0x40387a20, 0x05be: 0x40387c20, 0x05bf: 0x40387e20, + // Block 0x17, offset 0x5c0 + 0x05c0: 0x40388020, 0x05c1: 0x40388220, 0x05c2: 0x40388420, 0x05c3: 0x40388620, + 0x05c4: 0x40388820, 0x05c5: 0x40388a20, 0x05c6: 0x40388c20, 0x05c7: 0xf0000404, + 0x05c9: 0x40026e20, 0x05ca: 0x40021c20, + 0x05cf: 0x4027e420, + 0x05d1: 0xadc00000, 0x05d2: 0xae600000, 0x05d3: 0xae600000, + 0x05d4: 0xae600000, 0x05d5: 0xae600000, 0x05d6: 0xadc00000, 0x05d7: 0xae600000, + 0x05d8: 0xae600000, 0x05d9: 0xae600000, 0x05da: 0xade00000, 0x05db: 0xadc00000, + 0x05dc: 0xae600000, 0x05dd: 0xae600000, 0x05de: 0xae600000, 0x05df: 0xae600000, + 0x05e0: 0xae600000, 0x05e1: 0xae600000, 0x05e2: 0xadc00000, 0x05e3: 0xadc00000, + 0x05e4: 0xadc00000, 0x05e5: 0xadc00000, 0x05e6: 0xadc00000, 0x05e7: 0xadc00000, + 0x05e8: 0xae600000, 0x05e9: 0xae600000, 0x05ea: 0xadc00000, 0x05eb: 0xae600000, + 0x05ec: 0xae600000, 0x05ed: 0xade00000, 0x05ee: 0xae400000, 0x05ef: 0xae600000, + 0x05f0: 0xa0a08502, 0x05f1: 0xa0b08602, 0x05f2: 0xa0c08702, 0x05f3: 0xa0d08802, + 0x05f4: 0xa0e08902, 0x05f5: 0xa0f08a02, 0x05f6: 0xa1008b02, 0x05f7: 0xa1108c02, + 0x05f8: 0xa1208d02, 0x05f9: 0xa1308e02, 0x05fa: 0xa1308e02, 0x05fb: 0xa1408f02, + 0x05fc: 0xa1509202, 0x05fd: 0xa1600000, 0x05fe: 0x40055420, 0x05ff: 0xa1709502, + // Block 0x18, offset 0x600 + 0x0600: 0x40055620, 0x0601: 0xa1809102, 0x0602: 0xa1909002, 0x0603: 0x40055820, + 0x0604: 0xae600000, 0x0605: 0xadc00000, 0x0606: 0x40055a20, 0x0607: 0xa1208d02, + 0x0610: 0x40389020, 0x0611: 0x40389220, 0x0612: 0x40389420, 0x0613: 0x40389620, + 0x0614: 0x40389820, 0x0615: 0x40389a20, 0x0616: 0x40389c20, 0x0617: 0x40389e20, + 0x0618: 0x4038a020, 0x0619: 0x4038a220, 0x061a: 0x0038a499, 0x061b: 0x4038a420, + 0x061c: 0x4038a620, 0x061d: 0x0038a899, 0x061e: 0x4038a820, 0x061f: 0x0038aa99, + 0x0620: 0x4038aa20, 0x0621: 0x4038ac20, 0x0622: 0x4038ae20, 0x0623: 0x0038b099, + 0x0624: 0x4038b020, 0x0625: 0x0038b299, 0x0626: 0x4038b220, 0x0627: 0x4038b420, + 0x0628: 0x4038b620, 0x0629: 0x4038b820, 0x062a: 0x4038ba20, + 0x0630: 0xe00014ff, 0x0631: 0xe0001502, 0x0632: 0xe0001511, 0x0633: 0x40055c20, + 0x0634: 0x40055e20, + // Block 0x19, offset 0x640 + 0x0640: 0xa0000000, 0x0641: 0xa0000000, 0x0642: 0xa0000000, 0x0643: 0xa0000000, + 0x0644: 0xa0000000, 0x0646: 0x40096620, 0x0647: 0x40096a20, + 0x0648: 0x40070820, 0x0649: 0x4004f220, 0x064a: 0x4004f620, 0x064b: 0x4027e620, + 0x064c: 0x40024820, 0x064d: 0x40024a20, 0x064e: 0x40070e20, 0x064f: 0x40071020, + 0x0650: 0xae600000, 0x0651: 0xae600000, 0x0652: 0xae600000, 0x0653: 0xae600000, + 0x0654: 0xae600000, 0x0655: 0xae600000, 0x0656: 0xae600000, 0x0657: 0xae600000, + 0x0658: 0xa1e00000, 0x0659: 0xa1f00000, 0x065a: 0xa2000000, 0x065b: 0x40026420, + 0x065e: 0x40027020, 0x065f: 0x4002cc20, + 0x0660: 0x403aa220, 0x0661: 0x40391c20, 0x0662: 0x40391e20, 0x0663: 0x40392020, + 0x0664: 0x40392620, 0x0665: 0x40392820, 0x0666: 0x40393020, 0x0667: 0xc0520151, + 0x0668: 0x40393c20, 0x0669: 0x40395420, 0x066a: 0x40395620, 0x066b: 0x40395820, + 0x066c: 0x40396420, 0x066d: 0x40397220, 0x066e: 0x40397420, 0x066f: 0x40398820, + 0x0670: 0x40398a20, 0x0671: 0x4039a420, 0x0672: 0x4039a620, 0x0673: 0x4039c620, + 0x0674: 0x4039c820, 0x0675: 0x4039dc20, 0x0676: 0x4039de20, 0x0677: 0x4039e620, + 0x0678: 0x4039e820, 0x0679: 0x4039ee20, 0x067a: 0x4039f020, 0x067b: 0x403a3820, + 0x067c: 0x403a3a20, 0x067d: 0x403a9c20, 0x067e: 0x403a9e20, 0x067f: 0x403aa020, + // Block 0x1a, offset 0x680 + 0x0680: 0xa0000000, 0x0681: 0x4039fc20, 0x0682: 0x403a1220, 0x0683: 0x403a1a20, + 0x0684: 0x403a4020, 0x0685: 0x403a4e20, 0x0686: 0x403a5620, 0x0687: 0x403a6820, + 0x0688: 0xc0560171, 0x0689: 0x403a8e20, 0x068a: 0xc0580171, 0x068b: 0xa1b0a202, + 0x068c: 0xa1c0a502, 0x068d: 0xa1d0a902, 0x068e: 0xa1e0ad02, 0x068f: 0xa1f0b202, + 0x0690: 0xa200b602, 0x0691: 0xa210ba02, 0x0692: 0xa220bc02, 0x0693: 0xae60bd02, + 0x0694: 0xae60be02, 0x0695: 0xadc0bf02, 0x0696: 0xadc0c102, 0x0697: 0xae60c202, + 0x0698: 0xae60c302, 0x0699: 0xae60c402, 0x069a: 0xae60c502, 0x069b: 0xae60c602, + 0x069c: 0xadc0c702, 0x069d: 0xae60c802, 0x069e: 0xae60c902, 0x069f: 0xadc0c002, + 0x06a0: 0xe000015e, 0x06a1: 0xe00001e6, 0x06a2: 0xe0000301, 0x06a3: 0xe00003db, + 0x06a4: 0xe00004b6, 0x06a5: 0xe0000580, 0x06a6: 0xe000064b, 0x06a7: 0xe00006f3, + 0x06a8: 0xe000079f, 0x06a9: 0xe0000844, 0x06aa: 0x4004ee20, 0x06ab: 0x40024c20, + 0x06ac: 0x40024e20, 0x06ad: 0x4004de20, 0x06ae: 0x40393a20, 0x06af: 0x403a1020, + 0x06b0: 0xa230d102, 0x06b1: 0x40392420, 0x06b2: 0x40392220, 0x06b3: 0x40392a20, + 0x06b4: 0x00391c84, 0x06b5: 0xf0000404, 0x06b6: 0xf0000404, 0x06b7: 0xf0000404, + 0x06b8: 0xf0000404, 0x06b9: 0x40395a20, 0x06ba: 0x40395c20, 0x06bb: 0x40393e20, + 0x06bc: 0x40395e20, 0x06bd: 0x40396020, 0x06be: 0x40394020, 0x06bf: 0x40396220, + // Block 0x1b, offset 0x6c0 + 0x06c0: 0x40394220, 0x06c1: 0x40397620, 0x06c2: 0x40397820, 0x06c3: 0x40396620, + 0x06c4: 0x40396820, 0x06c5: 0x40397a20, 0x06c6: 0x40396a20, 0x06c7: 0x40396e20, + 0x06c8: 0x40398c20, 0x06c9: 0x40398e20, 0x06ca: 0x40399020, 0x06cb: 0x40399220, + 0x06cc: 0x40399420, 0x06cd: 0x40399620, 0x06ce: 0x40399820, 0x06cf: 0x40399a20, + 0x06d0: 0x40399c20, 0x06d1: 0x4039a820, 0x06d2: 0x4039aa20, 0x06d3: 0x4039ac20, + 0x06d4: 0x4039ae20, 0x06d5: 0x4039b020, 0x06d6: 0x4039b220, 0x06d7: 0x4039b420, + 0x06d8: 0x4039b620, 0x06d9: 0x4039b820, 0x06da: 0x4039ca20, 0x06db: 0x4039cc20, + 0x06dc: 0x4039ce20, 0x06dd: 0x4039e020, 0x06de: 0x4039e220, 0x06df: 0x4039ea20, + 0x06e0: 0x4039f220, 0x06e1: 0x4039fe20, 0x06e2: 0x403a0020, 0x06e3: 0x403a0220, + 0x06e4: 0x403a0420, 0x06e5: 0x403a0820, 0x06e6: 0x403a0a20, 0x06e7: 0x403a1420, + 0x06e8: 0x403a1620, 0x06e9: 0x403a1c20, 0x06ea: 0x403a1e20, 0x06eb: 0x403a2020, + 0x06ec: 0x403a2220, 0x06ed: 0x403a2620, 0x06ee: 0x403a2820, 0x06ef: 0x403a2a20, + 0x06f0: 0x403a2c20, 0x06f1: 0x403a2e20, 0x06f2: 0x403a3020, 0x06f3: 0x403a3220, + 0x06f4: 0x403a3420, 0x06f5: 0x403a4220, 0x06f6: 0x403a4420, 0x06f7: 0x403a4620, + 0x06f8: 0x403a4820, 0x06f9: 0x403a6020, 0x06fa: 0x403a5820, 0x06fb: 0x403a5a20, + 0x06fc: 0x403a5c20, 0x06fd: 0x403a5e20, 0x06fe: 0x403a6a20, 0x06ff: 0x40396c20, + // Block 0x1c, offset 0x700 + 0x0700: 0xe00017e4, 0x0701: 0x403a6c20, 0x0702: 0xe00017e1, 0x0703: 0x403a6e20, + 0x0704: 0x403a7620, 0x0705: 0x403a7820, 0x0706: 0x403a7a20, 0x0707: 0x403a7c20, + 0x0708: 0x403a7e20, 0x0709: 0x403a8020, 0x070a: 0x403a8220, 0x070b: 0x403a8420, + 0x070c: 0x403a9220, 0x070d: 0x403a9420, 0x070e: 0x403a9620, 0x070f: 0x403a8620, + 0x0710: 0x403a9820, 0x0711: 0x403a9a20, 0x0712: 0x403aaa20, 0x0713: 0xe0001800, + 0x0714: 0x4002e820, 0x0715: 0x403a7220, 0x0716: 0xae600000, 0x0717: 0xae600000, + 0x0718: 0xae600000, 0x0719: 0xae600000, 0x071a: 0xae600000, 0x071b: 0xae600000, + 0x071c: 0xae600000, 0x071d: 0xa0000000, 0x071e: 0x40071220, 0x071f: 0xae600000, + 0x0720: 0xae600000, 0x0721: 0xae600000, 0x0722: 0xae600000, 0x0723: 0xadc00000, + 0x0724: 0xae600000, 0x0725: 0x003a7484, 0x0726: 0x003a9084, 0x0727: 0xae600000, + 0x0728: 0xae600000, 0x0729: 0x40071420, 0x072a: 0xadc00000, 0x072b: 0xae600000, + 0x072c: 0xae600000, 0x072d: 0xadc00000, 0x072e: 0x40399e20, 0x072f: 0x4039ba20, + 0x0730: 0xe0000161, 0x0731: 0xe00001e9, 0x0732: 0xe0000304, 0x0733: 0xe00003de, + 0x0734: 0xe00004b9, 0x0735: 0xe0000583, 0x0736: 0xe000064e, 0x0737: 0xe00006f6, + 0x0738: 0xe00007a2, 0x0739: 0xe0000847, 0x073a: 0x4039d020, 0x073b: 0x4039e420, + 0x073c: 0x4039f420, 0x073d: 0xe0001553, 0x073e: 0xe0001779, 0x073f: 0x403a7020, + // Block 0x1d, offset 0x740 + 0x0740: 0x40035c20, 0x0741: 0x4002ea20, 0x0742: 0x4002ec20, 0x0743: 0x40027220, + 0x0744: 0x40027420, 0x0745: 0x40027620, 0x0746: 0x40027820, 0x0747: 0x40027a20, + 0x0748: 0x40027c20, 0x0749: 0x4002ce20, 0x074a: 0x40056020, 0x074b: 0x40056220, + 0x074c: 0x40056420, 0x074d: 0x40056620, 0x074f: 0xa0000000, + 0x0750: 0x403ab020, 0x0751: 0xa240d202, 0x0752: 0x403ab220, 0x0753: 0x403ab420, + 0x0754: 0xe0001806, 0x0755: 0x403ab820, 0x0756: 0x403ab620, 0x0757: 0x403aba20, + 0x0758: 0x403abc20, 0x0759: 0x403abe20, 0x075a: 0x403ac220, 0x075b: 0x403ac420, + 0x075c: 0xe000180f, 0x075d: 0x403ac620, 0x075e: 0x403ac820, 0x075f: 0x403aca20, + 0x0760: 0x403ace20, 0x0761: 0x403ad020, 0x0762: 0x403ad220, 0x0763: 0x403ad420, + 0x0764: 0x003ad499, 0x0765: 0x403ad620, 0x0766: 0x403ad820, 0x0767: 0xe0001812, + 0x0768: 0x403adc20, 0x0769: 0x403ade20, 0x076a: 0x403ae020, 0x076b: 0x403ae220, + 0x076c: 0x403ae420, 0x076d: 0xe0001803, 0x076e: 0xe0001809, 0x076f: 0xe000180c, + 0x0770: 0xae60d302, 0x0771: 0xadc0d402, 0x0772: 0xae60d502, 0x0773: 0xae60d602, + 0x0774: 0xadc0d702, 0x0775: 0xae60d802, 0x0776: 0xae60d902, 0x0777: 0xadc0da02, + 0x0778: 0xadc0db02, 0x0779: 0xadc0dc02, 0x077a: 0xae60dd02, 0x077b: 0xadc0de02, + 0x077c: 0xadc0df02, 0x077d: 0xae60e002, 0x077e: 0xadc0e102, 0x077f: 0xae60e202, + // Block 0x1e, offset 0x780 + 0x0780: 0xae600000, 0x0781: 0xae605f02, 0x0782: 0xadc06002, 0x0783: 0xae600000, + 0x0784: 0xadc00000, 0x0785: 0xae605f02, 0x0786: 0xadc06002, 0x0787: 0xae600000, + 0x0788: 0xadc00000, 0x0789: 0xae600000, 0x078a: 0xae600000, + 0x078d: 0x403ac020, 0x078e: 0x403acc20, 0x078f: 0x403ada20, + 0x0790: 0x40394420, 0x0791: 0x40394620, 0x0792: 0x40394820, 0x0793: 0x40394a20, + 0x0794: 0x40394c20, 0x0795: 0x40394e20, 0x0796: 0x40395220, 0x0797: 0x40397c20, + 0x0798: 0x40397e20, 0x0799: 0x4039a020, 0x079a: 0x4039a220, 0x079b: 0x4039bc20, + 0x079c: 0x4039d220, 0x079d: 0x4039f620, 0x079e: 0x4039f820, 0x079f: 0x4039fa20, + 0x07a0: 0x403a0c20, 0x07a1: 0x403a0e20, 0x07a2: 0x403a3620, 0x07a3: 0x403a3c20, + 0x07a4: 0x403a3e20, 0x07a5: 0x403a5020, 0x07a6: 0x403a5220, 0x07a7: 0x403a6220, + 0x07a8: 0x403a6420, 0x07a9: 0x403a6620, 0x07aa: 0x403a4a20, 0x07ab: 0x4039be20, + 0x07ac: 0x4039c020, 0x07ad: 0x4039d420, 0x07ae: 0x40398020, 0x07af: 0x40398220, + 0x07b0: 0x4039d620, 0x07b1: 0x4039c220, 0x07b2: 0x40398420, 0x07b3: 0x40392c20, + 0x07b4: 0x40392e20, 0x07b5: 0x403aa420, 0x07b6: 0x403aa620, 0x07b7: 0x403aa820, + 0x07b8: 0x403a8820, 0x07b9: 0x403a8a20, 0x07ba: 0x403aac20, 0x07bb: 0x403aae20, + 0x07bc: 0x40398620, 0x07bd: 0x4039d820, 0x07be: 0x4039da20, 0x07bf: 0x403a2420, + // Block 0x1f, offset 0x7c0 + 0x07c0: 0x403b1820, 0x07c1: 0x403b1e20, 0x07c2: 0x403b2020, 0x07c3: 0x403b2220, + 0x07c4: 0x403b2620, 0x07c5: 0x403b2820, 0x07c6: 0x403b2a20, 0x07c7: 0x403b2c20, + 0x07c8: 0x403b3220, 0x07c9: 0x403b3620, 0x07ca: 0x403b3820, 0x07cb: 0x403b3a20, + 0x07cc: 0x403b3e20, 0x07cd: 0x403b4620, 0x07ce: 0x403b4820, 0x07cf: 0x403b4c20, + 0x07d0: 0x403b4e20, 0x07d1: 0x403b5620, 0x07d2: 0x403b5820, 0x07d3: 0x403b5a20, + 0x07d4: 0x403b5c20, 0x07d5: 0x403b5e20, 0x07d6: 0x403b6020, 0x07d7: 0x403b6220, + 0x07d8: 0x403b4020, 0x07d9: 0x403b1a20, 0x07da: 0x403b1c20, 0x07db: 0x403b3c20, + 0x07dc: 0x403b2420, 0x07dd: 0x403b5020, 0x07de: 0x403b5220, 0x07df: 0x403b5420, + 0x07e0: 0x403b4220, 0x07e1: 0x403b4420, 0x07e2: 0x403b2e20, 0x07e3: 0x403b3020, + 0x07e4: 0x403b4a20, 0x07e5: 0x403b3420, 0x07e6: 0x403b6620, 0x07e7: 0x403b6820, + 0x07e8: 0x403b6a20, 0x07e9: 0x403b6c20, 0x07ea: 0x403b6e20, 0x07eb: 0x403b7020, + 0x07ec: 0x403b7220, 0x07ed: 0x403b7420, 0x07ee: 0x403b7620, 0x07ef: 0x403b7820, + 0x07f0: 0x403b7a20, 0x07f1: 0x403b6420, + // Block 0x20, offset 0x800 + 0x0800: 0xe0000164, 0x0801: 0xe00001ef, 0x0802: 0xe000030a, 0x0803: 0xe00003e4, + 0x0804: 0xe00004bf, 0x0805: 0xe0000589, 0x0806: 0xe0000654, 0x0807: 0xe00006fc, + 0x0808: 0xe00007a8, 0x0809: 0xe000084d, 0x080a: 0x403b7c20, 0x080b: 0x403b7e20, + 0x080c: 0x403b8020, 0x080d: 0x403b8220, 0x080e: 0x403b8420, 0x080f: 0x403b8620, + 0x0810: 0x403b8820, 0x0811: 0x403b8a20, 0x0812: 0x403b8c20, 0x0813: 0x403b8e20, + 0x0814: 0x403b9020, 0x0815: 0x403b9220, 0x0816: 0x403b9420, 0x0817: 0x403b9620, + 0x0818: 0x403b9820, 0x0819: 0x403b9a20, 0x081a: 0x403b9c20, 0x081b: 0x403b9e20, + 0x081c: 0x403ba020, 0x081d: 0x403ba220, 0x081e: 0x403ba420, 0x081f: 0x403ba620, + 0x0820: 0x403ba820, 0x0821: 0x403baa20, 0x0822: 0x403bac20, 0x0823: 0x403bae20, + 0x0824: 0x403bb020, 0x0825: 0x403bb220, 0x0826: 0x403bb420, 0x0827: 0x403bb620, + 0x0828: 0xe0001815, 0x0829: 0xe0001818, 0x082a: 0xe000181b, 0x082b: 0xae60e302, + 0x082c: 0xae60e402, 0x082d: 0xae60e502, 0x082e: 0xae60e602, 0x082f: 0xae60e702, + 0x0830: 0xae60e802, 0x0831: 0xae60e902, 0x0832: 0xadc0ea02, 0x0833: 0xae60eb02, + 0x0834: 0x403bb820, 0x0835: 0x403bba20, 0x0836: 0x40073820, 0x0837: 0x40035e20, + 0x0838: 0x40025020, 0x0839: 0x4002c020, 0x083a: 0xa0000000, + // Block 0x21, offset 0x840 + 0x0840: 0x4038e820, 0x0841: 0x4038ea20, 0x0842: 0x4038ec20, 0x0843: 0x4038ee20, + 0x0844: 0x4038f020, 0x0845: 0x4038f220, 0x0846: 0x4038f420, 0x0847: 0x4038f620, + 0x0848: 0x4038f820, 0x0849: 0x4038fa20, 0x084a: 0x4038fc20, 0x084b: 0x4038fe20, + 0x084c: 0x40390020, 0x084d: 0x40390220, 0x084e: 0x40390420, 0x084f: 0x40390620, + 0x0850: 0x40390820, 0x0851: 0x40390a20, 0x0852: 0x40390c20, 0x0853: 0x40390e20, + 0x0854: 0x40391020, 0x0855: 0x40391220, 0x0856: 0x82e61c8a, 0x0857: 0x82e61c8b, + 0x0858: 0xae609f02, 0x0859: 0xae60a002, 0x085a: 0x40391820, 0x085b: 0x82e61c8d, + 0x085c: 0xae609702, 0x085d: 0xae609702, 0x085e: 0xae609802, 0x085f: 0xae609802, + 0x0860: 0xae609802, 0x0861: 0xae609902, 0x0862: 0xae609902, 0x0863: 0xae609902, + 0x0864: 0xa0009a02, 0x0865: 0xae609a02, 0x0866: 0xae609b02, 0x0867: 0xae609b02, + 0x0868: 0xa0009c02, 0x0869: 0xae609c02, 0x086a: 0xae609c02, 0x086b: 0xae609d02, + 0x086c: 0xae609e02, 0x086d: 0xae60a102, + 0x0870: 0x40027e20, 0x0871: 0x40028020, 0x0872: 0x40028220, 0x0873: 0x40028420, + 0x0874: 0x40028620, 0x0875: 0x40028820, 0x0876: 0x40028a20, 0x0877: 0x40028c20, + 0x0878: 0x40028e20, 0x0879: 0x40029020, 0x087a: 0x40029220, 0x087b: 0x40029420, + 0x087c: 0x40029620, 0x087d: 0x40029820, 0x087e: 0x40029a20, + // Block 0x22, offset 0x880 + 0x0880: 0x403ae620, 0x0881: 0x403ae820, 0x0882: 0x403aea20, 0x0883: 0x403aec20, + 0x0884: 0x403aee20, 0x0885: 0x403af020, 0x0886: 0x403af220, 0x0887: 0x403af420, + 0x0888: 0x403af620, 0x0889: 0x403af820, 0x088a: 0x403afa20, 0x088b: 0x403afc20, + 0x088c: 0x403afe20, 0x088d: 0x403b0020, 0x088e: 0x403b0220, 0x088f: 0x403b0420, + 0x0890: 0x403b0620, 0x0891: 0x403b0820, 0x0892: 0x403b0a20, 0x0893: 0x403b0c20, + 0x0894: 0x403b0e20, 0x0895: 0x403b1020, 0x0896: 0x403b1220, 0x0897: 0x403b1420, + 0x0898: 0x403b1620, 0x0899: 0xadc06002, 0x089a: 0xadc06002, 0x089b: 0xadc06002, + 0x089e: 0x40056820, + // Block 0x23, offset 0x8c0 + 0x08e0: 0x40395020, 0x08e2: 0x40397020, 0x08e3: 0x4039ec20, + 0x08e4: 0x403a0620, 0x08e5: 0x403a1820, 0x08e6: 0x403a4c20, 0x08e7: 0x403a5420, + 0x08e8: 0x40393220, 0x08e9: 0x40393420, 0x08ea: 0x4039c420, 0x08eb: 0x403a8c20, + 0x08ec: 0x40393620, + // Block 0x24, offset 0x900 + 0x0924: 0xae60af02, 0x0925: 0xae60b402, 0x0926: 0xadc0b802, 0x0927: 0xae60a402, + 0x0928: 0xae60a802, 0x0929: 0xadc0ac02, 0x092a: 0xae600000, 0x092b: 0xae600000, + 0x092c: 0xae600000, 0x092d: 0xadc00000, 0x092e: 0xadc00000, 0x092f: 0xadc00000, + 0x0930: 0xa1b0a302, 0x0931: 0xa1c0a702, 0x0932: 0xa1d0ab02, 0x0933: 0xae600000, + 0x0934: 0xae60b002, 0x0935: 0xae60b102, 0x0936: 0xadc0b902, 0x0937: 0xae60ca02, + 0x0938: 0xae60cb02, 0x0939: 0xadc0cf02, 0x093a: 0xadc0d002, 0x093b: 0xae60cd02, + 0x093c: 0xae60ce02, 0x093d: 0xae60cc02, 0x093e: 0xae60b502, + // Block 0x25, offset 0x940 + 0x0940: 0xa000f202, 0x0941: 0xa000f202, 0x0942: 0xa000f302, 0x0943: 0xa000f402, + 0x0944: 0x403fbc20, 0x0945: 0x403fbe20, 0x0946: 0x403fc020, 0x0947: 0x403fcc20, + 0x0948: 0x403fce20, 0x0949: 0x403fd020, 0x094a: 0x403fd220, 0x094b: 0x403fd420, + 0x094c: 0x403fd820, 0x094d: 0x403fdc20, 0x094e: 0x403fde20, 0x094f: 0x403fe020, + 0x0950: 0x403fe220, 0x0951: 0x403fe420, 0x0952: 0x403fe620, 0x0953: 0x403fe820, + 0x0954: 0x403fea20, 0x0955: 0x403fec20, 0x0956: 0x403fee20, 0x0957: 0x403ff020, + 0x0958: 0x403ff420, 0x0959: 0x403ff620, 0x095a: 0x403ff820, 0x095b: 0x403ffa20, + 0x095c: 0x403ffc20, 0x095d: 0x40400220, 0x095e: 0x40400420, 0x095f: 0x40400620, + 0x0960: 0x40400820, 0x0961: 0x40400a20, 0x0962: 0x40400e20, 0x0963: 0x40401020, + 0x0964: 0x40401220, 0x0965: 0x40401420, 0x0966: 0x40401620, 0x0967: 0x40401820, + 0x0968: 0x40401a20, 0x0969: 0xe0001830, 0x096a: 0x40401c20, 0x096b: 0x40401e20, + 0x096c: 0x40402020, 0x096d: 0x40402420, 0x096e: 0x40402620, 0x096f: 0x40402820, + 0x0970: 0x40402c20, 0x0971: 0xe0001839, 0x0972: 0x40402e20, 0x0973: 0x40403020, + 0x0974: 0xe000183c, 0x0975: 0x40403220, 0x0976: 0x40403420, 0x0977: 0x40403620, + 0x0978: 0x40403820, 0x0979: 0x40403a20, 0x097a: 0x40404c20, 0x097b: 0x40404e20, + 0x097c: 0xa070f102, 0x097d: 0x40403c20, 0x097e: 0x40404a20, 0x097f: 0x40405620, + // Block 0x26, offset 0x980 + 0x0980: 0x40405820, 0x0981: 0x40405a20, 0x0982: 0x40405c20, 0x0983: 0x40405e20, + 0x0984: 0x40406020, 0x0985: 0x40406620, 0x0986: 0x40406a20, 0x0987: 0x40406c20, + 0x0988: 0x40407020, 0x0989: 0x40407220, 0x098a: 0x40407420, 0x098b: 0x40407620, + 0x098c: 0x40407820, 0x098d: 0x8209203d, 0x098e: 0x40406e20, 0x098f: 0x40405020, + 0x0990: 0x403fb820, 0x0991: 0xae600000, 0x0992: 0xadc00000, 0x0993: 0xae603502, + 0x0994: 0xae603202, 0x0995: 0x40406820, 0x0996: 0x40405220, 0x0997: 0x40405420, + 0x0998: 0xe000181e, 0x0999: 0xe0001821, 0x099a: 0xe0001824, 0x099b: 0xe0001827, + 0x099c: 0xe000182a, 0x099d: 0xe000182d, 0x099e: 0xe0001833, 0x099f: 0xe0001836, + 0x09a0: 0x403fd620, 0x09a1: 0x403fda20, 0x09a2: 0x40406220, 0x09a3: 0x40406420, + 0x09a4: 0x40030c20, 0x09a5: 0x40030e20, 0x09a6: 0xe000016a, 0x09a7: 0xe00001f8, + 0x09a8: 0xe0000313, 0x09a9: 0xe00003ed, 0x09aa: 0xe00004c8, 0x09ab: 0xe0000592, + 0x09ac: 0xe000065d, 0x09ad: 0xe0000705, 0x09ae: 0xe00007b1, 0x09af: 0xe0000856, + 0x09b0: 0x40056c20, 0x09b1: 0x4027b620, 0x09b2: 0x403fba20, 0x09b3: 0x403fc220, + 0x09b4: 0x403fc420, 0x09b5: 0x403fc620, 0x09b6: 0x403fc820, 0x09b7: 0x403fca20, + 0x09b9: 0x403ffe20, 0x09ba: 0x40402a20, 0x09bb: 0x403ff220, + 0x09bc: 0x40400020, 0x09bd: 0x40403e20, 0x09be: 0x40400c20, 0x09bf: 0x40402220, + // Block 0x27, offset 0x9c0 + 0x09c1: 0xa000f202, 0x09c2: 0xa000f302, 0x09c3: 0xa000f402, + 0x09c5: 0x40407c20, 0x09c6: 0x40407e20, 0x09c7: 0x40408020, + 0x09c8: 0x40408220, 0x09c9: 0x40408420, 0x09ca: 0x40408620, 0x09cb: 0x40408820, + 0x09cc: 0x40408c20, 0x09cf: 0x40409020, + 0x09d0: 0x40409220, 0x09d3: 0x40409420, + 0x09d4: 0x40409620, 0x09d5: 0x40409820, 0x09d6: 0x40409a20, 0x09d7: 0x40409c20, + 0x09d8: 0x40409e20, 0x09d9: 0x4040a020, 0x09da: 0x4040a220, 0x09db: 0x4040a420, + 0x09dc: 0x4040a620, 0x09dd: 0x4040a820, 0x09de: 0x4040aa20, 0x09df: 0x4040ac20, + 0x09e0: 0x4040ae20, 0x09e1: 0x4040b020, 0x09e2: 0x4040b220, 0x09e3: 0x4040b420, + 0x09e4: 0x4040b620, 0x09e5: 0x4040b820, 0x09e6: 0x4040ba20, 0x09e7: 0x4040bc20, + 0x09e8: 0x4040be20, 0x09ea: 0x4040c020, 0x09eb: 0x4040c220, + 0x09ec: 0x4040c420, 0x09ed: 0x4040c620, 0x09ee: 0x4040c820, 0x09ef: 0x4040ca20, + 0x09f0: 0x4040cc20, 0x09f2: 0x4040d020, + 0x09f6: 0x4040d420, 0x09f7: 0x4040d620, + 0x09f8: 0x4040d820, 0x09f9: 0x4040da20, + 0x09fc: 0xa070f102, 0x09fd: 0x4040dc20, 0x09fe: 0x4040de20, 0x09ff: 0x4040e020, + // Block 0x28, offset 0xa00 + 0x0a00: 0x4040e220, 0x0a01: 0x4040e420, 0x0a02: 0x4040e620, 0x0a03: 0x4040e820, + 0x0a04: 0x4040ea20, 0x0a07: 0xc05a0191, + 0x0a08: 0x4040f220, 0x0a0b: 0x4040f420, + 0x0a0c: 0x4040f620, 0x0a0d: 0x8209207c, 0x0a0e: 0xe0001845, + 0x0a17: 0x4040fa20, + 0x0a1c: 0xe000183f, 0x0a1d: 0xe0001842, 0x0a1f: 0xe0001848, + 0x0a20: 0x40408a20, 0x0a21: 0x40408e20, 0x0a22: 0x4040ec20, 0x0a23: 0x4040ee20, + 0x0a26: 0xe000016d, 0x0a27: 0xe00001fb, + 0x0a28: 0xe0000316, 0x0a29: 0xe00003f0, 0x0a2a: 0xe00004cb, 0x0a2b: 0xe0000595, + 0x0a2c: 0xe0000660, 0x0a2d: 0xe0000708, 0x0a2e: 0xe00007b4, 0x0a2f: 0xe0000859, + 0x0a30: 0x4040ce20, 0x0a31: 0x4040d220, 0x0a32: 0x4027e820, 0x0a33: 0x4027ea20, + 0x0a34: 0x40283020, 0x0a35: 0x40283220, 0x0a36: 0x40283420, 0x0a37: 0x40283620, + 0x0a38: 0x40283820, 0x0a39: 0x40283a20, 0x0a3a: 0x40073a20, 0x0a3b: 0x4027ec20, + // Block 0x29, offset 0xa40 + 0x0a41: 0xa000f202, 0x0a42: 0xa000f302, 0x0a43: 0xa000f402, + 0x0a45: 0x40410620, 0x0a46: 0x40410820, 0x0a47: 0x40411020, + 0x0a48: 0x40411220, 0x0a49: 0x40410020, 0x0a4a: 0x40410220, + 0x0a4f: 0x40411420, + 0x0a50: 0x40410a20, 0x0a53: 0x40410420, + 0x0a54: 0x40410c20, 0x0a55: 0x40411c20, 0x0a56: 0x40411e20, 0x0a57: 0x40412020, + 0x0a58: 0x40412220, 0x0a59: 0x40412420, 0x0a5a: 0x40412620, 0x0a5b: 0x40412820, + 0x0a5c: 0x40412a20, 0x0a5d: 0x40412c20, 0x0a5e: 0x40412e20, 0x0a5f: 0x40413020, + 0x0a60: 0x40413220, 0x0a61: 0x40413420, 0x0a62: 0x40413620, 0x0a63: 0x40413820, + 0x0a64: 0x40413a20, 0x0a65: 0x40413c20, 0x0a66: 0x40413e20, 0x0a67: 0x40414020, + 0x0a68: 0x40414220, 0x0a6a: 0x40414420, 0x0a6b: 0x40414620, + 0x0a6c: 0x40414820, 0x0a6d: 0x40414a20, 0x0a6e: 0x40414c20, 0x0a6f: 0x40414e20, + 0x0a70: 0x40415220, 0x0a72: 0x40415420, 0x0a73: 0xe000185a, + 0x0a75: 0x40415620, 0x0a76: 0xe000184b, + 0x0a78: 0x40411620, 0x0a79: 0x40411820, + 0x0a7c: 0xa070f102, 0x0a7e: 0x40415a20, 0x0a7f: 0x40415c20, + // Block 0x2a, offset 0xa80 + 0x0a80: 0x40415e20, 0x0a81: 0x40416020, 0x0a82: 0x40416220, + 0x0a87: 0x40416420, + 0x0a88: 0x40416620, 0x0a8b: 0x40416820, + 0x0a8c: 0x40416a20, 0x0a8d: 0x820920b6, + 0x0a91: 0x40411a20, + 0x0a99: 0xe000184e, 0x0a9a: 0xe0001851, 0x0a9b: 0xe0001854, + 0x0a9c: 0x40415820, 0x0a9e: 0xe0001857, + 0x0aa6: 0xe0000170, 0x0aa7: 0xe00001fe, + 0x0aa8: 0xe0000319, 0x0aa9: 0xe00003f3, 0x0aaa: 0xe00004ce, 0x0aab: 0xe0000598, + 0x0aac: 0xe0000663, 0x0aad: 0xe000070b, 0x0aae: 0xe00007b7, 0x0aaf: 0xe000085c, + 0x0ab0: 0xa000f502, 0x0ab1: 0xa000f602, 0x0ab2: 0x40410e20, 0x0ab3: 0x4040fe20, + 0x0ab4: 0x4040fc20, 0x0ab5: 0x40415020, + // Block 0x2b, offset 0xac0 + 0x0ac1: 0xa000f202, 0x0ac2: 0xa000f302, 0x0ac3: 0xa000f402, + 0x0ac5: 0x40417020, 0x0ac6: 0x40417220, 0x0ac7: 0x40417420, + 0x0ac8: 0x40417620, 0x0ac9: 0x40417820, 0x0aca: 0x40417a20, 0x0acb: 0x40417c20, + 0x0acc: 0x40418020, 0x0acd: 0x40418420, 0x0acf: 0x40418620, + 0x0ad0: 0x40418820, 0x0ad1: 0x40418a20, 0x0ad3: 0x40418c20, + 0x0ad4: 0x40418e20, 0x0ad5: 0x40419020, 0x0ad6: 0x40419220, 0x0ad7: 0x40419420, + 0x0ad8: 0x40419620, 0x0ad9: 0x40419820, 0x0ada: 0x40419a20, 0x0adb: 0x40419c20, + 0x0adc: 0x40419e20, 0x0add: 0x4041a020, 0x0ade: 0x4041a220, 0x0adf: 0x4041a420, + 0x0ae0: 0x4041a620, 0x0ae1: 0x4041a820, 0x0ae2: 0x4041aa20, 0x0ae3: 0x4041ac20, + 0x0ae4: 0x4041ae20, 0x0ae5: 0x4041b020, 0x0ae6: 0x4041b220, 0x0ae7: 0x4041b420, + 0x0ae8: 0x4041b620, 0x0aea: 0x4041b820, 0x0aeb: 0x4041ba20, + 0x0aec: 0x4041bc20, 0x0aed: 0x4041be20, 0x0aee: 0x4041c020, 0x0aef: 0x4041c220, + 0x0af0: 0x4041c420, 0x0af2: 0x4041c620, 0x0af3: 0x4041d220, + 0x0af5: 0x4041c820, 0x0af6: 0x4041ca20, 0x0af7: 0x4041cc20, + 0x0af8: 0x4041ce20, 0x0af9: 0x4041d020, + 0x0afc: 0xa070f102, 0x0afd: 0x4041d420, 0x0afe: 0x4041d620, 0x0aff: 0x4041d820, + // Block 0x2c, offset 0xb00 + 0x0b00: 0x4041da20, 0x0b01: 0x4041dc20, 0x0b02: 0x4041de20, 0x0b03: 0x4041e020, + 0x0b04: 0x4041e220, 0x0b05: 0x4041e820, 0x0b07: 0x4041ea20, + 0x0b08: 0x4041ec20, 0x0b09: 0x4041ee20, 0x0b0b: 0x4041f020, + 0x0b0c: 0x4041f220, 0x0b0d: 0x820920fa, + 0x0b10: 0x40416e20, + 0x0b20: 0x40417e20, 0x0b21: 0x40418220, 0x0b22: 0x4041e420, 0x0b23: 0x4041e620, + 0x0b26: 0xe0000173, 0x0b27: 0xe0000201, + 0x0b28: 0xe000031c, 0x0b29: 0xe00003f6, 0x0b2a: 0xe00004d1, 0x0b2b: 0xe000059b, + 0x0b2c: 0xe0000666, 0x0b2d: 0xe000070e, 0x0b2e: 0xe00007ba, 0x0b2f: 0xe000085f, + 0x0b30: 0x40057420, 0x0b31: 0x4027ee20, + // Block 0x2d, offset 0xb40 + 0x0b41: 0xa000f202, 0x0b42: 0xa000f302, 0x0b43: 0xa000f402, + 0x0b45: 0x4041f620, 0x0b46: 0x4041f820, 0x0b47: 0x4041fa20, + 0x0b48: 0x4041fc20, 0x0b49: 0x4041fe20, 0x0b4a: 0x40420020, 0x0b4b: 0x40420220, + 0x0b4c: 0x40420620, 0x0b4f: 0x40420a20, + 0x0b50: 0x40420c20, 0x0b53: 0x40420e20, + 0x0b54: 0x40421020, 0x0b55: 0x40421220, 0x0b56: 0x40421420, 0x0b57: 0x40421620, + 0x0b58: 0x40421820, 0x0b59: 0x40421a20, 0x0b5a: 0x40421c20, 0x0b5b: 0x40421e20, + 0x0b5c: 0x40422020, 0x0b5d: 0x40422220, 0x0b5e: 0x40422420, 0x0b5f: 0x40422620, + 0x0b60: 0x40422820, 0x0b61: 0x40422a20, 0x0b62: 0x40422c20, 0x0b63: 0x40422e20, + 0x0b64: 0x40423020, 0x0b65: 0x40423220, 0x0b66: 0x40423420, 0x0b67: 0x40423620, + 0x0b68: 0x40423820, 0x0b6a: 0x40423a20, 0x0b6b: 0x40423c20, + 0x0b6c: 0x40423e20, 0x0b6d: 0x40424020, 0x0b6e: 0x40424220, 0x0b6f: 0x40424420, + 0x0b70: 0x40424820, 0x0b72: 0x40424a20, 0x0b73: 0x40424c20, + 0x0b75: 0x40424e20, 0x0b76: 0x40425220, 0x0b77: 0x40425420, + 0x0b78: 0x40425620, 0x0b79: 0x40425820, + 0x0b7c: 0xa070f102, 0x0b7d: 0x40425a20, 0x0b7e: 0x40425c20, 0x0b7f: 0x40425e20, + // Block 0x2e, offset 0xb80 + 0x0b80: 0x40426020, 0x0b81: 0x40426220, 0x0b82: 0x40426420, 0x0b83: 0x40426620, + 0x0b84: 0x40426820, 0x0b87: 0xc05d01e1, + 0x0b88: 0x40427020, 0x0b8b: 0x40427220, + 0x0b8c: 0x40427420, 0x0b8d: 0x8209213b, + 0x0b96: 0x40427820, 0x0b97: 0x40427a20, + 0x0b9c: 0xe000185d, 0x0b9d: 0xe0001860, 0x0b9f: 0x40424620, + 0x0ba0: 0x40420420, 0x0ba1: 0x40420820, 0x0ba2: 0x40426a20, 0x0ba3: 0x40426c20, + 0x0ba6: 0xe0000176, 0x0ba7: 0xe0000204, + 0x0ba8: 0xe000031f, 0x0ba9: 0xe00003f9, 0x0baa: 0xe00004d4, 0x0bab: 0xe000059e, + 0x0bac: 0xe0000669, 0x0bad: 0xe0000711, 0x0bae: 0xe00007bd, 0x0baf: 0xe0000862, + 0x0bb0: 0x40073c20, 0x0bb1: 0x40425020, 0x0bb2: 0x40283c20, 0x0bb3: 0x40283e20, + 0x0bb4: 0x40284020, 0x0bb5: 0x40284220, 0x0bb6: 0x40284420, 0x0bb7: 0x40284620, + // Block 0x2f, offset 0xbc0 + 0x0bc2: 0xa000f302, 0x0bc3: 0x40429620, + 0x0bc5: 0x40427e20, 0x0bc6: 0x40428020, 0x0bc7: 0x40428220, + 0x0bc8: 0x40428420, 0x0bc9: 0x40428620, 0x0bca: 0x40428820, + 0x0bce: 0x40428a20, 0x0bcf: 0x40428c20, + 0x0bd0: 0x40428e20, 0x0bd2: 0xc0610231, 0x0bd3: 0x40429220, + 0x0bd4: 0x40429420, 0x0bd5: 0x40429820, + 0x0bd9: 0x40429a20, 0x0bda: 0x40429c20, + 0x0bdc: 0x4042bc20, 0x0bde: 0x40429e20, 0x0bdf: 0x4042a020, + 0x0be3: 0x4042a220, + 0x0be4: 0x4042a420, + 0x0be8: 0x4042a620, 0x0be9: 0x4042ba20, 0x0bea: 0x4042a820, + 0x0bee: 0x4042aa20, 0x0bef: 0x4042ac20, + 0x0bf0: 0x4042ae20, 0x0bf1: 0x4042b820, 0x0bf2: 0x4042b020, 0x0bf3: 0x4042b620, + 0x0bf4: 0x4042b420, 0x0bf5: 0x4042b220, 0x0bf6: 0x4042be20, 0x0bf7: 0x4042c020, + 0x0bf8: 0x4042c220, 0x0bf9: 0x4042c420, + 0x0bfe: 0x4042c620, 0x0bff: 0x4042c820, + // Block 0x30, offset 0xc00 + 0x0c00: 0x4042ca20, 0x0c01: 0x4042cc20, 0x0c02: 0x4042ce20, + 0x0c06: 0xc0630261, 0x0c07: 0xc06602b1, + 0x0c08: 0x4042d420, 0x0c0a: 0x4042d620, 0x0c0b: 0x4042d820, + 0x0c0c: 0x4042da20, 0x0c0d: 0x8209216e, + 0x0c10: 0x40427c20, + 0x0c17: 0x4042de20, + 0x0c26: 0xe0000179, 0x0c27: 0xe0000207, + 0x0c28: 0xe0000322, 0x0c29: 0xe00003fc, 0x0c2a: 0xe00004d7, 0x0c2b: 0xe00005a1, + 0x0c2c: 0xe000066c, 0x0c2d: 0xe0000714, 0x0c2e: 0xe00007c0, 0x0c2f: 0xe0000865, + 0x0c30: 0x40285420, 0x0c31: 0x40285620, 0x0c32: 0x40285820, 0x0c33: 0x40073e20, + 0x0c34: 0x40074020, 0x0c35: 0x40074220, 0x0c36: 0x40074420, 0x0c37: 0x40074620, + 0x0c38: 0x40074820, 0x0c39: 0x4027f220, 0x0c3a: 0x40074a20, + // Block 0x31, offset 0xc40 + 0x0c41: 0xa000f202, 0x0c42: 0xa000f302, 0x0c43: 0xa000f402, + 0x0c45: 0x4042e020, 0x0c46: 0x4042e220, 0x0c47: 0x4042e420, + 0x0c48: 0x4042e620, 0x0c49: 0x4042e820, 0x0c4a: 0x4042ea20, 0x0c4b: 0x4042ec20, + 0x0c4c: 0x4042f020, 0x0c4e: 0x4042f420, 0x0c4f: 0x4042f620, + 0x0c50: 0x4042f820, 0x0c52: 0x4042fa20, 0x0c53: 0x4042fc20, + 0x0c54: 0x4042fe20, 0x0c55: 0x40430020, 0x0c56: 0x40430220, 0x0c57: 0x40430420, + 0x0c58: 0x40430620, 0x0c59: 0x40430820, 0x0c5a: 0x40430a20, 0x0c5b: 0x40430e20, + 0x0c5c: 0x40431020, 0x0c5d: 0x40431420, 0x0c5e: 0x40431620, 0x0c5f: 0x40431820, + 0x0c60: 0x40431a20, 0x0c61: 0x40431c20, 0x0c62: 0x40431e20, 0x0c63: 0x40432020, + 0x0c64: 0x40432220, 0x0c65: 0x40432420, 0x0c66: 0x40432620, 0x0c67: 0x40432820, + 0x0c68: 0x40432a20, 0x0c6a: 0x40432c20, 0x0c6b: 0x40432e20, + 0x0c6c: 0x40433020, 0x0c6d: 0x40433220, 0x0c6e: 0x40433420, 0x0c6f: 0x40433620, + 0x0c70: 0x40433820, 0x0c71: 0x40433a20, 0x0c72: 0x40433c20, 0x0c73: 0x40434820, + 0x0c75: 0x40433e20, 0x0c76: 0x40434020, 0x0c77: 0x40434220, + 0x0c78: 0x40434420, 0x0c79: 0x40434620, + 0x0c7d: 0x40434a20, 0x0c7e: 0x40434c20, 0x0c7f: 0x40434e20, + // Block 0x32, offset 0xc80 + 0x0c80: 0x40435020, 0x0c81: 0x40435220, 0x0c82: 0x40435420, 0x0c83: 0x40435620, + 0x0c84: 0x40435820, 0x0c86: 0xc06802e1, 0x0c87: 0x40436020, + 0x0c88: 0x40436220, 0x0c8a: 0x40436420, 0x0c8b: 0x40436620, + 0x0c8c: 0x40436820, 0x0c8d: 0x820921b5, + 0x0c95: 0x825421b6, 0x0c96: 0x825b21b7, + 0x0c98: 0x40430c20, 0x0c99: 0x40431220, + 0x0ca0: 0x4042ee20, 0x0ca1: 0x4042f220, 0x0ca2: 0x40435a20, 0x0ca3: 0x40435c20, + 0x0ca6: 0xe000017c, 0x0ca7: 0xe000020a, + 0x0ca8: 0xe0000325, 0x0ca9: 0xe00003ff, 0x0caa: 0xe00004da, 0x0cab: 0xe00005a4, + 0x0cac: 0xe000066f, 0x0cad: 0xe0000717, 0x0cae: 0xe00007c3, 0x0caf: 0xe0000868, + 0x0cb8: 0xe000017f, 0x0cb9: 0xe000020d, 0x0cba: 0xe0000328, 0x0cbb: 0xe0000402, + 0x0cbc: 0xe0000210, 0x0cbd: 0xe000032b, 0x0cbe: 0xe0000405, 0x0cbf: 0x40074c20, + // Block 0x33, offset 0xcc0 + 0x0cc2: 0xa000f302, 0x0cc3: 0xa000f402, + 0x0cc5: 0x40437020, 0x0cc6: 0x40437220, 0x0cc7: 0x40437420, + 0x0cc8: 0x40437620, 0x0cc9: 0x40437820, 0x0cca: 0x40437a20, 0x0ccb: 0x40437c20, + 0x0ccc: 0x40438020, 0x0cce: 0x40438420, 0x0ccf: 0x40438620, + 0x0cd0: 0x40438820, 0x0cd2: 0x40438a20, 0x0cd3: 0x40438c20, + 0x0cd4: 0x40438e20, 0x0cd5: 0x40439020, 0x0cd6: 0x40439220, 0x0cd7: 0x40439420, + 0x0cd8: 0x40439620, 0x0cd9: 0x40439820, 0x0cda: 0x40439a20, 0x0cdb: 0x40439c20, + 0x0cdc: 0x40439e20, 0x0cdd: 0x4043a020, 0x0cde: 0x4043a220, 0x0cdf: 0x4043a420, + 0x0ce0: 0x4043a620, 0x0ce1: 0x4043a820, 0x0ce2: 0x4043aa20, 0x0ce3: 0x4043ac20, + 0x0ce4: 0x4043ae20, 0x0ce5: 0x4043b020, 0x0ce6: 0x4043b220, 0x0ce7: 0x4043b420, + 0x0ce8: 0x4043b620, 0x0cea: 0x4043b820, 0x0ceb: 0x4043ba20, + 0x0cec: 0x4043bc20, 0x0ced: 0x4043be20, 0x0cee: 0x4043c020, 0x0cef: 0x4043c220, + 0x0cf0: 0x4043c420, 0x0cf1: 0x4043c620, 0x0cf2: 0x4043c820, 0x0cf3: 0x4043d420, + 0x0cf5: 0x4043ca20, 0x0cf6: 0x4043cc20, 0x0cf7: 0x4043ce20, + 0x0cf8: 0x4043d020, 0x0cf9: 0x4043d220, + 0x0cfc: 0xa070f102, 0x0cfd: 0x4043d820, 0x0cfe: 0x4043de20, 0x0cff: 0xc06a0311, + // Block 0x34, offset 0xd00 + 0x0d00: 0x4043e220, 0x0d01: 0x4043e420, 0x0d02: 0x4043e620, 0x0d03: 0x4043e820, + 0x0d04: 0x4043ea20, 0x0d06: 0xc06c0341, 0x0d07: 0x4043f220, + 0x0d08: 0x4043f420, 0x0d0a: 0xc0710311, 0x0d0b: 0x4043f820, + 0x0d0c: 0x4043fa20, 0x0d0d: 0x820921fe, + 0x0d15: 0x4043fe20, 0x0d16: 0x40440020, + 0x0d1e: 0x4043d620, + 0x0d20: 0x40437e20, 0x0d21: 0x40438220, 0x0d22: 0x4043ec20, 0x0d23: 0x4043ee20, + 0x0d26: 0xe0000182, 0x0d27: 0xe0000213, + 0x0d28: 0xe000032e, 0x0d29: 0xe0000408, 0x0d2a: 0xe00004dd, 0x0d2b: 0xe00005a7, + 0x0d2c: 0xe0000672, 0x0d2d: 0xe000071a, 0x0d2e: 0xe00007c6, 0x0d2f: 0xe000086b, + 0x0d31: 0x4043da20, 0x0d32: 0x4043dc20, + // Block 0x35, offset 0xd40 + 0x0d42: 0xa000f302, 0x0d43: 0xa000f402, + 0x0d45: 0x40440220, 0x0d46: 0x40440420, 0x0d47: 0x40440620, + 0x0d48: 0x40440820, 0x0d49: 0x40440a20, 0x0d4a: 0x40440c20, 0x0d4b: 0x40440e20, + 0x0d4c: 0x40441220, 0x0d4e: 0x40441620, 0x0d4f: 0x40441820, + 0x0d50: 0x40441a20, 0x0d52: 0x40441c20, 0x0d53: 0x40441e20, + 0x0d54: 0x40442020, 0x0d55: 0x40442220, 0x0d56: 0x40442420, 0x0d57: 0x40442620, + 0x0d58: 0x40442820, 0x0d59: 0x40442a20, 0x0d5a: 0x40442c20, 0x0d5b: 0x40442e20, + 0x0d5c: 0x40443020, 0x0d5d: 0x40443220, 0x0d5e: 0x40443420, 0x0d5f: 0x40443620, + 0x0d60: 0x40443820, 0x0d61: 0x40443a20, 0x0d62: 0x40443c20, 0x0d63: 0x40443e20, + 0x0d64: 0x40444020, 0x0d65: 0x40444220, 0x0d66: 0x40444420, 0x0d67: 0x40444620, + 0x0d68: 0x40444820, 0x0d69: 0x40444a20, 0x0d6a: 0x40444c20, 0x0d6b: 0x40444e20, + 0x0d6c: 0x40445020, 0x0d6d: 0x40445220, 0x0d6e: 0x40445420, 0x0d6f: 0x40445620, + 0x0d70: 0x40445820, 0x0d71: 0x40446a20, 0x0d72: 0x40445a20, 0x0d73: 0x40446620, + 0x0d74: 0x40446820, 0x0d75: 0x40445c20, 0x0d76: 0x40445e20, 0x0d77: 0x40446020, + 0x0d78: 0x40446220, 0x0d79: 0x40446420, 0x0d7a: 0x40446c20, + 0x0d7d: 0x40446e20, 0x0d7e: 0x40447020, 0x0d7f: 0x40447220, + // Block 0x36, offset 0xd80 + 0x0d80: 0x40447420, 0x0d81: 0x40447620, 0x0d82: 0x40447820, 0x0d83: 0x40447a20, + 0x0d84: 0x40447c20, 0x0d86: 0xc07303b1, 0x0d87: 0xc0760401, + 0x0d88: 0x40448620, 0x0d8a: 0x40448820, 0x0d8b: 0x40448a20, + 0x0d8c: 0x40448c20, 0x0d8d: 0x82092248, 0x0d8e: 0xe000186c, + 0x0d97: 0x40448e20, + 0x0da0: 0x40441020, 0x0da1: 0x40441420, 0x0da2: 0x40447e20, 0x0da3: 0x40448020, + 0x0da6: 0xe0000185, 0x0da7: 0xe0000216, + 0x0da8: 0xe0000331, 0x0da9: 0xe000040b, 0x0daa: 0xe00004e0, 0x0dab: 0xe00005aa, + 0x0dac: 0xe0000675, 0x0dad: 0xe000071d, 0x0dae: 0xe00007c9, 0x0daf: 0xe000086e, + 0x0db0: 0x40285a20, 0x0db1: 0x40285c20, 0x0db2: 0x40285e20, 0x0db3: 0x40286020, + 0x0db4: 0x40286220, 0x0db5: 0x40286420, + 0x0db9: 0x40074e20, 0x0dba: 0xe0001866, 0x0dbb: 0xe0001869, + 0x0dbc: 0xe000186f, 0x0dbd: 0xe0001872, 0x0dbe: 0xe0001875, 0x0dbf: 0xe0001863, + // Block 0x37, offset 0xdc0 + 0x0dc2: 0xa000f302, 0x0dc3: 0xa000f402, + 0x0dc5: 0x40449220, 0x0dc6: 0x40449420, 0x0dc7: 0x40449620, + 0x0dc8: 0x40449820, 0x0dc9: 0x40449a20, 0x0dca: 0x40449c20, 0x0dcb: 0x40449e20, + 0x0dcc: 0x4044a020, 0x0dcd: 0x4044a220, 0x0dce: 0x4044a420, 0x0dcf: 0x4044a620, + 0x0dd0: 0x4044a820, 0x0dd1: 0x4044aa20, 0x0dd2: 0x4044ac20, 0x0dd3: 0x4044ae20, + 0x0dd4: 0x4044b020, 0x0dd5: 0x4044b220, 0x0dd6: 0x4044b420, + 0x0dda: 0x4044b620, 0x0ddb: 0x4044b820, + 0x0ddc: 0x4044ba20, 0x0ddd: 0x4044bc20, 0x0dde: 0x4044be20, 0x0ddf: 0x4044c020, + 0x0de0: 0x4044c220, 0x0de1: 0x4044c420, 0x0de2: 0x4044c620, 0x0de3: 0x4044c820, + 0x0de4: 0x4044ca20, 0x0de5: 0x4044cc20, 0x0de6: 0x4044ce20, 0x0de7: 0x4044d020, + 0x0de8: 0x4044d220, 0x0de9: 0x4044d420, 0x0dea: 0x4044d620, 0x0deb: 0x4044d820, + 0x0dec: 0x4044da20, 0x0ded: 0x4044dc20, 0x0dee: 0x4044de20, 0x0def: 0x4044e020, + 0x0df0: 0x4044e220, 0x0df1: 0x4044e420, 0x0df3: 0x4044e620, + 0x0df4: 0x4044e820, 0x0df5: 0x4044ea20, 0x0df6: 0x4044ec20, 0x0df7: 0x4044ee20, + 0x0df8: 0x4044f020, 0x0df9: 0x4044f220, 0x0dfa: 0x4044f420, 0x0dfb: 0x4044f620, + 0x0dfd: 0x4044f820, + // Block 0x38, offset 0xe00 + 0x0e00: 0x4044fa20, 0x0e01: 0x4044fc20, 0x0e02: 0x4044fe20, 0x0e03: 0x40450020, + 0x0e04: 0x40450220, 0x0e05: 0x40450420, 0x0e06: 0x40450620, + 0x0e0a: 0x82092295, + 0x0e0f: 0x40450820, + 0x0e10: 0x40450a20, 0x0e11: 0x40450c20, 0x0e12: 0x40450e20, 0x0e13: 0x40451020, + 0x0e14: 0x40451220, 0x0e16: 0x40451420, + 0x0e18: 0x40451620, 0x0e19: 0xc0780431, 0x0e1a: 0x40452020, 0x0e1b: 0x40452220, + 0x0e1c: 0xc07d04b1, 0x0e1d: 0x40452620, 0x0e1e: 0x40452820, 0x0e1f: 0x40451a20, + 0x0e32: 0x40451820, 0x0e33: 0x40451c20, + 0x0e34: 0x40057620, + // Block 0x39, offset 0xe40 + 0x0e41: 0x40491020, 0x0e42: 0x40491220, 0x0e43: 0x40491420, + 0x0e44: 0x40491620, 0x0e45: 0x40491820, 0x0e46: 0x40491a20, 0x0e47: 0x40491c20, + 0x0e48: 0x40491e20, 0x0e49: 0x40492020, 0x0e4a: 0x40492220, 0x0e4b: 0x40492420, + 0x0e4c: 0x40492620, 0x0e4d: 0x40492820, 0x0e4e: 0x40492a20, 0x0e4f: 0x40492c20, + 0x0e50: 0x40492e20, 0x0e51: 0x40493020, 0x0e52: 0x40493220, 0x0e53: 0x40493420, + 0x0e54: 0x40493620, 0x0e55: 0x40493820, 0x0e56: 0x40493a20, 0x0e57: 0x40493c20, + 0x0e58: 0x40493e20, 0x0e59: 0x40494020, 0x0e5a: 0x40494220, 0x0e5b: 0x40494420, + 0x0e5c: 0x40494620, 0x0e5d: 0x40494820, 0x0e5e: 0x40494a20, 0x0e5f: 0x40494c20, + 0x0e60: 0x40494e20, 0x0e61: 0x40495020, 0x0e62: 0x40495220, 0x0e63: 0x40495420, + 0x0e64: 0x40495620, 0x0e65: 0x40495820, 0x0e66: 0x40495a20, 0x0e67: 0x40495c20, + 0x0e68: 0x40495e20, 0x0e69: 0x40496020, 0x0e6a: 0x40496220, 0x0e6b: 0x40496420, + 0x0e6c: 0x40496620, 0x0e6d: 0x40496820, 0x0e6e: 0x40496a20, 0x0e6f: 0x40496c20, + 0x0e70: 0x40496e20, 0x0e71: 0x40497020, 0x0e72: 0x40497220, 0x0e73: 0x40497420, + 0x0e74: 0x40497620, 0x0e75: 0x40497820, 0x0e76: 0x40497a20, 0x0e77: 0x40497c20, + 0x0e78: 0x826724bf, 0x0e79: 0x826724c0, 0x0e7a: 0x820924c1, + 0x0e7f: 0x4027f420, + // Block 0x3a, offset 0xe80 + 0x0e80: 0xc07f04e1, 0x0e81: 0xc0ae04e1, 0x0e82: 0xc0dd04e1, 0x0e83: 0xc10c04e1, + 0x0e84: 0xc13b04e1, 0x0e85: 0x40498e20, 0x0e86: 0x4027b820, 0x0e87: 0xa000ff02, + 0x0e88: 0xa6b10002, 0x0e89: 0xa6b10102, 0x0e8a: 0xa6b10202, 0x0e8b: 0xa6b10302, + 0x0e8c: 0xa0010402, 0x0e8d: 0xc16a0511, 0x0e8e: 0xa000fe02, 0x0e8f: 0x40057820, + 0x0e90: 0xe000019a, 0x0e91: 0xe000022e, 0x0e92: 0xe0000346, 0x0e93: 0xe0000420, + 0x0e94: 0xe00004f5, 0x0e95: 0xe00005bf, 0x0e96: 0xe000068a, 0x0e97: 0xe0000732, + 0x0e98: 0xe00007de, 0x0e99: 0xe0000883, 0x0e9a: 0x40057a20, 0x0e9b: 0x40057c20, + // Block 0x3b, offset 0xec0 + 0x0ec1: 0x40499220, 0x0ec2: 0x40499420, + 0x0ec4: 0x40499620, 0x0ec7: 0x40499820, + 0x0ec8: 0x40499a20, 0x0eca: 0x40499e20, + 0x0ecd: 0x4049a220, + 0x0ed4: 0x4049a420, 0x0ed5: 0x4049a620, 0x0ed6: 0x4049a820, 0x0ed7: 0x4049aa20, + 0x0ed9: 0x4049ac20, 0x0eda: 0x4049ae20, 0x0edb: 0x4049b020, + 0x0edc: 0x4049b220, 0x0edd: 0x4049b420, 0x0ede: 0x4049b620, 0x0edf: 0x4049b820, + 0x0ee1: 0x4049ba20, 0x0ee2: 0x4049bc20, 0x0ee3: 0x4049be20, + 0x0ee5: 0x4049c020, 0x0ee7: 0x4049c220, + 0x0eea: 0x40499c20, 0x0eeb: 0x4049c420, + 0x0eed: 0x4049c620, 0x0eee: 0x4049c820, 0x0eef: 0x4049ca20, + 0x0ef0: 0x4049cc20, 0x0ef1: 0x4049ce20, 0x0ef2: 0x4049d020, 0x0ef3: 0x4049d220, + 0x0ef4: 0x4049d420, 0x0ef5: 0x4049d620, 0x0ef6: 0x4049d820, 0x0ef7: 0x4049da20, + 0x0ef8: 0x827624ee, 0x0ef9: 0x827624ef, 0x0efb: 0x4049e020, + 0x0efc: 0x4049e220, 0x0efd: 0x4049e420, + // Block 0x3c, offset 0xf00 + 0x0f00: 0xc16c0541, 0x0f01: 0xc18c0541, 0x0f02: 0xc1ac0541, 0x0f03: 0xc1cc0541, + 0x0f04: 0xc1ec0541, 0x0f06: 0x4027ba20, + 0x0f08: 0xa7a10602, 0x0f09: 0xa7a10702, 0x0f0a: 0xa7a10802, 0x0f0b: 0xa7a10902, + 0x0f0c: 0xa0010a02, 0x0f0d: 0xc20c0641, + 0x0f10: 0xe000019d, 0x0f11: 0xe0000231, 0x0f12: 0xe0000349, 0x0f13: 0xe0000423, + 0x0f14: 0xe00004f8, 0x0f15: 0xe00005c2, 0x0f16: 0xe000068d, 0x0f17: 0xe0000735, + 0x0f18: 0xe00007e1, 0x0f19: 0xe0000886, + 0x0f1c: 0xf0000404, 0x0f1d: 0xf0000404, 0x0f1e: 0x40499020, 0x0f1f: 0x4049a020, + // Block 0x3d, offset 0xf40 + 0x0f40: 0xe000201a, 0x0f41: 0x40075e20, 0x0f42: 0x40076020, 0x0f43: 0x40076220, + 0x0f44: 0x40058220, 0x0f45: 0x40058420, 0x0f46: 0x40058620, 0x0f47: 0x40058820, + 0x0f48: 0x40058a20, 0x0f49: 0x40058c20, 0x0f4a: 0x40058e20, 0x0f4b: 0x40059420, + 0x0f4c: 0x0005949b, 0x0f4d: 0x40059620, 0x0f4e: 0x40059820, 0x0f4f: 0x40059a20, + 0x0f50: 0x40059c20, 0x0f51: 0x40059e20, 0x0f52: 0x4005a020, 0x0f53: 0x40076420, + 0x0f54: 0x4002aa20, 0x0f55: 0x40076620, 0x0f56: 0x40076820, 0x0f57: 0x40076a20, + 0x0f58: 0xadc00000, 0x0f59: 0xadc00000, 0x0f5a: 0x40076c20, 0x0f5b: 0x40076e20, + 0x0f5c: 0x40077020, 0x0f5d: 0x40077220, 0x0f5e: 0x40077420, 0x0f5f: 0x40077620, + 0x0f60: 0xe00001a0, 0x0f61: 0xe0000234, 0x0f62: 0xe000034c, 0x0f63: 0xe0000426, + 0x0f64: 0xe00004fb, 0x0f65: 0xe00005c5, 0x0f66: 0xe0000690, 0x0f67: 0xe0000738, + 0x0f68: 0xe00007e4, 0x0f69: 0xe0000889, 0x0f6a: 0xe0000237, 0x0f6b: 0xe000034f, + 0x0f6c: 0xe0000429, 0x0f6d: 0xe00004fe, 0x0f6e: 0xe00005c8, 0x0f6f: 0xe0000693, + 0x0f70: 0xe000073b, 0x0f71: 0xe00007e7, 0x0f72: 0xe000088c, 0x0f73: 0xe00001a3, + 0x0f74: 0x40077820, 0x0f75: 0xadc00000, 0x0f76: 0x40077a20, 0x0f77: 0xadc00000, + 0x0f78: 0x40077c20, 0x0f79: 0xad810e02, 0x0f7a: 0x40040020, 0x0f7b: 0x40040220, + 0x0f7c: 0x40040420, 0x0f7d: 0x40040620, 0x0f7e: 0xa0000000, 0x0f7f: 0xa0000000, + // Block 0x3e, offset 0xf80 + 0x0f80: 0x404a7620, 0x0f81: 0x404a7c20, 0x0f82: 0x404a8020, 0x0f83: 0xe0001fe4, + 0x0f84: 0x404a8420, 0x0f85: 0x404a8820, 0x0f86: 0x404a8c20, 0x0f87: 0x404a9020, + 0x0f89: 0x404a9420, 0x0f8a: 0x404a9820, 0x0f8b: 0x404a9c20, + 0x0f8c: 0x404aa020, 0x0f8d: 0xe0001fea, 0x0f8e: 0x404aa420, 0x0f8f: 0x404aa820, + 0x0f90: 0x404aac20, 0x0f91: 0x404ab020, 0x0f92: 0xe0001ff0, 0x0f93: 0x404ab420, + 0x0f94: 0x404ab820, 0x0f95: 0x404abc20, 0x0f96: 0x404ac020, 0x0f97: 0xe0001ff6, + 0x0f98: 0x404ac420, 0x0f99: 0x404ac820, 0x0f9a: 0x404acc20, 0x0f9b: 0x404ad020, + 0x0f9c: 0xe0001ffc, 0x0f9d: 0x404ad420, 0x0f9e: 0x404ad820, 0x0f9f: 0x404adc20, + 0x0fa0: 0x404ae020, 0x0fa1: 0x404ae420, 0x0fa2: 0x404ae820, 0x0fa3: 0x404aee20, + 0x0fa4: 0x404af220, 0x0fa5: 0x404af620, 0x0fa6: 0x404afa20, 0x0fa7: 0x404afe20, + 0x0fa8: 0x404b0220, 0x0fa9: 0xe0001fde, 0x0faa: 0xe0002008, 0x0fab: 0x404a7a20, + 0x0fac: 0x404aec20, + 0x0fb1: 0xc30f0751, 0x0fb2: 0x8282258c, 0x0fb3: 0x8281258d, + 0x0fb4: 0x82842590, 0x0fb5: 0x82812591, 0x0fb6: 0x404b2420, 0x0fb7: 0x404b2620, + 0x0fb8: 0x404b2820, 0x0fb9: 0x404b2a20, 0x0fba: 0x82822596, 0x0fbb: 0x82822597, + 0x0fbc: 0x82822598, 0x0fbd: 0x82822599, 0x0fbe: 0xa000f302, 0x0fbf: 0xa000f402, + // Block 0x3f, offset 0xfc0 + 0x0fc0: 0x8282258e, 0x0fc1: 0x8281258f, 0x0fc2: 0xae600000, 0x0fc3: 0xae600000, + 0x0fc4: 0x8209259a, 0x0fc5: 0x4005a220, 0x0fc6: 0xae600000, 0x0fc7: 0xae600000, + 0x0fc8: 0x404b0620, 0x0fc9: 0x404b0a20, 0x0fca: 0x404b1220, 0x0fcb: 0x404b1420, + 0x0fcc: 0x404b0e20, 0x0fcd: 0x404b0820, 0x0fce: 0x404b0c20, 0x0fcf: 0x404b1020, + 0x0fd0: 0x404a7820, 0x0fd1: 0x404a7e20, 0x0fd2: 0x404a8220, 0x0fd3: 0xe0001fe7, + 0x0fd4: 0x404a8620, 0x0fd5: 0x404a8a20, 0x0fd6: 0x404a8e20, 0x0fd7: 0x404a9220, + 0x0fd9: 0x404a9620, 0x0fda: 0x404a9a20, 0x0fdb: 0x404a9e20, + 0x0fdc: 0x404aa220, 0x0fdd: 0xe0001fed, 0x0fde: 0x404aa620, 0x0fdf: 0x404aaa20, + 0x0fe0: 0x404aae20, 0x0fe1: 0x404ab220, 0x0fe2: 0xe0001ff3, 0x0fe3: 0x404ab620, + 0x0fe4: 0x404aba20, 0x0fe5: 0x404abe20, 0x0fe6: 0x404ac220, 0x0fe7: 0xe0001ff9, + 0x0fe8: 0x404ac620, 0x0fe9: 0x404aca20, 0x0fea: 0x404ace20, 0x0feb: 0x404ad220, + 0x0fec: 0xe0001fff, 0x0fed: 0x404ad620, 0x0fee: 0x404ada20, 0x0fef: 0x404ade20, + 0x0ff0: 0x404ae220, 0x0ff1: 0x404ae620, 0x0ff2: 0xc30306a1, 0x0ff3: 0xc30906a1, + 0x0ff4: 0x404af420, 0x0ff5: 0x404af820, 0x0ff6: 0x404afc20, 0x0ff7: 0x404b0020, + 0x0ff8: 0x404b0420, 0x0ff9: 0xe0001fe1, 0x0ffa: 0xe0002002, 0x0ffb: 0xe0002005, + 0x0ffc: 0xe000200b, 0x0ffe: 0x40077e20, 0x0fff: 0x40078020, + // Block 0x40, offset 0x1000 + 0x1000: 0x40078220, 0x1001: 0x40078420, 0x1002: 0x40078620, 0x1003: 0x40078820, + 0x1004: 0x40078a20, 0x1005: 0x40078c20, 0x1006: 0xadc00000, 0x1007: 0x40078e20, + 0x1008: 0x40079020, 0x1009: 0x40079220, 0x100a: 0x40079420, 0x100b: 0x40079620, + 0x100c: 0x40079820, 0x100e: 0x40079a20, 0x100f: 0x40079c20, + 0x1010: 0x40059020, 0x1011: 0x40059220, 0x1012: 0x4005a420, 0x1013: 0x4005a620, + 0x1014: 0x4005a820, 0x1015: 0x40079e20, 0x1016: 0x4007a020, 0x1017: 0x4007a220, + 0x1018: 0x4007a420, 0x1019: 0x4005aa20, 0x101a: 0x4005ac20, + // Block 0x41, offset 0x1040 + 0x1040: 0x404e1420, 0x1041: 0x404e1820, 0x1042: 0x404e1c20, 0x1043: 0x404e2220, + 0x1044: 0x404e2420, 0x1045: 0x404e2820, 0x1046: 0x404e2e20, 0x1047: 0x404e3220, + 0x1048: 0x404e3a20, 0x1049: 0x404e4220, 0x104a: 0x404e4820, 0x104b: 0x404e4a20, + 0x104c: 0x404e4e20, 0x104d: 0x404e5220, 0x104e: 0x404e5620, 0x104f: 0x404e5a20, + 0x1050: 0x404e5e20, 0x1051: 0x404e6020, 0x1052: 0x404e6220, 0x1053: 0x404e6620, + 0x1054: 0x404e6a20, 0x1055: 0x404e7220, 0x1056: 0x404e7420, 0x1057: 0x404e7e20, + 0x1058: 0x404e8220, 0x1059: 0x404e8420, 0x105a: 0x404e8820, 0x105b: 0x404e8c20, + 0x105c: 0x404e9420, 0x105d: 0x404e9820, 0x105e: 0x404ea620, 0x105f: 0x404eaa20, + 0x1060: 0x404eb620, 0x1061: 0x404ec220, 0x1062: 0x404ec420, 0x1063: 0x404ec620, + 0x1064: 0x404ec820, 0x1065: 0xc31307b1, 0x1066: 0x404ecc20, 0x1067: 0x404ed620, + 0x1068: 0x404ed820, 0x1069: 0x404eda20, 0x106a: 0x404edc20, 0x106b: 0x004ede84, + 0x106c: 0x404ede20, 0x106d: 0x404ee620, 0x106e: 0x404eea20, 0x106f: 0x404eee20, + 0x1070: 0x404ef420, 0x1071: 0x404efe20, 0x1072: 0x404f0620, 0x1073: 0x404eec20, + 0x1074: 0x404f0a20, 0x1075: 0x404f0220, 0x1076: 0xa000f302, 0x1077: 0xa0711202, + 0x1078: 0xa000f402, 0x1079: 0x8209278a, 0x107a: 0x8209278b, 0x107b: 0x404e8a20, + 0x107c: 0x404e9220, 0x107d: 0x404e9a20, 0x107e: 0x404eb020, 0x107f: 0xe000201e, + // Block 0x42, offset 0x1080 + 0x1080: 0xe00001ac, 0x1081: 0xe0000240, 0x1082: 0xe0000358, 0x1083: 0xe0000432, + 0x1084: 0xe0000507, 0x1085: 0xe00005d1, 0x1086: 0xe000069c, 0x1087: 0xe0000744, + 0x1088: 0xe00007f0, 0x1089: 0xe0000895, 0x108a: 0x40032220, 0x108b: 0x40032420, + 0x108c: 0x4005b420, 0x108d: 0x4005b620, 0x108e: 0x4005b820, 0x108f: 0x4005ba20, + 0x1090: 0x404ea020, 0x1091: 0x404ea220, 0x1092: 0x404ece20, 0x1093: 0x404ed020, + 0x1094: 0x404ed220, 0x1095: 0x404ed420, 0x1096: 0x404ef620, 0x1097: 0x404ef820, + 0x1098: 0x404efa20, 0x1099: 0x404efc20, 0x109a: 0x404e2620, 0x109b: 0x404e3c20, + 0x109c: 0x404eb820, 0x109d: 0x404eba20, 0x109e: 0x404e7020, 0x109f: 0x404e8620, + 0x10a0: 0x404e9620, 0x10a1: 0x404e4020, 0x10a2: 0x404f0c20, 0x10a3: 0x404f1820, + 0x10a4: 0x404f1a20, 0x10a5: 0x404ea420, 0x10a6: 0x404ec020, 0x10a7: 0x404f0e20, + 0x10a8: 0x404f1020, 0x10a9: 0x404f1c20, 0x10aa: 0x404f1e20, 0x10ab: 0x404f2020, + 0x10ac: 0x404f2220, 0x10ad: 0x404f2420, 0x10ae: 0x404e5c20, 0x10af: 0x404ebc20, + 0x10b0: 0x404ebe20, 0x10b1: 0x404ee820, 0x10b2: 0x404ee220, 0x10b3: 0x404ef020, + 0x10b4: 0x404ef220, 0x10b5: 0x404e1620, 0x10b6: 0x404e1a20, 0x10b7: 0x404e1e20, + 0x10b8: 0x404e2a20, 0x10b9: 0x404e3620, 0x10ba: 0x404e4420, 0x10bb: 0x404e6420, + 0x10bc: 0x404e6c20, 0x10bd: 0x404e7620, 0x10be: 0x404e7820, 0x10bf: 0x404e8020, + // Block 0x43, offset 0x10c0 + 0x10c0: 0x404e9e20, 0x10c1: 0x404eac20, 0x10c2: 0x404e9c20, 0x10c3: 0x404ee020, + 0x10c4: 0x404f0020, 0x10c5: 0x404f0420, 0x10c6: 0x404f1220, 0x10c7: 0x404f2620, + 0x10c8: 0x404f2a20, 0x10c9: 0x404f2e20, 0x10ca: 0x404f3020, 0x10cb: 0x404f2820, + 0x10cc: 0x404f2c20, 0x10cd: 0xadc11302, 0x10ce: 0x404e7c20, 0x10cf: 0x404f3220, + 0x10d0: 0xe00001af, 0x10d1: 0xe0000243, 0x10d2: 0xe000035b, 0x10d3: 0xe0000435, + 0x10d4: 0xe000050a, 0x10d5: 0xe00005d4, 0x10d6: 0xe000069f, 0x10d7: 0xe0000747, + 0x10d8: 0xe00007f3, 0x10d9: 0xe0000898, 0x10da: 0x404f3420, 0x10db: 0x404f3620, + 0x10dc: 0x404ee420, 0x10dd: 0x404f0820, 0x10de: 0x4007a820, 0x10df: 0x4007aa20, + 0x10e0: 0x00379888, 0x10e1: 0x00379c88, 0x10e2: 0x0037a088, 0x10e3: 0x0037a488, + 0x10e4: 0x0037a888, 0x10e5: 0x0037ac88, 0x10e6: 0x0037b088, 0x10e7: 0x0037b888, + 0x10e8: 0x0037bc88, 0x10e9: 0x0037c088, 0x10ea: 0x0037c488, 0x10eb: 0x0037c888, + 0x10ec: 0x0037cc88, 0x10ed: 0x0037d488, 0x10ee: 0x0037d888, 0x10ef: 0x0037dc88, + 0x10f0: 0x0037e088, 0x10f1: 0x0037e488, 0x10f2: 0x0037e888, 0x10f3: 0x0037f088, + 0x10f4: 0x0037f488, 0x10f5: 0x0037f888, 0x10f6: 0x0037fc88, 0x10f7: 0x00380088, + 0x10f8: 0x00380488, 0x10f9: 0x00380888, 0x10fa: 0x00380c88, 0x10fb: 0x00381088, + 0x10fc: 0x00381488, 0x10fd: 0x00381888, 0x10fe: 0x00381c88, 0x10ff: 0x00382488, + // Block 0x44, offset 0x1100 + 0x1100: 0x00382888, 0x1101: 0x0037b488, 0x1102: 0x0037d088, 0x1103: 0x0037ec88, + 0x1104: 0x00382088, 0x1105: 0x00382c88, 0x1107: 0x00383288, + 0x110d: 0x00383c88, + 0x1110: 0x40379620, 0x1111: 0x40379a20, 0x1112: 0x40379e20, 0x1113: 0x4037a220, + 0x1114: 0x4037a620, 0x1115: 0x4037aa20, 0x1116: 0x4037ae20, 0x1117: 0x4037b620, + 0x1118: 0x4037ba20, 0x1119: 0x4037be20, 0x111a: 0x4037c220, 0x111b: 0x4037c620, + 0x111c: 0x4037ca20, 0x111d: 0x4037d220, 0x111e: 0x4037d620, 0x111f: 0x4037da20, + 0x1120: 0x4037de20, 0x1121: 0x4037e220, 0x1122: 0x4037e620, 0x1123: 0x4037ee20, + 0x1124: 0x4037f220, 0x1125: 0x4037f620, 0x1126: 0x4037fa20, 0x1127: 0x4037fe20, + 0x1128: 0x40380220, 0x1129: 0x40380620, 0x112a: 0x40380a20, 0x112b: 0x40380e20, + 0x112c: 0x40381220, 0x112d: 0x40381620, 0x112e: 0x40381a20, 0x112f: 0x40382220, + 0x1130: 0x40382620, 0x1131: 0x4037b220, 0x1132: 0x4037ce20, 0x1133: 0x4037ea20, + 0x1134: 0x40381e20, 0x1135: 0x40382a20, 0x1136: 0x40382e20, 0x1137: 0x40383020, + 0x1138: 0x40383420, 0x1139: 0x40383620, 0x113a: 0x40383820, 0x113b: 0x40036020, + 0x113c: 0x0037ca94, 0x113d: 0x40383a20, 0x113e: 0x40383e20, 0x113f: 0x40384020, + // Block 0x45, offset 0x1140 + 0x1140: 0x4062ac20, 0x1141: 0x4062ae20, 0x1142: 0x4062b020, 0x1143: 0x4062b220, + 0x1144: 0x4062b420, 0x1145: 0x4062b620, 0x1146: 0x4062b820, 0x1147: 0x4062ba20, + 0x1148: 0x4062bc20, 0x1149: 0x4062be20, 0x114a: 0x4062c020, 0x114b: 0x4062c220, + 0x114c: 0x4062c420, 0x114d: 0x4062c620, 0x114e: 0x4062c820, 0x114f: 0x4062ca20, + 0x1150: 0x4062cc20, 0x1151: 0x4062ce20, 0x1152: 0x4062d020, 0x1153: 0x4062d220, + 0x1154: 0x4062d420, 0x1155: 0x4062d620, 0x1156: 0x4062d820, 0x1157: 0x4062da20, + 0x1158: 0x4062dc20, 0x1159: 0x4062de20, 0x115a: 0x4062e020, 0x115b: 0x4062e220, + 0x115c: 0x4062e420, 0x115d: 0x4062e620, 0x115e: 0x4062e820, 0x115f: 0x4062ea20, + 0x1160: 0x4062ec20, 0x1161: 0x4062ee20, 0x1162: 0x4062f020, 0x1163: 0x4062f220, + 0x1164: 0x4062f420, 0x1165: 0x4062f620, 0x1166: 0x4062f820, 0x1167: 0x4062fa20, + 0x1168: 0x4062fc20, 0x1169: 0x4062fe20, 0x116a: 0x40630020, 0x116b: 0x40630220, + 0x116c: 0x40630420, 0x116d: 0x40630620, 0x116e: 0x40630820, 0x116f: 0x40630a20, + 0x1170: 0x40630c20, 0x1171: 0x40630e20, 0x1172: 0x40631020, 0x1173: 0x40631220, + 0x1174: 0x40631420, 0x1175: 0x40631620, 0x1176: 0x40631820, 0x1177: 0x40631a20, + 0x1178: 0x40631c20, 0x1179: 0x40631e20, 0x117a: 0x40632020, 0x117b: 0x40632220, + 0x117c: 0x40632420, 0x117d: 0x40632620, 0x117e: 0x40632820, 0x117f: 0x40632a20, + // Block 0x46, offset 0x1180 + 0x1180: 0x40632c20, 0x1181: 0x40632e20, 0x1182: 0x40633020, 0x1183: 0x40633220, + 0x1184: 0x40633420, 0x1185: 0x40633620, 0x1186: 0x40633820, 0x1187: 0x40633a20, + 0x1188: 0x40633c20, 0x1189: 0x40633e20, 0x118a: 0x40634020, 0x118b: 0x40634220, + 0x118c: 0x40634420, 0x118d: 0x40634620, 0x118e: 0x40634820, 0x118f: 0x40634a20, + 0x1190: 0x40634c20, 0x1191: 0x40634e20, 0x1192: 0x40635020, 0x1193: 0x40635220, + 0x1194: 0x40635420, 0x1195: 0x40635620, 0x1196: 0x40635820, 0x1197: 0x40635a20, + 0x1198: 0x40635c20, 0x1199: 0x40635e20, 0x119a: 0x40636020, 0x119b: 0x40636220, + 0x119c: 0x40636420, 0x119d: 0x40636620, 0x119e: 0x40636820, 0x119f: 0x4063a420, + 0x11a0: 0x4063a620, 0x11a1: 0x4063a820, 0x11a2: 0x4063aa20, 0x11a3: 0x4063ac20, + 0x11a4: 0x4063ae20, 0x11a5: 0x4063b020, 0x11a6: 0x4063b220, 0x11a7: 0x4063b420, + 0x11a8: 0x4063b620, 0x11a9: 0x4063b820, 0x11aa: 0x4063ba20, 0x11ab: 0x4063bc20, + 0x11ac: 0x4063be20, 0x11ad: 0x4063c020, 0x11ae: 0x4063c220, 0x11af: 0x4063c420, + 0x11b0: 0x4063c620, 0x11b1: 0x4063c820, 0x11b2: 0x4063ca20, 0x11b3: 0x4063cc20, + 0x11b4: 0x4063ce20, 0x11b5: 0x4063d020, 0x11b6: 0x4063d220, 0x11b7: 0x4063d420, + 0x11b8: 0x4063d620, 0x11b9: 0x4063d820, 0x11ba: 0x4063da20, 0x11bb: 0x4063dc20, + 0x11bc: 0x4063de20, 0x11bd: 0x4063e020, 0x11be: 0x4063e220, 0x11bf: 0x4063e420, + // Block 0x47, offset 0x11c0 + 0x11c0: 0x4063e620, 0x11c1: 0x4063e820, 0x11c2: 0x4063ea20, 0x11c3: 0x4063ec20, + 0x11c4: 0x4063ee20, 0x11c5: 0x4063f020, 0x11c6: 0x4063f220, 0x11c7: 0x4063f420, + 0x11c8: 0x4063f620, 0x11c9: 0x4063f820, 0x11ca: 0x4063fa20, 0x11cb: 0x4063fc20, + 0x11cc: 0x4063fe20, 0x11cd: 0x40640020, 0x11ce: 0x40640220, 0x11cf: 0x40640420, + 0x11d0: 0x40640620, 0x11d1: 0x40640820, 0x11d2: 0x40640a20, 0x11d3: 0x40640c20, + 0x11d4: 0x40640e20, 0x11d5: 0x40641020, 0x11d6: 0x40641220, 0x11d7: 0x40641420, + 0x11d8: 0x40641620, 0x11d9: 0x40641820, 0x11da: 0x40641a20, 0x11db: 0x40641c20, + 0x11dc: 0x40641e20, 0x11dd: 0x40642020, 0x11de: 0x40642220, 0x11df: 0x40642420, + 0x11e0: 0x40642620, 0x11e1: 0x40642820, 0x11e2: 0x40642a20, 0x11e3: 0x40642c20, + 0x11e4: 0x40642e20, 0x11e5: 0x40643020, 0x11e6: 0x40643220, 0x11e7: 0x40643420, + 0x11e8: 0x40646420, 0x11e9: 0x40646620, 0x11ea: 0x40646820, 0x11eb: 0x40646a20, + 0x11ec: 0x40646c20, 0x11ed: 0x40646e20, 0x11ee: 0x40647020, 0x11ef: 0x40647220, + 0x11f0: 0x40647420, 0x11f1: 0x40647620, 0x11f2: 0x40647820, 0x11f3: 0x40647a20, + 0x11f4: 0x40647c20, 0x11f5: 0x40647e20, 0x11f6: 0x40648020, 0x11f7: 0x40648220, + 0x11f8: 0x40648420, 0x11f9: 0x40648620, 0x11fa: 0x40648820, 0x11fb: 0x40648a20, + 0x11fc: 0x40648c20, 0x11fd: 0x40648e20, 0x11fe: 0x40649020, 0x11ff: 0x40649220, + // Block 0x48, offset 0x1200 + 0x1200: 0x40649420, 0x1201: 0x40649620, 0x1202: 0x40649820, 0x1203: 0x40649a20, + 0x1204: 0x40649c20, 0x1205: 0x40649e20, 0x1206: 0x4064a020, 0x1207: 0x4064a220, + 0x1208: 0x4064a420, 0x1209: 0x4064a620, 0x120a: 0x4064a820, 0x120b: 0x4064aa20, + 0x120c: 0x4064ac20, 0x120d: 0x4064ae20, 0x120e: 0x4064b020, 0x120f: 0x4064b220, + 0x1210: 0x4064b420, 0x1211: 0x4064b620, 0x1212: 0x4064b820, 0x1213: 0x4064ba20, + 0x1214: 0x4064bc20, 0x1215: 0x4064be20, 0x1216: 0x4064c020, 0x1217: 0x4064c220, + 0x1218: 0x4064c420, 0x1219: 0x4064c620, 0x121a: 0x4064c820, 0x121b: 0x4064ca20, + 0x121c: 0x4064cc20, 0x121d: 0x4064ce20, 0x121e: 0x4064d020, 0x121f: 0x4064d220, + 0x1220: 0x4064d420, 0x1221: 0x4064d620, 0x1222: 0x4064d820, 0x1223: 0x4064da20, + 0x1224: 0x4064dc20, 0x1225: 0x4064de20, 0x1226: 0x4064e020, 0x1227: 0x4064e220, + 0x1228: 0x4064e420, 0x1229: 0x4064e620, 0x122a: 0x4064e820, 0x122b: 0x4064ea20, + 0x122c: 0x4064ec20, 0x122d: 0x4064ee20, 0x122e: 0x4064f020, 0x122f: 0x4064f220, + 0x1230: 0x4064f420, 0x1231: 0x4064f620, 0x1232: 0x4064f820, 0x1233: 0x4064fa20, + 0x1234: 0x4064fc20, 0x1235: 0x4064fe20, 0x1236: 0x40650020, 0x1237: 0x40650220, + 0x1238: 0x40650420, 0x1239: 0x40650620, 0x123a: 0x40650820, 0x123b: 0x40650a20, + 0x123c: 0x40650c20, 0x123d: 0x40650e20, 0x123e: 0x40651020, 0x123f: 0x40651220, + // Block 0x49, offset 0x1240 + 0x1240: 0x403c2e20, 0x1241: 0x403c3020, 0x1242: 0x403c3220, 0x1243: 0x403c3420, + 0x1244: 0x403c3620, 0x1245: 0x403c3820, 0x1246: 0x403c3a20, 0x1247: 0x403c3c20, + 0x1248: 0x403c3e20, 0x1249: 0x403c4020, 0x124a: 0x403c4220, 0x124b: 0x403c4420, + 0x124c: 0x403c4620, 0x124d: 0x403c4820, 0x124e: 0x403c4a20, 0x124f: 0x403c4c20, + 0x1250: 0x403c5020, 0x1251: 0x403c5220, 0x1252: 0x403c5420, 0x1253: 0x403c5620, + 0x1254: 0x403c5820, 0x1255: 0x403c5a20, 0x1256: 0x403c5c20, 0x1257: 0x403c5e20, + 0x1258: 0x403c6020, 0x1259: 0x403c6220, 0x125a: 0x403c6420, 0x125b: 0x403c6620, + 0x125c: 0x403c6820, 0x125d: 0x403c6a20, 0x125e: 0x403c6c20, 0x125f: 0x403c6e20, + 0x1260: 0x403c7a20, 0x1261: 0x403c7c20, 0x1262: 0x403c7e20, 0x1263: 0x403c8020, + 0x1264: 0x403c8220, 0x1265: 0x403c8420, 0x1266: 0x403c8620, 0x1267: 0x403c8820, + 0x1268: 0x403c8a20, 0x1269: 0x403c8c20, 0x126a: 0x403c8e20, 0x126b: 0x403c9020, + 0x126c: 0x403c9220, 0x126d: 0x403c9420, 0x126e: 0x403c9620, 0x126f: 0x403c9820, + 0x1270: 0x403c9c20, 0x1271: 0x403c9e20, 0x1272: 0x403ca020, 0x1273: 0x403ca220, + 0x1274: 0x403ca420, 0x1275: 0x403ca620, 0x1276: 0x403ca820, 0x1277: 0x403caa20, + 0x1278: 0x403cba20, 0x1279: 0x403cbc20, 0x127a: 0x403cbe20, 0x127b: 0x403cc020, + 0x127c: 0x403cc220, 0x127d: 0x403cc420, 0x127e: 0x403cc620, 0x127f: 0x403cc820, + // Block 0x4a, offset 0x1280 + 0x1280: 0x403ccc20, 0x1281: 0x403cce20, 0x1282: 0x403cd020, 0x1283: 0x403cd220, + 0x1284: 0x403cd420, 0x1285: 0x403cd620, 0x1286: 0x403cd820, 0x1287: 0x403cda20, + 0x1288: 0x403cdc20, 0x128a: 0x403cde20, 0x128b: 0x403ce020, + 0x128c: 0x403ce220, 0x128d: 0x403ce420, + 0x1290: 0x403ce620, 0x1291: 0x403ce820, 0x1292: 0x403cea20, 0x1293: 0x403cec20, + 0x1294: 0x403cee20, 0x1295: 0x403cf020, 0x1296: 0x403cf220, + 0x1298: 0x403cf420, 0x129a: 0x403cf620, 0x129b: 0x403cf820, + 0x129c: 0x403cfa20, 0x129d: 0x403cfc20, + 0x12a0: 0x403cfe20, 0x12a1: 0x403d0020, 0x12a2: 0x403d0220, 0x12a3: 0x403d0420, + 0x12a4: 0x403d0620, 0x12a5: 0x403d0820, 0x12a6: 0x403d0a20, 0x12a7: 0x403d0c20, + 0x12a8: 0x403d1820, 0x12a9: 0x403d1a20, 0x12aa: 0x403d1c20, 0x12ab: 0x403d1e20, + 0x12ac: 0x403d2020, 0x12ad: 0x403d2220, 0x12ae: 0x403d2420, 0x12af: 0x403d2620, + 0x12b0: 0x403d2820, 0x12b1: 0x403d2a20, 0x12b2: 0x403d2c20, 0x12b3: 0x403d2e20, + 0x12b4: 0x403d3020, 0x12b5: 0x403d3220, 0x12b6: 0x403d3420, 0x12b7: 0x403d3620, + 0x12b8: 0x403d3a20, 0x12b9: 0x403d3c20, 0x12ba: 0x403d3e20, 0x12bb: 0x403d4020, + 0x12bc: 0x403d4220, 0x12bd: 0x403d4420, 0x12be: 0x403d4620, 0x12bf: 0x403d4820, + // Block 0x4b, offset 0x12c0 + 0x12c0: 0x403d4c20, 0x12c1: 0x403d4e20, 0x12c2: 0x403d5020, 0x12c3: 0x403d5220, + 0x12c4: 0x403d5420, 0x12c5: 0x403d5620, 0x12c6: 0x403d5820, 0x12c7: 0x403d5a20, + 0x12c8: 0x403d5c20, 0x12ca: 0x403d5e20, 0x12cb: 0x403d6020, + 0x12cc: 0x403d6220, 0x12cd: 0x403d6420, + 0x12d0: 0x403d6620, 0x12d1: 0x403d6820, 0x12d2: 0x403d6a20, 0x12d3: 0x403d6c20, + 0x12d4: 0x403d6e20, 0x12d5: 0x403d7020, 0x12d6: 0x403d7220, 0x12d7: 0x403d7420, + 0x12d8: 0x403d7820, 0x12d9: 0x403d7a20, 0x12da: 0x403d7c20, 0x12db: 0x403d7e20, + 0x12dc: 0x403d8020, 0x12dd: 0x403d8220, 0x12de: 0x403d8420, 0x12df: 0x403d8620, + 0x12e0: 0x403d8a20, 0x12e1: 0x403d8c20, 0x12e2: 0x403d8e20, 0x12e3: 0x403d9020, + 0x12e4: 0x403d9220, 0x12e5: 0x403d9420, 0x12e6: 0x403d9620, 0x12e7: 0x403d9820, + 0x12e8: 0x403d9c20, 0x12e9: 0x403d9e20, 0x12ea: 0x403da020, 0x12eb: 0x403da220, + 0x12ec: 0x403da420, 0x12ed: 0x403da620, 0x12ee: 0x403da820, 0x12ef: 0x403daa20, + 0x12f0: 0x403dac20, 0x12f2: 0x403dae20, 0x12f3: 0x403db020, + 0x12f4: 0x403db220, 0x12f5: 0x403db420, + 0x12f8: 0x403db620, 0x12f9: 0x403db820, 0x12fa: 0x403dba20, 0x12fb: 0x403dbc20, + 0x12fc: 0x403dbe20, 0x12fd: 0x403dc020, 0x12fe: 0x403dc220, + // Block 0x4c, offset 0x1300 + 0x1300: 0x403dc420, 0x1302: 0x403dc620, 0x1303: 0x403dc820, + 0x1304: 0x403dca20, 0x1305: 0x403dcc20, + 0x1308: 0x403dce20, 0x1309: 0x403dd020, 0x130a: 0x403dd220, 0x130b: 0x403dd420, + 0x130c: 0x403dd620, 0x130d: 0x403dd820, 0x130e: 0x403dda20, 0x130f: 0x403ddc20, + 0x1310: 0x403dde20, 0x1311: 0x403de020, 0x1312: 0x403de220, 0x1313: 0x403de420, + 0x1314: 0x403de620, 0x1315: 0x403de820, 0x1316: 0x403dea20, + 0x1318: 0x403dec20, 0x1319: 0x403dee20, 0x131a: 0x403df020, 0x131b: 0x403df220, + 0x131c: 0x403df420, 0x131d: 0x403df620, 0x131e: 0x403df820, 0x131f: 0x403dfa20, + 0x1320: 0x403e0a20, 0x1321: 0x403e0c20, 0x1322: 0x403e0e20, 0x1323: 0x403e1020, + 0x1324: 0x403e1220, 0x1325: 0x403e1420, 0x1326: 0x403e1620, 0x1327: 0x403e1820, + 0x1328: 0x403e1a20, 0x1329: 0x403e1c20, 0x132a: 0x403e1e20, 0x132b: 0x403e2020, + 0x132c: 0x403e2220, 0x132d: 0x403e2420, 0x132e: 0x403e2620, 0x132f: 0x403e2820, + 0x1330: 0x403e2a20, 0x1331: 0x403e2c20, 0x1332: 0x403e2e20, 0x1333: 0x403e3020, + 0x1334: 0x403e3220, 0x1335: 0x403e3420, 0x1336: 0x403e3620, 0x1337: 0x403e3820, + 0x1338: 0x403e4820, 0x1339: 0x403e4a20, 0x133a: 0x403e4c20, 0x133b: 0x403e4e20, + 0x133c: 0x403e5020, 0x133d: 0x403e5220, 0x133e: 0x403e5420, 0x133f: 0x403e5620, + // Block 0x4d, offset 0x1340 + 0x1340: 0x403e5a20, 0x1341: 0x403e5c20, 0x1342: 0x403e5e20, 0x1343: 0x403e6020, + 0x1344: 0x403e6220, 0x1345: 0x403e6420, 0x1346: 0x403e6620, 0x1347: 0x403e6820, + 0x1348: 0x403e6c20, 0x1349: 0x403e6e20, 0x134a: 0x403e7020, 0x134b: 0x403e7220, + 0x134c: 0x403e7420, 0x134d: 0x403e7620, 0x134e: 0x403e7820, 0x134f: 0x403e7a20, + 0x1350: 0x403e7c20, 0x1352: 0x403e7e20, 0x1353: 0x403e8020, + 0x1354: 0x403e8220, 0x1355: 0x403e8420, + 0x1358: 0x403e8620, 0x1359: 0x403e8820, 0x135a: 0x403e8a20, 0x135b: 0x403e8c20, + 0x135c: 0x403e8e20, 0x135d: 0x403e9020, 0x135e: 0x403e9220, 0x135f: 0x403e9420, + 0x1360: 0x403e9e20, 0x1361: 0x403ea020, 0x1362: 0x403ea220, 0x1363: 0x403ea420, + 0x1364: 0x403ea620, 0x1365: 0x403ea820, 0x1366: 0x403eaa20, 0x1367: 0x403eac20, + 0x1368: 0x403eb020, 0x1369: 0x403eb220, 0x136a: 0x403eb420, 0x136b: 0x403eb620, + 0x136c: 0x403eb820, 0x136d: 0x403eba20, 0x136e: 0x403ebc20, 0x136f: 0x403ebe20, + 0x1370: 0x403ed020, 0x1371: 0x403ed220, 0x1372: 0x403ed420, 0x1373: 0x403ed620, + 0x1374: 0x403ed820, 0x1375: 0x403eda20, 0x1376: 0x403edc20, 0x1377: 0x403ede20, + 0x1378: 0x403ee220, 0x1379: 0x403ee420, 0x137a: 0x403ee620, 0x137b: 0x403ee820, + 0x137c: 0x403eea20, 0x137d: 0x403eec20, 0x137e: 0x403eee20, 0x137f: 0x403ef020, + // Block 0x4e, offset 0x1380 + 0x1380: 0x403f0020, 0x1381: 0x403f0220, 0x1382: 0x403f0420, 0x1383: 0x403f0620, + 0x1384: 0x403f0820, 0x1385: 0x403f0a20, 0x1386: 0x403f0c20, 0x1387: 0x403f0e20, + 0x1388: 0x403f1020, 0x1389: 0x403f1220, 0x138a: 0x403f1420, 0x138b: 0x403f1620, + 0x138c: 0x403f1820, 0x138d: 0x403f1a20, 0x138e: 0x403f1c20, 0x138f: 0x403f1e20, + 0x1390: 0x403f2820, 0x1391: 0x403f2a20, 0x1392: 0x403f2c20, 0x1393: 0x403f2e20, + 0x1394: 0x403f3020, 0x1395: 0x403f3220, 0x1396: 0x403f3420, 0x1397: 0x403f3620, + 0x1398: 0x403f4220, 0x1399: 0x403f4420, 0x139a: 0x403f4620, + 0x139d: 0xae60ee02, 0x139e: 0xae60ed02, 0x139f: 0xae60ec02, + 0x13a0: 0x40036220, 0x13a1: 0x40029c20, 0x13a2: 0x4002ee20, 0x13a3: 0x40029e20, + 0x13a4: 0x4002a020, 0x13a5: 0x4002a220, 0x13a6: 0x4002a420, 0x13a7: 0x4002d020, + 0x13a8: 0x40036420, 0x13a9: 0xe00001f2, 0x13aa: 0xe000030d, 0x13ab: 0xe00003e7, + 0x13ac: 0xe00004c2, 0x13ad: 0xe000058c, 0x13ae: 0xe0000657, 0x13af: 0xe00006ff, + 0x13b0: 0xe00007ab, 0x13b1: 0xe0000850, 0x13b2: 0x40286620, 0x13b3: 0x40286820, + 0x13b4: 0x40286a20, 0x13b5: 0x40286c20, 0x13b6: 0x40286e20, 0x13b7: 0x40287020, + 0x13b8: 0x40287220, 0x13b9: 0x40287420, 0x13ba: 0x40287620, 0x13bb: 0x40287820, + 0x13bc: 0x40287a20, + // Block 0x4f, offset 0x13c0 + 0x13c0: 0x403c7020, 0x13c1: 0x403c7220, 0x13c2: 0x403c7420, 0x13c3: 0x403c7620, + 0x13c4: 0x403d0e20, 0x13c5: 0x403d1020, 0x13c6: 0x403d1220, 0x13c7: 0x403d1420, + 0x13c8: 0x403f2020, 0x13c9: 0x403f2220, 0x13ca: 0x403f2420, 0x13cb: 0x403f2620, + 0x13cc: 0x403f3820, 0x13cd: 0x403f3a20, 0x13ce: 0x403f3c20, 0x13cf: 0x403f3e20, + 0x13d0: 0x4006a620, 0x13d1: 0x4006a820, 0x13d2: 0x4006aa20, 0x13d3: 0x4006ac20, + 0x13d4: 0x4006ae20, 0x13d5: 0x4006b020, 0x13d6: 0x4006b220, 0x13d7: 0x4006b420, + 0x13d8: 0x4006b620, 0x13d9: 0x4006b820, + 0x13e0: 0x40547620, 0x13e1: 0x40547820, 0x13e2: 0x40547a20, 0x13e3: 0x40547c20, + 0x13e4: 0x40547e20, 0x13e5: 0x40548020, 0x13e6: 0x40548220, 0x13e7: 0x40548420, + 0x13e8: 0x40548620, 0x13e9: 0x40548820, 0x13ea: 0x40548a20, 0x13eb: 0x40548c20, + 0x13ec: 0x40548e20, 0x13ed: 0x40549020, 0x13ee: 0x40549220, 0x13ef: 0x40549420, + 0x13f0: 0x40549620, 0x13f1: 0x40549820, 0x13f2: 0x40549a20, 0x13f3: 0x40549c20, + 0x13f4: 0x40549e20, 0x13f5: 0x4054a020, 0x13f6: 0x4054a220, 0x13f7: 0x4054a420, + 0x13f8: 0x4054a620, 0x13f9: 0x4054a820, 0x13fa: 0x4054aa20, 0x13fb: 0x4054ac20, + 0x13fc: 0x4054ae20, 0x13fd: 0x4054b020, 0x13fe: 0x4054b220, 0x13ff: 0x4054b420, + // Block 0x50, offset 0x1400 + 0x1400: 0x4054b620, 0x1401: 0x4054b820, 0x1402: 0x4054ba20, 0x1403: 0x4054bc20, + 0x1404: 0x4054be20, 0x1405: 0x4054c020, 0x1406: 0x4054c220, 0x1407: 0x4054c420, + 0x1408: 0x4054c620, 0x1409: 0x4054c820, 0x140a: 0x4054ca20, 0x140b: 0x4054cc20, + 0x140c: 0x4054ce20, 0x140d: 0x4054d020, 0x140e: 0x4054d220, 0x140f: 0x4054d420, + 0x1410: 0x4054d620, 0x1411: 0x4054d820, 0x1412: 0x4054da20, 0x1413: 0x4054dc20, + 0x1414: 0x4054de20, 0x1415: 0x4054e020, 0x1416: 0x4054e220, 0x1417: 0x4054e420, + 0x1418: 0x4054e620, 0x1419: 0x4054e820, 0x141a: 0x4054ea20, 0x141b: 0x4054ec20, + 0x141c: 0x4054ee20, 0x141d: 0x4054f020, 0x141e: 0x4054f220, 0x141f: 0x4054f420, + 0x1420: 0x4054f620, 0x1421: 0x4054f820, 0x1422: 0x4054fa20, 0x1423: 0x4054fc20, + 0x1424: 0x4054fe20, 0x1425: 0x40550020, 0x1426: 0x40550220, 0x1427: 0x40550420, + 0x1428: 0x40550620, 0x1429: 0x40550820, 0x142a: 0x40550a20, 0x142b: 0x40550c20, + 0x142c: 0x40550e20, 0x142d: 0x40551020, 0x142e: 0x40551220, 0x142f: 0x40551420, + 0x1430: 0x40551620, 0x1431: 0x40551820, 0x1432: 0x40551a20, 0x1433: 0x40551c20, + 0x1434: 0x40551e20, + // Block 0x51, offset 0x1440 + 0x1440: 0x40021e20, 0x1441: 0x40552020, 0x1442: 0x40552220, 0x1443: 0x40552420, + 0x1444: 0x40552620, 0x1445: 0x40552820, 0x1446: 0x40552a20, 0x1447: 0x40552c20, + 0x1448: 0x40552e20, 0x1449: 0x40553020, 0x144a: 0x40553220, 0x144b: 0x40553420, + 0x144c: 0x40553620, 0x144d: 0x40553820, 0x144e: 0x40553a20, 0x144f: 0x40553c20, + 0x1450: 0x40553e20, 0x1451: 0x40554020, 0x1452: 0x40554220, 0x1453: 0x40554420, + 0x1454: 0x40554620, 0x1455: 0x40554820, 0x1456: 0x40554a20, 0x1457: 0x40554c20, + 0x1458: 0x40554e20, 0x1459: 0x40555020, 0x145a: 0x40555220, 0x145b: 0x40555420, + 0x145c: 0x40555620, 0x145d: 0x40555820, 0x145e: 0x40555a20, 0x145f: 0x40555c20, + 0x1460: 0x40555e20, 0x1461: 0x40556020, 0x1462: 0x40556220, 0x1463: 0x40556420, + 0x1464: 0x40556620, 0x1465: 0x40556820, 0x1466: 0x40556a20, 0x1467: 0x40556c20, + 0x1468: 0x40556e20, 0x1469: 0x40557020, 0x146a: 0x40557220, 0x146b: 0x40557420, + 0x146c: 0x40557620, 0x146d: 0x40557820, 0x146e: 0x40557a20, 0x146f: 0x40557c20, + 0x1470: 0x40557e20, 0x1471: 0x40558020, 0x1472: 0x40558220, 0x1473: 0x40558420, + 0x1474: 0x40558620, 0x1475: 0x40558820, 0x1476: 0x40558a20, 0x1477: 0x40558c20, + 0x1478: 0x40558e20, 0x1479: 0x40559020, 0x147a: 0x40559220, 0x147b: 0x40559420, + 0x147c: 0x40559620, 0x147d: 0x40559820, 0x147e: 0x40559a20, 0x147f: 0x40559c20, + // Block 0x52, offset 0x1480 + 0x1480: 0x40559e20, 0x1481: 0x4055a020, 0x1482: 0x4055a220, 0x1483: 0x4055a420, + 0x1484: 0x4055a620, 0x1485: 0x4055a820, 0x1486: 0x4055aa20, 0x1487: 0x4055ac20, + 0x1488: 0x4055ae20, 0x1489: 0x4055b020, 0x148a: 0x4055b220, 0x148b: 0x4055b420, + 0x148c: 0x4055b620, 0x148d: 0x4055b820, 0x148e: 0x4055ba20, 0x148f: 0x4055bc20, + 0x1490: 0x4055be20, 0x1491: 0x4055c020, 0x1492: 0x4055c220, 0x1493: 0x4055c420, + 0x1494: 0x4055c620, 0x1495: 0x4055c820, 0x1496: 0x4055ca20, 0x1497: 0x4055cc20, + 0x1498: 0x4055ce20, 0x1499: 0x4055d020, 0x149a: 0x4055d220, 0x149b: 0x4055d420, + 0x149c: 0x4055d620, 0x149d: 0x4055d820, 0x149e: 0x4055da20, 0x149f: 0x4055dc20, + 0x14a0: 0x4055de20, 0x14a1: 0x4055e020, 0x14a2: 0x4055e220, 0x14a3: 0x4055e420, + 0x14a4: 0x4055e620, 0x14a5: 0x4055e820, 0x14a6: 0x4055ea20, 0x14a7: 0x4055ec20, + 0x14a8: 0x4055ee20, 0x14a9: 0x4055f020, 0x14aa: 0x4055f220, 0x14ab: 0x4055f420, + 0x14ac: 0x4055f620, 0x14ad: 0x4055f820, 0x14ae: 0x4055fa20, 0x14af: 0x4055fc20, + 0x14b0: 0x4055fe20, 0x14b1: 0x40560020, 0x14b2: 0x40560220, 0x14b3: 0x40560420, + 0x14b4: 0x40560620, 0x14b5: 0x40560820, 0x14b6: 0x40560a20, 0x14b7: 0x40560c20, + 0x14b8: 0x40560e20, 0x14b9: 0x40561020, 0x14ba: 0x40561220, 0x14bb: 0x40561420, + 0x14bc: 0x40561620, 0x14bd: 0x40561820, 0x14be: 0x40561a20, 0x14bf: 0x40561c20, + // Block 0x53, offset 0x14c0 + 0x14c0: 0x40561e20, 0x14c1: 0x40562020, 0x14c2: 0x40562220, 0x14c3: 0x40562420, + 0x14c4: 0x40562620, 0x14c5: 0x40562820, 0x14c6: 0x40562a20, 0x14c7: 0x40562c20, + 0x14c8: 0x40562e20, 0x14c9: 0x40563020, 0x14ca: 0x40563220, 0x14cb: 0x40563420, + 0x14cc: 0x40563620, 0x14cd: 0x40563820, 0x14ce: 0x40563a20, 0x14cf: 0x40563c20, + 0x14d0: 0x40563e20, 0x14d1: 0x40564020, 0x14d2: 0x40564220, 0x14d3: 0x40564420, + 0x14d4: 0x40564620, 0x14d5: 0x40564820, 0x14d6: 0x40564a20, 0x14d7: 0x40564c20, + 0x14d8: 0x40564e20, 0x14d9: 0x40565020, 0x14da: 0x40565220, 0x14db: 0x40565420, + 0x14dc: 0x40565620, 0x14dd: 0x40565820, 0x14de: 0x40565a20, 0x14df: 0x40565c20, + 0x14e0: 0x40565e20, 0x14e1: 0x40566020, 0x14e2: 0x40566220, 0x14e3: 0x40566420, + 0x14e4: 0x40566620, 0x14e5: 0x40566820, 0x14e6: 0x40566a20, 0x14e7: 0x40566c20, + 0x14e8: 0x40566e20, 0x14e9: 0x40567020, 0x14ea: 0x40567220, 0x14eb: 0x40567420, + 0x14ec: 0x40567620, 0x14ed: 0x40567820, 0x14ee: 0x40567a20, 0x14ef: 0x40567c20, + 0x14f0: 0x40567e20, 0x14f1: 0x40568020, 0x14f2: 0x40568220, 0x14f3: 0x40568420, + 0x14f4: 0x40568620, 0x14f5: 0x40568820, 0x14f6: 0x40568a20, 0x14f7: 0x40568c20, + 0x14f8: 0x40568e20, 0x14f9: 0x40569020, 0x14fa: 0x40569220, 0x14fb: 0x40569420, + 0x14fc: 0x40569620, 0x14fd: 0x40569820, 0x14fe: 0x40569a20, 0x14ff: 0x40569c20, + // Block 0x54, offset 0x1500 + 0x1500: 0x40569e20, 0x1501: 0x4056a020, 0x1502: 0x4056a220, 0x1503: 0x4056a420, + 0x1504: 0x4056a620, 0x1505: 0x4056a820, 0x1506: 0x4056aa20, 0x1507: 0x4056ac20, + 0x1508: 0x4056ae20, 0x1509: 0x4056b020, 0x150a: 0x4056b220, 0x150b: 0x4056b420, + 0x150c: 0x4056b620, 0x150d: 0x4056b820, 0x150e: 0x4056ba20, 0x150f: 0x4056bc20, + 0x1510: 0x4056be20, 0x1511: 0x4056c020, 0x1512: 0x4056c220, 0x1513: 0x4056c420, + 0x1514: 0x4056c620, 0x1515: 0x4056c820, 0x1516: 0x4056ca20, 0x1517: 0x4056cc20, + 0x1518: 0x4056ce20, 0x1519: 0x4056d020, 0x151a: 0x4056d220, 0x151b: 0x4056d420, + 0x151c: 0x4056d620, 0x151d: 0x4056d820, 0x151e: 0x4056da20, 0x151f: 0x4056dc20, + 0x1520: 0x4056de20, 0x1521: 0x4056e020, 0x1522: 0x4056e220, 0x1523: 0x4056e420, + 0x1524: 0x4056e620, 0x1525: 0x4056e820, 0x1526: 0x4056ea20, 0x1527: 0x4056ec20, + 0x1528: 0x4056ee20, 0x1529: 0x4056f020, 0x152a: 0x4056f220, 0x152b: 0x4056f420, + 0x152c: 0x4056f620, 0x152d: 0x4056f820, 0x152e: 0x4056fa20, 0x152f: 0x4056fc20, + 0x1530: 0x4056fe20, 0x1531: 0x40570020, 0x1532: 0x40570220, 0x1533: 0x40570420, + 0x1534: 0x40570620, 0x1535: 0x40570820, 0x1536: 0x40570a20, 0x1537: 0x40570c20, + 0x1538: 0x40570e20, 0x1539: 0x40571020, 0x153a: 0x40571220, 0x153b: 0x40571420, + 0x153c: 0x40571620, 0x153d: 0x40571820, 0x153e: 0x40571a20, 0x153f: 0x40571c20, + // Block 0x55, offset 0x1540 + 0x1540: 0x40571e20, 0x1541: 0x40572020, 0x1542: 0x40572220, 0x1543: 0x40572420, + 0x1544: 0x40572620, 0x1545: 0x40572820, 0x1546: 0x40572a20, 0x1547: 0x40572c20, + 0x1548: 0x40572e20, 0x1549: 0x40573020, 0x154a: 0x40573220, 0x154b: 0x40573420, + 0x154c: 0x40573620, 0x154d: 0x40573820, 0x154e: 0x40573a20, 0x154f: 0x40573c20, + 0x1550: 0x40573e20, 0x1551: 0x40574020, 0x1552: 0x40574220, 0x1553: 0x40574420, + 0x1554: 0x40574620, 0x1555: 0x40574820, 0x1556: 0x40574a20, 0x1557: 0x40574c20, + 0x1558: 0x40574e20, 0x1559: 0x40575020, 0x155a: 0x40575220, 0x155b: 0x40575420, + 0x155c: 0x40575620, 0x155d: 0x40575820, 0x155e: 0x40575a20, 0x155f: 0x40575c20, + 0x1560: 0x40575e20, 0x1561: 0x40576020, 0x1562: 0x40576220, 0x1563: 0x40576420, + 0x1564: 0x40576620, 0x1565: 0x40576820, 0x1566: 0x40576a20, 0x1567: 0x40576c20, + 0x1568: 0x40576e20, 0x1569: 0x40577020, 0x156a: 0x40577220, 0x156b: 0x40577420, + 0x156c: 0x40577620, 0x156d: 0x40577820, 0x156e: 0x40577a20, 0x156f: 0x40577c20, + 0x1570: 0x40577e20, 0x1571: 0x40578020, 0x1572: 0x40578220, 0x1573: 0x40578420, + 0x1574: 0x40578620, 0x1575: 0x40578820, 0x1576: 0x40578a20, 0x1577: 0x40578c20, + 0x1578: 0x40578e20, 0x1579: 0x40579020, 0x157a: 0x40579220, 0x157b: 0x40579420, + 0x157c: 0x40579620, 0x157d: 0x40579820, 0x157e: 0x40579a20, 0x157f: 0x40579c20, + // Block 0x56, offset 0x1580 + 0x1580: 0x40579e20, 0x1581: 0x4057a020, 0x1582: 0x4057a220, 0x1583: 0x4057a420, + 0x1584: 0x4057a620, 0x1585: 0x4057a820, 0x1586: 0x4057aa20, 0x1587: 0x4057ac20, + 0x1588: 0x4057ae20, 0x1589: 0x4057b020, 0x158a: 0x4057b220, 0x158b: 0x4057b420, + 0x158c: 0x4057b620, 0x158d: 0x4057b820, 0x158e: 0x4057ba20, 0x158f: 0x4057bc20, + 0x1590: 0x4057be20, 0x1591: 0x4057c020, 0x1592: 0x4057c220, 0x1593: 0x4057c420, + 0x1594: 0x4057c620, 0x1595: 0x4057c820, 0x1596: 0x4057ca20, 0x1597: 0x4057cc20, + 0x1598: 0x4057ce20, 0x1599: 0x4057d020, 0x159a: 0x4057d220, 0x159b: 0x4057d420, + 0x159c: 0x4057d620, 0x159d: 0x4057d820, 0x159e: 0x4057da20, 0x159f: 0x4057dc20, + 0x15a0: 0x4057de20, 0x15a1: 0x4057e020, 0x15a2: 0x4057e220, 0x15a3: 0x4057e420, + 0x15a4: 0x4057e620, 0x15a5: 0x4057e820, 0x15a6: 0x4057ea20, 0x15a7: 0x4057ec20, + 0x15a8: 0x4057ee20, 0x15a9: 0x4057f020, 0x15aa: 0x4057f220, 0x15ab: 0x4057f420, + 0x15ac: 0x4057f620, 0x15ad: 0x4057f820, 0x15ae: 0x4057fa20, 0x15af: 0x4057fc20, + 0x15b0: 0x4057fe20, 0x15b1: 0x40580020, 0x15b2: 0x40580220, 0x15b3: 0x40580420, + 0x15b4: 0x40580620, 0x15b5: 0x40580820, 0x15b6: 0x40580a20, 0x15b7: 0x40580c20, + 0x15b8: 0x40580e20, 0x15b9: 0x40581020, 0x15ba: 0x40581220, 0x15bb: 0x40581420, + 0x15bc: 0x40587a20, 0x15bd: 0x40581620, 0x15be: 0x40581a20, 0x15bf: 0x40581c20, + // Block 0x57, offset 0x15c0 + 0x15c0: 0x40581e20, 0x15c1: 0x40582020, 0x15c2: 0x40582220, 0x15c3: 0x40582420, + 0x15c4: 0x40582620, 0x15c5: 0x40582820, 0x15c6: 0x40582a20, 0x15c7: 0x40582c20, + 0x15c8: 0x40582e20, 0x15c9: 0x40583020, 0x15ca: 0x40583220, 0x15cb: 0x40583420, + 0x15cc: 0x40583620, 0x15cd: 0x40583820, 0x15ce: 0x40583c20, 0x15cf: 0x40583e20, + 0x15d0: 0x40584020, 0x15d1: 0x40584220, 0x15d2: 0x40584420, 0x15d3: 0x40584620, + 0x15d4: 0x40584820, 0x15d5: 0x40584a20, 0x15d6: 0x40585820, 0x15d7: 0x40585a20, + 0x15d8: 0x40585c20, 0x15d9: 0x40585e20, 0x15da: 0x40586020, 0x15db: 0x40586220, + 0x15dc: 0x40586420, 0x15dd: 0x40586620, 0x15de: 0x40586820, 0x15df: 0x40586a20, + 0x15e0: 0x40586c20, 0x15e1: 0x40586e20, 0x15e2: 0x40587020, 0x15e3: 0x40587220, + 0x15e4: 0x40587420, 0x15e5: 0x40587620, 0x15e6: 0x40587820, 0x15e7: 0x40587c20, + 0x15e8: 0x40587e20, 0x15e9: 0x40588020, 0x15ea: 0x40588220, 0x15eb: 0x40588420, + 0x15ec: 0x40588620, 0x15ed: 0x40588820, 0x15ee: 0x40588a20, 0x15ef: 0x40588c20, + 0x15f0: 0x40588e20, 0x15f1: 0x40589020, 0x15f2: 0x40589220, 0x15f3: 0x40589420, + 0x15f4: 0x40589620, 0x15f5: 0x40589820, 0x15f6: 0x40589a20, 0x15f7: 0x40589c20, + 0x15f8: 0x40589e20, 0x15f9: 0x4058a020, 0x15fa: 0x4058a220, 0x15fb: 0x4058a420, + 0x15fc: 0x4058a620, 0x15fd: 0x4058a820, 0x15fe: 0x4058aa20, 0x15ff: 0x4058ac20, + // Block 0x58, offset 0x1600 + 0x1600: 0x4058ae20, 0x1601: 0x4058b020, 0x1602: 0x4058b220, 0x1603: 0x4058b420, + 0x1604: 0x4058b620, 0x1605: 0x4058b820, 0x1606: 0x4058ba20, 0x1607: 0x4058bc20, + 0x1608: 0x4058be20, 0x1609: 0x4058c020, 0x160a: 0x4058c220, 0x160b: 0x4058c420, + 0x160c: 0x4058c620, 0x160d: 0x4058c820, 0x160e: 0x4058ca20, 0x160f: 0x4058cc20, + 0x1610: 0x4058ce20, 0x1611: 0x4058d020, 0x1612: 0x4058d220, 0x1613: 0x4058d420, + 0x1614: 0x4058d620, 0x1615: 0x4058d820, 0x1616: 0x4058da20, 0x1617: 0x4058dc20, + 0x1618: 0x4058de20, 0x1619: 0x4058e020, 0x161a: 0x4058e220, 0x161b: 0x4058e420, + 0x161c: 0x4058e620, 0x161d: 0x4058e820, 0x161e: 0x4058ea20, 0x161f: 0x4058ec20, + 0x1620: 0x4058ee20, 0x1621: 0x4058f020, 0x1622: 0x4058f220, 0x1623: 0x4058f420, + 0x1624: 0x4058f620, 0x1625: 0x4058f820, 0x1626: 0x4058fa20, 0x1627: 0x4058fc20, + 0x1628: 0x4058fe20, 0x1629: 0x40590020, 0x162a: 0x40590220, 0x162b: 0x40590420, + 0x162c: 0x40590620, 0x162d: 0x40590820, 0x162e: 0x40590a20, 0x162f: 0x40590c20, + 0x1630: 0x40590e20, 0x1631: 0x40591020, 0x1632: 0x40591220, 0x1633: 0x40591420, + 0x1634: 0x40591620, 0x1635: 0x40591820, 0x1636: 0x40591a20, 0x1637: 0x40591c20, + 0x1638: 0x40591e20, 0x1639: 0x40592020, 0x163a: 0x40592220, 0x163b: 0x40592420, + 0x163c: 0x40592620, 0x163d: 0x40592820, 0x163e: 0x40592a20, 0x163f: 0x40592c20, + // Block 0x59, offset 0x1640 + 0x1640: 0x40592e20, 0x1641: 0x40593020, 0x1642: 0x40593220, 0x1643: 0x40593420, + 0x1644: 0x40593620, 0x1645: 0x40593820, 0x1646: 0x40593a20, 0x1647: 0x40593c20, + 0x1648: 0x40593e20, 0x1649: 0x40594020, 0x164a: 0x40594220, 0x164b: 0x40594420, + 0x164c: 0x40594620, 0x164d: 0x40594820, 0x164e: 0x40594a20, 0x164f: 0x40594c20, + 0x1650: 0x40594e20, 0x1651: 0x40595020, 0x1652: 0x40595220, 0x1653: 0x40595420, + 0x1654: 0x40595620, 0x1655: 0x40595820, 0x1656: 0x40595a20, 0x1657: 0x40595c20, + 0x1658: 0x40595e20, 0x1659: 0x40596020, 0x165a: 0x40596220, 0x165b: 0x40596420, + 0x165c: 0x40596620, 0x165d: 0x40596820, 0x165e: 0x40596a20, 0x165f: 0x40596c20, + 0x1660: 0x40596e20, 0x1661: 0x40597020, 0x1662: 0x40597220, 0x1663: 0x40597420, + 0x1664: 0x40597620, 0x1665: 0x40597820, 0x1666: 0x40597a20, 0x1667: 0x40597c20, + 0x1668: 0x40597e20, 0x1669: 0x40598020, 0x166a: 0x40598220, 0x166b: 0x40598420, + 0x166c: 0x40598620, 0x166d: 0x40598820, 0x166e: 0x40598a20, 0x166f: 0x40598c20, + 0x1670: 0x40598e20, 0x1671: 0x40599020, 0x1672: 0x40599220, 0x1673: 0x40599420, + 0x1674: 0x40599620, 0x1675: 0x40599820, 0x1676: 0x40599a20, 0x1677: 0x40599c20, + 0x1678: 0x40599e20, 0x1679: 0x4059a020, 0x167a: 0x4059a220, 0x167b: 0x4059a420, + 0x167c: 0x4059a620, 0x167d: 0x4059a820, 0x167e: 0x4059aa20, 0x167f: 0x4059ac20, + // Block 0x5a, offset 0x1680 + 0x1680: 0x4059ae20, 0x1681: 0x4059b020, 0x1682: 0x4059b220, 0x1683: 0x4059b420, + 0x1684: 0x4059b620, 0x1685: 0x4059b820, 0x1686: 0x4059ba20, 0x1687: 0x4059bc20, + 0x1688: 0x4059be20, 0x1689: 0x4059c020, 0x168a: 0x4059c220, 0x168b: 0x4059c420, + 0x168c: 0x4059c620, 0x168d: 0x4059c820, 0x168e: 0x4059ca20, 0x168f: 0x4059cc20, + 0x1690: 0x4059ce20, 0x1691: 0x4059d020, 0x1692: 0x4059d220, 0x1693: 0x4059d420, + 0x1694: 0x4059d620, 0x1695: 0x4059d820, 0x1696: 0x4059da20, 0x1697: 0x4059dc20, + 0x1698: 0x4059de20, 0x1699: 0x4059e020, 0x169a: 0x4059e220, 0x169b: 0x4059e420, + 0x169c: 0x4059e620, 0x169d: 0x4059e820, 0x169e: 0x4059ea20, 0x169f: 0x4059ec20, + 0x16a0: 0x4059ee20, 0x16a1: 0x4059f020, 0x16a2: 0x4059f220, 0x16a3: 0x4059f420, + 0x16a4: 0x4059f620, 0x16a5: 0x4059f820, 0x16a6: 0x4059fa20, 0x16a7: 0x4059fc20, + 0x16a8: 0x4059fe20, 0x16a9: 0x405a0020, 0x16aa: 0x405a0220, 0x16ab: 0x405a0420, + 0x16ac: 0x405a0620, 0x16ad: 0x4005d420, 0x16ae: 0x4002f420, 0x16af: 0x40581820, + 0x16b0: 0x40583a20, 0x16b1: 0x40584c20, 0x16b2: 0x40584e20, 0x16b3: 0x40585020, + 0x16b4: 0x40585220, 0x16b5: 0x40585420, 0x16b6: 0x40585620, 0x16b7: 0x405a0820, + 0x16b8: 0x405a0a20, 0x16b9: 0x405a0c20, 0x16ba: 0x405a0e20, 0x16bb: 0x405a1020, + 0x16bc: 0x405a1220, 0x16bd: 0x405a1420, 0x16be: 0x405a1620, 0x16bf: 0x405a1820, + // Block 0x5b, offset 0x16c0 + 0x16c0: 0x00021284, 0x16c1: 0x405aa620, 0x16c2: 0x405aa820, 0x16c3: 0x405aaa20, + 0x16c4: 0x405aac20, 0x16c5: 0x405aae20, 0x16c6: 0x405ab020, 0x16c7: 0x405ab220, + 0x16c8: 0x405ab420, 0x16c9: 0x405ab620, 0x16ca: 0x405ab820, 0x16cb: 0x405aba20, + 0x16cc: 0x405abc20, 0x16cd: 0x405abe20, 0x16ce: 0x405ac020, 0x16cf: 0x405ac220, + 0x16d0: 0x405ac420, 0x16d1: 0x405ac620, 0x16d2: 0x405ac820, 0x16d3: 0x405aca20, + 0x16d4: 0x405acc20, 0x16d5: 0x405ace20, 0x16d6: 0x405ad020, 0x16d7: 0x405ad220, + 0x16d8: 0x405ad420, 0x16d9: 0x405ad620, 0x16da: 0x405ad820, 0x16db: 0x40040820, + 0x16dc: 0x40040a20, + 0x16e0: 0x405ada20, 0x16e1: 0xe000202d, 0x16e2: 0x405adc20, 0x16e3: 0x405b1420, + 0x16e4: 0xe0002030, 0x16e5: 0xe0002033, 0x16e6: 0x405ade20, 0x16e7: 0xe0002036, + 0x16e8: 0x405ae020, 0x16e9: 0xe000203c, 0x16ea: 0x405b1020, 0x16eb: 0x405b1220, + 0x16ec: 0xe000203f, 0x16ed: 0xe0002042, 0x16ee: 0xe0002045, 0x16ef: 0x405ae220, + 0x16f0: 0x405ae420, 0x16f1: 0x405ae620, 0x16f2: 0x405ae820, 0x16f3: 0xe0002048, + 0x16f4: 0xe000204b, 0x16f5: 0xe000204e, 0x16f6: 0xe0002051, 0x16f7: 0x405aea20, + 0x16f8: 0x405b1a20, 0x16f9: 0x405aec20, 0x16fa: 0x405aee20, 0x16fb: 0xe0002057, + 0x16fc: 0xe000205a, 0x16fd: 0xe000205d, 0x16fe: 0x405af020, 0x16ff: 0xe0002060, + // Block 0x5c, offset 0x1700 + 0x1700: 0xe0002063, 0x1701: 0x405af220, 0x1702: 0xe0002066, 0x1703: 0x405af420, + 0x1704: 0xe0002069, 0x1705: 0x405af620, 0x1706: 0xe000206c, 0x1707: 0x405af820, + 0x1708: 0x405afa20, 0x1709: 0x405afc20, 0x170a: 0x405afe20, 0x170b: 0xe0002075, + 0x170c: 0xe000207b, 0x170d: 0xe000207e, 0x170e: 0xe0002081, 0x170f: 0x405b0020, + 0x1710: 0xe0002084, 0x1711: 0xe0002087, 0x1712: 0x405b0220, 0x1713: 0xe000208a, + 0x1714: 0xe000208d, 0x1715: 0xe0002072, 0x1716: 0x405b0420, 0x1717: 0x405b0620, + 0x1718: 0xe0002090, 0x1719: 0xe0002093, 0x171a: 0x405b0820, 0x171b: 0xe000209b, + 0x171c: 0x405b0a20, 0x171d: 0xe000209e, 0x171e: 0x405b0c20, 0x171f: 0x405b0e20, + 0x1720: 0x405b1620, 0x1721: 0x405b1e20, 0x1722: 0x405b2020, 0x1723: 0x405b1820, + 0x1724: 0x405b1c20, 0x1725: 0x405b2220, 0x1726: 0x405b2420, 0x1727: 0xe00020a1, + 0x1728: 0xe00020a4, 0x1729: 0xe0002054, 0x172a: 0xe0002078, 0x172b: 0x4002b220, + 0x172c: 0x4002b420, 0x172d: 0x4002b620, 0x172e: 0xe000206f, 0x172f: 0xe0002096, + 0x1730: 0xe0002039, + // Block 0x5d, offset 0x1740 + 0x1740: 0x404c7620, 0x1741: 0x404c7820, 0x1742: 0x404c7a20, 0x1743: 0x404c7c20, + 0x1744: 0x404c7e20, 0x1745: 0x404c8020, 0x1746: 0x404c8220, 0x1747: 0x404c8420, + 0x1748: 0x404c8620, 0x1749: 0x404c8820, 0x174a: 0x404c8a20, 0x174b: 0x404c8c20, + 0x174c: 0x404c8e20, 0x174e: 0x404c9020, 0x174f: 0x404c9220, + 0x1750: 0x404c9420, 0x1751: 0x404c9620, 0x1752: 0x404c9820, 0x1753: 0x404c9a20, + 0x1754: 0x8209264e, + 0x1760: 0x404c9e20, 0x1761: 0x404ca020, 0x1762: 0x404ca220, 0x1763: 0x404ca420, + 0x1764: 0x404ca620, 0x1765: 0x404ca820, 0x1766: 0x404caa20, 0x1767: 0x404cac20, + 0x1768: 0x404cae20, 0x1769: 0x404cb020, 0x176a: 0x404cb220, 0x176b: 0x404cb420, + 0x176c: 0x404cb620, 0x176d: 0x404cb820, 0x176e: 0x404cba20, 0x176f: 0x404cbc20, + 0x1770: 0x404cbe20, 0x1771: 0x404cc020, 0x1772: 0x404cc220, 0x1773: 0x404cc420, + 0x1774: 0x82092663, 0x1775: 0x40031c20, 0x1776: 0x40031e20, + // Block 0x5e, offset 0x1780 + 0x1780: 0x404cc820, 0x1781: 0x404cca20, 0x1782: 0x404ccc20, 0x1783: 0x404cce20, + 0x1784: 0x404cd020, 0x1785: 0x404cd220, 0x1786: 0x404cd420, 0x1787: 0x404cd620, + 0x1788: 0x404cd820, 0x1789: 0x404cda20, 0x178a: 0x404cdc20, 0x178b: 0x404cde20, + 0x178c: 0x404ce020, 0x178d: 0x404ce220, 0x178e: 0x404ce420, 0x178f: 0x404ce620, + 0x1790: 0x404ce820, 0x1791: 0x404cea20, 0x1792: 0x404cec20, 0x1793: 0x404cee20, + 0x17a0: 0x404cf020, 0x17a1: 0x404cf220, 0x17a2: 0x404cf420, 0x17a3: 0x404cf620, + 0x17a4: 0x404cf820, 0x17a5: 0x404cfa20, 0x17a6: 0x404cfc20, 0x17a7: 0x404cfe20, + 0x17a8: 0x404d0020, 0x17a9: 0x404d0220, 0x17aa: 0x404d0420, 0x17ab: 0x404d0620, + 0x17ac: 0x404d0820, 0x17ae: 0x404d0a20, 0x17af: 0x404d0c20, + 0x17b0: 0x404d0e20, 0x17b2: 0x404d1020, 0x17b3: 0x404d1220, + // Block 0x5f, offset 0x17c0 + 0x17c0: 0x404fa420, 0x17c1: 0x404fa620, 0x17c2: 0x404fa820, 0x17c3: 0x404faa20, + 0x17c4: 0x404fac20, 0x17c5: 0x404fae20, 0x17c6: 0x404fb020, 0x17c7: 0x404fb220, + 0x17c8: 0x404fb420, 0x17c9: 0x404fb620, 0x17ca: 0x404fb820, 0x17cb: 0x404fba20, + 0x17cc: 0x404fbc20, 0x17cd: 0x404fbe20, 0x17ce: 0x404fc020, 0x17cf: 0x404fc220, + 0x17d0: 0x404fc420, 0x17d1: 0x404fc620, 0x17d2: 0x404fc820, 0x17d3: 0x404fca20, + 0x17d4: 0x404fcc20, 0x17d5: 0x404fce20, 0x17d6: 0x404fd020, 0x17d7: 0x404fd220, + 0x17d8: 0x404fd420, 0x17d9: 0x404fd620, 0x17da: 0x404fd820, 0x17db: 0x404fda20, + 0x17dc: 0x404fdc20, 0x17dd: 0x404fde20, 0x17de: 0x404fe020, 0x17df: 0x404fe220, + 0x17e0: 0x404fe420, 0x17e1: 0x404fe620, 0x17e2: 0x404fe820, 0x17e3: 0x404fec20, + 0x17e4: 0x404fee20, 0x17e5: 0x404ff020, 0x17e6: 0x404ff220, 0x17e7: 0x404ff420, + 0x17e8: 0x404ff620, 0x17e9: 0x404ff820, 0x17ea: 0x404ffa20, 0x17eb: 0x404ffc20, + 0x17ec: 0x404ffe20, 0x17ed: 0x40500020, 0x17ee: 0x40500220, 0x17ef: 0x40500420, + 0x17f0: 0x40500620, 0x17f1: 0x40500820, 0x17f2: 0x40500a20, 0x17f3: 0x40500c20, + 0x17f4: 0xa0000000, 0x17f5: 0xa0000000, 0x17f6: 0x40500e20, 0x17f7: 0x40501020, + 0x17f8: 0x40501220, 0x17f9: 0x40501420, 0x17fa: 0x40501620, 0x17fb: 0x40501820, + 0x17fc: 0x40501a20, 0x17fd: 0x40501c20, 0x17fe: 0x40501e20, 0x17ff: 0x40502020, + // Block 0x60, offset 0x1800 + 0x1800: 0x40502220, 0x1801: 0x40502420, 0x1802: 0x40502620, 0x1803: 0x40502820, + 0x1804: 0x40502a20, 0x1805: 0x40502c20, 0x1806: 0xa000f302, 0x1807: 0xa000f402, + 0x1808: 0xa0011402, 0x1809: 0xa0011502, 0x180a: 0xa0011602, 0x180b: 0xa0005f02, + 0x180c: 0xa0005f02, 0x180d: 0xa0005f02, 0x180e: 0xa0005f02, 0x180f: 0xa0005f02, + 0x1810: 0xa0005f02, 0x1811: 0xa0005f02, 0x1812: 0x82092817, 0x1813: 0xa0000000, + 0x1814: 0x40032620, 0x1815: 0x40032820, 0x1816: 0x4002ac20, 0x1817: 0x4027bc20, + 0x1818: 0x4005bc20, 0x1819: 0x4005be20, 0x181a: 0x4005c020, 0x181b: 0x4027f620, + 0x181c: 0x404fea20, 0x181d: 0xae605f02, + 0x1820: 0xe00001b5, 0x1821: 0xe0000249, 0x1822: 0xe0000361, 0x1823: 0xe000043b, + 0x1824: 0xe0000510, 0x1825: 0xe00005da, 0x1826: 0xe00006a5, 0x1827: 0xe000074d, + 0x1828: 0xe00007f9, 0x1829: 0xe000089e, + 0x1830: 0xe00001b8, 0x1831: 0xe000024c, 0x1832: 0xe0000364, 0x1833: 0xe000043e, + 0x1834: 0xe0000513, 0x1835: 0xe00005dd, 0x1836: 0xe00006a8, 0x1837: 0xe0000750, + 0x1838: 0xe00007fc, 0x1839: 0xe00008a1, + // Block 0x61, offset 0x1840 + 0x1840: 0x40056a20, 0x1841: 0x4002e620, 0x1842: 0x40025220, 0x1843: 0x4002f020, + 0x1844: 0x4002a620, 0x1845: 0x4002a820, 0x1846: 0x40022220, 0x1847: 0x40022420, + 0x1848: 0x40025420, 0x1849: 0x4002f220, 0x184a: 0xa0000000, 0x184b: 0xa0000000, + 0x184c: 0xa0000000, 0x184d: 0xa0000000, 0x184e: 0x40020c20, + 0x1850: 0xe00001c7, 0x1851: 0xe000025b, 0x1852: 0xe0000373, 0x1853: 0xe000044d, + 0x1854: 0xe0000522, 0x1855: 0xe00005ec, 0x1856: 0xe00006b7, 0x1857: 0xe000075f, + 0x1858: 0xe000080b, 0x1859: 0xe00008b0, + 0x1860: 0x40533820, 0x1861: 0x40533c20, 0x1862: 0x40534220, 0x1863: 0x40534e20, + 0x1864: 0x40535220, 0x1865: 0x40535820, 0x1866: 0x40535c20, 0x1867: 0x40536220, + 0x1868: 0x40536420, 0x1869: 0x40536620, 0x186a: 0x40537020, 0x186b: 0x40537420, + 0x186c: 0x40537a20, 0x186d: 0x40537e20, 0x186e: 0x40538820, 0x186f: 0x40538c20, + 0x1870: 0x40538e20, 0x1871: 0x40539020, 0x1872: 0x40539e20, 0x1873: 0x4053a420, + 0x1874: 0x4053aa20, 0x1875: 0x4053b420, 0x1876: 0x4053bc20, 0x1877: 0x4053c220, + 0x1878: 0x4053c620, 0x1879: 0x4053ca20, 0x187a: 0x4053d020, 0x187b: 0x4053da20, + 0x187c: 0x4053dc20, 0x187d: 0x4053e220, 0x187e: 0x4053ea20, 0x187f: 0x4053f020, + // Block 0x62, offset 0x1880 + 0x1880: 0x4053f220, 0x1881: 0x4053f420, 0x1882: 0x4053f620, 0x1883: 0x40533620, + 0x1884: 0x40533e20, 0x1885: 0x40534420, 0x1886: 0x40535020, 0x1887: 0x40535420, + 0x1888: 0x40535a20, 0x1889: 0x40535e20, 0x188a: 0x40536820, 0x188b: 0x40537220, + 0x188c: 0x40537620, 0x188d: 0x40537c20, 0x188e: 0x40538020, 0x188f: 0x40538a20, + 0x1890: 0x4053a020, 0x1891: 0x4053a620, 0x1892: 0x4053ac20, 0x1893: 0x4053b620, + 0x1894: 0x4053de20, 0x1895: 0x4053be20, 0x1896: 0x4053c820, 0x1897: 0x4053d220, + 0x1898: 0x4053e620, 0x1899: 0x4053ec20, 0x189a: 0x4053f820, 0x189b: 0x4053fa20, + 0x189c: 0x4053b020, 0x189d: 0x40534020, 0x189e: 0x40534620, 0x189f: 0x40534c20, + 0x18a0: 0x40536020, 0x18a1: 0x40535620, 0x18a2: 0x40536a20, 0x18a3: 0x4053d420, + 0x18a4: 0x40538220, 0x18a5: 0x40538620, 0x18a6: 0x40537820, 0x18a7: 0x40539220, + 0x18a8: 0x4053a220, 0x18a9: 0x4053a820, 0x18aa: 0x4053b820, 0x18ab: 0x4053cc20, + 0x18ac: 0x4053e820, 0x18ad: 0x4053ee20, 0x18ae: 0x4053e020, 0x18af: 0x4053e420, + 0x18b0: 0x4053fc20, 0x18b1: 0x4053ae20, 0x18b2: 0x4053c020, 0x18b3: 0x40534820, + 0x18b4: 0x4053d620, 0x18b5: 0x4053c420, 0x18b6: 0x4053ce20, 0x18b7: 0x4053ba20, + // Block 0x63, offset 0x18c0 + 0x18c0: 0x40532820, 0x18c1: 0x40532a20, 0x18c2: 0x40532c20, 0x18c3: 0x40532e20, + 0x18c4: 0x40533020, 0x18c5: 0x40533220, 0x18c6: 0x40533420, 0x18c7: 0x40533a20, + 0x18c8: 0x40534a20, 0x18c9: 0x4053d820, 0x18ca: 0x40536c20, 0x18cb: 0x4053b220, + 0x18cc: 0x4053fe20, 0x18cd: 0x40540220, 0x18ce: 0x40540420, 0x18cf: 0x40540820, + 0x18d0: 0x40540a20, 0x18d1: 0x40541020, 0x18d2: 0x40541420, 0x18d3: 0x40541620, + 0x18d4: 0x40541a20, 0x18d5: 0x40541e20, 0x18d6: 0x40542220, 0x18d7: 0x40542420, + 0x18d8: 0x40540c20, 0x18d9: 0x40542020, 0x18da: 0x40538420, 0x18db: 0x40536e20, + 0x18dc: 0x40539420, 0x18dd: 0x40539620, 0x18de: 0x40540020, 0x18df: 0x40540620, + 0x18e0: 0x40540e20, 0x18e1: 0x40541220, 0x18e2: 0x40539820, 0x18e3: 0x40541c20, + 0x18e4: 0x40539a20, 0x18e5: 0x40539c20, 0x18e6: 0x40542620, 0x18e7: 0x40542820, + 0x18e8: 0x40541820, 0x18e9: 0x82e42a16, 0x18ea: 0x40542a20, + 0x18f0: 0x405a1a20, 0x18f1: 0x405a1c20, 0x18f2: 0x405a1e20, 0x18f3: 0x405a2020, + 0x18f4: 0x405a2220, 0x18f5: 0x405a2420, 0x18f6: 0x405a2620, 0x18f7: 0x405a2820, + 0x18f8: 0x405a2a20, 0x18f9: 0x405a2c20, 0x18fa: 0x405a2e20, 0x18fb: 0x405a3020, + 0x18fc: 0x405a3220, 0x18fd: 0x405a3420, 0x18fe: 0x405a3620, 0x18ff: 0x405a3820, + // Block 0x64, offset 0x1900 + 0x1900: 0x405a3a20, 0x1901: 0x405a3c20, 0x1902: 0x405a3e20, 0x1903: 0x405a4020, + 0x1904: 0x405a4220, 0x1905: 0x405a4420, 0x1906: 0x405a4620, 0x1907: 0x405a4820, + 0x1908: 0x405a4a20, 0x1909: 0x405a4c20, 0x190a: 0x405a4e20, 0x190b: 0x405a5020, + 0x190c: 0x405a5220, 0x190d: 0x405a5420, 0x190e: 0x405a5620, 0x190f: 0x405a5820, + 0x1910: 0x405a5a20, 0x1911: 0x405a5c20, 0x1912: 0x405a5e20, 0x1913: 0x405a6020, + 0x1914: 0x405a6220, 0x1915: 0x405a6420, 0x1916: 0x405a6620, 0x1917: 0x405a6820, + 0x1918: 0x405a6a20, 0x1919: 0x405a6c20, 0x191a: 0x405a6e20, 0x191b: 0x405a7020, + 0x191c: 0x405a7220, 0x191d: 0x405a7420, 0x191e: 0x405a7620, 0x191f: 0x405a7820, + 0x1920: 0x405a7a20, 0x1921: 0x405a7c20, 0x1922: 0x405a7e20, 0x1923: 0x405a8020, + 0x1924: 0x405a8220, 0x1925: 0x405a8420, 0x1926: 0x405a8620, 0x1927: 0x405a8820, + 0x1928: 0x405a8a20, 0x1929: 0x405a8c20, 0x192a: 0x405a8e20, 0x192b: 0x405a9020, + 0x192c: 0x405a9220, 0x192d: 0x405a9420, 0x192e: 0x405a9620, 0x192f: 0x405a9820, + 0x1930: 0x405a9a20, 0x1931: 0x405a9c20, 0x1932: 0x405a9e20, 0x1933: 0x405aa020, + 0x1934: 0x405aa220, 0x1935: 0x405aa420, + // Block 0x65, offset 0x1940 + 0x1940: 0x404c1220, 0x1941: 0x404c1420, 0x1942: 0x404c1620, 0x1943: 0x404c1820, + 0x1944: 0x404c1a20, 0x1945: 0x404c1c20, 0x1946: 0x404c1e20, 0x1947: 0x404c2020, + 0x1948: 0x404c2220, 0x1949: 0x404c2420, 0x194a: 0x404c2620, 0x194b: 0x404c2820, + 0x194c: 0x404c2a20, 0x194d: 0x404c2c20, 0x194e: 0x404c2e20, 0x194f: 0x404c3020, + 0x1950: 0x404c3220, 0x1951: 0x404c3420, 0x1952: 0x404c3620, 0x1953: 0x404c3820, + 0x1954: 0x404c3a20, 0x1955: 0x404c3c20, 0x1956: 0x404c3e20, 0x1957: 0x404c4020, + 0x1958: 0x404c4220, 0x1959: 0x404c4420, 0x195a: 0x404c4620, 0x195b: 0x404c4820, + 0x195c: 0x404c4a20, + 0x1960: 0x404c4c20, 0x1961: 0x404c4e20, 0x1962: 0x404c5020, 0x1963: 0x404c5220, + 0x1964: 0x404c5420, 0x1965: 0x404c5620, 0x1966: 0x404c5820, 0x1967: 0x404c5a20, + 0x1968: 0x404c5c20, 0x1969: 0x404c5e20, 0x196a: 0x404c6020, 0x196b: 0x404c6220, + 0x1970: 0x404c6420, 0x1971: 0x404c6620, 0x1972: 0x404c6820, 0x1973: 0x404c6a20, + 0x1974: 0x404c6c20, 0x1975: 0x404c6e20, 0x1976: 0x404c7020, 0x1977: 0x404c7220, + 0x1978: 0x404c7420, 0x1979: 0xade11f02, 0x197a: 0xae612002, 0x197b: 0xadc12102, + // Block 0x66, offset 0x1980 + 0x1980: 0x4007a620, + 0x1984: 0x4002c220, 0x1985: 0x4002d220, 0x1986: 0xe000018e, 0x1987: 0xe000021f, + 0x1988: 0xe000033a, 0x1989: 0xe0000414, 0x198a: 0xe00004e9, 0x198b: 0xe00005b3, + 0x198c: 0xe000067e, 0x198d: 0xe0000726, 0x198e: 0xe00007d2, 0x198f: 0xe0000877, + 0x1990: 0x40503020, 0x1991: 0x40503220, 0x1992: 0x40503420, 0x1993: 0x40503620, + 0x1994: 0x40503820, 0x1995: 0x40503a20, 0x1996: 0x40503c20, 0x1997: 0x40503e20, + 0x1998: 0x40504020, 0x1999: 0x40504220, 0x199a: 0x40504420, 0x199b: 0x40504620, + 0x199c: 0x40504820, 0x199d: 0x40504a20, 0x199e: 0x40504c20, 0x199f: 0x40504e20, + 0x19a0: 0x40505020, 0x19a1: 0x40505220, 0x19a2: 0x40505420, 0x19a3: 0x40505620, + 0x19a4: 0x40505820, 0x19a5: 0x40505a20, 0x19a6: 0x40505c20, 0x19a7: 0x40505e20, + 0x19a8: 0x40506020, 0x19a9: 0x40506220, 0x19aa: 0x40506420, 0x19ab: 0x40506620, + 0x19ac: 0x40506820, 0x19ad: 0x40506a20, + 0x19b0: 0x40506c20, 0x19b1: 0x40506e20, 0x19b2: 0x40507020, 0x19b3: 0x40507220, + 0x19b4: 0x40507420, + // Block 0x67, offset 0x19c0 + 0x19c0: 0x40507620, 0x19c1: 0x40507820, 0x19c2: 0x40507a20, 0x19c3: 0x40507c20, + 0x19c4: 0x40507e20, 0x19c5: 0x40508020, 0x19c6: 0x40508220, 0x19c7: 0x40508420, + 0x19c8: 0x40508620, 0x19c9: 0x40508820, 0x19ca: 0x40508a20, 0x19cb: 0x40508c20, + 0x19cc: 0x40508e20, 0x19cd: 0x40509020, 0x19ce: 0x40509220, 0x19cf: 0x40509420, + 0x19d0: 0x40509620, 0x19d1: 0x40509820, 0x19d2: 0x40509a20, 0x19d3: 0x40509c20, + 0x19d4: 0x40509e20, 0x19d5: 0x4050a020, 0x19d6: 0x4050a220, 0x19d7: 0x4050a420, + 0x19d8: 0x4050a620, 0x19d9: 0x4050a820, 0x19da: 0x4050aa20, 0x19db: 0x4050ac20, + 0x19dc: 0x4050ae20, 0x19dd: 0x4050b020, 0x19de: 0x4050b220, 0x19df: 0x4050b420, + 0x19e0: 0x4050b620, 0x19e1: 0x4050b820, 0x19e2: 0x4050ba20, 0x19e3: 0x4050bc20, + 0x19e4: 0x4050be20, 0x19e5: 0x4050c020, 0x19e6: 0x4050c220, 0x19e7: 0x4050c420, + 0x19e8: 0x4050c620, 0x19e9: 0x4050c820, 0x19ea: 0x4050ca20, 0x19eb: 0x4050cc20, + 0x19f0: 0x4050ce20, 0x19f1: 0x4050d020, 0x19f2: 0x4050d220, 0x19f3: 0x4050d420, + 0x19f4: 0x4050d620, 0x19f5: 0x4050d820, 0x19f6: 0x4050da20, 0x19f7: 0x4050dc20, + 0x19f8: 0x4050de20, 0x19f9: 0x4050e020, 0x19fa: 0x4050e220, 0x19fb: 0x4050e420, + 0x19fc: 0x4050e620, 0x19fd: 0x4050e820, 0x19fe: 0x4050ea20, 0x19ff: 0x4050ec20, + // Block 0x68, offset 0x1a00 + 0x1a00: 0x4050ee20, 0x1a01: 0x4050f020, 0x1a02: 0x4050f220, 0x1a03: 0x4050f420, + 0x1a04: 0x4050f620, 0x1a05: 0x4050f820, 0x1a06: 0x4050fa20, 0x1a07: 0x4050fc20, + 0x1a08: 0x4050fe20, 0x1a09: 0x40510020, + 0x1a10: 0xe0000191, 0x1a11: 0xe0000222, 0x1a12: 0xe000033d, 0x1a13: 0xe0000417, + 0x1a14: 0xe00004ec, 0x1a15: 0xe00005b6, 0x1a16: 0xe0000681, 0x1a17: 0xe0000729, + 0x1a18: 0xe00007d5, 0x1a19: 0xe000087a, 0x1a1a: 0xe0000225, + 0x1a1e: 0xe0002022, 0x1a1f: 0xe0002025, + 0x1a20: 0x4007b220, 0x1a21: 0x4007b420, 0x1a22: 0x4007b620, 0x1a23: 0x4007b820, + 0x1a24: 0x4007ba20, 0x1a25: 0x4007bc20, 0x1a26: 0x4007be20, 0x1a27: 0x4007c020, + 0x1a28: 0x4007c220, 0x1a29: 0x4007c420, 0x1a2a: 0x4007c620, 0x1a2b: 0x4007c820, + 0x1a2c: 0x4007ca20, 0x1a2d: 0x4007cc20, 0x1a2e: 0x4007ce20, 0x1a2f: 0x4007d020, + 0x1a30: 0x4007d220, 0x1a31: 0x4007d420, 0x1a32: 0x4007d620, 0x1a33: 0x4007d820, + 0x1a34: 0x4007da20, 0x1a35: 0x4007dc20, 0x1a36: 0x4007de20, 0x1a37: 0x4007e020, + 0x1a38: 0x4007e220, 0x1a39: 0x4007e420, 0x1a3a: 0x4007e620, 0x1a3b: 0x4007e820, + 0x1a3c: 0x4007ea20, 0x1a3d: 0x4007ec20, 0x1a3e: 0x4007ee20, 0x1a3f: 0x4007f020, + // Block 0x69, offset 0x1a40 + 0x1a40: 0x404d1420, 0x1a41: 0x404d1620, 0x1a42: 0x404d1820, 0x1a43: 0x404d1a20, + 0x1a44: 0x404d1c20, 0x1a45: 0x404d1e20, 0x1a46: 0x404d2020, 0x1a47: 0x404d2220, + 0x1a48: 0x404d2420, 0x1a49: 0x404d2620, 0x1a4a: 0x404d2820, 0x1a4b: 0x404d2a20, + 0x1a4c: 0x404d2c20, 0x1a4d: 0x404d2e20, 0x1a4e: 0x404d3020, 0x1a4f: 0x404d3220, + 0x1a50: 0x404d3420, 0x1a51: 0x404d3620, 0x1a52: 0x404d3820, 0x1a53: 0x404d3a20, + 0x1a54: 0x404d3c20, 0x1a55: 0x404d3e20, 0x1a56: 0x404d4020, 0x1a57: 0x82e626a1, + 0x1a58: 0x82dc26a2, 0x1a59: 0x404d4620, 0x1a5a: 0x404d4820, 0x1a5b: 0x404d4a20, + 0x1a5e: 0x40036620, 0x1a5f: 0x40036820, + 0x1a60: 0x40510220, 0x1a61: 0x40510420, 0x1a62: 0x40510620, 0x1a63: 0x40510820, + 0x1a64: 0x40510a20, 0x1a65: 0x40510c20, 0x1a66: 0x40510e20, 0x1a67: 0x40511020, + 0x1a68: 0x40511220, 0x1a69: 0x40511420, 0x1a6a: 0x40511620, 0x1a6b: 0x40511820, + 0x1a6c: 0x40511a20, 0x1a6d: 0x40511c20, 0x1a6e: 0x40511e20, 0x1a6f: 0x40512020, + 0x1a70: 0x40512220, 0x1a71: 0x40512420, 0x1a72: 0x40512620, 0x1a73: 0x40512820, + 0x1a74: 0x40512a20, 0x1a75: 0x40512c20, 0x1a76: 0x40512e20, 0x1a77: 0x40513020, + 0x1a78: 0x40513220, 0x1a79: 0x40513420, 0x1a7a: 0x40513620, 0x1a7b: 0x40513820, + 0x1a7c: 0x40513a20, 0x1a7d: 0x40513c20, 0x1a7e: 0x40513e20, 0x1a7f: 0x40514020, + // Block 0x6a, offset 0x1a80 + 0x1a80: 0x40514220, 0x1a81: 0x40514420, 0x1a82: 0x40514620, 0x1a83: 0x40514820, + 0x1a84: 0x40514a20, 0x1a85: 0x40514c20, 0x1a86: 0x40514e20, 0x1a87: 0x40515020, + 0x1a88: 0x40515220, 0x1a89: 0x40515420, 0x1a8a: 0x40515620, 0x1a8b: 0x40515820, + 0x1a8c: 0x40515a20, 0x1a8d: 0x40516c20, 0x1a8e: 0x40516e20, 0x1a8f: 0x40517020, + 0x1a90: 0x40517220, 0x1a91: 0x40517420, 0x1a92: 0x40517620, 0x1a93: 0x40515c20, + 0x1a94: 0xe0002029, 0x1a95: 0x40516020, 0x1a96: 0x40516220, 0x1a97: 0x40516420, + 0x1a98: 0x00510e84, 0x1a99: 0x00510e84, 0x1a9a: 0x00513884, 0x1a9b: 0x00513884, + 0x1a9c: 0x40516620, 0x1a9d: 0x40516820, 0x1a9e: 0x40516a20, + 0x1aa0: 0x820928cd, 0x1aa1: 0x40517820, 0x1aa2: 0x40517c20, 0x1aa3: 0x40517e20, + 0x1aa4: 0x00517e84, 0x1aa5: 0x40518020, 0x1aa6: 0x40518220, 0x1aa7: 0x40518420, + 0x1aa8: 0x40518620, 0x1aa9: 0x40518820, 0x1aaa: 0x40518a20, 0x1aab: 0x40515e20, + 0x1aac: 0x40517a20, 0x1aad: 0x40519820, 0x1aae: 0x40518c20, 0x1aaf: 0x40518e20, + 0x1ab0: 0x40519220, 0x1ab1: 0x40519420, 0x1ab2: 0x40519620, 0x1ab3: 0x40519020, + 0x1ab4: 0xa000f302, 0x1ab5: 0xae611702, 0x1ab6: 0xae611802, 0x1ab7: 0xae611902, + 0x1ab8: 0xae611a02, 0x1ab9: 0xae611b02, 0x1aba: 0xae611c02, 0x1abb: 0xae611d02, + 0x1abc: 0xae611e02, 0x1abf: 0xadc00000, + // Block 0x6b, offset 0x1ac0 + 0x1ac0: 0xe0000194, 0x1ac1: 0xe0000228, 0x1ac2: 0xe0000340, 0x1ac3: 0xe000041a, + 0x1ac4: 0xe00004ef, 0x1ac5: 0xe00005b9, 0x1ac6: 0xe0000684, 0x1ac7: 0xe000072c, + 0x1ac8: 0xe00007d8, 0x1ac9: 0xe000087d, + 0x1ad0: 0xe0000197, 0x1ad1: 0xe000022b, 0x1ad2: 0xe0000343, 0x1ad3: 0xe000041d, + 0x1ad4: 0xe00004f2, 0x1ad5: 0xe00005bc, 0x1ad6: 0xe0000687, 0x1ad7: 0xe000072f, + 0x1ad8: 0xe00007db, 0x1ad9: 0xe0000880, + 0x1ae0: 0x4005c220, 0x1ae1: 0x4005c420, 0x1ae2: 0x4005c620, 0x1ae3: 0x4005c820, + 0x1ae4: 0x4005ca20, 0x1ae5: 0x4005cc20, 0x1ae6: 0x4005ce20, 0x1ae7: 0x4027be20, + 0x1ae8: 0x40032a20, 0x1ae9: 0x40032c20, 0x1aea: 0x40032e20, 0x1aeb: 0x40033020, + 0x1aec: 0x4005d020, 0x1aed: 0x4005d220, + // Block 0x6c, offset 0x1b00 + 0x1b00: 0xa000f202, 0x1b01: 0xa000f202, 0x1b02: 0xa000f302, 0x1b03: 0xa000f702, + 0x1b04: 0xa000f402, 0x1b05: 0xc3190821, 0x1b06: 0x40522820, 0x1b07: 0xc31b0821, + 0x1b08: 0x40522c20, 0x1b09: 0xc31d0821, 0x1b0a: 0x40523020, 0x1b0b: 0xc31f0821, + 0x1b0c: 0x40523420, 0x1b0d: 0xc3210821, 0x1b0e: 0x40523820, 0x1b0f: 0x40523a20, + 0x1b10: 0x40523c20, 0x1b11: 0xc3230821, 0x1b12: 0x40524020, 0x1b13: 0x40524220, + 0x1b14: 0x40524820, 0x1b15: 0x40524a20, 0x1b16: 0x40524c20, 0x1b17: 0x40524e20, + 0x1b18: 0x40525020, 0x1b19: 0x40525220, 0x1b1a: 0x40525420, 0x1b1b: 0x40525620, + 0x1b1c: 0x40525820, 0x1b1d: 0x40525a20, 0x1b1e: 0x40525c20, 0x1b1f: 0x40525e20, + 0x1b20: 0x40526020, 0x1b21: 0x40526220, 0x1b22: 0x40526420, 0x1b23: 0x40526820, + 0x1b24: 0x40526a20, 0x1b25: 0x40526c20, 0x1b26: 0x40526e20, 0x1b27: 0x40527020, + 0x1b28: 0x40527420, 0x1b29: 0x40527620, 0x1b2a: 0x40527820, 0x1b2b: 0x40527a20, + 0x1b2c: 0x40527c20, 0x1b2d: 0x40527e20, 0x1b2e: 0x40528020, 0x1b2f: 0x40528220, + 0x1b30: 0x40528620, 0x1b31: 0x40528820, 0x1b32: 0x40528a20, 0x1b33: 0x40529020, + 0x1b34: 0xa070f102, 0x1b35: 0x40529220, 0x1b36: 0x40529420, 0x1b37: 0x40529620, + 0x1b38: 0x40529820, 0x1b39: 0x40529a20, 0x1b3a: 0xc3250821, 0x1b3b: 0x40529e20, + 0x1b3c: 0xc3270821, 0x1b3d: 0x4052a220, 0x1b3e: 0xc3290821, 0x1b3f: 0xc32b0821, + // Block 0x6d, offset 0x1b40 + 0x1b40: 0x4052a820, 0x1b41: 0x4052aa20, 0x1b42: 0xc32d0821, 0x1b43: 0x4052ae20, + 0x1b44: 0x82092958, 0x1b45: 0x40524420, 0x1b46: 0x40524620, 0x1b47: 0x40526620, + 0x1b48: 0x40527220, 0x1b49: 0x40528420, 0x1b4a: 0x40528c20, 0x1b4b: 0x40528e20, + 0x1b50: 0xe00001be, 0x1b51: 0xe0000252, 0x1b52: 0xe000036a, 0x1b53: 0xe0000444, + 0x1b54: 0xe0000519, 0x1b55: 0xe00005e3, 0x1b56: 0xe00006ae, 0x1b57: 0xe0000756, + 0x1b58: 0xe0000802, 0x1b59: 0xe00008a7, 0x1b5a: 0x40036a20, 0x1b5b: 0x40036c20, + 0x1b5c: 0x4002f620, 0x1b5d: 0x4002ae20, 0x1b5e: 0x40033220, 0x1b5f: 0x40033420, + 0x1b60: 0x40022020, 0x1b61: 0x4007f220, 0x1b62: 0x4007f420, 0x1b63: 0x4007f620, + 0x1b64: 0x4007f820, 0x1b65: 0x4007fa20, 0x1b66: 0x4007fc20, 0x1b67: 0x4007fe20, + 0x1b68: 0x40080020, 0x1b69: 0x40080220, 0x1b6a: 0x40080420, 0x1b6b: 0xae600000, + 0x1b6c: 0xadc00000, 0x1b6d: 0xae600000, 0x1b6e: 0xae600000, 0x1b6f: 0xae600000, + 0x1b70: 0xae600000, 0x1b71: 0xae600000, 0x1b72: 0xae600000, 0x1b73: 0xae600000, + 0x1b74: 0x40080620, 0x1b75: 0x40080820, 0x1b76: 0x40080a20, 0x1b77: 0x40080c20, + 0x1b78: 0x40080e20, 0x1b79: 0x40081020, 0x1b7a: 0x40081220, 0x1b7b: 0x40081420, + 0x1b7c: 0x40081620, + // Block 0x6e, offset 0x1b80 + 0x1b80: 0xa000f302, 0x1b81: 0xa000f902, 0x1b82: 0xa000f402, 0x1b83: 0x4047d420, + 0x1b84: 0x4047d620, 0x1b85: 0x4047d820, 0x1b86: 0x4047da20, 0x1b87: 0x4047dc20, + 0x1b88: 0x4047de20, 0x1b89: 0x4047e020, 0x1b8a: 0x4047e220, 0x1b8b: 0x4047e620, + 0x1b8c: 0x4047e820, 0x1b8d: 0x4047ea20, 0x1b8e: 0x4047ec20, 0x1b8f: 0x4047ee20, + 0x1b90: 0x4047f020, 0x1b91: 0x4047f220, 0x1b92: 0x4047f420, 0x1b93: 0x4047f620, + 0x1b94: 0x4047f820, 0x1b95: 0x4047fa20, 0x1b96: 0x4047fc20, 0x1b97: 0x4047fe20, + 0x1b98: 0x40480020, 0x1b99: 0x40480420, 0x1b9a: 0x40480820, 0x1b9b: 0x40480c20, + 0x1b9c: 0x40481220, 0x1b9d: 0x40481820, 0x1b9e: 0x40481c20, 0x1b9f: 0x40481e20, + 0x1ba0: 0x40482220, 0x1ba1: 0x40480a20, 0x1ba2: 0x40480e20, 0x1ba3: 0x40481420, + 0x1ba4: 0x40482420, 0x1ba5: 0x40482620, 0x1ba6: 0x40482820, 0x1ba7: 0x40482a20, + 0x1ba8: 0x40482c20, 0x1ba9: 0x40482e20, 0x1baa: 0x82092418, 0x1bab: 0x82092419, + 0x1bac: 0x40480620, 0x1bad: 0x40481a20, 0x1bae: 0x4047e420, 0x1baf: 0x40482020, + 0x1bb0: 0xe00001c4, 0x1bb1: 0xe0000258, 0x1bb2: 0xe0000370, 0x1bb3: 0xe000044a, + 0x1bb4: 0xe000051f, 0x1bb5: 0xe00005e9, 0x1bb6: 0xe00006b4, 0x1bb7: 0xe000075c, + 0x1bb8: 0xe0000808, 0x1bb9: 0xe00008ad, 0x1bba: 0x0047d484, 0x1bbb: 0x40481020, + 0x1bbc: 0x40481620, 0x1bbd: 0x40480220, 0x1bbe: 0x0047e299, 0x1bbf: 0x00480499, + // Block 0x6f, offset 0x1bc0 + 0x1bc0: 0x404d4c20, 0x1bc1: 0x004d4c84, 0x1bc2: 0x404d4e20, 0x1bc3: 0x004d4e84, + 0x1bc4: 0x004d4e84, 0x1bc5: 0x404d5020, 0x1bc6: 0x004d5084, 0x1bc7: 0x404d5220, + 0x1bc8: 0x004d5284, 0x1bc9: 0x404d5420, 0x1bca: 0x004d5484, 0x1bcb: 0x404d5620, + 0x1bcc: 0x004d5684, 0x1bcd: 0x004d5684, 0x1bce: 0x404d5820, 0x1bcf: 0x004d5884, + 0x1bd0: 0x404d5a20, 0x1bd1: 0x404d5c20, 0x1bd2: 0x404d5e20, 0x1bd3: 0x004d5e84, + 0x1bd4: 0x404d6020, 0x1bd5: 0x004d6084, 0x1bd6: 0x404d6220, 0x1bd7: 0x004d6284, + 0x1bd8: 0x404d6420, 0x1bd9: 0x004d6484, 0x1bda: 0x004d6484, 0x1bdb: 0x404d6620, + 0x1bdc: 0x004d6684, 0x1bdd: 0x404d6820, 0x1bde: 0x404d6a20, 0x1bdf: 0x004d6a84, + 0x1be0: 0x404d6c20, 0x1be1: 0x404d6e20, 0x1be2: 0x404d7020, 0x1be3: 0x404d7220, + 0x1be4: 0x404d7420, 0x1be5: 0x404d7620, 0x1be6: 0xa070f102, 0x1be7: 0x404d7820, + 0x1be8: 0x004d7884, 0x1be9: 0x404d7a20, 0x1bea: 0x404d7c20, 0x1beb: 0x004d7c84, + 0x1bec: 0x404d7e20, 0x1bed: 0x004d7e84, 0x1bee: 0x404d8020, 0x1bef: 0x004d8084, + 0x1bf0: 0x404d8220, 0x1bf1: 0x404d8420, 0x1bf2: 0x820926c3, 0x1bf3: 0x820926c4, + 0x1bfc: 0x4005ec20, 0x1bfd: 0x4005ee20, 0x1bfe: 0x4005f020, 0x1bff: 0x4005f220, + // Block 0x70, offset 0x1c00 + 0x1c00: 0x404b3620, 0x1c01: 0x404b3820, 0x1c02: 0x404b3a20, 0x1c03: 0x404b3c20, + 0x1c04: 0x404b3e20, 0x1c05: 0x404b4020, 0x1c06: 0x404b4220, 0x1c07: 0x404b4420, + 0x1c08: 0x404b4620, 0x1c09: 0x404b4820, 0x1c0a: 0x404b5020, 0x1c0b: 0x404b5220, + 0x1c0c: 0x404b5420, 0x1c0d: 0x404b5620, 0x1c0e: 0x404b5820, 0x1c0f: 0x404b5a20, + 0x1c10: 0x404b5c20, 0x1c11: 0x404b5e20, 0x1c12: 0x404b6020, 0x1c13: 0x404b6220, + 0x1c14: 0x404b6420, 0x1c15: 0x404b6620, 0x1c16: 0x404b6820, 0x1c17: 0x404b6a20, + 0x1c18: 0x404b6c20, 0x1c19: 0x404b6e20, 0x1c1a: 0x404b7020, 0x1c1b: 0x404b7420, + 0x1c1c: 0x404b7820, 0x1c1d: 0x404b7a20, 0x1c1e: 0x404b7c20, 0x1c1f: 0x404b7e20, + 0x1c20: 0x404b8020, 0x1c21: 0x404b8220, 0x1c22: 0x404b8420, 0x1c23: 0x404b8620, + 0x1c24: 0x404b7220, 0x1c25: 0x404b7620, 0x1c26: 0x404b8a20, 0x1c27: 0x404b8c20, + 0x1c28: 0x404b8e20, 0x1c29: 0x404b9020, 0x1c2a: 0x404b9220, 0x1c2b: 0x404b9420, + 0x1c2c: 0x404b9620, 0x1c2d: 0x404b9820, 0x1c2e: 0x404b9a20, 0x1c2f: 0x404b9c20, + 0x1c30: 0x404b9e20, 0x1c31: 0x404ba020, 0x1c32: 0x404ba220, 0x1c33: 0x404ba420, + 0x1c34: 0x404ba620, 0x1c35: 0x404ba820, 0x1c36: 0x404b8820, 0x1c37: 0xa070f102, + 0x1c3b: 0x40031420, + 0x1c3c: 0x40031620, 0x1c3d: 0x4005ae20, 0x1c3e: 0x4005b020, 0x1c3f: 0x4005b220, + // Block 0x71, offset 0x1c40 + 0x1c40: 0xe00001a6, 0x1c41: 0xe000023a, 0x1c42: 0xe0000352, 0x1c43: 0xe000042c, + 0x1c44: 0xe0000501, 0x1c45: 0xe00005cb, 0x1c46: 0xe0000696, 0x1c47: 0xe000073e, + 0x1c48: 0xe00007ea, 0x1c49: 0xe000088f, + 0x1c4d: 0x404b4a20, 0x1c4e: 0x404b4c20, 0x1c4f: 0x404b4e20, + 0x1c50: 0xe00001ca, 0x1c51: 0xe000025e, 0x1c52: 0xe0000376, 0x1c53: 0xe0000450, + 0x1c54: 0xe0000525, 0x1c55: 0xe00005ef, 0x1c56: 0xe00006ba, 0x1c57: 0xe0000762, + 0x1c58: 0xe000080e, 0x1c59: 0xe00008b3, 0x1c5a: 0x40542e20, 0x1c5b: 0x40543020, + 0x1c5c: 0x40543220, 0x1c5d: 0x40543420, 0x1c5e: 0x40543620, 0x1c5f: 0x40543820, + 0x1c60: 0x40543a20, 0x1c61: 0x40543c20, 0x1c62: 0x40543e20, 0x1c63: 0x40544020, + 0x1c64: 0x40544220, 0x1c65: 0x40544420, 0x1c66: 0x40544620, 0x1c67: 0x40544820, + 0x1c68: 0x40544a20, 0x1c69: 0x40544c20, 0x1c6a: 0x40544e20, 0x1c6b: 0x40545020, + 0x1c6c: 0x40545220, 0x1c6d: 0x40545420, 0x1c6e: 0x40545620, 0x1c6f: 0x40545820, + 0x1c70: 0x40545a20, 0x1c71: 0x40545c20, 0x1c72: 0x40545e20, 0x1c73: 0x40546020, + 0x1c74: 0x40546220, 0x1c75: 0x40546420, 0x1c76: 0x40546620, 0x1c77: 0x40546820, + 0x1c78: 0x40546a20, 0x1c79: 0x40546c20, 0x1c7a: 0x40546e20, 0x1c7b: 0x40547020, + 0x1c7c: 0x40547220, 0x1c7d: 0x40547420, 0x1c7e: 0x40035820, 0x1c7f: 0x40035a20, + // Block 0x72, offset 0x1c80 + 0x1c80: 0x4005d620, 0x1c81: 0x4005d820, 0x1c82: 0x4005da20, 0x1c83: 0x4005dc20, + 0x1c84: 0x4005de20, 0x1c85: 0x4005e020, 0x1c86: 0x4005e220, 0x1c87: 0x4005e420, + 0x1c90: 0xae600000, 0x1c91: 0xae600000, 0x1c92: 0xae600000, 0x1c93: 0xa0000000, + 0x1c94: 0xa0100000, 0x1c95: 0xadc00000, 0x1c96: 0xadc00000, 0x1c97: 0xadc00000, + 0x1c98: 0xadc00000, 0x1c99: 0xadc00000, 0x1c9a: 0xae600000, 0x1c9b: 0xae600000, + 0x1c9c: 0xadc00000, 0x1c9d: 0xadc00000, 0x1c9e: 0xadc00000, 0x1c9f: 0xadc00000, + 0x1ca0: 0xae600000, 0x1ca1: 0xa0000000, 0x1ca2: 0xa0100000, 0x1ca3: 0xa0100000, + 0x1ca4: 0xa0100000, 0x1ca5: 0xa0100000, 0x1ca6: 0xa0100000, 0x1ca7: 0xa0100000, + 0x1ca8: 0xa0100000, 0x1ca9: 0x40404020, 0x1caa: 0x00404084, 0x1cab: 0x00404084, + 0x1cac: 0x00404084, 0x1cad: 0xadc0f302, 0x1cae: 0x00404084, 0x1caf: 0x00404084, + 0x1cb0: 0x00404084, 0x1cb1: 0x00404084, 0x1cb2: 0xa000f402, 0x1cb3: 0xa000f402, + 0x1cb4: 0xae600000, 0x1cb5: 0x40404220, 0x1cb6: 0x40404420, + // Block 0x73, offset 0x1cc0 + 0x1cc0: 0x402be620, 0x1cc1: 0x402bec20, 0x1cc2: 0x402bee20, 0x1cc3: 0x402c2420, + 0x1cc4: 0x402c4220, 0x1cc5: 0x402c6a20, 0x1cc6: 0x402c6c20, 0x1cc7: 0x402ca020, + 0x1cc8: 0x402ce620, 0x1cc9: 0x402db420, 0x1cca: 0x402ddc20, 0x1ccb: 0x402e0620, + 0x1ccc: 0x402e3420, 0x1ccd: 0x402e8a20, 0x1cce: 0x402eb020, 0x1ccf: 0x402eea20, + 0x1cd0: 0x402f0220, 0x1cd1: 0x402eec20, 0x1cd2: 0x402f0420, 0x1cd3: 0x402ef820, + 0x1cd4: 0x402ef620, 0x1cd5: 0x402f2a20, 0x1cd6: 0x402f0a20, 0x1cd7: 0x402f0c20, + 0x1cd8: 0x402f3420, 0x1cd9: 0x402f8c20, 0x1cda: 0x402fa020, 0x1cdb: 0x40303420, + 0x1cdc: 0x40307420, 0x1cdd: 0x40307620, 0x1cde: 0x40307820, 0x1cdf: 0x4030aa20, + 0x1ce0: 0x4030c620, 0x1ce1: 0x4030ea20, 0x1ce2: 0x40313220, 0x1ce3: 0x40316c20, + 0x1ce4: 0x4031f420, 0x1ce5: 0x4031f620, 0x1ce6: 0x40325820, 0x1ce7: 0x40327420, + 0x1ce8: 0x40328020, 0x1ce9: 0x40328a20, 0x1cea: 0x4032a020, 0x1ceb: 0x40348c20, + 0x1cec: 0x002bde9d, 0x1ced: 0xe00009e1, 0x1cee: 0x002c0a9d, 0x1cef: 0x402c2220, + 0x1cf0: 0x002c629d, 0x1cf1: 0x002c989d, 0x1cf2: 0x002cae9d, 0x1cf3: 0x002d229d, + 0x1cf4: 0x002d689d, 0x1cf5: 0x002d9a9d, 0x1cf6: 0x002dcc9d, 0x1cf7: 0x002dfe9d, + 0x1cf8: 0x002e229d, 0x1cf9: 0x002e829d, 0x1cfa: 0x002e9e9d, 0x1cfb: 0x402eae20, + 0x1cfc: 0x002ee29d, 0x1cfd: 0x002f229d, 0x1cfe: 0x002f2c9d, 0x1cff: 0x002f7a9d, + // Block 0x74, offset 0x1d00 + 0x1d00: 0x00302c9d, 0x1d01: 0x00306c9d, 0x1d02: 0x0030e29d, 0x1d03: 0x002bde94, + 0x1d04: 0x002bf094, 0x1d05: 0x002bf894, 0x1d06: 0x002bee94, 0x1d07: 0x002c0a94, + 0x1d08: 0x002c6294, 0x1d09: 0x002c9894, 0x1d0a: 0x002cb894, 0x1d0b: 0x002cc294, + 0x1d0c: 0x002ce694, 0x1d0d: 0x002d2294, 0x1d0e: 0x002db494, 0x1d0f: 0x002dfe94, + 0x1d10: 0x002e8294, 0x1d11: 0x002eda94, 0x1d12: 0x002ee294, 0x1d13: 0x002efa94, + 0x1d14: 0x002f0a94, 0x1d15: 0x002f0c94, 0x1d16: 0x002f2c94, 0x1d17: 0x00302c94, + 0x1d18: 0x00306c94, 0x1d19: 0x00307694, 0x1d1a: 0x0030a094, 0x1d1b: 0x0030be94, + 0x1d1c: 0x0031f694, 0x1d1d: 0x00325494, 0x1d1e: 0x00325694, 0x1d1f: 0x00325a94, + 0x1d20: 0x00329a94, 0x1d21: 0x00329c94, 0x1d22: 0x002d9a95, 0x1d23: 0x002f7a95, + 0x1d24: 0x00306c95, 0x1d25: 0x0030be95, 0x1d26: 0x00325495, 0x1d27: 0x00325695, + 0x1d28: 0x00328895, 0x1d29: 0x00329a95, 0x1d2a: 0x00329c95, 0x1d2b: 0x40307a20, + 0x1d2c: 0x402c2620, 0x1d2d: 0x402c6e20, 0x1d2e: 0x402d1220, 0x1d2f: 0x402e8c20, + 0x1d30: 0x402eb220, 0x1d31: 0x402f3a20, 0x1d32: 0x402f9620, 0x1d33: 0x402fce20, + 0x1d34: 0x402ff020, 0x1d35: 0x40304020, 0x1d36: 0x40313c20, 0x1d37: 0x402d5420, + 0x1d38: 0x0034ba94, 0x1d39: 0xe0000bd9, 0x1d3a: 0xe0000fc1, 0x1d3b: 0x402dbe20, + 0x1d3c: 0x402dca20, 0x1d3d: 0x402f3620, 0x1d3e: 0x40308420, 0x1d3f: 0x4030bc20, + // Block 0x75, offset 0x1d40 + 0x1d40: 0x402c2820, 0x1d41: 0x402c7020, 0x1d42: 0x402d1420, 0x1d43: 0x402d4220, + 0x1d44: 0x402e0820, 0x1d45: 0x402e5220, 0x1d46: 0x402e8e20, 0x1d47: 0x402ec620, + 0x1d48: 0x402f3c20, 0x1d49: 0x402faa20, 0x1d4a: 0x402ff220, 0x1d4b: 0x40301020, + 0x1d4c: 0x4030ca20, 0x1d4d: 0x4030fe20, 0x1d4e: 0x40313e20, 0x1d4f: 0x402bea20, + 0x1d50: 0x402c0020, 0x1d51: 0x402c8220, 0x1d52: 0x402caa20, 0x1d53: 0x402cca20, + 0x1d54: 0x402ce420, 0x1d55: 0x402cc020, 0x1d56: 0x402dc020, 0x1d57: 0x402f0620, + 0x1d58: 0x40302220, 0x1d59: 0x40308620, 0x1d5a: 0x40317620, 0x1d5b: 0x002c0294, + 0x1d5c: 0x002c3a94, 0x1d5d: 0x002c5694, 0x1d5e: 0xf0001414, 0x1d5f: 0x002cdc94, + 0x1d60: 0x002d0894, 0x1d61: 0x002dee94, 0x1d62: 0x002d2a94, 0x1d63: 0x00308894, + 0x1d64: 0x002db694, 0x1d65: 0x002dc294, 0x1d66: 0x002daa94, 0x1d67: 0x002dbe94, + 0x1d68: 0x002de694, 0x1d69: 0x002e5494, 0x1d6a: 0x002e5294, 0x1d6b: 0x002e2a94, + 0x1d6c: 0x002e9094, 0x1d6d: 0x0030ac94, 0x1d6e: 0x002eb494, 0x1d6f: 0x002ec894, + 0x1d70: 0x002ea694, 0x1d71: 0x002f1094, 0x1d72: 0x002f4c94, 0x1d73: 0x002ff494, + 0x1d74: 0x00300894, 0x1d75: 0x00304294, 0x1d76: 0x00307c94, 0x1d77: 0x0030b494, + 0x1d78: 0x00307494, 0x1d79: 0x0030cc94, 0x1d7a: 0x0030da94, 0x1d7b: 0x00312a94, + 0x1d7c: 0x00314894, 0x1d7d: 0x00315094, 0x1d7e: 0x00316494, 0x1d7f: 0x00326a94, + // Block 0x76, offset 0x1d80 + 0x1d80: 0xae605f02, 0x1d81: 0xae605f02, 0x1d82: 0xadc06002, 0x1d83: 0xae605f02, + 0x1d84: 0xae605f02, 0x1d85: 0xae605f02, 0x1d86: 0xae605f02, 0x1d87: 0xae605f02, + 0x1d88: 0xae605f02, 0x1d89: 0xae605f02, 0x1d8a: 0x84dc17bd, 0x1d8b: 0xae605f02, + 0x1d8c: 0xae605f02, 0x1d8d: 0xaea05f02, 0x1d8e: 0xad605f02, 0x1d8f: 0xadc06002, + 0x1d90: 0xaca06002, 0x1d91: 0xae605f02, 0x1d92: 0x84e618d1, 0x1d93: 0xe00009b4, + 0x1d94: 0xe00009d9, 0x1d95: 0xe00009f9, 0x1d96: 0xe0000a08, 0x1d97: 0xe0000a50, + 0x1d98: 0xe0000ab6, 0x1d99: 0xe0000ab0, 0x1d9a: 0x84e61691, 0x1d9b: 0x84e61699, + 0x1d9c: 0x84e616ff, 0x1d9d: 0x84e61711, 0x1d9e: 0x84e61715, 0x1d9f: 0x84e61745, + 0x1da0: 0x84e6174f, 0x1da1: 0x84e61753, 0x1da2: 0x84e617c1, 0x1da3: 0x84e617c5, + 0x1da4: 0x84e617f3, 0x1da5: 0xe0000f67, 0x1da6: 0x84e61895, + 0x1dbc: 0xae906002, 0x1dbd: 0xadc06002, 0x1dbe: 0xae605f02, 0x1dbf: 0xadc06002, + // Block 0x77, offset 0x1dc0 + 0x1dc0: 0xe00009b1, 0x1dc1: 0xe00009ae, 0x1dc2: 0xe0000a22, 0x1dc3: 0xe0000a1f, + 0x1dc4: 0xe0000a28, 0x1dc5: 0xe0000a25, 0x1dc6: 0xe0000a2e, 0x1dc7: 0xe0000a2b, + 0x1dc8: 0xe0000a5a, 0x1dc9: 0xe0000a56, 0x1dca: 0xe0000a8c, 0x1dcb: 0xe0000a89, + 0x1dcc: 0xe0000a98, 0x1dcd: 0xe0000a95, 0x1dce: 0xe0000aa4, 0x1dcf: 0xe0000aa1, + 0x1dd0: 0xe0000a92, 0x1dd1: 0xe0000a8f, 0x1dd2: 0xe0000a9e, 0x1dd3: 0xe0000a9b, + 0x1dd4: 0xe0000b55, 0x1dd5: 0xe0000b51, 0x1dd6: 0xe0000b4d, 0x1dd7: 0xe0000b49, + 0x1dd8: 0xe0000b7c, 0x1dd9: 0xe0000b79, 0x1dda: 0xe0000b82, 0x1ddb: 0xe0000b7f, + 0x1ddc: 0xe0000b39, 0x1ddd: 0xe0000b35, 0x1dde: 0xe0000b8c, 0x1ddf: 0xe0000b89, + 0x1de0: 0xe0000bd0, 0x1de1: 0xe0000bcd, 0x1de2: 0xe0000c00, 0x1de3: 0xe0000bfd, + 0x1de4: 0xe0000c0c, 0x1de5: 0xe0000c09, 0x1de6: 0xe0000bfa, 0x1de7: 0xe0000bf7, + 0x1de8: 0xe0000c06, 0x1de9: 0xe0000c03, 0x1dea: 0xe0000c12, 0x1deb: 0xe0000c0f, + 0x1dec: 0xe0000c7e, 0x1ded: 0xe0000c7b, 0x1dee: 0xe0000c4a, 0x1def: 0xe0000c46, + 0x1df0: 0xe0000c93, 0x1df1: 0xe0000c90, 0x1df2: 0xe0000cab, 0x1df3: 0xe0000ca8, + 0x1df4: 0xe0000cb1, 0x1df5: 0xe0000cae, 0x1df6: 0xe0000cde, 0x1df7: 0xe0000cdb, + 0x1df8: 0xe0000ce5, 0x1df9: 0xe0000ce1, 0x1dfa: 0xe0000cf2, 0x1dfb: 0xe0000cef, + 0x1dfc: 0xe0000cec, 0x1dfd: 0xe0000ce9, 0x1dfe: 0xe0000d1e, 0x1dff: 0xe0000d1b, + // Block 0x78, offset 0x1e00 + 0x1e00: 0xe0000d24, 0x1e01: 0xe0000d21, 0x1e02: 0xe0000d2a, 0x1e03: 0xe0000d27, + 0x1e04: 0xe0000d69, 0x1e05: 0xe0000d66, 0x1e06: 0xe0000d7b, 0x1e07: 0xe0000d78, + 0x1e08: 0xe0000d87, 0x1e09: 0xe0000d84, 0x1e0a: 0xe0000d81, 0x1e0b: 0xe0000d7e, + 0x1e0c: 0xe0000ded, 0x1e0d: 0xe0000de9, 0x1e0e: 0xe0000df5, 0x1e0f: 0xe0000df1, + 0x1e10: 0xe0000e3d, 0x1e11: 0xe0000e39, 0x1e12: 0xe0000e35, 0x1e13: 0xe0000e31, + 0x1e14: 0xe0000ea7, 0x1e15: 0xe0000ea4, 0x1e16: 0xe0000ead, 0x1e17: 0xe0000eaa, + 0x1e18: 0xe0000ed6, 0x1e19: 0xe0000ed3, 0x1e1a: 0xe0000ef4, 0x1e1b: 0xe0000ef1, + 0x1e1c: 0xe0000efb, 0x1e1d: 0xe0000ef7, 0x1e1e: 0xe0000f02, 0x1e1f: 0xe0000eff, + 0x1e20: 0xe0000f41, 0x1e21: 0xe0000f3e, 0x1e22: 0xe0000f53, 0x1e23: 0xe0000f50, + 0x1e24: 0xe0000f26, 0x1e25: 0xe0000f22, 0x1e26: 0xe0000f3a, 0x1e27: 0xe0000f36, + 0x1e28: 0xe0000f5a, 0x1e29: 0xe0000f56, 0x1e2a: 0xe0000f93, 0x1e2b: 0xe0000f90, + 0x1e2c: 0xe0000f9f, 0x1e2d: 0xe0000f9c, 0x1e2e: 0xe0000fb1, 0x1e2f: 0xe0000fae, + 0x1e30: 0xe0000fab, 0x1e31: 0xe0000fa8, 0x1e32: 0xe0001093, 0x1e33: 0xe0001090, + 0x1e34: 0xe000109f, 0x1e35: 0xe000109c, 0x1e36: 0xe0001099, 0x1e37: 0xe0001096, + 0x1e38: 0xe0001032, 0x1e39: 0xe000102e, 0x1e3a: 0xe0001046, 0x1e3b: 0xe0001042, + 0x1e3c: 0xe00010a9, 0x1e3d: 0xe00010a6, 0x1e3e: 0xe00010af, 0x1e3f: 0xe00010ac, + // Block 0x79, offset 0x1e40 + 0x1e40: 0xe00010d2, 0x1e41: 0xe00010cf, 0x1e42: 0xe00010cc, 0x1e43: 0xe00010c9, + 0x1e44: 0xe00010e1, 0x1e45: 0xe00010de, 0x1e46: 0xe00010e7, 0x1e47: 0xe00010e4, + 0x1e48: 0xe00010ed, 0x1e49: 0xe00010ea, 0x1e4a: 0xe00010fc, 0x1e4b: 0xe00010f9, + 0x1e4c: 0xe00010f6, 0x1e4d: 0xe00010f3, 0x1e4e: 0xe0001123, 0x1e4f: 0xe0001120, + 0x1e50: 0xe0001141, 0x1e51: 0xe000113e, 0x1e52: 0xe0001153, 0x1e53: 0xe0001150, + 0x1e54: 0xe0001159, 0x1e55: 0xe0001156, 0x1e56: 0xe0000c15, 0x1e57: 0xe0000f8d, + 0x1e58: 0xe00010db, 0x1e59: 0xe0001111, 0x1e5a: 0xf0000404, 0x1e5b: 0xe0000f70, + 0x1e5c: 0x40300420, 0x1e5d: 0x40300620, 0x1e5e: 0xe0000f7f, 0x1e5f: 0x402c9620, + 0x1e60: 0xe000099b, 0x1e61: 0xe0000998, 0x1e62: 0xe0000989, 0x1e63: 0xe0000986, + 0x1e64: 0xe0000928, 0x1e65: 0xe0000924, 0x1e66: 0xe0000930, 0x1e67: 0xe000092c, + 0x1e68: 0xe0000940, 0x1e69: 0xe000093c, 0x1e6a: 0xe0000938, 0x1e6b: 0xe0000934, + 0x1e6c: 0xe00009aa, 0x1e6d: 0xe00009a6, 0x1e6e: 0xe0000902, 0x1e6f: 0xe00008fe, + 0x1e70: 0xe000090a, 0x1e71: 0xe0000906, 0x1e72: 0xe000091a, 0x1e73: 0xe0000916, + 0x1e74: 0xe0000912, 0x1e75: 0xe000090e, 0x1e76: 0xe00009a2, 0x1e77: 0xe000099e, + 0x1e78: 0xe0000b6e, 0x1e79: 0xe0000b6b, 0x1e7a: 0xe0000b5c, 0x1e7b: 0xe0000b59, + 0x1e7c: 0xe0000b26, 0x1e7d: 0xe0000b23, 0x1e7e: 0xe0000afb, 0x1e7f: 0xe0000af7, + // Block 0x7a, offset 0x1e80 + 0x1e80: 0xe0000b03, 0x1e81: 0xe0000aff, 0x1e82: 0xe0000b13, 0x1e83: 0xe0000b0f, + 0x1e84: 0xe0000b0b, 0x1e85: 0xe0000b07, 0x1e86: 0xe0000b75, 0x1e87: 0xe0000b71, + 0x1e88: 0xe0000c66, 0x1e89: 0xe0000c63, 0x1e8a: 0xe0000c78, 0x1e8b: 0xe0000c75, + 0x1e8c: 0xe0000e84, 0x1e8d: 0xe0000e81, 0x1e8e: 0xe0000e44, 0x1e8f: 0xe0000e41, + 0x1e90: 0xe0000dad, 0x1e91: 0xe0000da9, 0x1e92: 0xe0000db5, 0x1e93: 0xe0000db1, + 0x1e94: 0xe0000dc5, 0x1e95: 0xe0000dc1, 0x1e96: 0xe0000dbd, 0x1e97: 0xe0000db9, + 0x1e98: 0xe0000e8b, 0x1e99: 0xe0000e87, 0x1e9a: 0xe0000e5d, 0x1e9b: 0xe0000e59, + 0x1e9c: 0xe0000e65, 0x1e9d: 0xe0000e61, 0x1e9e: 0xe0000e75, 0x1e9f: 0xe0000e71, + 0x1ea0: 0xe0000e6d, 0x1ea1: 0xe0000e69, 0x1ea2: 0xe0000e7d, 0x1ea3: 0xe0000e79, + 0x1ea4: 0xe000108d, 0x1ea5: 0xe000108a, 0x1ea6: 0xe000104d, 0x1ea7: 0xe000104a, + 0x1ea8: 0xe0001066, 0x1ea9: 0xe0001062, 0x1eaa: 0xe000106e, 0x1eab: 0xe000106a, + 0x1eac: 0xe000107e, 0x1ead: 0xe000107a, 0x1eae: 0xe0001076, 0x1eaf: 0xe0001072, + 0x1eb0: 0xe0001086, 0x1eb1: 0xe0001082, 0x1eb2: 0xe0001108, 0x1eb3: 0xe0001105, + 0x1eb4: 0xe0001135, 0x1eb5: 0xe0001132, 0x1eb6: 0xe000112f, 0x1eb7: 0xe000112c, + 0x1eb8: 0xe000111d, 0x1eb9: 0xe000111a, 0x1eba: 0xe0000d0a, 0x1ebb: 0xe0000d07, + 0x1ebc: 0x0030d888, 0x1ebd: 0x4030d820, 0x1ebe: 0x00312088, 0x1ebf: 0x40312020, + // Block 0x7b, offset 0x1ec0 + 0x1ec0: 0xe0001165, 0x1ec1: 0xe00011a9, 0x1ec2: 0xe000117d, 0x1ec3: 0xe00011c1, + 0x1ec4: 0xe000116b, 0x1ec5: 0xe00011af, 0x1ec6: 0xe000118f, 0x1ec7: 0xe00011d3, + 0x1ec8: 0xe0001168, 0x1ec9: 0xe00011ac, 0x1eca: 0xe0001181, 0x1ecb: 0xe00011c5, + 0x1ecc: 0xe000116f, 0x1ecd: 0xe00011b3, 0x1ece: 0xe0001193, 0x1ecf: 0xe00011d7, + 0x1ed0: 0xe000121a, 0x1ed1: 0xe0001230, 0x1ed2: 0xe0001228, 0x1ed3: 0xe000123e, + 0x1ed4: 0xe0001220, 0x1ed5: 0xe0001236, + 0x1ed8: 0xe000121d, 0x1ed9: 0xe0001233, 0x1eda: 0xe000122c, 0x1edb: 0xe0001242, + 0x1edc: 0xe0001224, 0x1edd: 0xe000123a, + 0x1ee0: 0xe0001252, 0x1ee1: 0xe0001296, 0x1ee2: 0xe000126a, 0x1ee3: 0xe00012ae, + 0x1ee4: 0xe0001258, 0x1ee5: 0xe000129c, 0x1ee6: 0xe000127c, 0x1ee7: 0xe00012c0, + 0x1ee8: 0xe0001255, 0x1ee9: 0xe0001299, 0x1eea: 0xe000126e, 0x1eeb: 0xe00012b2, + 0x1eec: 0xe000125c, 0x1eed: 0xe00012a0, 0x1eee: 0xe0001280, 0x1eef: 0xe00012c4, + 0x1ef0: 0xe00012fb, 0x1ef1: 0xe0001319, 0x1ef2: 0xe0001309, 0x1ef3: 0xe0001327, + 0x1ef4: 0xe0001301, 0x1ef5: 0xe000131f, 0x1ef6: 0xe0001311, 0x1ef7: 0xe000132f, + 0x1ef8: 0xe00012fe, 0x1ef9: 0xe000131c, 0x1efa: 0xe000130d, 0x1efb: 0xe000132b, + 0x1efc: 0xe0001305, 0x1efd: 0xe0001323, 0x1efe: 0xe0001315, 0x1eff: 0xe0001333, + // Block 0x7c, offset 0x1f00 + 0x1f00: 0xe000136c, 0x1f01: 0xe0001382, 0x1f02: 0xe000137a, 0x1f03: 0xe0001390, + 0x1f04: 0xe0001372, 0x1f05: 0xe0001388, + 0x1f08: 0xe000136f, 0x1f09: 0xe0001385, 0x1f0a: 0xe000137e, 0x1f0b: 0xe0001394, + 0x1f0c: 0xe0001376, 0x1f0d: 0xe000138c, + 0x1f10: 0xe00013ad, 0x1f11: 0xe00013bc, 0x1f12: 0xe00013b4, 0x1f13: 0xe00013ca, + 0x1f14: 0xe00013b0, 0x1f15: 0xe00013c2, 0x1f16: 0xe00013b8, 0x1f17: 0xe00013d2, + 0x1f19: 0xe00013bf, 0x1f1b: 0xe00013ce, + 0x1f1d: 0xe00013c6, 0x1f1f: 0xe00013d6, + 0x1f20: 0xe0001407, 0x1f21: 0xe000144b, 0x1f22: 0xe000141f, 0x1f23: 0xe0001463, + 0x1f24: 0xe000140d, 0x1f25: 0xe0001451, 0x1f26: 0xe0001431, 0x1f27: 0xe0001475, + 0x1f28: 0xe000140a, 0x1f29: 0xe000144e, 0x1f2a: 0xe0001423, 0x1f2b: 0xe0001467, + 0x1f2c: 0xe0001411, 0x1f2d: 0xe0001455, 0x1f2e: 0xe0001435, 0x1f2f: 0xe0001479, + 0x1f30: 0xe00011f7, 0x1f31: 0xe00011ed, 0x1f32: 0xe000124c, 0x1f33: 0xe0001246, + 0x1f34: 0xe00012e4, 0x1f35: 0xe00012da, 0x1f36: 0xe000133d, 0x1f37: 0xe0001337, + 0x1f38: 0xe000139e, 0x1f39: 0xe0001398, 0x1f3a: 0xe00013e0, 0x1f3b: 0xe00013da, + 0x1f3c: 0xe0001499, 0x1f3d: 0xe000148f, + // Block 0x7d, offset 0x1f40 + 0x1f40: 0xe00011a1, 0x1f41: 0xe00011e5, 0x1f42: 0xe0001185, 0x1f43: 0xe00011c9, + 0x1f44: 0xe0001173, 0x1f45: 0xe00011b7, 0x1f46: 0xe0001197, 0x1f47: 0xe00011db, + 0x1f48: 0xe00011a5, 0x1f49: 0xe00011e9, 0x1f4a: 0xe000118a, 0x1f4b: 0xe00011ce, + 0x1f4c: 0xe0001178, 0x1f4d: 0xe00011bc, 0x1f4e: 0xe000119c, 0x1f4f: 0xe00011e0, + 0x1f50: 0xe000128e, 0x1f51: 0xe00012d2, 0x1f52: 0xe0001272, 0x1f53: 0xe00012b6, + 0x1f54: 0xe0001260, 0x1f55: 0xe00012a4, 0x1f56: 0xe0001284, 0x1f57: 0xe00012c8, + 0x1f58: 0xe0001292, 0x1f59: 0xe00012d6, 0x1f5a: 0xe0001277, 0x1f5b: 0xe00012bb, + 0x1f5c: 0xe0001265, 0x1f5d: 0xe00012a9, 0x1f5e: 0xe0001289, 0x1f5f: 0xe00012cd, + 0x1f60: 0xe0001443, 0x1f61: 0xe0001487, 0x1f62: 0xe0001427, 0x1f63: 0xe000146b, + 0x1f64: 0xe0001415, 0x1f65: 0xe0001459, 0x1f66: 0xe0001439, 0x1f67: 0xe000147d, + 0x1f68: 0xe0001447, 0x1f69: 0xe000148b, 0x1f6a: 0xe000142c, 0x1f6b: 0xe0001470, + 0x1f6c: 0xe000141a, 0x1f6d: 0xe000145e, 0x1f6e: 0xe000143e, 0x1f6f: 0xe0001482, + 0x1f70: 0xe0001201, 0x1f71: 0xe000120e, 0x1f72: 0xe00011fd, 0x1f73: 0xe0001214, + 0x1f74: 0xe00011f3, 0x1f76: 0xe0001207, 0x1f77: 0xe000120a, + 0x1f78: 0xe0001204, 0x1f79: 0xe0001211, 0x1f7a: 0xe00011fa, 0x1f7b: 0xe00011f0, + 0x1f7c: 0xe0001217, 0x1f7d: 0x40063620, 0x1f7e: 0x40326c20, 0x1f7f: 0x40063620, + // Block 0x7e, offset 0x1f80 + 0x1f80: 0x40063a20, 0x1f81: 0xe00000b1, 0x1f82: 0xe00012ea, 0x1f83: 0xe00012f5, + 0x1f84: 0xe00012e0, 0x1f86: 0xe00012ee, 0x1f87: 0xe00012f1, + 0x1f88: 0xe000124f, 0x1f89: 0xe0001249, 0x1f8a: 0xe00012e7, 0x1f8b: 0xe00012dd, + 0x1f8c: 0xe00012f8, 0x1f8d: 0xe00000b7, 0x1f8e: 0xe00000b4, 0x1f8f: 0xe00000ba, + 0x1f90: 0xe0001343, 0x1f91: 0xe000135e, 0x1f92: 0xe0001356, 0x1f93: 0xe0001352, + 0x1f96: 0xe0001349, 0x1f97: 0xe000135a, + 0x1f98: 0xe0001346, 0x1f99: 0xe0001361, 0x1f9a: 0xe0001340, 0x1f9b: 0xe000133a, + 0x1f9d: 0xe00000c0, 0x1f9e: 0xe00000bd, 0x1f9f: 0xe00000c3, + 0x1fa0: 0xe00013e6, 0x1fa1: 0xe0001401, 0x1fa2: 0xe00013f9, 0x1fa3: 0xe00013f5, + 0x1fa4: 0xe00013a4, 0x1fa5: 0xe00013a7, 0x1fa6: 0xe00013ec, 0x1fa7: 0xe00013fd, + 0x1fa8: 0xe00013e9, 0x1fa9: 0xe0001404, 0x1faa: 0xe00013e3, 0x1fab: 0xe00013dd, + 0x1fac: 0xe00013aa, 0x1fad: 0xe00000ae, 0x1fae: 0xe00000ab, 0x1faf: 0x40061e20, + 0x1fb2: 0xe000149f, 0x1fb3: 0xe00014aa, + 0x1fb4: 0xe0001495, 0x1fb6: 0xe00014a3, 0x1fb7: 0xe00014a6, + 0x1fb8: 0xe00013a1, 0x1fb9: 0xe000139b, 0x1fba: 0xe000149c, 0x1fbb: 0xe0001492, + 0x1fbc: 0xe00014ad, 0x1fbd: 0x40062020, 0x1fbe: 0x40063820, + // Block 0x7f, offset 0x1fc0 + 0x1fc0: 0x00021284, 0x1fc1: 0x00021284, 0x1fc2: 0x00021284, 0x1fc3: 0x00021284, + 0x1fc4: 0x00021284, 0x1fc5: 0x00021284, 0x1fc6: 0x00021284, 0x1fc7: 0x0002129b, + 0x1fc8: 0x00021284, 0x1fc9: 0x00021284, 0x1fca: 0x00021284, 0x1fcb: 0xa0000000, + 0x1fcc: 0xa0000000, 0x1fcd: 0xa0000000, 0x1fce: 0xa0000000, 0x1fcf: 0xa0000000, + 0x1fd0: 0x40022620, 0x1fd1: 0x0002269b, 0x1fd2: 0x40022820, 0x1fd3: 0x40022a20, + 0x1fd4: 0x40022c20, 0x1fd5: 0x40022e20, 0x1fd6: 0x4004c420, 0x1fd7: 0x40021820, + 0x1fd8: 0x4003d420, 0x1fd9: 0x4003d620, 0x1fda: 0x4003d820, 0x1fdb: 0x4003da20, + 0x1fdc: 0x4003e220, 0x1fdd: 0x4003e420, 0x1fde: 0x4003e620, 0x1fdf: 0x4003e820, + 0x1fe0: 0x4004f820, 0x1fe1: 0x4004fa20, 0x1fe2: 0x40050220, 0x1fe3: 0x40050420, + 0x1fe4: 0x0002e484, 0x1fe5: 0xf0001f04, 0x1fe6: 0xf0000404, 0x1fe7: 0x40050620, + 0x1fe8: 0x40020e20, 0x1fe9: 0x40021020, 0x1fea: 0xa0000000, 0x1feb: 0xa0000000, + 0x1fec: 0xa0000000, 0x1fed: 0xa0000000, 0x1fee: 0xa0000000, 0x1fef: 0x0002129b, + 0x1ff0: 0x4004f020, 0x1ff1: 0x4004f420, 0x1ff2: 0x40050e20, 0x1ff3: 0xf0001f04, + 0x1ff4: 0xf0000404, 0x1ff5: 0x40051020, 0x1ff6: 0xf0001f04, 0x1ff7: 0xf0000404, + 0x1ff8: 0x40051620, 0x1ff9: 0x4003dc20, 0x1ffa: 0x4003de20, 0x1ffb: 0x40051820, + 0x1ffc: 0xf0001f04, 0x1ffd: 0x4002e020, 0x1ffe: 0x40021420, 0x1fff: 0x40051a20, + // Block 0x80, offset 0x2000 + 0x2000: 0x40051e20, 0x2001: 0x40052220, 0x2002: 0x40052420, 0x2003: 0x40050820, + 0x2004: 0x40095820, 0x2005: 0x40040c20, 0x2006: 0x40040e20, 0x2007: 0xf0001f04, + 0x2008: 0xf0001f04, 0x2009: 0xf0001f04, 0x200a: 0x4004e820, 0x200b: 0x4004d420, + 0x200c: 0x40050a20, 0x200d: 0x40050c20, 0x200e: 0x4004da20, 0x200f: 0x40026620, + 0x2010: 0x40052020, 0x2011: 0x4004dc20, 0x2012: 0x40095020, 0x2013: 0x40023420, + 0x2014: 0x40051c20, 0x2015: 0x40039c20, 0x2016: 0x40039e20, 0x2017: 0xe00000a6, + 0x2018: 0x4003a020, 0x2019: 0x4003a220, 0x201a: 0x4003a420, 0x201b: 0x4003a620, + 0x201c: 0x4003a820, 0x201d: 0x4003aa20, 0x201e: 0x4003ac20, 0x201f: 0x00021284, + 0x2020: 0xa0000000, 0x2021: 0xa0000000, 0x2022: 0xa0000000, 0x2023: 0xa0000000, + 0x2024: 0xa0000000, + 0x202a: 0xa0000000, 0x202b: 0xa0000000, + 0x202c: 0xa0000000, 0x202d: 0xa0000000, 0x202e: 0xa0000000, 0x202f: 0xa0000000, + 0x2030: 0x0029cc94, 0x2031: 0x002d9a94, + 0x2034: 0x0029d494, 0x2035: 0x0029d694, 0x2036: 0x0029d894, 0x2037: 0x0029da94, + 0x2038: 0x0029dc94, 0x2039: 0x0029de94, 0x203a: 0x00093894, 0x203b: 0x00094e94, + 0x203c: 0x00094294, 0x203d: 0x0003f494, 0x203e: 0x0003f694, 0x203f: 0x002e9e94, + // Block 0x81, offset 0x2040 + 0x2040: 0x0029cc95, 0x2041: 0x0029ce95, 0x2042: 0x0029d095, 0x2043: 0x0029d295, + 0x2044: 0x0029d495, 0x2045: 0x0029d695, 0x2046: 0x0029d895, 0x2047: 0x0029da95, + 0x2048: 0x0029dc95, 0x2049: 0x0029de95, 0x204a: 0x00093895, 0x204b: 0x00094e95, + 0x204c: 0x00094295, 0x204d: 0x0003f495, 0x204e: 0x0003f695, + 0x2050: 0x002bde95, 0x2051: 0x002c9895, 0x2052: 0x002ee295, 0x2053: 0x0030f695, + 0x2054: 0x002cb895, 0x2055: 0x002d6895, 0x2056: 0x002dfe95, 0x2057: 0x002e2295, + 0x2058: 0x002e8295, 0x2059: 0x002e9e95, 0x205a: 0x002f2c95, 0x205b: 0x002fe695, + 0x205c: 0x00302c95, + 0x2060: 0x4027f820, 0x2061: 0x4027fa20, 0x2062: 0x4027fc20, 0x2063: 0x4027fe20, + 0x2064: 0x40280020, 0x2065: 0x40280220, 0x2066: 0x40280420, 0x2067: 0x40280620, + 0x2068: 0x40282c20, 0x2069: 0x40280820, 0x206a: 0x40280a20, 0x206b: 0x40280c20, + 0x206c: 0x40280e20, 0x206d: 0x40281020, 0x206e: 0x40281220, 0x206f: 0x40281420, + 0x2070: 0x40281620, 0x2071: 0x40281820, 0x2072: 0x40281a20, 0x2073: 0x40281c20, + 0x2074: 0x40281e20, 0x2075: 0x40282020, 0x2076: 0x40282220, 0x2077: 0x40282420, + 0x2078: 0x40282620, 0x2079: 0x40282820, 0x207a: 0x40282a20, + // Block 0x82, offset 0x2080 + 0x2090: 0xae612a02, 0x2091: 0xae612b02, 0x2092: 0xa0112c02, 0x2093: 0xa0112c02, + 0x2094: 0xae612d02, 0x2095: 0xae612e02, 0x2096: 0xae612f02, 0x2097: 0xae613002, + 0x2098: 0xa0106102, 0x2099: 0xa0106102, 0x209a: 0xa0106102, 0x209b: 0xae613102, + 0x209c: 0xae613202, 0x209d: 0xa0006202, 0x209e: 0xa0006202, 0x209f: 0xa0006202, + 0x20a0: 0xa0006202, 0x20a1: 0xae613302, 0x20a2: 0xa0006202, 0x20a3: 0xa0006202, + 0x20a4: 0xa0006202, 0x20a5: 0xa0106102, 0x20a6: 0xa0113402, 0x20a7: 0xae613502, + 0x20a8: 0xadc13602, 0x20a9: 0xae613702, 0x20aa: 0xa0106102, 0x20ab: 0xa0106102, + 0x20ac: 0xadc06002, 0x20ad: 0xadc06002, 0x20ae: 0xadc06002, 0x20af: 0xadc06002, + 0x20b0: 0xae605f02, + // Block 0x83, offset 0x20c0 + 0x20c0: 0xe00009bc, 0x20c1: 0xe00009c0, 0x20c2: 0x002c3a8b, 0x20c3: 0xf0000a04, + 0x20c4: 0x40081c20, 0x20c5: 0xe0000a5e, 0x20c6: 0xe0000a62, 0x20c7: 0x002cc28a, + 0x20c8: 0x40081e20, 0x20c9: 0xf0000a04, 0x20ca: 0x002d2285, 0x20cb: 0x002d688b, + 0x20cc: 0x002d688b, 0x20cd: 0x002d688b, 0x20ce: 0x002d6885, 0x20cf: 0xf0000202, + 0x20d0: 0x002d9a8b, 0x20d1: 0x002d9a8b, 0x20d2: 0x002e228b, 0x20d3: 0x002e2285, + 0x20d4: 0x40082020, 0x20d5: 0x002e9e8b, 0x20d6: 0xf000040a, 0x20d7: 0x40082220, + 0x20d8: 0x40082420, 0x20d9: 0x002f2c8b, 0x20da: 0x002f568b, 0x20db: 0x002f7a8b, + 0x20dc: 0x002f7a8b, 0x20dd: 0x002f7a8b, 0x20de: 0x40082620, 0x20df: 0x40082820, + 0x20e0: 0xf0001414, 0x20e1: 0xe0000fbd, 0x20e2: 0xf0001414, 0x20e3: 0x40082a20, + 0x20e4: 0x00312a8b, 0x20e5: 0x40082c20, 0x20e6: 0x0032a288, 0x20e7: 0x40082e20, + 0x20e8: 0x00312a8b, 0x20e9: 0x40083020, 0x20ea: 0x002dfe88, 0x20eb: 0xe000094d, + 0x20ec: 0x002c0a8b, 0x20ed: 0x002c3a8b, 0x20ee: 0x40083220, 0x20ef: 0x002c9885, + 0x20f0: 0x002c988b, 0x20f1: 0x002d088b, 0x20f2: 0x002d1e88, 0x20f3: 0x002e828b, + 0x20f4: 0x002ee285, 0x20f5: 0x00389084, 0x20f6: 0x00389284, 0x20f7: 0x00389484, + 0x20f8: 0x00389684, 0x20f9: 0x002d9a85, 0x20fa: 0x40083420, 0x20fb: 0xe0000b95, + 0x20fc: 0x00327e85, 0x20fd: 0x00325685, 0x20fe: 0x0032568b, 0x20ff: 0x00327e8b, + // Block 0x84, offset 0x2100 + 0x2100: 0x00093685, 0x2101: 0x40083620, 0x2102: 0x40083820, 0x2103: 0x40083a20, + 0x2104: 0x40083c20, 0x2105: 0x002c628b, 0x2106: 0x002c6285, 0x2107: 0x002c9885, + 0x2108: 0x002d9a85, 0x2109: 0x002dcc85, 0x210a: 0x40083e20, 0x210b: 0x400a6e20, + 0x210c: 0x40084020, 0x210d: 0xe00009c4, 0x210e: 0x402d1e20, 0x210f: 0x40084220, + 0x2110: 0xe00002cb, 0x2111: 0xe00002d3, 0x2112: 0xe00002b2, 0x2113: 0xe00002bb, + 0x2114: 0xe00003cd, 0x2115: 0xe00002c3, 0x2116: 0xe00003d1, 0x2117: 0xe00004ab, + 0x2118: 0xe0000579, 0x2119: 0xe00002c7, 0x211a: 0xe0000640, 0x211b: 0xe00002cf, + 0x211c: 0xe00004af, 0x211d: 0xe0000644, 0x211e: 0xe0000798, 0x211f: 0xf0001e1e, + 0x2120: 0x002d9a8a, 0x2121: 0xf0001f0a, 0x2122: 0xf0000a0a, 0x2123: 0xf0001f0a, + 0x2124: 0x0030be8a, 0x2125: 0xf0001f0a, 0x2126: 0xf0000a0a, 0x2127: 0xe00010bb, + 0x2128: 0xf0001f0a, 0x2129: 0x0030f68a, 0x212a: 0xf0001f0a, 0x212b: 0xf0000a0a, + 0x212c: 0x002e228a, 0x212d: 0x002c3a8a, 0x212e: 0x002c628a, 0x212f: 0x002e828a, + 0x2130: 0x002d9a84, 0x2131: 0xf0001f04, 0x2132: 0xf0000404, 0x2133: 0xf0001f04, + 0x2134: 0x0030be84, 0x2135: 0xf0001f04, 0x2136: 0xf0000404, 0x2137: 0xe00010b6, + 0x2138: 0xf0001f04, 0x2139: 0x0030f684, 0x213a: 0xf0001f04, 0x213b: 0xf0000404, + 0x213c: 0x002e2284, 0x213d: 0x002c3a84, 0x213e: 0x002c6284, 0x213f: 0x002e8284, + // Block 0x85, offset 0x2140 + 0x2140: 0x40287c20, 0x2141: 0x40287e20, 0x2142: 0x40288020, 0x2143: 0x002c5e88, + 0x2144: 0x402c5e20, 0x2145: 0xe00006c9, 0x2146: 0x40288220, 0x2147: 0x40288420, + 0x2148: 0x40288620, 0x2149: 0xe00001e2, + 0x2150: 0x40084420, 0x2151: 0x40084820, 0x2152: 0x40084620, 0x2153: 0x40084a20, + 0x2154: 0x40084c20, 0x2155: 0x40084e20, 0x2156: 0x40085020, 0x2157: 0x40085220, + 0x2158: 0x40085420, 0x2159: 0x40085620, 0x215a: 0xe00000c6, 0x215b: 0xe00000c9, + 0x215c: 0x40085820, 0x215d: 0x40085a20, 0x215e: 0x40085c20, 0x215f: 0x40085e20, + 0x2160: 0x40086020, 0x2161: 0x40086220, 0x2162: 0x40086420, 0x2163: 0x40086620, + 0x2164: 0x40086820, 0x2165: 0x40086a20, 0x2166: 0x40086c20, 0x2167: 0x40086e20, + 0x2168: 0x40087020, 0x2169: 0x40087220, 0x216a: 0x40087420, 0x216b: 0x40087620, + 0x216c: 0x40087820, 0x216d: 0x40087a20, 0x216e: 0xe00000cc, 0x216f: 0x40087c20, + 0x2170: 0x40087e20, 0x2171: 0x40088020, 0x2172: 0x40088220, 0x2173: 0x40088420, + 0x2174: 0x40088620, 0x2175: 0x40088820, 0x2176: 0x40088a20, 0x2177: 0x40088c20, + 0x2178: 0x40088e20, 0x2179: 0x40089020, 0x217a: 0x40089220, 0x217b: 0x40089420, + 0x217c: 0x40089620, 0x217d: 0x40089820, 0x217e: 0x40089a20, 0x217f: 0x40089c20, + // Block 0x86, offset 0x2180 + 0x2180: 0x40089e20, 0x2181: 0x4008a020, 0x2182: 0x4008a220, 0x2183: 0x4008a420, + 0x2184: 0x4008a620, 0x2185: 0x4008a820, 0x2186: 0x4008aa20, 0x2187: 0x4008ac20, + 0x2188: 0x4008ae20, 0x2189: 0x4008b020, 0x218a: 0x4008b220, 0x218b: 0x4008b420, + 0x218c: 0x4008b620, 0x218d: 0xe00000cf, 0x218e: 0xe00000d5, 0x218f: 0xe00000d2, + 0x2190: 0x4008b820, 0x2191: 0x4008ba20, 0x2192: 0x4008bc20, 0x2193: 0x4008be20, + 0x2194: 0x4008c020, 0x2195: 0x4008c220, 0x2196: 0x4008c420, 0x2197: 0x4008c620, + 0x2198: 0x4008c820, 0x2199: 0x4008ca20, 0x219a: 0x4008cc20, 0x219b: 0x4008ce20, + 0x219c: 0x4008d020, 0x219d: 0x4008d220, 0x219e: 0x4008d420, 0x219f: 0x4008d620, + 0x21a0: 0x4008d820, 0x21a1: 0x4008da20, 0x21a2: 0x4008dc20, 0x21a3: 0x4008de20, + 0x21a4: 0x4008e020, 0x21a5: 0x4008e220, 0x21a6: 0x4008e420, 0x21a7: 0x4008e620, + 0x21a8: 0x4008e820, 0x21a9: 0x4008ea20, 0x21aa: 0x4008ec20, 0x21ab: 0x4008ee20, + 0x21ac: 0x4008f020, 0x21ad: 0x4008f220, 0x21ae: 0x4008f420, 0x21af: 0x4008f620, + 0x21b0: 0x4008f820, 0x21b1: 0x4008fa20, 0x21b2: 0x4008fc20, 0x21b3: 0x4008fe20, + 0x21b4: 0x40090020, 0x21b5: 0x40090220, 0x21b6: 0x40090420, 0x21b7: 0x40090620, + 0x21b8: 0x40090820, 0x21b9: 0x40090a20, 0x21ba: 0x40090c20, 0x21bb: 0x40090e20, + 0x21bc: 0x40091020, 0x21bd: 0x40091220, 0x21be: 0x40091420, 0x21bf: 0x40091620, + // Block 0x87, offset 0x21c0 + 0x21c0: 0x40091820, 0x21c1: 0x40091a20, 0x21c2: 0x40091c20, 0x21c3: 0x40091e20, + 0x21c4: 0xe00000d8, 0x21c5: 0x40092020, 0x21c6: 0x40092220, 0x21c7: 0x40092420, + 0x21c8: 0x40092620, 0x21c9: 0xe00000db, 0x21ca: 0x40092820, 0x21cb: 0x40092a20, + 0x21cc: 0xe00000de, 0x21cd: 0x40092c20, 0x21ce: 0x40093020, 0x21cf: 0x40093220, + 0x21d0: 0x40093420, 0x21d1: 0x40093620, 0x21d2: 0x40094e20, 0x21d3: 0x40095220, + 0x21d4: 0x40095420, 0x21d5: 0x40095620, 0x21d6: 0x40095a20, 0x21d7: 0x40095c20, + 0x21d8: 0x40095e20, 0x21d9: 0x40096020, 0x21da: 0x40096220, 0x21db: 0x40096420, + 0x21dc: 0x40096820, 0x21dd: 0x40096c20, 0x21de: 0x40096e20, 0x21df: 0x40097020, + 0x21e0: 0x40097220, 0x21e1: 0x40097420, 0x21e2: 0x40097620, 0x21e3: 0x40097820, + 0x21e4: 0xe00000ea, 0x21e5: 0x40097a20, 0x21e6: 0xe00000ed, 0x21e7: 0x40097c20, + 0x21e8: 0x40097e20, 0x21e9: 0x40098020, 0x21ea: 0x40098220, 0x21eb: 0x40098420, + 0x21ec: 0xf0001f04, 0x21ed: 0xf0000404, 0x21ee: 0x40098620, 0x21ef: 0xf0001f04, + 0x21f0: 0xf0000404, 0x21f1: 0x40098820, 0x21f2: 0x40098a20, 0x21f3: 0x40098c20, + 0x21f4: 0x40098e20, 0x21f5: 0x40099020, 0x21f6: 0x40099220, 0x21f7: 0x40099420, + 0x21f8: 0x40099620, 0x21f9: 0x40099820, 0x21fa: 0x40099a20, 0x21fb: 0x40099c20, + 0x21fc: 0x40099e20, 0x21fd: 0x4009a020, 0x21fe: 0x4009a220, 0x21ff: 0x4009a420, + // Block 0x88, offset 0x2200 + 0x2200: 0x4009a620, 0x2201: 0xe00000f5, 0x2202: 0x4009a820, 0x2203: 0x4009aa20, + 0x2204: 0xe00000f8, 0x2205: 0x4009ac20, 0x2206: 0x4009ae20, 0x2207: 0xe00000fb, + 0x2208: 0x4009b020, 0x2209: 0xe00000fe, 0x220a: 0x4009b220, 0x220b: 0x4009b420, + 0x220c: 0x4009b620, 0x220d: 0x4009b820, 0x220e: 0x4009ba20, 0x220f: 0x4009bc20, + 0x2210: 0x4009be20, 0x2211: 0x4009c020, 0x2212: 0x4009c220, 0x2213: 0x4009c420, + 0x2214: 0x4009c620, 0x2215: 0x4009c820, 0x2216: 0x4009ca20, 0x2217: 0x4009cc20, + 0x2218: 0x4009ce20, 0x2219: 0x4009d020, 0x221a: 0x4009d220, 0x221b: 0x4009d420, + 0x221c: 0x4009d620, 0x221d: 0x4009d820, 0x221e: 0x4009da20, 0x221f: 0x4009dc20, + 0x2220: 0xe00000e4, 0x2221: 0x4009de20, 0x2222: 0xe0000104, 0x2223: 0x4009e020, + 0x2224: 0x4009e220, 0x2225: 0x4009e420, 0x2226: 0x4009e620, 0x2227: 0x4009e820, + 0x2228: 0x4009ea20, 0x2229: 0x4009ec20, 0x222a: 0x4009ee20, 0x222b: 0x4009f020, + 0x222c: 0x4009f220, 0x222d: 0xe0000101, 0x222e: 0xe00000e1, 0x222f: 0xe00000e7, + 0x2230: 0xe0000107, 0x2231: 0xe000010a, 0x2232: 0x4009f420, 0x2233: 0x4009f620, + 0x2234: 0xe000010d, 0x2235: 0xe0000110, 0x2236: 0x4009f820, 0x2237: 0x4009fa20, + 0x2238: 0xe0000113, 0x2239: 0xe0000116, 0x223a: 0x4009fc20, 0x223b: 0x4009fe20, + 0x223c: 0x400a0020, 0x223d: 0x400a0220, 0x223e: 0x400a0420, 0x223f: 0x400a0620, + // Block 0x89, offset 0x2240 + 0x2240: 0xe0000119, 0x2241: 0xe000011c, 0x2242: 0x400a0820, 0x2243: 0x400a0a20, + 0x2244: 0xe0000125, 0x2245: 0xe0000128, 0x2246: 0x400a0c20, 0x2247: 0x400a0e20, + 0x2248: 0xe000012b, 0x2249: 0xe000012e, 0x224a: 0x400a1020, 0x224b: 0x400a1220, + 0x224c: 0x400a1420, 0x224d: 0x400a1620, 0x224e: 0x400a1820, 0x224f: 0x400a1a20, + 0x2250: 0x400a1c20, 0x2251: 0x400a1e20, 0x2252: 0x400a2020, 0x2253: 0x400a2220, + 0x2254: 0x400a2420, 0x2255: 0x400a2620, 0x2256: 0x400a2820, 0x2257: 0x400a2a20, + 0x2258: 0x400a2c20, 0x2259: 0x400a2e20, 0x225a: 0x400a3020, 0x225b: 0x400a3220, + 0x225c: 0x400a3420, 0x225d: 0x400a3620, 0x225e: 0x400a3820, 0x225f: 0x400a3a20, + 0x2260: 0x400a3c20, 0x2261: 0x400a3e20, 0x2262: 0x400a4020, 0x2263: 0x400a4220, + 0x2264: 0x400a4420, 0x2265: 0x400a4620, 0x2266: 0x400a4820, 0x2267: 0x400a4a20, + 0x2268: 0x400a4c20, 0x2269: 0x400a4e20, 0x226a: 0x400a5020, 0x226b: 0x400a5220, + 0x226c: 0xe0000137, 0x226d: 0xe000013a, 0x226e: 0xe000013d, 0x226f: 0xe0000140, + 0x2270: 0x400a5420, 0x2271: 0x400a5620, 0x2272: 0x400a5820, 0x2273: 0x400a5a20, + 0x2274: 0x400a5c20, 0x2275: 0x400a5e20, 0x2276: 0x400a6020, 0x2277: 0x400a6220, + 0x2278: 0x400a6420, 0x2279: 0x400a6620, 0x227a: 0x400a6820, 0x227b: 0x400a6a20, + 0x227c: 0x400a6c20, 0x227d: 0x400a7020, 0x227e: 0x400a7220, 0x227f: 0x400a7420, + // Block 0x8a, offset 0x2280 + 0x2280: 0x400a7620, 0x2281: 0x400a7820, 0x2282: 0x400a7a20, 0x2283: 0x400a7c20, + 0x2284: 0x400a7e20, 0x2285: 0x400a8020, 0x2286: 0x400a8220, 0x2287: 0x400a8420, + 0x2288: 0x400a8620, 0x2289: 0x400a8820, 0x228a: 0x400a8a20, 0x228b: 0x400a8c20, + 0x228c: 0x400a8e20, 0x228d: 0x400a9020, 0x228e: 0x400a9220, 0x228f: 0x400a9420, + 0x2290: 0x400a9620, 0x2291: 0x400a9820, 0x2292: 0x400a9a20, 0x2293: 0x400a9c20, + 0x2294: 0x400a9e20, 0x2295: 0x400aa020, 0x2296: 0x400aa220, 0x2297: 0x400aa420, + 0x2298: 0x400aa620, 0x2299: 0x400aa820, 0x229a: 0x400aaa20, 0x229b: 0x400aac20, + 0x229c: 0x400aae20, 0x229d: 0x400ab020, 0x229e: 0x400ab220, 0x229f: 0x400ab420, + 0x22a0: 0xe000011f, 0x22a1: 0xe0000122, 0x22a2: 0xe0000131, 0x22a3: 0xe0000134, + 0x22a4: 0x400ab620, 0x22a5: 0x400ab820, 0x22a6: 0x400aba20, 0x22a7: 0x400abc20, + 0x22a8: 0x400abe20, 0x22a9: 0x400ac020, 0x22aa: 0xe0000143, 0x22ab: 0xe0000146, + 0x22ac: 0xe0000149, 0x22ad: 0xe000014c, 0x22ae: 0x400ac220, 0x22af: 0x400ac420, + 0x22b0: 0x400ac620, 0x22b1: 0x400ac820, 0x22b2: 0x400aca20, 0x22b3: 0x400acc20, + 0x22b4: 0x400ace20, 0x22b5: 0x400ad020, 0x22b6: 0x400ad220, 0x22b7: 0x400ad420, + 0x22b8: 0x400ad620, 0x22b9: 0x400ad820, 0x22ba: 0x400ada20, 0x22bb: 0x400adc20, + 0x22bc: 0x400ade20, 0x22bd: 0x400ae020, 0x22be: 0x400ae220, 0x22bf: 0x400ae420, + // Block 0x8b, offset 0x22c0 + 0x22c0: 0x400ae620, 0x22c1: 0x400ae820, 0x22c2: 0x400aea20, 0x22c3: 0x400aec20, + 0x22c4: 0x400aee20, 0x22c5: 0x400af020, 0x22c6: 0x400af220, 0x22c7: 0x400af420, + 0x22c8: 0x400af620, 0x22c9: 0x400af820, 0x22ca: 0x400afa20, 0x22cb: 0x400afc20, + 0x22cc: 0x400afe20, 0x22cd: 0x400b0020, 0x22ce: 0x400b0220, 0x22cf: 0x400b0420, + 0x22d0: 0x400b0620, 0x22d1: 0x400b0820, 0x22d2: 0x400b0a20, 0x22d3: 0x400b0c20, + 0x22d4: 0x400b0e20, 0x22d5: 0x400b1020, 0x22d6: 0x400b1220, 0x22d7: 0x400b1420, + 0x22d8: 0x400b1620, 0x22d9: 0x400b1820, 0x22da: 0x400b1a20, 0x22db: 0x400b1c20, + 0x22dc: 0x400b1e20, 0x22dd: 0x400b2020, 0x22de: 0x400b2220, 0x22df: 0x400b2420, + 0x22e0: 0x400b2620, 0x22e1: 0x400b2820, 0x22e2: 0x400b2a20, 0x22e3: 0x400b2c20, + 0x22e4: 0x400b2e20, 0x22e5: 0x400b3020, 0x22e6: 0x400b3220, 0x22e7: 0x400b3420, + 0x22e8: 0x400b3620, 0x22e9: 0x40049c20, 0x22ea: 0x40049e20, 0x22eb: 0x400b3820, + 0x22ec: 0x400b3a20, 0x22ed: 0x400b3c20, 0x22ee: 0x400b3e20, 0x22ef: 0x400b4020, + 0x22f0: 0x400b4220, 0x22f1: 0x400b4420, 0x22f2: 0x400b4620, 0x22f3: 0x400b4820, + 0x22f4: 0x400b4a20, 0x22f5: 0x400b4c20, 0x22f6: 0x400b4e20, 0x22f7: 0x400b5020, + 0x22f8: 0x400b5220, 0x22f9: 0x400b5420, 0x22fa: 0x400b5620, 0x22fb: 0x400b5820, + 0x22fc: 0x400b5a20, 0x22fd: 0x400b5c20, 0x22fe: 0x400b5e20, 0x22ff: 0x400b6020, + // Block 0x8c, offset 0x2300 + 0x2300: 0x400b6220, 0x2301: 0x400b6420, 0x2302: 0x400b6620, 0x2303: 0x400b6820, + 0x2304: 0x400b6a20, 0x2305: 0x400b6c20, 0x2306: 0x400b6e20, 0x2307: 0x400b7020, + 0x2308: 0x400b7220, 0x2309: 0x400b7420, 0x230a: 0x400b7620, 0x230b: 0x400b7820, + 0x230c: 0x400b7a20, 0x230d: 0x400b7c20, 0x230e: 0x400b7e20, 0x230f: 0x400b8020, + 0x2310: 0x400b8220, 0x2311: 0x400b8420, 0x2312: 0x400b8620, 0x2313: 0x400b8820, + 0x2314: 0x400b8a20, 0x2315: 0x400b8c20, 0x2316: 0x400b8e20, 0x2317: 0x400b9020, + 0x2318: 0x400b9220, 0x2319: 0x400b9420, 0x231a: 0x400b9620, 0x231b: 0x400b9820, + 0x231c: 0x400b9a20, 0x231d: 0x400b9c20, 0x231e: 0x400b9e20, 0x231f: 0x400ba020, + 0x2320: 0x400ba220, 0x2321: 0x400ba420, 0x2322: 0x400ba620, 0x2323: 0x400ba820, + 0x2324: 0x400baa20, 0x2325: 0x400bac20, 0x2326: 0x400bae20, 0x2327: 0x400bb020, + 0x2328: 0x400bb220, 0x2329: 0x400bb420, 0x232a: 0x400bb620, 0x232b: 0x400bb820, + 0x232c: 0x400bba20, 0x232d: 0x400bbc20, 0x232e: 0x400bbe20, 0x232f: 0x400bc020, + 0x2330: 0x400bc220, 0x2331: 0x400bc420, 0x2332: 0x400bc620, 0x2333: 0x400bc820, + 0x2334: 0x400bca20, 0x2335: 0x400bcc20, 0x2336: 0x400bce20, 0x2337: 0x400bd020, + 0x2338: 0x400bd220, 0x2339: 0x400bd420, 0x233a: 0x400bd620, 0x233b: 0x400bd820, + 0x233c: 0x400bda20, 0x233d: 0x400bdc20, 0x233e: 0x400bde20, 0x233f: 0x400be020, + // Block 0x8d, offset 0x2340 + 0x2340: 0x400be220, 0x2341: 0x400be420, 0x2342: 0x400be620, 0x2343: 0x400be820, + 0x2344: 0x400bea20, 0x2345: 0x400bec20, 0x2346: 0x400bee20, 0x2347: 0x400bf020, + 0x2348: 0x400bf220, 0x2349: 0x400bf420, 0x234a: 0x400bf620, 0x234b: 0x400bf820, + 0x234c: 0x400bfa20, 0x234d: 0x400bfc20, 0x234e: 0x400bfe20, 0x234f: 0x400c0020, + 0x2350: 0x400c0220, 0x2351: 0x400c0420, 0x2352: 0x400c0620, 0x2353: 0x400c0820, + 0x2354: 0x400c0a20, 0x2355: 0x400c0c20, 0x2356: 0x400c0e20, 0x2357: 0x400c1020, + 0x2358: 0x400c1220, 0x2359: 0x400c1420, 0x235a: 0x400c1620, 0x235b: 0x400c1820, + 0x235c: 0x400c1a20, 0x235d: 0x400c1c20, 0x235e: 0x400c1e20, 0x235f: 0x400c2020, + 0x2360: 0x400c2220, 0x2361: 0x400c2420, 0x2362: 0x400c2620, 0x2363: 0x400c2820, + 0x2364: 0x400c2a20, 0x2365: 0x400c2c20, 0x2366: 0x400c2e20, 0x2367: 0x400c3020, + 0x2368: 0x400c3220, 0x2369: 0x400c3420, 0x236a: 0x400c3620, 0x236b: 0x400c3820, + 0x236c: 0x400c3a20, 0x236d: 0x400c3c20, 0x236e: 0x400c3e20, 0x236f: 0x400c4020, + 0x2370: 0x400c4220, 0x2371: 0x400c4420, 0x2372: 0x400c4620, 0x2373: 0x400c4820, + 0x2374: 0x400c4a20, 0x2375: 0x400c4c20, 0x2376: 0x400c4e20, 0x2377: 0x400c5020, + 0x2378: 0x400c5220, 0x2379: 0x400c5420, 0x237a: 0x400c5620, 0x237b: 0x400c5820, + 0x237c: 0x400c5a20, 0x237d: 0x400c5c20, 0x237e: 0x400c5e20, 0x237f: 0x400c6020, + // Block 0x8e, offset 0x2380 + 0x2380: 0x400c6220, 0x2381: 0x400c6420, 0x2382: 0x400c6620, 0x2383: 0x400c6820, + 0x2384: 0x400c6a20, 0x2385: 0x400c6c20, 0x2386: 0x400c6e20, 0x2387: 0x400c7020, + 0x2388: 0x400c7220, 0x2389: 0x400c7420, 0x238a: 0x400c7620, 0x238b: 0x400c7820, + 0x238c: 0x400c7a20, 0x238d: 0x400c7c20, 0x238e: 0x400c7e20, 0x238f: 0x400c8020, + 0x2390: 0x400c8220, 0x2391: 0x400c8420, 0x2392: 0x400c8620, 0x2393: 0x400c8820, + 0x2394: 0x400c8a20, 0x2395: 0x400c8c20, 0x2396: 0x400c8e20, 0x2397: 0x400c9020, + 0x2398: 0x400c9220, 0x2399: 0x400c9420, 0x239a: 0x400c9620, 0x239b: 0x400c9820, + 0x239c: 0x400c9a20, 0x239d: 0x400c9c20, 0x239e: 0x400c9e20, 0x239f: 0x400ca020, + 0x23a0: 0x400ca220, 0x23a1: 0x400ca420, 0x23a2: 0x400ca620, 0x23a3: 0x400ca820, + 0x23a4: 0x400caa20, 0x23a5: 0x400cac20, 0x23a6: 0x400cae20, 0x23a7: 0x400cb020, + 0x23a8: 0x400cb220, 0x23a9: 0x400cb420, 0x23aa: 0x400cb620, 0x23ab: 0x400cb820, + 0x23ac: 0x400cba20, 0x23ad: 0x400cbc20, 0x23ae: 0x400cbe20, 0x23af: 0x400cc020, + 0x23b0: 0x400cc220, 0x23b1: 0x400cc420, 0x23b2: 0x400cc620, 0x23b3: 0x400cc820, + // Block 0x8f, offset 0x23c0 + 0x23c0: 0x400cca20, 0x23c1: 0x400ccc20, 0x23c2: 0x400cce20, 0x23c3: 0x400cd020, + 0x23c4: 0x400cd220, 0x23c5: 0x400cd420, 0x23c6: 0x400cd620, 0x23c7: 0x400cd820, + 0x23c8: 0x400cda20, 0x23c9: 0x400cdc20, 0x23ca: 0x400cde20, 0x23cb: 0x400ce020, + 0x23cc: 0x400ce220, 0x23cd: 0x400ce420, 0x23ce: 0x400ce620, 0x23cf: 0x400ce820, + 0x23d0: 0x400cea20, 0x23d1: 0x400cec20, 0x23d2: 0x400cee20, 0x23d3: 0x400cf020, + 0x23d4: 0x400cf220, 0x23d5: 0x400cf420, 0x23d6: 0x400cf620, 0x23d7: 0x400cf820, + 0x23d8: 0x400cfa20, 0x23d9: 0x400cfc20, 0x23da: 0x400cfe20, 0x23db: 0x400d0020, + 0x23dc: 0x400d0220, 0x23dd: 0x400d0420, 0x23de: 0x400d0620, 0x23df: 0x400d0820, + 0x23e0: 0x400d0a20, 0x23e1: 0x400d0c20, 0x23e2: 0x400d0e20, 0x23e3: 0x400d1020, + 0x23e4: 0x400d1220, 0x23e5: 0x400d1420, 0x23e6: 0x400d1620, + // Block 0x90, offset 0x2400 + 0x2400: 0x400d1820, 0x2401: 0x400d1a20, 0x2402: 0x400d1c20, 0x2403: 0x400d1e20, + 0x2404: 0x400d2020, 0x2405: 0x400d2220, 0x2406: 0x400d2420, 0x2407: 0x400d2620, + 0x2408: 0x400d2820, 0x2409: 0x400d2a20, 0x240a: 0x400d2c20, + 0x2420: 0x0029ce86, 0x2421: 0x0029d086, 0x2422: 0x0029d286, 0x2423: 0x0029d486, + 0x2424: 0x0029d686, 0x2425: 0x0029d886, 0x2426: 0x0029da86, 0x2427: 0x0029dc86, + 0x2428: 0x0029de86, 0x2429: 0xf0000606, 0x242a: 0xf0000606, 0x242b: 0xf0000606, + 0x242c: 0xf0000606, 0x242d: 0xf0000606, 0x242e: 0xf0000606, 0x242f: 0xf0000606, + 0x2430: 0xf0000606, 0x2431: 0xf0000606, 0x2432: 0xf0000606, 0x2433: 0xf0000606, + 0x2434: 0xf0000404, 0x2435: 0xf0000404, 0x2436: 0xf0000404, 0x2437: 0xf0000404, + 0x2438: 0xf0000404, 0x2439: 0xf0000404, 0x243a: 0xf0000404, 0x243b: 0xf0000404, + 0x243c: 0xf0000404, 0x243d: 0xe0000015, 0x243e: 0xe000001a, 0x243f: 0xe000001f, + // Block 0x91, offset 0x2440 + 0x2440: 0xe0000024, 0x2441: 0xe0000029, 0x2442: 0xe000002e, 0x2443: 0xe0000033, + 0x2444: 0xe0000038, 0x2445: 0xe000003d, 0x2446: 0xe0000042, 0x2447: 0xe0000047, + 0x2448: 0xf0001f04, 0x2449: 0xf0001f04, 0x244a: 0xf0001f04, 0x244b: 0xf0001f04, + 0x244c: 0xf0001f04, 0x244d: 0xf0001f04, 0x244e: 0xf0001f04, 0x244f: 0xf0001f04, + 0x2450: 0xf0001f04, 0x2451: 0xf0000404, 0x2452: 0xf0000404, 0x2453: 0xf0000404, + 0x2454: 0xf0000404, 0x2455: 0xf0000404, 0x2456: 0xf0000404, 0x2457: 0xf0000404, + 0x2458: 0xf0000404, 0x2459: 0xf0000404, 0x245a: 0xf0000404, 0x245b: 0xf0000404, + 0x245c: 0xf0000404, 0x245d: 0xf0000404, 0x245e: 0xf0000404, 0x245f: 0xf0000404, + 0x2460: 0xf0000404, 0x2461: 0xf0000404, 0x2462: 0xf0000404, 0x2463: 0xf0000404, + 0x2464: 0xf0000404, 0x2465: 0xf0000404, 0x2466: 0xf0000404, 0x2467: 0xf0000404, + 0x2468: 0xf0000404, 0x2469: 0xf0000404, 0x246a: 0xf0000404, 0x246b: 0xf0000404, + 0x246c: 0xf0000404, 0x246d: 0xf0000404, 0x246e: 0xf0000404, 0x246f: 0xf0000404, + 0x2470: 0xf0000404, 0x2471: 0xf0000404, 0x2472: 0xf0000404, 0x2473: 0xf0000404, + 0x2474: 0xf0000404, 0x2475: 0xf0000404, 0x2476: 0x002bde8c, 0x2477: 0x002c0a8c, + 0x2478: 0x002c3a8c, 0x2479: 0x002c628c, 0x247a: 0x002c988c, 0x247b: 0x002d088c, + 0x247c: 0x002d228c, 0x247d: 0x002d688c, 0x247e: 0x002d9a8c, 0x247f: 0x002dcc8c, + // Block 0x92, offset 0x2480 + 0x2480: 0x002dfe8c, 0x2481: 0x002e228c, 0x2482: 0x002e828c, 0x2483: 0x002e9e8c, + 0x2484: 0x002ee28c, 0x2485: 0x002f2c8c, 0x2486: 0x002f568c, 0x2487: 0x002f7a8c, + 0x2488: 0x002fe68c, 0x2489: 0x00302c8c, 0x248a: 0x00306c8c, 0x248b: 0x0030be8c, + 0x248c: 0x0030e28c, 0x248d: 0x0030f68c, 0x248e: 0x0031008c, 0x248f: 0x00312a8c, + 0x2490: 0x002bde86, 0x2491: 0x002c0a86, 0x2492: 0x002c3a86, 0x2493: 0x002c6286, + 0x2494: 0x002c9886, 0x2495: 0x002d0886, 0x2496: 0x002d2286, 0x2497: 0x002d6886, + 0x2498: 0x002d9a86, 0x2499: 0x002dcc86, 0x249a: 0x002dfe86, 0x249b: 0x002e2286, + 0x249c: 0x002e8286, 0x249d: 0x002e9e86, 0x249e: 0x002ee286, 0x249f: 0x002f2c86, + 0x24a0: 0x002f5686, 0x24a1: 0x002f7a86, 0x24a2: 0x002fe686, 0x24a3: 0x00302c86, + 0x24a4: 0x00306c86, 0x24a5: 0x0030be86, 0x24a6: 0x0030e286, 0x24a7: 0x0030f686, + 0x24a8: 0x00310086, 0x24a9: 0x00312a86, 0x24aa: 0x0029cc86, 0x24ab: 0xe00002e6, + 0x24ac: 0xe00002e9, 0x24ad: 0xe00002ec, 0x24ae: 0xe00002ef, 0x24af: 0xe00002f2, + 0x24b0: 0xe00002f5, 0x24b1: 0xe00002f8, 0x24b2: 0xe00002fb, 0x24b3: 0xe00002fe, + 0x24b4: 0xe00003d5, 0x24b5: 0x0029ce86, 0x24b6: 0x0029d086, 0x24b7: 0x0029d286, + 0x24b8: 0x0029d486, 0x24b9: 0x0029d686, 0x24ba: 0x0029d886, 0x24bb: 0x0029da86, + 0x24bc: 0x0029dc86, 0x24bd: 0x0029de86, 0x24be: 0xe00002d7, 0x24bf: 0x0029cc86, + // Block 0x93, offset 0x24c0 + 0x24c0: 0x400d2e20, 0x24c1: 0x400d3020, 0x24c2: 0x400d3220, 0x24c3: 0x400d3420, + 0x24c4: 0x400d3620, 0x24c5: 0x400d3820, 0x24c6: 0x400d3a20, 0x24c7: 0x400d3c20, + 0x24c8: 0x400d3e20, 0x24c9: 0x400d4020, 0x24ca: 0x400d4220, 0x24cb: 0x400d4420, + 0x24cc: 0x400d4620, 0x24cd: 0x400d4820, 0x24ce: 0x400d4a20, 0x24cf: 0x400d4c20, + 0x24d0: 0x400d4e20, 0x24d1: 0x400d5020, 0x24d2: 0x400d5220, 0x24d3: 0x400d5420, + 0x24d4: 0x400d5620, 0x24d5: 0x400d5820, 0x24d6: 0x400d5a20, 0x24d7: 0x400d5c20, + 0x24d8: 0x400d5e20, 0x24d9: 0x400d6020, 0x24da: 0x400d6220, 0x24db: 0x400d6420, + 0x24dc: 0x400d6620, 0x24dd: 0x400d6820, 0x24de: 0x400d6a20, 0x24df: 0x400d6c20, + 0x24e0: 0x400d6e20, 0x24e1: 0x400d7020, 0x24e2: 0x400d7220, 0x24e3: 0x400d7420, + 0x24e4: 0x400d7620, 0x24e5: 0x400d7820, 0x24e6: 0x400d7a20, 0x24e7: 0x400d7c20, + 0x24e8: 0x400d7e20, 0x24e9: 0x400d8020, 0x24ea: 0x400d8220, 0x24eb: 0x400d8420, + 0x24ec: 0x400d8620, 0x24ed: 0x400d8820, 0x24ee: 0x400d8a20, 0x24ef: 0x400d8c20, + 0x24f0: 0x400d8e20, 0x24f1: 0x400d9020, 0x24f2: 0x400d9220, 0x24f3: 0x400d9420, + 0x24f4: 0x400d9620, 0x24f5: 0x400d9820, 0x24f6: 0x400d9a20, 0x24f7: 0x400d9c20, + 0x24f8: 0x400d9e20, 0x24f9: 0x400da020, 0x24fa: 0x400da220, 0x24fb: 0x400da420, + 0x24fc: 0x400da620, 0x24fd: 0x400da820, 0x24fe: 0x400daa20, 0x24ff: 0x400dac20, + // Block 0x94, offset 0x2500 + 0x2500: 0x400dae20, 0x2501: 0x400db020, 0x2502: 0x400db220, 0x2503: 0x400db420, + 0x2504: 0x400db620, 0x2505: 0x400db820, 0x2506: 0x400dba20, 0x2507: 0x400dbc20, + 0x2508: 0x400dbe20, 0x2509: 0x400dc020, 0x250a: 0x400dc220, 0x250b: 0x400dc420, + 0x250c: 0x400dc620, 0x250d: 0x400dc820, 0x250e: 0x400dca20, 0x250f: 0x400dcc20, + 0x2510: 0x400dce20, 0x2511: 0x400dd020, 0x2512: 0x400dd220, 0x2513: 0x400dd420, + 0x2514: 0x400dd620, 0x2515: 0x400dd820, 0x2516: 0x400dda20, 0x2517: 0x400ddc20, + 0x2518: 0x400dde20, 0x2519: 0x400de020, 0x251a: 0x400de220, 0x251b: 0x400de420, + 0x251c: 0x400de620, 0x251d: 0x400de820, 0x251e: 0x400dea20, 0x251f: 0x400dec20, + 0x2520: 0x400dee20, 0x2521: 0x400df020, 0x2522: 0x400df220, 0x2523: 0x400df420, + 0x2524: 0x400df620, 0x2525: 0x400df820, 0x2526: 0x400dfa20, 0x2527: 0x400dfc20, + 0x2528: 0x400dfe20, 0x2529: 0x400e0020, 0x252a: 0x400e0220, 0x252b: 0x400e0420, + 0x252c: 0x400e0620, 0x252d: 0x400e0820, 0x252e: 0x400e0a20, 0x252f: 0x400e0c20, + 0x2530: 0x400e0e20, 0x2531: 0x400e1020, 0x2532: 0x400e1220, 0x2533: 0x400e1420, + 0x2534: 0x400e1620, 0x2535: 0x400e1820, 0x2536: 0x400e1a20, 0x2537: 0x400e1c20, + 0x2538: 0x400e1e20, 0x2539: 0x400e2020, 0x253a: 0x400e2220, 0x253b: 0x400e2420, + 0x253c: 0x400e2620, 0x253d: 0x400e2820, 0x253e: 0x400e2a20, 0x253f: 0x400e2c20, + // Block 0x95, offset 0x2540 + 0x2540: 0x400e2e20, 0x2541: 0x400e3020, 0x2542: 0x400e3220, 0x2543: 0x400e3420, + 0x2544: 0x400e3620, 0x2545: 0x400e3820, 0x2546: 0x400e3a20, 0x2547: 0x400e3c20, + 0x2548: 0x400e3e20, 0x2549: 0x400e4020, 0x254a: 0x400e4220, 0x254b: 0x400e4420, + 0x254c: 0x400e4620, 0x254d: 0x400e4820, 0x254e: 0x400e4a20, 0x254f: 0x400e4c20, + 0x2550: 0x400e4e20, 0x2551: 0x400e5020, 0x2552: 0x400e5220, 0x2553: 0x400e5420, + 0x2554: 0x400e5620, 0x2555: 0x400e5820, 0x2556: 0x400e5a20, 0x2557: 0x400e5c20, + 0x2558: 0x400e5e20, 0x2559: 0x400e6020, 0x255a: 0x400e6220, 0x255b: 0x400e6420, + 0x255c: 0x400e6620, 0x255d: 0x400e6820, 0x255e: 0x400e6a20, 0x255f: 0x400e6c20, + 0x2560: 0x400e6e20, 0x2561: 0x400e7020, 0x2562: 0x400e7220, 0x2563: 0x400e7420, + 0x2564: 0x400e7620, 0x2565: 0x400e7820, 0x2566: 0x400e7a20, 0x2567: 0x400e7c20, + 0x2568: 0x400e7e20, 0x2569: 0x400e8020, 0x256a: 0x400e8220, 0x256b: 0x400e8420, + 0x256c: 0x400e8620, 0x256d: 0x400e8820, 0x256e: 0x400e8a20, 0x256f: 0x400e8c20, + 0x2570: 0x400e8e20, 0x2571: 0x400e9020, 0x2572: 0x400e9220, 0x2573: 0x400e9420, + 0x2574: 0x400e9620, 0x2575: 0x400e9820, 0x2576: 0x400e9a20, 0x2577: 0x400e9c20, + 0x2578: 0x400e9e20, 0x2579: 0x400ea020, 0x257a: 0x400ea220, 0x257b: 0x400ea420, + 0x257c: 0x400ea620, 0x257d: 0x400ea820, 0x257e: 0x400eaa20, 0x257f: 0x400eac20, + // Block 0x96, offset 0x2580 + 0x2580: 0x400eae20, 0x2581: 0x400eb020, 0x2582: 0x400eb220, 0x2583: 0x400eb420, + 0x2584: 0x400eb620, 0x2585: 0x400eb820, 0x2586: 0x400eba20, 0x2587: 0x400ebc20, + 0x2588: 0x400ebe20, 0x2589: 0x400ec020, 0x258a: 0x400ec220, 0x258b: 0x400ec420, + 0x258c: 0x400ec620, 0x258d: 0x400ec820, 0x258e: 0x400eca20, 0x258f: 0x400ecc20, + 0x2590: 0x400ece20, 0x2591: 0x400ed020, 0x2592: 0x400ed220, 0x2593: 0x400ed420, + 0x2594: 0x400ed620, 0x2595: 0x400ed820, 0x2596: 0x400eda20, 0x2597: 0x400edc20, + 0x2598: 0x400ede20, 0x2599: 0x400ee020, 0x259a: 0x400ee220, 0x259b: 0x400ee420, + 0x259c: 0x400ee620, 0x259d: 0x400ee820, 0x259e: 0x400eea20, 0x259f: 0x400eec20, + 0x25a0: 0x400eee20, 0x25a1: 0x400ef020, 0x25a2: 0x400ef220, 0x25a3: 0x400ef420, + 0x25a4: 0x400ef620, 0x25a5: 0x400ef820, 0x25a6: 0x400efa20, 0x25a7: 0x400efc20, + 0x25a8: 0x400efe20, 0x25a9: 0x400f0020, 0x25aa: 0x400f0220, 0x25ab: 0x400f0420, + 0x25ac: 0x400f0620, 0x25ad: 0x400f0820, 0x25ae: 0x400f0a20, 0x25af: 0x400f0c20, + 0x25b0: 0x400f0e20, 0x25b1: 0x400f1020, 0x25b2: 0x400f1220, 0x25b3: 0x400f1420, + 0x25b4: 0x400f1620, 0x25b5: 0x400f1820, 0x25b6: 0x400f1a20, 0x25b7: 0x400f1c20, + 0x25b8: 0x400f1e20, 0x25b9: 0x400f2020, 0x25ba: 0x400f2220, 0x25bb: 0x400f2420, + 0x25bc: 0x400f2620, 0x25bd: 0x400f2820, 0x25be: 0x400f2a20, 0x25bf: 0x400f2c20, + // Block 0x97, offset 0x25c0 + 0x25c0: 0x400f2e20, 0x25c1: 0x400f3020, 0x25c2: 0x400f3220, 0x25c3: 0x400f3420, + 0x25c4: 0x400f3620, 0x25c5: 0x400f3820, 0x25c6: 0x400f3a20, 0x25c7: 0x400f3c20, + 0x25c8: 0x400f3e20, 0x25c9: 0x400f4020, 0x25ca: 0x400f4220, 0x25cb: 0x400f4420, + 0x25cc: 0x400f4620, 0x25cd: 0x400f4820, 0x25ce: 0x400f4a20, 0x25cf: 0x400f4c20, + 0x25d0: 0x400f4e20, 0x25d1: 0x400f5020, 0x25d2: 0x400f5220, 0x25d3: 0x400f5420, + 0x25d4: 0x400f5620, 0x25d5: 0x400f5820, 0x25d6: 0x400f5a20, 0x25d7: 0x400f5c20, + 0x25d8: 0x400f5e20, 0x25d9: 0x400f6020, 0x25da: 0x400f6220, 0x25db: 0x400f6420, + 0x25dc: 0x400f6620, 0x25dd: 0x400f6820, 0x25de: 0x400f6a20, 0x25df: 0x400f6c20, + 0x25e0: 0x400f6e20, 0x25e1: 0x400f7020, 0x25e2: 0x400f7220, 0x25e3: 0x400f7420, + 0x25e4: 0x400f7620, 0x25e5: 0x400f7820, 0x25e6: 0x400f7a20, 0x25e7: 0x400f7c20, + 0x25e8: 0x400f7e20, 0x25e9: 0x400f8020, 0x25ea: 0x400f8220, 0x25eb: 0x400f8420, + 0x25ec: 0x400f8620, 0x25ed: 0x400f8820, 0x25ee: 0x400f8a20, 0x25ef: 0x400f8c20, + 0x25f0: 0x40195220, 0x25f1: 0x40195420, 0x25f2: 0x40195620, 0x25f3: 0x40195820, + 0x25f4: 0x40195a20, 0x25f5: 0x40195c20, 0x25f6: 0x40195e20, 0x25f7: 0x40196020, + 0x25f8: 0x400f8e20, 0x25f9: 0x400f9020, 0x25fa: 0x400f9220, 0x25fb: 0x400f9420, + 0x25fc: 0x400f9620, 0x25fd: 0x400f9820, 0x25fe: 0x400f9a20, 0x25ff: 0x400f9c20, + // Block 0x98, offset 0x2600 + 0x2600: 0x400f9e20, 0x2601: 0x400fa020, 0x2602: 0x400fa220, 0x2603: 0x400fa420, + 0x2604: 0x400fa620, 0x2605: 0x400fa820, 0x2606: 0x400faa20, 0x2607: 0x400fac20, + 0x2608: 0x400fae20, 0x2609: 0x400fb020, 0x260a: 0x400fb220, 0x260b: 0x400fb420, + 0x260c: 0x400fb620, 0x260d: 0x400fb820, 0x260e: 0x400fba20, 0x260f: 0x400fbc20, + 0x2610: 0x400fbe20, 0x2611: 0x400fc020, 0x2612: 0x400fc220, 0x2613: 0x400fc420, + 0x2614: 0x400fc620, 0x2615: 0x400fc820, 0x2616: 0x400fca20, 0x2617: 0x400fcc20, + 0x2618: 0x400fce20, 0x2619: 0x400fd020, 0x261a: 0x400fd220, 0x261b: 0x400fd420, + 0x261c: 0x400fd620, 0x261d: 0x400fd820, 0x261e: 0x400fda20, 0x261f: 0x400fdc20, + 0x2620: 0x400fde20, 0x2621: 0x400fe020, 0x2622: 0x400fe220, 0x2623: 0x400fe420, + 0x2624: 0x400fe620, 0x2625: 0x400fe820, 0x2626: 0x400fea20, 0x2627: 0x400fec20, + 0x2628: 0x400fee20, 0x2629: 0x400ff020, 0x262a: 0x400ff220, 0x262b: 0x400ff420, + 0x262c: 0x400ff620, 0x262d: 0x401dde20, 0x262e: 0x401de020, 0x262f: 0x401de220, + 0x2630: 0x400ff820, 0x2631: 0x400ffa20, 0x2632: 0x400ffc20, 0x2633: 0x400ffe20, + 0x2634: 0x40100020, 0x2635: 0x40100220, 0x2636: 0x40100420, 0x2637: 0x40100620, + 0x2638: 0x40100820, 0x2639: 0x40100a20, 0x263a: 0x40100c20, 0x263b: 0x40100e20, + 0x263c: 0x40101020, 0x263d: 0x40101220, 0x263e: 0x40101420, 0x263f: 0x40101620, + // Block 0x99, offset 0x2640 + 0x2640: 0x40101820, 0x2641: 0x40101a20, 0x2642: 0x40101c20, 0x2643: 0x40101e20, + 0x2644: 0x40102020, 0x2645: 0x40102220, 0x2646: 0x40102420, 0x2647: 0x40102620, + 0x2648: 0x40102820, 0x2649: 0x40102a20, 0x264a: 0x40194620, 0x264b: 0x40194820, + 0x264c: 0x40194a20, 0x264d: 0x40194c20, 0x264e: 0x40194e20, 0x264f: 0x40195020, + 0x2650: 0x40102c20, 0x2651: 0x40102e20, 0x2652: 0x40103020, 0x2653: 0x40103220, + 0x2654: 0x40103420, 0x2655: 0x40103620, 0x2656: 0x40103820, 0x2657: 0x40103a20, + 0x2658: 0x40103c20, 0x2659: 0x40103e20, 0x265a: 0x40104020, 0x265b: 0x40104220, + 0x265c: 0x40104420, 0x265d: 0x40104620, 0x265e: 0x40104820, 0x265f: 0x40104a20, + 0x2660: 0x40104c20, 0x2661: 0x40104e20, 0x2662: 0x40105020, 0x2663: 0x40105220, + 0x2664: 0x40105420, 0x2665: 0x40105620, 0x2666: 0x40105820, 0x2667: 0x40105a20, + 0x2668: 0x40105c20, 0x2669: 0x40105e20, 0x266a: 0x40106020, 0x266b: 0x40106220, + 0x266c: 0x40106420, 0x266d: 0x40106620, 0x266e: 0x40106820, 0x266f: 0x40106a20, + 0x2670: 0x40106c20, 0x2671: 0x40106e20, 0x2672: 0x40107020, 0x2673: 0x40107220, + 0x2674: 0x40107420, 0x2675: 0x40107620, 0x2676: 0x40107820, 0x2677: 0x40107a20, + 0x2678: 0x40107c20, 0x2679: 0x40107e20, 0x267a: 0x40108020, 0x267b: 0x40108220, + 0x267c: 0x40108420, 0x267d: 0x40108620, 0x267e: 0x40108820, 0x267f: 0x40108a20, + // Block 0x9a, offset 0x2680 + 0x2680: 0x40108c20, 0x2681: 0x40108e20, 0x2682: 0x40109020, 0x2683: 0x40109220, + 0x2684: 0x40109420, 0x2685: 0x40109620, 0x2686: 0x40109820, 0x2687: 0x40109a20, + 0x2688: 0x40109c20, 0x2689: 0x40109e20, 0x268a: 0x4010a020, 0x268b: 0x4010a220, + 0x268c: 0x4010a420, 0x268d: 0x4010a620, 0x268e: 0x4010a820, 0x268f: 0x4010aa20, + 0x2690: 0x4010ac20, 0x2691: 0x4010ae20, 0x2692: 0x4010b020, 0x2693: 0x4010b220, + 0x2694: 0x4010b420, 0x2695: 0x4010b620, 0x2696: 0x4010b820, 0x2697: 0x4010ba20, + 0x2698: 0x4010bc20, 0x2699: 0x4010be20, 0x269a: 0x4010c020, 0x269b: 0x4010c220, + 0x269c: 0x4010c420, 0x269d: 0x4010c620, 0x269e: 0x4010c820, 0x269f: 0x4010ca20, + 0x26a0: 0x4010cc20, 0x26a1: 0x4010ce20, 0x26a2: 0x4010d020, 0x26a3: 0x4010d220, + 0x26a4: 0x4010d420, 0x26a5: 0x4010d620, 0x26a6: 0x4010d820, 0x26a7: 0x4010da20, + 0x26a8: 0x4010dc20, 0x26a9: 0x4010de20, 0x26aa: 0x4010e020, 0x26ab: 0x4010e220, + 0x26ac: 0x4010e420, 0x26ad: 0x4010e620, 0x26ae: 0x4010e820, 0x26af: 0x4010ea20, + 0x26b0: 0x4010ec20, 0x26b1: 0x4010ee20, 0x26b2: 0x4010f020, 0x26b3: 0x4010f220, + 0x26b4: 0x4010f420, 0x26b5: 0x4010f620, 0x26b6: 0x4010f820, 0x26b7: 0x4010fa20, + 0x26b8: 0x4010fc20, 0x26b9: 0x4010fe20, 0x26ba: 0x40110020, 0x26bb: 0x40110220, + 0x26bc: 0x40110420, 0x26bd: 0x40110620, 0x26be: 0x40110820, 0x26bf: 0x40110a20, + // Block 0x9b, offset 0x26c0 + 0x26c1: 0x40114020, 0x26c2: 0x40114220, 0x26c3: 0x40114420, + 0x26c4: 0x40114620, 0x26c5: 0x40114820, 0x26c6: 0x40114a20, 0x26c7: 0x40114c20, + 0x26c8: 0x40114e20, 0x26c9: 0x40115020, 0x26ca: 0x40115220, 0x26cb: 0x40115420, + 0x26cc: 0x40115620, 0x26cd: 0x40115820, 0x26ce: 0x40115a20, 0x26cf: 0x40115c20, + 0x26d0: 0x40115e20, 0x26d1: 0x40116020, 0x26d2: 0x40116220, 0x26d3: 0x40116420, + 0x26d4: 0x40116620, 0x26d5: 0x40116820, 0x26d6: 0x40116a20, 0x26d7: 0x40116c20, + 0x26d8: 0x40116e20, 0x26d9: 0x40117020, 0x26da: 0x40117220, 0x26db: 0x40117420, + 0x26dc: 0x40117620, 0x26dd: 0x40117820, 0x26de: 0x40117a20, 0x26df: 0x40117c20, + 0x26e0: 0x40117e20, 0x26e1: 0x40118020, 0x26e2: 0x40118220, 0x26e3: 0x40118420, + 0x26e4: 0x40118620, 0x26e5: 0x40118820, 0x26e6: 0x40118a20, 0x26e7: 0x40118c20, + 0x26e8: 0x40118e20, 0x26e9: 0x40119020, 0x26ea: 0x40119220, 0x26eb: 0x40119420, + 0x26ec: 0x40119620, 0x26ed: 0x40119820, 0x26ee: 0x40119a20, 0x26ef: 0x40119c20, + 0x26f0: 0x40119e20, 0x26f1: 0x4011a020, 0x26f2: 0x4011a220, 0x26f3: 0x4011a420, + 0x26f4: 0x4011a620, 0x26f5: 0x4011a820, 0x26f6: 0x4011aa20, 0x26f7: 0x4011ac20, + 0x26f8: 0x4011ae20, 0x26f9: 0x4011b020, 0x26fa: 0x4011b220, 0x26fb: 0x4011b420, + 0x26fc: 0x4011b620, 0x26fd: 0x4011b820, 0x26fe: 0x4011ba20, 0x26ff: 0x4011bc20, + // Block 0x9c, offset 0x2700 + 0x2700: 0x4011be20, 0x2701: 0x4011c020, 0x2702: 0x4011c220, 0x2703: 0x4011c420, + 0x2704: 0x4011c620, 0x2705: 0x4011c820, 0x2706: 0x4011ca20, 0x2707: 0x4011cc20, + 0x2708: 0x4011ce20, 0x2709: 0x4011d020, 0x270a: 0x4011d220, 0x270b: 0x4011d420, + 0x270c: 0x4011d620, 0x270d: 0x4011d820, 0x270e: 0x4011da20, 0x270f: 0x4011dc20, + 0x2710: 0x4011de20, 0x2711: 0x4011e020, 0x2712: 0x4011e220, 0x2713: 0x4011e420, + 0x2714: 0x4011e620, 0x2715: 0x4011e820, 0x2716: 0x4011ea20, 0x2717: 0x4011ec20, + 0x2718: 0x4011ee20, 0x2719: 0x4011f020, 0x271a: 0x4011f220, 0x271b: 0x4011f420, + 0x271c: 0x4011f620, 0x271d: 0x4011f820, 0x271e: 0x4011fa20, 0x271f: 0x4011fc20, + 0x2720: 0x4011fe20, 0x2721: 0x40120020, 0x2722: 0x40120220, 0x2723: 0x40120420, + 0x2724: 0x40120620, 0x2725: 0x40120820, 0x2726: 0x40120a20, 0x2727: 0x40120c20, + 0x2728: 0x40045820, 0x2729: 0x40045a20, 0x272a: 0x40045c20, 0x272b: 0x40045e20, + 0x272c: 0x40046020, 0x272d: 0x40046220, 0x272e: 0x40046420, 0x272f: 0x40046620, + 0x2730: 0x40046820, 0x2731: 0x40046a20, 0x2732: 0x40046c20, 0x2733: 0x40046e20, + 0x2734: 0x40047020, 0x2735: 0x40047220, 0x2736: 0x0029ce86, 0x2737: 0x0029d086, + 0x2738: 0x0029d286, 0x2739: 0x0029d486, 0x273a: 0x0029d686, 0x273b: 0x0029d886, + 0x273c: 0x0029da86, 0x273d: 0x0029dc86, 0x273e: 0x0029de86, 0x273f: 0xe00002da, + // Block 0x9d, offset 0x2740 + 0x2740: 0x0029ce86, 0x2741: 0x0029d086, 0x2742: 0x0029d286, 0x2743: 0x0029d486, + 0x2744: 0x0029d686, 0x2745: 0x0029d886, 0x2746: 0x0029da86, 0x2747: 0x0029dc86, + 0x2748: 0x0029de86, 0x2749: 0xe00002dd, 0x274a: 0x0029ce86, 0x274b: 0x0029d086, + 0x274c: 0x0029d286, 0x274d: 0x0029d486, 0x274e: 0x0029d686, 0x274f: 0x0029d886, + 0x2750: 0x0029da86, 0x2751: 0x0029dc86, 0x2752: 0x0029de86, 0x2753: 0xe00002e0, + 0x2754: 0x40120e20, 0x2755: 0x40121020, 0x2756: 0x40121220, 0x2757: 0x40121420, + 0x2758: 0x40121620, 0x2759: 0x40121820, 0x275a: 0x40121a20, 0x275b: 0x40121c20, + 0x275c: 0x40121e20, 0x275d: 0x40122020, 0x275e: 0x40122220, 0x275f: 0x40122420, + 0x2760: 0x40122620, 0x2761: 0x40122820, 0x2762: 0x40122a20, 0x2763: 0x40122c20, + 0x2764: 0x40122e20, 0x2765: 0x40123020, 0x2766: 0x40123220, 0x2767: 0x40123420, + 0x2768: 0x40123620, 0x2769: 0x40123820, 0x276a: 0x40123a20, 0x276b: 0x40123c20, + 0x276c: 0x40123e20, 0x276d: 0x40124020, 0x276e: 0x40124220, 0x276f: 0x40124420, + 0x2770: 0x40124620, 0x2771: 0x40124820, 0x2772: 0x40124a20, 0x2773: 0x40124c20, + 0x2774: 0x40124e20, 0x2775: 0x40125020, 0x2776: 0x40125220, 0x2777: 0x40125420, + 0x2778: 0x40125620, 0x2779: 0x40125820, 0x277a: 0x40125a20, 0x277b: 0x40125c20, + 0x277c: 0x40125e20, 0x277d: 0x40126020, 0x277e: 0x40126220, 0x277f: 0x40126420, + // Block 0x9e, offset 0x2780 + 0x2780: 0x40126620, 0x2781: 0x40126820, 0x2782: 0x40126a20, 0x2783: 0x40126c20, + 0x2784: 0x40126e20, 0x2785: 0x40044020, 0x2786: 0x40044220, 0x2787: 0x40127020, + 0x2788: 0x40127220, 0x2789: 0x40127420, 0x278a: 0x40127620, 0x278b: 0x40127820, + 0x278c: 0x40127a20, 0x278d: 0x40127c20, 0x278e: 0x40127e20, 0x278f: 0x40128020, + 0x2790: 0x40128220, 0x2791: 0x40128420, 0x2792: 0x40128620, 0x2793: 0x40128820, + 0x2794: 0x40128a20, 0x2795: 0x40128c20, 0x2796: 0x40128e20, 0x2797: 0x40129020, + 0x2798: 0x40129220, 0x2799: 0x40129420, 0x279a: 0x40129620, 0x279b: 0x40129820, + 0x279c: 0x40129a20, 0x279d: 0x40129c20, 0x279e: 0x40129e20, 0x279f: 0x4012a020, + 0x27a0: 0x4012a220, 0x27a1: 0x4012a420, 0x27a2: 0x4012a620, 0x27a3: 0x4012a820, + 0x27a4: 0x4012aa20, 0x27a5: 0x4012ac20, 0x27a6: 0x40044420, 0x27a7: 0x40044620, + 0x27a8: 0x40044820, 0x27a9: 0x40044a20, 0x27aa: 0x40044c20, 0x27ab: 0x40044e20, + 0x27ac: 0x40045020, 0x27ad: 0x40045220, 0x27ae: 0x40045420, 0x27af: 0x40045620, + 0x27b0: 0x4012ae20, 0x27b1: 0x4012b020, 0x27b2: 0x4012b220, 0x27b3: 0x4012b420, + 0x27b4: 0x4012b620, 0x27b5: 0x4012b820, 0x27b6: 0x4012ba20, 0x27b7: 0x4012bc20, + 0x27b8: 0x4012be20, 0x27b9: 0x4012c020, 0x27ba: 0x4012c220, 0x27bb: 0x4012c420, + 0x27bc: 0x4012c620, 0x27bd: 0x4012c820, 0x27be: 0x4012ca20, 0x27bf: 0x4012cc20, + // Block 0x9f, offset 0x27c0 + 0x27c0: 0x40174620, 0x27c1: 0x40174820, 0x27c2: 0x40174a20, 0x27c3: 0x40174c20, + 0x27c4: 0x40174e20, 0x27c5: 0x40175020, 0x27c6: 0x40175220, 0x27c7: 0x40175420, + 0x27c8: 0x40175620, 0x27c9: 0x40175820, 0x27ca: 0x40175a20, 0x27cb: 0x40175c20, + 0x27cc: 0x40175e20, 0x27cd: 0x40176020, 0x27ce: 0x40176220, 0x27cf: 0x40176420, + 0x27d0: 0x40176620, 0x27d1: 0x40176820, 0x27d2: 0x40176a20, 0x27d3: 0x40176c20, + 0x27d4: 0x40176e20, 0x27d5: 0x40177020, 0x27d6: 0x40177220, 0x27d7: 0x40177420, + 0x27d8: 0x40177620, 0x27d9: 0x40177820, 0x27da: 0x40177a20, 0x27db: 0x40177c20, + 0x27dc: 0x40177e20, 0x27dd: 0x40178020, 0x27de: 0x40178220, 0x27df: 0x40178420, + 0x27e0: 0x40178620, 0x27e1: 0x40178820, 0x27e2: 0x40178a20, 0x27e3: 0x40178c20, + 0x27e4: 0x40178e20, 0x27e5: 0x40179020, 0x27e6: 0x40179220, 0x27e7: 0x40179420, + 0x27e8: 0x40179620, 0x27e9: 0x40179820, 0x27ea: 0x40179a20, 0x27eb: 0x40179c20, + 0x27ec: 0x40179e20, 0x27ed: 0x4017a020, 0x27ee: 0x4017a220, 0x27ef: 0x4017a420, + 0x27f0: 0x4017a620, 0x27f1: 0x4017a820, 0x27f2: 0x4017aa20, 0x27f3: 0x4017ac20, + 0x27f4: 0x4017ae20, 0x27f5: 0x4017b020, 0x27f6: 0x4017b220, 0x27f7: 0x4017b420, + 0x27f8: 0x4017b620, 0x27f9: 0x4017b820, 0x27fa: 0x4017ba20, 0x27fb: 0x4017bc20, + 0x27fc: 0x4017be20, 0x27fd: 0x4017c020, 0x27fe: 0x4017c220, 0x27ff: 0x4017c420, + // Block 0xa0, offset 0x2800 + 0x2800: 0x4017c620, 0x2801: 0x4017c820, 0x2802: 0x4017ca20, 0x2803: 0x4017cc20, + 0x2804: 0x4017ce20, 0x2805: 0x4017d020, 0x2806: 0x4017d220, 0x2807: 0x4017d420, + 0x2808: 0x4017d620, 0x2809: 0x4017d820, 0x280a: 0x4017da20, 0x280b: 0x4017dc20, + 0x280c: 0x4017de20, 0x280d: 0x4017e020, 0x280e: 0x4017e220, 0x280f: 0x4017e420, + 0x2810: 0x4017e620, 0x2811: 0x4017e820, 0x2812: 0x4017ea20, 0x2813: 0x4017ec20, + 0x2814: 0x4017ee20, 0x2815: 0x4017f020, 0x2816: 0x4017f220, 0x2817: 0x4017f420, + 0x2818: 0x4017f620, 0x2819: 0x4017f820, 0x281a: 0x4017fa20, 0x281b: 0x4017fc20, + 0x281c: 0x4017fe20, 0x281d: 0x40180020, 0x281e: 0x40180220, 0x281f: 0x40180420, + 0x2820: 0x40180620, 0x2821: 0x40180820, 0x2822: 0x40180a20, 0x2823: 0x40180c20, + 0x2824: 0x40180e20, 0x2825: 0x40181020, 0x2826: 0x40181220, 0x2827: 0x40181420, + 0x2828: 0x40181620, 0x2829: 0x40181820, 0x282a: 0x40181a20, 0x282b: 0x40181c20, + 0x282c: 0x40181e20, 0x282d: 0x40182020, 0x282e: 0x40182220, 0x282f: 0x40182420, + 0x2830: 0x40182620, 0x2831: 0x40182820, 0x2832: 0x40182a20, 0x2833: 0x40182c20, + 0x2834: 0x40182e20, 0x2835: 0x40183020, 0x2836: 0x40183220, 0x2837: 0x40183420, + 0x2838: 0x40183620, 0x2839: 0x40183820, 0x283a: 0x40183a20, 0x283b: 0x40183c20, + 0x283c: 0x40183e20, 0x283d: 0x40184020, 0x283e: 0x40184220, 0x283f: 0x40184420, + // Block 0xa1, offset 0x2840 + 0x2840: 0x40184620, 0x2841: 0x40184820, 0x2842: 0x40184a20, 0x2843: 0x40184c20, + 0x2844: 0x40184e20, 0x2845: 0x40185020, 0x2846: 0x40185220, 0x2847: 0x40185420, + 0x2848: 0x40185620, 0x2849: 0x40185820, 0x284a: 0x40185a20, 0x284b: 0x40185c20, + 0x284c: 0x40185e20, 0x284d: 0x40186020, 0x284e: 0x40186220, 0x284f: 0x40186420, + 0x2850: 0x40186620, 0x2851: 0x40186820, 0x2852: 0x40186a20, 0x2853: 0x40186c20, + 0x2854: 0x40186e20, 0x2855: 0x40187020, 0x2856: 0x40187220, 0x2857: 0x40187420, + 0x2858: 0x40187620, 0x2859: 0x40187820, 0x285a: 0x40187a20, 0x285b: 0x40187c20, + 0x285c: 0x40187e20, 0x285d: 0x40188020, 0x285e: 0x40188220, 0x285f: 0x40188420, + 0x2860: 0x40188620, 0x2861: 0x40188820, 0x2862: 0x40188a20, 0x2863: 0x40188c20, + 0x2864: 0x40188e20, 0x2865: 0x40189020, 0x2866: 0x40189220, 0x2867: 0x40189420, + 0x2868: 0x40189620, 0x2869: 0x40189820, 0x286a: 0x40189a20, 0x286b: 0x40189c20, + 0x286c: 0x40189e20, 0x286d: 0x4018a020, 0x286e: 0x4018a220, 0x286f: 0x4018a420, + 0x2870: 0x4018a620, 0x2871: 0x4018a820, 0x2872: 0x4018aa20, 0x2873: 0x4018ac20, + 0x2874: 0x4018ae20, 0x2875: 0x4018b020, 0x2876: 0x4018b220, 0x2877: 0x4018b420, + 0x2878: 0x4018b620, 0x2879: 0x4018b820, 0x287a: 0x4018ba20, 0x287b: 0x4018bc20, + 0x287c: 0x4018be20, 0x287d: 0x4018c020, 0x287e: 0x4018c220, 0x287f: 0x4018c420, + // Block 0xa2, offset 0x2880 + 0x2880: 0x4018c620, 0x2881: 0x4018c820, 0x2882: 0x4018ca20, 0x2883: 0x4018cc20, + 0x2884: 0x4018ce20, 0x2885: 0x4018d020, 0x2886: 0x4018d220, 0x2887: 0x4018d420, + 0x2888: 0x4018d620, 0x2889: 0x4018d820, 0x288a: 0x4018da20, 0x288b: 0x4018dc20, + 0x288c: 0x4018de20, 0x288d: 0x4018e020, 0x288e: 0x4018e220, 0x288f: 0x4018e420, + 0x2890: 0x4018e620, 0x2891: 0x4018e820, 0x2892: 0x4018ea20, 0x2893: 0x4018ec20, + 0x2894: 0x4018ee20, 0x2895: 0x4018f020, 0x2896: 0x4018f220, 0x2897: 0x4018f420, + 0x2898: 0x4018f620, 0x2899: 0x4018f820, 0x289a: 0x4018fa20, 0x289b: 0x4018fc20, + 0x289c: 0x4018fe20, 0x289d: 0x40190020, 0x289e: 0x40190220, 0x289f: 0x40190420, + 0x28a0: 0x40190620, 0x28a1: 0x40190820, 0x28a2: 0x40190a20, 0x28a3: 0x40190c20, + 0x28a4: 0x40190e20, 0x28a5: 0x40191020, 0x28a6: 0x40191220, 0x28a7: 0x40191420, + 0x28a8: 0x40191620, 0x28a9: 0x40191820, 0x28aa: 0x40191a20, 0x28ab: 0x40191c20, + 0x28ac: 0x40191e20, 0x28ad: 0x40192020, 0x28ae: 0x40192220, 0x28af: 0x40192420, + 0x28b0: 0x40192620, 0x28b1: 0x40192820, 0x28b2: 0x40192a20, 0x28b3: 0x40192c20, + 0x28b4: 0x40192e20, 0x28b5: 0x40193020, 0x28b6: 0x40193220, 0x28b7: 0x40193420, + 0x28b8: 0x40193620, 0x28b9: 0x40193820, 0x28ba: 0x40193a20, 0x28bb: 0x40193c20, + 0x28bc: 0x40193e20, 0x28bd: 0x40194020, 0x28be: 0x40194220, 0x28bf: 0x40194420, + // Block 0xa3, offset 0x28c0 + 0x28c0: 0x4012ce20, 0x28c1: 0x4012d020, 0x28c2: 0x4012d220, 0x28c3: 0x4012d420, + 0x28c4: 0x4012d620, 0x28c5: 0x4012d820, 0x28c6: 0x4012da20, 0x28c7: 0x4012dc20, + 0x28c8: 0x4012de20, 0x28c9: 0x4012e020, 0x28ca: 0x4012e220, 0x28cb: 0x4012e420, + 0x28cc: 0x4012e620, 0x28cd: 0x4012e820, 0x28ce: 0x4012ea20, 0x28cf: 0x4012ec20, + 0x28d0: 0x4012ee20, 0x28d1: 0x4012f020, 0x28d2: 0x4012f220, 0x28d3: 0x4012f420, + 0x28d4: 0x4012f620, 0x28d5: 0x4012f820, 0x28d6: 0x4012fa20, 0x28d7: 0x4012fc20, + 0x28d8: 0x4012fe20, 0x28d9: 0x40130020, 0x28da: 0x40130220, 0x28db: 0x40130420, + 0x28dc: 0x40130620, 0x28dd: 0x40130820, 0x28de: 0x40130a20, 0x28df: 0x40130c20, + 0x28e0: 0x40130e20, 0x28e1: 0x40131020, 0x28e2: 0x40131220, 0x28e3: 0x40131420, + 0x28e4: 0x40131620, 0x28e5: 0x40131820, 0x28e6: 0x40131a20, 0x28e7: 0x40131c20, + 0x28e8: 0x40131e20, 0x28e9: 0x40132020, 0x28ea: 0x40132220, 0x28eb: 0x40132420, + 0x28ec: 0x40132620, 0x28ed: 0x40132820, 0x28ee: 0x40132a20, 0x28ef: 0x40132c20, + 0x28f0: 0x40132e20, 0x28f1: 0x40133020, 0x28f2: 0x40133220, 0x28f3: 0x40133420, + 0x28f4: 0x40133620, 0x28f5: 0x40133820, 0x28f6: 0x40133a20, 0x28f7: 0x40133c20, + 0x28f8: 0x40133e20, 0x28f9: 0x40134020, 0x28fa: 0x40134220, 0x28fb: 0x40134420, + 0x28fc: 0x40134620, 0x28fd: 0x40134820, 0x28fe: 0x40134a20, 0x28ff: 0x40134c20, + // Block 0xa4, offset 0x2900 + 0x2900: 0x40134e20, 0x2901: 0x40135020, 0x2902: 0x40135220, 0x2903: 0x40135420, + 0x2904: 0x40135620, 0x2905: 0x40135820, 0x2906: 0x40135a20, 0x2907: 0x40135c20, + 0x2908: 0x40135e20, 0x2909: 0x40136020, 0x290a: 0x40136220, 0x290b: 0x40136420, + 0x290c: 0x40136620, 0x290d: 0x40136820, 0x290e: 0x40136a20, 0x290f: 0x40136c20, + 0x2910: 0x40136e20, 0x2911: 0x40137020, 0x2912: 0x40137220, 0x2913: 0x40137420, + 0x2914: 0x40137620, 0x2915: 0x40137820, 0x2916: 0x40137a20, 0x2917: 0x40137c20, + 0x2918: 0x40137e20, 0x2919: 0x40138020, 0x291a: 0x40138220, 0x291b: 0x40138420, + 0x291c: 0x40138620, 0x291d: 0x40138820, 0x291e: 0x40138a20, 0x291f: 0x40138c20, + 0x2920: 0x40138e20, 0x2921: 0x40139020, 0x2922: 0x40139220, 0x2923: 0x40139420, + 0x2924: 0x40139620, 0x2925: 0x40139820, 0x2926: 0x40139a20, 0x2927: 0x40139c20, + 0x2928: 0x40139e20, 0x2929: 0x4013a020, 0x292a: 0x4013a220, 0x292b: 0x4013a420, + 0x292c: 0x4013a620, 0x292d: 0x4013a820, 0x292e: 0x4013aa20, 0x292f: 0x4013ac20, + 0x2930: 0x4013ae20, 0x2931: 0x4013b020, 0x2932: 0x4013b220, 0x2933: 0x4013b420, + 0x2934: 0x4013b620, 0x2935: 0x4013b820, 0x2936: 0x4013ba20, 0x2937: 0x4013bc20, + 0x2938: 0x4013be20, 0x2939: 0x4013c020, 0x293a: 0x4013c220, 0x293b: 0x4013c420, + 0x293c: 0x4013c620, 0x293d: 0x4013c820, 0x293e: 0x4013ca20, 0x293f: 0x4013cc20, + // Block 0xa5, offset 0x2940 + 0x2940: 0x4013ce20, 0x2941: 0x4013d020, 0x2942: 0x4013d220, 0x2943: 0x40041420, + 0x2944: 0x40041620, 0x2945: 0x40041820, 0x2946: 0x40041a20, 0x2947: 0x40041c20, + 0x2948: 0x40041e20, 0x2949: 0x40042020, 0x294a: 0x40042220, 0x294b: 0x40042420, + 0x294c: 0x40042620, 0x294d: 0x40042820, 0x294e: 0x40042a20, 0x294f: 0x40042c20, + 0x2950: 0x40042e20, 0x2951: 0x40043020, 0x2952: 0x40043220, 0x2953: 0x40043420, + 0x2954: 0x40043620, 0x2955: 0x40043820, 0x2956: 0x40043a20, 0x2957: 0x40043c20, + 0x2958: 0x40043e20, 0x2959: 0x4013d420, 0x295a: 0x4013d620, 0x295b: 0x4013d820, + 0x295c: 0x4013da20, 0x295d: 0x4013dc20, 0x295e: 0x4013de20, 0x295f: 0x4013e020, + 0x2960: 0x4013e220, 0x2961: 0x4013e420, 0x2962: 0x4013e620, 0x2963: 0x4013e820, + 0x2964: 0x4013ea20, 0x2965: 0x4013ec20, 0x2966: 0x4013ee20, 0x2967: 0x4013f020, + 0x2968: 0x4013f220, 0x2969: 0x4013f420, 0x296a: 0x4013f620, 0x296b: 0x4013f820, + 0x296c: 0x4013fa20, 0x296d: 0x4013fc20, 0x296e: 0x4013fe20, 0x296f: 0x40140020, + 0x2970: 0x40140220, 0x2971: 0x40140420, 0x2972: 0x40140620, 0x2973: 0x40140820, + 0x2974: 0x40140a20, 0x2975: 0x40140c20, 0x2976: 0x40140e20, 0x2977: 0x40141020, + 0x2978: 0x40141220, 0x2979: 0x40141420, 0x297a: 0x40141620, 0x297b: 0x40141820, + 0x297c: 0x40141a20, 0x297d: 0x40141c20, 0x297e: 0x40141e20, 0x297f: 0x40142020, + // Block 0xa6, offset 0x2980 + 0x2980: 0x40142220, 0x2981: 0x40142420, 0x2982: 0x40142620, 0x2983: 0x40142820, + 0x2984: 0x40142a20, 0x2985: 0x40142c20, 0x2986: 0x40142e20, 0x2987: 0x40143020, + 0x2988: 0x40143220, 0x2989: 0x40143420, 0x298a: 0x40143620, 0x298b: 0x40143820, + 0x298c: 0x40143a20, 0x298d: 0x40143c20, 0x298e: 0x40143e20, 0x298f: 0x40144020, + 0x2990: 0x40144220, 0x2991: 0x40144420, 0x2992: 0x40144620, 0x2993: 0x40144820, + 0x2994: 0x40144a20, 0x2995: 0x40144c20, 0x2996: 0x40144e20, 0x2997: 0x40145020, + 0x2998: 0x4004c620, 0x2999: 0x4004c820, 0x299a: 0x4004ca20, 0x299b: 0x4004cc20, + 0x299c: 0x40145220, 0x299d: 0x40145420, 0x299e: 0x40145620, 0x299f: 0x40145820, + 0x29a0: 0x40145a20, 0x29a1: 0x40145c20, 0x29a2: 0x40145e20, 0x29a3: 0x40146020, + 0x29a4: 0x40146220, 0x29a5: 0x40146420, 0x29a6: 0x40146620, 0x29a7: 0x40146820, + 0x29a8: 0x40146a20, 0x29a9: 0x40146c20, 0x29aa: 0x40146e20, 0x29ab: 0x40147020, + 0x29ac: 0x40147220, 0x29ad: 0x40147420, 0x29ae: 0x40147620, 0x29af: 0x40147820, + 0x29b0: 0x40147a20, 0x29b1: 0x40147c20, 0x29b2: 0x40147e20, 0x29b3: 0x40148020, + 0x29b4: 0x40148220, 0x29b5: 0x40148420, 0x29b6: 0x40148620, 0x29b7: 0x40148820, + 0x29b8: 0x40148a20, 0x29b9: 0x40148c20, 0x29ba: 0x40148e20, 0x29bb: 0x40149020, + 0x29bc: 0x40041020, 0x29bd: 0x40041220, 0x29be: 0x40149220, 0x29bf: 0x40149420, + // Block 0xa7, offset 0x29c0 + 0x29c0: 0x40149620, 0x29c1: 0x40149820, 0x29c2: 0x40149a20, 0x29c3: 0x40149c20, + 0x29c4: 0x40149e20, 0x29c5: 0x4014a020, 0x29c6: 0x4014a220, 0x29c7: 0x4014a420, + 0x29c8: 0x4014a620, 0x29c9: 0x4014a820, 0x29ca: 0x4014aa20, 0x29cb: 0x4014ac20, + 0x29cc: 0xe00000f0, 0x29cd: 0x4014ae20, 0x29ce: 0x4014b020, 0x29cf: 0x4014b220, + 0x29d0: 0x4014b420, 0x29d1: 0x4014b620, 0x29d2: 0x4014b820, 0x29d3: 0x4014ba20, + 0x29d4: 0x4014bc20, 0x29d5: 0x4014be20, 0x29d6: 0x4014c020, 0x29d7: 0x4014c220, + 0x29d8: 0x4014c420, 0x29d9: 0x4014c620, 0x29da: 0x4014c820, 0x29db: 0x4014ca20, + 0x29dc: 0x4014cc20, 0x29dd: 0x4014ce20, 0x29de: 0x4014d020, 0x29df: 0x4014d220, + 0x29e0: 0x4014d420, 0x29e1: 0x4014d620, 0x29e2: 0x4014d820, 0x29e3: 0x4014da20, + 0x29e4: 0x4014dc20, 0x29e5: 0x4014de20, 0x29e6: 0x4014e020, 0x29e7: 0x4014e220, + 0x29e8: 0x4014e420, 0x29e9: 0x4014e620, 0x29ea: 0x4014e820, 0x29eb: 0x4014ea20, + 0x29ec: 0x4014ec20, 0x29ed: 0x4014ee20, 0x29ee: 0x4014f020, 0x29ef: 0x4014f220, + 0x29f0: 0x4014f420, 0x29f1: 0x4014f620, 0x29f2: 0x4014f820, 0x29f3: 0x4014fa20, + 0x29f4: 0x4014fc20, 0x29f5: 0x4014fe20, 0x29f6: 0x40150020, 0x29f7: 0x40150220, + 0x29f8: 0x40150420, 0x29f9: 0x40150620, 0x29fa: 0x40150820, 0x29fb: 0x40150a20, + 0x29fc: 0x40150c20, 0x29fd: 0x40150e20, 0x29fe: 0x40151020, 0x29ff: 0x40151220, + // Block 0xa8, offset 0x2a00 + 0x2a00: 0x40151420, 0x2a01: 0x40151620, 0x2a02: 0x40151820, 0x2a03: 0x40151a20, + 0x2a04: 0x40151c20, 0x2a05: 0x40151e20, 0x2a06: 0x40152020, 0x2a07: 0x40152220, + 0x2a08: 0x40152420, 0x2a09: 0x40152620, 0x2a0a: 0x40152820, 0x2a0b: 0x40152a20, + 0x2a0c: 0x40152c20, 0x2a0d: 0x40152e20, 0x2a0e: 0x40153020, 0x2a0f: 0x40153220, + 0x2a10: 0x40153420, 0x2a11: 0x40153620, 0x2a12: 0x40153820, 0x2a13: 0x40153a20, + 0x2a14: 0x40153c20, 0x2a15: 0x40153e20, 0x2a16: 0x40154020, 0x2a17: 0x40154220, + 0x2a18: 0x40154420, 0x2a19: 0x40154620, 0x2a1a: 0x40154820, 0x2a1b: 0x40154a20, + 0x2a1c: 0x40154c20, 0x2a1d: 0x40154e20, 0x2a1e: 0x40155020, 0x2a1f: 0x40155220, + 0x2a20: 0x40155420, 0x2a21: 0x40155620, 0x2a22: 0x40155820, 0x2a23: 0x40155a20, + 0x2a24: 0x40155c20, 0x2a25: 0x40155e20, 0x2a26: 0x40156020, 0x2a27: 0x40156220, + 0x2a28: 0x40156420, 0x2a29: 0x40156620, 0x2a2a: 0x40156820, 0x2a2b: 0x40156a20, + 0x2a2c: 0x40156c20, 0x2a2d: 0x40156e20, 0x2a2e: 0x40157020, 0x2a2f: 0x40157220, + 0x2a30: 0x40157420, 0x2a31: 0x40157620, 0x2a32: 0x40157820, 0x2a33: 0x40157a20, + 0x2a34: 0xf0000404, 0x2a35: 0xf0001f04, 0x2a36: 0xf0000404, 0x2a37: 0x40157c20, + 0x2a38: 0x40157e20, 0x2a39: 0x40158020, 0x2a3a: 0x40158220, 0x2a3b: 0x40158420, + 0x2a3c: 0x40158620, 0x2a3d: 0x40158820, 0x2a3e: 0x40158a20, 0x2a3f: 0x40158c20, + // Block 0xa9, offset 0x2a40 + 0x2a40: 0x40158e20, 0x2a41: 0x40159020, 0x2a42: 0x40159220, 0x2a43: 0x40159420, + 0x2a44: 0x40159620, 0x2a45: 0x40159820, 0x2a46: 0x40159a20, 0x2a47: 0x40159c20, + 0x2a48: 0x40159e20, 0x2a49: 0x4015a020, 0x2a4a: 0x4015a220, 0x2a4b: 0x4015a420, + 0x2a4c: 0x4015a620, 0x2a4d: 0x4015a820, 0x2a4e: 0x4015aa20, 0x2a4f: 0x4015ac20, + 0x2a50: 0x4015ae20, 0x2a51: 0x4015b020, 0x2a52: 0x4015b220, 0x2a53: 0x4015b420, + 0x2a54: 0x4015b620, 0x2a55: 0x4015b820, 0x2a56: 0x4015ba20, 0x2a57: 0x4015bc20, + 0x2a58: 0x4015be20, 0x2a59: 0x4015c020, 0x2a5a: 0x4015c220, 0x2a5b: 0x4015c420, + 0x2a5c: 0x4015c620, 0x2a5d: 0x4015c820, 0x2a5e: 0x4015ca20, 0x2a5f: 0x4015cc20, + 0x2a60: 0x4015ce20, 0x2a61: 0x4015d020, 0x2a62: 0x4015d220, 0x2a63: 0x4015d420, + 0x2a64: 0x4015d620, 0x2a65: 0x4015d820, 0x2a66: 0x4015da20, 0x2a67: 0x4015dc20, + 0x2a68: 0x4015de20, 0x2a69: 0x4015e020, 0x2a6a: 0x4015e220, 0x2a6b: 0x4015e420, + 0x2a6c: 0x4015e620, 0x2a6d: 0x4015e820, 0x2a6e: 0x4015ea20, 0x2a6f: 0x4015ec20, + 0x2a70: 0x4015ee20, 0x2a71: 0x4015f020, 0x2a72: 0x4015f220, 0x2a73: 0x4015f420, + 0x2a74: 0x4015f620, 0x2a75: 0x4015f820, 0x2a76: 0x4015fa20, 0x2a77: 0x4015fc20, + 0x2a78: 0x4015fe20, 0x2a79: 0x40160020, 0x2a7a: 0x40160220, 0x2a7b: 0x40160420, + 0x2a7c: 0x40160620, 0x2a7d: 0x40160820, 0x2a7e: 0x40160a20, 0x2a7f: 0x40160c20, + // Block 0xaa, offset 0x2a80 + 0x2a80: 0x40160e20, 0x2a81: 0x40161020, 0x2a82: 0x40161220, 0x2a83: 0x40161420, + 0x2a84: 0x40161620, 0x2a85: 0x40161820, 0x2a86: 0x40161a20, 0x2a87: 0x40161c20, + 0x2a88: 0x40161e20, 0x2a89: 0x40162020, 0x2a8a: 0x40162220, 0x2a8b: 0x40162420, + 0x2a8c: 0x40162620, 0x2a8d: 0x40162820, 0x2a8e: 0x40162a20, 0x2a8f: 0x40162c20, + 0x2a90: 0x40162e20, 0x2a91: 0x40163020, 0x2a92: 0x40163220, 0x2a93: 0x40163420, + 0x2a94: 0x40163620, 0x2a95: 0x40163820, 0x2a96: 0x40163a20, 0x2a97: 0x40163c20, + 0x2a98: 0x40163e20, 0x2a99: 0x40164020, 0x2a9a: 0x40164220, 0x2a9b: 0x40164420, + 0x2a9c: 0xe000014f, 0x2a9d: 0x40164620, 0x2a9e: 0x40164820, 0x2a9f: 0x40164a20, + 0x2aa0: 0x40164c20, 0x2aa1: 0x40164e20, 0x2aa2: 0x40165020, 0x2aa3: 0x40165220, + 0x2aa4: 0x40165420, 0x2aa5: 0x40165620, 0x2aa6: 0x40165820, 0x2aa7: 0x40165a20, + 0x2aa8: 0x40165c20, 0x2aa9: 0x40165e20, 0x2aaa: 0x40166020, 0x2aab: 0x40166220, + 0x2aac: 0x40166420, 0x2aad: 0x40166620, 0x2aae: 0x40166820, 0x2aaf: 0x40166a20, + 0x2ab0: 0x40166c20, 0x2ab1: 0x40166e20, 0x2ab2: 0x40167020, 0x2ab3: 0x40167220, + 0x2ab4: 0x40167420, 0x2ab5: 0x40167620, 0x2ab6: 0x40167820, 0x2ab7: 0x40167a20, + 0x2ab8: 0x40167c20, 0x2ab9: 0x40167e20, 0x2aba: 0x40168020, 0x2abb: 0x40168220, + 0x2abc: 0x40168420, 0x2abd: 0x40168620, 0x2abe: 0x40168820, 0x2abf: 0x40168a20, + // Block 0xab, offset 0x2ac0 + 0x2ac0: 0x40168c20, 0x2ac1: 0x40168e20, 0x2ac2: 0x40169020, 0x2ac3: 0x40169220, + 0x2ac4: 0x40169420, 0x2ac5: 0x40169620, 0x2ac6: 0x40169820, 0x2ac7: 0x40169a20, + 0x2ac8: 0x40169c20, 0x2ac9: 0x40169e20, 0x2aca: 0x4016a020, 0x2acb: 0x4016a220, + 0x2acc: 0x4016a420, 0x2acd: 0x4016a620, 0x2ace: 0x4016a820, 0x2acf: 0x4016aa20, + 0x2ad0: 0x4016ac20, 0x2ad1: 0x4016ae20, 0x2ad2: 0x4016b020, 0x2ad3: 0x4016b220, + 0x2ad4: 0x4016b420, 0x2ad5: 0x4016b620, 0x2ad6: 0x4016b820, 0x2ad7: 0x4016ba20, + 0x2ad8: 0x4016bc20, 0x2ad9: 0x4016be20, 0x2ada: 0x4016c020, 0x2adb: 0x4016c220, + 0x2adc: 0x4016c420, 0x2add: 0x4016c620, 0x2ade: 0x4016c820, 0x2adf: 0x4016ca20, + 0x2ae0: 0x4016cc20, 0x2ae1: 0x4016ce20, 0x2ae2: 0x4016d020, 0x2ae3: 0x4016d220, + 0x2ae4: 0x4016d420, 0x2ae5: 0x4016d620, 0x2ae6: 0x4016d820, 0x2ae7: 0x4016da20, + 0x2ae8: 0x4016dc20, 0x2ae9: 0x4016de20, 0x2aea: 0x4016e020, 0x2aeb: 0x4016e220, + 0x2aec: 0x4016e420, 0x2aed: 0x4016e620, 0x2aee: 0x4016e820, 0x2aef: 0x4016ea20, + 0x2af0: 0x4016ec20, 0x2af1: 0x4016ee20, 0x2af2: 0x4016f020, 0x2af3: 0x4016f220, + 0x2af4: 0x4016f420, 0x2af5: 0x4016f620, 0x2af6: 0x4016f820, 0x2af7: 0x4016fa20, + 0x2af8: 0x4016fc20, 0x2af9: 0x4016fe20, 0x2afa: 0x40170020, 0x2afb: 0x40170220, + 0x2afc: 0x40170420, 0x2afd: 0x40170620, 0x2afe: 0x40170820, 0x2aff: 0x40170a20, + // Block 0xac, offset 0x2b00 + 0x2b00: 0x40170c20, 0x2b01: 0x40170e20, 0x2b02: 0x40171020, 0x2b03: 0x40171220, + 0x2b04: 0x40171420, 0x2b05: 0x40171620, 0x2b06: 0x40171820, 0x2b07: 0x40171a20, + 0x2b08: 0x40171c20, 0x2b09: 0x40171e20, 0x2b0a: 0x40172020, 0x2b0b: 0x40172220, + 0x2b0c: 0x40172420, + 0x2b10: 0x40172620, 0x2b11: 0x40172820, 0x2b12: 0x40172a20, 0x2b13: 0x40172c20, + 0x2b14: 0x40172e20, 0x2b15: 0x40173020, 0x2b16: 0x40173220, 0x2b17: 0x40173420, + 0x2b18: 0x40173620, 0x2b19: 0x40173820, + // Block 0xad, offset 0x2b40 + 0x2b40: 0x00373888, 0x2b41: 0x00373a88, 0x2b42: 0x00373c88, 0x2b43: 0x00373e88, + 0x2b44: 0x00374088, 0x2b45: 0x00374288, 0x2b46: 0x00374488, 0x2b47: 0x00374688, + 0x2b48: 0x00374888, 0x2b49: 0x00374a88, 0x2b4a: 0x00374c88, 0x2b4b: 0x00374e88, + 0x2b4c: 0x00375088, 0x2b4d: 0x00375288, 0x2b4e: 0x00375488, 0x2b4f: 0x00375688, + 0x2b50: 0x00375888, 0x2b51: 0x00375a88, 0x2b52: 0x00375c88, 0x2b53: 0x00375e88, + 0x2b54: 0x00376088, 0x2b55: 0x00376288, 0x2b56: 0x00376488, 0x2b57: 0x00376688, + 0x2b58: 0x00376888, 0x2b59: 0x00376a88, 0x2b5a: 0x00376c88, 0x2b5b: 0x00376e88, + 0x2b5c: 0x00377088, 0x2b5d: 0x00377288, 0x2b5e: 0x00377488, 0x2b5f: 0x00377688, + 0x2b60: 0x00377888, 0x2b61: 0x00377a88, 0x2b62: 0x00377c88, 0x2b63: 0x00377e88, + 0x2b64: 0x00378088, 0x2b65: 0x00378288, 0x2b66: 0x00378488, 0x2b67: 0x00378688, + 0x2b68: 0x00378888, 0x2b69: 0x00378a88, 0x2b6a: 0x00378c88, 0x2b6b: 0x00378e88, + 0x2b6c: 0x00379088, 0x2b6d: 0x00379288, 0x2b6e: 0x00379488, + 0x2b70: 0x40373820, 0x2b71: 0x40373a20, 0x2b72: 0x40373c20, 0x2b73: 0x40373e20, + 0x2b74: 0x40374020, 0x2b75: 0x40374220, 0x2b76: 0x40374420, 0x2b77: 0x40374620, + 0x2b78: 0x40374820, 0x2b79: 0x40374a20, 0x2b7a: 0x40374c20, 0x2b7b: 0x40374e20, + 0x2b7c: 0x40375020, 0x2b7d: 0x40375220, 0x2b7e: 0x40375420, 0x2b7f: 0x40375620, + // Block 0xae, offset 0x2b80 + 0x2b80: 0x40375820, 0x2b81: 0x40375a20, 0x2b82: 0x40375c20, 0x2b83: 0x40375e20, + 0x2b84: 0x40376020, 0x2b85: 0x40376220, 0x2b86: 0x40376420, 0x2b87: 0x40376620, + 0x2b88: 0x40376820, 0x2b89: 0x40376a20, 0x2b8a: 0x40376c20, 0x2b8b: 0x40376e20, + 0x2b8c: 0x40377020, 0x2b8d: 0x40377220, 0x2b8e: 0x40377420, 0x2b8f: 0x40377620, + 0x2b90: 0x40377820, 0x2b91: 0x40377a20, 0x2b92: 0x40377c20, 0x2b93: 0x40377e20, + 0x2b94: 0x40378020, 0x2b95: 0x40378220, 0x2b96: 0x40378420, 0x2b97: 0x40378620, + 0x2b98: 0x40378820, 0x2b99: 0x40378a20, 0x2b9a: 0x40378c20, 0x2b9b: 0x40378e20, + 0x2b9c: 0x40379020, 0x2b9d: 0x40379220, 0x2b9e: 0x40379420, + 0x2ba0: 0x002e4088, 0x2ba1: 0x402e4020, 0x2ba2: 0x002e4288, 0x2ba3: 0x002f3688, + 0x2ba4: 0x002fbe88, 0x2ba5: 0x402be820, 0x2ba6: 0x40303e20, 0x2ba7: 0x002d8888, + 0x2ba8: 0x402d8820, 0x2ba9: 0x002e1288, 0x2baa: 0x402e1220, 0x2bab: 0x00316088, + 0x2bac: 0x40316020, 0x2bad: 0x002bf888, 0x2bae: 0x002e9088, 0x2baf: 0x002bf088, + 0x2bb0: 0x002c0288, 0x2bb1: 0x4030d420, 0x2bb2: 0x0030ec88, 0x2bb3: 0x4030ec20, + 0x2bb4: 0x4030d620, 0x2bb5: 0x002d8a88, 0x2bb6: 0x402d8a20, 0x2bb7: 0x402f5420, + 0x2bb8: 0x402cac20, 0x2bb9: 0x402fb420, 0x2bba: 0x402f0e20, 0x2bbb: 0x402cb620, + 0x2bbc: 0x002dcc95, 0x2bbd: 0x0030be9d, 0x2bbe: 0x002ffc88, 0x2bbf: 0x00315888, + // Block 0xaf, offset 0x2bc0 + 0x2bc0: 0x0032aa88, 0x2bc1: 0x4032aa20, 0x2bc2: 0x0032ac88, 0x2bc3: 0x4032ac20, + 0x2bc4: 0x0032ae88, 0x2bc5: 0x4032ae20, 0x2bc6: 0x0032b088, 0x2bc7: 0x4032b020, + 0x2bc8: 0x0032b288, 0x2bc9: 0x4032b220, 0x2bca: 0x0032b688, 0x2bcb: 0x4032b620, + 0x2bcc: 0x0032b888, 0x2bcd: 0x4032b820, 0x2bce: 0x0032ba88, 0x2bcf: 0x4032ba20, + 0x2bd0: 0x0032bc88, 0x2bd1: 0x4032bc20, 0x2bd2: 0x0032be88, 0x2bd3: 0x4032be20, + 0x2bd4: 0x0032c088, 0x2bd5: 0x4032c020, 0x2bd6: 0x0032c488, 0x2bd7: 0x4032c420, + 0x2bd8: 0x0032c688, 0x2bd9: 0x4032c620, 0x2bda: 0x0032c888, 0x2bdb: 0x4032c820, + 0x2bdc: 0x0032ce88, 0x2bdd: 0x4032ce20, 0x2bde: 0x0032d088, 0x2bdf: 0x4032d020, + 0x2be0: 0x0032d288, 0x2be1: 0x4032d220, 0x2be2: 0x0032d488, 0x2be3: 0x4032d420, + 0x2be4: 0x0032d688, 0x2be5: 0x4032d620, 0x2be6: 0x0032d888, 0x2be7: 0x4032d820, + 0x2be8: 0x0032da88, 0x2be9: 0x4032da20, 0x2bea: 0x0032dc88, 0x2beb: 0x4032dc20, + 0x2bec: 0x0032de88, 0x2bed: 0x4032de20, 0x2bee: 0x0032e088, 0x2bef: 0x4032e020, + 0x2bf0: 0x0032e288, 0x2bf1: 0x4032e220, 0x2bf2: 0x00331888, 0x2bf3: 0x40331820, + 0x2bf4: 0x00331a88, 0x2bf5: 0x40331a20, 0x2bf6: 0x0032b488, 0x2bf7: 0x4032b420, + 0x2bf8: 0x0032c288, 0x2bf9: 0x4032c220, 0x2bfa: 0x0032ca88, 0x2bfb: 0x4032ca20, + 0x2bfc: 0x0032cc88, 0x2bfd: 0x4032cc20, 0x2bfe: 0x0032e488, 0x2bff: 0x4032e420, + // Block 0xb0, offset 0x2c00 + 0x2c00: 0x0032e688, 0x2c01: 0x4032e620, 0x2c02: 0x0032ec88, 0x2c03: 0x4032ec20, + 0x2c04: 0x0032ee88, 0x2c05: 0x4032ee20, 0x2c06: 0x0032f088, 0x2c07: 0x4032f020, + 0x2c08: 0x0032f888, 0x2c09: 0x4032f820, 0x2c0a: 0x0032fc88, 0x2c0b: 0x4032fc20, + 0x2c0c: 0x0032fe88, 0x2c0d: 0x4032fe20, 0x2c0e: 0x00330088, 0x2c0f: 0x40330020, + 0x2c10: 0x00330288, 0x2c11: 0x40330220, 0x2c12: 0x00330488, 0x2c13: 0x40330420, + 0x2c14: 0x00330688, 0x2c15: 0x40330620, 0x2c16: 0x00330c88, 0x2c17: 0x40330c20, + 0x2c18: 0x00331088, 0x2c19: 0x40331020, 0x2c1a: 0x00331288, 0x2c1b: 0x40331220, + 0x2c1c: 0x00331488, 0x2c1d: 0x40331420, 0x2c1e: 0x00331c88, 0x2c1f: 0x40331c20, + 0x2c20: 0x00331e88, 0x2c21: 0x40331e20, 0x2c22: 0x00332088, 0x2c23: 0x40332020, + 0x2c24: 0xe00014b0, 0x2c25: 0x40173a20, 0x2c26: 0x40173c20, 0x2c27: 0x40173e20, + 0x2c28: 0x40174020, 0x2c29: 0x40174220, 0x2c2a: 0x40174420, 0x2c2b: 0x0032ea88, + 0x2c2c: 0x4032ea20, 0x2c2d: 0x00330a88, 0x2c2e: 0x40330a20, 0x2c2f: 0xae605f02, + 0x2c30: 0xae602a02, 0x2c31: 0xae602202, 0x2c32: 0x0032f688, 0x2c33: 0x4032f620, + 0x2c39: 0x4002f820, 0x2c3a: 0x4002d420, 0x2c3b: 0x4002d620, + 0x2c3c: 0x4003b620, 0x2c3d: 0x4028b420, 0x2c3e: 0x4002fa20, 0x2c3f: 0x4003b820, + // Block 0xb1, offset 0x2c40 + 0x2c40: 0x40379820, 0x2c41: 0x40379c20, 0x2c42: 0x4037a020, 0x2c43: 0x4037a420, + 0x2c44: 0x4037a820, 0x2c45: 0x4037ac20, 0x2c46: 0x4037b020, 0x2c47: 0x4037b820, + 0x2c48: 0x4037bc20, 0x2c49: 0x4037c020, 0x2c4a: 0x4037c420, 0x2c4b: 0x4037c820, + 0x2c4c: 0x4037cc20, 0x2c4d: 0x4037d420, 0x2c4e: 0x4037d820, 0x2c4f: 0x4037dc20, + 0x2c50: 0x4037e020, 0x2c51: 0x4037e420, 0x2c52: 0x4037e820, 0x2c53: 0x4037f020, + 0x2c54: 0x4037f420, 0x2c55: 0x4037f820, 0x2c56: 0x4037fc20, 0x2c57: 0x40380020, + 0x2c58: 0x40380420, 0x2c59: 0x40380820, 0x2c5a: 0x40380c20, 0x2c5b: 0x40381020, + 0x2c5c: 0x40381420, 0x2c5d: 0x40381820, 0x2c5e: 0x40381c20, 0x2c5f: 0x40382420, + 0x2c60: 0x40382820, 0x2c61: 0x4037b420, 0x2c62: 0x4037d020, 0x2c63: 0x4037ec20, + 0x2c64: 0x40382020, 0x2c65: 0x40382c20, 0x2c67: 0x40383220, + 0x2c6d: 0x40383c20, + 0x2c70: 0x403bbc20, 0x2c71: 0x403bbe20, 0x2c72: 0x403bc020, 0x2c73: 0x403bc220, + 0x2c74: 0x403bc420, 0x2c75: 0x403bc620, 0x2c76: 0x403bc820, 0x2c77: 0x403bca20, + 0x2c78: 0x403bcc20, 0x2c79: 0x403bce20, 0x2c7a: 0x403bd020, 0x2c7b: 0x403bd220, + 0x2c7c: 0x403bd620, 0x2c7d: 0x403bd820, 0x2c7e: 0x403bda20, 0x2c7f: 0x403bdc20, + // Block 0xb2, offset 0x2c80 + 0x2c80: 0x403bde20, 0x2c81: 0x403be020, 0x2c82: 0x403be220, 0x2c83: 0x403be420, + 0x2c84: 0x403be620, 0x2c85: 0x403be820, 0x2c86: 0x403bea20, 0x2c87: 0x403bec20, + 0x2c88: 0x403bee20, 0x2c89: 0x403bf020, 0x2c8a: 0x403bf220, 0x2c8b: 0x403bf420, + 0x2c8c: 0x403bf620, 0x2c8d: 0x403bf820, 0x2c8e: 0x403bfa20, 0x2c8f: 0x403bfc20, + 0x2c90: 0x403bfe20, 0x2c91: 0x403c0020, 0x2c92: 0x403c0220, 0x2c93: 0x403c0420, + 0x2c94: 0x403c0820, 0x2c95: 0x403c0a20, 0x2c96: 0x403c0c20, 0x2c97: 0x403c0e20, + 0x2c98: 0x403c1020, 0x2c99: 0x403c1220, 0x2c9a: 0x403c1420, 0x2c9b: 0x403c1620, + 0x2c9c: 0x403c1820, 0x2c9d: 0x403c1a20, 0x2c9e: 0x403c1c20, 0x2c9f: 0x403c1e20, + 0x2ca0: 0x403c2020, 0x2ca1: 0x403c2220, 0x2ca2: 0x403c2420, 0x2ca3: 0x403c2620, + 0x2ca4: 0x403c2820, 0x2ca5: 0x403c2a20, 0x2ca6: 0x403bd420, 0x2ca7: 0x403c0620, + 0x2caf: 0x403c2c20, + 0x2cb0: 0x4005e620, + 0x2cbf: 0xa0900000, + // Block 0xb3, offset 0x2cc0 + 0x2cc0: 0x403c4e20, 0x2cc1: 0x403c7820, 0x2cc2: 0x403c9a20, 0x2cc3: 0x403cac20, + 0x2cc4: 0x403cca20, 0x2cc5: 0x403d1620, 0x2cc6: 0x403d3820, 0x2cc7: 0x403d4a20, + 0x2cc8: 0x403d7620, 0x2cc9: 0x403d8820, 0x2cca: 0x403d9a20, 0x2ccb: 0x403dfc20, + 0x2ccc: 0x403e3a20, 0x2ccd: 0x403e5820, 0x2cce: 0x403e6a20, 0x2ccf: 0x403eae20, + 0x2cd0: 0x403ec020, 0x2cd1: 0x403ee020, 0x2cd2: 0x403f4020, 0x2cd3: 0x403e9620, + 0x2cd4: 0x403e9820, 0x2cd5: 0x403e9a20, 0x2cd6: 0x403e9c20, + 0x2ce0: 0x403f4820, 0x2ce1: 0x403f4a20, 0x2ce2: 0x403f4c20, 0x2ce3: 0x403f4e20, + 0x2ce4: 0x403f5020, 0x2ce5: 0x403f5220, 0x2ce6: 0x403f5420, + 0x2ce8: 0x403f5620, 0x2ce9: 0x403f5820, 0x2cea: 0x403f5a20, 0x2ceb: 0x403f5c20, + 0x2cec: 0x403f5e20, 0x2ced: 0x403f6020, 0x2cee: 0x403f6220, + 0x2cf0: 0x403f6420, 0x2cf1: 0x403f6620, 0x2cf2: 0x403f6820, 0x2cf3: 0x403f6a20, + 0x2cf4: 0x403f6c20, 0x2cf5: 0x403f6e20, 0x2cf6: 0x403f7020, + 0x2cf8: 0x403f7220, 0x2cf9: 0x403f7420, 0x2cfa: 0x403f7620, 0x2cfb: 0x403f7820, + 0x2cfc: 0x403f7a20, 0x2cfd: 0x403f7c20, 0x2cfe: 0x403f7e20, + // Block 0xb4, offset 0x2d00 + 0x2d00: 0x403f8020, 0x2d01: 0x403f8220, 0x2d02: 0x403f8420, 0x2d03: 0x403f8620, + 0x2d04: 0x403f8820, 0x2d05: 0x403f8a20, 0x2d06: 0x403f8c20, + 0x2d08: 0x403f8e20, 0x2d09: 0x403f9020, 0x2d0a: 0x403f9220, 0x2d0b: 0x403f9420, + 0x2d0c: 0x403f9620, 0x2d0d: 0x403f9820, 0x2d0e: 0x403f9a20, + 0x2d10: 0x403f9c20, 0x2d11: 0x403f9e20, 0x2d12: 0x403fa020, 0x2d13: 0x403fa220, + 0x2d14: 0x403fa420, 0x2d15: 0x403fa620, 0x2d16: 0x403fa820, + 0x2d18: 0x403faa20, 0x2d19: 0x403fac20, 0x2d1a: 0x403fae20, 0x2d1b: 0x403fb020, + 0x2d1c: 0x403fb220, 0x2d1d: 0x403fb420, 0x2d1e: 0x403fb620, + 0x2d20: 0x84e619a9, 0x2d21: 0x84e619ad, 0x2d22: 0x84e619b1, 0x2d23: 0x84e619c5, + 0x2d24: 0x84e619e5, 0x2d25: 0x84e619f2, 0x2d26: 0x84e61a28, 0x2d27: 0x84e61a42, + 0x2d28: 0x84e61a54, 0x2d29: 0x84e61a5d, 0x2d2a: 0x84e61a77, 0x2d2b: 0x84e61a87, + 0x2d2c: 0x84e61a94, 0x2d2d: 0x84e61a9d, 0x2d2e: 0x84e61aa6, 0x2d2f: 0x84e61ada, + 0x2d30: 0x84e61b01, 0x2d31: 0x84e61b0c, 0x2d32: 0x84e61b2e, 0x2d33: 0x84e61b33, + 0x2d34: 0x84e61b86, 0x2d35: 0xe00014d8, 0x2d36: 0x84e61991, 0x2d37: 0x84e619d9, + 0x2d38: 0x84e61a27, 0x2d39: 0x84e61ad1, 0x2d3a: 0x84e61b4f, 0x2d3b: 0x84e61b5c, + 0x2d3c: 0x84e61b61, 0x2d3d: 0x84e61b6b, 0x2d3e: 0x84e61b70, 0x2d3f: 0x84e61b7a, + // Block 0xb5, offset 0x2d40 + 0x2d40: 0x40052620, 0x2d41: 0x40052820, 0x2d42: 0x40047420, 0x2d43: 0x40047620, + 0x2d44: 0x40047820, 0x2d45: 0x40047a20, 0x2d46: 0x40052a20, 0x2d47: 0x40052c20, + 0x2d48: 0x40052e20, 0x2d49: 0x40047c20, 0x2d4a: 0x40047e20, 0x2d4b: 0x40053020, + 0x2d4c: 0x40048020, 0x2d4d: 0x40048220, 0x2d4e: 0x40053220, 0x2d4f: 0x40053420, + 0x2d50: 0x40053620, 0x2d51: 0x40053820, 0x2d52: 0x40053a20, 0x2d53: 0x40053c20, + 0x2d54: 0x40053e20, 0x2d55: 0x40054020, 0x2d56: 0x40054220, 0x2d57: 0x40023620, + 0x2d58: 0x4002e220, 0x2d59: 0x4003ba20, 0x2d5a: 0x40054420, 0x2d5b: 0x40054620, + 0x2d5c: 0x40048420, 0x2d5d: 0x40048620, 0x2d5e: 0x40054820, 0x2d5f: 0x40054a20, + 0x2d60: 0x40048820, 0x2d61: 0x40048a20, 0x2d62: 0x40048c20, 0x2d63: 0x40048e20, + 0x2d64: 0x40049020, 0x2d65: 0x40049220, 0x2d66: 0x40049420, 0x2d67: 0x40049620, + 0x2d68: 0x40049820, 0x2d69: 0x40049a20, 0x2d6a: 0x4003ae20, 0x2d6b: 0x4003b020, + 0x2d6c: 0x4003b220, 0x2d6d: 0x4003b420, 0x2d6e: 0x4002c820, 0x2d6f: 0x40367020, + 0x2d70: 0x4002fc20, 0x2d71: 0x40030820, 0x2d72: 0x40024420, 0x2d73: 0x40030a20, + 0x2d74: 0x40024220, 0x2d75: 0x40026820, 0x2d76: 0x4004fc20, 0x2d77: 0x4004fe20, + 0x2d78: 0x40050020, 0x2d79: 0x4004d020, 0x2d7a: 0x40023020, 0x2d7b: 0x40023220, + // Block 0xb6, offset 0x2d80 + 0x2d80: 0xe0002401, 0x2d81: 0xe0002416, 0x2d82: 0x029cb684, 0x2d83: 0x029cb484, + 0x2d84: 0xe0002404, 0x2d85: 0x029d7684, 0x2d86: 0xe0002407, 0x2d87: 0xe000240a, + 0x2d88: 0xe000240d, 0x2d89: 0x02a40484, 0x2d8a: 0xe0002410, 0x2d8b: 0xe0002413, + 0x2d8c: 0xe0002419, 0x2d8d: 0xe000241c, 0x2d8e: 0xe000241f, 0x2d8f: 0x02b84684, + 0x2d90: 0x02b84484, 0x2d91: 0xe0002422, 0x2d92: 0x02bbe684, 0x2d93: 0x02bcf484, + 0x2d94: 0x02bea284, 0x2d95: 0xe0002425, 0x2d96: 0x02bf8884, 0x2d97: 0xe0002428, + 0x2d98: 0x02c49884, 0x2d99: 0x02ca6a84, 0x2d9b: 0x02cbc284, + 0x2d9c: 0xe000242b, 0x2d9d: 0xe000242e, 0x2d9e: 0xe0002436, 0x2d9f: 0x02d79a84, + 0x2da0: 0x02d82284, 0x2da1: 0x02d86a84, 0x2da2: 0x02d87484, 0x2da3: 0x02e0d884, + 0x2da4: 0x02e45684, 0x2da5: 0xe0002439, 0x2da6: 0x029c5884, 0x2da7: 0xe000243c, + 0x2da8: 0x02e55a84, 0x2da9: 0xe000243f, 0x2daa: 0xe0002442, 0x2dab: 0xe0002445, + 0x2dac: 0xe0002448, 0x2dad: 0x02f27684, 0x2dae: 0xe000244b, 0x2daf: 0x02f9f284, + 0x2db0: 0x02fd3e84, 0x2db1: 0x02fea684, 0x2db2: 0x02fea484, 0x2db3: 0xe0002451, + 0x2db4: 0xe0002454, 0x2db5: 0xe000244e, 0x2db6: 0xe0002457, 0x2db7: 0xe000245a, + 0x2db8: 0x02ff1684, 0x2db9: 0x03000484, 0x2dba: 0x03010084, 0x2dbb: 0xe000245d, + 0x2dbc: 0xe0002460, 0x2dbd: 0xe0002463, 0x2dbe: 0x0304f284, 0x2dbf: 0xe0002466, + // Block 0xb7, offset 0x2dc0 + 0x2dc0: 0xe0002469, 0x2dc1: 0x030c9c84, 0x2dc2: 0x0310c884, 0x2dc3: 0x03130084, + 0x2dc4: 0x0312fe84, 0x2dc5: 0x03138284, 0x2dc6: 0x0313a484, 0x2dc7: 0xe000246c, + 0x2dc8: 0x03174084, 0x2dc9: 0x031a3a84, 0x2dca: 0xe000246f, 0x2dcb: 0x031ecc84, + 0x2dcc: 0x031f6c84, 0x2dcd: 0xe0002472, 0x2dce: 0xe0002475, 0x2dcf: 0xe0002478, + 0x2dd0: 0x03290a84, 0x2dd1: 0x032aee84, 0x2dd2: 0x032af084, 0x2dd3: 0x032afe84, + 0x2dd4: 0x032bd084, 0x2dd5: 0xe000247b, 0x2dd6: 0x032c3a84, 0x2dd7: 0xe000247e, + 0x2dd8: 0x032ea484, 0x2dd9: 0x032fcc84, 0x2dda: 0x0330ea84, 0x2ddb: 0x03319c84, + 0x2ddc: 0x0331bc84, 0x2ddd: 0x0331be84, 0x2dde: 0xe0002481, 0x2ddf: 0x0331c084, + 0x2de0: 0x0332c684, 0x2de1: 0xe0002484, 0x2de2: 0x0334d884, 0x2de3: 0xe0002487, + 0x2de4: 0xe000248a, 0x2de5: 0x0338f884, 0x2de6: 0x033c3e84, 0x2de7: 0xe000248d, + 0x2de8: 0x033d4c84, 0x2de9: 0x033d8884, 0x2dea: 0x033dfc84, 0x2deb: 0xe0002490, + 0x2dec: 0x033ea084, 0x2ded: 0xe0002493, 0x2dee: 0x033efe84, 0x2def: 0xe0002496, + 0x2df0: 0x033f3284, 0x2df1: 0xe0002499, 0x2df2: 0xe000249c, 0x2df3: 0x033f3e84, + // Block 0xb8, offset 0x2e00 + 0x2e00: 0x029c0084, 0x2e01: 0x029c5084, 0x2e02: 0x029c6c84, 0x2e03: 0x029c7e84, + 0x2e04: 0x029cb284, 0x2e05: 0x029d0a84, 0x2e06: 0x029d1884, 0x2e07: 0x029d4084, + 0x2e08: 0x029d7484, 0x2e09: 0x02a27e84, 0x2e0a: 0x02a2ca84, 0x2e0b: 0x02a2d684, + 0x2e0c: 0x02a30484, 0x2e0d: 0x02a32c84, 0x2e0e: 0x02a35684, 0x2e0f: 0x02a3c084, + 0x2e10: 0x02a3ea84, 0x2e11: 0x02a40084, 0x2e12: 0x02a53684, 0x2e13: 0x02a5f284, + 0x2e14: 0x02a62a84, 0x2e15: 0x02a63484, 0x2e16: 0x02a67084, 0x2e17: 0x02a68284, + 0x2e18: 0x02a6b884, 0x2e19: 0x02a6d284, 0x2e1a: 0x02a70484, 0x2e1b: 0x02a76c84, + 0x2e1c: 0x02a79084, 0x2e1d: 0x02a7c684, 0x2e1e: 0x02adae84, 0x2e1f: 0x02ae3e84, + 0x2e20: 0x02b1d684, 0x2e21: 0x02b20484, 0x2e22: 0x02b21484, 0x2e23: 0x02b22a84, + 0x2e24: 0x02b24e84, 0x2e25: 0x02b2e684, 0x2e26: 0x02b6a084, 0x2e27: 0x02b70084, + 0x2e28: 0x02b7f084, 0x2e29: 0x02b81e84, 0x2e2a: 0x02b84484, 0x2e2b: 0x02b87084, + 0x2e2c: 0x02b8dc84, 0x2e2d: 0x02b8e284, 0x2e2e: 0x02bbb684, 0x2e2f: 0x02bbca84, + 0x2e30: 0x02bbe284, 0x2e31: 0x02bbfc84, 0x2e32: 0x02bce484, 0x2e33: 0x02bcf484, + 0x2e34: 0x02bcfe84, 0x2e35: 0x02bde884, 0x2e36: 0x02bdfc84, 0x2e37: 0x02be1684, + 0x2e38: 0x02be2684, 0x2e39: 0x02bea084, 0x2e3a: 0x02bec284, 0x2e3b: 0x02bee684, + 0x2e3c: 0x02bf8684, 0x2e3d: 0x02c41084, 0x2e3e: 0x02c46c84, 0x2e3f: 0x02c49684, + // Block 0xb9, offset 0x2e40 + 0x2e40: 0x02ca5e84, 0x2e41: 0x02ca6884, 0x2e42: 0x02cb0e84, 0x2e43: 0x02cb2e84, + 0x2e44: 0x02cb4884, 0x2e45: 0x02cb7284, 0x2e46: 0x02cbc084, 0x2e47: 0x02cbca84, + 0x2e48: 0x02cde084, 0x2e49: 0x02ce1084, 0x2e4a: 0x02ce5084, 0x2e4b: 0x02d64084, + 0x2e4c: 0x02d6c484, 0x2e4d: 0x02d6f284, 0x2e4e: 0x02d76684, 0x2e4f: 0x02d79684, + 0x2e50: 0x02d7a884, 0x2e51: 0x02d7b684, 0x2e52: 0x02d81e84, 0x2e53: 0x02d82884, + 0x2e54: 0x02d86884, 0x2e55: 0x02e0d684, 0x2e56: 0x02e45484, 0x2e57: 0x02e46c84, + 0x2e58: 0x02e47684, 0x2e59: 0x02e47e84, 0x2e5a: 0x02e48e84, 0x2e5b: 0x02e4b284, + 0x2e5c: 0x02e4b684, 0x2e5d: 0x02e55884, 0x2e5e: 0x02e70884, 0x2e5f: 0x02e71284, + 0x2e60: 0x02e9b884, 0x2e61: 0x02e9cc84, 0x2e62: 0x02ea3084, 0x2e63: 0x02ea3e84, + 0x2e64: 0x02ea5084, 0x2e65: 0x02ea6084, 0x2e66: 0x02eb1684, 0x2e67: 0x02eb2484, + 0x2e68: 0x02ecec84, 0x2e69: 0x02ecfa84, 0x2e6a: 0x02ed5c84, 0x2e6b: 0x02ed7e84, + 0x2e6c: 0x02eddc84, 0x2e6d: 0x02efb684, 0x2e6e: 0x02efc484, 0x2e6f: 0x02efe684, + 0x2e70: 0x02f27484, 0x2e71: 0x02f37084, 0x2e72: 0x02f37c84, 0x2e73: 0x02f4e884, + 0x2e74: 0x02f59684, 0x2e75: 0x02f5f284, 0x2e76: 0x02f8e684, 0x2e77: 0x02f9f084, + 0x2e78: 0x02fe6c84, 0x2e79: 0x02fea284, 0x2e7a: 0x02ff1484, 0x2e7b: 0x02ff7a84, + 0x2e7c: 0x03000284, 0x2e7d: 0x03001884, 0x2e7e: 0x03002484, 0x2e7f: 0x03006684, + // Block 0xba, offset 0x2e80 + 0x2e80: 0x0300fe84, 0x2e81: 0x03011284, 0x2e82: 0x0303c684, 0x2e83: 0x0303d484, + 0x2e84: 0x0303e684, 0x2e85: 0x0303f884, 0x2e86: 0x03041884, 0x2e87: 0x03043684, + 0x2e88: 0x03043e84, 0x2e89: 0x0304dc84, 0x2e8a: 0x0304e484, 0x2e8b: 0x0304f084, + 0x2e8c: 0x030c9a84, 0x2e8d: 0x030cd684, 0x2e8e: 0x03108084, 0x2e8f: 0x03109884, + 0x2e90: 0x0310c684, 0x2e91: 0x0312fc84, 0x2e92: 0x03131684, 0x2e93: 0x0313a484, + 0x2e94: 0x03140084, 0x2e95: 0x03186e84, 0x2e96: 0x03188c84, 0x2e97: 0x0318aa84, + 0x2e98: 0x0318f084, 0x2e99: 0x03193a84, 0x2e9a: 0x031ac884, 0x2e9b: 0x031ae084, + 0x2e9c: 0x031b6684, 0x2e9d: 0x031d5684, 0x2e9e: 0x031d9484, 0x2e9f: 0x031f3684, + 0x2ea0: 0x031f6084, 0x2ea1: 0x031f6a84, 0x2ea2: 0x03212284, 0x2ea3: 0x03229284, + 0x2ea4: 0x03238c84, 0x2ea5: 0x03239884, 0x2ea6: 0x0323a284, 0x2ea7: 0x032aee84, + 0x2ea8: 0x032b0084, 0x2ea9: 0x032c3884, 0x2eaa: 0x032d6c84, 0x2eab: 0x032d7284, + 0x2eac: 0x032dd084, 0x2ead: 0x032ea284, 0x2eae: 0x032ebc84, 0x2eaf: 0x032ec484, + 0x2eb0: 0x032ed284, 0x2eb1: 0x032f9684, 0x2eb2: 0x032fda84, 0x2eb3: 0x032fe684, + 0x2eb4: 0x03300284, 0x2eb5: 0x03315084, 0x2eb6: 0x0331b684, 0x2eb7: 0x0331be84, + 0x2eb8: 0x03332c84, 0x2eb9: 0x03333284, 0x2eba: 0x03335884, 0x2ebb: 0x03355084, + 0x2ebc: 0x0335b084, 0x2ebd: 0x0335be84, 0x2ebe: 0x03364a84, 0x2ebf: 0x03365e84, + // Block 0xbb, offset 0x2ec0 + 0x2ec0: 0x03366484, 0x2ec1: 0x03367884, 0x2ec2: 0x0336b484, 0x2ec3: 0x0339ca84, + 0x2ec4: 0x033cea84, 0x2ec5: 0x033cfe84, 0x2ec6: 0x033d4a84, 0x2ec7: 0x033d7684, + 0x2ec8: 0x033d8684, 0x2ec9: 0x033d9a84, 0x2eca: 0x033da284, 0x2ecb: 0x033df284, + 0x2ecc: 0x033dfa84, 0x2ecd: 0x033e1c84, 0x2ece: 0x033e2684, 0x2ecf: 0x033e4084, + 0x2ed0: 0x033e7684, 0x2ed1: 0x033e9484, 0x2ed2: 0x033ea484, 0x2ed3: 0x033f1a84, + 0x2ed4: 0x033f3884, 0x2ed5: 0x033f4084, + 0x2ef0: 0x40273a20, 0x2ef1: 0x40273c20, 0x2ef2: 0x40273e20, 0x2ef3: 0x40274020, + 0x2ef4: 0x40274220, 0x2ef5: 0x40274420, 0x2ef6: 0x40274620, 0x2ef7: 0x40274820, + 0x2ef8: 0x40274a20, 0x2ef9: 0x40274c20, 0x2efa: 0x40274e20, 0x2efb: 0x40275020, + // Block 0xbc, offset 0x2f00 + 0x2f00: 0x00021283, 0x2f01: 0x40025c20, 0x2f02: 0x40030420, 0x2f03: 0x40051220, + 0x2f04: 0x40279a20, 0x2f05: 0x4027ca20, 0x2f06: 0xe0002206, 0x2f07: 0xe00001d3, + 0x2f08: 0x40049c20, 0x2f09: 0x40049e20, 0x2f0a: 0x4004a020, 0x2f0b: 0x4004a220, + 0x2f0c: 0x4004a420, 0x2f0d: 0x4004a620, 0x2f0e: 0x4004a820, 0x2f0f: 0x4004aa20, + 0x2f10: 0x4004ac20, 0x2f11: 0x4004ae20, 0x2f12: 0x40279c20, 0x2f13: 0x40279e20, + 0x2f14: 0x4004b020, 0x2f15: 0x4004b220, 0x2f16: 0x4004b420, 0x2f17: 0x4004b620, + 0x2f18: 0x4004b820, 0x2f19: 0x4004ba20, 0x2f1a: 0x4004bc20, 0x2f1b: 0x4004be20, + 0x2f1c: 0x40023820, 0x2f1d: 0x4003ea20, 0x2f1e: 0x4003ec20, 0x2f1f: 0x4003ee20, + 0x2f20: 0x4027a020, 0x2f21: 0xe0000267, 0x2f22: 0xe000037f, 0x2f23: 0xe0000459, + 0x2f24: 0xe000052e, 0x2f25: 0xe00005f8, 0x2f26: 0xe00006c3, 0x2f27: 0xe000076b, + 0x2f28: 0xe0000817, 0x2f29: 0xe00008bc, 0x2f2a: 0xada12202, 0x2f2b: 0xae412302, + 0x2f2c: 0xae812402, 0x2f2d: 0xade12502, 0x2f2e: 0xae012602, 0x2f2f: 0xae012702, + 0x2f30: 0x40023a20, 0x2f31: 0x4027ce20, 0x2f32: 0xe0000152, 0x2f33: 0x4027d020, + 0x2f34: 0xe0000155, 0x2f35: 0x4027d220, 0x2f36: 0x00279c84, 0x2f37: 0x4027a220, + 0x2f38: 0x02a68284, 0x2f39: 0x02a68884, 0x2f3a: 0x02a68a84, 0x2f3b: 0x4027cc20, + 0x2f3c: 0xe000231a, 0x2f3d: 0x40051420, 0x2f3e: 0x4027a420, 0x2f3f: 0x4027a620, + // Block 0xbd, offset 0x2f40 + 0x2f41: 0x0065768d, 0x2f42: 0x0065768e, 0x2f43: 0x0065788d, + 0x2f44: 0x0065788e, 0x2f45: 0x00657a8d, 0x2f46: 0x00657a8e, 0x2f47: 0x00657e8d, + 0x2f48: 0x00657e8e, 0x2f49: 0x0065808d, 0x2f4a: 0x0065808e, 0x2f4b: 0x0065828e, + 0x2f4c: 0xe000216a, 0x2f4d: 0x0065848e, 0x2f4e: 0xe0002188, 0x2f4f: 0x0065868e, + 0x2f50: 0xe00021b8, 0x2f51: 0x0065888e, 0x2f52: 0xe00021d6, 0x2f53: 0x00658a8e, + 0x2f54: 0xe00021e0, 0x2f55: 0x00658c8e, 0x2f56: 0xe00021ef, 0x2f57: 0x00658e8e, + 0x2f58: 0xe0002200, 0x2f59: 0x0065908e, 0x2f5a: 0xe000220f, 0x2f5b: 0x0065928e, + 0x2f5c: 0xe0002215, 0x2f5d: 0x0065948e, 0x2f5e: 0xe0002223, 0x2f5f: 0x0065968e, + 0x2f60: 0xe0002229, 0x2f61: 0x0065988e, 0x2f62: 0xe0002234, 0x2f63: 0x00659a8d, + 0x2f64: 0x00659a8e, 0x2f65: 0xe000223a, 0x2f66: 0x00659c8e, 0x2f67: 0xe0002240, + 0x2f68: 0x00659e8e, 0x2f69: 0xe000224a, 0x2f6a: 0x0065a08e, 0x2f6b: 0x0065a28e, + 0x2f6c: 0x0065a48e, 0x2f6d: 0x0065a68e, 0x2f6e: 0x0065a88e, 0x2f6f: 0x0065aa8e, + 0x2f70: 0xe0002258, 0x2f71: 0xe000225e, 0x2f72: 0x0065ac8e, 0x2f73: 0xe000227a, + 0x2f74: 0xe0002280, 0x2f75: 0x0065ae8e, 0x2f76: 0xe000229a, 0x2f77: 0xe00022a0, + 0x2f78: 0x0065b08e, 0x2f79: 0xe00022bd, 0x2f7a: 0xe00022c3, 0x2f7b: 0x0065b28e, + 0x2f7c: 0xe00022ec, 0x2f7d: 0xe00022f2, 0x2f7e: 0x0065b48e, 0x2f7f: 0x0065b68e, + // Block 0xbe, offset 0x2f80 + 0x2f80: 0x0065b88e, 0x2f81: 0x0065ba8e, 0x2f82: 0x0065bc8e, 0x2f83: 0x0065be8d, + 0x2f84: 0x0065be8e, 0x2f85: 0x0065c08d, 0x2f86: 0x0065c08e, 0x2f87: 0x0065c48d, + 0x2f88: 0x0065c48e, 0x2f89: 0x0065c68e, 0x2f8a: 0x0065c88e, 0x2f8b: 0x0065ca8e, + 0x2f8c: 0x0065cc8e, 0x2f8d: 0x0065ce8e, 0x2f8e: 0x0065d08d, 0x2f8f: 0x0065d08e, + 0x2f90: 0x0065d28e, 0x2f91: 0x0065d48e, 0x2f92: 0x0065d68e, 0x2f93: 0x0065d88e, + 0x2f94: 0xe000214c, 0x2f95: 0x0065828d, 0x2f96: 0x0065888d, + 0x2f99: 0xa0812802, 0x2f9a: 0xa0812902, 0x2f9b: 0x40063c20, + 0x2f9c: 0x40063e20, 0x2f9d: 0x4027d420, 0x2f9e: 0xe0000158, 0x2f9f: 0xf0001616, + 0x2fa0: 0x40023c20, 0x2fa1: 0x0065768f, 0x2fa2: 0x00657691, 0x2fa3: 0x0065788f, + 0x2fa4: 0x00657891, 0x2fa5: 0x00657a8f, 0x2fa6: 0x00657a91, 0x2fa7: 0x00657e8f, + 0x2fa8: 0x00657e91, 0x2fa9: 0x0065808f, 0x2faa: 0x00658091, 0x2fab: 0x00658291, + 0x2fac: 0xe000216d, 0x2fad: 0x00658491, 0x2fae: 0xe000218b, 0x2faf: 0x00658691, + 0x2fb0: 0xe00021bb, 0x2fb1: 0x00658891, 0x2fb2: 0xe00021d9, 0x2fb3: 0x00658a91, + 0x2fb4: 0xe00021e3, 0x2fb5: 0x00658c91, 0x2fb6: 0xe00021f2, 0x2fb7: 0x00658e91, + 0x2fb8: 0xe0002203, 0x2fb9: 0x00659091, 0x2fba: 0xe0002212, 0x2fbb: 0x00659291, + 0x2fbc: 0xe0002218, 0x2fbd: 0x00659491, 0x2fbe: 0xe0002226, 0x2fbf: 0x00659691, + // Block 0xbf, offset 0x2fc0 + 0x2fc0: 0xe000222c, 0x2fc1: 0x00659891, 0x2fc2: 0xe0002237, 0x2fc3: 0x00659a8f, + 0x2fc4: 0x00659a91, 0x2fc5: 0xe000223d, 0x2fc6: 0x00659c91, 0x2fc7: 0xe0002243, + 0x2fc8: 0x00659e91, 0x2fc9: 0xe000224d, 0x2fca: 0x0065a091, 0x2fcb: 0x0065a291, + 0x2fcc: 0x0065a491, 0x2fcd: 0x0065a691, 0x2fce: 0x0065a891, 0x2fcf: 0x0065aa91, + 0x2fd0: 0xe000225b, 0x2fd1: 0xe0002261, 0x2fd2: 0x0065ac91, 0x2fd3: 0xe000227d, + 0x2fd4: 0xe0002283, 0x2fd5: 0x0065ae91, 0x2fd6: 0xe000229d, 0x2fd7: 0xe00022a3, + 0x2fd8: 0x0065b091, 0x2fd9: 0xe00022c0, 0x2fda: 0xe00022c6, 0x2fdb: 0x0065b291, + 0x2fdc: 0xe00022ef, 0x2fdd: 0xe00022f5, 0x2fde: 0x0065b491, 0x2fdf: 0x0065b691, + 0x2fe0: 0x0065b891, 0x2fe1: 0x0065ba91, 0x2fe2: 0x0065bc91, 0x2fe3: 0x0065be8f, + 0x2fe4: 0x0065be91, 0x2fe5: 0x0065c08f, 0x2fe6: 0x0065c091, 0x2fe7: 0x0065c48f, + 0x2fe8: 0x0065c491, 0x2fe9: 0x0065c691, 0x2fea: 0x0065c891, 0x2feb: 0x0065ca91, + 0x2fec: 0x0065cc91, 0x2fed: 0x0065ce91, 0x2fee: 0x0065d08f, 0x2fef: 0x0065d091, + 0x2ff0: 0x0065d291, 0x2ff1: 0x0065d491, 0x2ff2: 0x0065d691, 0x2ff3: 0x0065d891, + 0x2ff4: 0xe000214f, 0x2ff5: 0x0065828f, 0x2ff6: 0x0065888f, 0x2ff7: 0xe000236a, + 0x2ff8: 0xe0002371, 0x2ff9: 0xe0002374, 0x2ffa: 0xe0002377, 0x2ffb: 0x40023e20, + 0x2ffc: 0x4027d620, 0x2ffd: 0x4027d820, 0x2ffe: 0xe000015b, 0x2fff: 0xf0001616, + // Block 0xc0, offset 0x3000 + 0x3005: 0x4065da20, 0x3006: 0x4065dc20, 0x3007: 0x4065de20, + 0x3008: 0x4065e020, 0x3009: 0x4065e420, 0x300a: 0x4065e620, 0x300b: 0x4065e820, + 0x300c: 0x4065ea20, 0x300d: 0x4065ec20, 0x300e: 0x4065ee20, 0x300f: 0x4065f420, + 0x3010: 0x4065f620, 0x3011: 0x4065f820, 0x3012: 0x4065fa20, 0x3013: 0x4065fe20, + 0x3014: 0x40660020, 0x3015: 0x40660220, 0x3016: 0x40660420, 0x3017: 0x40660620, + 0x3018: 0x40660820, 0x3019: 0x40660a20, 0x301a: 0x40661220, 0x301b: 0x40661420, + 0x301c: 0x40661820, 0x301d: 0x40661a20, 0x301e: 0x40661e20, 0x301f: 0x40662020, + 0x3020: 0x40662220, 0x3021: 0x40662420, 0x3022: 0x40662620, 0x3023: 0x40662820, + 0x3024: 0x40662a20, 0x3025: 0x40662e20, 0x3026: 0x40663620, 0x3027: 0x40663820, + 0x3028: 0x40663a20, 0x3029: 0x40663c20, 0x302a: 0x4065e220, 0x302b: 0x4065f020, + 0x302c: 0x4065fc20, 0x302d: 0x40663e20, + 0x3031: 0x0062ac84, 0x3032: 0x0062ae84, 0x3033: 0x00646884, + 0x3034: 0x0062b084, 0x3035: 0x00646c84, 0x3036: 0x00646e84, 0x3037: 0x0062b284, + 0x3038: 0x0062b484, 0x3039: 0x0062b684, 0x303a: 0x00647484, 0x303b: 0x00647684, + 0x303c: 0x00647884, 0x303d: 0x00647a84, 0x303e: 0x00647c84, 0x303f: 0x00647e84, + // Block 0xc1, offset 0x3040 + 0x3040: 0x0062e084, 0x3041: 0x0062b884, 0x3042: 0x0062ba84, 0x3043: 0x0062bc84, + 0x3044: 0x0062ee84, 0x3045: 0x0062be84, 0x3046: 0x0062c084, 0x3047: 0x0062c284, + 0x3048: 0x0062c484, 0x3049: 0x0062c684, 0x304a: 0x0062c884, 0x304b: 0x0062ca84, + 0x304c: 0x0062cc84, 0x304d: 0x0062ce84, 0x304e: 0x0062d084, 0x304f: 0x0063a884, + 0x3050: 0x0063aa84, 0x3051: 0x0063ac84, 0x3052: 0x0063ae84, 0x3053: 0x0063b084, + 0x3054: 0x0063b284, 0x3055: 0x0063b484, 0x3056: 0x0063b684, 0x3057: 0x0063b884, + 0x3058: 0x0063ba84, 0x3059: 0x0063bc84, 0x305a: 0x0063be84, 0x305b: 0x0063c084, + 0x305c: 0x0063c284, 0x305d: 0x0063c484, 0x305e: 0x0063c684, 0x305f: 0x0063c884, + 0x3060: 0x0063ca84, 0x3061: 0x0063cc84, 0x3062: 0x0063ce84, 0x3063: 0x0063d084, + 0x3064: 0x0063a684, 0x3065: 0x0062d484, 0x3066: 0x0062d684, 0x3067: 0x0064a284, + 0x3068: 0x0064a484, 0x3069: 0x0064ac84, 0x306a: 0x0064b084, 0x306b: 0x0064ba84, + 0x306c: 0x0064c284, 0x306d: 0x0064c684, 0x306e: 0x0062e484, 0x306f: 0x0064ce84, + 0x3070: 0x0064d284, 0x3071: 0x0062e684, 0x3072: 0x0062e884, 0x3073: 0x0062ec84, + 0x3074: 0x0062f084, 0x3075: 0x0062f284, 0x3076: 0x0062fa84, 0x3077: 0x0062fe84, + 0x3078: 0x00630284, 0x3079: 0x00630484, 0x307a: 0x00630684, 0x307b: 0x00630884, + 0x307c: 0x00630a84, 0x307d: 0x00631084, 0x307e: 0x00631884, 0x307f: 0x00632c84, + // Block 0xc2, offset 0x3080 + 0x3080: 0x00633a84, 0x3081: 0x00634484, 0x3082: 0x0064f684, 0x3083: 0x0064f884, + 0x3084: 0x00635a84, 0x3085: 0x00635c84, 0x3086: 0x00635e84, 0x3087: 0x0063ee84, + 0x3088: 0x0063f084, 0x3089: 0x0063f684, 0x308a: 0x00640884, 0x308b: 0x00640a84, + 0x308c: 0x00640e84, 0x308d: 0x00642284, 0x308e: 0x00642884, + 0x3090: 0x4027a820, 0x3091: 0x4027aa20, 0x3092: 0x029c0094, 0x3093: 0x029d1894, + 0x3094: 0x029c1294, 0x3095: 0x02adb694, 0x3096: 0x029c1494, 0x3097: 0x029c5a94, + 0x3098: 0x029c1694, 0x3099: 0x02ea6494, 0x309a: 0x029cb294, 0x309b: 0x029c3294, + 0x309c: 0x029c0294, 0x309d: 0x02b25294, 0x309e: 0x02ae6094, 0x309f: 0x029d7494, + 0x30a0: 0xe000237a, 0x30a1: 0xe0002383, 0x30a2: 0xe0002380, 0x30a3: 0xe000237d, + 0x30a4: 0x40661c20, 0x30a5: 0xe000238c, 0x30a6: 0x40661620, 0x30a7: 0xe0002389, + 0x30a8: 0xe000239e, 0x30a9: 0xe0002386, 0x30aa: 0xe0002395, 0x30ab: 0xe000239b, + 0x30ac: 0x40663420, 0x30ad: 0x4065f220, 0x30ae: 0xe000238f, 0x30af: 0xe0002392, + 0x30b0: 0x40663020, 0x30b1: 0x40663220, 0x30b2: 0x40662c20, 0x30b3: 0xe0002398, + 0x30b4: 0x0065dc99, 0x30b5: 0x0065e699, 0x30b6: 0x0065ee99, 0x30b7: 0x0065f499, + 0x30b8: 0x40660c20, 0x30b9: 0x40660e20, 0x30ba: 0x40661020, + // Block 0xc3, offset 0x30c0 + 0x30c0: 0x40275220, 0x30c1: 0x40275420, 0x30c2: 0x40275620, 0x30c3: 0x40275820, + 0x30c4: 0x40275a20, 0x30c5: 0x40275c20, 0x30c6: 0x40275e20, 0x30c7: 0x40276020, + 0x30c8: 0x40276220, 0x30c9: 0x40276420, 0x30ca: 0x40276620, 0x30cb: 0x40276820, + 0x30cc: 0x40276a20, 0x30cd: 0x40276c20, 0x30ce: 0x40276e20, 0x30cf: 0x40277020, + 0x30d0: 0x40277220, 0x30d1: 0x40277420, 0x30d2: 0x40277620, 0x30d3: 0x40277820, + 0x30d4: 0x40277a20, 0x30d5: 0x40277c20, 0x30d6: 0x40277e20, 0x30d7: 0x40278020, + 0x30d8: 0x40278220, 0x30d9: 0x40278420, 0x30da: 0x40278620, 0x30db: 0x40278820, + 0x30dc: 0x40278a20, 0x30dd: 0x40278c20, 0x30de: 0x40278e20, 0x30df: 0x40279020, + 0x30e0: 0x40279220, 0x30e1: 0x40279420, 0x30e2: 0x40279620, 0x30e3: 0x40279820, + 0x30f0: 0x0065868f, 0x30f1: 0x00658e8f, 0x30f2: 0x0065908f, 0x30f3: 0x00659e8f, + 0x30f4: 0x0065a48f, 0x30f5: 0x0065aa8f, 0x30f6: 0x0065ac8f, 0x30f7: 0x0065ae8f, + 0x30f8: 0x0065b08f, 0x30f9: 0x0065b28f, 0x30fa: 0x0065b88f, 0x30fb: 0x0065c68f, + 0x30fc: 0x0065c88f, 0x30fd: 0x0065ca8f, 0x30fe: 0x0065cc8f, 0x30ff: 0x0065ce8f, + // Block 0xc4, offset 0x3100 + 0x3100: 0xf0000404, 0x3101: 0xf0000404, 0x3102: 0xf0000404, 0x3103: 0xf0000404, + 0x3104: 0xf0000404, 0x3105: 0xf0000404, 0x3106: 0xf0000404, 0x3107: 0xf0000404, + 0x3108: 0xf0000404, 0x3109: 0xf0000404, 0x310a: 0xf0000404, 0x310b: 0xf0000404, + 0x310c: 0xf0000404, 0x310d: 0xf0000404, 0x310e: 0xe000004c, 0x310f: 0xe0000051, + 0x3110: 0xe0000056, 0x3111: 0xe000005b, 0x3112: 0xe0000060, 0x3113: 0xe0000065, + 0x3114: 0xe000006a, 0x3115: 0xe000006f, 0x3116: 0xe0000083, 0x3117: 0xe000008d, + 0x3118: 0xe0000092, 0x3119: 0xe0000097, 0x311a: 0xe000009c, 0x311b: 0xe00000a1, + 0x311c: 0xe0000088, 0x311d: 0xe0000074, 0x311e: 0xe000007c, + 0x3120: 0xf0000404, 0x3121: 0xf0000404, 0x3122: 0xf0000404, 0x3123: 0xf0000404, + 0x3124: 0xf0000404, 0x3125: 0xf0000404, 0x3126: 0xf0000404, 0x3127: 0xf0000404, + 0x3128: 0xf0000404, 0x3129: 0xf0000404, 0x312a: 0xf0000404, 0x312b: 0xf0000404, + 0x312c: 0xf0000404, 0x312d: 0xf0000404, 0x312e: 0xf0000404, 0x312f: 0xf0000404, + 0x3130: 0xf0000404, 0x3131: 0xf0000404, 0x3132: 0xf0000404, 0x3133: 0xf0000404, + 0x3134: 0xf0000404, 0x3135: 0xf0000404, 0x3136: 0xf0000404, 0x3137: 0xf0000404, + 0x3138: 0xf0000404, 0x3139: 0xf0000404, 0x313a: 0xf0000404, 0x313b: 0xf0000404, + 0x313c: 0xf0000404, 0x313d: 0xf0000404, 0x313e: 0xf0000404, 0x313f: 0xf0000404, + // Block 0xc5, offset 0x3140 + 0x3140: 0xf0000404, 0x3141: 0xf0000404, 0x3142: 0xf0000404, 0x3143: 0xf0000404, + 0x3144: 0x02aa9e86, 0x3145: 0x02bcf886, 0x3146: 0x02cb0e86, 0x3147: 0x02f71e86, + 0x3148: 0xe00002e3, 0x3149: 0xe00003d8, 0x314a: 0xe00004b3, 0x314b: 0xe000057d, + 0x314c: 0xe0000648, 0x314d: 0xe00006f0, 0x314e: 0xe000079c, 0x314f: 0xe0000841, + 0x3150: 0xe0000ec0, 0x3151: 0xf0000606, 0x3152: 0xf0000606, 0x3153: 0xf0000606, + 0x3154: 0xf0000606, 0x3155: 0xf0000606, 0x3156: 0xf0000606, 0x3157: 0xf0000606, + 0x3158: 0xf0000606, 0x3159: 0xf0000606, 0x315a: 0xf0000606, 0x315b: 0xf0000606, + 0x315c: 0xf0000606, 0x315d: 0xf0000606, 0x315e: 0xf0000606, 0x315f: 0xf0000606, + 0x3160: 0x0062ac86, 0x3161: 0x0062b086, 0x3162: 0x0062b286, 0x3163: 0x0062b686, + 0x3164: 0x0062b886, 0x3165: 0x0062ba86, 0x3166: 0x0062be86, 0x3167: 0x0062c286, + 0x3168: 0x0062c486, 0x3169: 0x0062c886, 0x316a: 0x0062ca86, 0x316b: 0x0062cc86, + 0x316c: 0x0062ce86, 0x316d: 0x0062d086, 0x316e: 0xf0000606, 0x316f: 0xf0000606, + 0x3170: 0xf0000606, 0x3171: 0xf0000606, 0x3172: 0xf0000606, 0x3173: 0xf0000606, + 0x3174: 0xf0000606, 0x3175: 0xf0000606, 0x3176: 0xf0000606, 0x3177: 0xf0000606, + 0x3178: 0xf0000606, 0x3179: 0xf0000606, 0x317a: 0xf0000606, 0x317b: 0xf0000606, + 0x317c: 0xe0002127, 0x317d: 0xe0002122, 0x317e: 0xf0000606, 0x317f: 0x4027ac20, + // Block 0xc6, offset 0x3180 + 0x3180: 0x029c0086, 0x3181: 0x029d1886, 0x3182: 0x029c1286, 0x3183: 0x02adb686, + 0x3184: 0x029d2886, 0x3185: 0x02a2da86, 0x3186: 0x029c0686, 0x3187: 0x02a2d686, + 0x3188: 0x029cba86, 0x3189: 0x02a68286, 0x318a: 0x02ce1086, 0x318b: 0x02e0d686, + 0x318c: 0x02d86886, 0x318d: 0x02ce5086, 0x318e: 0x0323a286, 0x318f: 0x02ae3e86, + 0x3190: 0x02cbca86, 0x3191: 0x02d05486, 0x3192: 0x02ce1286, 0x3193: 0x02f27c86, + 0x3194: 0x02a81a86, 0x3195: 0x02e4f286, 0x3196: 0x03194286, 0x3197: 0x02f2ba86, + 0x3198: 0x02a56886, 0x3199: 0x02f3b086, 0x319a: 0x02ea6e86, 0x319b: 0x02b2e686, + 0x319c: 0x0320d286, 0x319d: 0x02a25486, 0x319e: 0x02a6e086, 0x319f: 0x02d9d086, + 0x31a0: 0x03300a86, 0x31a1: 0x029e2286, 0x31a2: 0x02a33286, 0x31a3: 0x02d6c686, + 0x31a4: 0x029c1486, 0x31a5: 0x029c5a86, 0x31a6: 0x029c1686, 0x31a7: 0x02bbcc86, + 0x31a8: 0x02a7e686, 0x31a9: 0x02a67686, 0x31aa: 0x02b72e86, 0x31ab: 0x02b6cc86, + 0x31ac: 0x02edc686, 0x31ad: 0x029e0286, 0x31ae: 0x03198e86, 0x31af: 0x02a6a886, + 0x31b0: 0x02b23886, 0x31b1: 0xf0000606, 0x31b2: 0xf0000606, 0x31b3: 0xf0000606, + 0x31b4: 0xf0000606, 0x31b5: 0xf0000606, 0x31b6: 0xf0000606, 0x31b7: 0xf0000606, + 0x31b8: 0xf0000606, 0x31b9: 0xf0000606, 0x31ba: 0xf0000606, 0x31bb: 0xf0000606, + 0x31bc: 0xf0000606, 0x31bd: 0xf0000606, 0x31be: 0xf0000606, 0x31bf: 0xf0000606, + // Block 0xc7, offset 0x31c0 + 0x31c0: 0xf0001f04, 0x31c1: 0xf0001f04, 0x31c2: 0xf0001f04, 0x31c3: 0xf0001f04, + 0x31c4: 0xf0001f04, 0x31c5: 0xf0001f04, 0x31c6: 0xf0001f04, 0x31c7: 0xf0001f04, + 0x31c8: 0xf0001f04, 0x31c9: 0xf0000404, 0x31ca: 0xf0000404, 0x31cb: 0xf0000404, + 0x31cc: 0xf0001c1d, 0x31cd: 0xe0000b85, 0x31ce: 0xf0001d1c, 0x31cf: 0xe0000d14, + 0x31d0: 0x00657693, 0x31d1: 0x00657893, 0x31d2: 0x00657a93, 0x31d3: 0x00657e93, + 0x31d4: 0x00658093, 0x31d5: 0x00658293, 0x31d6: 0x00658493, 0x31d7: 0x00658693, + 0x31d8: 0x00658893, 0x31d9: 0x00658a93, 0x31da: 0x00658c93, 0x31db: 0x00658e93, + 0x31dc: 0x00659093, 0x31dd: 0x00659293, 0x31de: 0x00659493, 0x31df: 0x00659693, + 0x31e0: 0x00659893, 0x31e1: 0x00659a93, 0x31e2: 0x00659c93, 0x31e3: 0x00659e93, + 0x31e4: 0x0065a093, 0x31e5: 0x0065a293, 0x31e6: 0x0065a493, 0x31e7: 0x0065a693, + 0x31e8: 0x0065a893, 0x31e9: 0x0065aa93, 0x31ea: 0x0065ac93, 0x31eb: 0x0065ae93, + 0x31ec: 0x0065b093, 0x31ed: 0x0065b293, 0x31ee: 0x0065b493, 0x31ef: 0x0065b693, + 0x31f0: 0x0065b893, 0x31f1: 0x0065ba93, 0x31f2: 0x0065bc93, 0x31f3: 0x0065be93, + 0x31f4: 0x0065c093, 0x31f5: 0x0065c493, 0x31f6: 0x0065c693, 0x31f7: 0x0065c893, + 0x31f8: 0x0065ca93, 0x31f9: 0x0065cc93, 0x31fa: 0x0065ce93, 0x31fb: 0x0065d093, + 0x31fc: 0x0065d293, 0x31fd: 0x0065d493, 0x31fe: 0x0065d693, + // Block 0xc8, offset 0x3200 + 0x3200: 0xe0002131, 0x3201: 0xe0002137, 0x3202: 0xe000213c, 0x3203: 0xe000212d, + 0x3204: 0xe0002142, 0x3205: 0xe0002148, 0x3206: 0xe0002152, 0x3207: 0xe000215b, + 0x3208: 0xe0002156, 0x3209: 0xe0002166, 0x320a: 0xe0002162, 0x320b: 0xe0002170, + 0x320c: 0xe0002174, 0x320d: 0xe0002179, 0x320e: 0xe000217e, 0x320f: 0xe0002183, + 0x3210: 0xe000218e, 0x3211: 0xe0002193, 0x3212: 0xe0002198, 0x3213: 0xe000219d, + 0x3214: 0xf0001c1c, 0x3215: 0xe00021a4, 0x3216: 0xe00021ab, 0x3217: 0xe00021b2, + 0x3218: 0xe00021be, 0x3219: 0xe00021c3, 0x321a: 0xe00021ca, 0x321b: 0xe00021d1, + 0x321c: 0xe00021dc, 0x321d: 0xe00021eb, 0x321e: 0xe00021e6, 0x321f: 0xe00021f5, + 0x3220: 0xe00021fa, 0x3221: 0xe0002209, 0x3222: 0xe000221b, 0x3223: 0xe000221f, + 0x3224: 0xe000222f, 0x3225: 0xe0002246, 0x3226: 0xe0002250, 0x3227: 0xf0001c1c, + 0x3228: 0xf0001c1c, 0x3229: 0xe0002254, 0x322a: 0xe0002276, 0x322b: 0xe0002264, + 0x322c: 0xe000226b, 0x322d: 0xe0002270, 0x322e: 0xe0002286, 0x322f: 0xe000228d, + 0x3230: 0xe0002292, 0x3231: 0xe0002296, 0x3232: 0xe00022a6, 0x3233: 0xe00022ad, + 0x3234: 0xe00022b2, 0x3235: 0xe00022b9, 0x3236: 0xe00022d4, 0x3237: 0xe00022da, + 0x3238: 0xe00022de, 0x3239: 0xe00022e3, 0x323a: 0xe00022e7, 0x323b: 0xe00022c9, + 0x323c: 0xe00022cf, 0x323d: 0xe0002300, 0x323e: 0xe0002306, 0x323f: 0xf0001c1c, + // Block 0xc9, offset 0x3240 + 0x3240: 0xe000230b, 0x3241: 0xe00022f8, 0x3242: 0xe00022fc, 0x3243: 0xe0002311, + 0x3244: 0xe0002316, 0x3245: 0xe000231d, 0x3246: 0xe0002321, 0x3247: 0xe0002325, + 0x3248: 0xe000232b, 0x3249: 0xf0001c1c, 0x324a: 0xe0002330, 0x324b: 0xe000233c, + 0x324c: 0xe0002340, 0x324d: 0xe0002337, 0x324e: 0xe0002346, 0x324f: 0xe000234b, + 0x3250: 0xe000234f, 0x3251: 0xe0002353, 0x3252: 0xf0001c1c, 0x3253: 0xe000235e, + 0x3254: 0xe0002358, 0x3255: 0xf0001c1c, 0x3256: 0xe0002363, 0x3257: 0xe000236d, + 0x3258: 0xf0001f04, 0x3259: 0xf0001f04, 0x325a: 0xf0001f04, 0x325b: 0xf0001f04, + 0x325c: 0xf0001f04, 0x325d: 0xf0001f04, 0x325e: 0xf0001f04, 0x325f: 0xf0001f04, + 0x3260: 0xf0001f04, 0x3261: 0xf0001f04, 0x3262: 0xf0000404, 0x3263: 0xf0000404, + 0x3264: 0xf0000404, 0x3265: 0xf0000404, 0x3266: 0xf0000404, 0x3267: 0xf0000404, + 0x3268: 0xf0000404, 0x3269: 0xf0000404, 0x326a: 0xf0000404, 0x326b: 0xf0000404, + 0x326c: 0xf0000404, 0x326d: 0xf0000404, 0x326e: 0xf0000404, 0x326f: 0xf0000404, + 0x3270: 0xf0000404, 0x3271: 0xe0000c1e, 0x3272: 0xf0001c1c, 0x3273: 0xf0001d1d, + 0x3274: 0xe0000a31, 0x3275: 0xf0001d1c, 0x3276: 0xf0001c1c, 0x3277: 0xf0001c1c, + 0x3278: 0xe0000ac2, 0x3279: 0xe0000ac6, 0x327a: 0xf0001d1d, 0x327b: 0xf0001c1c, + 0x327c: 0xf0001c1c, 0x327d: 0xf0001c1c, 0x327e: 0xf0001c1c, 0x327f: 0xe0002431, + // Block 0xca, offset 0x3280 + 0x3280: 0xf0001d1c, 0x3281: 0xf0001d1c, 0x3282: 0xf0001d1c, 0x3283: 0xf0001d1c, + 0x3284: 0xf0001d1c, 0x3285: 0xf0001d1d, 0x3286: 0xf0001d1d, 0x3287: 0xf0001d1d, + 0x3288: 0xe0000a6b, 0x3289: 0xe0000cb4, 0x328a: 0xf0001d1c, 0x328b: 0xf0001d1c, + 0x328c: 0xf0001d1c, 0x328d: 0xf0001c1c, 0x328e: 0xf0001c1c, 0x328f: 0xf0001c1c, + 0x3290: 0xf0001c1d, 0x3291: 0xe0000cb9, 0x3292: 0xe0000d36, 0x3293: 0xe0000be3, + 0x3294: 0xe0000fc5, 0x3295: 0xf0001c1c, 0x3296: 0xf0001c1c, 0x3297: 0xf0001c1c, + 0x3298: 0xf0001c1c, 0x3299: 0xf0001c1c, 0x329a: 0xf0001c1c, 0x329b: 0xf0001c1c, + 0x329c: 0xf0001c1c, 0x329d: 0xf0001c1c, 0x329e: 0xf0001c1c, 0x329f: 0xe0000d3e, + 0x32a0: 0xe0000a72, 0x32a1: 0xf0001c1c, 0x32a2: 0xe0000cbd, 0x32a3: 0xe0000d42, + 0x32a4: 0xe0000a76, 0x32a5: 0xf0001c1c, 0x32a6: 0xe0000cc1, 0x32a7: 0xe0000d2d, + 0x32a8: 0xe0000d31, 0x32a9: 0xf0001c1d, 0x32aa: 0xe0000cc5, 0x32ab: 0xe0000d4a, + 0x32ac: 0xe0000be7, 0x32ad: 0xe0000f0b, 0x32ae: 0xe0000f0f, 0x32af: 0xe0000f15, + 0x32b0: 0xf0001c1c, 0x32b1: 0xf0001c1c, 0x32b2: 0xf0001c1c, 0x32b3: 0xf0001c1c, + 0x32b4: 0xf0001d1c, 0x32b5: 0xf0001d1c, 0x32b6: 0xf0001d1c, 0x32b7: 0xf0001d1c, + 0x32b8: 0xf0001d1c, 0x32b9: 0xf0001d1d, 0x32ba: 0xf0001d1c, 0x32bb: 0xf0001d1c, + 0x32bc: 0xf0001d1c, 0x32bd: 0xf0001d1c, 0x32be: 0xf0001d1c, 0x32bf: 0xf0001d1d, + // Block 0xcb, offset 0x32c0 + 0x32c0: 0xf0001d1c, 0x32c1: 0xf0001d1d, 0x32c2: 0xe00009b7, 0x32c3: 0xf0001c1d, + 0x32c4: 0xf0001c1c, 0x32c5: 0xf0001c1c, 0x32c6: 0xe0000a66, 0x32c7: 0xe0000a7a, + 0x32c8: 0xf0001d1c, 0x32c9: 0xf0001c1d, 0x32ca: 0xf0001c1c, 0x32cb: 0xf0001d1d, + 0x32cc: 0xf0001c1c, 0x32cd: 0xf0001d1d, 0x32ce: 0xf0001d1d, 0x32cf: 0xf0001c1c, + 0x32d0: 0xf0001c1c, 0x32d1: 0xf0001c1c, 0x32d2: 0xe0000d0d, 0x32d3: 0xf0001c1c, + 0x32d4: 0xf0001c1c, 0x32d5: 0xe0000d3a, 0x32d6: 0xe0000d46, 0x32d7: 0xf0001d1d, + 0x32d8: 0xe0000eb0, 0x32d9: 0xe0000eb8, 0x32da: 0xf0001d1d, 0x32db: 0xf0001c1c, + 0x32dc: 0xf0001c1d, 0x32dd: 0xf0001c1d, 0x32de: 0xe00010b2, 0x32df: 0xe00009c8, + 0x32e0: 0xf0001f04, 0x32e1: 0xf0001f04, 0x32e2: 0xf0001f04, 0x32e3: 0xf0001f04, + 0x32e4: 0xf0001f04, 0x32e5: 0xf0001f04, 0x32e6: 0xf0001f04, 0x32e7: 0xf0001f04, + 0x32e8: 0xf0001f04, 0x32e9: 0xf0000404, 0x32ea: 0xf0000404, 0x32eb: 0xf0000404, + 0x32ec: 0xf0000404, 0x32ed: 0xf0000404, 0x32ee: 0xf0000404, 0x32ef: 0xf0000404, + 0x32f0: 0xf0000404, 0x32f1: 0xf0000404, 0x32f2: 0xf0000404, 0x32f3: 0xf0000404, + 0x32f4: 0xf0000404, 0x32f5: 0xf0000404, 0x32f6: 0xf0000404, 0x32f7: 0xf0000404, + 0x32f8: 0xf0000404, 0x32f9: 0xf0000404, 0x32fa: 0xf0000404, 0x32fb: 0xf0000404, + 0x32fc: 0xf0000404, 0x32fd: 0xf0000404, 0x32fe: 0xf0000404, 0x32ff: 0xe0000bdf, + // Block 0xcc, offset 0x3300 + 0x3300: 0x40196220, 0x3301: 0x40196420, 0x3302: 0x40196620, 0x3303: 0x40196820, + 0x3304: 0x40196a20, 0x3305: 0x40196c20, 0x3306: 0x40196e20, 0x3307: 0x40197020, + 0x3308: 0x40197220, 0x3309: 0x40197420, 0x330a: 0x40197620, 0x330b: 0x40197820, + 0x330c: 0x40197a20, 0x330d: 0x40197c20, 0x330e: 0x40197e20, 0x330f: 0x40198020, + 0x3310: 0x40198220, 0x3311: 0x40198420, 0x3312: 0x40198620, 0x3313: 0x40198820, + 0x3314: 0x40198a20, 0x3315: 0x40198c20, 0x3316: 0x40198e20, 0x3317: 0x40199020, + 0x3318: 0x40199220, 0x3319: 0x40199420, 0x331a: 0x40199620, 0x331b: 0x40199820, + 0x331c: 0x40199a20, 0x331d: 0x40199c20, 0x331e: 0x40199e20, 0x331f: 0x4019a020, + 0x3320: 0x4019a220, 0x3321: 0x4019a420, 0x3322: 0x4019a620, 0x3323: 0x4019a820, + 0x3324: 0x4019aa20, 0x3325: 0x4019ac20, 0x3326: 0x4019ae20, 0x3327: 0x4019b020, + 0x3328: 0x4019b220, 0x3329: 0x4019b420, 0x332a: 0x4019b620, 0x332b: 0x4019b820, + 0x332c: 0x4019ba20, 0x332d: 0x4019bc20, 0x332e: 0x4019be20, 0x332f: 0x4019c020, + 0x3330: 0x4019c220, 0x3331: 0x4019c420, 0x3332: 0x4019c620, 0x3333: 0x4019c820, + 0x3334: 0x4019ca20, 0x3335: 0x4019cc20, 0x3336: 0x4019ce20, 0x3337: 0x4019d020, + 0x3338: 0x4019d220, 0x3339: 0x4019d420, 0x333a: 0x4019d620, 0x333b: 0x4019d820, + 0x333c: 0x4019da20, 0x333d: 0x4019dc20, 0x333e: 0x4019de20, 0x333f: 0x4019e020, + // Block 0xcd, offset 0x3340 + 0x3340: 0x40664020, 0x3341: 0x40664220, 0x3342: 0x40664420, 0x3343: 0x40664620, + 0x3344: 0x40664820, 0x3345: 0x40664a20, 0x3346: 0x40664c20, 0x3347: 0x40664e20, + 0x3348: 0x40665020, 0x3349: 0x40665220, 0x334a: 0x40665420, 0x334b: 0x40665620, + 0x334c: 0x40665820, 0x334d: 0x40665a20, 0x334e: 0x40665c20, 0x334f: 0x40665e20, + 0x3350: 0x40666020, 0x3351: 0x40666220, 0x3352: 0x40666420, 0x3353: 0x40666620, + 0x3354: 0x40666820, 0x3355: 0x40666a20, 0x3356: 0x40666c20, 0x3357: 0x40666e20, + 0x3358: 0x40667020, 0x3359: 0x40667220, 0x335a: 0x40667420, 0x335b: 0x40667620, + 0x335c: 0x40667820, 0x335d: 0x40667a20, 0x335e: 0x40667c20, 0x335f: 0x40667e20, + 0x3360: 0x40668020, 0x3361: 0x40668220, 0x3362: 0x40668420, 0x3363: 0x40668620, + 0x3364: 0x40668820, 0x3365: 0x40668a20, 0x3366: 0x40668c20, 0x3367: 0x40668e20, + 0x3368: 0x40669020, 0x3369: 0x40669220, 0x336a: 0x40669420, 0x336b: 0x40669620, + 0x336c: 0x40669820, 0x336d: 0x40669a20, 0x336e: 0x40669c20, 0x336f: 0x40669e20, + 0x3370: 0x4066a020, 0x3371: 0x4066a220, 0x3372: 0x4066a420, 0x3373: 0x4066a620, + 0x3374: 0x4066a820, 0x3375: 0x4066aa20, 0x3376: 0x4066ac20, 0x3377: 0x4066ae20, + 0x3378: 0x4066b020, 0x3379: 0x4066b220, 0x337a: 0x4066b420, 0x337b: 0x4066b620, + 0x337c: 0x4066b820, 0x337d: 0x4066ba20, 0x337e: 0x4066bc20, 0x337f: 0x4066be20, + // Block 0xce, offset 0x3380 + 0x3380: 0x4066c020, 0x3381: 0x4066c220, 0x3382: 0x4066c420, 0x3383: 0x4066c620, + 0x3384: 0x4066c820, 0x3385: 0x4066ca20, 0x3386: 0x4066cc20, 0x3387: 0x4066ce20, + 0x3388: 0x4066d020, 0x3389: 0x4066d220, 0x338a: 0x4066d420, 0x338b: 0x4066d620, + 0x338c: 0x4066d820, 0x338d: 0x4066da20, 0x338e: 0x4066dc20, 0x338f: 0x4066de20, + 0x3390: 0x4066e020, 0x3391: 0x4066e220, 0x3392: 0x4066e420, 0x3393: 0x4066e620, + 0x3394: 0x4066e820, 0x3395: 0x4066ea20, 0x3396: 0x4066ec20, 0x3397: 0x4066ee20, + 0x3398: 0x4066f020, 0x3399: 0x4066f220, 0x339a: 0x4066f420, 0x339b: 0x4066f620, + 0x339c: 0x4066f820, 0x339d: 0x4066fa20, 0x339e: 0x4066fc20, 0x339f: 0x4066fe20, + 0x33a0: 0x40670020, 0x33a1: 0x40670220, 0x33a2: 0x40670420, 0x33a3: 0x40670620, + 0x33a4: 0x40670820, 0x33a5: 0x40670a20, 0x33a6: 0x40670c20, 0x33a7: 0x40670e20, + 0x33a8: 0x40671020, 0x33a9: 0x40671220, 0x33aa: 0x40671420, 0x33ab: 0x40671620, + 0x33ac: 0x40671820, 0x33ad: 0x40671a20, 0x33ae: 0x40671c20, 0x33af: 0x40671e20, + 0x33b0: 0x40672020, 0x33b1: 0x40672220, 0x33b2: 0x40672420, 0x33b3: 0x40672620, + 0x33b4: 0x40672820, 0x33b5: 0x40672a20, 0x33b6: 0x40672c20, 0x33b7: 0x40672e20, + 0x33b8: 0x40673020, 0x33b9: 0x40673220, 0x33ba: 0x40673420, 0x33bb: 0x40673620, + 0x33bc: 0x40673820, 0x33bd: 0x40673a20, 0x33be: 0x40673c20, 0x33bf: 0x40673e20, + // Block 0xcf, offset 0x33c0 + 0x33c0: 0x40674020, 0x33c1: 0x40674220, 0x33c2: 0x40674420, 0x33c3: 0x40674620, + 0x33c4: 0x40674820, 0x33c5: 0x40674a20, 0x33c6: 0x40674c20, 0x33c7: 0x40674e20, + 0x33c8: 0x40675020, 0x33c9: 0x40675220, 0x33ca: 0x40675420, 0x33cb: 0x40675620, + 0x33cc: 0x40675820, 0x33cd: 0x40675a20, 0x33ce: 0x40675c20, 0x33cf: 0x40675e20, + 0x33d0: 0x40676020, 0x33d1: 0x40676220, 0x33d2: 0x40676420, 0x33d3: 0x40676620, + 0x33d4: 0x40676820, 0x33d5: 0x40676a20, 0x33d6: 0x40676c20, 0x33d7: 0x40676e20, + 0x33d8: 0x40677020, 0x33d9: 0x40677220, 0x33da: 0x40677420, 0x33db: 0x40677620, + 0x33dc: 0x40677820, 0x33dd: 0x40677a20, 0x33de: 0x40677c20, 0x33df: 0x40677e20, + 0x33e0: 0x40678020, 0x33e1: 0x40678220, 0x33e2: 0x40678420, 0x33e3: 0x40678620, + 0x33e4: 0x40678820, 0x33e5: 0x40678a20, 0x33e6: 0x40678c20, 0x33e7: 0x40678e20, + 0x33e8: 0x40679020, 0x33e9: 0x40679220, 0x33ea: 0x40679420, 0x33eb: 0x40679620, + 0x33ec: 0x40679820, 0x33ed: 0x40679a20, 0x33ee: 0x40679c20, 0x33ef: 0x40679e20, + 0x33f0: 0x4067a020, 0x33f1: 0x4067a220, 0x33f2: 0x4067a420, 0x33f3: 0x4067a620, + 0x33f4: 0x4067a820, 0x33f5: 0x4067aa20, 0x33f6: 0x4067ac20, 0x33f7: 0x4067ae20, + 0x33f8: 0x4067b020, 0x33f9: 0x4067b220, 0x33fa: 0x4067b420, 0x33fb: 0x4067b620, + 0x33fc: 0x4067b820, 0x33fd: 0x4067ba20, 0x33fe: 0x4067bc20, 0x33ff: 0x4067be20, + // Block 0xd0, offset 0x3400 + 0x3400: 0x4067c020, 0x3401: 0x4067c220, 0x3402: 0x4067c420, 0x3403: 0x4067c620, + 0x3404: 0x4067c820, 0x3405: 0x4067ca20, 0x3406: 0x4067cc20, 0x3407: 0x4067ce20, + 0x3408: 0x4067d020, 0x3409: 0x4067d220, 0x340a: 0x4067d420, 0x340b: 0x4067d620, + 0x340c: 0x4067d820, 0x340d: 0x4067da20, 0x340e: 0x4067dc20, 0x340f: 0x4067de20, + 0x3410: 0x4067e020, 0x3411: 0x4067e220, 0x3412: 0x4067e420, 0x3413: 0x4067e620, + 0x3414: 0x4067e820, 0x3415: 0x4067ea20, 0x3416: 0x4067ec20, 0x3417: 0x4067ee20, + 0x3418: 0x4067f020, 0x3419: 0x4067f220, 0x341a: 0x4067f420, 0x341b: 0x4067f620, + 0x341c: 0x4067f820, 0x341d: 0x4067fa20, 0x341e: 0x4067fc20, 0x341f: 0x4067fe20, + 0x3420: 0x40680020, 0x3421: 0x40680220, 0x3422: 0x40680420, 0x3423: 0x40680620, + 0x3424: 0x40680820, 0x3425: 0x40680a20, 0x3426: 0x40680c20, 0x3427: 0x40680e20, + 0x3428: 0x40681020, 0x3429: 0x40681220, 0x342a: 0x40681420, 0x342b: 0x40681620, + 0x342c: 0x40681820, 0x342d: 0x40681a20, 0x342e: 0x40681c20, 0x342f: 0x40681e20, + 0x3430: 0x40682020, 0x3431: 0x40682220, 0x3432: 0x40682420, 0x3433: 0x40682620, + 0x3434: 0x40682820, 0x3435: 0x40682a20, 0x3436: 0x40682c20, 0x3437: 0x40682e20, + 0x3438: 0x40683020, 0x3439: 0x40683220, 0x343a: 0x40683420, 0x343b: 0x40683620, + 0x343c: 0x40683820, 0x343d: 0x40683a20, 0x343e: 0x40683c20, 0x343f: 0x40683e20, + // Block 0xd1, offset 0x3440 + 0x3440: 0x40684020, 0x3441: 0x40684220, 0x3442: 0x40684420, 0x3443: 0x40684620, + 0x3444: 0x40684820, 0x3445: 0x40684a20, 0x3446: 0x40684c20, 0x3447: 0x40684e20, + 0x3448: 0x40685020, 0x3449: 0x40685220, 0x344a: 0x40685420, 0x344b: 0x40685620, + 0x344c: 0x40685820, 0x344d: 0x40685a20, 0x344e: 0x40685c20, 0x344f: 0x40685e20, + 0x3450: 0x40686020, 0x3451: 0x40686220, 0x3452: 0x40686420, 0x3453: 0x40686620, + 0x3454: 0x40686820, 0x3455: 0x40686a20, 0x3456: 0x40686c20, 0x3457: 0x40686e20, + 0x3458: 0x40687020, 0x3459: 0x40687220, 0x345a: 0x40687420, 0x345b: 0x40687620, + 0x345c: 0x40687820, 0x345d: 0x40687a20, 0x345e: 0x40687c20, 0x345f: 0x40687e20, + 0x3460: 0x40688020, 0x3461: 0x40688220, 0x3462: 0x40688420, 0x3463: 0x40688620, + 0x3464: 0x40688820, 0x3465: 0x40688a20, 0x3466: 0x40688c20, 0x3467: 0x40688e20, + 0x3468: 0x40689020, 0x3469: 0x40689220, 0x346a: 0x40689420, 0x346b: 0x40689620, + 0x346c: 0x40689820, 0x346d: 0x40689a20, 0x346e: 0x40689c20, 0x346f: 0x40689e20, + 0x3470: 0x4068a020, 0x3471: 0x4068a220, 0x3472: 0x4068a420, 0x3473: 0x4068a620, + 0x3474: 0x4068a820, 0x3475: 0x4068aa20, 0x3476: 0x4068ac20, 0x3477: 0x4068ae20, + 0x3478: 0x4068b020, 0x3479: 0x4068b220, 0x347a: 0x4068b420, 0x347b: 0x4068b620, + 0x347c: 0x4068b820, 0x347d: 0x4068ba20, 0x347e: 0x4068bc20, 0x347f: 0x4068be20, + // Block 0xd2, offset 0x3480 + 0x3480: 0x4068c020, 0x3481: 0x4068c220, 0x3482: 0x4068c420, 0x3483: 0x4068c620, + 0x3484: 0x4068c820, 0x3485: 0x4068ca20, 0x3486: 0x4068cc20, 0x3487: 0x4068ce20, + 0x3488: 0x4068d020, 0x3489: 0x4068d220, 0x348a: 0x4068d420, 0x348b: 0x4068d620, + 0x348c: 0x4068d820, 0x348d: 0x4068da20, 0x348e: 0x4068dc20, 0x348f: 0x4068de20, + 0x3490: 0x4068e020, 0x3491: 0x4068e220, 0x3492: 0x4068e420, 0x3493: 0x4068e620, + 0x3494: 0x4068e820, 0x3495: 0x4068ea20, 0x3496: 0x4068ec20, 0x3497: 0x4068ee20, + 0x3498: 0x4068f020, 0x3499: 0x4068f220, 0x349a: 0x4068f420, 0x349b: 0x4068f620, + 0x349c: 0x4068f820, 0x349d: 0x4068fa20, 0x349e: 0x4068fc20, 0x349f: 0x4068fe20, + 0x34a0: 0x40690020, 0x34a1: 0x40690220, 0x34a2: 0x40690420, 0x34a3: 0x40690620, + 0x34a4: 0x40690820, 0x34a5: 0x40690a20, 0x34a6: 0x40690c20, 0x34a7: 0x40690e20, + 0x34a8: 0x40691020, 0x34a9: 0x40691220, 0x34aa: 0x40691420, 0x34ab: 0x40691620, + 0x34ac: 0x40691820, 0x34ad: 0x40691a20, 0x34ae: 0x40691c20, 0x34af: 0x40691e20, + 0x34b0: 0x40692020, 0x34b1: 0x40692220, 0x34b2: 0x40692420, 0x34b3: 0x40692620, + 0x34b4: 0x40692820, 0x34b5: 0x40692a20, 0x34b6: 0x40692c20, 0x34b7: 0x40692e20, + 0x34b8: 0x40693020, 0x34b9: 0x40693220, 0x34ba: 0x40693420, 0x34bb: 0x40693620, + 0x34bc: 0x40693820, 0x34bd: 0x40693a20, 0x34be: 0x40693c20, 0x34bf: 0x40693e20, + // Block 0xd3, offset 0x34c0 + 0x34c0: 0x40694020, 0x34c1: 0x40694220, 0x34c2: 0x40694420, 0x34c3: 0x40694620, + 0x34c4: 0x40694820, 0x34c5: 0x40694a20, 0x34c6: 0x40694c20, 0x34c7: 0x40694e20, + 0x34c8: 0x40695020, 0x34c9: 0x40695220, 0x34ca: 0x40695420, 0x34cb: 0x40695620, + 0x34cc: 0x40695820, 0x34cd: 0x40695a20, 0x34ce: 0x40695c20, 0x34cf: 0x40695e20, + 0x34d0: 0x40696020, 0x34d1: 0x40696220, 0x34d2: 0x40696420, 0x34d3: 0x40696620, + 0x34d4: 0x40696820, 0x34d5: 0x40696a20, 0x34d6: 0x40696c20, 0x34d7: 0x40696e20, + 0x34d8: 0x40697020, 0x34d9: 0x40697220, 0x34da: 0x40697420, 0x34db: 0x40697620, + 0x34dc: 0x40697820, 0x34dd: 0x40697a20, 0x34de: 0x40697c20, 0x34df: 0x40697e20, + 0x34e0: 0x40698020, 0x34e1: 0x40698220, 0x34e2: 0x40698420, 0x34e3: 0x40698620, + 0x34e4: 0x40698820, 0x34e5: 0x40698a20, 0x34e6: 0x40698c20, 0x34e7: 0x40698e20, + 0x34e8: 0x40699020, 0x34e9: 0x40699220, 0x34ea: 0x40699420, 0x34eb: 0x40699620, + 0x34ec: 0x40699820, 0x34ed: 0x40699a20, 0x34ee: 0x40699c20, 0x34ef: 0x40699e20, + 0x34f0: 0x4069a020, 0x34f1: 0x4069a220, 0x34f2: 0x4069a420, 0x34f3: 0x4069a620, + 0x34f4: 0x4069a820, 0x34f5: 0x4069aa20, 0x34f6: 0x4069ac20, 0x34f7: 0x4069ae20, + 0x34f8: 0x4069b020, 0x34f9: 0x4069b220, 0x34fa: 0x4069b420, 0x34fb: 0x4069b620, + 0x34fc: 0x4069b820, 0x34fd: 0x4069ba20, 0x34fe: 0x4069bc20, 0x34ff: 0x4069be20, + // Block 0xd4, offset 0x3500 + 0x3500: 0x4069c020, 0x3501: 0x4069c220, 0x3502: 0x4069c420, 0x3503: 0x4069c620, + 0x3504: 0x4069c820, 0x3505: 0x4069ca20, 0x3506: 0x4069cc20, 0x3507: 0x4069ce20, + 0x3508: 0x4069d020, 0x3509: 0x4069d220, 0x350a: 0x4069d420, 0x350b: 0x4069d620, + 0x350c: 0x4069d820, 0x350d: 0x4069da20, 0x350e: 0x4069dc20, 0x350f: 0x4069de20, + 0x3510: 0x4069e020, 0x3511: 0x4069e220, 0x3512: 0x4069e420, 0x3513: 0x4069e620, + 0x3514: 0x4069e820, 0x3515: 0x4069ea20, 0x3516: 0x4069ec20, 0x3517: 0x4069ee20, + 0x3518: 0x4069f020, 0x3519: 0x4069f220, 0x351a: 0x4069f420, 0x351b: 0x4069f620, + 0x351c: 0x4069f820, 0x351d: 0x4069fa20, 0x351e: 0x4069fc20, 0x351f: 0x4069fe20, + 0x3520: 0x406a0020, 0x3521: 0x406a0220, 0x3522: 0x406a0420, 0x3523: 0x406a0620, + 0x3524: 0x406a0820, 0x3525: 0x406a0a20, 0x3526: 0x406a0c20, 0x3527: 0x406a0e20, + 0x3528: 0x406a1020, 0x3529: 0x406a1220, 0x352a: 0x406a1420, 0x352b: 0x406a1620, + 0x352c: 0x406a1820, 0x352d: 0x406a1a20, 0x352e: 0x406a1c20, 0x352f: 0x406a1e20, + 0x3530: 0x406a2020, 0x3531: 0x406a2220, 0x3532: 0x406a2420, 0x3533: 0x406a2620, + 0x3534: 0x406a2820, 0x3535: 0x406a2a20, 0x3536: 0x406a2c20, 0x3537: 0x406a2e20, + 0x3538: 0x406a3020, 0x3539: 0x406a3220, 0x353a: 0x406a3420, 0x353b: 0x406a3620, + 0x353c: 0x406a3820, 0x353d: 0x406a3a20, 0x353e: 0x406a3c20, 0x353f: 0x406a3e20, + // Block 0xd5, offset 0x3540 + 0x3540: 0x406a4020, 0x3541: 0x406a4220, 0x3542: 0x406a4420, 0x3543: 0x406a4620, + 0x3544: 0x406a4820, 0x3545: 0x406a4a20, 0x3546: 0x406a4c20, 0x3547: 0x406a4e20, + 0x3548: 0x406a5020, 0x3549: 0x406a5220, 0x354a: 0x406a5420, 0x354b: 0x406a5620, + 0x354c: 0x406a5820, 0x354d: 0x406a5a20, 0x354e: 0x406a5c20, 0x354f: 0x406a5e20, + 0x3550: 0x406a6020, 0x3551: 0x406a6220, 0x3552: 0x406a6420, 0x3553: 0x406a6620, + 0x3554: 0x406a6820, 0x3555: 0x406a6a20, 0x3556: 0x406a6c20, 0x3557: 0x406a6e20, + 0x3558: 0x406a7020, 0x3559: 0x406a7220, 0x355a: 0x406a7420, 0x355b: 0x406a7620, + 0x355c: 0x406a7820, 0x355d: 0x406a7a20, 0x355e: 0x406a7c20, 0x355f: 0x406a7e20, + 0x3560: 0x406a8020, 0x3561: 0x406a8220, 0x3562: 0x406a8420, 0x3563: 0x406a8620, + 0x3564: 0x406a8820, 0x3565: 0x406a8a20, 0x3566: 0x406a8c20, 0x3567: 0x406a8e20, + 0x3568: 0x406a9020, 0x3569: 0x406a9220, 0x356a: 0x406a9420, 0x356b: 0x406a9620, + 0x356c: 0x406a9820, 0x356d: 0x406a9a20, 0x356e: 0x406a9c20, 0x356f: 0x406a9e20, + 0x3570: 0x406aa020, 0x3571: 0x406aa220, 0x3572: 0x406aa420, 0x3573: 0x406aa620, + 0x3574: 0x406aa820, 0x3575: 0x406aaa20, 0x3576: 0x406aac20, 0x3577: 0x406aae20, + 0x3578: 0x406ab020, 0x3579: 0x406ab220, 0x357a: 0x406ab420, 0x357b: 0x406ab620, + 0x357c: 0x406ab820, 0x357d: 0x406aba20, 0x357e: 0x406abc20, 0x357f: 0x406abe20, + // Block 0xd6, offset 0x3580 + 0x3580: 0x406ac020, 0x3581: 0x406ac220, 0x3582: 0x406ac420, 0x3583: 0x406ac620, + 0x3584: 0x406ac820, 0x3585: 0x406aca20, 0x3586: 0x406acc20, 0x3587: 0x406ace20, + 0x3588: 0x406ad020, 0x3589: 0x406ad220, 0x358a: 0x406ad420, 0x358b: 0x406ad620, + 0x358c: 0x406ad820, 0x358d: 0x406ada20, 0x358e: 0x406adc20, 0x358f: 0x406ade20, + 0x3590: 0x406ae020, 0x3591: 0x406ae220, 0x3592: 0x406ae420, 0x3593: 0x406ae620, + 0x3594: 0x406ae820, 0x3595: 0x406aea20, 0x3596: 0x406aec20, 0x3597: 0x406aee20, + 0x3598: 0x406af020, 0x3599: 0x406af220, 0x359a: 0x406af420, 0x359b: 0x406af620, + 0x359c: 0x406af820, 0x359d: 0x406afa20, 0x359e: 0x406afc20, 0x359f: 0x406afe20, + 0x35a0: 0x406b0020, 0x35a1: 0x406b0220, 0x35a2: 0x406b0420, 0x35a3: 0x406b0620, + 0x35a4: 0x406b0820, 0x35a5: 0x406b0a20, 0x35a6: 0x406b0c20, 0x35a7: 0x406b0e20, + 0x35a8: 0x406b1020, 0x35a9: 0x406b1220, 0x35aa: 0x406b1420, 0x35ab: 0x406b1620, + 0x35ac: 0x406b1820, 0x35ad: 0x406b1a20, 0x35ae: 0x406b1c20, 0x35af: 0x406b1e20, + 0x35b0: 0x406b2020, 0x35b1: 0x406b2220, 0x35b2: 0x406b2420, 0x35b3: 0x406b2620, + 0x35b4: 0x406b2820, 0x35b5: 0x406b2a20, 0x35b6: 0x406b2c20, 0x35b7: 0x406b2e20, + 0x35b8: 0x406b3020, 0x35b9: 0x406b3220, 0x35ba: 0x406b3420, 0x35bb: 0x406b3620, + 0x35bc: 0x406b3820, 0x35bd: 0x406b3a20, 0x35be: 0x406b3c20, 0x35bf: 0x406b3e20, + // Block 0xd7, offset 0x35c0 + 0x35c0: 0x406b4020, 0x35c1: 0x406b4220, 0x35c2: 0x406b4420, 0x35c3: 0x406b4620, + 0x35c4: 0x406b4820, 0x35c5: 0x406b4a20, 0x35c6: 0x406b4c20, 0x35c7: 0x406b4e20, + 0x35c8: 0x406b5020, 0x35c9: 0x406b5220, 0x35ca: 0x406b5420, 0x35cb: 0x406b5620, + 0x35cc: 0x406b5820, 0x35cd: 0x406b5a20, 0x35ce: 0x406b5c20, 0x35cf: 0x406b5e20, + 0x35d0: 0x406b6020, 0x35d1: 0x406b6220, 0x35d2: 0x406b6420, 0x35d3: 0x406b6620, + 0x35d4: 0x406b6820, 0x35d5: 0x406b6a20, 0x35d6: 0x406b6c20, 0x35d7: 0x406b6e20, + 0x35d8: 0x406b7020, 0x35d9: 0x406b7220, 0x35da: 0x406b7420, 0x35db: 0x406b7620, + 0x35dc: 0x406b7820, 0x35dd: 0x406b7a20, 0x35de: 0x406b7c20, 0x35df: 0x406b7e20, + 0x35e0: 0x406b8020, 0x35e1: 0x406b8220, 0x35e2: 0x406b8420, 0x35e3: 0x406b8620, + 0x35e4: 0x406b8820, 0x35e5: 0x406b8a20, 0x35e6: 0x406b8c20, 0x35e7: 0x406b8e20, + 0x35e8: 0x406b9020, 0x35e9: 0x406b9220, 0x35ea: 0x406b9420, 0x35eb: 0x406b9620, + 0x35ec: 0x406b9820, 0x35ed: 0x406b9a20, 0x35ee: 0x406b9c20, 0x35ef: 0x406b9e20, + 0x35f0: 0x406ba020, 0x35f1: 0x406ba220, 0x35f2: 0x406ba420, 0x35f3: 0x406ba620, + 0x35f4: 0x406ba820, 0x35f5: 0x406baa20, 0x35f6: 0x406bac20, 0x35f7: 0x406bae20, + 0x35f8: 0x406bb020, 0x35f9: 0x406bb220, 0x35fa: 0x406bb420, 0x35fb: 0x406bb620, + 0x35fc: 0x406bb820, 0x35fd: 0x406bba20, 0x35fe: 0x406bbc20, 0x35ff: 0x406bbe20, + // Block 0xd8, offset 0x3600 + 0x3600: 0x406bc020, 0x3601: 0x406bc220, 0x3602: 0x406bc420, 0x3603: 0x406bc620, + 0x3604: 0x406bc820, 0x3605: 0x406bca20, 0x3606: 0x406bcc20, 0x3607: 0x406bce20, + 0x3608: 0x406bd020, 0x3609: 0x406bd220, 0x360a: 0x406bd420, 0x360b: 0x406bd620, + 0x360c: 0x406bd820, 0x360d: 0x406bda20, 0x360e: 0x406bdc20, 0x360f: 0x406bde20, + 0x3610: 0x406be020, 0x3611: 0x406be220, 0x3612: 0x406be420, 0x3613: 0x406be620, + 0x3614: 0x406be820, 0x3615: 0x406bea20, 0x3616: 0x406bec20, 0x3617: 0x406bee20, + 0x3618: 0x406bf020, 0x3619: 0x406bf220, 0x361a: 0x406bf420, 0x361b: 0x406bf620, + 0x361c: 0x406bf820, 0x361d: 0x406bfa20, 0x361e: 0x406bfc20, 0x361f: 0x406bfe20, + 0x3620: 0x406c0020, 0x3621: 0x406c0220, 0x3622: 0x406c0420, 0x3623: 0x406c0620, + 0x3624: 0x406c0820, 0x3625: 0x406c0a20, 0x3626: 0x406c0c20, 0x3627: 0x406c0e20, + 0x3628: 0x406c1020, 0x3629: 0x406c1220, 0x362a: 0x406c1420, 0x362b: 0x406c1620, + 0x362c: 0x406c1820, 0x362d: 0x406c1a20, 0x362e: 0x406c1c20, 0x362f: 0x406c1e20, + 0x3630: 0x406c2020, 0x3631: 0x406c2220, 0x3632: 0x406c2420, 0x3633: 0x406c2620, + 0x3634: 0x406c2820, 0x3635: 0x406c2a20, 0x3636: 0x406c2c20, 0x3637: 0x406c2e20, + 0x3638: 0x406c3020, 0x3639: 0x406c3220, 0x363a: 0x406c3420, 0x363b: 0x406c3620, + 0x363c: 0x406c3820, 0x363d: 0x406c3a20, 0x363e: 0x406c3c20, 0x363f: 0x406c3e20, + // Block 0xd9, offset 0x3640 + 0x3640: 0x406c4020, 0x3641: 0x406c4220, 0x3642: 0x406c4420, 0x3643: 0x406c4620, + 0x3644: 0x406c4820, 0x3645: 0x406c4a20, 0x3646: 0x406c4c20, 0x3647: 0x406c4e20, + 0x3648: 0x406c5020, 0x3649: 0x406c5220, 0x364a: 0x406c5420, 0x364b: 0x406c5620, + 0x364c: 0x406c5820, 0x364d: 0x406c5a20, 0x364e: 0x406c5c20, 0x364f: 0x406c5e20, + 0x3650: 0x406c6020, 0x3651: 0x406c6220, 0x3652: 0x406c6420, 0x3653: 0x406c6620, + 0x3654: 0x406c6820, 0x3655: 0x406c6a20, 0x3656: 0x406c6c20, 0x3657: 0x406c6e20, + 0x3658: 0x406c7020, 0x3659: 0x406c7220, 0x365a: 0x406c7420, 0x365b: 0x406c7620, + 0x365c: 0x406c7820, 0x365d: 0x406c7a20, 0x365e: 0x406c7c20, 0x365f: 0x406c7e20, + 0x3660: 0x406c8020, 0x3661: 0x406c8220, 0x3662: 0x406c8420, 0x3663: 0x406c8620, + 0x3664: 0x406c8820, 0x3665: 0x406c8a20, 0x3666: 0x406c8c20, 0x3667: 0x406c8e20, + 0x3668: 0x406c9020, 0x3669: 0x406c9220, 0x366a: 0x406c9420, 0x366b: 0x406c9620, + 0x366c: 0x406c9820, 0x366d: 0x406c9a20, 0x366e: 0x406c9c20, 0x366f: 0x406c9e20, + 0x3670: 0x406ca020, 0x3671: 0x406ca220, 0x3672: 0x406ca420, 0x3673: 0x406ca620, + 0x3674: 0x406ca820, 0x3675: 0x406caa20, 0x3676: 0x406cac20, 0x3677: 0x406cae20, + 0x3678: 0x406cb020, 0x3679: 0x406cb220, 0x367a: 0x406cb420, 0x367b: 0x406cb620, + 0x367c: 0x406cb820, 0x367d: 0x406cba20, 0x367e: 0x406cbc20, 0x367f: 0x406cbe20, + // Block 0xda, offset 0x3680 + 0x3680: 0x406cc020, 0x3681: 0x406cc220, 0x3682: 0x406cc420, 0x3683: 0x406cc620, + 0x3684: 0x406cc820, 0x3685: 0x406cca20, 0x3686: 0x406ccc20, 0x3687: 0x406cce20, + 0x3688: 0x406cd020, 0x3689: 0x406cd220, 0x368a: 0x406cd420, 0x368b: 0x406cd620, + 0x368c: 0x406cd820, 0x368d: 0x406cda20, 0x368e: 0x406cdc20, 0x368f: 0x406cde20, + 0x3690: 0x406ce020, 0x3691: 0x406ce220, 0x3692: 0x406ce420, 0x3693: 0x406ce620, + 0x3694: 0x406ce820, 0x3695: 0x406cea20, 0x3696: 0x406cec20, 0x3697: 0x406cee20, + 0x3698: 0x406cf020, 0x3699: 0x406cf220, 0x369a: 0x406cf420, 0x369b: 0x406cf620, + 0x369c: 0x406cf820, 0x369d: 0x406cfa20, 0x369e: 0x406cfc20, 0x369f: 0x406cfe20, + 0x36a0: 0x406d0020, 0x36a1: 0x406d0220, 0x36a2: 0x406d0420, 0x36a3: 0x406d0620, + 0x36a4: 0x406d0820, 0x36a5: 0x406d0a20, 0x36a6: 0x406d0c20, 0x36a7: 0x406d0e20, + 0x36a8: 0x406d1020, 0x36a9: 0x406d1220, 0x36aa: 0x406d1420, 0x36ab: 0x406d1620, + 0x36ac: 0x406d1820, 0x36ad: 0x406d1a20, 0x36ae: 0x406d1c20, 0x36af: 0x406d1e20, + 0x36b0: 0x406d2020, 0x36b1: 0x406d2220, 0x36b2: 0x406d2420, 0x36b3: 0x406d2620, + 0x36b4: 0x406d2820, 0x36b5: 0x406d2a20, 0x36b6: 0x406d2c20, 0x36b7: 0x406d2e20, + 0x36b8: 0x406d3020, 0x36b9: 0x406d3220, 0x36ba: 0x406d3420, 0x36bb: 0x406d3620, + 0x36bc: 0x406d3820, 0x36bd: 0x406d3a20, 0x36be: 0x406d3c20, 0x36bf: 0x406d3e20, + // Block 0xdb, offset 0x36c0 + 0x36c0: 0x406d4020, 0x36c1: 0x406d4220, 0x36c2: 0x406d4420, 0x36c3: 0x406d4620, + 0x36c4: 0x406d4820, 0x36c5: 0x406d4a20, 0x36c6: 0x406d4c20, 0x36c7: 0x406d4e20, + 0x36c8: 0x406d5020, 0x36c9: 0x406d5220, 0x36ca: 0x406d5420, 0x36cb: 0x406d5620, + 0x36cc: 0x406d5820, 0x36cd: 0x406d5a20, 0x36ce: 0x406d5c20, 0x36cf: 0x406d5e20, + 0x36d0: 0x406d6020, 0x36d1: 0x406d6220, 0x36d2: 0x406d6420, 0x36d3: 0x406d6620, + 0x36d4: 0x406d6820, 0x36d5: 0x406d6a20, 0x36d6: 0x406d6c20, 0x36d7: 0x406d6e20, + 0x36d8: 0x406d7020, 0x36d9: 0x406d7220, 0x36da: 0x406d7420, 0x36db: 0x406d7620, + 0x36dc: 0x406d7820, 0x36dd: 0x406d7a20, 0x36de: 0x406d7c20, 0x36df: 0x406d7e20, + 0x36e0: 0x406d8020, 0x36e1: 0x406d8220, 0x36e2: 0x406d8420, 0x36e3: 0x406d8620, + 0x36e4: 0x406d8820, 0x36e5: 0x406d8a20, 0x36e6: 0x406d8c20, 0x36e7: 0x406d8e20, + 0x36e8: 0x406d9020, 0x36e9: 0x406d9220, 0x36ea: 0x406d9420, 0x36eb: 0x406d9620, + 0x36ec: 0x406d9820, 0x36ed: 0x406d9a20, 0x36ee: 0x406d9c20, 0x36ef: 0x406d9e20, + 0x36f0: 0x406da020, 0x36f1: 0x406da220, 0x36f2: 0x406da420, 0x36f3: 0x406da620, + 0x36f4: 0x406da820, 0x36f5: 0x406daa20, 0x36f6: 0x406dac20, 0x36f7: 0x406dae20, + 0x36f8: 0x406db020, 0x36f9: 0x406db220, 0x36fa: 0x406db420, 0x36fb: 0x406db620, + 0x36fc: 0x406db820, 0x36fd: 0x406dba20, 0x36fe: 0x406dbc20, 0x36ff: 0x406dbe20, + // Block 0xdc, offset 0x3700 + 0x3700: 0x406dc020, 0x3701: 0x406dc220, 0x3702: 0x406dc420, 0x3703: 0x406dc620, + 0x3704: 0x406dc820, 0x3705: 0x406dca20, 0x3706: 0x406dcc20, 0x3707: 0x406dce20, + 0x3708: 0x406dd020, 0x3709: 0x406dd220, 0x370a: 0x406dd420, 0x370b: 0x406dd620, + 0x370c: 0x406dd820, 0x370d: 0x406dda20, 0x370e: 0x406ddc20, 0x370f: 0x406dde20, + 0x3710: 0x406de020, 0x3711: 0x406de220, 0x3712: 0x406de420, 0x3713: 0x406de620, + 0x3714: 0x406de820, 0x3715: 0x406dea20, 0x3716: 0x406dec20, 0x3717: 0x406dee20, + 0x3718: 0x406df020, 0x3719: 0x406df220, 0x371a: 0x406df420, 0x371b: 0x406df620, + 0x371c: 0x406df820, 0x371d: 0x406dfa20, 0x371e: 0x406dfc20, 0x371f: 0x406dfe20, + 0x3720: 0x406e0020, 0x3721: 0x406e0220, 0x3722: 0x406e0420, 0x3723: 0x406e0620, + 0x3724: 0x406e0820, 0x3725: 0x406e0a20, 0x3726: 0x406e0c20, 0x3727: 0x406e0e20, + 0x3728: 0x406e1020, 0x3729: 0x406e1220, 0x372a: 0x406e1420, 0x372b: 0x406e1620, + 0x372c: 0x406e1820, 0x372d: 0x406e1a20, 0x372e: 0x406e1c20, 0x372f: 0x406e1e20, + 0x3730: 0x406e2020, 0x3731: 0x406e2220, 0x3732: 0x406e2420, 0x3733: 0x406e2620, + 0x3734: 0x406e2820, 0x3735: 0x406e2a20, 0x3736: 0x406e2c20, 0x3737: 0x406e2e20, + 0x3738: 0x406e3020, 0x3739: 0x406e3220, 0x373a: 0x406e3420, 0x373b: 0x406e3620, + 0x373c: 0x406e3820, 0x373d: 0x406e3a20, 0x373e: 0x406e3c20, 0x373f: 0x406e3e20, + // Block 0xdd, offset 0x3740 + 0x3740: 0x406e4020, 0x3741: 0x406e4220, 0x3742: 0x406e4420, 0x3743: 0x406e4620, + 0x3744: 0x406e4820, 0x3745: 0x406e4a20, 0x3746: 0x406e4c20, 0x3747: 0x406e4e20, + 0x3748: 0x406e5020, 0x3749: 0x406e5220, 0x374a: 0x406e5420, 0x374b: 0x406e5620, + 0x374c: 0x406e5820, 0x374d: 0x406e5a20, 0x374e: 0x406e5c20, 0x374f: 0x406e5e20, + 0x3750: 0x406e6020, 0x3751: 0x406e6220, 0x3752: 0x406e6420, 0x3753: 0x406e6620, + 0x3754: 0x406e6820, 0x3755: 0x406e6a20, 0x3756: 0x406e6c20, 0x3757: 0x406e6e20, + 0x3758: 0x406e7020, 0x3759: 0x406e7220, 0x375a: 0x406e7420, 0x375b: 0x406e7620, + 0x375c: 0x406e7820, 0x375d: 0x406e7a20, 0x375e: 0x406e7c20, 0x375f: 0x406e7e20, + 0x3760: 0x406e8020, 0x3761: 0x406e8220, 0x3762: 0x406e8420, 0x3763: 0x406e8620, + 0x3764: 0x406e8820, 0x3765: 0x406e8a20, 0x3766: 0x406e8c20, 0x3767: 0x406e8e20, + 0x3768: 0x406e9020, 0x3769: 0x406e9220, 0x376a: 0x406e9420, 0x376b: 0x406e9620, + 0x376c: 0x406e9820, 0x376d: 0x406e9a20, 0x376e: 0x406e9c20, 0x376f: 0x406e9e20, + 0x3770: 0x406ea020, 0x3771: 0x406ea220, 0x3772: 0x406ea420, 0x3773: 0x406ea620, + 0x3774: 0x406ea820, 0x3775: 0x406eaa20, 0x3776: 0x406eac20, 0x3777: 0x406eae20, + 0x3778: 0x406eb020, 0x3779: 0x406eb220, 0x377a: 0x406eb420, 0x377b: 0x406eb620, + 0x377c: 0x406eb820, 0x377d: 0x406eba20, 0x377e: 0x406ebc20, 0x377f: 0x406ebe20, + // Block 0xde, offset 0x3780 + 0x3780: 0x406ec020, 0x3781: 0x406ec220, 0x3782: 0x406ec420, 0x3783: 0x406ec620, + 0x3784: 0x406ec820, 0x3785: 0x406eca20, 0x3786: 0x406ecc20, 0x3787: 0x406ece20, + 0x3788: 0x406ed020, 0x3789: 0x406ed220, 0x378a: 0x406ed420, 0x378b: 0x406ed620, + 0x378c: 0x406ed820, 0x378d: 0x406eda20, 0x378e: 0x406edc20, 0x378f: 0x406ede20, + 0x3790: 0x406ee020, 0x3791: 0x406ee220, 0x3792: 0x406ee420, 0x3793: 0x406ee620, + 0x3794: 0x406ee820, 0x3795: 0x406eea20, 0x3796: 0x406eec20, 0x3797: 0x406eee20, + 0x3798: 0x406ef020, 0x3799: 0x406ef220, 0x379a: 0x406ef420, 0x379b: 0x406ef620, + 0x379c: 0x406ef820, 0x379d: 0x406efa20, 0x379e: 0x406efc20, 0x379f: 0x406efe20, + 0x37a0: 0x406f0020, 0x37a1: 0x406f0220, 0x37a2: 0x406f0420, 0x37a3: 0x406f0620, + 0x37a4: 0x406f0820, 0x37a5: 0x406f0a20, 0x37a6: 0x406f0c20, 0x37a7: 0x406f0e20, + 0x37a8: 0x406f1020, 0x37a9: 0x406f1220, 0x37aa: 0x406f1420, 0x37ab: 0x406f1620, + 0x37ac: 0x406f1820, 0x37ad: 0x406f1a20, 0x37ae: 0x406f1c20, 0x37af: 0x406f1e20, + 0x37b0: 0x406f2020, 0x37b1: 0x406f2220, 0x37b2: 0x406f2420, 0x37b3: 0x406f2620, + 0x37b4: 0x406f2820, 0x37b5: 0x406f2a20, 0x37b6: 0x406f2c20, 0x37b7: 0x406f2e20, + 0x37b8: 0x406f3020, 0x37b9: 0x406f3220, 0x37ba: 0x406f3420, 0x37bb: 0x406f3620, + 0x37bc: 0x406f3820, 0x37bd: 0x406f3a20, 0x37be: 0x406f3c20, 0x37bf: 0x406f3e20, + // Block 0xdf, offset 0x37c0 + 0x37c0: 0x406f4020, 0x37c1: 0x406f4220, 0x37c2: 0x406f4420, 0x37c3: 0x406f4620, + 0x37c4: 0x406f4820, 0x37c5: 0x406f4a20, 0x37c6: 0x406f4c20, 0x37c7: 0x406f4e20, + 0x37c8: 0x406f5020, 0x37c9: 0x406f5220, 0x37ca: 0x406f5420, 0x37cb: 0x406f5620, + 0x37cc: 0x406f5820, + 0x37d0: 0x401a9020, 0x37d1: 0x401a9220, 0x37d2: 0x401a9420, 0x37d3: 0x401a9620, + 0x37d4: 0x401a9820, 0x37d5: 0x401a9a20, 0x37d6: 0x401a9c20, 0x37d7: 0x401a9e20, + 0x37d8: 0x401aa020, 0x37d9: 0x401aa220, 0x37da: 0x401aa420, 0x37db: 0x401aa620, + 0x37dc: 0x401aa820, 0x37dd: 0x401aaa20, 0x37de: 0x401aac20, 0x37df: 0x401aae20, + 0x37e0: 0x401ab020, 0x37e1: 0x401ab220, 0x37e2: 0x401ab420, 0x37e3: 0x401ab620, + 0x37e4: 0x401ab820, 0x37e5: 0x401aba20, 0x37e6: 0x401abc20, 0x37e7: 0x401abe20, + 0x37e8: 0x401ac020, 0x37e9: 0x401ac220, 0x37ea: 0x401ac420, 0x37eb: 0x401ac620, + 0x37ec: 0x401ac820, 0x37ed: 0x401aca20, 0x37ee: 0x401acc20, 0x37ef: 0x401ace20, + 0x37f0: 0x401ad020, 0x37f1: 0x401ad220, 0x37f2: 0x401ad420, 0x37f3: 0x401ad620, + 0x37f4: 0x401ad820, 0x37f5: 0x401ada20, 0x37f6: 0x401adc20, 0x37f7: 0x401ade20, + 0x37f8: 0x401ae020, 0x37f9: 0x401ae220, 0x37fa: 0x401ae420, 0x37fb: 0x401ae620, + 0x37fc: 0x401ae820, 0x37fd: 0x401aea20, 0x37fe: 0x401aec20, 0x37ff: 0x401aee20, + // Block 0xe0, offset 0x3800 + 0x3800: 0x401af020, 0x3801: 0x401af220, 0x3802: 0x401af420, 0x3803: 0x401af620, + 0x3804: 0x401af820, 0x3805: 0x401afa20, 0x3806: 0x401afc20, + 0x3810: 0x406f6620, 0x3811: 0x406f6820, 0x3812: 0x406f6a20, 0x3813: 0x406f6c20, + 0x3814: 0x406f6e20, 0x3815: 0x406f7020, 0x3816: 0x406f7220, 0x3817: 0x406f7420, + 0x3818: 0x406f7620, 0x3819: 0x406f7820, 0x381a: 0x406f7a20, 0x381b: 0x406f7c20, + 0x381c: 0x406f7e20, 0x381d: 0x406f8020, 0x381e: 0x406f8220, 0x381f: 0x406f8420, + 0x3820: 0x406f8620, 0x3821: 0x406f8820, 0x3822: 0x406f8a20, 0x3823: 0x406f8c20, + 0x3824: 0x406f8e20, 0x3825: 0x406f9020, 0x3826: 0x406f9220, 0x3827: 0x406f9420, + 0x3828: 0x406f9620, 0x3829: 0x406f9820, 0x382a: 0x406f9e20, 0x382b: 0x406f9a20, + 0x382c: 0x406fa020, 0x382d: 0x406f9c20, 0x382e: 0x406fa220, 0x382f: 0x406fa420, + 0x3830: 0x406fa620, 0x3831: 0x406fa820, 0x3832: 0x406faa20, 0x3833: 0x406fac20, + 0x3834: 0x406fae20, 0x3835: 0x406fb020, 0x3836: 0x406fb220, 0x3837: 0x406fb420, + 0x3838: 0x406f5a20, 0x3839: 0x406f5c20, 0x383a: 0x406f5e20, 0x383b: 0x406f6020, + 0x383c: 0x406f6420, 0x383d: 0x406f6220, 0x383e: 0x40025620, 0x383f: 0x4002fe20, + // Block 0xe1, offset 0x3840 + 0x3840: 0x405b8020, 0x3841: 0x405b8220, 0x3842: 0x405b8420, 0x3843: 0x405b8620, + 0x3844: 0x405b8820, 0x3845: 0x405b8a20, 0x3846: 0x405b8c20, 0x3847: 0x405b8e20, + 0x3848: 0x405b9020, 0x3849: 0x405b9220, 0x384a: 0x405b9420, 0x384b: 0x405b9620, + 0x384c: 0x405b9820, 0x384d: 0x405b9a20, 0x384e: 0x405b9c20, 0x384f: 0x405b9e20, + 0x3850: 0x405ba020, 0x3851: 0x405ba220, 0x3852: 0x405ba420, 0x3853: 0x405ba620, + 0x3854: 0x405ba820, 0x3855: 0x405baa20, 0x3856: 0x405bac20, 0x3857: 0x405bae20, + 0x3858: 0x405bb020, 0x3859: 0x405bb220, 0x385a: 0x405bb420, 0x385b: 0x405bb620, + 0x385c: 0x405bb820, 0x385d: 0x405bba20, 0x385e: 0x405bbc20, 0x385f: 0x405bbe20, + 0x3860: 0x405bc020, 0x3861: 0x405bc220, 0x3862: 0x405bc420, 0x3863: 0x405bc620, + 0x3864: 0x405bc820, 0x3865: 0x405bca20, 0x3866: 0x405bcc20, 0x3867: 0x405bce20, + 0x3868: 0x405bd020, 0x3869: 0x405bd220, 0x386a: 0x405bd420, 0x386b: 0x405bd620, + 0x386c: 0x405bd820, 0x386d: 0x405bda20, 0x386e: 0x405bdc20, 0x386f: 0x405bde20, + 0x3870: 0x405be020, 0x3871: 0x405be220, 0x3872: 0x405be420, 0x3873: 0x405be620, + 0x3874: 0x405be820, 0x3875: 0x405bea20, 0x3876: 0x405bec20, 0x3877: 0x405bee20, + 0x3878: 0x405bf020, 0x3879: 0x405bf220, 0x387a: 0x405bf420, 0x387b: 0x405bf620, + 0x387c: 0x405bf820, 0x387d: 0x405bfa20, 0x387e: 0x405bfc20, 0x387f: 0x405bfe20, + // Block 0xe2, offset 0x3880 + 0x3880: 0x405c0020, 0x3881: 0x405c0220, 0x3882: 0x405c0420, 0x3883: 0x405c0620, + 0x3884: 0x405c0820, 0x3885: 0x405c0a20, 0x3886: 0x405c0c20, 0x3887: 0x405c0e20, + 0x3888: 0x405c1020, 0x3889: 0x405c1220, 0x388a: 0x405c1420, 0x388b: 0x405c1620, + 0x388c: 0x405c1820, 0x388d: 0x405c1a20, 0x388e: 0x405c1c20, 0x388f: 0x405c1e20, + 0x3890: 0x405c2020, 0x3891: 0x405c2220, 0x3892: 0x405c2420, 0x3893: 0x405c2620, + 0x3894: 0x405c2820, 0x3895: 0x405c2a20, 0x3896: 0x405c2c20, 0x3897: 0x405c2e20, + 0x3898: 0x405c3020, 0x3899: 0x405c3220, 0x389a: 0x405c3420, 0x389b: 0x405c3620, + 0x389c: 0x405c3820, 0x389d: 0x405c3a20, 0x389e: 0x405c3c20, 0x389f: 0x405c3e20, + 0x38a0: 0x405c4020, 0x38a1: 0x405c4220, 0x38a2: 0x405c4420, 0x38a3: 0x405c4620, + 0x38a4: 0x405c4820, 0x38a5: 0x405c4a20, 0x38a6: 0x405c4c20, 0x38a7: 0x405c4e20, + 0x38a8: 0x405c5020, 0x38a9: 0x405c5220, 0x38aa: 0x405c5420, 0x38ab: 0x405c5620, + 0x38ac: 0x405c5820, 0x38ad: 0x405c5a20, 0x38ae: 0x405c5c20, 0x38af: 0x405c5e20, + 0x38b0: 0x405c6020, 0x38b1: 0x405c6220, 0x38b2: 0x405c6420, 0x38b3: 0x405c6620, + 0x38b4: 0x405c6820, 0x38b5: 0x405c6a20, 0x38b6: 0x405c6c20, 0x38b7: 0x405c6e20, + 0x38b8: 0x405c7020, 0x38b9: 0x405c7220, 0x38ba: 0x405c7420, 0x38bb: 0x405c7620, + 0x38bc: 0x405c7820, 0x38bd: 0x405c7a20, 0x38be: 0x405c7c20, 0x38bf: 0x405c7e20, + // Block 0xe3, offset 0x38c0 + 0x38c0: 0x405c8020, 0x38c1: 0x405c8220, 0x38c2: 0x405c8420, 0x38c3: 0x405c8620, + 0x38c4: 0x405c8820, 0x38c5: 0x405c8a20, 0x38c6: 0x405c8c20, 0x38c7: 0x405c8e20, + 0x38c8: 0x405c9020, 0x38c9: 0x405c9220, 0x38ca: 0x405c9420, 0x38cb: 0x405c9620, + 0x38cc: 0x405c9820, 0x38cd: 0x405c9a20, 0x38ce: 0x405c9c20, 0x38cf: 0x405c9e20, + 0x38d0: 0x405ca020, 0x38d1: 0x405ca220, 0x38d2: 0x405ca420, 0x38d3: 0x405ca620, + 0x38d4: 0x405ca820, 0x38d5: 0x405caa20, 0x38d6: 0x405cac20, 0x38d7: 0x405cae20, + 0x38d8: 0x405cb020, 0x38d9: 0x405cb220, 0x38da: 0x405cb420, 0x38db: 0x405cb620, + 0x38dc: 0x405cb820, 0x38dd: 0x405cba20, 0x38de: 0x405cbc20, 0x38df: 0x405cbe20, + 0x38e0: 0x405cc020, 0x38e1: 0x405cc220, 0x38e2: 0x405cc420, 0x38e3: 0x405cc620, + 0x38e4: 0x405cc820, 0x38e5: 0x405cca20, 0x38e6: 0x405ccc20, 0x38e7: 0x405cce20, + 0x38e8: 0x405cd020, 0x38e9: 0x405cd220, 0x38ea: 0x405cd420, 0x38eb: 0x405cd620, + 0x38ec: 0x405cd820, 0x38ed: 0x405cda20, 0x38ee: 0x405cdc20, 0x38ef: 0x405cde20, + 0x38f0: 0x405ce020, 0x38f1: 0x405ce220, 0x38f2: 0x405ce420, 0x38f3: 0x405ce620, + 0x38f4: 0x405ce820, 0x38f5: 0x405cea20, 0x38f6: 0x405cec20, 0x38f7: 0x405cee20, + 0x38f8: 0x405cf020, 0x38f9: 0x405cf220, 0x38fa: 0x405cf420, 0x38fb: 0x405cf620, + 0x38fc: 0x405cf820, 0x38fd: 0x405cfa20, 0x38fe: 0x405cfc20, 0x38ff: 0x405cfe20, + // Block 0xe4, offset 0x3900 + 0x3900: 0x405d0020, 0x3901: 0x405d0220, 0x3902: 0x405d0420, 0x3903: 0x405d0620, + 0x3904: 0x405d0820, 0x3905: 0x405d0a20, 0x3906: 0x405d0c20, 0x3907: 0x405d0e20, + 0x3908: 0x405d1020, 0x3909: 0x405d1220, 0x390a: 0x405d1420, 0x390b: 0x405d1620, + 0x390c: 0x405d1820, 0x390d: 0x405d1a20, 0x390e: 0x405d1c20, 0x390f: 0x405d1e20, + 0x3910: 0x405d2020, 0x3911: 0x405d2220, 0x3912: 0x405d2420, 0x3913: 0x405d2620, + 0x3914: 0x405d2820, 0x3915: 0x405d2a20, 0x3916: 0x405d2c20, 0x3917: 0x405d2e20, + 0x3918: 0x405d3020, 0x3919: 0x405d3220, 0x391a: 0x405d3420, 0x391b: 0x405d3620, + 0x391c: 0x405d3820, 0x391d: 0x405d3a20, 0x391e: 0x405d3c20, 0x391f: 0x405d3e20, + 0x3920: 0x405d4020, 0x3921: 0x405d4220, 0x3922: 0x405d4420, 0x3923: 0x405d4620, + 0x3924: 0x405d4820, 0x3925: 0x405d4a20, 0x3926: 0x405d4c20, 0x3927: 0x405d4e20, + 0x3928: 0x405d5020, 0x3929: 0x405d5220, 0x392a: 0x405d5420, 0x392b: 0x405d5620, + 0x392c: 0x405d5820, 0x392d: 0x405d5a20, 0x392e: 0x405d5c20, 0x392f: 0x405d5e20, + 0x3930: 0x405d6020, 0x3931: 0x405d6220, 0x3932: 0x405d6420, 0x3933: 0x405d6620, + 0x3934: 0x405d6820, 0x3935: 0x405d6a20, 0x3936: 0x405d6c20, 0x3937: 0x405d6e20, + 0x3938: 0x405d7020, 0x3939: 0x405d7220, 0x393a: 0x405d7420, 0x393b: 0x405d7620, + 0x393c: 0x405d7820, 0x393d: 0x405d7a20, 0x393e: 0x405d7c20, 0x393f: 0x405d7e20, + // Block 0xe5, offset 0x3940 + 0x3940: 0x405d8020, 0x3941: 0x405d8220, 0x3942: 0x405d8420, 0x3943: 0x405d8620, + 0x3944: 0x405d8820, 0x3945: 0x405d8a20, 0x3946: 0x405d8c20, 0x3947: 0x405d8e20, + 0x3948: 0x405d9020, 0x3949: 0x405d9220, 0x394a: 0x405d9420, 0x394b: 0x405d9620, + 0x394c: 0x405d9820, 0x394d: 0x40025820, 0x394e: 0x40030020, 0x394f: 0x4002d820, + 0x3950: 0x005c3084, 0x3951: 0x005c5484, 0x3952: 0x005c8e84, 0x3953: 0xe00020fb, + 0x3954: 0xe00020fe, 0x3955: 0xe0002101, 0x3956: 0xe0002104, 0x3957: 0xe0002107, + 0x3958: 0xe000210a, 0x3959: 0xe000210d, 0x395a: 0xe0002110, 0x395b: 0xe0002113, + 0x395c: 0xe0002116, 0x395d: 0xe0002119, 0x395e: 0xe000211c, 0x395f: 0xe000211f, + 0x3960: 0xe00001cd, 0x3961: 0xe0000261, 0x3962: 0xe0000379, 0x3963: 0xe0000453, + 0x3964: 0xe0000528, 0x3965: 0xe00005f2, 0x3966: 0xe00006bd, 0x3967: 0xe0000765, + 0x3968: 0xe0000811, 0x3969: 0xe00008b6, 0x396a: 0x005c5c84, 0x396b: 0x005d2284, + // Block 0xe6, offset 0x3980 + 0x3980: 0x0033ec88, 0x3981: 0x4033ec20, 0x3982: 0x0033fa88, 0x3983: 0x4033fa20, + 0x3984: 0x00340488, 0x3985: 0x40340420, 0x3986: 0x00343488, 0x3987: 0x40343420, + 0x3988: 0x00344e88, 0x3989: 0x40344e20, 0x398a: 0x0035a288, 0x398b: 0x4035a220, + 0x398c: 0x0035f088, 0x398d: 0x4035f020, 0x398e: 0x00366e88, 0x398f: 0x40366e20, + 0x3990: 0x00367c88, 0x3991: 0x40367c20, 0x3992: 0x0036a688, 0x3993: 0x4036a620, + 0x3994: 0x0036c088, 0x3995: 0x4036c020, 0x3996: 0x0036c288, 0x3997: 0x4036c220, + 0x3998: 0x0036de88, 0x3999: 0x4036de20, 0x399a: 0x0036e888, 0x399b: 0x4036e820, + 0x399c: 0x0036f288, 0x399d: 0x4036f220, 0x399e: 0x00372488, 0x399f: 0x40372420, + 0x39a0: 0x00360a88, 0x39a1: 0x40360a20, 0x39a2: 0x00339e88, 0x39a3: 0x40339e20, + 0x39a4: 0x0034a288, 0x39a5: 0x4034a220, 0x39a6: 0x0034b888, 0x39a7: 0x4034b820, + 0x39a8: 0x0034ee8a, 0x39a9: 0x0034ee84, 0x39aa: 0x0034ee8a, 0x39ab: 0x0034ee84, + 0x39ac: 0x0034ee8a, 0x39ad: 0x0034ee84, 0x39ae: 0x0034ee84, 0x39af: 0xae608402, + 0x39b0: 0xa0000000, 0x39b1: 0xa0000000, 0x39b2: 0xa0000000, 0x39b3: 0x4004e020, + 0x39b4: 0x84e619e1, 0x39b5: 0x84e61a0a, 0x39b6: 0x84e61a1b, 0x39b7: 0x84e61ab9, + 0x39b8: 0x84e61b3a, 0x39b9: 0x84e61b3f, 0x39ba: 0x84e61b47, 0x39bb: 0x84e61af0, + 0x39bc: 0xae605f02, 0x39bd: 0xae605f02, 0x39be: 0x40054c20, 0x39bf: 0x40367220, + // Block 0xe7, offset 0x39c0 + 0x39c0: 0x00339488, 0x39c1: 0x40339420, 0x39c2: 0x00341288, 0x39c3: 0x40341220, + 0x39c4: 0x0033d288, 0x39c5: 0x4033d220, 0x39c6: 0x00364288, 0x39c7: 0x40364220, + 0x39c8: 0x00340e88, 0x39c9: 0x40340e20, 0x39ca: 0x00356088, 0x39cb: 0x40356020, + 0x39cc: 0x00355488, 0x39cd: 0x40355420, 0x39ce: 0x00360c88, 0x39cf: 0x40360c20, + 0x39d0: 0x00361688, 0x39d1: 0x40361620, 0x39d2: 0x00362088, 0x39d3: 0x40362020, + 0x39d4: 0x0035de88, 0x39d5: 0x4035de20, 0x39d6: 0x00366488, 0x39d7: 0x40366420, + 0x39df: 0x84e61b67, + 0x39e0: 0x405d9a20, 0x39e1: 0x405d9c20, 0x39e2: 0x405d9e20, 0x39e3: 0x405da020, + 0x39e4: 0x405da220, 0x39e5: 0x405da420, 0x39e6: 0x405da620, 0x39e7: 0x405da820, + 0x39e8: 0x405daa20, 0x39e9: 0x405dac20, 0x39ea: 0x405dae20, 0x39eb: 0x405db020, + 0x39ec: 0x405db220, 0x39ed: 0x405db420, 0x39ee: 0x405db620, 0x39ef: 0x405db820, + 0x39f0: 0x405dba20, 0x39f1: 0x405dbc20, 0x39f2: 0x405dbe20, 0x39f3: 0x405dc020, + 0x39f4: 0x405dc220, 0x39f5: 0x405dc420, 0x39f6: 0x405dc620, 0x39f7: 0x405dc820, + 0x39f8: 0x405dca20, 0x39f9: 0x405dcc20, 0x39fa: 0x405dce20, 0x39fb: 0x405dd020, + 0x39fc: 0x405dd220, 0x39fd: 0x405dd420, 0x39fe: 0x405dd620, 0x39ff: 0x405dd820, + // Block 0xe8, offset 0x3a00 + 0x3a00: 0x405dda20, 0x3a01: 0x405ddc20, 0x3a02: 0x405dde20, 0x3a03: 0x405de020, + 0x3a04: 0x405de220, 0x3a05: 0x405de420, 0x3a06: 0x405de620, 0x3a07: 0x405de820, + 0x3a08: 0x405dea20, 0x3a09: 0x405dec20, 0x3a0a: 0x405dee20, 0x3a0b: 0x405df020, + 0x3a0c: 0x405df220, 0x3a0d: 0x405df420, 0x3a0e: 0x405df620, 0x3a0f: 0x405df820, + 0x3a10: 0x405dfa20, 0x3a11: 0x405dfc20, 0x3a12: 0x405dfe20, 0x3a13: 0x405e0020, + 0x3a14: 0x405e0220, 0x3a15: 0x405e0420, 0x3a16: 0x405e0620, 0x3a17: 0x405e0820, + 0x3a18: 0x405e0a20, 0x3a19: 0x405e0c20, 0x3a1a: 0x405e0e20, 0x3a1b: 0x405e1020, + 0x3a1c: 0x405e1220, 0x3a1d: 0x405e1420, 0x3a1e: 0x405e1620, 0x3a1f: 0x405e1820, + 0x3a20: 0x405e1a20, 0x3a21: 0x405e1c20, 0x3a22: 0x405e1e20, 0x3a23: 0x405e2020, + 0x3a24: 0x405e2220, 0x3a25: 0x405e2420, 0x3a26: 0x405e2620, 0x3a27: 0x405e2820, + 0x3a28: 0x405e2a20, 0x3a29: 0x405e2c20, 0x3a2a: 0x405e2e20, 0x3a2b: 0x405e3020, + 0x3a2c: 0x405e3220, 0x3a2d: 0x405e3420, 0x3a2e: 0x405e3620, 0x3a2f: 0x405e3820, + 0x3a30: 0xae60ef02, 0x3a31: 0xae60f002, 0x3a32: 0x40038220, 0x3a33: 0x40030220, + 0x3a34: 0x4002b820, 0x3a35: 0x40025a20, 0x3a36: 0x40026a20, 0x3a37: 0x4002da20, + // Block 0xe9, offset 0x3a40 + 0x3a40: 0x4006ba20, 0x3a41: 0x4006bc20, 0x3a42: 0x4006be20, 0x3a43: 0x4006c020, + 0x3a44: 0x4006c220, 0x3a45: 0x4006c420, 0x3a46: 0x4006c620, 0x3a47: 0x4006c820, + 0x3a48: 0x4006ca20, 0x3a49: 0x4006cc20, 0x3a4a: 0x4006ce20, 0x3a4b: 0x4006d020, + 0x3a4c: 0x4006d220, 0x3a4d: 0x4006d420, 0x3a4e: 0x4006d620, 0x3a4f: 0x4006d820, + 0x3a50: 0x4006da20, 0x3a51: 0x4006dc20, 0x3a52: 0x4006de20, 0x3a53: 0x4006e020, + 0x3a54: 0x4006e220, 0x3a55: 0x4006e420, 0x3a56: 0x4006e620, 0x3a57: 0x4006e820, + 0x3a58: 0x4006ea20, 0x3a59: 0x4006ec20, 0x3a5a: 0x4006ee20, 0x3a5b: 0x4006f020, + 0x3a5c: 0x4006f220, 0x3a5d: 0x4006f420, 0x3a5e: 0x4006f620, 0x3a5f: 0x4006f820, + 0x3a60: 0x4006fa20, 0x3a61: 0x4006fc20, 0x3a62: 0x0031e488, 0x3a63: 0x4031e420, + 0x3a64: 0x0031f888, 0x3a65: 0x4031f820, 0x3a66: 0x002d8c88, 0x3a67: 0x402d8c20, + 0x3a68: 0xe0000fd5, 0x3a69: 0xe0000fd2, 0x3a6a: 0x0031ae88, 0x3a6b: 0x4031ae20, + 0x3a6c: 0x0031b088, 0x3a6d: 0x4031b020, 0x3a6e: 0x0031b288, 0x3a6f: 0x4031b220, + 0x3a70: 0x402d1020, 0x3a71: 0x402fee20, 0x3a72: 0xe00009cf, 0x3a73: 0xe00009cc, + 0x3a74: 0xe00009ff, 0x3a75: 0xe00009fc, 0x3a76: 0xe0000a05, 0x3a77: 0xe0000a02, + 0x3a78: 0xe0000a0e, 0x3a79: 0xe0000a0b, 0x3a7a: 0xe0000a15, 0x3a7b: 0xe0000a11, + 0x3a7c: 0xe0000a1c, 0x3a7d: 0xe0000a19, 0x3a7e: 0x002c6088, 0x3a7f: 0x402c6020, + // Block 0xea, offset 0x3a80 + 0x3a80: 0x002e1488, 0x3a81: 0x402e1420, 0x3a82: 0x002e1688, 0x3a83: 0x402e1620, + 0x3a84: 0x002e1888, 0x3a85: 0x402e1820, 0x3a86: 0x002e3288, 0x3a87: 0x402e3220, + 0x3a88: 0x002e3688, 0x3a89: 0x402e3620, 0x3a8a: 0x002f1888, 0x3a8b: 0x402f1820, + 0x3a8c: 0x002f0888, 0x3a8d: 0x402f0820, 0x3a8e: 0xe0000ea1, 0x3a8f: 0xe0000e9e, + 0x3a90: 0x002f3888, 0x3a91: 0x402f3820, 0x3a92: 0x002f4688, 0x3a93: 0x402f4620, + 0x3a94: 0x002f4888, 0x3a95: 0x402f4820, 0x3a96: 0x002f5e88, 0x3a97: 0x402f5e20, + 0x3a98: 0x002f6088, 0x3a99: 0x402f6020, 0x3a9a: 0x002f8a88, 0x3a9b: 0x402f8a20, + 0x3a9c: 0x002fe488, 0x3a9d: 0x402fe420, 0x3a9e: 0x0030c888, 0x3a9f: 0x4030c820, + 0x3aa0: 0xe00010c6, 0x3aa1: 0xe00010c3, 0x3aa2: 0x00316288, 0x3aa3: 0x40316220, + 0x3aa4: 0x00319088, 0x3aa5: 0x40319020, 0x3aa6: 0x00319288, 0x3aa7: 0x40319220, + 0x3aa8: 0x00319c88, 0x3aa9: 0x40319c20, 0x3aaa: 0x00319e88, 0x3aab: 0x40319e20, + 0x3aac: 0x0031a088, 0x3aad: 0x4031a020, 0x3aae: 0x0031a288, 0x3aaf: 0x4031a220, + 0x3ab0: 0x0031a294, 0x3ab1: 0x402c9420, 0x3ab2: 0x402e6620, 0x3ab3: 0x402e9c20, + 0x3ab4: 0x402ed820, 0x3ab5: 0x402fe020, 0x3ab6: 0x402fe220, 0x3ab7: 0x40306220, + 0x3ab8: 0x4031a420, 0x3ab9: 0xe0000abc, 0x3aba: 0xe0000ab9, 0x3abb: 0xe0000b92, + 0x3abc: 0xe0000b8f, 0x3abd: 0xe0000bdc, 0x3abe: 0x002d5688, 0x3abf: 0x402d5620, + // Block 0xeb, offset 0x3ac0 + 0x3ac0: 0x002e7088, 0x3ac1: 0x402e7020, 0x3ac2: 0xe0000f08, 0x3ac3: 0xe0000f05, + 0x3ac4: 0xe0000f6d, 0x3ac5: 0xe0000f6a, 0x3ac6: 0xe0000fb7, 0x3ac7: 0xe0000fb4, + 0x3ac8: 0x4006fe20, 0x3ac9: 0x40070020, 0x3aca: 0x40070220, 0x3acb: 0x0031e688, + 0x3acc: 0x4031e620, 0x3acd: 0x00308888, 0x3ace: 0x402e5c20, + 0x3ad0: 0x002ec488, 0x3ad1: 0x402ec420, 0x3ad2: 0x002c4c88, 0x3ad3: 0x402c4c20, + 0x3ae0: 0xe0000bd6, 0x3ae1: 0xe0000bd3, 0x3ae2: 0xe0000ca5, 0x3ae3: 0xe0000ca2, + 0x3ae4: 0xe0000d75, 0x3ae5: 0xe0000d72, 0x3ae6: 0xe0000ee2, 0x3ae7: 0xe0000edf, + 0x3ae8: 0xe0000f4d, 0x3ae9: 0xe0000f4a, 0x3aea: 0x002d8088, + // Block 0xec, offset 0x3b00 + 0x3b38: 0xf0001414, 0x3b39: 0xe0000e97, 0x3b3a: 0x4030a820, 0x3b3b: 0x402d2020, + 0x3b3c: 0x402f4a20, 0x3b3d: 0x402e9820, 0x3b3e: 0x402db220, 0x3b3f: 0x402e9a20, + // Block 0xed, offset 0x3b40 + 0x3b40: 0x4045aa20, 0x3b41: 0x4045ac20, 0x3b42: 0x4045ae20, 0x3b43: 0x4045b020, + 0x3b44: 0x4045b220, 0x3b45: 0x4045b420, 0x3b46: 0x820922db, 0x3b47: 0x4045b820, + 0x3b48: 0x4045ba20, 0x3b49: 0x4045bc20, 0x3b4a: 0x4045be20, 0x3b4b: 0xa000f302, + 0x3b4c: 0x4045c020, 0x3b4d: 0x4045c220, 0x3b4e: 0x4045c420, 0x3b4f: 0x4045c620, + 0x3b50: 0x4045c820, 0x3b51: 0x4045ca20, 0x3b52: 0x4045cc20, 0x3b53: 0x4045ce20, + 0x3b54: 0x4045d020, 0x3b55: 0x4045d220, 0x3b56: 0x4045d420, 0x3b57: 0x4045d620, + 0x3b58: 0x4045d820, 0x3b59: 0x4045da20, 0x3b5a: 0x4045dc20, 0x3b5b: 0x4045de20, + 0x3b5c: 0x4045e020, 0x3b5d: 0x4045e220, 0x3b5e: 0x4045e420, 0x3b5f: 0x4045e620, + 0x3b60: 0x4045e820, 0x3b61: 0x4045ea20, 0x3b62: 0x4045ec20, 0x3b63: 0x4045ee20, + 0x3b64: 0x4045f020, 0x3b65: 0x4045f220, 0x3b66: 0x4045f420, 0x3b67: 0x4045f620, + 0x3b68: 0x40075020, 0x3b69: 0x40075220, 0x3b6a: 0x40075420, 0x3b6b: 0x40075620, + 0x3b70: 0x40284820, 0x3b71: 0x40284a20, 0x3b72: 0x40284c20, 0x3b73: 0x40284e20, + 0x3b74: 0x40285020, 0x3b75: 0x40285220, 0x3b76: 0x40075820, 0x3b77: 0x40075a20, + 0x3b78: 0x4027f020, 0x3b79: 0x40075c20, + // Block 0xee, offset 0x3b80 + 0x3b80: 0x404baa20, 0x3b81: 0x404bac20, 0x3b82: 0x404bae20, 0x3b83: 0x404bb020, + 0x3b84: 0x404bb220, 0x3b85: 0x404bb420, 0x3b86: 0x404bb620, 0x3b87: 0x404bb820, + 0x3b88: 0x404bc220, 0x3b89: 0x404bc420, 0x3b8a: 0x404bc620, 0x3b8b: 0x404bc820, + 0x3b8c: 0x404bca20, 0x3b8d: 0x404bcc20, 0x3b8e: 0x404bce20, 0x3b8f: 0x404bd020, + 0x3b90: 0x404bd220, 0x3b91: 0x404bd420, 0x3b92: 0x404bd620, 0x3b93: 0x404bd820, + 0x3b94: 0x404bdc20, 0x3b95: 0x404bde20, 0x3b96: 0x404be020, 0x3b97: 0x404be220, + 0x3b98: 0x404be820, 0x3b99: 0x404bee20, 0x3b9a: 0x404bf020, 0x3b9b: 0x404bf420, + 0x3b9c: 0x404bf620, 0x3b9d: 0x404bfc20, 0x3b9e: 0x404c0620, 0x3b9f: 0x404c0820, + 0x3ba0: 0x404c0a20, 0x3ba1: 0x404c0c20, 0x3ba2: 0x404bfe20, 0x3ba3: 0x404c0020, + 0x3ba4: 0x404c0220, 0x3ba5: 0x404c0420, 0x3ba6: 0x404c0e20, 0x3ba7: 0x404bda20, + 0x3ba8: 0x404be420, 0x3ba9: 0x404bba20, 0x3baa: 0x404bbc20, 0x3bab: 0x404bbe20, + 0x3bac: 0x404bc020, 0x3bad: 0x404be620, 0x3bae: 0x404bf220, 0x3baf: 0x404bf820, + 0x3bb0: 0x404bfa20, 0x3bb1: 0x404bea20, 0x3bb2: 0x404bec20, 0x3bb3: 0x404c1020, + 0x3bb4: 0x4005e820, 0x3bb5: 0x4005ea20, 0x3bb6: 0x40031820, 0x3bb7: 0x40031a20, + // Block 0xef, offset 0x3bc0 + 0x3bc0: 0xa000f302, 0x3bc1: 0xa000f402, 0x3bc2: 0x4045f820, 0x3bc3: 0x4045fa20, + 0x3bc4: 0x4045fc20, 0x3bc5: 0x4045fe20, 0x3bc6: 0x40460020, 0x3bc7: 0x40460220, + 0x3bc8: 0x40460420, 0x3bc9: 0x40460620, 0x3bca: 0x40460820, 0x3bcb: 0x40460a20, + 0x3bcc: 0x40460c20, 0x3bcd: 0x40460e20, 0x3bce: 0x40461020, 0x3bcf: 0x40461220, + 0x3bd0: 0x40461420, 0x3bd1: 0x40461620, 0x3bd2: 0x40461820, 0x3bd3: 0x40461a20, + 0x3bd4: 0x40461c20, 0x3bd5: 0x40461e20, 0x3bd6: 0x40462020, 0x3bd7: 0x40462220, + 0x3bd8: 0x40462420, 0x3bd9: 0x40462620, 0x3bda: 0x40462820, 0x3bdb: 0x40462a20, + 0x3bdc: 0x40462c20, 0x3bdd: 0x40462e20, 0x3bde: 0x40463020, 0x3bdf: 0x40463220, + 0x3be0: 0x40463420, 0x3be1: 0x40463620, 0x3be2: 0x40463820, 0x3be3: 0x40463a20, + 0x3be4: 0x40463c20, 0x3be5: 0x40463e20, 0x3be6: 0x40464020, 0x3be7: 0x40464220, + 0x3be8: 0x40464420, 0x3be9: 0x40464620, 0x3bea: 0x40464820, 0x3beb: 0x40464a20, + 0x3bec: 0x40464c20, 0x3bed: 0x40464e20, 0x3bee: 0x40465020, 0x3bef: 0x40465220, + 0x3bf0: 0x40465420, 0x3bf1: 0x40465620, 0x3bf2: 0x40465820, 0x3bf3: 0x40465a20, + 0x3bf4: 0x40465c20, 0x3bf5: 0x40465e20, 0x3bf6: 0x40466020, 0x3bf7: 0x40466220, + 0x3bf8: 0x40466420, 0x3bf9: 0x40466620, 0x3bfa: 0x40466820, 0x3bfb: 0x40466a20, + 0x3bfc: 0x40466c20, 0x3bfd: 0x40466e20, 0x3bfe: 0x40467020, 0x3bff: 0x40467220, + // Block 0xf0, offset 0x3c00 + 0x3c00: 0x40467420, 0x3c01: 0x40467620, 0x3c02: 0x40467820, 0x3c03: 0x40467a20, + 0x3c04: 0x8209233e, + 0x3c0e: 0x40031020, 0x3c0f: 0x40031220, + 0x3c10: 0xe000018b, 0x3c11: 0xe000021c, 0x3c12: 0xe0000337, 0x3c13: 0xe0000411, + 0x3c14: 0xe00004e6, 0x3c15: 0xe00005b0, 0x3c16: 0xe000067b, 0x3c17: 0xe0000723, + 0x3c18: 0xe00007cf, 0x3c19: 0xe0000874, + 0x3c20: 0xae600000, 0x3c21: 0xae600000, 0x3c22: 0xae600000, 0x3c23: 0xae600000, + 0x3c24: 0xae600000, 0x3c25: 0xae600000, 0x3c26: 0xae600000, 0x3c27: 0xae600000, + 0x3c28: 0xae600000, 0x3c29: 0xae600000, 0x3c2a: 0xae600000, 0x3c2b: 0xae600000, + 0x3c2c: 0xae600000, 0x3c2d: 0xae600000, 0x3c2e: 0xae600000, 0x3c2f: 0xae600000, + 0x3c30: 0xae600000, 0x3c31: 0xae600000, 0x3c32: 0x40404620, 0x3c33: 0x00404684, + 0x3c34: 0x00404684, 0x3c35: 0x00404684, 0x3c36: 0x00404684, 0x3c37: 0x00404684, + 0x3c38: 0x40056e20, 0x3c39: 0x40057020, 0x3c3a: 0x40057220, 0x3c3b: 0x40404820, + // Block 0xf1, offset 0x3c40 + 0x3c40: 0xe00001a9, 0x3c41: 0xe000023d, 0x3c42: 0xe0000355, 0x3c43: 0xe000042f, + 0x3c44: 0xe0000504, 0x3c45: 0xe00005ce, 0x3c46: 0xe0000699, 0x3c47: 0xe0000741, + 0x3c48: 0xe00007ed, 0x3c49: 0xe0000892, 0x3c4a: 0x404dd220, 0x3c4b: 0x404dd420, + 0x3c4c: 0x404dd620, 0x3c4d: 0x404dd820, 0x3c4e: 0x404dda20, 0x3c4f: 0x404ddc20, + 0x3c50: 0x404dde20, 0x3c51: 0x404de020, 0x3c52: 0x404de220, 0x3c53: 0x404de420, + 0x3c54: 0x404de620, 0x3c55: 0x404de820, 0x3c56: 0x404dea20, 0x3c57: 0x404dec20, + 0x3c58: 0x404dee20, 0x3c59: 0x404df020, 0x3c5a: 0x404df220, 0x3c5b: 0x404df420, + 0x3c5c: 0x404df620, 0x3c5d: 0x404df820, 0x3c5e: 0x404dfa20, 0x3c5f: 0x404dfc20, + 0x3c60: 0x404dfe20, 0x3c61: 0x404e0020, 0x3c62: 0x404e0220, 0x3c63: 0x404e0420, + 0x3c64: 0x404e0620, 0x3c65: 0x404e0820, 0x3c66: 0x404e0a20, 0x3c67: 0x404e0c20, + 0x3c68: 0x404e0e20, 0x3c69: 0x404e1020, 0x3c6a: 0x404e1220, 0x3c6b: 0xadc10f02, + 0x3c6c: 0xadc11002, 0x3c6d: 0xadc11102, 0x3c6e: 0x4005f420, 0x3c6f: 0x40032020, + 0x3c70: 0x404d8a20, 0x3c71: 0x404d8c20, 0x3c72: 0x404d8e20, 0x3c73: 0x404d9020, + 0x3c74: 0x404d9220, 0x3c75: 0x404d9420, 0x3c76: 0x404d9620, 0x3c77: 0x404d9820, + 0x3c78: 0x404d9a20, 0x3c79: 0x404d9c20, 0x3c7a: 0x404d9e20, 0x3c7b: 0x404da020, + 0x3c7c: 0x404da220, 0x3c7d: 0x404da420, 0x3c7e: 0x404da620, 0x3c7f: 0x404da820, + // Block 0xf2, offset 0x3c80 + 0x3c80: 0x404daa20, 0x3c81: 0x404dac20, 0x3c82: 0x404dae20, 0x3c83: 0x404db020, + 0x3c84: 0x404db220, 0x3c85: 0x404db420, 0x3c86: 0x404db620, 0x3c87: 0x404db820, + 0x3c88: 0x404dba20, 0x3c89: 0x404dbc20, 0x3c8a: 0x404dbe20, 0x3c8b: 0x404dc020, + 0x3c8c: 0x404dc220, 0x3c8d: 0x404dc420, 0x3c8e: 0x404dc620, 0x3c8f: 0x404dc820, + 0x3c90: 0x404dca20, 0x3c91: 0x404dcc20, 0x3c92: 0x404dce20, 0x3c93: 0x820926e8, + 0x3c9f: 0x40038420, + 0x3ca0: 0x40636a20, 0x3ca1: 0x40636c20, 0x3ca2: 0x40636e20, 0x3ca3: 0x40637020, + 0x3ca4: 0x40637220, 0x3ca5: 0x40637420, 0x3ca6: 0x40637620, 0x3ca7: 0x40637820, + 0x3ca8: 0x40637a20, 0x3ca9: 0x40637c20, 0x3caa: 0x40637e20, 0x3cab: 0x40638020, + 0x3cac: 0x40638220, 0x3cad: 0x40638420, 0x3cae: 0x40638620, 0x3caf: 0x40638820, + 0x3cb0: 0x40638a20, 0x3cb1: 0x40638c20, 0x3cb2: 0x40638e20, 0x3cb3: 0x40639020, + 0x3cb4: 0x40639220, 0x3cb5: 0x40639420, 0x3cb6: 0x40639620, 0x3cb7: 0x40639820, + 0x3cb8: 0x40639a20, 0x3cb9: 0x40639c20, 0x3cba: 0x40639e20, 0x3cbb: 0x4063a020, + 0x3cbc: 0x4063a220, + // Block 0xf3, offset 0x3cc0 + 0x3cc0: 0xa000f202, 0x3cc1: 0xa000f302, 0x3cc2: 0xa000f802, 0x3cc3: 0xa000f402, + 0x3cc4: 0x4052b220, 0x3cc5: 0x4052b420, 0x3cc6: 0x4052b620, 0x3cc7: 0x4052b820, + 0x3cc8: 0x4052ba20, 0x3cc9: 0x4052bc20, 0x3cca: 0x4052be20, 0x3ccb: 0x4052c020, + 0x3ccc: 0x4052c220, 0x3ccd: 0x4052c420, 0x3cce: 0x4052c620, 0x3ccf: 0x4052c820, + 0x3cd0: 0x4052ca20, 0x3cd1: 0x4052cc20, 0x3cd2: 0x4052ce20, 0x3cd3: 0x4052d020, + 0x3cd4: 0x4052d220, 0x3cd5: 0x4052d420, 0x3cd6: 0x4052d620, 0x3cd7: 0x4052d820, + 0x3cd8: 0x4052da20, 0x3cd9: 0x4052dc20, 0x3cda: 0x4052de20, 0x3cdb: 0x4052e020, + 0x3cdc: 0x4052e220, 0x3cdd: 0x4052e420, 0x3cde: 0x4052e620, 0x3cdf: 0x4052e820, + 0x3ce0: 0x4052ea20, 0x3ce1: 0x4052ec20, 0x3ce2: 0x4052ee20, 0x3ce3: 0x4052f020, + 0x3ce4: 0x4052f220, 0x3ce5: 0x4052f420, 0x3ce6: 0x4052f620, 0x3ce7: 0x4052f820, + 0x3ce8: 0x4052fa20, 0x3ce9: 0x4052fc20, 0x3cea: 0x4052fe20, 0x3ceb: 0x40530220, + 0x3cec: 0x00530284, 0x3ced: 0x40530620, 0x3cee: 0x40530820, 0x3cef: 0x40530a20, + 0x3cf0: 0x40530c20, 0x3cf1: 0x40530e20, 0x3cf2: 0x40531020, 0x3cf3: 0xa070f102, + 0x3cf4: 0x40531220, 0x3cf5: 0x40532420, 0x3cf6: 0x40531620, 0x3cf7: 0x40531820, + 0x3cf8: 0x40531a20, 0x3cf9: 0x40531c20, 0x3cfa: 0x40532020, 0x3cfb: 0x40532220, + 0x3cfc: 0x40531420, 0x3cfd: 0x40531e20, 0x3cfe: 0x40530020, 0x3cff: 0x40530420, + // Block 0xf4, offset 0x3d00 + 0x3d00: 0x82092993, 0x3d01: 0x40036e20, 0x3d02: 0x40037020, 0x3d03: 0x40037220, + 0x3d04: 0x40037420, 0x3d05: 0x40037620, 0x3d06: 0x40037820, 0x3d07: 0x4002b020, + 0x3d08: 0x40033620, 0x3d09: 0x40033820, 0x3d0a: 0x40037a20, 0x3d0b: 0x40037c20, + 0x3d0c: 0x40037e20, 0x3d0d: 0x40038020, 0x3d0f: 0x4027c020, + 0x3d10: 0xe00001c1, 0x3d11: 0xe0000255, 0x3d12: 0xe000036d, 0x3d13: 0xe0000447, + 0x3d14: 0xe000051c, 0x3d15: 0xe00005e6, 0x3d16: 0xe00006b1, 0x3d17: 0xe0000759, + 0x3d18: 0xe0000805, 0x3d19: 0xe00008aa, + 0x3d1e: 0x4005f620, 0x3d1f: 0x4005f820, + // Block 0xf5, offset 0x3d40 + 0x3d40: 0x40519c20, 0x3d41: 0x40519e20, 0x3d42: 0x4051a020, 0x3d43: 0x4051a220, + 0x3d44: 0x4051a420, 0x3d45: 0x4051a620, 0x3d46: 0x4051a820, 0x3d47: 0x4051aa20, + 0x3d48: 0x4051ac20, 0x3d49: 0x4051ae20, 0x3d4a: 0x4051b020, 0x3d4b: 0x4051b220, + 0x3d4c: 0x4051b420, 0x3d4d: 0x4051b620, 0x3d4e: 0x4051b820, 0x3d4f: 0x4051ba20, + 0x3d50: 0x4051bc20, 0x3d51: 0x4051be20, 0x3d52: 0x4051c020, 0x3d53: 0x4051c220, + 0x3d54: 0x4051c420, 0x3d55: 0x4051c620, 0x3d56: 0x4051c820, 0x3d57: 0x4051ca20, + 0x3d58: 0x4051cc20, 0x3d59: 0x4051ce20, 0x3d5a: 0x4051d020, 0x3d5b: 0x4051d220, + 0x3d5c: 0x4051d420, 0x3d5d: 0x4051d620, 0x3d5e: 0x4051d820, 0x3d5f: 0x4051da20, + 0x3d60: 0x4051dc20, 0x3d61: 0x4051de20, 0x3d62: 0x4051e020, 0x3d63: 0x4051e220, + 0x3d64: 0x4051e420, 0x3d65: 0x4051e620, 0x3d66: 0x4051e820, 0x3d67: 0x4051ea20, + 0x3d68: 0x4051ec20, 0x3d69: 0x4051f620, 0x3d6a: 0x4051f820, 0x3d6b: 0x4051fa20, + 0x3d6c: 0x4051fc20, 0x3d6d: 0x4051fe20, 0x3d6e: 0x40520020, 0x3d6f: 0x40520220, + 0x3d70: 0x40520420, 0x3d71: 0x40520620, 0x3d72: 0x40520820, 0x3d73: 0x4051ee20, + 0x3d74: 0x4051f020, 0x3d75: 0x4051f220, 0x3d76: 0x4051f420, + // Block 0xf6, offset 0x3d80 + 0x3d80: 0x40520a20, 0x3d81: 0x40520c20, 0x3d82: 0x40520e20, 0x3d83: 0x40521020, + 0x3d84: 0x40521220, 0x3d85: 0x40521420, 0x3d86: 0x40521620, 0x3d87: 0x40521820, + 0x3d88: 0x40521a20, 0x3d89: 0x40521c20, 0x3d8a: 0x40521e20, 0x3d8b: 0x40522020, + 0x3d8c: 0x40522220, 0x3d8d: 0x40522420, + 0x3d90: 0xe00001bb, 0x3d91: 0xe000024f, 0x3d92: 0xe0000367, 0x3d93: 0xe0000441, + 0x3d94: 0xe0000516, 0x3d95: 0xe00005e0, 0x3d96: 0xe00006ab, 0x3d97: 0xe0000753, + 0x3d98: 0xe00007ff, 0x3d99: 0xe00008a4, + 0x3d9c: 0x4005fa20, 0x3d9d: 0x40033a20, 0x3d9e: 0x40033c20, 0x3d9f: 0x40033e20, + 0x3da0: 0x404e2020, 0x3da1: 0x404e2c20, 0x3da2: 0x404e3020, 0x3da3: 0x404e3420, + 0x3da4: 0x404e3e20, 0x3da5: 0x404e4620, 0x3da6: 0x404e4c20, 0x3da7: 0x404e5020, + 0x3da8: 0x404e5420, 0x3da9: 0x404e5820, 0x3daa: 0x404e6820, 0x3dab: 0x404e6e20, + 0x3dac: 0x404ea820, 0x3dad: 0x404eae20, 0x3dae: 0x404eb220, 0x3daf: 0x404e7a20, + 0x3db0: 0x4027c220, 0x3db1: 0x404eb420, 0x3db2: 0x404e3820, 0x3db3: 0x404e8e20, + 0x3db4: 0x404f3a20, 0x3db5: 0x404f3c20, 0x3db6: 0x404f3e20, 0x3db7: 0x4007ac20, + 0x3db8: 0x4007ae20, 0x3db9: 0x4007b020, 0x3dba: 0x404e9020, 0x3dbb: 0x404f3820, + // Block 0xf7, offset 0x3dc0 + 0x3dc0: 0x4049f020, 0x3dc1: 0x4049f220, 0x3dc2: 0x4049f420, 0x3dc3: 0x4049f620, + 0x3dc4: 0x4049f820, 0x3dc5: 0x4049fa20, 0x3dc6: 0x4049fc20, 0x3dc7: 0x4049fe20, + 0x3dc8: 0x404a0020, 0x3dc9: 0x404a0220, 0x3dca: 0x404a0420, 0x3dcb: 0x404a0620, + 0x3dcc: 0x404a0820, 0x3dcd: 0x404a0a20, 0x3dce: 0x404a0c20, 0x3dcf: 0x404a0e20, + 0x3dd0: 0x404a1020, 0x3dd1: 0x404a1220, 0x3dd2: 0x404a1420, 0x3dd3: 0x404a1620, + 0x3dd4: 0x404a1820, 0x3dd5: 0x404a1a20, 0x3dd6: 0x404a1c20, 0x3dd7: 0x404a1e20, + 0x3dd8: 0x404a2020, 0x3dd9: 0x404a2220, 0x3dda: 0x404a2420, 0x3ddb: 0x404a2620, + 0x3ddc: 0x404a2820, 0x3ddd: 0x404a2a20, 0x3dde: 0x404a2c20, 0x3ddf: 0x404a2e20, + 0x3de0: 0x404a3020, 0x3de1: 0x404a3220, 0x3de2: 0x404a3420, 0x3de3: 0x404a3620, + 0x3de4: 0x404a3820, 0x3de5: 0x404a3a20, 0x3de6: 0x404a3c20, 0x3de7: 0x404a3e20, + 0x3de8: 0x404a4020, 0x3de9: 0x404a4220, 0x3dea: 0x404a4420, 0x3deb: 0x404a4620, + 0x3dec: 0x404a4820, 0x3ded: 0x404a4a20, 0x3dee: 0x404a4c20, 0x3def: 0x404a4e20, + 0x3df0: 0x82e62528, 0x3df1: 0x404a5220, 0x3df2: 0x82e6252a, 0x3df3: 0x82e6252b, + 0x3df4: 0x82dc252c, 0x3df5: 0xc20e0671, 0x3df6: 0xc23f0671, 0x3df7: 0x82e6252f, + 0x3df8: 0x82e62530, 0x3df9: 0xc2700671, 0x3dfa: 0x404a6420, 0x3dfb: 0xc2a10671, + 0x3dfc: 0xc2d20671, 0x3dfd: 0x404a6a20, 0x3dfe: 0x82e62536, 0x3dff: 0xae610c02, + // Block 0xf8, offset 0x3e00 + 0x3e00: 0x404a6e20, 0x3e01: 0xae610d02, 0x3e02: 0x404a7020, + 0x3e1b: 0x404a7220, + 0x3e1c: 0x404a7420, 0x3e1d: 0x4027c420, 0x3e1e: 0x40057e20, 0x3e1f: 0x40058020, + 0x3e20: 0x40456420, 0x3e21: 0x40456620, 0x3e22: 0x40456820, 0x3e23: 0x40456a20, + 0x3e24: 0x40456c20, 0x3e25: 0x40456e20, 0x3e26: 0x40457020, 0x3e27: 0x40457220, + 0x3e28: 0x40457420, 0x3e29: 0x40457620, 0x3e2a: 0x40457820, 0x3e2b: 0x40458a20, + 0x3e2c: 0x40458c20, 0x3e2d: 0x40458e20, 0x3e2e: 0x40459020, 0x3e2f: 0x40459220, + 0x3e30: 0x40034020, 0x3e31: 0x4002dc20, 0x3e32: 0x40452c20, 0x3e33: 0x4027c620, + 0x3e34: 0x4027c820, 0x3e35: 0x40459420, 0x3e36: 0x820922d4, + // Block 0xf9, offset 0x3e40 + 0x3e41: 0x403cae20, 0x3e42: 0x403cb020, 0x3e43: 0x403cb220, + 0x3e44: 0x403cb420, 0x3e45: 0x403cb620, 0x3e46: 0x403cb820, + 0x3e49: 0x403e3c20, 0x3e4a: 0x403e3e20, 0x3e4b: 0x403e4020, + 0x3e4c: 0x403e4220, 0x3e4d: 0x403e4420, 0x3e4e: 0x403e4620, + 0x3e51: 0x403dfe20, 0x3e52: 0x403e0020, 0x3e53: 0x403e0220, + 0x3e54: 0x403e0420, 0x3e55: 0x403e0620, 0x3e56: 0x403e0820, + 0x3e60: 0x403ec220, 0x3e61: 0x403ec420, 0x3e62: 0x403ec620, 0x3e63: 0x403ec820, + 0x3e64: 0x403eca20, 0x3e65: 0x403ecc20, 0x3e66: 0x403ece20, + 0x3e68: 0x403ef220, 0x3e69: 0x403ef420, 0x3e6a: 0x403ef620, 0x3e6b: 0x403ef820, + 0x3e6c: 0x403efa20, 0x3e6d: 0x403efc20, 0x3e6e: 0x403efe20, + // Block 0xfa, offset 0x3e80 + 0x3e80: 0x40452e20, 0x3e81: 0x40453020, 0x3e82: 0x40453220, 0x3e83: 0x40453420, + 0x3e84: 0x40453620, 0x3e85: 0x40453820, 0x3e86: 0x40453a20, 0x3e87: 0x40453c20, + 0x3e88: 0x40453e20, 0x3e89: 0x40454020, 0x3e8a: 0x40454220, 0x3e8b: 0x40454420, + 0x3e8c: 0x40454620, 0x3e8d: 0x40454820, 0x3e8e: 0x40454a20, 0x3e8f: 0x40454c20, + 0x3e90: 0x40454e20, 0x3e91: 0x40455020, 0x3e92: 0x40455220, 0x3e93: 0x40455420, + 0x3e94: 0x40455620, 0x3e95: 0x40455820, 0x3e96: 0x40455a20, 0x3e97: 0x40455c20, + 0x3e98: 0x40455e20, 0x3e99: 0x40456020, 0x3e9a: 0x40456220, 0x3e9b: 0x40459620, + 0x3e9c: 0x40459820, 0x3e9d: 0x40459a20, 0x3e9e: 0x40459c20, 0x3e9f: 0x40459e20, + 0x3ea0: 0x4045a020, 0x3ea1: 0x4045a220, 0x3ea2: 0x4045a420, 0x3ea3: 0x40457a20, + 0x3ea4: 0x40457c20, 0x3ea5: 0x40457e20, 0x3ea6: 0x40458020, 0x3ea7: 0x40458220, + 0x3ea8: 0x40458420, 0x3ea9: 0x40458620, 0x3eaa: 0x40458820, 0x3eab: 0x40034220, + 0x3eac: 0xa000fa02, 0x3ead: 0x820922d3, + 0x3eb0: 0xe0000188, 0x3eb1: 0xe0000219, 0x3eb2: 0xe0000334, 0x3eb3: 0xe000040e, + 0x3eb4: 0xe00004e3, 0x3eb5: 0xe00005ad, 0x3eb6: 0xe0000678, 0x3eb7: 0xe0000720, + 0x3eb8: 0xe00007cc, 0x3eb9: 0xe0000871, + // Block 0xfb, offset 0x3ec0 + 0x3ef0: 0x40643620, 0x3ef1: 0x40643820, 0x3ef2: 0x40643a20, 0x3ef3: 0x40643c20, + 0x3ef4: 0x40643e20, 0x3ef5: 0x40644020, 0x3ef6: 0x40644220, 0x3ef7: 0x40644420, + 0x3ef8: 0x40644620, 0x3ef9: 0x40644820, 0x3efa: 0x40644a20, 0x3efb: 0x40644c20, + 0x3efc: 0x40644e20, 0x3efd: 0x40645020, 0x3efe: 0x40645220, 0x3eff: 0x40645420, + // Block 0xfc, offset 0x3f00 + 0x3f00: 0x40645620, 0x3f01: 0x40645820, 0x3f02: 0x40645a20, 0x3f03: 0x40645c20, + 0x3f04: 0x40645e20, 0x3f05: 0x40646020, 0x3f06: 0x40646220, + 0x3f0b: 0x40651420, + 0x3f0c: 0x40651620, 0x3f0d: 0x40651820, 0x3f0e: 0x40651a20, 0x3f0f: 0x40651c20, + 0x3f10: 0x40651e20, 0x3f11: 0x40652020, 0x3f12: 0x40652220, 0x3f13: 0x40652420, + 0x3f14: 0x40652620, 0x3f15: 0x40652820, 0x3f16: 0x40652a20, 0x3f17: 0x40652c20, + 0x3f18: 0x40652e20, 0x3f19: 0x40653020, 0x3f1a: 0x40653220, 0x3f1b: 0x40653420, + 0x3f1c: 0x40653620, 0x3f1d: 0x40653820, 0x3f1e: 0x40653a20, 0x3f1f: 0x40653c20, + 0x3f20: 0x40653e20, 0x3f21: 0x40654020, 0x3f22: 0x40654220, 0x3f23: 0x40654420, + 0x3f24: 0x40654620, 0x3f25: 0x40654820, 0x3f26: 0x40654a20, 0x3f27: 0x40654c20, + 0x3f28: 0x40654e20, 0x3f29: 0x40655020, 0x3f2a: 0x40655220, 0x3f2b: 0x40655420, + 0x3f2c: 0x40655620, 0x3f2d: 0x40655820, 0x3f2e: 0x40655a20, 0x3f2f: 0x40655c20, + 0x3f30: 0x40655e20, 0x3f31: 0x40656020, 0x3f32: 0x40656220, 0x3f33: 0x40656420, + 0x3f34: 0x40656620, 0x3f35: 0x40656820, 0x3f36: 0x40656a20, 0x3f37: 0x40656c20, + 0x3f38: 0x40656e20, 0x3f39: 0x40657020, 0x3f3a: 0x40657220, 0x3f3b: 0x40657420, + // Block 0xfd, offset 0x3f40 + 0x3f40: 0x43189020, 0x3f41: 0x42cde820, 0x3f42: 0x431d9420, 0x3f43: 0x43199020, + 0x3f44: 0x42dda220, 0x3f45: 0x429c6420, 0x3f46: 0x42a7ca20, 0x3f47: 0x433f3820, + 0x3f48: 0x433f3820, 0x3f49: 0x42b2a220, 0x3f4a: 0x4323a220, 0x3f4b: 0x42ab0e20, + 0x3f4c: 0x42b29020, 0x3f4d: 0x42c3ec20, 0x3f4e: 0x42ecd220, 0x3f4f: 0x42ff0a20, + 0x3f50: 0x430c7e20, 0x3f51: 0x430f7420, 0x3f52: 0x4311f020, 0x3f53: 0x43211e20, + 0x3f54: 0x42d40420, 0x3f55: 0x42da3620, 0x3f56: 0x42e1b220, 0x3f57: 0x42e7bc20, + 0x3f58: 0x43087a20, 0x3f59: 0x4322d420, 0x3f5a: 0x4333e220, 0x3f5b: 0x429d0420, + 0x3f5c: 0x42a6ea20, 0x3f5d: 0x42d60820, 0x3f5e: 0x42e43620, 0x3f5f: 0x430c5a20, + 0x3f60: 0x433c3c20, 0x3f61: 0x42baa020, 0x3f62: 0x42dfd620, 0x3f63: 0x430b9a20, + 0x3f64: 0x4312c820, 0x3f65: 0x42c59220, 0x3f66: 0x4303b020, 0x3f67: 0x43103e20, + 0x3f68: 0x42bd9420, 0x3f69: 0x42ce2e20, 0x3f6a: 0x42dad420, 0x3f6b: 0x42e5f820, + 0x3f6c: 0x43219c20, 0x3f6d: 0x429f0c20, 0x3f6e: 0x42a36e20, 0x3f6f: 0x42a5bc20, + 0x3f70: 0x42c98820, 0x3f71: 0x42d5a620, 0x3f72: 0x42e42020, 0x3f73: 0x42edce20, + 0x3f74: 0x43000220, 0x3f75: 0x430c0c20, 0x3f76: 0x430cb820, 0x3f77: 0x431bde20, + 0x3f78: 0x432e6420, 0x3f79: 0x4336de20, 0x3f7a: 0x433bf420, 0x3f7b: 0x42f11820, + 0x3f7c: 0x42f2fe20, 0x3f7d: 0x42fb4020, 0x3f7e: 0x43079220, 0x3f7f: 0x43260820, + // Block 0xfe, offset 0x3f80 + 0x3f80: 0x433cfe20, 0x3f81: 0x4315ac20, 0x3f82: 0x42b1be20, 0x3f83: 0x42be0820, + 0x3f84: 0x42f8c020, 0x3f85: 0x4300fc20, 0x3f86: 0x42e4c420, 0x3f87: 0x42f19420, + 0x3f88: 0x43198420, 0x3f89: 0x432dee20, 0x3f8a: 0x42b1b020, 0x3f8b: 0x42b8c420, + 0x3f8c: 0x42d42620, 0x3f8d: 0x42dbb420, 0x3f8e: 0x42de1e20, 0x3f8f: 0x42fa5e20, + 0x3f90: 0x42fc6e20, 0x3f91: 0x432c9620, 0x3f92: 0x42a5a420, 0x3f93: 0x43011620, + 0x3f94: 0x42a3b820, 0x3f95: 0x42a39820, 0x3f96: 0x42f43820, 0x3f97: 0x42fb7c20, + 0x3f98: 0x4307e220, 0x3f99: 0x432cea20, 0x3f9a: 0x43170020, 0x3f9b: 0x42c59e20, + 0x3f9c: 0x42d40420, 0x3f9d: 0x4315fc20, 0x3f9e: 0x429c7220, 0x3f9f: 0x42b7ce20, + 0x3fa0: 0x42c02420, 0x3fa1: 0x42e70e20, 0x3fa2: 0x42eae020, 0x3fa3: 0x42a62e20, + 0x3fa4: 0x42f1f620, 0x3fa5: 0x429f7e20, 0x3fa6: 0x42bf5220, 0x3fa7: 0x429c1a20, + 0x3fa8: 0x42d99820, 0x3fa9: 0x42caf020, 0x3faa: 0x42fa4420, 0x3fab: 0x42a78620, + 0x3fac: 0x42b0bc20, 0x3fad: 0x42ee0220, 0x3fae: 0x43089220, 0x3faf: 0x43155420, + 0x3fb0: 0x42d77420, 0x3fb1: 0x431f6020, 0x3fb2: 0x42d91020, 0x3fb3: 0x42c5fc20, + 0x3fb4: 0x4305ca20, 0x3fb5: 0x42c74020, 0x3fb6: 0x42eaca20, 0x3fb7: 0x429d5c20, + 0x3fb8: 0x42a2d220, 0x3fb9: 0x42a39220, 0x3fba: 0x42d10220, 0x3fbb: 0x42f9ce20, + 0x3fbc: 0x4304de20, 0x3fbd: 0x4315a420, 0x3fbe: 0x43239e20, 0x3fbf: 0x42a5ea20, + // Block 0xff, offset 0x3fc0 + 0x3fc0: 0x42a88420, 0x3fc1: 0x42b2e620, 0x3fc2: 0x42bdd820, 0x3fc3: 0x42cb8a20, + 0x3fc4: 0x42dffc20, 0x3fc5: 0x42f25420, 0x3fc6: 0x432b5a20, 0x3fc7: 0x4334d420, + 0x3fc8: 0x433d2e20, 0x3fc9: 0x433d9c20, 0x3fca: 0x42a53620, 0x3fcb: 0x42cd8c20, + 0x3fcc: 0x42d6ee20, 0x3fcd: 0x431ec420, 0x3fce: 0x42bce820, 0x3fcf: 0x42c32020, + 0x3fd0: 0x42c40020, 0x3fd1: 0x42c93420, 0x3fd2: 0x42de4620, 0x3fd3: 0x42e29220, + 0x3fd4: 0x42e91220, 0x3fd5: 0x42f39420, 0x3fd6: 0x42fbe820, 0x3fd7: 0x4300de20, + 0x3fd8: 0x431e4c20, 0x3fd9: 0x4309dc20, 0x3fda: 0x43204620, 0x3fdb: 0x43269420, + 0x3fdc: 0x42a42e20, 0x3fdd: 0x42a54620, 0x3fde: 0x42a97a20, 0x3fdf: 0x42e19020, + 0x3fe0: 0x43118420, 0x3fe1: 0x43155420, 0x3fe2: 0x42bd9220, 0x3fe3: 0x42bfea20, + 0x3fe4: 0x42c6f620, 0x3fe5: 0x42d75c20, 0x3fe6: 0x42f87c20, 0x3fe7: 0x42e6ea20, + 0x3fe8: 0x429dc820, 0x3fe9: 0x42adf220, 0x3fea: 0x42b7ce20, 0x3feb: 0x42bb7420, + 0x3fec: 0x42c03820, 0x3fed: 0x42e76420, 0x3fee: 0x42e8d220, 0x3fef: 0x42ff3420, + 0x3ff0: 0x43008c20, 0x3ff1: 0x43246820, 0x3ff2: 0x432dec20, 0x3ff3: 0x432e9020, + 0x3ff4: 0x43303020, 0x3ff5: 0x429f1620, 0x3ff6: 0x42f35c20, 0x3ff7: 0x43236820, + 0x3ff8: 0x432d7020, 0x3ff9: 0x42c1c220, 0x3ffa: 0x429d0c20, 0x3ffb: 0x42a1b420, + 0x3ffc: 0x42b7dc20, 0x3ffd: 0x42b87e20, 0x3ffe: 0x42cb3220, 0x3fff: 0x42d40420, + // Block 0x100, offset 0x4000 + 0x4000: 0x42e39c20, 0x4001: 0x42ec8420, 0x4002: 0x4309f820, 0x4003: 0x4320f820, + 0x4004: 0x433f1a20, 0x4005: 0x42cd1020, 0x4006: 0x432c5c20, 0x4007: 0x42a51220, + 0x4008: 0x42cef620, 0x4009: 0x42cfe620, 0x400a: 0x42da8220, 0x400b: 0x42dd3820, + 0x400c: 0x42e81220, 0x400d: 0x42eab220, 0x400e: 0x42f0d620, 0x400f: 0x42fa2020, + 0x4010: 0x4330bc20, 0x4011: 0x42a2da20, 0x4012: 0x42c45c20, 0x4013: 0x432cf020, + 0x4014: 0x42a05620, 0x4015: 0x42ba3220, 0x4016: 0x42dbd420, 0x4017: 0x431e5420, + 0x4018: 0x42bf1620, 0x4019: 0x42c28820, 0x401a: 0x42d02e20, 0x401b: 0x42e70e20, + 0x401c: 0x432d0c20, 0x401d: 0x42a45220, 0x401e: 0x42a81e20, 0x401f: 0x42b8ca20, + 0x4020: 0x42cc2620, 0x4021: 0x42ce9c20, 0x4022: 0x42d15020, 0x4023: 0x42d9ca20, + 0x4024: 0x42e80c20, 0x4025: 0x42ebc420, 0x4026: 0x42fef220, 0x4027: 0x43119e20, + 0x4028: 0x4311c220, 0x4029: 0x43239820, 0x402a: 0x432dc420, 0x402b: 0x42a67e20, + 0x402c: 0x42dd7420, 0x402d: 0x42a83a20, 0x402e: 0x42e3a020, 0x402f: 0x42e93020, + 0x4030: 0x430bf420, 0x4031: 0x432d4620, 0x4032: 0x4338ae20, 0x4033: 0x433d3e20, + 0x4034: 0x42cf2e20, 0x4035: 0x42db9620, 0x4036: 0x4303d020, 0x4037: 0x42f59620, + 0x4038: 0x42f64020, 0x4039: 0x42f92420, 0x403a: 0x42e58020, 0x403b: 0x42e13220, + 0x403c: 0x4316b020, 0x403d: 0x429d8020, 0x403e: 0x43066c20, 0x403f: 0x42a47420, + // Block 0x101, offset 0x4040 + 0x4040: 0x42a40e20, 0x4041: 0x42bd4c20, 0x4042: 0x42c5a620, 0x4043: 0x42f9ac20, + 0x4044: 0x42b70a20, 0x4045: 0x42da3c20, 0x4046: 0x42cd6820, 0x4047: 0x431e7620, + 0x4048: 0x43109820, 0x4049: 0x432c9a20, 0x404a: 0x43131620, 0x404b: 0x42bda620, + 0x404c: 0x42a28020, 0x404d: 0x42ab8020, 0x404e: 0x43f41c20, 0x404f: 0x43f41e20, + 0x4050: 0x42b0b420, 0x4051: 0x43f42220, 0x4052: 0x42cce820, 0x4053: 0x43f42620, + 0x4054: 0x43f42820, 0x4055: 0x42a3bc20, 0x4056: 0x42e65420, 0x4057: 0x42ed9420, + 0x4058: 0x42f27820, 0x4059: 0x42f2bc20, 0x405a: 0x42f2ca20, 0x405b: 0x42f31e20, + 0x405c: 0x432eac20, 0x405d: 0x42f97c20, 0x405e: 0x42ff7a20, 0x405f: 0x43f43e20, + 0x4060: 0x430c2420, 0x4061: 0x43f44220, 0x4062: 0x4315f020, 0x4063: 0x43f44620, + 0x4064: 0x43f44820, 0x4065: 0x43207020, 0x4066: 0x4321fa20, 0x4067: 0x43f44e20, + 0x4068: 0x43f45020, 0x4069: 0x43f45220, 0x406a: 0x4331de20, 0x406b: 0x4331f820, + 0x406c: 0x43325020, 0x406d: 0x433b6820, 0x406e: 0x4321bc20, 0x406f: 0x432d6e20, + 0x4070: 0x429f5c20, 0x4071: 0x42a1ce20, 0x4072: 0x42a29a20, 0x4073: 0x42a59220, + 0x4074: 0x42a5c820, 0x4075: 0x42a6a220, 0x4076: 0x42ab3a20, 0x4077: 0x42ac0c20, + 0x4078: 0x42acd020, 0x4079: 0x42b08020, 0x407a: 0x42b15020, 0x407b: 0x42b8c820, + 0x407c: 0x42b8dc20, 0x407d: 0x42c12820, 0x407e: 0x42c2d020, 0x407f: 0x42c31c20, + // Block 0x102, offset 0x4080 + 0x4080: 0x42c3e420, 0x4081: 0x42ca9e20, 0x4082: 0x42cbc420, 0x4083: 0x42cd2220, + 0x4084: 0x42d10a20, 0x4085: 0x42daee20, 0x4086: 0x42dc3420, 0x4087: 0x42de4420, + 0x4088: 0x42e2dc20, 0x4089: 0x42e45620, 0x408a: 0x42e84420, 0x408b: 0x42f12220, + 0x408c: 0x42f27c20, 0x408d: 0x42f29220, 0x408e: 0x42f29020, 0x408f: 0x42f2a020, + 0x4090: 0x42f2ac20, 0x4091: 0x42f2ba20, 0x4092: 0x42f31a20, 0x4093: 0x42f31c20, + 0x4094: 0x42f48020, 0x4095: 0x42f50220, 0x4096: 0x42f78020, 0x4097: 0x42fbe820, + 0x4098: 0x42fc1220, 0x4099: 0x42fc8220, 0x409a: 0x42fee420, 0x409b: 0x43000a20, + 0x409c: 0x4303da20, 0x409d: 0x4304f220, 0x409e: 0x4304f220, 0x409f: 0x4308ae20, + 0x40a0: 0x43122020, 0x40a1: 0x43132c20, 0x40a2: 0x43160220, 0x40a3: 0x43167220, + 0x40a4: 0x4319a620, 0x40a5: 0x431a1020, 0x40a6: 0x431f6c20, 0x40a7: 0x43207020, + 0x40a8: 0x432dc620, 0x40a9: 0x432ffe20, 0x40aa: 0x43307620, 0x40ab: 0x42c0ea20, + 0x40ac: 0x4885dc20, 0x40ad: 0x43043020, + 0x40b0: 0x429c4c20, 0x40b1: 0x42a36a20, 0x40b2: 0x42a2d020, 0x40b3: 0x429f0020, + 0x40b4: 0x42a28a20, 0x40b5: 0x42a30020, 0x40b6: 0x42a58e20, 0x40b7: 0x42a5f420, + 0x40b8: 0x42ab3a20, 0x40b9: 0x42aaaa20, 0x40ba: 0x42ab3220, 0x40bb: 0x42abc420, + 0x40bc: 0x42b0b420, 0x40bd: 0x42b16620, 0x40be: 0x42b28820, 0x40bf: 0x42b2a820, + // Block 0x103, offset 0x40c0 + 0x40c0: 0x42b4c420, 0x40c1: 0x42b65020, 0x40c2: 0x42bda420, 0x40c3: 0x42bdb220, + 0x40c4: 0x42bed220, 0x40c5: 0x42bf5a20, 0x40c6: 0x42c1b020, 0x40c7: 0x42c29c20, + 0x40c8: 0x42c21020, 0x40c9: 0x42c31c20, 0x40ca: 0x42c2c020, 0x40cb: 0x42c3e420, + 0x40cc: 0x42c46820, 0x40cd: 0x42c78820, 0x40ce: 0x42c83820, 0x40cf: 0x42c8a420, + 0x40d0: 0x42caac20, 0x40d1: 0x42cce820, 0x40d2: 0x42ce2e20, 0x40d3: 0x42ce3620, + 0x40d4: 0x42ceac20, 0x40d5: 0x42d6f220, 0x40d6: 0x42d77420, 0x40d7: 0x42da8220, + 0x40d8: 0x42ddb620, 0x40d9: 0x42dd9620, 0x40da: 0x42de4420, 0x40db: 0x42e03c20, + 0x40dc: 0x42e2dc20, 0x40dd: 0x42ef4e20, 0x40de: 0x42e46a20, 0x40df: 0x42e55e20, + 0x40e0: 0x42e65420, 0x40e1: 0x42e8e220, 0x40e2: 0x42ea0c20, 0x40e3: 0x42ea7620, + 0x40e4: 0x42ec3a20, 0x40e5: 0x42ec3e20, 0x40e6: 0x42ed9420, 0x40e7: 0x42edb620, + 0x40e8: 0x42ede820, 0x40e9: 0x42ee9420, 0x40ea: 0x42ee8020, 0x40eb: 0x42f19820, + 0x40ec: 0x42f56220, 0x40ed: 0x42f78020, 0x40ee: 0x42f8f620, 0x40ef: 0x42fab620, + 0x40f0: 0x42fbe820, 0x40f1: 0x42fe7c20, 0x40f2: 0x43000a20, 0x40f3: 0x4306a420, + 0x40f4: 0x4307de20, 0x40f5: 0x430ef220, 0x40f6: 0x43128220, 0x40f7: 0x43130c20, + 0x40f8: 0x43132c20, 0x40f9: 0x43157e20, 0x40fa: 0x4315f020, 0x40fb: 0x43159620, + 0x40fc: 0x43160220, 0x40fd: 0x4315fc20, 0x40fe: 0x4315da20, 0x40ff: 0x43167220, + // Block 0x104, offset 0x4100 + 0x4100: 0x43171420, 0x4101: 0x431a1020, 0x4102: 0x431e7020, 0x4103: 0x4320e420, + 0x4104: 0x43233220, 0x4105: 0x4324ec20, 0x4106: 0x432cf820, 0x4107: 0x432dc620, + 0x4108: 0x432eac20, 0x4109: 0x432fb620, 0x410a: 0x432ffe20, 0x410b: 0x43301620, + 0x410c: 0x43307620, 0x410d: 0x43362420, 0x410e: 0x433f3820, 0x410f: 0x48509420, + 0x4110: 0x48508820, 0x4111: 0x4867aa20, 0x4112: 0x44773a20, 0x4113: 0x44803020, + 0x4114: 0x44807220, 0x4115: 0x48a49220, 0x4116: 0x48b9a020, 0x4117: 0x48fda620, + 0x4118: 0x433e8620, 0x4119: 0x433f1c20, + // Block 0x105, offset 0x4140 + 0x4140: 0xf0000404, 0x4141: 0xf0000404, 0x4142: 0xf0000404, 0x4143: 0xe0000b99, + 0x4144: 0xe0000b9d, 0x4145: 0xe0000f83, 0x4146: 0xf0000404, + 0x4153: 0xf0000404, + 0x4154: 0xf0000404, 0x4155: 0xf0000404, 0x4156: 0xf0000404, 0x4157: 0xf0000404, + 0x415d: 0xe000150b, 0x415e: 0xa1a09602, 0x415f: 0xe0001514, + 0x4160: 0x0038ae85, 0x4161: 0x00389085, 0x4162: 0x00389685, 0x4163: 0x00389885, + 0x4164: 0x0038a485, 0x4165: 0x0038a685, 0x4166: 0x0038a885, 0x4167: 0x0038b685, + 0x4168: 0x0038ba85, 0x4169: 0x00093885, 0x416a: 0xe0001542, 0x416b: 0xe000153f, + 0x416c: 0xe000154c, 0x416d: 0xe0001548, 0x416e: 0xe00014e1, 0x416f: 0xe00014e4, + 0x4170: 0xe00014e7, 0x4171: 0xe00014ea, 0x4172: 0xe00014f0, 0x4173: 0xe00014f3, + 0x4174: 0xe00014f6, 0x4175: 0xe00014fc, 0x4176: 0xe0001505, + 0x4178: 0xe0001508, 0x4179: 0xe000150e, 0x417a: 0xe000151b, 0x417b: 0xe0001518, + 0x417c: 0xe0001521, 0x417e: 0xe0001524, + // Block 0x106, offset 0x4180 + 0x4180: 0xe0001527, 0x4181: 0xe000152a, 0x4183: 0xe0001530, + 0x4184: 0xe000152d, 0x4186: 0xe0001536, 0x4187: 0xe0001539, + 0x4188: 0xe000153c, 0x4189: 0xe0001545, 0x418a: 0xe0001550, 0x418b: 0xe00014f9, + 0x418c: 0xe00014ed, 0x418d: 0xe000151e, 0x418e: 0xe0001533, 0x418f: 0xf0000404, + 0x4190: 0x0039249a, 0x4191: 0x00392499, 0x4192: 0x00393e9a, 0x4193: 0x00393e99, + 0x4194: 0x00393e97, 0x4195: 0x00393e98, 0x4196: 0x0039409a, 0x4197: 0x00394099, + 0x4198: 0x00394097, 0x4199: 0x00394098, 0x419a: 0x0039429a, 0x419b: 0x00394299, + 0x419c: 0x00394297, 0x419d: 0x00394298, 0x419e: 0x00395c9a, 0x419f: 0x00395c99, + 0x41a0: 0x00395c97, 0x41a1: 0x00395c98, 0x41a2: 0x0039629a, 0x41a3: 0x00396299, + 0x41a4: 0x00396297, 0x41a5: 0x00396298, 0x41a6: 0x00395a9a, 0x41a7: 0x00395a99, + 0x41a8: 0x00395a97, 0x41a9: 0x00395a98, 0x41aa: 0x003a049a, 0x41ab: 0x003a0499, + 0x41ac: 0x003a0497, 0x41ad: 0x003a0498, 0x41ae: 0x003a0a9a, 0x41af: 0x003a0a99, + 0x41b0: 0x003a0a97, 0x41b1: 0x003a0a98, 0x41b2: 0x0039689a, 0x41b3: 0x00396899, + 0x41b4: 0x00396897, 0x41b5: 0x00396898, 0x41b6: 0x0039669a, 0x41b7: 0x00396699, + 0x41b8: 0x00396697, 0x41b9: 0x00396698, 0x41ba: 0x00396a9a, 0x41bb: 0x00396a99, + 0x41bc: 0x00396a97, 0x41bd: 0x00396a98, 0x41be: 0x00396e9a, 0x41bf: 0x00396e99, + // Block 0x107, offset 0x41c0 + 0x41c0: 0x00396e97, 0x41c1: 0x00396e98, 0x41c2: 0x0039969a, 0x41c3: 0x00399699, + 0x41c4: 0x0039949a, 0x41c5: 0x00399499, 0x41c6: 0x0039989a, 0x41c7: 0x00399899, + 0x41c8: 0x00398c9a, 0x41c9: 0x00398c99, 0x41ca: 0x0039b69a, 0x41cb: 0x0039b699, + 0x41cc: 0x0039a89a, 0x41cd: 0x0039a899, 0x41ce: 0x003a1c9a, 0x41cf: 0x003a1c99, + 0x41d0: 0x003a1c97, 0x41d1: 0x003a1c98, 0x41d2: 0x003a2a9a, 0x41d3: 0x003a2a99, + 0x41d4: 0x003a2a97, 0x41d5: 0x003a2a98, 0x41d6: 0x003a329a, 0x41d7: 0x003a3299, + 0x41d8: 0x003a3297, 0x41d9: 0x003a3298, 0x41da: 0x003a2e9a, 0x41db: 0x003a2e99, + 0x41dc: 0x003a2e97, 0x41dd: 0x003a2e98, 0x41de: 0x003a589a, 0x41df: 0x003a5899, + 0x41e0: 0x003a5a9a, 0x41e1: 0x003a5a99, 0x41e2: 0x003a5a97, 0x41e3: 0x003a5a98, + 0x41e4: 0xf0001a1a, 0x41e5: 0xf0001919, 0x41e6: 0x003a6c9a, 0x41e7: 0x003a6c99, + 0x41e8: 0x003a6c97, 0x41e9: 0x003a6c98, 0x41ea: 0x003a6a9a, 0x41eb: 0x003a6a99, + 0x41ec: 0x003a6a97, 0x41ed: 0x003a6a98, 0x41ee: 0x003aaa9a, 0x41ef: 0x003aaa99, + 0x41f0: 0xf0001a1a, 0x41f1: 0xf0001919, 0x41f2: 0x40071820, 0x41f3: 0x40071a20, + 0x41f4: 0x40071c20, 0x41f5: 0x40071e20, 0x41f6: 0x40072020, 0x41f7: 0x40072220, + 0x41f8: 0x40072420, 0x41f9: 0x40072620, 0x41fa: 0x40072820, 0x41fb: 0x40072a20, + 0x41fc: 0x40072c20, 0x41fd: 0x40072e20, 0x41fe: 0x40073020, 0x41ff: 0x40073220, + // Block 0x108, offset 0x4200 + 0x4200: 0x40073420, 0x4201: 0x40073620, + 0x4213: 0x003a269a, + 0x4214: 0x003a2699, 0x4215: 0x003a2697, 0x4216: 0x003a2698, 0x4217: 0x003a7c9a, + 0x4218: 0x003a7c99, 0x4219: 0x003a7a9a, 0x421a: 0x003a7a99, 0x421b: 0x003a7e9a, + 0x421c: 0x003a7e99, 0x421d: 0xf0001a1a, 0x421e: 0x003a849a, 0x421f: 0x003a8499, + 0x4220: 0x003a789a, 0x4221: 0x003a7899, 0x4222: 0x003a809a, 0x4223: 0x003a8099, + 0x4224: 0x003a989a, 0x4225: 0x003a9899, 0x4226: 0x003a9897, 0x4227: 0x003a9898, + 0x4228: 0x003a8e97, 0x4229: 0x003a8e98, 0x422a: 0xe0001559, 0x422b: 0xe0001556, + 0x422c: 0xe0001589, 0x422d: 0xe0001586, 0x422e: 0xe000158f, 0x422f: 0xe000158c, + 0x4230: 0xe000159b, 0x4231: 0xe0001598, 0x4232: 0xe0001595, 0x4233: 0xe0001592, + 0x4234: 0xe00015a1, 0x4235: 0xe000159e, 0x4236: 0xe00015bf, 0x4237: 0xe00015bc, + 0x4238: 0xe00015b9, 0x4239: 0xe00015ad, 0x423a: 0xe00015a7, 0x423b: 0xe00015a4, + 0x423c: 0x003a929a, 0x423d: 0x003a9299, 0x423e: 0x003a9297, 0x423f: 0x003a9298, + // Block 0x109, offset 0x4240 + 0x4240: 0xe000155f, 0x4241: 0xe0001565, 0x4242: 0xe000157a, 0x4243: 0xe00015b0, + 0x4244: 0xe00015b6, 0x4245: 0xf0001a1a, 0x4246: 0xf0001a1a, 0x4247: 0xf0001a1a, + 0x4248: 0xf0001a1a, 0x4249: 0xf0001a1a, 0x424a: 0xf0001a1a, 0x424b: 0xf0001a1a, + 0x424c: 0xf0001a1a, 0x424d: 0xf0001a1a, 0x424e: 0xf0001a1a, 0x424f: 0xf0001a1a, + 0x4250: 0xf0001a1a, 0x4251: 0xf0001a1a, 0x4252: 0xf0001a1a, 0x4253: 0xf0001a1a, + 0x4254: 0xf0001a1a, 0x4255: 0xf0001a1a, 0x4256: 0xf0001a1a, 0x4257: 0xf0001a1a, + 0x4258: 0xf0001a1a, 0x4259: 0xf0001a1a, 0x425a: 0xf0001a1a, 0x425b: 0xf0001a1a, + 0x425c: 0xf0001a1a, 0x425d: 0xf0001a1a, 0x425e: 0xf0001a1a, 0x425f: 0xf0001a1a, + 0x4260: 0xf0001a1a, 0x4261: 0xf0001a1a, 0x4262: 0xf0001a1a, 0x4263: 0xf0001a1a, + 0x4264: 0xf0001a1a, 0x4265: 0xf0001a1a, 0x4266: 0xf0001a1a, 0x4267: 0xf0001a1a, + 0x4268: 0xf0001a1a, 0x4269: 0xf0001a1a, 0x426a: 0xf0001a1a, 0x426b: 0xf0001a1a, + 0x426c: 0xf0001a1a, 0x426d: 0xf0001a1a, 0x426e: 0xf0001a1a, 0x426f: 0xf0001a1a, + 0x4270: 0xf0001a1a, 0x4271: 0xf0001a1a, 0x4272: 0xf0001a1a, 0x4273: 0xf0001a1a, + 0x4274: 0xf0001a1a, 0x4275: 0xf0001a1a, 0x4276: 0xf0001a1a, 0x4277: 0xf0001a1a, + 0x4278: 0xf0001a1a, 0x4279: 0xf0001a1a, 0x427a: 0xf0001a1a, 0x427b: 0xf0001a1a, + 0x427c: 0xf0001a1a, 0x427d: 0xf0001a1a, 0x427e: 0xf0001a1a, 0x427f: 0xf0001a1a, + // Block 0x10a, offset 0x4280 + 0x4280: 0xf0001a1a, 0x4281: 0xf0001a1a, 0x4282: 0xf0001a1a, 0x4283: 0xf0001a1a, + 0x4284: 0xf0001a1a, 0x4285: 0xf0001a1a, 0x4286: 0xf0001a1a, 0x4287: 0xf0001a1a, + 0x4288: 0xf0001a1a, 0x4289: 0xf0001a1a, 0x428a: 0xf0001a1a, 0x428b: 0xf0001a1a, + 0x428c: 0xf0001a1a, 0x428d: 0xf0001a1a, 0x428e: 0xf0001a1a, 0x428f: 0xf0001a1a, + 0x4290: 0xf0001a1a, 0x4291: 0xf0001a1a, 0x4292: 0xf0001a1a, 0x4293: 0xf0001a1a, + 0x4294: 0xf0001a1a, 0x4295: 0xf0001a1a, 0x4296: 0xf0001a1a, 0x4297: 0xf0001a1a, + 0x4298: 0xf0001a1a, 0x4299: 0xf0001a1a, 0x429a: 0xf0001a1a, 0x429b: 0xf0001a1a, + 0x429c: 0xf0001a1a, 0x429d: 0xf0001a1a, 0x429e: 0xe0000003, 0x429f: 0xe0000006, + 0x42a0: 0xe0000009, 0x42a1: 0xe000000c, 0x42a2: 0xe000000f, 0x42a3: 0xe0000012, + 0x42a4: 0xe000156b, 0x42a5: 0xe000156e, 0x42a6: 0xe0001577, 0x42a7: 0xe000157d, + 0x42a8: 0xe00015aa, 0x42a9: 0xe00015b3, 0x42aa: 0xf0001919, 0x42ab: 0xf0001919, + 0x42ac: 0xf0001919, 0x42ad: 0xf0001919, 0x42ae: 0xf0001919, 0x42af: 0xf0001919, + 0x42b0: 0xf0001919, 0x42b1: 0xf0001919, 0x42b2: 0xf0001919, 0x42b3: 0xf0001919, + 0x42b4: 0xf0001919, 0x42b5: 0xf0001919, 0x42b6: 0xf0001919, 0x42b7: 0xf0001919, + 0x42b8: 0xf0001919, 0x42b9: 0xf0001919, 0x42ba: 0xf0001919, 0x42bb: 0xf0001919, + 0x42bc: 0xf0001919, 0x42bd: 0xf0001919, 0x42be: 0xf0001919, 0x42bf: 0xf0001919, + // Block 0x10b, offset 0x42c0 + 0x42c0: 0xf0001919, 0x42c1: 0xf0001919, 0x42c2: 0xf0001919, 0x42c3: 0xf0001919, + 0x42c4: 0xf0001919, 0x42c5: 0xf0001919, 0x42c6: 0xf0001919, 0x42c7: 0xf0001919, + 0x42c8: 0xf0001919, 0x42c9: 0xf0001919, 0x42ca: 0xf0001919, 0x42cb: 0xf0001919, + 0x42cc: 0xf0001919, 0x42cd: 0xf0001919, 0x42ce: 0xf0001919, 0x42cf: 0xf0001919, + 0x42d0: 0xf0001919, 0x42d1: 0xf0001919, 0x42d2: 0xf0001919, 0x42d3: 0xf0001919, + 0x42d4: 0xf0001919, 0x42d5: 0xf0001919, 0x42d6: 0xf0001919, 0x42d7: 0xe000155c, + 0x42d8: 0xe0001562, 0x42d9: 0xe0001568, 0x42da: 0xe0001571, 0x42db: 0xe0001580, + 0x42dc: 0xf0001717, 0x42dd: 0xf0001717, 0x42de: 0xf0001717, 0x42df: 0xf0001717, + 0x42e0: 0xf0001717, 0x42e1: 0xf0001717, 0x42e2: 0xf0001717, 0x42e3: 0xf0001717, + 0x42e4: 0xf0001717, 0x42e5: 0xf0001717, 0x42e6: 0xf0001717, 0x42e7: 0xf0001717, + 0x42e8: 0xf0001717, 0x42e9: 0xf0001717, 0x42ea: 0xf0001717, 0x42eb: 0xf0001717, + 0x42ec: 0xf0001717, 0x42ed: 0xf0001717, 0x42ee: 0xf0001717, 0x42ef: 0xf0001717, + 0x42f0: 0xf0001717, 0x42f1: 0xf0001717, 0x42f2: 0xf0001717, 0x42f3: 0xf0001717, + 0x42f4: 0xf0001717, 0x42f5: 0xf0001717, 0x42f6: 0xf0001717, 0x42f7: 0xf0001717, + 0x42f8: 0xf0001717, 0x42f9: 0xf0001717, 0x42fa: 0xf0001717, 0x42fb: 0xf0001717, + 0x42fc: 0xf0001717, 0x42fd: 0xf0001717, 0x42fe: 0xf0001717, 0x42ff: 0xf0001717, + // Block 0x10c, offset 0x4300 + 0x4300: 0xf0001717, 0x4301: 0xf0001717, 0x4302: 0xf0001717, 0x4303: 0xf0001717, + 0x4304: 0xf0001717, 0x4305: 0xf0001717, 0x4306: 0xf0001717, 0x4307: 0xf0001717, + 0x4308: 0xf0001717, 0x4309: 0xf0001717, 0x430a: 0xf0001717, 0x430b: 0xf0001717, + 0x430c: 0xf0001717, 0x430d: 0xf0001717, 0x430e: 0xf0001717, 0x430f: 0xf0001717, + 0x4310: 0xf0001717, 0x4311: 0xf0001717, 0x4312: 0xf0001717, 0x4313: 0xf0001717, + 0x4314: 0xf0001717, 0x4315: 0xf0001717, 0x4316: 0xf0001717, 0x4317: 0xf0001717, + 0x4318: 0xf0001717, 0x4319: 0xf0001717, 0x431a: 0xf0001717, 0x431b: 0xf0001717, + 0x431c: 0xf0001717, 0x431d: 0xf0001717, 0x431e: 0xf0001717, 0x431f: 0xe0001574, + 0x4320: 0xe0001583, 0x4321: 0xf0001818, 0x4322: 0xf0001818, 0x4323: 0xf0001818, + 0x4324: 0xf0001818, 0x4325: 0xf0001818, 0x4326: 0xf0001818, 0x4327: 0xf0001818, + 0x4328: 0xf0001818, 0x4329: 0xf0001818, 0x432a: 0xf0001818, 0x432b: 0xf0001818, + 0x432c: 0xf0001818, 0x432d: 0xf0001818, 0x432e: 0xf0001818, 0x432f: 0xf0001818, + 0x4330: 0xf0001818, 0x4331: 0xf0001818, 0x4332: 0xf0001818, 0x4333: 0xf0001818, + 0x4334: 0xf0001818, 0x4335: 0xf0001a1a, 0x4336: 0xf0001a1a, 0x4337: 0xf0001a1a, + 0x4338: 0xf0001a1a, 0x4339: 0xf0001a1a, 0x433a: 0xf0001a1a, 0x433b: 0xf0001a1a, + 0x433c: 0xf0001a1a, 0x433d: 0xf0001a1a, 0x433e: 0xf0001a1a, 0x433f: 0xf0001a1a, + // Block 0x10d, offset 0x4340 + 0x4340: 0xf0001a1a, 0x4341: 0xf0001a1a, 0x4342: 0xf0001a1a, 0x4343: 0xf0001a1a, + 0x4344: 0xf0001a1a, 0x4345: 0xf0001a1a, 0x4346: 0xf0001a1a, 0x4347: 0xf0001a1a, + 0x4348: 0xf0001a1a, 0x4349: 0xf0001a1a, 0x434a: 0xf0001a1a, 0x434b: 0xf0001a1a, + 0x434c: 0xf0001a1a, 0x434d: 0xf0001a1a, 0x434e: 0xf0001a1a, 0x434f: 0xf0001a1a, + 0x4350: 0xf0001a1a, 0x4351: 0xf0001919, 0x4352: 0xf0001919, 0x4353: 0xf0001919, + 0x4354: 0xf0001919, 0x4355: 0xf0001919, 0x4356: 0xf0001919, 0x4357: 0xf0001919, + 0x4358: 0xf0001919, 0x4359: 0xf0001919, 0x435a: 0xf0001919, 0x435b: 0xf0001919, + 0x435c: 0xf0001919, 0x435d: 0xf0001919, 0x435e: 0xf0001919, 0x435f: 0xf0001919, + 0x4360: 0xf0001919, 0x4361: 0xf0001919, 0x4362: 0xf0001919, 0x4363: 0xf0001919, + 0x4364: 0xf0001919, 0x4365: 0xf0001919, 0x4366: 0xf0001919, 0x4367: 0xf0001919, + 0x4368: 0xf0001919, 0x4369: 0xf0001919, 0x436a: 0xf0001919, 0x436b: 0xf0001919, + 0x436c: 0xf0001919, 0x436d: 0xf0001717, 0x436e: 0xf0001717, 0x436f: 0xf0001717, + 0x4370: 0xf0001717, 0x4371: 0xf0001717, 0x4372: 0xf0001717, 0x4373: 0xf0001717, + 0x4374: 0xf0001818, 0x4375: 0xf0001818, 0x4376: 0xf0001818, 0x4377: 0xf0001818, + 0x4378: 0xf0001818, 0x4379: 0xf0001818, 0x437a: 0xf0001818, 0x437b: 0xf0001818, + 0x437c: 0xf0001919, 0x437d: 0xf0001a1a, 0x437e: 0x4004c020, 0x437f: 0x4004c220, + // Block 0x10e, offset 0x4380 + 0x4390: 0xe00015d4, 0x4391: 0xe00015e4, 0x4392: 0xe00015e0, 0x4393: 0xe00015e8, + 0x4394: 0xe00015ec, 0x4395: 0xe00015f8, 0x4396: 0xe00015fc, 0x4397: 0xe0001600, + 0x4398: 0xe0001621, 0x4399: 0xe000161d, 0x439a: 0xe0001635, 0x439b: 0xe0001631, + 0x439c: 0xe0001646, 0x439d: 0xe000163e, 0x439e: 0xe0001642, 0x439f: 0xe000165a, + 0x43a0: 0xe0001656, 0x43a1: 0xe0001652, 0x43a2: 0xe0001662, 0x43a3: 0xe000165e, + 0x43a4: 0xe000168a, 0x43a5: 0xe0001686, 0x43a6: 0xe00016b6, 0x43a7: 0xe000166e, + 0x43a8: 0xe000166a, 0x43a9: 0xe0001666, 0x43aa: 0xe000167a, 0x43ab: 0xe0001676, + 0x43ac: 0xe0001682, 0x43ad: 0xe000167e, 0x43ae: 0xe00016ba, 0x43af: 0xe00016c6, + 0x43b0: 0xe00016c2, 0x43b1: 0xe00016ce, 0x43b2: 0xe00016ca, 0x43b3: 0xe00016d2, + 0x43b4: 0xe00016d6, 0x43b5: 0xe00016de, 0x43b6: 0xe00016eb, 0x43b7: 0xe00016e7, + 0x43b8: 0xe00016ef, 0x43b9: 0xe00016f7, 0x43ba: 0xe00016ff, 0x43bb: 0xe00016fb, + 0x43bc: 0xe0001707, 0x43bd: 0xe0001703, 0x43be: 0xe0001717, 0x43bf: 0xe000171b, + // Block 0x10f, offset 0x43c0 + 0x43c0: 0xe0001759, 0x43c1: 0xe0001761, 0x43c2: 0xe000175d, 0x43c3: 0xe0001741, + 0x43c4: 0xe0001745, 0x43c5: 0xe0001769, 0x43c6: 0xe0001765, 0x43c7: 0xe0001771, + 0x43c8: 0xe000176d, 0x43c9: 0xe000178c, 0x43ca: 0xe0001790, 0x43cb: 0xe0001799, + 0x43cc: 0xe000177c, 0x43cd: 0xe0001784, 0x43ce: 0xe000179d, 0x43cf: 0xe00017a1, + 0x43d2: 0xe0001780, 0x43d3: 0xe00017d9, + 0x43d4: 0xe00017dd, 0x43d5: 0xe00017c5, 0x43d6: 0xe00017c9, 0x43d7: 0xe00017b9, + 0x43d8: 0xe00017b5, 0x43d9: 0xe00017bd, 0x43da: 0xe00017d5, 0x43db: 0xe00017d1, + 0x43dc: 0xe00017f8, 0x43dd: 0xe00017f4, 0x43de: 0xe00015d0, 0x43df: 0xe00015dc, + 0x43e0: 0xe00015d8, 0x43e1: 0xe00015f4, 0x43e2: 0xe00015f0, 0x43e3: 0xe0001608, + 0x43e4: 0xe0001604, 0x43e5: 0xe0001629, 0x43e6: 0xe000160c, 0x43e7: 0xe0001625, + 0x43e8: 0xe000164a, 0x43e9: 0xe000168e, 0x43ea: 0xe0001672, 0x43eb: 0xe00016be, + 0x43ec: 0xe0001751, 0x43ed: 0xe0001775, 0x43ee: 0xe00017f0, 0x43ef: 0xe00017ec, + 0x43f0: 0xe00017fc, 0x43f1: 0xe00017a9, 0x43f2: 0xe000171f, 0x43f3: 0xe00017cd, + 0x43f4: 0xe0001713, 0x43f5: 0xe0001755, 0x43f6: 0xe00016f3, 0x43f7: 0xe000172b, + 0x43f8: 0xe00017ad, 0x43f9: 0xe00017a5, 0x43fa: 0xe0001749, 0x43fb: 0xe0001727, + 0x43fc: 0xe000174d, 0x43fd: 0xe00017b1, 0x43fe: 0xe0001610, 0x43ff: 0xe000162d, + // Block 0x110, offset 0x4400 + 0x4400: 0xe0001788, 0x4401: 0xe000170b, 0x4402: 0xe00015cc, 0x4403: 0xe0001723, + 0x4404: 0xe00016da, 0x4405: 0xe00016b2, 0x4406: 0xe000164e, 0x4407: 0xe00017c1, + 0x4430: 0xe00016ae, 0x4431: 0xe000170f, 0x4432: 0xe00015c7, 0x4433: 0xe00015c2, + 0x4434: 0xe0001794, 0x4435: 0xe0001692, 0x4436: 0xe0001639, 0x4437: 0xe00016e2, + 0x4438: 0xe00017e7, 0x4439: 0xe0001697, 0x443a: 0xe000169b, 0x443b: 0xe0001614, + 0x443c: 0x40282e20, 0x443d: 0x40071620, + // Block 0x111, offset 0x4440 + 0x4440: 0xa0000000, 0x4441: 0xa0000000, 0x4442: 0xa0000000, 0x4443: 0xa0000000, + 0x4444: 0xa0000000, 0x4445: 0xa0000000, 0x4446: 0xa0000000, 0x4447: 0xa0000000, + 0x4448: 0xa0000000, 0x4449: 0xa0000000, 0x444a: 0xa0000000, 0x444b: 0xa0000000, + 0x444c: 0xa0000000, 0x444d: 0xa0000000, 0x444e: 0xa0000000, 0x444f: 0xa0000000, + 0x4450: 0x00024096, 0x4451: 0x00025c96, 0x4452: 0x00030496, 0x4453: 0x00026c96, + 0x4454: 0x00026296, 0x4455: 0x0002ba96, 0x4456: 0x0002c496, 0x4457: 0x0004b496, + 0x4458: 0x0004b696, 0x4459: 0xf0001616, + 0x4460: 0xae608202, 0x4461: 0xae600000, 0x4462: 0xae608102, 0x4463: 0xae600000, + 0x4464: 0xae600000, 0x4465: 0xae600000, 0x4466: 0xae600000, + 0x4470: 0xf0001f16, 0x4471: 0x00022c96, 0x4472: 0x00022a96, 0x4473: 0x00021696, + 0x4474: 0x00021696, 0x4475: 0x0003f496, 0x4476: 0x0003f696, 0x4477: 0x0003fc96, + 0x4478: 0x0003fe96, 0x4479: 0x0004b096, 0x447a: 0x0004b296, 0x447b: 0x0004ac96, + 0x447c: 0x0004ae96, 0x447d: 0x0004a096, 0x447e: 0x0004a296, 0x447f: 0x00049c96, + // Block 0x112, offset 0x4480 + 0x4480: 0x00049e96, 0x4481: 0x0004a496, 0x4482: 0x0004a696, 0x4483: 0x0004a896, + 0x4484: 0x0004aa96, 0x4485: 0x40025e20, 0x4486: 0x40026020, 0x4487: 0x0003f896, + 0x4488: 0x0003fa96, 0x4489: 0x00021484, 0x448a: 0x00021484, 0x448b: 0x00021484, + 0x448c: 0x00021484, 0x448d: 0x00021684, 0x448e: 0x00021684, 0x448f: 0x00021684, + 0x4490: 0x0002408f, 0x4491: 0x00025c8f, 0x4492: 0x0002e48f, + 0x4494: 0x0002628f, 0x4495: 0x00026c8f, 0x4496: 0x0002c48f, 0x4497: 0x0002ba8f, + 0x4498: 0x00022c8f, 0x4499: 0x0003f48f, 0x449a: 0x0003f68f, 0x449b: 0x0003fc8f, + 0x449c: 0x0003fe8f, 0x449d: 0x0004b08f, 0x449e: 0x0004b28f, 0x449f: 0x0004ea8f, + 0x44a0: 0x0004e68f, 0x44a1: 0x0004d88f, 0x44a2: 0x0009388f, 0x44a3: 0x00021a8f, + 0x44a4: 0x0009408f, 0x44a5: 0x0009448f, 0x44a6: 0x0009428f, + 0x44a8: 0x0004e48f, 0x44a9: 0x0027de8f, 0x44aa: 0x0004ec8f, 0x44ab: 0x0004d68f, + 0x44b0: 0xa000a21a, 0x44b1: 0xa000a218, 0x44b2: 0xa000a51a, 0x44b3: 0xa0000000, + 0x44b4: 0xa000a91a, 0x44b6: 0xa000ad1a, 0x44b7: 0xa000ad18, + 0x44b8: 0xa000b21a, 0x44b9: 0xa000b218, 0x44ba: 0xa000b61a, 0x44bb: 0xa000b618, + 0x44bc: 0xa000ba1a, 0x44bd: 0xa000ba18, 0x44be: 0xa000bc1a, 0x44bf: 0xa000bc18, + // Block 0x113, offset 0x44c0 + 0x44c0: 0x00391c9a, 0x44c1: 0x00391e9a, 0x44c2: 0x00391e99, 0x44c3: 0x0039209a, + 0x44c4: 0x00392099, 0x44c5: 0x0039269a, 0x44c6: 0x00392699, 0x44c7: 0x0039289a, + 0x44c8: 0x00392899, 0x44c9: 0x0039309a, 0x44ca: 0x00393099, 0x44cb: 0x00393097, + 0x44cc: 0x00393098, 0x44cd: 0x0039389a, 0x44ce: 0x00393899, 0x44cf: 0x00393c9a, + 0x44d0: 0x00393c99, 0x44d1: 0x00393c97, 0x44d2: 0x00393c98, 0x44d3: 0x0039549a, + 0x44d4: 0x00395499, 0x44d5: 0x0039569a, 0x44d6: 0x00395699, 0x44d7: 0x00395697, + 0x44d8: 0x00395698, 0x44d9: 0x0039589a, 0x44da: 0x00395899, 0x44db: 0x00395897, + 0x44dc: 0x00395898, 0x44dd: 0x0039649a, 0x44de: 0x00396499, 0x44df: 0x00396497, + 0x44e0: 0x00396498, 0x44e1: 0x0039729a, 0x44e2: 0x00397299, 0x44e3: 0x00397297, + 0x44e4: 0x00397298, 0x44e5: 0x0039749a, 0x44e6: 0x00397499, 0x44e7: 0x00397497, + 0x44e8: 0x00397498, 0x44e9: 0x0039889a, 0x44ea: 0x00398899, 0x44eb: 0x00398a9a, + 0x44ec: 0x00398a99, 0x44ed: 0x0039a49a, 0x44ee: 0x0039a499, 0x44ef: 0x0039a69a, + 0x44f0: 0x0039a699, 0x44f1: 0x0039c69a, 0x44f2: 0x0039c699, 0x44f3: 0x0039c697, + 0x44f4: 0x0039c698, 0x44f5: 0x0039c89a, 0x44f6: 0x0039c899, 0x44f7: 0x0039c897, + 0x44f8: 0x0039c898, 0x44f9: 0x0039dc9a, 0x44fa: 0x0039dc99, 0x44fb: 0x0039dc97, + 0x44fc: 0x0039dc98, 0x44fd: 0x0039de9a, 0x44fe: 0x0039de99, 0x44ff: 0x0039de97, + // Block 0x114, offset 0x4500 + 0x4500: 0x0039de98, 0x4501: 0x0039e69a, 0x4502: 0x0039e699, 0x4503: 0x0039e697, + 0x4504: 0x0039e698, 0x4505: 0x0039e89a, 0x4506: 0x0039e899, 0x4507: 0x0039e897, + 0x4508: 0x0039e898, 0x4509: 0x0039ee9a, 0x450a: 0x0039ee99, 0x450b: 0x0039ee97, + 0x450c: 0x0039ee98, 0x450d: 0x0039f09a, 0x450e: 0x0039f099, 0x450f: 0x0039f097, + 0x4510: 0x0039f098, 0x4511: 0x0039fc9a, 0x4512: 0x0039fc99, 0x4513: 0x0039fc97, + 0x4514: 0x0039fc98, 0x4515: 0x003a129a, 0x4516: 0x003a1299, 0x4517: 0x003a1297, + 0x4518: 0x003a1298, 0x4519: 0x003a1a9a, 0x451a: 0x003a1a99, 0x451b: 0x003a1a97, + 0x451c: 0x003a1a98, 0x451d: 0x003a409a, 0x451e: 0x003a4099, 0x451f: 0x003a4097, + 0x4520: 0x003a4098, 0x4521: 0x003a4e9a, 0x4522: 0x003a4e99, 0x4523: 0x003a4e97, + 0x4524: 0x003a4e98, 0x4525: 0x003a569a, 0x4526: 0x003a5699, 0x4527: 0x003a5697, + 0x4528: 0x003a5698, 0x4529: 0x003a689a, 0x452a: 0x003a6899, 0x452b: 0x003a6897, + 0x452c: 0x003a6898, 0x452d: 0x003a749a, 0x452e: 0x003a7499, 0x452f: 0x003a8e9a, + 0x4530: 0x003a8e99, 0x4531: 0x003a909a, 0x4532: 0x003a9099, 0x4533: 0x003a9097, + 0x4534: 0x003a9098, 0x4535: 0xe0001732, 0x4536: 0xe000172f, 0x4537: 0xe0001738, + 0x4538: 0xe0001735, 0x4539: 0xe000173e, 0x453a: 0xe000173b, 0x453b: 0xf0001a1a, + 0x453c: 0xf0001919, 0x453f: 0xa0000000, + // Block 0x115, offset 0x4540 + 0x4541: 0x0002ba83, 0x4542: 0x0003e083, 0x4543: 0x0004ea83, + 0x4544: 0x0027de83, 0x4545: 0x0004ec83, 0x4546: 0x0004e683, 0x4547: 0x0003d283, + 0x4548: 0x0003f483, 0x4549: 0x0003f683, 0x454a: 0x0004d883, 0x454b: 0x00093883, + 0x454c: 0x00024083, 0x454d: 0x00021a83, 0x454e: 0x0002e483, 0x454f: 0x0004e283, + 0x4550: 0x0029cc83, 0x4551: 0x0029ce83, 0x4552: 0x0029d083, 0x4553: 0x0029d283, + 0x4554: 0x0029d483, 0x4555: 0x0029d683, 0x4556: 0x0029d883, 0x4557: 0x0029da83, + 0x4558: 0x0029dc83, 0x4559: 0x0029de83, 0x455a: 0x00026c83, 0x455b: 0x00026283, + 0x455c: 0x00094083, 0x455d: 0x00094283, 0x455e: 0x00094483, 0x455f: 0x0002c483, + 0x4560: 0x0004d683, 0x4561: 0x002bde89, 0x4562: 0x002c0a89, 0x4563: 0x002c3a89, + 0x4564: 0x002c6289, 0x4565: 0x002c9889, 0x4566: 0x002d0889, 0x4567: 0x002d2289, + 0x4568: 0x002d6889, 0x4569: 0x002d9a89, 0x456a: 0x002dcc89, 0x456b: 0x002dfe89, + 0x456c: 0x002e2289, 0x456d: 0x002e8289, 0x456e: 0x002e9e89, 0x456f: 0x002ee289, + 0x4570: 0x002f2c89, 0x4571: 0x002f5689, 0x4572: 0x002f7a89, 0x4573: 0x002fe689, + 0x4574: 0x00302c89, 0x4575: 0x00306c89, 0x4576: 0x0030be89, 0x4577: 0x0030e289, + 0x4578: 0x0030f689, 0x4579: 0x00310089, 0x457a: 0x00312a89, 0x457b: 0x0003f883, + 0x457c: 0x0004e483, 0x457d: 0x0003fa83, 0x457e: 0x00062483, 0x457f: 0x00021683, + // Block 0x116, offset 0x4580 + 0x4580: 0x00061e83, 0x4581: 0x002bde83, 0x4582: 0x002c0a83, 0x4583: 0x002c3a83, + 0x4584: 0x002c6283, 0x4585: 0x002c9883, 0x4586: 0x002d0883, 0x4587: 0x002d2283, + 0x4588: 0x002d6883, 0x4589: 0x002d9a83, 0x458a: 0x002dcc83, 0x458b: 0x002dfe83, + 0x458c: 0x002e2283, 0x458d: 0x002e8283, 0x458e: 0x002e9e83, 0x458f: 0x002ee283, + 0x4590: 0x002f2c83, 0x4591: 0x002f5683, 0x4592: 0x002f7a83, 0x4593: 0x002fe683, + 0x4594: 0x00302c83, 0x4595: 0x00306c83, 0x4596: 0x0030be83, 0x4597: 0x0030e283, + 0x4598: 0x0030f683, 0x4599: 0x00310083, 0x459a: 0x00312a83, 0x459b: 0x0003fc83, + 0x459c: 0x00094883, 0x459d: 0x0003fe83, 0x459e: 0x00094c83, 0x459f: 0x00041883, + 0x45a0: 0x00041a83, 0x45a1: 0x00030492, 0x45a2: 0x0004a492, 0x45a3: 0x0004a692, + 0x45a4: 0x00025c92, 0x45a5: 0x00023e92, 0x45a6: 0x0065d692, 0x45a7: 0x00657690, + 0x45a8: 0x00657890, 0x45a9: 0x00657a90, 0x45aa: 0x00657e90, 0x45ab: 0x00658090, + 0x45ac: 0x0065be90, 0x45ad: 0x0065c090, 0x45ae: 0x0065c490, 0x45af: 0x00659a90, + 0x45b0: 0x0027d692, 0x45b1: 0x00657692, 0x45b2: 0x00657892, 0x45b3: 0x00657a92, + 0x45b4: 0x00657e92, 0x45b5: 0x00658092, 0x45b6: 0x00658292, 0x45b7: 0x00658492, + 0x45b8: 0x00658692, 0x45b9: 0x00658892, 0x45ba: 0x00658a92, 0x45bb: 0x00658c92, + 0x45bc: 0x00658e92, 0x45bd: 0x00659092, 0x45be: 0x00659292, 0x45bf: 0x00659492, + // Block 0x117, offset 0x45c0 + 0x45c0: 0x00659692, 0x45c1: 0x00659892, 0x45c2: 0x00659a92, 0x45c3: 0x00659c92, + 0x45c4: 0x00659e92, 0x45c5: 0x0065a092, 0x45c6: 0x0065a292, 0x45c7: 0x0065a492, + 0x45c8: 0x0065a692, 0x45c9: 0x0065a892, 0x45ca: 0x0065aa92, 0x45cb: 0x0065ac92, + 0x45cc: 0x0065ae92, 0x45cd: 0x0065b092, 0x45ce: 0x0065b292, 0x45cf: 0x0065b492, + 0x45d0: 0x0065b692, 0x45d1: 0x0065b892, 0x45d2: 0x0065ba92, 0x45d3: 0x0065bc92, + 0x45d4: 0x0065be92, 0x45d5: 0x0065c092, 0x45d6: 0x0065c492, 0x45d7: 0x0065c692, + 0x45d8: 0x0065c892, 0x45d9: 0x0065ca92, 0x45da: 0x0065cc92, 0x45db: 0x0065ce92, + 0x45dc: 0x0065d092, 0x45dd: 0x0065d892, 0x45de: 0xa0012812, 0x45df: 0xa0012912, + 0x45e0: 0x0063a692, 0x45e1: 0x0062ac92, 0x45e2: 0x0062ae92, 0x45e3: 0x00646892, + 0x45e4: 0x0062b092, 0x45e5: 0x00646c92, 0x45e6: 0x00646e92, 0x45e7: 0x0062b292, + 0x45e8: 0x0062b492, 0x45e9: 0x0062b692, 0x45ea: 0x00647492, 0x45eb: 0x00647692, + 0x45ec: 0x00647892, 0x45ed: 0x00647a92, 0x45ee: 0x00647c92, 0x45ef: 0x00647e92, + 0x45f0: 0x0062e092, 0x45f1: 0x0062b892, 0x45f2: 0x0062ba92, 0x45f3: 0x0062bc92, + 0x45f4: 0x0062ee92, 0x45f5: 0x0062be92, 0x45f6: 0x0062c092, 0x45f7: 0x0062c292, + 0x45f8: 0x0062c492, 0x45f9: 0x0062c692, 0x45fa: 0x0062c892, 0x45fb: 0x0062ca92, + 0x45fc: 0x0062cc92, 0x45fd: 0x0062ce92, 0x45fe: 0x0062d092, + // Block 0x118, offset 0x4600 + 0x4602: 0x0063a892, 0x4603: 0x0063aa92, + 0x4604: 0x0063ac92, 0x4605: 0x0063ae92, 0x4606: 0x0063b092, 0x4607: 0x0063b292, + 0x460a: 0x0063b492, 0x460b: 0x0063b692, + 0x460c: 0x0063b892, 0x460d: 0x0063ba92, 0x460e: 0x0063bc92, 0x460f: 0x0063be92, + 0x4612: 0x0063c092, 0x4613: 0x0063c292, + 0x4614: 0x0063c492, 0x4615: 0x0063c692, 0x4616: 0x0063c892, 0x4617: 0x0063ca92, + 0x461a: 0x0063cc92, 0x461b: 0x0063ce92, + 0x461c: 0x0063d092, + 0x4620: 0x0027dc83, 0x4621: 0x0027e083, 0x4622: 0x00094683, 0x4623: 0x00062683, + 0x4624: 0x00094a83, 0x4625: 0x0027e283, 0x4626: 0x00280883, + 0x4628: 0x000d3292, 0x4629: 0x00084492, 0x462a: 0x00084892, 0x462b: 0x00084692, + 0x462c: 0x00084a92, 0x462d: 0x000e6e92, 0x462e: 0x000ec492, + 0x4639: 0xa0000000, 0x463a: 0xa0000000, 0x463b: 0xa0000000, + 0x463c: 0x4027ae20, 0x463d: 0x4027b020, 0x463e: 0x00000285, 0x463f: 0x2bfffe85, + // Block 0x119, offset 0x4640 + 0x4640: 0x40731a20, 0x4641: 0x40731c20, 0x4642: 0x40731e20, 0x4643: 0x40732020, + 0x4644: 0x40732220, 0x4645: 0x40732420, 0x4646: 0x40732620, 0x4647: 0x40732820, + 0x4648: 0x40732a20, 0x4649: 0x40732c20, 0x464a: 0x40732e20, 0x464b: 0x40733020, + 0x464d: 0x40733220, 0x464e: 0x40733420, 0x464f: 0x40733620, + 0x4650: 0x40733820, 0x4651: 0x40733a20, 0x4652: 0x40733c20, 0x4653: 0x40733e20, + 0x4654: 0x40734020, 0x4655: 0x40734220, 0x4656: 0x40734420, 0x4657: 0x40734620, + 0x4658: 0x40734820, 0x4659: 0x40734a20, 0x465a: 0x40734c20, 0x465b: 0x40734e20, + 0x465c: 0x40735020, 0x465d: 0x40735220, 0x465e: 0x40735420, 0x465f: 0x40735620, + 0x4660: 0x40735820, 0x4661: 0x40735a20, 0x4662: 0x40735c20, 0x4663: 0x40735e20, + 0x4664: 0x40736020, 0x4665: 0x40736220, 0x4666: 0x40736420, + 0x4668: 0x40736620, 0x4669: 0x40736820, 0x466a: 0x40736a20, 0x466b: 0x40736c20, + 0x466c: 0x40736e20, 0x466d: 0x40737020, 0x466e: 0x40737220, 0x466f: 0x40737420, + 0x4670: 0x40737620, 0x4671: 0x40737820, 0x4672: 0x40737a20, 0x4673: 0x40737c20, + 0x4674: 0x40737e20, 0x4675: 0x40738020, 0x4676: 0x40738220, 0x4677: 0x40738420, + 0x4678: 0x40738620, 0x4679: 0x40738820, 0x467a: 0x40738a20, + 0x467c: 0x40738c20, 0x467d: 0x40738e20, 0x467f: 0x40739020, + // Block 0x11a, offset 0x4680 + 0x4680: 0x40739220, 0x4681: 0x40739420, 0x4682: 0x40739620, 0x4683: 0x40739820, + 0x4684: 0x40739a20, 0x4685: 0x40739c20, 0x4686: 0x40739e20, 0x4687: 0x4073a020, + 0x4688: 0x4073a220, 0x4689: 0x4073a420, 0x468a: 0x4073a620, 0x468b: 0x4073a820, + 0x468c: 0x4073aa20, 0x468d: 0x4073ac20, + 0x4690: 0x4073ae20, 0x4691: 0x4073b020, 0x4692: 0x4073b220, 0x4693: 0x4073b420, + 0x4694: 0x4073b620, 0x4695: 0x4073b820, 0x4696: 0x4073ba20, 0x4697: 0x4073bc20, + 0x4698: 0x4073be20, 0x4699: 0x4073c020, 0x469a: 0x4073c220, 0x469b: 0x4073c420, + 0x469c: 0x4073c620, 0x469d: 0x4073c820, + // Block 0x11b, offset 0x46c0 + 0x46c0: 0x4073ca20, 0x46c1: 0x4073cc20, 0x46c2: 0x4073ce20, 0x46c3: 0x4073d020, + 0x46c4: 0x4073d220, 0x46c5: 0x4073d420, 0x46c6: 0x4073d620, 0x46c7: 0x4073d820, + 0x46c8: 0x4073da20, 0x46c9: 0x4073dc20, 0x46ca: 0x4073de20, 0x46cb: 0x4073e020, + 0x46cc: 0x4073e220, 0x46cd: 0x4073e420, 0x46ce: 0x4073e620, 0x46cf: 0x4073e820, + 0x46d0: 0x4073ea20, 0x46d1: 0x4073ec20, 0x46d2: 0x4073ee20, 0x46d3: 0x4073f020, + 0x46d4: 0x4073f220, 0x46d5: 0x4073f420, 0x46d6: 0x4073f620, 0x46d7: 0x4073f820, + 0x46d8: 0x4073fa20, 0x46d9: 0x4073fc20, 0x46da: 0x4073fe20, 0x46db: 0x40740020, + 0x46dc: 0x40740220, 0x46dd: 0x40740420, 0x46de: 0x40740620, 0x46df: 0x40740820, + 0x46e0: 0x40740a20, 0x46e1: 0x40740c20, 0x46e2: 0x40740e20, 0x46e3: 0x40741020, + 0x46e4: 0x40741220, 0x46e5: 0x40741420, 0x46e6: 0x40741620, 0x46e7: 0x40741820, + 0x46e8: 0x40741a20, 0x46e9: 0x40741c20, 0x46ea: 0x40741e20, 0x46eb: 0x40742020, + 0x46ec: 0x40742220, 0x46ed: 0x40742420, 0x46ee: 0x40742620, 0x46ef: 0x40742820, + 0x46f0: 0x40742a20, 0x46f1: 0x40742c20, 0x46f2: 0x40742e20, 0x46f3: 0x40743020, + 0x46f4: 0x40743220, 0x46f5: 0x40743420, 0x46f6: 0x40743620, 0x46f7: 0x40743820, + 0x46f8: 0x40743a20, 0x46f9: 0x40743c20, 0x46fa: 0x40743e20, 0x46fb: 0x40744020, + 0x46fc: 0x40744220, 0x46fd: 0x40744420, 0x46fe: 0x40744620, 0x46ff: 0x40744820, + // Block 0x11c, offset 0x4700 + 0x4700: 0x40744a20, 0x4701: 0x40744c20, 0x4702: 0x40744e20, 0x4703: 0x40745020, + 0x4704: 0x40745220, 0x4705: 0x40745420, 0x4706: 0x40745620, 0x4707: 0x40745820, + 0x4708: 0x40745a20, 0x4709: 0x40745c20, 0x470a: 0x40745e20, 0x470b: 0x40746020, + 0x470c: 0x40746220, 0x470d: 0x40746420, 0x470e: 0x40746620, 0x470f: 0x40746820, + 0x4710: 0x40746a20, 0x4711: 0x40746c20, 0x4712: 0x40746e20, 0x4713: 0x40747020, + 0x4714: 0x40747220, 0x4715: 0x40747420, 0x4716: 0x40747620, 0x4717: 0x40747820, + 0x4718: 0x40747a20, 0x4719: 0x40747c20, 0x471a: 0x40747e20, 0x471b: 0x40748020, + 0x471c: 0x40748220, 0x471d: 0x40748420, 0x471e: 0x40748620, 0x471f: 0x40748820, + 0x4720: 0x40748a20, 0x4721: 0x40748c20, 0x4722: 0x40748e20, 0x4723: 0x40749020, + 0x4724: 0x40749220, 0x4725: 0x40749420, 0x4726: 0x40749620, 0x4727: 0x40749820, + 0x4728: 0x40749a20, 0x4729: 0x40749c20, 0x472a: 0x40749e20, 0x472b: 0x4074a020, + 0x472c: 0x4074a220, 0x472d: 0x4074a420, 0x472e: 0x4074a620, 0x472f: 0x4074a820, + 0x4730: 0x4074aa20, 0x4731: 0x4074ac20, 0x4732: 0x4074ae20, 0x4733: 0x4074b020, + 0x4734: 0x4074b220, 0x4735: 0x4074b420, 0x4736: 0x4074b620, 0x4737: 0x4074b820, + 0x4738: 0x4074ba20, 0x4739: 0x4074bc20, 0x473a: 0x4074be20, + // Block 0x11d, offset 0x4740 + 0x4740: 0x4003be20, 0x4741: 0x4003c020, 0x4742: 0x4003c220, + 0x4747: 0xe000026a, + 0x4748: 0xe0000382, 0x4749: 0xe000045c, 0x474a: 0xe0000531, 0x474b: 0xe00005fb, + 0x474c: 0xe00006c6, 0x474d: 0xe000076e, 0x474e: 0xe000081a, 0x474f: 0xe00008bf, + 0x4750: 0x4028ba20, 0x4751: 0x4028bc20, 0x4752: 0x4028be20, 0x4753: 0x4028c020, + 0x4754: 0x4028c220, 0x4755: 0x4028c420, 0x4756: 0x4028c620, 0x4757: 0x4028c820, + 0x4758: 0x4028ca20, 0x4759: 0x4028cc20, 0x475a: 0x4028ce20, 0x475b: 0x4028d020, + 0x475c: 0x4028d220, 0x475d: 0x4028d420, 0x475e: 0x4028d620, 0x475f: 0x4028d820, + 0x4760: 0x4028da20, 0x4761: 0x4028dc20, 0x4762: 0x4028de20, 0x4763: 0x4028e020, + 0x4764: 0x4028e220, 0x4765: 0x4028e420, 0x4766: 0x4028e620, 0x4767: 0x4028e820, + 0x4768: 0x4028ea20, 0x4769: 0x4028ec20, 0x476a: 0x4028ee20, 0x476b: 0x4028f020, + 0x476c: 0x4028f220, 0x476d: 0x4028f420, 0x476e: 0x4028f620, 0x476f: 0x4028f820, + 0x4770: 0x4028fa20, 0x4771: 0x4028fc20, 0x4772: 0x4028fe20, 0x4773: 0x40290020, + 0x4777: 0x401afe20, + 0x4778: 0x401b0020, 0x4779: 0x401b0220, 0x477a: 0x401b0420, 0x477b: 0x401b0620, + 0x477c: 0x401b0820, 0x477d: 0x401b0a20, 0x477e: 0x401b0c20, 0x477f: 0x401b0e20, + // Block 0x11e, offset 0x4780 + 0x4780: 0x40290220, 0x4781: 0x40290420, 0x4782: 0xe000026d, 0x4783: 0xe00005fe, + 0x4784: 0x40290620, 0x4785: 0x40290820, 0x4786: 0x40290a20, 0x4787: 0x40290c20, + 0x4788: 0xe0000601, 0x4789: 0x40290e20, 0x478a: 0x40291020, 0x478b: 0x40291220, + 0x478c: 0x40291420, 0x478d: 0x40291620, 0x478e: 0x40291820, 0x478f: 0xe0000604, + 0x4790: 0x40291a20, 0x4791: 0x40291c20, 0x4792: 0x40291e20, 0x4793: 0x40292020, + 0x4794: 0x40292220, 0x4795: 0x40292420, 0x4796: 0x40292620, 0x4797: 0x40292820, + 0x4798: 0xe0000270, 0x4799: 0xe0000273, 0x479a: 0xe0000276, 0x479b: 0xe0000385, + 0x479c: 0xe0000388, 0x479d: 0xe000038b, 0x479e: 0xe000038e, 0x479f: 0xe0000607, + 0x47a0: 0x40292a20, 0x47a1: 0x40292c20, 0x47a2: 0x40292e20, 0x47a3: 0x40293020, + 0x47a4: 0x40293220, 0x47a5: 0x40293420, 0x47a6: 0x40293620, 0x47a7: 0x40293820, + 0x47a8: 0x40293a20, 0x47a9: 0x40293c20, 0x47aa: 0x40293e20, 0x47ab: 0x40294020, + 0x47ac: 0x40294220, 0x47ad: 0x40294420, 0x47ae: 0x40294620, 0x47af: 0x40294820, + 0x47b0: 0x40294a20, 0x47b1: 0x40294c20, 0x47b2: 0x40294e20, 0x47b3: 0xe000060a, + 0x47b4: 0x40295020, 0x47b5: 0x40295220, 0x47b6: 0x40295420, 0x47b7: 0x40295620, + 0x47b8: 0x40295820, 0x47b9: 0x401b1020, 0x47ba: 0x401b1220, 0x47bb: 0x401b1420, + 0x47bc: 0x401b1620, 0x47bd: 0x401b1820, 0x47be: 0x401b1a20, 0x47bf: 0x401b1c20, + // Block 0x11f, offset 0x47c0 + 0x47c0: 0x401b1e20, 0x47c1: 0x401b2020, 0x47c2: 0x401b2220, 0x47c3: 0x401b2420, + 0x47c4: 0x401b2620, 0x47c5: 0x401b2820, 0x47c6: 0x401b2a20, 0x47c7: 0x401b2c20, + 0x47c8: 0x401b2e20, 0x47c9: 0x401b3020, 0x47ca: 0xe00001d6, + 0x47d0: 0x401b3220, 0x47d1: 0x401b3420, 0x47d2: 0x401b3620, 0x47d3: 0x401b3820, + 0x47d4: 0x401b3a20, 0x47d5: 0x401b3c20, 0x47d6: 0x401b3e20, 0x47d7: 0x401b4020, + 0x47d8: 0x401b4220, 0x47d9: 0x401b4420, 0x47da: 0x401b4620, 0x47db: 0x401b4820, + // Block 0x120, offset 0x4800 + 0x4810: 0x401b4a20, 0x4811: 0x401b4c20, 0x4812: 0x401b4e20, 0x4813: 0x401b5020, + 0x4814: 0x401b5220, 0x4815: 0x401b5420, 0x4816: 0x401b5620, 0x4817: 0x401b5820, + 0x4818: 0x401b5a20, 0x4819: 0x401b5c20, 0x481a: 0x401b5e20, 0x481b: 0x401b6020, + 0x481c: 0x401b6220, 0x481d: 0x401b6420, 0x481e: 0x401b6620, 0x481f: 0x401b6820, + 0x4820: 0x401b6a20, 0x4821: 0x401b6c20, 0x4822: 0x401b6e20, 0x4823: 0x401b7020, + 0x4824: 0x401b7220, 0x4825: 0x401b7420, 0x4826: 0x401b7620, 0x4827: 0x401b7820, + 0x4828: 0x401b7a20, 0x4829: 0x401b7c20, 0x482a: 0x401b7e20, 0x482b: 0x401b8020, + 0x482c: 0x401b8220, 0x482d: 0x401b8420, 0x482e: 0x401b8620, 0x482f: 0x401b8820, + 0x4830: 0x401b8a20, 0x4831: 0x401b8c20, 0x4832: 0x401b8e20, 0x4833: 0x401b9020, + 0x4834: 0x401b9220, 0x4835: 0x401b9420, 0x4836: 0x401b9620, 0x4837: 0x401b9820, + 0x4838: 0x401b9a20, 0x4839: 0x401b9c20, 0x483a: 0x401b9e20, 0x483b: 0x401ba020, + 0x483c: 0x401ba220, 0x483d: 0xadc13802, + // Block 0x121, offset 0x4840 + 0x4840: 0x4070b820, 0x4841: 0x4070ba20, 0x4842: 0x4070bc20, 0x4843: 0x4070be20, + 0x4844: 0x4070c020, 0x4845: 0x4070c220, 0x4846: 0x4070c420, 0x4847: 0x4070c620, + 0x4848: 0x4070c820, 0x4849: 0x4070ca20, 0x484a: 0x4070cc20, 0x484b: 0x4070ce20, + 0x484c: 0x4070d020, 0x484d: 0x4070d220, 0x484e: 0x4070d420, 0x484f: 0x4070d620, + 0x4850: 0x4070d820, 0x4851: 0x4070da20, 0x4852: 0x4070dc20, 0x4853: 0x4070de20, + 0x4854: 0x4070e020, 0x4855: 0x4070e220, 0x4856: 0x4070e420, 0x4857: 0x4070e620, + 0x4858: 0x4070e820, 0x4859: 0x4070ea20, 0x485a: 0x4070ec20, 0x485b: 0x4070ee20, + 0x485c: 0x4070f020, + 0x4860: 0x4070f220, 0x4861: 0x4070f420, 0x4862: 0x4070f620, 0x4863: 0x4070f820, + 0x4864: 0x4070fa20, 0x4865: 0x4070fc20, 0x4866: 0x4070fe20, 0x4867: 0x40710020, + 0x4868: 0x40710220, 0x4869: 0x40710420, 0x486a: 0x40710620, 0x486b: 0x40710820, + 0x486c: 0x40710a20, 0x486d: 0x40710c20, 0x486e: 0x40710e20, 0x486f: 0x40711020, + 0x4870: 0x40711220, 0x4871: 0x40711420, 0x4872: 0x40711620, 0x4873: 0x40711820, + 0x4874: 0x40711a20, 0x4875: 0x40711c20, 0x4876: 0x40711e20, 0x4877: 0x40712020, + 0x4878: 0x40712220, 0x4879: 0x40712420, 0x487a: 0x40712620, 0x487b: 0x40712820, + 0x487c: 0x40712a20, 0x487d: 0x40712c20, 0x487e: 0x40712e20, 0x487f: 0x40713020, + // Block 0x122, offset 0x4880 + 0x4880: 0x40713220, 0x4881: 0x40713420, 0x4882: 0x40713620, 0x4883: 0x40713820, + 0x4884: 0x40713a20, 0x4885: 0x40713c20, 0x4886: 0x40713e20, 0x4887: 0x40714020, + 0x4888: 0x40714220, 0x4889: 0x40714420, 0x488a: 0x40714620, 0x488b: 0x40714820, + 0x488c: 0x40714a20, 0x488d: 0x40714c20, 0x488e: 0x40714e20, 0x488f: 0x40715020, + 0x4890: 0x40715220, + // Block 0x123, offset 0x48c0 + 0x48c0: 0x40718820, 0x48c1: 0x40718a20, 0x48c2: 0x40718c20, 0x48c3: 0x40718e20, + 0x48c4: 0x40719020, 0x48c5: 0x40719220, 0x48c6: 0x40719420, 0x48c7: 0x40719620, + 0x48c8: 0x40719820, 0x48c9: 0x40719a20, 0x48ca: 0x40719c20, 0x48cb: 0x40719e20, + 0x48cc: 0x4071a020, 0x48cd: 0x4071a220, 0x48ce: 0x4071a420, 0x48cf: 0x4071a620, + 0x48d0: 0x4071a820, 0x48d1: 0x4071aa20, 0x48d2: 0x4071ac20, 0x48d3: 0x4071ae20, + 0x48d4: 0x4071b020, 0x48d5: 0x4071b220, 0x48d6: 0x4071b420, 0x48d7: 0x4071b620, + 0x48d8: 0x4071b820, 0x48d9: 0x4071ba20, 0x48da: 0x4071bc20, 0x48db: 0x4071be20, + 0x48dc: 0x4071c020, 0x48dd: 0x4071c220, 0x48de: 0x4071c420, + 0x48e0: 0xe0000279, 0x48e1: 0xe000060d, 0x48e2: 0x4028b620, 0x48e3: 0x4028b820, + 0x48f0: 0x4071c620, 0x48f1: 0x4071c820, 0x48f2: 0x4071ca20, 0x48f3: 0x4071cc20, + 0x48f4: 0x4071ce20, 0x48f5: 0x4071d020, 0x48f6: 0x4071d220, 0x48f7: 0x4071d420, + 0x48f8: 0x4071d620, 0x48f9: 0x4071d820, 0x48fa: 0x4071da20, 0x48fb: 0x4071dc20, + 0x48fc: 0x4071de20, 0x48fd: 0x4071e020, 0x48fe: 0x4071e220, 0x48ff: 0x4071e420, + // Block 0x124, offset 0x4900 + 0x4900: 0x4071e620, 0x4901: 0x4071e820, 0x4902: 0x4071ea20, 0x4903: 0x4071ec20, + 0x4904: 0x4071ee20, 0x4905: 0x4071f020, 0x4906: 0x4071f220, 0x4907: 0x4071f420, + 0x4908: 0x4071f620, 0x4909: 0x4071f820, 0x490a: 0x4071fa20, + // Block 0x125, offset 0x4940 + 0x4940: 0x40765020, 0x4941: 0x40765220, 0x4942: 0x40765420, 0x4943: 0x40765620, + 0x4944: 0x40765820, 0x4945: 0x40765a20, 0x4946: 0x40765c20, 0x4947: 0x40765e20, + 0x4948: 0x40766020, 0x4949: 0x40766220, 0x494a: 0x40766420, 0x494b: 0x40766620, + 0x494c: 0x40766820, 0x494d: 0x40766a20, 0x494e: 0x40766c20, 0x494f: 0x40766e20, + 0x4950: 0x40767020, 0x4951: 0x40767220, 0x4952: 0x40767420, 0x4953: 0x40767620, + 0x4954: 0x40767820, 0x4955: 0x40767a20, 0x4956: 0x40767c20, 0x4957: 0x40767e20, + 0x4958: 0x40768020, 0x4959: 0x40768220, 0x495a: 0x40768420, 0x495b: 0x40768620, + 0x495c: 0x40768820, 0x495d: 0x40768a20, 0x495f: 0x4003c420, + 0x4960: 0x40768c20, 0x4961: 0x40768e20, 0x4962: 0x40769020, 0x4963: 0x40769220, + 0x4964: 0x40769420, 0x4965: 0x40769620, 0x4966: 0x40769820, 0x4967: 0x40769a20, + 0x4968: 0x40769c20, 0x4969: 0x40769e20, 0x496a: 0x4076a020, 0x496b: 0x4076a220, + 0x496c: 0x4076a420, 0x496d: 0x4076a620, 0x496e: 0x4076a820, 0x496f: 0x4076aa20, + 0x4970: 0x4076ac20, 0x4971: 0x4076ae20, 0x4972: 0x4076b020, 0x4973: 0x4076b220, + 0x4974: 0x4076b420, 0x4975: 0x4076b620, 0x4976: 0x4076b820, 0x4977: 0x4076ba20, + 0x4978: 0x4076bc20, 0x4979: 0x4076be20, 0x497a: 0x4076c020, 0x497b: 0x4076c220, + 0x497c: 0x4076c420, 0x497d: 0x4076c620, 0x497e: 0x4076c820, 0x497f: 0x4076ca20, + // Block 0x126, offset 0x4980 + 0x4980: 0x4076cc20, 0x4981: 0x4076ce20, 0x4982: 0x4076d020, 0x4983: 0x4076d220, + 0x4988: 0x4076d420, 0x4989: 0x4076d620, 0x498a: 0x4076d820, 0x498b: 0x4076da20, + 0x498c: 0x4076dc20, 0x498d: 0x4076de20, 0x498e: 0x4076e020, 0x498f: 0x4076e220, + 0x4990: 0x4003c620, 0x4991: 0xe000027c, 0x4992: 0xe0000391, 0x4993: 0x40295a20, + 0x4994: 0x40295c20, 0x4995: 0x40295e20, + // Block 0x127, offset 0x49c0 + 0x49c0: 0x0071fc88, 0x49c1: 0x0071fe88, 0x49c2: 0x00720088, 0x49c3: 0x00720288, + 0x49c4: 0x00720488, 0x49c5: 0x00720688, 0x49c6: 0x00720888, 0x49c7: 0x00720a88, + 0x49c8: 0x00720c88, 0x49c9: 0x00720e88, 0x49ca: 0x00721088, 0x49cb: 0x00721288, + 0x49cc: 0x00721488, 0x49cd: 0x00721688, 0x49ce: 0x00721888, 0x49cf: 0x00721a88, + 0x49d0: 0x00721c88, 0x49d1: 0x00721e88, 0x49d2: 0x00722088, 0x49d3: 0x00722288, + 0x49d4: 0x00722488, 0x49d5: 0x00722688, 0x49d6: 0x00722888, 0x49d7: 0x00722a88, + 0x49d8: 0x00722c88, 0x49d9: 0x00722e88, 0x49da: 0x00723088, 0x49db: 0x00723288, + 0x49dc: 0x00723488, 0x49dd: 0x00723688, 0x49de: 0x00723888, 0x49df: 0x00723a88, + 0x49e0: 0x00723c88, 0x49e1: 0x00723e88, 0x49e2: 0x00724088, 0x49e3: 0x00724288, + 0x49e4: 0x00724488, 0x49e5: 0x00724688, 0x49e6: 0x00724888, 0x49e7: 0x00724a88, + 0x49e8: 0x4071fc20, 0x49e9: 0x4071fe20, 0x49ea: 0x40720020, 0x49eb: 0x40720220, + 0x49ec: 0x40720420, 0x49ed: 0x40720620, 0x49ee: 0x40720820, 0x49ef: 0x40720a20, + 0x49f0: 0x40720c20, 0x49f1: 0x40720e20, 0x49f2: 0x40721020, 0x49f3: 0x40721220, + 0x49f4: 0x40721420, 0x49f5: 0x40721620, 0x49f6: 0x40721820, 0x49f7: 0x40721a20, + 0x49f8: 0x40721c20, 0x49f9: 0x40721e20, 0x49fa: 0x40722020, 0x49fb: 0x40722220, + 0x49fc: 0x40722420, 0x49fd: 0x40722620, 0x49fe: 0x40722820, 0x49ff: 0x40722a20, + // Block 0x128, offset 0x4a00 + 0x4a00: 0x40722c20, 0x4a01: 0x40722e20, 0x4a02: 0x40723020, 0x4a03: 0x40723220, + 0x4a04: 0x40723420, 0x4a05: 0x40723620, 0x4a06: 0x40723820, 0x4a07: 0x40723a20, + 0x4a08: 0x40723c20, 0x4a09: 0x40723e20, 0x4a0a: 0x40724020, 0x4a0b: 0x40724220, + 0x4a0c: 0x40724420, 0x4a0d: 0x40724620, 0x4a0e: 0x40724820, 0x4a0f: 0x40724a20, + 0x4a10: 0x40724c20, 0x4a11: 0x40724e20, 0x4a12: 0x40725020, 0x4a13: 0x40725220, + 0x4a14: 0x40725420, 0x4a15: 0x40725620, 0x4a16: 0x40725820, 0x4a17: 0x40725a20, + 0x4a18: 0x40725c20, 0x4a19: 0x40725e20, 0x4a1a: 0x40726020, 0x4a1b: 0x40726220, + 0x4a1c: 0x40726420, 0x4a1d: 0x40726620, 0x4a1e: 0x40726820, 0x4a1f: 0x40726a20, + 0x4a20: 0x40726c20, 0x4a21: 0x40726e20, 0x4a22: 0x40727020, 0x4a23: 0x40727220, + 0x4a24: 0x40727420, 0x4a25: 0x40727620, 0x4a26: 0x40727820, 0x4a27: 0x40727a20, + 0x4a28: 0x40727c20, 0x4a29: 0x40727e20, 0x4a2a: 0x40728020, 0x4a2b: 0x40728220, + 0x4a2c: 0x40728420, 0x4a2d: 0x40728620, 0x4a2e: 0x40728820, 0x4a2f: 0x40728a20, + 0x4a30: 0x40728c20, 0x4a31: 0x40728e20, 0x4a32: 0x40729020, 0x4a33: 0x40729220, + 0x4a34: 0x40729420, 0x4a35: 0x40729620, 0x4a36: 0x40729820, 0x4a37: 0x40729a20, + 0x4a38: 0x40729c20, 0x4a39: 0x40729e20, 0x4a3a: 0x4072a020, 0x4a3b: 0x4072a220, + 0x4a3c: 0x4072a420, 0x4a3d: 0x4072a620, 0x4a3e: 0x4072a820, 0x4a3f: 0x4072aa20, + // Block 0x129, offset 0x4a40 + 0x4a40: 0x4072ac20, 0x4a41: 0x4072ae20, 0x4a42: 0x4072b020, 0x4a43: 0x4072b220, + 0x4a44: 0x4072b420, 0x4a45: 0x4072b620, 0x4a46: 0x4072b820, 0x4a47: 0x4072ba20, + 0x4a48: 0x4072bc20, 0x4a49: 0x4072be20, 0x4a4a: 0x4072c020, 0x4a4b: 0x4072c220, + 0x4a4c: 0x4072c420, 0x4a4d: 0x4072c620, 0x4a4e: 0x4072c820, 0x4a4f: 0x4072ca20, + 0x4a50: 0x4072cc20, 0x4a51: 0x4072ce20, 0x4a52: 0x4072d020, 0x4a53: 0x4072d220, + 0x4a54: 0x4072d420, 0x4a55: 0x4072d620, 0x4a56: 0x4072d820, 0x4a57: 0x4072da20, + 0x4a58: 0x4072dc20, 0x4a59: 0x4072de20, 0x4a5a: 0x4072e020, 0x4a5b: 0x4072e220, + 0x4a5c: 0x4072e420, 0x4a5d: 0x4072e620, + 0x4a60: 0xe0000167, 0x4a61: 0xe00001f5, 0x4a62: 0xe0000310, 0x4a63: 0xe00003ea, + 0x4a64: 0xe00004c5, 0x4a65: 0xe000058f, 0x4a66: 0xe000065a, 0x4a67: 0xe0000702, + 0x4a68: 0xe00007ae, 0x4a69: 0xe0000853, + // Block 0x12a, offset 0x4a80 + 0x4a80: 0x4074c020, 0x4a81: 0x4074c220, 0x4a82: 0x4074c420, 0x4a83: 0x4074c620, + 0x4a84: 0x4074c820, 0x4a85: 0x4074ca20, + 0x4a88: 0x4074cc20, 0x4a8a: 0x4074ce20, 0x4a8b: 0x4074d020, + 0x4a8c: 0x4074d220, 0x4a8d: 0x4074d420, 0x4a8e: 0x4074d620, 0x4a8f: 0x4074d820, + 0x4a90: 0x4074da20, 0x4a91: 0x4074dc20, 0x4a92: 0x4074de20, 0x4a93: 0x4074e020, + 0x4a94: 0x4074e220, 0x4a95: 0x4074e420, 0x4a96: 0x4074e620, 0x4a97: 0x4074e820, + 0x4a98: 0x4074ea20, 0x4a99: 0x4074ec20, 0x4a9a: 0x4074ee20, 0x4a9b: 0x4074f020, + 0x4a9c: 0x4074f220, 0x4a9d: 0x4074f420, 0x4a9e: 0x4074f620, 0x4a9f: 0x4074f820, + 0x4aa0: 0x4074fa20, 0x4aa1: 0x4074fc20, 0x4aa2: 0x4074fe20, 0x4aa3: 0x40750020, + 0x4aa4: 0x40750220, 0x4aa5: 0x40750420, 0x4aa6: 0x40750620, 0x4aa7: 0x40750820, + 0x4aa8: 0x40750a20, 0x4aa9: 0x40750c20, 0x4aaa: 0x40750e20, 0x4aab: 0x40751020, + 0x4aac: 0x40751220, 0x4aad: 0x40751420, 0x4aae: 0x40751620, 0x4aaf: 0x40751820, + 0x4ab0: 0x40751a20, 0x4ab1: 0x40751c20, 0x4ab2: 0x40751e20, 0x4ab3: 0x40752020, + 0x4ab4: 0x40752220, 0x4ab5: 0x40752420, 0x4ab7: 0x40752620, + 0x4ab8: 0x40752820, + 0x4abc: 0x40752a20, 0x4abf: 0x40752c20, + // Block 0x12b, offset 0x4ac0 + 0x4ac0: 0x4075d220, 0x4ac1: 0x4075d420, 0x4ac2: 0x4075d620, 0x4ac3: 0x4075d820, + 0x4ac4: 0x4075da20, 0x4ac5: 0x4075dc20, 0x4ac6: 0x4075de20, 0x4ac7: 0x4075e020, + 0x4ac8: 0x4075e220, 0x4ac9: 0x4075e420, 0x4aca: 0x4075e620, 0x4acb: 0x4075e820, + 0x4acc: 0x4075ea20, 0x4acd: 0x4075ec20, 0x4ace: 0x4075ee20, 0x4acf: 0x4075f020, + 0x4ad0: 0x4075f220, 0x4ad1: 0x4075f420, 0x4ad2: 0x4075f620, 0x4ad3: 0x4075f820, + 0x4ad4: 0x4075fa20, 0x4ad5: 0x4075fc20, 0x4ad7: 0x40038620, + 0x4ad8: 0xe0000297, 0x4ad9: 0xe00003b2, 0x4ada: 0xe000048c, 0x4adb: 0x40296820, + 0x4adc: 0x40296a20, 0x4add: 0x40296c20, 0x4ade: 0x40296e20, 0x4adf: 0x40297020, + // Block 0x12c, offset 0x4b00 + 0x4b00: 0x4038bc20, 0x4b01: 0x4038be20, 0x4b02: 0x4038c020, 0x4b03: 0x4038c220, + 0x4b04: 0x4038c420, 0x4b05: 0x4038c620, 0x4b06: 0x4038c820, 0x4b07: 0x4038ca20, + 0x4b08: 0x4038cc20, 0x4b09: 0x4038ce20, 0x4b0a: 0x4038d020, 0x4b0b: 0x4038d220, + 0x4b0c: 0x4038d420, 0x4b0d: 0x4038d620, 0x4b0e: 0x4038d820, 0x4b0f: 0x4038da20, + 0x4b10: 0x4038dc20, 0x4b11: 0x4038de20, 0x4b12: 0x4038e020, 0x4b13: 0x4038e220, + 0x4b14: 0x4038e420, 0x4b15: 0x4038e620, 0x4b16: 0xe0000294, 0x4b17: 0x40296220, + 0x4b18: 0x40296420, 0x4b19: 0x40296620, 0x4b1a: 0xe00003af, 0x4b1b: 0xe0000489, + 0x4b1f: 0x4003c820, + 0x4b20: 0x40715420, 0x4b21: 0x40715620, 0x4b22: 0x40715820, 0x4b23: 0x40715a20, + 0x4b24: 0x40715c20, 0x4b25: 0x40715e20, 0x4b26: 0x40716020, 0x4b27: 0x40716220, + 0x4b28: 0x40716420, 0x4b29: 0x40716620, 0x4b2a: 0x40716820, 0x4b2b: 0x40716a20, + 0x4b2c: 0x40716c20, 0x4b2d: 0x40716e20, 0x4b2e: 0x40717020, 0x4b2f: 0x40717220, + 0x4b30: 0x40717420, 0x4b31: 0x40717620, 0x4b32: 0x40717820, 0x4b33: 0x40717a20, + 0x4b34: 0x40717c20, 0x4b35: 0x40717e20, 0x4b36: 0x40718020, 0x4b37: 0x40718220, + 0x4b38: 0x40718420, 0x4b39: 0x40718620, + 0x4b3f: 0x4003bc20, + // Block 0x12d, offset 0x4b40 + 0x4b40: 0xe00023a4, 0x4b41: 0xe00023a7, 0x4b42: 0xe00023aa, 0x4b43: 0xe00023ad, + 0x4b44: 0xe00023b0, 0x4b45: 0xe00023b3, 0x4b46: 0xe00023b6, 0x4b47: 0xe00023b9, + 0x4b48: 0xe00023bc, 0x4b49: 0xe00023bf, 0x4b4a: 0xe00023c2, 0x4b4b: 0xe00023c5, + 0x4b4c: 0xe00023c8, 0x4b4d: 0xe00023cb, 0x4b4e: 0xe00023ce, 0x4b4f: 0xe00023d1, + 0x4b50: 0xe00023d4, 0x4b51: 0xe00023d7, 0x4b52: 0xe00023da, 0x4b53: 0xe00023e0, + 0x4b54: 0xe00023e3, 0x4b55: 0xe00023e6, 0x4b56: 0xe00023e9, 0x4b57: 0xe00023ec, + 0x4b58: 0xe00023ef, 0x4b59: 0xe00023f2, 0x4b5a: 0xe00023f5, 0x4b5b: 0xe00023f8, + 0x4b5c: 0xe00023fb, 0x4b5d: 0xe00023fe, 0x4b5e: 0x40865220, 0x4b5f: 0x40865420, + 0x4b60: 0x40862020, 0x4b61: 0x40862220, 0x4b62: 0x40862420, 0x4b63: 0x40862620, + 0x4b64: 0x40862820, 0x4b65: 0x40862a20, 0x4b66: 0x40862c20, 0x4b67: 0x40862e20, + 0x4b68: 0x40863020, 0x4b69: 0x40863220, 0x4b6a: 0x40863420, 0x4b6b: 0x40863620, + 0x4b6c: 0x40863820, 0x4b6d: 0x40863a20, 0x4b6e: 0x40863c20, 0x4b6f: 0x40863e20, + 0x4b70: 0xe00023dd, 0x4b71: 0x40864020, 0x4b72: 0x40864220, 0x4b73: 0x40864420, + 0x4b74: 0x40864620, 0x4b75: 0x40864820, 0x4b76: 0x40864a20, 0x4b77: 0x40864c20, + 0x4b7e: 0x40864e20, 0x4b7f: 0x40865020, + // Block 0x12e, offset 0x4b80 + 0x4b80: 0x4048bc20, 0x4b81: 0x4048be20, 0x4b82: 0x4048c020, 0x4b83: 0x4048c220, + 0x4b85: 0x4048c420, 0x4b86: 0x4048c620, + 0x4b8c: 0x4048c820, 0x4b8d: 0xadc06002, 0x4b8e: 0xa000f302, 0x4b8f: 0xae60f402, + 0x4b90: 0x4048ca20, 0x4b91: 0x4048cc20, 0x4b92: 0x4048ce20, 0x4b93: 0x4048d020, + 0x4b95: 0x4048d220, 0x4b96: 0x4048d420, 0x4b97: 0x4048d620, + 0x4b99: 0x4048d820, 0x4b9a: 0x4048da20, 0x4b9b: 0x4048dc20, + 0x4b9c: 0x4048de20, 0x4b9d: 0x4048e020, 0x4b9e: 0x4048e220, 0x4b9f: 0x4048e420, + 0x4ba0: 0x4048e620, 0x4ba1: 0x4048e820, 0x4ba2: 0x4048ea20, 0x4ba3: 0x4048ec20, + 0x4ba4: 0x4048ee20, 0x4ba5: 0x4048f020, 0x4ba6: 0x4048f220, 0x4ba7: 0x4048f420, + 0x4ba8: 0x4048f620, 0x4ba9: 0x4048f820, 0x4baa: 0x4048fa20, 0x4bab: 0x4048fc20, + 0x4bac: 0x4048fe20, 0x4bad: 0x40490020, 0x4bae: 0x40490220, 0x4baf: 0x40490420, + 0x4bb0: 0x40490620, 0x4bb1: 0x40490820, 0x4bb2: 0x40490a20, 0x4bb3: 0x40490c20, + 0x4bb8: 0xae60fb02, 0x4bb9: 0xa010fc02, 0x4bba: 0xadc0fd02, + 0x4bbf: 0x82092487, + // Block 0x12f, offset 0x4bc0 + 0x4bc0: 0xe00002ac, 0x4bc1: 0xe00003c7, 0x4bc2: 0xe00004a1, 0x4bc3: 0xe0000573, + 0x4bc4: 0x40299820, 0x4bc5: 0x40299a20, 0x4bc6: 0x40299c20, 0x4bc7: 0x40299e20, + 0x4bd0: 0x40060620, 0x4bd1: 0x40060820, 0x4bd2: 0x40060a20, 0x4bd3: 0x40060c20, + 0x4bd4: 0x40060e20, 0x4bd5: 0x40061020, 0x4bd6: 0x40034420, 0x4bd7: 0x40034620, + 0x4bd8: 0x40061220, + 0x4be0: 0x40752e20, 0x4be1: 0x40753020, 0x4be2: 0x40753220, 0x4be3: 0x40753420, + 0x4be4: 0x40753620, 0x4be5: 0x40753820, 0x4be6: 0x40753a20, 0x4be7: 0x40753c20, + 0x4be8: 0x40753e20, 0x4be9: 0x40754020, 0x4bea: 0x40754220, 0x4beb: 0x40754420, + 0x4bec: 0x40754620, 0x4bed: 0x40754820, 0x4bee: 0x40754a20, 0x4bef: 0x40754c20, + 0x4bf0: 0x40754e20, 0x4bf1: 0x40755020, 0x4bf2: 0x40755220, 0x4bf3: 0x40755420, + 0x4bf4: 0x40755620, 0x4bf5: 0x40755820, 0x4bf6: 0x40755a20, 0x4bf7: 0x40755c20, + 0x4bf8: 0x40755e20, 0x4bf9: 0x40756020, 0x4bfa: 0x40756220, 0x4bfb: 0x40756420, + 0x4bfc: 0x40756620, 0x4bfd: 0xe0000291, 0x4bfe: 0x40296020, 0x4bff: 0x40061c20, + // Block 0x130, offset 0x4c00 + 0x4c00: 0x40756820, 0x4c01: 0x40756a20, 0x4c02: 0x40756c20, 0x4c03: 0x40756e20, + 0x4c04: 0x40757020, 0x4c05: 0x40757220, 0x4c06: 0x40757420, 0x4c07: 0x40757620, + 0x4c08: 0x40757820, 0x4c09: 0x40757a20, 0x4c0a: 0x40757c20, 0x4c0b: 0x40757e20, + 0x4c0c: 0x40758020, 0x4c0d: 0x40758220, 0x4c0e: 0x40758420, 0x4c0f: 0x40758620, + 0x4c10: 0x40758820, 0x4c11: 0x40758a20, 0x4c12: 0x40758c20, 0x4c13: 0x40758e20, + 0x4c14: 0x40759020, 0x4c15: 0x40759220, 0x4c16: 0x40759420, 0x4c17: 0x40759620, + 0x4c18: 0x40759820, 0x4c19: 0x40759a20, 0x4c1a: 0x40759c20, 0x4c1b: 0x40759e20, + 0x4c1c: 0x4075a020, 0x4c1d: 0x4075a220, 0x4c1e: 0x4075a420, 0x4c1f: 0x4075a620, + 0x4c20: 0x4075a820, 0x4c21: 0x4075aa20, 0x4c22: 0x4075ac20, 0x4c23: 0x4075ae20, + 0x4c24: 0x4075b020, 0x4c25: 0x4075b220, 0x4c26: 0x4075b420, 0x4c27: 0x4075b620, + 0x4c28: 0x4075b820, 0x4c29: 0x4075ba20, 0x4c2a: 0x4075bc20, 0x4c2b: 0x4075be20, + 0x4c2c: 0x4075c020, 0x4c2d: 0x4075c220, 0x4c2e: 0xe00023a1, 0x4c2f: 0x4075c420, + 0x4c30: 0x4075c620, 0x4c31: 0x4075c820, 0x4c32: 0x4075ca20, 0x4c33: 0x4075cc20, + 0x4c34: 0x4075ce20, 0x4c35: 0x4075d020, + 0x4c39: 0x40061420, 0x4c3a: 0x40038820, 0x4c3b: 0x40038a20, + 0x4c3c: 0x40038c20, 0x4c3d: 0x40038e20, 0x4c3e: 0x40039020, 0x4c3f: 0x40039220, + // Block 0x131, offset 0x4c40 + 0x4c40: 0x4075fe20, 0x4c41: 0x40760020, 0x4c42: 0x40760220, 0x4c43: 0x40760420, + 0x4c44: 0x40760620, 0x4c45: 0x40760820, 0x4c46: 0x40760a20, 0x4c47: 0x40760c20, + 0x4c48: 0x40760e20, 0x4c49: 0x40761020, 0x4c4a: 0x40761220, 0x4c4b: 0x40761420, + 0x4c4c: 0x40761620, 0x4c4d: 0x40761820, 0x4c4e: 0x40761a20, 0x4c4f: 0x40761c20, + 0x4c50: 0x40761e20, 0x4c51: 0x40762020, 0x4c52: 0x40762220, 0x4c53: 0x40762420, + 0x4c54: 0x40762620, 0x4c55: 0x40762820, + 0x4c58: 0xe000029a, 0x4c59: 0xe00003b5, 0x4c5a: 0xe000048f, 0x4c5b: 0xe0000561, + 0x4c5c: 0x40297220, 0x4c5d: 0x40297420, 0x4c5e: 0x40297620, 0x4c5f: 0x40297820, + 0x4c60: 0x40762a20, 0x4c61: 0x40762c20, 0x4c62: 0x40762e20, 0x4c63: 0x40763020, + 0x4c64: 0x40763220, 0x4c65: 0x40763420, 0x4c66: 0x40763620, 0x4c67: 0x40763820, + 0x4c68: 0x40763a20, 0x4c69: 0x40763c20, 0x4c6a: 0x40763e20, 0x4c6b: 0x40764020, + 0x4c6c: 0x40764220, 0x4c6d: 0x40764420, 0x4c6e: 0x40764620, 0x4c6f: 0x40764820, + 0x4c70: 0x40764a20, 0x4c71: 0x40764c20, 0x4c72: 0x40764e20, + 0x4c78: 0xe000029d, 0x4c79: 0xe00003b8, 0x4c7a: 0xe0000492, 0x4c7b: 0xe0000564, + 0x4c7c: 0x40297a20, 0x4c7d: 0x40297c20, 0x4c7e: 0x40297e20, 0x4c7f: 0x40298020, + // Block 0x132, offset 0x4c80 + 0x4c80: 0x405b2620, 0x4c81: 0xe00020a7, 0x4c82: 0x405b2820, 0x4c83: 0x405b2a20, + 0x4c84: 0xe00020aa, 0x4c85: 0x405b2c20, 0x4c86: 0x405b2e20, 0x4c87: 0x405b3020, + 0x4c88: 0xe00020ad, 0x4c89: 0x405b3220, 0x4c8a: 0xe00020b0, 0x4c8b: 0x405b3420, + 0x4c8c: 0xe00020b3, 0x4c8d: 0x405b3620, 0x4c8e: 0xe00020b6, 0x4c8f: 0x405b3820, + 0x4c90: 0xe00020b9, 0x4c91: 0x405b3a20, 0x4c92: 0xe00020bc, 0x4c93: 0x405b3c20, + 0x4c94: 0x405b3e20, 0x4c95: 0xe00020bf, 0x4c96: 0x405b4020, 0x4c97: 0xe00020c2, + 0x4c98: 0x405b4220, 0x4c99: 0xe00020c5, 0x4c9a: 0x405b4420, 0x4c9b: 0xe00020c8, + 0x4c9c: 0x405b4620, 0x4c9d: 0xe00020cb, 0x4c9e: 0x405b4820, 0x4c9f: 0xe00020ce, + 0x4ca0: 0x405b4a20, 0x4ca1: 0x405b4c20, 0x4ca2: 0x405b4e20, 0x4ca3: 0x405b5020, + 0x4ca4: 0x405b5220, 0x4ca5: 0xe00020d1, 0x4ca6: 0x405b5420, 0x4ca7: 0xe00020d4, + 0x4ca8: 0x405b5620, 0x4ca9: 0xe00020d7, 0x4caa: 0x405b5820, 0x4cab: 0xe00020da, + 0x4cac: 0x405b5a20, 0x4cad: 0x405b5c20, 0x4cae: 0xe00020dd, 0x4caf: 0x405b5e20, + 0x4cb0: 0x405b6020, 0x4cb1: 0x405b6220, 0x4cb2: 0x405b6420, 0x4cb3: 0xe00020e0, + 0x4cb4: 0x405b6620, 0x4cb5: 0xe00020e3, 0x4cb6: 0x405b6820, 0x4cb7: 0xe00020e6, + 0x4cb8: 0x405b6a20, 0x4cb9: 0xe00020e9, 0x4cba: 0x405b6c20, 0x4cbb: 0xe00020ec, + 0x4cbc: 0x405b6e20, 0x4cbd: 0x405b7020, 0x4cbe: 0x405b7220, 0x4cbf: 0x405b7420, + // Block 0x133, offset 0x4cc0 + 0x4cc0: 0xe00020ef, 0x4cc1: 0x405b7620, 0x4cc2: 0xe00020f2, 0x4cc3: 0x405b7820, + 0x4cc4: 0xe00020f5, 0x4cc5: 0x405b7a20, 0x4cc6: 0xe00020f8, 0x4cc7: 0x405b7c20, + 0x4cc8: 0x405b7e20, + // Block 0x134, offset 0x4d00 + 0x4d20: 0xe00001ec, 0x4d21: 0xe0000307, 0x4d22: 0xe00003e1, 0x4d23: 0xe00004bc, + 0x4d24: 0xe0000586, 0x4d25: 0xe0000651, 0x4d26: 0xe00006f9, 0x4d27: 0xe00007a5, + 0x4d28: 0xe000084a, 0x4d29: 0x40288820, 0x4d2a: 0x40288a20, 0x4d2b: 0x40288c20, + 0x4d2c: 0x40288e20, 0x4d2d: 0x40289020, 0x4d2e: 0x40289220, 0x4d2f: 0x40289420, + 0x4d30: 0x40289620, 0x4d31: 0x40289820, 0x4d32: 0x40289a20, 0x4d33: 0x40289c20, + 0x4d34: 0x40289e20, 0x4d35: 0x4028a020, 0x4d36: 0x4028a220, 0x4d37: 0x4028a420, + 0x4d38: 0x4028a620, 0x4d39: 0x4028a820, 0x4d3a: 0x4028aa20, 0x4d3b: 0x4028ac20, + 0x4d3c: 0x4028ae20, 0x4d3d: 0x4028b020, 0x4d3e: 0x4028b220, + // Block 0x135, offset 0x4d40 + 0x4d40: 0xa000f202, 0x4d41: 0xa000f302, 0x4d42: 0xa000f402, 0x4d43: 0x40489220, + 0x4d44: 0x40489420, 0x4d45: 0x40483420, 0x4d46: 0x40483620, 0x4d47: 0x40483820, + 0x4d48: 0x40483a20, 0x4d49: 0x40483c20, 0x4d4a: 0x40483e20, 0x4d4b: 0x40484020, + 0x4d4c: 0x40484220, 0x4d4d: 0x40484420, 0x4d4e: 0x40484620, 0x4d4f: 0x40484820, + 0x4d50: 0x40484a20, 0x4d51: 0x40484c20, 0x4d52: 0x40484e20, 0x4d53: 0x40485020, + 0x4d54: 0x40485220, 0x4d55: 0x40485420, 0x4d56: 0x40485620, 0x4d57: 0x40485820, + 0x4d58: 0x40485a20, 0x4d59: 0x40485c20, 0x4d5a: 0x40485e20, 0x4d5b: 0x40486020, + 0x4d5c: 0x40486220, 0x4d5d: 0x40486420, 0x4d5e: 0x40486620, 0x4d5f: 0x40486820, + 0x4d60: 0x40486a20, 0x4d61: 0x40486c20, 0x4d62: 0x40486e20, 0x4d63: 0x40487020, + 0x4d64: 0x40487220, 0x4d65: 0x40487420, 0x4d66: 0x40487620, 0x4d67: 0x40487820, + 0x4d68: 0x40487a20, 0x4d69: 0x40487c20, 0x4d6a: 0x40487e20, 0x4d6b: 0x40488020, + 0x4d6c: 0x40488220, 0x4d6d: 0x40488420, 0x4d6e: 0x40488620, 0x4d6f: 0x40488820, + 0x4d70: 0x40488a20, 0x4d71: 0x40488c20, 0x4d72: 0x40488e20, 0x4d73: 0x40489020, + 0x4d74: 0x40489620, 0x4d75: 0x40489820, 0x4d76: 0x40489a20, 0x4d77: 0x40489c20, + 0x4d78: 0x40489e20, 0x4d79: 0x4048a020, 0x4d7a: 0x4048a220, 0x4d7b: 0x4048a420, + 0x4d7c: 0x4048a620, 0x4d7d: 0x4048a820, 0x4d7e: 0x4048aa20, 0x4d7f: 0x4048ac20, + // Block 0x136, offset 0x4d80 + 0x4d80: 0x4048ae20, 0x4d81: 0x4048b020, 0x4d82: 0x4048b220, 0x4d83: 0x4048b420, + 0x4d84: 0x4048b620, 0x4d85: 0x4048b820, 0x4d86: 0x8209245d, 0x4d87: 0x40034820, + 0x4d88: 0x40034a20, 0x4d89: 0x4005fc20, 0x4d8a: 0x4005fe20, 0x4d8b: 0x40060020, + 0x4d8c: 0x40060220, 0x4d8d: 0x40060420, + 0x4d92: 0xe00002a9, 0x4d93: 0xe00003c4, + 0x4d94: 0xe000049e, 0x4d95: 0xe0000570, 0x4d96: 0xe000063a, 0x4d97: 0xe00006ea, + 0x4d98: 0xe0000792, 0x4d99: 0xe000083b, 0x4d9a: 0xe00008e6, 0x4d9b: 0x40298220, + 0x4d9c: 0x40298420, 0x4d9d: 0x40298620, 0x4d9e: 0x40298820, 0x4d9f: 0x40298a20, + 0x4da0: 0x40298c20, 0x4da1: 0x40298e20, 0x4da2: 0x40299020, 0x4da3: 0x40299220, + 0x4da4: 0x40299420, 0x4da5: 0x40299620, 0x4da6: 0xe00001df, 0x4da7: 0xe00002a6, + 0x4da8: 0xe00003c1, 0x4da9: 0xe000049b, 0x4daa: 0xe000056d, 0x4dab: 0xe0000637, + 0x4dac: 0xe00006e7, 0x4dad: 0xe000078f, 0x4dae: 0xe0000838, 0x4daf: 0xe00008e3, + // Block 0x137, offset 0x4dc0 + 0x4dc0: 0xa000f202, 0x4dc1: 0xa000f302, 0x4dc2: 0xa000f402, 0x4dc3: 0x40467e20, + 0x4dc4: 0x40468020, 0x4dc5: 0x40468220, 0x4dc6: 0x40468420, 0x4dc7: 0x40468620, + 0x4dc8: 0x40468820, 0x4dc9: 0x40468a20, 0x4dca: 0x40468c20, 0x4dcb: 0x40468e20, + 0x4dcc: 0x40469020, 0x4dcd: 0x40469220, 0x4dce: 0x40469420, 0x4dcf: 0x40469620, + 0x4dd0: 0x40469820, 0x4dd1: 0x40469a20, 0x4dd2: 0x40469c20, 0x4dd3: 0x40469e20, + 0x4dd4: 0x4046a020, 0x4dd5: 0x4046a220, 0x4dd6: 0x4046a420, 0x4dd7: 0x4046a620, + 0x4dd8: 0x4046a820, 0x4dd9: 0x4046aa20, 0x4dda: 0xe0001878, 0x4ddb: 0x4046ac20, + 0x4ddc: 0xe000187b, 0x4ddd: 0x4046ae20, 0x4dde: 0x4046b020, 0x4ddf: 0x4046b220, + 0x4de0: 0x4046b420, 0x4de1: 0x4046b620, 0x4de2: 0x4046b820, 0x4de3: 0x4046ba20, + 0x4de4: 0x4046bc20, 0x4de5: 0x4046be20, 0x4de6: 0x4046c020, 0x4de7: 0x4046c220, + 0x4de8: 0x4046c420, 0x4de9: 0x4046c620, 0x4dea: 0x4046c820, 0x4deb: 0xe000187e, + 0x4dec: 0x4046ca20, 0x4ded: 0x4046cc20, 0x4dee: 0x4046ce20, 0x4def: 0x4046d020, + 0x4df0: 0x4046d220, 0x4df1: 0x4046d420, 0x4df2: 0x4046d620, 0x4df3: 0x4046d820, + 0x4df4: 0x4046da20, 0x4df5: 0x4046dc20, 0x4df6: 0x4046de20, 0x4df7: 0x4046e020, + 0x4df8: 0x4046e220, 0x4df9: 0x82092372, 0x4dfa: 0xa070f102, 0x4dfb: 0x40061620, + 0x4dfc: 0x40061820, 0x4dfd: 0xa0000000, 0x4dfe: 0x40039420, 0x4dff: 0x40039620, + // Block 0x138, offset 0x4e00 + 0x4e00: 0x40034c20, 0x4e01: 0x40034e20, + 0x4e10: 0x4072e820, 0x4e11: 0x4072ea20, 0x4e12: 0x4072ec20, 0x4e13: 0x4072ee20, + 0x4e14: 0x4072f020, 0x4e15: 0x4072f220, 0x4e16: 0x4072f420, 0x4e17: 0x4072f620, + 0x4e18: 0x4072f820, 0x4e19: 0x4072fa20, 0x4e1a: 0x4072fc20, 0x4e1b: 0x4072fe20, + 0x4e1c: 0x40730020, 0x4e1d: 0x40730220, 0x4e1e: 0x40730420, 0x4e1f: 0x40730620, + 0x4e20: 0x40730820, 0x4e21: 0x40730a20, 0x4e22: 0x40730c20, 0x4e23: 0x40730e20, + 0x4e24: 0x40731020, 0x4e25: 0x40731220, 0x4e26: 0x40731420, 0x4e27: 0x40731620, + 0x4e28: 0x40731820, + 0x4e30: 0xe00001d0, 0x4e31: 0xe0000264, 0x4e32: 0xe000037c, 0x4e33: 0xe0000456, + 0x4e34: 0xe000052b, 0x4e35: 0xe00005f5, 0x4e36: 0xe00006c0, 0x4e37: 0xe0000768, + 0x4e38: 0xe0000814, 0x4e39: 0xe00008b9, + // Block 0x139, offset 0x4e40 + 0x4e40: 0xae60f202, 0x4e41: 0xae60f302, 0x4e42: 0xae60f402, 0x4e43: 0x404f4020, + 0x4e44: 0x404f4220, 0x4e45: 0x404f4420, 0x4e46: 0x404f4620, 0x4e47: 0x404f4820, + 0x4e48: 0x404f4a20, 0x4e49: 0x404f4c20, 0x4e4a: 0x404f4e20, 0x4e4b: 0x404f5020, + 0x4e4c: 0x404f5220, 0x4e4d: 0x404f5420, 0x4e4e: 0x404f5620, 0x4e4f: 0x404f5820, + 0x4e50: 0x404f5a20, 0x4e51: 0x404f5c20, 0x4e52: 0x404f5e20, 0x4e53: 0x404f6020, + 0x4e54: 0x404f6220, 0x4e55: 0x404f6420, 0x4e56: 0x404f6620, 0x4e57: 0x404f6820, + 0x4e58: 0x404f6a20, 0x4e59: 0x404f6c20, 0x4e5a: 0x404f6e20, 0x4e5b: 0x404f7020, + 0x4e5c: 0x404f7220, 0x4e5d: 0x404f7420, 0x4e5e: 0x404f7620, 0x4e5f: 0x404f7820, + 0x4e60: 0x404f7a20, 0x4e61: 0x404f7c20, 0x4e62: 0x404f7e20, 0x4e63: 0x404f8020, + 0x4e64: 0x404f8220, 0x4e65: 0x404f8420, 0x4e66: 0x404f8620, 0x4e67: 0x404f8820, + 0x4e68: 0x404f8a20, 0x4e69: 0x404f8c20, 0x4e6a: 0x404f8e20, 0x4e6b: 0x404f9020, + 0x4e6c: 0x404f9220, 0x4e6d: 0x404f9420, 0x4e6e: 0x404f9620, 0x4e6f: 0x404f9820, + 0x4e70: 0x404f9a20, 0x4e71: 0xc31507e1, 0x4e72: 0xc31707e1, 0x4e73: 0x820927d0, + 0x4e74: 0x820927d1, 0x4e76: 0xe00001b2, 0x4e77: 0xe0000246, + 0x4e78: 0xe000035e, 0x4e79: 0xe0000438, 0x4e7a: 0xe000050d, 0x4e7b: 0xe00005d7, + 0x4e7c: 0xe00006a2, 0x4e7d: 0xe000074a, 0x4e7e: 0xe00007f6, 0x4e7f: 0xe000089b, + // Block 0x13a, offset 0x4e80 + 0x4e80: 0x40039820, 0x4e81: 0x40035020, 0x4e82: 0x40035220, 0x4e83: 0x4002de20, + // Block 0x13b, offset 0x4ec0 + 0x4ec0: 0xa000f202, 0x4ec1: 0xa000f302, 0x4ec2: 0xa000f402, 0x4ec3: 0x4046e820, + 0x4ec4: 0x4046ea20, 0x4ec5: 0x4046ec20, 0x4ec6: 0x4046ee20, 0x4ec7: 0x4046f020, + 0x4ec8: 0x4046f220, 0x4ec9: 0x4046f420, 0x4eca: 0x4046f620, 0x4ecb: 0x4046f820, + 0x4ecc: 0x4046fa20, 0x4ecd: 0x4046fc20, 0x4ece: 0x4046fe20, 0x4ecf: 0x40470020, + 0x4ed0: 0x40470220, 0x4ed1: 0x40470420, 0x4ed2: 0x40470620, 0x4ed3: 0x40470820, + 0x4ed4: 0x40470a20, 0x4ed5: 0x40470c20, 0x4ed6: 0x40470e20, 0x4ed7: 0x40471020, + 0x4ed8: 0x40471220, 0x4ed9: 0x40471420, 0x4eda: 0x40471620, 0x4edb: 0x40471820, + 0x4edc: 0x40471a20, 0x4edd: 0x40471c20, 0x4ede: 0x40471e20, 0x4edf: 0x40472020, + 0x4ee0: 0x40472220, 0x4ee1: 0x40472420, 0x4ee2: 0x40472620, 0x4ee3: 0x40472820, + 0x4ee4: 0x40472a20, 0x4ee5: 0x40472c20, 0x4ee6: 0x40472e20, 0x4ee7: 0x40473020, + 0x4ee8: 0x40473220, 0x4ee9: 0x40473420, 0x4eea: 0x40473620, 0x4eeb: 0x40473820, + 0x4eec: 0x40473a20, 0x4eed: 0x40473c20, 0x4eee: 0x40473e20, 0x4eef: 0x40474020, + 0x4ef0: 0x40474220, 0x4ef1: 0x40474420, 0x4ef2: 0x40474620, 0x4ef3: 0x40474820, + 0x4ef4: 0x40474a20, 0x4ef5: 0x40474c20, 0x4ef6: 0x40474e20, 0x4ef7: 0x40475020, + 0x4ef8: 0x40475220, 0x4ef9: 0x40475420, 0x4efa: 0x40475620, 0x4efb: 0x40475820, + 0x4efc: 0x40475a20, 0x4efd: 0x40475c20, 0x4efe: 0x40475e20, 0x4eff: 0x40476020, + // Block 0x13c, offset 0x4f00 + 0x4f00: 0x820923b1, 0x4f01: 0x40476420, 0x4f02: 0x40476620, 0x4f03: 0x40476820, + 0x4f04: 0x4046e620, 0x4f05: 0x40035420, 0x4f06: 0x40035620, 0x4f07: 0x40061a20, + 0x4f08: 0x40039a20, + 0x4f10: 0xe00001d9, 0x4f11: 0xe00002a0, 0x4f12: 0xe00003bb, 0x4f13: 0xe0000495, + 0x4f14: 0xe0000567, 0x4f15: 0xe0000631, 0x4f16: 0xe00006e1, 0x4f17: 0xe0000789, + 0x4f18: 0xe0000832, 0x4f19: 0xe00008dd, + // Block 0x13d, offset 0x4f40 + 0x4f40: 0x40476a20, 0x4f41: 0x40476c20, 0x4f42: 0x40476e20, 0x4f43: 0x40477020, + 0x4f44: 0x40477220, 0x4f45: 0x40477420, 0x4f46: 0x40477620, 0x4f47: 0x40477820, + 0x4f48: 0x40477a20, 0x4f49: 0x40477c20, 0x4f4a: 0x40478420, 0x4f4b: 0x40478620, + 0x4f4c: 0x40478820, 0x4f4d: 0x40478a20, 0x4f4e: 0x40478c20, 0x4f4f: 0x40478e20, + 0x4f50: 0x40479020, 0x4f51: 0x40479220, 0x4f52: 0x40479420, 0x4f53: 0x40479620, + 0x4f54: 0x40479820, 0x4f55: 0x40479a20, 0x4f56: 0x40479c20, 0x4f57: 0x40479e20, + 0x4f58: 0x4047a020, 0x4f59: 0x4047a220, 0x4f5a: 0x4047a420, 0x4f5b: 0x4047a620, + 0x4f5c: 0x4047a820, 0x4f5d: 0x4047aa20, 0x4f5e: 0x4047ac20, 0x4f5f: 0x4047ae20, + 0x4f60: 0x4047b020, 0x4f61: 0x4047b220, 0x4f62: 0x4047b420, 0x4f63: 0x4047b620, + 0x4f64: 0x4047b820, 0x4f65: 0x4047ba20, 0x4f66: 0x4047bc20, 0x4f67: 0x40478020, + 0x4f68: 0x40477e20, 0x4f69: 0x40478220, 0x4f6a: 0x4047be20, 0x4f6b: 0xa000f302, + 0x4f6c: 0xa000f402, 0x4f6d: 0x4047c020, 0x4f6e: 0x4047c220, 0x4f6f: 0x4047c420, + 0x4f70: 0x4047c620, 0x4f71: 0x4047c820, 0x4f72: 0x4047ca20, 0x4f73: 0x4047cc20, + 0x4f74: 0x4047ce20, 0x4f75: 0x4047d020, 0x4f76: 0x820923e9, 0x4f77: 0xa070f102, + // Block 0x13e, offset 0x4f80 + 0x4f80: 0xe00001dc, 0x4f81: 0xe00002a3, 0x4f82: 0xe00003be, 0x4f83: 0xe0000498, + 0x4f84: 0xe000056a, 0x4f85: 0xe0000634, 0x4f86: 0xe00006e4, 0x4f87: 0xe000078c, + 0x4f88: 0xe0000835, 0x4f89: 0xe00008e0, + // Block 0x13f, offset 0x4fc0 + 0x4fc0: 0x4076e420, 0x4fc1: 0x4076e620, 0x4fc2: 0x4076e820, 0x4fc3: 0x4076ea20, + 0x4fc4: 0x4076ec20, 0x4fc5: 0x4076ee20, 0x4fc6: 0x4076f020, 0x4fc7: 0x4076f220, + 0x4fc8: 0x4076f420, 0x4fc9: 0x4076f620, 0x4fca: 0x4076f820, 0x4fcb: 0x4076fa20, + 0x4fcc: 0x4076fc20, 0x4fcd: 0x4076fe20, 0x4fce: 0x40770020, 0x4fcf: 0x40770220, + 0x4fd0: 0x40770420, 0x4fd1: 0x40770620, 0x4fd2: 0x40770820, 0x4fd3: 0x40770a20, + 0x4fd4: 0x40770c20, 0x4fd5: 0x40770e20, 0x4fd6: 0x40771020, 0x4fd7: 0x40771220, + 0x4fd8: 0x40771420, 0x4fd9: 0x40771620, 0x4fda: 0x40771820, 0x4fdb: 0x40771a20, + 0x4fdc: 0x40771c20, 0x4fdd: 0x40771e20, 0x4fde: 0x40772020, 0x4fdf: 0x40772220, + 0x4fe0: 0x40772420, 0x4fe1: 0x40772620, 0x4fe2: 0x40772820, 0x4fe3: 0x40772a20, + 0x4fe4: 0x40772c20, 0x4fe5: 0x40772e20, 0x4fe6: 0x40773020, 0x4fe7: 0x40773220, + 0x4fe8: 0x40773420, 0x4fe9: 0x40773620, 0x4fea: 0x40773820, 0x4feb: 0x40773a20, + 0x4fec: 0x40773c20, 0x4fed: 0x40773e20, 0x4fee: 0x40774020, 0x4fef: 0x40774220, + 0x4ff0: 0x40774420, 0x4ff1: 0x40774620, 0x4ff2: 0x40774820, 0x4ff3: 0x40774a20, + 0x4ff4: 0x40774c20, 0x4ff5: 0x40774e20, 0x4ff6: 0x40775020, 0x4ff7: 0x40775220, + 0x4ff8: 0x40775420, 0x4ff9: 0x40775620, 0x4ffa: 0x40775820, 0x4ffb: 0x40775a20, + 0x4ffc: 0x40775c20, 0x4ffd: 0x40775e20, 0x4ffe: 0x40776020, 0x4fff: 0x40776220, + // Block 0x140, offset 0x5000 + 0x5000: 0x40776420, 0x5001: 0x40776620, 0x5002: 0x40776820, 0x5003: 0x40776a20, + 0x5004: 0x40776c20, 0x5005: 0x40776e20, 0x5006: 0x40777020, 0x5007: 0x40777220, + 0x5008: 0x40777420, 0x5009: 0x40777620, 0x500a: 0x40777820, 0x500b: 0x40777a20, + 0x500c: 0x40777c20, 0x500d: 0x40777e20, 0x500e: 0x40778020, 0x500f: 0x40778220, + 0x5010: 0x40778420, 0x5011: 0x40778620, 0x5012: 0x40778820, 0x5013: 0x40778a20, + 0x5014: 0x40778c20, 0x5015: 0x40778e20, 0x5016: 0x40779020, 0x5017: 0x40779220, + 0x5018: 0x40779420, 0x5019: 0x40779620, 0x501a: 0x40779820, 0x501b: 0x40779a20, + 0x501c: 0x40779c20, 0x501d: 0x40779e20, 0x501e: 0x4077a020, 0x501f: 0x4077a220, + 0x5020: 0x4077a420, 0x5021: 0x4077a620, 0x5022: 0x4077a820, 0x5023: 0x4077aa20, + 0x5024: 0x4077ac20, 0x5025: 0x4077ae20, 0x5026: 0x4077b020, 0x5027: 0x4077b220, + 0x5028: 0x4077b420, 0x5029: 0x4077b620, 0x502a: 0x4077b820, 0x502b: 0x4077ba20, + 0x502c: 0x4077bc20, 0x502d: 0x4077be20, 0x502e: 0x4077c020, 0x502f: 0x4077c220, + 0x5030: 0x4077c420, 0x5031: 0x4077c620, 0x5032: 0x4077c820, 0x5033: 0x4077ca20, + 0x5034: 0x4077cc20, 0x5035: 0x4077ce20, 0x5036: 0x4077d020, 0x5037: 0x4077d220, + 0x5038: 0x4077d420, 0x5039: 0x4077d620, 0x503a: 0x4077d820, 0x503b: 0x4077da20, + 0x503c: 0x4077dc20, 0x503d: 0x4077de20, 0x503e: 0x4077e020, 0x503f: 0x4077e220, + // Block 0x141, offset 0x5040 + 0x5040: 0x4077e420, 0x5041: 0x4077e620, 0x5042: 0x4077e820, 0x5043: 0x4077ea20, + 0x5044: 0x4077ec20, 0x5045: 0x4077ee20, 0x5046: 0x4077f020, 0x5047: 0x4077f220, + 0x5048: 0x4077f420, 0x5049: 0x4077f620, 0x504a: 0x4077f820, 0x504b: 0x4077fa20, + 0x504c: 0x4077fc20, 0x504d: 0x4077fe20, 0x504e: 0x40780020, 0x504f: 0x40780220, + 0x5050: 0x40780420, 0x5051: 0x40780620, 0x5052: 0x40780820, 0x5053: 0x40780a20, + 0x5054: 0x40780c20, 0x5055: 0x40780e20, 0x5056: 0x40781020, 0x5057: 0x40781220, + 0x5058: 0x40781420, 0x5059: 0x40781620, 0x505a: 0x40781820, 0x505b: 0x40781a20, + 0x505c: 0x40781c20, 0x505d: 0x40781e20, 0x505e: 0x40782020, 0x505f: 0x40782220, + 0x5060: 0x40782420, 0x5061: 0x40782620, 0x5062: 0x40782820, 0x5063: 0x40782a20, + 0x5064: 0x40782c20, 0x5065: 0x40782e20, 0x5066: 0x40783020, 0x5067: 0x40783220, + 0x5068: 0x40783420, 0x5069: 0x40783620, 0x506a: 0x40783820, 0x506b: 0x40783a20, + 0x506c: 0x40783c20, 0x506d: 0x40783e20, 0x506e: 0x40784020, 0x506f: 0x40784220, + 0x5070: 0x40784420, 0x5071: 0x40784620, 0x5072: 0x40784820, 0x5073: 0x40784a20, + 0x5074: 0x40784c20, 0x5075: 0x40784e20, 0x5076: 0x40785020, 0x5077: 0x40785220, + 0x5078: 0x40785420, 0x5079: 0x40785620, 0x507a: 0x40785820, 0x507b: 0x40785a20, + 0x507c: 0x40785c20, 0x507d: 0x40785e20, 0x507e: 0x40786020, 0x507f: 0x40786220, + // Block 0x142, offset 0x5080 + 0x5080: 0x40786420, 0x5081: 0x40786620, 0x5082: 0x40786820, 0x5083: 0x40786a20, + 0x5084: 0x40786c20, 0x5085: 0x40786e20, 0x5086: 0x40787020, 0x5087: 0x40787220, + 0x5088: 0x40787420, 0x5089: 0x40787620, 0x508a: 0x40787820, 0x508b: 0x40787a20, + 0x508c: 0x40787c20, 0x508d: 0x40787e20, 0x508e: 0x40788020, 0x508f: 0x40788220, + 0x5090: 0x40788420, 0x5091: 0x40788620, 0x5092: 0x40788820, 0x5093: 0x40788a20, + 0x5094: 0x40788c20, 0x5095: 0x40788e20, 0x5096: 0x40789020, 0x5097: 0x40789220, + 0x5098: 0x40789420, 0x5099: 0x40789620, 0x509a: 0x40789820, 0x509b: 0x40789a20, + 0x509c: 0x40789c20, 0x509d: 0x40789e20, 0x509e: 0x4078a020, 0x509f: 0x4078a220, + 0x50a0: 0x4078a420, 0x50a1: 0x4078a620, 0x50a2: 0x4078a820, 0x50a3: 0x4078aa20, + 0x50a4: 0x4078ac20, 0x50a5: 0x4078ae20, 0x50a6: 0x4078b020, 0x50a7: 0x4078b220, + 0x50a8: 0x4078b420, 0x50a9: 0x4078b620, 0x50aa: 0x4078b820, 0x50ab: 0x4078ba20, + 0x50ac: 0x4078bc20, 0x50ad: 0x4078be20, 0x50ae: 0x4078c020, 0x50af: 0x4078c220, + 0x50b0: 0x4078c420, 0x50b1: 0x4078c620, 0x50b2: 0x4078c820, 0x50b3: 0x4078ca20, + 0x50b4: 0x4078cc20, 0x50b5: 0x4078ce20, 0x50b6: 0x4078d020, 0x50b7: 0x4078d220, + 0x50b8: 0x4078d420, 0x50b9: 0x4078d620, 0x50ba: 0x4078d820, 0x50bb: 0x4078da20, + 0x50bc: 0x4078dc20, 0x50bd: 0x4078de20, 0x50be: 0x4078e020, 0x50bf: 0x4078e220, + // Block 0x143, offset 0x50c0 + 0x50c0: 0x4078e420, 0x50c1: 0x4078e620, 0x50c2: 0x4078e820, 0x50c3: 0x4078ea20, + 0x50c4: 0x4078ec20, 0x50c5: 0x4078ee20, 0x50c6: 0x4078f020, 0x50c7: 0x4078f220, + 0x50c8: 0x4078f420, 0x50c9: 0x4078f620, 0x50ca: 0x4078f820, 0x50cb: 0x4078fa20, + 0x50cc: 0x4078fc20, 0x50cd: 0x4078fe20, 0x50ce: 0x40790020, 0x50cf: 0x40790220, + 0x50d0: 0x40790420, 0x50d1: 0x40790620, 0x50d2: 0x40790820, 0x50d3: 0x40790a20, + 0x50d4: 0x40790c20, 0x50d5: 0x40790e20, 0x50d6: 0x40791020, 0x50d7: 0x40791220, + 0x50d8: 0x40791420, 0x50d9: 0x40791620, 0x50da: 0x40791820, 0x50db: 0x40791a20, + 0x50dc: 0x40791c20, 0x50dd: 0x40791e20, 0x50de: 0x40792020, 0x50df: 0x40792220, + 0x50e0: 0x40792420, 0x50e1: 0x40792620, 0x50e2: 0x40792820, 0x50e3: 0x40792a20, + 0x50e4: 0x40792c20, 0x50e5: 0x40792e20, 0x50e6: 0x40793020, 0x50e7: 0x40793220, + 0x50e8: 0x40793420, 0x50e9: 0x40793620, 0x50ea: 0x40793820, 0x50eb: 0x40793a20, + 0x50ec: 0x40793c20, 0x50ed: 0x40793e20, 0x50ee: 0x40794020, 0x50ef: 0x40794220, + 0x50f0: 0x40794420, 0x50f1: 0x40794620, 0x50f2: 0x40794820, 0x50f3: 0x40794a20, + 0x50f4: 0x40794c20, 0x50f5: 0x40794e20, 0x50f6: 0x40795020, 0x50f7: 0x40795220, + 0x50f8: 0x40795420, 0x50f9: 0x40795620, 0x50fa: 0x40795820, 0x50fb: 0x40795a20, + 0x50fc: 0x40795c20, 0x50fd: 0x40795e20, 0x50fe: 0x40796020, 0x50ff: 0x40796220, + // Block 0x144, offset 0x5100 + 0x5100: 0x40796420, 0x5101: 0x40796620, 0x5102: 0x40796820, 0x5103: 0x40796a20, + 0x5104: 0x40796c20, 0x5105: 0x40796e20, 0x5106: 0x40797020, 0x5107: 0x40797220, + 0x5108: 0x40797420, 0x5109: 0x40797620, 0x510a: 0x40797820, 0x510b: 0x40797a20, + 0x510c: 0x40797c20, 0x510d: 0x40797e20, 0x510e: 0x40798020, 0x510f: 0x40798220, + 0x5110: 0x40798420, 0x5111: 0x40798620, 0x5112: 0x40798820, 0x5113: 0x40798a20, + 0x5114: 0x40798c20, 0x5115: 0x40798e20, 0x5116: 0x40799020, 0x5117: 0x40799220, + 0x5118: 0x40799420, 0x5119: 0x40799620, 0x511a: 0x40799820, 0x511b: 0x40799a20, + 0x511c: 0x40799c20, 0x511d: 0x40799e20, 0x511e: 0x4079a020, 0x511f: 0x4079a220, + 0x5120: 0x4079a420, 0x5121: 0x4079a620, 0x5122: 0x4079a820, 0x5123: 0x4079aa20, + 0x5124: 0x4079ac20, 0x5125: 0x4079ae20, 0x5126: 0x4079b020, 0x5127: 0x4079b220, + 0x5128: 0x4079b420, 0x5129: 0x4079b620, 0x512a: 0x4079b820, 0x512b: 0x4079ba20, + 0x512c: 0x4079bc20, 0x512d: 0x4079be20, 0x512e: 0x4079c020, 0x512f: 0x4079c220, + 0x5130: 0x4079c420, 0x5131: 0x4079c620, 0x5132: 0x4079c820, 0x5133: 0x4079ca20, + 0x5134: 0x4079cc20, 0x5135: 0x4079ce20, 0x5136: 0x4079d020, 0x5137: 0x4079d220, + 0x5138: 0x4079d420, 0x5139: 0x4079d620, 0x513a: 0x4079d820, 0x513b: 0x4079da20, + 0x513c: 0x4079dc20, 0x513d: 0x4079de20, 0x513e: 0x4079e020, 0x513f: 0x4079e220, + // Block 0x145, offset 0x5140 + 0x5140: 0x4079e420, 0x5141: 0x4079e620, 0x5142: 0x4079e820, 0x5143: 0x4079ea20, + 0x5144: 0x4079ec20, 0x5145: 0x4079ee20, 0x5146: 0x4079f020, 0x5147: 0x4079f220, + 0x5148: 0x4079f420, 0x5149: 0x4079f620, 0x514a: 0x4079f820, 0x514b: 0x4079fa20, + 0x514c: 0x4079fc20, 0x514d: 0x4079fe20, 0x514e: 0x407a0020, 0x514f: 0x407a0220, + 0x5150: 0x407a0420, 0x5151: 0x407a0620, 0x5152: 0x407a0820, 0x5153: 0x407a0a20, + 0x5154: 0x407a0c20, 0x5155: 0x407a0e20, 0x5156: 0x407a1020, 0x5157: 0x407a1220, + 0x5158: 0x407a1420, 0x5159: 0x407a1620, 0x515a: 0x407a1820, 0x515b: 0x407a1a20, + 0x515c: 0x407a1c20, 0x515d: 0x407a1e20, 0x515e: 0x407a2020, 0x515f: 0x407a2220, + 0x5160: 0x407a2420, 0x5161: 0x407a2620, 0x5162: 0x407a2820, 0x5163: 0x407a2a20, + 0x5164: 0x407a2c20, 0x5165: 0x407a2e20, 0x5166: 0x407a3020, 0x5167: 0x407a3220, + 0x5168: 0x407a3420, 0x5169: 0x407a3620, 0x516a: 0x407a3820, 0x516b: 0x407a3a20, + 0x516c: 0x407a3c20, 0x516d: 0x407a3e20, 0x516e: 0x407a4020, 0x516f: 0x407a4220, + 0x5170: 0x407a4420, 0x5171: 0x407a4620, 0x5172: 0x407a4820, 0x5173: 0x407a4a20, + 0x5174: 0x407a4c20, 0x5175: 0x407a4e20, 0x5176: 0x407a5020, 0x5177: 0x407a5220, + 0x5178: 0x407a5420, 0x5179: 0x407a5620, 0x517a: 0x407a5820, 0x517b: 0x407a5a20, + 0x517c: 0x407a5c20, 0x517d: 0x407a5e20, 0x517e: 0x407a6020, 0x517f: 0x407a6220, + // Block 0x146, offset 0x5180 + 0x5180: 0x407a6420, 0x5181: 0x407a6620, 0x5182: 0x407a6820, 0x5183: 0x407a6a20, + 0x5184: 0x407a6c20, 0x5185: 0x407a6e20, 0x5186: 0x407a7020, 0x5187: 0x407a7220, + 0x5188: 0x407a7420, 0x5189: 0x407a7620, 0x518a: 0x407a7820, 0x518b: 0x407a7a20, + 0x518c: 0x407a7c20, 0x518d: 0x407a7e20, 0x518e: 0x407a8020, 0x518f: 0x407a8220, + 0x5190: 0x407a8420, 0x5191: 0x407a8620, 0x5192: 0x407a8820, 0x5193: 0x407a8a20, + 0x5194: 0x407a8c20, 0x5195: 0x407a8e20, 0x5196: 0x407a9020, 0x5197: 0x407a9220, + 0x5198: 0x407a9420, 0x5199: 0x407a9620, 0x519a: 0x407a9820, 0x519b: 0x407a9a20, + 0x519c: 0x407a9c20, 0x519d: 0x407a9e20, 0x519e: 0x407aa020, 0x519f: 0x407aa220, + 0x51a0: 0x407aa420, 0x51a1: 0x407aa620, 0x51a2: 0x407aa820, 0x51a3: 0x407aaa20, + 0x51a4: 0x407aac20, 0x51a5: 0x407aae20, 0x51a6: 0x407ab020, 0x51a7: 0x407ab220, + 0x51a8: 0x407ab420, 0x51a9: 0x407ab620, 0x51aa: 0x407ab820, 0x51ab: 0x407aba20, + 0x51ac: 0x407abc20, 0x51ad: 0x407abe20, 0x51ae: 0x407ac020, 0x51af: 0x407ac220, + 0x51b0: 0x407ac420, 0x51b1: 0x407ac620, 0x51b2: 0x407ac820, 0x51b3: 0x407aca20, + 0x51b4: 0x407acc20, 0x51b5: 0x407ace20, 0x51b6: 0x407ad020, 0x51b7: 0x407ad220, + 0x51b8: 0x407ad420, 0x51b9: 0x407ad620, 0x51ba: 0x407ad820, 0x51bb: 0x407ada20, + 0x51bc: 0x407adc20, 0x51bd: 0x407ade20, 0x51be: 0x407ae020, 0x51bf: 0x407ae220, + // Block 0x147, offset 0x51c0 + 0x51c0: 0x407ae420, 0x51c1: 0x407ae620, 0x51c2: 0x407ae820, 0x51c3: 0x407aea20, + 0x51c4: 0x407aec20, 0x51c5: 0x407aee20, 0x51c6: 0x407af020, 0x51c7: 0x407af220, + 0x51c8: 0x407af420, 0x51c9: 0x407af620, 0x51ca: 0x407af820, 0x51cb: 0x407afa20, + 0x51cc: 0x407afc20, 0x51cd: 0x407afe20, 0x51ce: 0x407b0020, 0x51cf: 0x407b0220, + 0x51d0: 0x407b0420, 0x51d1: 0x407b0620, 0x51d2: 0x407b0820, 0x51d3: 0x407b0a20, + 0x51d4: 0x407b0c20, 0x51d5: 0x407b0e20, 0x51d6: 0x407b1020, 0x51d7: 0x407b1220, + 0x51d8: 0x407b1420, 0x51d9: 0x407b1620, 0x51da: 0x407b1820, 0x51db: 0x407b1a20, + 0x51dc: 0x407b1c20, 0x51dd: 0x407b1e20, 0x51de: 0x407b2020, 0x51df: 0x407b2220, + 0x51e0: 0x407b2420, 0x51e1: 0x407b2620, 0x51e2: 0x407b2820, 0x51e3: 0x407b2a20, + 0x51e4: 0x407b2c20, 0x51e5: 0x407b2e20, 0x51e6: 0x407b3020, 0x51e7: 0x407b3220, + 0x51e8: 0x407b3420, 0x51e9: 0x407b3620, 0x51ea: 0x407b3820, 0x51eb: 0x407b3a20, + 0x51ec: 0x407b3c20, 0x51ed: 0x407b3e20, 0x51ee: 0x407b4020, 0x51ef: 0x407b4220, + 0x51f0: 0x407b4420, 0x51f1: 0x407b4620, 0x51f2: 0x407b4820, 0x51f3: 0x407b4a20, + 0x51f4: 0x407b4c20, 0x51f5: 0x407b4e20, 0x51f6: 0x407b5020, 0x51f7: 0x407b5220, + 0x51f8: 0x407b5420, 0x51f9: 0x407b5620, 0x51fa: 0x407b5820, 0x51fb: 0x407b5a20, + 0x51fc: 0x407b5c20, 0x51fd: 0x407b5e20, 0x51fe: 0x407b6020, 0x51ff: 0x407b6220, + // Block 0x148, offset 0x5200 + 0x5200: 0x407b6420, 0x5201: 0x407b6620, 0x5202: 0x407b6820, 0x5203: 0x407b6a20, + 0x5204: 0x407b6c20, 0x5205: 0x407b6e20, 0x5206: 0x407b7020, 0x5207: 0x407b7220, + 0x5208: 0x407b7420, 0x5209: 0x407b7620, 0x520a: 0x407b7820, 0x520b: 0x407b7a20, + 0x520c: 0x407b7c20, 0x520d: 0x407b7e20, 0x520e: 0x407b8020, 0x520f: 0x407b8220, + 0x5210: 0x407b8420, 0x5211: 0x407b8620, 0x5212: 0x407b8820, 0x5213: 0x407b8a20, + 0x5214: 0x407b8c20, 0x5215: 0x407b8e20, 0x5216: 0x407b9020, 0x5217: 0x407b9220, + 0x5218: 0x407b9420, 0x5219: 0x407b9620, 0x521a: 0x407b9820, 0x521b: 0x407b9a20, + 0x521c: 0x407b9c20, 0x521d: 0x407b9e20, 0x521e: 0x407ba020, 0x521f: 0x407ba220, + 0x5220: 0x407ba420, 0x5221: 0x407ba620, 0x5222: 0x407ba820, 0x5223: 0x407baa20, + 0x5224: 0x407bac20, 0x5225: 0x407bae20, 0x5226: 0x407bb020, 0x5227: 0x407bb220, + 0x5228: 0x407bb420, 0x5229: 0x407bb620, 0x522a: 0x407bb820, 0x522b: 0x407bba20, + 0x522c: 0x407bbc20, 0x522d: 0x407bbe20, 0x522e: 0x407bc020, 0x522f: 0x407bc220, + 0x5230: 0x407bc420, 0x5231: 0x407bc620, 0x5232: 0x407bc820, 0x5233: 0x407bca20, + 0x5234: 0x407bcc20, 0x5235: 0x407bce20, 0x5236: 0x407bd020, 0x5237: 0x407bd220, + 0x5238: 0x407bd420, 0x5239: 0x407bd620, 0x523a: 0x407bd820, 0x523b: 0x407bda20, + 0x523c: 0x407bdc20, 0x523d: 0x407bde20, 0x523e: 0x407be020, 0x523f: 0x407be220, + // Block 0x149, offset 0x5240 + 0x5240: 0x407be420, 0x5241: 0x407be620, 0x5242: 0x407be820, 0x5243: 0x407bea20, + 0x5244: 0x407bec20, 0x5245: 0x407bee20, 0x5246: 0x407bf020, 0x5247: 0x407bf220, + 0x5248: 0x407bf420, 0x5249: 0x407bf620, 0x524a: 0x407bf820, 0x524b: 0x407bfa20, + 0x524c: 0x407bfc20, 0x524d: 0x407bfe20, 0x524e: 0x407c0020, 0x524f: 0x407c0220, + 0x5250: 0x407c0420, 0x5251: 0x407c0620, 0x5252: 0x407c0820, 0x5253: 0x407c0a20, + 0x5254: 0x407c0c20, 0x5255: 0x407c0e20, 0x5256: 0x407c1020, 0x5257: 0x407c1220, + 0x5258: 0x407c1420, 0x5259: 0x407c1620, 0x525a: 0x407c1820, 0x525b: 0x407c1a20, + 0x525c: 0x407c1c20, 0x525d: 0x407c1e20, 0x525e: 0x407c2020, 0x525f: 0x407c2220, + 0x5260: 0x407c2420, 0x5261: 0x407c2620, 0x5262: 0x407c2820, 0x5263: 0x407c2a20, + 0x5264: 0x407c2c20, 0x5265: 0x407c2e20, 0x5266: 0x407c3020, 0x5267: 0x407c3220, + 0x5268: 0x407c3420, 0x5269: 0x407c3620, 0x526a: 0x407c3820, 0x526b: 0x407c3a20, + 0x526c: 0x407c3c20, 0x526d: 0x407c3e20, 0x526e: 0x407c4020, 0x526f: 0x407c4220, + 0x5270: 0x407c4420, 0x5271: 0x407c4620, 0x5272: 0x407c4820, 0x5273: 0x407c4a20, + 0x5274: 0x407c4c20, 0x5275: 0x407c4e20, 0x5276: 0x407c5020, 0x5277: 0x407c5220, + 0x5278: 0x407c5420, 0x5279: 0x407c5620, 0x527a: 0x407c5820, 0x527b: 0x407c5a20, + 0x527c: 0x407c5c20, 0x527d: 0x407c5e20, 0x527e: 0x407c6020, 0x527f: 0x407c6220, + // Block 0x14a, offset 0x5280 + 0x5280: 0x407c6420, 0x5281: 0x407c6620, 0x5282: 0x407c6820, 0x5283: 0x407c6a20, + 0x5284: 0x407c6c20, 0x5285: 0x407c6e20, 0x5286: 0x407c7020, 0x5287: 0x407c7220, + 0x5288: 0x407c7420, 0x5289: 0x407c7620, 0x528a: 0x407c7820, 0x528b: 0x407c7a20, + 0x528c: 0x407c7c20, 0x528d: 0x407c7e20, 0x528e: 0x407c8020, 0x528f: 0x407c8220, + 0x5290: 0x407c8420, 0x5291: 0x407c8620, 0x5292: 0x407c8820, 0x5293: 0x407c8a20, + 0x5294: 0x407c8c20, 0x5295: 0x407c8e20, 0x5296: 0x407c9020, 0x5297: 0x407c9220, + 0x5298: 0x407c9420, 0x5299: 0x407c9620, 0x529a: 0x407c9820, 0x529b: 0x407c9a20, + 0x529c: 0x407c9c20, 0x529d: 0x407c9e20, 0x529e: 0x407ca020, 0x529f: 0x407ca220, + 0x52a0: 0x407ca420, 0x52a1: 0x407ca620, 0x52a2: 0x407ca820, 0x52a3: 0x407caa20, + 0x52a4: 0x407cac20, 0x52a5: 0x407cae20, 0x52a6: 0x407cb020, 0x52a7: 0x407cb220, + 0x52a8: 0x407cb420, 0x52a9: 0x407cb620, 0x52aa: 0x407cb820, 0x52ab: 0x407cba20, + 0x52ac: 0x407cbc20, 0x52ad: 0x407cbe20, 0x52ae: 0x407cc020, 0x52af: 0x407cc220, + 0x52b0: 0x407cc420, 0x52b1: 0x407cc620, 0x52b2: 0x407cc820, 0x52b3: 0x407cca20, + 0x52b4: 0x407ccc20, 0x52b5: 0x407cce20, 0x52b6: 0x407cd020, 0x52b7: 0x407cd220, + 0x52b8: 0x407cd420, 0x52b9: 0x407cd620, 0x52ba: 0x407cd820, 0x52bb: 0x407cda20, + 0x52bc: 0x407cdc20, 0x52bd: 0x407cde20, 0x52be: 0x407ce020, 0x52bf: 0x407ce220, + // Block 0x14b, offset 0x52c0 + 0x52c0: 0x407ce420, 0x52c1: 0x407ce620, 0x52c2: 0x407ce820, 0x52c3: 0x407cea20, + 0x52c4: 0x407cec20, 0x52c5: 0x407cee20, 0x52c6: 0x407cf020, 0x52c7: 0x407cf220, + 0x52c8: 0x407cf420, 0x52c9: 0x407cf620, 0x52ca: 0x407cf820, 0x52cb: 0x407cfa20, + 0x52cc: 0x407cfc20, 0x52cd: 0x407cfe20, 0x52ce: 0x407d0020, 0x52cf: 0x407d0220, + 0x52d0: 0x407d0420, 0x52d1: 0x407d0620, 0x52d2: 0x407d0820, 0x52d3: 0x407d0a20, + 0x52d4: 0x407d0c20, 0x52d5: 0x407d0e20, 0x52d6: 0x407d1020, 0x52d7: 0x407d1220, + 0x52d8: 0x407d1420, 0x52d9: 0x407d1620, 0x52da: 0x407d1820, 0x52db: 0x407d1a20, + 0x52dc: 0x407d1c20, 0x52dd: 0x407d1e20, 0x52de: 0x407d2020, 0x52df: 0x407d2220, + 0x52e0: 0x407d2420, 0x52e1: 0x407d2620, 0x52e2: 0x407d2820, 0x52e3: 0x407d2a20, + 0x52e4: 0x407d2c20, 0x52e5: 0x407d2e20, 0x52e6: 0x407d3020, 0x52e7: 0x407d3220, + 0x52e8: 0x407d3420, 0x52e9: 0x407d3620, 0x52ea: 0x407d3820, 0x52eb: 0x407d3a20, + 0x52ec: 0x407d3c20, 0x52ed: 0x407d3e20, 0x52ee: 0x407d4020, 0x52ef: 0x407d4220, + 0x52f0: 0x407d4420, 0x52f1: 0x407d4620, 0x52f2: 0x407d4820, 0x52f3: 0x407d4a20, + 0x52f4: 0x407d4c20, 0x52f5: 0x407d4e20, 0x52f6: 0x407d5020, 0x52f7: 0x407d5220, + 0x52f8: 0x407d5420, 0x52f9: 0x407d5620, 0x52fa: 0x407d5820, 0x52fb: 0x407d5a20, + 0x52fc: 0x407d5c20, 0x52fd: 0x407d5e20, 0x52fe: 0x407d6020, 0x52ff: 0x407d6220, + // Block 0x14c, offset 0x5300 + 0x5300: 0x407d6420, 0x5301: 0x407d6620, 0x5302: 0x407d6820, 0x5303: 0x407d6a20, + 0x5304: 0x407d6c20, 0x5305: 0x407d6e20, 0x5306: 0x407d7020, 0x5307: 0x407d7220, + 0x5308: 0x407d7420, 0x5309: 0x407d7620, 0x530a: 0x407d7820, 0x530b: 0x407d7a20, + 0x530c: 0x407d7c20, 0x530d: 0x407d7e20, 0x530e: 0x407d8020, 0x530f: 0x407d8220, + 0x5310: 0x407d8420, 0x5311: 0x407d8620, 0x5312: 0x407d8820, 0x5313: 0x407d8a20, + 0x5314: 0x407d8c20, 0x5315: 0x407d8e20, 0x5316: 0x407d9020, 0x5317: 0x407d9220, + 0x5318: 0x407d9420, 0x5319: 0x407d9620, 0x531a: 0x407d9820, 0x531b: 0x407d9a20, + 0x531c: 0x407d9c20, 0x531d: 0x407d9e20, 0x531e: 0x407da020, 0x531f: 0x407da220, + 0x5320: 0x407da420, 0x5321: 0x407da620, 0x5322: 0x407da820, 0x5323: 0x407daa20, + 0x5324: 0x407dac20, 0x5325: 0x407dae20, 0x5326: 0x407db020, 0x5327: 0x407db220, + 0x5328: 0x407db420, 0x5329: 0x407db620, 0x532a: 0x407db820, 0x532b: 0x407dba20, + 0x532c: 0x407dbc20, 0x532d: 0x407dbe20, 0x532e: 0x407dc020, + // Block 0x14d, offset 0x5340 + 0x5340: 0xe0000394, 0x5341: 0xe000045f, 0x5342: 0xe0000534, 0x5343: 0xe0000610, + 0x5344: 0xe00006cc, 0x5345: 0xe0000771, 0x5346: 0xe000081d, 0x5347: 0xe00008c2, + 0x5348: 0xe0000462, 0x5349: 0xe0000537, 0x534a: 0xe0000613, 0x534b: 0xe00006cf, + 0x534c: 0xe0000774, 0x534d: 0xe0000820, 0x534e: 0xe00008c5, 0x534f: 0xe000053a, + 0x5350: 0xe0000616, 0x5351: 0xe00006d2, 0x5352: 0xe0000777, 0x5353: 0xe0000823, + 0x5354: 0xe00008c8, 0x5355: 0xe000027f, 0x5356: 0xe0000397, 0x5357: 0xe0000465, + 0x5358: 0xe000053d, 0x5359: 0xe0000619, 0x535a: 0xe00006d5, 0x535b: 0xe000077a, + 0x535c: 0xe0000826, 0x535d: 0xe00008cb, 0x535e: 0xe0000282, 0x535f: 0xe000039a, + 0x5360: 0xe0000468, 0x5361: 0xe0000540, 0x5362: 0xe000061c, 0x5363: 0xe000039d, + 0x5364: 0xe000046b, 0x5365: 0xe000046e, 0x5366: 0xe0000543, 0x5367: 0xe000061f, + 0x5368: 0xe00006d8, 0x5369: 0xe000077d, 0x536a: 0xe0000829, 0x536b: 0xe00008ce, + 0x536c: 0xe0000285, 0x536d: 0xe00003a0, 0x536e: 0xe0000471, 0x536f: 0xe0000474, + 0x5370: 0xe0000546, 0x5371: 0xe0000622, 0x5372: 0x4029a020, 0x5373: 0x4029a220, + 0x5374: 0xe0000288, 0x5375: 0xe00003a3, 0x5376: 0xe0000477, 0x5377: 0xe000047a, + 0x5378: 0xe0000549, 0x5379: 0xe0000625, 0x537a: 0xe000047d, 0x537b: 0xe0000480, + 0x537c: 0xe000054c, 0x537d: 0xe000054f, 0x537e: 0xe0000552, 0x537f: 0xe0000555, + // Block 0x14e, offset 0x5380 + 0x5380: 0xe00006db, 0x5381: 0xe0000780, 0x5382: 0xe0000783, 0x5383: 0xe0000786, + 0x5384: 0xe000082c, 0x5385: 0xe000082f, 0x5386: 0xe00008d1, 0x5387: 0xe00008d4, + 0x5388: 0xe00008d7, 0x5389: 0xe00008da, 0x538a: 0xe00003a6, 0x538b: 0xe0000483, + 0x538c: 0xe0000558, 0x538d: 0xe0000628, 0x538e: 0xe00006de, 0x538f: 0xe000028b, + 0x5390: 0xe00003a9, 0x5391: 0xe0000486, 0x5392: 0xe000055b, 0x5393: 0xe000055e, + 0x5394: 0xe000062b, 0x5395: 0xe000062e, 0x5396: 0x4029a420, 0x5397: 0x4029a620, + 0x5398: 0xe000028e, 0x5399: 0xe00003ac, 0x539a: 0x4029a820, 0x539b: 0x4029aa20, + 0x539c: 0x4029ac20, 0x539d: 0x4029ae20, 0x539e: 0x4029b020, 0x539f: 0x4029b220, + 0x53a0: 0x4029b420, 0x53a1: 0x4029b620, 0x53a2: 0x4029b820, + 0x53b0: 0x4003ca20, 0x53b1: 0x4003cc20, 0x53b2: 0x4003ce20, 0x53b3: 0x4003d020, + // Block 0x14f, offset 0x53c0 + 0x53c0: 0x407dc220, 0x53c1: 0x407dc420, 0x53c2: 0x407dc620, 0x53c3: 0x407dc820, + 0x53c4: 0x407dca20, 0x53c5: 0x407dcc20, 0x53c6: 0x407dce20, 0x53c7: 0x407dd020, + 0x53c8: 0x407dd220, 0x53c9: 0x407dd420, 0x53ca: 0x407dd620, 0x53cb: 0x407dd820, + 0x53cc: 0x407dda20, 0x53cd: 0x407ddc20, 0x53ce: 0x407dde20, 0x53cf: 0x407de020, + 0x53d0: 0x407de220, 0x53d1: 0x407de420, 0x53d2: 0x407de620, 0x53d3: 0x407de820, + 0x53d4: 0x407dea20, 0x53d5: 0x407dec20, 0x53d6: 0x407dee20, 0x53d7: 0x407df020, + 0x53d8: 0x407df220, 0x53d9: 0x407df420, 0x53da: 0x407df620, 0x53db: 0x407df820, + 0x53dc: 0x407dfa20, 0x53dd: 0x407dfc20, 0x53de: 0x407dfe20, 0x53df: 0x407e0020, + 0x53e0: 0x407e0220, 0x53e1: 0x407e0420, 0x53e2: 0x407e0620, 0x53e3: 0x407e0820, + 0x53e4: 0x407e0a20, 0x53e5: 0x407e0c20, 0x53e6: 0x407e0e20, 0x53e7: 0x407e1020, + 0x53e8: 0x407e1220, 0x53e9: 0x407e1420, 0x53ea: 0x407e1620, 0x53eb: 0x407e1820, + 0x53ec: 0x407e1a20, 0x53ed: 0x407e1c20, 0x53ee: 0x407e1e20, 0x53ef: 0x407e2020, + 0x53f0: 0x407e2220, 0x53f1: 0x407e2420, 0x53f2: 0x407e2620, 0x53f3: 0x407e2820, + 0x53f4: 0x407e2a20, 0x53f5: 0x407e2c20, 0x53f6: 0x407e2e20, 0x53f7: 0x407e3020, + 0x53f8: 0x407e3220, 0x53f9: 0x407e3420, 0x53fa: 0x407e3620, 0x53fb: 0x407e3820, + 0x53fc: 0x407e3a20, 0x53fd: 0x407e3c20, 0x53fe: 0x407e3e20, 0x53ff: 0x407e4020, + // Block 0x150, offset 0x5400 + 0x5400: 0x407e4220, 0x5401: 0x407e4420, 0x5402: 0x407e4620, 0x5403: 0x407e4820, + 0x5404: 0x407e4a20, 0x5405: 0x407e4c20, 0x5406: 0x407e4e20, 0x5407: 0x407e5020, + 0x5408: 0x407e5220, 0x5409: 0x407e5420, 0x540a: 0x407e5620, 0x540b: 0x407e5820, + 0x540c: 0x407e5a20, 0x540d: 0x407e5c20, 0x540e: 0x407e5e20, 0x540f: 0x407e6020, + 0x5410: 0x407e6220, 0x5411: 0x407e6420, 0x5412: 0x407e6620, 0x5413: 0x407e6820, + 0x5414: 0x407e6a20, 0x5415: 0x407e6c20, 0x5416: 0x407e6e20, 0x5417: 0x407e7020, + 0x5418: 0x407e7220, 0x5419: 0x407e7420, 0x541a: 0x407e7620, 0x541b: 0x407e7820, + 0x541c: 0x407e7a20, 0x541d: 0x407e7c20, 0x541e: 0x407e7e20, 0x541f: 0x407e8020, + 0x5420: 0x407e8220, 0x5421: 0x407e8420, 0x5422: 0x407e8620, 0x5423: 0x407e8820, + 0x5424: 0x407e8a20, 0x5425: 0x407e8c20, 0x5426: 0x407e8e20, 0x5427: 0x407e9020, + 0x5428: 0x407e9220, 0x5429: 0x407e9420, 0x542a: 0x407e9620, 0x542b: 0x407e9820, + 0x542c: 0x407e9a20, 0x542d: 0x407e9c20, 0x542e: 0x407e9e20, 0x542f: 0x407ea020, + 0x5430: 0x407ea220, 0x5431: 0x407ea420, 0x5432: 0x407ea620, 0x5433: 0x407ea820, + 0x5434: 0x407eaa20, 0x5435: 0x407eac20, 0x5436: 0x407eae20, 0x5437: 0x407eb020, + 0x5438: 0x407eb220, 0x5439: 0x407eb420, 0x543a: 0x407eb620, 0x543b: 0x407eb820, + 0x543c: 0x407eba20, 0x543d: 0x407ebc20, 0x543e: 0x407ebe20, 0x543f: 0x407ec020, + // Block 0x151, offset 0x5440 + 0x5440: 0x407ec220, 0x5441: 0x407ec420, 0x5442: 0x407ec620, 0x5443: 0x407ec820, + 0x5444: 0x407eca20, 0x5445: 0x407ecc20, 0x5446: 0x407ece20, 0x5447: 0x407ed020, + 0x5448: 0x407ed220, 0x5449: 0x407ed420, 0x544a: 0x407ed620, 0x544b: 0x407ed820, + 0x544c: 0x407eda20, 0x544d: 0x407edc20, 0x544e: 0x407ede20, 0x544f: 0x407ee020, + 0x5450: 0x407ee220, 0x5451: 0x407ee420, 0x5452: 0x407ee620, 0x5453: 0x407ee820, + 0x5454: 0x407eea20, 0x5455: 0x407eec20, 0x5456: 0x407eee20, 0x5457: 0x407ef020, + 0x5458: 0x407ef220, 0x5459: 0x407ef420, 0x545a: 0x407ef620, 0x545b: 0x407ef820, + 0x545c: 0x407efa20, 0x545d: 0x407efc20, 0x545e: 0x407efe20, 0x545f: 0x407f0020, + 0x5460: 0x407f0220, 0x5461: 0x407f0420, 0x5462: 0x407f0620, 0x5463: 0x407f0820, + 0x5464: 0x407f0a20, 0x5465: 0x407f0c20, 0x5466: 0x407f0e20, 0x5467: 0x407f1020, + 0x5468: 0x407f1220, 0x5469: 0x407f1420, 0x546a: 0x407f1620, 0x546b: 0x407f1820, + 0x546c: 0x407f1a20, 0x546d: 0x407f1c20, 0x546e: 0x407f1e20, 0x546f: 0x407f2020, + 0x5470: 0x407f2220, 0x5471: 0x407f2420, 0x5472: 0x407f2620, 0x5473: 0x407f2820, + 0x5474: 0x407f2a20, 0x5475: 0x407f2c20, 0x5476: 0x407f2e20, 0x5477: 0x407f3020, + 0x5478: 0x407f3220, 0x5479: 0x407f3420, 0x547a: 0x407f3620, 0x547b: 0x407f3820, + 0x547c: 0x407f3a20, 0x547d: 0x407f3c20, 0x547e: 0x407f3e20, 0x547f: 0x407f4020, + // Block 0x152, offset 0x5480 + 0x5480: 0x407f4220, 0x5481: 0x407f4420, 0x5482: 0x407f4620, 0x5483: 0x407f4820, + 0x5484: 0x407f4a20, 0x5485: 0x407f4c20, 0x5486: 0x407f4e20, 0x5487: 0x407f5020, + 0x5488: 0x407f5220, 0x5489: 0x407f5420, 0x548a: 0x407f5620, 0x548b: 0x407f5820, + 0x548c: 0x407f5a20, 0x548d: 0x407f5c20, 0x548e: 0x407f5e20, 0x548f: 0x407f6020, + 0x5490: 0x407f6220, 0x5491: 0x407f6420, 0x5492: 0x407f6620, 0x5493: 0x407f6820, + 0x5494: 0x407f6a20, 0x5495: 0x407f6c20, 0x5496: 0x407f6e20, 0x5497: 0x407f7020, + 0x5498: 0x407f7220, 0x5499: 0x407f7420, 0x549a: 0x407f7620, 0x549b: 0x407f7820, + 0x549c: 0x407f7a20, 0x549d: 0x407f7c20, 0x549e: 0x407f7e20, 0x549f: 0x407f8020, + 0x54a0: 0x407f8220, 0x54a1: 0x407f8420, 0x54a2: 0x407f8620, 0x54a3: 0x407f8820, + 0x54a4: 0x407f8a20, 0x54a5: 0x407f8c20, 0x54a6: 0x407f8e20, 0x54a7: 0x407f9020, + 0x54a8: 0x407f9220, 0x54a9: 0x407f9420, 0x54aa: 0x407f9620, 0x54ab: 0x407f9820, + 0x54ac: 0x407f9a20, 0x54ad: 0x407f9c20, 0x54ae: 0x407f9e20, 0x54af: 0x407fa020, + 0x54b0: 0x407fa220, 0x54b1: 0x407fa420, 0x54b2: 0x407fa620, 0x54b3: 0x407fa820, + 0x54b4: 0x407faa20, 0x54b5: 0x407fac20, 0x54b6: 0x407fae20, 0x54b7: 0x407fb020, + 0x54b8: 0x407fb220, 0x54b9: 0x407fb420, 0x54ba: 0x407fb620, 0x54bb: 0x407fb820, + 0x54bc: 0x407fba20, 0x54bd: 0x407fbc20, 0x54be: 0x407fbe20, 0x54bf: 0x407fc020, + // Block 0x153, offset 0x54c0 + 0x54c0: 0x407fc220, 0x54c1: 0x407fc420, 0x54c2: 0x407fc620, 0x54c3: 0x407fc820, + 0x54c4: 0x407fca20, 0x54c5: 0x407fcc20, 0x54c6: 0x407fce20, 0x54c7: 0x407fd020, + 0x54c8: 0x407fd220, 0x54c9: 0x407fd420, 0x54ca: 0x407fd620, 0x54cb: 0x407fd820, + 0x54cc: 0x407fda20, 0x54cd: 0x407fdc20, 0x54ce: 0x407fde20, 0x54cf: 0x407fe020, + 0x54d0: 0x407fe220, 0x54d1: 0x407fe420, 0x54d2: 0x407fe620, 0x54d3: 0x407fe820, + 0x54d4: 0x407fea20, 0x54d5: 0x407fec20, 0x54d6: 0x407fee20, 0x54d7: 0x407ff020, + 0x54d8: 0x407ff220, 0x54d9: 0x407ff420, 0x54da: 0x407ff620, 0x54db: 0x407ff820, + 0x54dc: 0x407ffa20, 0x54dd: 0x407ffc20, 0x54de: 0x407ffe20, 0x54df: 0x40800020, + 0x54e0: 0x40800220, 0x54e1: 0x40800420, 0x54e2: 0x40800620, 0x54e3: 0x40800820, + 0x54e4: 0x40800a20, 0x54e5: 0x40800c20, 0x54e6: 0x40800e20, 0x54e7: 0x40801020, + 0x54e8: 0x40801220, 0x54e9: 0x40801420, 0x54ea: 0x40801620, 0x54eb: 0x40801820, + 0x54ec: 0x40801a20, 0x54ed: 0x40801c20, 0x54ee: 0x40801e20, 0x54ef: 0x40802020, + 0x54f0: 0x40802220, 0x54f1: 0x40802420, 0x54f2: 0x40802620, 0x54f3: 0x40802820, + 0x54f4: 0x40802a20, 0x54f5: 0x40802c20, 0x54f6: 0x40802e20, 0x54f7: 0x40803020, + 0x54f8: 0x40803220, 0x54f9: 0x40803420, 0x54fa: 0x40803620, 0x54fb: 0x40803820, + 0x54fc: 0x40803a20, 0x54fd: 0x40803c20, 0x54fe: 0x40803e20, 0x54ff: 0x40804020, + // Block 0x154, offset 0x5500 + 0x5500: 0x40804220, 0x5501: 0x40804420, 0x5502: 0x40804620, 0x5503: 0x40804820, + 0x5504: 0x40804a20, 0x5505: 0x40804c20, 0x5506: 0x40804e20, 0x5507: 0x40805020, + 0x5508: 0x40805220, 0x5509: 0x40805420, 0x550a: 0x40805620, 0x550b: 0x40805820, + 0x550c: 0x40805a20, 0x550d: 0x40805c20, 0x550e: 0x40805e20, 0x550f: 0x40806020, + 0x5510: 0x40806220, 0x5511: 0x40806420, 0x5512: 0x40806620, 0x5513: 0x40806820, + 0x5514: 0x40806a20, 0x5515: 0x40806c20, 0x5516: 0x40806e20, 0x5517: 0x40807020, + 0x5518: 0x40807220, 0x5519: 0x40807420, 0x551a: 0x40807620, 0x551b: 0x40807820, + 0x551c: 0x40807a20, 0x551d: 0x40807c20, 0x551e: 0x40807e20, 0x551f: 0x40808020, + 0x5520: 0x40808220, 0x5521: 0x40808420, 0x5522: 0x40808620, 0x5523: 0x40808820, + 0x5524: 0x40808a20, 0x5525: 0x40808c20, 0x5526: 0x40808e20, 0x5527: 0x40809020, + 0x5528: 0x40809220, 0x5529: 0x40809420, 0x552a: 0x40809620, 0x552b: 0x40809820, + 0x552c: 0x40809a20, 0x552d: 0x40809c20, 0x552e: 0x40809e20, 0x552f: 0x4080a020, + 0x5530: 0x4080a220, 0x5531: 0x4080a420, 0x5532: 0x4080a620, 0x5533: 0x4080a820, + 0x5534: 0x4080aa20, 0x5535: 0x4080ac20, 0x5536: 0x4080ae20, 0x5537: 0x4080b020, + 0x5538: 0x4080b220, 0x5539: 0x4080b420, 0x553a: 0x4080b620, 0x553b: 0x4080b820, + 0x553c: 0x4080ba20, 0x553d: 0x4080bc20, 0x553e: 0x4080be20, 0x553f: 0x4080c020, + // Block 0x155, offset 0x5540 + 0x5540: 0x4080c220, 0x5541: 0x4080c420, 0x5542: 0x4080c620, 0x5543: 0x4080c820, + 0x5544: 0x4080ca20, 0x5545: 0x4080cc20, 0x5546: 0x4080ce20, 0x5547: 0x4080d020, + 0x5548: 0x4080d220, 0x5549: 0x4080d420, 0x554a: 0x4080d620, 0x554b: 0x4080d820, + 0x554c: 0x4080da20, 0x554d: 0x4080dc20, 0x554e: 0x4080de20, 0x554f: 0x4080e020, + 0x5550: 0x4080e220, 0x5551: 0x4080e420, 0x5552: 0x4080e620, 0x5553: 0x4080e820, + 0x5554: 0x4080ea20, 0x5555: 0x4080ec20, 0x5556: 0x4080ee20, 0x5557: 0x4080f020, + 0x5558: 0x4080f220, 0x5559: 0x4080f420, 0x555a: 0x4080f620, 0x555b: 0x4080f820, + 0x555c: 0x4080fa20, 0x555d: 0x4080fc20, 0x555e: 0x4080fe20, 0x555f: 0x40810020, + 0x5560: 0x40810220, 0x5561: 0x40810420, 0x5562: 0x40810620, 0x5563: 0x40810820, + 0x5564: 0x40810a20, 0x5565: 0x40810c20, 0x5566: 0x40810e20, 0x5567: 0x40811020, + 0x5568: 0x40811220, 0x5569: 0x40811420, 0x556a: 0x40811620, 0x556b: 0x40811820, + 0x556c: 0x40811a20, 0x556d: 0x40811c20, 0x556e: 0x40811e20, 0x556f: 0x40812020, + 0x5570: 0x40812220, 0x5571: 0x40812420, 0x5572: 0x40812620, 0x5573: 0x40812820, + 0x5574: 0x40812a20, 0x5575: 0x40812c20, 0x5576: 0x40812e20, 0x5577: 0x40813020, + 0x5578: 0x40813220, 0x5579: 0x40813420, 0x557a: 0x40813620, 0x557b: 0x40813820, + 0x557c: 0x40813a20, 0x557d: 0x40813c20, 0x557e: 0x40813e20, 0x557f: 0x40814020, + // Block 0x156, offset 0x5580 + 0x5580: 0x40814220, 0x5581: 0x40814420, 0x5582: 0x40814620, 0x5583: 0x40814820, + 0x5584: 0x40814a20, 0x5585: 0x40814c20, 0x5586: 0x40814e20, 0x5587: 0x40815020, + 0x5588: 0x40815220, 0x5589: 0x40815420, 0x558a: 0x40815620, 0x558b: 0x40815820, + 0x558c: 0x40815a20, 0x558d: 0x40815c20, 0x558e: 0x40815e20, 0x558f: 0x40816020, + 0x5590: 0x40816220, 0x5591: 0x40816420, 0x5592: 0x40816620, 0x5593: 0x40816820, + 0x5594: 0x40816a20, 0x5595: 0x40816c20, 0x5596: 0x40816e20, 0x5597: 0x40817020, + 0x5598: 0x40817220, 0x5599: 0x40817420, 0x559a: 0x40817620, 0x559b: 0x40817820, + 0x559c: 0x40817a20, 0x559d: 0x40817c20, 0x559e: 0x40817e20, 0x559f: 0x40818020, + 0x55a0: 0x40818220, 0x55a1: 0x40818420, 0x55a2: 0x40818620, 0x55a3: 0x40818820, + 0x55a4: 0x40818a20, 0x55a5: 0x40818c20, 0x55a6: 0x40818e20, 0x55a7: 0x40819020, + 0x55a8: 0x40819220, 0x55a9: 0x40819420, 0x55aa: 0x40819620, 0x55ab: 0x40819820, + 0x55ac: 0x40819a20, 0x55ad: 0x40819c20, 0x55ae: 0x40819e20, 0x55af: 0x4081a020, + 0x55b0: 0x4081a220, 0x55b1: 0x4081a420, 0x55b2: 0x4081a620, 0x55b3: 0x4081a820, + 0x55b4: 0x4081aa20, 0x55b5: 0x4081ac20, 0x55b6: 0x4081ae20, 0x55b7: 0x4081b020, + 0x55b8: 0x4081b220, 0x55b9: 0x4081b420, 0x55ba: 0x4081b620, 0x55bb: 0x4081b820, + 0x55bc: 0x4081ba20, 0x55bd: 0x4081bc20, 0x55be: 0x4081be20, 0x55bf: 0x4081c020, + // Block 0x157, offset 0x55c0 + 0x55c0: 0x4081c220, 0x55c1: 0x4081c420, 0x55c2: 0x4081c620, 0x55c3: 0x4081c820, + 0x55c4: 0x4081ca20, 0x55c5: 0x4081cc20, 0x55c6: 0x4081ce20, 0x55c7: 0x4081d020, + 0x55c8: 0x4081d220, 0x55c9: 0x4081d420, 0x55ca: 0x4081d620, 0x55cb: 0x4081d820, + 0x55cc: 0x4081da20, 0x55cd: 0x4081dc20, 0x55ce: 0x4081de20, 0x55cf: 0x4081e020, + 0x55d0: 0x4081e220, 0x55d1: 0x4081e420, 0x55d2: 0x4081e620, 0x55d3: 0x4081e820, + 0x55d4: 0x4081ea20, 0x55d5: 0x4081ec20, 0x55d6: 0x4081ee20, 0x55d7: 0x4081f020, + 0x55d8: 0x4081f220, 0x55d9: 0x4081f420, 0x55da: 0x4081f620, 0x55db: 0x4081f820, + 0x55dc: 0x4081fa20, 0x55dd: 0x4081fc20, 0x55de: 0x4081fe20, 0x55df: 0x40820020, + 0x55e0: 0x40820220, 0x55e1: 0x40820420, 0x55e2: 0x40820620, 0x55e3: 0x40820820, + 0x55e4: 0x40820a20, 0x55e5: 0x40820c20, 0x55e6: 0x40820e20, 0x55e7: 0x40821020, + 0x55e8: 0x40821220, 0x55e9: 0x40821420, 0x55ea: 0x40821620, 0x55eb: 0x40821820, + 0x55ec: 0x40821a20, 0x55ed: 0x40821c20, 0x55ee: 0x40821e20, 0x55ef: 0x40822020, + 0x55f0: 0x40822220, 0x55f1: 0x40822420, 0x55f2: 0x40822620, 0x55f3: 0x40822820, + 0x55f4: 0x40822a20, 0x55f5: 0x40822c20, 0x55f6: 0x40822e20, 0x55f7: 0x40823020, + 0x55f8: 0x40823220, 0x55f9: 0x40823420, 0x55fa: 0x40823620, 0x55fb: 0x40823820, + 0x55fc: 0x40823a20, 0x55fd: 0x40823c20, 0x55fe: 0x40823e20, 0x55ff: 0x40824020, + // Block 0x158, offset 0x5600 + 0x5600: 0x40824220, 0x5601: 0x40824420, 0x5602: 0x40824620, 0x5603: 0x40824820, + 0x5604: 0x40824a20, 0x5605: 0x40824c20, 0x5606: 0x40824e20, 0x5607: 0x40825020, + 0x5608: 0x40825220, 0x5609: 0x40825420, 0x560a: 0x40825620, 0x560b: 0x40825820, + 0x560c: 0x40825a20, 0x560d: 0x40825c20, 0x560e: 0x40825e20, 0x560f: 0x40826020, + 0x5610: 0x40826220, 0x5611: 0x40826420, 0x5612: 0x40826620, 0x5613: 0x40826820, + 0x5614: 0x40826a20, 0x5615: 0x40826c20, 0x5616: 0x40826e20, 0x5617: 0x40827020, + 0x5618: 0x40827220, 0x5619: 0x40827420, 0x561a: 0x40827620, 0x561b: 0x40827820, + 0x561c: 0x40827a20, 0x561d: 0x40827c20, 0x561e: 0x40827e20, 0x561f: 0x40828020, + 0x5620: 0x40828220, 0x5621: 0x40828420, 0x5622: 0x40828620, 0x5623: 0x40828820, + 0x5624: 0x40828a20, 0x5625: 0x40828c20, 0x5626: 0x40828e20, 0x5627: 0x40829020, + 0x5628: 0x40829220, 0x5629: 0x40829420, 0x562a: 0x40829620, 0x562b: 0x40829820, + 0x562c: 0x40829a20, 0x562d: 0x40829c20, 0x562e: 0x40829e20, 0x562f: 0x4082a020, + 0x5630: 0x4082a220, 0x5631: 0x4082a420, 0x5632: 0x4082a620, 0x5633: 0x4082a820, + 0x5634: 0x4082aa20, 0x5635: 0x4082ac20, 0x5636: 0x4082ae20, 0x5637: 0x4082b020, + 0x5638: 0x4082b220, 0x5639: 0x4082b420, 0x563a: 0x4082b620, 0x563b: 0x4082b820, + 0x563c: 0x4082ba20, 0x563d: 0x4082bc20, 0x563e: 0x4082be20, 0x563f: 0x4082c020, + // Block 0x159, offset 0x5640 + 0x5640: 0x4082c220, 0x5641: 0x4082c420, 0x5642: 0x4082c620, 0x5643: 0x4082c820, + 0x5644: 0x4082ca20, 0x5645: 0x4082cc20, 0x5646: 0x4082ce20, 0x5647: 0x4082d020, + 0x5648: 0x4082d220, 0x5649: 0x4082d420, 0x564a: 0x4082d620, 0x564b: 0x4082d820, + 0x564c: 0x4082da20, 0x564d: 0x4082dc20, 0x564e: 0x4082de20, 0x564f: 0x4082e020, + 0x5650: 0x4082e220, 0x5651: 0x4082e420, 0x5652: 0x4082e620, 0x5653: 0x4082e820, + 0x5654: 0x4082ea20, 0x5655: 0x4082ec20, 0x5656: 0x4082ee20, 0x5657: 0x4082f020, + 0x5658: 0x4082f220, 0x5659: 0x4082f420, 0x565a: 0x4082f620, 0x565b: 0x4082f820, + 0x565c: 0x4082fa20, 0x565d: 0x4082fc20, 0x565e: 0x4082fe20, 0x565f: 0x40830020, + 0x5660: 0x40830220, 0x5661: 0x40830420, 0x5662: 0x40830620, 0x5663: 0x40830820, + 0x5664: 0x40830a20, 0x5665: 0x40830c20, 0x5666: 0x40830e20, 0x5667: 0x40831020, + 0x5668: 0x40831220, 0x5669: 0x40831420, 0x566a: 0x40831620, 0x566b: 0x40831820, + 0x566c: 0x40831a20, 0x566d: 0x40831c20, 0x566e: 0x40831e20, 0x566f: 0x40832020, + 0x5670: 0x40832220, 0x5671: 0x40832420, 0x5672: 0x40832620, 0x5673: 0x40832820, + 0x5674: 0x40832a20, 0x5675: 0x40832c20, 0x5676: 0x40832e20, 0x5677: 0x40833020, + 0x5678: 0x40833220, 0x5679: 0x40833420, 0x567a: 0x40833620, 0x567b: 0x40833820, + 0x567c: 0x40833a20, 0x567d: 0x40833c20, 0x567e: 0x40833e20, 0x567f: 0x40834020, + // Block 0x15a, offset 0x5680 + 0x5680: 0x40834220, 0x5681: 0x40834420, 0x5682: 0x40834620, 0x5683: 0x40834820, + 0x5684: 0x40834a20, 0x5685: 0x40834c20, 0x5686: 0x40834e20, 0x5687: 0x40835020, + 0x5688: 0x40835220, 0x5689: 0x40835420, 0x568a: 0x40835620, 0x568b: 0x40835820, + 0x568c: 0x40835a20, 0x568d: 0x40835c20, 0x568e: 0x40835e20, 0x568f: 0x40836020, + 0x5690: 0x40836220, 0x5691: 0x40836420, 0x5692: 0x40836620, 0x5693: 0x40836820, + 0x5694: 0x40836a20, 0x5695: 0x40836c20, 0x5696: 0x40836e20, 0x5697: 0x40837020, + 0x5698: 0x40837220, 0x5699: 0x40837420, 0x569a: 0x40837620, 0x569b: 0x40837820, + 0x569c: 0x40837a20, 0x569d: 0x40837c20, 0x569e: 0x40837e20, 0x569f: 0x40838020, + 0x56a0: 0x40838220, 0x56a1: 0x40838420, 0x56a2: 0x40838620, 0x56a3: 0x40838820, + 0x56a4: 0x40838a20, 0x56a5: 0x40838c20, 0x56a6: 0x40838e20, 0x56a7: 0x40839020, + 0x56a8: 0x40839220, 0x56a9: 0x40839420, 0x56aa: 0x40839620, 0x56ab: 0x40839820, + 0x56ac: 0x40839a20, 0x56ad: 0x40839c20, 0x56ae: 0x40839e20, 0x56af: 0x4083a020, + 0x56b0: 0x4083a220, 0x56b1: 0x4083a420, 0x56b2: 0x4083a620, 0x56b3: 0x4083a820, + 0x56b4: 0x4083aa20, 0x56b5: 0x4083ac20, 0x56b6: 0x4083ae20, 0x56b7: 0x4083b020, + 0x56b8: 0x4083b220, 0x56b9: 0x4083b420, 0x56ba: 0x4083b620, 0x56bb: 0x4083b820, + 0x56bc: 0x4083ba20, 0x56bd: 0x4083bc20, 0x56be: 0x4083be20, 0x56bf: 0x4083c020, + // Block 0x15b, offset 0x56c0 + 0x56c0: 0x4083c220, 0x56c1: 0x4083c420, 0x56c2: 0x4083c620, 0x56c3: 0x4083c820, + 0x56c4: 0x4083ca20, 0x56c5: 0x4083cc20, 0x56c6: 0x4083ce20, 0x56c7: 0x4083d020, + 0x56c8: 0x4083d220, 0x56c9: 0x4083d420, 0x56ca: 0x4083d620, 0x56cb: 0x4083d820, + 0x56cc: 0x4083da20, 0x56cd: 0x4083dc20, 0x56ce: 0x4083de20, 0x56cf: 0x4083e020, + 0x56d0: 0x4083e220, 0x56d1: 0x4083e420, 0x56d2: 0x4083e620, 0x56d3: 0x4083e820, + 0x56d4: 0x4083ea20, 0x56d5: 0x4083ec20, 0x56d6: 0x4083ee20, 0x56d7: 0x4083f020, + 0x56d8: 0x4083f220, 0x56d9: 0x4083f420, 0x56da: 0x4083f620, 0x56db: 0x4083f820, + 0x56dc: 0x4083fa20, 0x56dd: 0x4083fc20, 0x56de: 0x4083fe20, 0x56df: 0x40840020, + 0x56e0: 0x40840220, 0x56e1: 0x40840420, 0x56e2: 0x40840620, 0x56e3: 0x40840820, + 0x56e4: 0x40840a20, 0x56e5: 0x40840c20, 0x56e6: 0x40840e20, 0x56e7: 0x40841020, + 0x56e8: 0x40841220, 0x56e9: 0x40841420, 0x56ea: 0x40841620, 0x56eb: 0x40841820, + 0x56ec: 0x40841a20, 0x56ed: 0x40841c20, 0x56ee: 0x40841e20, 0x56ef: 0x40842020, + 0x56f0: 0x40842220, 0x56f1: 0x40842420, 0x56f2: 0x40842620, 0x56f3: 0x40842820, + 0x56f4: 0x40842a20, 0x56f5: 0x40842c20, 0x56f6: 0x40842e20, 0x56f7: 0x40843020, + 0x56f8: 0x40843220, 0x56f9: 0x40843420, 0x56fa: 0x40843620, 0x56fb: 0x40843820, + 0x56fc: 0x40843a20, 0x56fd: 0x40843c20, 0x56fe: 0x40843e20, 0x56ff: 0x40844020, + // Block 0x15c, offset 0x5700 + 0x5700: 0x40844220, 0x5701: 0x40844420, 0x5702: 0x40844620, 0x5703: 0x40844820, + 0x5704: 0x40844a20, 0x5705: 0x40844c20, 0x5706: 0x40844e20, 0x5707: 0x40845020, + 0x5708: 0x40845220, 0x5709: 0x40845420, 0x570a: 0x40845620, 0x570b: 0x40845820, + 0x570c: 0x40845a20, 0x570d: 0x40845c20, 0x570e: 0x40845e20, 0x570f: 0x40846020, + 0x5710: 0x40846220, 0x5711: 0x40846420, 0x5712: 0x40846620, 0x5713: 0x40846820, + 0x5714: 0x40846a20, 0x5715: 0x40846c20, 0x5716: 0x40846e20, 0x5717: 0x40847020, + 0x5718: 0x40847220, 0x5719: 0x40847420, 0x571a: 0x40847620, 0x571b: 0x40847820, + 0x571c: 0x40847a20, 0x571d: 0x40847c20, 0x571e: 0x40847e20, 0x571f: 0x40848020, + 0x5720: 0x40848220, 0x5721: 0x40848420, 0x5722: 0x40848620, 0x5723: 0x40848820, + 0x5724: 0x40848a20, 0x5725: 0x40848c20, 0x5726: 0x40848e20, 0x5727: 0x40849020, + 0x5728: 0x40849220, 0x5729: 0x40849420, 0x572a: 0x40849620, 0x572b: 0x40849820, + 0x572c: 0x40849a20, 0x572d: 0x40849c20, 0x572e: 0x40849e20, 0x572f: 0x4084a020, + 0x5730: 0x4084a220, 0x5731: 0x4084a420, 0x5732: 0x4084a620, 0x5733: 0x4084a820, + 0x5734: 0x4084aa20, 0x5735: 0x4084ac20, 0x5736: 0x4084ae20, 0x5737: 0x4084b020, + 0x5738: 0x4084b220, 0x5739: 0x4084b420, 0x573a: 0x4084b620, 0x573b: 0x4084b820, + 0x573c: 0x4084ba20, 0x573d: 0x4084bc20, 0x573e: 0x4084be20, 0x573f: 0x4084c020, + // Block 0x15d, offset 0x5740 + 0x5740: 0x4084c220, 0x5741: 0x4084c420, 0x5742: 0x4084c620, 0x5743: 0x4084c820, + 0x5744: 0x4084ca20, 0x5745: 0x4084cc20, 0x5746: 0x4084ce20, 0x5747: 0x4084d020, + 0x5748: 0x4084d220, 0x5749: 0x4084d420, 0x574a: 0x4084d620, 0x574b: 0x4084d820, + 0x574c: 0x4084da20, 0x574d: 0x4084dc20, 0x574e: 0x4084de20, 0x574f: 0x4084e020, + 0x5750: 0x4084e220, 0x5751: 0x4084e420, 0x5752: 0x4084e620, 0x5753: 0x4084e820, + 0x5754: 0x4084ea20, 0x5755: 0x4084ec20, 0x5756: 0x4084ee20, 0x5757: 0x4084f020, + 0x5758: 0x4084f220, 0x5759: 0x4084f420, 0x575a: 0x4084f620, 0x575b: 0x4084f820, + 0x575c: 0x4084fa20, 0x575d: 0x4084fc20, 0x575e: 0x4084fe20, 0x575f: 0x40850020, + 0x5760: 0x40850220, 0x5761: 0x40850420, 0x5762: 0x40850620, 0x5763: 0x40850820, + 0x5764: 0x40850a20, 0x5765: 0x40850c20, 0x5766: 0x40850e20, 0x5767: 0x40851020, + 0x5768: 0x40851220, 0x5769: 0x40851420, 0x576a: 0x40851620, 0x576b: 0x40851820, + 0x576c: 0x40851a20, 0x576d: 0x40851c20, 0x576e: 0x40851e20, 0x576f: 0x40852020, + 0x5770: 0x40852220, 0x5771: 0x40852420, 0x5772: 0x40852620, 0x5773: 0x40852820, + 0x5774: 0x40852a20, 0x5775: 0x40852c20, 0x5776: 0x40852e20, 0x5777: 0x40853020, + 0x5778: 0x40853220, 0x5779: 0x40853420, 0x577a: 0x40853620, 0x577b: 0x40853820, + 0x577c: 0x40853a20, 0x577d: 0x40853c20, 0x577e: 0x40853e20, 0x577f: 0x40854020, + // Block 0x15e, offset 0x5780 + 0x5780: 0x40854220, 0x5781: 0x40854420, 0x5782: 0x40854620, 0x5783: 0x40854820, + 0x5784: 0x40854a20, 0x5785: 0x40854c20, 0x5786: 0x40854e20, 0x5787: 0x40855020, + 0x5788: 0x40855220, 0x5789: 0x40855420, 0x578a: 0x40855620, 0x578b: 0x40855820, + 0x578c: 0x40855a20, 0x578d: 0x40855c20, 0x578e: 0x40855e20, 0x578f: 0x40856020, + 0x5790: 0x40856220, 0x5791: 0x40856420, 0x5792: 0x40856620, 0x5793: 0x40856820, + 0x5794: 0x40856a20, 0x5795: 0x40856c20, 0x5796: 0x40856e20, 0x5797: 0x40857020, + 0x5798: 0x40857220, 0x5799: 0x40857420, 0x579a: 0x40857620, 0x579b: 0x40857820, + 0x579c: 0x40857a20, 0x579d: 0x40857c20, 0x579e: 0x40857e20, 0x579f: 0x40858020, + 0x57a0: 0x40858220, 0x57a1: 0x40858420, 0x57a2: 0x40858620, 0x57a3: 0x40858820, + 0x57a4: 0x40858a20, 0x57a5: 0x40858c20, 0x57a6: 0x40858e20, 0x57a7: 0x40859020, + 0x57a8: 0x40859220, 0x57a9: 0x40859420, 0x57aa: 0x40859620, 0x57ab: 0x40859820, + 0x57ac: 0x40859a20, 0x57ad: 0x40859c20, 0x57ae: 0x40859e20, 0x57af: 0x4085a020, + 0x57b0: 0x4085a220, 0x57b1: 0x4085a420, 0x57b2: 0x4085a620, 0x57b3: 0x4085a820, + 0x57b4: 0x4085aa20, 0x57b5: 0x4085ac20, 0x57b6: 0x4085ae20, 0x57b7: 0x4085b020, + 0x57b8: 0x4085b220, 0x57b9: 0x4085b420, 0x57ba: 0x4085b620, 0x57bb: 0x4085b820, + 0x57bc: 0x4085ba20, 0x57bd: 0x4085bc20, 0x57be: 0x4085be20, 0x57bf: 0x4085c020, + // Block 0x15f, offset 0x57c0 + 0x57c0: 0x4085c220, 0x57c1: 0x4085c420, 0x57c2: 0x4085c620, 0x57c3: 0x4085c820, + 0x57c4: 0x4085ca20, 0x57c5: 0x4085cc20, 0x57c6: 0x4085ce20, 0x57c7: 0x4085d020, + 0x57c8: 0x4085d220, 0x57c9: 0x4085d420, 0x57ca: 0x4085d620, 0x57cb: 0x4085d820, + 0x57cc: 0x4085da20, 0x57cd: 0x4085dc20, 0x57ce: 0x4085de20, 0x57cf: 0x4085e020, + 0x57d0: 0x4085e220, 0x57d1: 0x4085e420, 0x57d2: 0x4085e620, 0x57d3: 0x4085e820, + 0x57d4: 0x4085ea20, 0x57d5: 0x4085ec20, 0x57d6: 0x4085ee20, 0x57d7: 0x4085f020, + 0x57d8: 0x4085f220, 0x57d9: 0x4085f420, 0x57da: 0x4085f620, 0x57db: 0x4085f820, + 0x57dc: 0x4085fa20, 0x57dd: 0x4085fc20, 0x57de: 0x4085fe20, 0x57df: 0x40860020, + 0x57e0: 0x40860220, 0x57e1: 0x40860420, 0x57e2: 0x40860620, 0x57e3: 0x40860820, + 0x57e4: 0x40860a20, 0x57e5: 0x40860c20, 0x57e6: 0x40860e20, 0x57e7: 0x40861020, + 0x57e8: 0x40861220, 0x57e9: 0x40861420, 0x57ea: 0x40861620, 0x57eb: 0x40861820, + 0x57ec: 0x40861a20, 0x57ed: 0x40861c20, 0x57ee: 0x40861e20, + // Block 0x160, offset 0x5800 + 0x5800: 0x405e3a20, 0x5801: 0x405e3c20, 0x5802: 0x405e3e20, 0x5803: 0x405e4020, + 0x5804: 0x405e4220, 0x5805: 0x405e4420, 0x5806: 0x405e4620, 0x5807: 0x405e4820, + 0x5808: 0x405e4a20, 0x5809: 0x405e4c20, 0x580a: 0x405e4e20, 0x580b: 0x405e5020, + 0x580c: 0x405e5220, 0x580d: 0x405e5420, 0x580e: 0x405e5620, 0x580f: 0x405e5820, + 0x5810: 0x405e5a20, 0x5811: 0x405e5c20, 0x5812: 0x405e5e20, 0x5813: 0x405e6020, + 0x5814: 0x405e6220, 0x5815: 0x405e6420, 0x5816: 0x405e6620, 0x5817: 0x405e6820, + 0x5818: 0x405e6a20, 0x5819: 0x405e6c20, 0x581a: 0x405e6e20, 0x581b: 0x405e7020, + 0x581c: 0x405e7220, 0x581d: 0x405e7420, 0x581e: 0x405e7620, 0x581f: 0x405e7820, + 0x5820: 0x405e7a20, 0x5821: 0x405e7c20, 0x5822: 0x405e7e20, 0x5823: 0x405e8020, + 0x5824: 0x405e8220, 0x5825: 0x405e8420, 0x5826: 0x405e8620, 0x5827: 0x405e8820, + 0x5828: 0x405e8a20, 0x5829: 0x405e8c20, 0x582a: 0x405e8e20, 0x582b: 0x405e9020, + 0x582c: 0x405e9220, 0x582d: 0x405e9420, 0x582e: 0x405e9620, 0x582f: 0x405e9820, + 0x5830: 0x405e9a20, 0x5831: 0x405e9c20, 0x5832: 0x405e9e20, 0x5833: 0x405ea020, + 0x5834: 0x405ea220, 0x5835: 0x405ea420, 0x5836: 0x405ea620, 0x5837: 0x405ea820, + 0x5838: 0x405eaa20, 0x5839: 0x405eac20, 0x583a: 0x405eae20, 0x583b: 0x405eb020, + 0x583c: 0x405eb220, 0x583d: 0x405eb420, 0x583e: 0x405eb620, 0x583f: 0x405eb820, + // Block 0x161, offset 0x5840 + 0x5840: 0x405eba20, 0x5841: 0x405ebc20, 0x5842: 0x405ebe20, 0x5843: 0x405ec020, + 0x5844: 0x405ec220, 0x5845: 0x405ec420, 0x5846: 0x405ec620, 0x5847: 0x405ec820, + 0x5848: 0x405eca20, 0x5849: 0x405ecc20, 0x584a: 0x405ece20, 0x584b: 0x405ed020, + 0x584c: 0x405ed220, 0x584d: 0x405ed420, 0x584e: 0x405ed620, 0x584f: 0x405ed820, + 0x5850: 0x405eda20, 0x5851: 0x405edc20, 0x5852: 0x405ede20, 0x5853: 0x405ee020, + 0x5854: 0x405ee220, 0x5855: 0x405ee420, 0x5856: 0x405ee620, 0x5857: 0x405ee820, + 0x5858: 0x405eea20, 0x5859: 0x405eec20, 0x585a: 0x405eee20, 0x585b: 0x405ef020, + 0x585c: 0x405ef220, 0x585d: 0x405ef420, 0x585e: 0x405ef620, 0x585f: 0x405ef820, + 0x5860: 0x405efa20, 0x5861: 0x405efc20, 0x5862: 0x405efe20, 0x5863: 0x405f0020, + 0x5864: 0x405f0220, 0x5865: 0x405f0420, 0x5866: 0x405f0620, 0x5867: 0x405f0820, + 0x5868: 0x405f0a20, 0x5869: 0x405f0c20, 0x586a: 0x405f0e20, 0x586b: 0x405f1020, + 0x586c: 0x405f1220, 0x586d: 0x405f1420, 0x586e: 0x405f1620, 0x586f: 0x405f1820, + 0x5870: 0x405f1a20, 0x5871: 0x405f1c20, 0x5872: 0x405f1e20, 0x5873: 0x405f2020, + 0x5874: 0x405f2220, 0x5875: 0x405f2420, 0x5876: 0x405f2620, 0x5877: 0x405f2820, + 0x5878: 0x405f2a20, 0x5879: 0x405f2c20, 0x587a: 0x405f2e20, 0x587b: 0x405f3020, + 0x587c: 0x405f3220, 0x587d: 0x405f3420, 0x587e: 0x405f3620, 0x587f: 0x405f3820, + // Block 0x162, offset 0x5880 + 0x5880: 0x405f3a20, 0x5881: 0x405f3c20, 0x5882: 0x405f3e20, 0x5883: 0x405f4020, + 0x5884: 0x405f4220, 0x5885: 0x405f4420, 0x5886: 0x405f4620, 0x5887: 0x405f4820, + 0x5888: 0x405f4a20, 0x5889: 0x405f4c20, 0x588a: 0x405f4e20, 0x588b: 0x405f5020, + 0x588c: 0x405f5220, 0x588d: 0x405f5420, 0x588e: 0x405f5620, 0x588f: 0x405f5820, + 0x5890: 0x405f5a20, 0x5891: 0x405f5c20, 0x5892: 0x405f5e20, 0x5893: 0x405f6020, + 0x5894: 0x405f6220, 0x5895: 0x405f6420, 0x5896: 0x405f6620, 0x5897: 0x405f6820, + 0x5898: 0x405f6a20, 0x5899: 0x405f6c20, 0x589a: 0x405f6e20, 0x589b: 0x405f7020, + 0x589c: 0x405f7220, 0x589d: 0x405f7420, 0x589e: 0x405f7620, 0x589f: 0x405f7820, + 0x58a0: 0x405f7a20, 0x58a1: 0x405f7c20, 0x58a2: 0x405f7e20, 0x58a3: 0x405f8020, + 0x58a4: 0x405f8220, 0x58a5: 0x405f8420, 0x58a6: 0x405f8620, 0x58a7: 0x405f8820, + 0x58a8: 0x405f8a20, 0x58a9: 0x405f8c20, 0x58aa: 0x405f8e20, 0x58ab: 0x405f9020, + 0x58ac: 0x405f9220, 0x58ad: 0x405f9420, 0x58ae: 0x405f9620, 0x58af: 0x405f9820, + 0x58b0: 0x405f9a20, 0x58b1: 0x405f9c20, 0x58b2: 0x405f9e20, 0x58b3: 0x405fa020, + 0x58b4: 0x405fa220, 0x58b5: 0x405fa420, 0x58b6: 0x405fa620, 0x58b7: 0x405fa820, + 0x58b8: 0x405faa20, 0x58b9: 0x405fac20, 0x58ba: 0x405fae20, 0x58bb: 0x405fb020, + 0x58bc: 0x405fb220, 0x58bd: 0x405fb420, 0x58be: 0x405fb620, 0x58bf: 0x405fb820, + // Block 0x163, offset 0x58c0 + 0x58c0: 0x405fba20, 0x58c1: 0x405fbc20, 0x58c2: 0x405fbe20, 0x58c3: 0x405fc020, + 0x58c4: 0x405fc220, 0x58c5: 0x405fc420, 0x58c6: 0x405fc620, 0x58c7: 0x405fc820, + 0x58c8: 0x405fca20, 0x58c9: 0x405fcc20, 0x58ca: 0x405fce20, 0x58cb: 0x405fd020, + 0x58cc: 0x405fd220, 0x58cd: 0x405fd420, 0x58ce: 0x405fd620, 0x58cf: 0x405fd820, + 0x58d0: 0x405fda20, 0x58d1: 0x405fdc20, 0x58d2: 0x405fde20, 0x58d3: 0x405fe020, + 0x58d4: 0x405fe220, 0x58d5: 0x405fe420, 0x58d6: 0x405fe620, 0x58d7: 0x405fe820, + 0x58d8: 0x405fea20, 0x58d9: 0x405fec20, 0x58da: 0x405fee20, 0x58db: 0x405ff020, + 0x58dc: 0x405ff220, 0x58dd: 0x405ff420, 0x58de: 0x405ff620, 0x58df: 0x405ff820, + 0x58e0: 0x405ffa20, 0x58e1: 0x405ffc20, 0x58e2: 0x405ffe20, 0x58e3: 0x40600020, + 0x58e4: 0x40600220, 0x58e5: 0x40600420, 0x58e6: 0x40600620, 0x58e7: 0x40600820, + 0x58e8: 0x40600a20, 0x58e9: 0x40600c20, 0x58ea: 0x40600e20, 0x58eb: 0x40601020, + 0x58ec: 0x40601220, 0x58ed: 0x40601420, 0x58ee: 0x40601620, 0x58ef: 0x40601820, + 0x58f0: 0x40601a20, 0x58f1: 0x40601c20, 0x58f2: 0x40601e20, 0x58f3: 0x40602020, + 0x58f4: 0x40602220, 0x58f5: 0x40602420, 0x58f6: 0x40602620, 0x58f7: 0x40602820, + 0x58f8: 0x40602a20, 0x58f9: 0x40602c20, 0x58fa: 0x40602e20, 0x58fb: 0x40603020, + 0x58fc: 0x40603220, 0x58fd: 0x40603420, 0x58fe: 0x40603620, 0x58ff: 0x40603820, + // Block 0x164, offset 0x5900 + 0x5900: 0x40603a20, 0x5901: 0x40603c20, 0x5902: 0x40603e20, 0x5903: 0x40604020, + 0x5904: 0x40604220, 0x5905: 0x40604420, 0x5906: 0x40604620, 0x5907: 0x40604820, + 0x5908: 0x40604a20, 0x5909: 0x40604c20, 0x590a: 0x40604e20, 0x590b: 0x40605020, + 0x590c: 0x40605220, 0x590d: 0x40605420, 0x590e: 0x40605620, 0x590f: 0x40605820, + 0x5910: 0x40605a20, 0x5911: 0x40605c20, 0x5912: 0x40605e20, 0x5913: 0x40606020, + 0x5914: 0x40606220, 0x5915: 0x40606420, 0x5916: 0x40606620, 0x5917: 0x40606820, + 0x5918: 0x40606a20, 0x5919: 0x40606c20, 0x591a: 0x40606e20, 0x591b: 0x40607020, + 0x591c: 0x40607220, 0x591d: 0x40607420, 0x591e: 0x40607620, 0x591f: 0x40607820, + 0x5920: 0x40607a20, 0x5921: 0x40607c20, 0x5922: 0x40607e20, 0x5923: 0x40608020, + 0x5924: 0x40608220, 0x5925: 0x40608420, 0x5926: 0x40608620, 0x5927: 0x40608820, + 0x5928: 0x40608a20, 0x5929: 0x40608c20, 0x592a: 0x40608e20, 0x592b: 0x40609020, + 0x592c: 0x40609220, 0x592d: 0x40609420, 0x592e: 0x40609620, 0x592f: 0x40609820, + 0x5930: 0x40609a20, 0x5931: 0x40609c20, 0x5932: 0x40609e20, 0x5933: 0x4060a020, + 0x5934: 0x4060a220, 0x5935: 0x4060a420, 0x5936: 0x4060a620, 0x5937: 0x4060a820, + 0x5938: 0x4060aa20, 0x5939: 0x4060ac20, 0x593a: 0x4060ae20, 0x593b: 0x4060b020, + 0x593c: 0x4060b220, 0x593d: 0x4060b420, 0x593e: 0x4060b620, 0x593f: 0x4060b820, + // Block 0x165, offset 0x5940 + 0x5940: 0x4060ba20, 0x5941: 0x4060bc20, 0x5942: 0x4060be20, 0x5943: 0x4060c020, + 0x5944: 0x4060c220, 0x5945: 0x4060c420, 0x5946: 0x4060c620, 0x5947: 0x4060c820, + 0x5948: 0x4060ca20, 0x5949: 0x4060cc20, 0x594a: 0x4060ce20, 0x594b: 0x4060d020, + 0x594c: 0x4060d220, 0x594d: 0x4060d420, 0x594e: 0x4060d620, 0x594f: 0x4060d820, + 0x5950: 0x4060da20, 0x5951: 0x4060dc20, 0x5952: 0x4060de20, 0x5953: 0x4060e020, + 0x5954: 0x4060e220, 0x5955: 0x4060e420, 0x5956: 0x4060e620, 0x5957: 0x4060e820, + 0x5958: 0x4060ea20, 0x5959: 0x4060ec20, 0x595a: 0x4060ee20, 0x595b: 0x4060f020, + 0x595c: 0x4060f220, 0x595d: 0x4060f420, 0x595e: 0x4060f620, 0x595f: 0x4060f820, + 0x5960: 0x4060fa20, 0x5961: 0x4060fc20, 0x5962: 0x4060fe20, 0x5963: 0x40610020, + 0x5964: 0x40610220, 0x5965: 0x40610420, 0x5966: 0x40610620, 0x5967: 0x40610820, + 0x5968: 0x40610a20, 0x5969: 0x40610c20, 0x596a: 0x40610e20, 0x596b: 0x40611020, + 0x596c: 0x40611220, 0x596d: 0x40611420, 0x596e: 0x40611620, 0x596f: 0x40611820, + 0x5970: 0x40611a20, 0x5971: 0x40611c20, 0x5972: 0x40611e20, 0x5973: 0x40612020, + 0x5974: 0x40612220, 0x5975: 0x40612420, 0x5976: 0x40612620, 0x5977: 0x40612820, + 0x5978: 0x40612a20, 0x5979: 0x40612c20, 0x597a: 0x40612e20, 0x597b: 0x40613020, + 0x597c: 0x40613220, 0x597d: 0x40613420, 0x597e: 0x40613620, 0x597f: 0x40613820, + // Block 0x166, offset 0x5980 + 0x5980: 0x40613a20, 0x5981: 0x40613c20, 0x5982: 0x40613e20, 0x5983: 0x40614020, + 0x5984: 0x40614220, 0x5985: 0x40614420, 0x5986: 0x40614620, 0x5987: 0x40614820, + 0x5988: 0x40614a20, 0x5989: 0x40614c20, 0x598a: 0x40614e20, 0x598b: 0x40615020, + 0x598c: 0x40615220, 0x598d: 0x40615420, 0x598e: 0x40615620, 0x598f: 0x40615820, + 0x5990: 0x40615a20, 0x5991: 0x40615c20, 0x5992: 0x40615e20, 0x5993: 0x40616020, + 0x5994: 0x40616220, 0x5995: 0x40616420, 0x5996: 0x40616620, 0x5997: 0x40616820, + 0x5998: 0x40616a20, 0x5999: 0x40616c20, 0x599a: 0x40616e20, 0x599b: 0x40617020, + 0x599c: 0x40617220, 0x599d: 0x40617420, 0x599e: 0x40617620, 0x599f: 0x40617820, + 0x59a0: 0x40617a20, 0x59a1: 0x40617c20, 0x59a2: 0x40617e20, 0x59a3: 0x40618020, + 0x59a4: 0x40618220, 0x59a5: 0x40618420, 0x59a6: 0x40618620, 0x59a7: 0x40618820, + 0x59a8: 0x40618a20, 0x59a9: 0x40618c20, 0x59aa: 0x40618e20, 0x59ab: 0x40619020, + 0x59ac: 0x40619220, 0x59ad: 0x40619420, 0x59ae: 0x40619620, 0x59af: 0x40619820, + 0x59b0: 0x40619a20, 0x59b1: 0x40619c20, 0x59b2: 0x40619e20, 0x59b3: 0x4061a020, + 0x59b4: 0x4061a220, 0x59b5: 0x4061a420, 0x59b6: 0x4061a620, 0x59b7: 0x4061a820, + 0x59b8: 0x4061aa20, 0x59b9: 0x4061ac20, 0x59ba: 0x4061ae20, 0x59bb: 0x4061b020, + 0x59bc: 0x4061b220, 0x59bd: 0x4061b420, 0x59be: 0x4061b620, 0x59bf: 0x4061b820, + // Block 0x167, offset 0x59c0 + 0x59c0: 0x4061ba20, 0x59c1: 0x4061bc20, 0x59c2: 0x4061be20, 0x59c3: 0x4061c020, + 0x59c4: 0x4061c220, 0x59c5: 0x4061c420, 0x59c6: 0x4061c620, 0x59c7: 0x4061c820, + 0x59c8: 0x4061ca20, 0x59c9: 0x4061cc20, 0x59ca: 0x4061ce20, 0x59cb: 0x4061d020, + 0x59cc: 0x4061d220, 0x59cd: 0x4061d420, 0x59ce: 0x4061d620, 0x59cf: 0x4061d820, + 0x59d0: 0x4061da20, 0x59d1: 0x4061dc20, 0x59d2: 0x4061de20, 0x59d3: 0x4061e020, + 0x59d4: 0x4061e220, 0x59d5: 0x4061e420, 0x59d6: 0x4061e620, 0x59d7: 0x4061e820, + 0x59d8: 0x4061ea20, 0x59d9: 0x4061ec20, 0x59da: 0x4061ee20, 0x59db: 0x4061f020, + 0x59dc: 0x4061f220, 0x59dd: 0x4061f420, 0x59de: 0x4061f620, 0x59df: 0x4061f820, + 0x59e0: 0x4061fa20, 0x59e1: 0x4061fc20, 0x59e2: 0x4061fe20, 0x59e3: 0x40620020, + 0x59e4: 0x40620220, 0x59e5: 0x40620420, 0x59e6: 0x40620620, 0x59e7: 0x40620820, + 0x59e8: 0x40620a20, 0x59e9: 0x40620c20, 0x59ea: 0x40620e20, 0x59eb: 0x40621020, + 0x59ec: 0x40621220, 0x59ed: 0x40621420, 0x59ee: 0x40621620, 0x59ef: 0x40621820, + 0x59f0: 0x40621a20, 0x59f1: 0x40621c20, 0x59f2: 0x40621e20, 0x59f3: 0x40622020, + 0x59f4: 0x40622220, 0x59f5: 0x40622420, 0x59f6: 0x40622620, 0x59f7: 0x40622820, + 0x59f8: 0x40622a20, 0x59f9: 0x40622c20, 0x59fa: 0x40622e20, 0x59fb: 0x40623020, + 0x59fc: 0x40623220, 0x59fd: 0x40623420, 0x59fe: 0x40623620, 0x59ff: 0x40623820, + // Block 0x168, offset 0x5a00 + 0x5a00: 0x40623a20, 0x5a01: 0x40623c20, 0x5a02: 0x40623e20, 0x5a03: 0x40624020, + 0x5a04: 0x40624220, 0x5a05: 0x40624420, 0x5a06: 0x40624620, 0x5a07: 0x40624820, + 0x5a08: 0x40624a20, 0x5a09: 0x40624c20, 0x5a0a: 0x40624e20, 0x5a0b: 0x40625020, + 0x5a0c: 0x40625220, 0x5a0d: 0x40625420, 0x5a0e: 0x40625620, 0x5a0f: 0x40625820, + 0x5a10: 0x40625a20, 0x5a11: 0x40625c20, 0x5a12: 0x40625e20, 0x5a13: 0x40626020, + 0x5a14: 0x40626220, 0x5a15: 0x40626420, 0x5a16: 0x40626620, 0x5a17: 0x40626820, + 0x5a18: 0x40626a20, 0x5a19: 0x40626c20, 0x5a1a: 0x40626e20, 0x5a1b: 0x40627020, + 0x5a1c: 0x40627220, 0x5a1d: 0x40627420, 0x5a1e: 0x40627620, 0x5a1f: 0x40627820, + 0x5a20: 0x40627a20, 0x5a21: 0x40627c20, 0x5a22: 0x40627e20, 0x5a23: 0x40628020, + 0x5a24: 0x40628220, 0x5a25: 0x40628420, 0x5a26: 0x40628620, 0x5a27: 0x40628820, + 0x5a28: 0x40628a20, 0x5a29: 0x40628c20, 0x5a2a: 0x40628e20, 0x5a2b: 0x40629020, + 0x5a2c: 0x40629220, 0x5a2d: 0x40629420, 0x5a2e: 0x40629620, 0x5a2f: 0x40629820, + 0x5a30: 0x40629a20, 0x5a31: 0x40629c20, 0x5a32: 0x40629e20, 0x5a33: 0x4062a020, + 0x5a34: 0x4062a220, 0x5a35: 0x4062a420, 0x5a36: 0x4062a620, 0x5a37: 0x4062a820, + 0x5a38: 0x4062aa20, + // Block 0x169, offset 0x5a40 + 0x5a40: 0x406fb620, 0x5a41: 0x406fb820, 0x5a42: 0x406fba20, 0x5a43: 0x406fbc20, + 0x5a44: 0x406fbe20, 0x5a45: 0x406fc020, 0x5a46: 0x006fbe84, 0x5a47: 0x406fc220, + 0x5a48: 0x406fc420, 0x5a49: 0x406fc620, 0x5a4a: 0x406fc820, 0x5a4b: 0x406fca20, + 0x5a4c: 0x406fcc20, 0x5a4d: 0x406fce20, 0x5a4e: 0x406fd020, 0x5a4f: 0x406fd220, + 0x5a50: 0x406fd420, 0x5a51: 0x406fd620, 0x5a52: 0x406fd820, 0x5a53: 0x006fd484, + 0x5a54: 0x406fda20, 0x5a55: 0x406fdc20, 0x5a56: 0x406fde20, 0x5a57: 0x406fe020, + 0x5a58: 0x406fe220, 0x5a59: 0x406fe420, 0x5a5a: 0x406fe620, 0x5a5b: 0x406fe820, + 0x5a5c: 0x406fea20, 0x5a5d: 0x406fec20, 0x5a5e: 0x406fee20, 0x5a5f: 0x406ff020, + 0x5a60: 0x406ff220, 0x5a61: 0x406ff420, 0x5a62: 0x406ff620, 0x5a63: 0x406ff820, + 0x5a64: 0x406ffa20, 0x5a65: 0x006ff884, 0x5a66: 0x406ffc20, 0x5a67: 0x406ffe20, + 0x5a68: 0x40700020, 0x5a69: 0x40700220, 0x5a6a: 0x40700420, 0x5a6b: 0x40700620, + 0x5a6c: 0x40700820, 0x5a6d: 0x40700a20, 0x5a6e: 0x40700c20, 0x5a6f: 0x40700e20, + 0x5a70: 0x40701020, 0x5a71: 0x40701220, 0x5a72: 0x40701420, 0x5a73: 0x40701620, + 0x5a74: 0x40701820, 0x5a75: 0x40701a20, 0x5a76: 0x40701c20, 0x5a77: 0x40701e20, + 0x5a78: 0x40702020, 0x5a79: 0x40702220, 0x5a7a: 0x40702420, 0x5a7b: 0x40702620, + 0x5a7c: 0x40702820, 0x5a7d: 0x40702a20, 0x5a7e: 0x40702c20, 0x5a7f: 0x00702a84, + // Block 0x16a, offset 0x5a80 + 0x5a80: 0x40702e20, 0x5a81: 0x40703020, 0x5a82: 0x40703220, 0x5a83: 0x40703420, + 0x5a84: 0x40703620, + 0x5a90: 0x40703820, 0x5a91: 0x40703a20, 0x5a92: 0x40703c20, 0x5a93: 0x40703e20, + 0x5a94: 0x40704020, 0x5a95: 0x40704220, 0x5a96: 0x40704420, 0x5a97: 0x40704620, + 0x5a98: 0x40704820, 0x5a99: 0x40704a20, 0x5a9a: 0x40704c20, 0x5a9b: 0x40704e20, + 0x5a9c: 0x40705020, 0x5a9d: 0x40705220, 0x5a9e: 0x40705420, 0x5a9f: 0x40705620, + 0x5aa0: 0x40705820, 0x5aa1: 0x40705a20, 0x5aa2: 0x40705c20, 0x5aa3: 0x40705e20, + 0x5aa4: 0x40706020, 0x5aa5: 0x40706220, 0x5aa6: 0x40706420, 0x5aa7: 0x40706620, + 0x5aa8: 0x40706820, 0x5aa9: 0x40706a20, 0x5aaa: 0x40706c20, 0x5aab: 0x40706e20, + 0x5aac: 0x40707020, 0x5aad: 0x40707220, 0x5aae: 0x40707420, 0x5aaf: 0x40707620, + 0x5ab0: 0x40707820, 0x5ab1: 0x40707a20, 0x5ab2: 0x40707c20, 0x5ab3: 0x40707e20, + 0x5ab4: 0x40708020, 0x5ab5: 0x40708220, 0x5ab6: 0x40708420, 0x5ab7: 0x40708620, + 0x5ab8: 0x40708820, 0x5ab9: 0x40708a20, 0x5aba: 0x40708c20, 0x5abb: 0x40708e20, + 0x5abc: 0x40709020, 0x5abd: 0x40709220, 0x5abe: 0x40709420, + // Block 0x16b, offset 0x5ac0 + 0x5acf: 0x40709620, + 0x5ad0: 0x40709820, 0x5ad1: 0x40709a20, 0x5ad2: 0x40709c20, 0x5ad3: 0x40709e20, + 0x5ad4: 0x4070a020, 0x5ad5: 0x4070a220, 0x5ad6: 0x4070a420, 0x5ad7: 0x4070a620, + 0x5ad8: 0x4070a820, 0x5ad9: 0x4070aa20, 0x5ada: 0x4070ac20, 0x5adb: 0x4070ae20, + 0x5adc: 0x4070b020, 0x5add: 0x4070b220, 0x5ade: 0x4070b420, 0x5adf: 0x4070b620, + // Block 0x16c, offset 0x5b00 + 0x5b00: 0x00657c91, 0x5b01: 0x0065c28e, + // Block 0x16d, offset 0x5b40 + 0x5b40: 0x401ba420, 0x5b41: 0x401ba620, 0x5b42: 0x401ba820, 0x5b43: 0x401baa20, + 0x5b44: 0x401bac20, 0x5b45: 0x401bae20, 0x5b46: 0x401bb020, 0x5b47: 0x401bb220, + 0x5b48: 0x401bb420, 0x5b49: 0x401bb620, 0x5b4a: 0x401bb820, 0x5b4b: 0x401bba20, + 0x5b4c: 0x401bbc20, 0x5b4d: 0x401bbe20, 0x5b4e: 0x401bc020, 0x5b4f: 0x401bc220, + 0x5b50: 0x401bc420, 0x5b51: 0x401bc620, 0x5b52: 0x401bc820, 0x5b53: 0x401bca20, + 0x5b54: 0x401bcc20, 0x5b55: 0x401bce20, 0x5b56: 0x401bd020, 0x5b57: 0x401bd220, + 0x5b58: 0x401bd420, 0x5b59: 0x401bd620, 0x5b5a: 0x401bd820, 0x5b5b: 0x401bda20, + 0x5b5c: 0x401bdc20, 0x5b5d: 0x401bde20, 0x5b5e: 0x401be020, 0x5b5f: 0x401be220, + 0x5b60: 0x401be420, 0x5b61: 0x401be620, 0x5b62: 0x401be820, 0x5b63: 0x401bea20, + 0x5b64: 0x401bec20, 0x5b65: 0x401bee20, 0x5b66: 0x401bf020, 0x5b67: 0x401bf220, + 0x5b68: 0x401bf420, 0x5b69: 0x401bf620, 0x5b6a: 0x401bf820, 0x5b6b: 0x401bfa20, + 0x5b6c: 0x401bfc20, 0x5b6d: 0x401bfe20, 0x5b6e: 0x401c0020, 0x5b6f: 0x401c0220, + 0x5b70: 0x401c0420, 0x5b71: 0x401c0620, 0x5b72: 0x401c0820, 0x5b73: 0x401c0a20, + 0x5b74: 0x401c0c20, 0x5b75: 0x401c0e20, 0x5b76: 0x401c1020, 0x5b77: 0x401c1220, + 0x5b78: 0x401c1420, 0x5b79: 0x401c1620, 0x5b7a: 0x401c1820, 0x5b7b: 0x401c1a20, + 0x5b7c: 0x401c1c20, 0x5b7d: 0x401c1e20, 0x5b7e: 0x401c2020, 0x5b7f: 0x401c2220, + // Block 0x16e, offset 0x5b80 + 0x5b80: 0x401c2420, 0x5b81: 0x401c2620, 0x5b82: 0x401c2820, 0x5b83: 0x401c2a20, + 0x5b84: 0x401c2c20, 0x5b85: 0x401c2e20, 0x5b86: 0x401c3020, 0x5b87: 0x401c3220, + 0x5b88: 0x401c3420, 0x5b89: 0x401c3620, 0x5b8a: 0x401c3820, 0x5b8b: 0x401c3a20, + 0x5b8c: 0x401c3c20, 0x5b8d: 0x401c3e20, 0x5b8e: 0x401c4020, 0x5b8f: 0x401c4220, + 0x5b90: 0x401c4420, 0x5b91: 0x401c4620, 0x5b92: 0x401c4820, 0x5b93: 0x401c4a20, + 0x5b94: 0x401c4c20, 0x5b95: 0x401c4e20, 0x5b96: 0x401c5020, 0x5b97: 0x401c5220, + 0x5b98: 0x401c5420, 0x5b99: 0x401c5620, 0x5b9a: 0x401c5820, 0x5b9b: 0x401c5a20, + 0x5b9c: 0x401c5c20, 0x5b9d: 0x401c5e20, 0x5b9e: 0x401c6020, 0x5b9f: 0x401c6220, + 0x5ba0: 0x401c6420, 0x5ba1: 0x401c6620, 0x5ba2: 0x401c6820, 0x5ba3: 0x401c6a20, + 0x5ba4: 0x401c6c20, 0x5ba5: 0x401c6e20, 0x5ba6: 0x401c7020, 0x5ba7: 0x401c7220, + 0x5ba8: 0x401c7420, 0x5ba9: 0x401c7620, 0x5baa: 0x401c7820, 0x5bab: 0x401c7a20, + 0x5bac: 0x401c7c20, 0x5bad: 0x401c7e20, 0x5bae: 0x401c8020, 0x5baf: 0x401c8220, + 0x5bb0: 0x401c8420, 0x5bb1: 0x401c8620, 0x5bb2: 0x401c8820, 0x5bb3: 0x401c8a20, + 0x5bb4: 0x401c8c20, 0x5bb5: 0x401c8e20, 0x5bb6: 0x401c9020, 0x5bb7: 0x401c9220, + 0x5bb8: 0x401c9420, 0x5bb9: 0x401c9620, 0x5bba: 0x401c9820, 0x5bbb: 0x401c9a20, + 0x5bbc: 0x401c9c20, 0x5bbd: 0x401c9e20, 0x5bbe: 0x401ca020, 0x5bbf: 0x401ca220, + // Block 0x16f, offset 0x5bc0 + 0x5bc0: 0x401ca420, 0x5bc1: 0x401ca620, 0x5bc2: 0x401ca820, 0x5bc3: 0x401caa20, + 0x5bc4: 0x401cac20, 0x5bc5: 0x401cae20, 0x5bc6: 0x401cb020, 0x5bc7: 0x401cb220, + 0x5bc8: 0x401cb420, 0x5bc9: 0x401cb620, 0x5bca: 0x401cb820, 0x5bcb: 0x401cba20, + 0x5bcc: 0x401cbc20, 0x5bcd: 0x401cbe20, 0x5bce: 0x401cc020, 0x5bcf: 0x401cc220, + 0x5bd0: 0x401cc420, 0x5bd1: 0x401cc620, 0x5bd2: 0x401cc820, 0x5bd3: 0x401cca20, + 0x5bd4: 0x401ccc20, 0x5bd5: 0x401cce20, 0x5bd6: 0x401cd020, 0x5bd7: 0x401cd220, + 0x5bd8: 0x401cd420, 0x5bd9: 0x401cd620, 0x5bda: 0x401cd820, 0x5bdb: 0x401cda20, + 0x5bdc: 0x401cdc20, 0x5bdd: 0x401cde20, 0x5bde: 0x401ce020, 0x5bdf: 0x401ce220, + 0x5be0: 0x401ce420, 0x5be1: 0x401ce620, 0x5be2: 0x401ce820, 0x5be3: 0x401cea20, + 0x5be4: 0x401cec20, 0x5be5: 0x401cee20, 0x5be6: 0x401cf020, 0x5be7: 0x401cf220, + 0x5be8: 0x401cf420, 0x5be9: 0x401cf620, 0x5bea: 0x401cf820, 0x5beb: 0x401cfa20, + 0x5bec: 0x401cfc20, 0x5bed: 0x401cfe20, 0x5bee: 0x401d0020, 0x5bef: 0x401d0220, + 0x5bf0: 0x401d0420, 0x5bf1: 0x401d0620, 0x5bf2: 0x401d0820, 0x5bf3: 0x401d0a20, + 0x5bf4: 0x401d0c20, 0x5bf5: 0x401d0e20, 0x5bf6: 0x401d1020, 0x5bf7: 0x401d1220, + 0x5bf8: 0x401d1420, 0x5bf9: 0x401d1620, 0x5bfa: 0x401d1820, 0x5bfb: 0x401d1a20, + 0x5bfc: 0x401d1c20, 0x5bfd: 0x401d1e20, 0x5bfe: 0x401d2020, 0x5bff: 0x401d2220, + // Block 0x170, offset 0x5c00 + 0x5c00: 0x401d2420, 0x5c01: 0x401d2620, 0x5c02: 0x401d2820, 0x5c03: 0x401d2a20, + 0x5c04: 0x401d2c20, 0x5c05: 0x401d2e20, 0x5c06: 0x401d3020, 0x5c07: 0x401d3220, + 0x5c08: 0x401d3420, 0x5c09: 0x401d3620, 0x5c0a: 0x401d3820, 0x5c0b: 0x401d3a20, + 0x5c0c: 0x401d3c20, 0x5c0d: 0x401d3e20, 0x5c0e: 0x401d4020, 0x5c0f: 0x401d4220, + 0x5c10: 0x401d4420, 0x5c11: 0x401d4620, 0x5c12: 0x401d4820, 0x5c13: 0x401d4a20, + 0x5c14: 0x401d4c20, 0x5c15: 0x401d4e20, 0x5c16: 0x401d5020, 0x5c17: 0x401d5220, + 0x5c18: 0x401d5420, 0x5c19: 0x401d5620, 0x5c1a: 0x401d5820, 0x5c1b: 0x401d5a20, + 0x5c1c: 0x401d5c20, 0x5c1d: 0x401d5e20, 0x5c1e: 0x401d6020, 0x5c1f: 0x401d6220, + 0x5c20: 0x401d6420, 0x5c21: 0x401d6620, 0x5c22: 0x401d6820, 0x5c23: 0x401d6a20, + 0x5c24: 0x401d6c20, 0x5c25: 0x401d6e20, 0x5c26: 0x401d7020, 0x5c27: 0x401d7220, + 0x5c28: 0x401d7420, 0x5c29: 0x401d7620, 0x5c2a: 0x401d7820, 0x5c2b: 0x401d7a20, + 0x5c2c: 0x401d7c20, 0x5c2d: 0x401d7e20, 0x5c2e: 0x401d8020, 0x5c2f: 0x401d8220, + 0x5c30: 0x401d8420, 0x5c31: 0x401d8620, 0x5c32: 0x401d8820, 0x5c33: 0x401d8a20, + 0x5c34: 0x401d8c20, 0x5c35: 0x401d8e20, + // Block 0x171, offset 0x5c40 + 0x5c40: 0x401d9020, 0x5c41: 0x401d9220, 0x5c42: 0x401d9420, 0x5c43: 0x401d9620, + 0x5c44: 0x401d9820, 0x5c45: 0x401d9a20, 0x5c46: 0x401d9c20, 0x5c47: 0x401d9e20, + 0x5c48: 0x401da020, 0x5c49: 0x401da220, 0x5c4a: 0x401da420, 0x5c4b: 0x401da620, + 0x5c4c: 0x401da820, 0x5c4d: 0x401daa20, 0x5c4e: 0x401dac20, 0x5c4f: 0x401dae20, + 0x5c50: 0x401db020, 0x5c51: 0x401db220, 0x5c52: 0x401db420, 0x5c53: 0x401db620, + 0x5c54: 0x401db820, 0x5c55: 0x401dba20, 0x5c56: 0x401dbc20, 0x5c57: 0x401dbe20, + 0x5c58: 0x401dc020, 0x5c59: 0x401dc220, 0x5c5a: 0x401dc420, 0x5c5b: 0x401dc620, + 0x5c5c: 0x401dc820, 0x5c5d: 0x401dca20, 0x5c5e: 0x401dcc20, 0x5c5f: 0x401dce20, + 0x5c60: 0x401dd020, 0x5c61: 0x401dd220, 0x5c62: 0x401dd420, 0x5c63: 0x401dd620, + 0x5c64: 0x401dd820, 0x5c65: 0x401dda20, 0x5c66: 0x401ddc20, + 0x5c69: 0x401e0420, 0x5c6a: 0x401de420, 0x5c6b: 0x401de620, + 0x5c6c: 0x401de820, 0x5c6d: 0x401dea20, 0x5c6e: 0x401dec20, 0x5c6f: 0x401dee20, + 0x5c70: 0x401df020, 0x5c71: 0x401df220, 0x5c72: 0x401df420, 0x5c73: 0x401df620, + 0x5c74: 0x401df820, 0x5c75: 0x401dfa20, 0x5c76: 0x401dfc20, 0x5c77: 0x401dfe20, + 0x5c78: 0x401e0020, 0x5c79: 0x401e0220, 0x5c7a: 0x401e0620, 0x5c7b: 0x401e0820, + 0x5c7c: 0x401e0a20, 0x5c7d: 0x401e0c20, 0x5c7e: 0x401e0e20, 0x5c7f: 0x401e1020, + // Block 0x172, offset 0x5c80 + 0x5c80: 0x401e1220, 0x5c81: 0x401e1420, 0x5c82: 0x401e1620, 0x5c83: 0x401e1820, + 0x5c84: 0x401e1a20, 0x5c85: 0x401e1c20, 0x5c86: 0x401e1e20, 0x5c87: 0x401e2020, + 0x5c88: 0x401e2220, 0x5c89: 0x401e2420, 0x5c8a: 0x401e2620, 0x5c8b: 0x401e2820, + 0x5c8c: 0x401e2a20, 0x5c8d: 0x401e2c20, 0x5c8e: 0x401e2e20, 0x5c8f: 0x401e3020, + 0x5c90: 0x401e3220, 0x5c91: 0x401e3420, 0x5c92: 0x401e3620, 0x5c93: 0x401e3820, + 0x5c94: 0x401e3a20, 0x5c95: 0x401e3c20, 0x5c96: 0x401e3e20, 0x5c97: 0x401e4020, + 0x5c98: 0x401e4220, 0x5c99: 0x401e4420, 0x5c9a: 0x401e4620, 0x5c9b: 0x401e4820, + 0x5c9c: 0x401e4a20, 0x5c9d: 0x401e4c20, 0x5c9e: 0x401e4020, 0x5c9f: 0x401e4220, + 0x5ca0: 0x401e4220, 0x5ca1: 0x401e4220, 0x5ca2: 0x401e4220, 0x5ca3: 0x401e4220, + 0x5ca4: 0x401e4220, 0x5ca5: 0xad800000, 0x5ca6: 0xad800000, 0x5ca7: 0xa0100000, + 0x5ca8: 0xa0100000, 0x5ca9: 0xa0100000, 0x5caa: 0x401e4e20, 0x5cab: 0x401e5020, + 0x5cac: 0x401e5220, 0x5cad: 0xae200000, 0x5cae: 0xad800000, 0x5caf: 0xad800000, + 0x5cb0: 0xad800000, 0x5cb1: 0xad800000, 0x5cb2: 0xad800000, 0x5cb3: 0xa0000000, + 0x5cb4: 0xa0000000, 0x5cb5: 0xa0000000, 0x5cb6: 0xa0000000, 0x5cb7: 0xa0000000, + 0x5cb8: 0xa0000000, 0x5cb9: 0xa0000000, 0x5cba: 0xa0000000, 0x5cbb: 0xadc00000, + 0x5cbc: 0xadc00000, 0x5cbd: 0xadc00000, 0x5cbe: 0xadc00000, 0x5cbf: 0xadc00000, + // Block 0x173, offset 0x5cc0 + 0x5cc0: 0xadc00000, 0x5cc1: 0xadc00000, 0x5cc2: 0xadc00000, 0x5cc3: 0x401e5420, + 0x5cc4: 0x401e5620, 0x5cc5: 0xae600000, 0x5cc6: 0xae600000, 0x5cc7: 0xae600000, + 0x5cc8: 0xae600000, 0x5cc9: 0xae600000, 0x5cca: 0xadc00000, 0x5ccb: 0xadc00000, + 0x5ccc: 0x401e5820, 0x5ccd: 0x401e5a20, 0x5cce: 0x401e5c20, 0x5ccf: 0x401e5e20, + 0x5cd0: 0x401e6020, 0x5cd1: 0x401e6220, 0x5cd2: 0x401e6420, 0x5cd3: 0x401e6620, + 0x5cd4: 0x401e6820, 0x5cd5: 0x401e6a20, 0x5cd6: 0x401e6c20, 0x5cd7: 0x401e6e20, + 0x5cd8: 0x401e7020, 0x5cd9: 0x401e7220, 0x5cda: 0x401e7420, 0x5cdb: 0x401e7620, + 0x5cdc: 0x401e7820, 0x5cdd: 0x401e7a20, 0x5cde: 0x401e7c20, 0x5cdf: 0x401e7e20, + 0x5ce0: 0x401e8020, 0x5ce1: 0x401e8220, 0x5ce2: 0x401e8420, 0x5ce3: 0x401e8620, + 0x5ce4: 0x401e8820, 0x5ce5: 0x401e8a20, 0x5ce6: 0x401e8c20, 0x5ce7: 0x401e8e20, + 0x5ce8: 0x401e9020, 0x5ce9: 0x401e9220, 0x5cea: 0xae600000, 0x5ceb: 0xae600000, + 0x5cec: 0xae600000, 0x5ced: 0xae600000, 0x5cee: 0x401e9420, 0x5cef: 0x401e9620, + 0x5cf0: 0x401e9820, 0x5cf1: 0x401e9a20, 0x5cf2: 0x401e9c20, 0x5cf3: 0x401e9e20, + 0x5cf4: 0x401ea020, 0x5cf5: 0x401ea220, 0x5cf6: 0x401ea420, 0x5cf7: 0x401ea620, + 0x5cf8: 0x401ea820, 0x5cf9: 0x401eaa20, 0x5cfa: 0x401eac20, 0x5cfb: 0x401eaa20, + 0x5cfc: 0x401eac20, 0x5cfd: 0x401eaa20, 0x5cfe: 0x401eac20, 0x5cff: 0x401eaa20, + // Block 0x174, offset 0x5d00 + 0x5d00: 0x401eac20, 0x5d01: 0x401eae20, 0x5d02: 0x401eb020, 0x5d03: 0x401eb220, + 0x5d04: 0x401eb420, 0x5d05: 0x401eb620, 0x5d06: 0x401eb820, 0x5d07: 0x401eba20, + 0x5d08: 0x401ebc20, 0x5d09: 0x401ebe20, 0x5d0a: 0x401ec020, 0x5d0b: 0x401ec220, + 0x5d0c: 0x401ec420, 0x5d0d: 0x401ec620, 0x5d0e: 0x401ec820, 0x5d0f: 0x401eca20, + 0x5d10: 0x401ecc20, 0x5d11: 0x401ece20, 0x5d12: 0x401ed020, 0x5d13: 0x401ed220, + 0x5d14: 0x401ed420, 0x5d15: 0x401ed620, 0x5d16: 0x401ed820, 0x5d17: 0x401eda20, + 0x5d18: 0x401edc20, 0x5d19: 0x401ede20, 0x5d1a: 0x401ee020, 0x5d1b: 0x401ee220, + 0x5d1c: 0x401ee420, 0x5d1d: 0x401ee620, + // Block 0x175, offset 0x5d40 + 0x5d40: 0x401ee820, 0x5d41: 0x401eea20, 0x5d42: 0x401eec20, 0x5d43: 0x401eee20, + 0x5d44: 0x401ef020, 0x5d45: 0x401ef220, 0x5d46: 0x401ef420, 0x5d47: 0x401ef620, + 0x5d48: 0x401ef820, 0x5d49: 0x401efa20, 0x5d4a: 0x401efc20, 0x5d4b: 0x401efe20, + 0x5d4c: 0x401f0020, 0x5d4d: 0x401f0220, 0x5d4e: 0x401f0420, 0x5d4f: 0x401f0620, + 0x5d50: 0x401f0820, 0x5d51: 0x401f0a20, 0x5d52: 0x401f0c20, 0x5d53: 0x401f0e20, + 0x5d54: 0x401f1020, 0x5d55: 0x401f1220, 0x5d56: 0x401f1420, 0x5d57: 0x401f1620, + 0x5d58: 0x401f1820, 0x5d59: 0x401f1a20, 0x5d5a: 0x401f1c20, 0x5d5b: 0x401f1e20, + 0x5d5c: 0x401f2020, 0x5d5d: 0x401f2220, 0x5d5e: 0x401f2420, 0x5d5f: 0x401f2620, + 0x5d60: 0x401f2820, 0x5d61: 0x401f2a20, 0x5d62: 0x401f2c20, 0x5d63: 0x401f2e20, + 0x5d64: 0x401f3020, 0x5d65: 0x401f3220, 0x5d66: 0x401f3420, 0x5d67: 0x401f3620, + 0x5d68: 0x401f3820, 0x5d69: 0x401f3a20, 0x5d6a: 0x401f3c20, 0x5d6b: 0x401f3e20, + 0x5d6c: 0x401f4020, 0x5d6d: 0x401f4220, 0x5d6e: 0x401f4420, 0x5d6f: 0x401f4620, + 0x5d70: 0x401f4820, 0x5d71: 0x401f4a20, 0x5d72: 0x401f4c20, 0x5d73: 0x401f4e20, + 0x5d74: 0x401f5020, 0x5d75: 0x401f5220, 0x5d76: 0x401f5420, 0x5d77: 0x401f5620, + 0x5d78: 0x401f5820, 0x5d79: 0x401f5a20, 0x5d7a: 0x401f5c20, 0x5d7b: 0x401f5e20, + 0x5d7c: 0x401f6020, 0x5d7d: 0x401f6220, 0x5d7e: 0x401f6420, 0x5d7f: 0x401f6620, + // Block 0x176, offset 0x5d80 + 0x5d80: 0x401f6820, 0x5d81: 0x401f6a20, 0x5d82: 0xae600000, 0x5d83: 0xae600000, + 0x5d84: 0xae600000, 0x5d85: 0x401f6c20, + // Block 0x177, offset 0x5dc0 + 0x5dc0: 0x4019e220, 0x5dc1: 0x4019e420, 0x5dc2: 0x4019e620, 0x5dc3: 0x4019e820, + 0x5dc4: 0x4019ea20, 0x5dc5: 0x4019ec20, 0x5dc6: 0x4019ee20, 0x5dc7: 0x4019f020, + 0x5dc8: 0x4019f220, 0x5dc9: 0x4019f420, 0x5dca: 0x4019f620, 0x5dcb: 0x4019f820, + 0x5dcc: 0x4019fa20, 0x5dcd: 0x4019fc20, 0x5dce: 0x4019fe20, 0x5dcf: 0x401a0020, + 0x5dd0: 0x401a0220, 0x5dd1: 0x401a0420, 0x5dd2: 0x401a0620, 0x5dd3: 0x401a0820, + 0x5dd4: 0x401a0a20, 0x5dd5: 0x401a0c20, 0x5dd6: 0x401a0e20, 0x5dd7: 0x401a1020, + 0x5dd8: 0x401a1220, 0x5dd9: 0x401a1420, 0x5dda: 0x401a1620, 0x5ddb: 0x401a1820, + 0x5ddc: 0x401a1a20, 0x5ddd: 0x401a1c20, 0x5dde: 0x401a1e20, 0x5ddf: 0x401a2020, + 0x5de0: 0x401a2220, 0x5de1: 0x401a2420, 0x5de2: 0x401a2620, 0x5de3: 0x401a2820, + 0x5de4: 0x401a2a20, 0x5de5: 0x401a2c20, 0x5de6: 0x401a2e20, 0x5de7: 0x401a3020, + 0x5de8: 0x401a3220, 0x5de9: 0x401a3420, 0x5dea: 0x401a3620, 0x5deb: 0x401a3820, + 0x5dec: 0x401a3a20, 0x5ded: 0x401a3c20, 0x5dee: 0x401a3e20, 0x5def: 0x401a4020, + 0x5df0: 0x401a4220, 0x5df1: 0x401a4420, 0x5df2: 0x401a4620, 0x5df3: 0x401a4820, + 0x5df4: 0x401a4a20, 0x5df5: 0x401a4c20, 0x5df6: 0x401a4e20, 0x5df7: 0x401a5020, + 0x5df8: 0x401a5220, 0x5df9: 0x401a5420, 0x5dfa: 0x401a5620, 0x5dfb: 0x401a5820, + 0x5dfc: 0x401a5a20, 0x5dfd: 0x401a5c20, 0x5dfe: 0x401a5e20, 0x5dff: 0x401a6020, + // Block 0x178, offset 0x5e00 + 0x5e00: 0x401a6220, 0x5e01: 0x401a6420, 0x5e02: 0x401a6620, 0x5e03: 0x401a6820, + 0x5e04: 0x401a6a20, 0x5e05: 0x401a6c20, 0x5e06: 0x401a6e20, 0x5e07: 0x401a7020, + 0x5e08: 0x401a7220, 0x5e09: 0x401a7420, 0x5e0a: 0x401a7620, 0x5e0b: 0x401a7820, + 0x5e0c: 0x401a7a20, 0x5e0d: 0x401a7c20, 0x5e0e: 0x401a7e20, 0x5e0f: 0x401a8020, + 0x5e10: 0x401a8220, 0x5e11: 0x401a8420, 0x5e12: 0x401a8620, 0x5e13: 0x401a8820, + 0x5e14: 0x401a8a20, 0x5e15: 0x401a8c20, 0x5e16: 0x401a8e20, + 0x5e20: 0xe00002af, 0x5e21: 0xe00003ca, 0x5e22: 0xe00004a4, 0x5e23: 0xe0000576, + 0x5e24: 0xe000063d, 0x5e25: 0xe00006ed, 0x5e26: 0xe0000795, 0x5e27: 0xe000083e, + 0x5e28: 0xe00008e9, 0x5e29: 0x4029ba20, 0x5e2a: 0x4029bc20, 0x5e2b: 0x4029be20, + 0x5e2c: 0x4029c020, 0x5e2d: 0x4029c220, 0x5e2e: 0x4029c420, 0x5e2f: 0x4029c620, + 0x5e30: 0x4029c820, 0x5e31: 0x4029ca20, + // Block 0x179, offset 0x5e40 + 0x5e40: 0x002bde8b, 0x5e41: 0x002c0a8b, 0x5e42: 0x002c3a8b, 0x5e43: 0x002c628b, + 0x5e44: 0x002c988b, 0x5e45: 0x002d088b, 0x5e46: 0x002d228b, 0x5e47: 0x002d688b, + 0x5e48: 0x002d9a8b, 0x5e49: 0x002dcc8b, 0x5e4a: 0x002dfe8b, 0x5e4b: 0x002e228b, + 0x5e4c: 0x002e828b, 0x5e4d: 0x002e9e8b, 0x5e4e: 0x002ee28b, 0x5e4f: 0x002f2c8b, + 0x5e50: 0x002f568b, 0x5e51: 0x002f7a8b, 0x5e52: 0x002fe68b, 0x5e53: 0x00302c8b, + 0x5e54: 0x00306c8b, 0x5e55: 0x0030be8b, 0x5e56: 0x0030e28b, 0x5e57: 0x0030f68b, + 0x5e58: 0x0031008b, 0x5e59: 0x00312a8b, 0x5e5a: 0x002bde85, 0x5e5b: 0x002c0a85, + 0x5e5c: 0x002c3a85, 0x5e5d: 0x002c6285, 0x5e5e: 0x002c9885, 0x5e5f: 0x002d0885, + 0x5e60: 0x002d2285, 0x5e61: 0x002d6885, 0x5e62: 0x002d9a85, 0x5e63: 0x002dcc85, + 0x5e64: 0x002dfe85, 0x5e65: 0x002e2285, 0x5e66: 0x002e8285, 0x5e67: 0x002e9e85, + 0x5e68: 0x002ee285, 0x5e69: 0x002f2c85, 0x5e6a: 0x002f5685, 0x5e6b: 0x002f7a85, + 0x5e6c: 0x002fe685, 0x5e6d: 0x00302c85, 0x5e6e: 0x00306c85, 0x5e6f: 0x0030be85, + 0x5e70: 0x0030e285, 0x5e71: 0x0030f685, 0x5e72: 0x00310085, 0x5e73: 0x00312a85, + 0x5e74: 0x002bde8b, 0x5e75: 0x002c0a8b, 0x5e76: 0x002c3a8b, 0x5e77: 0x002c628b, + 0x5e78: 0x002c988b, 0x5e79: 0x002d088b, 0x5e7a: 0x002d228b, 0x5e7b: 0x002d688b, + 0x5e7c: 0x002d9a8b, 0x5e7d: 0x002dcc8b, 0x5e7e: 0x002dfe8b, 0x5e7f: 0x002e228b, + // Block 0x17a, offset 0x5e80 + 0x5e80: 0x002e828b, 0x5e81: 0x002e9e8b, 0x5e82: 0x002ee28b, 0x5e83: 0x002f2c8b, + 0x5e84: 0x002f568b, 0x5e85: 0x002f7a8b, 0x5e86: 0x002fe68b, 0x5e87: 0x00302c8b, + 0x5e88: 0x00306c8b, 0x5e89: 0x0030be8b, 0x5e8a: 0x0030e28b, 0x5e8b: 0x0030f68b, + 0x5e8c: 0x0031008b, 0x5e8d: 0x00312a8b, 0x5e8e: 0x002bde85, 0x5e8f: 0x002c0a85, + 0x5e90: 0x002c3a85, 0x5e91: 0x002c6285, 0x5e92: 0x002c9885, 0x5e93: 0x002d0885, + 0x5e94: 0x002d2285, 0x5e96: 0x002d9a85, 0x5e97: 0x002dcc85, + 0x5e98: 0x002dfe85, 0x5e99: 0x002e2285, 0x5e9a: 0x002e8285, 0x5e9b: 0x002e9e85, + 0x5e9c: 0x002ee285, 0x5e9d: 0x002f2c85, 0x5e9e: 0x002f5685, 0x5e9f: 0x002f7a85, + 0x5ea0: 0x002fe685, 0x5ea1: 0x00302c85, 0x5ea2: 0x00306c85, 0x5ea3: 0x0030be85, + 0x5ea4: 0x0030e285, 0x5ea5: 0x0030f685, 0x5ea6: 0x00310085, 0x5ea7: 0x00312a85, + 0x5ea8: 0x002bde8b, 0x5ea9: 0x002c0a8b, 0x5eaa: 0x002c3a8b, 0x5eab: 0x002c628b, + 0x5eac: 0x002c988b, 0x5ead: 0x002d088b, 0x5eae: 0x002d228b, 0x5eaf: 0x002d688b, + 0x5eb0: 0x002d9a8b, 0x5eb1: 0x002dcc8b, 0x5eb2: 0x002dfe8b, 0x5eb3: 0x002e228b, + 0x5eb4: 0x002e828b, 0x5eb5: 0x002e9e8b, 0x5eb6: 0x002ee28b, 0x5eb7: 0x002f2c8b, + 0x5eb8: 0x002f568b, 0x5eb9: 0x002f7a8b, 0x5eba: 0x002fe68b, 0x5ebb: 0x00302c8b, + 0x5ebc: 0x00306c8b, 0x5ebd: 0x0030be8b, 0x5ebe: 0x0030e28b, 0x5ebf: 0x0030f68b, + // Block 0x17b, offset 0x5ec0 + 0x5ec0: 0x0031008b, 0x5ec1: 0x00312a8b, 0x5ec2: 0x002bde85, 0x5ec3: 0x002c0a85, + 0x5ec4: 0x002c3a85, 0x5ec5: 0x002c6285, 0x5ec6: 0x002c9885, 0x5ec7: 0x002d0885, + 0x5ec8: 0x002d2285, 0x5ec9: 0x002d6885, 0x5eca: 0x002d9a85, 0x5ecb: 0x002dcc85, + 0x5ecc: 0x002dfe85, 0x5ecd: 0x002e2285, 0x5ece: 0x002e8285, 0x5ecf: 0x002e9e85, + 0x5ed0: 0x002ee285, 0x5ed1: 0x002f2c85, 0x5ed2: 0x002f5685, 0x5ed3: 0x002f7a85, + 0x5ed4: 0x002fe685, 0x5ed5: 0x00302c85, 0x5ed6: 0x00306c85, 0x5ed7: 0x0030be85, + 0x5ed8: 0x0030e285, 0x5ed9: 0x0030f685, 0x5eda: 0x00310085, 0x5edb: 0x00312a85, + 0x5edc: 0x002bde8b, 0x5ede: 0x002c3a8b, 0x5edf: 0x002c628b, + 0x5ee2: 0x002d228b, + 0x5ee5: 0x002dcc8b, 0x5ee6: 0x002dfe8b, + 0x5ee9: 0x002e9e8b, 0x5eea: 0x002ee28b, 0x5eeb: 0x002f2c8b, + 0x5eec: 0x002f568b, 0x5eee: 0x002fe68b, 0x5eef: 0x00302c8b, + 0x5ef0: 0x00306c8b, 0x5ef1: 0x0030be8b, 0x5ef2: 0x0030e28b, 0x5ef3: 0x0030f68b, + 0x5ef4: 0x0031008b, 0x5ef5: 0x00312a8b, 0x5ef6: 0x002bde85, 0x5ef7: 0x002c0a85, + 0x5ef8: 0x002c3a85, 0x5ef9: 0x002c6285, 0x5efb: 0x002d0885, + 0x5efd: 0x002d6885, 0x5efe: 0x002d9a85, 0x5eff: 0x002dcc85, + // Block 0x17c, offset 0x5f00 + 0x5f00: 0x002dfe85, 0x5f01: 0x002e2285, 0x5f02: 0x002e8285, 0x5f03: 0x002e9e85, + 0x5f05: 0x002f2c85, 0x5f06: 0x002f5685, 0x5f07: 0x002f7a85, + 0x5f08: 0x002fe685, 0x5f09: 0x00302c85, 0x5f0a: 0x00306c85, 0x5f0b: 0x0030be85, + 0x5f0c: 0x0030e285, 0x5f0d: 0x0030f685, 0x5f0e: 0x00310085, 0x5f0f: 0x00312a85, + 0x5f10: 0x002bde8b, 0x5f11: 0x002c0a8b, 0x5f12: 0x002c3a8b, 0x5f13: 0x002c628b, + 0x5f14: 0x002c988b, 0x5f15: 0x002d088b, 0x5f16: 0x002d228b, 0x5f17: 0x002d688b, + 0x5f18: 0x002d9a8b, 0x5f19: 0x002dcc8b, 0x5f1a: 0x002dfe8b, 0x5f1b: 0x002e228b, + 0x5f1c: 0x002e828b, 0x5f1d: 0x002e9e8b, 0x5f1e: 0x002ee28b, 0x5f1f: 0x002f2c8b, + 0x5f20: 0x002f568b, 0x5f21: 0x002f7a8b, 0x5f22: 0x002fe68b, 0x5f23: 0x00302c8b, + 0x5f24: 0x00306c8b, 0x5f25: 0x0030be8b, 0x5f26: 0x0030e28b, 0x5f27: 0x0030f68b, + 0x5f28: 0x0031008b, 0x5f29: 0x00312a8b, 0x5f2a: 0x002bde85, 0x5f2b: 0x002c0a85, + 0x5f2c: 0x002c3a85, 0x5f2d: 0x002c6285, 0x5f2e: 0x002c9885, 0x5f2f: 0x002d0885, + 0x5f30: 0x002d2285, 0x5f31: 0x002d6885, 0x5f32: 0x002d9a85, 0x5f33: 0x002dcc85, + 0x5f34: 0x002dfe85, 0x5f35: 0x002e2285, 0x5f36: 0x002e8285, 0x5f37: 0x002e9e85, + 0x5f38: 0x002ee285, 0x5f39: 0x002f2c85, 0x5f3a: 0x002f5685, 0x5f3b: 0x002f7a85, + 0x5f3c: 0x002fe685, 0x5f3d: 0x00302c85, 0x5f3e: 0x00306c85, 0x5f3f: 0x0030be85, + // Block 0x17d, offset 0x5f40 + 0x5f40: 0x0030e285, 0x5f41: 0x0030f685, 0x5f42: 0x00310085, 0x5f43: 0x00312a85, + 0x5f44: 0x002bde8b, 0x5f45: 0x002c0a8b, 0x5f47: 0x002c628b, + 0x5f48: 0x002c988b, 0x5f49: 0x002d088b, 0x5f4a: 0x002d228b, + 0x5f4d: 0x002dcc8b, 0x5f4e: 0x002dfe8b, 0x5f4f: 0x002e228b, + 0x5f50: 0x002e828b, 0x5f51: 0x002e9e8b, 0x5f52: 0x002ee28b, 0x5f53: 0x002f2c8b, + 0x5f54: 0x002f568b, 0x5f56: 0x002fe68b, 0x5f57: 0x00302c8b, + 0x5f58: 0x00306c8b, 0x5f59: 0x0030be8b, 0x5f5a: 0x0030e28b, 0x5f5b: 0x0030f68b, + 0x5f5c: 0x0031008b, 0x5f5e: 0x002bde85, 0x5f5f: 0x002c0a85, + 0x5f60: 0x002c3a85, 0x5f61: 0x002c6285, 0x5f62: 0x002c9885, 0x5f63: 0x002d0885, + 0x5f64: 0x002d2285, 0x5f65: 0x002d6885, 0x5f66: 0x002d9a85, 0x5f67: 0x002dcc85, + 0x5f68: 0x002dfe85, 0x5f69: 0x002e2285, 0x5f6a: 0x002e8285, 0x5f6b: 0x002e9e85, + 0x5f6c: 0x002ee285, 0x5f6d: 0x002f2c85, 0x5f6e: 0x002f5685, 0x5f6f: 0x002f7a85, + 0x5f70: 0x002fe685, 0x5f71: 0x00302c85, 0x5f72: 0x00306c85, 0x5f73: 0x0030be85, + 0x5f74: 0x0030e285, 0x5f75: 0x0030f685, 0x5f76: 0x00310085, 0x5f77: 0x00312a85, + 0x5f78: 0x002bde8b, 0x5f79: 0x002c0a8b, 0x5f7b: 0x002c628b, + 0x5f7c: 0x002c988b, 0x5f7d: 0x002d088b, 0x5f7e: 0x002d228b, + // Block 0x17e, offset 0x5f80 + 0x5f80: 0x002d9a8b, 0x5f81: 0x002dcc8b, 0x5f82: 0x002dfe8b, 0x5f83: 0x002e228b, + 0x5f84: 0x002e828b, 0x5f86: 0x002ee28b, + 0x5f8a: 0x002fe68b, 0x5f8b: 0x00302c8b, + 0x5f8c: 0x00306c8b, 0x5f8d: 0x0030be8b, 0x5f8e: 0x0030e28b, 0x5f8f: 0x0030f68b, + 0x5f90: 0x0031008b, 0x5f92: 0x002bde85, 0x5f93: 0x002c0a85, + 0x5f94: 0x002c3a85, 0x5f95: 0x002c6285, 0x5f96: 0x002c9885, 0x5f97: 0x002d0885, + 0x5f98: 0x002d2285, 0x5f99: 0x002d6885, 0x5f9a: 0x002d9a85, 0x5f9b: 0x002dcc85, + 0x5f9c: 0x002dfe85, 0x5f9d: 0x002e2285, 0x5f9e: 0x002e8285, 0x5f9f: 0x002e9e85, + 0x5fa0: 0x002ee285, 0x5fa1: 0x002f2c85, 0x5fa2: 0x002f5685, 0x5fa3: 0x002f7a85, + 0x5fa4: 0x002fe685, 0x5fa5: 0x00302c85, 0x5fa6: 0x00306c85, 0x5fa7: 0x0030be85, + 0x5fa8: 0x0030e285, 0x5fa9: 0x0030f685, 0x5faa: 0x00310085, 0x5fab: 0x00312a85, + 0x5fac: 0x002bde8b, 0x5fad: 0x002c0a8b, 0x5fae: 0x002c3a8b, 0x5faf: 0x002c628b, + 0x5fb0: 0x002c988b, 0x5fb1: 0x002d088b, 0x5fb2: 0x002d228b, 0x5fb3: 0x002d688b, + 0x5fb4: 0x002d9a8b, 0x5fb5: 0x002dcc8b, 0x5fb6: 0x002dfe8b, 0x5fb7: 0x002e228b, + 0x5fb8: 0x002e828b, 0x5fb9: 0x002e9e8b, 0x5fba: 0x002ee28b, 0x5fbb: 0x002f2c8b, + 0x5fbc: 0x002f568b, 0x5fbd: 0x002f7a8b, 0x5fbe: 0x002fe68b, 0x5fbf: 0x00302c8b, + // Block 0x17f, offset 0x5fc0 + 0x5fc0: 0x00306c8b, 0x5fc1: 0x0030be8b, 0x5fc2: 0x0030e28b, 0x5fc3: 0x0030f68b, + 0x5fc4: 0x0031008b, 0x5fc5: 0x00312a8b, 0x5fc6: 0x002bde85, 0x5fc7: 0x002c0a85, + 0x5fc8: 0x002c3a85, 0x5fc9: 0x002c6285, 0x5fca: 0x002c9885, 0x5fcb: 0x002d0885, + 0x5fcc: 0x002d2285, 0x5fcd: 0x002d6885, 0x5fce: 0x002d9a85, 0x5fcf: 0x002dcc85, + 0x5fd0: 0x002dfe85, 0x5fd1: 0x002e2285, 0x5fd2: 0x002e8285, 0x5fd3: 0x002e9e85, + 0x5fd4: 0x002ee285, 0x5fd5: 0x002f2c85, 0x5fd6: 0x002f5685, 0x5fd7: 0x002f7a85, + 0x5fd8: 0x002fe685, 0x5fd9: 0x00302c85, 0x5fda: 0x00306c85, 0x5fdb: 0x0030be85, + 0x5fdc: 0x0030e285, 0x5fdd: 0x0030f685, 0x5fde: 0x00310085, 0x5fdf: 0x00312a85, + 0x5fe0: 0x002bde8b, 0x5fe1: 0x002c0a8b, 0x5fe2: 0x002c3a8b, 0x5fe3: 0x002c628b, + 0x5fe4: 0x002c988b, 0x5fe5: 0x002d088b, 0x5fe6: 0x002d228b, 0x5fe7: 0x002d688b, + 0x5fe8: 0x002d9a8b, 0x5fe9: 0x002dcc8b, 0x5fea: 0x002dfe8b, 0x5feb: 0x002e228b, + 0x5fec: 0x002e828b, 0x5fed: 0x002e9e8b, 0x5fee: 0x002ee28b, 0x5fef: 0x002f2c8b, + 0x5ff0: 0x002f568b, 0x5ff1: 0x002f7a8b, 0x5ff2: 0x002fe68b, 0x5ff3: 0x00302c8b, + 0x5ff4: 0x00306c8b, 0x5ff5: 0x0030be8b, 0x5ff6: 0x0030e28b, 0x5ff7: 0x0030f68b, + 0x5ff8: 0x0031008b, 0x5ff9: 0x00312a8b, 0x5ffa: 0x002bde85, 0x5ffb: 0x002c0a85, + 0x5ffc: 0x002c3a85, 0x5ffd: 0x002c6285, 0x5ffe: 0x002c9885, 0x5fff: 0x002d0885, + // Block 0x180, offset 0x6000 + 0x6000: 0x002d2285, 0x6001: 0x002d6885, 0x6002: 0x002d9a85, 0x6003: 0x002dcc85, + 0x6004: 0x002dfe85, 0x6005: 0x002e2285, 0x6006: 0x002e8285, 0x6007: 0x002e9e85, + 0x6008: 0x002ee285, 0x6009: 0x002f2c85, 0x600a: 0x002f5685, 0x600b: 0x002f7a85, + 0x600c: 0x002fe685, 0x600d: 0x00302c85, 0x600e: 0x00306c85, 0x600f: 0x0030be85, + 0x6010: 0x0030e285, 0x6011: 0x0030f685, 0x6012: 0x00310085, 0x6013: 0x00312a85, + 0x6014: 0x002bde8b, 0x6015: 0x002c0a8b, 0x6016: 0x002c3a8b, 0x6017: 0x002c628b, + 0x6018: 0x002c988b, 0x6019: 0x002d088b, 0x601a: 0x002d228b, 0x601b: 0x002d688b, + 0x601c: 0x002d9a8b, 0x601d: 0x002dcc8b, 0x601e: 0x002dfe8b, 0x601f: 0x002e228b, + 0x6020: 0x002e828b, 0x6021: 0x002e9e8b, 0x6022: 0x002ee28b, 0x6023: 0x002f2c8b, + 0x6024: 0x002f568b, 0x6025: 0x002f7a8b, 0x6026: 0x002fe68b, 0x6027: 0x00302c8b, + 0x6028: 0x00306c8b, 0x6029: 0x0030be8b, 0x602a: 0x0030e28b, 0x602b: 0x0030f68b, + 0x602c: 0x0031008b, 0x602d: 0x00312a8b, 0x602e: 0x002bde85, 0x602f: 0x002c0a85, + 0x6030: 0x002c3a85, 0x6031: 0x002c6285, 0x6032: 0x002c9885, 0x6033: 0x002d0885, + 0x6034: 0x002d2285, 0x6035: 0x002d6885, 0x6036: 0x002d9a85, 0x6037: 0x002dcc85, + 0x6038: 0x002dfe85, 0x6039: 0x002e2285, 0x603a: 0x002e8285, 0x603b: 0x002e9e85, + 0x603c: 0x002ee285, 0x603d: 0x002f2c85, 0x603e: 0x002f5685, 0x603f: 0x002f7a85, + // Block 0x181, offset 0x6040 + 0x6040: 0x002fe685, 0x6041: 0x00302c85, 0x6042: 0x00306c85, 0x6043: 0x0030be85, + 0x6044: 0x0030e285, 0x6045: 0x0030f685, 0x6046: 0x00310085, 0x6047: 0x00312a85, + 0x6048: 0x002bde8b, 0x6049: 0x002c0a8b, 0x604a: 0x002c3a8b, 0x604b: 0x002c628b, + 0x604c: 0x002c988b, 0x604d: 0x002d088b, 0x604e: 0x002d228b, 0x604f: 0x002d688b, + 0x6050: 0x002d9a8b, 0x6051: 0x002dcc8b, 0x6052: 0x002dfe8b, 0x6053: 0x002e228b, + 0x6054: 0x002e828b, 0x6055: 0x002e9e8b, 0x6056: 0x002ee28b, 0x6057: 0x002f2c8b, + 0x6058: 0x002f568b, 0x6059: 0x002f7a8b, 0x605a: 0x002fe68b, 0x605b: 0x00302c8b, + 0x605c: 0x00306c8b, 0x605d: 0x0030be8b, 0x605e: 0x0030e28b, 0x605f: 0x0030f68b, + 0x6060: 0x0031008b, 0x6061: 0x00312a8b, 0x6062: 0x002bde85, 0x6063: 0x002c0a85, + 0x6064: 0x002c3a85, 0x6065: 0x002c6285, 0x6066: 0x002c9885, 0x6067: 0x002d0885, + 0x6068: 0x002d2285, 0x6069: 0x002d6885, 0x606a: 0x002d9a85, 0x606b: 0x002dcc85, + 0x606c: 0x002dfe85, 0x606d: 0x002e2285, 0x606e: 0x002e8285, 0x606f: 0x002e9e85, + 0x6070: 0x002ee285, 0x6071: 0x002f2c85, 0x6072: 0x002f5685, 0x6073: 0x002f7a85, + 0x6074: 0x002fe685, 0x6075: 0x00302c85, 0x6076: 0x00306c85, 0x6077: 0x0030be85, + 0x6078: 0x0030e285, 0x6079: 0x0030f685, 0x607a: 0x00310085, 0x607b: 0x00312a85, + 0x607c: 0x002bde8b, 0x607d: 0x002c0a8b, 0x607e: 0x002c3a8b, 0x607f: 0x002c628b, + // Block 0x182, offset 0x6080 + 0x6080: 0x002c988b, 0x6081: 0x002d088b, 0x6082: 0x002d228b, 0x6083: 0x002d688b, + 0x6084: 0x002d9a8b, 0x6085: 0x002dcc8b, 0x6086: 0x002dfe8b, 0x6087: 0x002e228b, + 0x6088: 0x002e828b, 0x6089: 0x002e9e8b, 0x608a: 0x002ee28b, 0x608b: 0x002f2c8b, + 0x608c: 0x002f568b, 0x608d: 0x002f7a8b, 0x608e: 0x002fe68b, 0x608f: 0x00302c8b, + 0x6090: 0x00306c8b, 0x6091: 0x0030be8b, 0x6092: 0x0030e28b, 0x6093: 0x0030f68b, + 0x6094: 0x0031008b, 0x6095: 0x00312a8b, 0x6096: 0x002bde85, 0x6097: 0x002c0a85, + 0x6098: 0x002c3a85, 0x6099: 0x002c6285, 0x609a: 0x002c9885, 0x609b: 0x002d0885, + 0x609c: 0x002d2285, 0x609d: 0x002d6885, 0x609e: 0x002d9a85, 0x609f: 0x002dcc85, + 0x60a0: 0x002dfe85, 0x60a1: 0x002e2285, 0x60a2: 0x002e8285, 0x60a3: 0x002e9e85, + 0x60a4: 0x002ee285, 0x60a5: 0x002f2c85, 0x60a6: 0x002f5685, 0x60a7: 0x002f7a85, + 0x60a8: 0x002fe685, 0x60a9: 0x00302c85, 0x60aa: 0x00306c85, 0x60ab: 0x0030be85, + 0x60ac: 0x0030e285, 0x60ad: 0x0030f685, 0x60ae: 0x00310085, 0x60af: 0x00312a85, + 0x60b0: 0x002bde8b, 0x60b1: 0x002c0a8b, 0x60b2: 0x002c3a8b, 0x60b3: 0x002c628b, + 0x60b4: 0x002c988b, 0x60b5: 0x002d088b, 0x60b6: 0x002d228b, 0x60b7: 0x002d688b, + 0x60b8: 0x002d9a8b, 0x60b9: 0x002dcc8b, 0x60ba: 0x002dfe8b, 0x60bb: 0x002e228b, + 0x60bc: 0x002e828b, 0x60bd: 0x002e9e8b, 0x60be: 0x002ee28b, 0x60bf: 0x002f2c8b, + // Block 0x183, offset 0x60c0 + 0x60c0: 0x002f568b, 0x60c1: 0x002f7a8b, 0x60c2: 0x002fe68b, 0x60c3: 0x00302c8b, + 0x60c4: 0x00306c8b, 0x60c5: 0x0030be8b, 0x60c6: 0x0030e28b, 0x60c7: 0x0030f68b, + 0x60c8: 0x0031008b, 0x60c9: 0x00312a8b, 0x60ca: 0x002bde85, 0x60cb: 0x002c0a85, + 0x60cc: 0x002c3a85, 0x60cd: 0x002c6285, 0x60ce: 0x002c9885, 0x60cf: 0x002d0885, + 0x60d0: 0x002d2285, 0x60d1: 0x002d6885, 0x60d2: 0x002d9a85, 0x60d3: 0x002dcc85, + 0x60d4: 0x002dfe85, 0x60d5: 0x002e2285, 0x60d6: 0x002e8285, 0x60d7: 0x002e9e85, + 0x60d8: 0x002ee285, 0x60d9: 0x002f2c85, 0x60da: 0x002f5685, 0x60db: 0x002f7a85, + 0x60dc: 0x002fe685, 0x60dd: 0x00302c85, 0x60de: 0x00306c85, 0x60df: 0x0030be85, + 0x60e0: 0x0030e285, 0x60e1: 0x0030f685, 0x60e2: 0x00310085, 0x60e3: 0x00312a85, + 0x60e4: 0x002da285, 0x60e5: 0x002dd485, + 0x60e8: 0x0032528b, 0x60e9: 0x0032548b, 0x60ea: 0x0032568b, 0x60eb: 0x00325a8b, + 0x60ec: 0x00325c8b, 0x60ed: 0x0032648b, 0x60ee: 0x0032688b, 0x60ef: 0x00326a8b, + 0x60f0: 0x00326c8b, 0x60f1: 0x0032708b, 0x60f2: 0x0032728b, 0x60f3: 0x0032768b, + 0x60f4: 0x0032788b, 0x60f5: 0x00327a8b, 0x60f6: 0x00327c8b, 0x60f7: 0x00327e8b, + 0x60f8: 0x0032888b, 0x60f9: 0x00326a8b, 0x60fa: 0x00328e8b, 0x60fb: 0x0032968b, + 0x60fc: 0x0032988b, 0x60fd: 0x00329a8b, 0x60fe: 0x00329c8b, 0x60ff: 0x00329e8b, + // Block 0x184, offset 0x6100 + 0x6100: 0x0032a28b, 0x6101: 0x00092485, 0x6102: 0x00325285, 0x6103: 0x00325485, + 0x6104: 0x00325685, 0x6105: 0x00325a85, 0x6106: 0x00325c85, 0x6107: 0x00326485, + 0x6108: 0x00326885, 0x6109: 0x00326a85, 0x610a: 0x00326c85, 0x610b: 0x00327085, + 0x610c: 0x00327285, 0x610d: 0x00327685, 0x610e: 0x00327885, 0x610f: 0x00327a85, + 0x6110: 0x00327c85, 0x6111: 0x00327e85, 0x6112: 0x00328885, 0x6113: 0x00328e85, + 0x6114: 0x00328e85, 0x6115: 0x00329685, 0x6116: 0x00329885, 0x6117: 0x00329a85, + 0x6118: 0x00329c85, 0x6119: 0x00329e85, 0x611a: 0x0032a285, 0x611b: 0x00091c85, + 0x611c: 0x00325c85, 0x611d: 0x00326a85, 0x611e: 0x00327085, 0x611f: 0x00329a85, + 0x6120: 0x00328885, 0x6121: 0x00327e85, 0x6122: 0x0032528b, 0x6123: 0x0032548b, + 0x6124: 0x0032568b, 0x6125: 0x00325a8b, 0x6126: 0x00325c8b, 0x6127: 0x0032648b, + 0x6128: 0x0032688b, 0x6129: 0x00326a8b, 0x612a: 0x00326c8b, 0x612b: 0x0032708b, + 0x612c: 0x0032728b, 0x612d: 0x0032768b, 0x612e: 0x0032788b, 0x612f: 0x00327a8b, + 0x6130: 0x00327c8b, 0x6131: 0x00327e8b, 0x6132: 0x0032888b, 0x6133: 0x00326a8b, + 0x6134: 0x00328e8b, 0x6135: 0x0032968b, 0x6136: 0x0032988b, 0x6137: 0x00329a8b, + 0x6138: 0x00329c8b, 0x6139: 0x00329e8b, 0x613a: 0x0032a28b, 0x613b: 0x00092485, + 0x613c: 0x00325285, 0x613d: 0x00325485, 0x613e: 0x00325685, 0x613f: 0x00325a85, + // Block 0x185, offset 0x6140 + 0x6140: 0x00325c85, 0x6141: 0x00326485, 0x6142: 0x00326885, 0x6143: 0x00326a85, + 0x6144: 0x00326c85, 0x6145: 0x00327085, 0x6146: 0x00327285, 0x6147: 0x00327685, + 0x6148: 0x00327885, 0x6149: 0x00327a85, 0x614a: 0x00327c85, 0x614b: 0x00327e85, + 0x614c: 0x00328885, 0x614d: 0x00328e85, 0x614e: 0x00328e85, 0x614f: 0x00329685, + 0x6150: 0x00329885, 0x6151: 0x00329a85, 0x6152: 0x00329c85, 0x6153: 0x00329e85, + 0x6154: 0x0032a285, 0x6155: 0x00091c85, 0x6156: 0x00325c85, 0x6157: 0x00326a85, + 0x6158: 0x00327085, 0x6159: 0x00329a85, 0x615a: 0x00328885, 0x615b: 0x00327e85, + 0x615c: 0x0032528b, 0x615d: 0x0032548b, 0x615e: 0x0032568b, 0x615f: 0x00325a8b, + 0x6160: 0x00325c8b, 0x6161: 0x0032648b, 0x6162: 0x0032688b, 0x6163: 0x00326a8b, + 0x6164: 0x00326c8b, 0x6165: 0x0032708b, 0x6166: 0x0032728b, 0x6167: 0x0032768b, + 0x6168: 0x0032788b, 0x6169: 0x00327a8b, 0x616a: 0x00327c8b, 0x616b: 0x00327e8b, + 0x616c: 0x0032888b, 0x616d: 0x00326a8b, 0x616e: 0x00328e8b, 0x616f: 0x0032968b, + 0x6170: 0x0032988b, 0x6171: 0x00329a8b, 0x6172: 0x00329c8b, 0x6173: 0x00329e8b, + 0x6174: 0x0032a28b, 0x6175: 0x00092485, 0x6176: 0x00325285, 0x6177: 0x00325485, + 0x6178: 0x00325685, 0x6179: 0x00325a85, 0x617a: 0x00325c85, 0x617b: 0x00326485, + 0x617c: 0x00326885, 0x617d: 0x00326a85, 0x617e: 0x00326c85, 0x617f: 0x00327085, + // Block 0x186, offset 0x6180 + 0x6180: 0x00327285, 0x6181: 0x00327685, 0x6182: 0x00327885, 0x6183: 0x00327a85, + 0x6184: 0x00327c85, 0x6185: 0x00327e85, 0x6186: 0x00328885, 0x6187: 0x00328e85, + 0x6188: 0x00328e85, 0x6189: 0x00329685, 0x618a: 0x00329885, 0x618b: 0x00329a85, + 0x618c: 0x00329c85, 0x618d: 0x00329e85, 0x618e: 0x0032a285, 0x618f: 0x00091c85, + 0x6190: 0x00325c85, 0x6191: 0x00326a85, 0x6192: 0x00327085, 0x6193: 0x00329a85, + 0x6194: 0x00328885, 0x6195: 0x00327e85, 0x6196: 0x0032528b, 0x6197: 0x0032548b, + 0x6198: 0x0032568b, 0x6199: 0x00325a8b, 0x619a: 0x00325c8b, 0x619b: 0x0032648b, + 0x619c: 0x0032688b, 0x619d: 0x00326a8b, 0x619e: 0x00326c8b, 0x619f: 0x0032708b, + 0x61a0: 0x0032728b, 0x61a1: 0x0032768b, 0x61a2: 0x0032788b, 0x61a3: 0x00327a8b, + 0x61a4: 0x00327c8b, 0x61a5: 0x00327e8b, 0x61a6: 0x0032888b, 0x61a7: 0x00326a8b, + 0x61a8: 0x00328e8b, 0x61a9: 0x0032968b, 0x61aa: 0x0032988b, 0x61ab: 0x00329a8b, + 0x61ac: 0x00329c8b, 0x61ad: 0x00329e8b, 0x61ae: 0x0032a28b, 0x61af: 0x00092485, + 0x61b0: 0x00325285, 0x61b1: 0x00325485, 0x61b2: 0x00325685, 0x61b3: 0x00325a85, + 0x61b4: 0x00325c85, 0x61b5: 0x00326485, 0x61b6: 0x00326885, 0x61b7: 0x00326a85, + 0x61b8: 0x00326c85, 0x61b9: 0x00327085, 0x61ba: 0x00327285, 0x61bb: 0x00327685, + 0x61bc: 0x00327885, 0x61bd: 0x00327a85, 0x61be: 0x00327c85, 0x61bf: 0x00327e85, + // Block 0x187, offset 0x61c0 + 0x61c0: 0x00328885, 0x61c1: 0x00328e85, 0x61c2: 0x00328e85, 0x61c3: 0x00329685, + 0x61c4: 0x00329885, 0x61c5: 0x00329a85, 0x61c6: 0x00329c85, 0x61c7: 0x00329e85, + 0x61c8: 0x0032a285, 0x61c9: 0x00091c85, 0x61ca: 0x00325c85, 0x61cb: 0x00326a85, + 0x61cc: 0x00327085, 0x61cd: 0x00329a85, 0x61ce: 0x00328885, 0x61cf: 0x00327e85, + 0x61d0: 0x0032528b, 0x61d1: 0x0032548b, 0x61d2: 0x0032568b, 0x61d3: 0x00325a8b, + 0x61d4: 0x00325c8b, 0x61d5: 0x0032648b, 0x61d6: 0x0032688b, 0x61d7: 0x00326a8b, + 0x61d8: 0x00326c8b, 0x61d9: 0x0032708b, 0x61da: 0x0032728b, 0x61db: 0x0032768b, + 0x61dc: 0x0032788b, 0x61dd: 0x00327a8b, 0x61de: 0x00327c8b, 0x61df: 0x00327e8b, + 0x61e0: 0x0032888b, 0x61e1: 0x00326a8b, 0x61e2: 0x00328e8b, 0x61e3: 0x0032968b, + 0x61e4: 0x0032988b, 0x61e5: 0x00329a8b, 0x61e6: 0x00329c8b, 0x61e7: 0x00329e8b, + 0x61e8: 0x0032a28b, 0x61e9: 0x00092485, 0x61ea: 0x00325285, 0x61eb: 0x00325485, + 0x61ec: 0x00325685, 0x61ed: 0x00325a85, 0x61ee: 0x00325c85, 0x61ef: 0x00326485, + 0x61f0: 0x00326885, 0x61f1: 0x00326a85, 0x61f2: 0x00326c85, 0x61f3: 0x00327085, + 0x61f4: 0x00327285, 0x61f5: 0x00327685, 0x61f6: 0x00327885, 0x61f7: 0x00327a85, + 0x61f8: 0x00327c85, 0x61f9: 0x00327e85, 0x61fa: 0x00328885, 0x61fb: 0x00328e85, + 0x61fc: 0x00328e85, 0x61fd: 0x00329685, 0x61fe: 0x00329885, 0x61ff: 0x00329a85, + // Block 0x188, offset 0x6200 + 0x6200: 0x00329c85, 0x6201: 0x00329e85, 0x6202: 0x0032a285, 0x6203: 0x00091c85, + 0x6204: 0x00325c85, 0x6205: 0x00326a85, 0x6206: 0x00327085, 0x6207: 0x00329a85, + 0x6208: 0x00328885, 0x6209: 0x00327e85, 0x620a: 0x00325e8b, 0x620b: 0x00325e85, + 0x620e: 0x0029cc85, 0x620f: 0x0029ce85, + 0x6210: 0x0029d085, 0x6211: 0x0029d285, 0x6212: 0x0029d485, 0x6213: 0x0029d685, + 0x6214: 0x0029d885, 0x6215: 0x0029da85, 0x6216: 0x0029dc85, 0x6217: 0x0029de85, + 0x6218: 0x0029cc85, 0x6219: 0x0029ce85, 0x621a: 0x0029d085, 0x621b: 0x0029d285, + 0x621c: 0x0029d485, 0x621d: 0x0029d685, 0x621e: 0x0029d885, 0x621f: 0x0029da85, + 0x6220: 0x0029dc85, 0x6221: 0x0029de85, 0x6222: 0x0029cc85, 0x6223: 0x0029ce85, + 0x6224: 0x0029d085, 0x6225: 0x0029d285, 0x6226: 0x0029d485, 0x6227: 0x0029d685, + 0x6228: 0x0029d885, 0x6229: 0x0029da85, 0x622a: 0x0029dc85, 0x622b: 0x0029de85, + 0x622c: 0x0029cc85, 0x622d: 0x0029ce85, 0x622e: 0x0029d085, 0x622f: 0x0029d285, + 0x6230: 0x0029d485, 0x6231: 0x0029d685, 0x6232: 0x0029d885, 0x6233: 0x0029da85, + 0x6234: 0x0029dc85, 0x6235: 0x0029de85, 0x6236: 0x0029cc85, 0x6237: 0x0029ce85, + 0x6238: 0x0029d085, 0x6239: 0x0029d285, 0x623a: 0x0029d485, 0x623b: 0x0029d685, + 0x623c: 0x0029d885, 0x623d: 0x0029da85, 0x623e: 0x0029dc85, 0x623f: 0x0029de85, + // Block 0x189, offset 0x6240 + 0x6240: 0x00393885, 0x6241: 0x00393c85, 0x6242: 0x00396485, 0x6243: 0x00398885, + 0x6245: 0x003a7485, 0x6246: 0x0039a685, 0x6247: 0x00397285, + 0x6248: 0x0039e685, 0x6249: 0x003a9085, 0x624a: 0x003a1a85, 0x624b: 0x003a4085, + 0x624c: 0x003a4e85, 0x624d: 0x003a5685, 0x624e: 0x0039c685, 0x624f: 0x0039ee85, + 0x6250: 0x0039fc85, 0x6251: 0x0039dc85, 0x6252: 0x003a1285, 0x6253: 0x0039a485, + 0x6254: 0x0039c885, 0x6255: 0x00395685, 0x6256: 0x00395885, 0x6257: 0x00397485, + 0x6258: 0x00398a85, 0x6259: 0x0039de85, 0x625a: 0x0039e885, 0x625b: 0x0039f085, + 0x625c: 0x00393a85, 0x625d: 0x003a5885, 0x625e: 0x0039fe85, 0x625f: 0x003a1085, + 0x6261: 0x00393c85, 0x6262: 0x00396485, + 0x6264: 0x003a6885, 0x6267: 0x00397285, + 0x6269: 0x003a9085, 0x626a: 0x003a1a85, 0x626b: 0x003a4085, + 0x626c: 0x003a4e85, 0x626d: 0x003a5685, 0x626e: 0x0039c685, 0x626f: 0x0039ee85, + 0x6270: 0x0039fc85, 0x6271: 0x0039dc85, 0x6272: 0x003a1285, + 0x6274: 0x0039c885, 0x6275: 0x00395685, 0x6276: 0x00395885, 0x6277: 0x00397485, + 0x6279: 0x0039de85, 0x627b: 0x0039f085, + // Block 0x18a, offset 0x6280 + 0x6282: 0x00396485, + 0x6287: 0x00397285, + 0x6289: 0x003a9085, 0x628b: 0x003a4085, + 0x628d: 0x003a5685, 0x628e: 0x0039c685, 0x628f: 0x0039ee85, + 0x6291: 0x0039dc85, 0x6292: 0x003a1285, + 0x6294: 0x0039c885, 0x6297: 0x00397485, + 0x6299: 0x0039de85, 0x629b: 0x0039f085, + 0x629d: 0x003a5885, 0x629f: 0x003a1085, + 0x62a1: 0x00393c85, 0x62a2: 0x00396485, + 0x62a4: 0x003a6885, 0x62a7: 0x00397285, + 0x62a8: 0x0039e685, 0x62a9: 0x003a9085, 0x62aa: 0x003a1a85, + 0x62ac: 0x003a4e85, 0x62ad: 0x003a5685, 0x62ae: 0x0039c685, 0x62af: 0x0039ee85, + 0x62b0: 0x0039fc85, 0x62b1: 0x0039dc85, 0x62b2: 0x003a1285, + 0x62b4: 0x0039c885, 0x62b5: 0x00395685, 0x62b6: 0x00395885, 0x62b7: 0x00397485, + 0x62b9: 0x0039de85, 0x62ba: 0x0039e885, 0x62bb: 0x0039f085, + 0x62bc: 0x00393a85, 0x62be: 0x0039fe85, + // Block 0x18b, offset 0x62c0 + 0x62c0: 0x00393885, 0x62c1: 0x00393c85, 0x62c2: 0x00396485, 0x62c3: 0x00398885, + 0x62c4: 0x003a6885, 0x62c5: 0x003a7485, 0x62c6: 0x0039a685, 0x62c7: 0x00397285, + 0x62c8: 0x0039e685, 0x62c9: 0x003a9085, 0x62cb: 0x003a4085, + 0x62cc: 0x003a4e85, 0x62cd: 0x003a5685, 0x62ce: 0x0039c685, 0x62cf: 0x0039ee85, + 0x62d0: 0x0039fc85, 0x62d1: 0x0039dc85, 0x62d2: 0x003a1285, 0x62d3: 0x0039a485, + 0x62d4: 0x0039c885, 0x62d5: 0x00395685, 0x62d6: 0x00395885, 0x62d7: 0x00397485, + 0x62d8: 0x00398a85, 0x62d9: 0x0039de85, 0x62da: 0x0039e885, 0x62db: 0x0039f085, + 0x62e1: 0x00393c85, 0x62e2: 0x00396485, 0x62e3: 0x00398885, + 0x62e5: 0x003a7485, 0x62e6: 0x0039a685, 0x62e7: 0x00397285, + 0x62e8: 0x0039e685, 0x62e9: 0x003a9085, 0x62eb: 0x003a4085, + 0x62ec: 0x003a4e85, 0x62ed: 0x003a5685, 0x62ee: 0x0039c685, 0x62ef: 0x0039ee85, + 0x62f0: 0x0039fc85, 0x62f1: 0x0039dc85, 0x62f2: 0x003a1285, 0x62f3: 0x0039a485, + 0x62f4: 0x0039c885, 0x62f5: 0x00395685, 0x62f6: 0x00395885, 0x62f7: 0x00397485, + 0x62f8: 0x00398a85, 0x62f9: 0x0039de85, 0x62fa: 0x0039e885, 0x62fb: 0x0039f085, + // Block 0x18c, offset 0x6300 + 0x6330: 0x40070a20, 0x6331: 0x40070c20, + // Block 0x18d, offset 0x6340 + 0x6340: 0x401f6e20, 0x6341: 0x401f7020, 0x6342: 0x401f7220, 0x6343: 0x401f7420, + 0x6344: 0x401f7620, 0x6345: 0x401f7820, 0x6346: 0x401f7a20, 0x6347: 0x401f7c20, + 0x6348: 0x401f7e20, 0x6349: 0x401f8020, 0x634a: 0x401f8220, 0x634b: 0x401f8420, + 0x634c: 0x401f8620, 0x634d: 0x401f8820, 0x634e: 0x401f8a20, 0x634f: 0x401f8c20, + 0x6350: 0x401f8e20, 0x6351: 0x401f9020, 0x6352: 0x401f9220, 0x6353: 0x401f9420, + 0x6354: 0x401f9620, 0x6355: 0x401f9820, 0x6356: 0x401f9a20, 0x6357: 0x401f9c20, + 0x6358: 0x401f9e20, 0x6359: 0x401fa020, 0x635a: 0x401fa220, 0x635b: 0x401fa420, + 0x635c: 0x401fa620, 0x635d: 0x401fa820, 0x635e: 0x401faa20, 0x635f: 0x401fac20, + 0x6360: 0x401fae20, 0x6361: 0x401fb020, 0x6362: 0x401fb220, 0x6363: 0x401fb420, + 0x6364: 0x401fb620, 0x6365: 0x401fb820, 0x6366: 0x401fba20, 0x6367: 0x401fbc20, + 0x6368: 0x401fbe20, 0x6369: 0x401fc020, 0x636a: 0x401fc220, 0x636b: 0x401fc420, + 0x6370: 0x401fc620, 0x6371: 0x401fc820, 0x6372: 0x401fca20, 0x6373: 0x401fcc20, + 0x6374: 0x401fce20, 0x6375: 0x401fd020, 0x6376: 0x401fd220, 0x6377: 0x401fd420, + 0x6378: 0x401fd620, 0x6379: 0x401fd820, 0x637a: 0x401fda20, 0x637b: 0x401fdc20, + 0x637c: 0x401fde20, 0x637d: 0x401fe020, 0x637e: 0x401fe220, 0x637f: 0x401fe420, + // Block 0x18e, offset 0x6380 + 0x6380: 0x401fe620, 0x6381: 0x401fe820, 0x6382: 0x401fea20, 0x6383: 0x401fec20, + 0x6384: 0x401fee20, 0x6385: 0x401ff020, 0x6386: 0x401ff220, 0x6387: 0x401ff420, + 0x6388: 0x401ff620, 0x6389: 0x401ff820, 0x638a: 0x401ffa20, 0x638b: 0x401ffc20, + 0x638c: 0x401ffe20, 0x638d: 0x40200020, 0x638e: 0x40200220, 0x638f: 0x40200420, + 0x6390: 0x40200620, 0x6391: 0x40200820, 0x6392: 0x40200a20, 0x6393: 0x40200c20, + 0x6394: 0x40200e20, 0x6395: 0x40201020, 0x6396: 0x40201220, 0x6397: 0x40201420, + 0x6398: 0x40201620, 0x6399: 0x40201820, 0x639a: 0x40201a20, 0x639b: 0x40201c20, + 0x639c: 0x40201e20, 0x639d: 0x40202020, 0x639e: 0x40202220, 0x639f: 0x40202420, + 0x63a0: 0x40202620, 0x63a1: 0x40202820, 0x63a2: 0x40202a20, 0x63a3: 0x40202c20, + 0x63a4: 0x40202e20, 0x63a5: 0x40203020, 0x63a6: 0x40203220, 0x63a7: 0x40203420, + 0x63a8: 0x40203620, 0x63a9: 0x40203820, 0x63aa: 0x40203a20, 0x63ab: 0x40203c20, + 0x63ac: 0x40203e20, 0x63ad: 0x40204020, 0x63ae: 0x40204220, 0x63af: 0x40204420, + 0x63b0: 0x40204620, 0x63b1: 0x40204820, 0x63b2: 0x40204a20, 0x63b3: 0x40204c20, + 0x63b4: 0x40204e20, 0x63b5: 0x40205020, 0x63b6: 0x40205220, 0x63b7: 0x40205420, + 0x63b8: 0x40205620, 0x63b9: 0x40205820, 0x63ba: 0x40205a20, 0x63bb: 0x40205c20, + 0x63bc: 0x40205e20, 0x63bd: 0x40206020, 0x63be: 0x40206220, 0x63bf: 0x40206420, + // Block 0x18f, offset 0x63c0 + 0x63c0: 0x40206620, 0x63c1: 0x40206820, 0x63c2: 0x40206a20, 0x63c3: 0x40206c20, + 0x63c4: 0x40206e20, 0x63c5: 0x40207020, 0x63c6: 0x40207220, 0x63c7: 0x40207420, + 0x63c8: 0x40207620, 0x63c9: 0x40207820, 0x63ca: 0x40207a20, 0x63cb: 0x40207c20, + 0x63cc: 0x40207e20, 0x63cd: 0x40208020, 0x63ce: 0x40208220, 0x63cf: 0x40208420, + 0x63d0: 0x40208620, 0x63d1: 0x40208820, 0x63d2: 0x40208a20, 0x63d3: 0x40208c20, + 0x63e0: 0x40208e20, 0x63e1: 0x40209020, 0x63e2: 0x40209220, 0x63e3: 0x40209420, + 0x63e4: 0x40209620, 0x63e5: 0x40209820, 0x63e6: 0x40209a20, 0x63e7: 0x40209c20, + 0x63e8: 0x40209e20, 0x63e9: 0x4020a020, 0x63ea: 0x4020a220, 0x63eb: 0x4020a420, + 0x63ec: 0x4020a620, 0x63ed: 0x4020a820, 0x63ee: 0x4020aa20, + 0x63f1: 0x4020ac20, 0x63f2: 0x4020ae20, 0x63f3: 0x4020b020, + 0x63f4: 0x4020b220, 0x63f5: 0x4020b420, 0x63f6: 0x4020b620, 0x63f7: 0x4020b820, + 0x63f8: 0x4020ba20, 0x63f9: 0x4020bc20, 0x63fa: 0x4020be20, 0x63fb: 0x4020c020, + 0x63fc: 0x4020c220, 0x63fd: 0x4020c420, 0x63fe: 0x4020c620, + // Block 0x190, offset 0x6400 + 0x6401: 0x4020c820, 0x6402: 0x4020ca20, 0x6403: 0x4020cc20, + 0x6404: 0x4020ce20, 0x6405: 0x4020d020, 0x6406: 0x4020d220, 0x6407: 0x4020d420, + 0x6408: 0x4020d620, 0x6409: 0x4020d820, 0x640a: 0x4020da20, 0x640b: 0x4020dc20, + 0x640c: 0x4020de20, 0x640d: 0x4020e020, 0x640e: 0x4020e220, 0x640f: 0x4020e420, + 0x6411: 0x4020e620, 0x6412: 0x4020e820, 0x6413: 0x4020ea20, + 0x6414: 0x4020ec20, 0x6415: 0x4020ee20, 0x6416: 0x4020f020, 0x6417: 0x4020f220, + 0x6418: 0x4020f420, 0x6419: 0x4020f620, 0x641a: 0x4020f820, 0x641b: 0x4020fa20, + 0x641c: 0x4020fc20, 0x641d: 0x4020fe20, 0x641e: 0x40210020, 0x641f: 0x40210220, + // Block 0x191, offset 0x6440 + 0x6440: 0xf0001f04, 0x6441: 0xf0001f04, 0x6442: 0xf0001f04, 0x6443: 0xf0001f04, + 0x6444: 0xf0001f04, 0x6445: 0xf0001f04, 0x6446: 0xf0001f04, 0x6447: 0xf0001f04, + 0x6448: 0xf0001f04, 0x6449: 0xf0001f04, 0x644a: 0xf0001f04, + 0x6450: 0xf0000a04, 0x6451: 0xf0000a04, 0x6452: 0xf0000a04, 0x6453: 0xf0000a04, + 0x6454: 0xf0000a04, 0x6455: 0xf0000a04, 0x6456: 0xf0000a04, 0x6457: 0xf0000a04, + 0x6458: 0xf0000a04, 0x6459: 0xf0000a04, 0x645a: 0xf0000a04, 0x645b: 0xf0000a04, + 0x645c: 0xf0000a04, 0x645d: 0xf0000a04, 0x645e: 0xf0000a04, 0x645f: 0xf0000a04, + 0x6460: 0xf0000a04, 0x6461: 0xf0000a04, 0x6462: 0xf0000a04, 0x6463: 0xf0000a04, + 0x6464: 0xf0000a04, 0x6465: 0xf0000a04, 0x6466: 0xf0000a04, 0x6467: 0xf0000a04, + 0x6468: 0xf0000a04, 0x6469: 0xf0000a04, 0x646a: 0xf0000a04, 0x646b: 0x002c3a8c, + 0x646c: 0x002f7a8c, 0x646d: 0xf0000c0c, 0x646e: 0xf0000c0c, + 0x6470: 0x002bde9d, 0x6471: 0x002c0a9d, 0x6472: 0x002c3a9d, 0x6473: 0x002c629d, + 0x6474: 0x002c989d, 0x6475: 0x002d089d, 0x6476: 0x002d229d, 0x6477: 0x002d689d, + 0x6478: 0x002d9a9d, 0x6479: 0x002dcc9d, 0x647a: 0x002dfe9d, 0x647b: 0x002e229d, + 0x647c: 0x002e829d, 0x647d: 0x002e9e9d, 0x647e: 0x002ee29d, 0x647f: 0x002f2c9d, + // Block 0x192, offset 0x6480 + 0x6480: 0x002f569d, 0x6481: 0x002f7a9d, 0x6482: 0x002fe69d, 0x6483: 0x00302c9d, + 0x6484: 0x00306c9d, 0x6485: 0x0030be9d, 0x6486: 0x0030e29d, 0x6487: 0x0030f69d, + 0x6488: 0x0031009d, 0x6489: 0x00312a9d, 0x648a: 0xf0001d1d, 0x648b: 0xf0001d1d, + 0x648c: 0xf0001d1d, 0x648d: 0xf0001d1d, 0x648e: 0xe0000ebc, 0x648f: 0xf0001d1d, + 0x6490: 0x002bde8c, 0x6491: 0x002c0a8c, 0x6492: 0x002c3a8c, 0x6493: 0x002c628c, + 0x6494: 0x002c988c, 0x6495: 0x002d088c, 0x6496: 0x002d228c, 0x6497: 0x002d688c, + 0x6498: 0x002d9a8c, 0x6499: 0x002dcc8c, 0x649a: 0x002dfe8c, 0x649b: 0x002e228c, + 0x649c: 0x002e828c, 0x649d: 0x002e9e8c, 0x649e: 0x002ee28c, 0x649f: 0x002f2c8c, + 0x64a0: 0x002f568c, 0x64a1: 0x002f7a8c, 0x64a2: 0x002fe68c, 0x64a3: 0x00302c8c, + 0x64a4: 0x00306c8c, 0x64a5: 0x0030be8c, 0x64a6: 0x0030e28c, 0x64a7: 0x0030f68c, + 0x64a8: 0x0031008c, 0x64a9: 0x00312a8c, 0x64aa: 0xf0001414, 0x64ab: 0xf0001414, + 0x64b0: 0x002bde9d, 0x64b1: 0x002c0a9d, 0x64b2: 0x002c3a9d, 0x64b3: 0x002c629d, + 0x64b4: 0x002c989d, 0x64b5: 0x002d089d, 0x64b6: 0x002d229d, 0x64b7: 0x002d689d, + 0x64b8: 0x002d9a9d, 0x64b9: 0x002dcc9d, 0x64ba: 0x002dfe9d, 0x64bb: 0x002e229d, + 0x64bc: 0x002e829d, 0x64bd: 0x002e9e9d, 0x64be: 0x002ee29d, 0x64bf: 0x002f2c9d, + // Block 0x193, offset 0x64c0 + 0x64c0: 0x002f569d, 0x64c1: 0x002f7a9d, 0x64c2: 0x002fe69d, 0x64c3: 0x00302c9d, + 0x64c4: 0x00306c9d, 0x64c5: 0x0030be9d, 0x64c6: 0x0030e29d, 0x64c7: 0x0030f69d, + 0x64c8: 0x0031009d, 0x64c9: 0x00312a9d, 0x64ca: 0x002f2c9d, 0x64cb: 0xe0000c81, + 0x64cc: 0xe0000eb5, 0x64cd: 0xe0000f74, 0x64ce: 0xe00009d2, 0x64cf: 0xe00010f0, + 0x64d0: 0xf0001d1d, 0x64d1: 0xe0000a6f, 0x64d2: 0xe0000a7e, 0x64d3: 0xe0000ba4, + 0x64d4: 0xe0000c84, 0x64d5: 0xe0000d8a, 0x64d6: 0xe0000d8e, 0x64d7: 0xe0000e9b, + 0x64d8: 0xe0000f77, 0x64d9: 0xe00010a2, 0x64da: 0xe00010c0, + // Block 0x194, offset 0x6500 + 0x6526: 0x40110c20, 0x6527: 0x40110e20, + 0x6528: 0x40111020, 0x6529: 0x40111220, 0x652a: 0x40111420, 0x652b: 0x40111620, + 0x652c: 0x40111820, 0x652d: 0x40111a20, 0x652e: 0x40111c20, 0x652f: 0x40111e20, + 0x6530: 0x40112020, 0x6531: 0x40112220, 0x6532: 0x40112420, 0x6533: 0x40112620, + 0x6534: 0x40112820, 0x6535: 0x40112a20, 0x6536: 0x40112c20, 0x6537: 0x40112e20, + 0x6538: 0x40113020, 0x6539: 0x40113220, 0x653a: 0x40113420, 0x653b: 0x40113620, + 0x653c: 0x40113820, 0x653d: 0x40113a20, 0x653e: 0x40113c20, 0x653f: 0x40113e20, + // Block 0x195, offset 0x6540 + 0x6540: 0xf0001c1c, 0x6541: 0xf0001c1c, 0x6542: 0x00658c9c, + 0x6550: 0x02c4969c, 0x6551: 0x02b6ae9c, 0x6552: 0x02a7989c, 0x6553: 0xf0001c1c, + 0x6554: 0x029d189c, 0x6555: 0x02b2349c, 0x6556: 0x0313c69c, 0x6557: 0x02b2529c, + 0x6558: 0x029d489c, 0x6559: 0x02cc409c, 0x655a: 0x02e2429c, 0x655b: 0x02cb329c, + 0x655c: 0x02a49a9c, 0x655d: 0x02bf189c, 0x655e: 0x02a31a9c, 0x655f: 0x02cb609c, + 0x6560: 0x02a43a9c, 0x6561: 0x02fa849c, 0x6562: 0x02ea3e9c, 0x6563: 0x0319529c, + 0x6564: 0x02b1e09c, 0x6565: 0x02a8729c, 0x6566: 0x02de289c, 0x6567: 0x02c52a9c, + 0x6568: 0x02c6aa9c, 0x6569: 0x029c009c, 0x656a: 0x029c129c, 0x656b: 0x0320949c, + 0x656c: 0x02bbcc9c, 0x656d: 0x029c5a9c, 0x656e: 0x02a7e69c, 0x656f: 0x02c60e9c, + 0x6570: 0x031ae09c, 0x6571: 0x02c4a69c, 0x6572: 0x02f3029c, 0x6573: 0x02f4f49c, + 0x6574: 0x02a8109c, 0x6575: 0x02dd009c, 0x6576: 0x02ce129c, 0x6577: 0x02ce109c, + 0x6578: 0x02ea669c, 0x6579: 0x02a4e49c, 0x657a: 0x02ab6c9c, + // Block 0x196, offset 0x6580 + 0x6580: 0xf0000404, 0x6581: 0xf0000404, 0x6582: 0xf0000404, 0x6583: 0xf0000404, + 0x6584: 0xf0000404, 0x6585: 0xf0000404, 0x6586: 0xf0000404, 0x6587: 0xf0000404, + 0x6588: 0xf0000404, + 0x6590: 0x02bf2e86, 0x6591: 0x02a7de86, + // Block 0x197, offset 0x65c0 + 0x65c0: 0x40210420, 0x65c1: 0x40210620, 0x65c2: 0x40210820, 0x65c3: 0x40210a20, + 0x65c4: 0x40210c20, 0x65c5: 0x40210e20, 0x65c6: 0x40211020, 0x65c7: 0x40211220, + 0x65c8: 0x40211420, 0x65c9: 0x40211620, 0x65ca: 0x40211820, 0x65cb: 0x40211a20, + 0x65cc: 0x40211c20, 0x65cd: 0x40211e20, 0x65ce: 0x40212020, 0x65cf: 0x40212220, + 0x65d0: 0x40212420, 0x65d1: 0x40212620, 0x65d2: 0x40212820, 0x65d3: 0x40212a20, + 0x65d4: 0x40212c20, 0x65d5: 0x40212e20, 0x65d6: 0x40213020, 0x65d7: 0x40213220, + 0x65d8: 0x40213420, 0x65d9: 0x40213620, 0x65da: 0x40213820, 0x65db: 0x40213a20, + 0x65dc: 0x40213c20, 0x65dd: 0x40213e20, 0x65de: 0x40214020, 0x65df: 0x40214220, + 0x65e0: 0x40214420, + 0x65f0: 0x40214620, 0x65f1: 0x40214820, 0x65f2: 0x40214a20, 0x65f3: 0x40214c20, + 0x65f4: 0x40214e20, 0x65f5: 0x40215020, 0x65f7: 0x40215220, + 0x65f8: 0x40215420, 0x65f9: 0x40215620, 0x65fa: 0x40215820, 0x65fb: 0x40215a20, + 0x65fc: 0x40215c20, 0x65fd: 0x40215e20, 0x65fe: 0x40216020, 0x65ff: 0x40216220, + // Block 0x198, offset 0x6600 + 0x6600: 0x40216420, 0x6601: 0x40216620, 0x6602: 0x40216820, 0x6603: 0x40216a20, + 0x6604: 0x40216c20, 0x6605: 0x40216e20, 0x6606: 0x40217020, 0x6607: 0x40217220, + 0x6608: 0x40217420, 0x6609: 0x40217620, 0x660a: 0x40217820, 0x660b: 0x40217a20, + 0x660c: 0x40217c20, 0x660d: 0x40217e20, 0x660e: 0x40218020, 0x660f: 0x40218220, + 0x6610: 0x40218420, 0x6611: 0x40218620, 0x6612: 0x40218820, 0x6613: 0x40218a20, + 0x6614: 0x40218c20, 0x6615: 0x40218e20, 0x6616: 0x40219020, 0x6617: 0x40219220, + 0x6618: 0x40219420, 0x6619: 0x40219620, 0x661a: 0x40219820, 0x661b: 0x40219a20, + 0x661c: 0x40219c20, 0x661d: 0x40219e20, 0x661e: 0x4021a020, 0x661f: 0x4021a220, + 0x6620: 0x4021a420, 0x6621: 0x4021a620, 0x6622: 0x4021a820, 0x6623: 0x4021aa20, + 0x6624: 0x4021ac20, 0x6625: 0x4021ae20, 0x6626: 0x4021b020, 0x6627: 0x4021b220, + 0x6628: 0x4021b420, 0x6629: 0x4021b620, 0x662a: 0x4021b820, 0x662b: 0x4021ba20, + 0x662c: 0x4021bc20, 0x662d: 0x4021be20, 0x662e: 0x4021c020, 0x662f: 0x4021c220, + 0x6630: 0x4021c420, 0x6631: 0x4021c620, 0x6632: 0x4021c820, 0x6633: 0x4021ca20, + 0x6634: 0x4021cc20, 0x6635: 0x4021ce20, 0x6636: 0x4021d020, 0x6637: 0x4021d220, + 0x6638: 0x4021d420, 0x6639: 0x4021d620, 0x663a: 0x4021d820, 0x663b: 0x4021da20, + 0x663c: 0x4021dc20, + // Block 0x199, offset 0x6640 + 0x6640: 0x4021de20, 0x6641: 0x4021e020, 0x6642: 0x4021e220, 0x6643: 0x4021e420, + 0x6644: 0x4021e620, 0x6645: 0x4021e820, 0x6646: 0x4021ea20, 0x6647: 0x4021ec20, + 0x6648: 0x4021ee20, 0x6649: 0x4021f020, 0x664a: 0x4021f220, 0x664b: 0x4021f420, + 0x664c: 0x4021f620, 0x664d: 0x4021f820, 0x664e: 0x4021fa20, 0x664f: 0x4021fc20, + 0x6650: 0x4021fe20, 0x6651: 0x40220020, 0x6652: 0x40220220, 0x6653: 0x40220420, + 0x6660: 0x40220620, 0x6661: 0x40220820, 0x6662: 0x40220a20, 0x6663: 0x40220c20, + 0x6664: 0x40220e20, 0x6665: 0x40221020, 0x6666: 0x40221220, 0x6667: 0x40221420, + 0x6668: 0x40221620, 0x6669: 0x40221820, 0x666a: 0x40221a20, 0x666b: 0x40221c20, + 0x666c: 0x40221e20, 0x666d: 0x40222020, 0x666e: 0x40222220, 0x666f: 0x40222420, + 0x6670: 0x40222620, 0x6671: 0x40222820, 0x6672: 0x40222a20, 0x6673: 0x40222c20, + 0x6674: 0x40222e20, 0x6675: 0x40223020, 0x6676: 0x40223220, 0x6677: 0x40223420, + 0x6678: 0x40223620, 0x6679: 0x40223820, 0x667a: 0x40223a20, 0x667b: 0x40223c20, + 0x667c: 0x40223e20, 0x667d: 0x40224020, 0x667e: 0x40224220, 0x667f: 0x40224420, + // Block 0x19a, offset 0x6680 + 0x6680: 0x40224620, 0x6681: 0x40224820, 0x6682: 0x40224a20, 0x6683: 0x40224c20, + 0x6684: 0x40224e20, 0x6686: 0x40225020, 0x6687: 0x40225220, + 0x6688: 0x40225420, 0x6689: 0x40225620, 0x668a: 0x40225820, + 0x66a0: 0x40225a20, 0x66a1: 0x40225c20, 0x66a2: 0x40225e20, 0x66a3: 0x40226020, + 0x66a4: 0x40226220, 0x66a5: 0x40226420, 0x66a6: 0x40226620, 0x66a7: 0x40226820, + 0x66a8: 0x40226a20, 0x66a9: 0x40226c20, 0x66aa: 0x40226e20, 0x66ab: 0x40227020, + 0x66ac: 0x40227220, 0x66ad: 0x40227420, 0x66ae: 0x40227620, 0x66af: 0x40227820, + 0x66b0: 0x40227a20, + // Block 0x19b, offset 0x66c0 + 0x66c0: 0x40227c20, 0x66c1: 0x40227e20, 0x66c2: 0x40228020, 0x66c3: 0x40228220, + 0x66c4: 0x40228420, 0x66c5: 0x40228620, 0x66c6: 0x40228820, 0x66c7: 0x40228a20, + 0x66c8: 0x40228c20, 0x66c9: 0x40228e20, 0x66ca: 0x40229020, 0x66cb: 0x40229220, + 0x66cc: 0x40229420, 0x66cd: 0x40229620, 0x66ce: 0x40229820, 0x66cf: 0x40229a20, + 0x66d0: 0x40229c20, 0x66d1: 0x40229e20, 0x66d2: 0x4022a020, 0x66d3: 0x4022a220, + 0x66d4: 0x4022a420, 0x66d5: 0x4022a620, 0x66d6: 0x4022a820, 0x66d7: 0x4022aa20, + 0x66d8: 0x4022ac20, 0x66d9: 0x4022ae20, 0x66da: 0x4022b020, 0x66db: 0x4022b220, + 0x66dc: 0x4022b420, 0x66dd: 0x4022b620, 0x66de: 0x4022b820, 0x66df: 0x4022ba20, + 0x66e0: 0x4022bc20, 0x66e1: 0x4022be20, 0x66e2: 0x4022c020, 0x66e3: 0x4022c220, + 0x66e4: 0x4022c420, 0x66e5: 0x4022c620, 0x66e6: 0x4022c820, 0x66e7: 0x4022ca20, + 0x66e8: 0x4022cc20, 0x66e9: 0x4022ce20, 0x66ea: 0x4022d020, 0x66eb: 0x4022d220, + 0x66ec: 0x4022d420, 0x66ed: 0x4022d620, 0x66ee: 0x4022d820, 0x66ef: 0x4022da20, + 0x66f0: 0x4022dc20, 0x66f1: 0x4022de20, 0x66f2: 0x4022e020, 0x66f3: 0x4022e220, + 0x66f4: 0x4022e420, 0x66f5: 0x4022e620, 0x66f6: 0x4022e820, 0x66f7: 0x4022ea20, + 0x66f8: 0x4022ec20, 0x66f9: 0x4022ee20, 0x66fa: 0x4022f020, 0x66fb: 0x4022f220, + 0x66fc: 0x4022f420, 0x66fd: 0x4022f620, 0x66fe: 0x4022f820, + // Block 0x19c, offset 0x6700 + 0x6700: 0x4022fa20, 0x6702: 0x4022fc20, 0x6703: 0x4022fe20, + 0x6704: 0x40230020, 0x6705: 0x40230220, 0x6706: 0x40230420, 0x6707: 0x40230620, + 0x6708: 0x40230820, 0x6709: 0x40230a20, 0x670a: 0x40230c20, 0x670b: 0x40230e20, + 0x670c: 0x40231020, 0x670d: 0x40231220, 0x670e: 0x40231420, 0x670f: 0x40231620, + 0x6710: 0x40231820, 0x6711: 0x40231a20, 0x6712: 0x40231c20, 0x6713: 0x40231e20, + 0x6714: 0x40232020, 0x6715: 0x40232220, 0x6716: 0x40232420, 0x6717: 0x40232620, + 0x6718: 0x40232820, 0x6719: 0x40232a20, 0x671a: 0x40232c20, 0x671b: 0x40232e20, + 0x671c: 0x40233020, 0x671d: 0x40233220, 0x671e: 0x40233420, 0x671f: 0x40233620, + 0x6720: 0x40233820, 0x6721: 0x40233a20, 0x6722: 0x40233c20, 0x6723: 0x40233e20, + 0x6724: 0x40234020, 0x6725: 0x40234220, 0x6726: 0x40234420, 0x6727: 0x40234620, + 0x6728: 0x40234820, 0x6729: 0x40234a20, 0x672a: 0x40234c20, 0x672b: 0x40234e20, + 0x672c: 0x40235020, 0x672d: 0x40235220, 0x672e: 0x40235420, 0x672f: 0x40235620, + 0x6730: 0x40235820, 0x6731: 0x40235a20, 0x6732: 0x40235c20, 0x6733: 0x40235e20, + 0x6734: 0x40236020, 0x6735: 0x40236220, 0x6736: 0x40236420, 0x6737: 0x40236620, + 0x6738: 0x40236820, 0x6739: 0x40236a20, 0x673a: 0x40236c20, 0x673b: 0x40236e20, + 0x673c: 0x40237020, 0x673d: 0x40237220, 0x673e: 0x40237420, 0x673f: 0x40237620, + // Block 0x19d, offset 0x6740 + 0x6740: 0x40237820, 0x6741: 0x40237a20, 0x6742: 0x40237c20, 0x6743: 0x40237e20, + 0x6744: 0x40238020, 0x6745: 0x40238220, 0x6746: 0x40238420, 0x6747: 0x40238620, + 0x6748: 0x40238820, 0x6749: 0x40238a20, 0x674a: 0x40238c20, 0x674b: 0x40238e20, + 0x674c: 0x40239020, 0x674d: 0x40239220, 0x674e: 0x40239420, 0x674f: 0x40239620, + 0x6750: 0x40239820, 0x6751: 0x40239a20, 0x6752: 0x40239c20, 0x6753: 0x40239e20, + 0x6754: 0x4023a020, 0x6755: 0x4023a220, 0x6756: 0x4023a420, 0x6757: 0x4023a620, + 0x6758: 0x4023a820, 0x6759: 0x4023aa20, 0x675a: 0x4023ac20, 0x675b: 0x4023ae20, + 0x675c: 0x4023b020, 0x675d: 0x4023b220, 0x675e: 0x4023b420, 0x675f: 0x4023b620, + 0x6760: 0x4023b820, 0x6761: 0x4023ba20, 0x6762: 0x4023bc20, 0x6763: 0x4023be20, + 0x6764: 0x4023c020, 0x6765: 0x4023c220, 0x6766: 0x4023c420, 0x6767: 0x4023c620, + 0x6768: 0x4023c820, 0x6769: 0x4023ca20, 0x676a: 0x4023cc20, 0x676b: 0x4023ce20, + 0x676c: 0x4023d020, 0x676d: 0x4023d220, 0x676e: 0x4023d420, 0x676f: 0x4023d620, + 0x6770: 0x4023d820, 0x6771: 0x4023da20, 0x6772: 0x4023dc20, 0x6773: 0x4023de20, + 0x6774: 0x4023e020, 0x6775: 0x4023e220, 0x6776: 0x4023e420, 0x6777: 0x4023e620, + 0x6778: 0x4023e820, 0x6779: 0x4023ea20, 0x677a: 0x4023ec20, 0x677b: 0x4023ee20, + 0x677c: 0x4023f020, 0x677d: 0x4023f220, 0x677e: 0x4023f420, 0x677f: 0x4023f620, + // Block 0x19e, offset 0x6780 + 0x6780: 0x4023f820, 0x6781: 0x4023fa20, 0x6782: 0x4023fc20, 0x6783: 0x4023fe20, + 0x6784: 0x40240020, 0x6785: 0x40240220, 0x6786: 0x40240420, 0x6787: 0x40240620, + 0x6788: 0x40240820, 0x6789: 0x40240a20, 0x678a: 0x40240c20, 0x678b: 0x40240e20, + 0x678c: 0x40241020, 0x678d: 0x40241220, 0x678e: 0x40241420, 0x678f: 0x40241620, + 0x6790: 0x40241820, 0x6791: 0x40241a20, 0x6792: 0x40241c20, 0x6793: 0x40241e20, + 0x6794: 0x40242020, 0x6795: 0x40242220, 0x6796: 0x40242420, 0x6797: 0x40242620, + 0x6798: 0x40242820, 0x6799: 0x40242a20, 0x679a: 0x40242c20, 0x679b: 0x40242e20, + 0x679c: 0x40243020, 0x679d: 0x40243220, 0x679e: 0x40243420, 0x679f: 0x40243620, + 0x67a0: 0x40243820, 0x67a1: 0x40243a20, 0x67a2: 0x40243c20, 0x67a3: 0x40243e20, + 0x67a4: 0x40244020, 0x67a5: 0x40244220, 0x67a6: 0x40244420, 0x67a7: 0x40244620, + 0x67a8: 0x40244820, 0x67a9: 0x40244a20, 0x67aa: 0x40244c20, 0x67ab: 0x40244e20, + 0x67ac: 0x40245020, 0x67ad: 0x40245220, 0x67ae: 0x40245420, 0x67af: 0x40245620, + 0x67b0: 0x40245820, 0x67b1: 0x40245a20, 0x67b2: 0x40245c20, 0x67b3: 0x40245e20, + 0x67b4: 0x40246020, 0x67b5: 0x40246220, 0x67b6: 0x40246420, 0x67b7: 0x40246620, + 0x67b9: 0x40246820, 0x67ba: 0x40246a20, 0x67bb: 0x40246c20, + 0x67bc: 0x40246e20, + // Block 0x19f, offset 0x67c0 + 0x67c0: 0x40247020, 0x67c1: 0x40247220, 0x67c2: 0x40247420, 0x67c3: 0x40247620, + 0x67c4: 0x40247820, 0x67c5: 0x40247a20, 0x67c6: 0x40247c20, 0x67c7: 0x40247e20, + 0x67c8: 0x40248020, 0x67c9: 0x40248220, 0x67ca: 0x40248420, 0x67cb: 0x40248620, + 0x67cc: 0x40248820, 0x67cd: 0x40248a20, 0x67ce: 0x40248c20, 0x67cf: 0x40248e20, + 0x67d0: 0x40249020, 0x67d1: 0x40249220, 0x67d2: 0x40249420, 0x67d3: 0x40249620, + 0x67d4: 0x40249820, 0x67d5: 0x40249a20, 0x67d6: 0x40249c20, 0x67d7: 0x40249e20, + 0x67d8: 0x4024a020, 0x67d9: 0x4024a220, 0x67da: 0x4024a420, 0x67db: 0x4024a620, + 0x67dc: 0x4024a820, 0x67dd: 0x4024aa20, 0x67de: 0x4024ac20, 0x67df: 0x4024ae20, + 0x67e0: 0x4024b020, 0x67e1: 0x4024b220, 0x67e2: 0x4024b420, 0x67e3: 0x4024b620, + 0x67e4: 0x4024b820, 0x67e5: 0x4024ba20, 0x67e6: 0x4024bc20, 0x67e7: 0x4024be20, + 0x67e8: 0x4024c020, 0x67e9: 0x4024c220, 0x67ea: 0x4024c420, 0x67eb: 0x4024c620, + 0x67ec: 0x4024c820, 0x67ed: 0x4024ca20, 0x67ee: 0x4024cc20, 0x67ef: 0x4024ce20, + 0x67f0: 0x4024d020, 0x67f1: 0x4024d220, 0x67f2: 0x4024d420, 0x67f3: 0x4024d620, + 0x67f4: 0x4024d820, 0x67f5: 0x4024da20, 0x67f6: 0x4024dc20, 0x67f7: 0x4024de20, + 0x67f8: 0x4024e020, 0x67f9: 0x4024e220, 0x67fa: 0x4024e420, 0x67fb: 0x4024e620, + 0x67fc: 0x4024e820, 0x67fd: 0x4024ea20, + // Block 0x1a0, offset 0x6800 + 0x6800: 0x4024ec20, 0x6801: 0x4024ee20, 0x6802: 0x4024f020, 0x6803: 0x4024f220, + 0x6810: 0x4024f420, 0x6811: 0x4024f620, 0x6812: 0x4024f820, 0x6813: 0x4024fa20, + 0x6814: 0x4024fc20, 0x6815: 0x4024fe20, 0x6816: 0x40250020, 0x6817: 0x40250220, + 0x6818: 0x40250420, 0x6819: 0x40250620, 0x681a: 0x40250820, 0x681b: 0x40250a20, + 0x681c: 0x40250c20, 0x681d: 0x40250e20, 0x681e: 0x40251020, 0x681f: 0x40251220, + 0x6820: 0x40251420, 0x6821: 0x40251620, 0x6822: 0x40251820, 0x6823: 0x40251a20, + 0x6824: 0x40251c20, 0x6825: 0x40251e20, 0x6826: 0x40252020, 0x6827: 0x40252220, + // Block 0x1a1, offset 0x6840 + 0x687b: 0x40252420, + 0x687c: 0x40252620, 0x687d: 0x40252820, 0x687e: 0x40252a20, 0x687f: 0x40252c20, + // Block 0x1a2, offset 0x6880 + 0x6880: 0x40252e20, 0x6881: 0x40253020, 0x6882: 0x40253220, 0x6883: 0x40253420, + 0x6884: 0x40253620, 0x6885: 0x40253820, 0x6886: 0x40253a20, 0x6887: 0x40253c20, + 0x6888: 0x40253e20, 0x6889: 0x40254020, 0x688a: 0x40254220, 0x688b: 0x40254420, + 0x688c: 0x40254620, 0x688d: 0x40254820, 0x688e: 0x40254a20, 0x688f: 0x40254c20, + 0x6890: 0x40254e20, 0x6891: 0x40255020, 0x6892: 0x40255220, 0x6893: 0x40255420, + 0x6894: 0x40255620, 0x6895: 0x40255820, 0x6896: 0x40255a20, 0x6897: 0x40255c20, + 0x6898: 0x40255e20, 0x6899: 0x40256020, 0x689a: 0x40256220, 0x689b: 0x40256420, + 0x689c: 0x40256620, 0x689d: 0x40256820, 0x689e: 0x40256a20, 0x689f: 0x40256c20, + 0x68a0: 0x40256e20, 0x68a1: 0x40257020, 0x68a2: 0x40257220, 0x68a3: 0x40257420, + 0x68a4: 0x40257620, 0x68a5: 0x40257820, 0x68a6: 0x40257a20, 0x68a7: 0x40257c20, + 0x68a8: 0x40257e20, 0x68a9: 0x40258020, 0x68aa: 0x40258220, 0x68ab: 0x40258420, + 0x68ac: 0x40258620, 0x68ad: 0x40258820, 0x68ae: 0x40258a20, 0x68af: 0x40258c20, + 0x68b0: 0x40258e20, 0x68b1: 0x40259020, 0x68b2: 0x40259220, 0x68b3: 0x40259420, + 0x68b4: 0x40259620, 0x68b5: 0x40259820, 0x68b6: 0x40259a20, 0x68b7: 0x40259c20, + 0x68b8: 0x40259e20, 0x68b9: 0x4025a020, 0x68ba: 0x4025a220, 0x68bb: 0x4025a420, + 0x68bc: 0x4025a620, 0x68bd: 0x4025a820, 0x68be: 0x4025aa20, 0x68bf: 0x4025ac20, + // Block 0x1a3, offset 0x68c0 + 0x68c0: 0x4025ae20, + 0x68c5: 0x4025b020, 0x68c6: 0x4025b220, 0x68c7: 0x4025b420, + 0x68c8: 0x4025b620, 0x68c9: 0x4025b820, 0x68ca: 0x4025ba20, 0x68cb: 0x4025bc20, + 0x68cc: 0x4025be20, 0x68cd: 0x4025c020, 0x68ce: 0x4025c220, 0x68cf: 0x4025c420, + // Block 0x1a4, offset 0x6900 + 0x6900: 0x4025c620, 0x6901: 0x4025c820, 0x6902: 0x4025ca20, 0x6903: 0x4025cc20, + 0x6904: 0x4025ce20, 0x6905: 0x4025d020, 0x6906: 0x4025d220, 0x6907: 0x4025d420, + 0x6908: 0x4025d620, 0x6909: 0x4025d820, 0x690a: 0x4025da20, 0x690b: 0x4025dc20, + 0x690c: 0x4025de20, 0x690d: 0x4025e020, 0x690e: 0x4025e220, 0x690f: 0x4025e420, + 0x6910: 0x4025e620, 0x6911: 0x4025e820, 0x6912: 0x4025ea20, 0x6913: 0x4025ec20, + 0x6914: 0x4025ee20, 0x6915: 0x4025f020, 0x6916: 0x4025f220, 0x6917: 0x4025f420, + 0x6918: 0x4025f620, 0x6919: 0x4025f820, 0x691a: 0x4025fa20, 0x691b: 0x4025fc20, + 0x691c: 0x4025fe20, 0x691d: 0x40260020, 0x691e: 0x40260220, 0x691f: 0x40260420, + 0x6920: 0x40260620, 0x6921: 0x40260820, 0x6922: 0x40260a20, 0x6923: 0x40260c20, + 0x6924: 0x40260e20, 0x6925: 0x40261020, 0x6926: 0x40261220, 0x6927: 0x40261420, + 0x6928: 0x40261620, 0x6929: 0x40261820, 0x692a: 0x40261a20, 0x692b: 0x40261c20, + 0x692c: 0x40261e20, 0x692d: 0x40262020, 0x692e: 0x40262220, 0x692f: 0x40262420, + 0x6930: 0x40262620, 0x6931: 0x40262820, 0x6932: 0x40262a20, 0x6933: 0x40262c20, + 0x6934: 0x40262e20, 0x6935: 0x40263020, 0x6936: 0x40263220, 0x6937: 0x40263420, + 0x6938: 0x40263620, 0x6939: 0x40263820, 0x693a: 0x40263a20, 0x693b: 0x40263c20, + 0x693c: 0x40263e20, 0x693d: 0x40264020, 0x693e: 0x40264220, 0x693f: 0x40264420, + // Block 0x1a5, offset 0x6940 + 0x6940: 0x40264620, 0x6941: 0x40264820, 0x6942: 0x40264a20, 0x6943: 0x40264c20, + 0x6944: 0x40264e20, 0x6945: 0x40265020, + // Block 0x1a6, offset 0x6980 + 0x6980: 0x40265220, 0x6981: 0x40265420, 0x6982: 0x40265620, 0x6983: 0x40265820, + 0x6984: 0x40265a20, 0x6985: 0x40265c20, 0x6986: 0x40265e20, 0x6987: 0x40266020, + 0x6988: 0x40266220, 0x6989: 0x40266420, 0x698a: 0x40266620, 0x698b: 0x40266820, + 0x698c: 0x40266a20, 0x698d: 0x40266c20, 0x698e: 0x40266e20, 0x698f: 0x40267020, + 0x6990: 0x40267220, 0x6991: 0x40267420, 0x6992: 0x40267620, 0x6993: 0x40267820, + 0x6994: 0x40267a20, 0x6995: 0x40267c20, 0x6996: 0x40267e20, 0x6997: 0x40268020, + 0x6998: 0x40268220, 0x6999: 0x40268420, 0x699a: 0x40268620, 0x699b: 0x40268820, + 0x699c: 0x40268a20, 0x699d: 0x40268c20, 0x699e: 0x40268e20, 0x699f: 0x40269020, + 0x69a0: 0x40269220, 0x69a1: 0x40269420, 0x69a2: 0x40269620, 0x69a3: 0x40269820, + 0x69a4: 0x40269a20, 0x69a5: 0x40269c20, 0x69a6: 0x40269e20, 0x69a7: 0x4026a020, + 0x69a8: 0x4026a220, 0x69a9: 0x4026a420, 0x69aa: 0x4026a620, 0x69ab: 0x4026a820, + 0x69ac: 0x4026aa20, 0x69ad: 0x4026ac20, 0x69ae: 0x4026ae20, 0x69af: 0x4026b020, + 0x69b0: 0x4026b220, 0x69b1: 0x4026b420, 0x69b2: 0x4026b620, 0x69b3: 0x4026b820, + 0x69b4: 0x4026ba20, 0x69b5: 0x4026bc20, 0x69b6: 0x4026be20, 0x69b7: 0x4026c020, + 0x69b8: 0x4026c220, 0x69b9: 0x4026c420, 0x69ba: 0x4026c620, 0x69bb: 0x4026c820, + 0x69bc: 0x4026ca20, 0x69bd: 0x4026cc20, 0x69be: 0x4026ce20, 0x69bf: 0x4026d020, + // Block 0x1a7, offset 0x69c0 + 0x69c0: 0x4026d220, 0x69c1: 0x4026d420, 0x69c2: 0x4026d620, 0x69c3: 0x4026d820, + 0x69c4: 0x4026da20, 0x69c5: 0x4026dc20, 0x69c6: 0x4026de20, 0x69c7: 0x4026e020, + 0x69c8: 0x4026e220, 0x69c9: 0x4026e420, 0x69ca: 0x4026e620, 0x69cb: 0x4026e820, + 0x69cc: 0x4026ea20, 0x69cd: 0x4026ec20, 0x69ce: 0x4026ee20, 0x69cf: 0x4026f020, + 0x69d0: 0x4026f220, 0x69d1: 0x4026f420, 0x69d2: 0x4026f620, 0x69d3: 0x4026f820, + 0x69d4: 0x4026fa20, 0x69d5: 0x4026fc20, 0x69d6: 0x4026fe20, 0x69d7: 0x40270020, + 0x69d8: 0x40270220, 0x69d9: 0x40270420, 0x69da: 0x40270620, 0x69db: 0x40270820, + 0x69dc: 0x40270a20, 0x69dd: 0x40270c20, 0x69de: 0x40270e20, 0x69df: 0x40271020, + 0x69e0: 0x40271220, 0x69e1: 0x40271420, 0x69e2: 0x40271620, 0x69e3: 0x40271820, + 0x69e4: 0x40271a20, 0x69e5: 0x40271c20, 0x69e6: 0x40271e20, 0x69e7: 0x40272020, + 0x69e8: 0x40272220, 0x69e9: 0x40272420, 0x69ea: 0x40272620, 0x69eb: 0x40272820, + 0x69ec: 0x40272a20, 0x69ed: 0x40272c20, 0x69ee: 0x40272e20, 0x69ef: 0x40273020, + 0x69f0: 0x40273220, 0x69f1: 0x40273420, 0x69f2: 0x40273620, 0x69f3: 0x40273820, + // Block 0x1a8, offset 0x6a00 + 0x6a00: 0x429c7a20, 0x6a01: 0x429c7020, 0x6a02: 0x429c8220, 0x6a03: 0x48024420, + 0x6a04: 0x429ec020, 0x6a05: 0x429f5c20, 0x6a06: 0x429f7620, 0x6a07: 0x42a00420, + 0x6a08: 0x42a0f420, 0x6a09: 0x42a13220, 0x6a0a: 0x42a1ce20, 0x6a0b: 0x42a19e20, + 0x6a0c: 0x44693c20, 0x6a0d: 0x480c7420, 0x6a0e: 0x42a29a20, 0x6a0f: 0x42a2a820, + 0x6a10: 0x42a2c820, 0x6a11: 0x42a2ee20, 0x6a12: 0x480a3820, 0x6a13: 0x44697220, + 0x6a14: 0x42a2ce20, 0x6a15: 0x42a31a20, 0x6a16: 0x480a9620, 0x6a17: 0x42a32e20, + 0x6a18: 0x42a34820, 0x6a19: 0x429d9820, 0x6a1a: 0x42a35820, 0x6a1b: 0x42a36a20, + 0x6a1c: 0x4923be20, 0x6a1d: 0x42a3ea20, 0x6a1e: 0x42a40620, 0x6a1f: 0x4469be20, + 0x6a20: 0x42a47620, 0x6a21: 0x42a48c20, 0x6a22: 0x42a4e420, 0x6a23: 0x42a4ee20, + 0x6a24: 0x446a2a20, 0x6a25: 0x42a58e20, 0x6a26: 0x42a59220, 0x6a27: 0x42a5c820, + 0x6a28: 0x42a5f420, 0x6a29: 0x42a60a20, 0x6a2a: 0x42a60c20, 0x6a2b: 0x42a62e20, + 0x6a2c: 0x42a69220, 0x6a2d: 0x42a6a220, 0x6a2e: 0x42a6b420, 0x6a2f: 0x42a6e620, + 0x6a30: 0x42a6fa20, 0x6a31: 0x42a6fe20, 0x6a32: 0x42a6fe20, 0x6a33: 0x42a6fe20, + 0x6a34: 0x48145820, 0x6a35: 0x42e0e020, 0x6a36: 0x42a79420, 0x6a37: 0x42a7be20, + 0x6a38: 0x4816c620, 0x6a39: 0x42a7d620, 0x6a3a: 0x42a7e220, 0x6a3b: 0x42a80c20, + 0x6a3c: 0x42a93c20, 0x6a3d: 0x42a87020, 0x6a3e: 0x42a89020, 0x6a3f: 0x42a8d020, + // Block 0x1a9, offset 0x6a40 + 0x6a40: 0x42a94420, 0x6a41: 0x42a9ec20, 0x6a42: 0x42aa2020, 0x6a43: 0x42aaa620, + 0x6a44: 0x42aac620, 0x6a45: 0x42ab0820, 0x6a46: 0x42ab0820, 0x6a47: 0x42ab3220, + 0x6a48: 0x42ab5620, 0x6a49: 0x42ab6620, 0x6a4a: 0x42ab8420, 0x6a4b: 0x42ae2c20, + 0x6a4c: 0x42ac0c20, 0x6a4d: 0x42ae2e20, 0x6a4e: 0x42aca220, 0x6a4f: 0x42ace820, + 0x6a50: 0x42a40e20, 0x6a51: 0x42b1dc20, 0x6a52: 0x42af9c20, 0x6a53: 0x42afe820, + 0x6a54: 0x42b01a20, 0x6a55: 0x42af1620, 0x6a56: 0x42b06420, 0x6a57: 0x42b06220, + 0x6a58: 0x42b15820, 0x6a59: 0x4829c820, 0x6a5a: 0x42b1e420, 0x6a5b: 0x42b1ee20, + 0x6a5c: 0x42b20c20, 0x6a5d: 0x42b23420, 0x6a5e: 0x42b24420, 0x6a5f: 0x42b2c420, + 0x6a60: 0x482d5020, 0x6a61: 0x482dd420, 0x6a62: 0x42b3d820, 0x6a63: 0x42b43620, + 0x6a64: 0x42b44e20, 0x6a65: 0x42b3b020, 0x6a66: 0x42b4cc20, 0x6a67: 0x446ddc20, + 0x6a68: 0x446df820, 0x6a69: 0x42b61020, 0x6a6a: 0x42b67c20, 0x6a6b: 0x42b67c20, + 0x6a6c: 0x48339020, 0x6a6d: 0x42b78620, 0x6a6e: 0x42b7b020, 0x6a6f: 0x42b7ce20, + 0x6a70: 0x42b7e620, 0x6a71: 0x48363020, 0x6a72: 0x42b7fe20, 0x6a73: 0x42b80c20, + 0x6a74: 0x42bea620, 0x6a75: 0x42b84420, 0x6a76: 0x446f0220, 0x6a77: 0x42b8c020, + 0x6a78: 0x42b8dc20, 0x6a79: 0x42b98020, 0x6a7a: 0x42b91a20, 0x6a7b: 0x483bc820, + 0x6a7c: 0x42ba8620, 0x6a7d: 0x483bcc20, 0x6a7e: 0x42badc20, 0x6a7f: 0x42bad620, + // Block 0x1aa, offset 0x6a80 + 0x6a80: 0x42baf820, 0x6a81: 0x42bbc220, 0x6a82: 0x42bbc420, 0x6a83: 0x44705e20, + 0x6a84: 0x42bbfa20, 0x6a85: 0x42bc5020, 0x6a86: 0x42bc7a20, 0x6a87: 0x42bcd220, + 0x6a88: 0x4470c420, 0x6a89: 0x48430620, 0x6a8a: 0x4470f820, 0x6a8b: 0x42bd6020, + 0x6a8c: 0x42bd6620, 0x6a8d: 0x42bd6c20, 0x6a8e: 0x42bd9420, 0x6a8f: 0x49472420, + 0x6a90: 0x42bdfc20, 0x6a91: 0x48466220, 0x6a92: 0x48466220, 0x6a93: 0x43040220, + 0x6a94: 0x42be4420, 0x6a95: 0x42be4420, 0x6a96: 0x44718e20, 0x6a97: 0x48657020, + 0x6a98: 0x48c3b420, 0x6a99: 0x42bec420, 0x6a9a: 0x42bed620, 0x6a9b: 0x4471c620, + 0x6a9c: 0x42bf3420, 0x6a9d: 0x42bf9a20, 0x6a9e: 0x42bfae20, 0x6a9f: 0x42bff220, + 0x6aa0: 0x42c10220, 0x6aa1: 0x44727420, 0x6aa2: 0x44723820, 0x6aa3: 0x42c12820, + 0x6aa4: 0x484da820, 0x6aa5: 0x42c18e20, 0x6aa6: 0x42c29020, 0x6aa7: 0x42c29820, + 0x6aa8: 0x42c29c20, 0x6aa9: 0x42c29820, 0x6aaa: 0x42c2f420, 0x6aab: 0x42c31c20, + 0x6aac: 0x42c36420, 0x6aad: 0x42c34820, 0x6aae: 0x42c35e20, 0x6aaf: 0x42c3bc20, + 0x6ab0: 0x42c3e420, 0x6ab1: 0x42c3ec20, 0x6ab2: 0x42c42020, 0x6ab3: 0x42c43620, + 0x6ab4: 0x42c4ba20, 0x6ab5: 0x42c56220, 0x6ab6: 0x42c5a820, 0x6ab7: 0x42c6a020, + 0x6ab8: 0x48561820, 0x6ab9: 0x42c67a20, 0x6aba: 0x42c5f820, 0x6abb: 0x42c6d020, + 0x6abc: 0x42c70620, 0x6abd: 0x42c7c820, 0x6abe: 0x4857e220, 0x6abf: 0x42c84420, + // Block 0x1ab, offset 0x6ac0 + 0x6ac0: 0x42c78a20, 0x6ac1: 0x42c75220, 0x6ac2: 0x44745c20, 0x6ac3: 0x42c8d220, + 0x6ac4: 0x42c8fc20, 0x6ac5: 0x42c93a20, 0x6ac6: 0x42c8ee20, 0x6ac7: 0x4474d820, + 0x6ac8: 0x42ca9e20, 0x6ac9: 0x42cad820, 0x6aca: 0x48601420, 0x6acb: 0x42cbc620, + 0x6acc: 0x42cdf020, 0x6acd: 0x42cc9220, 0x6ace: 0x44763220, 0x6acf: 0x42cd2220, + 0x6ad0: 0x44761020, 0x6ad1: 0x4475c820, 0x6ad2: 0x42a32420, 0x6ad3: 0x42a32a20, + 0x6ad4: 0x42ce0020, 0x6ad5: 0x42cd3820, 0x6ad6: 0x43015a20, 0x6ad7: 0x4487b220, + 0x6ad8: 0x42ce2e20, 0x6ad9: 0x42ce3620, 0x6ada: 0x42ce4220, 0x6adb: 0x42cebc20, + 0x6adc: 0x42cea620, 0x6add: 0x48678620, 0x6ade: 0x44769220, 0x6adf: 0x42cff420, + 0x6ae0: 0x42cf0a20, 0x6ae1: 0x42d0a420, 0x6ae2: 0x42d10a20, 0x6ae3: 0x4868da20, + 0x6ae4: 0x42d11c20, 0x6ae5: 0x42d03e20, 0x6ae6: 0x42d22820, 0x6ae7: 0x44773a20, + 0x6ae8: 0x42d28420, 0x6ae9: 0x42d34620, 0x6aea: 0x42d3d420, 0x6aeb: 0x42d55020, + 0x6aec: 0x486d4620, 0x6aed: 0x42d5b620, 0x6aee: 0x44783020, 0x6aef: 0x42d64220, + 0x6af0: 0x48714e20, 0x6af1: 0x42d6a820, 0x6af2: 0x44789c20, 0x6af3: 0x42d6e420, + 0x6af4: 0x42d73e20, 0x6af5: 0x42d77420, 0x6af6: 0x42d77620, 0x6af7: 0x48751a20, + 0x6af8: 0x483a1620, 0x6af9: 0x4875f420, 0x6afa: 0x42d89c20, 0x6afb: 0x48797820, + 0x6afc: 0x42d97e20, 0x6afd: 0x42d99a20, 0x6afe: 0x42d8ce20, 0x6aff: 0x42da2c20, + // Block 0x1ac, offset 0x6b00 + 0x6b00: 0x42da7c20, 0x6b01: 0x42daee20, 0x6b02: 0x42da8220, 0x6b03: 0x42dad220, + 0x6b04: 0x42daf020, 0x6b05: 0x42db0a20, 0x6b06: 0x487a3c20, 0x6b07: 0x42da6820, + 0x6b08: 0x42dc5e20, 0x6b09: 0x42dcdc20, 0x6b0a: 0x447a6620, 0x6b0b: 0x42dd9620, + 0x6b0c: 0x42dd8e20, 0x6b0d: 0x487da220, 0x6b0e: 0x42dbf220, 0x6b0f: 0x42dedc20, + 0x6b10: 0x487ebc20, 0x6b11: 0x487f1c20, 0x6b12: 0x42df8c20, 0x6b13: 0x42e07220, + 0x6b14: 0x42e03c20, 0x6b15: 0x42e03620, 0x6b16: 0x447b2c20, 0x6b17: 0x42e09420, + 0x6b18: 0x42e0fa20, 0x6b19: 0x42e0ee20, 0x6b1a: 0x42e15a20, 0x6b1b: 0x480a4a20, + 0x6b1c: 0x42e28a20, 0x6b1d: 0x4884c620, 0x6b1e: 0x42e33820, 0x6b1f: 0x48875620, + 0x6b20: 0x42e45020, 0x6b21: 0x42e46a20, 0x6b22: 0x42e4a020, 0x6b23: 0x488c1020, + 0x6b24: 0x42e50020, 0x6b25: 0x42e52a20, 0x6b26: 0x488e6a20, 0x6b27: 0x48902820, + 0x6b28: 0x42e6f420, 0x6b29: 0x42e71620, 0x6b2a: 0x447d5820, 0x6b2b: 0x42e74a20, + 0x6b2c: 0x447d7020, 0x6b2d: 0x447d7020, 0x6b2e: 0x42e88e20, 0x6b2f: 0x42e8b820, + 0x6b30: 0x42e8e220, 0x6b31: 0x42e90a20, 0x6b32: 0x42e99420, 0x6b33: 0x447e3620, + 0x6b34: 0x42ea4820, 0x6b35: 0x48986c20, 0x6b36: 0x42ea7c20, 0x6b37: 0x48992420, + 0x6b38: 0x42eae020, 0x6b39: 0x48433e20, 0x6b3a: 0x42ec2020, 0x6b3b: 0x489f4220, + 0x6b3c: 0x489f7020, 0x6b3d: 0x48a08820, 0x6b3e: 0x447ff820, 0x6b3f: 0x44801020, + // Block 0x1ad, offset 0x6b40 + 0x6b40: 0x42ede820, 0x6b41: 0x48a1e620, 0x6b42: 0x48a1e420, 0x6b43: 0x48a23220, + 0x6b44: 0x48a26620, 0x6b45: 0x42ee3c20, 0x6b46: 0x42ee3e20, 0x6b47: 0x42ee3e20, + 0x6b48: 0x42ee9420, 0x6b49: 0x44807220, 0x6b4a: 0x42ef1620, 0x6b4b: 0x44808c20, + 0x6b4c: 0x44812c20, 0x6b4d: 0x48a83a20, 0x6b4e: 0x42f09c20, 0x6b4f: 0x42f11820, + 0x6b50: 0x42f19820, 0x6b51: 0x4481c620, 0x6b52: 0x48ac4c20, 0x6b53: 0x42f2ac20, + 0x6b54: 0x48ad3420, 0x6b55: 0x48ad8a20, 0x6b56: 0x42f31e20, 0x6b57: 0x42f3d620, + 0x6b58: 0x44825e20, 0x6b59: 0x42f48020, 0x6b5a: 0x42f49420, 0x6b5b: 0x42f49e20, + 0x6b5c: 0x48b2f820, 0x6b5d: 0x48b54e20, 0x6b5e: 0x48b54e20, 0x6b5f: 0x42f5dc20, + 0x6b60: 0x44840420, 0x6b61: 0x48b75620, 0x6b62: 0x42f78c20, 0x6b63: 0x42f79220, + 0x6b64: 0x44844e20, 0x6b65: 0x48b90020, 0x6b66: 0x42f9a420, 0x6b67: 0x44854020, + 0x6b68: 0x42f9d020, 0x6b69: 0x42f9c620, 0x6b6a: 0x42fa0020, 0x6b6b: 0x48bf0c20, + 0x6b6c: 0x42fac620, 0x6b6d: 0x44860220, 0x6b6e: 0x42fb8e20, 0x6b6f: 0x42fc0420, + 0x6b70: 0x42fc8a20, 0x6b71: 0x44866820, 0x6b72: 0x48c45020, 0x6b73: 0x48c48e20, + 0x6b74: 0x4486b220, 0x6b75: 0x48c5b220, 0x6b76: 0x42fef420, 0x6b77: 0x48c67c20, + 0x6b78: 0x42ff2a20, 0x6b79: 0x42fff420, 0x6b7a: 0x43000a20, 0x6b7b: 0x48c9b420, + 0x6b7c: 0x48ca4620, 0x6b7d: 0x4300c020, 0x6b7e: 0x48cb5020, 0x6b7f: 0x4300e020, + // Block 0x1ae, offset 0x6b80 + 0x6b80: 0x4866be20, 0x6b81: 0x4487aa20, 0x6b82: 0x43016420, 0x6b83: 0x43020620, + 0x6b84: 0x44881620, 0x6b85: 0x43027c20, 0x6b86: 0x42b56a20, 0x6b87: 0x48cf4e20, + 0x6b88: 0x48cf6a20, 0x6b89: 0x48672620, 0x6b8a: 0x48673820, 0x6b8b: 0x43040220, + 0x6b8c: 0x43040820, 0x6b8d: 0x431f3c20, 0x6b8e: 0x4488d620, 0x6b8f: 0x43052220, + 0x6b90: 0x43051620, 0x6b91: 0x43053a20, 0x6b92: 0x42a56620, 0x6b93: 0x43056220, + 0x6b94: 0x43056620, 0x6b95: 0x43057a20, 0x6b96: 0x4305cc20, 0x6b97: 0x48d67820, + 0x6b98: 0x4305ca20, 0x6b99: 0x43063a20, 0x6b9a: 0x4306c620, 0x6b9b: 0x43075a20, + 0x6b9c: 0x43064620, 0x6b9d: 0x43077a20, 0x6b9e: 0x4307ce20, 0x6b9f: 0x4308ae20, + 0x6ba0: 0x4306a620, 0x6ba1: 0x43079420, 0x6ba2: 0x43079820, 0x6ba3: 0x4307b820, + 0x6ba4: 0x48d86c20, 0x6ba5: 0x48dad620, 0x6ba6: 0x48d9aa20, 0x6ba7: 0x448a5620, + 0x6ba8: 0x4309e220, 0x6ba9: 0x4309e620, 0x6baa: 0x430a2c20, 0x6bab: 0x48e79420, + 0x6bac: 0x430ac820, 0x6bad: 0x48de5820, 0x6bae: 0x448aba20, 0x6baf: 0x448ac220, + 0x6bb0: 0x48df6220, 0x6bb1: 0x48e1a420, 0x6bb2: 0x448ad620, 0x6bb3: 0x430ca020, + 0x6bb4: 0x430cb820, 0x6bb5: 0x430cce20, 0x6bb6: 0x430cd220, 0x6bb7: 0x430d5220, + 0x6bb8: 0x430d1020, 0x6bb9: 0x430e1c20, 0x6bba: 0x430dc420, 0x6bbb: 0x430ef220, + 0x6bbc: 0x430e5020, 0x6bbd: 0x430ed620, 0x6bbe: 0x430f0c20, 0x6bbf: 0x448bae20, + // Block 0x1af, offset 0x6bc0 + 0x6bc0: 0x430fc220, 0x6bc1: 0x43100220, 0x6bc2: 0x448bf220, 0x6bc3: 0x4310c020, + 0x6bc4: 0x4310c620, 0x6bc5: 0x48ecce20, 0x6bc6: 0x4311ae20, 0x6bc7: 0x4311bc20, + 0x6bc8: 0x448c6a20, 0x6bc9: 0x4311f420, 0x6bca: 0x44697620, 0x6bcb: 0x48f15c20, + 0x6bcc: 0x48f2cc20, 0x6bcd: 0x448d7c20, 0x6bce: 0x448d8e20, 0x6bcf: 0x43154020, + 0x6bd0: 0x4315da20, 0x6bd1: 0x43171420, 0x6bd2: 0x4318aa20, 0x6bd3: 0x48f95020, + 0x6bd4: 0x43195620, 0x6bd5: 0x43198220, 0x6bd6: 0x431a3620, 0x6bd7: 0x431aee20, + 0x6bd8: 0x48fe5e20, 0x6bd9: 0x48100820, 0x6bda: 0x431b9620, 0x6bdb: 0x431b7820, + 0x6bdc: 0x431be020, 0x6bdd: 0x4811bc20, 0x6bde: 0x431da820, 0x6bdf: 0x431e7020, + 0x6be0: 0x490ba420, 0x6be1: 0x490bda20, 0x6be2: 0x43212820, 0x6be3: 0x4321e220, + 0x6be4: 0x43222220, 0x6be5: 0x490e5c20, 0x6be6: 0x43223620, 0x6be7: 0x43247020, + 0x6be8: 0x4325ae20, 0x6be9: 0x4325b020, 0x6bea: 0x4324f820, 0x6beb: 0x4327f220, + 0x6bec: 0x43282a20, 0x6bed: 0x4917f420, 0x6bee: 0x432b1620, 0x6bef: 0x44932a20, + 0x6bf0: 0x432b6e20, 0x6bf1: 0x491aee20, 0x6bf2: 0x4493cc20, 0x6bf3: 0x432d8620, + 0x6bf4: 0x42bb6420, 0x6bf5: 0x432e4620, 0x6bf6: 0x49228a20, 0x6bf7: 0x49243420, + 0x6bf8: 0x4494dc20, 0x6bf9: 0x4494ec20, 0x6bfa: 0x432fc020, 0x6bfb: 0x49281420, + 0x6bfc: 0x44956420, 0x6bfd: 0x49292c20, 0x6bfe: 0x43301620, 0x6bff: 0x43301620, + // Block 0x1b0, offset 0x6c00 + 0x6c00: 0x43305220, 0x6c01: 0x492b6c20, 0x6c02: 0x4331c420, 0x6c03: 0x44966620, + 0x6c04: 0x43325220, 0x6c05: 0x43334e20, 0x6c06: 0x43338420, 0x6c07: 0x4333fc20, + 0x6c08: 0x44979c20, 0x6c09: 0x49366020, 0x6c0a: 0x43362420, 0x6c0b: 0x43388020, + 0x6c0c: 0x4339fa20, 0x6c0d: 0x44999c20, 0x6c0e: 0x4499da20, 0x6c0f: 0x433ace20, + 0x6c10: 0x49419c20, 0x6c11: 0x4499f020, 0x6c12: 0x49420a20, 0x6c13: 0x49441c20, + 0x6c14: 0x49452220, 0x6c15: 0x433d7620, 0x6c16: 0x449aac20, 0x6c17: 0x433df220, + 0x6c18: 0x433dfc20, 0x6c19: 0x433e0a20, 0x6c1a: 0x433e1e20, 0x6c1b: 0x433e2c20, + 0x6c1c: 0x433e7620, 0x6c1d: 0x494c0020, + // Block 0x1b1, offset 0x6c40 + 0x6c41: 0xa0000000, + 0x6c60: 0xa0000000, 0x6c61: 0xa0000000, 0x6c62: 0xa0000000, 0x6c63: 0xa0000000, + 0x6c64: 0xa0000000, 0x6c65: 0xa0000000, 0x6c66: 0xa0000000, 0x6c67: 0xa0000000, + 0x6c68: 0xa0000000, 0x6c69: 0xa0000000, 0x6c6a: 0xa0000000, 0x6c6b: 0xa0000000, + 0x6c6c: 0xa0000000, 0x6c6d: 0xa0000000, 0x6c6e: 0xa0000000, 0x6c6f: 0xa0000000, + 0x6c70: 0xa0000000, 0x6c71: 0xa0000000, 0x6c72: 0xa0000000, 0x6c73: 0xa0000000, + 0x6c74: 0xa0000000, 0x6c75: 0xa0000000, 0x6c76: 0xa0000000, 0x6c77: 0xa0000000, + 0x6c78: 0xa0000000, 0x6c79: 0xa0000000, 0x6c7a: 0xa0000000, 0x6c7b: 0xa0000000, + 0x6c7c: 0xa0000000, 0x6c7d: 0xa0000000, 0x6c7e: 0xa0000000, 0x6c7f: 0xa0000000, + // Block 0x1b2, offset 0x6c80 + 0x6c80: 0xa0000000, 0x6c81: 0xa0000000, 0x6c82: 0xa0000000, 0x6c83: 0xa0000000, + 0x6c84: 0xa0000000, 0x6c85: 0xa0000000, 0x6c86: 0xa0000000, 0x6c87: 0xa0000000, + 0x6c88: 0xa0000000, 0x6c89: 0xa0000000, 0x6c8a: 0xa0000000, 0x6c8b: 0xa0000000, + 0x6c8c: 0xa0000000, 0x6c8d: 0xa0000000, 0x6c8e: 0xa0000000, 0x6c8f: 0xa0000000, + 0x6c90: 0xa0000000, 0x6c91: 0xa0000000, 0x6c92: 0xa0000000, 0x6c93: 0xa0000000, + 0x6c94: 0xa0000000, 0x6c95: 0xa0000000, 0x6c96: 0xa0000000, 0x6c97: 0xa0000000, + 0x6c98: 0xa0000000, 0x6c99: 0xa0000000, 0x6c9a: 0xa0000000, 0x6c9b: 0xa0000000, + 0x6c9c: 0xa0000000, 0x6c9d: 0xa0000000, 0x6c9e: 0xa0000000, 0x6c9f: 0xa0000000, + 0x6ca0: 0xa0000000, 0x6ca1: 0xa0000000, 0x6ca2: 0xa0000000, 0x6ca3: 0xa0000000, + 0x6ca4: 0xa0000000, 0x6ca5: 0xa0000000, 0x6ca6: 0xa0000000, 0x6ca7: 0xa0000000, + 0x6ca8: 0xa0000000, 0x6ca9: 0xa0000000, 0x6caa: 0xa0000000, 0x6cab: 0xa0000000, + 0x6cac: 0xa0000000, 0x6cad: 0xa0000000, 0x6cae: 0xa0000000, 0x6caf: 0xa0000000, + 0x6cb0: 0xa0000000, 0x6cb1: 0xa0000000, 0x6cb2: 0xa0000000, 0x6cb3: 0xa0000000, + 0x6cb4: 0xa0000000, 0x6cb5: 0xa0000000, 0x6cb6: 0xa0000000, 0x6cb7: 0xa0000000, + 0x6cb8: 0xa0000000, 0x6cb9: 0xa0000000, 0x6cba: 0xa0000000, 0x6cbb: 0xa0000000, + 0x6cbc: 0xa0000000, 0x6cbd: 0xa0000000, 0x6cbe: 0xa0000000, 0x6cbf: 0xa0000000, + // Block 0x1b3, offset 0x6cc0 + 0x6cc0: 0xa0000000, 0x6cc1: 0xa0000000, 0x6cc2: 0xa0000000, 0x6cc3: 0xa0000000, + 0x6cc4: 0xa0000000, 0x6cc5: 0xa0000000, 0x6cc6: 0xa0000000, 0x6cc7: 0xa0000000, + 0x6cc8: 0xa0000000, 0x6cc9: 0xa0000000, 0x6cca: 0xa0000000, 0x6ccb: 0xa0000000, + 0x6ccc: 0xa0000000, 0x6ccd: 0xa0000000, 0x6cce: 0xa0000000, 0x6ccf: 0xa0000000, + 0x6cd0: 0xa0000000, 0x6cd1: 0xa0000000, 0x6cd2: 0xa0000000, 0x6cd3: 0xa0000000, + 0x6cd4: 0xa0000000, 0x6cd5: 0xa0000000, 0x6cd6: 0xa0000000, 0x6cd7: 0xa0000000, + 0x6cd8: 0xa0000000, 0x6cd9: 0xa0000000, 0x6cda: 0xa0000000, 0x6cdb: 0xa0000000, + 0x6cdc: 0xa0000000, 0x6cdd: 0xa0000000, 0x6cde: 0xa0000000, 0x6cdf: 0xa0000000, + 0x6ce0: 0xa0000000, 0x6ce1: 0xa0000000, 0x6ce2: 0xa0000000, 0x6ce3: 0xa0000000, + 0x6ce4: 0xa0000000, 0x6ce5: 0xa0000000, 0x6ce6: 0xa0000000, 0x6ce7: 0xa0000000, + 0x6ce8: 0xa0000000, 0x6ce9: 0xa0000000, 0x6cea: 0xa0000000, 0x6ceb: 0xa0000000, + 0x6cec: 0xa0000000, 0x6ced: 0xa0000000, 0x6cee: 0xa0000000, 0x6cef: 0xa0000000, + // Block 0x1b4, offset 0x6d00 + 0x6d00: 0xa0000000, 0x6d01: 0xa0000000, 0x6d02: 0xa0000000, 0x6d03: 0xa0000000, + 0x6d04: 0xa0000000, 0x6d05: 0xa0000000, 0x6d06: 0xa0000000, 0x6d07: 0xa0000000, + 0x6d08: 0xa0000000, 0x6d09: 0x40020020, 0x6d0a: 0x40020220, 0x6d0b: 0x40020420, + 0x6d0c: 0x40020620, 0x6d0d: 0x40020820, 0x6d0e: 0xa0000000, 0x6d0f: 0xa0000000, + 0x6d10: 0xa0000000, 0x6d11: 0xa0000000, 0x6d12: 0xa0000000, 0x6d13: 0xa0000000, + 0x6d14: 0xa0000000, 0x6d15: 0xa0000000, 0x6d16: 0xa0000000, 0x6d17: 0xa0000000, + 0x6d18: 0xa0000000, 0x6d19: 0xa0000000, 0x6d1a: 0xa0000000, 0x6d1b: 0xa0000000, + 0x6d1c: 0xa0000000, 0x6d1d: 0xa0000000, 0x6d1e: 0xa0000000, 0x6d1f: 0xa0000000, + 0x6d20: 0x40021220, 0x6d21: 0x4002ba20, 0x6d22: 0x4003e020, 0x6d23: 0x4004ea20, + 0x6d24: 0x4027de20, 0x6d25: 0x4004ec20, 0x6d26: 0x4004e620, 0x6d27: 0x4003d220, + 0x6d28: 0x4003f420, 0x6d29: 0x4003f620, 0x6d2a: 0x4004d820, 0x6d2b: 0x40093820, + 0x6d2c: 0x40024020, 0x6d2d: 0x40021a20, 0x6d2e: 0x4002e420, 0x6d2f: 0x4004e220, + 0x6d30: 0x4029cc20, 0x6d31: 0x4029ce20, 0x6d32: 0x4029d020, 0x6d33: 0x4029d220, + 0x6d34: 0x4029d420, 0x6d35: 0x4029d620, 0x6d36: 0x4029d820, 0x6d37: 0x4029da20, + 0x6d38: 0x4029dc20, 0x6d39: 0x4029de20, 0x6d3a: 0x40026c20, 0x6d3b: 0x40026220, + 0x6d3c: 0x40094020, 0x6d3d: 0x40094220, 0x6d3e: 0x40094420, 0x6d3f: 0x4002c420, + // Block 0x1b5, offset 0x6d40 + 0x6d40: 0x4004d620, 0x6d41: 0x002bde88, 0x6d42: 0x002c0a88, 0x6d43: 0x002c3a88, + 0x6d44: 0x002c6288, 0x6d45: 0x002c1083, 0x6d46: 0x002d0888, 0x6d47: 0x002d2288, + 0x6d48: 0x0030e483, 0x6d49: 0x002c4083, 0x6d4a: 0x002dcc88, 0x6d4b: 0x002c3c83, + 0x6d4c: 0xc0030002, 0x6d4d: 0x002e8288, 0x6d4e: 0x002e9e88, 0x6d4f: 0x002d2483, + 0x6d50: 0x002f2c88, 0x6d51: 0x002c6483, 0x6d52: 0x002c6683, 0x6d53: 0x002c0e83, + 0x6d54: 0x002c0c83, 0x6d55: 0x00306c88, 0x6d56: 0x0030be88, 0x6d57: 0x0030e288, + 0x6d58: 0x002c3e83, 0x6d59: 0x00310088, 0x6d5a: 0x00312a88, 0x6d5b: 0x4003f820, + 0x6d5c: 0x4004e420, 0x6d5d: 0x4003fa20, 0x6d5e: 0x40062420, 0x6d5f: 0x40021620, + 0x6d60: 0x40061e20, 0x6d61: 0x402bde20, 0x6d62: 0x402c0a20, 0x6d63: 0x402c3a20, + 0x6d64: 0x402c6220, 0x6d65: 0x402c1020, 0x6d66: 0x402d0820, 0x6d67: 0x402d2220, + 0x6d68: 0x4030e420, 0x6d69: 0x402c4020, 0x6d6a: 0x402dcc20, 0x6d6b: 0x402c3c20, + 0x6d6c: 0xc0000002, 0x6d6d: 0x402e8220, 0x6d6e: 0x402e9e20, 0x6d6f: 0x402d2420, + 0x6d70: 0x402f2c20, 0x6d71: 0x402c6420, 0x6d72: 0x402c6620, 0x6d73: 0x402c0e20, + 0x6d74: 0x402c0c20, 0x6d75: 0x40306c20, 0x6d76: 0x4030be20, 0x6d77: 0x4030e220, + 0x6d78: 0x402c3e20, 0x6d79: 0x40310020, 0x6d7a: 0x40312a20, 0x6d7b: 0x4003fc20, + 0x6d7c: 0x40094820, 0x6d7d: 0x4003fe20, 0x6d7e: 0x40094c20, 0x6d7f: 0xa0000000, + // Block 0x1b6, offset 0x6d80 + 0x6d80: 0xe00008f5, 0x6d81: 0xe00008ef, 0x6d82: 0xe0000921, 0x6d83: 0xe0000969, + 0x6d84: 0xe000095b, 0x6d85: 0xe000094d, 0x6d86: 0xe00009dd, 0x6d87: 0xe0000a53, + 0x6d88: 0xe000256e, 0x6d89: 0xe0002568, 0x6d8a: 0xe000257a, 0x6d8b: 0xe00025a6, + 0x6d8c: 0xe000263e, 0x6d8d: 0xe0002638, 0x6d8e: 0xe000264a, 0x6d8f: 0xe0002656, + 0x6d90: 0xe0000ab3, 0x6d91: 0xe0000d63, 0x6d92: 0xe00026db, 0x6d93: 0xe00026d5, + 0x6d94: 0xe00026e7, 0x6d95: 0xe0002727, 0x6d96: 0xe0002713, 0x6d97: 0x40093e20, + 0x6d98: 0xe0000e12, 0x6d99: 0xe0000fe1, 0x6d9a: 0xe0000fdb, 0x6d9b: 0xe0000fed, + 0x6d9c: 0xe0000fff, 0x6d9d: 0xe0001102, 0x6d9e: 0x00318888, 0x6d9f: 0xe0000f7b, + 0x6da0: 0xe00008f2, 0x6da1: 0xe00008ec, 0x6da2: 0xe000091e, 0x6da3: 0xe0000966, + 0x6da4: 0xe0000958, 0x6da5: 0xe000094a, 0x6da6: 0xe00009d5, 0x6da7: 0xe0000a4d, + 0x6da8: 0xe000256b, 0x6da9: 0xe0002565, 0x6daa: 0xe0002577, 0x6dab: 0xe00025a3, + 0x6dac: 0xe000263b, 0x6dad: 0xe0002635, 0x6dae: 0xe0002647, 0x6daf: 0xe0002653, + 0x6db0: 0xe0000aad, 0x6db1: 0xe0000d60, 0x6db2: 0xe00026d8, 0x6db3: 0xe00026d2, + 0x6db4: 0xe00026e4, 0x6db5: 0xe0002724, 0x6db6: 0xe0002710, 0x6db7: 0x40093c20, + 0x6db8: 0xe0000e0f, 0x6db9: 0xe0000fde, 0x6dba: 0xe0000fd8, 0x6dbb: 0xe0000fea, + 0x6dbc: 0xe0000ffc, 0x6dbd: 0xe00010ff, 0x6dbe: 0x40318820, 0x6dbf: 0xe0001114, + // Block 0x1b7, offset 0x6dc0 + 0x6dc0: 0xe0000983, 0x6dc1: 0xe0000980, 0x6dc2: 0xe00008fb, 0x6dc3: 0xe00008f8, + 0x6dc4: 0xe000097d, 0x6dc5: 0xe000097a, 0x6dc6: 0xe0000a38, 0x6dc7: 0xe0000a35, + 0x6dc8: 0xe0000a3e, 0x6dc9: 0xe0000a3b, 0x6dca: 0xe0000a4a, 0x6dcb: 0xe0000a47, + 0x6dcc: 0xe0000a44, 0x6dcd: 0xe0000a41, 0x6dce: 0xe0000a86, 0x6dcf: 0xe0000a83, + 0x6dd0: 0xe0000aaa, 0x6dd1: 0xe0000aa7, 0x6dd2: 0xe00025cc, 0x6dd3: 0xe00025c9, + 0x6dd4: 0xe0002574, 0x6dd5: 0xe0002571, 0x6dd6: 0xe00025b2, 0x6dd7: 0xe00025af, + 0x6dd8: 0xe00025c6, 0x6dd9: 0xe00025c3, 0x6dda: 0xe00025a0, 0x6ddb: 0xe000259d, + 0x6ddc: 0xe0000bb8, 0x6ddd: 0xe0000bb5, 0x6dde: 0xe0000bb2, 0x6ddf: 0xe0000baf, + 0x6de0: 0xe0000bc4, 0x6de1: 0xe0000bc1, 0x6de2: 0xe0000bca, 0x6de3: 0xe0000bc7, + 0x6de4: 0xe0002856, 0x6de5: 0xe0002853, 0x6de6: 0xe0000c1b, 0x6de7: 0xe0000c18, + 0x6de8: 0xe0002664, 0x6de9: 0xe0002661, 0x6dea: 0xe0002673, 0x6deb: 0xe0002670, + 0x6dec: 0xe0002644, 0x6ded: 0xe0002641, 0x6dee: 0xe000266d, 0x6def: 0xe000266a, + 0x6df0: 0xe0002667, 0x6df1: 0x402da220, 0x6df2: 0xe00027e2, 0x6df3: 0xe00027df, + 0x6df4: 0xe0000c8a, 0x6df5: 0xe0000c87, 0x6df6: 0xe000261a, 0x6df7: 0xe0002617, + 0x6df8: 0x402f7220, 0x6df9: 0xe0000ccc, 0x6dfa: 0xe0000cc9, 0x6dfb: 0xe0000cd8, + 0x6dfc: 0xe0000cd5, 0x6dfd: 0xe0000cd2, 0x6dfe: 0xe0000ccf, 0x6dff: 0xe0000d04, + // Block 0x1b8, offset 0x6e00 + 0x6e00: 0xe0000cfe, 0x6e01: 0xe0000cf8, 0x6e02: 0xe0000cf5, 0x6e03: 0xe0000d51, + 0x6e04: 0xe0000d4e, 0x6e05: 0xe0000d6f, 0x6e06: 0xe0000d6c, 0x6e07: 0xe0000d5d, + 0x6e08: 0xe0000d5a, 0x6e09: 0xf0000404, 0x6e0a: 0x002eda88, 0x6e0b: 0x402eda20, + 0x6e0c: 0xe0002761, 0x6e0d: 0xe000275e, 0x6e0e: 0xe00026e1, 0x6e0f: 0xe00026de, + 0x6e10: 0xe0002721, 0x6e11: 0xe000271e, 0x6e12: 0xe0000e93, 0x6e13: 0xe0000e8f, + 0x6e14: 0xe0002697, 0x6e15: 0xe0002694, 0x6e16: 0xe00026a9, 0x6e17: 0xe00026a6, + 0x6e18: 0xe000269d, 0x6e19: 0xe000269a, 0x6e1a: 0xe0002526, 0x6e1b: 0xe0002523, + 0x6e1c: 0xe0002534, 0x6e1d: 0xe0002531, 0x6e1e: 0xe000254e, 0x6e1f: 0xe000254b, + 0x6e20: 0xe000253a, 0x6e21: 0xe0002537, 0x6e22: 0xe0002508, 0x6e23: 0xe0002505, + 0x6e24: 0xe00024f9, 0x6e25: 0xe00024f6, 0x6e26: 0x00303688, 0x6e27: 0x40303620, + 0x6e28: 0xe000102b, 0x6e29: 0xe0001028, 0x6e2a: 0xe000103f, 0x6e2b: 0xe000103c, + 0x6e2c: 0xe0000fe7, 0x6e2d: 0xe0000fe4, 0x6e2e: 0xe0000ff9, 0x6e2f: 0xe0000ff6, + 0x6e30: 0xe0001025, 0x6e31: 0xe0001022, 0x6e32: 0xe0001039, 0x6e33: 0xe0001036, + 0x6e34: 0xe00010d8, 0x6e35: 0xe00010d5, 0x6e36: 0xe000110e, 0x6e37: 0xe000110b, + 0x6e38: 0xe0001117, 0x6e39: 0xe000113b, 0x6e3a: 0xe0001138, 0x6e3b: 0xe000114d, + 0x6e3c: 0xe000114a, 0x6e3d: 0xe0001147, 0x6e3e: 0xe0001144, 0x6e3f: 0xe0000f64, + // Block 0x1b9, offset 0x6e40 + 0x6e40: 0x402c1a20, 0x6e41: 0x002c2a88, 0x6e42: 0x002c3288, 0x6e43: 0x402c3220, + 0x6e44: 0x0031c488, 0x6e45: 0x4031c420, 0x6e46: 0x002efa88, 0x6e47: 0x002c4e88, + 0x6e48: 0x402c4e20, 0x6e49: 0x002c7288, 0x6e4a: 0x002c7a88, 0x6e4b: 0x002c8488, + 0x6e4c: 0x402c8420, 0x6e4d: 0xe000115c, 0x6e4e: 0x002cae88, 0x6e4f: 0x002cb888, + 0x6e50: 0x002cc288, 0x6e51: 0x002d1688, 0x6e52: 0x402d1620, 0x6e53: 0x002d4488, + 0x6e54: 0x002d5888, 0x6e55: 0x402d7820, 0x6e56: 0x002dc288, 0x6e57: 0x002db688, + 0x6e58: 0x002e0a88, 0x6e59: 0x402e0a20, 0x6e5a: 0x402e3820, 0x6e5b: 0x402e7220, + 0x6e5c: 0x0030a088, 0x6e5d: 0x002eb488, 0x6e5e: 0x402ebc20, 0x6e5f: 0x002f1088, + 0x6e60: 0xe0002789, 0x6e61: 0xe0002786, 0x6e62: 0x002d6088, 0x6e63: 0x402d6020, + 0x6e64: 0x002f3e88, 0x6e65: 0x402f3e20, 0x6e66: 0x002f8288, 0x6e67: 0x0031b488, + 0x6e68: 0x4031b420, 0x6e69: 0x00300888, 0x6e6a: 0x40301220, 0x6e6b: 0x40304220, + 0x6e6c: 0x00304a88, 0x6e6d: 0x40304a20, 0x6e6e: 0x00305288, 0x6e6f: 0xe000105f, + 0x6e70: 0xe000105c, 0x6e71: 0x0030b488, 0x6e72: 0x0030cc88, 0x6e73: 0x00311888, + 0x6e74: 0x40311820, 0x6e75: 0x00313488, 0x6e76: 0x40313420, 0x6e77: 0x00316488, + 0x6e78: 0x00316e88, 0x6e79: 0x40316e20, 0x6e7a: 0x40317820, 0x6e7b: 0x4031a620, + 0x6e7c: 0x0031bc88, 0x6e7d: 0x4031bc20, 0x6e7e: 0xe0000fc9, 0x6e7f: 0x40319420, + // Block 0x1ba, offset 0x6e80 + 0x6e80: 0x40321220, 0x6e81: 0x40321a20, 0x6e82: 0x40322220, 0x6e83: 0x40322a20, + 0x6e84: 0xe0000ad5, 0x6e85: 0xe0000ad1, 0x6e86: 0xe0000acd, 0x6e87: 0xf0000a0a, + 0x6e88: 0xf000040a, 0x6e89: 0xf0000404, 0x6e8a: 0xf0000a0a, 0x6e8b: 0xf000040a, + 0x6e8c: 0xf0000404, 0x6e8d: 0xe0000947, 0x6e8e: 0xe0000944, 0x6e8f: 0xe0002650, + 0x6e90: 0xe000264d, 0x6e91: 0xe000270d, 0x6e92: 0xe000270a, 0x6e93: 0xe0000ff3, + 0x6e94: 0xe0000ff0, 0x6e95: 0xe000101e, 0x6e96: 0xe000101a, 0x6e97: 0xe0001006, + 0x6e98: 0xe0001002, 0x6e99: 0xe0001016, 0x6e9a: 0xe0001012, 0x6e9b: 0xe000100e, + 0x6e9c: 0xe000100a, 0x6e9d: 0x402cae20, 0x6e9e: 0xe0000962, 0x6e9f: 0xe000095e, + 0x6ea0: 0xe0000976, 0x6ea1: 0xe0000972, 0x6ea2: 0xe00009f4, 0x6ea3: 0xe00009ef, + 0x6ea4: 0x002d3a88, 0x6ea5: 0x402d3a20, 0x6ea6: 0xe0000bbe, 0x6ea7: 0xe0000bbb, + 0x6ea8: 0xe0002614, 0x6ea9: 0xe0002611, 0x6eaa: 0xe0002753, 0x6eab: 0xe0002750, + 0x6eac: 0xe000275a, 0x6ead: 0xe0002756, 0x6eae: 0xe0001162, 0x6eaf: 0xe000115f, + 0x6eb0: 0xe0000c8d, 0x6eb1: 0xf0000a0a, 0x6eb2: 0xf000040a, 0x6eb3: 0xf0000404, + 0x6eb4: 0xe0000bac, 0x6eb5: 0xe0000ba9, 0x6eb6: 0x002d7888, 0x6eb7: 0x00319488, + 0x6eb8: 0xe0000d57, 0x6eb9: 0xe0000d54, 0x6eba: 0xe0000954, 0x6ebb: 0xe0000950, + 0x6ebc: 0xe00009ea, 0x6ebd: 0xe00009e5, 0x6ebe: 0xe0000e19, 0x6ebf: 0xe0000e15, + // Block 0x1bb, offset 0x6ec0 + 0x6ec0: 0xe000098f, 0x6ec1: 0xe000098c, 0x6ec2: 0xe0000995, 0x6ec3: 0xe0000992, + 0x6ec4: 0xe00025e8, 0x6ec5: 0xe00025e5, 0x6ec6: 0xe00025ee, 0x6ec7: 0xe00025eb, + 0x6ec8: 0xe000267f, 0x6ec9: 0xe000267c, 0x6eca: 0xe0002685, 0x6ecb: 0xe0002682, + 0x6ecc: 0xe000277d, 0x6ecd: 0xe000277a, 0x6ece: 0xe0002783, 0x6ecf: 0xe0002780, + 0x6ed0: 0xe00026af, 0x6ed1: 0xe00026ac, 0x6ed2: 0xe00026b5, 0x6ed3: 0xe00026b2, + 0x6ed4: 0xe0001053, 0x6ed5: 0xe0001050, 0x6ed6: 0xe0001059, 0x6ed7: 0xe0001056, + 0x6ed8: 0xe0002562, 0x6ed9: 0xe000255f, 0x6eda: 0xe0002514, 0x6edb: 0xe0002511, + 0x6edc: 0x00312288, 0x6edd: 0x40312220, 0x6ede: 0xe000285c, 0x6edf: 0xe0002859, + 0x6ee0: 0x002ebc88, 0x6ee1: 0x402c8c20, 0x6ee2: 0x002f2288, 0x6ee3: 0x402f2220, + 0x6ee4: 0x00314088, 0x6ee5: 0x40314020, 0x6ee6: 0xe000096f, 0x6ee7: 0xe000096c, + 0x6ee8: 0xe00025b8, 0x6ee9: 0xe00025b5, 0x6eea: 0xe000271a, 0x6eeb: 0xe0002716, + 0x6eec: 0xe000273e, 0x6eed: 0xe000273a, 0x6eee: 0xe0002745, 0x6eef: 0xe0002742, + 0x6ef0: 0xe000274c, 0x6ef1: 0xe0002748, 0x6ef2: 0xe0001129, 0x6ef3: 0xe0001126, + 0x6ef4: 0x402e5e20, 0x6ef5: 0x402ed020, 0x6ef6: 0x40305a20, 0x6ef7: 0x402dd420, + 0x6ef8: 0xe0000abf, 0x6ef9: 0xe0000ec4, 0x6efa: 0x002be888, 0x6efb: 0x002c4488, + 0x6efc: 0x402c4420, 0x6efd: 0x002e3888, 0x6efe: 0x00303e88, 0x6eff: 0x402ffc20, + // Block 0x1bc, offset 0x6f00 + 0x6f00: 0xe00009b1, 0x6f01: 0xe00009ae, 0x6f02: 0xe0000a22, 0x6f03: 0xe0000a1f, + 0x6f04: 0xe0000a28, 0x6f05: 0xe0000a25, 0x6f06: 0xe0000a2e, 0x6f07: 0xe0000a2b, + 0x6f08: 0xe0000a5a, 0x6f09: 0xe0000a56, 0x6f0a: 0xe0000a8c, 0x6f0b: 0xe0000a89, + 0x6f0c: 0xe0000a98, 0x6f0d: 0xe0000a95, 0x6f0e: 0xe0000aa4, 0x6f0f: 0xe0000aa1, + 0x6f10: 0xe0000a92, 0x6f11: 0xe0000a8f, 0x6f12: 0xe0000a9e, 0x6f13: 0xe0000a9b, + 0x6f14: 0xe00025db, 0x6f15: 0xe00025d7, 0x6f16: 0xe00025d3, 0x6f17: 0xe00025cf, + 0x6f18: 0xe0002602, 0x6f19: 0xe00025ff, 0x6f1a: 0xe0002608, 0x6f1b: 0xe0002605, + 0x6f1c: 0xe00025bf, 0x6f1d: 0xe00025bb, 0x6f1e: 0xe0000b8c, 0x6f1f: 0xe0000b89, + 0x6f20: 0xe0000bd0, 0x6f21: 0xe0000bcd, 0x6f22: 0xe0002868, 0x6f23: 0xe0002865, + 0x6f24: 0xe0002874, 0x6f25: 0xe0002871, 0x6f26: 0xe0002862, 0x6f27: 0xe000285f, + 0x6f28: 0xe000286e, 0x6f29: 0xe000286b, 0x6f2a: 0xe000287a, 0x6f2b: 0xe0002877, + 0x6f2c: 0xe0002691, 0x6f2d: 0xe000268e, 0x6f2e: 0xe000265d, 0x6f2f: 0xe0002659, + 0x6f30: 0xe000260e, 0x6f31: 0xe000260b, 0x6f32: 0xe0002620, 0x6f33: 0xe000261d, + 0x6f34: 0xe0002626, 0x6f35: 0xe0002623, 0x6f36: 0xe0000cde, 0x6f37: 0xe0000cdb, + 0x6f38: 0xe0000ce5, 0x6f39: 0xe0000ce1, 0x6f3a: 0xe0000cf2, 0x6f3b: 0xe0000cef, + 0x6f3c: 0xe0000cec, 0x6f3d: 0xe0000ce9, 0x6f3e: 0xe0000d1e, 0x6f3f: 0xe0000d1b, + // Block 0x1bd, offset 0x6f40 + 0x6f40: 0xe0000d24, 0x6f41: 0xe0000d21, 0x6f42: 0xe0000d2a, 0x6f43: 0xe0000d27, + 0x6f44: 0xe0000d69, 0x6f45: 0xe0000d66, 0x6f46: 0xe0000d7b, 0x6f47: 0xe0000d78, + 0x6f48: 0xe0000d87, 0x6f49: 0xe0000d84, 0x6f4a: 0xe0000d81, 0x6f4b: 0xe0000d7e, + 0x6f4c: 0xe000272e, 0x6f4d: 0xe000272a, 0x6f4e: 0xe0002736, 0x6f4f: 0xe0002732, + 0x6f50: 0xe0002770, 0x6f51: 0xe000276c, 0x6f52: 0xe0002768, 0x6f53: 0xe0002764, + 0x6f54: 0xe0000ea7, 0x6f55: 0xe0000ea4, 0x6f56: 0xe0000ead, 0x6f57: 0xe0000eaa, + 0x6f58: 0xe00026a3, 0x6f59: 0xe00026a0, 0x6f5a: 0xe00026bb, 0x6f5b: 0xe00026b8, + 0x6f5c: 0xe00026c2, 0x6f5d: 0xe00026be, 0x6f5e: 0xe00026c9, 0x6f5f: 0xe00026c6, + 0x6f60: 0xe0002548, 0x6f61: 0xe0002545, 0x6f62: 0xe0002554, 0x6f63: 0xe0002551, + 0x6f64: 0xe000252d, 0x6f65: 0xe0002529, 0x6f66: 0xe0002541, 0x6f67: 0xe000253d, + 0x6f68: 0xe000255b, 0x6f69: 0xe0002557, 0x6f6a: 0xe0002502, 0x6f6b: 0xe00024ff, + 0x6f6c: 0xe000250e, 0x6f6d: 0xe000250b, 0x6f6e: 0xe0002520, 0x6f6f: 0xe000251d, + 0x6f70: 0xe000251a, 0x6f71: 0xe0002517, 0x6f72: 0xe0001093, 0x6f73: 0xe0001090, + 0x6f74: 0xe000109f, 0x6f75: 0xe000109c, 0x6f76: 0xe0001099, 0x6f77: 0xe0001096, + 0x6f78: 0xe0001032, 0x6f79: 0xe000102e, 0x6f7a: 0xe0001046, 0x6f7b: 0xe0001042, + 0x6f7c: 0xe00010a9, 0x6f7d: 0xe00010a6, 0x6f7e: 0xe00010af, 0x6f7f: 0xe00010ac, + // Block 0x1be, offset 0x6f80 + 0x6f80: 0xe00010d2, 0x6f81: 0xe00010cf, 0x6f82: 0xe00010cc, 0x6f83: 0xe00010c9, + 0x6f84: 0xe00010e1, 0x6f85: 0xe00010de, 0x6f86: 0xe00010e7, 0x6f87: 0xe00010e4, + 0x6f88: 0xe00010ed, 0x6f89: 0xe00010ea, 0x6f8a: 0xe0002632, 0x6f8b: 0xe000262f, + 0x6f8c: 0xe000262c, 0x6f8d: 0xe0002629, 0x6f8e: 0xe0001123, 0x6f8f: 0xe0001120, + 0x6f90: 0xe0001141, 0x6f91: 0xe000113e, 0x6f92: 0xe0001153, 0x6f93: 0xe0001150, + 0x6f94: 0xe0001159, 0x6f95: 0xe0001156, 0x6f96: 0xe000287d, 0x6f97: 0xe00024fc, + 0x6f98: 0xe00010db, 0x6f99: 0xe0001111, 0x6f9a: 0xf0000404, 0x6f9b: 0xe0000f70, + 0x6f9c: 0x40300420, 0x6f9d: 0x40300620, 0x6f9e: 0xe0000f7f, 0x6f9f: 0x402c9620, + 0x6fa0: 0xe000099b, 0x6fa1: 0xe0000998, 0x6fa2: 0xe0000989, 0x6fa3: 0xe0000986, + 0x6fa4: 0xe0000928, 0x6fa5: 0xe0000924, 0x6fa6: 0xe0000930, 0x6fa7: 0xe000092c, + 0x6fa8: 0xe0000940, 0x6fa9: 0xe000093c, 0x6faa: 0xe0000938, 0x6fab: 0xe0000934, + 0x6fac: 0xe00009aa, 0x6fad: 0xe00009a6, 0x6fae: 0xe0000902, 0x6faf: 0xe00008fe, + 0x6fb0: 0xe000090a, 0x6fb1: 0xe0000906, 0x6fb2: 0xe000091a, 0x6fb3: 0xe0000916, + 0x6fb4: 0xe0000912, 0x6fb5: 0xe000090e, 0x6fb6: 0xe00009a2, 0x6fb7: 0xe000099e, + 0x6fb8: 0xe00025f4, 0x6fb9: 0xe00025f1, 0x6fba: 0xe00025e2, 0x6fbb: 0xe00025df, + 0x6fbc: 0xe00025ac, 0x6fbd: 0xe00025a9, 0x6fbe: 0xe0002581, 0x6fbf: 0xe000257d, + // Block 0x1bf, offset 0x6fc0 + 0x6fc0: 0xe0002589, 0x6fc1: 0xe0002585, 0x6fc2: 0xe0002599, 0x6fc3: 0xe0002595, + 0x6fc4: 0xe0002591, 0x6fc5: 0xe000258d, 0x6fc6: 0xe00025fb, 0x6fc7: 0xe00025f7, + 0x6fc8: 0xe0002679, 0x6fc9: 0xe0002676, 0x6fca: 0xe000268b, 0x6fcb: 0xe0002688, + 0x6fcc: 0xe00027b7, 0x6fcd: 0xe00027b4, 0x6fce: 0xe0002777, 0x6fcf: 0xe0002774, + 0x6fd0: 0xe00026ee, 0x6fd1: 0xe00026ea, 0x6fd2: 0xe00026f6, 0x6fd3: 0xe00026f2, + 0x6fd4: 0xe0002706, 0x6fd5: 0xe0002702, 0x6fd6: 0xe00026fe, 0x6fd7: 0xe00026fa, + 0x6fd8: 0xe00027be, 0x6fd9: 0xe00027ba, 0x6fda: 0xe0002790, 0x6fdb: 0xe000278c, + 0x6fdc: 0xe0002798, 0x6fdd: 0xe0002794, 0x6fde: 0xe00027a8, 0x6fdf: 0xe00027a4, + 0x6fe0: 0xe00027a0, 0x6fe1: 0xe000279c, 0x6fe2: 0xe00027b0, 0x6fe3: 0xe00027ac, + 0x6fe4: 0xe000108d, 0x6fe5: 0xe000108a, 0x6fe6: 0xe000104d, 0x6fe7: 0xe000104a, + 0x6fe8: 0xe0001066, 0x6fe9: 0xe0001062, 0x6fea: 0xe000106e, 0x6feb: 0xe000106a, + 0x6fec: 0xe000107e, 0x6fed: 0xe000107a, 0x6fee: 0xe0001076, 0x6fef: 0xe0001072, + 0x6ff0: 0xe0001086, 0x6ff1: 0xe0001082, 0x6ff2: 0xe0001108, 0x6ff3: 0xe0001105, + 0x6ff4: 0xe0001135, 0x6ff5: 0xe0001132, 0x6ff6: 0xe000112f, 0x6ff7: 0xe000112c, + 0x6ff8: 0xe000111d, 0x6ff9: 0xe000111a, 0x6ffa: 0xe0000d0a, 0x6ffb: 0xe0000d07, + 0x6ffc: 0x0030d888, 0x6ffd: 0x4030d820, 0x6ffe: 0x00312088, 0x6fff: 0x40312020, + // Block 0x1c0, offset 0x7000 + 0x7000: 0xe00009bc, 0x7001: 0xe00009c0, 0x7002: 0x002c3a8b, 0x7003: 0xf0000a04, + 0x7004: 0x40081c20, 0x7005: 0xe0000a5e, 0x7006: 0xe0000a62, 0x7007: 0x002cc28a, + 0x7008: 0x40081e20, 0x7009: 0xf0000a04, 0x700a: 0x002d2285, 0x700b: 0x002d688b, + 0x700c: 0x002d688b, 0x700d: 0x002d688b, 0x700e: 0x002d6885, 0x700f: 0xf0000202, + 0x7010: 0x002d9a8b, 0x7011: 0x002d9a8b, 0x7012: 0x002e228b, 0x7013: 0x002e2285, + 0x7014: 0x40082020, 0x7015: 0x002e9e8b, 0x7016: 0xe000281e, 0x7017: 0x40082220, + 0x7018: 0x40082420, 0x7019: 0x002f2c8b, 0x701a: 0x002f568b, 0x701b: 0x002f7a8b, + 0x701c: 0x002f7a8b, 0x701d: 0x002f7a8b, 0x701e: 0x40082620, 0x701f: 0x40082820, + 0x7020: 0xe0002833, 0x7021: 0xe0000fbd, 0x7022: 0xe0002842, 0x7023: 0x40082a20, + 0x7024: 0x00312a8b, 0x7025: 0x40082c20, 0x7026: 0x0032a288, 0x7027: 0x40082e20, + 0x7028: 0x00312a8b, 0x7029: 0x40083020, 0x702a: 0x002c3c83, 0x702b: 0xe000094d, + 0x702c: 0x002c0a8b, 0x702d: 0x002c3a8b, 0x702e: 0x40083220, 0x702f: 0x002c9885, + 0x7030: 0x002c988b, 0x7031: 0x002d088b, 0x7032: 0x002d1e88, 0x7033: 0x002e828b, + 0x7034: 0x002ee285, 0x7035: 0x00389084, 0x7036: 0x00389284, 0x7037: 0x00389484, + 0x7038: 0x00389684, 0x7039: 0x002d9a85, 0x703a: 0x40083420, 0x703b: 0xe0000b95, + 0x703c: 0x00327e85, 0x703d: 0x00325685, 0x703e: 0x0032568b, 0x703f: 0x00327e8b, + // Block 0x1c1, offset 0x7040 + 0x7040: 0x00093685, 0x7041: 0x40083620, 0x7042: 0x40083820, 0x7043: 0x40083a20, + 0x7044: 0x40083c20, 0x7045: 0x002c628b, 0x7046: 0x002c6285, 0x7047: 0x002c9885, + 0x7048: 0x002d9a85, 0x7049: 0x002dcc85, 0x704a: 0x40083e20, 0x704b: 0x400a6e20, + 0x704c: 0x40084020, 0x704d: 0xe00009c4, 0x704e: 0x402d1e20, 0x704f: 0x40084220, + 0x7050: 0xe00002cb, 0x7051: 0xe00002d3, 0x7052: 0xe00002b2, 0x7053: 0xe00002bb, + 0x7054: 0xe00003cd, 0x7055: 0xe00002c3, 0x7056: 0xe00003d1, 0x7057: 0xe00004ab, + 0x7058: 0xe0000579, 0x7059: 0xe00002c7, 0x705a: 0xe0000640, 0x705b: 0xe00002cf, + 0x705c: 0xe00004af, 0x705d: 0xe0000644, 0x705e: 0xe0000798, 0x705f: 0xf0001e1e, + 0x7060: 0x002d9a8a, 0x7061: 0xe00027d4, 0x7062: 0xe00027db, 0x7063: 0xe00027ee, + 0x7064: 0x0030be8a, 0x7065: 0xe0002848, 0x7066: 0xe000284f, 0x7067: 0xe00010bb, + 0x7068: 0xe00027f4, 0x7069: 0x0030f68a, 0x706a: 0xe0002883, 0x706b: 0xe000288a, + 0x706c: 0x002e228a, 0x706d: 0x002c3a8a, 0x706e: 0x002c628a, 0x706f: 0x002e828a, + 0x7070: 0x002d9a84, 0x7071: 0xe00027d1, 0x7072: 0xe00027d7, 0x7073: 0xe00027eb, + 0x7074: 0x0030be84, 0x7075: 0xe0002845, 0x7076: 0xe000284b, 0x7077: 0xe00010b6, + 0x7078: 0xe00027f1, 0x7079: 0x0030f684, 0x707a: 0xe0002880, 0x707b: 0xe0002886, + 0x707c: 0x002e2284, 0x707d: 0x002c3a84, 0x707e: 0x002c6284, 0x707f: 0x002e8284, + // Block 0x1c2, offset 0x7080 + 0x7080: 0xe0000024, 0x7081: 0xe0000029, 0x7082: 0xe000002e, 0x7083: 0xe0000033, + 0x7084: 0xe0000038, 0x7085: 0xe000003d, 0x7086: 0xe0000042, 0x7087: 0xe0000047, + 0x7088: 0xf0001f04, 0x7089: 0xf0001f04, 0x708a: 0xf0001f04, 0x708b: 0xf0001f04, + 0x708c: 0xf0001f04, 0x708d: 0xf0001f04, 0x708e: 0xf0001f04, 0x708f: 0xf0001f04, + 0x7090: 0xf0001f04, 0x7091: 0xf0000404, 0x7092: 0xf0000404, 0x7093: 0xf0000404, + 0x7094: 0xf0000404, 0x7095: 0xf0000404, 0x7096: 0xf0000404, 0x7097: 0xf0000404, + 0x7098: 0xf0000404, 0x7099: 0xf0000404, 0x709a: 0xf0000404, 0x709b: 0xf0000404, + 0x709c: 0xf0000404, 0x709d: 0xf0000404, 0x709e: 0xf0000404, 0x709f: 0xf0000404, + 0x70a0: 0xe000249f, 0x70a1: 0xf0000404, 0x70a2: 0xf0000404, 0x70a3: 0xe00024a7, + 0x70a4: 0xe00024af, 0x70a5: 0xf0000404, 0x70a6: 0xe00024b7, 0x70a7: 0xf0000404, + 0x70a8: 0xf0000404, 0x70a9: 0xf0000404, 0x70aa: 0xe00024bf, 0x70ab: 0xf0000404, + 0x70ac: 0xe00024c7, 0x70ad: 0xe00024cf, 0x70ae: 0xe00024d7, 0x70af: 0xe00024df, + 0x70b0: 0xf0000404, 0x70b1: 0xf0000404, 0x70b2: 0xf0000404, 0x70b3: 0xe00024e7, + 0x70b4: 0xf0000404, 0x70b5: 0xf0000404, 0x70b6: 0x002bde8c, 0x70b7: 0x002c0a8c, + 0x70b8: 0x002c3a8c, 0x70b9: 0x002c628c, 0x70ba: 0x002c988c, 0x70bb: 0x002d088c, + 0x70bc: 0x002d228c, 0x70bd: 0x002d688c, 0x70be: 0x002d9a8c, 0x70bf: 0x002dcc8c, + // Block 0x1c3, offset 0x70c0 + 0x70c0: 0xf0001f04, 0x70c1: 0xf0001f04, 0x70c2: 0xf0001f04, 0x70c3: 0xf0001f04, + 0x70c4: 0xf0001f04, 0x70c5: 0xf0001f04, 0x70c6: 0xf0001f04, 0x70c7: 0xf0001f04, + 0x70c8: 0xf0001f04, 0x70c9: 0xf0000404, 0x70ca: 0xf0000404, 0x70cb: 0xf0000404, + 0x70cc: 0xe00027c5, 0x70cd: 0xe0000b85, 0x70ce: 0xe00026cc, 0x70cf: 0xe0000d14, + 0x70d0: 0x00657693, 0x70d1: 0x00657893, 0x70d2: 0x00657a93, 0x70d3: 0x00657e93, + 0x70d4: 0x00658093, 0x70d5: 0x00658293, 0x70d6: 0x00658493, 0x70d7: 0x00658693, + 0x70d8: 0x00658893, 0x70d9: 0x00658a93, 0x70da: 0x00658c93, 0x70db: 0x00658e93, + 0x70dc: 0x00659093, 0x70dd: 0x00659293, 0x70de: 0x00659493, 0x70df: 0x00659693, + 0x70e0: 0x00659893, 0x70e1: 0x00659a93, 0x70e2: 0x00659c93, 0x70e3: 0x00659e93, + 0x70e4: 0x0065a093, 0x70e5: 0x0065a293, 0x70e6: 0x0065a493, 0x70e7: 0x0065a693, + 0x70e8: 0x0065a893, 0x70e9: 0x0065aa93, 0x70ea: 0x0065ac93, 0x70eb: 0x0065ae93, + 0x70ec: 0x0065b093, 0x70ed: 0x0065b293, 0x70ee: 0x0065b493, 0x70ef: 0x0065b693, + 0x70f0: 0x0065b893, 0x70f1: 0x0065ba93, 0x70f2: 0x0065bc93, 0x70f3: 0x0065be93, + 0x70f4: 0x0065c093, 0x70f5: 0x0065c493, 0x70f6: 0x0065c693, 0x70f7: 0x0065c893, + 0x70f8: 0x0065ca93, 0x70f9: 0x0065cc93, 0x70fa: 0x0065ce93, 0x70fb: 0x0065d093, + 0x70fc: 0x0065d293, 0x70fd: 0x0065d493, 0x70fe: 0x0065d693, + // Block 0x1c4, offset 0x7100 + 0x7100: 0xe000230b, 0x7101: 0xe00022f8, 0x7102: 0xe00022fc, 0x7103: 0xe0002311, + 0x7104: 0xe0002316, 0x7105: 0xe000231d, 0x7106: 0xe0002321, 0x7107: 0xe0002325, + 0x7108: 0xe000232b, 0x7109: 0xf0001c1c, 0x710a: 0xe0002330, 0x710b: 0xe000233c, + 0x710c: 0xe0002340, 0x710d: 0xe0002337, 0x710e: 0xe0002346, 0x710f: 0xe000234b, + 0x7110: 0xe000234f, 0x7111: 0xe0002353, 0x7112: 0xf0001c1c, 0x7113: 0xe000235e, + 0x7114: 0xe0002358, 0x7115: 0xf0001c1c, 0x7116: 0xe0002363, 0x7117: 0xe000236d, + 0x7118: 0xf0001f04, 0x7119: 0xf0001f04, 0x711a: 0xf0001f04, 0x711b: 0xf0001f04, + 0x711c: 0xf0001f04, 0x711d: 0xf0001f04, 0x711e: 0xf0001f04, 0x711f: 0xf0001f04, + 0x7120: 0xf0001f04, 0x7121: 0xf0001f04, 0x7122: 0xf0000404, 0x7123: 0xf0000404, + 0x7124: 0xf0000404, 0x7125: 0xf0000404, 0x7126: 0xf0000404, 0x7127: 0xf0000404, + 0x7128: 0xf0000404, 0x7129: 0xf0000404, 0x712a: 0xf0000404, 0x712b: 0xf0000404, + 0x712c: 0xf0000404, 0x712d: 0xf0000404, 0x712e: 0xf0000404, 0x712f: 0xf0000404, + 0x7130: 0xf0000404, 0x7131: 0xe0000c1e, 0x7132: 0xf0001c1c, 0x7133: 0xf0001d1d, + 0x7134: 0xe0000a31, 0x7135: 0xe0002824, 0x7136: 0xf0001c1c, 0x7137: 0xf0001c1c, + 0x7138: 0xe0000ac2, 0x7139: 0xe0000ac6, 0x713a: 0xe00027e8, 0x713b: 0xf0001c1c, + 0x713c: 0xf0001c1c, 0x713d: 0xf0001c1c, 0x713e: 0xf0001c1c, 0x713f: 0xe0002431, + // Block 0x1c5, offset 0x7140 + 0x7140: 0xf0001d1c, 0x7141: 0xf0001d1c, 0x7142: 0xf0001d1c, 0x7143: 0xf0001d1c, + 0x7144: 0xe00027f7, 0x7145: 0xe00027fa, 0x7146: 0xf0001d1d, 0x7147: 0xf0001d1d, + 0x7148: 0xe0000a6b, 0x7149: 0xe0000cb4, 0x714a: 0xf0001d1c, 0x714b: 0xf0001d1c, + 0x714c: 0xf0001d1c, 0x714d: 0xf0001c1c, 0x714e: 0xf0001c1c, 0x714f: 0xe00027fd, + 0x7150: 0xe00027ce, 0x7151: 0xe0000cb9, 0x7152: 0xe0000d36, 0x7153: 0xe0000be3, + 0x7154: 0xe0000fc5, 0x7155: 0xf0001c1c, 0x7156: 0xf0001c1c, 0x7157: 0xf0001c1c, + 0x7158: 0xe0002803, 0x7159: 0xf0001c1c, 0x715a: 0xf0001c1c, 0x715b: 0xf0001c1c, + 0x715c: 0xf0001c1c, 0x715d: 0xf0001c1c, 0x715e: 0xe0002806, 0x715f: 0xe0000d3e, + 0x7160: 0xe0000a72, 0x7161: 0xf0001c1c, 0x7162: 0xe0000cbd, 0x7163: 0xe0000d42, + 0x7164: 0xe0000a76, 0x7165: 0xf0001c1c, 0x7166: 0xe0000cc1, 0x7167: 0xe0000d2d, + 0x7168: 0xe0000d31, 0x7169: 0xf0001c1d, 0x716a: 0xe0000cc5, 0x716b: 0xe0000d4a, + 0x716c: 0xe0000be7, 0x716d: 0xe0000f0b, 0x716e: 0xe0000f0f, 0x716f: 0xe0000f15, + 0x7170: 0xe000282d, 0x7171: 0xe0002821, 0x7172: 0xe000288e, 0x7173: 0xe000281b, + 0x7174: 0xf0001d1c, 0x7175: 0xf0001d1c, 0x7176: 0xf0001d1c, 0x7177: 0xf0001d1c, + 0x7178: 0xe000280f, 0x7179: 0xf0001d1d, 0x717a: 0xf0001d1c, 0x717b: 0xf0001d1c, + 0x717c: 0xf0001d1c, 0x717d: 0xf0001d1c, 0x717e: 0xe0002812, 0x717f: 0xf0001d1d, + // Block 0x1c6, offset 0x7180 + 0x7180: 0xe0002815, 0x7181: 0xf0001d1d, 0x7182: 0xe00009b7, 0x7183: 0xe00024f3, + 0x7184: 0xf0001c1c, 0x7185: 0xf0001c1c, 0x7186: 0xe0000a66, 0x7187: 0xe0000a7a, + 0x7188: 0xf0001d1c, 0x7189: 0xf0001c1d, 0x718a: 0xe00027c2, 0x718b: 0xe00027c8, + 0x718c: 0xe00027e5, 0x718d: 0xe0002800, 0x718e: 0xe0002809, 0x718f: 0xe000280c, + 0x7190: 0xf0001c1c, 0x7191: 0xf0001c1c, 0x7192: 0xe0000d0d, 0x7193: 0xe0002818, + 0x7194: 0xf0001c1c, 0x7195: 0xe0000d3a, 0x7196: 0xe0000d46, 0x7197: 0xe0002827, + 0x7198: 0xe0000eb0, 0x7199: 0xe0000eb8, 0x719a: 0xe000282a, 0x719b: 0xe0002836, + 0x719c: 0xe000283f, 0x719d: 0xf0001c1d, 0x719e: 0xe00010b2, 0x719f: 0xe00009c8, + 0x71a0: 0xf0001f04, 0x71a1: 0xf0001f04, 0x71a2: 0xf0001f04, 0x71a3: 0xf0001f04, + 0x71a4: 0xf0001f04, 0x71a5: 0xf0001f04, 0x71a6: 0xf0001f04, 0x71a7: 0xf0001f04, + 0x71a8: 0xf0001f04, 0x71a9: 0xf0000404, 0x71aa: 0xf0000404, 0x71ab: 0xf0000404, + 0x71ac: 0xf0000404, 0x71ad: 0xf0000404, 0x71ae: 0xf0000404, 0x71af: 0xf0000404, + 0x71b0: 0xf0000404, 0x71b1: 0xf0000404, 0x71b2: 0xf0000404, 0x71b3: 0xf0000404, + 0x71b4: 0xf0000404, 0x71b5: 0xf0000404, 0x71b6: 0xf0000404, 0x71b7: 0xf0000404, + 0x71b8: 0xf0000404, 0x71b9: 0xf0000404, 0x71ba: 0xf0000404, 0x71bb: 0xf0000404, + 0x71bc: 0xf0000404, 0x71bd: 0xf0000404, 0x71be: 0xf0000404, 0x71bf: 0xe0000bdf, + // Block 0x1c7, offset 0x71c0 + 0x71c0: 0xf0000404, 0x71c1: 0xe00026cf, 0x71c2: 0xf0000404, 0x71c3: 0xe0000b99, + 0x71c4: 0xe0000b9d, 0x71c5: 0xe0000f83, 0x71c6: 0xe000283c, + 0x71d3: 0xf0000404, + 0x71d4: 0xf0000404, 0x71d5: 0xf0000404, 0x71d6: 0xf0000404, 0x71d7: 0xf0000404, + 0x71dd: 0xe000150b, 0x71de: 0xa1a09602, 0x71df: 0xe0001514, + 0x71e0: 0x0038ae85, 0x71e1: 0x00389085, 0x71e2: 0x00389685, 0x71e3: 0x00389885, + 0x71e4: 0x0038a485, 0x71e5: 0x0038a685, 0x71e6: 0x0038a885, 0x71e7: 0x0038b685, + 0x71e8: 0x0038ba85, 0x71e9: 0x00093885, 0x71ea: 0xe0001542, 0x71eb: 0xe000153f, + 0x71ec: 0xe000154c, 0x71ed: 0xe0001548, 0x71ee: 0xe00014e1, 0x71ef: 0xe00014e4, + 0x71f0: 0xe00014e7, 0x71f1: 0xe00014ea, 0x71f2: 0xe00014f0, 0x71f3: 0xe00014f3, + 0x71f4: 0xe00014f6, 0x71f5: 0xe00014fc, 0x71f6: 0xe0001505, + 0x71f8: 0xe0001508, 0x71f9: 0xe000150e, 0x71fa: 0xe000151b, 0x71fb: 0xe0001518, + 0x71fc: 0xe0001521, 0x71fe: 0xe0001524, + // Block 0x1c8, offset 0x7200 + 0x7200: 0xf0001f04, 0x7201: 0xf0001f04, 0x7202: 0xf0001f04, 0x7203: 0xf0001f04, + 0x7204: 0xf0001f04, 0x7205: 0xf0001f04, 0x7206: 0xf0001f04, 0x7207: 0xf0001f04, + 0x7208: 0xf0001f04, 0x7209: 0xf0001f04, 0x720a: 0xf0001f04, + 0x7210: 0xf0000a04, 0x7211: 0xf0000a04, 0x7212: 0xf0000a04, 0x7213: 0xf0000a04, + 0x7214: 0xe00024a3, 0x7215: 0xf0000a04, 0x7216: 0xf0000a04, 0x7217: 0xe00024ab, + 0x7218: 0xe00024b3, 0x7219: 0xf0000a04, 0x721a: 0xe00024bb, 0x721b: 0xf0000a04, + 0x721c: 0xf0000a04, 0x721d: 0xf0000a04, 0x721e: 0xe00024c3, 0x721f: 0xf0000a04, + 0x7220: 0xe00024cb, 0x7221: 0xe00024d3, 0x7222: 0xe00024db, 0x7223: 0xe00024e3, + 0x7224: 0xf0000a04, 0x7225: 0xf0000a04, 0x7226: 0xf0000a04, 0x7227: 0xe00024eb, + 0x7228: 0xf0000a04, 0x7229: 0xf0000a04, 0x722a: 0xe00024ef, 0x722b: 0x002c3a8c, + 0x722c: 0x002f7a8c, 0x722d: 0xf0000c0c, 0x722e: 0xf0000c0c, + 0x7230: 0x002bde9d, 0x7231: 0x002c0a9d, 0x7232: 0x002c3a9d, 0x7233: 0x002c629d, + 0x7234: 0x002c989d, 0x7235: 0x002d089d, 0x7236: 0x002d229d, 0x7237: 0x002d689d, + 0x7238: 0x002d9a9d, 0x7239: 0x002dcc9d, 0x723a: 0x002dfe9d, 0x723b: 0x002e229d, + 0x723c: 0x002e829d, 0x723d: 0x002e9e9d, 0x723e: 0x002ee29d, 0x723f: 0x002f2c9d, + // Block 0x1c9, offset 0x7240 + 0x7240: 0x002f569d, 0x7241: 0x002f7a9d, 0x7242: 0x002fe69d, 0x7243: 0x00302c9d, + 0x7244: 0x00306c9d, 0x7245: 0x0030be9d, 0x7246: 0x0030e29d, 0x7247: 0x0030f69d, + 0x7248: 0x0031009d, 0x7249: 0x00312a9d, 0x724a: 0xe00027cb, 0x724b: 0xf0001d1d, + 0x724c: 0xe0002830, 0x724d: 0xe0002839, 0x724e: 0xe0000ebc, 0x724f: 0xf0001d1d, + 0x7250: 0x002bde8c, 0x7251: 0x002c0a8c, 0x7252: 0x002c3a8c, 0x7253: 0x002c628c, + 0x7254: 0x002c988c, 0x7255: 0x002d088c, 0x7256: 0x002d228c, 0x7257: 0x002d688c, + 0x7258: 0x002d9a8c, 0x7259: 0x002dcc8c, 0x725a: 0x002dfe8c, 0x725b: 0x002e228c, + 0x725c: 0x002e828c, 0x725d: 0x002e9e8c, 0x725e: 0x002ee28c, 0x725f: 0x002f2c8c, + 0x7260: 0x002f568c, 0x7261: 0x002f7a8c, 0x7262: 0x002fe68c, 0x7263: 0x00302c8c, + 0x7264: 0x00306c8c, 0x7265: 0x0030be8c, 0x7266: 0x0030e28c, 0x7267: 0x0030f68c, + 0x7268: 0x0031008c, 0x7269: 0x00312a8c, 0x726a: 0xf0001414, 0x726b: 0xf0001414, + 0x7270: 0x002bde9d, 0x7271: 0x002c0a9d, 0x7272: 0x002c3a9d, 0x7273: 0x002c629d, + 0x7274: 0x002c989d, 0x7275: 0x002d089d, 0x7276: 0x002d229d, 0x7277: 0x002d689d, + 0x7278: 0x002d9a9d, 0x7279: 0x002dcc9d, 0x727a: 0x002dfe9d, 0x727b: 0x002e229d, + 0x727c: 0x002e829d, 0x727d: 0x002e9e9d, 0x727e: 0x002ee29d, 0x727f: 0x002f2c9d, + // Block 0x1ca, offset 0x7280 + 0x7280: 0xe0000cfe, 0x7281: 0xe0000cf8, 0x7282: 0xe0000cf5, 0x7283: 0xe0000d51, + 0x7284: 0xe0000d4e, 0x7285: 0xe0000d6f, 0x7286: 0xe0000d6c, 0x7287: 0xe0000d5d, + 0x7288: 0xe0000d5a, 0x7289: 0x002e9e89, 0x728a: 0x002eda88, 0x728b: 0x402eda20, + 0x728c: 0xe0000e2e, 0x728d: 0xe0000e2b, 0x728e: 0xe0000da0, 0x728f: 0xe0000d9d, + 0x7290: 0xe0000de0, 0x7291: 0xe0000ddd, 0x7292: 0xe0000e93, 0x7293: 0xe0000e8f, + 0x7294: 0xe0000eca, 0x7295: 0xe0000ec7, 0x7296: 0xe0000edc, 0x7297: 0xe0000ed9, + 0x7298: 0xe0000ed0, 0x7299: 0xe0000ecd, 0x729a: 0xe0000f1f, 0x729b: 0xe0000f1c, + 0x729c: 0xe0000f2d, 0x729d: 0xe0000f2a, 0x729e: 0xe0000f47, 0x729f: 0xe0000f44, + 0x72a0: 0xe0000f33, 0x72a1: 0xe0000f30, 0x72a2: 0xe0000f99, 0x72a3: 0xe0000f96, + 0x72a4: 0xe0000f8a, 0x72a5: 0xe0000f87, 0x72a6: 0x00303688, 0x72a7: 0x40303620, + 0x72a8: 0xe000102b, 0x72a9: 0xe0001028, 0x72aa: 0xe000103f, 0x72ab: 0xe000103c, + 0x72ac: 0xe0000fe7, 0x72ad: 0xe0000fe4, 0x72ae: 0xe0000ff9, 0x72af: 0xe0000ff6, + 0x72b0: 0xe0001025, 0x72b1: 0xe0001022, 0x72b2: 0xe0001039, 0x72b3: 0xe0001036, + 0x72b4: 0xe00010d8, 0x72b5: 0xe00010d5, 0x72b6: 0xe000110e, 0x72b7: 0xe000110b, + 0x72b8: 0xe0001117, 0x72b9: 0xe000113b, 0x72ba: 0xe0001138, 0x72bb: 0xe000114d, + 0x72bc: 0xe000114a, 0x72bd: 0xe0001147, 0x72be: 0xe0001144, 0x72bf: 0xe0000f64, + // Block 0x1cb, offset 0x72c0 + 0x72c0: 0xa0000000, 0x72c1: 0xa0000000, 0x72c2: 0xa0000000, 0x72c3: 0xa0000000, + 0x72c4: 0xa0000000, 0x72c6: 0x40096620, 0x72c7: 0x40096a20, + 0x72c8: 0x40070820, 0x72c9: 0x4004f220, 0x72ca: 0x4004f620, 0x72cb: 0x4027e620, + 0x72cc: 0x40024820, 0x72cd: 0x40024a20, 0x72ce: 0x40070e20, 0x72cf: 0x40071020, + 0x72d0: 0xae600000, 0x72d1: 0xae600000, 0x72d2: 0xae600000, 0x72d3: 0xae600000, + 0x72d4: 0xae600000, 0x72d5: 0xae600000, 0x72d6: 0xae600000, 0x72d7: 0xae600000, + 0x72d8: 0xa1e00000, 0x72d9: 0xa1f00000, 0x72da: 0xa2000000, 0x72db: 0x40026420, + 0x72de: 0x40027020, 0x72df: 0x4002cc20, + 0x72e0: 0x403aa220, 0x72e1: 0x40391c20, 0x72e2: 0x40391e20, 0x72e3: 0x40392020, + 0x72e4: 0x40392620, 0x72e5: 0x40392820, 0x72e6: 0x40393020, 0x72e7: 0xc0520151, + 0x72e8: 0x40393c20, 0x72e9: 0x40395621, 0x72ea: 0x40395620, 0x72eb: 0x40395820, + 0x72ec: 0x40396420, 0x72ed: 0x40397220, 0x72ee: 0x40397420, 0x72ef: 0x40398820, + 0x72f0: 0x40398a20, 0x72f1: 0x4039a420, 0x72f2: 0x4039a620, 0x72f3: 0x4039c620, + 0x72f4: 0x4039c820, 0x72f5: 0x4039dc20, 0x72f6: 0x4039de20, 0x72f7: 0x4039e620, + 0x72f8: 0x4039e820, 0x72f9: 0x4039ee20, 0x72fa: 0x4039f020, 0x72fb: 0x403a3820, + 0x72fc: 0x403a3a20, 0x72fd: 0x403a9c20, 0x72fe: 0x403a9e20, 0x72ff: 0x403aa020, + // Block 0x1cc, offset 0x7300 + 0x7300: 0xa0000000, 0x7301: 0x4039fc20, 0x7302: 0x403a1220, 0x7303: 0x403a1a20, + 0x7304: 0x403a4020, 0x7305: 0x403a4e20, 0x7306: 0x403a5620, 0x7307: 0x403a6820, + 0x7308: 0xc0560171, 0x7309: 0x403a9021, 0x730a: 0xc0580171, 0x730b: 0xa1b0a202, + 0x730c: 0xa1c0a502, 0x730d: 0xa1d0a902, 0x730e: 0xa1e0ad02, 0x730f: 0xa1f0b202, + 0x7310: 0xa200b602, 0x7311: 0xa210ba02, 0x7312: 0xa220bc02, 0x7313: 0xae60bd02, + 0x7314: 0xae60be02, 0x7315: 0xadc0bf02, 0x7316: 0xadc0c102, 0x7317: 0xae60c202, + 0x7318: 0xae60c302, 0x7319: 0xae60c402, 0x731a: 0xae60c502, 0x731b: 0xae60c602, + 0x731c: 0xadc0c702, 0x731d: 0xae60c802, 0x731e: 0xae60c902, 0x731f: 0xadc0c002, + 0x7320: 0xe000015e, 0x7321: 0xe00001e6, 0x7322: 0xe0000301, 0x7323: 0xe00003db, + 0x7324: 0xe00004b6, 0x7325: 0xe0000580, 0x7326: 0xe000064b, 0x7327: 0xe00006f3, + 0x7328: 0xe000079f, 0x7329: 0xe0000844, 0x732a: 0x4004ee20, 0x732b: 0x40024c20, + 0x732c: 0x40024e20, 0x732d: 0x4004de20, 0x732e: 0x40393a20, 0x732f: 0x403a1020, + 0x7330: 0xa230d102, 0x7331: 0x40392420, 0x7332: 0x40392220, 0x7333: 0x40392a20, + 0x7334: 0x00391c84, 0x7335: 0xf0000404, 0x7336: 0xf0000404, 0x7337: 0xf0000404, + 0x7338: 0xf0000404, 0x7339: 0x40395a20, 0x733a: 0x40395c20, 0x733b: 0x40393e20, + 0x733c: 0x40395e20, 0x733d: 0x40396020, 0x733e: 0x40394020, 0x733f: 0x40396220, + // Block 0x1cd, offset 0x7340 + 0x7340: 0x40073420, 0x7341: 0x40073620, + 0x7353: 0x003a269a, + 0x7354: 0x003a2699, 0x7355: 0x003a2697, 0x7356: 0x003a2698, 0x7357: 0x003a7c9a, + 0x7358: 0x003a7c99, 0x7359: 0x003a7a9a, 0x735a: 0x003a7a99, 0x735b: 0x003a7e9a, + 0x735c: 0x003a7e99, 0x735d: 0xf0001a1a, 0x735e: 0x003a849a, 0x735f: 0x003a8499, + 0x7360: 0x003a789a, 0x7361: 0x003a7899, 0x7362: 0x003a809a, 0x7363: 0x003a8099, + 0x7364: 0x003a989a, 0x7365: 0x003a9899, 0x7366: 0x003a9897, 0x7367: 0x003a9898, + 0x7368: 0x003a90a3, 0x7369: 0x003a90a4, 0x736a: 0xe0001559, 0x736b: 0xe0001556, + 0x736c: 0xe0001589, 0x736d: 0xe0001586, 0x736e: 0xe000158f, 0x736f: 0xe000158c, + 0x7370: 0xe000159b, 0x7371: 0xe0001598, 0x7372: 0xe0001595, 0x7373: 0xe0001592, + 0x7374: 0xe00015a1, 0x7375: 0xe000159e, 0x7376: 0xe00015bf, 0x7377: 0xe00015bc, + 0x7378: 0xe00015b9, 0x7379: 0xe00015ad, 0x737a: 0xe00015a7, 0x737b: 0xe00015a4, + 0x737c: 0x003a929a, 0x737d: 0x003a9299, 0x737e: 0x003a9297, 0x737f: 0x003a9298, + // Block 0x1ce, offset 0x7380 + 0x7380: 0xe000155f, 0x7381: 0xe0001565, 0x7382: 0xe000157a, 0x7383: 0xe00015b0, + 0x7384: 0xe00015b6, 0x7385: 0xf0001a1a, 0x7386: 0xf0001a1a, 0x7387: 0xf0001a1a, + 0x7388: 0xf0001a1a, 0x7389: 0xe0002894, 0x738a: 0xf0001a1a, 0x738b: 0xf0001a1a, + 0x738c: 0xf0001a1a, 0x738d: 0xf0001a1a, 0x738e: 0xf0001a1a, 0x738f: 0xe000289a, + 0x7390: 0xf0001a1a, 0x7391: 0xf0001a1a, 0x7392: 0xf0001a1a, 0x7393: 0xe00028a0, + 0x7394: 0xf0001a1a, 0x7395: 0xf0001a1a, 0x7396: 0xf0001a1a, 0x7397: 0xf0001a1a, + 0x7398: 0xf0001a1a, 0x7399: 0xf0001a1a, 0x739a: 0xf0001a1a, 0x739b: 0xf0001a1a, + 0x739c: 0xf0001a1a, 0x739d: 0xf0001a1a, 0x739e: 0xf0001a1a, 0x739f: 0xf0001a1a, + 0x73a0: 0xf0001a1a, 0x73a1: 0xf0001a1a, 0x73a2: 0xf0001a1a, 0x73a3: 0xf0001a1a, + 0x73a4: 0xf0001a1a, 0x73a5: 0xf0001a1a, 0x73a6: 0xf0001a1a, 0x73a7: 0xf0001a1a, + 0x73a8: 0xf0001a1a, 0x73a9: 0xf0001a1a, 0x73aa: 0xf0001a1a, 0x73ab: 0xf0001a1a, + 0x73ac: 0xf0001a1a, 0x73ad: 0xf0001a1a, 0x73ae: 0xf0001a1a, 0x73af: 0xf0001a1a, + 0x73b0: 0xf0001a1a, 0x73b1: 0xe00028e2, 0x73b2: 0xf0001a1a, 0x73b3: 0xf0001a1a, + 0x73b4: 0xf0001a1a, 0x73b5: 0xe00028e8, 0x73b6: 0xf0001a1a, 0x73b7: 0xf0001a1a, + 0x73b8: 0xf0001a1a, 0x73b9: 0xf0001a1a, 0x73ba: 0xf0001a1a, 0x73bb: 0xf0001a1a, + 0x73bc: 0xf0001a1a, 0x73bd: 0xe00028ee, 0x73be: 0xf0001a1a, 0x73bf: 0xf0001a1a, + // Block 0x1cf, offset 0x73c0 + 0x73c0: 0xf0001a1a, 0x73c1: 0xf0001a1a, 0x73c2: 0xf0001a1a, 0x73c3: 0xe00028f4, + 0x73c4: 0xf0001a1a, 0x73c5: 0xf0001a1a, 0x73c6: 0xf0001a1a, 0x73c7: 0xf0001a1a, + 0x73c8: 0xf0001a1a, 0x73c9: 0xe00028f7, 0x73ca: 0xf0001a1a, 0x73cb: 0xf0001a1a, + 0x73cc: 0xf0001a1a, 0x73cd: 0xf0001a1a, 0x73ce: 0xf0001a1a, 0x73cf: 0xe00028fd, + 0x73d0: 0xf0001a1a, 0x73d1: 0xf0001a1a, 0x73d2: 0xf0001a1a, 0x73d3: 0xe0002900, + 0x73d4: 0xf0001a1a, 0x73d5: 0xf0001a1a, 0x73d6: 0xf0001a1a, 0x73d7: 0xf0001a1a, + 0x73d8: 0xf0001a1a, 0x73d9: 0xe0002906, 0x73da: 0xf0001a1a, 0x73db: 0xf0001a1a, + 0x73dc: 0xf0001a1a, 0x73dd: 0x003a90a8, 0x73de: 0xe0000003, 0x73df: 0xe0000006, + 0x73e0: 0xe0000009, 0x73e1: 0xe000000c, 0x73e2: 0xe000000f, 0x73e3: 0xe0000012, + 0x73e4: 0xe000156b, 0x73e5: 0xe000156e, 0x73e6: 0xe0001577, 0x73e7: 0xe000157d, + 0x73e8: 0xe00015aa, 0x73e9: 0xe00015b3, 0x73ea: 0xf0001919, 0x73eb: 0xf0001919, + 0x73ec: 0xf0001919, 0x73ed: 0xf0001919, 0x73ee: 0xe0002891, 0x73ef: 0xf0001919, + 0x73f0: 0xf0001919, 0x73f1: 0xf0001919, 0x73f2: 0xf0001919, 0x73f3: 0xf0001919, + 0x73f4: 0xe0002897, 0x73f5: 0xf0001919, 0x73f6: 0xf0001919, 0x73f7: 0xf0001919, + 0x73f8: 0xf0001919, 0x73f9: 0xf0001919, 0x73fa: 0xe000289d, 0x73fb: 0xf0001919, + 0x73fc: 0xe00028df, 0x73fd: 0xf0001919, 0x73fe: 0xe00028e5, 0x73ff: 0xf0001919, + // Block 0x1d0, offset 0x7400 + 0x7400: 0xf0001919, 0x7401: 0xf0001919, 0x7402: 0xf0001919, 0x7403: 0xe00028eb, + 0x7404: 0xf0001919, 0x7405: 0xf0001919, 0x7406: 0xe00028f1, 0x7407: 0xf0001919, + 0x7408: 0xf0001919, 0x7409: 0xf0001919, 0x740a: 0xf0001919, 0x740b: 0xf0001919, + 0x740c: 0xf0001919, 0x740d: 0xf0001919, 0x740e: 0xe00028fa, 0x740f: 0xf0001919, + 0x7410: 0x003a90a7, 0x7411: 0xf0001919, 0x7412: 0xf0001919, 0x7413: 0xf0001919, + 0x7414: 0xf0001919, 0x7415: 0xe0002903, 0x7416: 0xf0001919, 0x7417: 0xe000155c, + 0x7418: 0xe0001562, 0x7419: 0xe0001568, 0x741a: 0xe0001571, 0x741b: 0xe0001580, + 0x741c: 0xf0001717, 0x741d: 0xf0001717, 0x741e: 0xf0001717, 0x741f: 0xf0001717, + 0x7420: 0xf0001717, 0x7421: 0xf0001717, 0x7422: 0xf0001717, 0x7423: 0xf0001717, + 0x7424: 0xf0001717, 0x7425: 0xf0001717, 0x7426: 0xf0001717, 0x7427: 0xf0001717, + 0x7428: 0xf0001717, 0x7429: 0xf0001717, 0x742a: 0xf0001717, 0x742b: 0xf0001717, + 0x742c: 0xf0001717, 0x742d: 0xf0001717, 0x742e: 0xf0001717, 0x742f: 0xf0001717, + 0x7430: 0xf0001717, 0x7431: 0xf0001717, 0x7432: 0xf0001717, 0x7433: 0xf0001717, + 0x7434: 0xf0001717, 0x7435: 0xf0001717, 0x7436: 0xf0001717, 0x7437: 0xf0001717, + 0x7438: 0xf0001717, 0x7439: 0xf0001717, 0x743a: 0xf0001717, 0x743b: 0xf0001717, + 0x743c: 0xf0001717, 0x743d: 0xf0001717, 0x743e: 0xf0001717, 0x743f: 0xf0001717, + // Block 0x1d1, offset 0x7440 + 0x7440: 0xf0001717, 0x7441: 0xf0001717, 0x7442: 0xf0001717, 0x7443: 0xf0001717, + 0x7444: 0xf0001717, 0x7445: 0xf0001717, 0x7446: 0xf0001717, 0x7447: 0xf0001717, + 0x7448: 0xf0001717, 0x7449: 0xf0001717, 0x744a: 0xf0001717, 0x744b: 0xf0001717, + 0x744c: 0xf0001717, 0x744d: 0xf0001717, 0x744e: 0xf0001717, 0x744f: 0xf0001717, + 0x7450: 0xf0001717, 0x7451: 0xf0001717, 0x7452: 0xf0001717, 0x7453: 0xf0001717, + 0x7454: 0xf0001717, 0x7455: 0xf0001717, 0x7456: 0xf0001717, 0x7457: 0xf0001717, + 0x7458: 0xf0001717, 0x7459: 0xf0001717, 0x745a: 0xf0001717, 0x745b: 0xf0001717, + 0x745c: 0xf0001717, 0x745d: 0xf0001717, 0x745e: 0xf0001717, 0x745f: 0xe0001574, + 0x7460: 0xe0001583, 0x7461: 0xf0001818, 0x7462: 0xf0001818, 0x7463: 0xf0001818, + 0x7464: 0xf0001818, 0x7465: 0xf0001818, 0x7466: 0xf0001818, 0x7467: 0xf0001818, + 0x7468: 0xf0001818, 0x7469: 0xf0001818, 0x746a: 0xf0001818, 0x746b: 0xf0001818, + 0x746c: 0xf0001818, 0x746d: 0xf0001818, 0x746e: 0xf0001818, 0x746f: 0xf0001818, + 0x7470: 0xf0001818, 0x7471: 0xf0001818, 0x7472: 0xf0001818, 0x7473: 0xf0001818, + 0x7474: 0xf0001818, 0x7475: 0xe00028d0, 0x7476: 0xf0001a1a, 0x7477: 0xe00028d6, + 0x7478: 0xf0001a1a, 0x7479: 0xe00028dc, 0x747a: 0xf0001a1a, 0x747b: 0xe00028b8, + 0x747c: 0xf0001a1a, 0x747d: 0xe00028be, 0x747e: 0xf0001a1a, 0x747f: 0xe00028ac, + // Block 0x1d2, offset 0x7480 + 0x7480: 0xf0001a1a, 0x7481: 0xe00028a6, 0x7482: 0xf0001a1a, 0x7483: 0xe00028b2, + 0x7484: 0xf0001a1a, 0x7485: 0xe00028c4, 0x7486: 0xf0001a1a, 0x7487: 0xe00028ca, + 0x7488: 0xf0001a1a, 0x7489: 0xf0001a1a, 0x748a: 0xf0001a1a, 0x748b: 0xf0001a1a, + 0x748c: 0xf0001a1a, 0x748d: 0xf0001a1a, 0x748e: 0xf0001a1a, 0x748f: 0xf0001a1a, + 0x7490: 0xf0001a1a, 0x7491: 0xe00028cd, 0x7492: 0xf0001919, 0x7493: 0xe00028d3, + 0x7494: 0xf0001919, 0x7495: 0xe00028d9, 0x7496: 0xf0001919, 0x7497: 0xe00028b5, + 0x7498: 0xf0001919, 0x7499: 0xe00028bb, 0x749a: 0xf0001919, 0x749b: 0xe00028a9, + 0x749c: 0xf0001919, 0x749d: 0xe00028a3, 0x749e: 0xf0001919, 0x749f: 0xe00028af, + 0x74a0: 0xf0001919, 0x74a1: 0xe00028c1, 0x74a2: 0xf0001919, 0x74a3: 0xe00028c7, + 0x74a4: 0xf0001919, 0x74a5: 0xf0001919, 0x74a6: 0xf0001919, 0x74a7: 0xf0001919, + 0x74a8: 0xf0001919, 0x74a9: 0xf0001919, 0x74aa: 0xf0001919, 0x74ab: 0xf0001919, + 0x74ac: 0xf0001919, 0x74ad: 0xf0001717, 0x74ae: 0xf0001717, 0x74af: 0xf0001717, + 0x74b0: 0xf0001717, 0x74b1: 0xf0001717, 0x74b2: 0xf0001717, 0x74b3: 0xf0001717, + 0x74b4: 0xf0001818, 0x74b5: 0xf0001818, 0x74b6: 0xf0001818, 0x74b7: 0xf0001818, + 0x74b8: 0xf0001818, 0x74b9: 0xf0001818, 0x74ba: 0xf0001818, 0x74bb: 0xf0001818, + 0x74bc: 0xf0001919, 0x74bd: 0xf0001a1a, 0x74be: 0x4004c020, 0x74bf: 0x4004c220, + // Block 0x1d3, offset 0x74c0 + 0x74c0: 0x00391c9a, 0x74c1: 0x00391e9a, 0x74c2: 0x00391e99, 0x74c3: 0x0039209a, + 0x74c4: 0x00392099, 0x74c5: 0x0039269a, 0x74c6: 0x00392699, 0x74c7: 0x0039289a, + 0x74c8: 0x00392899, 0x74c9: 0x0039309a, 0x74ca: 0x00393099, 0x74cb: 0x00393097, + 0x74cc: 0x00393098, 0x74cd: 0x0039389a, 0x74ce: 0x00393899, 0x74cf: 0x00393c9a, + 0x74d0: 0x00393c99, 0x74d1: 0x00393c97, 0x74d2: 0x00393c98, 0x74d3: 0x003956a4, + 0x74d4: 0x003956a3, 0x74d5: 0x0039569a, 0x74d6: 0x00395699, 0x74d7: 0x00395697, + 0x74d8: 0x00395698, 0x74d9: 0x0039589a, 0x74da: 0x00395899, 0x74db: 0x00395897, + 0x74dc: 0x00395898, 0x74dd: 0x0039649a, 0x74de: 0x00396499, 0x74df: 0x00396497, + 0x74e0: 0x00396498, 0x74e1: 0x0039729a, 0x74e2: 0x00397299, 0x74e3: 0x00397297, + 0x74e4: 0x00397298, 0x74e5: 0x0039749a, 0x74e6: 0x00397499, 0x74e7: 0x00397497, + 0x74e8: 0x00397498, 0x74e9: 0x0039889a, 0x74ea: 0x00398899, 0x74eb: 0x00398a9a, + 0x74ec: 0x00398a99, 0x74ed: 0x0039a49a, 0x74ee: 0x0039a499, 0x74ef: 0x0039a69a, + 0x74f0: 0x0039a699, 0x74f1: 0x0039c69a, 0x74f2: 0x0039c699, 0x74f3: 0x0039c697, + 0x74f4: 0x0039c698, 0x74f5: 0x0039c89a, 0x74f6: 0x0039c899, 0x74f7: 0x0039c897, + 0x74f8: 0x0039c898, 0x74f9: 0x0039dc9a, 0x74fa: 0x0039dc99, 0x74fb: 0x0039dc97, + 0x74fc: 0x0039dc98, 0x74fd: 0x0039de9a, 0x74fe: 0x0039de99, 0x74ff: 0x0039de97, + // Block 0x1d4, offset 0x7500 + 0x7500: 0x0039de98, 0x7501: 0x0039e69a, 0x7502: 0x0039e699, 0x7503: 0x0039e697, + 0x7504: 0x0039e698, 0x7505: 0x0039e89a, 0x7506: 0x0039e899, 0x7507: 0x0039e897, + 0x7508: 0x0039e898, 0x7509: 0x0039ee9a, 0x750a: 0x0039ee99, 0x750b: 0x0039ee97, + 0x750c: 0x0039ee98, 0x750d: 0x0039f09a, 0x750e: 0x0039f099, 0x750f: 0x0039f097, + 0x7510: 0x0039f098, 0x7511: 0x0039fc9a, 0x7512: 0x0039fc99, 0x7513: 0x0039fc97, + 0x7514: 0x0039fc98, 0x7515: 0x003a129a, 0x7516: 0x003a1299, 0x7517: 0x003a1297, + 0x7518: 0x003a1298, 0x7519: 0x003a1a9a, 0x751a: 0x003a1a99, 0x751b: 0x003a1a97, + 0x751c: 0x003a1a98, 0x751d: 0x003a409a, 0x751e: 0x003a4099, 0x751f: 0x003a4097, + 0x7520: 0x003a4098, 0x7521: 0x003a4e9a, 0x7522: 0x003a4e99, 0x7523: 0x003a4e97, + 0x7524: 0x003a4e98, 0x7525: 0x003a569a, 0x7526: 0x003a5699, 0x7527: 0x003a5697, + 0x7528: 0x003a5698, 0x7529: 0x003a689a, 0x752a: 0x003a6899, 0x752b: 0x003a6897, + 0x752c: 0x003a6898, 0x752d: 0x003a749a, 0x752e: 0x003a7499, 0x752f: 0x003a90a6, + 0x7530: 0x003a90a5, 0x7531: 0x003a909a, 0x7532: 0x003a9099, 0x7533: 0x003a9097, + 0x7534: 0x003a9098, 0x7535: 0xe0001732, 0x7536: 0xe000172f, 0x7537: 0xe0001738, + 0x7538: 0xe0001735, 0x7539: 0xe000173e, 0x753a: 0xe000173b, 0x753b: 0xf0001a1a, + 0x753c: 0xf0001919, 0x753f: 0xa0000000, + // Block 0x1d5, offset 0x7540 + 0x7541: 0x40409a20, 0x7542: 0x40409820, 0x7543: 0x40409c20, + 0x7545: 0x40407c20, 0x7546: 0x40407e20, 0x7547: 0x40408020, + 0x7548: 0x40408220, 0x7549: 0x40408420, 0x754a: 0x40408620, 0x754b: 0x40408820, + 0x754c: 0x40408c20, 0x754f: 0x40409020, + 0x7550: 0x40409220, 0x7553: 0x40409420, + 0x7554: 0x40409620, 0x7555: 0xc33108b1, 0x7556: 0x40409a20, 0x7557: 0x40409c20, + 0x7558: 0x40409e20, 0x7559: 0x4040a020, 0x755a: 0x4040a220, 0x755b: 0x4040a420, + 0x755c: 0x4040a620, 0x755d: 0x4040a820, 0x755e: 0x4040aa20, 0x755f: 0x4040ac20, + 0x7560: 0x4040ae20, 0x7561: 0x4040b020, 0x7562: 0x4040b220, 0x7563: 0x4040b420, + 0x7564: 0xc32f0851, 0x7565: 0x4040b820, 0x7566: 0x4040ba20, 0x7567: 0x4040bc20, + 0x7568: 0x4040be20, 0x756a: 0x4040c020, 0x756b: 0x4040c220, + 0x756c: 0x4040c420, 0x756d: 0x4040c620, 0x756e: 0x4040c820, 0x756f: 0x4040ca20, + 0x7570: 0x4040cc20, 0x7572: 0x4040d020, + 0x7576: 0x4040d420, 0x7577: 0x4040d620, + 0x7578: 0x4040d820, 0x7579: 0x4040da20, + 0x757c: 0xa070f102, 0x757d: 0x4040dc20, 0x757e: 0x4040de20, 0x757f: 0x4040e020, + // Block 0x1d6, offset 0x7580 + 0x7580: 0x4040e220, 0x7581: 0x4040e420, 0x7582: 0x4040e620, 0x7583: 0x4040e820, + 0x7584: 0x4040ea20, 0x7587: 0xc05a0191, + 0x7588: 0x4040f220, 0x758b: 0x4040f420, + 0x758c: 0x4040f620, 0x758d: 0x8209207c, 0x758e: 0x4040b420, + 0x7597: 0x4040fa20, + 0x759c: 0xe000183f, 0x759d: 0xe0001842, 0x759f: 0xe0001848, + 0x75a0: 0x40408a20, 0x75a1: 0x40408e20, 0x75a2: 0x4040ec20, 0x75a3: 0x4040ee20, + 0x75a6: 0xe000016d, 0x75a7: 0xe00001fb, + 0x75a8: 0xe0000316, 0x75a9: 0xe00003f0, 0x75aa: 0xe00004cb, 0x75ab: 0xe0000595, + 0x75ac: 0xe0000660, 0x75ad: 0xe0000708, 0x75ae: 0xe00007b4, 0x75af: 0xe0000859, + 0x75b0: 0x4040ce20, 0x75b1: 0x4040d220, 0x75b2: 0x4027e820, 0x75b3: 0x4027ea20, + 0x75b4: 0x40283020, 0x75b5: 0x40283220, 0x75b6: 0x40283420, 0x75b7: 0x40283620, + 0x75b8: 0x40283820, 0x75b9: 0x40283a20, 0x75ba: 0x40073a20, 0x75bb: 0x4027ec20, + // Block 0x1d7, offset 0x75c0 + 0x75c0: 0xa0000000, 0x75c1: 0xa0000000, 0x75c2: 0xa0000000, 0x75c3: 0xa0000000, + 0x75c4: 0xa0000000, 0x75c5: 0xa0000000, 0x75c6: 0xa0000000, 0x75c7: 0xa0000000, + 0x75c8: 0xa0000000, 0x75c9: 0x40020020, 0x75ca: 0x40020220, 0x75cb: 0x40020420, + 0x75cc: 0x40020620, 0x75cd: 0x40020820, 0x75ce: 0xa0000000, 0x75cf: 0xa0000000, + 0x75d0: 0xa0000000, 0x75d1: 0xa0000000, 0x75d2: 0xa0000000, 0x75d3: 0xa0000000, + 0x75d4: 0xa0000000, 0x75d5: 0xa0000000, 0x75d6: 0xa0000000, 0x75d7: 0xa0000000, + 0x75d8: 0xa0000000, 0x75d9: 0xa0000000, 0x75da: 0xa0000000, 0x75db: 0xa0000000, + 0x75dc: 0xa0000000, 0x75dd: 0xa0000000, 0x75de: 0xa0000000, 0x75df: 0xa0000000, + 0x75e0: 0x40021220, 0x75e1: 0x4002ba20, 0x75e2: 0x4003e020, 0x75e3: 0x4004ea20, + 0x75e4: 0x4027de20, 0x75e5: 0x4004ec20, 0x75e6: 0x4004e620, 0x75e7: 0x4003d220, + 0x75e8: 0x4003f420, 0x75e9: 0x4003f620, 0x75ea: 0x4004d820, 0x75eb: 0x40093820, + 0x75ec: 0x40024020, 0x75ed: 0x40021a20, 0x75ee: 0x4002e420, 0x75ef: 0x4004e220, + 0x75f0: 0x4029cc20, 0x75f1: 0x4029ce20, 0x75f2: 0x4029d020, 0x75f3: 0x4029d220, + 0x75f4: 0x4029d420, 0x75f5: 0x4029d620, 0x75f6: 0x4029d820, 0x75f7: 0x4029da20, + 0x75f8: 0x4029dc20, 0x75f9: 0x4029de20, 0x75fa: 0x40026c20, 0x75fb: 0x40026220, + 0x75fc: 0x40094020, 0x75fd: 0x40094220, 0x75fe: 0x40094420, 0x75ff: 0x4002c420, + // Block 0x1d8, offset 0x7600 + 0x7600: 0x4004d620, 0x7601: 0x002bde88, 0x7602: 0x002c0a88, 0x7603: 0xc3350911, + 0x7604: 0x002c6288, 0x7605: 0x002c9888, 0x7606: 0x002d0888, 0x7607: 0xc33900d1, + 0x7608: 0x002d6888, 0x7609: 0xc33b0931, 0x760a: 0x002dcc88, 0x760b: 0x002dfe88, + 0x760c: 0xc0030002, 0x760d: 0x002e8288, 0x760e: 0x002e9e88, 0x760f: 0xc33f0071, + 0x7610: 0x002f2c88, 0x7611: 0x002e0083, 0x7612: 0x002f7a88, 0x7613: 0xc3430911, + 0x7614: 0x00302c88, 0x7615: 0xc3470071, 0x7616: 0x0030be88, 0x7617: 0x0030e288, + 0x7618: 0x002d6a83, 0x7619: 0x00310088, 0x761a: 0x00312a88, 0x761b: 0x4003f820, + 0x761c: 0x4004e420, 0x761d: 0x4003fa20, 0x761e: 0x40062420, 0x761f: 0x40021620, + 0x7620: 0x40061e20, 0x7621: 0x402bde20, 0x7622: 0x402c0a20, 0x7623: 0xc3330911, + 0x7624: 0x402c6220, 0x7625: 0x402c9820, 0x7626: 0x402d0820, 0x7627: 0xc33700d1, + 0x7628: 0x402d6820, 0x7629: 0x402d9a20, 0x762a: 0x402dcc20, 0x762b: 0x402dfe20, + 0x762c: 0xc0000002, 0x762d: 0x402e8220, 0x762e: 0x402e9e20, 0x762f: 0xc33d0071, + 0x7630: 0x402f2c20, 0x7631: 0x402e0020, 0x7632: 0x402f7a20, 0x7633: 0xc3410911, + 0x7634: 0x40302c20, 0x7635: 0xc3450071, 0x7636: 0x4030be20, 0x7637: 0x4030e220, + 0x7638: 0x402d6a20, 0x7639: 0x40310020, 0x763a: 0x40312a20, 0x763b: 0x4003fc20, + 0x763c: 0x40094820, 0x763d: 0x4003fe20, 0x763e: 0x40094c20, 0x763f: 0xa0000000, + // Block 0x1d9, offset 0x7640 + 0x7640: 0xe00008f5, 0x7641: 0xe00008ef, 0x7642: 0xe0000921, 0x7643: 0xe0000969, + 0x7644: 0xe000095b, 0x7645: 0xe000094d, 0x7646: 0xe00009dd, 0x7647: 0x002c3c83, + 0x7648: 0xe0000ae8, 0x7649: 0xe0000ae2, 0x764a: 0xe0000af4, 0x764b: 0xe0000b20, + 0x764c: 0xe0002918, 0x764d: 0xe0002915, 0x764e: 0xe000291e, 0x764f: 0xe0002924, + 0x7650: 0xe0000ab3, 0x7651: 0xe0000d63, 0x7652: 0xe0000d9a, 0x7653: 0xe0000d94, + 0x7654: 0xe0000da6, 0x7655: 0xe0000de6, 0x7656: 0x002ee483, 0x7657: 0x40093e20, + 0x7658: 0xe0000e12, 0x7659: 0xe0000fe1, 0x765a: 0xe0000fdb, 0x765b: 0xe0000fed, + 0x765c: 0x00306e83, 0x765d: 0xe0001102, 0x765e: 0x00318888, 0x765f: 0xe0000f7b, + 0x7660: 0xe00008f2, 0x7661: 0xe00008ec, 0x7662: 0xe000091e, 0x7663: 0xe0000966, + 0x7664: 0xe0000958, 0x7665: 0xe000094a, 0x7666: 0xe00009d5, 0x7667: 0x402c3c20, + 0x7668: 0xe0000ae5, 0x7669: 0xe0000adf, 0x766a: 0xe0000af1, 0x766b: 0xe0000b1d, + 0x766c: 0xe0000c28, 0x766d: 0xe0000c22, 0x766e: 0xe0000c34, 0x766f: 0xe0000c40, + 0x7670: 0xe0000aad, 0x7671: 0xe0000d60, 0x7672: 0xe0000d97, 0x7673: 0xe0000d91, + 0x7674: 0xe0000da3, 0x7675: 0xe0000de3, 0x7676: 0x402ee420, 0x7677: 0x40093c20, + 0x7678: 0xe0000e0f, 0x7679: 0xe0000fde, 0x767a: 0xe0000fd8, 0x767b: 0xe0000fea, + 0x767c: 0x40306e20, 0x767d: 0xe00010ff, 0x767e: 0x40318820, 0x767f: 0xe0001114, + // Block 0x1da, offset 0x7680 + 0x7680: 0xe0000983, 0x7681: 0xe0000980, 0x7682: 0xe00008fb, 0x7683: 0xe00008f8, + 0x7684: 0xe000097d, 0x7685: 0xe000097a, 0x7686: 0xe0000a38, 0x7687: 0xe0000a35, + 0x7688: 0xe0000a3e, 0x7689: 0xe0000a3b, 0x768a: 0xe0000a4a, 0x768b: 0xe0000a47, + 0x768c: 0xe0000a44, 0x768d: 0xe0000a41, 0x768e: 0xe0000a86, 0x768f: 0xe0000a83, + 0x7690: 0xe0000aaa, 0x7691: 0xe0000aa7, 0x7692: 0xe0000b46, 0x7693: 0xe0000b43, + 0x7694: 0xe0000aee, 0x7695: 0xe0000aeb, 0x7696: 0xe0000b2c, 0x7697: 0xe0000b29, + 0x7698: 0xe0000b40, 0x7699: 0xe0000b3d, 0x769a: 0xe0000b1a, 0x769b: 0xe0000b17, + 0x769c: 0xe0000bb8, 0x769d: 0xe0000bb5, 0x769e: 0x002d2483, 0x769f: 0x402d2420, + 0x76a0: 0xe0000bc4, 0x76a1: 0xe0000bc1, 0x76a2: 0xe0000bca, 0x76a3: 0xe0000bc7, + 0x76a4: 0xe0000bee, 0x76a5: 0xe0000beb, 0x76a6: 0xe0000c1b, 0x76a7: 0xe0000c18, + 0x76a8: 0xe000292b, 0x76a9: 0xe0000c4e, 0x76aa: 0xe0002931, 0x76ab: 0xe0000c5d, + 0x76ac: 0xe000291b, 0x76ad: 0xe0000c2e, 0x76ae: 0xe000292e, 0x76af: 0xe0000c57, + 0x76b0: 0x002d9a83, 0x76b1: 0x402d9820, 0x76b2: 0xe00027e2, 0x76b3: 0xf0000404, + 0x76b4: 0xe0000c8a, 0x76b5: 0xe0000c87, 0x76b6: 0xe0000c9f, 0x76b7: 0xe0000c9c, + 0x76b8: 0x402f7220, 0x76b9: 0xe0000ccc, 0x76ba: 0xe0000cc9, 0x76bb: 0xe0000cd8, + 0x76bc: 0xe0000cd5, 0x76bd: 0xe0000cd2, 0x76be: 0xe0000ccf, 0x76bf: 0xe0000d04, + // Block 0x1db, offset 0x76c0 + 0x76c0: 0xe0000cfe, 0x76c1: 0xe0000cf8, 0x76c2: 0xe0000cf5, 0x76c3: 0xe0000d51, + 0x76c4: 0xe0000d4e, 0x76c5: 0xe0000d6f, 0x76c6: 0xe0000d6c, 0x76c7: 0xe0000d5d, + 0x76c8: 0xe0000d5a, 0x76c9: 0xf0000404, 0x76ca: 0x002eda88, 0x76cb: 0x402eda20, + 0x76cc: 0xe0000e2e, 0x76cd: 0xe0000e2b, 0x76ce: 0xe0000da0, 0x76cf: 0xe0000d9d, + 0x76d0: 0xe0000de0, 0x76d1: 0xe0000ddd, 0x76d2: 0xe0000e93, 0x76d3: 0xe0000e8f, + 0x76d4: 0xe0000eca, 0x76d5: 0xe0000ec7, 0x76d6: 0xe0000edc, 0x76d7: 0xe0000ed9, + 0x76d8: 0xe0000ed0, 0x76d9: 0xe0000ecd, 0x76da: 0xe0000f1f, 0x76db: 0xe0000f1c, + 0x76dc: 0xe0000f2d, 0x76dd: 0xe0000f2a, 0x76de: 0x002fe883, 0x76df: 0x402fe820, + 0x76e0: 0xe0000f33, 0x76e1: 0xe0000f30, 0x76e2: 0xe0000f99, 0x76e3: 0xe0000f96, + 0x76e4: 0xe0000f8a, 0x76e5: 0xe0000f87, 0x76e6: 0x00303688, 0x76e7: 0x40303620, + 0x76e8: 0xe000102b, 0x76e9: 0xe0001028, 0x76ea: 0xe000103f, 0x76eb: 0xe000103c, + 0x76ec: 0xe0000fe7, 0x76ed: 0xe0000fe4, 0x76ee: 0xe0000ff9, 0x76ef: 0xe0000ff6, + 0x76f0: 0xe0001025, 0x76f1: 0xe0001022, 0x76f2: 0xe0001039, 0x76f3: 0xe0001036, + 0x76f4: 0xe00010d8, 0x76f5: 0xe00010d5, 0x76f6: 0xe000110e, 0x76f7: 0xe000110b, + 0x76f8: 0xe0001117, 0x76f9: 0xe000113b, 0x76fa: 0xe0001138, 0x76fb: 0xe000114d, + 0x76fc: 0xe000114a, 0x76fd: 0xe0001147, 0x76fe: 0xe0001144, 0x76ff: 0xe0000f64, + // Block 0x1dc, offset 0x7700 + 0x7700: 0x402c1a20, 0x7701: 0x002c2a88, 0x7702: 0x002c3288, 0x7703: 0x402c3220, + 0x7704: 0x0031c488, 0x7705: 0x4031c420, 0x7706: 0x002efa88, 0x7707: 0x002c4e88, + 0x7708: 0x402c4e20, 0x7709: 0x002c7288, 0x770a: 0x002c7a88, 0x770b: 0x002c8488, + 0x770c: 0x402c8420, 0x770d: 0xe000115c, 0x770e: 0x002cae88, 0x770f: 0x002c9a83, + 0x7710: 0x002cc288, 0x7711: 0x002d1688, 0x7712: 0x402d1620, 0x7713: 0x002d4488, + 0x7714: 0x002d5888, 0x7715: 0x402d7820, 0x7716: 0x002dc288, 0x7717: 0x002db688, + 0x7718: 0x002e0a88, 0x7719: 0x402e0a20, 0x771a: 0x402e3820, 0x771b: 0x402e7220, + 0x771c: 0x0030a088, 0x771d: 0x002eb488, 0x771e: 0x402ebc20, 0x771f: 0x002f1088, + 0x7720: 0xe0000e56, 0x7721: 0xe0000e53, 0x7722: 0x002d6088, 0x7723: 0x402d6020, + 0x7724: 0x002f3e88, 0x7725: 0x402f3e20, 0x7726: 0x002f8288, 0x7727: 0x0031b488, + 0x7728: 0x4031b420, 0x7729: 0x00300888, 0x772a: 0x40301220, 0x772b: 0x40304220, + 0x772c: 0x00304a88, 0x772d: 0x40304a20, 0x772e: 0x00305288, 0x772f: 0xe000105f, + 0x7730: 0xe000105c, 0x7731: 0x0030b488, 0x7732: 0x0030cc88, 0x7733: 0x00311888, + 0x7734: 0x40311820, 0x7735: 0x00313488, 0x7736: 0x40313420, 0x7737: 0x00316488, + 0x7738: 0x00316e88, 0x7739: 0x40316e20, 0x773a: 0x40317820, 0x773b: 0x4031a620, + 0x773c: 0x0031bc88, 0x773d: 0x4031bc20, 0x773e: 0xe0000fc9, 0x773f: 0x40319420, + // Block 0x1dd, offset 0x7740 + 0x7740: 0x40321220, 0x7741: 0x40321a20, 0x7742: 0x40322220, 0x7743: 0x40322a20, + 0x7744: 0xe0000ad5, 0x7745: 0xe0000ad1, 0x7746: 0xe0000acd, 0x7747: 0xf0000a0a, + 0x7748: 0xf000040a, 0x7749: 0xf0000404, 0x774a: 0xf0000a0a, 0x774b: 0xf000040a, + 0x774c: 0xf0000404, 0x774d: 0xe0000947, 0x774e: 0xe0000944, 0x774f: 0xe0002921, + 0x7750: 0xe0000c3a, 0x7751: 0xe0000dcc, 0x7752: 0xe0000dc9, 0x7753: 0xe0000ff3, + 0x7754: 0xe0000ff0, 0x7755: 0xe0002964, 0x7756: 0xe0002961, 0x7757: 0xe0002952, + 0x7758: 0xe000294f, 0x7759: 0xe000295e, 0x775a: 0xe000295b, 0x775b: 0xe0002958, + 0x775c: 0xe0002955, 0x775d: 0x402cae20, 0x775e: 0xe0000962, 0x775f: 0xe000095e, + 0x7760: 0xe0000976, 0x7761: 0xe0000972, 0x7762: 0xe00009f4, 0x7763: 0xe00009ef, + 0x7764: 0x002d3a88, 0x7765: 0x402d3a20, 0x7766: 0xe0000bbe, 0x7767: 0xe0000bbb, + 0x7768: 0xe0000c99, 0x7769: 0xe0000c96, 0x776a: 0xe0000e20, 0x776b: 0xe0000e1d, + 0x776c: 0xe0000e27, 0x776d: 0xe0000e23, 0x776e: 0xe0001162, 0x776f: 0xe000115f, + 0x7770: 0xe0000c8d, 0x7771: 0xf0000a0a, 0x7772: 0xf000040a, 0x7773: 0xf0000404, + 0x7774: 0xe0000bac, 0x7775: 0xe0000ba9, 0x7776: 0x002d7888, 0x7777: 0x00319488, + 0x7778: 0xe0000d57, 0x7779: 0xe0000d54, 0x777a: 0xe0000954, 0x777b: 0xe0000950, + 0x777c: 0xe00009ea, 0x777d: 0xe00009e5, 0x777e: 0xe0000e19, 0x777f: 0xe0000e15, + // Block 0x1de, offset 0x7780 + 0x7780: 0xe000098f, 0x7781: 0xe000098c, 0x7782: 0xe0000995, 0x7783: 0xe0000992, + 0x7784: 0xe0000b62, 0x7785: 0xe0000b5f, 0x7786: 0xe0000b68, 0x7787: 0xe0000b65, + 0x7788: 0xe0002937, 0x7789: 0xe0000c69, 0x778a: 0xe000293a, 0x778b: 0xe0000c6f, + 0x778c: 0xe0000e4a, 0x778d: 0xe0000e47, 0x778e: 0xe0000e50, 0x778f: 0xe0000e4d, + 0x7790: 0xe0000ee8, 0x7791: 0xe0000ee5, 0x7792: 0xe0000eee, 0x7793: 0xe0000eeb, + 0x7794: 0xe0001053, 0x7795: 0xe0001050, 0x7796: 0xe0001059, 0x7797: 0xe0001056, + 0x7798: 0xe0000f61, 0x7799: 0xe0000f5e, 0x779a: 0xe0000fa5, 0x779b: 0xe0000fa2, + 0x779c: 0x00312288, 0x779d: 0x40312220, 0x779e: 0xe0000bf4, 0x779f: 0xe0000bf1, + 0x77a0: 0x002ebc88, 0x77a1: 0x402c8c20, 0x77a2: 0x002f2288, 0x77a3: 0x402f2220, + 0x77a4: 0x00314088, 0x77a5: 0x40314020, 0x77a6: 0xe000096f, 0x77a7: 0xe000096c, + 0x77a8: 0xe0000b32, 0x77a9: 0xe0000b2f, 0x77aa: 0xe000294c, 0x77ab: 0xe0002949, + 0x77ac: 0xe0000dfd, 0x77ad: 0xe0000df9, 0x77ae: 0xe0000e04, 0x77af: 0xe0000e01, + 0x77b0: 0xe0000e0b, 0x77b1: 0xe0000e07, 0x77b2: 0xe0001129, 0x77b3: 0xe0001126, + 0x77b4: 0x402e5e20, 0x77b5: 0x402ed020, 0x77b6: 0x40305a20, 0x77b7: 0x402dd420, + 0x77b8: 0xe0000abf, 0x77b9: 0xe0000ec4, 0x77ba: 0x002be888, 0x77bb: 0x002c4488, + 0x77bc: 0x402c4420, 0x77bd: 0x002e3888, 0x77be: 0x00303e88, 0x77bf: 0x402ffc20, + // Block 0x1df, offset 0x77c0 + 0x77c0: 0x40315820, 0x77c1: 0x0031d488, 0x77c2: 0x4031d420, 0x77c3: 0x002c1a88, + 0x77c4: 0x00307c88, 0x77c5: 0x0030da88, 0x77c6: 0x002ca288, 0x77c7: 0x402ca220, + 0x77c8: 0x002dde88, 0x77c9: 0x402dde20, 0x77ca: 0x002f6a88, 0x77cb: 0x402f6a20, + 0x77cc: 0x002f8e88, 0x77cd: 0x402f8e20, 0x77ce: 0x00311088, 0x77cf: 0x40311020, + 0x77d0: 0x402bf020, 0x77d1: 0x402bf820, 0x77d2: 0x402c0220, 0x77d3: 0x402c2a20, + 0x77d4: 0x402efa20, 0x77d5: 0x402c5620, 0x77d6: 0x402c7220, 0x77d7: 0x402c7a20, + 0x77d8: 0x402ccc20, 0x77d9: 0x402c9a20, 0x77da: 0x402cd420, 0x77db: 0x402cc220, + 0x77dc: 0x402cdc20, 0x77dd: 0x402ce820, 0x77de: 0x402cf020, 0x77df: 0x402dee20, + 0x77e0: 0x402d4420, 0x77e1: 0x402d2a20, 0x77e2: 0x402d3220, 0x77e3: 0x402d5820, + 0x77e4: 0x402d0020, 0x77e5: 0x40308820, 0x77e6: 0x402d8020, 0x77e7: 0x402d8e20, + 0x77e8: 0x402db620, 0x77e9: 0x402dc220, 0x77ea: 0x402daa20, 0x77eb: 0x402e4220, + 0x77ec: 0x402e4a20, 0x77ed: 0x402e5420, 0x77ee: 0x402e6820, 0x77ef: 0x4030a020, + 0x77f0: 0x4030ac20, 0x77f1: 0x402e9020, 0x77f2: 0x402eb420, 0x77f3: 0x402ec820, + 0x77f4: 0x402ea620, 0x77f5: 0x402f1020, 0x77f6: 0x402eee20, 0x77f7: 0x402f1a20, + 0x77f8: 0x402f4c20, 0x77f9: 0x402f9820, 0x77fa: 0x402fa220, 0x77fb: 0x402fac20, + 0x77fc: 0x402fb620, 0x77fd: 0x402fbe20, 0x77fe: 0x402fc620, 0x77ff: 0x402fd020, + // Block 0x1e0, offset 0x7800 + 0x7800: 0xe00009b1, 0x7801: 0xe00009ae, 0x7802: 0xe0000a22, 0x7803: 0xe0000a1f, + 0x7804: 0xe0000a28, 0x7805: 0xe0000a25, 0x7806: 0xe0000a2e, 0x7807: 0xe0000a2b, + 0x7808: 0xe000260e, 0x7809: 0xe000260b, 0x780a: 0xe0000a8c, 0x780b: 0xe0000a89, + 0x780c: 0xe0000a98, 0x780d: 0xe0000a95, 0x780e: 0xe0000aa4, 0x780f: 0xe0000aa1, + 0x7810: 0xe0000a92, 0x7811: 0xe0000a8f, 0x7812: 0xe0000a9e, 0x7813: 0xe0000a9b, + 0x7814: 0xe0000b55, 0x7815: 0xe0000b51, 0x7816: 0xe0000b4d, 0x7817: 0xe0000b49, + 0x7818: 0xe0000b7c, 0x7819: 0xe0000b79, 0x781a: 0xe0000b82, 0x781b: 0xe0000b7f, + 0x781c: 0xe0000b39, 0x781d: 0xe0000b35, 0x781e: 0xe0000b8c, 0x781f: 0xe0000b89, + 0x7820: 0xe0000bd0, 0x7821: 0xe0000bcd, 0x7822: 0xe0000c00, 0x7823: 0xe0000bfd, + 0x7824: 0xe0000c0c, 0x7825: 0xe0000c09, 0x7826: 0xe0000bfa, 0x7827: 0xe0000bf7, + 0x7828: 0xe0000c06, 0x7829: 0xe0000c03, 0x782a: 0xe0000c12, 0x782b: 0xe0000c0f, + 0x782c: 0xe0002940, 0x782d: 0xe0000c7b, 0x782e: 0xe0002927, 0x782f: 0xe0000c46, + 0x7830: 0xe0000c93, 0x7831: 0xe0000c90, 0x7832: 0xe0000cab, 0x7833: 0xe0000ca8, + 0x7834: 0xe0000cb1, 0x7835: 0xe0000cae, 0x7836: 0xe0000cde, 0x7837: 0xe0000cdb, + 0x7838: 0xe0000ce5, 0x7839: 0xe0000ce1, 0x783a: 0xe0000cf2, 0x783b: 0xe0000cef, + 0x783c: 0xe0000cec, 0x783d: 0xe0000ce9, 0x783e: 0xe0000d1e, 0x783f: 0xe0000d1b, + // Block 0x1e1, offset 0x7840 + 0x7840: 0xe0000d24, 0x7841: 0xe0000d21, 0x7842: 0xe0000d2a, 0x7843: 0xe0000d27, + 0x7844: 0xe0000d69, 0x7845: 0xe0000d66, 0x7846: 0xe0000d7b, 0x7847: 0xe0000d78, + 0x7848: 0xe0000d87, 0x7849: 0xe0000d84, 0x784a: 0xe0000d81, 0x784b: 0xe0000d7e, + 0x784c: 0xe0000ded, 0x784d: 0xe0000de9, 0x784e: 0xe0002946, 0x784f: 0xe0002943, + 0x7850: 0xe0000e3d, 0x7851: 0xe0000e39, 0x7852: 0xe0000e35, 0x7853: 0xe0000e31, + 0x7854: 0xe0000ea7, 0x7855: 0xe0000ea4, 0x7856: 0xe0000ead, 0x7857: 0xe0000eaa, + 0x7858: 0xe0000ed6, 0x7859: 0xe0000ed3, 0x785a: 0xe0000ef4, 0x785b: 0xe0000ef1, + 0x785c: 0xe0000efb, 0x785d: 0xe0000ef7, 0x785e: 0xe0000f02, 0x785f: 0xe0000eff, + 0x7860: 0xe0000f41, 0x7861: 0xe0000f3e, 0x7862: 0xe0000f53, 0x7863: 0xe0000f50, + 0x7864: 0xe0000f26, 0x7865: 0xe0000f22, 0x7866: 0xe0000f3a, 0x7867: 0xe0000f36, + 0x7868: 0xe0000f5a, 0x7869: 0xe0000f56, 0x786a: 0xe0000f93, 0x786b: 0xe0000f90, + 0x786c: 0xe0000f9f, 0x786d: 0xe0000f9c, 0x786e: 0xe0000fb1, 0x786f: 0xe0000fae, + 0x7870: 0xe0000fab, 0x7871: 0xe0000fa8, 0x7872: 0xe0001093, 0x7873: 0xe0001090, + 0x7874: 0xe000109f, 0x7875: 0xe000109c, 0x7876: 0xe0001099, 0x7877: 0xe0001096, + 0x7878: 0xe0001032, 0x7879: 0xe000102e, 0x787a: 0xe0002964, 0x787b: 0xe0002961, + 0x787c: 0xe00010a9, 0x787d: 0xe00010a6, 0x787e: 0xe00010af, 0x787f: 0xe00010ac, + // Block 0x1e2, offset 0x7880 + 0x7880: 0xe00010d2, 0x7881: 0xe00010cf, 0x7882: 0xe00010cc, 0x7883: 0xe00010c9, + 0x7884: 0xe00010e1, 0x7885: 0xe00010de, 0x7886: 0xe00010e7, 0x7887: 0xe00010e4, + 0x7888: 0xe00010ed, 0x7889: 0xe00010ea, 0x788a: 0xe0002912, 0x788b: 0xe000290f, + 0x788c: 0xe000290c, 0x788d: 0xe0002909, 0x788e: 0xe0001123, 0x788f: 0xe0001120, + 0x7890: 0xe0001141, 0x7891: 0xe000113e, 0x7892: 0xe0001153, 0x7893: 0xe0001150, + 0x7894: 0xe0001159, 0x7895: 0xe0001156, 0x7896: 0xe0000c15, 0x7897: 0xe0000f8d, + 0x7898: 0xe00010db, 0x7899: 0xe0001111, 0x789a: 0xf0000404, 0x789b: 0xe0000f70, + 0x789c: 0x40300420, 0x789d: 0x40300620, 0x789e: 0xe0000f7f, 0x789f: 0x402c9620, + 0x78a0: 0xe000099b, 0x78a1: 0xe0000998, 0x78a2: 0xe0000989, 0x78a3: 0xe0000986, + 0x78a4: 0xe0000928, 0x78a5: 0xe0000924, 0x78a6: 0xe0000930, 0x78a7: 0xe000092c, + 0x78a8: 0xe0000940, 0x78a9: 0xe000093c, 0x78aa: 0xe0000938, 0x78ab: 0xe0000934, + 0x78ac: 0xe00009aa, 0x78ad: 0xe00009a6, 0x78ae: 0xe0000902, 0x78af: 0xe00008fe, + 0x78b0: 0xe000090a, 0x78b1: 0xe0000906, 0x78b2: 0xe000091a, 0x78b3: 0xe0000916, + 0x78b4: 0xe0000912, 0x78b5: 0xe000090e, 0x78b6: 0xe00009a2, 0x78b7: 0xe000099e, + 0x78b8: 0xe0000b6e, 0x78b9: 0xe0000b6b, 0x78ba: 0xe0000b5c, 0x78bb: 0xe0000b59, + 0x78bc: 0xe0000b26, 0x78bd: 0xe0000b23, 0x78be: 0xe0000afb, 0x78bf: 0xe0000af7, + // Block 0x1e3, offset 0x78c0 + 0x78c0: 0xe0000b03, 0x78c1: 0xe0000aff, 0x78c2: 0xe0000b13, 0x78c3: 0xe0000b0f, + 0x78c4: 0xe0000b0b, 0x78c5: 0xe0000b07, 0x78c6: 0xe0000b75, 0x78c7: 0xe0000b71, + 0x78c8: 0xe0002934, 0x78c9: 0xe0000c63, 0x78ca: 0xe000293d, 0x78cb: 0xe0000c75, + 0x78cc: 0xe0000e84, 0x78cd: 0xe0000e81, 0x78ce: 0xe0000e44, 0x78cf: 0xe0000e41, + 0x78d0: 0xe0000dad, 0x78d1: 0xe0000da9, 0x78d2: 0xe0000db5, 0x78d3: 0xe0000db1, + 0x78d4: 0xe0000dc5, 0x78d5: 0xe0000dc1, 0x78d6: 0xe0000dbd, 0x78d7: 0xe0000db9, + 0x78d8: 0xe0000e8b, 0x78d9: 0xe0000e87, 0x78da: 0xe0000e5d, 0x78db: 0xe0000e59, + 0x78dc: 0xe0000e65, 0x78dd: 0xe0000e61, 0x78de: 0xe0000e75, 0x78df: 0xe0000e71, + 0x78e0: 0xe0000e6d, 0x78e1: 0xe0000e69, 0x78e2: 0xe0000e7d, 0x78e3: 0xe0000e79, + 0x78e4: 0xe000108d, 0x78e5: 0xe000108a, 0x78e6: 0xe000104d, 0x78e7: 0xe000104a, + 0x78e8: 0xe0001066, 0x78e9: 0xe0001062, 0x78ea: 0xe000106e, 0x78eb: 0xe000106a, + 0x78ec: 0xe000107e, 0x78ed: 0xe000107a, 0x78ee: 0xe0001076, 0x78ef: 0xe0001072, + 0x78f0: 0xe0001086, 0x78f1: 0xe0001082, 0x78f2: 0xe0001108, 0x78f3: 0xe0001105, + 0x78f4: 0xe0001135, 0x78f5: 0xe0001132, 0x78f6: 0xe000112f, 0x78f7: 0xe000112c, + 0x78f8: 0xe000111d, 0x78f9: 0xe000111a, 0x78fa: 0xe0000d0a, 0x78fb: 0xe0000d07, + 0x78fc: 0x0030d888, 0x78fd: 0x4030d820, 0x78fe: 0x00312088, 0x78ff: 0x40312020, + // Block 0x1e4, offset 0x7900 + 0x7900: 0x00093685, 0x7901: 0x40083620, 0x7902: 0x40083820, 0x7903: 0x40083a20, + 0x7904: 0x40083c20, 0x7905: 0x002c628b, 0x7906: 0x002c6285, 0x7907: 0x002c9885, + 0x7908: 0x002d9a85, 0x7909: 0x002dcc85, 0x790a: 0x40083e20, 0x790b: 0x400a6e20, + 0x790c: 0x40084020, 0x790d: 0xe00009c4, 0x790e: 0x402d1e20, 0x790f: 0x40084220, + 0x7910: 0xe00002cb, 0x7911: 0xe00002d3, 0x7912: 0xe00002b2, 0x7913: 0xe00002bb, + 0x7914: 0xe00003cd, 0x7915: 0xe00002c3, 0x7916: 0xe00003d1, 0x7917: 0xe00004ab, + 0x7918: 0xe0000579, 0x7919: 0xe00002c7, 0x791a: 0xe0000640, 0x791b: 0xe00002cf, + 0x791c: 0xe00004af, 0x791d: 0xe0000644, 0x791e: 0xe0000798, 0x791f: 0xf0001e1e, + 0x7920: 0x002d9a8a, 0x7921: 0xe00027d4, 0x7922: 0xe00027db, 0x7923: 0xe00027ee, + 0x7924: 0x0030be8a, 0x7925: 0xe0002848, 0x7926: 0xe000284f, 0x7927: 0xe00010bb, + 0x7928: 0xe00027f4, 0x7929: 0x0030f68a, 0x792a: 0xe0002883, 0x792b: 0xe000288a, + 0x792c: 0x002e228a, 0x792d: 0x002c3a8a, 0x792e: 0x002c628a, 0x792f: 0x002e828a, + 0x7930: 0x002d9a84, 0x7931: 0xf0001f04, 0x7932: 0xf0000404, 0x7933: 0xf0001f04, + 0x7934: 0x0030be84, 0x7935: 0xf0001f04, 0x7936: 0xf0000404, 0x7937: 0xe00010b6, + 0x7938: 0xe00027f1, 0x7939: 0x0030f684, 0x793a: 0xe0002880, 0x793b: 0xe0002886, + 0x793c: 0x002e2284, 0x793d: 0x002c3a84, 0x793e: 0x002c6284, 0x793f: 0x002e8284, + // Block 0x1e5, offset 0x7940 + 0x7940: 0xe0000024, 0x7941: 0xe0000029, 0x7942: 0xe000002e, 0x7943: 0xe0000033, + 0x7944: 0xe0000038, 0x7945: 0xe000003d, 0x7946: 0xe0000042, 0x7947: 0xe0000047, + 0x7948: 0xf0001f04, 0x7949: 0xf0001f04, 0x794a: 0xf0001f04, 0x794b: 0xf0001f04, + 0x794c: 0xf0001f04, 0x794d: 0xf0001f04, 0x794e: 0xf0001f04, 0x794f: 0xf0001f04, + 0x7950: 0xf0001f04, 0x7951: 0xf0000404, 0x7952: 0xf0000404, 0x7953: 0xf0000404, + 0x7954: 0xf0000404, 0x7955: 0xf0000404, 0x7956: 0xf0000404, 0x7957: 0xf0000404, + 0x7958: 0xf0000404, 0x7959: 0xf0000404, 0x795a: 0xf0000404, 0x795b: 0xf0000404, + 0x795c: 0xf0000404, 0x795d: 0xf0000404, 0x795e: 0xf0000404, 0x795f: 0xf0000404, + 0x7960: 0xf0000404, 0x7961: 0xf0000404, 0x7962: 0xf0000404, 0x7963: 0xf0000404, + 0x7964: 0xf0000404, 0x7965: 0xf0000404, 0x7966: 0xf0000404, 0x7967: 0xf0000404, + 0x7968: 0xf0000404, 0x7969: 0xf0000404, 0x796a: 0xf0000404, 0x796b: 0xf0000404, + 0x796c: 0xe00024c7, 0x796d: 0xf0000404, 0x796e: 0xf0000404, 0x796f: 0xf0000404, + 0x7970: 0xf0000404, 0x7971: 0xf0000404, 0x7972: 0xf0000404, 0x7973: 0xe00024e7, + 0x7974: 0xf0000404, 0x7975: 0xf0000404, 0x7976: 0x002bde8c, 0x7977: 0x002c0a8c, + 0x7978: 0x002c3a8c, 0x7979: 0x002c628c, 0x797a: 0x002c988c, 0x797b: 0x002d088c, + 0x797c: 0x002d228c, 0x797d: 0x002d688c, 0x797e: 0x002d9a8c, 0x797f: 0x002dcc8c, + // Block 0x1e6, offset 0x7980 + 0x7980: 0xe000230b, 0x7981: 0xe00022f8, 0x7982: 0xe00022fc, 0x7983: 0xe0002311, + 0x7984: 0xe0002316, 0x7985: 0xe000231d, 0x7986: 0xe0002321, 0x7987: 0xe0002325, + 0x7988: 0xe000232b, 0x7989: 0xf0001c1c, 0x798a: 0xe0002330, 0x798b: 0xe000233c, + 0x798c: 0xe0002340, 0x798d: 0xe0002337, 0x798e: 0xe0002346, 0x798f: 0xe000234b, + 0x7990: 0xe000234f, 0x7991: 0xe0002353, 0x7992: 0xf0001c1c, 0x7993: 0xe000235e, + 0x7994: 0xe0002358, 0x7995: 0xf0001c1c, 0x7996: 0xe0002363, 0x7997: 0xe000236d, + 0x7998: 0xf0001f04, 0x7999: 0xf0001f04, 0x799a: 0xf0001f04, 0x799b: 0xf0001f04, + 0x799c: 0xf0001f04, 0x799d: 0xf0001f04, 0x799e: 0xf0001f04, 0x799f: 0xf0001f04, + 0x79a0: 0xf0001f04, 0x79a1: 0xf0001f04, 0x79a2: 0xf0000404, 0x79a3: 0xf0000404, + 0x79a4: 0xf0000404, 0x79a5: 0xf0000404, 0x79a6: 0xf0000404, 0x79a7: 0xf0000404, + 0x79a8: 0xf0000404, 0x79a9: 0xf0000404, 0x79aa: 0xf0000404, 0x79ab: 0xf0000404, + 0x79ac: 0xf0000404, 0x79ad: 0xf0000404, 0x79ae: 0xf0000404, 0x79af: 0xf0000404, + 0x79b0: 0xf0000404, 0x79b1: 0xe0000c1e, 0x79b2: 0xf0001c1c, 0x79b3: 0xf0001d1d, + 0x79b4: 0xe0000a31, 0x79b5: 0xf0001d1c, 0x79b6: 0xf0001c1c, 0x79b7: 0xf0001c1c, + 0x79b8: 0xe0000ac2, 0x79b9: 0xe0000ac6, 0x79ba: 0xe00027e8, 0x79bb: 0xf0001c1c, + 0x79bc: 0xf0001c1c, 0x79bd: 0xf0001c1c, 0x79be: 0xf0001c1c, 0x79bf: 0xe0002431, + // Block 0x1e7, offset 0x79c0 + 0x79c0: 0xf0001d1c, 0x79c1: 0xf0001d1d, 0x79c2: 0xe00009b7, 0x79c3: 0xe00024f3, + 0x79c4: 0xf0001c1c, 0x79c5: 0xf0001c1c, 0x79c6: 0xe0000a66, 0x79c7: 0xe0000a7a, + 0x79c8: 0xf0001d1c, 0x79c9: 0xf0001c1d, 0x79ca: 0xf0001c1c, 0x79cb: 0xf0001d1d, + 0x79cc: 0xf0001c1c, 0x79cd: 0xf0001d1d, 0x79ce: 0xf0001d1d, 0x79cf: 0xf0001c1c, + 0x79d0: 0xf0001c1c, 0x79d1: 0xf0001c1c, 0x79d2: 0xe0000d0d, 0x79d3: 0xe0002818, + 0x79d4: 0xf0001c1c, 0x79d5: 0xe0000d3a, 0x79d6: 0xe0000d46, 0x79d7: 0xf0001d1d, + 0x79d8: 0xe0000eb0, 0x79d9: 0xe0000eb8, 0x79da: 0xf0001d1d, 0x79db: 0xf0001c1c, + 0x79dc: 0xf0001c1d, 0x79dd: 0xf0001c1d, 0x79de: 0xe00010b2, 0x79df: 0xe00009c8, + 0x79e0: 0xf0001f04, 0x79e1: 0xf0001f04, 0x79e2: 0xf0001f04, 0x79e3: 0xf0001f04, + 0x79e4: 0xf0001f04, 0x79e5: 0xf0001f04, 0x79e6: 0xf0001f04, 0x79e7: 0xf0001f04, + 0x79e8: 0xf0001f04, 0x79e9: 0xf0000404, 0x79ea: 0xf0000404, 0x79eb: 0xf0000404, + 0x79ec: 0xf0000404, 0x79ed: 0xf0000404, 0x79ee: 0xf0000404, 0x79ef: 0xf0000404, + 0x79f0: 0xf0000404, 0x79f1: 0xf0000404, 0x79f2: 0xf0000404, 0x79f3: 0xf0000404, + 0x79f4: 0xf0000404, 0x79f5: 0xf0000404, 0x79f6: 0xf0000404, 0x79f7: 0xf0000404, + 0x79f8: 0xf0000404, 0x79f9: 0xf0000404, 0x79fa: 0xf0000404, 0x79fb: 0xf0000404, + 0x79fc: 0xf0000404, 0x79fd: 0xf0000404, 0x79fe: 0xf0000404, 0x79ff: 0xe0000bdf, + // Block 0x1e8, offset 0x7a00 + 0x7a00: 0xf0001f04, 0x7a01: 0xf0001f04, 0x7a02: 0xf0001f04, 0x7a03: 0xf0001f04, + 0x7a04: 0xf0001f04, 0x7a05: 0xf0001f04, 0x7a06: 0xf0001f04, 0x7a07: 0xf0001f04, + 0x7a08: 0xf0001f04, 0x7a09: 0xf0001f04, 0x7a0a: 0xf0001f04, + 0x7a10: 0xf0000a04, 0x7a11: 0xf0000a04, 0x7a12: 0xf0000a04, 0x7a13: 0xf0000a04, + 0x7a14: 0xf0000a04, 0x7a15: 0xf0000a04, 0x7a16: 0xf0000a04, 0x7a17: 0xf0000a04, + 0x7a18: 0xe00024b3, 0x7a19: 0xf0000a04, 0x7a1a: 0xf0000a04, 0x7a1b: 0xf0000a04, + 0x7a1c: 0xf0000a04, 0x7a1d: 0xf0000a04, 0x7a1e: 0xf0000a04, 0x7a1f: 0xf0000a04, + 0x7a20: 0xe00024cb, 0x7a21: 0xf0000a04, 0x7a22: 0xf0000a04, 0x7a23: 0xf0000a04, + 0x7a24: 0xf0000a04, 0x7a25: 0xf0000a04, 0x7a26: 0xf0000a04, 0x7a27: 0xe00024eb, + 0x7a28: 0xf0000a04, 0x7a29: 0xf0000a04, 0x7a2a: 0xf0000a04, 0x7a2b: 0x002c3a8c, + 0x7a2c: 0x002f7a8c, 0x7a2d: 0xf0000c0c, 0x7a2e: 0xf0000c0c, + 0x7a30: 0x002bde9d, 0x7a31: 0x002c0a9d, 0x7a32: 0x002c3a9d, 0x7a33: 0x002c629d, + 0x7a34: 0x002c989d, 0x7a35: 0x002d089d, 0x7a36: 0x002d229d, 0x7a37: 0x002d689d, + 0x7a38: 0x002d9a9d, 0x7a39: 0x002dcc9d, 0x7a3a: 0x002dfe9d, 0x7a3b: 0x002e229d, + 0x7a3c: 0x002e829d, 0x7a3d: 0x002e9e9d, 0x7a3e: 0x002ee29d, 0x7a3f: 0x002f2c9d, + // Block 0x1e9, offset 0x7a40 + 0x7a40: 0xe00014bd, 0x7a41: 0x0033b483, 0x7a42: 0x00339688, 0x7a43: 0x0033a288, + 0x7a44: 0x0033c288, 0x7a45: 0x0033fc88, 0x7a46: 0xc02a0071, 0x7a47: 0x00343688, + 0x7a48: 0x00344688, 0x7a49: 0x00349a88, 0x7a4a: 0x0034e488, 0x7a4b: 0x00356288, + 0x7a4c: 0x00356a88, 0x7a4d: 0xe00014cf, 0x7a4e: 0x00357a88, 0x7a4f: 0x00365488, + 0x7a50: 0xc0090041, 0x7a51: 0x00335288, 0x7a52: 0x00335a88, 0x7a53: 0xc0130092, + 0x7a54: 0x00338a88, 0x7a55: 0xc34c0041, 0x7a56: 0xc01c0071, 0x7a57: 0xc0200071, + 0x7a58: 0xc0250041, 0x7a59: 0x00343e88, 0x7a5a: 0xc0370092, 0x7a5b: 0x00348488, + 0x7a5c: 0x0034a888, 0x7a5d: 0x0034ba88, 0x7a5e: 0xc02e0071, 0x7a5f: 0x00350e88, + 0x7a60: 0x00352888, 0x7a61: 0x00353a88, 0x7a62: 0x00354c88, 0x7a63: 0xc03e00f1, + 0x7a64: 0x0035ac88, 0x7a65: 0x0035b488, 0x7a66: 0x00360288, 0x7a67: 0xc0440071, + 0x7a68: 0x00365c88, 0x7a69: 0x00366688, 0x7a6a: 0x00367488, 0x7a6b: 0xc0480071, + 0x7a6c: 0x00368e88, 0x7a6d: 0xc04c0071, 0x7a6e: 0x0036b888, 0x7a6f: 0x0036c488, + 0x7a70: 0xc0060041, 0x7a71: 0x40335220, 0x7a72: 0x40335a20, 0x7a73: 0xc0100092, + 0x7a74: 0x40338a20, 0x7a75: 0xc3490041, 0x7a76: 0xc01a0071, 0x7a77: 0xc01e0071, + 0x7a78: 0xc0220041, 0x7a79: 0x40343e20, 0x7a7a: 0xc0340092, 0x7a7b: 0x40348420, + 0x7a7c: 0x4034a820, 0x7a7d: 0x4034ba20, 0x7a7e: 0xc02c0071, 0x7a7f: 0x40350e20, + // Block 0x1ea, offset 0x7a80 + 0x7a80: 0x40352820, 0x7a81: 0x40353a20, 0x7a82: 0x40354c20, 0x7a83: 0xc03a00f1, + 0x7a84: 0x4035ac20, 0x7a85: 0x4035b420, 0x7a86: 0x40360220, 0x7a87: 0xc0420071, + 0x7a88: 0x40365c20, 0x7a89: 0x40366620, 0x7a8a: 0x40367420, 0x7a8b: 0xc0460071, + 0x7a8c: 0x40368e20, 0x7a8d: 0xc04a0071, 0x7a8e: 0x4036b820, 0x7a8f: 0x4036c420, + 0x7a90: 0xe00014ba, 0x7a91: 0x4033b420, 0x7a92: 0x40339620, 0x7a93: 0x4033a220, + 0x7a94: 0x4033c220, 0x7a95: 0x4033fc20, 0x7a96: 0xc0280071, 0x7a97: 0x40343620, + 0x7a98: 0x40344620, 0x7a99: 0x40349a20, 0x7a9a: 0x4034e420, 0x7a9b: 0x40356220, + 0x7a9c: 0x40356a20, 0x7a9d: 0xe00014cc, 0x7a9e: 0x40357a20, 0x7a9f: 0x40365420, + 0x7aa0: 0x0035e088, 0x7aa1: 0x4035e020, 0x7aa2: 0x00369e88, 0x7aa3: 0x40369e20, + 0x7aa4: 0x0036ce88, 0x7aa5: 0x4036ce20, 0x7aa6: 0x0036d688, 0x7aa7: 0x4036d620, + 0x7aa8: 0x0036ea88, 0x7aa9: 0x4036ea20, 0x7aaa: 0x0036e088, 0x7aab: 0x4036e020, + 0x7aac: 0x0036f488, 0x7aad: 0x4036f420, 0x7aae: 0x0036fc88, 0x7aaf: 0x4036fc20, + 0x7ab0: 0x00370488, 0x7ab1: 0x40370420, 0x7ab2: 0x00370c88, 0x7ab3: 0x40370c20, + 0x7ab4: 0xc0500131, 0x7ab5: 0xc04e0131, 0x7ab6: 0x00371c88, 0x7ab7: 0x40371c20, + 0x7ab8: 0x0035a488, 0x7ab9: 0x4035a420, 0x7aba: 0x0035fa88, 0x7abb: 0x4035fa20, + 0x7abc: 0x0035f288, 0x7abd: 0x4035f220, 0x7abe: 0x0035e888, 0x7abf: 0x4035e820, + // Block 0x1eb, offset 0x7ac0 + 0x7ac1: 0x40409c20, 0x7ac2: 0x40409820, 0x7ac3: 0x40409a20, + 0x7ac5: 0x40407c20, 0x7ac6: 0x40407e20, 0x7ac7: 0x40408020, + 0x7ac8: 0x40408220, 0x7ac9: 0x40408420, 0x7aca: 0x40408620, 0x7acb: 0x40408820, + 0x7acc: 0x40408c20, 0x7acf: 0x40409020, + 0x7ad0: 0x40409220, 0x7ad3: 0x40409420, + 0x7ad4: 0x40409620, 0x7ad5: 0x40409820, 0x7ad6: 0x40409a20, 0x7ad7: 0x40409c20, + 0x7ad8: 0x40409e20, 0x7ad9: 0x4040a020, 0x7ada: 0x4040a220, 0x7adb: 0x4040a420, + 0x7adc: 0x4040a620, 0x7add: 0x4040a820, 0x7ade: 0x4040aa20, 0x7adf: 0x4040ac20, + 0x7ae0: 0x4040ae20, 0x7ae1: 0x4040b020, 0x7ae2: 0x4040b220, 0x7ae3: 0x4040b420, + 0x7ae4: 0x4040b620, 0x7ae5: 0x4040b820, 0x7ae6: 0x4040ba20, 0x7ae7: 0x4040bc20, + 0x7ae8: 0x4040be20, 0x7aea: 0x4040c020, 0x7aeb: 0x4040c220, + 0x7aec: 0x4040c420, 0x7aed: 0x4040c620, 0x7aee: 0x4040c820, 0x7aef: 0x4040ca20, + 0x7af0: 0x4040cc20, 0x7af2: 0x4040d020, + 0x7af6: 0x4040d420, 0x7af7: 0x4040d620, + 0x7af8: 0x4040d820, 0x7af9: 0x4040da20, + 0x7afc: 0xa070f102, 0x7afd: 0x4040dc20, 0x7afe: 0x4040de20, 0x7aff: 0x4040e020, + // Block 0x1ec, offset 0x7b00 + 0x7b00: 0xa0000000, 0x7b01: 0xa0000000, 0x7b02: 0xa0000000, 0x7b03: 0xa0000000, + 0x7b04: 0xa0000000, 0x7b05: 0xa0000000, 0x7b06: 0xa0000000, 0x7b07: 0xa0000000, + 0x7b08: 0xa0000000, 0x7b09: 0x40020020, 0x7b0a: 0x40020220, 0x7b0b: 0x40020420, + 0x7b0c: 0x40020620, 0x7b0d: 0x40020820, 0x7b0e: 0xa0000000, 0x7b0f: 0xa0000000, + 0x7b10: 0xa0000000, 0x7b11: 0xa0000000, 0x7b12: 0xa0000000, 0x7b13: 0xa0000000, + 0x7b14: 0xa0000000, 0x7b15: 0xa0000000, 0x7b16: 0xa0000000, 0x7b17: 0xa0000000, + 0x7b18: 0xa0000000, 0x7b19: 0xa0000000, 0x7b1a: 0xa0000000, 0x7b1b: 0xa0000000, + 0x7b1c: 0xa0000000, 0x7b1d: 0xa0000000, 0x7b1e: 0xa0000000, 0x7b1f: 0xa0000000, + 0x7b20: 0x40021220, 0x7b21: 0x4002ba20, 0x7b22: 0x4003e020, 0x7b23: 0x4004ea20, + 0x7b24: 0x4027de20, 0x7b25: 0x4004ec20, 0x7b26: 0x4004e620, 0x7b27: 0x4003d220, + 0x7b28: 0x4003f420, 0x7b29: 0x4003f620, 0x7b2a: 0x4004d820, 0x7b2b: 0x40093820, + 0x7b2c: 0x40024020, 0x7b2d: 0x40021a20, 0x7b2e: 0x4002e420, 0x7b2f: 0x4004e220, + 0x7b30: 0x4029cc20, 0x7b31: 0x4029ce20, 0x7b32: 0x4029d020, 0x7b33: 0x4029d220, + 0x7b34: 0x4029d420, 0x7b35: 0x4029d620, 0x7b36: 0x4029d820, 0x7b37: 0x4029da20, + 0x7b38: 0x4029dc20, 0x7b39: 0x4029de20, 0x7b3a: 0x40026c20, 0x7b3b: 0x40026220, + 0x7b3c: 0x40094020, 0x7b3d: 0x40094220, 0x7b3e: 0x40094420, 0x7b3f: 0x4002c420, + // Block 0x1ed, offset 0x7b40 + 0x7b40: 0x4004d620, 0x7b41: 0x002bde88, 0x7b42: 0x002c0a88, 0x7b43: 0x002c3a88, + 0x7b44: 0x002c6288, 0x7b45: 0x002c9888, 0x7b46: 0x002d0888, 0x7b47: 0x002d2288, + 0x7b48: 0x002d6888, 0x7b49: 0x002d9a88, 0x7b4a: 0x002dcc88, 0x7b4b: 0x002dfe88, + 0x7b4c: 0xc3520002, 0x7b4d: 0x002e8288, 0x7b4e: 0x002e9e88, 0x7b4f: 0x002ee288, + 0x7b50: 0x002f2c88, 0x7b51: 0x002f5688, 0x7b52: 0x002f7a88, 0x7b53: 0x002fe688, + 0x7b54: 0x00302c88, 0x7b55: 0x00306c88, 0x7b56: 0x0030be88, 0x7b57: 0x0030e288, + 0x7b58: 0x0030f688, 0x7b59: 0x00310088, 0x7b5a: 0x00312a88, 0x7b5b: 0x4003f820, + 0x7b5c: 0x4004e420, 0x7b5d: 0x4003fa20, 0x7b5e: 0x40062420, 0x7b5f: 0x40021620, + 0x7b60: 0x40061e20, 0x7b61: 0x402bde20, 0x7b62: 0x402c0a20, 0x7b63: 0x402c3a20, + 0x7b64: 0x402c6220, 0x7b65: 0x402c9820, 0x7b66: 0x402d0820, 0x7b67: 0x402d2220, + 0x7b68: 0x402d6820, 0x7b69: 0x402d9a20, 0x7b6a: 0x402dcc20, 0x7b6b: 0x402dfe20, + 0x7b6c: 0xc34f0002, 0x7b6d: 0x402e8220, 0x7b6e: 0x402e9e20, 0x7b6f: 0x402ee220, + 0x7b70: 0x402f2c20, 0x7b71: 0x402f5620, 0x7b72: 0x402f7a20, 0x7b73: 0x402fe620, + 0x7b74: 0x40302c20, 0x7b75: 0x40306c20, 0x7b76: 0x4030be20, 0x7b77: 0x4030e220, + 0x7b78: 0x4030f620, 0x7b79: 0x40310020, 0x7b7a: 0x40312a20, 0x7b7b: 0x4003fc20, + 0x7b7c: 0x40094820, 0x7b7d: 0x4003fe20, 0x7b7e: 0x40094c20, 0x7b7f: 0xa0000000, + // Block 0x1ee, offset 0x7b80 + 0x7b80: 0xe0000983, 0x7b81: 0xe0000980, 0x7b82: 0xe00008fb, 0x7b83: 0xe00008f8, + 0x7b84: 0xe000097d, 0x7b85: 0xe000097a, 0x7b86: 0xe0000a38, 0x7b87: 0xe0000a35, + 0x7b88: 0xe0000a3e, 0x7b89: 0xe0000a3b, 0x7b8a: 0xe0000a4a, 0x7b8b: 0xe0000a47, + 0x7b8c: 0xe0000a44, 0x7b8d: 0xe0000a41, 0x7b8e: 0xe0000a86, 0x7b8f: 0xe0000a83, + 0x7b90: 0xe0000aaa, 0x7b91: 0xe0000aa7, 0x7b92: 0xe0000b46, 0x7b93: 0xe0000b43, + 0x7b94: 0xe0000aee, 0x7b95: 0xe0000aeb, 0x7b96: 0xe0000b2c, 0x7b97: 0xe0000b29, + 0x7b98: 0xe0000b40, 0x7b99: 0xe0000b3d, 0x7b9a: 0xe0000b1a, 0x7b9b: 0xe0000b17, + 0x7b9c: 0xe0000bb8, 0x7b9d: 0xe0000bb5, 0x7b9e: 0xe0000bb2, 0x7b9f: 0xe0000baf, + 0x7ba0: 0xe0000bc4, 0x7ba1: 0xe0000bc1, 0x7ba2: 0xe0000bca, 0x7ba3: 0xe0000bc7, + 0x7ba4: 0xe0000bee, 0x7ba5: 0xe0000beb, 0x7ba6: 0xe0000c1b, 0x7ba7: 0xe0000c18, + 0x7ba8: 0xe0000c51, 0x7ba9: 0xe0000c4e, 0x7baa: 0xe0000c60, 0x7bab: 0xe0000c5d, + 0x7bac: 0xe0000c31, 0x7bad: 0xe0000c2e, 0x7bae: 0xe0000c5a, 0x7baf: 0xe0000c57, + 0x7bb0: 0xe0000c54, 0x7bb1: 0x402da220, 0x7bb2: 0xf0000a0a, 0x7bb3: 0xf0000404, + 0x7bb4: 0xe0000c8a, 0x7bb5: 0xe0000c87, 0x7bb6: 0xe0000c9f, 0x7bb7: 0xe0000c9c, + 0x7bb8: 0x402f7220, 0x7bb9: 0xe0000ccc, 0x7bba: 0xe0000cc9, 0x7bbb: 0xe0000cd8, + 0x7bbc: 0xe0000cd5, 0x7bbd: 0xe0000cd2, 0x7bbe: 0xe0000ccf, 0x7bbf: 0x002e22a3, + // Block 0x1ef, offset 0x7bc0 + 0x7bc0: 0x402e2221, 0x7bc1: 0xe0000cf8, 0x7bc2: 0xe0000cf5, 0x7bc3: 0xe0000d51, + 0x7bc4: 0xe0000d4e, 0x7bc5: 0xe0000d6f, 0x7bc6: 0xe0000d6c, 0x7bc7: 0xe0000d5d, + 0x7bc8: 0xe0000d5a, 0x7bc9: 0xf0000404, 0x7bca: 0x002eda88, 0x7bcb: 0x402eda20, + 0x7bcc: 0xe0000e2e, 0x7bcd: 0xe0000e2b, 0x7bce: 0xe0000da0, 0x7bcf: 0xe0000d9d, + 0x7bd0: 0xe0000de0, 0x7bd1: 0xe0000ddd, 0x7bd2: 0xe0000e93, 0x7bd3: 0xe0000e8f, + 0x7bd4: 0xe0000eca, 0x7bd5: 0xe0000ec7, 0x7bd6: 0xe0000edc, 0x7bd7: 0xe0000ed9, + 0x7bd8: 0xe0000ed0, 0x7bd9: 0xe0000ecd, 0x7bda: 0xe0000f1f, 0x7bdb: 0xe0000f1c, + 0x7bdc: 0xe0000f2d, 0x7bdd: 0xe0000f2a, 0x7bde: 0xe0000f47, 0x7bdf: 0xe0000f44, + 0x7be0: 0xe0000f33, 0x7be1: 0xe0000f30, 0x7be2: 0xe0000f99, 0x7be3: 0xe0000f96, + 0x7be4: 0xe0000f8a, 0x7be5: 0xe0000f87, 0x7be6: 0x00303688, 0x7be7: 0x40303620, + 0x7be8: 0xe000102b, 0x7be9: 0xe0001028, 0x7bea: 0xe000103f, 0x7beb: 0xe000103c, + 0x7bec: 0xe0000fe7, 0x7bed: 0xe0000fe4, 0x7bee: 0xe0000ff9, 0x7bef: 0xe0000ff6, + 0x7bf0: 0xe0001025, 0x7bf1: 0xe0001022, 0x7bf2: 0xe0001039, 0x7bf3: 0xe0001036, + 0x7bf4: 0xe00010d8, 0x7bf5: 0xe00010d5, 0x7bf6: 0xe000110e, 0x7bf7: 0xe000110b, + 0x7bf8: 0xe0001117, 0x7bf9: 0xe000113b, 0x7bfa: 0xe0001138, 0x7bfb: 0xe000114d, + 0x7bfc: 0xe000114a, 0x7bfd: 0xe0001147, 0x7bfe: 0xe0001144, 0x7bff: 0xe0000f64, + // Block 0x1f0, offset 0x7c00 + 0x7c00: 0xa0000000, 0x7c01: 0xa0000000, 0x7c02: 0xa0000000, 0x7c03: 0xa0000000, + 0x7c04: 0xa0000000, 0x7c05: 0xa0000000, 0x7c06: 0xa0000000, 0x7c07: 0xa0000000, + 0x7c08: 0xa0000000, 0x7c09: 0x40020020, 0x7c0a: 0x40020220, 0x7c0b: 0x40020420, + 0x7c0c: 0x40020620, 0x7c0d: 0x40020820, 0x7c0e: 0xa0000000, 0x7c0f: 0xa0000000, + 0x7c10: 0xa0000000, 0x7c11: 0xa0000000, 0x7c12: 0xa0000000, 0x7c13: 0xa0000000, + 0x7c14: 0xa0000000, 0x7c15: 0xa0000000, 0x7c16: 0xa0000000, 0x7c17: 0xa0000000, + 0x7c18: 0xa0000000, 0x7c19: 0xa0000000, 0x7c1a: 0xa0000000, 0x7c1b: 0xa0000000, + 0x7c1c: 0xa0000000, 0x7c1d: 0xa0000000, 0x7c1e: 0xa0000000, 0x7c1f: 0xa0000000, + 0x7c20: 0x40021220, 0x7c21: 0x4002ba20, 0x7c22: 0x4003e020, 0x7c23: 0x4004ea20, + 0x7c24: 0x4027de20, 0x7c25: 0x4004ec20, 0x7c26: 0x4004e620, 0x7c27: 0x4003d220, + 0x7c28: 0x4003f420, 0x7c29: 0x4003f620, 0x7c2a: 0x4004d820, 0x7c2b: 0x40093820, + 0x7c2c: 0x40024020, 0x7c2d: 0x40021a20, 0x7c2e: 0x4002e420, 0x7c2f: 0x4004e220, + 0x7c30: 0x4029cc20, 0x7c31: 0x4029ce20, 0x7c32: 0x4029d020, 0x7c33: 0x4029d220, + 0x7c34: 0x4029d420, 0x7c35: 0x4029d620, 0x7c36: 0x4029d820, 0x7c37: 0x4029da20, + 0x7c38: 0x4029dc20, 0x7c39: 0x4029de20, 0x7c3a: 0x40026c20, 0x7c3b: 0x40026220, + 0x7c3c: 0x40094020, 0x7c3d: 0x40094220, 0x7c3e: 0x40094420, 0x7c3f: 0x4002c420, + // Block 0x1f1, offset 0x7c40 + 0x7c40: 0x4004d620, 0x7c41: 0x002bde88, 0x7c42: 0x002c0a88, 0x7c43: 0xc3590953, + 0x7c44: 0x002c6288, 0x7c45: 0x002c9888, 0x7c46: 0x002d0888, 0x7c47: 0x002d2288, + 0x7c48: 0x002d6888, 0x7c49: 0x002d9a88, 0x7c4a: 0x002dcc88, 0x7c4b: 0x002dfe88, + 0x7c4c: 0xc0030002, 0x7c4d: 0x002e8288, 0x7c4e: 0x002e9e88, 0x7c4f: 0x002ee288, + 0x7c50: 0x002f2c88, 0x7c51: 0x002f5688, 0x7c52: 0xc35f0991, 0x7c53: 0xc3430991, + 0x7c54: 0x00302c88, 0x7c55: 0x00306c88, 0x7c56: 0x0030be88, 0x7c57: 0x0030e288, + 0x7c58: 0x0030f688, 0x7c59: 0x00310088, 0x7c5a: 0xc3630991, 0x7c5b: 0x4003f820, + 0x7c5c: 0x4004e420, 0x7c5d: 0x4003fa20, 0x7c5e: 0x40062420, 0x7c5f: 0x40021620, + 0x7c60: 0x40061e20, 0x7c61: 0x402bde20, 0x7c62: 0x402c0a20, 0x7c63: 0xc3550953, + 0x7c64: 0x402c6220, 0x7c65: 0x402c9820, 0x7c66: 0x402d0820, 0x7c67: 0x402d2220, + 0x7c68: 0x402d6820, 0x7c69: 0x402d9a20, 0x7c6a: 0x402dcc20, 0x7c6b: 0x402dfe20, + 0x7c6c: 0xc0000002, 0x7c6d: 0x402e8220, 0x7c6e: 0x402e9e20, 0x7c6f: 0x402ee220, + 0x7c70: 0x402f2c20, 0x7c71: 0x402f5620, 0x7c72: 0xc35d0991, 0x7c73: 0xc3410991, + 0x7c74: 0x40302c20, 0x7c75: 0x40306c20, 0x7c76: 0x4030be20, 0x7c77: 0x4030e220, + 0x7c78: 0x4030f620, 0x7c79: 0x40310020, 0x7c7a: 0xc3610991, 0x7c7b: 0x4003fc20, + 0x7c7c: 0x40094820, 0x7c7d: 0x4003fe20, 0x7c7e: 0x40094c20, 0x7c7f: 0xa0000000, + // Block 0x1f2, offset 0x7c80 + 0x7c80: 0xe0000983, 0x7c81: 0xe0000980, 0x7c82: 0xe00008fb, 0x7c83: 0xe00008f8, + 0x7c84: 0xe000097d, 0x7c85: 0xe000097a, 0x7c86: 0xe0000a38, 0x7c87: 0xe0000a35, + 0x7c88: 0xe0000a3e, 0x7c89: 0xe0000a3b, 0x7c8a: 0xe0000a4a, 0x7c8b: 0xe0000a47, + 0x7c8c: 0x002c3c83, 0x7c8d: 0x402c3c20, 0x7c8e: 0xe0000a86, 0x7c8f: 0xe0000a83, + 0x7c90: 0xe0000aaa, 0x7c91: 0xe0000aa7, 0x7c92: 0xe0000b46, 0x7c93: 0xe0000b43, + 0x7c94: 0xe0000aee, 0x7c95: 0xe0000aeb, 0x7c96: 0xe0000b2c, 0x7c97: 0xe0000b29, + 0x7c98: 0xe0000b40, 0x7c99: 0xe0000b3d, 0x7c9a: 0xe0000b1a, 0x7c9b: 0xe0000b17, + 0x7c9c: 0xe0000bb8, 0x7c9d: 0xe0000bb5, 0x7c9e: 0xe0000bb2, 0x7c9f: 0xe0000baf, + 0x7ca0: 0xe0000bc4, 0x7ca1: 0xe0000bc1, 0x7ca2: 0xe0000bca, 0x7ca3: 0xe0000bc7, + 0x7ca4: 0xe0000bee, 0x7ca5: 0xe0000beb, 0x7ca6: 0xe0000c1b, 0x7ca7: 0xe0000c18, + 0x7ca8: 0xe0000c51, 0x7ca9: 0xe0000c4e, 0x7caa: 0xe0000c60, 0x7cab: 0xe0000c5d, + 0x7cac: 0xe0000c31, 0x7cad: 0xe0000c2e, 0x7cae: 0xe0000c5a, 0x7caf: 0xe0000c57, + 0x7cb0: 0xe0000c54, 0x7cb1: 0x402da220, 0x7cb2: 0xf0000a0a, 0x7cb3: 0xf0000404, + 0x7cb4: 0xe0000c8a, 0x7cb5: 0xe0000c87, 0x7cb6: 0xe0000c9f, 0x7cb7: 0xe0000c9c, + 0x7cb8: 0x402f7220, 0x7cb9: 0xe0000ccc, 0x7cba: 0xe0000cc9, 0x7cbb: 0xe0000cd8, + 0x7cbc: 0xe0000cd5, 0x7cbd: 0xe0000cd2, 0x7cbe: 0xe0000ccf, 0x7cbf: 0xe0000d04, + // Block 0x1f3, offset 0x7cc0 + 0x7cc0: 0xe0000cfe, 0x7cc1: 0xe0000cf8, 0x7cc2: 0xe0000cf5, 0x7cc3: 0xe0000d51, + 0x7cc4: 0xe0000d4e, 0x7cc5: 0xe0000d6f, 0x7cc6: 0xe0000d6c, 0x7cc7: 0xe0000d5d, + 0x7cc8: 0xe0000d5a, 0x7cc9: 0xf0000404, 0x7cca: 0x002eda88, 0x7ccb: 0x402eda20, + 0x7ccc: 0xe0000e2e, 0x7ccd: 0xe0000e2b, 0x7cce: 0xe0000da0, 0x7ccf: 0xe0000d9d, + 0x7cd0: 0xe0000de0, 0x7cd1: 0xe0000ddd, 0x7cd2: 0xe0000e93, 0x7cd3: 0xe0000e8f, + 0x7cd4: 0xe0000eca, 0x7cd5: 0xe0000ec7, 0x7cd6: 0xe0000edc, 0x7cd7: 0xe0000ed9, + 0x7cd8: 0x002f7c83, 0x7cd9: 0x402f7c20, 0x7cda: 0xe0000f1f, 0x7cdb: 0xe0000f1c, + 0x7cdc: 0xe0000f2d, 0x7cdd: 0xe0000f2a, 0x7cde: 0xe0000f47, 0x7cdf: 0xe0000f44, + 0x7ce0: 0x002fe883, 0x7ce1: 0x402fe820, 0x7ce2: 0xe0000f99, 0x7ce3: 0xe0000f96, + 0x7ce4: 0xe0000f8a, 0x7ce5: 0xe0000f87, 0x7ce6: 0x00303688, 0x7ce7: 0x40303620, + 0x7ce8: 0xe000102b, 0x7ce9: 0xe0001028, 0x7cea: 0xe000103f, 0x7ceb: 0xe000103c, + 0x7cec: 0xe0000fe7, 0x7ced: 0xe0000fe4, 0x7cee: 0xe0000ff9, 0x7cef: 0xe0000ff6, + 0x7cf0: 0xe0001025, 0x7cf1: 0xe0001022, 0x7cf2: 0xe0001039, 0x7cf3: 0xe0001036, + 0x7cf4: 0xe00010d8, 0x7cf5: 0xe00010d5, 0x7cf6: 0xe000110e, 0x7cf7: 0xe000110b, + 0x7cf8: 0xe0001117, 0x7cf9: 0xe000113b, 0x7cfa: 0xe0001138, 0x7cfb: 0xe000114d, + 0x7cfc: 0xe000114a, 0x7cfd: 0x00312c83, 0x7cfe: 0x40312c20, 0x7cff: 0xe0000f64, + // Block 0x1f4, offset 0x7d00 + 0x7d00: 0xe0000d24, 0x7d01: 0xe0000d21, 0x7d02: 0xe0000d2a, 0x7d03: 0xe0000d27, + 0x7d04: 0xe0000d69, 0x7d05: 0xe0000d66, 0x7d06: 0xe0000d7b, 0x7d07: 0xe0000d78, + 0x7d08: 0xe0000d87, 0x7d09: 0xe0000d84, 0x7d0a: 0xe0000d81, 0x7d0b: 0xe0000d7e, + 0x7d0c: 0xe0000ded, 0x7d0d: 0xe0000de9, 0x7d0e: 0xe0000df5, 0x7d0f: 0xe0000df1, + 0x7d10: 0xe0000e3d, 0x7d11: 0xe0000e39, 0x7d12: 0xe0000e35, 0x7d13: 0xe0000e31, + 0x7d14: 0xe0000ea7, 0x7d15: 0xe0000ea4, 0x7d16: 0xe0000ead, 0x7d17: 0xe0000eaa, + 0x7d18: 0xe0000ed6, 0x7d19: 0xe0000ed3, 0x7d1a: 0xe0000ef4, 0x7d1b: 0xe0000ef1, + 0x7d1c: 0xe0000efb, 0x7d1d: 0xe0000ef7, 0x7d1e: 0xe0000f02, 0x7d1f: 0xe0000eff, + 0x7d20: 0xe0000f41, 0x7d21: 0xe0000f3e, 0x7d22: 0xe0000f53, 0x7d23: 0xe0000f50, + 0x7d24: 0xe0000f26, 0x7d25: 0xe0000f22, 0x7d26: 0xe000296a, 0x7d27: 0xe0002967, + 0x7d28: 0xe0000f5a, 0x7d29: 0xe0000f56, 0x7d2a: 0xe0000f93, 0x7d2b: 0xe0000f90, + 0x7d2c: 0xe0000f9f, 0x7d2d: 0xe0000f9c, 0x7d2e: 0xe0000fb1, 0x7d2f: 0xe0000fae, + 0x7d30: 0xe0000fab, 0x7d31: 0xe0000fa8, 0x7d32: 0xe0001093, 0x7d33: 0xe0001090, + 0x7d34: 0xe000109f, 0x7d35: 0xe000109c, 0x7d36: 0xe0001099, 0x7d37: 0xe0001096, + 0x7d38: 0xe0001032, 0x7d39: 0xe000102e, 0x7d3a: 0xe0001046, 0x7d3b: 0xe0001042, + 0x7d3c: 0xe00010a9, 0x7d3d: 0xe00010a6, 0x7d3e: 0xe00010af, 0x7d3f: 0xe00010ac, + // Block 0x1f5, offset 0x7d40 + 0x7d40: 0xa0000000, 0x7d41: 0xa0000000, 0x7d42: 0xa0000000, 0x7d43: 0xa0000000, + 0x7d44: 0xa0000000, 0x7d45: 0xa0000000, 0x7d46: 0xa0000000, 0x7d47: 0xa0000000, + 0x7d48: 0xa0000000, 0x7d49: 0x40020020, 0x7d4a: 0x40020220, 0x7d4b: 0x40020420, + 0x7d4c: 0x40020620, 0x7d4d: 0x40020820, 0x7d4e: 0xa0000000, 0x7d4f: 0xa0000000, + 0x7d50: 0xa0000000, 0x7d51: 0xa0000000, 0x7d52: 0xa0000000, 0x7d53: 0xa0000000, + 0x7d54: 0xa0000000, 0x7d55: 0xa0000000, 0x7d56: 0xa0000000, 0x7d57: 0xa0000000, + 0x7d58: 0xa0000000, 0x7d59: 0xa0000000, 0x7d5a: 0xa0000000, 0x7d5b: 0xa0000000, + 0x7d5c: 0xa0000000, 0x7d5d: 0xa0000000, 0x7d5e: 0xa0000000, 0x7d5f: 0xa0000000, + 0x7d60: 0x40021220, 0x7d61: 0x4002ba20, 0x7d62: 0x4003e020, 0x7d63: 0x4004ea20, + 0x7d64: 0x4027de20, 0x7d65: 0x4004ec20, 0x7d66: 0x4004e620, 0x7d67: 0x4003d220, + 0x7d68: 0x4003f420, 0x7d69: 0x4003f620, 0x7d6a: 0x4004d820, 0x7d6b: 0x40093820, + 0x7d6c: 0x40024020, 0x7d6d: 0x40021a20, 0x7d6e: 0x4002e420, 0x7d6f: 0x4004e220, + 0x7d70: 0x4029cc20, 0x7d71: 0x4029ce20, 0x7d72: 0x4029d020, 0x7d73: 0x4029d220, + 0x7d74: 0x4029d420, 0x7d75: 0x4029d620, 0x7d76: 0x4029d820, 0x7d77: 0x4029da20, + 0x7d78: 0x4029dc20, 0x7d79: 0x4029de20, 0x7d7a: 0x40026c20, 0x7d7b: 0x40026220, + 0x7d7c: 0x40094020, 0x7d7d: 0x40094220, 0x7d7e: 0x40094420, 0x7d7f: 0x4002c420, + // Block 0x1f6, offset 0x7d80 + 0x7d80: 0x4004d620, 0x7d81: 0x002bde88, 0x7d82: 0x002c0a88, 0x7d83: 0xc36509c2, + 0x7d84: 0xc36a09f2, 0x7d85: 0x002c9888, 0x7d86: 0xc36f0a22, 0x7d87: 0x002d2288, + 0x7d88: 0x002d6888, 0x7d89: 0x002d9a88, 0x7d8a: 0x002dcc88, 0x7d8b: 0x002dfe88, + 0x7d8c: 0xc37b0ac4, 0x7d8d: 0x002e8288, 0x7d8e: 0xc3740a52, 0x7d8f: 0x002ee288, + 0x7d90: 0xc38209c2, 0x7d91: 0x002f5688, 0x7d92: 0xc38509c2, 0x7d93: 0x002fe688, + 0x7d94: 0xc38a09c2, 0x7d95: 0x00306c88, 0x7d96: 0x0030be88, 0x7d97: 0x0030e288, + 0x7d98: 0x0030f688, 0x7d99: 0x00310088, 0x7d9a: 0x00312a88, 0x7d9b: 0x4003f820, + 0x7d9c: 0x4004e420, 0x7d9d: 0x4003fa20, 0x7d9e: 0x40062420, 0x7d9f: 0x40021620, + 0x7da0: 0x40061e20, 0x7da1: 0x402bde20, 0x7da2: 0x402c0a20, 0x7da3: 0xc33309b1, + 0x7da4: 0xc36809e1, 0x7da5: 0x402c9820, 0x7da6: 0xc36d0a11, 0x7da7: 0x402d2220, + 0x7da8: 0x402d6820, 0x7da9: 0x402d9a20, 0x7daa: 0x402dcc20, 0x7dab: 0x402dfe20, + 0x7dac: 0xc3770a73, 0x7dad: 0x402e8220, 0x7dae: 0xc3720a41, 0x7daf: 0x402ee220, + 0x7db0: 0xc38009b1, 0x7db1: 0x402f5620, 0x7db2: 0xc35d09b1, 0x7db3: 0x402fe620, + 0x7db4: 0xc38809b1, 0x7db5: 0x40306c20, 0x7db6: 0x4030be20, 0x7db7: 0x4030e220, + 0x7db8: 0x4030f620, 0x7db9: 0x40310020, 0x7dba: 0x40312a20, 0x7dbb: 0x4003fc20, + 0x7dbc: 0x40094820, 0x7dbd: 0x4003fe20, 0x7dbe: 0x40094c20, 0x7dbf: 0xa0000000, + // Block 0x1f7, offset 0x7dc0 + 0x7dc0: 0xa0000000, 0x7dc1: 0xa0000000, 0x7dc2: 0xa0000000, 0x7dc3: 0xa0000000, + 0x7dc4: 0xa0000000, 0x7dc5: 0xa0000000, 0x7dc6: 0xa0000000, 0x7dc7: 0xa0000000, + 0x7dc8: 0xa0000000, 0x7dc9: 0x40020020, 0x7dca: 0x40020220, 0x7dcb: 0x40020420, + 0x7dcc: 0x40020620, 0x7dcd: 0x40020820, 0x7dce: 0xa0000000, 0x7dcf: 0xa0000000, + 0x7dd0: 0xa0000000, 0x7dd1: 0xa0000000, 0x7dd2: 0xa0000000, 0x7dd3: 0xa0000000, + 0x7dd4: 0xa0000000, 0x7dd5: 0xa0000000, 0x7dd6: 0xa0000000, 0x7dd7: 0xa0000000, + 0x7dd8: 0xa0000000, 0x7dd9: 0xa0000000, 0x7dda: 0xa0000000, 0x7ddb: 0xa0000000, + 0x7ddc: 0xa0000000, 0x7ddd: 0xa0000000, 0x7dde: 0xa0000000, 0x7ddf: 0xa0000000, + 0x7de0: 0x40021220, 0x7de1: 0x4002ba20, 0x7de2: 0x4003e020, 0x7de3: 0x4004ea20, + 0x7de4: 0x4027de20, 0x7de5: 0x4004ec20, 0x7de6: 0x4004e620, 0x7de7: 0x4003d220, + 0x7de8: 0x4003f420, 0x7de9: 0x4003f620, 0x7dea: 0x4004d820, 0x7deb: 0x40093820, + 0x7dec: 0x40024020, 0x7ded: 0x40021a20, 0x7dee: 0x4002e420, 0x7def: 0x4004e220, + 0x7df0: 0x4029cc20, 0x7df1: 0x4029ce20, 0x7df2: 0x4029d020, 0x7df3: 0x4029d220, + 0x7df4: 0x4029d420, 0x7df5: 0x4029d620, 0x7df6: 0x4029d820, 0x7df7: 0x4029da20, + 0x7df8: 0x4029dc20, 0x7df9: 0x4029de20, 0x7dfa: 0x40026c20, 0x7dfb: 0x40026220, + 0x7dfc: 0x40094020, 0x7dfd: 0x40094220, 0x7dfe: 0x40094420, 0x7dff: 0x4002c420, + // Block 0x1f8, offset 0x7e00 + 0x7e00: 0x4004d620, 0x7e01: 0xc3970b93, 0x7e02: 0x002c0a88, 0x7e03: 0x002c3a88, + 0x7e04: 0x002c6288, 0x7e05: 0xc39e0be1, 0x7e06: 0x002d0888, 0x7e07: 0x002d2288, + 0x7e08: 0x002d6888, 0x7e09: 0x002d9a88, 0x7e0a: 0x002dcc88, 0x7e0b: 0x002dfe88, + 0x7e0c: 0xc0030002, 0x7e0d: 0x002e8288, 0x7e0e: 0x002e9e88, 0x7e0f: 0xc3a30b21, + 0x7e10: 0x002f2c88, 0x7e11: 0x002f5688, 0x7e12: 0x002f7a88, 0x7e13: 0x002fe688, + 0x7e14: 0x00302c88, 0x7e15: 0xc3900b21, 0x7e16: 0x0030be88, 0x7e17: 0x0030e288, + 0x7e18: 0x0030f688, 0x7e19: 0x00310088, 0x7e1a: 0x00312a88, 0x7e1b: 0x4003f820, + 0x7e1c: 0x4004e420, 0x7e1d: 0x4003fa20, 0x7e1e: 0x40062420, 0x7e1f: 0x40021620, + 0x7e20: 0x40061e20, 0x7e21: 0xc3930b52, 0x7e22: 0x402c0a20, 0x7e23: 0x402c3a20, + 0x7e24: 0x402c6220, 0x7e25: 0xc39c0be1, 0x7e26: 0x402d0820, 0x7e27: 0x402d2220, + 0x7e28: 0x402d6820, 0x7e29: 0x402d9a20, 0x7e2a: 0x402dcc20, 0x7e2b: 0x402dfe20, + 0x7e2c: 0xc0000002, 0x7e2d: 0x402e8220, 0x7e2e: 0x402e9e20, 0x7e2f: 0xc3a00b21, + 0x7e30: 0x402f2c20, 0x7e31: 0x402f5620, 0x7e32: 0x402f7a20, 0x7e33: 0x402fe620, + 0x7e34: 0x40302c20, 0x7e35: 0xc38d0b21, 0x7e36: 0x4030be20, 0x7e37: 0x4030e220, + 0x7e38: 0x4030f620, 0x7e39: 0x40310020, 0x7e3a: 0x40312a20, 0x7e3b: 0x4003fc20, + 0x7e3c: 0x40094820, 0x7e3d: 0x4003fe20, 0x7e3e: 0x40094c20, 0x7e3f: 0xa0000000, + // Block 0x1f9, offset 0x7e40 + 0x7e40: 0xe00008f5, 0x7e41: 0xe00008ef, 0x7e42: 0xe0000921, 0x7e43: 0xe0000969, + 0x7e44: 0x00320ca3, 0x7e45: 0x00321083, 0x7e46: 0x00320c83, 0x7e47: 0xe0000a53, + 0x7e48: 0xe0000ae8, 0x7e49: 0xe0000ae2, 0x7e4a: 0xe0000af4, 0x7e4b: 0xe0000b20, + 0x7e4c: 0xe0000c2b, 0x7e4d: 0xe0000c25, 0x7e4e: 0xe0000c37, 0x7e4f: 0xe0000c43, + 0x7e50: 0x002c62c3, 0x7e51: 0xe0000d63, 0x7e52: 0xe0000d9a, 0x7e53: 0xe0000d94, + 0x7e54: 0xe0000da6, 0x7e55: 0xe0000de6, 0x7e56: 0x00320ea3, 0x7e57: 0x40093e20, + 0x7e58: 0x00320e83, 0x7e59: 0xe0000fe1, 0x7e5a: 0xe0000fdb, 0x7e5b: 0xe0000fed, + 0x7e5c: 0x003100a3, 0x7e5d: 0xe0001102, 0x7e5e: 0xe0002973, 0x7e5f: 0xe0000f7b, + 0x7e60: 0xe00008f2, 0x7e61: 0xe00008ec, 0x7e62: 0xe000091e, 0x7e63: 0xe0000966, + 0x7e64: 0x40320c21, 0x7e65: 0x40321020, 0x7e66: 0x40320c20, 0x7e67: 0xe0000a4d, + 0x7e68: 0xe0000ae5, 0x7e69: 0xe0000adf, 0x7e6a: 0xe0000af1, 0x7e6b: 0xe0000b1d, + 0x7e6c: 0xe0000c28, 0x7e6d: 0xe0000c22, 0x7e6e: 0xe0000c34, 0x7e6f: 0xe0000c40, + 0x7e70: 0x402c6222, 0x7e71: 0xe0000d60, 0x7e72: 0xe0000d97, 0x7e73: 0xe0000d91, + 0x7e74: 0xe0000da3, 0x7e75: 0xe0000de3, 0x7e76: 0x40320e21, 0x7e77: 0x40093c20, + 0x7e78: 0x40320e20, 0x7e79: 0xe0000fde, 0x7e7a: 0xe0000fd8, 0x7e7b: 0xe0000fea, + 0x7e7c: 0x40310021, 0x7e7d: 0xe00010ff, 0x7e7e: 0xe0002970, 0x7e7f: 0xe0001114, + // Block 0x1fa, offset 0x7e80 + 0x7e80: 0xe0000983, 0x7e81: 0xe0000980, 0x7e82: 0xe00008fb, 0x7e83: 0xe00008f8, + 0x7e84: 0xe000097d, 0x7e85: 0xe000097a, 0x7e86: 0xe0000a38, 0x7e87: 0xe0000a35, + 0x7e88: 0xe0000a3e, 0x7e89: 0xe0000a3b, 0x7e8a: 0xe0000a4a, 0x7e8b: 0xe0000a47, + 0x7e8c: 0xe0000a44, 0x7e8d: 0xe0000a41, 0x7e8e: 0xe0000a86, 0x7e8f: 0xe0000a83, + 0x7e90: 0x002c62a3, 0x7e91: 0x402c6221, 0x7e92: 0xe0000b46, 0x7e93: 0xe0000b43, + 0x7e94: 0xe0000aee, 0x7e95: 0xe0000aeb, 0x7e96: 0xe0000b2c, 0x7e97: 0xe0000b29, + 0x7e98: 0x00320cc3, 0x7e99: 0x40320c22, 0x7e9a: 0xe0000b1a, 0x7e9b: 0xe0000b17, + 0x7e9c: 0xe0000bb8, 0x7e9d: 0xe0000bb5, 0x7e9e: 0xe0000bb2, 0x7e9f: 0xe0000baf, + 0x7ea0: 0xe0000bc4, 0x7ea1: 0xe0000bc1, 0x7ea2: 0xe0000bca, 0x7ea3: 0xe0000bc7, + 0x7ea4: 0xe0000bee, 0x7ea5: 0xe0000beb, 0x7ea6: 0xe0000c1b, 0x7ea7: 0xe0000c18, + 0x7ea8: 0xe0000c51, 0x7ea9: 0xe0000c4e, 0x7eaa: 0xe0000c60, 0x7eab: 0xe0000c5d, + 0x7eac: 0xe0000c31, 0x7ead: 0xe0000c2e, 0x7eae: 0xe0000c5a, 0x7eaf: 0xe0000c57, + 0x7eb0: 0xe0000c54, 0x7eb1: 0x402da220, 0x7eb2: 0xf0000a0a, 0x7eb3: 0xf0000404, + 0x7eb4: 0xe0000c8a, 0x7eb5: 0xe0000c87, 0x7eb6: 0xe0000c9f, 0x7eb7: 0xe0000c9c, + 0x7eb8: 0x402f7220, 0x7eb9: 0xe0000ccc, 0x7eba: 0xe0000cc9, 0x7ebb: 0xe0000cd8, + 0x7ebc: 0xe0000cd5, 0x7ebd: 0xe0000cd2, 0x7ebe: 0xe0000ccf, 0x7ebf: 0xe0000d04, + // Block 0x1fb, offset 0x7ec0 + 0x7ec0: 0xe0000cfe, 0x7ec1: 0xe0000cf8, 0x7ec2: 0xe0000cf5, 0x7ec3: 0xe0000d51, + 0x7ec4: 0xe0000d4e, 0x7ec5: 0xe0000d6f, 0x7ec6: 0xe0000d6c, 0x7ec7: 0xe0000d5d, + 0x7ec8: 0xe0000d5a, 0x7ec9: 0xf0000404, 0x7eca: 0x002eda88, 0x7ecb: 0x402eda20, + 0x7ecc: 0xe0000e2e, 0x7ecd: 0xe0000e2b, 0x7ece: 0xe0000da0, 0x7ecf: 0xe0000d9d, + 0x7ed0: 0x00320ec3, 0x7ed1: 0x40320e22, 0x7ed2: 0x00320ee3, 0x7ed3: 0x40320e23, + 0x7ed4: 0xe0000eca, 0x7ed5: 0xe0000ec7, 0x7ed6: 0xe0000edc, 0x7ed7: 0xe0000ed9, + 0x7ed8: 0xe0000ed0, 0x7ed9: 0xe0000ecd, 0x7eda: 0xe0000f1f, 0x7edb: 0xe0000f1c, + 0x7edc: 0xe0000f2d, 0x7edd: 0xe0000f2a, 0x7ede: 0xe0000f47, 0x7edf: 0xe0000f44, + 0x7ee0: 0xe0000f33, 0x7ee1: 0xe0000f30, 0x7ee2: 0xe0000f99, 0x7ee3: 0xe0000f96, + 0x7ee4: 0xe0000f8a, 0x7ee5: 0xe0000f87, 0x7ee6: 0x00303688, 0x7ee7: 0x40303620, + 0x7ee8: 0xe000102b, 0x7ee9: 0xe0001028, 0x7eea: 0xe000103f, 0x7eeb: 0xe000103c, + 0x7eec: 0xe0000fe7, 0x7eed: 0xe0000fe4, 0x7eee: 0xe0000ff9, 0x7eef: 0xe0000ff6, + 0x7ef0: 0x003100c3, 0x7ef1: 0x40310022, 0x7ef2: 0xe0001039, 0x7ef3: 0xe0001036, + 0x7ef4: 0xe00010d8, 0x7ef5: 0xe00010d5, 0x7ef6: 0xe000110e, 0x7ef7: 0xe000110b, + 0x7ef8: 0xe0001117, 0x7ef9: 0xe000113b, 0x7efa: 0xe0001138, 0x7efb: 0xe000114d, + 0x7efc: 0xe000114a, 0x7efd: 0xe0001147, 0x7efe: 0xe0001144, 0x7eff: 0xe0000f64, + // Block 0x1fc, offset 0x7f00 + 0x7f00: 0x40321220, 0x7f01: 0x40321a20, 0x7f02: 0x40322220, 0x7f03: 0x40322a20, + 0x7f04: 0xe0000ad5, 0x7f05: 0xe0000ad1, 0x7f06: 0xe0000acd, 0x7f07: 0xf0000a0a, + 0x7f08: 0xf000040a, 0x7f09: 0xf0000404, 0x7f0a: 0xf0000a0a, 0x7f0b: 0xf000040a, + 0x7f0c: 0xf0000404, 0x7f0d: 0xe0000947, 0x7f0e: 0xe0000944, 0x7f0f: 0xe0000c3d, + 0x7f10: 0xe0000c3a, 0x7f11: 0xe0000dcc, 0x7f12: 0xe0000dc9, 0x7f13: 0xe0000ff3, + 0x7f14: 0xe0000ff0, 0x7f15: 0xe000298b, 0x7f16: 0xe0002988, 0x7f17: 0xe0002979, + 0x7f18: 0xe0002976, 0x7f19: 0xe0002985, 0x7f1a: 0xe0002982, 0x7f1b: 0xe000297f, + 0x7f1c: 0xe000297c, 0x7f1d: 0x402cae20, 0x7f1e: 0xe000299d, 0x7f1f: 0xe000299a, + 0x7f20: 0xe0000976, 0x7f21: 0xe0000972, 0x7f22: 0xe0002997, 0x7f23: 0xe0002994, + 0x7f24: 0x002d3a88, 0x7f25: 0x402d3a20, 0x7f26: 0xe0000bbe, 0x7f27: 0xe0000bbb, + 0x7f28: 0xe0000c99, 0x7f29: 0xe0000c96, 0x7f2a: 0xe0000e20, 0x7f2b: 0xe0000e1d, + 0x7f2c: 0xe0000e27, 0x7f2d: 0xe0000e23, 0x7f2e: 0xe0001162, 0x7f2f: 0xe000115f, + 0x7f30: 0xe0000c8d, 0x7f31: 0xf0000a0a, 0x7f32: 0xf000040a, 0x7f33: 0xf0000404, + 0x7f34: 0xe0000bac, 0x7f35: 0xe0000ba9, 0x7f36: 0x002d7888, 0x7f37: 0x00319488, + 0x7f38: 0xe0000d57, 0x7f39: 0xe0000d54, 0x7f3a: 0xe00029b5, 0x7f3b: 0xe00029b2, + 0x7f3c: 0xe0002991, 0x7f3d: 0xe000298e, 0x7f3e: 0xe00029a3, 0x7f3f: 0xe00029a0, + // Block 0x1fd, offset 0x7f40 + 0x7f40: 0xe000098f, 0x7f41: 0xe000098c, 0x7f42: 0xe0000995, 0x7f43: 0xe0000992, + 0x7f44: 0xe0000b62, 0x7f45: 0xe0000b5f, 0x7f46: 0xe0000b68, 0x7f47: 0xe0000b65, + 0x7f48: 0xe0000c6c, 0x7f49: 0xe0000c69, 0x7f4a: 0xe0000c72, 0x7f4b: 0xe0000c6f, + 0x7f4c: 0xe0000e4a, 0x7f4d: 0xe0000e47, 0x7f4e: 0xe0000e50, 0x7f4f: 0xe0000e4d, + 0x7f50: 0xe0000ee8, 0x7f51: 0xe0000ee5, 0x7f52: 0xe0000eee, 0x7f53: 0xe0000eeb, + 0x7f54: 0xe0001053, 0x7f55: 0xe0001050, 0x7f56: 0xe0001059, 0x7f57: 0xe0001056, + 0x7f58: 0xe0000f61, 0x7f59: 0xe0000f5e, 0x7f5a: 0xe0000fa5, 0x7f5b: 0xe0000fa2, + 0x7f5c: 0x00312288, 0x7f5d: 0x40312220, 0x7f5e: 0xe0000bf4, 0x7f5f: 0xe0000bf1, + 0x7f60: 0x002ebc88, 0x7f61: 0x402c8c20, 0x7f62: 0x002f2288, 0x7f63: 0x402f2220, + 0x7f64: 0x00314088, 0x7f65: 0x40314020, 0x7f66: 0xe000096f, 0x7f67: 0xe000096c, + 0x7f68: 0xe0000b32, 0x7f69: 0xe0000b2f, 0x7f6a: 0xe00029af, 0x7f6b: 0xe00029ac, + 0x7f6c: 0xe0000dfd, 0x7f6d: 0xe0000df9, 0x7f6e: 0xe0000e04, 0x7f6f: 0xe0000e01, + 0x7f70: 0xe0000e0b, 0x7f71: 0xe0000e07, 0x7f72: 0xe0001129, 0x7f73: 0xe0001126, + 0x7f74: 0x402e5e20, 0x7f75: 0x402ed020, 0x7f76: 0x40305a20, 0x7f77: 0x402dd420, + 0x7f78: 0xe0000abf, 0x7f79: 0xe0000ec4, 0x7f7a: 0x002be888, 0x7f7b: 0x002c4488, + 0x7f7c: 0x402c4420, 0x7f7d: 0x002e3888, 0x7f7e: 0x00303e88, 0x7f7f: 0x402ffc20, + // Block 0x1fe, offset 0x7f80 + 0x7f80: 0x402c2820, 0x7f81: 0x402c7020, 0x7f82: 0x402d1420, 0x7f83: 0x402d4220, + 0x7f84: 0x402e0820, 0x7f85: 0x402e5220, 0x7f86: 0x402e8e20, 0x7f87: 0x402ec620, + 0x7f88: 0x402f3c20, 0x7f89: 0x402faa20, 0x7f8a: 0x402ff220, 0x7f8b: 0x40301020, + 0x7f8c: 0x4030ca20, 0x7f8d: 0x4030fe20, 0x7f8e: 0x40313e20, 0x7f8f: 0x402bea20, + 0x7f90: 0x402c0020, 0x7f91: 0x402c8220, 0x7f92: 0x402caa20, 0x7f93: 0x402cca20, + 0x7f94: 0x402ce420, 0x7f95: 0x402cc020, 0x7f96: 0x402dc020, 0x7f97: 0x402f0620, + 0x7f98: 0x40302220, 0x7f99: 0x40308620, 0x7f9a: 0x40317620, 0x7f9b: 0x002c0294, + 0x7f9c: 0x002c3a94, 0x7f9d: 0x002c5694, 0x7f9e: 0xe000296d, 0x7f9f: 0x002cdc94, + 0x7fa0: 0x002d0894, 0x7fa1: 0x002dee94, 0x7fa2: 0x002d2a94, 0x7fa3: 0x00308894, + 0x7fa4: 0x002db694, 0x7fa5: 0x002dc294, 0x7fa6: 0x002daa94, 0x7fa7: 0x002dbe94, + 0x7fa8: 0x002de694, 0x7fa9: 0x002e5494, 0x7faa: 0x002e5294, 0x7fab: 0x002e2a94, + 0x7fac: 0x002e9094, 0x7fad: 0x0030ac94, 0x7fae: 0x002eb494, 0x7faf: 0x002ec894, + 0x7fb0: 0x002ea694, 0x7fb1: 0x002f1094, 0x7fb2: 0x002f4c94, 0x7fb3: 0x002ff494, + 0x7fb4: 0x00300894, 0x7fb5: 0x00304294, 0x7fb6: 0x00307c94, 0x7fb7: 0x0030b494, + 0x7fb8: 0x00307494, 0x7fb9: 0x0030cc94, 0x7fba: 0x0030da94, 0x7fbb: 0x00312a94, + 0x7fbc: 0x00314894, 0x7fbd: 0x00315094, 0x7fbe: 0x00316494, 0x7fbf: 0x00326a94, + // Block 0x1ff, offset 0x7fc0 + 0x7fc0: 0xe0000d24, 0x7fc1: 0xe0000d21, 0x7fc2: 0xe0000d2a, 0x7fc3: 0xe0000d27, + 0x7fc4: 0xe0000d69, 0x7fc5: 0xe0000d66, 0x7fc6: 0xe0000d7b, 0x7fc7: 0xe0000d78, + 0x7fc8: 0xe0000d87, 0x7fc9: 0xe0000d84, 0x7fca: 0xe0000d81, 0x7fcb: 0xe0000d7e, + 0x7fcc: 0xe0000ded, 0x7fcd: 0xe0000de9, 0x7fce: 0xe00029a9, 0x7fcf: 0xe00029a6, + 0x7fd0: 0xe0000e3d, 0x7fd1: 0xe0000e39, 0x7fd2: 0xe0000e35, 0x7fd3: 0xe0000e31, + 0x7fd4: 0xe0000ea7, 0x7fd5: 0xe0000ea4, 0x7fd6: 0xe0000ead, 0x7fd7: 0xe0000eaa, + 0x7fd8: 0xe0000ed6, 0x7fd9: 0xe0000ed3, 0x7fda: 0xe0000ef4, 0x7fdb: 0xe0000ef1, + 0x7fdc: 0xe0000efb, 0x7fdd: 0xe0000ef7, 0x7fde: 0xe0000f02, 0x7fdf: 0xe0000eff, + 0x7fe0: 0xe0000f41, 0x7fe1: 0xe0000f3e, 0x7fe2: 0xe0000f53, 0x7fe3: 0xe0000f50, + 0x7fe4: 0xe0000f26, 0x7fe5: 0xe0000f22, 0x7fe6: 0xe0000f3a, 0x7fe7: 0xe0000f36, + 0x7fe8: 0xe0000f5a, 0x7fe9: 0xe0000f56, 0x7fea: 0xe0000f93, 0x7feb: 0xe0000f90, + 0x7fec: 0xe0000f9f, 0x7fed: 0xe0000f9c, 0x7fee: 0xe0000fb1, 0x7fef: 0xe0000fae, + 0x7ff0: 0xe0000fab, 0x7ff1: 0xe0000fa8, 0x7ff2: 0xe0001093, 0x7ff3: 0xe0001090, + 0x7ff4: 0xe000109f, 0x7ff5: 0xe000109c, 0x7ff6: 0xe0001099, 0x7ff7: 0xe0001096, + 0x7ff8: 0xe0001032, 0x7ff9: 0xe000102e, 0x7ffa: 0xe000298b, 0x7ffb: 0xe0002988, + 0x7ffc: 0xe00010a9, 0x7ffd: 0xe00010a6, 0x7ffe: 0xe00010af, 0x7fff: 0xe00010ac, + // Block 0x200, offset 0x8000 + 0x8000: 0xe00009bc, 0x8001: 0xe00009c0, 0x8002: 0x002c3a8b, 0x8003: 0xf0000a04, + 0x8004: 0x40081c20, 0x8005: 0xe0000a5e, 0x8006: 0xe0000a62, 0x8007: 0x002cc28a, + 0x8008: 0x40081e20, 0x8009: 0xf0000a04, 0x800a: 0x002d2285, 0x800b: 0x002d688b, + 0x800c: 0x002d688b, 0x800d: 0x002d688b, 0x800e: 0x002d6885, 0x800f: 0xf0000202, + 0x8010: 0x002d9a8b, 0x8011: 0x002d9a8b, 0x8012: 0x002e228b, 0x8013: 0x002e2285, + 0x8014: 0x40082020, 0x8015: 0x002e9e8b, 0x8016: 0xf000040a, 0x8017: 0x40082220, + 0x8018: 0x40082420, 0x8019: 0x002f2c8b, 0x801a: 0x002f568b, 0x801b: 0x002f7a8b, + 0x801c: 0x002f7a8b, 0x801d: 0x002f7a8b, 0x801e: 0x40082620, 0x801f: 0x40082820, + 0x8020: 0xf0001414, 0x8021: 0xe0000fbd, 0x8022: 0xf0001414, 0x8023: 0x40082a20, + 0x8024: 0x00312a8b, 0x8025: 0x40082c20, 0x8026: 0x0032a288, 0x8027: 0x40082e20, + 0x8028: 0x00312a8b, 0x8029: 0x40083020, 0x802a: 0x002dfe88, 0x802b: 0x00321083, + 0x802c: 0x002c0a8b, 0x802d: 0x002c3a8b, 0x802e: 0x40083220, 0x802f: 0x002c9885, + 0x8030: 0x002c988b, 0x8031: 0x002d088b, 0x8032: 0x002d1e88, 0x8033: 0x002e828b, + 0x8034: 0x002ee285, 0x8035: 0x00389084, 0x8036: 0x00389284, 0x8037: 0x00389484, + 0x8038: 0x00389684, 0x8039: 0x002d9a85, 0x803a: 0x40083420, 0x803b: 0xe0000b95, + 0x803c: 0x00327e85, 0x803d: 0x00325685, 0x803e: 0x0032568b, 0x803f: 0x00327e8b, + // Block 0x201, offset 0x8040 + 0x8040: 0xa0000000, 0x8041: 0xa0000000, 0x8042: 0xa0000000, 0x8043: 0xa0000000, + 0x8044: 0xa0000000, 0x8045: 0xa0000000, 0x8046: 0xa0000000, 0x8047: 0xa0000000, + 0x8048: 0xa0000000, 0x8049: 0x40020020, 0x804a: 0x40020220, 0x804b: 0x40020420, + 0x804c: 0x40020620, 0x804d: 0x40020820, 0x804e: 0xa0000000, 0x804f: 0xa0000000, + 0x8050: 0xa0000000, 0x8051: 0xa0000000, 0x8052: 0xa0000000, 0x8053: 0xa0000000, + 0x8054: 0xa0000000, 0x8055: 0xa0000000, 0x8056: 0xa0000000, 0x8057: 0xa0000000, + 0x8058: 0xa0000000, 0x8059: 0xa0000000, 0x805a: 0xa0000000, 0x805b: 0xa0000000, + 0x805c: 0xa0000000, 0x805d: 0xa0000000, 0x805e: 0xa0000000, 0x805f: 0xa0000000, + 0x8060: 0x40021220, 0x8061: 0x4002ba20, 0x8062: 0x4003e020, 0x8063: 0x4004ea20, + 0x8064: 0x4027de20, 0x8065: 0x4004ec20, 0x8066: 0x4004e620, 0x8067: 0x4003d220, + 0x8068: 0x4003f420, 0x8069: 0x4003f620, 0x806a: 0x4004d820, 0x806b: 0x40093820, + 0x806c: 0x40024020, 0x806d: 0x40021a20, 0x806e: 0x4002e420, 0x806f: 0x4004e220, + 0x8070: 0x4029cc20, 0x8071: 0x4029ce20, 0x8072: 0x4029d020, 0x8073: 0x4029d220, + 0x8074: 0x4029d420, 0x8075: 0x4029d620, 0x8076: 0x4029d820, 0x8077: 0x4029da20, + 0x8078: 0x4029dc20, 0x8079: 0x4029de20, 0x807a: 0x40026c20, 0x807b: 0x40026220, + 0x807c: 0x40094020, 0x807d: 0x40094220, 0x807e: 0x40094420, 0x807f: 0x4002c420, + // Block 0x202, offset 0x8080 + 0x8080: 0x4004d620, 0x8081: 0xc3a80071, 0x8082: 0x002c0a88, 0x8083: 0x002c3a88, + 0x8084: 0x002c6288, 0x8085: 0x002c9888, 0x8086: 0x002d0888, 0x8087: 0x002d2288, + 0x8088: 0x002d6888, 0x8089: 0x002d9a88, 0x808a: 0x002dcc88, 0x808b: 0x002dfe88, + 0x808c: 0xc0030002, 0x808d: 0x002e8288, 0x808e: 0x002e9e88, 0x808f: 0xc3ac0071, + 0x8090: 0x002f2c88, 0x8091: 0x002f5688, 0x8092: 0x002f7a88, 0x8093: 0x002fe688, + 0x8094: 0x00302c88, 0x8095: 0xc3b00071, 0x8096: 0x0030be88, 0x8097: 0x0030e288, + 0x8098: 0x0030f688, 0x8099: 0x00310088, 0x809a: 0x00312a88, 0x809b: 0x4003f820, + 0x809c: 0x4004e420, 0x809d: 0x4003fa20, 0x809e: 0x40062420, 0x809f: 0x40021620, + 0x80a0: 0x40061e20, 0x80a1: 0xc3a60071, 0x80a2: 0x402c0a20, 0x80a3: 0x402c3a20, + 0x80a4: 0x402c6220, 0x80a5: 0x402c9820, 0x80a6: 0x402d0820, 0x80a7: 0x402d2220, + 0x80a8: 0x402d6820, 0x80a9: 0x402d9a20, 0x80aa: 0x402dcc20, 0x80ab: 0x402dfe20, + 0x80ac: 0xc0000002, 0x80ad: 0x402e8220, 0x80ae: 0x402e9e20, 0x80af: 0xc3aa0071, + 0x80b0: 0x402f2c20, 0x80b1: 0x402f5620, 0x80b2: 0x402f7a20, 0x80b3: 0x402fe620, + 0x80b4: 0x40302c20, 0x80b5: 0xc3ae0071, 0x80b6: 0x4030be20, 0x80b7: 0x4030e220, + 0x80b8: 0x4030f620, 0x80b9: 0x40310020, 0x80ba: 0x40312a20, 0x80bb: 0x4003fc20, + 0x80bc: 0x40094820, 0x80bd: 0x4003fe20, 0x80be: 0x40094c20, 0x80bf: 0xa0000000, + // Block 0x203, offset 0x80c0 + 0x80c0: 0xe00008f5, 0x80c1: 0xe00008ef, 0x80c2: 0xe0000921, 0x80c3: 0xe0000969, + 0x80c4: 0xe00029bb, 0x80c5: 0xe000094d, 0x80c6: 0xe00009dd, 0x80c7: 0xe0000a53, + 0x80c8: 0xe0000ae8, 0x80c9: 0xe0000ae2, 0x80ca: 0xe0000af4, 0x80cb: 0xe0000b20, + 0x80cc: 0xe0000c2b, 0x80cd: 0xe0000c25, 0x80ce: 0xe0000c37, 0x80cf: 0xe0000c43, + 0x80d0: 0xe0000ab3, 0x80d1: 0xe0000d63, 0x80d2: 0xe0000d9a, 0x80d3: 0xe0000d94, + 0x80d4: 0xe0000da6, 0x80d5: 0xe0000de6, 0x80d6: 0xe00029c9, 0x80d7: 0x40093e20, + 0x80d8: 0xe0000e12, 0x80d9: 0xe0000fe1, 0x80da: 0xe0000fdb, 0x80db: 0xe0000fed, + 0x80dc: 0xe00029df, 0x80dd: 0xe0001102, 0x80de: 0x00318888, 0x80df: 0xe0000f7b, + 0x80e0: 0xe00008f2, 0x80e1: 0xe00008ec, 0x80e2: 0xe000091e, 0x80e3: 0xe0000966, + 0x80e4: 0xe00029b8, 0x80e5: 0xe000094a, 0x80e6: 0xe00009d5, 0x80e7: 0xe0000a4d, + 0x80e8: 0xe0000ae5, 0x80e9: 0xe0000adf, 0x80ea: 0xe0000af1, 0x80eb: 0xe0000b1d, + 0x80ec: 0xe0000c28, 0x80ed: 0xe0000c22, 0x80ee: 0xe0000c34, 0x80ef: 0xe0000c40, + 0x80f0: 0xe0000aad, 0x80f1: 0xe0000d60, 0x80f2: 0xe0000d97, 0x80f3: 0xe0000d91, + 0x80f4: 0xe0000da3, 0x80f5: 0xe0000de3, 0x80f6: 0xe00029c6, 0x80f7: 0x40093c20, + 0x80f8: 0xe0000e0f, 0x80f9: 0xe0000fde, 0x80fa: 0xe0000fd8, 0x80fb: 0xe0000fea, + 0x80fc: 0xe00029dc, 0x80fd: 0xe00010ff, 0x80fe: 0x40318820, 0x80ff: 0xe0001114, + // Block 0x204, offset 0x8100 + 0x8100: 0x40321220, 0x8101: 0x40321a20, 0x8102: 0x40322220, 0x8103: 0x40322a20, + 0x8104: 0xe0000ad5, 0x8105: 0xe0000ad1, 0x8106: 0xe0000acd, 0x8107: 0xf0000a0a, + 0x8108: 0xf000040a, 0x8109: 0xf0000404, 0x810a: 0xf0000a0a, 0x810b: 0xf000040a, + 0x810c: 0xf0000404, 0x810d: 0xe0000947, 0x810e: 0xe0000944, 0x810f: 0xe0000c3d, + 0x8110: 0xe0000c3a, 0x8111: 0xe0000dcc, 0x8112: 0xe0000dc9, 0x8113: 0xe0000ff3, + 0x8114: 0xe0000ff0, 0x8115: 0xe00029fe, 0x8116: 0xe00029fa, 0x8117: 0xe00029e6, + 0x8118: 0xe00029e2, 0x8119: 0xe00029f6, 0x811a: 0xe00029f2, 0x811b: 0xe00029ee, + 0x811c: 0xe00029ea, 0x811d: 0x402cae20, 0x811e: 0xe00029c2, 0x811f: 0xe00029be, + 0x8120: 0xe0000976, 0x8121: 0xe0000972, 0x8122: 0xe00009f4, 0x8123: 0xe00009ef, + 0x8124: 0x002d3a88, 0x8125: 0x402d3a20, 0x8126: 0xe0000bbe, 0x8127: 0xe0000bbb, + 0x8128: 0xe0000c99, 0x8129: 0xe0000c96, 0x812a: 0xe0000e20, 0x812b: 0xe0000e1d, + 0x812c: 0xe0000e27, 0x812d: 0xe0000e23, 0x812e: 0xe0001162, 0x812f: 0xe000115f, + 0x8130: 0xe0000c8d, 0x8131: 0xf0000a0a, 0x8132: 0xf000040a, 0x8133: 0xf0000404, + 0x8134: 0xe0000bac, 0x8135: 0xe0000ba9, 0x8136: 0x002d7888, 0x8137: 0x00319488, + 0x8138: 0xe0000d57, 0x8139: 0xe0000d54, 0x813a: 0xe0000954, 0x813b: 0xe0000950, + 0x813c: 0xe00009ea, 0x813d: 0xe00009e5, 0x813e: 0xe0000e19, 0x813f: 0xe0000e15, + // Block 0x205, offset 0x8140 + 0x8140: 0xe000098f, 0x8141: 0xe000098c, 0x8142: 0xe0000995, 0x8143: 0xe0000992, + 0x8144: 0xe0000b62, 0x8145: 0xe0000b5f, 0x8146: 0xe0000b68, 0x8147: 0xe0000b65, + 0x8148: 0xe0000c6c, 0x8149: 0xe0000c69, 0x814a: 0xe0000c72, 0x814b: 0xe0000c6f, + 0x814c: 0xe0000e4a, 0x814d: 0xe0000e47, 0x814e: 0xe0000e50, 0x814f: 0xe0000e4d, + 0x8150: 0xe0000ee8, 0x8151: 0xe0000ee5, 0x8152: 0xe0000eee, 0x8153: 0xe0000eeb, + 0x8154: 0xe0001053, 0x8155: 0xe0001050, 0x8156: 0xe0001059, 0x8157: 0xe0001056, + 0x8158: 0xe0000f61, 0x8159: 0xe0000f5e, 0x815a: 0xe0000fa5, 0x815b: 0xe0000fa2, + 0x815c: 0x00312288, 0x815d: 0x40312220, 0x815e: 0xe0000bf4, 0x815f: 0xe0000bf1, + 0x8160: 0x002ebc88, 0x8161: 0x402c8c20, 0x8162: 0x002f2288, 0x8163: 0x402f2220, + 0x8164: 0x00314088, 0x8165: 0x40314020, 0x8166: 0xe000096f, 0x8167: 0xe000096c, + 0x8168: 0xe0000b32, 0x8169: 0xe0000b2f, 0x816a: 0xe00029d8, 0x816b: 0xe00029d4, + 0x816c: 0xe0000dfd, 0x816d: 0xe0000df9, 0x816e: 0xe0000e04, 0x816f: 0xe0000e01, + 0x8170: 0xe0000e0b, 0x8171: 0xe0000e07, 0x8172: 0xe0001129, 0x8173: 0xe0001126, + 0x8174: 0x402e5e20, 0x8175: 0x402ed020, 0x8176: 0x40305a20, 0x8177: 0x402dd420, + 0x8178: 0xe0000abf, 0x8179: 0xe0000ec4, 0x817a: 0x002be888, 0x817b: 0x002c4488, + 0x817c: 0x402c4420, 0x817d: 0x002e3888, 0x817e: 0x00303e88, 0x817f: 0x402ffc20, + // Block 0x206, offset 0x8180 + 0x8180: 0xe0000d24, 0x8181: 0xe0000d21, 0x8182: 0xe0000d2a, 0x8183: 0xe0000d27, + 0x8184: 0xe0000d69, 0x8185: 0xe0000d66, 0x8186: 0xe0000d7b, 0x8187: 0xe0000d78, + 0x8188: 0xe0000d87, 0x8189: 0xe0000d84, 0x818a: 0xe0000d81, 0x818b: 0xe0000d7e, + 0x818c: 0xe0000ded, 0x818d: 0xe0000de9, 0x818e: 0xe00029d0, 0x818f: 0xe00029cc, + 0x8190: 0xe0000e3d, 0x8191: 0xe0000e39, 0x8192: 0xe0000e35, 0x8193: 0xe0000e31, + 0x8194: 0xe0000ea7, 0x8195: 0xe0000ea4, 0x8196: 0xe0000ead, 0x8197: 0xe0000eaa, + 0x8198: 0xe0000ed6, 0x8199: 0xe0000ed3, 0x819a: 0xe0000ef4, 0x819b: 0xe0000ef1, + 0x819c: 0xe0000efb, 0x819d: 0xe0000ef7, 0x819e: 0xe0000f02, 0x819f: 0xe0000eff, + 0x81a0: 0xe0000f41, 0x81a1: 0xe0000f3e, 0x81a2: 0xe0000f53, 0x81a3: 0xe0000f50, + 0x81a4: 0xe0000f26, 0x81a5: 0xe0000f22, 0x81a6: 0xe0000f3a, 0x81a7: 0xe0000f36, + 0x81a8: 0xe0000f5a, 0x81a9: 0xe0000f56, 0x81aa: 0xe0000f93, 0x81ab: 0xe0000f90, + 0x81ac: 0xe0000f9f, 0x81ad: 0xe0000f9c, 0x81ae: 0xe0000fb1, 0x81af: 0xe0000fae, + 0x81b0: 0xe0000fab, 0x81b1: 0xe0000fa8, 0x81b2: 0xe0001093, 0x81b3: 0xe0001090, + 0x81b4: 0xe000109f, 0x81b5: 0xe000109c, 0x81b6: 0xe0001099, 0x81b7: 0xe0001096, + 0x81b8: 0xe0001032, 0x81b9: 0xe000102e, 0x81ba: 0xe00029fe, 0x81bb: 0xe00029fa, + 0x81bc: 0xe00010a9, 0x81bd: 0xe00010a6, 0x81be: 0xe00010af, 0x81bf: 0xe00010ac, + // Block 0x207, offset 0x81c0 + 0x81c0: 0x40078220, 0x81c1: 0x40075e20, 0x81c2: 0x40076020, 0x81c3: 0x40076220, + 0x81c4: 0x40058220, 0x81c5: 0x40058420, 0x81c6: 0x40058620, 0x81c7: 0x40058820, + 0x81c8: 0x40058a20, 0x81c9: 0x40058c20, 0x81ca: 0x40058e20, 0x81cb: 0x4027bc20, + 0x81cc: 0x0027bc83, 0x81cd: 0x4027bc21, 0x81ce: 0x4027bc22, 0x81cf: 0x4027bc23, + 0x81d0: 0x4027bc24, 0x81d1: 0x4027bc25, 0x81d2: 0x4005a020, 0x81d3: 0x40076420, + 0x81d4: 0x4027bc26, 0x81d5: 0x40076620, 0x81d6: 0x40076820, 0x81d7: 0x40076a20, + 0x81d8: 0xadc00000, 0x81d9: 0xadc00000, 0x81da: 0x40076c20, 0x81db: 0x40076e20, + 0x81dc: 0x40077020, 0x81dd: 0x40077220, 0x81de: 0x40077420, 0x81df: 0x40077620, + 0x81e0: 0xe00001a0, 0x81e1: 0xe0000234, 0x81e2: 0xe000034c, 0x81e3: 0xe0000426, + 0x81e4: 0xe00004fb, 0x81e5: 0xe00005c5, 0x81e6: 0xe0000690, 0x81e7: 0xe0000738, + 0x81e8: 0xe00007e4, 0x81e9: 0xe0000889, 0x81ea: 0xe0000237, 0x81eb: 0xe000034f, + 0x81ec: 0xe0000429, 0x81ed: 0xe00004fe, 0x81ee: 0xe00005c8, 0x81ef: 0xe0000693, + 0x81f0: 0xe000073b, 0x81f1: 0xe00007e7, 0x81f2: 0xe000088c, 0x81f3: 0xe00001a3, + 0x81f4: 0x4027bc27, 0x81f5: 0xadc00000, 0x81f6: 0x40077a20, 0x81f7: 0xadc00000, + 0x81f8: 0x40077c20, 0x81f9: 0xae611002, 0x81fa: 0x40040020, 0x81fb: 0x40040220, + 0x81fc: 0x40040420, 0x81fd: 0x40040620, 0x81fe: 0xa0000000, 0x81ff: 0xa0000000, + // Block 0x208, offset 0x8200 + 0x8200: 0x404a7620, 0x8201: 0x404a7c20, 0x8202: 0xc4db2161, 0x8203: 0xe0002a23, + 0x8204: 0x404a8420, 0x8205: 0x404a8820, 0x8206: 0x404a8c20, 0x8207: 0x404a9020, + 0x8209: 0x404a9420, 0x820a: 0x004aa883, 0x820b: 0x004aac83, + 0x820c: 0x004ab083, 0x820d: 0xe0002a5b, 0x820e: 0x004ab483, 0x820f: 0x404aa820, + 0x8210: 0x404aac20, 0x8211: 0xc3b50c31, 0x8212: 0xe0002a58, 0x8213: 0x404ab420, + 0x8214: 0x404ab820, 0x8215: 0x404abc20, 0x8216: 0xc3ff1211, 0x8217: 0xe0002a7c, + 0x8218: 0xc46018e1, 0x8219: 0x404ac820, 0x821a: 0x404acc20, 0x821b: 0x404ad020, + 0x821c: 0xe0002a9d, 0x821d: 0x404ad420, 0x821e: 0x404ad820, 0x821f: 0x404adc20, + 0x8220: 0xc49b1d01, 0x8221: 0x404ae420, 0x8222: 0xc4481761, 0x8223: 0xc4551831, + 0x8224: 0x404af220, 0x8225: 0x004af283, 0x8226: 0xc48f1c51, 0x8227: 0x404afe20, + 0x8228: 0x404b0220, 0x8229: 0xe0002a02, 0x822a: 0x004ae883, 0x822b: 0x404a7a20, + 0x822c: 0x404aec20, + 0x8231: 0xc5270751, 0x8232: 0x8282258c, 0x8233: 0x8281258d, + 0x8234: 0x82842590, 0x8235: 0x82812591, 0x8236: 0x404b2420, 0x8237: 0x404b2620, + 0x8238: 0x404b2820, 0x8239: 0x404b2a20, 0x823a: 0x82822596, 0x823b: 0x83822596, + 0x823c: 0x82822598, 0x823d: 0x83822598, 0x823e: 0x004ac483, 0x823f: 0xae611102, + // Block 0x209, offset 0x8240 + 0x8240: 0x8382258c, 0x8241: 0x8281258f, 0x8242: 0x004ac484, 0x8243: 0x004ac485, + 0x8244: 0xae610e02, 0x8245: 0xae611202, 0x8246: 0xae600000, 0x8247: 0xae600000, + 0x8248: 0xc3b20c01, 0x8249: 0xc5122551, 0x824a: 0xae611502, 0x824b: 0xc5102521, + 0x824c: 0x404b0e20, 0x824d: 0x404b0820, 0x824e: 0x404b0c20, 0x824f: 0x404b1020, + 0x8250: 0x82822599, 0x8251: 0x8282259a, 0x8252: 0x8282259b, 0x8253: 0xe0002ac7, + 0x8254: 0x8282259c, 0x8255: 0x8282259d, 0x8256: 0x8282259e, 0x8257: 0x8282259f, + 0x8259: 0x828225a0, 0x825a: 0x838225a1, 0x825b: 0x838225a2, + 0x825c: 0x838225a3, 0x825d: 0xe0002acd, 0x825e: 0x838225a4, 0x825f: 0x828225a1, + 0x8260: 0x828225a2, 0x8261: 0x828225a3, 0x8262: 0xe0002aca, 0x8263: 0x828225a4, + 0x8264: 0x828225a5, 0x8265: 0x828225a6, 0x8266: 0x828225a7, 0x8267: 0xe0002ad0, + 0x8268: 0x828225a8, 0x8269: 0x828225a9, 0x826a: 0x828225aa, 0x826b: 0x828225ab, + 0x826c: 0xe0002ad3, 0x826d: 0x828225ac, 0x826e: 0x828225ad, 0x826f: 0x828225ae, + 0x8270: 0x828225af, 0x8271: 0x828225b0, 0x8272: 0xc5152581, 0x8273: 0xc51e2581, + 0x8274: 0x828225b3, 0x8275: 0x838225b3, 0x8276: 0x828225b4, 0x8277: 0x828225b5, + 0x8278: 0x828225b6, 0x8279: 0xe0002ac4, 0x827a: 0x838225ac, 0x827b: 0x838225b0, + 0x827c: 0x838225b1, 0x827e: 0x40077e20, 0x827f: 0x40078020, + // Block 0x20a, offset 0x8280 + 0x8280: 0xa0000000, 0x8281: 0xa0000000, 0x8282: 0xa0000000, 0x8283: 0xa0000000, + 0x8284: 0xa0000000, 0x8285: 0xa0000000, 0x8286: 0xa0000000, 0x8287: 0xa0000000, + 0x8288: 0xa0000000, 0x8289: 0x40020020, 0x828a: 0x40020220, 0x828b: 0x40020420, + 0x828c: 0x40020620, 0x828d: 0x40020820, 0x828e: 0xa0000000, 0x828f: 0xa0000000, + 0x8290: 0xa0000000, 0x8291: 0xa0000000, 0x8292: 0xa0000000, 0x8293: 0xa0000000, + 0x8294: 0xa0000000, 0x8295: 0xa0000000, 0x8296: 0xa0000000, 0x8297: 0xa0000000, + 0x8298: 0xa0000000, 0x8299: 0xa0000000, 0x829a: 0xa0000000, 0x829b: 0xa0000000, + 0x829c: 0xa0000000, 0x829d: 0xa0000000, 0x829e: 0xa0000000, 0x829f: 0xa0000000, + 0x82a0: 0x40021220, 0x82a1: 0x4002ba20, 0x82a2: 0x4003e020, 0x82a3: 0x4004ea20, + 0x82a4: 0x4027de20, 0x82a5: 0x4004ec20, 0x82a6: 0x4004e620, 0x82a7: 0x4003d220, + 0x82a8: 0x4003f420, 0x82a9: 0x4003f620, 0x82aa: 0x4004d820, 0x82ab: 0x40093820, + 0x82ac: 0x40024020, 0x82ad: 0x40021a20, 0x82ae: 0x4002e420, 0x82af: 0x4004e220, + 0x82b0: 0x4029cc20, 0x82b1: 0x4029ce20, 0x82b2: 0x4029d020, 0x82b3: 0x4029d220, + 0x82b4: 0x4029d420, 0x82b5: 0x4029d620, 0x82b6: 0x4029d820, 0x82b7: 0x4029da20, + 0x82b8: 0x4029dc20, 0x82b9: 0x4029de20, 0x82ba: 0x40026c20, 0x82bb: 0x40026220, + 0x82bc: 0x40094020, 0x82bd: 0x40094220, 0x82be: 0x40094420, 0x82bf: 0x4002c420, + // Block 0x20b, offset 0x82c0 + 0x82c0: 0x4004d620, 0x82c1: 0x002bde88, 0x82c2: 0x002c0a88, 0x82c3: 0x002c3a88, + 0x82c4: 0xc36a2662, 0x82c5: 0x002c9888, 0x82c6: 0x002d0888, 0x82c7: 0xc52b2692, + 0x82c8: 0x002d6888, 0x82c9: 0x002d9a88, 0x82ca: 0x002dcc88, 0x82cb: 0xc53026c2, + 0x82cc: 0xc0030002, 0x82cd: 0x002e8288, 0x82ce: 0xc53526f2, 0x82cf: 0x002ee288, + 0x82d0: 0x002f2c88, 0x82d1: 0x002f5688, 0x82d2: 0x002f7a88, 0x82d3: 0x002fe688, + 0x82d4: 0xc38a2722, 0x82d5: 0x00306c88, 0x82d6: 0x0030be88, 0x82d7: 0x0030e288, + 0x82d8: 0x002d6a83, 0x82d9: 0x00310088, 0x82da: 0x00312a88, 0x82db: 0x4003f820, + 0x82dc: 0x4004e420, 0x82dd: 0x4003fa20, 0x82de: 0x40062420, 0x82df: 0x40021620, + 0x82e0: 0x40061e20, 0x82e1: 0x402bde20, 0x82e2: 0x402c0a20, 0x82e3: 0x402c3a20, + 0x82e4: 0xc3682651, 0x82e5: 0x402c9820, 0x82e6: 0x402d0820, 0x82e7: 0xc3372681, + 0x82e8: 0x402d6820, 0x82e9: 0x402d9a20, 0x82ea: 0x402dcc20, 0x82eb: 0xc52e26b1, + 0x82ec: 0xc0000002, 0x82ed: 0x402e8220, 0x82ee: 0xc53326e1, 0x82ef: 0x402ee220, + 0x82f0: 0x402f2c20, 0x82f1: 0x402f5620, 0x82f2: 0x402f7a20, 0x82f3: 0x402fe620, + 0x82f4: 0xc3882711, 0x82f5: 0x40306c20, 0x82f6: 0x4030be20, 0x82f7: 0x4030e220, + 0x82f8: 0x402d6a20, 0x82f9: 0x40310020, 0x82fa: 0x40312a20, 0x82fb: 0x4003fc20, + 0x82fc: 0x40094820, 0x82fd: 0x4003fe20, 0x82fe: 0x40094c20, 0x82ff: 0xa0000000, + // Block 0x20c, offset 0x8300 + 0x8300: 0xe00008f5, 0x8301: 0xe00008ef, 0x8302: 0xe0002ad9, 0x8303: 0xe0000969, + 0x8304: 0xe000095b, 0x8305: 0xe000094d, 0x8306: 0xe00009dd, 0x8307: 0xe0000a53, + 0x8308: 0xe0000ae8, 0x8309: 0xe0000ae2, 0x830a: 0xe0002b0d, 0x830b: 0xe0000b20, + 0x830c: 0xe0000c2b, 0x830d: 0xe0000c25, 0x830e: 0xe0002b47, 0x830f: 0xe0000c43, + 0x8310: 0xe0000ab3, 0x8311: 0xe0000d63, 0x8312: 0xe0000d9a, 0x8313: 0xe0000d94, + 0x8314: 0xe0002b53, 0x8315: 0xe0000de6, 0x8316: 0xe0000dd2, 0x8317: 0x40093e20, + 0x8318: 0xe0000e12, 0x8319: 0xe0000fe1, 0x831a: 0xe0000fdb, 0x831b: 0xe0002b87, + 0x831c: 0xe0000fff, 0x831d: 0xe0001102, 0x831e: 0x00318888, 0x831f: 0xe0000f7b, + 0x8320: 0xe00008f2, 0x8321: 0xe00008ec, 0x8322: 0xe0002ad6, 0x8323: 0xe0000966, + 0x8324: 0xe0000958, 0x8325: 0xe000094a, 0x8326: 0xe00009d5, 0x8327: 0xe0000a4d, + 0x8328: 0xe0000ae5, 0x8329: 0xe0000adf, 0x832a: 0xe0002b0a, 0x832b: 0xe0000b1d, + 0x832c: 0xe0000c28, 0x832d: 0xe0000c22, 0x832e: 0xe0002b44, 0x832f: 0xe0000c40, + 0x8330: 0xe0000aad, 0x8331: 0xe0000d60, 0x8332: 0xe0000d97, 0x8333: 0xe0000d91, + 0x8334: 0xe0002b50, 0x8335: 0xe0000de3, 0x8336: 0xe0000dcf, 0x8337: 0x40093c20, + 0x8338: 0xe0000e0f, 0x8339: 0xe0000fde, 0x833a: 0xe0000fd8, 0x833b: 0xe0002b84, + 0x833c: 0xe0000ffc, 0x833d: 0xe00010ff, 0x833e: 0x40318820, 0x833f: 0xe0001114, + // Block 0x20d, offset 0x8340 + 0x8340: 0xe0000983, 0x8341: 0xe0000980, 0x8342: 0xe00008fb, 0x8343: 0xe00008f8, + 0x8344: 0xe000097d, 0x8345: 0xe000097a, 0x8346: 0xe0000a38, 0x8347: 0xe0000a35, + 0x8348: 0xe0002b07, 0x8349: 0xe0002b04, 0x834a: 0xe0000a4a, 0x834b: 0xe0000a47, + 0x834c: 0xe0000a44, 0x834d: 0xe0000a41, 0x834e: 0xe0000a86, 0x834f: 0xe0000a83, + 0x8350: 0xe0000aaa, 0x8351: 0xe0000aa7, 0x8352: 0xe0000b46, 0x8353: 0xe0000b43, + 0x8354: 0xe0000aee, 0x8355: 0xe0000aeb, 0x8356: 0xe0000b2c, 0x8357: 0xe0000b29, + 0x8358: 0xe0000b40, 0x8359: 0xe0000b3d, 0x835a: 0xe0000b1a, 0x835b: 0xe0000b17, + 0x835c: 0xe0002b3b, 0x835d: 0xe0002b38, 0x835e: 0xe0000bb2, 0x835f: 0xe0000baf, + 0x8360: 0xe0000bc4, 0x8361: 0xe0000bc1, 0x8362: 0xe0000bca, 0x8363: 0xe0000bc7, + 0x8364: 0xe0002b41, 0x8365: 0xe0002b3e, 0x8366: 0xe0000c1b, 0x8367: 0xe0000c18, + 0x8368: 0xe0000c51, 0x8369: 0xe0000c4e, 0x836a: 0xe0000c60, 0x836b: 0xe0000c5d, + 0x836c: 0xe0000c31, 0x836d: 0xe0000c2e, 0x836e: 0xe0000c5a, 0x836f: 0xe0000c57, + 0x8370: 0xe0000c54, 0x8371: 0x402da220, 0x8372: 0xf0000a0a, 0x8373: 0xf0000404, + 0x8374: 0xe0002b4d, 0x8375: 0xe0002b4a, 0x8376: 0xe0000c9f, 0x8377: 0xe0000c9c, + 0x8378: 0x402f7220, 0x8379: 0xe0000ccc, 0x837a: 0xe0000cc9, 0x837b: 0xe0000cd8, + 0x837c: 0xe0000cd5, 0x837d: 0xe0000cd2, 0x837e: 0xe0000ccf, 0x837f: 0xe0000d04, + // Block 0x20e, offset 0x8380 + 0x8380: 0xe0000cfe, 0x8381: 0xe0000cf8, 0x8382: 0xe0000cf5, 0x8383: 0xe0000d51, + 0x8384: 0xe0000d4e, 0x8385: 0xe0000d6f, 0x8386: 0xe0000d6c, 0x8387: 0xe0000d5d, + 0x8388: 0xe0000d5a, 0x8389: 0xf0000404, 0x838a: 0x002ea283, 0x838b: 0x402ea220, + 0x838c: 0xe0000e2e, 0x838d: 0xe0000e2b, 0x838e: 0xe0000da0, 0x838f: 0xe0000d9d, + 0x8390: 0xe0000de0, 0x8391: 0xe0000ddd, 0x8392: 0xe0000e93, 0x8393: 0xe0000e8f, + 0x8394: 0xe0000eca, 0x8395: 0xe0000ec7, 0x8396: 0xe0000edc, 0x8397: 0xe0000ed9, + 0x8398: 0xe0000ed0, 0x8399: 0xe0000ecd, 0x839a: 0xe0000f1f, 0x839b: 0xe0000f1c, + 0x839c: 0xe0002b81, 0x839d: 0xe0002b7e, 0x839e: 0xe0000f47, 0x839f: 0xe0000f44, + 0x83a0: 0xe0000f33, 0x83a1: 0xe0000f30, 0x83a2: 0xe0000f99, 0x83a3: 0xe0000f96, + 0x83a4: 0xe0000f8a, 0x83a5: 0xe0000f87, 0x83a6: 0x00303688, 0x83a7: 0x40303620, + 0x83a8: 0xe000102b, 0x83a9: 0xe0001028, 0x83aa: 0xe000103f, 0x83ab: 0xe000103c, + 0x83ac: 0xe0000fe7, 0x83ad: 0xe0000fe4, 0x83ae: 0xe0000ff9, 0x83af: 0xe0000ff6, + 0x83b0: 0xe0001025, 0x83b1: 0xe0001022, 0x83b2: 0xe0001039, 0x83b3: 0xe0001036, + 0x83b4: 0xe0002b8d, 0x83b5: 0xe0002b8a, 0x83b6: 0xe0002b93, 0x83b7: 0xe0002b90, + 0x83b8: 0xe0001117, 0x83b9: 0xe000113b, 0x83ba: 0xe0001138, 0x83bb: 0xe000114d, + 0x83bc: 0xe000114a, 0x83bd: 0xe0001147, 0x83be: 0xe0001144, 0x83bf: 0xe0000f64, + // Block 0x20f, offset 0x83c0 + 0x83c0: 0x402c1a20, 0x83c1: 0x002c2a88, 0x83c2: 0x002c3288, 0x83c3: 0x402c3220, + 0x83c4: 0x0031c488, 0x83c5: 0x4031c420, 0x83c6: 0x002ee483, 0x83c7: 0x002c4e88, + 0x83c8: 0x402c4e20, 0x83c9: 0x002c6683, 0x83ca: 0x002c7a88, 0x83cb: 0x002c8488, + 0x83cc: 0x402c8420, 0x83cd: 0xe000115c, 0x83ce: 0x002cae88, 0x83cf: 0x002cb888, + 0x83d0: 0x002c9a83, 0x83d1: 0x002d0a83, 0x83d2: 0x402d0a20, 0x83d3: 0x002d4488, + 0x83d4: 0x002d2683, 0x83d5: 0x402d7820, 0x83d6: 0x002dc288, 0x83d7: 0x002db688, + 0x83d8: 0x002e0a88, 0x83d9: 0x402e0a20, 0x83da: 0x402e3820, 0x83db: 0x402e7220, + 0x83dc: 0x0030a088, 0x83dd: 0x002eb488, 0x83de: 0x402ebc20, 0x83df: 0x002f1088, + 0x83e0: 0xe0000e56, 0x83e1: 0xe0000e53, 0x83e2: 0x002d6088, 0x83e3: 0x402d6020, + 0x83e4: 0x002f3e88, 0x83e5: 0x402f3e20, 0x83e6: 0x002f8288, 0x83e7: 0x0031b488, + 0x83e8: 0x4031b420, 0x83e9: 0x00300888, 0x83ea: 0x40301220, 0x83eb: 0x40304220, + 0x83ec: 0x00304a88, 0x83ed: 0x40304a20, 0x83ee: 0x00305288, 0x83ef: 0xe000105f, + 0x83f0: 0xe000105c, 0x83f1: 0x0030b488, 0x83f2: 0x0030c083, 0x83f3: 0x00311888, + 0x83f4: 0x40311820, 0x83f5: 0x00313488, 0x83f6: 0x40313420, 0x83f7: 0x00316488, + 0x83f8: 0x00316e88, 0x83f9: 0x40316e20, 0x83fa: 0x40317820, 0x83fb: 0x4031a620, + 0x83fc: 0x0031bc88, 0x83fd: 0x4031bc20, 0x83fe: 0xe0000fc9, 0x83ff: 0x40319420, + // Block 0x210, offset 0x8400 + 0x8400: 0x40315820, 0x8401: 0x0031d488, 0x8402: 0x4031d420, 0x8403: 0x002c1a88, + 0x8404: 0x00307c88, 0x8405: 0x0030da88, 0x8406: 0x002ca288, 0x8407: 0x402ca220, + 0x8408: 0x002dde88, 0x8409: 0x402dde20, 0x840a: 0x002f6a88, 0x840b: 0x402f6a20, + 0x840c: 0x002f8e88, 0x840d: 0x402f8e20, 0x840e: 0x00311088, 0x840f: 0x40311020, + 0x8410: 0x402bf020, 0x8411: 0x402bf820, 0x8412: 0x402c0220, 0x8413: 0x402c2a20, + 0x8414: 0x402ee420, 0x8415: 0x402c5620, 0x8416: 0x402c6620, 0x8417: 0x402c7a20, + 0x8418: 0x402ccc20, 0x8419: 0x402cb820, 0x841a: 0x402cd420, 0x841b: 0x402c9a20, + 0x841c: 0x402cdc20, 0x841d: 0x402ce820, 0x841e: 0x402cf020, 0x841f: 0x402dee20, + 0x8420: 0x402d4420, 0x8421: 0x402d2a20, 0x8422: 0x402d3220, 0x8423: 0x402d2620, + 0x8424: 0x402d0020, 0x8425: 0x40308820, 0x8426: 0x402d8020, 0x8427: 0x402d8e20, + 0x8428: 0x402db620, 0x8429: 0x402dc220, 0x842a: 0x402daa20, 0x842b: 0x402e4220, + 0x842c: 0x402e4a20, 0x842d: 0x402e5420, 0x842e: 0x402e6820, 0x842f: 0x4030a020, + 0x8430: 0x4030ac20, 0x8431: 0x402e9020, 0x8432: 0x402eb420, 0x8433: 0x402ec820, + 0x8434: 0x402ea620, 0x8435: 0x402f1020, 0x8436: 0x402eee20, 0x8437: 0x402f1a20, + 0x8438: 0x402f4c20, 0x8439: 0x402f9820, 0x843a: 0x402fa220, 0x843b: 0x402fac20, + 0x843c: 0x402fb620, 0x843d: 0x402fbe20, 0x843e: 0x402fc620, 0x843f: 0x402fd020, + // Block 0x211, offset 0x8440 + 0x8440: 0x402f8220, 0x8441: 0x402fd820, 0x8442: 0x402ff420, 0x8443: 0x40300820, + 0x8444: 0x402df620, 0x8445: 0x40301a20, 0x8446: 0x40302420, 0x8447: 0x40306420, + 0x8448: 0x40305220, 0x8449: 0x40307c20, 0x844a: 0x4030b420, 0x844b: 0x4030c020, + 0x844c: 0x4030da20, 0x844d: 0x4030ee20, 0x844e: 0x402e7a20, 0x844f: 0x40310820, + 0x8450: 0x40314820, 0x8451: 0x40315020, 0x8452: 0x40316420, 0x8453: 0x40318020, + 0x8454: 0x4031cc20, 0x8455: 0x4031e820, 0x8456: 0x40320a20, 0x8457: 0x40323220, + 0x8458: 0x40323a20, 0x8459: 0x402c1220, 0x845a: 0x402cf820, 0x845b: 0x402d4c20, + 0x845c: 0x402d7020, 0x845d: 0x402de620, 0x845e: 0x402e1a20, 0x845f: 0x402e2a20, + 0x8460: 0x402f6220, 0x8461: 0x4031fa20, 0x8462: 0x40320220, 0x8463: 0xe0000aca, + 0x8464: 0xe0000adc, 0x8465: 0xe0000ad9, 0x8466: 0xe0000fcc, 0x8467: 0xe0000fcf, + 0x8468: 0xe0000fba, 0x8469: 0xe0000ba1, 0x846a: 0xe0000d11, 0x846b: 0xe0000d18, + 0x846c: 0x40324220, 0x846d: 0x40324a20, 0x846e: 0x40309020, 0x846f: 0x40309820, + 0x8470: 0x002d6894, 0x8471: 0x002d8094, 0x8472: 0x002dcc94, 0x8473: 0x002f7a94, + 0x8474: 0x002f9894, 0x8475: 0x002fac94, 0x8476: 0x002fd894, 0x8477: 0x0030e294, + 0x8478: 0x00310094, 0x8479: 0x40064020, 0x847a: 0x40064420, 0x847b: 0x402d9620, + 0x847c: 0x4031de20, 0x847d: 0x402d9820, 0x847e: 0x4031e220, 0x847f: 0x4031f020, + // Block 0x212, offset 0x8480 + 0x8480: 0xae603502, 0x8481: 0xae603202, 0x8482: 0xae604202, 0x8483: 0xae604e02, + 0x8484: 0xae605b02, 0x8485: 0xae606302, 0x8486: 0xae603702, 0x8487: 0xae605202, + 0x8488: 0xae604702, 0x8489: 0xae606402, 0x848a: 0xae604302, 0x848b: 0xae604d02, + 0x848c: 0xae604102, 0x848d: 0xae605f02, 0x848e: 0xae605f02, 0x848f: 0xae606502, + 0x8490: 0xae606602, 0x8491: 0xae606702, 0x8492: 0xae605f02, 0x8493: 0xae602202, + 0x8494: 0xae602a02, 0x8495: 0xae805f02, 0x8496: 0xadc06002, 0x8497: 0xadc06002, + 0x8498: 0xadc06002, 0x8499: 0xadc06002, 0x849a: 0xae805f02, 0x849b: 0xad806802, + 0x849c: 0xadc06002, 0x849d: 0xadc06002, 0x849e: 0xadc06002, 0x849f: 0xadc06002, + 0x84a0: 0xadc06002, 0x84a1: 0xaca06e02, 0x84a2: 0xaca06f02, 0x84a3: 0xadc07002, + 0x84a4: 0xadc07502, 0x84a5: 0xadc07602, 0x84a6: 0xadc07702, 0x84a7: 0xaca05602, + 0x84a8: 0xaca05902, 0x84a9: 0xadc06002, 0x84aa: 0xadc06002, 0x84ab: 0xadc06002, + 0x84ac: 0xadc06002, 0x84ad: 0xadc07802, 0x84ae: 0xadc07902, 0x84af: 0xadc06002, + 0x84b0: 0xadc07a02, 0x84b1: 0xadc07b02, 0x84b2: 0xadc02102, 0x84b3: 0xadc06002, + 0x84b4: 0xa0107c02, 0x84b5: 0xa0107d02, 0x84b6: 0xa0106102, 0x84b7: 0xa0106102, + 0x84b8: 0xa0105402, 0x84b9: 0xadc07e02, 0x84ba: 0xadc06002, 0x84bb: 0xadc06002, + 0x84bc: 0xadc06002, 0x84bd: 0xae605f02, 0x84be: 0xae605f02, 0x84bf: 0xae605f02, + // Block 0x213, offset 0x84c0 + 0x84c0: 0xe00010d2, 0x84c1: 0xe00010cf, 0x84c2: 0xe00010cc, 0x84c3: 0xe00010c9, + 0x84c4: 0xe00010e1, 0x84c5: 0xe00010de, 0x84c6: 0xe00010e7, 0x84c7: 0xe00010e4, + 0x84c8: 0xe00010ed, 0x84c9: 0xe00010ea, 0x84ca: 0xe0002912, 0x84cb: 0xe000290f, + 0x84cc: 0xe000290c, 0x84cd: 0xe0002909, 0x84ce: 0xe0001123, 0x84cf: 0xe0001120, + 0x84d0: 0xe0002b99, 0x84d1: 0xe0002b96, 0x84d2: 0xe0001153, 0x84d3: 0xe0001150, + 0x84d4: 0xe0001159, 0x84d5: 0xe0001156, 0x84d6: 0xe0000c15, 0x84d7: 0xe0000f8d, + 0x84d8: 0xe00010db, 0x84d9: 0xe0001111, 0x84da: 0xf0000404, 0x84db: 0xe0000f70, + 0x84dc: 0x40300420, 0x84dd: 0x40300620, 0x84de: 0xe0000f7f, 0x84df: 0x402c9620, + 0x84e0: 0xe000099b, 0x84e1: 0xe0000998, 0x84e2: 0xe0000989, 0x84e3: 0xe0000986, + 0x84e4: 0xe0002ae0, 0x84e5: 0xe0002adc, 0x84e6: 0xe0002ae8, 0x84e7: 0xe0002ae4, + 0x84e8: 0xe0002af8, 0x84e9: 0xe0002af4, 0x84ea: 0xe0002af0, 0x84eb: 0xe0002aec, + 0x84ec: 0xe0002b00, 0x84ed: 0xe0002afc, 0x84ee: 0xe0000902, 0x84ef: 0xe00008fe, + 0x84f0: 0xe000090a, 0x84f1: 0xe0000906, 0x84f2: 0xe000091a, 0x84f3: 0xe0000916, + 0x84f4: 0xe0000912, 0x84f5: 0xe000090e, 0x84f6: 0xe00009a2, 0x84f7: 0xe000099e, + 0x84f8: 0xe0000b6e, 0x84f9: 0xe0000b6b, 0x84fa: 0xe0000b5c, 0x84fb: 0xe0000b59, + 0x84fc: 0xe0000b26, 0x84fd: 0xe0000b23, 0x84fe: 0xe0002b14, 0x84ff: 0xe0002b10, + // Block 0x214, offset 0x8500 + 0x8500: 0xe0002b1c, 0x8501: 0xe0002b18, 0x8502: 0xe0002b2c, 0x8503: 0xe0002b28, + 0x8504: 0xe0002b24, 0x8505: 0xe0002b20, 0x8506: 0xe0002b34, 0x8507: 0xe0002b30, + 0x8508: 0xe0000c66, 0x8509: 0xe0000c63, 0x850a: 0xe0000c78, 0x850b: 0xe0000c75, + 0x850c: 0xe0000e84, 0x850d: 0xe0000e81, 0x850e: 0xe0000e44, 0x850f: 0xe0000e41, + 0x8510: 0xe0002b5a, 0x8511: 0xe0002b56, 0x8512: 0xe0002b62, 0x8513: 0xe0002b5e, + 0x8514: 0xe0002b72, 0x8515: 0xe0002b6e, 0x8516: 0xe0002b6a, 0x8517: 0xe0002b66, + 0x8518: 0xe0002b7a, 0x8519: 0xe0002b76, 0x851a: 0xe0000e5d, 0x851b: 0xe0000e59, + 0x851c: 0xe0000e65, 0x851d: 0xe0000e61, 0x851e: 0xe0000e75, 0x851f: 0xe0000e71, + 0x8520: 0xe0000e6d, 0x8521: 0xe0000e69, 0x8522: 0xe0000e7d, 0x8523: 0xe0000e79, + 0x8524: 0xe000108d, 0x8525: 0xe000108a, 0x8526: 0xe000104d, 0x8527: 0xe000104a, + 0x8528: 0xe0001066, 0x8529: 0xe0001062, 0x852a: 0xe000106e, 0x852b: 0xe000106a, + 0x852c: 0xe000107e, 0x852d: 0xe000107a, 0x852e: 0xe0001076, 0x852f: 0xe0001072, + 0x8530: 0xe0001086, 0x8531: 0xe0001082, 0x8532: 0xe0001108, 0x8533: 0xe0001105, + 0x8534: 0xe0001135, 0x8535: 0xe0001132, 0x8536: 0xe000112f, 0x8537: 0xe000112c, + 0x8538: 0xe000111d, 0x8539: 0xe000111a, 0x853a: 0xe0000d0a, 0x853b: 0xe0000d07, + 0x853c: 0x0030d888, 0x853d: 0x4030d820, 0x853e: 0x00312088, 0x853f: 0x40312020, + // Block 0x215, offset 0x8540 + 0x8540: 0x00093685, 0x8541: 0x40083620, 0x8542: 0x40083820, 0x8543: 0x40083a20, + 0x8544: 0x40083c20, 0x8545: 0x002c628b, 0x8546: 0x002c6285, 0x8547: 0x002c9885, + 0x8548: 0x002d9a85, 0x8549: 0x002dcc85, 0x854a: 0x40083e20, 0x854b: 0x400a6e20, + 0x854c: 0x40084020, 0x854d: 0xe00009c4, 0x854e: 0x402d1e20, 0x854f: 0x40084220, + 0x8550: 0xe00002cb, 0x8551: 0xe00002d3, 0x8552: 0xe00002b2, 0x8553: 0xe00002bb, + 0x8554: 0xe00003cd, 0x8555: 0xe00002c3, 0x8556: 0xe00003d1, 0x8557: 0xe00004ab, + 0x8558: 0xe0000579, 0x8559: 0xe00002c7, 0x855a: 0xe0000640, 0x855b: 0xe00002cf, + 0x855c: 0xe00004af, 0x855d: 0xe0000644, 0x855e: 0xe0000798, 0x855f: 0xf0001e1e, + 0x8560: 0x002d9a8a, 0x8561: 0xf0001f0a, 0x8562: 0xf0000a0a, 0x8563: 0xf0001f0a, + 0x8564: 0x0030be8a, 0x8565: 0xf0001f0a, 0x8566: 0xf0000a0a, 0x8567: 0xe00010bb, + 0x8568: 0xe00027f4, 0x8569: 0x0030f68a, 0x856a: 0xe0002883, 0x856b: 0xe000288a, + 0x856c: 0x002e228a, 0x856d: 0x002c3a8a, 0x856e: 0x002c628a, 0x856f: 0x002e828a, + 0x8570: 0x002d9a84, 0x8571: 0xf0001f04, 0x8572: 0xf0000404, 0x8573: 0xf0001f04, + 0x8574: 0x0030be84, 0x8575: 0xf0001f04, 0x8576: 0xf0000404, 0x8577: 0xe00010b6, + 0x8578: 0xe00027f1, 0x8579: 0x0030f684, 0x857a: 0xe0002880, 0x857b: 0xe0002886, + 0x857c: 0x002e2284, 0x857d: 0x002c3a84, 0x857e: 0x002c6284, 0x857f: 0x002e8284, + // Block 0x216, offset 0x8580 + 0x8580: 0xe0000024, 0x8581: 0xe0000029, 0x8582: 0xe000002e, 0x8583: 0xe0000033, + 0x8584: 0xe0000038, 0x8585: 0xe000003d, 0x8586: 0xe0000042, 0x8587: 0xe0000047, + 0x8588: 0xf0001f04, 0x8589: 0xf0001f04, 0x858a: 0xf0001f04, 0x858b: 0xf0001f04, + 0x858c: 0xf0001f04, 0x858d: 0xf0001f04, 0x858e: 0xf0001f04, 0x858f: 0xf0001f04, + 0x8590: 0xf0001f04, 0x8591: 0xf0000404, 0x8592: 0xf0000404, 0x8593: 0xf0000404, + 0x8594: 0xf0000404, 0x8595: 0xf0000404, 0x8596: 0xf0000404, 0x8597: 0xf0000404, + 0x8598: 0xf0000404, 0x8599: 0xf0000404, 0x859a: 0xf0000404, 0x859b: 0xf0000404, + 0x859c: 0xf0000404, 0x859d: 0xf0000404, 0x859e: 0xf0000404, 0x859f: 0xf0000404, + 0x85a0: 0xf0000404, 0x85a1: 0xf0000404, 0x85a2: 0xf0000404, 0x85a3: 0xf0000404, + 0x85a4: 0xf0000404, 0x85a5: 0xf0000404, 0x85a6: 0xf0000404, 0x85a7: 0xf0000404, + 0x85a8: 0xf0000404, 0x85a9: 0xf0000404, 0x85aa: 0xf0000404, 0x85ab: 0xf0000404, + 0x85ac: 0xf0000404, 0x85ad: 0xf0000404, 0x85ae: 0xf0000404, 0x85af: 0xf0000404, + 0x85b0: 0xf0000404, 0x85b1: 0xf0000404, 0x85b2: 0xf0000404, 0x85b3: 0xe00024e7, + 0x85b4: 0xf0000404, 0x85b5: 0xf0000404, 0x85b6: 0x002bde8c, 0x85b7: 0x002c0a8c, + 0x85b8: 0x002c3a8c, 0x85b9: 0x002c628c, 0x85ba: 0x002c988c, 0x85bb: 0x002d088c, + 0x85bc: 0x002d228c, 0x85bd: 0x002d688c, 0x85be: 0x002d9a8c, 0x85bf: 0x002dcc8c, + // Block 0x217, offset 0x85c0 + 0x85c0: 0xf0001d1c, 0x85c1: 0xf0001d1d, 0x85c2: 0xe00009b7, 0x85c3: 0xf0001c1d, + 0x85c4: 0xf0001c1c, 0x85c5: 0xf0001c1c, 0x85c6: 0xe0000a66, 0x85c7: 0xe0000a7a, + 0x85c8: 0xf0001d1c, 0x85c9: 0xf0001c1d, 0x85ca: 0xf0001c1c, 0x85cb: 0xf0001d1d, + 0x85cc: 0xf0001c1c, 0x85cd: 0xf0001d1d, 0x85ce: 0xf0001d1d, 0x85cf: 0xf0001c1c, + 0x85d0: 0xf0001c1c, 0x85d1: 0xf0001c1c, 0x85d2: 0xe0000d0d, 0x85d3: 0xe0002818, + 0x85d4: 0xf0001c1c, 0x85d5: 0xe0000d3a, 0x85d6: 0xe0000d46, 0x85d7: 0xf0001d1d, + 0x85d8: 0xe0000eb0, 0x85d9: 0xe0000eb8, 0x85da: 0xf0001d1d, 0x85db: 0xf0001c1c, + 0x85dc: 0xf0001c1d, 0x85dd: 0xf0001c1d, 0x85de: 0xe00010b2, 0x85df: 0xe00009c8, + 0x85e0: 0xf0001f04, 0x85e1: 0xf0001f04, 0x85e2: 0xf0001f04, 0x85e3: 0xf0001f04, + 0x85e4: 0xf0001f04, 0x85e5: 0xf0001f04, 0x85e6: 0xf0001f04, 0x85e7: 0xf0001f04, + 0x85e8: 0xf0001f04, 0x85e9: 0xf0000404, 0x85ea: 0xf0000404, 0x85eb: 0xf0000404, + 0x85ec: 0xf0000404, 0x85ed: 0xf0000404, 0x85ee: 0xf0000404, 0x85ef: 0xf0000404, + 0x85f0: 0xf0000404, 0x85f1: 0xf0000404, 0x85f2: 0xf0000404, 0x85f3: 0xf0000404, + 0x85f4: 0xf0000404, 0x85f5: 0xf0000404, 0x85f6: 0xf0000404, 0x85f7: 0xf0000404, + 0x85f8: 0xf0000404, 0x85f9: 0xf0000404, 0x85fa: 0xf0000404, 0x85fb: 0xf0000404, + 0x85fc: 0xf0000404, 0x85fd: 0xf0000404, 0x85fe: 0xf0000404, 0x85ff: 0xe0000bdf, + // Block 0x218, offset 0x8600 + 0x8600: 0xf0001f04, 0x8601: 0xf0001f04, 0x8602: 0xf0001f04, 0x8603: 0xf0001f04, + 0x8604: 0xf0001f04, 0x8605: 0xf0001f04, 0x8606: 0xf0001f04, 0x8607: 0xf0001f04, + 0x8608: 0xf0001f04, 0x8609: 0xf0001f04, 0x860a: 0xf0001f04, + 0x8610: 0xf0000a04, 0x8611: 0xf0000a04, 0x8612: 0xf0000a04, 0x8613: 0xf0000a04, + 0x8614: 0xf0000a04, 0x8615: 0xf0000a04, 0x8616: 0xf0000a04, 0x8617: 0xf0000a04, + 0x8618: 0xf0000a04, 0x8619: 0xf0000a04, 0x861a: 0xf0000a04, 0x861b: 0xf0000a04, + 0x861c: 0xf0000a04, 0x861d: 0xf0000a04, 0x861e: 0xf0000a04, 0x861f: 0xf0000a04, + 0x8620: 0xf0000a04, 0x8621: 0xf0000a04, 0x8622: 0xf0000a04, 0x8623: 0xf0000a04, + 0x8624: 0xf0000a04, 0x8625: 0xf0000a04, 0x8626: 0xf0000a04, 0x8627: 0xe00024eb, + 0x8628: 0xf0000a04, 0x8629: 0xf0000a04, 0x862a: 0xf0000a04, 0x862b: 0x002c3a8c, + 0x862c: 0x002f7a8c, 0x862d: 0xf0000c0c, 0x862e: 0xf0000c0c, + 0x8630: 0x002bde9d, 0x8631: 0x002c0a9d, 0x8632: 0x002c3a9d, 0x8633: 0x002c629d, + 0x8634: 0x002c989d, 0x8635: 0x002d089d, 0x8636: 0x002d229d, 0x8637: 0x002d689d, + 0x8638: 0x002d9a9d, 0x8639: 0x002dcc9d, 0x863a: 0x002dfe9d, 0x863b: 0x002e229d, + 0x863c: 0x002e829d, 0x863d: 0x002e9e9d, 0x863e: 0x002ee29d, 0x863f: 0x002f2c9d, + // Block 0x219, offset 0x8640 + 0x8640: 0xa0000000, 0x8641: 0xa0000000, 0x8642: 0xa0000000, 0x8643: 0xa0000000, + 0x8644: 0xa0000000, 0x8645: 0xa0000000, 0x8646: 0xa0000000, 0x8647: 0xa0000000, + 0x8648: 0xa0000000, 0x8649: 0x40020020, 0x864a: 0x40020220, 0x864b: 0x40020420, + 0x864c: 0x40020620, 0x864d: 0x40020820, 0x864e: 0xa0000000, 0x864f: 0xa0000000, + 0x8650: 0xa0000000, 0x8651: 0xa0000000, 0x8652: 0xa0000000, 0x8653: 0xa0000000, + 0x8654: 0xa0000000, 0x8655: 0xa0000000, 0x8656: 0xa0000000, 0x8657: 0xa0000000, + 0x8658: 0xa0000000, 0x8659: 0xa0000000, 0x865a: 0xa0000000, 0x865b: 0xa0000000, + 0x865c: 0xa0000000, 0x865d: 0xa0000000, 0x865e: 0xa0000000, 0x865f: 0xa0000000, + 0x8660: 0x402be020, 0x8661: 0x402be220, 0x8662: 0x402be420, 0x8663: 0x402be620, + 0x8664: 0x402be820, 0x8665: 0x402bea20, 0x8666: 0x402bec20, 0x8667: 0x402bee20, + 0x8668: 0x402bf020, 0x8669: 0x402bf220, 0x866a: 0x402bf420, 0x866b: 0x402bf620, + 0x866c: 0x402bf820, 0x866d: 0x402bfa20, 0x866e: 0x402bfc20, 0x866f: 0x402bfe20, + 0x8670: 0x402c0020, 0x8671: 0x402c0220, 0x8672: 0x402c0420, 0x8673: 0x402c0620, + 0x8674: 0x402c0820, 0x8675: 0x402c0a20, 0x8676: 0x402c0c20, 0x8677: 0x402c0e20, + 0x8678: 0x402c1020, 0x8679: 0x402c1220, 0x867a: 0x402c1420, 0x867b: 0x402c1620, + 0x867c: 0x402c1820, 0x867d: 0x402c1a20, 0x867e: 0x402c1c20, 0x867f: 0x402c1e20, + // Block 0x21a, offset 0x8680 + 0x8680: 0x402c2020, 0x8681: 0x402c2220, 0x8682: 0x402c2420, 0x8683: 0x402c2620, + 0x8684: 0x402c2820, 0x8685: 0x402c2a20, 0x8686: 0x402c2c20, 0x8687: 0x402c2e20, + 0x8688: 0x402c3020, 0x8689: 0x402c3220, 0x868a: 0x402c3420, 0x868b: 0x402c3620, + 0x868c: 0xc53b0002, 0x868d: 0x402c3a20, 0x868e: 0x402c3c20, 0x868f: 0x402c3e20, + 0x8690: 0x402c4020, 0x8691: 0x402c4220, 0x8692: 0x402c4420, 0x8693: 0x402c4620, + 0x8694: 0x402c4820, 0x8695: 0x402c4a20, 0x8696: 0x402c4c20, 0x8697: 0x402c4e20, + 0x8698: 0x402c5020, 0x8699: 0x402c5220, 0x869a: 0x402c5420, 0x869b: 0x402c5620, + 0x869c: 0x402c5820, 0x869d: 0x402c5a20, 0x869e: 0x402c5c20, 0x869f: 0x402c5e20, + 0x86a0: 0x402c6020, 0x86a1: 0x402c6220, 0x86a2: 0x402c6420, 0x86a3: 0x402c6620, + 0x86a4: 0x402c6820, 0x86a5: 0x402c6a20, 0x86a6: 0x402c6c20, 0x86a7: 0x402c6e20, + 0x86a8: 0x402c7020, 0x86a9: 0x402c7220, 0x86aa: 0x402c7420, 0x86ab: 0x402c7620, + 0x86ac: 0xc5380002, 0x86ad: 0x402c7a20, 0x86ae: 0x402c7c20, 0x86af: 0x402c7e20, + 0x86b0: 0x402c8020, 0x86b1: 0x402c8220, 0x86b2: 0x402c8420, 0x86b3: 0x402c8620, + 0x86b4: 0x402c8820, 0x86b5: 0x402c8a20, 0x86b6: 0x402c8c20, 0x86b7: 0x402c8e20, + 0x86b8: 0x402c9020, 0x86b9: 0x402c9220, 0x86ba: 0x402c9420, 0x86bb: 0x402c9620, + 0x86bc: 0x402c9820, 0x86bd: 0x402c9a20, 0x86be: 0x402c9c20, 0x86bf: 0x402c9e20, + // Block 0x21b, offset 0x86c0 + 0x86c0: 0xe0002f1f, 0x86c1: 0xe0002f1c, 0x86c2: 0xe0002f35, 0x86c3: 0xe0002f59, + 0x86c4: 0xe0002f52, 0x86c5: 0xe0002f4b, 0x86c6: 0xe00009dd, 0x86c7: 0xe0002f95, + 0x86c8: 0xe0002fb1, 0x86c9: 0xe0002fae, 0x86ca: 0xe0002fb7, 0x86cb: 0xe0002fcd, + 0x86cc: 0xe0003031, 0x86cd: 0xe000302e, 0x86ce: 0xe0003037, 0x86cf: 0xe000303d, + 0x86d0: 0xe0000ab3, 0x86d1: 0xe00030a5, 0x86d2: 0xe00030ba, 0x86d3: 0xe00030b7, + 0x86d4: 0xe00030c0, 0x86d5: 0xe00030e0, 0x86d6: 0xe00030d6, 0x86d7: 0x40093e20, + 0x86d8: 0xe0000e12, 0x86d9: 0xe000318a, 0x86da: 0xe0003187, 0x86db: 0xe0003190, + 0x86dc: 0xe0003199, 0x86dd: 0xe000320a, 0x86de: 0x00318888, 0x86df: 0xe0000f7b, + 0x86e0: 0xe000323a, 0x86e1: 0xe0003237, 0x86e2: 0xe0003250, 0x86e3: 0xe0003274, + 0x86e4: 0xe000326d, 0x86e5: 0xe0003266, 0x86e6: 0xe00009d5, 0x86e7: 0xe00032c8, + 0x86e8: 0xe00032e4, 0x86e9: 0xe00032e1, 0x86ea: 0xe00032ea, 0x86eb: 0xe0003300, + 0x86ec: 0xe0003367, 0x86ed: 0xe0003364, 0x86ee: 0xe000336d, 0x86ef: 0xe0003373, + 0x86f0: 0xe0000aad, 0x86f1: 0xe00033cf, 0x86f2: 0xe00033e4, 0x86f3: 0xe00033e1, + 0x86f4: 0xe00033ea, 0x86f5: 0xe000340a, 0x86f6: 0xe0003400, 0x86f7: 0x40093c20, + 0x86f8: 0xe0000e0f, 0x86f9: 0xe00034b7, 0x86fa: 0xe00034b4, 0x86fb: 0xe00034bd, + 0x86fc: 0xe00034c6, 0x86fd: 0xe000353a, 0x86fe: 0x40318820, 0x86ff: 0xe0003546, + // Block 0x21c, offset 0x8700 + 0x8700: 0xe0002f66, 0x8701: 0xe0003281, 0x8702: 0xe0002f22, 0x8703: 0xe000323d, + 0x8704: 0xe0002f63, 0x8705: 0xe000327e, 0x8706: 0xe0002f89, 0x8707: 0xe00032bc, + 0x8708: 0xe0002f8c, 0x8709: 0xe00032bf, 0x870a: 0xe0002f92, 0x870b: 0xe00032c5, + 0x870c: 0xe0002f8f, 0x870d: 0xe00032c2, 0x870e: 0xe0002f9c, 0x870f: 0xe00032cf, + 0x8710: 0xe0000aaa, 0x8711: 0xe0000aa7, 0x8712: 0xe0002fe0, 0x8713: 0xe0003313, + 0x8714: 0xe0002fb4, 0x8715: 0xe00032e7, 0x8716: 0xe0002fd3, 0x8717: 0xe0003306, + 0x8718: 0xe0002fdd, 0x8719: 0xe0003310, 0x871a: 0xe0002fca, 0x871b: 0xe00032fd, + 0x871c: 0xe000300a, 0x871d: 0xe000333d, 0x871e: 0xe0003007, 0x871f: 0xe000333a, + 0x8720: 0xe0003010, 0x8721: 0xe0003343, 0x8722: 0xe0003013, 0x8723: 0xe0003346, + 0x8724: 0xe0003019, 0x8725: 0xe000334c, 0x8726: 0xe0000c1b, 0x8727: 0xe0000c18, + 0x8728: 0xe0003044, 0x8729: 0xe000337a, 0x872a: 0xe000304d, 0x872b: 0xe0003380, + 0x872c: 0xe0003034, 0x872d: 0xe000336a, 0x872e: 0xe000304a, 0x872f: 0xe000337d, + 0x8730: 0xe0003047, 0x8731: 0x402da220, 0x8732: 0xe00027e2, 0x8733: 0xe00027df, + 0x8734: 0xe000305f, 0x8735: 0xe0003392, 0x8736: 0xe0003068, 0x8737: 0xe000339e, + 0x8738: 0x402f7220, 0x8739: 0xe0003071, 0x873a: 0xe00033a7, 0x873b: 0xe0003077, + 0x873c: 0xe00033ad, 0x873d: 0xe0003074, 0x873e: 0xe00033aa, 0x873f: 0xe0000d04, + // Block 0x21d, offset 0x8740 + 0x8740: 0xe0000cfe, 0x8741: 0xe0000cf8, 0x8742: 0xe0000cf5, 0x8743: 0xe000309c, + 0x8744: 0xe00033c6, 0x8745: 0xe00030ab, 0x8746: 0xe00033d5, 0x8747: 0xe00030a2, + 0x8748: 0xe00033cc, 0x8749: 0xe00035eb, 0x874a: 0x002eda88, 0x874b: 0x402eda20, + 0x874c: 0xe00030fd, 0x874d: 0xe0003427, 0x874e: 0xe00030bd, 0x874f: 0xe00033e7, + 0x8750: 0xe00030dd, 0x8751: 0xe0003407, 0x8752: 0xe0000e93, 0x8753: 0xe0000e8f, + 0x8754: 0xe0003135, 0x8755: 0xe000345f, 0x8756: 0xe000313e, 0x8757: 0xe0003468, + 0x8758: 0xe0003138, 0x8759: 0xe0003462, 0x875a: 0xe0003151, 0x875b: 0xe000347b, + 0x875c: 0xe0003158, 0x875d: 0xe0003482, 0x875e: 0xe0003165, 0x875f: 0xe000348f, + 0x8760: 0xe000315b, 0x8761: 0xe0003485, 0x8762: 0xe0003178, 0x8763: 0xe00034a5, + 0x8764: 0xe0003172, 0x8765: 0xe000349c, 0x8766: 0x00303688, 0x8767: 0x40303620, + 0x8768: 0xe00031af, 0x8769: 0xe00034dc, 0x876a: 0xe00031b9, 0x876b: 0xe00034e6, + 0x876c: 0xe000318d, 0x876d: 0xe00034ba, 0x876e: 0xe0003196, 0x876f: 0xe00034c3, + 0x8770: 0xe00031ac, 0x8771: 0xe00034d9, 0x8772: 0xe00031b6, 0x8773: 0xe00034e3, + 0x8774: 0xe00031f8, 0x8775: 0xe0003525, 0x8776: 0xe0003210, 0x8777: 0xe0003540, + 0x8778: 0xe0003213, 0x8779: 0xe0003225, 0x877a: 0xe0003558, 0x877b: 0xe000322e, + 0x877c: 0xe0003561, 0x877d: 0xe000322b, 0x877e: 0xe000355e, 0x877f: 0xe0000f64, + // Block 0x21e, offset 0x8780 + 0x8780: 0x402c1a20, 0x8781: 0x002c2a88, 0x8782: 0x002c3288, 0x8783: 0x402c3220, + 0x8784: 0x0031c488, 0x8785: 0x4031c420, 0x8786: 0x002efa88, 0x8787: 0x002c4e88, + 0x8788: 0x402c4e20, 0x8789: 0x002c7288, 0x878a: 0x002c7a88, 0x878b: 0x002c8488, + 0x878c: 0x402c8420, 0x878d: 0xe000115c, 0x878e: 0x002cae88, 0x878f: 0x002cb888, + 0x8790: 0x002cc288, 0x8791: 0x002d1688, 0x8792: 0x402d1620, 0x8793: 0x002d4488, + 0x8794: 0x002d5888, 0x8795: 0x402d7820, 0x8796: 0x002dc288, 0x8797: 0x002db688, + 0x8798: 0x002e0a88, 0x8799: 0x402e0a20, 0x879a: 0x402e3820, 0x879b: 0x402e7220, + 0x879c: 0x0030a088, 0x879d: 0x002eb488, 0x879e: 0x402ebc20, 0x879f: 0x002f1088, + 0x87a0: 0xe0003111, 0x87a1: 0xe000343b, 0x87a2: 0x002d6088, 0x87a3: 0x402d6020, + 0x87a4: 0x002f3e88, 0x87a5: 0x402f3e20, 0x87a6: 0x002f8288, 0x87a7: 0x0031b488, + 0x87a8: 0x4031b420, 0x87a9: 0x00300888, 0x87aa: 0x40301220, 0x87ab: 0x40304220, + 0x87ac: 0x00304a88, 0x87ad: 0x40304a20, 0x87ae: 0x00305288, 0x87af: 0xe00031c9, + 0x87b0: 0xe00034f6, 0x87b1: 0x0030b488, 0x87b2: 0x0030cc88, 0x87b3: 0x00311888, + 0x87b4: 0x40311820, 0x87b5: 0x00313488, 0x87b6: 0x40313420, 0x87b7: 0x00316488, + 0x87b8: 0x00316e88, 0x87b9: 0x40316e20, 0x87ba: 0x40317820, 0x87bb: 0x4031a620, + 0x87bc: 0x0031bc88, 0x87bd: 0x4031bc20, 0x87be: 0xe0000fc9, 0x87bf: 0x40319420, + // Block 0x21f, offset 0x87c0 + 0x87c0: 0x40321220, 0x87c1: 0x40321a20, 0x87c2: 0x40322220, 0x87c3: 0x40322a20, + 0x87c4: 0xe0000ad5, 0x87c5: 0xe0000ad1, 0x87c6: 0xe0000acd, 0x87c7: 0xe000357f, + 0x87c8: 0xe000357c, 0x87c9: 0xe0003579, 0x87ca: 0xe00035c4, 0x87cb: 0xe00035c1, + 0x87cc: 0xe00035be, 0x87cd: 0xe0002f48, 0x87ce: 0xe0003263, 0x87cf: 0xe000303a, + 0x87d0: 0xe0003370, 0x87d1: 0xe00030d3, 0x87d2: 0xe00033fd, 0x87d3: 0xe0003193, + 0x87d4: 0xe00034c0, 0x87d5: 0xe00031a8, 0x87d6: 0xe00034d5, 0x87d7: 0xe000319c, + 0x87d8: 0xe00034c9, 0x87d9: 0xe00031a4, 0x87da: 0xe00034d1, 0x87db: 0xe00031a0, + 0x87dc: 0xe00034cd, 0x87dd: 0x402cae20, 0x87de: 0xe0002f55, 0x87df: 0xe0003270, + 0x87e0: 0xe0002f5f, 0x87e1: 0xe000327a, 0x87e2: 0xe00009f4, 0x87e3: 0xe00009ef, + 0x87e4: 0x002d3a88, 0x87e5: 0x402d3a20, 0x87e6: 0xe000300d, 0x87e7: 0xe0003340, + 0x87e8: 0xe0003065, 0x87e9: 0xe000339b, 0x87ea: 0xe00030f6, 0x87eb: 0xe0003420, + 0x87ec: 0xe00030f9, 0x87ed: 0xe0003423, 0x87ee: 0xe0001162, 0x87ef: 0xe000115f, + 0x87f0: 0xe0003395, 0x87f1: 0xe00032b0, 0x87f2: 0xe00032ad, 0x87f3: 0xe00032aa, + 0x87f4: 0xe0003004, 0x87f5: 0xe0003337, 0x87f6: 0x002d7888, 0x87f7: 0x00319488, + 0x87f8: 0xe000309f, 0x87f9: 0xe00033c9, 0x87fa: 0xe0002f4e, 0x87fb: 0xe0003269, + 0x87fc: 0xe00009ea, 0x87fd: 0xe00009e5, 0x87fe: 0xe0000e19, 0x87ff: 0xe0000e15, + // Block 0x220, offset 0x8800 + 0x8800: 0xe0002f6c, 0x8801: 0xe0003287, 0x8802: 0xe0002f6f, 0x8803: 0xe000328a, + 0x8804: 0xe0002fee, 0x8805: 0xe0003321, 0x8806: 0xe0002ff1, 0x8807: 0xe0003324, + 0x8808: 0xe0003053, 0x8809: 0xe0003386, 0x880a: 0xe0003056, 0x880b: 0xe0003389, + 0x880c: 0xe000310b, 0x880d: 0xe0003435, 0x880e: 0xe000310e, 0x880f: 0xe0003438, + 0x8810: 0xe0003141, 0x8811: 0xe000346b, 0x8812: 0xe0003144, 0x8813: 0xe000346e, + 0x8814: 0xe00031c3, 0x8815: 0xe00034f0, 0x8816: 0xe00031c6, 0x8817: 0xe00034f3, + 0x8818: 0xe000316f, 0x8819: 0xe0003499, 0x881a: 0xe000317e, 0x881b: 0xe00034ab, + 0x881c: 0x00312288, 0x881d: 0x40312220, 0x881e: 0xe000301c, 0x881f: 0xe000334f, + 0x8820: 0x002ebc88, 0x8821: 0x402c8c20, 0x8822: 0x002f2288, 0x8823: 0x402f2220, + 0x8824: 0x00314088, 0x8825: 0x40314020, 0x8826: 0xe0002f5c, 0x8827: 0xe0003277, + 0x8828: 0xe0002fd6, 0x8829: 0xe0003309, 0x882a: 0xe00030d9, 0x882b: 0xe0003403, + 0x882c: 0xe00030eb, 0x882d: 0xe0003415, 0x882e: 0xe00030ef, 0x882f: 0xe0003419, + 0x8830: 0xe00030f2, 0x8831: 0xe000341c, 0x8832: 0xe000321c, 0x8833: 0xe000354f, + 0x8834: 0x402e5e20, 0x8835: 0x402ed020, 0x8836: 0x40305a20, 0x8837: 0x402dd420, + 0x8838: 0xe0000abf, 0x8839: 0xe0000ec4, 0x883a: 0x002be888, 0x883b: 0x002c4488, + 0x883c: 0x402c4420, 0x883d: 0x002e3888, 0x883e: 0x00303e88, 0x883f: 0x402ffc20, + // Block 0x221, offset 0x8840 + 0x8840: 0xae603502, 0x8841: 0xae603202, 0x8842: 0xae604502, 0x8843: 0xae602202, + 0x8844: 0xe0000000, 0x8845: 0xaf007f02, 0x8846: 0xae605f02, 0x8847: 0xadc06002, + 0x8848: 0xadc06002, 0x8849: 0xadc06002, 0x884a: 0xae605f02, 0x884b: 0xae605f02, + 0x884c: 0xae605f02, 0x884d: 0xadc06002, 0x884e: 0xadc06002, 0x884f: 0xa0000000, + 0x8850: 0xae605f02, 0x8851: 0xae605f02, 0x8852: 0xae605f02, 0x8853: 0xadc06002, + 0x8854: 0xadc06002, 0x8855: 0xadc06002, 0x8856: 0xadc06002, 0x8857: 0xae605f02, + 0x8858: 0xae808002, 0x8859: 0xadc06002, 0x885a: 0xadc06002, 0x885b: 0xae605f02, + 0x885c: 0xae906002, 0x885d: 0xaea05f02, 0x885e: 0xaea05f02, 0x885f: 0xae906002, + 0x8860: 0xaea08102, 0x8861: 0xaea08202, 0x8862: 0xae906002, 0x8863: 0x84e615ef, + 0x8864: 0x84e6164c, 0x8865: 0x84e616cd, 0x8866: 0x84e61771, 0x8867: 0x84e61836, + 0x8868: 0x84e6161d, 0x8869: 0x84e61631, 0x886a: 0x84e616b4, 0x886b: 0x84e61741, + 0x886c: 0x84e617bd, 0x886d: 0x84e61816, 0x886e: 0x84e6185f, 0x886f: 0x84e6187b, + 0x8870: 0x00326688, 0x8871: 0x40326620, 0x8872: 0x0032a688, 0x8873: 0x4032a620, + 0x8874: 0x40064020, 0x8875: 0x40064220, 0x8876: 0x00326088, 0x8877: 0x40326020, + 0x887a: 0x00326c84, 0x887b: 0x40329220, + 0x887c: 0x40329020, 0x887d: 0x40329420, 0x887e: 0x402c1620, + // Block 0x222, offset 0x8880 + 0x8880: 0xe0002f7d, 0x8881: 0xe0003298, 0x8882: 0xe0002f80, 0x8883: 0xe00032b3, + 0x8884: 0xe0002f83, 0x8885: 0xe00032b6, 0x8886: 0xe0002f86, 0x8887: 0xe00032b9, + 0x8888: 0xe0002f98, 0x8889: 0xe00032cb, 0x888a: 0xe0002f9f, 0x888b: 0xe00032d2, + 0x888c: 0xe0002fa5, 0x888d: 0xe00032d8, 0x888e: 0xe0002fab, 0x888f: 0xe00032de, + 0x8890: 0xe0002fa2, 0x8891: 0xe00032d5, 0x8892: 0xe0002fa8, 0x8893: 0xe00032db, + 0x8894: 0xe0002fe7, 0x8895: 0xe000331a, 0x8896: 0xe0002fe3, 0x8897: 0xe0003316, + 0x8898: 0xe0002ffb, 0x8899: 0xe000332e, 0x889a: 0xe0002ffe, 0x889b: 0xe0003331, + 0x889c: 0xe0002fd9, 0x889d: 0xe000330c, 0x889e: 0xe0003001, 0x889f: 0xe0003334, + 0x88a0: 0xe0003016, 0x88a1: 0xe0003349, 0x88a2: 0xe0003022, 0x88a3: 0xe0003355, + 0x88a4: 0xe0003028, 0x88a5: 0xe000335b, 0x88a6: 0xe000301f, 0x88a7: 0xe0003352, + 0x88a8: 0xe0003025, 0x88a9: 0xe0003358, 0x88aa: 0xe000302b, 0x88ab: 0xe000335e, + 0x88ac: 0xe000305c, 0x88ad: 0xe000338f, 0x88ae: 0xe0003040, 0x88af: 0xe0003376, + 0x88b0: 0xe0003062, 0x88b1: 0xe0003398, 0x88b2: 0xe000306b, 0x88b3: 0xe00033a1, + 0x88b4: 0xe000306e, 0x88b5: 0xe00033a4, 0x88b6: 0xe000307a, 0x88b7: 0xe00033b0, + 0x88b8: 0xe000307d, 0x88b9: 0xe00033b3, 0x88ba: 0xe0003084, 0x88bb: 0xe00033ba, + 0x88bc: 0xe0003081, 0x88bd: 0xe00033b7, 0x88be: 0xe0003087, 0x88bf: 0xe00033bd, + // Block 0x223, offset 0x88c0 + 0x88c0: 0xe000308a, 0x88c1: 0xe00033c0, 0x88c2: 0xe000308d, 0x88c3: 0xe00033c3, + 0x88c4: 0xe00030a8, 0x88c5: 0xe00033d2, 0x88c6: 0xe00030ae, 0x88c7: 0xe00033d8, + 0x88c8: 0xe00030b4, 0x88c9: 0xe00033de, 0x88ca: 0xe00030b1, 0x88cb: 0xe00033db, + 0x88cc: 0xe00030e3, 0x88cd: 0xe000340d, 0x88ce: 0xe00030e7, 0x88cf: 0xe0003411, + 0x88d0: 0xe0003104, 0x88d1: 0xe000342e, 0x88d2: 0xe0003100, 0x88d3: 0xe000342a, + 0x88d4: 0xe000312f, 0x88d5: 0xe0003459, 0x88d6: 0xe0003132, 0x88d7: 0xe000345c, + 0x88d8: 0xe000313b, 0x88d9: 0xe0003465, 0x88da: 0xe0003147, 0x88db: 0xe0003471, + 0x88dc: 0xe000314a, 0x88dd: 0xe0003474, 0x88de: 0xe000314e, 0x88df: 0xe0003478, + 0x88e0: 0xe0003162, 0x88e1: 0xe000348c, 0x88e2: 0xe0003168, 0x88e3: 0xe0003492, + 0x88e4: 0xe0003154, 0x88e5: 0xe000347e, 0x88e6: 0xe000315e, 0x88e7: 0xe0003488, + 0x88e8: 0xe000316b, 0x88e9: 0xe0003495, 0x88ea: 0xe0003175, 0x88eb: 0xe00034a2, + 0x88ec: 0xe000317b, 0x88ed: 0xe00034a8, 0x88ee: 0xe0003184, 0x88ef: 0xe00034b1, + 0x88f0: 0xe0003181, 0x88f1: 0xe00034ae, 0x88f2: 0xe00031e3, 0x88f3: 0xe0003510, + 0x88f4: 0xe00031e9, 0x88f5: 0xe0003516, 0x88f6: 0xe00031e6, 0x88f7: 0xe0003513, + 0x88f8: 0xe00031b2, 0x88f9: 0xe00034df, 0x88fa: 0xe00031bc, 0x88fb: 0xe00034e9, + 0x88fc: 0xe00031ec, 0x88fd: 0xe0003519, 0x88fe: 0xe00031ef, 0x88ff: 0xe000351c, + // Block 0x224, offset 0x8900 + 0x8900: 0xe00031f5, 0x8901: 0xe0003522, 0x8902: 0xe00031f2, 0x8903: 0xe000351f, + 0x8904: 0xe00031fb, 0x8905: 0xe000352b, 0x8906: 0xe00031fe, 0x8907: 0xe000352e, + 0x8908: 0xe0003201, 0x8909: 0xe0003531, 0x890a: 0xe0003207, 0x890b: 0xe0003537, + 0x890c: 0xe0003204, 0x890d: 0xe0003534, 0x890e: 0xe0003219, 0x890f: 0xe000354c, + 0x8910: 0xe0003228, 0x8911: 0xe000355b, 0x8912: 0xe0003231, 0x8913: 0xe0003564, + 0x8914: 0xe0003234, 0x8915: 0xe0003567, 0x8916: 0xe0003361, 0x8917: 0xe000349f, + 0x8918: 0xe0003528, 0x8919: 0xe0003543, 0x891a: 0xe0002f10, 0x891b: 0xe0000f70, + 0x891c: 0x40300420, 0x891d: 0x40300620, 0x891e: 0xe0000f7f, 0x891f: 0x402c9620, + 0x8920: 0xe0002f72, 0x8921: 0xe000328d, 0x8922: 0xe0002f69, 0x8923: 0xe0003284, + 0x8924: 0xe0002f38, 0x8925: 0xe0003253, 0x8926: 0xe0002f3c, 0x8927: 0xe0003257, + 0x8928: 0xe0002f44, 0x8929: 0xe000325f, 0x892a: 0xe0002f40, 0x892b: 0xe000325b, + 0x892c: 0xe0002f79, 0x892d: 0xe0003294, 0x892e: 0xe0002f25, 0x892f: 0xe0003240, + 0x8930: 0xe0002f29, 0x8931: 0xe0003244, 0x8932: 0xe0002f31, 0x8933: 0xe000324c, + 0x8934: 0xe0002f2d, 0x8935: 0xe0003248, 0x8936: 0xe0002f75, 0x8937: 0xe0003290, + 0x8938: 0xe0002ff4, 0x8939: 0xe0003327, 0x893a: 0xe0002feb, 0x893b: 0xe000331e, + 0x893c: 0xe0002fd0, 0x893d: 0xe0003303, 0x893e: 0xe0002fba, 0x893f: 0xe00032ed, + // Block 0x225, offset 0x8940 + 0x8940: 0xe0002fbe, 0x8941: 0xe00032f1, 0x8942: 0xe0002fc6, 0x8943: 0xe00032f9, + 0x8944: 0xe0002fc2, 0x8945: 0xe00032f5, 0x8946: 0xe0002ff7, 0x8947: 0xe000332a, + 0x8948: 0xe0003050, 0x8949: 0xe0003383, 0x894a: 0xe0003059, 0x894b: 0xe000338c, + 0x894c: 0xe0003128, 0x894d: 0xe0003452, 0x894e: 0xe0003108, 0x894f: 0xe0003432, + 0x8950: 0xe00030c3, 0x8951: 0xe00033ed, 0x8952: 0xe00030c7, 0x8953: 0xe00033f1, + 0x8954: 0xe00030cf, 0x8955: 0xe00033f9, 0x8956: 0xe00030cb, 0x8957: 0xe00033f5, + 0x8958: 0xe000312b, 0x8959: 0xe0003455, 0x895a: 0xe0003114, 0x895b: 0xe000343e, + 0x895c: 0xe0003118, 0x895d: 0xe0003442, 0x895e: 0xe0003120, 0x895f: 0xe000344a, + 0x8960: 0xe000311c, 0x8961: 0xe0003446, 0x8962: 0xe0003124, 0x8963: 0xe000344e, + 0x8964: 0xe00031e0, 0x8965: 0xe000350d, 0x8966: 0xe00031c0, 0x8967: 0xe00034ed, + 0x8968: 0xe00031cc, 0x8969: 0xe00034f9, 0x896a: 0xe00031d0, 0x896b: 0xe00034fd, + 0x896c: 0xe00031d8, 0x896d: 0xe0003505, 0x896e: 0xe00031d4, 0x896f: 0xe0003501, + 0x8970: 0xe00031dc, 0x8971: 0xe0003509, 0x8972: 0xe000320d, 0x8973: 0xe000353d, + 0x8974: 0xe0003222, 0x8975: 0xe0003555, 0x8976: 0xe000321f, 0x8977: 0xe0003552, + 0x8978: 0xe0003216, 0x8979: 0xe0003549, 0x897a: 0xe0000d0a, 0x897b: 0xe0000d07, + 0x897c: 0x0030d888, 0x897d: 0x4030d820, 0x897e: 0x00312088, 0x897f: 0x40312020, + // Block 0x226, offset 0x8980 + 0x8980: 0x40063a20, 0x8981: 0xe00000b1, 0x8982: 0xe00012ea, 0x8983: 0xe00012f5, + 0x8984: 0xe00012e0, 0x8986: 0xe00012ee, 0x8987: 0xe00012f1, + 0x8988: 0xe000124f, 0x8989: 0xe0001249, 0x898a: 0xe00012e7, 0x898b: 0xe00012dd, + 0x898c: 0xe00012f8, 0x898d: 0xe00000b7, 0x898e: 0xe00000b4, 0x898f: 0xe00000ba, + 0x8990: 0xe0001343, 0x8991: 0xe000135e, 0x8992: 0xe0001356, 0x8993: 0xe0001352, + 0x8996: 0xe0001349, 0x8997: 0xe000135a, + 0x8998: 0xe0001346, 0x8999: 0xe0001361, 0x899a: 0xe0001340, 0x899b: 0xe000133a, + 0x899d: 0xe00000c0, 0x899e: 0xe00000bd, 0x899f: 0xe00000c3, + 0x89a0: 0xe00013e6, 0x89a1: 0xe0001401, 0x89a2: 0xe00013f9, 0x89a3: 0xe00013f5, + 0x89a4: 0xe00013a4, 0x89a5: 0xe00013a7, 0x89a6: 0xe00013ec, 0x89a7: 0xe00013fd, + 0x89a8: 0xe00013e9, 0x89a9: 0xe0001404, 0x89aa: 0xe00013e3, 0x89ab: 0xe00013dd, + 0x89ac: 0xe00013aa, 0x89ad: 0xe00000ae, 0x89ae: 0xe00000ab, 0x89af: 0x402c6020, + 0x89b2: 0xe000149f, 0x89b3: 0xe00014aa, + 0x89b4: 0xe0001495, 0x89b6: 0xe00014a3, 0x89b7: 0xe00014a6, + 0x89b8: 0xe00013a1, 0x89b9: 0xe000139b, 0x89ba: 0xe000149c, 0x89bb: 0xe0001492, + 0x89bc: 0xe00014ad, 0x89bd: 0x40062020, 0x89be: 0x40063820, + // Block 0x227, offset 0x89c0 + 0x89c0: 0x00021284, 0x89c1: 0x00021284, 0x89c2: 0x00021284, 0x89c3: 0x00021284, + 0x89c4: 0x00021284, 0x89c5: 0x00021284, 0x89c6: 0x00021284, 0x89c7: 0x0002129b, + 0x89c8: 0x00021284, 0x89c9: 0x00021284, 0x89ca: 0x00021284, 0x89cb: 0xa0000000, + 0x89cc: 0xa0000000, 0x89cd: 0xa0000000, 0x89ce: 0xa0000000, 0x89cf: 0xa0000000, + 0x89d0: 0x40022620, 0x89d1: 0x0002269b, 0x89d2: 0x40022820, 0x89d3: 0x40022a20, + 0x89d4: 0x40022c20, 0x89d5: 0x40022e20, 0x89d6: 0x4004c420, 0x89d7: 0x40021820, + 0x89d8: 0x4003d420, 0x89d9: 0x4003d620, 0x89da: 0x4003d820, 0x89db: 0x4003da20, + 0x89dc: 0x4003e220, 0x89dd: 0x4003e420, 0x89de: 0x4003e620, 0x89df: 0x4003e820, + 0x89e0: 0x4004f820, 0x89e1: 0x4004fa20, 0x89e2: 0x40050220, 0x89e3: 0x40050420, + 0x89e4: 0x0002e484, 0x89e5: 0xe0002bac, 0x89e6: 0xe0002bb2, 0x89e7: 0x40050620, + 0x89e8: 0x40020e20, 0x89e9: 0x40021020, 0x89ea: 0xa0000000, 0x89eb: 0xa0000000, + 0x89ec: 0xa0000000, 0x89ed: 0xa0000000, 0x89ee: 0xa0000000, 0x89ef: 0x0002129b, + 0x89f0: 0x4004f020, 0x89f1: 0x4004f420, 0x89f2: 0x40050e20, 0x89f3: 0xf0001f04, + 0x89f4: 0xf0000404, 0x89f5: 0x40051020, 0x89f6: 0xf0001f04, 0x89f7: 0xf0000404, + 0x89f8: 0x40051620, 0x89f9: 0x4003dc20, 0x89fa: 0x4003de20, 0x89fb: 0x40051820, + 0x89fc: 0xe0002ba0, 0x89fd: 0x4002e020, 0x89fe: 0x40021420, 0x89ff: 0x40051a20, + // Block 0x228, offset 0x8a00 + 0x8a00: 0x40051e20, 0x8a01: 0x40052220, 0x8a02: 0x40052420, 0x8a03: 0x40050820, + 0x8a04: 0x40095820, 0x8a05: 0x40040c20, 0x8a06: 0x40040e20, 0x8a07: 0xe0002ba9, + 0x8a08: 0xe0002ba6, 0x8a09: 0xe0002ba3, 0x8a0a: 0x4004e820, 0x8a0b: 0x4004d420, + 0x8a0c: 0x40050a20, 0x8a0d: 0x40050c20, 0x8a0e: 0x4004da20, 0x8a0f: 0x40026620, + 0x8a10: 0x40052020, 0x8a11: 0x4004dc20, 0x8a12: 0x40095020, 0x8a13: 0x40023420, + 0x8a14: 0x40051c20, 0x8a15: 0x40039c20, 0x8a16: 0x40039e20, 0x8a17: 0xe00000a6, + 0x8a18: 0x4003a020, 0x8a19: 0x4003a220, 0x8a1a: 0x4003a420, 0x8a1b: 0x4003a620, + 0x8a1c: 0x4003a820, 0x8a1d: 0x4003aa20, 0x8a1e: 0x4003ac20, 0x8a1f: 0x00021284, + 0x8a20: 0xa0000000, 0x8a21: 0xa0000000, 0x8a22: 0xa0000000, 0x8a23: 0xa0000000, + 0x8a24: 0xa0000000, + 0x8a2a: 0xa0000000, 0x8a2b: 0xa0000000, + 0x8a2c: 0xa0000000, 0x8a2d: 0xa0000000, 0x8a2e: 0xa0000000, 0x8a2f: 0xa0000000, + 0x8a30: 0x0029cc94, 0x8a31: 0x002d9a94, + 0x8a34: 0x0029d494, 0x8a35: 0x0029d694, 0x8a36: 0x0029d894, 0x8a37: 0x0029da94, + 0x8a38: 0x0029dc94, 0x8a39: 0x0029de94, 0x8a3a: 0x00093894, 0x8a3b: 0x00094e94, + 0x8a3c: 0x00094294, 0x8a3d: 0x0003f494, 0x8a3e: 0x0003f694, 0x8a3f: 0x002e9e94, + // Block 0x229, offset 0x8a40 + 0x8a40: 0xe00009bc, 0x8a41: 0xe00009c0, 0x8a42: 0x002c3a8b, 0x8a43: 0xe0002d26, + 0x8a44: 0x40081c20, 0x8a45: 0xe0000a5e, 0x8a46: 0xe0000a62, 0x8a47: 0x002cc28a, + 0x8a48: 0x40081e20, 0x8a49: 0xe0002d29, 0x8a4a: 0x002d2285, 0x8a4b: 0x002d688b, + 0x8a4c: 0x002d688b, 0x8a4d: 0x002d688b, 0x8a4e: 0x002d6885, 0x8a4f: 0xf0000202, + 0x8a50: 0x002d9a8b, 0x8a51: 0x002d9a8b, 0x8a52: 0x002e228b, 0x8a53: 0x002e2285, + 0x8a54: 0x40082020, 0x8a55: 0x002e9e8b, 0x8a56: 0xe000281e, 0x8a57: 0x40082220, + 0x8a58: 0x40082420, 0x8a59: 0x002f2c8b, 0x8a5a: 0x002f568b, 0x8a5b: 0x002f7a8b, + 0x8a5c: 0x002f7a8b, 0x8a5d: 0x002f7a8b, 0x8a5e: 0x40082620, 0x8a5f: 0x40082820, + 0x8a60: 0xe0002833, 0x8a61: 0xe0000fbd, 0x8a62: 0xe0002842, 0x8a63: 0x40082a20, + 0x8a64: 0x00312a8b, 0x8a65: 0x40082c20, 0x8a66: 0x0032a288, 0x8a67: 0x40082e20, + 0x8a68: 0x00312a8b, 0x8a69: 0x40083020, 0x8a6a: 0x402c3620, 0x8a6b: 0xe0002f4b, + 0x8a6c: 0x002c0a8b, 0x8a6d: 0x002c3a8b, 0x8a6e: 0x40083220, 0x8a6f: 0x002c9885, + 0x8a70: 0x002c988b, 0x8a71: 0x002d088b, 0x8a72: 0x002d1e88, 0x8a73: 0x002e828b, + 0x8a74: 0x002ee285, 0x8a75: 0x00389084, 0x8a76: 0x00389284, 0x8a77: 0x00389484, + 0x8a78: 0x00389684, 0x8a79: 0x002d9a85, 0x8a7a: 0x40083420, 0x8a7b: 0xe0000b95, + 0x8a7c: 0x00327e85, 0x8a7d: 0x00325685, 0x8a7e: 0x0032568b, 0x8a7f: 0x00327e8b, + // Block 0x22a, offset 0x8a80 + 0x8a80: 0x00093685, 0x8a81: 0x40083620, 0x8a82: 0x40083820, 0x8a83: 0x40083a20, + 0x8a84: 0x40083c20, 0x8a85: 0x002c628b, 0x8a86: 0x002c6285, 0x8a87: 0x002c9885, + 0x8a88: 0x002d9a85, 0x8a89: 0x002dcc85, 0x8a8a: 0x40083e20, 0x8a8b: 0x400a6e20, + 0x8a8c: 0x40084020, 0x8a8d: 0xe00009c4, 0x8a8e: 0x402d1e20, 0x8a8f: 0x40084220, + 0x8a90: 0xe00002cb, 0x8a91: 0xe00002d3, 0x8a92: 0xe00002b2, 0x8a93: 0xe00002bb, + 0x8a94: 0xe00003cd, 0x8a95: 0xe00002c3, 0x8a96: 0xe00003d1, 0x8a97: 0xe00004ab, + 0x8a98: 0xe0000579, 0x8a99: 0xe00002c7, 0x8a9a: 0xe0000640, 0x8a9b: 0xe00002cf, + 0x8a9c: 0xe00004af, 0x8a9d: 0xe0000644, 0x8a9e: 0xe0000798, 0x8a9f: 0xe0002d42, + 0x8aa0: 0x002d9a8a, 0x8aa1: 0xe00027d4, 0x8aa2: 0xe00027db, 0x8aa3: 0xe00027ee, + 0x8aa4: 0x0030be8a, 0x8aa5: 0xe0002848, 0x8aa6: 0xe000284f, 0x8aa7: 0xe00010bb, + 0x8aa8: 0xe00027f4, 0x8aa9: 0x0030f68a, 0x8aaa: 0xe0002883, 0x8aab: 0xe000288a, + 0x8aac: 0x002e228a, 0x8aad: 0x002c3a8a, 0x8aae: 0x002c628a, 0x8aaf: 0x002e828a, + 0x8ab0: 0x002d9a84, 0x8ab1: 0xe00027d1, 0x8ab2: 0xe00027d7, 0x8ab3: 0xe00027eb, + 0x8ab4: 0x0030be84, 0x8ab5: 0xe0002845, 0x8ab6: 0xe000284b, 0x8ab7: 0xe00010b6, + 0x8ab8: 0xe00027f1, 0x8ab9: 0x0030f684, 0x8aba: 0xe0002880, 0x8abb: 0xe0002886, + 0x8abc: 0x002e2284, 0x8abd: 0x002c3a84, 0x8abe: 0x002c6284, 0x8abf: 0x002e8284, + // Block 0x22b, offset 0x8ac0 + 0x8ac0: 0x4009a620, 0x8ac1: 0xe00000f5, 0x8ac2: 0x4009a820, 0x8ac3: 0x4009aa20, + 0x8ac4: 0xe00000f8, 0x8ac5: 0x4009ac20, 0x8ac6: 0x4009ae20, 0x8ac7: 0xe00000fb, + 0x8ac8: 0x4009b020, 0x8ac9: 0xe00000fe, 0x8aca: 0x4009b220, 0x8acb: 0x4009b420, + 0x8acc: 0x4009b620, 0x8acd: 0x4009b820, 0x8ace: 0x4009ba20, 0x8acf: 0x4009bc20, + 0x8ad0: 0x4009be20, 0x8ad1: 0x4009c020, 0x8ad2: 0x4009c220, 0x8ad3: 0x4009c420, + 0x8ad4: 0x4009c620, 0x8ad5: 0x4009c820, 0x8ad6: 0x4009ca20, 0x8ad7: 0x4009cc20, + 0x8ad8: 0x4009ce20, 0x8ad9: 0x4009d020, 0x8ada: 0x4009d220, 0x8adb: 0x4009d420, + 0x8adc: 0x4009d620, 0x8add: 0x4009d820, 0x8ade: 0x4009da20, 0x8adf: 0x4009dc20, + 0x8ae0: 0xe0002f16, 0x8ae1: 0x4009de20, 0x8ae2: 0xe0000104, 0x8ae3: 0x4009e020, + 0x8ae4: 0x4009e220, 0x8ae5: 0x4009e420, 0x8ae6: 0x4009e620, 0x8ae7: 0x4009e820, + 0x8ae8: 0x4009ea20, 0x8ae9: 0x4009ec20, 0x8aea: 0x4009ee20, 0x8aeb: 0x4009f020, + 0x8aec: 0x4009f220, 0x8aed: 0xe0000101, 0x8aee: 0xe0002f13, 0x8aef: 0xe0002f19, + 0x8af0: 0xe0000107, 0x8af1: 0xe000010a, 0x8af2: 0x4009f420, 0x8af3: 0x4009f620, + 0x8af4: 0xe000010d, 0x8af5: 0xe0000110, 0x8af6: 0x4009f820, 0x8af7: 0x4009fa20, + 0x8af8: 0xe0000113, 0x8af9: 0xe0000116, 0x8afa: 0x4009fc20, 0x8afb: 0x4009fe20, + 0x8afc: 0x400a0020, 0x8afd: 0x400a0220, 0x8afe: 0x400a0420, 0x8aff: 0x400a0620, + // Block 0x22c, offset 0x8b00 + 0x8b00: 0x400d1820, 0x8b01: 0x400d1a20, 0x8b02: 0x400d1c20, 0x8b03: 0x400d1e20, + 0x8b04: 0x400d2020, 0x8b05: 0x400d2220, 0x8b06: 0x400d2420, 0x8b07: 0x400d2620, + 0x8b08: 0x400d2820, 0x8b09: 0x400d2a20, 0x8b0a: 0x400d2c20, + 0x8b20: 0x0029ce86, 0x8b21: 0x0029d086, 0x8b22: 0x0029d286, 0x8b23: 0x0029d486, + 0x8b24: 0x0029d686, 0x8b25: 0x0029d886, 0x8b26: 0x0029da86, 0x8b27: 0x0029dc86, + 0x8b28: 0x0029de86, 0x8b29: 0xe0002d45, 0x8b2a: 0xe0002d58, 0x8b2b: 0xe0002d6b, + 0x8b2c: 0xe0002d7e, 0x8b2d: 0xe0002d8d, 0x8b2e: 0xe0002d9c, 0x8b2f: 0xe0002dab, + 0x8b30: 0xe0002dba, 0x8b31: 0xe0002dc9, 0x8b32: 0xe0002dd8, 0x8b33: 0xe0002df6, + 0x8b34: 0xe0002bba, 0x8b35: 0xe0002bbe, 0x8b36: 0xe0002bc2, 0x8b37: 0xe0002bc6, + 0x8b38: 0xe0002bca, 0x8b39: 0xe0002bce, 0x8b3a: 0xe0002bd2, 0x8b3b: 0xe0002bd6, + 0x8b3c: 0xe0002bda, 0x8b3d: 0xe0000015, 0x8b3e: 0xe000001a, 0x8b3f: 0xe000001f, + // Block 0x22d, offset 0x8b40 + 0x8b40: 0xe0000024, 0x8b41: 0xe0000029, 0x8b42: 0xe000002e, 0x8b43: 0xe0000033, + 0x8b44: 0xe0000038, 0x8b45: 0xe000003d, 0x8b46: 0xe0000042, 0x8b47: 0xe0000047, + 0x8b48: 0xe0002d3f, 0x8b49: 0xe0002df3, 0x8b4a: 0xe0002e60, 0x8b4b: 0xe0002e95, + 0x8b4c: 0xe0002ec2, 0x8b4d: 0xe0002ed4, 0x8b4e: 0xe0002ee3, 0x8b4f: 0xe0002ef2, + 0x8b50: 0xe0002f01, 0x8b51: 0xe0002d48, 0x8b52: 0xe0002d5b, 0x8b53: 0xe0002d6e, + 0x8b54: 0xe0002d81, 0x8b55: 0xe0002d90, 0x8b56: 0xe0002d9f, 0x8b57: 0xe0002dae, + 0x8b58: 0xe0002dbd, 0x8b59: 0xe0002dcc, 0x8b5a: 0xe0002ddb, 0x8b5b: 0xe0002df9, + 0x8b5c: 0xe0002bde, 0x8b5d: 0xe0002be6, 0x8b5e: 0xe0002bee, 0x8b5f: 0xe0002bf6, + 0x8b60: 0xe000249f, 0x8b61: 0xe0002bfe, 0x8b62: 0xe0002c06, 0x8b63: 0xe00024a7, + 0x8b64: 0xe00024af, 0x8b65: 0xe0002c0e, 0x8b66: 0xe00024b7, 0x8b67: 0xe0002c16, + 0x8b68: 0xe0002c1e, 0x8b69: 0xe0002c26, 0x8b6a: 0xe00024bf, 0x8b6b: 0xe0002c2e, + 0x8b6c: 0xe00024c7, 0x8b6d: 0xe00024cf, 0x8b6e: 0xe00024d7, 0x8b6f: 0xe00024df, + 0x8b70: 0xe0002c36, 0x8b71: 0xe0002c3e, 0x8b72: 0xe0002c46, 0x8b73: 0xe00024e7, + 0x8b74: 0xe0002c4e, 0x8b75: 0xe0002c56, 0x8b76: 0x002bde8c, 0x8b77: 0x002c0a8c, + 0x8b78: 0x002c3a8c, 0x8b79: 0x002c628c, 0x8b7a: 0x002c988c, 0x8b7b: 0x002d088c, + 0x8b7c: 0x002d228c, 0x8b7d: 0x002d688c, 0x8b7e: 0x002d9a8c, 0x8b7f: 0x002dcc8c, + // Block 0x22e, offset 0x8b80 + 0x8b80: 0x40151420, 0x8b81: 0x40151620, 0x8b82: 0x40151820, 0x8b83: 0x40151a20, + 0x8b84: 0x40151c20, 0x8b85: 0x40151e20, 0x8b86: 0x40152020, 0x8b87: 0x40152220, + 0x8b88: 0x40152420, 0x8b89: 0x40152620, 0x8b8a: 0x40152820, 0x8b8b: 0x40152a20, + 0x8b8c: 0x40152c20, 0x8b8d: 0x40152e20, 0x8b8e: 0x40153020, 0x8b8f: 0x40153220, + 0x8b90: 0x40153420, 0x8b91: 0x40153620, 0x8b92: 0x40153820, 0x8b93: 0x40153a20, + 0x8b94: 0x40153c20, 0x8b95: 0x40153e20, 0x8b96: 0x40154020, 0x8b97: 0x40154220, + 0x8b98: 0x40154420, 0x8b99: 0x40154620, 0x8b9a: 0x40154820, 0x8b9b: 0x40154a20, + 0x8b9c: 0x40154c20, 0x8b9d: 0x40154e20, 0x8b9e: 0x40155020, 0x8b9f: 0x40155220, + 0x8ba0: 0x40155420, 0x8ba1: 0x40155620, 0x8ba2: 0x40155820, 0x8ba3: 0x40155a20, + 0x8ba4: 0x40155c20, 0x8ba5: 0x40155e20, 0x8ba6: 0x40156020, 0x8ba7: 0x40156220, + 0x8ba8: 0x40156420, 0x8ba9: 0x40156620, 0x8baa: 0x40156820, 0x8bab: 0x40156a20, + 0x8bac: 0x40156c20, 0x8bad: 0x40156e20, 0x8bae: 0x40157020, 0x8baf: 0x40157220, + 0x8bb0: 0x40157420, 0x8bb1: 0x40157620, 0x8bb2: 0x40157820, 0x8bb3: 0x40157a20, + 0x8bb4: 0xe0002b9c, 0x8bb5: 0xe0002d2c, 0x8bb6: 0xe0002d2f, 0x8bb7: 0x40157c20, + 0x8bb8: 0x40157e20, 0x8bb9: 0x40158020, 0x8bba: 0x40158220, 0x8bbb: 0x40158420, + 0x8bbc: 0x40158620, 0x8bbd: 0x40158820, 0x8bbe: 0x40158a20, 0x8bbf: 0x40158c20, + // Block 0x22f, offset 0x8bc0 + 0x8bc0: 0xe0002c5e, 0x8bc1: 0xe0002c62, 0x8bc2: 0xe0002c66, 0x8bc3: 0xe0002c6a, + 0x8bc4: 0xe0002c6e, 0x8bc5: 0xe0002c72, 0x8bc6: 0xe0002c76, 0x8bc7: 0xe0002c7a, + 0x8bc8: 0xe0002c7e, 0x8bc9: 0xe0002c82, 0x8bca: 0xe0002c86, 0x8bcb: 0xe0002c8a, + 0x8bcc: 0xe0002c8e, 0x8bcd: 0xe0002c92, 0x8bce: 0xe000004c, 0x8bcf: 0xe0000051, + 0x8bd0: 0xe0000056, 0x8bd1: 0xe000005b, 0x8bd2: 0xe0000060, 0x8bd3: 0xe0000065, + 0x8bd4: 0xe000006a, 0x8bd5: 0xe000006f, 0x8bd6: 0xe0000083, 0x8bd7: 0xe000008d, + 0x8bd8: 0xe0000092, 0x8bd9: 0xe0000097, 0x8bda: 0xe000009c, 0x8bdb: 0xe00000a1, + 0x8bdc: 0xe0000088, 0x8bdd: 0xe0000074, 0x8bde: 0xe000007c, + 0x8be0: 0xe0002c96, 0x8be1: 0xe0002ca6, 0x8be2: 0xe0002c9e, 0x8be3: 0xe0002cd6, + 0x8be4: 0xe0002caa, 0x8be5: 0xe0002cbe, 0x8be6: 0xe0002c9a, 0x8be7: 0xe0002cba, + 0x8be8: 0xe0002ca2, 0x8be9: 0xe0002cc6, 0x8bea: 0xe0002ce6, 0x8beb: 0xe0002cfa, + 0x8bec: 0xe0002cf6, 0x8bed: 0xe0002cee, 0x8bee: 0xe0002d22, 0x8bef: 0xe0002cda, + 0x8bf0: 0xe0002ce2, 0x8bf1: 0xe0002cf2, 0x8bf2: 0xe0002cea, 0x8bf3: 0xe0002d06, + 0x8bf4: 0xe0002cce, 0x8bf5: 0xe0002cfe, 0x8bf6: 0xe0002d1a, 0x8bf7: 0xe0002d0a, + 0x8bf8: 0xe0002cc2, 0x8bf9: 0xe0002cae, 0x8bfa: 0xe0002cd2, 0x8bfb: 0xe0002cde, + 0x8bfc: 0xe0002d02, 0x8bfd: 0xe0002cb2, 0x8bfe: 0xe0002d1e, 0x8bff: 0xe0002cca, + // Block 0x230, offset 0x8c00 + 0x8c00: 0xe0002d0e, 0x8c01: 0xe0002cb6, 0x8c02: 0xe0002d12, 0x8c03: 0xe0002d16, + 0x8c04: 0x02aa9e86, 0x8c05: 0x02bcf886, 0x8c06: 0x02cb0e86, 0x8c07: 0x02f71e86, + 0x8c08: 0xe00002e3, 0x8c09: 0xe00003d8, 0x8c0a: 0xe00004b3, 0x8c0b: 0xe000057d, + 0x8c0c: 0xe0000648, 0x8c0d: 0xe00006f0, 0x8c0e: 0xe000079c, 0x8c0f: 0xe0000841, + 0x8c10: 0xe0000ec0, 0x8c11: 0xe0002e05, 0x8c12: 0xe0002e10, 0x8c13: 0xe0002e1b, + 0x8c14: 0xe0002e26, 0x8c15: 0xe0002e31, 0x8c16: 0xe0002e38, 0x8c17: 0xe0002e3f, + 0x8c18: 0xe0002e46, 0x8c19: 0xe0002e4d, 0x8c1a: 0xe0002e63, 0x8c1b: 0xe0002e6a, + 0x8c1c: 0xe0002e71, 0x8c1d: 0xe0002e74, 0x8c1e: 0xe0002e77, 0x8c1f: 0xe0002e7a, + 0x8c20: 0x0062ac86, 0x8c21: 0x0062b086, 0x8c22: 0x0062b286, 0x8c23: 0x0062b686, + 0x8c24: 0x0062b886, 0x8c25: 0x0062ba86, 0x8c26: 0x0062be86, 0x8c27: 0x0062c286, + 0x8c28: 0x0062c486, 0x8c29: 0x0062c886, 0x8c2a: 0x0062ca86, 0x8c2b: 0x0062cc86, + 0x8c2c: 0x0062ce86, 0x8c2d: 0x0062d086, 0x8c2e: 0xf0000606, 0x8c2f: 0xf0000606, + 0x8c30: 0xf0000606, 0x8c31: 0xf0000606, 0x8c32: 0xf0000606, 0x8c33: 0xf0000606, + 0x8c34: 0xf0000606, 0x8c35: 0xf0000606, 0x8c36: 0xf0000606, 0x8c37: 0xf0000606, + 0x8c38: 0xf0000606, 0x8c39: 0xf0000606, 0x8c3a: 0xf0000606, 0x8c3b: 0xf0000606, + 0x8c3c: 0xe0002127, 0x8c3d: 0xe0002122, 0x8c3e: 0xf0000606, 0x8c3f: 0x4027ac20, + // Block 0x231, offset 0x8c40 + 0x8c40: 0x029c0086, 0x8c41: 0x029d1886, 0x8c42: 0x029c1286, 0x8c43: 0x02adb686, + 0x8c44: 0x029d2886, 0x8c45: 0x02a2da86, 0x8c46: 0x029c0686, 0x8c47: 0x02a2d686, + 0x8c48: 0x029cba86, 0x8c49: 0x02a68286, 0x8c4a: 0x02ce1086, 0x8c4b: 0x02e0d686, + 0x8c4c: 0x02d86886, 0x8c4d: 0x02ce5086, 0x8c4e: 0x0323a286, 0x8c4f: 0x02ae3e86, + 0x8c50: 0x02cbca86, 0x8c51: 0x02d05486, 0x8c52: 0x02ce1286, 0x8c53: 0x02f27c86, + 0x8c54: 0x02a81a86, 0x8c55: 0x02e4f286, 0x8c56: 0x03194286, 0x8c57: 0x02f2ba86, + 0x8c58: 0x02a56886, 0x8c59: 0x02f3b086, 0x8c5a: 0x02ea6e86, 0x8c5b: 0x02b2e686, + 0x8c5c: 0x0320d286, 0x8c5d: 0x02a25486, 0x8c5e: 0x02a6e086, 0x8c5f: 0x02d9d086, + 0x8c60: 0x03300a86, 0x8c61: 0x029e2286, 0x8c62: 0x02a33286, 0x8c63: 0x02d6c686, + 0x8c64: 0x029c1486, 0x8c65: 0x029c5a86, 0x8c66: 0x029c1686, 0x8c67: 0x02bbcc86, + 0x8c68: 0x02a7e686, 0x8c69: 0x02a67686, 0x8c6a: 0x02b72e86, 0x8c6b: 0x02b6cc86, + 0x8c6c: 0x02edc686, 0x8c6d: 0x029e0286, 0x8c6e: 0x03198e86, 0x8c6f: 0x02a6a886, + 0x8c70: 0x02b23886, 0x8c71: 0xe0002e7d, 0x8c72: 0xe0002e80, 0x8c73: 0xe0002e83, + 0x8c74: 0xe0002e86, 0x8c75: 0xe0002e98, 0x8c76: 0xe0002e9b, 0x8c77: 0xe0002e9e, + 0x8c78: 0xe0002ea1, 0x8c79: 0xe0002ea4, 0x8c7a: 0xe0002ea7, 0x8c7b: 0xe0002eaa, + 0x8c7c: 0xe0002ead, 0x8c7d: 0xe0002eb0, 0x8c7e: 0xe0002eb3, 0x8c7f: 0xe0002ec5, + // Block 0x232, offset 0x8c80 + 0x8c80: 0xe0002dea, 0x8c81: 0xe0002e57, 0x8c82: 0xe0002e8c, 0x8c83: 0xe0002eb9, + 0x8c84: 0xe0002ecb, 0x8c85: 0xe0002eda, 0x8c86: 0xe0002ee9, 0x8c87: 0xe0002ef8, + 0x8c88: 0xe0002f07, 0x8c89: 0xe0002d50, 0x8c8a: 0xe0002d63, 0x8c8b: 0xe0002d76, + 0x8c8c: 0xe00027c5, 0x8c8d: 0xe0000b85, 0x8c8e: 0xe00026cc, 0x8c8f: 0xe0000d14, + 0x8c90: 0x00657693, 0x8c91: 0x00657893, 0x8c92: 0x00657a93, 0x8c93: 0x00657e93, + 0x8c94: 0x00658093, 0x8c95: 0x00658293, 0x8c96: 0x00658493, 0x8c97: 0x00658693, + 0x8c98: 0x00658893, 0x8c99: 0x00658a93, 0x8c9a: 0x00658c93, 0x8c9b: 0x00658e93, + 0x8c9c: 0x00659093, 0x8c9d: 0x00659293, 0x8c9e: 0x00659493, 0x8c9f: 0x00659693, + 0x8ca0: 0x00659893, 0x8ca1: 0x00659a93, 0x8ca2: 0x00659c93, 0x8ca3: 0x00659e93, + 0x8ca4: 0x0065a093, 0x8ca5: 0x0065a293, 0x8ca6: 0x0065a493, 0x8ca7: 0x0065a693, + 0x8ca8: 0x0065a893, 0x8ca9: 0x0065aa93, 0x8caa: 0x0065ac93, 0x8cab: 0x0065ae93, + 0x8cac: 0x0065b093, 0x8cad: 0x0065b293, 0x8cae: 0x0065b493, 0x8caf: 0x0065b693, + 0x8cb0: 0x0065b893, 0x8cb1: 0x0065ba93, 0x8cb2: 0x0065bc93, 0x8cb3: 0x0065be93, + 0x8cb4: 0x0065c093, 0x8cb5: 0x0065c493, 0x8cb6: 0x0065c693, 0x8cb7: 0x0065c893, + 0x8cb8: 0x0065ca93, 0x8cb9: 0x0065cc93, 0x8cba: 0x0065ce93, 0x8cbb: 0x0065d093, + 0x8cbc: 0x0065d293, 0x8cbd: 0x0065d493, 0x8cbe: 0x0065d693, + // Block 0x233, offset 0x8cc0 + 0x8cc0: 0xe000230b, 0x8cc1: 0xe00022f8, 0x8cc2: 0xe00022fc, 0x8cc3: 0xe0002311, + 0x8cc4: 0xe0002316, 0x8cc5: 0xe000231d, 0x8cc6: 0xe0002321, 0x8cc7: 0xe0002325, + 0x8cc8: 0xe000232b, 0x8cc9: 0xf0001c1c, 0x8cca: 0xe0002330, 0x8ccb: 0xe000233c, + 0x8ccc: 0xe0002340, 0x8ccd: 0xe0002337, 0x8cce: 0xe0002346, 0x8ccf: 0xe000234b, + 0x8cd0: 0xe000234f, 0x8cd1: 0xe0002353, 0x8cd2: 0xf0001c1c, 0x8cd3: 0xe000235e, + 0x8cd4: 0xe0002358, 0x8cd5: 0xf0001c1c, 0x8cd6: 0xe0002363, 0x8cd7: 0xe000236d, + 0x8cd8: 0xe0002d39, 0x8cd9: 0xe0002ded, 0x8cda: 0xe0002e5a, 0x8cdb: 0xe0002e8f, + 0x8cdc: 0xe0002ebc, 0x8cdd: 0xe0002ece, 0x8cde: 0xe0002edd, 0x8cdf: 0xe0002eec, + 0x8ce0: 0xe0002efb, 0x8ce1: 0xe0002f0a, 0x8ce2: 0xe0002d54, 0x8ce3: 0xe0002d67, + 0x8ce4: 0xe0002d7a, 0x8ce5: 0xe0002d89, 0x8ce6: 0xe0002d98, 0x8ce7: 0xe0002da7, + 0x8ce8: 0xe0002db6, 0x8ce9: 0xe0002dc5, 0x8cea: 0xe0002dd4, 0x8ceb: 0xe0002de3, + 0x8cec: 0xe0002e01, 0x8ced: 0xe0002e0c, 0x8cee: 0xe0002e17, 0x8cef: 0xe0002e22, + 0x8cf0: 0xe0002e2d, 0x8cf1: 0xe0000c1e, 0x8cf2: 0xe000329b, 0x8cf3: 0xe0002f0d, + 0x8cf4: 0xe0000a31, 0x8cf5: 0xe0002824, 0x8cf6: 0xe00035d6, 0x8cf7: 0xe00032a7, + 0x8cf8: 0xe0000ac2, 0x8cf9: 0xe0000ac6, 0x8cfa: 0xe00027e8, 0x8cfb: 0xf0001c1c, + 0x8cfc: 0xf0001c1c, 0x8cfd: 0xf0001c1c, 0x8cfe: 0xf0001c1c, 0x8cff: 0xe0002431, + // Block 0x234, offset 0x8d00 + 0x8d00: 0xe00035d0, 0x8d01: 0xe00035b8, 0x8d02: 0xe00035ee, 0x8d03: 0xe000358e, + 0x8d04: 0xe00027f7, 0x8d05: 0xe00027fa, 0x8d06: 0xe0003594, 0x8d07: 0xe0003573, + 0x8d08: 0xe0000a6b, 0x8d09: 0xe0000cb4, 0x8d0a: 0xe00035d9, 0x8d0b: 0xe00035bb, + 0x8d0c: 0xe00035f1, 0x8d0d: 0xe00035f4, 0x8d0e: 0xe000359d, 0x8d0f: 0xe00027fd, + 0x8d10: 0xe00027ce, 0x8d11: 0xe0000cb9, 0x8d12: 0xe0000d36, 0x8d13: 0xe0000be3, + 0x8d14: 0xe0000fc5, 0x8d15: 0xe00035f7, 0x8d16: 0xe00035a0, 0x8d17: 0xe00032a4, + 0x8d18: 0xe0002803, 0x8d19: 0xe0003570, 0x8d1a: 0xe00035c7, 0x8d1b: 0xe00035fa, + 0x8d1c: 0xe00035a3, 0x8d1d: 0xe0003099, 0x8d1e: 0xe0002806, 0x8d1f: 0xe0000d3e, + 0x8d20: 0xe0000a72, 0x8d21: 0xe0003588, 0x8d22: 0xe0000cbd, 0x8d23: 0xe0000d42, + 0x8d24: 0xe0000a76, 0x8d25: 0xe000358b, 0x8d26: 0xe0000cc1, 0x8d27: 0xe0000d2d, + 0x8d28: 0xe0000d31, 0x8d29: 0xe00035d3, 0x8d2a: 0xe0000cc5, 0x8d2b: 0xe0000d4a, + 0x8d2c: 0xe0000be7, 0x8d2d: 0xe0000f0b, 0x8d2e: 0xe0000f0f, 0x8d2f: 0xe0000f15, + 0x8d30: 0xe000282d, 0x8d31: 0xe0002821, 0x8d32: 0xe000288e, 0x8d33: 0xe000281b, + 0x8d34: 0xe00035dc, 0x8d35: 0xe00035ca, 0x8d36: 0xe00035fd, 0x8d37: 0xe00035a6, + 0x8d38: 0xe000280f, 0x8d39: 0xe00035a9, 0x8d3a: 0xe00035df, 0x8d3b: 0xe00035cd, + 0x8d3c: 0xe0003600, 0x8d3d: 0xe00035af, 0x8d3e: 0xe0002812, 0x8d3f: 0xe00035b2, + // Block 0x235, offset 0x8d40 + 0x8d40: 0xe0002815, 0x8d41: 0xe00035b5, 0x8d42: 0xe00009b7, 0x8d43: 0xe00024f3, + 0x8d44: 0xe0003090, 0x8d45: 0xe0003096, 0x8d46: 0xe0000a66, 0x8d47: 0xe0000a7a, + 0x8d48: 0xe000329e, 0x8d49: 0xe0003576, 0x8d4a: 0xe00027c2, 0x8d4b: 0xe00027c8, + 0x8d4c: 0xe00027e5, 0x8d4d: 0xe0002800, 0x8d4e: 0xe0002809, 0x8d4f: 0xe000280c, + 0x8d50: 0xe0003582, 0x8d51: 0xe0003585, 0x8d52: 0xe0000d0d, 0x8d53: 0xe0002818, + 0x8d54: 0xe0003591, 0x8d55: 0xe0000d3a, 0x8d56: 0xe0000d46, 0x8d57: 0xe0002827, + 0x8d58: 0xe0000eb0, 0x8d59: 0xe0000eb8, 0x8d5a: 0xe000282a, 0x8d5b: 0xe0002836, + 0x8d5c: 0xe000283f, 0x8d5d: 0xe00035e2, 0x8d5e: 0xe00010b2, 0x8d5f: 0xe00009c8, + 0x8d60: 0xe0002de7, 0x8d61: 0xe0002e54, 0x8d62: 0xe0002e89, 0x8d63: 0xe0002eb6, + 0x8d64: 0xe0002ec8, 0x8d65: 0xe0002ed7, 0x8d66: 0xe0002ee6, 0x8d67: 0xe0002ef5, + 0x8d68: 0xe0002f04, 0x8d69: 0xe0002d4c, 0x8d6a: 0xe0002d5f, 0x8d6b: 0xe0002d72, + 0x8d6c: 0xe0002d85, 0x8d6d: 0xe0002d94, 0x8d6e: 0xe0002da3, 0x8d6f: 0xe0002db2, + 0x8d70: 0xe0002dc1, 0x8d71: 0xe0002dd0, 0x8d72: 0xe0002ddf, 0x8d73: 0xe0002dfd, + 0x8d74: 0xe0002e08, 0x8d75: 0xe0002e13, 0x8d76: 0xe0002e1e, 0x8d77: 0xe0002e29, + 0x8d78: 0xe0002e34, 0x8d79: 0xe0002e3b, 0x8d7a: 0xe0002e42, 0x8d7b: 0xe0002e49, + 0x8d7c: 0xe0002e50, 0x8d7d: 0xe0002e66, 0x8d7e: 0xe0002e6d, 0x8d7f: 0xe0000bdf, + // Block 0x236, offset 0x8d80 + 0x8d80: 0xe000356a, 0x8d81: 0xe00026cf, 0x8d82: 0xe000356d, 0x8d83: 0xe0000b99, + 0x8d84: 0xe0000b9d, 0x8d85: 0xe0000f83, 0x8d86: 0xe000283c, + 0x8d93: 0xf0000404, + 0x8d94: 0xf0000404, 0x8d95: 0xf0000404, 0x8d96: 0xf0000404, 0x8d97: 0xf0000404, + 0x8d9d: 0xe000150b, 0x8d9e: 0xa1a09602, 0x8d9f: 0xe0001514, + 0x8da0: 0x0038ae85, 0x8da1: 0x00389085, 0x8da2: 0x00389685, 0x8da3: 0x00389885, + 0x8da4: 0x0038a485, 0x8da5: 0x0038a685, 0x8da6: 0x0038a885, 0x8da7: 0x0038b685, + 0x8da8: 0x0038ba85, 0x8da9: 0x00093885, 0x8daa: 0xe0001542, 0x8dab: 0xe000153f, + 0x8dac: 0xe000154c, 0x8dad: 0xe0001548, 0x8dae: 0xe00014e1, 0x8daf: 0xe00014e4, + 0x8db0: 0xe00014e7, 0x8db1: 0xe00014ea, 0x8db2: 0xe00014f0, 0x8db3: 0xe00014f3, + 0x8db4: 0xe00014f6, 0x8db5: 0xe00014fc, 0x8db6: 0xe0001505, + 0x8db8: 0xe0001508, 0x8db9: 0xe000150e, 0x8dba: 0xe000151b, 0x8dbb: 0xe0001518, + 0x8dbc: 0xe0001521, 0x8dbe: 0xe0001524, + // Block 0x237, offset 0x8dc0 + 0x8dc0: 0xa0000000, 0x8dc1: 0xa0000000, 0x8dc2: 0xa0000000, 0x8dc3: 0xa0000000, + 0x8dc4: 0xa0000000, 0x8dc5: 0xa0000000, 0x8dc6: 0xa0000000, 0x8dc7: 0xa0000000, + 0x8dc8: 0xa0000000, 0x8dc9: 0xa0000000, 0x8dca: 0xa0000000, 0x8dcb: 0xa0000000, + 0x8dcc: 0xa0000000, 0x8dcd: 0xa0000000, 0x8dce: 0xa0000000, 0x8dcf: 0xa0000000, + 0x8dd0: 0x00024096, 0x8dd1: 0x00025c96, 0x8dd2: 0x00030496, 0x8dd3: 0x00026c96, + 0x8dd4: 0x00026296, 0x8dd5: 0x0002ba96, 0x8dd6: 0x0002c496, 0x8dd7: 0x0004b496, + 0x8dd8: 0x0004b696, 0x8dd9: 0xe0002bb6, + 0x8de0: 0xae608202, 0x8de1: 0xae600000, 0x8de2: 0xae608102, 0x8de3: 0xae600000, + 0x8de4: 0xae600000, 0x8de5: 0xae600000, 0x8de6: 0xae600000, + 0x8df0: 0xe0002baf, 0x8df1: 0x00022c96, 0x8df2: 0x00022a96, 0x8df3: 0x00021696, + 0x8df4: 0x00021696, 0x8df5: 0x0003f496, 0x8df6: 0x0003f696, 0x8df7: 0x0003fc96, + 0x8df8: 0x0003fe96, 0x8df9: 0x0004b096, 0x8dfa: 0x0004b296, 0x8dfb: 0x0004ac96, + 0x8dfc: 0x0004ae96, 0x8dfd: 0x0004a096, 0x8dfe: 0x0004a296, 0x8dff: 0x00049c96, + // Block 0x238, offset 0x8e00 + 0x8e00: 0xe0002d36, 0x8e01: 0xe0002d33, 0x8e02: 0xe0002d3c, 0x8e03: 0xe0002df0, + 0x8e04: 0xe0002e5d, 0x8e05: 0xe0002e92, 0x8e06: 0xe0002ebf, 0x8e07: 0xe0002ed1, + 0x8e08: 0xe0002ee0, 0x8e09: 0xe0002eef, 0x8e0a: 0xe0002efe, + 0x8e10: 0xe0002be2, 0x8e11: 0xe0002bea, 0x8e12: 0xe0002bf2, 0x8e13: 0xe0002bfa, + 0x8e14: 0xe00024a3, 0x8e15: 0xe0002c02, 0x8e16: 0xe0002c0a, 0x8e17: 0xe00024ab, + 0x8e18: 0xe00024b3, 0x8e19: 0xe0002c12, 0x8e1a: 0xe00024bb, 0x8e1b: 0xe0002c1a, + 0x8e1c: 0xe0002c22, 0x8e1d: 0xe0002c2a, 0x8e1e: 0xe00024c3, 0x8e1f: 0xe0002c32, + 0x8e20: 0xe00024cb, 0x8e21: 0xe00024d3, 0x8e22: 0xe00024db, 0x8e23: 0xe00024e3, + 0x8e24: 0xe0002c3a, 0x8e25: 0xe0002c42, 0x8e26: 0xe0002c4a, 0x8e27: 0xe00024eb, + 0x8e28: 0xe0002c52, 0x8e29: 0xe0002c5a, 0x8e2a: 0xe00024ef, 0x8e2b: 0x002c3a8c, + 0x8e2c: 0x002f7a8c, 0x8e2d: 0xe0003093, 0x8e2e: 0xe00035e8, + 0x8e30: 0x002bde9d, 0x8e31: 0x002c0a9d, 0x8e32: 0x002c3a9d, 0x8e33: 0x002c629d, + 0x8e34: 0x002c989d, 0x8e35: 0x002d089d, 0x8e36: 0x002d229d, 0x8e37: 0x002d689d, + 0x8e38: 0x002d9a9d, 0x8e39: 0x002dcc9d, 0x8e3a: 0x002dfe9d, 0x8e3b: 0x002e229d, + 0x8e3c: 0x002e829d, 0x8e3d: 0x002e9e9d, 0x8e3e: 0x002ee29d, 0x8e3f: 0x002f2c9d, + // Block 0x239, offset 0x8e40 + 0x8e40: 0x002f569d, 0x8e41: 0x002f7a9d, 0x8e42: 0x002fe69d, 0x8e43: 0x00302c9d, + 0x8e44: 0x00306c9d, 0x8e45: 0x0030be9d, 0x8e46: 0x0030e29d, 0x8e47: 0x0030f69d, + 0x8e48: 0x0031009d, 0x8e49: 0x00312a9d, 0x8e4a: 0xe00027cb, 0x8e4b: 0xe00035ac, + 0x8e4c: 0xe0002830, 0x8e4d: 0xe0002839, 0x8e4e: 0xe0000ebc, 0x8e4f: 0xe00035e5, + 0x8e50: 0x002bde8c, 0x8e51: 0x002c0a8c, 0x8e52: 0x002c3a8c, 0x8e53: 0x002c628c, + 0x8e54: 0x002c988c, 0x8e55: 0x002d088c, 0x8e56: 0x002d228c, 0x8e57: 0x002d688c, + 0x8e58: 0x002d9a8c, 0x8e59: 0x002dcc8c, 0x8e5a: 0x002dfe8c, 0x8e5b: 0x002e228c, + 0x8e5c: 0x002e828c, 0x8e5d: 0x002e9e8c, 0x8e5e: 0x002ee28c, 0x8e5f: 0x002f2c8c, + 0x8e60: 0x002f568c, 0x8e61: 0x002f7a8c, 0x8e62: 0x002fe68c, 0x8e63: 0x00302c8c, + 0x8e64: 0x00306c8c, 0x8e65: 0x0030be8c, 0x8e66: 0x0030e28c, 0x8e67: 0x0030f68c, + 0x8e68: 0x0031008c, 0x8e69: 0x00312a8c, 0x8e6a: 0xe0003597, 0x8e6b: 0xe000359a, + 0x8e70: 0x002bde9d, 0x8e71: 0x002c0a9d, 0x8e72: 0x002c3a9d, 0x8e73: 0x002c629d, + 0x8e74: 0x002c989d, 0x8e75: 0x002d089d, 0x8e76: 0x002d229d, 0x8e77: 0x002d689d, + 0x8e78: 0x002d9a9d, 0x8e79: 0x002dcc9d, 0x8e7a: 0x002dfe9d, 0x8e7b: 0x002e229d, + 0x8e7c: 0x002e829d, 0x8e7d: 0x002e9e9d, 0x8e7e: 0x002ee29d, 0x8e7f: 0x002f2c9d, + // Block 0x23a, offset 0x8e80 + 0x8e80: 0x002f569d, 0x8e81: 0x002f7a9d, 0x8e82: 0x002fe69d, 0x8e83: 0x00302c9d, + 0x8e84: 0x00306c9d, 0x8e85: 0x0030be9d, 0x8e86: 0x0030e29d, 0x8e87: 0x0030f69d, + 0x8e88: 0x0031009d, 0x8e89: 0x00312a9d, 0x8e8a: 0x002f2c9d, 0x8e8b: 0xe0000c81, + 0x8e8c: 0xe0000eb5, 0x8e8d: 0xe0000f74, 0x8e8e: 0xe00009d2, 0x8e8f: 0xe00010f0, + 0x8e90: 0xe00032a1, 0x8e91: 0xe0000a6f, 0x8e92: 0xe0000a7e, 0x8e93: 0xe0000ba4, + 0x8e94: 0xe0000c84, 0x8e95: 0xe0000d8a, 0x8e96: 0xe0000d8e, 0x8e97: 0xe0000e9b, + 0x8e98: 0xe0000f77, 0x8e99: 0xe00010a2, 0x8e9a: 0xe00010c0, + // Block 0x23b, offset 0x8ec0 + 0x8ec0: 0xa0000000, 0x8ec1: 0xa0000000, 0x8ec2: 0xa0000000, 0x8ec3: 0xa0000000, + 0x8ec4: 0xa0000000, 0x8ec5: 0xa0000000, 0x8ec6: 0xa0000000, 0x8ec7: 0xa0000000, + 0x8ec8: 0xa0000000, 0x8ec9: 0x40020020, 0x8eca: 0x40020220, 0x8ecb: 0x40020420, + 0x8ecc: 0x40020620, 0x8ecd: 0x40020820, 0x8ece: 0xa0000000, 0x8ecf: 0xa0000000, + 0x8ed0: 0xa0000000, 0x8ed1: 0xa0000000, 0x8ed2: 0xa0000000, 0x8ed3: 0xa0000000, + 0x8ed4: 0xa0000000, 0x8ed5: 0xa0000000, 0x8ed6: 0xa0000000, 0x8ed7: 0xa0000000, + 0x8ed8: 0xa0000000, 0x8ed9: 0xa0000000, 0x8eda: 0xa0000000, 0x8edb: 0xa0000000, + 0x8edc: 0xa0000000, 0x8edd: 0xa0000000, 0x8ede: 0xa0000000, 0x8edf: 0xa0000000, + 0x8ee0: 0x40021220, 0x8ee1: 0x4002ba20, 0x8ee2: 0x4003e020, 0x8ee3: 0x4004ea20, + 0x8ee4: 0x4027de20, 0x8ee5: 0x4004ec20, 0x8ee6: 0x4004e620, 0x8ee7: 0x4003d220, + 0x8ee8: 0x4003f420, 0x8ee9: 0x4003f620, 0x8eea: 0x4004d820, 0x8eeb: 0x40093820, + 0x8eec: 0x40024020, 0x8eed: 0x40021a20, 0x8eee: 0x4002e420, 0x8eef: 0x4004e220, + 0x8ef0: 0x4029cc20, 0x8ef1: 0x4029ce20, 0x8ef2: 0x4029d020, 0x8ef3: 0x4029d220, + 0x8ef4: 0x4029d420, 0x8ef5: 0x4029d620, 0x8ef6: 0x4029d820, 0x8ef7: 0x4029da20, + 0x8ef8: 0x4029dc20, 0x8ef9: 0x4029de20, 0x8efa: 0x40026c20, 0x8efb: 0x40026220, + 0x8efc: 0x40094020, 0x8efd: 0x40094220, 0x8efe: 0x40094420, 0x8eff: 0x4002c420, + // Block 0x23c, offset 0x8f00 + 0x8f00: 0x4004d620, 0x8f01: 0x002bde88, 0x8f02: 0x002c0a88, 0x8f03: 0xc3352741, + 0x8f04: 0x002c6288, 0x8f05: 0x002c9888, 0x8f06: 0x002d0888, 0x8f07: 0xc3392741, + 0x8f08: 0xc5402741, 0x8f09: 0x002d9a88, 0x8f0a: 0xc5442741, 0x8f0b: 0x002dfe88, + 0x8f0c: 0xc0030002, 0x8f0d: 0x002e8288, 0x8f0e: 0x002e9e88, 0x8f0f: 0x002ee288, + 0x8f10: 0x002f2c88, 0x8f11: 0x002f5688, 0x8f12: 0x002f7a88, 0x8f13: 0xc3432741, + 0x8f14: 0x00302c88, 0x8f15: 0xc34700d1, 0x8f16: 0x0030be88, 0x8f17: 0x0030e288, + 0x8f18: 0x0030f688, 0x8f19: 0x00310088, 0x8f1a: 0x00312a88, 0x8f1b: 0x4003f820, + 0x8f1c: 0x4004e420, 0x8f1d: 0x4003fa20, 0x8f1e: 0x40062420, 0x8f1f: 0x40021620, + 0x8f20: 0x40061e20, 0x8f21: 0x402bde20, 0x8f22: 0x402c0a20, 0x8f23: 0xc3332741, + 0x8f24: 0x402c6220, 0x8f25: 0x402c9820, 0x8f26: 0x402d0820, 0x8f27: 0xc3372741, + 0x8f28: 0xc53e2741, 0x8f29: 0x402d9a20, 0x8f2a: 0xc5422741, 0x8f2b: 0x402dfe20, + 0x8f2c: 0xc0000002, 0x8f2d: 0x402e8220, 0x8f2e: 0x402e9e20, 0x8f2f: 0x402ee220, + 0x8f30: 0x402f2c20, 0x8f31: 0x402f5620, 0x8f32: 0x402f7a20, 0x8f33: 0xc3412741, + 0x8f34: 0x40302c20, 0x8f35: 0xc34500d1, 0x8f36: 0x4030be20, 0x8f37: 0x4030e220, + 0x8f38: 0x4030f620, 0x8f39: 0x40310020, 0x8f3a: 0x40312a20, 0x8f3b: 0x4003fc20, + 0x8f3c: 0x40094820, 0x8f3d: 0x4003fe20, 0x8f3e: 0x40094c20, 0x8f3f: 0xa0000000, + // Block 0x23d, offset 0x8f40 + 0x8f40: 0xe0000983, 0x8f41: 0xe0000980, 0x8f42: 0xe00008fb, 0x8f43: 0xe00008f8, + 0x8f44: 0xe000097d, 0x8f45: 0xe000097a, 0x8f46: 0xe0000a38, 0x8f47: 0xe0000a35, + 0x8f48: 0x002c3c83, 0x8f49: 0x402c3c20, 0x8f4a: 0xe0000a4a, 0x8f4b: 0xe0000a47, + 0x8f4c: 0xe0000a44, 0x8f4d: 0xe0000a41, 0x8f4e: 0xe0000a86, 0x8f4f: 0xe0000a83, + 0x8f50: 0xe0000aaa, 0x8f51: 0xe0000aa7, 0x8f52: 0xe0000b46, 0x8f53: 0xe0000b43, + 0x8f54: 0xe0000aee, 0x8f55: 0xe0000aeb, 0x8f56: 0xe0000b2c, 0x8f57: 0xe0000b29, + 0x8f58: 0xe0000b40, 0x8f59: 0xe0000b3d, 0x8f5a: 0xe0000b1a, 0x8f5b: 0xe0000b17, + 0x8f5c: 0x002d2483, 0x8f5d: 0x402d2420, 0x8f5e: 0xe0000bb2, 0x8f5f: 0xe0000baf, + 0x8f60: 0xe0000bc4, 0x8f61: 0xe0000bc1, 0x8f62: 0xe0000bca, 0x8f63: 0xe0000bc7, + 0x8f64: 0x002d6a83, 0x8f65: 0x402d6a20, 0x8f66: 0xe0000c1b, 0x8f67: 0xe0000c18, + 0x8f68: 0xe0000c51, 0x8f69: 0xe0000c4e, 0x8f6a: 0xe0000c60, 0x8f6b: 0xe0000c5d, + 0x8f6c: 0xe0000c31, 0x8f6d: 0xe0000c2e, 0x8f6e: 0xe0000c5a, 0x8f6f: 0xe0000c57, + 0x8f70: 0xe0000c54, 0x8f71: 0x402da220, 0x8f72: 0xf0000a0a, 0x8f73: 0xf0000404, + 0x8f74: 0x002dce83, 0x8f75: 0x402dce20, 0x8f76: 0xe0000c9f, 0x8f77: 0xe0000c9c, + 0x8f78: 0x402f7220, 0x8f79: 0xe0000ccc, 0x8f7a: 0xe0000cc9, 0x8f7b: 0xe0000cd8, + 0x8f7c: 0xe0000cd5, 0x8f7d: 0xe0000cd2, 0x8f7e: 0xe0000ccf, 0x8f7f: 0xe0000d04, + // Block 0x23e, offset 0x8f80 + 0x8f80: 0xe0000cfe, 0x8f81: 0xe0000cf8, 0x8f82: 0xe0000cf5, 0x8f83: 0xe0000d51, + 0x8f84: 0xe0000d4e, 0x8f85: 0xe0000d6f, 0x8f86: 0xe0000d6c, 0x8f87: 0xe0000d5d, + 0x8f88: 0xe0000d5a, 0x8f89: 0xf0000404, 0x8f8a: 0x002eda88, 0x8f8b: 0x402eda20, + 0x8f8c: 0xe0000e2e, 0x8f8d: 0xe0000e2b, 0x8f8e: 0xe0000da0, 0x8f8f: 0xe0000d9d, + 0x8f90: 0xe0000de0, 0x8f91: 0xe0000ddd, 0x8f92: 0xe0000e93, 0x8f93: 0xe0000e8f, + 0x8f94: 0xe0000eca, 0x8f95: 0xe0000ec7, 0x8f96: 0xe0000edc, 0x8f97: 0xe0000ed9, + 0x8f98: 0xe0000ed0, 0x8f99: 0xe0000ecd, 0x8f9a: 0xe0000f1f, 0x8f9b: 0xe0000f1c, + 0x8f9c: 0x002fe883, 0x8f9d: 0x402fe820, 0x8f9e: 0xe0000f47, 0x8f9f: 0xe0000f44, + 0x8fa0: 0xe0000f33, 0x8fa1: 0xe0000f30, 0x8fa2: 0xe0000f99, 0x8fa3: 0xe0000f96, + 0x8fa4: 0xe0000f8a, 0x8fa5: 0xe0000f87, 0x8fa6: 0x00303688, 0x8fa7: 0x40303620, + 0x8fa8: 0xe000102b, 0x8fa9: 0xe0001028, 0x8faa: 0xe000103f, 0x8fab: 0xe000103c, + 0x8fac: 0x00306e83, 0x8fad: 0x40306e20, 0x8fae: 0xe0000ff9, 0x8faf: 0xe0000ff6, + 0x8fb0: 0xe0001025, 0x8fb1: 0xe0001022, 0x8fb2: 0xe0001039, 0x8fb3: 0xe0001036, + 0x8fb4: 0xe00010d8, 0x8fb5: 0xe00010d5, 0x8fb6: 0xe000110e, 0x8fb7: 0xe000110b, + 0x8fb8: 0xe0001117, 0x8fb9: 0xe000113b, 0x8fba: 0xe0001138, 0x8fbb: 0xe000114d, + 0x8fbc: 0xe000114a, 0x8fbd: 0xe0001147, 0x8fbe: 0xe0001144, 0x8fbf: 0xe0000f64, + // Block 0x23f, offset 0x8fc0 + 0x8fc0: 0xa0000000, 0x8fc1: 0xa0000000, 0x8fc2: 0xa0000000, 0x8fc3: 0xa0000000, + 0x8fc4: 0xa0000000, 0x8fc5: 0xa0000000, 0x8fc6: 0xa0000000, 0x8fc7: 0xa0000000, + 0x8fc8: 0xa0000000, 0x8fc9: 0x40020020, 0x8fca: 0x40020220, 0x8fcb: 0x40020420, + 0x8fcc: 0x40020620, 0x8fcd: 0x40020820, 0x8fce: 0xa0000000, 0x8fcf: 0xa0000000, + 0x8fd0: 0xa0000000, 0x8fd1: 0xa0000000, 0x8fd2: 0xa0000000, 0x8fd3: 0xa0000000, + 0x8fd4: 0xa0000000, 0x8fd5: 0xa0000000, 0x8fd6: 0xa0000000, 0x8fd7: 0xa0000000, + 0x8fd8: 0xa0000000, 0x8fd9: 0xa0000000, 0x8fda: 0xa0000000, 0x8fdb: 0xa0000000, + 0x8fdc: 0xa0000000, 0x8fdd: 0xa0000000, 0x8fde: 0xa0000000, 0x8fdf: 0xa0000000, + 0x8fe0: 0x40021220, 0x8fe1: 0x4002ba20, 0x8fe2: 0x4003e020, 0x8fe3: 0x4004ea20, + 0x8fe4: 0x4027de20, 0x8fe5: 0x4004ec20, 0x8fe6: 0x4004e620, 0x8fe7: 0x4003d220, + 0x8fe8: 0x4003f420, 0x8fe9: 0x4003f620, 0x8fea: 0x4004d820, 0x8feb: 0x40093820, + 0x8fec: 0x40024020, 0x8fed: 0x40021a20, 0x8fee: 0x4002e420, 0x8fef: 0x4004e220, + 0x8ff0: 0x4029cc20, 0x8ff1: 0x4029ce20, 0x8ff2: 0x4029d020, 0x8ff3: 0x4029d220, + 0x8ff4: 0x4029d420, 0x8ff5: 0x4029d620, 0x8ff6: 0x4029d820, 0x8ff7: 0x4029da20, + 0x8ff8: 0x4029dc20, 0x8ff9: 0x4029de20, 0x8ffa: 0x40026c20, 0x8ffb: 0x40026220, + 0x8ffc: 0x40094020, 0x8ffd: 0x40094220, 0x8ffe: 0x40094420, 0x8fff: 0x4002c420, + // Block 0x240, offset 0x9000 + 0x9000: 0x4004d620, 0x9001: 0x002bde88, 0x9002: 0x002c0a88, 0x9003: 0x002c3a88, + 0x9004: 0x002c6288, 0x9005: 0x002c9888, 0x9006: 0x002d0888, 0x9007: 0x002d2288, + 0x9008: 0x002d6888, 0x9009: 0x002d9a88, 0x900a: 0x002dcc88, 0x900b: 0x002dfe88, + 0x900c: 0xc0030002, 0x900d: 0x002e8288, 0x900e: 0xc5462761, 0x900f: 0x002ee288, + 0x9010: 0x002f2c88, 0x9011: 0x002f5688, 0x9012: 0x002f7a88, 0x9013: 0x002fe688, + 0x9014: 0x00302c88, 0x9015: 0x00306c88, 0x9016: 0x0030be88, 0x9017: 0x0030e288, + 0x9018: 0x0030f688, 0x9019: 0x00310088, 0x901a: 0x00312a88, 0x901b: 0x4003f820, + 0x901c: 0x4004e420, 0x901d: 0x4003fa20, 0x901e: 0x40062420, 0x901f: 0x40021620, + 0x9020: 0x40061e20, 0x9021: 0x402bde20, 0x9022: 0x402c0a20, 0x9023: 0x402c3a20, + 0x9024: 0x402c6220, 0x9025: 0x402c9820, 0x9026: 0x402d0820, 0x9027: 0x402d2220, + 0x9028: 0x402d6820, 0x9029: 0x402d9a20, 0x902a: 0x402dcc20, 0x902b: 0x402dfe20, + 0x902c: 0xc0000002, 0x902d: 0x402e8220, 0x902e: 0xc5332761, 0x902f: 0x402ee220, + 0x9030: 0x402f2c20, 0x9031: 0x402f5620, 0x9032: 0x402f7a20, 0x9033: 0x402fe620, + 0x9034: 0x40302c20, 0x9035: 0x40306c20, 0x9036: 0x4030be20, 0x9037: 0x4030e220, + 0x9038: 0x4030f620, 0x9039: 0x40310020, 0x903a: 0x40312a20, 0x903b: 0x4003fc20, + 0x903c: 0x40094820, 0x903d: 0x4003fe20, 0x903e: 0x40094c20, 0x903f: 0xa0000000, + // Block 0x241, offset 0x9040 + 0x9040: 0xe00008f5, 0x9041: 0xe00008ef, 0x9042: 0xe0000921, 0x9043: 0xe0000969, + 0x9044: 0xe000095b, 0x9045: 0xe000094d, 0x9046: 0xe00009dd, 0x9047: 0xe0000a53, + 0x9048: 0xe0000ae8, 0x9049: 0xe0000ae2, 0x904a: 0xe0000af4, 0x904b: 0xe0000b20, + 0x904c: 0xe0000c2b, 0x904d: 0xe0000c25, 0x904e: 0xe0000c37, 0x904f: 0xe0000c43, + 0x9050: 0xe0000ab3, 0x9051: 0x002ea083, 0x9052: 0xe0000d9a, 0x9053: 0xe0000d94, + 0x9054: 0xe0000da6, 0x9055: 0xe0000de6, 0x9056: 0xe0000dd2, 0x9057: 0x40093e20, + 0x9058: 0xe0000e12, 0x9059: 0xe0000fe1, 0x905a: 0xe0000fdb, 0x905b: 0xe0000fed, + 0x905c: 0xe0000fff, 0x905d: 0xe0001102, 0x905e: 0x00318888, 0x905f: 0xe0000f7b, + 0x9060: 0xe00008f2, 0x9061: 0xe00008ec, 0x9062: 0xe000091e, 0x9063: 0xe0000966, + 0x9064: 0xe0000958, 0x9065: 0xe000094a, 0x9066: 0xe00009d5, 0x9067: 0xe0000a4d, + 0x9068: 0xe0000ae5, 0x9069: 0xe0000adf, 0x906a: 0xe0000af1, 0x906b: 0xe0000b1d, + 0x906c: 0xe0000c28, 0x906d: 0xe0000c22, 0x906e: 0xe0000c34, 0x906f: 0xe0000c40, + 0x9070: 0xe0000aad, 0x9071: 0x402ea020, 0x9072: 0xe0000d97, 0x9073: 0xe0000d91, + 0x9074: 0xe0000da3, 0x9075: 0xe0000de3, 0x9076: 0xe0000dcf, 0x9077: 0x40093c20, + 0x9078: 0xe0000e0f, 0x9079: 0xe0000fde, 0x907a: 0xe0000fd8, 0x907b: 0xe0000fea, + 0x907c: 0xe0000ffc, 0x907d: 0xe00010ff, 0x907e: 0x40318820, 0x907f: 0xe0001114, + // Block 0x242, offset 0x9080 + 0x9080: 0xa0000000, 0x9081: 0xa0000000, 0x9082: 0xa0000000, 0x9083: 0xa0000000, + 0x9084: 0xa0000000, 0x9085: 0xa0000000, 0x9086: 0xa0000000, 0x9087: 0xa0000000, + 0x9088: 0xa0000000, 0x9089: 0x40020020, 0x908a: 0x40020220, 0x908b: 0x40020420, + 0x908c: 0x40020620, 0x908d: 0x40020820, 0x908e: 0xa0000000, 0x908f: 0xa0000000, + 0x9090: 0xa0000000, 0x9091: 0xa0000000, 0x9092: 0xa0000000, 0x9093: 0xa0000000, + 0x9094: 0xa0000000, 0x9095: 0xa0000000, 0x9096: 0xa0000000, 0x9097: 0xa0000000, + 0x9098: 0xa0000000, 0x9099: 0xa0000000, 0x909a: 0xa0000000, 0x909b: 0xa0000000, + 0x909c: 0xa0000000, 0x909d: 0xa0000000, 0x909e: 0xa0000000, 0x909f: 0xa0000000, + 0x90a0: 0x40021220, 0x90a1: 0x4002ba20, 0x90a2: 0x4003e020, 0x90a3: 0x4004ea20, + 0x90a4: 0x4027de20, 0x90a5: 0x4004ec20, 0x90a6: 0x4004e620, 0x90a7: 0x4003d220, + 0x90a8: 0x4003f420, 0x90a9: 0x4003f620, 0x90aa: 0x4004d820, 0x90ab: 0x40093820, + 0x90ac: 0x40024020, 0x90ad: 0x40021a20, 0x90ae: 0x4002e420, 0x90af: 0x4004e220, + 0x90b0: 0x4029cc20, 0x90b1: 0x4029ce20, 0x90b2: 0x4029d020, 0x90b3: 0x4029d220, + 0x90b4: 0x4029d420, 0x90b5: 0x4029d620, 0x90b6: 0x4029d820, 0x90b7: 0x4029da20, + 0x90b8: 0x4029dc20, 0x90b9: 0x4029de20, 0x90ba: 0x40026c20, 0x90bb: 0x40026220, + 0x90bc: 0x40094020, 0x90bd: 0x40094220, 0x90be: 0x40094420, 0x90bf: 0x4002c420, + // Block 0x243, offset 0x90c0 + 0x90c0: 0x4004d620, 0x90c1: 0xc5580071, 0x90c2: 0x002c0a88, 0x90c3: 0x002c3a88, + 0x90c4: 0x002c6288, 0x90c5: 0x002c9888, 0x90c6: 0x002d0888, 0x90c7: 0x002d2288, + 0x90c8: 0x002d6888, 0x90c9: 0x002d9a88, 0x90ca: 0x002dcc88, 0x90cb: 0x002dfe88, + 0x90cc: 0xc0030002, 0x90cd: 0x002e8288, 0x90ce: 0x002e9e88, 0x90cf: 0xc5532781, + 0x90d0: 0x002f2c88, 0x90d1: 0x002f5688, 0x90d2: 0x002f7a88, 0x90d3: 0xc54a0991, + 0x90d4: 0x00302c88, 0x90d5: 0xc55c0071, 0x90d6: 0x0030be88, 0x90d7: 0x0030bea3, + 0x90d8: 0x0030f688, 0x90d9: 0x00310088, 0x90da: 0xc54e0991, 0x90db: 0x4003f820, + 0x90dc: 0x4004e420, 0x90dd: 0x4003fa20, 0x90de: 0x40062420, 0x90df: 0x40021620, + 0x90e0: 0x40061e20, 0x90e1: 0xc5560071, 0x90e2: 0x402c0a20, 0x90e3: 0x402c3a20, + 0x90e4: 0x402c6220, 0x90e5: 0x402c9820, 0x90e6: 0x402d0820, 0x90e7: 0x402d2220, + 0x90e8: 0x402d6820, 0x90e9: 0x402d9a20, 0x90ea: 0x402dcc20, 0x90eb: 0x402dfe20, + 0x90ec: 0xc0000002, 0x90ed: 0x402e8220, 0x90ee: 0x402e9e20, 0x90ef: 0xc5502781, + 0x90f0: 0x402f2c20, 0x90f1: 0x402f5620, 0x90f2: 0x402f7a20, 0x90f3: 0xc5480991, + 0x90f4: 0x40302c20, 0x90f5: 0xc55a0071, 0x90f6: 0x4030be20, 0x90f7: 0x4030be21, + 0x90f8: 0x4030f620, 0x90f9: 0x40310020, 0x90fa: 0xc54c0991, 0x90fb: 0x4003fc20, + 0x90fc: 0x40094820, 0x90fd: 0x4003fe20, 0x90fe: 0x40094c20, 0x90ff: 0xa0000000, + // Block 0x244, offset 0x9100 + 0x9100: 0xe00008f5, 0x9101: 0xe00008ef, 0x9102: 0xe0000921, 0x9103: 0xe0000969, + 0x9104: 0x0030f083, 0x9105: 0xe000094d, 0x9106: 0xe00009dd, 0x9107: 0xe0000a53, + 0x9108: 0xe0000ae8, 0x9109: 0xe0000ae2, 0x910a: 0xe0000af4, 0x910b: 0xe0000b20, + 0x910c: 0xe0000c2b, 0x910d: 0xe0000c25, 0x910e: 0xe0000c37, 0x910f: 0xe0000c43, + 0x9110: 0xe0000ab3, 0x9111: 0xe0000d63, 0x9112: 0xe0000d9a, 0x9113: 0xe0000d94, + 0x9114: 0xe0000da6, 0x9115: 0x0030ee83, 0x9116: 0x0030f283, 0x9117: 0x40093e20, + 0x9118: 0xe0000e12, 0x9119: 0xe0000fe1, 0x911a: 0xe0000fdb, 0x911b: 0xe0000fed, + 0x911c: 0x0030f483, 0x911d: 0xe0001102, 0x911e: 0x00318888, 0x911f: 0xe0000f7b, + 0x9120: 0xe00008f2, 0x9121: 0xe00008ec, 0x9122: 0xe000091e, 0x9123: 0xe0000966, + 0x9124: 0x4030f020, 0x9125: 0xe000094a, 0x9126: 0xe00009d5, 0x9127: 0xe0000a4d, + 0x9128: 0xe0000ae5, 0x9129: 0xe0000adf, 0x912a: 0xe0000af1, 0x912b: 0xe0000b1d, + 0x912c: 0xe0000c28, 0x912d: 0xe0000c22, 0x912e: 0xe0000c34, 0x912f: 0xe0000c40, + 0x9130: 0xe0000aad, 0x9131: 0xe0000d60, 0x9132: 0xe0000d97, 0x9133: 0xe0000d91, + 0x9134: 0xe0000da3, 0x9135: 0x4030ee20, 0x9136: 0x4030f220, 0x9137: 0x40093c20, + 0x9138: 0xe0000e0f, 0x9139: 0xe0000fde, 0x913a: 0xe0000fd8, 0x913b: 0xe0000fea, + 0x913c: 0x4030f420, 0x913d: 0xe00010ff, 0x913e: 0x40318820, 0x913f: 0xe0001114, + // Block 0x245, offset 0x9140 + 0x9140: 0xe0000cfe, 0x9141: 0xe0000cf8, 0x9142: 0xe0000cf5, 0x9143: 0xe0000d51, + 0x9144: 0xe0000d4e, 0x9145: 0xe0000d6f, 0x9146: 0xe0000d6c, 0x9147: 0xe0000d5d, + 0x9148: 0xe0000d5a, 0x9149: 0xf0000404, 0x914a: 0x002eda88, 0x914b: 0x402eda20, + 0x914c: 0xe0000e2e, 0x914d: 0xe0000e2b, 0x914e: 0xe0000da0, 0x914f: 0xe0000d9d, + 0x9150: 0xe0000de0, 0x9151: 0xe0000ddd, 0x9152: 0xe0000e93, 0x9153: 0xe0000e8f, + 0x9154: 0xe0000eca, 0x9155: 0xe0000ec7, 0x9156: 0xe0000edc, 0x9157: 0xe0000ed9, + 0x9158: 0xe0000ed0, 0x9159: 0xe0000ecd, 0x915a: 0xe0000f1f, 0x915b: 0xe0000f1c, + 0x915c: 0xe0000f2d, 0x915d: 0xe0000f2a, 0x915e: 0xe0000f47, 0x915f: 0xe0000f44, + 0x9160: 0x00302683, 0x9161: 0x40302620, 0x9162: 0xe0000f99, 0x9163: 0xe0000f96, + 0x9164: 0xe0000f8a, 0x9165: 0xe0000f87, 0x9166: 0x00303688, 0x9167: 0x40303620, + 0x9168: 0xe000102b, 0x9169: 0xe0001028, 0x916a: 0xe000103f, 0x916b: 0xe000103c, + 0x916c: 0xe0000fe7, 0x916d: 0xe0000fe4, 0x916e: 0xe0000ff9, 0x916f: 0xe0000ff6, + 0x9170: 0xe0001025, 0x9171: 0xe0001022, 0x9172: 0xe0001039, 0x9173: 0xe0001036, + 0x9174: 0xe0003636, 0x9175: 0xe0003633, 0x9176: 0xe000110e, 0x9177: 0xe000110b, + 0x9178: 0xe0001117, 0x9179: 0xe000360c, 0x917a: 0xe0003609, 0x917b: 0xe0003618, + 0x917c: 0xe0003615, 0x917d: 0x00302a83, 0x917e: 0x40302a20, 0x917f: 0xe0000f64, + // Block 0x246, offset 0x9180 + 0x9180: 0x40321220, 0x9181: 0x40321a20, 0x9182: 0x40322220, 0x9183: 0x40322a20, + 0x9184: 0xe0000ad5, 0x9185: 0xe0000ad1, 0x9186: 0xe0000acd, 0x9187: 0xf0000a0a, + 0x9188: 0xf000040a, 0x9189: 0xf0000404, 0x918a: 0xf0000a0a, 0x918b: 0xf000040a, + 0x918c: 0xf0000404, 0x918d: 0xe0000947, 0x918e: 0xe0000944, 0x918f: 0xe0000c3d, + 0x9190: 0xe0000c3a, 0x9191: 0xe0000dcc, 0x9192: 0xe0000dc9, 0x9193: 0xe0000ff3, + 0x9194: 0xe0000ff0, 0x9195: 0xe000368d, 0x9196: 0xe000368a, 0x9197: 0xe000367b, + 0x9198: 0xe0003678, 0x9199: 0xe0003687, 0x919a: 0xe0003684, 0x919b: 0xe0003681, + 0x919c: 0xe000367e, 0x919d: 0x402cae20, 0x919e: 0xe000366f, 0x919f: 0xe000366c, + 0x91a0: 0xe0000976, 0x91a1: 0xe0000972, 0x91a2: 0xe00009f4, 0x91a3: 0xe00009ef, + 0x91a4: 0x002d3a88, 0x91a5: 0x402d3a20, 0x91a6: 0xe0000bbe, 0x91a7: 0xe0000bbb, + 0x91a8: 0xe0000c99, 0x91a9: 0xe0000c96, 0x91aa: 0xe0000e20, 0x91ab: 0xe0000e1d, + 0x91ac: 0xe0000e27, 0x91ad: 0xe0000e23, 0x91ae: 0xe0001162, 0x91af: 0xe000115f, + 0x91b0: 0xe0000c8d, 0x91b1: 0xe00032b0, 0x91b2: 0xe00032ad, 0x91b3: 0xe00032aa, + 0x91b4: 0xe0000bac, 0x91b5: 0xe0000ba9, 0x91b6: 0x002d7888, 0x91b7: 0x00319488, + 0x91b8: 0xe0000d57, 0x91b9: 0xe0000d54, 0x91ba: 0xe0000954, 0x91bb: 0xe0000950, + 0x91bc: 0xe00009ea, 0x91bd: 0xe00009e5, 0x91be: 0xe0000e19, 0x91bf: 0xe0000e15, + // Block 0x247, offset 0x91c0 + 0x91c0: 0xe000098f, 0x91c1: 0xe000098c, 0x91c2: 0xe0000995, 0x91c3: 0xe0000992, + 0x91c4: 0xe0000b62, 0x91c5: 0xe0000b5f, 0x91c6: 0xe0000b68, 0x91c7: 0xe0000b65, + 0x91c8: 0xe0000c6c, 0x91c9: 0xe0000c69, 0x91ca: 0xe0000c72, 0x91cb: 0xe0000c6f, + 0x91cc: 0xe0000e4a, 0x91cd: 0xe0000e47, 0x91ce: 0xe0000e50, 0x91cf: 0xe0000e4d, + 0x91d0: 0xe0000ee8, 0x91d1: 0xe0000ee5, 0x91d2: 0xe0000eee, 0x91d3: 0xe0000eeb, + 0x91d4: 0xe0001053, 0x91d5: 0xe0001050, 0x91d6: 0xe0001059, 0x91d7: 0xe0001056, + 0x91d8: 0xe0000f61, 0x91d9: 0xe0000f5e, 0x91da: 0xe0000fa5, 0x91db: 0xe0000fa2, + 0x91dc: 0x00312288, 0x91dd: 0x40312220, 0x91de: 0xe0000bf4, 0x91df: 0xe0000bf1, + 0x91e0: 0x002ebc88, 0x91e1: 0x402c8c20, 0x91e2: 0x002f2288, 0x91e3: 0x402f2220, + 0x91e4: 0x00314088, 0x91e5: 0x40314020, 0x91e6: 0xe000096f, 0x91e7: 0xe000096c, + 0x91e8: 0xe0000b32, 0x91e9: 0xe0000b2f, 0x91ea: 0xe0003675, 0x91eb: 0xe0003672, + 0x91ec: 0xe0003663, 0x91ed: 0xe0003660, 0x91ee: 0xe0000e04, 0x91ef: 0xe0000e01, + 0x91f0: 0xe0000e0b, 0x91f1: 0xe0000e07, 0x91f2: 0xe0001129, 0x91f3: 0xe0001126, + 0x91f4: 0x402e5e20, 0x91f5: 0x402ed020, 0x91f6: 0x40305a20, 0x91f7: 0x402dd420, + 0x91f8: 0xe0000abf, 0x91f9: 0xe0000ec4, 0x91fa: 0x002be888, 0x91fb: 0x002c4488, + 0x91fc: 0x402c4420, 0x91fd: 0x002e3888, 0x91fe: 0x00303e88, 0x91ff: 0x402ffc20, + // Block 0x248, offset 0x9200 + 0x9200: 0xe0000d24, 0x9201: 0xe0000d21, 0x9202: 0xe0000d2a, 0x9203: 0xe0000d27, + 0x9204: 0xe0000d69, 0x9205: 0xe0000d66, 0x9206: 0xe0000d7b, 0x9207: 0xe0000d78, + 0x9208: 0xe0000d87, 0x9209: 0xe0000d84, 0x920a: 0xe0000d81, 0x920b: 0xe0000d7e, + 0x920c: 0xe0003651, 0x920d: 0xe000364e, 0x920e: 0xe000365d, 0x920f: 0xe000365a, + 0x9210: 0xe0000e3d, 0x9211: 0xe0000e39, 0x9212: 0xe0000e35, 0x9213: 0xe0000e31, + 0x9214: 0xe0000ea7, 0x9215: 0xe0000ea4, 0x9216: 0xe0000ead, 0x9217: 0xe0000eaa, + 0x9218: 0xe0000ed6, 0x9219: 0xe0000ed3, 0x921a: 0xe0000ef4, 0x921b: 0xe0000ef1, + 0x921c: 0xe0000efb, 0x921d: 0xe0000ef7, 0x921e: 0xe0000f02, 0x921f: 0xe0000eff, + 0x9220: 0xe0000f41, 0x9221: 0xe0000f3e, 0x9222: 0xe0000f53, 0x9223: 0xe0000f50, + 0x9224: 0xe0000f26, 0x9225: 0xe0000f22, 0x9226: 0xe0003606, 0x9227: 0xe0003603, + 0x9228: 0xe0000f5a, 0x9229: 0xe0000f56, 0x922a: 0xe0000f93, 0x922b: 0xe0000f90, + 0x922c: 0xe0000f9f, 0x922d: 0xe0000f9c, 0x922e: 0xe0000fb1, 0x922f: 0xe0000fae, + 0x9230: 0xe0000fab, 0x9231: 0xe0000fa8, 0x9232: 0xe0001093, 0x9233: 0xe0001090, + 0x9234: 0xe000109f, 0x9235: 0xe000109c, 0x9236: 0xe0001099, 0x9237: 0xe0001096, + 0x9238: 0xe0001032, 0x9239: 0xe000102e, 0x923a: 0xe000368d, 0x923b: 0xe000368a, + 0x923c: 0xe00010a9, 0x923d: 0xe00010a6, 0x923e: 0xe00010af, 0x923f: 0xe00010ac, + // Block 0x249, offset 0x9240 + 0x9240: 0xe0003630, 0x9241: 0xe000362d, 0x9242: 0xe000362a, 0x9243: 0xe0003627, + 0x9244: 0xe000363f, 0x9245: 0xe000363c, 0x9246: 0xe0003645, 0x9247: 0xe0003642, + 0x9248: 0xe000364b, 0x9249: 0xe0003648, 0x924a: 0xe00010fc, 0x924b: 0xe00010f9, + 0x924c: 0xe00010f6, 0x924d: 0xe00010f3, 0x924e: 0xe0001123, 0x924f: 0xe0001120, + 0x9250: 0xe0003612, 0x9251: 0xe000360f, 0x9252: 0xe000361e, 0x9253: 0xe000361b, + 0x9254: 0xe0003624, 0x9255: 0xe0003621, 0x9256: 0xe0000c15, 0x9257: 0xe0000f8d, + 0x9258: 0xe0003639, 0x9259: 0xe0001111, 0x925a: 0xf0000404, 0x925b: 0xe0000f70, + 0x925c: 0x40300420, 0x925d: 0x40300620, 0x925e: 0xe0000f7f, 0x925f: 0x402c9620, + 0x9260: 0xe000099b, 0x9261: 0xe0000998, 0x9262: 0xe0000989, 0x9263: 0xe0000986, + 0x9264: 0xe0000928, 0x9265: 0xe0000924, 0x9266: 0xe0000930, 0x9267: 0xe000092c, + 0x9268: 0xe0000940, 0x9269: 0xe000093c, 0x926a: 0xe0000938, 0x926b: 0xe0000934, + 0x926c: 0xe00009aa, 0x926d: 0xe00009a6, 0x926e: 0xe0000902, 0x926f: 0xe00008fe, + 0x9270: 0xe000090a, 0x9271: 0xe0000906, 0x9272: 0xe000091a, 0x9273: 0xe0000916, + 0x9274: 0xe0000912, 0x9275: 0xe000090e, 0x9276: 0xe00009a2, 0x9277: 0xe000099e, + 0x9278: 0xe0000b6e, 0x9279: 0xe0000b6b, 0x927a: 0xe0000b5c, 0x927b: 0xe0000b59, + 0x927c: 0xe0000b26, 0x927d: 0xe0000b23, 0x927e: 0xe0000afb, 0x927f: 0xe0000af7, + // Block 0x24a, offset 0x9280 + 0x9280: 0xe0000b03, 0x9281: 0xe0000aff, 0x9282: 0xe0000b13, 0x9283: 0xe0000b0f, + 0x9284: 0xe0000b0b, 0x9285: 0xe0000b07, 0x9286: 0xe0000b75, 0x9287: 0xe0000b71, + 0x9288: 0xe0000c66, 0x9289: 0xe0000c63, 0x928a: 0xe0000c78, 0x928b: 0xe0000c75, + 0x928c: 0xe0000e84, 0x928d: 0xe0000e81, 0x928e: 0xe0000e44, 0x928f: 0xe0000e41, + 0x9290: 0xe0000dad, 0x9291: 0xe0000da9, 0x9292: 0xe0000db5, 0x9293: 0xe0000db1, + 0x9294: 0xe0000dc5, 0x9295: 0xe0000dc1, 0x9296: 0xe0003657, 0x9297: 0xe0003654, + 0x9298: 0xe0000e8b, 0x9299: 0xe0000e87, 0x929a: 0xe0000e5d, 0x929b: 0xe0000e59, + 0x929c: 0xe0000e65, 0x929d: 0xe0000e61, 0x929e: 0xe0000e75, 0x929f: 0xe0000e71, + 0x92a0: 0xe0003669, 0x92a1: 0xe0003666, 0x92a2: 0xe0000e7d, 0x92a3: 0xe0000e79, + 0x92a4: 0xe000108d, 0x92a5: 0xe000108a, 0x92a6: 0xe000104d, 0x92a7: 0xe000104a, + 0x92a8: 0xe0001066, 0x92a9: 0xe0001062, 0x92aa: 0xe000106e, 0x92ab: 0xe000106a, + 0x92ac: 0xe000107e, 0x92ad: 0xe000107a, 0x92ae: 0xe0001076, 0x92af: 0xe0001072, + 0x92b0: 0xe0001086, 0x92b1: 0xe0001082, 0x92b2: 0xe0001108, 0x92b3: 0xe0001105, + 0x92b4: 0xe0001135, 0x92b5: 0xe0001132, 0x92b6: 0xe000112f, 0x92b7: 0xe000112c, + 0x92b8: 0xe000111d, 0x92b9: 0xe000111a, 0x92ba: 0xe0000d0a, 0x92bb: 0xe0000d07, + 0x92bc: 0x0030d888, 0x92bd: 0x4030d820, 0x92be: 0x00312088, 0x92bf: 0x40312020, + // Block 0x24b, offset 0x92c0 + 0x92c0: 0xe0000024, 0x92c1: 0xe0000029, 0x92c2: 0xe000002e, 0x92c3: 0xe0000033, + 0x92c4: 0xe0000038, 0x92c5: 0xe000003d, 0x92c6: 0xe0000042, 0x92c7: 0xe0000047, + 0x92c8: 0xf0001f04, 0x92c9: 0xf0001f04, 0x92ca: 0xf0001f04, 0x92cb: 0xf0001f04, + 0x92cc: 0xf0001f04, 0x92cd: 0xf0001f04, 0x92ce: 0xf0001f04, 0x92cf: 0xf0001f04, + 0x92d0: 0xf0001f04, 0x92d1: 0xf0000404, 0x92d2: 0xf0000404, 0x92d3: 0xf0000404, + 0x92d4: 0xf0000404, 0x92d5: 0xf0000404, 0x92d6: 0xf0000404, 0x92d7: 0xf0000404, + 0x92d8: 0xf0000404, 0x92d9: 0xf0000404, 0x92da: 0xf0000404, 0x92db: 0xf0000404, + 0x92dc: 0xf0000404, 0x92dd: 0xf0000404, 0x92de: 0xf0000404, 0x92df: 0xf0000404, + 0x92e0: 0xf0000404, 0x92e1: 0xf0000404, 0x92e2: 0xf0000404, 0x92e3: 0xf0000404, + 0x92e4: 0xf0000404, 0x92e5: 0xf0000404, 0x92e6: 0xf0000404, 0x92e7: 0xf0000404, + 0x92e8: 0xf0000404, 0x92e9: 0xf0000404, 0x92ea: 0xf0000404, 0x92eb: 0xf0000404, + 0x92ec: 0xf0000404, 0x92ed: 0xf0000404, 0x92ee: 0xf0000404, 0x92ef: 0xf0000404, + 0x92f0: 0xf0000404, 0x92f1: 0xf0000404, 0x92f2: 0xe0002c46, 0x92f3: 0xf0000404, + 0x92f4: 0xf0000404, 0x92f5: 0xe0002c56, 0x92f6: 0x002bde8c, 0x92f7: 0x002c0a8c, + 0x92f8: 0x002c3a8c, 0x92f9: 0x002c628c, 0x92fa: 0x002c988c, 0x92fb: 0x002d088c, + 0x92fc: 0x002d228c, 0x92fd: 0x002d688c, 0x92fe: 0x002d9a8c, 0x92ff: 0x002dcc8c, + // Block 0x24c, offset 0x9300 + 0x9300: 0xf0001d1c, 0x9301: 0xf0001d1c, 0x9302: 0xf0001d1c, 0x9303: 0xf0001d1c, + 0x9304: 0xf0001d1c, 0x9305: 0xf0001d1d, 0x9306: 0xf0001d1d, 0x9307: 0xf0001d1d, + 0x9308: 0xe0000a6b, 0x9309: 0xe0000cb4, 0x930a: 0xf0001d1c, 0x930b: 0xf0001d1c, + 0x930c: 0xf0001d1c, 0x930d: 0xf0001c1c, 0x930e: 0xf0001c1c, 0x930f: 0xf0001c1c, + 0x9310: 0xe00027ce, 0x9311: 0xe0000cb9, 0x9312: 0xe0000d36, 0x9313: 0xe0000be3, + 0x9314: 0xe0000fc5, 0x9315: 0xf0001c1c, 0x9316: 0xf0001c1c, 0x9317: 0xf0001c1c, + 0x9318: 0xf0001c1c, 0x9319: 0xf0001c1c, 0x931a: 0xf0001c1c, 0x931b: 0xf0001c1c, + 0x931c: 0xf0001c1c, 0x931d: 0xf0001c1c, 0x931e: 0xf0001c1c, 0x931f: 0xe0000d3e, + 0x9320: 0xe0000a72, 0x9321: 0xf0001c1c, 0x9322: 0xe0000cbd, 0x9323: 0xe0000d42, + 0x9324: 0xe0000a76, 0x9325: 0xf0001c1c, 0x9326: 0xe0000cc1, 0x9327: 0xe0000d2d, + 0x9328: 0xe0000d31, 0x9329: 0xf0001c1d, 0x932a: 0xe0000cc5, 0x932b: 0xe0000d4a, + 0x932c: 0xe0000be7, 0x932d: 0xe0000f0b, 0x932e: 0xe0000f0f, 0x932f: 0xe0000f15, + 0x9330: 0xf0001c1c, 0x9331: 0xf0001c1c, 0x9332: 0xf0001c1c, 0x9333: 0xf0001c1c, + 0x9334: 0xf0001d1c, 0x9335: 0xf0001d1c, 0x9336: 0xf0001d1c, 0x9337: 0xf0001d1c, + 0x9338: 0xf0001d1c, 0x9339: 0xf0001d1d, 0x933a: 0xe00035df, 0x933b: 0xe00035cd, + 0x933c: 0xe0003600, 0x933d: 0xe00035af, 0x933e: 0xe0002812, 0x933f: 0xe00035b2, + // Block 0x24d, offset 0x9340 + 0x9340: 0xf0001d1c, 0x9341: 0xf0001d1d, 0x9342: 0xe00009b7, 0x9343: 0xf0001c1d, + 0x9344: 0xf0001c1c, 0x9345: 0xf0001c1c, 0x9346: 0xe0000a66, 0x9347: 0xe0000a7a, + 0x9348: 0xf0001d1c, 0x9349: 0xf0001c1d, 0x934a: 0xf0001c1c, 0x934b: 0xf0001d1d, + 0x934c: 0xf0001c1c, 0x934d: 0xf0001d1d, 0x934e: 0xf0001d1d, 0x934f: 0xf0001c1c, + 0x9350: 0xf0001c1c, 0x9351: 0xf0001c1c, 0x9352: 0xe0000d0d, 0x9353: 0xf0001c1c, + 0x9354: 0xf0001c1c, 0x9355: 0xe0000d3a, 0x9356: 0xe0000d46, 0x9357: 0xf0001d1d, + 0x9358: 0xe0000eb0, 0x9359: 0xe0000eb8, 0x935a: 0xf0001d1d, 0x935b: 0xf0001c1c, + 0x935c: 0xf0001c1d, 0x935d: 0xe00035e2, 0x935e: 0xe00010b2, 0x935f: 0xe00009c8, + 0x9360: 0xf0001f04, 0x9361: 0xf0001f04, 0x9362: 0xf0001f04, 0x9363: 0xf0001f04, + 0x9364: 0xf0001f04, 0x9365: 0xf0001f04, 0x9366: 0xf0001f04, 0x9367: 0xf0001f04, + 0x9368: 0xf0001f04, 0x9369: 0xf0000404, 0x936a: 0xf0000404, 0x936b: 0xf0000404, + 0x936c: 0xf0000404, 0x936d: 0xf0000404, 0x936e: 0xf0000404, 0x936f: 0xf0000404, + 0x9370: 0xf0000404, 0x9371: 0xf0000404, 0x9372: 0xf0000404, 0x9373: 0xf0000404, + 0x9374: 0xf0000404, 0x9375: 0xf0000404, 0x9376: 0xf0000404, 0x9377: 0xf0000404, + 0x9378: 0xf0000404, 0x9379: 0xf0000404, 0x937a: 0xf0000404, 0x937b: 0xf0000404, + 0x937c: 0xf0000404, 0x937d: 0xf0000404, 0x937e: 0xf0000404, 0x937f: 0xe0000bdf, + // Block 0x24e, offset 0x9380 + 0x9380: 0xf0001f04, 0x9381: 0xf0001f04, 0x9382: 0xf0001f04, 0x9383: 0xf0001f04, + 0x9384: 0xf0001f04, 0x9385: 0xf0001f04, 0x9386: 0xf0001f04, 0x9387: 0xf0001f04, + 0x9388: 0xf0001f04, 0x9389: 0xf0001f04, 0x938a: 0xf0001f04, + 0x9390: 0xf0000a04, 0x9391: 0xf0000a04, 0x9392: 0xf0000a04, 0x9393: 0xf0000a04, + 0x9394: 0xf0000a04, 0x9395: 0xf0000a04, 0x9396: 0xf0000a04, 0x9397: 0xf0000a04, + 0x9398: 0xf0000a04, 0x9399: 0xf0000a04, 0x939a: 0xf0000a04, 0x939b: 0xf0000a04, + 0x939c: 0xf0000a04, 0x939d: 0xf0000a04, 0x939e: 0xf0000a04, 0x939f: 0xf0000a04, + 0x93a0: 0xf0000a04, 0x93a1: 0xf0000a04, 0x93a2: 0xf0000a04, 0x93a3: 0xf0000a04, + 0x93a4: 0xf0000a04, 0x93a5: 0xf0000a04, 0x93a6: 0xe0002c4a, 0x93a7: 0xf0000a04, + 0x93a8: 0xf0000a04, 0x93a9: 0xe0002c5a, 0x93aa: 0xf0000a04, 0x93ab: 0x002c3a8c, + 0x93ac: 0x002f7a8c, 0x93ad: 0xf0000c0c, 0x93ae: 0xe00035e8, + 0x93b0: 0x002bde9d, 0x93b1: 0x002c0a9d, 0x93b2: 0x002c3a9d, 0x93b3: 0x002c629d, + 0x93b4: 0x002c989d, 0x93b5: 0x002d089d, 0x93b6: 0x002d229d, 0x93b7: 0x002d689d, + 0x93b8: 0x002d9a9d, 0x93b9: 0x002dcc9d, 0x93ba: 0x002dfe9d, 0x93bb: 0x002e229d, + 0x93bc: 0x002e829d, 0x93bd: 0x002e9e9d, 0x93be: 0x002ee29d, 0x93bf: 0x002f2c9d, + // Block 0x24f, offset 0x93c0 + 0x93c0: 0x002f569d, 0x93c1: 0x002f7a9d, 0x93c2: 0x002fe69d, 0x93c3: 0x00302c9d, + 0x93c4: 0x00306c9d, 0x93c5: 0x0030be9d, 0x93c6: 0x0030e29d, 0x93c7: 0x0030f69d, + 0x93c8: 0x0031009d, 0x93c9: 0x00312a9d, 0x93ca: 0xf0001d1d, 0x93cb: 0xf0001d1d, + 0x93cc: 0xf0001d1d, 0x93cd: 0xf0001d1d, 0x93ce: 0xe0000ebc, 0x93cf: 0xe00035e5, + 0x93d0: 0x002bde8c, 0x93d1: 0x002c0a8c, 0x93d2: 0x002c3a8c, 0x93d3: 0x002c628c, + 0x93d4: 0x002c988c, 0x93d5: 0x002d088c, 0x93d6: 0x002d228c, 0x93d7: 0x002d688c, + 0x93d8: 0x002d9a8c, 0x93d9: 0x002dcc8c, 0x93da: 0x002dfe8c, 0x93db: 0x002e228c, + 0x93dc: 0x002e828c, 0x93dd: 0x002e9e8c, 0x93de: 0x002ee28c, 0x93df: 0x002f2c8c, + 0x93e0: 0x002f568c, 0x93e1: 0x002f7a8c, 0x93e2: 0x002fe68c, 0x93e3: 0x00302c8c, + 0x93e4: 0x00306c8c, 0x93e5: 0x0030be8c, 0x93e6: 0x0030e28c, 0x93e7: 0x0030f68c, + 0x93e8: 0x0031008c, 0x93e9: 0x00312a8c, 0x93ea: 0xf0001414, 0x93eb: 0xf0001414, + 0x93f0: 0x002bde9d, 0x93f1: 0x002c0a9d, 0x93f2: 0x002c3a9d, 0x93f3: 0x002c629d, + 0x93f4: 0x002c989d, 0x93f5: 0x002d089d, 0x93f6: 0x002d229d, 0x93f7: 0x002d689d, + 0x93f8: 0x002d9a9d, 0x93f9: 0x002dcc9d, 0x93fa: 0x002dfe9d, 0x93fb: 0x002e229d, + 0x93fc: 0x002e829d, 0x93fd: 0x002e9e9d, 0x93fe: 0x002ee29d, 0x93ff: 0x002f2c9d, + // Block 0x250, offset 0x9400 + 0x9400: 0xa0000000, 0x9401: 0xa0000000, 0x9402: 0xa0000000, 0x9403: 0xa0000000, + 0x9404: 0xa0000000, 0x9406: 0x40096620, 0x9407: 0x40096a20, + 0x9408: 0x40070820, 0x9409: 0x4004f220, 0x940a: 0x4004f620, 0x940b: 0x4027e620, + 0x940c: 0x40024820, 0x940d: 0x40024a20, 0x940e: 0x40070e20, 0x940f: 0x40071020, + 0x9410: 0xae600000, 0x9411: 0xae600000, 0x9412: 0xae600000, 0x9413: 0xae600000, + 0x9414: 0xae600000, 0x9415: 0xae600000, 0x9416: 0xae600000, 0x9417: 0xae600000, + 0x9418: 0xa1e00000, 0x9419: 0xa1f00000, 0x941a: 0xa2000000, 0x941b: 0x40026420, + 0x941e: 0x40027020, 0x941f: 0x4002cc20, + 0x9420: 0x403aa220, 0x9421: 0x40393a20, 0x9422: 0x40393620, 0x9423: 0x40393a21, + 0x9424: 0x40393a25, 0x9425: 0x40393a23, 0x9426: 0x00393b44, 0x9427: 0xc55e0151, + 0x9428: 0x40393c20, 0x9429: 0x403a8823, 0x942a: 0x40395620, 0x942b: 0x40395820, + 0x942c: 0x40396420, 0x942d: 0x40397220, 0x942e: 0x40397420, 0x942f: 0x40398820, + 0x9430: 0x40398a20, 0x9431: 0x4039a420, 0x9432: 0x4039a620, 0x9433: 0x4039c620, + 0x9434: 0x4039c820, 0x9435: 0x4039dc20, 0x9436: 0x4039de20, 0x9437: 0x4039e620, + 0x9438: 0x4039e820, 0x9439: 0x4039ee20, 0x943a: 0x4039f020, 0x943b: 0x403a3820, + 0x943c: 0x403a3a20, 0x943d: 0x403a9c20, 0x943e: 0x403a9e20, 0x943f: 0x403aa020, + // Block 0x251, offset 0x9440 + 0x9440: 0xa0000000, 0x9441: 0x4039fc20, 0x9442: 0x403a1220, 0x9443: 0x403a1c23, + 0x9444: 0x403a4020, 0x9445: 0x403a4e20, 0x9446: 0x403a5620, 0x9447: 0x403a8820, + 0x9448: 0xc5620171, 0x9449: 0xc5660171, 0x944a: 0xc5680171, 0x944b: 0xa000b002, + 0x944c: 0xa000b202, 0x944d: 0xa000b102, 0x944e: 0xa1e0ad02, 0x944f: 0xa000af02, + 0x9450: 0xa000ae02, 0x9451: 0xa210ba02, 0x9452: 0xa220bc02, 0x9453: 0xae60bd02, + 0x9454: 0xae60be02, 0x9455: 0xadc0bf02, 0x9456: 0xadc0c102, 0x9457: 0xae60c202, + 0x9458: 0xae60c302, 0x9459: 0xae60c402, 0x945a: 0xae60c502, 0x945b: 0xae60c602, + 0x945c: 0xadc0c702, 0x945d: 0xae60c802, 0x945e: 0xae60c902, 0x945f: 0xadc0c002, + 0x9460: 0xe000015e, 0x9461: 0xe00001e6, 0x9462: 0xe0000301, 0x9463: 0xe00003db, + 0x9464: 0xe00004b6, 0x9465: 0xe0000580, 0x9466: 0xe000064b, 0x9467: 0xe00006f3, + 0x9468: 0xe000079f, 0x9469: 0xe0000844, 0x946a: 0x4004ee20, 0x946b: 0x40024c20, + 0x946c: 0x40024e20, 0x946d: 0x4004de20, 0x946e: 0x40393a20, 0x946f: 0x403a1020, + 0x9470: 0xa230d102, 0x9471: 0x40393821, 0x9472: 0x40393a22, 0x9473: 0x40393a24, + 0x9474: 0x00391c84, 0x9475: 0xf0000404, 0x9476: 0xf0000404, 0x9477: 0xf0000404, + 0x9478: 0xe0003780, 0x9479: 0x40395a20, 0x947a: 0x40395c20, 0x947b: 0x40393e20, + 0x947c: 0x40395e20, 0x947d: 0x40396020, 0x947e: 0x40394020, 0x947f: 0x40396220, + // Block 0x252, offset 0x9480 + 0x9480: 0x40394220, 0x9481: 0x40397620, 0x9482: 0x40397820, 0x9483: 0x40396620, + 0x9484: 0x40396820, 0x9485: 0x40397a20, 0x9486: 0x40396a20, 0x9487: 0x40396e20, + 0x9488: 0x40398c20, 0x9489: 0x40398e20, 0x948a: 0x40399020, 0x948b: 0x40399220, + 0x948c: 0x40399420, 0x948d: 0x40399620, 0x948e: 0x40399820, 0x948f: 0x40399a20, + 0x9490: 0x40399c20, 0x9491: 0x4039a820, 0x9492: 0x4039aa20, 0x9493: 0x4039ac20, + 0x9494: 0x4039ae20, 0x9495: 0x4039b020, 0x9496: 0x4039b220, 0x9497: 0x4039b420, + 0x9498: 0x4039b620, 0x9499: 0x4039b820, 0x949a: 0x4039ca20, 0x949b: 0x4039cc20, + 0x949c: 0x4039ce20, 0x949d: 0x4039e020, 0x949e: 0x4039e220, 0x949f: 0x4039ea20, + 0x94a0: 0x4039f220, 0x94a1: 0x4039fe20, 0x94a2: 0x403a0020, 0x94a3: 0x403a0220, + 0x94a4: 0x403a0420, 0x94a5: 0x403a0820, 0x94a6: 0x403a0a20, 0x94a7: 0x403a1420, + 0x94a8: 0x403a1620, 0x94a9: 0x403a1c20, 0x94aa: 0x403a1c21, 0x94ab: 0x403a1c22, + 0x94ac: 0x403a1c24, 0x94ad: 0x403a1c25, 0x94ae: 0x403a1c26, 0x94af: 0x403a2a20, + 0x94b0: 0x403a2c20, 0x94b1: 0x403a2e20, 0x94b2: 0x403a3020, 0x94b3: 0x403a3220, + 0x94b4: 0x403a3420, 0x94b5: 0x403a4220, 0x94b6: 0x403a4420, 0x94b7: 0x403a4620, + 0x94b8: 0x403a4820, 0x94b9: 0x403a6020, 0x94ba: 0x403a5820, 0x94bb: 0x403a5a20, + 0x94bc: 0x403a5c20, 0x94bd: 0x403a5e20, 0x94be: 0x403a8826, 0x94bf: 0x40396c20, + // Block 0x253, offset 0x94c0 + 0x94c0: 0x403a8825, 0x94c1: 0x403a8822, 0x94c2: 0xe0003777, 0x94c3: 0x403a8824, + 0x94c4: 0x403a7620, 0x94c5: 0x403a7820, 0x94c6: 0x403a7a20, 0x94c7: 0x403a7c20, + 0x94c8: 0x403a7e20, 0x94c9: 0x403a8020, 0x94ca: 0x403a8220, 0x94cb: 0x403a8420, + 0x94cc: 0xc5640171, 0x94cd: 0x403a9226, 0x94ce: 0x403a9227, 0x94cf: 0x403a8620, + 0x94d0: 0x403a9224, 0x94d1: 0x403a9225, 0x94d2: 0x403a9222, 0x94d3: 0xe00037b6, + 0x94d4: 0x4002e820, 0x94d5: 0xc56a0171, 0x94d6: 0xae600000, 0x94d7: 0xae600000, + 0x94d8: 0xae600000, 0x94d9: 0xae600000, 0x94da: 0xae600000, 0x94db: 0xae600000, + 0x94dc: 0xae600000, 0x94dd: 0xa0000000, 0x94de: 0x40071220, 0x94df: 0xae600000, + 0x94e0: 0xae600000, 0x94e1: 0xae600000, 0x94e2: 0xae600000, 0x94e3: 0xadc00000, + 0x94e4: 0xae600000, 0x94e5: 0x003a7484, 0x94e6: 0x003a9084, 0x94e7: 0xae600000, + 0x94e8: 0xae600000, 0x94e9: 0x40071420, 0x94ea: 0xadc00000, 0x94eb: 0xae600000, + 0x94ec: 0xae600000, 0x94ed: 0xadc00000, 0x94ee: 0x40399e20, 0x94ef: 0x4039ba20, + 0x94f0: 0xe0000161, 0x94f1: 0xe00001e9, 0x94f2: 0xe0000304, 0x94f3: 0xe00003de, + 0x94f4: 0xe00004b9, 0x94f5: 0xe0000583, 0x94f6: 0xe000064e, 0x94f7: 0xe00006f6, + 0x94f8: 0xe00007a2, 0x94f9: 0xe0000847, 0x94fa: 0x4039d020, 0x94fb: 0x4039e420, + 0x94fc: 0x4039f420, 0x94fd: 0xe0001553, 0x94fe: 0xe0001779, 0x94ff: 0x403a7020, + // Block 0x254, offset 0x9500 + 0x9500: 0x00396e97, 0x9501: 0x00396e98, 0x9502: 0x0039969a, 0x9503: 0x00399699, + 0x9504: 0x0039949a, 0x9505: 0x00399499, 0x9506: 0x0039989a, 0x9507: 0x00399899, + 0x9508: 0x00398c9a, 0x9509: 0x00398c99, 0x950a: 0x0039b69a, 0x950b: 0x0039b699, + 0x950c: 0x0039a89a, 0x950d: 0x0039a899, 0x950e: 0x003a1c9a, 0x950f: 0x003a1c99, + 0x9510: 0x003a1c97, 0x9511: 0x003a1c98, 0x9512: 0x003a2a9a, 0x9513: 0x003a2a99, + 0x9514: 0x003a2a97, 0x9515: 0x003a2a98, 0x9516: 0x003a329a, 0x9517: 0x003a3299, + 0x9518: 0x003a3297, 0x9519: 0x003a3298, 0x951a: 0x003a2e9a, 0x951b: 0x003a2e99, + 0x951c: 0x003a2e97, 0x951d: 0x003a2e98, 0x951e: 0x003a589a, 0x951f: 0x003a5899, + 0x9520: 0x003a5a9a, 0x9521: 0x003a5a99, 0x9522: 0x003a5a97, 0x9523: 0x003a5a98, + 0x9524: 0xe0003774, 0x9525: 0xe0003771, 0x9526: 0x003a6c9a, 0x9527: 0x003a6c99, + 0x9528: 0x003a6c97, 0x9529: 0x003a6c98, 0x952a: 0x003a6a9a, 0x952b: 0x003a6a99, + 0x952c: 0x003a6a97, 0x952d: 0x003a6a98, 0x952e: 0x003aaa9a, 0x952f: 0x003aaa99, + 0x9530: 0xe00037bc, 0x9531: 0xe00037b9, 0x9532: 0x40071820, 0x9533: 0x40071a20, + 0x9534: 0x40071c20, 0x9535: 0x40071e20, 0x9536: 0x40072020, 0x9537: 0x40072220, + 0x9538: 0x40072420, 0x9539: 0x40072620, 0x953a: 0x40072820, 0x953b: 0x40072a20, + 0x953c: 0x40072c20, 0x953d: 0x40072e20, 0x953e: 0x40073020, 0x953f: 0x40073220, + // Block 0x255, offset 0x9540 + 0x9540: 0xe000155f, 0x9541: 0xe0001565, 0x9542: 0xe000157a, 0x9543: 0xe00015b0, + 0x9544: 0xe00015b6, 0x9545: 0xf0001a1a, 0x9546: 0xf0001a1a, 0x9547: 0xf0001a1a, + 0x9548: 0xf0001a1a, 0x9549: 0xe0002894, 0x954a: 0xe00036a5, 0x954b: 0xf0001a1a, + 0x954c: 0xf0001a1a, 0x954d: 0xf0001a1a, 0x954e: 0xf0001a1a, 0x954f: 0xe000289a, + 0x9550: 0xe00036b1, 0x9551: 0xf0001a1a, 0x9552: 0xf0001a1a, 0x9553: 0xe00028a0, + 0x9554: 0xe00036ba, 0x9555: 0xf0001a1a, 0x9556: 0xf0001a1a, 0x9557: 0xf0001a1a, + 0x9558: 0xf0001a1a, 0x9559: 0xf0001a1a, 0x955a: 0xf0001a1a, 0x955b: 0xf0001a1a, + 0x955c: 0xf0001a1a, 0x955d: 0xf0001a1a, 0x955e: 0xf0001a1a, 0x955f: 0xf0001a1a, + 0x9560: 0xf0001a1a, 0x9561: 0xf0001a1a, 0x9562: 0xf0001a1a, 0x9563: 0xf0001a1a, + 0x9564: 0xf0001a1a, 0x9565: 0xf0001a1a, 0x9566: 0xf0001a1a, 0x9567: 0xf0001a1a, + 0x9568: 0xf0001a1a, 0x9569: 0xf0001a1a, 0x956a: 0xf0001a1a, 0x956b: 0xf0001a1a, + 0x956c: 0xf0001a1a, 0x956d: 0xf0001a1a, 0x956e: 0xf0001a1a, 0x956f: 0xf0001a1a, + 0x9570: 0xf0001a1a, 0x9571: 0xe00028e2, 0x9572: 0xe0003708, 0x9573: 0xf0001a1a, + 0x9574: 0xf0001a1a, 0x9575: 0xe00028e8, 0x9576: 0xe000370e, 0x9577: 0xe0003714, + 0x9578: 0xe000371a, 0x9579: 0xe0003720, 0x957a: 0xe0003726, 0x957b: 0xe0003732, + 0x957c: 0xe000373e, 0x957d: 0xe00028ee, 0x957e: 0xe0003744, 0x957f: 0xf0001a1a, + // Block 0x256, offset 0x9580 + 0x9580: 0xf0001a1a, 0x9581: 0xf0001a1a, 0x9582: 0xf0001a1a, 0x9583: 0xe00028f4, + 0x9584: 0xe000374d, 0x9585: 0xf0001a1a, 0x9586: 0xf0001a1a, 0x9587: 0xf0001a1a, + 0x9588: 0xf0001a1a, 0x9589: 0xe00028f7, 0x958a: 0xe0003750, 0x958b: 0xf0001a1a, + 0x958c: 0xf0001a1a, 0x958d: 0xf0001a1a, 0x958e: 0xf0001a1a, 0x958f: 0xe00028fd, + 0x9590: 0xe000375c, 0x9591: 0xe0003765, 0x9592: 0xe000376b, 0x9593: 0xe0002900, + 0x9594: 0xe000376e, 0x9595: 0xe0003786, 0x9596: 0xe000378c, 0x9597: 0xe0003792, + 0x9598: 0xe00037a4, 0x9599: 0xe0002906, 0x959a: 0xe00037b3, 0x959b: 0xf0001a1a, + 0x959c: 0xf0001a1a, 0x959d: 0xe000377d, 0x959e: 0xe0000003, 0x959f: 0xe0000006, + 0x95a0: 0xe0000009, 0x95a1: 0xe000000c, 0x95a2: 0xe000000f, 0x95a3: 0xe0000012, + 0x95a4: 0xe000156b, 0x95a5: 0xe000156e, 0x95a6: 0xe0001577, 0x95a7: 0xe000157d, + 0x95a8: 0xe00015aa, 0x95a9: 0xe00015b3, 0x95aa: 0xf0001919, 0x95ab: 0xf0001919, + 0x95ac: 0xf0001919, 0x95ad: 0xf0001919, 0x95ae: 0xe0002891, 0x95af: 0xe00036a2, + 0x95b0: 0xf0001919, 0x95b1: 0xf0001919, 0x95b2: 0xf0001919, 0x95b3: 0xf0001919, + 0x95b4: 0xe0002897, 0x95b5: 0xe00036ae, 0x95b6: 0xf0001919, 0x95b7: 0xf0001919, + 0x95b8: 0xf0001919, 0x95b9: 0xf0001919, 0x95ba: 0xe000289d, 0x95bb: 0xe00036b7, + 0x95bc: 0xe00028df, 0x95bd: 0xe0003705, 0x95be: 0xe00028e5, 0x95bf: 0xe000370b, + // Block 0x257, offset 0x95c0 + 0x95c0: 0xe0003711, 0x95c1: 0xe000372f, 0x95c2: 0xe000373b, 0x95c3: 0xe00028eb, + 0x95c4: 0xe0003741, 0x95c5: 0xf0001919, 0x95c6: 0xe00028f1, 0x95c7: 0xe000374a, + 0x95c8: 0xf0001919, 0x95c9: 0xf0001919, 0x95ca: 0xf0001919, 0x95cb: 0xf0001919, + 0x95cc: 0xf0001919, 0x95cd: 0xf0001919, 0x95ce: 0xe00028fa, 0x95cf: 0xe0003759, + 0x95d0: 0xe000377a, 0x95d1: 0xe0003795, 0x95d2: 0xe0003798, 0x95d3: 0xe00037a1, + 0x95d4: 0xe00037a7, 0x95d5: 0xe0002903, 0x95d6: 0xe00037b0, 0x95d7: 0xe000155c, + 0x95d8: 0xe0001562, 0x95d9: 0xe0001568, 0x95da: 0xe0001571, 0x95db: 0xe0001580, + 0x95dc: 0xf0001717, 0x95dd: 0xf0001717, 0x95de: 0xf0001717, 0x95df: 0xf0001717, + 0x95e0: 0xe000369c, 0x95e1: 0xf0001717, 0x95e2: 0xf0001717, 0x95e3: 0xf0001717, + 0x95e4: 0xf0001717, 0x95e5: 0xe00036a8, 0x95e6: 0xf0001717, 0x95e7: 0xf0001717, + 0x95e8: 0xf0001717, 0x95e9: 0xf0001717, 0x95ea: 0xf0001717, 0x95eb: 0xf0001717, + 0x95ec: 0xf0001717, 0x95ed: 0xf0001717, 0x95ee: 0xf0001717, 0x95ef: 0xf0001717, + 0x95f0: 0xf0001717, 0x95f1: 0xf0001717, 0x95f2: 0xf0001717, 0x95f3: 0xf0001717, + 0x95f4: 0xf0001717, 0x95f5: 0xf0001717, 0x95f6: 0xf0001717, 0x95f7: 0xf0001717, + 0x95f8: 0xf0001717, 0x95f9: 0xf0001717, 0x95fa: 0xf0001717, 0x95fb: 0xf0001717, + 0x95fc: 0xf0001717, 0x95fd: 0xf0001717, 0x95fe: 0xf0001717, 0x95ff: 0xf0001717, + // Block 0x258, offset 0x9600 + 0x9600: 0xf0001717, 0x9601: 0xf0001717, 0x9602: 0xf0001717, 0x9603: 0xf0001717, + 0x9604: 0xe0003717, 0x9605: 0xe000371d, 0x9606: 0xe0003723, 0x9607: 0xe0003729, + 0x9608: 0xe0003735, 0x9609: 0xf0001717, 0x960a: 0xf0001717, 0x960b: 0xf0001717, + 0x960c: 0xf0001717, 0x960d: 0xe0003747, 0x960e: 0xf0001717, 0x960f: 0xf0001717, + 0x9610: 0xf0001717, 0x9611: 0xf0001717, 0x9612: 0xf0001717, 0x9613: 0xf0001717, + 0x9614: 0xf0001717, 0x9615: 0xf0001717, 0x9616: 0xe0003753, 0x9617: 0xe0003762, + 0x9618: 0xe0003768, 0x9619: 0xe000375f, 0x961a: 0xe0003783, 0x961b: 0xe0003789, + 0x961c: 0xe000378f, 0x961d: 0xe000379b, 0x961e: 0xe00037aa, 0x961f: 0xe0001574, + 0x9620: 0xe0001583, 0x9621: 0xf0001818, 0x9622: 0xe000369f, 0x9623: 0xf0001818, + 0x9624: 0xe00036ab, 0x9625: 0xf0001818, 0x9626: 0xe00036b4, 0x9627: 0xf0001818, + 0x9628: 0xe00036d2, 0x9629: 0xf0001818, 0x962a: 0xe00036de, 0x962b: 0xe000372c, + 0x962c: 0xe0003738, 0x962d: 0xf0001818, 0x962e: 0xf0001818, 0x962f: 0xe0003756, + 0x9630: 0xe000379e, 0x9631: 0xe00037ad, 0x9632: 0xf0001818, 0x9633: 0xe0003690, + 0x9634: 0xe0003693, 0x9635: 0xe00028d0, 0x9636: 0xe00036f6, 0x9637: 0xe00028d6, + 0x9638: 0xe00036fc, 0x9639: 0xe00028dc, 0x963a: 0xe0003702, 0x963b: 0xe00028b8, + 0x963c: 0xe00036d8, 0x963d: 0xe00028be, 0x963e: 0xe00036e4, 0x963f: 0xe00028ac, + // Block 0x259, offset 0x9640 + 0x9640: 0xe00036c6, 0x9641: 0xe00028a6, 0x9642: 0xe00036c0, 0x9643: 0xe00028b2, + 0x9644: 0xe00036cc, 0x9645: 0xe00028c4, 0x9646: 0xe00036ea, 0x9647: 0xe00028ca, + 0x9648: 0xe00036f0, 0x9649: 0xf0001a1a, 0x964a: 0xf0001a1a, 0x964b: 0xf0001a1a, + 0x964c: 0xf0001a1a, 0x964d: 0xf0001a1a, 0x964e: 0xf0001a1a, 0x964f: 0xf0001a1a, + 0x9650: 0xf0001a1a, 0x9651: 0xe00028cd, 0x9652: 0xe00036f3, 0x9653: 0xe00028d3, + 0x9654: 0xe00036f9, 0x9655: 0xe00028d9, 0x9656: 0xe00036ff, 0x9657: 0xe00028b5, + 0x9658: 0xe00036d5, 0x9659: 0xe00028bb, 0x965a: 0xe00036e1, 0x965b: 0xe00028a9, + 0x965c: 0xe00036c3, 0x965d: 0xe00028a3, 0x965e: 0xe00036bd, 0x965f: 0xe00028af, + 0x9660: 0xe00036c9, 0x9661: 0xe00028c1, 0x9662: 0xe00036e7, 0x9663: 0xe00028c7, + 0x9664: 0xe00036ed, 0x9665: 0xf0001919, 0x9666: 0xf0001919, 0x9667: 0xf0001919, + 0x9668: 0xf0001919, 0x9669: 0xf0001919, 0x966a: 0xf0001919, 0x966b: 0xf0001919, + 0x966c: 0xf0001919, 0x966d: 0xf0001717, 0x966e: 0xf0001717, 0x966f: 0xf0001717, + 0x9670: 0xf0001717, 0x9671: 0xe00036cf, 0x9672: 0xe00036db, 0x9673: 0xf0001717, + 0x9674: 0xf0001818, 0x9675: 0xf0001818, 0x9676: 0xf0001818, 0x9677: 0xf0001818, + 0x9678: 0xf0001818, 0x9679: 0xf0001818, 0x967a: 0xf0001818, 0x967b: 0xf0001818, + 0x967c: 0xe0003696, 0x967d: 0xe0003699, 0x967e: 0x4004c020, 0x967f: 0x4004c220, + // Block 0x25a, offset 0x9680 + 0x9680: 0xa0000000, 0x9681: 0xa0000000, 0x9682: 0xa0000000, 0x9683: 0xa0000000, + 0x9684: 0xa0000000, 0x9685: 0xa0000000, 0x9686: 0xa0000000, 0x9687: 0xa0000000, + 0x9688: 0xa0000000, 0x9689: 0x40020020, 0x968a: 0x40020220, 0x968b: 0x40020420, + 0x968c: 0x40020620, 0x968d: 0x40020820, 0x968e: 0xa0000000, 0x968f: 0xa0000000, + 0x9690: 0xa0000000, 0x9691: 0xa0000000, 0x9692: 0xa0000000, 0x9693: 0xa0000000, + 0x9694: 0xa0000000, 0x9695: 0xa0000000, 0x9696: 0xa0000000, 0x9697: 0xa0000000, + 0x9698: 0xa0000000, 0x9699: 0xa0000000, 0x969a: 0xa0000000, 0x969b: 0xa0000000, + 0x969c: 0xa0000000, 0x969d: 0xa0000000, 0x969e: 0xa0000000, 0x969f: 0xa0000000, + 0x96a0: 0x40021220, 0x96a1: 0x4002ba20, 0x96a2: 0x4003e020, 0x96a3: 0x4004ea20, + 0x96a4: 0x4027de20, 0x96a5: 0x4004ec20, 0x96a6: 0x4004e620, 0x96a7: 0x4003d220, + 0x96a8: 0x4003f420, 0x96a9: 0x4003f620, 0x96aa: 0x4004d820, 0x96ab: 0x40093820, + 0x96ac: 0x40024020, 0x96ad: 0x40021a20, 0x96ae: 0x4002e420, 0x96af: 0x4004e220, + 0x96b0: 0x4029cc20, 0x96b1: 0x4029ce20, 0x96b2: 0x4029d020, 0x96b3: 0x4029d220, + 0x96b4: 0x4029d420, 0x96b5: 0x4029d620, 0x96b6: 0x4029d820, 0x96b7: 0x4029da20, + 0x96b8: 0x4029dc20, 0x96b9: 0x4029de20, 0x96ba: 0x40026c20, 0x96bb: 0x40026220, + 0x96bc: 0x40094020, 0x96bd: 0x40094220, 0x96be: 0x40094420, 0x96bf: 0x4002c420, + // Block 0x25b, offset 0x96c0 + 0x96c0: 0x4004d620, 0x96c1: 0xc57327b1, 0x96c2: 0x002c0a88, 0x96c3: 0x002c3a88, + 0x96c4: 0x002c6288, 0x96c5: 0x002c9888, 0x96c6: 0x002d0888, 0x96c7: 0x002d2288, + 0x96c8: 0x002d6888, 0x96c9: 0x002d9a88, 0x96ca: 0x002dcc88, 0x96cb: 0x002dfe88, + 0x96cc: 0xc0030002, 0x96cd: 0x002e8288, 0x96ce: 0x002e9e88, 0x96cf: 0xc5780071, + 0x96d0: 0x002f2c88, 0x96d1: 0x002f5688, 0x96d2: 0x002f7a88, 0x96d3: 0x002fe688, + 0x96d4: 0x00302c88, 0x96d5: 0xc56e0071, 0x96d6: 0x0030be88, 0x96d7: 0x0030e288, + 0x96d8: 0x0030f688, 0x96d9: 0x00310088, 0x96da: 0x00312a88, 0x96db: 0x4003f820, + 0x96dc: 0x4004e420, 0x96dd: 0x4003fa20, 0x96de: 0x40062420, 0x96df: 0x40021620, + 0x96e0: 0x40061e20, 0x96e1: 0xc57027b1, 0x96e2: 0x402c0a20, 0x96e3: 0x402c3a20, + 0x96e4: 0x402c6220, 0x96e5: 0x402c9820, 0x96e6: 0x402d0820, 0x96e7: 0x402d2220, + 0x96e8: 0x402d6820, 0x96e9: 0x402d9a20, 0x96ea: 0x402dcc20, 0x96eb: 0x402dfe20, + 0x96ec: 0xc0000002, 0x96ed: 0x402e8220, 0x96ee: 0x402e9e20, 0x96ef: 0xc5760071, + 0x96f0: 0x402f2c20, 0x96f1: 0x402f5620, 0x96f2: 0x402f7a20, 0x96f3: 0x402fe620, + 0x96f4: 0x40302c20, 0x96f5: 0xc56c0071, 0x96f6: 0x4030be20, 0x96f7: 0x4030e220, + 0x96f8: 0x4030f620, 0x96f9: 0x40310020, 0x96fa: 0x40312a20, 0x96fb: 0x4003fc20, + 0x96fc: 0x40094820, 0x96fd: 0x4003fe20, 0x96fe: 0x40094c20, 0x96ff: 0xa0000000, + // Block 0x25c, offset 0x9700 + 0x9700: 0xe00008f5, 0x9701: 0xe00008ef, 0x9702: 0xe0000921, 0x9703: 0xe0000969, + 0x9704: 0x00320e83, 0x9705: 0x00320c83, 0x9706: 0x00320ea3, 0x9707: 0xe0000a53, + 0x9708: 0xe0000ae8, 0x9709: 0xe0000ae2, 0x970a: 0xe0000af4, 0x970b: 0xe0000b20, + 0x970c: 0xe0000c2b, 0x970d: 0xe0000c25, 0x970e: 0xe0000c37, 0x970f: 0xe0000c43, + 0x9710: 0xe0000ab3, 0x9711: 0xe0000d63, 0x9712: 0xe0000d9a, 0x9713: 0xe0000d94, + 0x9714: 0xe0000da6, 0x9715: 0xe0000de6, 0x9716: 0x00321083, 0x9717: 0x40093e20, + 0x9718: 0x003210a3, 0x9719: 0xe0000fe1, 0x971a: 0xe0000fdb, 0x971b: 0xe0000fed, + 0x971c: 0x003100a3, 0x971d: 0xe0001102, 0x971e: 0x00318888, 0x971f: 0xe0000f7b, + 0x9720: 0xe00008f2, 0x9721: 0xe00008ec, 0x9722: 0xe000091e, 0x9723: 0xe0000966, + 0x9724: 0x40320e20, 0x9725: 0x40320c20, 0x9726: 0x40320e21, 0x9727: 0xe0000a4d, + 0x9728: 0xe0000ae5, 0x9729: 0xe0000adf, 0x972a: 0xe0000af1, 0x972b: 0xe0000b1d, + 0x972c: 0xe0000c28, 0x972d: 0xe0000c22, 0x972e: 0xe0000c34, 0x972f: 0xe0000c40, + 0x9730: 0xe0000aad, 0x9731: 0xe0000d60, 0x9732: 0xe0000d97, 0x9733: 0xe0000d91, + 0x9734: 0xe0000da3, 0x9735: 0xe0000de3, 0x9736: 0x40321020, 0x9737: 0x40093c20, + 0x9738: 0x40321021, 0x9739: 0xe0000fde, 0x973a: 0xe0000fd8, 0x973b: 0xe0000fea, + 0x973c: 0x40310021, 0x973d: 0xe00010ff, 0x973e: 0x40318820, 0x973f: 0xe0001114, + // Block 0x25d, offset 0x9740 + 0x9740: 0xe0000983, 0x9741: 0xe0000980, 0x9742: 0xe00008fb, 0x9743: 0xe00008f8, + 0x9744: 0xe000097d, 0x9745: 0xe000097a, 0x9746: 0xe0000a38, 0x9747: 0xe0000a35, + 0x9748: 0xe0000a3e, 0x9749: 0xe0000a3b, 0x974a: 0xe0000a4a, 0x974b: 0xe0000a47, + 0x974c: 0xe0000a44, 0x974d: 0xe0000a41, 0x974e: 0xe0000a86, 0x974f: 0xe0000a83, + 0x9750: 0xe00037c2, 0x9751: 0xe00037bf, 0x9752: 0xe0000b46, 0x9753: 0xe0000b43, + 0x9754: 0xe0000aee, 0x9755: 0xe0000aeb, 0x9756: 0xe0000b2c, 0x9757: 0xe0000b29, + 0x9758: 0xe0000b40, 0x9759: 0xe0000b3d, 0x975a: 0xe0000b1a, 0x975b: 0xe0000b17, + 0x975c: 0xe0000bb8, 0x975d: 0xe0000bb5, 0x975e: 0xe0000bb2, 0x975f: 0xe0000baf, + 0x9760: 0xe0000bc4, 0x9761: 0xe0000bc1, 0x9762: 0xe0000bca, 0x9763: 0xe0000bc7, + 0x9764: 0xe0000bee, 0x9765: 0xe0000beb, 0x9766: 0xe0000c1b, 0x9767: 0xe0000c18, + 0x9768: 0xe0000c51, 0x9769: 0xe0000c4e, 0x976a: 0xe0000c60, 0x976b: 0xe0000c5d, + 0x976c: 0xe0000c31, 0x976d: 0xe0000c2e, 0x976e: 0xe0000c5a, 0x976f: 0xe0000c57, + 0x9770: 0xe0000c54, 0x9771: 0x402da220, 0x9772: 0xf0000a0a, 0x9773: 0xf0000404, + 0x9774: 0xe0000c8a, 0x9775: 0xe0000c87, 0x9776: 0xe0000c9f, 0x9777: 0xe0000c9c, + 0x9778: 0x402f7220, 0x9779: 0xe0000ccc, 0x977a: 0xe0000cc9, 0x977b: 0xe0000cd8, + 0x977c: 0xe0000cd5, 0x977d: 0xe0000cd2, 0x977e: 0xe0000ccf, 0x977f: 0xe0000d04, + // Block 0x25e, offset 0x9780 + 0x9780: 0xe0000cfe, 0x9781: 0xe0000cf8, 0x9782: 0xe0000cf5, 0x9783: 0xe0000d51, + 0x9784: 0xe0000d4e, 0x9785: 0xe0000d6f, 0x9786: 0xe0000d6c, 0x9787: 0xe0000d5d, + 0x9788: 0xe0000d5a, 0x9789: 0xf0000404, 0x978a: 0xe00037ce, 0x978b: 0xe00037cb, + 0x978c: 0xe0000e2e, 0x978d: 0xe0000e2b, 0x978e: 0xe0000da0, 0x978f: 0xe0000d9d, + 0x9790: 0xe0000de0, 0x9791: 0xe0000ddd, 0x9792: 0xe0000e93, 0x9793: 0xe0000e8f, + 0x9794: 0xe0000eca, 0x9795: 0xe0000ec7, 0x9796: 0xe0000edc, 0x9797: 0xe0000ed9, + 0x9798: 0xe0000ed0, 0x9799: 0xe0000ecd, 0x979a: 0xe0000f1f, 0x979b: 0xe0000f1c, + 0x979c: 0xe0000f2d, 0x979d: 0xe0000f2a, 0x979e: 0xe0000f47, 0x979f: 0xe0000f44, + 0x97a0: 0xe0000f33, 0x97a1: 0xe0000f30, 0x97a2: 0xe0000f99, 0x97a3: 0xe0000f96, + 0x97a4: 0xe0000f8a, 0x97a5: 0xe0000f87, 0x97a6: 0xe00037d4, 0x97a7: 0xe00037d1, + 0x97a8: 0xe000102b, 0x97a9: 0xe0001028, 0x97aa: 0xe000103f, 0x97ab: 0xe000103c, + 0x97ac: 0xe0000fe7, 0x97ad: 0xe0000fe4, 0x97ae: 0xe0000ff9, 0x97af: 0xe0000ff6, + 0x97b0: 0xe0001025, 0x97b1: 0xe0001022, 0x97b2: 0xe0001039, 0x97b3: 0xe0001036, + 0x97b4: 0xe00010d8, 0x97b5: 0xe00010d5, 0x97b6: 0xe000110e, 0x97b7: 0xe000110b, + 0x97b8: 0xe0001117, 0x97b9: 0xe000113b, 0x97ba: 0xe0001138, 0x97bb: 0xe000114d, + 0x97bc: 0xe000114a, 0x97bd: 0xe0001147, 0x97be: 0xe0001144, 0x97bf: 0xe0000f64, + // Block 0x25f, offset 0x97c0 + 0x97c0: 0x402c1a20, 0x97c1: 0x002c2a88, 0x97c2: 0x002c3288, 0x97c3: 0x402c3220, + 0x97c4: 0x0031c488, 0x97c5: 0x4031c420, 0x97c6: 0x002efa88, 0x97c7: 0x002c4e88, + 0x97c8: 0x402c4e20, 0x97c9: 0x002c7288, 0x97ca: 0x002c7a88, 0x97cb: 0x002c8488, + 0x97cc: 0x402c8420, 0x97cd: 0xe000115c, 0x97ce: 0x002cae88, 0x97cf: 0x002cb888, + 0x97d0: 0x002cc288, 0x97d1: 0x002d1688, 0x97d2: 0x402d1620, 0x97d3: 0x002d4488, + 0x97d4: 0x002d5888, 0x97d5: 0x402d7820, 0x97d6: 0x002dc288, 0x97d7: 0x002db688, + 0x97d8: 0x002e0a88, 0x97d9: 0x402e0a20, 0x97da: 0x402e3820, 0x97db: 0x402e7220, + 0x97dc: 0x0030a088, 0x97dd: 0x002eb488, 0x97de: 0x402ebc20, 0x97df: 0x002f1088, + 0x97e0: 0xe0000e56, 0x97e1: 0xe0000e53, 0x97e2: 0x002d6088, 0x97e3: 0x402d6020, + 0x97e4: 0x002f3e88, 0x97e5: 0x402f3e20, 0x97e6: 0x002f8288, 0x97e7: 0x0031b488, + 0x97e8: 0x4031b420, 0x97e9: 0x00300888, 0x97ea: 0x40301220, 0x97eb: 0x40304220, + 0x97ec: 0x00304a88, 0x97ed: 0x40304a20, 0x97ee: 0x00305288, 0x97ef: 0xe000105f, + 0x97f0: 0xe000105c, 0x97f1: 0x0030b488, 0x97f2: 0x0030cc88, 0x97f3: 0x00311888, + 0x97f4: 0x40311820, 0x97f5: 0x00313488, 0x97f6: 0x40313420, 0x97f7: 0xe00037da, + 0x97f8: 0x00316e88, 0x97f9: 0x40316e20, 0x97fa: 0x40317820, 0x97fb: 0x4031a620, + 0x97fc: 0x0031bc88, 0x97fd: 0x4031bc20, 0x97fe: 0xe0000fc9, 0x97ff: 0x40319420, + // Block 0x260, offset 0x9800 + 0x9800: 0x40321220, 0x9801: 0x40321a20, 0x9802: 0x40322220, 0x9803: 0x40322a20, + 0x9804: 0xe0000ad5, 0x9805: 0xe0000ad1, 0x9806: 0xe0000acd, 0x9807: 0xf0000a0a, + 0x9808: 0xf000040a, 0x9809: 0xf0000404, 0x980a: 0xf0000a0a, 0x980b: 0xf000040a, + 0x980c: 0xf0000404, 0x980d: 0xe0000947, 0x980e: 0xe0000944, 0x980f: 0xe0000c3d, + 0x9810: 0xe0000c3a, 0x9811: 0xe0000dcc, 0x9812: 0xe0000dc9, 0x9813: 0xe0000ff3, + 0x9814: 0xe0000ff0, 0x9815: 0xe000298b, 0x9816: 0xe0002988, 0x9817: 0xe0002979, + 0x9818: 0xe0002976, 0x9819: 0xe0002985, 0x981a: 0xe0002982, 0x981b: 0xe000297f, + 0x981c: 0xe000297c, 0x981d: 0x402cae20, 0x981e: 0xe00037e8, 0x981f: 0xe00037e5, + 0x9820: 0xe0000976, 0x9821: 0xe0000972, 0x9822: 0xe00029af, 0x9823: 0xe00029ac, + 0x9824: 0xe00037c8, 0x9825: 0xe00037c5, 0x9826: 0xe0000bbe, 0x9827: 0xe0000bbb, + 0x9828: 0xe0000c99, 0x9829: 0xe0000c96, 0x982a: 0xe0000e20, 0x982b: 0xe0000e1d, + 0x982c: 0xe0000e27, 0x982d: 0xe0000e23, 0x982e: 0xe00037e1, 0x982f: 0xe00037dd, + 0x9830: 0xe0000c8d, 0x9831: 0xf0000a0a, 0x9832: 0xf000040a, 0x9833: 0xf0000404, + 0x9834: 0xe0000bac, 0x9835: 0xe0000ba9, 0x9836: 0x002d7888, 0x9837: 0x00319488, + 0x9838: 0xe0000d57, 0x9839: 0xe0000d54, 0x983a: 0xe0002991, 0x983b: 0xe000298e, + 0x983c: 0xe00037ee, 0x983d: 0xe00037eb, 0x983e: 0xe0003800, 0x983f: 0xe00037fd, + // Block 0x261, offset 0x9840 + 0x9840: 0xe000098f, 0x9841: 0xe000098c, 0x9842: 0xe0000995, 0x9843: 0xe0000992, + 0x9844: 0xe0000b62, 0x9845: 0xe0000b5f, 0x9846: 0xe0000b68, 0x9847: 0xe0000b65, + 0x9848: 0xe0000c6c, 0x9849: 0xe0000c69, 0x984a: 0xe0000c72, 0x984b: 0xe0000c6f, + 0x984c: 0xe0000e4a, 0x984d: 0xe0000e47, 0x984e: 0xe0000e50, 0x984f: 0xe0000e4d, + 0x9850: 0xe0000ee8, 0x9851: 0xe0000ee5, 0x9852: 0xe0000eee, 0x9853: 0xe0000eeb, + 0x9854: 0xe0001053, 0x9855: 0xe0001050, 0x9856: 0xe0001059, 0x9857: 0xe0001056, + 0x9858: 0xe0000f61, 0x9859: 0xe0000f5e, 0x985a: 0xe0000fa5, 0x985b: 0xe0000fa2, + 0x985c: 0x00312288, 0x985d: 0x40312220, 0x985e: 0xe0000bf4, 0x985f: 0xe0000bf1, + 0x9860: 0x002ebc88, 0x9861: 0x402c8c20, 0x9862: 0x002f2288, 0x9863: 0x402f2220, + 0x9864: 0x00314088, 0x9865: 0x40314020, 0x9866: 0xe000096f, 0x9867: 0xe000096c, + 0x9868: 0xe0000b32, 0x9869: 0xe0000b2f, 0x986a: 0xe00037fa, 0x986b: 0xe00037f7, + 0x986c: 0xe0000dfd, 0x986d: 0xe0000df9, 0x986e: 0xe0000e04, 0x986f: 0xe0000e01, + 0x9870: 0xe0000e0b, 0x9871: 0xe0000e07, 0x9872: 0xe0001129, 0x9873: 0xe0001126, + 0x9874: 0x402e5e20, 0x9875: 0x402ed020, 0x9876: 0x40305a20, 0x9877: 0x402dd420, + 0x9878: 0xe0000abf, 0x9879: 0xe0000ec4, 0x987a: 0x002be888, 0x987b: 0x002c4488, + 0x987c: 0x402c4420, 0x987d: 0x002e3888, 0x987e: 0x00303e88, 0x987f: 0x402ffc20, + // Block 0x262, offset 0x9880 + 0x9880: 0x402f8220, 0x9881: 0x402fd820, 0x9882: 0x402ff420, 0x9883: 0x40300820, + 0x9884: 0x402df620, 0x9885: 0x40301a20, 0x9886: 0x40302420, 0x9887: 0x40306420, + 0x9888: 0x40305220, 0x9889: 0x40307c20, 0x988a: 0x4030b420, 0x988b: 0x4030cc20, + 0x988c: 0x4030da20, 0x988d: 0x4030ee20, 0x988e: 0x402e7a20, 0x988f: 0x40310820, + 0x9890: 0x40314820, 0x9891: 0x40315020, 0x9892: 0xe00037d7, 0x9893: 0x40318020, + 0x9894: 0x4031cc20, 0x9895: 0x4031e820, 0x9896: 0x40320a20, 0x9897: 0x40323220, + 0x9898: 0x40323a20, 0x9899: 0x402c1220, 0x989a: 0x402cf820, 0x989b: 0x402d4c20, + 0x989c: 0x402d7020, 0x989d: 0x402de620, 0x989e: 0x402e1a20, 0x989f: 0x402e2a20, + 0x98a0: 0x402f6220, 0x98a1: 0x4031fa20, 0x98a2: 0x40320220, 0x98a3: 0xe0000aca, + 0x98a4: 0xe0000adc, 0x98a5: 0xe0000ad9, 0x98a6: 0xe0000fcc, 0x98a7: 0xe0000fcf, + 0x98a8: 0xe0000fba, 0x98a9: 0xe0000ba1, 0x98aa: 0xe0000d11, 0x98ab: 0xe0000d18, + 0x98ac: 0x40324220, 0x98ad: 0x40324a20, 0x98ae: 0x40309020, 0x98af: 0x40309820, + 0x98b0: 0x002d6894, 0x98b1: 0x002d8094, 0x98b2: 0x002dcc94, 0x98b3: 0x002f7a94, + 0x98b4: 0x002f9894, 0x98b5: 0x002fac94, 0x98b6: 0x002fd894, 0x98b7: 0x0030e294, + 0x98b8: 0x00310094, 0x98b9: 0x40064020, 0x98ba: 0x40064420, 0x98bb: 0x402d9620, + 0x98bc: 0x4031de20, 0x98bd: 0x402d9820, 0x98be: 0x4031e220, 0x98bf: 0x4031f020, + // Block 0x263, offset 0x98c0 + 0x98c0: 0xe0000d24, 0x98c1: 0xe0000d21, 0x98c2: 0xe0000d2a, 0x98c3: 0xe0000d27, + 0x98c4: 0xe0000d69, 0x98c5: 0xe0000d66, 0x98c6: 0xe0000d7b, 0x98c7: 0xe0000d78, + 0x98c8: 0xe0000d87, 0x98c9: 0xe0000d84, 0x98ca: 0xe0000d81, 0x98cb: 0xe0000d7e, + 0x98cc: 0xe0000ded, 0x98cd: 0xe0000de9, 0x98ce: 0xe00037f4, 0x98cf: 0xe00037f1, + 0x98d0: 0xe0000e3d, 0x98d1: 0xe0000e39, 0x98d2: 0xe0000e35, 0x98d3: 0xe0000e31, + 0x98d4: 0xe0000ea7, 0x98d5: 0xe0000ea4, 0x98d6: 0xe0000ead, 0x98d7: 0xe0000eaa, + 0x98d8: 0xe0000ed6, 0x98d9: 0xe0000ed3, 0x98da: 0xe0000ef4, 0x98db: 0xe0000ef1, + 0x98dc: 0xe0000efb, 0x98dd: 0xe0000ef7, 0x98de: 0xe0000f02, 0x98df: 0xe0000eff, + 0x98e0: 0xe0000f41, 0x98e1: 0xe0000f3e, 0x98e2: 0xe0000f53, 0x98e3: 0xe0000f50, + 0x98e4: 0xe0000f26, 0x98e5: 0xe0000f22, 0x98e6: 0xe0000f3a, 0x98e7: 0xe0000f36, + 0x98e8: 0xe0000f5a, 0x98e9: 0xe0000f56, 0x98ea: 0xe0000f93, 0x98eb: 0xe0000f90, + 0x98ec: 0xe0000f9f, 0x98ed: 0xe0000f9c, 0x98ee: 0xe0000fb1, 0x98ef: 0xe0000fae, + 0x98f0: 0xe0000fab, 0x98f1: 0xe0000fa8, 0x98f2: 0xe0001093, 0x98f3: 0xe0001090, + 0x98f4: 0xe000109f, 0x98f5: 0xe000109c, 0x98f6: 0xe0001099, 0x98f7: 0xe0001096, + 0x98f8: 0xe0001032, 0x98f9: 0xe000102e, 0x98fa: 0xe000298b, 0x98fb: 0xe0002988, + 0x98fc: 0xe00010a9, 0x98fd: 0xe00010a6, 0x98fe: 0xe00010af, 0x98ff: 0xe00010ac, + // Block 0x264, offset 0x9900 + 0x9900: 0xe00009bc, 0x9901: 0xe00009c0, 0x9902: 0x002c3a8b, 0x9903: 0xf0000a04, + 0x9904: 0x40081c20, 0x9905: 0xe0000a5e, 0x9906: 0xe0000a62, 0x9907: 0x002cc28a, + 0x9908: 0x40081e20, 0x9909: 0xf0000a04, 0x990a: 0x002d2285, 0x990b: 0x002d688b, + 0x990c: 0x002d688b, 0x990d: 0x002d688b, 0x990e: 0x002d6885, 0x990f: 0xf0000202, + 0x9910: 0x002d9a8b, 0x9911: 0x002d9a8b, 0x9912: 0x002e228b, 0x9913: 0x002e2285, + 0x9914: 0x40082020, 0x9915: 0x002e9e8b, 0x9916: 0xf000040a, 0x9917: 0x40082220, + 0x9918: 0x40082420, 0x9919: 0x002f2c8b, 0x991a: 0x002f568b, 0x991b: 0x002f7a8b, + 0x991c: 0x002f7a8b, 0x991d: 0x002f7a8b, 0x991e: 0x40082620, 0x991f: 0x40082820, + 0x9920: 0xf0001414, 0x9921: 0xe0000fbd, 0x9922: 0xf0001414, 0x9923: 0x40082a20, + 0x9924: 0x00312a8b, 0x9925: 0x40082c20, 0x9926: 0x0032a288, 0x9927: 0x40082e20, + 0x9928: 0x00312a8b, 0x9929: 0x40083020, 0x992a: 0x002dfe88, 0x992b: 0x00320c83, + 0x992c: 0x002c0a8b, 0x992d: 0x002c3a8b, 0x992e: 0x40083220, 0x992f: 0x002c9885, + 0x9930: 0x002c988b, 0x9931: 0x002d088b, 0x9932: 0x002d1e88, 0x9933: 0x002e828b, + 0x9934: 0x002ee285, 0x9935: 0x00389084, 0x9936: 0x00389284, 0x9937: 0x00389484, + 0x9938: 0x00389684, 0x9939: 0x002d9a85, 0x993a: 0x40083420, 0x993b: 0xe0000b95, + 0x993c: 0x00327e85, 0x993d: 0x00325685, 0x993e: 0x0032568b, 0x993f: 0x00327e8b, + // Block 0x265, offset 0x9940 + 0x9940: 0xa0000000, 0x9941: 0xa0000000, 0x9942: 0xa0000000, 0x9943: 0xa0000000, + 0x9944: 0xa0000000, 0x9945: 0xa0000000, 0x9946: 0xa0000000, 0x9947: 0xa0000000, + 0x9948: 0xa0000000, 0x9949: 0x40020020, 0x994a: 0x40020220, 0x994b: 0x40020420, + 0x994c: 0x40020620, 0x994d: 0x40020820, 0x994e: 0xa0000000, 0x994f: 0xa0000000, + 0x9950: 0xa0000000, 0x9951: 0xa0000000, 0x9952: 0xa0000000, 0x9953: 0xa0000000, + 0x9954: 0xa0000000, 0x9955: 0xa0000000, 0x9956: 0xa0000000, 0x9957: 0xa0000000, + 0x9958: 0xa0000000, 0x9959: 0xa0000000, 0x995a: 0xa0000000, 0x995b: 0xa0000000, + 0x995c: 0xa0000000, 0x995d: 0xa0000000, 0x995e: 0xa0000000, 0x995f: 0xa0000000, + 0x9960: 0x40021220, 0x9961: 0x4002ba20, 0x9962: 0x4003e020, 0x9963: 0x4004ea20, + 0x9964: 0x4027de20, 0x9965: 0x4004ec20, 0x9966: 0x4004e620, 0x9967: 0x4003d220, + 0x9968: 0x4003f420, 0x9969: 0x4003f620, 0x996a: 0x4004d820, 0x996b: 0x40093820, + 0x996c: 0x40024020, 0x996d: 0x40021a20, 0x996e: 0x4002e420, 0x996f: 0x4004e220, + 0x9970: 0x4029cc20, 0x9971: 0x4029ce20, 0x9972: 0x4029d020, 0x9973: 0x4029d220, + 0x9974: 0x4029d420, 0x9975: 0x4029d620, 0x9976: 0x4029d820, 0x9977: 0x4029da20, + 0x9978: 0x4029dc20, 0x9979: 0x4029de20, 0x997a: 0x40026c20, 0x997b: 0x40026220, + 0x997c: 0x40094020, 0x997d: 0x40094220, 0x997e: 0x40094420, 0x997f: 0x4002c420, + // Block 0x266, offset 0x9980 + 0x9980: 0x4004d620, 0x9981: 0xc57327b1, 0x9982: 0x002c0a88, 0x9983: 0x002c3a88, + 0x9984: 0x002c6288, 0x9985: 0x002c9888, 0x9986: 0x002d0888, 0x9987: 0x002d2288, + 0x9988: 0x002d6888, 0x9989: 0x002d9a88, 0x998a: 0x002dcc88, 0x998b: 0x002dfe88, + 0x998c: 0xc0030002, 0x998d: 0x002e8288, 0x998e: 0x002e9e88, 0x998f: 0xc57e27e1, + 0x9990: 0x002f2c88, 0x9991: 0x002f5688, 0x9992: 0x002f7a88, 0x9993: 0x002fe688, + 0x9994: 0x00302c88, 0x9995: 0xc3900b21, 0x9996: 0x0030be88, 0x9997: 0x0030bea3, + 0x9998: 0x0030f688, 0x9999: 0x00310088, 0x999a: 0x00312a88, 0x999b: 0x4003f820, + 0x999c: 0x4004e420, 0x999d: 0x4003fa20, 0x999e: 0x40062420, 0x999f: 0x40021620, + 0x99a0: 0x40061e20, 0x99a1: 0xc57027b1, 0x99a2: 0x402c0a20, 0x99a3: 0x402c3a20, + 0x99a4: 0x402c6220, 0x99a5: 0x402c9820, 0x99a6: 0x402d0820, 0x99a7: 0x402d2220, + 0x99a8: 0x402d6820, 0x99a9: 0x402d9a20, 0x99aa: 0x402dcc20, 0x99ab: 0x402dfe20, + 0x99ac: 0xc0000002, 0x99ad: 0x402e8220, 0x99ae: 0x402e9e20, 0x99af: 0xc57a27e1, + 0x99b0: 0x402f2c20, 0x99b1: 0x402f5620, 0x99b2: 0x402f7a20, 0x99b3: 0x402fe620, + 0x99b4: 0x40302c20, 0x99b5: 0xc38d0b21, 0x99b6: 0x4030be20, 0x99b7: 0x4030be21, + 0x99b8: 0x4030f620, 0x99b9: 0x40310020, 0x99ba: 0x40312a20, 0x99bb: 0x4003fc20, + 0x99bc: 0x40094820, 0x99bd: 0x4003fe20, 0x99be: 0x40094c20, 0x99bf: 0xa0000000, + // Block 0x267, offset 0x99c0 + 0x99c0: 0xe00008f5, 0x99c1: 0xe00008ef, 0x99c2: 0xe0000921, 0x99c3: 0xe0000969, + 0x99c4: 0x00320e83, 0x99c5: 0x00320c83, 0x99c6: 0x00320ea3, 0x99c7: 0xe0000a53, + 0x99c8: 0xe0000ae8, 0x99c9: 0xe0000ae2, 0x99ca: 0xe0000af4, 0x99cb: 0xe0000b20, + 0x99cc: 0xe0000c2b, 0x99cd: 0xe0000c25, 0x99ce: 0xe0000c37, 0x99cf: 0xe0000c43, + 0x99d0: 0x002c62a3, 0x99d1: 0xe0000d63, 0x99d2: 0xe0000d9a, 0x99d3: 0xe0000d94, + 0x99d4: 0xe0000da6, 0x99d5: 0x003210e3, 0x99d6: 0x00321083, 0x99d7: 0x40093e20, + 0x99d8: 0x003210a3, 0x99d9: 0xe0000fe1, 0x99da: 0xe0000fdb, 0x99db: 0xe0000fed, + 0x99dc: 0x003100a3, 0x99dd: 0xe0001102, 0x99de: 0xe0003806, 0x99df: 0xe0000f7b, + 0x99e0: 0xe00008f2, 0x99e1: 0xe00008ec, 0x99e2: 0xe000091e, 0x99e3: 0xe0000966, + 0x99e4: 0x40320e20, 0x99e5: 0x40320c20, 0x99e6: 0x40320e21, 0x99e7: 0xe0000a4d, + 0x99e8: 0xe0000ae5, 0x99e9: 0xe0000adf, 0x99ea: 0xe0000af1, 0x99eb: 0xe0000b1d, + 0x99ec: 0xe0000c28, 0x99ed: 0xe0000c22, 0x99ee: 0xe0000c34, 0x99ef: 0xe0000c40, + 0x99f0: 0x402c6221, 0x99f1: 0xe0000d60, 0x99f2: 0xe0000d97, 0x99f3: 0xe0000d91, + 0x99f4: 0xe0000da3, 0x99f5: 0x40321023, 0x99f6: 0x40321020, 0x99f7: 0x40093c20, + 0x99f8: 0x40321021, 0x99f9: 0xe0000fde, 0x99fa: 0xe0000fd8, 0x99fb: 0xe0000fea, + 0x99fc: 0x40310021, 0x99fd: 0xe00010ff, 0x99fe: 0xe0003803, 0x99ff: 0xe0001114, + // Block 0x268, offset 0x9a00 + 0x9a00: 0xe0000983, 0x9a01: 0xe0000980, 0x9a02: 0xe00008fb, 0x9a03: 0xe00008f8, + 0x9a04: 0xe000097d, 0x9a05: 0xe000097a, 0x9a06: 0xe0000a38, 0x9a07: 0xe0000a35, + 0x9a08: 0xe0000a3e, 0x9a09: 0xe0000a3b, 0x9a0a: 0xe0000a4a, 0x9a0b: 0xe0000a47, + 0x9a0c: 0xe0000a44, 0x9a0d: 0xe0000a41, 0x9a0e: 0xe0000a86, 0x9a0f: 0xe0000a83, + 0x9a10: 0x002c62c3, 0x9a11: 0x402c6222, 0x9a12: 0xe0000b46, 0x9a13: 0xe0000b43, + 0x9a14: 0xe0000aee, 0x9a15: 0xe0000aeb, 0x9a16: 0xe0000b2c, 0x9a17: 0xe0000b29, + 0x9a18: 0xe0000b40, 0x9a19: 0xe0000b3d, 0x9a1a: 0xe0000b1a, 0x9a1b: 0xe0000b17, + 0x9a1c: 0xe0000bb8, 0x9a1d: 0xe0000bb5, 0x9a1e: 0xe0000bb2, 0x9a1f: 0xe0000baf, + 0x9a20: 0xe0000bc4, 0x9a21: 0xe0000bc1, 0x9a22: 0xe0000bca, 0x9a23: 0xe0000bc7, + 0x9a24: 0xe0000bee, 0x9a25: 0xe0000beb, 0x9a26: 0xe0000c1b, 0x9a27: 0xe0000c18, + 0x9a28: 0xe0000c51, 0x9a29: 0xe0000c4e, 0x9a2a: 0xe0000c60, 0x9a2b: 0xe0000c5d, + 0x9a2c: 0xe0000c31, 0x9a2d: 0xe0000c2e, 0x9a2e: 0xe0000c5a, 0x9a2f: 0xe0000c57, + 0x9a30: 0xe0000c54, 0x9a31: 0x402da220, 0x9a32: 0xf0000a0a, 0x9a33: 0xf0000404, + 0x9a34: 0xe0000c8a, 0x9a35: 0xe0000c87, 0x9a36: 0xe0000c9f, 0x9a37: 0xe0000c9c, + 0x9a38: 0x402f7220, 0x9a39: 0xe0000ccc, 0x9a3a: 0xe0000cc9, 0x9a3b: 0xe0000cd8, + 0x9a3c: 0xe0000cd5, 0x9a3d: 0xe0000cd2, 0x9a3e: 0xe0000ccf, 0x9a3f: 0xe0000d04, + // Block 0x269, offset 0x9a40 + 0x9a40: 0xe0000cfe, 0x9a41: 0xe0000cf8, 0x9a42: 0xe0000cf5, 0x9a43: 0xe0000d51, + 0x9a44: 0xe0000d4e, 0x9a45: 0xe0000d6f, 0x9a46: 0xe0000d6c, 0x9a47: 0xe0000d5d, + 0x9a48: 0xe0000d5a, 0x9a49: 0xf0000404, 0x9a4a: 0x002e9ea3, 0x9a4b: 0x402e9e21, + 0x9a4c: 0xe0000e2e, 0x9a4d: 0xe0000e2b, 0x9a4e: 0xe0000da0, 0x9a4f: 0xe0000d9d, + 0x9a50: 0x003210c3, 0x9a51: 0x40321022, 0x9a52: 0x00321103, 0x9a53: 0x40321024, + 0x9a54: 0xe0000eca, 0x9a55: 0xe0000ec7, 0x9a56: 0xe0000edc, 0x9a57: 0xe0000ed9, + 0x9a58: 0xe0000ed0, 0x9a59: 0xe0000ecd, 0x9a5a: 0xe0000f1f, 0x9a5b: 0xe0000f1c, + 0x9a5c: 0xe0000f2d, 0x9a5d: 0xe0000f2a, 0x9a5e: 0xe0000f47, 0x9a5f: 0xe0000f44, + 0x9a60: 0xe0000f33, 0x9a61: 0xe0000f30, 0x9a62: 0xe0000f99, 0x9a63: 0xe0000f96, + 0x9a64: 0xe0000f8a, 0x9a65: 0xe0000f87, 0x9a66: 0x00303688, 0x9a67: 0x40303620, + 0x9a68: 0xe000102b, 0x9a69: 0xe0001028, 0x9a6a: 0xe000103f, 0x9a6b: 0xe000103c, + 0x9a6c: 0xe0000fe7, 0x9a6d: 0xe0000fe4, 0x9a6e: 0xe0000ff9, 0x9a6f: 0xe0000ff6, + 0x9a70: 0x003100c3, 0x9a71: 0x40310022, 0x9a72: 0xe0001039, 0x9a73: 0xe0001036, + 0x9a74: 0xe0003636, 0x9a75: 0xe0003633, 0x9a76: 0xe000110e, 0x9a77: 0xe000110b, + 0x9a78: 0xe0001117, 0x9a79: 0xe000113b, 0x9a7a: 0xe0001138, 0x9a7b: 0xe000114d, + 0x9a7c: 0xe000114a, 0x9a7d: 0xe0001147, 0x9a7e: 0xe0001144, 0x9a7f: 0xe0000f64, + // Block 0x26a, offset 0x9a80 + 0x9a80: 0x40321220, 0x9a81: 0x40321a20, 0x9a82: 0x40322220, 0x9a83: 0x40322a20, + 0x9a84: 0xe0000ad5, 0x9a85: 0xe0000ad1, 0x9a86: 0xe0000acd, 0x9a87: 0xf0000a0a, + 0x9a88: 0xf000040a, 0x9a89: 0xf0000404, 0x9a8a: 0xf0000a0a, 0x9a8b: 0xf000040a, + 0x9a8c: 0xf0000404, 0x9a8d: 0xe0000947, 0x9a8e: 0xe0000944, 0x9a8f: 0xe0000c3d, + 0x9a90: 0xe0000c3a, 0x9a91: 0xe0000dcc, 0x9a92: 0xe0000dc9, 0x9a93: 0xe0000ff3, + 0x9a94: 0xe0000ff0, 0x9a95: 0xe000298b, 0x9a96: 0xe0002988, 0x9a97: 0xe0002979, + 0x9a98: 0xe0002976, 0x9a99: 0xe0002985, 0x9a9a: 0xe0002982, 0x9a9b: 0xe000297f, + 0x9a9c: 0xe000297c, 0x9a9d: 0x402cae20, 0x9a9e: 0xe00037e8, 0x9a9f: 0xe00037e5, + 0x9aa0: 0xe0000976, 0x9aa1: 0xe0000972, 0x9aa2: 0xe00029af, 0x9aa3: 0xe00029ac, + 0x9aa4: 0x002d3a88, 0x9aa5: 0x402d3a20, 0x9aa6: 0xe0000bbe, 0x9aa7: 0xe0000bbb, + 0x9aa8: 0xe0000c99, 0x9aa9: 0xe0000c96, 0x9aaa: 0xe0000e20, 0x9aab: 0xe0000e1d, + 0x9aac: 0xe0000e27, 0x9aad: 0xe0000e23, 0x9aae: 0xe0001162, 0x9aaf: 0xe000115f, + 0x9ab0: 0xe0000c8d, 0x9ab1: 0xf0000a0a, 0x9ab2: 0xf000040a, 0x9ab3: 0xf0000404, + 0x9ab4: 0xe0000bac, 0x9ab5: 0xe0000ba9, 0x9ab6: 0x002d7888, 0x9ab7: 0x00319488, + 0x9ab8: 0xe0000d57, 0x9ab9: 0xe0000d54, 0x9aba: 0xe0002991, 0x9abb: 0xe000298e, + 0x9abc: 0xe00037ee, 0x9abd: 0xe00037eb, 0x9abe: 0xe0003800, 0x9abf: 0xe00037fd, + // Block 0x26b, offset 0x9ac0 + 0x9ac0: 0xe000098f, 0x9ac1: 0xe000098c, 0x9ac2: 0xe0000995, 0x9ac3: 0xe0000992, + 0x9ac4: 0xe0000b62, 0x9ac5: 0xe0000b5f, 0x9ac6: 0xe0000b68, 0x9ac7: 0xe0000b65, + 0x9ac8: 0xe0000c6c, 0x9ac9: 0xe0000c69, 0x9aca: 0xe0000c72, 0x9acb: 0xe0000c6f, + 0x9acc: 0xe0000e4a, 0x9acd: 0xe0000e47, 0x9ace: 0xe0000e50, 0x9acf: 0xe0000e4d, + 0x9ad0: 0xe0000ee8, 0x9ad1: 0xe0000ee5, 0x9ad2: 0xe0000eee, 0x9ad3: 0xe0000eeb, + 0x9ad4: 0xe0001053, 0x9ad5: 0xe0001050, 0x9ad6: 0xe0001059, 0x9ad7: 0xe0001056, + 0x9ad8: 0xe0000f61, 0x9ad9: 0xe0000f5e, 0x9ada: 0xe0000fa5, 0x9adb: 0xe0000fa2, + 0x9adc: 0x00312288, 0x9add: 0x40312220, 0x9ade: 0xe0000bf4, 0x9adf: 0xe0000bf1, + 0x9ae0: 0x002ebc88, 0x9ae1: 0x402c8c20, 0x9ae2: 0x002f2288, 0x9ae3: 0x402f2220, + 0x9ae4: 0x00314088, 0x9ae5: 0x40314020, 0x9ae6: 0xe000096f, 0x9ae7: 0xe000096c, + 0x9ae8: 0xe0000b32, 0x9ae9: 0xe0000b2f, 0x9aea: 0xe00037fa, 0x9aeb: 0xe00037f7, + 0x9aec: 0xe000381e, 0x9aed: 0xe000381b, 0x9aee: 0xe0000e04, 0x9aef: 0xe0000e01, + 0x9af0: 0xe0000e0b, 0x9af1: 0xe0000e07, 0x9af2: 0xe0001129, 0x9af3: 0xe0001126, + 0x9af4: 0x402e5e20, 0x9af5: 0x402ed020, 0x9af6: 0x40305a20, 0x9af7: 0x402dd420, + 0x9af8: 0xe0000abf, 0x9af9: 0xe0000ec4, 0x9afa: 0x002be888, 0x9afb: 0x002c4488, + 0x9afc: 0x402c4420, 0x9afd: 0x002e3888, 0x9afe: 0x00303e88, 0x9aff: 0x402ffc20, + // Block 0x26c, offset 0x9b00 + 0x9b00: 0xe0000d24, 0x9b01: 0xe0000d21, 0x9b02: 0xe0000d2a, 0x9b03: 0xe0000d27, + 0x9b04: 0xe0000d69, 0x9b05: 0xe0000d66, 0x9b06: 0xe0000d7b, 0x9b07: 0xe0000d78, + 0x9b08: 0xe0000d87, 0x9b09: 0xe0000d84, 0x9b0a: 0xe0000d81, 0x9b0b: 0xe0000d7e, + 0x9b0c: 0xe000380c, 0x9b0d: 0xe0003809, 0x9b0e: 0xe0003818, 0x9b0f: 0xe0003815, + 0x9b10: 0xe0000e3d, 0x9b11: 0xe0000e39, 0x9b12: 0xe0000e35, 0x9b13: 0xe0000e31, + 0x9b14: 0xe0000ea7, 0x9b15: 0xe0000ea4, 0x9b16: 0xe0000ead, 0x9b17: 0xe0000eaa, + 0x9b18: 0xe0000ed6, 0x9b19: 0xe0000ed3, 0x9b1a: 0xe0000ef4, 0x9b1b: 0xe0000ef1, + 0x9b1c: 0xe0000efb, 0x9b1d: 0xe0000ef7, 0x9b1e: 0xe0000f02, 0x9b1f: 0xe0000eff, + 0x9b20: 0xe0000f41, 0x9b21: 0xe0000f3e, 0x9b22: 0xe0000f53, 0x9b23: 0xe0000f50, + 0x9b24: 0xe0000f26, 0x9b25: 0xe0000f22, 0x9b26: 0xe0000f3a, 0x9b27: 0xe0000f36, + 0x9b28: 0xe0000f5a, 0x9b29: 0xe0000f56, 0x9b2a: 0xe0000f93, 0x9b2b: 0xe0000f90, + 0x9b2c: 0xe0000f9f, 0x9b2d: 0xe0000f9c, 0x9b2e: 0xe0000fb1, 0x9b2f: 0xe0000fae, + 0x9b30: 0xe0000fab, 0x9b31: 0xe0000fa8, 0x9b32: 0xe0001093, 0x9b33: 0xe0001090, + 0x9b34: 0xe000109f, 0x9b35: 0xe000109c, 0x9b36: 0xe0001099, 0x9b37: 0xe0001096, + 0x9b38: 0xe0001032, 0x9b39: 0xe000102e, 0x9b3a: 0xe000298b, 0x9b3b: 0xe0002988, + 0x9b3c: 0xe00010a9, 0x9b3d: 0xe00010a6, 0x9b3e: 0xe00010af, 0x9b3f: 0xe00010ac, + // Block 0x26d, offset 0x9b40 + 0x9b40: 0xe0003630, 0x9b41: 0xe000362d, 0x9b42: 0xe000362a, 0x9b43: 0xe0003627, + 0x9b44: 0xe000363f, 0x9b45: 0xe000363c, 0x9b46: 0xe0003645, 0x9b47: 0xe0003642, + 0x9b48: 0xe000364b, 0x9b49: 0xe0003648, 0x9b4a: 0xe00010fc, 0x9b4b: 0xe00010f9, + 0x9b4c: 0xe00010f6, 0x9b4d: 0xe00010f3, 0x9b4e: 0xe0001123, 0x9b4f: 0xe0001120, + 0x9b50: 0xe0001141, 0x9b51: 0xe000113e, 0x9b52: 0xe0001153, 0x9b53: 0xe0001150, + 0x9b54: 0xe0001159, 0x9b55: 0xe0001156, 0x9b56: 0xe0000c15, 0x9b57: 0xe0000f8d, + 0x9b58: 0xe0003639, 0x9b59: 0xe0001111, 0x9b5a: 0xf0000404, 0x9b5b: 0xe0000f70, + 0x9b5c: 0x40300420, 0x9b5d: 0x40300620, 0x9b5e: 0xe0000f7f, 0x9b5f: 0x402c9620, + 0x9b60: 0xe000099b, 0x9b61: 0xe0000998, 0x9b62: 0xe0000989, 0x9b63: 0xe0000986, + 0x9b64: 0xe0000928, 0x9b65: 0xe0000924, 0x9b66: 0xe0000930, 0x9b67: 0xe000092c, + 0x9b68: 0xe0000940, 0x9b69: 0xe000093c, 0x9b6a: 0xe0000938, 0x9b6b: 0xe0000934, + 0x9b6c: 0xe00009aa, 0x9b6d: 0xe00009a6, 0x9b6e: 0xe0000902, 0x9b6f: 0xe00008fe, + 0x9b70: 0xe000090a, 0x9b71: 0xe0000906, 0x9b72: 0xe000091a, 0x9b73: 0xe0000916, + 0x9b74: 0xe0000912, 0x9b75: 0xe000090e, 0x9b76: 0xe00009a2, 0x9b77: 0xe000099e, + 0x9b78: 0xe0000b6e, 0x9b79: 0xe0000b6b, 0x9b7a: 0xe0000b5c, 0x9b7b: 0xe0000b59, + 0x9b7c: 0xe0000b26, 0x9b7d: 0xe0000b23, 0x9b7e: 0xe0000afb, 0x9b7f: 0xe0000af7, + // Block 0x26e, offset 0x9b80 + 0x9b80: 0xe0000b03, 0x9b81: 0xe0000aff, 0x9b82: 0xe0000b13, 0x9b83: 0xe0000b0f, + 0x9b84: 0xe0000b0b, 0x9b85: 0xe0000b07, 0x9b86: 0xe0000b75, 0x9b87: 0xe0000b71, + 0x9b88: 0xe0000c66, 0x9b89: 0xe0000c63, 0x9b8a: 0xe0000c78, 0x9b8b: 0xe0000c75, + 0x9b8c: 0xe0000e84, 0x9b8d: 0xe0000e81, 0x9b8e: 0xe0000e44, 0x9b8f: 0xe0000e41, + 0x9b90: 0xe0000dad, 0x9b91: 0xe0000da9, 0x9b92: 0xe0000db5, 0x9b93: 0xe0000db1, + 0x9b94: 0xe0000dc5, 0x9b95: 0xe0000dc1, 0x9b96: 0xe0003812, 0x9b97: 0xe000380f, + 0x9b98: 0xe0000e8b, 0x9b99: 0xe0000e87, 0x9b9a: 0xe0000e5d, 0x9b9b: 0xe0000e59, + 0x9b9c: 0xe0000e65, 0x9b9d: 0xe0000e61, 0x9b9e: 0xe0000e75, 0x9b9f: 0xe0000e71, + 0x9ba0: 0xe0003824, 0x9ba1: 0xe0003821, 0x9ba2: 0xe0000e7d, 0x9ba3: 0xe0000e79, + 0x9ba4: 0xe000108d, 0x9ba5: 0xe000108a, 0x9ba6: 0xe000104d, 0x9ba7: 0xe000104a, + 0x9ba8: 0xe0001066, 0x9ba9: 0xe0001062, 0x9baa: 0xe000106e, 0x9bab: 0xe000106a, + 0x9bac: 0xe000107e, 0x9bad: 0xe000107a, 0x9bae: 0xe0001076, 0x9baf: 0xe0001072, + 0x9bb0: 0xe0001086, 0x9bb1: 0xe0001082, 0x9bb2: 0xe0001108, 0x9bb3: 0xe0001105, + 0x9bb4: 0xe0001135, 0x9bb5: 0xe0001132, 0x9bb6: 0xe000112f, 0x9bb7: 0xe000112c, + 0x9bb8: 0xe000111d, 0x9bb9: 0xe000111a, 0x9bba: 0xe0000d0a, 0x9bbb: 0xe0000d07, + 0x9bbc: 0x0030d888, 0x9bbd: 0x4030d820, 0x9bbe: 0x00312088, 0x9bbf: 0x40312020, + // Block 0x26f, offset 0x9bc0 + 0x9bc0: 0xe0000024, 0x9bc1: 0xe0000029, 0x9bc2: 0xe000002e, 0x9bc3: 0xe0000033, + 0x9bc4: 0xe0000038, 0x9bc5: 0xe000003d, 0x9bc6: 0xe0000042, 0x9bc7: 0xe0000047, + 0x9bc8: 0xf0001f04, 0x9bc9: 0xf0001f04, 0x9bca: 0xf0001f04, 0x9bcb: 0xf0001f04, + 0x9bcc: 0xf0001f04, 0x9bcd: 0xf0001f04, 0x9bce: 0xf0001f04, 0x9bcf: 0xf0001f04, + 0x9bd0: 0xf0001f04, 0x9bd1: 0xf0000404, 0x9bd2: 0xf0000404, 0x9bd3: 0xf0000404, + 0x9bd4: 0xf0000404, 0x9bd5: 0xf0000404, 0x9bd6: 0xf0000404, 0x9bd7: 0xf0000404, + 0x9bd8: 0xf0000404, 0x9bd9: 0xf0000404, 0x9bda: 0xf0000404, 0x9bdb: 0xf0000404, + 0x9bdc: 0xf0000404, 0x9bdd: 0xf0000404, 0x9bde: 0xf0000404, 0x9bdf: 0xf0000404, + 0x9be0: 0xf0000404, 0x9be1: 0xf0000404, 0x9be2: 0xf0000404, 0x9be3: 0xf0000404, + 0x9be4: 0xf0000404, 0x9be5: 0xf0000404, 0x9be6: 0xf0000404, 0x9be7: 0xf0000404, + 0x9be8: 0xf0000404, 0x9be9: 0xf0000404, 0x9bea: 0xf0000404, 0x9beb: 0xf0000404, + 0x9bec: 0xf0000404, 0x9bed: 0xf0000404, 0x9bee: 0xf0000404, 0x9bef: 0xf0000404, + 0x9bf0: 0xf0000404, 0x9bf1: 0xf0000404, 0x9bf2: 0xe0002c46, 0x9bf3: 0xf0000404, + 0x9bf4: 0xf0000404, 0x9bf5: 0xf0000404, 0x9bf6: 0x002bde8c, 0x9bf7: 0x002c0a8c, + 0x9bf8: 0x002c3a8c, 0x9bf9: 0x002c628c, 0x9bfa: 0x002c988c, 0x9bfb: 0x002d088c, + 0x9bfc: 0x002d228c, 0x9bfd: 0x002d688c, 0x9bfe: 0x002d9a8c, 0x9bff: 0x002dcc8c, + // Block 0x270, offset 0x9c00 + 0x9c00: 0xf0001d1c, 0x9c01: 0xf0001d1c, 0x9c02: 0xf0001d1c, 0x9c03: 0xf0001d1c, + 0x9c04: 0xf0001d1c, 0x9c05: 0xf0001d1d, 0x9c06: 0xf0001d1d, 0x9c07: 0xf0001d1d, + 0x9c08: 0xe0000a6b, 0x9c09: 0xe0000cb4, 0x9c0a: 0xf0001d1c, 0x9c0b: 0xf0001d1c, + 0x9c0c: 0xf0001d1c, 0x9c0d: 0xf0001c1c, 0x9c0e: 0xf0001c1c, 0x9c0f: 0xf0001c1c, + 0x9c10: 0xf0001c1d, 0x9c11: 0xe0000cb9, 0x9c12: 0xe0000d36, 0x9c13: 0xe0000be3, + 0x9c14: 0xe0000fc5, 0x9c15: 0xf0001c1c, 0x9c16: 0xf0001c1c, 0x9c17: 0xf0001c1c, + 0x9c18: 0xf0001c1c, 0x9c19: 0xf0001c1c, 0x9c1a: 0xf0001c1c, 0x9c1b: 0xf0001c1c, + 0x9c1c: 0xf0001c1c, 0x9c1d: 0xf0001c1c, 0x9c1e: 0xf0001c1c, 0x9c1f: 0xe0000d3e, + 0x9c20: 0xe0000a72, 0x9c21: 0xf0001c1c, 0x9c22: 0xe0000cbd, 0x9c23: 0xe0000d42, + 0x9c24: 0xe0000a76, 0x9c25: 0xf0001c1c, 0x9c26: 0xe0000cc1, 0x9c27: 0xe0000d2d, + 0x9c28: 0xe0000d31, 0x9c29: 0xf0001c1d, 0x9c2a: 0xe0000cc5, 0x9c2b: 0xe0000d4a, + 0x9c2c: 0xe0000be7, 0x9c2d: 0xe0000f0b, 0x9c2e: 0xe0000f0f, 0x9c2f: 0xe0000f15, + 0x9c30: 0xf0001c1c, 0x9c31: 0xf0001c1c, 0x9c32: 0xf0001c1c, 0x9c33: 0xf0001c1c, + 0x9c34: 0xf0001d1c, 0x9c35: 0xf0001d1c, 0x9c36: 0xf0001d1c, 0x9c37: 0xf0001d1c, + 0x9c38: 0xf0001d1c, 0x9c39: 0xf0001d1d, 0x9c3a: 0xe00035df, 0x9c3b: 0xe00035cd, + 0x9c3c: 0xe0003600, 0x9c3d: 0xe00035af, 0x9c3e: 0xe0002812, 0x9c3f: 0xe00035b2, + // Block 0x271, offset 0x9c40 + 0x9c40: 0xf0001f04, 0x9c41: 0xf0001f04, 0x9c42: 0xf0001f04, 0x9c43: 0xf0001f04, + 0x9c44: 0xf0001f04, 0x9c45: 0xf0001f04, 0x9c46: 0xf0001f04, 0x9c47: 0xf0001f04, + 0x9c48: 0xf0001f04, 0x9c49: 0xf0001f04, 0x9c4a: 0xf0001f04, + 0x9c50: 0xf0000a04, 0x9c51: 0xf0000a04, 0x9c52: 0xf0000a04, 0x9c53: 0xf0000a04, + 0x9c54: 0xf0000a04, 0x9c55: 0xf0000a04, 0x9c56: 0xf0000a04, 0x9c57: 0xf0000a04, + 0x9c58: 0xf0000a04, 0x9c59: 0xf0000a04, 0x9c5a: 0xf0000a04, 0x9c5b: 0xf0000a04, + 0x9c5c: 0xf0000a04, 0x9c5d: 0xf0000a04, 0x9c5e: 0xf0000a04, 0x9c5f: 0xf0000a04, + 0x9c60: 0xf0000a04, 0x9c61: 0xf0000a04, 0x9c62: 0xf0000a04, 0x9c63: 0xf0000a04, + 0x9c64: 0xf0000a04, 0x9c65: 0xf0000a04, 0x9c66: 0xe0002c4a, 0x9c67: 0xf0000a04, + 0x9c68: 0xf0000a04, 0x9c69: 0xf0000a04, 0x9c6a: 0xf0000a04, 0x9c6b: 0x002c3a8c, + 0x9c6c: 0x002f7a8c, 0x9c6d: 0xf0000c0c, 0x9c6e: 0xe00035e8, + 0x9c70: 0x002bde9d, 0x9c71: 0x002c0a9d, 0x9c72: 0x002c3a9d, 0x9c73: 0x002c629d, + 0x9c74: 0x002c989d, 0x9c75: 0x002d089d, 0x9c76: 0x002d229d, 0x9c77: 0x002d689d, + 0x9c78: 0x002d9a9d, 0x9c79: 0x002dcc9d, 0x9c7a: 0x002dfe9d, 0x9c7b: 0x002e229d, + 0x9c7c: 0x002e829d, 0x9c7d: 0x002e9e9d, 0x9c7e: 0x002ee29d, 0x9c7f: 0x002f2c9d, + // Block 0x272, offset 0x9c80 + 0x9c80: 0xa0000000, 0x9c81: 0xa0000000, 0x9c82: 0xa0000000, 0x9c83: 0xa0000000, + 0x9c84: 0xa0000000, 0x9c85: 0xa0000000, 0x9c86: 0xa0000000, 0x9c87: 0xa0000000, + 0x9c88: 0xa0000000, 0x9c89: 0x40020020, 0x9c8a: 0x40020220, 0x9c8b: 0x40020420, + 0x9c8c: 0x40020620, 0x9c8d: 0x40020820, 0x9c8e: 0xa0000000, 0x9c8f: 0xa0000000, + 0x9c90: 0xa0000000, 0x9c91: 0xa0000000, 0x9c92: 0xa0000000, 0x9c93: 0xa0000000, + 0x9c94: 0xa0000000, 0x9c95: 0xa0000000, 0x9c96: 0xa0000000, 0x9c97: 0xa0000000, + 0x9c98: 0xa0000000, 0x9c99: 0xa0000000, 0x9c9a: 0xa0000000, 0x9c9b: 0xa0000000, + 0x9c9c: 0xa0000000, 0x9c9d: 0xa0000000, 0x9c9e: 0xa0000000, 0x9c9f: 0xa0000000, + 0x9ca0: 0x40021220, 0x9ca1: 0x4002ba20, 0x9ca2: 0x4003e020, 0x9ca3: 0x4004ea20, + 0x9ca4: 0x4027de20, 0x9ca5: 0x4004ec20, 0x9ca6: 0x4004e620, 0x9ca7: 0x4003d220, + 0x9ca8: 0x4003f420, 0x9ca9: 0x4003f620, 0x9caa: 0x4004d820, 0x9cab: 0x40093820, + 0x9cac: 0x40024020, 0x9cad: 0x40021a20, 0x9cae: 0x4002e420, 0x9caf: 0x4004e220, + 0x9cb0: 0x4029cc20, 0x9cb1: 0x4029ce20, 0x9cb2: 0x4029d020, 0x9cb3: 0x4029d220, + 0x9cb4: 0x4029d420, 0x9cb5: 0x4029d620, 0x9cb6: 0x4029d820, 0x9cb7: 0x4029da20, + 0x9cb8: 0x4029dc20, 0x9cb9: 0x4029de20, 0x9cba: 0x40026c20, 0x9cbb: 0x40026220, + 0x9cbc: 0x40094020, 0x9cbd: 0x40094220, 0x9cbe: 0x40094420, 0x9cbf: 0x4002c420, + // Block 0x273, offset 0x9cc0 + 0x9cc0: 0x4004d620, 0x9cc1: 0x002bde88, 0x9cc2: 0x002c0a88, 0x9cc3: 0x002c3a88, + 0x9cc4: 0x002c6288, 0x9cc5: 0x002c9888, 0x9cc6: 0x002d0888, 0x9cc7: 0x002d2288, + 0x9cc8: 0x002d6888, 0x9cc9: 0x002d9a88, 0x9cca: 0x002dcc88, 0x9ccb: 0x002dfe88, + 0x9ccc: 0xc0030002, 0x9ccd: 0x002e8288, 0x9cce: 0xc5852853, 0x9ccf: 0x002ee288, + 0x9cd0: 0x002f2c88, 0x9cd1: 0x002f5688, 0x9cd2: 0x002f7a88, 0x9cd3: 0x002fe688, + 0x9cd4: 0x00302c88, 0x9cd5: 0x00306c88, 0x9cd6: 0x0030be88, 0x9cd7: 0x0030e288, + 0x9cd8: 0x0030f688, 0x9cd9: 0x00310088, 0x9cda: 0x00312a88, 0x9cdb: 0x4003f820, + 0x9cdc: 0x4004e420, 0x9cdd: 0x4003fa20, 0x9cde: 0x40062420, 0x9cdf: 0x40021620, + 0x9ce0: 0x40061e20, 0x9ce1: 0x402bde20, 0x9ce2: 0x402c0a20, 0x9ce3: 0x402c3a20, + 0x9ce4: 0x402c6220, 0x9ce5: 0x402c9820, 0x9ce6: 0x402d0820, 0x9ce7: 0x402d2220, + 0x9ce8: 0x402d6820, 0x9ce9: 0x402d9a20, 0x9cea: 0x402dcc20, 0x9ceb: 0x402dfe20, + 0x9cec: 0xc0000002, 0x9ced: 0x402e8220, 0x9cee: 0xc5822822, 0x9cef: 0x402ee220, + 0x9cf0: 0x402f2c20, 0x9cf1: 0x402f5620, 0x9cf2: 0x402f7a20, 0x9cf3: 0x402fe620, + 0x9cf4: 0x40302c20, 0x9cf5: 0x40306c20, 0x9cf6: 0x4030be20, 0x9cf7: 0x4030e220, + 0x9cf8: 0x4030f620, 0x9cf9: 0x40310020, 0x9cfa: 0x40312a20, 0x9cfb: 0x4003fc20, + 0x9cfc: 0x40094820, 0x9cfd: 0x4003fe20, 0x9cfe: 0x40094c20, 0x9cff: 0xa0000000, + // Block 0x274, offset 0x9d00 + 0x9d01: 0x40417021, 0x9d02: 0x40417020, 0x9d03: 0x40417220, + 0x9d05: 0x40417020, 0x9d06: 0x40417220, 0x9d07: 0x40417420, + 0x9d08: 0x40417620, 0x9d09: 0x40417820, 0x9d0a: 0x40417a20, 0x9d0b: 0x40417c20, + 0x9d0c: 0x40418020, 0x9d0d: 0x40418420, 0x9d0f: 0x40418620, + 0x9d10: 0x40418820, 0x9d11: 0x40418a20, 0x9d13: 0x40418c20, + 0x9d14: 0x40418e20, 0x9d15: 0x40419020, 0x9d16: 0x40419220, 0x9d17: 0x40419420, + 0x9d18: 0x40419620, 0x9d19: 0x40419820, 0x9d1a: 0x40419a20, 0x9d1b: 0x40419c20, + 0x9d1c: 0x40419e20, 0x9d1d: 0x4041a020, 0x9d1e: 0x4041a220, 0x9d1f: 0x4041a420, + 0x9d20: 0x4041a620, 0x9d21: 0x4041a820, 0x9d22: 0x4041aa20, 0x9d23: 0x4041ac20, + 0x9d24: 0x4041ae20, 0x9d25: 0x4041b020, 0x9d26: 0x4041b220, 0x9d27: 0x4041b420, + 0x9d28: 0x4041b620, 0x9d2a: 0x4041b820, 0x9d2b: 0x4041ba20, + 0x9d2c: 0x4041bc20, 0x9d2d: 0x4041be20, 0x9d2e: 0x4041c020, 0x9d2f: 0x4041c220, + 0x9d30: 0x4041c420, 0x9d32: 0x4041c620, 0x9d33: 0x4041d220, + 0x9d35: 0x4041c820, 0x9d36: 0x4041ca20, 0x9d37: 0x4041cc20, + 0x9d38: 0x4041ce20, 0x9d39: 0x4041d020, + 0x9d3c: 0xa070f102, 0x9d3d: 0x4041d420, 0x9d3e: 0x4041d620, 0x9d3f: 0x4041d820, + // Block 0x275, offset 0x9d40 + 0x9d40: 0xa0000000, 0x9d41: 0xa0000000, 0x9d42: 0xa0000000, 0x9d43: 0xa0000000, + 0x9d44: 0xa0000000, 0x9d45: 0xa0000000, 0x9d46: 0xa0000000, 0x9d47: 0xa0000000, + 0x9d48: 0xa0000000, 0x9d49: 0x40020020, 0x9d4a: 0x40020220, 0x9d4b: 0x40020420, + 0x9d4c: 0x40020620, 0x9d4d: 0x40020820, 0x9d4e: 0xa0000000, 0x9d4f: 0xa0000000, + 0x9d50: 0xa0000000, 0x9d51: 0xa0000000, 0x9d52: 0xa0000000, 0x9d53: 0xa0000000, + 0x9d54: 0xa0000000, 0x9d55: 0xa0000000, 0x9d56: 0xa0000000, 0x9d57: 0xa0000000, + 0x9d58: 0xa0000000, 0x9d59: 0xa0000000, 0x9d5a: 0xa0000000, 0x9d5b: 0xa0000000, + 0x9d5c: 0xa0000000, 0x9d5d: 0xa0000000, 0x9d5e: 0xa0000000, 0x9d5f: 0xa0000000, + 0x9d60: 0x40021220, 0x9d61: 0x4002ba20, 0x9d62: 0x4003e020, 0x9d63: 0x4004ea20, + 0x9d64: 0x4027de20, 0x9d65: 0x4004ec20, 0x9d66: 0x4004e620, 0x9d67: 0xc58f26f2, + 0x9d68: 0x4003f420, 0x9d69: 0x4003f620, 0x9d6a: 0x4004d820, 0x9d6b: 0x40093820, + 0x9d6c: 0x40024020, 0x9d6d: 0x40021a20, 0x9d6e: 0x4002e420, 0x9d6f: 0x4004e220, + 0x9d70: 0x4029cc20, 0x9d71: 0x4029ce20, 0x9d72: 0x4029d020, 0x9d73: 0x4029d220, + 0x9d74: 0x4029d420, 0x9d75: 0x4029d620, 0x9d76: 0x4029d820, 0x9d77: 0x4029da20, + 0x9d78: 0x4029dc20, 0x9d79: 0x4029de20, 0x9d7a: 0x40026c20, 0x9d7b: 0x40026220, + 0x9d7c: 0x40094020, 0x9d7d: 0x40094220, 0x9d7e: 0x40094420, 0x9d7f: 0x4002c420, + // Block 0x276, offset 0x9d80 + 0x9d80: 0x4004d620, 0x9d81: 0x002bde88, 0x9d82: 0x002c0a88, 0x9d83: 0x002c3a88, + 0x9d84: 0x002c6288, 0x9d85: 0x002c9888, 0x9d86: 0x002d0888, 0x9d87: 0x002d2288, + 0x9d88: 0x002d6888, 0x9d89: 0x002d9a88, 0x9d8a: 0x002dcc88, 0x9d8b: 0x002dfe88, + 0x9d8c: 0xc0030002, 0x9d8d: 0x002e8288, 0x9d8e: 0x002e9e88, 0x9d8f: 0x002ee288, + 0x9d90: 0x002f2c88, 0x9d91: 0x002f5688, 0x9d92: 0x002f7a88, 0x9d93: 0xc58909c2, + 0x9d94: 0xc38a2722, 0x9d95: 0x00306c88, 0x9d96: 0x0030be88, 0x9d97: 0x0030e288, + 0x9d98: 0x0030f688, 0x9d99: 0x00310088, 0x9d9a: 0x00312a88, 0x9d9b: 0x4003f820, + 0x9d9c: 0x4004e420, 0x9d9d: 0x4003fa20, 0x9d9e: 0x40062420, 0x9d9f: 0x40021620, + 0x9da0: 0x40061e20, 0x9da1: 0x402bde20, 0x9da2: 0x402c0a20, 0x9da3: 0x402c3a20, + 0x9da4: 0x402c6220, 0x9da5: 0x402c9820, 0x9da6: 0x402d0820, 0x9da7: 0x402d2220, + 0x9da8: 0x402d6820, 0x9da9: 0x402d9a20, 0x9daa: 0x402dcc20, 0x9dab: 0x402dfe20, + 0x9dac: 0xc0000002, 0x9dad: 0x402e8220, 0x9dae: 0x402e9e20, 0x9daf: 0x402ee220, + 0x9db0: 0x402f2c20, 0x9db1: 0x402f5620, 0x9db2: 0x402f7a20, 0x9db3: 0xc34109b1, + 0x9db4: 0xc3882711, 0x9db5: 0x40306c20, 0x9db6: 0x4030be20, 0x9db7: 0x4030e220, + 0x9db8: 0x4030f620, 0x9db9: 0x40310020, 0x9dba: 0x40312a20, 0x9dbb: 0x4003fc20, + 0x9dbc: 0x40094820, 0x9dbd: 0x4003fe20, 0x9dbe: 0x40094c20, 0x9dbf: 0xa0000000, + // Block 0x277, offset 0x9dc0 + 0x9dc0: 0x402c1a20, 0x9dc1: 0x002c0c83, 0x9dc2: 0x002c3288, 0x9dc3: 0x402c3220, + 0x9dc4: 0x0031c488, 0x9dc5: 0x4031c420, 0x9dc6: 0x002efa88, 0x9dc7: 0x002c4e88, + 0x9dc8: 0x402c4e20, 0x9dc9: 0x002c7288, 0x9dca: 0x002c6483, 0x9dcb: 0x002c8488, + 0x9dcc: 0x402c8420, 0x9dcd: 0xe000115c, 0x9dce: 0x002cae88, 0x9dcf: 0x002cb888, + 0x9dd0: 0x002cc288, 0x9dd1: 0x002d1688, 0x9dd2: 0x402d1620, 0x9dd3: 0x002d4488, + 0x9dd4: 0x002d5888, 0x9dd5: 0x402d7820, 0x9dd6: 0x002dc288, 0x9dd7: 0x002db688, + 0x9dd8: 0x002e0083, 0x9dd9: 0x402e0020, 0x9dda: 0x402e3820, 0x9ddb: 0x402e7220, + 0x9ddc: 0x0030a088, 0x9ddd: 0x002eb488, 0x9dde: 0x402ebc20, 0x9ddf: 0x002f1088, + 0x9de0: 0xe0000e56, 0x9de1: 0xe0000e53, 0x9de2: 0x002d6088, 0x9de3: 0x402d6020, + 0x9de4: 0x002f3e88, 0x9de5: 0x402f3e20, 0x9de6: 0x002f8288, 0x9de7: 0x0031b488, + 0x9de8: 0x4031b420, 0x9de9: 0x00300888, 0x9dea: 0x40301220, 0x9deb: 0x40304220, + 0x9dec: 0x00304a88, 0x9ded: 0x40304a20, 0x9dee: 0x00305288, 0x9def: 0xe000105f, + 0x9df0: 0xe000105c, 0x9df1: 0x0030b488, 0x9df2: 0x0030cc88, 0x9df3: 0x00310285, + 0x9df4: 0x40310220, 0x9df5: 0x00313488, 0x9df6: 0x40313420, 0x9df7: 0x00316488, + 0x9df8: 0x00316e88, 0x9df9: 0x40316e20, 0x9dfa: 0x40317820, 0x9dfb: 0x4031a620, + 0x9dfc: 0x0031bc88, 0x9dfd: 0x4031bc20, 0x9dfe: 0xe0000fc9, 0x9dff: 0x40319420, + // Block 0x278, offset 0x9e00 + 0x9e00: 0x40315820, 0x9e01: 0x0031d488, 0x9e02: 0x4031d420, 0x9e03: 0x002c1a88, + 0x9e04: 0x00307c88, 0x9e05: 0x0030da88, 0x9e06: 0x002ca288, 0x9e07: 0x402ca220, + 0x9e08: 0x002dde88, 0x9e09: 0x402dde20, 0x9e0a: 0x002f6a88, 0x9e0b: 0x402f6a20, + 0x9e0c: 0x002f8e88, 0x9e0d: 0x402f8e20, 0x9e0e: 0x00311088, 0x9e0f: 0x40311020, + 0x9e10: 0x402bf020, 0x9e11: 0x402bf820, 0x9e12: 0x402c0220, 0x9e13: 0x402c0c20, + 0x9e14: 0x402efa20, 0x9e15: 0x402c5620, 0x9e16: 0x402c7220, 0x9e17: 0x402c6420, + 0x9e18: 0x402ccc20, 0x9e19: 0x402cb820, 0x9e1a: 0x402cd420, 0x9e1b: 0x402cc220, + 0x9e1c: 0x402cdc20, 0x9e1d: 0x402ce820, 0x9e1e: 0x402cf020, 0x9e1f: 0x402dee20, + 0x9e20: 0x402d4420, 0x9e21: 0x402d2a20, 0x9e22: 0x402d3220, 0x9e23: 0x402d5820, + 0x9e24: 0x402d0020, 0x9e25: 0x40308820, 0x9e26: 0x402d8020, 0x9e27: 0x402d8e20, + 0x9e28: 0x402db620, 0x9e29: 0x402dc220, 0x9e2a: 0x402daa20, 0x9e2b: 0x402e4220, + 0x9e2c: 0x402e4a20, 0x9e2d: 0x402e5420, 0x9e2e: 0x402e6820, 0x9e2f: 0x4030a020, + 0x9e30: 0x4030ac20, 0x9e31: 0x402e9020, 0x9e32: 0x402eb420, 0x9e33: 0x402ec820, + 0x9e34: 0x402ea620, 0x9e35: 0x402f1020, 0x9e36: 0x402eee20, 0x9e37: 0x402f1a20, + 0x9e38: 0x402f4c20, 0x9e39: 0x402f9820, 0x9e3a: 0x402fa220, 0x9e3b: 0x402fac20, + 0x9e3c: 0x402fb620, 0x9e3d: 0x402fbe20, 0x9e3e: 0x402fc620, 0x9e3f: 0x402fd020, + // Block 0x279, offset 0x9e40 + 0x9e40: 0x402f8220, 0x9e41: 0x402fd820, 0x9e42: 0x402ff420, 0x9e43: 0x40300820, + 0x9e44: 0x402df620, 0x9e45: 0x40301a20, 0x9e46: 0x40302420, 0x9e47: 0x40306420, + 0x9e48: 0x40305220, 0x9e49: 0x40307c20, 0x9e4a: 0x4030b420, 0x9e4b: 0x4030cc20, + 0x9e4c: 0x4030da20, 0x9e4d: 0x4030ee20, 0x9e4e: 0x402e7a20, 0x9e4f: 0x40310820, + 0x9e50: 0x40314820, 0x9e51: 0x40315020, 0x9e52: 0x40316420, 0x9e53: 0x40318020, + 0x9e54: 0x4031cc20, 0x9e55: 0x4031e820, 0x9e56: 0x40320a20, 0x9e57: 0x40323220, + 0x9e58: 0x40323a20, 0x9e59: 0x402c1220, 0x9e5a: 0x402cf820, 0x9e5b: 0x402d4c20, + 0x9e5c: 0x402d7020, 0x9e5d: 0x402de620, 0x9e5e: 0x402e1a20, 0x9e5f: 0x402e2a20, + 0x9e60: 0x402f6220, 0x9e61: 0x4031fa20, 0x9e62: 0x40320220, 0x9e63: 0xe0000aca, + 0x9e64: 0xe0000adc, 0x9e65: 0xe0000ad9, 0x9e66: 0xe0000fcc, 0x9e67: 0xe0000fcf, + 0x9e68: 0xe0000fba, 0x9e69: 0xe0000ba1, 0x9e6a: 0xe0000d11, 0x9e6b: 0xe0000d18, + 0x9e6c: 0x40324220, 0x9e6d: 0x40324a20, 0x9e6e: 0x40309020, 0x9e6f: 0x40309820, + 0x9e70: 0x002d6894, 0x9e71: 0x002d8094, 0x9e72: 0x002dcc94, 0x9e73: 0x002f7a94, + 0x9e74: 0x002f9894, 0x9e75: 0x002fac94, 0x9e76: 0x002fd894, 0x9e77: 0x0030e294, + 0x9e78: 0x00310094, 0x9e79: 0x40064020, 0x9e7a: 0x40064420, 0x9e7b: 0x402d9620, + 0x9e7c: 0xc58c26f2, 0x9e7d: 0x402d9820, 0x9e7e: 0x4031e220, 0x9e7f: 0x4031f020, + // Block 0x27a, offset 0x9e80 + 0x9e80: 0xa0000000, 0x9e81: 0xa0000000, 0x9e82: 0xa0000000, 0x9e83: 0xa0000000, + 0x9e84: 0xa0000000, 0x9e85: 0xa0000000, 0x9e86: 0xa0000000, 0x9e87: 0xa0000000, + 0x9e88: 0xa0000000, 0x9e89: 0x40020020, 0x9e8a: 0x40020220, 0x9e8b: 0x40020420, + 0x9e8c: 0x40020620, 0x9e8d: 0x40020820, 0x9e8e: 0xa0000000, 0x9e8f: 0xa0000000, + 0x9e90: 0xa0000000, 0x9e91: 0xa0000000, 0x9e92: 0xa0000000, 0x9e93: 0xa0000000, + 0x9e94: 0xa0000000, 0x9e95: 0xa0000000, 0x9e96: 0xa0000000, 0x9e97: 0xa0000000, + 0x9e98: 0xa0000000, 0x9e99: 0xa0000000, 0x9e9a: 0xa0000000, 0x9e9b: 0xa0000000, + 0x9e9c: 0xa0000000, 0x9e9d: 0xa0000000, 0x9e9e: 0xa0000000, 0x9e9f: 0xa0000000, + 0x9ea0: 0x40021220, 0x9ea1: 0x4002ba20, 0x9ea2: 0x4003e020, 0x9ea3: 0x4004ea20, + 0x9ea4: 0x4027de20, 0x9ea5: 0x4004ec20, 0x9ea6: 0x4004e620, 0x9ea7: 0x4003d220, + 0x9ea8: 0x4003f420, 0x9ea9: 0x4003f620, 0x9eaa: 0x4004d820, 0x9eab: 0x40093820, + 0x9eac: 0x40024020, 0x9ead: 0x40021a20, 0x9eae: 0x4002e420, 0x9eaf: 0x4004e220, + 0x9eb0: 0x4029cc20, 0x9eb1: 0x4029ce20, 0x9eb2: 0x4029d020, 0x9eb3: 0x4029d220, + 0x9eb4: 0x4029d420, 0x9eb5: 0x4029d620, 0x9eb6: 0x4029d820, 0x9eb7: 0x4029da20, + 0x9eb8: 0x4029dc20, 0x9eb9: 0x4029de20, 0x9eba: 0x40026c20, 0x9ebb: 0x40026220, + 0x9ebc: 0x40094020, 0x9ebd: 0x40094220, 0x9ebe: 0x40094420, 0x9ebf: 0x4002c420, + // Block 0x27b, offset 0x9ec0 + 0x9ec0: 0x4004d620, 0x9ec1: 0x002bde83, 0x9ec2: 0x002c0a88, 0x9ec3: 0x002c3a88, + 0x9ec4: 0x002c6288, 0x9ec5: 0x002be083, 0x9ec6: 0x002d0888, 0x9ec7: 0x002d2288, + 0x9ec8: 0x002be883, 0x9ec9: 0x002be283, 0x9eca: 0x002dcc88, 0x9ecb: 0x002bea83, + 0x9ecc: 0xc5950002, 0x9ecd: 0x002bee83, 0x9ece: 0x002bf083, 0x9ecf: 0x002be483, + 0x9ed0: 0x002bf283, 0x9ed1: 0x002f5688, 0x9ed2: 0x002f7a88, 0x9ed3: 0x002fe688, + 0x9ed4: 0x00302c88, 0x9ed5: 0x002be683, 0x9ed6: 0x0030be88, 0x9ed7: 0x002bf483, + 0x9ed8: 0x0030f688, 0x9ed9: 0x00310088, 0x9eda: 0x00312a88, 0x9edb: 0x4003f820, + 0x9edc: 0x4004e420, 0x9edd: 0x4003fa20, 0x9ede: 0x40062420, 0x9edf: 0x40021620, + 0x9ee0: 0x40061e20, 0x9ee1: 0x402bde20, 0x9ee2: 0x402c0a20, 0x9ee3: 0x402c3a20, + 0x9ee4: 0x402c6220, 0x9ee5: 0x402be020, 0x9ee6: 0x402d0820, 0x9ee7: 0x402d2220, + 0x9ee8: 0x402be820, 0x9ee9: 0x402be220, 0x9eea: 0x402dcc20, 0x9eeb: 0x402bea20, + 0x9eec: 0xc5920002, 0x9eed: 0x402bee20, 0x9eee: 0x402bf020, 0x9eef: 0x402be420, + 0x9ef0: 0x402bf220, 0x9ef1: 0x402f5620, 0x9ef2: 0x402f7a20, 0x9ef3: 0x402fe620, + 0x9ef4: 0x40302c20, 0x9ef5: 0x402be620, 0x9ef6: 0x4030be20, 0x9ef7: 0x402bf420, + 0x9ef8: 0x4030f620, 0x9ef9: 0x40310020, 0x9efa: 0x40312a20, 0x9efb: 0x4003fc20, + 0x9efc: 0x40094820, 0x9efd: 0x4003fe20, 0x9efe: 0x40094c20, 0x9eff: 0xa0000000, + // Block 0x27c, offset 0x9f00 + 0x9f00: 0xe000382a, 0x9f01: 0xe0003827, 0x9f02: 0xe0003840, 0x9f03: 0xe0003864, + 0x9f04: 0xe000385d, 0x9f05: 0xe0003856, 0x9f06: 0xe00009dd, 0x9f07: 0xe0000a53, + 0x9f08: 0xe0003894, 0x9f09: 0xe000388e, 0x9f0a: 0xe00038a0, 0x9f0b: 0xe00038cc, + 0x9f0c: 0xe000393a, 0x9f0d: 0xe0003934, 0x9f0e: 0xe0003946, 0x9f0f: 0xe0003952, + 0x9f10: 0xe0000ab3, 0x9f11: 0xe0003be8, 0x9f12: 0xe0003999, 0x9f13: 0xe0003993, + 0x9f14: 0xe00039a5, 0x9f15: 0xe00039e5, 0x9f16: 0xe00039d1, 0x9f17: 0x40093e20, + 0x9f18: 0xe0000e12, 0x9f19: 0xe0003a89, 0x9f1a: 0xe0003a83, 0x9f1b: 0xe0003a95, + 0x9f1c: 0xe0003aa7, 0x9f1d: 0xe0001102, 0x9f1e: 0x00318888, 0x9f1f: 0xe0000f7b, + 0x9f20: 0xe00008f2, 0x9f21: 0xe00008ec, 0x9f22: 0xe000091e, 0x9f23: 0xe0000966, + 0x9f24: 0xe0000958, 0x9f25: 0xe000094a, 0x9f26: 0xe00009d5, 0x9f27: 0xe0000a4d, + 0x9f28: 0xe0003891, 0x9f29: 0xe000388b, 0x9f2a: 0xe000389d, 0x9f2b: 0xe00038c9, + 0x9f2c: 0xe0003937, 0x9f2d: 0xe0003931, 0x9f2e: 0xe0003943, 0x9f2f: 0xe000394f, + 0x9f30: 0xe0000aad, 0x9f31: 0xe0003be5, 0x9f32: 0xe0003996, 0x9f33: 0xe0003990, + 0x9f34: 0xe00039a2, 0x9f35: 0xe00039e2, 0x9f36: 0xe00039ce, 0x9f37: 0x40093c20, + 0x9f38: 0xe0000e0f, 0x9f39: 0xe0003a86, 0x9f3a: 0xe0003a80, 0x9f3b: 0xe0003a92, + 0x9f3c: 0xe0003aa4, 0x9f3d: 0xe00010ff, 0x9f3e: 0x40318820, 0x9f3f: 0xe0001114, + // Block 0x27d, offset 0x9f40 + 0x9f40: 0xe0003871, 0x9f41: 0xe0000980, 0x9f42: 0xe000382d, 0x9f43: 0xe00008f8, + 0x9f44: 0xe000386e, 0x9f45: 0xe000097a, 0x9f46: 0xe0000a38, 0x9f47: 0xe0000a35, + 0x9f48: 0xe0000a3e, 0x9f49: 0xe0000a3b, 0x9f4a: 0xe0000a4a, 0x9f4b: 0xe0000a47, + 0x9f4c: 0xe0000a44, 0x9f4d: 0xe0000a41, 0x9f4e: 0xe0000a86, 0x9f4f: 0xe0000a83, + 0x9f50: 0xe0000aaa, 0x9f51: 0xe0000aa7, 0x9f52: 0xe00038f2, 0x9f53: 0xe00038ef, + 0x9f54: 0xe000389a, 0x9f55: 0xe0003897, 0x9f56: 0xe00038d8, 0x9f57: 0xe00038d5, + 0x9f58: 0xe00038ec, 0x9f59: 0xe00038e9, 0x9f5a: 0xe00038c6, 0x9f5b: 0xe00038c3, + 0x9f5c: 0xe0000bb8, 0x9f5d: 0xe0000bb5, 0x9f5e: 0xe0000bb2, 0x9f5f: 0xe0000baf, + 0x9f60: 0xe0000bc4, 0x9f61: 0xe0000bc1, 0x9f62: 0xe0000bca, 0x9f63: 0xe0000bc7, + 0x9f64: 0xe0003b4d, 0x9f65: 0xe0003b4a, 0x9f66: 0xe0000c1b, 0x9f67: 0xe0000c18, + 0x9f68: 0xe0003960, 0x9f69: 0xe000395d, 0x9f6a: 0xe000396f, 0x9f6b: 0xe000396c, + 0x9f6c: 0xe0003940, 0x9f6d: 0xe000393d, 0x9f6e: 0xe0003969, 0x9f6f: 0xe0003966, + 0x9f70: 0xe0003963, 0x9f71: 0x402da220, 0x9f72: 0xe00027e2, 0x9f73: 0xe00027df, + 0x9f74: 0xe0000c8a, 0x9f75: 0xe0000c87, 0x9f76: 0xe0003b86, 0x9f77: 0xe0003b83, + 0x9f78: 0x402f7220, 0x9f79: 0xe0003b98, 0x9f7a: 0xe0003b95, 0x9f7b: 0xe0003ba4, + 0x9f7c: 0xe0003ba1, 0x9f7d: 0xe0003b9e, 0x9f7e: 0xe0003b9b, 0x9f7f: 0xe0000d04, + // Block 0x27e, offset 0x9f80 + 0x9f80: 0xe0000cfe, 0x9f81: 0xe0000cf8, 0x9f82: 0xe0000cf5, 0x9f83: 0xe0003bd6, + 0x9f84: 0xe0003bd3, 0x9f85: 0xe0003bf4, 0x9f86: 0xe0003bf1, 0x9f87: 0xe0003be2, + 0x9f88: 0xe0003bdf, 0x9f89: 0xe00035eb, 0x9f8a: 0x002eda88, 0x9f8b: 0x402eda20, + 0x9f8c: 0xe0003a1f, 0x9f8d: 0xe0003a1c, 0x9f8e: 0xe000399f, 0x9f8f: 0xe000399c, + 0x9f90: 0xe00039df, 0x9f91: 0xe00039dc, 0x9f92: 0xe0000e93, 0x9f93: 0xe0000e8f, + 0x9f94: 0xe0000eca, 0x9f95: 0xe0000ec7, 0x9f96: 0xe0000edc, 0x9f97: 0xe0000ed9, + 0x9f98: 0xe0000ed0, 0x9f99: 0xe0000ecd, 0x9f9a: 0xe0000f1f, 0x9f9b: 0xe0000f1c, + 0x9f9c: 0xe0000f2d, 0x9f9d: 0xe0000f2a, 0x9f9e: 0xe0000f47, 0x9f9f: 0xe0000f44, + 0x9fa0: 0xe0000f33, 0x9fa1: 0xe0000f30, 0x9fa2: 0xe0000f99, 0x9fa3: 0xe0000f96, + 0x9fa4: 0xe0000f8a, 0x9fa5: 0xe0000f87, 0x9fa6: 0x00303688, 0x9fa7: 0x40303620, + 0x9fa8: 0xe0003ad3, 0x9fa9: 0xe0003ad0, 0x9faa: 0xe0003ae7, 0x9fab: 0xe0003ae4, + 0x9fac: 0xe0003a8f, 0x9fad: 0xe0003a8c, 0x9fae: 0xe0003aa1, 0x9faf: 0xe0003a9e, + 0x9fb0: 0xe0003acd, 0x9fb1: 0xe0003aca, 0x9fb2: 0xe0003ae1, 0x9fb3: 0xe0003ade, + 0x9fb4: 0xe0003c24, 0x9fb5: 0xe0003c21, 0x9fb6: 0xe000110e, 0x9fb7: 0xe000110b, + 0x9fb8: 0xe0001117, 0x9fb9: 0xe000113b, 0x9fba: 0xe0001138, 0x9fbb: 0xe000114d, + 0x9fbc: 0xe000114a, 0x9fbd: 0xe0001147, 0x9fbe: 0xe0001144, 0x9fbf: 0xe0000f64, + // Block 0x27f, offset 0x9fc0 + 0x9fc0: 0x402c1a20, 0x9fc1: 0x002c2a88, 0x9fc2: 0x002c3288, 0x9fc3: 0x402c3220, + 0x9fc4: 0x0031c488, 0x9fc5: 0x4031c420, 0x9fc6: 0x002efa88, 0x9fc7: 0x002c4e88, + 0x9fc8: 0x402c4e20, 0x9fc9: 0x002c7288, 0x9fca: 0x002c7a88, 0x9fcb: 0x002c8488, + 0x9fcc: 0x402c8420, 0x9fcd: 0xe000115c, 0x9fce: 0x002cae88, 0x9fcf: 0x002cb888, + 0x9fd0: 0x002cc288, 0x9fd1: 0x002d1688, 0x9fd2: 0x402d1620, 0x9fd3: 0x002d4488, + 0x9fd4: 0x002d5888, 0x9fd5: 0x402d7820, 0x9fd6: 0x002dc288, 0x9fd7: 0x002db688, + 0x9fd8: 0x002e0a88, 0x9fd9: 0x402e0a20, 0x9fda: 0x402e3820, 0x9fdb: 0x402e7220, + 0x9fdc: 0x0030a088, 0x9fdd: 0x002eb488, 0x9fde: 0x402ebc20, 0x9fdf: 0x002f1088, + 0x9fe0: 0xe0003a47, 0x9fe1: 0xe0003a44, 0x9fe2: 0x002d6088, 0x9fe3: 0x402d6020, + 0x9fe4: 0x002f3e88, 0x9fe5: 0x402f3e20, 0x9fe6: 0x002f8288, 0x9fe7: 0x0031b488, + 0x9fe8: 0x4031b420, 0x9fe9: 0x00300888, 0x9fea: 0x40301220, 0x9feb: 0x40304220, + 0x9fec: 0x00304a88, 0x9fed: 0x40304a20, 0x9fee: 0x00305288, 0x9fef: 0xe0003b07, + 0x9ff0: 0xe0003b04, 0x9ff1: 0x0030b488, 0x9ff2: 0x0030cc88, 0x9ff3: 0x00311888, + 0x9ff4: 0x40311820, 0x9ff5: 0x00313488, 0x9ff6: 0x40313420, 0x9ff7: 0x00316488, + 0x9ff8: 0x00316e88, 0x9ff9: 0x40316e20, 0x9ffa: 0x40317820, 0x9ffb: 0x4031a620, + 0x9ffc: 0x0031bc88, 0x9ffd: 0x4031bc20, 0x9ffe: 0xe0000fc9, 0x9fff: 0x40319420, + // Block 0x280, offset 0xa000 + 0xa000: 0x40321220, 0xa001: 0x40321a20, 0xa002: 0x40322220, 0xa003: 0x40322a20, + 0xa004: 0xe0000ad5, 0xa005: 0xe0000ad1, 0xa006: 0xe0000acd, 0xa007: 0xe000357f, + 0xa008: 0xe000357c, 0xa009: 0xe0003579, 0xa00a: 0xe00035c4, 0xa00b: 0xe00035c1, + 0xa00c: 0xe00035be, 0xa00d: 0xe0003853, 0xa00e: 0xe0000944, 0xa00f: 0xe000394c, + 0xa010: 0xe0003949, 0xa011: 0xe00039cb, 0xa012: 0xe00039c8, 0xa013: 0xe0003a9b, + 0xa014: 0xe0003a98, 0xa015: 0xe0003ac6, 0xa016: 0xe0003ac2, 0xa017: 0xe0003aae, + 0xa018: 0xe0003aaa, 0xa019: 0xe0003abe, 0xa01a: 0xe0003aba, 0xa01b: 0xe0003ab6, + 0xa01c: 0xe0003ab2, 0xa01d: 0x402cae20, 0xa01e: 0xe0003860, 0xa01f: 0xe000095e, + 0xa020: 0xe000386a, 0xa021: 0xe0000972, 0xa022: 0xe00009f4, 0xa023: 0xe00009ef, + 0xa024: 0x002d3a88, 0xa025: 0x402d3a20, 0xa026: 0xe0000bbe, 0xa027: 0xe0000bbb, + 0xa028: 0xe0003b80, 0xa029: 0xe0003b7d, 0xa02a: 0xe0003a11, 0xa02b: 0xe0003a0e, + 0xa02c: 0xe0003a18, 0xa02d: 0xe0003a14, 0xa02e: 0xe0001162, 0xa02f: 0xe000115f, + 0xa030: 0xe0000c8d, 0xa031: 0xf0000a0a, 0xa032: 0xf000040a, 0xa033: 0xf0000404, + 0xa034: 0xe0000bac, 0xa035: 0xe0000ba9, 0xa036: 0x002d7888, 0xa037: 0x00319488, + 0xa038: 0xe0003bdc, 0xa039: 0xe0003bd9, 0xa03a: 0xe0003859, 0xa03b: 0xe0000950, + 0xa03c: 0xe00009ea, 0xa03d: 0xe00009e5, 0xa03e: 0xe0000e19, 0xa03f: 0xe0000e15, + // Block 0x281, offset 0xa040 + 0xa040: 0xe0003877, 0xa041: 0xe000098c, 0xa042: 0xe000387a, 0xa043: 0xe0000992, + 0xa044: 0xe000390e, 0xa045: 0xe000390b, 0xa046: 0xe0003914, 0xa047: 0xe0003911, + 0xa048: 0xe000397b, 0xa049: 0xe0003978, 0xa04a: 0xe0003981, 0xa04b: 0xe000397e, + 0xa04c: 0xe0003a3b, 0xa04d: 0xe0003a38, 0xa04e: 0xe0003a41, 0xa04f: 0xe0003a3e, + 0xa050: 0xe0000ee8, 0xa051: 0xe0000ee5, 0xa052: 0xe0000eee, 0xa053: 0xe0000eeb, + 0xa054: 0xe0003afb, 0xa055: 0xe0003af8, 0xa056: 0xe0003b01, 0xa057: 0xe0003afe, + 0xa058: 0xe0000f61, 0xa059: 0xe0000f5e, 0xa05a: 0xe0000fa5, 0xa05b: 0xe0000fa2, + 0xa05c: 0x00312288, 0xa05d: 0x40312220, 0xa05e: 0xe0003b53, 0xa05f: 0xe0003b50, + 0xa060: 0x002ebc88, 0xa061: 0x402c8c20, 0xa062: 0x002f2288, 0xa063: 0x402f2220, + 0xa064: 0x00314088, 0xa065: 0x40314020, 0xa066: 0xe0003867, 0xa067: 0xe000096c, + 0xa068: 0xe00038de, 0xa069: 0xe00038db, 0xa06a: 0xe00039d8, 0xa06b: 0xe00039d4, + 0xa06c: 0xe00039fc, 0xa06d: 0xe00039f8, 0xa06e: 0xe0003a03, 0xa06f: 0xe0003a00, + 0xa070: 0xe0003a0a, 0xa071: 0xe0003a06, 0xa072: 0xe0001129, 0xa073: 0xe0001126, + 0xa074: 0x402e5e20, 0xa075: 0x402ed020, 0xa076: 0x40305a20, 0xa077: 0x402dd420, + 0xa078: 0xe0000abf, 0xa079: 0xe0000ec4, 0xa07a: 0x002be888, 0xa07b: 0x002c4488, + 0xa07c: 0x402c4420, 0xa07d: 0x002e3888, 0xa07e: 0x00303e88, 0xa07f: 0x402ffc20, + // Block 0x282, offset 0xa080 + 0xa080: 0x402f8220, 0xa081: 0x402fd820, 0xa082: 0x402ff420, 0xa083: 0x40300820, + 0xa084: 0x402df620, 0xa085: 0x40301a20, 0xa086: 0x40302420, 0xa087: 0x40306420, + 0xa088: 0x40305220, 0xa089: 0x40307c20, 0xa08a: 0x4030b420, 0xa08b: 0x4030cc20, + 0xa08c: 0x4030da20, 0xa08d: 0x4030ee20, 0xa08e: 0x402e7a20, 0xa08f: 0x40310820, + 0xa090: 0x40314820, 0xa091: 0x40315020, 0xa092: 0x40316420, 0xa093: 0x40318020, + 0xa094: 0x4031cc20, 0xa095: 0x4031e820, 0xa096: 0x40320a20, 0xa097: 0x40323220, + 0xa098: 0x40323a20, 0xa099: 0x402c1220, 0xa09a: 0x402cf820, 0xa09b: 0x402d4c20, + 0xa09c: 0x402d7020, 0xa09d: 0x402de620, 0xa09e: 0x402e1a20, 0xa09f: 0x402e2a20, + 0xa0a0: 0x402f6220, 0xa0a1: 0x4031fa20, 0xa0a2: 0x40320220, 0xa0a3: 0xe0000aca, + 0xa0a4: 0xe0000adc, 0xa0a5: 0xe0000ad9, 0xa0a6: 0xe0000fcc, 0xa0a7: 0xe0000fcf, + 0xa0a8: 0xe0000fba, 0xa0a9: 0xe0000ba1, 0xa0aa: 0xe0000d11, 0xa0ab: 0xe0000d18, + 0xa0ac: 0x40324220, 0xa0ad: 0x40324a20, 0xa0ae: 0x40309020, 0xa0af: 0x40309820, + 0xa0b0: 0x002d6894, 0xa0b1: 0x002d8094, 0xa0b2: 0x002dcc94, 0xa0b3: 0x002f7a94, + 0xa0b4: 0x002f9894, 0xa0b5: 0x002fac94, 0xa0b6: 0x002fd894, 0xa0b7: 0x0030e294, + 0xa0b8: 0x00310094, 0xa0b9: 0x40064020, 0xa0ba: 0x40064420, 0xa0bb: 0x402bf620, + 0xa0bc: 0x4031de20, 0xa0bd: 0x402d9820, 0xa0be: 0x4031e220, 0xa0bf: 0x4031f020, + // Block 0x283, offset 0xa0c0 + 0xa0c0: 0xe0003888, 0xa0c1: 0xe00009ae, 0xa0c2: 0xe0000a22, 0xa0c3: 0xe0000a1f, + 0xa0c4: 0xe0000a28, 0xa0c5: 0xe0000a25, 0xa0c6: 0xe0000a2e, 0xa0c7: 0xe0000a2b, + 0xa0c8: 0xe0000a5a, 0xa0c9: 0xe0000a56, 0xa0ca: 0xe0000a8c, 0xa0cb: 0xe0000a89, + 0xa0cc: 0xe0000a98, 0xa0cd: 0xe0000a95, 0xa0ce: 0xe0000aa4, 0xa0cf: 0xe0000aa1, + 0xa0d0: 0xe0000a92, 0xa0d1: 0xe0000a8f, 0xa0d2: 0xe0000a9e, 0xa0d3: 0xe0000a9b, + 0xa0d4: 0xe0003901, 0xa0d5: 0xe00038fd, 0xa0d6: 0xe00038f9, 0xa0d7: 0xe00038f5, + 0xa0d8: 0xe0003928, 0xa0d9: 0xe0003925, 0xa0da: 0xe000392e, 0xa0db: 0xe000392b, + 0xa0dc: 0xe00038e5, 0xa0dd: 0xe00038e1, 0xa0de: 0xe0000b8c, 0xa0df: 0xe0000b89, + 0xa0e0: 0xe0000bd0, 0xa0e1: 0xe0000bcd, 0xa0e2: 0xe0003b5f, 0xa0e3: 0xe0003b5c, + 0xa0e4: 0xe0003b6b, 0xa0e5: 0xe0003b68, 0xa0e6: 0xe0003b59, 0xa0e7: 0xe0003b56, + 0xa0e8: 0xe0003b65, 0xa0e9: 0xe0003b62, 0xa0ea: 0xe0003b71, 0xa0eb: 0xe0003b6e, + 0xa0ec: 0xe000398d, 0xa0ed: 0xe000398a, 0xa0ee: 0xe0003959, 0xa0ef: 0xe0003955, + 0xa0f0: 0xe0003b7a, 0xa0f1: 0xe0003b77, 0xa0f2: 0xe0003b8c, 0xa0f3: 0xe0003b89, + 0xa0f4: 0xe0003b92, 0xa0f5: 0xe0003b8f, 0xa0f6: 0xe0003baa, 0xa0f7: 0xe0003ba7, + 0xa0f8: 0xe0003bb1, 0xa0f9: 0xe0003bad, 0xa0fa: 0xe0003bbe, 0xa0fb: 0xe0003bbb, + 0xa0fc: 0xe0003bb8, 0xa0fd: 0xe0003bb5, 0xa0fe: 0xe0003bc4, 0xa0ff: 0xe0003bc1, + // Block 0x284, offset 0xa100 + 0xa100: 0xe0003bca, 0xa101: 0xe0003bc7, 0xa102: 0xe0003bd0, 0xa103: 0xe0003bcd, + 0xa104: 0xe0003bee, 0xa105: 0xe0003beb, 0xa106: 0xe0003bfa, 0xa107: 0xe0003bf7, + 0xa108: 0xe0003c06, 0xa109: 0xe0003c03, 0xa10a: 0xe0003c00, 0xa10b: 0xe0003bfd, + 0xa10c: 0xe00039ec, 0xa10d: 0xe00039e8, 0xa10e: 0xe00039f4, 0xa10f: 0xe00039f0, + 0xa110: 0xe0003a2e, 0xa111: 0xe0003a2a, 0xa112: 0xe0003a26, 0xa113: 0xe0003a22, + 0xa114: 0xe0003c0c, 0xa115: 0xe0003c09, 0xa116: 0xe0003c12, 0xa117: 0xe0003c0f, + 0xa118: 0xe0000ed6, 0xa119: 0xe0000ed3, 0xa11a: 0xe0000ef4, 0xa11b: 0xe0000ef1, + 0xa11c: 0xe0000efb, 0xa11d: 0xe0000ef7, 0xa11e: 0xe0000f02, 0xa11f: 0xe0000eff, + 0xa120: 0xe0000f41, 0xa121: 0xe0000f3e, 0xa122: 0xe0000f53, 0xa123: 0xe0000f50, + 0xa124: 0xe0000f26, 0xa125: 0xe0000f22, 0xa126: 0xe0000f3a, 0xa127: 0xe0000f36, + 0xa128: 0xe0000f5a, 0xa129: 0xe0000f56, 0xa12a: 0xe0000f93, 0xa12b: 0xe0000f90, + 0xa12c: 0xe0000f9f, 0xa12d: 0xe0000f9c, 0xa12e: 0xe0000fb1, 0xa12f: 0xe0000fae, + 0xa130: 0xe0000fab, 0xa131: 0xe0000fa8, 0xa132: 0xe0003b3b, 0xa133: 0xe0003b38, + 0xa134: 0xe0003b47, 0xa135: 0xe0003b44, 0xa136: 0xe0003b41, 0xa137: 0xe0003b3e, + 0xa138: 0xe0003ada, 0xa139: 0xe0003ad6, 0xa13a: 0xe0003aee, 0xa13b: 0xe0003aea, + 0xa13c: 0xe00010a9, 0xa13d: 0xe00010a6, 0xa13e: 0xe00010af, 0xa13f: 0xe00010ac, + // Block 0x285, offset 0xa140 + 0xa140: 0xe0003c1e, 0xa141: 0xe0003c1b, 0xa142: 0xe0003c18, 0xa143: 0xe0003c15, + 0xa144: 0xe0003c2d, 0xa145: 0xe0003c2a, 0xa146: 0xe0003c33, 0xa147: 0xe0003c30, + 0xa148: 0xe0003c39, 0xa149: 0xe0003c36, 0xa14a: 0xe00010fc, 0xa14b: 0xe00010f9, + 0xa14c: 0xe00010f6, 0xa14d: 0xe00010f3, 0xa14e: 0xe0001123, 0xa14f: 0xe0001120, + 0xa150: 0xe0001141, 0xa151: 0xe000113e, 0xa152: 0xe0001153, 0xa153: 0xe0001150, + 0xa154: 0xe0001159, 0xa155: 0xe0001156, 0xa156: 0xe0003b74, 0xa157: 0xe0000f8d, + 0xa158: 0xe0003c27, 0xa159: 0xe0001111, 0xa15a: 0xf0000404, 0xa15b: 0xe0000f70, + 0xa15c: 0x40300420, 0xa15d: 0x40300620, 0xa15e: 0xe0000f7f, 0xa15f: 0x402c9620, + 0xa160: 0xe000387d, 0xa161: 0xe0000998, 0xa162: 0xe0003874, 0xa163: 0xe0000986, + 0xa164: 0xe0003843, 0xa165: 0xe0000924, 0xa166: 0xe0003847, 0xa167: 0xe000092c, + 0xa168: 0xe000384f, 0xa169: 0xe000093c, 0xa16a: 0xe000384b, 0xa16b: 0xe0000934, + 0xa16c: 0xe0003884, 0xa16d: 0xe00009a6, 0xa16e: 0xe0003830, 0xa16f: 0xe00008fe, + 0xa170: 0xe0003834, 0xa171: 0xe0000906, 0xa172: 0xe000383c, 0xa173: 0xe0000916, + 0xa174: 0xe0003838, 0xa175: 0xe000090e, 0xa176: 0xe0003880, 0xa177: 0xe000099e, + 0xa178: 0xe000391a, 0xa179: 0xe0003917, 0xa17a: 0xe0003908, 0xa17b: 0xe0003905, + 0xa17c: 0xe00038d2, 0xa17d: 0xe00038cf, 0xa17e: 0xe00038a7, 0xa17f: 0xe00038a3, + // Block 0x286, offset 0xa180 + 0xa180: 0xe00038af, 0xa181: 0xe00038ab, 0xa182: 0xe00038bf, 0xa183: 0xe00038bb, + 0xa184: 0xe00038b7, 0xa185: 0xe00038b3, 0xa186: 0xe0003921, 0xa187: 0xe000391d, + 0xa188: 0xe0003975, 0xa189: 0xe0003972, 0xa18a: 0xe0003987, 0xa18b: 0xe0003984, + 0xa18c: 0xe0003a75, 0xa18d: 0xe0003a72, 0xa18e: 0xe0003a35, 0xa18f: 0xe0003a32, + 0xa190: 0xe00039ac, 0xa191: 0xe00039a8, 0xa192: 0xe00039b4, 0xa193: 0xe00039b0, + 0xa194: 0xe00039c4, 0xa195: 0xe00039c0, 0xa196: 0xe00039bc, 0xa197: 0xe00039b8, + 0xa198: 0xe0003a7c, 0xa199: 0xe0003a78, 0xa19a: 0xe0003a4e, 0xa19b: 0xe0003a4a, + 0xa19c: 0xe0003a56, 0xa19d: 0xe0003a52, 0xa19e: 0xe0003a66, 0xa19f: 0xe0003a62, + 0xa1a0: 0xe0003a5e, 0xa1a1: 0xe0003a5a, 0xa1a2: 0xe0003a6e, 0xa1a3: 0xe0003a6a, + 0xa1a4: 0xe0003b35, 0xa1a5: 0xe0003b32, 0xa1a6: 0xe0003af5, 0xa1a7: 0xe0003af2, + 0xa1a8: 0xe0003b0e, 0xa1a9: 0xe0003b0a, 0xa1aa: 0xe0003b16, 0xa1ab: 0xe0003b12, + 0xa1ac: 0xe0003b26, 0xa1ad: 0xe0003b22, 0xa1ae: 0xe0003b1e, 0xa1af: 0xe0003b1a, + 0xa1b0: 0xe0003b2e, 0xa1b1: 0xe0003b2a, 0xa1b2: 0xe0001108, 0xa1b3: 0xe0001105, + 0xa1b4: 0xe0001135, 0xa1b5: 0xe0001132, 0xa1b6: 0xe000112f, 0xa1b7: 0xe000112c, + 0xa1b8: 0xe000111d, 0xa1b9: 0xe000111a, 0xa1ba: 0xe0000d0a, 0xa1bb: 0xe0000d07, + 0xa1bc: 0x0030d888, 0xa1bd: 0x4030d820, 0xa1be: 0x00312088, 0xa1bf: 0x40312020, + // Block 0x287, offset 0xa1c0 + 0xa1c0: 0xe00009bc, 0xa1c1: 0xe00009c0, 0xa1c2: 0x002c3a8b, 0xa1c3: 0xf0000a04, + 0xa1c4: 0x40081c20, 0xa1c5: 0xe0000a5e, 0xa1c6: 0xe0000a62, 0xa1c7: 0x002cc28a, + 0xa1c8: 0x40081e20, 0xa1c9: 0xf0000a04, 0xa1ca: 0x002d2285, 0xa1cb: 0x002d688b, + 0xa1cc: 0x002d688b, 0xa1cd: 0x002d688b, 0xa1ce: 0x002d6885, 0xa1cf: 0xf0000202, + 0xa1d0: 0x002d9a8b, 0xa1d1: 0x002d9a8b, 0xa1d2: 0x002e228b, 0xa1d3: 0x002e2285, + 0xa1d4: 0x40082020, 0xa1d5: 0x002e9e8b, 0xa1d6: 0xe000281e, 0xa1d7: 0x40082220, + 0xa1d8: 0x40082420, 0xa1d9: 0x002f2c8b, 0xa1da: 0x002f568b, 0xa1db: 0x002f7a8b, + 0xa1dc: 0x002f7a8b, 0xa1dd: 0x002f7a8b, 0xa1de: 0x40082620, 0xa1df: 0x40082820, + 0xa1e0: 0xe0002833, 0xa1e1: 0xe0000fbd, 0xa1e2: 0xe0002842, 0xa1e3: 0x40082a20, + 0xa1e4: 0x00312a8b, 0xa1e5: 0x40082c20, 0xa1e6: 0x0032a288, 0xa1e7: 0x40082e20, + 0xa1e8: 0x00312a8b, 0xa1e9: 0x40083020, 0xa1ea: 0x002bea83, 0xa1eb: 0xe0003856, + 0xa1ec: 0x002c0a8b, 0xa1ed: 0x002c3a8b, 0xa1ee: 0x40083220, 0xa1ef: 0x002c9885, + 0xa1f0: 0x002c988b, 0xa1f1: 0x002d088b, 0xa1f2: 0x002d1e88, 0xa1f3: 0x002e828b, + 0xa1f4: 0x002ee285, 0xa1f5: 0x00389084, 0xa1f6: 0x00389284, 0xa1f7: 0x00389484, + 0xa1f8: 0x00389684, 0xa1f9: 0x002d9a85, 0xa1fa: 0x40083420, 0xa1fb: 0xe0000b95, + 0xa1fc: 0x00327e85, 0xa1fd: 0x00325685, 0xa1fe: 0x0032568b, 0xa1ff: 0x00327e8b, + // Block 0x288, offset 0xa200 + 0xa200: 0xe0000024, 0xa201: 0xe0000029, 0xa202: 0xe000002e, 0xa203: 0xe0000033, + 0xa204: 0xe0000038, 0xa205: 0xe000003d, 0xa206: 0xe0000042, 0xa207: 0xe0000047, + 0xa208: 0xf0001f04, 0xa209: 0xf0001f04, 0xa20a: 0xf0001f04, 0xa20b: 0xf0001f04, + 0xa20c: 0xf0001f04, 0xa20d: 0xf0001f04, 0xa20e: 0xf0001f04, 0xa20f: 0xf0001f04, + 0xa210: 0xf0001f04, 0xa211: 0xf0000404, 0xa212: 0xf0000404, 0xa213: 0xf0000404, + 0xa214: 0xf0000404, 0xa215: 0xf0000404, 0xa216: 0xf0000404, 0xa217: 0xf0000404, + 0xa218: 0xf0000404, 0xa219: 0xf0000404, 0xa21a: 0xf0000404, 0xa21b: 0xf0000404, + 0xa21c: 0xf0000404, 0xa21d: 0xf0000404, 0xa21e: 0xf0000404, 0xa21f: 0xf0000404, + 0xa220: 0xe000249f, 0xa221: 0xf0000404, 0xa222: 0xf0000404, 0xa223: 0xe00024a7, + 0xa224: 0xe00024af, 0xa225: 0xf0000404, 0xa226: 0xe00024b7, 0xa227: 0xe0002c16, + 0xa228: 0xe0002c1e, 0xa229: 0xe0002c26, 0xa22a: 0xe00024bf, 0xa22b: 0xe0002c2e, + 0xa22c: 0xf0000404, 0xa22d: 0xf0000404, 0xa22e: 0xf0000404, 0xa22f: 0xf0000404, + 0xa230: 0xe0002c36, 0xa231: 0xf0000404, 0xa232: 0xe0002c46, 0xa233: 0xf0000404, + 0xa234: 0xf0000404, 0xa235: 0xf0000404, 0xa236: 0x002bde8c, 0xa237: 0x002c0a8c, + 0xa238: 0x002c3a8c, 0xa239: 0x002c628c, 0xa23a: 0x002c988c, 0xa23b: 0x002d088c, + 0xa23c: 0x002d228c, 0xa23d: 0x002d688c, 0xa23e: 0x002d9a8c, 0xa23f: 0x002dcc8c, + // Block 0x289, offset 0xa240 + 0xa240: 0xe000230b, 0xa241: 0xe00022f8, 0xa242: 0xe00022fc, 0xa243: 0xe0002311, + 0xa244: 0xe0002316, 0xa245: 0xe000231d, 0xa246: 0xe0002321, 0xa247: 0xe0002325, + 0xa248: 0xe000232b, 0xa249: 0xf0001c1c, 0xa24a: 0xe0002330, 0xa24b: 0xe000233c, + 0xa24c: 0xe0002340, 0xa24d: 0xe0002337, 0xa24e: 0xe0002346, 0xa24f: 0xe000234b, + 0xa250: 0xe000234f, 0xa251: 0xe0002353, 0xa252: 0xf0001c1c, 0xa253: 0xe000235e, + 0xa254: 0xe0002358, 0xa255: 0xf0001c1c, 0xa256: 0xe0002363, 0xa257: 0xe000236d, + 0xa258: 0xf0001f04, 0xa259: 0xf0001f04, 0xa25a: 0xf0001f04, 0xa25b: 0xf0001f04, + 0xa25c: 0xf0001f04, 0xa25d: 0xf0001f04, 0xa25e: 0xf0001f04, 0xa25f: 0xf0001f04, + 0xa260: 0xf0001f04, 0xa261: 0xf0001f04, 0xa262: 0xf0000404, 0xa263: 0xf0000404, + 0xa264: 0xf0000404, 0xa265: 0xf0000404, 0xa266: 0xf0000404, 0xa267: 0xf0000404, + 0xa268: 0xf0000404, 0xa269: 0xf0000404, 0xa26a: 0xf0000404, 0xa26b: 0xf0000404, + 0xa26c: 0xf0000404, 0xa26d: 0xf0000404, 0xa26e: 0xf0000404, 0xa26f: 0xf0000404, + 0xa270: 0xf0000404, 0xa271: 0xe0000c1e, 0xa272: 0xf0001c1c, 0xa273: 0xe0002f0d, + 0xa274: 0xe0000a31, 0xa275: 0xe0002824, 0xa276: 0xe00035d6, 0xa277: 0xe00032a7, + 0xa278: 0xe0000ac2, 0xa279: 0xe0000ac6, 0xa27a: 0xe00027e8, 0xa27b: 0xf0001c1c, + 0xa27c: 0xf0001c1c, 0xa27d: 0xf0001c1c, 0xa27e: 0xf0001c1c, 0xa27f: 0xe0002431, + // Block 0x28a, offset 0xa280 + 0xa280: 0xe00035d0, 0xa281: 0xe00035b8, 0xa282: 0xf0001d1c, 0xa283: 0xe000358e, + 0xa284: 0xe00027f7, 0xa285: 0xe00027fa, 0xa286: 0xe0003594, 0xa287: 0xf0001d1d, + 0xa288: 0xe0000a6b, 0xa289: 0xe0000cb4, 0xa28a: 0xe00035d9, 0xa28b: 0xe00035bb, + 0xa28c: 0xf0001d1c, 0xa28d: 0xf0001c1c, 0xa28e: 0xe000359d, 0xa28f: 0xe00027fd, + 0xa290: 0xe00027ce, 0xa291: 0xe0000cb9, 0xa292: 0xe0000d36, 0xa293: 0xe0000be3, + 0xa294: 0xe0000fc5, 0xa295: 0xe00035f7, 0xa296: 0xe00035a0, 0xa297: 0xe00032a4, + 0xa298: 0xe0002803, 0xa299: 0xe0003570, 0xa29a: 0xe00035c7, 0xa29b: 0xe00035fa, + 0xa29c: 0xe00035a3, 0xa29d: 0xe0003099, 0xa29e: 0xe0002806, 0xa29f: 0xe0000d3e, + 0xa2a0: 0xe0000a72, 0xa2a1: 0xe0003588, 0xa2a2: 0xe0000cbd, 0xa2a3: 0xe0000d42, + 0xa2a4: 0xe0000a76, 0xa2a5: 0xe000358b, 0xa2a6: 0xe0000cc1, 0xa2a7: 0xe0000d2d, + 0xa2a8: 0xe0000d31, 0xa2a9: 0xe00035d3, 0xa2aa: 0xe0000cc5, 0xa2ab: 0xe0000d4a, + 0xa2ac: 0xe0000be7, 0xa2ad: 0xe0000f0b, 0xa2ae: 0xe0000f0f, 0xa2af: 0xe0000f15, + 0xa2b0: 0xe000282d, 0xa2b1: 0xe0002821, 0xa2b2: 0xf0001c1c, 0xa2b3: 0xe000281b, + 0xa2b4: 0xe00035dc, 0xa2b5: 0xe00035ca, 0xa2b6: 0xf0001d1c, 0xa2b7: 0xe00035a6, + 0xa2b8: 0xe000280f, 0xa2b9: 0xe00035a9, 0xa2ba: 0xe00035df, 0xa2bb: 0xe00035cd, + 0xa2bc: 0xe0003600, 0xa2bd: 0xe00035af, 0xa2be: 0xe0002812, 0xa2bf: 0xe00035b2, + // Block 0x28b, offset 0xa2c0 + 0xa2c0: 0xe0002815, 0xa2c1: 0xe00035b5, 0xa2c2: 0xe00009b7, 0xa2c3: 0xf0001c1d, + 0xa2c4: 0xf0001c1c, 0xa2c5: 0xf0001c1c, 0xa2c6: 0xe0000a66, 0xa2c7: 0xe0000a7a, + 0xa2c8: 0xf0001d1c, 0xa2c9: 0xf0001c1d, 0xa2ca: 0xe00027c2, 0xa2cb: 0xe00027c8, + 0xa2cc: 0xe00027e5, 0xa2cd: 0xe0002800, 0xa2ce: 0xe0002809, 0xa2cf: 0xe000280c, + 0xa2d0: 0xe0003582, 0xa2d1: 0xe0003585, 0xa2d2: 0xe0000d0d, 0xa2d3: 0xe0002818, + 0xa2d4: 0xe0003591, 0xa2d5: 0xe0000d3a, 0xa2d6: 0xe0000d46, 0xa2d7: 0xe0002827, + 0xa2d8: 0xe0000eb0, 0xa2d9: 0xe0000eb8, 0xa2da: 0xe000282a, 0xa2db: 0xf0001c1c, + 0xa2dc: 0xf0001c1d, 0xa2dd: 0xe00035e2, 0xa2de: 0xe00010b2, 0xa2df: 0xe00009c8, + 0xa2e0: 0xf0001f04, 0xa2e1: 0xf0001f04, 0xa2e2: 0xf0001f04, 0xa2e3: 0xf0001f04, + 0xa2e4: 0xf0001f04, 0xa2e5: 0xf0001f04, 0xa2e6: 0xf0001f04, 0xa2e7: 0xf0001f04, + 0xa2e8: 0xf0001f04, 0xa2e9: 0xf0000404, 0xa2ea: 0xf0000404, 0xa2eb: 0xf0000404, + 0xa2ec: 0xf0000404, 0xa2ed: 0xf0000404, 0xa2ee: 0xf0000404, 0xa2ef: 0xf0000404, + 0xa2f0: 0xf0000404, 0xa2f1: 0xf0000404, 0xa2f2: 0xf0000404, 0xa2f3: 0xf0000404, + 0xa2f4: 0xf0000404, 0xa2f5: 0xf0000404, 0xa2f6: 0xf0000404, 0xa2f7: 0xf0000404, + 0xa2f8: 0xf0000404, 0xa2f9: 0xf0000404, 0xa2fa: 0xf0000404, 0xa2fb: 0xf0000404, + 0xa2fc: 0xf0000404, 0xa2fd: 0xf0000404, 0xa2fe: 0xf0000404, 0xa2ff: 0xe0000bdf, + // Block 0x28c, offset 0xa300 + 0xa300: 0xf0000404, 0xa301: 0xe00026cf, 0xa302: 0xe000356d, 0xa303: 0xe0000b99, + 0xa304: 0xe0000b9d, 0xa305: 0xe0000f83, 0xa306: 0xf0000404, + 0xa313: 0xf0000404, + 0xa314: 0xf0000404, 0xa315: 0xf0000404, 0xa316: 0xf0000404, 0xa317: 0xf0000404, + 0xa31d: 0xe000150b, 0xa31e: 0xa1a09602, 0xa31f: 0xe0001514, + 0xa320: 0x0038ae85, 0xa321: 0x00389085, 0xa322: 0x00389685, 0xa323: 0x00389885, + 0xa324: 0x0038a485, 0xa325: 0x0038a685, 0xa326: 0x0038a885, 0xa327: 0x0038b685, + 0xa328: 0x0038ba85, 0xa329: 0x00093885, 0xa32a: 0xe0001542, 0xa32b: 0xe000153f, + 0xa32c: 0xe000154c, 0xa32d: 0xe0001548, 0xa32e: 0xe00014e1, 0xa32f: 0xe00014e4, + 0xa330: 0xe00014e7, 0xa331: 0xe00014ea, 0xa332: 0xe00014f0, 0xa333: 0xe00014f3, + 0xa334: 0xe00014f6, 0xa335: 0xe00014fc, 0xa336: 0xe0001505, + 0xa338: 0xe0001508, 0xa339: 0xe000150e, 0xa33a: 0xe000151b, 0xa33b: 0xe0001518, + 0xa33c: 0xe0001521, 0xa33e: 0xe0001524, + // Block 0x28d, offset 0xa340 + 0xa340: 0xf0001f04, 0xa341: 0xf0001f04, 0xa342: 0xf0001f04, 0xa343: 0xf0001f04, + 0xa344: 0xf0001f04, 0xa345: 0xf0001f04, 0xa346: 0xf0001f04, 0xa347: 0xf0001f04, + 0xa348: 0xf0001f04, 0xa349: 0xf0001f04, 0xa34a: 0xf0001f04, + 0xa350: 0xf0000a04, 0xa351: 0xf0000a04, 0xa352: 0xf0000a04, 0xa353: 0xf0000a04, + 0xa354: 0xe00024a3, 0xa355: 0xf0000a04, 0xa356: 0xf0000a04, 0xa357: 0xe00024ab, + 0xa358: 0xe00024b3, 0xa359: 0xf0000a04, 0xa35a: 0xe00024bb, 0xa35b: 0xe0002c1a, + 0xa35c: 0xe0002c22, 0xa35d: 0xe0002c2a, 0xa35e: 0xe00024c3, 0xa35f: 0xe0002c32, + 0xa360: 0xf0000a04, 0xa361: 0xf0000a04, 0xa362: 0xf0000a04, 0xa363: 0xf0000a04, + 0xa364: 0xe0002c3a, 0xa365: 0xf0000a04, 0xa366: 0xe0002c4a, 0xa367: 0xf0000a04, + 0xa368: 0xf0000a04, 0xa369: 0xf0000a04, 0xa36a: 0xf0000a04, 0xa36b: 0x002c3a8c, + 0xa36c: 0x002f7a8c, 0xa36d: 0xf0000c0c, 0xa36e: 0xe00035e8, + 0xa370: 0x002bde9d, 0xa371: 0x002c0a9d, 0xa372: 0x002c3a9d, 0xa373: 0x002c629d, + 0xa374: 0x002c989d, 0xa375: 0x002d089d, 0xa376: 0x002d229d, 0xa377: 0x002d689d, + 0xa378: 0x002d9a9d, 0xa379: 0x002dcc9d, 0xa37a: 0x002dfe9d, 0xa37b: 0x002e229d, + 0xa37c: 0x002e829d, 0xa37d: 0x002e9e9d, 0xa37e: 0x002ee29d, 0xa37f: 0x002f2c9d, + // Block 0x28e, offset 0xa380 + 0xa380: 0x002f569d, 0xa381: 0x002f7a9d, 0xa382: 0x002fe69d, 0xa383: 0x00302c9d, + 0xa384: 0x00306c9d, 0xa385: 0x0030be9d, 0xa386: 0x0030e29d, 0xa387: 0x0030f69d, + 0xa388: 0x0031009d, 0xa389: 0x00312a9d, 0xa38a: 0xe00027cb, 0xa38b: 0xe00035ac, + 0xa38c: 0xf0001d1d, 0xa38d: 0xf0001d1d, 0xa38e: 0xe0000ebc, 0xa38f: 0xe00035e5, + 0xa390: 0x002bde8c, 0xa391: 0x002c0a8c, 0xa392: 0x002c3a8c, 0xa393: 0x002c628c, + 0xa394: 0x002c988c, 0xa395: 0x002d088c, 0xa396: 0x002d228c, 0xa397: 0x002d688c, + 0xa398: 0x002d9a8c, 0xa399: 0x002dcc8c, 0xa39a: 0x002dfe8c, 0xa39b: 0x002e228c, + 0xa39c: 0x002e828c, 0xa39d: 0x002e9e8c, 0xa39e: 0x002ee28c, 0xa39f: 0x002f2c8c, + 0xa3a0: 0x002f568c, 0xa3a1: 0x002f7a8c, 0xa3a2: 0x002fe68c, 0xa3a3: 0x00302c8c, + 0xa3a4: 0x00306c8c, 0xa3a5: 0x0030be8c, 0xa3a6: 0x0030e28c, 0xa3a7: 0x0030f68c, + 0xa3a8: 0x0031008c, 0xa3a9: 0x00312a8c, 0xa3aa: 0xe0003597, 0xa3ab: 0xe000359a, + 0xa3b0: 0x002bde9d, 0xa3b1: 0x002c0a9d, 0xa3b2: 0x002c3a9d, 0xa3b3: 0x002c629d, + 0xa3b4: 0x002c989d, 0xa3b5: 0x002d089d, 0xa3b6: 0x002d229d, 0xa3b7: 0x002d689d, + 0xa3b8: 0x002d9a9d, 0xa3b9: 0x002dcc9d, 0xa3ba: 0x002dfe9d, 0xa3bb: 0x002e229d, + 0xa3bc: 0x002e829d, 0xa3bd: 0x002e9e9d, 0xa3be: 0x002ee29d, 0xa3bf: 0x002f2c9d, + // Block 0x28f, offset 0xa3c0 + 0xa3c0: 0x40055620, 0xa3c1: 0xa1809102, 0xa3c2: 0xa1909002, 0xa3c3: 0x40055820, + 0xa3c4: 0xae600000, 0xa3c5: 0xadc00000, 0xa3c6: 0x40055a20, 0xa3c7: 0xa1208d02, + 0xa3d0: 0x40389020, 0xa3d1: 0x40389220, 0xa3d2: 0x40389420, 0xa3d3: 0x40389620, + 0xa3d4: 0x40389820, 0xa3d5: 0x40389a20, 0xa3d6: 0x40389c20, 0xa3d7: 0x40389e20, + 0xa3d8: 0x4038a020, 0xa3d9: 0x4038a220, 0xa3da: 0x0038a499, 0xa3db: 0x4038a420, + 0xa3dc: 0x4038a620, 0xa3dd: 0x0038a899, 0xa3de: 0x4038a820, 0xa3df: 0x0038aa99, + 0xa3e0: 0x4038aa20, 0xa3e1: 0x4038ac20, 0xa3e2: 0x4038ae20, 0xa3e3: 0x0038b099, + 0xa3e4: 0x4038b020, 0xa3e5: 0x0038b299, 0xa3e6: 0x4038b220, 0xa3e7: 0x4038b420, + 0xa3e8: 0x4038b620, 0xa3e9: 0x4038b820, 0xa3ea: 0x4038ba20, + 0xa3f0: 0xe00014ff, 0xa3f1: 0xe0001502, 0xa3f2: 0xe0001511, 0xa3f3: 0x4003d21f, + 0xa3f4: 0x4003e01f, + // Block 0x290, offset 0xa400 + 0xa400: 0xa000f202, 0xa401: 0x403fba21, 0xa402: 0x403fba20, 0xa403: 0x403fbc20, + 0xa404: 0x403fbc20, 0xa405: 0x403fbe20, 0xa406: 0x403fc020, 0xa407: 0x403fcc20, + 0xa408: 0x403fce20, 0xa409: 0x403fd020, 0xa40a: 0x403fd220, 0xa40b: 0x403fd420, + 0xa40c: 0x403fd820, 0xa40d: 0x403fdc20, 0xa40e: 0x403fde20, 0xa40f: 0x403fe020, + 0xa410: 0x403fe220, 0xa411: 0x403fe420, 0xa412: 0x403fe620, 0xa413: 0x403fe820, + 0xa414: 0x403fea20, 0xa415: 0x403fec20, 0xa416: 0x403fee20, 0xa417: 0x403ff020, + 0xa418: 0x403ff420, 0xa419: 0x403ff620, 0xa41a: 0x403ff820, 0xa41b: 0x403ffa20, + 0xa41c: 0x403ffc20, 0xa41d: 0x40400220, 0xa41e: 0x40400420, 0xa41f: 0x40400620, + 0xa420: 0x40400820, 0xa421: 0x40400a20, 0xa422: 0x40400e20, 0xa423: 0x40401020, + 0xa424: 0x40401220, 0xa425: 0x40401420, 0xa426: 0x40401620, 0xa427: 0x40401820, + 0xa428: 0x40401a20, 0xa429: 0xe0001830, 0xa42a: 0x40401c20, 0xa42b: 0x40401e20, + 0xa42c: 0x40402020, 0xa42d: 0x40402420, 0xa42e: 0x40402620, 0xa42f: 0x40402820, + 0xa430: 0x40402c20, 0xa431: 0xe0001839, 0xa432: 0x40402e20, 0xa433: 0x40403020, + 0xa434: 0xe000183c, 0xa435: 0x40403220, 0xa436: 0x40403420, 0xa437: 0x40403620, + 0xa438: 0x40403820, 0xa439: 0x40403a20, 0xa43a: 0x40404c20, 0xa43b: 0x40404e20, + 0xa43c: 0xa070f102, 0xa43d: 0x40403c20, 0xa43e: 0x40404a20, 0xa43f: 0x40405620, + // Block 0x291, offset 0xa440 + 0xa440: 0xa0000000, 0xa441: 0xa0000000, 0xa442: 0xa0000000, 0xa443: 0xa0000000, + 0xa444: 0xa0000000, 0xa445: 0xa0000000, 0xa446: 0xa0000000, 0xa447: 0xa0000000, + 0xa448: 0xa0000000, 0xa449: 0x40020020, 0xa44a: 0x40020220, 0xa44b: 0x40020420, + 0xa44c: 0x40020620, 0xa44d: 0x40020820, 0xa44e: 0xa0000000, 0xa44f: 0xa0000000, + 0xa450: 0xa0000000, 0xa451: 0xa0000000, 0xa452: 0xa0000000, 0xa453: 0xa0000000, + 0xa454: 0xa0000000, 0xa455: 0xa0000000, 0xa456: 0xa0000000, 0xa457: 0xa0000000, + 0xa458: 0xa0000000, 0xa459: 0xa0000000, 0xa45a: 0xa0000000, 0xa45b: 0xa0000000, + 0xa45c: 0xa0000000, 0xa45d: 0xa0000000, 0xa45e: 0xa0000000, 0xa45f: 0xa0000000, + 0xa460: 0x40021220, 0xa461: 0x4002ba20, 0xa462: 0x4003e020, 0xa463: 0x4004ea20, + 0xa464: 0x4027de20, 0xa465: 0x4004ec20, 0xa466: 0x4004e620, 0xa467: 0x4003d220, + 0xa468: 0x4003f420, 0xa469: 0x4003f620, 0xa46a: 0x4004d820, 0xa46b: 0x40093820, + 0xa46c: 0x40024020, 0xa46d: 0x40021a20, 0xa46e: 0x4002e420, 0xa46f: 0x4004e220, + 0xa470: 0x4029cc20, 0xa471: 0x4029ce20, 0xa472: 0x4029d020, 0xa473: 0x4029d220, + 0xa474: 0x4029d420, 0xa475: 0x4029d620, 0xa476: 0x4029d820, 0xa477: 0x4029da20, + 0xa478: 0x4029dc20, 0xa479: 0x4029de20, 0xa47a: 0x40026c20, 0xa47b: 0x40026220, + 0xa47c: 0x40094020, 0xa47d: 0x40094220, 0xa47e: 0x40094420, 0xa47f: 0x4002c420, + // Block 0x292, offset 0xa480 + 0xa480: 0x4004d620, 0xa481: 0x002bde88, 0xa482: 0x002c0a88, 0xa483: 0xc59b2891, + 0xa484: 0xc5a12913, 0xa485: 0x002c9888, 0xa486: 0x002d0888, 0xa487: 0x002d2288, + 0xa488: 0x002d6888, 0xa489: 0x002d9a88, 0xa48a: 0x002dcc88, 0xa48b: 0x002dfe88, + 0xa48c: 0xc5a629e4, 0xa48d: 0x002e8288, 0xa48e: 0xc5ab2a52, 0xa48f: 0x002ee288, + 0xa490: 0x002f2c88, 0xa491: 0x002f5688, 0xa492: 0x002f7a88, 0xa493: 0xc3430991, + 0xa494: 0x00302c88, 0xa495: 0x00306c88, 0xa496: 0x0030be88, 0xa497: 0x0030e288, + 0xa498: 0x0030f688, 0xa499: 0x00310088, 0xa49a: 0xc3630991, 0xa49b: 0x4003f820, + 0xa49c: 0x4004e420, 0xa49d: 0x4003fa20, 0xa49e: 0x40062420, 0xa49f: 0x40021620, + 0xa4a0: 0x40061e20, 0xa4a1: 0x402bde20, 0xa4a2: 0x402c0a20, 0xa4a3: 0xc5982891, + 0xa4a4: 0xc59e28c2, 0xa4a5: 0x402c9820, 0xa4a6: 0x402d0820, 0xa4a7: 0x402d2220, + 0xa4a8: 0x402d6820, 0xa4a9: 0x402d9a20, 0xa4aa: 0x402dcc20, 0xa4ab: 0x402dfe20, + 0xa4ac: 0xc3772993, 0xa4ad: 0x402e8220, 0xa4ae: 0xc5332a41, 0xa4af: 0x402ee220, + 0xa4b0: 0x402f2c20, 0xa4b1: 0x402f5620, 0xa4b2: 0x402f7a20, 0xa4b3: 0xc3410991, + 0xa4b4: 0x40302c20, 0xa4b5: 0x40306c20, 0xa4b6: 0x4030be20, 0xa4b7: 0x4030e220, + 0xa4b8: 0x4030f620, 0xa4b9: 0x40310020, 0xa4ba: 0xc3610991, 0xa4bb: 0x4003fc20, + 0xa4bc: 0x40094820, 0xa4bd: 0x4003fe20, 0xa4be: 0x40094c20, 0xa4bf: 0xa0000000, + // Block 0x293, offset 0xa4c0 + 0xa4c0: 0xe0000983, 0xa4c1: 0xe0000980, 0xa4c2: 0xe00008fb, 0xa4c3: 0xe00008f8, + 0xa4c4: 0xe000097d, 0xa4c5: 0xe000097a, 0xa4c6: 0x002c3e83, 0xa4c7: 0x402c3e20, + 0xa4c8: 0xe0000a3e, 0xa4c9: 0xe0000a3b, 0xa4ca: 0xe0000a4a, 0xa4cb: 0xe0000a47, + 0xa4cc: 0x002c3c83, 0xa4cd: 0x402c3c20, 0xa4ce: 0xe0000a86, 0xa4cf: 0xe0000a83, + 0xa4d0: 0x002c6683, 0xa4d1: 0x402c6620, 0xa4d2: 0xe0000b46, 0xa4d3: 0xe0000b43, + 0xa4d4: 0xe0000aee, 0xa4d5: 0xe0000aeb, 0xa4d6: 0xe0000b2c, 0xa4d7: 0xe0000b29, + 0xa4d8: 0xe0000b40, 0xa4d9: 0xe0000b3d, 0xa4da: 0xe0000b1a, 0xa4db: 0xe0000b17, + 0xa4dc: 0xe0000bb8, 0xa4dd: 0xe0000bb5, 0xa4de: 0xe0000bb2, 0xa4df: 0xe0000baf, + 0xa4e0: 0xe0000bc4, 0xa4e1: 0xe0000bc1, 0xa4e2: 0xe0000bca, 0xa4e3: 0xe0000bc7, + 0xa4e4: 0xe0000bee, 0xa4e5: 0xe0000beb, 0xa4e6: 0xe0000c1b, 0xa4e7: 0xe0000c18, + 0xa4e8: 0xe0000c51, 0xa4e9: 0xe0000c4e, 0xa4ea: 0xe0000c60, 0xa4eb: 0xe0000c5d, + 0xa4ec: 0xe0000c31, 0xa4ed: 0xe0000c2e, 0xa4ee: 0xe0000c5a, 0xa4ef: 0xe0000c57, + 0xa4f0: 0xe0000c54, 0xa4f1: 0x402da220, 0xa4f2: 0xf0000a0a, 0xa4f3: 0xf0000404, + 0xa4f4: 0xe0000c8a, 0xa4f5: 0xe0000c87, 0xa4f6: 0xe0000c9f, 0xa4f7: 0xe0000c9c, + 0xa4f8: 0x402f7220, 0xa4f9: 0xe0000ccc, 0xa4fa: 0xe0000cc9, 0xa4fb: 0xe0000cd8, + 0xa4fc: 0xe0000cd5, 0xa4fd: 0xe0000cd2, 0xa4fe: 0xe0000ccf, 0xa4ff: 0xe0000d04, + // Block 0x294, offset 0xa500 + 0xa500: 0xe0000cfe, 0xa501: 0xe0000cf8, 0xa502: 0xe0000cf5, 0xa503: 0xe0000d51, + 0xa504: 0xe0000d4e, 0xa505: 0xe0000d6f, 0xa506: 0xe0000d6c, 0xa507: 0xe0000d5d, + 0xa508: 0xe0000d5a, 0xa509: 0xf0000404, 0xa50a: 0x002eda88, 0xa50b: 0x402eda20, + 0xa50c: 0xe0000e2e, 0xa50d: 0xe0000e2b, 0xa50e: 0xe0000da0, 0xa50f: 0xe0000d9d, + 0xa510: 0xe0000de0, 0xa511: 0xe0000ddd, 0xa512: 0xe0000e93, 0xa513: 0xe0000e8f, + 0xa514: 0xe0000eca, 0xa515: 0xe0000ec7, 0xa516: 0xe0000edc, 0xa517: 0xe0000ed9, + 0xa518: 0xe0000ed0, 0xa519: 0xe0000ecd, 0xa51a: 0xe0000f1f, 0xa51b: 0xe0000f1c, + 0xa51c: 0xe0000f2d, 0xa51d: 0xe0000f2a, 0xa51e: 0xe0000f47, 0xa51f: 0xe0000f44, + 0xa520: 0x002fe883, 0xa521: 0x402fe820, 0xa522: 0xe0000f99, 0xa523: 0xe0000f96, + 0xa524: 0xe0000f8a, 0xa525: 0xe0000f87, 0xa526: 0x00303688, 0xa527: 0x40303620, + 0xa528: 0xe000102b, 0xa529: 0xe0001028, 0xa52a: 0xe000103f, 0xa52b: 0xe000103c, + 0xa52c: 0xe0000fe7, 0xa52d: 0xe0000fe4, 0xa52e: 0xe0000ff9, 0xa52f: 0xe0000ff6, + 0xa530: 0xe0001025, 0xa531: 0xe0001022, 0xa532: 0xe0001039, 0xa533: 0xe0001036, + 0xa534: 0xe00010d8, 0xa535: 0xe00010d5, 0xa536: 0xe000110e, 0xa537: 0xe000110b, + 0xa538: 0xe0001117, 0xa539: 0xe000113b, 0xa53a: 0xe0001138, 0xa53b: 0xe000114d, + 0xa53c: 0xe000114a, 0xa53d: 0x00312c83, 0xa53e: 0x40312c20, 0xa53f: 0xe0000f64, + // Block 0x295, offset 0xa540 + 0xa540: 0x40321220, 0xa541: 0x40321a20, 0xa542: 0x40322220, 0xa543: 0x40322a20, + 0xa544: 0x002c6487, 0xa545: 0x002c6485, 0xa546: 0x002c6483, 0xa547: 0x002e2487, + 0xa548: 0x002e2485, 0xa549: 0x002e2483, 0xa54a: 0x002ea087, 0xa54b: 0x002ea085, + 0xa54c: 0x002ea083, 0xa54d: 0xe0000947, 0xa54e: 0xe0000944, 0xa54f: 0xe0000c3d, + 0xa550: 0xe0000c3a, 0xa551: 0xe0000dcc, 0xa552: 0xe0000dc9, 0xa553: 0xe0000ff3, + 0xa554: 0xe0000ff0, 0xa555: 0xe000101e, 0xa556: 0xe000101a, 0xa557: 0xe0001006, + 0xa558: 0xe0001002, 0xa559: 0xe0001016, 0xa55a: 0xe0001012, 0xa55b: 0xe000100e, + 0xa55c: 0xe000100a, 0xa55d: 0x402cae20, 0xa55e: 0xe0000962, 0xa55f: 0xe000095e, + 0xa560: 0xe0000976, 0xa561: 0xe0000972, 0xa562: 0xe00009f4, 0xa563: 0xe00009ef, + 0xa564: 0x002d3a88, 0xa565: 0x402d3a20, 0xa566: 0xe0000bbe, 0xa567: 0xe0000bbb, + 0xa568: 0xe0000c99, 0xa569: 0xe0000c96, 0xa56a: 0xe0000e20, 0xa56b: 0xe0000e1d, + 0xa56c: 0xe0000e27, 0xa56d: 0xe0000e23, 0xa56e: 0xe0001162, 0xa56f: 0xe000115f, + 0xa570: 0xe0000c8d, 0xa571: 0xf0000a0a, 0xa572: 0xf000040a, 0xa573: 0xf0000404, + 0xa574: 0xe0000bac, 0xa575: 0xe0000ba9, 0xa576: 0x002d7888, 0xa577: 0x00319488, + 0xa578: 0xe0000d57, 0xa579: 0xe0000d54, 0xa57a: 0xe0000954, 0xa57b: 0xe0000950, + 0xa57c: 0xe00009ea, 0xa57d: 0xe00009e5, 0xa57e: 0xe0000e19, 0xa57f: 0xe0000e15, + // Block 0x296, offset 0xa580 + 0xa580: 0xe00009b1, 0xa581: 0xe00009ae, 0xa582: 0xe0000a22, 0xa583: 0xe0000a1f, + 0xa584: 0xe0000a28, 0xa585: 0xe0000a25, 0xa586: 0xe0000a2e, 0xa587: 0xe0000a2b, + 0xa588: 0xe0003c3f, 0xa589: 0xe0003c3c, 0xa58a: 0xe0000a8c, 0xa58b: 0xe0000a89, + 0xa58c: 0xe0000a98, 0xa58d: 0xe0000a95, 0xa58e: 0xe0000aa4, 0xa58f: 0xe0000aa1, + 0xa590: 0xe0000a92, 0xa591: 0xe0000a8f, 0xa592: 0xe0000a9e, 0xa593: 0xe0000a9b, + 0xa594: 0xe0000b55, 0xa595: 0xe0000b51, 0xa596: 0xe0000b4d, 0xa597: 0xe0000b49, + 0xa598: 0xe0000b7c, 0xa599: 0xe0000b79, 0xa59a: 0xe0000b82, 0xa59b: 0xe0000b7f, + 0xa59c: 0xe0000b39, 0xa59d: 0xe0000b35, 0xa59e: 0xe0000b8c, 0xa59f: 0xe0000b89, + 0xa5a0: 0xe0000bd0, 0xa5a1: 0xe0000bcd, 0xa5a2: 0xe0000c00, 0xa5a3: 0xe0000bfd, + 0xa5a4: 0xe0000c0c, 0xa5a5: 0xe0000c09, 0xa5a6: 0xe0000bfa, 0xa5a7: 0xe0000bf7, + 0xa5a8: 0xe0000c06, 0xa5a9: 0xe0000c03, 0xa5aa: 0xe0000c12, 0xa5ab: 0xe0000c0f, + 0xa5ac: 0xe0000c7e, 0xa5ad: 0xe0000c7b, 0xa5ae: 0xe0000c4a, 0xa5af: 0xe0000c46, + 0xa5b0: 0xe0000c93, 0xa5b1: 0xe0000c90, 0xa5b2: 0xe0000cab, 0xa5b3: 0xe0000ca8, + 0xa5b4: 0xe0000cb1, 0xa5b5: 0xe0000cae, 0xa5b6: 0xe0000cde, 0xa5b7: 0xe0000cdb, + 0xa5b8: 0xe0000ce5, 0xa5b9: 0xe0000ce1, 0xa5ba: 0xe0000cf2, 0xa5bb: 0xe0000cef, + 0xa5bc: 0xe0000cec, 0xa5bd: 0xe0000ce9, 0xa5be: 0xe0000d1e, 0xa5bf: 0xe0000d1b, + // Block 0x297, offset 0xa5c0 + 0xa5c0: 0xa0000000, 0xa5c1: 0xa0000000, 0xa5c2: 0xa0000000, 0xa5c3: 0xa0000000, + 0xa5c4: 0xa0000000, 0xa5c5: 0xa0000000, 0xa5c6: 0xa0000000, 0xa5c7: 0xa0000000, + 0xa5c8: 0xa0000000, 0xa5c9: 0x40020020, 0xa5ca: 0x40020220, 0xa5cb: 0x40020420, + 0xa5cc: 0x40020620, 0xa5cd: 0x40020820, 0xa5ce: 0xa0000000, 0xa5cf: 0xa0000000, + 0xa5d0: 0xa0000000, 0xa5d1: 0xa0000000, 0xa5d2: 0xa0000000, 0xa5d3: 0xa0000000, + 0xa5d4: 0xa0000000, 0xa5d5: 0xa0000000, 0xa5d6: 0xa0000000, 0xa5d7: 0xa0000000, + 0xa5d8: 0xa0000000, 0xa5d9: 0xa0000000, 0xa5da: 0xa0000000, 0xa5db: 0xa0000000, + 0xa5dc: 0xa0000000, 0xa5dd: 0xa0000000, 0xa5de: 0xa0000000, 0xa5df: 0xa0000000, + 0xa5e0: 0x40021220, 0xa5e1: 0x4002ba20, 0xa5e2: 0x4003e020, 0xa5e3: 0x4004ea20, + 0xa5e4: 0x4027de20, 0xa5e5: 0x4004ec20, 0xa5e6: 0x4004e620, 0xa5e7: 0x4003d220, + 0xa5e8: 0x4003f420, 0xa5e9: 0x4003f620, 0xa5ea: 0x4004d820, 0xa5eb: 0x40093820, + 0xa5ec: 0x40024020, 0xa5ed: 0x40021a20, 0xa5ee: 0x4002e420, 0xa5ef: 0x4004e220, + 0xa5f0: 0x4029cc20, 0xa5f1: 0x4029ce20, 0xa5f2: 0x4029d020, 0xa5f3: 0x4029d220, + 0xa5f4: 0x4029d420, 0xa5f5: 0x4029d620, 0xa5f6: 0x4029d820, 0xa5f7: 0x4029da20, + 0xa5f8: 0x4029dc20, 0xa5f9: 0x4029de20, 0xa5fa: 0x40026c20, 0xa5fb: 0x40026220, + 0xa5fc: 0x40094020, 0xa5fd: 0x40094220, 0xa5fe: 0x40094420, 0xa5ff: 0x4002c420, + // Block 0x298, offset 0xa600 + 0xa600: 0x4004d620, 0xa601: 0x002bde88, 0xa602: 0x002c0a88, 0xa603: 0xc5b12aa4, + 0xa604: 0xc5bb2b54, 0xa605: 0x002c9888, 0xa606: 0x002d0888, 0xa607: 0xc5c72c24, + 0xa608: 0x002d6888, 0xa609: 0x002d9a88, 0xa60a: 0x002dcc88, 0xa60b: 0x002dfe88, + 0xa60c: 0xc5d12cf6, 0xa60d: 0x002e8288, 0xa60e: 0xc5db2dc4, 0xa60f: 0xc5e30b21, + 0xa610: 0x002f2c88, 0xa611: 0x002f5688, 0xa612: 0x002f7a88, 0xa613: 0xc5e92e54, + 0xa614: 0xc5f12ee4, 0xa615: 0xc5f90b21, 0xa616: 0x0030be88, 0xa617: 0x0030e288, + 0xa618: 0x0030f688, 0xa619: 0x00310088, 0xa61a: 0xc5ff2f74, 0xa61b: 0x4003f820, + 0xa61c: 0x4004e420, 0xa61d: 0x4003fa20, 0xa61e: 0x40062420, 0xa61f: 0x40021620, + 0xa620: 0x40061e20, 0xa621: 0x402bde20, 0xa622: 0x402c0a20, 0xa623: 0xc5ae2a72, + 0xa624: 0xc5b62b02, 0xa625: 0x402c9820, 0xa626: 0x402d0820, 0xa627: 0xc5c42bf2, + 0xa628: 0x402d6820, 0xa629: 0x402d9a20, 0xa62a: 0x402dcc20, 0xa62b: 0x402dfe20, + 0xa62c: 0xc5cc2c84, 0xa62d: 0x402e8220, 0xa62e: 0xc5d82d92, 0xa62f: 0xc5e00b21, + 0xa630: 0x402f2c20, 0xa631: 0x402f5620, 0xa632: 0x402f7a20, 0xa633: 0xc5e62e22, + 0xa634: 0xc5ee2eb2, 0xa635: 0xc5f60b21, 0xa636: 0x4030be20, 0xa637: 0x4030e220, + 0xa638: 0x4030f620, 0xa639: 0x40310020, 0xa63a: 0xc5fc2f42, 0xa63b: 0x4003fc20, + 0xa63c: 0x40094820, 0xa63d: 0x4003fe20, 0xa63e: 0x40094c20, 0xa63f: 0xa0000000, + // Block 0x299, offset 0xa640 + 0xa640: 0xe00008f5, 0xa641: 0xe00008ef, 0xa642: 0xe0000921, 0xa643: 0xe0000969, + 0xa644: 0xe000095b, 0xa645: 0xe000094d, 0xa646: 0xe00009dd, 0xa647: 0xe0000a53, + 0xa648: 0xe0000ae8, 0xa649: 0xe0000ae2, 0xa64a: 0xe0000af4, 0xa64b: 0xe0000b20, + 0xa64c: 0xe0000c2b, 0xa64d: 0xe0000c25, 0xa64e: 0xe0000c37, 0xa64f: 0xe0000c43, + 0xa650: 0xe0000ab3, 0xa651: 0xe0000d63, 0xa652: 0xe0000d9a, 0xa653: 0xe0000d94, + 0xa654: 0xe0000da6, 0xa655: 0xe0000de6, 0xa656: 0x002ee483, 0xa657: 0x40093e20, + 0xa658: 0xe0000e12, 0xa659: 0xe0000fe1, 0xa65a: 0xe0000fdb, 0xa65b: 0xe0000fed, + 0xa65c: 0x00306e83, 0xa65d: 0xe0001102, 0xa65e: 0x00318888, 0xa65f: 0xe0000f7b, + 0xa660: 0xe00008f2, 0xa661: 0xe00008ec, 0xa662: 0xe000091e, 0xa663: 0xe0000966, + 0xa664: 0xe0000958, 0xa665: 0xe000094a, 0xa666: 0xe00009d5, 0xa667: 0xe0000a4d, + 0xa668: 0xe0000ae5, 0xa669: 0xe0000adf, 0xa66a: 0xe0000af1, 0xa66b: 0xe0000b1d, + 0xa66c: 0xe0000c28, 0xa66d: 0xe0000c22, 0xa66e: 0xe0000c34, 0xa66f: 0xe0000c40, + 0xa670: 0xe0000aad, 0xa671: 0xe0000d60, 0xa672: 0xe0000d97, 0xa673: 0xe0000d91, + 0xa674: 0xe0000da3, 0xa675: 0xe0000de3, 0xa676: 0x402ee420, 0xa677: 0x40093c20, + 0xa678: 0xe0000e0f, 0xa679: 0xe0000fde, 0xa67a: 0xe0000fd8, 0xa67b: 0xe0000fea, + 0xa67c: 0x40306e20, 0xa67d: 0xe00010ff, 0xa67e: 0x40318820, 0xa67f: 0xe0001114, + // Block 0x29a, offset 0xa680 + 0xa680: 0xe0000cfe, 0xa681: 0xe0000cf8, 0xa682: 0xe0000cf5, 0xa683: 0xe0000d51, + 0xa684: 0xe0000d4e, 0xa685: 0xe0000d6f, 0xa686: 0xe0000d6c, 0xa687: 0xe0000d5d, + 0xa688: 0xe0000d5a, 0xa689: 0xf0000404, 0xa68a: 0x002eda88, 0xa68b: 0x402eda20, + 0xa68c: 0xe0000e2e, 0xa68d: 0xe0000e2b, 0xa68e: 0xe0000da0, 0xa68f: 0xe0000d9d, + 0xa690: 0x002ee4a3, 0xa691: 0x402ee421, 0xa692: 0xe0000e93, 0xa693: 0xe0000e8f, + 0xa694: 0xe0000eca, 0xa695: 0xe0000ec7, 0xa696: 0xe0000edc, 0xa697: 0xe0000ed9, + 0xa698: 0xe0000ed0, 0xa699: 0xe0000ecd, 0xa69a: 0xe0000f1f, 0xa69b: 0xe0000f1c, + 0xa69c: 0xe0000f2d, 0xa69d: 0xe0000f2a, 0xa69e: 0xe0000f47, 0xa69f: 0xe0000f44, + 0xa6a0: 0xe0000f33, 0xa6a1: 0xe0000f30, 0xa6a2: 0xe0000f99, 0xa6a3: 0xe0000f96, + 0xa6a4: 0xe0000f8a, 0xa6a5: 0xe0000f87, 0xa6a6: 0x00303688, 0xa6a7: 0x40303620, + 0xa6a8: 0xe000102b, 0xa6a9: 0xe0001028, 0xa6aa: 0xe000103f, 0xa6ab: 0xe000103c, + 0xa6ac: 0xe0000fe7, 0xa6ad: 0xe0000fe4, 0xa6ae: 0xe0000ff9, 0xa6af: 0xe0000ff6, + 0xa6b0: 0x00306ea3, 0xa6b1: 0x40306e21, 0xa6b2: 0xe0001039, 0xa6b3: 0xe0001036, + 0xa6b4: 0xe00010d8, 0xa6b5: 0xe00010d5, 0xa6b6: 0xe000110e, 0xa6b7: 0xe000110b, + 0xa6b8: 0xe0001117, 0xa6b9: 0xe000113b, 0xa6ba: 0xe0001138, 0xa6bb: 0xe000114d, + 0xa6bc: 0xe000114a, 0xa6bd: 0xe0001147, 0xa6be: 0xe0001144, 0xa6bf: 0xe0000f64, + // Block 0x29b, offset 0xa6c0 + 0xa6c0: 0x40321220, 0xa6c1: 0x40321a20, 0xa6c2: 0x40322220, 0xa6c3: 0x40322a20, + 0xa6c4: 0xe0000ad5, 0xa6c5: 0xe0000ad1, 0xa6c6: 0xe0000acd, 0xa6c7: 0xf0000a0a, + 0xa6c8: 0xf000040a, 0xa6c9: 0xf0000404, 0xa6ca: 0xf0000a0a, 0xa6cb: 0xf000040a, + 0xa6cc: 0xf0000404, 0xa6cd: 0xe0000947, 0xa6ce: 0xe0000944, 0xa6cf: 0xe0000c3d, + 0xa6d0: 0xe0000c3a, 0xa6d1: 0xe0000dcc, 0xa6d2: 0xe0000dc9, 0xa6d3: 0xe0000ff3, + 0xa6d4: 0xe0000ff0, 0xa6d5: 0xe0002964, 0xa6d6: 0xe0002961, 0xa6d7: 0xe0002952, + 0xa6d8: 0xe000294f, 0xa6d9: 0xe000295e, 0xa6da: 0xe000295b, 0xa6db: 0xe0002958, + 0xa6dc: 0xe0002955, 0xa6dd: 0x402cae20, 0xa6de: 0xe0000962, 0xa6df: 0xe000095e, + 0xa6e0: 0xe0000976, 0xa6e1: 0xe0000972, 0xa6e2: 0xe00009f4, 0xa6e3: 0xe00009ef, + 0xa6e4: 0x002d3a88, 0xa6e5: 0x402d3a20, 0xa6e6: 0xe0000bbe, 0xa6e7: 0xe0000bbb, + 0xa6e8: 0xe0000c99, 0xa6e9: 0xe0000c96, 0xa6ea: 0xe0000e20, 0xa6eb: 0xe0000e1d, + 0xa6ec: 0xe0000e27, 0xa6ed: 0xe0000e23, 0xa6ee: 0xe0001162, 0xa6ef: 0xe000115f, + 0xa6f0: 0xe0000c8d, 0xa6f1: 0xf0000a0a, 0xa6f2: 0xf000040a, 0xa6f3: 0xf0000404, + 0xa6f4: 0xe0000bac, 0xa6f5: 0xe0000ba9, 0xa6f6: 0x002d7888, 0xa6f7: 0x00319488, + 0xa6f8: 0xe0000d57, 0xa6f9: 0xe0000d54, 0xa6fa: 0xe0000954, 0xa6fb: 0xe0000950, + 0xa6fc: 0xe00009ea, 0xa6fd: 0xe00009e5, 0xa6fe: 0xe0000e19, 0xa6ff: 0xe0000e15, + // Block 0x29c, offset 0xa700 + 0xa700: 0xe000098f, 0xa701: 0xe000098c, 0xa702: 0xe0000995, 0xa703: 0xe0000992, + 0xa704: 0xe0000b62, 0xa705: 0xe0000b5f, 0xa706: 0xe0000b68, 0xa707: 0xe0000b65, + 0xa708: 0xe0000c6c, 0xa709: 0xe0000c69, 0xa70a: 0xe0000c72, 0xa70b: 0xe0000c6f, + 0xa70c: 0xe0000e4a, 0xa70d: 0xe0000e47, 0xa70e: 0xe0000e50, 0xa70f: 0xe0000e4d, + 0xa710: 0xe0000ee8, 0xa711: 0xe0000ee5, 0xa712: 0xe0000eee, 0xa713: 0xe0000eeb, + 0xa714: 0xe0001053, 0xa715: 0xe0001050, 0xa716: 0xe0001059, 0xa717: 0xe0001056, + 0xa718: 0xe0000f61, 0xa719: 0xe0000f5e, 0xa71a: 0xe0000fa5, 0xa71b: 0xe0000fa2, + 0xa71c: 0x00312288, 0xa71d: 0x40312220, 0xa71e: 0xe0000bf4, 0xa71f: 0xe0000bf1, + 0xa720: 0x002ebc88, 0xa721: 0x402c8c20, 0xa722: 0x002f2288, 0xa723: 0x402f2220, + 0xa724: 0x00314088, 0xa725: 0x40314020, 0xa726: 0xe000096f, 0xa727: 0xe000096c, + 0xa728: 0xe0000b32, 0xa729: 0xe0000b2f, 0xa72a: 0xe000294c, 0xa72b: 0xe0002949, + 0xa72c: 0xe0000dfd, 0xa72d: 0xe0000df9, 0xa72e: 0xe0000e04, 0xa72f: 0xe0000e01, + 0xa730: 0xe0000e0b, 0xa731: 0xe0000e07, 0xa732: 0xe0001129, 0xa733: 0xe0001126, + 0xa734: 0x402e5e20, 0xa735: 0x402ed020, 0xa736: 0x40305a20, 0xa737: 0x402dd420, + 0xa738: 0xe0000abf, 0xa739: 0xe0000ec4, 0xa73a: 0x002be888, 0xa73b: 0x002c4488, + 0xa73c: 0x402c4420, 0xa73d: 0x002e3888, 0xa73e: 0x00303e88, 0xa73f: 0x402ffc20, + // Block 0x29d, offset 0xa740 + 0xa740: 0x00339288, 0xa741: 0x40339220, 0xa742: 0x0033a088, 0xa743: 0x4033a020, + 0xa744: 0x0033ee88, 0xa745: 0x4033ee20, 0xa746: 0x00341088, 0xa747: 0x40341020, + 0xa748: 0x0034a488, 0xa749: 0x4034a420, 0xa74a: 0x0034ec88, 0xa74b: 0x4034ec20, + 0xa74c: 0x00354288, 0xa74d: 0x40354220, 0xa74e: 0x00355688, 0xa74f: 0x40355620, + 0xa750: 0x0033f088, 0xa751: 0x4033f020, 0xa752: 0x00349688, 0xa753: 0x40349620, + 0xa754: 0x0034a688, 0xa755: 0x4034a620, 0xa756: 0x00353888, 0xa757: 0x40353820, + 0xa758: 0x0036cc88, 0xa759: 0x4036cc20, 0xa75a: 0x00348288, 0xa75b: 0x40348220, + 0xa75c: 0x00372e88, 0xa75d: 0x40372e20, 0xa75e: 0x00348088, 0xa75f: 0x40348020, + 0xa760: 0x00349888, 0xa761: 0x40349820, 0xa762: 0x0034da88, 0xa763: 0x4034da20, + 0xa764: 0x00351688, 0xa765: 0x40351620, 0xa766: 0x0035dc88, 0xa767: 0x4035dc20, + 0xa771: 0x00384288, 0xa772: 0x00384488, 0xa773: 0x00384688, + 0xa774: 0x00384888, 0xa775: 0xc6042fd1, 0xa776: 0x00384c88, 0xa777: 0x00384e88, + 0xa778: 0x00385088, 0xa779: 0x00385288, 0xa77a: 0x00385488, 0xa77b: 0x00385688, + 0xa77c: 0x00385888, 0xa77d: 0x00385a88, 0xa77e: 0x00385c88, 0xa77f: 0x00385e88, + // Block 0x29e, offset 0xa780 + 0xa780: 0x40388020, 0xa781: 0x40388220, 0xa782: 0x40388420, 0xa783: 0x40388620, + 0xa784: 0x40388820, 0xa785: 0x40388a20, 0xa786: 0x40388c20, 0xa787: 0x40388a20, + 0xa789: 0x40026e20, 0xa78a: 0x40021c20, + 0xa78f: 0x4027e420, + 0xa791: 0xadc00000, 0xa792: 0xae600000, 0xa793: 0xae600000, + 0xa794: 0xae600000, 0xa795: 0xae600000, 0xa796: 0xadc00000, 0xa797: 0xae600000, + 0xa798: 0xae600000, 0xa799: 0xae600000, 0xa79a: 0xade00000, 0xa79b: 0xadc00000, + 0xa79c: 0xae600000, 0xa79d: 0xae600000, 0xa79e: 0xae600000, 0xa79f: 0xae600000, + 0xa7a0: 0xae600000, 0xa7a1: 0xae600000, 0xa7a2: 0xadc00000, 0xa7a3: 0xadc00000, + 0xa7a4: 0xadc00000, 0xa7a5: 0xadc00000, 0xa7a6: 0xadc00000, 0xa7a7: 0xadc00000, + 0xa7a8: 0xae600000, 0xa7a9: 0xae600000, 0xa7aa: 0xadc00000, 0xa7ab: 0xae600000, + 0xa7ac: 0xae600000, 0xa7ad: 0xade00000, 0xa7ae: 0xae400000, 0xa7af: 0xae600000, + 0xa7b0: 0xa0a08502, 0xa7b1: 0xa0b08602, 0xa7b2: 0xa0c08702, 0xa7b3: 0xa0d08802, + 0xa7b4: 0xa0e08902, 0xa7b5: 0xa0f08a02, 0xa7b6: 0xa1008b02, 0xa7b7: 0xa1108c02, + 0xa7b8: 0xa1208d02, 0xa7b9: 0xa1308e02, 0xa7ba: 0xa1308e02, 0xa7bb: 0xa1408f02, + 0xa7bc: 0xa1509202, 0xa7bd: 0xa1600000, 0xa7be: 0x40055420, 0xa7bf: 0xa1709502, + // Block 0x29f, offset 0xa7c0 + 0xa7c0: 0xa0000000, 0xa7c1: 0xa0000000, 0xa7c2: 0xa0000000, 0xa7c3: 0xa0000000, + 0xa7c4: 0xa0000000, 0xa7c5: 0xa0000000, 0xa7c6: 0xa0000000, 0xa7c7: 0xa0000000, + 0xa7c8: 0xa0000000, 0xa7c9: 0x40020020, 0xa7ca: 0x40020220, 0xa7cb: 0x40020420, + 0xa7cc: 0x40020620, 0xa7cd: 0x40020820, 0xa7ce: 0xa0000000, 0xa7cf: 0xa0000000, + 0xa7d0: 0xa0000000, 0xa7d1: 0xa0000000, 0xa7d2: 0xa0000000, 0xa7d3: 0xa0000000, + 0xa7d4: 0xa0000000, 0xa7d5: 0xa0000000, 0xa7d6: 0xa0000000, 0xa7d7: 0xa0000000, + 0xa7d8: 0xa0000000, 0xa7d9: 0xa0000000, 0xa7da: 0xa0000000, 0xa7db: 0xa0000000, + 0xa7dc: 0xa0000000, 0xa7dd: 0xa0000000, 0xa7de: 0xa0000000, 0xa7df: 0xa0000000, + 0xa7e0: 0x40021220, 0xa7e1: 0x4002ba20, 0xa7e2: 0x4003e020, 0xa7e3: 0x4004ea20, + 0xa7e4: 0x4027de20, 0xa7e5: 0x4004ec20, 0xa7e6: 0x4004e620, 0xa7e7: 0x4003d220, + 0xa7e8: 0x4003f420, 0xa7e9: 0x4003f620, 0xa7ea: 0x4004d820, 0xa7eb: 0x40093820, + 0xa7ec: 0x40024020, 0xa7ed: 0x40021a20, 0xa7ee: 0x4002e420, 0xa7ef: 0x4004e220, + 0xa7f0: 0x4029cc20, 0xa7f1: 0x4029ce20, 0xa7f2: 0x4029d020, 0xa7f3: 0x4029d220, + 0xa7f4: 0x4029d420, 0xa7f5: 0x4029d620, 0xa7f6: 0x4029d820, 0xa7f7: 0x4029da20, + 0xa7f8: 0x4029dc20, 0xa7f9: 0x4029de20, 0xa7fa: 0x40026c20, 0xa7fb: 0x40026220, + 0xa7fc: 0x40094020, 0xa7fd: 0x40094220, 0xa7fe: 0x40094420, 0xa7ff: 0x4002c420, + // Block 0x2a0, offset 0xa800 + 0xa800: 0x4004d620, 0xa801: 0x002bde88, 0xa802: 0x002c0a88, 0xa803: 0xc60809c2, + 0xa804: 0x002c6288, 0xa805: 0x002c9888, 0xa806: 0x002d0888, 0xa807: 0xc60f3026, + 0xa808: 0x002d6888, 0xa809: 0xc6183081, 0xa80a: 0x002dcc88, 0xa80b: 0xc61d30c4, + 0xa80c: 0xc0030002, 0xa80d: 0x002e8288, 0xa80e: 0xc6263145, 0xa80f: 0xc33f3081, + 0xa810: 0x002f2c88, 0xa811: 0x002f5688, 0xa812: 0x002f7a88, 0xa813: 0xc58909c2, + 0xa814: 0x00302c88, 0xa815: 0xc3473081, 0xa816: 0x0030be88, 0xa817: 0x0030e288, + 0xa818: 0x0030f688, 0xa819: 0x00310088, 0xa81a: 0x00312a88, 0xa81b: 0x4003f820, + 0xa81c: 0x4004e420, 0xa81d: 0x4003fa20, 0xa81e: 0x40062420, 0xa81f: 0x40021620, + 0xa820: 0x40061e20, 0xa821: 0x402bde20, 0xa822: 0x402c0a20, 0xa823: 0xc60609b1, + 0xa824: 0x402c6220, 0xa825: 0x402c9820, 0xa826: 0x402d0820, 0xa827: 0xc60b2ff3, + 0xa828: 0x402d6820, 0xa829: 0xc6163081, 0xa82a: 0x402dcc20, 0xa82b: 0xc61a30a2, + 0xa82c: 0xc0000002, 0xa82d: 0x402e8220, 0xa82e: 0xc6223103, 0xa82f: 0xc33d3081, + 0xa830: 0x402f2c20, 0xa831: 0x402f5620, 0xa832: 0x402f7a20, 0xa833: 0xc34109b1, + 0xa834: 0x40302c20, 0xa835: 0xc3453081, 0xa836: 0x4030be20, 0xa837: 0x4030e220, + 0xa838: 0x4030f620, 0xa839: 0x40310020, 0xa83a: 0x40312a20, 0xa83b: 0x4003fc20, + 0xa83c: 0x40094820, 0xa83d: 0x4003fe20, 0xa83e: 0x40094c20, 0xa83f: 0xa0000000, + // Block 0x2a1, offset 0xa840 + 0xa840: 0xe0000d24, 0xa841: 0xe0000d21, 0xa842: 0xe0000d2a, 0xa843: 0xe0000d27, + 0xa844: 0x002ea083, 0xa845: 0x402ea020, 0xa846: 0xe0000d7b, 0xa847: 0xe0000d78, + 0xa848: 0xe0000d87, 0xa849: 0xe0000d84, 0xa84a: 0xe0000d81, 0xa84b: 0xe0000d7e, + 0xa84c: 0xe0000ded, 0xa84d: 0xe0000de9, 0xa84e: 0xe0000df5, 0xa84f: 0xe0000df1, + 0xa850: 0xe0000e3d, 0xa851: 0xe0000e39, 0xa852: 0xe0000e35, 0xa853: 0xe0000e31, + 0xa854: 0xe0000ea7, 0xa855: 0xe0000ea4, 0xa856: 0xe0000ead, 0xa857: 0xe0000eaa, + 0xa858: 0xe0000ed6, 0xa859: 0xe0000ed3, 0xa85a: 0xe0000ef4, 0xa85b: 0xe0000ef1, + 0xa85c: 0xe0000efb, 0xa85d: 0xe0000ef7, 0xa85e: 0xe0000f02, 0xa85f: 0xe0000eff, + 0xa860: 0xe0000f41, 0xa861: 0xe0000f3e, 0xa862: 0xe0000f53, 0xa863: 0xe0000f50, + 0xa864: 0xe0000f26, 0xa865: 0xe0000f22, 0xa866: 0xe0000f3a, 0xa867: 0xe0000f36, + 0xa868: 0xe0000f5a, 0xa869: 0xe0000f56, 0xa86a: 0xe0000f93, 0xa86b: 0xe0000f90, + 0xa86c: 0xe0000f9f, 0xa86d: 0xe0000f9c, 0xa86e: 0xe0000fb1, 0xa86f: 0xe0000fae, + 0xa870: 0xe0000fab, 0xa871: 0xe0000fa8, 0xa872: 0xe0001093, 0xa873: 0xe0001090, + 0xa874: 0xe000109f, 0xa875: 0xe000109c, 0xa876: 0xe0001099, 0xa877: 0xe0001096, + 0xa878: 0xe0001032, 0xa879: 0xe000102e, 0xa87a: 0xe0001046, 0xa87b: 0xe0001042, + 0xa87c: 0xe00010a9, 0xa87d: 0xe00010a6, 0xa87e: 0xe00010af, 0xa87f: 0xe00010ac, + // Block 0x2a2, offset 0xa880 + 0xa880: 0xe0000b03, 0xa881: 0xe0000aff, 0xa882: 0xe0000b13, 0xa883: 0xe0000b0f, + 0xa884: 0xe0000b0b, 0xa885: 0xe0000b07, 0xa886: 0xe0000b75, 0xa887: 0xe0000b71, + 0xa888: 0xe0000c66, 0xa889: 0xe0000c63, 0xa88a: 0x002d9c83, 0xa88b: 0x402d9c20, + 0xa88c: 0x002ee483, 0xa88d: 0x402ee420, 0xa88e: 0xe0000e44, 0xa88f: 0xe0000e41, + 0xa890: 0xe0000dad, 0xa891: 0xe0000da9, 0xa892: 0xe0000db5, 0xa893: 0xe0000db1, + 0xa894: 0xe0000dc5, 0xa895: 0xe0000dc1, 0xa896: 0xe0000dbd, 0xa897: 0xe0000db9, + 0xa898: 0xe0003c96, 0xa899: 0xe0003c93, 0xa89a: 0xe0000e5d, 0xa89b: 0xe0000e59, + 0xa89c: 0xe0000e65, 0xa89d: 0xe0000e61, 0xa89e: 0xe0000e75, 0xa89f: 0xe0000e71, + 0xa8a0: 0xe0000e6d, 0xa8a1: 0xe0000e69, 0xa8a2: 0xe0003c9c, 0xa8a3: 0xe0003c99, + 0xa8a4: 0x00306e83, 0xa8a5: 0x40306e20, 0xa8a6: 0xe000104d, 0xa8a7: 0xe000104a, + 0xa8a8: 0xe0001066, 0xa8a9: 0xe0001062, 0xa8aa: 0xe000106e, 0xa8ab: 0xe000106a, + 0xa8ac: 0xe000107e, 0xa8ad: 0xe000107a, 0xa8ae: 0xe0001076, 0xa8af: 0xe0001072, + 0xa8b0: 0xe0003ca2, 0xa8b1: 0xe0003c9f, 0xa8b2: 0xe0001108, 0xa8b3: 0xe0001105, + 0xa8b4: 0xe0001135, 0xa8b5: 0xe0001132, 0xa8b6: 0xe000112f, 0xa8b7: 0xe000112c, + 0xa8b8: 0xe000111d, 0xa8b9: 0xe000111a, 0xa8ba: 0xe0000d0a, 0xa8bb: 0xe0000d07, + 0xa8bc: 0x0030d888, 0xa8bd: 0x4030d820, 0xa8be: 0x00312088, 0xa8bf: 0x40312020, + // Block 0x2a3, offset 0xa8c0 + 0xa8c0: 0xa0000000, 0xa8c1: 0xa0000000, 0xa8c2: 0xa0000000, 0xa8c3: 0xa0000000, + 0xa8c4: 0xa0000000, 0xa8c5: 0xa0000000, 0xa8c6: 0xa0000000, 0xa8c7: 0xa0000000, + 0xa8c8: 0xa0000000, 0xa8c9: 0x40020020, 0xa8ca: 0x40020220, 0xa8cb: 0x40020420, + 0xa8cc: 0x40020620, 0xa8cd: 0x40020820, 0xa8ce: 0xa0000000, 0xa8cf: 0xa0000000, + 0xa8d0: 0xa0000000, 0xa8d1: 0xa0000000, 0xa8d2: 0xa0000000, 0xa8d3: 0xa0000000, + 0xa8d4: 0xa0000000, 0xa8d5: 0xa0000000, 0xa8d6: 0xa0000000, 0xa8d7: 0xa0000000, + 0xa8d8: 0xa0000000, 0xa8d9: 0xa0000000, 0xa8da: 0xa0000000, 0xa8db: 0xa0000000, + 0xa8dc: 0xa0000000, 0xa8dd: 0xa0000000, 0xa8de: 0xa0000000, 0xa8df: 0xa0000000, + 0xa8e0: 0x40021220, 0xa8e1: 0x4002ba20, 0xa8e2: 0x4003e020, 0xa8e3: 0x4004ea20, + 0xa8e4: 0x4027de20, 0xa8e5: 0x4004ec20, 0xa8e6: 0x4004e620, 0xa8e7: 0x4003d220, + 0xa8e8: 0x4003f420, 0xa8e9: 0x4003f620, 0xa8ea: 0x4004d820, 0xa8eb: 0x40093820, + 0xa8ec: 0x40024020, 0xa8ed: 0x40021a20, 0xa8ee: 0x4002e420, 0xa8ef: 0x4004e220, + 0xa8f0: 0x4029cc20, 0xa8f1: 0x4029ce20, 0xa8f2: 0x4029d020, 0xa8f3: 0x4029d220, + 0xa8f4: 0x4029d420, 0xa8f5: 0x4029d620, 0xa8f6: 0x4029d820, 0xa8f7: 0x4029da20, + 0xa8f8: 0x4029dc20, 0xa8f9: 0x4029de20, 0xa8fa: 0x40026c20, 0xa8fb: 0x40026220, + 0xa8fc: 0x40094020, 0xa8fd: 0x40094220, 0xa8fe: 0x40094420, 0xa8ff: 0x4002c420, + // Block 0x2a4, offset 0xa900 + 0xa900: 0x4004d620, 0xa901: 0xc63031a1, 0xa902: 0x002c0a88, 0xa903: 0x002c3a88, + 0xa904: 0x002c6288, 0xa905: 0xc63631e1, 0xa906: 0x002d0888, 0xa907: 0x002d2288, + 0xa908: 0x002d6888, 0xa909: 0xc63a31e1, 0xa90a: 0x002dcc88, 0xa90b: 0x002dfe88, + 0xa90c: 0xc0030002, 0xa90d: 0x002e8288, 0xa90e: 0x002e9e88, 0xa90f: 0xc63f3201, + 0xa910: 0x002f2c88, 0xa911: 0x002f5688, 0xa912: 0x002f7a88, 0xa913: 0x002fe688, + 0xa914: 0x00302c88, 0xa915: 0xc64431e1, 0xa916: 0x0030be88, 0xa917: 0x0030e288, + 0xa918: 0x0030f688, 0xa919: 0xc64831e1, 0xa91a: 0x00312a88, 0xa91b: 0x4003f820, + 0xa91c: 0x4004e420, 0xa91d: 0x4003fa20, 0xa91e: 0x40062420, 0xa91f: 0x40021620, + 0xa920: 0x40061e20, 0xa921: 0xc62c31a1, 0xa922: 0x402c0a20, 0xa923: 0x402c3a20, + 0xa924: 0x402c6220, 0xa925: 0xc63431e1, 0xa926: 0x402d0820, 0xa927: 0x402d2220, + 0xa928: 0x402d6820, 0xa929: 0xc63831e1, 0xa92a: 0x402dcc20, 0xa92b: 0x402dfe20, + 0xa92c: 0xc0000002, 0xa92d: 0x402e8220, 0xa92e: 0x402e9e20, 0xa92f: 0xc63c3201, + 0xa930: 0x402f2c20, 0xa931: 0x402f5620, 0xa932: 0x402f7a20, 0xa933: 0x402fe620, + 0xa934: 0x40302c20, 0xa935: 0xc64231e1, 0xa936: 0x4030be20, 0xa937: 0x4030e220, + 0xa938: 0x4030f620, 0xa939: 0xc64631e1, 0xa93a: 0x40312a20, 0xa93b: 0x4003fc20, + 0xa93c: 0x40094820, 0xa93d: 0x4003fe20, 0xa93e: 0x40094c20, 0xa93f: 0xa0000000, + // Block 0x2a5, offset 0xa940 + 0xa940: 0xe00008f5, 0xa941: 0x002c0883, 0xa942: 0xe0000921, 0xa943: 0xe0000969, + 0xa944: 0x00320ca3, 0xa945: 0x00321083, 0xa946: 0x00320c83, 0xa947: 0xe0000a53, + 0xa948: 0xe0000ae8, 0xa949: 0x002d0683, 0xa94a: 0xe0000af4, 0xa94b: 0xe0000b20, + 0xa94c: 0xe0000c2b, 0xa94d: 0x002dca83, 0xa94e: 0xe0000c37, 0xa94f: 0xe0000c43, + 0xa950: 0x002c6483, 0xa951: 0xe0000d63, 0xa952: 0xe0000d9a, 0xa953: 0x002f2a83, + 0xa954: 0xe0000da6, 0xa955: 0xe0000de6, 0xa956: 0x00320e83, 0xa957: 0x40093e20, + 0xa958: 0x00320ea3, 0xa959: 0xe0000fe1, 0xa95a: 0x0030bc83, 0xa95b: 0xe0000fed, + 0xa95c: 0xe0000fff, 0xa95d: 0x00312883, 0xa95e: 0x00318888, 0xa95f: 0xe0000f7b, + 0xa960: 0xe00008f2, 0xa961: 0x402c0820, 0xa962: 0xe000091e, 0xa963: 0xe0000966, + 0xa964: 0x40320c21, 0xa965: 0x40321020, 0xa966: 0x40320c20, 0xa967: 0xe0000a4d, + 0xa968: 0xe0000ae5, 0xa969: 0x402d0620, 0xa96a: 0xe0000af1, 0xa96b: 0xe0000b1d, + 0xa96c: 0xe0000c28, 0xa96d: 0x402dca20, 0xa96e: 0xe0000c34, 0xa96f: 0xe0000c40, + 0xa970: 0x402c6420, 0xa971: 0xe0000d60, 0xa972: 0xe0000d97, 0xa973: 0x402f2a20, + 0xa974: 0xe0000da3, 0xa975: 0xe0000de3, 0xa976: 0x40320e20, 0xa977: 0x40093c20, + 0xa978: 0x40320e21, 0xa979: 0xe0000fde, 0xa97a: 0x4030bc20, 0xa97b: 0xe0000fea, + 0xa97c: 0xe0000ffc, 0xa97d: 0x40312820, 0xa97e: 0x40318820, 0xa97f: 0xe0001114, + // Block 0x2a6, offset 0xa980 + 0xa980: 0xe0000983, 0xa981: 0xe0000980, 0xa982: 0xe00008fb, 0xa983: 0xe00008f8, + 0xa984: 0xe000097d, 0xa985: 0xe000097a, 0xa986: 0xe0000a38, 0xa987: 0xe0000a35, + 0xa988: 0xe0000a3e, 0xa989: 0xe0000a3b, 0xa98a: 0xe0000a4a, 0xa98b: 0xe0000a47, + 0xa98c: 0xe0000a44, 0xa98d: 0xe0000a41, 0xa98e: 0xe0000a86, 0xa98f: 0xe0000a83, + 0xa990: 0x002c62a3, 0xa991: 0x402c6221, 0xa992: 0xe0000b46, 0xa993: 0xe0000b43, + 0xa994: 0xe0000aee, 0xa995: 0xe0000aeb, 0xa996: 0xe0000b2c, 0xa997: 0xe0000b29, + 0xa998: 0xe0000b40, 0xa999: 0xe0000b3d, 0xa99a: 0xe0000b1a, 0xa99b: 0xe0000b17, + 0xa99c: 0xe0000bb8, 0xa99d: 0xe0000bb5, 0xa99e: 0xe0000bb2, 0xa99f: 0xe0000baf, + 0xa9a0: 0xe0000bc4, 0xa9a1: 0xe0000bc1, 0xa9a2: 0xe0000bca, 0xa9a3: 0xe0000bc7, + 0xa9a4: 0xe0000bee, 0xa9a5: 0xe0000beb, 0xa9a6: 0xe0000c1b, 0xa9a7: 0xe0000c18, + 0xa9a8: 0xe0000c51, 0xa9a9: 0xe0000c4e, 0xa9aa: 0xe0000c60, 0xa9ab: 0xe0000c5d, + 0xa9ac: 0xe0000c31, 0xa9ad: 0xe0000c2e, 0xa9ae: 0xe0000c5a, 0xa9af: 0xe0000c57, + 0xa9b0: 0xe0000c54, 0xa9b1: 0x402da220, 0xa9b2: 0xf0000a0a, 0xa9b3: 0xf0000404, + 0xa9b4: 0xe0000c8a, 0xa9b5: 0xe0000c87, 0xa9b6: 0xe0000c9f, 0xa9b7: 0xe0000c9c, + 0xa9b8: 0x402f7220, 0xa9b9: 0xe0000ccc, 0xa9ba: 0xe0000cc9, 0xa9bb: 0xe0000cd8, + 0xa9bc: 0xe0000cd5, 0xa9bd: 0xe0000cd2, 0xa9be: 0xe0000ccf, 0xa9bf: 0xe0000d04, + // Block 0x2a7, offset 0xa9c0 + 0xa9c0: 0x40321220, 0xa9c1: 0x40321a20, 0xa9c2: 0x40322220, 0xa9c3: 0x40322a20, + 0xa9c4: 0xe0000ad5, 0xa9c5: 0xe0000ad1, 0xa9c6: 0xe0000acd, 0xa9c7: 0xf0000a0a, + 0xa9c8: 0xf000040a, 0xa9c9: 0xf0000404, 0xa9ca: 0xf0000a0a, 0xa9cb: 0xf000040a, + 0xa9cc: 0xf0000404, 0xa9cd: 0xe0000947, 0xa9ce: 0xe0000944, 0xa9cf: 0xe0000c3d, + 0xa9d0: 0xe0000c3a, 0xa9d1: 0xe0000dcc, 0xa9d2: 0xe0000dc9, 0xa9d3: 0xe0000ff3, + 0xa9d4: 0xe0000ff0, 0xa9d5: 0xe000101e, 0xa9d6: 0xe000101a, 0xa9d7: 0xe0003cde, + 0xa9d8: 0xe0003cdb, 0xa9d9: 0xe0001016, 0xa9da: 0xe0001012, 0xa9db: 0xe000100e, + 0xa9dc: 0xe000100a, 0xa9dd: 0x402cae20, 0xa9de: 0xe000299d, 0xa9df: 0xe000299a, + 0xa9e0: 0xe0000976, 0xa9e1: 0xe0000972, 0xa9e2: 0xe0002997, 0xa9e3: 0xe0002994, + 0xa9e4: 0x002d3a88, 0xa9e5: 0x402d3a20, 0xa9e6: 0xe0000bbe, 0xa9e7: 0xe0000bbb, + 0xa9e8: 0xe0000c99, 0xa9e9: 0xe0000c96, 0xa9ea: 0xe0000e20, 0xa9eb: 0xe0000e1d, + 0xa9ec: 0xe0000e27, 0xa9ed: 0xe0000e23, 0xa9ee: 0xe0001162, 0xa9ef: 0xe000115f, + 0xa9f0: 0xe0000c8d, 0xa9f1: 0xf0000a0a, 0xa9f2: 0xf000040a, 0xa9f3: 0xf0000404, + 0xa9f4: 0xe0000bac, 0xa9f5: 0xe0000ba9, 0xa9f6: 0x002d7888, 0xa9f7: 0x00319488, + 0xa9f8: 0xe0000d57, 0xa9f9: 0xe0000d54, 0xa9fa: 0xe00029b5, 0xa9fb: 0xe00029b2, + 0xa9fc: 0xe0002991, 0xa9fd: 0xe000298e, 0xa9fe: 0xe00037ee, 0xa9ff: 0xe00037eb, + // Block 0x2a8, offset 0xaa00 + 0xaa00: 0xe000098f, 0xaa01: 0xe000098c, 0xaa02: 0xe0000995, 0xaa03: 0xe0000992, + 0xaa04: 0xe0000b62, 0xaa05: 0xe0000b5f, 0xaa06: 0xe0000b68, 0xaa07: 0xe0000b65, + 0xaa08: 0xe0000c6c, 0xaa09: 0xe0000c69, 0xaa0a: 0xe0000c72, 0xaa0b: 0xe0000c6f, + 0xaa0c: 0xe0000e4a, 0xaa0d: 0xe0000e47, 0xaa0e: 0xe0000e50, 0xaa0f: 0xe0000e4d, + 0xaa10: 0xe0000ee8, 0xaa11: 0xe0000ee5, 0xaa12: 0xe0000eee, 0xaa13: 0xe0000eeb, + 0xaa14: 0xe0001053, 0xaa15: 0xe0001050, 0xaa16: 0xe0001059, 0xaa17: 0xe0001056, + 0xaa18: 0xe0000f61, 0xaa19: 0xe0000f5e, 0xaa1a: 0xe0000fa5, 0xaa1b: 0xe0000fa2, + 0xaa1c: 0x00312288, 0xaa1d: 0x40312220, 0xaa1e: 0xe0000bf4, 0xaa1f: 0xe0000bf1, + 0xaa20: 0x002ebc88, 0xaa21: 0x402c8c20, 0xaa22: 0x002f2288, 0xaa23: 0x402f2220, + 0xaa24: 0x00314088, 0xaa25: 0x40314020, 0xaa26: 0xe000096f, 0xaa27: 0xe000096c, + 0xaa28: 0xe0000b32, 0xaa29: 0xe0000b2f, 0xaa2a: 0xe00037e8, 0xaa2b: 0xe00037e5, + 0xaa2c: 0xe0000dfd, 0xaa2d: 0xe0000df9, 0xaa2e: 0xe0000e04, 0xaa2f: 0xe0000e01, + 0xaa30: 0xe0000e0b, 0xaa31: 0xe0000e07, 0xaa32: 0xe0001129, 0xaa33: 0xe0001126, + 0xaa34: 0x402e5e20, 0xaa35: 0x402ed020, 0xaa36: 0x40305a20, 0xaa37: 0x402dd420, + 0xaa38: 0xe0000abf, 0xaa39: 0xe0000ec4, 0xaa3a: 0x002be888, 0xaa3b: 0x002c4488, + 0xaa3c: 0x402c4420, 0xaa3d: 0x002e3888, 0xaa3e: 0x00303e88, 0xaa3f: 0x402ffc20, + // Block 0x2a9, offset 0xaa40 + 0xaa40: 0xe00009b1, 0xaa41: 0xe00009ae, 0xaa42: 0xe0000a22, 0xaa43: 0xe0000a1f, + 0xaa44: 0xe0000a28, 0xaa45: 0xe0000a25, 0xaa46: 0xe0000a2e, 0xaa47: 0xe0000a2b, + 0xaa48: 0xe0000a5a, 0xaa49: 0xe0000a56, 0xaa4a: 0xe0000a8c, 0xaa4b: 0xe0000a89, + 0xaa4c: 0xe0000a98, 0xaa4d: 0xe0000a95, 0xaa4e: 0xe0000aa4, 0xaa4f: 0xe0000aa1, + 0xaa50: 0xe0000a92, 0xaa51: 0xe0000a8f, 0xaa52: 0xe0000a9e, 0xaa53: 0xe0000a9b, + 0xaa54: 0xe0000b55, 0xaa55: 0xe0000b51, 0xaa56: 0xe0003cba, 0xaa57: 0xe0003cb7, + 0xaa58: 0xe0000b7c, 0xaa59: 0xe0000b79, 0xaa5a: 0xe0000b82, 0xaa5b: 0xe0000b7f, + 0xaa5c: 0xe0000b39, 0xaa5d: 0xe0000b35, 0xaa5e: 0xe0000b8c, 0xaa5f: 0xe0000b89, + 0xaa60: 0xe0000bd0, 0xaa61: 0xe0000bcd, 0xaa62: 0xe0000c00, 0xaa63: 0xe0000bfd, + 0xaa64: 0xe0000c0c, 0xaa65: 0xe0000c09, 0xaa66: 0xe0000bfa, 0xaa67: 0xe0000bf7, + 0xaa68: 0xe0000c06, 0xaa69: 0xe0000c03, 0xaa6a: 0xe0000c12, 0xaa6b: 0xe0000c0f, + 0xaa6c: 0xe0000c7e, 0xaa6d: 0xe0000c7b, 0xaa6e: 0xe0003cc0, 0xaa6f: 0xe0003cbd, + 0xaa70: 0xe0000c93, 0xaa71: 0xe0000c90, 0xaa72: 0xe0000cab, 0xaa73: 0xe0000ca8, + 0xaa74: 0xe0000cb1, 0xaa75: 0xe0000cae, 0xaa76: 0xe0000cde, 0xaa77: 0xe0000cdb, + 0xaa78: 0xe0000ce5, 0xaa79: 0xe0000ce1, 0xaa7a: 0xe0000cf2, 0xaa7b: 0xe0000cef, + 0xaa7c: 0xe0000cec, 0xaa7d: 0xe0000ce9, 0xaa7e: 0xe0000d1e, 0xaa7f: 0xe0000d1b, + // Block 0x2aa, offset 0xaa80 + 0xaa80: 0xe0000d24, 0xaa81: 0xe0000d21, 0xaa82: 0xe0000d2a, 0xaa83: 0xe0000d27, + 0xaa84: 0xe0000d69, 0xaa85: 0xe0000d66, 0xaa86: 0xe0000d7b, 0xaa87: 0xe0000d78, + 0xaa88: 0xe0000d87, 0xaa89: 0xe0000d84, 0xaa8a: 0xe0000d81, 0xaa8b: 0xe0000d7e, + 0xaa8c: 0xe0003ccc, 0xaa8d: 0xe0003cc9, 0xaa8e: 0xe0003cf0, 0xaa8f: 0xe0003ced, + 0xaa90: 0xe0000e3d, 0xaa91: 0xe0000e39, 0xaa92: 0xe0003cd2, 0xaa93: 0xe0003ccf, + 0xaa94: 0xe0000ea7, 0xaa95: 0xe0000ea4, 0xaa96: 0xe0000ead, 0xaa97: 0xe0000eaa, + 0xaa98: 0xe0000ed6, 0xaa99: 0xe0000ed3, 0xaa9a: 0xe0000ef4, 0xaa9b: 0xe0000ef1, + 0xaa9c: 0xe0000efb, 0xaa9d: 0xe0000ef7, 0xaa9e: 0xe0000f02, 0xaa9f: 0xe0000eff, + 0xaaa0: 0xe0000f41, 0xaaa1: 0xe0000f3e, 0xaaa2: 0xe0000f53, 0xaaa3: 0xe0000f50, + 0xaaa4: 0xe0000f26, 0xaaa5: 0xe0000f22, 0xaaa6: 0xe0000f3a, 0xaaa7: 0xe0000f36, + 0xaaa8: 0xe0000f5a, 0xaaa9: 0xe0000f56, 0xaaaa: 0xe0000f93, 0xaaab: 0xe0000f90, + 0xaaac: 0xe0000f9f, 0xaaad: 0xe0000f9c, 0xaaae: 0xe0000fb1, 0xaaaf: 0xe0000fae, + 0xaab0: 0xe0000fab, 0xaab1: 0xe0000fa8, 0xaab2: 0xe0001093, 0xaab3: 0xe0001090, + 0xaab4: 0xe000109f, 0xaab5: 0xe000109c, 0xaab6: 0xe0001099, 0xaab7: 0xe0001096, + 0xaab8: 0xe0003ce4, 0xaab9: 0xe0003ce1, 0xaaba: 0xe0001046, 0xaabb: 0xe0001042, + 0xaabc: 0xe00010a9, 0xaabd: 0xe00010a6, 0xaabe: 0xe00010af, 0xaabf: 0xe00010ac, + // Block 0x2ab, offset 0xaac0 + 0xaac0: 0xe00010d2, 0xaac1: 0xe00010cf, 0xaac2: 0xe00010cc, 0xaac3: 0xe00010c9, + 0xaac4: 0xe00010e1, 0xaac5: 0xe00010de, 0xaac6: 0xe00010e7, 0xaac7: 0xe00010e4, + 0xaac8: 0xe00010ed, 0xaac9: 0xe00010ea, 0xaaca: 0xe00010fc, 0xaacb: 0xe00010f9, + 0xaacc: 0xe00010f6, 0xaacd: 0xe00010f3, 0xaace: 0xe0001123, 0xaacf: 0xe0001120, + 0xaad0: 0xe0001141, 0xaad1: 0xe000113e, 0xaad2: 0xe0001153, 0xaad3: 0xe0001150, + 0xaad4: 0xe0001159, 0xaad5: 0xe0001156, 0xaad6: 0xe0000c15, 0xaad7: 0xe0000f8d, + 0xaad8: 0xe00010db, 0xaad9: 0xe0001111, 0xaada: 0xf0000404, 0xaadb: 0xe0000f70, + 0xaadc: 0x40300420, 0xaadd: 0x40300620, 0xaade: 0xe0000f7f, 0xaadf: 0x402c9620, + 0xaae0: 0xe000099b, 0xaae1: 0xe0000998, 0xaae2: 0xe0000989, 0xaae3: 0xe0000986, + 0xaae4: 0xe0003cae, 0xaae5: 0xe0003cab, 0xaae6: 0xe0000930, 0xaae7: 0xe000092c, + 0xaae8: 0xe0000940, 0xaae9: 0xe000093c, 0xaaea: 0xe0000938, 0xaaeb: 0xe0000934, + 0xaaec: 0xe00009aa, 0xaaed: 0xe00009a6, 0xaaee: 0xe0003ca8, 0xaaef: 0xe0003ca5, + 0xaaf0: 0xe000090a, 0xaaf1: 0xe0000906, 0xaaf2: 0xe000091a, 0xaaf3: 0xe0000916, + 0xaaf4: 0xe0000912, 0xaaf5: 0xe000090e, 0xaaf6: 0xe00009a2, 0xaaf7: 0xe000099e, + 0xaaf8: 0xe0000b6e, 0xaaf9: 0xe0000b6b, 0xaafa: 0xe0000b5c, 0xaafb: 0xe0000b59, + 0xaafc: 0xe0000b26, 0xaafd: 0xe0000b23, 0xaafe: 0xe0003cb4, 0xaaff: 0xe0003cb1, + // Block 0x2ac, offset 0xab00 + 0xab00: 0xe0000b03, 0xab01: 0xe0000aff, 0xab02: 0xe0000b13, 0xab03: 0xe0000b0f, + 0xab04: 0xe0000b0b, 0xab05: 0xe0000b07, 0xab06: 0xe0000b75, 0xab07: 0xe0000b71, + 0xab08: 0xe0000c66, 0xab09: 0xe0000c63, 0xab0a: 0xe0000c78, 0xab0b: 0xe0000c75, + 0xab0c: 0xe0000e84, 0xab0d: 0xe0000e81, 0xab0e: 0xe0000e44, 0xab0f: 0xe0000e41, + 0xab10: 0xe0003cc6, 0xab11: 0xe0003cc3, 0xab12: 0xe0000db5, 0xab13: 0xe0000db1, + 0xab14: 0xe0000dc5, 0xab15: 0xe0000dc1, 0xab16: 0xe0000dbd, 0xab17: 0xe0000db9, + 0xab18: 0xe0000e8b, 0xab19: 0xe0000e87, 0xab1a: 0xe0003cd8, 0xab1b: 0xe0003cd5, + 0xab1c: 0xe0000e65, 0xab1d: 0xe0000e61, 0xab1e: 0xe0000e75, 0xab1f: 0xe0000e71, + 0xab20: 0xe0000e6d, 0xab21: 0xe0000e69, 0xab22: 0xe0000e7d, 0xab23: 0xe0000e79, + 0xab24: 0xe000108d, 0xab25: 0xe000108a, 0xab26: 0xe000104d, 0xab27: 0xe000104a, + 0xab28: 0xe0003cea, 0xab29: 0xe0003ce7, 0xab2a: 0xe000106e, 0xab2b: 0xe000106a, + 0xab2c: 0xe000107e, 0xab2d: 0xe000107a, 0xab2e: 0xe0001076, 0xab2f: 0xe0001072, + 0xab30: 0xe0001086, 0xab31: 0xe0001082, 0xab32: 0xe0001108, 0xab33: 0xe0001105, + 0xab34: 0xe0001135, 0xab35: 0xe0001132, 0xab36: 0xe000112f, 0xab37: 0xe000112c, + 0xab38: 0xe000111d, 0xab39: 0xe000111a, 0xab3a: 0xe0000d0a, 0xab3b: 0xe0000d07, + 0xab3c: 0x0030d888, 0xab3d: 0x4030d820, 0xab3e: 0x00312088, 0xab3f: 0x40312020, + // Block 0x2ad, offset 0xab40 + 0xab40: 0x40021220, 0xab41: 0x40025c20, 0xab42: 0x40030420, 0xab43: 0x40051220, + 0xab44: 0x40279a20, 0xab45: 0x4027ca20, 0xab46: 0xe0002206, 0xab47: 0xe00001d3, + 0xab48: 0x40049c20, 0xab49: 0x40049e20, 0xab4a: 0x4004a020, 0xab4b: 0x4004a220, + 0xab4c: 0x4004a420, 0xab4d: 0x4004a620, 0xab4e: 0x4004a820, 0xab4f: 0x4004aa20, + 0xab50: 0x4004ac20, 0xab51: 0x4004ae20, 0xab52: 0x40279c20, 0xab53: 0x40279e20, + 0xab54: 0x4004b020, 0xab55: 0x4004b220, 0xab56: 0x4004b420, 0xab57: 0x4004b620, + 0xab58: 0x4004b820, 0xab59: 0x4004ba20, 0xab5a: 0x4004bc20, 0xab5b: 0x4004be20, + 0xab5c: 0x40023820, 0xab5d: 0x4003ea20, 0xab5e: 0x4003ec20, 0xab5f: 0x4003ee20, + 0xab60: 0x4027a020, 0xab61: 0xe0000267, 0xab62: 0xe000037f, 0xab63: 0xe0000459, + 0xab64: 0xe000052e, 0xab65: 0xe00005f8, 0xab66: 0xe00006c3, 0xab67: 0xe000076b, + 0xab68: 0xe0000817, 0xab69: 0xe00008bc, 0xab6a: 0xada12202, 0xab6b: 0xae412302, + 0xab6c: 0xae812402, 0xab6d: 0xade12502, 0xab6e: 0xae012602, 0xab6f: 0xae012702, + 0xab70: 0x40023a20, 0xab71: 0x4027ce20, 0xab72: 0xe0000152, 0xab73: 0x4027d020, + 0xab74: 0xe0000155, 0xab75: 0x4027d220, 0xab76: 0x00279c84, 0xab77: 0x4027a220, + 0xab78: 0x02a68284, 0xab79: 0x02a68884, 0xab7a: 0x02a68a84, 0xab7b: 0x4027cc20, + 0xab7c: 0xe000231a, 0xab7d: 0x40051420, 0xab7e: 0x4027a420, 0xab7f: 0x4027a620, + // Block 0x2ae, offset 0xab80 + 0xab81: 0xc64a3231, 0xab82: 0xc6503231, 0xab83: 0xc71a3231, + 0xab84: 0xc7203231, 0xab85: 0xc7d83a21, 0xab86: 0xc7e233e1, 0xab87: 0xc8c13231, + 0xab88: 0xc8c73231, 0xab89: 0xc9763231, 0xab8a: 0xc97c3231, 0xab8b: 0xc65c32b1, + 0xab8c: 0xc6693231, 0xab8d: 0xc72633e1, 0xab8e: 0xc73b3671, 0xab8f: 0xc80433e1, + 0xab90: 0xc8193671, 0xab91: 0xc8d332b1, 0xab92: 0xc8e03231, 0xab93: 0xc98233e1, + 0xab94: 0xc9973671, 0xab95: 0xc66f33e1, 0xab96: 0xc6843671, 0xab97: 0xc74833e1, + 0xab98: 0xc75d3671, 0xab99: 0xc82633e1, 0xab9a: 0xc83b3671, 0xab9b: 0xc8e633e1, + 0xab9c: 0xc8fb3671, 0xab9d: 0xc99f33e1, 0xab9e: 0xc9b43671, 0xab9f: 0xc68c33e1, + 0xaba0: 0xc6a13671, 0xaba1: 0xc76533e1, 0xaba2: 0xc77a3671, 0xaba3: 0xc8433a21, + 0xaba4: 0xc84d33e1, 0xaba5: 0xc8623671, 0xaba6: 0xc90333e1, 0xaba7: 0xc9183671, + 0xaba8: 0xc9c133e1, 0xaba9: 0xc9d63671, 0xabaa: 0xc6a93231, 0xabab: 0xc7823231, + 0xabac: 0xc86d3231, 0xabad: 0xc9203231, 0xabae: 0xc9de3231, 0xabaf: 0xc6b436f1, + 0xabb0: 0xc6cf3671, 0xabb1: 0xc6d73671, 0xabb2: 0xc78d36f1, 0xabb3: 0xc7a83671, + 0xabb4: 0xc7b03671, 0xabb5: 0xc87836f1, 0xabb6: 0xc8933671, 0xabb7: 0xc89b3671, + 0xabb8: 0xc92b36f1, 0xabb9: 0xc9463671, 0xabba: 0xc94e3671, 0xabbb: 0xc9e936f1, + 0xabbc: 0xca043671, 0xabbd: 0xca0c3671, 0xabbe: 0xc6df3231, 0xabbf: 0xc7b83231, + // Block 0x2af, offset 0xabc0 + 0xabc0: 0xc8a63231, 0xabc1: 0xc9563231, 0xabc2: 0xca143231, 0xabc3: 0xc6e53231, + 0xabc4: 0xc6eb3231, 0xabc5: 0xc8ac3231, 0xabc6: 0xc8b23231, 0xabc7: 0xca1a3231, + 0xabc8: 0xca203231, 0xabc9: 0xc6f43231, 0xabca: 0xc7c13231, 0xabcb: 0xc8bb3231, + 0xabcc: 0xc95f3231, 0xabcd: 0xca293231, 0xabce: 0xc6fa3a21, 0xabcf: 0xc7043a21, + 0xabd0: 0xc7c73a21, 0xabd1: 0xc9653a21, 0xabd2: 0xca2f3a21, 0xabd3: 0xca453ab1, + 0xabd4: 0xc7f73671, 0xabd5: 0xc6563231, 0xabd6: 0xc8cd3231, + 0xabd9: 0xa0812802, 0xabda: 0xa0812902, 0xabdb: 0x40063c20, + 0xabdc: 0x40063e20, 0xabdd: 0x4027d820, 0xabde: 0xe000015b, 0xabdf: 0xe0004033, + 0xabe0: 0x40023c20, 0xabe1: 0xc64d3281, 0xabe2: 0xc6533281, 0xabe3: 0xc71d3281, + 0xabe4: 0xc7233281, 0xabe5: 0xc7dd3601, 0xabe6: 0xc7ea3501, 0xabe7: 0xc8c43281, + 0xabe8: 0xc8ca3281, 0xabe9: 0xc9793281, 0xabea: 0xc97f3281, 0xabeb: 0xc6613361, + 0xabec: 0xc66c3281, 0xabed: 0xc72e3501, 0xabee: 0xc73f36c1, 0xabef: 0xc80c3501, + 0xabf0: 0xc81d36c1, 0xabf1: 0xc8d83361, 0xabf2: 0xc8e33281, 0xabf3: 0xc98a3501, + 0xabf4: 0xc99b36c1, 0xabf5: 0xc6773501, 0xabf6: 0xc68836c1, 0xabf7: 0xc7503501, + 0xabf8: 0xc76136c1, 0xabf9: 0xc82e3501, 0xabfa: 0xc83f36c1, 0xabfb: 0xc8ee3501, + 0xabfc: 0xc8ff36c1, 0xabfd: 0xc9a73501, 0xabfe: 0xc9b836c1, 0xabff: 0xc6943501, + // Block 0x2b0, offset 0xac00 + 0xac00: 0xc6a536c1, 0xac01: 0xc76d3501, 0xac02: 0xc77e36c1, 0xac03: 0xc8483601, + 0xac04: 0xc8553501, 0xac05: 0xc86636c1, 0xac06: 0xc90b3501, 0xac07: 0xc91c36c1, + 0xac08: 0xc9c93501, 0xac09: 0xc9da36c1, 0xac0a: 0xc6ac3281, 0xac0b: 0xc7853281, + 0xac0c: 0xc8703281, 0xac0d: 0xc9233281, 0xac0e: 0xc9e13281, 0xac0f: 0xc6bf38a1, + 0xac10: 0xc6d336c1, 0xac11: 0xc6db36c1, 0xac12: 0xc79838a1, 0xac13: 0xc7ac36c1, + 0xac14: 0xc7b436c1, 0xac15: 0xc88338a1, 0xac16: 0xc89736c1, 0xac17: 0xc89f36c1, + 0xac18: 0xc93638a1, 0xac19: 0xc94a36c1, 0xac1a: 0xc95236c1, 0xac1b: 0xc9f438a1, + 0xac1c: 0xca0836c1, 0xac1d: 0xca1036c1, 0xac1e: 0xc6e23281, 0xac1f: 0xc7bb3281, + 0xac20: 0xc8a93281, 0xac21: 0xc9593281, 0xac22: 0xca173281, 0xac23: 0xc6e83281, + 0xac24: 0xc6ee3281, 0xac25: 0xc8af3281, 0xac26: 0xc8b53281, 0xac27: 0xca1d3281, + 0xac28: 0xca233281, 0xac29: 0xc6f73281, 0xac2a: 0xc7c43281, 0xac2b: 0xc8be3281, + 0xac2c: 0xc9623281, 0xac2d: 0xca2c3281, 0xac2e: 0xc6ff3601, 0xac2f: 0xc7093501, + 0xac30: 0xc7cc3501, 0xac31: 0xc96a3501, 0xac32: 0xca343501, 0xac33: 0xca453ae1, + 0xac34: 0xc7fb36c1, 0xac35: 0xc6593281, 0xac36: 0xc8d03281, 0xac37: 0xc71636c1, + 0xac38: 0xc7d436c1, 0xac39: 0xc97236c1, 0xac3a: 0xca4136c1, 0xac3b: 0x40023e20, + 0xac3c: 0x4027d620, 0xac3d: 0x4027d820, 0xac3e: 0xe000015b, 0xac3f: 0xe0003eda, + // Block 0x2b1, offset 0xac40 + 0xac45: 0x4065da20, 0xac46: 0x4065dc20, 0xac47: 0x4065de20, + 0xac48: 0x4065e020, 0xac49: 0x4065e420, 0xac4a: 0x4065e620, 0xac4b: 0x4065e820, + 0xac4c: 0x4065ea20, 0xac4d: 0x4065ec20, 0xac4e: 0x4065ee20, 0xac4f: 0x4065f420, + 0xac50: 0x4065f620, 0xac51: 0x4065f820, 0xac52: 0x4065fa20, 0xac53: 0x4065fe20, + 0xac54: 0x40660020, 0xac55: 0x40660220, 0xac56: 0x40660420, 0xac57: 0x40660620, + 0xac58: 0x40660820, 0xac59: 0x40660a20, 0xac5a: 0x40661220, 0xac5b: 0x40661420, + 0xac5c: 0x40661820, 0xac5d: 0x40661a20, 0xac5e: 0x40661e20, 0xac5f: 0x40662020, + 0xac60: 0x40662220, 0xac61: 0x40662420, 0xac62: 0x40662620, 0xac63: 0x40662820, + 0xac64: 0x40662a20, 0xac65: 0x40662e20, 0xac66: 0x40663620, 0xac67: 0x40663820, + 0xac68: 0x40663a20, 0xac69: 0x40663c20, 0xac6a: 0x4065e220, 0xac6b: 0x4065f020, + 0xac6c: 0x4065fc20, 0xac6d: 0x40663e20, + 0xac71: 0x4062ac20, 0xac72: 0x4062ae20, 0xac73: 0x40646820, + 0xac74: 0x4062b020, 0xac75: 0x40646c20, 0xac76: 0x40646e20, 0xac77: 0x4062b220, + 0xac78: 0x4062b420, 0xac79: 0x4062b620, 0xac7a: 0x40647420, 0xac7b: 0x40647620, + 0xac7c: 0x40647820, 0xac7d: 0x40647a20, 0xac7e: 0x40647c20, 0xac7f: 0x40647e20, + // Block 0x2b2, offset 0xac80 + 0xac80: 0x4062e020, 0xac81: 0x4062b820, 0xac82: 0x4062ba20, 0xac83: 0x4062bc20, + 0xac84: 0x4062ee20, 0xac85: 0x4062be20, 0xac86: 0x4062c020, 0xac87: 0x4062c220, + 0xac88: 0x4062c420, 0xac89: 0x4062c620, 0xac8a: 0x4062c820, 0xac8b: 0x4062ca20, + 0xac8c: 0x4062cc20, 0xac8d: 0x4062ce20, 0xac8e: 0x4062d020, 0xac8f: 0x4063a820, + 0xac90: 0x4063aa20, 0xac91: 0x4063ac20, 0xac92: 0x4063ae20, 0xac93: 0x4063b020, + 0xac94: 0x4063b220, 0xac95: 0x4063b420, 0xac96: 0x4063b620, 0xac97: 0x4063b820, + 0xac98: 0x4063ba20, 0xac99: 0x4063bc20, 0xac9a: 0x4063be20, 0xac9b: 0x4063c020, + 0xac9c: 0x4063c220, 0xac9d: 0x4063c420, 0xac9e: 0x4063c620, 0xac9f: 0x4063c820, + 0xaca0: 0x4063ca20, 0xaca1: 0x4063cc20, 0xaca2: 0x4063ce20, 0xaca3: 0x4063d020, + 0xaca4: 0x4063a620, 0xaca5: 0x0062d484, 0xaca6: 0x0062d684, 0xaca7: 0x0064a284, + 0xaca8: 0x0064a484, 0xaca9: 0x0064ac84, 0xacaa: 0x0064b084, 0xacab: 0x0064ba84, + 0xacac: 0x0064c284, 0xacad: 0x0064c684, 0xacae: 0x0062e484, 0xacaf: 0x0064ce84, + 0xacb0: 0x0064d284, 0xacb1: 0x0062e684, 0xacb2: 0x0062e884, 0xacb3: 0x0062ec84, + 0xacb4: 0x0062f084, 0xacb5: 0x0062f284, 0xacb6: 0x0062fa84, 0xacb7: 0x0062fe84, + 0xacb8: 0x00630284, 0xacb9: 0x00630484, 0xacba: 0x00630684, 0xacbb: 0x00630884, + 0xacbc: 0x00630a84, 0xacbd: 0x00631084, 0xacbe: 0x00631884, 0xacbf: 0x00632c84, + // Block 0x2b3, offset 0xacc0 + 0xacc0: 0x40275220, 0xacc1: 0x40275420, 0xacc2: 0x40275620, 0xacc3: 0x40275820, + 0xacc4: 0x40275a20, 0xacc5: 0x40275c20, 0xacc6: 0x40275e20, 0xacc7: 0x40276020, + 0xacc8: 0x40276220, 0xacc9: 0x40276420, 0xacca: 0x40276620, 0xaccb: 0x40276820, + 0xaccc: 0x40276a20, 0xaccd: 0x40276c20, 0xacce: 0x40276e20, 0xaccf: 0x40277020, + 0xacd0: 0x40277220, 0xacd1: 0x40277420, 0xacd2: 0x40277620, 0xacd3: 0x40277820, + 0xacd4: 0x40277a20, 0xacd5: 0x40277c20, 0xacd6: 0x40277e20, 0xacd7: 0x40278020, + 0xacd8: 0x40278220, 0xacd9: 0x40278420, 0xacda: 0x40278620, 0xacdb: 0x40278820, + 0xacdc: 0x40278a20, 0xacdd: 0x40278c20, 0xacde: 0x40278e20, 0xacdf: 0x40279020, + 0xace0: 0x40279220, 0xace1: 0x40279420, 0xace2: 0x40279620, 0xace3: 0x40279820, + 0xacf0: 0xc7ff3601, 0xacf1: 0xc7433601, 0xacf2: 0xc8213601, 0xacf3: 0xc9bc3601, + 0xacf4: 0xc86a3281, 0xacf5: 0xc6af3601, 0xacf6: 0xc7883601, 0xacf7: 0xc8733601, + 0xacf8: 0xc9263601, 0xacf9: 0xc9e43601, 0xacfa: 0xc8a33281, 0xacfb: 0xc6f13281, + 0xacfc: 0xc7be3281, 0xacfd: 0xc8b83281, 0xacfe: 0xc95c3281, 0xacff: 0xca263281, + // Block 0x2b4, offset 0xad00 + 0xad00: 0xf0000404, 0xad01: 0xf0000404, 0xad02: 0xf0000404, 0xad03: 0xf0000404, + 0xad04: 0xf0000404, 0xad05: 0xf0000404, 0xad06: 0xf0000404, 0xad07: 0xf0000404, + 0xad08: 0xf0000404, 0xad09: 0xf0000404, 0xad0a: 0xf0000404, 0xad0b: 0xf0000404, + 0xad0c: 0xf0000404, 0xad0d: 0xf0000404, 0xad0e: 0xe000004c, 0xad0f: 0xe0000051, + 0xad10: 0xe0000056, 0xad11: 0xe000005b, 0xad12: 0xe0000060, 0xad13: 0xe0000065, + 0xad14: 0xe000006a, 0xad15: 0xe000006f, 0xad16: 0xe0000083, 0xad17: 0xe000008d, + 0xad18: 0xe0000092, 0xad19: 0xe0000097, 0xad1a: 0xe000009c, 0xad1b: 0xe00000a1, + 0xad1c: 0xe0000088, 0xad1d: 0xe0000074, 0xad1e: 0xe000007c, + 0xad20: 0xe0002c96, 0xad21: 0xe0002ca6, 0xad22: 0xe0002c9e, 0xad23: 0xe0002cd6, + 0xad24: 0xe0002caa, 0xad25: 0xe0002cbe, 0xad26: 0xe0002c9a, 0xad27: 0xe0002cba, + 0xad28: 0xe0002ca2, 0xad29: 0xe0002cc6, 0xad2a: 0xe0002ce6, 0xad2b: 0xe0002cfa, + 0xad2c: 0xe0002cf6, 0xad2d: 0xe0002cee, 0xad2e: 0xe0002d22, 0xad2f: 0xe0002cda, + 0xad30: 0xe0002ce2, 0xad31: 0xe0002cf2, 0xad32: 0xe0002cea, 0xad33: 0xe0002d06, + 0xad34: 0xe0002cce, 0xad35: 0xe0002cfe, 0xad36: 0xe0002d1a, 0xad37: 0xe0002d0a, + 0xad38: 0xe0002cc2, 0xad39: 0xe0002cae, 0xad3a: 0xe0002cd2, 0xad3b: 0xe0002cde, + 0xad3c: 0xe0002d02, 0xad3d: 0xe0002cb2, 0xad3e: 0xe0002d1e, 0xad3f: 0xe0002cca, + // Block 0x2b5, offset 0xad40 + 0xad40: 0xe0002d0e, 0xad41: 0xe0002cb6, 0xad42: 0xe0002d12, 0xad43: 0xe0002d16, + 0xad44: 0x02aa9e86, 0xad45: 0x02bcf886, 0xad46: 0x02cb0e86, 0xad47: 0x02f71e86, + 0xad48: 0xe00002e3, 0xad49: 0xe00003d8, 0xad4a: 0xe00004b3, 0xad4b: 0xe000057d, + 0xad4c: 0xe0000648, 0xad4d: 0xe00006f0, 0xad4e: 0xe000079c, 0xad4f: 0xe0000841, + 0xad50: 0xe0000ec0, 0xad51: 0xf0000606, 0xad52: 0xf0000606, 0xad53: 0xf0000606, + 0xad54: 0xf0000606, 0xad55: 0xf0000606, 0xad56: 0xf0000606, 0xad57: 0xf0000606, + 0xad58: 0xf0000606, 0xad59: 0xf0000606, 0xad5a: 0xf0000606, 0xad5b: 0xf0000606, + 0xad5c: 0xf0000606, 0xad5d: 0xf0000606, 0xad5e: 0xf0000606, 0xad5f: 0xf0000606, + 0xad60: 0x0062ac86, 0xad61: 0x0062b086, 0xad62: 0x0062b286, 0xad63: 0x0062b686, + 0xad64: 0x0062b886, 0xad65: 0x0062ba86, 0xad66: 0x0062be86, 0xad67: 0x0062c286, + 0xad68: 0x0062c486, 0xad69: 0x0062c886, 0xad6a: 0x0062ca86, 0xad6b: 0x0062cc86, + 0xad6c: 0x0062ce86, 0xad6d: 0x0062d086, 0xad6e: 0xf0000606, 0xad6f: 0xf0000606, + 0xad70: 0xf0000606, 0xad71: 0xf0000606, 0xad72: 0xf0000606, 0xad73: 0xf0000606, + 0xad74: 0xf0000606, 0xad75: 0xf0000606, 0xad76: 0xf0000606, 0xad77: 0xf0000606, + 0xad78: 0xf0000606, 0xad79: 0xf0000606, 0xad7a: 0xf0000606, 0xad7b: 0xf0000606, + 0xad7c: 0xe0002127, 0xad7d: 0xe0002122, 0xad7e: 0xf0000606, 0xad7f: 0x4027ac20, + // Block 0x2b6, offset 0xad80 + 0xad80: 0xe0002dea, 0xad81: 0xe0002e57, 0xad82: 0xe0002e8c, 0xad83: 0xe0002eb9, + 0xad84: 0xe0002ecb, 0xad85: 0xe0002eda, 0xad86: 0xe0002ee9, 0xad87: 0xe0002ef8, + 0xad88: 0xe0002f07, 0xad89: 0xe0002d50, 0xad8a: 0xe0002d63, 0xad8b: 0xe0002d76, + 0xad8c: 0xf0001c1d, 0xad8d: 0xe0000b85, 0xad8e: 0xf0001d1c, 0xad8f: 0xe0000d14, + 0xad90: 0x00657693, 0xad91: 0x00657893, 0xad92: 0x00657a93, 0xad93: 0x00657e93, + 0xad94: 0x00658093, 0xad95: 0x00658293, 0xad96: 0x00658493, 0xad97: 0x00658693, + 0xad98: 0x00658893, 0xad99: 0x00658a93, 0xad9a: 0x00658c93, 0xad9b: 0x00658e93, + 0xad9c: 0x00659093, 0xad9d: 0x00659293, 0xad9e: 0x00659493, 0xad9f: 0x00659693, + 0xada0: 0x00659893, 0xada1: 0x00659a93, 0xada2: 0x00659c93, 0xada3: 0x00659e93, + 0xada4: 0x0065a093, 0xada5: 0x0065a293, 0xada6: 0x0065a493, 0xada7: 0x0065a693, + 0xada8: 0x0065a893, 0xada9: 0x0065aa93, 0xadaa: 0x0065ac93, 0xadab: 0x0065ae93, + 0xadac: 0x0065b093, 0xadad: 0x0065b293, 0xadae: 0x0065b493, 0xadaf: 0x0065b693, + 0xadb0: 0x0065b893, 0xadb1: 0x0065ba93, 0xadb2: 0x0065bc93, 0xadb3: 0x0065be93, + 0xadb4: 0x0065c093, 0xadb5: 0x0065c493, 0xadb6: 0x0065c693, 0xadb7: 0x0065c893, + 0xadb8: 0x0065ca93, 0xadb9: 0x0065cc93, 0xadba: 0x0065ce93, 0xadbb: 0x0065d093, + 0xadbc: 0x0065d293, 0xadbd: 0x0065d493, 0xadbe: 0x0065d693, + // Block 0x2b7, offset 0xadc0 + 0xadc0: 0xe000230b, 0xadc1: 0xe00022f8, 0xadc2: 0xe00022fc, 0xadc3: 0xe0002311, + 0xadc4: 0xe0002316, 0xadc5: 0xe000231d, 0xadc6: 0xe0002321, 0xadc7: 0xe0002325, + 0xadc8: 0xe000232b, 0xadc9: 0xf0001c1c, 0xadca: 0xe0002330, 0xadcb: 0xe000233c, + 0xadcc: 0xe0002340, 0xadcd: 0xe0002337, 0xadce: 0xe0002346, 0xadcf: 0xe000234b, + 0xadd0: 0xe000234f, 0xadd1: 0xe0002353, 0xadd2: 0xf0001c1c, 0xadd3: 0xe000235e, + 0xadd4: 0xe0002358, 0xadd5: 0xf0001c1c, 0xadd6: 0xe0002363, 0xadd7: 0xe000236d, + 0xadd8: 0xe0002d39, 0xadd9: 0xe0002ded, 0xadda: 0xe0002e5a, 0xaddb: 0xe0002e8f, + 0xaddc: 0xe0002ebc, 0xaddd: 0xe0002ece, 0xadde: 0xe0002edd, 0xaddf: 0xe0002eec, + 0xade0: 0xe0002efb, 0xade1: 0xe0002f0a, 0xade2: 0xe0002d54, 0xade3: 0xe0002d67, + 0xade4: 0xe0002d7a, 0xade5: 0xe0002d89, 0xade6: 0xe0002d98, 0xade7: 0xe0002da7, + 0xade8: 0xe0002db6, 0xade9: 0xe0002dc5, 0xadea: 0xe0002dd4, 0xadeb: 0xe0002de3, + 0xadec: 0xe0002e01, 0xaded: 0xe0002e0c, 0xadee: 0xe0002e17, 0xadef: 0xe0002e22, + 0xadf0: 0xe0002e2d, 0xadf1: 0xe0000c1e, 0xadf2: 0xf0001c1c, 0xadf3: 0xf0001d1d, + 0xadf4: 0xe0000a31, 0xadf5: 0xf0001d1c, 0xadf6: 0xf0001c1c, 0xadf7: 0xf0001c1c, + 0xadf8: 0xe0000ac2, 0xadf9: 0xe0000ac6, 0xadfa: 0xf0001d1d, 0xadfb: 0xe0004091, + 0xadfc: 0xe0004097, 0xadfd: 0xe000408e, 0xadfe: 0xe0004094, 0xadff: 0xe0002431, + // Block 0x2b8, offset 0xae00 + 0xae00: 0xf0001d1c, 0xae01: 0xf0001d1d, 0xae02: 0xe00009b7, 0xae03: 0xf0001c1d, + 0xae04: 0xf0001c1c, 0xae05: 0xf0001c1c, 0xae06: 0xe0000a66, 0xae07: 0xe0000a7a, + 0xae08: 0xf0001d1c, 0xae09: 0xf0001c1d, 0xae0a: 0xf0001c1c, 0xae0b: 0xf0001d1d, + 0xae0c: 0xf0001c1c, 0xae0d: 0xf0001d1d, 0xae0e: 0xf0001d1d, 0xae0f: 0xf0001c1c, + 0xae10: 0xf0001c1c, 0xae11: 0xf0001c1c, 0xae12: 0xe0000d0d, 0xae13: 0xf0001c1c, + 0xae14: 0xf0001c1c, 0xae15: 0xe0000d3a, 0xae16: 0xe0000d46, 0xae17: 0xf0001d1d, + 0xae18: 0xe0000eb0, 0xae19: 0xe0000eb8, 0xae1a: 0xf0001d1d, 0xae1b: 0xf0001c1c, + 0xae1c: 0xf0001c1d, 0xae1d: 0xf0001c1d, 0xae1e: 0xe00010b2, 0xae1f: 0xe00009c8, + 0xae20: 0xe0002de7, 0xae21: 0xe0002e54, 0xae22: 0xe0002e89, 0xae23: 0xe0002eb6, + 0xae24: 0xe0002ec8, 0xae25: 0xe0002ed7, 0xae26: 0xe0002ee6, 0xae27: 0xe0002ef5, + 0xae28: 0xe0002f04, 0xae29: 0xe0002d4c, 0xae2a: 0xe0002d5f, 0xae2b: 0xe0002d72, + 0xae2c: 0xe0002d85, 0xae2d: 0xe0002d94, 0xae2e: 0xe0002da3, 0xae2f: 0xe0002db2, + 0xae30: 0xe0002dc1, 0xae31: 0xe0002dd0, 0xae32: 0xe0002ddf, 0xae33: 0xe0002dfd, + 0xae34: 0xe0002e08, 0xae35: 0xe0002e13, 0xae36: 0xe0002e1e, 0xae37: 0xe0002e29, + 0xae38: 0xe0002e34, 0xae39: 0xe0002e3b, 0xae3a: 0xe0002e42, 0xae3b: 0xe0002e49, + 0xae3c: 0xe0002e50, 0xae3d: 0xe0002e66, 0xae3e: 0xe0002e6d, 0xae3f: 0xe0000bdf, + // Block 0x2b9, offset 0xae40 + 0xae40: 0x6c009820, 0xae41: 0x6c0ea820, 0xae43: 0x6c08fe20, + 0xae47: 0x6c148c20, + 0xae48: 0x6c0ad420, 0xae49: 0x6c083420, 0xae4a: 0x6c0ad220, 0xae4b: 0x6c01b020, + 0xae4d: 0x6c12c420, 0xae4e: 0x6c158a20, + 0xae50: 0x6c172e20, 0xae51: 0x6c00da20, + 0xae54: 0x6c02d020, 0xae55: 0x6c173020, 0xae56: 0x6c0bc820, 0xae57: 0x6c18e620, + 0xae58: 0x6c041820, 0xae59: 0x6c134c20, + 0xae5e: 0x6c0ad620, + 0xae61: 0x6c164420, + 0xae66: 0x6c135c20, + 0xae6a: 0x6c173220, + 0xae6d: 0x6c0e8020, + 0xae71: 0x6c173420, 0xae72: 0x6c051c20, + 0xae76: 0x6c173620, + 0xae78: 0x6c036a20, 0xae79: 0x6c0e1420, 0xae7b: 0x6c095e20, + 0xae7c: 0x6c173820, 0xae7f: 0x6c173a20, + // Block 0x2ba, offset 0xae80 + 0xae82: 0x6c173c20, 0xae83: 0x6c110e20, + 0xae85: 0x6c041a20, + 0xae8b: 0x6c111220, + 0xae8d: 0x6c10ae20, 0xae8e: 0x6c062620, 0xae8f: 0x6c13fa20, + 0xae95: 0x6c29d820, 0xae96: 0x6c173e20, 0xae97: 0x6c0ad820, + 0xae98: 0x6c174020, 0xae99: 0x6c01a220, + 0xae9d: 0x6c04f220, 0xae9e: 0x6c068020, 0xae9f: 0x6c152220, + 0xaea2: 0x6c1b9e20, + 0xaeb1: 0x6c15ec20, 0xaeb3: 0x6c10e220, + 0xaebe: 0x6c02fa20, + // Block 0x2bb, offset 0xaec0 + 0xaec0: 0x6c03d620, 0xaec2: 0x6c174220, + 0xaec5: 0x6c174420, 0xaec6: 0x6c163e20, + 0xaec8: 0x6c158620, 0xaec9: 0x6c0d0c20, 0xaeca: 0x6c174820, 0xaecb: 0x6c08c020, + 0xaecc: 0x6c10ce20, 0xaece: 0x6c174e20, + 0xaed1: 0x6c00f820, 0xaed2: 0x6c065e20, + 0xaed4: 0x6c065c20, 0xaed5: 0x6c008c20, + 0xaed8: 0x6c171a20, 0xaed9: 0x6c171820, 0xaedb: 0x6c077e20, + 0xaedc: 0x6c000220, 0xaede: 0x6c175020, 0xaedf: 0x6c175220, + 0xaee0: 0x6c175420, 0xaee1: 0x6c13fc20, 0xaee2: 0x6c175620, + 0xaee4: 0x6c068420, 0xaee5: 0x6c008e20, 0xaee6: 0x6c147820, + 0xaee8: 0x6c046420, 0xaeeb: 0x6c046620, + 0xaeec: 0x6c046820, 0xaeed: 0x6c0f3420, 0xaeee: 0x6c164020, + 0xaef0: 0x6c175820, 0xaef3: 0x6c175a20, + 0xaef6: 0x6c175c20, + 0xaefa: 0x6c0b5e20, + // Block 0x2bc, offset 0xaf00 + 0xaf00: 0x6c09c020, 0xaf01: 0x6c0b6020, 0xaf02: 0x6c176620, + 0xaf04: 0x6c176220, 0xaf06: 0x6c176420, 0xaf07: 0x6c041c20, + 0xaf0a: 0x6c075e20, 0xaf0b: 0x6c021820, + 0xaf0d: 0x6c176020, 0xaf0e: 0x6c175e20, 0xaf0f: 0x6c132a20, + 0xaf14: 0x6c086020, 0xaf15: 0x6c085e20, 0xaf16: 0x6c0d7420, 0xaf17: 0x6c176820, + 0xaf18: 0x6c12c620, 0xaf19: 0x6c0c4e20, + 0xaf1e: 0x6c176a20, 0xaf1f: 0x6c176e20, + 0xaf23: 0x6c0dc220, + 0xaf24: 0x6c168a20, 0xaf25: 0x6c005420, + 0xaf2d: 0x6c176c20, 0xaf2e: 0x6c01b420, + 0xaf30: 0x6c04b020, 0xaf32: 0x6c0e8220, + 0xaf36: 0x6c05c220, 0xaf37: 0x6c177020, + 0xaf3b: 0x6c10ec20, + // Block 0x2bd, offset 0xaf40 + 0xaf41: 0x6c038620, + 0xaf49: 0x6c177220, 0xaf4a: 0x6c005620, + 0xaf4d: 0x6c066020, 0xaf4e: 0x6c038820, 0xaf4f: 0x6c131020, + 0xaf50: 0x6c11c420, 0xaf51: 0x6c041e20, + 0xaf5a: 0x6c021a20, + 0xaf5c: 0x6c17b820, 0xaf5d: 0x6c0fae20, + 0xaf6f: 0x6c117c20, + 0xaf70: 0x6c177620, + 0xaf74: 0x6c11d820, 0xaf76: 0x6c168c20, + 0xaf78: 0x6c0b1e20, 0xaf7a: 0x6c086220, + 0xaf7c: 0x6c08c220, 0xaf7d: 0x6c01b820, + // Block 0x2be, offset 0xaf80 + 0xaf83: 0x6c0f1220, + 0xaf86: 0x6c0df820, 0xaf87: 0x6c177e20, + 0xaf8d: 0x6c005820, 0xaf8e: 0x6c0f3620, 0xaf8f: 0x6c09c220, + 0xaf90: 0x6c078020, 0xaf91: 0x6c155420, 0xaf93: 0x6c0d9420, + 0xaf95: 0x6c01b620, 0xaf97: 0x6c177c20, + 0xaf99: 0x6c158820, 0xaf9a: 0x6c177420, 0xaf9b: 0x6c177820, + 0xaf9c: 0x6c07f420, 0xaf9d: 0x6c177a20, 0xaf9e: 0x6c1ade20, + 0xafa9: 0x6c178a20, + 0xafaf: 0x6c179020, + 0xafb0: 0x6c178c20, 0xafb3: 0x6c01bc20, + 0xafb5: 0x6c134e20, 0xafb6: 0x6c178020, + 0xafbb: 0x6c178820, + 0xafbc: 0x6c068620, 0xafbf: 0x6c086420, + // Block 0x2bf, offset 0xafc0 + 0xafc3: 0x6c02fc20, + 0xafc6: 0x6c179220, + 0xafc8: 0x6c178220, 0xafcb: 0x6c168e20, + 0xafcd: 0x6c08c420, 0xafcf: 0x6c178420, + 0xafd1: 0x6c178e20, + 0xafd6: 0x6c179420, + 0xafd8: 0x6c178620, 0xafdb: 0x6c046a20, + 0xafdd: 0x6c005a20, + 0xafe0: 0x6c046c20, 0xafe1: 0x6c01ba20, + 0xafeb: 0x6c1ae020, + 0xafed: 0x6c148620, 0xafee: 0x6c12f820, 0xafef: 0x6c068820, + 0xaff5: 0x6c0b2220, 0xaff6: 0x6c163620, + 0xafff: 0x6c138820, + // Block 0x2c0, offset 0xb000 + 0xb002: 0x6c055420, 0xb003: 0x6c0d4220, + 0xb004: 0x6c020020, + 0xb00a: 0x6c09f220, + 0xb00e: 0x6c179c20, + 0xb010: 0x6c17a620, 0xb011: 0x6c17a220, + 0xb014: 0x6c179820, 0xb017: 0x6c0d5620, + 0xb018: 0x6c179e20, 0xb01a: 0x6c17a420, 0xb01b: 0x6c17a020, + 0xb01d: 0x6c139220, 0xb01f: 0x6c179a20, + 0xb021: 0x6c0b2020, 0xb023: 0x6c147a20, + 0xb024: 0x6c17a820, 0xb025: 0x6c17aa20, + 0xb02e: 0x6c099420, 0xb02f: 0x6c17c420, + 0xb033: 0x6c114420, + 0xb035: 0x6c128820, 0xb036: 0x6c17ba20, + 0xb038: 0x6c13b820, 0xb03a: 0x6c01a420, + 0xb03e: 0x6c17c220, + // Block 0x2c1, offset 0xb040 + 0xb045: 0x6c17b620, 0xb046: 0x6c17c820, + 0xb049: 0x6c0ce020, 0xb04b: 0x6c062820, + 0xb04d: 0x6c115c20, 0xb04f: 0x6c233820, + 0xb051: 0x6c17c620, 0xb052: 0x6c0fe620, + 0xb054: 0x6c17b020, 0xb056: 0x6c068c20, + 0xb059: 0x6c068a20, 0xb05a: 0x6c17ac20, + 0xb05f: 0x6c094420, + 0xb061: 0x6c17bc20, 0xb063: 0x6c13b620, + 0xb064: 0x6c0e4e20, 0xb065: 0x6c17b420, 0xb066: 0x6c05c620, + 0xb068: 0x6c17ae20, 0xb069: 0x6c17be20, 0xb06a: 0x6c17b220, 0xb06b: 0x6c166a20, + 0xb06c: 0x6c17c020, 0xb06d: 0x6c170620, + 0xb076: 0x6c04f420, + 0xb079: 0x6c05c420, + // Block 0x2c2, offset 0xb080 + 0xb083: 0x6c17ca20, + 0xb087: 0x6c17cc20, + 0xb088: 0x6c17d420, 0xb089: 0x6c005c20, + 0xb08f: 0x6c137820, + 0xb090: 0x6c17d220, + 0xb095: 0x6c17d020, 0xb096: 0x6c17d820, + 0xb09a: 0x6c17d620, + 0xb09c: 0x6c0f3820, + 0xb0a5: 0x6c05c820, + 0xb0ac: 0x6c17da20, + 0xb0b2: 0x6c091a20, + 0xb0b4: 0x6c0d4420, 0xb0b5: 0x6c0f3a20, 0xb0b6: 0x6c051420, + 0xb0b8: 0x6c17dc20, + 0xb0bd: 0x6c03d820, + // Block 0x2c3, offset 0xb0c0 + 0xb0c0: 0x6c17de20, + 0xb0c5: 0x6c17e220, + 0xb0cd: 0x6c13fe20, + 0xb0d1: 0x6c05b020, + 0xb0d8: 0x6c083620, 0xb0d9: 0x6c124e20, 0xb0da: 0x6c17e020, + 0xb0ec: 0x6c07a220, 0xb0ed: 0x6c159220, + 0xb0f2: 0x6c17e620, 0xb0f3: 0x6c17ec20, + 0xb0f4: 0x6c17e420, 0xb0f5: 0x6c07a020, 0xb0f7: 0x6c0a4620, + 0xb0fe: 0x6c055620, + // Block 0x2c4, offset 0xb100 + 0xb102: 0x6c17ee20, + 0xb105: 0x6c04c620, + 0xb109: 0x6c17e820, 0xb10a: 0x6c17ea20, + 0xb10d: 0x6c104620, 0xb10f: 0x6c0d3420, + 0xb111: 0x6c046e20, + 0xb115: 0x6c142e20, 0xb116: 0x6c17f020, + 0xb11a: 0x6c164220, + 0xb11e: 0x6c17f220, + 0xb123: 0x6c17f820, + 0xb125: 0x6c17f420, 0xb127: 0x6c0cd820, + 0xb12d: 0x6c17f620, 0xb12e: 0x6c17fa20, + 0xb135: 0x6c17fe20, + 0xb139: 0x6c17fc20, 0xb13b: 0x6c136820, + // Block 0x2c5, offset 0xb140 + 0xb140: 0x6c03da20, 0xb141: 0x6c180220, 0xb142: 0x6c180420, + 0xb144: 0x6c019620, + 0xb149: 0x6c180020, + 0xb152: 0x6c097820, + 0xb154: 0x6c180a20, 0xb155: 0x6c180820, 0xb156: 0x6c180620, + 0xb158: 0x6c179620, 0xb15a: 0x6c180c20, + 0xb15f: 0x6c0a4820, + 0xb161: 0x6c180e20, + 0xb16a: 0x6c155620, + 0xb172: 0x6c150220, + 0xb177: 0x6c181220, + 0xb17a: 0x6c181020, 0xb17b: 0x6c181620, + 0xb17c: 0x6c181420, 0xb17f: 0x6c181820, + // Block 0x2c6, offset 0xb180 + 0xb180: 0x6c181a20, 0xb181: 0x6c00a820, 0xb183: 0x6c060a20, + 0xb184: 0x6c055a20, 0xb185: 0x6c09c420, 0xb186: 0x6c0eaa20, 0xb187: 0x6c047020, + 0xb188: 0x6c0c5020, 0xb189: 0x6c068e20, 0xb18b: 0x6c073820, + 0xb18c: 0x6c181e20, 0xb18d: 0x6c14e020, 0xb18e: 0x6c0fb820, + 0xb190: 0x6c08c620, 0xb192: 0x6c181c20, + 0xb194: 0x6c182020, + 0xb19a: 0x6c0fe820, + 0xb19c: 0x6c02de20, + 0xb1a2: 0x6c182220, + 0xb1a5: 0x6c10e420, + 0xb1a8: 0x6c0ca420, 0xb1a9: 0x6c182620, 0xb1aa: 0x6c182820, 0xb1ab: 0x6c11b820, + 0xb1ac: 0x6c069020, 0xb1ad: 0x6c16fa20, 0xb1ae: 0x6c182a20, + 0xb1b1: 0x6c047420, + 0xb1b5: 0x6c135020, 0xb1b6: 0x6c0d6420, 0xb1b7: 0x6c050a20, + 0xb1b8: 0x6c0f9620, + 0xb1bc: 0x6c05ca20, + // Block 0x2c7, offset 0xb1c0 + 0xb1c0: 0x6c182c20, 0xb1c2: 0x6c182e20, + 0xb1c5: 0x6c10ac20, 0xb1c6: 0x6c013a20, + 0xb1c9: 0x6c183420, 0xb1ca: 0x6c081220, + 0xb1cc: 0x6c183220, 0xb1cd: 0x6c07a420, 0xb1cf: 0x6c183620, + 0xb1d0: 0x6c27ee20, 0xb1d1: 0x6c183820, 0xb1d2: 0x6c141620, 0xb1d3: 0x6c183a20, + 0xb1d5: 0x6c183c20, 0xb1d6: 0x6c183e20, 0xb1d7: 0x6c0ada20, + 0xb1d9: 0x6c092820, + 0xb1e0: 0x6c02fe20, 0xb1e2: 0x6c184420, + 0xb1e4: 0x6c184020, 0xb1e5: 0x6c14ca20, 0xb1e6: 0x6c184220, + 0xb1e8: 0x6c12d020, 0xb1e9: 0x6c184620, 0xb1ea: 0x6c184820, 0xb1eb: 0x6c184a20, + 0xb1ec: 0x6c0fea20, + 0xb1f0: 0x6c185220, 0xb1f1: 0x6c184e20, 0xb1f2: 0x6c185020, 0xb1f3: 0x6c184c20, + 0xb1f4: 0x6c07de20, 0xb1f5: 0x6c185420, 0xb1f6: 0x6c152420, 0xb1f7: 0x6c169020, + 0xb1fd: 0x6c185620, + // Block 0x2c8, offset 0xb200 + 0xb204: 0x6c0bd020, 0xb205: 0x6c185820, 0xb206: 0x6c0a0020, + 0xb209: 0x6c185a20, 0xb20b: 0x6c0eac20, + 0xb20c: 0x6c164620, 0xb20d: 0x6c0fec20, + 0xb216: 0x6c18ec20, + 0xb21b: 0x6c185c20, + 0xb21c: 0x6c31a420, 0xb21d: 0x6c04b220, + 0xb220: 0x6c185e20, 0xb221: 0x6c145020, + 0xb226: 0x6c0a1c20, 0xb227: 0x6c0df020, + 0xb229: 0x6c186220, 0xb22a: 0x6c10b020, + 0xb22d: 0x6c186420, + 0xb230: 0x6c186620, 0xb231: 0x6c025020, + 0xb235: 0x6c186820, 0xb236: 0x6c047620, + 0xb238: 0x6c108020, 0xb239: 0x6c017020, 0xb23a: 0x6c09ec20, + 0xb23d: 0x6c11a220, 0xb23e: 0x6c186a20, + // Block 0x2c9, offset 0xb240 + 0xb240: 0x6c0fee20, 0xb243: 0x6c0b6220, + 0xb244: 0x6c186c20, 0xb246: 0x6c133020, 0xb247: 0x6c0c3420, + 0xb248: 0x6c02f420, 0xb24a: 0x6c030220, 0xb24b: 0x6c186e20, + 0xb24e: 0x6c187220, + 0xb251: 0x6c055820, + 0xb254: 0x6c187020, 0xb257: 0x6c16ae20, + 0xb25d: 0x6c0a1e20, + 0xb264: 0x6c11da20, 0xb265: 0x6c137020, 0xb267: 0x6c187420, + 0xb269: 0x6c15fc20, 0xb26a: 0x6c187620, + 0xb26e: 0x6c187820, + 0xb270: 0x6c102820, 0xb273: 0x6c187a20, + 0xb276: 0x6c0bd220, 0xb277: 0x6c081420, + 0xb278: 0x6c05cc20, 0xb279: 0x6c187c20, 0xb27a: 0x6c086620, 0xb27b: 0x6c073a20, + // Block 0x2ca, offset 0xb280 + 0xb283: 0x6c0f3c20, + 0xb284: 0x6c188020, 0xb287: 0x6c0d4620, + 0xb28a: 0x6c07f620, 0xb28b: 0x6c188220, + 0xb28c: 0x6c188420, 0xb28d: 0x6c0c9c20, 0xb28f: 0x6c187e20, + 0xb294: 0x6c188820, 0xb296: 0x6c140020, + 0xb29b: 0x6c072420, + 0xb29e: 0x6c188620, + 0xb2a3: 0x6c05ce20, + 0xb2a4: 0x6c07d420, 0xb2a5: 0x6c117e20, + 0xb2a9: 0x6c188e20, 0xb2aa: 0x6c188a20, + 0xb2af: 0x6c131220, + 0xb2b0: 0x6c0adc20, 0xb2b1: 0x6c189c20, 0xb2b2: 0x6c02bc20, 0xb2b3: 0x6c189020, + 0xb2b4: 0x6c188c20, 0xb2b5: 0x6c0cda20, + 0xb2bd: 0x6c189420, 0xb2bf: 0x6c189220, + // Block 0x2cb, offset 0xb2c0 + 0xb2c3: 0x6c027c20, + 0xb2c7: 0x6c05a420, + 0xb2c8: 0x6c189e20, 0xb2c9: 0x6c162220, + 0xb2cd: 0x6c189620, + 0xb2d1: 0x6c18a020, 0xb2d2: 0x6c189a20, + 0xb2d4: 0x6c189820, + 0xb2db: 0x6c166620, + 0xb2df: 0x6c069220, + 0xb2e0: 0x6c01be20, 0xb2e3: 0x6c16b020, + 0xb2e9: 0x6c0a3620, 0xb2ea: 0x6c0fdc20, 0xb2eb: 0x6c072620, + 0xb2ec: 0x6c18a620, 0xb2ed: 0x6c18a820, + 0xb2f1: 0x6c169220, + 0xb2f4: 0x6c16da20, 0xb2f5: 0x6c18ac20, + 0xb2f9: 0x6c069420, + 0xb2fc: 0x6c18aa20, 0xb2fe: 0x6c025220, + // Block 0x2cc, offset 0xb300 + 0xb301: 0x6c18ae20, 0xb303: 0x6c144020, + 0xb305: 0x6c0ee820, 0xb307: 0x6c155820, + 0xb309: 0x6c138a20, + 0xb30d: 0x6c18b020, + 0xb312: 0x6c2f1420, + 0xb315: 0x6c104820, 0xb317: 0x6c18b220, + 0xb318: 0x6c030420, 0xb319: 0x6c14b620, + 0xb31d: 0x6c0a4a20, 0xb31e: 0x6c18b420, 0xb31f: 0x6c13a620, + 0xb320: 0x6c18bc20, 0xb322: 0x6c0bd420, 0xb323: 0x6c18b620, + 0xb324: 0x6c04c820, 0xb326: 0x6c18b820, 0xb327: 0x6c030620, + 0xb332: 0x6c054020, 0xb333: 0x6c18be20, + 0xb335: 0x6c18c020, + 0xb338: 0x6c18c220, 0xb339: 0x6c18c420, 0xb33a: 0x6c094620, + 0xb33e: 0x6c069620, 0xb33f: 0x6c150c20, + // Block 0x2cd, offset 0xb340 + 0xb341: 0x6c152020, 0xb342: 0x6c10d620, + 0xb345: 0x6c13ba20, 0xb346: 0x6c18c620, + 0xb348: 0x6c18c820, + 0xb34d: 0x6c18cc20, 0xb34f: 0x6c18d020, + 0xb350: 0x6c18ce20, + 0xb355: 0x6c18d220, 0xb356: 0x6c01b220, 0xb357: 0x6c142c20, + 0xb359: 0x6c081020, 0xb35a: 0x6c18d420, + 0xb35d: 0x6c0cee20, + 0xb360: 0x6c0a4c20, 0xb361: 0x6c047a20, 0xb363: 0x6c18d620, + 0xb36a: 0x6c121620, + 0xb36f: 0x6c18d820, + 0xb371: 0x6c18da20, 0xb373: 0x6c18dc20, + 0xb378: 0x6c18de20, 0xb379: 0x6c126420, 0xb37a: 0x6c04f820, 0xb37b: 0x6c008a20, + 0xb37f: 0x6c106620, + // Block 0x2ce, offset 0xb380 + 0xb380: 0x6c18e020, 0xb381: 0x6c09c620, 0xb383: 0x6c0c5220, + 0xb385: 0x6c18e420, 0xb386: 0x6c18e220, 0xb387: 0x6c0a4e20, + 0xb388: 0x6c066220, 0xb389: 0x6c18e820, 0xb38a: 0x6c11dc20, + 0xb38d: 0x6c18ea20, + 0xb391: 0x6c121820, 0xb392: 0x6c0d6020, 0xb393: 0x6c0dd420, + 0xb394: 0x6c047820, 0xb397: 0x6c10c420, + 0xb398: 0x6c0e1620, 0xb39a: 0x6c118020, + 0xb39c: 0x6c143020, 0xb39e: 0x6c18ee20, + 0xb3a0: 0x6c0c5420, + 0xb3a6: 0x6c054e20, + 0xb3a9: 0x6c18f020, + 0xb3ae: 0x6c18f220, 0xb3af: 0x6c00d420, + 0xb3b0: 0x6c00aa20, 0xb3b1: 0x6c038a20, 0xb3b3: 0x6c0d4820, + 0xb3b4: 0x6c040e20, 0xb3b5: 0x6c15ee20, 0xb3b7: 0x6c18f820, + 0xb3b8: 0x6c01a620, 0xb3bb: 0x6c18f620, + 0xb3bf: 0x6c047c20, + // Block 0x2cf, offset 0xb3c0 + 0xb3c2: 0x6c18fa20, + 0xb3c4: 0x6c153220, + 0xb3d6: 0x6c18fc20, + 0xb3d8: 0x6c166c20, 0xb3da: 0x6c069820, + 0xb3df: 0x6c060c20, + 0xb3e0: 0x6c18fe20, + 0xb3e5: 0x6c190220, 0xb3e6: 0x6c190020, + 0xb3e8: 0x6c0b8220, 0xb3e9: 0x6c00ee20, + 0xb3ed: 0x6c013820, 0xb3ee: 0x6c190420, + 0xb3f0: 0x6c190620, 0xb3f3: 0x6c060e20, + 0xb3f6: 0x6c190820, + 0xb3fb: 0x6c044820, + // Block 0x2d0, offset 0xb400 + 0xb402: 0x6c083820, 0xb403: 0x6c190a20, + 0xb408: 0x6c147c20, 0xb409: 0x6c078220, 0xb40a: 0x6c042020, 0xb40b: 0x6c155a20, + 0xb40c: 0x6c0cdc20, 0xb40d: 0x6c11de20, 0xb40e: 0x6c098a20, + 0xb414: 0x6c09da20, 0xb416: 0x6c096020, 0xb417: 0x6c097a20, + 0xb419: 0x6c0a3820, 0xb41b: 0x6c11e020, + 0xb41f: 0x6c191020, + 0xb421: 0x6c010220, 0xb422: 0x6c0cde20, 0xb423: 0x6c069a20, + 0xb424: 0x6c062a20, 0xb425: 0x6c04f620, + 0xb428: 0x6c191820, 0xb429: 0x6c0df620, 0xb42a: 0x6c0df420, 0xb42b: 0x6c047e20, + 0xb42c: 0x6c0a5020, 0xb42d: 0x6c191a20, 0xb42e: 0x6c191620, 0xb42f: 0x6c01c020, + 0xb430: 0x6c0dc420, 0xb431: 0x6c090020, 0xb432: 0x6c086a20, 0xb433: 0x6c00c820, + 0xb436: 0x6c02d420, 0xb437: 0x6c072820, + 0xb438: 0x6c086820, 0xb43a: 0x6c191c20, + // Block 0x2d1, offset 0xb440 + 0xb441: 0x6c191e20, 0xb443: 0x6c03fe20, + 0xb444: 0x6c028020, + 0xb448: 0x6c072a20, 0xb449: 0x6c03fc20, 0xb44a: 0x6c0f2e20, 0xb44b: 0x6c00c620, + 0xb44c: 0x6c104a20, 0xb44d: 0x6c14cc20, 0xb44e: 0x6c069e20, 0xb44f: 0x6c15fe20, + 0xb450: 0x6c0fba20, 0xb451: 0x6c069c20, + 0xb45b: 0x6c054220, + 0xb45d: 0x6c193020, 0xb45f: 0x6c04ee20, + 0xb460: 0x6c142820, + 0xb466: 0x6c121a20, + 0xb469: 0x6c192e20, 0xb46b: 0x6c036c20, + 0xb46c: 0x6c192420, 0xb46d: 0x6c192620, 0xb46e: 0x6c192a20, + 0xb476: 0x6c192c20, + 0xb478: 0x6c042220, 0xb479: 0x6c0b8620, 0xb47b: 0x6c133220, + 0xb47c: 0x6c192820, 0xb47d: 0x6c192020, 0xb47e: 0x6c066620, + // Block 0x2d2, offset 0xb480 + 0xb480: 0x6c192220, 0xb482: 0x6c16cc20, + 0xb486: 0x6c13bc20, + 0xb488: 0x6c0f4020, 0xb489: 0x6c066420, 0xb48a: 0x6c073c20, + 0xb48e: 0x6c193220, + 0xb491: 0x6c10a220, + 0xb49f: 0x6c193a20, + 0xb4a8: 0x6c098c20, 0xb4aa: 0x6c097c20, + 0xb4b0: 0x6c194020, 0xb4b1: 0x6c193c20, 0xb4b3: 0x6c149620, + 0xb4b5: 0x6c193620, 0xb4b6: 0x6c194820, 0xb4b7: 0x6c193e20, + 0xb4bb: 0x6c194420, + 0xb4bc: 0x6c062c20, 0xb4bd: 0x6c14ce20, + // Block 0x2d3, offset 0xb4c0 + 0xb4c0: 0x6c194620, + 0xb4c4: 0x6c194a20, 0xb4c6: 0x6c194e20, + 0xb4cb: 0x6c07f820, + 0xb4cc: 0x6c170820, 0xb4ce: 0x6c193820, 0xb4cf: 0x6c193420, + 0xb4d0: 0x6c194c20, 0xb4d2: 0x6c194220, + 0xb4e2: 0x6c195220, + 0xb4e4: 0x6c196420, 0xb4e5: 0x6c195620, + 0xb4e8: 0x6c195e20, 0xb4eb: 0x6c196020, + 0xb4ec: 0x6c195820, 0xb4ef: 0x6c199a20, + 0xb4f2: 0x6c07ea20, 0xb4f3: 0x6c025620, + 0xb4f8: 0x6c195420, + 0xb4fc: 0x6c196820, 0xb4fd: 0x6c00ac20, 0xb4fe: 0x6c196620, + // Block 0x2d4, offset 0xb500 + 0xb500: 0x6c000a20, 0xb501: 0x6c12b020, 0xb502: 0x6c196220, + 0xb504: 0x6c195a20, 0xb507: 0x6c195020, + 0xb508: 0x6c195c20, 0xb509: 0x6c07a820, + 0xb518: 0x6c196a20, + 0xb521: 0x6c00ae20, 0xb522: 0x6c197c20, + 0xb525: 0x6c196c20, 0xb526: 0x6c196e20, + 0xb528: 0x6c0a5220, 0xb529: 0x6c146620, + 0xb52d: 0x6c197820, 0xb52e: 0x6c197620, + 0xb532: 0x6c0f8a20, + 0xb53a: 0x6c197a20, + 0xb53d: 0x6c197420, + // Block 0x2d5, offset 0xb540 + 0xb544: 0x6c00e420, 0xb546: 0x6c078420, 0xb547: 0x6c0b2420, + 0xb54f: 0x6c197020, + 0xb550: 0x6c0ff020, + 0xb554: 0x6c197220, 0xb556: 0x6c000420, + 0xb56e: 0x6c198620, 0xb56f: 0x6c155220, + 0xb571: 0x6c0a5620, 0xb573: 0x6c199220, + 0xb578: 0x6c199020, 0xb579: 0x6c197e20, + 0xb57e: 0x6c0d7e20, + // Block 0x2d6, offset 0xb580 + 0xb580: 0x6c198020, + 0xb584: 0x6c0dd620, 0xb585: 0x6c198a20, 0xb586: 0x6c0a5420, + 0xb58c: 0x6c198420, 0xb58f: 0x6c151820, + 0xb593: 0x6c055c20, + 0xb596: 0x6c198c20, 0xb597: 0x6c198e20, + 0xb59c: 0x6c198820, 0xb59d: 0x6c199420, + 0xb5a3: 0x6c198220, + 0xb5bb: 0x6c19a020, + 0xb5bc: 0x6c19aa20, 0xb5be: 0x6c19a220, + // Block 0x2d7, offset 0xb5c0 + 0xb5c0: 0x6c199820, 0xb5c3: 0x6c19ac20, + 0xb5c4: 0x6c0c9e20, 0xb5c7: 0x6c19b020, + 0xb5c9: 0x6c06a020, 0xb5ca: 0x6c199c20, 0xb5cb: 0x6c0eae20, + 0xb5d8: 0x6c19a420, 0xb5d9: 0x6c199620, 0xb5da: 0x6c030a20, + 0xb5dc: 0x6c038c20, 0xb5dd: 0x6c02be20, 0xb5de: 0x6c19a620, 0xb5df: 0x6c199e20, + 0xb5e7: 0x6c05d020, + 0xb5e8: 0x6c19b220, 0xb5e9: 0x6c19ae20, 0xb5ea: 0x6c0ce220, 0xb5eb: 0x6c040020, + 0xb5ec: 0x6c048020, 0xb5ee: 0x6c19a820, + 0xb5f0: 0x6c051020, + 0xb5f6: 0x6c010420, + // Block 0x2d8, offset 0xb600 + 0xb604: 0x6c19ba20, 0xb605: 0x6c19b620, 0xb607: 0x6c1a2820, + 0xb614: 0x6c19c020, + 0xb61a: 0x6c19b420, + 0xb61c: 0x6c19bc20, 0xb61f: 0x6c19b820, + 0xb623: 0x6c086c20, + 0xb624: 0x6c19be20, + 0xb637: 0x6c19c420, + 0xb639: 0x6c19ce20, + 0xb63d: 0x6c19ca20, 0xb63e: 0x6c19c820, + // Block 0x2d9, offset 0xb640 + 0xb646: 0x6c0e1820, + 0xb649: 0x6c01c220, + 0xb654: 0x6c19c220, 0xb656: 0x6c19c620, 0xb657: 0x6c0a5820, + 0xb658: 0x6c00e220, 0xb65b: 0x6c19cc20, + 0xb669: 0x6c01f420, + 0xb66f: 0x6c19e220, + 0xb671: 0x6c0b0020, 0xb672: 0x6c19da20, + 0xb674: 0x6c19d620, 0xb676: 0x6c19d820, + 0xb678: 0x6c19dc20, + // Block 0x2da, offset 0xb680 + 0xb682: 0x6c00f620, + 0xb68c: 0x6c0cae20, 0xb68e: 0x6c19d020, + 0xb690: 0x6c19d220, + 0xb69b: 0x6c02e820, + 0xb6a4: 0x6c19e020, + 0xb6a8: 0x6c038e20, 0xb6aa: 0x6c19e620, 0xb6ab: 0x6c19de20, + 0xb6ac: 0x6c19e420, + 0xb6b4: 0x6c133420, + 0xb6b8: 0x6c109220, 0xb6ba: 0x6c11d020, + // Block 0x2db, offset 0xb6c0 + 0xb6c0: 0x6c19ea20, + 0xb6c6: 0x6c19e820, 0xb6c7: 0x6c027e20, + 0xb6ca: 0x6c19ec20, + 0xb6cf: 0x6c19f220, + 0xb6d4: 0x6c19f020, + 0xb6e0: 0x6c19ee20, 0xb6e2: 0x6c111620, + 0xb6e5: 0x6c19f420, + 0xb6ee: 0x6c19f620, + 0xb6f4: 0x6c19fa20, 0xb6f6: 0x6c19f820, + 0xb6fc: 0x6c19fe20, + // Block 0x2dc, offset 0xb700 + 0xb700: 0x6c1a0420, 0xb701: 0x6c1a0020, 0xb702: 0x6c19fc20, 0xb703: 0x6c1a0220, + 0xb708: 0x6c1a0620, + 0xb70e: 0x6c1a0820, + 0xb711: 0x6c1a0a20, 0xb713: 0x6c1a0c20, + 0xb717: 0x6c1a0e20, + 0xb718: 0x6c183020, 0xb71a: 0x6c098820, 0xb71b: 0x6c086e20, + 0xb71e: 0x6c021e20, + 0xb720: 0x6c00b020, 0xb723: 0x6c0e3c20, + 0xb72e: 0x6c1a1020, + 0xb730: 0x6c076020, 0xb732: 0x6c005e20, 0xb733: 0x6c0b8020, + 0xb739: 0x6c1a1220, 0xb73a: 0x6c062e20, + 0xb73d: 0x6c073e20, 0xb73f: 0x6c1a1620, + // Block 0x2dd, offset 0xb740 + 0xb740: 0x6c1a1420, 0xb743: 0x6c139820, + 0xb744: 0x6c1a1820, + 0xb748: 0x6c1a1c20, 0xb749: 0x6c1a1a20, 0xb74b: 0x6c1a1e20, + 0xb74d: 0x6c1a2020, 0xb74f: 0x6c05d220, + 0xb752: 0x6c013c20, 0xb753: 0x6c1a2220, + 0xb756: 0x6c1a2620, + 0xb758: 0x6c1a2420, + 0xb75c: 0x6c1a2a20, 0xb75f: 0x6c0fe020, + 0xb766: 0x6c1a2c20, 0xb767: 0x6c002a20, + 0xb768: 0x6c07d620, + 0xb76d: 0x6c055e20, + 0xb770: 0x6c0e5220, + 0xb777: 0x6c1a2e20, + 0xb778: 0x6c1a3020, 0xb77b: 0x6c1a3420, + // Block 0x2de, offset 0xb780 + 0xb780: 0x6c1a3620, 0xb782: 0x6c07e020, + 0xb787: 0x6c04ca20, + 0xb78a: 0x6c140220, + 0xb78e: 0x6c1a3220, 0xb78f: 0x6c1a3820, + 0xb790: 0x6c079a20, 0xb791: 0x6c06a220, + 0xb7a1: 0x6c1a4020, + 0xb7a4: 0x6c076220, 0xb7a6: 0x6c0e1a20, + 0xb7a9: 0x6c1a3a20, 0xb7aa: 0x6c0f2420, + 0xb7bf: 0x6c1a4220, + // Block 0x2df, offset 0xb7c0 + 0xb7c2: 0x6c0b8820, + 0xb7c8: 0x6c1a3e20, 0xb7c9: 0x6c1a4420, 0xb7cb: 0x6c056220, + 0xb7d3: 0x6c1a4620, + 0xb7e0: 0x6c1a4820, 0xb7e2: 0x6c06a420, 0xb7e3: 0x6c027420, + 0xb7e4: 0x6c1a4c20, + 0xb7ea: 0x6c1a4e20, + 0xb7f0: 0x6c1a5020, 0xb7f3: 0x6c1a4a20, + // Block 0x2e0, offset 0xb800 + 0xb800: 0x6c1a3c20, 0xb803: 0x6c1a5220, + 0xb806: 0x6c1a5420, + 0xb80b: 0x6c145c20, + 0xb80e: 0x6c0ade20, + 0xb812: 0x6c1a5820, 0xb813: 0x6c1a5a20, + 0xb814: 0x6c1a5620, 0xb816: 0x6c1a5e20, + 0xb81c: 0x6c111420, 0xb81f: 0x6c009020, + 0xb820: 0x6c12c820, 0xb823: 0x6c1a6020, + 0xb834: 0x6c0b0220, 0xb837: 0x6c090220, + 0xb839: 0x6c115e20, 0xb83a: 0x6c039020, + 0xb83c: 0x6c07ee20, + // Block 0x2e1, offset 0xb840 + 0xb840: 0x6c144620, 0xb842: 0x6c104c20, + 0xb845: 0x6c05d420, 0xb846: 0x6c0d9620, + 0xb84a: 0x6c1a5c20, 0xb84b: 0x6c1a6220, + 0xb855: 0x6c0d8020, + 0xb859: 0x6c1a6420, + 0xb85d: 0x6c1a6620, + 0xb861: 0x6c1a6a20, + 0xb864: 0x6c0f4220, + 0xb86a: 0x6c030c20, + 0xb86f: 0x6c319c20, + 0xb870: 0x6c013e20, 0xb871: 0x6c13be20, + 0xb874: 0x6c0ae020, 0xb875: 0x6c0fbc20, + 0xb87a: 0x6c07e420, + 0xb87d: 0x6c1a7620, + // Block 0x2e2, offset 0xb880 + 0xb880: 0x6c135220, 0xb881: 0x6c168220, + 0xb88a: 0x6c022020, 0xb88b: 0x6c1a6e20, + 0xb891: 0x6c0cb020, 0xb892: 0x6c1a7420, + 0xb894: 0x6c0ff220, 0xb897: 0x6c0fbe20, + 0xb898: 0x6c0ff420, 0xb899: 0x6c11d220, 0xb89a: 0x6c0f0a20, + 0xb89e: 0x6c07aa20, + 0xb8a2: 0x6c1a6c20, + 0xb8a9: 0x6c016820, 0xb8ab: 0x6c0f9820, + 0xb8b0: 0x6c1a7020, 0xb8b2: 0x6c1a6820, + 0xb8b5: 0x6c0b6420, + 0xb8b9: 0x6c1a7820, + 0xb8be: 0x6c09e820, + // Block 0x2e3, offset 0xb8c0 + 0xb8c3: 0x6c048220, + 0xb8c5: 0x6c1a7a20, + 0xb8d3: 0x6c13a820, + 0xb8d7: 0x6c0d3620, + 0xb8dc: 0x6c0efc20, 0xb8df: 0x6c1a7e20, + 0xb8e8: 0x6c143220, 0xb8eb: 0x6c1a8020, + 0xb8ee: 0x6c1a8a20, + 0xb8f3: 0x6c133620, + 0xb8f8: 0x6c1a8820, 0xb8f9: 0x6c1a7c20, 0xb8fa: 0x6c1a8220, 0xb8fb: 0x6c1a8620, + 0xb8fe: 0x6c076420, + // Block 0x2e4, offset 0xb900 + 0xb901: 0x6c136a20, + 0xb905: 0x6c1a8c20, 0xb907: 0x6c0e3e20, + 0xb90a: 0x6c022220, + 0xb90c: 0x6c0ae220, + 0xb911: 0x6c1a9020, 0xb913: 0x6c1a8e20, + 0xb915: 0x6c072c20, 0xb917: 0x6c1a9220, + 0xb918: 0x6c1a9620, 0xb919: 0x6c1a9420, + 0xb91c: 0x6c1a9a20, 0xb91e: 0x6c1a8420, 0xb91f: 0x6c1a9e20, + 0xb924: 0x6c1a9c20, 0xb925: 0x6c1a9820, + 0xb92b: 0x6c087020, + 0xb92c: 0x6c0b6620, 0xb92e: 0x6c0ce420, 0xb92f: 0x6c1aa020, + 0xb930: 0x6c0bf820, 0xb931: 0x6c009a20, 0xb932: 0x6c116c20, + 0xb937: 0x6c0f2620, + 0xb939: 0x6c1aa420, 0xb93a: 0x6c1aa220, 0xb93b: 0x6c1aa620, + 0xb93c: 0x6c1aa820, 0xb93d: 0x6c1aaa20, + // Block 0x2e5, offset 0xb940 + 0xb942: 0x6c1aac20, + 0xb949: 0x6c137a20, 0xb94a: 0x6c1aae20, + 0xb94f: 0x6c01c420, + 0xb950: 0x6c1ab020, + 0xb955: 0x6c158420, 0xb956: 0x6c025420, + 0xb958: 0x6c18f420, 0xb959: 0x6c09dc20, 0xb95a: 0x6c0d7620, 0xb95b: 0x6c1ab220, + 0xb95c: 0x6c152620, + 0xb962: 0x6c14b820, + 0xb965: 0x6c1ab620, 0xb967: 0x6c0dc620, + 0xb969: 0x6c0f9a20, 0xb96a: 0x6c0d7820, 0xb96b: 0x6c12ca20, + 0xb96c: 0x6c1ab820, 0xb96d: 0x6c1aba20, 0xb96e: 0x6c017220, + 0xb971: 0x6c090420, 0xb972: 0x6c1abc20, + 0xb977: 0x6c006020, + 0xb978: 0x6c1abe20, + 0xb97e: 0x6c1ac020, + // Block 0x2e6, offset 0xb980 + 0xb984: 0x6c014020, 0xb987: 0x6c039220, + 0xb988: 0x6c10a820, 0xb989: 0x6c13c020, + 0xb98e: 0x6c1ac820, 0xb98f: 0x6c0ce620, + 0xb990: 0x6c1ac620, 0xb991: 0x6c056420, + 0xb994: 0x6c144a20, 0xb995: 0x6c1ac420, 0xb997: 0x6c0ff620, + 0xb998: 0x6c1acc20, 0xb99a: 0x6c1aca20, + 0xb9a0: 0x6c1ad020, 0xb9a2: 0x6c1ace20, + 0xb9a5: 0x6c017420, 0xb9a7: 0x6c1ad220, + 0xb9a8: 0x6c0a5a20, 0xb9a9: 0x6c1ad620, 0xb9aa: 0x6c0dfe20, + 0xb9ac: 0x6c1ad420, 0xb9ae: 0x6c133e20, + 0xb9b3: 0x6c0a3a20, + 0xb9b4: 0x6c0fe220, + 0xb9b8: 0x6c1ad820, + 0xb9bd: 0x6c06a620, + // Block 0x2e7, offset 0xb9c0 + 0xb9c1: 0x6c1ada20, 0xb9c2: 0x6c10e620, 0xb9c3: 0x6c121c20, + 0xb9c4: 0x6c14f220, + 0xb9ca: 0x6c10ee20, + 0xb9cd: 0x6c1aec20, + 0xb9d3: 0x6c03dc20, + 0xb9d6: 0x6c159620, + 0xb9d9: 0x6c14ae20, 0xb9db: 0x6c1baa20, + 0xb9dd: 0x6c1adc20, + 0xb9e3: 0x6c1ae220, + 0xb9e5: 0x6c0d8220, + 0xb9e8: 0x6c140420, + 0xb9ec: 0x6c0fc020, + 0xb9f2: 0x6c1ae420, + 0xb9f9: 0x6c145e20, 0xb9fb: 0x6c07ac20, + 0xb9fe: 0x6c0a5c20, + // Block 0x2e8, offset 0xba00 + 0xba06: 0x6c1ae620, + 0xba09: 0x6c087420, 0xba0b: 0x6c087220, + 0xba10: 0x6c003220, 0xba11: 0x6c063020, 0xba13: 0x6c0bd620, + 0xba14: 0x6c006220, + 0xba19: 0x6c1aee20, 0xba1a: 0x6c1af020, + 0xba1c: 0x6c1aea20, + 0xba25: 0x6c00ec20, 0xba26: 0x6c030e20, + 0xba28: 0x6c1ae820, 0xba2a: 0x6c14da20, 0xba2b: 0x6c127e20, + 0xba36: 0x6c001020, + 0xba3b: 0x6c00b220, + 0xba3f: 0x6c087620, + // Block 0x2e9, offset 0xba40 + 0xba41: 0x6c006420, 0xba43: 0x6c000620, + 0xba49: 0x6c1afa20, + 0xba51: 0x6c1af620, + 0xba58: 0x6c14c820, 0xba5a: 0x6c1afc20, + 0xba5c: 0x6c1af820, 0xba5f: 0x6c1af420, + 0xba60: 0x6c0b2620, + 0xba65: 0x6c1af220, + 0xba69: 0x6c138c20, + 0xba6f: 0x6c066820, + 0xba75: 0x6c1b0420, 0xba76: 0x6c1b0620, + 0xba7c: 0x6c0a5e20, + // Block 0x2ea, offset 0xba80 + 0xba80: 0x6c1afe20, 0xba81: 0x6c16dc20, + 0xba86: 0x6c113c20, + 0xba89: 0x6c1b0220, + 0xba9a: 0x6c076620, + 0xbaa2: 0x6c1b0820, + 0xbaa6: 0x6c12cc20, + 0xbaaa: 0x6c1b0a20, + 0xbaac: 0x6c1b0020, + 0xbabf: 0x6c14c620, + // Block 0x2eb, offset 0xbac0 + 0xbad2: 0x6c116020, + 0xbada: 0x6c1b0c20, 0xbadb: 0x6c128020, + 0xbafc: 0x6c1b0e20, 0xbafd: 0x6c1b1620, 0xbafe: 0x6c1b1020, + // Block 0x2ec, offset 0xbb00 + 0xbb01: 0x6c01c620, 0xbb02: 0x6c1b1420, + 0xbb09: 0x6c090620, 0xbb0b: 0x6c1b1220, + 0xbb0c: 0x6c05d620, + 0xbb10: 0x6c1b2e20, + 0xbb16: 0x6c1b2020, 0xbb17: 0x6c1b1a20, + 0xbb21: 0x6c0e7c20, 0xbb23: 0x6c1b1820, + 0xbb26: 0x6c1b1c20, + 0xbb29: 0x6c1b1e20, + 0xbb3a: 0x6c1b2220, 0xbb3b: 0x6c1b2420, + // Block 0x2ed, offset 0xbb40 + 0xbb49: 0x6c039420, 0xbb4b: 0x6c1b2820, + 0xbb4c: 0x6c1b2620, + 0xbb56: 0x6c1b2a20, + 0xbb62: 0x6c0ae420, + 0xbb6a: 0x6c1b3020, + 0xbb6c: 0x6c0f2820, + 0xbb70: 0x6c010620, 0xbb72: 0x6c1b2c20, + 0xbb76: 0x6c1b3220, + 0xbb7e: 0x6c1b3420, + // Block 0x2ee, offset 0xbb80 + 0xbb80: 0x6c1b3a20, 0xbb83: 0x6c1b3620, + 0xbb85: 0x6c1b3820, + 0xbb90: 0x6c087820, 0xbb91: 0x6c1b3c20, + 0xbb94: 0x6c06a820, 0xbb95: 0x6c1b3e20, 0xbb97: 0x6c08c820, + 0xbb98: 0x6c0d6820, 0xbb9a: 0x6c1b4020, 0xbb9b: 0x6c1b4220, + 0xbb9c: 0x6c088820, 0xbb9d: 0x6c06aa20, 0xbb9f: 0x6c14f420, + 0xbba3: 0x6c03bc20, + 0xbba4: 0x6c063220, 0xbba5: 0x6c1b4420, 0xbba6: 0x6c02a420, + 0xbba9: 0x6c1b4620, 0xbbab: 0x6c0d6a20, + 0xbbb0: 0x6c1b4820, 0xbbb1: 0x6c1b9820, 0xbbb3: 0x6c1b4a20, + 0xbbb5: 0x6c1b4c20, + 0xbbb8: 0x6c1b4e20, 0xbbba: 0x6c1b5220, + // Block 0x2ef, offset 0xbbc0 + 0xbbc0: 0x6c1b5420, 0xbbc3: 0x6c1b5620, + 0xbbc5: 0x6c0dd820, 0xbbc7: 0x6c00ca20, + 0xbbc8: 0x6c096220, 0xbbc9: 0x6c004420, 0xbbcb: 0x6c0cea20, + 0xbbcc: 0x6c031020, 0xbbcd: 0x6c08fa20, 0xbbcf: 0x6c06ac20, + 0xbbd5: 0x6c0ff820, 0xbbd7: 0x6c098e20, + 0xbbd8: 0x6c031220, 0xbbd9: 0x6c0e8420, 0xbbda: 0x6c0f4420, 0xbbdb: 0x6c003020, + 0xbbdc: 0x6c03de20, 0xbbdd: 0x6c13c220, 0xbbdf: 0x6c091420, + 0xbbe2: 0x6c041020, 0xbbe3: 0x6c0c5620, + 0xbbe4: 0x6c090820, 0xbbe5: 0x6c155c20, 0xbbe6: 0x6c1b5820, + 0xbbee: 0x6c042420, + 0xbbf0: 0x6c07ae20, 0xbbf3: 0x6c025820, + 0xbbf4: 0x6c014220, 0xbbf5: 0x6c0a6020, 0xbbf6: 0x6c01c820, + 0xbbf8: 0x6c1b5a20, 0xbbf9: 0x6c159820, + 0xbbff: 0x6c09de20, + // Block 0x2f0, offset 0xbc00 + 0xbc02: 0x6c095820, 0xbc03: 0x6c1b5c20, + 0xbc04: 0x6c039620, 0xbc05: 0x6c108c20, 0xbc06: 0x6c14a220, 0xbc07: 0x6c1b5e20, + 0xbc09: 0x6c1b6020, + 0xbc0c: 0x6c12ce20, + 0xbc10: 0x6c1b6420, 0xbc12: 0x6c030020, 0xbc13: 0x6c051620, + 0xbc14: 0x6c1b6220, + 0xbc1b: 0x6c031420, + 0xbc1d: 0x6c0b2820, 0xbc1e: 0x6c1b6c20, 0xbc1f: 0x6c081620, + 0xbc21: 0x6c01ca20, 0xbc22: 0x6c1b6a20, + 0xbc24: 0x6c1b6620, 0xbc25: 0x6c1b6e20, 0xbc26: 0x6c1b6820, 0xbc27: 0x6c10fa20, + 0xbc28: 0x6c205420, 0xbc29: 0x6c0b2a20, 0xbc2b: 0x6c1b7020, + 0xbc2e: 0x6c164820, + 0xbc30: 0x6c1b7220, 0xbc33: 0x6c1b7620, + 0xbc35: 0x6c0eb020, 0xbc36: 0x6c1b7420, + 0xbc38: 0x6c0bc620, 0xbc3a: 0x6c08ca20, + 0xbc3e: 0x6c0d9820, 0xbc3f: 0x6c097e20, + // Block 0x2f1, offset 0xbc40 + 0xbc41: 0x6c130620, 0xbc42: 0x6c0c5820, + 0xbc44: 0x6c092a20, 0xbc45: 0x6c1b7820, 0xbc46: 0x6c0a6220, 0xbc47: 0x6c1b7a20, + 0xbc48: 0x6c1b7c20, 0xbc49: 0x6c006620, 0xbc4a: 0x6c0d6c20, 0xbc4b: 0x6c0b6820, + 0xbc4d: 0x6c1b7e20, 0xbc4e: 0x6c104e20, 0xbc4f: 0x6c0a6420, + 0xbc51: 0x6c0a6620, 0xbc53: 0x6c1b8020, + 0xbc56: 0x6c0c5a20, + 0xbc5a: 0x6c0a6820, + 0xbc60: 0x6c1b8220, 0xbc62: 0x6c1b8420, + 0xbc64: 0x6c151020, + 0xbc68: 0x6c1b8620, + 0xbc6d: 0x6c04b420, + 0xbc71: 0x6c099020, + 0xbc78: 0x6c1b8820, 0xbc79: 0x6c1b8a20, 0xbc7a: 0x6c094820, 0xbc7b: 0x6c0b1c20, + 0xbc7c: 0x6c10d020, 0xbc7d: 0x6c0b6c20, 0xbc7e: 0x6c125020, 0xbc7f: 0x6c10e820, + // Block 0x2f2, offset 0xbc80 + 0xbc80: 0x6c04ba20, 0xbc81: 0x6c1b8c20, + 0xbc85: 0x6c044a20, 0xbc86: 0x6c1b8e20, + 0xbc88: 0x6c052420, 0xbc8a: 0x6c108620, 0xbc8b: 0x6c019820, + 0xbc8d: 0x6c087a20, 0xbc8e: 0x6c1b9020, 0xbc8f: 0x6c1b9620, + 0xbc90: 0x6c1b9420, 0xbc91: 0x6c052220, 0xbc93: 0x6c1b9220, + 0xbc95: 0x6c0f9c20, + 0xbc9e: 0x6c0d5820, + 0xbca0: 0x6c0fc220, 0xbca1: 0x6c092020, + 0xbca4: 0x6c0cec20, 0xbca5: 0x6c160020, + 0xbcac: 0x6c1b9a20, 0xbcae: 0x6c1b9c20, 0xbcaf: 0x6c109420, + 0xbcb1: 0x6c083a20, + 0xbcb6: 0x6c1ba020, + 0xbcb9: 0x6c1ba220, + // Block 0x2f3, offset 0xbcc0 + 0xbccc: 0x6c1ba420, + 0xbcd0: 0x6c039820, 0xbcd1: 0x6c1ba620, + 0xbcd4: 0x6c1ba820, + 0xbce1: 0x6c019020, + 0xbce8: 0x6c0cb220, 0xbce9: 0x6c037820, 0xbceb: 0x6c1bac20, + 0xbcec: 0x6c14a020, + 0xbcf1: 0x6c0d9c20, 0xbcf3: 0x6c02a620, + 0xbcf6: 0x6c1bb020, 0xbcf7: 0x6c1bb420, + 0xbcf8: 0x6c036e20, 0xbcfb: 0x6c1bae20, + 0xbcfc: 0x6c1bb220, 0xbcfe: 0x6c1bb820, + // Block 0x2f4, offset 0xbd00 + 0xbd05: 0x6c1bb620, 0xbd07: 0x6c1bba20, + 0xbd19: 0x6c1bbc20, + 0xbd20: 0x6c106220, 0xbd21: 0x6c048420, + 0xbd28: 0x6c020220, 0xbd29: 0x6c1bbe20, 0xbd2a: 0x6c1bc820, + 0xbd2d: 0x6c1bc420, 0xbd2f: 0x6c13c620, + 0xbd30: 0x6c13c420, + 0xbd36: 0x6c0ffa20, + 0xbd3a: 0x6c1bc220, 0xbd3b: 0x6c09f420, + 0xbd3d: 0x6c1bc020, + // Block 0x2f5, offset 0xbd40 + 0xbd47: 0x6c0ba820, + 0xbd4b: 0x6c1bca20, + 0xbd4e: 0x6c07ec20, + 0xbd51: 0x6c1bd620, + 0xbd54: 0x6c1bd820, 0xbd55: 0x6c1bcc20, 0xbd56: 0x6c025a20, 0xbd57: 0x6c1bce20, + 0xbd58: 0x6c1be020, 0xbd59: 0x6c1bde20, 0xbd5a: 0x6c1bdc20, 0xbd5b: 0x6c1bd420, + 0xbd5f: 0x6c1bd220, + 0xbd62: 0x6c1bda20, + 0xbd69: 0x6c13c820, + // Block 0x2f6, offset 0xbd80 + 0xbd8b: 0x6c1be820, + 0xbd8c: 0x6c1be220, 0xbd8e: 0x6c1be620, + 0xbd90: 0x6c15f020, 0xbd92: 0x6c1be420, + 0xbd9c: 0x6c1bd020, + 0xbda9: 0x6c0baa20, + 0xbdac: 0x6c1bea20, 0xbdaf: 0x6c078620, + 0xbdb3: 0x6c1bec20, + 0xbdb6: 0x6c1bee20, + // Block 0x2f7, offset 0xbdc0 + 0xbdc2: 0x6c1bf420, + 0xbdc4: 0x6c1bf220, 0xbdc7: 0x6c1bf020, + 0xbdcb: 0x6c0ffc20, + 0xbdcc: 0x6c1bc620, + 0xbdd0: 0x6c1c0020, + 0xbddd: 0x6c1bf820, + 0xbde2: 0x6c1bf620, + 0xbdec: 0x6c1bfa20, 0xbdee: 0x6c1bfc20, + 0xbdf7: 0x6c1c0220, + 0xbdfa: 0x6c169420, + 0xbdfc: 0x6c1c0420, 0xbdfd: 0x6c1bfe20, + // Block 0x2f8, offset 0xbe00 + 0xbe09: 0x6c1c0620, + 0xbe0c: 0x6c037020, 0xbe0d: 0x6c1c0820, + 0xbe12: 0x6c1c0c20, 0xbe13: 0x6c1c0a20, + 0xbe16: 0x6c1c0e20, + 0xbe1b: 0x6c1c1020, + 0xbe1d: 0x6c0c5c20, 0xbe1e: 0x6c099220, + 0xbe21: 0x6c0a1420, 0xbe23: 0x6c0d0220, + 0xbe25: 0x6c06ae20, 0xbe26: 0x6c078820, 0xbe27: 0x6c06b020, + 0xbe28: 0x6c044c20, 0xbe2b: 0x6c1c1220, + 0xbe2e: 0x6c078a20, + 0xbe31: 0x6c063420, 0xbe32: 0x6c1c1420, 0xbe33: 0x6c149c20, + 0xbe34: 0x6c112a20, 0xbe35: 0x6c1c1620, 0xbe37: 0x6c06b220, + 0xbe3b: 0x6c030820, + 0xbe3d: 0x6c0e0220, 0xbe3e: 0x6c04cc20, + // Block 0x2f9, offset 0xbe40 + 0xbe42: 0x6c087c20, 0xbe43: 0x6c12d220, + 0xbe46: 0x6c11e220, + 0xbe4b: 0x6c1c1820, + 0xbe4c: 0x6c039a20, + 0xbe51: 0x6c1c1e20, + 0xbe56: 0x6c0eb220, + 0xbe59: 0x6c1c1c20, 0xbe5a: 0x6c1c1a20, 0xbe5b: 0x6c1c2020, + 0xbe5d: 0x6c0f4620, + 0xbe65: 0x6c0b8a20, + 0xbe6b: 0x6c087e20, + 0xbe6d: 0x6c0c1420, 0xbe6f: 0x6c0d9e20, + 0xbe70: 0x6c03b020, 0xbe73: 0x6c0eb420, + 0xbe76: 0x6c1c2220, 0xbe77: 0x6c1c2420, + 0xbe78: 0x6c0ae620, + 0xbe7d: 0x6c140620, + // Block 0x2fa, offset 0xbe80 + 0xbe80: 0x6c1c2a20, 0xbe83: 0x6c1c2820, + 0xbe84: 0x6c1c2620, 0xbe85: 0x6c131620, 0xbe87: 0x6c1c3820, + 0xbe8c: 0x6c144820, 0xbe8e: 0x6c1c2c20, + 0xbe94: 0x6c1c3020, 0xbe95: 0x6c146a20, 0xbe97: 0x6c1c2e20, + 0xbe9f: 0x6c1c3220, + 0xbea1: 0x6c11b020, 0xbea2: 0x6c1c3420, 0xbea3: 0x6c135420, + 0xbea4: 0x6c1c3620, + 0xbeb2: 0x6c031620, 0xbeb3: 0x6c135620, + 0xbeb4: 0x6c110220, 0xbeb5: 0x6c1c3a20, 0xbeb6: 0x6c1c3c20, + 0xbeb8: 0x6c06b420, 0xbeb9: 0x6c031820, 0xbeba: 0x6c1c3e20, 0xbebb: 0x6c061020, + 0xbebc: 0x6c159420, 0xbebd: 0x6c155e20, 0xbebe: 0x6c039c20, 0xbebf: 0x6c1c4220, + // Block 0x2fb, offset 0xbec0 + 0xbec1: 0x6c0eb620, 0xbec3: 0x6c06b620, + 0xbec4: 0x6c0a6a20, 0xbec7: 0x6c121e20, + 0xbeca: 0x6c0a6c20, + 0xbecf: 0x6c0a3c20, + 0xbed5: 0x6c0f4820, 0xbed6: 0x6c13ca20, 0xbed7: 0x6c0f9e20, + 0xbeda: 0x6c06b820, + 0xbedc: 0x6c12d420, + 0xbee0: 0x6c1c4420, + 0xbee6: 0x6c0fde20, 0xbee7: 0x6c079c20, + 0xbeeb: 0x6c063620, + 0xbeed: 0x6c0f4a20, + 0xbef5: 0x6c004620, 0xbef6: 0x6c0a2820, 0xbef7: 0x6c06ba20, + 0xbef8: 0x6c159a20, + // Block 0x2fc, offset 0xbf00 + 0xbf01: 0x6c1c4620, 0xbf02: 0x6c1c4820, 0xbf03: 0x6c114620, + 0xbf08: 0x6c1c4a20, 0xbf09: 0x6c16b620, 0xbf0a: 0x6c16de20, + 0xbf0f: 0x6c1c4e20, + 0xbf10: 0x6c1c4c20, 0xbf13: 0x6c028220, + 0xbf16: 0x6c1c5020, + 0xbf1a: 0x6c1c5620, 0xbf1b: 0x6c1c5820, + 0xbf1d: 0x6c1c5420, 0xbf1f: 0x6c129c20, + 0xbf20: 0x6c0a6e20, 0xbf21: 0x6c1c5c20, 0xbf22: 0x6c1c5a20, 0xbf23: 0x6c1c5220, + 0xbf28: 0x6c1c5e20, 0xbf29: 0x6c1c6020, + 0xbf2c: 0x6c1c6220, + 0xbf30: 0x6c1c6820, 0xbf31: 0x6c1c6420, 0xbf33: 0x6c1c6620, + 0xbf34: 0x6c1c6a20, 0xbf36: 0x6c014420, 0xbf37: 0x6c0f4c20, + 0xbf38: 0x6c1c6c20, 0xbf3a: 0x6c05d820, 0xbf3b: 0x6c022420, + 0xbf3c: 0x6c111020, 0xbf3e: 0x6c1c6e20, 0xbf3f: 0x6c10de20, + // Block 0x2fd, offset 0xbf40 + 0xbf41: 0x6c138e20, 0xbf43: 0x6c1c7020, + 0xbf44: 0x6c16e020, + 0xbf49: 0x6c1c7220, 0xbf4a: 0x6c135820, 0xbf4b: 0x6c1c7820, + 0xbf4c: 0x6c172c20, 0xbf4d: 0x6c174c20, 0xbf4f: 0x6c08f020, + 0xbf50: 0x6c10d220, 0xbf51: 0x6c1c7a20, 0xbf53: 0x6c042620, + 0xbf54: 0x6c0eb820, 0xbf55: 0x6c00b420, 0xbf56: 0x6c1c7c20, 0xbf57: 0x6c132420, + 0xbf58: 0x6c06bc20, 0xbf5b: 0x6c0e5420, + 0xbf5f: 0x6c0f4e20, + 0xbf65: 0x6c152e20, 0xbf66: 0x6c061220, 0xbf67: 0x6c063820, + 0xbf69: 0x6c1c7e20, + 0xbf6d: 0x6c1c8020, 0xbf6f: 0x6c1c8c20, + 0xbf71: 0x6c095a20, + 0xbf75: 0x6c0eba20, 0xbf77: 0x6c048620, + 0xbf78: 0x6c1c8220, + 0xbf7c: 0x6c127220, 0xbf7e: 0x6c0e4020, + // Block 0x2fe, offset 0xbf80 + 0xbf81: 0x6c1c8420, + 0xbf88: 0x6c1c8620, 0xbf8a: 0x6c048820, + 0xbf8c: 0x6c1c8820, 0xbf8e: 0x6c1c8a20, + 0xbf91: 0x6c1c8e20, 0xbf93: 0x6c101820, + 0xbf96: 0x6c1c9020, 0xbf97: 0x6c1c9220, + 0xbf99: 0x6c1c9420, + 0xbf9c: 0x6c1c7620, 0xbf9d: 0x6c1c7420, + 0xbfa1: 0x6c1c9620, 0xbfa2: 0x6c056620, + 0xbfa6: 0x6c126a20, + 0xbfa9: 0x6c07b020, 0xbfaa: 0x6c128a20, 0xbfab: 0x6c0ebc20, + 0xbfac: 0x6c12b220, 0xbfad: 0x6c1c9820, + 0xbfb0: 0x6c0a7020, 0xbfb1: 0x6c010820, 0xbfb3: 0x6c1c9a20, + 0xbfb7: 0x6c1c9c20, + 0xbfb9: 0x6c153420, + 0xbfbc: 0x6c122020, 0xbfbf: 0x6c1ca220, + // Block 0x2ff, offset 0xbfc0 + 0xbfc0: 0x6c017620, 0xbfc1: 0x6c0bd820, 0xbfc2: 0x6c1ca020, 0xbfc3: 0x6c1c9e20, + 0xbfc4: 0x6c056820, 0xbfc5: 0x6c0da020, 0xbfc7: 0x6c1caa20, + 0xbfc8: 0x6c1ca620, 0xbfca: 0x6c1ca420, 0xbfcb: 0x6c161620, + 0xbfcc: 0x6c066a20, + 0xbfd0: 0x6c0a3e20, 0xbfd1: 0x6c1ca820, 0xbfd2: 0x6c0fc420, 0xbfd3: 0x6c09c820, + 0xbfd7: 0x6c106820, + 0xbfd8: 0x6c1cb020, 0xbfd9: 0x6c1cae20, + 0xbfde: 0x6c1cac20, + 0xbfe0: 0x6c1cb220, 0xbfe1: 0x6c066c20, + 0xbfe8: 0x6c1cb420, 0xbfe9: 0x6c131420, 0xbfea: 0x6c0a0220, + 0xbfed: 0x6c1cb620, 0xbfee: 0x6c125220, + 0xbff3: 0x6c106a20, + 0xbff4: 0x6c0ebe20, + 0xbff9: 0x6c0f8c20, + 0xbffc: 0x6c1cb820, 0xbffd: 0x6c03c220, + // Block 0x300, offset 0xc000 + 0xc003: 0x6c0b2c20, + 0xc005: 0x6c127420, + 0xc00c: 0x6c039e20, 0xc00d: 0x6c10f020, + 0xc016: 0x6c1cba20, 0xc017: 0x6c088020, + 0xc018: 0x6c140820, 0xc019: 0x6c140a20, + 0xc01c: 0x6c017820, 0xc01d: 0x6c1cc420, + 0xc020: 0x6c0e8620, + 0xc024: 0x6c1cbe20, + 0xc02b: 0x6c022620, + 0xc030: 0x6c1d2420, 0xc031: 0x6c1cc220, + 0xc035: 0x6c110420, + 0xc038: 0x6c1cc020, 0xc03b: 0x6c1cbc20, + 0xc03d: 0x6c075020, 0xc03f: 0x6c1cc820, + // Block 0x301, offset 0xc040 + 0xc04e: 0x6c1cd420, 0xc04f: 0x6c1ce020, + 0xc050: 0x6c1cd020, 0xc052: 0x6c0fe420, + 0xc055: 0x6c1cda20, 0xc056: 0x6c12d620, + 0xc059: 0x6c1cce20, 0xc05b: 0x6c1cd820, + 0xc05c: 0x6c169620, 0xc05d: 0x6c088220, + 0xc060: 0x6c0da220, 0xc061: 0x6c1cca20, + 0xc065: 0x6c042820, 0xc066: 0x6c1cde20, 0xc067: 0x6c0bda20, + 0xc068: 0x6c014620, 0xc069: 0x6c1cd220, 0xc06a: 0x6c022820, 0xc06b: 0x6c1cdc20, + 0xc06f: 0x6c048a20, + 0xc071: 0x6c1cd620, + 0xc07a: 0x6c1ce220, + // Block 0x302, offset 0xc080 + 0xc081: 0x6c1ce620, 0xc082: 0x6c1cfa20, 0xc083: 0x6c1cf620, + 0xc086: 0x6c1cf020, + 0xc08a: 0x6c1cee20, 0xc08b: 0x6c16b820, + 0xc08d: 0x6c1cf220, + 0xc090: 0x6c048c20, 0xc092: 0x6c06be20, + 0xc095: 0x6c0a4020, + 0xc099: 0x6c1d0020, 0xc09a: 0x6c1ce420, + 0xc09f: 0x6c1cec20, + 0xc0a0: 0x6c1ccc20, 0xc0a2: 0x6c022c20, 0xc0a3: 0x6c1cf420, + 0xc0a4: 0x6c1cf820, 0xc0a5: 0x6c0e5620, + 0xc0a8: 0x6c076820, 0xc0a9: 0x6c01a820, 0xc0aa: 0x6c1ce820, 0xc0ab: 0x6c1cfe20, + 0xc0ac: 0x6c1cfc20, 0xc0ad: 0x6c048e20, 0xc0af: 0x6c0d4a20, + 0xc0b0: 0x6c02c020, + 0xc0b5: 0x6c056a20, 0xc0b7: 0x6c1cea20, + // Block 0x303, offset 0xc0c0 + 0xc0c1: 0x6c1d0220, 0xc0c3: 0x6c1d0820, + 0xc0c4: 0x6c1d0c20, + 0xc0c9: 0x6c090a20, 0xc0cb: 0x6c1d1820, + 0xc0cc: 0x6c0f5020, 0xc0cd: 0x6c1d0420, + 0xc0d2: 0x6c1d1420, + 0xc0d4: 0x6c022a20, 0xc0d6: 0x6c1d1020, 0xc0d7: 0x6c1d1220, + 0xc0da: 0x6c1d0a20, 0xc0db: 0x6c1d0e20, + 0xc0df: 0x6c066e20, + 0xc0e0: 0x6c156020, 0xc0e3: 0x6c031a20, + 0xc0e6: 0x6c012e20, 0xc0e7: 0x6c1d1620, + 0xc0e9: 0x6c111820, 0xc0ea: 0x6c001a20, + 0xc0f2: 0x6c122220, 0xc0f3: 0x6c1cc620, + 0xc0f4: 0x6c1d2220, 0xc0f5: 0x6c1d2a20, 0xc0f6: 0x6c151a20, + 0xc0f8: 0x6c1d1c20, + 0xc0fc: 0x6c0ffe20, 0xc0fd: 0x6c1d2620, + // Block 0x304, offset 0xc100 + 0xc105: 0x6c0ae820, 0xc106: 0x6c1d2820, 0xc107: 0x6c109620, + 0xc111: 0x6c171220, 0xc113: 0x6c1d2020, + 0xc118: 0x6c1d2c20, 0xc11a: 0x6c075220, + 0xc11c: 0x6c0c1620, 0xc11f: 0x6c006820, + 0xc120: 0x6c1d1e20, 0xc121: 0x6c1d1a20, 0xc123: 0x6c0cf020, + 0xc127: 0x6c1d0620, + 0xc128: 0x6c083c20, + 0xc130: 0x6c0d8420, 0xc131: 0x6c1d4420, 0xc133: 0x6c0cf220, + 0xc134: 0x6c1d3a20, 0xc136: 0x6c1d3420, 0xc137: 0x6c1d3620, + 0xc139: 0x6c095c20, 0xc13a: 0x6c1d3c20, 0xc13b: 0x6c1d4220, + // Block 0x305, offset 0xc140 + 0xc140: 0x6c1d3820, 0xc141: 0x6c099620, 0xc143: 0x6c1d3e20, + 0xc146: 0x6c1d3220, + 0xc148: 0x6c154820, 0xc149: 0x6c154620, + 0xc14d: 0x6c1d4620, 0xc14e: 0x6c1d4820, 0xc14f: 0x6c006a20, + 0xc155: 0x6c1d3020, + 0xc15a: 0x6c050c20, 0xc15b: 0x6c000c20, + 0xc15f: 0x6c031c20, + 0xc161: 0x6c1d4020, + 0xc167: 0x6c1d5020, + 0xc168: 0x6c1d4e20, + 0xc16c: 0x6c1d5820, + 0xc174: 0x6c1d5a20, + 0xc17c: 0x6c1d5620, 0xc17d: 0x6c1d5c20, 0xc17e: 0x6c1d4c20, 0xc17f: 0x6c1d5420, + // Block 0x306, offset 0xc180 + 0xc182: 0x6c1d5e20, + 0xc184: 0x6c1d6020, 0xc187: 0x6c1d4a20, + 0xc188: 0x6c08cc20, 0xc18a: 0x6c1d5220, 0xc18b: 0x6c0da420, + 0xc18c: 0x6c06c020, 0xc18d: 0x6c1d2e20, 0xc18e: 0x6c0b2e20, + 0xc193: 0x6c1d7a20, + 0xc195: 0x6c13aa20, + 0xc198: 0x6c1d6620, 0xc199: 0x6c1d6820, 0xc19a: 0x6c1d6a20, + 0xc19d: 0x6c1d7820, 0xc19f: 0x6c1d7620, + 0xc1a2: 0x6c148e20, 0xc1a3: 0x6c031e20, + 0xc1a5: 0x6c1d7220, 0xc1a7: 0x6c056e20, + 0xc1a8: 0x6c025c20, 0xc1ab: 0x6c1d6c20, + 0xc1ae: 0x6c163820, 0xc1af: 0x6c1d7020, + 0xc1b0: 0x6c006c20, 0xc1b1: 0x6c1d7420, 0xc1b3: 0x6c1d6220, + 0xc1b4: 0x6c1d6e20, 0xc1b5: 0x6c1d7c20, 0xc1b6: 0x6c056c20, 0xc1b7: 0x6c1d6420, + 0xc1be: 0x6c15c620, + // Block 0x307, offset 0xc1c0 + 0xc1c2: 0x6c156220, + 0xc1c7: 0x6c1d8220, + 0xc1ca: 0x6c1d8a20, + 0xc1ce: 0x6c0d3820, + 0xc1d0: 0x6c16ba20, 0xc1d1: 0x6c1d8c20, + 0xc1d4: 0x6c1d8620, 0xc1d6: 0x6c1d8020, + 0xc1d9: 0x6c1d7e20, 0xc1da: 0x6c1d8820, + 0xc1e4: 0x6c133820, 0xc1e7: 0x6c105020, + 0xc1e9: 0x6c057020, 0xc1eb: 0x6c1d8e20, + 0xc1ec: 0x6c1d8420, 0xc1ee: 0x6c1d9020, + 0xc1f2: 0x6c05da20, + 0xc1f6: 0x6c019a20, + 0xc1fa: 0x6c1da020, + 0xc1fe: 0x6c032020, + // Block 0x308, offset 0xc200 + 0xc203: 0x6c1d9c20, + 0xc206: 0x6c1d9e20, 0xc207: 0x6c076a20, + 0xc208: 0x6c1d9a20, 0xc209: 0x6c1d9620, 0xc20a: 0x6c1d9420, 0xc20b: 0x6c1da220, + 0xc20c: 0x6c1d9220, 0xc20d: 0x6c1da620, + 0xc210: 0x6c022e20, + 0xc223: 0x6c1daa20, + 0xc226: 0x6c1da820, + 0xc232: 0x6c0ec020, + 0xc234: 0x6c1db020, 0xc236: 0x6c1dac20, 0xc237: 0x6c1d9820, + 0xc238: 0x6c05dc20, 0xc23a: 0x6c1dae20, + 0xc23c: 0x6c1db620, 0xc23d: 0x6c1db420, 0xc23e: 0x6c1db820, 0xc23f: 0x6c1db220, + // Block 0x309, offset 0xc240 + 0xc240: 0x6c1dba20, + 0xc248: 0x6c1dbc20, 0xc249: 0x6c1dbe20, 0xc24a: 0x6c13ac20, + 0xc24c: 0x6c1dc220, 0xc24d: 0x6c1dc020, 0xc24e: 0x6c09ca20, + 0xc250: 0x6c0bdc20, 0xc251: 0x6c020420, 0xc252: 0x6c023020, + 0xc254: 0x6c1dc420, 0xc256: 0x6c003e20, + 0xc25a: 0x6c0c1820, 0xc25b: 0x6c1dc620, + 0xc25d: 0x6c2c0020, 0xc25e: 0x6c1dc820, 0xc25f: 0x6c05a620, + 0xc261: 0x6c1dca20, + 0xc266: 0x6c0c5e20, + 0xc26a: 0x6c1dcc20, + 0xc26e: 0x6c1dce20, 0xc26f: 0x6c03e020, + 0xc270: 0x6c1dd020, 0xc272: 0x6c1dd220, 0xc273: 0x6c1dd420, + 0xc274: 0x6c0da620, + 0xc278: 0x6c063a20, 0xc27b: 0x6c151220, + 0xc27f: 0x6c140c20, + // Block 0x30a, offset 0xc280 + 0xc280: 0x6c0a2020, 0xc281: 0x6c1dd620, + 0xc287: 0x6c0c6020, + 0xc288: 0x6c2d6c20, 0xc289: 0x6c122420, 0xc28b: 0x6c096420, + 0xc28d: 0x6c07b220, 0xc28e: 0x6c1dd820, + 0xc293: 0x6c0d8620, + 0xc295: 0x6c132620, + 0xc298: 0x6c0dda20, 0xc29b: 0x6c1dde20, + 0xc29e: 0x6c1dda20, + 0xc2a0: 0x6c1de020, 0xc2a3: 0x6c1ddc20, + 0xc2a8: 0x6c1de220, + 0xc2ae: 0x6c133a20, + 0xc2b1: 0x6c002e20, + 0xc2b6: 0x6c12d820, + 0xc2b9: 0x6c122620, + 0xc2bc: 0x6c1de420, 0xc2be: 0x6c1dea20, 0xc2bf: 0x6c0a7220, + // Block 0x30b, offset 0xc2c0 + 0xc2c0: 0x6c03e220, 0xc2c2: 0x6c1de620, 0xc2c3: 0x6c1df420, + 0xc2c4: 0x6c0a7420, + 0xc2c9: 0x6c1de820, 0xc2ca: 0x6c112c20, + 0xc2d1: 0x6c15c820, 0xc2d2: 0x6c1dec20, 0xc2d3: 0x6c1dee20, + 0xc2d4: 0x6c1df620, 0xc2d5: 0x6c100020, 0xc2d6: 0x6c1df020, 0xc2d7: 0x6c06c220, + 0xc2d8: 0x6c0c3c20, 0xc2db: 0x6c1e1220, + 0xc2dc: 0x6c11c820, 0xc2de: 0x6c0ddc20, + 0xc2eb: 0x6c122820, + 0xc2ec: 0x6c1e9c20, + 0xc2f1: 0x6c13cc20, + 0xc2f5: 0x6c0f5220, + 0xc2f9: 0x6c147e20, 0xc2fb: 0x6c1dfc20, + 0xc2fc: 0x6c017a20, 0xc2fd: 0x6c0e8820, + // Block 0x30c, offset 0xc300 + 0xc302: 0x6c1e0e20, + 0xc305: 0x6c0e1c20, 0xc306: 0x6c1e0220, 0xc307: 0x6c1e1020, + 0xc308: 0x6c1e0620, 0xc309: 0x6c1e1420, 0xc30a: 0x6c1e0c20, + 0xc30c: 0x6c1e0a20, 0xc30d: 0x6c118220, 0xc30f: 0x6c1dfe20, + 0xc310: 0x6c023220, 0xc311: 0x6c1dfa20, 0xc312: 0x6c044e20, 0xc313: 0x6c0dde20, + 0xc314: 0x6c1df220, 0xc317: 0x6c1df820, + 0xc318: 0x6c06c420, 0xc319: 0x6c0c3620, 0xc31b: 0x6c0a7620, + 0xc31c: 0x6c1e0820, 0xc31d: 0x6c114820, + 0xc320: 0x6c045020, 0xc321: 0x6c028420, + 0xc32c: 0x6c02c220, 0xc32d: 0x6c0b0620, 0xc32e: 0x6c1e1820, 0xc32f: 0x6c1e2220, + 0xc331: 0x6c1e1a20, 0xc333: 0x6c05de20, + 0xc335: 0x6c1e2420, 0xc336: 0x6c081820, 0xc337: 0x6c072e20, + 0xc33e: 0x6c099820, 0xc33f: 0x6c1e0020, + // Block 0x30d, offset 0xc340 + 0xc341: 0x6c08ce20, 0xc342: 0x6c1e1e20, + 0xc347: 0x6c088420, + 0xc348: 0x6c1e2020, 0xc349: 0x6c004820, + 0xc34c: 0x6c1e1620, + 0xc351: 0x6c0ec220, + 0xc359: 0x6c045220, + 0xc35f: 0x6c049020, + 0xc367: 0x6c1e1c20, + 0xc368: 0x6c000e20, 0xc36b: 0x6c079e20, + 0xc36f: 0x6c0b3020, + 0xc37a: 0x6c0f5420, + 0xc37d: 0x6c120820, 0xc37e: 0x6c1e2820, 0xc37f: 0x6c0cf820, + // Block 0x30e, offset 0xc380 + 0xc389: 0x6c0d4c20, + 0xc38c: 0x6c082a20, 0xc38d: 0x6c1e2a20, 0xc38f: 0x6c1e2e20, + 0xc390: 0x6c1e2620, + 0xc395: 0x6c139a20, 0xc397: 0x6c0eea20, + 0xc39c: 0x6c0cf420, + 0xc3a7: 0x6c13ce20, + 0xc3a8: 0x6c092c20, 0xc3a9: 0x6c1e4620, 0xc3ab: 0x6c1e4420, + 0xc3ae: 0x6c0bb420, + 0xc3b2: 0x6c05e020, + 0xc3b6: 0x6c1e3820, 0xc3b7: 0x6c0a7a20, + 0xc3ba: 0x6c10b820, 0xc3bb: 0x6c110620, + // Block 0x30f, offset 0xc3c0 + 0xc3c0: 0x6c1e3420, 0xc3c3: 0x6c0cf620, + 0xc3c8: 0x6c098020, 0xc3c9: 0x6c1e3e20, + 0xc3cc: 0x6c0a7820, 0xc3ce: 0x6c1e3220, 0xc3cf: 0x6c1e3c20, + 0xc3d2: 0x6c114a20, + 0xc3d6: 0x6c1e3020, + 0xc3d8: 0x6c052620, 0xc3db: 0x6c02ae20, + 0xc3df: 0x6c1e4020, + 0xc3e0: 0x6c161e20, 0xc3e1: 0x6c07b420, 0xc3e2: 0x6c0e1e20, 0xc3e3: 0x6c1e3a20, + 0xc3e5: 0x6c0c3820, 0xc3e7: 0x6c06c620, + 0xc3e8: 0x6c0b8c20, 0xc3e9: 0x6c014820, 0xc3ea: 0x6c0cb420, 0xc3eb: 0x6c1e3620, + 0xc3ec: 0x6c03f620, + 0xc3f2: 0x6c057220, + 0xc3f4: 0x6c0f0e20, 0xc3f5: 0x6c1e4220, + 0xc3fb: 0x6c0cfa20, + 0xc3fe: 0x6c1e4820, + // Block 0x310, offset 0xc400 + 0xc400: 0x6c1e4c20, 0xc403: 0x6c0d6620, + 0xc404: 0x6c1e5820, 0xc406: 0x6c1e4e20, + 0xc409: 0x6c1e5220, + 0xc40f: 0x6c129e20, + 0xc410: 0x6c0f5620, 0xc412: 0x6c1e5420, + 0xc416: 0x6c156420, + 0xc41a: 0x6c159c20, 0xc41b: 0x6c032220, + 0xc421: 0x6c001c20, 0xc423: 0x6c1e5020, + 0xc429: 0x6c1e4a20, + 0xc42e: 0x6c03a020, + 0xc434: 0x6c014a20, 0xc436: 0x6c1e5620, + 0xc43a: 0x6c159e20, + // Block 0x311, offset 0xc440 + 0xc446: 0x6c1e5e20, + 0xc44d: 0x6c0d6e20, 0xc44f: 0x6c1e6c20, + 0xc453: 0x6c1e6020, + 0xc456: 0x6c1e5a20, 0xc457: 0x6c1e6820, + 0xc45c: 0x6c1e2c20, + 0xc466: 0x6c1e6220, + 0xc468: 0x6c1e6a20, + 0xc46c: 0x6c11e420, 0xc46d: 0x6c100220, + 0xc474: 0x6c1e5c20, 0xc476: 0x6c1e6420, + 0xc47a: 0x6c057420, + 0xc47e: 0x6c07fa20, + // Block 0x312, offset 0xc480 + 0xc482: 0x6c0c3a20, + 0xc48e: 0x6c1e7420, + 0xc498: 0x6c0f7820, + 0xc4a7: 0x6c1e6e20, + 0xc4a9: 0x6c145420, + 0xc4af: 0x6c1e7020, + 0xc4b6: 0x6c1e7220, + 0xc4b8: 0x6c14ec20, 0xc4ba: 0x6c0bc420, + // Block 0x313, offset 0xc4c0 + 0xc4c3: 0x6c05a820, + 0xc4c8: 0x6c1e8020, + 0xc4d2: 0x6c083e20, 0xc4d3: 0x6c1e7a20, + 0xc4d5: 0x6c1e7820, + 0xc4da: 0x6c110820, + 0xc4de: 0x6c105220, + 0xc4e4: 0x6c0f8e20, 0xc4e5: 0x6c1e7c20, + 0xc4e9: 0x6c1e7e20, 0xc4eb: 0x6c12fa20, + 0xc4ed: 0x6c112e20, 0xc4ee: 0x6c081a20, + 0xc4f0: 0x6c0c6220, 0xc4f2: 0x6c143420, + 0xc4f9: 0x6c028620, 0xc4fb: 0x6c1e8c20, + 0xc4fc: 0x6c1e8220, + // Block 0x314, offset 0xc500 + 0xc501: 0x6c15a020, 0xc502: 0x6c1e9020, + 0xc505: 0x6c1e8820, 0xc507: 0x6c1e8a20, + 0xc50d: 0x6c0cfc20, + 0xc512: 0x6c1e8620, + 0xc514: 0x6c1e0420, + 0xc518: 0x6c1e8e20, 0xc51a: 0x6c1e8420, + 0xc520: 0x6c1e9820, 0xc521: 0x6c1e9a20, 0xc522: 0x6c0f7a20, 0xc523: 0x6c1e9e20, + 0xc526: 0x6c081c20, 0xc527: 0x6c1e9420, + 0xc52c: 0x6c03e420, 0xc52f: 0x6c1ea020, + 0xc531: 0x6c1e9220, 0xc532: 0x6c1ea820, + 0xc534: 0x6c1ea620, 0xc536: 0x6c1ea420, + 0xc53a: 0x6c1eaa20, + 0xc53d: 0x6c1eae20, 0xc53e: 0x6c0aea20, + // Block 0x315, offset 0xc540 + 0xc540: 0x6c1eac20, + 0xc545: 0x6c1eb420, + 0xc558: 0x6c1eb020, + 0xc55c: 0x6c1eb220, 0xc55d: 0x6c1e6620, + 0xc563: 0x6c1eb820, + 0xc564: 0x6c1eb620, + 0xc56a: 0x6c1e7620, 0xc56b: 0x6c1eba20, + 0xc56c: 0x6c1ea220, 0xc56f: 0x6c088620, + 0xc574: 0x6c1ebc20, 0xc575: 0x6c1ebe20, 0xc576: 0x6c1ec220, 0xc577: 0x6c1ec020, + 0xc578: 0x6c1ec420, 0xc579: 0x6c023420, 0xc57b: 0x6c06c820, + 0xc57e: 0x6c13d020, 0xc57f: 0x6c0bde20, + // Block 0x316, offset 0xc580 + 0xc585: 0x6c063c20, + 0xc588: 0x6c1ec820, + 0xc58d: 0x6c1ece20, 0xc58f: 0x6c12c020, + 0xc591: 0x6c042a20, + 0xc595: 0x6c1ecc20, 0xc596: 0x6c1eca20, 0xc597: 0x6c114c20, + 0xc598: 0x6c1ed020, 0xc599: 0x6c049220, + 0xc59d: 0x6c1ed420, 0xc59e: 0x6c1ed220, + 0xc5a2: 0x6c032420, 0xc5a3: 0x6c084020, + 0xc5a6: 0x6c109820, + 0xc5ac: 0x6c057620, + 0xc5b0: 0x6c0bac20, 0xc5b2: 0x6c1ed620, + 0xc5b4: 0x6c0be020, 0xc5b5: 0x6c0f7c20, 0xc5b7: 0x6c12da20, + 0xc5b8: 0x6c1ed820, + // Block 0x317, offset 0xc5c0 + 0xc5c2: 0x6c1eda20, 0xc5c3: 0x6c1edc20, + 0xc5c7: 0x6c134820, + 0xc5c8: 0x6c1b5020, 0xc5c9: 0x6c0c0c20, + 0xc5cc: 0x6c12b420, 0xc5ce: 0x6c07c820, + 0xc5d0: 0x6c122a20, 0xc5d1: 0x6c11e620, + 0xc5d7: 0x6c0fc620, + 0xc5d9: 0x6c164a20, 0xc5db: 0x6c1ee020, + 0xc5dc: 0x6c093020, 0xc5df: 0x6c1ee220, + 0xc5e1: 0x6c002c20, + 0xc5e4: 0x6c04d020, 0xc5e5: 0x6c0c1a20, 0xc5e7: 0x6c12dc20, + 0xc5eb: 0x6c1ee420, + 0xc5ec: 0x6c085820, 0xc5ed: 0x6c0e4220, 0xc5ef: 0x6c088a20, + 0xc5f0: 0x6c0b3220, + 0xc5f7: 0x6c1ee620, + 0xc5f9: 0x6c13d220, + 0xc5fc: 0x6c016a20, 0xc5fd: 0x6c088c20, + // Block 0x318, offset 0xc600 + 0xc601: 0x6c1eec20, 0xc603: 0x6c1ee820, + 0xc604: 0x6c1eee20, 0xc605: 0x6c163a20, 0xc606: 0x6c1eea20, + 0xc60b: 0x6c0c7620, + 0xc60c: 0x6c1ef020, 0xc60f: 0x6c0d5c20, + 0xc612: 0x6c1ef220, + 0xc617: 0x6c03a420, + 0xc619: 0x6c1ef620, 0xc61b: 0x6c1ef420, + 0xc620: 0x6c1ef820, 0xc621: 0x6c1efa20, 0xc622: 0x6c03a620, + 0xc625: 0x6c10e020, 0xc626: 0x6c0e2020, 0xc627: 0x6c044420, + 0xc628: 0x6c088e20, 0xc629: 0x6c0cfe20, + 0xc62c: 0x6c0a0420, 0xc62d: 0x6c002020, + 0xc631: 0x6c1efc20, + 0xc63a: 0x6c017c20, 0xc63b: 0x6c1f0420, + // Block 0x319, offset 0xc640 + 0xc642: 0x6c06ca20, 0xc643: 0x6c1f0220, + 0xc646: 0x6c076e20, 0xc647: 0x6c0a7c20, + 0xc64a: 0x6c1f0020, + 0xc64c: 0x6c0a7e20, 0xc64e: 0x6c14d020, 0xc64f: 0x6c076c20, + 0xc653: 0x6c006e20, + 0xc654: 0x6c0c1c20, + 0xc65c: 0x6c1f0e20, 0xc65f: 0x6c0be220, + 0xc660: 0x6c010a20, + 0xc665: 0x6c09f620, 0xc667: 0x6c146020, + 0xc668: 0x6c07fc20, + 0xc66d: 0x6c0a8020, 0xc66f: 0x6c0bce20, + 0xc674: 0x6c1f0c20, 0xc675: 0x6c1f0820, 0xc676: 0x6c1f0a20, + 0xc67c: 0x6c0e8a20, 0xc67f: 0x6c1f4a20, + // Block 0x31a, offset 0xc680 + 0xc681: 0x6c1f1620, 0xc682: 0x6c08d020, 0xc683: 0x6c06cc20, + 0xc684: 0x6c1f1220, + 0xc689: 0x6c1f1420, 0xc68b: 0x6c0b3420, + 0xc68f: 0x6c1f1020, + 0xc692: 0x6c083220, + 0xc69d: 0x6c1f1a20, 0xc69e: 0x6c1f1820, 0xc69f: 0x6c1f2220, + 0xc6a2: 0x6c1f2420, + 0xc6a4: 0x6c1f1c20, 0xc6a6: 0x6c023820, 0xc6a7: 0x6c1f1e20, + 0xc6a8: 0x6c1f2020, 0xc6a9: 0x6c120a20, + 0xc6ae: 0x6c12de20, 0xc6af: 0x6c057820, + 0xc6b0: 0x6c1f2620, + 0xc6b4: 0x6c0be420, 0xc6b6: 0x6c0a8220, + 0xc6ba: 0x6c0e5820, + // Block 0x31b, offset 0xc6c0 + 0xc6c1: 0x6c04b620, 0xc6c3: 0x6c1f2820, + 0xc6c4: 0x6c1f3020, 0xc6c7: 0x6c01ce20, + 0xc6c8: 0x6c1f2a20, 0xc6c9: 0x6c1f2e20, + 0xc6ce: 0x6c1f2c20, + 0xc6d1: 0x6c0a2220, + 0xc6d6: 0x6c0e4420, 0xc6d7: 0x6c004a20, + 0xc6d8: 0x6c1f3220, + 0xc6dd: 0x6c1f3420, + 0xc6e2: 0x6c0ec420, + 0xc6e6: 0x6c16aa20, + 0xc6eb: 0x6c085a20, + 0xc6ee: 0x6c13ae20, + 0xc6f4: 0x6c140e20, + 0xc6f8: 0x6c1f4220, 0xc6f9: 0x6c1f3820, + 0xc6fc: 0x6c1f3e20, 0xc6fe: 0x6c1f3c20, + // Block 0x31c, offset 0xc700 + 0xc701: 0x6c1f3620, + 0xc704: 0x6c1f4020, 0xc707: 0x6c10a420, + 0xc709: 0x6c1f3a20, + 0xc716: 0x6c1f4420, + 0xc719: 0x6c0a2420, 0xc71a: 0x6c1f4620, + 0xc71c: 0x6c15a220, 0xc71d: 0x6c119420, + 0xc720: 0x6c1f4820, + 0xc726: 0x6c1f4c20, + 0xc729: 0x6c1f4e20, + 0xc730: 0x6c1f5020, 0xc732: 0x6c04bc20, 0xc733: 0x6c010c20, + 0xc734: 0x6c06ce20, 0xc735: 0x6c1f5220, 0xc737: 0x6c1f5420, + 0xc738: 0x6c0a2e20, 0xc739: 0x6c0d0020, + 0xc73c: 0x6c191220, 0xc73d: 0x6c0cb820, 0xc73e: 0x6c0cb620, 0xc73f: 0x6c0da820, + // Block 0x31d, offset 0xc740 + 0xc740: 0x6c07a620, 0xc743: 0x6c17ce20, + 0xc748: 0x6c05c020, 0xc749: 0x6c156620, 0xc74b: 0x6c13d420, + 0xc74d: 0x6c131820, 0xc74f: 0x6c1f5620, + 0xc754: 0x6c07fe20, 0xc755: 0x6c0eee20, 0xc756: 0x6c1f5820, 0xc757: 0x6c16e220, + 0xc75b: 0x6c141020, + 0xc75d: 0x6c0ec620, 0xc75e: 0x6c1f5a20, 0xc75f: 0x6c03a820, + 0xc766: 0x6c1f5c20, 0xc767: 0x6c1f5e20, + 0xc768: 0x6c150420, 0xc76a: 0x6c149820, 0xc76b: 0x6c148020, + 0xc76c: 0x6c144c20, 0xc76d: 0x6c081e20, 0xc76e: 0x6c1f6220, + 0xc771: 0x6c096620, + 0xc774: 0x6c143620, 0xc776: 0x6c1f6620, 0xc777: 0x6c1f6c20, + 0xc778: 0x6c1f6a20, 0xc77a: 0x6c03a220, + 0xc77d: 0x6c042c20, 0xc77f: 0x6c1f6420, + // Block 0x31e, offset 0xc780 + 0xc781: 0x6c1f6820, + 0xc786: 0x6c1f6e20, + 0xc789: 0x6c0bb620, + 0xc78e: 0x6c160220, 0xc78f: 0x6c005220, + 0xc790: 0x6c07d820, 0xc791: 0x6c0d7020, 0xc793: 0x6c094a20, + 0xc796: 0x6c0aee20, + 0xc799: 0x6c1f7420, + 0xc79c: 0x6c0fc820, 0xc79e: 0x6c1f7020, 0xc79f: 0x6c0d4e20, + 0xc7a0: 0x6c1f7220, 0xc7a1: 0x6c0aec20, 0xc7a2: 0x6c150a20, 0xc7a3: 0x6c1f7620, + 0xc7a4: 0x6c1f7820, 0xc7a5: 0x6c15dc20, + 0xc7aa: 0x6c1f8220, + 0xc7ad: 0x6c06d020, 0xc7af: 0x6c114e20, + 0xc7b0: 0x6c1f7c20, 0xc7b1: 0x6c100420, 0xc7b2: 0x6c1efe20, 0xc7b3: 0x6c1f0620, + 0xc7b5: 0x6c040a20, 0xc7b7: 0x6c113220, + 0xc7bc: 0x6c1f8020, 0xc7be: 0x6c0a8420, 0xc7bf: 0x6c11e820, + // Block 0x31f, offset 0xc7c0 + 0xc7c5: 0x6c1f8c20, 0xc7c7: 0x6c125420, + 0xc7c9: 0x6c1f7a20, 0xc7cb: 0x6c1f8620, + 0xc7cc: 0x6c1f8420, + 0xc7d0: 0x6c0c1e20, + 0xc7d5: 0x6c146e20, 0xc7d7: 0x6c166e20, + 0xc7da: 0x6c146220, + 0xc7dc: 0x6c01d020, 0xc7dd: 0x6c089020, + 0xc7e0: 0x6c171420, 0xc7e1: 0x6c1f8a20, 0xc7e2: 0x6c0bae20, + 0xc7e6: 0x6c1f8820, + 0xc7e9: 0x6c1f7e20, + 0xc7ef: 0x6c063e20, + 0xc7f3: 0x6c1f9620, + 0xc7f4: 0x6c1f9220, 0xc7f6: 0x6c01d220, 0xc7f7: 0x6c1f8e20, + 0xc7f8: 0x6c1f9a20, 0xc7f9: 0x6c1fa620, + // Block 0x320, offset 0xc800 + 0xc801: 0x6c0d8820, + 0xc804: 0x6c135a20, 0xc806: 0x6c1faa20, + 0xc80a: 0x6c126020, + 0xc80e: 0x6c1fa820, 0xc80f: 0x6c118420, + 0xc810: 0x6c141220, 0xc811: 0x6c032620, 0xc813: 0x6c0c6e20, + 0xc814: 0x6c09cc20, + 0xc818: 0x6c0f1620, 0xc81a: 0x6c156820, + 0xc81d: 0x6c1fa020, 0xc81e: 0x6c1f9e20, + 0xc822: 0x6c1fa220, + 0xc824: 0x6c1f9c20, 0xc827: 0x6c1fac20, + 0xc829: 0x6c1f9820, + 0xc82c: 0x6c1f9420, 0xc82e: 0x6c1fa420, 0xc82f: 0x6c1f9020, + 0xc831: 0x6c0e8c20, 0xc833: 0x6c154020, + 0xc834: 0x6c091c20, 0xc835: 0x6c080020, + 0xc83b: 0x6c078c20, + 0xc83e: 0x6c147220, 0xc83f: 0x6c027620, + // Block 0x321, offset 0xc840 + 0xc842: 0x6c0f0c20, 0xc843: 0x6c107c20, + 0xc844: 0x6c010e20, + 0xc853: 0x6c0c6420, + 0xc856: 0x6c0be820, 0xc857: 0x6c053820, + 0xc85e: 0x6c1fb020, + 0xc861: 0x6c06d220, 0xc862: 0x6c02ec20, + 0xc869: 0x6c1fb420, 0xc86a: 0x6c02dc20, 0xc86b: 0x6c1fc020, + 0xc872: 0x6c1fba20, + 0xc874: 0x6c0c6620, + 0xc878: 0x6c028a20, 0xc879: 0x6c077020, + 0xc87c: 0x6c028820, 0xc87d: 0x6c07b620, + // Block 0x322, offset 0xc880 + 0xc880: 0x6c1fb620, 0xc881: 0x6c05ae20, 0xc882: 0x6c057a20, 0xc883: 0x6c100620, + 0xc886: 0x6c1fb220, + 0xc888: 0x6c004c20, + 0xc88d: 0x6c1fb820, 0xc88e: 0x6c1fbc20, + 0xc890: 0x6c04c220, 0xc891: 0x6c053c20, 0xc893: 0x6c032820, + 0xc894: 0x6c040220, + 0xc899: 0x6c1fc220, + 0xc89c: 0x6c080a20, 0xc89d: 0x6c147620, 0xc89f: 0x6c084220, + 0xc8a3: 0x6c1fc420, + 0xc8a7: 0x6c127c20, + 0xc8b4: 0x6c1fdc20, 0xc8b6: 0x6c019e20, 0xc8b7: 0x6c1fc620, + 0xc8be: 0x6c1fe820, 0xc8bf: 0x6c1fc820, + // Block 0x323, offset 0xc8c0 + 0xc8c1: 0x6c164c20, 0xc8c3: 0x6c1fd620, + 0xc8c5: 0x6c116220, + 0xc8cd: 0x6c1fe620, 0xc8cf: 0x6c1fcc20, + 0xc8d3: 0x6c002820, + 0xc8d4: 0x6c1fd020, 0xc8d7: 0x6c06d420, + 0xc8db: 0x6c1fd420, + 0xc8dd: 0x6c1fd220, 0xc8df: 0x6c1fca20, + 0xc8e0: 0x6c1fe020, 0xc8e2: 0x6c0a8620, + 0xc8e6: 0x6c1ab420, 0xc8e7: 0x6c067020, + 0xc8e8: 0x6c160420, + 0xc8ed: 0x6c1fce20, 0xc8ef: 0x6c0f5820, + 0xc8f0: 0x6c023a20, 0xc8f1: 0x6c077220, 0xc8f3: 0x6c1fbe20, + 0xc8f5: 0x6c1fde20, 0xc8f6: 0x6c02b620, + 0xc8f9: 0x6c1fda20, 0xc8fa: 0x6c1fe220, + 0xc8fc: 0x6c100820, + // Block 0x324, offset 0xc900 + 0xc904: 0x6c03ac20, 0xc906: 0x6c201e20, + 0xc909: 0x6c14e220, 0xc90a: 0x6c1fec20, 0xc90b: 0x6c03aa20, + 0xc90d: 0x6c1ffa20, + 0xc912: 0x6c141420, + 0xc914: 0x6c1ffc20, 0xc915: 0x6c200020, 0xc917: 0x6c200820, + 0xc918: 0x6c1ff020, 0xc91a: 0x6c0e0820, + 0xc91f: 0x6c100a20, + 0xc920: 0x6c201020, 0xc921: 0x6c1ff620, 0xc923: 0x6c200a20, + 0xc927: 0x6c1ffe20, + 0xc92e: 0x6c0b3620, 0xc92f: 0x6c201220, + 0xc932: 0x6c0be620, + 0xc939: 0x6c200e20, 0xc93a: 0x6c032a20, + // Block 0x325, offset 0xc940 + 0xc940: 0x6c172420, 0xc941: 0x6c1fea20, + 0xc944: 0x6c200620, 0xc945: 0x6c007020, + 0xc948: 0x6c1fee20, 0xc94b: 0x6c14c420, + 0xc94c: 0x6c1ff820, 0xc94d: 0x6c0b0820, 0xc94e: 0x6c0efe20, 0xc94f: 0x6c1fe420, + 0xc952: 0x6c200420, + 0xc959: 0x6c0bb820, 0xc95a: 0x6c201820, 0xc95b: 0x6c02d620, + 0xc95c: 0x6c05e220, + 0xc961: 0x6c201c20, 0xc962: 0x6c1ff220, 0xc963: 0x6c201a20, + 0xc965: 0x6c200c20, 0xc966: 0x6c1ff420, + 0xc968: 0x6c201420, 0xc96a: 0x6c201620, + 0xc970: 0x6c203820, + 0xc974: 0x6c108420, 0xc976: 0x6c200220, + 0xc979: 0x6c203020, + 0xc97d: 0x6c203420, 0xc97f: 0x6c0f2020, + // Block 0x326, offset 0xc980 + 0xc98a: 0x6c15a420, + 0xc993: 0x6c130820, + 0xc994: 0x6c202a20, 0xc995: 0x6c0d8c20, + 0xc999: 0x6c203620, 0xc99a: 0x6c0cba20, + 0xc99c: 0x6c202420, 0xc99d: 0x6c203e20, 0xc99e: 0x6c203c20, + 0xc9a0: 0x6c10c620, 0xc9a1: 0x6c203a20, 0xc9a2: 0x6c10bc20, + 0xc9aa: 0x6c204220, 0xc9ab: 0x6c202820, + 0xc9ad: 0x6c04b820, 0xc9ae: 0x6c202e20, 0xc9af: 0x6c0a0620, + 0xc9b3: 0x6c116420, + 0xc9b4: 0x6c203220, 0xc9b5: 0x6c04be20, 0xc9b7: 0x6c202220, + 0xc9b8: 0x6c202620, 0xc9b9: 0x6c202020, + 0xc9bc: 0x6c16e420, 0xc9bd: 0x6c02a820, 0xc9be: 0x6c202c20, + // Block 0x327, offset 0xc9c0 + 0xc9c1: 0x6c204020, 0xc9c2: 0x6c025e20, + 0xc9ca: 0x6c07e620, + 0xc9ce: 0x6c013620, + 0xc9d1: 0x6c206220, + 0xc9d4: 0x6c16e620, 0xc9d5: 0x6c206820, + 0xc9db: 0x6c0b3820, + 0xc9dc: 0x6c206620, + 0xc9e0: 0x6c206420, + 0xc9e7: 0x6c205e20, + 0xc9ee: 0x6c204620, + 0xc9f1: 0x6c208020, 0xc9f2: 0x6c204420, + 0xc9f4: 0x6c206a20, + 0xc9fb: 0x6c205a20, + 0xc9fe: 0x6c205020, 0xc9ff: 0x6c204a20, + // Block 0x328, offset 0xca00 + 0xca01: 0x6c204c20, 0xca03: 0x6c205c20, + 0xca07: 0x6c319e20, + 0xca0a: 0x6c205620, 0xca0b: 0x6c06d620, + 0xca0c: 0x6c0f0020, 0xca0d: 0x6c0d0420, 0xca0e: 0x6c205220, + 0xca10: 0x6c204820, 0xca13: 0x6c204e20, + 0xca18: 0x6c15a620, 0xca19: 0x6c146820, + 0xca1d: 0x6c205820, 0xca1e: 0x6c206c20, + 0xca27: 0x6c207c20, + 0xca28: 0x6c206e20, 0xca2b: 0x6c208820, + 0xca2d: 0x6c208420, + 0xca32: 0x6c207a20, + 0xca39: 0x6c207820, 0xca3b: 0x6c0f1020, + 0xca3d: 0x6c0d0620, 0xca3f: 0x6c207420, + // Block 0x329, offset 0xca40 + 0xca42: 0x6c207020, + 0xca45: 0x6c207e20, + 0xca4a: 0x6c208a20, 0xca4b: 0x6c124a20, + 0xca4c: 0x6c209620, + 0xca52: 0x6c208c20, 0xca53: 0x6c209220, + 0xca54: 0x6c208620, 0xca57: 0x6c0e9c20, + 0xca59: 0x6c128c20, 0xca5b: 0x6c207220, + 0xca5e: 0x6c208220, 0xca5f: 0x6c0a8820, + 0xca61: 0x6c14ee20, 0xca62: 0x6c20aa20, 0xca63: 0x6c209020, + 0xca69: 0x6c05e420, 0xca6a: 0x6c017e20, 0xca6b: 0x6c02b220, + 0xca6e: 0x6c206020, + 0xca75: 0x6c0a8a20, 0xca76: 0x6c209a20, + 0xca78: 0x6c20a820, 0xca79: 0x6c098220, 0xca7a: 0x6c02d820, + 0xca7d: 0x6c0e1020, + // Block 0x32a, offset 0xca80 + 0xca84: 0x6c209420, 0xca87: 0x6c209e20, + 0xca88: 0x6c20a620, 0xca8b: 0x6c049420, + 0xca98: 0x6c040420, 0xca99: 0x6c20a220, + 0xca9f: 0x6c03ae20, + 0xcaa1: 0x6c107e20, 0xcaa2: 0x6c20a020, + 0xcaa6: 0x6c20a420, + 0xcab2: 0x6c209820, + 0xcab8: 0x6c209c20, + 0xcabf: 0x6c02b420, + // Block 0x32b, offset 0xcac0 + 0xcac0: 0x6c0e4620, + 0xcac4: 0x6c20b220, + 0xcacd: 0x6c20ae20, 0xcace: 0x6c067220, + 0xcad0: 0x6c20ac20, + 0xcad7: 0x6c20b820, + 0xcadc: 0x6c1fae20, + 0xcae0: 0x6c20b020, 0xcae2: 0x6c20b420, 0xcae3: 0x6c20b620, + 0xcaea: 0x6c20ce20, + 0xcaec: 0x6c20c620, 0xcaee: 0x6c1fd820, + 0xcaf3: 0x6c20c420, + 0xcaf8: 0x6c20c220, 0xcafb: 0x6c20bc20, + // Block 0x32c, offset 0xcb00 + 0xcb01: 0x6c208e20, 0xcb02: 0x6c20c020, 0xcb03: 0x6c20be20, + 0xcb11: 0x6c20ca20, 0xcb13: 0x6c16d020, + 0xcb1a: 0x6c20d020, 0xcb1b: 0x6c051e20, + 0xcb1e: 0x6c20c820, 0xcb1f: 0x6c20cc20, + 0xcb28: 0x6c11ae20, 0xcb2a: 0x6c20d220, + 0xcb3a: 0x6c20da20, 0xcb3b: 0x6c20d420, + // Block 0x32d, offset 0xcb40 + 0xcb44: 0x6c15f220, 0xcb45: 0x6c20d620, + 0xcb4a: 0x6c207620, + 0xcb52: 0x6c20dc20, + 0xcb56: 0x6c20de20, + 0xcb5d: 0x6c00e620, 0xcb5f: 0x6c20e220, + 0xcb60: 0x6c05b220, 0xcb61: 0x6c08d220, 0xcb63: 0x6c04d220, + 0xcb67: 0x6c018020, + 0xcb72: 0x6c15ca20, + 0xcb77: 0x6c20e620, + 0xcb78: 0x6c20e420, 0xcb79: 0x6c20ea20, 0xcb7a: 0x6c03e620, + 0xcb7d: 0x6c04d420, 0xcb7e: 0x6c032c20, + // Block 0x32e, offset 0xcb80 + 0xcb83: 0x6c20f020, + 0xcb87: 0x6c20ee20, + 0xcb89: 0x6c20f220, + 0xcb8c: 0x6c01d420, 0xcb8e: 0x6c0e2220, + 0xcb90: 0x6c20f420, 0xcb93: 0x6c032e20, + 0xcb94: 0x6c20f820, + 0xcb99: 0x6c20f620, 0xcb9b: 0x6c20fa20, + 0xcb9f: 0x6c20fc20, + 0xcba1: 0x6c20fe20, 0xcba2: 0x6c089220, 0xcba3: 0x6c0bea20, + 0xcba4: 0x6c075a20, 0xcba6: 0x6c12fc20, + 0xcba9: 0x6c139c20, 0xcbaa: 0x6c170c20, + 0xcbaf: 0x6c08be20, + 0xcbb3: 0x6c07b820, + 0xcbb4: 0x6c16ac20, + 0xcbb8: 0x6c210020, 0xcbb9: 0x6c210220, 0xcbbb: 0x6c089420, + 0xcbbf: 0x6c210420, + // Block 0x32f, offset 0xcbc0 + 0xcbc0: 0x6c210620, 0xcbc3: 0x6c210a20, + 0xcbc4: 0x6c210820, 0xcbc6: 0x6c144420, + 0xcbc9: 0x6c0a0820, 0xcbca: 0x6c096820, 0xcbcb: 0x6c085c20, + 0xcbcd: 0x6c210c20, + 0xcbd5: 0x6c211020, 0xcbd6: 0x6c0b0a20, + 0xcbd8: 0x6c210e20, + 0xcbde: 0x6c211220, + 0xcbe4: 0x6c211420, + 0xcbea: 0x6c211620, 0xcbeb: 0x6c211820, + 0xcbef: 0x6c211a20, + 0xcbf1: 0x6c211e20, 0xcbf2: 0x6c211c20, 0xcbf3: 0x6c212020, + 0xcbf4: 0x6c018220, 0xcbf5: 0x6c0e4820, 0xcbf7: 0x6c212220, + 0xcbfa: 0x6c082020, 0xcbfb: 0x6c028c20, + 0xcbfc: 0x6c212420, 0xcbff: 0x6c0fb020, + // Block 0x330, offset 0xcc00 + 0xcc00: 0x6c1a7220, + 0xcc05: 0x6c03b220, 0xcc06: 0x6c212620, + 0xcc0b: 0x6c212820, + 0xcc0d: 0x6c13b020, 0xcc0e: 0x6c146420, + 0xcc12: 0x6c107620, 0xcc13: 0x6c212a20, + 0xcc14: 0x6c122c20, + 0xcc18: 0x6c125620, 0xcc1b: 0x6c14f620, + 0xcc1f: 0x6c212c20, + 0xcc2b: 0x6c213020, + 0xcc2c: 0x6c212e20, 0xcc2f: 0x6c213420, + 0xcc33: 0x6c213220, + // Block 0x331, offset 0xcc40 + 0xcc48: 0x6c213820, + 0xcc4f: 0x6c089620, + 0xcc51: 0x6c14b220, 0xcc53: 0x6c213a20, + 0xcc54: 0x6c213c20, 0xcc57: 0x6c03b420, + 0xcc5b: 0x6c213e20, + 0xcc63: 0x6c214220, + 0xcc64: 0x6c214020, + 0xcc74: 0x6c0b8e20, 0xcc77: 0x6c128e20, + 0xcc78: 0x6c011020, + 0xcc7e: 0x6c11ea20, + // Block 0x332, offset 0xcc80 + 0xcc80: 0x6c0f5a20, 0xcc81: 0x6c09ce20, 0xcc82: 0x6c042e20, + 0xcc8e: 0x6c11ec20, + 0xcc90: 0x6c08ec20, + 0xcc95: 0x6c214620, 0xcc97: 0x6c033020, + 0xcc9a: 0x6c016c20, + 0xcc9d: 0x6c10cc20, 0xcc9e: 0x6c214420, 0xcc9f: 0x6c06d820, + 0xcca0: 0x6c0e5a20, 0xcca2: 0x6c214820, + 0xcca8: 0x6c215820, 0xccaa: 0x6c214a20, + 0xccb0: 0x6c0d7a20, 0xccb2: 0x6c043020, 0xccb3: 0x6c215a20, + 0xccba: 0x6c05b420, + 0xccbd: 0x6c03b620, 0xccbe: 0x6c215620, + // Block 0x333, offset 0xccc0 + 0xccc1: 0x6c215220, 0xccc2: 0x6c214c20, 0xccc3: 0x6c15cc20, + 0xccc8: 0x6c0ef020, + 0xcccc: 0x6c109a20, 0xcccd: 0x6c214e20, + 0xccd0: 0x6c215e20, 0xccd2: 0x6c215c20, 0xccd3: 0x6c052a20, + 0xccd6: 0x6c019220, + 0xccd9: 0x6c078e20, 0xccda: 0x6c215020, 0xccdb: 0x6c215420, + 0xcce1: 0x6c144220, 0xcce2: 0x6c0de020, + 0xcceb: 0x6c148220, + 0xccee: 0x6c216e20, + 0xccf1: 0x6c217020, 0xccf3: 0x6c01d620, + 0xccf8: 0x6c132820, 0xccf9: 0x6c154a20, 0xccfa: 0x6c217420, 0xccfb: 0x6c08d620, + 0xccfc: 0x6c0a8c20, 0xccfd: 0x6c216620, 0xccfe: 0x6c217220, 0xccff: 0x6c014c20, + // Block 0x334, offset 0xcd00 + 0xcd01: 0x6c049620, + 0xcd04: 0x6c216020, 0xcd05: 0x6c216a20, + 0xcd09: 0x6c0c6820, 0xcd0a: 0x6c118620, + 0xcd0c: 0x6c122e20, + 0xcd13: 0x6c216420, + 0xcd15: 0x6c13d620, 0xcd17: 0x6c216820, + 0xcd19: 0x6c217a20, 0xcd1b: 0x6c217620, + 0xcd1d: 0x6c216c20, + 0xcd21: 0x6c13d820, 0xcd22: 0x6c113420, 0xcd23: 0x6c043220, + 0xcd25: 0x6c0f7620, + 0xcd28: 0x6c0e8e20, 0xcd2a: 0x6c217c20, + 0xcd2f: 0x6c217820, + 0xcd30: 0x6c0daa20, 0xcd31: 0x6c216220, 0xcd33: 0x6c011220, + // Block 0x335, offset 0xcd40 + 0xcd4b: 0x6c15a820, + 0xcd4c: 0x6c219220, + 0xcd52: 0x6c219020, + 0xcd57: 0x6c0c6c20, + 0xcd59: 0x6c218a20, 0xcd5b: 0x6c15e420, + 0xcd5e: 0x6c105420, 0xcd5f: 0x6c217e20, + 0xcd65: 0x6c0efa20, + 0xcd69: 0x6c011420, 0xcd6a: 0x6c06da20, 0xcd6b: 0x6c218420, + 0xcd72: 0x6c099a20, 0xcd73: 0x6c218e20, + 0xcd75: 0x6c218c20, 0xcd76: 0x6c218220, + 0xcd78: 0x6c218820, 0xcd7b: 0x6c02c420, + 0xcd7d: 0x6c218620, 0xcd7e: 0x6c113620, + // Block 0x336, offset 0xcd80 + 0xcd81: 0x6c162420, + 0xcd84: 0x6c0af020, 0xcd85: 0x6c0c6a20, + 0xcd99: 0x6c219e20, 0xcd9a: 0x6c219a20, + 0xcd9c: 0x6c12b620, + 0xcda3: 0x6c219420, + 0xcda4: 0x6c219820, 0xcda6: 0x6c00f020, + 0xcda9: 0x6c06dc20, 0xcdaa: 0x6c16e820, + 0xcdac: 0x6c026e20, 0xcdae: 0x6c12e020, + 0xcdb4: 0x6c15ce20, 0xcdb7: 0x6c023c20, + 0xcdb8: 0x6c0b3a20, 0xcdb9: 0x6c219c20, + // Block 0x337, offset 0xcdc0 + 0xcdc5: 0x6c21a620, + 0xcdc8: 0x6c0a8e20, + 0xcdcc: 0x6c156c20, 0xcdce: 0x6c21a020, + 0xcdd3: 0x6c219620, + 0xcdd5: 0x6c21a220, + 0xcdd9: 0x6c168420, 0xcddb: 0x6c101220, + 0xcddc: 0x6c106c20, + 0xcdef: 0x6c026020, + 0xcdf2: 0x6c012620, + 0xcdf5: 0x6c21ae20, + 0xcdf8: 0x6c21b420, + 0xcdfc: 0x6c164e20, + // Block 0x338, offset 0xce00 + 0xce00: 0x6c15d420, + 0xce05: 0x6c21c220, 0xce06: 0x6c21b620, 0xce07: 0x6c21b020, + 0xce0b: 0x6c167020, + 0xce0c: 0x6c21bc20, + 0xce11: 0x6c09e020, 0xce12: 0x6c21c020, + 0xce15: 0x6c21ca20, + 0xce18: 0x6c100e20, 0xce19: 0x6c21c620, + 0xce1e: 0x6c21ba20, + 0xce21: 0x6c0e2420, + 0xce24: 0x6c21c820, 0xce26: 0x6c21b220, + 0xce28: 0x6c21be20, 0xce2a: 0x6c21cc20, 0xce2b: 0x6c00b820, + 0xce2c: 0x6c21b820, 0xce2e: 0x6c21ce20, + 0xce31: 0x6c0b3c20, 0xce33: 0x6c0a0a20, + 0xce35: 0x6c132220, 0xce37: 0x6c077420, + 0xce39: 0x6c21a820, 0xce3a: 0x6c21c420, 0xce3b: 0x6c0fa020, + // Block 0x339, offset 0xce40 + 0xce45: 0x6c0bec20, 0xce47: 0x6c02c620, + 0xce48: 0x6c07ba20, 0xce49: 0x6c0a9020, 0xce4a: 0x6c21ac20, 0xce4b: 0x6c09d020, + 0xce53: 0x6c057c20, + 0xce55: 0x6c21aa20, + 0xce59: 0x6c21d620, 0xce5a: 0x6c0a2620, 0xce5b: 0x6c061420, + 0xce5d: 0x6c21f420, 0xce5f: 0x6c21e820, + 0xce60: 0x6c045420, 0xce61: 0x6c0fca20, 0xce63: 0x6c21de20, + 0xce64: 0x6c21f020, 0xce65: 0x6c001e20, 0xce66: 0x6c00e020, + 0xce69: 0x6c01aa20, 0xce6b: 0x6c21e220, + 0xce6c: 0x6c0d5020, 0xce6d: 0x6c21d020, 0xce6e: 0x6c21d420, 0xce6f: 0x6c06de20, + 0xce78: 0x6c21f620, 0xce7a: 0x6c21ec20, + 0xce7e: 0x6c21dc20, + // Block 0x33a, offset 0xce80 + 0xce83: 0x6c21ea20, + 0xce8a: 0x6c14a620, + 0xce8d: 0x6c21e620, 0xce8e: 0x6c21ee20, + 0xce96: 0x6c064020, + 0xce98: 0x6c0a9220, 0xce9b: 0x6c0e2620, + 0xce9f: 0x6c21da20, + 0xcea7: 0x6c156a20, + 0xceab: 0x6c21e020, + 0xceae: 0x6c21d220, 0xceaf: 0x6c101020, + 0xceb2: 0x6c21d820, + 0xceb6: 0x6c21e420, + 0xcebe: 0x6c172620, 0xcebf: 0x6c090c20, + // Block 0x33b, offset 0xcec0 + 0xcec0: 0x6c149020, 0xcec2: 0x6c21f820, + 0xcecc: 0x6c11bc20, 0xcecf: 0x6c221020, + 0xced0: 0x6c061620, + 0xced6: 0x6c0a0c20, + 0xced8: 0x6c21fc20, + 0xcedc: 0x6c162620, 0xcedd: 0x6c06e020, 0xcedf: 0x6c221620, + 0xcee2: 0x6c009c20, + 0xcee5: 0x6c221220, + 0xceea: 0x6c21fa20, + 0xceef: 0x6c220620, + 0xcef2: 0x6c220a20, + 0xcef6: 0x6c15aa20, 0xcef7: 0x6c220020, + 0xcefa: 0x6c0f8820, + 0xcefd: 0x6c220420, + // Block 0x33c, offset 0xcf00 + 0xcf02: 0x6c221420, + 0xcf04: 0x6c220820, 0xcf05: 0x6c14de20, + 0xcf09: 0x6c21fe20, 0xcf0b: 0x6c08d420, + 0xcf0c: 0x6c222e20, + 0xcf11: 0x6c02c820, 0xcf13: 0x6c220220, + 0xcf14: 0x6c220c20, 0xcf15: 0x6c220e20, + 0xcf1d: 0x6c0dd020, 0xcf1e: 0x6c0dac20, + 0xcf2c: 0x6c221e20, 0xcf2f: 0x6c222a20, + 0xcf32: 0x6c222620, + 0xcf34: 0x6c0f7e20, 0xcf37: 0x6c223420, + 0xcf38: 0x6c222020, + 0xcf3e: 0x6c222220, 0xcf3f: 0x6c21f220, + // Block 0x33d, offset 0xcf40 + 0xcf41: 0x6c045e20, 0xcf42: 0x6c129020, + 0xcf46: 0x6c090e20, + 0xcf49: 0x6c074a20, + 0xcf4f: 0x6c16ea20, + 0xcf51: 0x6c221a20, 0xcf53: 0x6c223220, + 0xcf54: 0x6c014e20, 0xcf55: 0x6c0d0820, + 0xcf60: 0x6c119620, 0xcf62: 0x6c033220, 0xcf63: 0x6c16bc20, + 0xcf6b: 0x6c149220, + 0xcf6c: 0x6c0f1420, + 0xcf71: 0x6c222820, 0xcf72: 0x6c222c20, + 0xcf78: 0x6c0ca020, + 0xcf7e: 0x6c223020, 0xcf7f: 0x6c222420, + // Block 0x33e, offset 0xcf80 + 0xcf81: 0x6c221820, + 0xcf85: 0x6c033620, + 0xcf94: 0x6c05b620, + 0xcf98: 0x6c224c20, 0xcf9b: 0x6c224220, + 0xcf9c: 0x6c0c7020, 0xcf9f: 0x6c02ba20, + 0xcfa4: 0x6c0a0e20, 0xcfa6: 0x6c225420, + 0xcfad: 0x6c224620, 0xcfae: 0x6c0ec820, 0xcfaf: 0x6c224020, + 0xcfb0: 0x6c0f2220, + 0xcfb4: 0x6c228620, + 0xcfb8: 0x6c223a20, 0xcfba: 0x6c223820, + 0xcfbc: 0x6c224a20, + // Block 0x33f, offset 0xcfc0 + 0xcfc0: 0x6c223e20, 0xcfc1: 0x6c223c20, 0xcfc2: 0x6c224820, + 0xcfc4: 0x6c0bc220, 0xcfc6: 0x6c223620, + 0xcfce: 0x6c224e20, + 0xcfd1: 0x6c225020, + 0xcfd7: 0x6c033420, + 0xcfe1: 0x6c225a20, 0xcfe3: 0x6c225820, + 0xcfe4: 0x6c225c20, + 0xcfea: 0x6c226220, + 0xcff1: 0x6c0fb220, 0xcff3: 0x6c225620, + 0xcff9: 0x6c225e20, + // Block 0x340, offset 0xd000 + 0xd000: 0x6c05aa20, 0xd001: 0x6c0dea20, 0xd002: 0x6c225220, 0xd003: 0x6c111a20, + 0xd006: 0x6c226020, + 0xd014: 0x6c226a20, 0xd015: 0x6c226620, + 0xd018: 0x6c226c20, 0xd01b: 0x6c227220, + 0xd01f: 0x6c226420, + 0xd020: 0x6c073020, 0xd021: 0x6c10f420, + 0xd024: 0x6c21a420, + 0xd02b: 0x6c15f420, + 0xd02c: 0x6c226820, 0xd02e: 0x6c227020, 0xd02f: 0x6c0de220, + 0xd031: 0x6c226e20, 0xd033: 0x6c224420, + 0xd036: 0x6c2e8020, + 0xd03a: 0x6c227820, + 0xd03e: 0x6c228020, + // Block 0x341, offset 0xd040 + 0xd041: 0x6c227c20, + 0xd049: 0x6c227420, 0xd04b: 0x6c227620, + 0xd04f: 0x6c227e20, + 0xd051: 0x6c227a20, + 0xd055: 0x6c12b820, + 0xd058: 0x6c228a20, 0xd05a: 0x6c228420, 0xd05b: 0x6c228220, + 0xd05d: 0x6c228820, 0xd05e: 0x6c109020, 0xd05f: 0x6c228c20, + 0xd066: 0x6c0e9e20, 0xd067: 0x6c0dd220, + 0xd06c: 0x6c0bca20, + 0xd070: 0x6c228e20, 0xd072: 0x6c229220, + 0xd07e: 0x6c229020, + // Block 0x342, offset 0xd080 + 0xd08c: 0x6c221c20, + 0xd091: 0x6c229420, + 0xd098: 0x6c10b620, + 0xd0a3: 0x6c229620, + 0xd0ab: 0x6c01d820, + 0xd0af: 0x6c101420, + 0xd0b0: 0x6c023e20, + 0xd0b8: 0x6c043420, + 0xd0bc: 0x6c094c20, 0xd0bd: 0x6c07bc20, + // Block 0x343, offset 0xd0c0 + 0xd0c9: 0x6c16d220, 0xd0ca: 0x6c0b9020, + 0xd0ce: 0x6c015020, + 0xd0d2: 0x6c229a20, + 0xd0d9: 0x6c229820, + 0xd0ec: 0x6c22a020, 0xd0ed: 0x6c0e2820, 0xd0ee: 0x6c22a620, 0xd0ef: 0x6c229c20, + 0xd0f3: 0x6c22a420, + 0xd0f8: 0x6c22a220, 0xd0f9: 0x6c0fac20, 0xd0fa: 0x6c007220, + // Block 0x344, offset 0xd100 + 0xd108: 0x6c16b220, 0xd10b: 0x6c22aa20, + 0xd10f: 0x6c00cc20, + 0xd119: 0x6c22ae20, + 0xd11d: 0x6c22ac20, 0xd11f: 0x6c22a820, + 0xd131: 0x6c229e20, + 0xd139: 0x6c13da20, + 0xd13d: 0x6c22b220, + // Block 0x345, offset 0xd140 + 0xd149: 0x6c22b020, + 0xd154: 0x6c015220, + 0xd159: 0x6c22b620, 0xd15a: 0x6c133c20, + 0xd15c: 0x6c22b420, + 0xd161: 0x6c14ba20, + 0xd166: 0x6c0a9620, + 0xd176: 0x6c0ca220, + 0xd17c: 0x6c0a9420, + // Block 0x346, offset 0xd180 + 0xd189: 0x6c16be20, + 0xd18c: 0x6c22c220, 0xd18e: 0x6c0c7220, + 0xd195: 0x6c22ba20, 0xd196: 0x6c22c420, + 0xd199: 0x6c015420, + 0xd1a2: 0x6c22c020, + 0xd1a4: 0x6c116620, 0xd1a5: 0x6c22b820, 0xd1a6: 0x6c22be20, 0xd1a7: 0x6c0a9820, + 0xd1a9: 0x6c120220, + 0xd1ac: 0x6c22c620, 0xd1ae: 0x6c093220, + 0xd1bd: 0x6c0c7420, + // Block 0x347, offset 0xd1c0 + 0xd1c4: 0x6c22cc20, + 0xd1c8: 0x6c22bc20, 0xd1ca: 0x6c053220, + 0xd1cf: 0x6c22c820, + 0xd1d4: 0x6c15ac20, 0xd1d5: 0x6c22ce20, + 0xd1d9: 0x6c31a620, + 0xd1df: 0x6c09ea20, + 0xd1e8: 0x6c22d020, + 0xd1ec: 0x6c22d220, + 0xd1f1: 0x6c110020, + 0xd1f9: 0x6c22d620, + 0xd1fe: 0x6c22d820, + // Block 0x348, offset 0xd200 + 0xd203: 0x6c110a20, + 0xd208: 0x6c101620, 0xd209: 0x6c22dc20, + 0xd20e: 0x6c22e020, + 0xd210: 0x6c167220, 0xd212: 0x6c22da20, + 0xd214: 0x6c22de20, 0xd215: 0x6c015620, 0xd217: 0x6c22d420, + 0xd21f: 0x6c19d420, + 0xd220: 0x6c22e220, + 0xd225: 0x6c0d0a20, 0xd226: 0x6c084420, 0xd227: 0x6c22e620, + 0xd22c: 0x6c22e420, 0xd22d: 0x6c0b0c20, 0xd22e: 0x6c191420, + 0xd235: 0x6c22e820, + 0xd239: 0x6c22ec20, 0xd23b: 0x6c22ca20, + 0xd23c: 0x6c22ea20, 0xd23f: 0x6c22ee20, + // Block 0x349, offset 0xd240 + 0xd246: 0x6c119820, + 0xd24d: 0x6c22f020, + 0xd250: 0x6c22f220, + 0xd25b: 0x6c22f420, + 0xd268: 0x6c22f620, 0xd26a: 0x6c0f2c20, + 0xd26c: 0x6c22fa20, 0xd26d: 0x6c22f820, + 0xd270: 0x6c22fc20, 0xd272: 0x6c22fe20, + 0xd275: 0x6c094e20, 0xd276: 0x6c12e220, + 0xd27a: 0x6c152820, 0xd27b: 0x6c230020, + 0xd27c: 0x6c230220, 0xd27d: 0x6c0ce820, 0xd27e: 0x6c08d820, 0xd27f: 0x6c230420, + // Block 0x34a, offset 0xd280 + 0xd280: 0x6c230620, + 0xd286: 0x6c230820, 0xd287: 0x6c137c20, + 0xd288: 0x6c11ee20, 0xd28b: 0x6c230a20, + 0xd28c: 0x6c115220, + 0xd292: 0x6c0eca20, + 0xd298: 0x6c230c20, 0xd299: 0x6c020620, 0xd29b: 0x6c044620, + 0xd29d: 0x6c14dc20, 0xd29f: 0x6c14bc20, + 0xd2a1: 0x6c01a020, 0xd2a2: 0x6c16ec20, + 0xd2a7: 0x6c143820, + 0xd2a9: 0x6c132c20, + 0xd2b2: 0x6c0bee20, + 0xd2b4: 0x6c230e20, + 0xd2b9: 0x6c106e20, + 0xd2bd: 0x6c05e620, 0xd2be: 0x6c231020, + // Block 0x34b, offset 0xd2c0 + 0xd2c0: 0x6c07c020, 0xd2c1: 0x6c231420, 0xd2c2: 0x6c231220, + 0xd2c7: 0x6c231620, + 0xd2d2: 0x6c231820, + 0xd2d6: 0x6c231a20, + 0xd2e0: 0x6c03e820, 0xd2e2: 0x6c231c20, + 0xd2e7: 0x6c231e20, + 0xd2ec: 0x6c05e820, 0xd2ef: 0x6c11f020, + 0xd2f2: 0x6c232220, + 0xd2f6: 0x6c0af220, + 0xd2f9: 0x6c232020, + // Block 0x34c, offset 0xd300 + 0xd302: 0x6c049820, 0xd303: 0x6c232420, + 0xd304: 0x6c232820, 0xd306: 0x6c232620, + 0xd30e: 0x6c232a20, + 0xd310: 0x6c064220, 0xd312: 0x6c232c20, + 0xd317: 0x6c04fa20, + 0xd319: 0x6c0cbc20, 0xd31b: 0x6c075620, + 0xd320: 0x6c233020, 0xd321: 0x6c233220, 0xd322: 0x6c232e20, + 0xd329: 0x6c096a20, + 0xd32c: 0x6c107820, 0xd32d: 0x6c049a20, + 0xd337: 0x6c233620, + 0xd338: 0x6c0e0c20, 0xd339: 0x6c233420, + 0xd33c: 0x6c16ee20, 0xd33d: 0x6c116820, + // Block 0x34d, offset 0xd340 + 0xd34a: 0x6c233c20, + 0xd356: 0x6c234020, 0xd357: 0x6c233a20, + 0xd35b: 0x6c14f820, + 0xd35c: 0x6c233e20, 0xd35d: 0x6c234220, 0xd35f: 0x6c165020, + 0xd365: 0x6c234a20, + 0xd369: 0x6c234820, 0xd36a: 0x6c0ea020, 0xd36b: 0x6c10fe20, + 0xd36e: 0x6c05ea20, 0xd36f: 0x6c234620, + 0xd374: 0x6c234420, 0xd376: 0x6c156e20, 0xd377: 0x6c157020, + 0xd37e: 0x6c234c20, 0xd37f: 0x6c015820, + // Block 0x34e, offset 0xd380 + 0xd384: 0x6c074820, 0xd385: 0x6c089820, + 0xd38e: 0x6c234e20, 0xd38f: 0x6c235020, + 0xd397: 0x6c235420, + 0xd3a3: 0x6c09d220, + 0xd3a8: 0x6c235820, 0xd3aa: 0x6c235620, + 0xd3b0: 0x6c235a20, 0xd3b2: 0x6c028e20, + 0xd3b5: 0x6c235e20, + 0xd3b8: 0x6c235c20, 0xd3ba: 0x6c236220, 0xd3bb: 0x6c236020, + // Block 0x34f, offset 0xd3c0 + 0xd3c4: 0x6c061820, 0xd3c7: 0x6c161820, + 0xd3c9: 0x6c04c020, 0xd3cb: 0x6c018420, + 0xd3d6: 0x6c04fc20, + 0xd3e9: 0x6c037220, + 0xd3f2: 0x6c169820, 0xd3f3: 0x6c236620, + 0xd3fb: 0x6c236a20, + // Block 0x350, offset 0xd400 + 0xd400: 0x6c236c20, 0xd402: 0x6c01da20, + 0xd408: 0x6c236420, 0xd40a: 0x6c084620, + 0xd40d: 0x6c0ef220, 0xd40e: 0x6c236820, + 0xd41e: 0x6c237220, + 0xd420: 0x6c096c20, + 0xd425: 0x6c236e20, + 0xd42a: 0x6c056020, + 0xd42d: 0x6c11f220, 0xd42e: 0x6c237020, + 0xd431: 0x6c23a620, + 0xd438: 0x6c237c20, + 0xd43e: 0x6c061a20, + // Block 0x351, offset 0xd440 + 0xd443: 0x6c043620, + 0xd445: 0x6c237620, 0xd446: 0x6c160620, + 0xd449: 0x6c162820, + 0xd462: 0x6c0de420, + 0xd465: 0x6c237a20, + 0xd472: 0x6c237e20, 0xd473: 0x6c167420, + 0xd474: 0x6c04d620, 0xd475: 0x6c125820, 0xd476: 0x6c113820, + 0xd47a: 0x6c238020, + 0xd47f: 0x6c238420, + // Block 0x352, offset 0xd480 + 0xd481: 0x6c238a20, + 0xd495: 0x6c238220, + 0xd499: 0x6c238820, 0xd49a: 0x6c067420, 0xd49b: 0x6c011620, + 0xd49c: 0x6c238c20, 0xd49e: 0x6c0ba420, 0xd49f: 0x6c238620, + 0xd4a0: 0x6c168020, 0xd4a3: 0x6c239220, + 0xd4a4: 0x6c31a220, + 0xd4a9: 0x6c238e20, 0xd4aa: 0x6c239420, + 0xd4af: 0x6c237820, + 0xd4b0: 0x6c239020, 0xd4b3: 0x6c079020, + 0xd4b6: 0x6c239620, + 0xd4be: 0x6c239820, + // Block 0x353, offset 0xd4c0 + 0xd4c3: 0x6c160820, + 0xd4cb: 0x6c239a20, + 0xd4de: 0x6c239c20, + 0xd4e2: 0x6c237420, + 0xd4e7: 0x6c239e20, + 0xd4f0: 0x6c033820, + 0xd4fd: 0x6c08da20, + // Block 0x354, offset 0xd500 + 0xd50a: 0x6c23a020, + 0xd50f: 0x6c23a220, + 0xd514: 0x6c23a420, + 0xd51c: 0x6c00f220, + 0xd520: 0x6c23a820, 0xd522: 0x6c129220, 0xd523: 0x6c23aa20, + 0xd526: 0x6c02f820, 0xd527: 0x6c23ac20, + 0xd529: 0x6c23ae20, + 0xd52e: 0x6c23b020, + 0xd530: 0x6c23b420, 0xd531: 0x6c23b620, 0xd532: 0x6c23b220, + 0xd536: 0x6c12c220, 0xd537: 0x6c23ba20, + 0xd538: 0x6c23b820, + // Block 0x355, offset 0xd540 + 0xd543: 0x6c23be20, + 0xd544: 0x6c23bc20, 0xd545: 0x6c23c020, + 0xd54c: 0x6c23c220, 0xd54d: 0x6c23c620, 0xd54e: 0x6c23c420, + 0xd551: 0x6c074e20, 0xd553: 0x6c23ca20, + 0xd555: 0x6c23c820, + 0xd558: 0x6c033a20, 0xd55a: 0x6c0b6a20, + 0xd55c: 0x6c0fa420, 0xd55e: 0x6c23cc20, 0xd55f: 0x6c0bf020, + 0xd563: 0x6c084820, + 0xd565: 0x6c016e20, 0xd566: 0x6c23ce20, + 0xd568: 0x6c15ae20, 0xd56b: 0x6c139e20, + 0xd56c: 0x6c23d020, + 0xd570: 0x6c0fb420, 0xd571: 0x6c157220, 0xd572: 0x6c06e220, 0xd573: 0x6c0b3e20, + 0xd577: 0x6c0e4a20, + 0xd578: 0x6c18ca20, 0xd57a: 0x6c0ecc20, 0xd57b: 0x6c020820, + 0xd57c: 0x6c23d220, + // Block 0x356, offset 0xd580 + 0xd584: 0x6c23d420, 0xd586: 0x6c23de20, + 0xd589: 0x6c23da20, 0xd58a: 0x6c23d820, 0xd58b: 0x6c1ec620, + 0xd58c: 0x6c024020, 0xd58d: 0x6c23d620, 0xd58f: 0x6c007420, + 0xd591: 0x6c11b420, + 0xd594: 0x6c11f420, + 0xd599: 0x6c162a20, 0xd59a: 0x6c23e020, 0xd59b: 0x6c23dc20, + 0xd59c: 0x6c0e6c20, 0xd59d: 0x6c0bcc20, + 0xd5a0: 0x6c11b620, 0xd5a2: 0x6c127620, + 0xd5a4: 0x6c23e420, 0xd5a5: 0x6c162020, 0xd5a6: 0x6c057e20, 0xd5a7: 0x6c23e620, + 0xd5a9: 0x6c23e220, 0xd5aa: 0x6c120c20, 0xd5ab: 0x6c23e820, + 0xd5ad: 0x6c23ea20, + 0xd5b0: 0x6c007620, 0xd5b3: 0x6c0af420, + 0xd5b4: 0x6c23f420, 0xd5b6: 0x6c23ee20, 0xd5b7: 0x6c10c220, + 0xd5b8: 0x6c23ec20, + 0xd5bf: 0x6c03b820, + // Block 0x357, offset 0xd5c0 + 0xd5c2: 0x6c23fa20, + 0xd5c6: 0x6c23f020, 0xd5c7: 0x6c23f220, + 0xd5c9: 0x6c23f820, 0xd5ca: 0x6c23f620, 0xd5cb: 0x6c126620, + 0xd5ce: 0x6c0cc020, 0xd5cf: 0x6c0cbe20, + 0xd5d1: 0x6c03ea20, + 0xd5d4: 0x6c23fc20, + 0xd5da: 0x6c23fe20, + 0xd5dd: 0x6c240020, + 0xd5e3: 0x6c240420, + 0xd5e5: 0x6c240220, + 0xd5eb: 0x6c012820, + 0xd5f1: 0x6c241420, 0xd5f2: 0x6c123020, 0xd5f3: 0x6c240820, + 0xd5f5: 0x6c240c20, + 0xd5f8: 0x6c241020, 0xd5f9: 0x6c0b4020, + 0xd5fc: 0x6c241220, 0xd5fd: 0x6c240e20, 0xd5fe: 0x6c091020, + // Block 0x358, offset 0xd600 + 0xd602: 0x6c240620, 0xd603: 0x6c240a20, + 0xd605: 0x6c12a020, 0xd607: 0x6c0a9a20, + 0xd60a: 0x6c241820, + 0xd60d: 0x6c241620, + 0xd612: 0x6c241a20, + 0xd614: 0x6c08dc20, 0xd615: 0x6c077620, + 0xd618: 0x6c101a20, 0xd619: 0x6c241c20, 0xd61b: 0x6c0f0620, + 0xd61e: 0x6c242020, + 0xd622: 0x6c160a20, 0xd623: 0x6c241e20, + 0xd629: 0x6c0d0e20, + 0xd630: 0x6c242a20, 0xd632: 0x6c242e20, 0xd633: 0x6c243020, + 0xd634: 0x6c0e5c20, + 0xd63a: 0x6c242c20, + 0xd63c: 0x6c242620, 0xd63e: 0x6c242220, 0xd63f: 0x6c242420, + // Block 0x359, offset 0xd640 + 0xd641: 0x6c242820, + 0xd649: 0x6c243620, 0xd64b: 0x6c243220, + 0xd64d: 0x6c243420, + 0xd65f: 0x6c243820, + 0xd660: 0x6c243c20, 0xd661: 0x6c243e20, 0xd662: 0x6c244020, + 0xd664: 0x6c244220, 0xd667: 0x6c243a20, + 0xd670: 0x6c244620, + 0xd674: 0x6c244420, + 0xd67b: 0x6c244820, + // Block 0x35a, offset 0xd680 + 0xd682: 0x6c165220, + 0xd686: 0x6c244e20, 0xd687: 0x6c244a20, + 0xd688: 0x6c244c20, + 0xd68c: 0x6c037420, + 0xd692: 0x6c154c20, + 0xd696: 0x6c136c20, + 0xd698: 0x6c245220, + 0xd69c: 0x6c245020, + 0xd6a1: 0x6c245420, 0xd6a2: 0x6c245620, + 0xd6a7: 0x6c245e20, + 0xd6a8: 0x6c245820, 0xd6a9: 0x6c245a20, 0xd6aa: 0x6c245c20, + 0xd6ac: 0x6c246020, + 0xd6b0: 0x6c246220, 0xd6b2: 0x6c246420, + 0xd6b6: 0x6c246620, + 0xd6b8: 0x6c246820, 0xd6ba: 0x6c11be20, 0xd6bb: 0x6c0fcc20, + 0xd6bc: 0x6c246a20, 0xd6bd: 0x6c118820, 0xd6be: 0x6c128420, + // Block 0x35b, offset 0xd6c0 + 0xd6c0: 0x6c246c20, 0xd6c3: 0x6c246e20, + 0xd6c4: 0x6c0f8020, 0xd6c6: 0x6c024220, 0xd6c7: 0x6c06e420, + 0xd6c8: 0x6c247020, 0xd6cb: 0x6c247220, + 0xd6ce: 0x6c247420, + 0xd6d0: 0x6c082620, 0xd6d3: 0x6c247820, + 0xd6d6: 0x6c247620, + 0xd6d9: 0x6c247a20, 0xd6da: 0x6c247c20, + 0xd6ee: 0x6c123220, + 0xd6f0: 0x6c247e20, + 0xd6f4: 0x6c248020, 0xd6f7: 0x6c317020, + 0xd6f8: 0x6c248220, 0xd6f9: 0x6c248420, 0xd6fa: 0x6c248620, + 0xd6ff: 0x6c083020, + // Block 0x35c, offset 0xd700 + 0xd702: 0x6c248820, 0xd703: 0x6c115020, + 0xd706: 0x6c145220, + 0xd708: 0x6c011820, 0xd70a: 0x6c012a20, + 0xd70d: 0x6c248a20, + 0xd712: 0x6c248e20, + 0xd716: 0x6c248c20, 0xd717: 0x6c100c20, + 0xd71b: 0x6c0bf220, + 0xd71c: 0x6c20e820, 0xd71e: 0x6c249020, 0xd71f: 0x6c14d220, + 0xd721: 0x6c249220, 0xd723: 0x6c033c20, + 0xd724: 0x6c120e20, 0xd725: 0x6c249420, 0xd727: 0x6c249620, + 0xd72a: 0x6c249820, + 0xd72e: 0x6c150820, + 0xd732: 0x6c14fa20, + 0xd734: 0x6c0eec20, + 0xd738: 0x6c0d1020, 0xd73b: 0x6c249c20, + 0xd73e: 0x6c0a1020, + // Block 0x35d, offset 0xd740 + 0xd741: 0x6c0a9c20, + 0xd744: 0x6c24a220, 0xd747: 0x6c24a020, + 0xd748: 0x6c249e20, 0xd749: 0x6c125a20, 0xd74b: 0x6c033e20, + 0xd74c: 0x6c05f220, + 0xd75b: 0x6c24ae20, + 0xd75e: 0x6c24a820, 0xd75f: 0x6c0b4220, + 0xd760: 0x6c14b420, + 0xd764: 0x6c24a620, 0xd765: 0x6c24aa20, 0xd766: 0x6c24ac20, + 0xd769: 0x6c24a420, + 0xd777: 0x6c24b020, + 0xd778: 0x6c24b220, 0xd77a: 0x6c0ece20, + 0xd77c: 0x6c037620, + // Block 0x35e, offset 0xd780 + 0xd780: 0x6c0e7e20, + 0xd787: 0x6c24b420, + 0xd79a: 0x6c24b620, 0xd79b: 0x6c24bc20, + 0xd7a1: 0x6c0b9220, 0xd7a3: 0x6c107020, + 0xd7a5: 0x6c24be20, 0xd7a6: 0x6c143a20, + 0xd7a8: 0x6c24b820, 0xd7ab: 0x6c24ba20, + 0xd7b9: 0x6c24c420, + 0xd7be: 0x6c24c220, 0xd7bf: 0x6c24c020, + // Block 0x35f, offset 0xd7c0 + 0xd7cb: 0x6c24c820, + 0xd7ce: 0x6c24c620, + 0xd7d1: 0x6c24ca20, + 0xd7de: 0x6c24ce20, + 0xd7e0: 0x6c24cc20, + 0xd7e5: 0x6c137220, + 0xd7ec: 0x6c09f820, 0xd7ed: 0x6c165420, + 0xd7f0: 0x6c24d020, 0xd7f3: 0x6c105620, + 0xd7f6: 0x6c24d220, + 0xd7f9: 0x6c24d420, 0xd7fb: 0x6c24dc20, + 0xd7fc: 0x6c24d820, 0xd7fd: 0x6c24da20, 0xd7ff: 0x6c24d620, + // Block 0x360, offset 0xd800 + 0xd807: 0x6c24de20, + 0xd80d: 0x6c24e020, + 0xd817: 0x6c24e220, + 0xd81a: 0x6c24e420, 0xd81b: 0x6c14be20, + 0xd81c: 0x6c24e620, + 0xd822: 0x6c153020, 0xd823: 0x6c24e820, + 0xd825: 0x6c0e5020, 0xd827: 0x6c117820, + 0xd829: 0x6c04fe20, + 0xd82d: 0x6c0e2a20, 0xd82e: 0x6c24ea20, 0xd82f: 0x6c049c20, + 0xd833: 0x6c0c2020, + 0xd83c: 0x6c24ec20, + // Block 0x361, offset 0xd840 + 0xd842: 0x6c079220, + 0xd84c: 0x6c24ee20, + 0xd852: 0x6c24f020, + 0xd854: 0x6c05ec20, 0xd855: 0x6c07c220, + 0xd860: 0x6c24f420, + 0xd865: 0x6c0fd820, 0xd866: 0x6c07c420, 0xd867: 0x6c040820, + 0xd872: 0x6c13dc20, + 0xd874: 0x6c113a20, + 0xd87a: 0x6c0fda20, + 0xd87f: 0x6c071420, + // Block 0x362, offset 0xd880 + 0xd885: 0x6c24f820, + 0xd89d: 0x6c0a9e20, + 0xd8ab: 0x6c162c20, + 0xd8ac: 0x6c06e620, 0xd8af: 0x6c05ee20, + 0xd8b2: 0x6c11a620, + 0xd8b4: 0x6c24fc20, + 0xd8bc: 0x6c250020, + // Block 0x363, offset 0xd8c0 + 0xd8c1: 0x6c067620, + 0xd8c6: 0x6c24fe20, 0xd8c7: 0x6c0f5c20, + 0xd8cc: 0x6c250420, 0xd8cd: 0x6c026220, 0xd8ce: 0x6c24fa20, + 0xd8d1: 0x6c123420, 0xd8d3: 0x6c00dc20, + 0xd8d5: 0x6c07f020, 0xd8d7: 0x6c172820, + 0xd8da: 0x6c250220, + 0xd8e3: 0x6c250620, + 0xd8e7: 0x6c136e20, + 0xd8e9: 0x6c0c3220, 0xd8ea: 0x6c250a20, + 0xd8ef: 0x6c250c20, + 0xd8f5: 0x6c250820, + 0xd8fa: 0x6c029020, + 0xd8fc: 0x6c251820, 0xd8fe: 0x6c251620, + // Block 0x364, offset 0xd900 + 0xd901: 0x6c08de20, + 0xd905: 0x6c251a20, 0xd906: 0x6c251020, + 0xd90a: 0x6c251c20, 0xd90b: 0x6c251220, + 0xd910: 0x6c121020, 0xd911: 0x6c250e20, + 0xd914: 0x6c251420, + 0xd91a: 0x6c252220, + 0xd927: 0x6c252020, + 0xd928: 0x6c145620, + 0xd92c: 0x6c251e20, 0xd92f: 0x6c009620, + 0xd934: 0x6c252620, + 0xd93d: 0x6c252420, + // Block 0x365, offset 0xd940 + 0xd941: 0x6c0aa020, + 0xd947: 0x6c252820, + 0xd94e: 0x6c0cc220, + 0xd951: 0x6c252c20, 0xd952: 0x6c252a20, + 0xd959: 0x6c252e20, + 0xd966: 0x6c24f220, + 0xd96a: 0x6c24f620, 0xd96b: 0x6c253220, + 0xd96c: 0x6c253020, + 0xd97a: 0x6c08e020, + 0xd97c: 0x6c169a20, 0xd97e: 0x6c093420, + // Block 0x366, offset 0xd980 + 0xd980: 0x6c253420, 0xd981: 0x6c055220, + 0xd987: 0x6c03ec20, + 0xd988: 0x6c03ba20, 0xd989: 0x6c089a20, + 0xd990: 0x6c157420, 0xd993: 0x6c254020, + 0xd995: 0x6c253e20, 0xd996: 0x6c0cc420, 0xd997: 0x6c253820, + 0xd99a: 0x6c253c20, + 0xd99d: 0x6c09e220, 0xd99e: 0x6c0b4420, 0xd99f: 0x6c253a20, + 0xd9a0: 0x6c253620, 0xd9a2: 0x6c10f820, + 0xd9a5: 0x6c0aa220, + 0xd9a8: 0x6c129420, + 0xd9ad: 0x6c07c620, + 0xd9b7: 0x6c101c20, + 0xd9ba: 0x6c254220, + 0xd9bf: 0x6c254420, + // Block 0x367, offset 0xd9c0 + 0xd9c0: 0x6c257020, 0xd9c1: 0x6c04d820, + 0xd9c4: 0x6c16fe20, 0xd9c5: 0x6c0ca620, + 0xd9ca: 0x6c254620, + 0xd9cd: 0x6c01dc20, 0xd9ce: 0x6c0f5e20, 0xd9cf: 0x6c131a20, + 0xd9dd: 0x6c254820, + 0xd9e6: 0x6c046020, 0xd9e7: 0x6c254a20, + 0xd9ea: 0x6c254e20, + 0xd9ee: 0x6c255020, + 0xd9f0: 0x6c10f620, 0xd9f3: 0x6c255220, + 0xd9f9: 0x6c255420, 0xd9fa: 0x6c255620, + 0xd9fd: 0x6c04da20, 0xd9fe: 0x6c01de20, 0xd9ff: 0x6c107220, + // Block 0x368, offset 0xda00 + 0xda00: 0x6c099c20, 0xda01: 0x6c089c20, + 0xda09: 0x6c255820, 0xda0b: 0x6c099e20, + 0xda11: 0x6c01cc20, 0xda12: 0x6c12a220, + 0xda15: 0x6c255a20, + 0xda18: 0x6c123620, + 0xda1f: 0x6c0cc620, + 0xda21: 0x6c256020, 0xda23: 0x6c256220, + 0xda24: 0x6c117620, 0xda26: 0x6c0b4620, 0xda27: 0x6c255c20, + 0xda29: 0x6c0e7620, + 0xda2c: 0x6c255e20, + 0xda30: 0x6c0aa420, + 0xda3b: 0x6c007820, + // Block 0x369, offset 0xda40 + 0xda40: 0x6c03be20, + 0xda48: 0x6c256420, 0xda4b: 0x6c0f6020, + 0xda4d: 0x6c256620, 0xda4e: 0x6c0c0e20, + 0xda54: 0x6c14aa20, 0xda57: 0x6c126220, + 0xda58: 0x6c256820, 0xda59: 0x6c256a20, 0xda5a: 0x6c0e5e20, + 0xda5c: 0x6c165620, 0xda5f: 0x6c256e20, + 0xda60: 0x6c256c20, + 0xda6e: 0x6c096e20, + 0xda71: 0x6c257220, 0xda72: 0x6c00a020, + 0xda77: 0x6c257820, + 0xda7b: 0x6c257420, + 0xda7c: 0x6c01e020, 0xda7d: 0x6c058020, 0xda7e: 0x6c257620, 0xda7f: 0x6c06e820, + // Block 0x36a, offset 0xda80 + 0xda80: 0x6c074020, 0xda82: 0x6c13a420, 0xda83: 0x6c257a20, + 0xda86: 0x6c143c20, + 0xda89: 0x6c257e20, + 0xda8d: 0x6c0c2220, 0xda8e: 0x6c011a20, 0xda8f: 0x6c01ac20, + 0xda90: 0x6c001820, + 0xda97: 0x6c257c20, + 0xdaa1: 0x6c258020, 0xdaa2: 0x6c258220, 0xdaa3: 0x6c0af620, + 0xdaa9: 0x6c258420, 0xdaab: 0x6c029220, + 0xdab0: 0x6c258820, + 0xdab4: 0x6c05b820, 0xdab6: 0x6c043820, + 0xdab9: 0x6c258a20, 0xdaba: 0x6c051220, + 0xdabd: 0x6c258c20, 0xdabf: 0x6c0c7820, + // Block 0x36b, offset 0xdac0 + 0xdac1: 0x6c108220, 0xdac3: 0x6c0c4020, + 0xdac4: 0x6c080220, + 0xdac8: 0x6c258e20, + 0xdad2: 0x6c0e7820, 0xdad3: 0x6c0d1220, + 0xdad5: 0x6c259220, 0xdad6: 0x6c259620, 0xdad7: 0x6c259020, + 0xdad8: 0x6c259420, + 0xdadf: 0x6c052820, + 0xdae9: 0x6c259820, 0xdaea: 0x6c053020, + 0xdaee: 0x6c043a20, 0xdaef: 0x6c15b020, + 0xdaf0: 0x6c259c20, + 0xdaf6: 0x6c259e20, + 0xdafa: 0x6c00d820, + 0xdaff: 0x6c25a420, + // Block 0x36c, offset 0xdb00 + 0xdb03: 0x6c02e020, + 0xdb04: 0x6c25a220, 0xdb05: 0x6c25a020, 0xdb07: 0x6c25a820, + 0xdb08: 0x6c259a20, 0xdb0a: 0x6c25aa20, 0xdb0b: 0x6c161a20, + 0xdb0d: 0x6c25ac20, 0xdb0f: 0x6c25ae20, + 0xdb12: 0x6c1ac220, 0xdb13: 0x6c25b220, + 0xdb15: 0x6c25b020, + 0xdb19: 0x6c25b420, 0xdb1a: 0x6c25b620, + 0xdb1c: 0x6c163220, 0xdb1d: 0x6c25b820, 0xdb1f: 0x6c2f4820, + 0xdb20: 0x6c0aa620, 0xdb21: 0x6c25ba20, 0xdb22: 0x6c25bc20, 0xdb23: 0x6c09fa20, + 0xdb25: 0x6c105820, 0xdb26: 0x6c25be20, + 0xdb2a: 0x6c0e0420, + 0xdb2d: 0x6c25c020, 0xdb2f: 0x6c0e2c20, + 0xdb30: 0x6c25c220, + 0xdb36: 0x6c047220, + 0xdb38: 0x6c182420, 0xdb39: 0x6c0e6e20, 0xdb3a: 0x6c08f620, + 0xdb3f: 0x6c034020, + // Block 0x36d, offset 0xdb40 + 0xdb42: 0x6c25c420, + 0xdb44: 0x6c25de20, 0xdb46: 0x6c25ca20, + 0xdb48: 0x6c043c20, 0xdb4a: 0x6c25c820, 0xdb4b: 0x6c25e220, + 0xdb4f: 0x6c25c620, + 0xdb51: 0x6c0aa820, + 0xdb58: 0x6c25ce20, 0xdb59: 0x6c25d020, 0xdb5b: 0x6c0f8220, + 0xdb5e: 0x6c25d220, + 0xdb60: 0x6c02b020, + 0xdb65: 0x6c0b7820, 0xdb66: 0x6c12e420, + 0xdb68: 0x6c25d620, + 0xdb6c: 0x6c0dc820, + 0xdb73: 0x6c25cc20, + 0xdb75: 0x6c25d420, 0xdb76: 0x6c25d820, + 0xdb79: 0x6c080e20, + // Block 0x36e, offset 0xdb80 + 0xdb85: 0x6c25e620, 0xdb86: 0x6c127820, + 0xdb88: 0x6c11ac20, 0xdb89: 0x6c101e20, 0xdb8b: 0x6c04dc20, + 0xdb8c: 0x6c25e420, 0xdb8d: 0x6c25e020, 0xdb8f: 0x6c11ca20, + 0xdb90: 0x6c25da20, 0xdb91: 0x6c0e7020, 0xdb92: 0x6c102220, + 0xdb94: 0x6c102020, 0xdb96: 0x6c080420, + 0xdb9d: 0x6c260a20, + 0xdba5: 0x6c25ea20, 0xdba7: 0x6c25ee20, + 0xdbac: 0x6c25f420, 0xdbae: 0x6c25f620, + 0xdbb0: 0x6c25f020, 0xdbb1: 0x6c25f220, + 0xdbb4: 0x6c25ec20, 0xdbb5: 0x6c25e820, + 0xdbba: 0x6c25dc20, + // Block 0x36f, offset 0xdbc0 + 0xdbc6: 0x6c137620, 0xdbc7: 0x6c01e220, + 0xdbcb: 0x6c260420, + 0xdbcd: 0x6c25fe20, 0xdbcf: 0x6c260820, + 0xdbd2: 0x6c260620, + 0xdbd4: 0x6c118a20, 0xdbd5: 0x6c149e20, 0xdbd7: 0x6c084a20, + 0xdbd8: 0x6c25fa20, 0xdbd9: 0x6c260c20, 0xdbda: 0x6c260220, + 0xdbdc: 0x6c260020, 0xdbdd: 0x6c25f820, 0xdbdf: 0x6c25fc20, + 0xdbe1: 0x6c034220, + 0xdbea: 0x6c0e2e20, + 0xdbed: 0x6c0c7a20, + 0xdbf1: 0x6c11a420, + 0xdbf4: 0x6c261620, + 0xdbf8: 0x6c11a820, + // Block 0x370, offset 0xdc00 + 0xdc00: 0x6c0c4220, 0xdc01: 0x6c261020, + 0xdc04: 0x6c11fe20, 0xdc06: 0x6c261820, 0xdc07: 0x6c137e20, + 0xdc09: 0x6c0e6a20, 0xdc0b: 0x6c260e20, + 0xdc0c: 0x6c261220, 0xdc0f: 0x6c261420, + 0xdc1d: 0x6c261a20, + 0xdc20: 0x6c091820, + 0xdc24: 0x6c107420, 0xdc25: 0x6c262420, 0xdc26: 0x6c262220, + 0xdc29: 0x6c261c20, + 0xdc2d: 0x6c16f020, + 0xdc33: 0x6c262e20, + 0xdc36: 0x6c263620, 0xdc37: 0x6c263020, + // Block 0x371, offset 0xdc40 + 0xdc40: 0x6c262820, + 0xdc47: 0x6c262a20, + 0xdc4d: 0x6c263420, + 0xdc51: 0x6c261e20, 0xdc52: 0x6c190c20, 0xdc53: 0x6c262c20, + 0xdc54: 0x6c262020, 0xdc57: 0x6c263220, + 0xdc5f: 0x6c263e20, + 0xdc61: 0x6c034420, 0xdc63: 0x6c263820, + 0xdc67: 0x6c263a20, + 0xdc6a: 0x6c263c20, 0xdc6b: 0x6c264220, + 0xdc77: 0x6c264020, + 0xdc78: 0x6c124c20, + 0xdc7d: 0x6c264420, 0xdc7e: 0x6c16c020, 0xdc7f: 0x6c13b220, + // Block 0x372, offset 0xdc80 + 0xdc80: 0x6c264e20, 0xdc83: 0x6c264820, + 0xdc8c: 0x6c264620, 0xdc8d: 0x6c0c2420, 0xdc8f: 0x6c264c20, + 0xdc90: 0x6c265020, + 0xdc94: 0x6c264a20, 0xdc96: 0x6c265820, + 0xdc98: 0x6c265220, + 0xdc9f: 0x6c265420, + 0xdca0: 0x6c262620, + 0xdca4: 0x6c265620, 0xdca5: 0x6c265a20, + 0xdcac: 0x6c265c20, + 0xdcb3: 0x6c136420, + 0xdcb5: 0x6c265e20, + 0xdcbe: 0x6c151420, + // Block 0x373, offset 0xdcc0 + 0xdcc1: 0x6c04c420, 0xdcc2: 0x6c053620, 0xdcc3: 0x6c266020, + 0xdcc9: 0x6c134020, 0xdccb: 0x6c0b9420, + 0xdccd: 0x6c14b020, + 0xdcd0: 0x6c266220, 0xdcd2: 0x6c162e20, + 0xdcd5: 0x6c118c20, 0xdcd7: 0x6c0cc820, + 0xdcd8: 0x6c110c20, 0xdcdb: 0x6c09e620, + 0xdcdf: 0x6c004020, + 0xdce1: 0x6c266c20, 0xdce2: 0x6c266820, + 0xdce4: 0x6c266420, 0xdce5: 0x6c02f220, 0xdce7: 0x6c0aaa20, + 0xdce8: 0x6c266e20, 0xdceb: 0x6c266a20, + 0xdced: 0x6c266620, 0xdcee: 0x6c267620, + 0xdcf1: 0x6c267420, 0xdcf2: 0x6c267220, 0xdcf3: 0x6c267020, + 0xdcf9: 0x6c267820, + 0xdcfd: 0x6c267a20, 0xdcfe: 0x6c0bf420, + // Block 0x374, offset 0xdd00 + 0xdd00: 0x6c267c20, 0xdd02: 0x6c268020, + 0xdd05: 0x6c267e20, + 0xdd0a: 0x6c064420, + 0xdd0e: 0x6c0cac20, + 0xdd12: 0x6c268420, + 0xdd16: 0x6c102420, + 0xdd18: 0x6c268220, + 0xdd1c: 0x6c268620, 0xdd1e: 0x6c134220, 0xdd1f: 0x6c0d1420, + 0xdd20: 0x6c06ea20, 0xdd22: 0x6c268820, + 0xdd27: 0x6c165820, + 0xdd2f: 0x6c268c20, + 0xdd32: 0x6c268e20, + 0xdd34: 0x6c269020, 0xdd36: 0x6c269220, + 0xdd38: 0x6c089e20, 0xdd3a: 0x6c269420, 0xdd3b: 0x6c058220, + 0xdd3e: 0x6c044020, + // Block 0x375, offset 0xdd40 + 0xdd40: 0x6c03c020, 0xdd42: 0x6c269820, + 0xdd44: 0x6c153620, 0xdd45: 0x6c06ec20, 0xdd46: 0x6c269620, + 0xdd4a: 0x6c269e20, 0xdd4b: 0x6c151c20, + 0xdd4d: 0x6c111c20, + 0xdd50: 0x6c128220, + 0xdd54: 0x6c0a1220, 0xdd55: 0x6c269c20, 0xdd57: 0x6c093620, + 0xdd58: 0x6c06ee20, 0xdd59: 0x6c08a020, 0xdd5a: 0x6c043e20, 0xdd5b: 0x6c134420, + 0xdd5c: 0x6c269a20, + 0xdd60: 0x6c0cca20, 0xdd61: 0x6c141820, 0xdd62: 0x6c080620, + 0xdd6b: 0x6c08a220, + 0xdd6c: 0x6c0f2a20, 0xdd6e: 0x6c26a420, 0xdd6f: 0x6c168620, + 0xdd70: 0x6c07ca20, 0xdd72: 0x6c26a620, 0xdd73: 0x6c0b4820, + 0xdd75: 0x6c26aa20, + 0xdd79: 0x6c0aac20, 0xdd7a: 0x6c077820, + 0xdd7f: 0x6c26a820, + // Block 0x376, offset 0xdd80 + 0xdd82: 0x6c09a020, 0xdd83: 0x6c061c20, + 0xdd84: 0x6c0ccc20, 0xdd85: 0x6c26a020, 0xdd86: 0x6c26ac20, + 0xdd8b: 0x6c26a220, + 0xdd8c: 0x6c058420, 0xdd8e: 0x6c26b220, 0xdd8f: 0x6c26ba20, + 0xdd90: 0x6c05ba20, + 0xdd96: 0x6c26b020, + 0xdd9b: 0x6c26c220, + 0xdd9e: 0x6c06f020, + 0xdda1: 0x6c15e620, 0xdda2: 0x6c003820, 0xdda3: 0x6c26bc20, + 0xdda6: 0x6c044220, + 0xdda8: 0x6c26b620, + 0xddae: 0x6c26b820, + 0xddb1: 0x6c102620, 0xddb2: 0x6c26b420, 0xddb3: 0x6c26ae20, + 0xddb5: 0x6c024420, 0xddb6: 0x6c0c4820, + 0xddb9: 0x6c05f020, + 0xddbd: 0x6c26c620, + // Block 0x377, offset 0xddc0 + 0xddc9: 0x6c26c020, + 0xddcf: 0x6c26c420, + 0xddd3: 0x6c26be20, + 0xddd9: 0x6c058620, 0xddda: 0x6c0d5e20, 0xdddb: 0x6c26c820, + 0xdddc: 0x6c0d1820, 0xdddf: 0x6c26e220, + 0xdde2: 0x6c26da20, 0xdde3: 0x6c26ce20, + 0xddeb: 0x6c26d620, + 0xddec: 0x6c098420, 0xdded: 0x6c007a20, 0xddee: 0x6c26cc20, 0xddef: 0x6c26dc20, + 0xddf0: 0x6c26e420, 0xddf1: 0x6c06f220, 0xddf2: 0x6c14fc20, + 0xddf4: 0x6c0f1c20, 0xddf5: 0x6c26d020, + 0xddf8: 0x6c26e020, 0xddfa: 0x6c26ca20, 0xddfb: 0x6c0e3020, + 0xddfd: 0x6c26d420, 0xddfe: 0x6c003a20, 0xddff: 0x6c14e420, + // Block 0x378, offset 0xde00 + 0xde07: 0x6c26d220, + 0xde0a: 0x6c04de20, 0xde0b: 0x6c123820, + 0xde0f: 0x6c0d1620, + 0xde11: 0x6c166820, 0xde12: 0x6c0a2a20, + 0xde15: 0x6c273220, + 0xde18: 0x6c26e620, 0xde1a: 0x6c0c7c20, + 0xde1c: 0x6c26de20, 0xde1d: 0x6c26e820, 0xde1e: 0x6c26ec20, + 0xde20: 0x6c0f6220, 0xde21: 0x6c26f220, + 0xde24: 0x6c26ea20, + 0xde28: 0x6c138020, 0xde29: 0x6c034620, + 0xde2c: 0x6c14e620, 0xde2f: 0x6c007c20, + 0xde32: 0x6c26f020, + 0xde34: 0x6c16c220, + 0xde3b: 0x6c26ee20, + // Block 0x379, offset 0xde40 + 0xde41: 0x6c015a20, + 0xde44: 0x6c10c020, 0xde45: 0x6c26f420, + 0xde49: 0x6c270220, 0xde4a: 0x6c26f620, 0xde4b: 0x6c270420, + 0xde52: 0x6c26fc20, + 0xde5b: 0x6c119a20, + 0xde5e: 0x6c092420, 0xde5f: 0x6c270020, + 0xde61: 0x6c26fa20, 0xde62: 0x6c270620, 0xde63: 0x6c26f820, + 0xde66: 0x6c09d420, + 0xde6b: 0x6c13de20, + 0xde6e: 0x6c09e420, + 0xde71: 0x6c26fe20, 0xde72: 0x6c271620, + 0xde75: 0x6c270e20, 0xde77: 0x6c271420, + 0xde79: 0x6c271020, 0xde7a: 0x6c271820, 0xde7b: 0x6c270c20, + 0xde7d: 0x6c26d820, 0xde7e: 0x6c0c2620, + // Block 0x37a, offset 0xde80 + 0xde81: 0x6c11f620, 0xde83: 0x6c271220, + 0xde86: 0x6c270820, + 0xde8a: 0x6c0c7e20, 0xde8b: 0x6c058820, + 0xde8d: 0x6c09a220, + 0xde94: 0x6c0b0e20, 0xde95: 0x6c0ca820, 0xde96: 0x6c271e20, + 0xde99: 0x6c272220, 0xde9a: 0x6c272420, + 0xde9d: 0x6c271c20, 0xde9e: 0x6c272020, + 0xdea6: 0x6c270a20, 0xdea7: 0x6c271a20, + 0xdea9: 0x6c272a20, 0xdeaa: 0x6c272820, + 0xdead: 0x6c148820, + 0xdeb0: 0x6c053a20, + 0xdeb9: 0x6c272620, 0xdebb: 0x6c272e20, + 0xdebc: 0x6c272c20, 0xdebd: 0x6c273420, 0xdebf: 0x6c273820, + // Block 0x37b, offset 0xdec0 + 0xdec2: 0x6c084c20, 0xdec3: 0x6c273020, + 0xdec8: 0x6c273a20, 0xdec9: 0x6c273c20, + 0xdecc: 0x6c273e20, 0xdece: 0x6c274a20, 0xdecf: 0x6c0fa220, + 0xded0: 0x6c274220, 0xded2: 0x6c274020, 0xded3: 0x6c274420, + 0xded4: 0x6c274620, 0xded6: 0x6c274820, + 0xdedb: 0x6c274c20, + 0xdedc: 0x6c274e20, + // Block 0x37c, offset 0xdf00 + 0xdf36: 0x6c034820, + 0xdf38: 0x6c275020, 0xdf3a: 0x6c275220, + // Block 0x37d, offset 0xdf40 + 0xdf45: 0x6c275420, + 0xdf4c: 0x6c275620, 0xdf4d: 0x6c275820, 0xdf4e: 0x6c275a20, + 0xdf50: 0x6c275c20, 0xdf51: 0x6c275e20, + 0xdf54: 0x6c276220, 0xdf55: 0x6c276020, + 0xdf58: 0x6c276420, + 0xdf5f: 0x6c276620, + 0xdf60: 0x6c276820, + 0xdf67: 0x6c276e20, + 0xdf68: 0x6c276a20, 0xdf69: 0x6c276c20, 0xdf6a: 0x6c07da20, 0xdf6b: 0x6c058a20, + 0xdf6e: 0x6c0e6020, + 0xdf70: 0x6c11c620, 0xdf72: 0x6c0a2c20, + 0xdf75: 0x6c113e20, 0xdf77: 0x6c123a20, + 0xdf78: 0x6c277020, 0xdf79: 0x6c1da420, + // Block 0x37e, offset 0xdf80 + 0xdf82: 0x6c277220, 0xdf83: 0x6c277620, + 0xdf85: 0x6c15d620, 0xdf86: 0x6c277420, 0xdf87: 0x6c277a20, + 0xdf88: 0x6c277820, 0xdf8a: 0x6c15b220, + 0xdf8c: 0x6c277c20, 0xdf8e: 0x6c125c20, + 0xdf94: 0x6c277e20, + 0xdf9a: 0x6c278420, + 0xdf9d: 0x6c278220, 0xdf9e: 0x6c278020, + 0xdfa3: 0x6c278620, + 0xdfa4: 0x6c054820, + 0xdfa8: 0x6c0c8020, 0xdfa9: 0x6c03ee20, + 0xdfae: 0x6c278e20, 0xdfaf: 0x6c278820, + 0xdfb2: 0x6c278a20, + 0xdfb6: 0x6c279020, + 0xdfb8: 0x6c279220, 0xdfb9: 0x6c278c20, + 0xdfbd: 0x6c00ce20, + // Block 0x37f, offset 0xdfc0 + 0xdfc1: 0x6c018620, + 0xdfc5: 0x6c279620, 0xdfc6: 0x6c279820, + 0xdfca: 0x6c279a20, + 0xdfcc: 0x6c15d020, + 0xdfd2: 0x6c09a420, + 0xdfd4: 0x6c279e20, 0xdfd5: 0x6c279c20, + 0xdfe0: 0x6c0b9620, 0xdfe1: 0x6c27a020, + 0xdfe6: 0x6c27a220, + 0xdfe9: 0x6c27a420, 0xdfeb: 0x6c037a20, + 0xdff0: 0x6c034a20, 0xdff3: 0x6c27a620, + 0xdff9: 0x6c27a820, 0xdffb: 0x6c144e20, + 0xdffc: 0x6c15d220, + // Block 0x380, offset 0xe000 + 0xe000: 0x6c15b420, 0xe001: 0x6c16f220, 0xe003: 0x6c06f620, + 0xe004: 0x6c27ae20, 0xe005: 0x6c093820, 0xe006: 0x6c27ac20, + 0xe00b: 0x6c27b020, + 0xe00c: 0x6c08e220, + 0xe010: 0x6c0d9a20, 0xe012: 0x6c27b220, + 0xe015: 0x6c06f420, 0xe017: 0x6c14fe20, + 0xe018: 0x6c27b420, 0xe019: 0x6c27b620, + 0xe01c: 0x6c27b820, + 0xe021: 0x6c27ba20, + 0xe028: 0x6c27bc20, + 0xe033: 0x6c08e420, + 0xe036: 0x6c152a20, + 0xe03b: 0x6c27c020, + 0xe03d: 0x6c0e3220, 0xe03f: 0x6c27be20, + // Block 0x381, offset 0xe040 + 0xe046: 0x6c27c420, + 0xe04a: 0x6c27c220, + 0xe052: 0x6c27c620, + 0xe056: 0x6c0bf620, + 0xe058: 0x6c27c820, 0xe05a: 0x6c27ca20, + 0xe05e: 0x6c134a20, 0xe05f: 0x6c27cc20, + 0xe061: 0x6c0d1a20, 0xe062: 0x6c27ce20, + 0xe068: 0x6c27d020, + 0xe06f: 0x6c16c420, + 0xe070: 0x6c27d620, 0xe072: 0x6c27d420, 0xe073: 0x6c27d220, + 0xe074: 0x6c0ed020, 0xe076: 0x6c27d820, 0xe077: 0x6c0b1020, + 0xe079: 0x6c27da20, + 0xe07d: 0x6c27dc20, 0xe07e: 0x6c16f420, 0xe07f: 0x6c27de20, + // Block 0x382, offset 0xe080 + 0xe084: 0x6c27e020, 0xe085: 0x6c27e420, 0xe086: 0x6c27e220, 0xe087: 0x6c11aa20, + 0xe089: 0x6c10da20, 0xe08b: 0x6c170020, + 0xe08c: 0x6c11b220, + 0xe093: 0x6c27e820, + 0xe096: 0x6c0aae20, + 0xe098: 0x6c127020, 0xe09a: 0x6c27ea20, 0xe09b: 0x6c27e620, + 0xe09d: 0x6c034c20, + 0xe0a1: 0x6c064820, 0xe0a2: 0x6c08a420, + 0xe0a5: 0x6c123c20, + 0xe0a9: 0x6c05f420, 0xe0aa: 0x6c141a20, + 0xe0ac: 0x6c27f020, 0xe0ad: 0x6c27ec20, 0xe0af: 0x6c06f820, + 0xe0b1: 0x6c06fa20, 0xe0b2: 0x6c009220, + 0xe0b4: 0x6c07e820, + 0xe0ba: 0x6c115620, + // Block 0x383, offset 0xe0c0 + 0xe0c3: 0x6c007e20, + 0xe0c4: 0x6c27fa20, 0xe0c6: 0x6c0e3420, + 0xe0cc: 0x6c115420, 0xe0ce: 0x6c0dae20, + 0xe0d6: 0x6c27fe20, + 0xe0d9: 0x6c27f620, 0xe0da: 0x6c27fc20, 0xe0db: 0x6c27f220, + 0xe0dd: 0x6c27f820, 0xe0de: 0x6c13e020, + 0xe0e1: 0x6c064a20, + 0xe0e4: 0x6c00ba20, 0xe0e5: 0x6c27f420, + 0xe0ef: 0x6c280220, + 0xe0f1: 0x6c280420, + 0xe0f4: 0x6c105a20, + 0xe0f8: 0x6c049e20, + 0xe0fc: 0x6c281a20, 0xe0fd: 0x6c111e20, + // Block 0x384, offset 0xe100 + 0xe102: 0x6c08a620, + 0xe105: 0x6c04a020, 0xe106: 0x6c0c1020, 0xe107: 0x6c171020, + 0xe108: 0x6c14ac20, 0xe109: 0x6c280020, 0xe10a: 0x6c0c2820, + 0xe11a: 0x6c041220, 0xe11b: 0x6c280620, + 0xe123: 0x6c280a20, + 0xe129: 0x6c280820, + 0xe12f: 0x6c280c20, + 0xe131: 0x6c0e0020, 0xe133: 0x6c112020, + 0xe139: 0x6c0ed220, + 0xe13e: 0x6c281420, + // Block 0x385, offset 0xe140 + 0xe146: 0x6c281220, + 0xe14b: 0x6c280e20, + 0xe14e: 0x6c0b6e20, + 0xe150: 0x6c12e620, 0xe151: 0x6c281820, 0xe153: 0x6c281620, + 0xe154: 0x6c06fc20, 0xe155: 0x6c172a20, + 0xe15f: 0x6c283820, + 0xe165: 0x6c282020, 0xe166: 0x6c282220, + 0xe16b: 0x6c097020, + 0xe16e: 0x6c281e20, + 0xe170: 0x6c074c20, 0xe171: 0x6c281c20, + 0xe174: 0x6c282420, + 0xe178: 0x6c0ed420, 0xe179: 0x6c131c20, 0xe17a: 0x6c0c8220, + 0xe17f: 0x6c0db020, + // Block 0x386, offset 0xe180 + 0xe180: 0x6c282c20, 0xe182: 0x6c282e20, 0xe183: 0x6c282620, + 0xe188: 0x6c282820, 0xe18a: 0x6c282a20, + 0xe18f: 0x6c06fe20, + 0xe193: 0x6c283a20, + 0xe195: 0x6c283220, + 0xe19a: 0x6c12e820, + 0xe19c: 0x6c146c20, 0xe19d: 0x6c126c20, + 0xe1a0: 0x6c283020, 0xe1a3: 0x6c283620, + 0xe1a4: 0x6c283420, + 0xe1a8: 0x6c141c20, 0xe1a9: 0x6c283c20, + 0xe1b0: 0x6c283e20, 0xe1b3: 0x6c0caa20, + 0xe1b5: 0x6c284020, + 0xe1b8: 0x6c284420, 0xe1ba: 0x6c284c20, + 0xe1bd: 0x6c284620, 0xe1be: 0x6c284220, 0xe1bf: 0x6c112220, + // Block 0x387, offset 0xe1c0 + 0xe1c0: 0x6c284820, 0xe1c2: 0x6c284a20, + 0xe1c6: 0x6c019c20, + 0xe1c8: 0x6c285820, 0xe1c9: 0x6c284e20, + 0xe1cd: 0x6c285020, + 0xe1d1: 0x6c285220, 0xe1d3: 0x6c0d3a20, + 0xe1d8: 0x6c285620, 0xe1d9: 0x6c285420, 0xe1da: 0x6c285a20, + 0xe1df: 0x6c285c20, + 0xe1e0: 0x6c285e20, 0xe1e3: 0x6c0b4a20, + 0xe1e5: 0x6c020a20, 0xe1e7: 0x6c286020, + 0xe1e8: 0x6c167620, 0xe1ea: 0x6c08e620, + 0xe1ed: 0x6c09a620, + 0xe1f3: 0x6c08a820, + 0xe1f4: 0x6c0e6220, + 0xe1fa: 0x6c286220, 0xe1fb: 0x6c286420, + 0xe1fc: 0x6c00de20, 0xe1fe: 0x6c286620, + // Block 0x388, offset 0xe200 + 0xe201: 0x6c286820, 0xe202: 0x6c286a20, + 0xe205: 0x6c286c20, 0xe207: 0x6c286e20, + 0xe208: 0x6c04a220, 0xe209: 0x6c1e9620, 0xe20a: 0x6c287020, + 0xe20c: 0x6c0c4a20, 0xe20d: 0x6c287220, 0xe20e: 0x6c092620, + 0xe210: 0x6c287420, 0xe212: 0x6c174a20, + 0xe216: 0x6c287620, 0xe217: 0x6c139420, + 0xe218: 0x6c036820, 0xe21b: 0x6c0c8420, + 0xe21c: 0x6c09fc20, 0xe21e: 0x6c12fe20, 0xe21f: 0x6c09a820, + 0xe229: 0x6c287820, 0xe22a: 0x6c070020, 0xe22b: 0x6c287a20, + 0xe22c: 0x6c11f820, 0xe22e: 0x6c289620, + 0xe233: 0x6c287e20, + 0xe235: 0x6c0d8a20, 0xe236: 0x6c118e20, 0xe237: 0x6c061e20, + 0xe238: 0x6c287c20, 0xe239: 0x6c0c8620, + // Block 0x389, offset 0xe240 + 0xe240: 0x6c288020, + 0xe247: 0x6c0f6420, + 0xe258: 0x6c288420, 0xe259: 0x6c288220, 0xe25a: 0x6c288820, + 0xe25d: 0x6c288620, 0xe25f: 0x6c288a20, + 0xe262: 0x6c288e20, + 0xe264: 0x6c288c20, 0xe266: 0x6c034e20, + 0xe268: 0x6c289020, 0xe26a: 0x6c289220, 0xe26b: 0x6c289420, + 0xe26e: 0x6c077a20, 0xe26f: 0x6c165a20, + 0xe271: 0x6c289820, 0xe272: 0x6c0b1220, + 0xe276: 0x6c015c20, 0xe277: 0x6c289a20, + 0xe278: 0x6c289c20, + 0xe27e: 0x6c289e20, + // Block 0x38a, offset 0xe280 + 0xe28b: 0x6c00a420, + 0xe28d: 0x6c28a020, + 0xe292: 0x6c28a220, + 0xe299: 0x6c12ea20, + 0xe29d: 0x6c091e20, 0xe29f: 0x6c28a620, + 0xe2a5: 0x6c024620, 0xe2a6: 0x6c002420, + 0xe2ab: 0x6c28a420, + 0xe2ac: 0x6c28aa20, 0xe2ad: 0x6c114020, 0xe2af: 0x6c0b4c20, + 0xe2b1: 0x6c01e420, 0xe2b3: 0x6c13e220, + 0xe2b8: 0x6c059e20, 0xe2b9: 0x6c04e020, 0xe2bb: 0x6c28a820, + 0xe2bd: 0x6c020c20, + // Block 0x38b, offset 0xe2c0 + 0xe2c5: 0x6c02f620, + 0xe2d1: 0x6c015e20, 0xe2d2: 0x6c28b220, 0xe2d3: 0x6c169c20, + 0xe2d4: 0x6c0db220, 0xe2d7: 0x6c12a420, + 0xe2d9: 0x6c28ca20, 0xe2db: 0x6c01e620, + 0xe2dc: 0x6c28c620, 0xe2de: 0x6c28c220, 0xe2df: 0x6c28b020, + 0xe2e1: 0x6c28ac20, 0xe2e3: 0x6c28ae20, + 0xe2e5: 0x6c095620, 0xe2e6: 0x6c050020, 0xe2e7: 0x6c0ea220, + 0xe2eb: 0x6c108a20, + 0xe2f1: 0x6c011e20, 0xe2f3: 0x6c28b620, + 0xe2f4: 0x6c28b420, + 0xe2f9: 0x6c28c020, 0xe2fa: 0x6c28b820, 0xe2fb: 0x6c28be20, + // Block 0x38c, offset 0xe300 + 0xe302: 0x6c14f020, 0xe303: 0x6c28bc20, + 0xe304: 0x6c01e820, 0xe305: 0x6c02ee20, 0xe306: 0x6c28c420, + 0xe309: 0x6c28c820, + 0xe30e: 0x6c058c20, + 0xe316: 0x6c28d020, 0xe317: 0x6c28e220, + 0xe318: 0x6c28e420, + 0xe31c: 0x6c001620, + 0xe323: 0x6c28f220, + 0xe328: 0x6c00a220, 0xe32b: 0x6c28e020, + 0xe32f: 0x6c28de20, + 0xe331: 0x6c28d420, 0xe332: 0x6c28d220, + 0xe334: 0x6c28ce20, 0xe335: 0x6c28cc20, 0xe336: 0x6c0e7a20, + 0xe338: 0x6c0dee20, 0xe339: 0x6c28d820, + // Block 0x38d, offset 0xe340 + 0xe340: 0x6c28d620, + 0xe345: 0x6c28dc20, + 0xe349: 0x6c0d1c20, 0xe34a: 0x6c058e20, + 0xe34f: 0x6c00fe20, + 0xe350: 0x6c28da20, 0xe352: 0x6c070220, + 0xe358: 0x6c0d1e20, + 0xe373: 0x6c28fe20, + 0xe375: 0x6c290020, 0xe377: 0x6c01ea20, + 0xe37b: 0x6c019420, + 0xe37c: 0x6c28fa20, + // Block 0x38e, offset 0xe380 + 0xe385: 0x6c28e620, 0xe387: 0x6c28f620, + 0xe389: 0x6c290420, 0xe38a: 0x6c28f820, + 0xe38e: 0x6c28f420, + 0xe393: 0x6c28ba20, + 0xe396: 0x6c28f020, + 0xe39a: 0x6c28e820, + 0xe39e: 0x6c035020, 0xe39f: 0x6c28ec20, + 0xe3a0: 0x6c290220, 0xe3a2: 0x6c28ee20, + 0xe3a8: 0x6c290620, 0xe3aa: 0x6c28ea20, 0xe3ab: 0x6c119c20, + 0xe3b1: 0x6c15de20, + 0xe3b5: 0x6c28fc20, + 0xe3bd: 0x6c292820, + // Block 0x38f, offset 0xe3c0 + 0xe3c1: 0x6c291820, + 0xe3c5: 0x6c0bba20, + 0xe3ca: 0x6c03f820, + 0xe3cc: 0x6c04e220, 0xe3ce: 0x6c290e20, + 0xe3d3: 0x6c01ee20, + 0xe3d6: 0x6c0ab020, + 0xe3d8: 0x6c291420, + 0xe3dc: 0x6c07cc20, 0xe3df: 0x6c0fce20, + 0xe3e0: 0x6c291e20, + 0xe3e9: 0x6c13b420, 0xe3eb: 0x6c290c20, + 0xe3ef: 0x6c01ec20, + 0xe3f0: 0x6c064c20, 0xe3f1: 0x6c126e20, 0xe3f2: 0x6c292020, + 0xe3f4: 0x6c290820, 0xe3f7: 0x6c291a20, + 0xe3fb: 0x6c292e20, + 0xe3fd: 0x6c291020, + // Block 0x390, offset 0xe400 + 0xe403: 0x6c291220, + 0xe404: 0x6c105c20, 0xe407: 0x6c291c20, + 0xe40b: 0x6c291620, + 0xe40c: 0x6c13e420, 0xe40d: 0x6c292220, 0xe40e: 0x6c008020, + 0xe413: 0x6c290a20, + 0xe420: 0x6c292620, 0xe422: 0x6c292420, + 0xe429: 0x6c117a20, 0xe42a: 0x6c293220, + 0xe42c: 0x6c294820, + 0xe431: 0x6c02f020, + 0xe435: 0x6c294e20, + 0xe438: 0x6c292a20, + 0xe43c: 0x6c293420, 0xe43d: 0x6c15e820, + // Block 0x391, offset 0xe440 + 0xe446: 0x6c294620, + 0xe449: 0x6c15b620, + 0xe44e: 0x6c161c20, + 0xe457: 0x6c0ea420, + 0xe45b: 0x6c02ca20, + 0xe461: 0x6c130020, 0xe462: 0x6c295220, 0xe463: 0x6c102a20, + 0xe466: 0x6c002220, + 0xe469: 0x6c294420, 0xe46b: 0x6c293c20, + 0xe46c: 0x6c0d2020, 0xe46d: 0x6c293020, 0xe46e: 0x6c294020, 0xe46f: 0x6c294a20, + 0xe471: 0x6c10fc20, + 0xe475: 0x6c001420, 0xe477: 0x6c293a20, + 0xe479: 0x6c294c20, 0xe47a: 0x6c130c20, + // Block 0x392, offset 0xe480 + 0xe482: 0x6c294220, + 0xe484: 0x6c293820, + 0xe48b: 0x6c0ab220, + 0xe490: 0x6c09aa20, + 0xe494: 0x6c08e820, + 0xe499: 0x6c150020, + 0xe49c: 0x6c12aa20, 0xe49f: 0x6c295820, + 0xe4a1: 0x6c296a20, + 0xe4ad: 0x6c293e20, + 0xe4b2: 0x6c02e220, + 0xe4b8: 0x6c0af820, 0xe4b9: 0x6c295420, 0xe4bb: 0x6c295e20, + 0xe4bc: 0x6c0d2220, 0xe4bf: 0x6c295620, + // Block 0x393, offset 0xe4c0 + 0xe4c1: 0x6c296420, + 0xe4c4: 0x6c0e7220, 0xe4c6: 0x6c296620, + 0xe4c9: 0x6c15b820, 0xe4ca: 0x6c295020, 0xe4cb: 0x6c026420, + 0xe4cd: 0x6c295c20, + 0xe4d0: 0x6c296220, 0xe4d1: 0x6c14a820, + 0xe4d6: 0x6c296820, + 0xe4d9: 0x6c295a20, 0xe4da: 0x6c296020, + 0xe4ec: 0x6c13e620, 0xe4ee: 0x6c16c620, + 0xe4f4: 0x6c297020, + 0xe4fc: 0x6c297e20, 0xe4ff: 0x6c296e20, + // Block 0x394, offset 0xe500 + 0xe500: 0x6c091620, + 0xe506: 0x6c292c20, + 0xe511: 0x6c137420, 0xe513: 0x6c149420, + 0xe514: 0x6c297c20, 0xe515: 0x6c297a20, 0xe517: 0x6c297220, + 0xe518: 0x6c297420, 0xe51a: 0x6c00e820, + 0xe51f: 0x6c297820, + 0xe521: 0x6c296c20, + 0xe526: 0x6c0f1a20, + 0xe52c: 0x6c297620, 0xe52d: 0x6c00bc20, + 0xe535: 0x6c0d3c20, + 0xe53d: 0x6c135e20, + // Block 0x395, offset 0xe540 + 0xe540: 0x6c298020, 0xe541: 0x6c298820, 0xe543: 0x6c121220, + 0xe548: 0x6c298620, 0xe549: 0x6c0ab420, 0xe54a: 0x6c092220, 0xe54b: 0x6c298c20, + 0xe54e: 0x6c04a420, + 0xe555: 0x6c298e20, 0xe557: 0x6c130e20, + 0xe558: 0x6c298420, 0xe55a: 0x6c293620, + 0xe563: 0x6c298220, + 0xe568: 0x6c172220, 0xe569: 0x6c102c20, 0xe56a: 0x6c130220, + 0xe56d: 0x6c299c20, + 0xe577: 0x6c29a820, + 0xe57e: 0x6c29aa20, + // Block 0x396, offset 0xe580 + 0xe580: 0x6c299020, + 0xe584: 0x6c119020, 0xe587: 0x6c29a420, + 0xe588: 0x6c299420, 0xe58a: 0x6c299820, + 0xe590: 0x6c29ac20, 0xe591: 0x6c299620, + 0xe594: 0x6c299e20, 0xe597: 0x6c016020, + 0xe599: 0x6c10b220, 0xe59b: 0x6c29a020, + 0xe59c: 0x6c29a620, + 0xe5a4: 0x6c299220, 0xe5a6: 0x6c0c8820, + 0xe5a8: 0x6c299a20, 0xe5a9: 0x6c082220, 0xe5aa: 0x6c0b4e20, 0xe5ab: 0x6c054420, + 0xe5ac: 0x6c153820, 0xe5ae: 0x6c154220, 0xe5af: 0x6c0a3020, + 0xe5b9: 0x6c29b420, 0xe5ba: 0x6c29b020, + // Block 0x397, offset 0xe5c0 + 0xe5c1: 0x6c172020, + 0xe5c9: 0x6c29ae20, + 0xe5cd: 0x6c15f620, 0xe5cf: 0x6c29b220, + 0xe5d0: 0x6c29b620, + 0xe5d5: 0x6c29b820, + 0xe5dc: 0x6c29be20, 0xe5dd: 0x6c29ba20, + 0xe5e4: 0x6c102e20, 0xe5e5: 0x6c29bc20, + 0xe5e9: 0x6c11fa20, 0xe5ea: 0x6c29a220, + 0xe5f7: 0x6c0a3220, + 0xe5f9: 0x6c29c020, 0xe5fa: 0x6c29ca20, 0xe5fb: 0x6c0d2420, + 0xe5fe: 0x6c29c820, + // Block 0x398, offset 0xe600 + 0xe602: 0x6c298a20, + 0xe606: 0x6c29cc20, 0xe607: 0x6c0cce20, + 0xe60a: 0x6c29c220, 0xe60b: 0x6c29c620, + 0xe613: 0x6c29c420, + 0xe616: 0x6c20d820, 0xe617: 0x6c20ba20, + 0xe61a: 0x6c29d020, + 0xe622: 0x6c29ce20, + 0xe62d: 0x6c15f820, 0xe62f: 0x6c249a20, + 0xe630: 0x6c29d220, + 0xe63f: 0x6c29d420, + // Block 0x399, offset 0xe640 + 0xe64d: 0x6c29d620, 0xe64e: 0x6c064e20, + 0xe650: 0x6c041420, + 0xe654: 0x6c29da20, 0xe655: 0x6c186020, + 0xe65a: 0x6c045620, + 0xe65c: 0x6c163c20, 0xe65e: 0x6c050e20, 0xe65f: 0x6c29dc20, + 0xe667: 0x6c29de20, + 0xe66b: 0x6c0e9020, + 0xe671: 0x6c29e020, + 0xe679: 0x6c10dc20, 0xe67b: 0x6c003420, + // Block 0x39a, offset 0xe680 + 0xe68a: 0x6c01fe20, 0xe68b: 0x6c29ea20, + 0xe68c: 0x6c29ec20, + 0xe693: 0x6c29e220, + 0xe695: 0x6c084e20, + 0xe6a3: 0x6c29e420, + 0xe6a4: 0x6c112820, + 0xe6a9: 0x6c29e620, 0xe6aa: 0x6c29e820, 0xe6ab: 0x6c29fc20, + 0xe6af: 0x6c29f020, + 0xe6b0: 0x6c29f620, + 0xe6b6: 0x6c29ee20, + // Block 0x39b, offset 0xe6c0 + 0xe6c4: 0x6c29f220, 0xe6c6: 0x6c29f420, 0xe6c7: 0x6c094020, + 0xe6c9: 0x6c29f820, 0xe6cb: 0x6c0e3620, + 0xe6cd: 0x6c059020, 0xe6ce: 0x6c027820, + 0xe6d4: 0x6c29fe20, + 0xe6d9: 0x6c027220, 0xe6db: 0x6c2a0820, + 0xe6de: 0x6c2a0020, 0xe6df: 0x6c2a0620, + 0xe6e4: 0x6c11d420, + 0xe6e9: 0x6c2a0220, + 0xe6ec: 0x6c2a0420, 0xe6ed: 0x6c12ac20, 0xe6ee: 0x6c121420, 0xe6ef: 0x6c2a0a20, + 0xe6f8: 0x6c0df220, 0xe6f9: 0x6c2a1e20, 0xe6fb: 0x6c2a1620, + 0xe6fe: 0x6c020e20, + // Block 0x39c, offset 0xe700 + 0xe700: 0x6c2a1220, 0xe702: 0x6c13e820, 0xe703: 0x6c2a1420, + 0xe706: 0x6c2a0e20, + 0xe708: 0x6c2a1020, 0xe709: 0x6c2a1a20, 0xe70a: 0x6c2a2020, + 0xe70d: 0x6c2a1c20, + 0xe711: 0x6c2a1820, 0xe712: 0x6c2a0c20, + 0xe718: 0x6c0e6420, 0xe71a: 0x6c2a2e20, + 0xe71c: 0x6c14a420, + 0xe725: 0x6c2a2a20, + 0xe729: 0x6c2a2c20, + 0xe734: 0x6c2a2220, 0xe737: 0x6c2a2620, + 0xe73b: 0x6c2a2820, + 0xe73f: 0x6c2a2420, + // Block 0x39d, offset 0xe740 + 0xe749: 0x6c0c4c20, 0xe74b: 0x6c16f620, + 0xe74c: 0x6c2a3620, 0xe74e: 0x6c2a3820, + 0xe753: 0x6c2a4420, + 0xe755: 0x6c0b1820, 0xe757: 0x6c2a3c20, + 0xe759: 0x6c2a4220, + 0xe75f: 0x6c2a3220, + 0xe760: 0x6c2a3020, 0xe763: 0x6c2a4620, + 0xe766: 0x6c01f020, + 0xe768: 0x6c2a3e20, 0xe76a: 0x6c2a4820, + 0xe76e: 0x6c2a4020, + 0xe774: 0x6c2a3a20, 0xe776: 0x6c0ed620, + 0xe778: 0x6c2a3420, + 0xe77f: 0x6c117420, + // Block 0x39e, offset 0xe780 + 0xe782: 0x6c2a5020, + 0xe78d: 0x6c158220, + 0xe79f: 0x6c2a4e20, + 0xe7a2: 0x6c2a4c20, + 0xe7ab: 0x6c2a5e20, + 0xe7af: 0x6c2a5220, + 0xe7b3: 0x6c2a6220, + 0xe7ba: 0x6c15d820, 0xe7bb: 0x6c2a6820, + 0xe7bd: 0x6c2a5620, + // Block 0x39f, offset 0xe7c0 + 0xe7c0: 0x6c2a5820, + 0xe7c4: 0x6c2a6020, 0xe7c6: 0x6c2a6620, 0xe7c7: 0x6c2a6420, + 0xe7cb: 0x6c2a5420, + 0xe7d0: 0x6c2a5a20, 0xe7d2: 0x6c2a7c20, + 0xe7e0: 0x6c2a6e20, + 0xe7ef: 0x6c2a6a20, + 0xe7f2: 0x6c2a6c20, + 0xe7f6: 0x6c2a7620, 0xe7f7: 0x6c2a7820, + 0xe7f9: 0x6c024820, 0xe7fb: 0x6c03f020, + 0xe7fe: 0x6c2a7420, + // Block 0x3a0, offset 0xe800 + 0xe805: 0x6c2a4a20, + 0xe80d: 0x6c2a7220, 0xe80e: 0x6c2a7a20, 0xe80f: 0x6c2a7020, + 0xe811: 0x6c2a7e20, + 0xe815: 0x6c2a8220, 0xe816: 0x6c2a8020, + 0xe821: 0x6c2a8620, 0xe822: 0x6c2a8420, 0xe823: 0x6c29fa20, + 0xe827: 0x6c2a8e20, + 0xe831: 0x6c2a8820, + 0xe836: 0x6c2a8a20, + 0xe839: 0x6c2a8c20, 0xe83b: 0x6c2a9020, + // Block 0x3a1, offset 0xe840 + 0xe840: 0x6c05bc20, 0xe842: 0x6c2a9420, + 0xe844: 0x6c2a9220, 0xe846: 0x6c09ac20, + 0xe84c: 0x6c070420, 0xe84d: 0x6c218020, + 0xe852: 0x6c2a9620, 0xe853: 0x6c09ee20, + 0xe857: 0x6c026620, + 0xe859: 0x6c2a9820, 0xe85b: 0x6c012020, + 0xe85d: 0x6c0ab620, 0xe85e: 0x6c2a9a20, + 0xe861: 0x6c070620, 0xe862: 0x6c2a9c20, 0xe863: 0x6c008220, + 0xe868: 0x6c129620, 0xe86b: 0x6c2a9e20, + 0xe870: 0x6c0b9820, 0xe872: 0x6c2aac20, + 0xe875: 0x6c2aa620, 0xe877: 0x6c0e9220, + 0xe87d: 0x6c2aa820, 0xe87e: 0x6c2aa220, 0xe87f: 0x6c04e420, + // Block 0x3a2, offset 0xe880 + 0xe881: 0x6c2aa020, 0xe882: 0x6c2aae20, + 0xe888: 0x6c055020, 0xe88b: 0x6c0db420, + 0xe88d: 0x6c2aba20, + 0xe892: 0x6c2ab220, + 0xe896: 0x6c0d6220, 0xe897: 0x6c2ab020, + 0xe899: 0x6c2ab620, + 0xe89e: 0x6c2aa420, + 0xe8a2: 0x6c2ab820, + 0xe8a4: 0x6c2abc20, + 0xe8ab: 0x6c123e20, + 0xe8ae: 0x6c2ab420, + 0xe8b0: 0x6c2abe20, 0xe8b1: 0x6c2ac220, + 0xe8b4: 0x6c064620, 0xe8b5: 0x6c2aaa20, 0xe8b7: 0x6c004220, + 0xe8bf: 0x6c2ac020, + // Block 0x3a3, offset 0xe8c0 + 0xe8c1: 0x6c07ce20, 0xe8c2: 0x6c16b420, 0xe8c3: 0x6c2ac420, + 0xe8c4: 0x6c2ac620, 0xe8c5: 0x6c0d2620, + 0xe8cf: 0x6c160c20, + 0xe8d4: 0x6c2ac820, 0xe8d5: 0x6c157620, + 0xe8d8: 0x6c2aca20, 0xe8d9: 0x6c2acc20, + 0xe8dc: 0x6c13a020, 0xe8dd: 0x6c2ace20, 0xe8df: 0x6c079820, + 0xe8e1: 0x6c160e20, + 0xe8e8: 0x6c2ad820, + 0xe8f2: 0x6c2ada20, 0xe8f3: 0x6c0ab820, + 0xe8f4: 0x6c2ad620, + 0xe8f8: 0x6c15da20, 0xe8f9: 0x6c2ad020, + 0xe8fc: 0x6c2ad420, 0xe8fd: 0x6c0bfa20, 0xe8fe: 0x6c0bc020, + // Block 0x3a4, offset 0xe900 + 0xe902: 0x6c2ad220, + 0xe904: 0x6c2adc20, 0xe907: 0x6c131e20, + 0xe90a: 0x6c2ae020, + 0xe90c: 0x6c2ade20, + 0xe910: 0x6c02cc20, 0xe912: 0x6c13ea20, 0xe913: 0x6c2ae220, + 0xe91d: 0x6c2afa20, 0xe91e: 0x6c2ae620, + 0xe925: 0x6c2ae820, + 0xe92a: 0x6c2aea20, 0xe92b: 0x6c2aec20, + 0xe936: 0x6c2af420, + 0xe938: 0x6c2af620, 0xe93b: 0x6c2af220, + // Block 0x3a5, offset 0xe940 + 0xe941: 0x6c2aee20, 0xe943: 0x6c2ae420, + 0xe944: 0x6c2af020, + 0xe94c: 0x6c2af820, 0xe94d: 0x6c2ed820, + 0xe956: 0x6c018820, + 0xe95e: 0x6c2afe20, 0xe95f: 0x6c04e620, + 0xe960: 0x6c2afc20, + 0xe964: 0x6c2b0220, 0xe966: 0x6c2b0020, + 0xe96a: 0x6c2b0620, + 0xe96d: 0x6c2b0420, 0xe96f: 0x6c2b0820, + 0xe972: 0x6c09ae20, + 0xe974: 0x6c2b0a20, 0xe977: 0x6c2b0c20, + 0xe97e: 0x6c2b0e20, 0xe97f: 0x6c0bfc20, + // Block 0x3a6, offset 0xe980 + 0xe981: 0x6c15ba20, 0xe983: 0x6c2b1020, + 0xe986: 0x6c132020, 0xe987: 0x6c113020, + 0xe988: 0x6c2b1220, 0xe98a: 0x6c2b1420, 0xe98b: 0x6c05f620, + 0xe98f: 0x6c03c420, + 0xe993: 0x6c2b1620, + 0xe996: 0x6c08aa20, 0xe997: 0x6c112620, + 0xe998: 0x6c2b1820, 0xe99a: 0x6c029420, + 0xe9a1: 0x6c2b1a20, + 0xe9a6: 0x6c2b1e20, 0xe9a7: 0x6c15fa20, + 0xe9a9: 0x6c2b1c20, 0xe9aa: 0x6c0b5020, + 0xe9ac: 0x6c2b2020, 0xe9af: 0x6c2b2220, + 0xe9b2: 0x6c2b2420, 0xe9b3: 0x6c035220, + 0xe9ba: 0x6c2b2620, + 0xe9bd: 0x6c2b2820, 0xe9bf: 0x6c2b2a20, + // Block 0x3a7, offset 0xe9c0 + 0xe9c0: 0x6c2b2c20, + 0xe9d2: 0x6c029620, + 0xe9da: 0x6c2b2e20, + 0xe9dc: 0x6c2b3020, 0xe9dd: 0x6c2b3220, + 0xe9e3: 0x6c021c20, + 0xe9e6: 0x6c0b1420, 0xe9e7: 0x6c2b3420, + 0xe9f4: 0x6c2b3620, + 0xe9f8: 0x6c2b3820, + // Block 0x3a8, offset 0xea00 + 0xea00: 0x6c062020, 0xea02: 0x6c0f6620, 0xea03: 0x6c2b3a20, + 0xea08: 0x6c059220, 0xea0a: 0x6c0b7020, + 0xea0c: 0x6c2b4020, 0xea0e: 0x6c103020, + 0xea10: 0x6c2b3e20, 0xea13: 0x6c054620, + 0xea16: 0x6c2b3c20, 0xea17: 0x6c0de620, + 0xea18: 0x6c03c620, 0xea1b: 0x6c2b4220, + 0xea1d: 0x6c2b4420, 0xea1f: 0x6c0aba20, + 0xea23: 0x6c05be20, + 0xea25: 0x6c2b4620, + 0xea2a: 0x6c13ec20, + 0xea2d: 0x6c0c3e20, + 0xea31: 0x6c045820, 0xea33: 0x6c153a20, + 0xea34: 0x6c0cd020, 0xea36: 0x6c2b4820, + 0xea3a: 0x6c0b5220, 0xea3b: 0x6c0e9420, + 0xea3c: 0x6c0abc20, + // Block 0x3a9, offset 0xea40 + 0xea41: 0x6c2b4a20, + 0xea46: 0x6c2b5020, + 0xea48: 0x6c2b5220, + 0xea50: 0x6c079420, 0xea51: 0x6c0d7c20, 0xea52: 0x6c2b4e20, + 0xea54: 0x6c0abe20, 0xea55: 0x6c129820, + 0xea5b: 0x6c2b4c20, + 0xea5e: 0x6c08ac20, + 0xea60: 0x6c012220, 0xea62: 0x6c2b5a20, 0xea63: 0x6c059420, + 0xea66: 0x6c08b020, + 0xea69: 0x6c08ae20, 0xea6b: 0x6c171e20, + 0xea6c: 0x6c2b5820, 0xea6d: 0x6c2b5620, 0xea6e: 0x6c0c8a20, + 0xea70: 0x6c040620, 0xea71: 0x6c170a20, 0xea72: 0x6c026820, 0xea73: 0x6c0ac020, + 0xea7c: 0x6c2b5420, + // Block 0x3aa, offset 0xea80 + 0xea82: 0x6c2b5e20, + 0xea84: 0x6c2b6020, 0xea85: 0x6c2b5c20, 0xea87: 0x6c065020, + 0xea89: 0x6c158c20, + 0xea8c: 0x6c08b220, 0xea8d: 0x6c10f220, + 0xea91: 0x6c2b6620, 0xea93: 0x6c0c0020, + 0xea95: 0x6c0e3820, + 0xea98: 0x6c157820, 0xea9a: 0x6c2b6c20, + 0xea9e: 0x6c067820, + 0xeaa0: 0x6c0bfe20, 0xeaa1: 0x6c2b6420, 0xeaa3: 0x6c2b6e20, + 0xeaa4: 0x6c067a20, 0xeaa5: 0x6c2b6820, 0xeaa6: 0x6c2b6a20, + 0xeaa8: 0x6c2b6220, + 0xeaac: 0x6c0c4420, 0xeaad: 0x6c107a20, + 0xeab0: 0x6c0e1220, 0xeab2: 0x6c01f220, + 0xeab9: 0x6c124020, + 0xeabc: 0x6c03f220, 0xeabf: 0x6c0ed820, + // Block 0x3ab, offset 0xeac0 + 0xeac2: 0x6c2b7420, + 0xeac4: 0x6c2b7020, 0xeac7: 0x6c0e4c20, + 0xeacb: 0x6c0c0220, + 0xeacc: 0x6c035420, 0xeacd: 0x6c2b7220, 0xeacf: 0x6c0b7a20, + 0xead2: 0x6c165c20, + 0xead6: 0x6c170420, + 0xeada: 0x6c2b7620, 0xeadb: 0x6c2b8c20, + 0xeadc: 0x6c0eda20, 0xeade: 0x6c2b8a20, + 0xeae0: 0x6c2b8420, 0xeae1: 0x6c2b9420, 0xeae2: 0x6c2b8620, + 0xeae4: 0x6c2b7e20, 0xeae6: 0x6c0f6820, 0xeae7: 0x6c2b7c20, + 0xeaeb: 0x6c2b7820, + 0xeaed: 0x6c154e20, 0xeaee: 0x6c08b420, + 0xeaf1: 0x6c2b8020, 0xeaf3: 0x6c2b7a20, + 0xeaf7: 0x6c2b8820, + 0xeaf8: 0x6c0a3420, 0xeafa: 0x6c062220, + 0xeafe: 0x6c0dec20, + // Block 0x3ac, offset 0xeb00 + 0xeb00: 0x6c141e20, 0xeb01: 0x6c013020, 0xeb02: 0x6c008420, + 0xeb04: 0x6c103220, 0xeb07: 0x6c2b9020, + 0xeb0c: 0x6c2b8e20, 0xeb0e: 0x6c10b420, + 0xeb10: 0x6c2b9820, + 0xeb14: 0x6c2b8220, 0xeb16: 0x6c2b9620, 0xeb17: 0x6c2b9a20, + 0xeb19: 0x6c05f820, 0xeb1a: 0x6c2b9220, 0xeb1b: 0x6c070820, + 0xeb1d: 0x6c093a20, + 0xeb20: 0x6c2b9c20, 0xeb21: 0x6c15bc20, + 0xeb26: 0x6c2ba220, + 0xeb28: 0x6c2ba820, 0xeb2b: 0x6c2ba420, + 0xeb2c: 0x6c128620, + 0xeb33: 0x6c2b9e20, + 0xeb39: 0x6c04e820, + 0xeb3e: 0x6c2ba620, + // Block 0x3ad, offset 0xeb40 + 0xeb41: 0x6c2baa20, + 0xeb49: 0x6c2bb220, + 0xeb4c: 0x6c2bac20, 0xeb4e: 0x6c2bb020, 0xeb4f: 0x6c2bae20, + 0xeb56: 0x6c2bb420, + 0xeb58: 0x6c08f220, 0xeb5a: 0x6c2bb820, 0xeb5b: 0x6c2bb620, + 0xeb5c: 0x6c12ec20, 0xeb5f: 0x6c2bbc20, + 0xeb66: 0x6c059620, + 0xeb6b: 0x6c2bba20, + 0xeb6c: 0x6c2bbe20, 0xeb6f: 0x6c2bc020, + 0xeb70: 0x6c03f420, 0xeb71: 0x6c279420, 0xeb72: 0x6c0afa20, + 0xeb74: 0x6c2bc220, 0xeb77: 0x6c067c20, + 0xeb7d: 0x6c2bc420, + // Block 0x3ae, offset 0xeb80 + 0xeb80: 0x6c2bc620, 0xeb83: 0x6c085020, + 0xeb8a: 0x6c1ede20, + 0xeb8c: 0x6c2bc820, 0xeb8e: 0x6c2bca20, + 0xeb90: 0x6c09b020, 0xeb92: 0x6c2bcc20, 0xeb93: 0x6c2bce20, + 0xeb96: 0x6c2bd020, + 0xeb99: 0x6c2bd220, 0xeb9a: 0x6c2bd420, + // Block 0x3af, offset 0xebc0 + 0xebf7: 0x6c0e0a20, + 0xebfa: 0x6c2bd620, + 0xebff: 0x6c2bda20, + // Block 0x3b0, offset 0xec00 + 0xec01: 0x6c2bd820, + 0xec06: 0x6c103420, + 0xec08: 0x6c2bdc20, 0xec0a: 0x6c13ee20, + 0xec0c: 0x6c2bde20, 0xec0e: 0x6c2be020, + 0xec10: 0x6c2be220, + 0xec15: 0x6c2be420, + 0xec1a: 0x6c109c20, + 0xec21: 0x6c0ac220, 0xec22: 0x6c2be620, + 0xec2a: 0x6c073220, 0xec2b: 0x6c174620, + 0xec2c: 0x6c2be820, + 0xec38: 0x6c2bea20, 0xec39: 0x6c129a20, 0xec3a: 0x6c2bec20, + 0xec3c: 0x6c2bfc20, + // Block 0x3b1, offset 0xec40 + 0xec42: 0x6c2bee20, + 0xec45: 0x6c2bf220, + 0xec49: 0x6c2bf020, 0xec4a: 0x6c2bf420, + 0xec4c: 0x6c142020, 0xec4d: 0x6c2bf620, 0xec4e: 0x6c2bf820, + 0xec54: 0x6c2bfa20, + 0xec58: 0x6c2bfe20, + 0xec5d: 0x6c024e20, 0xec5e: 0x6c0f3e20, + 0xec60: 0x6c12ee20, 0xec61: 0x6c07dc20, 0xec62: 0x6c070a20, + 0xec67: 0x6c12ba20, + 0xec68: 0x6c01f620, 0xec69: 0x6c11fc20, 0xec6a: 0x6c2c0420, 0xec6b: 0x6c035620, + 0xec6c: 0x6c0c2a20, 0xec6d: 0x6c2c0220, 0xec6e: 0x6c2c0c20, 0xec6f: 0x6c0ea620, + 0xec70: 0x6c151620, 0xec72: 0x6c2c0820, 0xec73: 0x6c2c0a20, + 0xec74: 0x6c03c820, 0xec76: 0x6c2c0e20, 0xec77: 0x6c116a20, + 0xec78: 0x6c0db620, 0xec7b: 0x6c124220, + 0xec7c: 0x6c0fa620, 0xec7d: 0x6c2c0620, 0xec7f: 0x6c142220, + // Block 0x3b2, offset 0xec80 + 0xec80: 0x6c021020, 0xec81: 0x6c2c1220, 0xec82: 0x6c16d420, 0xec83: 0x6c0ef420, + 0xec84: 0x6c170e20, 0xec87: 0x6c08b620, + 0xec88: 0x6c2c1020, 0xec8a: 0x6c0d5a20, + 0xec8d: 0x6c2c3220, 0xec8e: 0x6c0c8c20, + 0xec91: 0x6c10d820, 0xec93: 0x6c12bc20, + 0xec9a: 0x6c2c1820, 0xec9b: 0x6c085220, + 0xec9c: 0x6c08b820, 0xec9e: 0x6c0ac420, + 0xeca0: 0x6c116e20, 0xeca2: 0x6c05fa20, 0xeca3: 0x6c2c1620, + 0xeca4: 0x6c2c1420, 0xeca6: 0x6c12f020, + 0xecaa: 0x6c091220, + 0xecad: 0x6c0fd020, + 0xecba: 0x6c2c1c20, 0xecbb: 0x6c2c1e20, + 0xecbc: 0x6c070c20, 0xecbd: 0x6c2c1a20, + // Block 0x3b3, offset 0xecc0 + 0xecc4: 0x6c2c2020, 0xecc5: 0x6c2c2220, 0xecc7: 0x6c2c2620, + 0xecc8: 0x6c0d3e20, 0xecca: 0x6c2c2420, 0xeccb: 0x6c037c20, + 0xeccd: 0x6c2c2a20, 0xeccf: 0x6c2c2820, + 0xecd0: 0x6c2c2c20, 0xecd3: 0x6c2c3020, + 0xecd4: 0x6c2c3420, 0xecd6: 0x6c2c3620, + // Block 0x3b4, offset 0xed00 + 0xed24: 0x6c0c2c20, 0xed26: 0x6c092e20, 0xed27: 0x6c2c3820, + 0xed2b: 0x6c029820, + 0xed2d: 0x6c2c3a20, + 0xed30: 0x6c0d2820, 0xed31: 0x6c2c3c20, 0xed33: 0x6c2c3e20, + 0xed34: 0x6c12f220, 0xed37: 0x6c03ca20, + // Block 0x3b5, offset 0xed40 + 0xed41: 0x6c2c4020, + 0xed45: 0x6c0edc20, + 0xed4a: 0x6c013220, + 0xed59: 0x6c2c4220, + 0xed63: 0x6c097220, + 0xed68: 0x6c0bb020, + 0xed73: 0x6c0d5220, + 0xed7a: 0x6c2c4820, + 0xed7e: 0x6c2c4620, + // Block 0x3b6, offset 0xed80 + 0xed82: 0x6c2c4420, + 0xed8b: 0x6c2c5420, + 0xed8c: 0x6c2c5020, 0xed8f: 0x6c2c4a20, + 0xed96: 0x6c2c4e20, + 0xed9a: 0x6c2c4c20, 0xed9b: 0x6c2c5220, + 0xed9d: 0x6c045a20, 0xed9f: 0x6c2c5a20, + 0xeda1: 0x6c0c2e20, 0xeda3: 0x6c2c5c20, + 0xeda8: 0x6c065220, 0xedaa: 0x6c2c5620, 0xedab: 0x6c2c5820, + 0xedaf: 0x6c16d620, + 0xedb3: 0x6c0ede20, + 0xedb5: 0x6c0c8e20, + 0xedbc: 0x6c2c5e20, 0xedbf: 0x6c2c6420, + // Block 0x3b7, offset 0xedc0 + 0xedc8: 0x6c2c6020, 0xedc9: 0x6c2c6220, 0xedca: 0x6c15be20, + 0xedcf: 0x6c103620, + 0xedd0: 0x6c2c6a20, + 0xeddd: 0x6c2c6620, 0xedde: 0x6c2c6820, 0xeddf: 0x6c2c6c20, + 0xedea: 0x6c2c8820, + 0xedf0: 0x6c2c7220, + 0xedf4: 0x6c2c7420, 0xedf5: 0x6c2c7020, + // Block 0x3b8, offset 0xee00 + 0xee02: 0x6c2c6e20, + 0xee04: 0x6c0f6a20, 0xee07: 0x6c2c7820, + 0xee08: 0x6c2c8020, 0xee09: 0x6c2c7a20, 0xee0a: 0x6c2c7620, + 0xee0c: 0x6c2c7c20, + 0xee10: 0x6c2c7e20, + 0xee15: 0x6c2c8c20, + 0xee19: 0x6c2c8220, + 0xee1f: 0x6c0c3020, + 0xee20: 0x6c2c8620, 0xee23: 0x6c2c8a20, + 0xee24: 0x6c2c8420, + 0xee32: 0x6c2c9020, + 0xee34: 0x6c09b220, 0xee36: 0x6c2c8e20, + 0xee3c: 0x6c2c9220, + // Block 0x3b9, offset 0xee40 + 0xee41: 0x6c2c9420, + 0xee44: 0x6c2c9a20, 0xee45: 0x6c2c9820, 0xee47: 0x6c2c9620, + 0xee4a: 0x6c2c9e20, 0xee4b: 0x6c2c9c20, + 0xee4d: 0x6c153c20, + 0xee51: 0x6c2ca220, 0xee53: 0x6c2ca020, + 0xee54: 0x6c2ca420, + 0xee59: 0x6c2ca620, + 0xee61: 0x6c2caa20, + 0xee6a: 0x6c2ca820, 0xee6b: 0x6c0b5420, + 0xee6c: 0x6c2cac20, 0xee6f: 0x6c050220, + 0xee70: 0x6c2cae20, 0xee71: 0x6c2cb220, + 0xee7e: 0x6c2cb420, + // Block 0x3ba, offset 0xee80 + 0xee85: 0x6c2cb620, 0xee86: 0x6c2cb020, + 0xee88: 0x6c2cb820, 0xee8a: 0x6c093c20, 0xee8b: 0x6c2cba20, + 0xee8c: 0x6c03cc20, 0xee8d: 0x6c054a20, + 0xee92: 0x6c05fc20, + 0xee9b: 0x6c2cbc20, + 0xee9f: 0x6c10c820, + 0xeea2: 0x6c0fa820, 0xeea3: 0x6c2cbe20, + 0xeeab: 0x6c2cc420, + 0xeeb8: 0x6c08f820, 0xeebb: 0x6c2cc220, + 0xeebc: 0x6c2cc020, 0xeebd: 0x6c059820, 0xeebe: 0x6c2cc620, + // Block 0x3bb, offset 0xeec0 + 0xeec3: 0x6c029a20, + 0xeec5: 0x6c2cca20, + 0xeec9: 0x6c07d020, 0xeeca: 0x6c2cc820, + 0xeecc: 0x6c2cda20, + 0xeed2: 0x6c2cce20, 0xeed3: 0x6c2cd220, + 0xeed4: 0x6c13a220, 0xeed5: 0x6c2ccc20, + 0xeed9: 0x6c2cd020, 0xeedb: 0x6c2cd820, + 0xeedc: 0x6c2cd420, 0xeedd: 0x6c03ce20, 0xeedf: 0x6c2cd620, + 0xeee6: 0x6c2cdc20, + 0xeee9: 0x6c115820, 0xeeea: 0x6c167820, + 0xeeef: 0x6c09b420, + 0xeef3: 0x6c2cde20, + 0xeef8: 0x6c155020, 0xeef9: 0x6c2ce220, 0xeefb: 0x6c2ce020, + 0xeefe: 0x6c2ce820, 0xeeff: 0x6c158e20, + // Block 0x3bc, offset 0xef00 + 0xef02: 0x6c2ce620, + 0xef04: 0x6c02ce20, 0xef05: 0x6c2ce420, 0xef06: 0x6c2cee20, + 0xef09: 0x6c2cec20, + 0xef0c: 0x6c2cea20, 0xef0d: 0x6c0f9020, 0xef0e: 0x6c2cf020, + 0xef17: 0x6c2cf220, + 0xef1c: 0x6c2cf420, 0xef1f: 0x6c073420, + 0xef21: 0x6c052e20, 0xef22: 0x6c2cf620, 0xef23: 0x6c2cf820, + 0xef24: 0x6c2cfa20, + // Block 0x3bd, offset 0xef40 + 0xef5b: 0x6c0b5620, + 0xef5c: 0x6c2cfc20, 0xef5e: 0x6c08ea20, 0xef5f: 0x6c2cfe20, + 0xef63: 0x6c2d0020, + 0xef67: 0x6c18a420, + 0xef68: 0x6c18a220, + 0xef6d: 0x6c2d0220, 0xef6e: 0x6c273620, 0xef6f: 0x6c2d0420, + 0xef70: 0x6c0dfc20, 0xef71: 0x6c0b1a20, 0xef72: 0x6c112420, + 0xef77: 0x6c2d0620, + 0xef7a: 0x6c138220, 0xef7b: 0x6c0f1820, + 0xef7c: 0x6c075820, 0xef7f: 0x6c0e0620, + // Block 0x3be, offset 0xef80 + 0xef82: 0x6c00d020, + 0xef84: 0x6c148420, 0xef85: 0x6c0b7220, + 0xef8e: 0x6c05a020, + 0xef91: 0x6c04ea20, + 0xef94: 0x6c138420, + 0xef9a: 0x6c2d0820, + 0xefa2: 0x6c2d0c20, + 0xefa5: 0x6c2d0a20, 0xefa6: 0x6c01f820, + 0xefa9: 0x6c10d420, 0xefaa: 0x6c2d0e20, 0xefab: 0x6c119220, + 0xefad: 0x6c0f9220, 0xefaf: 0x6c2d1020, + 0xefb0: 0x6c09f020, + 0xefb4: 0x6c2d1420, 0xefb7: 0x6c14d420, + 0xefb8: 0x6c2d3220, 0xefb9: 0x6c2d1820, 0xefba: 0x6c2d1a20, + 0xefbd: 0x6c0f0220, + // Block 0x3bf, offset 0xefc0 + 0xefc0: 0x6c0db820, 0xefc1: 0x6c0d2a20, 0xefc3: 0x6c103820, + 0xefc5: 0x6c2d1620, 0xefc6: 0x6c041620, + 0xefcb: 0x6c2d2820, + 0xefcd: 0x6c2d2220, 0xefce: 0x6c2d3c20, 0xefcf: 0x6c103a20, + 0xefd0: 0x6c0e7420, 0xefd1: 0x6c2d1c20, 0xefd3: 0x6c0f6c20, + 0xefd4: 0x6c0fd220, 0xefd5: 0x6c2d1e20, 0xefd6: 0x6c2d2620, 0xefd7: 0x6c0b8420, + 0xefd9: 0x6c117220, 0xefda: 0x6c0f0820, + 0xefdd: 0x6c0c0420, 0xefde: 0x6c2d2420, 0xefdf: 0x6c0d5420, + 0xefe0: 0x6c0d4020, 0xefe1: 0x6c2d2020, 0xefe2: 0x6c001220, 0xefe3: 0x6c16c820, + 0xefe7: 0x6c2d2a20, + 0xefee: 0x6c0dba20, + 0xeff1: 0x6c09b620, 0xeff2: 0x6c0b5820, + 0xeff5: 0x6c2d2e20, 0xeff6: 0x6c2d2c20, + 0xeff8: 0x6c009e20, 0xeff9: 0x6c2d3020, + 0xeffc: 0x6c127a20, 0xeffe: 0x6c2d4020, + // Block 0x3c0, offset 0xf000 + 0xf001: 0x6c109e20, 0xf002: 0x6c0b9a20, + 0xf005: 0x6c0e6620, 0xf007: 0x6c051820, + 0xf009: 0x6c2d3e20, 0xf00a: 0x6c157a20, 0xf00b: 0x6c00fa20, + 0xf00d: 0x6c138620, 0xf00e: 0x6c01fa20, 0xf00f: 0x6c2d3420, + 0xf010: 0x6c2d3620, 0xf011: 0x6c2d3820, 0xf012: 0x6c2d3a20, 0xf013: 0x6c105e20, + 0xf014: 0x6c0dfa20, 0xf015: 0x6c008620, 0xf016: 0x6c2d4220, + 0xf018: 0x6c2d4420, 0xf019: 0x6c31a020, + 0xf01c: 0x6c0d7220, 0xf01e: 0x6c2d4620, + 0xf020: 0x6c016220, 0xf021: 0x6c0cd420, 0xf023: 0x6c05fe20, + 0xf025: 0x6c15c020, + 0xf028: 0x6c2d4820, 0xf029: 0x6c0f8420, + 0xf02d: 0x6c0d2c20, 0xf02e: 0x6c093e20, 0xf02f: 0x6c2d4a20, + 0xf032: 0x6c2d5020, + 0xf035: 0x6c0a1620, 0xf036: 0x6c2d4c20, 0xf037: 0x6c0c9220, + 0xf038: 0x6c0c9020, 0xf03a: 0x6c008820, + 0xf03c: 0x6c165e20, 0xf03d: 0x6c2d5420, 0xf03f: 0x6c124420, + // Block 0x3c1, offset 0xf040 + 0xf040: 0x6c2d5820, 0xf041: 0x6c2d5620, 0xf042: 0x6c2d5220, 0xf043: 0x6c25a620, + 0xf044: 0x6c035820, 0xf047: 0x6c2d1220, + 0xf049: 0x6c2d5c20, 0xf04a: 0x6c2d5a20, + 0xf04f: 0x6c2d5e20, + 0xf051: 0x6c157c20, + 0xf063: 0x6c10aa20, + 0xf066: 0x6c13f020, + 0xf068: 0x6c2d6020, 0xf06a: 0x6c094220, + 0xf06f: 0x6c2d6220, + 0xf071: 0x6c2d6420, + 0xf075: 0x6c2d6620, + 0xf078: 0x6c0f6e20, + // Block 0x3c2, offset 0xf080 + 0xf081: 0x6c009420, + 0xf08a: 0x6c070e20, + 0xf08e: 0x6c16f820, + 0xf09b: 0x6c2d6e20, + 0xf0a1: 0x6c054c20, 0xf0a2: 0x6c2d6820, + 0xf0a4: 0x6c2d6a20, + 0xf0a8: 0x6c130420, + 0xf0ad: 0x6c029c20, + 0xf0b5: 0x6c157e20, 0xf0b7: 0x6c04a620, + 0xf0bd: 0x6c0fd420, + // Block 0x3c3, offset 0xf0c0 + 0xf0c2: 0x6c2d7020, + 0xf0d2: 0x6c2d7220, + 0xf0d9: 0x6c2d7420, + 0xf0ed: 0x6c0f7020, + 0xf0f0: 0x6c2d7820, 0xf0f2: 0x6c2d7620, + // Block 0x3c4, offset 0xf100 + 0xf109: 0x6c108e20, 0xf10a: 0x6c2d7a20, 0xf10b: 0x6c09b820, + 0xf10c: 0x6c095020, 0xf10d: 0x6c115a20, 0xf10e: 0x6c0e9620, + 0xf112: 0x6c097420, + 0xf114: 0x6c0b9c20, 0xf116: 0x6c2d7c20, + 0xf118: 0x6c2d7e20, + 0xf122: 0x6c0b7e20, 0xf123: 0x6c2d8020, + 0xf125: 0x6c2d8220, + 0xf129: 0x6c2d8420, 0xf12a: 0x6c15ea20, + 0xf12c: 0x6c09ba20, + 0xf132: 0x6c2d8820, 0xf133: 0x6c2d8620, + 0xf135: 0x6c071020, 0xf137: 0x6c074220, + 0xf138: 0x6c085420, + // Block 0x3c5, offset 0xf140 + 0xf142: 0x6c2d8e20, + 0xf147: 0x6c0a1820, + 0xf149: 0x6c2d8c20, 0xf14b: 0x6c2d8a20, + 0xf14d: 0x6c0dca20, + 0xf150: 0x6c067e20, 0xf152: 0x6c0c0620, + 0xf157: 0x6c11c020, + 0xf15c: 0x6c09be20, + 0xf162: 0x6c2d9020, + 0xf164: 0x6c0ac620, + 0xf16a: 0x6c2d9620, 0xf16b: 0x6c2d9220, + 0xf16f: 0x6c2d9420, + 0xf174: 0x6c2d9a20, 0xf175: 0x6c2d9820, + 0xf178: 0x6c0afc20, 0xf17a: 0x6c2d9c20, + // Block 0x3c6, offset 0xf180 + 0xf180: 0x6c2d9e20, 0xf181: 0x6c2da020, + 0xf186: 0x6c120020, 0xf187: 0x6c07be20, + 0xf188: 0x6c095220, 0xf189: 0x6c2da220, 0xf18b: 0x6c2da420, + 0xf18c: 0x6c161020, 0xf18d: 0x6c09d620, 0xf18e: 0x6c152c20, 0xf18f: 0x6c166020, + 0xf190: 0x6c2da620, 0xf191: 0x6c04ec20, + 0xf196: 0x6c2da820, + 0xf198: 0x6c0f7220, 0xf19b: 0x6c2dae20, + 0xf19c: 0x6c02e420, 0xf19d: 0x6c0b5a20, 0xf19f: 0x6c2daa20, + 0xf1a1: 0x6c2dac20, 0xf1a3: 0x6c0f3020, + 0xf1a6: 0x6c143e20, 0xf1a7: 0x6c052020, + 0xf1b5: 0x6c2db220, 0xf1b6: 0x6c2db420, + 0xf1bc: 0x6c2db020, 0xf1bf: 0x6c2db820, + // Block 0x3c7, offset 0xf1c0 + 0xf1cd: 0x6c10a620, 0xf1ce: 0x6c027a20, + 0xf1d1: 0x6c2dc020, + 0xf1d4: 0x6c2dba20, 0xf1d5: 0x6c2dbe20, + 0xf1de: 0x6c2db620, + 0xf1e9: 0x6c2e4c20, + 0xf1ec: 0x6c2dbc20, + 0xf1f4: 0x6c169e20, 0xf1f7: 0x6c065420, + 0xf1ff: 0x6c2dd020, + // Block 0x3c8, offset 0xf200 + 0xf204: 0x6c0f9420, 0xf205: 0x6c2dc620, + 0xf208: 0x6c2dcc20, 0xf209: 0x6c2dc820, 0xf20b: 0x6c2dd220, + 0xf210: 0x6c2dd420, + 0xf217: 0x6c2dc420, + 0xf21a: 0x6c2dde20, 0xf21b: 0x6c016420, + 0xf21e: 0x6c2dc220, + 0xf222: 0x6c11ba20, + 0xf224: 0x6c2dca20, 0xf226: 0x6c0ac820, + 0xf231: 0x6c071220, + 0xf23e: 0x6c142420, + // Block 0x3c9, offset 0xf240 + 0xf240: 0x6c04f020, 0xf243: 0x6c09d820, + 0xf245: 0x6c106020, + 0xf251: 0x6c0c9620, 0xf253: 0x6c2dda20, + 0xf255: 0x6c2dce20, 0xf256: 0x6c2dd820, + 0xf258: 0x6c14d620, 0xf25a: 0x6c0ee020, 0xf25b: 0x6c2ddc20, + 0xf25c: 0x6c2dd620, + 0xf26d: 0x6c0c9420, + 0xf277: 0x6c2de420, + 0xf279: 0x6c2de220, + // Block 0x3ca, offset 0xf280 + 0xf28f: 0x6c2de020, + 0xf292: 0x6c13f220, + 0xf2a4: 0x6c0a4220, + 0xf2a9: 0x6c2de620, 0xf2aa: 0x6c139620, + 0xf2ad: 0x6c012420, + 0xf2b2: 0x6c12a820, 0xf2b3: 0x6c0e9820, + 0xf2b8: 0x6c045c20, 0xf2ba: 0x6c2dea20, + 0xf2bc: 0x6c071620, + // Block 0x3cb, offset 0xf2c0 + 0xf2c6: 0x6c082c20, + 0xf2cf: 0x6c2de820, + 0xf2d0: 0x6c0b9e20, + 0xf2d8: 0x6c0ba020, 0xf2d9: 0x6c2df020, 0xf2da: 0x6c2df420, + 0xf2e0: 0x6c0afe20, 0xf2e2: 0x6c2df220, 0xf2e3: 0x6c2df620, + 0xf2e6: 0x6c04ce20, + 0xf2e8: 0x6c12a620, 0xf2eb: 0x6c095420, + 0xf2ec: 0x6c16ca20, 0xf2ee: 0x6c2dee20, 0xf2ef: 0x6c080820, + 0xf2f2: 0x6c170220, + 0xf2f5: 0x6c2dfa20, + 0xf2fa: 0x6c2df820, 0xf2fb: 0x6c2dfc20, + // Block 0x3cc, offset 0xf300 + 0xf304: 0x6c2dec20, + 0xf30b: 0x6c10ba20, + 0xf30d: 0x6c0fd620, + 0xf314: 0x6c0f1e20, 0xf316: 0x6c2e0620, + 0xf31b: 0x6c0e3a20, + 0xf31c: 0x6c2dfe20, + 0xf320: 0x6c2e0020, + 0xf32c: 0x6c053e20, 0xf32e: 0x6c2e0420, + 0xf335: 0x6c060020, + 0xf33c: 0x6c2e0220, 0xf33e: 0x6c0aca20, + // Block 0x3cd, offset 0xf340 + 0xf34c: 0x6c02e620, + 0xf354: 0x6c2e0e20, 0xf356: 0x6c079620, 0xf357: 0x6c0d2e20, + 0xf35a: 0x6c0f0420, + 0xf367: 0x6c026a20, + 0xf36c: 0x6c2e0a20, 0xf36d: 0x6c2e0c20, 0xf36e: 0x6c0ef620, + 0xf370: 0x6c2e0820, + 0xf379: 0x6c2e1020, + // Block 0x3ce, offset 0xf380 + 0xf383: 0x6c2e1c20, + 0xf388: 0x6c2e2220, + 0xf390: 0x6c2e2020, 0xf391: 0x6c0f8620, + 0xf396: 0x6c2e1220, 0xf397: 0x6c2e1420, + 0xf398: 0x6c2e1a20, + 0xf39d: 0x6c2e1e20, + 0xf3a1: 0x6c04a820, + 0xf3a4: 0x6c2e2420, 0xf3a5: 0x6c2e1820, + 0xf3a8: 0x6c2e1620, + // Block 0x3cf, offset 0xf3c0 + 0xf3c3: 0x6c2e2c20, + 0xf3c7: 0x6c2e2e20, + 0xf3d0: 0x6c2e3020, 0xf3d3: 0x6c2e2a20, + 0xf3d4: 0x6c2e2820, + 0xf3d8: 0x6c0acc20, 0xf3d9: 0x6c103c20, 0xf3da: 0x6c2e2620, + 0xf3e1: 0x6c2e3820, + 0xf3eb: 0x6c2e3420, + 0xf3f5: 0x6c2e3620, 0xf3f6: 0x6c2e3220, + 0xf3f8: 0x6c0de820, 0xf3fa: 0x6c2e3a20, + // Block 0x3d0, offset 0xf400 + 0xf401: 0x6c2e3c20, + 0xf404: 0x6c2e4020, + 0xf411: 0x6c035a20, 0xf412: 0x6c2e3e20, 0xf413: 0x6c154420, + 0xf41a: 0x6c2e5620, 0xf41b: 0x6c2e4220, + 0xf41e: 0x6c2e4820, + 0xf420: 0x6c2e4420, 0xf422: 0x6c2e4620, + 0xf42a: 0x6c2e4a20, + 0xf430: 0x6c2e4e20, + 0xf435: 0x6c2e5020, 0xf437: 0x6c2e5220, + 0xf43c: 0x6c2e5820, 0xf43d: 0x6c2e5420, 0xf43e: 0x6c2e5a20, 0xf43f: 0x6c2e5e20, + // Block 0x3d1, offset 0xf440 + 0xf441: 0x6c2e5c20, + // Block 0x3d2, offset 0xf480 + 0xf4b7: 0x6c0ee220, + // Block 0x3d3, offset 0xf4c0 + 0xf4c0: 0x6c151e20, 0xf4c2: 0x6c2e6020, 0xf4c3: 0x6c0c9820, + 0xf4c7: 0x6c2e6220, + 0xf4c9: 0x6c136020, 0xf4ca: 0x6c2e6420, 0xf4cb: 0x6c024a20, + 0xf4cf: 0x6c00f420, + 0xf4d1: 0x6c035e20, 0xf4d3: 0x6c035c20, + 0xf4d4: 0x6c2e6620, 0xf4d6: 0x6c2e6820, + 0xf4d8: 0x6c2e6a20, 0xf4d9: 0x6c2e6c20, + 0xf4e0: 0x6c2e6e20, 0xf4e2: 0x6c036020, 0xf4e3: 0x6c029e20, + 0xf4e4: 0x6c071820, 0xf4e5: 0x6c11cc20, 0xf4e7: 0x6c2e7220, + 0xf4e8: 0x6c2e7020, + 0xf4ed: 0x6c2e7420, + 0xf4f2: 0x6c013420, + 0xf4f9: 0x6c2e7a20, 0xf4fb: 0x6c2e7820, + 0xf4fc: 0x6c2e7620, 0xf4fe: 0x6c2e7c20, + // Block 0x3d4, offset 0xf500 + 0xf503: 0x6c2e8220, + 0xf507: 0x6c004e20, + 0xf50a: 0x6c2e7e20, + 0xf50c: 0x6c2e8620, 0xf50d: 0x6c2e8420, + 0xf514: 0x6c2e8a20, 0xf515: 0x6c2e8820, 0xf516: 0x6c2e8c20, + 0xf518: 0x6c104420, + 0xf51c: 0x6c2e8e20, + 0xf521: 0x6c2e9020, 0xf522: 0x6c2e9420, + 0xf525: 0x6c2e9220, + // Block 0x3d5, offset 0xf540 + 0xf55c: 0x6c12f420, + 0xf561: 0x6c2e9620, + 0xf568: 0x6c2e9820, 0xf56a: 0x6c07e220, + 0xf56e: 0x6c2e9a20, 0xf56f: 0x6c2e9c20, + 0xf572: 0x6c142620, + 0xf57b: 0x6c0cd220, + 0xf57f: 0x6c000820, + // Block 0x3d6, offset 0xf580 + 0xf580: 0x6c0d8e20, 0xf582: 0x6c2e9e20, + 0xf584: 0x6c12f620, + 0xf58b: 0x6c2ea420, + 0xf58c: 0x6c2ea020, 0xf58d: 0x6c071a20, 0xf58f: 0x6c2ea220, + 0xf590: 0x6c062420, + 0xf59b: 0x6c136220, + 0xf59c: 0x6c2ea820, 0xf59d: 0x6c2eac20, 0xf59e: 0x6c2eaa20, 0xf59f: 0x6c2eae20, + 0xf5a2: 0x6c00be20, 0xf5a3: 0x6c0b7420, + 0xf5a4: 0x6c0a4420, 0xf5a5: 0x6c036220, 0xf5a6: 0x6c2eb020, + 0xf5aa: 0x6c117020, + 0xf5ac: 0x6c2eb420, + 0xf5b0: 0x6c00c020, 0xf5b2: 0x6c2eb220, 0xf5b3: 0x6c0ef820, + 0xf5b5: 0x6c166220, 0xf5b6: 0x6c103e20, 0xf5b7: 0x6c2ea620, + 0xf5b8: 0x6c161420, 0xf5ba: 0x6c060220, + 0xf5bd: 0x6c15c220, + // Block 0x3d7, offset 0xf5c0 + 0xf5c5: 0x6c051a20, 0xf5c6: 0x6c163020, + 0xf5c8: 0x6c053420, 0xf5ca: 0x6c0dbc20, 0xf5cb: 0x6c281020, + 0xf5cd: 0x6c2eb620, 0xf5ce: 0x6c024c20, 0xf5cf: 0x6c0ba220, + 0xf5d4: 0x6c02a020, 0xf5d5: 0x6c2eba20, 0xf5d7: 0x6c2ebc20, + 0xf5d8: 0x6c2eb820, 0xf5d9: 0x6c05ac20, 0xf5db: 0x6c07d220, + 0xf5dc: 0x6c0ace20, + 0xf5e0: 0x6c00c220, 0xf5e3: 0x6c167a20, + 0xf5e7: 0x6c2ec020, + 0xf5e8: 0x6c2d4e20, 0xf5ea: 0x6c2ebe20, + 0xf5f0: 0x6c2ec620, 0xf5f1: 0x6c2ec220, 0xf5f2: 0x6c2ec420, + 0xf5f4: 0x6c2ec820, 0xf5f6: 0x6c2eca20, 0xf5f7: 0x6c16a020, + 0xf5f8: 0x6c2ecc20, 0xf5f9: 0x6c2ece20, 0xf5fb: 0x6c0c1220, + 0xf5fc: 0x6c11d620, + // Block 0x3d8, offset 0xf600 + 0xf600: 0x6c0bbe20, 0xf601: 0x6c037e20, + 0xf604: 0x6c158020, 0xf605: 0x6c021220, 0xf606: 0x6c09bc20, 0xf607: 0x6c065620, + 0xf609: 0x6c2ed420, 0xf60b: 0x6c2ed220, + 0xf60c: 0x6c08ba20, 0xf60d: 0x6c2ed620, 0xf60e: 0x6c2ed020, + 0xf611: 0x6c082420, + 0xf615: 0x6c2ede20, 0xf616: 0x6c2a5c20, + 0xf619: 0x6c190e20, 0xf61b: 0x6c0bb220, + 0xf61c: 0x6c2eda20, + 0xf622: 0x6c161220, 0xf623: 0x6c10ca20, + 0xf628: 0x6c00d220, 0xf62a: 0x6c0c4620, 0xf62b: 0x6c08fc20, + 0xf630: 0x6c134620, 0xf632: 0x6c00fc20, + 0xf636: 0x6c16a220, 0xf637: 0x6c15e220, + 0xf639: 0x6c2ee020, 0xf63b: 0x6c0fb620, + // Block 0x3d9, offset 0xf640 + 0xf640: 0x6c098620, + 0xf644: 0x6c2ee220, 0xf646: 0x6c2ee420, 0xf647: 0x6c0b5c20, + 0xf648: 0x6c2ee620, 0xf64a: 0x6c16a420, + 0xf64d: 0x6c2edc20, 0xf64e: 0x6c2eea20, 0xf64f: 0x6c2eee20, + 0xf651: 0x6c2eec20, 0xf653: 0x6c2ee820, + 0xf656: 0x6c2ef020, + 0xf659: 0x6c2ef220, + 0xf65c: 0x6c0d3020, 0xf65e: 0x6c01fc20, + 0xf664: 0x6c2ef420, 0xf667: 0x6c14c020, + 0xf66a: 0x6c2ef620, + 0xf670: 0x6c2ef820, 0xf672: 0x6c16d820, + 0xf678: 0x6c1f6020, 0xf679: 0x6c2efa20, + 0xf67d: 0x6c2efc20, 0xf67e: 0x6c2efe20, + // Block 0x3da, offset 0xf680 + 0xf682: 0x6c2f0620, + 0xf684: 0x6c2f0020, 0xf686: 0x6c2f0220, + 0xf688: 0x6c2f0420, 0xf689: 0x6c2f0820, + 0xf692: 0x6c0c0820, + 0xf696: 0x6c153e20, + 0xf699: 0x6c0c0a20, + 0xf69c: 0x6c2f0a20, 0xf69e: 0x6c124620, + 0xf6a0: 0x6c2f0c20, 0xf6a1: 0x6c314420, 0xf6a2: 0x6c14e820, + 0xf6a4: 0x6c2f0e20, 0xf6a6: 0x6c2f1020, + 0xf6a8: 0x6c2f1220, 0xf6a9: 0x6c02a220, 0xf6ab: 0x6c2f1620, + 0xf6ad: 0x6c0b7620, + 0xf6b1: 0x6c2f1820, + 0xf6b4: 0x6c052c20, + 0xf6b9: 0x6c2f1a20, 0xf6ba: 0x6c2f2220, + 0xf6bc: 0x6c2f1e20, + // Block 0x3db, offset 0xf6c0 + 0xf6c1: 0x6c2f2020, + 0xf6c4: 0x6c02da20, 0xf6c5: 0x6c2f1c20, 0xf6c6: 0x6c2f2420, + 0xf6cb: 0x6c2f2620, + 0xf6cd: 0x6c005020, 0xf6cf: 0x6c2f2820, + 0xf6d0: 0x6c2f2a20, + 0xf6d8: 0x6c0ad020, + 0xf6dc: 0x6c2f2c20, + 0xf6e0: 0x6c03fa20, 0xf6e3: 0x6c2f3220, + 0xf6e6: 0x6c2f3020, + 0xf6e8: 0x6c2f2e20, 0xf6eb: 0x6c2ba020, + 0xf6ed: 0x6c139020, + 0xf6f3: 0x6c2f3420, + 0xf6f4: 0x6c2f3620, + // Block 0x3dc, offset 0xf700 + 0xf703: 0x6c2f3820, + 0xf706: 0x6c2f3a20, + 0xf708: 0x6c2f3c20, 0xf70b: 0x6c2f3e20, + 0xf713: 0x6c036420, + 0xf71c: 0x6c2f4020, + 0xf72d: 0x6c2f4220, 0xf72e: 0x6c10ea20, + 0xf732: 0x6c2f4620, 0xf733: 0x6c01ae20, + 0xf735: 0x6c2f4c20, 0xf736: 0x6c2f4a20, + 0xf73b: 0x6c00c420, + 0xf73f: 0x6c04aa20, + // Block 0x3dd, offset 0xf740 + 0xf741: 0x6c136620, 0xf742: 0x6c0ee420, 0xf743: 0x6c075c20, + 0xf745: 0x6c071c20, 0xf746: 0x6c0a1a20, + 0xf748: 0x6c0b7c20, + 0xf74c: 0x6c2f5020, 0xf74f: 0x6c2f4e20, + 0xf750: 0x6c159020, 0xf751: 0x6c038020, 0xf752: 0x6c120420, 0xf753: 0x6c10a020, + 0xf757: 0x6c0bbc20, + 0xf758: 0x6c166420, 0xf75a: 0x6c059a20, + 0xf761: 0x6c2f5620, + 0xf764: 0x6c2f5420, + 0xf76c: 0x6c142a20, 0xf76d: 0x6c104020, + 0xf774: 0x6c011c20, 0xf777: 0x6c2f5820, + 0xf778: 0x6c2f5220, 0xf77b: 0x6c12be20, + 0xf77c: 0x6c15e020, 0xf77d: 0x6c2f5a20, + // Block 0x3de, offset 0xf780 + 0xf786: 0x6c2f5c20, + 0xf78b: 0x6c2f6020, + 0xf78c: 0x6c0dcc20, 0xf78d: 0x6c02aa20, 0xf78e: 0x6c02ac20, 0xf78f: 0x6c2f5e20, + 0xf794: 0x6c038220, 0xf795: 0x6c060420, + 0xf798: 0x6c038420, 0xf79b: 0x6c0faa20, + 0xf79e: 0x6c168820, + 0xf7a7: 0x6c065820, + 0xf7ab: 0x6c2f6220, + 0xf7af: 0x6c2f6420, + 0xf7b0: 0x6c2f6620, 0xf7b1: 0x6c2f6820, 0xf7b3: 0x6c2f6c20, + 0xf7b4: 0x6c2f6a20, + // Block 0x3df, offset 0xf7c0 + 0xf7e8: 0x6c130a20, 0xf7ea: 0x6c2f6e20, + 0xf7ef: 0x6c2f7020, + 0xf7f1: 0x6c2f7220, + 0xf7f6: 0x6c2f7420, + // Block 0x3e0, offset 0xf800 + 0xf803: 0x6c2f7820, + 0xf804: 0x6c2f7620, 0xf806: 0x6c2f7a20, + 0xf81b: 0x6c124820, + 0xf81c: 0x6c27aa20, 0xf81f: 0x6c0b1620, + 0xf822: 0x6c03d020, + 0xf829: 0x6c2f7c20, 0xf82b: 0x6c2f7e20, + 0xf82d: 0x6c18ba20, 0xf82e: 0x6c20ec20, 0xf82f: 0x6c120620, + 0xf832: 0x6c00b620, + 0xf834: 0x6c003620, + 0xf83c: 0x6c08bc20, 0xf83d: 0x6c13f420, 0xf83e: 0x6c0b0420, + // Block 0x3e1, offset 0xf840 + 0xf843: 0x6c2f8020, + 0xf845: 0x6c150e20, + 0xf849: 0x6c2f8220, 0xf84a: 0x6c15c420, + 0xf84c: 0x6c010020, + 0xf850: 0x6c085620, 0xf852: 0x6c2f8420, 0xf853: 0x6c021420, + 0xf854: 0x6c2f8620, + 0xf858: 0x6c2f8820, + 0xf85d: 0x6c2f8c20, 0xf85e: 0x6c2f8e20, + 0xf860: 0x6c2f9220, 0xf861: 0x6c2f8a20, + 0xf864: 0x6c2f9020, + 0xf868: 0x6c036620, + 0xf86c: 0x6c2f9420, 0xf86e: 0x6c2f9620, + 0xf87d: 0x6c2f9820, 0xf87e: 0x6c2f9a20, + // Block 0x3e2, offset 0xf880 + 0xf882: 0x6c2f9c20, + 0xf885: 0x6c2fa020, + 0xf889: 0x6c2f9e20, 0xf88b: 0x6c2fa420, + 0xf88c: 0x6c2faa20, + 0xf890: 0x6c2fa220, 0xf891: 0x6c2fa620, 0xf892: 0x6c2fa820, + 0xf895: 0x6c2fac20, 0xf897: 0x6c04ac20, + // Block 0x3e3, offset 0xf8c0 + 0xf8d6: 0x6c097620, 0xf8d7: 0x6c2fae20, + 0xf8d8: 0x6c2fb020, 0xf8d9: 0x6c071e20, + 0xf8e5: 0x6c2fb220, + 0xf8e8: 0x6c027020, + 0xf8ec: 0x6c114220, 0xf8ed: 0x6c2fb420, 0xf8ee: 0x6c2fb620, + 0xf8f3: 0x6c0e6820, + 0xf8f4: 0x6c10be20, + 0xf8fc: 0x6c2fb820, + // Block 0x3e4, offset 0xf900 + 0xf901: 0x6c119e20, + 0xf904: 0x6c0d9020, 0xf905: 0x6c012c20, 0xf906: 0x6c050420, + 0xf908: 0x6c050620, + 0xf910: 0x6c0e9a20, 0xf911: 0x6c2fc220, 0xf912: 0x6c050820, + 0xf915: 0x6c021620, + 0xf918: 0x6c2fc020, 0xf91b: 0x6c2fbc20, + 0xf91d: 0x6c2fbe20, 0xf91f: 0x6c2fba20, + 0xf922: 0x6c2fd620, + 0xf92d: 0x6c2fc420, 0xf92e: 0x6c2fc620, + 0xf931: 0x6c2fc820, 0xf932: 0x6c2fca20, + 0xf938: 0x6c2fce20, 0xf93b: 0x6c2fcc20, + 0xf93f: 0x6c09fe20, + // Block 0x3e5, offset 0xf940 + 0xf941: 0x6c2fd020, + 0xf945: 0x6c2fd420, + 0xf94e: 0x6c03d220, 0xf94f: 0x6c2fd220, + 0xf952: 0x6c0d3220, 0xf953: 0x6c060620, + 0xf959: 0x6c2fd820, + 0xf968: 0x6c0d9220, 0xf96b: 0x6c2fda20, + 0xf970: 0x6c104220, + 0xf977: 0x6c2fdc20, + 0xf97e: 0x6c2fe620, + // Block 0x3e6, offset 0xf980 + 0xf980: 0x6c2fe220, 0xf982: 0x6c2fe020, 0xf983: 0x6c2fe420, + 0xf985: 0x6c2fde20, + 0xf98d: 0x6c2fea20, + 0xf995: 0x6c2fe820, 0xf997: 0x6c2fee20, + 0xf99a: 0x6c04ae20, 0xf99b: 0x6c2fec20, + 0xf99f: 0x6c2ff020, + 0xf9a2: 0x6c2ff220, + 0xf9a4: 0x6c2ff620, 0xf9a5: 0x6c2ff420, + 0xf9a9: 0x6c2ff820, 0xf9aa: 0x6c2ffc20, 0xf9ab: 0x6c2ffa20, + // Block 0x3e7, offset 0xf9c0 + 0xf9e8: 0x6c075420, + 0xf9ed: 0x6c2ffe20, + 0xf9f0: 0x6c300020, + 0xf9f8: 0x6c026c20, + 0xf9fc: 0x6c300220, + // Block 0x3e8, offset 0xfa00 + 0xfa00: 0x6c300420, + 0xfa04: 0x6c0ba620, + 0xfa0f: 0x6c300620, + 0xfa11: 0x6c300820, 0xfa13: 0x6c300a20, + 0xfa14: 0x6c300c20, + 0xfa18: 0x6c072020, + 0xfa1e: 0x6c300e20, 0xfa1f: 0x6c301020, + 0xfa22: 0x6c301220, 0xfa23: 0x6c301420, + 0xfa26: 0x6c301620, + 0xfa2a: 0x6c11c220, 0xfa2b: 0x6c301a20, + 0xfa2d: 0x6c126820, 0xfa2e: 0x6c301c20, 0xfa2f: 0x6c301820, + 0xfa31: 0x6c302020, + 0xfa34: 0x6c301e20, 0xfa37: 0x6c302220, + 0xfa3b: 0x6c302420, + // Block 0x3e9, offset 0xfa40 + 0xfa46: 0x6c302620, + 0xfa58: 0x6c302820, 0xfa5a: 0x6c302a20, + 0xfa5f: 0x6c302c20, + 0xfa62: 0x6c302e20, 0xfa63: 0x6c303020, + 0xfa65: 0x6c303220, 0xfa67: 0x6c303420, + 0xfa68: 0x6c303620, 0xfa69: 0x6c303820, 0xfa6a: 0x6c303a20, + 0xfa6e: 0x6c303c20, 0xfa6f: 0x6c303e20, + 0xfa71: 0x6c20e020, 0xfa72: 0x6c304020, + 0xfa7b: 0x6c268a20, + 0xfa7c: 0x6c03d420, + // Block 0x3ea, offset 0xfa80 + 0xfa81: 0x6c023620, 0xfa82: 0x6c077c20, 0xfa83: 0x6c304420, + 0xfa84: 0x6c304220, 0xfa85: 0x6c149a20, + 0xfa8d: 0x6c304820, 0xfa8e: 0x6c304a20, 0xfa8f: 0x6c304620, + 0xfa91: 0x6c304c20, + 0xfa94: 0x6c145820, + 0xfa98: 0x6c304e20, 0xfa9a: 0x6c046220, + 0xfaaf: 0x6c16ce20, + 0xfab4: 0x6c305020, + // Block 0x3eb, offset 0xfac0 + 0xfac3: 0x6c305420, + 0xface: 0x6c003c20, + 0xfad1: 0x6c305620, 0xfad2: 0x6c132e20, 0xfad3: 0x6c305220, + 0xfad6: 0x6c305820, 0xfad7: 0x6c305a20, + 0xfadf: 0x6c305c20, + 0xfae0: 0x6c305e20, + 0xfae8: 0x6c306020, 0xfaea: 0x6c147020, 0xfaeb: 0x6c082e20, + 0xfaed: 0x6c080c20, 0xfaee: 0x6c0c9a20, + 0xfaf4: 0x6c306220, + 0xfaf9: 0x6c306820, + // Block 0x3ec, offset 0xfb00 + 0xfb00: 0x6c306420, + 0xfb06: 0x6c306a20, + 0xfb09: 0x6c068220, 0xfb0a: 0x6c306620, + 0xfb0f: 0x6c306c20, + 0xfb11: 0x6c306e20, 0xfb12: 0x6c307020, + 0xfb14: 0x6c307820, 0xfb16: 0x6c082820, + 0xfb1b: 0x6c0dc020, + 0xfb21: 0x6c307a20, 0xfb22: 0x6c307420, 0xfb23: 0x6c307220, + 0xfb24: 0x6c307620, + 0xfb28: 0x6c05a220, + 0xfb30: 0x6c308220, 0xfb31: 0x6c308020, 0xfb32: 0x6c307e20, + 0xfb35: 0x6c002620, + // Block 0x3ed, offset 0xfb40 + 0xfb44: 0x6c309620, 0xfb46: 0x6c308e20, + 0xfb48: 0x6c309020, 0xfb49: 0x6c308820, 0xfb4a: 0x6c309420, + 0xfb4c: 0x6c308c20, 0xfb4d: 0x6c02b820, + 0xfb50: 0x6c171c20, 0xfb52: 0x6c309220, 0xfb53: 0x6c308a20, + 0xfb54: 0x6c308620, 0xfb55: 0x6c308420, + 0xfb5b: 0x6c309a20, + 0xfb61: 0x6c30a020, + 0xfb64: 0x6c309e20, 0xfb65: 0x6c309c20, + 0xfb6d: 0x6c12ae20, 0xfb6e: 0x6c309820, 0xfb6f: 0x6c00a620, + 0xfb70: 0x6c30a220, 0xfb72: 0x6c30a620, + 0xfb79: 0x6c02d220, 0xfb7a: 0x6c307c20, 0xfb7b: 0x6c00ea20, + 0xfb7e: 0x6c30aa20, + // Block 0x3ee, offset 0xfb80 + 0xfb86: 0x6c30a820, 0xfb87: 0x6c30a420, + 0xfb88: 0x6c0e0e20, + 0xfb92: 0x6c147420, + 0xfb97: 0x6c167c20, + 0xfb9a: 0x6c30ac20, + 0xfba0: 0x6c30ae20, + 0xfba7: 0x6c30b020, + 0xfbb6: 0x6c30b220, + 0xfbb8: 0x6c30b420, + // Block 0x3ef, offset 0xfbc0 + 0xfbe5: 0x6c0ee620, 0xfbe7: 0x6c30b620, + 0xfbe9: 0x6c11ce20, 0xfbeb: 0x6c30c020, + 0xfbec: 0x6c30b820, + 0xfbf0: 0x6c30ba20, 0xfbf3: 0x6c13f620, + 0xfbf4: 0x6c14d820, 0xfbf6: 0x6c108820, + // Block 0x3f0, offset 0xfc00 + 0xfc03: 0x6c30c220, + 0xfc06: 0x6c30c420, 0xfc07: 0x6c106420, + 0xfc08: 0x6c30be20, 0xfc09: 0x6c30bc20, + 0xfc0e: 0x6c018c20, + 0xfc12: 0x6c30d420, + 0xfc15: 0x6c30d220, + 0xfc1b: 0x6c016620, + 0xfc1f: 0x6c30ce20, + 0xfc23: 0x6c30cc20, + 0xfc26: 0x6c30c820, + 0xfc28: 0x6c02ea20, 0xfc2a: 0x6c30c620, 0xfc2b: 0x6c08f420, + 0xfc2c: 0x6c018a20, + 0xfc3b: 0x6c072220, + 0xfc3e: 0x6c30da20, 0xfc3f: 0x6c30d820, + // Block 0x3f1, offset 0xfc40 + 0xfc41: 0x6c30d620, + 0xfc44: 0x6c30d020, 0xfc46: 0x6c30dc20, + 0xfc48: 0x6c30de20, + 0xfc50: 0x6c30e820, 0xfc51: 0x6c30e620, + 0xfc59: 0x6c30ea20, + 0xfc5c: 0x6c00d620, 0xfc5d: 0x6c30e020, 0xfc5e: 0x6c30e220, + 0xfc60: 0x6c074420, 0xfc61: 0x6c14c220, + 0xfc64: 0x6c30e420, + 0xfc6c: 0x6c13f820, 0xfc6f: 0x6c30f420, + 0xfc72: 0x6c30ec20, + 0xfc7a: 0x6c30f620, + // Block 0x3f2, offset 0xfc80 + 0xfc87: 0x6c30f020, + 0xfc89: 0x6c30ee20, + 0xfc8f: 0x6c059c20, + 0xfc9a: 0x6c30f820, + 0xfca4: 0x6c30fa20, + 0xfca9: 0x6c30fc20, 0xfcab: 0x6c30f220, + 0xfcaf: 0x6c30ca20, + 0xfcb2: 0x6c30fe20, + 0xfcb4: 0x6c0f3220, + 0xfcb8: 0x6c310620, 0xfcba: 0x6c310820, 0xfcbb: 0x6c310420, + // Block 0x3f3, offset 0xfcc0 + 0xfcc1: 0x6c310220, 0xfcc2: 0x6c310e20, + 0xfcc4: 0x6c310020, 0xfcc6: 0x6c310a20, + 0xfccf: 0x6c310c20, + 0xfcd3: 0x6c311220, + 0xfcd9: 0x6c311020, + 0xfce6: 0x6c311620, + 0xfced: 0x6c311820, 0xfcef: 0x6c311a20, + 0xfcf2: 0x6c171620, + 0xfcf8: 0x6c311420, 0xfcf9: 0x6c0dce20, 0xfcfa: 0x6c07f220, + 0xfcfd: 0x6c311c20, + // Block 0x3f4, offset 0xfd00 + 0xfd1a: 0x6c311e20, 0xfd1b: 0x6c312020, + 0xfd1e: 0x6c312220, + // Block 0x3f5, offset 0xfd40 + 0xfd75: 0x6c312420, + 0xfd78: 0x6c060820, 0xfd79: 0x6c312620, + 0xfd7d: 0x6c312820, 0xfd7f: 0x6c08ee20, + // Block 0x3f6, offset 0xfd80 + 0xfd81: 0x6c312a20, + 0xfd88: 0x6c312c20, 0xfd8b: 0x6c312e20, + 0xfd8c: 0x6c313020, + 0xfd91: 0x6c313620, 0xfd92: 0x6c313220, 0xfd93: 0x6c16fc20, + 0xfd95: 0x6c313420, 0xfd97: 0x6c16a620, + 0xfd9d: 0x6c313820, 0xfd9f: 0x6c167e20, + 0xfda5: 0x6c313a20, 0xfda6: 0x6c11a020, + 0xfda9: 0x6c313c20, 0xfdaa: 0x6c314020, + 0xfdad: 0x6c314220, + 0xfdb8: 0x6c313e20, 0xfdb9: 0x6c073620, 0xfdba: 0x6c14ea20, 0xfdbb: 0x6c145a20, + 0xfdbc: 0x6c1c4020, 0xfdbe: 0x6c213620, 0xfdbf: 0x6c148a20, + // Block 0x3f7, offset 0xfdc0 + 0xfdc4: 0x6c018e20, + 0xfdcc: 0x6c314620, 0xfdcd: 0x6c040c20, 0xfdce: 0x6c314820, 0xfdcf: 0x6c314a20, + 0xfdd0: 0x6c314c20, 0xfdd2: 0x6c074620, + 0xfdd4: 0x6c314e20, + 0xfdd8: 0x6c235220, 0xfdd9: 0x6c150620, 0xfddb: 0x6c0dbe20, + 0xfddc: 0x6c315020, 0xfddd: 0x6c315420, 0xfdde: 0x6c315220, + 0xfde0: 0x6c315620, + 0xfde5: 0x6c315820, + 0xfde8: 0x6c315a20, + 0xfdef: 0x6c315c20, + 0xfdf4: 0x6c315e20, 0xfdf6: 0x6c316020, 0xfdf7: 0x6c316220, + 0xfdf9: 0x6c316420, 0xfdfb: 0x6c316620, + 0xfdfc: 0x6c316820, 0xfdfd: 0x6c316a20, + // Block 0x3f8, offset 0xfe00 + 0xfe07: 0x6c316c20, + 0xfe08: 0x6c316e20, + 0xfe0e: 0x6c0f7420, + 0xfe13: 0x6c065a20, + 0xfe15: 0x6c317220, + 0xfe20: 0x6c0cd620, 0xfe21: 0x6c317420, + 0xfe2c: 0x6c317620, + 0xfe3b: 0x6c125e20, + 0xfe3e: 0x6c317820, + // Block 0x3f9, offset 0xfe40 + 0xfe4a: 0x6c317a20, 0xfe4b: 0x6c254c20, + 0xfe4e: 0x6c2c2e20, 0xfe4f: 0x6c2f4420, + 0xfe52: 0x6c317c20, + 0xfe54: 0x6c317e20, + 0xfe5f: 0x6c318220, + 0xfe60: 0x6c318420, 0xfe61: 0x6c318620, 0xfe62: 0x6c16a820, 0xfe63: 0x6c318020, + 0xfe66: 0x6c318820, 0xfe67: 0x6c318a20, + 0xfe6a: 0x6c318e20, + 0xfe6c: 0x6c318c20, + 0xfe72: 0x6c319220, + 0xfe76: 0x6c319420, 0xfe77: 0x6c319020, + // Block 0x3fa, offset 0xfe80 + 0xfe8d: 0x6c163420, + 0xfe95: 0x6c319620, + 0xfe9c: 0x6c319820, 0xfe9d: 0x6c258620, + 0xfea0: 0x6c319a20, + // Block 0x3fb, offset 0xfec0 + 0xfec0: 0x6c2bdc20, 0xfec1: 0x6c06ce20, 0xfec2: 0x6c093c20, 0xfec3: 0x6c2c1020, + 0xfec4: 0x6c02c820, 0xfec5: 0x6c051c20, 0xfec6: 0x6c04f620, 0xfec7: 0x6c319820, + 0xfec8: 0x6c319820, 0xfec9: 0x6c056420, 0xfeca: 0x6c04ec20, 0xfecb: 0x6c19b020, + 0xfecc: 0x6c10a820, 0xfecd: 0x6c1dac20, 0xfece: 0x6c245a20, 0xfecf: 0x6c15d620, + 0xfed0: 0x6c29d420, 0xfed1: 0x6c15d820, 0xfed2: 0x6c15da20, 0xfed3: 0x6c2d5e20, + 0xfed4: 0x6c207020, 0xfed5: 0x6c15e420, 0xfed6: 0x6c22ae20, 0xfed7: 0x6c237220, + 0xfed8: 0x6c15e820, 0xfed9: 0x6c15ea20, 0xfeda: 0x6c2fc820, 0xfedb: 0x6c174220, + 0xfedc: 0x6c15ee20, 0xfedd: 0x6c15f220, 0xfede: 0x6c22f420, 0xfedf: 0x6c15f820, + 0xfee0: 0x6c312220, 0xfee1: 0x6c15f020, 0xfee2: 0x6c15f420, 0xfee3: 0x6c15f620, + 0xfee4: 0x6c2b0220, 0xfee5: 0x6c1e1420, 0xfee6: 0x6c285620, 0xfee7: 0x43103e20, + 0xfee8: 0x6c16de20, 0xfee9: 0x6c16e220, 0xfeea: 0x6c16e820, 0xfeeb: 0x6c16ee20, + 0xfeec: 0x6c16f820, 0xfeed: 0x6c179220, 0xfeee: 0x6c169020, 0xfeef: 0x6c18b420, + 0xfef0: 0x42c98820, 0xfef1: 0x6c16d020, 0xfef2: 0x6c22f220, 0xfef3: 0x6c249620, + 0xfef4: 0x6c16f220, 0xfef5: 0x6c29cc20, 0xfef6: 0x6c163c20, 0xfef7: 0x6c16d620, + 0xfef8: 0x6c16d820, 0xfef9: 0x6c16ce20, 0xfefa: 0x6c07f220, 0xfefb: 0x6c250420, + 0xfefc: 0x6c254420, 0xfefd: 0x42fb4020, 0xfefe: 0x43079220, 0xfeff: 0x43260820, + // Block 0x3fc, offset 0xff00 + 0xff00: 0x6c08ee20, 0xff01: 0x6c170420, 0xff02: 0x6c1a9e20, 0xff03: 0x6c16e020, + 0xff04: 0x6c262620, 0xff05: 0x6c16f420, 0xff06: 0x6c16ec20, 0xff07: 0x6c251c20, + 0xff08: 0x6c16d420, 0xff09: 0x6c15e220, 0xff0a: 0x6c1a9620, 0xff0b: 0x42b8c420, + 0xff0c: 0x6c209220, 0xff0d: 0x42dbb420, 0xff0e: 0x6c16ea20, 0xff0f: 0x6c168620, + 0xff10: 0x6c271420, 0xff11: 0x6c2ea420, 0xff12: 0x6c2f1420, 0xff13: 0x6c170020, + 0xff14: 0x6c31a420, 0xff15: 0x6c164620, 0xff16: 0x6c165620, 0xff17: 0x6c003a20, + 0xff18: 0x6c126e20, 0xff19: 0x6c166220, 0xff1a: 0x6c2bc620, 0xff1b: 0x6c1dfe20, + 0xff1c: 0x6c207020, 0xff1d: 0x6c0dec20, 0xff1e: 0x6c0e1420, 0xff1f: 0x6c10fa20, + 0xff20: 0x6c0fe420, 0xff21: 0x6c161820, 0xff22: 0x6c007620, 0xff23: 0x6c142c20, + 0xff24: 0x42f1f620, 0xff25: 0x6c138820, 0xff26: 0x6c131420, 0xff27: 0x6c12c420, + 0xff28: 0x6c122e20, 0xff29: 0x6c1ed820, 0xff2a: 0x6c080620, 0xff2b: 0x6c190a20, + 0xff2c: 0x6c07aa20, 0xff2d: 0x6c0a9c20, 0xff2e: 0x6c15b620, 0xff2f: 0x43155420, + 0xff30: 0x6c082020, 0xff31: 0x6c0dfc20, 0xff32: 0x6c0ef020, 0xff33: 0x6c099820, + 0xff34: 0x6c095620, 0xff35: 0x6c161e20, 0xff36: 0x6c162020, 0xff37: 0x6c164020, + 0xff38: 0x6c182620, 0xff39: 0x6c185a20, 0xff3a: 0x6c164c20, 0xff3b: 0x6c165820, + 0xff3c: 0x6c165a20, 0xff3d: 0x6c165c20, 0xff3e: 0x6c166020, 0xff3f: 0x6c18c020, + // Block 0x3fd, offset 0xff40 + 0xff40: 0x6c16cc20, 0xff41: 0x6c0a3a20, 0xff42: 0x6c1c6220, 0xff43: 0x6c163a20, + 0xff44: 0x6c228020, 0xff45: 0x6c24f620, 0xff46: 0x6c2e7420, 0xff47: 0x6c2ffc20, + 0xff48: 0x6c16a620, 0xff49: 0x6c314820, 0xff4a: 0x6c166620, 0xff4b: 0x42cd8c20, + 0xff4c: 0x42d6ee20, 0xff4d: 0x6c2cf620, 0xff4e: 0x6c110220, 0xff4f: 0x6c16ba20, + 0xff50: 0x6c1dba20, 0xff51: 0x6c110820, 0xff52: 0x6c16bc20, 0xff53: 0x6c16be20, + 0xff54: 0x42e91220, 0xff55: 0x42f39420, 0xff56: 0x6c16c220, 0xff57: 0x6c16c420, + 0xff58: 0x6c2cdc20, 0xff59: 0x6c16c620, 0xff5a: 0x6c16c820, 0xff5b: 0x43269420, + 0xff5c: 0x6c16ae20, 0xff5d: 0x6c16b020, 0xff5e: 0x6c00ac20, 0xff5f: 0x6c16b220, + 0xff60: 0x6c16b420, 0xff61: 0x43155420, 0xff62: 0x6c16b620, 0xff63: 0x6c110420, + 0xff64: 0x6c110620, 0xff65: 0x42d75c20, 0xff66: 0x6c16c020, 0xff67: 0x6c235e20, + 0xff68: 0x6c168a20, 0xff69: 0x6c1a1220, 0xff6a: 0x6c10fa20, 0xff6b: 0x6c169420, + 0xff6c: 0x6c169620, 0xff6d: 0x6c169820, 0xff6e: 0x6c238e20, 0xff6f: 0x6c278420, + 0xff70: 0x6c27c420, 0xff71: 0x6c169e20, 0xff72: 0x6c16a220, 0xff73: 0x6c2f0420, + 0xff74: 0x6c166420, 0xff75: 0x6c168e20, 0xff76: 0x6c255020, 0xff77: 0x6c2d9a20, + 0xff78: 0x6c2ecc20, 0xff79: 0x6c1d1a20, 0xff7a: 0x6c163e20, 0xff7b: 0x6c164220, + 0xff7c: 0x6c164820, 0xff7d: 0x6c10e820, 0xff7e: 0x6c164a20, 0xff7f: 0x6c207020, + // Block 0x3fe, offset 0xff80 + 0xff80: 0x6c22e020, 0xff81: 0x6c165220, 0xff82: 0x6c297e20, 0xff83: 0x6c165e20, + 0xff84: 0x6c163420, 0xff85: 0x6c1f2a20, 0xff86: 0x6c2e9a20, 0xff87: 0x6c162220, + 0xff88: 0x42cef620, 0xff89: 0x6c154020, 0xff8a: 0x6c162420, 0xff8b: 0x6c162620, + 0xff8c: 0x6c162820, 0xff8d: 0x6c162a20, 0xff8e: 0x6c162c20, 0xff8f: 0x6c128220, + 0xff90: 0x6c168820, 0xff91: 0x6c16fa20, 0xff92: 0x6c1dce20, 0xff93: 0x6c161420, + 0xff94: 0x6c166a20, 0xff95: 0x6c1bde20, 0xff96: 0x6c21cc20, 0xff97: 0x6c167820, + 0xff98: 0x6c161620, 0xff99: 0x6c1d6020, 0xff9a: 0x6c053820, 0xff9b: 0x6c161820, + 0xff9c: 0x6c163020, 0xff9d: 0x6c15fc20, 0xff9e: 0x6c15fe20, 0xff9f: 0x6c160020, + 0xffa0: 0x6c006e20, 0xffa1: 0x6c160220, 0xffa2: 0x6c160420, 0xffa3: 0x6c0f7620, + 0xffa4: 0x6c160620, 0xffa5: 0x6c160a20, 0xffa6: 0x6c1da420, 0xffa7: 0x6c160c20, + 0xffa8: 0x6c160e20, 0xffa9: 0x6c161020, 0xffaa: 0x6c161220, 0xffab: 0x6c106620, + 0xffac: 0x6c0f8820, 0xffad: 0x6c193020, 0xffae: 0x6c167220, 0xffaf: 0x42e93020, + 0xffb0: 0x6c29ca20, 0xffb1: 0x6c167a20, 0xffb2: 0x6c167c20, 0xffb3: 0x6c167e20, + 0xffb4: 0x6c166e20, 0xffb5: 0x6c167020, 0xffb6: 0x6c167620, 0xffb7: 0x6c161a20, + 0xffb8: 0x6c02b020, 0xffb9: 0x6c162e20, 0xffba: 0x42e58020, 0xffbb: 0x6c229820, + 0xffbc: 0x6c08f220, 0xffbd: 0x6c09c020, 0xffbe: 0x6c0e7a20, 0xffbf: 0x6c086620, + // Block 0x3ff, offset 0xffc0 + 0xffc0: 0x6c0c3420, 0xffc1: 0x6c0fde20, 0xffc2: 0x6c0dde20, 0xffc3: 0x6c102420, + 0xffc4: 0x6c0dd820, 0xffc5: 0x6c105420, 0xffc6: 0x6c140e20, 0xffc7: 0x6c2ce020, + 0xffc8: 0x6c070420, 0xffc9: 0x6c071a20, 0xffca: 0x6c05f620, 0xffcb: 0x6c028220, + 0xffcc: 0x6c181a20, 0xffcd: 0x42ab8020, 0xffce: 0x43f41c20, 0xffcf: 0x43f41e20, + 0xffd0: 0x6c0f0a20, 0xffd1: 0x43f42220, 0xffd2: 0x6c0be420, 0xffd3: 0x43f42620, + 0xffd4: 0x43f42820, 0xffd5: 0x42a3bc20, 0xffd6: 0x6c0ea020, 0xffd7: 0x6c012a20, + 0xffd8: 0x6c169a20, 0xffd9: 0x6c0b4420, 0xffda: 0x6c0aa220, 0xffdb: 0x6c131a20, + 0xffdc: 0x6c153e20, 0xffdd: 0x6c0bf420, 0xffde: 0x6c00ce20, 0xffdf: 0x43f43e20, + 0xffe0: 0x430c2420, 0xffe1: 0x43f44220, 0xffe2: 0x6c0a3420, 0xffe3: 0x43f44620, + 0xffe4: 0x43f44820, 0xffe5: 0x6c009e20, 0xffe6: 0x6c0fd420, 0xffe7: 0x43f44e20, + 0xffe8: 0x43f45020, 0xffe9: 0x43f45220, 0xffea: 0x6c120620, 0xffeb: 0x6c08bc20, + 0xffec: 0x6c036620, 0xffed: 0x6c0f3220, 0xffee: 0x4321bc20, 0xffef: 0x6c16a020, + 0xfff0: 0x6c12f820, 0xfff1: 0x6c0cd820, 0xfff2: 0x6c14e020, 0xfff3: 0x6c138a20, + 0xfff4: 0x6c04c820, 0xfff5: 0x6c121820, 0xfff6: 0x6c02be20, 0xfff7: 0x6c0e1820, + 0xfff8: 0x6c038e20, 0xfff9: 0x6c135220, 0xfffa: 0x6c143220, 0xfffb: 0x6c0cec20, + 0xfffc: 0x6c1b9c20, 0xfffd: 0x6c022a20, 0xfffe: 0x6c025c20, 0xffff: 0x6c0d3820, + // Block 0x400, offset 0x10000 + 0x10000: 0x6c0ec020, 0x10001: 0x6c12c020, 0x10002: 0x6c03a620, 0x10003: 0x6c0a2220, + 0x10004: 0x6c116220, 0x10005: 0x6c023c20, 0x10006: 0x6c0a2620, 0x10007: 0x6c033220, + 0x10008: 0x6c093220, 0x10009: 0x42e45620, 0x1000a: 0x6c0de420, 0x1000b: 0x6c123420, + 0x1000c: 0x6c093420, 0x1000d: 0x6c089a20, 0x1000e: 0x6c03ba20, 0x1000f: 0x6c157420, + 0x10010: 0x6c0cc420, 0x10011: 0x6c09e220, 0x10012: 0x6c01dc20, 0x10013: 0x6c0f5e20, + 0x10014: 0x6c074020, 0x10015: 0x6c108220, 0x10016: 0x6c0c4220, 0x10017: 0x6c16c220, + 0x10018: 0x6c270220, 0x10019: 0x6c11f620, 0x1001a: 0x6c0a2c20, 0x1001b: 0x6c093820, + 0x1001c: 0x6c09a620, 0x1001d: 0x4304f220, 0x1001e: 0x4304f220, 0x1001f: 0x6c0ea420, + 0x10020: 0x6c02cc20, 0x10021: 0x6c08aa20, 0x10022: 0x6c013020, 0x10023: 0x6c04e820, + 0x10024: 0x6c12bc20, 0x10025: 0x6c0d3e20, 0x10026: 0x431f6c20, 0x10027: 0x6c009e20, + 0x10028: 0x6c10ca20, 0x10029: 0x6c04aa20, 0x1002a: 0x6c12be20, 0x1002b: 0x6c056a20, + 0x1002c: 0x4885dc20, 0x1002d: 0x6c036820, + 0x10030: 0x6c135c20, 0x10031: 0x6c185420, 0x10032: 0x6c0ca420, 0x10033: 0x429f0020, + 0x10034: 0x6c09c420, 0x10035: 0x6c182c20, 0x10036: 0x6c155820, 0x10037: 0x6c094620, + 0x10038: 0x6c02be20, 0x10039: 0x42aaaa20, 0x1003a: 0x6c199620, 0x1003b: 0x42abc420, + 0x1003c: 0x6c0f0a20, 0x1003d: 0x6c133620, 0x1003e: 0x6c014020, 0x1003f: 0x6c144a20, + // Block 0x401, offset 0x10040 + 0x10040: 0x6c1b0820, 0x10041: 0x42b65020, 0x10042: 0x42bda420, 0x10043: 0x42bdb220, + 0x10044: 0x6c07b020, 0x10045: 0x6c1cb620, 0x10046: 0x6c1d2c20, 0x10047: 0x6c0b2e20, + 0x10048: 0x6c154820, 0x10049: 0x6c0d3820, 0x1004a: 0x42c2c020, 0x1004b: 0x6c0ec020, + 0x1004c: 0x6c0da620, 0x1004d: 0x6c1e5820, 0x1004e: 0x6c1e2c20, 0x1004f: 0x42c8a420, + 0x10050: 0x6c1eca20, 0x10051: 0x6c0be420, 0x10052: 0x6c16e220, 0x10053: 0x6c141020, + 0x10054: 0x6c0aee20, 0x10055: 0x6c210220, 0x10056: 0x6c082020, 0x10057: 0x6c162420, + 0x10058: 0x42ddb620, 0x10059: 0x6c08d420, 0x1005a: 0x6c033220, 0x1005b: 0x6c109020, + 0x1005c: 0x6c093220, 0x1005d: 0x42ef4e20, 0x1005e: 0x6c094e20, 0x1005f: 0x6c11f020, + 0x10060: 0x6c0ea020, 0x10061: 0x42e8e220, 0x10062: 0x42ea0c20, 0x10063: 0x6c020820, + 0x10064: 0x42ec3a20, 0x10065: 0x6c243820, 0x10066: 0x6c012a20, 0x10067: 0x6c0bf220, + 0x10068: 0x6c0eec20, 0x10069: 0x42ee9420, 0x1006a: 0x6c0e7e20, 0x1006b: 0x42f19820, + 0x1006c: 0x42f56220, 0x1006d: 0x6c0c4220, 0x1006e: 0x42f8f620, 0x1006f: 0x6c26c220, + 0x10070: 0x6c16c220, 0x10071: 0x42fe7c20, 0x10072: 0x6c093820, 0x10073: 0x6c070220, + 0x10074: 0x6c01ec20, 0x10075: 0x430ef220, 0x10076: 0x6c2aee20, 0x10077: 0x6c132020, + 0x10078: 0x6c08aa20, 0x10079: 0x6c0ed820, 0x1007a: 0x6c0a3420, 0x1007b: 0x6c0c0220, + 0x1007c: 0x6c013020, 0x1007d: 0x6c0dec20, 0x1007e: 0x6c154e20, 0x1007f: 0x6c04e820, + // Block 0x402, offset 0x10080 + 0x10080: 0x6c1ede20, 0x10081: 0x6c0d3e20, 0x10082: 0x6c155020, 0x10083: 0x6c2d5020, + 0x10084: 0x43233220, 0x10085: 0x4324ec20, 0x10086: 0x432cf820, 0x10087: 0x6c10ca20, + 0x10088: 0x6c153e20, 0x10089: 0x432fb620, 0x1008a: 0x6c04aa20, 0x1008b: 0x43301620, + 0x1008c: 0x6c12be20, 0x1008d: 0x43362420, 0x1008e: 0x6c319820, 0x1008f: 0x48509420, + 0x10090: 0x48508820, 0x10091: 0x4867aa20, 0x10092: 0x44773a20, 0x10093: 0x44803020, + 0x10094: 0x44807220, 0x10095: 0x48a49220, 0x10096: 0x48b9a020, 0x10097: 0x48fda620, + 0x10098: 0x433e8620, 0x10099: 0x433f1c20, + // Block 0x403, offset 0x100c0 + 0x100c1: 0x4002ba20, 0x100c2: 0x4003e020, 0x100c3: 0x4004ea20, + 0x100c4: 0x4027de20, 0x100c5: 0x4004ec20, 0x100c6: 0x4004e620, 0x100c7: 0x4003d220, + 0x100c8: 0x4003f420, 0x100c9: 0x4003f620, 0x100ca: 0x4004d820, 0x100cb: 0x40093820, + 0x100cc: 0x40024020, 0x100cd: 0x40021a20, 0x100ce: 0x4002e420, 0x100cf: 0x4004e220, + 0x100d0: 0x4029cc20, 0x100d1: 0x4029ce20, 0x100d2: 0x4029d020, 0x100d3: 0x4029d220, + 0x100d4: 0x4029d420, 0x100d5: 0x4029d620, 0x100d6: 0x4029d820, 0x100d7: 0x4029da20, + 0x100d8: 0x4029dc20, 0x100d9: 0x4029de20, 0x100da: 0x40026c20, 0x100db: 0x40026220, + 0x100dc: 0x40094020, 0x100dd: 0x40094220, 0x100de: 0x40094420, 0x100df: 0x4002c420, + 0x100e0: 0x4004d620, 0x100e1: 0x002bde88, 0x100e2: 0x002c0a88, 0x100e3: 0x002c3a88, + 0x100e4: 0x002c6288, 0x100e5: 0x002c9888, 0x100e6: 0x002d0888, 0x100e7: 0x002d2288, + 0x100e8: 0x002d6888, 0x100e9: 0x002d9a88, 0x100ea: 0x002dcc88, 0x100eb: 0x002dfe88, + 0x100ec: 0x002e2288, 0x100ed: 0x002e8288, 0x100ee: 0x002e9e88, 0x100ef: 0x002ee288, + 0x100f0: 0x002f2c88, 0x100f1: 0x002f5688, 0x100f2: 0x002f7a88, 0x100f3: 0x002fe688, + 0x100f4: 0x00302c88, 0x100f5: 0x00306c88, 0x100f6: 0x0030be88, 0x100f7: 0x0030e288, + 0x100f8: 0x0030f688, 0x100f9: 0x00310088, 0x100fa: 0x00312a88, 0x100fb: 0x4003f820, + 0x100fc: 0x4003d220, 0x100fd: 0x4003fa20, 0x100fe: 0x40062420, 0x100ff: 0x40021620, + // Block 0x404, offset 0x10100 + 0x10100: 0x40061e20, 0x10101: 0x402bde20, 0x10102: 0x402c0a20, 0x10103: 0x402c3a20, + 0x10104: 0x402c6220, 0x10105: 0x402c9820, 0x10106: 0x402d0820, 0x10107: 0x402d2220, + 0x10108: 0x402d6820, 0x10109: 0x402d9a20, 0x1010a: 0x402dcc20, 0x1010b: 0x402dfe20, + 0x1010c: 0x402e2220, 0x1010d: 0x402e8220, 0x1010e: 0x402e9e20, 0x1010f: 0x402ee220, + 0x10110: 0x402f2c20, 0x10111: 0x402f5620, 0x10112: 0x402f7a20, 0x10113: 0x402fe620, + 0x10114: 0x40302c20, 0x10115: 0x40306c20, 0x10116: 0x4030be20, 0x10117: 0x4030e220, + 0x10118: 0x4030f620, 0x10119: 0x40310020, 0x1011a: 0x40312a20, 0x1011b: 0x4003fc20, + 0x1011c: 0x40094820, 0x1011d: 0x4003fe20, 0x1011e: 0x40094c20, 0x1011f: 0x00041883, + 0x10120: 0x00041a83, 0x10121: 0x40030420, 0x10122: 0x4004a420, 0x10123: 0x4004a620, + 0x10124: 0x40025c20, 0x10125: 0x00023e92, 0x10126: 0xca3c3601, 0x10127: 0xc64d3281, + 0x10128: 0xc71d3281, 0x10129: 0xc7dd3601, 0x1012a: 0xc8c43281, 0x1012b: 0xc9793281, + 0x1012c: 0xc6e83281, 0x1012d: 0xc8af3281, 0x1012e: 0xca1d3281, 0x1012f: 0xc8483601, + 0x10130: 0x0027d692, 0x10131: 0xc6533281, 0x10132: 0xc7233281, 0x10133: 0xc7f23601, + 0x10134: 0xc8ca3281, 0x10135: 0xc97f3281, 0x10136: 0xc6663281, 0x10137: 0xc7363601, + 0x10138: 0xc8143601, 0x10139: 0xc8dd3281, 0x1013a: 0xc9923601, 0x1013b: 0xc67f3601, + 0x1013c: 0xc7583601, 0x1013d: 0xc8363601, 0x1013e: 0xc8f63601, 0x1013f: 0xc9af3601, + // Block 0x405, offset 0x10140 + 0x10140: 0xc69c3601, 0x10141: 0xc7753601, 0x10142: 0xc85d3601, 0x10143: 0xc9133601, + 0x10144: 0xc9d13601, 0x10145: 0xc6ac3281, 0x10146: 0xc7853281, 0x10147: 0xc8703281, + 0x10148: 0xc9233281, 0x10149: 0xc9e13281, 0x1014a: 0xc6ca3601, 0x1014b: 0xc7a33601, + 0x1014c: 0xc88e3601, 0x1014d: 0xc9413601, 0x1014e: 0xc9ff3601, 0x1014f: 0xc6e23281, + 0x10150: 0xc7bb3281, 0x10151: 0xc8a93281, 0x10152: 0xc9593281, 0x10153: 0xca173281, + 0x10154: 0xc6ee3281, 0x10155: 0xc8b53281, 0x10156: 0xca233281, 0x10157: 0xc6f73281, + 0x10158: 0xc7c43281, 0x10159: 0xc8be3281, 0x1015a: 0xc9623281, 0x1015b: 0xca2c3281, + 0x1015c: 0xc7113601, 0x1015d: 0xca453ae1, 0x1015e: 0xa0012812, 0x1015f: 0xa0012912, + 0x10160: 0x4063a620, 0x10161: 0x4062ac20, 0x10162: 0x4062ae20, 0x10163: 0x40646820, + 0x10164: 0x4062b020, 0x10165: 0x40646c20, 0x10166: 0x40646e20, 0x10167: 0x4062b220, + 0x10168: 0x4062b420, 0x10169: 0x4062b620, 0x1016a: 0x40647420, 0x1016b: 0x40647620, + 0x1016c: 0x40647820, 0x1016d: 0x40647a20, 0x1016e: 0x40647c20, 0x1016f: 0x40647e20, + 0x10170: 0x4062e020, 0x10171: 0x4062b820, 0x10172: 0x4062ba20, 0x10173: 0x4062bc20, + 0x10174: 0x4062ee20, 0x10175: 0x4062be20, 0x10176: 0x4062c020, 0x10177: 0x4062c220, + 0x10178: 0x4062c420, 0x10179: 0x4062c620, 0x1017a: 0x4062c820, 0x1017b: 0x4062ca20, + 0x1017c: 0x4062cc20, 0x1017d: 0x4062ce20, 0x1017e: 0x4062d020, + // Block 0x406, offset 0x10180 + 0x10182: 0x4063a820, 0x10183: 0x4063aa20, + 0x10184: 0x4063ac20, 0x10185: 0x4063ae20, 0x10186: 0x4063b020, 0x10187: 0x4063b220, + 0x1018a: 0x4063b420, 0x1018b: 0x4063b620, + 0x1018c: 0x4063b820, 0x1018d: 0x4063ba20, 0x1018e: 0x4063bc20, 0x1018f: 0x4063be20, + 0x10192: 0x4063c020, 0x10193: 0x4063c220, + 0x10194: 0x4063c420, 0x10195: 0x4063c620, 0x10196: 0x4063c820, 0x10197: 0x4063ca20, + 0x1019a: 0x4063cc20, 0x1019b: 0x4063ce20, + 0x1019c: 0x4063d020, + 0x101a0: 0x4027dc20, 0x101a1: 0x4027e020, 0x101a2: 0x40094620, 0x101a3: 0x40021220, + 0x101a4: 0x40094a20, 0x101a5: 0x4027e220, 0x101a6: 0x40280820, + 0x101a8: 0x400d3220, 0x101a9: 0x40084420, 0x101aa: 0x40084820, 0x101ab: 0x40084620, + 0x101ac: 0x40084a20, 0x101ad: 0x400e6e20, 0x101ae: 0x400ec420, + 0x101b9: 0xa0000000, 0x101ba: 0xa0000000, 0x101bb: 0xa0000000, + 0x101bc: 0x4027ae20, 0x101bd: 0x4027b020, 0x101be: 0x00000285, 0x101bf: 0x2bfffe85, + // Block 0x407, offset 0x101c0 + 0x101c0: 0xe0003d0b, 0x101c1: 0xe0003cf3, 0x101c2: 0xe0003cf7, 0x101c3: 0xe0003cff, + 0x101c4: 0xe0003d0f, 0x101c5: 0xe0003d03, 0x101c6: 0xe0003d13, 0x101c7: 0xe0003cfb, + 0x101c8: 0xe0003d07, + 0x101d0: 0x02bf2e86, 0x101d1: 0x02a7de86, + // Block 0x408, offset 0x10200 + 0x10200: 0x429c7a20, 0x10201: 0x6c036a20, 0x10202: 0x429c8220, 0x10203: 0x48024420, + 0x10204: 0x429ec020, 0x10205: 0x6c12f820, 0x10206: 0x429f7620, 0x10207: 0x42a00420, + 0x10208: 0x42a0f420, 0x10209: 0x6c124e20, 0x1020a: 0x6c0cd820, 0x1020b: 0x6c0d3420, + 0x1020c: 0x44693c20, 0x1020d: 0x480c7420, 0x1020e: 0x6c14e020, 0x1020f: 0x6c182020, + 0x10210: 0x42a2c820, 0x10211: 0x6c050a20, 0x10212: 0x480a3820, 0x10213: 0x44697220, + 0x10214: 0x42a2ce20, 0x10215: 0x6c07a420, 0x10216: 0x480a9620, 0x10217: 0x6c0ada20, + 0x10218: 0x6c184020, 0x10219: 0x429d9820, 0x1021a: 0x6c0fea20, 0x1021b: 0x6c185420, + 0x1021c: 0x4923be20, 0x1021d: 0x6c186820, 0x1021e: 0x6c0b6220, 0x1021f: 0x4469be20, + 0x10220: 0x6c073a20, 0x10221: 0x42a48c20, 0x10222: 0x6c02bc20, 0x10223: 0x42a4ee20, + 0x10224: 0x446a2a20, 0x10225: 0x6c155820, 0x10226: 0x6c138a20, 0x10227: 0x6c04c820, + 0x10228: 0x6c094620, 0x10229: 0x6c13ba20, 0x1022a: 0x6c18c620, 0x1022b: 0x6c142c20, + 0x1022c: 0x6c18e820, 0x1022d: 0x6c121820, 0x1022e: 0x6c118020, 0x1022f: 0x6c0d4820, + 0x10230: 0x42a6fa20, 0x10231: 0x6c047c20, 0x10232: 0x6c047c20, 0x10233: 0x6c047c20, + 0x10234: 0x48145820, 0x10235: 0x6c023e20, 0x10236: 0x6c042020, 0x10237: 0x6c191020, + 0x10238: 0x4816c620, 0x10239: 0x6c047e20, 0x1023a: 0x6c090020, 0x1023b: 0x42a80c20, + 0x1023c: 0x42a93c20, 0x1023d: 0x6c042220, 0x1023e: 0x6c0f4020, 0x1023f: 0x6c098c20, + // Block 0x409, offset 0x10240 + 0x10240: 0x6c195220, 0x10241: 0x42a9ec20, 0x10242: 0x6c0ff020, 0x10243: 0x6c055c20, + 0x10244: 0x6c198220, 0x10245: 0x6c0c9e20, 0x10246: 0x6c0c9e20, 0x10247: 0x6c199620, + 0x10248: 0x6c040020, 0x10249: 0x42ab6620, 0x1024a: 0x42ab8420, 0x1024b: 0x6c1a2620, + 0x1024c: 0x6c0e1820, 0x1024d: 0x42ae2e20, 0x1024e: 0x42aca220, 0x1024f: 0x6c133420, + 0x10250: 0x6c0c3420, 0x10251: 0x6c0ce420, 0x10252: 0x6c0ade20, 0x10253: 0x6c0b0220, + 0x10254: 0x42b01a20, 0x10255: 0x6c056220, 0x10256: 0x42b06420, 0x10257: 0x6c13be20, + 0x10258: 0x42b15820, 0x10259: 0x4829c820, 0x1025a: 0x6c116c20, 0x1025b: 0x6c0f2620, + 0x1025c: 0x42b20c20, 0x1025d: 0x6c0d7620, 0x1025e: 0x6c14b820, 0x1025f: 0x6c1ace20, + 0x10260: 0x482d5020, 0x10261: 0x482dd420, 0x10262: 0x42b3d820, 0x10263: 0x42b43620, + 0x10264: 0x42b44e20, 0x10265: 0x42b3b020, 0x10266: 0x6c12cc20, 0x10267: 0x446ddc20, + 0x10268: 0x446df820, 0x10269: 0x42b61020, 0x1026a: 0x6c1b3420, 0x1026b: 0x6c1b3420, + 0x1026c: 0x48339020, 0x1026d: 0x6c1b5c20, 0x1026e: 0x42b7b020, 0x1026f: 0x6c10fa20, + 0x10270: 0x6c1b7620, 0x10271: 0x48363020, 0x10272: 0x6c097e20, 0x10273: 0x6c0a6220, + 0x10274: 0x6c101820, 0x10275: 0x6c1b8420, 0x10276: 0x446f0220, 0x10277: 0x6c0fc220, + 0x10278: 0x6c1b9c20, 0x10279: 0x42b98020, 0x1027a: 0x42b91a20, 0x1027b: 0x483bc820, + 0x1027c: 0x42ba8620, 0x1027d: 0x483bcc20, 0x1027e: 0x42badc20, 0x1027f: 0x42bad620, + // Block 0x40a, offset 0x10280 + 0x10280: 0x42baf820, 0x10281: 0x6c0a1420, 0x10282: 0x42bbc420, 0x10283: 0x44705e20, + 0x10284: 0x6c0e0220, 0x10285: 0x42bc5020, 0x10286: 0x6c140620, 0x10287: 0x42bcd220, + 0x10288: 0x4470c420, 0x10289: 0x48430620, 0x1028a: 0x4470f820, 0x1028b: 0x42bd6020, + 0x1028c: 0x42bd6620, 0x1028d: 0x6c0a2820, 0x1028e: 0x6c16de20, 0x1028f: 0x49472420, + 0x10290: 0x6c1c6e20, 0x10291: 0x48466220, 0x10292: 0x48466220, 0x10293: 0x6c286820, + 0x10294: 0x42be4420, 0x10295: 0x42be4420, 0x10296: 0x44718e20, 0x10297: 0x48657020, + 0x10298: 0x48c3b420, 0x10299: 0x6c056620, 0x1029a: 0x6c0ebc20, 0x1029b: 0x4471c620, + 0x1029c: 0x42bf3420, 0x1029d: 0x6c10f020, 0x1029e: 0x6c088020, 0x1029f: 0x42bff220, + 0x102a0: 0x6c1d0220, 0x102a1: 0x44727420, 0x102a2: 0x44723820, 0x102a3: 0x6c022a20, + 0x102a4: 0x484da820, 0x102a5: 0x6c109620, 0x102a6: 0x6c08cc20, 0x102a7: 0x6c06c020, + 0x102a8: 0x6c0b2e20, 0x102a9: 0x6c06c020, 0x102aa: 0x42c2f420, 0x102ab: 0x6c0d3820, + 0x102ac: 0x6c05da20, 0x102ad: 0x6c133820, 0x102ae: 0x42c35e20, 0x102af: 0x42c3bc20, + 0x102b0: 0x6c0ec020, 0x102b1: 0x6c1dac20, 0x102b2: 0x6c0bdc20, 0x102b3: 0x6c1dc620, + 0x102b4: 0x42c4ba20, 0x102b5: 0x6c13cc20, 0x102b6: 0x6c1df220, 0x102b7: 0x6c1e2620, + 0x102b8: 0x48561820, 0x102b9: 0x6c120820, 0x102ba: 0x42c5f820, 0x102bb: 0x6c092c20, + 0x102bc: 0x6c0cf620, 0x102bd: 0x42c7c820, 0x102be: 0x4857e220, 0x102bf: 0x42c84420, + // Block 0x40b, offset 0x102c0 + 0x102c0: 0x42c78a20, 0x102c1: 0x6c014820, 0x102c2: 0x44745c20, 0x102c3: 0x6c145420, + 0x102c4: 0x42c8fc20, 0x102c5: 0x42c93a20, 0x102c6: 0x42c8ee20, 0x102c7: 0x4474d820, + 0x102c8: 0x6c12c020, 0x102c9: 0x6c057620, 0x102ca: 0x48601420, 0x102cb: 0x42cbc620, + 0x102cc: 0x6c0a2e20, 0x102cd: 0x6c1f1420, 0x102ce: 0x44763220, 0x102cf: 0x6c0a2220, + 0x102d0: 0x44761020, 0x102d1: 0x4475c820, 0x102d2: 0x6c141620, 0x102d3: 0x6c183c20, + 0x102d4: 0x6c07a620, 0x102d5: 0x42cd3820, 0x102d6: 0x6c27ec20, 0x102d7: 0x4487b220, + 0x102d8: 0x6c16e220, 0x102d9: 0x6c141020, 0x102da: 0x42ce4220, 0x102db: 0x6c1f7020, + 0x102dc: 0x6c094a20, 0x102dd: 0x48678620, 0x102de: 0x44769220, 0x102df: 0x42cff420, + 0x102e0: 0x6c1f8c20, 0x102e1: 0x42d0a420, 0x102e2: 0x6c116220, 0x102e3: 0x4868da20, + 0x102e4: 0x42d11c20, 0x102e5: 0x42d03e20, 0x102e6: 0x42d22820, 0x102e7: 0x44773a20, + 0x102e8: 0x42d28420, 0x102e9: 0x42d34620, 0x102ea: 0x42d3d420, 0x102eb: 0x42d55020, + 0x102ec: 0x486d4620, 0x102ed: 0x6c051e20, 0x102ee: 0x44783020, 0x102ef: 0x6c08d220, + 0x102f0: 0x48714e20, 0x102f1: 0x6c20f820, 0x102f2: 0x44789c20, 0x102f3: 0x42d6e420, + 0x102f4: 0x42d73e20, 0x102f5: 0x6c082020, 0x102f6: 0x6c028c20, 0x102f7: 0x48751a20, + 0x102f8: 0x483a1620, 0x102f9: 0x4875f420, 0x102fa: 0x6c11ec20, 0x102fb: 0x48797820, + 0x102fc: 0x6c014c20, 0x102fd: 0x42d99a20, 0x102fe: 0x42d8ce20, 0x102ff: 0x42da2c20, + // Block 0x40c, offset 0x10300 + 0x10300: 0x6c113620, 0x10301: 0x6c023c20, 0x10302: 0x6c162420, 0x10303: 0x6c06dc20, + 0x10304: 0x6c0b3a20, 0x10305: 0x6c21a620, 0x10306: 0x487a3c20, 0x10307: 0x42da6820, + 0x10308: 0x6c06de20, 0x10309: 0x6c21d220, 0x1030a: 0x447a6620, 0x1030b: 0x6c08d420, + 0x1030c: 0x42dd8e20, 0x1030d: 0x487da220, 0x1030e: 0x6c21a820, 0x1030f: 0x6c0ec820, + 0x10310: 0x487ebc20, 0x10311: 0x487f1c20, 0x10312: 0x6c226020, 0x10313: 0x42e07220, + 0x10314: 0x6c109020, 0x10315: 0x6c228220, 0x10316: 0x447b2c20, 0x10317: 0x42e09420, + 0x10318: 0x6c07bc20, 0x10319: 0x42e0ee20, 0x1031a: 0x6c0e2820, 0x1031b: 0x480a4a20, + 0x1031c: 0x42e28a20, 0x1031d: 0x4884c620, 0x1031e: 0x42e33820, 0x1031f: 0x48875620, + 0x10320: 0x6c22f620, 0x10321: 0x6c094e20, 0x10322: 0x42e4a020, 0x10323: 0x488c1020, + 0x10324: 0x6c07c020, 0x10325: 0x42e52a20, 0x10326: 0x488e6a20, 0x10327: 0x48902820, + 0x10328: 0x6c236220, 0x10329: 0x6c018420, 0x1032a: 0x447d5820, 0x1032b: 0x42e74a20, + 0x1032c: 0x447d7020, 0x1032d: 0x447d7020, 0x1032e: 0x42e88e20, 0x1032f: 0x6c238c20, + 0x10330: 0x42e8e220, 0x10331: 0x42e90a20, 0x10332: 0x6c23a020, 0x10333: 0x447e3620, + 0x10334: 0x42ea4820, 0x10335: 0x48986c20, 0x10336: 0x42ea7c20, 0x10337: 0x48992420, + 0x10338: 0x6c007620, 0x10339: 0x48433e20, 0x1033a: 0x42ec2020, 0x1033b: 0x489f4220, + 0x1033c: 0x489f7020, 0x1033d: 0x48a08820, 0x1033e: 0x447ff820, 0x1033f: 0x44801020, + // Block 0x40d, offset 0x10340 + 0x10340: 0x6c0eec20, 0x10341: 0x48a1e620, 0x10342: 0x48a1e420, 0x10343: 0x48a23220, + 0x10344: 0x48a26620, 0x10345: 0x6c24a820, 0x10346: 0x6c0b4220, 0x10347: 0x6c0b4220, + 0x10348: 0x42ee9420, 0x10349: 0x44807220, 0x1034a: 0x6c24c820, 0x1034b: 0x44808c20, + 0x1034c: 0x44812c20, 0x1034d: 0x48a83a20, 0x1034e: 0x42f09c20, 0x1034f: 0x6c250420, + 0x10350: 0x42f19820, 0x10351: 0x4481c620, 0x10352: 0x48ac4c20, 0x10353: 0x6c0cc420, + 0x10354: 0x48ad3420, 0x10355: 0x48ad8a20, 0x10356: 0x6c131a20, 0x10357: 0x42f3d620, + 0x10358: 0x44825e20, 0x10359: 0x6c074020, 0x1035a: 0x42f49420, 0x1035b: 0x6c01ac20, + 0x1035c: 0x48b2f820, 0x1035d: 0x48b54e20, 0x1035e: 0x48b54e20, 0x1035f: 0x42f5dc20, + 0x10360: 0x44840420, 0x10361: 0x48b75620, 0x10362: 0x6c261820, 0x10363: 0x6c0e6a20, + 0x10364: 0x44844e20, 0x10365: 0x48b90020, 0x10366: 0x6c268420, 0x10367: 0x44854020, + 0x10368: 0x42f9d020, 0x10369: 0x42f9c620, 0x1036a: 0x6c03c020, 0x1036b: 0x48bf0c20, + 0x1036c: 0x6c26bc20, 0x1036d: 0x44860220, 0x1036e: 0x6c26d220, 0x1036f: 0x42fc0420, + 0x10370: 0x42fc8a20, 0x10371: 0x44866820, 0x10372: 0x48c45020, 0x10373: 0x48c48e20, + 0x10374: 0x4486b220, 0x10375: 0x48c5b220, 0x10376: 0x42fef420, 0x10377: 0x48c67c20, + 0x10378: 0x42ff2a20, 0x10379: 0x42fff420, 0x1037a: 0x6c093820, 0x1037b: 0x48c9b420, + 0x1037c: 0x48ca4620, 0x1037d: 0x4300c020, 0x1037e: 0x48cb5020, 0x1037f: 0x6c27d620, + // Block 0x40e, offset 0x10380 + 0x10380: 0x4866be20, 0x10381: 0x4487aa20, 0x10382: 0x6c009220, 0x10383: 0x43020620, + 0x10384: 0x44881620, 0x10385: 0x6c281420, 0x10386: 0x42b56a20, 0x10387: 0x48cf4e20, + 0x10388: 0x48cf6a20, 0x10389: 0x48672620, 0x1038a: 0x48673820, 0x1038b: 0x6c286820, + 0x1038c: 0x43040820, 0x1038d: 0x6c08ea20, 0x1038e: 0x4488d620, 0x1038f: 0x43052220, + 0x10390: 0x6c00a420, 0x10391: 0x6c091e20, 0x10392: 0x42a56620, 0x10393: 0x6c01e420, + 0x10394: 0x6c13e220, 0x10395: 0x6c020c20, 0x10396: 0x6c050020, 0x10397: 0x48d67820, + 0x10398: 0x6c095620, 0x10399: 0x43063a20, 0x1039a: 0x4306c620, 0x1039b: 0x43075a20, + 0x1039c: 0x6c28f220, 0x1039d: 0x6c292820, 0x1039e: 0x4307ce20, 0x1039f: 0x6c0ea420, + 0x103a0: 0x4306a620, 0x103a1: 0x6c03f820, 0x103a2: 0x6c04e220, 0x103a3: 0x6c07cc20, + 0x103a4: 0x48d86c20, 0x103a5: 0x48dad620, 0x103a6: 0x48d9aa20, 0x103a7: 0x448a5620, + 0x103a8: 0x4309e220, 0x103a9: 0x4309e620, 0x103aa: 0x430a2c20, 0x103ab: 0x48e79420, + 0x103ac: 0x430ac820, 0x103ad: 0x48de5820, 0x103ae: 0x448aba20, 0x103af: 0x448ac220, + 0x103b0: 0x48df6220, 0x103b1: 0x48e1a420, 0x103b2: 0x448ad620, 0x103b3: 0x6c041420, + 0x103b4: 0x6c163c20, 0x103b5: 0x6c29de20, 0x103b6: 0x430cd220, 0x103b7: 0x6c29e620, + 0x103b8: 0x430d1020, 0x103b9: 0x430e1c20, 0x103ba: 0x430dc420, 0x103bb: 0x430ef220, + 0x103bc: 0x430e5020, 0x103bd: 0x430ed620, 0x103be: 0x430f0c20, 0x103bf: 0x448bae20, + // Block 0x40f, offset 0x103c0 + 0x103c0: 0x430fc220, 0x103c1: 0x43100220, 0x103c2: 0x448bf220, 0x103c3: 0x4310c020, + 0x103c4: 0x6c008220, 0x103c5: 0x48ecce20, 0x103c6: 0x4311ae20, 0x103c7: 0x4311bc20, + 0x103c8: 0x448c6a20, 0x103c9: 0x4311f420, 0x103ca: 0x44697620, 0x103cb: 0x48f15c20, + 0x103cc: 0x48f2cc20, 0x103cd: 0x448d7c20, 0x103ce: 0x448d8e20, 0x103cf: 0x6c0bfe20, + 0x103d0: 0x6c154e20, 0x103d1: 0x6c1ede20, 0x103d2: 0x6c2be420, 0x103d3: 0x48f95020, + 0x103d4: 0x6c035620, 0x103d5: 0x6c2c1220, 0x103d6: 0x431a3620, 0x103d7: 0x6c03ca20, + 0x103d8: 0x48fe5e20, 0x103d9: 0x48100820, 0x103da: 0x6c2c5420, 0x103db: 0x431b7820, + 0x103dc: 0x431be020, 0x103dd: 0x4811bc20, 0x103de: 0x431da820, 0x103df: 0x6c155020, + 0x103e0: 0x490ba420, 0x103e1: 0x490bda20, 0x103e2: 0x43212820, 0x103e3: 0x4321e220, + 0x103e4: 0x43222220, 0x103e5: 0x490e5c20, 0x103e6: 0x43223620, 0x103e7: 0x43247020, + 0x103e8: 0x4325ae20, 0x103e9: 0x4325b020, 0x103ea: 0x4324f820, 0x103eb: 0x4327f220, + 0x103ec: 0x43282a20, 0x103ed: 0x4917f420, 0x103ee: 0x6c024a20, 0x103ef: 0x44932a20, + 0x103f0: 0x432b6e20, 0x103f1: 0x491aee20, 0x103f2: 0x4493cc20, 0x103f3: 0x432d8620, + 0x103f4: 0x42bb6420, 0x103f5: 0x432e4620, 0x103f6: 0x49228a20, 0x103f7: 0x49243420, + 0x103f8: 0x4494dc20, 0x103f9: 0x4494ec20, 0x103fa: 0x432fc020, 0x103fb: 0x49281420, + 0x103fc: 0x44956420, 0x103fd: 0x49292c20, 0x103fe: 0x43301620, 0x103ff: 0x43301620, + // Block 0x410, offset 0x10400 + 0x10400: 0x43305220, 0x10401: 0x492b6c20, 0x10402: 0x6c03d020, 0x10403: 0x44966620, + 0x10404: 0x43325220, 0x10405: 0x43334e20, 0x10406: 0x43338420, 0x10407: 0x4333fc20, + 0x10408: 0x44979c20, 0x10409: 0x49366020, 0x1040a: 0x43362420, 0x1040b: 0x43388020, + 0x1040c: 0x4339fa20, 0x1040d: 0x44999c20, 0x1040e: 0x4499da20, 0x1040f: 0x433ace20, + 0x10410: 0x49419c20, 0x10411: 0x4499f020, 0x10412: 0x49420a20, 0x10413: 0x49441c20, + 0x10414: 0x49452220, 0x10415: 0x6c145a20, 0x10416: 0x449aac20, 0x10417: 0x6c316420, + 0x10418: 0x433dfc20, 0x10419: 0x433e0a20, 0x1041a: 0x433e1e20, 0x1041b: 0x433e2c20, + 0x1041c: 0x6c125e20, 0x1041d: 0x494c0020, + // Block 0x411, offset 0x10440 + 0x10440: 0xe00014bd, 0x10441: 0x0033b483, 0x10442: 0x00339688, 0x10443: 0x0033a288, + 0x10444: 0x0033c288, 0x10445: 0x0033fc88, 0x10446: 0xca490071, 0x10447: 0x00343688, + 0x10448: 0x00344688, 0x10449: 0x00349a88, 0x1044a: 0x0034e488, 0x1044b: 0x00356288, + 0x1044c: 0x00356a88, 0x1044d: 0xe00014cf, 0x1044e: 0x00357a88, 0x1044f: 0x00365488, + 0x10450: 0xc0090041, 0x10451: 0x00335288, 0x10452: 0x00335a88, 0x10453: 0xc0130092, + 0x10454: 0x00338a88, 0x10455: 0xc34c0041, 0x10456: 0xc01c0071, 0x10457: 0xc0200071, + 0x10458: 0xc0250041, 0x10459: 0x00343e88, 0x1045a: 0xc0370092, 0x1045b: 0x00348488, + 0x1045c: 0x0034a888, 0x1045d: 0x0034ba88, 0x1045e: 0xc02e0071, 0x1045f: 0x00350e88, + 0x10460: 0x00352888, 0x10461: 0x00353a88, 0x10462: 0x00354c88, 0x10463: 0xc03e00f1, + 0x10464: 0x0035ac88, 0x10465: 0x0035b488, 0x10466: 0x00360288, 0x10467: 0xc0440071, + 0x10468: 0x00365c88, 0x10469: 0x00366688, 0x1046a: 0x00367488, 0x1046b: 0xc0480071, + 0x1046c: 0x00368e88, 0x1046d: 0xc04c0071, 0x1046e: 0x0036b888, 0x1046f: 0x0036c488, + 0x10470: 0xc0060041, 0x10471: 0x40335220, 0x10472: 0x40335a20, 0x10473: 0xc0100092, + 0x10474: 0x40338a20, 0x10475: 0xc3490041, 0x10476: 0xc01a0071, 0x10477: 0xc01e0071, + 0x10478: 0xc0220041, 0x10479: 0x40343e20, 0x1047a: 0xc0340092, 0x1047b: 0x40348420, + 0x1047c: 0x4034a820, 0x1047d: 0x4034ba20, 0x1047e: 0xc02c0071, 0x1047f: 0x40350e20, + // Block 0x412, offset 0x10480 + 0x10480: 0x40352820, 0x10481: 0x40353a20, 0x10482: 0x40354c20, 0x10483: 0xc03a00f1, + 0x10484: 0x4035ac20, 0x10485: 0x4035b420, 0x10486: 0x40360220, 0x10487: 0xc0420071, + 0x10488: 0x40365c20, 0x10489: 0x40366620, 0x1048a: 0x40367420, 0x1048b: 0xc0460071, + 0x1048c: 0x40368e20, 0x1048d: 0xc04a0071, 0x1048e: 0x4036b820, 0x1048f: 0x4036c420, + 0x10490: 0xe00014ba, 0x10491: 0x4033b420, 0x10492: 0x40339620, 0x10493: 0x4033a220, + 0x10494: 0x4033c220, 0x10495: 0x4033fc20, 0x10496: 0xca470071, 0x10497: 0x40343620, + 0x10498: 0x40344620, 0x10499: 0x40349a20, 0x1049a: 0x4034e420, 0x1049b: 0x40356220, + 0x1049c: 0x40356a20, 0x1049d: 0xe00014cc, 0x1049e: 0x40357a20, 0x1049f: 0x40365420, + 0x104a0: 0x0035e088, 0x104a1: 0x4035e020, 0x104a2: 0x00369e88, 0x104a3: 0x40369e20, + 0x104a4: 0x0036ce88, 0x104a5: 0x4036ce20, 0x104a6: 0x0036d688, 0x104a7: 0x4036d620, + 0x104a8: 0x0036ea88, 0x104a9: 0x4036ea20, 0x104aa: 0x0036e088, 0x104ab: 0x4036e020, + 0x104ac: 0x0036f488, 0x104ad: 0x4036f420, 0x104ae: 0x0036fc88, 0x104af: 0x4036fc20, + 0x104b0: 0x00370488, 0x104b1: 0x40370420, 0x104b2: 0x00370c88, 0x104b3: 0x40370c20, + 0x104b4: 0xc0500131, 0x104b5: 0xc04e0131, 0x104b6: 0x00371c88, 0x104b7: 0x40371c20, + 0x104b8: 0x0035a488, 0x104b9: 0x4035a420, 0x104ba: 0x0035fa88, 0x104bb: 0x4035fa20, + 0x104bc: 0x0035f288, 0x104bd: 0x4035f220, 0x104be: 0x0035e888, 0x104bf: 0x4035e820, + // Block 0x413, offset 0x104c0 + 0x104c0: 0x00352088, 0x104c1: 0x40352020, 0x104c2: 0x40070620, 0x104c3: 0xae608302, + 0x104c4: 0xae605f02, 0x104c5: 0xae602a02, 0x104c6: 0xae602202, 0x104c7: 0xae605f02, + 0x104c8: 0xa0000000, 0x104c9: 0xa0000000, 0x104ca: 0x00341c88, 0x104cb: 0x40341c20, + 0x104cc: 0x00369688, 0x104cd: 0x40369620, 0x104ce: 0x00353088, 0x104cf: 0x40353020, + 0x104d0: 0xe00014b7, 0x104d1: 0xe00014b4, 0x104d2: 0x00336a88, 0x104d3: 0x40336a20, + 0x104d4: 0x00337a88, 0x104d5: 0x40337a20, 0x104d6: 0x0033dc88, 0x104d7: 0x4033dc20, + 0x104d8: 0x0033aa88, 0x104d9: 0x4033aa20, 0x104da: 0x00345888, 0x104db: 0x40345820, + 0x104dc: 0x00347888, 0x104dd: 0x40347820, 0x104de: 0x00347088, 0x104df: 0x40347020, + 0x104e0: 0x00346888, 0x104e1: 0x40346820, 0x104e2: 0x0034ca88, 0x104e3: 0x4034ca20, + 0x104e4: 0x0034dc88, 0x104e5: 0x4034dc20, 0x104e6: 0x00351888, 0x104e7: 0x40351820, + 0x104e8: 0x00372688, 0x104e9: 0x40372620, 0x104ea: 0x00354488, 0x104eb: 0x40354420, + 0x104ec: 0x00355888, 0x104ed: 0x40355820, 0x104ee: 0x00359c83, 0x104ef: 0x40359c20, + 0x104f0: 0x00359a88, 0x104f1: 0x40359a20, 0x104f2: 0x0035cc88, 0x104f3: 0x4035cc20, + 0x104f4: 0x00360e88, 0x104f5: 0x40360e20, 0x104f6: 0x00362a88, 0x104f7: 0x40362a20, + 0x104f8: 0x00363a88, 0x104f9: 0x40363a20, 0x104fa: 0x0035d488, 0x104fb: 0x4035d420, + 0x104fc: 0x00364488, 0x104fd: 0x40364420, 0x104fe: 0x00364c88, 0x104ff: 0x40364c20, + // Block 0x414, offset 0x10500 + 0x10500: 0xa0000000, 0x10501: 0xa0000000, 0x10502: 0xa0000000, 0x10503: 0xa0000000, + 0x10504: 0xa0000000, 0x10505: 0xa0000000, 0x10506: 0xa0000000, 0x10507: 0xa0000000, + 0x10508: 0xa0000000, 0x10509: 0x40020020, 0x1050a: 0x40020220, 0x1050b: 0x40020420, + 0x1050c: 0x40020620, 0x1050d: 0x40020820, 0x1050e: 0xa0000000, 0x1050f: 0xa0000000, + 0x10510: 0xa0000000, 0x10511: 0xa0000000, 0x10512: 0xa0000000, 0x10513: 0xa0000000, + 0x10514: 0xa0000000, 0x10515: 0xa0000000, 0x10516: 0xa0000000, 0x10517: 0xa0000000, + 0x10518: 0xa0000000, 0x10519: 0xa0000000, 0x1051a: 0xa0000000, 0x1051b: 0xa0000000, + 0x1051c: 0xa0000000, 0x1051d: 0xa0000000, 0x1051e: 0xa0000000, 0x1051f: 0xa0000000, + 0x10520: 0x40021220, 0x10521: 0x4002ba20, 0x10522: 0x4003e020, 0x10523: 0x4004ea20, + 0x10524: 0x4027de20, 0x10525: 0x4004ec20, 0x10526: 0x4004e620, 0x10527: 0x4003d220, + 0x10528: 0x4003f420, 0x10529: 0x4003f620, 0x1052a: 0x4004d820, 0x1052b: 0x40093820, + 0x1052c: 0x40024020, 0x1052d: 0x40021a20, 0x1052e: 0x4002e420, 0x1052f: 0x4004e220, + 0x10530: 0x4029cc20, 0x10531: 0x4029ce20, 0x10532: 0x4029d020, 0x10533: 0x4029d220, + 0x10534: 0x4029d420, 0x10535: 0x4029d620, 0x10536: 0x4029d820, 0x10537: 0x4029da20, + 0x10538: 0x4029dc20, 0x10539: 0x4029de20, 0x1053a: 0x40026c20, 0x1053b: 0x40026220, + 0x1053c: 0x40094020, 0x1053d: 0x40094220, 0x1053e: 0x40094420, 0x1053f: 0x4002c420, + // Block 0x415, offset 0x10540 + 0x10540: 0x4004d620, 0x10541: 0xca5027b1, 0x10542: 0x002c0a88, 0x10543: 0x002c3a88, + 0x10544: 0x002c6288, 0x10545: 0xc39e0be1, 0x10546: 0x002d0888, 0x10547: 0x002d2288, + 0x10548: 0x002d6888, 0x10549: 0x002d9a88, 0x1054a: 0x002dcc88, 0x1054b: 0xca4b3b11, + 0x1054c: 0xc0030002, 0x1054d: 0x002e8288, 0x1054e: 0x002e9e88, 0x1054f: 0xc3a30b21, + 0x10550: 0x002f2c88, 0x10551: 0x002f5688, 0x10552: 0x002f7a88, 0x10553: 0x002fe688, + 0x10554: 0x00302c88, 0x10555: 0xc3900b21, 0x10556: 0x0030be88, 0x10557: 0x0030e288, + 0x10558: 0x0030f688, 0x10559: 0x00310088, 0x1055a: 0x00312a88, 0x1055b: 0x4003f820, + 0x1055c: 0x4004e420, 0x1055d: 0x4003fa20, 0x1055e: 0x40062420, 0x1055f: 0x40021620, + 0x10560: 0x40061e20, 0x10561: 0xca4d27b1, 0x10562: 0x402c0a20, 0x10563: 0x402c3a20, + 0x10564: 0x402c6220, 0x10565: 0xc39c0be1, 0x10566: 0x402d0820, 0x10567: 0x402d2220, + 0x10568: 0x402d6820, 0x10569: 0x402d9a20, 0x1056a: 0x402dcc20, 0x1056b: 0x402dfe20, + 0x1056c: 0xc0000002, 0x1056d: 0x402e8220, 0x1056e: 0x402e9e20, 0x1056f: 0xc3a00b21, + 0x10570: 0x402f2c20, 0x10571: 0x402f5620, 0x10572: 0x402f7a20, 0x10573: 0x402fe620, + 0x10574: 0x40302c20, 0x10575: 0xc38d0b21, 0x10576: 0x4030be20, 0x10577: 0x4030e220, + 0x10578: 0x4030f620, 0x10579: 0x40310020, 0x1057a: 0x40312a20, 0x1057b: 0x4003fc20, + 0x1057c: 0x40094820, 0x1057d: 0x4003fe20, 0x1057e: 0x40094c20, 0x1057f: 0xa0000000, + // Block 0x416, offset 0x10580 + 0x10580: 0xe0000983, 0x10581: 0xe0000980, 0x10582: 0xe00008fb, 0x10583: 0xe00008f8, + 0x10584: 0xe000097d, 0x10585: 0xe000097a, 0x10586: 0xe0000a38, 0x10587: 0xe0000a35, + 0x10588: 0xe0000a3e, 0x10589: 0xe0000a3b, 0x1058a: 0xe0000a4a, 0x1058b: 0xe0000a47, + 0x1058c: 0xe0000a44, 0x1058d: 0xe0000a41, 0x1058e: 0xe0000a86, 0x1058f: 0xe0000a83, + 0x10590: 0x002c62a3, 0x10591: 0x402c6221, 0x10592: 0xe0000b46, 0x10593: 0xe0000b43, + 0x10594: 0xe0000aee, 0x10595: 0xe0000aeb, 0x10596: 0xe0000b2c, 0x10597: 0xe0000b29, + 0x10598: 0x00320cc3, 0x10599: 0x40320c22, 0x1059a: 0xe0000b1a, 0x1059b: 0xe0000b17, + 0x1059c: 0xe0000bb8, 0x1059d: 0xe0000bb5, 0x1059e: 0xe0000bb2, 0x1059f: 0xe0000baf, + 0x105a0: 0xe0000bc4, 0x105a1: 0xe0000bc1, 0x105a2: 0xe0000bca, 0x105a3: 0xe0000bc7, + 0x105a4: 0xe0000bee, 0x105a5: 0xe0000beb, 0x105a6: 0xe0000c1b, 0x105a7: 0xe0000c18, + 0x105a8: 0xe0000c51, 0x105a9: 0xe0000c4e, 0x105aa: 0xe0000c60, 0x105ab: 0xe0000c5d, + 0x105ac: 0xe0000c31, 0x105ad: 0xe0000c2e, 0x105ae: 0xe0000c5a, 0x105af: 0xe0000c57, + 0x105b0: 0xe0000c54, 0x105b1: 0x402da220, 0x105b2: 0xf0000a0a, 0x105b3: 0xf0000404, + 0x105b4: 0xe0000c8a, 0x105b5: 0xe0000c87, 0x105b6: 0xe0000c9f, 0x105b7: 0xe0000c9c, + 0x105b8: 0x402f5621, 0x105b9: 0xe0000ccc, 0x105ba: 0xe0000cc9, 0x105bb: 0xe0000cd8, + 0x105bc: 0xe0000cd5, 0x105bd: 0xe0000cd2, 0x105be: 0xe0000ccf, 0x105bf: 0xe0000d04, + // Block 0x417, offset 0x105c0 + 0x105c0: 0xca533b21, 0x105c1: 0xca553b21, 0x105c2: 0xca573b21, 0x105c3: 0xca593b21, + 0x105c4: 0xca5b3b21, 0x105c5: 0xca5d3b21, 0x105c6: 0xca5f3b21, 0x105c7: 0xca613b21, + 0x105c8: 0xca633b21, 0x105c9: 0xca653b21, 0x105ca: 0xca673b21, 0x105cb: 0xca693b21, + 0x105cc: 0xca6b3b21, 0x105cd: 0xca6d3b21, 0x105ce: 0xca6f3b21, 0x105cf: 0xca713b21, + 0x105d0: 0xca733b21, 0x105d1: 0xca753b21, 0x105d2: 0xca773b21, 0x105d3: 0xca793b21, + 0x105d4: 0xca7b3b21, 0x105d5: 0xca7d3b21, 0x105d6: 0xca7f3b21, 0x105d7: 0xca813b21, + 0x105d8: 0xca833b21, 0x105d9: 0xca853b21, 0x105da: 0xca873b21, 0x105db: 0xca8b3b21, + 0x105dc: 0xca913b21, 0x105dd: 0xca953b21, 0x105de: 0xca973b21, 0x105df: 0xca993b21, + 0x105e0: 0xca9b3b21, 0x105e1: 0xca9d3b21, 0x105e2: 0xca9f3b21, 0x105e3: 0xca9f3b21, + 0x105e4: 0xe000413a, 0x105e5: 0xe000413d, 0x105e6: 0xe0004140, 0x105e7: 0xe0004143, + 0x105e8: 0xe0004146, 0x105e9: 0xe000414a, 0x105ea: 0xe000414d, 0x105eb: 0xca893b21, + 0x105ec: 0xca8d3b21, 0x105ed: 0xca8f3b21, 0x105ee: 0xca933b21, 0x105ef: 0xe0004151, + 0x105f0: 0xe0004154, 0x105f1: 0xe0004157, 0x105f2: 0xe000415a, 0x105f3: 0xe000415d, + 0x105f4: 0xa0000000, 0x105f5: 0xa0000000, 0x105f6: 0xcaa43b81, 0x105f7: 0xcaa63bb1, + 0x105f8: 0x40501220, 0x105f9: 0x40501420, 0x105fa: 0x40501620, 0x105fb: 0xcaa13b51, + 0x105fc: 0x40501a20, 0x105fd: 0x40501c20, 0x105fe: 0x40501e20, 0x105ff: 0x40502020, + // Block 0x418, offset 0x10600 + 0x10600: 0x40502220, 0x10601: 0xcaa83bb1, 0x10602: 0x40502620, 0x10603: 0x40502820, + 0x10604: 0xcaaa3bb1, 0x10605: 0x40502c20, 0x10606: 0x40503020, 0x10607: 0x40503420, + 0x10608: 0xadc11802, 0x10609: 0xadc11b02, 0x1060a: 0xadc11c02, 0x1060b: 0xadc11a02, + 0x1060c: 0xa0005f02, 0x1060d: 0xadc11d02, 0x1060e: 0xadc11402, 0x1060f: 0xadc11502, + 0x10610: 0xadc11702, 0x10611: 0xadc11602, 0x10612: 0x82092817, 0x10613: 0xa0000000, + 0x10614: 0x40032620, 0x10615: 0x40032820, 0x10616: 0x4002ac20, 0x10617: 0x4027bc20, + 0x10618: 0xe000409a, 0x10619: 0x4005be20, 0x1061a: 0x4005c020, 0x1061b: 0x4027f620, + 0x1061c: 0x404fea20, 0x1061d: 0xadc11902, + 0x10620: 0xe00001b5, 0x10621: 0xe0000249, 0x10622: 0xe0000361, 0x10623: 0xe000043b, + 0x10624: 0xe0000510, 0x10625: 0xe00005da, 0x10626: 0xe00006a5, 0x10627: 0xe000074d, + 0x10628: 0xe00007f9, 0x10629: 0xe000089e, + 0x10630: 0xe00001b8, 0x10631: 0xe000024c, 0x10632: 0xe0000364, 0x10633: 0xe000043e, + 0x10634: 0xe0000513, 0x10635: 0xe00005dd, 0x10636: 0xe00006a8, 0x10637: 0xe0000750, + 0x10638: 0xe00007fc, 0x10639: 0xe00008a1, + // Block 0x419, offset 0x10640 + 0x10642: 0x40439020, 0x10643: 0x40439220, + 0x10645: 0x40437020, 0x10646: 0x40437220, 0x10647: 0x40437420, + 0x10648: 0x40437620, 0x10649: 0x40437820, 0x1064a: 0x40437a20, 0x1064b: 0x40437c20, + 0x1064c: 0x40438020, 0x1064e: 0x40438420, 0x1064f: 0x40438620, + 0x10650: 0x40438820, 0x10652: 0x40438a20, 0x10653: 0x40438c20, + 0x10654: 0x40438e20, 0x10655: 0x40439020, 0x10656: 0x40439220, 0x10657: 0x40439420, + 0x10658: 0x40439620, 0x10659: 0x40439820, 0x1065a: 0x40439a20, 0x1065b: 0x40439c20, + 0x1065c: 0x40439e20, 0x1065d: 0x4043a020, 0x1065e: 0x4043a220, 0x1065f: 0x4043a420, + 0x10660: 0x4043a620, 0x10661: 0x4043a820, 0x10662: 0x4043aa20, 0x10663: 0x4043ac20, + 0x10664: 0x4043ae20, 0x10665: 0x4043b020, 0x10666: 0x4043b220, 0x10667: 0x4043b420, + 0x10668: 0x4043b620, 0x1066a: 0x4043b820, 0x1066b: 0x4043ba20, + 0x1066c: 0x4043bc20, 0x1066d: 0x4043be20, 0x1066e: 0x4043c020, 0x1066f: 0x4043c220, + 0x10670: 0x4043c420, 0x10671: 0x4043c620, 0x10672: 0x4043c820, 0x10673: 0x4043d420, + 0x10675: 0x4043ca20, 0x10676: 0x4043cc20, 0x10677: 0x4043ce20, + 0x10678: 0x4043d020, 0x10679: 0x4043d220, + 0x1067c: 0xa070f102, 0x1067d: 0x4043d820, 0x1067e: 0x4043de20, 0x1067f: 0xc06a0311, + // Block 0x41a, offset 0x10680 + 0x10680: 0x4043e220, 0x10681: 0x4043e420, 0x10682: 0x4043e620, 0x10683: 0x4043e820, + 0x10684: 0x4043ea20, 0x10686: 0xc06c0341, 0x10687: 0x4043f220, + 0x10688: 0x4043f420, 0x1068a: 0xc0710311, 0x1068b: 0x4043f820, + 0x1068c: 0x4043fa20, 0x1068d: 0x820921fe, + 0x10695: 0x4043fe20, 0x10696: 0x40440020, + 0x1069e: 0x4043d620, + 0x106a0: 0x40437e20, 0x106a1: 0x40438220, 0x106a2: 0x4043ec20, 0x106a3: 0x4043ee20, + 0x106a6: 0xe0000182, 0x106a7: 0xe0000213, + 0x106a8: 0xe000032e, 0x106a9: 0xe0000408, 0x106aa: 0xe00004dd, 0x106ab: 0xe00005a7, + 0x106ac: 0xe0000672, 0x106ad: 0xe000071a, 0x106ae: 0xe00007c6, 0x106af: 0xe000086b, + 0x106b1: 0x40439420, 0x106b2: 0x40439620, + // Block 0x41b, offset 0x106c0 + 0x106c0: 0xf0000404, 0x106c1: 0xf0000404, 0x106c2: 0xf0000404, 0x106c3: 0xf0000404, + 0x106c4: 0xf0000404, 0x106c5: 0xf0000404, 0x106c6: 0xf0000404, 0x106c7: 0xf0000404, + 0x106c8: 0xf0000404, 0x106c9: 0xf0000404, 0x106ca: 0xf0000404, 0x106cb: 0xf0000404, + 0x106cc: 0xf0000404, 0x106cd: 0xf0000404, 0x106ce: 0xe000004c, 0x106cf: 0xe0000051, + 0x106d0: 0xe0000056, 0x106d1: 0xe000005b, 0x106d2: 0xe0000060, 0x106d3: 0xe0000065, + 0x106d4: 0xe000006a, 0x106d5: 0xe000006f, 0x106d6: 0xe0000083, 0x106d7: 0xe000008d, + 0x106d8: 0xe0000092, 0x106d9: 0xe0000097, 0x106da: 0xe000009c, 0x106db: 0xe00000a1, + 0x106dc: 0xe0000088, 0x106dd: 0xe0000074, 0x106de: 0xe000007c, + 0x106e0: 0xe0002c96, 0x106e1: 0xe0002ca6, 0x106e2: 0xe0002c9e, 0x106e3: 0xe0002cd6, + 0x106e4: 0xe0002caa, 0x106e5: 0xe0002cbe, 0x106e6: 0xe0002c9a, 0x106e7: 0xe0002cba, + 0x106e8: 0xe0002ca2, 0x106e9: 0xe0002cc6, 0x106ea: 0xe0002ce6, 0x106eb: 0xe0002cfa, + 0x106ec: 0xe0002cf6, 0x106ed: 0xe0002cee, 0x106ee: 0xe0002d22, 0x106ef: 0xe0002cda, + 0x106f0: 0xe0002ce2, 0x106f1: 0xe0002cf2, 0x106f2: 0xe0002cea, 0x106f3: 0xe0002d06, + 0x106f4: 0xe0002cce, 0x106f5: 0xe0002cfe, 0x106f6: 0xe0002d1a, 0x106f7: 0xe0002d0a, + 0x106f8: 0xf0000404, 0x106f9: 0xe0002cae, 0x106fa: 0xe0002cd2, 0x106fb: 0xf0000404, + 0x106fc: 0xe0002d02, 0x106fd: 0xe0002cb2, 0x106fe: 0xe0002d1e, 0x106ff: 0xe0002cca, + // Block 0x41c, offset 0x10700 + 0x10700: 0xe0008556, 0x10701: 0xe0008b49, 0x10703: 0xe0009a4a, + 0x10707: 0xe0005e27, + 0x10708: 0xe000871e, 0x10709: 0xe0006c4c, 0x1070a: 0xe0006ca0, 0x1070b: 0xe0009fed, + 0x1070d: 0xe0006789, + 0x10711: 0xe00098b6, + 0x10714: 0xe0009245, 0x10715: 0xe0006948, 0x10716: 0xe0007018, + 0x10718: 0xe0004c4a, 0x10719: 0xe0006618, + 0x1071e: 0xe00073be, 0x1071f: 0xe0008f07, + 0x10726: 0xe000665c, + 0x1072b: 0xe00075de, + 0x1072d: 0xe0008fe1, + 0x10730: 0xe0006771, 0x10731: 0xe0004a99, 0x10732: 0xe00049e6, + 0x10738: 0xe000a5b0, 0x10739: 0xe000532a, 0x1073b: 0xe0008e8f, + // Block 0x41d, offset 0x10740 + 0x10742: 0xe0007be3, 0x10743: 0xe0005214, + 0x10745: 0xe0004c4d, + 0x1074b: 0xe0009055, + 0x1074d: 0xe0006ad3, 0x1074e: 0xe000a418, 0x1074f: 0xe0009fe1, + 0x10756: 0xe0004b72, + 0x10758: 0xe00073c2, 0x10759: 0xe00083a6, + 0x1075d: 0xe0004c50, 0x1075e: 0xe0004554, 0x1075f: 0xe0007800, + 0x10767: 0xe0005708, + 0x1076b: 0xe00042b4, + 0x1076c: 0xe0004564, 0x1076d: 0xe0005621, + 0x10773: 0xe000820f, + 0x10776: 0xe000672d, 0x10777: 0xe0006c38, + 0x1077c: 0xe0008fdd, 0x1077e: 0xe000450c, + // Block 0x41e, offset 0x10780 + 0x10782: 0xe00057ab, + 0x10786: 0xe0005b9b, + 0x10788: 0xe00079b1, 0x1078b: 0xe0006ad6, + 0x1078c: 0xe0008459, 0x1078e: 0xe0007fc6, 0x1078f: 0xe0008026, + 0x10790: 0xe00080da, 0x10791: 0xe000808a, 0x10792: 0xe000a41b, + 0x10794: 0xe0007c58, 0x10795: 0xe0008b4d, + 0x10798: 0xe0005033, 0x10799: 0xe0005043, 0x1079b: 0xe0006ad9, + 0x1079e: 0xe00075a8, 0x1079f: 0xe0004f43, + 0x107a1: 0xe0005ebb, 0x107a2: 0xe000a13f, + 0x107a4: 0xe0004bc6, 0x107a5: 0xe000a18f, 0x107a6: 0xe00079db, + 0x107a8: 0xe000a381, 0x107ab: 0xe000a20e, + 0x107ac: 0xe0004695, 0x107ad: 0xe0008b51, 0x107ae: 0xe0005891, + 0x107b3: 0xe000630c, + 0x107b4: 0xe0008029, 0x107b6: 0xe000532e, + 0x107b9: 0xe0006226, 0x107ba: 0xe00084e6, + // Block 0x41f, offset 0x107c0 + 0x107c0: 0xe0007595, 0x107c1: 0xe00084ea, + 0x107c4: 0xe000998c, 0x107c6: 0xe0006807, 0x107c7: 0xe0004c53, + 0x107ca: 0xe0004fb7, 0x107cb: 0xe0004440, + 0x107cd: 0xe00085be, + 0x107d4: 0xe00085d2, 0x107d5: 0xe0006adc, 0x107d6: 0xe0009aab, 0x107d7: 0xe0008722, + 0x107d8: 0xe000678c, 0x107d9: 0xe0006e50, + 0x107dd: 0xe0005631, 0x107de: 0xe000852a, 0x107df: 0xe00094fc, + 0x107e1: 0xe000a8d7, 0x107e3: 0xe00054be, + 0x107e4: 0xe0005a04, 0x107e5: 0xe000845c, + 0x107ee: 0xe00041b7, + 0x107f0: 0xe0007727, 0x107f2: 0xe0008fe5, 0x107f3: 0xe00069c6, + 0x107f5: 0xe0007caf, 0x107f6: 0xe0004510, 0x107f7: 0xe0004443, + 0x107fb: 0xe0008582, + 0x107ff: 0xe0006458, + // Block 0x420, offset 0x10800 + 0x10800: 0xe0008e49, 0x10801: 0xe000504b, + 0x10809: 0xe000a143, 0x1080a: 0xe000845f, 0x1080b: 0xe0004fff, + 0x1080d: 0xe0007c5b, 0x1080e: 0xe000504e, 0x1080f: 0xe00066c1, + 0x10810: 0xe0006530, 0x10811: 0xe000a851, + 0x1082f: 0xe00064d4, + 0x10830: 0xe0004877, + 0x10834: 0xe0006324, 0x10836: 0xe0005a08, + 0x10838: 0xe00074bd, 0x1083a: 0xe0006adf, + 0x1083c: 0xe0006ae2, 0x1083d: 0xe0004160, + // Block 0x421, offset 0x10840 + 0x10842: 0xe0008c25, 0x10843: 0xe0008965, + 0x10846: 0xe0005332, 0x10847: 0xe000885f, + 0x10848: 0xe0009e62, 0x10849: 0xe0004cec, 0x1084b: 0xe00070ab, + 0x1084d: 0xe000819a, 0x1084e: 0xe0008862, 0x1084f: 0xe0008e92, + 0x10850: 0xe0008e71, 0x10851: 0xe0007fc9, 0x10853: 0xe00068a8, + 0x10854: 0xe0008af9, 0x10855: 0xe0009ff0, 0x10856: 0xe0009fb1, 0x10857: 0xe0009ad5, + 0x10859: 0xe00079b4, 0x1085a: 0xe000855a, 0x1085b: 0xe00068f4, + 0x1085c: 0xe000866e, 0x1085d: 0xe0004cef, 0x1085e: 0xe0005261, 0x1085f: 0xe0009cb6, + 0x10869: 0xe0009d60, 0x1086a: 0xe000a6f4, + 0x1086f: 0xe000785d, + 0x10870: 0xe00064d8, 0x10873: 0xe0004163, + 0x10876: 0xe000517b, + 0x10878: 0xe0004ae5, 0x10879: 0xe0004e6d, 0x1087a: 0xe0008969, 0x1087b: 0xe0008d73, + 0x1087c: 0xe0004c11, 0x1087d: 0xe000926f, 0x1087e: 0xe000855e, 0x1087f: 0xe0006ae5, + // Block 0x422, offset 0x10880 + 0x10881: 0xe00074c1, 0x10883: 0xe0004228, + 0x10884: 0xe00091ad, 0x10886: 0xe000586f, + 0x10888: 0xe00099a8, 0x10889: 0xe0004a0e, 0x1088a: 0xe0004afd, 0x1088b: 0xe0005a7c, + 0x1088d: 0xe00073ee, 0x1088f: 0xe0008e95, + 0x10891: 0xe0008212, + 0x10894: 0xe000607b, 0x10896: 0xe0005c70, 0x10897: 0xe0005675, + 0x10898: 0xe0009248, 0x1089a: 0xe000733d, 0x1089b: 0xe0004976, + 0x1089c: 0xe0008f0a, 0x1089d: 0xe0008402, + 0x108ae: 0xe0006033, 0x108af: 0xe000a772, + 0x108b2: 0xe0009189, + 0x108b5: 0xe0009a56, 0x108b6: 0xe00058dd, + 0x108bb: 0xe0009b9c, + 0x108bf: 0xe0009db4, + // Block 0x423, offset 0x108c0 + 0x108c1: 0xe000802c, 0x108c2: 0xe0004799, 0x108c3: 0xe0009778, + 0x108c4: 0xe00075ab, 0x108c5: 0xe0004cf2, + 0x108c9: 0xe0007c5e, 0x108ca: 0xe0008f51, + 0x108cc: 0xe00066ac, 0x108ce: 0xe0008ce9, 0x108cf: 0xe00070ae, + 0x108d0: 0xe0005d33, 0x108d1: 0xe0007f42, 0x108d3: 0xe0004699, + 0x108d4: 0xe000a299, 0x108d7: 0xe00070f0, + 0x108d8: 0xe000680a, 0x108da: 0xe0005ce8, 0x108db: 0xe0005fcc, + 0x108dd: 0xe000667c, 0x108df: 0xe0006ae8, + 0x108e0: 0xe000a335, 0x108e1: 0xe00074c5, 0x108e3: 0xe0007cb2, + 0x108ee: 0xe000718f, 0x108ef: 0xe000678f, + 0x108f0: 0xe000a577, 0x108f1: 0xe0004c56, 0x108f3: 0xe000648f, + 0x108f4: 0xe0009548, 0x108f5: 0xe0009eeb, 0x108f6: 0xe00072b5, + 0x108f8: 0xe0006731, 0x108fa: 0xe0007967, + 0x108fe: 0xe00069c9, + // Block 0x424, offset 0x10900 + 0x10900: 0xe00093e7, 0x10902: 0xe000661c, + 0x10905: 0xe0007385, 0x10906: 0xe0005895, + 0x10909: 0xe000938f, 0x1090b: 0xe0004446, + 0x1090d: 0xe000648c, 0x1090f: 0xe00072b9, + 0x10911: 0xe0006195, 0x10912: 0xe000550c, + 0x10914: 0xe0004ddb, 0x10916: 0xe000a1f6, + 0x10918: 0xe000547a, 0x10919: 0xe000a775, 0x1091a: 0xe0008405, + 0x1091c: 0xe00094a0, 0x1091e: 0xe000469d, 0x1091f: 0xe000924b, + 0x10921: 0xe0009393, 0x10922: 0xe0009650, 0x10923: 0xe00063e8, + 0x10924: 0xe00099ab, 0x10925: 0xe00049b6, 0x10926: 0xe0004e07, 0x10927: 0xe0008e05, + 0x10928: 0xe00044b2, 0x10929: 0xe000954c, 0x1092a: 0xe0007be6, 0x1092b: 0xe0005c74, + 0x1092c: 0xe0009afc, 0x1092d: 0xe0007e65, 0x1092e: 0xe000576c, + 0x10930: 0xe0005ce0, + 0x1093b: 0xe0007803, + // Block 0x425, offset 0x10940 + 0x10943: 0xe0007927, + 0x10944: 0xe00051cc, 0x10947: 0xe0004166, + 0x10948: 0xe00045a8, 0x10949: 0xe000819d, 0x1094a: 0xe000802f, + 0x1094e: 0xe0007e83, 0x1094f: 0xe0009db8, + 0x10953: 0xe0007637, + 0x10955: 0xe000a192, 0x10956: 0xe0009272, + 0x10958: 0xe0004288, 0x1095a: 0xe0008e98, + 0x1095c: 0xe0008b55, + 0x10960: 0xe0007ef2, 0x10962: 0xe0009721, + 0x10965: 0xe0004514, + 0x1096a: 0xe0009fe9, + 0x10970: 0xe0006f44, 0x10972: 0xe0007442, + 0x10974: 0xe0009988, 0x10975: 0xe0008b59, 0x10976: 0xe0007fcc, + 0x10978: 0xe0009c9b, + // Block 0x426, offset 0x10980 + 0x10980: 0xe0004b75, + 0x10985: 0xe0006792, + 0x1098b: 0xe00043fc, + 0x1098d: 0xe00063ec, + 0x10991: 0xe0004558, 0x10992: 0xe000a400, + 0x10994: 0xe0004671, 0x10996: 0xe00093eb, + 0x10998: 0xe0006bd8, 0x10999: 0xe000694b, 0x1099a: 0xe000a75a, 0x1099b: 0xe0007f9e, + 0x1099d: 0xe0009bc8, 0x1099e: 0xe0006b87, + 0x109a2: 0xe00041ba, + 0x109ac: 0xe00097fc, 0x109ad: 0xe0007f46, 0x109ae: 0xe0008d76, + 0x109b2: 0xe0007c61, 0x109b3: 0xe000896d, + 0x109b4: 0xe0004cf5, 0x109b5: 0xe0009433, 0x109b7: 0xe0006ca4, + 0x109bd: 0xe00087ae, 0x109be: 0xe00046a1, 0x109bf: 0xe000793f, + // Block 0x427, offset 0x109c0 + 0x109c2: 0xe0005c12, + 0x109c4: 0xe0009f15, 0x109c5: 0xe0004f53, + 0x109c9: 0xe00095e0, 0x109ca: 0xe0006e54, + 0x109cf: 0xe0006ca8, + 0x109d1: 0xe0004bc9, + 0x109d5: 0xe00066c5, 0x109d6: 0xe000a91f, + 0x109da: 0xe0005b9e, 0x109db: 0xe000510b, + 0x109de: 0xe00081a0, + 0x109e2: 0xe0009550, + 0x109e5: 0xe0007e9e, 0x109e6: 0xe0009862, 0x109e7: 0xe00073c6, + 0x109e9: 0xe000a093, + 0x109ec: 0xe0009724, 0x109ed: 0xe0009327, 0x109ee: 0xe0005679, + 0x109f5: 0xe0004400, + 0x109f9: 0xe0004169, 0x109fb: 0xe0006580, + 0x109fe: 0xe0007778, 0x109ff: 0xe0006aeb, + // Block 0x428, offset 0x10a00 + 0x10a00: 0xe0008408, 0x10a01: 0xe0008f55, 0x10a02: 0xe00052a1, 0x10a03: 0xe0009554, + 0x10a04: 0xe000790f, 0x10a06: 0xe00046a5, 0x10a07: 0xe000a2e9, + 0x10a09: 0xe0004570, 0x10a0b: 0xe000540a, + 0x10a10: 0xe0006a7f, 0x10a12: 0xe0008215, 0x10a13: 0xe00054ee, + 0x10a14: 0xe0008f0d, 0x10a15: 0xe0008cb6, 0x10a17: 0xe000843b, + 0x10a18: 0xe000918d, 0x10a1a: 0xe0005f80, 0x10a1b: 0xe000617a, + 0x10a1c: 0xe0005265, 0x10a1f: 0xe0006cac, + 0x10a21: 0xe0005b62, 0x10a22: 0xe0005913, + 0x10a24: 0xe0009eb3, 0x10a25: 0xe0008306, 0x10a27: 0xe00092eb, + 0x10a2a: 0xe0007fcf, 0x10a2b: 0xe000a493, + 0x10a31: 0xe0005b46, 0x10a32: 0xe0008865, 0x10a33: 0xe000934f, + 0x10a35: 0xe00072bd, 0x10a37: 0xe00058e0, + 0x10a39: 0xe00092ef, 0x10a3a: 0xe000519b, 0x10a3b: 0xe000547e, + 0x10a3c: 0xe000796b, + // Block 0x429, offset 0x10a40 + 0x10a40: 0xe0007d52, 0x10a41: 0xe000830a, 0x10a43: 0xe00080e6, + 0x10a44: 0xe000a385, 0x10a45: 0xe0009916, 0x10a46: 0xe0008cec, 0x10a47: 0xe000a87f, + 0x10a48: 0xe0006e58, 0x10a49: 0xe0004b01, 0x10a4b: 0xe0004f27, + 0x10a4c: 0xe0009bf4, 0x10a4d: 0xe0005fa0, 0x10a4e: 0xe0009c4a, + 0x10a52: 0xe00075ae, + 0x10a55: 0xe0007445, 0x10a57: 0xe0007a83, + 0x10a5a: 0xe0005482, + 0x10a5c: 0xe00056b5, + 0x10a62: 0xe0005037, + 0x10a65: 0xe00085b2, 0x10a67: 0xe0005217, + 0x10a68: 0xe0008971, 0x10a69: 0xe0005899, 0x10a6a: 0xe0008218, 0x10a6b: 0xe0009d4c, + 0x10a6c: 0xe000497a, 0x10a6d: 0xe0005c60, 0x10a6e: 0xe000a3e5, + 0x10a71: 0xe000497e, + 0x10a75: 0xe0006620, 0x10a76: 0xe0005051, 0x10a77: 0xe0004c59, + 0x10a78: 0xe0008975, + 0x10a7c: 0xe0004659, + // Block 0x42a, offset 0x10a80 + 0x10a80: 0xe0005054, + 0x10a86: 0xe00079ad, + 0x10a89: 0xe0007afb, 0x10a8a: 0xe000945d, + 0x10a8d: 0xe00087fa, 0x10a8f: 0xe0004749, + 0x10a92: 0xe0006036, 0x10a93: 0xe0004cf8, + 0x10a95: 0xe0005fa4, 0x10a97: 0xe0007f4a, + 0x10a98: 0xe0008299, + 0x10aa0: 0xe0004a59, 0x10aa3: 0xe000997f, + 0x10aa4: 0xe000814e, 0x10aa5: 0xe0005ff0, + 0x10aaa: 0xe0005f90, + 0x10aac: 0xe0005635, + 0x10ab0: 0xe0006ac3, 0x10ab1: 0xe000a496, 0x10ab2: 0xe000992e, + 0x10ab6: 0xe0007806, 0x10ab7: 0xe0005881, + 0x10abd: 0xe00059b4, + // Block 0x42b, offset 0x10ac0 + 0x10ac4: 0xe0009485, 0x10ac5: 0xe000487a, 0x10ac6: 0xe0008f59, + 0x10ac9: 0xe000589d, 0x10aca: 0xe0009684, 0x10acb: 0xe0008cef, + 0x10acc: 0xe0005cc8, 0x10acd: 0xe0005639, + 0x10ad2: 0xe000843e, + 0x10ad4: 0xe00093ef, + 0x10adb: 0xe0005cbc, + 0x10adc: 0xe0005cb8, 0x10add: 0xe00083f2, 0x10ade: 0xe000a922, + 0x10ae0: 0xe0004e70, 0x10ae1: 0xe0006548, + 0x10ae9: 0xe00060c4, + 0x10aed: 0xe0006ac7, + 0x10af0: 0xe000a63c, 0x10af1: 0xe0004449, 0x10af3: 0xe0005734, + 0x10af4: 0xe0006acb, 0x10af6: 0xe000a883, + 0x10af8: 0xe0009590, 0x10af9: 0xe0007ea1, 0x10afa: 0xe0009906, + 0x10afd: 0xe000a0c3, + // Block 0x42c, offset 0x10b00 + 0x10b00: 0xe000550f, 0x10b01: 0xe0008d79, 0x10b03: 0xe00084ee, + 0x10b06: 0xe000685c, 0x10b07: 0xe0008aa9, + 0x10b08: 0xe0007be9, 0x10b0a: 0xe000422c, + 0x10b0e: 0xe0006199, + 0x10b11: 0xe000a389, 0x10b13: 0xe0007e21, + 0x10b16: 0xe0008192, 0x10b17: 0xe00059b8, + 0x10b1d: 0xe00096d0, + 0x10b24: 0xe0009d24, 0x10b25: 0xe0006600, 0x10b26: 0xe00045a0, 0x10b27: 0xe00045a4, + 0x10b29: 0xe0005ceb, 0x10b2a: 0xe0006bdc, + 0x10b2e: 0xe0004ad5, + 0x10b30: 0xe0005512, 0x10b31: 0xe00093f3, 0x10b32: 0xe0004ed0, 0x10b33: 0xe000487d, + 0x10b36: 0xe0008c71, 0x10b37: 0xe0007174, + 0x10b38: 0xe0004e0b, 0x10b39: 0xe000930b, 0x10b3a: 0xe00085d5, 0x10b3b: 0xe00041e4, + // Block 0x42d, offset 0x10b40 + 0x10b43: 0xe0009694, + 0x10b44: 0xe000474d, 0x10b47: 0xe0009a26, + 0x10b49: 0xe0008e80, 0x10b4a: 0xe0006bc0, 0x10b4b: 0xe0004f2b, + 0x10b4c: 0xe00057e7, 0x10b4d: 0xe0008979, + 0x10b54: 0xe00094a4, 0x10b55: 0xe00069cc, 0x10b56: 0xe0006795, 0x10b57: 0xe00086d6, + 0x10b5a: 0xe0006b8a, 0x10b5b: 0xe000439c, + 0x10b5d: 0xe00062c0, 0x10b5e: 0xe000510e, 0x10b5f: 0xe00095b8, + 0x10b61: 0xe0006f64, + 0x10b69: 0xe00085c2, 0x10b6a: 0xe000897d, + 0x10b6f: 0xe0006798, + 0x10b72: 0xe000a0b7, + 0x10b74: 0xe0004479, 0x10b75: 0xe0009397, 0x10b77: 0xe0006c08, + 0x10b7a: 0xe0005d36, + 0x10b7d: 0xe0009eee, 0x10b7f: 0xe00096d3, + // Block 0x42e, offset 0x10b80 + 0x10b82: 0xe0004e73, 0x10b83: 0xe000a70f, + 0x10b87: 0xe0004f2f, + 0x10b88: 0xe0006584, 0x10b89: 0xe0005c27, + 0x10b8d: 0xe0004574, + 0x10b91: 0xe0008c74, 0x10b92: 0xe0004578, 0x10b93: 0xe0008441, + 0x10b97: 0xe00092f3, + 0x10b98: 0xe0005df5, 0x10b9b: 0xe0005934, + 0x10b9f: 0xe0004982, + 0x10ba0: 0xe000416c, 0x10ba3: 0xe00059bc, + 0x10ba4: 0xe0004f57, + 0x10ba9: 0xe0008cf2, 0x10baa: 0xe0005271, 0x10bab: 0xe0004594, + 0x10bac: 0xe0004cfb, 0x10bad: 0xe0009727, + 0x10bbe: 0xe000a1e6, + // Block 0x42f, offset 0x10bc0 + 0x10bc1: 0xe00046a9, 0x10bc3: 0xe00063a8, + 0x10bc5: 0xe0009a2a, 0x10bc7: 0xe0007f4e, + 0x10bc9: 0xe0005fa8, + 0x10bcc: 0xe0004e2f, 0x10bcd: 0xe00046ad, + 0x10bd2: 0xe0005cac, + 0x10bd5: 0xe000563d, 0x10bd6: 0xe0008062, + 0x10bd8: 0xe00042f4, 0x10bd9: 0xe0006138, 0x10bdb: 0xe000a7ba, + 0x10bdd: 0xe00073ca, 0x10bde: 0xe0005a91, 0x10bdf: 0xe0006039, + 0x10be0: 0xe0005c6c, 0x10be1: 0xe0009f18, 0x10be2: 0xe000701b, 0x10be3: 0xe00088e9, + 0x10be4: 0xe0004f5b, 0x10be6: 0xe000972a, + 0x10bf3: 0xe000a7be, + 0x10bf5: 0xe00058e3, + 0x10bf8: 0xe0004e0f, 0x10bfa: 0xe0008672, 0x10bfb: 0xe0004f03, + 0x10bfe: 0xe0004c5c, 0x10bff: 0xe00061e1, + // Block 0x430, offset 0x10c00 + 0x10c01: 0xe00061c5, 0x10c02: 0xe0005223, 0x10c03: 0xe000447c, + 0x10c05: 0xe0009e65, + 0x10c08: 0xe000a887, 0x10c0a: 0xe0004d97, + 0x10c0c: 0xe000a123, 0x10c0d: 0xe0009e68, 0x10c0f: 0xe0009e6b, + 0x10c10: 0xe00066c9, + 0x10c15: 0xe000694e, 0x10c16: 0xe000a54d, 0x10c17: 0xe0006858, + 0x10c19: 0xe00073f1, + 0x10c20: 0xe0008726, 0x10c21: 0xe0004b05, 0x10c23: 0xe0004380, + 0x10c27: 0xe000a365, + 0x10c2a: 0xe0006951, + 0x10c2f: 0xe000a6b8, + 0x10c31: 0xe0004e76, + 0x10c36: 0xe0004cfe, + 0x10c39: 0xe0009f89, + 0x10c3d: 0xe0007943, 0x10c3e: 0xe0009ddc, 0x10c3f: 0xe0005311, + // Block 0x431, offset 0x10c40 + 0x10c40: 0xe0004c5f, 0x10c41: 0xe0007599, 0x10c43: 0xe0009500, + 0x10c44: 0xe00085b6, 0x10c45: 0xe0006c84, 0x10c47: 0xe00073ce, + 0x10c48: 0xe0007c64, 0x10c49: 0xe000a81e, 0x10c4a: 0xe0006328, + 0x10c4d: 0xe0005e2b, + 0x10c51: 0xe0006954, 0x10c52: 0xe0008df9, 0x10c53: 0xe0009b00, + 0x10c54: 0xe000a339, 0x10c57: 0xe00051e4, + 0x10c5a: 0xe00062c4, + 0x10c5c: 0xe00066cd, 0x10c5e: 0xe00065c4, + 0x10c60: 0xe0008ad5, 0x10c61: 0xe000870a, + 0x10c66: 0xe0004b5d, + 0x10c68: 0xe0006f10, + 0x10c6c: 0xe0007743, 0x10c6e: 0xe00099f0, 0x10c6f: 0xe0006108, + 0x10c70: 0xe00084f2, 0x10c71: 0xe00081a3, 0x10c72: 0xe00070b1, 0x10c73: 0xe0008ff9, + 0x10c74: 0xe00041e8, 0x10c75: 0xe00057af, 0x10c77: 0xe0004e13, + 0x10c78: 0xe0006b8d, 0x10c79: 0xe000a87b, 0x10c7a: 0xe0004f8f, 0x10c7b: 0xe0004210, + 0x10c7d: 0xe0008ff5, 0x10c7e: 0xe000763b, 0x10c7f: 0xe00046b1, + // Block 0x432, offset 0x10c80 + 0x10c84: 0xe00077b4, + 0x10c93: 0xe0007757, + 0x10c96: 0xe000645c, + 0x10c98: 0xe0005cee, 0x10c9a: 0xe000a778, + 0x10c9d: 0xe0008d7c, 0x10c9f: 0xe00080ea, + 0x10ca0: 0xe0009990, + 0x10ca5: 0xe0004e47, 0x10ca6: 0xe0009ff3, + 0x10caa: 0xe0004f93, + 0x10cad: 0xe0007ad3, 0x10cae: 0xe0007448, + 0x10cb2: 0xe0005916, + 0x10cb9: 0xe0004d01, 0x10cbb: 0xe00044b5, + // Block 0x433, offset 0x10cc0 + 0x10cc3: 0xe000932b, + 0x10cc5: 0xe0009353, + 0x10cc8: 0xe0007fd2, 0x10cc9: 0xe000924e, 0x10cca: 0xe0005003, 0x10ccb: 0xe0007fd5, + 0x10ccd: 0xe000632c, + 0x10cd4: 0xe0007285, 0x10cd6: 0xe0009955, 0x10cd7: 0xe0007192, + 0x10cdb: 0xe0006330, + 0x10cdf: 0xe0007246, + 0x10ce1: 0xe0007bec, 0x10ce2: 0xe00097bc, 0x10ce3: 0xe0004c62, + 0x10ce4: 0xe0004805, 0x10ce5: 0xe0004c65, 0x10ce6: 0xe0005a48, + 0x10ce8: 0xe0005584, 0x10ce9: 0xe0004808, 0x10cea: 0xe0009058, 0x10ceb: 0xe0004ea3, + 0x10cec: 0xe000703c, 0x10ced: 0xe0009d50, 0x10cee: 0xe0008c29, 0x10cef: 0xe000416f, + 0x10cf0: 0xe0009bf7, 0x10cf1: 0xe00091b1, 0x10cf2: 0xe0006aee, 0x10cf3: 0xe0007fd8, + 0x10cf4: 0xe0004d04, 0x10cf5: 0xe0009cfa, 0x10cf6: 0xe000a369, + 0x10cf8: 0xe0006af1, + // Block 0x434, offset 0x10d00 + 0x10d01: 0xe0008032, 0x10d03: 0xe000a8c7, + 0x10d04: 0xe00041ec, + 0x10d08: 0xe000a107, 0x10d09: 0xe000517f, 0x10d0a: 0xe00088ed, 0x10d0b: 0xe00097b8, + 0x10d0c: 0xe0005641, 0x10d0d: 0xe0005ff4, 0x10d0e: 0xe000a77b, 0x10d0f: 0xe0005cf1, + 0x10d10: 0xe0009c4d, 0x10d11: 0xe000a212, + 0x10d1b: 0xe0004da7, + 0x10d1d: 0xe0005d5d, 0x10d1f: 0xe00083ae, + 0x10d20: 0xe0009e38, + 0x10d26: 0xe000679b, + 0x10d29: 0xe0006860, 0x10d2b: 0xe000a0c7, + 0x10d2c: 0xe0008372, 0x10d2e: 0xe0008a09, + 0x10d33: 0xe0007c6a, + 0x10d36: 0xe00052dd, + 0x10d38: 0xe000a8fb, 0x10d39: 0xe0009958, 0x10d3b: 0xe000619d, + 0x10d3c: 0xe000a77e, 0x10d3d: 0xe000a799, 0x10d3e: 0xe0007c67, + // Block 0x435, offset 0x10d40 + 0x10d40: 0xe000a017, 0x10d42: 0xe00058e6, + 0x10d46: 0xe0005f2d, + 0x10d48: 0xe0008b5d, 0x10d4a: 0xe000480b, + 0x10d4e: 0xe00094d8, + 0x10d51: 0xe0009b58, + 0x10d5d: 0xe00077d0, + 0x10d62: 0xe00052ff, + 0x10d64: 0xe0005a4c, 0x10d66: 0xe000829c, + 0x10d68: 0xe0008ea4, 0x10d6a: 0xe0008ea1, 0x10d6b: 0xe0009654, + 0x10d70: 0xe0008620, 0x10d71: 0xe000480e, 0x10d73: 0xe00061ed, + 0x10d75: 0xe0004172, 0x10d76: 0xe0005283, + 0x10d7b: 0xe00074c9, + 0x10d7c: 0xe000a41e, 0x10d7d: 0xe0005ff8, 0x10d7f: 0xe00044e2, + // Block 0x436, offset 0x10d80 + 0x10d80: 0xe0008868, + 0x10d84: 0xe0005629, 0x10d86: 0xe0009e6e, 0x10d87: 0xe0009fb5, + 0x10d8b: 0xe0006b90, + 0x10d8c: 0xe000a550, 0x10d8d: 0xe000a1c5, 0x10d8e: 0xe0004c68, 0x10d8f: 0xe0007bb3, + 0x10d90: 0xe000679e, + 0x10d96: 0xe00041bd, + 0x10da0: 0xe0009221, 0x10da2: 0xe000763f, + 0x10da4: 0xe0009aae, 0x10da5: 0xe000a95b, + 0x10da8: 0xe00085d8, 0x10dab: 0xe000905b, + 0x10dac: 0xe0004bcc, 0x10daf: 0xe0004214, + 0x10db3: 0xe000a195, + 0x10db8: 0xe000a0cb, 0x10dbb: 0xe000a860, + 0x10dbc: 0xe0004b66, 0x10dbd: 0xe00084f6, 0x10dbf: 0xe00084a1, + // Block 0x437, offset 0x10dc0 + 0x10dc0: 0xe000775a, 0x10dc1: 0xe0009f3c, 0x10dc2: 0xe0007519, 0x10dc3: 0xe000567d, + 0x10dc4: 0xe000a511, 0x10dc6: 0xe00099f3, 0x10dc7: 0xe0007dbe, + 0x10dc8: 0xe000a10b, 0x10dc9: 0xe00087fd, + 0x10de1: 0xe00080ee, + 0x10de5: 0xe0004175, 0x10de6: 0xe00075e1, + 0x10de8: 0xe00096d6, 0x10de9: 0xe0005d39, + 0x10ded: 0xe00048ce, 0x10dee: 0xe000a733, + 0x10df1: 0xe00063d4, 0x10df2: 0xe0009594, + 0x10dfa: 0xe0009e71, + 0x10dfd: 0xe0004751, 0x10dff: 0xe00041c0, + // Block 0x438, offset 0x10e00 + 0x10e04: 0xe0009d63, 0x10e06: 0xe0006af4, 0x10e07: 0xe00090fd, + 0x10e09: 0xe000777b, + 0x10e0e: 0xe0005cf4, 0x10e0f: 0xe000a95e, + 0x10e10: 0xe000544e, + 0x10e14: 0xe0007cb5, + 0x10e1c: 0xe0005e97, + 0x10e2b: 0xe0004feb, + 0x10e2e: 0xe0007249, 0x10e2f: 0xe000821b, + 0x10e31: 0xe000939b, 0x10e33: 0xe0005919, + 0x10e35: 0xe00076cb, + 0x10e3c: 0xe0006c88, 0x10e3e: 0xe0009ab1, + // Block 0x439, offset 0x10e40 + 0x10e40: 0xe000777e, 0x10e42: 0xe00052cf, + 0x10e44: 0xe0009b04, 0x10e46: 0xe0006cb0, + 0x10e4f: 0xe00061a1, + 0x10e53: 0xe000479c, + 0x10e56: 0xe00053c6, 0x10e57: 0xe000540e, + 0x10e5c: 0xe00095bc, 0x10e5e: 0xe00075b1, + 0x10e63: 0xe000a0cf, + 0x10e7b: 0xe000744b, + 0x10e7c: 0xe0008c77, 0x10e7d: 0xe00076eb, 0x10e7e: 0xe0009865, + // Block 0x43a, offset 0x10e80 + 0x10e80: 0xe000448e, 0x10e81: 0xe0007d82, 0x10e83: 0xe00051f8, + 0x10e84: 0xe0006e5c, 0x10e86: 0xe0009598, 0x10e87: 0xe0005754, + 0x10e89: 0xe000a781, 0x10e8a: 0xe000a0d3, 0x10e8b: 0xe0009658, + 0x10e91: 0xe00083c6, 0x10e93: 0xe0007ef5, + 0x10e94: 0xe0007643, + 0x10e98: 0xe0009504, 0x10e99: 0xe000a821, 0x10e9a: 0xe000a5b4, + 0x10e9c: 0xe000a925, 0x10e9d: 0xe00042b8, 0x10e9e: 0xe0008ffd, 0x10e9f: 0xe00081e5, + 0x10ea3: 0xe000a79c, + 0x10ea4: 0xe000a69c, 0x10ea7: 0xe000a802, + 0x10ea8: 0xe00058c5, 0x10ea9: 0xe000821e, 0x10eaa: 0xe0006cb4, 0x10eab: 0xe0005197, + 0x10eac: 0xe0004bcf, 0x10eae: 0xe0005336, + 0x10eb0: 0xe00074b1, + // Block 0x43b, offset 0x10ec0 + 0x10ec5: 0xe000a784, 0x10ec7: 0xe0006d4c, + 0x10ec9: 0xe00070b4, + 0x10ed1: 0xe000a127, + 0x10ed4: 0xe0009101, + 0x10eda: 0xe0007c6d, 0x10edb: 0xe0004675, + 0x10edc: 0xe0005057, 0x10edf: 0xe0009251, + 0x10ee0: 0xe00057a3, 0x10ee2: 0xe0007d56, 0x10ee3: 0xe0006af7, + 0x10ee4: 0xe00099ae, + 0x10ef7: 0xe0007cb8, + 0x10efd: 0xe0007195, 0x10efe: 0xe0008ea7, 0x10eff: 0xe0009bb0, + // Block 0x43c, offset 0x10f00 + 0x10f04: 0xe0004c14, 0x10f06: 0xe0009b5c, + 0x10f08: 0xe0008d7f, 0x10f09: 0xe0004178, + 0x10f0c: 0xe0009f1b, 0x10f0d: 0xe0005c15, 0x10f0e: 0xe00076ab, + 0x10f10: 0xe0004c17, 0x10f12: 0xe000a403, + 0x10f14: 0xe0004c6b, 0x10f16: 0xe000946d, 0x10f17: 0xe0006cb8, + 0x10f29: 0xe000a57a, + 0x10f2c: 0xe0009805, 0x10f2f: 0xe000703f, + 0x10f32: 0xe0008cf5, + 0x10f34: 0xe000995b, 0x10f36: 0xe00073f4, 0x10f37: 0xe000a499, + 0x10f38: 0xe000617d, 0x10f39: 0xe0005bbf, 0x10f3b: 0xe000a961, + 0x10f3f: 0xe0006191, + // Block 0x43d, offset 0x10f40 + 0x10f41: 0xe0007cbb, 0x10f42: 0xe0008f9d, + 0x10f49: 0xe0005412, 0x10f4b: 0xe0009c56, + 0x10f4d: 0xe000972d, 0x10f4e: 0xe0007acf, 0x10f4f: 0xe000a90b, + 0x10f53: 0xe000a236, + 0x10f64: 0xe0004fef, 0x10f65: 0xe00052a5, + 0x10f68: 0xe000505a, 0x10f69: 0xe0007647, 0x10f6a: 0xe0008d82, 0x10f6b: 0xe000a928, + 0x10f6c: 0xe0006dda, 0x10f6d: 0xe0004c1a, 0x10f6f: 0xe0007781, + 0x10f72: 0xe0009aa5, + 0x10f74: 0xe0006864, 0x10f76: 0xe00042dc, + 0x10f78: 0xe0009c5a, 0x10f7a: 0xe000751d, + // Block 0x43e, offset 0x10f80 + 0x10f80: 0xe0005269, + 0x10f84: 0xe000a717, 0x10f86: 0xe000a736, 0x10f87: 0xe000a01a, + 0x10f8f: 0xe00096af, + 0x10f99: 0xe0004c1d, 0x10f9a: 0xe0008376, + 0x10fa5: 0xe0007a0f, + 0x10fac: 0xe0006a47, 0x10fae: 0xe000a216, + 0x10fb3: 0xe00048ea, + 0x10fb4: 0xe000796f, 0x10fb6: 0xe00077f0, + 0x10fbc: 0xe0008676, + // Block 0x43f, offset 0x10fc0 + 0x10fc0: 0xe0008a0d, 0x10fc1: 0xe0006fac, 0x10fc2: 0xe000a75d, 0x10fc3: 0xe000870e, + 0x10fc8: 0xe0007c1f, 0x10fc9: 0xe000576f, 0x10fca: 0xe0005208, + 0x10fcd: 0xe000a92b, + 0x10fd1: 0xe000977c, + 0x10fda: 0xe0007198, 0x10fdb: 0xe0006afa, + 0x10fde: 0xe000a6bb, 0x10fdf: 0xe0007521, + 0x10fe0: 0xe00084fa, + 0x10fe6: 0xe0007a87, + 0x10feb: 0xe000a50d, + 0x10fee: 0xe0007dc1, + 0x10ff0: 0xe00048fe, + 0x10ff7: 0xe0004f1b, + 0x10ff9: 0xe0005a0c, 0x10ffa: 0xe0004811, + 0x10fff: 0xe000829f, + // Block 0x440, offset 0x11000 + 0x11001: 0xe000837a, 0x11002: 0xe000a4ed, 0x11003: 0xe0009e74, + 0x11004: 0xe00078e5, + 0x11008: 0xe0004e17, 0x11009: 0xe0007903, 0x1100a: 0xe0009688, 0x1100b: 0xe0004d7f, + 0x1100d: 0xe00081a6, + 0x11012: 0xe00080f6, 0x11013: 0xe00080f2, + 0x11016: 0xe0005515, + 0x11018: 0xe000533a, + 0x1101c: 0xe0008152, 0x1101f: 0xe0009c50, + 0x11025: 0xe0005b0a, + 0x11028: 0xe0008800, + 0x1102c: 0xe0007cbe, 0x1102d: 0xe0004ea6, 0x1102e: 0xe00069cf, + 0x11030: 0xe000905e, + 0x1103b: 0xe000505d, + 0x1103e: 0xe000501b, + // Block 0x441, offset 0x11040 + 0x11040: 0xe0009061, 0x11042: 0xe0009d28, + 0x11047: 0xe0004f07, + 0x1104a: 0xe00063f0, + 0x1104c: 0xe00068ac, 0x1104d: 0xe00053ca, 0x1104e: 0xe00042f8, 0x1104f: 0xe00064c5, + 0x11050: 0xe0008e74, 0x11051: 0xe0004496, + 0x11061: 0xe0009cca, + 0x11064: 0xe0004902, 0x11066: 0xe0009b60, 0x11067: 0xe00094dc, + 0x11068: 0xe00084a4, 0x11069: 0xe0004344, 0x1106a: 0xe0009e0c, + 0x1106e: 0xe00054c4, 0x1106f: 0xe00064c8, + 0x11070: 0xe00046b5, 0x11071: 0xe0007747, 0x11073: 0xe0007ef8, + 0x11075: 0xe0004c6e, 0x11077: 0xe00041c3, + 0x11078: 0xe0004d07, 0x1107b: 0xe00090b8, + 0x1107c: 0xe0009b08, + // Block 0x442, offset 0x11080 + 0x11082: 0xe000719b, + 0x11088: 0xe00054c1, 0x1108b: 0xe000a38d, + 0x1108c: 0xe0005681, + 0x11093: 0xe000a198, + 0x11095: 0xe000a79f, + 0x1109e: 0xe0009ad8, + 0x110a0: 0xe0008356, 0x110a2: 0xe0004c71, 0x110a3: 0xe00080fa, + 0x110a4: 0xe00091e9, + 0x110b8: 0xe0007e25, + 0x110bd: 0xe000837e, + // Block 0x443, offset 0x110c0 + 0x110c3: 0xe000775d, + 0x110c6: 0xe0004218, 0x110c7: 0xe0007f52, + 0x110c8: 0xe0008f5d, 0x110c9: 0xe000a36d, 0x110cb: 0xe0005f03, + 0x110ce: 0xe0006fc8, 0x110cf: 0xe0007a8b, + 0x110d1: 0xe00095c0, 0x110d2: 0xe00057ef, + 0x110dc: 0xe000781e, 0x110df: 0xe00079df, + 0x110e0: 0xe00067a1, + 0x110e4: 0xe00069d2, + 0x110ed: 0xe0009c1e, + 0x110f0: 0xe0009436, 0x110f3: 0xe0004348, + 0x110f4: 0xe0007475, 0x110f7: 0xe0009209, + 0x110f9: 0xe0006492, 0x110fa: 0xe0005060, 0x110fb: 0xe0008fa1, + 0x110fc: 0xe0005063, 0x110fd: 0xe00070b7, + // Block 0x444, offset 0x11100 + 0x11100: 0xe0004dcb, 0x11102: 0xe0005452, 0x11103: 0xe0004926, + 0x11105: 0xe00045e5, 0x11106: 0xe0009c86, + 0x11108: 0xe00043a0, 0x11109: 0xe00082f6, 0x1110a: 0xe00075ff, 0x1110b: 0xe000693c, + 0x11117: 0xe000562d, + 0x11119: 0xe000852e, + 0x1111d: 0xe0004a11, 0x1111e: 0xe0009628, + 0x11120: 0xe000a7a2, 0x11121: 0xe000667f, 0x11123: 0xe0008035, + 0x11124: 0xe0008c7a, 0x11126: 0xe00047e1, 0x11127: 0xe0007a13, + 0x1112a: 0xe00042fc, + 0x1112f: 0xe0007ea4, + 0x11130: 0xe000792b, 0x11131: 0xe0006682, + 0x11134: 0xe000872a, 0x11135: 0xe0005518, + 0x1113a: 0xe000479f, + // Block 0x445, offset 0x11140 + 0x11140: 0xe0006660, + 0x11149: 0xe00094e0, 0x1114a: 0xe0004b78, 0x1114b: 0xe0007b47, + 0x1114c: 0xe0009bcc, 0x1114d: 0xe00073e6, 0x1114f: 0xe000444c, + 0x11150: 0xe00070ba, 0x11151: 0xe0007042, 0x11152: 0xe000744e, + 0x11154: 0xe0009bbc, 0x11157: 0xe000551b, + 0x11158: 0xe0005456, 0x11159: 0xe0004880, 0x1115a: 0xe00097c0, + 0x1115e: 0xe0006d40, + 0x11161: 0xe0008981, 0x11162: 0xe0007c70, + 0x11164: 0xe000a7c2, + 0x11169: 0xe0007aff, + 0x11175: 0xe0009105, + 0x11179: 0xe000932f, + 0x1117c: 0xe0008985, 0x1117d: 0xe0006d1c, 0x1117e: 0xe0007289, + // Block 0x446, offset 0x11180 + 0x11180: 0xe00090bb, 0x11181: 0xe0005e73, 0x11183: 0xe00046b9, + 0x11185: 0xe0006d80, + 0x11189: 0xe0007f56, 0x1118a: 0xe0008afd, + 0x1118d: 0xe0005111, + 0x11190: 0xe0004f97, 0x11193: 0xe000610b, + 0x1119c: 0xe000981d, 0x1119d: 0xe0007efb, 0x1119e: 0xe000901d, 0x1119f: 0xe000a239, + 0x111a1: 0xe0006ed0, 0x111a3: 0xe0006705, + 0x111a8: 0xe0006189, 0x111a9: 0xe00055ed, 0x111ab: 0xe0008fa5, + 0x111ae: 0xe0009ab4, + 0x111b0: 0xe0005416, 0x111b1: 0xe0005738, 0x111b3: 0xe0006868, + 0x111ba: 0xe0007c73, 0x111bb: 0xe000872e, + 0x111be: 0xe0004230, + // Block 0x447, offset 0x111c0 + 0x111c1: 0xe0006588, 0x111c3: 0xe0004404, + 0x111c5: 0xe0007d5e, 0x111c7: 0xe000533e, + 0x111ce: 0xe000a7c6, + 0x111d1: 0xe000a02f, 0x111d3: 0xe0007717, + 0x111d4: 0xe0005587, 0x111d5: 0xe000a421, + 0x111d8: 0xe0005beb, 0x111d9: 0xe0004b09, 0x111da: 0xe0005ac4, + 0x111dc: 0xe000541a, 0x111dd: 0xe00082a2, 0x111de: 0xe0004b7b, 0x111df: 0xe0005b2a, + 0x111e4: 0xe0007861, + 0x111eb: 0xe0006afd, + 0x111ec: 0xe0008586, 0x111ef: 0xe0008732, + 0x111f9: 0xe0008562, 0x111fa: 0xe000a424, 0x111fb: 0xe0006d83, + 0x111fd: 0xe000719e, + // Block 0x448, offset 0x11200 + 0x11206: 0xe0006775, + 0x11208: 0xe000882d, + 0x1120f: 0xe0009ff6, + 0x11210: 0xe000a3d1, + 0x11214: 0xe0005066, 0x11215: 0xe0006df8, 0x11216: 0xe0007e74, + 0x11219: 0xe000728d, 0x1121a: 0xe0005321, + 0x1121c: 0xe0007809, + 0x11222: 0xe00060d4, + 0x11224: 0xe0008532, 0x11225: 0xe0004a14, 0x11227: 0xe00054c7, + 0x11229: 0xe0009508, 0x1122a: 0xe0009bfa, 0x1122b: 0xe00067a4, + 0x1122c: 0xe0009aa8, 0x1122d: 0xe0007ea7, 0x1122e: 0xe000772b, 0x1122f: 0xe000a17b, + 0x11231: 0xe0007541, + 0x11237: 0xe0008462, + 0x11238: 0xe0004a17, + 0x1123e: 0xe000a33d, + // Block 0x449, offset 0x11240 + 0x11244: 0xe0007973, 0x11247: 0xe0005069, + 0x11248: 0xe000521a, 0x11249: 0xe0006735, + 0x1124e: 0xe0004ea9, 0x1124f: 0xe0008eaa, + 0x11250: 0xe000a5b8, 0x11251: 0xe00047a2, 0x11253: 0xe0009275, + 0x11254: 0xe000686c, 0x11255: 0xe000a279, 0x11257: 0xe0009c9e, + 0x11258: 0xe00087b2, 0x1125a: 0xe000a19b, + 0x11260: 0xe0008989, 0x11262: 0xe0006b00, + 0x11267: 0xe0007c76, + 0x11269: 0xe00059ec, 0x1126a: 0xe0009b94, 0x1126b: 0xe000830e, + 0x1126c: 0xe0008736, 0x1126d: 0xe0006dfc, 0x1126e: 0xe0006870, + 0x11273: 0xe0005232, + 0x11274: 0xe0005274, 0x11276: 0xe0005226, + 0x11278: 0xe0004234, + 0x1127d: 0xe000a427, + // Block 0x44a, offset 0x11280 + 0x11282: 0xe00079b7, 0x11283: 0xe0006957, + 0x11284: 0xe0005ebf, + 0x1128a: 0xe000858a, + 0x11291: 0xe0009cfd, 0x11292: 0xe0009cad, 0x11293: 0xe000506c, + 0x11296: 0xe0007eaa, 0x11297: 0xe0004fbb, + 0x11299: 0xe000610e, + 0x1129d: 0xe00087b6, + 0x112a3: 0xe00069d5, + 0x112a5: 0xe0009ab7, 0x112a7: 0xe0007e29, + 0x112a8: 0xe00063f4, + 0x112ac: 0xe0009ca1, 0x112af: 0xe00098e6, + 0x112b2: 0xe00053b2, + 0x112b9: 0xe0005f06, 0x112bb: 0xe0009488, + 0x112be: 0xe000962c, + // Block 0x44b, offset 0x112c0 + 0x112c3: 0xe0008b61, + 0x112c6: 0xe000603c, + 0x112c8: 0xe0005a50, 0x112c9: 0xe00085db, 0x112cb: 0xe00073f7, + 0x112cd: 0xe0006c0c, + 0x112d0: 0xe000886b, 0x112d1: 0xe0004814, 0x112d2: 0xe0006b93, 0x112d3: 0xe0006fcc, + 0x112d4: 0xe00081a9, + 0x112d9: 0xe000858e, 0x112da: 0xe0007ead, + 0x112dc: 0xe00043a4, 0x112dd: 0xe0008e9b, 0x112de: 0xe000518b, + 0x112e3: 0xe0004c20, + 0x112e4: 0xe0004d0a, 0x112e5: 0xe000607e, 0x112e6: 0xe0004238, + 0x112e8: 0xe0008465, 0x112ea: 0xe00091b5, + 0x112ec: 0xe000a92e, 0x112ee: 0xe000a147, + 0x112f8: 0xe0007a17, 0x112fa: 0xe0007525, 0x112fb: 0xe00084fe, + 0x112ff: 0xe00085de, + // Block 0x44c, offset 0x11300 + 0x11301: 0xe00081ac, 0x11303: 0xe0007e68, + 0x11309: 0xe0006acf, + 0x11311: 0xe0006b03, 0x11313: 0xe0006229, + 0x11318: 0xe000520c, 0x11319: 0xe000a3d5, 0x1131b: 0xe0007c79, + 0x1131c: 0xe000519e, 0x1131f: 0xe0007a1b, + 0x11320: 0xe00074cd, 0x11323: 0xe0008cb9, + 0x11325: 0xe00075b4, 0x11327: 0xe0009c21, + 0x11329: 0xe0005e2f, + 0x1132d: 0xe0007784, + 0x11335: 0xe0009868, 0x11336: 0xe000995e, + 0x1133c: 0xe000939f, 0x1133f: 0xe00075e4, + // Block 0x44d, offset 0x11340 + 0x11340: 0xe00075e7, 0x11341: 0xe0005bee, + 0x11346: 0xe0009ccd, + 0x11349: 0xe0007dd9, + 0x1134c: 0xe00072c1, + 0x11350: 0xe0007dc4, + 0x1135a: 0xe000a4d5, + 0x11362: 0xe000695a, 0x11363: 0xe0008536, + 0x11366: 0xe00067a7, 0x11367: 0xe0008c2d, + 0x1136a: 0xe000581f, + 0x11372: 0xe000a57d, + 0x11377: 0xe0008c31, + 0x1137f: 0xe0006ddd, + // Block 0x44e, offset 0x11380 + 0x11384: 0xe000622c, + 0x1138d: 0xe000680d, + 0x11392: 0xe0005f09, 0x11393: 0xe000a6a0, + 0x11395: 0xe00076ef, + 0x1139a: 0xe00061f0, 0x1139b: 0xe00080fe, + 0x1139f: 0xe0006f48, + 0x113a2: 0xe0006081, + 0x113a4: 0xe00073fa, 0x113a7: 0xe0007e71, + 0x113aa: 0xe0007cc1, + 0x113b3: 0xe00074b5, + 0x113b5: 0xe00085ce, + 0x113ba: 0xe000622f, 0x113bb: 0xe0006388, + 0x113bc: 0xe0007d26, 0x113bd: 0xe0005df8, 0x113be: 0xe0004d0d, 0x113bf: 0xe0004b8d, + // Block 0x44f, offset 0x113c0 + 0x113c1: 0xe000417b, 0x113c2: 0xe00071a1, + 0x113c4: 0xe0008102, + 0x113c8: 0xe00077f4, 0x113c9: 0xe00091b9, 0x113cb: 0xe00052bd, + 0x113cc: 0xe000a331, + 0x113d6: 0xe0009f1e, 0x113d7: 0xe0004d10, + 0x113d9: 0xe0006ed4, 0x113da: 0xe0005e77, 0x113db: 0xe0007c22, + 0x113e0: 0xe0005d3c, 0x113e1: 0xe00088f1, 0x113e2: 0xe0004ed3, 0x113e3: 0xe0007947, + 0x113e5: 0xe0008a11, 0x113e6: 0xe000a14b, + 0x113e9: 0xe00052d5, 0x113eb: 0xe0006084, + 0x113ed: 0xe000a49c, 0x113ee: 0xe000a49f, 0x113ef: 0xe0007cc4, + 0x113f6: 0xe0009730, + 0x113fa: 0xe000a097, 0x113fb: 0xe000a09b, + 0x113fd: 0xe0005bc2, + // Block 0x450, offset 0x11400 + 0x11400: 0xe0004ed6, + 0x11405: 0xe000a553, + 0x11408: 0xe0007efe, 0x11409: 0xe000a931, 0x1140b: 0xe0006e60, + 0x1140c: 0xe0004bd2, + 0x11416: 0xe0009e3b, + 0x11419: 0xe00087ba, 0x1141b: 0xe000a2ed, + 0x11425: 0xe0008d85, + 0x11428: 0xe0008623, 0x1142a: 0xe0006a4b, + 0x1142d: 0xe0005229, + 0x11430: 0xe0007bbb, 0x11432: 0xe00052c0, + 0x11434: 0xe0007bb7, + 0x1143e: 0xe00057cb, 0x1143f: 0xe0007a8f, + // Block 0x451, offset 0x11440 + 0x11440: 0xe0006cbc, 0x11443: 0xe0007865, + 0x11445: 0xe0006f84, + 0x1144c: 0xe0005998, + 0x11450: 0xe00085e1, 0x11451: 0xe000a319, + 0x11454: 0xe0004986, 0x11455: 0xe00085c6, 0x11456: 0xe0008626, 0x11457: 0xe00085e4, + 0x11458: 0xe0008ded, 0x1145a: 0xe00067aa, 0x1145b: 0xe0009d81, + 0x1145c: 0xe00085e7, 0x1145d: 0xe000a739, 0x1145f: 0xe0005f68, + 0x11461: 0xe0009c24, 0x11463: 0xe00047a5, + 0x11464: 0xe0004817, 0x11465: 0xe0005286, + 0x11469: 0xe000a19e, 0x1146b: 0xe000711c, + 0x11470: 0xe0007291, 0x11471: 0xe00086c2, + 0x11475: 0xe00067ad, 0x11476: 0xe0008629, + 0x11478: 0xe000a033, 0x1147a: 0xe0008221, + 0x1147c: 0xe000795b, 0x1147f: 0xe0006c10, + // Block 0x452, offset 0x11480 + 0x11481: 0xe00088b3, 0x11482: 0xe0007fa2, + 0x11485: 0xe0005500, 0x11487: 0xe0007fdb, + 0x11488: 0xe00071a4, 0x11489: 0xe0007663, 0x1148a: 0xe00041c6, 0x1148b: 0xe0007148, + 0x1148c: 0xe0007ddd, 0x1148f: 0xe0004ba6, + 0x11493: 0xe00066d1, + 0x11495: 0xe0009bd4, 0x11496: 0xe000a71b, 0x11497: 0xe0008e09, + 0x11498: 0xe0004a5d, 0x11499: 0xe0008ead, 0x1149a: 0xe0008b65, 0x1149b: 0xe0007de1, + 0x1149c: 0xe000840b, + 0x114a2: 0xe0004492, 0x114a3: 0xe0006e64, + 0x114a4: 0xe0007545, 0x114a5: 0xe0008224, 0x114a6: 0xe000a5bc, + 0x114ac: 0xe0006fd0, 0x114ae: 0xe0004deb, + 0x114b0: 0xe0008803, 0x114b3: 0xe000a1a1, + 0x114b4: 0xe0007a1f, 0x114b5: 0xe0007045, 0x114b6: 0xe000417e, + 0x114b8: 0xe00074d1, 0x114b9: 0xe0007f5a, + 0x114bf: 0xe0007295, + // Block 0x453, offset 0x114c0 + 0x114c0: 0xe0009439, 0x114c2: 0xe00088f5, 0x114c3: 0xe0008106, + 0x114c4: 0xe000506f, 0x114c5: 0xe0008502, 0x114c6: 0xe00062ac, 0x114c7: 0xe0004c74, + 0x114cc: 0xe00067b0, + 0x114d0: 0xe0005f0c, 0x114d2: 0xe000a05b, 0x114d3: 0xe0007fde, + 0x114d4: 0xe0007479, 0x114d6: 0xe0009a7a, 0x114d7: 0xe000525d, + 0x114d8: 0xe00099f6, + 0x114de: 0xe0005e07, 0x114df: 0xe000930f, + 0x114e1: 0xe00049ea, 0x114e2: 0xe0009a5a, + 0x114e4: 0xe0007c7c, 0x114e5: 0xe0007eb0, 0x114e6: 0xe0007549, 0x114e7: 0xe0005259, + 0x114e8: 0xe000943c, 0x114e9: 0xe0007559, 0x114eb: 0xe0006b06, + 0x114ec: 0xe0004a61, 0x114ed: 0xe000a406, 0x114ee: 0xe0005ba1, 0x114ef: 0xe0008f61, + 0x114f0: 0xe000a5f4, + 0x114f5: 0xe00097c4, 0x114f6: 0xe0006685, + 0x114f8: 0xe00097a8, 0x114fa: 0xe0006b09, + // Block 0x454, offset 0x11500 + 0x11501: 0xe0006739, + 0x11504: 0xe0006b0c, 0x11505: 0xe0004f47, 0x11507: 0xe000873a, + 0x11508: 0xe000898d, 0x11509: 0xe00081af, 0x1150a: 0xe0008df1, 0x1150b: 0xe000755d, + 0x1150c: 0xe0008f10, 0x1150d: 0xe00054ca, 0x1150e: 0xe000551e, 0x1150f: 0xe0007048, + 0x11511: 0xe000704b, + 0x11514: 0xe00084a7, 0x11516: 0xe00095e4, + 0x11519: 0xe0006cc0, + 0x1151f: 0xe0006ed8, + 0x11520: 0xe0006edc, + 0x11524: 0xe0007fe1, + 0x11528: 0xe00063f8, 0x1152b: 0xe0007e59, + 0x11531: 0xe0009961, + 0x11538: 0xe00073fd, 0x11539: 0xe0008312, 0x1153a: 0xe00094a8, 0x1153b: 0xe000481a, + 0x1153c: 0xe00052f9, 0x1153e: 0xe00061f3, 0x1153f: 0xe00052ba, + // Block 0x455, offset 0x11540 + 0x11540: 0xe0004d83, 0x11541: 0xe00069d8, + 0x11545: 0xe00044b8, 0x11546: 0xe00047a8, 0x11547: 0xe0008a15, + 0x11548: 0xe0004dcf, 0x1154b: 0xe0007cfa, + 0x1154d: 0xe0007403, 0x1154e: 0xe0007400, + 0x11550: 0xe0004f4b, 0x11551: 0xe0006f14, + 0x11555: 0xe0008991, + 0x1155b: 0xe0006624, + 0x11560: 0xe0005521, 0x11562: 0xe0005bf1, + 0x11564: 0xe00099a4, 0x11565: 0xe0005cf7, + 0x11568: 0xe0004d13, + 0x1156c: 0xe00070f4, 0x1156f: 0xe00056e8, + 0x11571: 0xe0006be0, 0x11573: 0xe0006ee0, + 0x11579: 0xe000a8cb, 0x1157a: 0xe0005114, + // Block 0x456, offset 0x11580 + 0x11588: 0xe000a01d, 0x1158a: 0xe0008ac9, + 0x1158c: 0xe000501f, 0x1158f: 0xe0007e2d, + 0x11590: 0xe0005072, 0x11591: 0xe00086e2, 0x11592: 0xe0004679, + 0x11594: 0xe0009278, + 0x1159d: 0xe00086a2, + 0x115a1: 0xe00043a8, 0x115a3: 0xe0004d16, + 0x115a5: 0xe0009d00, 0x115a6: 0xe0005dd9, 0x115a7: 0xe0009733, + 0x115a8: 0xe00088b6, 0x115a9: 0xe00076cf, 0x115aa: 0xe0006904, 0x115ab: 0xe00071a7, + 0x115ac: 0xe0004384, 0x115ad: 0xe0005a54, + 0x115b1: 0xe00054cd, 0x115b3: 0xe0007603, + 0x115b5: 0xe000a42a, 0x115b7: 0xe0006250, + 0x115b8: 0xe0007667, 0x115ba: 0xe0005a10, + 0x115be: 0xe0008ad9, + // Block 0x457, offset 0x115c0 + 0x115c0: 0xe00071aa, + 0x115d2: 0xe0005685, + 0x115d9: 0xe00099b1, + 0x115e0: 0xe0006cc4, + 0x115e8: 0xe00075b7, 0x115e9: 0xe00075ea, + 0x115ed: 0xe0009736, 0x115ef: 0xe000673d, + 0x115f0: 0xe0006741, 0x115f1: 0xe0005289, + 0x115f4: 0xe000a29d, 0x115f6: 0xe0005524, + 0x115fb: 0xe0008f65, + 0x115fd: 0xe000a341, + // Block 0x458, offset 0x11600 + 0x11606: 0xe00049ba, 0x11607: 0xe0007375, + 0x1160d: 0xe0005872, 0x1160e: 0xe0005075, + 0x11610: 0xe000492a, 0x11611: 0xe0004906, + 0x11614: 0xe00097ff, 0x11615: 0xe0007787, 0x11616: 0xe0007760, 0x11617: 0xe00043ac, + 0x11619: 0xe0005c78, 0x1161b: 0xe0004ddf, + 0x1161f: 0xe00083ca, + 0x11622: 0xe000884f, + 0x11624: 0xe000a760, 0x11626: 0xe000797f, 0x11627: 0xe0007379, + 0x11629: 0xe0006924, + 0x11634: 0xe0007e86, + 0x1163d: 0xe0008830, + // Block 0x459, offset 0x11640 + 0x11641: 0xe000434c, 0x11642: 0xe0005c98, + 0x1164b: 0xe00061f6, + 0x1164c: 0xe0004300, 0x1164e: 0xe0008038, + 0x11650: 0xe00057f7, 0x11653: 0xe00076f3, + 0x11654: 0xe0007e89, + 0x11669: 0xe000737d, + 0x1166c: 0xe0007e77, 0x1166f: 0xe0009254, + 0x11671: 0xe0007fa6, + // Block 0x45a, offset 0x11680 + 0x11681: 0xe0005c18, 0x11682: 0xe00087be, + 0x11684: 0xe0009357, 0x11687: 0xe0004c77, + 0x1168b: 0xe0005527, + 0x11692: 0xe0009049, + 0x11694: 0xe0004ff3, 0x11695: 0xe0009739, + 0x11699: 0xe0005d81, + 0x1169d: 0xe0005710, + 0x116a0: 0xe0004bd5, 0x116a2: 0xe0007eb3, + 0x116a7: 0xe00079ff, + 0x116aa: 0xe0007997, 0x116ab: 0xe000799f, + 0x116ae: 0xe000a26d, + 0x116b0: 0xe000a1c8, + 0x116b7: 0xe0008444, + 0x116b8: 0xe0007b4b, 0x116ba: 0xe0005a14, + 0x116bc: 0xe0006d86, 0x116bd: 0xe0007607, + // Block 0x45b, offset 0x116c0 + 0x116c9: 0xe000935b, 0x116cb: 0xe0004ed9, + 0x116cd: 0xe0007e7a, + 0x116d1: 0xe00092f7, 0x116d2: 0xe0005e33, 0x116d3: 0xe0008a19, + 0x116d6: 0xe00076d3, + 0x116da: 0xe000a255, + 0x116dd: 0xe000950c, 0x116de: 0xe0008eb0, + 0x116e1: 0xe00072d1, 0x116e2: 0xe000704e, + 0x116e5: 0xe000498a, 0x116e6: 0xe0008e77, 0x116e7: 0xe0004bd8, + 0x116e8: 0xe00044bb, 0x116eb: 0xe000613b, + 0x116ee: 0xe0009257, + 0x116f1: 0xe0005078, 0x116f2: 0xe0008468, 0x116f3: 0xe0006b0f, + 0x116f4: 0xe0009cd0, 0x116f5: 0xe00099f9, 0x116f7: 0xe000a14f, + 0x116f9: 0xe0004f9b, + 0x116fd: 0xe0007120, 0x116fe: 0xe0004518, + // Block 0x45c, offset 0x11700 + 0x11702: 0xe0007406, 0x11703: 0xe0009e77, + 0x11706: 0xe000654c, + 0x11709: 0xe00068b0, + 0x1170c: 0xe000a934, + 0x11711: 0xe0009bd8, + 0x11715: 0xe0005eb3, 0x11716: 0xe0009630, + 0x11719: 0xe00091bd, 0x1171a: 0xe000986b, 0x1171b: 0xe00064dc, + 0x1171d: 0xe0008c7d, + 0x11725: 0xe00071ad, + 0x11728: 0xe0007030, 0x1172b: 0xe0006b12, + 0x1172d: 0xe0006e00, + 0x11733: 0xe000873e, + 0x11736: 0xe00054d0, 0x11737: 0xe00082a5, + 0x11738: 0xe0006cc8, + 0x1173d: 0xe000603f, 0x1173f: 0xe000a787, + // Block 0x45d, offset 0x11740 + 0x11740: 0xe0008b69, 0x11743: 0xe00081e8, + 0x11744: 0xe000760b, 0x11745: 0xe0009ed7, 0x11747: 0xe00063fc, + 0x1174c: 0xe000a640, 0x1174e: 0xe0005f98, + 0x11754: 0xe0005e7b, 0x11755: 0xe0005e0b, + 0x11758: 0xe0009471, + 0x1175e: 0xe0006709, 0x1175f: 0xe00099b4, + 0x11761: 0xe00064f8, 0x11762: 0xe000545a, 0x11763: 0xe0009e3e, + 0x11768: 0xe0009608, 0x1176a: 0xe00060e0, 0x1176b: 0xe0006460, + 0x1176c: 0xe0008f13, + 0x11770: 0xe000a259, 0x11771: 0xe00057cf, 0x11772: 0xe000423c, 0x11773: 0xe0009e10, + 0x11774: 0xe0005239, 0x11777: 0xe0006628, + 0x11778: 0xe000a1fa, 0x11779: 0xe0004240, 0x1177a: 0xe0007f01, 0x1177b: 0xe000a5c0, + 0x1177c: 0xe0008227, 0x1177d: 0xe000822a, 0x1177e: 0xe000507b, 0x1177f: 0xe0007983, + // Block 0x45e, offset 0x11780 + 0x11784: 0xe0008742, 0x11787: 0xe000695d, + 0x1178a: 0xe0006ccc, 0x1178b: 0xe0005117, + 0x1178f: 0xe0006d89, + 0x11795: 0xe000886e, 0x11796: 0xe0009eb6, 0x11797: 0xe0008add, + 0x1179a: 0xe00046bd, + 0x1179c: 0xe00067b3, + 0x117a0: 0xe0006cd0, + 0x117a6: 0xe000552a, 0x117a7: 0xe0008e7a, + 0x117ab: 0xe000481d, + 0x117ad: 0xe0008b6d, + 0x117b3: 0xe00069db, + 0x117b5: 0xe00076d7, 0x117b6: 0xe0006d8c, 0x117b7: 0xe00043b0, + 0x117b8: 0xe0007f5e, + 0x117bd: 0xe000803b, 0x117be: 0xe000822d, + // Block 0x45f, offset 0x117c0 + 0x117c1: 0xe000999c, 0x117c2: 0xe0006cd4, + 0x117c8: 0xe0009ff9, 0x117c9: 0xe00059d8, 0x117ca: 0xe0005837, 0x117cb: 0xe000724c, + 0x117d0: 0xe0004c7a, 0x117d1: 0xe0004f9f, 0x117d3: 0xe0004a35, + 0x117d5: 0xe00083ce, 0x117d6: 0xe0005ba4, + 0x117da: 0xe0008eb3, 0x117db: 0xe0008995, + 0x117dd: 0xe0007451, 0x117de: 0xe000a8f7, 0x117df: 0xe0006111, + 0x117e0: 0xe00093a3, 0x117e1: 0xe0006180, 0x117e2: 0xe0009e41, 0x117e3: 0xe0004b0d, + 0x117e5: 0xe0004b90, 0x117e7: 0xe00087c2, + 0x117e8: 0xe000a1cb, 0x117e9: 0xe0005cc0, + 0x117ec: 0xe00058e9, + 0x117f1: 0xe0007d86, 0x117f3: 0xe0009664, + 0x117f6: 0xe0007a23, 0x117f7: 0xe0008b71, + 0x117fa: 0xe000451c, 0x117fb: 0xe000a6be, + 0x117ff: 0xe00085ba, + // Block 0x460, offset 0x11800 + 0x11801: 0xe00065c8, 0x11803: 0xe000511a, + 0x11804: 0xe0005b2e, 0x11807: 0xe0004350, + 0x11808: 0xe000a289, 0x1180a: 0xe0009e44, 0x1180b: 0xe00084da, + 0x1180f: 0xe000747d, + 0x11811: 0xe0007409, 0x11813: 0xe0004def, + 0x11814: 0xe0008cf8, 0x11815: 0xe0008506, 0x11817: 0xe00068f8, + 0x11818: 0xe000a515, 0x1181b: 0xe000846b, + 0x1181f: 0xe0008c80, + 0x11822: 0xe000558a, + 0x11825: 0xe0006232, 0x11826: 0xe000a2a1, 0x11827: 0xe000a42d, + 0x11829: 0xe0005277, + 0x1182d: 0xe0006235, + 0x11831: 0xe0007821, + 0x11834: 0xe0005615, 0x11835: 0xe0008746, + 0x1183a: 0xe00043b4, + 0x1183c: 0xe0009f8d, + // Block 0x461, offset 0x11840 + 0x11840: 0xe0004d19, + 0x11846: 0xe0006610, + 0x11848: 0xe0009b64, 0x1184a: 0xe00043b8, + 0x1184c: 0xe00061f9, 0x1184e: 0xe0005e37, + 0x11854: 0xe0005b0e, 0x11856: 0xe0005342, 0x11857: 0xe000a3e8, + 0x11858: 0xe00096b2, 0x11859: 0xe000a833, 0x1185b: 0xe000846e, + 0x1185d: 0xe00084aa, + 0x11862: 0xe000a391, + 0x11864: 0xe0005689, 0x11866: 0xe000792f, 0x11867: 0xe0008066, + 0x11869: 0xe000943f, 0x1186a: 0xe0009ef1, 0x1186b: 0xe0008cfb, + 0x1186c: 0xe0006a4f, 0x1186d: 0xe0009d90, + 0x11870: 0xe00093a7, 0x11871: 0xe0007b4f, + 0x11877: 0xe0006400, + 0x11879: 0xe00079e3, + 0x1187c: 0xe0009f64, 0x1187f: 0xe00068fc, + // Block 0x462, offset 0x11880 + 0x11880: 0xe0007e45, 0x11881: 0xe0008b75, 0x11882: 0xe0008d88, + 0x11885: 0xe00054d3, 0x11887: 0xe00072d5, + 0x11888: 0xe000a8af, 0x11889: 0xe00078b9, 0x1188a: 0xe000a6c1, 0x1188b: 0xe0005c8c, + 0x1188c: 0xe000a78a, + 0x11890: 0xe0006d8f, 0x11891: 0xe00046c1, 0x11892: 0xe000552d, + 0x11897: 0xe000570c, + 0x11898: 0xe0006495, 0x11899: 0xe0006b15, + 0x1189c: 0xe0006d20, 0x1189e: 0xe0008e0d, + 0x118a0: 0xe0005875, 0x118a1: 0xe00078e8, 0x118a3: 0xe000927b, + 0x118a7: 0xe0009de0, + 0x118a8: 0xe000a644, 0x118a9: 0xe00066d5, 0x118aa: 0xe00072d9, + 0x118ac: 0xe0006464, 0x118ad: 0xe0007f04, 0x118ae: 0xe00061fc, 0x118af: 0xe000a409, + 0x118b5: 0xe0009229, 0x118b7: 0xe0005504, + 0x118b9: 0xe000959c, + 0x118bc: 0xe0007f07, 0x118bd: 0xe000a836, + // Block 0x463, offset 0x118c0 + 0x118c3: 0xe0007561, + 0x118c5: 0xe0009f91, + 0x118c9: 0xe000558d, + 0x118cc: 0xe000507e, 0x118cd: 0xe000850a, + 0x118d0: 0xe0009bb4, 0x118d2: 0xe0009cc2, + 0x118d6: 0xe00097ac, 0x118d7: 0xe0009064, + 0x118d8: 0xe0005ec3, 0x118d9: 0xe0005ec7, + 0x118dd: 0xe000960c, 0x118de: 0xe0006284, 0x118df: 0xe0006288, + 0x118e0: 0xe000991a, 0x118e1: 0xe0009932, + 0x118e4: 0xe0007cc7, + 0x118e8: 0xe0007e31, 0x118eb: 0xe0009aa2, + 0x118ed: 0xe00065dc, 0x118ee: 0xe000511d, + 0x118f1: 0xe0009a7e, + 0x118f5: 0xe0005249, + 0x118f8: 0xe00052eb, 0x118fb: 0xe000a8b3, + 0x118fc: 0xe0004408, 0x118fd: 0xe000a501, 0x118ff: 0xe0006874, + // Block 0x464, offset 0x11900 + 0x1190a: 0xe000973c, + 0x1190d: 0xe00086a6, 0x1190f: 0xe000772f, + 0x11912: 0xe000527a, + 0x11914: 0xe0008c35, 0x11915: 0xe0009d03, 0x11916: 0xe0009e7a, 0x11917: 0xe000965c, + 0x11919: 0xe000a4a2, 0x1191b: 0xe00053b6, + 0x1191c: 0xe0005a18, 0x1191d: 0xe0006b18, + 0x11920: 0xe0009bfd, 0x11921: 0xe0008471, + 0x11925: 0xe0005007, 0x11926: 0xe0009e20, 0x11927: 0xe0006fd4, + 0x11928: 0xe000810a, 0x11929: 0xe0005302, 0x1192a: 0xe0004b7e, + 0x1192f: 0xe0004598, + 0x11933: 0xe000a6a4, + // Block 0x465, offset 0x11940 + 0x11941: 0xe0008592, 0x11942: 0xe00072dd, 0x11943: 0xe000740c, + 0x11946: 0xe000a17f, 0x11947: 0xe0004b31, + 0x11948: 0xe0006087, 0x1194a: 0xe000a371, + 0x1194d: 0xe000a648, + 0x11950: 0xe000498e, 0x11952: 0xe000a153, + 0x11955: 0xe0006d92, + 0x11959: 0xe0007869, 0x1195a: 0xe00079a7, + 0x1195d: 0xe0004ad9, 0x1195f: 0xe000a893, + 0x11960: 0xe0004b93, 0x11962: 0xe000a6c4, 0x11963: 0xe00085ea, + 0x11964: 0xe000a86f, 0x11965: 0xe00099b7, + 0x11968: 0xe000a05f, 0x11969: 0xe000835a, 0x1196a: 0xe00041f0, 0x1196b: 0xe0009c7a, + 0x1196c: 0xe000524d, 0x1196d: 0xe0004992, 0x1196f: 0xe0007481, + 0x11970: 0xe000a8ff, + // Block 0x466, offset 0x11980 + 0x11981: 0xe0007a93, 0x11983: 0xe000492e, + 0x11984: 0xe000973f, 0x11985: 0xe0007abf, + 0x11989: 0xe000754d, 0x1198b: 0xe0005d85, + 0x1198c: 0xe0008c83, 0x1198d: 0xe000a063, 0x1198f: 0xe000a375, + 0x11992: 0xe00083e6, + 0x11994: 0xe000a6c7, 0x11995: 0xe000a964, 0x11996: 0xe0009d66, 0x11997: 0xe00061c9, + 0x1199a: 0xe000714c, 0x1199b: 0xe0008999, + 0x1199f: 0xe0007c7f, + 0x119a0: 0xe0008230, 0x119a2: 0xe00058c9, 0x119a3: 0xe000a5c4, + 0x119a4: 0xe00097c8, 0x119a7: 0xe0005cfa, + 0x119b0: 0xe0008e11, 0x119b1: 0xe00069de, 0x119b2: 0xe0006960, 0x119b3: 0xe0005508, + 0x119b4: 0xe000993a, 0x119b5: 0xe00093f7, 0x119b6: 0xe0006254, + 0x119b8: 0xe00047ab, 0x119bb: 0xe000a20a, + 0x119bc: 0xe0005530, 0x119bd: 0xe000948b, 0x119be: 0xe00049be, + // Block 0x467, offset 0x119c0 + 0x119c4: 0xe0005235, 0x119c5: 0xe0008b79, 0x119c6: 0xe000986e, 0x119c7: 0xe00055f1, + 0x119c9: 0xe0009610, 0x119cb: 0xe0007e35, + 0x119cf: 0xe0005823, + 0x119d1: 0xe000a4c9, 0x119d3: 0xe0004e33, + 0x119d5: 0xe00094e4, + 0x119d8: 0xe0005eeb, 0x119d9: 0xe00095c4, 0x119da: 0xe000a505, 0x119db: 0xe000a4f1, + 0x119dc: 0xe0006e04, 0x119dd: 0xe00093fb, 0x119df: 0xe0008233, + 0x119e0: 0xe000a3eb, 0x119e1: 0xe000760f, 0x119e2: 0xe0007180, + 0x119f0: 0xe0009aba, 0x119f1: 0xe00052b1, 0x119f2: 0xe00080ba, 0x119f3: 0xe0006cd8, + 0x119f4: 0xe0009946, 0x119f6: 0xe000a64c, 0x119f7: 0xe0008fa9, + 0x119f8: 0xe0004755, 0x119f9: 0xe000780c, 0x119fa: 0xe0006fd8, 0x119fb: 0xe0009994, + 0x119fc: 0xe0009de4, + // Block 0x468, offset 0x11a00 + 0x11a00: 0xe0009742, 0x11a01: 0xe00071b0, 0x11a03: 0xe0006ee4, + 0x11a06: 0xe0004520, + 0x11a08: 0xe0008236, 0x11a09: 0xe0008239, + 0x11a0d: 0xe0006258, 0x11a0e: 0xe0009db0, 0x11a0f: 0xe000840e, + 0x11a14: 0xe00083d2, 0x11a15: 0xe0007613, + 0x11a1a: 0xe0007fe4, 0x11a1b: 0xe0007763, + 0x11a1c: 0xe000a379, 0x11a1f: 0xe0004304, + 0x11a27: 0xe0004b81, + 0x11a2c: 0xe00070bd, 0x11a2d: 0xe0005120, + 0x11a30: 0xe000a650, + 0x11a34: 0xe00093ab, 0x11a37: 0xe000444f, + 0x11a3c: 0xe00074d5, 0x11a3e: 0xe0004452, 0x11a3f: 0xe000810e, + // Block 0x469, offset 0x11a40 + 0x11a42: 0xe0007f62, + 0x11a44: 0xe0005c90, 0x11a46: 0xe0005590, 0x11a47: 0xe000835e, + 0x11a48: 0xe00085ed, 0x11a4a: 0xe000465d, 0x11a4b: 0xe0009c00, + 0x11a4c: 0xe000a654, 0x11a4d: 0xe0007d2a, + 0x11a52: 0xe0008e4d, 0x11a53: 0xe0009ef4, + 0x11a55: 0xe0006042, + 0x11a58: 0xe0009333, 0x11a59: 0xe0009337, 0x11a5a: 0xe000935f, + 0x11a5d: 0xe0009cba, 0x11a5f: 0xe0009c62, + 0x11a60: 0xe0007cca, 0x11a62: 0xe0005e3b, 0x11a63: 0xe0004a65, + 0x11a64: 0xe00041f4, 0x11a67: 0xe000a3ee, + 0x11a68: 0xe0004455, 0x11a6b: 0xe0008e15, + 0x11a6e: 0xe00058ec, + 0x11a70: 0xe00081b2, 0x11a71: 0xe000537a, 0x11a73: 0xe000428c, + 0x11a74: 0xe00073b2, 0x11a75: 0xe0007faa, 0x11a76: 0xe00046c5, 0x11a77: 0xe00043bc, + 0x11a7a: 0xe0005c1b, + 0x11a7d: 0xe00094ac, 0x11a7e: 0xe0007f22, + // Block 0x46a, offset 0x11a80 + 0x11a81: 0xe00097cc, 0x11a82: 0xe0007fe7, 0x11a83: 0xe0007fae, + 0x11a8a: 0xe0006963, + 0x11a8d: 0xe0004c23, 0x11a8e: 0xe0009021, + 0x11a90: 0xe0005968, 0x11a91: 0xe0006ab3, 0x11a92: 0xe0004e79, + 0x11a94: 0xe00096d9, 0x11a96: 0xe0008382, + 0x11a98: 0xe000a93a, 0x11a99: 0xe000a937, 0x11a9a: 0xe0009b68, + 0x11aa4: 0xe0006878, 0x11aa7: 0xe0005645, + 0x11aa8: 0xe0004354, 0x11aa9: 0xe00045ab, 0x11aab: 0xe000625c, + 0x11aac: 0xe00046c9, 0x11aae: 0xe000613e, 0x11aaf: 0xe0009363, + 0x11ab2: 0xe000a245, + 0x11ab6: 0xe0007913, + 0x11ab8: 0xe0006f88, 0x11aba: 0xe00053ce, 0x11abb: 0xe0009b80, + 0x11abc: 0xe0004759, 0x11abe: 0xe0004308, + // Block 0x46b, offset 0x11ac0 + 0x11ac3: 0xe0004f5f, + 0x11ac6: 0xe0008d8b, 0x11ac7: 0xe0004244, + 0x11ac8: 0xe000a1a4, 0x11ac9: 0xe00083f6, 0x11aca: 0xe0007c82, 0x11acb: 0xe0006141, + 0x11acc: 0xe0007a03, + 0x11ad5: 0xe0007b03, 0x11ad7: 0xe000a020, + 0x11ade: 0xe00060e4, 0x11adf: 0xe00054f1, + 0x11ae3: 0xe00061cd, + 0x11ae6: 0xe00051a1, + 0x11af2: 0xe000922d, + 0x11af6: 0xe0005757, 0x11af7: 0xe000a6ca, + 0x11af8: 0xe000a2a5, 0x11afa: 0xe000933b, + 0x11afc: 0xe0004c7d, 0x11afd: 0xe000a5f8, 0x11afe: 0xe0006fb0, 0x11aff: 0xe0008411, + // Block 0x46c, offset 0x11b00 + 0x11b00: 0xe000596c, + 0x11b07: 0xe000545e, + 0x11b08: 0xe00049ed, 0x11b0a: 0xe0006144, + 0x11b0c: 0xe0007361, 0x11b0d: 0xe00071b3, 0x11b0e: 0xe0008342, + 0x11b10: 0xe0006fdc, 0x11b11: 0xe00075ba, 0x11b12: 0xe00047ae, + 0x11b14: 0xe00086da, 0x11b15: 0xe00087c6, 0x11b16: 0xe000a4cd, + 0x11b1a: 0xe00094b0, + 0x11b1e: 0xe00076af, 0x11b1f: 0xe0004f33, + 0x11b21: 0xe000430c, 0x11b22: 0xe0009225, + 0x11b27: 0xe00093ff, + 0x11b29: 0xe0008a1d, 0x11b2a: 0xe0008aad, + 0x11b2e: 0xe0005c64, + 0x11b30: 0xe000899d, 0x11b31: 0xe000a93d, 0x11b32: 0xe000a967, 0x11b33: 0xe00092a3, + 0x11b34: 0xe00054d6, 0x11b35: 0xe0004d1c, 0x11b36: 0xe000a430, + 0x11b39: 0xe00077d4, + 0x11b3e: 0xe00058ef, 0x11b3f: 0xe0006404, + // Block 0x46d, offset 0x11b40 + 0x11b40: 0xe0007051, 0x11b41: 0xe0009dbc, 0x11b43: 0xe000475d, + 0x11b47: 0xe0006e68, + 0x11b48: 0xe000a433, 0x11b49: 0xe0006966, 0x11b4a: 0xe0007b07, 0x11b4b: 0xe00071b6, + 0x11b4d: 0xe0008806, 0x11b4e: 0xe000931f, + 0x11b51: 0xe000670d, 0x11b52: 0xe00064cb, 0x11b53: 0xe0009abd, + 0x11b57: 0xe0008833, + 0x11b58: 0xe0009b0c, 0x11b5b: 0xe000440c, + 0x11b63: 0xe0004d1f, + 0x11b68: 0xe000853a, + 0x11b6e: 0xe000687c, + 0x11b71: 0xe000500b, 0x11b73: 0xe000638c, + 0x11b76: 0xe00067b6, + 0x11b79: 0xe0006969, 0x11b7a: 0xe00090be, + 0x11b7c: 0xe00077b8, 0x11b7e: 0xe0008d8e, 0x11b7f: 0xe00073d2, + // Block 0x46e, offset 0x11b80 + 0x11b80: 0xe0005081, 0x11b83: 0xe00065e0, + 0x11b84: 0xe00096dc, 0x11b86: 0xe00061d1, + 0x11b89: 0xe0004635, 0x11b8a: 0xe0009cd3, + 0x11b91: 0xe0007917, 0x11b92: 0xe0006d95, + 0x11b94: 0xe0006810, 0x11b95: 0xe0009ca4, 0x11b96: 0xe00056d3, 0x11b97: 0xe000a157, + 0x11b98: 0xe0008ab1, 0x11b9b: 0xe0009e7d, + 0x11ba8: 0xe0009e24, 0x11bab: 0xe0009f67, + 0x11bac: 0xe0009c27, + 0x11bb1: 0xe0009e80, + 0x11bb5: 0xe0008871, + 0x11bb9: 0xe0005e9b, + 0x11bbc: 0xe000771b, 0x11bbd: 0xe0009820, + // Block 0x46f, offset 0x11bc0 + 0x11bc2: 0xe0006900, + 0x11bc4: 0xe0008f16, 0x11bc5: 0xe000537e, 0x11bc6: 0xe0009b34, 0x11bc7: 0xe0006147, + 0x11bc8: 0xe0005251, 0x11bc9: 0xe0005827, 0x11bca: 0xe0006813, + 0x11bcc: 0xe0006334, 0x11bcd: 0xe00062c8, 0x11bcf: 0xe00051a4, + 0x11bd0: 0xe0004b84, 0x11bd1: 0xe000467d, 0x11bd2: 0xe00044be, 0x11bd3: 0xe00094b4, + 0x11bd4: 0xe00063ac, 0x11bd5: 0xe0009adb, 0x11bd6: 0xe0009ac0, 0x11bd7: 0xe0007eb6, + 0x11bd8: 0xe0004c80, 0x11bd9: 0xe0008dfd, 0x11bdb: 0xe00096df, + 0x11bdc: 0xe0006498, + 0x11bec: 0xe0004add, 0x11bed: 0xe0007485, 0x11bee: 0xe0005183, 0x11bef: 0xe0009029, + 0x11bf1: 0xe0004996, 0x11bf3: 0xe0004e1b, + 0x11bf5: 0xe0008df5, 0x11bf6: 0xe0009323, 0x11bf7: 0xe0004820, + 0x11bfd: 0xe0007c25, 0x11bfe: 0xe00073a2, 0x11bff: 0xe00051a7, + // Block 0x470, offset 0x11c00 + 0x11c01: 0xe0009067, 0x11c02: 0xe0004b69, + 0x11c07: 0xe000906a, + 0x11c09: 0xe000766b, + 0x11c0c: 0xe00045cd, + 0x11c10: 0xe00051ad, 0x11c11: 0xe0005533, 0x11c12: 0xe00059cc, + 0x11c28: 0xe000778a, 0x11c2a: 0xe00051b0, 0x11c2b: 0xe0008e7d, + 0x11c2f: 0xe0009109, + 0x11c39: 0xe00083ea, 0x11c3a: 0xe0008b7d, 0x11c3b: 0xe0007a2b, + 0x11c3d: 0xe0005e3f, 0x11c3e: 0xe000a345, + // Block 0x471, offset 0x11c40 + 0x11c42: 0xe0007ccd, 0x11c43: 0xe0004dbf, + 0x11c44: 0xe0004d22, 0x11c46: 0xe0004932, + 0x11c49: 0xe0009287, + 0x11c4c: 0xe0009d54, 0x11c4d: 0xe000a09f, 0x11c4e: 0xe00070c0, 0x11c4f: 0xe00051dc, + 0x11c50: 0xe0007a27, + 0x11c55: 0xe0009e83, 0x11c57: 0xe00094e8, + 0x11c67: 0xe0006745, + 0x11c68: 0xe0006b1b, 0x11c69: 0xe00059d0, 0x11c6b: 0xe00061d5, + 0x11c6e: 0xe00044c1, + 0x11c71: 0xe000778d, 0x11c72: 0xe0004e1f, + 0x11c76: 0xe0009871, 0x11c77: 0xe0009634, + 0x11c7a: 0xe00051e0, 0x11c7b: 0xe0005255, + 0x11c7f: 0xe0006d98, + // Block 0x472, offset 0x11c80 + 0x11c80: 0xe000a8b7, 0x11c83: 0xe0007054, + 0x11c84: 0xe0005c88, 0x11c87: 0xe00095c8, + 0x11c88: 0xe00071b9, 0x11c89: 0xe0005536, 0x11c8a: 0xe0006816, + 0x11c8c: 0xe000874a, 0x11c8e: 0xe0005123, 0x11c8f: 0xe0005593, + 0x11c92: 0xe000649b, + 0x11c96: 0xe00077bc, + 0x11c98: 0xe0004dd3, 0x11c9b: 0xe0004b60, + 0x11c9c: 0xe0007c28, 0x11c9f: 0xe0008c39, + 0x11ca0: 0xe0005885, 0x11ca1: 0xe0009442, 0x11ca2: 0xe0009ba0, + 0x11ca5: 0xe0008b25, 0x11ca7: 0xe000499a, + 0x11ca8: 0xe0009823, 0x11ca9: 0xe0007977, 0x11caa: 0xe0008cfe, + 0x11cac: 0xe0004d9b, + 0x11cbe: 0xe0007a97, + // Block 0x473, offset 0x11cc0 + 0x11cc0: 0xe0004248, 0x11cc3: 0xe0008a21, + 0x11cc4: 0xe000823c, 0x11cc6: 0xe0004eac, + 0x11cc9: 0xe00082a8, + 0x11ccf: 0xe0006114, + 0x11cd0: 0xe0008c86, + 0x11cd6: 0xe00083da, + 0x11cda: 0xe000786d, 0x11cdb: 0xe000a5c8, + 0x11cdf: 0xe0006de0, + 0x11ce0: 0xe00076b3, 0x11ce1: 0xe0007617, 0x11ce3: 0xe0009949, + 0x11ce9: 0xe000447f, 0x11ceb: 0xe0009874, + 0x11ced: 0xe00045ae, 0x11cee: 0xe000a839, + 0x11cf2: 0xe0006f4c, + 0x11cf4: 0xe0008112, 0x11cf5: 0xe000453c, 0x11cf6: 0xe000780f, 0x11cf7: 0xe0006c74, + // Block 0x474, offset 0x11d00 + 0x11d06: 0xe0004d25, + 0x11d09: 0xe000421c, + 0x11d0d: 0xe0007124, 0x11d0f: 0xe00062cc, + 0x11d12: 0xe0006468, + 0x11d14: 0xe0007057, 0x11d16: 0xe0007eb9, 0x11d17: 0xe0005539, + 0x11d1c: 0xe00071bc, + 0x11d22: 0xe000910d, + 0x11d24: 0xe00077d8, 0x11d25: 0xe0009877, + 0x11d28: 0xe0009bd0, 0x11d2a: 0xe0005486, 0x11d2b: 0xe0006390, + 0x11d2c: 0xe0006338, 0x11d2d: 0xe0009bc0, 0x11d2f: 0xe0005596, + 0x11d30: 0xe0004966, + 0x11d36: 0xe0009403, + 0x11d3a: 0xe000a854, + 0x11d3e: 0xe000928b, + // Block 0x475, offset 0x11d40 + 0x11d58: 0xe00088f9, + 0x11d60: 0xe00097d0, + 0x11d67: 0xe0009808, + 0x11d69: 0xe0005ddd, + 0x11d6d: 0xe00094ec, 0x11d6f: 0xe000906d, + 0x11d73: 0xe0004d28, + 0x11d78: 0xe0006045, 0x11d79: 0xe0006048, 0x11d7a: 0xe0008b29, 0x11d7b: 0xe0006f8c, + 0x11d7d: 0xe0009f21, + // Block 0x476, offset 0x11d80 + 0x11d85: 0xe0004e7c, + 0x11d88: 0xe0005a94, + 0x11d90: 0xe0009c3f, 0x11d91: 0xe0009c3b, 0x11d92: 0xe0006c3c, 0x11d93: 0xe0007ebc, + 0x11d95: 0xe0006de3, + 0x11d99: 0xe0008fad, 0x11d9a: 0xe000523d, + 0x11d9d: 0xe000a84b, 0x11d9e: 0xe0005462, 0x11d9f: 0xe0004c26, + 0x11da4: 0xe00095a0, 0x11da5: 0xe00063b0, + 0x11da9: 0xe0005bc5, 0x11dab: 0xe000614a, + 0x11dad: 0xe0009cd6, 0x11dae: 0xe00097f8, + 0x11db0: 0xe00092af, 0x11db2: 0xe00062d0, + 0x11dbb: 0xe000539e, + 0x11dbc: 0xe0004358, 0x11dbe: 0xe0004a1a, 0x11dbf: 0xe000458c, + // Block 0x477, offset 0x11dc0 + 0x11dc1: 0xe0007d62, + 0x11dc4: 0xe0005a97, 0x11dc5: 0xe0009510, 0x11dc7: 0xe0009c33, + 0x11dc9: 0xe00092a7, 0x11dca: 0xe00045b1, + 0x11dcd: 0xe0008d01, 0x11dce: 0xe00046cd, + 0x11dd0: 0xe000a5fc, 0x11dd2: 0xe0004fbf, + 0x11dd4: 0xe00053d2, 0x11dd5: 0xe000a863, 0x11dd7: 0xe00065ac, + 0x11dd8: 0xe000658c, 0x11dda: 0xe00044c4, + 0x11de0: 0xe0008cbc, 0x11de1: 0xe00054d9, 0x11de2: 0xe0009b10, 0x11de3: 0xe0005599, + 0x11de5: 0xe00057fb, 0x11de6: 0xe0009313, 0x11de7: 0xe00044c7, + 0x11dec: 0xe0008414, 0x11ded: 0xe000a580, 0x11def: 0xe0006a83, + 0x11df1: 0xe0004220, 0x11df2: 0xe00094b8, + 0x11df4: 0xe000a58c, + 0x11dfa: 0xe0009cd9, + 0x11dfe: 0xe0007ebf, + // Block 0x478, offset 0x11e00 + 0x11e00: 0xe000633c, 0x11e02: 0xe0005b7a, + 0x11e04: 0xe0009c47, 0x11e07: 0xe000a25d, + 0x11e0a: 0xe0005950, + 0x11e0f: 0xe0005b4a, + 0x11e14: 0xe00057d3, + 0x11e18: 0xe0007871, 0x11e19: 0xe0009367, + 0x11e1d: 0xe0006fa0, + 0x11e22: 0xe00092fb, 0x11e23: 0xe0005970, + 0x11e24: 0xe0009b84, + 0x11e2a: 0xe0004bdb, 0x11e2b: 0xe000a590, + 0x11e2c: 0xe00057ff, 0x11e2f: 0xe0009070, + 0x11e32: 0xe0005126, + 0x11e36: 0xe00071bf, 0x11e37: 0xe0004823, + 0x11e38: 0xe000823f, 0x11e39: 0xe0004458, 0x11e3b: 0xe000499e, + 0x11e3d: 0xe0006394, 0x11e3e: 0xe0006408, 0x11e3f: 0xe0008b81, + // Block 0x479, offset 0x11e40 + 0x11e45: 0xe0004826, + 0x11e48: 0xe000a73c, 0x11e49: 0xe0006238, + 0x11e4d: 0xe0006d9b, 0x11e4e: 0xe0004bde, 0x11e4f: 0xe0006260, + 0x11e51: 0xe0004c83, + 0x11e54: 0xe0007906, 0x11e55: 0xe0009a32, 0x11e56: 0xe0007c85, 0x11e57: 0xe0009d69, + 0x11e5d: 0xe0009e56, 0x11e5e: 0xe00093af, + 0x11e62: 0xe0004310, 0x11e63: 0xe0006be4, + 0x11e66: 0xe00055f5, + 0x11e6c: 0xe00046d1, 0x11e6d: 0xe0007875, + 0x11e72: 0xe0004829, + 0x11e74: 0xe0008b85, 0x11e75: 0xe00088fd, 0x11e77: 0xe00067b9, + 0x11e78: 0xe00071c2, + 0x11e7e: 0xe0006e6c, + // Block 0x47a, offset 0x11e80 + 0x11e81: 0xe00056d6, 0x11e82: 0xe00059dc, 0x11e83: 0xe0009e47, + 0x11e85: 0xe000a73f, 0x11e87: 0xe00061a5, + 0x11e8c: 0xe0006a53, + 0x11e90: 0xe000696c, 0x11e91: 0xe0006340, + 0x11e97: 0xe00056b8, + 0x11e99: 0xe0005ba7, 0x11e9b: 0xe00048d2, + 0x11e9c: 0xe0006b1e, 0x11e9d: 0xe00041c9, 0x11e9f: 0xe00091fd, + 0x11ea1: 0xe000769b, + 0x11ea4: 0xe0004f63, 0x11ea5: 0xe00094bc, 0x11ea7: 0xe00067bc, + 0x11eab: 0xe000867a, + 0x11eac: 0xe000933f, 0x11eaf: 0xe0006b21, + 0x11eb0: 0xe00074d9, 0x11eb1: 0xe00086aa, 0x11eb2: 0xe00092ab, + 0x11eb7: 0xe0005346, + 0x11eb9: 0xe000640c, + 0x11ebc: 0xe00078eb, 0x11ebd: 0xe000740f, 0x11ebf: 0xe00082ab, + // Block 0x47b, offset 0x11ec0 + 0x11ec1: 0xe0006410, 0x11ec2: 0xe0005129, 0x11ec3: 0xe0008a25, + 0x11ec4: 0xe000608a, 0x11ec5: 0xe00058f2, 0x11ec6: 0xe0009d84, + 0x11eca: 0xe000646c, 0x11ecb: 0xe0006e70, + 0x11ecc: 0xe0008b89, 0x11ecf: 0xe0008dd9, + 0x11ed2: 0xe0005c2a, + 0x11ed7: 0xe0005084, + 0x11ee0: 0xe000614d, 0x11ee3: 0xe0005087, + 0x11ee5: 0xe0008566, 0x11ee6: 0xe000534a, + 0x11ee8: 0xe0009073, 0x11ee9: 0xe0008d04, + 0x11eec: 0xe00072e1, 0x11eed: 0xe000806a, + 0x11ef1: 0xe000a067, 0x11ef2: 0xe00054f4, + 0x11ef4: 0xe0007fea, + 0x11efa: 0xe0007e49, 0x11efb: 0xe0006264, + 0x11efc: 0xe0006268, 0x11efd: 0xe00055f9, 0x11eff: 0xe0007c88, + // Block 0x47c, offset 0x11f00 + 0x11f00: 0xe000832e, 0x11f03: 0xe00099a0, + 0x11f06: 0xe000490a, 0x11f07: 0xe00073d6, + 0x11f09: 0xe0006414, 0x11f0a: 0xe000a436, + 0x11f0c: 0xe00093b3, 0x11f0e: 0xe0005ffc, 0x11f0f: 0xe000a4d9, + 0x11f10: 0xe0006880, 0x11f11: 0xe0004fc3, 0x11f13: 0xe00079e7, + 0x11f14: 0xe0006e08, 0x11f15: 0xe000a89f, + 0x11f1b: 0xe00044e5, + 0x11f1e: 0xe000662c, 0x11f1f: 0xe0006fe0, + 0x11f20: 0xe0007b53, 0x11f21: 0xe000a2f1, + 0x11f24: 0xe0005a58, 0x11f25: 0xe00098fa, 0x11f27: 0xe0005f0f, + 0x11f28: 0xe000867e, 0x11f2b: 0xe0004d2b, + 0x11f2d: 0xe000705a, 0x11f2f: 0xe0007412, + 0x11f30: 0xe0009ffc, 0x11f31: 0xe000806e, + 0x11f34: 0xe0006117, 0x11f35: 0xe0005319, 0x11f36: 0xe00093b7, 0x11f37: 0xe0007d2e, + 0x11f3a: 0xe0006630, 0x11f3b: 0xe0007733, + // Block 0x47d, offset 0x11f40 + 0x11f41: 0xe0008d07, 0x11f42: 0xe0007415, 0x11f43: 0xe000a658, + 0x11f44: 0xe000a65c, + 0x11f48: 0xe0004c29, 0x11f49: 0xe0009111, 0x11f4b: 0xe0009115, + 0x11f4c: 0xe0006d24, 0x11f4e: 0xe000a539, 0x11f4f: 0xe000766f, + 0x11f59: 0xe0008f69, 0x11f5b: 0xe000a2a9, + 0x11f5d: 0xe0008eb6, 0x11f5e: 0xe000a940, 0x11f5f: 0xe0006fe4, + 0x11f61: 0xe0009eb9, 0x11f62: 0xe0008acd, + 0x11f64: 0xe0007c8b, 0x11f65: 0xe000a5d0, 0x11f66: 0xe000a6cd, 0x11f67: 0xe000a439, + 0x11f68: 0xe00074dd, 0x11f69: 0xe0005e43, 0x11f6b: 0xe0009b14, + 0x11f6c: 0xe000724f, 0x11f6e: 0xe0006688, 0x11f6f: 0xe00046d5, + 0x11f70: 0xe0006e34, 0x11f73: 0xe0006e0c, + 0x11f74: 0xe0009668, 0x11f76: 0xe0008b8d, 0x11f77: 0xe0004e97, + 0x11f78: 0xe0008b91, 0x11f7a: 0xe0009076, 0x11f7b: 0xe00076f7, + // Block 0x47e, offset 0x11f80 + 0x11f84: 0xe000a806, 0x11f87: 0xe0004181, + 0x11f88: 0xe000a7de, 0x11f89: 0xe000a83c, 0x11f8b: 0xe000628c, + 0x11f8c: 0xe0004edc, 0x11f8e: 0xe0007b57, + 0x11f90: 0xe00081b5, 0x11f91: 0xe0006d9e, + 0x11f96: 0xe00051c0, 0x11f97: 0xe00076db, + 0x11f98: 0xe0007879, + 0x11f9d: 0xe0006000, 0x11f9e: 0xe0004c2c, + 0x11fa0: 0xe000482c, 0x11fa2: 0xe00093bb, 0x11fa3: 0xe000512c, + 0x11fab: 0xe00086e6, + 0x11fac: 0xe0006f50, 0x11fae: 0xe000604b, + 0x11fb1: 0xe000531d, 0x11fb2: 0xe000874e, 0x11fb3: 0xe000a3f1, + 0x11fb4: 0xe0009edb, 0x11fb5: 0xe000a0a3, + 0x11fb8: 0xe0005bc8, 0x11fb9: 0xe0006f68, 0x11fbb: 0xe00046d9, + 0x11fbe: 0xe00055fd, 0x11fbf: 0xe000a96a, + // Block 0x47f, offset 0x11fc0 + 0x11fc0: 0xe00079aa, 0x11fc1: 0xe000512f, + 0x11fc4: 0xe0007b2b, 0x11fc5: 0xe0007b37, 0x11fc6: 0xe0005938, 0x11fc7: 0xe00053d6, + 0x11fc9: 0xe000a742, + 0x11fd3: 0xe0009ebc, + 0x11fd6: 0xe0007766, + 0x11fd9: 0xe0006da1, 0x11fda: 0xe00060e8, 0x11fdb: 0xe000a7e2, + 0x11fdc: 0xe0007ec2, 0x11fdd: 0xe0009edf, + 0x11fe0: 0xe0004b11, 0x11fe3: 0xe0007a9b, + 0x11fe6: 0xe000a943, + 0x11fe8: 0xe0005b4e, 0x11fe9: 0xe0005210, 0x11fea: 0xe0005772, + 0x11fec: 0xe0007183, 0x11fee: 0xe0007987, 0x11fef: 0xe0009790, + 0x11ff0: 0xe0007e41, 0x11ff2: 0xe00048d6, 0x11ff3: 0xe0007bef, + 0x11ff4: 0xe00046dd, 0x11ff7: 0xe00042bc, + 0x11ff8: 0xe0006da4, 0x11ff9: 0xe0008d0d, 0x11ffa: 0xe0008d0a, + 0x11ffc: 0xe0005e47, 0x11ffe: 0xe0009025, 0x11fff: 0xe0009697, + // Block 0x480, offset 0x12000 + 0x12000: 0xe0009802, 0x12003: 0xe000a6d0, + 0x12005: 0xe0004568, + 0x12008: 0xe0008186, 0x12009: 0xe0008242, 0x1200b: 0xe0006928, + 0x1200c: 0xe0006398, 0x1200d: 0xe00066d9, + 0x12014: 0xe0006bc4, 0x12015: 0xe0009201, 0x12017: 0xe000583b, + 0x1201b: 0xe0005ecb, + 0x1201d: 0xe0008d10, 0x1201e: 0xe000508a, 0x1201f: 0xe000508d, + 0x12023: 0xe000568d, + 0x12026: 0xe00060d8, 0x12027: 0xe0005b32, + 0x12028: 0xe00060a8, 0x1202a: 0xe00061ff, 0x1202b: 0xe0005e9f, + 0x1202c: 0xe0006729, 0x1202d: 0xe0009317, 0x1202e: 0xe000990a, + 0x12031: 0xe0008eb9, 0x12033: 0xe0009d58, + 0x12034: 0xe00062d4, 0x12036: 0xe0009ac3, + 0x1203a: 0xe0004e5b, + 0x1203d: 0xe000a78d, + // Block 0x481, offset 0x12040 + 0x12045: 0xe000803e, 0x12046: 0xe000424c, + 0x12049: 0xe0006c50, + 0x1204e: 0xe0005cfd, 0x1204f: 0xe000a1fe, + 0x12050: 0xe0008809, 0x12051: 0xe00097b0, 0x12053: 0xe0009ef7, + 0x12056: 0xe0008752, + 0x1205c: 0xe00056bb, 0x1205e: 0xe0005090, 0x1205f: 0xe00070f8, + 0x12060: 0xe0004410, + 0x1206a: 0xe0009745, + 0x1206c: 0xe0008156, 0x1206d: 0xe000a15b, 0x1206f: 0xe000649e, + 0x12070: 0xe000455c, 0x12071: 0xe0005649, 0x12072: 0xe0004883, 0x12073: 0xe000611a, + 0x12075: 0xe0008874, 0x12077: 0xe0009cdc, + 0x1207b: 0xe00052e5, + 0x1207c: 0xe00088b9, 0x1207e: 0xe0007150, 0x1207f: 0xe0009d2c, + // Block 0x482, offset 0x12080 + 0x12087: 0xe000696f, + 0x12089: 0xe0007e4d, 0x1208b: 0xe0006418, + 0x1208c: 0xe00068b4, 0x1208f: 0xe00051e8, + 0x12090: 0xe0006e10, 0x12093: 0xe00056be, + 0x12095: 0xe0009a5e, 0x12097: 0xe0005db1, + 0x12098: 0xe0007c2b, 0x12099: 0xe0007dc7, 0x1209a: 0xe0005f12, + 0x1209c: 0xe00049f0, 0x1209d: 0xe0009079, + 0x120af: 0xe000482f, + 0x120b0: 0xe0009e14, 0x120b2: 0xe0007454, 0x120b3: 0xe000907c, + 0x120b6: 0xe0004184, 0x120b7: 0xe0004187, + 0x120b8: 0xe0004c86, + 0x120be: 0xe0007418, + // Block 0x483, offset 0x120c0 + 0x120c1: 0xe0009ade, + 0x120c4: 0xe0006634, 0x120c5: 0xe0005305, + 0x120ca: 0xe0008e51, + 0x120cf: 0xe00064e0, + 0x120d0: 0xe000604e, 0x120d1: 0xe0004314, 0x120d2: 0xe0009a4e, 0x120d3: 0xe0007ad7, + 0x120d4: 0xe0008245, 0x120d7: 0xe0007168, + 0x120d8: 0xe000862c, 0x120d9: 0xe000a12b, 0x120da: 0xe0008248, + 0x120dd: 0xe0009b18, 0x120de: 0xe00086ae, 0x120df: 0xe00051fc, + 0x120e2: 0xe00088bc, + 0x120e9: 0xe0004c89, + 0x120ec: 0xe0004250, 0x120ef: 0xe000418a, + 0x120f0: 0xe000521d, 0x120f1: 0xe0008ebc, 0x120f3: 0xe0005c2d, + 0x120f4: 0xe000741b, 0x120f5: 0xe0009461, 0x120f6: 0xe0006b24, + 0x120f9: 0xe0007457, 0x120fb: 0xe0006b27, + 0x120fe: 0xe0008b95, + // Block 0x484, offset 0x12100 + 0x12103: 0xe000a6f7, + 0x12112: 0xe00072e5, 0x12113: 0xe00089a1, + 0x12116: 0xe0006da7, 0x12117: 0xe0005c94, + 0x1211d: 0xe0004ae9, 0x1211e: 0xe0004290, + 0x12121: 0xe0004be1, 0x12122: 0xe00064e4, + 0x1212a: 0xe0008ebf, + 0x1212e: 0xe00084ad, 0x1212f: 0xe0008072, + 0x12131: 0xe00049c2, 0x12132: 0xe0004886, + 0x12134: 0xe0008a29, + 0x12138: 0xe000a1ea, 0x12139: 0xe0004f67, 0x1213b: 0xe00074b9, + 0x1213c: 0xe00045b5, 0x1213d: 0xe000880c, + // Block 0x485, offset 0x12140 + 0x12140: 0xe0004560, 0x12141: 0xe000a15f, 0x12142: 0xe00047b1, 0x12143: 0xe000553c, + 0x12144: 0xe0004b35, 0x12146: 0xe0004b39, + 0x12148: 0xe0007673, 0x12149: 0xe000768b, + 0x1214e: 0xe00091c1, + 0x12150: 0xe000564d, 0x12151: 0xe0006cdc, 0x12153: 0xe000a5d4, + 0x12154: 0xe0005187, + 0x1216d: 0xe0009119, 0x1216f: 0xe0008c3d, + 0x12174: 0xe0006819, 0x12176: 0xe0009c66, 0x12177: 0xe0004224, + 0x1217e: 0xe0004dc3, 0x1217f: 0xe0004254, + // Block 0x486, offset 0x12180 + 0x12181: 0xe00058a1, 0x12183: 0xe0008c41, + 0x12185: 0xe0005f15, 0x12186: 0xe0006470, + 0x1218f: 0xe00048da, + 0x12193: 0xe000880f, + 0x12194: 0xe00099ba, 0x12197: 0xe00046e1, + 0x1219b: 0xe00051b3, + 0x1219d: 0xe0008d13, 0x1219f: 0xe000a745, + 0x121a0: 0xe000591c, 0x121a1: 0xe0007de5, 0x121a2: 0xe00096e2, 0x121a3: 0xe000757d, + 0x121a7: 0xe0007c8e, + 0x121a8: 0xe0005d00, + 0x121ad: 0xe0006b2a, 0x121af: 0xe0008c89, + 0x121b0: 0xe00047b4, 0x121b1: 0xe000490e, 0x121b3: 0xe000705d, + 0x121b5: 0xe0006550, 0x121b6: 0xe0006202, + // Block 0x487, offset 0x121c0 + 0x121c4: 0xe0005096, 0x121c5: 0xe0006638, + 0x121c9: 0xe0005fac, 0x121ca: 0xe0005132, 0x121cb: 0xe0005093, + 0x121cc: 0xe0009457, 0x121cd: 0xe0004912, + 0x121d0: 0xe00069e1, 0x121d2: 0xe0006749, + 0x121d5: 0xe0008e19, 0x121d6: 0xe0008c45, 0x121d7: 0xe0008d16, + 0x121d8: 0xe0004f37, 0x121da: 0xe000692c, + 0x121df: 0xe0005651, + 0x121e0: 0xe0005466, 0x121e3: 0xe00096b5, + 0x121e7: 0xe00086c6, + 0x121e8: 0xe00047b7, + 0x121ec: 0xe0004e37, 0x121ee: 0xe0006c54, + 0x121f2: 0xe0006daa, + 0x121f9: 0xe000553f, 0x121fa: 0xe0004a69, 0x121fb: 0xe00068b8, + 0x121fc: 0xe00068bc, + // Block 0x488, offset 0x12200 + 0x12200: 0xe0007de9, 0x12201: 0xe0004a45, + 0x12204: 0xe0008b31, 0x12205: 0xe0008417, + 0x1220b: 0xe00058cd, + 0x1220d: 0xe0007489, 0x1220e: 0xe0009826, + 0x12211: 0xe00069e4, 0x12212: 0xe00096e5, + 0x12219: 0xe0009407, + 0x12227: 0xe0006004, + 0x12230: 0xe0007812, + 0x12234: 0xe0005382, 0x12236: 0xe0008e55, + 0x12239: 0xe0009a82, + 0x1223d: 0xe0007a2f, 0x1223f: 0xe00098fe, + // Block 0x489, offset 0x12240 + 0x12242: 0xe0006b96, + 0x1224a: 0xe000787d, + 0x1224f: 0xe0004edf, + 0x12253: 0xe0009f48, + 0x12254: 0xe0006f18, 0x12255: 0xe0009ac6, 0x12257: 0xe0004524, + 0x12259: 0xe0006150, 0x1225a: 0xe00096e8, + 0x1225d: 0xe000599c, 0x1225e: 0xe0005ccc, + 0x12260: 0xe00051ec, 0x12261: 0xe000824b, 0x12262: 0xe000824e, 0x12263: 0xe0006205, + 0x12265: 0xe000815a, + 0x12268: 0xe0008b99, 0x1226a: 0xe0008b35, 0x1226b: 0xe0009009, + 0x1226c: 0xe00042e0, 0x1226d: 0xe000799b, 0x1226e: 0xe0008877, 0x1226f: 0xe00072e9, + 0x12273: 0xe0005f30, + 0x12275: 0xe0004f3b, 0x12277: 0xe000a1a7, + 0x12278: 0xe0009829, 0x12279: 0xe0007b5b, + // Block 0x48a, offset 0x12280 + 0x1228e: 0xe00041cc, + 0x12291: 0xe000681c, + 0x12294: 0xe0005857, 0x12295: 0xe0007f66, + 0x12298: 0xe0004d2e, 0x1229b: 0xe000911d, + 0x1229c: 0xe000641c, 0x1229f: 0xe0008836, + 0x122a4: 0xe000456c, 0x122a5: 0xe000a660, 0x122a6: 0xe0004294, 0x122a7: 0xe0006972, + 0x122ad: 0xe0006b99, 0x122ae: 0xe0007b5f, + 0x122b0: 0xe00090c1, 0x122b1: 0xe000980b, + 0x122b4: 0xe0005c30, 0x122b7: 0xe0004c2f, + 0x122bb: 0xe0009bc4, + 0x122bc: 0xe000a12f, 0x122be: 0xe000496a, + // Block 0x48b, offset 0x122c0 + 0x122c0: 0xe0004889, 0x122c1: 0xe0004832, 0x122c3: 0xe0006344, + 0x122c7: 0xe0008a2d, + 0x122ca: 0xe0006bc8, 0x122cb: 0xe0004c8c, + 0x122cc: 0xe0009c89, 0x122cd: 0xe00093bf, 0x122ce: 0xe000927e, + 0x122d0: 0xe0004b87, 0x122d3: 0xe00049c6, + 0x122e5: 0xe000a40c, 0x122e6: 0xe0007fb2, 0x122e7: 0xe000936b, + 0x122e8: 0xe0004a39, 0x122e9: 0xe0004482, 0x122ea: 0xe000445b, + 0x122ed: 0xe0006d5c, + 0x122f2: 0xe00048ee, + 0x122f9: 0xe000488c, 0x122fb: 0xe0004eaf, + 0x122fd: 0xe0008d19, 0x122ff: 0xe0004f6b, + // Block 0x48c, offset 0x12300 + 0x12300: 0xe0008949, 0x12302: 0xe000761b, + 0x12305: 0xe0008e59, + 0x1230a: 0xe00064fc, 0x1230b: 0xe0009c7e, + 0x12311: 0xe00058a5, 0x12312: 0xe00062b8, 0x12313: 0xe0005bf4, + 0x12314: 0xe00070c3, 0x12317: 0xe000887a, + 0x12319: 0xe0009efa, 0x1231b: 0xe0004ee2, + 0x1231e: 0xe000982c, 0x1231f: 0xe0008756, + 0x12321: 0xe0006051, 0x12323: 0xe0007881, + 0x1232b: 0xe0004611, + 0x12335: 0xe00096eb, + 0x12338: 0xe00062d8, 0x12339: 0xe00071c5, 0x1233a: 0xe000a556, 0x1233b: 0xe0004e7f, + 0x1233d: 0xe0008f6d, + // Block 0x48d, offset 0x12340 + 0x12343: 0xe0006540, + 0x12344: 0xe0004318, 0x12347: 0xe0009982, + 0x12348: 0xe0007ec5, 0x1234a: 0xe0005c51, 0x1234b: 0xe0004be4, + 0x12350: 0xe0009b38, 0x12352: 0xe000808e, 0x12353: 0xe00072ed, + 0x12358: 0xe0004f23, 0x12359: 0xe0005714, 0x1235a: 0xe00072c5, + 0x1235f: 0xe0005099, + 0x12361: 0xe0006ce0, 0x12362: 0xe0009ae1, + 0x12366: 0xe0005691, + 0x1236b: 0xe000a71f, + 0x12375: 0xe0006c14, + 0x1237f: 0xe0004414, + // Block 0x48e, offset 0x12380 + 0x12380: 0xe000534e, + 0x12384: 0xe00045b9, + 0x12389: 0xe0008b9d, + 0x1238d: 0xe000791b, 0x1238e: 0xe0004fc7, + 0x12390: 0xe0009614, + 0x12394: 0xe000548a, 0x12397: 0xe0006590, + 0x1239c: 0xe000a6d3, 0x1239d: 0xe0009015, 0x1239f: 0xe00041cf, + 0x123a0: 0xe0004761, 0x123a2: 0xe000457c, 0x123a3: 0xe000875a, + 0x123ae: 0xe000559c, + 0x123b3: 0xe0006a57, + 0x123b6: 0xe0007b0f, + 0x123bb: 0xe000a0d7, + 0x123bc: 0xe0008386, 0x123bf: 0xe0007b0b, + // Block 0x48f, offset 0x123c0 + 0x123c2: 0xe0005542, 0x123c3: 0xe0004e5e, + 0x123d3: 0xe0005a9a, + 0x123da: 0xe00058f5, 0x123db: 0xe0009001, + 0x123dc: 0xe000488f, 0x123dd: 0xe00055e5, 0x123de: 0xe0007a9f, 0x123df: 0xe0005954, + 0x123ea: 0xe0005958, + 0x123ec: 0xe0009a3a, + 0x123f6: 0xe000a249, + 0x123fb: 0xe00077e0, + 0x123fc: 0xe0009618, + // Block 0x490, offset 0x12400 + 0x12402: 0xe0006310, 0x12403: 0xe000936f, + 0x12404: 0xe00057b3, + 0x1240a: 0xe0004e23, + 0x1240c: 0xe000875e, + 0x12411: 0xe00092ff, 0x12412: 0xe00057b7, + 0x12416: 0xe0005803, + 0x1241e: 0xe0005a5c, + 0x12420: 0xe000a8eb, 0x12421: 0xe000925a, 0x12423: 0xe000a8a3, + 0x1242c: 0xe000a1ce, + 0x12432: 0xe0007f26, + 0x12437: 0xe000a96d, + 0x12438: 0xe0007790, 0x12439: 0xe0008447, 0x1243a: 0xe000509c, 0x1243b: 0xe000a7fa, + 0x1243d: 0xe000a8ef, 0x1243e: 0xe0004a6d, 0x1243f: 0xe000435c, + // Block 0x491, offset 0x12440 + 0x12443: 0xe0006c8c, + 0x12446: 0xe000a8f3, 0x12447: 0xe000a261, + 0x12449: 0xe0004681, + 0x1244c: 0xe000418d, 0x1244e: 0xe0009b6c, + 0x12450: 0xe0004c8f, + 0x12454: 0xe000a242, + 0x12459: 0xe000a90f, 0x1245a: 0xe0006ee8, 0x1245b: 0xe0004360, + 0x1245f: 0xe00079ba, + 0x12460: 0xe00095cc, 0x12461: 0xe000a5cc, 0x12462: 0xe000907f, 0x12463: 0xe0008ba1, + 0x12464: 0xe000925d, 0x12465: 0xe000668b, 0x12466: 0xe0006153, 0x12467: 0xe0005135, + 0x1246a: 0xe0007e6b, + 0x12472: 0xe000701e, + 0x12477: 0xe000593c, + 0x12478: 0xe0004e9a, 0x1247b: 0xe0006b2d, + 0x1247f: 0xe00060cc, + // Block 0x492, offset 0x12480 + 0x12480: 0xe0007f0a, 0x12482: 0xe0008d91, 0x12483: 0xe0007737, + 0x12484: 0xe0009121, 0x12486: 0xe0009c03, + 0x12489: 0xe00072f1, 0x1248a: 0xe00071c8, + 0x1248d: 0xe0009f24, + 0x12491: 0xe0005047, + 0x12496: 0xe000748d, + 0x12498: 0xe00086ca, + 0x1249e: 0xe0008092, + 0x124a2: 0xe00096b8, + 0x124a4: 0xe0006d28, + 0x124ab: 0xe0009b88, + 0x124ad: 0xe0004418, 0x124ae: 0xe00059e0, 0x124af: 0xe0006a5b, + 0x124b2: 0xe0006f6c, 0x124b3: 0xe0007252, + 0x124b5: 0xe0005352, 0x124b7: 0xe0008362, + 0x124ba: 0xe0006c40, + 0x124bc: 0xe00041f8, 0x124bd: 0xe000a763, 0x124bf: 0xe00089a5, + // Block 0x493, offset 0x124c0 + 0x124c1: 0xe000a824, + 0x124c4: 0xe00045d1, 0x124c5: 0xe000841a, 0x124c6: 0xe0004c92, + 0x124cb: 0xe0006156, + 0x124cd: 0xe0006054, 0x124cf: 0xe0005f18, + 0x124d2: 0xe00055bd, 0x124d3: 0xe00082fa, + 0x124d4: 0xe0006975, 0x124d6: 0xe0006978, 0x124d7: 0xe000697b, + 0x124d8: 0xe000697e, 0x124da: 0xe0009373, 0x124db: 0xe0006057, + 0x124eb: 0xe000a43c, + 0x124ec: 0xe0004c95, 0x124ef: 0xe000541e, + 0x124f3: 0xe0009985, + 0x124ff: 0xe0006c34, + // Block 0x494, offset 0x12500 + 0x12505: 0xe000940b, + 0x12508: 0xe00089a9, + 0x1250f: 0xe00075a5, + 0x12510: 0xe00088bf, 0x12511: 0xe000626c, 0x12513: 0xe0005f6c, + 0x1251b: 0xe00068c0, + 0x12523: 0xe000509f, + 0x12524: 0xe000853e, + 0x12533: 0xe0007d32, + 0x12534: 0xe00071cb, 0x12537: 0xe0006ab7, + 0x12538: 0xe0007b63, + 0x1253e: 0xe0006554, 0x1253f: 0xe0004e82, + // Block 0x495, offset 0x12540 + 0x12540: 0xe0008ba5, 0x12541: 0xe000900d, 0x12542: 0xe0004c98, 0x12543: 0xe0009d5c, + 0x1254b: 0xe00086b2, + 0x1254e: 0xe0006558, 0x1254f: 0xe00054f7, + 0x12550: 0xe0006e14, 0x12552: 0xe0005eef, + 0x12554: 0xe000a8db, 0x12555: 0xe0006be8, 0x12557: 0xe000a06b, + 0x12559: 0xe0007cd0, 0x1255a: 0xe0007c91, 0x1255b: 0xe0007529, + 0x1255c: 0xe0006b9c, 0x1255d: 0xe00079bd, 0x1255e: 0xe000a519, 0x1255f: 0xe00043c0, + 0x12560: 0xe0009082, + 0x12568: 0xe000495e, 0x1256a: 0xe0007e51, + 0x1256d: 0xe0007bf2, + 0x12570: 0xe0009c06, 0x12572: 0xe000500f, + 0x12574: 0xe0009d48, 0x12576: 0xe00061a9, + 0x1257a: 0xe0004639, + 0x1257d: 0xe00050a2, 0x1257e: 0xe0006884, + // Block 0x496, offset 0x12580 + 0x12581: 0xe0007565, 0x12582: 0xe00050a5, 0x12583: 0xe0007cfe, + 0x12584: 0xe00080be, 0x12585: 0xe0008116, 0x12586: 0xe000a163, 0x12587: 0xe0007a33, + 0x12588: 0xe0009a62, 0x12589: 0xe0009a86, + 0x1258c: 0xe0005601, 0x1258d: 0xe000a4a5, + 0x12590: 0xe00060ac, 0x12592: 0xe00060d0, 0x12593: 0xe000543a, + 0x12594: 0xe0005fb0, 0x12595: 0xe00061e5, 0x12596: 0xe000991e, + 0x12598: 0xe00069e7, 0x12599: 0xe0006b30, 0x1259a: 0xe0009085, 0x1259b: 0xe0009d6c, + 0x125ab: 0xe0005ea3, + 0x125ac: 0xe0005f33, 0x125ae: 0xe000887d, + 0x125b0: 0xe0009b3c, 0x125b1: 0xe0009ae4, 0x125b3: 0xe0009fff, + 0x125b8: 0xe0006981, 0x125b9: 0xe0008251, 0x125bb: 0xe00099bd, + 0x125bc: 0xe0007060, 0x125bd: 0xe0004835, 0x125be: 0xe00095e8, 0x125bf: 0xe0007a37, + // Block 0x497, offset 0x125c0 + 0x125c1: 0xe000a664, 0x125c2: 0xe000a395, + 0x125c4: 0xe0006f1c, 0x125c5: 0xe0007255, 0x125c6: 0xe000857a, + 0x125c9: 0xe0009514, 0x125ca: 0xe00062dc, + 0x125cc: 0xe0009f95, + 0x125d0: 0xe0005cb4, 0x125d1: 0xe00082ae, 0x125d3: 0xe000a51d, + 0x125d4: 0xe0004364, 0x125d5: 0xe0006578, 0x125d7: 0xe0006b33, + 0x125d9: 0xe0009e28, 0x125da: 0xe000862f, 0x125db: 0xe000655c, + 0x125dc: 0xe00090c4, 0x125dd: 0xe00070c6, + 0x125e0: 0xe0005a60, 0x125e1: 0xe0009e86, 0x125e2: 0xe0009cdf, 0x125e3: 0xe00083de, + 0x125e5: 0xe00052fc, + 0x125e8: 0xe0008ec2, 0x125eb: 0xe000a2ad, + 0x125ee: 0xe0006348, 0x125ef: 0xe0006270, + 0x125f0: 0xe0009c09, 0x125f1: 0xe000774b, 0x125f3: 0xe0007b67, + // Block 0x498, offset 0x12600 + 0x12604: 0xe000a6fa, 0x12607: 0xe0008542, + 0x1260a: 0xe0009558, 0x1260b: 0xe0007885, + 0x1260c: 0xe00059c0, + 0x12611: 0xe000668e, 0x12612: 0xe0007033, + 0x12617: 0xe0007021, + 0x12619: 0xe00071ce, 0x1261b: 0xe0005787, + 0x1261e: 0xe0005655, 0x1261f: 0xe00084b0, + 0x12625: 0xe0009125, 0x12627: 0xe0008254, + 0x12629: 0xe0006f20, 0x1262a: 0xe000a521, 0x1262b: 0xe000a28d, + 0x1262c: 0xe0007114, 0x1262e: 0xe000559f, + 0x12632: 0xe0008ec5, + 0x12635: 0xe00072f5, 0x12636: 0xe000a88b, + 0x12638: 0xe0004b15, 0x12639: 0xe000811a, 0x1263a: 0xe000602c, 0x1263b: 0xe000a624, + 0x1263c: 0xe0007dca, 0x1263d: 0xe000a903, 0x1263e: 0xe0009ce2, + // Block 0x499, offset 0x12640 + 0x12641: 0xe0005c33, + 0x12659: 0xe0008ab5, 0x1265a: 0xe0008f71, + 0x1265c: 0xe0006a5f, + 0x12661: 0xe00063d8, 0x12663: 0xe0007ded, + 0x12664: 0xe0004bb6, 0x12665: 0xe00083ee, 0x12666: 0xe0009e89, 0x12667: 0xe0007bbf, + 0x12669: 0xe000a43f, 0x1266a: 0xe000583f, + 0x1266c: 0xe0005d03, 0x1266e: 0xe00067bf, + 0x12674: 0xe0007f2a, 0x12677: 0xe000a1aa, + 0x12678: 0xe0009a66, 0x12679: 0xe000a349, + 0x1267f: 0xe0009d6f, + // Block 0x49a, offset 0x12680 + 0x12682: 0xe00055a2, + 0x12685: 0xe0007ac3, 0x12687: 0xe00046e5, + 0x12688: 0xe0007063, 0x12689: 0xe0006fa4, + 0x1268c: 0xe0007f6a, 0x1268d: 0xe000a748, 0x1268e: 0xe0007a3b, + 0x12691: 0xe00070fc, 0x12693: 0xe0007a3f, + 0x12694: 0xe00086fa, 0x12695: 0xe000969a, 0x12696: 0xe0005d3f, + 0x126aa: 0xe000681f, 0x126ab: 0xe0004a9d, + 0x126af: 0xe0007769, + 0x126b2: 0xe00077c0, + 0x126b4: 0xe0007e39, 0x126b5: 0xe000a0db, 0x126b7: 0xe0005695, + 0x126b8: 0xe000a7a5, + 0x126bc: 0xe00058d1, 0x126bf: 0xe0009b40, + // Block 0x49b, offset 0x126c0 + 0x126c0: 0xe0008ba9, 0x126c3: 0xe0004e27, + 0x126c4: 0xe00099c0, 0x126c5: 0xe0006e18, 0x126c6: 0xe000a74b, 0x126c7: 0xe00050a8, + 0x126c8: 0xe0004de3, 0x126cb: 0xe0005db5, + 0x126cf: 0xe000a442, + 0x126d1: 0xe0007299, 0x126d2: 0xe0009491, + 0x126d6: 0xe00052c3, + 0x126d8: 0xe0005545, 0x126d9: 0xe0008e1d, 0x126da: 0xe0005bf7, + 0x126dd: 0xe00069ea, 0x126de: 0xe0007154, + 0x126e0: 0xe00069ed, 0x126e1: 0xe00053da, 0x126e2: 0xe0007a07, + 0x126e4: 0xe0007909, 0x126e5: 0xe0005b12, 0x126e6: 0xe0004368, + 0x126e8: 0xe0008bad, 0x126ea: 0xe0005c7c, 0x126eb: 0xe00083b2, + 0x126ec: 0xe0007388, 0x126ee: 0xe000a6d6, + 0x126f1: 0xe0007569, 0x126f3: 0xe00072f9, + 0x126f5: 0xe0007a43, 0x126f6: 0xe000587b, 0x126f7: 0xe000a4dd, + 0x126f8: 0xe000966c, 0x126f9: 0xe000797b, 0x126fa: 0xe0009518, 0x126fb: 0xe00095ec, + 0x126fc: 0xe000612c, + // Block 0x49c, offset 0x12700 + 0x12717: 0xe0006c58, + 0x12719: 0xe000a5d8, 0x1271a: 0xe0008880, 0x1271b: 0xe000431c, + 0x1271d: 0xe0009cb0, 0x1271f: 0xe0008bb1, + 0x12720: 0xe00044ca, 0x12721: 0xe0005548, 0x12723: 0xe0006b36, + 0x12724: 0xe00063b4, 0x12725: 0xe000761f, 0x12726: 0xe0007da6, + 0x12728: 0xe0007e8c, 0x1272b: 0xe0006f24, + 0x1272c: 0xe0009998, 0x1272d: 0xe00081b8, 0x1272f: 0xe000a167, + 0x12732: 0xe0006e74, + 0x12734: 0xe00042c0, 0x12736: 0xe0007b6b, 0x12737: 0xe0007aa3, + 0x12738: 0xe0008257, 0x1273a: 0xe000611d, + 0x1273c: 0xe0006208, 0x1273d: 0xe0008812, 0x1273e: 0xe000a4e1, + // Block 0x49d, offset 0x12740 + 0x12743: 0xe00064a1, + 0x12744: 0xe000620b, 0x12745: 0xe00059a0, + 0x1274a: 0xe0008ec8, + 0x1274d: 0xe0005356, 0x1274e: 0xe0005fd0, + 0x12751: 0xe0006de6, 0x12753: 0xe00068c4, + 0x12754: 0xe0008a31, 0x12756: 0xe000a445, + 0x12758: 0xe0006ce4, 0x1275b: 0xe00053de, + 0x1275c: 0xe0007491, 0x1275e: 0xe0008bb5, 0x1275f: 0xe000a668, + 0x12763: 0xe0006290, + 0x12767: 0xe0007f6e, + 0x1276b: 0xe000982f, + 0x1276e: 0xe000850e, 0x1276f: 0xe0009bdc, + 0x12772: 0xe000811e, 0x12773: 0xe00051f0, + 0x1277a: 0xe0006691, + // Block 0x49e, offset 0x12780 + 0x1278f: 0xe000548e, + 0x12790: 0xe0008122, + 0x12795: 0xe00060ec, 0x12796: 0xe0008f75, + 0x12798: 0xe000a133, + 0x1279c: 0xe0005c36, 0x1279d: 0xe0004c9b, 0x1279f: 0xe0006008, + 0x127a2: 0xe000856a, + 0x127a5: 0xe00067c2, 0x127a7: 0xe0005c9c, + 0x127aa: 0xe00047ba, 0x127ab: 0xe0007d0e, + 0x127af: 0xe0007066, + 0x127b1: 0xe0009129, 0x127b2: 0xe0007258, + 0x127b5: 0xe000838a, 0x127b6: 0xe0007f72, 0x127b7: 0xe000a4f5, + 0x127ba: 0xe0005315, + 0x127bd: 0xe0007f3a, + // Block 0x49f, offset 0x127c0 + 0x127c2: 0xe0006420, 0x127c3: 0xe0007d8a, + 0x127c4: 0xe00093c3, 0x127c5: 0xe0005fe0, + 0x127c8: 0xe000a4a8, 0x127c9: 0xe000a66c, 0x127cb: 0xe00085f0, + 0x127cc: 0xe00094c0, 0x127ce: 0xe000a399, + 0x127d1: 0xe000a628, 0x127d3: 0xe0008815, + 0x127d4: 0xe000554b, 0x127d5: 0xe000573c, + 0x127d9: 0xe000a6fd, + 0x127ec: 0xe000a4ab, 0x127ed: 0xe0009fb9, 0x127ef: 0xe000969d, + 0x127f4: 0xe0008901, 0x127f5: 0xe00062bc, 0x127f7: 0xe0005ac7, + 0x127f8: 0xe000a448, + 0x127fe: 0xe0004916, 0x127ff: 0xe0005e4b, + // Block 0x4a0, offset 0x12800 + 0x12801: 0xe00078ee, 0x12802: 0xe0009efd, + 0x12804: 0xe0007793, 0x12806: 0xe0009a52, + 0x12809: 0xe0005b16, + 0x1280c: 0xe0004fa3, 0x1280f: 0xe0005bfa, + 0x12811: 0xe000445e, 0x12813: 0xe0005d42, + 0x12814: 0xe0007a47, 0x12815: 0xe0008d1c, + 0x12819: 0xe0005386, 0x1281a: 0xe0004d31, + 0x12820: 0xe0005e0f, 0x12822: 0xe000a06f, 0x12823: 0xe0005974, + 0x1282a: 0xe000844a, 0x1282b: 0xe0005e4f, + 0x1282c: 0xe0009088, 0x1282d: 0xe0005ef3, + 0x12830: 0xe0006940, 0x12831: 0xe00071d1, 0x12832: 0xe00093c7, 0x12833: 0xe00087ca, + 0x12838: 0xe0008ae1, + 0x1283c: 0xe000980e, 0x1283e: 0xe00078bd, 0x1283f: 0xe0008762, + // Block 0x4a1, offset 0x12840 + 0x12841: 0xe0007b6f, + 0x1284f: 0xe000833a, + 0x12851: 0xe00063b8, + 0x12854: 0xe000463d, 0x12857: 0xe000920d, + 0x12858: 0xe000634c, 0x12859: 0xe0004ee5, 0x1285a: 0xe000729d, 0x1285b: 0xe00086ea, + 0x1285c: 0xe00086fe, 0x1285d: 0xe000a913, 0x1285e: 0xe0005a9d, 0x1285f: 0xe0006e1c, + 0x12861: 0xe0005619, 0x12862: 0xe000a670, + 0x12864: 0xe0008316, 0x12866: 0xe0005bcb, + 0x1286d: 0xe00053e2, 0x1286e: 0xe0008d1f, 0x1286f: 0xe0007581, + 0x12870: 0xe0004e61, + 0x12874: 0xe00088c2, + 0x12878: 0xe0006c18, 0x1287a: 0xe00086ce, + 0x1287c: 0xe0005659, 0x1287d: 0xe0006694, 0x1287e: 0xe0005d61, + // Block 0x4a2, offset 0x12880 + 0x12881: 0xe0006c78, 0x12882: 0xe0009235, + 0x12884: 0xe0009231, 0x12886: 0xe0007f0d, + 0x12888: 0xe00095a4, 0x12889: 0xe000436c, 0x1288b: 0xe000a727, + 0x1288c: 0xe000745a, 0x1288d: 0xe0008ecb, 0x1288e: 0xe0009d94, + 0x12890: 0xe0008096, 0x12892: 0xe000a53d, + 0x12894: 0xe000a44b, 0x12897: 0xe0004258, + 0x12898: 0xe0006c1c, + 0x1289f: 0xe0005cc4, + 0x128a1: 0xe0008d94, 0x128a3: 0xe000a073, + 0x128a4: 0xe0009c37, 0x128a7: 0xe0005a7f, + 0x128a8: 0xe0006de9, + 0x128ae: 0xe000a6d9, 0x128af: 0xe00092b3, + 0x128b1: 0xe00089ad, 0x128b3: 0xe0007c94, + 0x128b6: 0xe0008a35, + 0x128b9: 0xe00053e6, + 0x128be: 0xe00053a2, + // Block 0x4a3, offset 0x128c0 + 0x128c0: 0xe00045bd, 0x128c1: 0xe0009b1c, 0x128c2: 0xe00059e4, 0x128c3: 0xe0005295, + 0x128c6: 0xe00068c8, 0x128c7: 0xe0006d60, + 0x128c9: 0xe000725b, 0x128ca: 0xe0007bf5, + 0x128d5: 0xe000739e, + 0x128d8: 0xe000526d, 0x128da: 0xe0007b73, 0x128db: 0xe00060f0, + 0x128de: 0xe00069f0, 0x128df: 0xe0008c8c, + 0x128e0: 0xe000a44e, 0x128e1: 0xe000825a, + 0x128e4: 0xe000554e, + 0x128e9: 0xe000a451, 0x128eb: 0xe0005807, + 0x128ec: 0xe0008f79, 0x128ee: 0xe0006711, 0x128ef: 0xe0009b20, + 0x128f1: 0xe0006a63, 0x128f3: 0xe0008702, + 0x128f4: 0xe0007bc3, + 0x128fa: 0xe000955c, + 0x128fe: 0xe00058f8, + // Block 0x4a4, offset 0x12900 + 0x12901: 0xe0007889, + 0x12905: 0xe000a39d, 0x12906: 0xe00055c1, 0x12907: 0xe0007e5d, + 0x12909: 0xe0006b39, 0x1290b: 0xe000756d, + 0x1290f: 0xe0005c39, + 0x12911: 0xe0009ee3, 0x12912: 0xe0006d64, 0x12913: 0xe0009239, + 0x12915: 0xe0006a67, + 0x12918: 0xe0005aa0, 0x1291a: 0xe000a077, 0x1291b: 0xe0007b77, + 0x1291c: 0xe0008346, 0x1291d: 0xe0005940, 0x1291e: 0xe0008bb9, 0x1291f: 0xe0007069, + 0x12923: 0xe000a1ad, + 0x12926: 0xe00088c5, 0x12927: 0xe0005b36, + 0x12928: 0xe0005b65, + 0x1292f: 0xe0007b7b, + 0x12930: 0xe000623b, 0x12932: 0xe00059f0, + 0x12937: 0xe00084c2, + 0x12938: 0xe000961c, + 0x1293c: 0xe00078c1, 0x1293e: 0xe00057bb, + // Block 0x4a5, offset 0x12940 + 0x12944: 0xe0006fb4, + 0x1294c: 0xe0004a71, 0x1294e: 0xe0007b13, + 0x12950: 0xe000a3a1, 0x12951: 0xe0007177, 0x12953: 0xe00057d7, + 0x12958: 0xe0009b70, + 0x1295d: 0xe000a454, 0x1295e: 0xe0009d06, + 0x12963: 0xe0005e53, + 0x12969: 0xe0007b17, 0x1296b: 0xe000a559, + 0x1296f: 0xe0008c49, + 0x12970: 0xe000a6dc, + 0x12978: 0xe0004c9e, + 0x1297c: 0xe0008682, 0x1297d: 0xe0008818, 0x1297e: 0xe0008839, + // Block 0x4a6, offset 0x12980 + 0x12981: 0xe0005138, + 0x12985: 0xe00046e9, 0x12986: 0xe00061d9, + 0x1298a: 0xe0009964, + 0x1298e: 0xe0007adb, + 0x12992: 0xe00096ee, + 0x12995: 0xe000a183, + 0x12998: 0xe000a8a7, 0x12999: 0xe00085f3, 0x1299a: 0xe0004b19, + 0x129a1: 0xe0008bbd, + 0x129a4: 0xe000706c, + 0x129ab: 0xe000a2b1, + 0x129ac: 0xe00044cd, 0x129ad: 0xe0009b74, 0x129ae: 0xe0009ebf, 0x129af: 0xe000a3a5, + 0x129b0: 0xe0009ec2, 0x129b3: 0xe000663c, + 0x129b7: 0xe0008ece, + 0x129b8: 0xe0008686, 0x129b9: 0xe0008ae5, + // Block 0x4a7, offset 0x129c0 + 0x129c8: 0xe00059c4, 0x129ca: 0xe00078c5, 0x129cb: 0xe000a857, + 0x129cf: 0xe0007c97, + 0x129d3: 0xe00047e4, + 0x129d8: 0xe000a525, 0x129d9: 0xe000578b, + 0x129dc: 0xe000a812, 0x129dd: 0xe000902d, 0x129df: 0xe0007a4b, + 0x129f1: 0xe00046ed, + 0x129f9: 0xe0009d98, + 0x129fd: 0xe000674d, + // Block 0x4a8, offset 0x12a00 + 0x12a04: 0xe000a7ca, + 0x12a09: 0xe0007933, + 0x12a0c: 0xe0008f7d, + 0x12a19: 0xe00064a4, 0x12a1a: 0xe0006888, + 0x12a1c: 0xe000a4f9, 0x12a1e: 0xe0005605, + 0x12a20: 0xe000738b, 0x12a21: 0xe0006159, + 0x12a26: 0xe00096f1, + 0x12a2d: 0xe0004769, 0x12a2e: 0xe000a8bb, 0x12a2f: 0xe00086b6, + 0x12a30: 0xe0007adf, 0x12a31: 0xe000a291, + 0x12a36: 0xe0007a4f, + // Block 0x4a9, offset 0x12a40 + 0x12a46: 0xe000a023, 0x12a47: 0xe000a83f, + 0x12a49: 0xe0005978, 0x12a4a: 0xe000a80a, + 0x12a4c: 0xe000a674, 0x12a4e: 0xe00089b1, + 0x12a50: 0xe0007b7f, 0x12a52: 0xe00081eb, + 0x12a56: 0xe00051c4, 0x12a57: 0xe00051d0, + 0x12a59: 0xe0007a53, + 0x12a5c: 0xe0008076, 0x12a5e: 0xe0006c44, + 0x12a62: 0xe0004765, + 0x12a64: 0xe0005f1b, 0x12a65: 0xe000a5dc, 0x12a66: 0xe000a790, 0x12a67: 0xe0008d22, + 0x12a68: 0xe0007e8f, 0x12a69: 0xe0006500, + 0x12a6c: 0xe000788d, 0x12a6e: 0xe00085f6, + 0x12a7d: 0xe0006e78, + // Block 0x4aa, offset 0x12a80 + 0x12a80: 0xe0007b3b, + 0x12a84: 0xe0007495, 0x12a85: 0xe0007d36, 0x12a87: 0xe000a766, + 0x12a89: 0xe000809a, 0x12a8a: 0xe00080de, + 0x12a8f: 0xe000a7ce, + 0x12a92: 0xe000a3a9, + 0x12a94: 0xe0007f76, + 0x12a99: 0xe000a946, 0x12a9b: 0xe0009f27, + 0x12a9f: 0xe00072a1, + 0x12aa0: 0xe00073b6, 0x12aa2: 0xe0006751, + 0x12aa4: 0xe00084de, + 0x12aa8: 0xe00081ee, + 0x12aac: 0xe0007c9a, 0x12aaf: 0xe0006eec, + 0x12ab1: 0xe0007ac7, 0x12ab2: 0xe000476d, + 0x12ab9: 0xe000a949, 0x12aba: 0xe000a94c, + 0x12abe: 0xe00099c3, + // Block 0x4ab, offset 0x12ac0 + 0x12ac1: 0xe0007b2f, 0x12ac3: 0xe0007a57, + 0x12ac8: 0xe0005718, 0x12ac9: 0xe0005609, 0x12acb: 0xe0009748, + 0x12ace: 0xe0005baa, + 0x12ad0: 0xe0005d65, 0x12ad2: 0xe000706f, + 0x12ad4: 0xe0006504, 0x12ad5: 0xe0007a5b, 0x12ad6: 0xe0007585, + 0x12ad9: 0xe0009be4, + 0x12adf: 0xe0007b83, + 0x12ae0: 0xe0008086, + 0x12ae5: 0xe0008d25, 0x12ae6: 0xe00092b7, 0x12ae7: 0xe00071d4, + 0x12aec: 0xe000a827, 0x12aed: 0xe0009780, 0x12aee: 0xe0006fa8, + 0x12af9: 0xe000a970, 0x12afb: 0xe000a7d2, + 0x12afc: 0xe00074e1, 0x12afe: 0xe0005551, 0x12aff: 0xe0007ec8, + // Block 0x4ac, offset 0x12b00 + 0x12b00: 0xe000a27d, + 0x12b06: 0xe0009ee7, 0x12b07: 0xe0006f54, + 0x12b0b: 0xe000a7e6, + 0x12b0c: 0xe0004b3d, 0x12b0d: 0xe0006bcc, + 0x12b10: 0xe0005aa3, + 0x12b14: 0xe000a973, 0x12b17: 0xe0007b3f, + 0x12b1a: 0xe000783d, 0x12b1b: 0xe00057bf, + 0x12b1f: 0xe0004aa1, + 0x12b25: 0xe0009794, + 0x12b28: 0xe0009303, 0x12b2a: 0xe0008d28, + 0x12b2c: 0xe0009ce5, 0x12b2d: 0xe000883f, + 0x12b30: 0xe0008126, 0x12b32: 0xe00081bb, + 0x12b35: 0xe000868a, 0x12b36: 0xe00067c5, + 0x12b38: 0xe0009d09, 0x12b39: 0xe0005327, 0x12b3a: 0xe0007815, 0x12b3b: 0xe000a74e, + 0x12b3d: 0xe0006ce8, 0x12b3e: 0xe0008474, + // Block 0x4ad, offset 0x12b40 + 0x12b40: 0xe0006cec, 0x12b42: 0xe00087ce, + 0x12b46: 0xe0008766, 0x12b47: 0xe0009dc0, + 0x12b48: 0xe0009d30, 0x12b4b: 0xe0008a39, + 0x12b4c: 0xe0009d72, + 0x12b52: 0xe0009638, 0x12b53: 0xe0006474, + 0x12b54: 0xe0006314, 0x12b56: 0xe00082b1, + 0x12b58: 0xe00055c5, 0x12b59: 0xe00075bd, 0x12b5a: 0xe0009c43, 0x12b5b: 0xe0007fed, + 0x12b5d: 0xe0006a6b, 0x12b5f: 0xe000605a, + 0x12b61: 0xe000605d, 0x12b62: 0xe0005b68, + 0x12b67: 0xe00060b0, + 0x12b69: 0xe00061e9, + 0x12b6f: 0xe0004892, + 0x12b72: 0xe0006d68, + 0x12b74: 0xe00088c8, + 0x12b78: 0xe0008632, 0x12b79: 0xe0009cbe, + 0x12b7d: 0xe00045e9, + // Block 0x4ae, offset 0x12b80 + 0x12b80: 0xe0006dad, 0x12b81: 0xe0005d06, + 0x12b87: 0xe00068cc, + 0x12b8d: 0xe0004540, + 0x12b92: 0xe000a4ae, + 0x12b96: 0xe00057a7, + 0x12ba2: 0xe00055c9, + 0x12ba7: 0xe000a94f, + 0x12bac: 0xe00045ed, 0x12baf: 0xe0006560, + 0x12bb3: 0xe00086ba, + 0x12bb4: 0xe000768f, 0x12bb5: 0xe000a980, + // Block 0x4af, offset 0x12bc0 + 0x12bc0: 0xe0006cf0, 0x12bc2: 0xe0004b1d, + 0x12bc4: 0xe0008905, + 0x12bc9: 0xe00069f3, + 0x12bce: 0xe000771f, + 0x12bd0: 0xe000a457, 0x12bd2: 0xe00069f6, + 0x12bd7: 0xe0004ca1, + 0x12bd9: 0xe0008883, + 0x12be1: 0xe0004be7, 0x12be2: 0xe000a043, + 0x12be5: 0xe0007341, + 0x12be8: 0xe0008352, 0x12be9: 0xe00071d7, + 0x12bf4: 0xe0009e59, 0x12bf7: 0xe0004615, + 0x12bf8: 0xe0005d09, 0x12bf9: 0xe000a34d, 0x12bfa: 0xe000838e, 0x12bfb: 0xe0006c20, + 0x12bfc: 0xe0005843, 0x12bfd: 0xe0009d75, + // Block 0x4b0, offset 0x12c00 + 0x12c09: 0xe000513b, 0x12c0a: 0xe0007bf8, + 0x12c13: 0xe0004a1d, + 0x12c16: 0xe00093cb, 0x12c17: 0xe000844d, + 0x12c18: 0xe0008cbf, 0x12c19: 0xe0008853, 0x12c1b: 0xe0005f70, + 0x12c1c: 0xe000741e, 0x12c1d: 0xe0008e01, + 0x12c22: 0xe000a4b1, + 0x12c25: 0xe0007e7d, 0x12c27: 0xe0007dcd, + 0x12c28: 0xe000815e, 0x12c29: 0xe0006fe8, 0x12c2a: 0xe0008886, 0x12c2b: 0xe0006120, + 0x12c31: 0xe000528c, + 0x12c34: 0xe000a7a8, 0x12c36: 0xe000825d, 0x12c37: 0xe0008260, + 0x12c3e: 0xe000a62c, 0x12c3f: 0xe000812a, + // Block 0x4b1, offset 0x12c40 + 0x12c43: 0xe0007796, + 0x12c44: 0xe0007d02, 0x12c45: 0xe0006b3c, + 0x12c50: 0xe000876a, 0x12c52: 0xe0007c9d, + 0x12c57: 0xe0004e4b, + 0x12c58: 0xe0009e5c, + 0x12c5c: 0xe0005d89, + 0x12c60: 0xe0005bce, + 0x12c68: 0xe00055cd, 0x12c69: 0xe0007c2e, 0x12c6a: 0xe000a6df, 0x12c6b: 0xe000a271, + 0x12c6c: 0xe000a1d1, 0x12c6f: 0xe000a7ea, + 0x12c70: 0xe0007b87, 0x12c72: 0xe000a713, + 0x12c75: 0xe00059f8, 0x12c77: 0xe0004b41, + 0x12c78: 0xe00071da, 0x12c7a: 0xe00053a6, 0x12c7b: 0xe000a24d, + 0x12c7c: 0xe000623e, + // Block 0x4b2, offset 0x12c80 + 0x12c81: 0xe000a275, + 0x12c84: 0xe000a2b5, 0x12c86: 0xe00085f9, 0x12c87: 0xe000713c, + 0x12c88: 0xe0005aca, 0x12c89: 0xe0007d06, 0x12c8b: 0xe0007e55, + 0x12c8e: 0xe0008bc1, + 0x12c94: 0xe000951c, 0x12c95: 0xe0004298, 0x12c96: 0xe0004ca4, 0x12c97: 0xe0007ff0, + 0x12c98: 0xe00050ab, + 0x12c9e: 0xe0006822, 0x12c9f: 0xe0006274, + 0x12ca0: 0xe0004485, + 0x12ca6: 0xe000464d, 0x12ca7: 0xe000831a, + 0x12ca9: 0xe0007df1, 0x12cab: 0xe0005f36, + 0x12cad: 0xe0006a6f, + 0x12cb2: 0xe0005a1c, 0x12cb3: 0xe00054dc, + 0x12cb7: 0xe0008b01, + 0x12cb9: 0xe000a2b9, 0x12cbb: 0xe0009d0c, + // Block 0x4b3, offset 0x12cc0 + 0x12cc0: 0xe00062e0, 0x12cc2: 0xe0004190, + 0x12cc6: 0xe00084b3, + 0x12cc8: 0xe00041d2, 0x12cc9: 0xe0006278, 0x12cca: 0xe0006bec, + 0x12ccc: 0xe0009f99, 0x12ccd: 0xe000912d, 0x12ccf: 0xe00041fc, + 0x12cd2: 0xe0009191, + 0x12cd6: 0xe0004b21, + 0x12cd9: 0xe00049a2, + 0x12cdd: 0xe000a793, 0x12cde: 0xe000578f, + 0x12ce0: 0xe0008ed1, 0x12ce2: 0xe0008392, 0x12ce3: 0xe00072fd, + 0x12ce4: 0xe0006697, 0x12ce5: 0xe0008477, 0x12ce6: 0xe000a21a, + 0x12ce9: 0xe000a3ad, 0x12cea: 0xe0004eb2, 0x12ceb: 0xe0009936, + 0x12ced: 0xe0006350, 0x12cee: 0xe0009d87, + 0x12cf5: 0xe0008c4d, 0x12cf7: 0xe000615c, + 0x12cf9: 0xe0006fec, + 0x12cfd: 0xe0008bc5, 0x12cfe: 0xe000a2bd, + // Block 0x4b4, offset 0x12d00 + 0x12d01: 0xe0006e7c, 0x12d03: 0xe0004ca7, + 0x12d04: 0xe000a2f5, 0x12d05: 0xe0005847, 0x12d06: 0xe0005d0c, 0x12d07: 0xe00071dd, + 0x12d09: 0xe0005c3c, + 0x12d13: 0xe0007df5, + 0x12d1b: 0xe0009a6a, + 0x12d20: 0xe00089b5, 0x12d21: 0xe00072a5, 0x12d22: 0xe0009b24, + 0x12d24: 0xe0008857, 0x12d25: 0xe000a45a, 0x12d26: 0xe00050ae, + 0x12d28: 0xe000491a, 0x12d2a: 0xe00050b1, 0x12d2b: 0xe0006755, + 0x12d2c: 0xe0007df9, 0x12d2e: 0xe0008e21, 0x12d2f: 0xe0004a75, + 0x12d30: 0xe0007ae3, 0x12d31: 0xe0008d97, 0x12d32: 0xe00064ce, 0x12d33: 0xe0005db9, + 0x12d34: 0xe0004fcb, 0x12d35: 0xe0006984, 0x12d36: 0xe0009ce8, + 0x12d38: 0xe0009b28, 0x12d3a: 0xe000657c, + 0x12d3f: 0xe000a4e5, + // Block 0x4b5, offset 0x12d40 + 0x12d40: 0xe0007ff3, 0x12d41: 0xe0006060, 0x12d43: 0xe0009902, + 0x12d44: 0xe0006e80, 0x12d45: 0xe0008cc2, 0x12d46: 0xe0007010, + 0x12d4b: 0xe00081be, + 0x12d4e: 0xe000a1d4, + 0x12d55: 0xe000a002, 0x12d57: 0xe000812e, + 0x12d59: 0xe000527d, 0x12d5a: 0xe000a45d, 0x12d5b: 0xe0007b8b, + 0x12d5c: 0xe0008263, 0x12d5d: 0xe000a6a8, 0x12d5e: 0xe0006db0, 0x12d5f: 0xe000738e, + 0x12d60: 0xe0005c3f, 0x12d62: 0xe0007f7a, 0x12d63: 0xe0007186, + 0x12d64: 0xe0007ecb, 0x12d65: 0xe0007d12, + 0x12d68: 0xe0009131, 0x12d69: 0xe000a3b1, 0x12d6a: 0xe0005de0, + 0x12d6d: 0xe0005492, 0x12d6f: 0xe000584b, + 0x12d70: 0xe0004b96, 0x12d71: 0xe0008a3d, 0x12d72: 0xe000940f, 0x12d73: 0xe0009281, + 0x12d7d: 0xe0008e5d, 0x12d7e: 0xe0004f6f, + // Block 0x4b6, offset 0x12d80 + 0x12d80: 0xe0009811, 0x12d82: 0xe00050b4, 0x12d83: 0xe0005d0f, + 0x12d86: 0xe0004d34, 0x12d87: 0xe0006e84, + 0x12d89: 0xe000597c, 0x12d8a: 0xe00061dd, 0x12d8b: 0xe000876e, + 0x12d98: 0xe0005d69, + 0x12d9c: 0xe000a678, 0x12d9d: 0xe0004b99, 0x12d9e: 0xe00062e4, 0x12d9f: 0xe00046f1, + 0x12da1: 0xe0009135, 0x12da3: 0xe00050b7, + 0x12da5: 0xe00046f5, 0x12da7: 0xe0006594, + 0x12da8: 0xe00092bb, 0x12daa: 0xe0008d2b, 0x12dab: 0xe0005496, + 0x12db0: 0xe000a5e0, 0x12db2: 0xe00071e0, + 0x12db5: 0xe00079c0, + 0x12db9: 0xe00072a9, + 0x12dbd: 0xe0006d43, 0x12dbf: 0xe0006e88, + // Block 0x4b7, offset 0x12dc0 + 0x12dc6: 0xe00091c5, + 0x12dca: 0xe00046f9, + 0x12dcf: 0xe0005b3a, + 0x12dd4: 0xe0007b8f, + 0x12dd8: 0xe0004a79, 0x12dda: 0xe00092bf, 0x12ddb: 0xe000a600, + 0x12ddc: 0xe00049f3, + 0x12de0: 0xe000a460, 0x12de2: 0xe0009f00, 0x12de3: 0xe0009d34, + 0x12de6: 0xe0007da9, + 0x12de9: 0xe0009560, + 0x12dee: 0xe0007d66, + 0x12df2: 0xe0009c5e, + 0x12df7: 0xe00085fc, + // Block 0x4b8, offset 0x12e00 + 0x12e01: 0xe0006640, 0x12e03: 0xe000987a, + 0x12e04: 0xe00045f1, + 0x12e0c: 0xe0004d37, 0x12e0d: 0xe0005f84, 0x12e0e: 0xe0008a41, + 0x12e11: 0xe0009031, 0x12e13: 0xe00065b0, + 0x12e15: 0xe0007d6a, + 0x12e18: 0xe0004320, 0x12e1a: 0xe0007571, 0x12e1b: 0xe00095f0, + 0x12e1e: 0xe0006d2c, 0x12e1f: 0xe0006d6c, + 0x12e23: 0xe0006bf0, + 0x12e25: 0xe0006d70, 0x12e26: 0xe0007072, + 0x12e28: 0xe0007f7e, 0x12e2b: 0xe000669a, + 0x12e2c: 0xe0007f82, + 0x12e30: 0xe00089b9, 0x12e31: 0xe0008266, 0x12e32: 0xe0004388, 0x12e33: 0xe00074e5, + 0x12e37: 0xe00051f4, + 0x12e38: 0xe00089bd, 0x12e3a: 0xe0008bc9, + 0x12e3f: 0xe0005f88, + // Block 0x4b9, offset 0x12e40 + 0x12e47: 0xe0004f0b, + 0x12e4a: 0xe0004771, 0x12e4b: 0xe0008a45, + 0x12e4c: 0xe00047bd, 0x12e4e: 0xe0004619, 0x12e4f: 0xe0007e80, + 0x12e51: 0xe00089c1, 0x12e53: 0xe000543e, + 0x12e54: 0xe0006354, + 0x12e59: 0xe0005c42, 0x12e5a: 0xe00068d0, 0x12e5b: 0xe0009139, + 0x12e5c: 0xe00098ba, 0x12e5d: 0xe000615f, + 0x12e60: 0xe0008a49, 0x12e62: 0xe0009f9d, + 0x12e64: 0xe00099fc, 0x12e65: 0xe0005889, 0x12e66: 0xe000a85a, 0x12e67: 0xe000588d, + 0x12e6a: 0xe0006508, 0x12e6b: 0xe000a583, + 0x12e6f: 0xe0008f81, + 0x12e70: 0xe000847a, + 0x12e75: 0xe000a55c, 0x12e76: 0xe000546a, + 0x12e78: 0xe00050ba, 0x12e7a: 0xe00043c4, + 0x12e7f: 0xe00050bd, + // Block 0x4ba, offset 0x12e80 + 0x12e86: 0xe00043c8, 0x12e87: 0xe0008ed4, + 0x12e88: 0xe00065b4, 0x12e8a: 0xe000963c, 0x12e8b: 0xe0009fa1, + 0x12e8e: 0xe0007078, 0x12e8f: 0xe0007075, + 0x12e91: 0xe000841d, + 0x12e94: 0xe0008c51, + 0x12e99: 0xe000a8df, 0x12e9a: 0xe0004d3a, + 0x12e9d: 0xe0006bf4, + 0x12ea3: 0xe0008041, + 0x12ea5: 0xe0004461, + 0x12ea9: 0xe000994c, 0x12eab: 0xe00079eb, + 0x12eb1: 0xe0009e8c, 0x12eb2: 0xe0009f6a, 0x12eb3: 0xe0004324, + 0x12eb4: 0xe00075ed, 0x12eb5: 0xe00085ff, + 0x12eb8: 0xe00053aa, 0x12eb9: 0xe000913d, + 0x12ebc: 0xe000565d, 0x12ebd: 0xe0008889, 0x12ebe: 0xe00091c9, + // Block 0x4bb, offset 0x12ec0 + 0x12ec0: 0xe0004d3d, 0x12ec2: 0xe0004193, 0x12ec3: 0xe000a2f9, + 0x12ec5: 0xe0006644, 0x12ec7: 0xe0009035, + 0x12eca: 0xe0008a4d, + 0x12ecd: 0xe000847d, 0x12ece: 0xe000a1d7, + 0x12ed2: 0xe0007891, 0x12ed3: 0xe00099ff, + 0x12ed4: 0xe00099c6, 0x12ed5: 0xe000a8ab, + 0x12ed8: 0xe00056c1, 0x12ed9: 0xe00046fd, 0x12edb: 0xe0009c6a, + 0x12ede: 0xe00069f9, + 0x12ee2: 0xe0005d12, 0x12ee3: 0xe00090c7, + 0x12ee4: 0xe0008e83, 0x12ee7: 0xe0006b9f, + 0x12ef0: 0xe00053ea, 0x12ef2: 0xe0005de3, 0x12ef3: 0xe0005dc5, + 0x12ef4: 0xe00099c9, + 0x12ef9: 0xe00069fc, 0x12efa: 0xe0006987, + 0x12efc: 0xe0004838, 0x12eff: 0xe00081f1, + // Block 0x4bc, offset 0x12f00 + 0x12f00: 0xe00078f1, 0x12f01: 0xe000994f, + 0x12f07: 0xe0008e61, + 0x12f08: 0xe00047e7, 0x12f09: 0xe00082b4, 0x12f0b: 0xe0009f5c, + 0x12f0d: 0xe0007895, + 0x12f10: 0xe00082b7, + 0x12f15: 0xe000a026, + 0x12f19: 0xe000707b, + 0x12f1f: 0xe0007d16, + 0x12f20: 0xe00094c4, 0x12f21: 0xe00093cf, 0x12f22: 0xe0006358, + 0x12f24: 0xe0005c45, 0x12f26: 0xe00071e3, 0x12f27: 0xe000a047, + 0x12f2f: 0xe0008de9, + 0x12f30: 0xe0005775, 0x12f33: 0xe000987d, + 0x12f34: 0xe00087d2, + 0x12f3b: 0xe0005bfd, + // Block 0x4bd, offset 0x12f40 + 0x12f42: 0xe0005bad, 0x12f43: 0xe0005ca4, + 0x12f46: 0xe0005acd, + 0x12f48: 0xe0009e5f, 0x12f49: 0xe000538a, + 0x12f4c: 0xe00076df, 0x12f4e: 0xe000425c, + 0x12f52: 0xe0008269, + 0x12f55: 0xe0007d8e, 0x12f56: 0xe0006598, + 0x12f58: 0xe000591f, + 0x12f5c: 0xe0008a51, + 0x12f61: 0xe00099cc, 0x12f62: 0xe00078c9, + 0x12f64: 0xe0008ab9, 0x12f65: 0xe000923d, 0x12f67: 0xe000595c, + 0x12f68: 0xe0004a49, 0x12f69: 0xe000575a, + 0x12f6c: 0xe0006e8c, 0x12f6d: 0xe0007bc7, 0x12f6e: 0xe0008396, 0x12f6f: 0xe0004d40, + 0x12f70: 0xe0007d6e, 0x12f71: 0xe0009b8c, 0x12f72: 0xe00089c5, + 0x12f78: 0xe00047c0, 0x12f7b: 0xe000571c, + 0x12f7c: 0xe00063bc, 0x12f7d: 0xe00064e8, 0x12f7e: 0xe00064ec, + // Block 0x4be, offset 0x12f80 + 0x12f80: 0xe0005023, 0x12f81: 0xe0008d9a, 0x12f83: 0xe000608d, + 0x12f84: 0xe0008909, 0x12f86: 0xe0004464, 0x12f87: 0xe000a67c, + 0x12f8b: 0xe0004895, + 0x12f8e: 0xe0004bea, + 0x12f90: 0xe000483b, 0x12f93: 0xe000a463, + 0x12f96: 0xe000a604, + 0x12f9a: 0xe0007799, 0x12f9b: 0xe000a769, + 0x12f9c: 0xe000a4b4, 0x12f9e: 0xe000a4b7, + 0x12fa4: 0xe0009d0f, + 0x12fac: 0xe000a04b, 0x12fae: 0xe0009f6d, + 0x12fb4: 0xe0008fb1, 0x12fb6: 0xe0006ba2, + 0x12fb8: 0xe0004dc7, 0x12fba: 0xe0009832, + 0x12fbf: 0xe000600c, + // Block 0x4bf, offset 0x12fc0 + 0x12fc2: 0xe0007ff6, 0x12fc3: 0xe00064a7, + 0x12fc6: 0xe000688c, + 0x12fc8: 0xe0007b93, 0x12fca: 0xe00084c6, + 0x12fcc: 0xe0007e3d, 0x12fcd: 0xe000a137, 0x12fce: 0xe000774f, + 0x12fd2: 0xe000a10f, + 0x12fd4: 0xe000a700, 0x12fd6: 0xe0004467, + 0x12fd9: 0xe00066af, 0x12fdb: 0xe0006ff0, + 0x12fdc: 0xe0005554, 0x12fde: 0xe00086d2, 0x12fdf: 0xe0005f78, + 0x12fe1: 0xe0009141, 0x12fe3: 0xe0004328, + 0x12fe4: 0xe000635c, 0x12fe5: 0xe0004aa5, 0x12fe7: 0xe0005aa6, + 0x12fea: 0xe0009be8, + 0x12fec: 0xe0004898, 0x12fee: 0xe00060b4, + 0x12ff1: 0xe0008044, 0x12ff2: 0xe0005f74, + 0x12ff4: 0xe00090e5, + 0x12ff8: 0xe0006cf4, 0x12ff9: 0xe0007345, 0x12ffb: 0xe000a40f, + 0x12ffc: 0xe0006360, 0x12ffe: 0xe0007301, + // Block 0x4c0, offset 0x13000 + 0x13001: 0xe0006ff4, + 0x13004: 0xe0005fb4, 0x13007: 0xe000612f, + 0x13008: 0xe0009ba4, 0x13009: 0xe000620e, 0x1300a: 0xe0006090, 0x1300b: 0xe0004260, + 0x1300c: 0xe000a2fd, + 0x1301a: 0xe0006d78, 0x1301b: 0xe0005f39, + 0x1301e: 0xe0009145, + 0x13020: 0xe0005fb8, + 0x13025: 0xe0008635, 0x13026: 0xe0008638, + 0x13028: 0xe0008712, 0x13029: 0xe000a2c1, + 0x13034: 0xe0007349, 0x13037: 0xe0004e2b, + 0x13038: 0xe0006063, 0x1303a: 0xe0008d2e, 0x1303b: 0xe00078cd, + 0x1303c: 0xe0007677, 0x1303e: 0xe0008ff1, + // Block 0x4c1, offset 0x13040 + 0x13040: 0xe000928f, + 0x13046: 0xe000a608, 0x13047: 0xe0008cc5, + 0x1304d: 0xe000a2c5, + 0x13052: 0xe0006f90, + 0x1305a: 0xe000779c, 0x1305b: 0xe0008bcd, + 0x1305f: 0xe000725e, + 0x13060: 0xe0004e3b, 0x13061: 0xe00071e6, 0x13062: 0xe0007261, 0x13063: 0xe00055d1, + 0x13065: 0xe00069ff, 0x13066: 0xe00060b8, + 0x13068: 0xe0007c31, 0x1306b: 0xe0009640, + 0x13077: 0xe0004544, + 0x13079: 0xe0005557, + 0x1307d: 0xe0004ee8, 0x1307e: 0xe000483e, 0x1307f: 0xe0007bfb, + // Block 0x4c2, offset 0x13080 + 0x1308b: 0xe0009149, + 0x1308d: 0xe0007264, 0x1308e: 0xe000a0bf, + 0x13091: 0xe0006010, + 0x13096: 0xe0007c34, + 0x13099: 0xe0005e1f, + 0x1309e: 0xe0005e57, + 0x130a0: 0xe000549a, 0x130a2: 0xe00060f4, + 0x130a5: 0xe0006604, + 0x130aa: 0xe0009241, + 0x130ac: 0xe0007305, 0x130ad: 0xe0005bb0, + 0x130b0: 0xe000432c, 0x130b3: 0xe0005661, + 0x130b9: 0xe000779f, 0x130bb: 0xe00095f4, + 0x130bc: 0xe0004580, 0x130bd: 0xe000489b, 0x130bf: 0xe0004caa, + // Block 0x4c3, offset 0x130c0 + 0x130c7: 0xe00060f8, + 0x130c9: 0xe0006a87, + 0x130cd: 0xe000a5a0, + 0x130d7: 0xe0009784, + 0x130d9: 0xe0004370, 0x130da: 0xe0009798, 0x130db: 0xe0006066, + 0x130dc: 0xe000503b, 0x130de: 0xe000833e, + 0x130e1: 0xe000a5a4, 0x130e2: 0xe0007421, 0x130e3: 0xe0008420, + 0x130e5: 0xe000908b, 0x130e7: 0xe000752d, + 0x130e9: 0xe0004cad, + 0x130ed: 0xe000535a, 0x130ee: 0xe0007e6e, 0x130ef: 0xe0004bed, + 0x130f0: 0xe000904d, 0x130f3: 0xe0006e20, + 0x130fa: 0xe0009b44, 0x130fb: 0xe000496e, + 0x130fc: 0xe000441c, 0x130fd: 0xe0006e38, + // Block 0x4c4, offset 0x13100 + 0x13102: 0xe0006b3f, + 0x1310c: 0xe00096bb, 0x1310f: 0xe00068d4, + 0x13111: 0xe00075f0, 0x13112: 0xe000698a, + 0x13122: 0xe0005778, + 0x13125: 0xe000908e, 0x13126: 0xe0009445, 0x13127: 0xe0009a6e, + 0x1312c: 0xe0005dc9, 0x1312d: 0xe0009e04, + 0x13130: 0xe0009da0, 0x13132: 0xe0009e8f, + 0x13134: 0xe0009ceb, + // Block 0x4c5, offset 0x13140 + 0x13143: 0xe0008f19, + 0x13145: 0xe0004eb5, + 0x1314f: 0xe0007a5f, + 0x1315c: 0xe00044a2, 0x1315d: 0xe00096f4, + 0x13160: 0xe000585b, + 0x13167: 0xe0007fb6, + 0x13168: 0xe0009284, 0x1316b: 0xe0005c48, + 0x1316c: 0xe0004701, 0x1316e: 0xe000a04f, 0x1316f: 0xe0007a63, + 0x1317c: 0xe0006930, + // Block 0x4c6, offset 0x13180 + 0x13181: 0xe00050c0, + 0x13187: 0xe0008bd1, + 0x1318c: 0xe0005aee, 0x1318d: 0xe000776c, 0x1318e: 0xe000717a, 0x1318f: 0xe00086be, + 0x13191: 0xe000698d, 0x13193: 0xe00054fa, + 0x13197: 0xe0007dfd, + 0x1319f: 0xe0006f58, + 0x131a3: 0xe00042c4, + 0x131a4: 0xe0007bcb, 0x131a7: 0xe000659c, + 0x131a8: 0xe0007e92, 0x131a9: 0xe0006e24, + 0x131ad: 0xe0009bec, + 0x131ba: 0xe000a594, 0x131bb: 0xe000a598, + 0x131bc: 0xe0005de6, 0x131be: 0xe0005245, + // Block 0x4c7, offset 0x131c0 + 0x131c1: 0xe0008602, + 0x131c5: 0xe0006424, + 0x131c8: 0xe0007e95, 0x131ca: 0xe0005b6b, 0x131cb: 0xe0009260, + 0x131ce: 0xe00047c3, 0x131cf: 0xe00059f4, + 0x131d0: 0xe0006364, 0x131d1: 0xe00077a2, + 0x131d4: 0xe0009475, 0x131d5: 0xe0004488, + 0x131da: 0xe0008a55, + 0x131e0: 0xe00052c6, + 0x131e7: 0xe000894d, + 0x131e8: 0xe0005de9, 0x131ea: 0xe0009814, + 0x131ec: 0xe0004705, 0x131ef: 0xe00050c3, + 0x131f4: 0xe0005740, 0x131f5: 0xe0004264, 0x131f7: 0xe0005d8d, + 0x131fa: 0xe0004b45, 0x131fb: 0xe0006368, + 0x131fc: 0xe0008716, 0x131fd: 0xe0004c32, + // Block 0x4c8, offset 0x13200 + 0x13201: 0xe00096f7, + 0x1320c: 0xe0005b7d, 0x1320e: 0xe00096fa, 0x1320f: 0xe0005027, + 0x13211: 0xe000549e, 0x13212: 0xe0008450, + 0x13216: 0xe00079c3, + 0x13219: 0xe00077a5, + 0x13227: 0xe0005b80, + 0x1322a: 0xe00058fb, 0x1322b: 0xe0005944, + 0x1322c: 0xe000636c, 0x1322d: 0xe000a5a8, + 0x13231: 0xe0005b52, + 0x1323a: 0xe0007424, + 0x1323e: 0xe0006b42, + // Block 0x4c9, offset 0x13240 + 0x13240: 0xe0006b45, 0x13241: 0xe00050c6, + 0x13245: 0xe0007f10, 0x13246: 0xe0009564, 0x13247: 0xe00050c9, + 0x13248: 0xe00050cc, 0x13249: 0xe0009091, 0x1324a: 0xe0009da4, + 0x13250: 0xe0007ff9, 0x13253: 0xe0006908, + 0x13254: 0xe0006825, 0x13255: 0xe0006a02, 0x13256: 0xe0008d31, 0x13257: 0xe0009094, + 0x1325a: 0xe0008d34, 0x1325b: 0xe00044d0, + 0x1325c: 0xe000a466, 0x1325d: 0xe00098be, 0x1325e: 0xe00074e9, 0x1325f: 0xe0007267, + 0x13260: 0xe0006b48, 0x13262: 0xe0005308, + 0x13265: 0xe0006cf8, 0x13267: 0xe0008d9d, + 0x13268: 0xe0009f03, + 0x1326d: 0xe0008c8f, + 0x1327a: 0xe00050cf, + 0x1327c: 0xe0004aa9, 0x1327f: 0xe0005af2, + // Block 0x4ca, offset 0x13280 + 0x13280: 0xe0009f44, 0x13281: 0xe0004fcf, + 0x1328a: 0xe00047ea, 0x1328b: 0xe0008546, + 0x1328d: 0xe000a55f, 0x1328e: 0xe0008bd5, 0x1328f: 0xe00066dd, + 0x13291: 0xe0007ffc, + 0x13294: 0xe0008cc8, + 0x1329d: 0xe00090f9, + 0x132a6: 0xe00078f4, 0x132a7: 0xe000a952, + 0x132a8: 0xe000513e, 0x132aa: 0xe0006e90, 0x132ab: 0xe0005422, + 0x132ae: 0xe0005a82, + 0x132b0: 0xe000530b, 0x132b1: 0xe000555a, 0x132b3: 0xe0007899, + 0x132b4: 0xe0007841, + 0x132b9: 0xe0007fff, 0x132ba: 0xe0007d92, 0x132bb: 0xe0005d45, + 0x132bd: 0xe0004fd3, 0x132be: 0xe000a562, 0x132bf: 0xe00055d5, + // Block 0x4cb, offset 0x132c0 + 0x132c0: 0xe00071e9, 0x132c1: 0xe0006b4b, + 0x132c6: 0xe000429c, + 0x132c9: 0xe0006648, 0x132ca: 0xe0005241, 0x132cb: 0xe0009835, + 0x132d1: 0xe00049f6, 0x132d2: 0xe00096fd, + 0x132d5: 0xe0006990, + 0x132d8: 0xe0006993, + 0x132df: 0xe0008d37, + 0x132e2: 0xe0005a64, 0x132e3: 0xe0005eb7, + 0x132e4: 0xe0009a9a, 0x132e6: 0xe000914d, 0x132e7: 0xe000773b, + 0x132e9: 0xe00091cd, 0x132ea: 0xe00090ca, 0x132eb: 0xe0009912, + 0x132ec: 0xe00044e8, + 0x132f8: 0xe00042e4, 0x132fb: 0xe0008480, + // Block 0x4cc, offset 0x13300 + 0x13300: 0xe000a955, 0x13301: 0xe000489e, 0x13302: 0xe000585f, + 0x13305: 0xe0007024, + 0x13308: 0xe0004268, 0x1330a: 0xe0008ccb, 0x1330b: 0xe0008bd9, + 0x1330c: 0xe00055a5, 0x1330d: 0xe0009700, + 0x13314: 0xe0008596, 0x13317: 0xe0009d78, + 0x13319: 0xe00090e9, 0x1331a: 0xe00099cf, + 0x1331c: 0xe0005cd0, 0x1331e: 0xe0004a20, 0x1331f: 0xe0009f40, + 0x13320: 0xe0008d3a, + 0x13327: 0xe0006f5c, + 0x1332e: 0xe0008e25, + 0x13331: 0xe0009a9e, + 0x13336: 0xe000807a, 0x13337: 0xe00090ed, + 0x13339: 0xe0009195, 0x1333b: 0xe000555d, + 0x1333c: 0xe0004196, 0x1333d: 0xe00047c6, 0x1333f: 0xe0004841, + // Block 0x4cd, offset 0x13340 + 0x13340: 0xe00048de, + 0x13345: 0xe0004420, 0x13346: 0xe00060bc, + 0x13349: 0xe00099d2, + 0x1334d: 0xe000890d, 0x1334e: 0xe0007b97, + 0x13357: 0xe00071ec, + 0x13360: 0xe00052a9, 0x13361: 0xe0006d50, 0x13362: 0xe0007bfe, + 0x13369: 0xe0007d1a, 0x1336b: 0xe000a59c, + 0x13370: 0xe000789d, + 0x13374: 0xe000a31d, 0x13375: 0xe00076b7, 0x13376: 0xe0004cb0, + 0x13379: 0xe0004df3, 0x1337a: 0xe00049a6, + 0x1337d: 0xe0008bdd, 0x1337e: 0xe0007f13, 0x1337f: 0xe0009520, + // Block 0x4ce, offset 0x13380 + 0x13380: 0xe0005700, 0x13381: 0xe0005625, 0x13382: 0xe0005ad0, 0x13383: 0xe0008ad1, + 0x13384: 0xe0009293, 0x13385: 0xe0007f16, 0x13386: 0xe0009e08, + 0x13388: 0xe0007ece, 0x1338a: 0xe0007dd0, + 0x13392: 0xe00091d1, 0x13393: 0xe00093d3, + 0x13395: 0xe0008d3d, 0x13396: 0xe0004c35, 0x13397: 0xe0009413, + 0x13398: 0xe0004dab, 0x1339b: 0xe0004d43, + 0x1339f: 0xe0004dd7, + 0x133a0: 0xe0004a23, 0x133a3: 0xe0007140, + 0x133a9: 0xe0007dac, 0x133aa: 0xe0007daf, + 0x133ac: 0xe00082ba, 0x133ae: 0xe0004df7, 0x133af: 0xe0007ed1, + 0x133b3: 0xe00082bd, + 0x133b6: 0xe0004d46, + 0x133b9: 0xe0007cd3, 0x133ba: 0xe0004eb8, 0x133bb: 0xe0009417, + 0x133be: 0xe0004aad, 0x133bf: 0xe0005ca8, + // Block 0x4cf, offset 0x133c0 + 0x133c4: 0xe00092c3, 0x133c5: 0xe0004ebb, 0x133c7: 0xe00056c4, + 0x133c8: 0xe0008da0, 0x133ca: 0xe0008abd, 0x133cb: 0xe0005dcd, + 0x133d7: 0xe0006123, + 0x133d9: 0xe0009343, + 0x133dd: 0xe000664c, 0x133df: 0xe0004709, + 0x133e0: 0xe0008772, 0x133e2: 0xe0006ba5, 0x133e3: 0xe0008f85, + 0x133e5: 0xe0005665, 0x133e6: 0xe000716c, + 0x133ea: 0xe00071ef, + 0x133ed: 0xe00042c8, 0x133ef: 0xe000535e, + 0x133f6: 0xe000470d, + 0x133f8: 0xe0004775, 0x133f9: 0xe0008f49, 0x133fa: 0xe00098c2, + 0x133fd: 0xe0008047, 0x133ff: 0xe000426c, + // Block 0x4d0, offset 0x13400 + 0x13406: 0xe0009d12, + 0x13408: 0xe000502b, 0x1340a: 0xe0008da3, + 0x1340c: 0xe00075f3, 0x1340f: 0xe000a509, + 0x13411: 0xe000707e, 0x13412: 0xe0004ff7, + 0x13418: 0xe0008b05, 0x13419: 0xe0006d74, 0x1341b: 0xe0008911, + 0x1341e: 0xe0009c0c, + 0x13420: 0xe0005dd1, + 0x13425: 0xe0006ba8, 0x13426: 0xe00067c8, 0x13427: 0xe0009479, + 0x13428: 0xe00068d8, + 0x1342c: 0xe0008c92, 0x1342d: 0xe0005a20, 0x1342f: 0xe000528f, + 0x13433: 0xe00041d5, + 0x13435: 0xe000656c, + 0x13439: 0xe0007027, + // Block 0x4d1, offset 0x13440 + 0x13445: 0xe0006ef0, 0x13446: 0xe0009fa5, + 0x13448: 0xe0004aed, 0x13449: 0xe0005720, 0x1344b: 0xe0004f73, + 0x1344c: 0xe00089c9, 0x1344d: 0xe0007309, 0x1344f: 0xe0006534, + 0x13450: 0xe0004b25, 0x13451: 0xe00098c6, 0x13452: 0xe0009c6e, 0x13453: 0xe00047ed, + 0x13454: 0xe0005442, 0x13456: 0xe0009465, + 0x1345f: 0xe0006828, + 0x13460: 0xe0004f0f, + 0x13465: 0xe00044eb, 0x13466: 0xe0004ab1, 0x13467: 0xe000461d, + 0x13469: 0xe0009c82, + 0x1346c: 0xe0006ff8, 0x1346e: 0xe0006db3, + 0x13471: 0xe00070c9, 0x13473: 0xe0008c55, + 0x13475: 0xe0007a67, + 0x1347d: 0xe0007ca0, + // Block 0x4d2, offset 0x13480 + 0x13487: 0xe000446a, + 0x1348b: 0xe00089cd, + 0x1348d: 0xe00048a1, 0x1348e: 0xe000a4ba, 0x1348f: 0xe0008843, + 0x13492: 0xe0009883, + 0x13494: 0xe00062e8, 0x13495: 0xe00050d2, 0x13497: 0xe0006bf8, + 0x13499: 0xe0006715, 0x1349a: 0xe0009263, + 0x1349c: 0xe00049ca, 0x1349d: 0xe0004661, + 0x134a0: 0xe0009886, 0x134a1: 0xe0004a7d, + 0x134ad: 0xe00089d1, + 0x134b1: 0xe0006cfc, + 0x134b4: 0xe00086ee, + 0x134b8: 0xe000888c, + 0x134be: 0xe00070cc, + // Block 0x4d3, offset 0x134c0 + 0x134c0: 0xe0008ac1, 0x134c1: 0xe000a680, + 0x134c4: 0xe0006564, 0x134c6: 0xe00089d5, 0x134c7: 0xe0009dc4, + 0x134c9: 0xe00098ca, 0x134ca: 0xe000a541, 0x134cb: 0xe000a37d, + 0x134cc: 0xe000a7ab, + 0x134d2: 0xe0007499, + 0x134d4: 0xe00080c2, + 0x134d9: 0xe00048a4, 0x134db: 0xe0007845, + 0x134dd: 0xe0004d49, + 0x134e0: 0xe0007081, + 0x134e4: 0xe00055d9, 0x134e6: 0xe0006a05, + 0x134e9: 0xe0006b4e, 0x134ea: 0xe00090cd, + 0x134f3: 0xe0009fbd, + 0x134f7: 0xe0006779, + 0x134fe: 0xe0005fe8, + // Block 0x4d4, offset 0x13500 + 0x13500: 0xe000947d, + 0x13507: 0xe0008ddd, + 0x13509: 0xe0009889, 0x1350b: 0xe0004e85, + 0x1350f: 0xe0005b1a, + 0x13512: 0xe00092c7, + 0x1351e: 0xe0005362, 0x1351f: 0xe0008b09, + 0x13520: 0xe00066b2, 0x13521: 0xe0004270, + 0x13527: 0xe000a684, + 0x1352a: 0xe00086f2, 0x1352b: 0xe0007084, + 0x13537: 0xe0009620, + 0x13538: 0xe0009d15, + 0x1353d: 0xe00095f8, 0x1353e: 0xe00059e8, 0x1353f: 0xe00067cb, + // Block 0x4d5, offset 0x13540 + 0x13543: 0xe000580b, + 0x1354c: 0xe0008ed7, 0x1354d: 0xe0008915, + 0x13550: 0xe0005744, 0x13552: 0xe0008f1c, + 0x13554: 0xe000726a, + 0x1355b: 0xe0008a59, + 0x1355c: 0xe0009b48, 0x1355f: 0xe0005b83, + 0x13560: 0xe0005b3e, + 0x13564: 0xe00095fc, 0x13565: 0xe0007849, 0x13567: 0xe00044ee, + 0x13569: 0xe00065e4, + 0x1356c: 0xe0005d15, + 0x13572: 0xe00082c0, 0x13573: 0xe0006211, + 0x1357e: 0xe000854a, + // Block 0x4d6, offset 0x13580 + 0x13581: 0xe0009568, 0x13583: 0xe0006996, + 0x13589: 0xe0006890, + 0x1358d: 0xe0006093, + 0x13592: 0xe0005dd5, + 0x13595: 0xe00062ec, 0x13597: 0xe0008d40, + 0x13598: 0xe0008ae9, + 0x1359f: 0xe0007100, + 0x135a2: 0xe000863b, + 0x135a4: 0xe0008196, 0x135a5: 0xe0008f4d, 0x135a6: 0xe0005d91, 0x135a7: 0xe0008776, + 0x135a8: 0xe00064f4, + 0x135ae: 0xe00058a9, + 0x135b1: 0xe00058ad, 0x135b2: 0xe00092cf, 0x135b3: 0xe000449a, + 0x135b9: 0xe00071f2, + 0x135bc: 0xe0005d95, 0x135bd: 0xe0008e65, 0x135be: 0xe0008be1, + // Block 0x4d7, offset 0x135c0 + 0x135c5: 0xe00082c3, 0x135c6: 0xe0005fd4, + 0x135ca: 0xe000a469, + 0x135d5: 0xe00048a7, 0x135d6: 0xe000546e, 0x135d7: 0xe0004d4c, + 0x135d9: 0xe0008da6, 0x135da: 0xe00087d6, + 0x135dc: 0xe0006241, 0x135dd: 0xe0006c68, 0x135de: 0xe0006894, 0x135df: 0xe0008d43, + 0x135e0: 0xe00043cc, 0x135e2: 0xe0006096, + 0x135e5: 0xe00051b6, 0x135e7: 0xe00058b1, + 0x135ef: 0xe00051b9, + 0x135f2: 0xe0005922, + 0x135f4: 0xe0008951, 0x135f6: 0xe0008da9, + 0x135f8: 0xe0005f9c, 0x135fa: 0xe0004eeb, 0x135fb: 0xe00047c9, + 0x135fe: 0xe0004ebe, + // Block 0x4d8, offset 0x13600 + 0x13600: 0xe00050d5, 0x13602: 0xe0008eda, 0x13603: 0xe000734d, + 0x13604: 0xe0007825, 0x13605: 0xe000a529, 0x13606: 0xe0008002, 0x13607: 0xe000a8cf, + 0x13608: 0xe000a5e4, 0x1360a: 0xe00061ad, 0x1360b: 0xe00061b1, + 0x1360d: 0xe0005200, + 0x13610: 0xe00052e8, 0x13613: 0xe0006dec, + 0x13614: 0xe000730d, 0x13615: 0xe0006a08, 0x13617: 0xe0006b51, + 0x13618: 0xe0004baa, 0x13619: 0xe0009097, 0x1361a: 0xe0005013, 0x1361b: 0xe0006898, + 0x1361c: 0xe00080c6, + 0x13620: 0xe0007087, 0x13621: 0xe0006428, 0x13622: 0xe0006d54, + 0x1362b: 0xe0008605, + 0x1362c: 0xe0008edd, 0x1362e: 0xe000931b, 0x1362f: 0xe0005c00, + 0x13630: 0xe000702a, 0x13631: 0xe000690c, 0x13632: 0xe0006f60, 0x13633: 0xe00074ed, + 0x13635: 0xe000888f, + 0x13639: 0xe000708a, 0x1363a: 0xe0004330, + // Block 0x4d9, offset 0x13640 + 0x13642: 0xe0008e29, 0x13643: 0xe000a2c9, + 0x13644: 0xe0008d46, 0x13645: 0xe0004711, 0x13646: 0xe0006370, + 0x13649: 0xe0007371, + 0x1364d: 0xe00085a2, + 0x13650: 0xe0004641, + 0x13656: 0xe0004b49, + 0x13659: 0xe000a60c, 0x1365b: 0xe0008daf, + 0x1365c: 0xe000a329, 0x1365e: 0xe0004bf0, + 0x13661: 0xe0005793, 0x13662: 0xe000a2cd, 0x13663: 0xe0006664, + 0x13666: 0xe0005017, + 0x13668: 0xe000834a, 0x13669: 0xe0008dac, 0x1366a: 0xe0008512, + 0x1366e: 0xe0006db6, + 0x13670: 0xe00091ed, 0x13671: 0xe0009c72, 0x13672: 0xe0006b54, 0x13673: 0xe00043d0, + 0x13676: 0xe0008ac5, + 0x13679: 0xe00045f5, 0x1367a: 0xe0009a02, + 0x1367f: 0xe0004cb3, + // Block 0x4da, offset 0x13680 + 0x13683: 0xe000974b, + 0x13686: 0xe0004779, + 0x1368e: 0xe0008be5, 0x1368f: 0xe00071f5, + 0x13693: 0xe0004715, + 0x13698: 0xe000677d, + 0x1369c: 0xe0008e2d, + 0x136a0: 0xe0005af6, 0x136a2: 0xe0008ee0, 0x136a3: 0xe0004e3f, + 0x136a5: 0xe0005141, 0x136a6: 0xe0005144, 0x136a7: 0xe0008fb5, + 0x136a9: 0xe0008162, 0x136ab: 0xe0006ef4, + 0x136ac: 0xe00071f8, 0x136ad: 0xe000826c, 0x136ae: 0xe00047f0, + 0x136b0: 0xe0004ab5, 0x136b1: 0xe00043d4, 0x136b2: 0xe0005ecf, + 0x136b4: 0xe00095a8, 0x136b5: 0xe0009448, + 0x136b8: 0xe0005c80, 0x136ba: 0xe00050d8, 0x136bb: 0xe0009b78, + 0x136bd: 0xe000868e, 0x136be: 0xe0005cd4, 0x136bf: 0xe0005fbc, + // Block 0x4db, offset 0x136c0 + 0x136c4: 0xe0004936, 0x136c7: 0xe00099d5, + 0x136ca: 0xe0005177, 0x136cb: 0xe0006999, + 0x136cc: 0xe00082c6, 0x136cd: 0xe0006294, + 0x136d6: 0xe0006db9, 0x136d7: 0xe0006d30, + 0x136d8: 0xe000a0df, 0x136da: 0xe0006e94, + 0x136dc: 0xe0005fd8, 0x136dd: 0xe0009211, 0x136de: 0xe0005366, + 0x136e0: 0xe00096a0, 0x136e1: 0xe000627c, 0x136e3: 0xe0007a6b, + 0x136e6: 0xe000745d, + 0x136e8: 0xe0009dc8, 0x136e9: 0xe0007e01, + 0x136ec: 0xe0005fc0, 0x136ef: 0xe00081c1, + 0x136f4: 0xe0005980, 0x136f6: 0xe0009de8, + 0x136f9: 0xe0008cce, 0x136fb: 0xe00099d8, + // Block 0x4dc, offset 0x13700 + 0x13708: 0xe0007bcf, 0x13709: 0xe0009151, 0x1370a: 0xe00077c4, 0x1370b: 0xe000988c, + 0x13710: 0xe000988f, 0x13711: 0xe0004685, + 0x13715: 0xe0007d1e, 0x13717: 0xe0009817, + 0x13718: 0xe00047f3, 0x1371b: 0xe00062f0, + 0x1371d: 0xe0009155, 0x1371e: 0xe000a46c, 0x1371f: 0xe0007f2e, + 0x13720: 0xe00048f2, 0x13721: 0xe000881b, 0x13722: 0xe0005748, 0x13723: 0xe000a2d1, + 0x1372b: 0xe0006759, + 0x1372e: 0xe00098ce, 0x1372f: 0xe0007a6f, + 0x13731: 0xe0008e31, 0x13732: 0xe0005c54, 0x13733: 0xe0004621, + 0x13735: 0xe0005e7f, 0x13737: 0xe0005c03, + 0x13739: 0xe0009f2a, 0x1373b: 0xe0006244, + 0x1373d: 0xe00097d4, 0x1373e: 0xe0008919, + // Block 0x4dd, offset 0x13740 + 0x13741: 0xe000650c, 0x13743: 0xe0006934, + 0x13744: 0xe0007c37, 0x13745: 0xe00070cf, 0x13746: 0xe0006162, 0x13747: 0xe0007ed4, + 0x13748: 0xe0004424, + 0x13750: 0xe0007036, 0x13752: 0xe0009039, + 0x13754: 0xe00090f1, 0x13755: 0xe0006e98, 0x13756: 0xe0006c24, 0x13757: 0xe0005d99, + 0x13759: 0xe000651c, 0x1375a: 0xe0005bd1, + 0x1375e: 0xe0007ed7, + 0x13761: 0xe00071fb, 0x13762: 0xe0004e88, + 0x13769: 0xe00073da, 0x1376a: 0xe000a6e2, 0x1376b: 0xe00047cc, + 0x1376d: 0xe00045f9, 0x1376f: 0xe000a301, + 0x13770: 0xe0008d49, + 0x13776: 0xe0007923, + 0x13779: 0xe00079ef, + 0x1377c: 0xe00047cf, 0x1377d: 0xe0006a8b, 0x1377e: 0xe0004625, + // Block 0x4de, offset 0x13780 + 0x13781: 0xe000a7ee, 0x13782: 0xe00092cb, + 0x13787: 0xe0005b86, + 0x13788: 0xe000a984, 0x1378a: 0xe0004b4d, + 0x1378c: 0xe0007104, 0x1378d: 0xe0005c57, 0x1378f: 0xe00089d9, + 0x13793: 0xe0007b9b, + 0x13794: 0xe000883c, 0x13796: 0xe0006f70, + 0x13798: 0xe00092d3, 0x1379b: 0xe00055dd, + 0x1379c: 0xe000580f, + // Block 0x4df, offset 0x137c0 + 0x137f6: 0xe00067ce, 0x137f7: 0xe0006bab, + 0x137f8: 0xe000a16b, 0x137fa: 0xe0004645, + 0x137fe: 0xe0006668, 0x137ff: 0xe000a187, + // Block 0x4e0, offset 0x13800 + 0x13803: 0xe00077f8, + 0x13804: 0xe0004781, 0x13805: 0xe000a029, 0x13807: 0xe0008fb9, + 0x1380b: 0xe0007d96, + 0x1380c: 0xe00077e4, 0x1380d: 0xe0005b89, 0x1380e: 0xe0005426, + 0x13810: 0xe0004a81, + 0x13814: 0xe0005ed3, 0x13815: 0xe000a07b, + 0x13818: 0xe000682b, + 0x1381d: 0xe00088cb, 0x1381f: 0xe00048aa, + 0x13820: 0xe0006298, 0x13821: 0xe0004428, 0x13823: 0xe0004b6c, + 0x13826: 0xe000682e, + 0x13828: 0xe000798b, 0x1382a: 0xe0008e8c, 0x1382b: 0xe0004b63, + 0x1382e: 0xe00099db, + 0x13830: 0xe0006538, 0x13832: 0xe0006dbc, + 0x13835: 0xe0005f1e, 0x13837: 0xe0009cee, + 0x13838: 0xe0006544, 0x13839: 0xe0005d18, + 0x1383c: 0xe0009fc1, 0x1383d: 0xe00047f6, 0x1383e: 0xe0009051, + // Block 0x4e1, offset 0x13840 + 0x13842: 0xe0004629, + 0x13845: 0xe000575d, 0x13846: 0xe0006a0b, 0x13847: 0xe0005147, + 0x13848: 0xe00050db, 0x1384a: 0xe00078a1, + 0x1384c: 0xe00043d8, 0x1384e: 0xe0006214, + 0x13854: 0xe0004844, 0x13856: 0xe00048ad, 0x13857: 0xe000442c, + 0x13858: 0xe00087da, 0x1385a: 0xe0005a24, + 0x1385d: 0xe00088ce, 0x1385e: 0xe00071fe, + 0x13864: 0xe0004daf, + 0x13868: 0xe0006e9c, 0x13869: 0xe0008423, 0x1386b: 0xe0004430, + 0x1386f: 0xe00042e8, + 0x13872: 0xe000a958, + 0x13876: 0xe0008a5d, + 0x13878: 0xe0005d1b, 0x13879: 0xe000449e, + 0x1387d: 0xe0008005, + // Block 0x4e2, offset 0x13880 + 0x13881: 0xe0007d72, + 0x13885: 0xe0007427, + 0x1388a: 0xe00084ca, + 0x1388c: 0xe00084ce, 0x1388e: 0xe0005a28, + 0x13892: 0xe00073a6, + 0x13894: 0xe0006d00, 0x13895: 0xe000a907, 0x13896: 0xe000a917, + 0x1389b: 0xe00070d2, + 0x1389f: 0xe000891d, + 0x138a0: 0xe0009967, 0x138a1: 0xe000699c, 0x138a3: 0xe0006c90, + 0x138a4: 0xe0007460, 0x138a6: 0xe0008a61, + 0x138a9: 0xe0009dcc, 0x138ab: 0xe0007e05, + 0x138ac: 0xe000a84e, 0x138ae: 0xe000a1ee, + 0x138b0: 0xe000a07f, 0x138b3: 0xe0007c3a, + 0x138b9: 0xe0004bf3, 0x138ba: 0xe00048b0, 0x138bb: 0xe0006520, + 0x138bc: 0xe00084d2, 0x138be: 0xe000a305, + // Block 0x4e3, offset 0x138c0 + 0x138c0: 0xe0007eda, 0x138c1: 0xe0005aa9, 0x138c3: 0xe0004847, + 0x138c4: 0xe0006099, 0x138c5: 0xe0008608, 0x138c6: 0xe00050de, + 0x138c9: 0xe0004cb6, + 0x138cc: 0xe0008483, + 0x138d0: 0xe0005220, 0x138d1: 0xe000538e, 0x138d2: 0xe0005b8c, + 0x138d4: 0xe000863e, 0x138d5: 0xe0004719, 0x138d6: 0xe000974e, 0x138d7: 0xe0006069, + 0x138d8: 0xe000809e, 0x138d9: 0xe0009d18, + 0x138de: 0xe00041d8, + 0x138e1: 0xe0006def, + 0x138e6: 0xe000804a, + 0x138e8: 0xe00052d2, + 0x138ec: 0xe0005c1e, 0x138ed: 0xe00050e1, + 0x138f0: 0xe000804d, 0x138f3: 0xe0008486, + 0x138f6: 0xe0007818, + 0x138fd: 0xe0009ba8, 0x138ff: 0xe000471d, + // Block 0x4e4, offset 0x13900 + 0x13903: 0xe00053ee, + 0x13906: 0xe0005a2c, + 0x1390a: 0xe0005bb3, + 0x13912: 0xe0004af1, + 0x13915: 0xe000a4bd, 0x13916: 0xe0006ffc, + 0x13918: 0xe0006abb, 0x1391a: 0xe000996a, + 0x1391e: 0xe00061b5, + 0x1392f: 0xe0005984, + 0x13930: 0xe00097d8, 0x13931: 0xe0007cd6, 0x13932: 0xe0007000, 0x13933: 0xe0007f86, + 0x13935: 0xe0007e98, 0x13936: 0xe0006fb8, 0x13937: 0xe00090f5, + 0x1393d: 0xe0009670, 0x1393e: 0xe0005b42, 0x1393f: 0xe0008336, + // Block 0x4e5, offset 0x13940 + 0x13944: 0xe0008489, 0x13945: 0xe00072ad, 0x13946: 0xe0006b57, 0x13947: 0xe0008d4c, + 0x13949: 0xe00082fe, 0x1394b: 0xe0005cb0, + 0x1394c: 0xe00050e4, + 0x13953: 0xe000a6ac, + 0x13956: 0xe0009703, + 0x13958: 0xe0008f1f, 0x1395a: 0xe00056d9, 0x1395b: 0xe000a16f, + 0x1395d: 0xe0004274, + 0x13961: 0xe000484a, 0x13962: 0xe000909a, + 0x13965: 0xe000699f, 0x13966: 0xe00068dc, + 0x13969: 0xe00045fd, 0x1396a: 0xe000642c, 0x1396b: 0xe0007351, + 0x1396d: 0xe00052e1, 0x1396f: 0xe000503f, + 0x13971: 0xe0004bae, 0x13972: 0xe0008302, + 0x13974: 0xe000a751, 0x13975: 0xe000514a, + 0x1397a: 0xe0009e4a, + // Block 0x4e6, offset 0x13980 + 0x13983: 0xe00081c4, + 0x13984: 0xe0008e9e, 0x13986: 0xe0005392, + 0x1398a: 0xe0004d4f, + 0x1398c: 0xe00064aa, 0x1398e: 0xe0009c0f, + 0x13995: 0xe0006831, 0x13996: 0xe000639c, + 0x13999: 0xe0008db2, 0x1399a: 0xe00064ad, 0x1399b: 0xe000438c, + 0x1399e: 0xe0009e92, + 0x139a0: 0xe00044f1, 0x139a1: 0xe000a46f, + 0x139a4: 0xe000831e, 0x139a5: 0xe0006dbf, + 0x139af: 0xe00048b3, + 0x139b1: 0xe0004b29, + 0x139b4: 0xe0005669, 0x139b7: 0xe000a897, + 0x139b8: 0xe000a88f, + 0x139bd: 0xe00052f5, 0x139be: 0xe0008641, + // Block 0x4e7, offset 0x139c0 + 0x139c2: 0xe000909d, + 0x139c5: 0xe000a351, 0x139c6: 0xe000996d, 0x139c7: 0xe000a355, + 0x139c8: 0xe0005f48, 0x139c9: 0xe0005f5c, 0x139ca: 0xe00094c8, + 0x139d6: 0xe00063dc, + 0x139d8: 0xe0007e09, 0x139da: 0xe0004200, 0x139db: 0xe0004721, + 0x139e3: 0xe0007311, + 0x139e4: 0xe0007531, 0x139e7: 0xe000981a, + 0x139e9: 0xe0007201, 0x139eb: 0xe0009b98, + 0x139ef: 0xe0009e95, + 0x139f0: 0xe00056dc, + 0x139f9: 0xe00093d7, 0x139fa: 0xe000726d, + 0x139fe: 0xe00069a2, + // Block 0x4e8, offset 0x13a00 + 0x13a01: 0xe00065ec, + 0x13a06: 0xe0008a65, + 0x13a0a: 0xe0006e3c, 0x13a0b: 0xe00077c8, + 0x13a0e: 0xe00074f1, + 0x13a10: 0xe00067d1, 0x13a11: 0xe00067d4, 0x13a12: 0xe00044f4, 0x13a13: 0xe0006a0e, + 0x13a14: 0xe00043dc, 0x13a15: 0xe0007e0d, + 0x13a20: 0xe0008f22, + 0x13a24: 0xe00076fb, 0x13a25: 0xe0007004, 0x13a26: 0xe00052b4, + 0x13a2b: 0xe0008e35, + 0x13a2d: 0xe000764b, + 0x13a30: 0xe0007edd, 0x13a31: 0xe0004528, + 0x13a34: 0xe00082c9, 0x13a36: 0xe0005396, 0x13a37: 0xe0009f85, + 0x13a38: 0xe000877a, 0x13a39: 0xe00066e1, 0x13a3a: 0xe0006ea0, + 0x13a3f: 0xe0009c8c, + // Block 0x4e9, offset 0x13a40 + 0x13a40: 0xe0006430, 0x13a42: 0xe0005925, 0x13a43: 0xe0007d5a, + 0x13a44: 0xe0007270, 0x13a46: 0xe00070d5, + 0x13a48: 0xe00045c1, 0x13a4a: 0xe00062f4, 0x13a4b: 0xe0005bd4, + 0x13a4f: 0xe000484d, + 0x13a5a: 0xe00067d7, + 0x13a5c: 0xe0005e13, 0x13a5d: 0xe0007392, 0x13a5e: 0xe0008a69, + 0x13a60: 0xe0004bf6, 0x13a63: 0xe00091d5, + 0x13a68: 0xe0009d9c, 0x13a69: 0xe000530e, + 0x13a70: 0xe0006524, 0x13a73: 0xe0006ea4, + 0x13a74: 0xe0006183, 0x13a75: 0xe000993d, + 0x13a78: 0xe0007273, 0x13a79: 0xe00068e0, 0x13a7a: 0xe00083fa, + 0x13a7d: 0xe00053f2, 0x13a7e: 0xe000a6e5, 0x13a7f: 0xe0005299, + // Block 0x4ea, offset 0x13a80 + 0x13a80: 0xe00056ec, 0x13a82: 0xe00069a5, + 0x13a86: 0xe000791f, + 0x13a8a: 0xe0008db5, + 0x13a8d: 0xe0008c95, 0x13a8f: 0xe0006a8f, + 0x13a91: 0xe0005292, + 0x13a98: 0xe000582b, 0x13a99: 0xe0007aa7, 0x13a9a: 0xe0005928, + 0x13a9d: 0xe000577b, 0x13a9f: 0xe000877e, + 0x13aa0: 0xe00059a4, 0x13aa3: 0xe00074f5, + 0x13aa5: 0xe0007db2, 0x13aa7: 0xe0008782, + 0x13aa8: 0xe0005dbd, 0x13aaa: 0xe000860b, + 0x13aac: 0xe0007963, 0x13aad: 0xe0009970, + 0x13ab3: 0xe00090a0, + 0x13ab4: 0xe00099de, 0x13ab6: 0xe000956c, + 0x13aba: 0xe00054df, 0x13abb: 0xe0009159, + 0x13abc: 0xe0004cb9, 0x13abe: 0xe000826f, + // Block 0x4eb, offset 0x13ac0 + 0x13ac1: 0xe00079d8, 0x13ac2: 0xe0007fba, 0x13ac3: 0xe0006e40, + 0x13ac5: 0xe0004cbc, 0x13ac7: 0xe00079c6, + 0x13ac8: 0xe000a91b, 0x13aca: 0xe0004cbf, + 0x13acc: 0xe0006f28, 0x13acd: 0xe0006b5a, + 0x13ad0: 0xe00090d0, 0x13ad2: 0xe0006dc2, + 0x13ad6: 0xe0009ec5, + 0x13adb: 0xe0009524, + 0x13adc: 0xe0007315, 0x13ade: 0xe0006165, 0x13adf: 0xe0008ee3, + 0x13ae1: 0xe00043e0, + 0x13aea: 0xe000a173, 0x13aeb: 0xe0006434, + 0x13aec: 0xe0006374, + 0x13af3: 0xe00098ea, + 0x13af5: 0xe0009ac9, 0x13af6: 0xe00062f8, 0x13af7: 0xe000a2d5, + 0x13af8: 0xe00041db, 0x13af9: 0xe0006ea8, + 0x13afd: 0xe0006478, + // Block 0x4ec, offset 0x13b00 + 0x13b00: 0xe00067da, + 0x13b05: 0xe00079c9, 0x13b07: 0xe0008be9, + 0x13b11: 0xe0009dec, + 0x13b18: 0xe00070d8, 0x13b19: 0xe00093db, 0x13b1a: 0xe0008db8, + 0x13b1f: 0xe0005699, + 0x13b24: 0xe0008426, 0x13b26: 0xe000a0e3, + 0x13b28: 0xe00060fc, 0x13b2a: 0xe0005ad3, 0x13b2b: 0xe0005ad6, + 0x13b2e: 0xe0004278, 0x13b2f: 0xe00058b5, + 0x13b31: 0xe000427c, 0x13b32: 0xe0006d58, + 0x13b34: 0xe0006910, 0x13b36: 0xe0007ae7, + 0x13b38: 0xe0009706, + 0x13b3e: 0xe000776f, + // Block 0x4ed, offset 0x13b40 + 0x13b4a: 0xe0009570, 0x13b4b: 0xe0008008, + 0x13b4d: 0xe0008692, 0x13b4e: 0xe0004dfb, + 0x13b52: 0xe0005ed7, + 0x13b54: 0xe000a82a, + 0x13b58: 0xe0006a11, 0x13b59: 0xe00067dd, 0x13b5a: 0xe00056f0, + 0x13b5d: 0xe00090a3, 0x13b5f: 0xe0006c5c, + 0x13b61: 0xe0004590, 0x13b62: 0xe000854e, 0x13b63: 0xe0006834, + 0x13b65: 0xe000446d, 0x13b66: 0xe000a472, 0x13b67: 0xe0006df2, + 0x13b68: 0xe000502f, 0x13b69: 0xe0004fd7, 0x13b6a: 0xe000514d, 0x13b6b: 0xe0008166, + 0x13b6c: 0xe000689c, 0x13b6d: 0xe0009cf1, 0x13b6e: 0xe0007c01, 0x13b6f: 0xe0007575, + 0x13b70: 0xe0005150, 0x13b71: 0xe000a565, 0x13b73: 0xe0006438, + 0x13b77: 0xe00090a6, + 0x13b78: 0xe00080a2, 0x13b79: 0xe0004f77, 0x13b7b: 0xe0009838, + 0x13b7c: 0xe000606c, 0x13b7d: 0xe00075c0, 0x13b7e: 0xe0006a14, 0x13b7f: 0xe00085ca, + // Block 0x4ee, offset 0x13b80 + 0x13b85: 0xe0007c3d, + 0x13b91: 0xe0008132, 0x13b92: 0xe0007aeb, 0x13b93: 0xe0005a68, + 0x13b94: 0xe0009c12, 0x13b95: 0xe0009709, 0x13b97: 0xe0006126, + 0x13b9b: 0xe0004199, + 0x13b9c: 0xe00060c8, 0x13b9e: 0xe0009e98, 0x13b9f: 0xe0004cc2, + 0x13ba0: 0xe000629c, 0x13ba1: 0xe000848c, 0x13ba3: 0xe00044f7, + 0x13ba5: 0xe0007829, 0x13ba6: 0xe0004850, 0x13ba7: 0xe0008892, + 0x13bab: 0xe0008b0d, + 0x13bb1: 0xe0007b9f, 0x13bb3: 0xe000569d, + 0x13bb4: 0xe00088d1, + 0x13bb9: 0xe0009e2c, 0x13bba: 0xe0005f3c, 0x13bbb: 0xe0006837, + 0x13bbd: 0xe0004853, 0x13bbe: 0xe0009fa9, 0x13bbf: 0xe0006247, + // Block 0x4ef, offset 0x13bc0 + 0x13bc0: 0xe0006914, 0x13bc1: 0xe0008fd9, 0x13bc2: 0xe0006168, 0x13bc3: 0xe0006568, + 0x13bc4: 0xe000419c, 0x13bc5: 0xe000606f, + 0x13bc8: 0xe0008644, 0x13bc9: 0xe0005ea7, + 0x13bd7: 0xe0006014, + 0x13bdb: 0xe00042a0, + 0x13bdc: 0xe0009574, 0x13bdd: 0xe000945a, + 0x13be3: 0xe0007cd9, + 0x13be8: 0xe000860e, 0x13bea: 0xe0004b51, 0x13beb: 0xe0005edb, + 0x13bef: 0xe00066e5, + 0x13bf1: 0xe0007204, 0x13bf2: 0xe0008647, 0x13bf3: 0xe0004434, + 0x13bf4: 0xe000a6e8, 0x13bf5: 0xe0008516, 0x13bf6: 0xe0005324, + 0x13bf8: 0xe0007f8a, 0x13bf9: 0xe00079cc, + 0x13bfc: 0xe00056a1, + // Block 0x4f0, offset 0x13c00 + 0x13c00: 0xe0007319, 0x13c03: 0xe0008a6d, + 0x13c07: 0xe000a202, + 0x13c09: 0xe000970c, 0x13c0a: 0xe000a3b5, + 0x13c0f: 0xe000859a, + 0x13c10: 0xe0009578, 0x13c11: 0xe000848f, 0x13c12: 0xe000a688, + 0x13c33: 0xe00056c7, + 0x13c37: 0xe000a005, + 0x13c3b: 0xe0008921, + // Block 0x4f1, offset 0x13c40 + 0x13c45: 0xe0005d48, + 0x13c49: 0xe0005d1e, 0x13c4a: 0xe0008786, + 0x13c4e: 0xe0006b5d, + 0x13c52: 0xe00044fa, 0x13c53: 0xe0005f3f, + 0x13c56: 0xe0004725, + 0x13c58: 0xe00074f9, 0x13c5a: 0xe0007aab, 0x13c5b: 0xe0008c59, + 0x13c5d: 0xe0008e86, 0x13c5e: 0xe0007e11, 0x13c5f: 0xe000a0f3, + 0x13c60: 0xe00082cc, 0x13c62: 0xe000a359, + 0x13c68: 0xe0005863, 0x13c69: 0xe00067e0, 0x13c6a: 0xe00075c3, 0x13c6b: 0xe0005e17, + 0x13c7d: 0xe0005edf, 0x13c7e: 0xe0005ef7, 0x13c7f: 0xe000864a, + // Block 0x4f2, offset 0x13c80 + 0x13c81: 0xe0009674, 0x13c82: 0xe0008955, + 0x13c85: 0xe0004a85, + 0x13c89: 0xe0005afa, 0x13c8a: 0xe0004d87, + 0x13c8c: 0xe0004f13, + 0x13c91: 0xe0009a05, 0x13c93: 0xe00049f9, + 0x13c94: 0xe0006719, 0x13c96: 0xe00093df, + 0x13c98: 0xe0007381, + 0x13c9c: 0xe000944b, 0x13c9f: 0xe00055a8, + 0x13ca0: 0xe0009d1b, 0x13ca1: 0xe000a0f7, + 0x13ca9: 0xe000669d, 0x13cab: 0xe0004f7b, + 0x13caf: 0xe000a568, + 0x13cb0: 0xe0004856, 0x13cb1: 0xe0005cd8, 0x13cb2: 0xe00069a8, + 0x13cb4: 0xe00076e3, 0x13cb6: 0xe0006781, + 0x13cb9: 0xe0008895, + 0x13cbd: 0xe00072b1, + // Block 0x4f3, offset 0x13cc0 + 0x13cc3: 0xe0009940, + 0x13cc4: 0xe0005560, 0x13cc6: 0xe0006a17, 0x13cc7: 0xe00087de, + 0x13cca: 0xe0005878, 0x13ccb: 0xe0009494, + 0x13ccc: 0xe0005f7c, 0x13ccd: 0xe0009e18, 0x13cce: 0xe00081c7, + 0x13ce9: 0xe000983b, + 0x13cec: 0xe0005e5b, + 0x13cf1: 0xe000a80e, + 0x13cf5: 0xe0007dd3, + 0x13cf8: 0xe0008272, 0x13cf9: 0xe0009df0, + 0x13cfc: 0xe000764f, 0x13cfd: 0xe0005797, + // Block 0x4f4, offset 0x13d00 + 0x13d06: 0xe00066b5, + 0x13d09: 0xe0007b33, 0x13d0a: 0xe00076ff, + 0x13d11: 0xe0009f60, + 0x13d17: 0xe0008898, + 0x13d1a: 0xe0007589, 0x13d1b: 0xe00042cc, + 0x13d21: 0xe0009e9b, 0x13d23: 0xe000566d, + 0x13d26: 0xe00081ca, + 0x13d29: 0xe0009d1e, 0x13d2a: 0xe00047f9, 0x13d2b: 0xe000a475, + 0x13d2c: 0xe000878a, 0x13d2d: 0xe00041de, 0x13d2f: 0xe000782d, + 0x13d31: 0xe00097e4, 0x13d33: 0xe00081f4, + 0x13d35: 0xe0004ec1, 0x13d37: 0xe000a7f2, + 0x13d3a: 0xe0009011, + // Block 0x4f5, offset 0x13d40 + 0x13d42: 0xe00096be, + 0x13d50: 0xe0007207, + 0x13d54: 0xe000742a, + 0x13d59: 0xe00060dc, + 0x13d5c: 0xe0006bfc, 0x13d5f: 0xe0004d52, + 0x13d61: 0xe000643c, + 0x13d68: 0xe000957c, + 0x13d6d: 0xe0009892, 0x13d6f: 0xe0004b9c, + 0x13d72: 0xe0009e9e, + 0x13d74: 0xe0006bd0, + 0x13d78: 0xe000903d, 0x13d79: 0xe0004689, 0x13d7a: 0xe00091f1, 0x13d7b: 0xe0007831, + 0x13d7c: 0xe00093e3, 0x13d7f: 0xe000a478, + // Block 0x4f6, offset 0x13d80 + 0x13d80: 0xe0007128, 0x13d81: 0xe0009199, 0x13d82: 0xe0006018, + 0x13d84: 0xe00098d2, 0x13d86: 0xe0006e28, + 0x13d89: 0xe0007f8e, 0x13d8a: 0xe0007d9a, 0x13d8b: 0xe0004470, + 0x13d8d: 0xe000742d, + 0x13d90: 0xe0007f3e, 0x13d91: 0xe0006b60, 0x13d93: 0xe00064d1, + 0x13d96: 0xe0006a1a, + 0x13d9a: 0xe000720a, + 0x13dac: 0xe000675d, 0x13dad: 0xe0007703, 0x13dae: 0xe0005988, 0x13daf: 0xe00097e8, + 0x13db1: 0xe0009e30, + 0x13db4: 0xe000731d, + 0x13dbc: 0xe0005bb6, 0x13dbd: 0xe0009fc5, + // Block 0x4f7, offset 0x13dc0 + 0x13dc0: 0xe000683a, + 0x13dc6: 0xe0005ce4, + 0x13dd1: 0xe0005fe4, 0x13dd3: 0xe0005e5f, + 0x13dd4: 0xe00066e9, 0x13dd5: 0xe00096c1, 0x13dd7: 0xe0008611, + 0x13dd8: 0xe0006c60, 0x13dda: 0xe00080d2, + 0x13dde: 0xe0005c06, 0x13ddf: 0xe0008f25, + 0x13de1: 0xe000944e, 0x13de3: 0xe000878e, + 0x13de5: 0xe00097dc, 0x13de6: 0xe0008dbb, + 0x13dea: 0xe0008b11, + 0x13dec: 0xe000708d, 0x13ded: 0xe00083b6, 0x13def: 0xe000915d, + 0x13dfd: 0xe0009e4d, 0x13dff: 0xe00081cd, + // Block 0x4f8, offset 0x13e00 + 0x13e01: 0xe00053f6, 0x13e03: 0xe0006510, + 0x13e06: 0xe0009580, + 0x13e09: 0xe000970f, 0x13e0a: 0xe0007c40, 0x13e0b: 0xe0007c43, + 0x13e0e: 0xe0004bf9, + 0x13e13: 0xe00080a6, + 0x13e15: 0xe00082cf, 0x13e16: 0xe00044fd, + 0x13e18: 0xe0007f19, 0x13e19: 0xe000a3f4, + 0x13e1e: 0xe00096c4, + 0x13e21: 0xe00068e4, 0x13e23: 0xe0007321, + 0x13e24: 0xe00082d2, + 0x13e28: 0xe0004e4f, 0x13e29: 0xe0009be0, 0x13e2a: 0xe000616b, 0x13e2b: 0xe00056a5, + 0x13e2d: 0xe0007090, + 0x13e3a: 0xe0009019, + 0x13e3e: 0xe0005b8f, + // Block 0x4f9, offset 0x13e40 + 0x13e40: 0xe0007d3a, + 0x13e44: 0xe00062fc, 0x13e46: 0xe00077a8, 0x13e47: 0xe0006217, + 0x13e49: 0xe0007c46, 0x13e4a: 0xe00047fc, + 0x13e4c: 0xe000a232, 0x13e4f: 0xe0008429, + 0x13e51: 0xe00043e4, + 0x13e54: 0xe0008792, 0x13e57: 0xe000816a, + 0x13e59: 0xe0009a08, 0x13e5b: 0xe0006f2c, + 0x13e5d: 0xe000542a, + 0x13e64: 0xe000a1da, 0x13e65: 0xe000979c, 0x13e66: 0xe0009528, + 0x13e68: 0xe000a7fe, 0x13e69: 0xe0006c48, 0x13e6a: 0xe00074fd, + 0x13e6f: 0xe0006dc5, + 0x13e70: 0xe000a7d6, + 0x13e7a: 0xe0008c98, + // Block 0x4fa, offset 0x13e80 + 0x13e81: 0xe0004859, + 0x13e89: 0xe0008614, + 0x13e8d: 0xe0005813, 0x13e8e: 0xe0007501, 0x13e8f: 0xe0008796, + 0x13e90: 0xe0006132, + 0x13e95: 0xe000800b, + 0x13e9c: 0xe00058fe, 0x13e9d: 0xe0007c04, + 0x13ea4: 0xe0005724, 0x13ea5: 0xe0007835, + 0x13ea9: 0xe0006514, 0x13eaa: 0xe000720d, + 0x13eb7: 0xe000889b, + 0x13eb9: 0xe00077ab, 0x13eba: 0xe0005d6d, 0x13ebb: 0xe0008d4f, + 0x13ebd: 0xe0009a3e, 0x13ebf: 0xe0004a3d, + // Block 0x4fb, offset 0x13ec0 + 0x13ec0: 0xe0009b4c, 0x13ec2: 0xe0007c07, + 0x13ec4: 0xe0005153, 0x13ec6: 0xe0005aac, 0x13ec7: 0xe0007093, + 0x13eca: 0xe0007d22, 0x13ecb: 0xe0006a93, + 0x13ed6: 0xe000795f, 0x13ed7: 0xe00065a0, + 0x13ed8: 0xe00078d1, 0x13eda: 0xe0006eac, + 0x13ee2: 0xe0005b56, + 0x13ee7: 0xe0004500, + 0x13ee9: 0xe0006528, + 0x13eed: 0xe00057c3, 0x13eef: 0xe0009bf0, + 0x13efc: 0xe000624a, 0x13eff: 0xe0005760, + // Block 0x4fc, offset 0x13f00 + 0x13f01: 0xe0005156, + 0x13f0e: 0xe000a47b, + 0x13f10: 0xe000a037, 0x13f13: 0xe000a76c, + 0x13f14: 0xe000452c, 0x13f15: 0xe000948e, + 0x13f1b: 0xe000a23c, + 0x13f1c: 0xe0005aaf, 0x13f1e: 0xe000800e, 0x13f1f: 0xe000a47e, + 0x13f27: 0xe000a85d, + 0x13f2b: 0xe000a82d, + 0x13f2c: 0xe0004eee, 0x13f2f: 0xe0004ef1, + 0x13f31: 0xe000739a, + 0x13f38: 0xe000864d, 0x13f39: 0xe000a52d, 0x13f3a: 0xe000a830, 0x13f3b: 0xe0005f8c, + // Block 0x4fd, offset 0x13f40 + 0x13f4a: 0xe00061b9, 0x13f4b: 0xe0007c49, + 0x13f4c: 0xe0006440, 0x13f4d: 0xe0006a1d, + 0x13f53: 0xe000851a, + 0x13f55: 0xe0009584, + 0x13f63: 0xe00049aa, + 0x13f64: 0xe0008d52, + 0x13f68: 0xe000683d, 0x13f69: 0xe00099e1, 0x13f6a: 0xe00056df, + 0x13f6f: 0xe0004d55, + 0x13f70: 0xe00082d5, 0x13f71: 0xe0009481, + 0x13f74: 0xe00082d8, + // Block 0x4fe, offset 0x13f80 + 0x13f80: 0xe0008f28, + 0x13f85: 0xe0008b15, 0x13f86: 0xe00088d4, 0x13f87: 0xe0006b63, + 0x13f89: 0xe0005a6c, 0x13f8b: 0xe000536a, + 0x13f94: 0xe000a6eb, + 0x13f99: 0xe0007db5, 0x13f9b: 0xe0008ee6, + 0x13f9e: 0xe000a638, 0x13f9f: 0xe0004bfc, + 0x13fa3: 0xe000518f, + 0x13fa4: 0xe000a113, + 0x13fa9: 0xe00049ce, + 0x13fac: 0xe00049d2, 0x13fad: 0xe00091d9, + 0x13fb8: 0xe00070db, 0x13fb9: 0xe0007fbe, 0x13fbb: 0xe0007039, + 0x13fbe: 0xe00075c6, + // Block 0x4ff, offset 0x13fc0 + 0x13fc0: 0xe0009788, 0x13fc2: 0xe0006761, 0x13fc3: 0xe0007505, + 0x13fc6: 0xe000a309, + 0x13fc8: 0xe0007ca3, 0x13fc9: 0xe0006840, 0x13fca: 0xe0005d4b, 0x13fcb: 0xe0005867, + 0x13fd1: 0xe000539a, + 0x13fd8: 0xe00090a9, 0x13fda: 0xe00069ab, + 0x13fdc: 0xe00062b0, 0x13fdd: 0xe0005159, + 0x13fe1: 0xe0006bae, + 0x13fe5: 0xe0006e44, + 0x13fe8: 0xe0008b39, 0x13fe9: 0xe0008dbe, + 0x13ff4: 0xe00094f0, 0x13ff5: 0xe0007aaf, 0x13ff7: 0xe0004e43, + 0x13ffa: 0xe0007c4c, 0x13ffb: 0xe000968c, + 0x13fff: 0xe000816e, + // Block 0x500, offset 0x14000 + 0x14000: 0xe00056a9, + 0x1400c: 0xe0004a26, 0x1400e: 0xe00042d4, + 0x14015: 0xe000749d, 0x14017: 0xe000a68c, + 0x14019: 0xe0009df4, + 0x1401f: 0xe00081d0, + 0x14020: 0xe000671d, + 0x14024: 0xe00082db, 0x14025: 0xe000609c, 0x14026: 0xe000a008, + 0x14028: 0xe0007396, + 0x1402e: 0xe0006721, + 0x14034: 0xe000a481, 0x14036: 0xe0008b2d, + 0x14038: 0xe0007db8, + // Block 0x501, offset 0x14040 + 0x14042: 0xe000584f, 0x14043: 0xe000647c, + 0x1404c: 0xe00063a0, 0x1404d: 0xe000834e, + 0x14058: 0xe0008453, + 0x1405e: 0xe0005dfb, 0x1405f: 0xe000601c, + 0x14062: 0xe000a3b9, 0x14063: 0xe000574c, + 0x1406d: 0xe0005d4e, + 0x14073: 0xe0005472, + 0x14074: 0xe000919d, + 0x1407a: 0xe0005763, 0x1407b: 0xe0005c21, + 0x1407d: 0xe0008e69, + // Block 0x502, offset 0x14080 + 0x14080: 0xe0007144, + 0x14084: 0xe0009a96, 0x14087: 0xe0005dfe, + 0x1408a: 0xe000609f, 0x1408b: 0xe0007551, + 0x14092: 0xe0005efb, + 0x1409a: 0xe0009da8, 0x1409b: 0xe0009dac, + 0x140a0: 0xe0006378, 0x140a3: 0xe000515c, + 0x140ac: 0xe0006eb0, 0x140af: 0xe0007ee0, + 0x140b2: 0xe0009922, + 0x140b7: 0xe00054a2, + 0x140b9: 0xe000a1b0, 0x140bb: 0xe000842c, + 0x140be: 0xe0006f74, + // Block 0x503, offset 0x140c0 + 0x140c5: 0xe00073de, + 0x140cd: 0xe00042ec, + 0x140d1: 0xe0007bd3, + 0x140d5: 0xe0007ab3, + 0x140df: 0xe000582f, + 0x140e1: 0xe000592b, 0x140e2: 0xe0008f89, 0x140e3: 0xe0005901, + 0x140f1: 0xe000485c, 0x140f2: 0xe000462d, + 0x140f6: 0xe00086f6, + 0x140f9: 0xe00056e2, 0x140fb: 0xe0005e63, + // Block 0x504, offset 0x14100 + 0x14100: 0xe000a321, + 0x14104: 0xe00052f1, 0x14106: 0xe0008fe9, + 0x1410a: 0xe0005fec, + 0x1410c: 0xe000a206, 0x1410d: 0xe0007a73, 0x1410e: 0xe00042a4, + 0x14112: 0xe000a2d9, 0x14113: 0xe0007365, + 0x14117: 0xe000419f, + 0x14119: 0xe00075c9, 0x1411b: 0xe00081d3, + 0x1411d: 0xe0009926, 0x1411e: 0xe00081f7, + 0x14121: 0xe000a3bd, 0x14122: 0xe0004cc5, 0x14123: 0xe000842f, + 0x14128: 0xe0009f06, 0x1412b: 0xe0006c64, + 0x1412e: 0xe000493a, + 0x14130: 0xe0007189, 0x14132: 0xe0005204, + 0x14137: 0xe000992a, + 0x1413d: 0xe00085a6, 0x1413e: 0xe0004fdb, 0x1413f: 0xe0004fdf, + // Block 0x505, offset 0x14140 + 0x14141: 0xe0008136, 0x14142: 0xe0006030, + 0x14148: 0xe00041a2, 0x1414b: 0xe00054e2, + 0x1414d: 0xe0009ea1, + 0x14152: 0xe000536e, + 0x14156: 0xe0007210, 0x14157: 0xe0009161, + 0x1415b: 0xe00088d7, + 0x1415d: 0xe0006843, 0x1415e: 0xe000491e, + 0x14162: 0xe000652c, + 0x1416a: 0xe0004503, 0x1416b: 0xe0009f70, + 0x14174: 0xe000485f, + // Block 0x506, offset 0x14180 + 0x14180: 0xe0008552, 0x14181: 0xe000881e, 0x14182: 0xe00059c8, + 0x14185: 0xe00087e2, + 0x1418a: 0xe00052c9, + 0x1418d: 0xe000493e, 0x1418f: 0xe0005d21, + 0x14192: 0xe0006846, + 0x14194: 0xe0007c0a, 0x14195: 0xe0008275, + 0x14198: 0xe0004d58, 0x14199: 0xe0004db3, + 0x1419c: 0xe00066a0, 0x1419d: 0xe000879a, 0x1419f: 0xe0006b66, + 0x141a1: 0xe0005d24, + 0x141a8: 0xe00069ae, + 0x141af: 0xe0008f2b, + 0x141b1: 0xe0009f2d, 0x141b3: 0xe0006d04, + 0x141b4: 0xe00064b0, 0x141b5: 0xe00064b3, + 0x141b8: 0xe0005766, 0x141b9: 0xe0004a29, + 0x141bd: 0xe0008c9b, 0x141be: 0xe0004506, + // Block 0x507, offset 0x141c0 + 0x141c4: 0xe0009497, 0x141c7: 0xe00066ed, + 0x141ca: 0xe0009df8, + 0x141cc: 0xe0004942, + 0x141d0: 0xe00042d0, 0x141d2: 0xe0009ea4, 0x141d3: 0xe00066a3, + 0x141d5: 0xe00082de, + 0x141d8: 0xe00081d6, 0x141d9: 0xe00064b6, 0x141da: 0xe00088da, + 0x141e5: 0xe0007f32, 0x141e7: 0xe0004785, + 0x141ea: 0xe0009c8f, 0x141eb: 0xe0009a0b, + 0x141f0: 0xe0004548, + 0x141f6: 0xe00073aa, + 0x141f8: 0xe0005c09, 0x141fa: 0xe0009660, 0x141fb: 0xe0006f30, + // Block 0x508, offset 0x14200 + 0x14201: 0xe00043e8, + 0x14204: 0xe00078a5, + 0x1420d: 0xe000871a, + 0x14216: 0xe0007cdc, + 0x14218: 0xe0004b9f, + 0x1421c: 0xe0009624, 0x1421e: 0xe00065b8, 0x1421f: 0xe0004fe3, + 0x14220: 0xe00054a6, + 0x14224: 0xe0005817, + 0x1422a: 0xe0005eab, + 0x1422d: 0xe000a988, 0x1422f: 0xe0009a42, + 0x14232: 0xe00073ae, + 0x14234: 0xe00057db, + 0x1423f: 0xe0006dc8, + // Block 0x509, offset 0x14240 + 0x14241: 0xe0007ee3, 0x14243: 0xe00053fa, + 0x14246: 0xe00066f1, 0x14247: 0xe0009d7b, + 0x14248: 0xe000a1f2, 0x14249: 0xe000515f, 0x1424b: 0xe0004601, + 0x1424f: 0xe0004ec4, + 0x14253: 0xe0005f94, + 0x14256: 0xe0007430, 0x14257: 0xe0006bb1, + 0x14258: 0xe0008b19, + 0x14261: 0xe00045c5, + 0x14268: 0xe0007653, 0x14269: 0xe0005563, 0x1426a: 0xe0009a36, + 0x1426c: 0xe0005162, 0x1426f: 0xe0004d5b, + 0x14272: 0xe0004f7f, + 0x14277: 0xe000949a, + 0x1427a: 0xe0004204, + 0x1427d: 0xe000581b, 0x1427f: 0xe0008959, + // Block 0x50a, offset 0x14280 + 0x14280: 0xe0004a89, + 0x14292: 0xe0004208, + 0x14294: 0xe0004fa7, 0x14296: 0xe0004651, + 0x1429a: 0xe00048b6, + 0x1429c: 0xe0008650, 0x1429d: 0xe00088dd, + 0x142a3: 0xe000a1b3, + 0x142a5: 0xe0004bba, + 0x142b1: 0xe0009fc9, 0x142b3: 0xe00048f6, + 0x142b4: 0xe0006d08, + 0x142b8: 0xe000978c, + // Block 0x50b, offset 0x142c0 + 0x142c0: 0xe0007937, 0x142c2: 0xe0008bed, 0x142c3: 0xe00067e3, + 0x142c7: 0xe0004bbe, + 0x142c8: 0xe00047d2, 0x142c9: 0xe0006570, 0x142ca: 0xe0007509, + 0x142cc: 0xe000a531, 0x142ce: 0xe0009c53, + 0x142d0: 0xe00076bb, 0x142d1: 0xe00084b6, 0x142d3: 0xe000a7da, + 0x142d4: 0xe000839a, 0x142d5: 0xe0006c28, 0x142d6: 0xe000a8d3, 0x142d7: 0xe0009b2c, + 0x142d8: 0xe00050e7, 0x142db: 0xe0007dbb, + 0x142dd: 0xe00075cc, 0x142df: 0xe0007158, + 0x142e2: 0xe000a8bf, 0x142e3: 0xe0004649, + 0x142e5: 0xe00052d9, + 0x142ea: 0xe0006444, + 0x142ed: 0xe0006f34, + 0x142f1: 0xe000a23f, + 0x142f4: 0xe0007096, 0x142f6: 0xe00041a5, + 0x142fa: 0xe0009165, 0x142fb: 0xe0008ee9, + 0x142fc: 0xe0008c5d, 0x142fe: 0xe0008653, + // Block 0x50c, offset 0x14300 + 0x14301: 0xe00048b9, + 0x14306: 0xe00088e0, + 0x1430b: 0xe0008f2e, + 0x14310: 0xe0006b69, 0x14311: 0xe00084b9, + 0x14314: 0xe0008d55, 0x14315: 0xe0009e1c, 0x14316: 0xe0009f79, 0x14317: 0xe000a3d9, + 0x14318: 0xe0004de7, 0x1431b: 0xe000889e, + 0x1431e: 0xe0006b6c, + 0x14320: 0xe0007ba3, 0x14321: 0xe000a7ae, 0x14322: 0xe0007325, 0x14323: 0xe0007c0d, + 0x14326: 0xe0007433, + 0x14329: 0xe0007436, 0x1432b: 0xe0009ae7, + 0x1432c: 0xe0004d5e, 0x1432d: 0xe0004e64, 0x1432e: 0xe00089dd, + 0x14330: 0xe000a97c, 0x14331: 0xe000a56b, 0x14332: 0xe000a1b6, 0x14333: 0xe0006d0c, + 0x14335: 0xe0006eb4, + 0x14339: 0xe0009600, + 0x1433c: 0xe000a703, 0x1433f: 0xe0004b6f, + // Block 0x50d, offset 0x14340 + 0x14342: 0xe0008dc1, + 0x14344: 0xe0005b92, 0x14345: 0xe0008eec, 0x14346: 0xe0004b55, 0x14347: 0xe00049fc, + 0x1434c: 0xe00090ac, 0x1434d: 0xe000851e, + 0x14351: 0xe0004b59, 0x14353: 0xe0006dcb, + 0x14355: 0xe0009b7c, + 0x14358: 0xe0008278, 0x1435a: 0xe0009751, + 0x1435e: 0xe00078f7, + 0x14360: 0xe0007008, 0x14361: 0xe00047d5, 0x14362: 0xe000a30d, 0x14363: 0xe000616e, + 0x14364: 0xe0007ca6, 0x14365: 0xe0004862, 0x14366: 0xe000715c, 0x14367: 0xe0009ec8, + 0x14368: 0xe000a6ee, 0x1436a: 0xe0006f38, + 0x14370: 0xe0007213, 0x14372: 0xe00049ff, + 0x14379: 0xe00069b1, + 0x1437c: 0xe0008432, 0x1437e: 0xe0008366, 0x1437f: 0xe0008d58, + // Block 0x50e, offset 0x14380 + 0x14382: 0xe0009604, + 0x14384: 0xe0007329, 0x14387: 0xe00053fe, + 0x14389: 0xe00081fa, 0x1438b: 0xe0009678, + 0x1438d: 0xe0008847, 0x1438f: 0xe000983e, + 0x14392: 0xe00058b9, + 0x14396: 0xe0005b26, + 0x1439b: 0xe000827b, + 0x1439c: 0xe0009644, 0x1439e: 0xe0009dfc, 0x1439f: 0xe0007463, + 0x143a0: 0xe000a816, 0x143a1: 0xe0007439, + 0x143a4: 0xe0007657, 0x143a6: 0xe00096a3, 0x143a7: 0xe000a1b9, + 0x143aa: 0xe0008bf1, 0x143ab: 0xe0004280, + 0x143ad: 0xe000827e, 0x143ae: 0xe0008617, + 0x143b0: 0xe0007466, 0x143b1: 0xe000a842, 0x143b3: 0xe0007707, + 0x143b4: 0xe000a0fb, 0x143b6: 0xe0007579, 0x143b7: 0xe0009f4c, + 0x143b8: 0xe0008c9e, 0x143ba: 0xe000793b, + 0x143bc: 0xe000a81a, 0x143be: 0xe00051bc, + // Block 0x50f, offset 0x143c0 + 0x143c0: 0xe0006072, 0x143c1: 0xe000769f, 0x143c2: 0xe00081d9, + 0x143c4: 0xe0005728, 0x143c7: 0xe000454c, + 0x143cc: 0xe00041e1, 0x143ce: 0xe000621a, + 0x143d0: 0xe00062b4, 0x143d1: 0xe000a412, + 0x143d4: 0xe000a03b, 0x143d6: 0xe0007108, 0x143d7: 0xe0006448, + 0x143d9: 0xe0004665, 0x143da: 0xe00084d6, 0x143db: 0xe00043ec, + 0x143dc: 0xe0008172, 0x143dd: 0xe0006b6f, + 0x143e0: 0xe0007ee6, 0x143e3: 0xe0008050, + 0x143e6: 0xe0004789, + 0x143e8: 0xe0006075, 0x143eb: 0xe0008925, + 0x143ec: 0xe0005c4b, + 0x143f3: 0xe0004cc8, + 0x143f7: 0xe0007cdf, + 0x143f9: 0xe0004f83, + 0x143fe: 0xe0005e83, + // Block 0x510, offset 0x14400 + 0x14401: 0xe000a56e, 0x14403: 0xe000a7b1, + 0x14409: 0xe0009041, + 0x1440c: 0xe0007dd6, 0x1440e: 0xe000a873, 0x1440f: 0xe00050ea, + 0x14414: 0xe0006ef8, 0x14416: 0xe0009377, + 0x14418: 0xe00074a1, 0x14419: 0xe0009754, 0x1441a: 0xe0005402, + 0x1441c: 0xe00066a6, 0x1441f: 0xe0008dc4, + 0x14426: 0xe0004729, + 0x1442b: 0xe0006f94, + 0x1442c: 0xe00069b4, 0x1442f: 0xe00079f3, + 0x14430: 0xe0008435, 0x14431: 0xe0006efc, + 0x14434: 0xe0004605, 0x14437: 0xe000a484, + 0x1443d: 0xe0007c10, 0x1443f: 0xe000a415, + // Block 0x511, offset 0x14440 + 0x14440: 0xe00055e1, + 0x14449: 0xe00082e1, 0x1444a: 0xe00065cc, + 0x1444c: 0xe0007ab7, 0x1444e: 0xe0007276, + 0x14450: 0xe0007216, 0x14452: 0xe0009347, 0x14453: 0xe00078a9, + 0x14456: 0xe000934b, + 0x1445a: 0xe00092d7, + 0x1445c: 0xe00054aa, 0x1445e: 0xe000794b, + // Block 0x512, offset 0x14480 + 0x144b7: 0xe00048e2, + 0x144bf: 0xe00047d8, + // Block 0x513, offset 0x144c0 + 0x144c1: 0xe000a630, + 0x144c6: 0xe00056ca, 0x144c7: 0xe0004438, + 0x144c8: 0xe00050ed, 0x144c9: 0xe0007469, 0x144ca: 0xe0009f50, + 0x144cc: 0xe0007e15, 0x144ce: 0xe0007279, + 0x144d5: 0xe000743c, 0x144d6: 0xe00098ee, + 0x144da: 0xe000560d, + 0x144e1: 0xe0006d10, 0x144e2: 0xe000a610, + 0x144e8: 0xe000a976, 0x144ea: 0xe000a487, 0x144eb: 0xe0007c13, + 0x144ec: 0xe00088e3, + 0x144f3: 0xe0006a97, + 0x144f8: 0xe0009a0e, 0x144f9: 0xe0009f09, 0x144fa: 0xe000743f, + // Block 0x514, offset 0x14500 + 0x14502: 0xe0009712, 0x14503: 0xe0005f60, + 0x1450a: 0xe0005f4c, + 0x1450c: 0xe0006078, 0x1450d: 0xe0005d51, + 0x14513: 0xe0006135, + 0x14514: 0xe0006a20, + 0x14518: 0xe0005f64, + 0x1451d: 0xe0009d7e, 0x1451e: 0xe0008bf5, + 0x14520: 0xe00067e6, 0x14521: 0xe0008821, 0x14522: 0xe00049ae, + 0x14527: 0xe0006a73, + 0x14528: 0xe000a571, 0x14529: 0xe0009d38, 0x1452a: 0xe0009bac, 0x1452b: 0xe0004a8d, + 0x1452c: 0xe0009469, 0x1452f: 0xe00088a1, + 0x14530: 0xe000702d, 0x14532: 0xe0008656, 0x14533: 0xe0008495, + 0x14534: 0xe0004e9d, 0x14536: 0xe0009e00, 0x14537: 0xe0005f21, + 0x14538: 0xe00054e5, 0x1453a: 0xe000a6b0, 0x1453b: 0xe00069b7, + 0x1453c: 0xe0009648, 0x1453d: 0xe0008492, 0x1453f: 0xe0006171, + // Block 0x515, offset 0x14540 + 0x14540: 0xe000a00b, 0x14541: 0xe00068a0, 0x14542: 0xe0005b6e, 0x14543: 0xe000859e, + 0x14544: 0xe000a6f1, 0x14546: 0xe00065f0, 0x14547: 0xe000861a, + 0x14548: 0xe00041a8, 0x1454a: 0xe0008929, + 0x14551: 0xe0009169, 0x14553: 0xe0006a77, + 0x14559: 0xe0008f31, 0x1455a: 0xe0005b71, + 0x1455c: 0xe0006b72, 0x1455e: 0xe0006d14, + 0x14560: 0xe00064b9, 0x14561: 0xe00044a6, 0x14562: 0xe000a2dd, 0x14563: 0xe0005f24, + 0x14564: 0xe000952c, 0x14566: 0xe00067e9, + 0x1456a: 0xe00091dd, + 0x1456c: 0xe00087e6, 0x1456d: 0xe0005566, + 0x14574: 0xe0005b74, + 0x1457b: 0xe00067ec, + 0x1457c: 0xe0004ccb, 0x1457d: 0xe0006d46, + // Block 0x516, offset 0x14580 + 0x14584: 0xe00090af, 0x14585: 0xe0009943, 0x14587: 0xe0008322, + 0x14588: 0xe0009045, 0x1458a: 0xe00092db, 0x1458b: 0xe0007693, + 0x1458d: 0xe0006f78, 0x1458f: 0xe0007bd7, + 0x14590: 0xe0007535, 0x14593: 0xe000879e, + 0x14594: 0xe0006a23, 0x14596: 0xe000710c, + 0x1459b: 0xe00049d6, + // Block 0x517, offset 0x145c0 + 0x145e4: 0xe000892d, 0x145e6: 0xe0006b75, 0x145e7: 0xe00051d4, + 0x145eb: 0xe000a281, + 0x145ed: 0xe0008659, + 0x145f0: 0xe0008eef, 0x145f3: 0xe0004ec7, + 0x145f4: 0xe00067ef, 0x145f6: 0xe00042a8, 0x145f7: 0xe00050f0, + // Block 0x518, offset 0x14600 + 0x14601: 0xe00091a1, + 0x14605: 0xe0009715, + 0x1460a: 0xe000818a, + 0x1460e: 0xe0008f34, + 0x14610: 0xe000a32d, + 0x14619: 0xe0008d5b, + 0x14620: 0xe0009757, 0x14623: 0xe0009973, + 0x14628: 0xe0009841, 0x1462b: 0xe0004c38, + 0x14632: 0xe0009307, 0x14633: 0xe0008de1, + 0x1463a: 0xe00067f2, + 0x1463e: 0xe00090b2, + // Block 0x519, offset 0x14640 + 0x14642: 0xe0005165, + 0x14646: 0xe0009c15, + 0x1464b: 0xe00063c0, + 0x1464c: 0xe00091e1, 0x1464e: 0xe0009aea, 0x1464f: 0xe00041ab, + 0x14655: 0xe0008b3d, 0x14656: 0xe00094f4, 0x14657: 0xe0006849, + 0x1465b: 0xe0009cf4, + 0x1465d: 0xe00044d3, 0x1465f: 0xe0004fab, + 0x14661: 0xe0008931, 0x14663: 0xe0006eb8, + 0x14668: 0xe0004a02, 0x1466a: 0xe0004e8b, 0x1466b: 0xe00049da, + 0x1466c: 0xe0004ef4, 0x1466f: 0xe0005ab2, + 0x14671: 0xe0009a11, 0x14673: 0xe0005569, + 0x1467c: 0xe0004d9f, + // Block 0x51a, offset 0x14680 + 0x14686: 0xe0008fbd, + 0x14688: 0xe00070de, 0x14689: 0xe00058d5, 0x1468a: 0xe0007f92, + 0x1468f: 0xe0005446, + 0x14690: 0xe0009530, + 0x14694: 0xe0009b50, + 0x1469d: 0xe0004a2c, 0x1469e: 0xe00044d6, 0x1469f: 0xe00090d3, + 0x146aa: 0xe0008e39, + 0x146b0: 0xe0008281, + 0x146b4: 0xe0007fc2, 0x146b5: 0xe0008e3d, 0x146b6: 0xe0008cd1, + 0x146bd: 0xe0008053, + // Block 0x51b, offset 0x146c0 + 0x146c0: 0xe0008b41, 0x146c2: 0xe0008284, + 0x146c4: 0xe0008ca1, 0x146c7: 0xe0004530, + 0x146c8: 0xe000556c, 0x146c9: 0xe0009266, 0x146ca: 0xe000a3f7, + 0x146cc: 0xe000941b, 0x146cf: 0xe0008cd4, + 0x146d5: 0xe0009fcd, + 0x146d9: 0xe00098d6, + 0x146dc: 0xe00098f2, 0x146df: 0xe0008935, + 0x146e0: 0xe00094cc, 0x146e3: 0xe0005e87, + 0x146e4: 0xe0008e6d, + 0x146f2: 0xe0008fc1, + 0x146f4: 0xe00098da, 0x146f6: 0xe0004e53, + 0x146fb: 0xe0004c3b, + // Block 0x51c, offset 0x14700 + 0x14701: 0xe0008d5e, + 0x14705: 0xe00097a0, 0x14707: 0xe00088a4, + 0x14709: 0xe000561d, 0x1470a: 0xe0008ef2, 0x1470b: 0xe0008cd7, + 0x1470d: 0xe0007839, + 0x14710: 0xe00059fc, 0x14711: 0xe00094f8, 0x14713: 0xe00090d6, + 0x14714: 0xe0008a71, + 0x14719: 0xe0005d9d, + 0x14721: 0xe0006fbc, + 0x14729: 0xe0004a4d, 0x1472a: 0xe0005d71, 0x1472b: 0xe000750d, + 0x1472c: 0xe0004dff, + 0x14731: 0xe0009aed, 0x14733: 0xe0004e03, + // Block 0x51d, offset 0x14740 + 0x14740: 0xe0004cce, + 0x14746: 0xe00096c7, + 0x1474a: 0xe0009269, 0x1474b: 0xe00076a3, + 0x1474c: 0xe0004e67, 0x1474d: 0xe0004db7, + 0x14752: 0xe000a251, + 0x1475f: 0xe0007a77, + 0x14768: 0xe0005a70, 0x1476b: 0xe000916d, + 0x14778: 0xe00098de, 0x14779: 0xe00090d9, 0x1477a: 0xe000975a, 0x1477b: 0xe00041ae, + 0x1477c: 0xe000857e, 0x1477e: 0xe00074a5, + // Block 0x51e, offset 0x14780 + 0x14783: 0xe0004bff, + 0x14785: 0xe0005ab5, 0x14787: 0xe0008a75, + 0x14788: 0xe0008f37, 0x14789: 0xe0008824, + 0x14792: 0xe000964c, 0x14793: 0xe0005e67, + 0x14794: 0xe00066a9, 0x14795: 0xe000472d, + 0x1479b: 0xe00058bd, + 0x1479c: 0xe00099e4, 0x1479d: 0xe000a845, 0x1479e: 0xe0005ee3, 0x1479f: 0xe00095ac, + 0x147a6: 0xe000598c, 0x147a7: 0xe0006650, + 0x147a8: 0xe0004ab9, 0x147a9: 0xe00064bc, 0x147aa: 0xe0005c84, + 0x147af: 0xe0009215, + 0x147b0: 0xe00078d5, 0x147b3: 0xe0008ef5, + 0x147b8: 0xe0007219, 0x147b9: 0xe00066f5, 0x147bb: 0xe00066f9, + 0x147be: 0xe00089e1, 0x147bf: 0xe00079cf, + // Block 0x51f, offset 0x147c0 + 0x147c0: 0xe0007d3e, 0x147c2: 0xe00048fa, + 0x147c4: 0xe000a0bb, 0x147c5: 0xe000813a, 0x147c6: 0xe0005b1e, + 0x147c9: 0xe00089e5, + 0x147cd: 0xe00095b0, 0x147ce: 0xe0004c02, + 0x147d2: 0xe00068e8, + 0x147d4: 0xe0005da1, 0x147d7: 0xe0004374, + 0x147d8: 0xe000a614, + 0x147dd: 0xe00079d2, 0x147de: 0xe000a0ff, 0x147df: 0xe0004bb2, + 0x147e1: 0xe0006a26, 0x147e2: 0xe0005948, 0x147e3: 0xe0005960, + 0x147e4: 0xe0005ad9, + // Block 0x520, offset 0x14800 + 0x1481b: 0xe0007511, + 0x1481c: 0xe0004865, 0x1481f: 0xe0009f7c, + 0x14822: 0xe00057f3, 0x14823: 0xe00057eb, + 0x14826: 0xe0009d3c, + 0x14828: 0xe00065d0, + 0x1482d: 0xe0006b78, 0x1482e: 0xe00065e8, 0x1482f: 0xe00065d4, + 0x14830: 0xe0009171, 0x14831: 0xe0007f36, 0x14832: 0xe000529d, + 0x1483b: 0xe000759d, + 0x1483f: 0xe0009588, + // Block 0x521, offset 0x14840 + 0x14840: 0xe00042ac, 0x14842: 0xe0008011, 0x14843: 0xe0007ce2, + 0x14844: 0xe000a8e3, 0x14845: 0xe0007515, + 0x1484d: 0xe0005704, 0x1484e: 0xe0007ba7, + 0x14851: 0xe0004f87, 0x14853: 0xe00075f6, + 0x14854: 0xe000637c, 0x14855: 0xe0007ce5, + 0x14862: 0xe000975d, + 0x14864: 0xe00084bc, 0x14865: 0xe000a3dd, 0x14866: 0xe00041b1, + 0x14868: 0xe0009c2a, 0x1486a: 0xe0008939, 0x1486b: 0xe0006300, + 0x1486c: 0xe0007e61, 0x1486d: 0xe00091e5, + 0x14870: 0xe0007369, 0x14872: 0xe000459c, + 0x14874: 0xe000a706, 0x14877: 0xe000621d, + 0x14878: 0xe000666c, 0x14879: 0xe000893d, 0x1487a: 0xe000522c, + 0x1487d: 0xe0009844, + // Block 0x522, offset 0x14880 + 0x14880: 0xe0009c92, 0x14881: 0xe0007160, 0x14882: 0xe0004ae1, 0x14883: 0xe000556f, + 0x14885: 0xe000a796, 0x14886: 0xe00079f7, + 0x14888: 0xe000a3c1, 0x1488b: 0xe0009ea7, + 0x1488c: 0xe00082e4, 0x1488d: 0xe0007099, 0x1488f: 0xe0009ca7, + 0x14890: 0xe00098e2, 0x14891: 0xe0004cd1, + 0x14894: 0xe0005572, 0x14895: 0xe0004731, 0x14896: 0xe000895d, 0x14897: 0xe00056cd, + 0x14899: 0xe00088a7, 0x1489a: 0xe0009c76, + 0x1489d: 0xe0006dce, 0x1489e: 0xe0005a30, 0x1489f: 0xe0007110, + 0x148a0: 0xe0008d61, 0x148a1: 0xe0008f8d, 0x148a2: 0xe0006765, 0x148a3: 0xe0005990, + 0x148ae: 0xe00096a6, + 0x148b1: 0xe0008ef8, 0x148b2: 0xe0009175, + 0x148b4: 0xe0009b54, 0x148b5: 0xe0004eca, 0x148b6: 0xe00081fd, + 0x148b8: 0xe000856e, + 0x148bc: 0xe0009fe5, 0x148be: 0xe000828a, + // Block 0x523, offset 0x148c0 + 0x148c1: 0xe00056f4, 0x148c2: 0xe000721c, + 0x148c7: 0xe0008014, + 0x148c9: 0xe0008c61, 0x148ca: 0xe0008287, 0x148cb: 0xe00080aa, + 0x148cd: 0xe0009dd0, 0x148ce: 0xe0004a05, 0x148cf: 0xe00076bf, + 0x148d0: 0xe000a00e, 0x148d1: 0xe000a690, 0x148d2: 0xe0008f3a, 0x148d3: 0xe0005575, + 0x148d4: 0xe00053ae, 0x148d5: 0xe00081dc, + 0x148d8: 0xe0004d61, 0x148d9: 0xe0007ee9, 0x148db: 0xe0005c5a, + 0x148dc: 0xe000712c, 0x148dd: 0xe000544a, 0x148de: 0xe00096a9, + 0x148e0: 0xe000813e, 0x148e1: 0xe000709c, 0x148e3: 0xe0004609, + 0x148e8: 0xe0007ce8, 0x148e9: 0xe0008941, + 0x148ec: 0xe0007118, 0x148ed: 0xe0008d64, 0x148ee: 0xe000926c, 0x148ef: 0xe00056f8, + 0x148f2: 0xe00090b5, + 0x148f5: 0xe0008f91, 0x148f6: 0xe0007f1c, 0x148f7: 0xe0009534, + 0x148f8: 0xe0006ebc, 0x148fa: 0xe000828d, + 0x148fc: 0xe0005bb9, 0x148fd: 0xe00044d9, 0x148ff: 0xe0009f73, + // Block 0x524, offset 0x14900 + 0x14900: 0xe0007eec, 0x14901: 0xe0005f27, 0x14902: 0xe000a1bc, 0x14903: 0xe000721f, + 0x14904: 0xe000a5e8, 0x14905: 0xe0008a79, 0x14907: 0xe0008498, + 0x14908: 0xe0005e1b, 0x1490a: 0xe00065d8, + 0x1490c: 0xe000592e, 0x1490f: 0xe0005769, + 0x14910: 0xe0005d54, 0x14911: 0xe00083e2, + 0x14915: 0xe0007d76, + 0x14919: 0xe0005ee7, + 0x14920: 0xe0006a9b, 0x14922: 0xe000a3c5, 0x14923: 0xe00051aa, + 0x14926: 0xe000644c, + 0x14928: 0xe00097b4, 0x1492a: 0xe0006b7b, + 0x1492f: 0xe0004334, + 0x14930: 0xe0009c18, 0x14931: 0xe0004cd4, 0x14933: 0xe0006a29, + 0x14935: 0xe000709f, + 0x14938: 0xe00088aa, + 0x1493d: 0xe0004ef7, + // Block 0x525, offset 0x14940 + 0x14941: 0xe000807e, 0x14943: 0xe000a13b, + 0x14944: 0xe0004f4f, 0x14945: 0xe00091f5, + 0x1494a: 0xe0004c05, + 0x1495c: 0xe00048bc, 0x1495d: 0xe000a053, 0x1495e: 0xe0005853, + 0x14961: 0xe0004dbb, 0x14962: 0xe0007bdb, + 0x14968: 0xe00067f5, 0x1496a: 0xe000949d, 0x1496b: 0xe0006a2c, + 0x1496d: 0xe0004a41, 0x1496f: 0xe000542e, + 0x14974: 0xe0009a8a, 0x14975: 0xe0008017, + 0x1497d: 0xe0005578, + // Block 0x526, offset 0x14980 + 0x14982: 0xe0007623, + 0x14992: 0xe0009847, + 0x14995: 0xe000a21e, + 0x14999: 0xe00069ba, + 0x1499e: 0xe000839e, + 0x149a2: 0xe000794f, 0x149a3: 0xe00087ea, + 0x149a7: 0xe000572c, + 0x149ad: 0xe0008bf9, + 0x149b0: 0xe0005da5, 0x149b1: 0xe0009d21, 0x149b2: 0xe0005372, + 0x149b4: 0xe00079a3, + 0x149bd: 0xe0008a7d, + // Block 0x527, offset 0x149c0 + 0x149c8: 0xe0005964, 0x149c9: 0xe0008290, 0x149ca: 0xe0008bfd, 0x149cb: 0xe000984a, + 0x149cc: 0xe0008696, 0x149cd: 0xe00064bf, 0x149ce: 0xe0008efb, + 0x149d2: 0xe0008efe, + 0x149d6: 0xe0009bb8, 0x149d7: 0xe000a7b4, + 0x149e2: 0xe0009718, 0x149e3: 0xe0004378, + 0x149e4: 0xe00048bf, 0x149e5: 0xe00070e1, + 0x149e9: 0xe0006020, 0x149ea: 0xe000579b, + 0x149ec: 0xe0007222, + 0x149f2: 0xe0008c65, + 0x149f4: 0xe00055ab, 0x149f5: 0xe000a754, 0x149f6: 0xe0005f42, 0x149f7: 0xe000a4d1, + 0x149f8: 0xe0006c00, 0x149f9: 0xe0005b95, + // Block 0x528, offset 0x14a00 + 0x14a03: 0xe000798f, + 0x14a07: 0xe000732d, + 0x14a09: 0xe0009976, 0x14a0b: 0xe000971b, + 0x14a0d: 0xe0008ca4, + 0x14a10: 0xe000a4c0, 0x14a12: 0xe000700c, + 0x14a1c: 0xe000984d, 0x14a1e: 0xe0007d42, + 0x14a22: 0xe000a1dd, + 0x14a2a: 0xe0005bd7, 0x14a2b: 0xe0008438, + 0x14a2c: 0xe00087a2, 0x14a2e: 0xe000971e, 0x14a2f: 0xe000a3fa, + 0x14a31: 0xe00063c4, 0x14a32: 0xe00052ad, + 0x14a34: 0xe0005a85, 0x14a35: 0xe00044ae, + // Block 0x529, offset 0x14a40 + 0x14a40: 0xe00078ad, 0x14a41: 0xe000a8c3, 0x14a43: 0xe000746c, + 0x14a45: 0xe0007b1b, 0x14a47: 0xe0009451, + 0x14a49: 0xe0008293, 0x14a4b: 0xe0006e2c, + 0x14a4c: 0xe0005d27, 0x14a4d: 0xe0008fed, 0x14a4e: 0xe000781b, 0x14a4f: 0xe00058c1, + 0x14a50: 0xe0005d2a, 0x14a51: 0xe0005193, + 0x14a57: 0xe000718c, + 0x14a58: 0xe0008c01, + 0x14a5c: 0xe00067f8, 0x14a5d: 0xe0009a72, + 0x14a63: 0xe0008d67, + 0x14a64: 0xe0006c6c, 0x14a66: 0xe0004d64, 0x14a67: 0xe0009538, + 0x14a6a: 0xe000801a, + 0x14a6d: 0xe00049de, + 0x14a75: 0xe0009454, + 0x14a7f: 0xe0004faf, + // Block 0x52a, offset 0x14a80 + 0x14a87: 0xe000684c, + 0x14a8d: 0xe00056fc, + 0x14a90: 0xe0004584, 0x14a91: 0xe0009d40, 0x14a92: 0xe0006c7c, + 0x14a94: 0xe0009760, 0x14a97: 0xe0008326, + 0x14a9c: 0xe000a72b, 0x14a9e: 0xe0004f17, 0x14a9f: 0xe0008dc7, + 0x14ab4: 0xe0005a34, 0x14ab5: 0xe0006670, 0x14ab7: 0xe00048c2, + 0x14ab8: 0xe00063e0, 0x14aba: 0xe0007d0a, + 0x14abf: 0xe00089e9, + // Block 0x52b, offset 0x14ac0 + 0x14ac0: 0xe0004390, 0x14ac1: 0xe00091a5, + 0x14ac5: 0xe00044dc, + 0x14ac9: 0xe000a2e1, 0x14acb: 0xe0009ecb, + 0x14ace: 0xe0006d7c, 0x14acf: 0xe0006df5, + 0x14ad0: 0xe0006e48, 0x14ad2: 0xe0008f3d, + 0x14ad7: 0xe0004669, + 0x14adb: 0xe0007a7b, + 0x14ade: 0xe000818e, + 0x14ae2: 0xe00063c8, + 0x14ae4: 0xe0004cd7, 0x14ae5: 0xe000736d, 0x14ae6: 0xe0008c05, + 0x14af7: 0xe000a545, + 0x14af8: 0xe0004c3e, + 0x14afc: 0xe0006678, 0x14afe: 0xe00060a2, + // Block 0x52c, offset 0x14b00 + 0x14b00: 0xe000836a, 0x14b03: 0xe00097e0, + 0x14b05: 0xe0005671, + 0x14b0b: 0xe00085aa, + 0x14b11: 0xe0006ec0, 0x14b13: 0xe00089ed, + 0x14b15: 0xe00095d0, 0x14b16: 0xe0007225, + 0x14b18: 0xe0006024, 0x14b19: 0xe0004a2f, 0x14b1a: 0xe0008dca, 0x14b1b: 0xe0006f98, + 0x14b1c: 0xe000a0e7, + 0x14b33: 0xe0007c16, + 0x14b36: 0xe0004cda, 0x14b37: 0xe00070a2, + 0x14b39: 0xe0007228, + // Block 0x52d, offset 0x14b40 + 0x14b46: 0xe0008332, + 0x14b4c: 0xe0008c09, 0x14b4f: 0xe000a35d, + 0x14b51: 0xe0008a81, 0x14b52: 0xe0006769, + 0x14b57: 0xe000a311, + 0x14b5f: 0xe0009a8e, + 0x14b64: 0xe0006dd1, 0x14b65: 0xe0008c69, + 0x14b6a: 0xe0009eaa, + 0x14b72: 0xe0006674, + 0x14b78: 0xe00044df, 0x14b79: 0xe000941f, 0x14b7a: 0xe0008176, + 0x14b7c: 0xe00043f0, 0x14b7d: 0xe0008dcd, + // Block 0x52e, offset 0x14b80 + 0x14b84: 0xe0005afe, 0x14b86: 0xe0009423, + 0x14b8f: 0xe00075f9, + 0x14b90: 0xe0009850, + 0x14b95: 0xe0004946, + 0x14b98: 0xe0009853, 0x14b99: 0xe0009a14, 0x14b9a: 0xe000884b, + 0x14b9e: 0xe0007331, 0x14b9f: 0xe0005406, + 0x14ba0: 0xe0008c0d, 0x14ba1: 0xe00050f3, 0x14ba2: 0xe00089f1, 0x14ba3: 0xe00095d4, + 0x14ba4: 0xe00050f6, 0x14ba6: 0xe0004fe7, 0x14ba7: 0xe0004abd, + 0x14ba8: 0xe0006129, 0x14baa: 0xe0008a85, 0x14bab: 0xe0006e30, + 0x14bac: 0xe00056ad, 0x14bae: 0xe0004868, 0x14baf: 0xe0009297, + // Block 0x52f, offset 0x14bc0 + 0x14bc8: 0xe0007bab, 0x14bc9: 0xe000746f, 0x14bca: 0xe0005994, 0x14bcb: 0xe0004a08, + 0x14bcd: 0xe000557b, + 0x14bd4: 0xe0007627, 0x14bd7: 0xe0008cda, + 0x14bdb: 0xe0005376, + 0x14bdc: 0xe000a02c, 0x14bdd: 0xe0008056, + 0x14be4: 0xe0006c94, + 0x14beb: 0xe0009763, + 0x14bec: 0xe0009766, 0x14bee: 0xe0008296, + 0x14bf0: 0xe000a618, + 0x14bf5: 0xe0004534, + 0x14bfc: 0xe0009a76, 0x14bfe: 0xe0008e41, + // Block 0x530, offset 0x14c00 + 0x14c0a: 0xe0006480, + 0x14c0c: 0xe000466d, + 0x14c14: 0xe0007f96, 0x14c16: 0xe000717d, 0x14c17: 0xe000885b, + 0x14c1a: 0xe0009856, 0x14c1b: 0xe0006318, + 0x14c1f: 0xe0006d34, + 0x14c21: 0xe000865c, 0x14c23: 0xe000a3c9, + 0x14c24: 0xe000a6b4, 0x14c27: 0xe0004473, + 0x14c2c: 0xe000a48a, 0x14c2d: 0xe0009179, + 0x14c30: 0xe0008572, + // Block 0x531, offset 0x14c40 + 0x14c43: 0xe0008de5, + 0x14c47: 0xe0006f00, + 0x14c48: 0xe00059a8, 0x14c4a: 0xe0007ceb, 0x14c4b: 0xe0005e8b, + 0x14c4c: 0xe0005e23, + 0x14c51: 0xe0008945, + 0x14c56: 0xe0007cee, 0x14c57: 0xe00044aa, + 0x14c58: 0xe00087ee, + 0x14c5c: 0xe00054ae, 0x14c5d: 0xe0005e8f, 0x14c5e: 0xe0007f9a, 0x14c5f: 0xe0006c2c, + 0x14c61: 0xe0004735, 0x14c62: 0xe0009f30, + 0x14c64: 0xe0005c0c, 0x14c66: 0xe00097ec, + 0x14c68: 0xe000937b, + 0x14c76: 0xe0009219, + 0x14c7b: 0xe0005da9, + // Block 0x532, offset 0x14c80 + 0x14c83: 0xe00052cc, + 0x14c84: 0xe000a723, + 0x14c8f: 0xe0008fc5, + 0x14c90: 0xe0005bda, 0x14c93: 0xe00054fd, + 0x14c94: 0xe000758d, + 0x14c98: 0xe0008e45, 0x14c99: 0xe0005750, + 0x14ca5: 0xe0006ec4, + 0x14caa: 0xe0005adc, 0x14cab: 0xe00089f5, + 0x14cb5: 0xe00095b4, 0x14cb6: 0xe000a61c, + 0x14cb8: 0xe0009b30, 0x14cba: 0xe00054b2, + // Block 0x533, offset 0x14cc0 + 0x14cc2: 0xe000a7f6, + 0x14cc4: 0xe0008f01, + 0x14cca: 0xe000a5ac, + 0x14ccc: 0xe0006a9f, + 0x14cd1: 0xe0004338, 0x14cd2: 0xe000433c, + 0x14cd5: 0xe00091f9, + 0x14cdb: 0xe0004b2d, + 0x14cde: 0xe0005833, + 0x14ce0: 0xe0006bd4, 0x14ce2: 0xe0005931, 0x14ce3: 0xe0009f33, + 0x14cea: 0xe0005adf, + 0x14cf0: 0xe000784d, 0x14cf1: 0xe000937f, 0x14cf2: 0xe00078d9, + 0x14cf5: 0xe0004ac1, 0x14cf7: 0xe0006fc0, + 0x14cfc: 0xe000577e, 0x14cfd: 0xe00092df, 0x14cfe: 0xe00057df, 0x14cff: 0xe000929b, + // Block 0x534, offset 0x14d00 + 0x14d37: 0xe00087a6, + // Block 0x535, offset 0x14d40 + 0x14d40: 0xe00061bd, 0x14d43: 0xe0006f7c, + 0x14d48: 0xe000a0a7, 0x14d49: 0xe0009e50, 0x14d4a: 0xe0006c30, 0x14d4b: 0xe0004476, + 0x14d4e: 0xe0004bc2, 0x14d4f: 0xe000832a, + 0x14d51: 0xe000a083, 0x14d52: 0xe000a087, 0x14d53: 0xe0004284, + 0x14d54: 0xe0006280, + 0x14d58: 0xe0004394, + 0x14d5f: 0xe0006a2f, + 0x14d63: 0xe000420c, + 0x14d64: 0xe000a117, 0x14d65: 0xe000653c, + 0x14d68: 0xe0004ecd, 0x14d69: 0xe00062a0, 0x14d6b: 0xe000494a, + 0x14d6c: 0xe000586b, 0x14d6d: 0xe0005904, + 0x14d71: 0xe0007acb, + 0x14d76: 0xe0009427, + 0x14d79: 0xe0007993, 0x14d7b: 0xe0007aef, + 0x14d7c: 0xe00076a7, 0x14d7d: 0xe000a4fd, 0x14d7e: 0xe0007a0b, + // Block 0x536, offset 0x14d80 + 0x14d83: 0xe00045d5, + 0x14d87: 0xe00076e7, + 0x14d88: 0xe0008200, 0x14d8a: 0xe000a634, 0x14d8b: 0xe0004655, + 0x14d8c: 0xe00057e3, 0x14d8d: 0xe00055ae, + 0x14d93: 0xe000448b, + 0x14d94: 0xe000a11b, 0x14d95: 0xe0004e57, 0x14d96: 0xe0009cc6, + 0x14d9a: 0xe0004efa, + 0x14d9c: 0xe0004a91, 0x14d9e: 0xe000a103, + 0x14da0: 0xe0004e8e, 0x14da1: 0xe000953c, 0x14da2: 0xe00065a4, + 0x14da5: 0xe00053ba, + // Block 0x537, offset 0x14dc0 + 0x14ddc: 0xe00067fb, + 0x14de1: 0xe0009540, + 0x14de4: 0xe0009a17, + 0x14de8: 0xe00077dc, 0x14dea: 0xe0009d44, + 0x14dee: 0xe0007e19, 0x14def: 0xe00090dc, + 0x14df2: 0xe0006450, + 0x14dfb: 0xe0008d6a, + 0x14dff: 0xe00075cf, + // Block 0x538, offset 0x14e00 + 0x14e00: 0xe0009acc, 0x14e02: 0xe0009f76, + 0x14e04: 0xe00067fe, + 0x14e0b: 0xe0005c0f, + 0x14e0c: 0xe0005f50, 0x14e0d: 0xe00043f4, + 0x14e10: 0xe000a08b, + 0x14e18: 0xe000a3e1, 0x14e1b: 0xe0009e53, + 0x14e1c: 0xe000a11f, 0x14e1d: 0xe0006f80, 0x14e1e: 0xe00073e2, 0x14e1f: 0xe00094d0, + 0x14e21: 0xe00056e5, 0x14e22: 0xe0008142, 0x14e23: 0xe000917d, + 0x14e24: 0xe0008ca7, + 0x14e2a: 0xe00064c2, + 0x14e2c: 0xe0009895, + 0x14e30: 0xe00083ba, 0x14e32: 0xe000727c, 0x14e33: 0xe0009181, + 0x14e34: 0xe0006a32, 0x14e35: 0xe0005cdc, 0x14e36: 0xe000557e, 0x14e37: 0xe000a0eb, + 0x14e38: 0xe0005c68, + 0x14e3c: 0xe00088e6, 0x14e3d: 0xe00078b1, + // Block 0x539, offset 0x14e40 + 0x14e44: 0xe0008cdd, 0x14e45: 0xe000801d, 0x14e46: 0xe0005ca0, + 0x14e4a: 0xe00054e8, 0x14e4b: 0xe000722b, + 0x14e4d: 0xe000a694, 0x14e4e: 0xe00047db, + 0x14e51: 0xe0005168, + 0x14e54: 0xe00045c9, 0x14e55: 0xe00080ae, 0x14e57: 0xe0007e9b, + 0x14e58: 0xe0007772, 0x14e59: 0xe0004f3f, 0x14e5b: 0xe0008caa, + 0x14e5c: 0xe00087aa, + 0x14e63: 0xe0005d75, + 0x14e64: 0xe0009c98, 0x14e67: 0xe000722e, + 0x14e68: 0xe0007231, 0x14e69: 0xe0007cf1, 0x14e6a: 0xe000a265, + 0x14e70: 0xe00073ba, 0x14e71: 0xe000836e, 0x14e73: 0xe000a866, + 0x14e74: 0xe0005b5a, 0x14e76: 0xe00084bf, 0x14e77: 0xe0005a88, + 0x14e78: 0xe0005a8b, 0x14e79: 0xe0009898, 0x14e7b: 0xe00094d4, + 0x14e7c: 0xe0008fc9, + // Block 0x53a, offset 0x14e80 + 0x14e80: 0xe000869a, 0x14e81: 0xe000767b, + 0x14e84: 0xe00080e2, 0x14e85: 0xe00075d2, 0x14e86: 0xe000921d, 0x14e87: 0xe000486b, + 0x14e89: 0xe00099e7, 0x14e8b: 0xe0008f95, + 0x14e8c: 0xe000861d, 0x14e8d: 0xe0007d7a, 0x14e8e: 0xe00088ad, + 0x14e95: 0xe0008d6d, 0x14e96: 0xe0007234, + 0x14e99: 0xe00075a1, 0x14e9a: 0xe0004ac5, 0x14e9b: 0xe0009859, + 0x14e9c: 0xe0008706, 0x14e9d: 0xe0007d9e, 0x14e9e: 0xe00047ff, + 0x14ea2: 0xe0005d2d, 0x14ea3: 0xe00051c8, + 0x14ea8: 0xe0008020, 0x14ea9: 0xe0008023, 0x14eaa: 0xe0006f3c, + 0x14eaf: 0xe00061c1, + 0x14eb0: 0xe00068a4, 0x14eb2: 0xe00080b2, + 0x14eb6: 0xe0005a38, 0x14eb7: 0xe0005b77, + 0x14eb9: 0xe0006304, 0x14eba: 0xe0006100, 0x14ebb: 0xe00089f9, + // Block 0x53b, offset 0x14ec0 + 0x14ec0: 0xe0007237, + 0x14ec4: 0xe00070e4, 0x14ec5: 0xe0006c98, 0x14ec6: 0xe0008c11, 0x14ec7: 0xe0009185, + 0x14ec8: 0xe0009d8a, 0x14ec9: 0xe0005f45, + 0x14ecc: 0xe0008f40, 0x14ecd: 0xe0004a51, 0x14ece: 0xe0006c9c, 0x14ecf: 0xe0006a35, + 0x14ed1: 0xe0008aed, 0x14ed3: 0xe0007c19, + 0x14ed4: 0xe0008f43, 0x14ed6: 0xe0005dc1, + 0x14ed9: 0xe0007baf, + 0x14edc: 0xe0006d18, 0x14ede: 0xe000a011, + 0x14ee3: 0xe00080ca, + 0x14ee6: 0xe0006aa3, 0x14ee7: 0xe0006174, + 0x14eea: 0xe00083d6, + 0x14ef0: 0xe0006c04, 0x14ef2: 0xe0005ab8, + 0x14ef8: 0xe0009d8d, 0x14ef9: 0xe00065a8, + 0x14efd: 0xe0008cad, + // Block 0x53c, offset 0x14f00 + 0x14f02: 0xe000594c, + 0x14f04: 0xe0007775, 0x14f06: 0xe00096ca, + 0x14f08: 0xe0005a3c, 0x14f09: 0xe00077ae, + 0x14f0c: 0xe00066b8, + 0x14f11: 0xe000967c, + 0x14f16: 0xe0008c15, + 0x14f1a: 0xe0008c6d, 0x14f1b: 0xe0008a89, + 0x14f1c: 0xe0008c19, 0x14f1d: 0xe000958c, 0x14f1e: 0xe00069bd, + 0x14f20: 0xe00048c5, 0x14f21: 0xe0006220, 0x14f22: 0xe0005fc4, + 0x14f26: 0xe0008a8d, + 0x14f28: 0xe0007b43, 0x14f29: 0xe000a285, + 0x14f2d: 0xe0008522, + 0x14f33: 0xe0004fb3, + 0x14f34: 0xe000a574, 0x14f35: 0xe00052ee, 0x14f37: 0xe0008526, + 0x14f3a: 0xe0005eaf, + 0x14f3c: 0xe00053be, + // Block 0x53d, offset 0x14f40 + 0x14f40: 0xe00055b1, 0x14f41: 0xe0009f7f, + 0x14f44: 0xe0009ece, 0x14f45: 0xe0007753, + 0x14f4b: 0xe000a3fd, + 0x14f4d: 0xe000767f, 0x14f4f: 0xe00049b2, + 0x14f58: 0xe0009769, + 0x14f60: 0xe0004d8b, 0x14f63: 0xe00082e7, + 0x14f66: 0xe000989b, + 0x14f68: 0xe00042d8, 0x14f6b: 0xe0004d8f, + 0x14f6c: 0xe0004550, 0x14f6d: 0xe0009dd4, + 0x14f71: 0xe00055b4, + 0x14f74: 0xe0006a38, + 0x14f78: 0xe0009fd1, 0x14f79: 0xe0004a55, + // Block 0x53e, offset 0x14f80 + 0x14f81: 0xe000443c, 0x14f83: 0xe00053c2, + 0x14f86: 0xe0009544, + 0x14f8b: 0xe00081df, + 0x14f8d: 0xe0006918, + 0x14f90: 0xe0004398, 0x14f93: 0xe000a08f, + 0x14f99: 0xe0008203, + 0x14f9c: 0xe0005581, 0x14f9d: 0xe0004d67, 0x14f9e: 0xe0007d46, + 0x14fa0: 0xe0009fd5, 0x14fa1: 0xe0008206, + 0x14fad: 0xe0004d6a, 0x14fae: 0xe0004d6d, + 0x14fb1: 0xe0006f9c, 0x14fb2: 0xe0008ce0, 0x14fb3: 0xe00083be, + 0x14fb5: 0xe00080ce, 0x14fb6: 0xe00070a5, + 0x14fba: 0xe0007bdf, 0x14fbb: 0xe00080b6, + 0x14fbf: 0xe000a222, + // Block 0x53f, offset 0x14fc0 + 0x14fc0: 0xe000a48d, 0x14fc1: 0xe000a325, 0x14fc2: 0xe0008c1d, 0x14fc3: 0xe0004739, + 0x14fc5: 0xe000a177, 0x14fc6: 0xe0007335, + 0x14fc8: 0xe000723a, 0x14fca: 0xe0008082, + 0x14fcc: 0xe0007164, 0x14fcd: 0xe0004efd, 0x14fce: 0xe000516b, 0x14fcf: 0xe000a18b, + 0x14fd0: 0xe0007c1c, 0x14fd1: 0xe0007e1d, 0x14fd2: 0xe0006380, 0x14fd3: 0xe0005611, + 0x14fd6: 0xe00063a4, 0x14fd7: 0xe0009cf7, + 0x14fd8: 0xe0005a40, + 0x14fde: 0xe00076c3, + 0x14fe1: 0xe000a98c, 0x14fe3: 0xe0007539, + 0x14fe6: 0xe000a1e0, + 0x14feb: 0xe000684f, + 0x14fed: 0xe00056d0, 0x14fee: 0xe000a709, + 0x14ff0: 0xe000a361, + 0x14ff7: 0xe000770b, + 0x14ff8: 0xe000473d, 0x14ff9: 0xe0009c95, 0x14ffb: 0xe0006a7b, + 0x14fff: 0xe000865f, + // Block 0x540, offset 0x15000 + 0x15002: 0xe0005b98, + 0x15006: 0xe0004a0b, 0x15007: 0xe0009952, + 0x15008: 0xe000477d, 0x1500b: 0xe0007472, + 0x1500c: 0xe0008cb0, 0x1500d: 0xe00077cc, 0x1500e: 0xe000762b, + 0x15012: 0xe0007da2, 0x15013: 0xe0008a91, + 0x15014: 0xe0007683, + 0x15018: 0xe0008146, 0x15019: 0xe0006d38, 0x1501a: 0xe00089fd, + 0x1501e: 0xe0005c4e, + 0x15025: 0xe000a490, 0x15026: 0xe000976c, 0x15027: 0xe000486e, + 0x1502b: 0xe0008a01, + 0x1502f: 0xe000a2e5, + 0x15030: 0xe0006aa7, 0x15031: 0xe0005ae2, 0x15033: 0xe0006fc4, + 0x15034: 0xe0004ac9, + // Block 0x541, offset 0x15040 + 0x15068: 0xe0009f54, + 0x1506d: 0xe0008b1d, 0x1506f: 0xe0006c80, + 0x15071: 0xe0009c1b, 0x15072: 0xe00059d4, + 0x15076: 0xe0004d70, + 0x1507a: 0xe00078dd, + 0x1507c: 0xe000727f, 0x1507f: 0xe0006574, + // Block 0x542, offset 0x15080 + 0x15082: 0xe0005bdd, + 0x15084: 0xe0009f0f, 0x15087: 0xe0009f0c, + 0x15089: 0xe0005be0, 0x1508b: 0xe0007555, + 0x1509b: 0xe00069c0, + 0x1509c: 0xe0006518, 0x1509f: 0xe00074a9, + 0x150a1: 0xe0007130, 0x150a2: 0xe00050f9, + 0x150a6: 0xe0008a95, 0x150a7: 0xe0007134, + 0x150aa: 0xe00085ae, 0x150ab: 0xe000790c, + 0x150ad: 0xe0009a2e, 0x150ae: 0xe00083c2, 0x150af: 0xe0006384, + 0x150b1: 0xe0007138, + 0x150b4: 0xe000849b, + 0x150bb: 0xe00095d8, + 0x150bc: 0xe0006b7e, 0x150bd: 0xe0009ead, 0x150be: 0xe00074ad, + // Block 0x543, offset 0x150c0 + 0x150c3: 0xe0004c08, + 0x150c9: 0xe000a226, 0x150ca: 0xe00078b5, + 0x150cc: 0xe000849e, + 0x150d0: 0xe00092e3, 0x150d2: 0xe00052b7, 0x150d3: 0xe00075d5, + 0x150d4: 0xe0009ed1, 0x150d5: 0xe0008fcd, + 0x150d8: 0xe00079d5, 0x150da: 0xe000a76f, + 0x150de: 0xe0008a05, + 0x150e0: 0xe0006654, + 0x150e6: 0xe00087f2, 0x150e7: 0xe0008209, + 0x150e8: 0xe0004a95, 0x150ea: 0xe00051d8, + 0x150ec: 0xe000a4c3, 0x150ee: 0xe00095dc, + 0x150f0: 0xe0008a99, 0x150f1: 0xe000a7b7, 0x150f3: 0xe00054b6, + 0x150f9: 0xe00054ba, + 0x150fc: 0xe000a979, 0x150fd: 0xe0004e91, + // Block 0x544, offset 0x15100 + 0x15102: 0xe0007d4a, + 0x15105: 0xe0005e6b, + 0x15108: 0xe0007282, 0x15109: 0xe0004f8b, 0x1510b: 0xe0004e6a, + 0x1510c: 0xe00092e7, 0x1510d: 0xe0006ec8, + 0x15110: 0xe0008456, 0x15111: 0xe00050fc, 0x15112: 0xe0007eef, + 0x15114: 0xe0007d7e, 0x15115: 0xe00055b7, 0x15117: 0xe000a22a, + 0x1511c: 0xe0007b1f, 0x1511e: 0xe0009383, + // Block 0x545, offset 0x15140 + 0x15156: 0xe000723d, 0x15157: 0xe0004f00, + 0x15158: 0xe0004ba2, 0x15159: 0xe000a22e, + 0x1515d: 0xe0009fad, + 0x15163: 0xe000770f, + 0x15165: 0xe00066fd, + 0x15168: 0xe000a3cd, + 0x1516c: 0xe0005dec, 0x1516d: 0xe00078fa, 0x1516e: 0xe0009f58, + 0x15170: 0xe0008961, 0x15171: 0xe0009acf, 0x15173: 0xe00099ea, + 0x15174: 0xe0007339, + 0x15179: 0xe0008576, + // Block 0x546, offset 0x15180 + 0x15181: 0xe0006308, + 0x15184: 0xe0009c2d, + 0x15188: 0xe0004d73, 0x15189: 0xe000478d, + 0x1518f: 0xe0004509, + 0x15190: 0xe0008f04, 0x15191: 0xe0005280, 0x15192: 0xe0004cdd, + 0x15195: 0xe00041b4, + 0x15198: 0xe0009c30, 0x15199: 0xe0006801, 0x1519b: 0xe0006bb4, + 0x1519c: 0xe0009fd9, 0x1519d: 0xe0009ad2, 0x1519e: 0xe0009af0, 0x1519f: 0xe0006b81, + 0x151a2: 0xe00065f4, + 0x151a8: 0xe0007355, 0x151aa: 0xe000753d, + 0x151ad: 0xe000a1bf, 0x151ae: 0xe000631c, + 0x151b1: 0xe000579f, + 0x151b8: 0xe0009a92, 0x151bb: 0xe000a0ab, + 0x151bd: 0xe000a315, 0x151bf: 0xe0008f99, + // Block 0x547, offset 0x151c0 + 0x151c1: 0xe0006abf, 0x151c2: 0xe0007014, 0x151c3: 0xe00077b1, + 0x151c4: 0xe0005b22, 0x151c5: 0xe000989e, + 0x151c8: 0xe0006658, 0x151cb: 0xe000587e, + 0x151cd: 0xe0004a32, 0x151ce: 0xe00050ff, 0x151cf: 0xe0005102, + 0x151d1: 0xe0006a3b, + 0x151d6: 0xe0006186, + 0x151d8: 0xe00097f0, 0x151d9: 0xe0009dd8, 0x151db: 0xe0006a3e, + 0x151eb: 0xe0004538, + 0x151ed: 0xe0009005, + 0x151f0: 0xe0005730, + 0x151f5: 0xe000817a, 0x151f6: 0xe000985c, 0x151f7: 0xe00070a8, + 0x151f8: 0xe0006f04, + 0x151fe: 0xe0005781, + // Block 0x548, offset 0x15200 + 0x15200: 0xe0005f54, 0x15201: 0xe0007cf4, 0x15202: 0xe0009387, 0x15203: 0xe0009f12, + 0x15204: 0xe00097f4, 0x15205: 0xe0004ce0, + 0x1520a: 0xe000a586, + 0x1520c: 0xe00072c9, 0x1520d: 0xe000a757, 0x1520e: 0xe0005dad, 0x1520f: 0xe00086de, + 0x15212: 0xe0009b90, + 0x15215: 0xe0004c0b, 0x15217: 0xe000a269, + 0x15218: 0xe0005784, 0x1521a: 0xe0004741, 0x1521b: 0xe00079fb, + 0x1521f: 0xe0009979, + 0x15222: 0xe0005907, + 0x15224: 0xe00078e1, 0x15225: 0xe0005105, + 0x15229: 0xe000a5ec, 0x1522a: 0xe000590a, + // Block 0x549, offset 0x15240 + 0x15268: 0xe0004962, 0x1526a: 0xe000820c, + 0x15270: 0xe0009cb3, + 0x15278: 0xe000a1c2, 0x15279: 0xe0004c41, + 0x1527c: 0xe00045d9, 0x1527f: 0xe00065f8, + // Block 0x54a, offset 0x15280 + 0x15280: 0xe0006a41, + 0x15286: 0xe0006320, + 0x1528f: 0xe0005c24, + 0x15291: 0xe00097a4, 0x15293: 0xe0007240, + 0x15294: 0xe00096ac, 0x15296: 0xe0004acd, 0x15297: 0xe0005ae5, + 0x15298: 0xe0004871, + 0x1529f: 0xe0009f36, + 0x152a1: 0xe000494e, 0x152a3: 0xe0006484, + 0x152a5: 0xe0007af3, 0x152a6: 0xe00060a5, + 0x152ab: 0xe000976f, + 0x152ad: 0xe0008662, 0x152ae: 0xe00063cc, + 0x152b0: 0xe00096cd, 0x152b2: 0xe0009f82, + 0x152b4: 0xe000691c, + 0x152b9: 0xe000a869, 0x152ba: 0xe0004af5, 0x152bb: 0xe0004802, + 0x152bd: 0xe0008e89, + // Block 0x54b, offset 0x152c0 + 0x152c2: 0xe0006aab, + 0x152c5: 0xe0006944, 0x152c6: 0xe0007170, + 0x152ca: 0xe0007359, 0x152cb: 0xe0008a9d, + 0x152cd: 0xe000a4c6, + 0x152d0: 0xe000516e, 0x152d2: 0xe00091a9, + 0x152d6: 0xe0006c70, + 0x152d8: 0xe0005e93, 0x152d9: 0xe00073ea, 0x152da: 0xe0007243, + 0x152df: 0xe000a620, + 0x152e2: 0xe0006aaf, 0x152e3: 0xe0005a00, + 0x152e7: 0xe0005bbc, + 0x152e8: 0xe000a549, 0x152e9: 0xe000a295, 0x152ea: 0xe0009caa, + 0x152ee: 0xe0004d76, 0x152ef: 0xe000942b, + 0x152f1: 0xe00080d6, 0x152f2: 0xe00045dd, + 0x152fa: 0xe0006d3c, + 0x152fc: 0xe0004ea0, + // Block 0x54c, offset 0x15300 + 0x15301: 0xe0004b8a, 0x15302: 0xe000a4e9, 0x15303: 0xe00063d0, + 0x15304: 0xe00064f0, 0x15305: 0xe0005f2a, + 0x15308: 0xe00070e7, 0x1530b: 0xe00098a1, + 0x1530d: 0xe0005eff, 0x1530e: 0xe00058d9, 0x1530f: 0xe00081e2, + 0x15311: 0xe0005d57, + 0x15314: 0xe0005def, + 0x15318: 0xe0007b23, 0x1531a: 0xe00078fd, + 0x15326: 0xe0006bb7, + 0x1532f: 0xe0005abb, + 0x15334: 0xe0006488, + // Block 0x54d, offset 0x15340 + 0x15340: 0xe0009af3, 0x15343: 0xe0009e34, + 0x1534e: 0xe0008af1, + 0x15351: 0xe0009eb0, 0x15352: 0xe0006852, 0x15353: 0xe0008665, + 0x15357: 0xe00056b1, + 0x1535f: 0xe0007687, + 0x15367: 0xe0008ce3, + 0x15368: 0xe00090df, 0x1536a: 0xe00082ea, 0x1536b: 0xe0004c0e, + 0x1536d: 0xe000a1e3, 0x1536e: 0xe0006ecc, + 0x15379: 0xe00070ea, + // Block 0x54e, offset 0x15380 + 0x15381: 0xe0004791, + 0x15386: 0xe0009ed4, + 0x15389: 0xe0005d30, 0x1538a: 0xe0006bba, + 0x15394: 0xe0009a1a, 0x15396: 0xe0009680, + 0x1539b: 0xe0008dd0, + 0x153a2: 0xe0007c4f, + 0x153a4: 0xe0004922, + 0x153a8: 0xe0004745, + 0x153b7: 0xe0008ce6, + // Block 0x54f, offset 0x153c0 + 0x153c8: 0xe0008b45, 0x153ca: 0xe00059ac, + 0x153cc: 0xe00098a4, 0x153cd: 0xe000985f, + 0x153d0: 0xe000762f, 0x153d2: 0xe0006701, 0x153d3: 0xe0006d49, + 0x153d5: 0xe000a014, + 0x153e4: 0xe0006bbd, 0x153e5: 0xe000a5f0, + 0x153ed: 0xe0005171, 0x153ee: 0xe0007d4e, 0x153ef: 0xe0007851, + 0x153f1: 0xe00059b0, 0x153f2: 0xe0007ca9, + 0x153f5: 0xe00062a4, + 0x153f9: 0xe0004631, 0x153fa: 0xe00070ed, 0x153fb: 0xe0005e6f, + 0x153fe: 0xe0009f39, + // Block 0x550, offset 0x15400 + 0x15407: 0xe00043f8, + 0x15409: 0xe0006608, + 0x1540f: 0xe0007591, + 0x15412: 0xe0008fd1, 0x15413: 0xe0006f08, + 0x15417: 0xe0005d79, + 0x15420: 0xe000a70c, 0x15423: 0xe0008aa1, + 0x15427: 0xe0005a8e, + 0x15438: 0xe0005ae8, 0x1543b: 0xe0006f0c, + // Block 0x551, offset 0x15440 + 0x15465: 0xe0008d70, 0x15466: 0xe00083aa, 0x15467: 0xe0006804, + 0x15469: 0xe0004ce3, + 0x15473: 0xe000676d, + 0x15474: 0xe0006028, 0x15476: 0xe0007a7f, + // Block 0x552, offset 0x15480 + 0x15483: 0xe00045e1, + 0x15486: 0xe0009205, 0x15487: 0xe00066bb, + 0x15488: 0xe0007697, 0x15489: 0xe00075d8, + 0x1548c: 0xe0006785, + 0x15492: 0xe0005a74, + 0x15495: 0xe0009af6, + 0x15498: 0xe00065fc, 0x15499: 0xe0009a1d, 0x1549b: 0xe000814a, + 0x1549f: 0xe0009a20, + 0x154a3: 0xe00048c8, + 0x154a6: 0xe000773f, + 0x154a8: 0xe0007723, + 0x154b0: 0xe0004af9, + 0x154b6: 0xe00076c7, + 0x154bb: 0xe000a535, + // Block 0x553, offset 0x154c0 + 0x154c1: 0xe0004c44, 0x154c2: 0xe000a86c, + 0x154c4: 0xe0009a23, + 0x154d1: 0xe000460d, 0x154d3: 0xe00063e4, + 0x154d4: 0xe0008fd5, + 0x154dd: 0xe00075db, 0x154de: 0xe00075fc, + 0x154e0: 0xe00048e6, 0x154e1: 0xe0006177, + 0x154e9: 0xe0006725, + 0x154ec: 0xe0006938, 0x154ef: 0xe0009fdd, + 0x154f0: 0xe0008dd3, 0x154f2: 0xe000869e, + 0x154f7: 0xe000817e, + 0x154fb: 0xe00098a7, + 0x154fe: 0xe0004952, + // Block 0x554, offset 0x15500 + 0x15504: 0xe0009690, + 0x15509: 0xe000735d, + 0x15516: 0xe00098aa, + 0x1551a: 0xe000765b, + 0x15521: 0xe00042f0, + 0x15524: 0xe0004956, + 0x15529: 0xe00060c0, + 0x1552c: 0xe000942f, 0x1552f: 0xe00077e8, + 0x15534: 0xe000a03f, 0x15535: 0xe00098ad, + 0x15538: 0xe0007855, 0x15539: 0xe0005c5d, 0x1553b: 0xe0004972, + 0x1553f: 0xe0008668, + // Block 0x555, offset 0x15540 + 0x15541: 0xe00084e2, 0x15542: 0xe0007f1f, + 0x15544: 0xe00047de, 0x15547: 0xe0004d79, + 0x15553: 0xe000866b, + 0x15556: 0xe0007c52, 0x15557: 0xe0004ce6, + 0x15559: 0xe00090e2, + 0x15566: 0xe0009772, + 0x15569: 0xe0006614, 0x1556a: 0xe00077fc, 0x1556b: 0xe00072cd, + 0x15570: 0xe0007abb, 0x15571: 0xe00048cb, 0x15572: 0xe000997c, 0x15573: 0xe000a0af, + 0x15578: 0xe000a877, 0x15579: 0xe00083fe, 0x1557a: 0xe0005abe, + 0x1557d: 0xe000a057, 0x1557f: 0xe00065bc, + // Block 0x556, offset 0x15580 + 0x15587: 0xe0008aa5, + 0x1558f: 0xe0006104, + 0x15595: 0xe0005aeb, + 0x1559a: 0xe00077ec, 0x1559b: 0xe0004ad1, + 0x1559c: 0xe0004d7c, 0x1559e: 0xe00057c7, + // Block 0x557, offset 0x155c0 + 0x155f5: 0xe0005ac1, 0x155f7: 0xe0005a78, + 0x155f9: 0xe000a0ef, 0x155fb: 0xe000437c, + 0x155fd: 0xe0007af7, 0x155ff: 0xe0005b02, + // Block 0x558, offset 0x15600 + 0x15600: 0xe0008059, 0x15602: 0xe0004e94, + 0x15604: 0xe00098b0, + 0x1560b: 0xe000624d, + 0x1560c: 0xe000805c, 0x1560f: 0xe0004f1f, + 0x15611: 0xe0007c55, 0x15612: 0xe0005108, 0x15613: 0xe0005b06, + 0x15617: 0xe000590d, + 0x1561d: 0xe0006b84, 0x1561e: 0xe00087f6, 0x1561f: 0xe0005d7d, + 0x15624: 0xe00098b3, 0x15625: 0xe0005f58, + 0x15629: 0xe0006855, 0x1562a: 0xe0005fdc, + 0x1562f: 0xe0004da3, + 0x15634: 0xe0004d93, 0x15635: 0xe0005fc8, + 0x1563b: 0xe0005df2, + 0x1563d: 0xe0005e01, 0x1563e: 0xe000a848, 0x1563f: 0xe0005e04, + // Block 0x559, offset 0x15640 + 0x15643: 0xe000a698, + 0x15645: 0xe0004ffb, + 0x1564c: 0xe000a72f, 0x1564d: 0xe0006dd4, 0x1564e: 0xe0005910, 0x1564f: 0xe0008b21, + 0x15650: 0xe0005d5a, 0x15651: 0xe000a89b, + 0x15654: 0xe0004588, 0x15656: 0xe0005174, + 0x15658: 0xe000618d, 0x1565a: 0xe000468d, 0x1565b: 0xe00054eb, + 0x1565c: 0xe000990e, 0x1565d: 0xe00082ed, 0x1565e: 0xe0008af5, + 0x15660: 0xe000a990, + 0x15665: 0xe0004795, + 0x15668: 0xe0005476, + 0x1566e: 0xe0005432, 0x1566f: 0xe0007713, + 0x15672: 0xe000938b, + 0x15674: 0xe0006223, 0x15675: 0xe0005436, 0x15676: 0xe0007b27, 0x15677: 0xe00055e9, + 0x1567a: 0xe00068ec, 0x1567b: 0xe0006920, + 0x1567c: 0xe00066be, 0x1567d: 0xe00062a8, 0x1567f: 0xe0008182, + // Block 0x55a, offset 0x15680 + 0x15680: 0xe00098f6, 0x15682: 0xe0008dd6, + 0x15684: 0xe0008f46, 0x15687: 0xe0007cac, + 0x15688: 0xe000660c, 0x15689: 0xe0009af9, 0x1568a: 0xe00065c0, + 0x1568e: 0xe0008c21, + 0x15690: 0xe000522f, 0x15693: 0xe0004874, + 0x15697: 0xe00055ba, + 0x15699: 0xe0006a44, + 0x156a0: 0xe0006dd7, 0x156a2: 0xe00068f0, + 0x156ab: 0xe0006e4c, + 0x156ac: 0xe00082f0, 0x156af: 0xe0007cf7, + 0x156b4: 0xe0007953, + 0x156b8: 0xe0004691, 0x156b9: 0xe0007957, 0x156bb: 0xe00069c3, + 0x156be: 0xe000a0b3, + // Block 0x55b, offset 0x156c0 + 0x156ca: 0xe0008cb3, 0x156cb: 0xe0008827, + 0x156ce: 0xe000882a, + 0x156d2: 0xe00099ed, + 0x156d4: 0xe0009a46, 0x156d5: 0xe000a8e7, 0x156d7: 0xe00083a2, + 0x156df: 0xe00088b0, + 0x156e0: 0xe0009775, 0x156e1: 0xe0005a44, + 0x156e6: 0xe00042b0, 0x156e7: 0xe0006f40, + 0x156e9: 0xe0004c47, 0x156ea: 0xe000929f, 0x156eb: 0xe000495a, + 0x156ec: 0xe0007900, + 0x156f2: 0xe000805f, + 0x156f6: 0xe000765f, 0x156f7: 0xe0007633, + // Block 0x55c, offset 0x15700 + 0x1570d: 0xe0005be3, 0x1570e: 0xe0005b5e, + 0x15710: 0xe0006454, 0x15712: 0xe0005be7, + 0x15714: 0xe00049e2, 0x15715: 0xe0004340, + 0x1571c: 0xe0004ce9, 0x1571d: 0xe0009880, + 0x15720: 0xe0007859, 0x15722: 0xe000a589, + 0x15725: 0xe00082f3, + // Block 0x55d, offset 0x15740 + 0x15740: 0xe00050ed, 0x15741: 0xe00046dd, 0x15742: 0xe0009269, 0x15743: 0xe00041a8, + 0x15744: 0xe000a628, 0x15745: 0xe00049e6, 0x15746: 0xe0004c65, 0x15747: 0xe0004ce9, + 0x15748: 0xe0004ce9, 0x15749: 0xe00047a2, 0x1574a: 0xe0005193, 0x1574b: 0xe0005754, + 0x1574c: 0xe000521a, 0x1574d: 0xe0005757, 0x1574e: 0xe000575a, 0x1574f: 0xe000575d, + 0x15750: 0xe0005760, 0x15751: 0xe0005763, 0x15752: 0xe0005766, 0x15753: 0xe0005769, + 0x15754: 0xe000761b, 0x15755: 0xe0005787, 0x15756: 0xe000578b, 0x15757: 0xe000578f, + 0x15758: 0xe0005797, 0x15759: 0xe000579b, 0x1575a: 0xe000579f, 0x1575b: 0xe00057ab, + 0x1575c: 0xe00057af, 0x1575d: 0xe00057b3, 0x1575e: 0xe00057bf, 0x1575f: 0xe00057c3, + 0x15760: 0xe00057c7, 0x15761: 0xe00057f7, 0x15762: 0xe0005807, 0x15763: 0xe0005813, + 0x15764: 0xe0005817, 0x15765: 0xe0005827, 0x15766: 0xe000582b, 0x15767: 0xe000582f, + 0x15768: 0xe0005837, 0x15769: 0xe000583b, 0x1576a: 0xe000583f, 0x1576b: 0xe0005843, + 0x1576c: 0x43219c20, 0x1576d: 0xe000586f, 0x1576e: 0xe0005881, 0x1576f: 0xe0005a91, + 0x15770: 0xe0005a97, 0x15771: 0xe0005a9a, 0x15772: 0xe0005aa3, 0x15773: 0xe0005aa6, + 0x15774: 0xe0005aa9, 0x15775: 0xe0005aac, 0x15776: 0xe0005aaf, 0x15777: 0xe0005ab2, + 0x15778: 0xe0005ab8, 0x15779: 0xe0005abb, 0x1577a: 0xe0005abe, 0x1577b: 0xe0005aee, + 0x1577c: 0xe0005af2, 0x1577d: 0xe0005af6, 0x1577e: 0xe0005afa, 0x1577f: 0xe0005afe, + // Block 0x55e, offset 0x15780 + 0x15780: 0xe0005b02, 0x15781: 0xe0005b26, 0x15782: 0xe0005b2a, 0x15783: 0xe0005b2e, + 0x15784: 0xe0005b3e, 0x15785: 0xe0005b42, 0x15786: 0xe0005b68, 0x15787: 0xe0005b6b, + 0x15788: 0xe0005b6e, 0x15789: 0xe0005b77, 0x1578a: 0xe0005beb, 0x1578b: 0xe0005bf1, + 0x1578c: 0xe0005bf4, 0x1578d: 0xe0005bf7, 0x1578e: 0xe0005bfa, 0x1578f: 0xe0005c00, + 0x15790: 0xe0005c03, 0x15791: 0xe0005c0f, 0x15792: 0xe0005cac, 0x15793: 0xe0005cb0, + 0x15794: 0xe0005cb8, 0x15795: 0xe0005cc8, 0x15796: 0xe0005cd0, 0x15797: 0xe0005cd4, + 0x15798: 0xe0005cd8, 0x15799: 0xe0005cdc, 0x1579a: 0xe00055e1, 0x1579b: 0xe00051a4, + 0x1579c: 0xe000761b, 0x1579d: 0xe00051bc, 0x1579e: 0xe000532a, 0x1579f: 0xe0005259, + 0x157a0: 0xe000527a, 0x157a1: 0xe000713c, 0x157a2: 0xe000847a, 0x157a3: 0xe0006858, + 0x157a4: 0xe0006368, 0x157a5: 0xe0009db4, 0x157a6: 0xe00066d5, 0x157a7: 0xe0006789, + 0x157a8: 0xe0009f95, 0x157a9: 0xe00071c2, 0x157aa: 0xe0006d54, 0x157ab: 0xe000932b, + 0x157ac: 0xe0006d40, 0x157ad: 0xe0006ff4, 0x157ae: 0xe0007b33, 0x157af: 0xe0006f38, + 0x157b0: 0xe0006c40, 0x157b1: 0xe0009171, 0x157b2: 0xe0009a62, 0x157b3: 0xe00073a2, + 0x157b4: 0xe0007829, 0x157b5: 0xe0005885, 0x157b6: 0xe0005889, 0x157b7: 0xe0005891, + 0x157b8: 0xe0005899, 0x157b9: 0xe000589d, 0x157ba: 0xe00058a1, 0x157bb: 0xe00058b1, + 0x157bc: 0xe00058b5, 0x157bd: 0xe00058b9, 0x157be: 0xe00058c1, 0x157bf: 0xe00058e3, + // Block 0x55f, offset 0x157c0 + 0x157c0: 0xe00058e6, 0x157c1: 0xe0005232, 0x157c2: 0xe00058e9, 0x157c3: 0xe00058f2, + 0x157c4: 0xe00058f8, 0x157c5: 0xe00058fb, 0x157c6: 0xe0005904, 0x157c7: 0xe000590a, + 0x157c8: 0xe000590d, 0x157c9: 0xe0005910, 0x157ca: 0xe0005934, 0x157cb: 0xe0005938, + 0x157cc: 0xe000593c, 0x157cd: 0xe0005948, 0x157ce: 0xe0005239, 0x157cf: 0xe0005968, + 0x157d0: 0xe000596c, 0x157d1: 0xe000523d, 0x157d2: 0xe0005974, 0x157d3: 0xe0005978, + 0x157d4: 0xe000597c, 0x157d5: 0xe0005241, 0x157d6: 0xe0005980, 0x157d7: 0xe0005984, + 0x157d8: 0xe000598c, 0x157d9: 0xe0005988, 0x157da: 0xe0005990, 0x157db: 0xe0005994, + 0x157dc: 0xe00059b8, 0x157dd: 0xe00059bc, 0x157de: 0xe00084f6, 0x157df: 0xe00059c4, + 0x157e0: 0xe00059c8, 0x157e1: 0xe0006f38, 0x157e2: 0xe00059d8, 0x157e3: 0xe0005249, + 0x157e4: 0xe0005255, 0x157e5: 0xe00059e0, 0x157e6: 0xe00059e8, 0x157e7: 0xe00059f8, + 0x157e8: 0xe0005a04, 0x157e9: 0xe0005a0c, 0x157ea: 0xe0005259, 0x157eb: 0xe0005a14, + 0x157ec: 0xe0005a18, 0x157ed: 0xe0005a1c, 0x157ee: 0xe000a3b1, 0x157ef: 0xe0005a24, + 0x157f0: 0xe0005a2c, 0x157f1: 0xe0005a34, 0x157f2: 0xe0005a38, 0x157f3: 0xe0005a3c, + 0x157f4: 0xe0005a40, 0x157f5: 0xe0005a7c, 0x157f6: 0xe0005a82, 0x157f7: 0xe0005a85, + 0x157f8: 0xe0005a8b, 0x157f9: 0xe000760f, 0x157fa: 0xe0005b9b, 0x157fb: 0xe0005b9e, + 0x157fc: 0xe0005ba1, 0x157fd: 0xe00052ba, 0x157fe: 0xe0005ba7, 0x157ff: 0xe000761b, + // Block 0x560, offset 0x15800 + 0x15800: 0xe0005baa, 0x15801: 0xe0005bad, 0x15802: 0xe0005bb6, 0x15803: 0xe0005bb9, + 0x15804: 0xe0005be3, 0x15805: 0xe000a7de, 0x15806: 0xe0007e19, 0x15807: 0xe0005c27, + 0x15808: 0xe00052e5, 0x15809: 0xe0005c2d, 0x1580a: 0xe0005c33, 0x1580b: 0xe0005c36, + 0x1580c: 0xe0005c3c, 0x1580d: 0xe0005c42, 0x1580e: 0xe0005c48, 0x1580f: 0xe00052e8, + 0x15810: 0xe0005c4e, 0x15811: 0xe0005c60, 0x15812: 0xe0005c64, 0x15813: 0xe0005c68, + 0x15814: 0xe0005c74, 0x15815: 0xe0005c78, 0x15816: 0xe0005c7c, 0x15817: 0xe0005c84, + 0x15818: 0xe0005c8c, 0x15819: 0xe0005c90, 0x1581a: 0xe0005c94, 0x1581b: 0xe000713c, + 0x1581c: 0xe0005ca0, 0x1581d: 0xe0005ceb, 0x1581e: 0xe0005cf1, 0x1581f: 0xe0005cf7, + 0x15820: 0xe00079e7, 0x15821: 0xe0005cfd, 0x15822: 0xe0005d00, 0x15823: 0xe00052fc, + 0x15824: 0xe0005d0c, 0x15825: 0xe0005d12, 0x15826: 0xe0005d18, 0x15827: 0xe0005d21, + 0x15828: 0xe0005d24, 0x15829: 0xe0005d27, 0x1582a: 0xe0005d2d, 0x1582b: 0xe0005311, + 0x1582c: 0xe0005315, 0x1582d: 0xe0005d5d, 0x1582e: 0xe0005d65, 0x1582f: 0xe0005d69, + 0x15830: 0xe0005d6d, 0x15831: 0xe0005d75, 0x15832: 0xe0005d79, 0x15833: 0xe0005d7d, + 0x15834: 0xe0005db1, 0x15835: 0xe0005db5, 0x15836: 0xe0005dbd, 0x15837: 0xe0005dcd, + 0x15838: 0xe0005dd1, 0x15839: 0xe0005dd5, 0x1583a: 0xe0006cf0, 0x1583b: 0xe00085f3, + 0x1583c: 0xe00074a1, 0x1583d: 0xe0007595, 0x1583e: 0xe0005324, 0x1583f: 0xe00085d5, + // Block 0x561, offset 0x15840 + 0x15840: 0xe0008aa9, 0x15841: 0xe000552a, 0x15842: 0xe00094b4, 0x15843: 0xe000546e, + 0x15844: 0xe0005500, 0x15845: 0xe0005655, 0x15846: 0xe0009edb, 0x15847: 0xe00066f9, + 0x15848: 0xe000a206, 0x15849: 0xe00043f4, 0x1584a: 0xe0004601, 0x1584b: 0xe0004a35, + 0x1584c: 0xe0007d52, 0x1584d: 0x42ab8020, 0x1584e: 0x43f41c20, 0x1584f: 0x43f41e20, + 0x15850: 0xe00097c0, 0x15851: 0x43f42220, 0x15852: 0xe0009668, 0x15853: 0x43f42620, + 0x15854: 0x43f42820, 0x15855: 0xe000a922, 0x15856: 0xe0008886, 0x15857: 0xe00084c6, + 0x15858: 0x42f27820, 0x15859: 0xe00074e9, 0x1585a: 0xe0006cf8, 0x1585b: 0xe00066dd, + 0x1585c: 0xe0008c15, 0x1585d: 0xe0008be1, 0x1585e: 0xe0008005, 0x1585f: 0x43f43e20, + 0x15860: 0x430c2420, 0x15861: 0x43f44220, 0x15862: 0xe0008c9e, 0x15863: 0x43f44620, + 0x15864: 0x43f44820, 0x15865: 0xe000856e, 0x15866: 0xe0005578, 0x15867: 0x43f44e20, + 0x15868: 0x43f45020, 0x15869: 0x43f45220, 0x1586a: 0xe0006384, 0x1586b: 0xe0006b7e, + 0x1586c: 0xe0004a95, 0x1586d: 0xe000a03f, 0x1586e: 0xe0005853, 0x1586f: 0xe0005a88, + 0x15870: 0xe0006033, 0x15871: 0xe00073c6, 0x15872: 0xe0005fa0, 0x15873: 0xe0005fa8, + 0x15874: 0xe0004f5b, 0x15875: 0xe0006954, 0x15876: 0xe00042b8, 0x15877: 0xe0009b5c, + 0x15878: 0xe000505a, 0x15879: 0xe0006660, 0x1587a: 0xe0006189, 0x1587b: 0xe00099a4, + 0x1587c: 0x42b8dc20, 0x1587d: 0xe000a6c7, 0x1587e: 0xe0004455, 0x1587f: 0xe0009021, + // Block 0x562, offset 0x15880 + 0x15880: 0xe000922d, 0x15881: 0xe0006260, 0x15882: 0x42cbc420, 0x15883: 0xe0006d9e, + 0x15884: 0xe0005f15, 0x15885: 0xe000a1aa, 0x15886: 0xe0008880, 0x15887: 0xe000a06f, + 0x15888: 0xe00085f6, 0x15889: 0x42e45620, 0x1588a: 0xe0009b24, 0x1588b: 0xe000698d, + 0x1588c: 0xe0006b42, 0x1588d: 0xe0009091, 0x1588e: 0xe00050cc, 0x1588f: 0xe0007ff9, + 0x15890: 0xe0008d31, 0x15891: 0xe00098be, 0x15892: 0xe000a55f, 0x15893: 0xe0008bd5, + 0x15894: 0xe00048de, 0x15895: 0xe0005625, 0x15896: 0xe0008ac1, 0x15897: 0xe0005980, + 0x15898: 0xe0009151, 0x15899: 0xe000650c, 0x1589a: 0xe0006dbc, 0x1589b: 0xe0008608, + 0x1589c: 0xe0009970, 0x1589d: 0x4304f220, 0x1589e: 0x4304f220, 0x1589f: 0xe0008898, + 0x158a0: 0xe00042d0, 0x158a1: 0xe0007430, 0x158a2: 0xe000769f, 0x158a3: 0xe0004f83, + 0x158a4: 0xe0006a77, 0x158a5: 0xe0009045, 0x158a6: 0x431f6c20, 0x158a7: 0xe000856e, + 0x158a8: 0xe00051c8, 0x158a9: 0xe000a222, 0x158aa: 0xe0006a7b, 0x158ab: 0x42c0ea20, + 0x158ac: 0x4885dc20, 0x158ad: 0x43043020, + 0x158b0: 0xe000665c, 0x158b1: 0x42a36a20, 0x158b2: 0xe0008971, 0x158b3: 0x429f0020, + 0x158b4: 0xe0009916, 0x158b5: 0xe0005054, 0x158b6: 0xe0007f4e, 0x158b7: 0xe0008672, + 0x158b8: 0xe00042b8, 0x158b9: 0x42aaaa20, 0x158ba: 0xe000a821, 0x158bb: 0xe0007d56, + 0x158bc: 0xe00097c0, 0x158bd: 0xe0006868, 0x158be: 0xe0007973, 0x158bf: 0xe000686c, + // Block 0x563, offset 0x158c0 + 0x158c0: 0xe000695a, 0x158c1: 0xe0008623, 0x158c2: 0x42bda420, 0x158c3: 0x42bdb220, + 0x158c4: 0xe000943f, 0x158c5: 0xe0007f04, 0x158c6: 0xe0005eeb, 0x158c7: 0x42c29c20, + 0x158c8: 0xe0008236, 0x158c9: 0xe0009021, 0x158ca: 0xe0007cca, 0x158cb: 0xe000922d, + 0x158cc: 0xe00054d6, 0x158cd: 0xe000823c, 0x158ce: 0xe00071bc, 0x158cf: 0x42c8a420, + 0x158d0: 0xe0007c85, 0x158d1: 0xe0009668, 0x158d2: 0xe000583b, 0x158d3: 0xe0005ecb, + 0x158d4: 0xe0008752, 0x158d5: 0x42d6f220, 0x158d6: 0xe0006c40, 0x158d7: 0xe0005c33, + 0x158d8: 0x42ddb620, 0x158d9: 0xe00085f0, 0x158da: 0xe000a06f, 0x158db: 0xe0008bb9, + 0x158dc: 0xe00085f6, 0x158dd: 0x42ef4e20, 0x158de: 0xe000868a, 0x158df: 0xe0006560, + 0x158e0: 0xe0008886, 0x158e1: 0xe0008a3d, 0x158e2: 0x42ea0c20, 0x158e3: 0x42ea7620, + 0x158e4: 0x42ec3a20, 0x158e5: 0xe0007d16, 0x158e6: 0xe00084c6, 0x158e7: 0xe0006ff0, + 0x158e8: 0xe00090e5, 0x158e9: 0x42ee9420, 0x158ea: 0xe000928f, 0x158eb: 0x42f19820, + 0x158ec: 0x42f56220, 0x158ed: 0xe0008ac1, 0x158ee: 0x42f8f620, 0x158ef: 0xe0008daf, + 0x158f0: 0xe0005980, 0x158f1: 0xe0006668, 0x158f2: 0xe0008608, 0x158f3: 0xe000a688, + 0x158f4: 0xe000a568, 0x158f5: 0x430ef220, 0x158f6: 0xe00043e8, 0x158f7: 0xe00066f1, + 0x158f8: 0xe0007430, 0x158f9: 0xe0008d58, 0x158fa: 0xe0008c9e, 0x158fb: 0xe0009678, + 0x158fc: 0xe000769f, 0x158fd: 0xe00051bc, 0x158fe: 0xe000827e, 0x158ff: 0xe0004f83, + // Block 0x564, offset 0x15900 + 0x15900: 0xe00065cc, 0x15901: 0xe0009045, 0x15902: 0xe0007219, 0x15903: 0xe00090b5, + 0x15904: 0x43233220, 0x15905: 0x4324ec20, 0x15906: 0xe00088e6, 0x15907: 0xe00051c8, + 0x15908: 0xe0008c15, 0x15909: 0x432fb620, 0x1590a: 0xe000a222, 0x1590b: 0x43301620, + 0x1590c: 0xe0006a7b, 0x1590d: 0xe00091a9, 0x1590e: 0xe0004ce9, 0x1590f: 0x48509420, + 0x15910: 0x48508820, 0x15911: 0x4867aa20, 0x15912: 0x44773a20, 0x15913: 0x44803020, + 0x15914: 0x44807220, 0x15915: 0x48a49220, 0x15916: 0x48b9a020, 0x15917: 0x48fda620, + 0x15918: 0x433e8620, 0x15919: 0xe0005b5e, + // Block 0x565, offset 0x15940 + 0x15940: 0xe0003d0b, 0x15941: 0xe0003cf3, 0x15942: 0xe0003cf7, 0x15943: 0xe0003cff, + 0x15944: 0xe0003d0f, 0x15945: 0xe0003d03, 0x15946: 0xf0000404, 0x15947: 0xe0003cfb, + 0x15948: 0xe0003d07, + 0x15950: 0x02bf2e86, 0x15951: 0x02a7de86, + // Block 0x566, offset 0x15980 + 0x15980: 0x429c7a20, 0x15981: 0xe000a5b0, 0x15982: 0x429c8220, 0x15983: 0x48024420, + 0x15984: 0x429ec020, 0x15985: 0xe0006033, 0x15986: 0xe0009b9c, 0x15987: 0xe000661c, + 0x15988: 0x42a0f420, 0x15989: 0xe000694b, 0x1598a: 0xe00073c6, 0x1598b: 0xe0006ca8, + 0x1598c: 0x44693c20, 0x1598d: 0x480c7420, 0x1598e: 0xe0005fa0, 0x1598f: 0x42a2a820, + 0x15990: 0x42a2c820, 0x15991: 0xe0004c59, 0x15992: 0x480a3820, 0x15993: 0x44697220, + 0x15994: 0xe0005217, 0x15995: 0xe00087fa, 0x15996: 0x480a9620, 0x15997: 0xe0007f4a, + 0x15998: 0xe000814e, 0x15999: 0x429d9820, 0x1599a: 0xe0005635, 0x1599b: 0x42a36a20, + 0x1599c: 0x4923be20, 0x1599d: 0x42a3ea20, 0x1599e: 0xe00084ee, 0x1599f: 0x4469be20, + 0x159a0: 0xe00041e4, 0x159a1: 0x42a48c20, 0x159a2: 0xe000a0b7, 0x159a3: 0xe0006c08, + 0x159a4: 0x446a2a20, 0x159a5: 0xe0007f4e, 0x159a6: 0xe0005fa8, 0x159a7: 0xe0004f5b, + 0x159a8: 0xe0008672, 0x159a9: 0xe0009e65, 0x159aa: 0x42a60c20, 0x159ab: 0xe0006858, + 0x159ac: 0xe000a81e, 0x159ad: 0xe0006954, 0x159ae: 0xe00062c4, 0x159af: 0xe0008ff9, + 0x159b0: 0xe0008ff5, 0x159b1: 0xe00046b1, 0x159b2: 0xe00046b1, 0x159b3: 0xe00046b1, + 0x159b4: 0x48145820, 0x159b5: 0xe000a6dc, 0x159b6: 0xe0005003, 0x159b7: 0xe0007246, + 0x159b8: 0x4816c620, 0x159b9: 0xe0004ea3, 0x159ba: 0xe00091b1, 0x159bb: 0x42a80c20, + 0x159bc: 0x42a93c20, 0x159bd: 0xe000a8fb, 0x159be: 0xe0008b5d, 0x159bf: 0xe0008ea4, + // Block 0x567, offset 0x159c0 + 0x159c0: 0xe000763f, 0x159c1: 0x42a9ec20, 0x159c2: 0xe000544e, 0x159c3: 0xe000479c, + 0x159c4: 0xe000a0cf, 0x159c5: 0xe0006e5c, 0x159c6: 0xe0006e5c, 0x159c7: 0xe000a821, + 0x159c8: 0xe0005197, 0x159c9: 0x42ab6620, 0x159ca: 0x42ab8420, 0x159cb: 0xe0005515, + 0x159cc: 0xe0009b5c, 0x159cd: 0x42ae2e20, 0x159ce: 0x42aca220, 0x159cf: 0xe0006864, + 0x159d0: 0xe0008aa9, 0x159d1: 0x42b1dc20, 0x159d2: 0xe0006fc8, 0x159d3: 0xe0007475, + 0x159d4: 0x42b01a20, 0x159d5: 0xe000a38d, 0x159d6: 0x42b06420, 0x159d7: 0xe0006682, + 0x159d8: 0x42b15820, 0x159d9: 0x4829c820, 0x159da: 0x42b1e420, 0x159db: 0x42b1ee20, + 0x159dc: 0xe0006775, 0x159dd: 0xe0005321, 0x159de: 0xe00060d4, 0x159df: 0xe0006b00, + 0x159e0: 0x482d5020, 0x159e1: 0x482dd420, 0x159e2: 0xe000a92e, 0x159e3: 0xe0007c79, + 0x159e4: 0xe0009c21, 0x159e5: 0x42b3b020, 0x159e6: 0xe00067a7, 0x159e7: 0x446ddc20, + 0x159e8: 0x446df820, 0x159e9: 0xe0007efe, 0x159ea: 0xe00057cb, 0x159eb: 0xe00057cb, + 0x159ec: 0x48339020, 0x159ed: 0xe0008106, 0x159ee: 0xe00099f6, 0x159ef: 0xe0005259, + 0x159f0: 0x42b7e620, 0x159f1: 0x48363020, 0x159f2: 0x42b7fe20, 0x159f3: 0x42b80c20, + 0x159f4: 0x42bea620, 0x159f5: 0x42b84420, 0x159f6: 0x446f0220, 0x159f7: 0xe0005521, + 0x159f8: 0x42b8dc20, 0x159f9: 0xe00071aa, 0x159fa: 0x42b91a20, 0x159fb: 0x483bc820, + 0x159fc: 0x42ba8620, 0x159fd: 0x483bcc20, 0x159fe: 0x42badc20, 0x159ff: 0x42bad620, + // Block 0x568, offset 0x15a00 + 0x15a00: 0x42baf820, 0x15a01: 0xe00072d1, 0x15a02: 0xe000704e, 0x15a03: 0x44705e20, + 0x15a04: 0xe0007120, 0x15a05: 0xe0007030, 0x15a06: 0xe000603f, 0x15a07: 0x42bcd220, + 0x15a08: 0x4470c420, 0x15a09: 0x48430620, 0x15a0a: 0x4470f820, 0x15a0b: 0x42bd6020, + 0x15a0c: 0xe00069db, 0x15a0d: 0xe0006d8c, 0x15a0e: 0xe0005837, 0x15a0f: 0x49472420, + 0x15a10: 0x42bdfc20, 0x15a11: 0x48466220, 0x15a12: 0x48466220, 0x15a13: 0xe00079d8, + 0x15a14: 0xe000558a, 0x15a15: 0xe000558a, 0x15a16: 0x44718e20, 0x15a17: 0x48657020, + 0x15a18: 0x48c3b420, 0x15a19: 0xe000a391, 0x15a1a: 0xe0008cfb, 0x15a1b: 0x4471c620, + 0x15a1c: 0x42bf3420, 0x15a1d: 0xe000850a, 0x15a1e: 0xe0009064, 0x15a1f: 0x42bff220, + 0x15a20: 0xe0007a93, 0x15a21: 0x44727420, 0x15a22: 0x44723820, 0x15a23: 0xe000a6c7, + 0x15a24: 0x484da820, 0x15a25: 0xe00055f1, 0x15a26: 0xe00085ed, 0x15a27: 0xe000a654, + 0x15a28: 0x42c29c20, 0x15a29: 0xe000a654, 0x15a2a: 0xe0005c1b, 0x15a2b: 0xe0009021, + 0x15a2c: 0xe000a245, 0x15a2d: 0xe0006878, 0x15a2e: 0xe0009363, 0x15a2f: 0xe00060e4, + 0x15a30: 0xe000922d, 0x15a31: 0xe0005757, 0x15a32: 0xe0006fdc, 0x15a33: 0x42c43620, + 0x15a34: 0x42c4ba20, 0x15a35: 0xe0009e80, 0x15a36: 0xe00063ac, 0x15a37: 0xe0007a27, + 0x15a38: 0x48561820, 0x15a39: 0xe0005e3f, 0x15a3a: 0x42c5f820, 0x15a3b: 0xe0006b1b, + 0x15a3c: 0xe0007054, 0x15a3d: 0x42c7c820, 0x15a3e: 0x4857e220, 0x15a3f: 0xe000910d, + // Block 0x569, offset 0x15a40 + 0x15a40: 0x42c78a20, 0x15a41: 0xe0007977, 0x15a42: 0x44745c20, 0x15a43: 0xe0005ddd, + 0x15a44: 0x42c8fc20, 0x15a45: 0xe000a84b, 0x15a46: 0x42c8ee20, 0x15a47: 0x4474d820, + 0x15a48: 0xe0006260, 0x15a49: 0xe00046d1, 0x15a4a: 0x48601420, 0x15a4b: 0xe0005087, + 0x15a4c: 0xe0006da4, 0x15a4d: 0xe0009111, 0x15a4e: 0x44763220, 0x15a4f: 0xe0006d9e, + 0x15a50: 0x44761020, 0x15a51: 0x4475c820, 0x15a52: 0xe0006036, 0x15a53: 0xe0005fa4, + 0x15a54: 0xe0009802, 0x15a55: 0x42cd3820, 0x15a56: 0xe00052e1, 0x15a57: 0x4487b220, + 0x15a58: 0xe000583b, 0x15a59: 0xe0005ecb, 0x15a5a: 0x42ce4220, 0x15a5b: 0xe0005090, + 0x15a5c: 0xe0009ef7, 0x15a5d: 0x48678620, 0x15a5e: 0x44769220, 0x15a5f: 0x42cff420, + 0x15a60: 0x42cf0a20, 0x15a61: 0x42d0a420, 0x15a62: 0xe0005f15, 0x15a63: 0x4868da20, + 0x15a64: 0x42d11c20, 0x15a65: 0x42d03e20, 0x15a66: 0x42d22820, 0x15a67: 0x44773a20, + 0x15a68: 0xe0006b96, 0x15a69: 0x42d34620, 0x15a6a: 0xe000445b, 0x15a6b: 0x42d55020, + 0x15a6c: 0x486d4620, 0x15a6d: 0xe0009001, 0x15a6e: 0x44783020, 0x15a6f: 0xe000925a, + 0x15a70: 0x48714e20, 0x15a71: 0xe000a242, 0x15a72: 0x44789c20, 0x15a73: 0xe000701e, + 0x15a74: 0x42d73e20, 0x15a75: 0xe0006c40, 0x15a76: 0x42d77620, 0x15a77: 0x48751a20, + 0x15a78: 0x483a1620, 0x15a79: 0x4875f420, 0x15a7a: 0xe0006558, 0x15a7b: 0x48797820, + 0x15a7c: 0xe0007a37, 0x15a7d: 0x42d99a20, 0x15a7e: 0x42d8ce20, 0x15a7f: 0x42da2c20, + // Block 0x56a, offset 0x15a80 + 0x15a80: 0xe0009ce2, 0x15a81: 0xe000a1aa, 0x15a82: 0xe0005c33, 0x15a83: 0xe000a43f, + 0x15a84: 0xe0009a66, 0x15a85: 0xe0007ac3, 0x15a86: 0x487a3c20, 0x15a87: 0x42da6820, + 0x15a88: 0xe000a167, 0x15a89: 0xe000850e, 0x15a8a: 0x447a6620, 0x15a8b: 0xe00085f0, + 0x15a8c: 0x42dd8e20, 0x15a8d: 0x487da220, 0x15a8e: 0xe000797b, 0x15a8f: 0xe0008d1f, + 0x15a90: 0x487ebc20, 0x15a91: 0x487f1c20, 0x15a92: 0xe00068c8, 0x15a93: 0x42e07220, + 0x15a94: 0xe0008bb9, 0x15a95: 0xe0007b77, 0x15a96: 0x447b2c20, 0x15a97: 0x42e09420, + 0x15a98: 0xe0008818, 0x15a99: 0x42e0ee20, 0x15a9a: 0xe0009b74, 0x15a9b: 0x480a4a20, + 0x15a9c: 0x42e28a20, 0x15a9d: 0x4884c620, 0x15a9e: 0x42e33820, 0x15a9f: 0x48875620, + 0x15aa0: 0xe0009303, 0x15aa1: 0xe000868a, 0x15aa2: 0x42e4a020, 0x15aa3: 0x488c1020, + 0x15aa4: 0xe0006dad, 0x15aa5: 0x42e52a20, 0x15aa6: 0x488e6a20, 0x15aa7: 0x48902820, + 0x15aa8: 0xe00053a6, 0x15aa9: 0xe0007e55, 0x15aaa: 0x447d5820, 0x15aab: 0x42e74a20, + 0x15aac: 0x447d7020, 0x15aad: 0x447d7020, 0x15aae: 0x42e88e20, 0x15aaf: 0xe0008263, + 0x15ab0: 0xe0008a3d, 0x15ab1: 0x42e90a20, 0x15ab2: 0xe00046f9, 0x15ab3: 0x447e3620, + 0x15ab4: 0x42ea4820, 0x15ab5: 0x48986c20, 0x15ab6: 0x42ea7c20, 0x15ab7: 0x48992420, + 0x15ab8: 0xe000847a, 0x15ab9: 0x48433e20, 0x15aba: 0xe00082b7, 0x15abb: 0x489f4220, + 0x15abc: 0x489f7020, 0x15abd: 0x48a08820, 0x15abe: 0x447ff820, 0x15abf: 0x44801020, + // Block 0x56b, offset 0x15ac0 + 0x15ac0: 0xe00090e5, 0x15ac1: 0x48a1e620, 0x15ac2: 0x48a1e420, 0x15ac3: 0x48a23220, + 0x15ac4: 0x48a26620, 0x15ac5: 0xe0009145, 0x15ac6: 0x42ee3e20, 0x15ac7: 0x42ee3e20, + 0x15ac8: 0x42ee9420, 0x15ac9: 0x44807220, 0x15aca: 0xe0009149, 0x15acb: 0x44808c20, + 0x15acc: 0x44812c20, 0x15acd: 0x48a83a20, 0x15ace: 0x42f09c20, 0x15acf: 0xe0005aee, + 0x15ad0: 0x42f19820, 0x15ad1: 0x4481c620, 0x15ad2: 0x48ac4c20, 0x15ad3: 0xe0008d31, + 0x15ad4: 0x48ad3420, 0x15ad5: 0x48ad8a20, 0x15ad6: 0xe00066dd, 0x15ad7: 0xe0009912, + 0x15ad8: 0x44825e20, 0x15ad9: 0xe00048de, 0x15ada: 0x42f49420, 0x15adb: 0x42f49e20, + 0x15adc: 0x48b2f820, 0x15add: 0x48b54e20, 0x15ade: 0x48b54e20, 0x15adf: 0x42f5dc20, + 0x15ae0: 0x44840420, 0x15ae1: 0x48b75620, 0x15ae2: 0xe00089d5, 0x15ae3: 0xe00098ca, + 0x15ae4: 0x44844e20, 0x15ae5: 0x48b90020, 0x15ae6: 0x42f9a420, 0x15ae7: 0x44854020, + 0x15ae8: 0x42f9d020, 0x15ae9: 0x42f9c620, 0x15aea: 0xe00050d5, 0x15aeb: 0x48bf0c20, + 0x15aec: 0xe0006664, 0x15aed: 0x44860220, 0x15aee: 0xe00099d5, 0x15aef: 0x42fc0420, + 0x15af0: 0xe00070cf, 0x15af1: 0x44866820, 0x15af2: 0x48c45020, 0x15af3: 0x48c48e20, + 0x15af4: 0x4486b220, 0x15af5: 0x48c5b220, 0x15af6: 0x42fef420, 0x15af7: 0x48c67c20, + 0x15af8: 0x42ff2a20, 0x15af9: 0xe00048b0, 0x15afa: 0xe0008608, 0x15afb: 0x48c9b420, + 0x15afc: 0x48ca4620, 0x15afd: 0x4300c020, 0x15afe: 0x48cb5020, 0x15aff: 0xe00097d8, + // Block 0x56c, offset 0x15b00 + 0x15b00: 0x4866be20, 0x15b01: 0x4487aa20, 0x15b02: 0xe0008302, 0x15b03: 0x43020620, + 0x15b04: 0x44881620, 0x15b05: 0xe00069a2, 0x15b06: 0xe00085ce, 0x15b07: 0x48cf4e20, + 0x15b08: 0x48cf6a20, 0x15b09: 0x48672620, 0x15b0a: 0x48673820, 0x15b0b: 0xe00079d8, + 0x15b0c: 0x43040820, 0x15b0d: 0x431f3c20, 0x15b0e: 0x4488d620, 0x15b0f: 0x43052220, + 0x15b10: 0xe0008008, 0x15b11: 0xe00090a3, 0x15b12: 0x42a56620, 0x15b13: 0xe000a565, + 0x15b14: 0xe0006438, 0x15b15: 0xe00075c0, 0x15b16: 0xe0004850, 0x15b17: 0x48d67820, + 0x15b18: 0xe0007829, 0x15b19: 0xe000945a, 0x15b1a: 0x4306c620, 0x15b1b: 0x43075a20, + 0x15b1c: 0xe0007cd9, 0x15b1d: 0xe0005edf, 0x15b1e: 0x4307ce20, 0x15b1f: 0xe0008898, + 0x15b20: 0x4306a620, 0x15b21: 0xe0004d87, 0x15b22: 0xe0004f13, 0x15b23: 0xe000944b, + 0x15b24: 0x48d86c20, 0x15b25: 0x48dad620, 0x15b26: 0x48d9aa20, 0x15b27: 0x448a5620, + 0x15b28: 0xe0009e30, 0x15b29: 0x4309e620, 0x15b2a: 0x430a2c20, 0x15b2b: 0x48e79420, + 0x15b2c: 0xe00082d2, 0x15b2d: 0x48de5820, 0x15b2e: 0x448aba20, 0x15b2f: 0x448ac220, + 0x15b30: 0x48df6220, 0x15b31: 0x48e1a420, 0x15b32: 0x448ad620, 0x15b33: 0xe000a037, + 0x15b34: 0xe0005aaf, 0x15b35: 0xe000a85d, 0x15b36: 0x430cd220, 0x15b37: 0xe00099e1, + 0x15b38: 0x430d1020, 0x15b39: 0x430e1c20, 0x15b3a: 0x430dc420, 0x15b3b: 0x430ef220, + 0x15b3c: 0xe0008b39, 0x15b3d: 0x430ed620, 0x15b3e: 0x430f0c20, 0x15b3f: 0x448bae20, + // Block 0x56d, offset 0x15b40 + 0x15b40: 0x430fc220, 0x15b41: 0x43100220, 0x15b42: 0x448bf220, 0x15b43: 0x4310c020, + 0x15b44: 0xe000842f, 0x15b45: 0x48ecce20, 0x15b46: 0x4311ae20, 0x15b47: 0x4311bc20, + 0x15b48: 0x448c6a20, 0x15b49: 0x4311f420, 0x15b4a: 0x44697620, 0x15b4b: 0x48f15c20, + 0x15b4c: 0x48f2cc20, 0x15b4d: 0x448d7c20, 0x15b4e: 0x448d8e20, 0x15b4f: 0xe0007008, + 0x15b50: 0xe000827e, 0x15b51: 0xe00065cc, 0x15b52: 0xe000743c, 0x15b53: 0x48f95020, + 0x15b54: 0xe0004a8d, 0x15b55: 0xe00068a0, 0x15b56: 0xe00049d6, 0x15b57: 0xe00050f0, + 0x15b58: 0x48fe5e20, 0x15b59: 0x48100820, 0x15b5a: 0xe00063c0, 0x15b5b: 0x431b7820, + 0x15b5c: 0x431be020, 0x15b5d: 0x4811bc20, 0x15b5e: 0x431da820, 0x15b5f: 0xe0007219, + 0x15b60: 0x490ba420, 0x15b61: 0x490bda20, 0x15b62: 0x43212820, 0x15b63: 0x4321e220, + 0x15b64: 0x43222220, 0x15b65: 0x490e5c20, 0x15b66: 0x43223620, 0x15b67: 0xe00063e0, + 0x15b68: 0xe000a311, 0x15b69: 0x4325b020, 0x15b6a: 0xe0006678, 0x15b6b: 0x4327f220, + 0x15b6c: 0x43282a20, 0x15b6d: 0x4917f420, 0x15b6e: 0xe0004476, 0x15b6f: 0x44932a20, + 0x15b70: 0x432b6e20, 0x15b71: 0x491aee20, 0x15b72: 0x4493cc20, 0x15b73: 0x432d8620, + 0x15b74: 0x42bb6420, 0x15b75: 0xe00080ca, 0x15b76: 0x49228a20, 0x15b77: 0x49243420, + 0x15b78: 0x4494dc20, 0x15b79: 0x4494ec20, 0x15b7a: 0xe0009fd5, 0x15b7b: 0x49281420, + 0x15b7c: 0x44956420, 0x15b7d: 0x49292c20, 0x15b7e: 0x43301620, 0x15b7f: 0x43301620, + // Block 0x56e, offset 0x15b80 + 0x15b80: 0x43305220, 0x15b81: 0x492b6c20, 0x15b82: 0xe00050f9, 0x15b83: 0x44966620, + 0x15b84: 0x43325220, 0x15b85: 0x43334e20, 0x15b86: 0x43338420, 0x15b87: 0x4333fc20, + 0x15b88: 0x44979c20, 0x15b89: 0x49366020, 0x15b8a: 0xe00091a9, 0x15b8b: 0x43388020, + 0x15b8c: 0x4339fa20, 0x15b8d: 0x44999c20, 0x15b8e: 0x4499da20, 0x15b8f: 0x433ace20, + 0x15b90: 0x49419c20, 0x15b91: 0x4499f020, 0x15b92: 0x49420a20, 0x15b93: 0x49441c20, + 0x15b94: 0x49452220, 0x15b95: 0xe0005df2, 0x15b96: 0x449aac20, 0x15b97: 0x433df220, + 0x15b98: 0x433dfc20, 0x15b99: 0x433e0a20, 0x15b9a: 0x433e1e20, 0x15b9b: 0x433e2c20, + 0x15b9c: 0xe00069c3, 0x15b9d: 0x494c0020, + // Block 0x56f, offset 0x15bc0 + 0x15bc0: 0xa000f202, 0x15bc1: 0x403fba21, 0x15bc2: 0x403fba20, 0x15bc3: 0x403fbc20, + 0x15bc4: 0x403fbc20, 0x15bc5: 0x403fbe20, 0x15bc6: 0x403fc020, 0x15bc7: 0x403fcc20, + 0x15bc8: 0x403fce20, 0x15bc9: 0x403fd020, 0x15bca: 0x403fd220, 0x15bcb: 0x403fd420, + 0x15bcc: 0x403fd820, 0x15bcd: 0x403fdc20, 0x15bce: 0x403fde20, 0x15bcf: 0x403fe020, + 0x15bd0: 0x403fe220, 0x15bd1: 0x403fe420, 0x15bd2: 0x403fe620, 0x15bd3: 0x403fe820, + 0x15bd4: 0x403fea20, 0x15bd5: 0xcaac3be1, 0x15bd6: 0x403fee20, 0x15bd7: 0x403ff020, + 0x15bd8: 0x403ff420, 0x15bd9: 0x403ff620, 0x15bda: 0x403ff820, 0x15bdb: 0x403ffa20, + 0x15bdc: 0x403ffc20, 0x15bdd: 0x40400220, 0x15bde: 0x40400420, 0x15bdf: 0x40400620, + 0x15be0: 0x40400820, 0x15be1: 0x40400a20, 0x15be2: 0x40400e20, 0x15be3: 0x40401020, + 0x15be4: 0x40401220, 0x15be5: 0x40401420, 0x15be6: 0x40401620, 0x15be7: 0x40401820, + 0x15be8: 0x40401a20, 0x15be9: 0xe0001830, 0x15bea: 0x40401c20, 0x15beb: 0x40401e20, + 0x15bec: 0x40402020, 0x15bed: 0x40402420, 0x15bee: 0x40402620, 0x15bef: 0x40402820, + 0x15bf0: 0x40402c20, 0x15bf1: 0xe0001839, 0x15bf2: 0x40402e20, 0x15bf3: 0x40403c20, + 0x15bf4: 0xe000a994, 0x15bf5: 0x40403220, 0x15bf6: 0x40403420, 0x15bf7: 0x40403620, + 0x15bf8: 0x40403820, 0x15bf9: 0x40403a20, 0x15bfa: 0x40404c20, 0x15bfb: 0x40404e20, + 0x15bfc: 0xa070f102, 0x15bfd: 0x40403c20, 0x15bfe: 0x40404a20, 0x15bff: 0x40405620, + // Block 0x570, offset 0x15c00 + 0x15c00: 0xa0000000, 0x15c01: 0xa0000000, 0x15c02: 0xa0000000, 0x15c03: 0xa0000000, + 0x15c04: 0xa0000000, 0x15c05: 0xa0000000, 0x15c06: 0xa0000000, 0x15c07: 0xa0000000, + 0x15c08: 0xa0000000, 0x15c09: 0x40020020, 0x15c0a: 0x40020220, 0x15c0b: 0x40020420, + 0x15c0c: 0x40020620, 0x15c0d: 0x40020820, 0x15c0e: 0xa0000000, 0x15c0f: 0xa0000000, + 0x15c10: 0xa0000000, 0x15c11: 0xa0000000, 0x15c12: 0xa0000000, 0x15c13: 0xa0000000, + 0x15c14: 0xa0000000, 0x15c15: 0xa0000000, 0x15c16: 0xa0000000, 0x15c17: 0xa0000000, + 0x15c18: 0xa0000000, 0x15c19: 0xa0000000, 0x15c1a: 0xa0000000, 0x15c1b: 0xa0000000, + 0x15c1c: 0xa0000000, 0x15c1d: 0xa0000000, 0x15c1e: 0xa0000000, 0x15c1f: 0xa0000000, + 0x15c20: 0x40021220, 0x15c21: 0x4002ba20, 0x15c22: 0x4003e020, 0x15c23: 0x4004ea20, + 0x15c24: 0x4027de20, 0x15c25: 0x4004ec20, 0x15c26: 0x4004e620, 0x15c27: 0x4003d220, + 0x15c28: 0x4003f420, 0x15c29: 0x4003f620, 0x15c2a: 0x4004d820, 0x15c2b: 0x40093820, + 0x15c2c: 0x40024020, 0x15c2d: 0x40021a20, 0x15c2e: 0x4002e420, 0x15c2f: 0x4004e220, + 0x15c30: 0x4029cc20, 0x15c31: 0x4029ce20, 0x15c32: 0x4029d020, 0x15c33: 0x4029d220, + 0x15c34: 0x4029d420, 0x15c35: 0x4029d620, 0x15c36: 0x4029d820, 0x15c37: 0x4029da20, + 0x15c38: 0x4029dc20, 0x15c39: 0x4029de20, 0x15c3a: 0x40026c20, 0x15c3b: 0x40026220, + 0x15c3c: 0x40094020, 0x15c3d: 0x40094220, 0x15c3e: 0x40094420, 0x15c3f: 0x4002c420, + // Block 0x571, offset 0x15c40 + 0x15c40: 0x4004d620, 0x15c41: 0x002bde88, 0x15c42: 0x002c0a88, 0x15c43: 0x002c3a88, + 0x15c44: 0x002c6288, 0x15c45: 0x002c9888, 0x15c46: 0x002d0888, 0x15c47: 0xcab12692, + 0x15c48: 0x002d6888, 0x15c49: 0x002d9a88, 0x15c4a: 0x002dcc88, 0x15c4b: 0xcab726c2, + 0x15c4c: 0xc0030002, 0x15c4d: 0xcac33c48, 0x15c4e: 0xcadf3daa, 0x15c4f: 0x002ee288, + 0x15c50: 0x002f2c88, 0x15c51: 0x002f5688, 0x15c52: 0x002f7a88, 0x15c53: 0xcaf409c2, + 0x15c54: 0xcafa2722, 0x15c55: 0x00306c88, 0x15c56: 0x0030be88, 0x15c57: 0x0030e288, + 0x15c58: 0x0030f688, 0x15c59: 0x00310088, 0x15c5a: 0x00312a88, 0x15c5b: 0x4003f820, + 0x15c5c: 0x4004e420, 0x15c5d: 0x4003fa20, 0x15c5e: 0x40062420, 0x15c5f: 0x40021620, + 0x15c60: 0x40061e20, 0x15c61: 0x402bde20, 0x15c62: 0x402c0a20, 0x15c63: 0x402c3a20, + 0x15c64: 0x402c6220, 0x15c65: 0x402c9820, 0x15c66: 0x402d0820, 0x15c67: 0xcaae2692, + 0x15c68: 0x402d6820, 0x15c69: 0x402d9a20, 0x15c6a: 0x402dcc20, 0x15c6b: 0xcab426c2, + 0x15c6c: 0xc0000002, 0x15c6d: 0xcaba3c48, 0x15c6e: 0xcacc3cca, 0x15c6f: 0x402ee220, + 0x15c70: 0x402f2c20, 0x15c71: 0x402f5620, 0x15c72: 0x402f7a20, 0x15c73: 0xcaf109c2, + 0x15c74: 0xcaf72722, 0x15c75: 0x40306c20, 0x15c76: 0x4030be20, 0x15c77: 0x4030e220, + 0x15c78: 0x4030f620, 0x15c79: 0x40310020, 0x15c7a: 0x40312a20, 0x15c7b: 0x4003fc20, + 0x15c7c: 0x40094820, 0x15c7d: 0x4003fe20, 0x15c7e: 0x40094c20, 0x15c7f: 0xa0000000, + // Block 0x572, offset 0x15c80 + 0x15c80: 0x402c1a20, 0x15c81: 0x002c2a88, 0x15c82: 0x002c3288, 0x15c83: 0x402c3220, + 0x15c84: 0x0031c488, 0x15c85: 0x4031c420, 0x15c86: 0x002ee2a3, 0x15c87: 0x002c4e88, + 0x15c88: 0x402c4e20, 0x15c89: 0x002c7288, 0x15c8a: 0x002c7a88, 0x15c8b: 0x002c8488, + 0x15c8c: 0x402c8420, 0x15c8d: 0xe000115c, 0x15c8e: 0x002cae88, 0x15c8f: 0x002cb888, + 0x15c90: 0x002c9a83, 0x15c91: 0x002d1688, 0x15c92: 0x402d1620, 0x15c93: 0x002d4488, + 0x15c94: 0x002d5888, 0x15c95: 0x402d7820, 0x15c96: 0x002dc288, 0x15c97: 0x002db688, + 0x15c98: 0x002e0a88, 0x15c99: 0x402e0a20, 0x15c9a: 0x402e3820, 0x15c9b: 0x402e7220, + 0x15c9c: 0x0030a088, 0x15c9d: 0x002eb488, 0x15c9e: 0x402ebc20, 0x15c9f: 0x002f1088, + 0x15ca0: 0xe0000e56, 0x15ca1: 0xe0000e53, 0x15ca2: 0x002d6088, 0x15ca3: 0x402d6020, + 0x15ca4: 0x002f3e88, 0x15ca5: 0x402f3e20, 0x15ca6: 0x002f8288, 0x15ca7: 0x0031b488, + 0x15ca8: 0x4031b420, 0x15ca9: 0x00300888, 0x15caa: 0x40301220, 0x15cab: 0x40304220, + 0x15cac: 0x00304a88, 0x15cad: 0x40304a20, 0x15cae: 0x00305288, 0x15caf: 0xe000105f, + 0x15cb0: 0xe000105c, 0x15cb1: 0x0030b488, 0x15cb2: 0x0030cc88, 0x15cb3: 0x00311888, + 0x15cb4: 0x40311820, 0x15cb5: 0x00313488, 0x15cb6: 0x40313420, 0x15cb7: 0x00316488, + 0x15cb8: 0x00316e88, 0x15cb9: 0x40316e20, 0x15cba: 0x40317820, 0x15cbb: 0x4031a620, + 0x15cbc: 0x0031bc88, 0x15cbd: 0x4031bc20, 0x15cbe: 0xe0000fc9, 0x15cbf: 0x40319420, + // Block 0x573, offset 0x15cc0 + 0x15cc0: 0x40315820, 0x15cc1: 0x0031d488, 0x15cc2: 0x4031d420, 0x15cc3: 0x002c1a88, + 0x15cc4: 0x00307c88, 0x15cc5: 0x0030da88, 0x15cc6: 0x002ca288, 0x15cc7: 0x402ca220, + 0x15cc8: 0x002dde88, 0x15cc9: 0x402dde20, 0x15cca: 0x002f6a88, 0x15ccb: 0x402f6a20, + 0x15ccc: 0x002f8e88, 0x15ccd: 0x402f8e20, 0x15cce: 0x00311088, 0x15ccf: 0x40311020, + 0x15cd0: 0x402bf020, 0x15cd1: 0x402bf820, 0x15cd2: 0x402c0220, 0x15cd3: 0x402c2a20, + 0x15cd4: 0x402ee221, 0x15cd5: 0x402c5620, 0x15cd6: 0x402c7220, 0x15cd7: 0x402c7a20, + 0x15cd8: 0x402ccc20, 0x15cd9: 0x402cb820, 0x15cda: 0x402cd420, 0x15cdb: 0x402c9a20, + 0x15cdc: 0x402cdc20, 0x15cdd: 0x402ce820, 0x15cde: 0x402cf020, 0x15cdf: 0x402dee20, + 0x15ce0: 0x402d4420, 0x15ce1: 0x402d2a20, 0x15ce2: 0x402d3220, 0x15ce3: 0x402d5820, + 0x15ce4: 0x402d0020, 0x15ce5: 0x40308820, 0x15ce6: 0x402d8020, 0x15ce7: 0x402d8e20, + 0x15ce8: 0x402db620, 0x15ce9: 0x402dc220, 0x15cea: 0x402daa20, 0x15ceb: 0x402e4220, + 0x15cec: 0x402e4a20, 0x15ced: 0x402e5420, 0x15cee: 0x402e6820, 0x15cef: 0x4030a020, + 0x15cf0: 0x4030ac20, 0x15cf1: 0x402e9020, 0x15cf2: 0x402eb420, 0x15cf3: 0x402ec820, + 0x15cf4: 0x402ea620, 0x15cf5: 0x402f1020, 0x15cf6: 0x402eee20, 0x15cf7: 0x402f1a20, + 0x15cf8: 0x402f4c20, 0x15cf9: 0x402f9820, 0x15cfa: 0x402fa220, 0x15cfb: 0x402fac20, + 0x15cfc: 0x402fb620, 0x15cfd: 0x402fbe20, 0x15cfe: 0x402fc620, 0x15cff: 0x402fd020, + // Block 0x574, offset 0x15d00 + 0x15d00: 0xa0000000, 0x15d01: 0xa0000000, 0x15d02: 0xa0000000, 0x15d03: 0xa0000000, + 0x15d04: 0xa0000000, 0x15d05: 0xa0000000, 0x15d06: 0xa0000000, 0x15d07: 0xa0000000, + 0x15d08: 0xa0000000, 0x15d09: 0x40020020, 0x15d0a: 0x40020220, 0x15d0b: 0x40020420, + 0x15d0c: 0x40020620, 0x15d0d: 0x40020820, 0x15d0e: 0xa0000000, 0x15d0f: 0xa0000000, + 0x15d10: 0xa0000000, 0x15d11: 0xa0000000, 0x15d12: 0xa0000000, 0x15d13: 0xa0000000, + 0x15d14: 0xa0000000, 0x15d15: 0xa0000000, 0x15d16: 0xa0000000, 0x15d17: 0xa0000000, + 0x15d18: 0xa0000000, 0x15d19: 0xa0000000, 0x15d1a: 0xa0000000, 0x15d1b: 0xa0000000, + 0x15d1c: 0xa0000000, 0x15d1d: 0xa0000000, 0x15d1e: 0xa0000000, 0x15d1f: 0xa0000000, + 0x15d20: 0x40021220, 0x15d21: 0x4002ba20, 0x15d22: 0x4003e020, 0x15d23: 0x4004ea20, + 0x15d24: 0x4027de20, 0x15d25: 0x4004ec20, 0x15d26: 0x4004e620, 0x15d27: 0x4003d220, + 0x15d28: 0x4003f420, 0x15d29: 0x4003f620, 0x15d2a: 0x4004d820, 0x15d2b: 0x40093820, + 0x15d2c: 0x40024020, 0x15d2d: 0x40021a20, 0x15d2e: 0x4002e420, 0x15d2f: 0x4004e220, + 0x15d30: 0x4029cc20, 0x15d31: 0x4029ce20, 0x15d32: 0x4029d020, 0x15d33: 0x4029d220, + 0x15d34: 0x4029d420, 0x15d35: 0x4029d620, 0x15d36: 0x4029d820, 0x15d37: 0x4029da20, + 0x15d38: 0x4029dc20, 0x15d39: 0x4029de20, 0x15d3a: 0x40026c20, 0x15d3b: 0x40026220, + 0x15d3c: 0x40094020, 0x15d3d: 0x40094220, 0x15d3e: 0x40094420, 0x15d3f: 0x4002c420, + // Block 0x575, offset 0x15d40 + 0x15d40: 0x4004d620, 0x15d41: 0xcb030be1, 0x15d42: 0x002c0a88, 0x15d43: 0xc3350991, + 0x15d44: 0x002c6288, 0x15d45: 0xcb083ea1, 0x15d46: 0x002d0888, 0x15d47: 0x002d2288, + 0x15d48: 0x002d6888, 0x15d49: 0xcb0d0be1, 0x15d4a: 0x002dcc88, 0x15d4b: 0x002dfe88, + 0x15d4c: 0xc0030002, 0x15d4d: 0x002e8288, 0x15d4e: 0x002e9e88, 0x15d4f: 0x002ee288, + 0x15d50: 0x002f2c88, 0x15d51: 0x002f5688, 0x15d52: 0x002f7a88, 0x15d53: 0xc3430991, + 0x15d54: 0x00302c88, 0x15d55: 0xcb123ed1, 0x15d56: 0x0030be88, 0x15d57: 0x0030e288, + 0x15d58: 0x0030f688, 0x15d59: 0x002d9ac3, 0x15d5a: 0xc3630991, 0x15d5b: 0x4003f820, + 0x15d5c: 0x4004e420, 0x15d5d: 0x4003fa20, 0x15d5e: 0x40062420, 0x15d5f: 0x40021620, + 0x15d60: 0x40061e20, 0x15d61: 0xcb010be1, 0x15d62: 0x402c0a20, 0x15d63: 0xc3330991, + 0x15d64: 0x402c6220, 0x15d65: 0xcb053ea1, 0x15d66: 0x402d0820, 0x15d67: 0x402d2220, + 0x15d68: 0x402d6820, 0x15d69: 0xcb0b0be1, 0x15d6a: 0x402dcc20, 0x15d6b: 0x402dfe20, + 0x15d6c: 0xc0000002, 0x15d6d: 0x402e8220, 0x15d6e: 0x402e9e20, 0x15d6f: 0x402ee220, + 0x15d70: 0x402f2c20, 0x15d71: 0x402f5620, 0x15d72: 0x402f7a20, 0x15d73: 0xc3410991, + 0x15d74: 0x40302c20, 0x15d75: 0xcb0f3ed1, 0x15d76: 0x4030be20, 0x15d77: 0x4030e220, + 0x15d78: 0x4030f620, 0x15d79: 0x402d9a22, 0x15d7a: 0xc3610991, 0x15d7b: 0x4003fc20, + 0x15d7c: 0x40094820, 0x15d7d: 0x4003fe20, 0x15d7e: 0x40094c20, 0x15d7f: 0xa0000000, + // Block 0x576, offset 0x15d80 + 0x15d80: 0xe00008f5, 0x15d81: 0xe00008ef, 0x15d82: 0xe0000921, 0x15d83: 0xe0000969, + 0x15d84: 0xe000095b, 0x15d85: 0xe000094d, 0x15d86: 0xe00009dd, 0x15d87: 0xe0000a53, + 0x15d88: 0xe0000ae8, 0x15d89: 0xe0000ae2, 0x15d8a: 0xe0000af4, 0x15d8b: 0xe0000b20, + 0x15d8c: 0xe0000c2b, 0x15d8d: 0xe0000c25, 0x15d8e: 0xe0000c37, 0x15d8f: 0xe0000c43, + 0x15d90: 0xe0000ab3, 0x15d91: 0xe0000d63, 0x15d92: 0xe0000d9a, 0x15d93: 0xe0000d94, + 0x15d94: 0xe0000da6, 0x15d95: 0xe0000de6, 0x15d96: 0xe0000dd2, 0x15d97: 0x40093e20, + 0x15d98: 0xe0000e12, 0x15d99: 0xe0000fe1, 0x15d9a: 0xe0000fdb, 0x15d9b: 0xe0000fed, + 0x15d9c: 0xe0000fff, 0x15d9d: 0xe000a99a, 0x15d9e: 0x00318888, 0x15d9f: 0xe0000f7b, + 0x15da0: 0xe00008f2, 0x15da1: 0xe00008ec, 0x15da2: 0xe000091e, 0x15da3: 0xe0000966, + 0x15da4: 0xe0000958, 0x15da5: 0xe000094a, 0x15da6: 0xe00009d5, 0x15da7: 0xe0000a4d, + 0x15da8: 0xe0000ae5, 0x15da9: 0xe0000adf, 0x15daa: 0xe0000af1, 0x15dab: 0xe0000b1d, + 0x15dac: 0xe0000c28, 0x15dad: 0xe0000c22, 0x15dae: 0xe0000c34, 0x15daf: 0xe0000c40, + 0x15db0: 0xe0000aad, 0x15db1: 0xe0000d60, 0x15db2: 0xe0000d97, 0x15db3: 0xe0000d91, + 0x15db4: 0xe0000da3, 0x15db5: 0xe0000de3, 0x15db6: 0xe0000dcf, 0x15db7: 0x40093c20, + 0x15db8: 0xe0000e0f, 0x15db9: 0xe0000fde, 0x15dba: 0xe0000fd8, 0x15dbb: 0xe0000fea, + 0x15dbc: 0xe0000ffc, 0x15dbd: 0xe000a997, 0x15dbe: 0x40318820, 0x15dbf: 0xe000a9ac, + // Block 0x577, offset 0x15dc0 + 0x15dc0: 0xe0000983, 0x15dc1: 0xe0000980, 0x15dc2: 0xe00008fb, 0x15dc3: 0xe00008f8, + 0x15dc4: 0x002bdea3, 0x15dc5: 0x402bde21, 0x15dc6: 0xe0000a38, 0x15dc7: 0xe0000a35, + 0x15dc8: 0xe0000a3e, 0x15dc9: 0xe0000a3b, 0x15dca: 0xe0000a4a, 0x15dcb: 0xe0000a47, + 0x15dcc: 0x002c3c83, 0x15dcd: 0x402c3c20, 0x15dce: 0xe0000a86, 0x15dcf: 0xe0000a83, + 0x15dd0: 0xe0000aaa, 0x15dd1: 0xe0000aa7, 0x15dd2: 0xe0000b46, 0x15dd3: 0xe0000b43, + 0x15dd4: 0xe0000aee, 0x15dd5: 0xe0000aeb, 0x15dd6: 0x002c98c3, 0x15dd7: 0x402c9822, + 0x15dd8: 0x002c98a3, 0x15dd9: 0x402c9821, 0x15dda: 0xe0000b1a, 0x15ddb: 0xe0000b17, + 0x15ddc: 0xe0000bb8, 0x15ddd: 0xe0000bb5, 0x15dde: 0xe0000bb2, 0x15ddf: 0xe0000baf, + 0x15de0: 0xe0000bc4, 0x15de1: 0xe0000bc1, 0x15de2: 0xe0000bca, 0x15de3: 0xe0000bc7, + 0x15de4: 0xe0000bee, 0x15de5: 0xe0000beb, 0x15de6: 0xe0000c1b, 0x15de7: 0xe0000c18, + 0x15de8: 0xe0000c51, 0x15de9: 0xe0000c4e, 0x15dea: 0xe0000c60, 0x15deb: 0xe0000c5d, + 0x15dec: 0xe0000c31, 0x15ded: 0xe0000c2e, 0x15dee: 0x002d9aa3, 0x15def: 0x402d9a21, + 0x15df0: 0xe0000c54, 0x15df1: 0x402da220, 0x15df2: 0xf0000a0a, 0x15df3: 0xf0000404, + 0x15df4: 0xe0000c8a, 0x15df5: 0xe0000c87, 0x15df6: 0xe0000c9f, 0x15df7: 0xe0000c9c, + 0x15df8: 0x402f7220, 0x15df9: 0xe0000ccc, 0x15dfa: 0xe0000cc9, 0x15dfb: 0xe0000cd8, + 0x15dfc: 0xe0000cd5, 0x15dfd: 0xe0000cd2, 0x15dfe: 0xe0000ccf, 0x15dff: 0xe0000d04, + // Block 0x578, offset 0x15e00 + 0x15e00: 0xe0000cfe, 0x15e01: 0xe0000cf8, 0x15e02: 0xe0000cf5, 0x15e03: 0xe0000d51, + 0x15e04: 0xe0000d4e, 0x15e05: 0xe0000d6f, 0x15e06: 0xe0000d6c, 0x15e07: 0xe0000d5d, + 0x15e08: 0xe0000d5a, 0x15e09: 0xf0000404, 0x15e0a: 0x002eda88, 0x15e0b: 0x402eda20, + 0x15e0c: 0xe0000e2e, 0x15e0d: 0xe0000e2b, 0x15e0e: 0xe0000da0, 0x15e0f: 0xe0000d9d, + 0x15e10: 0xe0000de0, 0x15e11: 0xe0000ddd, 0x15e12: 0xe0000e93, 0x15e13: 0xe0000e8f, + 0x15e14: 0xe0000eca, 0x15e15: 0xe0000ec7, 0x15e16: 0xe0000edc, 0x15e17: 0xe0000ed9, + 0x15e18: 0xe0000ed0, 0x15e19: 0xe0000ecd, 0x15e1a: 0xe0000f1f, 0x15e1b: 0xe0000f1c, + 0x15e1c: 0xe0000f2d, 0x15e1d: 0xe0000f2a, 0x15e1e: 0xe0000f47, 0x15e1f: 0xe0000f44, + 0x15e20: 0x002fe883, 0x15e21: 0x402fe820, 0x15e22: 0xe0000f99, 0x15e23: 0xe0000f96, + 0x15e24: 0xe0000f8a, 0x15e25: 0xe0000f87, 0x15e26: 0x00303688, 0x15e27: 0x40303620, + 0x15e28: 0xe000102b, 0x15e29: 0xe0001028, 0x15e2a: 0x00306cc3, 0x15e2b: 0x40306c22, + 0x15e2c: 0xe0000fe7, 0x15e2d: 0xe0000fe4, 0x15e2e: 0xe0000ff9, 0x15e2f: 0xe0000ff6, + 0x15e30: 0xe0001025, 0x15e31: 0xe0001022, 0x15e32: 0x00306ca3, 0x15e33: 0x40306c21, + 0x15e34: 0xe00010d8, 0x15e35: 0xe00010d5, 0x15e36: 0xe000a9a6, 0x15e37: 0xe000a9a3, + 0x15e38: 0xe000a9af, 0x15e39: 0xe000113b, 0x15e3a: 0xe0001138, 0x15e3b: 0xe000114d, + 0x15e3c: 0xe000114a, 0x15e3d: 0x00312c83, 0x15e3e: 0x40312c20, 0x15e3f: 0xe0000f64, + // Block 0x579, offset 0x15e40 + 0x15e40: 0x40321220, 0x15e41: 0x40321a20, 0x15e42: 0x40322220, 0x15e43: 0x40322a20, + 0x15e44: 0xe0000ad5, 0x15e45: 0xe0000ad1, 0x15e46: 0xe0000acd, 0x15e47: 0xf0000a0a, + 0x15e48: 0xf000040a, 0x15e49: 0xf0000404, 0x15e4a: 0xf0000a0a, 0x15e4b: 0xf000040a, + 0x15e4c: 0xf0000404, 0x15e4d: 0xe0000947, 0x15e4e: 0xe0000944, 0x15e4f: 0xe0000c3d, + 0x15e50: 0xe0000c3a, 0x15e51: 0xe0000dcc, 0x15e52: 0xe0000dc9, 0x15e53: 0xe0000ff3, + 0x15e54: 0xe0000ff0, 0x15e55: 0xe000a9d3, 0x15e56: 0xe000a9d0, 0x15e57: 0xe0001006, + 0x15e58: 0xe0001002, 0x15e59: 0xe0001016, 0x15e5a: 0xe0001012, 0x15e5b: 0xe000100e, + 0x15e5c: 0xe000100a, 0x15e5d: 0x402cae20, 0x15e5e: 0xe0000962, 0x15e5f: 0xe000095e, + 0x15e60: 0xe0000976, 0x15e61: 0xe0000972, 0x15e62: 0xe00009f4, 0x15e63: 0xe00009ef, + 0x15e64: 0x002d3a88, 0x15e65: 0x402d3a20, 0x15e66: 0xe0000bbe, 0x15e67: 0xe0000bbb, + 0x15e68: 0xe0000c99, 0x15e69: 0xe0000c96, 0x15e6a: 0xe0000e20, 0x15e6b: 0xe0000e1d, + 0x15e6c: 0xe0000e27, 0x15e6d: 0xe0000e23, 0x15e6e: 0xe0001162, 0x15e6f: 0xe000115f, + 0x15e70: 0xe0000c8d, 0x15e71: 0xf0000a0a, 0x15e72: 0xf000040a, 0x15e73: 0xf0000404, + 0x15e74: 0xe0000bac, 0x15e75: 0xe0000ba9, 0x15e76: 0x002d7888, 0x15e77: 0x00319488, + 0x15e78: 0xe0000d57, 0x15e79: 0xe0000d54, 0x15e7a: 0xe0000954, 0x15e7b: 0xe0000950, + 0x15e7c: 0xe00009ea, 0x15e7d: 0xe00009e5, 0x15e7e: 0xe0000e19, 0x15e7f: 0xe0000e15, + // Block 0x57a, offset 0x15e80 + 0x15e80: 0xe000098f, 0x15e81: 0xe000098c, 0x15e82: 0xe0000995, 0x15e83: 0xe0000992, + 0x15e84: 0xe0000b62, 0x15e85: 0xe0000b5f, 0x15e86: 0xe0000b68, 0x15e87: 0xe0000b65, + 0x15e88: 0xe0000c6c, 0x15e89: 0xe0000c69, 0x15e8a: 0xe0000c72, 0x15e8b: 0xe0000c6f, + 0x15e8c: 0xe0000e4a, 0x15e8d: 0xe0000e47, 0x15e8e: 0xe0000e50, 0x15e8f: 0xe0000e4d, + 0x15e90: 0xe0000ee8, 0x15e91: 0xe0000ee5, 0x15e92: 0xe0000eee, 0x15e93: 0xe0000eeb, + 0x15e94: 0xe0001053, 0x15e95: 0xe0001050, 0x15e96: 0xe0001059, 0x15e97: 0xe0001056, + 0x15e98: 0xe0000f61, 0x15e99: 0xe0000f5e, 0x15e9a: 0xe0000fa5, 0x15e9b: 0xe0000fa2, + 0x15e9c: 0x00312288, 0x15e9d: 0x40312220, 0x15e9e: 0xe0000bf4, 0x15e9f: 0xe0000bf1, + 0x15ea0: 0x002ebc88, 0x15ea1: 0x402c8c20, 0x15ea2: 0x002f2288, 0x15ea3: 0x402f2220, + 0x15ea4: 0x00314088, 0x15ea5: 0x40314020, 0x15ea6: 0xe000096f, 0x15ea7: 0xe000096c, + 0x15ea8: 0xe0000b32, 0x15ea9: 0xe0000b2f, 0x15eaa: 0xe0000dd9, 0x15eab: 0xe0000dd5, + 0x15eac: 0xe0000dfd, 0x15ead: 0xe0000df9, 0x15eae: 0xe0000e04, 0x15eaf: 0xe0000e01, + 0x15eb0: 0xe0000e0b, 0x15eb1: 0xe0000e07, 0x15eb2: 0xe000a9c1, 0x15eb3: 0xe000a9be, + 0x15eb4: 0x402e5e20, 0x15eb5: 0x402ed020, 0x15eb6: 0x40305a20, 0x15eb7: 0x402dd420, + 0x15eb8: 0xe0000abf, 0x15eb9: 0xe0000ec4, 0x15eba: 0x002be888, 0x15ebb: 0x002c4488, + 0x15ebc: 0x402c4420, 0x15ebd: 0x002e3888, 0x15ebe: 0x00303e88, 0x15ebf: 0x402ffc20, + // Block 0x57b, offset 0x15ec0 + 0x15ec0: 0xae603502, 0x15ec1: 0xae603202, 0x15ec2: 0xae603c02, 0x15ec3: 0xae604e02, + 0x15ec4: 0xae605b02, 0x15ec5: 0xae606302, 0x15ec6: 0xae603702, 0x15ec7: 0xcafd3e71, + 0x15ec8: 0xae604702, 0x15ec9: 0xae606402, 0x15eca: 0xae604302, 0x15ecb: 0xae604d02, + 0x15ecc: 0xae604102, 0x15ecd: 0xae605f02, 0x15ece: 0xae605f02, 0x15ecf: 0xae606502, + 0x15ed0: 0xae606602, 0x15ed1: 0xae606702, 0x15ed2: 0xae605f02, 0x15ed3: 0xae602202, + 0x15ed4: 0xae602a02, 0x15ed5: 0xae805f02, 0x15ed6: 0xadc06002, 0x15ed7: 0xadc06002, + 0x15ed8: 0xadc06002, 0x15ed9: 0xadc06002, 0x15eda: 0xae805f02, 0x15edb: 0xad806802, + 0x15edc: 0xadc06002, 0x15edd: 0xadc06002, 0x15ede: 0xadc06002, 0x15edf: 0xadc06002, + 0x15ee0: 0xadc06002, 0x15ee1: 0xaca06e02, 0x15ee2: 0xaca06f02, 0x15ee3: 0xadc07002, + 0x15ee4: 0xadc07502, 0x15ee5: 0xadc07602, 0x15ee6: 0xadc07702, 0x15ee7: 0xaca05602, + 0x15ee8: 0xaca05902, 0x15ee9: 0xadc06002, 0x15eea: 0xadc06002, 0x15eeb: 0xadc06002, + 0x15eec: 0xadc06002, 0x15eed: 0xadc07802, 0x15eee: 0xadc07902, 0x15eef: 0xadc06002, + 0x15ef0: 0xadc07a02, 0x15ef1: 0xadc07b02, 0x15ef2: 0xadc02102, 0x15ef3: 0xadc06002, + 0x15ef4: 0xa0107c02, 0x15ef5: 0xa0107d02, 0x15ef6: 0xa0106102, 0x15ef7: 0xa0106102, + 0x15ef8: 0xa0105402, 0x15ef9: 0xadc07e02, 0x15efa: 0xadc06002, 0x15efb: 0xadc06002, + 0x15efc: 0xadc06002, 0x15efd: 0xae605f02, 0x15efe: 0xae605f02, 0x15eff: 0xae605f02, + // Block 0x57c, offset 0x15f00 + 0x15f00: 0xe0000d24, 0x15f01: 0xe0000d21, 0x15f02: 0xe0000d2a, 0x15f03: 0xe0000d27, + 0x15f04: 0xe0000d69, 0x15f05: 0xe0000d66, 0x15f06: 0xe0000d7b, 0x15f07: 0xe0000d78, + 0x15f08: 0xe0000d87, 0x15f09: 0xe0000d84, 0x15f0a: 0xe0000d81, 0x15f0b: 0xe0000d7e, + 0x15f0c: 0xe0000ded, 0x15f0d: 0xe0000de9, 0x15f0e: 0xe0000df5, 0x15f0f: 0xe0000df1, + 0x15f10: 0xe0000e3d, 0x15f11: 0xe0000e39, 0x15f12: 0xe0000e35, 0x15f13: 0xe0000e31, + 0x15f14: 0xe0000ea7, 0x15f15: 0xe0000ea4, 0x15f16: 0xe0000ead, 0x15f17: 0xe0000eaa, + 0x15f18: 0xe0000ed6, 0x15f19: 0xe0000ed3, 0x15f1a: 0xe0000ef4, 0x15f1b: 0xe0000ef1, + 0x15f1c: 0xe0000efb, 0x15f1d: 0xe0000ef7, 0x15f1e: 0xe0000f02, 0x15f1f: 0xe0000eff, + 0x15f20: 0xe0000f41, 0x15f21: 0xe0000f3e, 0x15f22: 0xe0000f53, 0x15f23: 0xe0000f50, + 0x15f24: 0xe0000f26, 0x15f25: 0xe0000f22, 0x15f26: 0xe000296a, 0x15f27: 0xe0002967, + 0x15f28: 0xe0000f5a, 0x15f29: 0xe0000f56, 0x15f2a: 0xe0000f93, 0x15f2b: 0xe0000f90, + 0x15f2c: 0xe0000f9f, 0x15f2d: 0xe0000f9c, 0x15f2e: 0xe0000fb1, 0x15f2f: 0xe0000fae, + 0x15f30: 0xe0000fab, 0x15f31: 0xe0000fa8, 0x15f32: 0xe0001093, 0x15f33: 0xe0001090, + 0x15f34: 0xe000109f, 0x15f35: 0xe000109c, 0x15f36: 0xe0001099, 0x15f37: 0xe0001096, + 0x15f38: 0xe0001032, 0x15f39: 0xe000102e, 0x15f3a: 0xe000a9d3, 0x15f3b: 0xe000a9d0, + 0x15f3c: 0xe00010a9, 0x15f3d: 0xe00010a6, 0x15f3e: 0xe00010af, 0x15f3f: 0xe00010ac, + // Block 0x57d, offset 0x15f40 + 0x15f40: 0xe00010d2, 0x15f41: 0xe00010cf, 0x15f42: 0xe00010cc, 0x15f43: 0xe00010c9, + 0x15f44: 0xe00010e1, 0x15f45: 0xe00010de, 0x15f46: 0xe00010e7, 0x15f47: 0xe00010e4, + 0x15f48: 0xe00010ed, 0x15f49: 0xe00010ea, 0x15f4a: 0xe00010fc, 0x15f4b: 0xe00010f9, + 0x15f4c: 0xe00010f6, 0x15f4d: 0xe00010f3, 0x15f4e: 0xe000a9bb, 0x15f4f: 0xe000a9b8, + 0x15f50: 0xe0001141, 0x15f51: 0xe000113e, 0x15f52: 0xe0001153, 0x15f53: 0xe0001150, + 0x15f54: 0xe0001159, 0x15f55: 0xe0001156, 0x15f56: 0xe0000c15, 0x15f57: 0xe0000f8d, + 0x15f58: 0xe00010db, 0x15f59: 0xe000a9a9, 0x15f5a: 0xf0000404, 0x15f5b: 0xe0000f70, + 0x15f5c: 0x40300420, 0x15f5d: 0x40300620, 0x15f5e: 0xe0000f7f, 0x15f5f: 0x402c9620, + 0x15f60: 0xe000099b, 0x15f61: 0xe0000998, 0x15f62: 0xe0000989, 0x15f63: 0xe0000986, + 0x15f64: 0xe0000928, 0x15f65: 0xe0000924, 0x15f66: 0xe0000930, 0x15f67: 0xe000092c, + 0x15f68: 0xe0000940, 0x15f69: 0xe000093c, 0x15f6a: 0xe0000938, 0x15f6b: 0xe0000934, + 0x15f6c: 0xe00009aa, 0x15f6d: 0xe00009a6, 0x15f6e: 0xe0000902, 0x15f6f: 0xe00008fe, + 0x15f70: 0xe000090a, 0x15f71: 0xe0000906, 0x15f72: 0xe000091a, 0x15f73: 0xe0000916, + 0x15f74: 0xe0000912, 0x15f75: 0xe000090e, 0x15f76: 0xe00009a2, 0x15f77: 0xe000099e, + 0x15f78: 0xe0000b6e, 0x15f79: 0xe0000b6b, 0x15f7a: 0xe0000b5c, 0x15f7b: 0xe0000b59, + 0x15f7c: 0xe0000b26, 0x15f7d: 0xe0000b23, 0x15f7e: 0xe0000afb, 0x15f7f: 0xe0000af7, + // Block 0x57e, offset 0x15f80 + 0x15f80: 0xe0000b03, 0x15f81: 0xe0000aff, 0x15f82: 0xe0000b13, 0x15f83: 0xe0000b0f, + 0x15f84: 0xe0000b0b, 0x15f85: 0xe0000b07, 0x15f86: 0xe0000b75, 0x15f87: 0xe0000b71, + 0x15f88: 0xe0000c66, 0x15f89: 0xe0000c63, 0x15f8a: 0xe0000c78, 0x15f8b: 0xe0000c75, + 0x15f8c: 0xe0000e84, 0x15f8d: 0xe0000e81, 0x15f8e: 0xe0000e44, 0x15f8f: 0xe0000e41, + 0x15f90: 0xe0000dad, 0x15f91: 0xe0000da9, 0x15f92: 0xe0000db5, 0x15f93: 0xe0000db1, + 0x15f94: 0xe0000dc5, 0x15f95: 0xe0000dc1, 0x15f96: 0xe0000dbd, 0x15f97: 0xe0000db9, + 0x15f98: 0xe0000e8b, 0x15f99: 0xe0000e87, 0x15f9a: 0xe0000e5d, 0x15f9b: 0xe0000e59, + 0x15f9c: 0xe0000e65, 0x15f9d: 0xe0000e61, 0x15f9e: 0xe0000e75, 0x15f9f: 0xe0000e71, + 0x15fa0: 0xe0000e6d, 0x15fa1: 0xe0000e69, 0x15fa2: 0xe0000e7d, 0x15fa3: 0xe0000e79, + 0x15fa4: 0xe000108d, 0x15fa5: 0xe000108a, 0x15fa6: 0xe000104d, 0x15fa7: 0xe000104a, + 0x15fa8: 0xe0001066, 0x15fa9: 0xe0001062, 0x15faa: 0xe000106e, 0x15fab: 0xe000106a, + 0x15fac: 0xe000107e, 0x15fad: 0xe000107a, 0x15fae: 0xe0001076, 0x15faf: 0xe0001072, + 0x15fb0: 0xe0001086, 0x15fb1: 0xe0001082, 0x15fb2: 0xe000a9a0, 0x15fb3: 0xe000a99d, + 0x15fb4: 0xe000a9cd, 0x15fb5: 0xe000a9ca, 0x15fb6: 0xe000a9c7, 0x15fb7: 0xe000a9c4, + 0x15fb8: 0xe000a9b5, 0x15fb9: 0xe000a9b2, 0x15fba: 0xe0000d0a, 0x15fbb: 0xe0000d07, + 0x15fbc: 0x0030d888, 0x15fbd: 0x4030d820, 0x15fbe: 0x00312088, 0x15fbf: 0x40312020, + // Block 0x57f, offset 0x15fc0 + 0x15fc0: 0xe0000024, 0x15fc1: 0xe0000029, 0x15fc2: 0xe000002e, 0x15fc3: 0xe0000033, + 0x15fc4: 0xe0000038, 0x15fc5: 0xe000003d, 0x15fc6: 0xe0000042, 0x15fc7: 0xe0000047, + 0x15fc8: 0xf0001f04, 0x15fc9: 0xf0001f04, 0x15fca: 0xf0001f04, 0x15fcb: 0xf0001f04, + 0x15fcc: 0xf0001f04, 0x15fcd: 0xf0001f04, 0x15fce: 0xf0001f04, 0x15fcf: 0xf0001f04, + 0x15fd0: 0xf0001f04, 0x15fd1: 0xf0000404, 0x15fd2: 0xf0000404, 0x15fd3: 0xf0000404, + 0x15fd4: 0xf0000404, 0x15fd5: 0xf0000404, 0x15fd6: 0xf0000404, 0x15fd7: 0xf0000404, + 0x15fd8: 0xf0000404, 0x15fd9: 0xf0000404, 0x15fda: 0xf0000404, 0x15fdb: 0xf0000404, + 0x15fdc: 0xf0000404, 0x15fdd: 0xf0000404, 0x15fde: 0xf0000404, 0x15fdf: 0xf0000404, + 0x15fe0: 0xf0000404, 0x15fe1: 0xf0000404, 0x15fe2: 0xf0000404, 0x15fe3: 0xf0000404, + 0x15fe4: 0xf0000404, 0x15fe5: 0xf0000404, 0x15fe6: 0xf0000404, 0x15fe7: 0xf0000404, + 0x15fe8: 0xf0000404, 0x15fe9: 0xf0000404, 0x15fea: 0xf0000404, 0x15feb: 0xf0000404, + 0x15fec: 0xf0000404, 0x15fed: 0xf0000404, 0x15fee: 0xf0000404, 0x15fef: 0xf0000404, + 0x15ff0: 0xf0000404, 0x15ff1: 0xf0000404, 0x15ff2: 0xf0000404, 0x15ff3: 0xf0000404, + 0x15ff4: 0xe0002c4e, 0x15ff5: 0xf0000404, 0x15ff6: 0x002bde8c, 0x15ff7: 0x002c0a8c, + 0x15ff8: 0x002c3a8c, 0x15ff9: 0x002c628c, 0x15ffa: 0x002c988c, 0x15ffb: 0x002d088c, + 0x15ffc: 0x002d228c, 0x15ffd: 0x002d688c, 0x15ffe: 0x002d9a8c, 0x15fff: 0x002dcc8c, + // Block 0x580, offset 0x16000 + 0x16000: 0xf0001d1c, 0x16001: 0xf0001d1d, 0x16002: 0xe00009b7, 0x16003: 0xf0001c1d, + 0x16004: 0xf0001c1c, 0x16005: 0xf0001c1c, 0x16006: 0xe0000a66, 0x16007: 0xe0000a7a, + 0x16008: 0xf0001d1c, 0x16009: 0xe0003576, 0x1600a: 0xf0001c1c, 0x1600b: 0xf0001d1d, + 0x1600c: 0xf0001c1c, 0x1600d: 0xf0001d1d, 0x1600e: 0xf0001d1d, 0x1600f: 0xf0001c1c, + 0x16010: 0xf0001c1c, 0x16011: 0xf0001c1c, 0x16012: 0xe0000d0d, 0x16013: 0xf0001c1c, + 0x16014: 0xf0001c1c, 0x16015: 0xe0000d3a, 0x16016: 0xe0000d46, 0x16017: 0xf0001d1d, + 0x16018: 0xe0000eb0, 0x16019: 0xe0000eb8, 0x1601a: 0xf0001d1d, 0x1601b: 0xf0001c1c, + 0x1601c: 0xf0001c1d, 0x1601d: 0xf0001c1d, 0x1601e: 0xe00010b2, 0x1601f: 0xe00009c8, + 0x16020: 0xf0001f04, 0x16021: 0xf0001f04, 0x16022: 0xf0001f04, 0x16023: 0xf0001f04, + 0x16024: 0xf0001f04, 0x16025: 0xf0001f04, 0x16026: 0xf0001f04, 0x16027: 0xf0001f04, + 0x16028: 0xf0001f04, 0x16029: 0xf0000404, 0x1602a: 0xf0000404, 0x1602b: 0xf0000404, + 0x1602c: 0xf0000404, 0x1602d: 0xf0000404, 0x1602e: 0xf0000404, 0x1602f: 0xf0000404, + 0x16030: 0xf0000404, 0x16031: 0xf0000404, 0x16032: 0xf0000404, 0x16033: 0xf0000404, + 0x16034: 0xf0000404, 0x16035: 0xf0000404, 0x16036: 0xf0000404, 0x16037: 0xf0000404, + 0x16038: 0xf0000404, 0x16039: 0xf0000404, 0x1603a: 0xf0000404, 0x1603b: 0xf0000404, + 0x1603c: 0xf0000404, 0x1603d: 0xf0000404, 0x1603e: 0xf0000404, 0x1603f: 0xe0000bdf, + // Block 0x581, offset 0x16040 + 0x16040: 0xf0001f04, 0x16041: 0xf0001f04, 0x16042: 0xf0001f04, 0x16043: 0xf0001f04, + 0x16044: 0xf0001f04, 0x16045: 0xf0001f04, 0x16046: 0xf0001f04, 0x16047: 0xf0001f04, + 0x16048: 0xf0001f04, 0x16049: 0xf0001f04, 0x1604a: 0xf0001f04, + 0x16050: 0xf0000a04, 0x16051: 0xf0000a04, 0x16052: 0xf0000a04, 0x16053: 0xf0000a04, + 0x16054: 0xf0000a04, 0x16055: 0xf0000a04, 0x16056: 0xf0000a04, 0x16057: 0xf0000a04, + 0x16058: 0xf0000a04, 0x16059: 0xf0000a04, 0x1605a: 0xf0000a04, 0x1605b: 0xf0000a04, + 0x1605c: 0xf0000a04, 0x1605d: 0xf0000a04, 0x1605e: 0xf0000a04, 0x1605f: 0xf0000a04, + 0x16060: 0xf0000a04, 0x16061: 0xf0000a04, 0x16062: 0xf0000a04, 0x16063: 0xf0000a04, + 0x16064: 0xf0000a04, 0x16065: 0xf0000a04, 0x16066: 0xf0000a04, 0x16067: 0xf0000a04, + 0x16068: 0xe0002c52, 0x16069: 0xf0000a04, 0x1606a: 0xf0000a04, 0x1606b: 0x002c3a8c, + 0x1606c: 0x002f7a8c, 0x1606d: 0xf0000c0c, 0x1606e: 0xf0000c0c, + 0x16070: 0x002bde9d, 0x16071: 0x002c0a9d, 0x16072: 0x002c3a9d, 0x16073: 0x002c629d, + 0x16074: 0x002c989d, 0x16075: 0x002d089d, 0x16076: 0x002d229d, 0x16077: 0x002d689d, + 0x16078: 0x002d9a9d, 0x16079: 0x002dcc9d, 0x1607a: 0x002dfe9d, 0x1607b: 0x002e229d, + 0x1607c: 0x002e829d, 0x1607d: 0x002e9e9d, 0x1607e: 0x002ee29d, 0x1607f: 0x002f2c9d, + // Block 0x582, offset 0x16080 + 0x16080: 0xa0000000, 0x16081: 0xa0000000, 0x16082: 0xa0000000, 0x16083: 0xa0000000, + 0x16084: 0xa0000000, 0x16085: 0xa0000000, 0x16086: 0xa0000000, 0x16087: 0xa0000000, + 0x16088: 0xa0000000, 0x16089: 0x40020020, 0x1608a: 0x40020220, 0x1608b: 0x40020420, + 0x1608c: 0x40020620, 0x1608d: 0x40020820, 0x1608e: 0xa0000000, 0x1608f: 0xa0000000, + 0x16090: 0xa0000000, 0x16091: 0xa0000000, 0x16092: 0xa0000000, 0x16093: 0xa0000000, + 0x16094: 0xa0000000, 0x16095: 0xa0000000, 0x16096: 0xa0000000, 0x16097: 0xa0000000, + 0x16098: 0xa0000000, 0x16099: 0xa0000000, 0x1609a: 0xa0000000, 0x1609b: 0xa0000000, + 0x1609c: 0xa0000000, 0x1609d: 0xa0000000, 0x1609e: 0xa0000000, 0x1609f: 0xa0000000, + 0x160a0: 0x40021220, 0x160a1: 0x4002ba20, 0x160a2: 0x4003e020, 0x160a3: 0x4004ea20, + 0x160a4: 0x4027de20, 0x160a5: 0x4004ec20, 0x160a6: 0x4004e620, 0x160a7: 0x4003d220, + 0x160a8: 0x4003f420, 0x160a9: 0x4003f620, 0x160aa: 0x4004d820, 0x160ab: 0x40093820, + 0x160ac: 0x40024020, 0x160ad: 0x40021a20, 0x160ae: 0x4002e420, 0x160af: 0x4004e220, + 0x160b0: 0x4029cc20, 0x160b1: 0x4029ce20, 0x160b2: 0x4029d020, 0x160b3: 0x4029d220, + 0x160b4: 0x4029d420, 0x160b5: 0x4029d620, 0x160b6: 0x4029d820, 0x160b7: 0x4029da20, + 0x160b8: 0x4029dc20, 0x160b9: 0x4029de20, 0x160ba: 0x40026c20, 0x160bb: 0x40026220, + 0x160bc: 0x40094020, 0x160bd: 0x40094220, 0x160be: 0x40094420, 0x160bf: 0x4002c420, + // Block 0x583, offset 0x160c0 + 0x160c0: 0x4004d620, 0x160c1: 0x002bde88, 0x160c2: 0x002c0a88, 0x160c3: 0xcb170991, + 0x160c4: 0x002c6288, 0x160c5: 0x002c9888, 0x160c6: 0x002d0888, 0x160c7: 0xcb1b0911, + 0x160c8: 0x002d6888, 0x160c9: 0x002d9a88, 0x160ca: 0x002dcc88, 0x160cb: 0xcb1f0911, + 0x160cc: 0xcb253f03, 0x160cd: 0x002e8288, 0x160ce: 0xcb2b0911, 0x160cf: 0x002ee288, + 0x160d0: 0x002f2c88, 0x160d1: 0x002f5688, 0x160d2: 0xcb2f0911, 0x160d3: 0xcb330991, + 0x160d4: 0x00302c88, 0x160d5: 0x00306c88, 0x160d6: 0x0030be88, 0x160d7: 0x0030e288, + 0x160d8: 0x0030f688, 0x160d9: 0x00310088, 0x160da: 0xcb370991, 0x160db: 0x4003f820, + 0x160dc: 0x4004e420, 0x160dd: 0x4003fa20, 0x160de: 0x40062420, 0x160df: 0x40021620, + 0x160e0: 0x40061e20, 0x160e1: 0x402bde20, 0x160e2: 0x402c0a20, 0x160e3: 0xcb150991, + 0x160e4: 0x402c6220, 0x160e5: 0x402c9820, 0x160e6: 0x402d0820, 0x160e7: 0xcb190911, + 0x160e8: 0x402d6820, 0x160e9: 0x402d9a20, 0x160ea: 0x402dcc20, 0x160eb: 0xcb1d0911, + 0x160ec: 0xcb213f03, 0x160ed: 0x402e8220, 0x160ee: 0xcb290911, 0x160ef: 0x402ee220, + 0x160f0: 0x402f2c20, 0x160f1: 0x402f5620, 0x160f2: 0xcb2d0911, 0x160f3: 0xcb310991, + 0x160f4: 0x40302c20, 0x160f5: 0x40306c20, 0x160f6: 0x4030be20, 0x160f7: 0x4030e220, + 0x160f8: 0x4030f620, 0x160f9: 0x40310020, 0x160fa: 0xcb350991, 0x160fb: 0x4003fc20, + 0x160fc: 0x40094820, 0x160fd: 0x4003fe20, 0x160fe: 0x40094c20, 0x160ff: 0xa0000000, + // Block 0x584, offset 0x16100 + 0x16100: 0xe0000983, 0x16101: 0xe0000980, 0x16102: 0xe00008fb, 0x16103: 0xe00008f8, + 0x16104: 0xe000097d, 0x16105: 0xe000097a, 0x16106: 0xe0000a38, 0x16107: 0xe0000a35, + 0x16108: 0xe0000a3e, 0x16109: 0xe0000a3b, 0x1610a: 0xe0000a4a, 0x1610b: 0xe0000a47, + 0x1610c: 0x002c6083, 0x1610d: 0x402c6020, 0x1610e: 0xe0000a86, 0x1610f: 0xe0000a83, + 0x16110: 0xe0000aaa, 0x16111: 0xe0000aa7, 0x16112: 0xe0000b46, 0x16113: 0xe0000b43, + 0x16114: 0xe0000aee, 0x16115: 0xe0000aeb, 0x16116: 0xe0000b2c, 0x16117: 0xe0000b29, + 0x16118: 0xe0000b40, 0x16119: 0xe0000b3d, 0x1611a: 0xe0000b1a, 0x1611b: 0xe0000b17, + 0x1611c: 0xe0000bb8, 0x1611d: 0xe0000bb5, 0x1611e: 0xe0000bb2, 0x1611f: 0xe0000baf, + 0x16120: 0xe0000bc4, 0x16121: 0xe0000bc1, 0x16122: 0x002d6683, 0x16123: 0x402d6620, + 0x16124: 0xe0000bee, 0x16125: 0xe0000beb, 0x16126: 0xe0000c1b, 0x16127: 0xe0000c18, + 0x16128: 0xe0000c51, 0x16129: 0xe0000c4e, 0x1612a: 0xe0000c60, 0x1612b: 0xe0000c5d, + 0x1612c: 0xe0000c31, 0x1612d: 0xe0000c2e, 0x1612e: 0xe0000c5a, 0x1612f: 0xe0000c57, + 0x16130: 0xe0000c54, 0x16131: 0x402da220, 0x16132: 0xf0000a0a, 0x16133: 0xf0000404, + 0x16134: 0xe0000c8a, 0x16135: 0xe0000c87, 0x16136: 0x002e2083, 0x16137: 0x402e2020, + 0x16138: 0x402f7220, 0x16139: 0xe0000ccc, 0x1613a: 0xe0000cc9, 0x1613b: 0x002e8083, + 0x1613c: 0x402e8020, 0x1613d: 0xe0000cd2, 0x1613e: 0xe0000ccf, 0x1613f: 0xe0000d04, + // Block 0x585, offset 0x16140 + 0x16140: 0xe0000cfe, 0x16141: 0xe0000cf8, 0x16142: 0xe0000cf5, 0x16143: 0xe0000d51, + 0x16144: 0xe0000d4e, 0x16145: 0x002ee083, 0x16146: 0x402ee020, 0x16147: 0xe0000d5d, + 0x16148: 0xe0000d5a, 0x16149: 0xf0000404, 0x1614a: 0x002eda88, 0x1614b: 0x402eda20, + 0x1614c: 0xe0000e2e, 0x1614d: 0xe0000e2b, 0x1614e: 0xe0000da0, 0x1614f: 0xe0000d9d, + 0x16150: 0xe0000de0, 0x16151: 0xe0000ddd, 0x16152: 0xe0000e93, 0x16153: 0xe0000e8f, + 0x16154: 0xe0000eca, 0x16155: 0xe0000ec7, 0x16156: 0x002fe483, 0x16157: 0x402fe420, + 0x16158: 0xe0000ed0, 0x16159: 0xe0000ecd, 0x1615a: 0xe0000f1f, 0x1615b: 0xe0000f1c, + 0x1615c: 0xe0000f2d, 0x1615d: 0xe0000f2a, 0x1615e: 0xe0000f47, 0x1615f: 0xe0000f44, + 0x16160: 0x00302a83, 0x16161: 0x40302a20, 0x16162: 0xe0000f99, 0x16163: 0xe0000f96, + 0x16164: 0xe0000f8a, 0x16165: 0xe0000f87, 0x16166: 0x00303688, 0x16167: 0x40303620, + 0x16168: 0xe000102b, 0x16169: 0xe0001028, 0x1616a: 0xe000103f, 0x1616b: 0xe000103c, + 0x1616c: 0xe0000fe7, 0x1616d: 0xe0000fe4, 0x1616e: 0xe0000ff9, 0x1616f: 0xe0000ff6, + 0x16170: 0xe0001025, 0x16171: 0xe0001022, 0x16172: 0xe0001039, 0x16173: 0xe0001036, + 0x16174: 0xe00010d8, 0x16175: 0xe00010d5, 0x16176: 0xe000110e, 0x16177: 0xe000110b, + 0x16178: 0xe0001117, 0x16179: 0xe000113b, 0x1617a: 0xe0001138, 0x1617b: 0xe000114d, + 0x1617c: 0xe000114a, 0x1617d: 0x00316283, 0x1617e: 0x40316220, 0x1617f: 0xe0000f64, + // Block 0x586, offset 0x16180 + 0x16180: 0xe0000d24, 0x16181: 0xe0000d21, 0x16182: 0xe0000d2a, 0x16183: 0xe0000d27, + 0x16184: 0xe0000d69, 0x16185: 0xe0000d66, 0x16186: 0xe0000d7b, 0x16187: 0xe0000d78, + 0x16188: 0xe0000d87, 0x16189: 0xe0000d84, 0x1618a: 0xe0000d81, 0x1618b: 0xe0000d7e, + 0x1618c: 0xe0000ded, 0x1618d: 0xe0000de9, 0x1618e: 0xe0000df5, 0x1618f: 0xe0000df1, + 0x16190: 0xe0000e3d, 0x16191: 0xe0000e39, 0x16192: 0xe0000e35, 0x16193: 0xe0000e31, + 0x16194: 0xe0000ea7, 0x16195: 0xe0000ea4, 0x16196: 0xe0000ead, 0x16197: 0xe0000eaa, + 0x16198: 0xe0000ed6, 0x16199: 0xe0000ed3, 0x1619a: 0xe0000ef4, 0x1619b: 0xe0000ef1, + 0x1619c: 0xe0000efb, 0x1619d: 0xe0000ef7, 0x1619e: 0xe0000f02, 0x1619f: 0xe0000eff, + 0x161a0: 0xe0000f41, 0x161a1: 0xe0000f3e, 0x161a2: 0xe0000f53, 0x161a3: 0xe0000f50, + 0x161a4: 0xe0000f26, 0x161a5: 0xe0000f22, 0x161a6: 0xe000a9d9, 0x161a7: 0xe000a9d6, + 0x161a8: 0xe0000f5a, 0x161a9: 0xe0000f56, 0x161aa: 0xe0000f93, 0x161ab: 0xe0000f90, + 0x161ac: 0xe0000f9f, 0x161ad: 0xe0000f9c, 0x161ae: 0xe0000fb1, 0x161af: 0xe0000fae, + 0x161b0: 0xe0000fab, 0x161b1: 0xe0000fa8, 0x161b2: 0xe0001093, 0x161b3: 0xe0001090, + 0x161b4: 0xe000109f, 0x161b5: 0xe000109c, 0x161b6: 0xe0001099, 0x161b7: 0xe0001096, + 0x161b8: 0xe0001032, 0x161b9: 0xe000102e, 0x161ba: 0xe0001046, 0x161bb: 0xe0001042, + 0x161bc: 0xe00010a9, 0x161bd: 0xe00010a6, 0x161be: 0xe00010af, 0x161bf: 0xe00010ac, + // Block 0x587, offset 0x161c0 + 0x161c2: 0xe000a9f1, 0x161c3: 0xa000f402, + 0x161c5: 0x40440220, 0x161c6: 0x40440420, 0x161c7: 0x40440620, + 0x161c8: 0x40440820, 0x161c9: 0x40440a20, 0x161ca: 0x40440c20, 0x161cb: 0x40440e20, + 0x161cc: 0x40441220, 0x161ce: 0x40441620, 0x161cf: 0x40441820, + 0x161d0: 0x40441a20, 0x161d2: 0x40441c20, 0x161d3: 0x40441e20, + 0x161d4: 0x40442020, 0x161d5: 0xcb393f61, 0x161d6: 0x40442420, 0x161d7: 0x40442620, + 0x161d8: 0x40442820, 0x161d9: 0x40442a20, 0x161da: 0x40442c20, 0x161db: 0x40442e20, + 0x161dc: 0x40443020, 0x161dd: 0x40443220, 0x161de: 0x40443420, 0x161df: 0x40443620, + 0x161e0: 0x40443820, 0x161e1: 0x40443a20, 0x161e2: 0x40443c20, 0x161e3: 0xcb3b3fc1, + 0x161e4: 0x40444020, 0x161e5: 0x40444220, 0x161e6: 0x40444420, 0x161e7: 0x40444620, + 0x161e8: 0xcb3f3f61, 0x161e9: 0x40444a20, 0x161ea: 0x40444c20, 0x161eb: 0x40444e20, + 0x161ec: 0x40445020, 0x161ed: 0x40445220, 0x161ee: 0x40445420, 0x161ef: 0x40445620, + 0x161f0: 0xcb413f61, 0x161f1: 0x40446a20, 0x161f2: 0xcb433f61, 0x161f3: 0xcb453f61, + 0x161f4: 0x40446820, 0x161f5: 0x40445c20, 0x161f6: 0x40445e20, 0x161f7: 0x40446020, + 0x161f8: 0x40446220, 0x161f9: 0x40446420, 0x161fa: 0x40446c20, + 0x161fd: 0xa000f502, 0x161fe: 0x40447020, 0x161ff: 0x40447220, + // Block 0x588, offset 0x16200 + 0x16200: 0x40447420, 0x16201: 0x40447620, 0x16202: 0x40447820, 0x16203: 0x40447a20, + 0x16204: 0x40447c20, 0x16206: 0xcb4703b1, 0x16207: 0xc0760401, + 0x16208: 0x40448620, 0x1620a: 0x40448820, 0x1620b: 0x40448a20, + 0x1620c: 0x00448c83, 0x1620d: 0x82092248, 0x1620e: 0xe000186c, + 0x16217: 0x40448c20, + 0x16220: 0x40441020, 0x16221: 0x40441420, 0x16222: 0x40447e20, 0x16223: 0x40448020, + 0x16226: 0xe0000185, 0x16227: 0xe0000216, + 0x16228: 0xe0000331, 0x16229: 0xe000040b, 0x1622a: 0xe00004e0, 0x1622b: 0xe00005aa, + 0x1622c: 0xe0000675, 0x1622d: 0xe000071d, 0x1622e: 0xe00007c9, 0x1622f: 0xe000086e, + 0x16230: 0x40285a20, 0x16231: 0x40285c20, 0x16232: 0x40285e20, 0x16233: 0x40286020, + 0x16234: 0x40286220, 0x16235: 0x40286420, + 0x16239: 0x40074e20, 0x1623a: 0xe000a9e5, 0x1623b: 0xcb3d4031, + 0x1623c: 0xe000a9f7, 0x1623d: 0xe000a9fd, 0x1623e: 0xe000aa03, 0x1623f: 0xe000a9df, + // Block 0x589, offset 0x16240 + 0x16240: 0xa000f202, 0x16241: 0x403fba21, 0x16242: 0x403fba20, 0x16243: 0x403fbc20, + 0x16244: 0x403fbc20, 0x16245: 0x403fbe20, 0x16246: 0x403fc020, 0x16247: 0x403fcc20, + 0x16248: 0x403fce20, 0x16249: 0x403fd020, 0x1624a: 0x403fd220, 0x1624b: 0x403fd420, + 0x1624c: 0x403fd820, 0x1624d: 0x403fdc20, 0x1624e: 0x403fde20, 0x1624f: 0x403fe020, + 0x16250: 0x403fe220, 0x16251: 0x403fe420, 0x16252: 0x403fe620, 0x16253: 0x403fe820, + 0x16254: 0x403fea20, 0x16255: 0xcaac3be1, 0x16256: 0x403fee20, 0x16257: 0x403ff020, + 0x16258: 0x403ff420, 0x16259: 0x403ff620, 0x1625a: 0x403ff820, 0x1625b: 0x403ffa20, + 0x1625c: 0xcb4a4061, 0x1625d: 0x40400220, 0x1625e: 0x40400420, 0x1625f: 0x40400620, + 0x16260: 0x40400820, 0x16261: 0x40400a20, 0x16262: 0x40400e20, 0x16263: 0x40401020, + 0x16264: 0x40401220, 0x16265: 0x40401420, 0x16266: 0x40401620, 0x16267: 0x40401820, + 0x16268: 0x40401a20, 0x16269: 0xe0001830, 0x1626a: 0x40401c20, 0x1626b: 0x40401e20, + 0x1626c: 0x40402020, 0x1626d: 0x40402420, 0x1626e: 0x40402620, 0x1626f: 0x40402820, + 0x16270: 0x40402c20, 0x16271: 0xe0001839, 0x16272: 0x40402e20, 0x16273: 0x40403c20, + 0x16274: 0xe000a994, 0x16275: 0x40403220, 0x16276: 0x40403420, 0x16277: 0x40403620, + 0x16278: 0x40403820, 0x16279: 0x40403a20, 0x1627a: 0x40404c20, 0x1627b: 0x40404e20, + 0x1627c: 0xa070f102, 0x1627d: 0x40403c20, 0x1627e: 0x40404a20, 0x1627f: 0x40405620, + // Block 0x58a, offset 0x16280 + 0x16280: 0xa0000000, 0x16281: 0xa0000000, 0x16282: 0xa0000000, 0x16283: 0xa0000000, + 0x16284: 0xa0000000, 0x16285: 0xa0000000, 0x16286: 0xa0000000, 0x16287: 0xa0000000, + 0x16288: 0xa0000000, 0x16289: 0x40020020, 0x1628a: 0x40020220, 0x1628b: 0x40020420, + 0x1628c: 0x40020620, 0x1628d: 0x40020820, 0x1628e: 0xa0000000, 0x1628f: 0xa0000000, + 0x16290: 0xa0000000, 0x16291: 0xa0000000, 0x16292: 0xa0000000, 0x16293: 0xa0000000, + 0x16294: 0xa0000000, 0x16295: 0xa0000000, 0x16296: 0xa0000000, 0x16297: 0xa0000000, + 0x16298: 0xa0000000, 0x16299: 0xa0000000, 0x1629a: 0xa0000000, 0x1629b: 0xa0000000, + 0x1629c: 0xa0000000, 0x1629d: 0xa0000000, 0x1629e: 0xa0000000, 0x1629f: 0xa0000000, + 0x162a0: 0x40021220, 0x162a1: 0x4002ba20, 0x162a2: 0x4003e020, 0x162a3: 0x4004ea20, + 0x162a4: 0x4027de20, 0x162a5: 0x4004ec20, 0x162a6: 0x4004e620, 0x162a7: 0x4003d220, + 0x162a8: 0x4003f420, 0x162a9: 0x4003f620, 0x162aa: 0x4004d820, 0x162ab: 0x40093820, + 0x162ac: 0x40024020, 0x162ad: 0x40021a20, 0x162ae: 0x4002e420, 0x162af: 0x4004e220, + 0x162b0: 0x4029cc20, 0x162b1: 0x4029ce20, 0x162b2: 0x4029d020, 0x162b3: 0x4029d220, + 0x162b4: 0x4029d420, 0x162b5: 0x4029d620, 0x162b6: 0x4029d820, 0x162b7: 0x4029da20, + 0x162b8: 0x4029dc20, 0x162b9: 0x4029de20, 0x162ba: 0x40026c20, 0x162bb: 0x40026220, + 0x162bc: 0x40094020, 0x162bd: 0x40094220, 0x162be: 0x40094420, 0x162bf: 0x4002c420, + // Block 0x58b, offset 0x162c0 + 0x162c0: 0x4004d620, 0x162c1: 0x002bde88, 0x162c2: 0x002c0a88, 0x162c3: 0xcb4c0931, + 0x162c4: 0x002c6288, 0x162c5: 0x002c9888, 0x162c6: 0x002d0888, 0x162c7: 0xcb5040c2, + 0x162c8: 0x002d6888, 0x162c9: 0x002d9a88, 0x162ca: 0x002dcc88, 0x162cb: 0x002dfe88, + 0x162cc: 0xc0030002, 0x162cd: 0x002e8288, 0x162ce: 0x002e9e88, 0x162cf: 0x002ee288, + 0x162d0: 0x002f2c88, 0x162d1: 0x002f5688, 0x162d2: 0x002f7a88, 0x162d3: 0x002fe688, + 0x162d4: 0x00302c88, 0x162d5: 0x00306c88, 0x162d6: 0x0030be88, 0x162d7: 0x0030e288, + 0x162d8: 0x0030f688, 0x162d9: 0x00310088, 0x162da: 0xcb580931, 0x162db: 0x4003f820, + 0x162dc: 0x4004e420, 0x162dd: 0x4003fa20, 0x162de: 0x40062420, 0x162df: 0x40021620, + 0x162e0: 0x40061e20, 0x162e1: 0x402bde20, 0x162e2: 0x402c0a20, 0x162e3: 0xcb4e0931, + 0x162e4: 0x402c6220, 0x162e5: 0x402c9820, 0x162e6: 0x402d0820, 0x162e7: 0xcb5440c2, + 0x162e8: 0x402d6820, 0x162e9: 0x402d9a20, 0x162ea: 0x402dcc20, 0x162eb: 0x402dfe20, + 0x162ec: 0xc0000002, 0x162ed: 0x402e8220, 0x162ee: 0x402e9e20, 0x162ef: 0x402ee220, + 0x162f0: 0x402f2c20, 0x162f1: 0x402f5620, 0x162f2: 0x402f7a20, 0x162f3: 0x402fe620, + 0x162f4: 0x40302c20, 0x162f5: 0x40306c20, 0x162f6: 0x4030be20, 0x162f7: 0x4030e220, + 0x162f8: 0x4030f620, 0x162f9: 0x40310020, 0x162fa: 0xcb5a0931, 0x162fb: 0x4003fc20, + 0x162fc: 0x40094820, 0x162fd: 0x4003fe20, 0x162fe: 0x40094c20, 0x162ff: 0xa0000000, + // Block 0x58c, offset 0x16300 + 0x16300: 0xe0000983, 0x16301: 0xe0000980, 0x16302: 0xe00008fb, 0x16303: 0xe00008f8, + 0x16304: 0xe000097d, 0x16305: 0xe000097a, 0x16306: 0xe0000a38, 0x16307: 0xe0000a35, + 0x16308: 0xe0000a3e, 0x16309: 0xe0000a3b, 0x1630a: 0x402c3820, 0x1630b: 0x002c3883, + 0x1630c: 0xe0000a44, 0x1630d: 0xe0000a41, 0x1630e: 0xe0000a86, 0x1630f: 0xe0000a83, + 0x16310: 0xe0000aaa, 0x16311: 0xe0000aa7, 0x16312: 0xe0000b46, 0x16313: 0xe0000b43, + 0x16314: 0xe0000aee, 0x16315: 0xe0000aeb, 0x16316: 0xe0000b2c, 0x16317: 0xe0000b29, + 0x16318: 0xe0000b40, 0x16319: 0xe0000b3d, 0x1631a: 0xe0000b1a, 0x1631b: 0xe0000b17, + 0x1631c: 0xe0000bb8, 0x1631d: 0xe0000bb5, 0x1631e: 0xe0000bb2, 0x1631f: 0xe0000baf, + 0x16320: 0x402d2020, 0x16321: 0x002d2083, 0x16322: 0xe0000bca, 0x16323: 0xe0000bc7, + 0x16324: 0xe0000bee, 0x16325: 0xe0000beb, 0x16326: 0x402d9820, 0x16327: 0x002d9883, + 0x16328: 0xe0000c51, 0x16329: 0xe0000c4e, 0x1632a: 0xe0000c60, 0x1632b: 0xe0000c5d, + 0x1632c: 0xe0000c31, 0x1632d: 0xe0000c2e, 0x1632e: 0xe0000c5a, 0x1632f: 0xe0000c57, + 0x16330: 0xe0000c54, 0x16331: 0x402da220, 0x16332: 0xf0000a0a, 0x16333: 0xf0000404, + 0x16334: 0xe0000c8a, 0x16335: 0xe0000c87, 0x16336: 0xe0000c9f, 0x16337: 0xe0000c9c, + 0x16338: 0x402f7220, 0x16339: 0xe0000ccc, 0x1633a: 0xe0000cc9, 0x1633b: 0xe0000cd8, + 0x1633c: 0xe0000cd5, 0x1633d: 0xe0000cd2, 0x1633e: 0xe0000ccf, 0x1633f: 0xe0000d04, + // Block 0x58d, offset 0x16340 + 0x16340: 0xe0000cfe, 0x16341: 0xe0000cf8, 0x16342: 0xe0000cf5, 0x16343: 0xe0000d51, + 0x16344: 0xe0000d4e, 0x16345: 0xe0000d6f, 0x16346: 0xe0000d6c, 0x16347: 0xe0000d5d, + 0x16348: 0xe0000d5a, 0x16349: 0xf0000404, 0x1634a: 0x002eda88, 0x1634b: 0x402eda20, + 0x1634c: 0xe0000e2e, 0x1634d: 0xe0000e2b, 0x1634e: 0xe0000da0, 0x1634f: 0xe0000d9d, + 0x16350: 0xe0000de0, 0x16351: 0xe0000ddd, 0x16352: 0xe0000e93, 0x16353: 0xe0000e8f, + 0x16354: 0xe0000eca, 0x16355: 0xe0000ec7, 0x16356: 0xe0000edc, 0x16357: 0xe0000ed9, + 0x16358: 0xe0000ed0, 0x16359: 0xe0000ecd, 0x1635a: 0xe0000f1f, 0x1635b: 0xe0000f1c, + 0x1635c: 0xe0000f2d, 0x1635d: 0xe0000f2a, 0x1635e: 0xe0000f47, 0x1635f: 0xe0000f44, + 0x16360: 0xe0000f33, 0x16361: 0xe0000f30, 0x16362: 0xe0000f99, 0x16363: 0xe0000f96, + 0x16364: 0xe0000f8a, 0x16365: 0xe0000f87, 0x16366: 0x00303688, 0x16367: 0x40303620, + 0x16368: 0xe000102b, 0x16369: 0xe0001028, 0x1636a: 0xe000103f, 0x1636b: 0xe000103c, + 0x1636c: 0xe0000fe7, 0x1636d: 0xe0000fe4, 0x1636e: 0xe0000ff9, 0x1636f: 0xe0000ff6, + 0x16370: 0xe0001025, 0x16371: 0xe0001022, 0x16372: 0xe0001039, 0x16373: 0xe0001036, + 0x16374: 0xe00010d8, 0x16375: 0xe00010d5, 0x16376: 0xe000110e, 0x16377: 0xe000110b, + 0x16378: 0xe0001117, 0x16379: 0xe000113b, 0x1637a: 0xe0001138, 0x1637b: 0x40312820, + 0x1637c: 0x00312883, 0x1637d: 0xe0001147, 0x1637e: 0xe0001144, 0x1637f: 0xe0000f64, + // Block 0x58e, offset 0x16380 + 0x16380: 0xe00009bc, 0x16381: 0xe00009c0, 0x16382: 0x002c3a8b, 0x16383: 0xf0000a04, + 0x16384: 0x40081c20, 0x16385: 0xe0000a5e, 0x16386: 0xe0000a62, 0x16387: 0x002cc28a, + 0x16388: 0x40081e20, 0x16389: 0xf0000a04, 0x1638a: 0x002d2285, 0x1638b: 0x002d688b, + 0x1638c: 0x002d688b, 0x1638d: 0x002d688b, 0x1638e: 0x002d6885, 0x1638f: 0xe000aa06, + 0x16390: 0x002d9a8b, 0x16391: 0x002d9a8b, 0x16392: 0x002e228b, 0x16393: 0x002e2285, + 0x16394: 0x40082020, 0x16395: 0x002e9e8b, 0x16396: 0xf000040a, 0x16397: 0x40082220, + 0x16398: 0x40082420, 0x16399: 0x002f2c8b, 0x1639a: 0x002f568b, 0x1639b: 0x002f7a8b, + 0x1639c: 0x002f7a8b, 0x1639d: 0x002f7a8b, 0x1639e: 0x40082620, 0x1639f: 0x40082820, + 0x163a0: 0xf0001414, 0x163a1: 0xe0000fbd, 0x163a2: 0xf0001414, 0x163a3: 0x40082a20, + 0x163a4: 0x00312a8b, 0x163a5: 0x40082c20, 0x163a6: 0x0032a288, 0x163a7: 0x40082e20, + 0x163a8: 0x00312a8b, 0x163a9: 0x40083020, 0x163aa: 0x002dfe88, 0x163ab: 0xe000094d, + 0x163ac: 0x002c0a8b, 0x163ad: 0x002c3a8b, 0x163ae: 0x40083220, 0x163af: 0x002c9885, + 0x163b0: 0x002c988b, 0x163b1: 0x002d088b, 0x163b2: 0x002d1e88, 0x163b3: 0x002e828b, + 0x163b4: 0x002ee285, 0x163b5: 0x00389084, 0x163b6: 0x00389284, 0x163b7: 0x00389484, + 0x163b8: 0x00389684, 0x163b9: 0x002d9a85, 0x163ba: 0x40083420, 0x163bb: 0xe0000b95, + 0x163bc: 0x00327e85, 0x163bd: 0x00325685, 0x163be: 0x0032568b, 0x163bf: 0x00327e8b, + // Block 0x58f, offset 0x163c0 + 0x163f8: 0xe000aa09, 0x163f9: 0xe0000e97, 0x163fa: 0x4030a820, 0x163fb: 0x402d2020, + 0x163fc: 0x402f4a20, 0x163fd: 0x402e9820, 0x163fe: 0x402db220, 0x163ff: 0x402e9a20, + // Block 0x590, offset 0x16400 + 0x16400: 0xcd3882c1, 0x16401: 0xce0382c1, 0x16402: 0xce0682c1, 0x16403: 0xce0b82c1, + 0x16404: 0xce0e9581, 0x16405: 0xce1182c1, 0x16406: 0xce1482c1, 0x16407: 0xce1782c1, + 0x16408: 0xce1a95e1, 0x16409: 0xce1c82c1, 0x1640a: 0xce1f82c1, 0x1640b: 0xce2282c1, + 0x1640c: 0xce2582c1, 0x1640d: 0xce2882c1, 0x1640e: 0xce2b82c1, 0x1640f: 0xce2e82c1, + 0x16410: 0xce3182c1, 0x16411: 0xcb5c4101, 0x16412: 0xce3482c1, 0x16413: 0xce3782c1, + 0x16414: 0xcb604201, 0x16415: 0xce3a82c1, 0x16416: 0xce3d82c1, 0x16417: 0xce4082c1, + 0x16418: 0xce4382c1, 0x16419: 0xce4682c1, 0x1641a: 0xce4982c1, 0x1641b: 0xce4c82c1, + 0x1641c: 0xcb6442d1, 0x1641d: 0xce4f95e1, 0x1641e: 0xcb6b44d1, 0x1641f: 0xce5182c1, + 0x16420: 0xce5495e1, 0x16421: 0xce5695e1, 0x16422: 0x404ec420, 0x16423: 0xe000aa45, + 0x16424: 0xe000aa4b, 0x16425: 0xcb6f4571, 0x16426: 0xe000aa55, 0x16427: 0xe000aa58, + 0x16428: 0xe000aa5b, 0x16429: 0xcb7245e1, 0x1642a: 0xe000ad32, 0x1642b: 0xcd7c82f1, + 0x1642c: 0xcd3b82f1, 0x1642d: 0xccb17051, 0x1642e: 0x404eea20, 0x1642f: 0xcdbd8bc1, + 0x16430: 0x404ef420, 0x16431: 0xcbeb5561, 0x16432: 0x404f0620, 0x16433: 0x404eec20, + 0x16434: 0x404f0a20, 0x16435: 0x404f0220, 0x16436: 0x404f0c20, 0x16437: 0xce099551, + 0x16438: 0x404f3020, 0x16439: 0x8209278a, 0x1643a: 0x8209278b, 0x1643b: 0xce589611, + 0x1643c: 0xce5c9611, 0x1643d: 0xce609681, 0x1643e: 0x40510e20, 0x1643f: 0xe000aa41, + // Block 0x591, offset 0x16440 + 0x16440: 0xe00001ac, 0x16441: 0xe0000240, 0x16442: 0xe0000358, 0x16443: 0xe0000432, + 0x16444: 0xe0000507, 0x16445: 0xe00005d1, 0x16446: 0xe000069c, 0x16447: 0xe0000744, + 0x16448: 0xe00007f0, 0x16449: 0xe0000895, 0x1644a: 0x40032220, 0x1644b: 0x40032420, + 0x1644c: 0xe000aa19, 0x1644d: 0xe000aa20, 0x1644e: 0xcb694441, 0x1644f: 0xe000aa48, + 0x16450: 0x404ea020, 0x16451: 0x404ea220, 0x16452: 0x404ece20, 0x16453: 0x404ed020, + 0x16454: 0x404ed220, 0x16455: 0x404ed420, 0x16456: 0x404ef620, 0x16457: 0x404ef820, + 0x16458: 0x404efa20, 0x16459: 0x404efc20, 0x1645a: 0x404e2620, 0x1645b: 0x404e3c20, + 0x1645c: 0x404eb820, 0x1645d: 0x404eba20, 0x1645e: 0x40510020, 0x1645f: 0x40510220, + 0x16460: 0x40510820, 0x16461: 0x404e4020, 0x16462: 0x404f0c20, 0x16463: 0x404f1820, + 0x16464: 0x404f1a20, 0x16465: 0x404ea420, 0x16466: 0x404ec020, 0x16467: 0x404f0e20, + 0x16468: 0x404f1020, 0x16469: 0x404f1c20, 0x1646a: 0x404f1e20, 0x1646b: 0x404f2020, + 0x1646c: 0x404f2220, 0x1646d: 0x404f2420, 0x1646e: 0x404e5c20, 0x1646f: 0x404ebc20, + 0x16470: 0x404ebe20, 0x16471: 0x404ee820, 0x16472: 0x404ee220, 0x16473: 0x404ef020, + 0x16474: 0x404ef220, 0x16475: 0x404e1620, 0x16476: 0x404e1a20, 0x16477: 0x404e1e20, + 0x16478: 0x404e2a20, 0x16479: 0x404e3620, 0x1647a: 0x404e4420, 0x1647b: 0x404e6420, + 0x1647c: 0x404e6c20, 0x1647d: 0x404e7620, 0x1647e: 0x404e7820, 0x1647f: 0x404e8020, + // Block 0x592, offset 0x16480 + 0x16480: 0x404e9e20, 0x16481: 0x404eac20, 0x16482: 0x40510c20, 0x16483: 0x404ee020, + 0x16484: 0x404f0020, 0x16485: 0x404f0420, 0x16486: 0x404f1220, 0x16487: 0x404f2620, + 0x16488: 0x404f2a20, 0x16489: 0x404f2e20, 0x1648a: 0x404f3020, 0x1648b: 0x404f2820, + 0x1648c: 0x404f2c20, 0x1648d: 0xadc11302, 0x1648e: 0x404e7c20, 0x1648f: 0x404f3220, + 0x16490: 0xe00001af, 0x16491: 0xe0000243, 0x16492: 0xe000035b, 0x16493: 0xe0000435, + 0x16494: 0xe000050a, 0x16495: 0xe00005d4, 0x16496: 0xe000069f, 0x16497: 0xe0000747, + 0x16498: 0xe00007f3, 0x16499: 0xe0000898, 0x1649a: 0x404f3420, 0x1649b: 0x404f3620, + 0x1649c: 0x404ee420, 0x1649d: 0x404f0820, 0x1649e: 0x4007a820, 0x1649f: 0x4007aa20, + 0x164a0: 0x00379888, 0x164a1: 0x00379c88, 0x164a2: 0x0037a088, 0x164a3: 0x0037a488, + 0x164a4: 0x0037a888, 0x164a5: 0x0037ac88, 0x164a6: 0x0037b088, 0x164a7: 0x0037b888, + 0x164a8: 0x0037bc88, 0x164a9: 0x0037c088, 0x164aa: 0x0037c488, 0x164ab: 0x0037c888, + 0x164ac: 0x0037cc88, 0x164ad: 0x0037d488, 0x164ae: 0x0037d888, 0x164af: 0x0037dc88, + 0x164b0: 0x0037e088, 0x164b1: 0x0037e488, 0x164b2: 0x0037e888, 0x164b3: 0x0037f088, + 0x164b4: 0x0037f488, 0x164b5: 0x0037f888, 0x164b6: 0x0037fc88, 0x164b7: 0x00380088, + 0x164b8: 0x00380488, 0x164b9: 0x00380888, 0x164ba: 0x00380c88, 0x164bb: 0x00381088, + 0x164bc: 0x00381488, 0x164bd: 0x00381888, 0x164be: 0x00381c88, 0x164bf: 0x00382488, + // Block 0x593, offset 0x164c0 + 0x164c0: 0xa0000000, 0x164c1: 0xa0000000, 0x164c2: 0xa0000000, 0x164c3: 0xa0000000, + 0x164c4: 0xa0000000, 0x164c5: 0xa0000000, 0x164c6: 0xa0000000, 0x164c7: 0xa0000000, + 0x164c8: 0xa0000000, 0x164c9: 0x40020020, 0x164ca: 0x40020220, 0x164cb: 0x40020420, + 0x164cc: 0x40020620, 0x164cd: 0x40020820, 0x164ce: 0xa0000000, 0x164cf: 0xa0000000, + 0x164d0: 0xa0000000, 0x164d1: 0xa0000000, 0x164d2: 0xa0000000, 0x164d3: 0xa0000000, + 0x164d4: 0xa0000000, 0x164d5: 0xa0000000, 0x164d6: 0xa0000000, 0x164d7: 0xa0000000, + 0x164d8: 0xa0000000, 0x164d9: 0xa0000000, 0x164da: 0xa0000000, 0x164db: 0xa0000000, + 0x164dc: 0xa0000000, 0x164dd: 0xa0000000, 0x164de: 0xa0000000, 0x164df: 0xa0000000, + 0x164e0: 0x40021220, 0x164e1: 0x4002ba20, 0x164e2: 0x4003e020, 0x164e3: 0x4004ea20, + 0x164e4: 0x4027de20, 0x164e5: 0x4004ec20, 0x164e6: 0x4004e620, 0x164e7: 0x4003d220, + 0x164e8: 0x4003f420, 0x164e9: 0x4003f620, 0x164ea: 0x4004d820, 0x164eb: 0x40093820, + 0x164ec: 0x40024020, 0x164ed: 0x40021a20, 0x164ee: 0x4002e420, 0x164ef: 0x4004e220, + 0x164f0: 0x4029cc20, 0x164f1: 0x4029ce20, 0x164f2: 0x4029d020, 0x164f3: 0x4029d220, + 0x164f4: 0x4029d420, 0x164f5: 0x4029d620, 0x164f6: 0x4029d820, 0x164f7: 0x4029da20, + 0x164f8: 0x4029dc20, 0x164f9: 0x4029de20, 0x164fa: 0x40026c20, 0x164fb: 0x40026220, + 0x164fc: 0x40094020, 0x164fd: 0x40094220, 0x164fe: 0x40094420, 0x164ff: 0x4002c420, + // Block 0x594, offset 0x16500 + 0x16500: 0x4004d620, 0x16501: 0xce660b93, 0x16502: 0x002c0a88, 0x16503: 0x002c3a88, + 0x16504: 0x002c6288, 0x16505: 0xc39e0be1, 0x16506: 0x002d0888, 0x16507: 0x002d2288, + 0x16508: 0x002d6888, 0x16509: 0x002d9a88, 0x1650a: 0x002dcc88, 0x1650b: 0x002dfe88, + 0x1650c: 0xc0030002, 0x1650d: 0x002e8288, 0x1650e: 0x002e9e88, 0x1650f: 0xc3a30b21, + 0x16510: 0x002f2c88, 0x16511: 0x002f5688, 0x16512: 0x002f7a88, 0x16513: 0x002fe688, + 0x16514: 0x00302c88, 0x16515: 0xc3900b21, 0x16516: 0x0030be88, 0x16517: 0x0030e288, + 0x16518: 0x0030f688, 0x16519: 0x00310088, 0x1651a: 0x00312a88, 0x1651b: 0x4003f820, + 0x1651c: 0x4004e420, 0x1651d: 0x4003fa20, 0x1651e: 0x40062420, 0x1651f: 0x40021620, + 0x16520: 0x40061e20, 0x16521: 0xce620b52, 0x16522: 0x402c0a20, 0x16523: 0x402c3a20, + 0x16524: 0x402c6220, 0x16525: 0xc39c0be1, 0x16526: 0x402d0820, 0x16527: 0x402d2220, + 0x16528: 0x402d6820, 0x16529: 0x402d9a20, 0x1652a: 0x402dcc20, 0x1652b: 0x402dfe20, + 0x1652c: 0xc0000002, 0x1652d: 0x402e8220, 0x1652e: 0x402e9e20, 0x1652f: 0xc3a00b21, + 0x16530: 0x402f2c20, 0x16531: 0x402f5620, 0x16532: 0x402f7a20, 0x16533: 0x402fe620, + 0x16534: 0x40302c20, 0x16535: 0xc38d0b21, 0x16536: 0x4030be20, 0x16537: 0x4030e220, + 0x16538: 0x4030f620, 0x16539: 0x40310020, 0x1653a: 0x40312a20, 0x1653b: 0x4003fc20, + 0x1653c: 0x40094820, 0x1653d: 0x4003fe20, 0x1653e: 0x40094c20, 0x1653f: 0xa0000000, + // Block 0x595, offset 0x16540 + 0x16540: 0xa0000000, 0x16541: 0xa0000000, 0x16542: 0xa0000000, 0x16543: 0xa0000000, + 0x16544: 0xa0000000, 0x16545: 0xa0000000, 0x16546: 0xa0000000, 0x16547: 0xa0000000, + 0x16548: 0xa0000000, 0x16549: 0x40020020, 0x1654a: 0x40020220, 0x1654b: 0x40020420, + 0x1654c: 0x40020620, 0x1654d: 0x40020820, 0x1654e: 0xa0000000, 0x1654f: 0xa0000000, + 0x16550: 0xa0000000, 0x16551: 0xa0000000, 0x16552: 0xa0000000, 0x16553: 0xa0000000, + 0x16554: 0xa0000000, 0x16555: 0xa0000000, 0x16556: 0xa0000000, 0x16557: 0xa0000000, + 0x16558: 0xa0000000, 0x16559: 0xa0000000, 0x1655a: 0xa0000000, 0x1655b: 0xa0000000, + 0x1655c: 0xa0000000, 0x1655d: 0xa0000000, 0x1655e: 0xa0000000, 0x1655f: 0xa0000000, + 0x16560: 0x40021220, 0x16561: 0x4002ba20, 0x16562: 0x4003e020, 0x16563: 0x4004ea20, + 0x16564: 0x4027de20, 0x16565: 0x4004ec20, 0x16566: 0x4004e620, 0x16567: 0x4003d220, + 0x16568: 0x4003f420, 0x16569: 0x4003f620, 0x1656a: 0x4004d820, 0x1656b: 0x40093820, + 0x1656c: 0x40024020, 0x1656d: 0x40021a20, 0x1656e: 0x4002e420, 0x1656f: 0x4004e220, + 0x16570: 0x4029cc20, 0x16571: 0x4029ce20, 0x16572: 0x4029d020, 0x16573: 0x4029d220, + 0x16574: 0x4029d420, 0x16575: 0x4029d620, 0x16576: 0x4029d820, 0x16577: 0x4029da20, + 0x16578: 0x4029dc20, 0x16579: 0x4029de20, 0x1657a: 0x40026c20, 0x1657b: 0x40026220, + 0x1657c: 0x40094020, 0x1657d: 0x40094220, 0x1657e: 0x40094420, 0x1657f: 0x4002c420, + // Block 0x596, offset 0x16580 + 0x16580: 0x4004d620, 0x16581: 0x002bde88, 0x16582: 0x002c0a88, 0x16583: 0x002c3a88, + 0x16584: 0x002c6288, 0x16585: 0xce6d2741, 0x16586: 0x002d0888, 0x16587: 0x002d2288, + 0x16588: 0x002d6888, 0x16589: 0x002d9a88, 0x1658a: 0x002dcc88, 0x1658b: 0x002dfe88, + 0x1658c: 0xc0030002, 0x1658d: 0x002e8288, 0x1658e: 0x002e9e88, 0x1658f: 0xc33f2741, + 0x16590: 0x002f2c88, 0x16591: 0x002f5688, 0x16592: 0x002f7a88, 0x16593: 0xc3430991, + 0x16594: 0x00302c88, 0x16595: 0x00306c88, 0x16596: 0x0030be88, 0x16597: 0x0030e288, + 0x16598: 0x0030f688, 0x16599: 0x00310088, 0x1659a: 0x00312a88, 0x1659b: 0x4003f820, + 0x1659c: 0x4004e420, 0x1659d: 0x4003fa20, 0x1659e: 0x40062420, 0x1659f: 0x40021620, + 0x165a0: 0x40061e20, 0x165a1: 0x402bde20, 0x165a2: 0x402c0a20, 0x165a3: 0x402c3a20, + 0x165a4: 0x402c6220, 0x165a5: 0xce6b2741, 0x165a6: 0x402d0820, 0x165a7: 0x402d2220, + 0x165a8: 0x402d6820, 0x165a9: 0x402d9a20, 0x165aa: 0x402dcc20, 0x165ab: 0x402dfe20, + 0x165ac: 0xc0000002, 0x165ad: 0x402e8220, 0x165ae: 0x402e9e20, 0x165af: 0xc33d2741, + 0x165b0: 0x402f2c20, 0x165b1: 0x402f5620, 0x165b2: 0x402f7a20, 0x165b3: 0xc3410991, + 0x165b4: 0x40302c20, 0x165b5: 0x40306c20, 0x165b6: 0x4030be20, 0x165b7: 0x4030e220, + 0x165b8: 0x4030f620, 0x165b9: 0x40310020, 0x165ba: 0x40312a20, 0x165bb: 0x4003fc20, + 0x165bc: 0x40094820, 0x165bd: 0x4003fe20, 0x165be: 0x40094c20, 0x165bf: 0xa0000000, + // Block 0x597, offset 0x165c0 + 0x165c0: 0xe00008f5, 0x165c1: 0xe00008ef, 0x165c2: 0xe0000921, 0x165c3: 0xe0000969, + 0x165c4: 0xe000095b, 0x165c5: 0xe000094d, 0x165c6: 0xe00009dd, 0x165c7: 0xe0000a53, + 0x165c8: 0xe0000ae8, 0x165c9: 0xe0000ae2, 0x165ca: 0x002c9a83, 0x165cb: 0xe0000b20, + 0x165cc: 0xe0000c2b, 0x165cd: 0xe0000c25, 0x165ce: 0xe0000c37, 0x165cf: 0xe0000c43, + 0x165d0: 0xe0000ab3, 0x165d1: 0xe0000d63, 0x165d2: 0xe0000d9a, 0x165d3: 0xe0000d94, + 0x165d4: 0x002ee483, 0x165d5: 0xe0000de6, 0x165d6: 0xe0000dd2, 0x165d7: 0x40093e20, + 0x165d8: 0xe0000e12, 0x165d9: 0xe0000fe1, 0x165da: 0xe0000fdb, 0x165db: 0xe0000fed, + 0x165dc: 0xe0000fff, 0x165dd: 0xe0001102, 0x165de: 0x00318888, 0x165df: 0xe0000f7b, + 0x165e0: 0xe00008f2, 0x165e1: 0xe00008ec, 0x165e2: 0xe000091e, 0x165e3: 0xe0000966, + 0x165e4: 0xe0000958, 0x165e5: 0xe000094a, 0x165e6: 0xe00009d5, 0x165e7: 0xe0000a4d, + 0x165e8: 0xe0000ae5, 0x165e9: 0xe0000adf, 0x165ea: 0x402c9a20, 0x165eb: 0xe0000b1d, + 0x165ec: 0xe0000c28, 0x165ed: 0xe0000c22, 0x165ee: 0xe0000c34, 0x165ef: 0xe0000c40, + 0x165f0: 0xe0000aad, 0x165f1: 0xe0000d60, 0x165f2: 0xe0000d97, 0x165f3: 0xe0000d91, + 0x165f4: 0x402ee420, 0x165f5: 0xe0000de3, 0x165f6: 0xe0000dcf, 0x165f7: 0x40093c20, + 0x165f8: 0xe0000e0f, 0x165f9: 0xe0000fde, 0x165fa: 0xe0000fd8, 0x165fb: 0xe0000fea, + 0x165fc: 0xe0000ffc, 0x165fd: 0xe00010ff, 0x165fe: 0x40318820, 0x165ff: 0xe0001114, + // Block 0x598, offset 0x16600 + 0x16600: 0xe0000cfe, 0x16601: 0xe0000cf8, 0x16602: 0xe0000cf5, 0x16603: 0xe0000d51, + 0x16604: 0xe0000d4e, 0x16605: 0xe0000d6f, 0x16606: 0xe0000d6c, 0x16607: 0xe0000d5d, + 0x16608: 0xe0000d5a, 0x16609: 0xf0000404, 0x1660a: 0x002eda88, 0x1660b: 0x402eda20, + 0x1660c: 0xe0000e2e, 0x1660d: 0xe0000e2b, 0x1660e: 0xe0000da0, 0x1660f: 0xe0000d9d, + 0x16610: 0xe0000de0, 0x16611: 0xe0000ddd, 0x16612: 0xe0000e93, 0x16613: 0xe0000e8f, + 0x16614: 0xe0000eca, 0x16615: 0xe0000ec7, 0x16616: 0xe0000edc, 0x16617: 0xe0000ed9, + 0x16618: 0xe0000ed0, 0x16619: 0xe0000ecd, 0x1661a: 0xe0000f1f, 0x1661b: 0xe0000f1c, + 0x1661c: 0xe0000f2d, 0x1661d: 0xe0000f2a, 0x1661e: 0xe0000f47, 0x1661f: 0xe0000f44, + 0x16620: 0x002fe883, 0x16621: 0x402fe820, 0x16622: 0xe0000f99, 0x16623: 0xe0000f96, + 0x16624: 0xe0000f8a, 0x16625: 0xe0000f87, 0x16626: 0x00303688, 0x16627: 0x40303620, + 0x16628: 0xe000102b, 0x16629: 0xe0001028, 0x1662a: 0xe000103f, 0x1662b: 0xe000103c, + 0x1662c: 0xe0000fe7, 0x1662d: 0xe0000fe4, 0x1662e: 0xe0000ff9, 0x1662f: 0xe0000ff6, + 0x16630: 0xe0001025, 0x16631: 0xe0001022, 0x16632: 0xe0001039, 0x16633: 0xe0001036, + 0x16634: 0xe00010d8, 0x16635: 0xe00010d5, 0x16636: 0xe000110e, 0x16637: 0xe000110b, + 0x16638: 0xe0001117, 0x16639: 0xe000113b, 0x1663a: 0xe0001138, 0x1663b: 0xe000114d, + 0x1663c: 0xe000114a, 0x1663d: 0xe0001147, 0x1663e: 0xe0001144, 0x1663f: 0xe0000f64, + // Block 0x599, offset 0x16640 + 0x16640: 0xe00010d2, 0x16641: 0xe00010cf, 0x16642: 0xe00010cc, 0x16643: 0xe00010c9, + 0x16644: 0xe00010e1, 0x16645: 0xe00010de, 0x16646: 0xe00010e7, 0x16647: 0xe00010e4, + 0x16648: 0xe00010ed, 0x16649: 0xe00010ea, 0x1664a: 0xe00010fc, 0x1664b: 0xe00010f9, + 0x1664c: 0xe00010f6, 0x1664d: 0xe00010f3, 0x1664e: 0xe0001123, 0x1664f: 0xe0001120, + 0x16650: 0xe0001141, 0x16651: 0xe000113e, 0x16652: 0xe0001153, 0x16653: 0xe0001150, + 0x16654: 0xe0001159, 0x16655: 0xe0001156, 0x16656: 0xe0000c15, 0x16657: 0xe0000f8d, + 0x16658: 0xe00010db, 0x16659: 0xe0001111, 0x1665a: 0xf0000404, 0x1665b: 0xe0000f70, + 0x1665c: 0x40300420, 0x1665d: 0x40300620, 0x1665e: 0xe0000f7f, 0x1665f: 0x402c9620, + 0x16660: 0xe000099b, 0x16661: 0xe0000998, 0x16662: 0xe0000989, 0x16663: 0xe0000986, + 0x16664: 0xe0000928, 0x16665: 0xe0000924, 0x16666: 0xe0000930, 0x16667: 0xe000092c, + 0x16668: 0xe0000940, 0x16669: 0xe000093c, 0x1666a: 0xe0000938, 0x1666b: 0xe0000934, + 0x1666c: 0xe00009aa, 0x1666d: 0xe00009a6, 0x1666e: 0xe0000902, 0x1666f: 0xe00008fe, + 0x16670: 0xe000090a, 0x16671: 0xe0000906, 0x16672: 0xe000091a, 0x16673: 0xe0000916, + 0x16674: 0xe0000912, 0x16675: 0xe000090e, 0x16676: 0xe00009a2, 0x16677: 0xe000099e, + 0x16678: 0xe0000b6e, 0x16679: 0xe0000b6b, 0x1667a: 0xe0000b5c, 0x1667b: 0xe0000b59, + 0x1667c: 0xe0000b26, 0x1667d: 0xe0000b23, 0x1667e: 0xe000ad41, 0x1667f: 0xe000ad3e, + // Block 0x59a, offset 0x16680 + 0x16680: 0xe000ad47, 0x16681: 0xe000ad44, 0x16682: 0xe000ad53, 0x16683: 0xe000ad50, + 0x16684: 0xe000ad4d, 0x16685: 0xe000ad4a, 0x16686: 0xe000ad59, 0x16687: 0xe000ad56, + 0x16688: 0xe0000c66, 0x16689: 0xe0000c63, 0x1668a: 0xe0000c78, 0x1668b: 0xe0000c75, + 0x1668c: 0xe0000e84, 0x1668d: 0xe0000e81, 0x1668e: 0xe0000e44, 0x1668f: 0xe0000e41, + 0x16690: 0xe000ad5f, 0x16691: 0xe000ad5c, 0x16692: 0xe000ad65, 0x16693: 0xe000ad62, + 0x16694: 0xe000ad6b, 0x16695: 0xe000ad68, 0x16696: 0xe0002946, 0x16697: 0xe0002943, + 0x16698: 0xe000ad71, 0x16699: 0xe000ad6e, 0x1669a: 0xe0000e5d, 0x1669b: 0xe0000e59, + 0x1669c: 0xe0000e65, 0x1669d: 0xe0000e61, 0x1669e: 0xe0000e75, 0x1669f: 0xe0000e71, + 0x166a0: 0xe0000e6d, 0x166a1: 0xe0000e69, 0x166a2: 0xe0000e7d, 0x166a3: 0xe0000e79, + 0x166a4: 0xe000108d, 0x166a5: 0xe000108a, 0x166a6: 0xe000104d, 0x166a7: 0xe000104a, + 0x166a8: 0xe0001066, 0x166a9: 0xe0001062, 0x166aa: 0xe000106e, 0x166ab: 0xe000106a, + 0x166ac: 0xe000107e, 0x166ad: 0xe000107a, 0x166ae: 0xe0001076, 0x166af: 0xe0001072, + 0x166b0: 0xe0001086, 0x166b1: 0xe0001082, 0x166b2: 0xe0001108, 0x166b3: 0xe0001105, + 0x166b4: 0xe0001135, 0x166b5: 0xe0001132, 0x166b6: 0xe000112f, 0x166b7: 0xe000112c, + 0x166b8: 0xe000111d, 0x166b9: 0xe000111a, 0x166ba: 0xe0000d0a, 0x166bb: 0xe0000d07, + 0x166bc: 0x0030d888, 0x166bd: 0x4030d820, 0x166be: 0x00312088, 0x166bf: 0x40312020, + // Block 0x59b, offset 0x166c0 + 0x166c0: 0xa0000000, 0x166c1: 0xa0000000, 0x166c2: 0xa0000000, 0x166c3: 0xa0000000, + 0x166c4: 0xa0000000, 0x166c5: 0xa0000000, 0x166c6: 0xa0000000, 0x166c7: 0xa0000000, + 0x166c8: 0xa0000000, 0x166c9: 0x40020020, 0x166ca: 0x40020220, 0x166cb: 0x40020420, + 0x166cc: 0x40020620, 0x166cd: 0x40020820, 0x166ce: 0xa0000000, 0x166cf: 0xa0000000, + 0x166d0: 0xa0000000, 0x166d1: 0xa0000000, 0x166d2: 0xa0000000, 0x166d3: 0xa0000000, + 0x166d4: 0xa0000000, 0x166d5: 0xa0000000, 0x166d6: 0xa0000000, 0x166d7: 0xa0000000, + 0x166d8: 0xa0000000, 0x166d9: 0xa0000000, 0x166da: 0xa0000000, 0x166db: 0xa0000000, + 0x166dc: 0xa0000000, 0x166dd: 0xa0000000, 0x166de: 0xa0000000, 0x166df: 0xa0000000, + 0x166e0: 0x40021220, 0x166e1: 0x4002ba20, 0x166e2: 0x4003e020, 0x166e3: 0x4004ea20, + 0x166e4: 0x4027de20, 0x166e5: 0x4004ec20, 0x166e6: 0x4004e620, 0x166e7: 0x4003d220, + 0x166e8: 0x4003f420, 0x166e9: 0x4003f620, 0x166ea: 0x4004d820, 0x166eb: 0x40093820, + 0x166ec: 0x40024020, 0x166ed: 0x40021a20, 0x166ee: 0x4002e420, 0x166ef: 0x4004e220, + 0x166f0: 0x4029cc20, 0x166f1: 0x4029ce20, 0x166f2: 0x4029d020, 0x166f3: 0x4029d220, + 0x166f4: 0x4029d420, 0x166f5: 0x4029d620, 0x166f6: 0x4029d820, 0x166f7: 0x4029da20, + 0x166f8: 0x4029dc20, 0x166f9: 0x4029de20, 0x166fa: 0x40026c20, 0x166fb: 0x40026220, + 0x166fc: 0x40094020, 0x166fd: 0x40094220, 0x166fe: 0x40094420, 0x166ff: 0x4002c420, + // Block 0x59c, offset 0x16700 + 0x16700: 0x4004d620, 0x16701: 0x002bde88, 0x16702: 0x002c0a88, 0x16703: 0xce7109c2, + 0x16704: 0xce7609c2, 0x16705: 0x002c9888, 0x16706: 0x002d0888, 0x16707: 0x002d2288, + 0x16708: 0x002d6888, 0x16709: 0x002d9a88, 0x1670a: 0x002dcc88, 0x1670b: 0xce7b09c2, + 0x1670c: 0xc0030002, 0x1670d: 0x002e8288, 0x1670e: 0xce8026f2, 0x1670f: 0x002ee288, + 0x16710: 0xce8509c2, 0x16711: 0x002f5688, 0x16712: 0x002f7a88, 0x16713: 0xce8a09b1, + 0x16714: 0x00302c88, 0x16715: 0x00306c88, 0x16716: 0x0030be88, 0x16717: 0x0030e288, + 0x16718: 0x0030f688, 0x16719: 0x00310088, 0x1671a: 0x00312a88, 0x1671b: 0x4003f820, + 0x1671c: 0x4004e420, 0x1671d: 0x4003fa20, 0x1671e: 0x40062420, 0x1671f: 0x40021620, + 0x16720: 0x40061e20, 0x16721: 0x402bde20, 0x16722: 0x402c0a20, 0x16723: 0xce6f09b1, + 0x16724: 0xce7409b1, 0x16725: 0x402c9820, 0x16726: 0x402d0820, 0x16727: 0x402d2220, + 0x16728: 0x402d6820, 0x16729: 0x402d9a20, 0x1672a: 0x402dcc20, 0x1672b: 0xce7909b1, + 0x1672c: 0xc0000002, 0x1672d: 0x402e8220, 0x1672e: 0xce7e26e1, 0x1672f: 0x402ee220, + 0x16730: 0xce8309b1, 0x16731: 0x402f5620, 0x16732: 0x402f7a20, 0x16733: 0xce8809b1, + 0x16734: 0x40302c20, 0x16735: 0x40306c20, 0x16736: 0x4030be20, 0x16737: 0x4030e220, + 0x16738: 0x4030f620, 0x16739: 0x40310020, 0x1673a: 0x40312a20, 0x1673b: 0x4003fc20, + 0x1673c: 0x40094820, 0x1673d: 0x4003fe20, 0x1673e: 0x40094c20, 0x1673f: 0xa0000000, + // Block 0x59d, offset 0x16740 + 0x16741: 0x40421220, 0x16742: 0x40421420, 0x16743: 0x40421620, + 0x16745: 0x4041f620, 0x16746: 0x4041f820, 0x16747: 0x4041fa20, + 0x16748: 0x4041fc20, 0x16749: 0x4041fe20, 0x1674a: 0x40420020, 0x1674b: 0x40420220, + 0x1674c: 0x40420620, 0x1674f: 0x40420a20, + 0x16750: 0x40420c20, 0x16753: 0x40420e20, + 0x16754: 0x40421020, 0x16755: 0xce8c96b1, 0x16756: 0x40421420, 0x16757: 0x40421620, + 0x16758: 0x40421820, 0x16759: 0x40421a20, 0x1675a: 0x40421c20, 0x1675b: 0x40421e20, + 0x1675c: 0x40422020, 0x1675d: 0x40422220, 0x1675e: 0x40422420, 0x1675f: 0x40422620, + 0x16760: 0x40422820, 0x16761: 0x40422a20, 0x16762: 0x40422c20, 0x16763: 0x40422e20, + 0x16764: 0x40423020, 0x16765: 0x40423220, 0x16766: 0x40423420, 0x16767: 0x40423620, + 0x16768: 0x40423820, 0x1676a: 0x40423a20, 0x1676b: 0x40423c20, + 0x1676c: 0x40423e20, 0x1676d: 0x40424020, 0x1676e: 0x40424220, 0x1676f: 0x40424420, + 0x16770: 0x40424820, 0x16772: 0x40424a20, 0x16773: 0x40424c20, + 0x16775: 0x40424e20, 0x16776: 0x40425220, 0x16777: 0x40425420, + 0x16778: 0x40425620, 0x16779: 0x40425820, + 0x1677c: 0xa070f102, 0x1677d: 0x40425a20, 0x1677e: 0x40425c20, 0x1677f: 0x40425e20, + // Block 0x59e, offset 0x16780 + 0x16780: 0x40426020, 0x16781: 0x40426220, 0x16782: 0x40426420, 0x16783: 0x40426620, + 0x16784: 0x40426820, 0x16787: 0xc05d01e1, + 0x16788: 0x40427020, 0x1678b: 0x40427220, + 0x1678c: 0x40427420, 0x1678d: 0x8209213b, + 0x16796: 0x40427820, 0x16797: 0x40427a20, + 0x1679c: 0xe000185d, 0x1679d: 0xe0001860, 0x1679f: 0x40424421, + 0x167a0: 0x40420420, 0x167a1: 0x40420820, 0x167a2: 0x40426a20, 0x167a3: 0x40426c20, + 0x167a6: 0xe0000176, 0x167a7: 0xe0000204, + 0x167a8: 0xe000031f, 0x167a9: 0xe00003f9, 0x167aa: 0xe00004d4, 0x167ab: 0xe000059e, + 0x167ac: 0xe0000669, 0x167ad: 0xe0000711, 0x167ae: 0xe00007bd, 0x167af: 0xe0000862, + 0x167b0: 0x40073c20, 0x167b1: 0x40425020, 0x167b2: 0x40283c20, 0x167b3: 0x40283e20, + 0x167b4: 0x40284020, 0x167b5: 0x40284220, 0x167b6: 0x40284420, 0x167b7: 0x40284620, + // Block 0x59f, offset 0x167c0 + 0x167c1: 0xa000f902, 0x167c2: 0xa000f802, 0x167c3: 0xa000f402, + 0x167c5: 0x40410620, 0x167c6: 0x40410820, 0x167c7: 0x40411020, + 0x167c8: 0x40411220, 0x167c9: 0x40410020, 0x167ca: 0x40410220, + 0x167cf: 0x40411420, + 0x167d0: 0x40410a20, 0x167d3: 0x40410420, + 0x167d4: 0x40410c20, 0x167d5: 0x40411c20, 0x167d6: 0x40411e20, 0x167d7: 0x40412020, + 0x167d8: 0x40412220, 0x167d9: 0x40412420, 0x167da: 0x40412620, 0x167db: 0x40412820, + 0x167dc: 0x40412a20, 0x167dd: 0x40412c20, 0x167de: 0x40412e20, 0x167df: 0x40413020, + 0x167e0: 0x40413220, 0x167e1: 0x40413420, 0x167e2: 0x40413620, 0x167e3: 0x40413820, + 0x167e4: 0x40413a20, 0x167e5: 0x40413c20, 0x167e6: 0x40413e20, 0x167e7: 0x40414020, + 0x167e8: 0x40414220, 0x167ea: 0x40414420, 0x167eb: 0x40414620, + 0x167ec: 0x40414820, 0x167ed: 0x40414a20, 0x167ee: 0x40414c20, 0x167ef: 0x40414e20, + 0x167f0: 0x40415220, 0x167f2: 0x40415420, 0x167f3: 0xe000ad83, + 0x167f5: 0x40415620, 0x167f6: 0xe000ad74, + 0x167f8: 0x40411620, 0x167f9: 0x40411820, + 0x167fc: 0xa000fa02, 0x167fe: 0x40415a20, 0x167ff: 0x40415c20, + // Block 0x5a0, offset 0x16800 + 0x16800: 0x40415e20, 0x16801: 0x40416020, 0x16802: 0x40416220, + 0x16807: 0x40416420, + 0x16808: 0x40416620, 0x1680b: 0x40416820, + 0x1680c: 0x40416a20, 0x1680d: 0x40415a20, + 0x16811: 0x40411a20, + 0x16819: 0xe000ad77, 0x1681a: 0xe000ad7a, 0x1681b: 0xe000ad7d, + 0x1681c: 0x40415820, 0x1681e: 0xe000ad80, + 0x16826: 0xe0000170, 0x16827: 0xe00001fe, + 0x16828: 0xe0000319, 0x16829: 0xe00003f3, 0x1682a: 0xe00004ce, 0x1682b: 0xe0000598, + 0x1682c: 0xe0000663, 0x1682d: 0xe000070b, 0x1682e: 0xe00007b7, 0x1682f: 0xe000085c, + 0x16830: 0xa000f702, 0x16831: 0xa000f602, 0x16832: 0x40410e20, 0x16833: 0x4040fe20, + 0x16834: 0x4040fc20, 0x16835: 0x40415020, + // Block 0x5a1, offset 0x16840 + 0x16840: 0xa0000000, 0x16841: 0xa0000000, 0x16842: 0xa0000000, 0x16843: 0xa0000000, + 0x16844: 0xa0000000, 0x16845: 0xa0000000, 0x16846: 0xa0000000, 0x16847: 0xa0000000, + 0x16848: 0xa0000000, 0x16849: 0x40020020, 0x1684a: 0x40020220, 0x1684b: 0x40020420, + 0x1684c: 0x40020620, 0x1684d: 0x40020820, 0x1684e: 0xa0000000, 0x1684f: 0xa0000000, + 0x16850: 0xa0000000, 0x16851: 0xa0000000, 0x16852: 0xa0000000, 0x16853: 0xa0000000, + 0x16854: 0xa0000000, 0x16855: 0xa0000000, 0x16856: 0xa0000000, 0x16857: 0xa0000000, + 0x16858: 0xa0000000, 0x16859: 0xa0000000, 0x1685a: 0xa0000000, 0x1685b: 0xa0000000, + 0x1685c: 0xa0000000, 0x1685d: 0xa0000000, 0x1685e: 0xa0000000, 0x1685f: 0xa0000000, + 0x16860: 0x40021220, 0x16861: 0x4002ba20, 0x16862: 0x4003e020, 0x16863: 0x4004ea20, + 0x16864: 0x4027de20, 0x16865: 0x4004ec20, 0x16866: 0x4004e620, 0x16867: 0x4003d220, + 0x16868: 0x4003f420, 0x16869: 0x4003f620, 0x1686a: 0x4004d820, 0x1686b: 0x40093820, + 0x1686c: 0x40024020, 0x1686d: 0x40021a20, 0x1686e: 0x4002e420, 0x1686f: 0x4004e220, + 0x16870: 0x4029cc20, 0x16871: 0x4029ce20, 0x16872: 0x4029d020, 0x16873: 0x4029d220, + 0x16874: 0x4029d420, 0x16875: 0x4029d620, 0x16876: 0x4029d820, 0x16877: 0x4029da20, + 0x16878: 0x4029dc20, 0x16879: 0x4029de20, 0x1687a: 0x40026c20, 0x1687b: 0x40026220, + 0x1687c: 0x40094020, 0x1687d: 0x40094220, 0x1687e: 0x40094420, 0x1687f: 0x4002c420, + // Block 0x5a2, offset 0x16880 + 0x16880: 0x4004d620, 0x16881: 0xce900be1, 0x16882: 0x002c0a88, 0x16883: 0xc33531e1, + 0x16884: 0x002c6288, 0x16885: 0xce6d0be1, 0x16886: 0x002d0888, 0x16887: 0x002d2288, + 0x16888: 0x002d6888, 0x16889: 0x002d9a88, 0x1688a: 0x002dcc88, 0x1688b: 0x002dfe88, + 0x1688c: 0xc0030002, 0x1688d: 0x002e8288, 0x1688e: 0xc54631e1, 0x1688f: 0xc33f31e1, + 0x16890: 0x002f2c88, 0x16891: 0x002f5688, 0x16892: 0x002f7a88, 0x16893: 0xc34331e1, + 0x16894: 0x00302c88, 0x16895: 0x00306c88, 0x16896: 0x0030be88, 0x16897: 0x0030e288, + 0x16898: 0x0030f688, 0x16899: 0x00310088, 0x1689a: 0xce959711, 0x1689b: 0x4003f820, + 0x1689c: 0x4004e420, 0x1689d: 0x4003fa20, 0x1689e: 0x40062420, 0x1689f: 0x40021620, + 0x168a0: 0x40061e20, 0x168a1: 0xce8e0be1, 0x168a2: 0x402c0a20, 0x168a3: 0xc33331e1, + 0x168a4: 0x402c6220, 0x168a5: 0xce6b0be1, 0x168a6: 0x402d0820, 0x168a7: 0x402d2220, + 0x168a8: 0x402d6820, 0x168a9: 0x402d9a20, 0x168aa: 0x402dcc20, 0x168ab: 0x402dfe20, + 0x168ac: 0xc0000002, 0x168ad: 0x402e8220, 0x168ae: 0xc53331e1, 0x168af: 0xc33d31e1, + 0x168b0: 0x402f2c20, 0x168b1: 0x402f5620, 0x168b2: 0x402f7a20, 0x168b3: 0xc34131e1, + 0x168b4: 0x40302c20, 0x168b5: 0x40306c20, 0x168b6: 0x4030be20, 0x168b7: 0x4030e220, + 0x168b8: 0x4030f620, 0x168b9: 0x40310020, 0x168ba: 0xce929711, 0x168bb: 0x4003fc20, + 0x168bc: 0x40094820, 0x168bd: 0x4003fe20, 0x168be: 0x40094c20, 0x168bf: 0xa0000000, + // Block 0x5a3, offset 0x168c0 + 0x168c0: 0xe00008f5, 0x168c1: 0xe00008ef, 0x168c2: 0xe0000921, 0x168c3: 0xe0000969, + 0x168c4: 0xe000095b, 0x168c5: 0xe000094d, 0x168c6: 0xe00009dd, 0x168c7: 0xe0000a53, + 0x168c8: 0xe0000ae8, 0x168c9: 0xe0000ae2, 0x168ca: 0xe0000af4, 0x168cb: 0xe0000b20, + 0x168cc: 0xe0000c2b, 0x168cd: 0xe0000c25, 0x168ce: 0xe0000c37, 0x168cf: 0xe0000c43, + 0x168d0: 0xe0000ab3, 0x168d1: 0xe0000d63, 0x168d2: 0xe0000d9a, 0x168d3: 0x002ee483, + 0x168d4: 0xe0000da6, 0x168d5: 0xe0000de6, 0x168d6: 0xe0000dd2, 0x168d7: 0x40093e20, + 0x168d8: 0xe0000e12, 0x168d9: 0xe0000fe1, 0x168da: 0xe0000fdb, 0x168db: 0xe0000fed, + 0x168dc: 0xe0000fff, 0x168dd: 0xe0001102, 0x168de: 0x00318888, 0x168df: 0xe0000f7b, + 0x168e0: 0xe00008f2, 0x168e1: 0xe00008ec, 0x168e2: 0xe000091e, 0x168e3: 0xe0000966, + 0x168e4: 0xe0000958, 0x168e5: 0xe000094a, 0x168e6: 0xe00009d5, 0x168e7: 0xe0000a4d, + 0x168e8: 0xe0000ae5, 0x168e9: 0xe0000adf, 0x168ea: 0xe0000af1, 0x168eb: 0xe0000b1d, + 0x168ec: 0xe0000c28, 0x168ed: 0xe0000c22, 0x168ee: 0xe0000c34, 0x168ef: 0xe0000c40, + 0x168f0: 0xe0000aad, 0x168f1: 0xe0000d60, 0x168f2: 0xe0000d97, 0x168f3: 0x402ee420, + 0x168f4: 0xe0000da3, 0x168f5: 0xe0000de3, 0x168f6: 0xe0000dcf, 0x168f7: 0x40093c20, + 0x168f8: 0xe0000e0f, 0x168f9: 0xe0000fde, 0x168fa: 0xe0000fd8, 0x168fb: 0xe0000fea, + 0x168fc: 0xe0000ffc, 0x168fd: 0xe00010ff, 0x168fe: 0x40318820, 0x168ff: 0xe0001114, + // Block 0x5a4, offset 0x16900 + 0x16900: 0xe0000983, 0x16901: 0xe0000980, 0x16902: 0xe00008fb, 0x16903: 0xe00008f8, + 0x16904: 0x002be083, 0x16905: 0x402be020, 0x16906: 0x002c3c83, 0x16907: 0x402c3c20, + 0x16908: 0xe0000a3e, 0x16909: 0xe0000a3b, 0x1690a: 0xe0000a4a, 0x1690b: 0xe0000a47, + 0x1690c: 0xe0000a44, 0x1690d: 0xe0000a41, 0x1690e: 0xe0000a86, 0x1690f: 0xe0000a83, + 0x16910: 0xe0000aaa, 0x16911: 0xe0000aa7, 0x16912: 0xe0000b46, 0x16913: 0xe0000b43, + 0x16914: 0xe0000aee, 0x16915: 0xe0000aeb, 0x16916: 0xe0000b2c, 0x16917: 0xe0000b29, + 0x16918: 0x002c9a83, 0x16919: 0x402c9a20, 0x1691a: 0xe0000b1a, 0x1691b: 0xe0000b17, + 0x1691c: 0xe0000bb8, 0x1691d: 0xe0000bb5, 0x1691e: 0xe0000bb2, 0x1691f: 0xe0000baf, + 0x16920: 0xe0000bc4, 0x16921: 0xe0000bc1, 0x16922: 0xe0000bca, 0x16923: 0xe0000bc7, + 0x16924: 0xe0000bee, 0x16925: 0xe0000beb, 0x16926: 0xe0000c1b, 0x16927: 0xe0000c18, + 0x16928: 0xe0000c51, 0x16929: 0xe0000c4e, 0x1692a: 0xe0000c60, 0x1692b: 0xe0000c5d, + 0x1692c: 0xe0000c31, 0x1692d: 0xe0000c2e, 0x1692e: 0xe0000c5a, 0x1692f: 0xe0000c57, + 0x16930: 0xe0000c54, 0x16931: 0x402da220, 0x16932: 0xf0000a0a, 0x16933: 0xf0000404, + 0x16934: 0xe0000c8a, 0x16935: 0xe0000c87, 0x16936: 0xe0000c9f, 0x16937: 0xe0000c9c, + 0x16938: 0x402f7220, 0x16939: 0xe0000ccc, 0x1693a: 0xe0000cc9, 0x1693b: 0xe0000cd8, + 0x1693c: 0xe0000cd5, 0x1693d: 0xe0000cd2, 0x1693e: 0xe0000ccf, 0x1693f: 0xe0000d04, + // Block 0x5a5, offset 0x16940 + 0x16940: 0xe0000cfe, 0x16941: 0x002e2483, 0x16942: 0x402e2420, 0x16943: 0x002ea083, + 0x16944: 0x402ea020, 0x16945: 0xe0000d6f, 0x16946: 0xe0000d6c, 0x16947: 0xe0000d5d, + 0x16948: 0xe0000d5a, 0x16949: 0xf0000404, 0x1694a: 0x002eda88, 0x1694b: 0x402eda20, + 0x1694c: 0xe0000e2e, 0x1694d: 0xe0000e2b, 0x1694e: 0xe0000da0, 0x1694f: 0xe0000d9d, + 0x16950: 0xe0000de0, 0x16951: 0xe0000ddd, 0x16952: 0xe0000e93, 0x16953: 0xe0000e8f, + 0x16954: 0xe0000eca, 0x16955: 0xe0000ec7, 0x16956: 0xe0000edc, 0x16957: 0xe0000ed9, + 0x16958: 0xe0000ed0, 0x16959: 0xe0000ecd, 0x1695a: 0x002fe883, 0x1695b: 0x402fe820, + 0x1695c: 0xe0000f2d, 0x1695d: 0xe0000f2a, 0x1695e: 0xe0000f47, 0x1695f: 0xe0000f44, + 0x16960: 0xe0000f33, 0x16961: 0xe0000f30, 0x16962: 0xe0000f99, 0x16963: 0xe0000f96, + 0x16964: 0xe0000f8a, 0x16965: 0xe0000f87, 0x16966: 0x00303688, 0x16967: 0x40303620, + 0x16968: 0xe000102b, 0x16969: 0xe0001028, 0x1696a: 0xe000103f, 0x1696b: 0xe000103c, + 0x1696c: 0xe0000fe7, 0x1696d: 0xe0000fe4, 0x1696e: 0xe0000ff9, 0x1696f: 0xe0000ff6, + 0x16970: 0xe0001025, 0x16971: 0xe0001022, 0x16972: 0xe0001039, 0x16973: 0xe0001036, + 0x16974: 0xe00010d8, 0x16975: 0xe00010d5, 0x16976: 0xe000110e, 0x16977: 0xe000110b, + 0x16978: 0xe0001117, 0x16979: 0x00312c83, 0x1697a: 0x40312c20, 0x1697b: 0x00312e83, + 0x1697c: 0x40312e20, 0x1697d: 0xe0001147, 0x1697e: 0xe0001144, 0x1697f: 0xe0000f64, + // Block 0x5a6, offset 0x16980 + 0x16980: 0xe00009b1, 0x16981: 0xe00009ae, 0x16982: 0xe0000a22, 0x16983: 0xe0000a1f, + 0x16984: 0xe0000a28, 0x16985: 0xe0000a25, 0x16986: 0xe0000a2e, 0x16987: 0xe0000a2b, + 0x16988: 0xe000261a, 0x16989: 0xe0002617, 0x1698a: 0xe0000a8c, 0x1698b: 0xe0000a89, + 0x1698c: 0xe0000a98, 0x1698d: 0xe0000a95, 0x1698e: 0xe0000aa4, 0x1698f: 0xe0000aa1, + 0x16990: 0xe0000a92, 0x16991: 0xe0000a8f, 0x16992: 0xe0000a9e, 0x16993: 0xe0000a9b, + 0x16994: 0xe0000b55, 0x16995: 0xe0000b51, 0x16996: 0xe0000b4d, 0x16997: 0xe0000b49, + 0x16998: 0xe0000b7c, 0x16999: 0xe0000b79, 0x1699a: 0xe0000b82, 0x1699b: 0xe0000b7f, + 0x1699c: 0xe0000b39, 0x1699d: 0xe0000b35, 0x1699e: 0xe0000b8c, 0x1699f: 0xe0000b89, + 0x169a0: 0xe0000bd0, 0x169a1: 0xe0000bcd, 0x169a2: 0xe0000c00, 0x169a3: 0xe0000bfd, + 0x169a4: 0xe0000c0c, 0x169a5: 0xe0000c09, 0x169a6: 0xe0000bfa, 0x169a7: 0xe0000bf7, + 0x169a8: 0xe0000c06, 0x169a9: 0xe0000c03, 0x169aa: 0xe0000c12, 0x169ab: 0xe0000c0f, + 0x169ac: 0xe0000c7e, 0x169ad: 0xe0000c7b, 0x169ae: 0xe0000c4a, 0x169af: 0xe0000c46, + 0x169b0: 0xe0000c93, 0x169b1: 0xe0000c90, 0x169b2: 0xe0000cab, 0x169b3: 0xe0000ca8, + 0x169b4: 0xe0000cb1, 0x169b5: 0xe0000cae, 0x169b6: 0xe0000cde, 0x169b7: 0xe0000cdb, + 0x169b8: 0xe0000ce5, 0x169b9: 0xe0000ce1, 0x169ba: 0xe0000cf2, 0x169bb: 0xe0000cef, + 0x169bc: 0xe0000cec, 0x169bd: 0xe0000ce9, 0x169be: 0xe0000d1e, 0x169bf: 0xe0000d1b, + // Block 0x5a7, offset 0x169c0 + 0x169c0: 0xe0000d24, 0x169c1: 0xe0000d21, 0x169c2: 0xe0000d2a, 0x169c3: 0xe0000d27, + 0x169c4: 0xe0000d69, 0x169c5: 0xe0000d66, 0x169c6: 0xe0000d7b, 0x169c7: 0xe0000d78, + 0x169c8: 0xe0000d87, 0x169c9: 0xe0000d84, 0x169ca: 0xe0000d81, 0x169cb: 0xe0000d7e, + 0x169cc: 0xe0002946, 0x169cd: 0xe0002943, 0x169ce: 0xe0000df5, 0x169cf: 0xe0000df1, + 0x169d0: 0xe0000e3d, 0x169d1: 0xe0000e39, 0x169d2: 0xe000294c, 0x169d3: 0xe0002949, + 0x169d4: 0xe0000ea7, 0x169d5: 0xe0000ea4, 0x169d6: 0xe0000ead, 0x169d7: 0xe0000eaa, + 0x169d8: 0xe0000ed6, 0x169d9: 0xe0000ed3, 0x169da: 0xe0000ef4, 0x169db: 0xe0000ef1, + 0x169dc: 0xe0000efb, 0x169dd: 0xe0000ef7, 0x169de: 0xe0000f02, 0x169df: 0xe0000eff, + 0x169e0: 0xe0000f41, 0x169e1: 0xe0000f3e, 0x169e2: 0xe0000f53, 0x169e3: 0xe0000f50, + 0x169e4: 0xe000296a, 0x169e5: 0xe0002967, 0x169e6: 0xe0000f3a, 0x169e7: 0xe0000f36, + 0x169e8: 0xe0000f5a, 0x169e9: 0xe0000f56, 0x169ea: 0xe0000f93, 0x169eb: 0xe0000f90, + 0x169ec: 0xe0000f9f, 0x169ed: 0xe0000f9c, 0x169ee: 0xe0000fb1, 0x169ef: 0xe0000fae, + 0x169f0: 0xe0000fab, 0x169f1: 0xe0000fa8, 0x169f2: 0xe0001093, 0x169f3: 0xe0001090, + 0x169f4: 0xe000109f, 0x169f5: 0xe000109c, 0x169f6: 0xe0001099, 0x169f7: 0xe0001096, + 0x169f8: 0xe0001032, 0x169f9: 0xe000102e, 0x169fa: 0xe0001046, 0x169fb: 0xe0001042, + 0x169fc: 0xe00010a9, 0x169fd: 0xe00010a6, 0x169fe: 0xe00010af, 0x169ff: 0xe00010ac, + // Block 0x5a8, offset 0x16a00 + 0x16a00: 0xe0000b03, 0x16a01: 0xe0000aff, 0x16a02: 0xe0000b13, 0x16a03: 0xe0000b0f, + 0x16a04: 0xe0000b0b, 0x16a05: 0xe0000b07, 0x16a06: 0xe0000b75, 0x16a07: 0xe0000b71, + 0x16a08: 0xe0000c66, 0x16a09: 0xe0000c63, 0x16a0a: 0xe0000c78, 0x16a0b: 0xe0000c75, + 0x16a0c: 0xe0000e84, 0x16a0d: 0xe0000e81, 0x16a0e: 0xe0000e44, 0x16a0f: 0xe0000e41, + 0x16a10: 0xe0003c96, 0x16a11: 0xe0003c93, 0x16a12: 0xe0000db5, 0x16a13: 0xe0000db1, + 0x16a14: 0xe0000dc5, 0x16a15: 0xe0000dc1, 0x16a16: 0xe0000dbd, 0x16a17: 0xe0000db9, + 0x16a18: 0xe0000e8b, 0x16a19: 0xe0000e87, 0x16a1a: 0xe0003c9c, 0x16a1b: 0xe0003c99, + 0x16a1c: 0xe0000e65, 0x16a1d: 0xe0000e61, 0x16a1e: 0xe0000e75, 0x16a1f: 0xe0000e71, + 0x16a20: 0xe0000e6d, 0x16a21: 0xe0000e69, 0x16a22: 0xe0000e7d, 0x16a23: 0xe0000e79, + 0x16a24: 0xe000108d, 0x16a25: 0xe000108a, 0x16a26: 0xe000104d, 0x16a27: 0xe000104a, + 0x16a28: 0xe0001066, 0x16a29: 0xe0001062, 0x16a2a: 0xe000106e, 0x16a2b: 0xe000106a, + 0x16a2c: 0xe000107e, 0x16a2d: 0xe000107a, 0x16a2e: 0xe0001076, 0x16a2f: 0xe0001072, + 0x16a30: 0xe0001086, 0x16a31: 0xe0001082, 0x16a32: 0xe0001108, 0x16a33: 0xe0001105, + 0x16a34: 0xe0001135, 0x16a35: 0xe0001132, 0x16a36: 0xe000112f, 0x16a37: 0xe000112c, + 0x16a38: 0xe000111d, 0x16a39: 0xe000111a, 0x16a3a: 0xe0000d0a, 0x16a3b: 0xe0000d07, + 0x16a3c: 0x0030d888, 0x16a3d: 0x4030d820, 0x16a3e: 0x00312088, 0x16a3f: 0x40312020, + // Block 0x5a9, offset 0x16a40 + 0x16a40: 0xa0000000, 0x16a41: 0xa0000000, 0x16a42: 0xa0000000, 0x16a43: 0xa0000000, + 0x16a44: 0xa0000000, 0x16a46: 0x40096620, 0x16a47: 0x40096a20, + 0x16a48: 0x40070820, 0x16a49: 0x4004f220, 0x16a4a: 0x4004f620, 0x16a4b: 0x4027e620, + 0x16a4c: 0x40024820, 0x16a4d: 0x40024a20, 0x16a4e: 0x40070e20, 0x16a4f: 0x40071020, + 0x16a50: 0xae600000, 0x16a51: 0xae600000, 0x16a52: 0xae600000, 0x16a53: 0xae600000, + 0x16a54: 0xae600000, 0x16a55: 0xae600000, 0x16a56: 0xae600000, 0x16a57: 0xae600000, + 0x16a58: 0xa1e00000, 0x16a59: 0xa1f00000, 0x16a5a: 0xa2000000, 0x16a5b: 0x40026420, + 0x16a5e: 0x40027020, 0x16a5f: 0x4002cc20, + 0x16a60: 0x403aa220, 0x16a61: 0x40393a20, 0x16a62: 0x40393620, 0x16a63: 0x40393821, + 0x16a64: 0x403a7421, 0x16a65: 0x40393824, 0x16a66: 0x003a9344, 0x16a67: 0xce980151, + 0x16a68: 0x40393c20, 0x16a69: 0x403a6824, 0x16a6a: 0x40395620, 0x16a6b: 0x40395820, + 0x16a6c: 0x40396420, 0x16a6d: 0xce9c0171, 0x16a6e: 0x40397420, 0x16a6f: 0x40398820, + 0x16a70: 0x40398a20, 0x16a71: 0x4039a420, 0x16a72: 0x4039a620, 0x16a73: 0x4039c620, + 0x16a74: 0x4039c820, 0x16a75: 0x4039dc20, 0x16a76: 0x4039de20, 0x16a77: 0x4039e620, + 0x16a78: 0x4039e820, 0x16a79: 0x4039ee20, 0x16a7a: 0x4039f020, 0x16a7b: 0x403a3820, + 0x16a7c: 0x403a3a20, 0x16a7d: 0x403a9c20, 0x16a7e: 0x403a9e20, 0x16a7f: 0x403aa020, + // Block 0x5aa, offset 0x16a80 + 0x16a80: 0xa0000000, 0x16a81: 0x4039fc20, 0x16a82: 0x403a1220, 0x16a83: 0x403a1c22, + 0x16a84: 0x403a4020, 0x16a85: 0x403a4e20, 0x16a86: 0x403a5620, 0x16a87: 0xcea00171, + 0x16a88: 0xcea20171, 0x16a89: 0xcea60171, 0x16a8a: 0xcea80171, 0x16a8b: 0xa000b002, + 0x16a8c: 0xa000b202, 0x16a8d: 0xa000b102, 0x16a8e: 0xa1e0ad02, 0x16a8f: 0xa000af02, + 0x16a90: 0xa000ae02, 0x16a91: 0xa210ba02, 0x16a92: 0xa220bc02, 0x16a93: 0xae60bd02, + 0x16a94: 0xae60be02, 0x16a95: 0xadc0bf02, 0x16a96: 0xadc0c102, 0x16a97: 0xae60c202, + 0x16a98: 0xae60c302, 0x16a99: 0xae60c402, 0x16a9a: 0xae60c502, 0x16a9b: 0xae60c602, + 0x16a9c: 0xadc0c702, 0x16a9d: 0xae60c802, 0x16a9e: 0xae60c902, 0x16a9f: 0xadc0c002, + 0x16aa0: 0xe000015e, 0x16aa1: 0xe00001e6, 0x16aa2: 0xe0000301, 0x16aa3: 0xe00003db, + 0x16aa4: 0xe00004b6, 0x16aa5: 0xe0000580, 0x16aa6: 0xe000064b, 0x16aa7: 0xe00006f3, + 0x16aa8: 0xe000079f, 0x16aa9: 0xe0000844, 0x16aaa: 0x4004ee20, 0x16aab: 0x40024c20, + 0x16aac: 0x40024e20, 0x16aad: 0x4004de20, 0x16aae: 0x40393a20, 0x16aaf: 0x403a1020, + 0x16ab0: 0xa230d102, 0x16ab1: 0x40393823, 0x16ab2: 0x40393822, 0x16ab3: 0x40393825, + 0x16ab4: 0x00391c84, 0x16ab5: 0xf0000404, 0x16ab6: 0xf0000404, 0x16ab7: 0xe000ad89, + 0x16ab8: 0xe0003780, 0x16ab9: 0x40395821, 0x16aba: 0x40395c20, 0x16abb: 0x40393e20, + 0x16abc: 0x40395820, 0x16abd: 0x40396020, 0x16abe: 0x40394020, 0x16abf: 0x40396220, + // Block 0x5ab, offset 0x16ac0 + 0x16ac0: 0x40394220, 0x16ac1: 0x40396620, 0x16ac2: 0x40397820, 0x16ac3: 0x40396620, + 0x16ac4: 0x40396820, 0x16ac5: 0x40396c20, 0x16ac6: 0x40396a20, 0x16ac7: 0x40396e20, + 0x16ac8: 0x40398a21, 0x16ac9: 0x40398a20, 0x16aca: 0x40399020, 0x16acb: 0x40399220, + 0x16acc: 0x40399420, 0x16acd: 0x40399620, 0x16ace: 0x40399820, 0x16acf: 0x40399a20, + 0x16ad0: 0x40399c20, 0x16ad1: 0x4039a621, 0x16ad2: 0x4039aa20, 0x16ad3: 0x4039a620, + 0x16ad4: 0x4039ae20, 0x16ad5: 0x4039b020, 0x16ad6: 0x4039b820, 0x16ad7: 0x4039b420, + 0x16ad8: 0x4039b620, 0x16ad9: 0x4039b820, 0x16ada: 0x4039ca20, 0x16adb: 0x4039cc20, + 0x16adc: 0x4039ce20, 0x16add: 0x4039e020, 0x16ade: 0x4039e220, 0x16adf: 0x4039ea20, + 0x16ae0: 0x4039f220, 0x16ae1: 0x4039fe20, 0x16ae2: 0x403a0020, 0x16ae3: 0x403a0220, + 0x16ae4: 0x403a0420, 0x16ae5: 0x403a0820, 0x16ae6: 0x403a0a20, 0x16ae7: 0x403a1420, + 0x16ae8: 0x403a1620, 0x16ae9: 0x403a1c20, 0x16aea: 0x403a1c21, 0x16aeb: 0x403a2020, + 0x16aec: 0x403a2220, 0x16aed: 0x403a2620, 0x16aee: 0x403a2820, 0x16aef: 0x403a2021, + 0x16af0: 0x403a2c20, 0x16af1: 0x403a2e20, 0x16af2: 0x403a3020, 0x16af3: 0x403a3220, + 0x16af4: 0x403a3420, 0x16af5: 0x403a4220, 0x16af6: 0x403a4420, 0x16af7: 0x403a4620, + 0x16af8: 0x403a4820, 0x16af9: 0x403a6020, 0x16afa: 0x403a5820, 0x16afb: 0x403a5c21, + 0x16afc: 0x403a5c20, 0x16afd: 0x403a5e20, 0x16afe: 0x403a6823, 0x16aff: 0x40396c20, + // Block 0x5ac, offset 0x16b00 + 0x16b00: 0x003a6883, 0x16b01: 0x403a6822, 0x16b02: 0xe000ad86, 0x16b03: 0x403a6825, + 0x16b04: 0x403a7620, 0x16b05: 0x403a7820, 0x16b06: 0x403a7a20, 0x16b07: 0x403a7422, + 0x16b08: 0x403a7e20, 0x16b09: 0x403a7423, 0x16b0a: 0x403a8220, 0x16b0b: 0x403a8420, + 0x16b0c: 0xcea40171, 0x16b0d: 0x403a9225, 0x16b0e: 0x403a9620, 0x16b0f: 0x403a8620, + 0x16b10: 0x403a9224, 0x16b11: 0x403a9a20, 0x16b12: 0x403a9222, 0x16b13: 0xe00037b6, + 0x16b14: 0x4002e820, 0x16b15: 0xce9e0171, 0x16b16: 0xae600000, 0x16b17: 0xae600000, + 0x16b18: 0xae600000, 0x16b19: 0xae600000, 0x16b1a: 0xae600000, 0x16b1b: 0xae600000, + 0x16b1c: 0xae600000, 0x16b1d: 0xa0000000, 0x16b1e: 0x40071220, 0x16b1f: 0xae600000, + 0x16b20: 0xae600000, 0x16b21: 0xae600000, 0x16b22: 0xae600000, 0x16b23: 0xadc00000, + 0x16b24: 0xae600000, 0x16b25: 0x003a7484, 0x16b26: 0x003a9084, 0x16b27: 0xae600000, + 0x16b28: 0xae600000, 0x16b29: 0x40071420, 0x16b2a: 0xadc00000, 0x16b2b: 0xae600000, + 0x16b2c: 0xae600000, 0x16b2d: 0xadc00000, 0x16b2e: 0x40399e20, 0x16b2f: 0x4039ba20, + 0x16b30: 0xe0000161, 0x16b31: 0xe00001e9, 0x16b32: 0xe0000304, 0x16b33: 0xe00003de, + 0x16b34: 0xe00004b9, 0x16b35: 0xe0000583, 0x16b36: 0xe000064e, 0x16b37: 0xe00006f6, + 0x16b38: 0xe00007a2, 0x16b39: 0xe0000847, 0x16b3a: 0x4039d020, 0x16b3b: 0x4039e420, + 0x16b3c: 0x4039f420, 0x16b3d: 0xe0001553, 0x16b3e: 0xe0001779, 0x16b3f: 0x403a7020, + // Block 0x5ad, offset 0x16b40 + 0x16b40: 0x00021284, 0x16b41: 0x00021284, 0x16b42: 0x00021284, 0x16b43: 0x00021284, + 0x16b44: 0x00021284, 0x16b45: 0x00021284, 0x16b46: 0x00021284, 0x16b47: 0x0002129b, + 0x16b48: 0x00021284, 0x16b49: 0x00021284, 0x16b4a: 0x00021284, 0x16b4b: 0xa0000000, + 0x16b4c: 0x40021221, 0x16b4d: 0x40021222, 0x16b4e: 0xa0000000, 0x16b4f: 0xa0000000, + 0x16b50: 0x40022620, 0x16b51: 0x0002269b, 0x16b52: 0x40022820, 0x16b53: 0x40022a20, + 0x16b54: 0x40022c20, 0x16b55: 0x40022e20, 0x16b56: 0x4004c420, 0x16b57: 0x40021820, + 0x16b58: 0x4003d420, 0x16b59: 0x4003d620, 0x16b5a: 0x4003d820, 0x16b5b: 0x4003da20, + 0x16b5c: 0x4003e220, 0x16b5d: 0x4003e420, 0x16b5e: 0x4003e620, 0x16b5f: 0x4003e820, + 0x16b60: 0x4004f820, 0x16b61: 0x4004fa20, 0x16b62: 0x40050220, 0x16b63: 0x40050420, + 0x16b64: 0x0002e484, 0x16b65: 0xf0001f04, 0x16b66: 0xf0000404, 0x16b67: 0x40050620, + 0x16b68: 0x40020e20, 0x16b69: 0x40021020, 0x16b6a: 0xa0000000, 0x16b6b: 0xa0000000, + 0x16b6c: 0xa0000000, 0x16b6d: 0xa0000000, 0x16b6e: 0xa0000000, 0x16b6f: 0x0002129b, + 0x16b70: 0x4004f020, 0x16b71: 0x4004f420, 0x16b72: 0x40050e20, 0x16b73: 0xf0001f04, + 0x16b74: 0xf0000404, 0x16b75: 0x40051020, 0x16b76: 0xf0001f04, 0x16b77: 0xf0000404, + 0x16b78: 0x40051620, 0x16b79: 0x4003dc20, 0x16b7a: 0x4003de20, 0x16b7b: 0x40051820, + 0x16b7c: 0xf0001f04, 0x16b7d: 0x4002e020, 0x16b7e: 0x40021420, 0x16b7f: 0x40051a20, + // Block 0x5ae, offset 0x16b80 + 0x16b80: 0x40073420, 0x16b81: 0x40073620, + 0x16b93: 0x003a269a, + 0x16b94: 0x003a2699, 0x16b95: 0x003a2697, 0x16b96: 0x003a2698, 0x16b97: 0x003a7c9a, + 0x16b98: 0x003a7c99, 0x16b99: 0x003a7a9a, 0x16b9a: 0x003a7a99, 0x16b9b: 0x003a7e9a, + 0x16b9c: 0x003a7e99, 0x16b9d: 0xe000ad8c, 0x16b9e: 0x003a849a, 0x16b9f: 0x003a8499, + 0x16ba0: 0x003a789a, 0x16ba1: 0x003a7899, 0x16ba2: 0x003a809a, 0x16ba3: 0x003a8099, + 0x16ba4: 0x003a989a, 0x16ba5: 0x003a9899, 0x16ba6: 0x003a9897, 0x16ba7: 0x003a9898, + 0x16ba8: 0x003a8e97, 0x16ba9: 0x003a8e98, 0x16baa: 0xe0001559, 0x16bab: 0xe0001556, + 0x16bac: 0xe0001589, 0x16bad: 0xe0001586, 0x16bae: 0xe000158f, 0x16baf: 0xe000158c, + 0x16bb0: 0xe000159b, 0x16bb1: 0xe0001598, 0x16bb2: 0xe0001595, 0x16bb3: 0xe0001592, + 0x16bb4: 0xe00015a1, 0x16bb5: 0xe000159e, 0x16bb6: 0xe00015bf, 0x16bb7: 0xe00015bc, + 0x16bb8: 0xe00015b9, 0x16bb9: 0xe00015ad, 0x16bba: 0xe00015a7, 0x16bbb: 0xe00015a4, + 0x16bbc: 0x003a929a, 0x16bbd: 0x003a9299, 0x16bbe: 0x003a9297, 0x16bbf: 0x003a9298, + // Block 0x5af, offset 0x16bc0 + 0x16bc0: 0xf0001a1a, 0x16bc1: 0xf0001a1a, 0x16bc2: 0xf0001a1a, 0x16bc3: 0xe00028f4, + 0x16bc4: 0xe000374d, 0x16bc5: 0xf0001a1a, 0x16bc6: 0xf0001a1a, 0x16bc7: 0xf0001a1a, + 0x16bc8: 0xf0001a1a, 0x16bc9: 0xe00028f7, 0x16bca: 0xe0003750, 0x16bcb: 0xf0001a1a, + 0x16bcc: 0xf0001a1a, 0x16bcd: 0xf0001a1a, 0x16bce: 0xf0001a1a, 0x16bcf: 0xe00028fd, + 0x16bd0: 0xe000375c, 0x16bd1: 0xf0001a1a, 0x16bd2: 0xf0001a1a, 0x16bd3: 0xe0002900, + 0x16bd4: 0xe000376e, 0x16bd5: 0xe0003786, 0x16bd6: 0xe000378c, 0x16bd7: 0xe0003792, + 0x16bd8: 0xe00037a4, 0x16bd9: 0xe0002906, 0x16bda: 0xe00037b3, 0x16bdb: 0xf0001a1a, + 0x16bdc: 0xf0001a1a, 0x16bdd: 0xe000377d, 0x16bde: 0xe0000003, 0x16bdf: 0xe0000006, + 0x16be0: 0xe0000009, 0x16be1: 0xe000000c, 0x16be2: 0xe000000f, 0x16be3: 0xe0000012, + 0x16be4: 0xe000156b, 0x16be5: 0xe000156e, 0x16be6: 0xe0001577, 0x16be7: 0xe000157d, + 0x16be8: 0xe00015aa, 0x16be9: 0xe00015b3, 0x16bea: 0xf0001919, 0x16beb: 0xf0001919, + 0x16bec: 0xf0001919, 0x16bed: 0xf0001919, 0x16bee: 0xe0002891, 0x16bef: 0xe00036a2, + 0x16bf0: 0xf0001919, 0x16bf1: 0xf0001919, 0x16bf2: 0xf0001919, 0x16bf3: 0xf0001919, + 0x16bf4: 0xe0002897, 0x16bf5: 0xe00036ae, 0x16bf6: 0xf0001919, 0x16bf7: 0xf0001919, + 0x16bf8: 0xf0001919, 0x16bf9: 0xf0001919, 0x16bfa: 0xe000289d, 0x16bfb: 0xe00036b7, + 0x16bfc: 0xe00028df, 0x16bfd: 0xe0003705, 0x16bfe: 0xe00028e5, 0x16bff: 0xe000370b, + // Block 0x5b0, offset 0x16c00 + 0x16c00: 0xe0003711, 0x16c01: 0xe000372f, 0x16c02: 0xe000373b, 0x16c03: 0xe00028eb, + 0x16c04: 0xe0003741, 0x16c05: 0xf0001919, 0x16c06: 0xe00028f1, 0x16c07: 0xe000374a, + 0x16c08: 0xf0001919, 0x16c09: 0xf0001919, 0x16c0a: 0xf0001919, 0x16c0b: 0xf0001919, + 0x16c0c: 0xf0001919, 0x16c0d: 0xf0001919, 0x16c0e: 0xe00028fa, 0x16c0f: 0xe0003759, + 0x16c10: 0xe000377a, 0x16c11: 0xe0003795, 0x16c12: 0xe0003798, 0x16c13: 0xe00037a1, + 0x16c14: 0xe00037a7, 0x16c15: 0xe0002903, 0x16c16: 0xe00037b0, 0x16c17: 0xe000155c, + 0x16c18: 0xe0001562, 0x16c19: 0xe0001568, 0x16c1a: 0xe0001571, 0x16c1b: 0xe0001580, + 0x16c1c: 0xf0001717, 0x16c1d: 0xf0001717, 0x16c1e: 0xf0001717, 0x16c1f: 0xf0001717, + 0x16c20: 0xf0001717, 0x16c21: 0xf0001717, 0x16c22: 0xf0001717, 0x16c23: 0xf0001717, + 0x16c24: 0xf0001717, 0x16c25: 0xf0001717, 0x16c26: 0xf0001717, 0x16c27: 0xf0001717, + 0x16c28: 0xf0001717, 0x16c29: 0xf0001717, 0x16c2a: 0xf0001717, 0x16c2b: 0xf0001717, + 0x16c2c: 0xf0001717, 0x16c2d: 0xf0001717, 0x16c2e: 0xf0001717, 0x16c2f: 0xf0001717, + 0x16c30: 0xf0001717, 0x16c31: 0xf0001717, 0x16c32: 0xf0001717, 0x16c33: 0xf0001717, + 0x16c34: 0xf0001717, 0x16c35: 0xf0001717, 0x16c36: 0xf0001717, 0x16c37: 0xf0001717, + 0x16c38: 0xf0001717, 0x16c39: 0xf0001717, 0x16c3a: 0xf0001717, 0x16c3b: 0xf0001717, + 0x16c3c: 0xf0001717, 0x16c3d: 0xf0001717, 0x16c3e: 0xf0001717, 0x16c3f: 0xf0001717, + // Block 0x5b1, offset 0x16c40 + 0x16c40: 0xf0001717, 0x16c41: 0xf0001717, 0x16c42: 0xf0001717, 0x16c43: 0xf0001717, + 0x16c44: 0xe0003717, 0x16c45: 0xe000371d, 0x16c46: 0xe0003723, 0x16c47: 0xe0003729, + 0x16c48: 0xe0003735, 0x16c49: 0xf0001717, 0x16c4a: 0xf0001717, 0x16c4b: 0xf0001717, + 0x16c4c: 0xf0001717, 0x16c4d: 0xf0001717, 0x16c4e: 0xf0001717, 0x16c4f: 0xf0001717, + 0x16c50: 0xf0001717, 0x16c51: 0xf0001717, 0x16c52: 0xf0001717, 0x16c53: 0xf0001717, + 0x16c54: 0xf0001717, 0x16c55: 0xf0001717, 0x16c56: 0xf0001717, 0x16c57: 0xf0001717, + 0x16c58: 0xf0001717, 0x16c59: 0xf0001717, 0x16c5a: 0xe0003783, 0x16c5b: 0xe0003789, + 0x16c5c: 0xe000378f, 0x16c5d: 0xe000379b, 0x16c5e: 0xe00037aa, 0x16c5f: 0xe0001574, + 0x16c60: 0xe0001583, 0x16c61: 0xf0001818, 0x16c62: 0xf0001818, 0x16c63: 0xf0001818, + 0x16c64: 0xf0001818, 0x16c65: 0xf0001818, 0x16c66: 0xf0001818, 0x16c67: 0xf0001818, + 0x16c68: 0xf0001818, 0x16c69: 0xf0001818, 0x16c6a: 0xf0001818, 0x16c6b: 0xe000372c, + 0x16c6c: 0xe0003738, 0x16c6d: 0xf0001818, 0x16c6e: 0xf0001818, 0x16c6f: 0xf0001818, + 0x16c70: 0xe000379e, 0x16c71: 0xe00037ad, 0x16c72: 0xf0001818, 0x16c73: 0xe0003690, + 0x16c74: 0xe0003693, 0x16c75: 0xe00028d0, 0x16c76: 0xe00036f6, 0x16c77: 0xe00028d6, + 0x16c78: 0xe00036fc, 0x16c79: 0xe00028dc, 0x16c7a: 0xe0003702, 0x16c7b: 0xe00028b8, + 0x16c7c: 0xe00036d8, 0x16c7d: 0xe00028be, 0x16c7e: 0xe00036e4, 0x16c7f: 0xe00028ac, + // Block 0x5b2, offset 0x16c80 + 0x16c80: 0xe00036c6, 0x16c81: 0xe00028a6, 0x16c82: 0xe00036c0, 0x16c83: 0xe00028b2, + 0x16c84: 0xe00036cc, 0x16c85: 0xe00028c4, 0x16c86: 0xe00036ea, 0x16c87: 0xe00028ca, + 0x16c88: 0xe00036f0, 0x16c89: 0xf0001a1a, 0x16c8a: 0xf0001a1a, 0x16c8b: 0xf0001a1a, + 0x16c8c: 0xf0001a1a, 0x16c8d: 0xf0001a1a, 0x16c8e: 0xf0001a1a, 0x16c8f: 0xf0001a1a, + 0x16c90: 0xf0001a1a, 0x16c91: 0xe00028cd, 0x16c92: 0xe00036f3, 0x16c93: 0xe00028d3, + 0x16c94: 0xe00036f9, 0x16c95: 0xe00028d9, 0x16c96: 0xe00036ff, 0x16c97: 0xe00028b5, + 0x16c98: 0xe00036d5, 0x16c99: 0xe00028bb, 0x16c9a: 0xe00036e1, 0x16c9b: 0xe00028a9, + 0x16c9c: 0xe00036c3, 0x16c9d: 0xe00028a3, 0x16c9e: 0xe00036bd, 0x16c9f: 0xe00028af, + 0x16ca0: 0xe00036c9, 0x16ca1: 0xe00028c1, 0x16ca2: 0xe00036e7, 0x16ca3: 0xe00028c7, + 0x16ca4: 0xe00036ed, 0x16ca5: 0xf0001919, 0x16ca6: 0xf0001919, 0x16ca7: 0xf0001919, + 0x16ca8: 0xf0001919, 0x16ca9: 0xf0001919, 0x16caa: 0xf0001919, 0x16cab: 0xf0001919, + 0x16cac: 0xf0001919, 0x16cad: 0xf0001717, 0x16cae: 0xf0001717, 0x16caf: 0xf0001717, + 0x16cb0: 0xf0001717, 0x16cb1: 0xf0001717, 0x16cb2: 0xf0001717, 0x16cb3: 0xf0001717, + 0x16cb4: 0xf0001818, 0x16cb5: 0xf0001818, 0x16cb6: 0xf0001818, 0x16cb7: 0xf0001818, + 0x16cb8: 0xf0001818, 0x16cb9: 0xf0001818, 0x16cba: 0xf0001818, 0x16cbb: 0xf0001818, + 0x16cbc: 0xe0003696, 0x16cbd: 0xe0003699, 0x16cbe: 0x4004c020, 0x16cbf: 0x4004c220, + // Block 0x5b3, offset 0x16cc0 + 0x16cc0: 0xa0000000, 0x16cc1: 0xa0000000, 0x16cc2: 0xa0000000, 0x16cc3: 0xa0000000, + 0x16cc4: 0xa0000000, 0x16cc5: 0xa0000000, 0x16cc6: 0xa0000000, 0x16cc7: 0xa0000000, + 0x16cc8: 0xa0000000, 0x16cc9: 0x40020020, 0x16cca: 0x40020220, 0x16ccb: 0x40020420, + 0x16ccc: 0x40020620, 0x16ccd: 0x40020820, 0x16cce: 0xa0000000, 0x16ccf: 0xa0000000, + 0x16cd0: 0xa0000000, 0x16cd1: 0xa0000000, 0x16cd2: 0xa0000000, 0x16cd3: 0xa0000000, + 0x16cd4: 0xa0000000, 0x16cd5: 0xa0000000, 0x16cd6: 0xa0000000, 0x16cd7: 0xa0000000, + 0x16cd8: 0xa0000000, 0x16cd9: 0xa0000000, 0x16cda: 0xa0000000, 0x16cdb: 0xa0000000, + 0x16cdc: 0xa0000000, 0x16cdd: 0xa0000000, 0x16cde: 0xa0000000, 0x16cdf: 0xa0000000, + 0x16ce0: 0x40021220, 0x16ce1: 0x4002ba20, 0x16ce2: 0x4003e020, 0x16ce3: 0x4004ea20, + 0x16ce4: 0x4027de20, 0x16ce5: 0x4004ec20, 0x16ce6: 0x4004e620, 0x16ce7: 0x4003d220, + 0x16ce8: 0x4003f420, 0x16ce9: 0x4003f620, 0x16cea: 0x4004d820, 0x16ceb: 0x40093820, + 0x16cec: 0x40024020, 0x16ced: 0x40021a20, 0x16cee: 0x4002e420, 0x16cef: 0x4004e220, + 0x16cf0: 0x4029cc20, 0x16cf1: 0x4029ce20, 0x16cf2: 0x4029d020, 0x16cf3: 0x4029d220, + 0x16cf4: 0x4029d420, 0x16cf5: 0x4029d620, 0x16cf6: 0x4029d820, 0x16cf7: 0x4029da20, + 0x16cf8: 0x4029dc20, 0x16cf9: 0x4029de20, 0x16cfa: 0x40026c20, 0x16cfb: 0x40026220, + 0x16cfc: 0x40094020, 0x16cfd: 0x40094220, 0x16cfe: 0x40094420, 0x16cff: 0x4002c420, + // Block 0x5b4, offset 0x16d00 + 0x16d00: 0x4004d620, 0x16d01: 0xcead9741, 0x16d02: 0x002c0a88, 0x16d03: 0x002c3a88, + 0x16d04: 0x002c6288, 0x16d05: 0x002c9888, 0x16d06: 0x002d0888, 0x16d07: 0x002d2288, + 0x16d08: 0x002d6888, 0x16d09: 0xc6182741, 0x16d0a: 0x002dcc88, 0x16d0b: 0x002dfe88, + 0x16d0c: 0xc0030002, 0x16d0d: 0x002e8288, 0x16d0e: 0x002e9e88, 0x16d0f: 0x002ee288, + 0x16d10: 0x002f2c88, 0x16d11: 0x002f5688, 0x16d12: 0x002f7a88, 0x16d13: 0xceb39771, + 0x16d14: 0xceb99771, 0x16d15: 0x00306c88, 0x16d16: 0x0030be88, 0x16d17: 0x0030e288, + 0x16d18: 0x0030f688, 0x16d19: 0x00310088, 0x16d1a: 0x00312a88, 0x16d1b: 0x4003f820, + 0x16d1c: 0x4004e420, 0x16d1d: 0x4003fa20, 0x16d1e: 0x40062420, 0x16d1f: 0x40021620, + 0x16d20: 0x40061e20, 0x16d21: 0xceaa9741, 0x16d22: 0x402c0a20, 0x16d23: 0x402c3a20, + 0x16d24: 0x402c6220, 0x16d25: 0x402c9820, 0x16d26: 0x402d0820, 0x16d27: 0x402d2220, + 0x16d28: 0x402d6820, 0x16d29: 0xc6162741, 0x16d2a: 0x402dcc20, 0x16d2b: 0x402dfe20, + 0x16d2c: 0xc0000002, 0x16d2d: 0x402e8220, 0x16d2e: 0x402e9e20, 0x16d2f: 0x402ee220, + 0x16d30: 0x402f2c20, 0x16d31: 0x402f5620, 0x16d32: 0x402f7a20, 0x16d33: 0xceb09771, + 0x16d34: 0xceb69771, 0x16d35: 0x40306c20, 0x16d36: 0x4030be20, 0x16d37: 0x4030e220, + 0x16d38: 0x4030f620, 0x16d39: 0x40310020, 0x16d3a: 0x40312a20, 0x16d3b: 0x4003fc20, + 0x16d3c: 0x40094820, 0x16d3d: 0x4003fe20, 0x16d3e: 0x40094c20, 0x16d3f: 0xa0000000, + // Block 0x5b5, offset 0x16d40 + 0x16d40: 0xe00008f5, 0x16d41: 0xe00008ef, 0x16d42: 0x002be283, 0x16d43: 0xe0000969, + 0x16d44: 0xe000095b, 0x16d45: 0xe000094d, 0x16d46: 0xe00009dd, 0x16d47: 0xe0000a53, + 0x16d48: 0xe0000ae8, 0x16d49: 0xe0000ae2, 0x16d4a: 0xe0000af4, 0x16d4b: 0xe0000b20, + 0x16d4c: 0xe0000c2b, 0x16d4d: 0xe0000c25, 0x16d4e: 0x002d9c83, 0x16d4f: 0xe0000c43, + 0x16d50: 0xe0000ab3, 0x16d51: 0xe0000d63, 0x16d52: 0xe0000d9a, 0x16d53: 0xe0000d94, + 0x16d54: 0xe0000da6, 0x16d55: 0xe0000de6, 0x16d56: 0xe0000dd2, 0x16d57: 0x40093e20, + 0x16d58: 0xe0000e12, 0x16d59: 0xe0000fe1, 0x16d5a: 0xe0000fdb, 0x16d5b: 0xe0000fed, + 0x16d5c: 0xe0000fff, 0x16d5d: 0xe0001102, 0x16d5e: 0x00318888, 0x16d5f: 0xe0000f7b, + 0x16d60: 0xe00008f2, 0x16d61: 0xe00008ec, 0x16d62: 0x402be220, 0x16d63: 0xe0000966, + 0x16d64: 0xe0000958, 0x16d65: 0xe000094a, 0x16d66: 0xe00009d5, 0x16d67: 0xe0000a4d, + 0x16d68: 0xe0000ae5, 0x16d69: 0xe0000adf, 0x16d6a: 0xe0000af1, 0x16d6b: 0xe0000b1d, + 0x16d6c: 0xe0000c28, 0x16d6d: 0xe0000c22, 0x16d6e: 0x402d9c20, 0x16d6f: 0xe0000c40, + 0x16d70: 0xe0000aad, 0x16d71: 0xe0000d60, 0x16d72: 0xe0000d97, 0x16d73: 0xe0000d91, + 0x16d74: 0xe0000da3, 0x16d75: 0xe0000de3, 0x16d76: 0xe0000dcf, 0x16d77: 0x40093c20, + 0x16d78: 0xe0000e0f, 0x16d79: 0xe0000fde, 0x16d7a: 0xe0000fd8, 0x16d7b: 0xe0000fea, + 0x16d7c: 0xe0000ffc, 0x16d7d: 0xe00010ff, 0x16d7e: 0x40318820, 0x16d7f: 0xe0001114, + // Block 0x5b6, offset 0x16d80 + 0x16d80: 0xe0000983, 0x16d81: 0xe0000980, 0x16d82: 0x002be083, 0x16d83: 0x402be020, + 0x16d84: 0xe000097d, 0x16d85: 0xe000097a, 0x16d86: 0xe0000a38, 0x16d87: 0xe0000a35, + 0x16d88: 0xe0000a3e, 0x16d89: 0xe0000a3b, 0x16d8a: 0xe0000a4a, 0x16d8b: 0xe0000a47, + 0x16d8c: 0xe0000a44, 0x16d8d: 0xe0000a41, 0x16d8e: 0xe0000a86, 0x16d8f: 0xe0000a83, + 0x16d90: 0xe0000aaa, 0x16d91: 0xe0000aa7, 0x16d92: 0xe0000b46, 0x16d93: 0xe0000b43, + 0x16d94: 0xe0000aee, 0x16d95: 0xe0000aeb, 0x16d96: 0xe0000b2c, 0x16d97: 0xe0000b29, + 0x16d98: 0xe0000b40, 0x16d99: 0xe0000b3d, 0x16d9a: 0xe0000b1a, 0x16d9b: 0xe0000b17, + 0x16d9c: 0xe0000bb8, 0x16d9d: 0xe0000bb5, 0x16d9e: 0xe0000bb2, 0x16d9f: 0xe0000baf, + 0x16da0: 0xe0000bc4, 0x16da1: 0xe0000bc1, 0x16da2: 0xe0000bca, 0x16da3: 0xe0000bc7, + 0x16da4: 0xe0000bee, 0x16da5: 0xe0000beb, 0x16da6: 0xe0000c1b, 0x16da7: 0xe0000c18, + 0x16da8: 0xe0000c51, 0x16da9: 0xe0000c4e, 0x16daa: 0xe0000c60, 0x16dab: 0xe0000c5d, + 0x16dac: 0xe0000c31, 0x16dad: 0xe0000c2e, 0x16dae: 0xe0000c5a, 0x16daf: 0xe0000c57, + 0x16db0: 0xe0000c54, 0x16db1: 0x402da220, 0x16db2: 0xf0000a0a, 0x16db3: 0xf0000404, + 0x16db4: 0xe0000c8a, 0x16db5: 0xe0000c87, 0x16db6: 0xe0000c9f, 0x16db7: 0xe0000c9c, + 0x16db8: 0x402f7220, 0x16db9: 0xe0000ccc, 0x16dba: 0xe0000cc9, 0x16dbb: 0xe0000cd8, + 0x16dbc: 0xe0000cd5, 0x16dbd: 0xe0000cd2, 0x16dbe: 0xe0000ccf, 0x16dbf: 0xe0000d04, + // Block 0x5b7, offset 0x16dc0 + 0x16dc0: 0xe0000cfe, 0x16dc1: 0xe0000cf8, 0x16dc2: 0xe0000cf5, 0x16dc3: 0xe0000d51, + 0x16dc4: 0xe0000d4e, 0x16dc5: 0xe0000d6f, 0x16dc6: 0xe0000d6c, 0x16dc7: 0xe0000d5d, + 0x16dc8: 0xe0000d5a, 0x16dc9: 0xf0000404, 0x16dca: 0x002eda88, 0x16dcb: 0x402eda20, + 0x16dcc: 0xe0000e2e, 0x16dcd: 0xe0000e2b, 0x16dce: 0xe0000da0, 0x16dcf: 0xe0000d9d, + 0x16dd0: 0xe0000de0, 0x16dd1: 0xe0000ddd, 0x16dd2: 0xe0000e93, 0x16dd3: 0xe0000e8f, + 0x16dd4: 0xe0000eca, 0x16dd5: 0xe0000ec7, 0x16dd6: 0xe0000edc, 0x16dd7: 0xe0000ed9, + 0x16dd8: 0xe0000ed0, 0x16dd9: 0xe0000ecd, 0x16dda: 0xe0000f1f, 0x16ddb: 0xe0000f1c, + 0x16ddc: 0xe0000f2d, 0x16ddd: 0xe0000f2a, 0x16dde: 0x002fe883, 0x16ddf: 0x402fe820, + 0x16de0: 0xe0000f33, 0x16de1: 0xe0000f30, 0x16de2: 0x00302e83, 0x16de3: 0x40302e20, + 0x16de4: 0xe0000f8a, 0x16de5: 0xe0000f87, 0x16de6: 0x00303688, 0x16de7: 0x40303620, + 0x16de8: 0xe000102b, 0x16de9: 0xe0001028, 0x16dea: 0xe000103f, 0x16deb: 0xe000103c, + 0x16dec: 0xe0000fe7, 0x16ded: 0xe0000fe4, 0x16dee: 0xe0000ff9, 0x16def: 0xe0000ff6, + 0x16df0: 0xe0001025, 0x16df1: 0xe0001022, 0x16df2: 0xe0001039, 0x16df3: 0xe0001036, + 0x16df4: 0xe00010d8, 0x16df5: 0xe00010d5, 0x16df6: 0xe000110e, 0x16df7: 0xe000110b, + 0x16df8: 0xe0001117, 0x16df9: 0xe000113b, 0x16dfa: 0xe0001138, 0x16dfb: 0xe000114d, + 0x16dfc: 0xe000114a, 0x16dfd: 0xe0001147, 0x16dfe: 0xe0001144, 0x16dff: 0xe0000f64, + // Block 0x5b8, offset 0x16e00 + 0x16e00: 0xe000098f, 0x16e01: 0xe000098c, 0x16e02: 0xe0000995, 0x16e03: 0xe0000992, + 0x16e04: 0xe0000b62, 0x16e05: 0xe0000b5f, 0x16e06: 0xe0000b68, 0x16e07: 0xe0000b65, + 0x16e08: 0xe0000c6c, 0x16e09: 0xe0000c69, 0x16e0a: 0xe0000c72, 0x16e0b: 0xe0000c6f, + 0x16e0c: 0xe0000e4a, 0x16e0d: 0xe0000e47, 0x16e0e: 0xe0000e50, 0x16e0f: 0xe0000e4d, + 0x16e10: 0xe0000ee8, 0x16e11: 0xe0000ee5, 0x16e12: 0xe0000eee, 0x16e13: 0xe0000eeb, + 0x16e14: 0xe0001053, 0x16e15: 0xe0001050, 0x16e16: 0xe0001059, 0x16e17: 0xe0001056, + 0x16e18: 0x002fe883, 0x16e19: 0x402fe820, 0x16e1a: 0x00302e83, 0x16e1b: 0x40302e20, + 0x16e1c: 0x00312288, 0x16e1d: 0x40312220, 0x16e1e: 0xe0000bf4, 0x16e1f: 0xe0000bf1, + 0x16e20: 0x002ebc88, 0x16e21: 0x402c8c20, 0x16e22: 0x002f2288, 0x16e23: 0x402f2220, + 0x16e24: 0x00314088, 0x16e25: 0x40314020, 0x16e26: 0xe000096f, 0x16e27: 0xe000096c, + 0x16e28: 0xe0000b32, 0x16e29: 0xe0000b2f, 0x16e2a: 0xe0000dd9, 0x16e2b: 0xe0000dd5, + 0x16e2c: 0xe0000dfd, 0x16e2d: 0xe0000df9, 0x16e2e: 0xe0000e04, 0x16e2f: 0xe0000e01, + 0x16e30: 0xe0000e0b, 0x16e31: 0xe0000e07, 0x16e32: 0xe0001129, 0x16e33: 0xe0001126, + 0x16e34: 0x402e5e20, 0x16e35: 0x402ed020, 0x16e36: 0x40305a20, 0x16e37: 0x402dd420, + 0x16e38: 0xe0000abf, 0x16e39: 0xe0000ec4, 0x16e3a: 0x002be888, 0x16e3b: 0x002c4488, + 0x16e3c: 0x402c4420, 0x16e3d: 0x002e3888, 0x16e3e: 0x00303e88, 0x16e3f: 0x402ffc20, + // Block 0x5b9, offset 0x16e40 + 0x16e40: 0xe00010d2, 0x16e41: 0xe00010cf, 0x16e42: 0xe00010cc, 0x16e43: 0xe00010c9, + 0x16e44: 0xe00010e1, 0x16e45: 0xe00010de, 0x16e46: 0xe00010e7, 0x16e47: 0xe00010e4, + 0x16e48: 0xe00010ed, 0x16e49: 0xe00010ea, 0x16e4a: 0xe00010fc, 0x16e4b: 0xe00010f9, + 0x16e4c: 0xe00010f6, 0x16e4d: 0xe00010f3, 0x16e4e: 0xe0001123, 0x16e4f: 0xe0001120, + 0x16e50: 0xe0001141, 0x16e51: 0xe000113e, 0x16e52: 0xe0001153, 0x16e53: 0xe0001150, + 0x16e54: 0xe0001159, 0x16e55: 0xe0001156, 0x16e56: 0xe0000c15, 0x16e57: 0xe0000f8d, + 0x16e58: 0xe00010db, 0x16e59: 0xe0001111, 0x16e5a: 0xf0000404, 0x16e5b: 0xe0000f70, + 0x16e5c: 0x40300420, 0x16e5d: 0x40300620, 0x16e5e: 0xe0000f7f, 0x16e5f: 0x402c9620, + 0x16e60: 0xe000099b, 0x16e61: 0xe0000998, 0x16e62: 0xe0000989, 0x16e63: 0xe0000986, + 0x16e64: 0xe0003934, 0x16e65: 0xe0003931, 0x16e66: 0xe000393a, 0x16e67: 0xe0003937, + 0x16e68: 0xe0003975, 0x16e69: 0xe0003972, 0x16e6a: 0xe0003960, 0x16e6b: 0xe000395d, + 0x16e6c: 0xe0003987, 0x16e6d: 0xe0003984, 0x16e6e: 0xe000388e, 0x16e6f: 0xe000388b, + 0x16e70: 0xe0003894, 0x16e71: 0xe0003891, 0x16e72: 0xe0003908, 0x16e73: 0xe0003905, + 0x16e74: 0xe00038d2, 0x16e75: 0xe00038cf, 0x16e76: 0xe000391a, 0x16e77: 0xe0003917, + 0x16e78: 0xe0000b6e, 0x16e79: 0xe0000b6b, 0x16e7a: 0xe0000b5c, 0x16e7b: 0xe0000b59, + 0x16e7c: 0xe0000b26, 0x16e7d: 0xe0000b23, 0x16e7e: 0xe0000afb, 0x16e7f: 0xe0000af7, + // Block 0x5ba, offset 0x16e80 + 0x16e80: 0xa0000000, 0x16e81: 0xa0000000, 0x16e82: 0xa0000000, 0x16e83: 0xa0000000, + 0x16e84: 0xa0000000, 0x16e85: 0xa0000000, 0x16e86: 0xa0000000, 0x16e87: 0xa0000000, + 0x16e88: 0xa0000000, 0x16e89: 0x40020020, 0x16e8a: 0x40020220, 0x16e8b: 0x40020420, + 0x16e8c: 0x40020620, 0x16e8d: 0x40020820, 0x16e8e: 0xa0000000, 0x16e8f: 0xa0000000, + 0x16e90: 0xa0000000, 0x16e91: 0xa0000000, 0x16e92: 0xa0000000, 0x16e93: 0xa0000000, + 0x16e94: 0xa0000000, 0x16e95: 0xa0000000, 0x16e96: 0xa0000000, 0x16e97: 0xa0000000, + 0x16e98: 0xa0000000, 0x16e99: 0xa0000000, 0x16e9a: 0xa0000000, 0x16e9b: 0xa0000000, + 0x16e9c: 0xa0000000, 0x16e9d: 0xa0000000, 0x16e9e: 0xa0000000, 0x16e9f: 0xa0000000, + 0x16ea0: 0x40021220, 0x16ea1: 0x4002ba20, 0x16ea2: 0x4003e020, 0x16ea3: 0x4004ea20, + 0x16ea4: 0x4027de20, 0x16ea5: 0x4004ec20, 0x16ea6: 0x4004e620, 0x16ea7: 0x4003d220, + 0x16ea8: 0x4003f420, 0x16ea9: 0x4003f620, 0x16eaa: 0x4004d820, 0x16eab: 0x40093820, + 0x16eac: 0x40024020, 0x16ead: 0x40021a20, 0x16eae: 0x4002e420, 0x16eaf: 0x4004e220, + 0x16eb0: 0x4029cc20, 0x16eb1: 0x4029ce20, 0x16eb2: 0x4029d020, 0x16eb3: 0x4029d220, + 0x16eb4: 0x4029d420, 0x16eb5: 0x4029d620, 0x16eb6: 0x4029d820, 0x16eb7: 0x4029da20, + 0x16eb8: 0x4029dc20, 0x16eb9: 0x4029de20, 0x16eba: 0x40026c20, 0x16ebb: 0x40026220, + 0x16ebc: 0x40094020, 0x16ebd: 0x40094220, 0x16ebe: 0x40094420, 0x16ebf: 0x4002c420, + // Block 0x5bb, offset 0x16ec0 + 0x16ec0: 0x4004d620, 0x16ec1: 0xcec29791, 0x16ec2: 0x002c0a88, 0x16ec3: 0xceca0991, + 0x16ec4: 0x002c6288, 0x16ec5: 0x002c9888, 0x16ec6: 0x002d0888, 0x16ec7: 0xced20991, + 0x16ec8: 0x002d6888, 0x16ec9: 0x002d9a88, 0x16eca: 0x002dcc88, 0x16ecb: 0xcb1f0991, + 0x16ecc: 0xc0030002, 0x16ecd: 0x002e8288, 0x16ece: 0xced797e1, 0x16ecf: 0xcee49811, + 0x16ed0: 0x002f2c88, 0x16ed1: 0x002f5688, 0x16ed2: 0x002f7a88, 0x16ed3: 0xcb330991, + 0x16ed4: 0x00302c88, 0x16ed5: 0xc3900b21, 0x16ed6: 0x0030be88, 0x16ed7: 0x0030e288, + 0x16ed8: 0x0030f688, 0x16ed9: 0x00310088, 0x16eda: 0xcedc0991, 0x16edb: 0x4003f820, + 0x16edc: 0x4004e420, 0x16edd: 0x4003fa20, 0x16ede: 0x40062420, 0x16edf: 0x40021620, + 0x16ee0: 0x40061e20, 0x16ee1: 0xcebc9791, 0x16ee2: 0x402c0a20, 0x16ee3: 0xcec80991, + 0x16ee4: 0x402c6220, 0x16ee5: 0x402c9820, 0x16ee6: 0x402d0820, 0x16ee7: 0xced00991, + 0x16ee8: 0x402d6820, 0x16ee9: 0x402d9a20, 0x16eea: 0x402dcc20, 0x16eeb: 0xcb1d0991, + 0x16eec: 0xc0000002, 0x16eed: 0x402e8220, 0x16eee: 0xced497e1, 0x16eef: 0xcede9811, + 0x16ef0: 0x402f2c20, 0x16ef1: 0x402f5620, 0x16ef2: 0x402f7a20, 0x16ef3: 0xcb310991, + 0x16ef4: 0x40302c20, 0x16ef5: 0xc38d0b21, 0x16ef6: 0x4030be20, 0x16ef7: 0x4030e220, + 0x16ef8: 0x4030f620, 0x16ef9: 0x40310020, 0x16efa: 0xceda0991, 0x16efb: 0x4003fc20, + 0x16efc: 0x40094820, 0x16efd: 0x4003fe20, 0x16efe: 0x40094c20, 0x16eff: 0xa0000000, + // Block 0x5bc, offset 0x16f00 + 0x16f00: 0xe00008f5, 0x16f01: 0x002c0883, 0x16f02: 0xe0000921, 0x16f03: 0x00320ea3, + 0x16f04: 0x00320e83, 0x16f05: 0x00320c83, 0x16f06: 0x00320a83, 0x16f07: 0xe0000a53, + 0x16f08: 0xe0000ae8, 0x16f09: 0xe0000ae2, 0x16f0a: 0xe0000af4, 0x16f0b: 0xe0000b20, + 0x16f0c: 0xe0000c2b, 0x16f0d: 0xe0000c25, 0x16f0e: 0xe0000c37, 0x16f0f: 0xe0000c43, + 0x16f10: 0x002c96a3, 0x16f11: 0x002ee0c3, 0x16f12: 0xe0000d9a, 0x16f13: 0xe0000d94, + 0x16f14: 0x003210e3, 0x16f15: 0x003210c3, 0x16f16: 0x00321083, 0x16f17: 0x40093e20, + 0x16f18: 0x00320883, 0x16f19: 0xe0000fe1, 0x16f1a: 0xe0000fdb, 0x16f1b: 0xe0000fed, + 0x16f1c: 0x003100a3, 0x16f1d: 0xe0001102, 0x16f1e: 0x00306aa3, 0x16f1f: 0xe0000f7b, + 0x16f20: 0xe00008f2, 0x16f21: 0x402c0820, 0x16f22: 0xe000091e, 0x16f23: 0x40320e21, + 0x16f24: 0x40320e20, 0x16f25: 0x40320c20, 0x16f26: 0x40320a20, 0x16f27: 0xe0000a4d, + 0x16f28: 0xe0000ae5, 0x16f29: 0xe0000adf, 0x16f2a: 0xe0000af1, 0x16f2b: 0xe0000b1d, + 0x16f2c: 0xe0000c28, 0x16f2d: 0xe0000c22, 0x16f2e: 0xe0000c34, 0x16f2f: 0xe0000c40, + 0x16f30: 0x402c9621, 0x16f31: 0x402ee022, 0x16f32: 0xe0000d97, 0x16f33: 0xe0000d91, + 0x16f34: 0x40321023, 0x16f35: 0x40321022, 0x16f36: 0x40321020, 0x16f37: 0x40093c20, + 0x16f38: 0x40320820, 0x16f39: 0xe0000fde, 0x16f3a: 0xe0000fd8, 0x16f3b: 0xe0000fea, + 0x16f3c: 0x40310021, 0x16f3d: 0xe00010ff, 0x16f3e: 0x40306a21, 0x16f3f: 0xe0001114, + // Block 0x5bd, offset 0x16f40 + 0x16f40: 0xe0000983, 0x16f41: 0xe0000980, 0x16f42: 0xe00008fb, 0x16f43: 0xe00008f8, + 0x16f44: 0xe000097d, 0x16f45: 0xe000097a, 0x16f46: 0xe0000a38, 0x16f47: 0xe0000a35, + 0x16f48: 0xe0000a3e, 0x16f49: 0xe0000a3b, 0x16f4a: 0xe0000a4a, 0x16f4b: 0xe0000a47, + 0x16f4c: 0x002c5c83, 0x16f4d: 0x402c5c20, 0x16f4e: 0xe0000a86, 0x16f4f: 0xe0000a83, + 0x16f50: 0x002c9683, 0x16f51: 0x402c9620, 0x16f52: 0xe0000b46, 0x16f53: 0xe0000b43, + 0x16f54: 0xe0000aee, 0x16f55: 0xe0000aeb, 0x16f56: 0xe0000b2c, 0x16f57: 0xe0000b29, + 0x16f58: 0xe0000b40, 0x16f59: 0xe0000b3d, 0x16f5a: 0xe0000b1a, 0x16f5b: 0xe0000b17, + 0x16f5c: 0xe0000bb8, 0x16f5d: 0xe0000bb5, 0x16f5e: 0xe0000bb2, 0x16f5f: 0xe0000baf, + 0x16f60: 0xe0000bc4, 0x16f61: 0xe0000bc1, 0x16f62: 0xe0000bca, 0x16f63: 0xe0000bc7, + 0x16f64: 0xe0000bee, 0x16f65: 0xe0000beb, 0x16f66: 0xe0000c1b, 0x16f67: 0xe0000c18, + 0x16f68: 0xe0000c51, 0x16f69: 0xe0000c4e, 0x16f6a: 0xe0000c60, 0x16f6b: 0xe0000c5d, + 0x16f6c: 0xe0000c31, 0x16f6d: 0xe0000c2e, 0x16f6e: 0xe0000c5a, 0x16f6f: 0xe0000c57, + 0x16f70: 0xe0000c54, 0x16f71: 0x402da220, 0x16f72: 0xf0000a0a, 0x16f73: 0xf0000404, + 0x16f74: 0xe0000c8a, 0x16f75: 0xe0000c87, 0x16f76: 0xe0000c9f, 0x16f77: 0xe0000c9c, + 0x16f78: 0x402f7220, 0x16f79: 0xe0000ccc, 0x16f7a: 0xe0000cc9, 0x16f7b: 0xe0000cd8, + 0x16f7c: 0xe0000cd5, 0x16f7d: 0xe0000cd2, 0x16f7e: 0xe0000ccf, 0x16f7f: 0xe0000d04, + // Block 0x5be, offset 0x16f80 + 0x16f80: 0xe0000cfe, 0x16f81: 0xe0000cf8, 0x16f82: 0xe0000cf5, 0x16f83: 0x002ee0a3, + 0x16f84: 0x402ee021, 0x16f85: 0xe0000d6f, 0x16f86: 0xe0000d6c, 0x16f87: 0xe0000d5d, + 0x16f88: 0xe0000d5a, 0x16f89: 0xf0000404, 0x16f8a: 0x002ee083, 0x16f8b: 0x402ee020, + 0x16f8c: 0xe0000e2e, 0x16f8d: 0xe0000e2b, 0x16f8e: 0xe0000da0, 0x16f8f: 0xe0000d9d, + 0x16f90: 0x003210a3, 0x16f91: 0x40321021, 0x16f92: 0x003208a3, 0x16f93: 0x40320821, + 0x16f94: 0xe0000eca, 0x16f95: 0xe0000ec7, 0x16f96: 0xe0000edc, 0x16f97: 0xe0000ed9, + 0x16f98: 0xe0000ed0, 0x16f99: 0xe0000ecd, 0x16f9a: 0xe0000f1f, 0x16f9b: 0xe0000f1c, + 0x16f9c: 0xe0000f2d, 0x16f9d: 0xe0000f2a, 0x16f9e: 0xe0000f47, 0x16f9f: 0xe0000f44, + 0x16fa0: 0x00302a83, 0x16fa1: 0x40302a20, 0x16fa2: 0xe0000f99, 0x16fa3: 0xe0000f96, + 0x16fa4: 0xe0000f8a, 0x16fa5: 0xe0000f87, 0x16fa6: 0x00306a83, 0x16fa7: 0x40306a20, + 0x16fa8: 0xe000102b, 0x16fa9: 0xe0001028, 0x16faa: 0xe000103f, 0x16fab: 0xe000103c, + 0x16fac: 0xe0000fe7, 0x16fad: 0xe0000fe4, 0x16fae: 0xe0000ff9, 0x16faf: 0xe0000ff6, + 0x16fb0: 0x003100c3, 0x16fb1: 0x40310022, 0x16fb2: 0xe0001039, 0x16fb3: 0xe0001036, + 0x16fb4: 0xe00010d8, 0x16fb5: 0xe00010d5, 0x16fb6: 0xe000110e, 0x16fb7: 0xe000110b, + 0x16fb8: 0xe0001117, 0x16fb9: 0xe000113b, 0x16fba: 0xe0001138, 0x16fbb: 0xe000114d, + 0x16fbc: 0xe000114a, 0x16fbd: 0x00320683, 0x16fbe: 0x40320620, 0x16fbf: 0xe0000f64, + // Block 0x5bf, offset 0x16fc0 + 0x16fc0: 0x402c1a20, 0x16fc1: 0x002c2a88, 0x16fc2: 0x002c3288, 0x16fc3: 0x402c3220, + 0x16fc4: 0x0031c488, 0x16fc5: 0x4031c420, 0x16fc6: 0x002efa88, 0x16fc7: 0x002c4e88, + 0x16fc8: 0x402c4e20, 0x16fc9: 0x002c7288, 0x16fca: 0x002c7a88, 0x16fcb: 0x002c8488, + 0x16fcc: 0x402c8420, 0x16fcd: 0xe000115c, 0x16fce: 0x002cae88, 0x16fcf: 0x002cb888, + 0x16fd0: 0x002cc288, 0x16fd1: 0x002d1688, 0x16fd2: 0x402d1620, 0x16fd3: 0x002d4488, + 0x16fd4: 0x002d5888, 0x16fd5: 0x402d7820, 0x16fd6: 0x002dc288, 0x16fd7: 0x002db688, + 0x16fd8: 0x002e0a88, 0x16fd9: 0x402e0a20, 0x16fda: 0x402e3820, 0x16fdb: 0x402e7220, + 0x16fdc: 0x0030a088, 0x16fdd: 0x002eb488, 0x16fde: 0x402ebc20, 0x16fdf: 0x002f1088, + 0x16fe0: 0xe0000e56, 0x16fe1: 0xe0000e53, 0x16fe2: 0x002d6088, 0x16fe3: 0x402d6020, + 0x16fe4: 0x002f3e88, 0x16fe5: 0x402f3e20, 0x16fe6: 0x002f8288, 0x16fe7: 0x0031b488, + 0x16fe8: 0x4031b420, 0x16fe9: 0x00300888, 0x16fea: 0x40301220, 0x16feb: 0x40304220, + 0x16fec: 0x00304a88, 0x16fed: 0x40304a20, 0x16fee: 0x00305288, 0x16fef: 0xe000105f, + 0x16ff0: 0xe000105c, 0x16ff1: 0x0030b488, 0x16ff2: 0x0030cc88, 0x16ff3: 0x00311888, + 0x16ff4: 0x40311820, 0x16ff5: 0x00313488, 0x16ff6: 0x40313420, 0x16ff7: 0xcece0991, + 0x16ff8: 0x00316e88, 0x16ff9: 0x40316e20, 0x16ffa: 0x40317820, 0x16ffb: 0x4031a620, + 0x16ffc: 0x0031bc88, 0x16ffd: 0x4031bc20, 0x16ffe: 0xe0000fc9, 0x16fff: 0x40319420, + // Block 0x5c0, offset 0x17000 + 0x17000: 0x40321220, 0x17001: 0x40321a20, 0x17002: 0x40322220, 0x17003: 0x40322a20, + 0x17004: 0xe0000ad5, 0x17005: 0xe0000ad1, 0x17006: 0xe0000acd, 0x17007: 0xf0000a0a, + 0x17008: 0xf000040a, 0x17009: 0xf0000404, 0x1700a: 0xf0000a0a, 0x1700b: 0xf000040a, + 0x1700c: 0xf0000404, 0x1700d: 0xe0000947, 0x1700e: 0xe0000944, 0x1700f: 0xe0000c3d, + 0x17010: 0xe0000c3a, 0x17011: 0xe0000dcc, 0x17012: 0xe0000dc9, 0x17013: 0xe0000ff3, + 0x17014: 0xe0000ff0, 0x17015: 0xe000298b, 0x17016: 0xe0002988, 0x17017: 0xe0002979, + 0x17018: 0xe0002976, 0x17019: 0xe0002985, 0x1701a: 0xe0002982, 0x1701b: 0xe000297f, + 0x1701c: 0xe000297c, 0x1701d: 0x402cae20, 0x1701e: 0xe00037e8, 0x1701f: 0xe00037e5, + 0x17020: 0xe000299d, 0x17021: 0xe000299a, 0x17022: 0xe000ad9e, 0x17023: 0xe000ad9b, + 0x17024: 0x002d6683, 0x17025: 0x402d6620, 0x17026: 0x002d6483, 0x17027: 0x402d6420, + 0x17028: 0x002e2083, 0x17029: 0x402e2020, 0x1702a: 0x00321103, 0x1702b: 0x40321024, + 0x1702c: 0xe000ade0, 0x1702d: 0xe000addd, 0x1702e: 0x002c6083, 0x1702f: 0x402c6020, + 0x17030: 0xe0000c8d, 0x17031: 0xf0000a0a, 0x17032: 0xf000040a, 0x17033: 0xf0000404, + 0x17034: 0xe0000bac, 0x17035: 0xe0000ba9, 0x17036: 0x002d7888, 0x17037: 0x00319488, + 0x17038: 0xe0000d57, 0x17039: 0xe0000d54, 0x1703a: 0xe0002991, 0x1703b: 0xe000298e, + 0x1703c: 0xe000ad98, 0x1703d: 0xe000ad95, 0x1703e: 0xe000ad92, 0x1703f: 0xe000ad8f, + // Block 0x5c1, offset 0x17040 + 0x17040: 0xe000098f, 0x17041: 0xe000098c, 0x17042: 0xe0000995, 0x17043: 0xe0000992, + 0x17044: 0xe0000b62, 0x17045: 0xe0000b5f, 0x17046: 0xe0000b68, 0x17047: 0xe0000b65, + 0x17048: 0xe0000c6c, 0x17049: 0xe0000c69, 0x1704a: 0xe0000c72, 0x1704b: 0xe0000c6f, + 0x1704c: 0xe0000e4a, 0x1704d: 0xe0000e47, 0x1704e: 0xe0000e50, 0x1704f: 0xe0000e4d, + 0x17050: 0xe0000ee8, 0x17051: 0xe0000ee5, 0x17052: 0xe0000eee, 0x17053: 0xe0000eeb, + 0x17054: 0xe0001053, 0x17055: 0xe0001050, 0x17056: 0xe0001059, 0x17057: 0xe0001056, + 0x17058: 0xe0000f61, 0x17059: 0xe0000f5e, 0x1705a: 0xe0000fa5, 0x1705b: 0xe0000fa2, + 0x1705c: 0x00312288, 0x1705d: 0x40312220, 0x1705e: 0xe0000bf4, 0x1705f: 0xe0000bf1, + 0x17060: 0x002ebc88, 0x17061: 0x402c8c20, 0x17062: 0x002f2288, 0x17063: 0x402f2220, + 0x17064: 0x00314088, 0x17065: 0x40314020, 0x17066: 0x00320ca3, 0x17067: 0x40320c21, + 0x17068: 0xe0000b32, 0x17069: 0xe0000b2f, 0x1706a: 0xe00037fa, 0x1706b: 0xe00037f7, + 0x1706c: 0xe000adbc, 0x1706d: 0xe000adb9, 0x1706e: 0xe0000e04, 0x1706f: 0xe0000e01, + 0x17070: 0xe0000e0b, 0x17071: 0xe0000e07, 0x17072: 0xe0001129, 0x17073: 0xe0001126, + 0x17074: 0x402e5e20, 0x17075: 0x402ed020, 0x17076: 0x40305a20, 0x17077: 0x402dd420, + 0x17078: 0xe0000abf, 0x17079: 0xe0000ec4, 0x1707a: 0x002be888, 0x1707b: 0x002c4488, + 0x1707c: 0x402c4420, 0x1707d: 0x002e3888, 0x1707e: 0x00303e88, 0x1707f: 0x402ffc20, + // Block 0x5c2, offset 0x17080 + 0x17080: 0x402f8220, 0x17081: 0x402fd820, 0x17082: 0x402ff420, 0x17083: 0x40300820, + 0x17084: 0x402df620, 0x17085: 0x40301a20, 0x17086: 0x40302420, 0x17087: 0x40306420, + 0x17088: 0x40305220, 0x17089: 0x40307c20, 0x1708a: 0x4030b420, 0x1708b: 0x4030cc20, + 0x1708c: 0x4030da20, 0x1708d: 0x4030ee20, 0x1708e: 0x402e7a20, 0x1708f: 0x40310820, + 0x17090: 0x40314820, 0x17091: 0x40315020, 0x17092: 0xcecc0991, 0x17093: 0x40318020, + 0x17094: 0x4031cc20, 0x17095: 0x4031e820, 0x17096: 0x40320a20, 0x17097: 0x40323220, + 0x17098: 0x40323a20, 0x17099: 0x402c1220, 0x1709a: 0x402cf820, 0x1709b: 0x402d4c20, + 0x1709c: 0x402d7020, 0x1709d: 0x402de620, 0x1709e: 0x402e1a20, 0x1709f: 0x402e2a20, + 0x170a0: 0x402f6220, 0x170a1: 0x4031fa20, 0x170a2: 0x40320220, 0x170a3: 0xe0000aca, + 0x170a4: 0xe0000adc, 0x170a5: 0xe0000ad9, 0x170a6: 0xe0000fcc, 0x170a7: 0xe0000fcf, + 0x170a8: 0xe0000fba, 0x170a9: 0xe0000ba1, 0x170aa: 0xe0000d11, 0x170ab: 0xe0000d18, + 0x170ac: 0x40324220, 0x170ad: 0x40324a20, 0x170ae: 0x40309020, 0x170af: 0x40309820, + 0x170b0: 0x002d6894, 0x170b1: 0x002d8094, 0x170b2: 0x002dcc94, 0x170b3: 0x002f7a94, + 0x170b4: 0x002f9894, 0x170b5: 0x002fac94, 0x170b6: 0x002fd894, 0x170b7: 0x0030e294, + 0x170b8: 0x00310094, 0x170b9: 0x40064020, 0x170ba: 0x40064420, 0x170bb: 0x402d9620, + 0x170bc: 0x4031de20, 0x170bd: 0x402d9820, 0x170be: 0x4031e220, 0x170bf: 0x4031f020, + // Block 0x5c3, offset 0x170c0 + 0x170c0: 0xe0000d24, 0x170c1: 0xe0000d21, 0x170c2: 0xe0000d2a, 0x170c3: 0xe0000d27, + 0x170c4: 0xe0000d69, 0x170c5: 0xe0000d66, 0x170c6: 0xe0000d7b, 0x170c7: 0xe0000d78, + 0x170c8: 0xe0000d87, 0x170c9: 0xe0000d84, 0x170ca: 0xe0000d81, 0x170cb: 0xe0000d7e, + 0x170cc: 0xe000adb0, 0x170cd: 0xe000adad, 0x170ce: 0xe000adb6, 0x170cf: 0xe000adb3, + 0x170d0: 0xe0000e3d, 0x170d1: 0xe0000e39, 0x170d2: 0xe0000e35, 0x170d3: 0xe0000e31, + 0x170d4: 0xe0000ea7, 0x170d5: 0xe0000ea4, 0x170d6: 0xe0000ead, 0x170d7: 0xe0000eaa, + 0x170d8: 0xe0000ed6, 0x170d9: 0xe0000ed3, 0x170da: 0xe0000ef4, 0x170db: 0xe0000ef1, + 0x170dc: 0xe0000efb, 0x170dd: 0xe0000ef7, 0x170de: 0xe0000f02, 0x170df: 0xe0000eff, + 0x170e0: 0xe0000f41, 0x170e1: 0xe0000f3e, 0x170e2: 0xe0000f53, 0x170e3: 0xe0000f50, + 0x170e4: 0xe0000f26, 0x170e5: 0xe0000f22, 0x170e6: 0xe000a9d9, 0x170e7: 0xe000a9d6, + 0x170e8: 0xe0000f5a, 0x170e9: 0xe0000f56, 0x170ea: 0xe0000f93, 0x170eb: 0xe0000f90, + 0x170ec: 0xe0000f9f, 0x170ed: 0xe0000f9c, 0x170ee: 0xe0000fb1, 0x170ef: 0xe0000fae, + 0x170f0: 0xe0000fab, 0x170f1: 0xe0000fa8, 0x170f2: 0xe0001093, 0x170f3: 0xe0001090, + 0x170f4: 0xe000109f, 0x170f5: 0xe000109c, 0x170f6: 0xe0001099, 0x170f7: 0xe0001096, + 0x170f8: 0xe0001032, 0x170f9: 0xe000102e, 0x170fa: 0xe000298b, 0x170fb: 0xe0002988, + 0x170fc: 0xe00010a9, 0x170fd: 0xe00010a6, 0x170fe: 0xe00010af, 0x170ff: 0xe00010ac, + // Block 0x5c4, offset 0x17100 + 0x17100: 0xe00010d2, 0x17101: 0xe00010cf, 0x17102: 0xe00010cc, 0x17103: 0xe00010c9, + 0x17104: 0xe00010e1, 0x17105: 0xe00010de, 0x17106: 0xe00010e7, 0x17107: 0xe00010e4, + 0x17108: 0xe00010ed, 0x17109: 0xe00010ea, 0x1710a: 0xe00010fc, 0x1710b: 0xe00010f9, + 0x1710c: 0xe00010f6, 0x1710d: 0xe00010f3, 0x1710e: 0xe0001123, 0x1710f: 0xe0001120, + 0x17110: 0xe0001141, 0x17111: 0xe000113e, 0x17112: 0xe0001153, 0x17113: 0xe0001150, + 0x17114: 0xe0001159, 0x17115: 0xe0001156, 0x17116: 0xe0000c15, 0x17117: 0xe0000f8d, + 0x17118: 0xe00010db, 0x17119: 0xe0001111, 0x1711a: 0xf0000404, 0x1711b: 0xe0000f70, + 0x1711c: 0x40300420, 0x1711d: 0x40300620, 0x1711e: 0xe0000f7f, 0x1711f: 0x402c9620, + 0x17120: 0xe000099b, 0x17121: 0xe0000998, 0x17122: 0xe0000989, 0x17123: 0xe0000986, + 0x17124: 0xe0003cae, 0x17125: 0xe0003cab, 0x17126: 0xe0000930, 0x17127: 0xe000092c, + 0x17128: 0xe0000940, 0x17129: 0xe000093c, 0x1712a: 0xe000adaa, 0x1712b: 0xe000ada7, + 0x1712c: 0xe00009aa, 0x1712d: 0xe00009a6, 0x1712e: 0xe0003ca8, 0x1712f: 0xe0003ca5, + 0x17130: 0xe000090a, 0x17131: 0xe0000906, 0x17132: 0xe000091a, 0x17133: 0xe0000916, + 0x17134: 0xe000ada4, 0x17135: 0xe000ada1, 0x17136: 0xe00009a2, 0x17137: 0xe000099e, + 0x17138: 0xe0000b6e, 0x17139: 0xe0000b6b, 0x1713a: 0xe0000b5c, 0x1713b: 0xe0000b59, + 0x1713c: 0xe0000b26, 0x1713d: 0xe0000b23, 0x1713e: 0xe0000afb, 0x1713f: 0xe0000af7, + // Block 0x5c5, offset 0x17140 + 0x17140: 0xe0000b03, 0x17141: 0xe0000aff, 0x17142: 0xe0000b13, 0x17143: 0xe0000b0f, + 0x17144: 0xe0000b0b, 0x17145: 0xe0000b07, 0x17146: 0xe0000b75, 0x17147: 0xe0000b71, + 0x17148: 0xe0000c66, 0x17149: 0xe0000c63, 0x1714a: 0xe0000c78, 0x1714b: 0xe0000c75, + 0x1714c: 0xe0000e84, 0x1714d: 0xe0000e81, 0x1714e: 0xe0000e44, 0x1714f: 0xe0000e41, + 0x17150: 0xe000380c, 0x17151: 0xe0003809, 0x17152: 0xe000adc8, 0x17153: 0xe000adc5, + 0x17154: 0xe000add4, 0x17155: 0xe000add1, 0x17156: 0xe000adce, 0x17157: 0xe000adcb, + 0x17158: 0xe000adda, 0x17159: 0xe000add7, 0x1715a: 0xe0000e5d, 0x1715b: 0xe0000e59, + 0x1715c: 0xe0000e65, 0x1715d: 0xe0000e61, 0x1715e: 0xe0000e75, 0x1715f: 0xe0000e71, + 0x17160: 0xe000adc2, 0x17161: 0xe000adbf, 0x17162: 0xe0000e7d, 0x17163: 0xe0000e79, + 0x17164: 0xe000108d, 0x17165: 0xe000108a, 0x17166: 0xe000104d, 0x17167: 0xe000104a, + 0x17168: 0xe0001066, 0x17169: 0xe0001062, 0x1716a: 0xe000106e, 0x1716b: 0xe000106a, + 0x1716c: 0xe000107e, 0x1716d: 0xe000107a, 0x1716e: 0xe0001076, 0x1716f: 0xe0001072, + 0x17170: 0xe0001086, 0x17171: 0xe0001082, 0x17172: 0xe0001108, 0x17173: 0xe0001105, + 0x17174: 0xe0001135, 0x17175: 0xe0001132, 0x17176: 0xe000112f, 0x17177: 0xe000112c, + 0x17178: 0xe000111d, 0x17179: 0xe000111a, 0x1717a: 0xe0000d0a, 0x1717b: 0xe0000d07, + 0x1717c: 0x0030d888, 0x1717d: 0x4030d820, 0x1717e: 0x00312088, 0x1717f: 0x40312020, + // Block 0x5c6, offset 0x17180 + 0x17182: 0x4044b620, 0x17183: 0x4044b820, + 0x17185: 0x40449220, 0x17186: 0x40449420, 0x17187: 0x40449620, + 0x17188: 0x40449820, 0x17189: 0x40449a20, 0x1718a: 0x40449c20, 0x1718b: 0x40449e20, + 0x1718c: 0x4044a020, 0x1718d: 0x4044a220, 0x1718e: 0x4044a420, 0x1718f: 0x4044a620, + 0x17190: 0x4044a820, 0x17191: 0x4044aa20, 0x17192: 0x4044ac20, 0x17193: 0x4044ae20, + 0x17194: 0x4044b020, 0x17195: 0x4044b220, 0x17196: 0x4044b420, + 0x1719a: 0x4044b620, 0x1719b: 0x4044b820, + 0x1719c: 0x4044ba20, 0x1719d: 0x4044bc20, 0x1719e: 0x4044be20, 0x1719f: 0x4044c020, + 0x171a0: 0x4044c220, 0x171a1: 0x4044c420, 0x171a2: 0x4044c620, 0x171a3: 0x4044c820, + 0x171a4: 0x4044ce20, 0x171a5: 0x4044cc20, 0x171a6: 0x4044ce20, 0x171a7: 0x4044d020, + 0x171a8: 0x4044d220, 0x171a9: 0x4044d420, 0x171aa: 0x4044d620, 0x171ab: 0x4044d820, + 0x171ac: 0x4044da20, 0x171ad: 0x4044dc20, 0x171ae: 0x4044de20, 0x171af: 0x4044e020, + 0x171b0: 0x4044e220, 0x171b1: 0x4044e420, 0x171b3: 0x4044e620, + 0x171b4: 0x4044e820, 0x171b5: 0x4044ea20, 0x171b6: 0x4044ec20, 0x171b7: 0x4044ee20, + 0x171b8: 0x4044f020, 0x171b9: 0x4044f220, 0x171ba: 0x4044f420, 0x171bb: 0x4044f620, + 0x171bd: 0x4044f820, + // Block 0x5c7, offset 0x171c0 + 0x171c0: 0xa0000000, 0x171c1: 0xa0000000, 0x171c2: 0xa0000000, 0x171c3: 0xa0000000, + 0x171c4: 0xa0000000, 0x171c5: 0xa0000000, 0x171c6: 0xa0000000, 0x171c7: 0xa0000000, + 0x171c8: 0xa0000000, 0x171c9: 0x40020020, 0x171ca: 0x40020220, 0x171cb: 0x40020420, + 0x171cc: 0x40020620, 0x171cd: 0x40020820, 0x171ce: 0xa0000000, 0x171cf: 0xa0000000, + 0x171d0: 0xa0000000, 0x171d1: 0xa0000000, 0x171d2: 0xa0000000, 0x171d3: 0xa0000000, + 0x171d4: 0xa0000000, 0x171d5: 0xa0000000, 0x171d6: 0xa0000000, 0x171d7: 0xa0000000, + 0x171d8: 0xa0000000, 0x171d9: 0xa0000000, 0x171da: 0xa0000000, 0x171db: 0xa0000000, + 0x171dc: 0xa0000000, 0x171dd: 0xa0000000, 0x171de: 0xa0000000, 0x171df: 0xa0000000, + 0x171e0: 0x40021220, 0x171e1: 0x4002ba20, 0x171e2: 0x4003e020, 0x171e3: 0x4004ea20, + 0x171e4: 0x4027de20, 0x171e5: 0x4004ec20, 0x171e6: 0x4004e620, 0x171e7: 0x4003d220, + 0x171e8: 0x4003f420, 0x171e9: 0x4003f620, 0x171ea: 0x4004d820, 0x171eb: 0x40093820, + 0x171ec: 0x40024020, 0x171ed: 0x40021a20, 0x171ee: 0x4002e420, 0x171ef: 0x4004e220, + 0x171f0: 0x4029cc20, 0x171f1: 0x4029ce20, 0x171f2: 0x4029d020, 0x171f3: 0x4029d220, + 0x171f4: 0x4029d420, 0x171f5: 0x4029d620, 0x171f6: 0x4029d820, 0x171f7: 0x4029da20, + 0x171f8: 0x4029dc20, 0x171f9: 0x4029de20, 0x171fa: 0x40026c20, 0x171fb: 0x40026220, + 0x171fc: 0x40094020, 0x171fd: 0x40094220, 0x171fe: 0x40094420, 0x171ff: 0x4002c420, + // Block 0x5c8, offset 0x17200 + 0x17200: 0x4004d620, 0x17201: 0xce900071, 0x17202: 0x002c0a88, 0x17203: 0xc3590953, + 0x17204: 0x002c6288, 0x17205: 0x002c9888, 0x17206: 0x002d0888, 0x17207: 0x002d2288, + 0x17208: 0x002d6888, 0x17209: 0x002d9a88, 0x1720a: 0x002dcc88, 0x1720b: 0x002dfe88, + 0x1720c: 0xc0030002, 0x1720d: 0x002e8288, 0x1720e: 0x002e9e88, 0x1720f: 0xc33f2741, + 0x17210: 0x002f2c88, 0x17211: 0x002f5688, 0x17212: 0xc35f0991, 0x17213: 0xc3430991, + 0x17214: 0x00302c88, 0x17215: 0x00306c88, 0x17216: 0x0030be88, 0x17217: 0x0030e288, + 0x17218: 0x0030f688, 0x17219: 0x00310088, 0x1721a: 0xc3630991, 0x1721b: 0x4003f820, + 0x1721c: 0x4004e420, 0x1721d: 0x4003fa20, 0x1721e: 0x40062420, 0x1721f: 0x40021620, + 0x17220: 0x40061e20, 0x17221: 0xce8e0071, 0x17222: 0x402c0a20, 0x17223: 0xc3550953, + 0x17224: 0x402c6220, 0x17225: 0x402c9820, 0x17226: 0x402d0820, 0x17227: 0x402d2220, + 0x17228: 0x402d6820, 0x17229: 0x402d9a20, 0x1722a: 0x402dcc20, 0x1722b: 0x402dfe20, + 0x1722c: 0xc0000002, 0x1722d: 0x402e8220, 0x1722e: 0x402e9e20, 0x1722f: 0xc33d2741, + 0x17230: 0x402f2c20, 0x17231: 0x402f5620, 0x17232: 0xc35d0991, 0x17233: 0xc3410991, + 0x17234: 0x40302c20, 0x17235: 0x40306c20, 0x17236: 0x4030be20, 0x17237: 0x4030e220, + 0x17238: 0x4030f620, 0x17239: 0x40310020, 0x1723a: 0xc3610991, 0x1723b: 0x4003fc20, + 0x1723c: 0x40094820, 0x1723d: 0x4003fe20, 0x1723e: 0x40094c20, 0x1723f: 0xa0000000, + // Block 0x5c9, offset 0x17240 + 0x17240: 0xe00008f5, 0x17241: 0xe00008ef, 0x17242: 0xe0000921, 0x17243: 0xe0000969, + 0x17244: 0x002be083, 0x17245: 0xe000094d, 0x17246: 0xe00009dd, 0x17247: 0xe0000a53, + 0x17248: 0xe0000ae8, 0x17249: 0xe0000ae2, 0x1724a: 0xe0000af4, 0x1724b: 0xe0000b20, + 0x1724c: 0xe0000c2b, 0x1724d: 0xe0000c25, 0x1724e: 0xe0000c37, 0x1724f: 0xe0000c43, + 0x17250: 0xe0000ab3, 0x17251: 0xe0000d63, 0x17252: 0xe0000d9a, 0x17253: 0xe0000d94, + 0x17254: 0x002ee483, 0x17255: 0xe0000de6, 0x17256: 0xe0000dd2, 0x17257: 0x40093e20, + 0x17258: 0xe0000e12, 0x17259: 0xe0000fe1, 0x1725a: 0xe0000fdb, 0x1725b: 0xe0000fed, + 0x1725c: 0xe0000fff, 0x1725d: 0xe0001102, 0x1725e: 0x00318888, 0x1725f: 0xe0000f7b, + 0x17260: 0xe00008f2, 0x17261: 0xe00008ec, 0x17262: 0xe000091e, 0x17263: 0xe0000966, + 0x17264: 0x402be020, 0x17265: 0xe000094a, 0x17266: 0xe00009d5, 0x17267: 0xe0000a4d, + 0x17268: 0xe0000ae5, 0x17269: 0xe0000adf, 0x1726a: 0xe0000af1, 0x1726b: 0xe0000b1d, + 0x1726c: 0xe0000c28, 0x1726d: 0xe0000c22, 0x1726e: 0xe0000c34, 0x1726f: 0xe0000c40, + 0x17270: 0xe0000aad, 0x17271: 0xe0000d60, 0x17272: 0xe0000d97, 0x17273: 0xe0000d91, + 0x17274: 0x402ee420, 0x17275: 0xe0000de3, 0x17276: 0xe0000dcf, 0x17277: 0x40093c20, + 0x17278: 0xe0000e0f, 0x17279: 0xe0000fde, 0x1727a: 0xe0000fd8, 0x1727b: 0xe0000fea, + 0x1727c: 0xe0000ffc, 0x1727d: 0xe00010ff, 0x1727e: 0x40318820, 0x1727f: 0xe0001114, + // Block 0x5ca, offset 0x17280 + 0x17280: 0x40321220, 0x17281: 0x40321a20, 0x17282: 0x40322220, 0x17283: 0x40322a20, + 0x17284: 0xe0000ad5, 0x17285: 0xe0000ad1, 0x17286: 0xe0000acd, 0x17287: 0xf0000a0a, + 0x17288: 0xf000040a, 0x17289: 0xf0000404, 0x1728a: 0xf0000a0a, 0x1728b: 0xf000040a, + 0x1728c: 0xf0000404, 0x1728d: 0xe0000947, 0x1728e: 0xe0000944, 0x1728f: 0xe0000c3d, + 0x17290: 0xe0000c3a, 0x17291: 0xe0000dcc, 0x17292: 0xe0000dc9, 0x17293: 0xe0000ff3, + 0x17294: 0xe0000ff0, 0x17295: 0xe000101e, 0x17296: 0xe000101a, 0x17297: 0xe0001006, + 0x17298: 0xe0001002, 0x17299: 0xe0001016, 0x1729a: 0xe0001012, 0x1729b: 0xe000100e, + 0x1729c: 0xe000100a, 0x1729d: 0x402cae20, 0x1729e: 0xe00038f2, 0x1729f: 0xe00038ef, + 0x172a0: 0xe0000976, 0x172a1: 0xe0000972, 0x172a2: 0xe00009f4, 0x172a3: 0xe00009ef, + 0x172a4: 0x002d3a88, 0x172a5: 0x402d3a20, 0x172a6: 0xe0000bbe, 0x172a7: 0xe0000bbb, + 0x172a8: 0xe0000c99, 0x172a9: 0xe0000c96, 0x172aa: 0xe0000e20, 0x172ab: 0xe0000e1d, + 0x172ac: 0xe0000e27, 0x172ad: 0xe0000e23, 0x172ae: 0xe0001162, 0x172af: 0xe000115f, + 0x172b0: 0xe0000c8d, 0x172b1: 0xf0000a0a, 0x172b2: 0xf000040a, 0x172b3: 0xf0000404, + 0x172b4: 0xe0000bac, 0x172b5: 0xe0000ba9, 0x172b6: 0x002d7888, 0x172b7: 0x00319488, + 0x172b8: 0xe0000d57, 0x172b9: 0xe0000d54, 0x172ba: 0xe0000954, 0x172bb: 0xe0000950, + 0x172bc: 0xe00009ea, 0x172bd: 0xe00009e5, 0x172be: 0xe0000e19, 0x172bf: 0xe0000e15, + // Block 0x5cb, offset 0x172c0 + 0x172c0: 0xe0000b03, 0x172c1: 0xe0000aff, 0x172c2: 0xe0000b13, 0x172c3: 0xe0000b0f, + 0x172c4: 0xe0000b0b, 0x172c5: 0xe0000b07, 0x172c6: 0xe0000b75, 0x172c7: 0xe0000b71, + 0x172c8: 0xe0000c66, 0x172c9: 0xe0000c63, 0x172ca: 0xe0000c78, 0x172cb: 0xe0000c75, + 0x172cc: 0xe0000e84, 0x172cd: 0xe0000e81, 0x172ce: 0xe0000e44, 0x172cf: 0xe0000e41, + 0x172d0: 0xe000ad5f, 0x172d1: 0xe000ad5c, 0x172d2: 0xe000ad65, 0x172d3: 0xe000ad62, + 0x172d4: 0xe000ad6b, 0x172d5: 0xe000ad68, 0x172d6: 0xe0002946, 0x172d7: 0xe0002943, + 0x172d8: 0xe000ad71, 0x172d9: 0xe000ad6e, 0x172da: 0xe0000e5d, 0x172db: 0xe0000e59, + 0x172dc: 0xe0000e65, 0x172dd: 0xe0000e61, 0x172de: 0xe0000e75, 0x172df: 0xe0000e71, + 0x172e0: 0xe0000e6d, 0x172e1: 0xe0000e69, 0x172e2: 0xe0000e7d, 0x172e3: 0xe0000e79, + 0x172e4: 0xe000108d, 0x172e5: 0xe000108a, 0x172e6: 0xe000104d, 0x172e7: 0xe000104a, + 0x172e8: 0xe0001066, 0x172e9: 0xe0001062, 0x172ea: 0xe000106e, 0x172eb: 0xe000106a, + 0x172ec: 0xe000107e, 0x172ed: 0xe000107a, 0x172ee: 0xe0001076, 0x172ef: 0xe0001072, + 0x172f0: 0xe0001086, 0x172f1: 0xe0001082, 0x172f2: 0xe0001108, 0x172f3: 0xe0001105, + 0x172f4: 0xe0001135, 0x172f5: 0xe0001132, 0x172f6: 0xe000112f, 0x172f7: 0xe000112c, + 0x172f8: 0xe000111d, 0x172f9: 0xe000111a, 0x172fa: 0xe0000d0a, 0x172fb: 0xe0000d07, + 0x172fc: 0x0030d888, 0x172fd: 0x4030d820, 0x172fe: 0x00312088, 0x172ff: 0x40312020, + // Block 0x5cc, offset 0x17300 + 0x17300: 0xa0000000, 0x17301: 0xa0000000, 0x17302: 0xa0000000, 0x17303: 0xa0000000, + 0x17304: 0xa0000000, 0x17305: 0xa0000000, 0x17306: 0xa0000000, 0x17307: 0xa0000000, + 0x17308: 0xa0000000, 0x17309: 0x40020020, 0x1730a: 0x40020220, 0x1730b: 0x40020420, + 0x1730c: 0x40020620, 0x1730d: 0x40020820, 0x1730e: 0xa0000000, 0x1730f: 0xa0000000, + 0x17310: 0xa0000000, 0x17311: 0xa0000000, 0x17312: 0xa0000000, 0x17313: 0xa0000000, + 0x17314: 0xa0000000, 0x17315: 0xa0000000, 0x17316: 0xa0000000, 0x17317: 0xa0000000, + 0x17318: 0xa0000000, 0x17319: 0xa0000000, 0x1731a: 0xa0000000, 0x1731b: 0xa0000000, + 0x1731c: 0xa0000000, 0x1731d: 0xa0000000, 0x1731e: 0xa0000000, 0x1731f: 0xa0000000, + 0x17320: 0x40021220, 0x17321: 0x4002ba20, 0x17322: 0x4003e020, 0x17323: 0x4004ea20, + 0x17324: 0x4027de20, 0x17325: 0x4004ec20, 0x17326: 0x4004e620, 0x17327: 0x4003d220, + 0x17328: 0x4003f420, 0x17329: 0x4003f620, 0x1732a: 0x4004d820, 0x1732b: 0x40093820, + 0x1732c: 0x40024020, 0x1732d: 0x40021a20, 0x1732e: 0x4002e420, 0x1732f: 0x4004e220, + 0x17330: 0x4029cc20, 0x17331: 0x4029ce20, 0x17332: 0x4029d020, 0x17333: 0x4029d220, + 0x17334: 0x4029d420, 0x17335: 0x4029d620, 0x17336: 0x4029d820, 0x17337: 0x4029da20, + 0x17338: 0x4029dc20, 0x17339: 0x4029de20, 0x1733a: 0x40026c20, 0x1733b: 0x40026220, + 0x1733c: 0x40094020, 0x1733d: 0x40094220, 0x1733e: 0x40094420, 0x1733f: 0x4002c420, + // Block 0x5cd, offset 0x17340 + 0x17340: 0x4004d620, 0x17341: 0x002bde88, 0x17342: 0x002c0a88, 0x17343: 0xc59b2891, + 0x17344: 0x002c6288, 0x17345: 0x002c9888, 0x17346: 0x002d0888, 0x17347: 0x002d2288, + 0x17348: 0x002d6888, 0x17349: 0x002d9a88, 0x1734a: 0x002dcc88, 0x1734b: 0x002dfe88, + 0x1734c: 0xc0030002, 0x1734d: 0x002e8288, 0x1734e: 0x002e9e88, 0x1734f: 0x002ee288, + 0x17350: 0x002f2c88, 0x17351: 0x002f5688, 0x17352: 0x002f7a88, 0x17353: 0xc3430991, + 0x17354: 0x00302c88, 0x17355: 0x00306c88, 0x17356: 0x0030be88, 0x17357: 0x0030e288, + 0x17358: 0x0030f688, 0x17359: 0x00310088, 0x1735a: 0xc3630991, 0x1735b: 0x4003f820, + 0x1735c: 0x4004e420, 0x1735d: 0x4003fa20, 0x1735e: 0x40062420, 0x1735f: 0x40021620, + 0x17360: 0x40061e20, 0x17361: 0x402bde20, 0x17362: 0x402c0a20, 0x17363: 0xc5982891, + 0x17364: 0x402c6220, 0x17365: 0x402c9820, 0x17366: 0x402d0820, 0x17367: 0x402d2220, + 0x17368: 0x402d6820, 0x17369: 0x402d9a20, 0x1736a: 0x402dcc20, 0x1736b: 0x402dfe20, + 0x1736c: 0xc0000002, 0x1736d: 0x402e8220, 0x1736e: 0x402e9e20, 0x1736f: 0x402ee220, + 0x17370: 0x402f2c20, 0x17371: 0x402f5620, 0x17372: 0x402f7a20, 0x17373: 0xc3410991, + 0x17374: 0x40302c20, 0x17375: 0x40306c20, 0x17376: 0x4030be20, 0x17377: 0x4030e220, + 0x17378: 0x4030f620, 0x17379: 0x40310020, 0x1737a: 0xc3610991, 0x1737b: 0x4003fc20, + 0x1737c: 0x40094820, 0x1737d: 0x4003fe20, 0x1737e: 0x40094c20, 0x1737f: 0xa0000000, + // Block 0x5ce, offset 0x17380 + 0x17380: 0xe0000983, 0x17381: 0xe0000980, 0x17382: 0xe00008fb, 0x17383: 0xe00008f8, + 0x17384: 0xe000097d, 0x17385: 0xe000097a, 0x17386: 0x002c3e83, 0x17387: 0x402c3e20, + 0x17388: 0xe0000a3e, 0x17389: 0xe0000a3b, 0x1738a: 0xe0000a4a, 0x1738b: 0xe0000a47, + 0x1738c: 0x002c3c83, 0x1738d: 0x402c3c20, 0x1738e: 0xe0000a86, 0x1738f: 0xe0000a83, + 0x17390: 0x002c6483, 0x17391: 0x402c6420, 0x17392: 0xe0000b46, 0x17393: 0xe0000b43, + 0x17394: 0xe0000aee, 0x17395: 0xe0000aeb, 0x17396: 0xe0000b2c, 0x17397: 0xe0000b29, + 0x17398: 0xe0000b40, 0x17399: 0xe0000b3d, 0x1739a: 0xe0000b1a, 0x1739b: 0xe0000b17, + 0x1739c: 0xe0000bb8, 0x1739d: 0xe0000bb5, 0x1739e: 0xe0000bb2, 0x1739f: 0xe0000baf, + 0x173a0: 0xe0000bc4, 0x173a1: 0xe0000bc1, 0x173a2: 0xe0000bca, 0x173a3: 0xe0000bc7, + 0x173a4: 0xe0000bee, 0x173a5: 0xe0000beb, 0x173a6: 0xe0000c1b, 0x173a7: 0xe0000c18, + 0x173a8: 0xe0000c51, 0x173a9: 0xe0000c4e, 0x173aa: 0xe0000c60, 0x173ab: 0xe0000c5d, + 0x173ac: 0xe0000c31, 0x173ad: 0xe0000c2e, 0x173ae: 0xe0000c5a, 0x173af: 0xe0000c57, + 0x173b0: 0xe0000c54, 0x173b1: 0x402da220, 0x173b2: 0xf0000a0a, 0x173b3: 0xf0000404, + 0x173b4: 0xe0000c8a, 0x173b5: 0xe0000c87, 0x173b6: 0xe0000c9f, 0x173b7: 0xe0000c9c, + 0x173b8: 0x402f7220, 0x173b9: 0xe0000ccc, 0x173ba: 0xe0000cc9, 0x173bb: 0xe0000cd8, + 0x173bc: 0xe0000cd5, 0x173bd: 0xe0000cd2, 0x173be: 0xe0000ccf, 0x173bf: 0xe0000d04, + // Block 0x5cf, offset 0x173c0 + 0x173c0: 0xa0000000, 0x173c1: 0xa0000000, 0x173c2: 0xa0000000, 0x173c3: 0xa0000000, + 0x173c4: 0xa0000000, 0x173c5: 0xa0000000, 0x173c6: 0xa0000000, 0x173c7: 0xa0000000, + 0x173c8: 0xa0000000, 0x173c9: 0x40020020, 0x173ca: 0x40020220, 0x173cb: 0x40020420, + 0x173cc: 0x40020620, 0x173cd: 0x40020820, 0x173ce: 0xa0000000, 0x173cf: 0xa0000000, + 0x173d0: 0xa0000000, 0x173d1: 0xa0000000, 0x173d2: 0xa0000000, 0x173d3: 0xa0000000, + 0x173d4: 0xa0000000, 0x173d5: 0xa0000000, 0x173d6: 0xa0000000, 0x173d7: 0xa0000000, + 0x173d8: 0xa0000000, 0x173d9: 0xa0000000, 0x173da: 0xa0000000, 0x173db: 0xa0000000, + 0x173dc: 0xa0000000, 0x173dd: 0xa0000000, 0x173de: 0xa0000000, 0x173df: 0xa0000000, + 0x173e0: 0x40021220, 0x173e1: 0x4002ba20, 0x173e2: 0x4003e020, 0x173e3: 0x4004ea20, + 0x173e4: 0x4027de20, 0x173e5: 0x4004ec20, 0x173e6: 0x4004e620, 0x173e7: 0x4003d220, + 0x173e8: 0x4003f420, 0x173e9: 0x4003f620, 0x173ea: 0x4004d820, 0x173eb: 0x40093820, + 0x173ec: 0x40024020, 0x173ed: 0x40021a20, 0x173ee: 0x4002e420, 0x173ef: 0x4004e220, + 0x173f0: 0x4029cc20, 0x173f1: 0x4029ce20, 0x173f2: 0x4029d020, 0x173f3: 0x4029d220, + 0x173f4: 0x4029d420, 0x173f5: 0x4029d620, 0x173f6: 0x4029d820, 0x173f7: 0x4029da20, + 0x173f8: 0x4029dc20, 0x173f9: 0x4029de20, 0x173fa: 0x40026c20, 0x173fb: 0x40026220, + 0x173fc: 0x40094020, 0x173fd: 0x40094220, 0x173fe: 0x40094420, 0x173ff: 0x4002c420, + // Block 0x5d0, offset 0x17400 + 0x17400: 0x4004d620, 0x17401: 0x002bde88, 0x17402: 0x002c0a88, 0x17403: 0xcb170911, + 0x17404: 0xceec09c2, 0x17405: 0xc6360071, 0x17406: 0x002d0888, 0x17407: 0xceef2a52, + 0x17408: 0x002d6888, 0x17409: 0x002d9a88, 0x1740a: 0x002dcc88, 0x1740b: 0x002dfe88, + 0x1740c: 0xcef60ac4, 0x1740d: 0x002e8288, 0x1740e: 0xcefb2a52, 0x1740f: 0x002ee288, + 0x17410: 0x002f2c88, 0x17411: 0x002f5688, 0x17412: 0xcefe9872, 0x17413: 0xcf0109c2, + 0x17414: 0xcf0609c2, 0x17415: 0x00306c88, 0x17416: 0x0030be88, 0x17417: 0x0030e288, + 0x17418: 0xcf0b09c2, 0x17419: 0x00310088, 0x1741a: 0xcf0e09c2, 0x1741b: 0x4003f820, + 0x1741c: 0x4004e420, 0x1741d: 0x4003fa20, 0x1741e: 0x40062420, 0x1741f: 0x40021620, + 0x17420: 0x40061e20, 0x17421: 0x402bde20, 0x17422: 0x402c0a20, 0x17423: 0xcb150911, + 0x17424: 0xceea09b1, 0x17425: 0xc6340071, 0x17426: 0x402d0820, 0x17427: 0xcb192a41, + 0x17428: 0x402d6820, 0x17429: 0x402d9a20, 0x1742a: 0x402dcc20, 0x1742b: 0x402dfe20, + 0x1742c: 0xcef20a73, 0x1742d: 0x402e8220, 0x1742e: 0xcb292a41, 0x1742f: 0x402ee220, + 0x17430: 0x402f2c20, 0x17431: 0x402f5620, 0x17432: 0xcb2d9861, 0x17433: 0xcb3109b1, + 0x17434: 0xcf0409b1, 0x17435: 0x40306c20, 0x17436: 0x4030be20, 0x17437: 0x4030e220, + 0x17438: 0xcf0909b1, 0x17439: 0x40310020, 0x1743a: 0xcb3509b1, 0x1743b: 0x4003fc20, + 0x1743c: 0x40094820, 0x1743d: 0x4003fe20, 0x1743e: 0x40094c20, 0x1743f: 0xa0000000, + // Block 0x5d1, offset 0x17440 + 0x17440: 0xe00008f5, 0x17441: 0xe00008ef, 0x17442: 0xe0000921, 0x17443: 0xe0000969, + 0x17444: 0xe000095b, 0x17445: 0xe000094d, 0x17446: 0xe00009dd, 0x17447: 0x002c6083, + 0x17448: 0xe0000ae8, 0x17449: 0xe0000ae2, 0x1744a: 0xe0000af4, 0x1744b: 0x002d0683, + 0x1744c: 0xe0000c2b, 0x1744d: 0xe0000c25, 0x1744e: 0xe0000c37, 0x1744f: 0xe0000c43, + 0x17450: 0xe0000ab3, 0x17451: 0xe0000d63, 0x17452: 0xe0000d9a, 0x17453: 0xe0000d94, + 0x17454: 0xe0000da6, 0x17455: 0xe0000de6, 0x17456: 0xe0000dd2, 0x17457: 0x40093e20, + 0x17458: 0xe0000e12, 0x17459: 0xe0000fe1, 0x1745a: 0xe0000fdb, 0x1745b: 0xe0000fed, + 0x1745c: 0xe0000fff, 0x1745d: 0xe0001102, 0x1745e: 0x00318888, 0x1745f: 0xe0000f7b, + 0x17460: 0xe00008f2, 0x17461: 0xe00008ec, 0x17462: 0xe000091e, 0x17463: 0xe0000966, + 0x17464: 0xe0000958, 0x17465: 0xe000094a, 0x17466: 0xe00009d5, 0x17467: 0x402c6020, + 0x17468: 0xe0000ae5, 0x17469: 0xe0000adf, 0x1746a: 0xe0000af1, 0x1746b: 0x402d0620, + 0x1746c: 0xe0000c28, 0x1746d: 0xe0000c22, 0x1746e: 0xe0000c34, 0x1746f: 0xe0000c40, + 0x17470: 0xe0000aad, 0x17471: 0xe0000d60, 0x17472: 0xe0000d97, 0x17473: 0xe0000d91, + 0x17474: 0xe0000da3, 0x17475: 0xe0000de3, 0x17476: 0xe0000dcf, 0x17477: 0x40093c20, + 0x17478: 0xe0000e0f, 0x17479: 0xe0000fde, 0x1747a: 0xe0000fd8, 0x1747b: 0xe0000fea, + 0x1747c: 0xe0000ffc, 0x1747d: 0xe00010ff, 0x1747e: 0x40318820, 0x1747f: 0xe0001114, + // Block 0x5d2, offset 0x17480 + 0x17480: 0xe00009b1, 0x17481: 0xe00009ae, 0x17482: 0xe0000a22, 0x17483: 0xe0000a1f, + 0x17484: 0xe0000a28, 0x17485: 0xe0000a25, 0x17486: 0xe0000a2e, 0x17487: 0xe0000a2b, + 0x17488: 0xe000ade6, 0x17489: 0xe000ade3, 0x1748a: 0xe0000a8c, 0x1748b: 0xe0000a89, + 0x1748c: 0xe0000a98, 0x1748d: 0xe0000a95, 0x1748e: 0xe0000aa4, 0x1748f: 0xe0000aa1, + 0x17490: 0xe0000a92, 0x17491: 0xe0000a8f, 0x17492: 0xe0000a9e, 0x17493: 0xe0000a9b, + 0x17494: 0xe0000b55, 0x17495: 0xe0000b51, 0x17496: 0xe0000b4d, 0x17497: 0xe0000b49, + 0x17498: 0xe0000b7c, 0x17499: 0xe0000b79, 0x1749a: 0xe0000b82, 0x1749b: 0xe0000b7f, + 0x1749c: 0xe0000b39, 0x1749d: 0xe0000b35, 0x1749e: 0xe0000b8c, 0x1749f: 0xe0000b89, + 0x174a0: 0xe0000bd0, 0x174a1: 0xe0000bcd, 0x174a2: 0xe0000c00, 0x174a3: 0xe0000bfd, + 0x174a4: 0xe0000c0c, 0x174a5: 0xe0000c09, 0x174a6: 0xe0000bfa, 0x174a7: 0xe0000bf7, + 0x174a8: 0xe0000c06, 0x174a9: 0xe0000c03, 0x174aa: 0xe0000c12, 0x174ab: 0xe0000c0f, + 0x174ac: 0xe0000c7e, 0x174ad: 0xe0000c7b, 0x174ae: 0xe0000c4a, 0x174af: 0xe0000c46, + 0x174b0: 0xe0000c93, 0x174b1: 0xe0000c90, 0x174b2: 0xe0000cab, 0x174b3: 0xe0000ca8, + 0x174b4: 0xe0000cb1, 0x174b5: 0xe0000cae, 0x174b6: 0xe0000cde, 0x174b7: 0xe0000cdb, + 0x174b8: 0xe0000ce5, 0x174b9: 0xe0000ce1, 0x174ba: 0xe0000cf2, 0x174bb: 0xe0000cef, + 0x174bc: 0xe0000cec, 0x174bd: 0xe0000ce9, 0x174be: 0xe0000d1e, 0x174bf: 0xe0000d1b, + // Block 0x5d3, offset 0x174c0 + 0x174c0: 0xa0000000, 0x174c1: 0xa0000000, 0x174c2: 0xa0000000, 0x174c3: 0xa0000000, + 0x174c4: 0xa0000000, 0x174c5: 0xa0000000, 0x174c6: 0xa0000000, 0x174c7: 0xa0000000, + 0x174c8: 0xa0000000, 0x174c9: 0x40020020, 0x174ca: 0x40020220, 0x174cb: 0x40020420, + 0x174cc: 0x40020620, 0x174cd: 0x40020820, 0x174ce: 0xa0000000, 0x174cf: 0xa0000000, + 0x174d0: 0xa0000000, 0x174d1: 0xa0000000, 0x174d2: 0xa0000000, 0x174d3: 0xa0000000, + 0x174d4: 0xa0000000, 0x174d5: 0xa0000000, 0x174d6: 0xa0000000, 0x174d7: 0xa0000000, + 0x174d8: 0xa0000000, 0x174d9: 0xa0000000, 0x174da: 0xa0000000, 0x174db: 0xa0000000, + 0x174dc: 0xa0000000, 0x174dd: 0xa0000000, 0x174de: 0xa0000000, 0x174df: 0xa0000000, + 0x174e0: 0x40021220, 0x174e1: 0x4002ba20, 0x174e2: 0x4003e020, 0x174e3: 0x4004ea20, + 0x174e4: 0x4027de20, 0x174e5: 0x4004ec20, 0x174e6: 0x4004e620, 0x174e7: 0x4003d220, + 0x174e8: 0x4003f420, 0x174e9: 0x4003f620, 0x174ea: 0x4004d820, 0x174eb: 0x40093820, + 0x174ec: 0x40024020, 0x174ed: 0x40021a20, 0x174ee: 0x4002e420, 0x174ef: 0x4004e220, + 0x174f0: 0x4029cc20, 0x174f1: 0x4029ce20, 0x174f2: 0x4029d020, 0x174f3: 0x4029d220, + 0x174f4: 0x4029d420, 0x174f5: 0x4029d620, 0x174f6: 0x4029d820, 0x174f7: 0x4029da20, + 0x174f8: 0x4029dc20, 0x174f9: 0x4029de20, 0x174fa: 0x40026c20, 0x174fb: 0x40026220, + 0x174fc: 0x40094020, 0x174fd: 0x40094220, 0x174fe: 0x40094420, 0x174ff: 0x4002c420, + // Block 0x5d4, offset 0x17500 + 0x17500: 0x4004d620, 0x17501: 0xc57327b1, 0x17502: 0x002c0a88, 0x17503: 0x002c3a88, + 0x17504: 0x002c6288, 0x17505: 0xcf130be1, 0x17506: 0x002d0888, 0x17507: 0x002d2288, + 0x17508: 0x002d6888, 0x17509: 0x002d9a88, 0x1750a: 0x002dcc88, 0x1750b: 0x002dfe88, + 0x1750c: 0xc0030002, 0x1750d: 0x002e8288, 0x1750e: 0x002e9e88, 0x1750f: 0xcf199891, + 0x17510: 0x002f2c88, 0x17511: 0x002f5688, 0x17512: 0x002f7a88, 0x17513: 0x002fe688, + 0x17514: 0x00302c88, 0x17515: 0xc3900b21, 0x17516: 0x0030be88, 0x17517: 0x0030e288, + 0x17518: 0x0030f688, 0x17519: 0x00310088, 0x1751a: 0x00312a88, 0x1751b: 0x4003f820, + 0x1751c: 0x4004e420, 0x1751d: 0x4003fa20, 0x1751e: 0x40062420, 0x1751f: 0x40021620, + 0x17520: 0x40061e20, 0x17521: 0xc57027b1, 0x17522: 0x402c0a20, 0x17523: 0x402c3a20, + 0x17524: 0x402c6220, 0x17525: 0xcf110be1, 0x17526: 0x402d0820, 0x17527: 0x402d2220, + 0x17528: 0x402d6820, 0x17529: 0x402d9a20, 0x1752a: 0x402dcc20, 0x1752b: 0x402dfe20, + 0x1752c: 0xc0000002, 0x1752d: 0x402e8220, 0x1752e: 0x402e9e20, 0x1752f: 0xcf159891, + 0x17530: 0x402f2c20, 0x17531: 0x402f5620, 0x17532: 0x402f7a20, 0x17533: 0x402fe620, + 0x17534: 0x40302c20, 0x17535: 0xc38d0b21, 0x17536: 0x4030be20, 0x17537: 0x4030e220, + 0x17538: 0x4030f620, 0x17539: 0x40310020, 0x1753a: 0x40312a20, 0x1753b: 0x4003fc20, + 0x1753c: 0x40094820, 0x1753d: 0x4003fe20, 0x1753e: 0x40094c20, 0x1753f: 0xa0000000, + // Block 0x5d5, offset 0x17540 + 0x17540: 0xe00008f5, 0x17541: 0xe00008ef, 0x17542: 0xe0000921, 0x17543: 0xe0000969, + 0x17544: 0x00320e83, 0x17545: 0x00320c83, 0x17546: 0x00320ea3, 0x17547: 0xe0000a53, + 0x17548: 0xe0000ae8, 0x17549: 0xe0000ae2, 0x1754a: 0xe0000af4, 0x1754b: 0xe0000b20, + 0x1754c: 0xe0000c2b, 0x1754d: 0xe0000c25, 0x1754e: 0xe0000c37, 0x1754f: 0xe0000c43, + 0x17550: 0x002c62c3, 0x17551: 0xe0000d63, 0x17552: 0xe0000d9a, 0x17553: 0xe0000d94, + 0x17554: 0x00321103, 0x17555: 0xe0000de6, 0x17556: 0x00321083, 0x17557: 0x40093e20, + 0x17558: 0x003210a3, 0x17559: 0xe0000fe1, 0x1755a: 0xe0000fdb, 0x1755b: 0xe0000fed, + 0x1755c: 0x003100a3, 0x1755d: 0xe0001102, 0x1755e: 0xe0002973, 0x1755f: 0xe0000f7b, + 0x17560: 0xe00008f2, 0x17561: 0xe00008ec, 0x17562: 0xe000091e, 0x17563: 0xe0000966, + 0x17564: 0x40320e20, 0x17565: 0x40320c20, 0x17566: 0x40320e21, 0x17567: 0xe0000a4d, + 0x17568: 0xe0000ae5, 0x17569: 0xe0000adf, 0x1756a: 0xe0000af1, 0x1756b: 0xe0000b1d, + 0x1756c: 0xe0000c28, 0x1756d: 0xe0000c22, 0x1756e: 0xe0000c34, 0x1756f: 0xe0000c40, + 0x17570: 0x402c6222, 0x17571: 0xe0000d60, 0x17572: 0xe0000d97, 0x17573: 0xe0000d91, + 0x17574: 0x40321024, 0x17575: 0xe0000de3, 0x17576: 0x40321020, 0x17577: 0x40093c20, + 0x17578: 0x40321021, 0x17579: 0xe0000fde, 0x1757a: 0xe0000fd8, 0x1757b: 0xe0000fea, + 0x1757c: 0x40310021, 0x1757d: 0xe00010ff, 0x1757e: 0xe0002970, 0x1757f: 0xe0001114, + // Block 0x5d6, offset 0x17580 + 0x17580: 0xe0000983, 0x17581: 0xe0000980, 0x17582: 0xe00008fb, 0x17583: 0xe00008f8, + 0x17584: 0xe000097d, 0x17585: 0xe000097a, 0x17586: 0xe0000a38, 0x17587: 0xe0000a35, + 0x17588: 0xe0000a3e, 0x17589: 0xe0000a3b, 0x1758a: 0xe0000a4a, 0x1758b: 0xe0000a47, + 0x1758c: 0xe0000a44, 0x1758d: 0xe0000a41, 0x1758e: 0xe0000a86, 0x1758f: 0xe0000a83, + 0x17590: 0x002c62a3, 0x17591: 0x402c6221, 0x17592: 0xe0000b46, 0x17593: 0xe0000b43, + 0x17594: 0xe0000aee, 0x17595: 0xe0000aeb, 0x17596: 0xe0000b2c, 0x17597: 0xe0000b29, + 0x17598: 0x00320ec3, 0x17599: 0x40320e22, 0x1759a: 0xe0000b1a, 0x1759b: 0xe0000b17, + 0x1759c: 0xe0000bb8, 0x1759d: 0xe0000bb5, 0x1759e: 0xe0000bb2, 0x1759f: 0xe0000baf, + 0x175a0: 0xe0000bc4, 0x175a1: 0xe0000bc1, 0x175a2: 0xe0000bca, 0x175a3: 0xe0000bc7, + 0x175a4: 0xe0000bee, 0x175a5: 0xe0000beb, 0x175a6: 0xe0000c1b, 0x175a7: 0xe0000c18, + 0x175a8: 0xe0000c51, 0x175a9: 0xe0000c4e, 0x175aa: 0xe0000c60, 0x175ab: 0xe0000c5d, + 0x175ac: 0xe0000c31, 0x175ad: 0xe0000c2e, 0x175ae: 0xe0000c5a, 0x175af: 0xe0000c57, + 0x175b0: 0xe0000c54, 0x175b1: 0x402da220, 0x175b2: 0xf0000a0a, 0x175b3: 0xf0000404, + 0x175b4: 0xe0000c8a, 0x175b5: 0xe0000c87, 0x175b6: 0xe0000c9f, 0x175b7: 0xe0000c9c, + 0x175b8: 0x402f7220, 0x175b9: 0xe0000ccc, 0x175ba: 0xe0000cc9, 0x175bb: 0xe0000cd8, + 0x175bc: 0xe0000cd5, 0x175bd: 0xe0000cd2, 0x175be: 0xe0000ccf, 0x175bf: 0xe0000d04, + // Block 0x5d7, offset 0x175c0 + 0x175c0: 0xe0000cfe, 0x175c1: 0xe0000cf8, 0x175c2: 0xe0000cf5, 0x175c3: 0xe0000d51, + 0x175c4: 0xe0000d4e, 0x175c5: 0xe0000d6f, 0x175c6: 0xe0000d6c, 0x175c7: 0xe0000d5d, + 0x175c8: 0xe0000d5a, 0x175c9: 0xf0000404, 0x175ca: 0x002eda88, 0x175cb: 0x402eda20, + 0x175cc: 0xe0000e2e, 0x175cd: 0xe0000e2b, 0x175ce: 0xe0000da0, 0x175cf: 0xe0000d9d, + 0x175d0: 0x003210c3, 0x175d1: 0x40321022, 0x175d2: 0x003210e3, 0x175d3: 0x40321023, + 0x175d4: 0xe0000eca, 0x175d5: 0xe0000ec7, 0x175d6: 0xe0000edc, 0x175d7: 0xe0000ed9, + 0x175d8: 0xe0000ed0, 0x175d9: 0xe0000ecd, 0x175da: 0xe0000f1f, 0x175db: 0xe0000f1c, + 0x175dc: 0xe0000f2d, 0x175dd: 0xe0000f2a, 0x175de: 0xe0000f47, 0x175df: 0xe0000f44, + 0x175e0: 0xe0000f33, 0x175e1: 0xe0000f30, 0x175e2: 0xe0000f99, 0x175e3: 0xe0000f96, + 0x175e4: 0xe0000f8a, 0x175e5: 0xe0000f87, 0x175e6: 0x00303688, 0x175e7: 0x40303620, + 0x175e8: 0xe000102b, 0x175e9: 0xe0001028, 0x175ea: 0xe000103f, 0x175eb: 0xe000103c, + 0x175ec: 0xe0000fe7, 0x175ed: 0xe0000fe4, 0x175ee: 0xe0000ff9, 0x175ef: 0xe0000ff6, + 0x175f0: 0x003100c3, 0x175f1: 0x40310022, 0x175f2: 0xe0001039, 0x175f3: 0xe0001036, + 0x175f4: 0xe00010d8, 0x175f5: 0xe00010d5, 0x175f6: 0xe000110e, 0x175f7: 0xe000110b, + 0x175f8: 0xe0001117, 0x175f9: 0xe000113b, 0x175fa: 0xe0001138, 0x175fb: 0xe000114d, + 0x175fc: 0xe000114a, 0x175fd: 0xe0001147, 0x175fe: 0xe0001144, 0x175ff: 0xe0000f64, + // Block 0x5d8, offset 0x17600 + 0x17600: 0xe0000b03, 0x17601: 0xe0000aff, 0x17602: 0xe0000b13, 0x17603: 0xe0000b0f, + 0x17604: 0xe0000b0b, 0x17605: 0xe0000b07, 0x17606: 0xe0000b75, 0x17607: 0xe0000b71, + 0x17608: 0xe0000c66, 0x17609: 0xe0000c63, 0x1760a: 0xe0000c78, 0x1760b: 0xe0000c75, + 0x1760c: 0xe0000e84, 0x1760d: 0xe0000e81, 0x1760e: 0xe0000e44, 0x1760f: 0xe0000e41, + 0x17610: 0xe000adec, 0x17611: 0xe000ade9, 0x17612: 0xe000adf2, 0x17613: 0xe000adef, + 0x17614: 0xe000adfe, 0x17615: 0xe000adfb, 0x17616: 0xe000adf8, 0x17617: 0xe000adf5, + 0x17618: 0xe000ae04, 0x17619: 0xe000ae01, 0x1761a: 0xe0000e5d, 0x1761b: 0xe0000e59, + 0x1761c: 0xe0000e65, 0x1761d: 0xe0000e61, 0x1761e: 0xe0000e75, 0x1761f: 0xe0000e71, + 0x17620: 0xe0000e6d, 0x17621: 0xe0000e69, 0x17622: 0xe0000e7d, 0x17623: 0xe0000e79, + 0x17624: 0xe000108d, 0x17625: 0xe000108a, 0x17626: 0xe000104d, 0x17627: 0xe000104a, + 0x17628: 0xe0001066, 0x17629: 0xe0001062, 0x1762a: 0xe000106e, 0x1762b: 0xe000106a, + 0x1762c: 0xe000107e, 0x1762d: 0xe000107a, 0x1762e: 0xe0001076, 0x1762f: 0xe0001072, + 0x17630: 0xe0001086, 0x17631: 0xe0001082, 0x17632: 0xe0001108, 0x17633: 0xe0001105, + 0x17634: 0xe0001135, 0x17635: 0xe0001132, 0x17636: 0xe000112f, 0x17637: 0xe000112c, + 0x17638: 0xe000111d, 0x17639: 0xe000111a, 0x1763a: 0xe0000d0a, 0x1763b: 0xe0000d07, + 0x1763c: 0x0030d888, 0x1763d: 0x4030d820, 0x1763e: 0x00312088, 0x1763f: 0x40312020, + // Block 0x5d9, offset 0x17640 + 0x17640: 0xa0000000, 0x17641: 0xa0000000, 0x17642: 0xa0000000, 0x17643: 0xa0000000, + 0x17644: 0xa0000000, 0x17645: 0xa0000000, 0x17646: 0xa0000000, 0x17647: 0xa0000000, + 0x17648: 0xa0000000, 0x17649: 0x40020020, 0x1764a: 0x40020220, 0x1764b: 0x40020420, + 0x1764c: 0x40020620, 0x1764d: 0x40020820, 0x1764e: 0xa0000000, 0x1764f: 0xa0000000, + 0x17650: 0xa0000000, 0x17651: 0xa0000000, 0x17652: 0xa0000000, 0x17653: 0xa0000000, + 0x17654: 0xa0000000, 0x17655: 0xa0000000, 0x17656: 0xa0000000, 0x17657: 0xa0000000, + 0x17658: 0xa0000000, 0x17659: 0xa0000000, 0x1765a: 0xa0000000, 0x1765b: 0xa0000000, + 0x1765c: 0xa0000000, 0x1765d: 0xa0000000, 0x1765e: 0xa0000000, 0x1765f: 0xa0000000, + 0x17660: 0x40021220, 0x17661: 0x4002ba20, 0x17662: 0x4003e020, 0x17663: 0x4004ea20, + 0x17664: 0x4027de20, 0x17665: 0x4004ec20, 0x17666: 0x4004e620, 0x17667: 0x4003d220, + 0x17668: 0x4003f420, 0x17669: 0x4003f620, 0x1766a: 0x4004d820, 0x1766b: 0x40093820, + 0x1766c: 0x40024020, 0x1766d: 0x40021a20, 0x1766e: 0x4002e420, 0x1766f: 0x4004e220, + 0x17670: 0x4029cc20, 0x17671: 0x4029ce20, 0x17672: 0x4029d020, 0x17673: 0x4029d220, + 0x17674: 0x4029d420, 0x17675: 0x4029d620, 0x17676: 0x4029d820, 0x17677: 0x4029da20, + 0x17678: 0x4029dc20, 0x17679: 0x4029de20, 0x1767a: 0x40026c20, 0x1767b: 0x40026220, + 0x1767c: 0x40094020, 0x1767d: 0x40094220, 0x1767e: 0x40094420, 0x1767f: 0x4002c420, + // Block 0x5da, offset 0x17680 + 0x17680: 0x4004d620, 0x17681: 0xc57327b1, 0x17682: 0x002c0a88, 0x17683: 0x002c3a88, + 0x17684: 0x002c6288, 0x17685: 0xcf130be1, 0x17686: 0x002d0888, 0x17687: 0x002d2288, + 0x17688: 0x002d6888, 0x17689: 0x002d9a88, 0x1768a: 0x002dcc88, 0x1768b: 0x002dfe88, + 0x1768c: 0xc0030002, 0x1768d: 0x002e8288, 0x1768e: 0x002e9e88, 0x1768f: 0xcf199891, + 0x17690: 0x002f2c88, 0x17691: 0x002f5688, 0x17692: 0x002f7a88, 0x17693: 0x002fe688, + 0x17694: 0x00302c88, 0x17695: 0xc3900b21, 0x17696: 0x0030be83, 0x17697: 0x0030bea3, + 0x17698: 0x0030f688, 0x17699: 0x00310088, 0x1769a: 0x00312a88, 0x1769b: 0x4003f820, + 0x1769c: 0x4004e420, 0x1769d: 0x4003fa20, 0x1769e: 0x40062420, 0x1769f: 0x40021620, + 0x176a0: 0x40061e20, 0x176a1: 0xc57027b1, 0x176a2: 0x402c0a20, 0x176a3: 0x402c3a20, + 0x176a4: 0x402c6220, 0x176a5: 0xcf110be1, 0x176a6: 0x402d0820, 0x176a7: 0x402d2220, + 0x176a8: 0x402d6820, 0x176a9: 0x402d9a20, 0x176aa: 0x402dcc20, 0x176ab: 0x402dfe20, + 0x176ac: 0xc0000002, 0x176ad: 0x402e8220, 0x176ae: 0x402e9e20, 0x176af: 0xcf159891, + 0x176b0: 0x402f2c20, 0x176b1: 0x402f5620, 0x176b2: 0x402f7a20, 0x176b3: 0x402fe620, + 0x176b4: 0x40302c20, 0x176b5: 0xc38d0b21, 0x176b6: 0x4030be20, 0x176b7: 0x4030be21, + 0x176b8: 0x4030f620, 0x176b9: 0x40310020, 0x176ba: 0x40312a20, 0x176bb: 0x4003fc20, + 0x176bc: 0x40094820, 0x176bd: 0x4003fe20, 0x176be: 0x40094c20, 0x176bf: 0xa0000000, + // Block 0x5db, offset 0x176c0 + 0x176c0: 0xe0000cfe, 0x176c1: 0xe0000cf8, 0x176c2: 0xe0000cf5, 0x176c3: 0xe0000d51, + 0x176c4: 0xe0000d4e, 0x176c5: 0xe0000d6f, 0x176c6: 0xe0000d6c, 0x176c7: 0xe0000d5d, + 0x176c8: 0xe0000d5a, 0x176c9: 0xf0000404, 0x176ca: 0x002eda88, 0x176cb: 0x402eda20, + 0x176cc: 0xe0000e2e, 0x176cd: 0xe0000e2b, 0x176ce: 0xe0000da0, 0x176cf: 0xe0000d9d, + 0x176d0: 0x003210c3, 0x176d1: 0x40321022, 0x176d2: 0x003210e3, 0x176d3: 0x40321023, + 0x176d4: 0xe0000eca, 0x176d5: 0xe0000ec7, 0x176d6: 0xe0000edc, 0x176d7: 0xe0000ed9, + 0x176d8: 0xe0000ed0, 0x176d9: 0xe0000ecd, 0x176da: 0xe0000f1f, 0x176db: 0xe0000f1c, + 0x176dc: 0xe0000f2d, 0x176dd: 0xe0000f2a, 0x176de: 0xe0000f47, 0x176df: 0xe0000f44, + 0x176e0: 0xe0000f33, 0x176e1: 0xe0000f30, 0x176e2: 0xe0000f99, 0x176e3: 0xe0000f96, + 0x176e4: 0xe0000f8a, 0x176e5: 0xe0000f87, 0x176e6: 0x00303688, 0x176e7: 0x40303620, + 0x176e8: 0xe000102b, 0x176e9: 0xe0001028, 0x176ea: 0xe000103f, 0x176eb: 0xe000103c, + 0x176ec: 0xe0000fe7, 0x176ed: 0xe0000fe4, 0x176ee: 0xe0000ff9, 0x176ef: 0xe0000ff6, + 0x176f0: 0x003100c3, 0x176f1: 0x40310022, 0x176f2: 0xe0001039, 0x176f3: 0xe0001036, + 0x176f4: 0xe0003636, 0x176f5: 0xe0003633, 0x176f6: 0xe000110e, 0x176f7: 0xe000110b, + 0x176f8: 0xe0001117, 0x176f9: 0xe000113b, 0x176fa: 0xe0001138, 0x176fb: 0xe000114d, + 0x176fc: 0xe000114a, 0x176fd: 0xe0001147, 0x176fe: 0xe0001144, 0x176ff: 0xe0000f64, + // Block 0x5dc, offset 0x17700 + 0x17700: 0xe0000d24, 0x17701: 0xe0000d21, 0x17702: 0xe0000d2a, 0x17703: 0xe0000d27, + 0x17704: 0xe0000d69, 0x17705: 0xe0000d66, 0x17706: 0xe0000d7b, 0x17707: 0xe0000d78, + 0x17708: 0xe0000d87, 0x17709: 0xe0000d84, 0x1770a: 0xe0000d81, 0x1770b: 0xe0000d7e, + 0x1770c: 0xe0000ded, 0x1770d: 0xe0000de9, 0x1770e: 0xe00037f4, 0x1770f: 0xe00037f1, + 0x17710: 0xe0000e3d, 0x17711: 0xe0000e39, 0x17712: 0xe0000e35, 0x17713: 0xe0000e31, + 0x17714: 0xe0000ea7, 0x17715: 0xe0000ea4, 0x17716: 0xe0000ead, 0x17717: 0xe0000eaa, + 0x17718: 0xe0000ed6, 0x17719: 0xe0000ed3, 0x1771a: 0xe0000ef4, 0x1771b: 0xe0000ef1, + 0x1771c: 0xe0000efb, 0x1771d: 0xe0000ef7, 0x1771e: 0xe0000f02, 0x1771f: 0xe0000eff, + 0x17720: 0xe0000f41, 0x17721: 0xe0000f3e, 0x17722: 0xe0000f53, 0x17723: 0xe0000f50, + 0x17724: 0xe0000f26, 0x17725: 0xe0000f22, 0x17726: 0xe0000f3a, 0x17727: 0xe0000f36, + 0x17728: 0xe0000f5a, 0x17729: 0xe0000f56, 0x1772a: 0xe0000f93, 0x1772b: 0xe0000f90, + 0x1772c: 0xe0000f9f, 0x1772d: 0xe0000f9c, 0x1772e: 0xe0000fb1, 0x1772f: 0xe0000fae, + 0x17730: 0xe0000fab, 0x17731: 0xe0000fa8, 0x17732: 0xe0001093, 0x17733: 0xe0001090, + 0x17734: 0xe000109f, 0x17735: 0xe000109c, 0x17736: 0xe0001099, 0x17737: 0xe0001096, + 0x17738: 0xe0001032, 0x17739: 0xe000102e, 0x1773a: 0xe000298b, 0x1773b: 0xe0002988, + 0x1773c: 0xe000ae07, 0x1773d: 0xe00010a6, 0x1773e: 0xe000ae0a, 0x1773f: 0xe00010ac, + // Block 0x5dd, offset 0x17740 + 0x17742: 0x40429620, 0x17743: 0x40429820, + 0x17745: 0x40427e20, 0x17746: 0x40428020, 0x17747: 0x40428220, + 0x17748: 0x40428420, 0x17749: 0x40428620, 0x1774a: 0x40428820, + 0x1774e: 0x40428a20, 0x1774f: 0x40428c20, + 0x17750: 0x40428e20, 0x17752: 0xc0610231, 0x17753: 0x40429220, + 0x17754: 0x40429420, 0x17755: 0xcf1d98d1, + 0x17759: 0xcf219961, 0x1775a: 0xcf239961, + 0x1775c: 0xcf439961, 0x1775e: 0xcf259961, 0x1775f: 0xcf279961, + 0x17763: 0xcf299961, + 0x17764: 0xcf2b9961, + 0x17768: 0xcf2d9961, 0x17769: 0xcf419961, 0x1776a: 0xcf2f9961, + 0x1776e: 0xcf319961, 0x1776f: 0xcf339961, + 0x17770: 0xcf359961, 0x17771: 0xcf3f9961, 0x17772: 0xcf379961, 0x17773: 0xcf3d9961, + 0x17774: 0xcf3b9961, 0x17775: 0xcf399961, 0x17776: 0xcf459961, 0x17777: 0xcf479961, + 0x17778: 0xcf499961, 0x17779: 0xcf4b9961, + 0x1777e: 0x4042c620, 0x1777f: 0x4042c820, + // Block 0x5de, offset 0x17780 + 0x17781: 0x40430020, 0x17782: 0x40430220, 0x17783: 0x40430420, + 0x17785: 0x4042e020, 0x17786: 0x4042e220, 0x17787: 0x4042e420, + 0x17788: 0x4042e620, 0x17789: 0x4042e820, 0x1778a: 0x4042ea20, 0x1778b: 0x4042ec20, + 0x1778c: 0x4042f020, 0x1778e: 0x4042f420, 0x1778f: 0x4042f620, + 0x17790: 0x4042f820, 0x17792: 0x4042fa20, 0x17793: 0x4042fc20, + 0x17794: 0x4042fe20, 0x17795: 0x40430020, 0x17796: 0x40430220, 0x17797: 0x40430420, + 0x17798: 0x40430620, 0x17799: 0x40430820, 0x1779a: 0x40430a20, 0x1779b: 0x40430e20, + 0x1779c: 0x40431020, 0x1779d: 0x40431420, 0x1779e: 0x40431620, 0x1779f: 0x40431820, + 0x177a0: 0x40431a20, 0x177a1: 0x40431c20, 0x177a2: 0x40431e20, 0x177a3: 0x40432020, + 0x177a4: 0x40432220, 0x177a5: 0x40432420, 0x177a6: 0x40432620, 0x177a7: 0x40432820, + 0x177a8: 0x40432a20, 0x177aa: 0x40432c20, 0x177ab: 0x40432e20, + 0x177ac: 0x40433020, 0x177ad: 0x40433220, 0x177ae: 0x40433420, 0x177af: 0x40433620, + 0x177b0: 0x40433820, 0x177b1: 0x40433a20, 0x177b2: 0x40433c20, 0x177b3: 0x40434820, + 0x177b5: 0x40433e20, 0x177b6: 0x40434020, 0x177b7: 0x40434220, + 0x177b8: 0x40434420, 0x177b9: 0x40434620, + 0x177bd: 0x40434a20, 0x177be: 0x40434c20, 0x177bf: 0x40434e20, + // Block 0x5df, offset 0x177c0 + 0x177c1: 0x40491020, 0x177c2: 0x40491220, 0x177c3: 0x40491420, + 0x177c4: 0x40491620, 0x177c5: 0x40491820, 0x177c6: 0x40491a20, 0x177c7: 0x40491c20, + 0x177c8: 0x40491e20, 0x177c9: 0x40492020, 0x177ca: 0x40492220, 0x177cb: 0x40492420, + 0x177cc: 0x40492620, 0x177cd: 0x40492820, 0x177ce: 0x40492a20, 0x177cf: 0x40492c20, + 0x177d0: 0x40492e20, 0x177d1: 0x40493020, 0x177d2: 0x40493220, 0x177d3: 0x40493420, + 0x177d4: 0x40493620, 0x177d5: 0x40493820, 0x177d6: 0x40493a20, 0x177d7: 0x40493c20, + 0x177d8: 0x40493e20, 0x177d9: 0x40494020, 0x177da: 0x40494220, 0x177db: 0x40494420, + 0x177dc: 0x40494620, 0x177dd: 0x40494820, 0x177de: 0x40494a20, 0x177df: 0x40494c20, + 0x177e0: 0x40494e20, 0x177e1: 0x40495020, 0x177e2: 0x40495220, 0x177e3: 0x40495420, + 0x177e4: 0x40495620, 0x177e5: 0x40495820, 0x177e6: 0x40495a20, 0x177e7: 0x40495c20, + 0x177e8: 0x40495e20, 0x177e9: 0x40496020, 0x177ea: 0x40496220, 0x177eb: 0x40496420, + 0x177ec: 0x40496620, 0x177ed: 0x40496820, 0x177ee: 0x40496a20, 0x177ef: 0x40057820, + 0x177f0: 0x40496e20, 0x177f1: 0x40497020, 0x177f2: 0x40497220, 0x177f3: 0xe000ae10, + 0x177f4: 0x40497620, 0x177f5: 0x40497820, 0x177f6: 0x40497a20, 0x177f7: 0x40497c20, + 0x177f8: 0x826724bf, 0x177f9: 0x826724c0, 0x177fa: 0x40498e20, + 0x177ff: 0x4027f420, + // Block 0x5e0, offset 0x17800 + 0x17800: 0xc07f04e1, 0x17801: 0xc0ae04e1, 0x17802: 0xc0dd04e1, 0x17803: 0xc10c04e1, + 0x17804: 0xc13b04e1, 0x17805: 0x00497283, 0x17806: 0x40057e20, 0x17807: 0xa000ff02, + 0x17808: 0xa6b10002, 0x17809: 0xa6b10102, 0x1780a: 0xa6b10202, 0x1780b: 0xa6b10302, + 0x1780c: 0xa000ff02, 0x1780d: 0xcf4d9991, 0x1780e: 0xa000fe02, 0x1780f: 0x40057820, + 0x17810: 0xe000019a, 0x17811: 0xe000022e, 0x17812: 0xe0000346, 0x17813: 0xe0000420, + 0x17814: 0xe00004f5, 0x17815: 0xe00005bf, 0x17816: 0xe000068a, 0x17817: 0xe0000732, + 0x17818: 0xe00007de, 0x17819: 0xe0000883, 0x1781a: 0x40057a20, 0x1781b: 0x40057c20, + // Block 0x5e1, offset 0x17840 + 0x17840: 0xa0000000, 0x17841: 0xa0000000, 0x17842: 0xa0000000, 0x17843: 0xa0000000, + 0x17844: 0xa0000000, 0x17845: 0xa0000000, 0x17846: 0xa0000000, 0x17847: 0xa0000000, + 0x17848: 0xa0000000, 0x17849: 0x40020020, 0x1784a: 0x40020220, 0x1784b: 0x40020420, + 0x1784c: 0x40020620, 0x1784d: 0x40020820, 0x1784e: 0xa0000000, 0x1784f: 0xa0000000, + 0x17850: 0xa0000000, 0x17851: 0xa0000000, 0x17852: 0xa0000000, 0x17853: 0xa0000000, + 0x17854: 0xa0000000, 0x17855: 0xa0000000, 0x17856: 0xa0000000, 0x17857: 0xa0000000, + 0x17858: 0xa0000000, 0x17859: 0xa0000000, 0x1785a: 0xa0000000, 0x1785b: 0xa0000000, + 0x1785c: 0xa0000000, 0x1785d: 0xa0000000, 0x1785e: 0xa0000000, 0x1785f: 0xa0000000, + 0x17860: 0x40021220, 0x17861: 0x4002ba20, 0x17862: 0x4003e020, 0x17863: 0x4004ea20, + 0x17864: 0x4027de20, 0x17865: 0x4004ec20, 0x17866: 0x4004e620, 0x17867: 0x4003d220, + 0x17868: 0x4003f420, 0x17869: 0x4003f620, 0x1786a: 0x4004d820, 0x1786b: 0x40093820, + 0x1786c: 0x40024020, 0x1786d: 0x40021a20, 0x1786e: 0x4002e420, 0x1786f: 0x4004e220, + 0x17870: 0x4029cc20, 0x17871: 0x4029ce20, 0x17872: 0x4029d020, 0x17873: 0x4029d220, + 0x17874: 0x4029d420, 0x17875: 0x4029d620, 0x17876: 0x4029d820, 0x17877: 0x4029da20, + 0x17878: 0x4029dc20, 0x17879: 0x4029de20, 0x1787a: 0x40026c20, 0x1787b: 0x40026220, + 0x1787c: 0x40094020, 0x1787d: 0x40094220, 0x1787e: 0x40094420, 0x1787f: 0x4002c420, + // Block 0x5e2, offset 0x17880 + 0x17880: 0x4004d620, 0x17881: 0xcf5399e1, 0x17882: 0x002c0a88, 0x17883: 0x002c3a88, + 0x17884: 0x002c6288, 0x17885: 0xcf5999e1, 0x17886: 0x002d0888, 0x17887: 0x002d2288, + 0x17888: 0x002d6888, 0x17889: 0xcf5f99e1, 0x1788a: 0x002dcc88, 0x1788b: 0x002dfe88, + 0x1788c: 0xc0030002, 0x1788d: 0x002e8288, 0x1788e: 0xc5350a52, 0x1788f: 0xcf6599e1, + 0x17890: 0x002f2c88, 0x17891: 0x002f5688, 0x17892: 0x002f7a88, 0x17893: 0x002fe688, + 0x17894: 0x00302c88, 0x17895: 0xcf6b99e1, 0x17896: 0x0030be88, 0x17897: 0x0030e288, + 0x17898: 0x0030f688, 0x17899: 0x00310088, 0x1789a: 0x00312a88, 0x1789b: 0x4003f820, + 0x1789c: 0x4004e420, 0x1789d: 0x4003fa20, 0x1789e: 0x40062420, 0x1789f: 0x40021620, + 0x178a0: 0x40061e20, 0x178a1: 0xcf5099e1, 0x178a2: 0x402c0a20, 0x178a3: 0x402c3a20, + 0x178a4: 0x402c6220, 0x178a5: 0xcf5699e1, 0x178a6: 0x402d0820, 0x178a7: 0x402d2220, + 0x178a8: 0x402d6820, 0x178a9: 0xcf5c99e1, 0x178aa: 0x402dcc20, 0x178ab: 0x402dfe20, + 0x178ac: 0xc0000002, 0x178ad: 0x402e8220, 0x178ae: 0xc5330a41, 0x178af: 0xcf6299e1, + 0x178b0: 0x402f2c20, 0x178b1: 0x402f5620, 0x178b2: 0x402f7a20, 0x178b3: 0x402fe620, + 0x178b4: 0x40302c20, 0x178b5: 0xcf6899e1, 0x178b6: 0x4030be20, 0x178b7: 0x4030e220, + 0x178b8: 0x4030f620, 0x178b9: 0x40310020, 0x178ba: 0x40312a20, 0x178bb: 0x4003fc20, + 0x178bc: 0x40094820, 0x178bd: 0x4003fe20, 0x178be: 0x40094c20, 0x178bf: 0xa0000000, + // Block 0x5e3, offset 0x178c0 + 0x178c0: 0xe00008f5, 0x178c1: 0x002bdea3, 0x178c2: 0xe0000921, 0x178c3: 0xe0000969, + 0x178c4: 0xe000095b, 0x178c5: 0xe000094d, 0x178c6: 0xe00009dd, 0x178c7: 0xe0000a53, + 0x178c8: 0xe0000ae8, 0x178c9: 0x002c98a3, 0x178ca: 0xe0000af4, 0x178cb: 0xe0000b20, + 0x178cc: 0xe0000c2b, 0x178cd: 0x002d9aa3, 0x178ce: 0xe0000c37, 0x178cf: 0xe0000c43, + 0x178d0: 0xe0000ab3, 0x178d1: 0xe0000d63, 0x178d2: 0xe0000d9a, 0x178d3: 0x002ee2a3, + 0x178d4: 0xe0000da6, 0x178d5: 0xe0000de6, 0x178d6: 0xe0000dd2, 0x178d7: 0x40093e20, + 0x178d8: 0xe0000e12, 0x178d9: 0xe0000fe1, 0x178da: 0x00306ca3, 0x178db: 0xe0000fed, + 0x178dc: 0xe0000fff, 0x178dd: 0xe0001102, 0x178de: 0x00318888, 0x178df: 0xe0000f7b, + 0x178e0: 0xe00008f2, 0x178e1: 0x402bde21, 0x178e2: 0xe000091e, 0x178e3: 0xe0000966, + 0x178e4: 0xe0000958, 0x178e5: 0xe000094a, 0x178e6: 0xe00009d5, 0x178e7: 0xe0000a4d, + 0x178e8: 0xe0000ae5, 0x178e9: 0x402c9821, 0x178ea: 0xe0000af1, 0x178eb: 0xe0000b1d, + 0x178ec: 0xe0000c28, 0x178ed: 0x402d9a21, 0x178ee: 0xe0000c34, 0x178ef: 0xe0000c40, + 0x178f0: 0xe0000aad, 0x178f1: 0xe0000d60, 0x178f2: 0xe0000d97, 0x178f3: 0x402ee221, + 0x178f4: 0xe0000da3, 0x178f5: 0xe0000de3, 0x178f6: 0xe0000dcf, 0x178f7: 0x40093c20, + 0x178f8: 0xe0000e0f, 0x178f9: 0xe0000fde, 0x178fa: 0x40306c21, 0x178fb: 0xe0000fea, + 0x178fc: 0xe0000ffc, 0x178fd: 0xe00010ff, 0x178fe: 0x40318820, 0x178ff: 0xe0001114, + // Block 0x5e4, offset 0x17900 + 0x17900: 0x002bdec3, 0x17901: 0x402bde22, 0x17902: 0xe00008fb, 0x17903: 0xe00008f8, + 0x17904: 0xe000097d, 0x17905: 0xe000097a, 0x17906: 0xe0000a38, 0x17907: 0xe0000a35, + 0x17908: 0xe0000a3e, 0x17909: 0xe0000a3b, 0x1790a: 0xe0000a4a, 0x1790b: 0xe0000a47, + 0x1790c: 0xe0000a44, 0x1790d: 0xe0000a41, 0x1790e: 0xe0000a86, 0x1790f: 0xe0000a83, + 0x17910: 0xe0000aaa, 0x17911: 0xe0000aa7, 0x17912: 0x002c98c3, 0x17913: 0x402c9822, + 0x17914: 0xe0000aee, 0x17915: 0xe0000aeb, 0x17916: 0xe0000b2c, 0x17917: 0xe0000b29, + 0x17918: 0xe0000b40, 0x17919: 0xe0000b3d, 0x1791a: 0xe0000b1a, 0x1791b: 0xe0000b17, + 0x1791c: 0xe0000bb8, 0x1791d: 0xe0000bb5, 0x1791e: 0xe0000bb2, 0x1791f: 0xe0000baf, + 0x17920: 0xe0000bc4, 0x17921: 0xe0000bc1, 0x17922: 0xe0000bca, 0x17923: 0xe0000bc7, + 0x17924: 0xe0000bee, 0x17925: 0xe0000beb, 0x17926: 0xe0000c1b, 0x17927: 0xe0000c18, + 0x17928: 0xe0000c51, 0x17929: 0xe0000c4e, 0x1792a: 0x002d9ac3, 0x1792b: 0x402d9a22, + 0x1792c: 0xe0000c31, 0x1792d: 0xe0000c2e, 0x1792e: 0xe0000c5a, 0x1792f: 0xe0000c57, + 0x17930: 0xe0000c54, 0x17931: 0x402da220, 0x17932: 0xf0000a0a, 0x17933: 0xf0000404, + 0x17934: 0xe0000c8a, 0x17935: 0xe0000c87, 0x17936: 0xe0000c9f, 0x17937: 0xe0000c9c, + 0x17938: 0x402f7220, 0x17939: 0xe0000ccc, 0x1793a: 0xe0000cc9, 0x1793b: 0xe0000cd8, + 0x1793c: 0xe0000cd5, 0x1793d: 0xe0000cd2, 0x1793e: 0xe0000ccf, 0x1793f: 0xe0000d04, + // Block 0x5e5, offset 0x17940 + 0x17940: 0xe0000cfe, 0x17941: 0xe0000cf8, 0x17942: 0xe0000cf5, 0x17943: 0xe0000d51, + 0x17944: 0xe0000d4e, 0x17945: 0xe0000d6f, 0x17946: 0xe0000d6c, 0x17947: 0xe0000d5d, + 0x17948: 0xe0000d5a, 0x17949: 0xf0000404, 0x1794a: 0x002ea086, 0x1794b: 0x002ea085, + 0x1794c: 0x002ee2c3, 0x1794d: 0x402ee222, 0x1794e: 0xe0000da0, 0x1794f: 0xe0000d9d, + 0x17950: 0xe0000de0, 0x17951: 0xe0000ddd, 0x17952: 0xe0000e93, 0x17953: 0xe0000e8f, + 0x17954: 0xe0000eca, 0x17955: 0xe0000ec7, 0x17956: 0xe0000edc, 0x17957: 0xe0000ed9, + 0x17958: 0xe0000ed0, 0x17959: 0xe0000ecd, 0x1795a: 0xe0000f1f, 0x1795b: 0xe0000f1c, + 0x1795c: 0xe0000f2d, 0x1795d: 0xe0000f2a, 0x1795e: 0xe0000f47, 0x1795f: 0xe0000f44, + 0x17960: 0xe0000f33, 0x17961: 0xe0000f30, 0x17962: 0xe0000f99, 0x17963: 0xe0000f96, + 0x17964: 0xe0000f8a, 0x17965: 0xe0000f87, 0x17966: 0x00303688, 0x17967: 0x40303620, + 0x17968: 0xe000102b, 0x17969: 0xe0001028, 0x1796a: 0x00306cc3, 0x1796b: 0x40306c22, + 0x1796c: 0xe0000fe7, 0x1796d: 0xe0000fe4, 0x1796e: 0xe0000ff9, 0x1796f: 0xe0000ff6, + 0x17970: 0xe0001025, 0x17971: 0xe0001022, 0x17972: 0xe0001039, 0x17973: 0xe0001036, + 0x17974: 0xe00010d8, 0x17975: 0xe00010d5, 0x17976: 0xe000110e, 0x17977: 0xe000110b, + 0x17978: 0xe0001117, 0x17979: 0xe000113b, 0x1797a: 0xe0001138, 0x1797b: 0xe000114d, + 0x1797c: 0xe000114a, 0x1797d: 0xe0001147, 0x1797e: 0xe0001144, 0x1797f: 0xe0000f64, + // Block 0x5e6, offset 0x17980 + 0x17980: 0x40321220, 0x17981: 0x40321a20, 0x17982: 0x40322220, 0x17983: 0x40322a20, + 0x17984: 0xe0000ad5, 0x17985: 0xe0000ad1, 0x17986: 0xe0000acd, 0x17987: 0xf0000a0a, + 0x17988: 0xf000040a, 0x17989: 0xf0000404, 0x1798a: 0xf0000a0a, 0x1798b: 0xf000040a, + 0x1798c: 0xf0000404, 0x1798d: 0xe0000947, 0x1798e: 0xe0000944, 0x1798f: 0xe0000c3d, + 0x17990: 0xe0000c3a, 0x17991: 0xe0000dcc, 0x17992: 0xe0000dc9, 0x17993: 0xe0000ff3, + 0x17994: 0xe0000ff0, 0x17995: 0xe000a9d3, 0x17996: 0xe000a9d0, 0x17997: 0xe000ae82, + 0x17998: 0xe000ae7f, 0x17999: 0xe0001016, 0x1799a: 0xe0001012, 0x1799b: 0xe000100e, + 0x1799c: 0xe000100a, 0x1799d: 0x402cae20, 0x1799e: 0xe000ae28, 0x1799f: 0xe000ae25, + 0x179a0: 0xe000ae2e, 0x179a1: 0xe000ae2b, 0x179a2: 0xe00009f4, 0x179a3: 0xe00009ef, + 0x179a4: 0x002d3a88, 0x179a5: 0x402d3a20, 0x179a6: 0xe0000bbe, 0x179a7: 0xe0000bbb, + 0x179a8: 0xe0000c99, 0x179a9: 0xe0000c96, 0x179aa: 0xe0000e20, 0x179ab: 0xe0000e1d, + 0x179ac: 0xe000ae7c, 0x179ad: 0xe000ae79, 0x179ae: 0xe0001162, 0x179af: 0xe000115f, + 0x179b0: 0xe0000c8d, 0x179b1: 0xf0000a0a, 0x179b2: 0xf000040a, 0x179b3: 0xf0000404, + 0x179b4: 0xe0000bac, 0x179b5: 0xe0000ba9, 0x179b6: 0x002d7888, 0x179b7: 0x00319488, + 0x179b8: 0xe0000d57, 0x179b9: 0xe0000d54, 0x179ba: 0xe000ae22, 0x179bb: 0xe000ae1f, + 0x179bc: 0xe00009ea, 0x179bd: 0xe00009e5, 0x179be: 0xe0000e19, 0x179bf: 0xe0000e15, + // Block 0x5e7, offset 0x179c0 + 0x179c0: 0xe000098f, 0x179c1: 0xe000098c, 0x179c2: 0xe0000995, 0x179c3: 0xe0000992, + 0x179c4: 0xe0000b62, 0x179c5: 0xe0000b5f, 0x179c6: 0xe0000b68, 0x179c7: 0xe0000b65, + 0x179c8: 0xe0000c6c, 0x179c9: 0xe0000c69, 0x179ca: 0xe0000c72, 0x179cb: 0xe0000c6f, + 0x179cc: 0xe0000e4a, 0x179cd: 0xe0000e47, 0x179ce: 0xe0000e50, 0x179cf: 0xe0000e4d, + 0x179d0: 0xe0000ee8, 0x179d1: 0xe0000ee5, 0x179d2: 0xe0000eee, 0x179d3: 0xe0000eeb, + 0x179d4: 0xe0001053, 0x179d5: 0xe0001050, 0x179d6: 0xe0001059, 0x179d7: 0xe0001056, + 0x179d8: 0xe0000f61, 0x179d9: 0xe0000f5e, 0x179da: 0xe0000fa5, 0x179db: 0xe0000fa2, + 0x179dc: 0x00312288, 0x179dd: 0x40312220, 0x179de: 0xe0000bf4, 0x179df: 0xe0000bf1, + 0x179e0: 0x002ebc88, 0x179e1: 0x402c8c20, 0x179e2: 0x002f2288, 0x179e3: 0x402f2220, + 0x179e4: 0x00314088, 0x179e5: 0x40314020, 0x179e6: 0xe000096f, 0x179e7: 0xe000096c, + 0x179e8: 0xe0000b32, 0x179e9: 0xe0000b2f, 0x179ea: 0xe000ae6a, 0x179eb: 0xe000ae67, + 0x179ec: 0xe000ae70, 0x179ed: 0xe000ae6d, 0x179ee: 0xe0000e04, 0x179ef: 0xe0000e01, + 0x179f0: 0xe000ae76, 0x179f1: 0xe000ae73, 0x179f2: 0xe0001129, 0x179f3: 0xe0001126, + 0x179f4: 0x402e5e20, 0x179f5: 0x402ed020, 0x179f6: 0x40305a20, 0x179f7: 0x402dd420, + 0x179f8: 0xe0000abf, 0x179f9: 0xe0000ec4, 0x179fa: 0x002be888, 0x179fb: 0x002c4488, + 0x179fc: 0x402c4420, 0x179fd: 0x002e3888, 0x179fe: 0x00303e88, 0x179ff: 0x402ffc20, + // Block 0x5e8, offset 0x17a00 + 0x17a00: 0x402f8220, 0x17a01: 0x402fd820, 0x17a02: 0x402ff420, 0x17a03: 0x40300820, + 0x17a04: 0x402df620, 0x17a05: 0x40301a20, 0x17a06: 0x40302420, 0x17a07: 0x40306420, + 0x17a08: 0x40305220, 0x17a09: 0x40307c20, 0x17a0a: 0x4030b420, 0x17a0b: 0x4030cc20, + 0x17a0c: 0x4030da20, 0x17a0d: 0x4030ee20, 0x17a0e: 0x402e7a20, 0x17a0f: 0x40310820, + 0x17a10: 0x40314820, 0x17a11: 0x40315020, 0x17a12: 0x40316420, 0x17a13: 0x40318020, + 0x17a14: 0x4031cc20, 0x17a15: 0x4031e820, 0x17a16: 0x40320a20, 0x17a17: 0x40323220, + 0x17a18: 0x40323a20, 0x17a19: 0x402c1220, 0x17a1a: 0x402cf820, 0x17a1b: 0x402d4c20, + 0x17a1c: 0x402d7020, 0x17a1d: 0x402de620, 0x17a1e: 0x402e1a20, 0x17a1f: 0x402e2a20, + 0x17a20: 0x402f6220, 0x17a21: 0x4031fa20, 0x17a22: 0x40320220, 0x17a23: 0xe0000aca, + 0x17a24: 0xe0000adc, 0x17a25: 0xe0000ad9, 0x17a26: 0xe0000fcc, 0x17a27: 0xe0000fcf, + 0x17a28: 0xe0000fba, 0x17a29: 0xe0000ba1, 0x17a2a: 0xe0000d11, 0x17a2b: 0xe0000d18, + 0x17a2c: 0x40324220, 0x17a2d: 0x40324a20, 0x17a2e: 0x40309020, 0x17a2f: 0x40309820, + 0x17a30: 0x002d6894, 0x17a31: 0x002d8094, 0x17a32: 0x002dcc94, 0x17a33: 0x002f7a94, + 0x17a34: 0x002f9894, 0x17a35: 0x002fac94, 0x17a36: 0x002fd894, 0x17a37: 0x0030e294, + 0x17a38: 0x00310094, 0x17a39: 0x40064020, 0x17a3a: 0x40064420, 0x17a3b: 0x40312c20, + 0x17a3c: 0x4031de20, 0x17a3d: 0x00312c83, 0x17a3e: 0x4031e220, 0x17a3f: 0x4031f020, + // Block 0x5e9, offset 0x17a40 + 0x17a40: 0xe00009b1, 0x17a41: 0xe00009ae, 0x17a42: 0xe0000a22, 0x17a43: 0xe0000a1f, + 0x17a44: 0xe0000a28, 0x17a45: 0xe0000a25, 0x17a46: 0xe0000a2e, 0x17a47: 0xe0000a2b, + 0x17a48: 0xe0000a5a, 0x17a49: 0xe0000a56, 0x17a4a: 0xe0000a8c, 0x17a4b: 0xe0000a89, + 0x17a4c: 0xe0000a98, 0x17a4d: 0xe0000a95, 0x17a4e: 0xe0000aa4, 0x17a4f: 0xe0000aa1, + 0x17a50: 0xe0000a92, 0x17a51: 0xe0000a8f, 0x17a52: 0xe0000a9e, 0x17a53: 0xe0000a9b, + 0x17a54: 0xe000ae40, 0x17a55: 0xe000ae3d, 0x17a56: 0xe000ae3a, 0x17a57: 0xe000ae37, + 0x17a58: 0xe0000b7c, 0x17a59: 0xe0000b79, 0x17a5a: 0xe0000b82, 0x17a5b: 0xe0000b7f, + 0x17a5c: 0xe0000b39, 0x17a5d: 0xe0000b35, 0x17a5e: 0xe0000b8c, 0x17a5f: 0xe0000b89, + 0x17a60: 0xe0000bd0, 0x17a61: 0xe0000bcd, 0x17a62: 0xe0000c00, 0x17a63: 0xe0000bfd, + 0x17a64: 0xe0000c0c, 0x17a65: 0xe0000c09, 0x17a66: 0xe0000bfa, 0x17a67: 0xe0000bf7, + 0x17a68: 0xe0000c06, 0x17a69: 0xe0000c03, 0x17a6a: 0xe0000c12, 0x17a6b: 0xe0000c0f, + 0x17a6c: 0xe0000c7e, 0x17a6d: 0xe0000c7b, 0x17a6e: 0xe000ae46, 0x17a6f: 0xe000ae43, + 0x17a70: 0xe0000c93, 0x17a71: 0xe0000c90, 0x17a72: 0xe0000cab, 0x17a73: 0xe0000ca8, + 0x17a74: 0xe0000cb1, 0x17a75: 0xe0000cae, 0x17a76: 0xe0000cde, 0x17a77: 0xe0000cdb, + 0x17a78: 0xe0000ce5, 0x17a79: 0xe0000ce1, 0x17a7a: 0xe0000cf2, 0x17a7b: 0xe0000cef, + 0x17a7c: 0xe0000cec, 0x17a7d: 0xe0000ce9, 0x17a7e: 0xe0000d1e, 0x17a7f: 0xe0000d1b, + // Block 0x5ea, offset 0x17a80 + 0x17a80: 0xe0000d24, 0x17a81: 0xe0000d21, 0x17a82: 0xe0000d2a, 0x17a83: 0xe0000d27, + 0x17a84: 0xe0000d69, 0x17a85: 0xe0000d66, 0x17a86: 0xe0000d7b, 0x17a87: 0xe0000d78, + 0x17a88: 0xe0000d87, 0x17a89: 0xe0000d84, 0x17a8a: 0xe0000d81, 0x17a8b: 0xe0000d7e, + 0x17a8c: 0xe000ae52, 0x17a8d: 0xe000ae4f, 0x17a8e: 0xe0000df5, 0x17a8f: 0xe0000df1, + 0x17a90: 0xe000ae64, 0x17a91: 0xe000ae61, 0x17a92: 0xe000ae5e, 0x17a93: 0xe000ae5b, + 0x17a94: 0xe0000ea7, 0x17a95: 0xe0000ea4, 0x17a96: 0xe0000ead, 0x17a97: 0xe0000eaa, + 0x17a98: 0xe0000ed6, 0x17a99: 0xe0000ed3, 0x17a9a: 0xe0000ef4, 0x17a9b: 0xe0000ef1, + 0x17a9c: 0xe0000efb, 0x17a9d: 0xe0000ef7, 0x17a9e: 0xe0000f02, 0x17a9f: 0xe0000eff, + 0x17aa0: 0xe0000f41, 0x17aa1: 0xe0000f3e, 0x17aa2: 0xe0000f53, 0x17aa3: 0xe0000f50, + 0x17aa4: 0xe0000f26, 0x17aa5: 0xe0000f22, 0x17aa6: 0xe0000f3a, 0x17aa7: 0xe0000f36, + 0x17aa8: 0xe0000f5a, 0x17aa9: 0xe0000f56, 0x17aaa: 0xe0000f93, 0x17aab: 0xe0000f90, + 0x17aac: 0xe0000f9f, 0x17aad: 0xe0000f9c, 0x17aae: 0xe0000fb1, 0x17aaf: 0xe0000fae, + 0x17ab0: 0xe0000fab, 0x17ab1: 0xe0000fa8, 0x17ab2: 0xe0001093, 0x17ab3: 0xe0001090, + 0x17ab4: 0xe000109f, 0x17ab5: 0xe000109c, 0x17ab6: 0xe0001099, 0x17ab7: 0xe0001096, + 0x17ab8: 0xe000ae88, 0x17ab9: 0xe000ae85, 0x17aba: 0xe000a9d3, 0x17abb: 0xe000a9d0, + 0x17abc: 0xe00010a9, 0x17abd: 0xe00010a6, 0x17abe: 0xe00010af, 0x17abf: 0xe00010ac, + // Block 0x5eb, offset 0x17ac0 + 0x17ac0: 0xe00010d2, 0x17ac1: 0xe00010cf, 0x17ac2: 0xe00010cc, 0x17ac3: 0xe00010c9, + 0x17ac4: 0xe00010e1, 0x17ac5: 0xe00010de, 0x17ac6: 0xe00010e7, 0x17ac7: 0xe00010e4, + 0x17ac8: 0xe00010ed, 0x17ac9: 0xe00010ea, 0x17aca: 0xe00010fc, 0x17acb: 0xe00010f9, + 0x17acc: 0xe00010f6, 0x17acd: 0xe00010f3, 0x17ace: 0xe0001123, 0x17acf: 0xe0001120, + 0x17ad0: 0xe0001141, 0x17ad1: 0xe000113e, 0x17ad2: 0xe0001153, 0x17ad3: 0xe0001150, + 0x17ad4: 0xe0001159, 0x17ad5: 0xe0001156, 0x17ad6: 0xe0000c15, 0x17ad7: 0xe0000f8d, + 0x17ad8: 0xe00010db, 0x17ad9: 0xe0001111, 0x17ada: 0xf0000404, 0x17adb: 0xe0000f70, + 0x17adc: 0x40300420, 0x17add: 0x40300620, 0x17ade: 0xe0000f7f, 0x17adf: 0x402c9620, + 0x17ae0: 0xe000099b, 0x17ae1: 0xe0000998, 0x17ae2: 0xe0000989, 0x17ae3: 0xe0000986, + 0x17ae4: 0xe000ae1c, 0x17ae5: 0xe000ae19, 0x17ae6: 0xe0000930, 0x17ae7: 0xe000092c, + 0x17ae8: 0xe0000940, 0x17ae9: 0xe000093c, 0x17aea: 0xe0000938, 0x17aeb: 0xe0000934, + 0x17aec: 0xe00009aa, 0x17aed: 0xe00009a6, 0x17aee: 0xe000ae16, 0x17aef: 0xe000ae13, + 0x17af0: 0xe000090a, 0x17af1: 0xe0000906, 0x17af2: 0xe000091a, 0x17af3: 0xe0000916, + 0x17af4: 0xe0000912, 0x17af5: 0xe000090e, 0x17af6: 0xe00009a2, 0x17af7: 0xe000099e, + 0x17af8: 0xe0000b6e, 0x17af9: 0xe0000b6b, 0x17afa: 0xe0000b5c, 0x17afb: 0xe0000b59, + 0x17afc: 0xe0000b26, 0x17afd: 0xe0000b23, 0x17afe: 0xe000ae34, 0x17aff: 0xe000ae31, + // Block 0x5ec, offset 0x17b00 + 0x17b00: 0xe0000b03, 0x17b01: 0xe0000aff, 0x17b02: 0xe0000b13, 0x17b03: 0xe0000b0f, + 0x17b04: 0xe0000b0b, 0x17b05: 0xe0000b07, 0x17b06: 0xe0000b75, 0x17b07: 0xe0000b71, + 0x17b08: 0xe0000c66, 0x17b09: 0xe0000c63, 0x17b0a: 0xe0000c78, 0x17b0b: 0xe0000c75, + 0x17b0c: 0xe0000e84, 0x17b0d: 0xe0000e81, 0x17b0e: 0xe0000e44, 0x17b0f: 0xe0000e41, + 0x17b10: 0xe000ae4c, 0x17b11: 0xe000ae49, 0x17b12: 0xe0000db5, 0x17b13: 0xe0000db1, + 0x17b14: 0xe0000dc5, 0x17b15: 0xe0000dc1, 0x17b16: 0xe0000dbd, 0x17b17: 0xe0000db9, + 0x17b18: 0xe0000e8b, 0x17b19: 0xe0000e87, 0x17b1a: 0xe000ae58, 0x17b1b: 0xe000ae55, + 0x17b1c: 0xe0000e65, 0x17b1d: 0xe0000e61, 0x17b1e: 0xe0000e75, 0x17b1f: 0xe0000e71, + 0x17b20: 0xe0000e6d, 0x17b21: 0xe0000e69, 0x17b22: 0xe0000e7d, 0x17b23: 0xe0000e79, + 0x17b24: 0xe000108d, 0x17b25: 0xe000108a, 0x17b26: 0xe000104d, 0x17b27: 0xe000104a, + 0x17b28: 0xe000ae8e, 0x17b29: 0xe000ae8b, 0x17b2a: 0xe000106e, 0x17b2b: 0xe000106a, + 0x17b2c: 0xe000107e, 0x17b2d: 0xe000107a, 0x17b2e: 0xe0001076, 0x17b2f: 0xe0001072, + 0x17b30: 0xe0001086, 0x17b31: 0xe0001082, 0x17b32: 0xe0001108, 0x17b33: 0xe0001105, + 0x17b34: 0xe0001135, 0x17b35: 0xe0001132, 0x17b36: 0xe000112f, 0x17b37: 0xe000112c, + 0x17b38: 0xe000111d, 0x17b39: 0xe000111a, 0x17b3a: 0xe0000d0a, 0x17b3b: 0xe0000d07, + 0x17b3c: 0x0030d888, 0x17b3d: 0x4030d820, 0x17b3e: 0x00312088, 0x17b3f: 0x40312020, + // Block 0x5ed, offset 0x17b40 + 0x17b40: 0xa0000000, 0x17b41: 0xa0000000, 0x17b42: 0xa0000000, 0x17b43: 0xa0000000, + 0x17b44: 0xa0000000, 0x17b45: 0xa0000000, 0x17b46: 0xa0000000, 0x17b47: 0xa0000000, + 0x17b48: 0xa0000000, 0x17b49: 0x40020020, 0x17b4a: 0x40020220, 0x17b4b: 0x40020420, + 0x17b4c: 0x40020620, 0x17b4d: 0x40020820, 0x17b4e: 0xa0000000, 0x17b4f: 0xa0000000, + 0x17b50: 0xa0000000, 0x17b51: 0xa0000000, 0x17b52: 0xa0000000, 0x17b53: 0xa0000000, + 0x17b54: 0xa0000000, 0x17b55: 0xa0000000, 0x17b56: 0xa0000000, 0x17b57: 0xa0000000, + 0x17b58: 0xa0000000, 0x17b59: 0xa0000000, 0x17b5a: 0xa0000000, 0x17b5b: 0xa0000000, + 0x17b5c: 0xa0000000, 0x17b5d: 0xa0000000, 0x17b5e: 0xa0000000, 0x17b5f: 0xa0000000, + 0x17b60: 0x40021220, 0x17b61: 0x4002ba20, 0x17b62: 0x4003e020, 0x17b63: 0x4004ea20, + 0x17b64: 0x4027de20, 0x17b65: 0x4004ec20, 0x17b66: 0x4004e620, 0x17b67: 0x4003d220, + 0x17b68: 0x4003f420, 0x17b69: 0x4003f620, 0x17b6a: 0x4004d820, 0x17b6b: 0x40093820, + 0x17b6c: 0x40024020, 0x17b6d: 0x40021a20, 0x17b6e: 0x4002e420, 0x17b6f: 0x4004e220, + 0x17b70: 0x4029cc20, 0x17b71: 0x4029ce20, 0x17b72: 0x4029d020, 0x17b73: 0x4029d220, + 0x17b74: 0x4029d420, 0x17b75: 0x4029d620, 0x17b76: 0x4029d820, 0x17b77: 0x4029da20, + 0x17b78: 0x4029dc20, 0x17b79: 0x4029de20, 0x17b7a: 0x40026c20, 0x17b7b: 0x40026220, + 0x17b7c: 0x40094020, 0x17b7d: 0x40094220, 0x17b7e: 0x40094420, 0x17b7f: 0x4002c420, + // Block 0x5ee, offset 0x17b80 + 0x17b80: 0x4004d620, 0x17b81: 0x002bde88, 0x17b82: 0x002c0a88, 0x17b83: 0xc3350911, + 0x17b84: 0x002c6288, 0x17b85: 0x002c9888, 0x17b86: 0x002d0888, 0x17b87: 0xc33900d1, + 0x17b88: 0x002d6888, 0x17b89: 0xc33b0931, 0x17b8a: 0x002dcc88, 0x17b8b: 0x002dfe88, + 0x17b8c: 0xc0030002, 0x17b8d: 0x002e8288, 0x17b8e: 0x002e9e88, 0x17b8f: 0xc33f0071, + 0x17b90: 0x002f2c88, 0x17b91: 0x002f5688, 0x17b92: 0x002f7a88, 0x17b93: 0xc3430911, + 0x17b94: 0x00302c88, 0x17b95: 0xc3470071, 0x17b96: 0x0030be88, 0x17b97: 0x0030e288, + 0x17b98: 0x0030f688, 0x17b99: 0x00310088, 0x17b9a: 0x00312a88, 0x17b9b: 0x4003f820, + 0x17b9c: 0x4004e420, 0x17b9d: 0x4003fa20, 0x17b9e: 0x40062420, 0x17b9f: 0x40021620, + 0x17ba0: 0x40061e20, 0x17ba1: 0x402bde20, 0x17ba2: 0x402c0a20, 0x17ba3: 0xc3330911, + 0x17ba4: 0x402c6220, 0x17ba5: 0x402c9820, 0x17ba6: 0x402d0820, 0x17ba7: 0xc33700d1, + 0x17ba8: 0x402d6820, 0x17ba9: 0x402d9a20, 0x17baa: 0x402dcc20, 0x17bab: 0x402dfe20, + 0x17bac: 0xc0000002, 0x17bad: 0x402e8220, 0x17bae: 0x402e9e20, 0x17baf: 0xc33d0071, + 0x17bb0: 0x402f2c20, 0x17bb1: 0x402f5620, 0x17bb2: 0x402f7a20, 0x17bb3: 0xc3410911, + 0x17bb4: 0x40302c20, 0x17bb5: 0xc3450071, 0x17bb6: 0x4030be20, 0x17bb7: 0x4030e220, + 0x17bb8: 0x4030f620, 0x17bb9: 0x40310020, 0x17bba: 0x40312a20, 0x17bbb: 0x4003fc20, + 0x17bbc: 0x40094820, 0x17bbd: 0x4003fe20, 0x17bbe: 0x40094c20, 0x17bbf: 0xa0000000, + // Block 0x5ef, offset 0x17bc0 + 0x17bc0: 0x00093685, 0x17bc1: 0x40083620, 0x17bc2: 0x40083820, 0x17bc3: 0x40083a20, + 0x17bc4: 0x40083c20, 0x17bc5: 0x002c628b, 0x17bc6: 0x002c6285, 0x17bc7: 0x002c9885, + 0x17bc8: 0x002d9a85, 0x17bc9: 0x002dcc85, 0x17bca: 0x40083e20, 0x17bcb: 0x400a6e20, + 0x17bcc: 0x40084020, 0x17bcd: 0xe00009c4, 0x17bce: 0x402d1e20, 0x17bcf: 0x40084220, + 0x17bd0: 0xe00002cb, 0x17bd1: 0xe00002d3, 0x17bd2: 0xe00002b2, 0x17bd3: 0xe00002bb, + 0x17bd4: 0xe00003cd, 0x17bd5: 0xe00002c3, 0x17bd6: 0xe00003d1, 0x17bd7: 0xe00004ab, + 0x17bd8: 0xe0000579, 0x17bd9: 0xe00002c7, 0x17bda: 0xe0000640, 0x17bdb: 0xe00002cf, + 0x17bdc: 0xe00004af, 0x17bdd: 0xe0000644, 0x17bde: 0xe0000798, 0x17bdf: 0xf0001e1e, + 0x17be0: 0x002d9a8a, 0x17be1: 0xe00027d4, 0x17be2: 0xe00027db, 0x17be3: 0xe00027ee, + 0x17be4: 0x0030be8a, 0x17be5: 0xe0002848, 0x17be6: 0xe000284f, 0x17be7: 0xe00010bb, + 0x17be8: 0xe00027f4, 0x17be9: 0x0030f68a, 0x17bea: 0xe0002883, 0x17beb: 0xe000288a, + 0x17bec: 0x002e228a, 0x17bed: 0x002c3a8a, 0x17bee: 0x002c628a, 0x17bef: 0x002e828a, + 0x17bf0: 0x002d9a84, 0x17bf1: 0xf0001f04, 0x17bf2: 0xf0000404, 0x17bf3: 0xf0001f04, + 0x17bf4: 0x0030be84, 0x17bf5: 0xf0001f04, 0x17bf6: 0xf0000404, 0x17bf7: 0xe00010b6, + 0x17bf8: 0xf0001f04, 0x17bf9: 0x0030f684, 0x17bfa: 0xf0001f04, 0x17bfb: 0xf0000404, + 0x17bfc: 0x002e2284, 0x17bfd: 0x002c3a84, 0x17bfe: 0x002c6284, 0x17bff: 0x002e8284, + // Block 0x5f0, offset 0x17c00 + 0x17c00: 0xf0001f04, 0x17c01: 0xf0001f04, 0x17c02: 0xf0001f04, 0x17c03: 0xf0001f04, + 0x17c04: 0xf0001f04, 0x17c05: 0xf0001f04, 0x17c06: 0xf0001f04, 0x17c07: 0xf0001f04, + 0x17c08: 0xf0001f04, 0x17c09: 0xf0001f04, 0x17c0a: 0xf0001f04, + 0x17c10: 0xf0000a04, 0x17c11: 0xf0000a04, 0x17c12: 0xf0000a04, 0x17c13: 0xf0000a04, + 0x17c14: 0xf0000a04, 0x17c15: 0xf0000a04, 0x17c16: 0xf0000a04, 0x17c17: 0xf0000a04, + 0x17c18: 0xe00024b3, 0x17c19: 0xf0000a04, 0x17c1a: 0xf0000a04, 0x17c1b: 0xf0000a04, + 0x17c1c: 0xf0000a04, 0x17c1d: 0xf0000a04, 0x17c1e: 0xf0000a04, 0x17c1f: 0xf0000a04, + 0x17c20: 0xf0000a04, 0x17c21: 0xf0000a04, 0x17c22: 0xf0000a04, 0x17c23: 0xf0000a04, + 0x17c24: 0xf0000a04, 0x17c25: 0xf0000a04, 0x17c26: 0xf0000a04, 0x17c27: 0xf0000a04, + 0x17c28: 0xf0000a04, 0x17c29: 0xf0000a04, 0x17c2a: 0xf0000a04, 0x17c2b: 0x002c3a8c, + 0x17c2c: 0x002f7a8c, 0x17c2d: 0xf0000c0c, 0x17c2e: 0xf0000c0c, + 0x17c30: 0x002bde9d, 0x17c31: 0x002c0a9d, 0x17c32: 0x002c3a9d, 0x17c33: 0x002c629d, + 0x17c34: 0x002c989d, 0x17c35: 0x002d089d, 0x17c36: 0x002d229d, 0x17c37: 0x002d689d, + 0x17c38: 0x002d9a9d, 0x17c39: 0x002dcc9d, 0x17c3a: 0x002dfe9d, 0x17c3b: 0x002e229d, + 0x17c3c: 0x002e829d, 0x17c3d: 0x002e9e9d, 0x17c3e: 0x002ee29d, 0x17c3f: 0x002f2c9d, + // Block 0x5f1, offset 0x17c40 + 0x17c40: 0x00352088, 0x17c41: 0x40352020, 0x17c42: 0x40070620, 0x17c43: 0xae608302, + 0x17c44: 0xae605f02, 0x17c45: 0xae602a02, 0x17c46: 0xae602202, 0x17c47: 0xae605f02, + 0x17c48: 0xa0000000, 0x17c49: 0xa0000000, 0x17c4a: 0x00341c88, 0x17c4b: 0x40341c20, + 0x17c4c: 0x00369688, 0x17c4d: 0x40369620, 0x17c4e: 0x00353088, 0x17c4f: 0x40353020, + 0x17c50: 0x00336483, 0x17c51: 0x40336420, 0x17c52: 0x00336a88, 0x17c53: 0x40336a20, + 0x17c54: 0x00337a88, 0x17c55: 0x40337a20, 0x17c56: 0x0033dc88, 0x17c57: 0x4033dc20, + 0x17c58: 0x0033aa88, 0x17c59: 0x4033aa20, 0x17c5a: 0x00345888, 0x17c5b: 0x40345820, + 0x17c5c: 0x00347888, 0x17c5d: 0x40347820, 0x17c5e: 0x00347088, 0x17c5f: 0x40347020, + 0x17c60: 0x00346888, 0x17c61: 0x40346820, 0x17c62: 0x0034ca88, 0x17c63: 0x4034ca20, + 0x17c64: 0x0034dc88, 0x17c65: 0x4034dc20, 0x17c66: 0x00351888, 0x17c67: 0x40351820, + 0x17c68: 0x00372688, 0x17c69: 0x40372620, 0x17c6a: 0x00354488, 0x17c6b: 0x40354420, + 0x17c6c: 0x00355888, 0x17c6d: 0x40355820, 0x17c6e: 0x00359288, 0x17c6f: 0x40359220, + 0x17c70: 0x00359a88, 0x17c71: 0x40359a20, 0x17c72: 0x0035cc88, 0x17c73: 0x4035cc20, + 0x17c74: 0x00360e88, 0x17c75: 0x40360e20, 0x17c76: 0x00362a88, 0x17c77: 0x40362a20, + 0x17c78: 0x00363a88, 0x17c79: 0x40363a20, 0x17c7a: 0x0035d488, 0x17c7b: 0x4035d420, + 0x17c7c: 0x00364488, 0x17c7d: 0x40364420, 0x17c7e: 0x00364c88, 0x17c7f: 0x40364c20, + // Block 0x5f2, offset 0x17c80 + 0x17c80: 0xa0000000, 0x17c81: 0xa0000000, 0x17c82: 0xa0000000, 0x17c83: 0xa0000000, + 0x17c84: 0xa0000000, 0x17c86: 0x40096620, 0x17c87: 0x40096a20, + 0x17c88: 0x40070820, 0x17c89: 0x4004f220, 0x17c8a: 0x4004f620, 0x17c8b: 0x4027e620, + 0x17c8c: 0x40024820, 0x17c8d: 0x40024a20, 0x17c8e: 0x40070e20, 0x17c8f: 0x40071020, + 0x17c90: 0xa0000001, 0x17c91: 0xa0000002, 0x17c92: 0xa0000004, 0x17c93: 0xa0000003, + 0x17c94: 0xa0000005, 0x17c95: 0xae600000, 0x17c96: 0xae600000, 0x17c97: 0xae600000, + 0x17c98: 0xa1e00000, 0x17c99: 0xa1f00000, 0x17c9a: 0xa2000000, 0x17c9b: 0x40026420, + 0x17c9e: 0x40027020, 0x17c9f: 0x4002cc20, + 0x17ca0: 0x403aa220, 0x17ca1: 0x4039a620, 0x17ca2: 0x40393a20, 0x17ca3: 0x40393821, + 0x17ca4: 0x40399c21, 0x17ca5: 0x40392820, 0x17ca6: 0x4039a821, 0x17ca7: 0xcf6e0151, + 0x17ca8: 0xcf729a11, 0x17ca9: 0x40395420, 0x17caa: 0xcf769a11, 0x17cab: 0x40394c20, + 0x17cac: 0xcf7a9a11, 0x17cad: 0x40395620, 0x17cae: 0x40395820, 0x17caf: 0xcf7e9a11, + 0x17cb0: 0x40396220, 0x17cb1: 0xcf829a11, 0x17cb2: 0x40396c20, 0x17cb3: 0x40397020, + 0x17cb4: 0x40397220, 0x17cb5: 0x40397420, 0x17cb6: 0x40397620, 0x17cb7: 0x40397820, + 0x17cb8: 0x40397a20, 0x17cb9: 0x40397c20, 0x17cba: 0x40397e20, 0x17cbb: 0x403a3820, + 0x17cbc: 0x403a3a20, 0x17cbd: 0x403a9c20, 0x17cbe: 0x403a9e20, 0x17cbf: 0x403aa020, + // Block 0x5f3, offset 0x17cc0 + 0x17cc0: 0xa0000000, 0x17cc1: 0x40398020, 0x17cc2: 0x40398220, 0x17cc3: 0x403a1a20, + 0x17cc4: 0xcf8a9a11, 0x17cc5: 0xcf8c9a11, 0x17cc6: 0xcf8e9a11, 0x17cc7: 0x403a6820, + 0x17cc8: 0xcf929a32, 0x17cc9: 0x403a8e20, 0x17cca: 0xcf970171, 0x17ccb: 0xa000c302, + 0x17ccc: 0xa000c502, 0x17ccd: 0xa000c402, 0x17cce: 0xa000bd02, 0x17ccf: 0xa000bf02, + 0x17cd0: 0xa000be02, 0x17cd1: 0xa000c702, 0x17cd2: 0xa220bc02, 0x17cd3: 0xa000c902, + 0x17cd4: 0xa000c602, 0x17cd5: 0xadc0bf02, 0x17cd6: 0xa000c102, 0x17cd7: 0xa000c202, + 0x17cd8: 0xa000c802, 0x17cd9: 0xae60c402, 0x17cda: 0xae60c502, 0x17cdb: 0xae60c602, + 0x17cdc: 0xadc0c702, 0x17cdd: 0xae60c802, 0x17cde: 0xae60c902, 0x17cdf: 0xadc0c002, + 0x17ce0: 0xe000015e, 0x17ce1: 0xe00001e6, 0x17ce2: 0xe0000301, 0x17ce3: 0xe00003db, + 0x17ce4: 0xe00004b6, 0x17ce5: 0xe0000580, 0x17ce6: 0xe000064b, 0x17ce7: 0xe00006f3, + 0x17ce8: 0xe000079f, 0x17ce9: 0xe0000844, 0x17cea: 0x4004ee20, 0x17ceb: 0x40024c20, + 0x17cec: 0x40024e20, 0x17ced: 0x4004de20, 0x17cee: 0x40393a20, 0x17cef: 0x403a1020, + 0x17cf0: 0xa000c002, 0x17cf1: 0x40392420, 0x17cf2: 0x40392220, 0x17cf3: 0x40392a20, + 0x17cf4: 0x00391c84, 0x17cf5: 0xf0000404, 0x17cf6: 0xe000b07a, 0x17cf7: 0xf0000404, + 0x17cf8: 0xf0000404, 0x17cf9: 0xcf789a11, 0x17cfa: 0x40395c20, 0x17cfb: 0x40393e20, + 0x17cfc: 0x40395e20, 0x17cfd: 0x40396020, 0x17cfe: 0xcf749a11, 0x17cff: 0x40396220, + // Block 0x5f4, offset 0x17d00 + 0x17d00: 0x40394220, 0x17d01: 0x40397620, 0x17d02: 0x40397820, 0x17d03: 0x40396620, + 0x17d04: 0x40396820, 0x17d05: 0x40397a20, 0x17d06: 0xcf7c9a11, 0x17d07: 0x40396e20, + 0x17d08: 0xcf809a11, 0x17d09: 0x40398e20, 0x17d0a: 0x40399020, 0x17d0b: 0x40399220, + 0x17d0c: 0x40399420, 0x17d0d: 0x40399620, 0x17d0e: 0x40399820, 0x17d0f: 0x40399a20, + 0x17d10: 0x40399c20, 0x17d11: 0xcf849a11, 0x17d12: 0x4039aa20, 0x17d13: 0x4039ac20, + 0x17d14: 0x4039ae20, 0x17d15: 0x4039b020, 0x17d16: 0x4039b220, 0x17d17: 0x4039b420, + 0x17d18: 0x40396e20, 0x17d19: 0x4039b820, 0x17d1a: 0x4039ca20, 0x17d1b: 0x4039cc20, + 0x17d1c: 0x4039ce20, 0x17d1d: 0x4039e020, 0x17d1e: 0x4039e220, 0x17d1f: 0x4039ea20, + 0x17d20: 0x4039f220, 0x17d21: 0x4039fe20, 0x17d22: 0x403a0020, 0x17d23: 0x403a0220, + 0x17d24: 0x403a0420, 0x17d25: 0x403a0820, 0x17d26: 0x403a0a20, 0x17d27: 0x403a1420, + 0x17d28: 0x403a1620, 0x17d29: 0xcf869a11, 0x17d2a: 0x403a1e20, 0x17d2b: 0x403a2020, + 0x17d2c: 0x403a2220, 0x17d2d: 0x403a2620, 0x17d2e: 0x403a2820, 0x17d2f: 0xcf889a11, + 0x17d30: 0x403a2c20, 0x17d31: 0x403a2e20, 0x17d32: 0x403a3020, 0x17d33: 0x403a3220, + 0x17d34: 0x403a3420, 0x17d35: 0x403a4220, 0x17d36: 0x403a4420, 0x17d37: 0x403a4620, + 0x17d38: 0x403a4820, 0x17d39: 0x403a6020, 0x17d3a: 0xcf909a11, 0x17d3b: 0x403a5a20, + 0x17d3c: 0x403a5c20, 0x17d3d: 0x403a5e20, 0x17d3e: 0x4039a220, 0x17d3f: 0x40396c20, + // Block 0x5f5, offset 0x17d40 + 0x17d40: 0xe000b077, 0x17d41: 0xcf950171, 0x17d42: 0x4039a021, 0x17d43: 0x4039a420, + 0x17d44: 0x403a7620, 0x17d45: 0x403a7820, 0x17d46: 0x403a7a20, 0x17d47: 0x403a7c20, + 0x17d48: 0x403a7e20, 0x17d49: 0x403a8020, 0x17d4a: 0x403a8220, 0x17d4b: 0x403a8420, + 0x17d4c: 0xcf999a11, 0x17d4d: 0x403a9420, 0x17d4e: 0x403a9620, 0x17d4f: 0x403a8620, + 0x17d50: 0x403a9820, 0x17d51: 0x403a9a20, 0x17d52: 0xcf9b0171, 0x17d53: 0x4039ac21, + 0x17d54: 0x4002e820, 0x17d55: 0x403a7220, 0x17d56: 0xae600000, 0x17d57: 0xae600000, + 0x17d58: 0xae600000, 0x17d59: 0xae600000, 0x17d5a: 0xae600000, 0x17d5b: 0xae600000, + 0x17d5c: 0xae600000, 0x17d5d: 0xa0000000, 0x17d5e: 0x40071220, 0x17d5f: 0xae600000, + 0x17d60: 0xae600000, 0x17d61: 0xae600000, 0x17d62: 0xae600000, 0x17d63: 0xadc00000, + 0x17d64: 0xae600000, 0x17d65: 0x003a7484, 0x17d66: 0x003a9084, 0x17d67: 0xae600000, + 0x17d68: 0xae600000, 0x17d69: 0x40071420, 0x17d6a: 0xadc00000, 0x17d6b: 0xae600000, + 0x17d6c: 0xae600000, 0x17d6d: 0xadc00000, 0x17d6e: 0x40399e20, 0x17d6f: 0x4039ba20, + 0x17d70: 0xe0000161, 0x17d71: 0xe00001e9, 0x17d72: 0xe0000304, 0x17d73: 0xe00003de, + 0x17d74: 0xe00004b9, 0x17d75: 0xe0000583, 0x17d76: 0xe000064e, 0x17d77: 0xe00006f6, + 0x17d78: 0xe00007a2, 0x17d79: 0xe0000847, 0x17d7a: 0x4039d020, 0x17d7b: 0x4039e420, + 0x17d7c: 0x4039f420, 0x17d7d: 0xe0001553, 0x17d7e: 0xe0001779, 0x17d7f: 0x403a7020, + // Block 0x5f6, offset 0x17d80 + 0x17d80: 0xe000155f, 0x17d81: 0xe0001565, 0x17d82: 0xe000157a, 0x17d83: 0xe00015b0, + 0x17d84: 0xe00015b6, 0x17d85: 0xe000ae97, 0x17d86: 0xe000ae9d, 0x17d87: 0xe000aea3, + 0x17d88: 0xe000aeb5, 0x17d89: 0xf0001a1a, 0x17d8a: 0xf0001a1a, 0x17d8b: 0xe000aebe, + 0x17d8c: 0xe000aec4, 0x17d8d: 0xe000aeca, 0x17d8e: 0xe000aedc, 0x17d8f: 0xe000289a, + 0x17d90: 0xe00036b1, 0x17d91: 0xe000aee2, 0x17d92: 0xe000aef4, 0x17d93: 0xe00028a0, + 0x17d94: 0xe00036ba, 0x17d95: 0xe000aefd, 0x17d96: 0xe000af03, 0x17d97: 0xe000af09, + 0x17d98: 0xe000af0f, 0x17d99: 0xe000af15, 0x17d9a: 0xe000af18, 0x17d9b: 0xe000af1e, + 0x17d9c: 0xe000af2d, 0x17d9d: 0xe000af36, 0x17d9e: 0xe000af3f, 0x17d9f: 0xe000af4e, + 0x17da0: 0xe000af8a, 0x17da1: 0xe000af99, 0x17da2: 0xe000af9f, 0x17da3: 0xe000afa5, + 0x17da4: 0xe000afab, 0x17da5: 0xe000afb7, 0x17da6: 0xe000afbd, 0x17da7: 0xe000afc6, + 0x17da8: 0xe000afcf, 0x17da9: 0xe000afd5, 0x17daa: 0xe000afdb, 0x17dab: 0xe000afe1, + 0x17dac: 0xe000afe7, 0x17dad: 0xe000afed, 0x17dae: 0xe000aff3, 0x17daf: 0xe000aff9, + 0x17db0: 0xe000afff, 0x17db1: 0xe00028e2, 0x17db2: 0xe0003708, 0x17db3: 0xe000b005, + 0x17db4: 0xe000b00b, 0x17db5: 0xe00028e8, 0x17db6: 0xe000370e, 0x17db7: 0xf0001a1a, + 0x17db8: 0xe000371a, 0x17db9: 0xe0003720, 0x17dba: 0xe0003726, 0x17dbb: 0xe0003732, + 0x17dbc: 0xe000373e, 0x17dbd: 0xf0001a1a, 0x17dbe: 0xf0001a1a, 0x17dbf: 0xe000b017, + // Block 0x5f7, offset 0x17dc0 + 0x17dc0: 0xe000b01d, 0x17dc1: 0xe000b023, 0x17dc2: 0xe000b02f, 0x17dc3: 0xe00028f4, + 0x17dc4: 0xe000374d, 0x17dc5: 0xe000b038, 0x17dc6: 0xe000b03e, 0x17dc7: 0xe000b044, + 0x17dc8: 0xe000b04d, 0x17dc9: 0xe00028f7, 0x17dca: 0xe0003750, 0x17dcb: 0xe000b053, + 0x17dcc: 0xe000b059, 0x17dcd: 0xe000b05f, 0x17dce: 0xe000b071, 0x17dcf: 0xe00028fd, + 0x17dd0: 0xe000375c, 0x17dd1: 0xe0003765, 0x17dd2: 0xe000376b, 0x17dd3: 0xf0001a1a, + 0x17dd4: 0xf0001a1a, 0x17dd5: 0xe0003786, 0x17dd6: 0xe000378c, 0x17dd7: 0xe0003792, + 0x17dd8: 0xe00037a4, 0x17dd9: 0xf0001a1a, 0x17dda: 0xf0001a1a, 0x17ddb: 0xe000af21, + 0x17ddc: 0xe000af24, 0x17ddd: 0xe000377d, 0x17dde: 0xe0000003, 0x17ddf: 0xe0000006, + 0x17de0: 0xe0000009, 0x17de1: 0xe000000c, 0x17de2: 0xe000000f, 0x17de3: 0xe0000012, + 0x17de4: 0xe000156b, 0x17de5: 0xe000156e, 0x17de6: 0xe0001577, 0x17de7: 0xe000157d, + 0x17de8: 0xe00015aa, 0x17de9: 0xe00015b3, 0x17dea: 0xe000aea6, 0x17deb: 0xe000aea9, + 0x17dec: 0xe000aeb2, 0x17ded: 0xe000aeb8, 0x17dee: 0xf0001919, 0x17def: 0xf0001919, + 0x17df0: 0xe000aecd, 0x17df1: 0xe000aed0, 0x17df2: 0xe000aed9, 0x17df3: 0xe000aedf, + 0x17df4: 0xe0002897, 0x17df5: 0xe00036ae, 0x17df6: 0xe000aee5, 0x17df7: 0xe000aee8, + 0x17df8: 0xe000aef1, 0x17df9: 0xe000aef7, 0x17dfa: 0xe000289d, 0x17dfb: 0xe00036b7, + 0x17dfc: 0xe00028df, 0x17dfd: 0xe0003705, 0x17dfe: 0xe00028e5, 0x17dff: 0xe000370b, + // Block 0x5f8, offset 0x17e00 + 0x17e00: 0xf0001919, 0x17e01: 0xe000372f, 0x17e02: 0xe000373b, 0x17e03: 0xf0001919, + 0x17e04: 0xf0001919, 0x17e05: 0xe000b02c, 0x17e06: 0xe00028f1, 0x17e07: 0xe000374a, + 0x17e08: 0xe000b032, 0x17e09: 0xe000b04a, 0x17e0a: 0xe000b062, 0x17e0b: 0xe000b065, + 0x17e0c: 0xe000b06e, 0x17e0d: 0xe000b074, 0x17e0e: 0xe00028fa, 0x17e0f: 0xe0003759, + 0x17e10: 0xe000377a, 0x17e11: 0xe0003795, 0x17e12: 0xe0003798, 0x17e13: 0xe00037a1, + 0x17e14: 0xe00037a7, 0x17e15: 0xf0001919, 0x17e16: 0xf0001919, 0x17e17: 0xe000155c, + 0x17e18: 0xe0001562, 0x17e19: 0xe0001568, 0x17e1a: 0xe0001571, 0x17e1b: 0xe0001580, + 0x17e1c: 0xe000ae94, 0x17e1d: 0xe000ae9a, 0x17e1e: 0xe000aea0, 0x17e1f: 0xe000aeac, + 0x17e20: 0xf0001717, 0x17e21: 0xe000aebb, 0x17e22: 0xe000aec1, 0x17e23: 0xe000aec7, + 0x17e24: 0xe000aed3, 0x17e25: 0xe00036a8, 0x17e26: 0xe000aeeb, 0x17e27: 0xe000aefa, + 0x17e28: 0xe000af00, 0x17e29: 0xe000af06, 0x17e2a: 0xe000af0c, 0x17e2b: 0xe000af12, + 0x17e2c: 0xe000af1b, 0x17e2d: 0xe000af27, 0x17e2e: 0xe000af30, 0x17e2f: 0xe000af39, + 0x17e30: 0xe000af48, 0x17e31: 0xe000af87, 0x17e32: 0xe000af8d, 0x17e33: 0xe000af96, + 0x17e34: 0xe000af9c, 0x17e35: 0xe000afa2, 0x17e36: 0xe000afa8, 0x17e37: 0xe000afb4, + 0x17e38: 0xe000afba, 0x17e39: 0xe000afc9, 0x17e3a: 0xe000afd2, 0x17e3b: 0xe000afd8, + 0x17e3c: 0xe000afde, 0x17e3d: 0xe000afe4, 0x17e3e: 0xe000afea, 0x17e3f: 0xe000aff0, + // Block 0x5f9, offset 0x17e40 + 0x17e40: 0xe000aff6, 0x17e41: 0xe000affc, 0x17e42: 0xe000b002, 0x17e43: 0xe000b008, + 0x17e44: 0xe0003717, 0x17e45: 0xe000371d, 0x17e46: 0xe0003723, 0x17e47: 0xe0003729, + 0x17e48: 0xe0003735, 0x17e49: 0xe000b014, 0x17e4a: 0xe000b01a, 0x17e4b: 0xe000b020, + 0x17e4c: 0xe000b026, 0x17e4d: 0xe0003747, 0x17e4e: 0xe000b035, 0x17e4f: 0xe000b03b, + 0x17e50: 0xe000b041, 0x17e51: 0xe000b047, 0x17e52: 0xe000b050, 0x17e53: 0xe000b056, + 0x17e54: 0xe000b05c, 0x17e55: 0xe000b068, 0x17e56: 0xe0003753, 0x17e57: 0xe0003762, + 0x17e58: 0xe0003768, 0x17e59: 0xe000375f, 0x17e5a: 0xe0003783, 0x17e5b: 0xe0003789, + 0x17e5c: 0xe000378f, 0x17e5d: 0xe000379b, 0x17e5e: 0xf0001717, 0x17e5f: 0xe0001574, + 0x17e60: 0xe0001583, 0x17e61: 0xe000aeaf, 0x17e62: 0xf0001818, 0x17e63: 0xe000aed6, + 0x17e64: 0xe00036ab, 0x17e65: 0xe000aeee, 0x17e66: 0xe00036b4, 0x17e67: 0xe000af4b, + 0x17e68: 0xe00036d2, 0x17e69: 0xe000af7e, 0x17e6a: 0xe00036de, 0x17e6b: 0xe000372c, + 0x17e6c: 0xe0003738, 0x17e6d: 0xe000b029, 0x17e6e: 0xe000b06b, 0x17e6f: 0xe0003756, + 0x17e70: 0xe000379e, 0x17e71: 0xf0001818, 0x17e72: 0xe000ae91, 0x17e73: 0xe0003690, + 0x17e74: 0xe0003693, 0x17e75: 0xe00028d0, 0x17e76: 0xe00036f6, 0x17e77: 0xe00028d6, + 0x17e78: 0xe00036fc, 0x17e79: 0xe00028dc, 0x17e7a: 0xe0003702, 0x17e7b: 0xe00028b8, + 0x17e7c: 0xe00036d8, 0x17e7d: 0xe00028be, 0x17e7e: 0xe00036e4, 0x17e7f: 0xe00028ac, + // Block 0x5fa, offset 0x17e80 + 0x17e80: 0xe00036c6, 0x17e81: 0xe00028a6, 0x17e82: 0xe00036c0, 0x17e83: 0xe00028b2, + 0x17e84: 0xe00036cc, 0x17e85: 0xe00028c4, 0x17e86: 0xe00036ea, 0x17e87: 0xe00028ca, + 0x17e88: 0xe00036f0, 0x17e89: 0xe000af5a, 0x17e8a: 0xe000af66, 0x17e8b: 0xe000af72, + 0x17e8c: 0xe000af84, 0x17e8d: 0xe000af78, 0x17e8e: 0xe000af45, 0x17e8f: 0xe000af93, + 0x17e90: 0xe000afb1, 0x17e91: 0xe00028cd, 0x17e92: 0xe00036f3, 0x17e93: 0xe00028d3, + 0x17e94: 0xe00036f9, 0x17e95: 0xe00028d9, 0x17e96: 0xe00036ff, 0x17e97: 0xe00028b5, + 0x17e98: 0xe00036d5, 0x17e99: 0xe00028bb, 0x17e9a: 0xe00036e1, 0x17e9b: 0xe00028a9, + 0x17e9c: 0xe00036c3, 0x17e9d: 0xe00028a3, 0x17e9e: 0xe00036bd, 0x17e9f: 0xe00028af, + 0x17ea0: 0xe00036c9, 0x17ea1: 0xe00028c1, 0x17ea2: 0xe00036e7, 0x17ea3: 0xe00028c7, + 0x17ea4: 0xe00036ed, 0x17ea5: 0xe000af57, 0x17ea6: 0xe000af63, 0x17ea7: 0xe000af6f, + 0x17ea8: 0xe000af81, 0x17ea9: 0xe000af75, 0x17eaa: 0xe000af42, 0x17eab: 0xe000af90, + 0x17eac: 0xe000afae, 0x17ead: 0xe000af51, 0x17eae: 0xe000af5d, 0x17eaf: 0xe000af69, + 0x17eb0: 0xe000af7b, 0x17eb1: 0xe00036cf, 0x17eb2: 0xe00036db, 0x17eb3: 0xe000afc0, + 0x17eb4: 0xe000af2a, 0x17eb5: 0xe000af33, 0x17eb6: 0xe000af3c, 0x17eb7: 0xe000af54, + 0x17eb8: 0xe000af60, 0x17eb9: 0xe000af6c, 0x17eba: 0xe000afc3, 0x17ebb: 0xe000afcc, + 0x17ebc: 0xe0003696, 0x17ebd: 0xe0003699, 0x17ebe: 0x4004c020, 0x17ebf: 0x4004c220, + // Block 0x5fb, offset 0x17ec0 + 0x17ec0: 0x0039de98, 0x17ec1: 0x0039e69a, 0x17ec2: 0x0039e699, 0x17ec3: 0x0039e697, + 0x17ec4: 0x0039e698, 0x17ec5: 0x0039e89a, 0x17ec6: 0x0039e899, 0x17ec7: 0x0039e897, + 0x17ec8: 0x0039e898, 0x17ec9: 0x0039ee9a, 0x17eca: 0x0039ee99, 0x17ecb: 0x0039ee97, + 0x17ecc: 0x0039ee98, 0x17ecd: 0x0039f09a, 0x17ece: 0x0039f099, 0x17ecf: 0x0039f097, + 0x17ed0: 0x0039f098, 0x17ed1: 0x0039fc9a, 0x17ed2: 0x0039fc99, 0x17ed3: 0x0039fc97, + 0x17ed4: 0x0039fc98, 0x17ed5: 0x003a129a, 0x17ed6: 0x003a1299, 0x17ed7: 0x003a1297, + 0x17ed8: 0x003a1298, 0x17ed9: 0x003a1a9a, 0x17eda: 0x003a1a99, 0x17edb: 0x003a1a97, + 0x17edc: 0x003a1a98, 0x17edd: 0x003a409a, 0x17ede: 0x003a4099, 0x17edf: 0x003a4097, + 0x17ee0: 0x003a4098, 0x17ee1: 0x003a4e9a, 0x17ee2: 0x003a4e99, 0x17ee3: 0x003a4e97, + 0x17ee4: 0x003a4e98, 0x17ee5: 0x003a569a, 0x17ee6: 0x003a5699, 0x17ee7: 0x003a5697, + 0x17ee8: 0x003a5698, 0x17ee9: 0x003a689a, 0x17eea: 0x003a6899, 0x17eeb: 0x003a6897, + 0x17eec: 0x003a6898, 0x17eed: 0x003a749a, 0x17eee: 0x003a7499, 0x17eef: 0x003a8e9a, + 0x17ef0: 0x003a8e99, 0x17ef1: 0x003a909a, 0x17ef2: 0x003a9099, 0x17ef3: 0x003a9097, + 0x17ef4: 0x003a9098, 0x17ef5: 0xe0001732, 0x17ef6: 0xe000172f, 0x17ef7: 0xe0001738, + 0x17ef8: 0xe0001735, 0x17ef9: 0xe000173e, 0x17efa: 0xe000173b, 0x17efb: 0xe000b011, + 0x17efc: 0xe000b00e, 0x17eff: 0xa0000000, + // Block 0x5fc, offset 0x17f00 + 0x17f00: 0xa0000000, 0x17f01: 0xa0000000, 0x17f02: 0xa0000000, 0x17f03: 0xa0000000, + 0x17f04: 0xa0000000, 0x17f05: 0xa0000000, 0x17f06: 0xa0000000, 0x17f07: 0xa0000000, + 0x17f08: 0xa0000000, 0x17f09: 0x40020020, 0x17f0a: 0x40020220, 0x17f0b: 0x40020420, + 0x17f0c: 0x40020620, 0x17f0d: 0x40020820, 0x17f0e: 0xa0000000, 0x17f0f: 0xa0000000, + 0x17f10: 0xa0000000, 0x17f11: 0xa0000000, 0x17f12: 0xa0000000, 0x17f13: 0xa0000000, + 0x17f14: 0xa0000000, 0x17f15: 0xa0000000, 0x17f16: 0xa0000000, 0x17f17: 0xa0000000, + 0x17f18: 0xa0000000, 0x17f19: 0xa0000000, 0x17f1a: 0xa0000000, 0x17f1b: 0xa0000000, + 0x17f1c: 0xa0000000, 0x17f1d: 0xa0000000, 0x17f1e: 0xa0000000, 0x17f1f: 0xa0000000, + 0x17f20: 0x40021220, 0x17f21: 0x4002ba20, 0x17f22: 0x4003e020, 0x17f23: 0x4004ea20, + 0x17f24: 0x4027de20, 0x17f25: 0x4004ec20, 0x17f26: 0x4004e620, 0x17f27: 0x4003d220, + 0x17f28: 0x4003f420, 0x17f29: 0x4003f620, 0x17f2a: 0x4004d820, 0x17f2b: 0x40093820, + 0x17f2c: 0x40024020, 0x17f2d: 0x40021a20, 0x17f2e: 0x4002e420, 0x17f2f: 0x4004e220, + 0x17f30: 0x4029cc20, 0x17f31: 0x4029ce20, 0x17f32: 0x4029d020, 0x17f33: 0x4029d220, + 0x17f34: 0x4029d420, 0x17f35: 0x4029d620, 0x17f36: 0x4029d820, 0x17f37: 0x4029da20, + 0x17f38: 0x4029dc20, 0x17f39: 0x4029de20, 0x17f3a: 0x40026c20, 0x17f3b: 0x40026220, + 0x17f3c: 0x40094020, 0x17f3d: 0x40094220, 0x17f3e: 0x40094420, 0x17f3f: 0x4002c420, + // Block 0x5fd, offset 0x17f40 + 0x17f40: 0x4004d620, 0x17f41: 0xcead9741, 0x17f42: 0x002c0a88, 0x17f43: 0x002c3a88, + 0x17f44: 0x002c6288, 0x17f45: 0xce6d2741, 0x17f46: 0x002d0888, 0x17f47: 0x002d2288, + 0x17f48: 0x002d6888, 0x17f49: 0x002d9a88, 0x17f4a: 0x002dcc88, 0x17f4b: 0x002dfe88, + 0x17f4c: 0xc0030002, 0x17f4d: 0x002e8288, 0x17f4e: 0x002e9e88, 0x17f4f: 0xcfa09a71, + 0x17f50: 0x002f2c88, 0x17f51: 0x002f5688, 0x17f52: 0x002f7a88, 0x17f53: 0x002fe688, + 0x17f54: 0x00302c88, 0x17f55: 0xc3479aa1, 0x17f56: 0x0030be88, 0x17f57: 0x0030e288, + 0x17f58: 0x0030f688, 0x17f59: 0x00310088, 0x17f5a: 0x00312a88, 0x17f5b: 0x4003f820, + 0x17f5c: 0x4004e420, 0x17f5d: 0x4003fa20, 0x17f5e: 0x40062420, 0x17f5f: 0x40021620, + 0x17f60: 0x40061e20, 0x17f61: 0xceaa9741, 0x17f62: 0x402c0a20, 0x17f63: 0x402c3a20, + 0x17f64: 0x402c6220, 0x17f65: 0xce6b2741, 0x17f66: 0x402d0820, 0x17f67: 0x402d2220, + 0x17f68: 0x402d6820, 0x17f69: 0x402d9a20, 0x17f6a: 0x402dcc20, 0x17f6b: 0x402dfe20, + 0x17f6c: 0xc0000002, 0x17f6d: 0x402e8220, 0x17f6e: 0x402e9e20, 0x17f6f: 0xcf9d9a71, + 0x17f70: 0x402f2c20, 0x17f71: 0x402f5620, 0x17f72: 0x402f7a20, 0x17f73: 0x402fe620, + 0x17f74: 0x40302c20, 0x17f75: 0xc3459aa1, 0x17f76: 0x4030be20, 0x17f77: 0x4030e220, + 0x17f78: 0x4030f620, 0x17f79: 0x40310020, 0x17f7a: 0x40312a20, 0x17f7b: 0x4003fc20, + 0x17f7c: 0x40094820, 0x17f7d: 0x4003fe20, 0x17f7e: 0x40094c20, 0x17f7f: 0xa0000000, + // Block 0x5fe, offset 0x17f80 + 0x17f80: 0xe00008f5, 0x17f81: 0xe000b098, 0x17f82: 0x002be283, 0x17f83: 0xe000b092, + 0x17f84: 0xe000095b, 0x17f85: 0xe000094d, 0x17f86: 0xe00009dd, 0x17f87: 0xe0000a53, + 0x17f88: 0xe0000ae8, 0x17f89: 0xe000b10c, 0x17f8a: 0x002c9a83, 0x17f8b: 0xe0000b20, + 0x17f8c: 0xe0000c2b, 0x17f8d: 0xe000b150, 0x17f8e: 0xe0000c37, 0x17f8f: 0xe0000c43, + 0x17f90: 0xe0000ab3, 0x17f91: 0xe000b190, 0x17f92: 0xe0000d9a, 0x17f93: 0xe000b1c6, + 0x17f94: 0x002ee483, 0x17f95: 0xe000b1a8, 0x17f96: 0xe0000dd2, 0x17f97: 0x40093e20, + 0x17f98: 0xe0000e12, 0x17f99: 0xe0000fe1, 0x17f9a: 0xe000b268, 0x17f9b: 0xe0000fed, + 0x17f9c: 0xe0000fff, 0x17f9d: 0xe000b2b8, 0x17f9e: 0x00318888, 0x17f9f: 0xe0000f7b, + 0x17fa0: 0xe00008f2, 0x17fa1: 0xe000b095, 0x17fa2: 0x402be220, 0x17fa3: 0xe000b08f, + 0x17fa4: 0xe0000958, 0x17fa5: 0xe000094a, 0x17fa6: 0xe00009d5, 0x17fa7: 0xe0000a4d, + 0x17fa8: 0xe0000ae5, 0x17fa9: 0xe000b109, 0x17faa: 0x402c9a20, 0x17fab: 0xe0000b1d, + 0x17fac: 0xe0000c28, 0x17fad: 0xe000b14d, 0x17fae: 0xe0000c34, 0x17faf: 0xe0000c40, + 0x17fb0: 0xe0000aad, 0x17fb1: 0xe000b18d, 0x17fb2: 0xe0000d97, 0x17fb3: 0xe000b1c3, + 0x17fb4: 0x402ee420, 0x17fb5: 0xe000b1a5, 0x17fb6: 0xe0000dcf, 0x17fb7: 0x40093c20, + 0x17fb8: 0xe0000e0f, 0x17fb9: 0xe0000fde, 0x17fba: 0xe000b265, 0x17fbb: 0xe0000fea, + 0x17fbc: 0xe0000ffc, 0x17fbd: 0xe000b2b5, 0x17fbe: 0x40318820, 0x17fbf: 0xe0001114, + // Block 0x5ff, offset 0x17fc0 + 0x17fc0: 0xe0000983, 0x17fc1: 0xe0000980, 0x17fc2: 0x002be083, 0x17fc3: 0x402be020, + 0x17fc4: 0xe000097d, 0x17fc5: 0xe000097a, 0x17fc6: 0xe000b0ec, 0x17fc7: 0xe000b0e9, + 0x17fc8: 0xe0000a3e, 0x17fc9: 0xe0000a3b, 0x17fca: 0xe0000a4a, 0x17fcb: 0xe0000a47, + 0x17fcc: 0xe0000a44, 0x17fcd: 0xe0000a41, 0x17fce: 0xe0000a86, 0x17fcf: 0xe0000a83, + 0x17fd0: 0x002c6483, 0x17fd1: 0x402c6420, 0x17fd2: 0xe0000b46, 0x17fd3: 0xe0000b43, + 0x17fd4: 0xe0000aee, 0x17fd5: 0xe0000aeb, 0x17fd6: 0xe0000b2c, 0x17fd7: 0xe0000b29, + 0x17fd8: 0xe0000b40, 0x17fd9: 0xe0000b3d, 0x17fda: 0xe0000b1a, 0x17fdb: 0xe0000b17, + 0x17fdc: 0xe0000bb8, 0x17fdd: 0xe0000bb5, 0x17fde: 0xe0000bb2, 0x17fdf: 0xe0000baf, + 0x17fe0: 0xe0000bc4, 0x17fe1: 0xe0000bc1, 0x17fe2: 0xe0000bca, 0x17fe3: 0xe0000bc7, + 0x17fe4: 0xe0000bee, 0x17fe5: 0xe0000beb, 0x17fe6: 0xe0000c1b, 0x17fe7: 0xe0000c18, + 0x17fe8: 0xe000b14a, 0x17fe9: 0xe000b147, 0x17fea: 0xe0000c60, 0x17feb: 0xe0000c5d, + 0x17fec: 0xe0000c31, 0x17fed: 0xe0000c2e, 0x17fee: 0xe0000c5a, 0x17fef: 0xe0000c57, + 0x17ff0: 0xe0000c54, 0x17ff1: 0x402da220, 0x17ff2: 0xf0000a0a, 0x17ff3: 0xf0000404, + 0x17ff4: 0xe0000c8a, 0x17ff5: 0xe0000c87, 0x17ff6: 0xe0000c9f, 0x17ff7: 0xe0000c9c, + 0x17ff8: 0x402f7220, 0x17ff9: 0xe000b170, 0x17ffa: 0xe000b16d, 0x17ffb: 0xe0000cd8, + 0x17ffc: 0xe0000cd5, 0x17ffd: 0xe0000cd2, 0x17ffe: 0xe0000ccf, 0x17fff: 0xe0000d04, + // Block 0x600, offset 0x18000 + 0x18000: 0xe0000cfe, 0x18001: 0xe0000cf8, 0x18002: 0xe0000cf5, 0x18003: 0xe000b196, + 0x18004: 0xe000b193, 0x18005: 0xe0000d6f, 0x18006: 0xe0000d6c, 0x18007: 0xe0000d5d, + 0x18008: 0xe0000d5a, 0x18009: 0xf0000404, 0x1800a: 0x002eda88, 0x1800b: 0x402eda20, + 0x1800c: 0xe0000e2e, 0x1800d: 0xe0000e2b, 0x1800e: 0xe0000da0, 0x1800f: 0xe0000d9d, + 0x18010: 0xe0000de0, 0x18011: 0xe0000ddd, 0x18012: 0xe0000e93, 0x18013: 0xe0000e8f, + 0x18014: 0xe000b21e, 0x18015: 0xe000b21b, 0x18016: 0xe0000edc, 0x18017: 0xe0000ed9, + 0x18018: 0xe0000ed0, 0x18019: 0xe0000ecd, 0x1801a: 0xe000b232, 0x1801b: 0xe000b22f, + 0x1801c: 0xe0000f2d, 0x1801d: 0xe0000f2a, 0x1801e: 0xe0000f47, 0x1801f: 0xe0000f44, + 0x18020: 0xe0000f33, 0x18021: 0xe0000f30, 0x18022: 0xe0000f99, 0x18023: 0xe0000f96, + 0x18024: 0xe0000f8a, 0x18025: 0xe0000f87, 0x18026: 0x00303688, 0x18027: 0x40303620, + 0x18028: 0xe000b25a, 0x18029: 0xe000b257, 0x1802a: 0xe000103f, 0x1802b: 0xe000103c, + 0x1802c: 0xe0000fe7, 0x1802d: 0xe0000fe4, 0x1802e: 0xe0000ff9, 0x1802f: 0xe0000ff6, + 0x18030: 0xe0001025, 0x18031: 0xe0001022, 0x18032: 0xe0001039, 0x18033: 0xe0001036, + 0x18034: 0xe00010d8, 0x18035: 0xe00010d5, 0x18036: 0xe000110e, 0x18037: 0xe000110b, + 0x18038: 0xe0001117, 0x18039: 0xe000b2c4, 0x1803a: 0xe000b2c1, 0x1803b: 0xe000114d, + 0x1803c: 0xe000114a, 0x1803d: 0xe0001147, 0x1803e: 0xe0001144, 0x1803f: 0xe0000f64, + // Block 0x601, offset 0x18040 + 0x18040: 0x402c1a20, 0x18041: 0x002c2a88, 0x18042: 0x002c3288, 0x18043: 0x402c3220, + 0x18044: 0x0031c488, 0x18045: 0x4031c420, 0x18046: 0x002efa88, 0x18047: 0x002c4e88, + 0x18048: 0x402c4e20, 0x18049: 0x002c7288, 0x1804a: 0x002c7a88, 0x1804b: 0x002c8488, + 0x1804c: 0x402c8420, 0x1804d: 0xe000115c, 0x1804e: 0x002cae88, 0x1804f: 0x002cb888, + 0x18050: 0x002cc288, 0x18051: 0x002d1688, 0x18052: 0x402d1620, 0x18053: 0x002d4488, + 0x18054: 0x002d5888, 0x18055: 0x402d7820, 0x18056: 0x002dc288, 0x18057: 0x002db688, + 0x18058: 0x002e0a88, 0x18059: 0x402e0a20, 0x1805a: 0x402e3820, 0x1805b: 0x402e7220, + 0x1805c: 0x0030a088, 0x1805d: 0x002eb488, 0x1805e: 0x402ebc20, 0x1805f: 0x002f1088, + 0x18060: 0x002ee683, 0x18061: 0x402ee620, 0x18062: 0x002d6088, 0x18063: 0x402d6020, + 0x18064: 0x002f3e88, 0x18065: 0x402f3e20, 0x18066: 0x002f8288, 0x18067: 0x0031b488, + 0x18068: 0x4031b420, 0x18069: 0x00300888, 0x1806a: 0x40301220, 0x1806b: 0x40304220, + 0x1806c: 0x00304a88, 0x1806d: 0x40304a20, 0x1806e: 0x00305288, 0x1806f: 0x00306e83, + 0x18070: 0x40306e20, 0x18071: 0x0030b488, 0x18072: 0x0030cc88, 0x18073: 0x00311888, + 0x18074: 0x40311820, 0x18075: 0x00313488, 0x18076: 0x40313420, 0x18077: 0x00316488, + 0x18078: 0x00316e88, 0x18079: 0x40316e20, 0x1807a: 0x40317820, 0x1807b: 0x4031a620, + 0x1807c: 0x0031bc88, 0x1807d: 0x4031bc20, 0x1807e: 0xe0000fc9, 0x1807f: 0x40319420, + // Block 0x602, offset 0x18080 + 0x18080: 0x40321220, 0x18081: 0x40321a20, 0x18082: 0x40322220, 0x18083: 0x40322a20, + 0x18084: 0xe0000ad5, 0x18085: 0xe0000ad1, 0x18086: 0xe0000acd, 0x18087: 0xf0000a0a, + 0x18088: 0xf000040a, 0x18089: 0xf0000404, 0x1808a: 0xf0000a0a, 0x1808b: 0xf000040a, + 0x1808c: 0xf0000404, 0x1808d: 0xe0000947, 0x1808e: 0xe0000944, 0x1808f: 0xe0000c3d, + 0x18090: 0xe0000c3a, 0x18091: 0xe0000dcc, 0x18092: 0xe0000dc9, 0x18093: 0xe0000ff3, + 0x18094: 0xe0000ff0, 0x18095: 0xe000101e, 0x18096: 0xe000101a, 0x18097: 0xe000b275, + 0x18098: 0xe000b271, 0x18099: 0xe0001016, 0x1809a: 0xe0001012, 0x1809b: 0xe000100e, + 0x1809c: 0xe000100a, 0x1809d: 0x402cae20, 0x1809e: 0xe0000962, 0x1809f: 0xe000095e, + 0x180a0: 0xe0000976, 0x180a1: 0xe0000972, 0x180a2: 0xe00009f4, 0x180a3: 0xe00009ef, + 0x180a4: 0x002d3a88, 0x180a5: 0x402d3a20, 0x180a6: 0xe0000bbe, 0x180a7: 0xe0000bbb, + 0x180a8: 0xe0000c99, 0x180a9: 0xe0000c96, 0x180aa: 0xe0000e20, 0x180ab: 0xe0000e1d, + 0x180ac: 0xe0000e27, 0x180ad: 0xe0000e23, 0x180ae: 0xe0001162, 0x180af: 0xe000115f, + 0x180b0: 0xe0000c8d, 0x180b1: 0xf0000a0a, 0x180b2: 0xf000040a, 0x180b3: 0xf0000404, + 0x180b4: 0xe000b138, 0x180b5: 0xe000b135, 0x180b6: 0x002d7888, 0x180b7: 0x00319488, + 0x180b8: 0xe0000d57, 0x180b9: 0xe0000d54, 0x180ba: 0xe000b0a5, 0x180bb: 0xe000b0a1, + 0x180bc: 0xe000b0ae, 0x180bd: 0xe000b0a9, 0x180be: 0xe000b1d3, 0x180bf: 0xe000b1cf, + // Block 0x603, offset 0x180c0 + 0x180c0: 0xe000098f, 0x180c1: 0xe000098c, 0x180c2: 0xe0000995, 0x180c3: 0xe0000992, + 0x180c4: 0xe0000b62, 0x180c5: 0xe0000b5f, 0x180c6: 0xe0000b68, 0x180c7: 0xe0000b65, + 0x180c8: 0xe0000c6c, 0x180c9: 0xe0000c69, 0x180ca: 0xe0000c72, 0x180cb: 0xe0000c6f, + 0x180cc: 0xe0000e4a, 0x180cd: 0xe0000e47, 0x180ce: 0xe0000e50, 0x180cf: 0xe0000e4d, + 0x180d0: 0xe0000ee8, 0x180d1: 0xe0000ee5, 0x180d2: 0xe0000eee, 0x180d3: 0xe0000eeb, + 0x180d4: 0xe0001053, 0x180d5: 0xe0001050, 0x180d6: 0xe0001059, 0x180d7: 0xe0001056, + 0x180d8: 0xe0000f61, 0x180d9: 0xe0000f5e, 0x180da: 0xe0000fa5, 0x180db: 0xe0000fa2, + 0x180dc: 0x00312288, 0x180dd: 0x40312220, 0x180de: 0xe0000bf4, 0x180df: 0xe0000bf1, + 0x180e0: 0x002ebc88, 0x180e1: 0x402c8c20, 0x180e2: 0x002f2288, 0x180e3: 0x402f2220, + 0x180e4: 0x00314088, 0x180e5: 0x40314020, 0x180e6: 0xe000096f, 0x180e7: 0xe000096c, + 0x180e8: 0xe0000b32, 0x180e9: 0xe0000b2f, 0x180ea: 0xe0000dd9, 0x180eb: 0xe0000dd5, + 0x180ec: 0xe000b1bf, 0x180ed: 0xe000b1bb, 0x180ee: 0xe0000e04, 0x180ef: 0xe0000e01, + 0x180f0: 0xe0000e0b, 0x180f1: 0xe0000e07, 0x180f2: 0xe0001129, 0x180f3: 0xe0001126, + 0x180f4: 0x402e5e20, 0x180f5: 0x402ed020, 0x180f6: 0x40305a20, 0x180f7: 0x402dd420, + 0x180f8: 0xe0000abf, 0x180f9: 0xe0000ec4, 0x180fa: 0x002be888, 0x180fb: 0x002c4488, + 0x180fc: 0x402c4420, 0x180fd: 0x002e3888, 0x180fe: 0x00303e88, 0x180ff: 0x402ffc20, + // Block 0x604, offset 0x18100 + 0x18100: 0xae603502, 0x18101: 0xae603802, 0x18102: 0xae603c02, 0x18103: 0xae603702, + 0x18104: 0xae605b02, 0x18105: 0xae606302, 0x18106: 0xae603702, 0x18107: 0xae605202, + 0x18108: 0xae604702, 0x18109: 0xae603602, 0x1810a: 0xae604302, 0x1810b: 0xae604d02, + 0x1810c: 0xae604102, 0x1810d: 0xae605f02, 0x1810e: 0xae605f02, 0x1810f: 0xae606502, + 0x18110: 0xae606602, 0x18111: 0xae606702, 0x18112: 0xae605f02, 0x18113: 0xae602202, + 0x18114: 0xae602a02, 0x18115: 0xae805f02, 0x18116: 0xadc06002, 0x18117: 0xadc06002, + 0x18118: 0xadc06002, 0x18119: 0xadc06002, 0x1811a: 0xae805f02, 0x1811b: 0xad806802, + 0x1811c: 0xadc06002, 0x1811d: 0xadc06002, 0x1811e: 0xadc06002, 0x1811f: 0xadc06002, + 0x18120: 0xadc06002, 0x18121: 0xaca06e02, 0x18122: 0xaca06f02, 0x18123: 0xae603902, + 0x18124: 0xadc07502, 0x18125: 0xadc07602, 0x18126: 0xadc07702, 0x18127: 0xaca05602, + 0x18128: 0xaca05902, 0x18129: 0xadc06002, 0x1812a: 0xadc06002, 0x1812b: 0xadc06002, + 0x1812c: 0xadc06002, 0x1812d: 0xadc07802, 0x1812e: 0xadc07902, 0x1812f: 0xadc06002, + 0x18130: 0xadc07a02, 0x18131: 0xadc07b02, 0x18132: 0xadc02102, 0x18133: 0xadc06002, + 0x18134: 0xa0107c02, 0x18135: 0xa0107d02, 0x18136: 0xa0106102, 0x18137: 0xa0106102, + 0x18138: 0xa0105402, 0x18139: 0xadc07e02, 0x1813a: 0xadc06002, 0x1813b: 0xadc06002, + 0x1813c: 0xadc06002, 0x1813d: 0xae605f02, 0x1813e: 0xae605f02, 0x1813f: 0xae605f02, + // Block 0x605, offset 0x18140 + 0x18140: 0xae603502, 0x18141: 0xae603802, 0x18142: 0xae604502, 0x18143: 0xae602202, + 0x18144: 0xe000b07d, 0x18145: 0xaf007f02, 0x18146: 0xae605f02, 0x18147: 0xadc06002, + 0x18148: 0xadc06002, 0x18149: 0xadc06002, 0x1814a: 0xae605f02, 0x1814b: 0xae605f02, + 0x1814c: 0xae605f02, 0x1814d: 0xadc06002, 0x1814e: 0xadc06002, 0x1814f: 0xa0000000, + 0x18150: 0xae605f02, 0x18151: 0xae605f02, 0x18152: 0xae605f02, 0x18153: 0xadc06002, + 0x18154: 0xadc06002, 0x18155: 0xadc06002, 0x18156: 0xadc06002, 0x18157: 0xae605f02, + 0x18158: 0xae808002, 0x18159: 0xadc06002, 0x1815a: 0xadc06002, 0x1815b: 0xae605f02, + 0x1815c: 0xae906002, 0x1815d: 0xaea05f02, 0x1815e: 0xaea05f02, 0x1815f: 0xae906002, + 0x18160: 0xaea08102, 0x18161: 0xaea08202, 0x18162: 0xae906002, 0x18163: 0x84e615ef, + 0x18164: 0x84e6164c, 0x18165: 0x84e616cd, 0x18166: 0x84e61771, 0x18167: 0x84e61836, + 0x18168: 0x84e6161d, 0x18169: 0x84e61631, 0x1816a: 0x84e616b4, 0x1816b: 0x84e61741, + 0x1816c: 0x84e617bd, 0x1816d: 0x84e61816, 0x1816e: 0x84e6185f, 0x1816f: 0x84e6187b, + 0x18170: 0x00326688, 0x18171: 0x40326620, 0x18172: 0x0032a688, 0x18173: 0x4032a620, + 0x18174: 0x40064020, 0x18175: 0x40064220, 0x18176: 0x00326088, 0x18177: 0x40326020, + 0x1817a: 0x00326c84, 0x1817b: 0x40329220, + 0x1817c: 0x40329020, 0x1817d: 0x40329420, 0x1817e: 0x40026220, + // Block 0x606, offset 0x18180 + 0x18184: 0x40062020, 0x18185: 0xe000b080, 0x18186: 0xe000b2f4, 0x18187: 0x40030620, + 0x18188: 0xe000b30e, 0x18189: 0xe000b338, 0x1818a: 0xe000b352, + 0x1818c: 0xe000b36c, 0x1818e: 0xe000b37e, 0x1818f: 0xe000b3ac, + 0x18190: 0xe000b355, 0x18191: 0x00325288, 0x18192: 0x00325488, 0x18193: 0x00325688, + 0x18194: 0x00325a88, 0x18195: 0x00325c88, 0x18196: 0x00326488, 0x18197: 0x00326888, + 0x18198: 0x00326a88, 0x18199: 0x00326c88, 0x1819a: 0x00327088, 0x1819b: 0x00327288, + 0x1819c: 0x00327688, 0x1819d: 0x00327888, 0x1819e: 0x00327a88, 0x1819f: 0x00327c88, + 0x181a0: 0x00327e88, 0x181a1: 0x00328888, 0x181a3: 0x00328e88, + 0x181a4: 0x00329688, 0x181a5: 0x00329888, 0x181a6: 0x00329a88, 0x181a7: 0x00329c88, + 0x181a8: 0x00329e88, 0x181a9: 0x0032a288, 0x181aa: 0xe000134f, 0x181ab: 0xe00013f2, + 0x181ac: 0xe000b2f1, 0x181ad: 0xe000b30b, 0x181ae: 0xe000b335, 0x181af: 0xe000b34f, + 0x181b0: 0xe000b381, 0x181b1: 0x40325220, 0x181b2: 0x40325420, 0x181b3: 0x40325620, + 0x181b4: 0x40325a20, 0x181b5: 0x40325c20, 0x181b6: 0x40326420, 0x181b7: 0x40326820, + 0x181b8: 0x40326a20, 0x181b9: 0x40326c20, 0x181ba: 0x40327020, 0x181bb: 0x40327220, + 0x181bc: 0x40327620, 0x181bd: 0x40327820, 0x181be: 0x40327a20, 0x181bf: 0x40327c20, + // Block 0x607, offset 0x181c0 + 0x181c0: 0x40327e20, 0x181c1: 0x40328820, 0x181c2: 0x00328e99, 0x181c3: 0x40328e20, + 0x181c4: 0x40329620, 0x181c5: 0x40329820, 0x181c6: 0x40329a20, 0x181c7: 0x40329c20, + 0x181c8: 0x40329e20, 0x181c9: 0x4032a220, 0x181ca: 0xe000134c, 0x181cb: 0xe00013ef, + 0x181cc: 0xe000b369, 0x181cd: 0xe000b37b, 0x181ce: 0xe000b3a9, 0x181cf: 0xe0001368, + 0x181d0: 0x00325484, 0x181d1: 0x00326a84, 0x181d2: 0x0032988a, 0x181d3: 0xf000020a, + 0x181d4: 0xf000020a, 0x181d5: 0x00329a84, 0x181d6: 0x00327e84, 0x181d7: 0xe0001364, + 0x181d8: 0x00328688, 0x181d9: 0x40328620, 0x181da: 0x00326288, 0x181db: 0x40326220, + 0x181dc: 0x00325e88, 0x181dd: 0x40325e20, 0x181de: 0x00328488, 0x181df: 0x40328420, + 0x181e0: 0x0032a488, 0x181e1: 0x4032a420, 0x181e2: 0x0032e888, 0x181e3: 0x4032e820, + 0x181e4: 0x0032f288, 0x181e5: 0x4032f220, 0x181e6: 0x0032f488, 0x181e7: 0x4032f420, + 0x181e8: 0x0032fa88, 0x181e9: 0x4032fa20, 0x181ea: 0x00330888, 0x181eb: 0x40330820, + 0x181ec: 0x00330e88, 0x181ed: 0x40330e20, 0x181ee: 0x00331688, 0x181ef: 0x40331620, + 0x181f0: 0x00327084, 0x181f1: 0x00328884, 0x181f2: 0x00328e84, 0x181f3: 0x40326e20, + 0x181f4: 0x00326a8a, 0x181f5: 0x00325c84, 0x181f6: 0x40092e20, 0x181f7: 0x0032a888, + 0x181f8: 0x4032a820, 0x181f9: 0x00328e8a, 0x181fa: 0x00328288, 0x181fb: 0x40328220, + 0x181fc: 0x40328c20, 0x181fd: 0x00329288, 0x181fe: 0x00329088, 0x181ff: 0x00329488, + // Block 0x608, offset 0x18200 + 0x18200: 0xe00009b1, 0x18201: 0xe00009ae, 0x18202: 0xe0000a22, 0x18203: 0xe0000a1f, + 0x18204: 0xe000b0e6, 0x18205: 0xe000b0e3, 0x18206: 0xe0000a2e, 0x18207: 0xe0000a2b, + 0x18208: 0xe000b0f3, 0x18209: 0xe000b0ef, 0x1820a: 0xe0000a8c, 0x1820b: 0xe0000a89, + 0x1820c: 0xe000b0fa, 0x1820d: 0xe000b0f7, 0x1820e: 0xe0000aa4, 0x1820f: 0xe0000aa1, + 0x18210: 0xe0000a92, 0x18211: 0xe0000a8f, 0x18212: 0xe0000a9e, 0x18213: 0xe0000a9b, + 0x18214: 0xe0000b55, 0x18215: 0xe0000b51, 0x18216: 0xe000b119, 0x18217: 0xe000b115, + 0x18218: 0xe0000b7c, 0x18219: 0xe0000b79, 0x1821a: 0xe0000b82, 0x1821b: 0xe0000b7f, + 0x1821c: 0xe0000b39, 0x1821d: 0xe0000b35, 0x1821e: 0xe0000b8c, 0x1821f: 0xe0000b89, + 0x18220: 0xe0000bd0, 0x18221: 0xe0000bcd, 0x18222: 0xe0000c00, 0x18223: 0xe0000bfd, + 0x18224: 0xe000b13e, 0x18225: 0xe000b13b, 0x18226: 0xe0000bfa, 0x18227: 0xe0000bf7, + 0x18228: 0xe0000c06, 0x18229: 0xe0000c03, 0x1822a: 0xe0000c12, 0x1822b: 0xe0000c0f, + 0x1822c: 0xe0000c7e, 0x1822d: 0xe0000c7b, 0x1822e: 0xe000b15d, 0x1822f: 0xe000b159, + 0x18230: 0xe000b164, 0x18231: 0xe000b161, 0x18232: 0xe000b16a, 0x18233: 0xe000b167, + 0x18234: 0xe0000cb1, 0x18235: 0xe0000cae, 0x18236: 0xe000b176, 0x18237: 0xe000b173, + 0x18238: 0xe000b17d, 0x18239: 0xe000b179, 0x1823a: 0xe0000cf2, 0x1823b: 0xe0000cef, + 0x1823c: 0xe0000cec, 0x1823d: 0xe0000ce9, 0x1823e: 0xe000b184, 0x1823f: 0xe000b181, + // Block 0x609, offset 0x18240 + 0x18240: 0xe0000d24, 0x18241: 0xe0000d21, 0x18242: 0xe000b18a, 0x18243: 0xe000b187, + 0x18244: 0xe0000d69, 0x18245: 0xe0000d66, 0x18246: 0xe000b19c, 0x18247: 0xe000b199, + 0x18248: 0xe0000d87, 0x18249: 0xe0000d84, 0x1824a: 0xe0000d81, 0x1824b: 0xe0000d7e, + 0x1824c: 0xe000b1af, 0x1824d: 0xe000b1ab, 0x1824e: 0xe000b1b7, 0x1824f: 0xe000b1b3, + 0x18250: 0xe0000e3d, 0x18251: 0xe0000e39, 0x18252: 0xe000b1db, 0x18253: 0xe000b1d7, + 0x18254: 0xe000b218, 0x18255: 0xe000b215, 0x18256: 0xe0000ead, 0x18257: 0xe0000eaa, + 0x18258: 0xe0000ed6, 0x18259: 0xe0000ed3, 0x1825a: 0xe000b224, 0x1825b: 0xe000b221, + 0x1825c: 0xe000b22b, 0x1825d: 0xe000b227, 0x1825e: 0xe0000f02, 0x1825f: 0xe0000eff, + 0x18260: 0xe0000f41, 0x18261: 0xe0000f3e, 0x18262: 0xe000b240, 0x18263: 0xe000b23d, + 0x18264: 0xe000b239, 0x18265: 0xe000b235, 0x18266: 0xe0000f3a, 0x18267: 0xe0000f36, + 0x18268: 0xe000b247, 0x18269: 0xe000b243, 0x1826a: 0xe0000f93, 0x1826b: 0xe0000f90, + 0x1826c: 0xe000b24e, 0x1826d: 0xe000b24b, 0x1826e: 0xe0000fb1, 0x1826f: 0xe0000fae, + 0x18270: 0xe0000fab, 0x18271: 0xe0000fa8, 0x18272: 0xe0001093, 0x18273: 0xe0001090, + 0x18274: 0xe000109f, 0x18275: 0xe000109c, 0x18276: 0xe0001099, 0x18277: 0xe0001096, + 0x18278: 0xe000b261, 0x18279: 0xe000b25d, 0x1827a: 0xe0001046, 0x1827b: 0xe0001042, + 0x1827c: 0xe000b294, 0x1827d: 0xe000b291, 0x1827e: 0xe000b29a, 0x1827f: 0xe000b297, + // Block 0x60a, offset 0x18280 + 0x18280: 0xe00010d2, 0x18281: 0xe00010cf, 0x18282: 0xe000b2a0, 0x18283: 0xe000b29d, + 0x18284: 0xe00010e1, 0x18285: 0xe00010de, 0x18286: 0xe00010e7, 0x18287: 0xe00010e4, + 0x18288: 0xe000b2a6, 0x18289: 0xe000b2a3, 0x1828a: 0xe00010fc, 0x1828b: 0xe00010f9, + 0x1828c: 0xe00010f6, 0x1828d: 0xe00010f3, 0x1828e: 0xe0001123, 0x1828f: 0xe0001120, + 0x18290: 0xe0001141, 0x18291: 0xe000113e, 0x18292: 0xe000b2ca, 0x18293: 0xe000b2c7, + 0x18294: 0xe0001159, 0x18295: 0xe0001156, 0x18296: 0xe0000c15, 0x18297: 0xe0000f8d, + 0x18298: 0xe00010db, 0x18299: 0xe0001111, 0x1829a: 0xf0000404, 0x1829b: 0xe0000f70, + 0x1829c: 0x40300420, 0x1829d: 0x40300620, 0x1829e: 0xe0000f7f, 0x1829f: 0x402c9620, + 0x182a0: 0xe000b09e, 0x182a1: 0xe000b09b, 0x182a2: 0xe000b08c, 0x182a3: 0xe000b089, + 0x182a4: 0xe000b0da, 0x182a5: 0xe000b0d7, 0x182a6: 0xe000393a, 0x182a7: 0xe0003937, + 0x182a8: 0xe000b0ce, 0x182a9: 0xe000b0cb, 0x182aa: 0xe000b0d4, 0x182ab: 0xe000b0d1, + 0x182ac: 0xe000b0e0, 0x182ad: 0xe000b0dd, 0x182ae: 0xe000b0c2, 0x182af: 0xe000b0bf, + 0x182b0: 0xe0003894, 0x182b1: 0xe0003891, 0x182b2: 0xe000b0b6, 0x182b3: 0xe000b0b3, + 0x182b4: 0xe000b0bc, 0x182b5: 0xe000b0b9, 0x182b6: 0xe000b0c8, 0x182b7: 0xe000b0c5, + 0x182b8: 0xe000b112, 0x182b9: 0xe000b10f, 0x182ba: 0xe000b100, 0x182bb: 0xe000b0fd, + 0x182bc: 0xe000b106, 0x182bd: 0xe000b103, 0x182be: 0xe000b12c, 0x182bf: 0xe000b129, + // Block 0x60b, offset 0x182c0 + 0x182c0: 0xe000ad47, 0x182c1: 0xe000ad44, 0x182c2: 0xe000b120, 0x182c3: 0xe000b11d, + 0x182c4: 0xe000b126, 0x182c5: 0xe000b123, 0x182c6: 0xe000b132, 0x182c7: 0xe000b12f, + 0x182c8: 0xe000b144, 0x182c9: 0xe000b141, 0x182ca: 0xe000b156, 0x182cb: 0xe000b153, + 0x182cc: 0xe000b1cc, 0x182cd: 0xe000b1c9, 0x182ce: 0xe000b1a2, 0x182cf: 0xe000b19f, + 0x182d0: 0xe000b1ee, 0x182d1: 0xe000b1eb, 0x182d2: 0xe000ad65, 0x182d3: 0xe000ad62, + 0x182d4: 0xe000b1e2, 0x182d5: 0xe000b1df, 0x182d6: 0xe000b1e8, 0x182d7: 0xe000b1e5, + 0x182d8: 0xe000b1f4, 0x182d9: 0xe000b1f1, 0x182da: 0xe000b20c, 0x182db: 0xe000b209, + 0x182dc: 0xe000b1fa, 0x182dd: 0xe000b1f7, 0x182de: 0xe000b200, 0x182df: 0xe000b1fd, + 0x182e0: 0xe000b206, 0x182e1: 0xe000b203, 0x182e2: 0xe000b212, 0x182e3: 0xe000b20f, + 0x182e4: 0xe000b26e, 0x182e5: 0xe000b26b, 0x182e6: 0xe000b254, 0x182e7: 0xe000b251, + 0x182e8: 0xe000b288, 0x182e9: 0xe000b285, 0x182ea: 0xe0002958, 0x182eb: 0xe0002955, + 0x182ec: 0xe000b27c, 0x182ed: 0xe000b279, 0x182ee: 0xe000b282, 0x182ef: 0xe000b27f, + 0x182f0: 0xe000b28e, 0x182f1: 0xe000b28b, 0x182f2: 0xe0001108, 0x182f3: 0xe0001105, + 0x182f4: 0xe000b2be, 0x182f5: 0xe000b2bb, 0x182f6: 0xe000b2ac, 0x182f7: 0xe000b2a9, + 0x182f8: 0xe000b2b2, 0x182f9: 0xe000b2af, 0x182fa: 0xe0000d0a, 0x182fb: 0xe0000d07, + 0x182fc: 0x0030d888, 0x182fd: 0x4030d820, 0x182fe: 0x00312088, 0x182ff: 0x40312020, + // Block 0x60c, offset 0x18300 + 0x18300: 0xe0001165, 0x18301: 0xe00011a9, 0x18302: 0xe000117d, 0x18303: 0xe00011c1, + 0x18304: 0xe000b2cd, 0x18305: 0xe000b2df, 0x18306: 0xe000118f, 0x18307: 0xe00011d3, + 0x18308: 0xe0001168, 0x18309: 0xe00011ac, 0x1830a: 0xe0001181, 0x1830b: 0xe00011c5, + 0x1830c: 0xe000b2d1, 0x1830d: 0xe000b2e3, 0x1830e: 0xe0001193, 0x1830f: 0xe00011d7, + 0x18310: 0xe000121a, 0x18311: 0xe0001230, 0x18312: 0xe0001228, 0x18313: 0xe000123e, + 0x18314: 0xe000b2fb, 0x18315: 0xe000b303, + 0x18318: 0xe000121d, 0x18319: 0xe0001233, 0x1831a: 0xe000122c, 0x1831b: 0xe0001242, + 0x1831c: 0xe000b2ff, 0x1831d: 0xe000b307, + 0x18320: 0xe0001252, 0x18321: 0xe0001296, 0x18322: 0xe000126a, 0x18323: 0xe00012ae, + 0x18324: 0xe000b311, 0x18325: 0xe000b323, 0x18326: 0xe000127c, 0x18327: 0xe00012c0, + 0x18328: 0xe0001255, 0x18329: 0xe0001299, 0x1832a: 0xe000126e, 0x1832b: 0xe00012b2, + 0x1832c: 0xe000b315, 0x1832d: 0xe000b327, 0x1832e: 0xe0001280, 0x1832f: 0xe00012c4, + 0x18330: 0xe00012fb, 0x18331: 0xe0001319, 0x18332: 0xe0001309, 0x18333: 0xe0001327, + 0x18334: 0xe000b33f, 0x18335: 0xe000b347, 0x18336: 0xe0001311, 0x18337: 0xe000132f, + 0x18338: 0xe00012fe, 0x18339: 0xe000131c, 0x1833a: 0xe000130d, 0x1833b: 0xe000132b, + 0x1833c: 0xe000b343, 0x1833d: 0xe000b34b, 0x1833e: 0xe0001315, 0x1833f: 0xe0001333, + // Block 0x60d, offset 0x18340 + 0x18340: 0xe000136c, 0x18341: 0xe0001382, 0x18342: 0xe000137a, 0x18343: 0xe0001390, + 0x18344: 0xe000b359, 0x18345: 0xe000b361, + 0x18348: 0xe000136f, 0x18349: 0xe0001385, 0x1834a: 0xe000137e, 0x1834b: 0xe0001394, + 0x1834c: 0xe000b35d, 0x1834d: 0xe000b365, + 0x18350: 0xe00013ad, 0x18351: 0xe00013bc, 0x18352: 0xe00013b4, 0x18353: 0xe00013ca, + 0x18354: 0xe000b36f, 0x18355: 0xe000b373, 0x18356: 0xe00013b8, 0x18357: 0xe00013d2, + 0x18359: 0xe00013bf, 0x1835b: 0xe00013ce, + 0x1835d: 0xe000b377, 0x1835f: 0xe00013d6, + 0x18360: 0xe0001407, 0x18361: 0xe000144b, 0x18362: 0xe000141f, 0x18363: 0xe0001463, + 0x18364: 0xe000b385, 0x18365: 0xe000b397, 0x18366: 0xe0001431, 0x18367: 0xe0001475, + 0x18368: 0xe000140a, 0x18369: 0xe000144e, 0x1836a: 0xe0001423, 0x1836b: 0xe0001467, + 0x1836c: 0xe000b389, 0x1836d: 0xe000b39b, 0x1836e: 0xe0001435, 0x1836f: 0xe0001479, + 0x18370: 0xe00011f7, 0x18371: 0xe000b2f1, 0x18372: 0xe000124c, 0x18373: 0xe000b30b, + 0x18374: 0xe00012e4, 0x18375: 0xe000b335, 0x18376: 0xe000133d, 0x18377: 0xe000b34f, + 0x18378: 0xe000139e, 0x18379: 0xe000b369, 0x1837a: 0xe00013e0, 0x1837b: 0xe000b37b, + 0x1837c: 0xe0001499, 0x1837d: 0xe000b3a9, + // Block 0x60e, offset 0x18380 + 0x18380: 0xe00011a1, 0x18381: 0xe00011e5, 0x18382: 0xe0001185, 0x18383: 0xe00011c9, + 0x18384: 0xe000b2d5, 0x18385: 0xe000b2e7, 0x18386: 0xe0001197, 0x18387: 0xe00011db, + 0x18388: 0xe00011a5, 0x18389: 0xe00011e9, 0x1838a: 0xe000118a, 0x1838b: 0xe00011ce, + 0x1838c: 0xe000b2da, 0x1838d: 0xe000b2ec, 0x1838e: 0xe000119c, 0x1838f: 0xe00011e0, + 0x18390: 0xe000128e, 0x18391: 0xe00012d2, 0x18392: 0xe0001272, 0x18393: 0xe00012b6, + 0x18394: 0xe000b319, 0x18395: 0xe000b32b, 0x18396: 0xe0001284, 0x18397: 0xe00012c8, + 0x18398: 0xe0001292, 0x18399: 0xe00012d6, 0x1839a: 0xe0001277, 0x1839b: 0xe00012bb, + 0x1839c: 0xe000b31e, 0x1839d: 0xe000b330, 0x1839e: 0xe0001289, 0x1839f: 0xe00012cd, + 0x183a0: 0xe0001443, 0x183a1: 0xe0001487, 0x183a2: 0xe0001427, 0x183a3: 0xe000146b, + 0x183a4: 0xe000b38d, 0x183a5: 0xe000b39f, 0x183a6: 0xe0001439, 0x183a7: 0xe000147d, + 0x183a8: 0xe0001447, 0x183a9: 0xe000148b, 0x183aa: 0xe000142c, 0x183ab: 0xe0001470, + 0x183ac: 0xe000b392, 0x183ad: 0xe000b3a4, 0x183ae: 0xe000143e, 0x183af: 0xe0001482, + 0x183b0: 0xe0001201, 0x183b1: 0xe000120e, 0x183b2: 0xe00011fd, 0x183b3: 0xe0001214, + 0x183b4: 0xe000b2f7, 0x183b6: 0xe0001207, 0x183b7: 0xe000120a, + 0x183b8: 0xe0001204, 0x183b9: 0xe0001211, 0x183ba: 0xe00011fa, 0x183bb: 0xe000b2f4, + 0x183bc: 0xe0001217, 0x183bd: 0x40063620, 0x183be: 0x40326c20, 0x183bf: 0x40063620, + // Block 0x60f, offset 0x183c0 + 0x183c0: 0x40063a20, 0x183c1: 0xe00000b1, 0x183c2: 0xe00012ea, 0x183c3: 0xe00012f5, + 0x183c4: 0xe000b33b, 0x183c6: 0xe00012ee, 0x183c7: 0xe00012f1, + 0x183c8: 0xe000124f, 0x183c9: 0xe000b30e, 0x183ca: 0xe00012e7, 0x183cb: 0xe000b338, + 0x183cc: 0xe00012f8, 0x183cd: 0xe00000b7, 0x183ce: 0xe000b083, 0x183cf: 0xe00000ba, + 0x183d0: 0xe0001343, 0x183d1: 0xe000135e, 0x183d2: 0xe0001356, 0x183d3: 0xe000b355, + 0x183d6: 0xe0001349, 0x183d7: 0xe000135a, + 0x183d8: 0xe0001346, 0x183d9: 0xe0001361, 0x183da: 0xe0001340, 0x183db: 0xe000b352, + 0x183dd: 0xe00000c0, 0x183de: 0xe000b086, 0x183df: 0xe00000c3, + 0x183e0: 0xe00013e6, 0x183e1: 0xe0001401, 0x183e2: 0xe00013f9, 0x183e3: 0xe000b381, + 0x183e4: 0xe00013a4, 0x183e5: 0xe00013a7, 0x183e6: 0xe00013ec, 0x183e7: 0xe00013fd, + 0x183e8: 0xe00013e9, 0x183e9: 0xe0001404, 0x183ea: 0xe00013e3, 0x183eb: 0xe000b37e, + 0x183ec: 0xe00013aa, 0x183ed: 0xe00000ae, 0x183ee: 0xe000b080, 0x183ef: 0x40061e20, + 0x183f2: 0xe000149f, 0x183f3: 0xe00014aa, + 0x183f4: 0xe000b3af, 0x183f6: 0xe00014a3, 0x183f7: 0xe00014a6, + 0x183f8: 0xe00013a1, 0x183f9: 0xe000b36c, 0x183fa: 0xe000149c, 0x183fb: 0xe000b3ac, + 0x183fc: 0xe00014ad, 0x183fd: 0x40062020, 0x183fe: 0x40063820, + // Block 0x610, offset 0x18400 + 0x18400: 0xa0000000, 0x18401: 0xa0000000, 0x18402: 0xa0000000, 0x18403: 0xa0000000, + 0x18404: 0xa0000000, 0x18405: 0xa0000000, 0x18406: 0xa0000000, 0x18407: 0xa0000000, + 0x18408: 0xa0000000, 0x18409: 0x40020020, 0x1840a: 0x40020220, 0x1840b: 0x40020420, + 0x1840c: 0x40020620, 0x1840d: 0x40020820, 0x1840e: 0xa0000000, 0x1840f: 0xa0000000, + 0x18410: 0xa0000000, 0x18411: 0xa0000000, 0x18412: 0xa0000000, 0x18413: 0xa0000000, + 0x18414: 0xa0000000, 0x18415: 0xa0000000, 0x18416: 0xa0000000, 0x18417: 0xa0000000, + 0x18418: 0xa0000000, 0x18419: 0xa0000000, 0x1841a: 0xa0000000, 0x1841b: 0xa0000000, + 0x1841c: 0xa0000000, 0x1841d: 0xa0000000, 0x1841e: 0xa0000000, 0x1841f: 0xa0000000, + 0x18420: 0x40021220, 0x18421: 0x4002ba20, 0x18422: 0x4003e020, 0x18423: 0x4004ea20, + 0x18424: 0x4027de20, 0x18425: 0x4004ec20, 0x18426: 0x4004e620, 0x18427: 0x4003d220, + 0x18428: 0x4003f420, 0x18429: 0x4003f620, 0x1842a: 0x4004d820, 0x1842b: 0x40093820, + 0x1842c: 0x40024020, 0x1842d: 0x40021a20, 0x1842e: 0x4002e420, 0x1842f: 0x4004e220, + 0x18430: 0x4029cc20, 0x18431: 0x4029ce20, 0x18432: 0x4029d020, 0x18433: 0x4029d220, + 0x18434: 0x4029d420, 0x18435: 0x4029d620, 0x18436: 0x4029d820, 0x18437: 0x4029da20, + 0x18438: 0x4029dc20, 0x18439: 0x4029de20, 0x1843a: 0x40026c20, 0x1843b: 0x40026220, + 0x1843c: 0x40094020, 0x1843d: 0x40094220, 0x1843e: 0x40094420, 0x1843f: 0x4002c420, + // Block 0x611, offset 0x18440 + 0x18440: 0x4004d620, 0x18441: 0x002bde88, 0x18442: 0x002c0a88, 0x18443: 0x002c3a88, + 0x18444: 0x002c6288, 0x18445: 0x002c9888, 0x18446: 0x002d0888, 0x18447: 0x002d2288, + 0x18448: 0x002d6888, 0x18449: 0x002d9a88, 0x1844a: 0x002dcc88, 0x1844b: 0x002dfe88, + 0x1844c: 0xc0030002, 0x1844d: 0x002e8288, 0x1844e: 0x002e9e88, 0x1844f: 0x002ee288, + 0x18450: 0x002f2c88, 0x18451: 0x002f5688, 0x18452: 0x002f7a88, 0x18453: 0x002fe688, + 0x18454: 0x00302c88, 0x18455: 0x00306c88, 0x18456: 0x0030be88, 0x18457: 0x0030e288, + 0x18458: 0x0030f688, 0x18459: 0x00310088, 0x1845a: 0x00312a88, 0x1845b: 0x4003f820, + 0x1845c: 0x4004e420, 0x1845d: 0x4003fa20, 0x1845e: 0x40062420, 0x1845f: 0x40021620, + 0x18460: 0x40061e20, 0x18461: 0xcfa39ac2, 0x18462: 0x402c0a20, 0x18463: 0xcfa809b1, + 0x18464: 0x402c6220, 0x18465: 0xcfaa9b41, 0x18466: 0x402d0820, 0x18467: 0x402d2220, + 0x18468: 0x402d6820, 0x18469: 0xcfac9b51, 0x1846a: 0x402dcc20, 0x1846b: 0x402dfe20, + 0x1846c: 0xc0000002, 0x1846d: 0x402e8220, 0x1846e: 0x402e9e20, 0x1846f: 0xcfae9b62, + 0x18470: 0x402f2c20, 0x18471: 0x402f5620, 0x18472: 0x402f7a20, 0x18473: 0xcfb39be1, + 0x18474: 0x40302c20, 0x18475: 0xcfb59c02, 0x18476: 0x4030be20, 0x18477: 0x4030e220, + 0x18478: 0x4030f620, 0x18479: 0x40310020, 0x1847a: 0x40312a20, 0x1847b: 0x4003fc20, + 0x1847c: 0x40094820, 0x1847d: 0x4003fe20, 0x1847e: 0x40094c20, 0x1847f: 0xa0000000, + // Block 0x612, offset 0x18480 + 0x18480: 0xe00008f5, 0x18481: 0xe00008ef, 0x18482: 0xe0000921, 0x18483: 0xe0000969, + 0x18484: 0xe000095b, 0x18485: 0xe000094d, 0x18486: 0xe00009dd, 0x18487: 0xe0000a53, + 0x18488: 0xe0000ae8, 0x18489: 0xe0000ae2, 0x1848a: 0xe0000af4, 0x1848b: 0xe0000b20, + 0x1848c: 0xe0000c2b, 0x1848d: 0xe0000c25, 0x1848e: 0xe0000c37, 0x1848f: 0xe0000c43, + 0x18490: 0xe0000ab3, 0x18491: 0xe0000d63, 0x18492: 0xe0000d9a, 0x18493: 0xe0000d94, + 0x18494: 0xe0000da6, 0x18495: 0xe0000de6, 0x18496: 0xe0000dd2, 0x18497: 0x40093e20, + 0x18498: 0xe0000e12, 0x18499: 0xe0000fe1, 0x1849a: 0xe0000fdb, 0x1849b: 0xe0000fed, + 0x1849c: 0xe0000fff, 0x1849d: 0xe0001102, 0x1849e: 0x00318888, 0x1849f: 0xe0000f7b, + 0x184a0: 0xe00008f2, 0x184a1: 0xe00008ec, 0x184a2: 0xe000091e, 0x184a3: 0xe0000966, + 0x184a4: 0xcfa69b21, 0x184a5: 0xe000094a, 0x184a6: 0xe00009d5, 0x184a7: 0xe0000a4d, + 0x184a8: 0xe0000ae5, 0x184a9: 0xe0000adf, 0x184aa: 0xe0000af1, 0x184ab: 0xe0000b1d, + 0x184ac: 0xe0000c28, 0x184ad: 0xe0000c22, 0x184ae: 0xe0000c34, 0x184af: 0xe0000c40, + 0x184b0: 0xe0000aad, 0x184b1: 0xe0000d60, 0x184b2: 0xe0000d97, 0x184b3: 0xe0000d91, + 0x184b4: 0xe0000da3, 0x184b5: 0xe0000de3, 0x184b6: 0xcfb19bc1, 0x184b7: 0x40093c20, + 0x184b8: 0xe0000e0f, 0x184b9: 0xe0000fde, 0x184ba: 0xe0000fd8, 0x184bb: 0xe0000fea, + 0x184bc: 0xcfb89c61, 0x184bd: 0xe00010ff, 0x184be: 0x40318820, 0x184bf: 0xe0001114, + // Block 0x613, offset 0x184c0 + 0x184c0: 0xa0000000, 0x184c1: 0xa0000000, 0x184c2: 0xa0000000, 0x184c3: 0xa0000000, + 0x184c4: 0xa0000000, 0x184c5: 0xa0000000, 0x184c6: 0xa0000000, 0x184c7: 0xa0000000, + 0x184c8: 0xa0000000, 0x184c9: 0x40020020, 0x184ca: 0x40020220, 0x184cb: 0x40020420, + 0x184cc: 0x40020620, 0x184cd: 0x40020820, 0x184ce: 0xa0000000, 0x184cf: 0xa0000000, + 0x184d0: 0xa0000000, 0x184d1: 0xa0000000, 0x184d2: 0xa0000000, 0x184d3: 0xa0000000, + 0x184d4: 0xa0000000, 0x184d5: 0xa0000000, 0x184d6: 0xa0000000, 0x184d7: 0xa0000000, + 0x184d8: 0xa0000000, 0x184d9: 0xa0000000, 0x184da: 0xa0000000, 0x184db: 0xa0000000, + 0x184dc: 0xa0000000, 0x184dd: 0xa0000000, 0x184de: 0xa0000000, 0x184df: 0xa0000000, + 0x184e0: 0x40021220, 0x184e1: 0x4002ba20, 0x184e2: 0x4003e020, 0x184e3: 0x4004ea20, + 0x184e4: 0x4027de20, 0x184e5: 0x4004ec20, 0x184e6: 0x4004e620, 0x184e7: 0x4003d220, + 0x184e8: 0x4003f420, 0x184e9: 0x4003f620, 0x184ea: 0x4004d820, 0x184eb: 0x40093820, + 0x184ec: 0x40024020, 0x184ed: 0x40021a20, 0x184ee: 0x4002e420, 0x184ef: 0x4004e220, + 0x184f0: 0x4029cc20, 0x184f1: 0x4029ce20, 0x184f2: 0x4029d020, 0x184f3: 0x4029d220, + 0x184f4: 0x4029d420, 0x184f5: 0x4029d620, 0x184f6: 0x4029d820, 0x184f7: 0x4029da20, + 0x184f8: 0x4029dc20, 0x184f9: 0x4029de20, 0x184fa: 0x40026c20, 0x184fb: 0x40026220, + 0x184fc: 0x40094020, 0x184fd: 0x40094220, 0x184fe: 0x40094420, 0x184ff: 0x4002c420, + // Block 0x614, offset 0x18500 + 0x18500: 0x4004d620, 0x18501: 0x002bde88, 0x18502: 0x002c0a88, 0x18503: 0x002c3a88, + 0x18504: 0x002c6288, 0x18505: 0xce6d3081, 0x18506: 0x002d0888, 0x18507: 0xc52b2692, + 0x18508: 0x002d6888, 0x18509: 0x002d9a88, 0x1850a: 0x002dcc88, 0x1850b: 0x002dfe88, + 0x1850c: 0xc0030002, 0x1850d: 0x002e8288, 0x1850e: 0x002e9e88, 0x1850f: 0xc33f3081, + 0x18510: 0x002f2c88, 0x18511: 0x002f5688, 0x18512: 0x002f7a88, 0x18513: 0xc3433081, + 0x18514: 0x00302c88, 0x18515: 0x00306c88, 0x18516: 0x0030be88, 0x18517: 0x0030e288, + 0x18518: 0x0030f688, 0x18519: 0x00310088, 0x1851a: 0x00312a88, 0x1851b: 0x4003f820, + 0x1851c: 0x4004e420, 0x1851d: 0x4003fa20, 0x1851e: 0x40062420, 0x1851f: 0x40021620, + 0x18520: 0x40061e20, 0x18521: 0x402bde20, 0x18522: 0x402c0a20, 0x18523: 0x402c3a20, + 0x18524: 0x402c6220, 0x18525: 0xce6b3081, 0x18526: 0x402d0820, 0x18527: 0xc3372681, + 0x18528: 0x402d6820, 0x18529: 0x402d9a20, 0x1852a: 0x402dcc20, 0x1852b: 0x402dfe20, + 0x1852c: 0xc0000002, 0x1852d: 0x402e8220, 0x1852e: 0x402e9e20, 0x1852f: 0xc33d3081, + 0x18530: 0x402f2c20, 0x18531: 0x402f5620, 0x18532: 0x402f7a20, 0x18533: 0xc3413081, + 0x18534: 0x40302c20, 0x18535: 0x40306c20, 0x18536: 0x4030be20, 0x18537: 0x4030e220, + 0x18538: 0x4030f620, 0x18539: 0x40310020, 0x1853a: 0x40312a20, 0x1853b: 0x4003fc20, + 0x1853c: 0x40094820, 0x1853d: 0x4003fe20, 0x1853e: 0x40094c20, 0x1853f: 0xa0000000, + // Block 0x615, offset 0x18540 + 0x18540: 0xe0000d24, 0x18541: 0xe0000d21, 0x18542: 0xe0000d2a, 0x18543: 0xe0000d27, + 0x18544: 0xe0000d69, 0x18545: 0xe0000d66, 0x18546: 0xe0000d7b, 0x18547: 0xe0000d78, + 0x18548: 0xe0000d87, 0x18549: 0xe0000d84, 0x1854a: 0xe0000d81, 0x1854b: 0xe0000d7e, + 0x1854c: 0xe0000ded, 0x1854d: 0xe0000de9, 0x1854e: 0xe0000df5, 0x1854f: 0xe0000df1, + 0x18550: 0xe0000e3d, 0x18551: 0xe0000e39, 0x18552: 0xe0000e35, 0x18553: 0xe0000e31, + 0x18554: 0xe0000ea7, 0x18555: 0xe0000ea4, 0x18556: 0xe0000ead, 0x18557: 0xe0000eaa, + 0x18558: 0xe0000ed6, 0x18559: 0xe0000ed3, 0x1855a: 0xe0000ef4, 0x1855b: 0xe0000ef1, + 0x1855c: 0xe0000efb, 0x1855d: 0xe0000ef7, 0x1855e: 0xe0000f02, 0x1855f: 0xe0000eff, + 0x18560: 0xe0000f41, 0x18561: 0xe0000f3e, 0x18562: 0x002fe883, 0x18563: 0x402fe820, + 0x18564: 0xe0000f26, 0x18565: 0xe0000f22, 0x18566: 0xe0000f3a, 0x18567: 0xe0000f36, + 0x18568: 0xe000296a, 0x18569: 0xe0002967, 0x1856a: 0xe0000f93, 0x1856b: 0xe0000f90, + 0x1856c: 0xe0000f9f, 0x1856d: 0xe0000f9c, 0x1856e: 0xe0000fb1, 0x1856f: 0xe0000fae, + 0x18570: 0xe0000fab, 0x18571: 0xe0000fa8, 0x18572: 0xe0001093, 0x18573: 0xe0001090, + 0x18574: 0xe000109f, 0x18575: 0xe000109c, 0x18576: 0xe0001099, 0x18577: 0xe0001096, + 0x18578: 0xe0001032, 0x18579: 0xe000102e, 0x1857a: 0xe0001046, 0x1857b: 0xe0001042, + 0x1857c: 0xe00010a9, 0x1857d: 0xe00010a6, 0x1857e: 0xe00010af, 0x1857f: 0xe00010ac, + // Block 0x616, offset 0x18580 + 0x18580: 0xe00010d2, 0x18581: 0xe00010cf, 0x18582: 0xe00010cc, 0x18583: 0xe00010c9, + 0x18584: 0xe00010e1, 0x18585: 0xe00010de, 0x18586: 0xe00010e7, 0x18587: 0xe00010e4, + 0x18588: 0xe00010ed, 0x18589: 0xe00010ea, 0x1858a: 0xe00010fc, 0x1858b: 0xe00010f9, + 0x1858c: 0xe00010f6, 0x1858d: 0xe00010f3, 0x1858e: 0xe0001123, 0x1858f: 0xe0001120, + 0x18590: 0xe0001141, 0x18591: 0xe000113e, 0x18592: 0xe0001153, 0x18593: 0xe0001150, + 0x18594: 0xe0001159, 0x18595: 0xe0001156, 0x18596: 0xe0000c15, 0x18597: 0xe0000f8d, + 0x18598: 0xe00010db, 0x18599: 0xe0001111, 0x1859a: 0xf0000404, 0x1859b: 0xe0000f70, + 0x1859c: 0x40300420, 0x1859d: 0x40300620, 0x1859e: 0xe0000f7f, 0x1859f: 0x402c9620, + 0x185a0: 0xe000099b, 0x185a1: 0xe0000998, 0x185a2: 0xe0000989, 0x185a3: 0xe0000986, + 0x185a4: 0xe0000928, 0x185a5: 0xe0000924, 0x185a6: 0xe0000930, 0x185a7: 0xe000092c, + 0x185a8: 0xe0000940, 0x185a9: 0xe000093c, 0x185aa: 0xe0000938, 0x185ab: 0xe0000934, + 0x185ac: 0xe00009aa, 0x185ad: 0xe00009a6, 0x185ae: 0xe0000902, 0x185af: 0xe00008fe, + 0x185b0: 0xe000090a, 0x185b1: 0xe0000906, 0x185b2: 0xe000091a, 0x185b3: 0xe0000916, + 0x185b4: 0xe0000912, 0x185b5: 0xe000090e, 0x185b6: 0xe00009a2, 0x185b7: 0xe000099e, + 0x185b8: 0x002c9a83, 0x185b9: 0x402c9a20, 0x185ba: 0xe0000b5c, 0x185bb: 0xe0000b59, + 0x185bc: 0xe0000b26, 0x185bd: 0xe0000b23, 0x185be: 0xe0000afb, 0x185bf: 0xe0000af7, + // Block 0x617, offset 0x185c0 + 0x185c0: 0xe0000b03, 0x185c1: 0xe0000aff, 0x185c2: 0xe0000b13, 0x185c3: 0xe0000b0f, + 0x185c4: 0xe0000b0b, 0x185c5: 0xe0000b07, 0x185c6: 0xe000b3c5, 0x185c7: 0xe000b3c2, + 0x185c8: 0xe0000c66, 0x185c9: 0xe0000c63, 0x185ca: 0xe0000c78, 0x185cb: 0xe0000c75, + 0x185cc: 0x002ee483, 0x185cd: 0x402ee420, 0x185ce: 0xe0000e44, 0x185cf: 0xe0000e41, + 0x185d0: 0xe0000dad, 0x185d1: 0xe0000da9, 0x185d2: 0xe0000db5, 0x185d3: 0xe0000db1, + 0x185d4: 0xe0000dc5, 0x185d5: 0xe0000dc1, 0x185d6: 0xe0000dbd, 0x185d7: 0xe0000db9, + 0x185d8: 0xe0003c96, 0x185d9: 0xe0003c93, 0x185da: 0xe0000e5d, 0x185db: 0xe0000e59, + 0x185dc: 0xe0000e65, 0x185dd: 0xe0000e61, 0x185de: 0xe0000e75, 0x185df: 0xe0000e71, + 0x185e0: 0xe0000e6d, 0x185e1: 0xe0000e69, 0x185e2: 0xe0003c9c, 0x185e3: 0xe0003c99, + 0x185e4: 0xe000108d, 0x185e5: 0xe000108a, 0x185e6: 0xe000104d, 0x185e7: 0xe000104a, + 0x185e8: 0xe0001066, 0x185e9: 0xe0001062, 0x185ea: 0xe000106e, 0x185eb: 0xe000106a, + 0x185ec: 0xe000107e, 0x185ed: 0xe000107a, 0x185ee: 0xe0001076, 0x185ef: 0xe0001072, + 0x185f0: 0xe0001086, 0x185f1: 0xe0001082, 0x185f2: 0xe0001108, 0x185f3: 0xe0001105, + 0x185f4: 0xe0001135, 0x185f5: 0xe0001132, 0x185f6: 0xe000112f, 0x185f7: 0xe000112c, + 0x185f8: 0xe000111d, 0x185f9: 0xe000111a, 0x185fa: 0xe0000d0a, 0x185fb: 0xe0000d07, + 0x185fc: 0x0030d888, 0x185fd: 0x4030d820, 0x185fe: 0x00312088, 0x185ff: 0x40312020, + // Block 0x618, offset 0x18600 + 0x18600: 0xa0000000, 0x18601: 0xa0000000, 0x18602: 0xa0000000, 0x18603: 0xa0000000, + 0x18604: 0xa0000000, 0x18605: 0xa0000000, 0x18606: 0xa0000000, 0x18607: 0xa0000000, + 0x18608: 0xa0000000, 0x18609: 0x40020020, 0x1860a: 0x40020220, 0x1860b: 0x40020420, + 0x1860c: 0x40020620, 0x1860d: 0x40020820, 0x1860e: 0xa0000000, 0x1860f: 0xa0000000, + 0x18610: 0xa0000000, 0x18611: 0xa0000000, 0x18612: 0xa0000000, 0x18613: 0xa0000000, + 0x18614: 0xa0000000, 0x18615: 0xa0000000, 0x18616: 0xa0000000, 0x18617: 0xa0000000, + 0x18618: 0xa0000000, 0x18619: 0xa0000000, 0x1861a: 0xa0000000, 0x1861b: 0xa0000000, + 0x1861c: 0xa0000000, 0x1861d: 0xa0000000, 0x1861e: 0xa0000000, 0x1861f: 0xa0000000, + 0x18620: 0x40021220, 0x18621: 0x4002ba20, 0x18622: 0x4003e020, 0x18623: 0x4004ea20, + 0x18624: 0x4027de20, 0x18625: 0x4004ec20, 0x18626: 0x4004e620, 0x18627: 0x4003d220, + 0x18628: 0x4003f420, 0x18629: 0x4003f620, 0x1862a: 0x4004d820, 0x1862b: 0x40093820, + 0x1862c: 0x40024020, 0x1862d: 0x40021a20, 0x1862e: 0x4002e420, 0x1862f: 0x4004e220, + 0x18630: 0x4029cc20, 0x18631: 0x4029ce20, 0x18632: 0x4029d020, 0x18633: 0x4029d220, + 0x18634: 0x4029d420, 0x18635: 0x4029d620, 0x18636: 0x4029d820, 0x18637: 0x4029da20, + 0x18638: 0x4029dc20, 0x18639: 0x4029de20, 0x1863a: 0x40026c20, 0x1863b: 0x40026220, + 0x1863c: 0x40094020, 0x1863d: 0x40094220, 0x1863e: 0x40094420, 0x1863f: 0x4002c420, + // Block 0x619, offset 0x18640 + 0x18640: 0x4004d620, 0x18641: 0xcfbf9c81, 0x18642: 0x002c0a88, 0x18643: 0x002c3a88, + 0x18644: 0x002c6288, 0x18645: 0xcfcd9cc1, 0x18646: 0x002d0888, 0x18647: 0x002d2288, + 0x18648: 0x002d6888, 0x18649: 0xcfe19c81, 0x1864a: 0x002dcc88, 0x1864b: 0x002dfe88, + 0x1864c: 0xc0030002, 0x1864d: 0xcfeb9c81, 0x1864e: 0xcff59c81, 0x1864f: 0xcfff9c81, + 0x18650: 0x002f2c88, 0x18651: 0x002f5688, 0x18652: 0x002f7a88, 0x18653: 0x002fe688, + 0x18654: 0x00302c88, 0x18655: 0xd00e9d81, 0x18656: 0x0030be88, 0x18657: 0x0030e288, + 0x18658: 0x0030f688, 0x18659: 0x00310088, 0x1865a: 0x00312a88, 0x1865b: 0x4003f820, + 0x1865c: 0x4004e420, 0x1865d: 0x4003fa20, 0x1865e: 0x40062420, 0x1865f: 0x40021620, + 0x18660: 0x40061e20, 0x18661: 0xcfba9c81, 0x18662: 0x402c0a20, 0x18663: 0x402c3a20, + 0x18664: 0x402c6220, 0x18665: 0xcfc49cc1, 0x18666: 0x402d0820, 0x18667: 0x402d2220, + 0x18668: 0x402d6820, 0x18669: 0xcfdc9c81, 0x1866a: 0x402dcc20, 0x1866b: 0x402dfe20, + 0x1866c: 0xc0000002, 0x1866d: 0xcfe69c81, 0x1866e: 0xcff09c81, 0x1866f: 0xcffa9c81, + 0x18670: 0x402f2c20, 0x18671: 0x402f5620, 0x18672: 0x402f7a20, 0x18673: 0x402fe620, + 0x18674: 0x40302c20, 0x18675: 0xd0049d81, 0x18676: 0x4030be20, 0x18677: 0x4030e220, + 0x18678: 0x4030f620, 0x18679: 0x40310020, 0x1867a: 0x40312a20, 0x1867b: 0x4003fc20, + 0x1867c: 0x40094820, 0x1867d: 0x4003fe20, 0x1867e: 0x40094c20, 0x1867f: 0xa0000000, + // Block 0x61a, offset 0x18680 + 0x18680: 0x002bde63, 0x18681: 0x002bde23, 0x18682: 0xe0000921, 0x18683: 0xe0000969, + 0x18684: 0xe000095b, 0x18685: 0xe000094d, 0x18686: 0xe00009dd, 0x18687: 0xe0000a53, + 0x18688: 0x002c9863, 0x18689: 0x002c9823, 0x1868a: 0xcfd99d51, 0x1868b: 0xe0000b20, + 0x1868c: 0x002d9a63, 0x1868d: 0x002d9a23, 0x1868e: 0xe0000c37, 0x1868f: 0xe0000c43, + 0x18690: 0xe0000ab3, 0x18691: 0xe0000d63, 0x18692: 0x002ee263, 0x18693: 0x002ee223, + 0x18694: 0xe0000da6, 0x18695: 0xe0000de6, 0x18696: 0xe0000dd2, 0x18697: 0x40093e20, + 0x18698: 0xe0000e12, 0x18699: 0x00306c63, 0x1869a: 0x00306c23, 0x1869b: 0xe0000fed, + 0x1869c: 0x00306d23, 0x1869d: 0xe0001102, 0x1869e: 0x00318888, 0x1869f: 0xe0000f7b, + 0x186a0: 0x402bde1f, 0x186a1: 0x402bde1d, 0x186a2: 0xe000091e, 0x186a3: 0xe0000966, + 0x186a4: 0xe0000958, 0x186a5: 0xe000094a, 0x186a6: 0xe00009d5, 0x186a7: 0xe0000a4d, + 0x186a8: 0x402c981f, 0x186a9: 0x402c981d, 0x186aa: 0xcfd69d51, 0x186ab: 0xe0000b1d, + 0x186ac: 0x402d9a1f, 0x186ad: 0x402d9a1d, 0x186ae: 0xe0000c34, 0x186af: 0xe0000c40, + 0x186b0: 0xe0000aad, 0x186b1: 0xe0000d60, 0x186b2: 0x402ee21f, 0x186b3: 0x402ee21d, + 0x186b4: 0xe0000da3, 0x186b5: 0xe0000de3, 0x186b6: 0xe0000dcf, 0x186b7: 0x40093c20, + 0x186b8: 0xe0000e0f, 0x186b9: 0x40306c1f, 0x186ba: 0x40306c1d, 0x186bb: 0xe0000fea, + 0x186bc: 0x40306c25, 0x186bd: 0xe00010ff, 0x186be: 0x40318820, 0x186bf: 0xe0001114, + // Block 0x61b, offset 0x186c0 + 0x186c0: 0x002bde03, 0x186c1: 0x402bde1c, 0x186c2: 0xe00008fb, 0x186c3: 0xe00008f8, + 0x186c4: 0xe000097d, 0x186c5: 0xe000097a, 0x186c6: 0xe0000a38, 0x186c7: 0xe0000a35, + 0x186c8: 0xe0000a3e, 0x186c9: 0xe0000a3b, 0x186ca: 0xe0000a4a, 0x186cb: 0xe0000a47, + 0x186cc: 0xe0000a44, 0x186cd: 0xe0000a41, 0x186ce: 0xe0000a86, 0x186cf: 0xe0000a83, + 0x186d0: 0xe0000aaa, 0x186d1: 0xe0000aa7, 0x186d2: 0x002c9803, 0x186d3: 0x402c981c, + 0x186d4: 0xe0000aee, 0x186d5: 0xe0000aeb, 0x186d6: 0xe0000b2c, 0x186d7: 0xe0000b29, + 0x186d8: 0xe0000b40, 0x186d9: 0xe0000b3d, 0x186da: 0x002c9843, 0x186db: 0x402c981e, + 0x186dc: 0xe0000bb8, 0x186dd: 0xe0000bb5, 0x186de: 0xe0000bb2, 0x186df: 0xe0000baf, + 0x186e0: 0xe0000bc4, 0x186e1: 0xe0000bc1, 0x186e2: 0xe0000bca, 0x186e3: 0xe0000bc7, + 0x186e4: 0xe0000bee, 0x186e5: 0xe0000beb, 0x186e6: 0xe0000c1b, 0x186e7: 0xe0000c18, + 0x186e8: 0xe0000c51, 0x186e9: 0xe0000c4e, 0x186ea: 0x002d9a03, 0x186eb: 0x402d9a1c, + 0x186ec: 0xe0000c31, 0x186ed: 0xe0000c2e, 0x186ee: 0xe0000c5a, 0x186ef: 0xe0000c57, + 0x186f0: 0xe0000c54, 0x186f1: 0x402da220, 0x186f2: 0xf0000a0a, 0x186f3: 0xf0000404, + 0x186f4: 0xe0000c8a, 0x186f5: 0xe0000c87, 0x186f6: 0xe0000c9f, 0x186f7: 0xe0000c9c, + 0x186f8: 0x402f7220, 0x186f9: 0xe0000ccc, 0x186fa: 0xe0000cc9, 0x186fb: 0xe0000cd8, + 0x186fc: 0xe0000cd5, 0x186fd: 0xe0000cd2, 0x186fe: 0xe0000ccf, 0x186ff: 0xe0000d04, + // Block 0x61c, offset 0x18700 + 0x18700: 0xe0000cfe, 0x18701: 0xe0000cf8, 0x18702: 0xe0000cf5, 0x18703: 0x002e9e23, + 0x18704: 0x402e9e1d, 0x18705: 0xe0000d6f, 0x18706: 0xe0000d6c, 0x18707: 0x002e9e43, + 0x18708: 0x402e9e1e, 0x18709: 0xf0000404, 0x1870a: 0x002eda88, 0x1870b: 0x402eda20, + 0x1870c: 0x002ee203, 0x1870d: 0x402ee21c, 0x1870e: 0xe0000da0, 0x1870f: 0xe0000d9d, + 0x18710: 0xe0000de0, 0x18711: 0xe0000ddd, 0x18712: 0xe0000e93, 0x18713: 0xe0000e8f, + 0x18714: 0xe0000eca, 0x18715: 0xe0000ec7, 0x18716: 0xe0000edc, 0x18717: 0xe0000ed9, + 0x18718: 0xe0000ed0, 0x18719: 0xe0000ecd, 0x1871a: 0xe0000f1f, 0x1871b: 0xe0000f1c, + 0x1871c: 0xe0000f2d, 0x1871d: 0xe0000f2a, 0x1871e: 0xe0000f47, 0x1871f: 0xe0000f44, + 0x18720: 0xe0000f33, 0x18721: 0xe0000f30, 0x18722: 0xe0000f99, 0x18723: 0xe0000f96, + 0x18724: 0xe0000f8a, 0x18725: 0xe0000f87, 0x18726: 0x00303688, 0x18727: 0x40303620, + 0x18728: 0xe000102b, 0x18729: 0xe0001028, 0x1872a: 0x00306c03, 0x1872b: 0x40306c1c, + 0x1872c: 0xe0000fe7, 0x1872d: 0xe0000fe4, 0x1872e: 0xe0000ff9, 0x1872f: 0xe0000ff6, + 0x18730: 0xe0001025, 0x18731: 0xe0001022, 0x18732: 0xe0001039, 0x18733: 0xe0001036, + 0x18734: 0xe00010d8, 0x18735: 0xe00010d5, 0x18736: 0xe000110e, 0x18737: 0xe000110b, + 0x18738: 0xe0001117, 0x18739: 0xe000113b, 0x1873a: 0xe0001138, 0x1873b: 0xe000114d, + 0x1873c: 0xe000114a, 0x1873d: 0xe0001147, 0x1873e: 0xe0001144, 0x1873f: 0xe0000f64, + // Block 0x61d, offset 0x18740 + 0x18740: 0x40321220, 0x18741: 0x40321a20, 0x18742: 0x40322220, 0x18743: 0x40322a20, + 0x18744: 0xe0000ad5, 0x18745: 0xe0000ad1, 0x18746: 0xe0000acd, 0x18747: 0xf0000a0a, + 0x18748: 0xf000040a, 0x18749: 0xf0000404, 0x1874a: 0xf0000a0a, 0x1874b: 0xf000040a, + 0x1874c: 0xf0000404, 0x1874d: 0x002bde43, 0x1874e: 0x402bde1e, 0x1874f: 0x002d9a43, + 0x18750: 0x402d9a1e, 0x18751: 0x002ee243, 0x18752: 0x402ee21e, 0x18753: 0x00306c43, + 0x18754: 0x40306c1e, 0x18755: 0x00306ca3, 0x18756: 0x40306c21, 0x18757: 0x00306cc3, + 0x18758: 0x40306c22, 0x18759: 0x00306ce3, 0x1875a: 0x40306c23, 0x1875b: 0x00306d03, + 0x1875c: 0x40306c24, 0x1875d: 0x402cae20, 0x1875e: 0xe000b51f, 0x1875f: 0xe000b51c, + 0x18760: 0xe000b525, 0x18761: 0xe000b522, 0x18762: 0xe00009f4, 0x18763: 0xe00009ef, + 0x18764: 0x002d3a88, 0x18765: 0x402d3a20, 0x18766: 0xe0000bbe, 0x18767: 0xe0000bbb, + 0x18768: 0xe0000c99, 0x18769: 0xe0000c96, 0x1876a: 0xe0000e20, 0x1876b: 0xe0000e1d, + 0x1876c: 0xe000b579, 0x1876d: 0xe000b576, 0x1876e: 0xe0001162, 0x1876f: 0xe000115f, + 0x18770: 0xe0000c8d, 0x18771: 0xf0000a0a, 0x18772: 0xf000040a, 0x18773: 0xf0000404, + 0x18774: 0xe0000bac, 0x18775: 0xe0000ba9, 0x18776: 0x002d7888, 0x18777: 0x00319488, + 0x18778: 0x002e9e63, 0x18779: 0x402e9e1f, 0x1877a: 0xe000b537, 0x1877b: 0xe000b534, + 0x1877c: 0xe00009ea, 0x1877d: 0xe00009e5, 0x1877e: 0xe0000e19, 0x1877f: 0xe0000e15, + // Block 0x61e, offset 0x18780 + 0x18780: 0xe000098f, 0x18781: 0xe000098c, 0x18782: 0xe0000995, 0x18783: 0xe0000992, + 0x18784: 0xe0000b62, 0x18785: 0xe0000b5f, 0x18786: 0xe0000b68, 0x18787: 0xe0000b65, + 0x18788: 0xe0000c6c, 0x18789: 0xe0000c69, 0x1878a: 0xe0000c72, 0x1878b: 0xe0000c6f, + 0x1878c: 0xe0000e4a, 0x1878d: 0xe0000e47, 0x1878e: 0xe0000e50, 0x1878f: 0xe0000e4d, + 0x18790: 0xe0000ee8, 0x18791: 0xe0000ee5, 0x18792: 0xe0000eee, 0x18793: 0xe0000eeb, + 0x18794: 0xe0001053, 0x18795: 0xe0001050, 0x18796: 0xe0001059, 0x18797: 0xe0001056, + 0x18798: 0xe0000f61, 0x18799: 0xe0000f5e, 0x1879a: 0xe0000fa5, 0x1879b: 0xe0000fa2, + 0x1879c: 0x00312288, 0x1879d: 0x40312220, 0x1879e: 0xe0000bf4, 0x1879f: 0xe0000bf1, + 0x187a0: 0x002ebc88, 0x187a1: 0x402c8c20, 0x187a2: 0x002f2288, 0x187a3: 0x402f2220, + 0x187a4: 0x00314088, 0x187a5: 0x40314020, 0x187a6: 0xe000096f, 0x187a7: 0xe000096c, + 0x187a8: 0xe0000b32, 0x187a9: 0xe0000b2f, 0x187aa: 0xe000b567, 0x187ab: 0xe000b564, + 0x187ac: 0xe000b56d, 0x187ad: 0xe000b56a, 0x187ae: 0xe0000e04, 0x187af: 0xe0000e01, + 0x187b0: 0xe000b573, 0x187b1: 0xe000b570, 0x187b2: 0xe0001129, 0x187b3: 0xe0001126, + 0x187b4: 0x402e5e20, 0x187b5: 0x402ed020, 0x187b6: 0x40305a20, 0x187b7: 0x402dd420, + 0x187b8: 0xe0000abf, 0x187b9: 0xe0000ec4, 0x187ba: 0x002be888, 0x187bb: 0x002c4488, + 0x187bc: 0x402c4420, 0x187bd: 0x002e3888, 0x187be: 0x00303e88, 0x187bf: 0x402ffc20, + // Block 0x61f, offset 0x187c0 + 0x187c0: 0xe00009b1, 0x187c1: 0xe00009ae, 0x187c2: 0xe0000a22, 0x187c3: 0xe0000a1f, + 0x187c4: 0xe0000a28, 0x187c5: 0xe0000a25, 0x187c6: 0xe0000a2e, 0x187c7: 0xe0000a2b, + 0x187c8: 0xe0000a5a, 0x187c9: 0xe0000a56, 0x187ca: 0xe0000a8c, 0x187cb: 0xe0000a89, + 0x187cc: 0xe0000a98, 0x187cd: 0xe0000a95, 0x187ce: 0xe0000aa4, 0x187cf: 0xe0000aa1, + 0x187d0: 0xe0000a92, 0x187d1: 0xe0000a8f, 0x187d2: 0xe0000a9e, 0x187d3: 0xe0000a9b, + 0x187d4: 0xe000b54f, 0x187d5: 0xe000b54c, 0x187d6: 0xe000b549, 0x187d7: 0xe000b546, + 0x187d8: 0xe0000b7c, 0x187d9: 0xe0000b79, 0x187da: 0xe0000b82, 0x187db: 0xe0000b7f, + 0x187dc: 0xe0000b39, 0x187dd: 0xe0000b35, 0x187de: 0xe0000b8c, 0x187df: 0xe0000b89, + 0x187e0: 0xe0000bd0, 0x187e1: 0xe0000bcd, 0x187e2: 0xe0000c00, 0x187e3: 0xe0000bfd, + 0x187e4: 0xe0000c0c, 0x187e5: 0xe0000c09, 0x187e6: 0xe0000bfa, 0x187e7: 0xe0000bf7, + 0x187e8: 0xe0000c06, 0x187e9: 0xe0000c03, 0x187ea: 0xe0000c12, 0x187eb: 0xe0000c0f, + 0x187ec: 0xe0000c7e, 0x187ed: 0xe0000c7b, 0x187ee: 0xe000b555, 0x187ef: 0xe000b552, + 0x187f0: 0xe0000c93, 0x187f1: 0xe0000c90, 0x187f2: 0xe0000cab, 0x187f3: 0xe0000ca8, + 0x187f4: 0xe0000cb1, 0x187f5: 0xe0000cae, 0x187f6: 0xe0000cde, 0x187f7: 0xe0000cdb, + 0x187f8: 0xe0000ce5, 0x187f9: 0xe0000ce1, 0x187fa: 0xe0000cf2, 0x187fb: 0xe0000cef, + 0x187fc: 0xe0000cec, 0x187fd: 0xe0000ce9, 0x187fe: 0x002e8223, 0x187ff: 0x402e821d, + // Block 0x620, offset 0x18800 + 0x18800: 0xe0000d24, 0x18801: 0xe0000d21, 0x18802: 0xe0000d2a, 0x18803: 0xe0000d27, + 0x18804: 0xe0000d69, 0x18805: 0xe0000d66, 0x18806: 0xe0000d7b, 0x18807: 0xe0000d78, + 0x18808: 0xe0000d87, 0x18809: 0xe0000d84, 0x1880a: 0xe0000d81, 0x1880b: 0xe0000d7e, + 0x1880c: 0xe000b585, 0x1880d: 0xe000b582, 0x1880e: 0xe0000df5, 0x1880f: 0xe0000df1, + 0x18810: 0xe000b561, 0x18811: 0xe000b55e, 0x18812: 0xe000b55b, 0x18813: 0xe000b558, + 0x18814: 0xe0000ea7, 0x18815: 0xe0000ea4, 0x18816: 0xe0000ead, 0x18817: 0xe0000eaa, + 0x18818: 0xe0000ed6, 0x18819: 0xe0000ed3, 0x1881a: 0xe0000ef4, 0x1881b: 0xe0000ef1, + 0x1881c: 0xe0000efb, 0x1881d: 0xe0000ef7, 0x1881e: 0xe0000f02, 0x1881f: 0xe0000eff, + 0x18820: 0xe0000f41, 0x18821: 0xe0000f3e, 0x18822: 0xe0000f53, 0x18823: 0xe0000f50, + 0x18824: 0xe0000f26, 0x18825: 0xe0000f22, 0x18826: 0xe0000f3a, 0x18827: 0xe0000f36, + 0x18828: 0xe0000f5a, 0x18829: 0xe0000f56, 0x1882a: 0xe0000f93, 0x1882b: 0xe0000f90, + 0x1882c: 0xe0000f9f, 0x1882d: 0xe0000f9c, 0x1882e: 0xe0000fb1, 0x1882f: 0xe0000fae, + 0x18830: 0xe0000fab, 0x18831: 0xe0000fa8, 0x18832: 0xe0001093, 0x18833: 0xe0001090, + 0x18834: 0xe000109f, 0x18835: 0xe000109c, 0x18836: 0xe0001099, 0x18837: 0xe0001096, + 0x18838: 0xe000b5a3, 0x18839: 0xe000b5a0, 0x1883a: 0xe000b59d, 0x1883b: 0xe000b59a, + 0x1883c: 0xe00010a9, 0x1883d: 0xe00010a6, 0x1883e: 0xe00010af, 0x1883f: 0xe00010ac, + // Block 0x621, offset 0x18840 + 0x18840: 0xe00010d2, 0x18841: 0xe00010cf, 0x18842: 0xe00010cc, 0x18843: 0xe00010c9, + 0x18844: 0xe00010e1, 0x18845: 0xe00010de, 0x18846: 0xe00010e7, 0x18847: 0xe00010e4, + 0x18848: 0xe00010ed, 0x18849: 0xe00010ea, 0x1884a: 0xe00010fc, 0x1884b: 0xe00010f9, + 0x1884c: 0xe00010f6, 0x1884d: 0xe00010f3, 0x1884e: 0xe0001123, 0x1884f: 0xe0001120, + 0x18850: 0xe0001141, 0x18851: 0xe000113e, 0x18852: 0xe0001153, 0x18853: 0xe0001150, + 0x18854: 0xe0001159, 0x18855: 0xe0001156, 0x18856: 0xe0000c15, 0x18857: 0xe0000f8d, + 0x18858: 0xe00010db, 0x18859: 0xe0001111, 0x1885a: 0xf0000404, 0x1885b: 0xe0000f70, + 0x1885c: 0x40300420, 0x1885d: 0x40300620, 0x1885e: 0xe0000f7f, 0x1885f: 0x402c9620, + 0x18860: 0xe000099b, 0x18861: 0xe0000998, 0x18862: 0xe0000989, 0x18863: 0xe0000986, + 0x18864: 0xe000b531, 0x18865: 0xe000b52e, 0x18866: 0xe000b543, 0x18867: 0xe000b540, + 0x18868: 0xe0000940, 0x18869: 0xe000093c, 0x1886a: 0xe0000938, 0x1886b: 0xe0000934, + 0x1886c: 0xe00009aa, 0x1886d: 0xe00009a6, 0x1886e: 0xe000b52b, 0x1886f: 0xe000b528, + 0x18870: 0xe000b53d, 0x18871: 0xe000b53a, 0x18872: 0xe000091a, 0x18873: 0xe0000916, + 0x18874: 0xe0000912, 0x18875: 0xe000090e, 0x18876: 0xe00009a2, 0x18877: 0xe000099e, + 0x18878: 0xe0000b6e, 0x18879: 0xe0000b6b, 0x1887a: 0xe0000b5c, 0x1887b: 0xe0000b59, + 0x1887c: 0xe0000b26, 0x1887d: 0xe0000b23, 0x1887e: 0x002c98c3, 0x1887f: 0x402c9822, + // Block 0x622, offset 0x18880 + 0x18880: 0x002c9903, 0x18881: 0x402c9824, 0x18882: 0xe0000b13, 0x18883: 0xe0000b0f, + 0x18884: 0xe0000b0b, 0x18885: 0xe0000b07, 0x18886: 0xe0000b75, 0x18887: 0xe0000b71, + 0x18888: 0xe0000c66, 0x18889: 0xe0000c63, 0x1888a: 0xe0000c78, 0x1888b: 0xe0000c75, + 0x1888c: 0xe0000e84, 0x1888d: 0xe0000e81, 0x1888e: 0xe0000e44, 0x1888f: 0xe0000e41, + 0x18890: 0xe000b57f, 0x18891: 0xe000b57c, 0x18892: 0xe000b591, 0x18893: 0xe000b58e, + 0x18894: 0xe0000dc5, 0x18895: 0xe0000dc1, 0x18896: 0xe0000dbd, 0x18897: 0xe0000db9, + 0x18898: 0xe0000e8b, 0x18899: 0xe0000e87, 0x1889a: 0xe000b58b, 0x1889b: 0xe000b588, + 0x1889c: 0xe000b597, 0x1889d: 0xe000b594, 0x1889e: 0xe0000e75, 0x1889f: 0xe0000e71, + 0x188a0: 0xe0000e6d, 0x188a1: 0xe0000e69, 0x188a2: 0xe0000e7d, 0x188a3: 0xe0000e79, + 0x188a4: 0xe000108d, 0x188a5: 0xe000108a, 0x188a6: 0xe000104d, 0x188a7: 0xe000104a, + 0x188a8: 0xe000b5a9, 0x188a9: 0xe000b5a6, 0x188aa: 0xe000b5af, 0x188ab: 0xe000b5ac, + 0x188ac: 0xe000107e, 0x188ad: 0xe000107a, 0x188ae: 0xe0001076, 0x188af: 0xe0001072, + 0x188b0: 0xe0001086, 0x188b1: 0xe0001082, 0x188b2: 0xe0001108, 0x188b3: 0xe0001105, + 0x188b4: 0xe0001135, 0x188b5: 0xe0001132, 0x188b6: 0xe000112f, 0x188b7: 0xe000112c, + 0x188b8: 0xe000111d, 0x188b9: 0xe000111a, 0x188ba: 0xe0000d0a, 0x188bb: 0xe0000d07, + 0x188bc: 0x0030d888, 0x188bd: 0x4030d820, 0x188be: 0x00312088, 0x188bf: 0x40312020, + // Block 0x623, offset 0x188c0 + 0x188c0: 0x6d200220, 0x188c1: 0x6c16fe20, 0x188c2: 0x6d0bdc20, 0x188c3: 0x6d1b3420, + 0x188c4: 0x6d0bd620, 0x188c5: 0x6cc58020, 0x188c6: 0x6c6ece20, 0x188c7: 0xe000240a, + 0x188c8: 0x6c29ae20, 0x188c9: 0x6c29ca20, 0x188ca: 0x6c100220, 0x188cb: 0x6c6b9220, + 0x188cc: 0x6cff9e20, 0x188cd: 0x6cffa020, 0x188ce: 0x6cf39620, 0x188cf: 0x6cedd020, + 0x188d0: 0x6cedd220, 0x188d1: 0x6cf39820, 0x188d2: 0x6cd8fa20, 0x188d3: 0x6d10c420, + 0x188d4: 0x6c630820, 0x188d5: 0x6c616620, 0x188d6: 0x6d036620, 0x188d7: 0x6d036820, + 0x188d8: 0x6cd49220, 0x188d9: 0x6cdbee20, 0x188db: 0x6cc64c20, + 0x188dc: 0x6cc63420, 0x188dd: 0x6d266620, 0x188de: 0x6c271e20, 0x188df: 0x2ca22083, + 0x188e0: 0x6c9f8820, 0x188e1: 0x6cd74220, 0x188e2: 0x6cd74420, 0x188e3: 0x6c0c6c20, + 0x188e4: 0x6d2ff820, 0x188e5: 0x6d2ff220, 0x188e6: 0x6cbb3620, 0x188e7: 0x6ca96420, + 0x188e8: 0x6cc38820, 0x188e9: 0xe000243f, 0x188ea: 0xe0002442, 0x188eb: 0x6ca2c020, + 0x188ec: 0x6cd2f220, 0x188ed: 0x6cd40820, 0x188ee: 0x6cd30220, 0x188ef: 0x6cd86820, + 0x188f0: 0x6cd86a20, 0x188f1: 0x6c429620, 0x188f2: 0x6cee4220, 0x188f3: 0xe0002451, + 0x188f4: 0x6cee4020, 0x188f5: 0xe000244e, 0x188f6: 0x6cc5ba20, 0x188f7: 0x6cc60a20, + 0x188f8: 0x02ff1684, 0x188f9: 0x03000484, 0x188fa: 0x6d24ba20, 0x188fb: 0x6d24bc20, + 0x188fc: 0x6cc78020, 0x188fd: 0x6c719e20, 0x188fe: 0x6c12be20, 0x188ff: 0x6c12c220, + // Block 0x624, offset 0x18900 + 0x18900: 0x6c12c420, 0x18901: 0x6c562e20, 0x18902: 0x6d199a20, 0x18903: 0x6cf76620, + 0x18904: 0x6cf94e20, 0x18905: 0x6c673620, 0x18906: 0x0313a484, 0x18907: 0xe000246c, + 0x18908: 0x6d0d2e20, 0x18909: 0x6c077420, 0x1890a: 0xe000246f, 0x1890b: 0x6c17e220, + 0x1890c: 0x6c21a220, 0x1890d: 0x6c21a620, 0x1890e: 0x6c21f020, 0x1890f: 0x6c3f9a20, + 0x18910: 0x6c6c7c20, 0x18911: 0x6c16dc20, 0x18912: 0x6c16de20, 0x18913: 0x6d2f1620, + 0x18914: 0x6c9ae820, 0x18915: 0xe000247b, 0x18916: 0x6c3f9c20, 0x18917: 0x6d222020, + 0x18918: 0x6cbe6a20, 0x18919: 0x6cef7e20, 0x1891a: 0x6d13ae20, 0x1891b: 0x6c3c9820, + 0x1891c: 0x6c3a3020, 0x1891d: 0x6cd29c20, 0x1891e: 0xe0002481, 0x1891f: 0x6cd29e20, + 0x18920: 0x6cd2a020, 0x18921: 0xe0002484, 0x18922: 0x6c96ae20, 0x18923: 0x6c476c20, + 0x18924: 0x6c4b2420, 0x18925: 0x6d220e20, 0x18926: 0x6ca7ce20, 0x18927: 0x6c920a20, + 0x18928: 0x6c975620, 0x18929: 0x6c5a4020, 0x1892a: 0x6c9e4820, 0x1892b: 0x6cb6bc20, + 0x1892c: 0x6cb6be20, 0x1892d: 0x6c1bd020, 0x1892e: 0x6c1bd220, 0x1892f: 0x6c902820, + 0x18930: 0x6c902a20, 0x18931: 0x6c4ab620, 0x18932: 0x6c4ab420, 0x18933: 0x2c4a3883, + // Block 0x625, offset 0x18940 + 0x18940: 0x2d13b686, 0x18941: 0x2c4bb683, 0x18942: 0x2d3a5283, 0x18943: 0x2cb1dc83, + 0x18944: 0x2d15aa84, 0x18945: 0x2c73be83, 0x18946: 0x2c37b486, 0x18947: 0x2ce7e283, + 0x18948: 0x2cc55a84, 0x18949: 0x2c372e83, 0x1894a: 0x2cc80e83, 0x1894b: 0x2c030a84, + 0x1894c: 0x2c6ed083, 0x1894d: 0x2c9d1683, 0x1894e: 0x2c0d9e83, 0x1894f: 0x2c610c83, + 0x18950: 0x2cb9ec83, 0x18951: 0x2c29b083, 0x18952: 0x2c855c83, 0x18953: 0x2c059c83, + 0x18954: 0x2c08aa83, 0x18955: 0x2c397e83, 0x18956: 0x2cf83483, 0x18957: 0x2cd22485, + 0x18958: 0x2c100483, 0x18959: 0x2c6a4e83, 0x1895a: 0x2c16e083, 0x1895b: 0x2cd7b483, + 0x1895c: 0x2d200483, 0x1895d: 0x2c79c883, 0x1895e: 0x2ceed683, 0x1895f: 0x2ce91084, + 0x18960: 0x2cd2e283, 0x18961: 0x2d34ca83, 0x18962: 0x2cdba683, 0x18963: 0x2cf55a83, + 0x18964: 0x2c26e483, 0x18965: 0x2caa6e84, 0x18966: 0x2d3f6883, 0x18967: 0x2c9db683, + 0x18968: 0x2c25b083, 0x18969: 0x2cffa283, 0x1896a: 0x2d1edc83, 0x1896b: 0x2cd18a83, + 0x1896c: 0x2c17fa83, 0x1896d: 0x2cccb083, 0x1896e: 0x2c1fd683, 0x1896f: 0x2c454a83, + 0x18970: 0x2c610e83, 0x18971: 0x2c6c1a83, 0x18972: 0x2c420a83, 0x18973: 0x2d107e83, + 0x18974: 0x2c4a0283, 0x18975: 0x2d1ac083, 0x18976: 0x2c45cc83, 0x18977: 0x2d163c83, + 0x18978: 0x2c454c83, 0x18979: 0x2c616883, 0x1897a: 0x2cccb283, 0x1897b: 0x2c1bd483, + 0x1897c: 0x2d02a283, 0x1897d: 0x2c436083, 0x1897e: 0x2c563883, 0x1897f: 0x2cd43684, + // Block 0x626, offset 0x18980 + 0x18980: 0x2d337e83, 0x18981: 0x2cb3fc83, 0x18982: 0x2cf17a84, 0x18983: 0x2c30f883, + 0x18984: 0x2c6c1e83, 0x18985: 0x2c398083, 0x18986: 0x2cf39a83, 0x18987: 0x2cc63684, + 0x18988: 0x2d264283, 0x18989: 0x2d266885, 0x1898a: 0x2ca25c84, 0x1898b: 0x2cba3883, + 0x1898c: 0x2d34cc83, 0x1898d: 0x2c271283, 0x1898e: 0x2cd49883, 0x1898f: 0x2cf39c83, + 0x18990: 0x2c08ac83, 0x18991: 0x2c98c083, 0x18992: 0x2cd2e483, 0x18993: 0x2cb72683, + 0x18994: 0x2cd70284, 0x18995: 0x2c5d8484, 0x18996: 0x2d2f8083, 0x18997: 0x2c3fa083, + 0x18998: 0x2d10c683, 0x18999: 0x2cac5083, 0x1899a: 0x2cb14483, 0x1899b: 0x2d0b0883, + 0x1899c: 0x2ca96683, 0x1899d: 0x2cc34c83, 0x1899e: 0x2d07fa83, 0x1899f: 0x2d22b883, + 0x189a0: 0x2c483e83, 0x189a1: 0x2cec0c83, 0x189a2: 0x2c415c83, 0x189a3: 0x2cd0d284, + 0x189a4: 0x2d1e6c83, 0x189a5: 0x2ce47e83, 0x189a6: 0x2cb04483, 0x189a7: 0x2ca54083, + 0x189a8: 0x2c0e4683, 0x189a9: 0x2c040883, 0x189aa: 0x2cafa883, 0x189ab: 0x2c9f8a83, + 0x189ac: 0x2ca26483, 0x189ad: 0x2c98c283, 0x189ae: 0x2cd2a883, 0x189af: 0x2cd22c83, + 0x189b0: 0x2cd2f483, 0x189b1: 0x2cc74083, 0x189b2: 0x2c50b283, 0x189b3: 0x2d08f283, + 0x189b4: 0x2c856c83, 0x189b5: 0x2d39f083, 0x189b6: 0x2c9cd683, 0x189b7: 0x2c9d1a83, + 0x189b8: 0x2c3d1a83, 0x189b9: 0x2cedf483, 0x189ba: 0x2d0f7683, 0x189bb: 0x2d221c83, + 0x189bc: 0x2c819a83, 0x189bd: 0x2c373083, 0x189be: 0x2c82b283, 0x189bf: 0x2c378483, + // Block 0x627, offset 0x189c0 + 0x189c0: 0x2d22c683, 0x189c1: 0x2cc78283, 0x189c2: 0x2c189483, 0x189c3: 0x2d3f2a83, + 0x189c4: 0x2d357083, 0x189c5: 0x2c6fd083, 0x189c6: 0x2ccf0683, 0x189c7: 0x2c201683, + 0x189c8: 0x2d385283, 0x189c9: 0x2c449e83, 0x189ca: 0x2ccb1483, 0x189cb: 0x2c12aa83, + 0x189cc: 0x2c549483, 0x189cd: 0x2c1d0883, 0x189ce: 0x2d093883, 0x189cf: 0x2d03ba83, + 0x189d0: 0x2d13be83, 0x189d1: 0x2d0b7083, 0x189d2: 0x2c665283, 0x189d3: 0x2c68c683, + 0x189d4: 0x2d0c5c83, 0x189d5: 0x2c475c83, 0x189d6: 0x2c30fa83, 0x189d7: 0x2cd2b083, + 0x189d8: 0x2d357c83, 0x189d9: 0x2c06dc83, 0x189da: 0x2c1be883, 0x189db: 0x2d407e84, + 0x189dc: 0x2d40a683, 0x189dd: 0x2ccfa483, 0x189de: 0x2c17ce83, 0x189df: 0x2d02ae83, + 0x189e0: 0x2c18a083, 0x189e1: 0x2c21a883, 0x189e2: 0x2d169e83, 0x189e3: 0x2d1fa483, + 0x189e4: 0x2c0b7883, 0x189e5: 0x2c84fc83, 0x189e6: 0x2c6c2e84, 0x189e7: 0x2d2f0083, + 0x189e8: 0x2c9ac683, 0x189e9: 0x2c3fba83, 0x189ea: 0x2c859883, 0x189eb: 0x2d3c5683, + 0x189ec: 0x2d222283, 0x189ed: 0x2cbe3083, 0x189ee: 0x2c39f283, 0x189ef: 0x2c9e5683, + 0x189f0: 0x2c43d083, 0x189f1: 0x2ceeee83, 0x189f2: 0x2c6fb483, 0x189f3: 0x2d19ba83, + 0x189f4: 0x2d12dc83, 0x189f5: 0x2c3c2c83, 0x189f6: 0x2c39f483, 0x189f7: 0x2cd25883, + 0x189f8: 0x2cd44283, 0x189f9: 0x2cfd6683, 0x189fa: 0x2c969883, 0x189fb: 0x2c476e83, + 0x189fc: 0x2c42bc83, 0x189fd: 0x2c0bf483, 0x189fe: 0x2c310e83, 0x189ff: 0x2c170e83, + // Block 0x628, offset 0x18a00 + 0x18a00: 0x2c43e083, 0x18a01: 0x2c4ae283, 0x18a02: 0x2d211283, 0x18a03: 0x2ca79a83, + 0x18a04: 0x2c91bc83, 0x18a05: 0x2c924c83, 0x18a06: 0x2c973283, 0x18a07: 0x2c966883, + 0x18a08: 0x2c59ce83, 0x18a09: 0x2cd56083, 0x18a0a: 0x2c521c83, 0x18a0b: 0x2d353483, + 0x18a0c: 0x2c9e3283, 0x18a0d: 0x2c2f7483, 0x18a0e: 0x2c47a683, 0x18a0f: 0x2cd56683, + 0x18a10: 0x2c08a283, 0x18a11: 0x2cb63483, 0x18a12: 0x2c1bc283, 0x18a13: 0x2c8fb083, + 0x18a14: 0x2c4a9683, 0x18a15: 0x2d26f683, + 0x18a30: 0x40273a20, 0x18a31: 0x40273c20, 0x18a32: 0x40273e20, 0x18a33: 0x40274020, + 0x18a34: 0x40274220, 0x18a35: 0x40274420, 0x18a36: 0x40274620, 0x18a37: 0x40274820, + 0x18a38: 0x40274a20, 0x18a39: 0x40274c20, 0x18a3a: 0x40274e20, 0x18a3b: 0x40275020, + // Block 0x629, offset 0x18a40 + 0x18a40: 0x00021283, 0x18a41: 0x40025c20, 0x18a42: 0x40030420, 0x18a43: 0x40051220, + 0x18a44: 0x40279a20, 0x18a45: 0x4027ca20, 0x18a46: 0xe0002206, 0x18a47: 0x6c8c9620, + 0x18a48: 0x40049c20, 0x18a49: 0x40049e20, 0x18a4a: 0x4004a020, 0x18a4b: 0x4004a220, + 0x18a4c: 0x4004a420, 0x18a4d: 0x4004a620, 0x18a4e: 0x4004a820, 0x18a4f: 0x4004aa20, + 0x18a50: 0x4004ac20, 0x18a51: 0x4004ae20, 0x18a52: 0x40279c20, 0x18a53: 0x40279e20, + 0x18a54: 0x4004b020, 0x18a55: 0x4004b220, 0x18a56: 0x4004b420, 0x18a57: 0x4004b620, + 0x18a58: 0x4004b820, 0x18a59: 0x4004ba20, 0x18a5a: 0x4004bc20, 0x18a5b: 0x4004be20, + 0x18a5c: 0x40023820, 0x18a5d: 0x4003ea20, 0x18a5e: 0x4003ec20, 0x18a5f: 0x4003ee20, + 0x18a60: 0x4027a020, 0x18a61: 0xe0000267, 0x18a62: 0xe000037f, 0x18a63: 0xe0000459, + 0x18a64: 0xe000052e, 0x18a65: 0xe00005f8, 0x18a66: 0xe00006c3, 0x18a67: 0xe000076b, + 0x18a68: 0xe0000817, 0x18a69: 0xe00008bc, 0x18a6a: 0xada12202, 0x18a6b: 0xae412302, + 0x18a6c: 0xae812402, 0x18a6d: 0xade12502, 0x18a6e: 0xae012602, 0x18a6f: 0xae012702, + 0x18a70: 0x40023a20, 0x18a71: 0x4027ce20, 0x18a72: 0xe0000152, 0x18a73: 0x4027d020, + 0x18a74: 0xe0000155, 0x18a75: 0x4027d220, 0x18a76: 0x00279c84, 0x18a77: 0x4027a220, + 0x18a78: 0x2cd22484, 0x18a79: 0x2ca75483, 0x18a7a: 0x2cc96283, 0x18a7b: 0x4027cc20, + 0x18a7c: 0xe000231a, 0x18a7d: 0x40051420, 0x18a7e: 0x4027a420, 0x18a7f: 0x4027a620, + // Block 0x62a, offset 0x18a80 + 0x18a80: 0x00633a84, 0x18a81: 0x00634484, 0x18a82: 0x0064f684, 0x18a83: 0x0064f884, + 0x18a84: 0x00635a84, 0x18a85: 0x00635c84, 0x18a86: 0x00635e84, 0x18a87: 0x0063ee84, + 0x18a88: 0x0063f084, 0x18a89: 0x0063f684, 0x18a8a: 0x00640884, 0x18a8b: 0x00640a84, + 0x18a8c: 0x00640e84, 0x18a8d: 0x00642284, 0x18a8e: 0x00642884, + 0x18a90: 0x4027a820, 0x18a91: 0x4027aa20, 0x18a92: 0x2d13b685, 0x18a93: 0x2c37b485, + 0x18a94: 0x2cc9f285, 0x18a95: 0x2cd87484, 0x18a96: 0x2cce4884, 0x18a97: 0x2d378285, + 0x18a98: 0x2cfa2684, 0x18a99: 0x2c63fc83, 0x18a9a: 0x2d15aa83, 0x18a9b: 0x2c0dba83, + 0x18a9c: 0x2c2f4083, 0x18a9d: 0x2ce45484, 0x18a9e: 0x2c2a8a83, 0x18a9f: 0x2cc55a83, + 0x18aa0: 0xe000237a, 0x18aa1: 0xe0002383, 0x18aa2: 0xe0002380, 0x18aa3: 0xe000237d, + 0x18aa4: 0x40661c20, 0x18aa5: 0xe000238c, 0x18aa6: 0x40661620, 0x18aa7: 0xe0002389, + 0x18aa8: 0xe000239e, 0x18aa9: 0xe0002386, 0x18aaa: 0xe0002395, 0x18aab: 0xe000239b, + 0x18aac: 0x40663420, 0x18aad: 0x4065f220, 0x18aae: 0xe000238f, 0x18aaf: 0xe0002392, + 0x18ab0: 0x40663020, 0x18ab1: 0x40663220, 0x18ab2: 0x40662c20, 0x18ab3: 0xe0002398, + 0x18ab4: 0x0065dc99, 0x18ab5: 0x0065e699, 0x18ab6: 0x0065ee99, 0x18ab7: 0x0065f499, + 0x18ab8: 0x40660c20, 0x18ab9: 0x40660e20, 0x18aba: 0x40661020, + // Block 0x62b, offset 0x18ac0 + 0x18ac0: 0xf0000404, 0x18ac1: 0xf0000404, 0x18ac2: 0xf0000404, 0x18ac3: 0xf0000404, + 0x18ac4: 0xf0000404, 0x18ac5: 0xf0000404, 0x18ac6: 0xf0000404, 0x18ac7: 0xf0000404, + 0x18ac8: 0xf0000404, 0x18ac9: 0xf0000404, 0x18aca: 0xf0000404, 0x18acb: 0xf0000404, + 0x18acc: 0xf0000404, 0x18acd: 0xf0000404, 0x18ace: 0xe000004c, 0x18acf: 0xe0000051, + 0x18ad0: 0xe0000056, 0x18ad1: 0xe000005b, 0x18ad2: 0xe0000060, 0x18ad3: 0xe0000065, + 0x18ad4: 0xe000006a, 0x18ad5: 0xe000006f, 0x18ad6: 0xe0000083, 0x18ad7: 0xe000008d, + 0x18ad8: 0xe0000092, 0x18ad9: 0xe0000097, 0x18ada: 0xe000009c, 0x18adb: 0xe00000a1, + 0x18adc: 0xe0000088, 0x18add: 0xe0000074, 0x18ade: 0xe000007c, + 0x18ae0: 0xe000b438, 0x18ae1: 0xe000b3d4, 0x18ae2: 0xe000b40c, 0x18ae3: 0xe000b41c, + 0x18ae4: 0xe000b428, 0x18ae5: 0xe000b3f4, 0x18ae6: 0xe000b400, 0x18ae7: 0xe000b3c8, + 0x18ae8: 0xe000b3ec, 0x18ae9: 0xe000b414, 0x18aea: 0xe000b440, 0x18aeb: 0xe000b3dc, + 0x18aec: 0xe000b418, 0x18aed: 0xe000b3fc, 0x18aee: 0xe000b3e8, 0x18aef: 0xe000b424, + 0x18af0: 0xe000b408, 0x18af1: 0xe000b448, 0x18af2: 0xe000b43c, 0x18af3: 0xe000b410, + 0x18af4: 0xe000b3f8, 0x18af5: 0xe000b420, 0x18af6: 0xe000b3cc, 0x18af7: 0xe000b44c, + 0x18af8: 0xe000b3f0, 0x18af9: 0xe000b3d0, 0x18afa: 0xe000b3d8, 0x18afb: 0xe000b434, + 0x18afc: 0xe000b3e4, 0x18afd: 0xe000b404, 0x18afe: 0xe000b450, 0x18aff: 0xe000b42c, + // Block 0x62c, offset 0x18b00 + 0x18b00: 0xe000b3e0, 0x18b01: 0xe000b430, 0x18b02: 0xe000b454, 0x18b03: 0xe000b444, + 0x18b04: 0x2cf20683, 0x18b05: 0x2d200c83, 0x18b06: 0x2cf17a83, 0x18b07: 0x2d32e283, + 0x18b08: 0xe00002e3, 0x18b09: 0xe00003d8, 0x18b0a: 0xe00004b3, 0x18b0b: 0xe000057d, + 0x18b0c: 0xe0000648, 0x18b0d: 0xe00006f0, 0x18b0e: 0xe000079c, 0x18b0f: 0xe0000841, + 0x18b10: 0xe0000ec0, 0x18b11: 0xf0000606, 0x18b12: 0xf0000606, 0x18b13: 0xf0000606, + 0x18b14: 0xf0000606, 0x18b15: 0xf0000606, 0x18b16: 0xf0000606, 0x18b17: 0xf0000606, + 0x18b18: 0xf0000606, 0x18b19: 0xf0000606, 0x18b1a: 0xf0000606, 0x18b1b: 0xf0000606, + 0x18b1c: 0xf0000606, 0x18b1d: 0xf0000606, 0x18b1e: 0xf0000606, 0x18b1f: 0xf0000606, + 0x18b20: 0x0062ac86, 0x18b21: 0x0062b086, 0x18b22: 0x0062b286, 0x18b23: 0x0062b686, + 0x18b24: 0x0062b886, 0x18b25: 0x0062ba86, 0x18b26: 0x0062be86, 0x18b27: 0x0062c286, + 0x18b28: 0x0062c486, 0x18b29: 0x0062c886, 0x18b2a: 0x0062ca86, 0x18b2b: 0x0062cc86, + 0x18b2c: 0x0062ce86, 0x18b2d: 0x0062d086, 0x18b2e: 0xf0000606, 0x18b2f: 0xf0000606, + 0x18b30: 0xf0000606, 0x18b31: 0xf0000606, 0x18b32: 0xf0000606, 0x18b33: 0xf0000606, + 0x18b34: 0xf0000606, 0x18b35: 0xf0000606, 0x18b36: 0xf0000606, 0x18b37: 0xf0000606, + 0x18b38: 0xf0000606, 0x18b39: 0xf0000606, 0x18b3a: 0xf0000606, 0x18b3b: 0xf0000606, + 0x18b3c: 0xe0002127, 0x18b3d: 0xe0002122, 0x18b3e: 0xf0000606, 0x18b3f: 0x4027ac20, + // Block 0x62d, offset 0x18b40 + 0x18b40: 0x2d13b684, 0x18b41: 0x2c37b484, 0x18b42: 0x2cc9f284, 0x18b43: 0x2cd87483, + 0x18b44: 0x2cf41483, 0x18b45: 0x2c8f2483, 0x18b46: 0x2cb4c683, 0x18b47: 0x2c030a83, + 0x18b48: 0x2c6f9a83, 0x18b49: 0x2cd22483, 0x18b4a: 0x2d266884, 0x18b4b: 0x2c5d8483, + 0x18b4c: 0x2cd70283, 0x18b4d: 0x2ca25c83, 0x18b4e: 0x2c6c2e83, 0x18b4f: 0x2ce91083, + 0x18b50: 0x2cc63683, 0x18b51: 0x2d399283, 0x18b52: 0x2d1f9884, 0x18b53: 0x2ccf3683, + 0x18b54: 0x2c9fe683, 0x18b55: 0x2ce27083, 0x18b56: 0x2c110e83, 0x18b57: 0x2d3ac683, + 0x18b58: 0x2c814083, 0x18b59: 0x2c9d3483, 0x18b5a: 0x2ca3e283, 0x18b5b: 0x2caa6e83, + 0x18b5c: 0x2cd3bc83, 0x18b5d: 0x2d1eb483, 0x18b5e: 0x2d1b3683, 0x18b5f: 0x2d3ab083, + 0x18b60: 0x2cfe3a83, 0x18b61: 0x2d04b283, 0x18b62: 0x2d013e83, 0x18b63: 0x2d333683, + 0x18b64: 0x2cce4883, 0x18b65: 0x2d378284, 0x18b66: 0x2cfa2683, 0x18b67: 0x2d426084, + 0x18b68: 0x2d200884, 0x18b69: 0x2d13c083, 0x18b6a: 0x2d3f7083, 0x18b6b: 0x2d08f883, + 0x18b6c: 0x2c64ca83, 0x18b6d: 0x2cb6c883, 0x18b6e: 0x2d3e6083, 0x18b6f: 0x2d007083, + 0x18b70: 0x2d12ca83, 0x18b71: 0xf0000606, 0x18b72: 0xf0000606, 0x18b73: 0xf0000606, + 0x18b74: 0xf0000606, 0x18b75: 0xf0000606, 0x18b76: 0xf0000606, 0x18b77: 0xf0000606, + 0x18b78: 0xf0000606, 0x18b79: 0xf0000606, 0x18b7a: 0xf0000606, 0x18b7b: 0xf0000606, + 0x18b7c: 0xf0000606, 0x18b7d: 0xf0000606, 0x18b7e: 0xf0000606, 0x18b7f: 0xf0000606, + // Block 0x62e, offset 0x18b80 + 0x18b80: 0xf0000203, 0x18b81: 0xf0000203, 0x18b82: 0xf0000203, 0x18b83: 0xf0000203, + 0x18b84: 0xf0000203, 0x18b85: 0xf0000203, 0x18b86: 0xf0000203, 0x18b87: 0xf0000203, + 0x18b88: 0xf0000203, 0x18b89: 0xe000b484, 0x18b8a: 0xe000b490, 0x18b8b: 0xe000b49c, + 0x18b8c: 0xf0001c1d, 0x18b8d: 0xe0000b85, 0x18b8e: 0xf0001d1c, 0x18b8f: 0xe0000d14, + 0x18b90: 0x00657693, 0x18b91: 0x00657893, 0x18b92: 0x00657a93, 0x18b93: 0x00657e93, + 0x18b94: 0x00658093, 0x18b95: 0x00658293, 0x18b96: 0x00658493, 0x18b97: 0x00658693, + 0x18b98: 0x00658893, 0x18b99: 0x00658a93, 0x18b9a: 0x00658c93, 0x18b9b: 0x00658e93, + 0x18b9c: 0x00659093, 0x18b9d: 0x00659293, 0x18b9e: 0x00659493, 0x18b9f: 0x00659693, + 0x18ba0: 0x00659893, 0x18ba1: 0x00659a93, 0x18ba2: 0x00659c93, 0x18ba3: 0x00659e93, + 0x18ba4: 0x0065a093, 0x18ba5: 0x0065a293, 0x18ba6: 0x0065a493, 0x18ba7: 0x0065a693, + 0x18ba8: 0x0065a893, 0x18ba9: 0x0065aa93, 0x18baa: 0x0065ac93, 0x18bab: 0x0065ae93, + 0x18bac: 0x0065b093, 0x18bad: 0x0065b293, 0x18bae: 0x0065b493, 0x18baf: 0x0065b693, + 0x18bb0: 0x0065b893, 0x18bb1: 0x0065ba93, 0x18bb2: 0x0065bc93, 0x18bb3: 0x0065be93, + 0x18bb4: 0x0065c093, 0x18bb5: 0x0065c493, 0x18bb6: 0x0065c693, 0x18bb7: 0x0065c893, + 0x18bb8: 0x0065ca93, 0x18bb9: 0x0065cc93, 0x18bba: 0x0065ce93, 0x18bbb: 0x0065d093, + 0x18bbc: 0x0065d293, 0x18bbd: 0x0065d493, 0x18bbe: 0x0065d693, + // Block 0x62f, offset 0x18bc0 + 0x18bc0: 0xe000230b, 0x18bc1: 0xe00022f8, 0x18bc2: 0xe00022fc, 0x18bc3: 0xe0002311, + 0x18bc4: 0xe0002316, 0x18bc5: 0xe000231d, 0x18bc6: 0xe0002321, 0x18bc7: 0xe0002325, + 0x18bc8: 0xe000232b, 0x18bc9: 0xf0001c1c, 0x18bca: 0xe0002330, 0x18bcb: 0xe000233c, + 0x18bcc: 0xe0002340, 0x18bcd: 0xe0002337, 0x18bce: 0xe0002346, 0x18bcf: 0xe000234b, + 0x18bd0: 0xe000234f, 0x18bd1: 0xe0002353, 0x18bd2: 0xf0001c1c, 0x18bd3: 0xe000235e, + 0x18bd4: 0xe0002358, 0x18bd5: 0xf0001c1c, 0x18bd6: 0xe0002363, 0x18bd7: 0xe000236d, + 0x18bd8: 0xf0000203, 0x18bd9: 0xf0000203, 0x18bda: 0xf0000203, 0x18bdb: 0xf0000203, + 0x18bdc: 0xf0000203, 0x18bdd: 0xf0000203, 0x18bde: 0xf0000203, 0x18bdf: 0xf0000203, + 0x18be0: 0xf0000203, 0x18be1: 0xf0000203, 0x18be2: 0xe000b47c, 0x18be3: 0xe000b488, + 0x18be4: 0xe000b494, 0x18be5: 0xe000b4a0, 0x18be6: 0xe000b4a8, 0x18be7: 0xe000b4b0, + 0x18be8: 0xe000b4b8, 0x18be9: 0xe000b4c0, 0x18bea: 0xe000b4c8, 0x18beb: 0xe000b4d0, + 0x18bec: 0xe000b4d8, 0x18bed: 0xe000b4e0, 0x18bee: 0xe000b4e8, 0x18bef: 0xe000b4f0, + 0x18bf0: 0xe000b4f8, 0x18bf1: 0xe0000c1e, 0x18bf2: 0xf0001c1c, 0x18bf3: 0xf0001d1d, + 0x18bf4: 0xe0000a31, 0x18bf5: 0xf0001d1c, 0x18bf6: 0xf0001c1c, 0x18bf7: 0xf0001c1c, + 0x18bf8: 0xe0000ac2, 0x18bf9: 0xe0000ac6, 0x18bfa: 0xf0001d1d, 0x18bfb: 0xf0000203, + 0x18bfc: 0xf0000203, 0x18bfd: 0xf0000203, 0x18bfe: 0xf0000203, 0x18bff: 0xe000b5b2, + // Block 0x630, offset 0x18c00 + 0x18c00: 0xf0001d1c, 0x18c01: 0xf0001d1d, 0x18c02: 0xe00009b7, 0x18c03: 0xf0001c1d, + 0x18c04: 0xf0001c1c, 0x18c05: 0xf0001c1c, 0x18c06: 0xe0000a66, 0x18c07: 0xe0000a7a, + 0x18c08: 0xf0001d1c, 0x18c09: 0xf0001c1d, 0x18c0a: 0xf0001c1c, 0x18c0b: 0xf0001d1d, + 0x18c0c: 0xf0001c1c, 0x18c0d: 0xf0001d1d, 0x18c0e: 0xf0001d1d, 0x18c0f: 0xf0001c1c, + 0x18c10: 0xf0001c1c, 0x18c11: 0xf0001c1c, 0x18c12: 0xe0000d0d, 0x18c13: 0xf0001c1c, + 0x18c14: 0xf0001c1c, 0x18c15: 0xe0000d3a, 0x18c16: 0xe0000d46, 0x18c17: 0xf0001d1d, + 0x18c18: 0xe0000eb0, 0x18c19: 0xe0000eb8, 0x18c1a: 0xf0001d1d, 0x18c1b: 0xf0001c1c, + 0x18c1c: 0xf0001c1d, 0x18c1d: 0xf0001c1d, 0x18c1e: 0xe00010b2, 0x18c1f: 0xe00009c8, + 0x18c20: 0xf0000203, 0x18c21: 0xf0000203, 0x18c22: 0xf0000203, 0x18c23: 0xf0000203, + 0x18c24: 0xf0000203, 0x18c25: 0xf0000203, 0x18c26: 0xf0000203, 0x18c27: 0xf0000203, + 0x18c28: 0xf0000203, 0x18c29: 0xe000b480, 0x18c2a: 0xe000b48c, 0x18c2b: 0xe000b498, + 0x18c2c: 0xe000b4a4, 0x18c2d: 0xe000b4ac, 0x18c2e: 0xe000b4b4, 0x18c2f: 0xe000b4bc, + 0x18c30: 0xe000b4c4, 0x18c31: 0xe000b4cc, 0x18c32: 0xe000b4d4, 0x18c33: 0xe000b4dc, + 0x18c34: 0xe000b4e4, 0x18c35: 0xe000b4ec, 0x18c36: 0xe000b4f4, 0x18c37: 0xe000b4fc, + 0x18c38: 0xe000b500, 0x18c39: 0xe000b504, 0x18c3a: 0xe000b508, 0x18c3b: 0xe000b50c, + 0x18c3c: 0xe000b510, 0x18c3d: 0xe000b514, 0x18c3e: 0xe000b518, 0x18c3f: 0xe0000bdf, + // Block 0x631, offset 0x18c40 + 0x18c40: 0x6cbf9220, 0x18c41: 0x6ce52c20, + 0x18c44: 0x6c7ae020, 0x18c45: 0x6cf41220, 0x18c46: 0x6d1ac620, + 0x18c4c: 0x6d144820, + 0x18c56: 0x6d006c20, + 0x18c5c: 0x6c1d9020, + 0x18c61: 0x6caae820, + 0x18c64: 0x6c27da20, + 0x18c68: 0x6d067820, 0x18c69: 0x6d03c420, 0x18c6b: 0x6d044c20, + 0x18c6c: 0x6c8e4020, 0x18c6d: 0x6c8c1820, 0x18c6e: 0x6cfd7e20, 0x18c6f: 0x6d1dbe20, + 0x18c70: 0x6d030e20, 0x18c71: 0x6d31ac20, 0x18c72: 0x6c272020, 0x18c73: 0x6cf49420, + 0x18c74: 0x6cac3820, 0x18c77: 0x6c968e20, + 0x18c78: 0x6cba3c20, 0x18c79: 0x6d165420, 0x18c7a: 0x6d1a2020, 0x18c7b: 0x6ca58220, + 0x18c7c: 0x6c1a7e20, 0x18c7d: 0x6c3c1020, + // Block 0x632, offset 0x18c80 + 0x18c81: 0x6d3cec20, 0x18c82: 0x6c39ba20, 0x18c83: 0x6c029620, + 0x18c84: 0x6cf41c20, 0x18c85: 0x6d427220, 0x18c87: 0x6d38f620, + 0x18c88: 0x6c304e20, 0x18c89: 0x6cda7e20, 0x18c8a: 0x6d16a020, 0x18c8b: 0x6cbefc20, + 0x18c8c: 0x6c7b8220, 0x18c8d: 0x6c831e20, 0x18c8e: 0x6ca4da20, 0x18c8f: 0x6d3aa820, + 0x18c90: 0x6cd4a220, + 0x18c94: 0x6d062820, 0x18c97: 0x6ccfb620, + 0x18c98: 0x6c6bc820, 0x18c99: 0x6c2e6620, 0x18c9a: 0x6caab620, 0x18c9b: 0x6cda8420, + 0x18c9c: 0x6d16d820, 0x18c9d: 0x6c905020, 0x18c9e: 0x6d1d3220, 0x18c9f: 0x6c081020, + 0x18ca3: 0x6c7f9220, + 0x18ca4: 0x6c9e7220, 0x18ca5: 0x6d171820, 0x18ca6: 0x6c85be20, 0x18ca7: 0x6c61c020, + 0x18ca8: 0x6d223420, 0x18ca9: 0x6c953c20, 0x18caa: 0x6c147420, + 0x18cae: 0x6c5ce420, 0x18caf: 0x6d063820, + 0x18cb0: 0x6c5bb220, 0x18cb1: 0x6cc53820, 0x18cb3: 0x6d392620, + 0x18cb5: 0x6c4ebe20, 0x18cb6: 0x6cf88220, 0x18cb7: 0x6cdf7420, + 0x18cb8: 0x6d10f020, 0x18cb9: 0x6c5bba20, 0x18cba: 0x6c75b820, 0x18cbb: 0x6c96c020, + 0x18cbc: 0x6c94ac20, 0x18cbd: 0x6ce0fa20, 0x18cbe: 0x6d110220, 0x18cbf: 0x6d2fba20, + // Block 0x633, offset 0x18cc0 + 0x18cc0: 0x6d2cf420, 0x18cc1: 0x6d226420, 0x18cc2: 0x6d3d7620, 0x18cc3: 0x6c37d620, + 0x18cc4: 0x6cc4cc20, 0x18cc5: 0x6cb70820, 0x18cc6: 0x6c1c3e20, 0x18cc7: 0x6cf45620, + 0x18cc8: 0x6c4eda20, 0x18cc9: 0x6ce17820, 0x18cca: 0x6ccb3220, + 0x18ccc: 0x6cbf4820, 0x18ccd: 0x6c824020, 0x18cce: 0x6cc97c20, + 0x18cd1: 0x6c7cda20, 0x18cd2: 0x6cb44620, 0x18cd3: 0x6cde8a20, + 0x18cd4: 0x6cd53020, 0x18cd5: 0x6d0f6820, 0x18cd6: 0x6cab8a20, 0x18cd7: 0x6cdf3620, + 0x18cd9: 0x6c9dd220, 0x18cda: 0x6d1b7820, 0x18cdb: 0x6c2e3a20, + 0x18cdc: 0x6d228820, 0x18cdd: 0x6c9eec20, 0x18cde: 0x6c75ee20, 0x18cdf: 0x6ca7b820, + 0x18ce0: 0x6d023a20, 0x18ce1: 0x6d1f8820, + 0x18ce4: 0x6c185420, 0x18ce5: 0x6c3c7620, 0x18ce6: 0x6c82f820, 0x18ce7: 0x6c874020, + 0x18ce9: 0x6c95d420, 0x18ceb: 0x6c617420, + 0x18cf0: 0x6cc2b020, 0x18cf2: 0x6c110220, 0x18cf3: 0x6c898420, + 0x18cf4: 0x6c475620, 0x18cf5: 0x6c994020, 0x18cf7: 0x6c489020, + 0x18cf8: 0x6cdc2820, 0x18cfb: 0x6c996a20, + 0x18cfc: 0x6c976220, 0x18cfd: 0x6cc29820, 0x18cfe: 0x6cd39420, 0x18cff: 0x6c84b620, + // Block 0x634, offset 0x18d00 + 0x18d01: 0x6cedee20, 0x18d02: 0x6c79d820, 0x18d03: 0x6c325420, + 0x18d04: 0x6d325a20, 0x18d05: 0x6ce62020, + 0x18d08: 0x6c0e0620, 0x18d09: 0x6c5d9e20, 0x18d0a: 0x6c305420, 0x18d0b: 0x6c460e20, + 0x18d0c: 0x6c195220, 0x18d0e: 0x6cbd2020, 0x18d0f: 0x6c6f0020, + 0x18d10: 0x6c922620, 0x18d11: 0x6d042020, 0x18d13: 0x6ca3f820, + 0x18d14: 0x6d01a220, 0x18d16: 0x6c09be20, 0x18d17: 0x6c6b0420, + 0x18d18: 0x6cda9c20, 0x18d1a: 0x6c455220, + 0x18d1c: 0x6d200620, 0x18d1d: 0x6d03b620, 0x18d1e: 0x6cb83c20, 0x18d1f: 0x6cafae20, + 0x18d20: 0x6c2d3620, 0x18d21: 0x6c3f3c20, 0x18d22: 0x6c95de20, 0x18d23: 0x6cb84220, + 0x18d24: 0x6cb84420, 0x18d25: 0x6ce0ba20, 0x18d26: 0x6c03fa20, 0x18d27: 0x6c418420, + 0x18d28: 0x6c222420, 0x18d29: 0x6d077e20, 0x18d2a: 0x6c80f620, + 0x18d2d: 0x6ccf0c20, 0x18d2f: 0x6c83a820, + 0x18d30: 0x6c578820, 0x18d31: 0x6ce7ea20, 0x18d32: 0x6cb0f020, 0x18d33: 0x6c2b2420, + 0x18d34: 0x6cc85e20, 0x18d35: 0x6c360820, 0x18d36: 0x6cbcb020, 0x18d37: 0x6d178c20, + 0x18d38: 0x6d3d0020, 0x18d39: 0x6cc8cc20, 0x18d3a: 0x6c649420, + 0x18d3c: 0x6c1c2e20, 0x18d3d: 0x6c1d1820, 0x18d3e: 0x6cf66220, + // Block 0x635, offset 0x18d40 + 0x18d40: 0x6c94b420, 0x18d41: 0x6c2aa020, 0x18d42: 0x6c8bbe20, 0x18d43: 0x6c747020, + 0x18d44: 0x6cdae020, 0x18d45: 0x6cfffa20, 0x18d46: 0x6d299020, + 0x18d49: 0x6d3a7620, 0x18d4a: 0x6d2e0e20, 0x18d4b: 0x6c64f020, + 0x18d4c: 0x6d408c20, 0x18d4d: 0x6c1fa020, 0x18d4e: 0x6d022a20, 0x18d4f: 0x6c869820, + 0x18d51: 0x6c1c8e20, 0x18d52: 0x6cf7b820, 0x18d53: 0x6c656020, + 0x18d55: 0x6c5fc020, 0x18d57: 0x6c3a7c20, + 0x18d58: 0x6c1f0620, 0x18d59: 0x6c07d420, 0x18d5a: 0x6c6a7820, + 0x18d5c: 0x6c036c20, 0x18d5d: 0x6c898a20, 0x18d5e: 0x6c7b1e20, + 0x18d60: 0x6cf95e20, 0x18d61: 0x6c0ca420, 0x18d62: 0x6c747420, 0x18d63: 0x6c825c20, + 0x18d64: 0x6d035020, 0x18d65: 0x6c045820, 0x18d66: 0x6d103220, 0x18d67: 0x6c940a20, + 0x18d68: 0x6c070a20, 0x18d69: 0x6c362420, 0x18d6a: 0x6c91c220, + 0x18d6d: 0x6c181220, 0x18d6e: 0x6caad020, 0x18d6f: 0x6d07fe20, + 0x18d70: 0x6c525220, 0x18d71: 0x6d224420, 0x18d73: 0x6c4b0620, + 0x18d74: 0x6d17dc20, 0x18d75: 0x6d085020, 0x18d76: 0x6c462c20, 0x18d77: 0x6c910020, + 0x18d78: 0x6ce2f020, 0x18d79: 0x6c820420, 0x18d7a: 0x6cd2f820, + 0x18d7c: 0x6cdcee20, 0x18d7d: 0x6d11ec20, 0x18d7e: 0x6cfa6820, 0x18d7f: 0x6d408420, + // Block 0x636, offset 0x18d80 + 0x18d81: 0x6cc3a220, 0x18d82: 0x6d1a2220, 0x18d83: 0x6cf56420, + 0x18d84: 0x6d34d420, 0x18d85: 0x6c639620, 0x18d86: 0x6c564e20, 0x18d87: 0x6c7e3620, + 0x18d88: 0x6d15c620, 0x18d89: 0x6c788020, 0x18d8a: 0x6c3d4620, 0x18d8b: 0x6cbd6020, + 0x18d8c: 0x6c009220, 0x18d8e: 0x6c78ac20, 0x18d8f: 0x6c1e8820, + 0x18d90: 0x6d014620, 0x18d91: 0x6c1e9a20, 0x18d92: 0x6ceeac20, + 0x18d95: 0x6c58ea20, 0x18d96: 0x6cda8a20, 0x18d97: 0x6d203a20, + 0x18d99: 0x6c75e020, 0x18d9a: 0x6d2f7e20, 0x18d9b: 0x6d066620, + 0x18d9c: 0x6cd2ac20, 0x18d9e: 0x6cd64220, 0x18d9f: 0x6c7cea20, + 0x18da0: 0x6cd6a220, 0x18da1: 0x6c515420, 0x18da2: 0x6c414e20, 0x18da3: 0x6d0d3020, + 0x18da4: 0x6cbfec20, 0x18da5: 0x6ccf9820, 0x18da6: 0x6c577a20, 0x18da7: 0x6cf56820, + 0x18da8: 0x6c391820, 0x18da9: 0x6cad2420, 0x18daa: 0x6c281e20, 0x18dab: 0x6c39bc20, + 0x18dac: 0x6c455c20, 0x18dad: 0x6c022620, 0x18dae: 0x6c3f3020, 0x18daf: 0x6ca54420, + 0x18db0: 0x6d093a20, 0x18db1: 0x6d1ee420, 0x18db2: 0x6c572620, + 0x18db4: 0x6c189620, 0x18db5: 0x6c4c5420, 0x18db6: 0x6ca2c820, 0x18db7: 0x6c577e20, + 0x18db8: 0x6c858820, 0x18db9: 0x6c37fa20, 0x18dba: 0x6cfe8020, 0x18dbb: 0x6cb3ea20, + 0x18dbd: 0x6cd88820, + // Block 0x637, offset 0x18dc0 + 0x18dc0: 0x6c821c20, 0x18dc1: 0x6c8c4820, 0x18dc2: 0x6d16dc20, 0x18dc3: 0x6c544c20, + 0x18dc5: 0x6d068c20, 0x18dc6: 0x6cc17620, 0x18dc7: 0x6c373a20, + 0x18dca: 0x6d09e220, + 0x18dcf: 0x6ca80020, + 0x18dd0: 0x6cef9a20, 0x18dd1: 0x6d017820, 0x18dd2: 0x6ce31420, 0x18dd3: 0x6c532620, + 0x18dd4: 0x6cea7820, 0x18dd5: 0x6ca80220, 0x18dd6: 0x6ca80420, 0x18dd7: 0x6d1a4020, + 0x18dd8: 0x6d313420, + 0x18dde: 0x6cec5020, 0x18ddf: 0x6cd45a20, + 0x18de0: 0x6caaea20, 0x18de1: 0x6d12e420, 0x18de2: 0x6cb5b620, 0x18de3: 0x6ce82620, + 0x18de4: 0x6c4df820, 0x18de5: 0x6c75ac20, 0x18de6: 0x6c302c20, 0x18de7: 0x6c5cba20, + 0x18de8: 0x6c923220, 0x18de9: 0x6c707a20, 0x18dea: 0x6c5db820, 0x18deb: 0x6c8cdc20, + 0x18ded: 0x6ce4e420, 0x18dee: 0x6c94e820, + 0x18df5: 0x6c43e220, 0x18df6: 0x6d0c0620, 0x18df7: 0x6cd26420, + 0x18df8: 0x6d090c20, 0x18df9: 0x6cae3020, 0x18dfa: 0x6c217820, 0x18dfb: 0x6ca96c20, + 0x18dfc: 0x6c348a20, 0x18dfd: 0x6d2aca20, 0x18dfe: 0x6c362820, 0x18dff: 0x6d00a820, + // Block 0x638, offset 0x18e00 + 0x18e00: 0x6d1ea020, 0x18e01: 0x6c362a20, 0x18e02: 0x6cd13420, 0x18e03: 0x6cf1dc20, + 0x18e04: 0x6c7a3e20, 0x18e05: 0x6c555020, 0x18e06: 0x6c43e620, 0x18e07: 0x6cf9c020, + 0x18e08: 0x6c97dc20, 0x18e09: 0x6c94a820, 0x18e0a: 0x6c602a20, 0x18e0b: 0x6c53f620, + 0x18e0c: 0x6d361620, 0x18e0f: 0x6cec5420, + 0x18e11: 0x6c046820, 0x18e12: 0x6c00a020, 0x18e13: 0x6d3c6220, + 0x18e14: 0x6cb8ec20, 0x18e15: 0x6c46ac20, 0x18e16: 0x6c289220, 0x18e17: 0x6c06a820, + 0x18e18: 0x6c0f0e20, 0x18e19: 0x6c1e6020, 0x18e1a: 0x6c862820, 0x18e1b: 0x6cfff620, + 0x18e1c: 0x6d054020, + 0x18e22: 0x6c537020, 0x18e23: 0x6ce40620, + 0x18e24: 0x6c244220, 0x18e25: 0x6c7e0a20, 0x18e26: 0x6c816020, 0x18e27: 0x6d367820, + 0x18e28: 0x6d004e20, 0x18e29: 0x6cf66620, 0x18e2b: 0x6cbcce20, + 0x18e2c: 0x6d2be820, 0x18e2d: 0x6cf66820, + 0x18e30: 0x6c23a220, 0x18e31: 0x6c607a20, 0x18e32: 0x6c5dec20, 0x18e33: 0x6cde1220, + 0x18e34: 0x6d0cbe20, 0x18e35: 0x6d072420, 0x18e36: 0x6cb31c20, 0x18e37: 0x6cc9dc20, + 0x18e3b: 0x6c4c3a20, + 0x18e3c: 0x6d133620, 0x18e3d: 0x6cfdfe20, 0x18e3e: 0x6d08e620, 0x18e3f: 0x6c516c20, + // Block 0x639, offset 0x18e40 + 0x18e40: 0x6d42aa20, 0x18e41: 0x6d188020, 0x18e42: 0x6c226620, + 0x18e44: 0x6c837020, 0x18e45: 0x6cfba620, 0x18e46: 0x6cdf5620, 0x18e47: 0x6cc6bc20, + 0x18e48: 0x6d18be20, 0x18e49: 0x6d372220, 0x18e4a: 0x6cf6fe20, 0x18e4b: 0x6cfbb420, + 0x18e4c: 0x6c72aa20, 0x18e4d: 0x6c60d620, 0x18e4e: 0x6c4e6820, + 0x18e50: 0x6cad9e20, 0x18e51: 0x6c86e620, 0x18e53: 0x6c7fe020, + 0x18e54: 0x6cc9e020, 0x18e55: 0x6c4e7020, 0x18e56: 0x6d0cfe20, 0x18e57: 0x6cc16020, + 0x18e59: 0x6d0d1620, 0x18e5a: 0x6c4e7420, 0x18e5b: 0x6c76ba20, + 0x18e5c: 0x6c1bce20, 0x18e5d: 0x6ca7e820, 0x18e5e: 0x6c5d9620, + 0x18e60: 0x6c092820, 0x18e61: 0x6cf98a20, 0x18e62: 0x6cf24820, 0x18e63: 0x6d080420, + 0x18e64: 0x6cec9420, 0x18e65: 0x6d1f8a20, 0x18e66: 0x6cbd4c20, 0x18e67: 0x6d066c20, + 0x18e68: 0x6ca7f020, 0x18e69: 0x6c091620, 0x18e6a: 0x6c501020, 0x18e6b: 0x6c6e0820, + 0x18e6c: 0x6c02bc20, 0x18e6d: 0x6c02be20, + 0x18e70: 0x6d311e20, 0x18e71: 0x6cdf8a20, 0x18e72: 0x6c70f220, + 0x18e74: 0x6d427a20, 0x18e75: 0x6c106220, 0x18e76: 0x6c6a8a20, 0x18e77: 0x6c009020, + 0x18e78: 0x6d29fc20, 0x18e79: 0x6c222620, 0x18e7a: 0x6c37fc20, + 0x18e7f: 0x6ca80620, + // Block 0x63a, offset 0x18e80 + 0x18e80: 0x6c8f2a20, 0x18e81: 0x6c99e220, 0x18e82: 0x6c334420, 0x18e83: 0x6c052020, + 0x18e84: 0x6c095a20, 0x18e85: 0x6c05ee20, 0x18e87: 0x6c1f2c20, + 0x18e88: 0x6cfa3620, 0x18e89: 0x6ce4e820, 0x18e8a: 0x6c16a220, + 0x18e8d: 0x6c342420, 0x18e8e: 0x6cee7e20, 0x18e8f: 0x6c3fea20, + 0x18e90: 0x6c348c20, 0x18e91: 0x6d225420, 0x18e92: 0x6d12ac20, 0x18e93: 0x6c7c7620, + 0x18e94: 0x6cefb620, 0x18e95: 0x6c7b2220, 0x18e97: 0x6cee8020, + 0x18e98: 0x6d10a420, 0x18e99: 0x6c903420, 0x18e9a: 0x6d037a20, 0x18e9b: 0x6d3b7c20, + 0x18e9c: 0x6c1b3020, 0x18e9d: 0x6d00b420, 0x18e9e: 0x6ca83a20, 0x18e9f: 0x6c810020, + 0x18ea0: 0x6d13fe20, 0x18ea1: 0x6d3f9e20, 0x18ea2: 0x6c976a20, 0x18ea3: 0x6d2f3820, + 0x18ea4: 0x6cfa4220, 0x18ea5: 0x6c4bfe20, 0x18ea6: 0x6d00c820, + 0x18ea8: 0x6c625c20, 0x18ea9: 0x6c8a0220, 0x18eaa: 0x6d184820, 0x18eab: 0x6c607c20, + 0x18eac: 0x6d1a8e20, 0x18eae: 0x6c266020, 0x18eaf: 0x6d184a20, + 0x18eb0: 0x6d020a20, 0x18eb1: 0x6c506220, 0x18eb2: 0x6d1e5c20, 0x18eb3: 0x6c76ea20, + 0x18eb4: 0x6c163220, 0x18eb5: 0x6cdf3e20, 0x18eb6: 0x6ce13020, 0x18eb7: 0x6d34a220, + 0x18eb8: 0x6c066e20, 0x18eb9: 0x6c9b5220, 0x18eba: 0x6c7ca220, 0x18ebb: 0x6c153620, + 0x18ebc: 0x6c82e020, 0x18ebe: 0x6cf91220, + // Block 0x63b, offset 0x18ec0 + 0x18ec0: 0x6cf72820, 0x18ec1: 0x6cbc7220, 0x18ec2: 0x6ca47e20, 0x18ec3: 0x6d274e20, + 0x18ec5: 0x6c8f7220, 0x18ec6: 0x6c3fbe20, 0x18ec7: 0x6d3f7220, + 0x18ec9: 0x6c475e20, 0x18eca: 0x6c762820, 0x18ecb: 0x6c2dd420, + 0x18ecc: 0x6c57aa20, 0x18ecd: 0x6c7ce020, 0x18ecf: 0x6c42fc20, + 0x18ed0: 0x6ce26020, 0x18ed2: 0x6ccd2a20, 0x18ed3: 0x6c7f3a20, + 0x18ed4: 0x6ca7f420, 0x18ed5: 0x6c3de220, 0x18ed6: 0x6c42fe20, 0x18ed7: 0x6cbc8420, + 0x18ed8: 0x6c04e420, 0x18ed9: 0x6c632620, 0x18eda: 0x6c796a20, 0x18edb: 0x6cf85620, + 0x18edc: 0x6d230820, 0x18edd: 0x6d3c5a20, 0x18ede: 0x6cd05820, 0x18edf: 0x6c21ba20, + 0x18ee0: 0x6cfed420, 0x18ee1: 0x6c615220, 0x18ee2: 0x6caa3820, 0x18ee3: 0x6cff6a20, + 0x18ee4: 0x6d165a20, 0x18ee5: 0x6d20a820, 0x18ee6: 0x6d145420, 0x18ee7: 0x6d0d3620, + 0x18ee8: 0x6cd04020, 0x18ee9: 0x6cc4aa20, 0x18eea: 0x6c501220, 0x18eeb: 0x6cc96620, + 0x18eec: 0x6c755820, 0x18eed: 0x6d1ee820, 0x18eef: 0x6d02fc20, + 0x18ef0: 0x6cadae20, 0x18ef1: 0x6cbfa020, 0x18ef2: 0x6c14b820, + 0x18ef4: 0x6c106420, 0x18ef5: 0x6c2fdc20, 0x18ef6: 0x6cd88a20, 0x18ef7: 0x6c378620, + 0x18ef9: 0x6c992820, 0x18efa: 0x6d281820, 0x18efb: 0x6c5e8a20, + 0x18efd: 0x6cbc1e20, 0x18efe: 0x6d045820, 0x18eff: 0x6cad4a20, + // Block 0x63c, offset 0x18f00 + 0x18f00: 0x6c1e7420, 0x18f01: 0x6cae5220, 0x18f02: 0x6caad620, 0x18f03: 0x6c6a8c20, + 0x18f04: 0x6d13d420, 0x18f05: 0x6c37c220, 0x18f06: 0x6c34d420, + 0x18f0a: 0x6c347c20, + 0x18f0d: 0x6cbca420, 0x18f0e: 0x6c938220, 0x18f0f: 0x6cc02620, + 0x18f10: 0x6cda1020, 0x18f11: 0x6c11f020, 0x18f12: 0x6c310020, 0x18f13: 0x6cf5b820, + 0x18f14: 0x6c3c2e20, 0x18f15: 0x6d172220, 0x18f16: 0x6cdd0e20, 0x18f17: 0x6cbc7a20, + 0x18f18: 0x6cb37620, 0x18f19: 0x6d02c020, 0x18f1a: 0x6ce7b020, 0x18f1b: 0x6d032820, + 0x18f1c: 0x6d1f1220, 0x18f1d: 0x6c06fe20, 0x18f1e: 0x6c905820, + 0x18f23: 0x6d279820, + 0x18f24: 0x6c83ac20, 0x18f25: 0x6cde4420, 0x18f26: 0x6c802620, 0x18f27: 0x6c97b820, + 0x18f28: 0x6cbb3a20, 0x18f29: 0x6d38d220, 0x18f2a: 0x6d0e5c20, 0x18f2b: 0x6cf5de20, + 0x18f2c: 0x6c923620, 0x18f2d: 0x6cf5e020, 0x18f2e: 0x6ccae220, 0x18f2f: 0x6c395220, + 0x18f31: 0x6cefb820, 0x18f32: 0x6c383a20, 0x18f33: 0x6d179020, + 0x18f34: 0x6ca4f420, 0x18f35: 0x6c196c20, 0x18f36: 0x6ce09820, 0x18f37: 0x6c5ec620, + 0x18f38: 0x6cd5d020, 0x18f39: 0x6cb10e20, 0x18f3a: 0x6c012e20, 0x18f3b: 0x6c7ac420, + 0x18f3c: 0x6c139820, 0x18f3e: 0x6cfb5a20, 0x18f3f: 0x6d361c20, + // Block 0x63d, offset 0x18f40 + 0x18f42: 0x6c3c4820, 0x18f43: 0x6c88f420, + 0x18f44: 0x6d0a0a20, 0x18f45: 0x6d06ee20, 0x18f46: 0x6c9d5020, 0x18f47: 0x6c5bd620, + 0x18f48: 0x6ca29220, 0x18f49: 0x6d1d8c20, 0x18f4a: 0x6d2df420, 0x18f4b: 0x6d17de20, + 0x18f4c: 0x6caa1e20, 0x18f4d: 0x6ce10020, 0x18f4e: 0x6cf63e20, 0x18f4f: 0x6d27ac20, + 0x18f50: 0x6cd5e220, 0x18f51: 0x6c3e9420, 0x18f52: 0x6d17e020, 0x18f53: 0x6c26b020, + 0x18f55: 0x6c881e20, 0x18f56: 0x6c127a20, 0x18f57: 0x6c116e20, + 0x18f58: 0x6c725e20, 0x18f59: 0x6c927a20, 0x18f5a: 0x6cdae220, 0x18f5b: 0x6ca59a20, + 0x18f5c: 0x6c02dc20, 0x18f5d: 0x6c018c20, 0x18f5e: 0x6cba6420, + 0x18f60: 0x6c24d420, 0x18f61: 0x6c232420, 0x18f63: 0x6cc48220, + 0x18f64: 0x6ca73220, 0x18f65: 0x6c96fe20, 0x18f66: 0x6d030220, 0x18f67: 0x6d26e020, + 0x18f68: 0x6ca38220, 0x18f69: 0x6c02ee20, 0x18f6a: 0x6cd01620, 0x18f6b: 0x6c96dc20, + 0x18f6e: 0x6c807a20, 0x18f6f: 0x6cf6e620, + 0x18f70: 0x6d26f820, 0x18f71: 0x6d372620, 0x18f72: 0x6cf26420, 0x18f73: 0x6c57f620, + 0x18f74: 0x6c9c1820, 0x18f75: 0x6ca7bc20, 0x18f76: 0x6ced6620, 0x18f77: 0x6c9c9c20, + 0x18f78: 0x6ca89e20, 0x18f79: 0x6cc1f820, 0x18f7a: 0x6d29b820, 0x18f7b: 0x6c893e20, + 0x18f7c: 0x6d34c620, 0x18f7d: 0x6d3eda20, 0x18f7e: 0x6c4d1a20, 0x18f7f: 0x6d066e20, + // Block 0x63e, offset 0x18f80 + 0x18f80: 0x6c501820, 0x18f81: 0x6d078020, 0x18f82: 0x6d35b020, 0x18f83: 0x6c9e1220, + 0x18f84: 0x6c214820, 0x18f85: 0x6c46b020, 0x18f87: 0x6c216020, + 0x18f88: 0x6c946a20, 0x18f89: 0x6d3a9820, 0x18f8a: 0x6cd43820, 0x18f8b: 0x6c8a5e20, + 0x18f8c: 0x6c6fcc20, 0x18f8d: 0x6d014020, 0x18f8e: 0x6c2f9220, 0x18f8f: 0x6c6bae20, + 0x18f90: 0x6cc65220, 0x18f91: 0x6c982e20, 0x18f93: 0x6c788a20, + 0x18f94: 0x6d119620, 0x18f95: 0x6ca8fc20, 0x18f96: 0x6d148e20, 0x18f97: 0x6c80a620, + 0x18f98: 0x6d1df020, 0x18f99: 0x6d1a4420, 0x18f9a: 0x6d0c7e20, 0x18f9b: 0x6cda9e20, + 0x18f9d: 0x6c8baa20, 0x18f9e: 0x6d0aec20, 0x18f9f: 0x6c98d820, + 0x18fa0: 0x6c9ff420, 0x18fa1: 0x6d41aa20, 0x18fa2: 0x6d225620, 0x18fa3: 0x6d179220, + 0x18fa4: 0x6c46b220, 0x18fa5: 0x6c9cfa20, 0x18fa6: 0x6c75c820, 0x18fa7: 0x6cf1e420, + 0x18fa9: 0x6c773a20, 0x18faa: 0x6c2d7020, 0x18fab: 0x6c8f9820, + 0x18fad: 0x6d040620, 0x18fae: 0x6c255420, 0x18faf: 0x6cbbec20, + 0x18fb0: 0x6c9dde20, 0x18fb1: 0x6c9c1c20, 0x18fb2: 0x6cbdf420, + 0x18fb4: 0x6cecc220, 0x18fb5: 0x6c2a5e20, 0x18fb6: 0x6c009420, + 0x18fb8: 0x6c0b8c20, 0x18fb9: 0x6ca9fe20, 0x18fba: 0x6c882020, 0x18fbb: 0x6c6caa20, + 0x18fbc: 0x6d207020, 0x18fbd: 0x6c20bc20, 0x18fbe: 0x6d426420, 0x18fbf: 0x6c0fe020, + // Block 0x63f, offset 0x18fc0 + 0x18fc0: 0x6c5a9020, 0x18fc1: 0x6d11f020, 0x18fc2: 0x6ce9e020, 0x18fc3: 0x6c61e220, + 0x18fc4: 0x6c012420, 0x18fc5: 0x6c95fa20, 0x18fc6: 0x6c613220, 0x18fc7: 0x6cefba20, + 0x18fc8: 0x6c0e7420, 0x18fc9: 0x6d289020, 0x18fca: 0x6d06f020, 0x18fcb: 0x6ca71220, + 0x18fcc: 0x6d281420, 0x18fce: 0x6c039820, 0x18fcf: 0x6d301a20, + 0x18fd0: 0x6c705420, 0x18fd1: 0x6cef9020, 0x18fd2: 0x6d016e20, 0x18fd3: 0x6cb75420, + 0x18fd4: 0x6d149020, 0x18fd5: 0x6d017020, 0x18fd6: 0x6c222a20, 0x18fd7: 0x6cc02820, + 0x18fd8: 0x6c316a20, 0x18fd9: 0x6ca7d420, 0x18fda: 0x6cb78a20, 0x18fdb: 0x6c613c20, + 0x18fdc: 0x6ce99420, 0x18fde: 0x6cd94c20, 0x18fdf: 0x6c2d7420, + 0x18fe0: 0x6c816820, 0x18fe1: 0x6d2e2c20, + 0x18fe4: 0x6d1a1c20, 0x18fe5: 0x6c132620, 0x18fe6: 0x6c611220, 0x18fe7: 0x6c5b8620, + 0x18fe8: 0x6d3ede20, 0x18fe9: 0x6c7f8820, 0x18fea: 0x6ca49020, 0x18feb: 0x6c71f020, + 0x18fec: 0x6cbdfc20, 0x18fed: 0x6c272620, 0x18fef: 0x6c6a6020, + 0x18ff0: 0x6d062620, 0x18ff1: 0x6c22fa20, 0x18ff2: 0x6d1e6e20, 0x18ff3: 0x6c30d820, + 0x18ff4: 0x6c1afe20, 0x18ff6: 0x6c9f9020, 0x18ff7: 0x6c59a820, + 0x18ff8: 0x6cdc2020, 0x18ff9: 0x6c785620, 0x18ffa: 0x6d40aa20, 0x18ffb: 0x6c501a20, + 0x18ffc: 0x6c19ba20, 0x18ffd: 0x6d094220, 0x18ffe: 0x6ca5bc20, 0x18fff: 0x6c1bec20, + // Block 0x640, offset 0x19000 + 0x19000: 0x6c87f020, 0x19001: 0x6c01a020, 0x19002: 0x6ca22a20, 0x19003: 0x6cd7ca20, + 0x19004: 0x6cfdb220, 0x19005: 0x6d0f9020, 0x19006: 0x6c572c20, 0x19007: 0x6c261620, + 0x19008: 0x6cc02a20, 0x19009: 0x6c814c20, 0x1900a: 0x6c3e2e20, 0x1900b: 0x6c334620, + 0x1900c: 0x6c984c20, 0x1900d: 0x6c80a820, 0x1900e: 0x6ceb7220, 0x1900f: 0x6c4df220, + 0x19010: 0x6c988820, 0x19011: 0x6c0ed220, 0x19012: 0x6cc43220, 0x19013: 0x6cb59e20, + 0x19014: 0x6c4df420, 0x19016: 0x6c905c20, + 0x19018: 0x6ce57e20, 0x19019: 0x6d2aba20, 0x1901a: 0x6cb5ba20, 0x1901b: 0x6d298a20, + 0x1901c: 0x6c9c4620, 0x1901d: 0x6cadd220, 0x1901e: 0x6d2e5620, 0x1901f: 0x6cfe2c20, + 0x19020: 0x6c429c20, 0x19022: 0x6cb5bc20, + 0x19024: 0x6c923820, 0x19026: 0x6d283020, 0x19027: 0x6c362e20, + 0x19028: 0x6c329a20, 0x19029: 0x6c9f5020, 0x1902a: 0x6cee8420, 0x1902b: 0x6cc2ec20, + 0x1902c: 0x6cda1c20, 0x1902d: 0x6c9f5220, 0x1902e: 0x6ce85e20, + 0x19030: 0x6ca03620, 0x19031: 0x6d11b420, 0x19032: 0x6c746220, 0x19033: 0x6c862c20, + 0x19034: 0x6c7b2620, 0x19035: 0x6c42a420, 0x19036: 0x6d257e20, 0x19037: 0x6c26fa20, + 0x19039: 0x6c816220, 0x1903a: 0x6c909c20, 0x1903b: 0x6cba6620, + 0x1903c: 0x6c025c20, 0x1903d: 0x6c0c7620, 0x1903e: 0x6d1d9a20, 0x1903f: 0x6c989820, + // Block 0x641, offset 0x19040 + 0x19040: 0x6c29e020, 0x19042: 0x6c025e20, + 0x19044: 0x6cf78e20, 0x19045: 0x6c3ed420, 0x19046: 0x6c27f820, 0x19047: 0x6c701420, + 0x19048: 0x6cc90220, 0x19049: 0x6ce77a20, 0x1904a: 0x6cc13220, 0x1904b: 0x6c368220, + 0x1904c: 0x6cb51a20, 0x1904d: 0x6c607e20, 0x1904e: 0x6c608020, 0x1904f: 0x6c574c20, + 0x19050: 0x6c69b820, 0x19051: 0x6d41cc20, 0x19052: 0x6c0c7a20, 0x19053: 0x6c9b4620, + 0x19054: 0x6c045620, 0x19055: 0x6cf01420, 0x19056: 0x6d160e20, 0x19057: 0x6c02f020, + 0x19058: 0x6d229e20, 0x19059: 0x6c4ff020, 0x1905a: 0x6c336620, 0x1905b: 0x6cf31a20, + 0x1905c: 0x6ca6d620, 0x1905d: 0x6c249e20, 0x1905f: 0x6c846e20, + 0x19060: 0x6c916c20, 0x19061: 0x6ca7be20, 0x19062: 0x6c57f820, 0x19063: 0x6c86f020, + 0x19065: 0x6c941c20, 0x19066: 0x6c3c7e20, 0x19067: 0x6c9d0c20, + 0x19068: 0x6d249e20, 0x1906a: 0x6c71e620, + 0x1906d: 0x6d2dec20, 0x1906e: 0x6cae8220, 0x1906f: 0x6d15b220, + 0x19071: 0x6c61e420, 0x19072: 0x6c08ae20, + 0x19074: 0x6cc5b420, 0x19075: 0x6c597220, 0x19076: 0x6c388020, 0x19077: 0x6c43c220, + 0x19078: 0x6c7a8020, 0x19079: 0x6c6bb420, 0x1907a: 0x6ccbc220, + 0x1907c: 0x6cd7c220, 0x1907d: 0x6ce71620, 0x1907e: 0x6d24c820, 0x1907f: 0x6d3e0420, + // Block 0x642, offset 0x19080 + 0x19080: 0x6c092c20, 0x19081: 0x6c7ad820, 0x19082: 0x6c859e20, 0x19083: 0x6c598220, + 0x19084: 0x6d09e620, 0x19085: 0x6caad820, 0x19087: 0x6d303820, + 0x19088: 0x6cf20220, 0x19089: 0x6cfb4420, 0x1908a: 0x6cb85a20, 0x1908b: 0x6d127a20, + 0x1908c: 0x6c996c20, 0x1908f: 0x6cd5d420, + 0x19091: 0x6cbb7a20, 0x19092: 0x6d3cd220, 0x19093: 0x6c7d6020, + 0x19094: 0x6cf4ea20, 0x19095: 0x6d1bb820, 0x19096: 0x6c207220, 0x19097: 0x6ce33e20, + 0x19098: 0x6c880e20, 0x19099: 0x6c087820, 0x1909a: 0x6c464e20, 0x1909b: 0x6c986820, + 0x1909c: 0x6d01d020, 0x1909d: 0x6c3cec20, 0x1909e: 0x6c909e20, 0x1909f: 0x6d2a1820, + 0x190a0: 0x6d335e20, 0x190a1: 0x6c1ea220, 0x190a2: 0x6c980020, 0x190a3: 0x6c8faa20, + 0x190a5: 0x6d1b8620, 0x190a6: 0x6cb1f020, 0x190a7: 0x6d337020, + 0x190a8: 0x6c653020, 0x190a9: 0x6c945420, 0x190aa: 0x6ca7e420, 0x190ab: 0x6d179a20, + 0x190ad: 0x6c623420, 0x190ae: 0x6c60a420, 0x190af: 0x6d2d1a20, + 0x190b0: 0x6d221a20, 0x190b1: 0x6c6fa620, 0x190b2: 0x6c585620, 0x190b3: 0x6d34e220, + 0x190b4: 0x6c7e3c20, 0x190b5: 0x6c8ca820, 0x190b6: 0x6d34f020, 0x190b7: 0x6c079420, + 0x190b8: 0x6d2cae20, 0x190b9: 0x6c705820, 0x190ba: 0x6c286620, 0x190bb: 0x6c8a9020, + 0x190bc: 0x6d16e820, 0x190bd: 0x6d2fa020, 0x190be: 0x6cfc8e20, 0x190bf: 0x6c1bf820, + // Block 0x643, offset 0x190c0 + 0x190c0: 0x6c22ba20, 0x190c1: 0x6c1b8420, 0x190c2: 0x6d0d5420, 0x190c3: 0x6c80aa20, + 0x190c4: 0x6c310220, 0x190c5: 0x6c905e20, 0x190c6: 0x6c14ec20, + 0x190c8: 0x6ce9a020, 0x190c9: 0x6c13da20, 0x190ca: 0x6c006620, 0x190cb: 0x6c1b9c20, + 0x190cd: 0x6d1cec20, 0x190ce: 0x6d305a20, 0x190cf: 0x6ce7ee20, + 0x190d1: 0x6ce9a620, 0x190d2: 0x6c13f420, 0x190d3: 0x6d11be20, + 0x190d4: 0x6d3ffe20, 0x190d6: 0x6cac4020, 0x190d7: 0x6cbc5620, + 0x190d8: 0x6c883220, 0x190d9: 0x6cbd9c20, 0x190da: 0x6c91d820, 0x190db: 0x6d0eb820, + 0x190dc: 0x6c778e20, 0x190dd: 0x6cda5e20, 0x190de: 0x6d192820, 0x190df: 0x6c14b420, + 0x190e0: 0x6c6ef620, 0x190e1: 0x6c67b020, 0x190e3: 0x6c6ea820, + 0x190e5: 0x6c305c20, 0x190e7: 0x6c733620, + 0x190e8: 0x6c4e8420, 0x190e9: 0x6c2c1020, + 0x190ec: 0x6c52f620, 0x190ee: 0x6c1b0820, 0x190ef: 0x6c2dae20, + 0x190f0: 0x6c093020, 0x190f2: 0x6d0a6e20, 0x190f3: 0x6c913e20, + 0x190f5: 0x6d007e20, 0x190f6: 0x6c094420, + 0x190f8: 0x6c095c20, 0x190fa: 0x6cfb4620, 0x190fb: 0x6cc8c820, + 0x190fc: 0x6c0d1420, 0x190fd: 0x6c379620, 0x190fe: 0x6c736220, + // Block 0x644, offset 0x19100 + 0x19100: 0x6d324820, 0x19101: 0x6c072e20, 0x19102: 0x6c365620, 0x19103: 0x6d227a20, + 0x19104: 0x6cc1b220, 0x19105: 0x6d299420, 0x19106: 0x6c9ca820, 0x19107: 0x6d16b220, + 0x19108: 0x6cd8e620, + 0x1910c: 0x6ccd6e20, 0x1910d: 0x6cdf1620, 0x1910e: 0x6ca28220, 0x1910f: 0x6c6e8220, + 0x19110: 0x6c0b9620, 0x19111: 0x6cc68e20, 0x19112: 0x6c136e20, 0x19113: 0x6c120220, + 0x19114: 0x6c2f4820, + 0x19119: 0x6c2b5620, 0x1911a: 0x6ce7ac20, 0x1911b: 0x6cde3220, + 0x1911c: 0x6d03ce20, 0x1911d: 0x6cd90a20, 0x1911e: 0x6c343e20, 0x1911f: 0x6cf85e20, + 0x19120: 0x6ce1b220, 0x19122: 0x6ce31620, 0x19123: 0x6ccd7820, + 0x19124: 0x6c667620, 0x19125: 0x6d35da20, 0x19126: 0x6cee7220, 0x19127: 0x6d1b4620, + 0x1912a: 0x6c58d620, 0x1912b: 0x6d37f220, + 0x1912c: 0x6cb78c20, 0x1912d: 0x6d3f8820, 0x1912f: 0x6d01c220, + 0x19130: 0x6d01d220, 0x19131: 0x6d2ade20, 0x19132: 0x6cef1e20, + 0x19135: 0x6cde9820, 0x19136: 0x6d2d9820, 0x19137: 0x6ca95820, + 0x1913b: 0x6d166620, + 0x1913c: 0x6cc58420, 0x1913d: 0x6cd59620, 0x1913e: 0x6c142a20, 0x1913f: 0x6d3d1e20, + // Block 0x645, offset 0x19140 + 0x19141: 0x6c9e0620, 0x19142: 0x6c5fdc20, 0x19143: 0x6c39a420, + 0x19144: 0x6cadfe20, 0x19145: 0x6c008e20, 0x19146: 0x6c392020, 0x19147: 0x6c029a20, + 0x19148: 0x6cbe0220, 0x19149: 0x6cb82220, 0x1914a: 0x6cffd020, 0x1914b: 0x6c3b1020, + 0x1914c: 0x6c417420, 0x1914d: 0x6cbb6620, 0x1914e: 0x6c437a20, 0x1914f: 0x6ce71c20, + 0x19150: 0x6c14ba20, 0x19151: 0x6d201620, 0x19152: 0x6c42b420, 0x19153: 0x6c07a820, + 0x19154: 0x6c3fb420, 0x19155: 0x6c1f0c20, 0x19156: 0x6d3aac20, + 0x19158: 0x6d390020, 0x1915a: 0x6c4f6220, 0x1915b: 0x6ca8e420, + 0x1915c: 0x6c73f820, 0x1915d: 0x6c1cb020, 0x1915e: 0x6c143820, 0x1915f: 0x6c799c20, + 0x19160: 0x6c8ae820, 0x19161: 0x6c85a020, 0x19162: 0x6d22e020, + 0x19164: 0x6d20d620, 0x19165: 0x6c4d5820, 0x19166: 0x6c85a220, 0x19167: 0x6c53ee20, + 0x19168: 0x6c45d820, 0x19169: 0x6c789820, 0x1916a: 0x6d260c20, 0x1916b: 0x6c2a6220, + 0x1916c: 0x6c5b9a20, 0x1916e: 0x6c4a2220, 0x1916f: 0x6c6f0620, + 0x19170: 0x6d429a20, 0x19171: 0x6c3fce20, 0x19172: 0x6cbcb220, 0x19173: 0x6c06c820, + 0x19174: 0x6c180a20, 0x19175: 0x6c223e20, 0x19176: 0x6c985020, 0x19177: 0x6c4d9820, + 0x19178: 0x6cf86a20, 0x19179: 0x6cc02e20, 0x1917a: 0x6c5a4620, + 0x1917d: 0x6c1d9620, 0x1917e: 0x6cca4c20, 0x1917f: 0x6d0bf420, + // Block 0x646, offset 0x19180 + 0x19180: 0x6d345620, 0x19181: 0x6c2a6c20, 0x19182: 0x6ce27420, 0x19183: 0x6c9aec20, + 0x19184: 0x6c8ce220, 0x19185: 0x6cd45e20, 0x19186: 0x6ce9fa20, 0x19187: 0x6c119220, + 0x19188: 0x6c2ea020, 0x19189: 0x6c181420, 0x1918a: 0x6cae9c20, 0x1918b: 0x6d13f020, + 0x1918c: 0x6c711220, 0x1918d: 0x6c61e820, 0x1918e: 0x6c7f0620, 0x1918f: 0x6ce4ea20, + 0x19190: 0x6d261a20, 0x19192: 0x6c112820, 0x19193: 0x6cb4e420, + 0x19194: 0x6d230e20, 0x19195: 0x6c880220, 0x19196: 0x6c231420, + 0x1919a: 0x6d212020, 0x1919b: 0x6c603220, + 0x1919c: 0x6cf09420, 0x1919d: 0x6c9cf020, 0x1919e: 0x6cdc3e20, 0x1919f: 0x6d00aa20, + 0x191a0: 0x6d059620, 0x191a1: 0x6c1c1c20, 0x191a2: 0x6cc06020, 0x191a3: 0x6c5bde20, + 0x191a5: 0x6d212220, 0x191a6: 0x6cbcc620, 0x191a7: 0x6cd74e20, + 0x191a8: 0x6cd72620, 0x191a9: 0x6c349020, 0x191aa: 0x6c908820, + 0x191ac: 0x6cad0620, 0x191ad: 0x6cdf7820, 0x191ae: 0x6d393020, 0x191af: 0x6d1af420, + 0x191b0: 0x6ccab420, 0x191b1: 0x6c3a5a20, 0x191b2: 0x6c187620, 0x191b3: 0x6d258020, + 0x191b4: 0x6d151620, 0x191b5: 0x6c5d2a20, 0x191b6: 0x6ccb3420, 0x191b7: 0x6d131020, + 0x191b8: 0x6c9fbc20, 0x191b9: 0x6c3bbe20, 0x191ba: 0x6c513620, + 0x191bc: 0x6d1b6420, 0x191bd: 0x6c130220, 0x191be: 0x6ca6b620, 0x191bf: 0x6c02e820, + // Block 0x647, offset 0x191c0 + 0x191c0: 0x6c3cb420, 0x191c1: 0x6c883420, 0x191c2: 0x6c16be20, 0x191c3: 0x6c15c820, + 0x191c4: 0x6c967020, 0x191c5: 0x6c2e5a20, 0x191c6: 0x6c54e620, 0x191c7: 0x6c928020, + 0x191c9: 0x6d184c20, 0x191ca: 0x6c574e20, 0x191cb: 0x6d2bf220, + 0x191cc: 0x6c550020, 0x191cd: 0x6c368420, 0x191ce: 0x6c5dee20, 0x191cf: 0x6cdcf820, + 0x191d0: 0x6ca6bc20, 0x191d1: 0x6cfcf620, 0x191d2: 0x6c842620, 0x191d3: 0x6cfcf820, + 0x191d4: 0x6d0eba20, 0x191d5: 0x6c8fa420, 0x191d6: 0x6c9af620, 0x191d7: 0x6c6c5c20, + 0x191d8: 0x6c5f5020, 0x191da: 0x6c0b5a20, 0x191db: 0x6d22a420, + 0x191dc: 0x6c5e0620, 0x191dd: 0x6c9ea420, 0x191de: 0x6c1df220, 0x191df: 0x6c970620, + 0x191e1: 0x6c822c20, 0x191e2: 0x6c6b5620, 0x191e3: 0x6cf10a20, + 0x191e4: 0x6d192a20, 0x191e5: 0x6d07e020, 0x191e6: 0x6cf91420, 0x191e7: 0x6c11e220, + 0x191e8: 0x6c7fe420, 0x191e9: 0x6d1b2220, 0x191ea: 0x6d027220, 0x191eb: 0x6d28a620, + 0x191ec: 0x6c95d220, 0x191ed: 0x6c8dd220, 0x191ee: 0x6cb97020, 0x191ef: 0x6c5d9a20, + 0x191f0: 0x6c646a20, 0x191f1: 0x6cf2a820, + 0x191f4: 0x6c43d420, 0x191f5: 0x6d399020, 0x191f6: 0x6c2e8220, 0x191f7: 0x6d1e2c20, + 0x191f8: 0x6c614220, 0x191f9: 0x6d0fc020, 0x191fa: 0x6cc82220, 0x191fb: 0x6cf79a20, + 0x191fc: 0x6cd6f020, 0x191fd: 0x6d240820, 0x191fe: 0x6d146020, 0x191ff: 0x6cb9f220, + // Block 0x648, offset 0x19200 + 0x19200: 0x6c5fde20, 0x19201: 0x6cc26420, 0x19202: 0x6ce48a20, 0x19203: 0x6cd42820, + 0x19204: 0x6cb9ee20, 0x19205: 0x6ca26020, 0x19206: 0x6c6c2620, 0x19207: 0x6c992420, + 0x19208: 0x6d1ac820, 0x19209: 0x6c412a20, 0x1920a: 0x6cb2ee20, 0x1920b: 0x6d084020, + 0x1920c: 0x6c994220, 0x1920d: 0x6c39c020, 0x1920e: 0x6d0b1020, 0x1920f: 0x6c425420, + 0x19210: 0x6cd95020, 0x19211: 0x6c5a8a20, 0x19212: 0x6d22d620, 0x19213: 0x6c484820, + 0x19214: 0x6c48e820, 0x19215: 0x6c8ef820, 0x19216: 0x6c35de20, 0x19217: 0x6d3eec20, + 0x19218: 0x6d3f3220, 0x19219: 0x6c093820, 0x1921a: 0x6cec1620, + 0x1921c: 0x6c8acc20, 0x1921f: 0x6c7af620, + 0x19221: 0x6c4d5a20, 0x19222: 0x6d19b020, 0x19223: 0x6d398820, + 0x19224: 0x6c1d4820, 0x19225: 0x6cfbea20, 0x19226: 0x6d087420, + 0x19228: 0x6cc01420, 0x19229: 0x6cae0c20, 0x1922a: 0x6c4ad620, 0x1922b: 0x6c373e20, + 0x1922c: 0x6c45dc20, 0x1922d: 0x6cbf0820, 0x1922e: 0x6c54ac20, 0x1922f: 0x6c81a620, + 0x19230: 0x6c85a420, 0x19231: 0x6c192220, 0x19232: 0x6cca1620, 0x19233: 0x6d3df420, + 0x19234: 0x6cf2ae20, 0x19235: 0x6cb3d420, 0x19236: 0x6c793020, 0x19237: 0x6cea8820, + 0x19238: 0x6cae5c20, 0x19239: 0x6ce27620, 0x1923a: 0x6cde4a20, 0x1923b: 0x6d3d4c20, + 0x1923c: 0x6c0c8e20, 0x1923d: 0x6c480e20, 0x1923e: 0x6c54be20, + // Block 0x649, offset 0x19240 + 0x19240: 0x6c0de020, 0x19241: 0x6d35de20, 0x19242: 0x6c302e20, 0x19243: 0x6c332220, + 0x19244: 0x6d387220, 0x19245: 0x6ca58a20, 0x19246: 0x6c8c1c20, 0x19247: 0x6cb32a20, + 0x19248: 0x6c613420, 0x19249: 0x6c9f5420, 0x1924a: 0x6cefc220, 0x1924b: 0x6c17ea20, + 0x1924c: 0x6c46b620, 0x1924d: 0x6c053220, 0x1924e: 0x6cc7aa20, 0x1924f: 0x6cdfa820, + 0x19250: 0x6c103a20, 0x19251: 0x6d3f8c20, 0x19252: 0x6c7c3c20, 0x19253: 0x6c815820, + 0x19254: 0x6c4ec220, 0x19255: 0x6d1c7020, 0x19256: 0x6d362620, 0x19257: 0x6c6ac620, + 0x19258: 0x6d040220, 0x19259: 0x6d00b820, 0x1925a: 0x6d0a1620, 0x1925b: 0x6ccd4620, + 0x1925c: 0x6cb9a620, 0x1925d: 0x6d004620, 0x1925e: 0x6cdacc20, 0x1925f: 0x6c4d1820, + 0x19260: 0x6c9d5820, 0x19261: 0x6c5cee20, 0x19262: 0x6caf7220, + 0x19264: 0x6c5be020, 0x19265: 0x6ca34c20, 0x19266: 0x6cd96220, 0x19267: 0x6c07bc20, + 0x19268: 0x6c1d7220, 0x19269: 0x6c6ae220, 0x1926a: 0x6c5a6e20, 0x1926b: 0x6c802c20, + 0x1926d: 0x6c56b420, 0x1926e: 0x6c30b620, 0x1926f: 0x6c5de420, + 0x19270: 0x6c4bd420, 0x19271: 0x6d111c20, 0x19272: 0x6c130420, 0x19273: 0x6c4b1220, + 0x19274: 0x6c66a620, 0x19275: 0x6c65c020, 0x19276: 0x6c29e620, 0x19277: 0x6c6d2420, + 0x19278: 0x6c96cc20, 0x19279: 0x6c5bf820, 0x1927a: 0x6c9e3420, 0x1927b: 0x6c11a820, + 0x1927c: 0x6c94ba20, 0x1927d: 0x6cb0aa20, 0x1927e: 0x6d105a20, 0x1927f: 0x6c726420, + // Block 0x64a, offset 0x19280 + 0x19280: 0x6c726620, 0x19281: 0x6cc3dc20, 0x19283: 0x6cb91220, + 0x19284: 0x6ccc8e20, 0x19286: 0x6c701820, 0x19287: 0x6c5df020, + 0x19288: 0x6d27fa20, 0x19289: 0x6c26b820, 0x1928a: 0x6d07ba20, 0x1928b: 0x6cff0420, + 0x1928c: 0x6c3ac620, 0x1928d: 0x6c131020, 0x1928e: 0x6d132420, + 0x19290: 0x6c2a9820, 0x19292: 0x6cbda020, 0x19293: 0x6c5b6a20, + 0x19294: 0x6cea6c20, 0x19296: 0x6cbb2420, 0x19297: 0x6cf7a020, + 0x19298: 0x6ca64a20, 0x19299: 0x6cc9ce20, 0x1929a: 0x6c9b5620, 0x1929b: 0x6ce95e20, + 0x1929c: 0x6c804220, 0x1929d: 0x6c4ff220, 0x1929e: 0x6c22e620, 0x1929f: 0x6d2d4e20, + 0x192a0: 0x6c023220, 0x192a1: 0x6c95c420, 0x192a2: 0x6c9efa20, + 0x192a4: 0x6c3daa20, 0x192a6: 0x6d010c20, 0x192a7: 0x6c0f8c20, + 0x192a8: 0x6c5c6820, 0x192a9: 0x6cbeb820, 0x192aa: 0x6d010e20, + 0x192ad: 0x6c0fa220, 0x192ae: 0x6cb9dc20, 0x192af: 0x6cb34020, + 0x192b0: 0x6c696820, 0x192b1: 0x6c750a20, 0x192b2: 0x6c7dc620, 0x192b3: 0x6cd97a20, + 0x192b4: 0x6c718e20, 0x192b5: 0x6c36f020, 0x192b6: 0x6ca8c020, 0x192b7: 0x6cb95a20, + 0x192b8: 0x6c2f1a20, 0x192b9: 0x6c2f1c20, 0x192bb: 0x6cb4da20, + 0x192bc: 0x6d33c220, 0x192bd: 0x6cb5c620, 0x192be: 0x6d3c8620, 0x192bf: 0x6c7a1c20, + // Block 0x64b, offset 0x192c0 + 0x192c0: 0x6d20b420, 0x192c1: 0x6cbd5820, 0x192c2: 0x6c7a2620, 0x192c3: 0x6c50d420, + 0x192c4: 0x6c3e0a20, 0x192c6: 0x6c2be220, 0x192c7: 0x6cfca620, + 0x192c8: 0x6c4b3c20, 0x192c9: 0x6c50ee20, 0x192ca: 0x6cc44620, 0x192cb: 0x6c4eaa20, + 0x192cc: 0x6ce7b420, 0x192cd: 0x6c0ee620, 0x192ce: 0x6ccd3e20, 0x192cf: 0x6c08de20, + 0x192d0: 0x6c924e20, 0x192d1: 0x6d12f020, 0x192d2: 0x6ca5e220, 0x192d3: 0x6c1fba20, + 0x192d4: 0x6cca5020, 0x192d5: 0x6c2e2820, 0x192d6: 0x6c925020, 0x192d7: 0x6ce81220, + 0x192d8: 0x6c88bc20, 0x192d9: 0x6c786620, 0x192da: 0x6cca5220, 0x192db: 0x6d31e420, + 0x192dc: 0x6c1fc020, 0x192dd: 0x6c890220, 0x192de: 0x6c998c20, + 0x192e0: 0x6cb90620, 0x192e1: 0x6c769220, 0x192e2: 0x6cceb620, 0x192e3: 0x6cfeea20, + 0x192e4: 0x6c0a2020, 0x192e5: 0x6d2bf420, 0x192e6: 0x6d1b7220, 0x192e7: 0x6cf6bc20, + 0x192e8: 0x6ccdaa20, 0x192e9: 0x6cdb1220, 0x192ea: 0x6cc98e20, 0x192eb: 0x6cc8e820, + 0x192ec: 0x6c219c20, 0x192ed: 0x6c917c20, 0x192ee: 0x6c8d9820, 0x192ef: 0x6c13c620, + 0x192f1: 0x6c593020, + 0x192f4: 0x6c63a220, 0x192f5: 0x6c04ee20, 0x192f6: 0x6c553220, 0x192f7: 0x6c30ec20, + 0x192f9: 0x6c90f020, 0x192fa: 0x6c70d220, 0x192fb: 0x6c73a620, + 0x192fc: 0x6c785c20, 0x192fd: 0x6cdd5220, 0x192fe: 0x6c95f020, 0x192ff: 0x6d303c20, + // Block 0x64c, offset 0x19300 + 0x19300: 0x6c2f7220, 0x19301: 0x6c32d220, 0x19302: 0x6d3b1c20, 0x19303: 0x6d0d3a20, + 0x19304: 0x6cacf420, 0x19305: 0x6c13d820, + 0x1930a: 0x6d15e620, + 0x1930d: 0x6d1f3420, 0x1930e: 0x6c5ae620, 0x1930f: 0x6d11c820, + 0x19310: 0x6d118020, 0x19311: 0x6d34d620, 0x19312: 0x6c45d220, 0x19313: 0x6cb6d420, + 0x19314: 0x6c44ac20, 0x19317: 0x6c545c20, + 0x19318: 0x6c9d2420, 0x19319: 0x6c3df020, 0x1931a: 0x6c54a020, 0x1931b: 0x6c4a1a20, + 0x1931c: 0x6ce05620, 0x1931d: 0x6c2b1a20, 0x1931f: 0x6d0c7220, + 0x19322: 0x6cc26620, + 0x19324: 0x6c16e420, 0x19325: 0x6ca02e20, 0x19326: 0x6ce1bc20, 0x19327: 0x6c063c20, + 0x19328: 0x6c011e20, 0x1932b: 0x6cfbf620, + 0x1932f: 0x6c996e20, + 0x19330: 0x6c811c20, 0x19331: 0x6ca42220, 0x19332: 0x6c070c20, 0x19333: 0x6c18be20, + 0x19335: 0x6c3a0420, 0x19336: 0x6d38e620, 0x19337: 0x6c5ece20, + 0x19338: 0x6c6a1420, 0x19339: 0x6cd5d620, 0x1933b: 0x6c7dd220, + 0x1933c: 0x6c2ea620, 0x1933d: 0x6c925220, + // Block 0x64d, offset 0x19340 + 0x19342: 0x6d215020, 0x19343: 0x6cdf2620, + 0x19344: 0x6c162e20, 0x19345: 0x6c97de20, 0x19346: 0x6c9fb820, 0x19347: 0x6c593220, + 0x19348: 0x6cf15420, 0x19349: 0x6caa9220, 0x1934a: 0x6c593420, 0x1934b: 0x6c540a20, + 0x1934c: 0x6c6e8e20, 0x1934d: 0x6c0f2620, 0x1934e: 0x6cfc2020, 0x1934f: 0x6c864820, + 0x19350: 0x6c6d2620, 0x19352: 0x6c989c20, 0x19353: 0x6cb1ba20, + 0x19354: 0x6c4fde20, 0x19355: 0x6d0fd620, 0x19357: 0x6cfd0a20, + 0x19358: 0x6cdb1420, 0x19359: 0x6cf01620, 0x1935a: 0x6c183c20, 0x1935b: 0x6cf6be20, + 0x1935c: 0x6c6d4c20, 0x1935d: 0x6c135a20, 0x1935e: 0x6c51e420, 0x1935f: 0x6c3b4020, + 0x19360: 0x6ccca620, 0x19361: 0x6c8d6a20, 0x19363: 0x6c337220, + 0x19364: 0x6cb54220, 0x19365: 0x6cb4b820, 0x19366: 0x6d26fa20, 0x19367: 0x6c0f8e20, + 0x19369: 0x6c5c7820, 0x1936a: 0x6c2f0220, 0x1936b: 0x6d0ef620, + 0x1936c: 0x6c72d020, 0x1936d: 0x6c69e020, 0x1936e: 0x6ca44c20, 0x1936f: 0x6c8b8620, + 0x19370: 0x6d20aa20, 0x19371: 0x6ce41c20, 0x19372: 0x6ce47620, 0x19373: 0x6cf42a20, + 0x19374: 0x6c53a220, 0x19375: 0x6cff7220, 0x19376: 0x6c503620, + 0x19378: 0x6ce55c20, 0x19379: 0x6d32ca20, 0x1937b: 0x6c59a020, + 0x1937c: 0x6c403420, 0x1937f: 0x6cea2c20, + // Block 0x64e, offset 0x19380 + 0x19381: 0x6cc61a20, 0x19382: 0x6c68ba20, + 0x19384: 0x6d031c20, 0x19387: 0x6d260020, + 0x19388: 0x6c73ee20, 0x19389: 0x6c572820, 0x1938b: 0x6c056020, + 0x1938c: 0x6ca1c420, 0x1938e: 0x6c425e20, 0x1938f: 0x6cef9220, + 0x19391: 0x6c9a8020, 0x19392: 0x6cd89c20, 0x19393: 0x6c0b8820, + 0x19394: 0x6c914220, 0x19395: 0x6cc0e620, + 0x19398: 0x6c43da20, 0x19399: 0x6d303e20, 0x1939a: 0x6c938c20, 0x1939b: 0x6cac2020, + 0x1939c: 0x6cc66220, 0x1939d: 0x6cc03020, 0x1939e: 0x6c8aea20, 0x1939f: 0x6c45e020, + 0x193a0: 0x6cfbf820, 0x193a1: 0x6cf86e20, 0x193a2: 0x6d02c620, + 0x193a4: 0x6ca79620, + 0x193a8: 0x6d00a220, 0x193a9: 0x6c8afe20, 0x193aa: 0x6c3d6420, 0x193ab: 0x6c25d620, + 0x193ac: 0x6d3d4e20, 0x193ad: 0x6c034820, 0x193ae: 0x6d429c20, 0x193af: 0x6d305020, + 0x193b0: 0x6d416e20, 0x193b1: 0x6c510620, 0x193b2: 0x6c601a20, + 0x193b4: 0x6c648620, + 0x193b8: 0x6ce8b020, 0x193b9: 0x6cfb5c20, 0x193ba: 0x6d0d8620, 0x193bb: 0x6ce0f420, + 0x193bc: 0x6cde5620, 0x193bd: 0x6c2bf620, 0x193be: 0x6c744c20, 0x193bf: 0x6c01fc20, + // Block 0x64f, offset 0x193c0 + 0x193c0: 0x6c4e1020, 0x193c1: 0x6cff8820, 0x193c2: 0x6c712020, 0x193c3: 0x6cee8c20, + 0x193c4: 0x6c054c20, 0x193c5: 0x6d3c5e20, 0x193c6: 0x6ca82e20, 0x193c7: 0x6ce53820, + 0x193c8: 0x6ca3c020, 0x193cb: 0x6d1fd420, + 0x193cc: 0x6c9dc620, 0x193cf: 0x6ca3c820, + 0x193d0: 0x6cd13c20, 0x193d1: 0x6c13a220, 0x193d2: 0x6d0c1020, 0x193d3: 0x6c44b620, + 0x193d4: 0x6c1d5420, 0x193d5: 0x6cc86420, 0x193d6: 0x6c63ca20, 0x193d7: 0x6cbd8220, + 0x193d8: 0x6c98e620, 0x193d9: 0x6c365c20, 0x193da: 0x6c863220, 0x193db: 0x6c1b3420, + 0x193dc: 0x6d29da20, 0x193dd: 0x6c513820, 0x193de: 0x6c6ae420, 0x193df: 0x6ca72c20, + 0x193e1: 0x6c499020, 0x193e2: 0x6c540c20, 0x193e3: 0x6c414220, + 0x193e5: 0x6c07be20, 0x193e6: 0x6cdd8020, 0x193e7: 0x6cf37220, + 0x193e8: 0x6c623820, 0x193e9: 0x6cf66a20, 0x193ea: 0x6cbf4a20, 0x193eb: 0x6c515820, + 0x193ec: 0x6cf23020, 0x193ed: 0x6cfb7220, 0x193ee: 0x6c6b0820, 0x193ef: 0x6c5cf820, + 0x193f0: 0x6cb00420, 0x193f1: 0x6cd00620, 0x193f2: 0x6c1d7620, 0x193f3: 0x6d324e20, + 0x193f5: 0x6d2d8a20, 0x193f6: 0x6cd78a20, 0x193f7: 0x6c5f0420, + 0x193f8: 0x6cd99420, 0x193f9: 0x6d354220, 0x193fa: 0x6c07a220, + 0x193fe: 0x6c810e20, 0x193ff: 0x6c0a2220, + // Block 0x650, offset 0x19400 + 0x19400: 0x6d08ae20, 0x19401: 0x6cade820, 0x19402: 0x6c278a20, + 0x19404: 0x6d340e20, 0x19405: 0x6cb00e20, 0x19406: 0x6c15d420, 0x19407: 0x6c0a2420, + 0x19408: 0x6cdafa20, 0x19409: 0x6c5df220, 0x1940a: 0x6c523420, 0x1940b: 0x6c6f2a20, + 0x1940c: 0x6c200620, 0x1940d: 0x6c67b420, 0x1940e: 0x6ca5a020, 0x1940f: 0x6c47be20, + 0x19410: 0x6c39de20, 0x19413: 0x6cde9a20, + 0x19414: 0x6c256020, 0x19415: 0x6cf6c220, 0x19416: 0x6c2a8420, 0x19417: 0x6cfb9020, + 0x19418: 0x6c7b7220, 0x19419: 0x6d308a20, 0x1941a: 0x6cddfc20, 0x1941b: 0x6c55ae20, + 0x1941c: 0x6c256220, 0x1941d: 0x6c92c820, 0x1941e: 0x6c738c20, 0x1941f: 0x6c92ca20, + 0x19420: 0x6cba7220, 0x19421: 0x6cad9620, 0x19422: 0x6d326c20, + 0x19424: 0x6c867a20, 0x19425: 0x6c128e20, 0x19426: 0x6cb64a20, + 0x19429: 0x6ce41e20, 0x1942a: 0x6c8d6c20, 0x1942b: 0x6cc1d420, + 0x1942c: 0x6c88cc20, 0x1942d: 0x6c91e020, 0x1942e: 0x6cd54020, 0x1942f: 0x6c462620, + 0x19430: 0x6d309a20, 0x19431: 0x6cad3c20, 0x19432: 0x6c6d5a20, 0x19433: 0x6cbe9020, + 0x19436: 0x6d3fc420, 0x19437: 0x6cb46620, + 0x19438: 0x6c6cbc20, 0x19439: 0x6c0c8620, 0x1943a: 0x6c66ee20, 0x1943b: 0x6c4bf220, + 0x1943e: 0x6d2a3020, 0x1943f: 0x6c8b5a20, + // Block 0x651, offset 0x19440 + 0x19440: 0x6c848a20, 0x19441: 0x6c95c620, 0x19442: 0x6cd08620, 0x19443: 0x6c9de220, + 0x19444: 0x6c66fc20, 0x19445: 0x6c2bb020, 0x19446: 0x6c076a20, + 0x19448: 0x6c88d420, 0x1944a: 0x6cfbc620, 0x1944b: 0x6cb22220, + 0x1944c: 0x6cc41620, 0x1944d: 0x6c8fda20, 0x1944e: 0x6d41e020, + 0x19450: 0x6c74fe20, 0x19451: 0x6ccd2020, 0x19452: 0x6d092620, + 0x19454: 0x6d027820, 0x19456: 0x6c804e20, 0x19457: 0x6cb6aa20, + 0x19458: 0x6d159820, 0x19459: 0x6caad420, 0x1945a: 0x6c84ca20, 0x1945b: 0x6d271e20, + 0x1945d: 0x6d15be20, 0x1945e: 0x6c1a9220, 0x1945f: 0x6c619620, + 0x19460: 0x6c4f4a20, 0x19461: 0x6d015e20, 0x19462: 0x6c792a20, 0x19463: 0x6d3e1020, + 0x19464: 0x6c509220, 0x19465: 0x6cf86220, 0x19466: 0x6cc26820, 0x19467: 0x6c4d1020, + 0x19468: 0x6cf95220, 0x19469: 0x6c4d1220, 0x1946a: 0x6c4a4820, 0x1946b: 0x6c14c220, + 0x1946c: 0x6d09fa20, 0x1946d: 0x6d058220, 0x1946e: 0x6cd09c20, 0x1946f: 0x6c79e820, + 0x19470: 0x6cf96020, 0x19471: 0x6ccc4a20, 0x19472: 0x6d208a20, 0x19473: 0x6d0bae20, + 0x19474: 0x6cb3f220, 0x19475: 0x6d40bc20, 0x19476: 0x6d1fc820, 0x19477: 0x6d3f3e20, + 0x19478: 0x6c88be20, 0x19479: 0x6cfaaa20, 0x1947a: 0x6cfa3e20, 0x1947b: 0x6d15f620, + 0x1947c: 0x6ccc5820, 0x1947d: 0x6d0e8420, 0x1947e: 0x6c69a220, 0x1947f: 0x6cf66e20, + // Block 0x652, offset 0x19480 + 0x19480: 0x6c1bb620, 0x19481: 0x6cd3b220, 0x19482: 0x6c774620, 0x19483: 0x6d1afc20, + 0x19484: 0x6c522420, 0x19485: 0x6d189620, 0x19486: 0x6cf6e820, 0x19487: 0x6ccb6a20, + 0x19488: 0x6c6d5c20, 0x19489: 0x6d135e20, 0x1948a: 0x6d1ec420, 0x1948b: 0x6cc41820, + 0x1948c: 0x6d129a20, 0x1948d: 0x6c945e20, 0x1948e: 0x6c7d9c20, 0x1948f: 0x6d333820, + 0x19494: 0x6d003a20, 0x19496: 0x6c253a20, 0x19497: 0x6d04e420, + 0x19498: 0x6c01d820, 0x19499: 0x6d051e20, 0x1949a: 0x6c118820, 0x1949b: 0x6c201820, + 0x1949c: 0x6d2c1e20, 0x1949e: 0x6d16f420, 0x1949f: 0x6caf4420, + 0x194a0: 0x6c7a3020, 0x194a1: 0x6cd0fa20, 0x194a2: 0x6c80bc20, 0x194a3: 0x6ce9e420, + 0x194a4: 0x6cf61020, 0x194a5: 0x6c8d0620, 0x194a6: 0x6cb4f820, 0x194a7: 0x6cf2f020, + 0x194a8: 0x6c88fa20, 0x194a9: 0x6c319e20, 0x194aa: 0x6c9af420, 0x194ab: 0x6c807220, + 0x194ac: 0x6cefdc20, 0x194ad: 0x6c32ca20, 0x194ae: 0x6c7b2a20, 0x194af: 0x6c004c20, + 0x194b0: 0x6d291a20, 0x194b1: 0x6c5bfa20, 0x194b2: 0x6d182620, 0x194b3: 0x6ca14c20, + 0x194b4: 0x6d3f5e20, 0x194b5: 0x6c3be820, 0x194b6: 0x6caec420, + 0x194b8: 0x6c0a6c20, 0x194b9: 0x6c871e20, 0x194ba: 0x6c918220, 0x194bb: 0x6c964620, + 0x194bc: 0x6c4d0a20, 0x194bd: 0x6d31bc20, 0x194be: 0x6c40ee20, 0x194bf: 0x6cc3ac20, + // Block 0x653, offset 0x194c0 + 0x194c0: 0x6d315220, 0x194c1: 0x6c797a20, 0x194c2: 0x6c1a0420, 0x194c3: 0x6c6ffe20, + 0x194c4: 0x6c746420, 0x194c5: 0x6c623a20, 0x194c6: 0x6c8d5620, + 0x194c8: 0x6cceaa20, 0x194c9: 0x6cc40020, 0x194ca: 0x6cc8ea20, 0x194cb: 0x6c21ac20, + 0x194cc: 0x6ca5b220, 0x194cd: 0x6d339820, 0x194ce: 0x6c907a20, 0x194cf: 0x6cad3620, + 0x194d2: 0x6c063820, 0x194d3: 0x6cc66420, + 0x194d4: 0x6cfa9a20, 0x194d5: 0x6c832c20, 0x194d6: 0x6cfeb420, 0x194d7: 0x6c3d6620, + 0x194d8: 0x6cc18620, 0x194da: 0x6ccbe820, 0x194db: 0x6d352c20, + 0x194dc: 0x6cdfe020, 0x194dd: 0x6cc70e20, 0x194de: 0x6cda4a20, 0x194df: 0x6d1cf620, + 0x194e0: 0x6c98e820, 0x194e1: 0x6ca3ca20, 0x194e2: 0x6c0baa20, + 0x194e4: 0x6cd65820, 0x194e5: 0x6ce11020, 0x194e6: 0x6c4ee220, 0x194e7: 0x6ccaf620, + 0x194e8: 0x6cc69420, 0x194ea: 0x6c2aa820, 0x194eb: 0x6cb44e20, + 0x194ec: 0x6c687820, 0x194ed: 0x6ce07620, 0x194ef: 0x6cc48e20, + 0x194f0: 0x6ca92c20, 0x194f1: 0x6c8b5c20, 0x194f2: 0x6c2f2020, 0x194f3: 0x6c2e8620, + 0x194f4: 0x6d381620, 0x194f6: 0x6c93f420, 0x194f7: 0x6c28b020, + 0x194f8: 0x6cf56020, 0x194f9: 0x6c4aba20, 0x194fa: 0x6c5fbe20, 0x194fb: 0x6ca67620, + 0x194fc: 0x6d164a20, 0x194fd: 0x6ca75820, 0x194fe: 0x6d221e20, 0x194ff: 0x6cedf220, + // Block 0x654, offset 0x19500 + 0x19500: 0x6c4ce620, 0x19501: 0x6d2b3c20, 0x19502: 0x6d0c5820, 0x19503: 0x6c251a20, + 0x19504: 0x6cfb2620, 0x19505: 0x6c68be20, 0x19506: 0x6ce80620, 0x19507: 0x6c3fac20, + 0x19508: 0x6cae0020, 0x1950a: 0x6d1e9220, 0x1950b: 0x6cbfa220, + 0x1950c: 0x6d0ad620, 0x1950d: 0x6c107220, 0x1950e: 0x6c0b7c20, 0x1950f: 0x6cd31c20, + 0x19510: 0x6d2c2220, 0x19511: 0x6d16c020, 0x19512: 0x6c0b7e20, + 0x19514: 0x6c333820, 0x19515: 0x6c7f8e20, 0x19516: 0x6d13d820, 0x19517: 0x6c149220, + 0x19518: 0x6c1cb220, 0x19519: 0x6d087820, 0x1951a: 0x6d069220, 0x1951b: 0x6d20d820, + 0x1951c: 0x6d04c020, + 0x19520: 0x6cde3620, 0x19521: 0x6c4c1620, + 0x19525: 0x6c906420, 0x19526: 0x6d018220, 0x19527: 0x6c180c20, + 0x19528: 0x6c657e20, 0x19529: 0x6cdf9820, 0x1952a: 0x6cb08c20, 0x1952b: 0x6d296820, + 0x1952c: 0x6d080620, 0x1952d: 0x6cfb3c20, 0x1952e: 0x6ca7d220, + 0x19534: 0x6c9d3820, 0x19535: 0x6c61f020, 0x19536: 0x6caa1c20, 0x19537: 0x6c54c020, + 0x19538: 0x6c571020, 0x19539: 0x6cee1020, 0x1953a: 0x6d1f2a20, 0x1953b: 0x6d2ac020, + 0x1953c: 0x6c09a020, 0x1953d: 0x6c9cee20, 0x1953e: 0x6cbab020, 0x1953f: 0x6d019220, + // Block 0x655, offset 0x19540 + 0x19540: 0x6c394420, 0x19541: 0x6d176020, 0x19542: 0x6cdfa020, 0x19543: 0x6c832e20, + 0x19544: 0x6d1e2e20, 0x19546: 0x6c6d0220, 0x19547: 0x6ccf4a20, + 0x19548: 0x6d1b4820, 0x19549: 0x6c613820, 0x1954b: 0x6cdaa620, + 0x1954f: 0x6cee1c20, + 0x19550: 0x6c9e5820, 0x19551: 0x6cdab420, 0x19552: 0x6d17a620, 0x19553: 0x6ccc8820, + 0x19554: 0x6cf61420, 0x19555: 0x6c603e20, 0x19556: 0x6c960020, 0x19557: 0x6d1ea620, + 0x19558: 0x6c998220, 0x19559: 0x6d2c7c20, 0x1955a: 0x6cdc4020, 0x1955b: 0x6d362a20, + 0x1955c: 0x6c0b9c20, 0x1955d: 0x6c83d820, + 0x19565: 0x6cbc4820, 0x19566: 0x6c498e20, 0x19567: 0x6cf64a20, + 0x19568: 0x6d324a20, 0x19569: 0x6d1d9020, 0x1956a: 0x6ca84020, 0x1956b: 0x6c75ca20, + 0x1956c: 0x6d01c620, 0x1956d: 0x6d11b620, 0x1956e: 0x6d01c820, 0x1956f: 0x6d33f020, + 0x19570: 0x6ca5a820, 0x19572: 0x6cd7f420, 0x19573: 0x6c903620, + 0x19574: 0x6c18d220, 0x19575: 0x6c9d5c20, 0x19576: 0x6cc3cc20, 0x19577: 0x6c27e420, + 0x19578: 0x6ccd4820, + 0x1957c: 0x6cdae820, 0x1957d: 0x6d01da20, 0x1957e: 0x6c0f2820, 0x1957f: 0x6c2f7a20, + // Block 0x656, offset 0x19580 + 0x19580: 0x6d40ca20, 0x19582: 0x6cd5f220, 0x19583: 0x6ccf2220, + 0x19584: 0x6c4ee420, 0x19585: 0x6cdfb220, 0x19586: 0x6c431420, + 0x1958a: 0x6ca36420, 0x1958b: 0x6c9d7a20, + 0x1958c: 0x6d0a3020, 0x1958d: 0x6c9afa20, 0x1958e: 0x6c66b420, 0x1958f: 0x6c24fe20, + 0x19590: 0x6c749220, 0x19591: 0x6c51de20, 0x19592: 0x6c3ac820, 0x19593: 0x6cd28220, + 0x19594: 0x6c17f220, 0x19595: 0x6cd0c220, 0x19596: 0x6caa8a20, 0x19597: 0x6cb2c420, + 0x19598: 0x6c980220, + 0x1959d: 0x6d189a20, 0x1959e: 0x6c1dda20, + 0x195a0: 0x6c7a6220, 0x195a1: 0x6c05d420, 0x195a2: 0x6c825a20, 0x195a3: 0x6c787020, + 0x195a4: 0x6ccc7820, 0x195a5: 0x6c0a4e20, 0x195a6: 0x6cdbfc20, 0x195a7: 0x6c443420, + 0x195a8: 0x6cb0c020, 0x195a9: 0x6d189c20, 0x195aa: 0x6cfb9220, 0x195ab: 0x6ca6c820, + 0x195ac: 0x6d1c9820, 0x195ad: 0x6d3a8020, 0x195ae: 0x6c216220, 0x195af: 0x6c3cbc20, + 0x195b0: 0x6d074620, 0x195b1: 0x6cb19c20, 0x195b2: 0x6cf48020, 0x195b3: 0x6c8a2420, + 0x195b4: 0x6c124c20, 0x195b5: 0x6d409020, 0x195b6: 0x6d422a20, 0x195b7: 0x6c0bc620, + 0x195b8: 0x6d122a20, 0x195b9: 0x6c58a420, 0x195ba: 0x6cac3220, 0x195bb: 0x6d04fa20, + 0x195bd: 0x6c82ea20, 0x195be: 0x6cbee420, 0x195bf: 0x6d001220, + // Block 0x657, offset 0x195c0 + 0x195c0: 0x6c689620, 0x195c1: 0x6c4c9420, + 0x195c4: 0x6d0cf020, 0x195c5: 0x6d092420, 0x195c6: 0x6d39e220, 0x195c7: 0x6c527e20, + 0x195c8: 0x6d1cb820, 0x195c9: 0x6cf71620, + 0x195cc: 0x6c889220, 0x195cd: 0x6cfc4820, 0x195ce: 0x6c58bc20, 0x195cf: 0x6d1a1620, + 0x195d1: 0x6c892a20, 0x195d2: 0x6ccd6020, 0x195d3: 0x6c125220, + 0x195d4: 0x6c077020, 0x195d5: 0x6c662220, 0x195d6: 0x6cd63020, 0x195d7: 0x6c397a20, + 0x195d8: 0x6c2d9820, 0x195da: 0x6c03d820, 0x195db: 0x6d21fe20, + 0x195de: 0x6ca47420, 0x195df: 0x6c831420, + 0x195e0: 0x6d198220, 0x195e1: 0x6c272820, 0x195e3: 0x6c14ea20, + 0x195e4: 0x6c178e20, 0x195e5: 0x6c416a20, 0x195e6: 0x6c6cdc20, 0x195e7: 0x6ca59220, + 0x195eb: 0x6c8a6a20, + 0x195ec: 0x6ca0e620, 0x195ed: 0x6d1fb220, 0x195ef: 0x6c8f2820, + 0x195f0: 0x6c4de620, 0x195f2: 0x6d1e7420, 0x195f3: 0x6c6cf020, + 0x195f4: 0x6c1b8c20, 0x195f5: 0x6cc5dc20, 0x195f6: 0x6ca9b620, + 0x195f9: 0x6c53ba20, 0x195fa: 0x6ce53620, + 0x195fc: 0x6c002420, 0x195fd: 0x6c485620, 0x195fe: 0x6c0bf820, 0x195ff: 0x6c0eea20, + // Block 0x658, offset 0x19600 + 0x19600: 0x6cbf1420, 0x19602: 0x6cd5d820, 0x19603: 0x6c20ee20, + 0x19604: 0x6c5b5420, 0x19605: 0x6c179a20, 0x19606: 0x6c3ff220, 0x19607: 0x6c5ab620, + 0x19608: 0x6c363a20, 0x19609: 0x6cf09a20, 0x1960a: 0x6c3b7820, 0x1960b: 0x6cdfe220, + 0x1960d: 0x6c94fa20, 0x1960e: 0x6c51cc20, 0x1960f: 0x6d1e4a20, + 0x19610: 0x6c5b5a20, 0x19612: 0x6d215820, 0x19613: 0x6d3ff820, + 0x19614: 0x6d0e8a20, 0x19615: 0x6cc07420, 0x19616: 0x6d2fbc20, 0x19617: 0x6c6f1a20, + 0x19618: 0x6cdf2820, + 0x1961f: 0x6cea0820, + 0x19620: 0x6c8bc220, 0x19621: 0x6c6f2620, 0x19622: 0x6d2c8220, 0x19623: 0x6d038620, + 0x19624: 0x6c56ba20, 0x19626: 0x6d071020, + 0x1962a: 0x6c254c20, 0x1962b: 0x6cbeb020, + 0x1962c: 0x6ca14e20, 0x1962e: 0x6d2a2220, 0x1962f: 0x6c084c20, + 0x19630: 0x6c1ace20, 0x19633: 0x6d0ebc20, + 0x19634: 0x6c443620, 0x19635: 0x6ca16220, 0x19636: 0x6c075c20, 0x19637: 0x6c732820, + 0x19638: 0x6c2ee620, 0x19639: 0x6d2fe020, 0x1963b: 0x6cf3ea20, + 0x1963c: 0x6d0ebe20, 0x1963e: 0x6c74c620, 0x1963f: 0x6cfade20, + // Block 0x659, offset 0x19640 + 0x19640: 0x6cdf4a20, 0x19641: 0x6c4e6620, 0x19643: 0x6c2d2c20, + 0x19644: 0x6c62ac20, 0x19645: 0x6c6b6020, 0x19647: 0x6d414c20, + 0x19649: 0x6d025820, 0x1964a: 0x6c7f7620, 0x1964b: 0x6c38e220, + 0x1964c: 0x6c5e4020, 0x1964d: 0x6cf92820, 0x1964e: 0x6ca8b620, 0x1964f: 0x6c9cb820, + 0x19650: 0x6cc49c20, 0x19651: 0x6c24c220, 0x19652: 0x6d1a3220, 0x19653: 0x6c9d2820, + 0x19655: 0x6c747e20, 0x19656: 0x6cc0ea20, 0x19657: 0x6ce73820, + 0x19658: 0x6ced7a20, 0x19659: 0x6d2ffc20, 0x1965a: 0x6c84fe20, 0x1965b: 0x6cce9c20, + 0x1965c: 0x6c79a620, 0x1965d: 0x6cfa7e20, 0x1965e: 0x6d301e20, 0x1965f: 0x6d33c420, + 0x19660: 0x6ce5be20, 0x19661: 0x6cd4bc20, 0x19662: 0x6c073e20, 0x19663: 0x6d136220, + 0x19664: 0x6cb14c20, 0x19665: 0x6c164420, 0x19666: 0x6c563e20, 0x19667: 0x6c791620, + 0x19668: 0x6c6f4a20, 0x19669: 0x6c011620, 0x1966a: 0x6c213020, 0x1966b: 0x6cb97620, + 0x1966c: 0x6c06ea20, 0x1966d: 0x6c032620, 0x1966e: 0x6c3b6020, 0x1966f: 0x6c77d620, + 0x19670: 0x6ceafc20, 0x19671: 0x6ceafe20, 0x19672: 0x6d423020, 0x19673: 0x6c8cbc20, + 0x19675: 0x6c4aea20, 0x19676: 0x6d0be620, 0x19677: 0x6cd35420, + 0x19678: 0x6c545220, 0x19679: 0x6c8b0020, 0x1967a: 0x6ccbee20, 0x1967b: 0x6cd8b220, + 0x1967d: 0x6c071020, 0x1967e: 0x6cc5e820, 0x1967f: 0x6c319820, + // Block 0x65a, offset 0x19680 + 0x19680: 0x6c0eec20, 0x19681: 0x6c895620, 0x19682: 0x6cba0c20, 0x19683: 0x6c3aac20, + 0x19684: 0x6c624220, 0x19685: 0x6d3ffa20, 0x19686: 0x6c5ac820, 0x19687: 0x6c514020, + 0x19688: 0x6c83e420, 0x19689: 0x6d259620, 0x1968a: 0x6d26ce20, 0x1968b: 0x6d04e620, + 0x1968c: 0x6c15d620, 0x1968d: 0x6c2b8c20, 0x1968e: 0x6c825020, 0x1968f: 0x6c6cae20, + 0x19690: 0x6c1d1c20, 0x19691: 0x6cd8ec20, 0x19692: 0x6cb49a20, 0x19693: 0x6d11d420, + 0x19694: 0x6c678620, 0x19695: 0x6c583620, 0x19696: 0x6c595620, 0x19697: 0x6ce1f620, + 0x19698: 0x6cc82c20, 0x19699: 0x6cf26620, 0x1969a: 0x6d1ccc20, 0x1969b: 0x6cc53420, + 0x1969c: 0x6d1a3420, 0x1969d: 0x6cd30e20, 0x1969e: 0x6d1a2620, 0x1969f: 0x6c73e220, + 0x196a0: 0x6cea4020, 0x196a1: 0x6d080020, 0x196a2: 0x6c632e20, 0x196a3: 0x6d379e20, + 0x196a4: 0x6cbc9820, 0x196a5: 0x6d3ab220, 0x196a6: 0x6c2db020, + 0x196a8: 0x6d201820, 0x196ab: 0x6d14a420, + 0x196ac: 0x6cd2c220, 0x196ad: 0x6d16fa20, 0x196ae: 0x6ca0e820, + 0x196b1: 0x6cc3ae20, 0x196b2: 0x6cfea420, 0x196b3: 0x6cf3ba20, + 0x196b4: 0x6c44c020, 0x196b5: 0x6d1ce620, 0x196b6: 0x6ce66820, 0x196b7: 0x6cd2c620, + 0x196b8: 0x6ca5cc20, 0x196b9: 0x6c44c620, 0x196ba: 0x6cde5020, 0x196bb: 0x6cf28a20, + 0x196bc: 0x6c711820, 0x196bd: 0x6c15a820, 0x196be: 0x6cb19620, 0x196bf: 0x6d3d5420, + // Block 0x65b, offset 0x196c0 + 0x196c0: 0x6c54c420, 0x196c1: 0x6ca4fa20, 0x196c2: 0x6d0c9820, 0x196c3: 0x6c468620, + 0x196c4: 0x6d225c20, 0x196c5: 0x6c540420, 0x196c7: 0x6cd7f620, + 0x196c8: 0x6c1aba20, 0x196c9: 0x6c56a420, 0x196ca: 0x6d105220, 0x196cb: 0x6cf22e20, + 0x196cc: 0x6cfcd020, 0x196cd: 0x6cb21020, 0x196ce: 0x6cc69c20, 0x196cf: 0x6c90a820, + 0x196d0: 0x6c81b420, 0x196d1: 0x6cccfe20, 0x196d2: 0x6cfef020, 0x196d3: 0x6d2ae220, + 0x196d4: 0x6c4d7820, 0x196d5: 0x6c38b420, 0x196d6: 0x6c4e6220, 0x196d7: 0x6c14d420, + 0x196d8: 0x6d2e7620, 0x196da: 0x6cde1620, 0x196db: 0x6d3b2a20, + 0x196dc: 0x6ca9c820, 0x196dd: 0x6c4f1820, 0x196de: 0x6d21b620, 0x196df: 0x6d3db420, + 0x196e0: 0x6d205c20, 0x196e1: 0x6c86fc20, 0x196e2: 0x6c5e2a20, 0x196e3: 0x6cf73e20, + 0x196e4: 0x6cfb0020, 0x196e5: 0x6c155820, 0x196e6: 0x6c889420, + 0x196e8: 0x6cd7be20, 0x196e9: 0x6c6fce20, 0x196ea: 0x6cb42820, 0x196eb: 0x6cbffc20, + 0x196ec: 0x6c45d620, 0x196ed: 0x6d3ee820, 0x196ee: 0x6d20bc20, + 0x196f1: 0x6cc62820, 0x196f2: 0x6ca98420, 0x196f3: 0x6c99d820, + 0x196f4: 0x6c032820, 0x196f5: 0x6c6f9820, 0x196f7: 0x6d069620, + 0x196f8: 0x6cb29020, 0x196f9: 0x6c0b8a20, 0x196fa: 0x6c995420, + 0x196ff: 0x6d14ce20, + // Block 0x65c, offset 0x19700 + 0x19700: 0x6d20f620, 0x19702: 0x6cb29220, 0x19703: 0x6cc0f220, + 0x19704: 0x6c05f420, 0x19705: 0x6c5bae20, + 0x19709: 0x6c109420, 0x1970a: 0x6c985820, 0x1970b: 0x6c7e7020, + 0x1970c: 0x6ce8a820, 0x1970d: 0x6cf3c220, 0x1970e: 0x6c85ec20, 0x1970f: 0x6c8cea20, + 0x19711: 0x6c620220, 0x19712: 0x6c75bc20, 0x19713: 0x6d405620, + 0x19714: 0x6c349220, 0x19715: 0x6c745020, 0x19716: 0x6c277020, 0x19717: 0x6c073220, + 0x1971d: 0x6c7e8020, 0x1971e: 0x6c0d3e20, 0x1971f: 0x6cdbf820, + 0x19720: 0x6ce8c220, 0x19721: 0x6d08e220, + 0x19727: 0x6c350c20, + 0x1972a: 0x6cdc5420, 0x1972b: 0x6c0a2e20, + 0x1972c: 0x6ce87420, 0x1972d: 0x6ccb4a20, 0x1972e: 0x6c120020, 0x1972f: 0x6ce8e420, + 0x19730: 0x6c9e3620, 0x19731: 0x6c6c5220, 0x19732: 0x6c93b020, + 0x19735: 0x6d2e8020, 0x19736: 0x6c08f620, 0x19737: 0x6c60ac20, + 0x19738: 0x6d2b7420, 0x19739: 0x6d07d620, 0x1973a: 0x6c86a020, + 0x1973d: 0x6cdc8220, 0x1973e: 0x6d1dc220, 0x1973f: 0x6cd57620, + // Block 0x65d, offset 0x19740 + 0x19742: 0x6c358620, + 0x19747: 0x6cbf8620, + 0x19748: 0x6c958020, 0x19749: 0x6d322220, 0x1974a: 0x6cea4620, 0x1974b: 0x6c46fe20, + 0x1974c: 0x6d223c20, 0x1974d: 0x6c82be20, 0x1974e: 0x6c0eee20, 0x1974f: 0x6ca56e20, + 0x19750: 0x6cb12020, 0x19751: 0x6c890e20, 0x19752: 0x6ce17a20, 0x19753: 0x6c883820, + 0x19754: 0x6cf16220, 0x19755: 0x6c291020, 0x19756: 0x6c87be20, 0x19757: 0x6ce65e20, + 0x19758: 0x6cec1820, 0x19759: 0x6d390220, 0x1975a: 0x6c426620, 0x1975b: 0x6d03d220, + 0x1975c: 0x6c021420, 0x1975d: 0x6c393820, 0x1975e: 0x6caf0e20, 0x1975f: 0x6c0eda20, + 0x19760: 0x6ceb0620, 0x19761: 0x6cd4d020, 0x19762: 0x6d14e420, 0x19763: 0x6c0ef020, + 0x19764: 0x6cbcb820, 0x19765: 0x6ce80e20, 0x19766: 0x6c45e820, 0x19767: 0x6ce74820, + 0x19768: 0x6c4e1220, 0x19769: 0x6c1a0820, 0x1976a: 0x6c6ace20, 0x1976b: 0x6c593a20, + 0x1976c: 0x6d042c20, 0x1976d: 0x6c2d6220, 0x1976e: 0x6c146a20, 0x1976f: 0x6c308020, + 0x19770: 0x6caffc20, 0x19771: 0x6cc86a20, 0x19772: 0x6c8b2220, 0x19773: 0x6cd14020, + 0x19774: 0x6cab8420, 0x19775: 0x6c2c8020, 0x19776: 0x6d217020, 0x19777: 0x6c200220, + 0x19778: 0x6cc6a220, 0x19779: 0x6c774820, 0x1977a: 0x6ce12420, 0x1977b: 0x6c23b620, + 0x1977c: 0x6cb18220, 0x1977d: 0x6c209820, 0x1977e: 0x6c92ce20, 0x1977f: 0x6ce79020, + // Block 0x65e, offset 0x19780 + 0x19780: 0x6d336620, 0x19781: 0x6c86a420, 0x19782: 0x6cc9a020, 0x19783: 0x6cac4420, + 0x19784: 0x6cd82e20, 0x19786: 0x6c291220, 0x19787: 0x6c55de20, + 0x19788: 0x6d190c20, 0x19789: 0x6cfd3220, 0x1978a: 0x6d028020, 0x1978b: 0x6c958820, + 0x1978c: 0x6c8f5e20, 0x1978e: 0x6cdfea20, 0x1978f: 0x6c422e20, + 0x19791: 0x6ce01c20, + 0x19795: 0x6d1ef020, 0x19796: 0x6ca3e020, + 0x19798: 0x6c429a20, 0x19799: 0x6c759820, 0x1979a: 0x6c1bfe20, 0x1979b: 0x6c464020, + 0x1979c: 0x6cecfa20, 0x1979d: 0x6c85ee20, 0x1979e: 0x6c8e5420, 0x1979f: 0x6c8b0a20, + 0x197a0: 0x6cf9c420, 0x197a1: 0x6c06ac20, 0x197a2: 0x6c018a20, 0x197a3: 0x6d237220, + 0x197a4: 0x6c713220, 0x197a5: 0x6cc75820, 0x197a6: 0x6d0a3420, 0x197a7: 0x6d3e7a20, + 0x197a8: 0x6c25ee20, 0x197a9: 0x6c120620, 0x197aa: 0x6d2baa20, 0x197ab: 0x6d1dc420, + 0x197ac: 0x6c407420, 0x197ad: 0x6cc88a20, 0x197af: 0x6cf7cc20, + 0x197b0: 0x6cd5e620, 0x197b1: 0x6c68c020, 0x197b2: 0x6c68c220, 0x197b3: 0x6d057020, + 0x197b4: 0x6d2f2620, 0x197b7: 0x6cd71220, + 0x197b8: 0x6c18a820, 0x197b9: 0x6c390820, 0x197ba: 0x6c5ff820, 0x197bb: 0x6d33a820, + 0x197bd: 0x6c480420, 0x197be: 0x6cf4d620, + // Block 0x65f, offset 0x197c0 + 0x197c0: 0x6cbcae20, 0x197c1: 0x6cd5bc20, 0x197c2: 0x6c4d1420, 0x197c3: 0x6ceb0820, + 0x197c4: 0x6c319020, 0x197c5: 0x6d3f0220, 0x197c6: 0x6cc46e20, 0x197c7: 0x6ca27820, + 0x197c8: 0x6c3fd020, 0x197c9: 0x6c8cca20, 0x197ca: 0x6c601e20, 0x197cb: 0x6d04ce20, + 0x197cc: 0x6d084c20, 0x197cd: 0x6ca37820, 0x197ce: 0x6d0aee20, 0x197cf: 0x6c6be020, + 0x197d0: 0x6c85f020, 0x197d1: 0x6c269c20, 0x197d2: 0x6cc7a020, 0x197d3: 0x6d24ee20, + 0x197d4: 0x6c939c20, 0x197d5: 0x6cd06220, 0x197d6: 0x6c851820, 0x197d7: 0x6c89bc20, + 0x197d8: 0x6c450e20, 0x197d9: 0x6d033820, 0x197da: 0x6d004420, 0x197db: 0x6cbdd820, + 0x197dc: 0x6cbcc220, 0x197dd: 0x6c182020, 0x197de: 0x6d1f3c20, 0x197df: 0x6c109a20, + 0x197e0: 0x6c7bc220, 0x197e1: 0x6cc3be20, 0x197e2: 0x6c00aa20, 0x197e3: 0x6cbd3420, + 0x197e4: 0x6cbac020, 0x197e5: 0x6c1f5220, 0x197e6: 0x6cae1e20, 0x197e7: 0x6c7e0620, + 0x197e8: 0x6d13fa20, 0x197e9: 0x6c48ce20, 0x197ea: 0x6cd14220, 0x197eb: 0x6cb0fa20, + 0x197ed: 0x6d393820, 0x197ee: 0x6c59de20, 0x197ef: 0x6c5ad620, + 0x197f0: 0x6c557e20, 0x197f1: 0x6c074220, + 0x197f4: 0x6d2bec20, 0x197f5: 0x6c624620, 0x197f6: 0x6c47c220, 0x197f7: 0x6cf6a420, + 0x197f8: 0x6c431620, 0x197f9: 0x6c148620, 0x197fa: 0x6c96d620, 0x197fb: 0x6d3b2020, + 0x197fc: 0x6ce9ea20, 0x197fd: 0x6d3ca020, 0x197fe: 0x6cface20, 0x197ff: 0x6c80de20, + // Block 0x660, offset 0x19800 + 0x19803: 0x6d36e820, + 0x19804: 0x6c00cc20, 0x19805: 0x6cfc2e20, 0x19806: 0x6c4c3c20, 0x19807: 0x6cf7a220, + 0x19809: 0x6ce9f020, 0x1980a: 0x6c11de20, 0x1980b: 0x6ccb0420, + 0x1980c: 0x6cfaea20, 0x1980d: 0x6c6c0e20, 0x1980e: 0x6c3bfa20, 0x1980f: 0x6cc45a20, + 0x19811: 0x6d123a20, 0x19812: 0x6c29fa20, 0x19813: 0x6c63f420, + 0x19814: 0x6c82fc20, 0x19815: 0x6d0d0220, 0x19816: 0x6c918e20, 0x19817: 0x6ce9d620, + 0x19818: 0x6d1cd220, 0x19819: 0x6cb0de20, 0x1981a: 0x6c964a20, 0x1981b: 0x6c87a420, + 0x1981c: 0x6c0d1220, 0x1981e: 0x6c995620, 0x1981f: 0x6c040e20, + 0x19820: 0x6c5a6a20, 0x19822: 0x6d121220, 0x19823: 0x6c50a420, + 0x19824: 0x6c218420, 0x19825: 0x6c516420, 0x19826: 0x6ca95620, 0x19827: 0x6c1e0220, + 0x19828: 0x6c874620, 0x19829: 0x6ce19420, 0x1982a: 0x6c585a20, 0x1982b: 0x6c095420, + 0x1982c: 0x6c033420, 0x1982d: 0x6c181020, 0x1982e: 0x6d104620, 0x1982f: 0x6c269e20, + 0x19830: 0x6c024420, 0x19831: 0x6d091020, 0x19833: 0x6d3e5220, + 0x19834: 0x6c265a20, 0x19835: 0x6cc4ce20, 0x19836: 0x6c053820, 0x19837: 0x6c25f020, + 0x19838: 0x6ced4e20, 0x19839: 0x6cdebe20, 0x1983a: 0x6c05dc20, 0x1983b: 0x6c417a20, + 0x1983c: 0x6d0c7620, 0x1983d: 0x6cf5a620, 0x1983e: 0x6d3ad420, 0x1983f: 0x6d0b4e20, + // Block 0x661, offset 0x19840 + 0x19840: 0x6c393a20, 0x19841: 0x6d203c20, 0x19842: 0x6c012820, 0x19843: 0x6ce9a420, + 0x19844: 0x6c9b2020, 0x19845: 0x6ccf5c20, 0x19846: 0x6c6d2e20, 0x19847: 0x6c47ce20, + 0x19848: 0x6c627820, 0x19849: 0x6cbc0020, 0x1984a: 0x6c695820, 0x1984b: 0x6d0d0420, + 0x1984c: 0x6cf92e20, 0x1984d: 0x6c772020, 0x1984e: 0x6c9e0220, 0x1984f: 0x6d086a20, + 0x19850: 0x6cccc420, 0x19851: 0x6cf2d820, 0x19852: 0x6cb8b420, 0x19853: 0x6c58f620, + 0x19854: 0x6cc5d020, 0x19855: 0x6d322420, 0x19856: 0x6ce45c20, 0x19857: 0x6c740020, + 0x19858: 0x6d008620, 0x19859: 0x6cb75820, 0x1985a: 0x6c01f820, 0x1985b: 0x6c9a8220, + 0x1985c: 0x6c476820, 0x1985e: 0x6ce1b820, 0x1985f: 0x6c389220, + 0x19860: 0x6c722c20, 0x19861: 0x6c162820, 0x19862: 0x6cd74c20, 0x19863: 0x6c096820, + 0x19864: 0x6c996220, 0x19865: 0x6cd77820, 0x19866: 0x6c477220, 0x19867: 0x6c53a420, + 0x19868: 0x6c579620, 0x19869: 0x6c95fe20, 0x1986a: 0x6c4f7420, 0x1986b: 0x6c63b820, + 0x1986c: 0x6cc2e220, 0x1986d: 0x6c40f420, 0x1986e: 0x6c599020, 0x1986f: 0x6c103c20, + 0x19870: 0x6c478e20, 0x19871: 0x6c3c4e20, 0x19872: 0x6ca28820, 0x19873: 0x6c009c20, + 0x19874: 0x6d1cee20, 0x19875: 0x6cd75020, 0x19876: 0x6c89be20, 0x19877: 0x6c6ad020, + 0x19878: 0x6c1c2220, 0x19879: 0x6c6ad220, 0x1987a: 0x6c1d7020, 0x1987b: 0x6cb2e820, + 0x1987c: 0x6c186a20, 0x1987d: 0x6d0c9a20, 0x1987e: 0x6c321c20, 0x1987f: 0x6c2c5a20, + // Block 0x662, offset 0x19880 + 0x19881: 0x6c89c220, 0x19882: 0x6cfcd220, 0x19883: 0x6c0c0420, + 0x19884: 0x6d042e20, 0x19885: 0x6c9bda20, 0x19886: 0x6d130220, 0x19887: 0x6c9d5e20, + 0x19888: 0x6cb7a020, 0x19889: 0x6cb7a220, 0x1988a: 0x6cf30620, 0x1988b: 0x6d01dc20, + 0x1988c: 0x6d239820, 0x1988d: 0x6cb87020, 0x1988e: 0x6c1a2820, 0x1988f: 0x6d11c220, + 0x19890: 0x6d1bd420, 0x19891: 0x6d0fd420, 0x19892: 0x6c606820, 0x19893: 0x6d3fa220, + 0x19894: 0x6d07b220, 0x19895: 0x6c9f6e20, 0x19896: 0x6c907620, 0x19897: 0x6c766e20, + 0x19898: 0x6d11ca20, 0x19899: 0x6d0dcc20, 0x1989a: 0x6cdcfa20, 0x1989b: 0x6c4b6c20, + 0x1989c: 0x6c5a7a20, 0x1989d: 0x6d1c8e20, 0x1989e: 0x6cd14420, 0x1989f: 0x6c140220, + 0x198a0: 0x6c883c20, 0x198a2: 0x6d082420, 0x198a3: 0x6c200e20, + 0x198a4: 0x6c184220, 0x198a5: 0x6ca6ca20, 0x198a6: 0x6cc27820, 0x198a7: 0x6c9e7e20, + 0x198a8: 0x6c5dfe20, 0x198a9: 0x6d21a420, 0x198aa: 0x6d2e1620, 0x198ab: 0x6c55c820, + 0x198ac: 0x6c136020, 0x198ad: 0x6c0c2c20, 0x198ae: 0x6cb9d020, 0x198af: 0x6cf6ee20, + 0x198b0: 0x6c67c220, 0x198b1: 0x6c79c620, 0x198b2: 0x6c970220, 0x198b3: 0x6c98a220, + 0x198b4: 0x6d2e2220, 0x198b5: 0x6c0b5c20, 0x198b6: 0x6c5f6c20, 0x198b7: 0x6c74d820, + 0x198b8: 0x6ca45820, 0x198b9: 0x6c0a9020, 0x198ba: 0x6cd3f420, 0x198bb: 0x6cd7ac20, + 0x198bc: 0x6ca18820, 0x198bd: 0x6c8b6420, 0x198be: 0x6c9f0820, 0x198bf: 0x6ca19420, + // Block 0x663, offset 0x198c0 + 0x198c0: 0x6cf74820, 0x198c1: 0x6c156820, 0x198c2: 0x6cc21620, 0x198c3: 0x6c69e620, + 0x198c4: 0x6c5e5a20, 0x198c5: 0x6cfb1a20, 0x198c6: 0x6d068820, 0x198c7: 0x6ca98820, + 0x198c8: 0x6ce74020, 0x198c9: 0x6c542220, 0x198ca: 0x6d240e20, + 0x198cc: 0x6c1ce220, 0x198cd: 0x6c0fbc20, 0x198ce: 0x6d415820, 0x198cf: 0x6c2dba20, + 0x198d0: 0x6d3cfa20, 0x198d1: 0x6c5ea620, 0x198d2: 0x6cb86220, + 0x198d4: 0x6d043020, 0x198d5: 0x6c5c0020, 0x198d6: 0x6cd23420, 0x198d7: 0x6c7a1e20, + 0x198d9: 0x6c32f220, 0x198da: 0x6d10da20, 0x198db: 0x6d20da20, + 0x198dc: 0x6c056420, 0x198dd: 0x6c6a9220, 0x198de: 0x6d30e820, 0x198df: 0x6c634620, + 0x198e0: 0x6cd2c820, 0x198e1: 0x6c2bea20, 0x198e2: 0x6c302a20, 0x198e3: 0x6c223a20, + 0x198e4: 0x6c3fd220, 0x198e5: 0x6c9f4020, 0x198e6: 0x6d314020, 0x198e7: 0x6d31d020, + 0x198e9: 0x6d0e6420, 0x198ea: 0x6cbc2020, 0x198eb: 0x6c4f4e20, + 0x198ec: 0x6c45ea20, 0x198ed: 0x6cbb6e20, 0x198ee: 0x6c94a220, 0x198ef: 0x6c48f620, + 0x198f0: 0x6c7e7620, 0x198f1: 0x6cc8ce20, 0x198f2: 0x6c383420, 0x198f3: 0x6c260a20, + 0x198f4: 0x6d0c9c20, 0x198f5: 0x6c458a20, 0x198f6: 0x6c6ad420, 0x198f7: 0x6c48d020, + 0x198f8: 0x6c4c7020, 0x198f9: 0x6cdd7c20, 0x198fa: 0x6cf2ba20, 0x198fb: 0x6d335220, + 0x198fc: 0x6ca84220, 0x198fd: 0x6c2e2c20, 0x198fe: 0x6c7f3c20, 0x198ff: 0x6cde6420, + // Block 0x664, offset 0x19900 + 0x19900: 0x6c254620, 0x19901: 0x6d0af420, 0x19902: 0x6c4bd020, + 0x19905: 0x6c2b3420, 0x19907: 0x6c9dc820, + 0x19908: 0x6c6a2a20, 0x19909: 0x6c9f7020, 0x1990a: 0x6c71ca20, 0x1990b: 0x6d217420, + 0x1990c: 0x6d318020, 0x1990d: 0x6d2fc820, 0x1990e: 0x6d2cd220, 0x1990f: 0x6d038820, + 0x19911: 0x6c049420, 0x19912: 0x6c516620, 0x19913: 0x6c46d220, + 0x19914: 0x6c538220, 0x19915: 0x6c816e20, 0x19916: 0x6cf51620, 0x19917: 0x6c0e8c20, + 0x19918: 0x6c795420, 0x19919: 0x6c92d420, 0x1991a: 0x6c246420, 0x1991b: 0x6c885020, + 0x1991c: 0x6d141820, 0x1991d: 0x6cbc6020, 0x1991e: 0x6cd53820, + 0x19920: 0x6d08b220, 0x19921: 0x6c6c6220, 0x19922: 0x6cbd4220, 0x19923: 0x6c5b7020, + 0x19924: 0x6cdb3620, 0x19925: 0x6c207c20, 0x19926: 0x6c33b420, 0x19927: 0x6c8fb220, + 0x19929: 0x6ca4c820, 0x1992a: 0x6ce02220, 0x1992b: 0x6c285220, + 0x1992c: 0x6cf03e20, 0x1992d: 0x6c41f220, 0x1992e: 0x6c26c620, 0x1992f: 0x6c86d420, + 0x19930: 0x6c10de20, 0x19931: 0x6cfd3e20, 0x19932: 0x6cac8c20, 0x19933: 0x6c7eb620, + 0x19934: 0x6d39ec20, 0x19935: 0x6ca7c420, 0x19936: 0x6c580220, 0x19937: 0x6d1cce20, + 0x19938: 0x6cfd4620, 0x19939: 0x6c809020, 0x1993a: 0x6ca0a020, 0x1993b: 0x6c03e220, + 0x1993d: 0x6c4adc20, 0x1993e: 0x6c08c620, 0x1993f: 0x6c3d5020, + // Block 0x665, offset 0x19940 + 0x19940: 0x6c5da820, 0x19941: 0x6d173c20, 0x19942: 0x6c8f2c20, + 0x19944: 0x6d19cc20, 0x19945: 0x6c735c20, 0x19946: 0x6c5d7420, 0x19947: 0x6c1a0a20, + 0x19948: 0x6c311c20, 0x19949: 0x6c356a20, 0x1994b: 0x6d0da620, + 0x1994c: 0x6d3c9420, 0x1994d: 0x6d2cce20, 0x1994e: 0x6cb70420, 0x1994f: 0x6d216220, + 0x19950: 0x6cc37620, 0x19951: 0x6c5d7a20, 0x19952: 0x6ca84420, 0x19953: 0x6c59e220, + 0x19954: 0x6c71cc20, 0x19955: 0x6ccf6820, + 0x19958: 0x6caebe20, 0x19959: 0x6ca01820, 0x1995a: 0x6c129220, 0x1995b: 0x6c90ba20, + 0x1995c: 0x6c843e20, 0x1995d: 0x6c205e20, 0x1995f: 0x6c24f020, + 0x19960: 0x6ccdc820, 0x19961: 0x6c280a20, 0x19962: 0x6cb68220, + 0x19964: 0x6c7f7a20, 0x19965: 0x6c8de620, 0x19966: 0x6c8a6220, 0x19967: 0x6cc62220, + 0x19968: 0x6d20c820, 0x19969: 0x6d16ca20, 0x1996a: 0x6c2df820, 0x1996b: 0x6cb6dc20, + 0x1996c: 0x6d147820, 0x1996d: 0x6ca6f420, 0x1996e: 0x6c3d5220, 0x1996f: 0x6c657420, + 0x19970: 0x6d0b1c20, 0x19971: 0x6c398c20, 0x19972: 0x6cc8c420, 0x19973: 0x6cfa8c20, + 0x19976: 0x6c096a20, 0x19977: 0x6cd25e20, + 0x19978: 0x6cb38020, 0x19979: 0x6ca6fc20, 0x1997a: 0x6d35f620, 0x1997b: 0x6ce22020, + 0x1997c: 0x6ce4f020, 0x1997d: 0x6ce4f220, 0x1997e: 0x6cc81620, 0x1997f: 0x6d176a20, + // Block 0x666, offset 0x19980 + 0x19980: 0x6c8b0420, 0x19981: 0x6c01bc20, 0x19982: 0x6c511020, 0x19983: 0x6cbf1620, + 0x19984: 0x6c85f420, 0x19985: 0x6c4a5c20, 0x19986: 0x6d3f4a20, 0x19987: 0x6cdaaa20, + 0x19988: 0x6d261020, 0x19989: 0x6d0ba220, 0x1998a: 0x6c13dc20, 0x1998b: 0x6ced2420, + 0x1998c: 0x6c72f420, 0x1998d: 0x6ce6cc20, 0x1998e: 0x6d1fd020, 0x1998f: 0x6c5bc620, + 0x19990: 0x6c659c20, 0x19991: 0x6cc89e20, 0x19992: 0x6c986420, 0x19993: 0x6c71b820, + 0x19994: 0x6d3e5620, 0x19995: 0x6c70a820, 0x19996: 0x6c013a20, 0x19997: 0x6cdc5020, + 0x19998: 0x6c7f1620, 0x19999: 0x6c5d3020, 0x1999a: 0x6cc35e20, 0x1999b: 0x6c167220, + 0x1999c: 0x6c34fa20, 0x1999d: 0x6c798020, 0x1999e: 0x6ca55020, 0x1999f: 0x6c11d220, + 0x199a0: 0x6ce35620, 0x199a1: 0x6d064c20, 0x199a2: 0x6c701020, 0x199a3: 0x6c59e420, + 0x199a4: 0x6cb7b820, 0x199a5: 0x6c6b0e20, 0x199a6: 0x6c98f220, 0x199a7: 0x6d0c2020, + 0x199a9: 0x6d354820, 0x199aa: 0x6ce9b020, + 0x199ac: 0x6c00c220, 0x199ad: 0x6cad0a20, 0x199ae: 0x6c125a20, 0x199af: 0x6ce12820, + 0x199b0: 0x6c372220, 0x199b1: 0x6c5d3c20, 0x199b2: 0x6cb63e20, 0x199b3: 0x6c1ea620, + 0x199b4: 0x6cdd9020, 0x199b5: 0x6d3d8820, 0x199b6: 0x6caa2620, 0x199b7: 0x6ce8f220, + 0x199b8: 0x6cd01a20, 0x199b9: 0x6c90f820, 0x199ba: 0x6c0c2020, 0x199bb: 0x6c844020, + 0x199bc: 0x6c977c20, 0x199bd: 0x6d02f020, 0x199be: 0x6c133c20, 0x199bf: 0x6c5a0a20, + // Block 0x667, offset 0x199c0 + 0x199c0: 0x6c9a6c20, 0x199c1: 0x6c42e620, 0x199c2: 0x6c887620, 0x199c3: 0x6c2a3e20, + 0x199c4: 0x6d2e2420, 0x199c5: 0x6d3eaa20, + 0x199c8: 0x6d375620, 0x199c9: 0x6c03d020, 0x199ca: 0x6c258a20, 0x199cb: 0x6cbfe420, + 0x199cd: 0x6c8fea20, 0x199ce: 0x6cfb0a20, 0x199cf: 0x6c3afa20, + 0x199d0: 0x6c4cac20, 0x199d1: 0x6c19b820, 0x199d2: 0x6c6fda20, 0x199d3: 0x6c35f620, + 0x199d4: 0x6c1cb420, 0x199d5: 0x6d269220, 0x199d6: 0x6c531620, 0x199d7: 0x6d119e20, + 0x199d8: 0x6d0ae220, 0x199d9: 0x6d10e620, 0x199da: 0x6ce74420, 0x199db: 0x6d2cc020, + 0x199dc: 0x6d204020, 0x199dd: 0x6d095620, 0x199de: 0x6d11aa20, 0x199df: 0x6c78a820, + 0x199e0: 0x6c591620, 0x199e1: 0x6c80cc20, 0x199e2: 0x6d26ba20, 0x199e3: 0x6c18ca20, + 0x199e6: 0x6cd0b220, + 0x199e8: 0x6ca90e20, 0x199e9: 0x6ca00a20, 0x199ea: 0x6c52ba20, 0x199eb: 0x6c205820, + 0x199ec: 0x6d27fe20, 0x199ed: 0x6d07be20, 0x199ee: 0x6c6d4420, 0x199ef: 0x6d3d9c20, + 0x199f0: 0x6d209c20, 0x199f1: 0x6cdfbc20, 0x199f2: 0x6c775420, 0x199f3: 0x6cbf6420, + 0x199f5: 0x6c1a4c20, 0x199f6: 0x6c6f8820, 0x199f7: 0x6d097620, + 0x199f8: 0x6d32fa20, 0x199f9: 0x6c1ce420, 0x199fa: 0x6cac4a20, 0x199fb: 0x6cbc6620, + 0x199fd: 0x6cc1e620, 0x199fe: 0x6c7fd620, 0x199ff: 0x6d190e20, + // Block 0x668, offset 0x19a00 + 0x19a00: 0x6cc6de20, 0x19a01: 0x6cd84e20, 0x19a02: 0x6cb89c20, 0x19a03: 0x6cd89220, + 0x19a05: 0x6c380420, 0x19a07: 0x6c9b1020, + 0x19a08: 0x6c578e20, 0x19a0b: 0x6c4d6620, + 0x19a0c: 0x6cbc4420, 0x19a0d: 0x6c1f4620, 0x19a0e: 0x6cc3d420, 0x19a0f: 0x6c334e20, + 0x19a10: 0x6c863820, 0x19a11: 0x6c03b820, 0x19a12: 0x6c6c0420, 0x19a13: 0x6d05ee20, + 0x19a14: 0x6c963620, 0x19a16: 0x6d27de20, 0x19a17: 0x6d37ae20, + 0x19a18: 0x6c568220, 0x19a19: 0x6d1ad220, 0x19a1b: 0x6d351020, + 0x19a1c: 0x6cb9fa20, 0x19a1e: 0x6c419420, 0x19a1f: 0x6c667c20, + 0x19a20: 0x6d3ae220, 0x19a21: 0x6d3ae420, 0x19a22: 0x6c7a7820, 0x19a23: 0x6ca81a20, + 0x19a24: 0x6cc8ca20, 0x19a25: 0x6d2ac220, 0x19a26: 0x6c020820, 0x19a27: 0x6d363820, + 0x19a28: 0x6c461a20, 0x19a29: 0x6d17b220, 0x19a2a: 0x6c1ab020, 0x19a2b: 0x6c5ed620, + 0x19a2c: 0x6d39a620, 0x19a2d: 0x6c81b220, 0x19a2e: 0x6cc5ee20, 0x19a2f: 0x6cc67620, + 0x19a30: 0x6d32c620, 0x19a31: 0x6ca34220, 0x19a32: 0x6c12ec20, + 0x19a35: 0x6d151e20, 0x19a36: 0x6c746820, 0x19a37: 0x6c0cee20, + 0x19a38: 0x6c1a1e20, 0x19a39: 0x6c75ce20, 0x19a3a: 0x6c312620, 0x19a3b: 0x6cefe420, + 0x19a3c: 0x6d17fa20, 0x19a3d: 0x6d306020, 0x19a3e: 0x6d0cae20, + // Block 0x669, offset 0x19a40 + 0x19a40: 0x6cca0220, 0x19a41: 0x6c950220, 0x19a42: 0x6cb2be20, 0x19a43: 0x6d2f9020, + 0x19a44: 0x6c4e2020, 0x19a45: 0x6d239a20, 0x19a46: 0x6c278220, 0x19a47: 0x6d2fca20, + 0x19a48: 0x6c3a3e20, 0x19a49: 0x6ccc6620, 0x19a4a: 0x6c8d3820, 0x19a4b: 0x6cde7a20, + 0x19a4c: 0x6cc12220, 0x19a4d: 0x6c986e20, 0x19a4e: 0x6d132c20, 0x19a4f: 0x6c05d220, + 0x19a50: 0x6c4b6e20, 0x19a51: 0x6c489e20, 0x19a52: 0x6ca43620, 0x19a53: 0x6c442420, + 0x19a55: 0x6cd28420, 0x19a56: 0x6c782820, 0x19a57: 0x6cdd9220, + 0x19a58: 0x6c225c20, 0x19a59: 0x6d394620, 0x19a5a: 0x6cdf3820, 0x19a5b: 0x6c7b3420, + 0x19a5c: 0x6cbe2420, 0x19a5d: 0x6d05d820, 0x19a5e: 0x6c322820, 0x19a5f: 0x6c131220, + 0x19a60: 0x6c58da20, 0x19a61: 0x6c234420, 0x19a62: 0x6cc9de20, 0x19a63: 0x6d336020, + 0x19a64: 0x6cb9be20, 0x19a65: 0x6c6c5420, 0x19a66: 0x6d3fb420, 0x19a67: 0x6cf00020, + 0x19a6a: 0x6cf8de20, 0x19a6b: 0x6ca36c20, + 0x19a6c: 0x6cb45420, 0x19a6d: 0x6cd9e020, 0x19a6e: 0x6c729420, 0x19a6f: 0x6d319620, + 0x19a70: 0x6cce8620, 0x19a71: 0x6ce1e820, 0x19a72: 0x6c049c20, 0x19a73: 0x6cdea020, + 0x19a74: 0x6cba7c20, 0x19a75: 0x6cf23a20, 0x19a76: 0x6cc6ae20, 0x19a77: 0x6c962820, + 0x19a78: 0x6c55ca20, 0x19a79: 0x6cda2e20, 0x19a7a: 0x6d37cc20, 0x19a7b: 0x6cb46020, + 0x19a7c: 0x6c9ef620, 0x19a7d: 0x6c6c6420, 0x19a7e: 0x6cce8a20, 0x19a7f: 0x6c9d8e20, + // Block 0x66a, offset 0x19a80 + 0x19a80: 0x6cd61c20, 0x19a81: 0x6c8d7020, 0x19a82: 0x6c82de20, 0x19a83: 0x6c67c420, + 0x19a84: 0x6c838a20, 0x19a85: 0x6d370e20, 0x19a86: 0x6c2e0020, + 0x19a88: 0x6cca2e20, 0x19a89: 0x6c473e20, 0x19a8a: 0x6c397220, 0x19a8b: 0x6c9ab220, + 0x19a8c: 0x6cdc9e20, 0x19a8d: 0x6c65f620, 0x19a8e: 0x6ce15020, 0x19a8f: 0x6d025e20, + 0x19a90: 0x6c7a6a20, 0x19a91: 0x6cf3fe20, 0x19a92: 0x6c38d220, 0x19a93: 0x6c963820, + 0x19a94: 0x6c117820, 0x19a95: 0x6c136620, 0x19a96: 0x6c8d7a20, 0x19a97: 0x6d142620, + 0x19a98: 0x6c23be20, 0x19a99: 0x6d27ce20, 0x19a9a: 0x6c9b7420, 0x19a9b: 0x6d245020, + 0x19a9c: 0x6d374220, 0x19a9d: 0x6d162020, 0x19a9e: 0x6c285620, 0x19a9f: 0x6c5e2c20, + 0x19aa0: 0x6cef5a20, 0x19aa1: 0x6ce03220, 0x19aa2: 0x6ccb7e20, 0x19aa3: 0x6d024420, + 0x19aa4: 0x6cda3620, 0x19aa5: 0x6cd97620, 0x19aa6: 0x6cb94c20, 0x19aa7: 0x6c8eda20, + 0x19aa8: 0x6d194620, 0x19aaa: 0x6c835a20, 0x19aab: 0x6c84aa20, + 0x19aac: 0x6c3af420, 0x19aad: 0x6c8b6a20, 0x19aae: 0x6c8c8820, 0x19aaf: 0x6cfd4820, + 0x19ab0: 0x6d002c20, 0x19ab1: 0x6cab6420, 0x19ab2: 0x6c9cbc20, 0x19ab3: 0x6cfb1220, + 0x19ab4: 0x6cc4f820, 0x19ab5: 0x6d3c0220, 0x19ab6: 0x6cd6be20, 0x19ab7: 0x6d0d1e20, + 0x19ab8: 0x6c0be020, 0x19ab9: 0x6c8df020, 0x19aba: 0x6c531a20, 0x19abb: 0x6cb5a620, + 0x19abc: 0x6c8a9620, 0x19abd: 0x6c04ca20, 0x19abe: 0x6c097e20, 0x19abf: 0x6c554820, + // Block 0x66b, offset 0x19ac0 + 0x19ac0: 0x6c554a20, 0x19ac2: 0x6c12f220, 0x19ac3: 0x6cae1c20, + 0x19ac4: 0x6cbf2c20, 0x19ac5: 0x6c9ffe20, 0x19ac6: 0x6c700220, 0x19ac7: 0x6c10a220, + 0x19ac8: 0x6c9a1420, 0x19ac9: 0x6cca1e20, 0x19aca: 0x6cf0a820, + 0x19acd: 0x6c841e20, 0x19ace: 0x6cc36220, + 0x19ad0: 0x6c5cfa20, 0x19ad1: 0x6cfdf220, 0x19ad3: 0x6cd3c620, + 0x19ad4: 0x6d1c9020, 0x19ad6: 0x6ca43820, 0x19ad7: 0x6c59f220, + 0x19ad8: 0x6c701a20, 0x19ad9: 0x6d0c2620, 0x19adb: 0x6cc99020, + 0x19adc: 0x6ce96220, 0x19add: 0x6d022e20, 0x19ade: 0x6d309c20, 0x19adf: 0x6c9ada20, + 0x19ae0: 0x6cf8f420, 0x19ae1: 0x6c978a20, 0x19ae3: 0x6c5a1820, + 0x19ae4: 0x6ce02420, 0x19ae5: 0x6d001420, 0x19ae6: 0x6d137220, 0x19ae7: 0x6c0a9420, + 0x19ae8: 0x6c955a20, 0x19ae9: 0x6c38d420, 0x19aea: 0x6c870620, 0x19aeb: 0x6c251220, + 0x19aec: 0x6c1fa620, 0x19aed: 0x6c2a4620, 0x19aee: 0x6c2bb620, 0x19aef: 0x6c7c1c20, + 0x19af0: 0x6c1ecc20, 0x19af1: 0x6cfb1420, 0x19af2: 0x6c165220, 0x19af3: 0x6c9cce20, + 0x19af4: 0x6cba8e20, 0x19af5: 0x6cc00820, 0x19af6: 0x6d322620, + 0x19afa: 0x6c568620, 0x19afb: 0x6c418c20, + 0x19afc: 0x6c1b9220, 0x19afd: 0x6c48f220, 0x19afe: 0x6ca27a20, 0x19aff: 0x6c0ede20, + // Block 0x66c, offset 0x19b00 + 0x19b00: 0x6c579020, 0x19b01: 0x6c44fc20, 0x19b02: 0x6d10e820, 0x19b03: 0x6c996420, + 0x19b04: 0x6cee0820, + 0x19b08: 0x6cc7a420, 0x19b09: 0x6d090820, 0x19b0a: 0x6d32b820, 0x19b0b: 0x6c9f4a20, + 0x19b0c: 0x6c67a420, 0x19b0e: 0x6d2e5a20, 0x19b0f: 0x6d423820, + 0x19b10: 0x6d26a620, 0x19b11: 0x6c8b0620, 0x19b13: 0x6d392420, + 0x19b14: 0x6c098020, 0x19b15: 0x6cc5f020, 0x19b16: 0x6d234e20, + 0x19b18: 0x6c21c020, 0x19b19: 0x6c379820, 0x19b1a: 0x6d17b420, 0x19b1b: 0x6c9cf620, + 0x19b1c: 0x6cbeca20, 0x19b1e: 0x6cee1e20, 0x19b1f: 0x6c621e20, + 0x19b20: 0x6c104020, 0x19b22: 0x6c0cae20, 0x19b23: 0x6c38a820, + 0x19b24: 0x6d26c820, 0x19b25: 0x6c83ee20, 0x19b26: 0x6c38aa20, 0x19b27: 0x6cc1a820, + 0x19b28: 0x6c3f7620, 0x19b29: 0x6c376220, 0x19b2a: 0x6c354420, 0x19b2b: 0x6d32e420, + 0x19b2c: 0x6ce47020, 0x19b2d: 0x6d239c20, 0x19b2e: 0x6c6d3020, 0x19b2f: 0x6cb70c20, + 0x19b30: 0x6c714220, 0x19b31: 0x6c7f1e20, 0x19b32: 0x6c17f020, 0x19b33: 0x6c06d020, + 0x19b34: 0x6ca9a820, 0x19b35: 0x6d186020, 0x19b36: 0x6d065420, 0x19b37: 0x6ca1e020, + 0x19b38: 0x6d0a3620, 0x19b39: 0x6c3eda20, 0x19b3b: 0x6ca8ec20, + 0x19b3c: 0x6ce64820, 0x19b3d: 0x6c082c20, 0x19b3e: 0x6d2c8a20, 0x19b3f: 0x6ceeae20, + // Block 0x66d, offset 0x19b40 + 0x19b40: 0x6c782a20, 0x19b41: 0x6d10b020, 0x19b42: 0x6caba420, 0x19b43: 0x6cff0820, + 0x19b44: 0x6c451a20, 0x19b45: 0x6ce13820, 0x19b46: 0x6c4b7620, 0x19b47: 0x6c5c3a20, + 0x19b48: 0x6cddfe20, 0x19b4a: 0x6d114620, 0x19b4b: 0x6c266820, + 0x19b4c: 0x6cb7ea20, 0x19b4d: 0x6c6cba20, 0x19b4e: 0x6c94c220, 0x19b4f: 0x6c9d9020, + 0x19b50: 0x6c9d9220, 0x19b51: 0x6c64fe20, 0x19b52: 0x6c92ec20, 0x19b53: 0x6c38c820, + 0x19b54: 0x6cab5620, 0x19b55: 0x6c9c7e20, 0x19b56: 0x6c6b6420, 0x19b57: 0x6c3f9220, + 0x19b58: 0x6c0d1a20, 0x19b59: 0x6c5a7c20, 0x19b5a: 0x6cda5c20, 0x19b5b: 0x6d115e20, + 0x19b5c: 0x6ca89620, 0x19b5d: 0x6c6c6c20, 0x19b5e: 0x6c88d620, 0x19b5f: 0x6c0faa20, + 0x19b60: 0x6c652420, 0x19b61: 0x6ce3ca20, 0x19b62: 0x6c8d8220, 0x19b63: 0x6d415220, + 0x19b64: 0x6cd20e20, 0x19b65: 0x6d1b2620, 0x19b66: 0x6c2a4820, 0x19b67: 0x6c1e0620, + 0x19b68: 0x6c10e220, 0x19b69: 0x6c9f1220, 0x19b6a: 0x6d0e1620, 0x19b6b: 0x6c805620, + 0x19b6c: 0x6c1d3420, 0x19b6d: 0x6c68b020, 0x19b6e: 0x6cd6bc20, 0x19b6f: 0x6cc2ac20, + 0x19b70: 0x6ca8c820, 0x19b71: 0x6c964c20, 0x19b73: 0x6cd21e20, + 0x19b74: 0x6c965020, 0x19b75: 0x6d3a4c20, 0x19b77: 0x6c1d6e20, + 0x19b78: 0x6c734e20, 0x19b79: 0x6c6f0c20, 0x19b7a: 0x6c379a20, 0x19b7b: 0x6d17b820, + 0x19b7c: 0x6cc8d620, 0x19b7d: 0x6c113c20, 0x19b7e: 0x6cc57a20, 0x19b7f: 0x6c3edc20, + // Block 0x66e, offset 0x19b80 + 0x19b80: 0x6c7fb820, 0x19b81: 0x6cdcaa20, 0x19b82: 0x6d20e220, 0x19b83: 0x6d1f1c20, + 0x19b84: 0x6c2d1820, 0x19b85: 0x6c8cf420, 0x19b86: 0x6d3aec20, 0x19b87: 0x6cde5220, + 0x19b88: 0x6cb29e20, 0x19b89: 0x6d2d2a20, 0x19b8a: 0x6c684c20, 0x19b8b: 0x6c20de20, + 0x19b8c: 0x6c10ac20, 0x19b8d: 0x6c7a0620, 0x19b8e: 0x6c25b620, + 0x19b90: 0x6c4e5220, 0x19b91: 0x6c4e5420, 0x19b92: 0x6ca20020, 0x19b93: 0x6c567420, + 0x19b94: 0x6c457220, 0x19b95: 0x6c2b2020, 0x19b96: 0x6c3e3c20, 0x19b97: 0x6d088020, + 0x19b98: 0x6c9c4c20, 0x19b99: 0x6c9a0420, 0x19b9a: 0x6c811e20, 0x19b9b: 0x6c481e20, + 0x19b9c: 0x6d2fc020, 0x19b9d: 0x6cde6620, 0x19b9e: 0x6d23a220, 0x19b9f: 0x6d402820, + 0x19ba0: 0x6c844820, 0x19ba1: 0x6c92d820, 0x19ba2: 0x6cf3f620, 0x19ba3: 0x6c826c20, + 0x19ba4: 0x6c615e20, 0x19ba5: 0x6c875220, 0x19ba6: 0x6c84d820, + 0x19ba8: 0x6cb30420, 0x19ba9: 0x6d101020, 0x19baa: 0x6cec2e20, 0x19bab: 0x6ceb1a20, + 0x19bac: 0x6cae6e20, 0x19bae: 0x6d2fb420, 0x19baf: 0x6c4b0220, + 0x19bb1: 0x6d061e20, 0x19bb2: 0x6ca38020, 0x19bb3: 0x6cc3e420, + 0x19bb4: 0x6ceff620, 0x19bb5: 0x6d32e620, 0x19bb6: 0x6c300e20, 0x19bb7: 0x6cf00820, + 0x19bb8: 0x6c0f6020, 0x19bba: 0x6c595820, 0x19bbb: 0x6d08c020, + 0x19bbc: 0x6d295620, 0x19bbd: 0x6c877220, 0x19bbe: 0x6d0d6020, 0x19bbf: 0x6c59ae20, + // Block 0x66f, offset 0x19bc0 + 0x19bc0: 0x6d095820, 0x19bc1: 0x6c554c20, 0x19bc2: 0x6c05f820, 0x19bc3: 0x6cc4c220, + 0x19bc4: 0x6cfeba20, 0x19bc5: 0x6cb38620, 0x19bc6: 0x6c8a9820, 0x19bc7: 0x6d388a20, + 0x19bc8: 0x6d17ba20, 0x19bc9: 0x6d06e220, 0x19bca: 0x6c960820, 0x19bcb: 0x6c77be20, + 0x19bcc: 0x6c1f5620, 0x19bce: 0x6ca35620, 0x19bcf: 0x6c4e2220, + 0x19bd0: 0x6c17a220, 0x19bd1: 0x6c929220, 0x19bd2: 0x6d2e0620, 0x19bd3: 0x6cde7c20, + 0x19bd4: 0x6c3da220, 0x19bd5: 0x6c52c820, 0x19bd6: 0x6d2ba020, 0x19bd7: 0x6cbc0620, + 0x19bd8: 0x6cdb5020, 0x19bd9: 0x6cb1fa20, 0x19bda: 0x6c49ba20, + 0x19bdc: 0x6c5cd020, 0x19bdd: 0x6c1e8020, 0x19bdf: 0x6c374420, + 0x19be0: 0x6c374620, 0x19be1: 0x6cc85a20, 0x19be2: 0x6cb6e220, 0x19be3: 0x6cd8ba20, + 0x19be4: 0x6c713620, 0x19be6: 0x6d0dbe20, 0x19be7: 0x6c058220, + 0x19be8: 0x6d131e20, 0x19be9: 0x6d3e6c20, 0x19bea: 0x6ca55220, 0x19beb: 0x6c20b220, + 0x19bec: 0x6c03c220, 0x19bed: 0x6c126c20, 0x19bee: 0x6ce42c20, 0x19bef: 0x6c4f1c20, + 0x19bf0: 0x6d425220, 0x19bf1: 0x6c03d420, 0x19bf2: 0x6d301420, 0x19bf3: 0x6cec2820, + 0x19bf4: 0x6c44c420, 0x19bf5: 0x6c098220, 0x19bf6: 0x6c37ca20, 0x19bf7: 0x6d3af820, + 0x19bf8: 0x6cf50220, 0x19bf9: 0x6cf19a20, 0x19bfa: 0x6d369820, 0x19bfb: 0x6d393c20, + 0x19bfc: 0x6c929420, 0x19bfd: 0x6cf1a020, 0x19bfe: 0x6c4bdc20, 0x19bff: 0x6cc08e20, + // Block 0x670, offset 0x19c00 + 0x19c00: 0x6c7e9420, 0x19c01: 0x6d292020, 0x19c02: 0x6cda2820, 0x19c03: 0x6c9dd420, + 0x19c04: 0x6c2c0620, 0x19c05: 0x6cb7ec20, 0x19c06: 0x6c129a20, 0x19c07: 0x6cb1bc20, + 0x19c08: 0x6c887820, 0x19c09: 0x6cd21020, 0x19c0a: 0x6c8ff620, 0x19c0b: 0x6cdad620, + 0x19c0c: 0x6cb73220, 0x19c0d: 0x6d25fa20, 0x19c0e: 0x6c3c9e20, 0x19c0f: 0x6d056820, + 0x19c10: 0x6c73f620, 0x19c11: 0x6c2c3020, 0x19c12: 0x6cb14820, 0x19c13: 0x6c494a20, + 0x19c14: 0x6ca98620, 0x19c15: 0x6cc5d220, 0x19c16: 0x6d321c20, 0x19c17: 0x6c412e20, + 0x19c18: 0x6cb08a20, 0x19c19: 0x6ce05420, 0x19c1a: 0x6c179220, 0x19c1b: 0x6c217220, + 0x19c1c: 0x6c508e20, 0x19c1d: 0x6d3b7220, 0x19c1e: 0x6ca0ec20, 0x19c1f: 0x6c0ce020, + 0x19c20: 0x6cb75e20, 0x19c21: 0x6cd34620, 0x19c22: 0x6c08ca20, 0x19c23: 0x6c740620, + 0x19c24: 0x6cd8a420, 0x19c26: 0x6c485220, 0x19c27: 0x6ca32a20, + 0x19c28: 0x6c5b4e20, 0x19c29: 0x6cf5ca20, 0x19c2a: 0x6c37c820, 0x19c2b: 0x6d04ca20, + 0x19c2c: 0x6ca1ca20, 0x19c2e: 0x6cf77220, 0x19c2f: 0x6d360220, + 0x19c30: 0x6cc8fc20, 0x19c31: 0x6c711a20, 0x19c32: 0x6c2e9420, 0x19c33: 0x6d30f420, + 0x19c34: 0x6cced820, 0x19c35: 0x6c9bd220, 0x19c36: 0x6c098420, 0x19c37: 0x6c4eb420, + 0x19c38: 0x6d210420, 0x19c39: 0x6cfcb820, 0x19c3a: 0x6cacd420, 0x19c3b: 0x6ca5a620, + 0x19c3c: 0x6c119820, 0x19c3d: 0x6c109c20, 0x19c3f: 0x6cb70020, + // Block 0x671, offset 0x19c40 + 0x19c40: 0x6c620820, 0x19c41: 0x6d3d6420, 0x19c42: 0x6c925e20, 0x19c43: 0x6c75c220, + 0x19c44: 0x6cfccc20, 0x19c45: 0x6cf62620, 0x19c46: 0x6c113220, 0x19c47: 0x6cf1e220, + 0x19c48: 0x6d346a20, 0x19c49: 0x6d3f5820, 0x19c4a: 0x6c7d6820, 0x19c4b: 0x6c231a20, + 0x19c4c: 0x6ce4f820, 0x19c4d: 0x6c1f5820, 0x19c4e: 0x6c2b3620, 0x19c4f: 0x6c218220, + 0x19c50: 0x6cbfb620, 0x19c51: 0x6d306220, 0x19c52: 0x6d2be220, 0x19c53: 0x6cc75420, + 0x19c54: 0x6c0d7c20, 0x19c55: 0x6c605c20, 0x19c56: 0x6cf65420, 0x19c57: 0x6d39b220, + 0x19c58: 0x6c746a20, 0x19c59: 0x6c440a20, 0x19c5a: 0x6c5eee20, 0x19c5b: 0x6c265620, + 0x19c5c: 0x6c187c20, 0x19c5d: 0x6cddce20, 0x19c5e: 0x6cc92820, 0x19c5f: 0x6cfdf420, + 0x19c60: 0x6c5a5c20, 0x19c61: 0x6cb65020, 0x19c62: 0x6d3b1820, 0x19c63: 0x6cdcf620, + 0x19c64: 0x6c146c20, 0x19c65: 0x6cf25a20, 0x19c66: 0x6c781a20, 0x19c67: 0x6c77c420, + 0x19c68: 0x6c47b820, 0x19c69: 0x6c410220, 0x19c6a: 0x6c396620, 0x19c6b: 0x6c234c20, + 0x19c6c: 0x6c128c20, 0x19c6d: 0x6d36bc20, 0x19c6e: 0x6c15d820, 0x19c6f: 0x6c825420, + 0x19c70: 0x6d04ee20, 0x19c71: 0x6d2d4820, 0x19c72: 0x6d308220, 0x19c73: 0x6d218a20, + 0x19c74: 0x6c4b7020, 0x19c75: 0x6c45ae20, 0x19c76: 0x6d295020, 0x19c77: 0x6c27fe20, + 0x19c78: 0x6c5e0020, 0x19c79: 0x6cd9e220, 0x19c7a: 0x6ce0ac20, 0x19c7b: 0x6c473020, + 0x19c7c: 0x6cf8e620, 0x19c7d: 0x6c978020, 0x19c7e: 0x6c346620, 0x19c7f: 0x6c02f420, + // Block 0x672, offset 0x19c80 + 0x19c80: 0x6cb0c420, 0x19c81: 0x6cf52a20, 0x19c82: 0x6c007c20, 0x19c83: 0x6c9b7620, + 0x19c84: 0x6cb0d220, 0x19c85: 0x6c9b7820, 0x19c86: 0x6d103a20, 0x19c87: 0x6d374420, + 0x19c88: 0x6c0fac20, 0x19c89: 0x6d1cc820, 0x19c8a: 0x6cef6020, 0x19c8b: 0x6cc50e20, + 0x19c8c: 0x6c7ffa20, 0x19c8d: 0x6d0c4620, 0x19c8e: 0x6c161220, 0x19c8f: 0x6cc33620, + 0x19c90: 0x6d31d820, 0x19c91: 0x6cb46a20, 0x19c93: 0x6cdf2a20, + 0x19c94: 0x6c3a9e20, 0x19c95: 0x6cd55620, 0x19c97: 0x6c298820, + 0x19c98: 0x6c25f220, 0x19c99: 0x6cdf9c20, 0x19c9a: 0x6ce49820, 0x19c9b: 0x6c1ba020, + 0x19c9c: 0x6cde9020, 0x19c9d: 0x6c642a20, 0x19c9e: 0x6cd75e20, 0x19c9f: 0x6c5a3220, + 0x19ca0: 0x6c8a6820, 0x19ca3: 0x6c185e20, + 0x19ca4: 0x6c6cf820, 0x19ca5: 0x6c360020, 0x19ca6: 0x6c464620, 0x19ca7: 0x6c3e6420, + 0x19ca8: 0x6c34f020, 0x19caa: 0x6c363e20, 0x19cab: 0x6c07f020, + 0x19cac: 0x6ce1ca20, 0x19cad: 0x6c2c6020, 0x19caf: 0x6c2c7020, + 0x19cb0: 0x6c10a620, 0x19cb1: 0x6ced3820, 0x19cb2: 0x6d2fd020, 0x19cb3: 0x6c950620, + 0x19cb4: 0x6cb62620, 0x19cb5: 0x6ca2a420, 0x19cb6: 0x6cba6c20, + 0x19cb8: 0x6d3fae20, 0x19cb9: 0x6cd9d620, 0x19cbb: 0x6d1f6220, + 0x19cbc: 0x6d38ac20, 0x19cbd: 0x6cdea620, 0x19cbf: 0x6cdb3c20, + // Block 0x673, offset 0x19cc0 + 0x19cc0: 0x6c10c220, 0x19cc1: 0x6cf7aa20, 0x19cc2: 0x6c67c620, 0x19cc3: 0x6c12ba20, + 0x19cc4: 0x6c406620, 0x19cc5: 0x6ce2b820, 0x19cc6: 0x6c185220, 0x19cc7: 0x6c407820, + 0x19cc8: 0x6c3ae020, 0x19cc9: 0x6cf48c20, 0x19cca: 0x6cf5ac20, 0x19ccb: 0x6d101620, + 0x19ccc: 0x6ca04820, 0x19ccd: 0x6cad2020, 0x19cce: 0x6c98a620, 0x19ccf: 0x6ccbba20, + 0x19cd0: 0x6c9bb420, 0x19cd1: 0x6c12a820, 0x19cd2: 0x6ce57220, 0x19cd3: 0x6c764820, + 0x19cd4: 0x6c043620, 0x19cd5: 0x6cffa620, 0x19cd6: 0x6d032620, 0x19cd7: 0x6cb76220, + 0x19cda: 0x6cceb020, 0x19cdb: 0x6c590a20, + 0x19cdc: 0x6ca96a20, 0x19cdd: 0x6cff7820, 0x19cde: 0x6c18b220, 0x19cdf: 0x6c27ce20, + 0x19ce0: 0x6c3c3820, 0x19ce1: 0x6d1ad420, 0x19ce2: 0x6c01fa20, 0x19ce3: 0x6cc4be20, + 0x19ce4: 0x6cc64420, 0x19ce5: 0x6c976020, 0x19ce6: 0x6c394c20, 0x19ce7: 0x6cc10220, + 0x19ce8: 0x6cd2ce20, 0x19ce9: 0x6c511820, 0x19cea: 0x6c0b9220, 0x19ceb: 0x6c276220, + 0x19cec: 0x6ca11420, 0x19ced: 0x6c2aca20, + 0x19cf0: 0x6c7ba020, 0x19cf2: 0x6c144220, 0x19cf3: 0x6c349620, + 0x19cf4: 0x6d1fd220, 0x19cf5: 0x6c504020, 0x19cf7: 0x6c486020, + 0x19cf8: 0x6d095c20, 0x19cf9: 0x6c833620, 0x19cfa: 0x6c6c9220, 0x19cfb: 0x6cb70220, + 0x19cfc: 0x6cc11020, 0x19cfd: 0x6cee2220, 0x19cfe: 0x6d13f620, 0x19cff: 0x6c89e620, + // Block 0x674, offset 0x19d00 + 0x19d02: 0x6d0cb020, 0x19d03: 0x6d180220, + 0x19d04: 0x6d1a7620, 0x19d05: 0x6cb60020, 0x19d06: 0x6d306420, 0x19d07: 0x6cf8a620, + 0x19d08: 0x6d180420, 0x19d09: 0x6d128620, 0x19d0a: 0x6cf3d820, 0x19d0b: 0x6d33fa20, + 0x19d0c: 0x6d366a20, 0x19d0d: 0x6c4e5a20, 0x19d0e: 0x6c21c820, 0x19d0f: 0x6c3d8420, + 0x19d10: 0x6c215220, 0x19d11: 0x6cb2b620, 0x19d12: 0x6c7afa20, 0x19d13: 0x6c1dc220, + 0x19d15: 0x6ceb8a20, 0x19d16: 0x6cbf4220, 0x19d17: 0x6c233020, + 0x19d18: 0x6c42d220, 0x19d19: 0x6c7acc20, 0x19d1a: 0x6cc12620, 0x19d1b: 0x6cc12820, + 0x19d1c: 0x6d340020, 0x19d1d: 0x6c9c0a20, 0x19d1e: 0x6c865220, 0x19d1f: 0x6d389c20, + 0x19d20: 0x6cde8420, 0x19d21: 0x6d340220, 0x19d22: 0x6c482420, 0x19d23: 0x6c899c20, + 0x19d24: 0x6c54ee20, 0x19d25: 0x6c7e8820, 0x19d26: 0x6c2d2620, 0x19d27: 0x6c22d820, + 0x19d28: 0x6d1bde20, 0x19d2b: 0x6cb62a20, + 0x19d2d: 0x6c144620, 0x19d2e: 0x6c99b020, 0x19d2f: 0x6c31b020, + 0x19d30: 0x6d19fe20, 0x19d31: 0x6c148820, 0x19d32: 0x6cc8dc20, 0x19d33: 0x6c524020, + 0x19d34: 0x6cc87820, 0x19d35: 0x6c3d9420, 0x19d36: 0x6c7f4e20, 0x19d37: 0x6d043420, + 0x19d38: 0x6c64e020, 0x19d39: 0x6d186220, 0x19d3a: 0x6c9a6820, + 0x19d3c: 0x6c987620, 0x19d3d: 0x6c627e20, 0x19d3e: 0x6cdd3a20, 0x19d3f: 0x6c4f0c20, + // Block 0x675, offset 0x19d40 + 0x19d41: 0x6c868420, 0x19d42: 0x6d3f2220, 0x19d43: 0x6d412820, + 0x19d44: 0x6d114820, 0x19d45: 0x6c43a820, 0x19d46: 0x6c844c20, 0x19d47: 0x6cb71c20, + 0x19d48: 0x6c462420, 0x19d49: 0x6c868620, 0x19d4a: 0x6c0db220, 0x19d4b: 0x6cdd3c20, + 0x19d4e: 0x6cdb3e20, 0x19d4f: 0x6c1e4c20, + 0x19d50: 0x6c650220, 0x19d51: 0x6d010020, 0x19d52: 0x6c076420, 0x19d53: 0x6d066020, + 0x19d54: 0x6c6eb620, 0x19d55: 0x6cb46220, 0x19d56: 0x6c8d7220, 0x19d57: 0x6cfdd620, + 0x19d58: 0x6d42ac20, 0x19d59: 0x6c2e4420, 0x19d5a: 0x6c216a20, 0x19d5b: 0x6cbeb620, + 0x19d5c: 0x6ca41020, 0x19d5d: 0x6d2cfe20, 0x19d5e: 0x6c940820, 0x19d5f: 0x6d157420, + 0x19d60: 0x6cceba20, 0x19d61: 0x6d21ba20, 0x19d62: 0x6c575c20, 0x19d63: 0x6c845e20, + 0x19d64: 0x6cabce20, 0x19d67: 0x6c846020, + 0x19d6a: 0x6cd6e620, + 0x19d6c: 0x6d18d620, 0x19d6d: 0x6ca95c20, 0x19d6e: 0x6cd83820, 0x19d6f: 0x6c7ab020, + 0x19d70: 0x6c407a20, 0x19d71: 0x6d142820, 0x19d72: 0x6c2ab820, 0x19d73: 0x6cc49620, + 0x19d74: 0x6c131e20, 0x19d76: 0x6ce39820, 0x19d77: 0x6cbdb420, + 0x19d78: 0x6c0c8820, 0x19d79: 0x6cdca420, 0x19d7a: 0x6cef4c20, 0x19d7b: 0x6c33bc20, + 0x19d7c: 0x6ccb7a20, 0x19d7d: 0x6c00f620, 0x19d7e: 0x6cb7f420, 0x19d7f: 0x6d420e20, + // Block 0x676, offset 0x19d80 + 0x19d80: 0x6c7b7620, 0x19d81: 0x6c3a7420, 0x19d83: 0x6d1b9620, + 0x19d85: 0x6ccaea20, 0x19d86: 0x6c314820, 0x19d87: 0x6c5c8220, + 0x19d88: 0x6d026220, 0x19d89: 0x6d2b1c20, 0x19d8a: 0x6ce03420, 0x19d8b: 0x6ce15a20, + 0x19d8c: 0x6d374620, 0x19d8d: 0x6d191620, 0x19d8e: 0x6c3f1c20, 0x19d8f: 0x6c359420, + 0x19d91: 0x6c75fc20, 0x19d92: 0x6c638e20, 0x19d93: 0x6c141220, + 0x19d94: 0x6cfbca20, 0x19d95: 0x6c981420, 0x19d97: 0x6c0aba20, + 0x19d98: 0x6c8d9220, 0x19d99: 0x6c6b7620, 0x19d9a: 0x6c7d3620, 0x19d9b: 0x6c63f620, + 0x19d9d: 0x6c19a420, 0x19d9e: 0x6c813420, 0x19d9f: 0x6d03b420, + 0x19da0: 0x6c3af620, 0x19da1: 0x6c936e20, 0x19da2: 0x6d2c9e20, 0x19da3: 0x6c51a420, + 0x19da4: 0x6c5f9420, 0x19da5: 0x6ca66220, 0x19da6: 0x6d1cd620, 0x19da7: 0x6d002e20, + 0x19da8: 0x6ce2d820, 0x19da9: 0x6c81c820, 0x19daa: 0x6d2b2820, 0x19dab: 0x6c7cba20, + 0x19dad: 0x6cb9e620, 0x19dae: 0x6c719020, 0x19daf: 0x6cb18c20, + 0x19db0: 0x6c38f220, 0x19db1: 0x6ce80020, 0x19db2: 0x6c8c4020, 0x19db3: 0x6c9cc020, + 0x19db4: 0x6d3de820, 0x19db5: 0x6d013020, 0x19db6: 0x6c56ee20, 0x19db7: 0x6c9cc220, + 0x19db8: 0x6c6a4820, 0x19db9: 0x6d28e220, 0x19dba: 0x6c23d620, 0x19dbb: 0x6c87b220, + 0x19dbc: 0x6cc4a020, 0x19dbd: 0x6d3a4a20, 0x19dbe: 0x6d1ab820, 0x19dbf: 0x6c4f4020, + // Block 0x677, offset 0x19dc0 + 0x19dc1: 0x6d198620, 0x19dc2: 0x6c948020, 0x19dc3: 0x6d274420, + 0x19dc4: 0x6cc4a420, 0x19dc5: 0x6c8df620, 0x19dc6: 0x6ca78620, 0x19dc7: 0x6d24b620, + 0x19dc8: 0x6caaa020, 0x19dca: 0x6d174020, 0x19dcb: 0x6caaa420, + 0x19dcc: 0x6d174220, 0x19dcd: 0x6cb98020, 0x19dce: 0x6cf9b620, 0x19dcf: 0x6c1edc20, + 0x19dd0: 0x6d1a6820, 0x19dd1: 0x6c9d4820, 0x19dd2: 0x6cf65820, 0x19dd3: 0x6ca35a20, + 0x19dd4: 0x6c76de20, 0x19dd5: 0x6d412020, 0x19dd6: 0x6cf9da20, 0x19dd7: 0x6d0cc620, + 0x19dd8: 0x6ce8f420, 0x19dd9: 0x6ce30020, 0x19dda: 0x6cf38820, 0x19ddb: 0x6cdda820, + 0x19ddc: 0x6d1aaa20, 0x19ddd: 0x6c1d0a20, 0x19dde: 0x6d38de20, 0x19ddf: 0x6c988620, + 0x19de0: 0x6d254820, 0x19de1: 0x6caa8020, 0x19de2: 0x6c9e7020, 0x19de3: 0x6d2a4820, + 0x19de4: 0x6ced1420, 0x19de5: 0x6c83ca20, 0x19de6: 0x6cc10420, 0x19de7: 0x6ca33a20, + 0x19de8: 0x6cd26220, 0x19de9: 0x6c098c20, 0x19dea: 0x6d3e2a20, 0x19deb: 0x6c056c20, + 0x19ded: 0x6c736c20, 0x19dee: 0x6cfde620, 0x19def: 0x6c7c7c20, + 0x19df0: 0x6cac2c20, 0x19df1: 0x6c7ba220, 0x19df2: 0x6d0a1220, 0x19df3: 0x6d2cc620, + 0x19df4: 0x6d10fc20, 0x19df5: 0x6c7d6a20, 0x19df6: 0x6c5acc20, 0x19df7: 0x6cf65a20, + 0x19df8: 0x6c357420, 0x19df9: 0x6d0fcc20, 0x19dfa: 0x6ce59020, 0x19dfb: 0x6d1f4e20, + 0x19dfc: 0x6c746c20, 0x19dfd: 0x6c83f620, 0x19dff: 0x6c842020, + // Block 0x678, offset 0x19e00 + 0x19e00: 0x6c198020, 0x19e01: 0x6c624e20, 0x19e02: 0x6c562a20, 0x19e03: 0x6d2e7020, + 0x19e04: 0x6c3f7a20, 0x19e05: 0x6c16ba20, 0x19e06: 0x6c495c20, 0x19e07: 0x6c714420, + 0x19e08: 0x6c9b3220, 0x19e09: 0x6c167820, 0x19e0a: 0x6ce0a620, 0x19e0b: 0x6ca1e220, + 0x19e0c: 0x6d039e20, 0x19e0d: 0x6c852620, 0x19e0e: 0x6d0c2a20, 0x19e0f: 0x6cd9da20, + 0x19e10: 0x6cd1ee20, 0x19e11: 0x6d186420, 0x19e12: 0x6c0e2a20, 0x19e13: 0x6c234e20, + 0x19e14: 0x6c542c20, 0x19e15: 0x6ced3a20, 0x19e16: 0x6c2c9620, 0x19e17: 0x6c5f4420, + 0x19e18: 0x6c443820, 0x19e19: 0x6c4e3420, 0x19e1a: 0x6c0f6220, 0x19e1b: 0x6d04f420, + 0x19e1c: 0x6c8ea220, 0x19e1d: 0x6c11ae20, 0x19e1e: 0x6c11b020, 0x19e1f: 0x6d18d820, + 0x19e20: 0x6d082c20, 0x19e21: 0x6d0ce020, 0x19e22: 0x6d2a5c20, 0x19e23: 0x6c4f1e20, + 0x19e24: 0x6d1e0020, 0x19e25: 0x6d3fc820, 0x19e27: 0x6c775820, + 0x19e28: 0x6d21bc20, 0x19e29: 0x6cb53820, 0x19e2a: 0x6d310620, 0x19e2b: 0x6c967e20, + 0x19e2e: 0x6cd6e820, 0x19e2f: 0x6c6d6a20, + 0x19e30: 0x6c49b020, 0x19e31: 0x6cb46c20, 0x19e32: 0x6c8c7220, + 0x19e34: 0x6ce69c20, 0x19e35: 0x6c679420, 0x19e36: 0x6c7eac20, 0x19e37: 0x6d191820, + 0x19e38: 0x6d1dce20, 0x19e39: 0x6c22ec20, 0x19e3a: 0x6d0dfe20, 0x19e3b: 0x6c6b7020, + 0x19e3c: 0x6d09c820, 0x19e3d: 0x6cf11020, 0x19e3e: 0x6cfc4c20, 0x19e3f: 0x6ca93620, + // Block 0x679, offset 0x19e40 + 0x19e40: 0x6c408c20, 0x19e41: 0x6c445c20, 0x19e43: 0x6ca19c20, + 0x19e44: 0x6d3b4620, 0x19e45: 0x6ca38a20, 0x19e46: 0x6cfc5620, 0x19e47: 0x6cf1c420, + 0x19e48: 0x6c877820, 0x19e49: 0x6c11c220, 0x19e4a: 0x6c9f1c20, 0x19e4b: 0x6c655220, + 0x19e4c: 0x6ca6e220, 0x19e4d: 0x6c14b020, 0x19e4e: 0x6cecb020, 0x19e4f: 0x6d069c20, + 0x19e50: 0x6caa8220, 0x19e51: 0x6c973020, 0x19e52: 0x6d417020, 0x19e53: 0x6c770c20, + 0x19e54: 0x6c761620, 0x19e55: 0x6c4f7020, + 0x19e58: 0x6d23f420, 0x19e59: 0x6cf11220, 0x19e5a: 0x6d39fa20, + 0x19e5d: 0x6d170a20, 0x19e5f: 0x6c2dbc20, + 0x19e60: 0x6c3e4420, 0x19e61: 0x6c08d620, 0x19e62: 0x6d3a6820, 0x19e63: 0x6d3f0c20, + 0x19e64: 0x6cd5cc20, 0x19e65: 0x6cf9ba20, 0x19e66: 0x6ca5e020, + 0x19e68: 0x6c68fe20, 0x19e69: 0x6d0a1420, 0x19e6a: 0x6c1cc620, 0x19e6b: 0x6caa2220, + 0x19e6c: 0x6cc67e20, 0x19e6d: 0x6d364220, 0x19e6e: 0x6cca6e20, + 0x19e70: 0x6cccf020, 0x19e71: 0x6d237e20, 0x19e73: 0x6c6c4e20, + 0x19e75: 0x6c929c20, 0x19e76: 0x6c4db020, 0x19e77: 0x6c0cb220, + 0x19e78: 0x6d183a20, 0x19e79: 0x6d41c020, 0x19e7a: 0x6d2e7220, 0x19e7b: 0x6d23ac20, + 0x19e7c: 0x6ced3c20, 0x19e7d: 0x6ca5fe20, 0x19e7e: 0x6c495e20, 0x19e7f: 0x6c748420, + // Block 0x67a, offset 0x19e80 + 0x19e80: 0x6c082820, 0x19e81: 0x6c11a220, 0x19e83: 0x6c351220, + 0x19e84: 0x6cb7c620, 0x19e85: 0x6d10b420, 0x19e86: 0x6c7d1820, 0x19e87: 0x6cc84820, + 0x19e88: 0x6c542e20, 0x19e89: 0x6d0a3820, 0x19e8a: 0x6d020020, + 0x19e8c: 0x6c7d1a20, 0x19e8e: 0x6d00f020, 0x19e8f: 0x6c0f6420, + 0x19e90: 0x6c78d820, 0x19e91: 0x6c24ec20, 0x19e92: 0x6d074020, 0x19e93: 0x6c042820, + 0x19e94: 0x6cab5820, 0x19e95: 0x6d400c20, 0x19e97: 0x6ce42e20, + 0x19e98: 0x6c1ef220, 0x19e99: 0x6c1b5820, 0x19e9a: 0x6ca7b420, 0x19e9b: 0x6c49ac20, + 0x19e9c: 0x6c3cbe20, 0x19e9d: 0x6d023020, 0x19e9e: 0x6c2aba20, 0x19e9f: 0x6cef4e20, + 0x19ea0: 0x6c74e220, 0x19ea1: 0x6c7d2e20, 0x19ea2: 0x6d2bb420, 0x19ea3: 0x6cc9ac20, + 0x19ea4: 0x6c34bc20, 0x19ea5: 0x6c8d8420, 0x19ea6: 0x6c9b9a20, + 0x19ea8: 0x6c4cde20, 0x19ea9: 0x6c9b9c20, 0x19eaa: 0x6c8fec20, + 0x19eac: 0x6d1d5e20, 0x19eae: 0x6c49c620, 0x19eaf: 0x6c248820, + 0x19eb0: 0x6c84e620, 0x19eb1: 0x6c320c20, 0x19eb3: 0x6c0bf220, + 0x19eb5: 0x6cf62c20, 0x19eb7: 0x6c2a6620, + 0x19eb8: 0x6c2a6820, 0x19eb9: 0x6cfcba20, 0x19eba: 0x6c880020, + 0x19ebc: 0x6ccedc20, 0x19ebd: 0x6d00b020, 0x19ebe: 0x6cd1c420, 0x19ebf: 0x6cf09e20, + // Block 0x67b, offset 0x19ec0 + 0x19ec2: 0x6c51d820, 0x19ec3: 0x6d1f5a20, + 0x19ec4: 0x6c92b220, 0x19ec5: 0x6c7f5020, 0x19ec6: 0x6d1d0e20, 0x19ec7: 0x6cd14c20, + 0x19ec8: 0x6c739220, 0x19ec9: 0x6cb7e420, 0x19eca: 0x6c65ea20, 0x19ecb: 0x6d285c20, + 0x19ecd: 0x6cb7f620, 0x19ecf: 0x6c8c7c20, + 0x19ed0: 0x6c60ea20, 0x19ed1: 0x6c970a20, 0x19ed2: 0x6c208220, 0x19ed3: 0x6ca74620, + 0x19ed4: 0x6c0d6e20, 0x19ed5: 0x6c87c020, 0x19ed6: 0x6c8dfa20, 0x19ed7: 0x6c427a20, + 0x19ed8: 0x6c1a2020, 0x19ed9: 0x6d07b020, 0x19eda: 0x6cfc1a20, 0x19edb: 0x6c558620, + 0x19edc: 0x6c088620, 0x19edd: 0x6d40d020, 0x19ede: 0x6c271a20, 0x19edf: 0x6c271c20, + 0x19ee0: 0x6c5d3e20, 0x19ee1: 0x6cc9d020, 0x19ee2: 0x6c184420, 0x19ee3: 0x6ce37c20, + 0x19ee5: 0x6cab1a20, 0x19ee6: 0x6d371420, 0x19ee7: 0x6c8ebe20, + 0x19ee8: 0x6c3aea20, 0x19ee9: 0x6c695e20, 0x19eea: 0x6c493620, 0x19eeb: 0x6cf7ba20, + 0x19eec: 0x6c8bf820, 0x19eed: 0x6d07f820, 0x19eee: 0x6cc62a20, 0x19eef: 0x6ce25a20, + 0x19ef0: 0x6cb05820, 0x19ef1: 0x6d032a20, 0x19ef2: 0x6ccd7c20, 0x19ef3: 0x6d360e20, + 0x19ef4: 0x6cec3220, 0x19ef5: 0x6ce81020, 0x19ef6: 0x6ce46620, 0x19ef7: 0x6d13e820, + 0x19ef8: 0x6d019c20, 0x19ef9: 0x6cb05c20, 0x19efa: 0x6d10ec20, 0x19efb: 0x6d10ee20, + 0x19efc: 0x6caa8620, 0x19efd: 0x6c503a20, 0x19efe: 0x6ca8e820, 0x19eff: 0x6d1b4a20, + // Block 0x67c, offset 0x19f00 + 0x19f00: 0x6c390a20, 0x19f01: 0x6ca3fa20, 0x19f02: 0x6d109c20, 0x19f03: 0x6ced7e20, + 0x19f04: 0x6d25e820, 0x19f05: 0x6cf9c820, 0x19f06: 0x6d392c20, 0x19f07: 0x6d25ea20, + 0x19f08: 0x6cd38a20, 0x19f09: 0x6c9e5a20, 0x19f0a: 0x6cf62e20, 0x19f0b: 0x6c621220, + 0x19f0c: 0x6ce22a20, 0x19f0d: 0x6c3ab020, 0x19f0e: 0x6d096020, 0x19f0f: 0x6ca5e820, + 0x19f10: 0x6c224620, 0x19f11: 0x6c9d4a20, 0x19f12: 0x6c0ba220, + 0x19f14: 0x6ca2e620, 0x19f15: 0x6d238020, 0x19f16: 0x6c366220, 0x19f17: 0x6d353a20, + 0x19f18: 0x6cc57420, 0x19f19: 0x6d070020, 0x19f1a: 0x6c94b020, 0x19f1b: 0x6c5be820, + 0x19f1c: 0x6d0a9620, 0x19f1d: 0x6ca4b820, 0x19f1e: 0x6c4eee20, 0x19f1f: 0x6c63d620, + 0x19f20: 0x6c312e20, 0x19f21: 0x6c57b420, 0x19f22: 0x6ce86c20, 0x19f23: 0x6cb26220, + 0x19f24: 0x6c244c20, 0x19f25: 0x6cf68220, 0x19f26: 0x6cd99820, 0x19f27: 0x6c9c6c20, + 0x19f28: 0x6d034420, 0x19f29: 0x6cf51a20, 0x19f2a: 0x6cbf5420, 0x19f2b: 0x6d2edc20, + 0x19f2c: 0x6ce23620, 0x19f2d: 0x6d043620, 0x19f2e: 0x6c701e20, 0x19f2f: 0x6c728220, + 0x19f30: 0x6c5d4020, 0x19f31: 0x6ce36e20, 0x19f32: 0x6c977420, 0x19f33: 0x6d0ea420, + 0x19f34: 0x6c5f2020, 0x19f35: 0x6cd47a20, 0x19f36: 0x6c82d620, 0x19f37: 0x6ced4420, + 0x19f38: 0x6c183820, 0x19f39: 0x6c120a20, 0x19f3a: 0x6c6c0620, 0x19f3b: 0x6d205820, + 0x19f3c: 0x6c5b6620, 0x19f3d: 0x6d2c9420, 0x19f3e: 0x6cdb4820, 0x19f3f: 0x6c444220, + // Block 0x67d, offset 0x19f40 + 0x19f40: 0x6ca51a20, 0x19f41: 0x6cf8f820, 0x19f43: 0x6c331a20, + 0x19f44: 0x6c1b6420, 0x19f45: 0x6cef5020, 0x19f46: 0x6d30ae20, 0x19f47: 0x6c4bf420, + 0x19f48: 0x6c175620, 0x19f49: 0x6c1ae020, 0x19f4a: 0x6d2a2820, 0x19f4b: 0x6c5c8420, + 0x19f4c: 0x6c944820, 0x19f4d: 0x6c8a4620, 0x19f4e: 0x6c818a20, 0x19f4f: 0x6cead820, + 0x19f50: 0x6c5b0420, 0x19f51: 0x6cf54620, 0x19f52: 0x6c02fa20, 0x19f53: 0x6ccf8620, + 0x19f54: 0x6cdc0220, 0x19f55: 0x6c974c20, 0x19f56: 0x6ce0b620, 0x19f57: 0x6d035a20, + 0x19f58: 0x6c6e4020, 0x19f59: 0x6c017620, 0x19f5a: 0x6cdee220, 0x19f5b: 0x6c156420, + 0x19f5c: 0x6cf11a20, 0x19f5d: 0x6ce98420, 0x19f5e: 0x6c62dc20, 0x19f5f: 0x6c18fa20, + 0x19f60: 0x6c185820, 0x19f61: 0x6d247c20, 0x19f62: 0x6cfc6020, 0x19f63: 0x6d02d020, + 0x19f67: 0x6ca51c20, + 0x19f69: 0x6d0f1020, 0x19f6a: 0x6cc01e20, 0x19f6b: 0x6c675820, + 0x19f6c: 0x6cd95c20, 0x19f6d: 0x6c75c420, 0x19f6e: 0x6c89fc20, 0x19f6f: 0x6c714e20, + 0x19f71: 0x6c97d220, 0x19f72: 0x6c8b7220, + 0x19f74: 0x6c1f3820, 0x19f75: 0x6c1bae20, 0x19f76: 0x6cfdcc20, 0x19f77: 0x6cbd3a20, + 0x19f78: 0x6c9a6220, 0x19f79: 0x6cd5fa20, 0x19f7a: 0x6c149020, 0x19f7b: 0x6c1bc420, + 0x19f7c: 0x6c474620, 0x19f7d: 0x6d21a820, 0x19f7e: 0x6d1a0420, + // Block 0x67e, offset 0x19f80 + 0x19f80: 0x6c8eac20, 0x19f81: 0x6c818020, 0x19f82: 0x6cd61e20, 0x19f83: 0x6d30be20, + 0x19f84: 0x6cd6c420, 0x19f85: 0x6c5aac20, + 0x19f88: 0x6c364620, 0x19f8a: 0x6ccc7020, 0x19f8b: 0x6d402e20, + 0x19f8c: 0x6c74a620, 0x19f8d: 0x6c75ec20, 0x19f8e: 0x6ce93820, 0x19f8f: 0x6c90ca20, + 0x19f90: 0x6cef5c20, 0x19f91: 0x6c1cf420, 0x19f92: 0x6d3b4820, 0x19f93: 0x6c8b7420, + 0x19f95: 0x6d30cc20, 0x19f96: 0x6d2f8c20, + 0x19f98: 0x6d178020, 0x19f99: 0x6c1e5c20, 0x19f9a: 0x6ca5ea20, 0x19f9b: 0x6c0e7820, + 0x19f9c: 0x6cdb8620, 0x19f9d: 0x6d160620, 0x19f9e: 0x6c506020, 0x19f9f: 0x6d0bc820, + 0x19fa0: 0x6c58ac20, 0x19fa1: 0x6c980a20, 0x19fa2: 0x6c980c20, 0x19fa3: 0x6cc1f220, + 0x19fa4: 0x6c81c420, 0x19fa5: 0x6c4ffe20, 0x19fa6: 0x6d37d620, 0x19fa7: 0x6c9f4e20, + 0x19fa8: 0x6cfb5620, 0x19fa9: 0x6d324420, 0x19faa: 0x6cd55e20, 0x19fab: 0x6d423e20, + 0x19fac: 0x6d3afc20, 0x19fad: 0x6c46aa20, 0x19fae: 0x6d089820, 0x19faf: 0x6d17c620, + 0x19fb0: 0x6d366e20, 0x19fb1: 0x6d00c620, 0x19fb2: 0x6c6d1e20, 0x19fb3: 0x6c11a420, + 0x19fb5: 0x6c10ae20, 0x19fb6: 0x6c896a20, 0x19fb7: 0x6d341020, + 0x19fb8: 0x6c626c20, 0x19fb9: 0x6ced4620, 0x19fba: 0x6c49a420, 0x19fbb: 0x6c70bc20, + 0x19fbc: 0x6c6ea220, 0x19fbd: 0x6c00c420, 0x19fbe: 0x6c404220, 0x19fbf: 0x6c4b7220, + // Block 0x67f, offset 0x19fc0 + 0x19fc0: 0x6c548020, 0x19fc1: 0x6d0ec620, 0x19fc2: 0x6cc87e20, 0x19fc3: 0x6d36ee20, + 0x19fc4: 0x6c0c9420, 0x19fc5: 0x6d157620, 0x19fc6: 0x6cdd9e20, 0x19fc7: 0x6c2efa20, + 0x19fc8: 0x6c4b9620, 0x19fc9: 0x6cd18020, 0x19fca: 0x6d0ab820, 0x19fcb: 0x6c194620, + 0x19fcc: 0x6ccf2020, 0x19fcd: 0x6cbe8a20, + 0x19fd0: 0x6c218a20, 0x19fd1: 0x6c533820, 0x19fd2: 0x6c308220, 0x19fd3: 0x6c198220, + 0x19fd4: 0x6ceff820, 0x19fd5: 0x6cc7ea20, 0x19fd6: 0x6cd55420, 0x19fd7: 0x6c10f220, + 0x19fd8: 0x6c600e20, 0x19fd9: 0x6d28b620, 0x19fda: 0x6cb5d420, 0x19fdb: 0x6d0c0220, + 0x19fdc: 0x6c3fe820, 0x19fdd: 0x6d235820, 0x19fde: 0x6c3e9020, 0x19fdf: 0x6cb39220, + 0x19fe0: 0x6d33e620, 0x19fe1: 0x6ce06220, 0x19fe2: 0x6d424020, 0x19fe3: 0x6c17ec20, + 0x19fe4: 0x6cc19a20, 0x19fe5: 0x6d204e20, 0x19fe6: 0x6c514a20, 0x19fe7: 0x6c547420, + 0x19fe8: 0x6c4b0e20, 0x19fe9: 0x6c366620, 0x19fea: 0x6c67ea20, 0x19feb: 0x6d27f620, + 0x19fec: 0x6ce83020, 0x19fed: 0x6c259820, 0x19fee: 0x6ce87020, 0x19fef: 0x6c402a20, + 0x19ff0: 0x6d424c20, 0x19ff1: 0x6c558820, 0x19ff3: 0x6c0f4a20, + 0x19ff4: 0x6d2f6e20, 0x19ff5: 0x6c754a20, 0x19ff6: 0x6ce0d020, 0x19ff7: 0x6c74aa20, + 0x19ff8: 0x6c404620, 0x19ff9: 0x6c5a0220, 0x19ffa: 0x6c211820, 0x19ffb: 0x6d1e5e20, + 0x19ffc: 0x6c20f020, 0x19ffd: 0x6cdda020, 0x19ffe: 0x6c1b5c20, 0x19fff: 0x6cb92a20, + // Block 0x680, offset 0x1a000 + 0x1a000: 0x6c10fc20, 0x1a001: 0x6cff9c20, 0x1a002: 0x6c979220, 0x1a003: 0x6c117c20, + 0x1a004: 0x6cb7f820, 0x1a005: 0x6c66f620, 0x1a006: 0x6c0a9a20, 0x1a007: 0x6c5f8420, + 0x1a008: 0x6d34b820, 0x1a009: 0x6d3a3620, 0x1a00a: 0x6cc1f420, 0x1a00b: 0x6d2e3420, + 0x1a00c: 0x6c60fa20, 0x1a00d: 0x6c0b2420, 0x1a00f: 0x6c878020, + 0x1a010: 0x6c879420, 0x1a011: 0x6d272a20, 0x1a012: 0x6cc34020, 0x1a013: 0x6c195a20, + 0x1a014: 0x6c3fcc20, 0x1a015: 0x6c144020, 0x1a016: 0x6ce19c20, 0x1a017: 0x6cd37420, + 0x1a018: 0x6c4f9620, 0x1a019: 0x6cbcbe20, 0x1a01a: 0x6cb5d620, 0x1a01b: 0x6c0efc20, + 0x1a01c: 0x6ca33e20, 0x1a01d: 0x6ce82a20, 0x1a01e: 0x6c1e7a20, 0x1a01f: 0x6c243c20, + 0x1a020: 0x6d26c020, 0x1a021: 0x6d33e820, 0x1a022: 0x6c18cc20, 0x1a023: 0x6c1f4a20, + 0x1a024: 0x6c09b420, 0x1a025: 0x6c9b1c20, 0x1a026: 0x6c038020, 0x1a027: 0x6ce4a220, + 0x1a028: 0x6c9f5a20, 0x1a029: 0x6c8aba20, 0x1a02a: 0x6c3ccc20, 0x1a02b: 0x6c197420, + 0x1a02c: 0x6cc0b820, 0x1a02d: 0x6ce58820, 0x1a02e: 0x6c3eac20, 0x1a02f: 0x6c7e0820, + 0x1a030: 0x6c65b820, + 0x1a034: 0x6d325620, 0x1a035: 0x6cc08a20, 0x1a036: 0x6d42a820, 0x1a037: 0x6c1c4c20, + 0x1a038: 0x6c7c9420, 0x1a039: 0x6c8b2420, 0x1a03a: 0x6c074a20, 0x1a03b: 0x6c326e20, + 0x1a03c: 0x6cf46c20, 0x1a03e: 0x6d3d9220, 0x1a03f: 0x6c92ba20, + // Block 0x681, offset 0x1a040 + 0x1a040: 0x6ce0d220, 0x1a042: 0x6c1eaa20, 0x1a043: 0x6c89a020, + 0x1a044: 0x6ce51820, 0x1a045: 0x6c7dbe20, 0x1a046: 0x6c16c420, 0x1a047: 0x6c74ac20, + 0x1a048: 0x6ce8ec20, 0x1a049: 0x6c594e20, 0x1a04a: 0x6c3aca20, 0x1a04b: 0x6c0a3c20, + 0x1a04d: 0x6cf97c20, 0x1a04e: 0x6cf31820, 0x1a04f: 0x6c628a20, + 0x1a050: 0x6cc27a20, 0x1a051: 0x6c7cdc20, 0x1a052: 0x6c55c220, 0x1a053: 0x6cbfca20, + 0x1a054: 0x6cdc7c20, 0x1a055: 0x6c10fa20, 0x1a057: 0x6cc0bc20, + 0x1a058: 0x6cb0c820, 0x1a059: 0x6cad1020, 0x1a05a: 0x6cec4020, 0x1a05b: 0x6d115620, + 0x1a05c: 0x6cc6c220, 0x1a05d: 0x6d09b620, 0x1a05e: 0x6c246c20, 0x1a05f: 0x6c2efc20, + 0x1a060: 0x6c1c8a20, 0x1a061: 0x6c25f620, 0x1a062: 0x6c9c1220, 0x1a063: 0x6d086420, + 0x1a064: 0x6c34be20, 0x1a065: 0x6c0d0420, 0x1a066: 0x6d310a20, 0x1a067: 0x6c1ec620, + 0x1a068: 0x6c164220, 0x1a069: 0x6c4b9e20, 0x1a06a: 0x6c32e620, 0x1a06b: 0x6d409420, + 0x1a06c: 0x6c2afe20, 0x1a06d: 0x6c7f3820, 0x1a06e: 0x6ce2da20, 0x1a06f: 0x6d272c20, + 0x1a070: 0x6cc34220, 0x1a071: 0x6d3a5020, 0x1a072: 0x6c8d1020, 0x1a073: 0x6c186c20, + 0x1a074: 0x6d31e020, 0x1a075: 0x6c400220, 0x1a076: 0x6ccf4e20, 0x1a077: 0x6ce5c620, + 0x1a078: 0x6c7ac820, 0x1a079: 0x6c004420, 0x1a07b: 0x6cbf5620, + 0x1a07c: 0x6cd61220, 0x1a07d: 0x6c4d3420, 0x1a07e: 0x6ccd5e20, 0x1a07f: 0x6cec7620, + // Block 0x682, offset 0x1a080 + 0x1a080: 0x6d2e3620, 0x1a081: 0x6c904a20, 0x1a082: 0x6c6f6220, 0x1a083: 0x6c85b820, + 0x1a085: 0x6c210220, 0x1a086: 0x6cc66c20, 0x1a087: 0x6d26ac20, + 0x1a088: 0x6c743a20, 0x1a089: 0x6c776c20, 0x1a08a: 0x6c390c20, 0x1a08b: 0x6cb5da20, + 0x1a08c: 0x6c534220, 0x1a08d: 0x6c3e7220, 0x1a08e: 0x6c915220, 0x1a08f: 0x6c535820, + 0x1a090: 0x6ceb2a20, 0x1a091: 0x6c9f5c20, 0x1a092: 0x6ce4a420, 0x1a093: 0x6c737c20, + 0x1a094: 0x6cb70620, 0x1a095: 0x6d332620, 0x1a096: 0x6cbece20, 0x1a097: 0x6c45f220, + 0x1a098: 0x6ce4b620, 0x1a099: 0x6c80dc20, 0x1a09a: 0x6c99a620, 0x1a09b: 0x6d1b6a20, + 0x1a09c: 0x6c92c020, 0x1a09d: 0x6d250e20, 0x1a09e: 0x6c715420, 0x1a09f: 0x6cb0b820, + 0x1a0a1: 0x6d00f420, 0x1a0a2: 0x6c0bbe20, 0x1a0a3: 0x6c5cd820, + 0x1a0a4: 0x6d39cc20, 0x1a0a5: 0x6cc6c820, 0x1a0a6: 0x6cca8e20, 0x1a0a7: 0x6cf38420, + 0x1a0a8: 0x6c144e20, 0x1a0a9: 0x6c795820, 0x1a0aa: 0x6ccdc420, 0x1a0ab: 0x6caede20, + 0x1a0ac: 0x6c980e20, 0x1a0ad: 0x6d050620, 0x1a0af: 0x6c237020, + 0x1a0b0: 0x6c796020, 0x1a0b1: 0x6d3bb220, 0x1a0b2: 0x6c154620, 0x1a0b3: 0x6cd84220, + 0x1a0b4: 0x6c1cf620, 0x1a0b5: 0x6cdcae20, 0x1a0b6: 0x6c076e20, 0x1a0b7: 0x6c769e20, + 0x1a0b9: 0x6d376020, 0x1a0ba: 0x6cf12620, 0x1a0bb: 0x6c9f8420, + 0x1a0bc: 0x6c8db220, 0x1a0bd: 0x6d414220, 0x1a0be: 0x6ca8d420, 0x1a0bf: 0x6c8dfc20, + // Block 0x683, offset 0x1a0c0 + 0x1a0c0: 0x6cb77420, 0x1a0c1: 0x6d26b020, 0x1a0c3: 0x6d186820, + 0x1a0c4: 0x6cf82220, 0x1a0c5: 0x6c18d820, 0x1a0c7: 0x6cc71e20, + 0x1a0c8: 0x6c18f820, 0x1a0c9: 0x6ca9da20, 0x1a0ca: 0x6d1ef220, 0x1a0cb: 0x6c618c20, + 0x1a0cc: 0x6c0ebe20, 0x1a0cd: 0x6c39ca20, + 0x1a0d0: 0x6c242220, 0x1a0d1: 0x6c2be820, 0x1a0d2: 0x6c684020, 0x1a0d3: 0x6d20fc20, + 0x1a0d4: 0x6c50fe20, 0x1a0d5: 0x6d06b220, 0x1a0d6: 0x6d22f820, 0x1a0d7: 0x6cc0f620, + 0x1a0d9: 0x6c044420, 0x1a0da: 0x6c44cc20, 0x1a0db: 0x6c6f0e20, + 0x1a0dd: 0x6d0bb820, 0x1a0de: 0x6cd5de20, 0x1a0df: 0x6d1f3e20, + 0x1a0e0: 0x6cd98e20, 0x1a0e1: 0x6d130820, 0x1a0e2: 0x6c125820, 0x1a0e3: 0x6d112a20, + 0x1a0e4: 0x6cd5fc20, 0x1a0e5: 0x6d0cba20, 0x1a0e6: 0x6cd67220, 0x1a0e7: 0x6c8aa220, + 0x1a0e8: 0x6c235020, 0x1a0e9: 0x6d23d420, 0x1a0ea: 0x6c0f6620, 0x1a0eb: 0x6cdbfe20, + 0x1a0ed: 0x6d0eca20, 0x1a0ee: 0x6c834820, 0x1a0ef: 0x6c8bf420, + 0x1a0f0: 0x6ce30220, 0x1a0f1: 0x6c31de20, 0x1a0f2: 0x6d272e20, 0x1a0f3: 0x6c611620, + 0x1a0f5: 0x6d278620, + 0x1a0f8: 0x6c706220, 0x1a0f9: 0x6c71a820, 0x1a0fa: 0x6c1e5820, 0x1a0fb: 0x6c18ac20, + 0x1a0fc: 0x6c457820, 0x1a0fd: 0x6cfe4220, 0x1a0fe: 0x6cfbee20, 0x1a0ff: 0x6c011c20, + // Block 0x684, offset 0x1a100 + 0x1a100: 0x6c4ae020, 0x1a101: 0x6d223220, 0x1a102: 0x6c82bc20, + 0x1a104: 0x6ce89c20, 0x1a105: 0x6c18b820, 0x1a106: 0x6d03e020, 0x1a107: 0x6cc03e20, + 0x1a108: 0x6c4f9a20, 0x1a10a: 0x6c292c20, 0x1a10b: 0x6c112e20, + 0x1a10c: 0x6c2bf420, 0x1a10d: 0x6d0d7020, 0x1a10e: 0x6d3e3020, + 0x1a110: 0x6d1bc020, 0x1a111: 0x6c14fa20, 0x1a113: 0x6c840020, + 0x1a114: 0x6cdd7e20, 0x1a115: 0x6c969c20, 0x1a116: 0x6c96a620, + 0x1a118: 0x6ce11e20, 0x1a119: 0x6cade620, 0x1a11a: 0x6c90ae20, 0x1a11b: 0x6cb51820, + 0x1a11c: 0x6c25ec20, 0x1a11d: 0x6ce8ee20, 0x1a11e: 0x6c369a20, 0x1a11f: 0x6c11aa20, + 0x1a120: 0x6c6b2c20, 0x1a121: 0x6d156420, 0x1a122: 0x6c60d020, 0x1a123: 0x6c294220, + 0x1a124: 0x6c752220, 0x1a125: 0x6c08cc20, 0x1a126: 0x6c832620, 0x1a127: 0x6d174a20, + 0x1a128: 0x6c214020, 0x1a129: 0x6c214620, 0x1a12a: 0x6cb38820, 0x1a12b: 0x6c83cc20, + 0x1a12c: 0x6d291420, 0x1a12d: 0x6cdf7020, 0x1a12e: 0x6cb39420, 0x1a12f: 0x6c242620, + 0x1a130: 0x6c725020, 0x1a131: 0x6d070620, 0x1a132: 0x6c395820, + 0x1a134: 0x6d070820, 0x1a135: 0x6c37d420, 0x1a136: 0x6c5d7e20, 0x1a137: 0x6d39b820, + 0x1a138: 0x6cc4c820, 0x1a139: 0x6c381c20, 0x1a13a: 0x6c72fc20, 0x1a13b: 0x6c4db620, + 0x1a13c: 0x6c896e20, 0x1a13d: 0x6d341220, 0x1a13e: 0x6c9d8220, 0x1a13f: 0x6d209a20, + // Block 0x685, offset 0x1a140 + 0x1a141: 0x6c133a20, 0x1a142: 0x6c9a2c20, 0x1a143: 0x6d1a0620, + 0x1a144: 0x6c9e4220, 0x1a145: 0x6ce8f620, 0x1a146: 0x6c7c9e20, + 0x1a149: 0x6c9d9a20, 0x1a14a: 0x6cc6ca20, 0x1a14b: 0x6d241c20, + 0x1a14c: 0x6cbae620, 0x1a14d: 0x6c9c8c20, 0x1a14e: 0x6c718020, 0x1a14f: 0x6cb07e20, + 0x1a150: 0x6c6cc620, 0x1a151: 0x6cee5e20, 0x1a152: 0x6c62c020, 0x1a153: 0x6c9baa20, + 0x1a154: 0x6c672020, 0x1a155: 0x6d098020, 0x1a156: 0x6c068220, 0x1a157: 0x6c420220, + 0x1a158: 0x6c161e20, 0x1a159: 0x6c87cc20, 0x1a15a: 0x6c851620, 0x1a15b: 0x6cc04020, + 0x1a15c: 0x6c33ee20, 0x1a15d: 0x6d1d3e20, 0x1a15e: 0x6d27ea20, 0x1a15f: 0x6c18ce20, + 0x1a160: 0x6d353220, 0x1a161: 0x6cc4ca20, 0x1a163: 0x6c94b220, + 0x1a164: 0x6c763a20, 0x1a165: 0x6c4b1420, 0x1a166: 0x6d26d620, 0x1a167: 0x6c5c0820, + 0x1a168: 0x6cb0b220, 0x1a169: 0x6c13f820, 0x1a16a: 0x6c34a820, 0x1a16b: 0x6c152220, + 0x1a16c: 0x6ccc1020, 0x1a16d: 0x6cd3c820, 0x1a16e: 0x6ccf7620, 0x1a16f: 0x6d03fa20, + 0x1a170: 0x6d1c9420, 0x1a171: 0x6cd3ca20, 0x1a172: 0x6c1c6420, 0x1a173: 0x6d134820, + 0x1a174: 0x6c4e3620, 0x1a175: 0x6c3ad420, 0x1a176: 0x6d134a20, 0x1a177: 0x6d0de220, + 0x1a178: 0x6d416220, 0x1a179: 0x6cd9ee20, 0x1a17a: 0x6c6c6620, 0x1a17b: 0x6c351a20, + 0x1a17c: 0x6cfd2220, 0x1a17d: 0x6c492e20, 0x1a17e: 0x6ce1f820, 0x1a17f: 0x6cbcfa20, + // Block 0x686, offset 0x1a180 + 0x1a180: 0x6c15f420, 0x1a181: 0x6c4e4420, 0x1a182: 0x6c9c1420, 0x1a183: 0x6d26fc20, + 0x1a184: 0x6c247020, 0x1a185: 0x6cba8420, 0x1a186: 0x6c6cc420, 0x1a187: 0x6ccdd020, + 0x1a188: 0x6ca25820, 0x1a189: 0x6d251e20, 0x1a18b: 0x6cae8a20, + 0x1a18c: 0x6d336e20, 0x1a18d: 0x6d374a20, 0x1a18e: 0x6c216c20, 0x1a18f: 0x6d22aa20, + 0x1a190: 0x6ca1f820, 0x1a191: 0x6cedae20, 0x1a192: 0x6c681020, 0x1a193: 0x6cb54c20, + 0x1a194: 0x6cdb5e20, 0x1a195: 0x6cb1e220, 0x1a196: 0x6ce4d020, 0x1a197: 0x6c7b7820, + 0x1a198: 0x6c247a20, 0x1a199: 0x6cdcb820, 0x1a19b: 0x6c6a4220, + 0x1a19c: 0x6c671420, 0x1a19d: 0x6c028820, 0x1a19e: 0x6c696e20, 0x1a19f: 0x6d138e20, + 0x1a1a1: 0x6d139020, 0x1a1a2: 0x6c8ff020, 0x1a1a3: 0x6d2a3620, + 0x1a1a4: 0x6c05de20, 0x1a1a5: 0x6c889a20, 0x1a1a7: 0x6c58c620, + 0x1a1a8: 0x6c942620, 0x1a1a9: 0x6cef7820, 0x1a1aa: 0x6cfc5820, 0x1a1ab: 0x6ce60a20, + 0x1a1ac: 0x6c0fc820, 0x1a1ad: 0x6d337620, 0x1a1ae: 0x6d3a3e20, 0x1a1af: 0x6c06c420, + 0x1a1b0: 0x6c9bba20, 0x1a1b1: 0x6d015220, 0x1a1b2: 0x6cab6820, 0x1a1b3: 0x6d1ed820, + 0x1a1b5: 0x6cffc820, 0x1a1b6: 0x6c87aa20, 0x1a1b7: 0x6d2c6e20, + 0x1a1b8: 0x6c9cd020, 0x1a1ba: 0x6d128420, + 0x1a1bd: 0x6cb31620, 0x1a1be: 0x6d014220, + // Block 0x687, offset 0x1a1c0 + 0x1a1c2: 0x6ccdd220, 0x1a1c3: 0x6d3d1420, + 0x1a1c5: 0x6ccddc20, 0x1a1c6: 0x6c754020, 0x1a1c7: 0x6c61fc20, + 0x1a1c8: 0x6c6a2620, 0x1a1ca: 0x6ca7a420, 0x1a1cb: 0x6c028420, + 0x1a1cc: 0x6c1f3a20, 0x1a1cd: 0x6cf4e420, 0x1a1ce: 0x6c495420, 0x1a1cf: 0x6d01b820, + 0x1a1d0: 0x6ce6d020, 0x1a1d1: 0x6d096220, 0x1a1d2: 0x6c297220, 0x1a1d3: 0x6d2d8620, + 0x1a1d4: 0x6ce06620, 0x1a1d5: 0x6cae7c20, 0x1a1d6: 0x6d00d420, 0x1a1d7: 0x6d072020, + 0x1a1d8: 0x6cfcf220, 0x1a1d9: 0x6cd8d820, 0x1a1da: 0x6c7aee20, 0x1a1db: 0x6d335a20, + 0x1a1dc: 0x6cf3e620, 0x1a1dd: 0x6c5d5c20, 0x1a1de: 0x6cc90620, 0x1a1df: 0x6cf1ee20, + 0x1a1e0: 0x6c317a20, 0x1a1e1: 0x6c58a020, 0x1a1e2: 0x6c7e1420, 0x1a1e3: 0x6c405a20, + 0x1a1e4: 0x6c1fd020, 0x1a1e5: 0x6cfba420, 0x1a1e6: 0x6cbdae20, 0x1a1e7: 0x6cbc8820, + 0x1a1e8: 0x6c7fba20, 0x1a1ea: 0x6d0bca20, 0x1a1eb: 0x6d1c0220, + 0x1a1ec: 0x6cc40820, 0x1a1ed: 0x6c4f5620, 0x1a1ee: 0x6c218c20, 0x1a1ef: 0x6d371e20, + 0x1a1f1: 0x6cf05620, 0x1a1f2: 0x6d0d0620, 0x1a1f3: 0x6cfe6a20, + 0x1a1f4: 0x6d194c20, 0x1a1f5: 0x6ca66a20, 0x1a1f6: 0x6d335c20, 0x1a1f7: 0x6c1fca20, + 0x1a1f9: 0x6cd23020, 0x1a1fa: 0x6c2f4a20, 0x1a1fb: 0x6d3ee020, + 0x1a1fc: 0x6c73e820, 0x1a1fd: 0x6d067620, 0x1a1fe: 0x6d255a20, + // Block 0x688, offset 0x1a200 + 0x1a201: 0x6d063020, 0x1a202: 0x6c2a0220, 0x1a203: 0x6ce48620, + 0x1a204: 0x6c448020, 0x1a205: 0x6d14b420, 0x1a206: 0x6c532420, 0x1a207: 0x6d13dc20, + 0x1a209: 0x6c851220, 0x1a20a: 0x6c7a3820, 0x1a20b: 0x6cfc0820, + 0x1a20c: 0x6cdbbe20, 0x1a20d: 0x6cf87620, 0x1a20e: 0x6d088620, + 0x1a211: 0x6c2b2a20, 0x1a212: 0x6c7f0420, 0x1a213: 0x6d387e20, + 0x1a214: 0x6ca76420, 0x1a215: 0x6c19f820, 0x1a216: 0x6c668620, 0x1a217: 0x6c09ba20, + 0x1a218: 0x6d3bc820, 0x1a219: 0x6c8d1620, 0x1a21a: 0x6c504e20, 0x1a21b: 0x6c058020, + 0x1a21c: 0x6ce10a20, 0x1a21d: 0x6c1ac220, 0x1a21e: 0x6c96c820, 0x1a21f: 0x6cfce420, + 0x1a220: 0x6cd69420, 0x1a221: 0x6d1da020, 0x1a222: 0x6cc12c20, + 0x1a224: 0x6cb44c20, 0x1a225: 0x6c5c2020, 0x1a226: 0x6cef3620, 0x1a227: 0x6d161620, + 0x1a228: 0x6d134c20, 0x1a22a: 0x6c184820, 0x1a22b: 0x6c4ff820, + 0x1a22c: 0x6c0d5a20, 0x1a22e: 0x6cfd3620, 0x1a22f: 0x6c155e20, + 0x1a230: 0x6c5d4e20, 0x1a232: 0x6c4ebc20, 0x1a233: 0x6c224220, + 0x1a234: 0x6d33ec20, 0x1a235: 0x6cb5f220, 0x1a236: 0x6c7c7e20, 0x1a237: 0x6cc75620, + 0x1a239: 0x6d1bca20, 0x1a23a: 0x6d047e20, + 0x1a23c: 0x6c55a020, 0x1a23d: 0x6c250620, 0x1a23f: 0x6cc3fc20, + // Block 0x689, offset 0x1a240 + 0x1a240: 0x6c2b9220, 0x1a241: 0x6cf53020, 0x1a242: 0x6cbfd020, + 0x1a244: 0x6d0eee20, 0x1a245: 0x6c8a5020, 0x1a246: 0x6c08a620, + 0x1a248: 0x6c0d7220, 0x1a24a: 0x6d252c20, 0x1a24b: 0x6caaa620, + 0x1a24c: 0x6c05c620, 0x1a24d: 0x6d1cf220, 0x1a24e: 0x6c536c20, 0x1a24f: 0x6c225820, + 0x1a250: 0x6cb87220, 0x1a251: 0x6ce35a20, 0x1a252: 0x6d23b220, 0x1a253: 0x6c824c20, + 0x1a254: 0x6c05d020, 0x1a256: 0x6c625620, 0x1a257: 0x6c3ee820, + 0x1a258: 0x6cfd0420, 0x1a259: 0x6c133820, 0x1a25a: 0x6c550620, 0x1a25b: 0x6ccb6620, + 0x1a25c: 0x6c080a20, 0x1a25d: 0x6cbe5620, 0x1a25e: 0x6d22a020, 0x1a25f: 0x6cebf620, + 0x1a260: 0x6c007a20, 0x1a261: 0x6c4e3c20, 0x1a262: 0x6c28d020, 0x1a263: 0x6c444620, + 0x1a264: 0x6c2b9c20, 0x1a265: 0x6c5e2020, 0x1a266: 0x6cace420, + 0x1a268: 0x6d3c6a20, 0x1a269: 0x6c8d7c20, 0x1a26a: 0x6c970820, 0x1a26b: 0x6c974820, + 0x1a26c: 0x6c888c20, 0x1a26d: 0x6cff4220, 0x1a26e: 0x6d093220, 0x1a26f: 0x6d327820, + 0x1a270: 0x6cb3b820, 0x1a271: 0x6c408e20, 0x1a272: 0x6caa0e20, 0x1a273: 0x6cf93220, + 0x1a274: 0x6c338e20, 0x1a275: 0x6c28f020, 0x1a276: 0x6d280c20, 0x1a277: 0x6cfd5220, + 0x1a278: 0x6d1b3020, 0x1a279: 0x6cd52220, 0x1a27a: 0x6c339420, 0x1a27b: 0x6c086820, + 0x1a27c: 0x6c56e620, 0x1a27d: 0x6c3a5420, 0x1a27e: 0x6c3aa820, 0x1a27f: 0x6d28be20, + // Block 0x68a, offset 0x1a280 + 0x1a280: 0x6c075620, 0x1a281: 0x6c3a2820, 0x1a282: 0x6cfab820, 0x1a283: 0x6cd3ae20, + 0x1a284: 0x6c9e3020, 0x1a285: 0x6d2e0820, 0x1a286: 0x6d2e0a20, 0x1a287: 0x6d2d8c20, + 0x1a288: 0x6c5c4820, 0x1a289: 0x6c3f8820, 0x1a28a: 0x6ced5a20, 0x1a28b: 0x6ca0b420, + 0x1a28c: 0x6cbc1020, 0x1a28d: 0x6c8a8a20, 0x1a28f: 0x6c9f1e20, + 0x1a290: 0x6c54d820, 0x1a291: 0x6c535e20, 0x1a292: 0x6d213c20, 0x1a293: 0x6cb60820, + 0x1a294: 0x6c350420, 0x1a295: 0x6c020020, 0x1a297: 0x6c03ba20, + 0x1a298: 0x6c2c7820, 0x1a299: 0x6d08aa20, 0x1a29a: 0x6c2c8a20, 0x1a29b: 0x6c0a0e20, + 0x1a29c: 0x6d393e20, 0x1a29d: 0x6cad6020, 0x1a29e: 0x6ce5f620, 0x1a29f: 0x6d155020, + 0x1a2a1: 0x6c63ea20, 0x1a2a2: 0x6d36f220, 0x1a2a3: 0x6ce8f820, + 0x1a2a4: 0x6d00f820, 0x1a2a5: 0x6c28ba20, 0x1a2a6: 0x6ce5a620, 0x1a2a7: 0x6d022620, + 0x1a2a8: 0x6c172620, 0x1a2a9: 0x6d25f220, 0x1a2aa: 0x6c496a20, 0x1a2ab: 0x6c89a420, + 0x1a2ac: 0x6c083220, 0x1a2ae: 0x6c930020, 0x1a2af: 0x6c60e420, + 0x1a2b0: 0x6d08c220, 0x1a2b1: 0x6cd62420, 0x1a2b2: 0x6c318220, 0x1a2b3: 0x6cd9f420, + 0x1a2b4: 0x6c55e220, 0x1a2b5: 0x6d286420, 0x1a2b6: 0x6c160820, 0x1a2b7: 0x6c054620, + 0x1a2b8: 0x6cc6da20, 0x1a2b9: 0x6c359c20, 0x1a2ba: 0x6cf24020, 0x1a2bb: 0x6c03ca20, + 0x1a2bc: 0x6c3cc220, 0x1a2bd: 0x6d209e20, 0x1a2be: 0x6d310c20, 0x1a2bf: 0x6c3bae20, + // Block 0x68b, offset 0x1a2c0 + 0x1a2c0: 0x6c496c20, 0x1a2c1: 0x6c104c20, 0x1a2c2: 0x6c446220, 0x1a2c3: 0x6c33c420, + 0x1a2c4: 0x6c5a3420, 0x1a2c5: 0x6c31f820, 0x1a2c6: 0x6ce3ce20, 0x1a2c7: 0x6c0fcc20, + 0x1a2c8: 0x6cba8a20, 0x1a2c9: 0x6c8b8220, 0x1a2ca: 0x6c901620, 0x1a2cb: 0x6cf13420, + 0x1a2cc: 0x6d2eac20, 0x1a2cd: 0x6c801820, 0x1a2ce: 0x6cdbea20, 0x1a2cf: 0x6ca36020, + 0x1a2d0: 0x6c0a1020, 0x1a2d1: 0x6ceb3e20, 0x1a2d2: 0x6d3b1a20, 0x1a2d3: 0x6c2e5c20, + 0x1a2d4: 0x6c104620, 0x1a2d5: 0x6c716820, 0x1a2d6: 0x6cb3b020, 0x1a2d7: 0x6cfa0c20, + 0x1a2d8: 0x6cf04420, 0x1a2d9: 0x6cb3b420, 0x1a2da: 0x6c267420, 0x1a2db: 0x6c387220, + 0x1a2dc: 0x6c14e420, 0x1a2dd: 0x6c56f020, 0x1a2de: 0x6d28c020, + 0x1a2e4: 0x6c38f020, 0x1a2e5: 0x6d028a20, 0x1a2e6: 0x6c536020, 0x1a2e7: 0x6c1b2e20, + 0x1a2e8: 0x6c05c820, 0x1a2e9: 0x6d1a7a20, 0x1a2eb: 0x6c6dd220, + 0x1a2ec: 0x6c0f6820, 0x1a2ed: 0x6cc88820, 0x1a2ee: 0x6c1e3a20, 0x1a2ef: 0x6d1c1220, + 0x1a2f0: 0x6d143a20, 0x1a2f1: 0x6c411820, 0x1a2f2: 0x6c7d6c20, 0x1a2f3: 0x6d27f020, + 0x1a2f4: 0x6d31ec20, 0x1a2f5: 0x6d0b5a20, 0x1a2f6: 0x6c70b820, 0x1a2f7: 0x6c547a20, + 0x1a2f8: 0x6c9f7620, 0x1a2f9: 0x6c040220, 0x1a2fa: 0x6c441c20, 0x1a2fb: 0x6c0bb220, + 0x1a2fc: 0x6d3d0820, 0x1a2fd: 0x6c505420, 0x1a2fe: 0x6d31ee20, 0x1a2ff: 0x6cd14a20, + // Block 0x68c, offset 0x1a300 + 0x1a300: 0x6c44a020, 0x1a301: 0x6c0a3e20, 0x1a302: 0x6c34b220, 0x1a303: 0x6c216820, + 0x1a304: 0x6c1fb220, 0x1a305: 0x6cca5a20, 0x1a306: 0x6c1a4620, 0x1a307: 0x6cc48a20, + 0x1a308: 0x6c191220, 0x1a309: 0x6c99b820, 0x1a30a: 0x6cadf220, 0x1a30b: 0x6ceec220, + 0x1a30c: 0x6cb07420, 0x1a30d: 0x6c3f8c20, 0x1a30e: 0x6d3d0e20, 0x1a30f: 0x6cb53c20, + 0x1a310: 0x6c8bec20, 0x1a311: 0x6d142020, 0x1a312: 0x6c9adc20, 0x1a313: 0x6cf3f820, + 0x1a314: 0x6cb7fa20, 0x1a315: 0x6c2f0020, 0x1a316: 0x6c191a20, 0x1a317: 0x6cfa0e20, + 0x1a318: 0x6c518e20, 0x1a319: 0x6cca9220, 0x1a31a: 0x6c487e20, 0x1a31b: 0x6c543e20, + 0x1a31c: 0x6c023420, 0x1a31d: 0x6c3f9420, 0x1a31e: 0x6cbbc620, 0x1a31f: 0x6c5d4c20, + 0x1a320: 0x6cafa220, 0x1a321: 0x6d0cf820, 0x1a322: 0x6cd84420, 0x1a323: 0x6cf7b420, + 0x1a324: 0x6ca02420, 0x1a325: 0x6c7ce420, 0x1a326: 0x6c445620, + 0x1a328: 0x6c02fc20, 0x1a329: 0x6cca4220, 0x1a32a: 0x6cd6ee20, 0x1a32b: 0x6c90d820, + 0x1a32c: 0x6d320620, 0x1a32d: 0x6c5c9a20, 0x1a32e: 0x6c156620, + 0x1a330: 0x6c8c8420, 0x1a331: 0x6ca2ee20, 0x1a332: 0x6c4f3c20, 0x1a333: 0x6c31fc20, + 0x1a334: 0x6c6d7820, 0x1a335: 0x6c9df420, 0x1a336: 0x6c38fa20, 0x1a337: 0x6c370020, + 0x1a338: 0x6c174220, 0x1a339: 0x6c536220, 0x1a33a: 0x6c536e20, 0x1a33b: 0x6d238820, + 0x1a33c: 0x6d096a20, 0x1a33d: 0x6cad3a20, 0x1a33e: 0x6c088220, 0x1a33f: 0x6c175220, + // Block 0x68d, offset 0x1a340 + 0x1a340: 0x6d1fe220, 0x1a341: 0x6d153a20, 0x1a342: 0x6d096e20, 0x1a343: 0x6cc97e20, + 0x1a344: 0x6d073420, 0x1a345: 0x6c866820, 0x1a346: 0x6c868a20, 0x1a347: 0x6d263220, + 0x1a348: 0x6c336220, 0x1a349: 0x6c5e0420, 0x1a34a: 0x6ccc7e20, 0x1a34b: 0x6c838c20, + 0x1a34c: 0x6cb3ce20, 0x1a34d: 0x6c550e20, 0x1a34e: 0x6c4c8e20, 0x1a34f: 0x6c10c420, + 0x1a350: 0x6cc8a620, 0x1a351: 0x6cf0fa20, 0x1a352: 0x6cd9f620, 0x1a353: 0x6c01dc20, + 0x1a354: 0x6d21cc20, 0x1a355: 0x6cfd8e20, 0x1a356: 0x6c527c20, 0x1a357: 0x6d0fea20, + 0x1a358: 0x6cff4420, 0x1a359: 0x6d116820, 0x1a35b: 0x6c0ac020, + 0x1a35d: 0x6c528420, 0x1a35e: 0x6ce25620, 0x1a35f: 0x6c8eee20, + 0x1a361: 0x6d3b3420, 0x1a363: 0x6cf89a20, + 0x1a364: 0x6d298e20, 0x1a365: 0x6d17d420, 0x1a366: 0x6c312a20, 0x1a367: 0x6d259020, + 0x1a368: 0x6c700820, 0x1a36a: 0x6c0f2020, 0x1a36b: 0x6ce35c20, + 0x1a36c: 0x6d1d0220, 0x1a36e: 0x6d154020, 0x1a36f: 0x6ca70420, + 0x1a370: 0x6ccee220, 0x1a371: 0x6c07c020, 0x1a372: 0x6c465620, 0x1a373: 0x6c04d420, + 0x1a374: 0x6ca14820, 0x1a375: 0x6c410420, 0x1a376: 0x6c372620, 0x1a377: 0x6ccf2e20, + 0x1a379: 0x6d36d620, 0x1a37a: 0x6d106c20, 0x1a37b: 0x6c66ca20, + 0x1a37c: 0x6d263420, 0x1a37d: 0x6cd73020, 0x1a37e: 0x6ce38420, 0x1a37f: 0x6cf02020, + // Block 0x68e, offset 0x1a380 + 0x1a380: 0x6d0aaa20, 0x1a381: 0x6d36f620, 0x1a382: 0x6d18bc20, 0x1a383: 0x6cc59c20, + 0x1a384: 0x6cd3ee20, 0x1a385: 0x6c55d420, 0x1a386: 0x6ca55620, 0x1a387: 0x6d126a20, + 0x1a388: 0x6c66f820, 0x1a389: 0x6cdc1220, 0x1a38a: 0x6d1d1e20, 0x1a38b: 0x6c061a20, + 0x1a38c: 0x6c55e420, 0x1a38d: 0x6c55e620, 0x1a38e: 0x6d137a20, + 0x1a390: 0x6d107420, 0x1a391: 0x6c888e20, 0x1a392: 0x6cf72620, 0x1a393: 0x6c372820, + 0x1a394: 0x6c331c20, 0x1a395: 0x6d297e20, 0x1a396: 0x6d3b4420, 0x1a397: 0x6d1d2820, + 0x1a398: 0x6d1d2c20, 0x1a399: 0x6c6cca20, 0x1a39a: 0x6c208820, 0x1a39b: 0x6c28ec20, + 0x1a39d: 0x6c7b4a20, 0x1a39e: 0x6d196020, 0x1a39f: 0x6d139a20, + 0x1a3a0: 0x6c662e20, 0x1a3a1: 0x6c372a20, 0x1a3a2: 0x6ca93e20, 0x1a3a3: 0x6c228820, + 0x1a3a4: 0x6cba3420, 0x1a3a5: 0x6d098220, 0x1a3a6: 0x6c0ea420, 0x1a3a7: 0x6c9d1420, + 0x1a3a8: 0x6cd73a20, 0x1a3a9: 0x6ca0a620, 0x1a3aa: 0x6c897c20, 0x1a3ab: 0x6cb71820, + 0x1a3ac: 0x6cb71a20, 0x1a3ad: 0x6cd44c20, 0x1a3ae: 0x6c3f2020, 0x1a3af: 0x6c0f3a20, + 0x1a3b0: 0x6c085820, 0x1a3b1: 0x6c0d0020, 0x1a3b2: 0x6d161c20, 0x1a3b3: 0x6cf13a20, + 0x1a3b4: 0x6c587e20, 0x1a3b5: 0x6c38ac20, 0x1a3b6: 0x6cb60e20, 0x1a3b7: 0x6c98f620, + 0x1a3b8: 0x6c060820, 0x1a3b9: 0x6c020420, 0x1a3ba: 0x6c020a20, 0x1a3bb: 0x6c403020, + 0x1a3bc: 0x6cb63020, 0x1a3bd: 0x6cc45020, 0x1a3be: 0x6ceb4020, 0x1a3bf: 0x6d187420, + // Block 0x68f, offset 0x1a3c0 + 0x1a3c0: 0x6c0f5420, 0x1a3c1: 0x6cb12820, 0x1a3c2: 0x6c039220, + 0x1a3c4: 0x6d082220, 0x1a3c7: 0x6d23fe20, + 0x1a3c8: 0x6c1b5620, 0x1a3c9: 0x6c915e20, 0x1a3ca: 0x6d156820, 0x1a3cb: 0x6c868c20, + 0x1a3cd: 0x6ca7b020, 0x1a3ce: 0x6cf90220, 0x1a3cf: 0x6cf3fa20, + 0x1a3d1: 0x6c834a20, 0x1a3d2: 0x6cb41a20, 0x1a3d3: 0x6d3d1220, + 0x1a3d4: 0x6d417e20, 0x1a3d5: 0x6d3dc620, 0x1a3d6: 0x6c168220, 0x1a3d7: 0x6c01de20, + 0x1a3d8: 0x6c377220, 0x1a3d9: 0x6d244620, 0x1a3da: 0x6c839c20, 0x1a3db: 0x6c408220, + 0x1a3dc: 0x6d2c6420, 0x1a3dd: 0x6c5d0a20, 0x1a3de: 0x6c218e20, 0x1a3df: 0x6cd9fe20, + 0x1a3e0: 0x6c089a20, 0x1a3e1: 0x6c0ab420, 0x1a3e2: 0x6d2c6620, + 0x1a3e4: 0x6c519e20, 0x1a3e5: 0x6c873a20, 0x1a3e7: 0x6c4f3220, + 0x1a3e8: 0x6d292220, 0x1a3e9: 0x6c474a20, 0x1a3ea: 0x6c1a5e20, 0x1a3eb: 0x6c90dc20, + 0x1a3ec: 0x6ca19e20, 0x1a3ed: 0x6c9daa20, 0x1a3ee: 0x6c975020, 0x1a3ef: 0x6c030420, + 0x1a3f0: 0x6d30c020, 0x1a3f1: 0x6d3a3a20, 0x1a3f2: 0x6c5a3820, 0x1a3f3: 0x6c38f620, + 0x1a3f4: 0x6c2b0220, 0x1a3f5: 0x6ce7a420, 0x1a3f7: 0x6c320220, + 0x1a3f8: 0x6cf33620, 0x1a3f9: 0x6cf13020, 0x1a3fa: 0x6c62f620, 0x1a3fb: 0x6c1ca020, + 0x1a3fc: 0x6c8c1220, 0x1a3fd: 0x6c0c6420, 0x1a3fe: 0x6c901e20, 0x1a3ff: 0x6c664a20, + // Block 0x690, offset 0x1a400 + 0x1a400: 0x6ca8da20, 0x1a401: 0x6c959e20, 0x1a402: 0x6cd03420, + 0x1a404: 0x6c487a20, 0x1a405: 0x6ca8a820, 0x1a406: 0x6d178a20, 0x1a407: 0x6c7a4820, + 0x1a408: 0x6cece220, 0x1a409: 0x6cebee20, 0x1a40a: 0x6cb87620, 0x1a40b: 0x6c0f5620, + 0x1a40c: 0x6c779220, 0x1a40d: 0x6c8d5020, 0x1a40e: 0x6c423020, 0x1a40f: 0x6c487820, + 0x1a410: 0x6c4d2c20, 0x1a411: 0x6c7bb020, 0x1a412: 0x6c527420, 0x1a413: 0x6c7c4620, + 0x1a414: 0x6d2b0a20, 0x1a415: 0x6ce64e20, 0x1a416: 0x6c80ee20, 0x1a417: 0x6c0a8020, + 0x1a418: 0x6c595a20, 0x1a419: 0x6cb3aa20, 0x1a41a: 0x6d11de20, 0x1a41b: 0x6cedaa20, + 0x1a41c: 0x6ce43c20, 0x1a41d: 0x6cdc1620, 0x1a41e: 0x6c7ad020, 0x1a41f: 0x6c337e20, + 0x1a420: 0x6c02b620, 0x1a421: 0x6c671620, 0x1a422: 0x6ca09c20, 0x1a423: 0x6c7d4220, + 0x1a424: 0x6c7b4c20, 0x1a425: 0x6c01e620, 0x1a426: 0x6c96ea20, 0x1a427: 0x6cbeaa20, + 0x1a428: 0x6cbb8820, 0x1a42a: 0x6c77b820, 0x1a42b: 0x6c508220, + 0x1a42c: 0x6c34c820, 0x1a42d: 0x6cfaa820, 0x1a42e: 0x6ca37c20, 0x1a42f: 0x6cdd3420, + 0x1a430: 0x6c6bf820, 0x1a431: 0x6caf8220, 0x1a432: 0x6cabcc20, 0x1a433: 0x6cd93020, + 0x1a434: 0x6c16bc20, 0x1a435: 0x6ca86c20, 0x1a436: 0x6c977620, 0x1a437: 0x6cd93e20, + 0x1a438: 0x6c22e420, 0x1a439: 0x6cfae420, 0x1a43a: 0x6c7e2420, + 0x1a43c: 0x6c2b9e20, 0x1a43d: 0x6cb3e420, 0x1a43e: 0x6ce5ac20, 0x1a43f: 0x6d40f420, + // Block 0x691, offset 0x1a440 + 0x1a440: 0x6cf2c820, 0x1a441: 0x6c3ae420, 0x1a442: 0x6c115020, 0x1a443: 0x6caee220, + 0x1a444: 0x6cc9d620, 0x1a446: 0x6cc76e20, 0x1a447: 0x6cb68620, + 0x1a448: 0x6c25fc20, 0x1a449: 0x6cac8e20, 0x1a44a: 0x6c0fc020, 0x1a44b: 0x6c979c20, + 0x1a44c: 0x6d401420, 0x1a44d: 0x6c22f220, 0x1a44e: 0x6c7d4420, 0x1a44f: 0x6c62f820, + 0x1a450: 0x6c801420, 0x1a452: 0x6c9bc220, 0x1a453: 0x6c9df820, + 0x1a454: 0x6cac9620, 0x1a455: 0x6c91aa20, 0x1a456: 0x6d416020, + 0x1a458: 0x6c8ee220, 0x1a459: 0x6d160020, 0x1a45a: 0x6cf1a820, 0x1a45b: 0x6c866c20, + 0x1a45c: 0x6c868e20, 0x1a45d: 0x6d2bb820, 0x1a45e: 0x6d3a9220, 0x1a45f: 0x6c5cfc20, + 0x1a460: 0x6cd03c20, 0x1a461: 0x6c1c6620, 0x1a462: 0x6d043c20, 0x1a463: 0x6cee3a20, + 0x1a464: 0x6c302020, 0x1a465: 0x6c5e2220, 0x1a466: 0x6cb07a20, 0x1a467: 0x6c551420, + 0x1a468: 0x6c9ab420, 0x1a469: 0x6c17f420, 0x1a46a: 0x6c9ab820, 0x1a46b: 0x6c175820, + 0x1a46c: 0x6c719620, 0x1a46d: 0x6caa3420, 0x1a46f: 0x6d197620, + 0x1a470: 0x6cc7f020, 0x1a471: 0x6c8e0420, 0x1a472: 0x6d0bba20, + 0x1a474: 0x6cb7bc20, 0x1a475: 0x6d3e7620, 0x1a477: 0x6c058c20, + 0x1a478: 0x6c45aa20, 0x1a479: 0x6d2af620, 0x1a47a: 0x6c6bfe20, 0x1a47b: 0x6d219a20, + 0x1a47c: 0x6cbd9820, 0x1a47d: 0x6c075820, 0x1a47e: 0x6c035820, 0x1a47f: 0x6ceb5020, + // Block 0x692, offset 0x1a480 + 0x1a480: 0x6d0f6c20, 0x1a481: 0x6cbbfc20, 0x1a482: 0x6d1ff220, 0x1a483: 0x6d36fa20, + 0x1a484: 0x6c6c0a20, 0x1a485: 0x6ca16a20, 0x1a486: 0x6cd12420, 0x1a487: 0x6ccdb820, + 0x1a488: 0x6cb65620, 0x1a489: 0x6ccdba20, 0x1a48a: 0x6c9d0420, 0x1a48b: 0x6c460220, + 0x1a48c: 0x6d157c20, 0x1a48d: 0x6c453e20, 0x1a48e: 0x6c454020, 0x1a48f: 0x6ce82020, + 0x1a490: 0x6c3dac20, 0x1a491: 0x6d092220, 0x1a492: 0x6d137e20, 0x1a493: 0x6ce69a20, + 0x1a494: 0x6ce5ae20, 0x1a495: 0x6ca1f620, 0x1a496: 0x6c8ec620, 0x1a497: 0x6c117e20, + 0x1a498: 0x6c848020, 0x1a499: 0x6cd51820, 0x1a49a: 0x6c932420, 0x1a49b: 0x6c5e3a20, + 0x1a49c: 0x6c263c20, 0x1a49d: 0x6cac1220, 0x1a49e: 0x6c8ed420, 0x1a49f: 0x6c72b820, + 0x1a4a0: 0x6d2e9220, 0x1a4a1: 0x6c718220, 0x1a4a2: 0x6d330a20, 0x1a4a3: 0x6d40f820, + 0x1a4a4: 0x6cfd3820, 0x1a4a5: 0x6d375020, + 0x1a4a8: 0x6c7eb020, 0x1a4ab: 0x6c7ebe20, + 0x1a4ac: 0x6d060a20, 0x1a4ad: 0x6c454220, 0x1a4ae: 0x6c35a220, 0x1a4af: 0x6ca21e20, + 0x1a4b0: 0x6d384a20, 0x1a4b1: 0x6ce3aa20, 0x1a4b2: 0x6d25ce20, 0x1a4b3: 0x6d2dc020, + 0x1a4b4: 0x6c454420, 0x1a4b5: 0x6cf24420, 0x1a4b6: 0x6c80f420, 0x1a4b7: 0x6d21f620, + 0x1a4b8: 0x6cda0820, 0x1a4b9: 0x6d2ca020, 0x1a4ba: 0x6c4d3620, 0x1a4bb: 0x6c576e20, + 0x1a4bc: 0x6d2e3e20, 0x1a4be: 0x6c90de20, 0x1a4bf: 0x6c165020, + // Block 0x693, offset 0x1a4c0 + 0x1a4c0: 0x6d376c20, 0x1a4c1: 0x6cf12820, 0x1a4c2: 0x6d083c20, 0x1a4c3: 0x6d2a6420, + 0x1a4c4: 0x6c9f8620, 0x1a4c5: 0x6c4aac20, 0x1a4c6: 0x6cda7020, + 0x1a4c9: 0x6cd85420, 0x1a4ca: 0x6c352820, 0x1a4cb: 0x6c134220, + 0x1a4cc: 0x6c7b7a20, 0x1a4cd: 0x6ce2dc20, 0x1a4ce: 0x6ca57c20, 0x1a4cf: 0x6c819620, + 0x1a4d0: 0x6c920820, 0x1a4d1: 0x6d159e20, 0x1a4d2: 0x6d029220, 0x1a4d3: 0x6d0e2a20, + 0x1a4d4: 0x6cbe9820, 0x1a4d5: 0x6cb42420, 0x1a4d6: 0x6c1e1220, 0x1a4d7: 0x6cfbe020, + 0x1a4d8: 0x6c497020, 0x1a4d9: 0x6c6b8a20, 0x1a4da: 0x6c7f8220, 0x1a4db: 0x6c9bca20, + 0x1a4dc: 0x6d13ac20, 0x1a4de: 0x6c869420, 0x1a4df: 0x6d1b8420, + 0x1a4e0: 0x6c212620, 0x1a4e1: 0x6cbfde20, 0x1a4e2: 0x6ce2d220, 0x1a4e3: 0x6d21f820, + 0x1a4e6: 0x6c278420, 0x1a4e7: 0x6c327420, + 0x1a4e8: 0x6c537e20, 0x1a4ea: 0x6cf8c220, + 0x1a4ec: 0x6cb64820, 0x1a4ee: 0x6d25a620, 0x1a4ef: 0x6c609e20, + 0x1a4f0: 0x6d285020, 0x1a4f1: 0x6c39dc20, 0x1a4f2: 0x6c45ac20, 0x1a4f3: 0x6c4f8820, + 0x1a4f4: 0x6d326620, 0x1a4f5: 0x6cc3f620, + 0x1a4f8: 0x6c6c0220, 0x1a4f9: 0x6cb02020, 0x1a4fa: 0x6c423220, 0x1a4fb: 0x6d082820, + 0x1a4fc: 0x6cd11420, 0x1a4fd: 0x6cd28c20, 0x1a4fe: 0x6cbc2a20, 0x1a4ff: 0x6c227020, + // Block 0x694, offset 0x1a500 + 0x1a500: 0x6c2eee20, 0x1a501: 0x6c0f7220, 0x1a502: 0x6c2de620, 0x1a503: 0x6ced5020, + 0x1a504: 0x6c227220, 0x1a505: 0x6d355420, 0x1a506: 0x6c041220, 0x1a507: 0x6cf47e20, + 0x1a508: 0x6c061820, 0x1a509: 0x6c28be20, 0x1a50a: 0x6c039420, 0x1a50b: 0x6ce79620, + 0x1a50d: 0x6c45bc20, 0x1a50e: 0x6c702e20, 0x1a50f: 0x6c4b8620, + 0x1a510: 0x6c22e820, 0x1a511: 0x6d1ff420, 0x1a512: 0x6d25ba20, 0x1a513: 0x6c81be20, + 0x1a514: 0x6c716e20, 0x1a515: 0x6c3f1820, 0x1a516: 0x6ca88e20, 0x1a517: 0x6c358c20, + 0x1a518: 0x6c358e20, 0x1a519: 0x6d040e20, 0x1a51a: 0x6c771620, 0x1a51b: 0x6d0ee220, + 0x1a51c: 0x6ce90220, 0x1a51d: 0x6cb3f820, 0x1a51e: 0x6c083820, 0x1a51f: 0x6ca02620, + 0x1a520: 0x6cd73620, 0x1a521: 0x6d0ef220, 0x1a522: 0x6cb68c20, 0x1a523: 0x6d25ca20, + 0x1a524: 0x6c0cca20, 0x1a526: 0x6d07f220, 0x1a527: 0x6c544220, + 0x1a528: 0x6c5a3020, 0x1a529: 0x6d10c220, 0x1a52a: 0x6c73a220, 0x1a52b: 0x6c7cb220, + 0x1a52c: 0x6c36de20, 0x1a52d: 0x6c60f620, 0x1a52e: 0x6ca19220, 0x1a52f: 0x6c1d2e20, + 0x1a530: 0x6c062220, 0x1a531: 0x6cf54e20, 0x1a532: 0x6d327a20, 0x1a533: 0x6d076620, + 0x1a534: 0x6cdee820, 0x1a535: 0x6c1c9620, 0x1a536: 0x6cf74a20, 0x1a537: 0x6c23d220, + 0x1a538: 0x6c968620, 0x1a539: 0x6c7a1020, 0x1a53a: 0x6d0f0820, 0x1a53b: 0x6c11c420, + 0x1a53d: 0x6c520e20, 0x1a53e: 0x6c2ac620, 0x1a53f: 0x6cc49e20, + // Block 0x695, offset 0x1a540 + 0x1a540: 0x6ce7a820, 0x1a541: 0x6d248c20, 0x1a542: 0x6cfe7020, 0x1a543: 0x6ca4d820, + 0x1a544: 0x6cd76420, 0x1a545: 0x6c3bb220, 0x1a546: 0x6cb47820, 0x1a547: 0x6c8dba20, + 0x1a548: 0x6c02ba20, 0x1a549: 0x6c58d020, 0x1a54a: 0x6d15a020, 0x1a54b: 0x6c58d220, + 0x1a54c: 0x6c9bc620, 0x1a54d: 0x6d1c4e20, 0x1a54e: 0x6c831820, 0x1a54f: 0x6d0f2e20, + 0x1a550: 0x6c062820, 0x1a551: 0x6c2f2c20, 0x1a552: 0x6c8e0620, 0x1a553: 0x6cd1f820, + 0x1a554: 0x6c689020, 0x1a555: 0x6c8b4420, 0x1a556: 0x6c6dee20, 0x1a557: 0x6c718c20, + 0x1a558: 0x6ce30a20, 0x1a559: 0x6cb0e620, 0x1a55a: 0x6c42a620, 0x1a55b: 0x6cff3420, + 0x1a55c: 0x6cec5e20, 0x1a55d: 0x6c1fd420, 0x1a55e: 0x6c2bc420, 0x1a55f: 0x6c588e20, + 0x1a560: 0x6d11d220, 0x1a561: 0x6c866e20, 0x1a562: 0x6c9c7020, 0x1a563: 0x6c550a20, + 0x1a564: 0x6cd11620, 0x1a565: 0x6c638a20, 0x1a566: 0x6d1aa620, 0x1a567: 0x6ceec620, + 0x1a569: 0x6cb18e20, 0x1a56a: 0x6c934420, 0x1a56b: 0x6c8dbc20, + 0x1a56c: 0x6d184420, 0x1a56d: 0x6c111620, 0x1a56e: 0x6ccd9820, 0x1a56f: 0x6c54fe20, + 0x1a570: 0x6cd53620, 0x1a571: 0x6cead420, 0x1a572: 0x6ca16e20, 0x1a573: 0x6c575820, + 0x1a574: 0x6ce61a20, 0x1a575: 0x6c0dfe20, 0x1a576: 0x6caee620, 0x1a577: 0x6c5d0820, + 0x1a578: 0x6c3dae20, 0x1a579: 0x6c4cdc20, 0x1a57a: 0x6c10d020, 0x1a57b: 0x6c849820, + 0x1a57c: 0x6c163e20, 0x1a57d: 0x6cb03420, 0x1a57e: 0x6c260020, 0x1a57f: 0x6c9bb220, + // Block 0x696, offset 0x1a580 + 0x1a580: 0x6cddc020, 0x1a581: 0x6cbb6020, 0x1a582: 0x6d34c420, 0x1a583: 0x6c7c2420, + 0x1a584: 0x6c08a820, 0x1a585: 0x6c029220, 0x1a586: 0x6c9bc820, 0x1a587: 0x6cfd0620, + 0x1a588: 0x6c7ab420, 0x1a589: 0x6ce7fc20, 0x1a58a: 0x6ce93c20, 0x1a58b: 0x6cf04a20, + 0x1a58c: 0x6cfaf820, 0x1a58e: 0x6ce94220, 0x1a58f: 0x6c81cc20, + 0x1a590: 0x6c162220, 0x1a591: 0x6ca6c420, 0x1a592: 0x6ca6d020, 0x1a593: 0x6c845220, + 0x1a594: 0x6c304620, 0x1a595: 0x6c72c620, 0x1a596: 0x6cba8620, 0x1a597: 0x6c0fc620, + 0x1a598: 0x6cccac20, 0x1a599: 0x6d2c0e20, 0x1a59a: 0x6ce25e20, 0x1a59b: 0x6cba8c20, + 0x1a59c: 0x6ca9ee20, 0x1a59d: 0x6d181620, 0x1a59e: 0x6c6e9e20, 0x1a59f: 0x6c41e820, + 0x1a5a0: 0x6c2ba020, 0x1a5a1: 0x6c65de20, 0x1a5a2: 0x6c9ab020, 0x1a5a3: 0x6c26c420, + 0x1a5a4: 0x6c660620, 0x1a5a5: 0x6d244a20, 0x1a5a6: 0x6d024c20, 0x1a5a7: 0x6d294820, + 0x1a5a8: 0x6c988020, 0x1a5a9: 0x6c849a20, 0x1a5aa: 0x6c4c0a20, 0x1a5ab: 0x6d09ca20, + 0x1a5ac: 0x6cdedc20, 0x1a5ad: 0x6d310e20, 0x1a5ae: 0x6d107620, 0x1a5af: 0x6ce98620, + 0x1a5b0: 0x6cce2e20, 0x1a5b1: 0x6cf93e20, 0x1a5b2: 0x6cbbcc20, 0x1a5b3: 0x6cf13620, + 0x1a5b4: 0x6d1d6220, 0x1a5b5: 0x6c1fa820, 0x1a5b6: 0x6cc1ec20, 0x1a5b7: 0x6cebfa20, + 0x1a5b9: 0x6d343220, 0x1a5ba: 0x6ce6e420, 0x1a5bb: 0x6c47f820, + 0x1a5bc: 0x6cce3020, 0x1a5bd: 0x6c10ec20, 0x1a5be: 0x6c3f1a20, 0x1a5bf: 0x6ce61e20, + // Block 0x697, offset 0x1a5c0 + 0x1a5c0: 0x6cded220, 0x1a5c1: 0x6cdeea20, 0x1a5c2: 0x6d3da620, 0x1a5c3: 0x6c4e4020, + 0x1a5c4: 0x6cb2da20, 0x1a5c5: 0x6c519a20, 0x1a5c6: 0x6d3c7420, 0x1a5c7: 0x6d396e20, + 0x1a5c8: 0x6c0fd220, 0x1a5c9: 0x6c8eec20, 0x1a5ca: 0x6caa8c20, 0x1a5cb: 0x6cf71220, + 0x1a5cc: 0x6cada220, 0x1a5cd: 0x6c2cb420, 0x1a5ce: 0x6c50ac20, 0x1a5cf: 0x6ce44620, + 0x1a5d0: 0x6cec8020, 0x1a5d1: 0x6ce44a20, 0x1a5d2: 0x6cb66a20, 0x1a5d3: 0x6c62a820, + 0x1a5d4: 0x6c1b6620, 0x1a5d5: 0x6c03cc20, 0x1a5d6: 0x6c6d7020, 0x1a5d7: 0x6c78e820, + 0x1a5d8: 0x6c873e20, 0x1a5d9: 0x6c72c820, 0x1a5da: 0x6cc25620, 0x1a5db: 0x6c7ec820, + 0x1a5dc: 0x6c47f020, 0x1a5dd: 0x6cb88620, 0x1a5de: 0x6cb6b420, 0x1a5df: 0x6cfd5020, + 0x1a5e0: 0x6c664220, 0x1a5e1: 0x6cd29a20, 0x1a5e2: 0x6c655420, 0x1a5e3: 0x6c005e20, + 0x1a5e4: 0x6c577220, 0x1a5e5: 0x6d2c1420, 0x1a5e6: 0x6d2b2e20, 0x1a5e7: 0x6d11e820, + 0x1a5e8: 0x6d2dd820, 0x1a5e9: 0x6c630420, 0x1a5ea: 0x6c145c20, 0x1a5eb: 0x6d0f3420, + 0x1a5ec: 0x6c654c20, 0x1a5ee: 0x6d0e1020, + 0x1a5f0: 0x6c68a820, 0x1a5f1: 0x6ce7a220, 0x1a5f2: 0x6ca41820, 0x1a5f3: 0x6d271a20, + 0x1a5f5: 0x6c1b6e20, + // Block 0x698, offset 0x1a600 + 0x1a600: 0x6d13b620, 0x1a601: 0x6c2f4020, 0x1a602: 0x6c779820, 0x1a603: 0x6cb4c620, + 0x1a604: 0x6cce4620, 0x1a605: 0x6cfa2420, 0x1a606: 0x6c4e4c20, 0x1a607: 0x6ced6820, + 0x1a608: 0x6d2f1820, 0x1a609: 0x6cc9f220, 0x1a60a: 0x6cce4820, 0x1a60b: 0x6cfa2620, + 0x1a60c: 0x6c5e6220, 0x1a60d: 0x6c105620, 0x1a60e: 0x6d221020, 0x1a60f: 0x6c9dfa20, + 0x1a610: 0x6c411e20, 0x1a611: 0x6c1e1820, 0x1a612: 0x6c1e1a20, 0x1a613: 0x6d3b6c20, + 0x1a614: 0x6cbc8e20, 0x1a615: 0x6caf2220, 0x1a616: 0x6cd2ea20, 0x1a617: 0x6cd2e820, + 0x1a618: 0x6cbf9420, 0x1a619: 0x6c0dba20, 0x1a61a: 0x6d12b820, 0x1a61b: 0x6c237e20, + 0x1a61c: 0x6c2fd620, 0x1a61d: 0x6cd7b820, 0x1a61e: 0x6c19b020, 0x1a61f: 0x6c2fca20, + 0x1a620: 0x6cbf9620, 0x1a621: 0x6c898020, 0x1a622: 0x6c2fcc20, 0x1a623: 0x6d1f9a20, + 0x1a624: 0x6c898220, 0x1a625: 0x6d0c5420, 0x1a626: 0x6c0e0820, 0x1a627: 0x6cca9c20, + 0x1a628: 0x6c4bb620, 0x1a629: 0x6c6f3620, 0x1a62a: 0x6c447a20, 0x1a62b: 0x6d0ac420, + 0x1a62c: 0x6cbb0220, 0x1a62d: 0x6d378220, 0x1a62e: 0x6c611020, 0x1a62f: 0x6c6ba220, + 0x1a630: 0x6c3c0c20, 0x1a631: 0x6c497420, 0x1a632: 0x6c202c20, 0x1a633: 0x6c159620, + 0x1a634: 0x6c8ba220, 0x1a635: 0x6d3d3620, 0x1a636: 0x6d3a5220, 0x1a637: 0x6c4d0420, + 0x1a638: 0x6cecb420, 0x1a639: 0x6c27b220, 0x1a63a: 0x6cf06a20, 0x1a63b: 0x6d3a5420, + 0x1a63c: 0x6c6e0020, 0x1a63d: 0x6c857420, 0x1a63e: 0x6c71aa20, 0x1a63f: 0x6cb1dc20, + // Block 0x699, offset 0x1a640 + 0x1a640: 0x6c3dc220, 0x1a641: 0x6d144620, 0x1a642: 0x6d163420, 0x1a643: 0x6ca38c20, + 0x1a644: 0x6cf55020, 0x1a645: 0x6c6f9c20, 0x1a646: 0x6c6f9e20, 0x1a647: 0x6cea9020, + 0x1a648: 0x6c99c220, 0x1a649: 0x6d163820, 0x1a64a: 0x6d13b820, 0x1a64b: 0x6d337c20, + 0x1a64c: 0x6cf33c20, 0x1a64d: 0x6d2ca620, 0x1a64e: 0x6c56f820, 0x1a64f: 0x6c37f420, + 0x1a650: 0x6c820820, 0x1a651: 0x6d1a1e20, 0x1a652: 0x6cb24620, 0x1a653: 0x6caccc20, + 0x1a654: 0x6cbbce20, 0x1a655: 0x6c560e20, 0x1a656: 0x6c48c220, 0x1a657: 0x6c19c420, + 0x1a658: 0x6c19d420, 0x1a659: 0x6d15aa20, 0x1a65a: 0x6d1abc20, 0x1a65b: 0x6d0bd820, + 0x1a65c: 0x6c9ebc20, 0x1a65d: 0x6c6f9a20, 0x1a65e: 0x6cb6c020, 0x1a65f: 0x6d129c20, + 0x1a660: 0x6cf76820, 0x1a661: 0x6cfd5e20, 0x1a662: 0x6c412020, 0x1a663: 0x6c6fa020, + 0x1a664: 0x6cfa2820, 0x1a665: 0x6c563020, 0x1a666: 0x6cd49620, 0x1a667: 0x6c315a20, + 0x1a668: 0x6cd2aa20, 0x1a669: 0x6c5e7020, 0x1a66a: 0x6ca45420, 0x1a66b: 0x6c631a20, + 0x1a66c: 0x6c71ec20, 0x1a66d: 0x6cd23220, 0x1a66e: 0x6c992220, 0x1a66f: 0x6c549020, + 0x1a670: 0x6c971020, 0x1a671: 0x6c949020, 0x1a672: 0x6d3dfe20, 0x1a673: 0x6cc7f820, + 0x1a674: 0x6d08f620, 0x1a675: 0x6d0d4220, 0x1a676: 0x6c3f3a20, 0x1a677: 0x6ccbcc20, + 0x1a678: 0x6ca2f020, 0x1a679: 0x6c418220, 0x1a67a: 0x6cdd5020, 0x1a67b: 0x6d20d020, + 0x1a67c: 0x6c258c20, 0x1a67d: 0x6d30d420, 0x1a67e: 0x6c419020, 0x1a67f: 0x6d35d220, + // Block 0x69a, offset 0x1a680 + 0x1a680: 0x6c4a5020, 0x1a681: 0x6c419820, 0x1a682: 0x6c949a20, 0x1a683: 0x6c8c2220, + 0x1a684: 0x6d17d820, 0x1a685: 0x6c73be20, 0x1a686: 0x6c823620, 0x1a687: 0x6c96ec20, + 0x1a688: 0x6d221220, 0x1a689: 0x6d328020, 0x1a68a: 0x6cd30620, 0x1a68b: 0x6cd31020, + 0x1a68c: 0x6c37b420, 0x1a68d: 0x6c1f0020, 0x1a68e: 0x6d20a220, 0x1a68f: 0x6c7c3020, + 0x1a690: 0x6d20a020, 0x1a691: 0x6d277420, 0x1a692: 0x6c563220, 0x1a693: 0x6cb56020, + 0x1a694: 0x6cf41420, 0x1a695: 0x6c6dfe20, 0x1a696: 0x6cd87220, 0x1a697: 0x6cdc1c20, + 0x1a698: 0x6c44a620, 0x1a699: 0x6c44a820, 0x1a69a: 0x6d0b6c20, 0x1a69b: 0x6d003620, + 0x1a69c: 0x6d0b7420, 0x1a69d: 0x6cb57820, 0x1a69e: 0x6d0b7c20, 0x1a69f: 0x6c5fd820, + 0x1a6a0: 0x6ce7e220, 0x1a6a1: 0x6cedd420, 0x1a6a2: 0x6c777420, 0x1a6a3: 0x6cde2a20, + 0x1a6a4: 0x6c682220, 0x1a6a5: 0x6c4d4e20, 0x1a6a6: 0x6d165220, 0x1a6a7: 0x6c158c20, + 0x1a6a8: 0x6c524420, 0x1a6a9: 0x6ca22220, 0x1a6aa: 0x6d13b220, 0x1a6ab: 0x6cfdd820, + 0x1a6ac: 0x6c6d8e20, 0x1a6ad: 0x6ce66220, 0x1a6ae: 0x6c89aa20, 0x1a6af: 0x6cfdda20, + 0x1a6b0: 0x6c6d9620, 0x1a6b1: 0x6d12d420, 0x1a6b2: 0x6cbd1c20, 0x1a6b3: 0x6c0ece20, + 0x1a6b4: 0x6d204420, 0x1a6b5: 0x6d01a020, 0x1a6b6: 0x6c283820, 0x1a6b7: 0x6c880820, + 0x1a6b8: 0x6c34b420, 0x1a6b9: 0x6c9ae020, 0x1a6ba: 0x6cc55a20, 0x1a6bb: 0x6cc55c20, + 0x1a6bc: 0x6c5fb620, 0x1a6bd: 0x6c630a20, 0x1a6be: 0x6cedd620, 0x1a6bf: 0x6d163a20, + // Block 0x69b, offset 0x1a6c0 + 0x1a6c0: 0x6cd03620, 0x1a6c1: 0x6cc55e20, 0x1a6c2: 0x6c820220, 0x1a6c3: 0x6c2f4220, + 0x1a6c4: 0x6d2b3220, 0x1a6c5: 0x6c6c7e20, 0x1a6c6: 0x6cb3fa20, 0x1a6c7: 0x6c1d8c20, + 0x1a6c8: 0x6c030c20, 0x1a6c9: 0x6d2ef620, 0x1a6ca: 0x6c6c1c20, 0x1a6cb: 0x6c6ba420, + 0x1a6cc: 0x6c0da020, 0x1a6cd: 0x6cc61220, 0x1a6ce: 0x6c237c20, 0x1a6cf: 0x6c3d0820, + 0x1a6d0: 0x6cca1220, 0x1a6d1: 0x6c94d420, 0x1a6d2: 0x6c0da220, 0x1a6d3: 0x6c121c20, + 0x1a6d4: 0x6d3ed620, 0x1a6d5: 0x6cd2ee20, 0x1a6d6: 0x6cddda20, 0x1a6d7: 0x6d2f1a20, + 0x1a6d8: 0x6c3fa420, 0x1a6d9: 0x6cfd5620, 0x1a6da: 0x6cfa6a20, 0x1a6db: 0x6cea9220, + 0x1a6dc: 0x6c52e820, 0x1a6dd: 0x6ce70a20, 0x1a6de: 0x6cc5a620, 0x1a6df: 0x6cb88e20, + 0x1a6e0: 0x6c41c220, 0x1a6e1: 0x6c436220, 0x1a6e2: 0x6c0ea620, 0x1a6e3: 0x6c272220, + 0x1a6e4: 0x6c8e1820, 0x1a6e5: 0x6d15ae20, 0x1a6e6: 0x6c17b020, 0x1a6e7: 0x6c169020, + 0x1a6e8: 0x6cc93e20, 0x1a6e9: 0x6cce5a20, 0x1a6ea: 0x6d144a20, 0x1a6eb: 0x6ca25e20, + 0x1a6ec: 0x6c9b0220, 0x1a6ed: 0x6cc5a820, 0x1a6ee: 0x6c63fe20, 0x1a6ef: 0x6c17b220, + 0x1a6f0: 0x6d0ffc20, 0x1a6f1: 0x6cb96820, 0x1a6f2: 0x6d380e20, 0x1a6f3: 0x6cb04620, + 0x1a6f4: 0x6cf2cc20, 0x1a6f5: 0x6cf41820, 0x1a6f6: 0x6c665020, 0x1a6f7: 0x6c643620, + 0x1a6f8: 0x6d117e20, 0x1a6f9: 0x6c3c1220, 0x1a6fa: 0x6c121e20, 0x1a6fb: 0x6cc5ac20, + 0x1a6fc: 0x6ceddc20, 0x1a6fd: 0x6c3bc420, 0x1a6fe: 0x6c2b0c20, 0x1a6ff: 0x6c39b620, + // Block 0x69c, offset 0x1a700 + 0x1a700: 0x6d378420, 0x1a701: 0x6cb6c820, 0x1a702: 0x6cadf820, 0x1a703: 0x6d20a620, + 0x1a704: 0x6c2e0620, 0x1a705: 0x6c33d220, 0x1a706: 0x6cf49c20, 0x1a707: 0x6d165620, + 0x1a708: 0x6d030a20, 0x1a709: 0x6c777620, 0x1a70a: 0x6d13bc20, 0x1a70b: 0x6c5fbc20, + 0x1a70c: 0x6c008620, 0x1a70d: 0x6cf55420, 0x1a70e: 0x6c617220, 0x1a70f: 0x6c3dca20, + 0x1a710: 0x6c37f620, 0x1a711: 0x6d04b220, 0x1a712: 0x6c6ccc20, 0x1a713: 0x6caf2420, + 0x1a714: 0x6c281820, 0x1a715: 0x6c3d3420, 0x1a716: 0x6ce16c20, 0x1a717: 0x6d381020, + 0x1a718: 0x6d1e8820, 0x1a719: 0x6c5d8620, 0x1a71a: 0x6c5b8a20, 0x1a71b: 0x6d221420, + 0x1a71c: 0x6c251620, 0x1a71d: 0x6c1fee20, 0x1a71e: 0x6cca1420, 0x1a71f: 0x6cef8220, + 0x1a720: 0x6c1ff020, 0x1a721: 0x6c17cc20, 0x1a722: 0x6d0b0a20, 0x1a723: 0x6cfc7020, + 0x1a724: 0x6ccdfe20, 0x1a725: 0x6c165e20, 0x1a726: 0x6c94d620, 0x1a727: 0x6c122020, + 0x1a728: 0x6d0a6420, 0x1a729: 0x6d031220, 0x1a72a: 0x6cef8420, 0x1a72b: 0x6d3a9a20, + 0x1a72c: 0x6d2b5820, 0x1a72d: 0x6cfb2220, 0x1a72e: 0x6caa4820, 0x1a72f: 0x6c0eaa20, + 0x1a730: 0x6c46e620, 0x1a731: 0x6ca62020, 0x1a732: 0x6ca67a20, 0x1a733: 0x6d015420, + 0x1a734: 0x6c04de20, 0x1a735: 0x6d066a20, 0x1a736: 0x6c8e2c20, 0x1a737: 0x6d38f820, + 0x1a738: 0x6ccfa020, 0x1a739: 0x6cc0ca20, 0x1a73a: 0x6c22ac20, 0x1a73b: 0x6c07ce20, + 0x1a73c: 0x6cd2f620, 0x1a73d: 0x6c631e20, 0x1a73e: 0x6caf2620, 0x1a73f: 0x6d167220, + // Block 0x69d, offset 0x1a740 + 0x1a740: 0x6cd87c20, 0x1a741: 0x6d15b620, 0x1a742: 0x6d328220, 0x1a743: 0x6c2d3420, + 0x1a744: 0x6c4d9020, 0x1a745: 0x6c972220, 0x1a746: 0x6c286220, 0x1a747: 0x6d3a9c20, + 0x1a748: 0x6c105a20, 0x1a749: 0x6cc0cc20, 0x1a74a: 0x6c08b420, 0x1a74b: 0x6d2f5020, + 0x1a74c: 0x6c228c20, 0x1a74d: 0x6cf06e20, 0x1a74e: 0x6c2b0e20, 0x1a74f: 0x6d3a9e20, + 0x1a750: 0x6d426220, 0x1a751: 0x6d200e20, 0x1a752: 0x6d0ffe20, 0x1a753: 0x6ce3ba20, + 0x1a754: 0x6d2e4820, 0x1a755: 0x6c50b820, 0x1a756: 0x6c091020, 0x1a757: 0x6ceae420, + 0x1a758: 0x6ccf0820, 0x1a759: 0x6d20ac20, 0x1a75a: 0x6d167420, 0x1a75b: 0x6c3dd020, + 0x1a75c: 0x6d427420, 0x1a75d: 0x6c463420, 0x1a75e: 0x6ca95020, 0x1a75f: 0x6ce70e20, + 0x1a760: 0x6ca62220, 0x1a761: 0x6cfa7620, 0x1a762: 0x6cc17220, 0x1a763: 0x6d1d7c20, + 0x1a764: 0x6cec0e20, 0x1a765: 0x6cb8a220, 0x1a766: 0x6cd40a20, 0x1a767: 0x6c761a20, + 0x1a768: 0x6c068820, 0x1a769: 0x6cae0420, 0x1a76a: 0x6c5b1a20, 0x1a76b: 0x6c51b620, + 0x1a76c: 0x6c819c20, 0x1a76d: 0x6cfdac20, 0x1a76e: 0x6c43c420, 0x1a76f: 0x6d0f8420, + 0x1a770: 0x6c041820, 0x1a771: 0x6c382c20, 0x1a772: 0x6ca02a20, 0x1a773: 0x6c632420, + 0x1a774: 0x6c37bc20, 0x1a775: 0x6c0e0a20, 0x1a776: 0x6c5fda20, 0x1a777: 0x6c523820, + 0x1a778: 0x6c5d6c20, 0x1a779: 0x6c4ac420, 0x1a77a: 0x6cc2b620, 0x1a77b: 0x6ce54820, + 0x1a77c: 0x6c68c820, 0x1a77d: 0x6c22b020, 0x1a77e: 0x6d16a220, 0x1a77f: 0x6cd2b220, + // Block 0x69e, offset 0x1a780 + 0x1a780: 0x6d03c620, 0x1a781: 0x6ccfa620, 0x1a782: 0x6ceaa620, 0x1a783: 0x6c76c020, + 0x1a784: 0x6d343a20, 0x1a785: 0x6c40dc20, 0x1a786: 0x6c7ee220, 0x1a787: 0x6d146c20, + 0x1a788: 0x6c1b7a20, 0x1a789: 0x6c7ad220, 0x1a78a: 0x6c49d420, 0x1a78b: 0x6c858620, + 0x1a78c: 0x6d19a820, 0x1a78d: 0x6cd31220, 0x1a78e: 0x6c9cda20, 0x1a78f: 0x6d398220, + 0x1a790: 0x6d067a20, 0x1a791: 0x6d201420, 0x1a792: 0x6c011820, 0x1a793: 0x6c921620, + 0x1a794: 0x6ca1c020, 0x1a795: 0x6c373420, 0x1a796: 0x6c94de20, 0x1a797: 0x6c305220, + 0x1a798: 0x6c143020, 0x1a799: 0x6c1a9420, 0x1a79a: 0x6d0a6a20, 0x1a79b: 0x6c456220, + 0x1a79c: 0x6d385620, 0x1a79d: 0x6d13ca20, 0x1a79e: 0x6cc78c20, 0x1a79f: 0x6c25a220, + 0x1a7a0: 0x6cf98820, 0x1a7a1: 0x6cd88620, 0x1a7a2: 0x6d292c20, 0x1a7a3: 0x6c937820, + 0x1a7a4: 0x6cdefc20, 0x1a7a5: 0x6c68ca20, 0x1a7a6: 0x6d312220, 0x1a7a7: 0x6c12ca20, + 0x1a7a8: 0x6cbbd020, 0x1a7a9: 0x6c7b1220, 0x1a7aa: 0x6c147020, 0x1a7ab: 0x6ca95220, + 0x1a7ac: 0x6ca9b020, 0x1a7ad: 0x6c6c8420, 0x1a7ae: 0x6cf43220, 0x1a7af: 0x6c53ec20, + 0x1a7b0: 0x6c6efe20, 0x1a7b1: 0x6c1a6420, 0x1a7b2: 0x6d321e20, 0x1a7b3: 0x6d428220, + 0x1a7b4: 0x6c1e2620, 0x1a7b5: 0x6cbd1e20, 0x1a7b6: 0x6c937a20, 0x1a7b7: 0x6c70f820, + 0x1a7b8: 0x6cd5a420, 0x1a7b9: 0x6ce6b420, 0x1a7ba: 0x6cd09220, 0x1a7bb: 0x6ce9f420, + 0x1a7bc: 0x6c0ec020, 0x1a7bd: 0x6ca3e820, 0x1a7be: 0x6cfe8820, 0x1a7bf: 0x6c0b8220, + // Block 0x69f, offset 0x1a7c0 + 0x1a7c0: 0x6ce9de20, 0x1a7c1: 0x6d222420, 0x1a7c2: 0x6cf85220, 0x1a7c3: 0x6c242e20, + 0x1a7c4: 0x6c354e20, 0x1a7c5: 0x6cc01020, 0x1a7c6: 0x6d061620, 0x1a7c7: 0x6c4a1820, + 0x1a7c8: 0x6c7a8420, 0x1a7c9: 0x6cf43420, 0x1a7ca: 0x6c759620, 0x1a7cb: 0x6d16da20, + 0x1a7cc: 0x6c3f4620, 0x1a7cd: 0x6c894820, 0x1a7ce: 0x6d410e20, 0x1a7cf: 0x6cbc3020, + 0x1a7d0: 0x6c859a20, 0x1a7d1: 0x6d1e1620, 0x1a7d2: 0x6c5d1c20, 0x1a7d3: 0x6c6e5220, + 0x1a7d4: 0x6cba4220, 0x1a7d5: 0x6cca4820, 0x1a7d6: 0x6cadf420, 0x1a7d7: 0x6cda7220, + 0x1a7d8: 0x6c3e0620, 0x1a7d9: 0x6cf59820, 0x1a7da: 0x6c850020, 0x1a7db: 0x6c3f4820, + 0x1a7dc: 0x6cb24a20, 0x1a7dd: 0x6c05ea20, 0x1a7de: 0x6d20d220, 0x1a7df: 0x6cb59020, + 0x1a7e0: 0x6cf99020, 0x1a7e1: 0x6d032220, 0x1a7e2: 0x6d04b620, 0x1a7e3: 0x6d222620, + 0x1a7e4: 0x6c2c2420, 0x1a7e5: 0x6c17d020, 0x1a7e6: 0x6c1d9220, 0x1a7e7: 0x6d377c20, + 0x1a7e8: 0x6d0d4e20, 0x1a7e9: 0x6c87e820, 0x1a7ea: 0x6c859c20, 0x1a7eb: 0x6c7ee420, + 0x1a7ec: 0x6cd8fc20, 0x1a7ed: 0x6c656a20, 0x1a7ee: 0x6d04b820, 0x1a7ef: 0x6c3f5220, + 0x1a7f0: 0x6c5daa20, 0x1a7f1: 0x6c721e20, 0x1a7f2: 0x6cffd820, 0x1a7f3: 0x6cabf620, + 0x1a7f4: 0x6c666420, 0x1a7f5: 0x6c0c8c20, 0x1a7f6: 0x6c1f2020, 0x1a7f7: 0x6c3a9420, + 0x1a7f8: 0x6c3cde20, 0x1a7f9: 0x6d0b8a20, 0x1a7fa: 0x6c017a20, 0x1a7fb: 0x6c06f820, + 0x1a7fc: 0x6d22ea20, 0x1a7fd: 0x6d02bc20, 0x1a7fe: 0x6c08ce20, 0x1a7ff: 0x6c561620, + // Block 0x6a0, offset 0x1a800 + 0x1a800: 0x6c166220, 0x1a801: 0x6d33be20, 0x1a802: 0x6c0e1020, 0x1a803: 0x6c6fe420, + 0x1a804: 0x6d10de20, 0x1a805: 0x6c252020, 0x1a806: 0x6c87ea20, 0x1a807: 0x6cecf420, + 0x1a808: 0x6c7ee620, 0x1a809: 0x6c122820, 0x1a80a: 0x6d401c20, 0x1a80b: 0x6c448220, + 0x1a80c: 0x6c490a20, 0x1a80d: 0x6c06fa20, 0x1a80e: 0x6ce4dc20, 0x1a80f: 0x6cd4b420, + 0x1a810: 0x6cd4b620, 0x1a811: 0x6c9b0420, 0x1a812: 0x6c2a0620, 0x1a813: 0x6cdfd420, + 0x1a814: 0x6c740e20, 0x1a815: 0x6c20c220, 0x1a816: 0x6d041e20, 0x1a817: 0x6cae9420, + 0x1a818: 0x6ce17020, 0x1a819: 0x6c548e20, 0x1a81a: 0x6d15da20, 0x1a81b: 0x6cb4d620, + 0x1a81c: 0x6ce3de20, 0x1a81d: 0x6c421420, 0x1a81e: 0x6c6e5e20, 0x1a81f: 0x6c6bd620, + 0x1a820: 0x6cdbb220, 0x1a821: 0x6c170a20, 0x1a822: 0x6c6a9e20, 0x1a823: 0x6c39ce20, + 0x1a824: 0x6d344420, 0x1a825: 0x6c796c20, 0x1a826: 0x6c734220, 0x1a827: 0x6d3f7420, + 0x1a828: 0x6c722020, 0x1a829: 0x6cba4620, 0x1a82a: 0x6ca5c820, 0x1a82b: 0x6c94e420, + 0x1a82c: 0x6d3cf420, 0x1a82d: 0x6cf27e20, 0x1a82e: 0x6c95a820, 0x1a82f: 0x6cd91020, + 0x1a830: 0x6c839220, 0x1a831: 0x6c5d1e20, 0x1a832: 0x6c2fea20, 0x1a833: 0x6d3f3620, + 0x1a834: 0x6c07aa20, 0x1a835: 0x6cf43820, 0x1a836: 0x6c722220, 0x1a837: 0x6ca39e20, + 0x1a838: 0x6c112020, 0x1a839: 0x6c657820, 0x1a83a: 0x6d2d3820, 0x1a83b: 0x6d125a20, + 0x1a83c: 0x6d344620, 0x1a83d: 0x6ccc4020, 0x1a83e: 0x6cbe3820, 0x1a83f: 0x6cbd1220, + // Block 0x6a1, offset 0x1a840 + 0x1a840: 0x6d1ba420, 0x1a841: 0x6c196620, 0x1a842: 0x6c648020, 0x1a843: 0x6d0d6220, + 0x1a844: 0x6cc85c20, 0x1a845: 0x6d382420, 0x1a846: 0x6c217620, 0x1a847: 0x6c641220, + 0x1a848: 0x6c61da20, 0x1a849: 0x6cefa820, 0x1a84a: 0x6d224220, 0x1a84b: 0x6c0e1820, + 0x1a84c: 0x6cc91620, 0x1a84d: 0x6ce31a20, 0x1a84e: 0x6cee7020, 0x1a84f: 0x6cb0ee20, + 0x1a850: 0x6d0e5a20, 0x1a851: 0x6c3c3a20, 0x1a852: 0x6ce17220, 0x1a853: 0x6cf2e020, + 0x1a854: 0x6c360620, 0x1a855: 0x6d009a20, 0x1a856: 0x6c17e820, 0x1a857: 0x6cd13020, + 0x1a858: 0x6c76ca20, 0x1a859: 0x6c2c3820, 0x1a85a: 0x6d429620, 0x1a85b: 0x6c138e20, + 0x1a85c: 0x6ce66c20, 0x1a85d: 0x6c070620, 0x1a85e: 0x6d018820, 0x1a85f: 0x6c59b020, + 0x1a860: 0x6d11a820, 0x1a861: 0x6d2e5420, 0x1a862: 0x6c1e2a20, 0x1a863: 0x6d0bec20, + 0x1a864: 0x6d1f2820, 0x1a865: 0x6c666820, 0x1a866: 0x6d063a20, 0x1a867: 0x6d2bd220, + 0x1a868: 0x6c220220, 0x1a869: 0x6c3fdc20, 0x1a86a: 0x6c087020, 0x1a86b: 0x6d35d420, + 0x1a86c: 0x6d3fea20, 0x1a86d: 0x6c9e1620, 0x1a86e: 0x6c601020, 0x1a86f: 0x6d15e420, + 0x1a870: 0x6d018a20, 0x1a871: 0x6d0a0420, 0x1a872: 0x6c10f420, 0x1a873: 0x6c329420, + 0x1a874: 0x6c12da20, 0x1a875: 0x6d314c20, 0x1a876: 0x6cab7c20, 0x1a877: 0x6ce7d420, + 0x1a878: 0x6ce7d620, 0x1a879: 0x6c070820, 0x1a87a: 0x6d28b220, 0x1a87b: 0x6c908420, + 0x1a87c: 0x6c6aac20, 0x1a87d: 0x6cefaa20, 0x1a87e: 0x6c3bd620, 0x1a87f: 0x6c16a020, + // Block 0x6a2, offset 0x1a880 + 0x1a880: 0x6c4a5220, 0x1a881: 0x6cda1420, 0x1a882: 0x6d361420, 0x1a883: 0x6cdab020, + 0x1a884: 0x6cf96620, 0x1a885: 0x6c40b020, 0x1a886: 0x6d261420, 0x1a887: 0x6cc70420, + 0x1a888: 0x6c860420, 0x1a889: 0x6caa6420, 0x1a88a: 0x6d282c20, 0x1a88b: 0x6c67a620, + 0x1a88c: 0x6c96bc20, 0x1a88d: 0x6c056e20, 0x1a88e: 0x6c2cc820, 0x1a88f: 0x6ce0ee20, + 0x1a890: 0x6c503c20, 0x1a891: 0x6c6ac220, 0x1a892: 0x6cf60820, 0x1a893: 0x6ccd8820, + 0x1a894: 0x6cba5020, 0x1a895: 0x6c744020, 0x1a896: 0x6c122c20, 0x1a897: 0x6c1f3c20, + 0x1a898: 0x6cca1820, 0x1a899: 0x6c071c20, 0x1a89a: 0x6cffe820, 0x1a89b: 0x6d1e3420, + 0x1a89c: 0x6d10f220, 0x1a89d: 0x6ce09620, 0x1a89e: 0x6cdd1420, 0x1a89f: 0x6d101c20, + 0x1a8a0: 0x6c37ea20, 0x1a8a1: 0x6c0e1c20, 0x1a8a2: 0x6c635a20, 0x1a8a3: 0x6c271820, + 0x1a8a4: 0x6d293620, 0x1a8a5: 0x6ce17620, 0x1a8a6: 0x6c483820, 0x1a8a7: 0x6c0d3420, + 0x1a8a8: 0x6c1ede20, 0x1a8a9: 0x6caabc20, 0x1a8aa: 0x6c116c20, 0x1a8ab: 0x6c82c820, + 0x1a8ac: 0x6c24ca20, 0x1a8ad: 0x6d1d8820, 0x1a8ae: 0x6d2a1420, 0x1a8af: 0x6d3ff620, + 0x1a8b0: 0x6c07f420, 0x1a8b1: 0x6cd95e20, 0x1a8b2: 0x6c02ce20, 0x1a8b3: 0x6c1ffe20, + 0x1a8b4: 0x6d226620, 0x1a8b5: 0x6d2d4220, 0x1a8b6: 0x6d40c220, 0x1a8b7: 0x6cce0620, + 0x1a8b8: 0x6c208e20, 0x1a8b9: 0x6c6e8c20, 0x1a8ba: 0x6c1c2c20, 0x1a8bb: 0x6ccc3220, + 0x1a8bc: 0x6c4ecc20, 0x1a8bd: 0x6d2eb820, 0x1a8be: 0x6cbe4c20, 0x1a8bf: 0x6d0e8020, + // Block 0x6a3, offset 0x1a8c0 + 0x1a8c0: 0x6c2c6620, 0x1a8c1: 0x6d01bc20, 0x1a8c2: 0x6c909220, 0x1a8c3: 0x6c072020, + 0x1a8c4: 0x6cb1b020, 0x1a8c5: 0x6c6c9420, 0x1a8c6: 0x6c88f020, 0x1a8c7: 0x6c926020, + 0x1a8c8: 0x6c976620, 0x1a8c9: 0x6cb8ea20, 0x1a8ca: 0x6cfaba20, 0x1a8cb: 0x6ce09c20, + 0x1a8cc: 0x6d1c7a20, 0x1a8cd: 0x6c307e20, 0x1a8ce: 0x6d3bd220, 0x1a8cf: 0x6cfe3c20, + 0x1a8d0: 0x6ccd9220, 0x1a8d1: 0x6cbbe220, 0x1a8d2: 0x6c6f2220, 0x1a8d3: 0x6ce9e820, + 0x1a8d4: 0x6d420620, 0x1a8d5: 0x6cb44220, 0x1a8d6: 0x6cf66020, 0x1a8d7: 0x6c815e20, + 0x1a8d8: 0x6c16f020, 0x1a8d9: 0x6c49ec20, 0x1a8da: 0x6c89ec20, 0x1a8db: 0x6cb50420, + 0x1a8dc: 0x6c197820, 0x1a8dd: 0x6c150820, 0x1a8de: 0x6cefee20, 0x1a8df: 0x6c5efe20, + 0x1a8e0: 0x6c0e8220, 0x1a8e1: 0x6c5bf020, 0x1a8e2: 0x6c202420, 0x1a8e3: 0x6ce5fc20, + 0x1a8e4: 0x6c289a20, 0x1a8e5: 0x6c691220, 0x1a8e6: 0x6c700a20, 0x1a8e7: 0x6ccbb820, + 0x1a8e8: 0x6c3be020, 0x1a8e9: 0x6cfce620, 0x1a8ea: 0x6c713c20, 0x1a8eb: 0x6c366c20, + 0x1a8ec: 0x6c685820, 0x1a8ed: 0x6c66a420, 0x1a8ee: 0x6ce76420, 0x1a8ef: 0x6c8c5620, + 0x1a8f0: 0x6c0f2420, 0x1a8f1: 0x6c482220, 0x1a8f2: 0x6cfd5820, 0x1a8f3: 0x6cdade20, + 0x1a8f4: 0x6cfce820, 0x1a8f5: 0x6c676e20, 0x1a8f6: 0x6c9fc020, 0x1a8f7: 0x6d130e20, + 0x1a8f8: 0x6c6d3220, 0x1a8f9: 0x6c644e20, 0x1a8fa: 0x6cbc5220, 0x1a8fb: 0x6cb0b420, + 0x1a8fc: 0x6c3c6020, 0x1a8fd: 0x6d394220, 0x1a8fe: 0x6c00c020, 0x1a8ff: 0x6cc9e820, + // Block 0x6a4, offset 0x1a900 + 0x1a900: 0x6d154220, 0x1a901: 0x6c75d220, 0x1a902: 0x6ca9be20, 0x1a903: 0x6c151620, + 0x1a904: 0x6d184620, 0x1a905: 0x6c297c20, 0x1a906: 0x6c6e2420, 0x1a907: 0x6d07b620, + 0x1a908: 0x6c7b3020, 0x1a909: 0x6c65c820, 0x1a90a: 0x6c1f6820, 0x1a90b: 0x6c27f420, + 0x1a90c: 0x6c692020, 0x1a90d: 0x6ccc3420, 0x1a90e: 0x6d294020, 0x1a90f: 0x6c121820, + 0x1a910: 0x6c0d5020, 0x1a911: 0x6c017220, 0x1a912: 0x6cc7c420, 0x1a913: 0x6cdf3c20, + 0x1a914: 0x6c1dd820, 0x1a915: 0x6c148a20, 0x1a916: 0x6c7fb220, 0x1a917: 0x6ca64620, + 0x1a918: 0x6c6cb420, 0x1a919: 0x6cba7020, 0x1a91a: 0x6c9b3420, 0x1a91b: 0x6cf47620, + 0x1a91c: 0x6ca91820, 0x1a91d: 0x6cbf5a20, 0x1a91e: 0x6ca64820, 0x1a91f: 0x6c16c820, + 0x1a920: 0x6c8b2e20, 0x1a921: 0x6c82dc20, 0x1a922: 0x6c93b820, 0x1a923: 0x6c7bd020, + 0x1a924: 0x6c066c20, 0x1a925: 0x6d240420, 0x1a926: 0x6c0c2a20, 0x1a927: 0x6d297820, + 0x1a928: 0x6d349e20, 0x1a929: 0x6cd8f220, 0x1a92a: 0x6d1eb420, 0x1a92b: 0x6c4fe820, + 0x1a92c: 0x6c193220, 0x1a92d: 0x6c193620, 0x1a92e: 0x6c86bc20, 0x1a92f: 0x6ce2be20, + 0x1a930: 0x6cf02420, 0x1a931: 0x6c903a20, 0x1a932: 0x6c1eee20, 0x1a933: 0x6c154020, + 0x1a934: 0x6cc4e020, 0x1a935: 0x6cd51220, 0x1a936: 0x6c5c8820, 0x1a937: 0x6c874220, + 0x1a938: 0x6c956820, 0x1a939: 0x6d298020, 0x1a93a: 0x6caace20, 0x1a93b: 0x6ce18820, + 0x1a93c: 0x6d0e1220, 0x1a93d: 0x6c829420, 0x1a93e: 0x6ca47c20, 0x1a93f: 0x6c372e20, + // Block 0x6a5, offset 0x1a940 + 0x1a940: 0x6cf49020, 0x1a941: 0x6d27d220, 0x1a942: 0x6d294a20, 0x1a943: 0x6d252e20, + 0x1a944: 0x6d044a20, 0x1a945: 0x6c1ca820, 0x1a946: 0x6d2f9620, 0x1a947: 0x6d044e20, + 0x1a948: 0x6cfa6e20, 0x1a949: 0x6c49d020, 0x1a94a: 0x6c332e20, 0x1a94b: 0x6c787820, + 0x1a94c: 0x6c333020, 0x1a94d: 0x6c9dfe20, 0x1a94e: 0x6ce91c20, 0x1a94f: 0x6c169420, + 0x1a950: 0x6c373220, 0x1a951: 0x6c333220, 0x1a952: 0x6c373620, 0x1a953: 0x6c6c2c20, + 0x1a954: 0x6ce92020, 0x1a955: 0x6cd87e20, 0x1a956: 0x6d0d4420, 0x1a957: 0x6d0d5020, + 0x1a958: 0x6cd2bc20, 0x1a95a: 0x6c292a20, 0x1a95b: 0x6cb8c220, + 0x1a95c: 0x6c30a820, 0x1a95d: 0x6c3b2820, 0x1a95e: 0x6c98d620, 0x1a95f: 0x6ccfe220, + 0x1a960: 0x6c30aa20, 0x1a962: 0x6c6dc620, 0x1a963: 0x6c852e20, + 0x1a964: 0x6c5a2a20, 0x1a965: 0x6cc80e20, 0x1a966: 0x6cedd820, 0x1a967: 0x6ca57e20, + 0x1a968: 0x6cc2b220, 0x1a969: 0x6c898820, 0x1a96a: 0x6d20d420, 0x1a96b: 0x6c030a20, + 0x1a96c: 0x6c454e20, 0x1a96d: 0x6c8f2420, 0x1a96e: 0x6cf55c20, 0x1a96f: 0x6c4f4220, + 0x1a970: 0x6c7f8620, 0x1a971: 0x6c460a20, 0x1a972: 0x6ce45620, 0x1a973: 0x6c490020, + 0x1a974: 0x6d041020, 0x1a975: 0x6c0daa20, 0x1a976: 0x6cb57a20, 0x1a977: 0x6c720620, + 0x1a978: 0x6c2d0620, 0x1a979: 0x6d3e0820, 0x1a97a: 0x6c3b2020, 0x1a97b: 0x6d100620, + 0x1a97c: 0x6c647a20, 0x1a97d: 0x6cd45820, 0x1a97e: 0x6c621420, 0x1a97f: 0x6d17da20, + // Block 0x6a6, offset 0x1a980 + 0x1a980: 0x6c627020, 0x1a981: 0x6c15ec20, 0x1a982: 0x6c6ed020, 0x1a983: 0x6c993e20, + 0x1a984: 0x6cc4a620, 0x1a985: 0x6ca58020, 0x1a986: 0x6d253020, 0x1a987: 0x6c991c20, + 0x1a988: 0x6c424c20, 0x1a989: 0x6cc4a820, 0x1a98a: 0x6c12c620, 0x1a98b: 0x6c6ed220, + 0x1a98c: 0x6c12c820, 0x1a98d: 0x6d292620, 0x1a98e: 0x6c488820, 0x1a98f: 0x6c6ef020, + 0x1a990: 0x6c994820, 0x1a991: 0x6d390820, 0x1a992: 0x6c994e20, 0x1a993: 0x6c46a020, + 0x1a994: 0x6d063220, 0x1a995: 0x6c9e1820, 0x1a996: 0x6c9d1620, 0x1a997: 0x6cc6ec20, + 0x1a998: 0x6d1a1a20, 0x1a999: 0x6d013e20, 0x1a99a: 0x6c76bc20, 0x1a99b: 0x6c755020, + 0x1a99c: 0x6ca9ae20, 0x1a99d: 0x6d145a20, 0x1a99e: 0x6c9c3420, 0x1a99f: 0x6cd32820, + 0x1a9a0: 0x6c490620, 0x1a9a1: 0x6c9b0e20, 0x1a9a2: 0x6d37ec20, 0x1a9a3: 0x6c722620, + 0x1a9a4: 0x6d24d020, 0x1a9a5: 0x6c9ff220, 0x1a9a6: 0x6c79de20, 0x1a9a7: 0x6c8ba420, + 0x1a9a8: 0x6c3fe020, 0x1a9a9: 0x6d014420, 0x1a9aa: 0x6c9d7620, 0x1a9ab: 0x6c0d9e20, + 0x1a9ac: 0x6c2fd820, 0x1a9ad: 0x6cdf0c20, 0x1a9ae: 0x6c425020, 0x1a9af: 0x6c3c9a20, + 0x1a9b0: 0x6c0da620, 0x1a9b1: 0x6c564620, 0x1a9b2: 0x6c1caa20, 0x1a9b3: 0x6c73cc20, + 0x1a9b4: 0x6c564820, 0x1a9b5: 0x6c7bdc20, 0x1a9b6: 0x6d12a220, 0x1a9b7: 0x6c839020, + 0x1a9b8: 0x6cac9a20, 0x1a9b9: 0x6c3dd220, 0x1a9ba: 0x6c9f8c20, 0x1a9bb: 0x6c305020, + 0x1a9bc: 0x6cfbe620, 0x1a9bd: 0x6c8ac620, 0x1a9be: 0x6cb84020, 0x1a9bf: 0x6c646820, + // Block 0x6a7, offset 0x1a9c0 + 0x1a9c0: 0x6c6e4a20, 0x1a9c1: 0x6cd5a620, 0x1a9c2: 0x6c9a4c20, 0x1a9c3: 0x6ce88a20, + 0x1a9c4: 0x6cb4d820, 0x1a9c5: 0x6c480220, 0x1a9c6: 0x6d3cda20, 0x1a9c7: 0x6cd91220, + 0x1a9c8: 0x6c6e6020, 0x1a9c9: 0x6c894a20, 0x1a9ca: 0x6cbec420, 0x1a9cb: 0x6c2db820, + 0x1a9cc: 0x6c8cc420, 0x1a9cd: 0x6c306c20, 0x1a9ce: 0x6c421620, 0x1a9cf: 0x6c658220, + 0x1a9d0: 0x6d19c620, 0x1a9d1: 0x6c23ea20, 0x1a9d2: 0x6d14f220, 0x1a9d3: 0x6c860620, + 0x1a9d4: 0x6c20a820, 0x1a9d5: 0x6ca03420, 0x1a9d6: 0x6d3ce820, 0x1a9d7: 0x6c24cc20, + 0x1a9d8: 0x6cd7fe20, 0x1a9d9: 0x6c345c20, 0x1a9da: 0x6c6d3420, 0x1a9db: 0x6c8c2620, + 0x1a9dc: 0x6c8c2820, 0x1a9dd: 0x6ca91a20, 0x1a9de: 0x6cf6b620, 0x1a9df: 0x6c31be20, + 0x1a9e0: 0x6c610c20, 0x1a9e1: 0x6c387820, 0x1a9e2: 0x6c387a20, 0x1a9e3: 0x6c387c20, + 0x1a9e4: 0x6c3cd620, 0x1a9e5: 0x6c704a20, 0x1a9e6: 0x6c1ed220, 0x1a9e7: 0x6d337a20, + 0x1a9e8: 0x6c3c1420, 0x1a9e9: 0x6ca2c220, 0x1a9ea: 0x6d377a20, 0x1a9eb: 0x6c3dcc20, + 0x1a9ec: 0x6c3c1620, 0x1a9ed: 0x6cb27220, 0x1a9ee: 0x6c3c2020, 0x1a9ef: 0x6c764420, + 0x1a9f0: 0x6c59b220, 0x1a9f1: 0x6c765220, 0x1a9f2: 0x6c419a20, 0x1a9f3: 0x6c2ad820, + 0x1a9f4: 0x6cb2bc20, 0x1a9f5: 0x6cb9ec20, 0x1a9f6: 0x6d044820, 0x1a9f7: 0x6c7b0a20, + 0x1a9f8: 0x6ce83620, 0x1a9f9: 0x6c022420, 0x1a9fa: 0x6c1e5020, 0x1a9fb: 0x6c5e6820, + 0x1a9fc: 0x6c295020, 0x1a9fd: 0x6c4dd220, 0x1a9fe: 0x6c4dda20, 0x1a9ff: 0x6d2a3420, + // Block 0x6a8, offset 0x1aa00 + 0x1aa00: 0x6c29b020, 0x1aa01: 0x6c2da220, 0x1aa02: 0x6c29b220, 0x1aa03: 0x6cc5a020, + 0x1aa04: 0x6cc5a220, 0x1aa05: 0x6c204a20, 0x1aa06: 0x6c3b0820, 0x1aa07: 0x6cbc9020, + 0x1aa08: 0x6d163e20, 0x1aa09: 0x6c5e6a20, 0x1aa0a: 0x6c76a020, 0x1aa0b: 0x6cba3a20, + 0x1aa0c: 0x6c25ac20, 0x1aa0d: 0x6c1e7220, 0x1aa0e: 0x6cf1c620, 0x1aa0f: 0x6c5e7220, + 0x1aa10: 0x6c281c20, 0x1aa11: 0x6d03b820, 0x1aa12: 0x6c577820, 0x1aa13: 0x6cecb620, + 0x1aa14: 0x6c73ce20, 0x1aa15: 0x6c839e20, 0x1aa16: 0x6d267020, 0x1aa17: 0x6c8abc20, + 0x1aa18: 0x6c8e3e20, 0x1aa19: 0x6d2aa220, 0x1aa1a: 0x6c425220, 0x1aa1b: 0x6c209e20, + 0x1aa1c: 0x6c3dd420, 0x1aa1d: 0x6c1e5420, 0x1aa1e: 0x6cc26020, 0x1aa1f: 0x6c704c20, + 0x1aa20: 0x6cccb820, 0x1aa21: 0x6c9f8e20, 0x1aa22: 0x6c8c9a20, 0x1aa23: 0x6d378a20, + 0x1aa24: 0x6cac9c20, 0x1aa25: 0x6c0cd820, 0x1aa26: 0x6c6a6420, 0x1aa27: 0x6c6a6620, + 0x1aa28: 0x6cad4420, 0x1aa29: 0x6c857620, 0x1aa2a: 0x6cccba20, 0x1aa2b: 0x6c0cda20, + 0x1aa2c: 0x6c158e20, 0x1aa2d: 0x6c6e0620, 0x1aa2e: 0x6c484420, 0x1aa2f: 0x6c44b820, + 0x1aa30: 0x6c2a0020, 0x1aa31: 0x6c20a220, 0x1aa32: 0x6c7c3220, 0x1aa33: 0x6c7a2020, + 0x1aa34: 0x6c34ca20, 0x1aa35: 0x6c37be20, 0x1aa36: 0x6d358020, 0x1aa37: 0x6cd64020, + 0x1aa38: 0x6cc36e20, 0x1aa39: 0x6ccbce20, 0x1aa3a: 0x6c22b220, 0x1aa3b: 0x6c787a20, + 0x1aa3c: 0x6c6a7620, 0x1aa3d: 0x6c4b2a20, 0x1aa3e: 0x6c22b420, 0x1aa3f: 0x6c4b2c20, + // Block 0x6a9, offset 0x1aa40 + 0x1aa40: 0x6c764620, 0x1aa41: 0x6c34cc20, 0x1aa42: 0x6c619020, 0x1aa43: 0x6ce3d820, + 0x1aa44: 0x6c6e1420, 0x1aa45: 0x6c907c20, 0x1aa46: 0x6c95a620, 0x1aa47: 0x6d2ab220, + 0x1aa48: 0x6d24cc20, 0x1aa49: 0x6c260c20, 0x1aa4a: 0x6d08da20, 0x1aa4b: 0x6c788220, + 0x1aa4c: 0x6c7e5a20, 0x1aa4d: 0x6cb97820, 0x1aa4e: 0x6ccbd020, 0x1aa4f: 0x6c20a420, + 0x1aa50: 0x6c489420, 0x1aa51: 0x6c665820, 0x1aa52: 0x6c261020, 0x1aa53: 0x6c83aa20, + 0x1aa54: 0x6ce2e820, 0x1aa55: 0x6c3a9620, 0x1aa56: 0x6cb3c620, 0x1aa57: 0x6c15a020, + 0x1aa58: 0x6cb59c20, 0x1aa59: 0x6c20a620, 0x1aa5a: 0x6d3f3820, 0x1aa5b: 0x6c426c20, + 0x1aa5c: 0x6cec8420, 0x1aa5d: 0x6c0e5a20, 0x1aa5e: 0x6c5e9e20, 0x1aa5f: 0x6c342220, + 0x1aa60: 0x6cbe7220, 0x1aa61: 0x6ccd7420, 0x1aa62: 0x6c316620, 0x1aa63: 0x6c666a20, + 0x1aa64: 0x6c61c220, 0x1aa65: 0x6c0e5c20, 0x1aa66: 0x6d0be220, 0x1aa67: 0x6c722820, + 0x1aa68: 0x6c5d5420, 0x1aa69: 0x6cd16220, 0x1aa6a: 0x6c658420, 0x1aa6b: 0x6c344420, + 0x1aa6c: 0x6c329620, 0x1aa6d: 0x6cf36220, 0x1aa6e: 0x6c489820, 0x1aa6f: 0x6c3fe220, + 0x1aa70: 0x6cd15a20, 0x1aa71: 0x6c667420, 0x1aa72: 0x6c438c20, 0x1aa73: 0x6c269420, + 0x1aa74: 0x6c765420, 0x1aa75: 0x6c20aa20, 0x1aa76: 0x6c1fe220, 0x1aa77: 0x6c15bc20, + 0x1aa78: 0x6ce94e20, 0x1aa79: 0x6c926220, 0x1aa7a: 0x6c83de20, 0x1aa7b: 0x6caf0a20, + 0x1aa7c: 0x6ccce820, 0x1aa7d: 0x6cb15620, 0x1aa7e: 0x6c79bc20, 0x1aa7f: 0x6c690220, + // Block 0x6aa, offset 0x1aa80 + 0x1aa80: 0x6c486620, 0x1aa81: 0x6cbb8a20, 0x1aa82: 0x6c747220, 0x1aa83: 0x6c57a820, + 0x1aa84: 0x6d2be620, 0x1aa85: 0x6d3df620, 0x1aa86: 0x6c882a20, 0x1aa87: 0x6c727420, + 0x1aa88: 0x6caf8420, 0x1aa89: 0x6c8e8020, 0x1aa8a: 0x6c4b5e20, 0x1aa8b: 0x6c692220, + 0x1aa8c: 0x6c4b6020, 0x1aa8d: 0x6c66b020, 0x1aa8e: 0x6c66b220, 0x1aa8f: 0x6ce0c820, + 0x1aa90: 0x6c5d5a20, 0x1aa91: 0x6c627220, 0x1aa92: 0x6c66cc20, 0x1aa93: 0x6d187e20, + 0x1aa94: 0x6c66ce20, 0x1aa95: 0x6d370020, 0x1aa96: 0x6c154220, 0x1aa97: 0x6c662020, + 0x1aa98: 0x6ca09820, 0x1aa99: 0x6c84c820, 0x1aa9a: 0x6d3a8c20, 0x1aa9b: 0x6c855c20, + 0x1aa9c: 0x6d0b6220, 0x1aa9d: 0x6cc36c20, 0x1aa9e: 0x6c04da20, 0x1aa9f: 0x6c455420, + 0x1aaa0: 0x6c631620, 0x1aaa1: 0x6cf55220, 0x1aaa2: 0x6c971e20, 0x1aaa3: 0x6c8abe20, + 0x1aaa4: 0x6c6cce20, 0x1aaa5: 0x6c792020, 0x1aaa6: 0x6d006420, 0x1aaa7: 0x6d34d220, + 0x1aaa8: 0x6c304c20, 0x1aaa9: 0x6d3aa020, 0x1aaaa: 0x6caa4a20, 0x1aaab: 0x6c6a6820, + 0x1aaac: 0x6cc17420, 0x1aaad: 0x6ccec020, 0x1aaae: 0x6d167620, 0x1aaaf: 0x6d398020, + 0x1aab0: 0x6ca0c020, 0x1aab1: 0x6c857a20, 0x1aab2: 0x6c6cd020, 0x1aab3: 0x6c813e20, + 0x1aab4: 0x6c814020, 0x1aab5: 0x6c733e20, 0x1aab6: 0x6c79ce20, 0x1aab7: 0x6d0f8620, + 0x1aab8: 0x6cebc620, 0x1aab9: 0x6cffd420, 0x1aaba: 0x6ca1c220, 0x1aabb: 0x6c7b8420, + 0x1aabc: 0x6c6a7a20, 0x1aabd: 0x6c8aca20, 0x1aabe: 0x6c50ba20, 0x1aabf: 0x6cd31420, + // Block 0x6ab, offset 0x1aac0 + 0x1aac0: 0x6c788420, 0x1aac1: 0x6c6ce020, 0x1aac2: 0x6c433620, 0x1aac3: 0x6c0ec220, + 0x1aac4: 0x6c9f9820, 0x1aac5: 0x6c1bf420, 0x1aac6: 0x6c80a020, 0x1aac7: 0x6d1e1820, + 0x1aac8: 0x6d1e1a20, 0x1aac9: 0x6c9e0c20, 0x1aaca: 0x6c788620, 0x1aacb: 0x6d099220, + 0x1aacc: 0x6c734420, 0x1aacd: 0x6cbe7420, 0x1aace: 0x6c922820, 0x1aacf: 0x6c107c20, + 0x1aad0: 0x6c9bcc20, 0x1aad1: 0x6c1c0420, 0x1aad2: 0x6c823c20, 0x1aad3: 0x6c768620, + 0x1aad4: 0x6c9e1a20, 0x1aad5: 0x6c307220, 0x1aad6: 0x6d06b420, 0x1aad7: 0x6d06ba20, + 0x1aad8: 0x6c76a620, 0x1aad9: 0x6cf55620, 0x1aada: 0x6d175020, 0x1aadb: 0x6d099820, + 0x1aadc: 0x6cf24a20, 0x1aadd: 0x6cd16420, 0x1aade: 0x6c815620, 0x1aadf: 0x6ca28420, + 0x1aae0: 0x6c926420, 0x1aae1: 0x6cb1b220, 0x1aae2: 0x6cd39620, 0x1aae3: 0x6c5ee220, + 0x1aae4: 0x6cbd7c20, 0x1aae5: 0x6c67ee20, 0x1aae6: 0x6c174c20, 0x1aae7: 0x6cc37420, + 0x1aae8: 0x6cfe3e20, 0x1aae9: 0x6d181c20, 0x1aaea: 0x6c747620, 0x1aaeb: 0x6c385220, + 0x1aaec: 0x6c72fa20, 0x1aaed: 0x6ce76620, 0x1aaee: 0x6c727620, 0x1aaef: 0x6c27f620, + 0x1aaf0: 0x6d00d620, 0x1aaf1: 0x6c973820, 0x1aaf2: 0x6d09a420, 0x1aaf3: 0x6d09a820, + 0x1aaf4: 0x6c940220, 0x1aaf5: 0x6c867020, 0x1aaf6: 0x6c184e20, 0x1aaf7: 0x6cc4e220, + 0x1aaf8: 0x6cc37c20, 0x1aaf9: 0x6c059c20, 0x1aafa: 0x6cce9420, 0x1aafb: 0x6d277620, + 0x1aafc: 0x6c6f4220, 0x1aafd: 0x6c062c20, 0x1aafe: 0x6c463220, 0x1aaff: 0x6cf49220, + // Block 0x6ac, offset 0x1ab00 + 0x1ab00: 0x6d277820, 0x1ab01: 0x6cf17820, 0x1ab02: 0x6c0ade20, 0x1ab03: 0x6c412220, + 0x1ab04: 0x6c412420, 0x1ab05: 0x6c059e20, 0x1ab06: 0x6c22f420, 0x1ab07: 0x6d198a20, + 0x1ab08: 0x6d045020, 0x1ab09: 0x6cae5020, 0x1ab0a: 0x6c705020, 0x1ab0b: 0x6ce20420, + 0x1ab0c: 0x6c43c620, 0x1ab0d: 0x6cb42c20, 0x1ab0e: 0x6c35f820, 0x1ab0f: 0x6cad5a20, + 0x1ab10: 0x6c3e4820, 0x1ab11: 0x6c458820, 0x1ab12: 0x6c269620, 0x1ab13: 0x6c6fee20, + 0x1ab14: 0x6cbef220, 0x1ab15: 0x6c08aa20, 0x1ab16: 0x6c577620, 0x1ab17: 0x6c06c620, + 0x1ab18: 0x6ca4ea20, 0x1ab19: 0x6cd41420, 0x1ab1a: 0x6c397e20, 0x1ab1b: 0x6c6fc620, + 0x1ab1c: 0x6d144c20, 0x1ab1d: 0x6d288020, 0x1ab1e: 0x6c67d020, 0x1ab1f: 0x6c777820, + 0x1ab20: 0x6c681820, 0x1ab21: 0x6c7b8020, 0x1ab22: 0x6c549220, 0x1ab23: 0x6cf98420, + 0x1ab24: 0x6cc0ce20, 0x1ab25: 0x6c0b6820, 0x1ab26: 0x6c4ac620, 0x1ab27: 0x6cbc9c20, + 0x1ab28: 0x6d29d020, 0x1ab29: 0x6c7b8a20, 0x1ab2a: 0x6c3a4c20, 0x1ab2b: 0x6c54b420, + 0x1ab2c: 0x6d224620, 0x1ab2d: 0x6c4aee20, 0x1ab2e: 0x6c7cf020, 0x1ab2f: 0x6c5bd220, + 0x1ab30: 0x6c27ea20, 0x1ab31: 0x6c4b5c20, 0x1ab32: 0x6c881a20, 0x1ab33: 0x6c882c20, + 0x1ab34: 0x6cdb9420, 0x1ab35: 0x6c31c220, 0x1ab36: 0x6c703420, 0x1ab37: 0x6c74fa20, + 0x1ab38: 0x6cf83420, 0x1ab39: 0x6cb04020, 0x1ab3a: 0x6cc0c420, 0x1ab3b: 0x6d13c020, + 0x1ab3c: 0x6c77d420, 0x1ab3d: 0x6d0d5220, 0x1ab3e: 0x6c0b3220, 0x1ab3f: 0x6ca68c20, + // Block 0x6ad, offset 0x1ab40 + 0x1ab40: 0x6cc0f820, 0x1ab41: 0x6cd22420, 0x1ab42: 0x6d0a6020, 0x1ab43: 0x6cb88c20, + 0x1ab44: 0x6ca75420, 0x1ab45: 0x6cc96220, 0x1ab46: 0x6d40a220, 0x1ab47: 0x6cd0d020, + 0x1ab48: 0x6cf41620, 0x1ab49: 0x6c5b8420, 0x1ab4a: 0x6c04dc20, 0x1ab4b: 0x6cd2fa20, + 0x1ab4c: 0x6cf83620, 0x1ab4d: 0x6ced6a20, 0x1ab4e: 0x6c572420, 0x1ab4f: 0x6d006620, + 0x1ab50: 0x6ced6c20, 0x1ab51: 0x6c068e20, 0x1ab52: 0x6d40a820, 0x1ab53: 0x6d3cee20, + 0x1ab54: 0x6d007020, 0x1ab55: 0x6c27ba20, 0x1ab56: 0x6c972820, 0x1ab57: 0x6ca3ea20, + 0x1ab58: 0x6c27c020, 0x1ab59: 0x6c601220, 0x1ab5a: 0x6c0efe20, 0x1ab5b: 0x6cd67c20, + 0x1ab5c: 0x6c100420, 0x1ab5d: 0x6c7bd420, 0x1ab5e: 0x6c0b6420, 0x1ab5f: 0x6c102a20, + 0x1ab60: 0x6d2e4620, 0x1ab61: 0x6c761820, 0x1ab62: 0x6c913020, 0x1ab63: 0x6d1f9c20, + 0x1ab64: 0x6c91b420, 0x1ab65: 0x6cf58420, 0x1ab66: 0x6c48a620, 0x1ab67: 0x6cf2d420, + 0x1ab68: 0x6d017620, 0x1ab69: 0x6c6a4e20, 0x1ab6a: 0x6c6a5020, 0x1ab6b: 0x6cf06820, + 0x1ab6c: 0x6c01f020, 0x1ab6d: 0x6cbef420, 0x1ab6e: 0x6d338020, 0x1ab6f: 0x6c991e20, + 0x1ab70: 0x6d1b3620, 0x1ab71: 0x6cee6620, 0x1ab72: 0x6ccec420, 0x1ab73: 0x6c5fd220, + 0x1ab74: 0x6cc3a020, 0x1ab75: 0x6c948c20, 0x1ab76: 0x6c1b7c20, 0x1ab77: 0x6c731020, + 0x1ab78: 0x6d016a20, 0x1ab79: 0x6d067e20, 0x1ab7a: 0x6c6c8620, 0x1ab7b: 0x6cc3a620, + 0x1ab7c: 0x6cf4be20, 0x1ab7d: 0x6c5fec20, 0x1ab7e: 0x6c360a20, 0x1ab7f: 0x6cbe3a20, + // Block 0x6ae, offset 0x1ab80 + 0x1ab80: 0x6cf63820, 0x1ab81: 0x6cca6620, 0x1ab82: 0x6c16e020, 0x1ab83: 0x6cef8020, + 0x1ab84: 0x6c35c020, 0x1ab85: 0x6ce62220, 0x1ab86: 0x6c856020, 0x1ab87: 0x6d300c20, + 0x1ab88: 0x6c4e4e20, 0x1ab89: 0x6c856420, 0x1ab8a: 0x6d0b4620, 0x1ab8b: 0x6d0ac820, + 0x1ab8c: 0x6d0e3620, 0x1ab8d: 0x6ccf3020, 0x1ab8e: 0x6c2bca20, 0x1ab8f: 0x6d2c7020, + 0x1ab90: 0x6cacf020, 0x1ab91: 0x6d0b0c20, 0x1ab92: 0x6c50bc20, 0x1ab93: 0x6d0b1620, + 0x1ab94: 0x6d358220, 0x1ab95: 0x6c12cc20, 0x1ab96: 0x6cacf620, 0x1ab97: 0x6ce31020, + 0x1ab98: 0x6c83a420, 0x1ab99: 0x6ccf3820, 0x1ab9a: 0x6c546020, 0x1ab9b: 0x6ce63420, + 0x1ab9c: 0x6d416820, 0x1ab9d: 0x6c261220, 0x1ab9e: 0x6c3a9820, 0x1ab9f: 0x6d254c20, + 0x1aba0: 0x6c12dc20, 0x1aba1: 0x6d255e20, 0x1aba2: 0x6cfd6a20, 0x1aba3: 0x6d0d6420, + 0x1aba4: 0x6c860c20, 0x1aba5: 0x6c744220, 0x1aba6: 0x6ccc5020, 0x1aba7: 0x6c2cca20, + 0x1aba8: 0x6c1e7c20, 0x1aba9: 0x6c6ff020, 0x1abaa: 0x6c6c9620, 0x1abab: 0x6c024620, + 0x1abac: 0x6c4b1020, 0x1abad: 0x6d0e9020, 0x1abae: 0x6cd80020, 0x1abaf: 0x6c862620, + 0x1abb0: 0x6c16f220, 0x1abb1: 0x6c7faa20, 0x1abb2: 0x6c864620, 0x1abb3: 0x6d0cd020, + 0x1abb4: 0x6d0df620, 0x1abb5: 0x6d25dc20, 0x1abb6: 0x6cd7b420, 0x1abb7: 0x6c455020, + 0x1abb8: 0x6c8b9c20, 0x1abb9: 0x6cc73e20, 0x1abba: 0x6cc25a20, 0x1abbb: 0x6cc25c20, + 0x1abbc: 0x6c377c20, 0x1abbd: 0x6c82b020, 0x1abbe: 0x6c315e20, 0x1abbf: 0x6cfc7420, + // Block 0x6af, offset 0x1abc0 + 0x1abc0: 0x6d3b6e20, 0x1abc1: 0x6cc9fa20, 0x1abc2: 0x6c115a20, 0x1abc3: 0x6c115e20, + 0x1abc4: 0x6c116020, 0x1abc5: 0x6c116620, 0x1abc6: 0x6c00b420, 0x1abc7: 0x6c278620, + 0x1abc8: 0x6d200420, 0x1abc9: 0x6c137220, 0x1abca: 0x6c5fb820, 0x1abcb: 0x6d206820, + 0x1abcc: 0x6cd6a020, 0x1abcd: 0x6c390020, 0x1abce: 0x6cd42620, 0x1abcf: 0x6c48e420, + 0x1abd0: 0x6c035c20, 0x1abd1: 0x6c37e220, 0x1abd2: 0x6cc91020, 0x1abd3: 0x6cd30820, + 0x1abd4: 0x6cd4a620, 0x1abd5: 0x6d3d2a20, 0x1abd6: 0x6cc23c20, 0x1abd7: 0x6cd45220, + 0x1abd8: 0x6c0b7a20, 0x1abd9: 0x6d068a20, 0x1abda: 0x6c640420, 0x1abdb: 0x6cacaa20, + 0x1abdc: 0x6cda0c20, 0x1abdd: 0x6c433820, 0x1abde: 0x6cf08020, 0x1abdf: 0x6cda0e20, + 0x1abe0: 0x6c2ebc20, 0x1abe1: 0x6cc8e220, 0x1abe2: 0x6c23bc20, 0x1abe3: 0x6c79c820, + 0x1abe4: 0x6c475020, 0x1abe5: 0x6c71ea20, 0x1abe6: 0x6c8e1a20, 0x1abe7: 0x6c488a20, + 0x1abe8: 0x6c29b420, 0x1abe9: 0x6c79d420, 0x1abea: 0x6d34ce20, 0x1abeb: 0x6c697a20, + 0x1abec: 0x6d2f9420, 0x1abed: 0x6c03e820, 0x1abee: 0x6c2f4420, 0x1abef: 0x6c785220, + 0x1abf0: 0x6cdf0e20, 0x1abf1: 0x6c1bd620, 0x1abf2: 0x6cd2a420, 0x1abf3: 0x6d200820, + 0x1abf4: 0x6cbfee20, 0x1abf5: 0x6cb34620, 0x1abf6: 0x6d12ba20, 0x1abf7: 0x6c500e20, + 0x1abf8: 0x6cd7bc20, 0x1abf9: 0x6ce08a20, 0x1abfa: 0x6c1b7220, 0x1abfb: 0x6c820a20, + 0x1abfc: 0x6c2daa20, 0x1abfd: 0x6c5e6c20, 0x1abfe: 0x6c8a5c20, 0x1abff: 0x6c529020, + // Block 0x6b0, offset 0x1ac00 + 0x1ac00: 0x6c9ebe20, 0x1ac01: 0x6d056020, 0x1ac02: 0x6c982420, 0x1ac03: 0x6c1a9020, + 0x1ac04: 0x6c447c20, 0x1ac05: 0x6d077820, 0x1ac06: 0x6d108620, 0x1ac07: 0x6d3ed820, + 0x1ac08: 0x6c50b620, 0x1ac09: 0x6c5fc220, 0x1ac0a: 0x6c2e0820, 0x1ac0b: 0x6c25b220, + 0x1ac0c: 0x6ce70c20, 0x1ac0d: 0x6c9fe620, 0x1ac0e: 0x6c545a20, 0x1ac0f: 0x6c856e20, + 0x1ac10: 0x6ce91620, 0x1ac11: 0x6cfe1620, 0x1ac12: 0x6d2bc220, 0x1ac13: 0x6cfa2a20, + 0x1ac14: 0x6d12a020, 0x1ac15: 0x6c937420, 0x1ac16: 0x6d0aca20, 0x1ac17: 0x6c96ee20, + 0x1ac18: 0x6cab7420, 0x1ac19: 0x6c5d5220, 0x1ac1a: 0x6d13c220, 0x1ac1b: 0x6c755420, + 0x1ac1c: 0x6c1e1c20, 0x1ac1d: 0x6c8c4420, 0x1ac1e: 0x6cea1620, 0x1ac1f: 0x6d1a2420, + 0x1ac20: 0x6c3a7e20, 0x1ac21: 0x6c08b820, 0x1ac22: 0x6cbdfe20, 0x1ac23: 0x6cbe0020, + 0x1ac24: 0x6c6ba820, 0x1ac25: 0x6c105c20, 0x1ac26: 0x6c3d1c20, 0x1ac27: 0x6c03ea20, + 0x1ac28: 0x6c339620, 0x1ac29: 0x6c3b0c20, 0x1ac2a: 0x6c354820, 0x1ac2b: 0x6c4dce20, + 0x1ac2c: 0x6ce62c20, 0x1ac2d: 0x6c792420, 0x1ac2e: 0x6cd74620, 0x1ac2f: 0x6cb6d020, + 0x1ac30: 0x6c52f020, 0x1ac31: 0x6d338620, 0x1ac32: 0x6d1aca20, 0x1ac33: 0x6cf3a020, + 0x1ac34: 0x6cf3a220, 0x1ac35: 0x6c178c20, 0x1ac36: 0x6ca55820, 0x1ac37: 0x6d093c20, + 0x1ac38: 0x6cf56a20, 0x1ac39: 0x6c20b420, 0x1ac3a: 0x6c309e20, 0x1ac3b: 0x6cf1c820, + 0x1ac3c: 0x6c544820, 0x1ac3d: 0x6c529220, 0x1ac3e: 0x6cf3a420, 0x1ac3f: 0x6c433220, + // Block 0x6b1, offset 0x1ac40 + 0x1ac40: 0x6d0bda20, 0x1ac41: 0x6c759420, 0x1ac42: 0x6c937620, 0x1ac43: 0x6c35d020, + 0x1ac44: 0x6c43c020, 0x1ac45: 0x6c99ce20, 0x1ac46: 0x6c270420, 0x1ac47: 0x6cb6d220, + 0x1ac48: 0x6c19b620, 0x1ac49: 0x6cf3a620, 0x1ac4a: 0x6c433420, 0x1ac4b: 0x6c3d3820, + 0x1ac4c: 0x6c698020, 0x1ac4d: 0x6c529420, 0x1ac4e: 0x6c1b7820, 0x1ac4f: 0x6cd0da20, + 0x1ac50: 0x6ca55a20, 0x1ac51: 0x6cea1820, 0x1ac52: 0x6c3f3220, 0x1ac53: 0x6d167820, + 0x1ac54: 0x6c270620, 0x1ac55: 0x6cab7620, 0x1ac56: 0x6c857c20, 0x1ac57: 0x6c077620, + 0x1ac58: 0x6d253820, 0x1ac59: 0x6c4c0e20, 0x1ac5a: 0x6cf21a20, 0x1ac5b: 0x6cba9c20, + 0x1ac5c: 0x6cf35020, 0x1ac5d: 0x6c35da20, 0x1ac5e: 0x6cd19820, 0x1ac5f: 0x6c731220, + 0x1ac60: 0x6cae4620, 0x1ac61: 0x6cf1ce20, 0x1ac62: 0x6ca55c20, 0x1ac63: 0x6c965a20, + 0x1ac64: 0x6c8e1c20, 0x1ac65: 0x6cc46020, 0x1ac66: 0x6d1e9420, 0x1ac67: 0x6c2bd420, + 0x1ac68: 0x6d385a20, 0x1ac69: 0x6cd31620, 0x1ac6a: 0x6d38fa20, 0x1ac6b: 0x6ce60e20, + 0x1ac6c: 0x6cf84420, 0x1ac6d: 0x6d16a820, 0x1ac6e: 0x6cb74220, 0x1ac6f: 0x6cb27420, + 0x1ac70: 0x6d3ef420, 0x1ac71: 0x6c46ea20, 0x1ac72: 0x6c21f420, 0x1ac73: 0x6cf07220, + 0x1ac74: 0x6d062a20, 0x1ac75: 0x6c000420, 0x1ac76: 0x6ca49220, 0x1ac77: 0x6c40be20, + 0x1ac78: 0x6cadac20, 0x1ac79: 0x6d16aa20, 0x1ac7a: 0x6cfe8220, 0x1ac7b: 0x6ccfa820, + 0x1ac7c: 0x6c549820, 0x1ac7d: 0x6ca04020, 0x1ac7e: 0x6c267a20, 0x1ac7f: 0x6cc26220, + // Block 0x6b2, offset 0x1ac80 + 0x1ac80: 0x6c71a220, 0x1ac81: 0x6c4dd420, 0x1ac82: 0x6d288820, 0x1ac83: 0x6ceaa820, + 0x1ac84: 0x6c341a20, 0x1ac85: 0x6cb3ec20, 0x1ac86: 0x6cad4620, 0x1ac87: 0x6c0cdc20, + 0x1ac88: 0x6c3de020, 0x1ac89: 0x6d0f4420, 0x1ac8a: 0x6c50be20, 0x1ac8b: 0x6d28e820, + 0x1ac8c: 0x6c50c020, 0x1ac8d: 0x6c4d0c20, 0x1ac8e: 0x6c6fd420, 0x1ac8f: 0x6d1e1220, + 0x1ac90: 0x6c40aa20, 0x1ac91: 0x6c264020, 0x1ac92: 0x6d38fc20, 0x1ac93: 0x6cec1220, + 0x1ac94: 0x6c760c20, 0x1ac95: 0x6c483220, 0x1ac96: 0x6c760e20, 0x1ac97: 0x6d42b820, + 0x1ac98: 0x6c106020, 0x1ac99: 0x6c8f6a20, 0x1ac9a: 0x6c2fda20, 0x1ac9b: 0x6ca8f420, + 0x1ac9c: 0x6cdefe20, 0x1ac9d: 0x6cd7c820, 0x1ac9e: 0x6cfc7820, 0x1ac9f: 0x6c5da420, + 0x1aca0: 0x6cb75020, 0x1aca1: 0x6c37c020, 0x1aca2: 0x6c35e420, 0x1aca3: 0x6c49da20, + 0x1aca4: 0x6d2cb220, 0x1aca5: 0x6cf85420, 0x1aca6: 0x6d148a20, 0x1aca7: 0x6c8b9220, + 0x1aca8: 0x6d3e0a20, 0x1aca9: 0x6c9ec020, 0x1acaa: 0x6c9c2e20, 0x1acab: 0x6d34fa20, + 0x1acac: 0x6d119420, 0x1acad: 0x6c5e9220, 0x1acae: 0x6d390a20, 0x1acaf: 0x6c437820, + 0x1acb0: 0x6cd5a820, 0x1acb1: 0x6d295e20, 0x1acb2: 0x6cffd620, 0x1acb3: 0x6c4d0e20, + 0x1acb4: 0x6c5a8e20, 0x1acb5: 0x6c7ad420, 0x1acb6: 0x6c580c20, 0x1acb7: 0x6ce20820, + 0x1acb8: 0x6cfb3020, 0x1acb9: 0x6c35e620, 0x1acba: 0x6d084220, 0x1acbb: 0x6d04ba20, + 0x1acbc: 0x6c4c1020, 0x1acbd: 0x6d0e4220, 0x1acbe: 0x6c81a020, 0x1acbf: 0x6d13ce20, + // Block 0x6b3, offset 0x1acc0 + 0x1acc0: 0x6c001620, 0x1acc1: 0x6cb23820, 0x1acc2: 0x6cd04a20, 0x1acc3: 0x6ce72020, + 0x1acc4: 0x6c529a20, 0x1acc5: 0x6d045c20, 0x1acc6: 0x6c341c20, 0x1acc7: 0x6cec4c20, + 0x1acc8: 0x6c4cf820, 0x1acc9: 0x6d28f820, 0x1acca: 0x6d201e20, 0x1accb: 0x6c2f3020, + 0x1accc: 0x6cac1c20, 0x1accd: 0x6cfddc20, 0x1acce: 0x6c001420, 0x1accf: 0x6c449c20, + 0x1acd0: 0x6c7b8c20, 0x1acd1: 0x6d0b4a20, 0x1acd2: 0x6c264220, 0x1acd3: 0x6cfe8a20, + 0x1acd4: 0x6c094220, 0x1acd5: 0x6c5b9620, 0x1acd6: 0x6ca77420, 0x1acd7: 0x6c570a20, + 0x1acd8: 0x6d044220, 0x1acd9: 0x6c7b1820, 0x1acda: 0x6c347620, 0x1acdb: 0x6c3b1c20, + 0x1acdc: 0x6c619c20, 0x1acdd: 0x6ca9b220, 0x1acde: 0x6ca1ba20, 0x1acdf: 0x6d1d7620, + 0x1ace0: 0x6c502420, 0x1ace1: 0x6d254e20, 0x1ace2: 0x6c905620, 0x1ace3: 0x6cb3ee20, + 0x1ace4: 0x6c984820, 0x1ace5: 0x6c438020, 0x1ace6: 0x6cab2820, 0x1ace7: 0x6c1a9a20, + 0x1ace8: 0x6ccece20, 0x1ace9: 0x6c87dc20, 0x1acea: 0x6ca2f420, 0x1aceb: 0x6d40ae20, + 0x1acec: 0x6c50ea20, 0x1aced: 0x6c7a3420, 0x1acee: 0x6cfe9220, 0x1acef: 0x6cfc9a20, + 0x1acf0: 0x6c814820, 0x1acf1: 0x6c0e5e20, 0x1acf2: 0x6d302c20, 0x1acf3: 0x6d2bd020, + 0x1acf4: 0x6c89ac20, 0x1acf5: 0x6c033620, 0x1acf6: 0x6c9ec220, 0x1acf7: 0x6c8ae220, + 0x1acf8: 0x6cdbb420, 0x1acf9: 0x6c3e2a20, 0x1acfa: 0x6c103420, 0x1acfb: 0x6c4e9020, + 0x1acfc: 0x6c524620, 0x1acfd: 0x6c44f220, 0x1acfe: 0x6cd76820, 0x1acff: 0x6c447420, + // Block 0x6b4, offset 0x1ad00 + 0x1ad00: 0x6d203620, 0x1ad01: 0x6d0e4c20, 0x1ad02: 0x6c46fc20, 0x1ad03: 0x6c477020, + 0x1ad04: 0x6c077820, 0x1ad05: 0x6c4dec20, 0x1ad06: 0x6cdd0c20, 0x1ad07: 0x6c213820, + 0x1ad08: 0x6d171c20, 0x1ad09: 0x6c001820, 0x1ad0a: 0x6c63ae20, 0x1ad0b: 0x6ce84620, + 0x1ad0c: 0x6cfb3220, 0x1ad0d: 0x6cecf620, 0x1ad0e: 0x6c85c420, 0x1ad0f: 0x6cf5b220, + 0x1ad10: 0x6ce0e820, 0x1ad11: 0x6d428a20, 0x1ad12: 0x6cc02420, 0x1ad13: 0x6c17d420, + 0x1ad14: 0x6cf3ac20, 0x1ad15: 0x6d2a6e20, 0x1ad16: 0x6d0b4c20, 0x1ad17: 0x6c30a420, + 0x1ad18: 0x6cb6e420, 0x1ad19: 0x6c2b6020, 0x1ad1a: 0x6cbe0c20, 0x1ad1b: 0x6c96ba20, + 0x1ad1c: 0x6ca0ee20, 0x1ad1d: 0x6c461220, 0x1ad1e: 0x6c30e620, 0x1ad1f: 0x6cc26c20, + 0x1ad20: 0x6c814a20, 0x1ad21: 0x6c898c20, 0x1ad22: 0x6cdd5420, 0x1ad23: 0x6d2a7020, + 0x1ad24: 0x6c58fe20, 0x1ad25: 0x6c813620, 0x1ad26: 0x6ccbd620, 0x1ad27: 0x6c5ea020, + 0x1ad28: 0x6d426820, 0x1ad29: 0x6cf28420, 0x1ad2a: 0x6c3cca20, 0x1ad2b: 0x6c6cfc20, + 0x1ad2c: 0x6c56fc20, 0x1ad2d: 0x6cb77620, 0x1ad2e: 0x6cd45c20, 0x1ad2f: 0x6ceefa20, + 0x1ad30: 0x6cd64420, 0x1ad31: 0x6c171020, 0x1ad32: 0x6c374e20, 0x1ad33: 0x6c85e620, + 0x1ad34: 0x6cbb5620, 0x1ad35: 0x6c017e20, 0x1ad36: 0x6d2ab620, 0x1ad37: 0x6d1d7820, + 0x1ad38: 0x6ca75e20, 0x1ad39: 0x6d208420, 0x1ad3a: 0x6ce4e620, 0x1ad3b: 0x6c7f4420, + 0x1ad3c: 0x6ccc4220, 0x1ad3d: 0x6cf5d820, 0x1ad3e: 0x6ceba020, 0x1ad3f: 0x6c54b820, + // Block 0x6b5, offset 0x1ad40 + 0x1ad40: 0x6c003c20, 0x1ad41: 0x6d2f6420, 0x1ad42: 0x6caa1420, 0x1ad43: 0x6c790220, + 0x1ad44: 0x6d3d4420, 0x1ad45: 0x6d3d4620, 0x1ad46: 0x6cce0220, 0x1ad47: 0x6c2c3a20, + 0x1ad48: 0x6c524a20, 0x1ad49: 0x6c8ba820, 0x1ad4a: 0x6c001020, 0x1ad4b: 0x6c112220, + 0x1ad4c: 0x6cfd6c20, 0x1ad4d: 0x6cea1e20, 0x1ad4e: 0x6cf43e20, 0x1ad4f: 0x6cf20620, + 0x1ad50: 0x6c253020, 0x1ad51: 0x6ccc4420, 0x1ad52: 0x6c477a20, 0x1ad53: 0x6cb6ec20, + 0x1ad54: 0x6cb6ee20, 0x1ad55: 0x6ce21620, 0x1ad56: 0x6c287420, 0x1ad57: 0x6c287620, + 0x1ad58: 0x6d12e620, 0x1ad59: 0x6d3f1020, 0x1ad5a: 0x6c08d820, 0x1ad5b: 0x6c253220, + 0x1ad5c: 0x6c1fc220, 0x1ad5d: 0x6c510220, 0x1ad5e: 0x6d0b5020, 0x1ad5f: 0x6cb6f420, + 0x1ad60: 0x6d304820, 0x1ad61: 0x6c39f620, 0x1ad62: 0x6c898e20, 0x1ad63: 0x6cfb5820, + 0x1ad64: 0x6cafd820, 0x1ad65: 0x6ccc4620, 0x1ad66: 0x6c7ed420, 0x1ad67: 0x6d2ab820, + 0x1ad68: 0x6d1baa20, 0x1ad69: 0x6c48ae20, 0x1ad6a: 0x6cabc220, 0x1ad6b: 0x6d30d620, + 0x1ad6c: 0x6ccb2020, 0x1ad6d: 0x6d3bc220, 0x1ad6e: 0x6ca81020, 0x1ad6f: 0x6c4cf620, + 0x1ad70: 0x6c953020, 0x1ad71: 0x6d0bf020, 0x1ad72: 0x6c2c3c20, 0x1ad73: 0x6cc2d220, + 0x1ad74: 0x6c15a420, 0x1ad75: 0x6c100620, 0x1ad76: 0x6c2fa020, 0x1ad77: 0x6c809e20, + 0x1ad78: 0x6cffe420, 0x1ad79: 0x6c710c20, 0x1ad7a: 0x6ce0f220, 0x1ad7b: 0x6c1c1a20, + 0x1ad7c: 0x6ce31e20, 0x1ad7d: 0x6c016c20, 0x1ad7e: 0x6c6f7020, 0x1ad7f: 0x6c288620, + // Block 0x6b6, offset 0x1ad80 + 0x1ad80: 0x6c761020, 0x1ad81: 0x6d1df420, 0x1ad82: 0x6cf08a20, 0x1ad83: 0x6ca3fc20, + 0x1ad84: 0x6ccd8a20, 0x1ad85: 0x6d232a20, 0x1ad86: 0x6d305820, 0x1ad87: 0x6c7e6220, + 0x1ad88: 0x6c6a0820, 0x1ad89: 0x6c53f820, 0x1ad8a: 0x6c4e5820, 0x1ad8b: 0x6c2e9820, + 0x1ad8c: 0x6d388220, 0x1ad8d: 0x6c147e20, 0x1ad8e: 0x6cec5220, 0x1ad8f: 0x6caaec20, + 0x1ad90: 0x6d230020, 0x1ad91: 0x6d19d820, 0x1ad92: 0x6d28b820, 0x1ad93: 0x6d10a220, + 0x1ad94: 0x6cab2420, 0x1ad95: 0x6c9e2020, 0x1ad96: 0x6c555220, 0x1ad97: 0x6d27e820, + 0x1ad98: 0x6c201e20, 0x1ad99: 0x6c5bbc20, 0x1ad9a: 0x6c591a20, 0x1ad9b: 0x6c591c20, + 0x1ad9c: 0x6cf7e620, 0x1ad9d: 0x6c509c20, 0x1ad9e: 0x6c5ec220, 0x1ad9f: 0x6c7cf420, + 0x1ada0: 0x6d37ee20, 0x1ada1: 0x6cef0620, 0x1ada2: 0x6ccc5220, 0x1ada3: 0x6d06cc20, + 0x1ada4: 0x6c59ba20, 0x1ada5: 0x6c344a20, 0x1ada6: 0x6ca82620, 0x1ada7: 0x6d079020, + 0x1ada8: 0x6c89b420, 0x1ada9: 0x6d232c20, 0x1adaa: 0x6cca9e20, 0x1adab: 0x6c1aae20, + 0x1adac: 0x6cbbe020, 0x1adad: 0x6d0e6a20, 0x1adae: 0x6c27dc20, 0x1adaf: 0x6cae4a20, + 0x1adb0: 0x6c116820, 0x1adb1: 0x6c83d020, 0x1adb2: 0x6d1d7a20, 0x1adb3: 0x6d2bd620, + 0x1adb4: 0x6cee7c20, 0x1adb5: 0x6c9e6c20, 0x1adb6: 0x6d1c6220, 0x1adb7: 0x6cae3220, + 0x1adb8: 0x6c103820, 0x1adb9: 0x6c7c7420, 0x1adba: 0x6cf88420, 0x1adbb: 0x6d232e20, + 0x1adbc: 0x6c6ac420, 0x1adbd: 0x6c912820, 0x1adbe: 0x6c7a9620, 0x1adbf: 0x6d2a8220, + // Block 0x6b7, offset 0x1adc0 + 0x1adc0: 0x6c56a220, 0x1adc1: 0x6ce33c20, 0x1adc2: 0x6d110420, 0x1adc3: 0x6c51ca20, + 0x1adc4: 0x6c000e20, 0x1adc5: 0x6d054220, 0x1adc6: 0x6cbabe20, 0x1adc7: 0x6ccb2e20, + 0x1adc8: 0x6d1d8a20, 0x1adc9: 0x6cdabe20, 0x1adca: 0x6c53a620, 0x1adcb: 0x6d00b220, + 0x1adcc: 0x6c00a220, 0x1adcd: 0x6cdd2420, 0x1adce: 0x6c96f020, 0x1adcf: 0x6c139620, + 0x1add0: 0x6c4d6c20, 0x1add1: 0x6c780420, 0x1add2: 0x6c264c20, 0x1add3: 0x6cca7e20, + 0x1add4: 0x6c187220, 0x1add5: 0x6cc81820, 0x1add6: 0x6cd9aa20, 0x1add7: 0x6cebdc20, + 0x1add8: 0x6c5ee420, 0x1add9: 0x6cad1c20, 0x1adda: 0x6cf36e20, 0x1addb: 0x6cba1020, + 0x1addc: 0x6cd39820, 0x1addd: 0x6c440020, 0x1adde: 0x6d3e3220, 0x1addf: 0x6c6a0a20, + 0x1ade0: 0x6c960c20, 0x1ade1: 0x6cf22820, 0x1ade2: 0x6cec3420, 0x1ade3: 0x6cd8c820, + 0x1ade4: 0x6c1ab420, 0x1ade5: 0x6c4fca20, 0x1ade6: 0x6cddd820, + 0x1ade8: 0x6c4d1620, 0x1ade9: 0x6cdd7020, 0x1adea: 0x6cbd7e20, 0x1adeb: 0x6ca83820, + 0x1adec: 0x6c50a020, 0x1aded: 0x6d347020, 0x1adee: 0x6cc9e220, 0x1adef: 0x6ca2c620, + 0x1adf0: 0x6c448a20, 0x1adf1: 0x6ca2e420, 0x1adf2: 0x6c2cb820, 0x1adf3: 0x6c002c20, + 0x1adf4: 0x6cbb6220, 0x1adf5: 0x6ce6f620, 0x1adf6: 0x6c09c220, 0x1adf7: 0x6c024a20, + 0x1adf8: 0x6c024c20, 0x1adf9: 0x6c880c20, 0x1adfa: 0x6d417420, 0x1adfb: 0x6d300020, + 0x1adfc: 0x6ca12420, 0x1adfd: 0x6cda4620, 0x1adfe: 0x6cda2020, 0x1adff: 0x6ce06820, + // Block 0x6b8, offset 0x1ae00 + 0x1ae00: 0x6c2b7820, 0x1ae01: 0x6cb50820, 0x1ae02: 0x6c69aa20, 0x1ae03: 0x6c1cd020, + 0x1ae04: 0x6c685a20, 0x1ae05: 0x6c765620, 0x1ae06: 0x6ce0a020, 0x1ae07: 0x6cccf820, + 0x1ae08: 0x6c127820, 0x1ae09: 0x6c637620, 0x1ae0a: 0x6c004620, 0x1ae0b: 0x6cfee620, + 0x1ae0c: 0x6cb1b420, 0x1ae0d: 0x6c912a20, 0x1ae0e: 0x6c40c020, 0x1ae0f: 0x6c47aa20, + 0x1ae10: 0x6cfee820, 0x1ae11: 0x6c54e220, 0x1ae12: 0x6c5bf220, 0x1ae13: 0x6c4c2c20, + 0x1ae14: 0x6cab8220, 0x1ae15: 0x6cfabc20, 0x1ae16: 0x6d2ad820, 0x1ae17: 0x6c16b420, + 0x1ae18: 0x6d05b820, 0x1ae19: 0x6cb32e20, 0x1ae1a: 0x6c2a5c20, 0x1ae1b: 0x6c96f420, + 0x1ae1c: 0x6c96ca20, 0x1ae1d: 0x6c557820, 0x1ae1e: 0x6c836c20, 0x1ae1f: 0x6c317220, + 0x1ae20: 0x6c40c220, 0x1ae21: 0x6ce0c420, 0x1ae22: 0x6d12ae20, 0x1ae23: 0x6c07fe20, + 0x1ae24: 0x6d1bcc20, 0x1ae25: 0x6cc9f020, 0x1ae26: 0x6c69ac20, 0x1ae27: 0x6c9d6420, + 0x1ae28: 0x6cfffc20, 0x1ae29: 0x6c571220, 0x1ae2a: 0x6c971620, 0x1ae2b: 0x6cc48020, + 0x1ae2c: 0x6c1fc420, 0x1ae2d: 0x6cae7e20, 0x1ae2e: 0x6c816420, 0x1ae2f: 0x6d000420, + 0x1ae30: 0x6c5f1020, 0x1ae31: 0x6d3a7c20, 0x1ae32: 0x6c177020, 0x1ae33: 0x6c7d0820, + 0x1ae34: 0x6d419820, 0x1ae35: 0x6cfefe20, 0x1ae36: 0x6cd80c20, 0x1ae37: 0x6c4fdc20, + 0x1ae38: 0x6c3f7e20, 0x1ae39: 0x6c8a0020, 0x1ae3a: 0x6cbbe820, 0x1ae3b: 0x6cf68e20, + 0x1ae3c: 0x6c1f6a20, 0x1ae3d: 0x6c15d020, 0x1ae3e: 0x6c28a420, 0x1ae3f: 0x6c521e20, + // Block 0x6b9, offset 0x1ae40 + 0x1ae40: 0x6d0aa020, 0x1ae41: 0x6c35b620, 0x1ae42: 0x6d420a20, 0x1ae43: 0x6c385420, + 0x1ae44: 0x6c1acc20, 0x1ae45: 0x6c5ae220, 0x1ae46: 0x6d297220, 0x1ae47: 0x6c207420, + 0x1ae48: 0x6c245220, 0x1ae49: 0x6c289c20, 0x1ae4a: 0x6d23ba20, 0x1ae4b: 0x6cea2420, + 0x1ae4c: 0x6c134a20, 0x1ae4d: 0x6c69b620, 0x1ae4e: 0x6d126220, 0x1ae4f: 0x6cf69020, + 0x1ae50: 0x6cb7be20, 0x1ae51: 0x6c4fd020, 0x1ae52: 0x6c882e20, 0x1ae53: 0x6d05ca20, + 0x1ae54: 0x6c2aa420, 0x1ae55: 0x6c5ae820, 0x1ae56: 0x6d1a8c20, 0x1ae57: 0x6cb40c20, + 0x1ae58: 0x6c73b220, 0x1ae59: 0x6cbd9220, 0x1ae5a: 0x6d0a2e20, 0x1ae5b: 0x6ca85a20, + 0x1ae5c: 0x6c912c20, 0x1ae5d: 0x6cd80e20, 0x1ae5e: 0x6d0dd420, 0x1ae5f: 0x6d1d4820, + 0x1ae60: 0x6c265e20, 0x1ae61: 0x6d2d9420, 0x1ae62: 0x6cab2620, 0x1ae63: 0x6d394e20, + 0x1ae64: 0x6c6d4820, 0x1ae65: 0x6ca9c420, 0x1ae66: 0x6c5c2620, 0x1ae67: 0x6d01f420, + 0x1ae68: 0x6cb7ce20, 0x1ae69: 0x6c36a620, 0x1ae6a: 0x6d2a8e20, 0x1ae6b: 0x6d140e20, + 0x1ae6c: 0x6cd3d620, 0x1ae6d: 0x6c69c220, 0x1ae6e: 0x6d263020, 0x1ae6f: 0x6c003420, + 0x1ae70: 0x6d1dac20, 0x1ae71: 0x6c74b420, 0x1ae72: 0x6c7b3820, 0x1ae73: 0x6d228a20, + 0x1ae74: 0x6cae3420, 0x1ae75: 0x6c2a2820, 0x1ae76: 0x6c40c820, 0x1ae77: 0x6c528e20, + 0x1ae78: 0x6c33aa20, 0x1ae79: 0x6c290220, 0x1ae7a: 0x6d036420, 0x1ae7b: 0x6cc9cc20, + 0x1ae7c: 0x6caf8e20, 0x1ae7d: 0x6cb07220, 0x1ae7e: 0x6d1a0e20, 0x1ae7f: 0x6d41a020, + // Block 0x6ba, offset 0x1ae80 + 0x1ae80: 0x6ca92020, 0x1ae81: 0x6c2b9620, 0x1ae82: 0x6c807820, 0x1ae83: 0x6cddfa20, + 0x1ae84: 0x6c5d5e20, 0x1ae85: 0x6cc7cc20, 0x1ae86: 0x6c4fac20, 0x1ae87: 0x6cfa4820, + 0x1ae88: 0x6d135220, 0x1ae89: 0x6c343820, 0x1ae8a: 0x6cb0be20, 0x1ae8b: 0x6c1de020, + 0x1ae8c: 0x6c629020, 0x1ae8d: 0x6c6d5620, 0x1ae8e: 0x6c4fec20, 0x1ae8f: 0x6ce42820, + 0x1ae90: 0x6c16ca20, 0x1ae91: 0x6d0ac220, 0x1ae92: 0x6c99c620, 0x1ae93: 0x6c10d820, + 0x1ae94: 0x6ce43820, 0x1ae95: 0x6c91e420, 0x1ae96: 0x6c5c6420, 0x1ae97: 0x6c0f8820, + 0x1ae98: 0x6d1eba20, 0x1ae99: 0x6ca88620, 0x1ae9a: 0x6d1a9e20, 0x1ae9b: 0x6c56d620, + 0x1ae9c: 0x6c99ca20, 0x1ae9d: 0x6c52d220, 0x1ae9e: 0x6d30a820, 0x1ae9f: 0x6c846c20, + 0x1aea0: 0x6c8eb220, 0x1aea1: 0x6c4d8e20, 0x1aea2: 0x6ca45620, 0x1aea3: 0x6cff2e20, + 0x1aea4: 0x6ca08220, 0x1aea5: 0x6d0ee620, 0x1aea6: 0x6c86e820, 0x1aea7: 0x6c916820, + 0x1aea8: 0x6c8fba20, 0x1aea9: 0x6ca08c20, 0x1aeaa: 0x6c28dc20, 0x1aeab: 0x6c193a20, + 0x1aeac: 0x6cb21e20, 0x1aead: 0x6cb07c20, 0x1aeae: 0x6cfe5c20, 0x1aeaf: 0x6c5e2420, + 0x1aeb0: 0x6ca08e20, 0x1aeb1: 0x6cf91e20, 0x1aeb2: 0x6c34c220, 0x1aeb3: 0x6c7ab220, + 0x1aeb4: 0x6d0ce820, 0x1aeb5: 0x6c154e20, 0x1aeb6: 0x6d1c1820, 0x1aeb7: 0x6cc50420, + 0x1aeb8: 0x6c2d3020, 0x1aeb9: 0x6c7ede20, 0x1aeba: 0x6cded620, 0x1aebb: 0x6cff4c20, + 0x1aebc: 0x6c74fc20, 0x1aebd: 0x6c21e420, 0x1aebe: 0x6c583c20, 0x1aebf: 0x6c5e3c20, + // Block 0x6bb, offset 0x1aec0 + 0x1aec0: 0x6d3bfe20, 0x1aec1: 0x6ca8aa20, 0x1aec2: 0x6cff4e20, 0x1aec3: 0x6c10ee20, + 0x1aec4: 0x6c84a420, 0x1aec5: 0x6c161620, 0x1aec6: 0x6c14a820, 0x1aec7: 0x6c876020, + 0x1aec8: 0x6d194020, 0x1aec9: 0x6c953620, 0x1aeca: 0x6ca45e20, 0x1aecb: 0x6d28dc20, + 0x1aecc: 0x6cda6e20, 0x1aecd: 0x6cf82420, 0x1aece: 0x6d2b7e20, 0x1aecf: 0x6c654e20, + 0x1aed0: 0x6d28de20, 0x1aed1: 0x6d3a8e20, 0x1aed2: 0x6c800620, 0x1aed3: 0x6ca8c220, + 0x1aed4: 0x6ca45220, 0x1aed5: 0x6c806220, 0x1aed6: 0x6c8f6420, 0x1aed7: 0x6ceed620, + 0x1aed8: 0x6c5b1220, 0x1aed9: 0x6d199c20, 0x1aeda: 0x6cbff020, 0x1aedb: 0x6cd87420, + 0x1aedc: 0x6ca8e220, 0x1aedd: 0x6c656220, 0x1aede: 0x6c5b1420, 0x1aedf: 0x6d031420, + 0x1aee0: 0x6d199e20, 0x1aee1: 0x6ca3dc20, 0x1aee2: 0x6ce94420, 0x1aee3: 0x6ce94620, + 0x1aee4: 0x6c33d620, 0x1aee5: 0x6c777c20, 0x1aee6: 0x6d24c620, 0x1aee7: 0x6c6ef420, + 0x1aee8: 0x6cb0ec20, 0x1aee9: 0x6d277c20, 0x1aeea: 0x6c22f620, 0x1aeeb: 0x6c551c20, + 0x1aeec: 0x6c5b1820, 0x1aeed: 0x6d253a20, 0x1aeee: 0x6c354a20, 0x1aeef: 0x6c4c5620, + 0x1aef0: 0x6c7dca20, 0x1aef1: 0x6c22f820, 0x1aef2: 0x6ce6ee20, 0x1aef3: 0x6ce88420, + 0x1aef4: 0x6ceedc20, 0x1aef5: 0x6c94d820, 0x1aef6: 0x6c4c5a20, 0x1aef7: 0x6cc43020, + 0x1aef8: 0x6cc64020, 0x1aef9: 0x6c8c9e20, 0x1aefa: 0x6c47fe20, 0x1aefb: 0x6c4c5c20, + 0x1aefc: 0x6cdf0020, 0x1aefd: 0x6c4c5e20, 0x1aefe: 0x6ce88820, 0x1aeff: 0x6d202020, + // Block 0x6bc, offset 0x1af00 + 0x1af00: 0x6c4c6220, 0x1af01: 0x6d1a4220, 0x1af02: 0x6c5d2020, 0x1af03: 0x6cb48620, + 0x1af04: 0x6d223820, 0x1af05: 0x6c4dee20, 0x1af06: 0x6d255020, 0x1af07: 0x6c94ea20, + 0x1af08: 0x6cc29620, 0x1af09: 0x6d224820, 0x1af0a: 0x6cbe3e20, 0x1af0b: 0x6c4c6620, + 0x1af0c: 0x6c1ffa20, 0x1af0d: 0x6cef0820, 0x1af0e: 0x6d256020, 0x1af0f: 0x6cc29a20, + 0x1af10: 0x6c7a4020, 0x1af11: 0x6c400a20, 0x1af12: 0x6d257420, 0x1af13: 0x6d257620, + 0x1af14: 0x6d0bbc20, 0x1af15: 0x6ce8b620, 0x1af16: 0x6ce8d420, 0x1af17: 0x6ce8d620, + 0x1af18: 0x6ce95020, 0x1af19: 0x6c94b820, 0x1af1a: 0x6c5c0c20, 0x1af1b: 0x6d188220, + 0x1af1c: 0x6c589220, 0x1af1d: 0x6c944a20, 0x1af1e: 0x6c946e20, 0x1af1f: 0x6ce91020, + 0x1af20: 0x6d0b6620, 0x1af21: 0x6ce91220, 0x1af22: 0x6ce6aa20, 0x1af23: 0x6cd15220, + 0x1af24: 0x6cb48020, 0x1af25: 0x6c920c20, 0x1af26: 0x6c7b5020, 0x1af27: 0x6d0ac620, + 0x1af28: 0x6d292820, 0x1af29: 0x6ceeda20, 0x1af2a: 0x6c436620, 0x1af2b: 0x6d22be20, + 0x1af2c: 0x6cf34020, 0x1af2d: 0x6c4a3420, 0x1af2e: 0x6cb04820, 0x1af2f: 0x6d145020, + 0x1af30: 0x6c2a8a20, 0x1af31: 0x6cb89220, 0x1af32: 0x6cb89420, 0x1af33: 0x6d320e20, + 0x1af34: 0x6d3d1a20, 0x1af35: 0x6c295220, 0x1af36: 0x6cb83e20, 0x1af37: 0x6cfa6220, + 0x1af38: 0x6ccdf620, 0x1af39: 0x6c7bd820, 0x1af3a: 0x6c16e220, 0x1af3b: 0x6cb56e20, + 0x1af3c: 0x6ca7f220, 0x1af3d: 0x6ca0c220, 0x1af3e: 0x6c5e7620, 0x1af3f: 0x6c639820, + // Block 0x6bd, offset 0x1af40 + 0x1af40: 0x6d34dc20, 0x1af41: 0x6d34de20, 0x1af42: 0x6c04b420, 0x1af43: 0x6d098e20, + 0x1af44: 0x6d167a20, 0x1af45: 0x6cbdc620, 0x1af46: 0x6c99d020, 0x1af47: 0x6c755620, + 0x1af48: 0x6cc6f220, 0x1af49: 0x6cea3c20, 0x1af4a: 0x6c39e820, 0x1af4b: 0x6c07a420, + 0x1af4c: 0x6c07a620, 0x1af4d: 0x6cdf8820, 0x1af4e: 0x6c76be20, 0x1af4f: 0x6c580a20, + 0x1af50: 0x6d427620, 0x1af51: 0x6c792620, 0x1af52: 0x6c091820, 0x1af53: 0x6c6e0a20, + 0x1af54: 0x6c2c1220, 0x1af55: 0x6c6d8620, 0x1af56: 0x6c617c20, 0x1af57: 0x6c7b0c20, + 0x1af58: 0x6c2bcc20, 0x1af59: 0x6c6d8820, 0x1af5a: 0x6c646220, 0x1af5b: 0x6cdfca20, + 0x1af5c: 0x6c857e20, 0x1af5d: 0x6c03a620, 0x1af5e: 0x6cf4a420, 0x1af5f: 0x6c3b5020, + 0x1af60: 0x6d3c7a20, 0x1af61: 0x6cb2f620, 0x1af62: 0x6c04e220, 0x1af63: 0x6ce0bc20, + 0x1af64: 0x6c7d4a20, 0x1af65: 0x6cc0da20, 0x1af66: 0x6ce05220, 0x1af67: 0x6d339420, + 0x1af68: 0x6ceaea20, 0x1af69: 0x6c417020, 0x1af6a: 0x6cb27620, 0x1af6b: 0x6c2d3a20, + 0x1af6c: 0x6c48a820, 0x1af6d: 0x6ca5ba20, 0x1af6e: 0x6cdf1420, 0x1af6f: 0x6caf3020, + 0x1af70: 0x6c6ed620, 0x1af71: 0x6d100020, 0x1af72: 0x6c3d0a20, 0x1af73: 0x6c02c420, + 0x1af74: 0x6c921820, 0x1af75: 0x6cbf9c20, 0x1af76: 0x6ca22620, 0x1af77: 0x6c785420, + 0x1af78: 0x6c469220, 0x1af79: 0x6d094020, 0x1af7a: 0x6c036220, 0x1af7b: 0x6c1b0420, + 0x1af7c: 0x6c180020, 0x1af7d: 0x6c8ca020, 0x1af7e: 0x6d3aaa20, 0x1af7f: 0x6c3fb020, + // Block 0x6be, offset 0x1af80 + 0x1af80: 0x6c549a20, 0x1af81: 0x6d358420, 0x1af82: 0x6c20be20, 0x1af83: 0x6c7e3a20, + 0x1af84: 0x6c902e20, 0x1af85: 0x6c903020, 0x1af86: 0x6c913820, 0x1af87: 0x6c02c620, + 0x1af88: 0x6c272e20, 0x1af89: 0x6cad4820, 0x1af8a: 0x6c9fe220, 0x1af8b: 0x6d03ca20, + 0x1af8c: 0x6c305620, 0x1af8d: 0x6c619e20, 0x1af8e: 0x6c51ba20, 0x1af8f: 0x6c93ce20, + 0x1af90: 0x6c222820, 0x1af91: 0x6c1b8220, 0x1af92: 0x6c82ba20, 0x1af93: 0x6c40e420, + 0x1af94: 0x6d19aa20, 0x1af95: 0x6c546220, 0x1af96: 0x6c32f420, 0x1af97: 0x6d2f9c20, + 0x1af98: 0x6c3e0820, 0x1af99: 0x6c49dc20, 0x1af9a: 0x6d10d420, 0x1af9b: 0x6c347820, + 0x1af9c: 0x6c347a20, 0x1af9d: 0x6c4ad020, 0x1af9e: 0x6c13ca20, 0x1af9f: 0x6d0f8e20, + 0x1afa0: 0x6d1a3820, 0x1afa1: 0x6c37fe20, 0x1afa2: 0x6c469a20, 0x1afa3: 0x6d254420, + 0x1afa4: 0x6c2e6a20, 0x1afa5: 0x6d007620, 0x1afa6: 0x6c78fa20, 0x1afa7: 0x6cce3220, + 0x1afa8: 0x6cd43e20, 0x1afa9: 0x6c35ec20, 0x1afaa: 0x6c0e4020, 0x1afab: 0x6c2d4020, + 0x1afac: 0x6c530c20, 0x1afad: 0x6d0ad820, 0x1afae: 0x6c7ad620, 0x1afaf: 0x6c26f820, + 0x1afb0: 0x6c762020, 0x1afb1: 0x6c295a20, 0x1afb2: 0x6c764a20, 0x1afb3: 0x6c4f9e20, + 0x1afb4: 0x6ca4dc20, 0x1afb5: 0x6c017820, 0x1afb6: 0x6d036c20, 0x1afb7: 0x6cfc9c20, + 0x1afb8: 0x6d260820, 0x1afb9: 0x6c051a20, 0x1afba: 0x6c3d5a20, 0x1afbb: 0x6c03ae20, + 0x1afbc: 0x6d172020, 0x1afbd: 0x6d1b4220, 0x1afbe: 0x6c4e9220, 0x1afbf: 0x6d06a020, + // Block 0x6bf, offset 0x1afc0 + 0x1afc0: 0x6c20c420, 0x1afc1: 0x6cbd6220, 0x1afc2: 0x6c44f420, 0x1afc3: 0x6c001c20, + 0x1afc4: 0x6c081620, 0x1afc5: 0x6c39aa20, 0x1afc6: 0x6cc3a820, 0x1afc7: 0x6d1e2020, + 0x1afc8: 0x6c75a020, 0x1afc9: 0x6c633e20, 0x1afca: 0x6c2c2a20, 0x1afcb: 0x6c96fa20, + 0x1afcc: 0x6c811420, 0x1afcd: 0x6c731820, 0x1afce: 0x6c19c620, 0x1afcf: 0x6ccccc20, + 0x1afd0: 0x6c6c3c20, 0x1afd1: 0x6d303020, 0x1afd2: 0x6c8ae420, 0x1afd3: 0x6c8ae620, + 0x1afd4: 0x6c107e20, 0x1afd5: 0x6c19d820, 0x1afd6: 0x6c57d820, 0x1afd7: 0x6c108020, + 0x1afd8: 0x6cd25a20, 0x1afd9: 0x6d099420, 0x1afda: 0x6c4c1820, 0x1afdb: 0x6c6eda20, + 0x1afdc: 0x6d12a820, 0x1afdd: 0x6ca76020, 0x1afde: 0x6c2bee20, 0x1afdf: 0x6d230420, + 0x1afe0: 0x6c109220, 0x1afe1: 0x6d0ae820, 0x1afe2: 0x6cc2d420, 0x1afe3: 0x6cdc3420, + 0x1afe4: 0x6cafdc20, 0x1afe5: 0x6cbe4020, 0x1afe6: 0x6cecfe20, 0x1afe7: 0x6c723820, + 0x1afe8: 0x6c951420, 0x1afe9: 0x6d329220, 0x1afea: 0x6c796e20, 0x1afeb: 0x6c1d3820, + 0x1afec: 0x6c2fee20, 0x1afed: 0x6c275a20, 0x1afee: 0x6ce09220, 0x1afef: 0x6c018020, + 0x1aff0: 0x6c114220, 0x1aff1: 0x6c1f2e20, 0x1aff2: 0x6c081820, 0x1aff3: 0x6c76ce20, + 0x1aff4: 0x6d344c20, 0x1aff5: 0x6c348420, 0x1aff6: 0x6d175220, 0x1aff7: 0x6d344e20, + 0x1aff8: 0x6d175420, 0x1aff9: 0x6cadd020, 0x1affa: 0x6c5eb420, 0x1affb: 0x6d3cdc20, + 0x1affc: 0x6cb5b820, 0x1affd: 0x6ccaee20, 0x1affe: 0x6c723a20, 0x1afff: 0x6ca5d420, + // Block 0x6c0, offset 0x1b000 + 0x1b000: 0x6c7a3a20, 0x1b001: 0x6c78a020, 0x1b002: 0x6ce0ec20, 0x1b003: 0x6c7d5020, + 0x1b004: 0x6ca69620, 0x1b005: 0x6c648220, 0x1b006: 0x6c32fa20, 0x1b007: 0x6c6c8e20, + 0x1b008: 0x6c427620, 0x1b009: 0x6d230620, 0x1b00a: 0x6c360c20, 0x1b00b: 0x6cae9820, + 0x1b00c: 0x6c480820, 0x1b00d: 0x6ce92220, 0x1b00e: 0x6c839420, 0x1b00f: 0x6c39ea20, + 0x1b010: 0x6d0b2420, 0x1b011: 0x6cba4c20, 0x1b012: 0x6c7ddc20, 0x1b013: 0x6c01b620, + 0x1b014: 0x6cd0ca20, 0x1b015: 0x6c34e620, 0x1b016: 0x6ca4f220, 0x1b017: 0x6ce85c20, + 0x1b018: 0x6c19fa20, 0x1b019: 0x6d19da20, 0x1b01a: 0x6c5cea20, 0x1b01b: 0x6c099420, + 0x1b01c: 0x6c88f220, 0x1b01d: 0x6c4c1c20, 0x1b01e: 0x6c2e9a20, 0x1b01f: 0x6d3bc420, + 0x1b020: 0x6c547020, 0x1b021: 0x6c05fa20, 0x1b022: 0x6c05fc20, 0x1b023: 0x6d211420, + 0x1b024: 0x6c2b2e20, 0x1b025: 0x6c98e220, 0x1b026: 0x6c6a0c20, 0x1b027: 0x6cc83c20, + 0x1b028: 0x6d12ec20, 0x1b029: 0x6c452e20, 0x1b02a: 0x6c76aa20, 0x1b02b: 0x6d3f8020, + 0x1b02c: 0x6d211620, 0x1b02d: 0x6c59bc20, 0x1b02e: 0x6c362c20, 0x1b02f: 0x6d10f620, + 0x1b030: 0x6d0e6c20, 0x1b031: 0x6c064c20, 0x1b032: 0x6c223620, 0x1b033: 0x6c99f620, + 0x1b034: 0x6c16ec20, 0x1b035: 0x6c321420, 0x1b036: 0x6ceb1c20, 0x1b037: 0x6d1b5020, + 0x1b038: 0x6c3ca620, 0x1b039: 0x6d382820, 0x1b03a: 0x6c6be820, 0x1b03b: 0x6c6c4420, + 0x1b03c: 0x6c528820, 0x1b03d: 0x6c428620, 0x1b03e: 0x6c210620, 0x1b03f: 0x6c658e20, + // Block 0x6c1, offset 0x1b040 + 0x1b040: 0x6cb2ec20, 0x1b041: 0x6c836a20, 0x1b042: 0x6cfe3220, 0x1b043: 0x6c599220, + 0x1b044: 0x6c837620, 0x1b045: 0x6c32c020, 0x1b046: 0x6cec8e20, 0x1b047: 0x6d079220, + 0x1b048: 0x6c61fe20, 0x1b049: 0x6c604a20, 0x1b04a: 0x6c7b2420, 0x1b04b: 0x6d1c7c20, + 0x1b04c: 0x6cddee20, 0x1b04d: 0x6c1a1620, 0x1b04e: 0x6d1e4220, 0x1b04f: 0x6c765c20, + 0x1b050: 0x6cdac020, 0x1b051: 0x6cdac220, 0x1b052: 0x6cd26e20, 0x1b053: 0x6c9d4e20, + 0x1b054: 0x6cde0820, 0x1b055: 0x6cf24e20, 0x1b056: 0x6c1a1820, 0x1b057: 0x6ce8b820, + 0x1b058: 0x6ce0fe20, 0x1b059: 0x6cc3c820, 0x1b05a: 0x6d37f420, 0x1b05b: 0x6c862a20, + 0x1b05c: 0x6d37f620, 0x1b05d: 0x6c057620, 0x1b05e: 0x6cc9c620, 0x1b05f: 0x6d2a0620, + 0x1b060: 0x6c330020, 0x1b061: 0x6ce4a820, 0x1b062: 0x6cf4f820, 0x1b063: 0x6d335020, + 0x1b064: 0x6d099c20, 0x1b065: 0x6c440420, 0x1b066: 0x6d324020, 0x1b067: 0x6c00a420, + 0x1b068: 0x6c459020, 0x1b069: 0x6d0ca620, 0x1b06a: 0x6c76da20, 0x1b06b: 0x6ce4aa20, + 0x1b06c: 0x6d257820, 0x1b06d: 0x6cf14e20, 0x1b06e: 0x6d01be20, 0x1b06f: 0x6c8f3220, + 0x1b070: 0x6c4d8c20, 0x1b071: 0x6c810220, 0x1b072: 0x6c16b620, 0x1b073: 0x6caea820, + 0x1b074: 0x6c084820, 0x1b075: 0x6c18da20, 0x1b076: 0x6c927820, 0x1b077: 0x6c91c620, + 0x1b078: 0x6cab3c20, 0x1b079: 0x6cba6220, 0x1b07a: 0x6c9a1620, 0x1b07b: 0x6ca12620, + 0x1b07c: 0x6d3b8220, 0x1b07d: 0x6cd6d420, 0x1b07e: 0x6cd52e20, 0x1b07f: 0x6c90e820, + // Block 0x6c2, offset 0x1b080 + 0x1b080: 0x6c1b4620, 0x1b081: 0x6c97e220, 0x1b082: 0x6c0c0620, 0x1b083: 0x6c6e9420, + 0x1b084: 0x6c130020, 0x1b085: 0x6cd5ee20, 0x1b086: 0x6d367a20, 0x1b087: 0x6d2ec020, + 0x1b088: 0x6c770a20, 0x1b089: 0x6d1d9620, 0x1b08a: 0x6c2d6e20, 0x1b08b: 0x6c190820, + 0x1b08c: 0x6d347c20, 0x1b08d: 0x6cf8ac20, 0x1b08e: 0x6c4c2420, 0x1b08f: 0x6cbb4620, + 0x1b090: 0x6c6d2220, 0x1b091: 0x6c2c7a20, 0x1b092: 0x6cce0a20, 0x1b093: 0x6ca29020, + 0x1b094: 0x6c24d220, 0x1b095: 0x6d0e9220, 0x1b096: 0x6cde1020, 0x1b097: 0x6d2b8220, + 0x1b098: 0x6cb9ac20, 0x1b099: 0x6cbb1020, 0x1b09a: 0x6c895e20, 0x1b09b: 0x6cf14220, + 0x1b09c: 0x6d3c9a20, 0x1b09d: 0x6cbb9820, 0x1b09e: 0x6d2b8620, 0x1b09f: 0x6d05ba20, + 0x1b0a0: 0x6ccd9a20, 0x1b0a1: 0x6ccd9c20, 0x1b0a2: 0x6c038e20, 0x1b0a3: 0x6cb44820, + 0x1b0a4: 0x6c7b3220, 0x1b0a5: 0x6c303220, 0x1b0a6: 0x6c38b020, 0x1b0a7: 0x6cc3e820, + 0x1b0a8: 0x6ca16020, 0x1b0a9: 0x6c33a020, 0x1b0aa: 0x6c33a220, 0x1b0ab: 0x6d41ea20, + 0x1b0ac: 0x6c2c7c20, 0x1b0ad: 0x6cd17220, 0x1b0ae: 0x6c350820, 0x1b0af: 0x6c350e20, + 0x1b0b0: 0x6cdffc20, 0x1b0b1: 0x6c2ae020, 0x1b0b2: 0x6ca21820, 0x1b0b3: 0x6c3b8420, + 0x1b0b4: 0x6c59d820, 0x1b0b5: 0x6cdffe20, 0x1b0b6: 0x6c26fe20, 0x1b0b7: 0x6d12fa20, + 0x1b0b8: 0x6d3b5220, 0x1b0b9: 0x6c673a20, 0x1b0ba: 0x6c02e420, 0x1b0bb: 0x6cbb1e20, + 0x1b0bc: 0x6c5f2c20, 0x1b0bd: 0x6cbba220, 0x1b0be: 0x6c790a20, 0x1b0bf: 0x6d188420, + // Block 0x6c3, offset 0x1b0c0 + 0x1b0c0: 0x6cb01a20, 0x1b0c1: 0x6c0a4420, 0x1b0c2: 0x6c2d7c20, 0x1b0c3: 0x6c677820, + 0x1b0c4: 0x6d12b420, 0x1b0c5: 0x6d1dae20, 0x1b0c6: 0x6d091620, 0x1b0c7: 0x6ce00c20, + 0x1b0c8: 0x6c803820, 0x1b0c9: 0x6c728820, 0x1b0ca: 0x6c581420, 0x1b0cb: 0x6c298e20, + 0x1b0cc: 0x6cc50220, 0x1b0cd: 0x6cba8020, 0x1b0ce: 0x6d09ae20, 0x1b0cf: 0x6cfd1820, + 0x1b0d0: 0x6cf81620, 0x1b0d1: 0x6c51ee20, 0x1b0d2: 0x6c00c620, 0x1b0d3: 0x6d0b0020, + 0x1b0d4: 0x6c29ee20, 0x1b0d5: 0x6c4fee20, 0x1b0d6: 0x6cc84a20, 0x1b0d7: 0x6c6d8220, + 0x1b0d8: 0x6c82e220, 0x1b0d9: 0x6c7c0620, 0x1b0da: 0x6c916a20, 0x1b0db: 0x6d0cea20, + 0x1b0dc: 0x6ce03020, 0x1b0dd: 0x6cf03820, 0x1b0de: 0x6c581820, 0x1b0df: 0x6c903e20, + 0x1b0e0: 0x6c904020, 0x1b0e1: 0x6cc8ec20, 0x1b0e2: 0x6c86ea20, 0x1b0e3: 0x6c8bfe20, + 0x1b0e4: 0x6cc50620, 0x1b0e5: 0x6c165c20, 0x1b0e6: 0x6d09c420, 0x1b0e7: 0x6d0d0c20, + 0x1b0e8: 0x6c829620, 0x1b0e9: 0x6c03da20, 0x1b0ea: 0x6ceca620, 0x1b0eb: 0x6cd2e220, + 0x1b0ec: 0x6cc56020, 0x1b0ed: 0x6cca6220, 0x1b0ee: 0x6d3c2c20, 0x1b0ef: 0x6d3c2e20, + 0x1b0f0: 0x6cd0dc20, 0x1b0f1: 0x6d13c620, 0x1b0f2: 0x6c972420, 0x1b0f3: 0x6c784a20, + 0x1b0f4: 0x6d3aba20, 0x1b0f5: 0x6d3c3620, 0x1b0f6: 0x6c553020, 0x1b0f7: 0x6c554020, + 0x1b0f8: 0x6c7da620, 0x1b0f9: 0x6d13ee20, 0x1b0fa: 0x6c555420, 0x1b0fb: 0x6d06d020, + 0x1b0fc: 0x6c7db220, 0x1b0fd: 0x6cd46e20, 0x1b0fe: 0x6c989420, 0x1b0ff: 0x6d41ec20, + // Block 0x6c4, offset 0x1b100 + 0x1b100: 0x6cd47020, 0x1b101: 0x6d141220, 0x1b102: 0x6d34ca20, 0x1b103: 0x6c474e20, + 0x1b104: 0x6c1f0220, 0x1b105: 0x6c67d220, 0x1b106: 0x6c3c9c20, 0x1b107: 0x6c06e020, + 0x1b108: 0x6d2d5820, 0x1b109: 0x6c0b8420, 0x1b10a: 0x6cdba620, 0x1b10b: 0x6cc42e20, + 0x1b10c: 0x6c8ca220, 0x1b10d: 0x6c3fc020, 0x1b10e: 0x6c261420, 0x1b10f: 0x6cfa3220, + 0x1b110: 0x6d049a20, 0x1b111: 0x6d02a020, 0x1b112: 0x6ca4cc20, 0x1b113: 0x6cfa5a20, + 0x1b114: 0x6c7cb420, 0x1b115: 0x6cf55a20, 0x1b116: 0x6cec6820, 0x1b117: 0x6d25f820, + 0x1b118: 0x6c992020, 0x1b119: 0x6cda7c20, 0x1b11a: 0x6c341620, 0x1b11b: 0x6c341820, + 0x1b11c: 0x6d12ca20, 0x1b11d: 0x6cbe6c20, 0x1b11e: 0x6cec6e20, 0x1b11f: 0x6c46a220, + 0x1b120: 0x6c46a420, 0x1b121: 0x6cb78820, 0x1b122: 0x6c9c0420, 0x1b123: 0x6c9c0820, + 0x1b124: 0x6d1a8020, 0x1b125: 0x6c5d9420, 0x1b126: 0x6c190c20, 0x1b127: 0x6c26e420, + 0x1b128: 0x6d2b3020, 0x1b129: 0x6ce45420, 0x1b12a: 0x6cdf5a20, 0x1b12b: 0x6c40a620, + 0x1b12c: 0x6c48e220, 0x1b12d: 0x6d108020, 0x1b12e: 0x6d0f4020, 0x1b12f: 0x6c4f4620, + 0x1b130: 0x6c42fa20, 0x1b131: 0x6cd18e20, 0x1b132: 0x6ce1aa20, 0x1b133: 0x6cdf5c20, + 0x1b134: 0x6ce7e420, 0x1b135: 0x6d0d3420, 0x1b136: 0x6c08b020, 0x1b137: 0x6d145220, + 0x1b138: 0x6c7ab820, 0x1b139: 0x6c631c20, 0x1b13a: 0x6c343a20, 0x1b13b: 0x6c577c20, + 0x1b13c: 0x6c7bce20, 0x1b13d: 0x6d27d620, 0x1b13e: 0x6c632020, 0x1b13f: 0x6c031820, + // Block 0x6c5, offset 0x1b140 + 0x1b140: 0x6c370e20, 0x1b141: 0x6c87ec20, 0x1b142: 0x6c58ee20, 0x1b143: 0x6c2b1220, + 0x1b144: 0x6d0d4620, 0x1b145: 0x6cad7e20, 0x1b146: 0x6c733c20, 0x1b147: 0x6cb57c20, + 0x1b148: 0x6ca3ac20, 0x1b149: 0x6c3cd820, 0x1b14a: 0x6d007820, 0x1b14b: 0x6c3bcc20, + 0x1b14c: 0x6c2d0820, 0x1b14d: 0x6d107820, 0x1b14e: 0x6c7c5e20, 0x1b14f: 0x6d408620, + 0x1b150: 0x6c58f820, 0x1b151: 0x6cb75220, 0x1b152: 0x6c762620, 0x1b153: 0x6d2bc820, + 0x1b154: 0x6c077c20, 0x1b155: 0x6d16e020, 0x1b156: 0x6c679e20, 0x1b157: 0x6ce26220, + 0x1b158: 0x6d29fe20, 0x1b159: 0x6c079820, 0x1b15a: 0x6cf5b420, 0x1b15b: 0x6c5a5020, + 0x1b15c: 0x6c3a5020, 0x1b15d: 0x6c2dc020, 0x1b15e: 0x6d0a8620, 0x1b15f: 0x6c07e020, + 0x1b160: 0x6c2d5620, 0x1b161: 0x6c02d020, 0x1b162: 0x6cceea20, 0x1b163: 0x6cf24c20, + 0x1b164: 0x6c4d0220, 0x1b165: 0x6c02d220, 0x1b166: 0x6cf4fa20, 0x1b167: 0x6c02d420, + 0x1b168: 0x6c67ac20, 0x1b169: 0x6c881c20, 0x1b16a: 0x6c345a20, 0x1b16b: 0x6d275e20, + 0x1b16c: 0x6c67ae20, 0x1b16d: 0x6cd3c420, 0x1b16e: 0x6c3be620, 0x1b16f: 0x6c5df620, + 0x1b170: 0x6c0a8620, 0x1b171: 0x6c944c20, 0x1b172: 0x6c34c620, 0x1b173: 0x6caa6e20, + 0x1b174: 0x6caa3a20, 0x1b175: 0x6c2f6820, 0x1b176: 0x6ca38e20, 0x1b177: 0x6cb89620, + 0x1b178: 0x6c645c20, 0x1b179: 0x6cddde20, 0x1b17a: 0x6c6fa220, 0x1b17b: 0x6caa8e20, + 0x1b17c: 0x6c142820, 0x1b17d: 0x6c500620, 0x1b17e: 0x6cfa7020, 0x1b17f: 0x6c391a20, + // Block 0x6c6, offset 0x1b180 + 0x1b180: 0x6c611a20, 0x1b181: 0x6cd76e20, 0x1b182: 0x6cc78a20, 0x1b183: 0x6c39f020, + 0x1b184: 0x6cee4420, 0x1b185: 0x6c52ec20, 0x1b186: 0x6d3c0620, 0x1b187: 0x6c3fa620, + 0x1b188: 0x6c965c20, 0x1b189: 0x6c27b420, 0x1b18a: 0x6cc5be20, 0x1b18b: 0x6c3d3a20, + 0x1b18c: 0x6c6e4820, 0x1b18d: 0x6d0c5620, 0x1b18e: 0x6c4d5420, 0x1b18f: 0x6cf1fc20, + 0x1b190: 0x6d378e20, 0x1b191: 0x6cabb020, 0x1b192: 0x6c323220, 0x1b193: 0x6c617e20, + 0x1b194: 0x6c792820, 0x1b195: 0x6d381220, 0x1b196: 0x6d108a20, 0x1b197: 0x6c6cd420, + 0x1b198: 0x6d277e20, 0x1b199: 0x6c9eaa20, 0x1b19a: 0x6c3d1e20, 0x1b19b: 0x6c1ca420, + 0x1b19c: 0x6d267a20, 0x1b19d: 0x6d3c0a20, 0x1b19e: 0x6ca96220, 0x1b19f: 0x6d0e3a20, + 0x1b1a0: 0x6ca30620, 0x1b1a1: 0x6d02a820, 0x1b1a2: 0x6c3b5220, 0x1b1a3: 0x6c08ba20, + 0x1b1a4: 0x6d20ae20, 0x1b1a5: 0x6ceb6e20, 0x1b1a6: 0x6c3c1820, 0x1b1a7: 0x6ced7220, + 0x1b1a8: 0x6c39a220, 0x1b1a9: 0x6cf41e20, 0x1b1aa: 0x6d22cc20, 0x1b1ab: 0x6c4a3620, + 0x1b1ac: 0x6c323a20, 0x1b1ad: 0x6c036420, 0x1b1ae: 0x6ca5b420, 0x1b1af: 0x6d38cc20, + 0x1b1b0: 0x6d3d2c20, 0x1b1b1: 0x6d2f5620, 0x1b1b2: 0x6c267c20, 0x1b1b3: 0x6ca39820, + 0x1b1b4: 0x6d25fe20, 0x1b1b5: 0x6ce80820, 0x1b1b6: 0x6cfb2a20, 0x1b1b7: 0x6d343c20, + 0x1b1b8: 0x6c353020, 0x1b1b9: 0x6c9a7420, 0x1b1ba: 0x6ca0c620, 0x1b1bb: 0x6cb4d020, + 0x1b1bc: 0x6c092a20, 0x1b1bd: 0x6ccfaa20, 0x1b1be: 0x6cbc9420, 0x1b1bf: 0x6c353220, + // Block 0x6c7, offset 0x1b1c0 + 0x1b1c0: 0x6c50c420, 0x1b1c1: 0x6d062c20, 0x1b1c2: 0x6c37f820, 0x1b1c3: 0x6d328420, + 0x1b1c4: 0x6c9f2820, 0x1b1c5: 0x6c04e620, 0x1b1c6: 0x6ca22820, 0x1b1c7: 0x6c3d3e20, + 0x1b1c8: 0x6c8ca420, 0x1b1c9: 0x6d3ee220, 0x1b1ca: 0x6d3ee420, 0x1b1cb: 0x6cd2b420, + 0x1b1cc: 0x6cc4ac20, 0x1b1cd: 0x6cccc020, 0x1b1ce: 0x6d0f4620, 0x1b1cf: 0x6c975c20, + 0x1b1d0: 0x6c6c1620, 0x1b1d1: 0x6c46ee20, 0x1b1d2: 0x6cd88020, 0x1b1d3: 0x6d041420, + 0x1b1d4: 0x6cef8e20, 0x1b1d5: 0x6d3e0c20, 0x1b1d6: 0x6c71f620, 0x1b1d7: 0x6cccc220, + 0x1b1d8: 0x6cb1e820, 0x1b1d9: 0x6cc5d420, 0x1b1da: 0x6d10d620, 0x1b1db: 0x6c305820, + 0x1b1dc: 0x6c674c20, 0x1b1dd: 0x6cd4b020, 0x1b1de: 0x6c5ff020, 0x1b1df: 0x6c40e620, + 0x1b1e0: 0x6cfe1c20, 0x1b1e1: 0x6c572a20, 0x1b1e2: 0x6c72da20, 0x1b1e3: 0x6c682c20, + 0x1b1e4: 0x6c469c20, 0x1b1e5: 0x6c81a220, 0x1b1e6: 0x6c647420, 0x1b1e7: 0x6c647620, + 0x1b1e8: 0x6d148c20, 0x1b1e9: 0x6ca75c20, 0x1b1ea: 0x6d344220, 0x1b1eb: 0x6c5e9820, + 0x1b1ec: 0x6c5ea220, 0x1b1ed: 0x6cfc8a20, 0x1b1ee: 0x6c525620, 0x1b1ef: 0x6c49de20, + 0x1b1f0: 0x6c756020, 0x1b1f1: 0x6c7ac020, 0x1b1f2: 0x6d0e4420, 0x1b1f3: 0x6ca02c20, + 0x1b1f4: 0x6c8ad020, 0x1b1f5: 0x6cae0a20, 0x1b1f6: 0x6c35ee20, 0x1b1f7: 0x6d202220, + 0x1b1f8: 0x6d0c6e20, 0x1b1f9: 0x6c143420, 0x1b1fa: 0x6ccfb820, 0x1b1fb: 0x6d19ae20, + 0x1b1fc: 0x6cd24e20, 0x1b1fd: 0x6c4ad220, 0x1b1fe: 0x6cc2be20, 0x1b1ff: 0x6d3e0e20, + // Block 0x6c8, offset 0x1b200 + 0x1b200: 0x6cd90820, 0x1b201: 0x6cee6820, 0x1b202: 0x6c530e20, 0x1b203: 0x6cec0420, + 0x1b204: 0x6c907e20, 0x1b205: 0x6d0b8420, 0x1b206: 0x6cc52020, 0x1b207: 0x6c682e20, + 0x1b208: 0x6c942e20, 0x1b209: 0x6cb24e20, 0x1b20a: 0x6cfc9e20, 0x1b20b: 0x6cced020, + 0x1b20c: 0x6c850820, 0x1b20d: 0x6c19c820, 0x1b20e: 0x6d017a20, 0x1b20f: 0x6c984a20, + 0x1b210: 0x6c3d5c20, 0x1b211: 0x6cdd1020, 0x1b212: 0x6c99e420, 0x1b213: 0x6cef9c20, + 0x1b214: 0x6c789420, 0x1b215: 0x6c21ae20, 0x1b216: 0x6c21b020, 0x1b217: 0x6ce6b820, + 0x1b218: 0x6ca78820, 0x1b219: 0x6d03da20, 0x1b21a: 0x6ca3ee20, 0x1b21b: 0x6d20ec20, + 0x1b21c: 0x6ca31a20, 0x1b21d: 0x6cb3c820, 0x1b21e: 0x6ca56820, 0x1b21f: 0x6c72e220, + 0x1b220: 0x6ccfc620, 0x1b221: 0x6d35ae20, 0x1b222: 0x6c4df020, 0x1b223: 0x6c2c2c20, + 0x1b224: 0x6d3c1020, 0x1b225: 0x6c355220, 0x1b226: 0x6cb20820, 0x1b227: 0x6ce9f820, + 0x1b228: 0x6cfca020, 0x1b229: 0x6c9e1020, 0x1b22a: 0x6cf3ae20, 0x1b22b: 0x6d0c7020, + 0x1b22c: 0x6cf44220, 0x1b22d: 0x6c001e20, 0x1b22e: 0x6d0c7c20, 0x1b22f: 0x6d20ee20, + 0x1b230: 0x6cd89a20, 0x1b231: 0x6d20f020, 0x1b232: 0x6cebd020, 0x1b233: 0x6c87de20, + 0x1b234: 0x6cfb3a20, 0x1b235: 0x6c707c20, 0x1b236: 0x6cc24220, 0x1b237: 0x6d3c8020, + 0x1b238: 0x6cb4e220, 0x1b239: 0x6cfb4020, 0x1b23a: 0x6d3d4820, 0x1b23b: 0x6c2ff020, + 0x1b23c: 0x6c166420, 0x1b23d: 0x6c923420, 0x1b23e: 0x6c006420, 0x1b23f: 0x6c353620, + // Block 0x6c9, offset 0x1b240 + 0x1b240: 0x6c353820, 0x1b241: 0x6c908620, 0x1b242: 0x6c9dbe20, 0x1b243: 0x6c239020, + 0x1b244: 0x6cb3f020, 0x1b245: 0x6c710e20, 0x1b246: 0x6cb32820, 0x1b247: 0x6c10f620, + 0x1b248: 0x6c8cde20, 0x1b249: 0x6ced0020, 0x1b24a: 0x6c0c7220, 0x1b24b: 0x6cfeb020, + 0x1b24c: 0x6cd52620, 0x1b24d: 0x6cb6f020, 0x1b24e: 0x6c5ab020, 0x1b24f: 0x6c394020, + 0x1b250: 0x6cf2b220, 0x1b251: 0x6cc89820, 0x1b252: 0x6cdfda20, 0x1b253: 0x6c39f820, + 0x1b254: 0x6c3b0420, 0x1b255: 0x6c6aae20, 0x1b256: 0x6ce46020, 0x1b257: 0x6ca5d620, + 0x1b258: 0x6cc2d820, 0x1b259: 0x6c6e5820, 0x1b25a: 0x6c5cbc20, 0x1b25b: 0x6c6da420, + 0x1b25c: 0x6cb8d220, 0x1b25d: 0x6c2d4c20, 0x1b25e: 0x6d042620, 0x1b25f: 0x6c568a20, + 0x1b260: 0x6cec8820, 0x1b261: 0x6c7ef220, 0x1b262: 0x6c097420, 0x1b263: 0x6d19dc20, + 0x1b264: 0x6c1d6820, 0x1b265: 0x6ca52e20, 0x1b266: 0x6c3fe420, 0x1b267: 0x6c6e6e20, + 0x1b268: 0x6c94ec20, 0x1b269: 0x6c01b820, 0x1b26a: 0x6c7f9420, 0x1b26b: 0x6c7d5220, + 0x1b26c: 0x6d1a5220, 0x1b26d: 0x6d0b9220, 0x1b26e: 0x6c707e20, 0x1b26f: 0x6c85e820, + 0x1b270: 0x6c2d1220, 0x1b271: 0x6cfb4220, 0x1b272: 0x6c57da20, 0x1b273: 0x6c579220, + 0x1b274: 0x6d1bac20, 0x1b275: 0x6c14ee20, 0x1b276: 0x6cd05a20, 0x1b277: 0x6ce66e20, + 0x1b278: 0x6c296420, 0x1b279: 0x6d11ac20, 0x1b27a: 0x6cf4e620, 0x1b27b: 0x6ca44820, + 0x1b27c: 0x6c21b220, 0x1b27d: 0x6c641420, 0x1b27e: 0x6ce7d820, 0x1b27f: 0x6d06d220, + // Block 0x6ca, offset 0x1b280 + 0x1b280: 0x6d233020, 0x1b281: 0x6cef0a20, 0x1b282: 0x6c2c5420, 0x1b283: 0x6cc74820, + 0x1b284: 0x6c9a5620, 0x1b285: 0x6c27de20, 0x1b286: 0x6cc86220, 0x1b287: 0x6cbd2c20, + 0x1b288: 0x6c5ab220, 0x1b289: 0x6cf2ea20, 0x1b28a: 0x6cb99420, 0x1b28b: 0x6c210820, + 0x1b28c: 0x6c9e7420, 0x1b28d: 0x6c3fec20, 0x1b28e: 0x6c6b9620, 0x1b28f: 0x6c329820, + 0x1b290: 0x6d151420, 0x1b291: 0x6d382a20, 0x1b292: 0x6c99f820, 0x1b293: 0x6c59be20, + 0x1b294: 0x6c9dc220, 0x1b295: 0x6c013020, 0x1b296: 0x6d1bae20, 0x1b297: 0x6d079420, + 0x1b298: 0x6c6a0e20, 0x1b299: 0x6cee8220, 0x1b29a: 0x6c9a8e20, 0x1b29b: 0x6d261620, + 0x1b29c: 0x6d32c220, 0x1b29d: 0x6cbfae20, 0x1b29e: 0x6cd37a20, 0x1b29f: 0x6d01a820, + 0x1b2a0: 0x6ceb7c20, 0x1b2a1: 0x6c88f620, 0x1b2a2: 0x6c997820, 0x1b2a3: 0x6cc4c420, + 0x1b2a4: 0x6cd7e620, 0x1b2a5: 0x6cb0f220, 0x1b2a6: 0x6cf08e20, 0x1b2a7: 0x6cebd820, + 0x1b2a8: 0x6c6ff420, 0x1b2a9: 0x6c555620, 0x1b2aa: 0x6c02a620, 0x1b2ab: 0x6cbd1420, + 0x1b2ac: 0x6c05fe20, 0x1b2ad: 0x6d059220, 0x1b2ae: 0x6ce7da20, 0x1b2af: 0x6c4a6420, + 0x1b2b0: 0x6c1e8a20, 0x1b2b1: 0x6d110620, 0x1b2b2: 0x6cb09e20, 0x1b2b3: 0x6cf78420, + 0x1b2b4: 0x6d257a20, 0x1b2b5: 0x6d1d4020, 0x1b2b6: 0x6cc67020, 0x1b2b7: 0x6cc81a20, + 0x1b2b8: 0x6c1ab620, 0x1b2b9: 0x6c8e6620, 0x1b2ba: 0x6c9a5e20, 0x1b2bb: 0x6cac5c20, + 0x1b2bc: 0x6c02a820, 0x1b2bd: 0x6c966020, 0x1b2be: 0x6c46ae20, 0x1b2bf: 0x6c7cf620, + // Block 0x6cb, offset 0x1b2c0 + 0x1b2c0: 0x6cbd8020, 0x1b2c1: 0x6c644820, 0x1b2c2: 0x6ccae420, 0x1b2c3: 0x6d315e20, + 0x1b2c4: 0x6d257c20, 0x1b2c5: 0x6c6a1020, 0x1b2c6: 0x6cc68020, 0x1b2c7: 0x6ca00420, + 0x1b2c8: 0x6d1bc220, 0x1b2c9: 0x6c604c20, 0x1b2ca: 0x6cdac820, 0x1b2cb: 0x6ca79c20, + 0x1b2cc: 0x6cfb6c20, 0x1b2cd: 0x6ce1ce20, 0x1b2ce: 0x6cad0020, 0x1b2cf: 0x6c80b220, + 0x1b2d0: 0x6ca4fc20, 0x1b2d1: 0x6c05ca20, 0x1b2d2: 0x6c00a620, 0x1b2d3: 0x6cb0a020, + 0x1b2d4: 0x6cb20e20, 0x1b2d5: 0x6d182020, 0x1b2d6: 0x6cb17e20, 0x1b2d7: 0x6d238a20, + 0x1b2d8: 0x6c824220, 0x1b2d9: 0x6d081820, 0x1b2da: 0x6c975820, 0x1b2db: 0x6d140020, + 0x1b2dc: 0x6d2ec220, 0x1b2dd: 0x6c773820, 0x1b2de: 0x6d1d9820, 0x1b2df: 0x6ca6a820, + 0x1b2e0: 0x6c840e20, 0x1b2e1: 0x6c2b7a20, 0x1b2e2: 0x6c4a7820, 0x1b2e3: 0x6d0c1a20, + 0x1b2e4: 0x6c6c9c20, 0x1b2e5: 0x6d3b8420, 0x1b2e6: 0x6c16b820, 0x1b2e7: 0x6d2ada20, + 0x1b2e8: 0x6c4dac20, 0x1b2e9: 0x6ca59c20, 0x1b2ea: 0x6c81d820, 0x1b2eb: 0x6ca05c20, + 0x1b2ec: 0x6d300220, 0x1b2ed: 0x6c56ae20, 0x1b2ee: 0x6c56b020, 0x1b2ef: 0x6c02d620, + 0x1b2f0: 0x6ca59e20, 0x1b2f1: 0x6cbb1220, 0x1b2f2: 0x6c96f620, 0x1b2f3: 0x6cb1e420, + 0x1b2f4: 0x6c472a20, 0x1b2f5: 0x6cf46020, 0x1b2f6: 0x6cbbea20, 0x1b2f7: 0x6ceb8820, + 0x1b2f8: 0x6d2e1020, 0x1b2f9: 0x6c98f020, 0x1b2fa: 0x6cfb7820, 0x1b2fb: 0x6cfb7a20, + 0x1b2fc: 0x6ca14a20, 0x1b2fd: 0x6c8a0420, 0x1b2fe: 0x6c883020, 0x1b2ff: 0x6c57b820, + // Block 0x6cc, offset 0x1b300 + 0x1b300: 0x6c4a8420, 0x1b301: 0x6c2aa620, 0x1b302: 0x6d348c20, 0x1b303: 0x6d05ce20, + 0x1b304: 0x6d140a20, 0x1b305: 0x6c579c20, 0x1b306: 0x6cf69220, 0x1b307: 0x6c7d0a20, + 0x1b308: 0x6cc52820, 0x1b309: 0x6cf69420, 0x1b30a: 0x6d0ea020, 0x1b30b: 0x6c151820, + 0x1b30c: 0x6c686420, 0x1b30d: 0x6c9a6620, 0x1b30e: 0x6c396820, 0x1b30f: 0x6c385620, + 0x1b310: 0x6cfad420, 0x1b311: 0x6d188620, 0x1b312: 0x6c5c2a20, 0x1b313: 0x6c69c420, + 0x1b314: 0x6c405220, 0x1b315: 0x6cd3d820, 0x1b316: 0x6c0a4620, 0x1b317: 0x6ccda420, + 0x1b318: 0x6cdc5a20, 0x1b319: 0x6cbb2020, 0x1b31a: 0x6c88c820, 0x1b31b: 0x6c589420, + 0x1b31c: 0x6d02ec20, 0x1b31d: 0x6ca7aa20, 0x1b31e: 0x6c303420, 0x1b31f: 0x6d188820, + 0x1b320: 0x6c117020, 0x1b321: 0x6c00c820, 0x1b322: 0x6ca77820, 0x1b323: 0x6ca92220, + 0x1b324: 0x6c966420, 0x1b325: 0x6ce5ce20, 0x1b326: 0x6c1de220, 0x1b327: 0x6c6d5820, + 0x1b328: 0x6c226820, 0x1b329: 0x6d219e20, 0x1b32a: 0x6cb21620, 0x1b32b: 0x6cc6be20, + 0x1b32c: 0x6cc7ce20, 0x1b32d: 0x6ca3a820, 0x1b32e: 0x6d0c3220, 0x1b32f: 0x6cdf4620, + 0x1b330: 0x6d1bfc20, 0x1b331: 0x6c11b620, 0x1b332: 0x6ca7b220, 0x1b333: 0x6d26ea20, + 0x1b334: 0x6d1c9620, 0x1b335: 0x6c9dd620, 0x1b336: 0x6c0ae620, 0x1b337: 0x6c966620, + 0x1b338: 0x6cd08020, 0x1b339: 0x6d043e20, 0x1b33a: 0x6ca6d420, 0x1b33b: 0x6c31c820, + 0x1b33c: 0x6c8f2020, 0x1b33d: 0x6d251c20, 0x1b33e: 0x6c804820, 0x1b33f: 0x6d0ee820, + // Block 0x6cd, offset 0x1b340 + 0x1b340: 0x6cd6a820, 0x1b341: 0x6c8d8c20, 0x1b342: 0x6c696620, 0x1b343: 0x6ca77a20, + 0x1b344: 0x6c804c20, 0x1b345: 0x6cb94420, 0x1b346: 0x6d1c1a20, 0x1b347: 0x6cd6ae20, + 0x1b348: 0x6c5c9020, 0x1b349: 0x6cc32620, 0x1b34a: 0x6c9d0a20, 0x1b34b: 0x6c84b820, + 0x1b34c: 0x6c944e20, 0x1b34d: 0x6d0d0e20, 0x1b34e: 0x6d3a4020, 0x1b34f: 0x6c805820, + 0x1b350: 0x6d3f6820, 0x1b351: 0x6c6a5220, 0x1b352: 0x6c73c420, 0x1b353: 0x6c73c620, + 0x1b354: 0x6c799220, 0x1b355: 0x6d281220, 0x1b356: 0x6c965e20, 0x1b357: 0x6d3f2820, + 0x1b358: 0x6c25a020, 0x1b359: 0x6cdcca20, 0x1b35a: 0x6c3dd620, 0x1b35b: 0x6c06d620, + 0x1b35c: 0x6d3e0020, 0x1b35d: 0x6cffcc20, 0x1b35e: 0x6d031a20, 0x1b35f: 0x6c9bfe20, + 0x1b360: 0x6cd88c20, 0x1b361: 0x6cdf0220, 0x1b362: 0x6c05a420, 0x1b363: 0x6c619220, + 0x1b364: 0x6c46f020, 0x1b365: 0x6caa3c20, 0x1b366: 0x6d08f820, 0x1b367: 0x6d206a20, + 0x1b368: 0x6d3ba220, 0x1b369: 0x6c4d1e20, 0x1b36a: 0x6c943020, 0x1b36b: 0x6cdcd020, + 0x1b36c: 0x6ca48e20, 0x1b36d: 0x6c9ec420, 0x1b36e: 0x6c239220, 0x1b36f: 0x6cb8d420, + 0x1b370: 0x6cd52820, 0x1b371: 0x6c11f620, 0x1b372: 0x6d0aea20, 0x1b373: 0x6d3e3420, + 0x1b374: 0x6ca63e20, 0x1b375: 0x6c3d8820, 0x1b376: 0x6d3e4e20, 0x1b377: 0x6c841020, + 0x1b378: 0x6d091820, 0x1b379: 0x6c0ff620, 0x1b37a: 0x6cc7d020, 0x1b37b: 0x6ca38820, + 0x1b37c: 0x6ca89020, 0x1b37d: 0x6ca89220, 0x1b37e: 0x6d1c1c20, 0x1b37f: 0x6c945020, + // Block 0x6ce, offset 0x1b380 + 0x1b380: 0x6c9db620, 0x1b381: 0x6ca8f220, 0x1b382: 0x6cc6ee20, 0x1b383: 0x6cdddc20, + 0x1b384: 0x6c4ab820, 0x1b385: 0x6d2d1820, 0x1b386: 0x6cbef820, 0x1b387: 0x6d221620, + 0x1b388: 0x6cd43a20, 0x1b389: 0x6c011220, 0x1b38a: 0x6ce83820, 0x1b38b: 0x6cd97e20, + 0x1b38c: 0x6cecc020, 0x1b38d: 0x6cc78420, 0x1b38e: 0x6d118220, 0x1b38f: 0x6c52f220, + 0x1b390: 0x6d145e20, 0x1b391: 0x6c6e0c20, 0x1b392: 0x6d3cc820, 0x1b393: 0x6c9d2220, + 0x1b394: 0x6d3a5820, 0x1b395: 0x6c295620, 0x1b396: 0x6c530020, 0x1b397: 0x6d3f7020, + 0x1b398: 0x6c490420, 0x1b399: 0x6d38fe20, 0x1b39a: 0x6c2f9620, 0x1b39b: 0x6cecee20, + 0x1b39c: 0x6d198e20, 0x1b39d: 0x6c05e220, 0x1b39e: 0x6cd24220, 0x1b39f: 0x6cd24420, + 0x1b3a0: 0x6c1d3620, 0x1b3a1: 0x6cd04620, 0x1b3a2: 0x6c788c20, 0x1b3a3: 0x6d078220, + 0x1b3a4: 0x6cd32c20, 0x1b3a5: 0x6d202420, 0x1b3a6: 0x6c58fa20, 0x1b3a7: 0x6d14b820, + 0x1b3a8: 0x6ce5b820, 0x1b3a9: 0x6cd2be20, 0x1b3aa: 0x6cfc8c20, 0x1b3ab: 0x6c456e20, + 0x1b3ac: 0x6c19ca20, 0x1b3ad: 0x6cc44220, 0x1b3ae: 0x6c457a20, 0x1b3af: 0x6cfe9420, + 0x1b3b0: 0x6d291220, 0x1b3b1: 0x6d2cba20, 0x1b3b2: 0x6c05f020, 0x1b3b3: 0x6c4d5e20, + 0x1b3b4: 0x6d0e4e20, 0x1b3b5: 0x6cfe9620, 0x1b3b6: 0x6c634020, 0x1b3b7: 0x6cd05020, + 0x1b3b8: 0x6c18ae20, 0x1b3b9: 0x6cc66020, 0x1b3ba: 0x6c5a4c20, 0x1b3bb: 0x6c9d3020, + 0x1b3bc: 0x6c79e020, 0x1b3bd: 0x6c7b5220, 0x1b3be: 0x6c0d2e20, 0x1b3bf: 0x6cdaa020, + // Block 0x6cf, offset 0x1b3c0 + 0x1b3c0: 0x6c112420, 0x1b3c1: 0x6d296620, 0x1b3c2: 0x6c61de20, 0x1b3c3: 0x6d24da20, + 0x1b3c4: 0x6c61e020, 0x1b3c5: 0x6d1a5420, 0x1b3c6: 0x6c9d3620, 0x1b3c7: 0x6c79e620, + 0x1b3c8: 0x6cbe4220, 0x1b3c9: 0x6cc3b420, 0x1b3ca: 0x6d315620, 0x1b3cb: 0x6c668820, + 0x1b3cc: 0x6c3fee20, 0x1b3cd: 0x6ca90420, 0x1b3ce: 0x6c0e1e20, 0x1b3cf: 0x6c587420, + 0x1b3d0: 0x6c9a9020, 0x1b3d1: 0x6cbdd620, 0x1b3d2: 0x6c4e0c20, 0x1b3d3: 0x6d233220, + 0x1b3d4: 0x6cd26620, 0x1b3d5: 0x6ca90620, 0x1b3d6: 0x6c6d1020, 0x1b3d7: 0x6ca90a20, + 0x1b3d8: 0x6d365020, 0x1b3d9: 0x6d226820, 0x1b3da: 0x6c060220, 0x1b3db: 0x6c7b5620, + 0x1b3dc: 0x6ca90c20, 0x1b3dd: 0x6cbddc20, 0x1b3de: 0x6ca12820, 0x1b3df: 0x6c13f220, + 0x1b3e0: 0x6c726020, 0x1b3e1: 0x6c489c20, 0x1b3e2: 0x6cbde220, 0x1b3e3: 0x6c54e420, + 0x1b3e4: 0x6cf50a20, 0x1b3e5: 0x6c89f020, 0x1b3e6: 0x6cd27a20, 0x1b3e7: 0x6ca91020, + 0x1b3e8: 0x6d2d4620, 0x1b3e9: 0x6cd06820, 0x1b3ea: 0x6ceffc20, 0x1b3eb: 0x6d014820, + 0x1b3ec: 0x6c7b5820, 0x1b3ed: 0x6c5c0e20, 0x1b3ee: 0x6c8a0620, 0x1b3ef: 0x6c75e220, + 0x1b3f0: 0x6c589620, 0x1b3f1: 0x6d18c020, 0x1b3f2: 0x6d156a20, 0x1b3f3: 0x6c061c20, + 0x1b3f4: 0x6cbd4a20, 0x1b3f5: 0x6c1d4620, 0x1b3f6: 0x6c062020, 0x1b3f7: 0x6c3c7c20, + 0x1b3f8: 0x6c25b020, 0x1b3f9: 0x6c332c20, 0x1b3fa: 0x6cd87820, 0x1b3fb: 0x6d09d420, + 0x1b3fc: 0x6c29ce20, 0x1b3fd: 0x6c93ca20, 0x1b3fe: 0x6c333620, 0x1b3ff: 0x6cd45020, + // Block 0x6d0, offset 0x1b400 + 0x1b400: 0x6cb34a20, 0x1b401: 0x6c3c2420, 0x1b402: 0x6d3b7420, 0x1b403: 0x6c3d5e20, + 0x1b404: 0x6ccf3a20, 0x1b405: 0x6c789620, 0x1b406: 0x6c674e20, 0x1b407: 0x6c675c20, + 0x1b408: 0x6d3b7a20, 0x1b409: 0x6cf08420, 0x1b40a: 0x6d41e820, 0x1b40b: 0x6d0a0c20, + 0x1b40c: 0x6cd5d220, 0x1b40d: 0x6c335420, 0x1b40e: 0x6c29e820, 0x1b40f: 0x6cffa220, + 0x1b410: 0x6c6a5420, 0x1b411: 0x6cceac20, 0x1b412: 0x6c377e20, 0x1b413: 0x6c378020, + 0x1b414: 0x6c378220, 0x1b415: 0x6c40d020, 0x1b416: 0x6c645e20, 0x1b417: 0x6cd49a20, + 0x1b418: 0x6c189220, 0x1b419: 0x6cce4a20, 0x1b41a: 0x6cce4c20, 0x1b41b: 0x6ca1b420, + 0x1b41c: 0x6c40c620, 0x1b41d: 0x6c169e20, 0x1b41e: 0x6c8a9a20, 0x1b41f: 0x6cfc1020, + 0x1b420: 0x6cfc1220, 0x1b421: 0x6c7dde20, 0x1b422: 0x6d1edc20, 0x1b423: 0x6cedbc20, + 0x1b424: 0x6d1ede20, 0x1b425: 0x6c8a8c20, 0x1b426: 0x6c8a8e20, 0x1b427: 0x6d10ca20, + 0x1b428: 0x6c983020, 0x1b429: 0x6cedc620, 0x1b42a: 0x6cedc020, 0x1b42b: 0x6cedc220, + 0x1b42c: 0x6c40d420, 0x1b42d: 0x6d10cc20, 0x1b42e: 0x6c34d620, 0x1b42f: 0x6c7cec20, + 0x1b430: 0x6d37f020, 0x1b431: 0x6c6ff620, 0x1b432: 0x6c419c20, 0x1b433: 0x6c478820, + 0x1b434: 0x6c419e20, 0x1b435: 0x6ce9b420, 0x1b436: 0x6c41b620, 0x1b437: 0x6c41b820, + 0x1b438: 0x6cd18a20, 0x1b439: 0x6d1ac220, 0x1b43a: 0x6c1b7020, 0x1b43b: 0x6c779020, + 0x1b43c: 0x6ca5b620, 0x1b43d: 0x6c6c8020, 0x1b43e: 0x6cef8620, 0x1b43f: 0x6ca7d020, + // Block 0x6d1, offset 0x1b440 + 0x1b440: 0x6c70f020, 0x1b441: 0x6cb08620, 0x1b442: 0x6c134e20, 0x1b443: 0x6cf83c20, + 0x1b444: 0x6c086c20, 0x1b445: 0x6c705620, 0x1b446: 0x6c6bbe20, 0x1b447: 0x6ce48020, + 0x1b448: 0x6cc0dc20, 0x1b449: 0x6ce44c20, 0x1b44a: 0x6c6bc020, 0x1b44b: 0x6cf35620, + 0x1b44c: 0x6c2dfa20, 0x1b44d: 0x6cd1a220, 0x1b44e: 0x6cd2c020, 0x1b44f: 0x6cb28020, + 0x1b450: 0x6c5ea420, 0x1b451: 0x6d017c20, 0x1b452: 0x6d31c620, 0x1b453: 0x6d017e20, + 0x1b454: 0x6ca5ca20, 0x1b455: 0x6d2de020, 0x1b456: 0x6cf5ba20, 0x1b457: 0x6cef9e20, + 0x1b458: 0x6c97b420, 0x1b459: 0x6c353a20, 0x1b45a: 0x6c910620, 0x1b45b: 0x6cb29820, + 0x1b45c: 0x6ce44e20, 0x1b45d: 0x6c3aa420, 0x1b45e: 0x6cd55820, 0x1b45f: 0x6d01aa20, + 0x1b460: 0x6ce8a020, 0x1b461: 0x6c939a20, 0x1b462: 0x6c93a620, 0x1b463: 0x6cf7f820, + 0x1b464: 0x6c135420, 0x1b465: 0x6c93ae20, 0x1b466: 0x6c727820, 0x1b467: 0x6d01f620, + 0x1b468: 0x6c72a420, 0x1b469: 0x6c73ba20, 0x1b46a: 0x6c8a3020, 0x1b46b: 0x6c74e620, + 0x1b46c: 0x6cd58820, 0x1b46d: 0x6cf93a20, 0x1b46e: 0x6c17fa20, 0x1b46f: 0x6cea3620, + 0x1b470: 0x6ca67420, 0x1b471: 0x6cccb020, 0x1b472: 0x6cec4820, 0x1b473: 0x6cfa6c20, + 0x1b474: 0x6c856820, 0x1b475: 0x6c35c620, 0x1b476: 0x6c2a5420, 0x1b477: 0x6c5ca820, + 0x1b478: 0x6c8f6820, 0x1b479: 0x6d165c20, 0x1b47a: 0x6cb6ca20, 0x1b47b: 0x6cc5b020, + 0x1b47c: 0x6cf49e20, 0x1b47d: 0x6c4e8020, 0x1b47e: 0x6ccf9c20, 0x1b47f: 0x6d221820, + // Block 0x6d2, offset 0x1b480 + 0x1b480: 0x6c1e5220, 0x1b481: 0x6cdc1e20, 0x1b482: 0x6cb6cc20, 0x1b483: 0x6cc5b220, + 0x1b484: 0x6d267c20, 0x1b485: 0x6c04b820, 0x1b486: 0x6d118420, 0x1b487: 0x6c01f220, + 0x1b488: 0x6d0b0e20, 0x1b489: 0x6cf4a620, 0x1b48a: 0x6c6a6e20, 0x1b48b: 0x6c35cc20, + 0x1b48c: 0x6c5fc620, 0x1b48d: 0x6cb8a420, 0x1b48e: 0x6c3b5420, 0x1b48f: 0x6cecc420, + 0x1b490: 0x6cb57020, 0x1b491: 0x6c132820, 0x1b492: 0x6cb96a20, 0x1b493: 0x6cb57220, + 0x1b494: 0x6c142e20, 0x1b495: 0x6c6bb020, 0x1b496: 0x6cc0d020, 0x1b497: 0x6c429820, + 0x1b498: 0x6cfc7a20, 0x1b499: 0x6c02c020, 0x1b49a: 0x6c7f8a20, 0x1b49b: 0x6c29d020, + 0x1b49c: 0x6c031a20, 0x1b49d: 0x6d427c20, 0x1b49e: 0x6d427e20, 0x1b49f: 0x6d100220, + 0x1b4a0: 0x6c71f820, 0x1b4a1: 0x6c425c20, 0x1b4a2: 0x6c785820, 0x1b4a3: 0x6c466e20, + 0x1b4a4: 0x6d08fa20, 0x1b4a5: 0x6cb2fa20, 0x1b4a6: 0x6c858a20, 0x1b4a7: 0x6ce56e20, + 0x1b4a8: 0x6cc0e020, 0x1b4a9: 0x6d0c6220, 0x1b4aa: 0x6c3de420, 0x1b4ab: 0x6d052e20, + 0x1b4ac: 0x6c640020, 0x1b4ad: 0x6c8e0a20, 0x1b4ae: 0x6ceaec20, 0x1b4af: 0x6cafb220, + 0x1b4b0: 0x6c02c820, 0x1b4b1: 0x6c273020, 0x1b4b2: 0x6c7be020, 0x1b4b3: 0x6d268620, + 0x1b4b4: 0x6cc0e220, 0x1b4b5: 0x6c566220, 0x1b4b6: 0x6cb36620, 0x1b4b7: 0x6c9f2a20, + 0x1b4b8: 0x6c01a220, 0x1b4b9: 0x6ce57020, 0x1b4ba: 0x6c8ca620, 0x1b4bb: 0x6c1b0620, + 0x1b4bc: 0x6cb2ea20, 0x1b4bd: 0x6c2fde20, 0x1b4be: 0x6c4e8c20, 0x1b4bf: 0x6c7c3420, + // Block 0x6d3, offset 0x1b4c0 + 0x1b4c0: 0x6d053020, 0x1b4c1: 0x6c992a20, 0x1b4c2: 0x6ce71420, 0x1b4c3: 0x6d08fc20, + 0x1b4c4: 0x6d16ae20, 0x1b4c5: 0x6c0be220, 0x1b4c6: 0x6c50d220, 0x1b4c7: 0x6c032c20, + 0x1b4c8: 0x6c95e620, 0x1b4c9: 0x6c35f020, 0x1b4ca: 0x6c3fc220, 0x1b4cb: 0x6d09e420, + 0x1b4cc: 0x6c2e6c20, 0x1b4cd: 0x6c921e20, 0x1b4ce: 0x6c371e20, 0x1b4cf: 0x6c373c20, + 0x1b4d0: 0x6c40e820, 0x1b4d1: 0x6cc28c20, 0x1b4d2: 0x6c305a20, 0x1b4d3: 0x6d149420, + 0x1b4d4: 0x6ca22e20, 0x1b4d5: 0x6cd25020, 0x1b4d6: 0x6c011a20, 0x1b4d7: 0x6ceee820, + 0x1b4d8: 0x6c586220, 0x1b4d9: 0x6d359620, 0x1b4da: 0x6c9d2c20, 0x1b4db: 0x6c850220, + 0x1b4dc: 0x6c61a420, 0x1b4dd: 0x6ce72220, 0x1b4de: 0x6ceeea20, 0x1b4df: 0x6d202620, + 0x1b4e0: 0x6c483420, 0x1b4e1: 0x6cf99420, 0x1b4e2: 0x6c850420, 0x1b4e3: 0x6d10d820, + 0x1b4e4: 0x6c698620, 0x1b4e5: 0x6d329420, 0x1b4e6: 0x6c943220, 0x1b4e7: 0x6c683020, + 0x1b4e8: 0x6c355420, 0x1b4e9: 0x6c355620, 0x1b4ea: 0x6d22ee20, 0x1b4eb: 0x6d007a20, + 0x1b4ec: 0x6c100e20, 0x1b4ed: 0x6cbc3620, 0x1b4ee: 0x6cc43420, 0x1b4ef: 0x6c3c3220, + 0x1b4f0: 0x6c3c3420, 0x1b4f1: 0x6ca4a220, 0x1b4f2: 0x6c850a20, 0x1b4f3: 0x6d1f1420, + 0x1b4f4: 0x6cfca220, 0x1b4f5: 0x6c532820, 0x1b4f6: 0x6c29d220, 0x1b4f7: 0x6ccfc820, + 0x1b4f8: 0x6c19cc20, 0x1b4f9: 0x6ce88e20, 0x1b4fa: 0x6c44f620, 0x1b4fb: 0x6c75a220, + 0x1b4fc: 0x6c502620, 0x1b4fd: 0x6cf9a020, 0x1b4fe: 0x6d1a4620, 0x1b4ff: 0x6d223a20, + // Block 0x6d4, offset 0x1b500 + 0x1b500: 0x6c811620, 0x1b501: 0x6c770820, 0x1b502: 0x6c814e20, 0x1b503: 0x6c7ee820, + 0x1b504: 0x6cfbf220, 0x1b505: 0x6cc3aa20, 0x1b506: 0x6c797020, 0x1b507: 0x6c1d1020, + 0x1b508: 0x6c1d1220, 0x1b509: 0x6cde4620, 0x1b50a: 0x6c8bac20, 0x1b50b: 0x6c578a20, + 0x1b50c: 0x6c708420, 0x1b50d: 0x6c7ef420, 0x1b50e: 0x6cb5be20, 0x1b50f: 0x6c9f4420, + 0x1b510: 0x6c7d5420, 0x1b511: 0x6c7d5620, 0x1b512: 0x6d40b420, 0x1b513: 0x6c480a20, + 0x1b514: 0x6c24c820, 0x1b515: 0x6d0b2620, 0x1b516: 0x6d0b2820, 0x1b517: 0x6c429e20, + 0x1b518: 0x6c94ee20, 0x1b519: 0x6c94f020, 0x1b51a: 0x6c837420, 0x1b51b: 0x6c742020, + 0x1b51c: 0x6c342820, 0x1b51d: 0x6d32ac20, 0x1b51e: 0x6c4c1e20, 0x1b51f: 0x6d1a5620, + 0x1b520: 0x6c2ff220, 0x1b521: 0x6c4dfa20, 0x1b522: 0x6d32ae20, 0x1b523: 0x6cefac20, + 0x1b524: 0x6cff7e20, 0x1b525: 0x6cafde20, 0x1b526: 0x6d0bf220, 0x1b527: 0x6cd91420, + 0x1b528: 0x6c6ab220, 0x1b529: 0x6c07e220, 0x1b52a: 0x6d40b620, 0x1b52b: 0x6c7a3c20, + 0x1b52c: 0x6c2ff420, 0x1b52d: 0x6d2de420, 0x1b52e: 0x6c480c20, 0x1b52f: 0x6d1a5820, + 0x1b530: 0x6d3f6a20, 0x1b531: 0x6d2b4e20, 0x1b532: 0x6c59c020, 0x1b533: 0x6d211820, + 0x1b534: 0x6cec6220, 0x1b535: 0x6d0fb220, 0x1b536: 0x6c3c4a20, 0x1b537: 0x6cc05c20, + 0x1b538: 0x6d0fb420, 0x1b539: 0x6ce32020, 0x1b53a: 0x6d15ec20, 0x1b53b: 0x6d361e20, + 0x1b53c: 0x6cd37c20, 0x1b53d: 0x6d291620, 0x1b53e: 0x6d11ae20, 0x1b53f: 0x6c363020, + // Block 0x6d5, offset 0x1b540 + 0x1b540: 0x6d3af220, 0x1b541: 0x6c76ac20, 0x1b542: 0x6c93dc20, 0x1b543: 0x6d0d7a20, + 0x1b544: 0x6c9a5820, 0x1b545: 0x6c4e0e20, 0x1b546: 0x6c5ec820, 0x1b547: 0x6c5eca20, + 0x1b548: 0x6c591e20, 0x1b549: 0x6ce67020, 0x1b54a: 0x6cd16a20, 0x1b54b: 0x6c99fa20, + 0x1b54c: 0x6cba5220, 0x1b54d: 0x6cf4e820, 0x1b54e: 0x6d211a20, 0x1b54f: 0x6d3f8420, + 0x1b550: 0x6c7f9a20, 0x1b551: 0x6c786420, 0x1b552: 0x6d0c9220, 0x1b553: 0x6d0c9420, + 0x1b554: 0x6cefbc20, 0x1b555: 0x6d3f8620, 0x1b556: 0x6c13e020, 0x1b557: 0x6cdc3c20, + 0x1b558: 0x6cc67220, 0x1b559: 0x6c78ee20, 0x1b55a: 0x6cbd2e20, 0x1b55b: 0x6d211c20, + 0x1b55c: 0x6ce45220, 0x1b55d: 0x6c90e220, 0x1b55e: 0x6ce8ba20, 0x1b55f: 0x6c330420, + 0x1b560: 0x6cf64220, 0x1b561: 0x6cf25220, 0x1b562: 0x6c123020, 0x1b563: 0x6c296c20, + 0x1b564: 0x6cc68220, 0x1b565: 0x6c6ae020, 0x1b566: 0x6c765e20, 0x1b567: 0x6c8e6820, + 0x1b568: 0x6cf4fc20, 0x1b569: 0x6cd92420, 0x1b56a: 0x6cbb7c20, 0x1b56b: 0x6d3e3620, + 0x1b56c: 0x6cef0c20, 0x1b56d: 0x6c07f620, 0x1b56e: 0x6c2ccc20, 0x1b56f: 0x6c25da20, + 0x1b570: 0x6cba1220, 0x1b571: 0x6d1e4420, 0x1b572: 0x6ca83e20, 0x1b573: 0x6c25dc20, + 0x1b574: 0x6c614820, 0x1b575: 0x6cd41620, 0x1b576: 0x6cc93c20, 0x1b577: 0x6cd96820, + 0x1b578: 0x6d3fa020, 0x1b579: 0x6c67f420, 0x1b57a: 0x6c89f220, 0x1b57b: 0x6c773c20, + 0x1b57c: 0x6c15c620, 0x1b57d: 0x6c2ec820, 0x1b57e: 0x6c132420, 0x1b57f: 0x6c2f7820, + // Block 0x6d6, offset 0x1b580 + 0x1b580: 0x6ce86820, 0x1b581: 0x6c90ec20, 0x1b582: 0x6d2f3a20, 0x1b583: 0x6d2dfe20, + 0x1b584: 0x6d2e0020, 0x1b585: 0x6c024e20, 0x1b586: 0x6c127c20, 0x1b587: 0x6cc11e20, + 0x1b588: 0x6cbac820, 0x1b589: 0x6c24d620, 0x1b58a: 0x6d418e20, 0x1b58b: 0x6c29e220, + 0x1b58c: 0x6c29e420, 0x1b58d: 0x6cf79020, 0x1b58e: 0x6d238c20, 0x1b58f: 0x6cae2620, + 0x1b590: 0x6c8f9a20, 0x1b591: 0x6cfe4420, 0x1b592: 0x6c135620, 0x1b593: 0x6c0e8620, + 0x1b594: 0x6cbd3c20, 0x1b595: 0x6c686620, 0x1b596: 0x6d0dc620, 0x1b597: 0x6c816a20, + 0x1b598: 0x6d2e7420, 0x1b599: 0x6c8bcc20, 0x1b59a: 0x6c8a0820, 0x1b59b: 0x6c8a0a20, + 0x1b59c: 0x6c6c5020, 0x1b59d: 0x6c2ae220, 0x1b59e: 0x6c350a20, 0x1b59f: 0x6d41ee20, + 0x1b5a0: 0x6c69ba20, 0x1b5a1: 0x6c4b6220, 0x1b5a2: 0x6d113420, 0x1b5a3: 0x6c686820, + 0x1b5a4: 0x6d113620, 0x1b5a5: 0x6c748e20, 0x1b5a6: 0x6d2d9620, 0x1b5a7: 0x6d188a20, + 0x1b5a8: 0x6d091a20, 0x1b5a9: 0x6ca4be20, 0x1b5aa: 0x6d133820, 0x1b5ab: 0x6d133a20, + 0x1b5ac: 0x6d155a20, 0x1b5ad: 0x6ca87020, 0x1b5ae: 0x6cfc2a20, 0x1b5af: 0x6c608220, + 0x1b5b0: 0x6d020c20, 0x1b5b1: 0x6c786e20, 0x1b5b2: 0x6cf69820, 0x1b5b3: 0x6c2c9a20, + 0x1b5b4: 0x6c02e620, 0x1b5b5: 0x6d419c20, 0x1b5b6: 0x6cf14820, 0x1b5b7: 0x6d156c20, + 0x1b5b8: 0x6cc6c020, 0x1b5b9: 0x6c29f020, 0x1b5ba: 0x6c8e1420, 0x1b5bb: 0x6d28cc20, + 0x1b5bc: 0x6d228c20, 0x1b5bd: 0x6d26f220, 0x1b5be: 0x6d1b0c20, 0x1b5bf: 0x6cc83820, + // Block 0x6d7, offset 0x1b5c0 + 0x1b5c0: 0x6c6b5420, 0x1b5c1: 0x6c869c20, 0x1b5c2: 0x6c4a9820, 0x1b5c3: 0x6c8fbe20, + 0x1b5c4: 0x6c8fc020, 0x1b5c5: 0x6c2ce420, 0x1b5c6: 0x6cc6d620, 0x1b5c7: 0x6cf72a20, + 0x1b5c8: 0x6c718620, 0x1b5c9: 0x6c155020, 0x1b5ca: 0x6d1d2220, 0x1b5cb: 0x6c7c5420, + 0x1b5cc: 0x6d0cee20, 0x1b5cd: 0x6ceec820, 0x1b5ce: 0x6ca4d420, 0x1b5cf: 0x6cc32820, + 0x1b5d0: 0x6c17ac20, 0x1b5d1: 0x6c24a420, 0x1b5d2: 0x6c945220, 0x1b5d3: 0x6c2cf420, + 0x1b5d4: 0x6c2cf620, 0x1b5d5: 0x6ca8e020, 0x1b5d6: 0x6d0d1220, 0x1b5d7: 0x6d0d1020, + 0x1b5d8: 0x6d0e2020, 0x1b5d9: 0x6c7cbc20, 0x1b5da: 0x6d0e2220, 0x1b5db: 0x6c1fd620, + 0x1b5dc: 0x6c7b0820, 0x1b5dd: 0x6c1fd820, 0x1b5de: 0x6d385020, 0x1b5df: 0x6c597020, + 0x1b5e0: 0x6c6d8a20, 0x1b5e1: 0x6d09d820, 0x1b5e2: 0x6c175e20, 0x1b5e3: 0x6c176020, + 0x1b5e4: 0x6c8b2620, 0x1b5e5: 0x6c454a20, 0x1b5e6: 0x6d426020, 0x1b5e7: 0x6cbc1a20, + 0x1b5e8: 0x6c71e820, 0x1b5e9: 0x6c45ce20, 0x1b5ea: 0x6c71f220, 0x1b5eb: 0x6cf35220, + 0x1b5ec: 0x6cb4be20, 0x1b5ed: 0x6cb4c020, 0x1b5ee: 0x6c143620, 0x1b5ef: 0x6cc05e20, + 0x1b5f0: 0x6cc08220, 0x1b5f1: 0x6c610e20, 0x1b5f2: 0x6d15ac20, 0x1b5f3: 0x6cd87020, + 0x1b5f4: 0x6c03e620, 0x1b5f5: 0x6d338a20, 0x1b5f6: 0x6d2f5820, 0x1b5f7: 0x6cfe1e20, + 0x1b5f8: 0x6d14bc20, 0x1b5f9: 0x6c6c8820, 0x1b5fa: 0x6d0a6c20, 0x1b5fb: 0x6c734020, + 0x1b5fc: 0x6c033820, 0x1b5fd: 0x6d0a8c20, 0x1b5fe: 0x6c6c1a20, 0x1b5ff: 0x6c3dc620, + // Block 0x6d8, offset 0x1b600 + 0x1b600: 0x6d287e20, 0x1b601: 0x6c090220, 0x1b602: 0x6cd2f020, 0x1b603: 0x6c105820, + 0x1b604: 0x6c2f4620, 0x1b605: 0x6cd66220, 0x1b606: 0x6c384a20, 0x1b607: 0x6ca7ec20, + 0x1b608: 0x6cd19020, 0x1b609: 0x6c3b0e20, 0x1b60a: 0x6cabe420, 0x1b60b: 0x6d34e020, + 0x1b60c: 0x6cf57a20, 0x1b60d: 0x6c565420, 0x1b60e: 0x6c286420, 0x1b60f: 0x6ceede20, + 0x1b610: 0x6d2f2020, 0x1b611: 0x6ce16e20, 0x1b612: 0x6c273220, 0x1b613: 0x6ca0c820, + 0x1b614: 0x6cae0620, 0x1b615: 0x6cabe620, 0x1b616: 0x6ce5e820, 0x1b617: 0x6c0e4c20, + 0x1b618: 0x6c87f220, 0x1b619: 0x6d358620, 0x1b61a: 0x6d397620, 0x1b61b: 0x6c0eb420, + 0x1b61c: 0x6d358820, 0x1b61d: 0x6c2c2620, 0x1b61e: 0x6ca0de20, 0x1b61f: 0x6d16e220, + 0x1b620: 0x6d16e420, 0x1b621: 0x6cb28220, 0x1b622: 0x6cb84820, 0x1b623: 0x6c731420, + 0x1b624: 0x6cc79220, 0x1b625: 0x6cd66420, 0x1b626: 0x6c274020, 0x1b627: 0x6d334020, + 0x1b628: 0x6cd71420, 0x1b629: 0x6cbc3820, 0x1b62a: 0x6d313620, 0x1b62b: 0x6cd1b020, + 0x1b62c: 0x6cc44420, 0x1b62d: 0x6cf77020, 0x1b62e: 0x6c051c20, 0x1b62f: 0x6c275020, + 0x1b630: 0x6c4a4420, 0x1b631: 0x6c1d9420, 0x1b632: 0x6cb29a20, 0x1b633: 0x6d2f2c20, + 0x1b634: 0x6cca4a20, 0x1b635: 0x6cec8a20, 0x1b636: 0x6c275c20, 0x1b637: 0x6ceefc20, + 0x1b638: 0x6c16a420, 0x1b639: 0x6ccc4820, 0x1b63a: 0x6cb5c220, 0x1b63b: 0x6d2abe20, + 0x1b63c: 0x6c4c6820, 0x1b63d: 0x6c997a20, 0x1b63e: 0x6c321620, 0x1b63f: 0x6c540020, + // Block 0x6d9, offset 0x1b640 + 0x1b640: 0x6d334c20, 0x1b641: 0x6d059420, 0x1b642: 0x6c9d4420, 0x1b643: 0x6cef0e20, + 0x1b644: 0x6cf2ec20, 0x1b645: 0x6c3e7620, 0x1b646: 0x6d179620, 0x1b647: 0x6c052e20, + 0x1b648: 0x6cb2a420, 0x1b649: 0x6c2f3a20, 0x1b64a: 0x6c459220, 0x1b64b: 0x6cac5e20, + 0x1b64c: 0x6c5a5420, 0x1b64d: 0x6ce1d220, 0x1b64e: 0x6c9d5420, 0x1b64f: 0x6c644a20, + 0x1b650: 0x6ce2a020, 0x1b651: 0x6c5ad020, 0x1b652: 0x6d37c020, 0x1b653: 0x6cccfa20, + 0x1b654: 0x6c97e620, 0x1b655: 0x6ca29420, 0x1b656: 0x6c0c0820, 0x1b657: 0x6c4c7220, + 0x1b658: 0x6d2adc20, 0x1b659: 0x6ca29620, 0x1b65a: 0x6c053420, 0x1b65b: 0x6d2f3c20, + 0x1b65c: 0x6c6e2820, 0x1b65d: 0x6c15d220, 0x1b65e: 0x6c3ed620, 0x1b65f: 0x6d36a620, + 0x1b660: 0x6c54f420, 0x1b661: 0x6c385820, 0x1b662: 0x6c207620, 0x1b663: 0x6c09f220, + 0x1b664: 0x6c0ae220, 0x1b665: 0x6d2f4820, 0x1b666: 0x6c9d8420, 0x1b667: 0x6cbba420, + 0x1b668: 0x6c14d820, 0x1b669: 0x6c3b8620, 0x1b66a: 0x6c9b4820, 0x1b66b: 0x6c053e20, + 0x1b66c: 0x6c1de420, 0x1b66d: 0x6c9eee20, 0x1b66e: 0x6c1eb820, 0x1b66f: 0x6c6b3220, + 0x1b670: 0x6cfc3e20, 0x1b671: 0x6c7fe220, 0x1b672: 0x6c420a20, 0x1b673: 0x6cb26e20, + 0x1b674: 0x6ca6f220, 0x1b675: 0x6c646020, 0x1b676: 0x6c0e0420, 0x1b677: 0x6c0e0c20, + 0x1b678: 0x6d041620, 0x1b679: 0x6c422620, 0x1b67a: 0x6d107e20, 0x1b67b: 0x6c58ec20, + 0x1b67c: 0x6d200c20, 0x1b67d: 0x6d1e9a20, 0x1b67e: 0x6c613e20, 0x1b67f: 0x6c4a0220, + // Block 0x6da, offset 0x1b680 + 0x1b680: 0x6cb04220, 0x1b681: 0x6ce62420, 0x1b682: 0x6d2b3420, 0x1b683: 0x6c4a0420, + 0x1b684: 0x6d3c0820, 0x1b685: 0x6ca1b020, 0x1b686: 0x6cbec220, 0x1b687: 0x6c091c20, + 0x1b688: 0x6cbd5220, 0x1b689: 0x6c33d820, 0x1b68a: 0x6c206c20, 0x1b68b: 0x6c4ac220, + 0x1b68c: 0x6d0b4820, 0x1b68d: 0x6c043020, 0x1b68e: 0x6c6bb620, 0x1b68f: 0x6d067020, + 0x1b690: 0x6c913420, 0x1b691: 0x6cf42020, 0x1b692: 0x6d3c5420, 0x1b693: 0x6c7a8220, + 0x1b694: 0x6d1b9e20, 0x1b695: 0x6c2bd620, 0x1b696: 0x6cad4c20, 0x1b697: 0x6c2d3c20, + 0x1b698: 0x6d0ad020, 0x1b699: 0x6c9eac20, 0x1b69a: 0x6c44ba20, 0x1b69b: 0x6c22b820, + 0x1b69c: 0x6c3f3e20, 0x1b69d: 0x6ce71820, 0x1b69e: 0x6cacf220, 0x1b69f: 0x6c3a8220, + 0x1b6a0: 0x6cfdb420, 0x1b6a1: 0x6d15ce20, 0x1b6a2: 0x6d359820, 0x1b6a3: 0x6ce54e20, + 0x1b6a4: 0x6d359a20, 0x1b6a5: 0x6d04be20, 0x1b6a6: 0x6c324420, 0x1b6a7: 0x6d428e20, + 0x1b6a8: 0x6cfe9c20, 0x1b6a9: 0x6ce89020, 0x1b6aa: 0x6c4ae620, 0x1b6ab: 0x6c7a8820, + 0x1b6ac: 0x6c984e20, 0x1b6ad: 0x6ce66420, 0x1b6ae: 0x6d1fb620, 0x1b6af: 0x6c101020, + 0x1b6b0: 0x6c0e0e20, 0x1b6b1: 0x6c1a6e20, 0x1b6b2: 0x6c7ef620, 0x1b6b3: 0x6c097620, + 0x1b6b4: 0x6c601620, 0x1b6b5: 0x6c012620, 0x1b6b6: 0x6cd5c220, 0x1b6b7: 0x6c772c20, + 0x1b6b8: 0x6d1d8420, 0x1b6b9: 0x6ceb7820, 0x1b6ba: 0x6cd91620, 0x1b6bb: 0x6cd5c420, + 0x1b6bc: 0x6cbea620, 0x1b6bd: 0x6d233620, 0x1b6be: 0x6d224a20, 0x1b6bf: 0x6c9eb420, + // Block 0x6db, offset 0x1b6c0 + 0x1b6c0: 0x6cd9ac20, 0x1b6c1: 0x6c12e620, 0x1b6c2: 0x6cfd7220, 0x1b6c3: 0x6c3aaa20, + 0x1b6c4: 0x6c6ff820, 0x1b6c5: 0x6c365420, 0x1b6c6: 0x6c4a6620, 0x1b6c7: 0x6c8f3420, + 0x1b6c8: 0x6ccc5620, 0x1b6c9: 0x6c881020, 0x1b6ca: 0x6c80b420, 0x1b6cb: 0x6cd9ae20, + 0x1b6cc: 0x6d365220, 0x1b6cd: 0x6cb3f620, 0x1b6ce: 0x6cbeac20, 0x1b6cf: 0x6c700e20, + 0x1b6d0: 0x6c6ffa20, 0x1b6d1: 0x6c6c9e20, 0x1b6d2: 0x6c025020, 0x1b6d3: 0x6c7e0420, + 0x1b6d4: 0x6c90a020, 0x1b6d5: 0x6d1b5e20, 0x1b6d6: 0x6c8a9e20, 0x1b6d7: 0x6c277e20, + 0x1b6d8: 0x6c927c20, 0x1b6d9: 0x6d182220, 0x1b6da: 0x6c1ea420, 0x1b6db: 0x6c151a20, + 0x1b6dc: 0x6ce8d820, 0x1b6dd: 0x6cd81220, 0x1b6de: 0x6d02e420, 0x1b6df: 0x6c9eb820, + 0x1b6e0: 0x6c16f420, 0x1b6e1: 0x6cf46220, 0x1b6e2: 0x6c3ac420, 0x1b6e3: 0x6c4a0820, + 0x1b6e4: 0x6c7aa620, 0x1b6e5: 0x6c7b3c20, 0x1b6e6: 0x6c0a4820, 0x1b6e7: 0x6cbb2220, + 0x1b6e8: 0x6d021020, 0x1b6e9: 0x6c8c2c20, 0x1b6ea: 0x6c8c2e20, 0x1b6eb: 0x6c8a3220, + 0x1b6ec: 0x6c916e20, 0x1b6ed: 0x6c631220, 0x1b6ee: 0x6d1d2420, 0x1b6ef: 0x6cfafa20, + 0x1b6f0: 0x6ce65420, 0x1b6f1: 0x6d1dd820, 0x1b6f2: 0x6c84bc20, 0x1b6f3: 0x6ce65820, + 0x1b6f4: 0x6d1ac020, 0x1b6f5: 0x6d09d220, 0x1b6f6: 0x6d0c5220, 0x1b6f7: 0x6ce65c20, + 0x1b6f8: 0x6c2b5220, 0x1b6f9: 0x6cac1420, 0x1b6fa: 0x6c665420, 0x1b6fb: 0x6c5b1c20, + 0x1b6fc: 0x6ca39a20, 0x1b6fd: 0x6c5b2220, 0x1b6fe: 0x6c45cc20, 0x1b6ff: 0x6ca75620, + // Block 0x6dc, offset 0x1b700 + 0x1b700: 0x6c762420, 0x1b701: 0x6c0b6620, 0x1b702: 0x6d166220, 0x1b703: 0x6cb73620, + 0x1b704: 0x6ca9f020, 0x1b705: 0x6c3bc620, 0x1b706: 0x6c71a420, 0x1b707: 0x6d0d5620, + 0x1b708: 0x6d16ea20, 0x1b709: 0x6d2a0020, 0x1b70a: 0x6c09f420, 0x1b70b: 0x6d163c20, + 0x1b70c: 0x6d13ba20, 0x1b70d: 0x6c37b820, 0x1b70e: 0x6cc9f820, 0x1b70f: 0x6cd2fc20, + 0x1b710: 0x6c37ba20, 0x1b711: 0x6cd38020, 0x1b712: 0x6cd39a20, 0x1b713: 0x6c454c20, + 0x1b714: 0x6c2e0420, 0x1b715: 0x6d1ac420, 0x1b716: 0x6c563620, 0x1b717: 0x6c3dc820, + 0x1b718: 0x6c52ea20, 0x1b719: 0x6cf34420, 0x1b71a: 0x6ce99c20, 0x1b71b: 0x6c1af420, + 0x1b71c: 0x6c67d420, 0x1b71d: 0x6c03a820, 0x1b71e: 0x6cd04420, 0x1b71f: 0x6c2c1420, + 0x1b720: 0x6d2eb020, 0x1b721: 0x6c73dc20, 0x1b722: 0x6ce1b020, 0x1b723: 0x6c3f4020, + 0x1b724: 0x6c2bd820, 0x1b725: 0x6c9c3820, 0x1b726: 0x6cfb2c20, 0x1b727: 0x6c552220, + 0x1b728: 0x6c173820, 0x1b729: 0x6caa4e20, 0x1b72a: 0x6c6e4c20, 0x1b72b: 0x6d31be20, + 0x1b72c: 0x6d14be20, 0x1b72d: 0x6c9ce020, 0x1b72e: 0x6cc28e20, 0x1b72f: 0x6cec8220, + 0x1b730: 0x6cce5e20, 0x1b731: 0x6cc91820, 0x1b732: 0x6d078620, 0x1b733: 0x6c6e6420, + 0x1b734: 0x6c2dc220, 0x1b735: 0x6d2eb420, 0x1b736: 0x6c67de20, 0x1b737: 0x6cbb0820, + 0x1b738: 0x6cae9a20, 0x1b739: 0x6c287820, 0x1b73a: 0x6cbb0e20, 0x1b73b: 0x6c099620, + 0x1b73c: 0x6c099820, 0x1b73d: 0x6ccf4820, 0x1b73e: 0x6c288820, 0x1b73f: 0x6c65aa20, + // Block 0x6dd, offset 0x1b740 + 0x1b740: 0x6c46b420, 0x1b741: 0x6c448e20, 0x1b742: 0x6c37f020, 0x1b743: 0x6c09c420, + 0x1b744: 0x6c79c020, 0x1b745: 0x6c673820, 0x1b746: 0x6c0d1820, 0x1b747: 0x6cff1420, + 0x1b748: 0x6c28a620, 0x1b749: 0x6c4c2e20, 0x1b74a: 0x6c67f820, 0x1b74b: 0x6c538620, + 0x1b74c: 0x6c9c7820, 0x1b74d: 0x6c4c4420, 0x1b74e: 0x6ceca420, 0x1b74f: 0x6c751620, + 0x1b750: 0x6c616820, 0x1b751: 0x6c616a20, 0x1b752: 0x6c4a3220, 0x1b753: 0x6c28f820, + 0x1b754: 0x6c921a20, 0x1b755: 0x6c921c20, 0x1b756: 0x6ce98820, 0x1b757: 0x6c5bb420, + 0x1b758: 0x6d362220, 0x1b759: 0x6c5bda20, 0x1b75a: 0x6c5bdc20, 0x1b75b: 0x6d155c20, + 0x1b75c: 0x6d155e20, 0x1b75d: 0x6d158020, 0x1b75e: 0x6d158220, 0x1b75f: 0x6d265e20, + 0x1b760: 0x6d266220, 0x1b761: 0x6cccb220, 0x1b762: 0x6d03c020, 0x1b763: 0x6cf17c20, + 0x1b764: 0x6ce71020, 0x1b765: 0x6d0e4620, 0x1b766: 0x6d0e4820, 0x1b767: 0x6d22f020, + 0x1b768: 0x6c1a9c20, 0x1b769: 0x6c112620, 0x1b76a: 0x6c0bfa20, 0x1b76b: 0x6c2dc420, + 0x1b76c: 0x6c0d3020, 0x1b76d: 0x6cae9e20, 0x1b76e: 0x6d1e4620, 0x1b76f: 0x6cb19820, + 0x1b770: 0x6d2ec420, 0x1b771: 0x6d1d0420, 0x1b772: 0x6c1af020, 0x1b773: 0x6c1bd420, + 0x1b774: 0x6d3d1c20, 0x1b775: 0x6ceb6c20, 0x1b776: 0x6c5fc820, 0x1b777: 0x6c39be20, + 0x1b778: 0x6d379220, 0x1b779: 0x6d168420, 0x1b77a: 0x6cedde20, 0x1b77b: 0x6c17fe20, + 0x1b77c: 0x6c08c020, 0x1b77d: 0x6c2b1620, 0x1b77e: 0x6c8caa20, 0x1b77f: 0x6c3dea20, + // Block 0x6de, offset 0x1b780 + 0x1b780: 0x6cedfa20, 0x1b781: 0x6d328820, 0x1b782: 0x6c241e20, 0x1b783: 0x6cedfc20, + 0x1b784: 0x6c6e4e20, 0x1b785: 0x6c274220, 0x1b786: 0x6cf59e20, 0x1b787: 0x6d0a7020, + 0x1b788: 0x6c523a20, 0x1b789: 0x6d0f9420, 0x1b78a: 0x6c57e820, 0x1b78b: 0x6c93d020, + 0x1b78c: 0x6c546420, 0x1b78d: 0x6cee0220, 0x1b78e: 0x6c1a6620, 0x1b78f: 0x6d35b220, + 0x1b790: 0x6d061820, 0x1b791: 0x6c6e6620, 0x1b792: 0x6ce89220, 0x1b793: 0x6c238e20, + 0x1b794: 0x6d377e20, 0x1b795: 0x6c7eea20, 0x1b796: 0x6c239620, 0x1b797: 0x6c2a9020, + 0x1b798: 0x6cabf820, 0x1b799: 0x6cf7dc20, 0x1b79a: 0x6c300020, 0x1b79b: 0x6c61e620, + 0x1b79c: 0x6c16a620, 0x1b79d: 0x6d35dc20, 0x1b79e: 0x6c239820, 0x1b79f: 0x6d387020, + 0x1b7a0: 0x6c7ef820, 0x1b7a1: 0x6d233820, 0x1b7a2: 0x6d018e20, 0x1b7a3: 0x6c6bdc20, + 0x1b7a4: 0x6c667820, 0x1b7a5: 0x6cd38220, 0x1b7a6: 0x6c641620, 0x1b7a7: 0x6c0b9820, + 0x1b7a8: 0x6c59c220, 0x1b7a9: 0x6c3ff020, 0x1b7aa: 0x6d0a0e20, 0x1b7ab: 0x6cefbe20, + 0x1b7ac: 0x6cad0420, 0x1b7ad: 0x6d110c20, 0x1b7ae: 0x6cee9820, 0x1b7af: 0x6cf64820, + 0x1b7b0: 0x6d32d020, 0x1b7b1: 0x6cb1b620, 0x1b7b2: 0x6ce36220, 0x1b7b3: 0x6c2a7c20, + 0x1b7b4: 0x6d32de20, 0x1b7b5: 0x6d32f020, 0x1b7b6: 0x6c0cf420, 0x1b7b7: 0x6c2a7e20, + 0x1b7b8: 0x6c1cd420, 0x1b7b9: 0x6c183020, 0x1b7ba: 0x6c692620, 0x1b7bb: 0x6c5c2c20, + 0x1b7bc: 0x6c693c20, 0x1b7bd: 0x6c5af220, 0x1b7be: 0x6c9a2e20, 0x1b7bf: 0x6c906c20, + // Block 0x6df, offset 0x1b7c0 + 0x1b7c0: 0x6cfd9220, 0x1b7c1: 0x6c067a20, 0x1b7c2: 0x6cc1fe20, 0x1b7c3: 0x6d02a220, + 0x1b7c4: 0x6d036220, 0x1b7c5: 0x6c090420, 0x1b7c6: 0x6d164020, 0x1b7c7: 0x6c820c20, + 0x1b7c8: 0x6cc56420, 0x1b7c9: 0x6c29b620, 0x1b7ca: 0x6c2f8e20, 0x1b7cb: 0x6c410820, + 0x1b7cc: 0x6c618020, 0x1b7cd: 0x6cc58620, 0x1b7ce: 0x6cc56a20, 0x1b7cf: 0x6c162620, + 0x1b7d0: 0x6ce05020, 0x1b7d1: 0x6ce26820, 0x1b7d2: 0x6ce26a20, 0x1b7d3: 0x6c416020, + 0x1b7d4: 0x6cb72a20, 0x1b7d5: 0x6cd2fe20, 0x1b7d6: 0x6c25ae20, 0x1b7d7: 0x6d357420, + 0x1b7d8: 0x6cee4620, 0x1b7d9: 0x6c982820, 0x1b7da: 0x6cf56e20, 0x1b7db: 0x6c388220, + 0x1b7dc: 0x6d1ba020, 0x1b7dd: 0x6ce4d820, 0x1b7de: 0x6c9f2c20, 0x1b7df: 0x6cf1ca20, + 0x1b7e0: 0x6d379620, 0x1b7e1: 0x6c1cac20, 0x1b7e2: 0x6cf4b620, 0x1b7e3: 0x6c5fca20, + 0x1b7e4: 0x6cf42220, 0x1b7e5: 0x6cf84620, 0x1b7e6: 0x6c639a20, 0x1b7e7: 0x6d1e8e20, + 0x1b7e8: 0x6ced7420, 0x1b7e9: 0x6c230220, 0x1b7ea: 0x6cd90220, 0x1b7eb: 0x6c7b0e20, + 0x1b7ec: 0x6d22d020, 0x1b7ed: 0x6c0b6c20, 0x1b7ee: 0x6d357620, 0x1b7ef: 0x6cb57420, + 0x1b7f0: 0x6c251820, 0x1b7f1: 0x6c189a20, 0x1b7f2: 0x6cdf5e20, 0x1b7f3: 0x6cea3e20, + 0x1b7f4: 0x6cb96e20, 0x1b7f5: 0x6ca75a20, 0x1b7f6: 0x6c5cde20, 0x1b7f7: 0x6d045420, + 0x1b7f8: 0x6ca97620, 0x1b7f9: 0x6c7bb620, 0x1b7fa: 0x6cfa7820, 0x1b7fb: 0x6d02aa20, + 0x1b7fc: 0x6c772420, 0x1b7fd: 0x6c549e20, 0x1b7fe: 0x6c767c20, 0x1b7ff: 0x6c3bce20, + // Block 0x6e0, offset 0x1b800 + 0x1b800: 0x6c57e620, 0x1b801: 0x6cdf6220, 0x1b802: 0x6cd95220, 0x1b803: 0x6cf42420, + 0x1b804: 0x6cab9a20, 0x1b805: 0x6c170220, 0x1b806: 0x6c20a020, 0x1b807: 0x6c71fa20, + 0x1b808: 0x6d16b420, 0x1b809: 0x6c05e620, 0x1b80a: 0x6c173a20, 0x1b80b: 0x6c9f2e20, + 0x1b80c: 0x6cadb020, 0x1b80d: 0x6d428020, 0x1b80e: 0x6d2b7620, 0x1b80f: 0x6d104020, + 0x1b810: 0x6c720a20, 0x1b811: 0x6c04e820, 0x1b812: 0x6caa5e20, 0x1b813: 0x6ca49420, + 0x1b814: 0x6d328a20, 0x1b815: 0x6cabe820, 0x1b816: 0x6c106a20, 0x1b817: 0x6ce5ea20, + 0x1b818: 0x6c567020, 0x1b819: 0x6c566420, 0x1b81a: 0x6c720c20, 0x1b81b: 0x6c267e20, + 0x1b81c: 0x6c87f420, 0x1b81d: 0x6cd7d420, 0x1b81e: 0x6c1d8e20, 0x1b81f: 0x6c2c2020, + 0x1b820: 0x6c274420, 0x1b821: 0x6d147020, 0x1b822: 0x6ce84020, 0x1b823: 0x6d1f0620, + 0x1b824: 0x6c3d4820, 0x1b825: 0x6c5ff420, 0x1b826: 0x6cae5420, 0x1b827: 0x6d041820, + 0x1b828: 0x6d260420, 0x1b829: 0x6ca5be20, 0x1b82a: 0x6c48e620, 0x1b82b: 0x6c3dec20, + 0x1b82c: 0x6cf84820, 0x1b82d: 0x6c093220, 0x1b82e: 0x6d1e9620, 0x1b82f: 0x6cbc9620, + 0x1b830: 0x6d086e20, 0x1b831: 0x6c230820, 0x1b832: 0x6c0dc220, 0x1b833: 0x6c5a4220, + 0x1b834: 0x6d068020, 0x1b835: 0x6c1f0e20, 0x1b836: 0x6c093420, 0x1b837: 0x6cd5ac20, + 0x1b838: 0x6cf5a020, 0x1b839: 0x6cdf9620, 0x1b83a: 0x6d1e8220, 0x1b83b: 0x6d3fe820, + 0x1b83c: 0x6c334220, 0x1b83d: 0x6ca1b220, 0x1b83e: 0x6d34f220, 0x1b83f: 0x6d16b620, + // Block 0x6e1, offset 0x1b840 + 0x1b840: 0x6cd33220, 0x1b841: 0x6ca59420, 0x1b842: 0x6d09e820, 0x1b843: 0x6cd33420, + 0x1b844: 0x6cf86020, 0x1b845: 0x6c81a420, 0x1b846: 0x6c525820, 0x1b847: 0x6c7b8e20, + 0x1b848: 0x6ca1c620, 0x1b849: 0x6d34fe20, 0x1b84a: 0x6d008020, 0x1b84b: 0x6c88e820, + 0x1b84c: 0x6ce55220, 0x1b84d: 0x6c5a4820, 0x1b84e: 0x6c2e7020, 0x1b84f: 0x6c502820, + 0x1b850: 0x6c799e20, 0x1b851: 0x6c4ad420, 0x1b852: 0x6c525a20, 0x1b853: 0x6cf5a220, + 0x1b854: 0x6c68ce20, 0x1b855: 0x6cd5b820, 0x1b856: 0x6cd8fe20, 0x1b857: 0x6c54aa20, + 0x1b858: 0x6cbfa420, 0x1b859: 0x6d104220, 0x1b85a: 0x6c5ba820, 0x1b85b: 0x6c5b2420, + 0x1b85c: 0x6c1bfa20, 0x1b85d: 0x6c63b020, 0x1b85e: 0x6d149a20, 0x1b85f: 0x6d045e20, + 0x1b860: 0x6c48ec20, 0x1b861: 0x6c8c4c20, 0x1b862: 0x6c5a9220, 0x1b863: 0x6d3f3a20, + 0x1b864: 0x6d068e20, 0x1b865: 0x6c1b8a20, 0x1b866: 0x6cce4e20, 0x1b867: 0x6caa7c20, + 0x1b868: 0x6c524220, 0x1b869: 0x6c371020, 0x1b86a: 0x6c788e20, 0x1b86b: 0x6c305e20, + 0x1b86c: 0x6ce48820, 0x1b86d: 0x6c457c20, 0x1b86e: 0x6cc29020, 0x1b86f: 0x6cf94220, + 0x1b870: 0x6cb84a20, 0x1b871: 0x6d268c20, 0x1b872: 0x6cae5820, 0x1b873: 0x6c790020, + 0x1b874: 0x6c2a6420, 0x1b875: 0x6c5baa20, 0x1b876: 0x6c35fa20, 0x1b877: 0x6d003220, + 0x1b878: 0x6ce7c620, 0x1b879: 0x6d0be020, 0x1b87a: 0x6c764c20, 0x1b87b: 0x6c12ce20, + 0x1b87c: 0x6ca4e020, 0x1b87d: 0x6d282020, 0x1b87e: 0x6c984020, 0x1b87f: 0x6d1e2a20, + // Block 0x6e2, offset 0x1b880 + 0x1b880: 0x6d1e2220, 0x1b881: 0x6d24d420, 0x1b882: 0x6caf5220, 0x1b883: 0x6c7da020, + 0x1b884: 0x6cbb6a20, 0x1b885: 0x6d269420, 0x1b886: 0x6d230c20, 0x1b887: 0x6ce89420, + 0x1b888: 0x6c6bd820, 0x1b889: 0x6cf5e220, 0x1b88a: 0x6d304a20, 0x1b88b: 0x6c8c4e20, + 0x1b88c: 0x6ce3e020, 0x1b88d: 0x6c4e9620, 0x1b88e: 0x6c502a20, 0x1b88f: 0x6cbca820, + 0x1b890: 0x6ce3ea20, 0x1b891: 0x6c108220, 0x1b892: 0x6d172620, 0x1b893: 0x6cba4a20, + 0x1b894: 0x6c5b4c20, 0x1b895: 0x6cf5bc20, 0x1b896: 0x6c070020, 0x1b897: 0x6c975e20, + 0x1b898: 0x6d13e420, 0x1b899: 0x6c524820, 0x1b89a: 0x6cd95620, 0x1b89b: 0x6cc29420, + 0x1b89c: 0x6c1a6820, 0x1b89d: 0x6c7c3820, 0x1b89e: 0x6cf4d020, 0x1b89f: 0x6cf4d220, + 0x1b8a0: 0x6d1e9e20, 0x1b8a1: 0x6c83b620, 0x1b8a2: 0x6c89ae20, 0x1b8a3: 0x6c590e20, + 0x1b8a4: 0x6c230c20, 0x1b8a5: 0x6d175a20, 0x1b8a6: 0x6d269620, 0x1b8a7: 0x6c85c820, + 0x1b8a8: 0x6ca8e620, 0x1b8a9: 0x6ca4e620, 0x1b8aa: 0x6c360e20, 0x1b8ab: 0x6cc3b620, + 0x1b8ac: 0x6d080e20, 0x1b8ad: 0x6cb8c420, 0x1b8ae: 0x6cf4d420, 0x1b8af: 0x6c9fa420, + 0x1b8b0: 0x6c239a20, 0x1b8b1: 0x6c3a5220, 0x1b8b2: 0x6c069c20, 0x1b8b3: 0x6c344c20, + 0x1b8b4: 0x6c253420, 0x1b8b5: 0x6c171220, 0x1b8b6: 0x6c9af220, 0x1b8b7: 0x6cca4e20, + 0x1b8b8: 0x6c61ea20, 0x1b8b9: 0x6c498820, 0x1b8ba: 0x6c497e20, 0x1b8bb: 0x6d042820, + 0x1b8bc: 0x6c2a0e20, 0x1b8bd: 0x6cb4e620, 0x1b8be: 0x6c797420, 0x1b8bf: 0x6ce4ec20, + // Block 0x6e3, offset 0x1b8c0 + 0x1b8c0: 0x6c94f220, 0x1b8c1: 0x6cf60a20, 0x1b8c2: 0x6c76d220, 0x1b8c3: 0x6c4bc020, + 0x1b8c4: 0x6ca6a020, 0x1b8c5: 0x6cbe7620, 0x1b8c6: 0x6c1da020, 0x1b8c7: 0x6c339820, + 0x1b8c8: 0x6c4cb620, 0x1b8c9: 0x6d2d7420, 0x1b8ca: 0x6c6da820, 0x1b8cb: 0x6ced0420, + 0x1b8cc: 0x6d24ea20, 0x1b8cd: 0x6c6c4220, 0x1b8ce: 0x6c620020, 0x1b8cf: 0x6c7f9620, + 0x1b8d0: 0x6d231020, 0x1b8d1: 0x6c5dca20, 0x1b8d2: 0x6c512620, 0x1b8d3: 0x6cc2da20, + 0x1b8d4: 0x6cdfdc20, 0x1b8d5: 0x6ce3ec20, 0x1b8d6: 0x6ce3f420, 0x1b8d7: 0x6ca81620, + 0x1b8d8: 0x6cee0e20, 0x1b8d9: 0x6c21b420, 0x1b8da: 0x6c54bc20, 0x1b8db: 0x6c5cc020, + 0x1b8dc: 0x6cf5e420, 0x1b8dd: 0x6c16ea20, 0x1b8de: 0x6d02ca20, 0x1b8df: 0x6ceefe20, + 0x1b8e0: 0x6c5bc020, 0x1b8e1: 0x6c363420, 0x1b8e2: 0x6cdd6620, 0x1b8e3: 0x6d3fee20, + 0x1b8e4: 0x6c648420, 0x1b8e5: 0x6d1e3620, 0x1b8e6: 0x6c2d4e20, 0x1b8e7: 0x6c723c20, + 0x1b8e8: 0x6c11ce20, 0x1b8e9: 0x6c19fc20, 0x1b8ea: 0x6c2a6e20, 0x1b8eb: 0x6c072220, + 0x1b8ec: 0x6cbcb420, 0x1b8ed: 0x6c119420, 0x1b8ee: 0x6c287a20, 0x1b8ef: 0x6c498020, + 0x1b8f0: 0x6c34f420, 0x1b8f1: 0x6ca4f820, 0x1b8f2: 0x6d283220, 0x1b8f3: 0x6cfdea20, + 0x1b8f4: 0x6d3c8420, 0x1b8f5: 0x6c2ea220, 0x1b8f6: 0x6c59c420, 0x1b8f7: 0x6c217e20, + 0x1b8f8: 0x6cbf2220, 0x1b8f9: 0x6cc54c20, 0x1b8fa: 0x6d037220, 0x1b8fb: 0x6c12e820, + 0x1b8fc: 0x6c0b3e20, 0x1b8fd: 0x6c9fac20, 0x1b8fe: 0x6d3f8a20, 0x1b8ff: 0x6ce32220, + // Block 0x6e4, offset 0x1b900 + 0x1b900: 0x6cbc2620, 0x1b901: 0x6c1db820, 0x1b902: 0x6c073020, 0x1b903: 0x6d079820, + 0x1b904: 0x6cee8620, 0x1b905: 0x6c43ea20, 0x1b906: 0x6cb8ee20, 0x1b907: 0x6cefc020, + 0x1b908: 0x6d236a20, 0x1b909: 0x6d212420, 0x1b90a: 0x6c099a20, 0x1b90b: 0x6d079a20, + 0x1b90c: 0x6c592020, 0x1b90d: 0x6c9fb620, 0x1b90e: 0x6c099c20, 0x1b90f: 0x6d17e220, + 0x1b910: 0x6c9e2420, 0x1b911: 0x6d1e3820, 0x1b912: 0x6c768820, 0x1b913: 0x6c296620, + 0x1b914: 0x6d19e020, 0x1b915: 0x6c363620, 0x1b916: 0x6c18c620, 0x1b917: 0x6c998a20, + 0x1b918: 0x6cb86820, 0x1b919: 0x6c78b820, 0x1b91a: 0x6d214820, 0x1b91b: 0x6c00a820, + 0x1b91c: 0x6cbcc020, 0x1b91d: 0x6d0d7e20, 0x1b91e: 0x6caaf620, 0x1b91f: 0x6c41dc20, + 0x1b920: 0x6d283420, 0x1b921: 0x6d3ff020, 0x1b922: 0x6cc9c220, 0x1b923: 0x6c839620, + 0x1b924: 0x6c3bd820, 0x1b925: 0x6d1d6620, 0x1b926: 0x6c7cf820, 0x1b927: 0x6c7cfa20, + 0x1b928: 0x6cc3d820, 0x1b929: 0x6c459420, 0x1b92a: 0x6d27ae20, 0x1b92b: 0x6cdaca20, + 0x1b92c: 0x6cdae420, 0x1b92d: 0x6cb5f820, 0x1b92e: 0x6d110e20, 0x1b92f: 0x6cd96020, + 0x1b930: 0x6c5a6c20, 0x1b931: 0x6c604e20, 0x1b932: 0x6c478c20, 0x1b933: 0x6c726220, + 0x1b934: 0x6c20ae20, 0x1b935: 0x6ca6aa20, 0x1b936: 0x6d00b620, 0x1b937: 0x6c766020, + 0x1b938: 0x6d332a20, 0x1b939: 0x6d1e4820, 0x1b93a: 0x6c12ae20, 0x1b93b: 0x6d0a9a20, + 0x1b93c: 0x6cd0aa20, 0x1b93d: 0x6c0f1020, 0x1b93e: 0x6c768e20, 0x1b93f: 0x6d262820, + // Block 0x6e5, offset 0x1b940 + 0x1b940: 0x6cf89e20, 0x1b941: 0x6c5d3420, 0x1b942: 0x6d1e5020, 0x1b943: 0x6d102420, + 0x1b944: 0x6c862e20, 0x1b945: 0x6ccaaa20, 0x1b946: 0x6ce1d420, 0x1b947: 0x6d19f220, + 0x1b948: 0x6c224e20, 0x1b949: 0x6d06f220, 0x1b94a: 0x6cba5820, 0x1b94b: 0x6cdf7c20, + 0x1b94c: 0x6c599420, 0x1b94d: 0x6d283a20, 0x1b94e: 0x6cd0ac20, 0x1b94f: 0x6ca03820, + 0x1b950: 0x6c463020, 0x1b951: 0x6ccf5020, 0x1b952: 0x6c23a420, 0x1b953: 0x6cb15820, + 0x1b954: 0x6ca29820, 0x1b955: 0x6ca2a020, 0x1b956: 0x6c4c7620, 0x1b957: 0x6c1c5620, + 0x1b958: 0x6c11d420, 0x1b959: 0x6c11a620, 0x1b95a: 0x6c119c20, 0x1b95b: 0x6c24da20, + 0x1b95c: 0x6c9fc220, 0x1b95d: 0x6ce27e20, 0x1b95e: 0x6d2ec820, 0x1b95f: 0x6ce7ce20, + 0x1b960: 0x6c02d820, 0x1b961: 0x6cd6d620, 0x1b962: 0x6c97e820, 0x1b963: 0x6c499620, + 0x1b964: 0x6cc3ea20, 0x1b965: 0x6d2a8420, 0x1b966: 0x6c701620, 0x1b967: 0x6c5c1020, + 0x1b968: 0x6c765820, 0x1b969: 0x6c881220, 0x1b96a: 0x6cab9e20, 0x1b96b: 0x6cd96c20, + 0x1b96c: 0x6cbd8e20, 0x1b96d: 0x6d1b7020, 0x1b96e: 0x6c93f220, 0x1b96f: 0x6cce0c20, + 0x1b970: 0x6cf0b820, 0x1b971: 0x6ce95220, 0x1b972: 0x6c976c20, 0x1b973: 0x6cb8fe20, + 0x1b974: 0x6ccf6220, 0x1b975: 0x6d1d9c20, 0x1b976: 0x6cbed620, 0x1b977: 0x6c773e20, + 0x1b978: 0x6c2c8e20, 0x1b979: 0x6d348e20, 0x1b97a: 0x6c90a220, 0x1b97b: 0x6c738220, + 0x1b97c: 0x6cb51c20, 0x1b97d: 0x6cb50c20, 0x1b97e: 0x6d23c020, 0x1b97f: 0x6cb2c220, + // Block 0x6e6, offset 0x1b980 + 0x1b980: 0x6c89f620, 0x1b981: 0x6c23da20, 0x1b982: 0x6d1eae20, 0x1b983: 0x6c1cd620, + 0x1b984: 0x6d36aa20, 0x1b985: 0x6ce7d020, 0x1b986: 0x6c197a20, 0x1b987: 0x6cb7c020, + 0x1b988: 0x6cc12020, 0x1b989: 0x6caebc20, 0x1b98a: 0x6c075a20, 0x1b98b: 0x6c0cb820, + 0x1b98c: 0x6cbf5c20, 0x1b98d: 0x6c686a20, 0x1b98e: 0x6d2b8a20, 0x1b98f: 0x6c1c4220, + 0x1b990: 0x6c883620, 0x1b991: 0x6cb2cc20, 0x1b992: 0x6c7d0c20, 0x1b993: 0x6c5c1220, + 0x1b994: 0x6cbbf020, 0x1b995: 0x6c1a3620, 0x1b996: 0x6d1b7a20, 0x1b997: 0x6d1b7c20, + 0x1b998: 0x6cf80620, 0x1b999: 0x6cf6ba20, 0x1b99a: 0x6c28a820, 0x1b99b: 0x6ce00220, + 0x1b99c: 0x6c34a220, 0x1b99d: 0x6c335e20, 0x1b99e: 0x6c335a20, 0x1b99f: 0x6cdaf820, + 0x1b9a0: 0x6c74b620, 0x1b9a1: 0x6c130e20, 0x1b9a2: 0x6cff0220, 0x1b9a3: 0x6c385a20, + 0x1b9a4: 0x6c3be420, 0x1b9a5: 0x6c817220, 0x1b9a6: 0x6c81da20, 0x1b9a7: 0x6c1cd820, + 0x1b9a8: 0x6c4db820, 0x1b9a9: 0x6cb7d220, 0x1b9aa: 0x6cfb7c20, 0x1b9ab: 0x6c9fc420, + 0x1b9ac: 0x6c6e2a20, 0x1b9ad: 0x6c8a7420, 0x1b9ae: 0x6cf46420, 0x1b9af: 0x6c11da20, + 0x1b9b0: 0x6c749020, 0x1b9b1: 0x6c245420, 0x1b9b2: 0x6cfd0820, 0x1b9b3: 0x6ce06e20, + 0x1b9b4: 0x6cd12220, 0x1b9b5: 0x6caf9820, 0x1b9b6: 0x6d188e20, 0x1b9b7: 0x6c1f7420, + 0x1b9b8: 0x6cfad620, 0x1b9b9: 0x6ca4c020, 0x1b9ba: 0x6c28ac20, 0x1b9bb: 0x6ce07420, + 0x1b9bc: 0x6c6e2c20, 0x1b9bd: 0x6cd93220, 0x1b9be: 0x6c4f0220, 0x1b9bf: 0x6c693e20, + // Block 0x6e7, offset 0x1b9c0 + 0x1b9c0: 0x6cf0cc20, 0x1b9c1: 0x6d07cc20, 0x1b9c2: 0x6c303620, 0x1b9c3: 0x6cbdb020, + 0x1b9c4: 0x6cbd9e20, 0x1b9c5: 0x6c728a20, 0x1b9c6: 0x6c12b220, 0x1b9c7: 0x6c791020, + 0x1b9c8: 0x6d021420, 0x1b9c9: 0x6d1bfe20, 0x1b9ca: 0x6c02ea20, 0x1b9cb: 0x6c99ba20, + 0x1b9cc: 0x6d189020, 0x1b9cd: 0x6c8c3020, 0x1b9ce: 0x6ccb5420, 0x1b9cf: 0x6c75e420, + 0x1b9d0: 0x6c57f220, 0x1b9d1: 0x6c9afe20, 0x1b9d2: 0x6c803c20, 0x1b9d3: 0x6c00ca20, + 0x1b9d4: 0x6c8c3220, 0x1b9d5: 0x6d0c3c20, 0x1b9d6: 0x6c7e2620, 0x1b9d7: 0x6cfa4a20, + 0x1b9d8: 0x6c1c8420, 0x1b9d9: 0x6d228e20, 0x1b9da: 0x6d1b8820, 0x1b9db: 0x6c270e20, + 0x1b9dc: 0x6c9be420, 0x1b9dd: 0x6c00d820, 0x1b9de: 0x6c9b4a20, 0x1b9df: 0x6c337020, + 0x1b9e0: 0x6cb65c20, 0x1b9e1: 0x6ca0ac20, 0x1b9e2: 0x6c7fbe20, 0x1b9e3: 0x6c9b0020, + 0x1b9e4: 0x6c1de620, 0x1b9e5: 0x6d370220, 0x1b9e6: 0x6cab1620, 0x1b9e7: 0x6cab1820, + 0x1b9e8: 0x6d0c3420, 0x1b9e9: 0x6d103420, 0x1b9ea: 0x6c0f8a20, 0x1b9eb: 0x6d372820, + 0x1b9ec: 0x6c7c0c20, 0x1b9ed: 0x6c7bd220, 0x1b9ee: 0x6d1ff820, 0x1b9ef: 0x6c3db220, + 0x1b9f0: 0x6c8eb420, 0x1b9f1: 0x6c9ef020, 0x1b9f2: 0x6c1a5420, 0x1b9f3: 0x6c5cb020, + 0x1b9f4: 0x6c163820, 0x1b9f5: 0x6c9bea20, 0x1b9f6: 0x6c804a20, 0x1b9f7: 0x6c57fa20, + 0x1b9f8: 0x6d083620, 0x1b9f9: 0x6cc51a20, 0x1b9fa: 0x6c164020, 0x1b9fb: 0x6c62b820, + 0x1b9fc: 0x6c72ca20, 0x1b9fd: 0x6c583e20, 0x1b9fe: 0x6ccf8820, 0x1b9ff: 0x6d195a20, + // Block 0x6e8, offset 0x1ba00 + 0x1ba00: 0x6c893820, 0x1ba01: 0x6ca44020, 0x1ba02: 0x6c9cb020, 0x1ba03: 0x6ce18c20, + 0x1ba04: 0x6c751a20, 0x1ba05: 0x6c42b020, 0x1ba06: 0x6c42b220, 0x1ba07: 0x6d3c5220, + 0x1ba08: 0x6c436020, 0x1ba09: 0x6d266e20, 0x1ba0a: 0x6cf49820, 0x1ba0b: 0x6c645a20, + 0x1ba0c: 0x6d056420, 0x1ba0d: 0x6cd59420, 0x1ba0e: 0x6cc65020, 0x1ba0f: 0x6cf83820, + 0x1ba10: 0x6c19b220, 0x1ba11: 0x6cf2a620, 0x1ba12: 0x6c6bb820, 0x1ba13: 0x6c436e20, + 0x1ba14: 0x6c646c20, 0x1ba15: 0x6cbaa020, 0x1ba16: 0x6c5da020, 0x1ba17: 0x6cbaa220, + 0x1ba18: 0x6d2e4a20, 0x1ba19: 0x6c306e20, 0x1ba1a: 0x6cb81220, 0x1ba1b: 0x6c63b620, + 0x1ba1c: 0x6c2e9220, 0x1ba1d: 0x6d2b5e20, 0x1ba1e: 0x6c63be20, 0x1ba1f: 0x6c614420, + 0x1ba20: 0x6d33de20, 0x1ba21: 0x6c76b020, 0x1ba22: 0x6c603420, 0x1ba23: 0x6c7c8620, + 0x1ba24: 0x6c414020, 0x1ba25: 0x6c2ace20, 0x1ba26: 0x6d2e6820, 0x1ba27: 0x6cbaca20, + 0x1ba28: 0x6c439e20, 0x1ba29: 0x6c65bc20, 0x1ba2a: 0x6c6b0620, 0x1ba2b: 0x6d238e20, + 0x1ba2c: 0x6c65be20, 0x1ba2d: 0x6d0dc820, 0x1ba2e: 0x6c92a020, 0x1ba2f: 0x6c54f620, + 0x1ba30: 0x6d2e7e20, 0x1ba31: 0x6cf8da20, 0x1ba32: 0x6cf8ec20, 0x1ba33: 0x6c219a20, + 0x1ba34: 0x6c279420, 0x1ba35: 0x6cc20420, 0x1ba36: 0x6c563820, 0x1ba37: 0x6c563a20, + 0x1ba38: 0x6c563c20, 0x1ba39: 0x6c35c820, 0x1ba3a: 0x6cd30c20, 0x1ba3b: 0x6ce3d220, + 0x1ba3c: 0x6c992620, 0x1ba3d: 0x6c566620, 0x1ba3e: 0x6c858c20, 0x1ba3f: 0x6c39a620, + // Block 0x6e9, offset 0x1ba40 + 0x1ba40: 0x6cdd4e20, 0x1ba41: 0x6c0b2e20, 0x1ba42: 0x6c2d4220, 0x1ba43: 0x6c6ed820, + 0x1ba44: 0x6cce3420, 0x1ba45: 0x6d14c020, 0x1ba46: 0x6d15dc20, 0x1ba47: 0x6ccd7a20, + 0x1ba48: 0x6c568c20, 0x1ba49: 0x6c3a0220, 0x1ba4a: 0x6d0d8020, 0x1ba4b: 0x6cd43620, + 0x1ba4c: 0x6cd48e20, 0x1ba4d: 0x6c10fe20, 0x1ba4e: 0x6d2bc020, 0x1ba4f: 0x6cbff220, + 0x1ba50: 0x6c820e20, 0x1ba51: 0x6cb3fe20, 0x1ba52: 0x6c031020, 0x1ba53: 0x6c26e020, + 0x1ba54: 0x6cc61020, 0x1ba55: 0x6c390220, 0x1ba56: 0x6cc83020, 0x1ba57: 0x6d292a20, + 0x1ba58: 0x6cea9620, 0x1ba59: 0x6d2f1e20, 0x1ba5a: 0x6c2df620, 0x1ba5b: 0x6c776620, + 0x1ba5c: 0x6d207220, 0x1ba5d: 0x6c7a1820, 0x1ba5e: 0x6c41c420, 0x1ba5f: 0x6ccf9e20, + 0x1ba60: 0x6c137820, 0x1ba61: 0x6cea9820, 0x1ba62: 0x6c475420, 0x1ba63: 0x6c79d620, + 0x1ba64: 0x6cf4a220, 0x1ba65: 0x6c2a9420, 0x1ba66: 0x6cb89820, 0x1ba67: 0x6d343620, + 0x1ba68: 0x6cc5b620, 0x1ba69: 0x6c7de620, 0x1ba6a: 0x6c9ac020, 0x1ba6b: 0x6ccade20, + 0x1ba6c: 0x6d0f7420, 0x1ba6d: 0x6ca97820, 0x1ba6e: 0x6c051220, 0x1ba6f: 0x6c17e620, + 0x1ba70: 0x6cc53620, 0x1ba71: 0x6cf57020, 0x1ba72: 0x6cb97220, 0x1ba73: 0x6c047020, + 0x1ba74: 0x6c639c20, 0x1ba75: 0x6d20b220, 0x1ba76: 0x6c3dda20, 0x1ba77: 0x6c02c220, + 0x1ba78: 0x6cf57e20, 0x1ba79: 0x6caf2a20, 0x1ba7a: 0x6d34e620, 0x1ba7b: 0x6d357820, + 0x1ba7c: 0x6c35d220, 0x1ba7d: 0x6c2a9620, 0x1ba7e: 0x6d2f8420, 0x1ba7f: 0x6c19bc20, + // Block 0x6ea, offset 0x1ba80 + 0x1ba80: 0x6c618420, 0x1ba81: 0x6d0d3c20, 0x1ba82: 0x6c7bb820, 0x1ba83: 0x6c0b6e20, + 0x1ba84: 0x6c173220, 0x1ba85: 0x6c704e20, 0x1ba86: 0x6cf1cc20, 0x1ba87: 0x6c551e20, + 0x1ba88: 0x6d267e20, 0x1ba89: 0x6c73de20, 0x1ba8a: 0x6c039a20, 0x1ba8b: 0x6cbe0420, + 0x1ba8c: 0x6c282020, 0x1ba8d: 0x6d331820, 0x1ba8e: 0x6d27d820, 0x1ba8f: 0x6cecc820, + 0x1ba90: 0x6ca54820, 0x1ba91: 0x6d168820, 0x1ba92: 0x6cd49e20, 0x1ba93: 0x6d3b5420, + 0x1ba94: 0x6cb3d020, 0x1ba95: 0x6ce7e620, 0x1ba96: 0x6c30da20, 0x1ba97: 0x6c777e20, + 0x1ba98: 0x6d301220, 0x1ba99: 0x6cb3d220, 0x1ba9a: 0x6c3f3620, 0x1ba9b: 0x6cad3220, + 0x1ba9c: 0x6c036020, 0x1ba9d: 0x6c029c20, 0x1ba9e: 0x6d2aa420, 0x1ba9f: 0x6ce94820, + 0x1baa0: 0x6c79b220, 0x1baa1: 0x6c94d020, 0x1baa2: 0x6cbb3820, 0x1baa3: 0x6d287a20, + 0x1baa4: 0x6c565620, 0x1baa5: 0x6c063020, 0x1baa6: 0x6c0dc420, 0x1baa7: 0x6d34f420, + 0x1baa8: 0x6cae5620, 0x1baa9: 0x6cdf8c20, 0x1baaa: 0x6c106c20, 0x1baab: 0x6caf3620, + 0x1baac: 0x6cdf1820, 0x1baad: 0x6d118c20, 0x1baae: 0x6d31b820, 0x1baaf: 0x6d2bc620, + 0x1bab0: 0x6d0f4820, 0x1bab1: 0x6c063220, 0x1bab2: 0x6c508c20, 0x1bab3: 0x6ca62820, + 0x1bab4: 0x6d12ce20, 0x1bab5: 0x6c2bda20, 0x1bab6: 0x6c1bee20, 0x1bab7: 0x6caf3820, + 0x1bab8: 0x6c632220, 0x1bab9: 0x6ca0a820, 0x1baba: 0x6c9a7620, 0x1babb: 0x6c185a20, + 0x1babc: 0x6d0ad220, 0x1babd: 0x6c1d6420, 0x1babe: 0x6cc0e420, 0x1babf: 0x6c9f9420, + // Block 0x6eb, offset 0x1bac0 + 0x1bac0: 0x6c1f1020, 0x1bac1: 0x6c632a20, 0x1bac2: 0x6c3dee20, 0x1bac3: 0x6d2c7220, + 0x1bac4: 0x6d3a5c20, 0x1bac5: 0x6c27bc20, 0x1bac6: 0x6c146020, 0x1bac7: 0x6ca2c420, + 0x1bac8: 0x6ca6ec20, 0x1bac9: 0x6c7e3e20, 0x1baca: 0x6c3f4220, 0x1bacb: 0x6cad3420, + 0x1bacc: 0x6c04ea20, 0x1bacd: 0x6cabee20, 0x1bace: 0x6c8b9a20, 0x1bacf: 0x6ca2d020, + 0x1bad0: 0x6c48d820, 0x1bad1: 0x6cb97420, 0x1bad2: 0x6c71fc20, 0x1bad3: 0x6cde2e20, + 0x1bad4: 0x6c036820, 0x1bad5: 0x6ceaac20, 0x1bad6: 0x6ceaae20, 0x1bad7: 0x6c02a020, + 0x1bad8: 0x6c705a20, 0x1bad9: 0x6d3cf020, 0x1bada: 0x6caca020, 0x1badb: 0x6d2f5a20, + 0x1badc: 0x6c043c20, 0x1badd: 0x6c043220, 0x1bade: 0x6c2bdc20, 0x1badf: 0x6ca62420, + 0x1bae0: 0x6c720e20, 0x1bae1: 0x6c7de820, 0x1bae2: 0x6c903220, 0x1bae3: 0x6c656420, + 0x1bae4: 0x6cb83420, 0x1bae5: 0x6d1d7e20, 0x1bae6: 0x6c7f8c20, 0x1bae7: 0x6ca8f620, + 0x1bae8: 0x6c0e5020, 0x1bae9: 0x6d2aa820, 0x1baea: 0x6cb8bc20, 0x1baeb: 0x6c522e20, + 0x1baec: 0x6c7dea20, 0x1baed: 0x6cd33620, 0x1baee: 0x6c6a8e20, 0x1baef: 0x6d331e20, + 0x1baf0: 0x6ca8ee20, 0x1baf1: 0x6c45da20, 0x1baf2: 0x6c45de20, 0x1baf3: 0x6cc2ca20, + 0x1baf4: 0x6cd68020, 0x1baf5: 0x6c25a620, 0x1baf6: 0x6d288a20, 0x1baf7: 0x6c77a020, + 0x1baf8: 0x6d149c20, 0x1baf9: 0x6d008220, 0x1bafa: 0x6c12d020, 0x1bafb: 0x6c5a9420, + 0x1bafc: 0x6cb1ea20, 0x1bafd: 0x6d3b6620, 0x1bafe: 0x6cd41020, 0x1baff: 0x6ca2d620, + // Block 0x6ec, offset 0x1bb00 + 0x1bb00: 0x6c03fc20, 0x1bb01: 0x6c1b0c20, 0x1bb02: 0x6c48ac20, 0x1bb03: 0x6d359c20, + 0x1bb04: 0x6c7dec20, 0x1bb05: 0x6c348020, 0x1bb06: 0x6c348220, 0x1bb07: 0x6d350020, + 0x1bb08: 0x6cbcaa20, 0x1bb09: 0x6c01a420, 0x1bb0a: 0x6ca9f220, 0x1bb0b: 0x6d322020, + 0x1bb0c: 0x6c43ca20, 0x1bb0d: 0x6c698820, 0x1bb0e: 0x6c7ae620, 0x1bb0f: 0x6c306020, + 0x1bb10: 0x6ca2d820, 0x1bb11: 0x6ce55420, 0x1bb12: 0x6c8ad220, 0x1bb13: 0x6d2bca20, + 0x1bb14: 0x6c937c20, 0x1bb15: 0x6c2e7220, 0x1bb16: 0x6cebca20, 0x1bb17: 0x6c73fa20, + 0x1bb18: 0x6c8b9420, 0x1bb19: 0x6c71b020, 0x1bb1a: 0x6d35b820, 0x1bb1b: 0x6c943420, + 0x1bb1c: 0x6d0b8620, 0x1bb1d: 0x6cf27c20, 0x1bb1e: 0x6cde3420, 0x1bb1f: 0x6d008420, + 0x1bb20: 0x6ca49c20, 0x1bb21: 0x6c292820, 0x1bb22: 0x6c68d020, 0x1bb23: 0x6d329820, + 0x1bb24: 0x6c612a20, 0x1bb25: 0x6c5a9620, 0x1bb26: 0x6cfb3420, 0x1bb27: 0x6d24be20, + 0x1bb28: 0x6c002020, 0x1bb29: 0x6ceab420, 0x1bb2a: 0x6caab820, 0x1bb2b: 0x6c261c20, + 0x1bb2c: 0x6c0ed420, 0x1bb2d: 0x6c44fa20, 0x1bb2e: 0x6ce3be20, 0x1bb2f: 0x6d322c20, + 0x1bb30: 0x6c19dc20, 0x1bb31: 0x6cc94220, 0x1bb32: 0x6cc94420, 0x1bb33: 0x6c793220, + 0x1bb34: 0x6c9a5020, 0x1bb35: 0x6c906220, 0x1bb36: 0x6c706820, 0x1bb37: 0x6cae9020, + 0x1bb38: 0x6c657a20, 0x1bb39: 0x6d172820, 0x1bb3a: 0x6ce6ba20, 0x1bb3b: 0x6cccce20, + 0x1bb3c: 0x6cc83a20, 0x1bb3d: 0x6cecf820, 0x1bb3e: 0x6d008a20, 0x1bb3f: 0x6c138820, + // Block 0x6ed, offset 0x1bb40 + 0x1bb40: 0x6c3ca020, 0x1bb41: 0x6c68da20, 0x1bb42: 0x6cf43c20, 0x1bb43: 0x6c75a420, + 0x1bb44: 0x6c6fe820, 0x1bb45: 0x6ce7b220, 0x1bb46: 0x6c7da220, 0x1bb47: 0x6c5dac20, + 0x1bb48: 0x6ce89620, 0x1bb49: 0x6d3cf620, 0x1bb4a: 0x6cb3d620, 0x1bb4b: 0x6c938820, + 0x1bb4c: 0x6c033a20, 0x1bb4d: 0x6c4e9820, 0x1bb4e: 0x6cce6020, 0x1bb4f: 0x6ca7da20, + 0x1bb50: 0x6c72e420, 0x1bb51: 0x6d2b4620, 0x1bb52: 0x6cd5ba20, 0x1bb53: 0x6d127620, + 0x1bb54: 0x6c741220, 0x1bb55: 0x6c103620, 0x1bb56: 0x6cecd020, 0x1bb57: 0x6c108420, + 0x1bb58: 0x6d421620, 0x1bb59: 0x6d172a20, 0x1bb5a: 0x6d2ce820, 0x1bb5b: 0x6c937e20, + 0x1bb5c: 0x6cd9a420, 0x1bb5d: 0x6ceab620, 0x1bb5e: 0x6c813a20, 0x1bb5f: 0x6cdce620, + 0x1bb60: 0x6c052220, 0x1bb61: 0x6c657c20, 0x1bb62: 0x6c590220, 0x1bb63: 0x6c29d420, + 0x1bb64: 0x6cf13c20, 0x1bb65: 0x6ced7820, 0x1bb66: 0x6cbd6e20, 0x1bb67: 0x6caf0220, + 0x1bb68: 0x6ccf2c20, 0x1bb69: 0x6c8af820, 0x1bb6a: 0x6c9f4620, 0x1bb6b: 0x6c9aca20, + 0x1bb6c: 0x6c3f5a20, 0x1bb6d: 0x6c041e20, 0x1bb6e: 0x6c723e20, 0x1bb6f: 0x6c29cc20, + 0x1bb70: 0x6cf2b420, 0x1bb71: 0x6c003e20, 0x1bb72: 0x6c731c20, 0x1bb73: 0x6d26a420, + 0x1bb74: 0x6d3fec20, 0x1bb75: 0x6c186420, 0x1bb76: 0x6c20c820, 0x1bb77: 0x6c6ab620, + 0x1bb78: 0x6ce85420, 0x1bb79: 0x6c07ae20, 0x1bb7a: 0x6ca33220, 0x1bb7b: 0x6ca72020, + 0x1bb7c: 0x6cc90e20, 0x1bb7d: 0x6d423620, 0x1bb7e: 0x6cf2e220, 0x1bb7f: 0x6cf5e820, + // Block 0x6ee, offset 0x1bb80 + 0x1bb80: 0x6cfa9820, 0x1bb81: 0x6c19e620, 0x1bb82: 0x6c2cc420, 0x1bb83: 0x6ccae020, + 0x1bb84: 0x6c94d220, 0x1bb85: 0x6cbec620, 0x1bb86: 0x6c427820, 0x1bb87: 0x6c342a20, + 0x1bb88: 0x6cd46020, 0x1bb89: 0x6c2e1820, 0x1bb8a: 0x6cb3d820, 0x1bb8b: 0x6c2bf020, + 0x1bb8c: 0x6d2f0420, 0x1bb8d: 0x6c5d2420, 0x1bb8e: 0x6c613620, 0x1bb8f: 0x6ce1c220, + 0x1bb90: 0x6cb82820, 0x1bb91: 0x6cb5c420, 0x1bb92: 0x6cabfa20, 0x1bb93: 0x6cd4c820, + 0x1bb94: 0x6cb8e220, 0x1bb95: 0x6c8ce420, 0x1bb96: 0x6d125c20, 0x1bb97: 0x6d0b9c20, + 0x1bb98: 0x6c742420, 0x1bb99: 0x6d32b020, 0x1bb9a: 0x6c899020, 0x1bb9b: 0x6c48b020, + 0x1bb9c: 0x6d175c20, 0x1bb9d: 0x6c5dc220, 0x1bb9e: 0x6ccd8220, 0x1bb9f: 0x6d332020, + 0x1bba0: 0x6c361020, 0x1bba1: 0x6c112a20, 0x1bba2: 0x6ce09420, 0x1bba3: 0x6c181e20, + 0x1bba4: 0x6c0db020, 0x1bba5: 0x6c69fa20, 0x1bba6: 0x6ce3ee20, 0x1bba7: 0x6c79a420, + 0x1bba8: 0x6ce99020, 0x1bba9: 0x6d0d6620, 0x1bbaa: 0x6c262220, 0x1bbab: 0x6d387420, + 0x1bbac: 0x6c708a20, 0x1bbad: 0x6ce53420, 0x1bbae: 0x6cb98820, 0x1bbaf: 0x6c791820, + 0x1bbb0: 0x6c040020, 0x1bbb1: 0x6cabd420, 0x1bbb2: 0x6c69fc20, 0x1bbb3: 0x6c91ba20, + 0x1bbb4: 0x6c48cc20, 0x1bbb5: 0x6ca04e20, 0x1bbb6: 0x6c454620, 0x1bbb7: 0x6d35e020, + 0x1bbb8: 0x6c283420, 0x1bbb9: 0x6c9c2a20, 0x1bbba: 0x6c11f220, 0x1bbbb: 0x6ccaa620, + 0x1bbbc: 0x6c498220, 0x1bbbd: 0x6caf1020, 0x1bbbe: 0x6d261c20, 0x1bbbf: 0x6caaee20, + // Block 0x6ef, offset 0x1bbc0 + 0x1bbc0: 0x6c659020, 0x1bbc1: 0x6d32c420, 0x1bbc2: 0x6c6f7220, 0x1bbc3: 0x6c659220, + 0x1bbc4: 0x6d212620, 0x1bbc5: 0x6d0ca820, 0x1bbc6: 0x6c7c7820, 0x1bbc7: 0x6ca42620, + 0x1bbc8: 0x6c52a420, 0x1bbc9: 0x6cc74a20, 0x1bbca: 0x6cb09620, 0x1bbcb: 0x6cee8820, + 0x1bbcc: 0x6cc9c420, 0x1bbcd: 0x6d408820, 0x1bbce: 0x6d079c20, 0x1bbcf: 0x6c9e7620, + 0x1bbd0: 0x6ce32420, 0x1bbd1: 0x6ca7dc20, 0x1bbd2: 0x6c139c20, 0x1bbd3: 0x6cd38620, + 0x1bbd4: 0x6d3ff220, 0x1bbd5: 0x6d324220, 0x1bbd6: 0x6d13f220, 0x1bbd7: 0x6d0a1020, + 0x1bbd8: 0x6d1df620, 0x1bbd9: 0x6c0af220, 0x1bbda: 0x6d0fb620, 0x1bbdb: 0x6c592220, + 0x1bbdc: 0x6d0d8220, 0x1bbdd: 0x6d296a20, 0x1bbde: 0x6c018620, 0x1bbdf: 0x6d059a20, + 0x1bbe0: 0x6d0bac20, 0x1bbe1: 0x6cf2ee20, 0x1bbe2: 0x6c784c20, 0x1bbe3: 0x6c1fb420, + 0x1bbe4: 0x6c600020, 0x1bbe5: 0x6ce3fa20, 0x1bbe6: 0x6c7e5e20, 0x1bbe7: 0x6c7e7a20, + 0x1bbe8: 0x6c18c820, 0x1bbe9: 0x6c762e20, 0x1bbea: 0x6c6f7420, 0x1bbeb: 0x6c6f7c20, + 0x1bbec: 0x6ce8ae20, 0x1bbed: 0x6c6a1220, 0x1bbee: 0x6c5ab420, 0x1bbef: 0x6c44b420, + 0x1bbf0: 0x6c1d5020, 0x1bbf1: 0x6cfed620, 0x1bbf2: 0x6c2ea420, 0x1bbf3: 0x6d004020, + 0x1bbf4: 0x6d256220, 0x1bbf5: 0x6cb98a20, 0x1bbf6: 0x6d127c20, 0x1bbf7: 0x6c139e20, + 0x1bbf8: 0x6d2bda20, 0x1bbf9: 0x6c069e20, 0x1bbfa: 0x6d10f820, 0x1bbfb: 0x6cee8a20, + 0x1bbfc: 0x6c086a20, 0x1bbfd: 0x6c802820, 0x1bbfe: 0x6cf20c20, 0x1bbff: 0x6cbe1420, + // Block 0x6f0, offset 0x1bc00 + 0x1bc00: 0x6c14ca20, 0x1bc01: 0x6c439220, 0x1bc02: 0x6c90e420, 0x1bc03: 0x6d3ff420, + 0x1bc04: 0x6c44ce20, 0x1bc05: 0x6c68f220, 0x1bc06: 0x6c46b820, 0x1bc07: 0x6cbe1a20, + 0x1bc08: 0x6cc68420, 0x1bc09: 0x6cc3ca20, 0x1bc0a: 0x6c1d7420, 0x1bc0b: 0x6c1fb620, + 0x1bc0c: 0x6d2df620, 0x1bc0d: 0x6cdcf020, 0x1bc0e: 0x6cdcd420, 0x1bc0f: 0x6c0f1220, + 0x1bc10: 0x6c1f4e20, 0x1bc11: 0x6cc67420, 0x1bc12: 0x6c057a20, 0x1bc13: 0x6c25ba20, + 0x1bc14: 0x6ccaac20, 0x1bc15: 0x6c780620, 0x1bc16: 0x6d111020, 0x1bc17: 0x6c29dc20, + 0x1bc18: 0x6d33ee20, 0x1bc19: 0x6caa6620, 0x1bc1a: 0x6c7e4820, 0x1bc1b: 0x6c64b020, + 0x1bc1c: 0x6cd9b020, 0x1bc1d: 0x6cc0ae20, 0x1bc1e: 0x6c430820, 0x1bc1f: 0x6cfc1420, + 0x1bc20: 0x6cd78620, 0x1bc21: 0x6cca8020, 0x1bc22: 0x6c6d1420, 0x1bc23: 0x6c9edc20, + 0x1bc24: 0x6c365820, 0x1bc25: 0x6c20ce20, 0x1bc26: 0x6caafc20, 0x1bc27: 0x6cccea20, + 0x1bc28: 0x6cde5c20, 0x1bc29: 0x6d2c7e20, 0x1bc2a: 0x6ce10220, 0x1bc2b: 0x6cac6420, + 0x1bc2c: 0x6c048620, 0x1bc2d: 0x6c265020, 0x1bc2e: 0x6c863020, 0x1bc2f: 0x6ce1d620, + 0x1bc30: 0x6c555c20, 0x1bc31: 0x6d365620, 0x1bc32: 0x6cebe220, 0x1bc33: 0x6c574220, + 0x1bc34: 0x6cb90220, 0x1bc35: 0x6cf20e20, 0x1bc36: 0x6cbb3e20, 0x1bc37: 0x6ce4ac20, + 0x1bc38: 0x6d316220, 0x1bc39: 0x6c365a20, 0x1bc3a: 0x6d00ba20, 0x1bc3b: 0x6cab0220, + 0x1bc3c: 0x6cc2fc20, 0x1bc3d: 0x6c13e220, 0x1bc3e: 0x6d2ccc20, 0x1bc3f: 0x6c441020, + // Block 0x6f1, offset 0x1bc40 + 0x1bc40: 0x6cf44e20, 0x1bc41: 0x6c372420, 0x1bc42: 0x6ccf5220, 0x1bc43: 0x6c776820, + 0x1bc44: 0x6ccf5420, 0x1bc45: 0x6cd4e820, 0x1bc46: 0x6c042620, 0x1bc47: 0x6d111220, + 0x1bc48: 0x6c0d8020, 0x1bc49: 0x6cd9be20, 0x1bc4a: 0x6cdfae20, 0x1bc4b: 0x6cc97820, + 0x1bc4c: 0x6c15ca20, 0x1bc4d: 0x6cdd2a20, 0x1bc4e: 0x6c6f8020, 0x1bc4f: 0x6c1cd220, + 0x1bc50: 0x6c205620, 0x1bc51: 0x6c48d220, 0x1bc52: 0x6c0de620, 0x1bc53: 0x6c3cac20, + 0x1bc54: 0x6cd65620, 0x1bc55: 0x6c2c7e20, 0x1bc56: 0x6cb7ae20, 0x1bc57: 0x6cd9cc20, + 0x1bc58: 0x6d2cf820, 0x1bc59: 0x6c88c220, 0x1bc5a: 0x6c197c20, 0x1bc5b: 0x6c1ab820, + 0x1bc5c: 0x6c499820, 0x1bc5d: 0x6c928220, 0x1bc5e: 0x6c961420, 0x1bc5f: 0x6c90ee20, + 0x1bc60: 0x6d400020, 0x1bc61: 0x6c413420, 0x1bc62: 0x6c56b620, 0x1bc63: 0x6d2bea20, + 0x1bc64: 0x6c209420, 0x1bc65: 0x6ce19e20, 0x1bc66: 0x6c57ac20, 0x1bc67: 0x6c24dc20, + 0x1bc68: 0x6ca38420, 0x1bc69: 0x6ca07220, 0x1bc6a: 0x6c676820, 0x1bc6b: 0x6c4a7a20, + 0x1bc6c: 0x6d1cfc20, 0x1bc6d: 0x6d348020, 0x1bc6e: 0x6c026020, 0x1bc6f: 0x6d36ae20, + 0x1bc70: 0x6ca85c20, 0x1bc71: 0x6c97ea20, 0x1bc72: 0x6c163020, 0x1bc73: 0x6c79c220, + 0x1bc74: 0x6c1e6220, 0x1bc75: 0x6ccf6420, 0x1bc76: 0x6ce95420, 0x1bc77: 0x6c691420, + 0x1bc78: 0x6ca05620, 0x1bc79: 0x6ca06820, 0x1bc7a: 0x6d306c20, 0x1bc7b: 0x6c11fc20, + 0x1bc7c: 0x6c794820, 0x1bc7d: 0x6c0c0a20, 0x1bc7e: 0x6c67f620, 0x1bc7f: 0x6d19f420, + // Block 0x6f2, offset 0x1bc80 + 0x1bc80: 0x6c46ce20, 0x1bc81: 0x6cb90420, 0x1bc82: 0x6c8aa020, 0x1bc83: 0x6c608420, + 0x1bc84: 0x6d1bce20, 0x1bc85: 0x6c73b420, 0x1bc86: 0x6cb1d020, 0x1bc87: 0x6cb1ca20, + 0x1bc88: 0x6c813c20, 0x1bc89: 0x6c33ac20, 0x1bc8a: 0x6cfcfa20, 0x1bc8b: 0x6cc84420, + 0x1bc8c: 0x6c4b6620, 0x1bc8d: 0x6d297420, 0x1bc8e: 0x6d185020, 0x1bc8f: 0x6cfb7e20, + 0x1bc90: 0x6c198820, 0x1bc91: 0x6c198a20, 0x1bc92: 0x6cc94620, 0x1bc93: 0x6ca4ba20, + 0x1bc94: 0x6c53ca20, 0x1bc95: 0x6cd81620, 0x1bc96: 0x6c4ee020, 0x1bc97: 0x6c4a2620, + 0x1bc98: 0x6c266420, 0x1bc99: 0x6d420c20, 0x1bc9a: 0x6ca73420, 0x1bc9b: 0x6c8c2a20, + 0x1bc9c: 0x6d332c20, 0x1bc9d: 0x6c5ae420, 0x1bc9e: 0x6d3c4820, 0x1bc9f: 0x6c692820, + 0x1bca0: 0x6c615020, 0x1bca1: 0x6c126620, 0x1bca2: 0x6c283c20, 0x1bca3: 0x6c283e20, + 0x1bca4: 0x6c183220, 0x1bca5: 0x6c0e8820, 0x1bca6: 0x6c17ee20, 0x1bca7: 0x6c73b620, + 0x1bca8: 0x6c3f8020, 0x1bca9: 0x6c89d220, 0x1bcaa: 0x6c07c220, 0x1bcab: 0x6c3f8220, + 0x1bcac: 0x6cbc5820, 0x1bcad: 0x6c0e8a20, 0x1bcae: 0x6c25c620, 0x1bcaf: 0x6d3d7a20, + 0x1bcb0: 0x6d3bda20, 0x1bcb1: 0x6ceff020, 0x1bcb2: 0x6cb40e20, 0x1bcb3: 0x6cbe2220, + 0x1bcb4: 0x6c33a620, 0x1bcb5: 0x6ca73620, 0x1bcb6: 0x6c574420, 0x1bcb7: 0x6d00d820, + 0x1bcb8: 0x6c912e20, 0x1bcb9: 0x6c692a20, 0x1bcba: 0x6c249020, 0x1bcbb: 0x6cde8c20, + 0x1bcbc: 0x6c4f0420, 0x1bcbd: 0x6cbc5c20, 0x1bcbe: 0x6cf29a20, 0x1bcbf: 0x6c65d620, + // Block 0x6f3, offset 0x1bcc0 + 0x1bcc0: 0x6c41ea20, 0x1bcc1: 0x6d1db220, 0x1bcc2: 0x6c825620, 0x1bcc3: 0x6ca46e20, + 0x1bcc4: 0x6c91da20, 0x1bcc5: 0x6ccda820, 0x1bcc6: 0x6d3d7c20, 0x1bcc7: 0x6d2afa20, + 0x1bcc8: 0x6cb41420, 0x1bcc9: 0x6c21d620, 0x1bcca: 0x6c5f5220, 0x1bccb: 0x6c293420, + 0x1bccc: 0x6ccb5620, 0x1bccd: 0x6c126820, 0x1bcce: 0x6cbe8c20, 0x1bccf: 0x6cbe8420, + 0x1bcd0: 0x6c595220, 0x1bcd1: 0x6c6a3020, 0x1bcd2: 0x6cbd9420, 0x1bcd3: 0x6c7b0220, + 0x1bcd4: 0x6c27fa20, 0x1bcd5: 0x6d00dc20, 0x1bcd6: 0x6c761420, 0x1bcd7: 0x6cb06e20, + 0x1bcd8: 0x6c040620, 0x1bcd9: 0x6c02f220, 0x1bcda: 0x6c728c20, 0x1bcdb: 0x6d132620, + 0x1bcdc: 0x6c370620, 0x1bcdd: 0x6c9c2c20, 0x1bcde: 0x6cda2620, 0x1bcdf: 0x6c9c7a20, + 0x1bce0: 0x6c615420, 0x1bce1: 0x6cdf4820, 0x1bce2: 0x6d3da820, 0x1bce3: 0x6c29f220, + 0x1bce4: 0x6d040a20, 0x1bce5: 0x6c804420, 0x1bce6: 0x6c10da20, 0x1bce7: 0x6c71d820, + 0x1bce8: 0x6d129220, 0x1bce9: 0x6cc80620, 0x1bcea: 0x6d136820, 0x1bceb: 0x6d135a20, + 0x1bcec: 0x6ca65220, 0x1bced: 0x6cf31420, 0x1bcee: 0x6c60bc20, 0x1bcef: 0x6c0d8820, + 0x1bcf0: 0x6ca92420, 0x1bcf1: 0x6c43b420, 0x1bcf2: 0x6d370420, 0x1bcf3: 0x6d36de20, + 0x1bcf4: 0x6c7e1a20, 0x1bcf5: 0x6ca08620, 0x1bcf6: 0x6c66ec20, 0x1bcf7: 0x6d011020, + 0x1bcf8: 0x6c8b4c20, 0x1bcf9: 0x6cdfc020, 0x1bcfa: 0x6c042a20, 0x1bcfb: 0x6cda3020, + 0x1bcfc: 0x6c91e820, 0x1bcfd: 0x6c94ca20, 0x1bcfe: 0x6cc54220, 0x1bcff: 0x6ce2fe20, + // Block 0x6f4, offset 0x1bd00 + 0x1bd00: 0x6cac4c20, 0x1bd01: 0x6d103620, 0x1bd02: 0x6c834c20, 0x1bd03: 0x6c10dc20, + 0x1bd04: 0x6cd51420, 0x1bd05: 0x6d297a20, 0x1bd06: 0x6ca74220, 0x1bd07: 0x6cfc4020, + 0x1bd08: 0x6c75fa20, 0x1bd09: 0x6c5d6620, 0x1bd0a: 0x6c86f420, 0x1bd0b: 0x6c7ea420, + 0x1bd0c: 0x6c58e420, 0x1bd0d: 0x6d1cb620, 0x1bd0e: 0x6c917020, 0x1bd0f: 0x6c904420, + 0x1bd10: 0x6cb93a20, 0x1bd11: 0x6cb93c20, 0x1bd12: 0x6d297c20, 0x1bd13: 0x6cb94620, + 0x1bd14: 0x6c7fe620, 0x1bd15: 0x6cfafc20, 0x1bd16: 0x6d1c1e20, 0x1bd17: 0x6c9a3a20, + 0x1bd18: 0x6cc50820, 0x1bd19: 0x6c14e020, 0x1bd1a: 0x6d1d6c20, 0x1bd1b: 0x6c249820, + 0x1bd1c: 0x6d012420, 0x1bd1d: 0x6ccf8a20, 0x1bd1e: 0x6c957420, 0x1bd1f: 0x6c760820, + 0x1bd20: 0x6c9cb220, 0x1bd21: 0x6c84a620, 0x1bd22: 0x6d298220, 0x1bd23: 0x6c945820, + 0x1bd24: 0x6cdfc420, 0x1bd25: 0x6d416420, 0x1bd26: 0x6c876620, 0x1bd27: 0x6c2cf820, + 0x1bd28: 0x6cec0020, 0x1bd29: 0x6c293c20, 0x1bd2a: 0x6c697420, 0x1bd2b: 0x6c751c20, + 0x1bd2c: 0x6c805c20, 0x1bd2d: 0x6c879e20, 0x1bd2e: 0x6ca47620, 0x1bd2f: 0x6d337e20, + 0x1bd30: 0x6c4b2820, 0x1bd31: 0x6c4ad820, 0x1bd32: 0x6cb4f020, 0x1bd33: 0x6d0a3a20, + 0x1bd34: 0x6cb3fc20, 0x1bd35: 0x6cdba820, 0x1bd36: 0x6cd42a20, 0x1bd37: 0x6c779a20, + 0x1bd38: 0x6d1e9020, 0x1bd39: 0x6c410c20, 0x1bd3a: 0x6d15bc20, 0x1bd3b: 0x6c455e20, + 0x1bd3c: 0x6c416620, 0x1bd3d: 0x6c047220, 0x1bd3e: 0x6c39e220, 0x1bd3f: 0x6d334220, + // Block 0x6f5, offset 0x1bd40 + 0x1bd40: 0x6cb36c20, 0x1bd41: 0x6c2cc020, 0x1bd42: 0x6c79da20, 0x1bd43: 0x6c9f9a20, + 0x1bd44: 0x6cf4c420, 0x1bd45: 0x6c480020, 0x1bd46: 0x6c50f020, 0x1bd47: 0x6c12d620, + 0x1bd48: 0x6cffdc20, 0x1bd49: 0x6c9ce620, 0x1bd4a: 0x6c1f2420, 0x1bd4b: 0x6c43d620, + 0x1bd4c: 0x6c2b6220, 0x1bd4d: 0x6d06b620, 0x1bd4e: 0x6c699a20, 0x1bd4f: 0x6c9fa820, + 0x1bd50: 0x6c18bc20, 0x1bd51: 0x6c6ff220, 0x1bd52: 0x6ccfda20, 0x1bd53: 0x6c344620, + 0x1bd54: 0x6d224e20, 0x1bd55: 0x6c1c0e20, 0x1bd56: 0x6c024020, 0x1bd57: 0x6c044020, + 0x1bd58: 0x6d06b820, 0x1bd59: 0x6c699c20, 0x1bd5a: 0x6c344820, 0x1bd5b: 0x6c88b420, + 0x1bd5c: 0x6ca82c20, 0x1bd5d: 0x6c097820, 0x1bd5e: 0x6c172c20, 0x1bd5f: 0x6c2d1a20, + 0x1bd60: 0x6c342e20, 0x1bd61: 0x6d179c20, 0x1bd62: 0x6c41d420, 0x1bd63: 0x6cca5420, + 0x1bd64: 0x6c786820, 0x1bd65: 0x6d0e7020, 0x1bd66: 0x6c339a20, 0x1bd67: 0x6c5ecc20, + 0x1bd68: 0x6ce81420, 0x1bd69: 0x6cffea20, 0x1bd6a: 0x6c345020, 0x1bd6b: 0x6c690620, + 0x1bd6c: 0x6c6e8420, 0x1bd6d: 0x6d0fc220, 0x1bd6e: 0x6cf9ce20, 0x1bd6f: 0x6c9f5e20, + 0x1bd70: 0x6cd5e420, 0x1bd71: 0x6c004820, 0x1bd72: 0x6cbb8c20, 0x1bd73: 0x6c004a20, + 0x1bd74: 0x6d333220, 0x1bd75: 0x6c2b8820, 0x1bd76: 0x6d324c20, 0x1bd77: 0x6c3d8e20, + 0x1bd78: 0x6cd60020, 0x1bd79: 0x6c8a1020, 0x1bd7a: 0x6cc13620, 0x1bd7b: 0x6d049e20, + 0x1bd7c: 0x6d161020, 0x1bd7d: 0x6c694020, 0x1bd7e: 0x6ccdfc20, 0x1bd7f: 0x6c694220, + // Block 0x6f6, offset 0x1bd80 + 0x1bd80: 0x6d3daa20, 0x1bd81: 0x6d18c220, 0x1bd82: 0x6c88ca20, 0x1bd83: 0x6c0a6820, + 0x1bd84: 0x6c848820, 0x1bd85: 0x6d002220, 0x1bd86: 0x6d002420, 0x1bd87: 0x6cf17a20, + 0x1bd88: 0x6d08f420, 0x1bd89: 0x6cb58220, 0x1bd8a: 0x6cb5a220, 0x1bd8b: 0x6d2cea20, + 0x1bd8c: 0x6c0d3620, 0x1bd8d: 0x6c742620, 0x1bd8e: 0x6d2cf020, 0x1bd8f: 0x6c80b820, + 0x1bd90: 0x6c3a5620, 0x1bd91: 0x6c048020, 0x1bd92: 0x6c048820, 0x1bd93: 0x6c7fb420, + 0x1bd94: 0x6d22a620, 0x1bd95: 0x6c7ff620, 0x1bd96: 0x6cf06420, 0x1bd97: 0x6c30f820, + 0x1bd98: 0x6cd0de20, 0x1bd99: 0x6c8a9420, 0x1bd9a: 0x6c640a20, 0x1bd9b: 0x6c554420, + 0x1bd9c: 0x6d00a020, 0x1bd9d: 0x6c641820, 0x1bd9e: 0x6d225820, 0x1bd9f: 0x6d316420, + 0x1bda0: 0x6c69ae20, 0x1bda1: 0x6cf30220, 0x1bda2: 0x6ce5ca20, 0x1bda3: 0x6c313a20, + 0x1bda4: 0x6c6c1e20, 0x1bda5: 0x6c1bdc20, 0x1bda6: 0x6d1a2e20, 0x1bda7: 0x6c3f4420, + 0x1bda8: 0x6cbaa420, 0x1bda9: 0x6d2ddc20, 0x1bdaa: 0x6cc17820, 0x1bdab: 0x6d3d3220, + 0x1bdac: 0x6d2de620, 0x1bdad: 0x6c32ba20, 0x1bdae: 0x6c262820, 0x1bdaf: 0x6cd7e820, + 0x1bdb0: 0x6d02dc20, 0x1bdb1: 0x6d3d5c20, 0x1bdb2: 0x6d3d7e20, 0x1bdb3: 0x6cbd9620, + 0x1bdb4: 0x6c8bda20, 0x1bdb5: 0x6d3dac20, 0x1bdb6: 0x6c1f7c20, 0x1bdb7: 0x6c32e020, + 0x1bdb8: 0x6d3a9020, 0x1bdb9: 0x6c398020, 0x1bdba: 0x6c159820, 0x1bdbb: 0x6c4f5e20, + 0x1bdbc: 0x6d20c220, 0x1bdbd: 0x6cd1aa20, 0x1bdbe: 0x6cae0e20, 0x1bdbf: 0x6d1f0820, + // Block 0x6f7, offset 0x1bdc0 + 0x1bdc0: 0x6c9a7c20, 0x1bdc1: 0x6cacfa20, 0x1bdc2: 0x6cb5a420, 0x1bdc3: 0x6d2d6820, + 0x1bdc4: 0x6c98d020, 0x1bdc5: 0x6c938a20, 0x1bdc6: 0x6cae1220, 0x1bdc7: 0x6caf6020, + 0x1bdc8: 0x6c8e4e20, 0x1bdc9: 0x6c3d6220, 0x1bdca: 0x6c39d020, 0x1bdcb: 0x6d081020, + 0x1bdcc: 0x6c6daa20, 0x1bdcd: 0x6c6dac20, 0x1bdce: 0x6ca63620, 0x1bdcf: 0x6d40b820, + 0x1bdd0: 0x6d2fb020, 0x1bdd1: 0x6d15ee20, 0x1bdd2: 0x6c8e6a20, 0x1bdd3: 0x6cce7420, + 0x1bdd4: 0x6c668a20, 0x1bdd5: 0x6d214c20, 0x1bdd6: 0x6d15fe20, 0x1bdd7: 0x6cb61a20, + 0x1bdd8: 0x6d36e020, 0x1bdd9: 0x6c385e20, 0x1bdda: 0x6cb16620, 0x1bddb: 0x6c386020, + 0x1bddc: 0x6d2db220, 0x1bddd: 0x6c7b4420, 0x1bdde: 0x6cdc9a20, 0x1bddf: 0x6d21d420, + 0x1bde0: 0x6cf39a20, 0x1bde1: 0x6c616c20, 0x1bde2: 0x6c61a820, 0x1bde3: 0x6c61ec20, + 0x1bde4: 0x6c5dce20, 0x1bde5: 0x6cc63620, 0x1bde6: 0x6c285e20, 0x1bde7: 0x6c6fca20, + 0x1bde8: 0x6d34d820, 0x1bde9: 0x6d2a3a20, 0x1bdea: 0x6d006820, 0x1bdeb: 0x6ce54620, + 0x1bdec: 0x6d09d620, 0x1bded: 0x6d066820, 0x1bdee: 0x6c40bc20, 0x1bdef: 0x6c7e5820, + 0x1bdf0: 0x6c420c20, 0x1bdf1: 0x6c4e8a20, 0x1bdf2: 0x6cdf1020, 0x1bdf3: 0x6c2c1620, + 0x1bdf4: 0x6d056620, 0x1bdf5: 0x6c159420, 0x1bdf6: 0x6cd23a20, 0x1bdf7: 0x6c7bde20, + 0x1bdf8: 0x6d0f7c20, 0x1bdf9: 0x6cd24620, 0x1bdfa: 0x6cee4c20, 0x1bdfb: 0x6c9f3020, + 0x1bdfc: 0x6c9f3220, 0x1bdfd: 0x6cea8620, 0x1bdfe: 0x6c20fc20, 0x1bdff: 0x6cf42820, + // Block 0x6f8, offset 0x1be00 + 0x1be00: 0x6d278820, 0x1be01: 0x6c06e620, 0x1be02: 0x6c01f420, 0x1be03: 0x6d2b3e20, + 0x1be04: 0x6c04ba20, 0x1be05: 0x6c6a7420, 0x1be06: 0x6c7d4c20, 0x1be07: 0x6cd0e020, + 0x1be08: 0x6c566820, 0x1be09: 0x6c39c420, 0x1be0a: 0x6c501c20, 0x1be0b: 0x6c4b2e20, + 0x1be0c: 0x6c166020, 0x1be0d: 0x6d077c20, 0x1be0e: 0x6c9fe820, 0x1be0f: 0x6c5cb220, + 0x1be10: 0x6c3b1620, 0x1be11: 0x6cbdc820, 0x1be12: 0x6c54a220, 0x1be13: 0x6d16ba20, + 0x1be14: 0x6cf58620, 0x1be15: 0x6d02b220, 0x1be16: 0x6d0c6420, 0x1be17: 0x6d2b4020, + 0x1be18: 0x6c39c620, 0x1be19: 0x6cdfd220, 0x1be1a: 0x6cd09420, 0x1be1b: 0x6c721020, + 0x1be1c: 0x6d0f9620, 0x1be1d: 0x6d296020, 0x1be1e: 0x6c0dcc20, 0x1be1f: 0x6d036a20, + 0x1be20: 0x6d1d3420, 0x1be21: 0x6d087620, 0x1be22: 0x6cb36e20, 0x1be23: 0x6d31c020, + 0x1be24: 0x6c8cb420, 0x1be25: 0x6c210020, 0x1be26: 0x6c502020, 0x1be27: 0x6c9a7e20, + 0x1be28: 0x6d422e20, 0x1be29: 0x6ca0e020, 0x1be2a: 0x6c0b8620, 0x1be2b: 0x6d069020, + 0x1be2c: 0x6c5cb420, 0x1be2d: 0x6d2f5c20, 0x1be2e: 0x6d401820, 0x1be2f: 0x6cd33820, + 0x1be30: 0x6cd33a20, 0x1be31: 0x6d22e220, 0x1be32: 0x6c3a8e20, 0x1be33: 0x6c2e7420, + 0x1be34: 0x6c993220, 0x1be35: 0x6ca68620, 0x1be36: 0x6c16e620, 0x1be37: 0x6cf14a20, + 0x1be38: 0x6c2fe420, 0x1be39: 0x6c006220, 0x1be3a: 0x6c0dce20, 0x1be3b: 0x6c01f620, + 0x1be3c: 0x6d390e20, 0x1be3d: 0x6c8f7420, 0x1be3e: 0x6cfbec20, 0x1be3f: 0x6c7be820, + // Block 0x6f9, offset 0x1be40 + 0x1be40: 0x6ce5ba20, 0x1be41: 0x6c175c20, 0x1be42: 0x6cd25c20, 0x1be43: 0x6c5a8220, + 0x1be44: 0x6c5a4e20, 0x1be45: 0x6d084820, 0x1be46: 0x6c7c6220, 0x1be47: 0x6d058020, + 0x1be48: 0x6c68dc20, 0x1be49: 0x6c6cea20, 0x1be4a: 0x6d35ba20, 0x1be4b: 0x6c6cec20, + 0x1be4c: 0x6cce3620, 0x1be4d: 0x6ce72e20, 0x1be4e: 0x6c53a020, 0x1be4f: 0x6d0e5020, + 0x1be50: 0x6c40ec20, 0x1be51: 0x6cfde020, 0x1be52: 0x6ccc9c20, 0x1be53: 0x6cffa820, + 0x1be54: 0x6d12de20, 0x1be55: 0x6d274c20, 0x1be56: 0x6c5aa220, 0x1be57: 0x6c4dfe20, + 0x1be58: 0x6c4eac20, 0x1be59: 0x6c75ae20, 0x1be5a: 0x6ced0820, 0x1be5b: 0x6cfcb020, + 0x1be5c: 0x6c7d5820, 0x1be5d: 0x6d392020, 0x1be5e: 0x6cf5ea20, 0x1be5f: 0x6c19de20, + 0x1be60: 0x6cd15820, 0x1be61: 0x6c101420, 0x1be62: 0x6d304c20, 0x1be63: 0x6d304e20, + 0x1be64: 0x6cf4dc20, 0x1be65: 0x6c4eae20, 0x1be66: 0x6c5bb620, 0x1be67: 0x6c503420, + 0x1be68: 0x6c194e20, 0x1be69: 0x6ced1820, 0x1be6a: 0x6ce4f420, 0x1be6b: 0x6d3d5e20, + 0x1be6c: 0x6d41b220, 0x1be6d: 0x6d38e820, 0x1be6e: 0x6cb48c20, 0x1be6f: 0x6c6e2020, + 0x1be70: 0x6cf60c20, 0x1be71: 0x6ccd4020, 0x1be72: 0x6ca63820, 0x1be73: 0x6cf60e20, + 0x1be74: 0x6cbe7a20, 0x1be75: 0x6cb6fc20, 0x1be76: 0x6c6db420, 0x1be77: 0x6c4afc20, + 0x1be78: 0x6d332220, 0x1be79: 0x6d179e20, 0x1be7a: 0x6d362820, 0x1be7b: 0x6c01c220, + 0x1be7c: 0x6ced1a20, 0x1be7d: 0x6c8bb220, 0x1be7e: 0x6c89b820, 0x1be7f: 0x6c166e20, + // Block 0x6fa, offset 0x1be80 + 0x1be80: 0x6cee1820, 0x1be81: 0x6cffac20, 0x1be82: 0x6d298c20, 0x1be83: 0x6c3b0620, + 0x1be84: 0x6d07a620, 0x1be85: 0x6c453420, 0x1be86: 0x6d151820, 0x1be87: 0x6cf9d020, + 0x1be88: 0x6d275420, 0x1be89: 0x6c5ac220, 0x1be8a: 0x6d064220, 0x1be8b: 0x6c9fba20, + 0x1be8c: 0x6c7c8820, 0x1be8d: 0x6d126020, 0x1be8e: 0x6d1d3a20, 0x1be8f: 0x6cd55c20, + 0x1be90: 0x6cefd820, 0x1be91: 0x6cd55a20, 0x1be92: 0x6cbe8220, 0x1be93: 0x6c998e20, + 0x1be94: 0x6ca40020, 0x1be95: 0x6c65ac20, 0x1be96: 0x6caa9420, 0x1be97: 0x6c01c620, + 0x1be98: 0x6d0fc420, 0x1be99: 0x6c210a20, 0x1be9a: 0x6d111e20, 0x1be9b: 0x6cdd7820, + 0x1be9c: 0x6c6d2820, 0x1be9d: 0x6ca00e20, 0x1be9e: 0x6c691620, 0x1be9f: 0x6c766620, + 0x1bea0: 0x6c430e20, 0x1bea1: 0x6cf25620, 0x1bea2: 0x6c171c20, 0x1bea3: 0x6cb7b020, + 0x1bea4: 0x6c505220, 0x1bea5: 0x6d0e9420, 0x1bea6: 0x6c864a20, 0x1bea7: 0x6c00ba20, + 0x1bea8: 0x6c623620, 0x1bea9: 0x6c626020, 0x1beaa: 0x6c9af820, 0x1beab: 0x6d299620, + 0x1beac: 0x6d01f820, 0x1bead: 0x6c505820, 0x1beae: 0x6ca2a220, 0x1beaf: 0x6ca14020, + 0x1beb0: 0x6c233820, 0x1beb1: 0x6ca6b820, 0x1beb2: 0x6d2ed420, 0x1beb3: 0x6c5c1420, + 0x1beb4: 0x6c066220, 0x1beb5: 0x6c4ef820, 0x1beb6: 0x6d081e20, 0x1beb7: 0x6c200420, + 0x1beb8: 0x6c8a1820, 0x1beb9: 0x6cfacc20, 0x1beba: 0x6c28ae20, 0x1bebb: 0x6c6e2e20, + 0x1bebc: 0x6cb1d220, 0x1bebd: 0x6c8bdc20, 0x1bebe: 0x6cea2820, 0x1bebf: 0x6cf80e20, + // Block 0x6fb, offset 0x1bec0 + 0x1bec0: 0x6d189220, 0x1bec1: 0x6c627620, 0x1bec2: 0x6c5a7620, 0x1bec3: 0x6c278820, + 0x1bec4: 0x6d131220, 0x1bec5: 0x6d131420, 0x1bec6: 0x6c867820, 0x1bec7: 0x6ce00e20, + 0x1bec8: 0x6ce78220, 0x1bec9: 0x6cffba20, 0x1beca: 0x6c3ace20, 0x1becb: 0x6cd07420, + 0x1becc: 0x6d2fde20, 0x1becd: 0x6c506620, 0x1bece: 0x6d18c420, 0x1becf: 0x6cfdfc20, + 0x1bed0: 0x6d03a220, 0x1bed1: 0x6cd02620, 0x1bed2: 0x6c694a20, 0x1bed3: 0x6c067020, + 0x1bed4: 0x6c6eaa20, 0x1bed5: 0x6d0ed020, 0x1bed6: 0x6c00de20, 0x1bed7: 0x6d135c20, + 0x1bed8: 0x6cc7dc20, 0x1bed9: 0x6cd57420, 0x1beda: 0x6c9b5820, 0x1bedb: 0x6d09b820, + 0x1bedc: 0x6d122e20, 0x1bedd: 0x6cb4bc20, 0x1bede: 0x6c86ca20, 0x1bedf: 0x6c18f620, + 0x1bee0: 0x6c7c0e20, 0x1bee1: 0x6c2f0420, 0x1bee2: 0x6c8a7e20, 0x1bee3: 0x6d0ef820, + 0x1bee4: 0x6c5e3e20, 0x1bee5: 0x6c917e20, 0x1bee6: 0x6cf73220, 0x1bee7: 0x6cc6dc20, + 0x1bee8: 0x6c8fd620, 0x1bee9: 0x6ca47220, 0x1beea: 0x6c95d620, 0x1beeb: 0x6c945a20, + 0x1beec: 0x6cccae20, 0x1beed: 0x6ce18e20, 0x1beee: 0x6d0e2420, 0x1beef: 0x6d3a4420, + 0x1bef0: 0x6d264220, 0x1bef1: 0x6d264420, 0x1bef2: 0x6cc0c620, 0x1bef3: 0x6d12bc20, + 0x1bef4: 0x6c452620, 0x1bef5: 0x6d12c420, 0x1bef6: 0x6c54a420, 0x1bef7: 0x6c50d620, + 0x1bef8: 0x6cd4b820, 0x1bef9: 0x6c127420, 0x1befa: 0x6c127020, 0x1befb: 0x6cd18620, + 0x1befc: 0x6c97da20, 0x1befd: 0x6c134820, 0x1befe: 0x6c135020, 0x1beff: 0x6ce3fc20, + // Block 0x6fc, offset 0x1bf00 + 0x1bf00: 0x6d41b020, 0x1bf01: 0x6c11d020, 0x1bf02: 0x6d06d620, 0x1bf03: 0x6c5be220, + 0x1bf04: 0x6d1af620, 0x1bf05: 0x6cbcd220, 0x1bf06: 0x6c3b4220, 0x1bf07: 0x6cb03820, + 0x1bf08: 0x6d266820, 0x1bf09: 0x6d1f9820, 0x1bf0a: 0x6cc85020, 0x1bf0b: 0x6cae8e20, + 0x1bf0c: 0x6c3b5a20, 0x1bf0d: 0x6c3df220, 0x1bf0e: 0x6c8cb620, 0x1bf0f: 0x6c3a4820, + 0x1bf10: 0x6cc17a20, 0x1bf11: 0x6ce3da20, 0x1bf12: 0x6caa7e20, 0x1bf13: 0x6ce5bc20, + 0x1bf14: 0x6cd77620, 0x1bf15: 0x6d322e20, 0x1bf16: 0x6c80fa20, 0x1bf17: 0x6c80f820, + 0x1bf18: 0x6d416c20, 0x1bf19: 0x6c9ff620, 0x1bf1a: 0x6c598c20, 0x1bf1b: 0x6cee5220, + 0x1bf1c: 0x6cea2020, 0x1bf1d: 0x6c176220, 0x1bf1e: 0x6c5ed220, 0x1bf1f: 0x6cb4f220, + 0x1bf20: 0x6d1bba20, 0x1bf21: 0x6d3f9820, 0x1bf22: 0x6cee5820, 0x1bf23: 0x6ce78420, + 0x1bf24: 0x6c811220, 0x1bf25: 0x6c81fa20, 0x1bf26: 0x6c9b5a20, 0x1bf27: 0x6c8fd820, + 0x1bf28: 0x6ca25c20, 0x1bf29: 0x6c2ac820, 0x1bf2a: 0x6cf06c20, 0x1bf2b: 0x6ca0bc20, + 0x1bf2c: 0x6c079220, 0x1bf2d: 0x6d2c1620, 0x1bf2e: 0x6cd59020, 0x1bf2f: 0x6cd59220, + 0x1bf30: 0x6ca26220, 0x1bf31: 0x6d397e20, 0x1bf32: 0x6cc56620, 0x1bf33: 0x6c031420, + 0x1bf34: 0x6cb48220, 0x1bf35: 0x6c352a20, 0x1bf36: 0x6c347020, 0x1bf37: 0x6c29ba20, + 0x1bf38: 0x6c857220, 0x1bf39: 0x6c4abe20, 0x1bf3a: 0x6c5e7820, 0x1bf3b: 0x6c6f4820, + 0x1bf3c: 0x6c08b220, 0x1bf3d: 0x6d051c20, 0x1bf3e: 0x6c19b420, 0x1bf3f: 0x6c22a820, + // Block 0x6fd, offset 0x1bf40 + 0x1bf40: 0x6ccbc020, 0x1bf41: 0x6cc83420, 0x1bf42: 0x6d28ac20, 0x1bf43: 0x6cc2b420, + 0x1bf44: 0x6cb8a620, 0x1bf45: 0x6d20b620, 0x1bf46: 0x6c416820, 0x1bf47: 0x6cf35420, + 0x1bf48: 0x6c137c20, 0x1bf49: 0x6cccbc20, 0x1bf4a: 0x6d09dc20, 0x1bf4b: 0x6c388420, + 0x1bf4c: 0x6cf4aa20, 0x1bf4d: 0x6d3ee620, 0x1bf4e: 0x6c87d820, 0x1bf4f: 0x6d041220, + 0x1bf50: 0x6c110820, 0x1bf51: 0x6c259220, 0x1bf52: 0x6cc5c220, 0x1bf53: 0x6c0bea20, + 0x1bf54: 0x6ceaa220, 0x1bf55: 0x6c2c1820, 0x1bf56: 0x6d2f2220, 0x1bf57: 0x6c983220, + 0x1bf58: 0x6c1be220, 0x1bf59: 0x6d168a20, 0x1bf5a: 0x6c412c20, 0x1bf5b: 0x6c456020, + 0x1bf5c: 0x6c323420, 0x1bf5d: 0x6c83a220, 0x1bf5e: 0x6cb6d620, 0x1bf5f: 0x6cd59820, + 0x1bf60: 0x6c425620, 0x1bf61: 0x6ce56a20, 0x1bf62: 0x6c681a20, 0x1bf63: 0x6ccdf820, + 0x1bf64: 0x6cedb620, 0x1bf65: 0x6c7ee020, 0x1bf66: 0x6c704420, 0x1bf67: 0x6c983420, + 0x1bf68: 0x6d0f7e20, 0x1bf69: 0x6c96b220, 0x1bf6a: 0x6c9e8820, 0x1bf6b: 0x6cd88e20, + 0x1bf6c: 0x6d254020, 0x1bf6d: 0x6c4f6020, 0x1bf6e: 0x6c3a8620, 0x1bf6f: 0x6c069020, + 0x1bf70: 0x6c6a7e20, 0x1bf71: 0x6c2fe020, 0x1bf72: 0x6c430020, 0x1bf73: 0x6d118e20, + 0x1bf74: 0x6cfa7c20, 0x1bf75: 0x6c1ed620, 0x1bf76: 0x6c20fe20, 0x1bf77: 0x6cabd020, + 0x1bf78: 0x6cd4a820, 0x1bf79: 0x6c578220, 0x1bf7a: 0x6d02b420, 0x1bf7b: 0x6c1e2020, + 0x1bf7c: 0x6d3aae20, 0x1bf7d: 0x6c1e2220, 0x1bf7e: 0x6cd90420, 0x1bf7f: 0x6c04bc20, + // Block 0x6fe, offset 0x1bf80 + 0x1bf80: 0x6cd90620, 0x1bf81: 0x6c5fd420, 0x1bf82: 0x6cf2d620, 0x1bf83: 0x6c6cda20, + 0x1bf84: 0x6c469420, 0x1bf85: 0x6c5e8e20, 0x1bf86: 0x6c98c620, 0x1bf87: 0x6cafb820, + 0x1bf88: 0x6c093a20, 0x1bf89: 0x6cee6220, 0x1bf8a: 0x6c021220, 0x1bf8b: 0x6c398820, + 0x1bf8c: 0x6c3b5c20, 0x1bf8d: 0x6d16bc20, 0x1bf8e: 0x6c3df420, 0x1bf8f: 0x6ca3e420, + 0x1bf90: 0x6cf58820, 0x1bf91: 0x6c566a20, 0x1bf92: 0x6d0ad420, 0x1bf93: 0x6c30dc20, + 0x1bf94: 0x6d02fe20, 0x1bf95: 0x6d31ba20, 0x1bf96: 0x6d109020, 0x1bf97: 0x6c8ba020, + 0x1bf98: 0x6cc8c220, 0x1bf99: 0x6c35ac20, 0x1bf9a: 0x6c99d620, 0x1bf9b: 0x6d2f9a20, + 0x1bf9c: 0x6c4cae20, 0x1bf9d: 0x6d339620, 0x1bf9e: 0x6c230420, 0x1bf9f: 0x6d281c20, + 0x1bfa0: 0x6d41e420, 0x1bfa1: 0x6c30de20, 0x1bfa2: 0x6cd4aa20, 0x1bfa3: 0x6d2a3c20, + 0x1bfa4: 0x6c352c20, 0x1bfa5: 0x6c858e20, 0x1bfa6: 0x6c934620, 0x1bfa7: 0x6c656620, + 0x1bfa8: 0x6c19be20, 0x1bfa9: 0x6cd9a020, 0x1bfaa: 0x6cbaa620, 0x1bfab: 0x6c3c2220, + 0x1bfac: 0x6ca3e620, 0x1bfad: 0x6cfe8620, 0x1bfae: 0x6cfa8a20, 0x1bfaf: 0x6c7a2e20, + 0x1bfb0: 0x6cb28420, 0x1bfb1: 0x6cdf1c20, 0x1bfb2: 0x6cf7d420, 0x1bfb3: 0x6d350220, + 0x1bfb4: 0x6c48da20, 0x1bfb5: 0x6cfe8c20, 0x1bfb6: 0x6c643a20, 0x1bfb7: 0x6c633420, + 0x1bfb8: 0x6c467620, 0x1bfb9: 0x6c05aa20, 0x1bfba: 0x6ca0e220, 0x1bfbb: 0x6d16f220, + 0x1bfbc: 0x6d12d820, 0x1bfbd: 0x6d12e020, 0x1bfbe: 0x6cd33c20, 0x1bfbf: 0x6ca7fa20, + // Block 0x6ff, offset 0x1bfc0 + 0x1bfc0: 0x6c08c220, 0x1bfc1: 0x6c34d820, 0x1bfc2: 0x6d149e20, 0x1bfc3: 0x6c8cb820, + 0x1bfc4: 0x6c0dd020, 0x1bfc5: 0x6ca63020, 0x1bfc6: 0x6c7e4020, 0x1bfc7: 0x6c50d820, + 0x1bfc8: 0x6c04f020, 0x1bfc9: 0x6c388620, 0x1bfca: 0x6d37a420, 0x1bfcb: 0x6c274620, + 0x1bfcc: 0x6c222c20, 0x1bfcd: 0x6d100a20, 0x1bfce: 0x6c3d4a20, 0x1bfcf: 0x6c041a20, + 0x1bfd0: 0x6ca1fe20, 0x1bfd1: 0x6c418620, 0x1bfd2: 0x6cb4d420, 0x1bfd3: 0x6cc4ba20, + 0x1bfd4: 0x6cc74220, 0x1bfd5: 0x6c995220, 0x1bfd6: 0x6cce9a20, 0x1bfd7: 0x6cd90e20, + 0x1bfd8: 0x6d30e620, 0x1bfd9: 0x6cf99620, 0x1bfda: 0x6d202a20, 0x1bfdb: 0x6ccfba20, + 0x1bfdc: 0x6c4b3020, 0x1bfdd: 0x6ceb9a20, 0x1bfde: 0x6d2cb420, 0x1bfdf: 0x6ca3ec20, + 0x1bfe0: 0x6ca8fe20, 0x1bfe1: 0x6d1e2420, 0x1bfe2: 0x6c2be420, 0x1bfe3: 0x6d359e20, + 0x1bfe4: 0x6d2bcc20, 0x1bfe5: 0x6c13cc20, 0x1bfe6: 0x6c287020, 0x1bfe7: 0x6c46f820, + 0x1bfe8: 0x6c107620, 0x1bfe9: 0x6c6fdc20, 0x1bfea: 0x6c022820, 0x1bfeb: 0x6c3e0c20, + 0x1bfec: 0x6c657020, 0x1bfed: 0x6c032e20, 0x1bfee: 0x6c34da20, 0x1bfef: 0x6c77de20, + 0x1bff0: 0x6ca3b020, 0x1bff1: 0x6d3abe20, 0x1bff2: 0x6c094820, 0x1bff3: 0x6c8efa20, + 0x1bff4: 0x6c147620, 0x1bff5: 0x6cccd020, 0x1bff6: 0x6cd89e20, 0x1bff7: 0x6c1f1820, + 0x1bff8: 0x6cadb620, 0x1bff9: 0x6cd31a20, 0x1bffa: 0x6c48dc20, 0x1bffb: 0x6d2bce20, + 0x1bffc: 0x6d119820, 0x1bffd: 0x6c195620, 0x1bffe: 0x6c6fde20, 0x1bfff: 0x6cd33e20, + // Block 0x700, offset 0x1c000 + 0x1c000: 0x6d33a620, 0x1c001: 0x6c8efc20, 0x1c002: 0x6c99de20, 0x1c003: 0x6c87da20, + 0x1c004: 0x6cc65620, 0x1c005: 0x6d2cb620, 0x1c006: 0x6d2aa020, 0x1c007: 0x6c0bec20, + 0x1c008: 0x6d2e4c20, 0x1c009: 0x6d35a020, 0x1c00a: 0x6c8f7620, 0x1c00b: 0x6c306220, + 0x1c00c: 0x6c914420, 0x1c00d: 0x6cd0ea20, 0x1c00e: 0x6c85a620, 0x1c00f: 0x6c7f9020, + 0x1c010: 0x6d1e1c20, 0x1c011: 0x6cd5ae20, 0x1c012: 0x6d09f620, 0x1c013: 0x6cd68420, + 0x1c014: 0x6cb76820, 0x1c015: 0x6d313820, 0x1c016: 0x6cb4dc20, 0x1c017: 0x6c85ca20, + 0x1c018: 0x6d14c220, 0x1c019: 0x6cfdba20, 0x1c01a: 0x6d323020, 0x1c01b: 0x6c85cc20, + 0x1c01c: 0x6ccb1a20, 0x1c01d: 0x6c484e20, 0x1c01e: 0x6c76a420, 0x1c01f: 0x6c078420, + 0x1c020: 0x6cc58e20, 0x1c021: 0x6cffde20, 0x1c022: 0x6c041c20, 0x1c023: 0x6cc59020, + 0x1c024: 0x6c0e1220, 0x1c025: 0x6d3e1620, 0x1c026: 0x6c1d9820, 0x1c027: 0x6d172c20, + 0x1c028: 0x6c22be20, 0x1c029: 0x6d063420, 0x1c02a: 0x6d399220, 0x1c02b: 0x6c666c20, + 0x1c02c: 0x6d41a820, 0x1c02d: 0x6c374a20, 0x1c02e: 0x6c378e20, 0x1c02f: 0x6d1fb820, + 0x1c030: 0x6c380c20, 0x1c031: 0x6c45e220, 0x1c032: 0x6c77a620, 0x1c033: 0x6c81ac20, + 0x1c034: 0x6d2d6a20, 0x1c035: 0x6c8aec20, 0x1c036: 0x6d19be20, 0x1c037: 0x6d104420, + 0x1c038: 0x6c50f220, 0x1c039: 0x6c449820, 0x1c03a: 0x6d172e20, 0x1c03b: 0x6cd34e20, + 0x1c03c: 0x6c43dc20, 0x1c03d: 0x6d28fc20, 0x1c03e: 0x6c943620, 0x1c03f: 0x6c3e3420, + // Block 0x701, offset 0x1c040 + 0x1c040: 0x6c6aa620, 0x1c041: 0x6c525c20, 0x1c042: 0x6c4b3e20, 0x1c043: 0x6ce21020, + 0x1c044: 0x6c49e420, 0x1c045: 0x6ceef420, 0x1c046: 0x6c7b9820, 0x1c047: 0x6cc79620, + 0x1c048: 0x6c01ac20, 0x1c049: 0x6c012020, 0x1c04a: 0x6c734a20, 0x1c04b: 0x6d14c420, + 0x1c04c: 0x6d3cf820, 0x1c04d: 0x6c7a3620, 0x1c04e: 0x6d35bc20, 0x1c04f: 0x6cbf0420, + 0x1c050: 0x6ce73020, 0x1c051: 0x6cca6c20, 0x1c052: 0x6cca6a20, 0x1c053: 0x6c586a20, + 0x1c054: 0x6c710420, 0x1c055: 0x6c6fea20, 0x1c056: 0x6d094c20, 0x1c057: 0x6c34e020, + 0x1c058: 0x6d3c7c20, 0x1c059: 0x6d20f220, 0x1c05a: 0x6d296420, + 0x1c05c: 0x6d1ba620, 0x1c05d: 0x6c6c1820, 0x1c05e: 0x6c8f6220, 0x1c05f: 0x6d2e5020, + 0x1c060: 0x6d0ade20, 0x1c061: 0x6cc52620, 0x1c062: 0x6d313a20, 0x1c063: 0x6c295e20, + 0x1c064: 0x6cb4de20, 0x1c065: 0x6cbbd820, 0x1c066: 0x6c578c20, 0x1c067: 0x6c4b4020, + 0x1c068: 0x6c67a220, 0x1c069: 0x6d3c1220, 0x1c06a: 0x6d09f820, 0x1c06b: 0x6cdd1620, + 0x1c06c: 0x6ccbe620, 0x1c06d: 0x6d314e20, 0x1c06e: 0x6c069a20, 0x1c06f: 0x6ce64020, + 0x1c070: 0x6c7df220, 0x1c071: 0x6c6e7020, 0x1c072: 0x6cb3c220, 0x1c073: 0x6c07b020, + 0x1c074: 0x6c3e4e20, 0x1c075: 0x6cc89a20, 0x1c076: 0x6ce7b620, 0x1c077: 0x6c742820, + 0x1c078: 0x6cf5ec20, 0x1c079: 0x6c80ba20, 0x1c07a: 0x6c8f0420, 0x1c07b: 0x6c3c3c20, + 0x1c07c: 0x6cb4e820, 0x1c07d: 0x6cf1d420, 0x1c07e: 0x6c756c20, 0x1c07f: 0x6c41d620, + // Block 0x702, offset 0x1c080 + 0x1c080: 0x6cdaa220, 0x1c081: 0x6c894c20, 0x1c082: 0x6cc04620, 0x1c083: 0x6ce6be20, + 0x1c084: 0x6d1fc020, 0x1c085: 0x6c99ec20, 0x1c086: 0x6c052420, 0x1c087: 0x6c906620, + 0x1c088: 0x6cae6820, 0x1c089: 0x6d3c1620, 0x1c08a: 0x6c2c4020, 0x1c08b: 0x6d078c20, + 0x1c08c: 0x6ce8a220, 0x1c08d: 0x6d2a7e20, 0x1c08e: 0x6c022a20, 0x1c08f: 0x6c481020, + 0x1c090: 0x6c097a20, 0x1c091: 0x6c2b6820, 0x1c092: 0x6c4e0020, 0x1c093: 0x6d3f0820, + 0x1c094: 0x6d33d420, 0x1c095: 0x6cc5e620, 0x1c096: 0x6c070e20, 0x1c097: 0x6c450820, + 0x1c098: 0x6c658620, 0x1c099: 0x6c591020, 0x1c09a: 0x6ced0a20, 0x1c09b: 0x6caaba20, + 0x1c09c: 0x6c634a20, 0x1c09d: 0x6ce57c20, 0x1c09e: 0x6c61ee20, 0x1c09f: 0x6cfeb220, + 0x1c0a0: 0x6c938e20, 0x1c0a1: 0x6c5ce620, 0x1c0a2: 0x6cce6820, 0x1c0a3: 0x6c133020, + 0x1c0a4: 0x6c3b6c20, 0x1c0a5: 0x6cd91a20, 0x1c0a6: 0x6c9c0220, 0x1c0a7: 0x6cf3c020, + 0x1c0a8: 0x6c83bc20, 0x1c0a9: 0x6c83be20, 0x1c0aa: 0x6c311020, 0x1c0ab: 0x6cbdd020, + 0x1c0ac: 0x6d1cea20, 0x1c0ad: 0x6cdd1820, 0x1c0ae: 0x6c708c20, 0x1c0af: 0x6ce2ea20, + 0x1c0b0: 0x6d019020, 0x1c0b1: 0x6c7da820, 0x1c0b2: 0x6d3d5020, 0x1c0b3: 0x6cd4ca20, + 0x1c0b4: 0x6c14c020, 0x1c0b5: 0x6c394220, 0x1c0b6: 0x6cefae20, 0x1c0b7: 0x6c6e7220, + 0x1c0b8: 0x6c83c020, 0x1c0b9: 0x6c0d3220, 0x1c0ba: 0x6cfa6420, 0x1c0bb: 0x6c3d1020, + 0x1c0bc: 0x6ce21c20, 0x1c0bd: 0x6d35e220, 0x1c0be: 0x6c7efa20, 0x1c0bf: 0x6c87fc20, + // Block 0x703, offset 0x1c0c0 + 0x1c0c0: 0x6c658820, 0x1c0c1: 0x6d3cfc20, 0x1c0c2: 0x6c8ce620, 0x1c0c3: 0x6c83d420, + 0x1c0c4: 0x6cb79220, 0x1c0c5: 0x6c0e2220, 0x1c0c6: 0x6c94f820, 0x1c0c7: 0x6c231620, + 0x1c0c8: 0x6cba5420, 0x1c0c9: 0x6c9dc420, 0x1c0ca: 0x6cb5e620, 0x1c0cb: 0x6cb5e820, + 0x1c0cc: 0x6c114620, 0x1c0cd: 0x6c4bf820, 0x1c0ce: 0x6c14f420, 0x1c0cf: 0x6c2a7020, + 0x1c0d0: 0x6c3a5820, 0x1c0d1: 0x6cabfe20, 0x1c0d2: 0x6c057020, 0x1c0d3: 0x6c057220, + 0x1c0d4: 0x6c5cca20, 0x1c0d5: 0x6d3f8e20, 0x1c0d6: 0x6c1a0020, 0x1c0d7: 0x6d2a4c20, + 0x1c0d8: 0x6c603820, 0x1c0d9: 0x6c861020, 0x1c0da: 0x6caea020, 0x1c0db: 0x6d233e20, + 0x1c0dc: 0x6d234020, 0x1c0dd: 0x6c481420, 0x1c0de: 0x6c75ba20, 0x1c0df: 0x6c307620, + 0x1c0e0: 0x6ce0f620, 0x1c0e1: 0x6c428020, 0x1c0e2: 0x6cee1a20, 0x1c0e3: 0x6c2c5620, + 0x1c0e4: 0x6c262a20, 0x1c0e5: 0x6c389c20, 0x1c0e6: 0x6c195c20, 0x1c0e7: 0x6d2e6220, + 0x1c0e8: 0x6cb6fe20, 0x1c0e9: 0x6d24f620, 0x1c0ea: 0x6d0d8820, 0x1c0eb: 0x6d234220, + 0x1c0ec: 0x6cc29e20, 0x1c0ed: 0x6d17a020, 0x1c0ee: 0x6ccbaa20, 0x1c0ef: 0x6cc59820, + 0x1c0f0: 0x6c20d220, 0x1c0f1: 0x6c837820, 0x1c0f2: 0x6cb4f420, 0x1c0f3: 0x6d3d0220, + 0x1c0f4: 0x6c3e7a20, 0x1c0f5: 0x6c77f820, 0x1c0f6: 0x6c7f0820, 0x1c0f7: 0x6d405220, + 0x1c0f8: 0x6d405420, 0x1c0f9: 0x6d2fb220, 0x1c0fa: 0x6c491620, 0x1c0fb: 0x6c3b2a20, + 0x1c0fc: 0x6c3b7420, 0x1c0fd: 0x6ccfe620, 0x1c0fe: 0x6cbe7c20, 0x1c0ff: 0x6ca5e420, + // Block 0x704, offset 0x1c100 + 0x1c100: 0x6ced1c20, 0x1c101: 0x6c4cc020, 0x1c102: 0x6c925420, 0x1c103: 0x6c4fc620, + 0x1c104: 0x6c6a1620, 0x1c105: 0x6d15f020, 0x1c106: 0x6c1dae20, 0x1c107: 0x6c71b620, + 0x1c108: 0x6c712220, 0x1c109: 0x6c1a0220, 0x1c10a: 0x6d423a20, 0x1c10b: 0x6c895420, + 0x1c10c: 0x6cbab820, 0x1c10d: 0x6d346020, 0x1c10e: 0x6c20d420, 0x1c10f: 0x6d0af020, + 0x1c110: 0x6c709220, 0x1c111: 0x6c06a020, 0x1c112: 0x6c684620, 0x1c113: 0x6d3d6020, + 0x1c114: 0x6d3e3a20, 0x1c115: 0x6c0d3820, 0x1c116: 0x6caea220, 0x1c117: 0x6c2fa620, + 0x1c118: 0x6c1eda20, 0x1c119: 0x6c172e20, 0x1c11a: 0x6c9b0620, 0x1c11b: 0x6c57dc20, + 0x1c11c: 0x6c659420, 0x1c11d: 0x6c4a6820, 0x1c11e: 0x6cf88820, 0x1c11f: 0x6c319c20, + 0x1c120: 0x6cba5620, 0x1c121: 0x6c2a5820, 0x1c122: 0x6c4bb420, 0x1c123: 0x6c2da020, + 0x1c124: 0x6c954620, 0x1c125: 0x6d33e020, 0x1c126: 0x6cc38220, 0x1c127: 0x6ca04420, + 0x1c128: 0x6c40b220, 0x1c129: 0x6c454820, 0x1c12a: 0x6caf1220, 0x1c12b: 0x6d2dee20, + 0x1c12c: 0x6d199420, 0x1c12d: 0x6ceb7e20, 0x1c12e: 0x6ccbac20, 0x1c12f: 0x6c349a20, + 0x1c130: 0x6d125e20, 0x1c131: 0x6c400c20, 0x1c132: 0x6cefda20, 0x1c133: 0x6cee9a20, + 0x1c134: 0x6c32c820, 0x1c135: 0x6c641a20, 0x1c136: 0x6d3f9a20, 0x1c137: 0x6c64b220, + 0x1c138: 0x6d151a20, 0x1c139: 0x6cd0ae20, 0x1c13a: 0x6cf78620, 0x1c13b: 0x6d0e8220, + 0x1c13c: 0x6d0da220, 0x1c13d: 0x6c200020, 0x1c13e: 0x6c64b420, 0x1c13f: 0x6c210c20, + // Block 0x705, offset 0x1c140 + 0x1c140: 0x6d226a20, 0x1c141: 0x6c513a20, 0x1c142: 0x6d2be020, 0x1c143: 0x6cf2fa20, + 0x1c144: 0x6cb11420, 0x1c145: 0x6c087a20, 0x1c146: 0x6d10ac20, 0x1c147: 0x6c5dd020, + 0x1c148: 0x6d05b220, 0x1c149: 0x6cc92020, 0x1c14a: 0x6d0fc620, 0x1c14b: 0x6c7e7c20, + 0x1c14c: 0x6d0caa20, 0x1c14d: 0x6c079e20, 0x1c14e: 0x6c5ac420, 0x1c14f: 0x6c7c8a20, + 0x1c150: 0x6c6bea20, 0x1c151: 0x6c7c8c20, 0x1c152: 0x6cd7f220, 0x1c153: 0x6c3c5420, + 0x1c154: 0x6d004820, 0x1c155: 0x6ceb8220, 0x1c156: 0x6d35e420, 0x1c157: 0x6c668c20, + 0x1c158: 0x6ca29a20, 0x1c159: 0x6c999020, 0x1c15a: 0x6c1f9420, 0x1c15b: 0x6c569e20, + 0x1c15c: 0x6c556c20, 0x1c15d: 0x6c890420, 0x1c15e: 0x6c837a20, 0x1c15f: 0x6ce67e20, + 0x1c160: 0x6ca40220, 0x1c161: 0x6d215220, 0x1c162: 0x6d1f4620, 0x1c163: 0x6c9a0820, + 0x1c164: 0x6cd96620, 0x1c165: 0x6d089a20, 0x1c166: 0x6d089c20, 0x1c167: 0x6d101e20, + 0x1c168: 0x6d316620, 0x1c169: 0x6cb11620, 0x1c16a: 0x6d12fe20, 0x1c16b: 0x6c605220, + 0x1c16c: 0x6c6ae620, 0x1c16d: 0x6d130020, 0x1c16e: 0x6c1ee020, 0x1c16f: 0x6c33fa20, + 0x1c170: 0x6d212820, 0x1c171: 0x6d408a20, 0x1c172: 0x6cee9c20, 0x1c173: 0x6c9a0a20, + 0x1c174: 0x6ce40220, 0x1c175: 0x6c603a20, 0x1c176: 0x6c6ae820, 0x1c177: 0x6c766220, + 0x1c178: 0x6cbfb420, 0x1c179: 0x6d1c7e20, 0x1c17a: 0x6cc77a20, 0x1c17b: 0x6c59d020, + 0x1c17c: 0x6c909620, 0x1c17d: 0x6c822220, 0x1c17e: 0x6cc38420, 0x1c17f: 0x6cfe7620, + // Block 0x706, offset 0x1c180 + 0x1c180: 0x6cb23c20, 0x1c181: 0x6cd41820, 0x1c182: 0x6c414420, 0x1c183: 0x6cdfe820, + 0x1c184: 0x6c802e20, 0x1c185: 0x6cf15620, 0x1c186: 0x6d215420, 0x1c187: 0x6c192c20, + 0x1c188: 0x6c935620, 0x1c189: 0x6c71be20, 0x1c18a: 0x6cd0cc20, 0x1c18b: 0x6c1f9620, + 0x1c18c: 0x6cb0ea20, 0x1c18d: 0x6d01d420, 0x1c18e: 0x6c642420, 0x1c18f: 0x6d182420, + 0x1c190: 0x6d2e0220, 0x1c191: 0x6c3ec020, 0x1c192: 0x6cab0620, 0x1c193: 0x6c9d6620, + 0x1c194: 0x6c80c220, 0x1c195: 0x6cc69020, 0x1c196: 0x6c47ae20, 0x1c197: 0x6c66a820, + 0x1c198: 0x6c71c020, 0x1c199: 0x6cddf220, 0x1c19a: 0x6d11c020, 0x1c19b: 0x6d317a20, + 0x1c19c: 0x6c055220, 0x1c19d: 0x6ccc0820, 0x1c19e: 0x6d259220, 0x1c19f: 0x6d3f2020, + 0x1c1a0: 0x6ca01020, 0x1c1a1: 0x6cdae620, 0x1c1a2: 0x6c644c20, 0x1c1a3: 0x6d112020, + 0x1c1a4: 0x6c6b0a20, 0x1c1a5: 0x6c5a7420, 0x1c1a6: 0x6c422a20, 0x1c1a7: 0x6c3a6220, + 0x1c1a8: 0x6d2cd020, 0x1c1a9: 0x6cb9ae20, 0x1c1aa: 0x6c96ce20, 0x1c1ab: 0x6cdcf420, + 0x1c1ac: 0x6d259420, 0x1c1ad: 0x6d01d620, 0x1c1ae: 0x6cc69220, 0x1c1af: 0x6cd27c20, + 0x1c1b0: 0x6d33fe20, 0x1c1b1: 0x6c24de20, 0x1c1b2: 0x6d27ba20, 0x1c1b3: 0x6ce68020, + 0x1c1b4: 0x6c8e7a20, 0x1c1b5: 0x6cc68620, 0x1c1b6: 0x6ce10e20, 0x1c1b7: 0x6cc3de20, + 0x1c1b8: 0x6d2cfa20, 0x1c1b9: 0x6cd80220, 0x1c1ba: 0x6cd17420, 0x1c1bb: 0x6cde7020, + 0x1c1bc: 0x6c781420, 0x1c1bd: 0x6cf66c20, 0x1c1be: 0x6c479c20, 0x1c1bf: 0x6cb51020, + // Block 0x707, offset 0x1c1c0 + 0x1c1c0: 0x6c431020, 0x1c1c1: 0x6c431220, 0x1c1c2: 0x6cdcdc20, 0x1c1c3: 0x6cac6620, + 0x1c1c4: 0x6ce1da20, 0x1c1c5: 0x6c441220, 0x1c1c6: 0x6d0a1a20, 0x1c1c7: 0x6c2cd420, + 0x1c1c8: 0x6caa2420, 0x1c1c9: 0x6c606420, 0x1c1ca: 0x6cd78c20, 0x1c1cb: 0x6c46c220, + 0x1c1cc: 0x6c20d820, 0x1c1cd: 0x6cbacc20, 0x1c1ce: 0x6c13ec20, 0x1c1cf: 0x6cba1620, + 0x1c1d0: 0x6c57ec20, 0x1c1d1: 0x6c9a1820, 0x1c1d2: 0x6d070a20, 0x1c1d3: 0x6c42ac20, + 0x1c1d4: 0x6c42cc20, 0x1c1d5: 0x6d3d8020, 0x1c1d6: 0x6ceb3620, 0x1c1d7: 0x6cbc7420, + 0x1c1d8: 0x6d105c20, 0x1c1d9: 0x6c2cd620, 0x1c1da: 0x6c642620, 0x1c1db: 0x6c76e220, + 0x1c1dc: 0x6d41be20, 0x1c1dd: 0x6c2a5a20, 0x1c1de: 0x6c907220, 0x1c1df: 0x6c0d4420, + 0x1c1e0: 0x6d39ba20, 0x1c1e1: 0x6ccaa420, 0x1c1e2: 0x6cf79c20, 0x1c1e3: 0x6c5f1420, + 0x1c1e4: 0x6c882220, 0x1c1e5: 0x6c5c1620, 0x1c1e6: 0x6d1da420, 0x1c1e7: 0x6cba7420, + 0x1c1e8: 0x6c4cc220, 0x1c1e9: 0x6c414620, 0x1c1ea: 0x6c415020, 0x1c1eb: 0x6ce95820, + 0x1c1ec: 0x6c57bc20, 0x1c1ed: 0x6cb52020, 0x1c1ee: 0x6ccbae20, 0x1c1ef: 0x6c24e220, + 0x1c1f0: 0x6caeb220, 0x1c1f1: 0x6d1fe420, 0x1c1f2: 0x6c559020, 0x1c1f3: 0x6c67b620, + 0x1c1f4: 0x6c56be20, 0x1c1f5: 0x6c594a20, 0x1c1f6: 0x6c4b6820, 0x1c1f7: 0x6ca85e20, + 0x1c1f8: 0x6d185220, 0x1c1f9: 0x6c42d820, 0x1c1fa: 0x6c774420, 0x1c1fb: 0x6c4a8620, + 0x1c1fc: 0x6c4a8820, 0x1c1fd: 0x6c128a20, 0x1c1fe: 0x6c97fa20, 0x1c1ff: 0x6c6cac20, + // Block 0x708, offset 0x1c200 + 0x1c200: 0x6c2b4020, 0x1c201: 0x6d3c2220, 0x1c202: 0x6c822620, 0x1c203: 0x6c810a20, + 0x1c204: 0x6c18dc20, 0x1c205: 0x6c233a20, 0x1c206: 0x6c841820, 0x1c207: 0x6d04e220, + 0x1c208: 0x6cbe8620, 0x1c209: 0x6cd6da20, 0x1c20a: 0x6c38b220, 0x1c20b: 0x6ce7c220, + 0x1c20c: 0x6c499e20, 0x1c20d: 0x6d2ae820, 0x1c20e: 0x6cdafc20, 0x1c20f: 0x6c82d020, + 0x1c210: 0x6c91d220, 0x1c211: 0x6c896620, 0x1c212: 0x6c9d7820, 0x1c213: 0x6c90b020, + 0x1c214: 0x6c177420, 0x1c215: 0x6cdafe20, 0x1c216: 0x6c782220, 0x1c217: 0x6c1e6620, + 0x1c218: 0x6ce12020, 0x1c219: 0x6c0c1620, 0x1c21a: 0x6c92a220, 0x1c21b: 0x6c6f8420, + 0x1c21c: 0x6d30fc20, 0x1c21d: 0x6d2bf620, 0x1c21e: 0x6cd50020, 0x1c21f: 0x6d2ed620, + 0x1c220: 0x6c977020, 0x1c221: 0x6ca06a20, 0x1c222: 0x6ca7a820, 0x1c223: 0x6d106a20, + 0x1c224: 0x6ce59820, 0x1c225: 0x6caeb420, 0x1c226: 0x6d3b1e20, 0x1c227: 0x6ccc0e20, + 0x1c228: 0x6cf6c020, 0x1c229: 0x6cc31020, 0x1c22a: 0x6c526c20, 0x1c22b: 0x6c64ce20, + 0x1c22c: 0x6c233c20, 0x1c22d: 0x6c630e20, 0x1c22e: 0x6d0f3a20, 0x1c22f: 0x6cbb1820, + 0x1c230: 0x6d098820, 0x1c231: 0x6d1be420, 0x1c232: 0x6c37de20, 0x1c233: 0x6d0a3c20, + 0x1c234: 0x6d349820, 0x1c235: 0x6cbbf620, 0x1c236: 0x6d417c20, 0x1c237: 0x6c23b420, + 0x1c238: 0x6cb49620, 0x1c239: 0x6cd60a20, 0x1c23a: 0x6c57ae20, 0x1c23b: 0x6c7d1e20, + 0x1c23c: 0x6d319020, 0x1c23d: 0x6d41f220, 0x1c23e: 0x6d26ec20, 0x1c23f: 0x6ccdac20, + // Block 0x709, offset 0x1c240 + 0x1c240: 0x6cf6c420, 0x1c241: 0x6c211420, 0x1c242: 0x6c2d8020, 0x1c243: 0x6c382620, + 0x1c244: 0x6c41e620, 0x1c245: 0x6ca07620, 0x1c246: 0x6cf47a20, 0x1c247: 0x6cbbaa20, + 0x1c248: 0x6cc52c20, 0x1c249: 0x6c8c6020, 0x1c24a: 0x6c8e9620, 0x1c24b: 0x6cbbf820, + 0x1c24c: 0x6cfd0c20, 0x1c24d: 0x6cc90820, 0x1c24e: 0x6c38ba20, 0x1c24f: 0x6d2e1420, + 0x1c250: 0x6ceb4820, 0x1c251: 0x6c81bc20, 0x1c252: 0x6d27c620, 0x1c253: 0x6cd75a20, + 0x1c254: 0x6c33ae20, 0x1c255: 0x6c199220, 0x1c256: 0x6ce13220, 0x1c257: 0x6c9b3820, + 0x1c258: 0x6c715a20, 0x1c259: 0x6c1a4220, 0x1c25a: 0x6cdb3020, 0x1c25b: 0x6c74ba20, + 0x1c25c: 0x6c74bc20, 0x1c25d: 0x6c2d8220, 0x1c25e: 0x6c5c3020, 0x1c25f: 0x6c5f3020, + 0x1c260: 0x6caae020, 0x1c261: 0x6cfe4e20, 0x1c262: 0x6ceb8e20, 0x1c263: 0x6ca94620, + 0x1c264: 0x6cc8b020, 0x1c265: 0x6d39c420, 0x1c266: 0x6ce78620, 0x1c267: 0x6d2b8e20, + 0x1c268: 0x6c3b9420, 0x1c269: 0x6cbf6020, 0x1c26a: 0x6cc4d220, 0x1c26b: 0x6c526e20, + 0x1c26c: 0x6cb9c820, 0x1c26d: 0x6c472e20, 0x1c26e: 0x6c8f1a20, 0x1c26f: 0x6c81e020, + 0x1c270: 0x6c42dc20, 0x1c271: 0x6c1eae20, 0x1c272: 0x6cf94620, 0x1c273: 0x6cd18820, + 0x1c274: 0x6d3f6c20, 0x1c275: 0x6cca6820, 0x1c276: 0x6c60a620, 0x1c277: 0x6c30c620, + 0x1c278: 0x6c6eca20, 0x1c279: 0x6c91dc20, 0x1c27a: 0x6c673c20, 0x1c27b: 0x6c1f9820, + 0x1c27c: 0x6d25aa20, 0x1c27d: 0x6cde9c20, 0x1c27e: 0x6cd50c20, 0x1c27f: 0x6c678220, + // Block 0x70a, offset 0x1c280 + 0x1c280: 0x6ce01820, 0x1c281: 0x6c8c3820, 0x1c282: 0x6ca9cc20, 0x1c283: 0x6d1b0620, + 0x1c284: 0x6cf7a820, 0x1c285: 0x6cdc8020, 0x1c286: 0x6ccd1020, 0x1c287: 0x6d41d020, + 0x1c288: 0x6d082a20, 0x1c289: 0x6c199a20, 0x1c28a: 0x6c423420, 0x1c28b: 0x6c716220, + 0x1c28c: 0x6d41d820, 0x1c28d: 0x6d18c620, 0x1c28e: 0x6cbda220, 0x1c28f: 0x6cb49c20, + 0x1c290: 0x6d0cd620, 0x1c291: 0x6c826020, 0x1c292: 0x6c3c6a20, 0x1c293: 0x6c5b6c20, + 0x1c294: 0x6c299220, 0x1c295: 0x6c629620, 0x1c296: 0x6cdc7020, 0x1c297: 0x6c0ff820, + 0x1c298: 0x6cb2d420, 0x1c299: 0x6c1a4420, 0x1c29a: 0x6c1ef020, 0x1c29b: 0x6d3b5a20, + 0x1c29c: 0x6c4b7c20, 0x1c29d: 0x6c60aa20, 0x1c29e: 0x6c6ba020, 0x1c29f: 0x6c643020, + 0x1c2a0: 0x6cbe8e20, 0x1c2a1: 0x6d2d2020, 0x1c2a2: 0x6c65e020, 0x1c2a3: 0x6cbb2820, + 0x1c2a4: 0x6c2a3420, 0x1c2a5: 0x6d161a20, 0x1c2a6: 0x6c0c8220, 0x1c2a7: 0x6cd93a20, + 0x1c2a8: 0x6ccefe20, 0x1c2a9: 0x6c8c3a20, 0x1c2aa: 0x6c87e420, 0x1c2ab: 0x6c140e20, + 0x1c2ac: 0x6c9b5c20, 0x1c2ad: 0x6d1aa020, 0x1c2ae: 0x6ce24820, 0x1c2af: 0x6cdf4e20, + 0x1c2b0: 0x6c9de020, 0x1c2b1: 0x6cb67020, 0x1c2b2: 0x6ce96820, 0x1c2b3: 0x6c0d5c20, + 0x1c2b4: 0x6c5e0820, 0x1c2b5: 0x6c62aa20, 0x1c2b6: 0x6cb93420, 0x1c2b7: 0x6ca65820, + 0x1c2b8: 0x6ca92a20, 0x1c2b9: 0x6d142220, 0x1c2ba: 0x6c432a20, 0x1c2bb: 0x6c76f620, + 0x1c2bc: 0x6d1b9220, 0x1c2bd: 0x6caa2c20, 0x1c2be: 0x6cbeba20, 0x1c2bf: 0x6d0de620, + // Block 0x70b, offset 0x1c2c0 + 0x1c2c0: 0x6cb67220, 0x1c2c1: 0x6c9d9e20, 0x1c2c2: 0x6d2fe820, 0x1c2c3: 0x6c4b8820, + 0x1c2c4: 0x6c212220, 0x1c2c5: 0x6c5f6a20, 0x1c2c6: 0x6c7ca420, 0x1c2c7: 0x6cb33c20, + 0x1c2c8: 0x6c2af020, 0x1c2c9: 0x6c1eba20, 0x1c2ca: 0x6c449020, 0x1c2cb: 0x6c9de420, + 0x1c2cc: 0x6d1ec220, 0x1c2cd: 0x6d373e20, 0x1c2ce: 0x6c5a6620, 0x1c2cf: 0x6cb93e20, + 0x1c2d0: 0x6c82f420, 0x1c2d1: 0x6c827020, 0x1c2d2: 0x6cc9a820, 0x1c2d3: 0x6c91f220, + 0x1c2d4: 0x6c86cc20, 0x1c2d5: 0x6c24a220, 0x1c2d6: 0x6c941220, 0x1c2d7: 0x6c9efc20, + 0x1c2d8: 0x6c5c7a20, 0x1c2d9: 0x6cab5c20, 0x1c2da: 0x6c916220, 0x1c2db: 0x6d370620, + 0x1c2dc: 0x6c42ea20, 0x1c2dd: 0x6c31d020, 0x1c2de: 0x6d25c620, 0x1c2df: 0x6c86f620, + 0x1c2e0: 0x6c3ae820, 0x1c2e1: 0x6d3dba20, 0x1c2e2: 0x6cda3420, 0x1c2e3: 0x6c886020, + 0x1c2e4: 0x6c681c20, 0x1c2e5: 0x6c1ec420, 0x1c2e6: 0x6cbeec20, 0x1c2e7: 0x6d39e020, + 0x1c2e8: 0x6c918020, 0x1c2e9: 0x6d0cfc20, 0x1c2ea: 0x6c871a20, 0x1c2eb: 0x6d39de20, + 0x1c2ec: 0x6c193e20, 0x1c2ed: 0x6c6b5a20, 0x1c2ee: 0x6c36d820, 0x1c2ef: 0x6cda6820, + 0x1c2f0: 0x6c580020, 0x1c2f1: 0x6ca8a220, 0x1c2f2: 0x6d244e20, 0x1c2f3: 0x6c8fdc20, + 0x1c2f4: 0x6c7f7420, 0x1c2f5: 0x6c69f020, 0x1c2f6: 0x6cfc4620, 0x1c2f7: 0x6c4aa820, + 0x1c2f8: 0x6c71de20, 0x1c2f9: 0x6cff4820, 0x1c2fa: 0x6c8d9a20, 0x1c2fb: 0x6d1c2a20, + 0x1c2fc: 0x6c653c20, 0x1c2fd: 0x6d1b2420, 0x1c2fe: 0x6d1f9620, 0x1c2ff: 0x6d1cc420, + // Block 0x70c, offset 0x1c300 + 0x1c300: 0x6cfd9a20, 0x1c301: 0x6ca9e020, 0x1c302: 0x6c0fb620, 0x1c303: 0x6c156020, + 0x1c304: 0x6c7ff820, 0x1c305: 0x6c71e220, 0x1c306: 0x6cd6b220, 0x1c307: 0x6ccf9020, + 0x1c308: 0x6cef7420, 0x1c309: 0x6c23cc20, 0x1c30a: 0x6cc33020, 0x1c30b: 0x6cc20620, + 0x1c30c: 0x6c126220, 0x1c30d: 0x6c704820, 0x1c30e: 0x6d247a20, 0x1c30f: 0x6c957e20, + 0x1c310: 0x6c878a20, 0x1c311: 0x6c24a820, 0x1c312: 0x6c945c20, 0x1c313: 0x6c294420, + 0x1c314: 0x6c752820, 0x1c315: 0x6d0f3e20, 0x1c316: 0x6c806420, 0x1c317: 0x6c800e20, + 0x1c318: 0x6d3a4620, 0x1c319: 0x6c82a220, 0x1c31a: 0x6c855420, 0x1c31b: 0x6c03e020, + 0x1c31c: 0x6ca46620, 0x1c31d: 0x6d249220, 0x1c31e: 0x6c8dd820, 0x1c31f: 0x6c4a3020, + 0x1c320: 0x6cba3820, 0x1c321: 0x6c22aa20, 0x1c322: 0x6c596a20, 0x1c323: 0x6d02b620, + 0x1c324: 0x6d20b820, 0x1c325: 0x6d16be20, 0x1c326: 0x6cb8b220, 0x1c327: 0x6cab3020, + 0x1c328: 0x6d057820, 0x1c329: 0x6c173c20, 0x1c32a: 0x6c1f1a20, 0x1c32b: 0x6cb78020, + 0x1c32c: 0x6c768220, 0x1c32d: 0x6d173020, 0x1c32e: 0x6c741420, 0x1c32f: 0x6cf87020, + 0x1c330: 0x6d06a420, 0x1c331: 0x6c509820, 0x1c332: 0x6d231420, 0x1c333: 0x6c7cf220, + 0x1c334: 0x6c80ac20, 0x1c335: 0x6c7b6220, 0x1c336: 0x6cd77c20, 0x1c337: 0x6cf5ee20, + 0x1c338: 0x6c002220, 0x1c339: 0x6d13f420, 0x1c33a: 0x6cb4f620, 0x1c33b: 0x6c1f9e20, + 0x1c33c: 0x6c1ba620, 0x1c33d: 0x6cbd3020, 0x1c33e: 0x6c7b6620, 0x1c33f: 0x6c76d420, + // Block 0x70d, offset 0x1c340 + 0x1c340: 0x6c7b6820, 0x1c341: 0x6c76dc20, 0x1c342: 0x6c202220, 0x1c343: 0x6ccc5a20, + 0x1c344: 0x6c485a20, 0x1c345: 0x6d19ea20, 0x1c346: 0x6d02de20, 0x1c347: 0x6d004a20, + 0x1c348: 0x6d215620, 0x1c349: 0x6cba6820, 0x1c34a: 0x6cfeec20, 0x1c34b: 0x6d131620, + 0x1c34c: 0x6c43a020, 0x1c34d: 0x6cf37420, 0x1c34e: 0x6ce0a820, 0x1c34f: 0x6c6d3e20, + 0x1c350: 0x6cab4820, 0x1c351: 0x6c54f820, 0x1c352: 0x6ce40e20, 0x1c353: 0x6c582c20, + 0x1c354: 0x6d05d420, 0x1c355: 0x6cae3820, 0x1c356: 0x6cf81020, 0x1c357: 0x6d000820, + 0x1c358: 0x6c1fa220, 0x1c359: 0x6ccf7820, 0x1c35a: 0x6ccdae20, 0x1c35b: 0x6c4dbe20, + 0x1c35c: 0x6c1f7e20, 0x1c35d: 0x6d18c820, 0x1c35e: 0x6c36c420, 0x1c35f: 0x6d21b420, + 0x1c360: 0x6c21e220, 0x1c361: 0x6c596e20, 0x1c362: 0x6d34cc20, 0x1c363: 0x6d333620, + 0x1c364: 0x6c228a20, 0x1c365: 0x6c105e20, 0x1c366: 0x6cf42c20, 0x1c367: 0x6cb58420, + 0x1c368: 0x6c106e20, 0x1c369: 0x6c107020, 0x1c36a: 0x6cec4e20, 0x1c36b: 0x6c721220, + 0x1c36c: 0x6cb97e20, 0x1c36d: 0x6c1b1620, 0x1c36e: 0x6ccb2a20, 0x1c36f: 0x6c1ba820, + 0x1c370: 0x6ccb3620, 0x1c371: 0x6d37fa20, 0x1c372: 0x6cdc4620, 0x1c373: 0x6cdc4820, + 0x1c374: 0x6c864c20, 0x1c375: 0x6c263420, 0x1c376: 0x6d218220, 0x1c377: 0x6c867c20, + 0x1c378: 0x6c4a9a20, 0x1c379: 0x6c271220, 0x1c37a: 0x6c35ca20, 0x1c37b: 0x6cd86c20, + 0x1c37c: 0x6c646420, 0x1c37d: 0x6d301c20, 0x1c37e: 0x6ca0cc20, 0x1c37f: 0x6ca0ce20, + // Block 0x70e, offset 0x1c380 + 0x1c380: 0x6d109220, 0x1c381: 0x6ca0d020, 0x1c382: 0x6c242020, 0x1c383: 0x6d0f5020, + 0x1c384: 0x6ce4da20, 0x1c385: 0x6cd0ee20, 0x1c386: 0x6c274820, 0x1c387: 0x6cce0020, + 0x1c388: 0x6d06a620, 0x1c389: 0x6d0a7c20, 0x1c38a: 0x6cd4ba20, 0x1c38b: 0x6c118c20, + 0x1c38c: 0x6c742a20, 0x1c38d: 0x6cb19420, 0x1c38e: 0x6cb85c20, 0x1c38f: 0x6cc04820, + 0x1c390: 0x6cdaa420, 0x1c391: 0x6cbe7820, 0x1c392: 0x6d27e620, 0x1c393: 0x6c88ee20, + 0x1c394: 0x6d17a220, 0x1c395: 0x6c3d2a20, 0x1c396: 0x6d346220, 0x1c397: 0x6d12f220, + 0x1c398: 0x6c119620, 0x1c399: 0x6c5cce20, 0x1c39a: 0x6c27e020, 0x1c39b: 0x6c603c20, + 0x1c39c: 0x6c2ebe20, 0x1c39d: 0x6d317c20, 0x1c39e: 0x6d27f220, 0x1c39f: 0x6cf15820, + 0x1c3a0: 0x6c1e4820, 0x1c3a1: 0x6c0d8220, 0x1c3a2: 0x6ce41220, 0x1c3a3: 0x6c6d4020, + 0x1c3a4: 0x6cce1620, 0x1c3a5: 0x6d1a9220, 0x1c3a6: 0x6c2dda20, 0x1c3a7: 0x6c702220, + 0x1c3a8: 0x6c5c3220, 0x1c3a9: 0x6c24b020, 0x1c3aa: 0x6d189820, 0x1c3ab: 0x6c27fc20, + 0x1c3ac: 0x6c327e20, 0x1c3ad: 0x6c678420, 0x1c3ae: 0x6c892020, 0x1c3af: 0x6c0d8c20, + 0x1c3b0: 0x6c31d220, 0x1c3b1: 0x6c674020, 0x1c3b2: 0x6c653e20, 0x1c3b3: 0x6cd49820, + 0x1c3b4: 0x6cab3220, 0x1c3b5: 0x6c32b620, 0x1c3b6: 0x6d3ac020, 0x1c3b7: 0x6d19c020, + 0x1c3b8: 0x6cbec820, 0x1c3b9: 0x6d175e20, 0x1c3ba: 0x6ccbda20, 0x1c3bb: 0x6cbc4020, + 0x1c3bc: 0x6c784e20, 0x1c3bd: 0x6cff8a20, 0x1c3be: 0x6d0a8e20, 0x1c3bf: 0x6c2d5e20, + // Block 0x70f, offset 0x1c3c0 + 0x1c3c0: 0x6c5b5620, 0x1c3c1: 0x6c5b5820, 0x1c3c2: 0x6c47a020, 0x1c3c3: 0x6cbb9020, + 0x1c3c4: 0x6c5f0620, 0x1c3c5: 0x6d185420, 0x1c3c6: 0x6cab4a20, 0x1c3c7: 0x6c5b6220, + 0x1c3c8: 0x6c32da20, 0x1c3c9: 0x6d142420, 0x1c3ca: 0x6cff5c20, 0x1c3cb: 0x6cf39c20, + 0x1c3cc: 0x6c497220, 0x1c3cd: 0x6ca22020, 0x1c3ce: 0x6c9a4820, 0x1c3cf: 0x6c9a4a20, + 0x1c3d0: 0x6c006020, 0x1c3d1: 0x6c6b9420, 0x1c3d2: 0x6c318820, 0x1c3d3: 0x6d239020, + 0x1c3d4: 0x6c08ac20, 0x1c3d5: 0x6c090a20, 0x1c3d6: 0x6c094e20, 0x1c3d7: 0x6cafc220, + 0x1c3d8: 0x6cafc420, 0x1c3d9: 0x6c095e20, 0x1c3da: 0x6c152c20, 0x1c3db: 0x6c98c020, + 0x1c3dc: 0x6c4fbc20, 0x1c3dd: 0x6c111a20, 0x1c3de: 0x6cafba20, 0x1c3df: 0x6c8b9020, + 0x1c3e0: 0x6c633820, 0x1c3e1: 0x6d2d6420, 0x1c3e2: 0x6cc9c020, 0x1c3e3: 0x6ca27620, + 0x1c3e4: 0x6ceb9e20, 0x1c3e5: 0x6d09fc20, 0x1c3e6: 0x6c379020, 0x1c3e7: 0x6cc66620, + 0x1c3e8: 0x6cfbfa20, 0x1c3e9: 0x6c710620, 0x1c3ea: 0x6ca21020, 0x1c3eb: 0x6c4fc420, + 0x1c3ec: 0x6cc04a20, 0x1c3ed: 0x6c311220, 0x1c3ee: 0x6ccbea20, 0x1c3ef: 0x6ce06020, + 0x1c3f0: 0x6cadd620, 0x1c3f1: 0x6c712420, 0x1c3f2: 0x6c343020, 0x1c3f3: 0x6c253c20, + 0x1c3f4: 0x6c087220, 0x1c3f5: 0x6cca0020, 0x1c3f6: 0x6cca6420, 0x1c3f7: 0x6c999420, + 0x1c3f8: 0x6cc9c820, 0x1c3f9: 0x6cd4ea20, 0x1c3fa: 0x6d208e20, 0x1c3fb: 0x6cebac20, + 0x1c3fc: 0x6c513c20, 0x1c3fd: 0x6c668e20, 0x1c3fe: 0x6cde7420, 0x1c3ff: 0x6cca0620, + // Block 0x710, offset 0x1c400 + 0x1c400: 0x6c935e20, 0x1c401: 0x6ca21620, 0x1c402: 0x6c98fa20, 0x1c403: 0x6ce78820, + 0x1c404: 0x6cc72220, 0x1c405: 0x6c16f820, 0x1c406: 0x6cb49820, 0x1c407: 0x6c934e20, + 0x1c408: 0x6d2da820, 0x1c409: 0x6ccafc20, 0x1c40a: 0x6d2daa20, 0x1c40b: 0x6c9b5e20, + 0x1c40c: 0x6c91f420, 0x1c40d: 0x6cc20820, 0x1c40e: 0x6c2f2220, 0x1c40f: 0x6cd2e420, + 0x1c410: 0x6c2b0a20, 0x1c411: 0x6c9f2620, 0x1c412: 0x6c73d220, 0x1c413: 0x6c983620, + 0x1c414: 0x6cb72620, 0x1c415: 0x6cb1c420, 0x1c416: 0x6ca39220, 0x1c417: 0x6cb72e20, + 0x1c418: 0x6c29bc20, 0x1c419: 0x6cfa7a20, 0x1c41a: 0x6c1fde20, 0x1c41b: 0x6c3b1a20, + 0x1c41c: 0x6d0f8820, 0x1c41d: 0x6ca58620, 0x1c41e: 0x6c0d9a20, 0x1c41f: 0x6c3e1020, + 0x1c420: 0x6ccfbc20, 0x1c421: 0x6c2fe620, 0x1c422: 0x6cbe3420, 0x1c423: 0x6cb76a20, + 0x1c424: 0x6d19c220, 0x1c425: 0x6cf5c020, 0x1c426: 0x6c4d6020, 0x1c427: 0x6d100e20, + 0x1c428: 0x6c012220, 0x1c429: 0x6d0b8e20, 0x1c42a: 0x6c78a620, 0x1c42b: 0x6cbe4420, + 0x1c42c: 0x6d0bb020, 0x1c42d: 0x6c300220, 0x1c42e: 0x6c288a20, 0x1c42f: 0x6c93e020, + 0x1c430: 0x6cbe7e20, 0x1c431: 0x6d102620, 0x1c432: 0x6d275620, 0x1c433: 0x6d275c20, + 0x1c434: 0x6cd70220, 0x1c435: 0x6cd73c20, 0x1c436: 0x6d331620, 0x1c437: 0x6c0da420, + 0x1c438: 0x6d1e0c20, 0x1c439: 0x6c294e20, 0x1c43a: 0x6cd73e20, 0x1c43b: 0x6c821020, + 0x1c43c: 0x6ca67820, 0x1c43d: 0x6cea7620, 0x1c43e: 0x6c391420, 0x1c43f: 0x6c4abc20, + // Block 0x711, offset 0x1c440 + 0x1c440: 0x6ce62620, 0x1c441: 0x6d338220, 0x1c442: 0x6cc00020, 0x1c443: 0x6c0d1e20, + 0x1c444: 0x6d2b3620, 0x1c445: 0x6c9dfc20, 0x1c446: 0x6c248c20, 0x1c447: 0x6c5b8820, + 0x1c448: 0x6c2dac20, 0x1c449: 0x6c4e7c20, 0x1c44a: 0x6c142c20, 0x1c44b: 0x6d3d2020, + 0x1c44c: 0x6c202a20, 0x1c44d: 0x6cecba20, 0x1c44e: 0x6c391c20, 0x1c44f: 0x6c26e820, + 0x1c450: 0x6cf57220, 0x1c451: 0x6cea9c20, 0x1c452: 0x6c982a20, 0x1c453: 0x6cbffa20, + 0x1c454: 0x6cb73020, 0x1c455: 0x6ccd6a20, 0x1c456: 0x6cb24220, 0x1c457: 0x6c4e8620, + 0x1c458: 0x6cb89a20, 0x1c459: 0x6cf34620, 0x1c45a: 0x6cf34820, 0x1c45b: 0x6d0a6620, + 0x1c45c: 0x6cd87a20, 0x1c45d: 0x6cc7f420, 0x1c45e: 0x6c45d420, 0x1c45f: 0x6c674220, + 0x1c460: 0x6c1af620, 0x1c461: 0x6cf34a20, 0x1c462: 0x6ce92c20, 0x1c463: 0x6c704220, + 0x1c464: 0x6ce0b820, 0x1c465: 0x6d338c20, 0x1c466: 0x6d34e820, 0x1c467: 0x6cb8a820, + 0x1c468: 0x6c9d1c20, 0x1c469: 0x6c475820, 0x1c46a: 0x6cedc420, 0x1c46b: 0x6c6e0e20, + 0x1c46c: 0x6c6e1020, 0x1c46d: 0x6cc8be20, 0x1c46e: 0x6c755a20, 0x1c46f: 0x6c52f820, + 0x1c470: 0x6cdf6020, 0x1c471: 0x6cc34e20, 0x1c472: 0x6c5fcc20, 0x1c473: 0x6c0b7020, + 0x1c474: 0x6c0b7220, 0x1c475: 0x6c420e20, 0x1c476: 0x6cf1fe20, 0x1c477: 0x6d378820, + 0x1c478: 0x6c398420, 0x1c479: 0x6d045620, 0x1c47a: 0x6c73e020, 0x1c47b: 0x6c561020, + 0x1c47c: 0x6ca96820, 0x1c47d: 0x6cb73820, 0x1c47e: 0x6c3b5620, 0x1c47f: 0x6d067220, + // Block 0x712, offset 0x1c480 + 0x1c480: 0x6d068420, 0x1c481: 0x6cbe0620, 0x1c482: 0x6d146220, 0x1c483: 0x6cf2ce20, + 0x1c484: 0x6d278020, 0x1c485: 0x6d253e20, 0x1c486: 0x6c4f9020, 0x1c487: 0x6d0d3e20, + 0x1c488: 0x6c189c20, 0x1c489: 0x6c189e20, 0x1c48a: 0x6c286820, 0x1c48b: 0x6d1eec20, + 0x1c48c: 0x6c33da20, 0x1c48d: 0x6c565820, 0x1c48e: 0x6c5d9c20, 0x1c48f: 0x6cb4cc20, + 0x1c490: 0x6ca26820, 0x1c491: 0x6caa7620, 0x1c492: 0x6c99d220, 0x1c493: 0x6c268220, + 0x1c494: 0x6c9e0020, 0x1c495: 0x6c9d1e20, 0x1c496: 0x6c1cae20, 0x1c497: 0x6cacce20, + 0x1c498: 0x6c08bc20, 0x1c499: 0x6ccbc420, 0x1c49a: 0x6d34ea20, 0x1c49b: 0x6cae0220, + 0x1c49c: 0x6cac9e20, 0x1c49d: 0x6d3c7620, 0x1c49e: 0x6d288420, 0x1c49f: 0x6c463820, + 0x1c4a0: 0x6c8e4220, 0x1c4a1: 0x6c99d420, 0x1c4a2: 0x6d2aa620, 0x1c4a3: 0x6c3c1c20, + 0x1c4a4: 0x6cab2e20, 0x1c4a5: 0x6c858020, 0x1c4a6: 0x6c94da20, 0x1c4a7: 0x6c122220, + 0x1c4a8: 0x6c3c1e20, 0x1c4a9: 0x6ceee020, 0x1c4aa: 0x6c565a20, 0x1c4ab: 0x6ca0d220, + 0x1c4ac: 0x6c9a7820, 0x1c4ad: 0x6cd59e20, 0x1c4ae: 0x6c71a620, 0x1c4af: 0x6d296220, + 0x1c4b0: 0x6ceab020, 0x1c4b1: 0x6ceaee20, 0x1c4b2: 0x6ceaf020, 0x1c4b3: 0x6c50c820, + 0x1c4b4: 0x6c859020, 0x1c4b5: 0x6c9cdc20, 0x1c4b6: 0x6d147220, 0x1c4b7: 0x6c37e420, + 0x1c4b8: 0x6c3a8820, 0x1c4b9: 0x6d1efe20, 0x1c4ba: 0x6ce48420, 0x1c4bb: 0x6d358a20, + 0x1c4bc: 0x6d2f8820, 0x1c4bd: 0x6c46f220, 0x1c4be: 0x6d2d6020, 0x1c4bf: 0x6d0c6820, + // Block 0x713, offset 0x1c4c0 + 0x1c4c0: 0x6cd7ce20, 0x1c4c1: 0x6c7be420, 0x1c4c2: 0x6c6ef820, 0x1c4c3: 0x6c705c20, + 0x1c4c4: 0x6d016020, 0x1c4c5: 0x6cc00620, 0x1c4c6: 0x6d16c220, 0x1c4c7: 0x6c632c20, + 0x1c4c8: 0x6d379a20, 0x1c4c9: 0x6cc2c220, 0x1c4ca: 0x6cb2fc20, 0x1c4cb: 0x6c5b9020, + 0x1c4cc: 0x6c9d2620, 0x1c4cd: 0x6c077e20, 0x1c4ce: 0x6d2aaa20, 0x1c4cf: 0x6d39f420, + 0x1c4d0: 0x6c821820, 0x1c4d1: 0x6d1e9820, 0x1c4d2: 0x6c46f420, 0x1c4d3: 0x6c530420, + 0x1c4d4: 0x6c417620, 0x1c4d5: 0x6c382e20, 0x1c4d6: 0x6c992e20, 0x1c4d7: 0x6cd89020, + 0x1c4d8: 0x6c54a620, 0x1c4d9: 0x6cb27a20, 0x1c4da: 0x6c229220, 0x1c4db: 0x6c392220, + 0x1c4dc: 0x6d339a20, 0x1c4dd: 0x6cda8020, 0x1c4de: 0x6ca95420, 0x1c4df: 0x6c195420, + 0x1c4e0: 0x6c8cac20, 0x1c4e1: 0x6cad8220, 0x1c4e2: 0x6c0e5220, 0x1c4e3: 0x6cb74620, + 0x1c4e4: 0x6cd88220, 0x1c4e5: 0x6ca5c020, 0x1c4e6: 0x6c70f620, 0x1c4e7: 0x6cc96a20, + 0x1c4e8: 0x6d3ab020, 0x1c4e9: 0x6cd0e220, 0x1c4ea: 0x6c832020, 0x1c4eb: 0x6d087020, + 0x1c4ec: 0x6c73f020, 0x1c4ed: 0x6c3df620, 0x1c4ee: 0x6caca220, 0x1c4ef: 0x6c9f9620, + 0x1c4f0: 0x6cdf6820, 0x1c4f1: 0x6d0f4a20, 0x1c4f2: 0x6c612020, 0x1c4f3: 0x6d1e1420, + 0x1c4f4: 0x6c497c20, 0x1c4f5: 0x6c083a20, 0x1c4f6: 0x6d090020, 0x1c4f7: 0x6c8f6c20, + 0x1c4f8: 0x6c913a20, 0x1c4f9: 0x6c28f420, 0x1c4fa: 0x6c95e020, 0x1c4fb: 0x6d016220, + 0x1c4fc: 0x6cb3c020, 0x1c4fd: 0x6d2aac20, 0x1c4fe: 0x6c6d9020, 0x1c4ff: 0x6d1a3c20, + // Block 0x714, offset 0x1c500 + 0x1c500: 0x6cac5420, 0x1c501: 0x6c6a9020, 0x1c502: 0x6d16f620, 0x1c503: 0x6c5a9820, + 0x1c504: 0x6c5b2620, 0x1c505: 0x6d293020, 0x1c506: 0x6c19ce20, 0x1c507: 0x6d19b420, + 0x1c508: 0x6ceeec20, 0x1c509: 0x6c546620, 0x1c50a: 0x6c665a20, 0x1c50b: 0x6d0f9820, + 0x1c50c: 0x6c8ad420, 0x1c50d: 0x6cd8a820, 0x1c50e: 0x6c61aa20, 0x1c50f: 0x6c374020, + 0x1c510: 0x6d03d020, 0x1c511: 0x6c3e1220, 0x1c512: 0x6cc94c20, 0x1c513: 0x6ccb1820, + 0x1c514: 0x6d350420, 0x1c515: 0x6d1b3e20, 0x1c516: 0x6cf3b620, 0x1c517: 0x6cf7d620, + 0x1c518: 0x6c77a420, 0x1c519: 0x6d398a20, 0x1c51a: 0x6c67da20, 0x1c51b: 0x6c95e820, + 0x1c51c: 0x6c95f420, 0x1c51d: 0x6c01a620, 0x1c51e: 0x6c306420, 0x1c51f: 0x6ce3dc20, + 0x1c520: 0x6ca1c820, 0x1c521: 0x6c832220, 0x1c522: 0x6d13da20, 0x1c523: 0x6c9ce420, + 0x1c524: 0x6cc2c420, 0x1c525: 0x6c6c3020, 0x1c526: 0x6cb37020, 0x1c527: 0x6cef9820, + 0x1c528: 0x6cff7020, 0x1c529: 0x6d017220, 0x1c52a: 0x6c531420, 0x1c52b: 0x6d069420, + 0x1c52c: 0x6cda8620, 0x1c52d: 0x6c7b9220, 0x1c52e: 0x6ce20a20, 0x1c52f: 0x6cbcac20, + 0x1c530: 0x6c71fe20, 0x1c531: 0x6c378a20, 0x1c532: 0x6d386020, 0x1c533: 0x6cc81220, + 0x1c534: 0x6cb28620, 0x1c535: 0x6d09ec20, 0x1c536: 0x6d046020, 0x1c537: 0x6d35a220, + 0x1c538: 0x6c49e020, 0x1c539: 0x6c586420, 0x1c53a: 0x6c9fec20, 0x1c53b: 0x6c5d7020, + 0x1c53c: 0x6cebcc20, 0x1c53d: 0x6cb84c20, 0x1c53e: 0x6cac1e20, 0x1c53f: 0x6cf35820, + // Block 0x715, offset 0x1c540 + 0x1c540: 0x6cc0e820, 0x1c541: 0x6c8e4a20, 0x1c542: 0x6d16f820, 0x1c543: 0x6c633a20, + 0x1c544: 0x6c6e5a20, 0x1c545: 0x6cb9f420, 0x1c546: 0x6c675420, 0x1c547: 0x6c683220, + 0x1c548: 0x6d312a20, 0x1c549: 0x6cd1ac20, 0x1c54a: 0x6d3d3420, 0x1c54b: 0x6c12d420, + 0x1c54c: 0x6c380020, 0x1c54d: 0x6c5b9c20, 0x1c54e: 0x6c61ac20, 0x1c54f: 0x6c8e4620, + 0x1c550: 0x6c159c20, 0x1c551: 0x6c5ce020, 0x1c552: 0x6c561420, 0x1c553: 0x6ca9b420, + 0x1c554: 0x6d09ee20, 0x1c555: 0x6c6ce220, 0x1c556: 0x6c8aee20, 0x1c557: 0x6cc03220, + 0x1c558: 0x6cefa220, 0x1c559: 0x6d30ea20, 0x1c55a: 0x6c75a620, 0x1c55b: 0x6c4df620, + 0x1c55c: 0x6c052620, 0x1c55d: 0x6c985220, 0x1c55e: 0x6d3d3a20, 0x1c55f: 0x6d1f1820, + 0x1c560: 0x6cf5c220, 0x1c561: 0x6c0ed620, 0x1c562: 0x6c310420, 0x1c563: 0x6c590420, + 0x1c564: 0x6c532a20, 0x1c565: 0x6d173220, 0x1c566: 0x6cb48820, 0x1c567: 0x6d1ce420, + 0x1c568: 0x6c802420, 0x1c569: 0x6c502e20, 0x1c56a: 0x6c811820, 0x1c56b: 0x6c4e5620, + 0x1c56c: 0x6c850c20, 0x1c56d: 0x6c44be20, 0x1c56e: 0x6c3e3620, 0x1c56f: 0x6cf3b820, + 0x1c570: 0x6c88ea20, 0x1c571: 0x6c213a20, 0x1c572: 0x6c3ca220, 0x1c573: 0x6d173420, + 0x1c574: 0x6d22f220, 0x1c575: 0x6ce73420, 0x1c576: 0x6c815420, 0x1c577: 0x6c4d3a20, + 0x1c578: 0x6c6cee20, 0x1c579: 0x6c634220, 0x1c57a: 0x6c1cb820, 0x1c57b: 0x6c6f0820, + 0x1c57c: 0x6c9a5220, 0x1c57d: 0x6cdbb820, 0x1c57e: 0x6c195e20, 0x1c57f: 0x6cae1420, + // Block 0x716, offset 0x1c580 + 0x1c580: 0x6cfcaa20, 0x1c581: 0x6cd09820, 0x1c582: 0x6ce92e20, 0x1c583: 0x6c7dd020, + 0x1c584: 0x6cb25020, 0x1c585: 0x6ca80820, 0x1c586: 0x6c4e9c20, 0x1c587: 0x6c6da020, + 0x1c588: 0x6cfea220, 0x1c589: 0x6ccf3c20, 0x1c58a: 0x6ca71e20, 0x1c58b: 0x6ce84e20, + 0x1c58c: 0x6d1e2620, 0x1c58d: 0x6cffe020, 0x1c58e: 0x6cfb3620, 0x1c58f: 0x6ce6bc20, + 0x1c590: 0x6c355820, 0x1c591: 0x6cda8e20, 0x1c592: 0x6cea1c20, 0x1c593: 0x6c72e620, + 0x1c594: 0x6c132c20, 0x1c595: 0x6ce3e220, 0x1c596: 0x6c85d020, 0x1c597: 0x6cd71620, + 0x1c598: 0x6cd8aa20, 0x1c599: 0x6c832820, 0x1c59a: 0x6cd71820, 0x1c59b: 0x6ce1be20, + 0x1c59c: 0x6c318e20, 0x1c59d: 0x6c81ce20, 0x1c59e: 0x6c7eec20, 0x1c59f: 0x6c87f620, + 0x1c5a0: 0x6ceef620, 0x1c5a1: 0x6cf28020, 0x1c5a2: 0x6d279a20, 0x1c5a3: 0x6c590620, + 0x1c5a4: 0x6c2b6420, 0x1c5a5: 0x6c528a20, 0x1c5a6: 0x6cc8fa20, 0x1c5a7: 0x6c666e20, + 0x1c5a8: 0x6d2f0220, 0x1c5a9: 0x6ccb1c20, 0x1c5aa: 0x6c3e5220, 0x1c5ab: 0x6c498420, + 0x1c5ac: 0x6d042a20, 0x1c5ad: 0x6cd46420, 0x1c5ae: 0x6cd69020, 0x1c5af: 0x6d0b2a20, + 0x1c5b0: 0x6c21b620, 0x1c5b1: 0x6d2f2e20, 0x1c5b2: 0x6d12e820, 0x1c5b3: 0x6c797620, + 0x1c5b4: 0x6cf2e420, 0x1c5b5: 0x6c4e0220, 0x1c5b6: 0x6ceac020, 0x1c5b7: 0x6c2ffa20, + 0x1c5b8: 0x6c510820, 0x1c5b9: 0x6cf28620, 0x1c5ba: 0x6c708e20, 0x1c5bb: 0x6ccf4020, + 0x1c5bc: 0x6c894e20, 0x1c5bd: 0x6c5cc220, 0x1c5be: 0x6cde4e20, 0x1c5bf: 0x6d3cfe20, + // Block 0x717, offset 0x1c5c0 + 0x1c5c0: 0x6c2d5220, 0x1c5c1: 0x6cbcb620, 0x1c5c2: 0x6c2a6a20, 0x1c5c3: 0x6c735620, + 0x1c5c4: 0x6d3e2420, 0x1c5c5: 0x6cf5f020, 0x1c5c6: 0x6cff8220, 0x1c5c7: 0x6cb5ca20, + 0x1c5c8: 0x6c477e20, 0x1c5c9: 0x6c4cb820, 0x1c5ca: 0x6d0bf620, 0x1c5cb: 0x6c8bb020, + 0x1c5cc: 0x6ce17420, 0x1c5cd: 0x6d387620, 0x1c5ce: 0x6caf0420, 0x1c5cf: 0x6c503820, + 0x1c5d0: 0x6c166620, 0x1c5d1: 0x6cd4cc20, 0x1c5d2: 0x6cb4ea20, 0x1c5d3: 0x6c399020, + 0x1c5d4: 0x6d345820, 0x1c5d5: 0x6c923c20, 0x1c5d6: 0x6ca53020, 0x1c5d7: 0x6c711420, + 0x1c5d8: 0x6ce21e20, 0x1c5d9: 0x6c239c20, 0x1c5da: 0x6c833020, 0x1c5db: 0x6d30f020, + 0x1c5dc: 0x6cb29c20, 0x1c5dd: 0x6c3a3420, 0x1c5de: 0x6cd91c20, 0x1c5df: 0x6ce4ee20, + 0x1c5e0: 0x6cb09020, 0x1c5e1: 0x6c288020, 0x1c5e2: 0x6d231620, 0x1c5e3: 0x6ca5d820, + 0x1c5e4: 0x6d208620, 0x1c5e5: 0x6c923e20, 0x1c5e6: 0x6c421a20, 0x1c5e7: 0x6c9d3a20, + 0x1c5e8: 0x6c6e7420, 0x1c5e9: 0x6c8ce820, 0x1c5ea: 0x6c94f420, 0x1c5eb: 0x6d1a5c20, + 0x1c5ec: 0x6c253620, 0x1c5ed: 0x6cc18820, 0x1c5ee: 0x6c57ea20, 0x1c5ef: 0x6d231820, + 0x1c5f0: 0x6ca72220, 0x1c5f1: 0x6ccfde20, 0x1c5f2: 0x6c0bf620, 0x1c5f3: 0x6c214220, + 0x1c5f4: 0x6c54c220, 0x1c5f5: 0x6d24ec20, 0x1c5f6: 0x6c7efc20, 0x1c5f7: 0x6c5d2620, + 0x1c5f8: 0x6cbe4620, 0x1c5f9: 0x6d0bf820, 0x1c5fa: 0x6cba0220, 0x1c5fb: 0x6ce46220, + 0x1c5fc: 0x6c9e9020, 0x1c5fd: 0x6d350c20, 0x1c5fe: 0x6d1ae420, 0x1c5ff: 0x6c9d3c20, + // Block 0x718, offset 0x1c600 + 0x1c600: 0x6c07b220, 0x1c601: 0x6d24de20, 0x1c602: 0x6cf20820, 0x1c603: 0x6cc91c20, + 0x1c604: 0x6c39fa20, 0x1c605: 0x6cbe4820, 0x1c606: 0x6d24e020, 0x1c607: 0x6c786220, + 0x1c608: 0x6c61f220, 0x1c609: 0x6ccf4220, 0x1c60a: 0x6d24e220, 0x1c60b: 0x6ccba420, + 0x1c60c: 0x6c924020, 0x1c60d: 0x6d3f4420, 0x1c60e: 0x6c319620, 0x1c60f: 0x6cb81420, + 0x1c610: 0x6c667a20, 0x1c611: 0x6c9e1c20, 0x1c612: 0x6cb09220, 0x1c613: 0x6cf94420, + 0x1c614: 0x6d210220, 0x1c615: 0x6d24e420, 0x1c616: 0x6cd05c20, 0x1c617: 0x6cd09e20, + 0x1c618: 0x6cc74c20, 0x1c619: 0x6c592420, 0x1c61a: 0x6d3a6420, 0x1c61b: 0x6c659620, + 0x1c61c: 0x6caa9020, 0x1c61d: 0x6d212a20, 0x1c61e: 0x6cc06220, 0x1c61f: 0x6ce67220, + 0x1c620: 0x6cc18a20, 0x1c621: 0x6c325c20, 0x1c622: 0x6c389e20, 0x1c623: 0x6d2bdc20, + 0x1c624: 0x6c0f0420, 0x1c625: 0x6cf2f220, 0x1c626: 0x6cf28820, 0x1c627: 0x6c2c5820, + 0x1c628: 0x6cee8e20, 0x1c629: 0x6cf15020, 0x1c62a: 0x6cc7ac20, 0x1c62b: 0x6d01ae20, + 0x1c62c: 0x6c12ea20, 0x1c62d: 0x6cf09820, 0x1c62e: 0x6c510a20, 0x1c62f: 0x6c42a220, + 0x1c630: 0x6d0d8a20, 0x1c631: 0x6c534a20, 0x1c632: 0x6d089420, 0x1c633: 0x6c9cf220, + 0x1c634: 0x6c786a20, 0x1c635: 0x6c98da20, 0x1c636: 0x6d1bb020, 0x1c637: 0x6d0d8c20, + 0x1c638: 0x6d1f3820, 0x1c639: 0x6c52a620, 0x1c63a: 0x6c9e9220, 0x1c63b: 0x6cd13a20, + 0x1c63c: 0x6c9a5a20, 0x1c63d: 0x6d290420, 0x1c63e: 0x6c5cec20, 0x1c63f: 0x6ca3c420, + // Block 0x719, offset 0x1c640 + 0x1c640: 0x6c4afe20, 0x1c641: 0x6c1c2020, 0x1c642: 0x6c363820, 0x1c643: 0x6cac2620, + 0x1c644: 0x6c99fc20, 0x1c645: 0x6c88fc20, 0x1c646: 0x6cb79620, 0x1c647: 0x6cb79820, + 0x1c648: 0x6c99fe20, 0x1c649: 0x6ce4a020, 0x1c64a: 0x6c23ec20, 0x1c64b: 0x6cef1020, + 0x1c64c: 0x6c116a20, 0x1c64d: 0x6ce93220, 0x1c64e: 0x6c9e2620, 0x1c64f: 0x6c5bc420, + 0x1c650: 0x6ca11a20, 0x1c651: 0x6d059c20, 0x1c652: 0x6c604020, 0x1c653: 0x6cae4020, + 0x1c654: 0x6c649e20, 0x1c655: 0x6c658a20, 0x1c656: 0x6c555e20, 0x1c657: 0x6c3ce020, + 0x1c658: 0x6cfd7420, 0x1c659: 0x6d17a820, 0x1c65a: 0x6d1b5420, 0x1c65b: 0x6d2e6420, + 0x1c65c: 0x6cd26a20, 0x1c65d: 0x6c6a1820, 0x1c65e: 0x6c197020, 0x1c65f: 0x6c59c620, + 0x1c660: 0x6ce09a20, 0x1c661: 0x6d212c20, 0x1c662: 0x6c09a220, 0x1c663: 0x6c9fb020, + 0x1c664: 0x6cd1be20, 0x1c665: 0x6ce86020, 0x1c666: 0x6cd10220, 0x1c667: 0x6d1e3a20, + 0x1c668: 0x6c712620, 0x1c669: 0x6c307820, 0x1c66a: 0x6ce98a20, 0x1c66b: 0x6c68f620, + 0x1c66c: 0x6c690820, 0x1c66d: 0x6cc06420, 0x1c66e: 0x6d0c0820, 0x1c66f: 0x6ce0c020, + 0x1c670: 0x6c8f9420, 0x1c671: 0x6c5dd220, 0x1c672: 0x6d256420, 0x1c673: 0x6ca42820, + 0x1c674: 0x6c04f620, 0x1c675: 0x6d1fcc20, 0x1c676: 0x6cc2f020, 0x1c677: 0x6d3c1820, + 0x1c678: 0x6c89ba20, 0x1c679: 0x6c14f620, 0x1c67a: 0x6d0c9620, 0x1c67b: 0x6c214c20, + 0x1c67c: 0x6ca83020, 0x1c67d: 0x6d3e3e20, 0x1c67e: 0x6cec9020, 0x1c67f: 0x6cd1c020, + // Block 0x71a, offset 0x1c680 + 0x1c680: 0x6c97ba20, 0x1c681: 0x6d1c7220, 0x1c682: 0x6c7ed620, 0x1c683: 0x6c7cfc20, + 0x1c684: 0x6c3d0020, 0x1c685: 0x6c669020, 0x1c686: 0x6d06da20, 0x1c687: 0x6c908a20, + 0x1c688: 0x6cef1220, 0x1c689: 0x6c413620, 0x1c68a: 0x6cfa6620, 0x1c68b: 0x6d1c7420, + 0x1c68c: 0x6cb31020, 0x1c68d: 0x6c6d1820, 0x1c68e: 0x6d0e8620, 0x1c68f: 0x6ce10420, + 0x1c690: 0x6d258220, 0x1c691: 0x6cdd7a20, 0x1c692: 0x6d258420, 0x1c693: 0x6c881420, + 0x1c694: 0x6d11b820, 0x1c695: 0x6c9c0620, 0x1c696: 0x6d3cde20, 0x1c697: 0x6c1a1c20, + 0x1c698: 0x6c78ba20, 0x1c699: 0x6cdf7a20, 0x1c69a: 0x6cde0a20, 0x1c69b: 0x6cebe420, + 0x1c69c: 0x6c8e3620, 0x1c69d: 0x6c465220, 0x1c69e: 0x6ccaae20, 0x1c69f: 0x6ca00620, + 0x1c6a0: 0x6d2cc420, 0x1c6a1: 0x6cd27220, 0x1c6a2: 0x6d17e820, 0x1c6a3: 0x6c952220, + 0x1c6a4: 0x6c969a20, 0x1c6a5: 0x6cb48e20, 0x1c6a6: 0x6cee9e20, 0x1c6a7: 0x6c863420, + 0x1c6a8: 0x6c111220, 0x1c6a9: 0x6cf50020, 0x1c6aa: 0x6cf64c20, 0x1c6ab: 0x6cf15a20, + 0x1c6ac: 0x6cbaba20, 0x1c6ad: 0x6d2ace20, 0x1c6ae: 0x6cd1ce20, 0x1c6af: 0x6cdace20, + 0x1c6b0: 0x6c004220, 0x1c6b1: 0x6cbd8420, 0x1c6b2: 0x6cd9b220, 0x1c6b3: 0x6d27b220, + 0x1c6b4: 0x6d054420, 0x1c6b5: 0x6d19ec20, 0x1c6b6: 0x6cc68a20, 0x1c6b7: 0x6c5d2e20, + 0x1c6b8: 0x6cdad020, 0x1c6b9: 0x6cddcc20, 0x1c6ba: 0x6ca6ac20, 0x1c6bb: 0x6cddf420, + 0x1c6bc: 0x6cd1d020, 0x1c6bd: 0x6cc81c20, 0x1c6be: 0x6c002a20, 0x1c6bf: 0x6cacba20, + // Block 0x71b, offset 0x1c6c0 + 0x1c6c0: 0x6c1f5020, 0x1c6c1: 0x6c1e7e20, 0x1c6c2: 0x6cacdc20, 0x1c6c3: 0x6cf22c20, + 0x1c6c4: 0x6c123220, 0x1c6c5: 0x6c9ede20, 0x1c6c6: 0x6c440620, 0x1c6c7: 0x6c2cce20, + 0x1c6c8: 0x6c504420, 0x1c6c9: 0x6c5a7020, 0x1c6ca: 0x6cf8a020, 0x1c6cb: 0x6d3e4020, + 0x1c6cc: 0x6c2b7220, 0x1c6cd: 0x6d365a20, 0x1c6ce: 0x6d03f220, 0x1c6cf: 0x6c3f6c20, + 0x1c6d0: 0x6c6aea20, 0x1c6d1: 0x6c573e20, 0x1c6d2: 0x6c439a20, 0x1c6d3: 0x6d3f1a20, + 0x1c6d4: 0x6ce1d820, 0x1c6d5: 0x6ce2aa20, 0x1c6d6: 0x6cdbc820, 0x1c6d7: 0x6c09c820, + 0x1c6d8: 0x6c69a420, 0x1c6d9: 0x6c5be620, 0x1c6da: 0x6c4bce20, 0x1c6db: 0x6d1a7020, + 0x1c6dc: 0x6c42ca20, 0x1c6dd: 0x6c8f9620, 0x1c6de: 0x6d362c20, 0x1c6df: 0x6d0e8820, + 0x1c6e0: 0x6ccf5820, 0x1c6e1: 0x6c97be20, 0x1c6e2: 0x6d1c8020, 0x1c6e3: 0x6c215020, + 0x1c6e4: 0x6c93e620, 0x1c6e5: 0x6c807420, 0x1c6e6: 0x6c943e20, 0x1c6e7: 0x6d003420, + 0x1c6e8: 0x6c0d3c20, 0x1c6e9: 0x6cdfb020, 0x1c6ea: 0x6d236e20, 0x1c6eb: 0x6d052420, + 0x1c6ec: 0x6c56b820, 0x1c6ed: 0x6c09ca20, 0x1c6ee: 0x6c0c0c20, 0x1c6ef: 0x6d368e20, + 0x1c6f0: 0x6c67f220, 0x1c6f1: 0x6c79f620, 0x1c6f2: 0x6cd0be20, 0x1c6f3: 0x6cce0e20, + 0x1c6f4: 0x6c2b3a20, 0x1c6f5: 0x6c9d6820, 0x1c6f6: 0x6c025220, 0x1c6f7: 0x6c91cc20, + 0x1c6f8: 0x6c562820, 0x1c6f9: 0x6c54e820, 0x1c6fa: 0x6d1eac20, 0x1c6fb: 0x6c15cc20, + 0x1c6fc: 0x6c396420, 0x1c6fd: 0x6d1d9e20, 0x1c6fe: 0x6c4bd620, 0x1c6ff: 0x6c97c420, + // Block 0x71c, offset 0x1c700 + 0x1c700: 0x6cbeae20, 0x1c701: 0x6d216e20, 0x1c702: 0x6cb1b820, 0x1c703: 0x6c623e20, + 0x1c704: 0x6d0b3420, 0x1c705: 0x6c176e20, 0x1c706: 0x6cb51220, 0x1c707: 0x6cf7fe20, + 0x1c708: 0x6c624020, 0x1c709: 0x6c928620, 0x1c70a: 0x6c90a620, 0x1c70b: 0x6c8f9c20, + 0x1c70c: 0x6c6ca020, 0x1c70d: 0x6c4c7a20, 0x1c70e: 0x6c23a620, 0x1c70f: 0x6c910e20, + 0x1c710: 0x6d349020, 0x1c711: 0x6c414c20, 0x1c712: 0x6cbb1a20, 0x1c713: 0x6c83e220, + 0x1c714: 0x6d0db420, 0x1c715: 0x6c127e20, 0x1c716: 0x6c69b020, 0x1c717: 0x6c232a20, + 0x1c718: 0x6c215620, 0x1c719: 0x6ce95620, 0x1c71a: 0x6cab4020, 0x1c71b: 0x6ce2a820, + 0x1c71c: 0x6d12b020, 0x1c71d: 0x6cf79220, 0x1c71e: 0x6c9d6a20, 0x1c71f: 0x6ce11220, + 0x1c720: 0x6ca12c20, 0x1c721: 0x6cce1020, 0x1c722: 0x6c4ee620, 0x1c723: 0x6c881620, + 0x1c724: 0x6c803220, 0x1c725: 0x6cebe820, 0x1c726: 0x6c1b4820, 0x1c727: 0x6c41aa20, + 0x1c728: 0x6c3cae20, 0x1c729: 0x6d081a20, 0x1c72a: 0x6d140420, 0x1c72b: 0x6c97ec20, + 0x1c72c: 0x6d3f5c20, 0x1c72d: 0x6c989620, 0x1c72e: 0x6c774020, 0x1c72f: 0x6c961620, + 0x1c730: 0x6cae7a20, 0x1c731: 0x6cd5f420, 0x1c732: 0x6d2f0620, 0x1c733: 0x6d2eca20, + 0x1c734: 0x6d3c4620, 0x1c735: 0x6d070c20, 0x1c736: 0x6c594020, 0x1c737: 0x6c5d9020, + 0x1c738: 0x6c66aa20, 0x1c739: 0x6d0c1c20, 0x1c73a: 0x6cd6d820, 0x1c73b: 0x6c89f820, + 0x1c73c: 0x6c24fa20, 0x1c73d: 0x6ce36420, 0x1c73e: 0x6d106020, 0x1c73f: 0x6c677220, + // Block 0x71d, offset 0x1c740 + 0x1c740: 0x6c23a820, 0x1c741: 0x6d1d0620, 0x1c742: 0x6c537220, 0x1c743: 0x6d0a1c20, + 0x1c744: 0x6cd5f620, 0x1c745: 0x6c499a20, 0x1c746: 0x6d1c8620, 0x1c747: 0x6cfeee20, + 0x1c748: 0x6d404220, 0x1c749: 0x6c7de020, 0x1c74a: 0x6d070e20, 0x1c74b: 0x6c890c20, + 0x1c74c: 0x6d369020, 0x1c74d: 0x6cef2020, 0x1c74e: 0x6cb0ac20, 0x1c74f: 0x6d23c420, + 0x1c750: 0x6c69be20, 0x1c751: 0x6cb3c420, 0x1c752: 0x6c297820, 0x1c753: 0x6c5c1820, + 0x1c754: 0x6c6b1c20, 0x1c755: 0x6cf46820, 0x1c756: 0x6cabdc20, 0x1c757: 0x6c608620, + 0x1c758: 0x6cac4220, 0x1c759: 0x6cef2c20, 0x1c75a: 0x6cdb1820, 0x1c75b: 0x6cb9b820, + 0x1c75c: 0x6cb9ba20, 0x1c75d: 0x6cf69c20, 0x1c75e: 0x6c92cc20, 0x1c75f: 0x6cf8c620, + 0x1c760: 0x6d0aa220, 0x1c761: 0x6c340620, 0x1c762: 0x6c59da20, 0x1c763: 0x6c9fc620, + 0x1c764: 0x6cc90420, 0x1c765: 0x6cdb0020, 0x1c766: 0x6c81b820, 0x1c767: 0x6d318a20, + 0x1c768: 0x6c23aa20, 0x1c769: 0x6d182820, 0x1c76a: 0x6d30fe20, 0x1c76b: 0x6cec9820, + 0x1c76c: 0x6ccd9e20, 0x1c76d: 0x6ce00420, 0x1c76e: 0x6c177620, 0x1c76f: 0x6d0a3220, + 0x1c770: 0x6c7d0e20, 0x1c771: 0x6d126420, 0x1c772: 0x6ccee420, 0x1c773: 0x6ce8da20, + 0x1c774: 0x6d39bc20, 0x1c775: 0x6cc95820, 0x1c776: 0x6c522220, 0x1c777: 0x6c0a2a20, + 0x1c778: 0x6ccd0820, 0x1c779: 0x6c151c20, 0x1c77a: 0x6c151e20, 0x1c77b: 0x6cd56820, + 0x1c77c: 0x6ce77c20, 0x1c77d: 0x6cb41020, 0x1c77e: 0x6c8bce20, 0x1c77f: 0x6cef2e20, + // Block 0x71e, offset 0x1c780 + 0x1c780: 0x6ccb6c20, 0x1c781: 0x6ccb4620, 0x1c782: 0x6c1a3820, 0x1c783: 0x6c6f3020, + 0x1c784: 0x6c1a3a20, 0x1c785: 0x6c57be20, 0x1c786: 0x6c686c20, 0x1c787: 0x6c81dc20, + 0x1c788: 0x6c183420, 0x1c789: 0x6c41e020, 0x1c78a: 0x6c259c20, 0x1c78b: 0x6c53cc20, + 0x1c78c: 0x6cd81820, 0x1c78d: 0x6cd60220, 0x1c78e: 0x6cae8420, 0x1c78f: 0x6c4e2a20, + 0x1c790: 0x6d27c020, 0x1c791: 0x6c8f3c20, 0x1c792: 0x6c53ce20, 0x1c793: 0x6c3ed820, + 0x1c794: 0x6c505a20, 0x1c795: 0x6c513e20, 0x1c796: 0x6cfb8020, 0x1c797: 0x6c66b620, + 0x1c798: 0x6ccd0a20, 0x1c799: 0x6cf8c820, 0x1c79a: 0x6d24c220, 0x1c79b: 0x6c934c20, + 0x1c79c: 0x6c7fac20, 0x1c79d: 0x6ca96020, 0x1c79e: 0x6d21a220, 0x1c79f: 0x6c8c3420, + 0x1c7a0: 0x6c9e4020, 0x1c7a1: 0x6d2a5020, 0x1c7a2: 0x6c290420, 0x1c7a3: 0x6c595420, + 0x1c7a4: 0x6d2afc20, 0x1c7a5: 0x6d021620, 0x1c7a6: 0x6d23ea20, 0x1c7a7: 0x6c853020, + 0x1c7a8: 0x6cd3da20, 0x1c7a9: 0x6d091c20, 0x1c7aa: 0x6c8d5820, 0x1c7ab: 0x6ced9420, + 0x1c7ac: 0x6d3e8a20, 0x1c7ad: 0x6d1db420, 0x1c7ae: 0x6c5c3420, 0x1c7af: 0x6c120420, + 0x1c7b0: 0x6c891620, 0x1c7b1: 0x6c2d8420, 0x1c7b2: 0x6d134020, 0x1c7b3: 0x6c02ec20, + 0x1c7b4: 0x6c589820, 0x1c7b5: 0x6d319220, 0x1c7b6: 0x6c152420, 0x1c7b7: 0x6c980420, + 0x1c7b8: 0x6c284420, 0x1c7b9: 0x6c28b220, 0x1c7ba: 0x6d189e20, 0x1c7bb: 0x6cdc5c20, + 0x1c7bc: 0x6cb0ba20, 0x1c7bd: 0x6c728e20, 0x1c7be: 0x6cde8e20, 0x1c7bf: 0x6cbda420, + // Block 0x71f, offset 0x1c7c0 + 0x1c7c0: 0x6c5f3420, 0x1c7c1: 0x6d3d9a20, 0x1c7c2: 0x6c884c20, 0x1c7c3: 0x6ca9c620, + 0x1c7c4: 0x6c4c3020, 0x1c7c5: 0x6c6d4e20, 0x1c7c6: 0x6c3b8c20, 0x1c7c7: 0x6ccb5a20, + 0x1c7c8: 0x6c608820, 0x1c7c9: 0x6cdbda20, 0x1c7ca: 0x6c5c3620, 0x1c7cb: 0x6c1eea20, + 0x1c7cc: 0x6cdeac20, 0x1c7cd: 0x6cd93620, 0x1c7ce: 0x6c2f7e20, 0x1c7cf: 0x6ccba620, + 0x1c7d0: 0x6d3a7e20, 0x1c7d1: 0x6c7f5620, 0x1c7d2: 0x6c0d5220, 0x1c7d3: 0x6c884e20, + 0x1c7d4: 0x6c9d0220, 0x1c7d5: 0x6cd20220, 0x1c7d6: 0x6cd60c20, 0x1c7d7: 0x6c9d8620, + 0x1c7d8: 0x6ca95a20, 0x1c7d9: 0x6d1ca220, 0x1c7da: 0x6d1ca420, 0x1c7db: 0x6c9b4c20, + 0x1c7dc: 0x6c6d5e20, 0x1c7dd: 0x6cb65e20, 0x1c7de: 0x6c0a7020, 0x1c7df: 0x6c629820, + 0x1c7e0: 0x6c4ff420, 0x1c7e1: 0x6cc7d220, 0x1c7e2: 0x6c256a20, 0x1c7e3: 0x6cf31c20, + 0x1c7e4: 0x6ce1f020, 0x1c7e5: 0x6d1b0e20, 0x1c7e6: 0x6d1b1020, 0x1c7e7: 0x6c336820, + 0x1c7e8: 0x6c226c20, 0x1c7e9: 0x6c5df820, 0x1c7ea: 0x6c6eb220, 0x1c7eb: 0x6c807c20, + 0x1c7ec: 0x6c75f020, 0x1c7ed: 0x6c007820, 0x1c7ee: 0x6cb45820, 0x1c7ef: 0x6d3db020, + 0x1c7f0: 0x6cef4020, 0x1c7f1: 0x6c0d5420, 0x1c7f2: 0x6c47d620, 0x1c7f3: 0x6cb9d620, + 0x1c7f4: 0x6d1ca620, 0x1c7f5: 0x6c0d9c20, 0x1c7f6: 0x6c7e1c20, 0x1c7f7: 0x6c3ade20, + 0x1c7f8: 0x6c125e20, 0x1c7f9: 0x6c99c820, 0x1c7fa: 0x6c66f020, 0x1c7fb: 0x6cf02620, + 0x1c7fc: 0x6c963420, 0x1c7fd: 0x6d29a420, 0x1c7fe: 0x6c940e20, 0x1c7ff: 0x6c869e20, + // Block 0x720, offset 0x1c800 + 0x1c800: 0x6d1ebe20, 0x1c801: 0x6d106e20, 0x1c802: 0x6c91ea20, 0x1c803: 0x6cd8f420, + 0x1c804: 0x6d36e220, 0x1c805: 0x6d1cb220, 0x1c806: 0x6c31cc20, 0x1c807: 0x6cee3c20, + 0x1c808: 0x6c5afc20, 0x1c809: 0x6d024020, 0x1c80a: 0x6cac8020, 0x1c80b: 0x6cd08420, + 0x1c80c: 0x6c0c3820, 0x1c80d: 0x6c153820, 0x1c80e: 0x6ca17220, 0x1c80f: 0x6c8eba20, + 0x1c810: 0x6c651620, 0x1c811: 0x6cb4ba20, 0x1c812: 0x6ccb7420, 0x1c813: 0x6c1a4e20, + 0x1c814: 0x6c47e220, 0x1c815: 0x6c0d6820, 0x1c816: 0x6c5e2820, 0x1c817: 0x6cfd3020, + 0x1c818: 0x6c917220, 0x1c819: 0x6cbe2620, 0x1c81a: 0x6c4f2c20, 0x1c81b: 0x6d1cba20, + 0x1c81c: 0x6cc6d820, 0x1c81d: 0x6c86f820, 0x1c81e: 0x6c6eb420, 0x1c81f: 0x6cff3a20, + 0x1c820: 0x6d1cbc20, 0x1c821: 0x6cdc0e20, 0x1c822: 0x6cf03c20, 0x1c823: 0x6d025620, + 0x1c824: 0x6c57fc20, 0x1c825: 0x6d097820, 0x1c826: 0x6d39d420, 0x1c827: 0x6c8fc620, + 0x1c828: 0x6c7f6a20, 0x1c829: 0x6c337820, 0x1c82a: 0x6c38de20, 0x1c82b: 0x6c55ee20, + 0x1c82c: 0x6c7f6c20, 0x1c82d: 0x6cd63420, 0x1c82e: 0x6c8e3220, 0x1c82f: 0x6d1cbe20, + 0x1c830: 0x6c9ca020, 0x1c831: 0x6c62c820, 0x1c832: 0x6c892c20, 0x1c833: 0x6c66fe20, + 0x1c834: 0x6d1cc620, 0x1c835: 0x6c3c0220, 0x1c836: 0x6c8c0020, 0x1c837: 0x6d192c20, + 0x1c838: 0x6c653220, 0x1c839: 0x6d270a20, 0x1c83a: 0x6c155620, 0x1c83b: 0x6c27a620, + 0x1c83c: 0x6cc4e620, 0x1c83d: 0x6c661820, 0x1c83e: 0x6c7fe820, 0x1c83f: 0x6c38e020, + // Block 0x721, offset 0x1c840 + 0x1c840: 0x6cd6f420, 0x1c841: 0x6d252620, 0x1c842: 0x6d3dd420, 0x1c843: 0x6c3c8020, + 0x1c844: 0x6ccf8c20, 0x1c845: 0x6c830220, 0x1c846: 0x6c7fea20, 0x1c847: 0x6c23c620, + 0x1c848: 0x6cc20020, 0x1c849: 0x6d1dda20, 0x1c84a: 0x6cb9e020, 0x1c84b: 0x6c383620, + 0x1c84c: 0x6c49b420, 0x1c84d: 0x6cc41a20, 0x1c84e: 0x6d0f2220, 0x1c84f: 0x6c507c20, + 0x1c850: 0x6d1d7020, 0x1c851: 0x6cc95c20, 0x1c852: 0x6d29ba20, 0x1c853: 0x6c946020, + 0x1c854: 0x6d0f0420, 0x1c855: 0x6c84a820, 0x1c856: 0x6c9d0e20, 0x1c857: 0x6ccde820, + 0x1c858: 0x6cdfc620, 0x1c859: 0x6c293e20, 0x1c85a: 0x6c697620, 0x1c85b: 0x6c161820, + 0x1c85c: 0x6d1d7220, 0x1c85d: 0x6c508420, 0x1c85e: 0x6c03dc20, 0x1c85f: 0x6d3a4220, + 0x1c860: 0x6c805e20, 0x1c861: 0x6c800820, 0x1c862: 0x6ca47820, 0x1c863: 0x6cecac20, + 0x1c864: 0x6c947020, 0x1c865: 0x6d0a5e20, 0x1c866: 0x6cfc6a20, 0x1c867: 0x6d0f2820, + 0x1c868: 0x6c424820, 0x1c869: 0x6d0f3220, 0x1c86a: 0x6d24ac20, 0x1c86b: 0x6c5d8420, + 0x1c86c: 0x6c0be820, 0x1c86d: 0x6c9eca20, 0x1c86e: 0x6c49d220, 0x1c86f: 0x6c2a9a20, + 0x1c870: 0x6c5a8620, 0x1c871: 0x6cfe7a20, 0x1c872: 0x6cfe7c20, 0x1c873: 0x6c5caa20, + 0x1c874: 0x6c529620, 0x1c875: 0x6c8c9c20, 0x1c876: 0x6d2a6620, 0x1c877: 0x6d3bbe20, + 0x1c878: 0x6c6faa20, 0x1c879: 0x6d2ca820, 0x1c87a: 0x6d015820, 0x1c87b: 0x6c1be420, + 0x1c87c: 0x6d3d2420, 0x1c87d: 0x6d28f220, 0x1c87e: 0x6d28f420, 0x1c87f: 0x6c11ec20, + // Block 0x722, offset 0x1c880 + 0x1c880: 0x6d0f8020, 0x1c881: 0x6cb74820, 0x1c882: 0x6d379c20, 0x1c883: 0x6c3b5e20, + 0x1c884: 0x6ca98220, 0x1c885: 0x6c6efa20, 0x1c886: 0x6cf18220, 0x1c887: 0x6cb36820, + 0x1c888: 0x6d16c420, 0x1c889: 0x6c913c20, 0x1c88a: 0x6c20b620, 0x1c88b: 0x6caf4020, + 0x1c88c: 0x6c767e20, 0x1c88d: 0x6caca420, 0x1c88e: 0x6d0c6a20, 0x1c88f: 0x6c768020, + 0x1c890: 0x6cad2620, 0x1c891: 0x6ca26e20, 0x1c892: 0x6c179020, 0x1c893: 0x6c8a9220, + 0x1c894: 0x6c4b3420, 0x1c895: 0x6c778220, 0x1c896: 0x6c33dc20, 0x1c897: 0x6c49d620, + 0x1c898: 0x6d02b820, 0x1c899: 0x6d358c20, 0x1c89a: 0x6c4a2e20, 0x1c89b: 0x6c49d820, + 0x1c89c: 0x6cef9420, 0x1c89d: 0x6cbb5420, 0x1c89e: 0x6c0be420, 0x1c89f: 0x6c268420, + 0x1c8a0: 0x6cf99820, 0x1c8a1: 0x6d329a20, 0x1c8a2: 0x6d39fc20, 0x1c8a3: 0x6c785e20, + 0x1c8a4: 0x6d2fa220, 0x1c8a5: 0x6c3e1420, 0x1c8a6: 0x6c036e20, 0x1c8a7: 0x6d017420, + 0x1c8a8: 0x6c34dc20, 0x1c8a9: 0x6c8e1e20, 0x1c8aa: 0x6d3cf220, 0x1c8ab: 0x6d087a20, + 0x1c8ac: 0x6c721420, 0x1c8ad: 0x6ce08e20, 0x1c8ae: 0x6cad8420, 0x1c8af: 0x6c6f0220, + 0x1c8b0: 0x6cad5020, 0x1c8b1: 0x6cdf1e20, 0x1c8b2: 0x6cdf2020, 0x1c8b3: 0x6c0dd220, + 0x1c8b4: 0x6d100c20, 0x1c8b5: 0x6ce6f020, 0x1c8b6: 0x6c4d9420, 0x1c8b7: 0x6d3ac220, + 0x1c8b8: 0x6d2cb820, 0x1c8b9: 0x6c2d0a20, 0x1c8ba: 0x6cf07a20, 0x1c8bb: 0x6cd25220, + 0x1c8bc: 0x6c88e620, 0x1c8bd: 0x6c1bfc20, 0x1c8be: 0x6c5a4a20, 0x1c8bf: 0x6d397820, + // Block 0x723, offset 0x1c8c0 + 0x1c8c0: 0x6c54ae20, 0x1c8c1: 0x6cd77020, 0x1c8c2: 0x6c806e20, 0x1c8c3: 0x6ce63620, + 0x1c8c4: 0x6c68de20, 0x1c8c5: 0x6d06a820, 0x1c8c6: 0x6c525e20, 0x1c8c7: 0x6cc35420, + 0x1c8c8: 0x6c8af020, 0x1c8c9: 0x6c590820, 0x1c8ca: 0x6d0fa020, 0x1c8cb: 0x6d04c420, + 0x1c8cc: 0x6d04c620, 0x1c8cd: 0x6cfbfe20, 0x1c8ce: 0x6d1a3020, 0x1c8cf: 0x6cf36020, + 0x1c8d0: 0x6d386620, 0x1c8d1: 0x6d10e220, 0x1c8d2: 0x6cd35020, 0x1c8d3: 0x6cee6e20, + 0x1c8d4: 0x6ce73620, 0x1c8d5: 0x6c9ece20, 0x1c8d6: 0x6d28fe20, 0x1c8d7: 0x6c768420, + 0x1c8d8: 0x6c529e20, 0x1c8d9: 0x6c81d020, 0x1c8da: 0x6cf9a820, 0x1c8db: 0x6d3a0420, + 0x1c8dc: 0x6d084a20, 0x1c8dd: 0x6d32a020, 0x1c8de: 0x6cb37820, 0x1c8df: 0x6d0be420, + 0x1c8e0: 0x6c5b2e20, 0x1c8e1: 0x6c49e620, 0x1c8e2: 0x6c180e20, 0x1c8e3: 0x6c5aa420, + 0x1c8e4: 0x6c77a820, 0x1c8e5: 0x6c194c20, 0x1c8e6: 0x6c389020, 0x1c8e7: 0x6cce6220, + 0x1c8e8: 0x6d12e220, 0x1c8e9: 0x6c5bac20, 0x1c8eb: 0x6ce19a20, + 0x1c8ec: 0x6c6cf220, 0x1c8ed: 0x6cc55020, 0x1c8ee: 0x6c8b9620, 0x1c8ef: 0x6cf5f220, + 0x1c8f0: 0x6c3e5420, 0x1c8f1: 0x6c6f0a20, 0x1c8f2: 0x6d019420, 0x1c8f3: 0x6cb48a20, + 0x1c8f4: 0x6ce64220, 0x1c8f5: 0x6d3d3c20, 0x1c8f6: 0x6ce6c020, 0x1c8f7: 0x6cecd420, + 0x1c8f8: 0x6c4d4020, 0x1c8f9: 0x6cae6a20, 0x1c8fa: 0x6c80fc20, 0x1c8fb: 0x6d0e5220, + 0x1c8fc: 0x6d06bc20, 0x1c8fd: 0x6c3c3e20, 0x1c8fe: 0x6c1c1020, 0x1c8ff: 0x6cc66820, + // Block 0x724, offset 0x1c900 + 0x1c900: 0x6c554620, 0x1c901: 0x6cf5f420, 0x1c902: 0x6cd4ce20, 0x1c903: 0x6c51c420, + 0x1c904: 0x6d099620, 0x1c905: 0x6c7a9220, 0x1c906: 0x6c72e820, 0x1c907: 0x6cfeb620, + 0x1c908: 0x6cf5f620, 0x1c909: 0x6d0bfa20, 0x1c90a: 0x6c4eb220, 0x1c90b: 0x6d3c3c20, + 0x1c90c: 0x6c75b020, 0x1c90d: 0x6c2c4220, 0x1c90e: 0x6d019620, 0x1c90f: 0x6c601c20, + 0x1c910: 0x6cf4e020, 0x1c911: 0x6d0bfc20, 0x1c912: 0x6c942c20, 0x1c913: 0x6c4e0620, + 0x1c914: 0x6d0e6220, 0x1c915: 0x6c591220, 0x1c916: 0x6c9aee20, 0x1c917: 0x6c711620, + 0x1c918: 0x6c2a1020, 0x1c919: 0x6c072420, 0x1c91a: 0x6c3b7a20, 0x1c91b: 0x6c8c5220, + 0x1c91c: 0x6c7d6220, 0x1c91d: 0x6c5d2820, 0x1c91e: 0x6cea2220, 0x1c91f: 0x6cf61620, + 0x1c920: 0x6c253e20, 0x1c921: 0x6cf3c820, 0x1c922: 0x6c52a820, 0x1c923: 0x6c179c20, + 0x1c924: 0x6c3f6220, 0x1c925: 0x6cf2f420, 0x1c926: 0x6c684820, 0x1c927: 0x6c231820, + 0x1c928: 0x6c3ce220, 0x1c929: 0x6cb2a620, 0x1c92a: 0x6cbf2620, 0x1c92b: 0x6cc91e20, + 0x1c92c: 0x6cf61820, 0x1c92d: 0x6cbf2820, 0x1c92e: 0x6d033420, 0x1c92f: 0x6c174420, + 0x1c930: 0x6d0e7420, 0x1c931: 0x6d0e7620, 0x1c932: 0x6d17aa20, 0x1c933: 0x6c744e20, + 0x1c934: 0x6d234620, 0x1c935: 0x6c42a820, 0x1c936: 0x6cc47820, 0x1c937: 0x6caff020, + 0x1c938: 0x6d049420, 0x1c939: 0x6cee6420, 0x1c93a: 0x6cd10420, 0x1c93b: 0x6c171420, + 0x1c93c: 0x6cce6e20, 0x1c93d: 0x6d048420, 0x1c93e: 0x6ca72420, 0x1c93f: 0x6c44d020, + // Block 0x725, offset 0x1c940 + 0x1c940: 0x6cf13e20, 0x1c941: 0x6c18d420, 0x1c942: 0x6c51ce20, 0x1c943: 0x6c7cd220, + 0x1c944: 0x6d37fe20, 0x1c945: 0x6c32cc20, 0x1c946: 0x6cf96a20, 0x1c947: 0x6c5ac620, + 0x1c948: 0x6c3ce420, 0x1c949: 0x6c890620, 0x1c94a: 0x6d07a820, 0x1c94b: 0x6d037e20, + 0x1c94c: 0x6c59d220, 0x1c94d: 0x6c690a20, 0x1c94e: 0x6c64b620, 0x1c94f: 0x6c09cc20, + 0x1c950: 0x6d1bbc20, 0x1c951: 0x6d3a7020, 0x1c952: 0x6cefde20, 0x1c953: 0x6ce93620, + 0x1c954: 0x6ccd4a20, 0x1c955: 0x6cf67020, 0x1c956: 0x6caa9620, 0x1c957: 0x6caa9820, + 0x1c958: 0x6c150220, 0x1c959: 0x6d0c1220, 0x1c95a: 0x6c6f1020, 0x1c95b: 0x6c6f2420, + 0x1c95c: 0x6d237020, 0x1c95d: 0x6c9a9c20, 0x1c95e: 0x6ccbfc20, 0x1c95f: 0x6cf0a620, + 0x1c960: 0x6d2c3820, 0x1c961: 0x6d033620, 0x1c962: 0x6cbf3e20, 0x1c963: 0x6cc75020, + 0x1c964: 0x6c9a0c20, 0x1c965: 0x6c593620, 0x1c966: 0x6d06f420, 0x1c967: 0x6d2fbe20, + 0x1c968: 0x6ceea020, 0x1c969: 0x6c38a620, 0x1c96a: 0x6cc07620, 0x1c96b: 0x6cdc4a20, + 0x1c96c: 0x6d0fc820, 0x1c96d: 0x6c8b1620, 0x1c96e: 0x6d3a6e20, 0x1c96f: 0x6c6a2220, + 0x1c970: 0x6c434e20, 0x1c971: 0x6c485c20, 0x1c972: 0x6c05b420, 0x1c973: 0x6c557020, + 0x1c974: 0x6d275820, 0x1c975: 0x6cf96c20, 0x1c976: 0x6cd41a20, 0x1c977: 0x6c89ce20, + 0x1c978: 0x6c0afa20, 0x1c979: 0x6c46c420, 0x1c97a: 0x6cea0020, 0x1c97b: 0x6ce11420, + 0x1c97c: 0x6c17a020, 0x1c97d: 0x6cccfc20, 0x1c97e: 0x6c371a20, 0x1c97f: 0x6c0f2a20, + // Block 0x726, offset 0x1c980 + 0x1c980: 0x6c5a5a20, 0x1c981: 0x6d00ce20, 0x1c982: 0x6cf8ae20, 0x1c983: 0x6cf50e20, + 0x1c984: 0x6cf67220, 0x1c985: 0x6d284220, 0x1c986: 0x6c515a20, 0x1c987: 0x6c51d220, + 0x1c988: 0x6cf67420, 0x1c989: 0x6d27bc20, 0x1c98a: 0x6d048020, 0x1c98b: 0x6ca37e20, + 0x1c98c: 0x6ccd5020, 0x1c98d: 0x6cbf8e20, 0x1c98e: 0x6d121620, 0x1c98f: 0x6d099e20, + 0x1c990: 0x6c9d6c20, 0x1c991: 0x6c882420, 0x1c992: 0x6d1c8820, 0x1c993: 0x6cf45a20, + 0x1c994: 0x6cc69a20, 0x1c995: 0x6c459e20, 0x1c996: 0x6d0f3820, 0x1c997: 0x6cbb5820, + 0x1c998: 0x6c8e3820, 0x1c999: 0x6cf67620, 0x1c99a: 0x6c09f820, 0x1c99b: 0x6c0c1820, + 0x1c99c: 0x6c233e20, 0x1c99d: 0x6c92a620, 0x1c99e: 0x6c64d620, 0x1c99f: 0x6cd53420, + 0x1c9a0: 0x6d185620, 0x1c9a1: 0x6c90b220, 0x1c9a2: 0x6caeb620, 0x1c9a3: 0x6cdbd420, + 0x1c9a4: 0x6d185820, 0x1c9a5: 0x6ce28e20, 0x1c9a6: 0x6c749420, 0x1c9a7: 0x6d3fb220, + 0x1c9a8: 0x6d284620, 0x1c9a9: 0x6c56c020, 0x1c9aa: 0x6d154820, 0x1c9ab: 0x6d36b420, + 0x1c9ac: 0x6c026220, 0x1c9ad: 0x6cf0bc20, 0x1c9ae: 0x6c8f1420, 0x1c9af: 0x6c4efa20, + 0x1c9b0: 0x6cab4c20, 0x1c9b1: 0x6cc55420, 0x1c9b2: 0x6c6f2c20, 0x1c9b3: 0x6c97fc20, + 0x1c9b4: 0x6c7de220, 0x1c9b5: 0x6cce1820, 0x1c9b6: 0x6c24b220, 0x1c9b7: 0x6d2b9020, + 0x1c9b8: 0x6c64f620, 0x1c9b9: 0x6cf6c620, 0x1c9ba: 0x6cf6c820, 0x1c9bb: 0x6cf6ca20, + 0x1c9bc: 0x6d185a20, 0x1c9bd: 0x6d000c20, 0x1c9be: 0x6c1c6e20, 0x1c9bf: 0x6c59ea20, + // Block 0x727, offset 0x1c9c0 + 0x1c9c0: 0x6c15e420, 0x1c9c1: 0x6d131820, 0x1c9c2: 0x6ce01020, 0x1c9c3: 0x6cc48820, + 0x1c9c4: 0x6d0ec020, 0x1c9c5: 0x6cfb9420, 0x1c9c6: 0x6cbbae20, 0x1c9c7: 0x6c75e820, + 0x1c9c8: 0x6c2aaa20, 0x1c9c9: 0x6c340a20, 0x1c9ca: 0x6cd01820, 0x1c9cb: 0x6c687a20, + 0x1c9cc: 0x6c3b9620, 0x1c9cd: 0x6cd82a20, 0x1c9ce: 0x6c8a1a20, 0x1c9cf: 0x6d23ee20, + 0x1c9d0: 0x6c8bde20, 0x1c9d1: 0x6ce78a20, 0x1c9d2: 0x6cce8420, 0x1c9d3: 0x6c3b4620, + 0x1c9d4: 0x6c38bc20, 0x1c9d5: 0x6d0ec220, 0x1c9d6: 0x6d0a3e20, 0x1c9d7: 0x6c807620, + 0x1c9d8: 0x6c9a6a20, 0x1c9d9: 0x6ce1a220, 0x1c9da: 0x6d18a220, 0x1c9db: 0x6c6e3020, + 0x1c9dc: 0x6c9afc20, 0x1c9dd: 0x6c6ecc20, 0x1c9de: 0x6c694420, 0x1c9df: 0x6d1c9a20, + 0x1c9e0: 0x6d23f020, 0x1c9e1: 0x6d18ca20, 0x1c9e2: 0x6d091e20, 0x1c9e3: 0x6c7fc020, + 0x1c9e4: 0x6cdf8020, 0x1c9e5: 0x6d2a9220, 0x1c9e6: 0x6c120c20, 0x1c9e7: 0x6cdc7420, + 0x1c9e8: 0x6cf6ea20, 0x1c9e9: 0x6cc40220, 0x1c9ea: 0x6c235420, 0x1c9eb: 0x6c886220, + 0x1c9ec: 0x6c5b6e20, 0x1c9ed: 0x6d3a2c20, 0x1c9ee: 0x6d022c20, 0x1c9ef: 0x6c8d6e20, + 0x1c9f0: 0x6ceec020, 0x1c9f1: 0x6d18cc20, 0x1c9f2: 0x6d00fc20, 0x1c9f3: 0x6d2fe220, + 0x1c9f4: 0x6c5c5220, 0x1c9f5: 0x6c270020, 0x1c9f6: 0x6ca9ce20, 0x1c9f7: 0x6c7fc220, + 0x1c9f8: 0x6cc7de20, 0x1c9f9: 0x6cfc3a20, 0x1c9fa: 0x6c77b620, 0x1c9fb: 0x6d09ba20, + 0x1c9fc: 0x6c6d6620, 0x1c9fd: 0x6c1df820, 0x1c9fe: 0x6c2a3a20, 0x1c9ff: 0x6d123020, + // Block 0x728, offset 0x1ca00 + 0x1ca00: 0x6c51fc20, 0x1ca01: 0x6c807e20, 0x1ca02: 0x6c0c4220, 0x1ca03: 0x6cc6ce20, + 0x1ca04: 0x6c86d020, 0x1ca05: 0x6ca18220, 0x1ca06: 0x6c067820, 0x1ca07: 0x6cc93220, + 0x1ca08: 0x6c941420, 0x1ca09: 0x6c7ea620, 0x1ca0a: 0x6c023620, 0x1ca0b: 0x6d0ab020, + 0x1ca0c: 0x6c7c1020, 0x1ca0d: 0x6cd7aa20, 0x1ca0e: 0x6c8ab420, 0x1ca0f: 0x6c872020, + 0x1ca10: 0x6c918420, 0x1ca11: 0x6c74ea20, 0x1ca12: 0x6c8a8620, 0x1ca13: 0x6d0efa20, + 0x1ca14: 0x6cf73a20, 0x1ca15: 0x6d025a20, 0x1ca16: 0x6c8fde20, 0x1ca17: 0x6d136e20, + 0x1ca18: 0x6c121a20, 0x1ca19: 0x6cc50c20, 0x1ca1a: 0x6d271420, 0x1ca1b: 0x6c808820, + 0x1ca1c: 0x6c23ce20, 0x1ca1d: 0x6c750c20, 0x1ca1e: 0x6c1d3220, 0x1ca1f: 0x6c49b620, + 0x1ca20: 0x6c72d620, 0x1ca21: 0x6c185620, 0x1ca22: 0x6c9cba20, 0x1ca23: 0x6ce19220, + 0x1ca24: 0x6c809220, 0x1ca25: 0x6d3a4820, 0x1ca26: 0x6c809a20, 0x1ca27: 0x6c8dda20, + 0x1ca28: 0x6c24c420, 0x1ca29: 0x6d24b220, 0x1ca2a: 0x6d2f8020, 0x1ca2b: 0x6d2ff420, + 0x1ca2c: 0x6cabd220, 0x1ca2d: 0x6d328c20, 0x1ca2e: 0x6cad5220, 0x1ca2f: 0x6c195820, + 0x1ca30: 0x6d254620, 0x1ca31: 0x6c009620, 0x1ca32: 0x6cf09c20, 0x1ca33: 0x6c4f4420, + 0x1ca34: 0x6c749620, 0x1ca35: 0x6c74c820, 0x1ca36: 0x6c3fa020, 0x1ca37: 0x6d13b020, + 0x1ca38: 0x6c03aa20, 0x1ca39: 0x6c2e5620, 0x1ca3a: 0x6d13b420, 0x1ca3b: 0x6d10c620, + 0x1ca3c: 0x6d411020, 0x1ca3d: 0x6cd6d020, 0x1ca3e: 0x6c379e20, 0x1ca3f: 0x6cac5020, + // Block 0x729, offset 0x1ca40 + 0x1ca40: 0x6c206e20, 0x1ca41: 0x6c77e220, 0x1ca42: 0x6d29d420, 0x1ca43: 0x6c2ec020, + 0x1ca44: 0x6cbace20, 0x1ca45: 0x6d1dfc20, 0x1ca46: 0x6cbb2a20, 0x1ca47: 0x6cb14420, + 0x1ca48: 0x6c04be20, 0x1ca49: 0x6cacac20, 0x1ca4a: 0x6c175a20, 0x1ca4b: 0x6c64a020, + 0x1ca4c: 0x6cac0020, 0x1ca4d: 0x6c31a020, 0x1ca4e: 0x6c205420, 0x1ca4f: 0x6d215a20, + 0x1ca50: 0x6d2c3a20, 0x1ca51: 0x6c0afc20, 0x1ca52: 0x6c2ec220, 0x1ca53: 0x6c055420, + 0x1ca54: 0x6c0f2c20, 0x1ca55: 0x6c205a20, 0x1ca56: 0x6d1fea20, 0x1ca57: 0x6d206e20, + 0x1ca58: 0x6c31d620, 0x1ca59: 0x6d0b0820, 0x1ca5a: 0x6c197220, 0x1ca5b: 0x6ca96620, + 0x1ca5c: 0x6ca9ac20, 0x1ca5d: 0x6cb24020, 0x1ca5e: 0x6c6f4c20, 0x1ca5f: 0x6ca1be20, + 0x1ca60: 0x6cdde020, 0x1ca61: 0x6ca22420, 0x1ca62: 0x6c814220, 0x1ca63: 0x6cc5c420, + 0x1ca64: 0x6c981a20, 0x1ca65: 0x6c398a20, 0x1ca66: 0x6c98ca20, 0x1ca67: 0x6ca27020, + 0x1ca68: 0x6c426020, 0x1ca69: 0x6cf4b820, 0x1ca6a: 0x6d0e4020, 0x1ca6b: 0x6c437420, + 0x1ca6c: 0x6c06ec20, 0x1ca6d: 0x6cd8a020, 0x1ca6e: 0x6c665e20, 0x1ca6f: 0x6c476620, + 0x1ca70: 0x6d202c20, 0x1ca71: 0x6c437e20, 0x1ca72: 0x6cd0f220, 0x1ca73: 0x6ca23020, + 0x1ca74: 0x6c2be620, 0x1ca75: 0x6cb8be20, 0x1ca76: 0x6cc37020, 0x1ca77: 0x6cc2cc20, + 0x1ca78: 0x6d3f4020, 0x1ca79: 0x6ce27020, 0x1ca7a: 0x6cf5c420, 0x1ca7b: 0x6c985620, + 0x1ca7c: 0x6c793820, 0x1ca7d: 0x6cb8d820, 0x1ca7e: 0x6cf44620, 0x1ca7f: 0x6c481220, + // Block 0x72a, offset 0x1ca80 + 0x1ca80: 0x6cf61a20, 0x1ca81: 0x6c83c220, 0x1ca82: 0x6c83da20, 0x1ca83: 0x6cb3f420, + 0x1ca84: 0x6c5ed420, 0x1ca85: 0x6c428220, 0x1ca86: 0x6d346420, 0x1ca87: 0x6c078820, + 0x1ca88: 0x6cc2f220, 0x1ca89: 0x6c214e20, 0x1ca8a: 0x6c31a220, 0x1ca8b: 0x6c724a20, + 0x1ca8c: 0x6c636e20, 0x1ca8d: 0x6c64a220, 0x1ca8e: 0x6c3c5620, 0x1ca8f: 0x6cb0f820, + 0x1ca90: 0x6c780820, 0x1ca91: 0x6c713020, 0x1ca92: 0x6c77c220, 0x1ca93: 0x6c1e9c20, + 0x1ca94: 0x6cf8b220, 0x1ca95: 0x6c074020, 0x1ca96: 0x6c961820, 0x1ca97: 0x6c6bf220, + 0x1ca98: 0x6c967220, 0x1ca99: 0x6cca0820, 0x1ca9a: 0x6cf0be20, 0x1ca9b: 0x6c98fc20, + 0x1ca9c: 0x6c33b020, 0x1ca9d: 0x6ce78c20, 0x1ca9e: 0x6cbc7620, 0x1ca9f: 0x6c67fc20, + 0x1caa0: 0x6cf94820, 0x1caa1: 0x6c86d220, 0x1caa2: 0x6c31d820, 0x1caa3: 0x6c8b5e20, + 0x1caa4: 0x6cac1020, 0x1caa5: 0x6cb16e20, 0x1caa6: 0x6c0fa620, 0x1caa7: 0x6cf73c20, + 0x1caa8: 0x6c1d8620, 0x1caa9: 0x6cef6820, 0x1caaa: 0x6c7cc220, 0x1caab: 0x6c1d8a20, + 0x1caac: 0x6cc34c20, 0x1caad: 0x6cc38020, 0x1caae: 0x6c035e20, 0x1caaf: 0x6c391620, + 0x1cab0: 0x6cbff420, 0x1cab1: 0x6c611c20, 0x1cab2: 0x6c110420, 0x1cab3: 0x6d3d2220, + 0x1cab4: 0x6c019c20, 0x1cab5: 0x6c436820, 0x1cab6: 0x6d3c3020, 0x1cab7: 0x6c4a0620, + 0x1cab8: 0x6c96b020, 0x1cab9: 0x6d1eee20, 0x1caba: 0x6c778020, 0x1cabb: 0x6c0eae20, + 0x1cabc: 0x6c544a20, 0x1cabd: 0x6d0b7620, 0x1cabe: 0x6d1a2820, 0x1cabf: 0x6c582620, + // Block 0x72b, offset 0x1cac0 + 0x1cac0: 0x6d3c3420, 0x1cac1: 0x6d27da20, 0x1cac2: 0x6c7bba20, 0x1cac3: 0x6ca97a20, + 0x1cac4: 0x6c2b5420, 0x1cac5: 0x6cbe2e20, 0x1cac6: 0x6d381420, 0x1cac7: 0x6ca26a20, + 0x1cac8: 0x6c06d820, 0x1cac9: 0x6caf4220, 0x1caca: 0x6c70fc20, 0x1cacb: 0x6d147420, + 0x1cacc: 0x6cd0e420, 0x1cacd: 0x6cad4e20, 0x1cace: 0x6cf98e20, 0x1cacf: 0x6ceaf220, + 0x1cad0: 0x6c552620, 0x1cad1: 0x6c8cae20, 0x1cad2: 0x6c3a8a20, 0x1cad3: 0x6cafbe20, + 0x1cad4: 0x6ca62a20, 0x1cad5: 0x6d119020, 0x1cad6: 0x6d201a20, 0x1cad7: 0x6c467020, + 0x1cad8: 0x6d094620, 0x1cad9: 0x6c705e20, 0x1cada: 0x6c286a20, 0x1cadb: 0x6c0eb820, + 0x1cadc: 0x6c7a7420, 0x1cadd: 0x6cfbe820, 0x1cade: 0x6ca8f820, 0x1cadf: 0x6c586620, + 0x1cae0: 0x6c523c20, 0x1cae1: 0x6c68d420, 0x1cae2: 0x6c50dc20, 0x1cae3: 0x6d2fa420, + 0x1cae4: 0x6c5ff620, 0x1cae5: 0x6d0a7220, 0x1cae6: 0x6cccd220, 0x1cae7: 0x6cde3820, + 0x1cae8: 0x6cc65820, 0x1cae9: 0x6cd45620, 0x1caea: 0x6ce72820, 0x1caeb: 0x6c81a820, + 0x1caec: 0x6c318a20, 0x1caed: 0x6cf99c20, 0x1caee: 0x6cd1ae20, 0x1caef: 0x6c7b1a20, + 0x1caf0: 0x6d329c20, 0x1caf1: 0x6d22e420, 0x1caf2: 0x6cdccc20, 0x1caf3: 0x6d20f420, + 0x1caf4: 0x6c096220, 0x1caf5: 0x6c985420, 0x1caf6: 0x6cf5c620, 0x1caf7: 0x6c734c20, + 0x1caf8: 0x6c87e020, 0x1caf9: 0x6cf9aa20, 0x1cafa: 0x6d1a4820, 0x1cafb: 0x6cdb7e20, + 0x1cafc: 0x6c80ae20, 0x1cafd: 0x6c070220, 0x1cafe: 0x6d35c020, 0x1caff: 0x6d0c7420, + // Block 0x72c, offset 0x1cb00 + 0x1cb00: 0x6ccbdc20, 0x1cb01: 0x6c85d220, 0x1cb02: 0x6c4e9e20, 0x1cb03: 0x6cfc0020, + 0x1cb04: 0x6c6dae20, 0x1cb05: 0x6cabfc20, 0x1cb06: 0x6c3a0620, 0x1cb07: 0x6cfeb820, + 0x1cb08: 0x6c044220, 0x1cb09: 0x6cb5cc20, 0x1cb0a: 0x6ca5da20, 0x1cb0b: 0x6c0bfc20, + 0x1cb0c: 0x6d1b5620, 0x1cb0d: 0x6c7efe20, 0x1cb0e: 0x6c8b0220, 0x1cb0f: 0x6c648820, + 0x1cb10: 0x6cbaac20, 0x1cb11: 0x6c7d5a20, 0x1cb12: 0x6d0c0a20, 0x1cb13: 0x6c4cba20, + 0x1cb14: 0x6d402020, 0x1cb15: 0x6c9c4820, 0x1cb16: 0x6c166820, 0x1cb17: 0x6d13e620, + 0x1cb18: 0x6d35e820, 0x1cb19: 0x6d32b420, 0x1cb1a: 0x6d0b2c20, 0x1cb1b: 0x6c9bce20, + 0x1cb1c: 0x6c10f820, 0x1cb1d: 0x6c243620, 0x1cb1e: 0x6cceec20, 0x1cb1f: 0x6c8b9820, + 0x1cb20: 0x6c2d1620, 0x1cb21: 0x6c953e20, 0x1cb22: 0x6c556020, 0x1cb23: 0x6d3f9020, + 0x1cb24: 0x6c4b4620, 0x1cb25: 0x6cefc820, 0x1cb26: 0x6c3c4c20, 0x1cb27: 0x6cf28c20, + 0x1cb28: 0x6d256620, 0x1cb29: 0x6d037420, 0x1cb2a: 0x6d399820, 0x1cb2b: 0x6c98ba20, + 0x1cb2c: 0x6cf14020, 0x1cb2d: 0x6c1fe420, 0x1cb2e: 0x6cfcce20, 0x1cb2f: 0x6ce93420, + 0x1cb30: 0x6d0bb220, 0x1cb31: 0x6ca4ac20, 0x1cb32: 0x6d004220, 0x1cb33: 0x6c636020, + 0x1cb34: 0x6c540620, 0x1cb35: 0x6c0af420, 0x1cb36: 0x6d1f3a20, 0x1cb37: 0x6d1f4820, + 0x1cb38: 0x6c9a0020, 0x1cb39: 0x6c13e420, 0x1cb3a: 0x6d111420, 0x1cb3b: 0x6cdcd620, + 0x1cb3c: 0x6c0f1420, 0x1cb3d: 0x6ca00820, 0x1cb3e: 0x6c574020, 0x1cb3f: 0x6d258620, + // Block 0x72d, offset 0x1cb40 + 0x1cb40: 0x6cd9b420, 0x1cb41: 0x6c96c420, 0x1cb42: 0x6d258820, 0x1cb43: 0x6c270c20, + 0x1cb44: 0x6d239220, 0x1cb45: 0x6cd1d220, 0x1cb46: 0x6c4fcc20, 0x1cb47: 0x6cbb6420, + 0x1cb48: 0x6d17ea20, 0x1cb49: 0x6d316a20, 0x1cb4a: 0x6c123420, 0x1cb4b: 0x6c4fe220, + 0x1cb4c: 0x6c97ee20, 0x1cb4d: 0x6c6e9620, 0x1cb4e: 0x6c67b820, 0x1cb4f: 0x6ca12e20, + 0x1cb50: 0x6d2ecc20, 0x1cb51: 0x6c150a20, 0x1cb52: 0x6c026420, 0x1cb53: 0x6c025420, + 0x1cb54: 0x6c4fd420, 0x1cb55: 0x6c24e020, 0x1cb56: 0x6c07c420, 0x1cb57: 0x6c749820, + 0x1cb58: 0x6c0a2c20, 0x1cb59: 0x6c09fe20, 0x1cb5a: 0x6c59dc20, 0x1cb5b: 0x6cb44a20, + 0x1cb5c: 0x6c8bd020, 0x1cb5d: 0x6d072620, 0x1cb5e: 0x6ce77e20, 0x1cb5f: 0x6d121e20, + 0x1cb60: 0x6c8a1220, 0x1cb61: 0x6cd79020, 0x1cb62: 0x6cff0620, 0x1cb63: 0x6cd49020, + 0x1cb64: 0x6c33a820, 0x1cb65: 0x6c69c620, 0x1cb66: 0x6c442020, 0x1cb67: 0x6c739020, + 0x1cb68: 0x6c31b420, 0x1cb69: 0x6c5c3820, 0x1cb6a: 0x6c7b3e20, 0x1cb6b: 0x6cfc2c20, + 0x1cb6c: 0x6d021820, 0x1cb6d: 0x6cde1820, 0x1cb6e: 0x6cfc3220, 0x1cb6f: 0x6d09b020, + 0x1cb70: 0x6ca92620, 0x1cb71: 0x6cb21820, 0x1cb72: 0x6c5dfc20, 0x1cb73: 0x6caa2a20, + 0x1cb74: 0x6c9be620, 0x1cb75: 0x6c8b5420, 0x1cb76: 0x6ca51e20, 0x1cb77: 0x6c4a0c20, + 0x1cb78: 0x6cd48420, 0x1cb79: 0x6c917420, 0x1cb7a: 0x6cde2020, 0x1cb7b: 0x6cfd3c20, + 0x1cb7c: 0x6c9ca220, 0x1cb7d: 0x6cc4e820, 0x1cb7e: 0x6c584020, 0x1cb7f: 0x6ca52820, + // Block 0x72e, offset 0x1cb80 + 0x1cb80: 0x6c957820, 0x1cb81: 0x6cfc5420, 0x1cb82: 0x6cb6ac20, 0x1cb83: 0x6c751e20, + 0x1cb84: 0x6d07fa20, 0x1cb85: 0x6c9eae20, 0x1cb86: 0x6d3e1a20, 0x1cb87: 0x6c93d620, + 0x1cb88: 0x6c914c20, 0x1cb89: 0x6d22b820, 0x1cb8a: 0x6cda7a20, 0x1cb8b: 0x6cedda20, + 0x1cb8c: 0x6cbff620, 0x1cb8d: 0x6c40d220, 0x1cb8e: 0x6c2f4c20, 0x1cb8f: 0x6c821620, + 0x1cb90: 0x6c031620, 0x1cb91: 0x6c5e7c20, 0x1cb92: 0x6c52fa20, 0x1cb93: 0x6c2c1a20, + 0x1cb94: 0x6c202e20, 0x1cb95: 0x6c416c20, 0x1cb96: 0x6c6fac20, 0x1cb97: 0x6d20be20, + 0x1cb98: 0x6cb6d820, 0x1cb99: 0x6d20c020, 0x1cb9a: 0x6c170620, 0x1cb9b: 0x6c969020, + 0x1cb9c: 0x6c456420, 0x1cb9d: 0x6cf43020, 0x1cb9e: 0x6c3d4220, 0x1cb9f: 0x6cf18420, + 0x1cba0: 0x6c6bc620, 0x1cba1: 0x6d0b1a20, 0x1cba2: 0x6c0d2620, 0x1cba3: 0x6c0b8020, + 0x1cba4: 0x6c056220, 0x1cba5: 0x6d268820, 0x1cba6: 0x6c73f220, 0x1cba7: 0x6c9ac220, + 0x1cba8: 0x6c73f420, 0x1cba9: 0x6cecca20, 0x1cbaa: 0x6c646e20, 0x1cbab: 0x6c99da20, + 0x1cbac: 0x6c282420, 0x1cbad: 0x6cb20420, 0x1cbae: 0x6cef9620, 0x1cbaf: 0x6c585820, + 0x1cbb0: 0x6cfc8020, 0x1cbb1: 0x6cbaa820, 0x1cbb2: 0x6c8cbe20, 0x1cbb3: 0x6c274a20, + 0x1cbb4: 0x6d16fc20, 0x1cbb5: 0x6c016820, 0x1cbb6: 0x6cb28820, 0x1cbb7: 0x6c2d4620, + 0x1cbb8: 0x6c3e1620, 0x1cbb9: 0x6d080220, 0x1cbba: 0x6cf7da20, 0x1cbbb: 0x6c0e5820, + 0x1cbbc: 0x6c229420, 0x1cbbd: 0x6c467820, 0x1cbbe: 0x6c640620, 0x1cbbf: 0x6cce9e20, + // Block 0x72f, offset 0x1cbc0 + 0x1cbc0: 0x6cb37220, 0x1cbc1: 0x6c222220, 0x1cbc2: 0x6c77e420, 0x1cbc3: 0x6cc4bc20, + 0x1cbc4: 0x6cd0f420, 0x1cbc5: 0x6ccfbe20, 0x1cbc6: 0x6d14a820, 0x1cbc7: 0x6d411220, + 0x1cbc8: 0x6c633c20, 0x1cbc9: 0x6c9f3a20, 0x1cbca: 0x6cccd420, 0x1cbcb: 0x6c8efe20, + 0x1cbcc: 0x6c095020, 0x1cbcd: 0x6d312c20, 0x1cbce: 0x6d312e20, 0x1cbcf: 0x6c73fc20, + 0x1cbd0: 0x6c383820, 0x1cbd1: 0x6c8f7820, 0x1cbd2: 0x6c6c3e20, 0x1cbd3: 0x6c698e20, + 0x1cbd4: 0x6c667020, 0x1cbd5: 0x6c85d420, 0x1cbd6: 0x6c4a1e20, 0x1cbd7: 0x6cfa9220, + 0x1cbd8: 0x6d386820, 0x1cbd9: 0x6c45e420, 0x1cbda: 0x6d0be820, 0x1cbdb: 0x6d053420, + 0x1cbdc: 0x6d0fa420, 0x1cbdd: 0x6d063620, 0x1cbde: 0x6c95f620, 0x1cbdf: 0x6cda9020, + 0x1cbe0: 0x6d399420, 0x1cbe1: 0x6cbd6420, 0x1cbe2: 0x6d1a4a20, 0x1cbe3: 0x6d09fe20, + 0x1cbe4: 0x6c05f620, 0x1cbe5: 0x6c379220, 0x1cbe6: 0x6cfe2a20, 0x1cbe7: 0x6d10e420, + 0x1cbe8: 0x6cf9ac20, 0x1cbe9: 0x6c4f6620, 0x1cbea: 0x6c4a4a20, 0x1cbeb: 0x6c1cba20, + 0x1cbec: 0x6d06ac20, 0x1cbed: 0x6c047820, 0x1cbee: 0x6cae1620, 0x1cbef: 0x6c81f020, + 0x1cbf0: 0x6c28fa20, 0x1cbf1: 0x6d1d6420, 0x1cbf2: 0x6c5aa620, 0x1cbf3: 0x6cf19220, + 0x1cbf4: 0x6c355c20, 0x1cbf5: 0x6c19e820, 0x1cbf6: 0x6c2c4420, 0x1cbf7: 0x6cf44c20, + 0x1cbf8: 0x6cf3c420, 0x1cbf9: 0x6c19e020, 0x1cbfa: 0x6c75b220, 0x1cbfb: 0x6c99ee20, + 0x1cbfc: 0x6c071220, 0x1cbfd: 0x6ce6c220, 0x1cbfe: 0x6cfcb420, 0x1cbff: 0x6c1f3220, + // Block 0x730, offset 0x1cc00 + 0x1cc00: 0x6c4e0820, 0x1cc01: 0x6d081220, 0x1cc02: 0x6d0c8820, 0x1cc03: 0x6cc05020, + 0x1cc04: 0x6d088a20, 0x1cc05: 0x6c80be20, 0x1cc06: 0x6c851420, 0x1cc07: 0x6d053c20, + 0x1cc08: 0x6c3e5620, 0x1cc09: 0x6c8e5020, 0x1cc0a: 0x6d0b1e20, 0x1cc0b: 0x6cf5f820, + 0x1cc0c: 0x6c8cec20, 0x1cc0d: 0x6c83c420, 0x1cc0e: 0x6c6d0420, 0x1cc0f: 0x6c88b620, + 0x1cc10: 0x6cdd6020, 0x1cc11: 0x6cddd620, 0x1cc12: 0x6c3cfe20, 0x1cc13: 0x6cecd620, + 0x1cc14: 0x6c2d5a20, 0x1cc15: 0x6cb20c20, 0x1cc16: 0x6d2df020, 0x1cc17: 0x6ccb2c20, + 0x1cc18: 0x6c9f5620, 0x1cc19: 0x6d234820, 0x1cc1a: 0x6c709420, 0x1cc1b: 0x6c186820, + 0x1cc1c: 0x6c7f0a20, 0x1cc1d: 0x6cf19620, 0x1cc1e: 0x6cd16c20, 0x1cc1f: 0x6cef1420, + 0x1cc20: 0x6ce4f620, 0x1cc21: 0x6c1f4020, 0x1cc22: 0x6d423c20, 0x1cc23: 0x6c081e20, + 0x1cc24: 0x6c196020, 0x1cc25: 0x6c562220, 0x1cc26: 0x6cb5ea20, 0x1cc27: 0x6c365e20, + 0x1cc28: 0x6c7d6420, 0x1cc29: 0x6c167020, 0x1cc2a: 0x6cb5ec20, 0x1cc2b: 0x6c082020, + 0x1cc2c: 0x6ced2020, 0x1cc2d: 0x6c925620, 0x1cc2e: 0x6c239e20, 0x1cc2f: 0x6c495220, + 0x1cc30: 0x6d0d9020, 0x1cc31: 0x6c2dca20, 0x1cc32: 0x6c072620, 0x1cc33: 0x6c8bb620, + 0x1cc34: 0x6cbd7220, 0x1cc35: 0x6caff220, 0x1cc36: 0x6cabd620, 0x1cc37: 0x6cc3b820, + 0x1cc38: 0x6d3d6220, 0x1cc39: 0x6cbd7420, 0x1cc3a: 0x6c383c20, 0x1cc3b: 0x6c6d8020, + 0x1cc3c: 0x6cbf2a20, 0x1cc3d: 0x6c321a20, 0x1cc3e: 0x6c6bec20, 0x1cc3f: 0x6c5cf220, + // Block 0x731, offset 0x1cc40 + 0x1cc40: 0x6d226c20, 0x1cc41: 0x6c999820, 0x1cc42: 0x6c9a1020, 0x1cc43: 0x6c210e20, + 0x1cc44: 0x6d07aa20, 0x1cc45: 0x6ce34a20, 0x1cc46: 0x6d038020, 0x1cc47: 0x6c277a20, + 0x1cc48: 0x6cc75220, 0x1cc49: 0x6c9f6020, 0x1cc4a: 0x6c64b820, 0x1cc4b: 0x6cefe020, + 0x1cc4c: 0x6cc86620, 0x1cc4d: 0x6c593820, 0x1cc4e: 0x6d00be20, 0x1cc4f: 0x6c1fe820, + 0x1cc50: 0x6c65ae20, 0x1cc51: 0x6d3bce20, 0x1cc52: 0x6c171620, 0x1cc53: 0x6c890a20, + 0x1cc54: 0x6cc2fe20, 0x1cc55: 0x6cf9d420, 0x1cc56: 0x6c32ce20, 0x1cc57: 0x6d262220, + 0x1cc58: 0x6d0b2e20, 0x1cc59: 0x6ca50220, 0x1cc5a: 0x6c557220, 0x1cc5b: 0x6d1bbe20, + 0x1cc5c: 0x6d215e20, 0x1cc5d: 0x6c59d620, 0x1cc5e: 0x6cc8d420, 0x1cc5f: 0x6ccb3020, + 0x1cc60: 0x6c8e7c20, 0x1cc61: 0x6cd1de20, 0x1cc62: 0x6cc69e20, 0x1cc63: 0x6cdd8220, + 0x1cc64: 0x6d112620, 0x1cc65: 0x6cf15c20, 0x1cc66: 0x6cf45c20, 0x1cc67: 0x6d317e20, + 0x1cc68: 0x6c6d2a20, 0x1cc69: 0x6d1c8a20, 0x1cc6a: 0x6c969e20, 0x1cc6b: 0x6ce1dc20, + 0x1cc6c: 0x6c8e8220, 0x1cc6d: 0x6ce11820, 0x1cc6e: 0x6c864e20, 0x1cc6f: 0x6c80c420, + 0x1cc70: 0x6c4a7020, 0x1cc71: 0x6d325020, 0x1cc72: 0x6cbad020, 0x1cc73: 0x6c25be20, + 0x1cc74: 0x6c748020, 0x1cc75: 0x6d2f8e20, 0x1cc76: 0x6d112820, 0x1cc77: 0x6c00bc20, + 0x1cc78: 0x6c0d4620, 0x1cc79: 0x6cd4f620, 0x1cc7a: 0x6c16c020, 0x1cc7b: 0x6c7d8020, + 0x1cc7c: 0x6d3b8820, 0x1cc7d: 0x6c234020, 0x1cc7e: 0x6c6cb020, 0x1cc7f: 0x6d141620, + // Block 0x732, offset 0x1cc80 + 0x1cc80: 0x6c250020, 0x1cc81: 0x6c234220, 0x1cc82: 0x6cb63820, 0x1cc83: 0x6c841a20, + 0x1cc84: 0x6d1d0820, 0x1cc85: 0x6cdd8a20, 0x1cc86: 0x6cc08c20, 0x1cc87: 0x6d082020, + 0x1cc88: 0x6c026620, 0x1cc89: 0x6c88c420, 0x1cc8a: 0x6c9ad420, 0x1cc8b: 0x6d2eda20, + 0x1cc8c: 0x6d1a9620, 0x1cc8d: 0x6c57e220, 0x1cc8e: 0x6d1be620, 0x1cc8f: 0x6cf0ce20, + 0x1cc90: 0x6c92e620, 0x1cc91: 0x6cf3ec20, 0x1cc92: 0x6c2aac20, 0x1cc93: 0x6d054820, + 0x1cc94: 0x6d2b9420, 0x1cc95: 0x6d0a4220, 0x1cc96: 0x6cc1b420, 0x1cc97: 0x6c299420, + 0x1cc98: 0x6c8be020, 0x1cc99: 0x6c8a1c20, 0x1cc9a: 0x6cbf6220, 0x1cc9b: 0x6cdb3420, + 0x1cc9c: 0x6c59ec20, 0x1cc9d: 0x6c4a8c20, 0x1cc9e: 0x6cb45220, 0x1cc9f: 0x6c6e3220, + 0x1cca0: 0x6c38be20, 0x1cca1: 0x6c6d4220, 0x1cca2: 0x6c8e9820, 0x1cca3: 0x6c5f3620, + 0x1cca4: 0x6c5cae20, 0x1cca5: 0x6c6e3420, 0x1cca6: 0x6c00e220, 0x1cca7: 0x6c0a8e20, + 0x1cca8: 0x6c120e20, 0x1cca9: 0x6cc1d820, 0x1ccaa: 0x6d2a5820, 0x1ccab: 0x6c290c20, + 0x1ccac: 0x6c694c20, 0x1ccad: 0x6c4c0420, 0x1ccae: 0x6ce07e20, 0x1ccaf: 0x6c5c5420, + 0x1ccb0: 0x6c58a620, 0x1ccb1: 0x6ccb7020, 0x1ccb2: 0x6cdc7620, 0x1ccb3: 0x6ce4c620, + 0x1ccb4: 0x6c1f9a20, 0x1ccb5: 0x6d21b820, 0x1ccb6: 0x6c6d6820, 0x1ccb7: 0x6c917620, + 0x1ccb8: 0x6c0d6020, 0x1ccb9: 0x6cd54220, 0x1ccba: 0x6cf21820, 0x1ccbb: 0x6d41a220, + 0x1ccbc: 0x6c7fd020, 0x1ccbd: 0x6cf82020, 0x1ccbe: 0x6d3ea820, 0x1ccbf: 0x6d083020, + // Block 0x733, offset 0x1ccc0 + 0x1ccc0: 0x6cc88420, 0x1ccc1: 0x6cf31e20, 0x1ccc2: 0x6c415820, 0x1ccc3: 0x6c827220, + 0x1ccc4: 0x6c31da20, 0x1ccc5: 0x6c86fe20, 0x1ccc6: 0x6d374020, 0x1ccc7: 0x6cc76a20, + 0x1ccc8: 0x6c848e20, 0x1ccc9: 0x6d29ac20, 0x1ccca: 0x6cbf7620, 0x1cccb: 0x6ce43a20, + 0x1cccc: 0x6c4aa420, 0x1cccd: 0x6cdc0020, 0x1ccce: 0x6c7eb220, 0x1cccf: 0x6c8fe020, + 0x1ccd0: 0x6c918620, 0x1ccd1: 0x6c872620, 0x1ccd2: 0x6d29b220, 0x1ccd3: 0x6c808a20, + 0x1ccd4: 0x6d1c2e20, 0x1ccd5: 0x6c9cb420, 0x1ccd6: 0x6cfd9c20, 0x1ccd7: 0x6cbf8820, + 0x1ccd8: 0x6c49b820, 0x1ccd9: 0x6c2a5020, 0x1ccda: 0x6d29c020, 0x1ccdb: 0x6c58ce20, + 0x1ccdc: 0x6c483e20, 0x1ccdd: 0x6c0eba20, 0x1ccde: 0x6c2e8820, 0x1ccdf: 0x6c0ed820, + 0x1cce0: 0x6c568e20, 0x1cce1: 0x6d347620, 0x1cce2: 0x6cb18020, 0x1cce3: 0x6c050c20, + 0x1cce4: 0x6cc4f020, 0x1cce5: 0x6c87a220, 0x1cce6: 0x6cec0c20, + 0x1cce8: 0x6cfdaa20, 0x1cce9: 0x6cb8aa20, 0x1ccea: 0x6c04c020, 0x1cceb: 0x6cae3a20, + 0x1ccec: 0x6c39c820, 0x1cced: 0x6c282620, 0x1ccee: 0x6cf26c20, 0x1ccef: 0x6cab3420, + 0x1ccf2: 0x6cec4a20, 0x1ccf3: 0x6c552a20, + 0x1ccf4: 0x6c8cc020, 0x1ccf5: 0x6d14aa20, 0x1ccf6: 0x6cb29420, 0x1ccf7: 0x6c223820, + 0x1ccf8: 0x6c042020, 0x1ccf9: 0x6c72ea20, 0x1ccfa: 0x6c16a820, 0x1ccfb: 0x6c1aa820, + 0x1ccfd: 0x6c296820, 0x1ccfe: 0x6c9bd620, 0x1ccff: 0x6c109820, + // Block 0x734, offset 0x1cd00 + 0x1cd00: 0x6d3c8820, 0x1cd01: 0x6cb2aa20, 0x1cd02: 0x6c0afe20, 0x1cd03: 0x6d393220, + 0x1cd04: 0x6d316c20, 0x1cd06: 0x6c225020, 0x1cd07: 0x6d1bd220, + 0x1cd08: 0x6cb7b220, 0x1cd09: 0x6cfb7420, 0x1cd0a: 0x6c90f220, 0x1cd0b: 0x6c2c9220, + 0x1cd0c: 0x6cab5020, 0x1cd0d: 0x6c9b2e20, 0x1cd0e: 0x6d3b8a20, 0x1cd0f: 0x6c084e20, + 0x1cd10: 0x6c8c6420, 0x1cd11: 0x6d2bb020, 0x1cd12: 0x6cf47c20, 0x1cd13: 0x6cb0c220, + 0x1cd14: 0x6c280220, 0x1cd15: 0x6cf27420, 0x1cd16: 0x6d1c0820, 0x1cd17: 0x6d0e0420, + 0x1cd18: 0x6c415c20, 0x1cd19: 0x6c273420, 0x1cd1a: 0x6cd03820, 0x1cd1b: 0x6ce49a20, + 0x1cd1c: 0x6ce49c20, 0x1cd1d: 0x6c4e1c20, 0x1cd1e: 0x6c16b020, 0x1cd1f: 0x6cd0d220, + 0x1cd20: 0x6cbe6e20, 0x1cd21: 0x6ccfcc20, 0x1cd22: 0x6c15aa20, 0x1cd23: 0x6c15ac20, + 0x1cd24: 0x6cc89c20, 0x1cd25: 0x6cd10620, 0x1cd26: 0x6cda4c20, 0x1cd27: 0x6cd00820, + 0x1cd28: 0x6d1e6c20, 0x1cd29: 0x6cd66020, 0x1cd2a: 0x6c920e20, 0x1cd2b: 0x6c40a820, + 0x1cd2c: 0x6d1e1020, 0x1cd2d: 0x6c080e20, 0x1cd2e: 0x6c3cdc20, 0x1cd2f: 0x6ca90820, + 0x1cd30: 0x6ce47e20, 0x1cd31: 0x6d1ee020, 0x1cd32: 0x6c63fc20, 0x1cd33: 0x6ccf9a20, + 0x1cd34: 0x6d2c1820, 0x1cd35: 0x6c2d3220, 0x1cd36: 0x6c3dce20, 0x1cd37: 0x6ca3e220, + 0x1cd38: 0x6c2cbc20, 0x1cd39: 0x6cb24820, 0x1cd3a: 0x6ce62e20, 0x1cd3b: 0x6c578420, + 0x1cd3c: 0x6ce6b220, 0x1cd3d: 0x6d321a20, 0x1cd3e: 0x6d28f620, 0x1cd3f: 0x6c9b0820, + // Block 0x735, offset 0x1cd40 + 0x1cd40: 0x6c093c20, 0x1cd41: 0x6cb58620, 0x1cd42: 0x6c8f2620, 0x1cd43: 0x6d09de20, + 0x1cd44: 0x6c8e4420, 0x1cd45: 0x6c170820, 0x1cd46: 0x6ca23220, 0x1cd47: 0x6d278a20, + 0x1cd48: 0x6c393620, 0x1cd49: 0x6c3e1820, 0x1cd4a: 0x6c44bc20, 0x1cd4b: 0x6ce48e20, + 0x1cd4c: 0x6c6bca20, 0x1cd4d: 0x6c6bcc20, 0x1cd4e: 0x6cc35220, 0x1cd4f: 0x6cf07c20, + 0x1cd50: 0x6c3e1a20, 0x1cd51: 0x6ce49020, 0x1cd52: 0x6ca23420, 0x1cd53: 0x6c341e20, + 0x1cd54: 0x6cacb020, 0x1cd55: 0x6c675620, 0x1cd56: 0x6cebd220, 0x1cd57: 0x6c269020, + 0x1cd58: 0x6ca3f020, 0x1cd59: 0x6c8e4c20, 0x1cd5a: 0x6c079a20, 0x1cd5b: 0x6d31c820, + 0x1cd5c: 0x6c1f2820, 0x1cd5d: 0x6ca23820, 0x1cd5e: 0x6ca23a20, 0x1cd5f: 0x6c12d820, + 0x1cd60: 0x6ce49620, 0x1cd61: 0x6c40f220, 0x1cd62: 0x6c096420, 0x1cd63: 0x6c269a20, + 0x1cd64: 0x6d35ea20, 0x1cd65: 0x6c361220, 0x1cd66: 0x6cb5ce20, 0x1cd67: 0x6c94a020, + 0x1cd68: 0x6cac3e20, 0x1cd69: 0x6d199020, 0x1cd6a: 0x6c384e20, 0x1cd6b: 0x6c579820, + 0x1cd6c: 0x6ccef220, 0x1cd6d: 0x6d212e20, 0x1cd6e: 0x6ca24220, 0x1cd6f: 0x6c75be20, + 0x1cd70: 0x6d176620, 0x1cd71: 0x6c8e5820, 0x1cd72: 0x6ccef420, 0x1cd73: 0x6c2eac20, + 0x1cd74: 0x6c1db020, 0x1cd75: 0x6c579e20, 0x1cd76: 0x6c290020, 0x1cd77: 0x6d3c9020, + 0x1cd78: 0x6c5eea20, 0x1cd79: 0x6ced2a20, 0x1cd7a: 0x6c676620, 0x1cd7b: 0x6c1a2620, + 0x1cd7c: 0x6c171e20, 0x1cd7d: 0x6cea8020, 0x1cd7e: 0x6c825220, 0x1cd7f: 0x6c5f1620, + // Block 0x736, offset 0x1cd80 + 0x1cd80: 0x6c13b020, 0x1cd81: 0x6c8e9a20, 0x1cd82: 0x6c2f3c20, 0x1cd83: 0x6ce98220, + 0x1cd84: 0x6c8c6c20, 0x1cd85: 0x6c678c20, 0x1cd86: 0x6c679020, 0x1cd87: 0x6c1e0020, + 0x1cd88: 0x6cb0d620, 0x1cd89: 0x6c2f0620, 0x1cd8a: 0x6c2f1020, 0x1cd8b: 0x6cb04420, + 0x1cd8c: 0x6c6a8220, 0x1cd8d: 0x6c287220, 0x1cd8e: 0x6cd4da20, 0x1cd8f: 0x6cd4dc20, + 0x1cd90: 0x6d369220, 0x1cd91: 0x6d153420, 0x1cd92: 0x6ca54020, 0x1cd93: 0x6ca39420, + 0x1cd94: 0x6c2f4e20, 0x1cd95: 0x6c08be20, 0x1cd96: 0x6c69f620, 0x1cd97: 0x6c89da20, + 0x1cd98: 0x6c426220, 0x1cd99: 0x6c437620, 0x1cd9a: 0x6c6fd620, 0x1cd9b: 0x6d38da20, + 0x1cd9c: 0x6cfa3020, 0x1cd9d: 0x6ccd7220, 0x1cd9e: 0x6d057220, 0x1cd9f: 0x6caa9e20, + 0x1cda0: 0x6c859220, 0x1cda1: 0x6d0f8a20, 0x1cda2: 0x6c192020, 0x1cda3: 0x6d1f0c20, + 0x1cda4: 0x6c033220, 0x1cda5: 0x6c6bce20, 0x1cda6: 0x6c73fe20, 0x1cda7: 0x6cb59620, + 0x1cda8: 0x6cf95620, 0x1cda9: 0x6c251e20, 0x1cdaa: 0x6c095220, 0x1cdab: 0x6d16fe20, + 0x1cdac: 0x6c85aa20, 0x1cdad: 0x6d401a20, 0x1cdae: 0x6c204e20, 0x1cdaf: 0x6c3c2620, + 0x1cdb0: 0x6d3ad220, 0x1cdb1: 0x6cad8620, 0x1cdb2: 0x6cafd020, 0x1cdb3: 0x6c418a20, + 0x1cdb4: 0x6c77ee20, 0x1cdb5: 0x6c21fa20, 0x1cdb6: 0x6d08de20, 0x1cdb7: 0x6d33c620, + 0x1cdb8: 0x6c283020, 0x1cdb9: 0x6d31ca20, 0x1cdba: 0x6c380220, 0x1cdbb: 0x6d350e20, + 0x1cdbc: 0x6ce29c20, 0x1cdbd: 0x6c706a20, 0x1cdbe: 0x6c600220, 0x1cdbf: 0x6c3a9a20, + // Block 0x737, offset 0x1cdc0 + 0x1cdc0: 0x6c706c20, 0x1cdc1: 0x6cccda20, 0x1cdc2: 0x6c634420, 0x1cdc3: 0x6d080820, + 0x1cdc4: 0x6d2cbc20, 0x1cdc5: 0x6c0e1420, 0x1cdc6: 0x6ca80a20, 0x1cdc7: 0x6d334620, + 0x1cdc8: 0x6d1d8020, 0x1cdc9: 0x6c6e6820, 0x1cdca: 0x6cc2e020, 0x1cdcb: 0x6ce29e20, + 0x1cdcc: 0x6ce6f420, 0x1cdcd: 0x6d14e620, 0x1cdce: 0x6c6a0020, 0x1cdcf: 0x6cefb020, + 0x1cdd0: 0x6c5b3620, 0x1cdd1: 0x6cdfa220, 0x1cdd2: 0x6d101220, 0x1cdd3: 0x6c1c1220, + 0x1cdd4: 0x6d35ec20, 0x1cdd5: 0x6c523220, 0x1cdd6: 0x6d0b5220, 0x1cdd7: 0x6c9a9220, + 0x1cdd8: 0x6c311a20, 0x1cdd9: 0x6c6e8620, 0x1cdda: 0x6cfec020, 0x1cddb: 0x6ce7c820, + 0x1cddc: 0x6ce86220, 0x1cddd: 0x6c986020, 0x1cdde: 0x6cb05e20, 0x1cddf: 0x6cfec220, + 0x1cde0: 0x6cdb8020, 0x1cde1: 0x6c3d7020, 0x1cde2: 0x6c861220, 0x1cde3: 0x6d363420, + 0x1cde4: 0x6c25de20, 0x1cde5: 0x6c345220, 0x1cde6: 0x6cf4ee20, 0x1cde7: 0x6ccbf420, + 0x1cde8: 0x6c815a20, 0x1cde9: 0x6cd46a20, 0x1cdea: 0x6c592620, 0x1cdeb: 0x6cfb5e20, + 0x1cdec: 0x6d17ee20, 0x1cded: 0x6c07f820, 0x1cdee: 0x6d2f3420, 0x1cdef: 0x6c495620, + 0x1cdf0: 0x6cdfec20, 0x1cdf1: 0x6c3ab820, 0x1cdf2: 0x6c966a20, 0x1cdf3: 0x6c8bba20, + 0x1cdf4: 0x6c1abc20, 0x1cdf5: 0x6c621a20, 0x1cdf6: 0x6ce50220, 0x1cdf7: 0x6c013820, + 0x1cdf8: 0x6c1c3220, 0x1cdf9: 0x6c09d020, 0x1cdfa: 0x6c09d220, 0x1cdfb: 0x6c9f6220, + 0x1cdfc: 0x6c481a20, 0x1cdfd: 0x6c330820, 0x1cdfe: 0x6c354220, 0x1cdff: 0x6cefe220, + // Block 0x738, offset 0x1ce00 + 0x1ce00: 0x6d209220, 0x1ce01: 0x6c254420, 0x1ce02: 0x6d0b5620, 0x1ce03: 0x6d3a1620, + 0x1ce04: 0x6c244020, 0x1ce05: 0x6c27e620, 0x1ce06: 0x6cd0b020, 0x1ce07: 0x6d380220, + 0x1ce08: 0x6c1c4620, 0x1ce09: 0x6d239420, 0x1ce0a: 0x6c541c20, 0x1ce0b: 0x6c3c5c20, + 0x1ce0c: 0x6c7e8420, 0x1ce0d: 0x6d0fd220, 0x1ce0e: 0x6c18de20, 0x1ce0f: 0x6ce8c420, + 0x1ce10: 0x6d226e20, 0x1ce11: 0x6c4c2820, 0x1ce12: 0x6cf19e20, 0x1ce13: 0x6c594420, + 0x1ce14: 0x6c7aa220, 0x1ce15: 0x6c642820, 0x1ce16: 0x6d19f620, 0x1ce17: 0x6d182c20, + 0x1ce18: 0x6c911020, 0x1ce19: 0x6ccaf820, 0x1ce1a: 0x6c749a20, 0x1ce1b: 0x6c1c5a20, + 0x1ce1c: 0x6cf6a620, 0x1ce1d: 0x6c492220, 0x1ce1e: 0x6d185c20, 0x1ce1f: 0x6cf16020, + 0x1ce20: 0x6c608c20, 0x1ce21: 0x6c205c20, 0x1ce22: 0x6c049220, 0x1ce23: 0x6c5bfe20, + 0x1ce24: 0x6c8e8420, 0x1ce25: 0x6c149c20, 0x1ce26: 0x6cd47220, 0x1ce27: 0x6caaaa20, + 0x1ce28: 0x6c2cd820, 0x1ce29: 0x6c26fc20, 0x1ce2a: 0x6c0d0e20, 0x1ce2b: 0x6cdfb820, + 0x1ce2c: 0x6d2f4020, 0x1ce2d: 0x6c0c1c20, 0x1ce2e: 0x6cd0c620, 0x1ce2f: 0x6c246220, + 0x1ce30: 0x6c95c020, 0x1ce31: 0x6d18a420, 0x1ce32: 0x6d403220, 0x1ce33: 0x6c1d7c20, + 0x1ce34: 0x6d2f4220, 0x1ce35: 0x6d2d4a20, 0x1ce36: 0x6cda4220, 0x1ce37: 0x6ccb5e20, + 0x1ce38: 0x6cc39c20, 0x1ce39: 0x6c2e3c20, 0x1ce3a: 0x6c911a20, 0x1ce3b: 0x6c911c20, + 0x1ce3c: 0x6ca15220, 0x1ce3d: 0x6cbda620, 0x1ce3e: 0x6d1b0820, 0x1ce3f: 0x6d1d0a20, + // Block 0x739, offset 0x1ce40 + 0x1ce40: 0x6c59fa20, 0x1ce41: 0x6c3f0820, 0x1ce42: 0x6c8a2620, 0x1ce43: 0x6c8fac20, + 0x1ce44: 0x6cbbfe20, 0x1ce45: 0x6c8ea820, 0x1ce46: 0x6c817a20, 0x1ce47: 0x6cfba820, + 0x1ce48: 0x6c3ad620, 0x1ce49: 0x6c280420, 0x1ce4a: 0x6d1b7420, 0x1ce4b: 0x6c51f020, + 0x1ce4c: 0x6c005420, 0x1ce4d: 0x6c04a620, 0x1ce4e: 0x6cfbaa20, 0x1ce4f: 0x6c492a20, + 0x1ce50: 0x6c4b8c20, 0x1ce51: 0x6ca9f620, 0x1ce52: 0x6d242e20, 0x1ce53: 0x6cef4a20, + 0x1ce54: 0x6d18e820, 0x1ce55: 0x6d1dc620, 0x1ce56: 0x6cb07820, 0x1ce57: 0x6c82ee20, + 0x1ce58: 0x6c86a820, 0x1ce59: 0x6cd57820, 0x1ce5a: 0x6c28d820, 0x1ce5b: 0x6c8c3c20, + 0x1ce5c: 0x6c2d8c20, 0x1ce5d: 0x6c8c3e20, 0x1ce5e: 0x6c7f6420, 0x1ce5f: 0x6c0d1020, + 0x1ce60: 0x6c62ba20, 0x1ce61: 0x6c1ae820, 0x1ce62: 0x6d103820, 0x1ce63: 0x6d086220, + 0x1ce64: 0x6c6a3820, 0x1ce65: 0x6d330e20, 0x1ce66: 0x6c99cc20, 0x1ce67: 0x6c874420, + 0x1ce68: 0x6c5e4820, 0x1ce69: 0x6c7f7820, 0x1ce6a: 0x6c631420, 0x1ce6b: 0x6c2cf220, + 0x1ce6c: 0x6d086620, 0x1ce6d: 0x6d1d2e20, 0x1ce6e: 0x6d1b2820, 0x1ce6f: 0x6cc21420, + 0x1ce70: 0x6d1dea20, 0x1ce71: 0x6cdfc820, 0x1ce72: 0x6c2cfe20, 0x1ce73: 0x6c95da20, + 0x1ce74: 0x6c947c20, 0x1ce75: 0x6c948420, 0x1ce76: 0x6c0e4620, 0x1ce77: 0x6c0e5420, + 0x1ce78: 0x6c4ada20, 0x1ce79: 0x6c037020, 0x1ce7a: 0x6c37e620, 0x1ce7b: 0x6c2a9c20, + 0x1ce7c: 0x6c37ec20, 0x1ce7d: 0x6c040820, 0x1ce7e: 0x6c041620, 0x1ce7f: 0x6cbc8020, + // Block 0x73a, offset 0x1ce80 + 0x1ce80: 0x6c5fd620, 0x1ce81: 0x6d2a6820, 0x1ce82: 0x6d2a6a20, 0x1ce83: 0x6c994420, + 0x1ce84: 0x6c2a8c20, 0x1ce85: 0x6cabb820, 0x1ce86: 0x6c69f820, 0x1ce87: 0x6c59ac20, + 0x1ce88: 0x6c4a3e20, 0x1ce89: 0x6c229620, 0x1ce8a: 0x6c8ccc20, 0x1ce8b: 0x6c42b620, + 0x1ce8c: 0x6ca0f020, 0x1ce8d: 0x6c5ffa20, 0x1ce8e: 0x6c68e420, 0x1ce8f: 0x6caf0620, + 0x1ce90: 0x6c42be20, 0x1ce91: 0x6c004020, 0x1ce92: 0x6c356620, 0x1ce93: 0x6c503e20, + 0x1ce94: 0x6c4ec420, 0x1ce95: 0x6c09a420, 0x1ce96: 0x6ced2220, 0x1ce97: 0x6c1dbc20, + 0x1ce98: 0x6cba5c20, 0x1ce99: 0x6cf65220, 0x1ce9a: 0x6c005020, 0x1ce9b: 0x6cffb820, + 0x1ce9c: 0x6c505c20, 0x1ce9d: 0x6c5a7820, 0x1ce9e: 0x6c505e20, 0x1ce9f: 0x6d2b0220, + 0x1cea0: 0x6c251020, 0x1cea1: 0x6c506c20, 0x1cea2: 0x6cffc220, 0x1cea3: 0x6d132820, + 0x1cea4: 0x6cb33820, 0x1cea5: 0x6c507220, 0x1cea6: 0x6c695220, 0x1cea7: 0x6c00f220, + 0x1cea8: 0x6d03ae20, 0x1cea9: 0x6c5a8020, 0x1ceaa: 0x6c872820, 0x1ceab: 0x6cb1a620, + 0x1ceac: 0x6c51a220, 0x1cead: 0x6c69e220, 0x1ceae: 0x6cafa820, 0x1ceaf: 0x6c41ca20, + 0x1ceb0: 0x6cad8820, 0x1ceb1: 0x6d391c20, 0x1ceb2: 0x6c756e20, 0x1ceb3: 0x6cc06620, + 0x1ceb4: 0x6c259420, 0x1ceb5: 0x6cc3ce20, 0x1ceb6: 0x6d2bee20, 0x1ceb7: 0x6c47b420, + 0x1ceb8: 0x6c757620, 0x1ceb9: 0x6c757820, 0x1ceba: 0x6d394420, 0x1cebb: 0x6d2bfe20, + 0x1cebc: 0x6c47d820, 0x1cebd: 0x6d2f7c20, 0x1cebe: 0x6c31e020, 0x1cebf: 0x6c9f8a20, + // Block 0x73b, offset 0x1cec0 + 0x1cec0: 0x6cb6da20, 0x1cec1: 0x6d1c5620, 0x1cec2: 0x6d20c620, 0x1cec3: 0x6c069220, + 0x1cec4: 0x6d2f5e20, 0x1cec5: 0x6d37a820, 0x1cec6: 0x6cae3c20, 0x1cec7: 0x6c50de20, + 0x1cec8: 0x6d1c5c20, 0x1cec9: 0x6c50f420, 0x1ceca: 0x6d173820, 0x1cecb: 0x6c0e6020, + 0x1cecc: 0x6cecfc20, 0x1cecd: 0x6c50f620, 0x1cece: 0x6c021620, 0x1cecf: 0x6d2de220, + 0x1ced0: 0x6d0c8020, 0x1ced1: 0x6c647e20, 0x1ced2: 0x6c510e20, 0x1ced3: 0x6d208820, + 0x1ced4: 0x6c7c3a20, 0x1ced5: 0x6c394620, 0x1ced6: 0x6c413220, 0x1ced7: 0x6c2a1220, + 0x1ced8: 0x6cac5620, 0x1ced9: 0x6c3f6620, 0x1ceda: 0x6cc06820, 0x1cedb: 0x6cd15e20, + 0x1cedc: 0x6c2a1620, 0x1cedd: 0x6c926a20, 0x1cede: 0x6d2df820, 0x1cedf: 0x6c9b2220, + 0x1cee0: 0x6c841c20, 0x1cee1: 0x6c6ca220, 0x1cee2: 0x6d071220, 0x1cee3: 0x6c64ca20, + 0x1cee4: 0x6cac6a20, 0x1cee5: 0x6c49a620, 0x1cee6: 0x6c014e20, 0x1cee7: 0x6c915c20, + 0x1cee8: 0x6d065e20, 0x1cee9: 0x6d38b420, 0x1ceea: 0x6c299620, 0x1ceeb: 0x6c015620, + 0x1ceec: 0x6c47e420, 0x1ceed: 0x6c872a20, 0x1ceee: 0x6ca26420, 0x1ceef: 0x6c2f5020, + 0x1cef0: 0x6c421020, 0x1cef1: 0x6d057420, 0x1cef2: 0x6c983a20, 0x1cef3: 0x6cee4e20, + 0x1cef4: 0x6d344020, 0x1cef5: 0x6cb74a20, 0x1cef6: 0x6d25e020, 0x1cef7: 0x6ce49220, + 0x1cef8: 0x6cfd6420, 0x1cef9: 0x6c33ca20, 0x1cefa: 0x6d02ba20, 0x1cefb: 0x6cf86620, + 0x1cefc: 0x6cacae20, 0x1cefd: 0x6c3c2820, 0x1cefe: 0x6c33de20, 0x1ceff: 0x6c9f3c20, + // Block 0x73c, offset 0x1cf00 + 0x1cf00: 0x6c9fee20, 0x1cf01: 0x6cd12c20, 0x1cf02: 0x6cd34420, 0x1cf03: 0x6d278c20, + 0x1cf04: 0x6c9e0e20, 0x1cf05: 0x6cac3a20, 0x1cf06: 0x6c39cc20, 0x1cf07: 0x6c9e8a20, + 0x1cf08: 0x6c27c220, 0x1cf09: 0x6c99e020, 0x1cf0a: 0x6c995820, 0x1cf0b: 0x6c770420, + 0x1cf0c: 0x6cfc9020, 0x1cf0d: 0x6c79ba20, 0x1cf0e: 0x6cd35620, 0x1cf0f: 0x6d0f5420, + 0x1cf10: 0x6d32a220, 0x1cf11: 0x6d119c20, 0x1cf12: 0x6ccfce20, 0x1cf13: 0x6c5dae20, + 0x1cf14: 0x6c26ec20, 0x1cf15: 0x6d31cc20, 0x1cf16: 0x6c7bee20, 0x1cf17: 0x6c706e20, + 0x1cf18: 0x6cd09a20, 0x1cf19: 0x6d14d020, 0x1cf1a: 0x6cd12e20, 0x1cf1b: 0x6c9a8a20, + 0x1cf1c: 0x6ca0f420, 0x1cf1d: 0x6d3ad620, 0x1cf1e: 0x6d313c20, 0x1cf1f: 0x6d313e20, + 0x1cf20: 0x6c9dbc20, 0x1cf21: 0x6cd35820, 0x1cf22: 0x6d24d620, 0x1cf23: 0x6c2e8a20, + 0x1cf24: 0x6ca69020, 0x1cf25: 0x6d3f4620, 0x1cf26: 0x6d3f4820, 0x1cf27: 0x6c179620, + 0x1cf28: 0x6d2c7620, 0x1cf29: 0x6d087e20, 0x1cf2a: 0x6c0dda20, 0x1cf2b: 0x6c9cea20, + 0x1cf2c: 0x6c8f7e20, 0x1cf2d: 0x6cdbc220, 0x1cf2e: 0x6ce73e20, 0x1cf2f: 0x6c9c3020, + 0x1cf30: 0x6c2f3620, 0x1cf31: 0x6c2c4620, 0x1cf32: 0x6ca54c20, 0x1cf33: 0x6c9ff820, + 0x1cf34: 0x6d088c20, 0x1cf35: 0x6c1aaa20, 0x1cf36: 0x6c7bf420, 0x1cf37: 0x6c735a20, + 0x1cf38: 0x6ca1ce20, 0x1cf39: 0x6d323a20, 0x1cf3a: 0x6ce5d220, 0x1cf3b: 0x6d0fac20, + 0x1cf3c: 0x6d0d6c20, 0x1cf3d: 0x6ca10620, 0x1cf3e: 0x6d382620, 0x1cf3f: 0x6ca0f620, + // Block 0x73d, offset 0x1cf40 + 0x1cf40: 0x6d311220, 0x1cf41: 0x6d32b620, 0x1cf42: 0x6c9a0220, 0x1cf43: 0x6cdd1e20, + 0x1cf44: 0x6cceda20, 0x1cf45: 0x6c4ec820, 0x1cf46: 0x6c592820, 0x1cf47: 0x6c2c5c20, + 0x1cf48: 0x6c1a7620, 0x1cf49: 0x6c25e020, 0x1cf4a: 0x6c736420, 0x1cf4b: 0x6c356820, + 0x1cf4c: 0x6c97bc20, 0x1cf4d: 0x6cfcc420, 0x1cf4e: 0x6cf61e20, 0x1cf4f: 0x6c7dd420, + 0x1cf50: 0x6c7f4820, 0x1cf51: 0x6c659820, 0x1cf52: 0x6ccd4e20, 0x1cf53: 0x6ce50420, + 0x1cf54: 0x6c4bfc20, 0x1cf55: 0x6ced2c20, 0x1cf56: 0x6c839820, 0x1cf57: 0x6cd39c20, + 0x1cf58: 0x6cbf4020, 0x1cf59: 0x6c8b1820, 0x1cf5a: 0x6d0b3020, 0x1cf5b: 0x6c6ec820, + 0x1cf5c: 0x6d32d420, 0x1cf5d: 0x6c83ea20, 0x1cf5e: 0x6c7f4a20, 0x1cf5f: 0x6cdc4c20, + 0x1cf60: 0x6c737420, 0x1cf61: 0x6cd72820, 0x1cf62: 0x6cdbca20, 0x1cf63: 0x6c317420, + 0x1cf64: 0x6c09d420, 0x1cf65: 0x6cb0a620, 0x1cf66: 0x6ca29c20, 0x1cf67: 0x6c5cd420, + 0x1cf68: 0x6ca6ae20, 0x1cf69: 0x6c926c20, 0x1cf6a: 0x6d17f220, 0x1cf6b: 0x6c6aec20, + 0x1cf6c: 0x6c113620, 0x1cf6d: 0x6d38ea20, 0x1cf6e: 0x6d217220, 0x1cf6f: 0x6c5cd620, + 0x1cf70: 0x6c96c620, 0x1cf71: 0x6cfa4420, 0x1cf72: 0x6d040420, 0x1cf73: 0x6c5ada20, + 0x1cf74: 0x6c4c0220, 0x1cf75: 0x6d290a20, 0x1cf76: 0x6c218620, 0x1cf77: 0x6c64ba20, + 0x1cf78: 0x6c9a9e20, 0x1cf79: 0x6c322620, 0x1cf7a: 0x6c541e20, 0x1cf7b: 0x6d07b420, + 0x1cf7c: 0x6ce53c20, 0x1cf7d: 0x6c7c9220, 0x1cf7e: 0x6c42ce20, 0x1cf7f: 0x6cc8da20, + // Block 0x73e, offset 0x1cf80 + 0x1cf80: 0x6c99a020, 0x1cf81: 0x6d071420, 0x1cf82: 0x6c381e20, 0x1cf83: 0x6cf30820, + 0x1cf84: 0x6c9e7820, 0x1cf85: 0x6c1e2e20, 0x1cf86: 0x6c7d0620, 0x1cf87: 0x6c9c3220, + 0x1cf88: 0x6cf25e20, 0x1cf89: 0x6c7a0020, 0x1cf8a: 0x6c298420, 0x1cf8b: 0x6c188220, + 0x1cf8c: 0x6c782420, 0x1cf8d: 0x6cda2420, 0x1cf8e: 0x6cf97620, 0x1cf8f: 0x6cbf5020, + 0x1cf90: 0x6ca15420, 0x1cf91: 0x6ca01620, 0x1cf92: 0x6c977220, 0x1cf93: 0x6cd72c20, + 0x1cf94: 0x6d2b0420, 0x1cf95: 0x6d2f4420, 0x1cf96: 0x6d18a620, 0x1cf97: 0x6c2dde20, + 0x1cf98: 0x6c79c420, 0x1cf99: 0x6ca15620, 0x1cf9a: 0x6cd75c20, 0x1cf9b: 0x6c235620, + 0x1cf9c: 0x6c907820, 0x1cf9d: 0x6c1ad020, 0x1cf9e: 0x6c977820, 0x1cf9f: 0x6cb19a20, + 0x1cfa0: 0x6c199420, 0x1cfa1: 0x6c4b1a20, 0x1cfa2: 0x6c9b3a20, 0x1cfa3: 0x6c596c20, + 0x1cfa4: 0x6cc8f220, 0x1cfa5: 0x6cb1d420, 0x1cfa6: 0x6cf6f020, 0x1cfa7: 0x6cbc0220, + 0x1cfa8: 0x6cb45a20, 0x1cfa9: 0x6d3a8420, 0x1cfaa: 0x6c2aea20, 0x1cfab: 0x6cd07e20, + 0x1cfac: 0x6cd76020, 0x1cfad: 0x6c8a7c20, 0x1cfae: 0x6c185020, 0x1cfaf: 0x6cfbac20, + 0x1cfb0: 0x6c771220, 0x1cfb1: 0x6d132a20, 0x1cfb2: 0x6d074820, 0x1cfb3: 0x6ce79220, + 0x1cfb4: 0x6ca1ea20, 0x1cfb5: 0x6c8be620, 0x1cfb6: 0x6c4b7e20, 0x1cfb7: 0x6c66e020, + 0x1cfb8: 0x6d136420, 0x1cfb9: 0x6c00f420, 0x1cfba: 0x6c5c6a20, 0x1cfbb: 0x6d2dac20, + 0x1cfbc: 0x6c65f220, 0x1cfbd: 0x6c47e620, 0x1cfbe: 0x6d2fea20, 0x1cfbf: 0x6cc1e420, + // Block 0x73f, offset 0x1cfc0 + 0x1cfc0: 0x6c9a3420, 0x1cfc1: 0x6c1e3620, 0x1cfc2: 0x6ccb0620, 0x1cfc3: 0x6ca94c20, + 0x1cfc4: 0x6d09c020, 0x1cfc5: 0x6d123e20, 0x1cfc6: 0x6c5e1820, 0x1cfc7: 0x6c9b7020, + 0x1cfc8: 0x6c9de620, 0x1cfc9: 0x6cb22020, 0x1cfca: 0x6c9de820, 0x1cfcb: 0x6c870220, + 0x1cfcc: 0x6c7c1420, 0x1cfcd: 0x6c750020, 0x1cfce: 0x6d07e220, 0x1cfcf: 0x6c9dee20, + 0x1cfd0: 0x6c5e4a20, 0x1cfd1: 0x6c919220, 0x1cfd2: 0x6c9b8e20, 0x1cfd3: 0x6c8fe420, + 0x1cfd4: 0x6c49bc20, 0x1cfd5: 0x6c97d620, 0x1cfd6: 0x6cf82e20, 0x1cfd7: 0x6c1f9020, + 0x1cfd8: 0x6ce19620, 0x1cfd9: 0x6c771c20, 0x1cfda: 0x6d3a9620, 0x1cfdb: 0x6c98c220, + 0x1cfdc: 0x6c6c3220, 0x1cfdd: 0x6c8ba620, 0x1cfde: 0x6d234a20, 0x1cfdf: 0x6cd78420, + 0x1cfe0: 0x6d2ad220, 0x1cfe1: 0x6c752c20, 0x1cfe2: 0x6cd2a820, 0x1cfe3: 0x6d15c020, + 0x1cfe4: 0x6cd04820, 0x1cfe5: 0x6d339c20, 0x1cfe6: 0x6c53f020, 0x1cfe7: 0x6cd04e20, + 0x1cfe8: 0x6d1ce020, 0x1cfe9: 0x6c72d420, 0x1cfea: 0x6d387820, 0x1cfeb: 0x6c68e820, + 0x1cfec: 0x6c25e220, 0x1cfed: 0x6c32ae20, 0x1cfee: 0x6c006820, 0x1cfef: 0x6c695020, + 0x1cff0: 0x6d2b9820, 0x1cff1: 0x6d265c20, 0x1cff2: 0x6c03ce20, 0x1cff3: 0x6cd22c20, + 0x1cff4: 0x6c2f9420, 0x1cff5: 0x6cb73a20, 0x1cff6: 0x6c5e8620, 0x1cff7: 0x6d3eee20, + 0x1cff8: 0x6c417c20, 0x1cff9: 0x6cf4ba20, 0x1cffa: 0x6d302020, 0x1cffb: 0x6c7a2a20, + 0x1cffc: 0x6c426420, 0x1cffd: 0x6cf84c20, 0x1cffe: 0x6c388820, 0x1cfff: 0x6c7be620, + // Block 0x740, offset 0x1d000 + 0x1d000: 0x6c295820, 0x1d001: 0x6c969220, 0x1d002: 0x6ccbd220, 0x1d003: 0x6c27c420, + 0x1d004: 0x6c740220, 0x1d005: 0x6c85ac20, 0x1d006: 0x6c3d4e20, 0x1d007: 0x6c9f3e20, + 0x1d008: 0x6c35b020, 0x1d009: 0x6c5da620, 0x1d00a: 0x6c772820, 0x1d00b: 0x6d350620, + 0x1d00c: 0x6cb75c20, 0x1d00d: 0x6c76c420, 0x1d00e: 0x6c6bd020, 0x1d00f: 0x6c0d2a20, + 0x1d010: 0x6c35e020, 0x1d011: 0x6d0b8820, 0x1d012: 0x6caf4e20, 0x1d013: 0x6d302420, + 0x1d014: 0x6d0c7820, 0x1d015: 0x6cdc2a20, 0x1d016: 0x6d3b7820, 0x1d017: 0x6c17d220, + 0x1d018: 0x6c33e020, 0x1d019: 0x6cac3c20, 0x1d01a: 0x6d0e4a20, 0x1d01b: 0x6c6d7e20, + 0x1d01c: 0x6c3c2a20, 0x1d01d: 0x6c381020, 0x1d01e: 0x6ca0f820, 0x1d01f: 0x6d2c7820, + 0x1d020: 0x6c707020, 0x1d021: 0x6d22f620, 0x1d022: 0x6c77f020, 0x1d023: 0x6ceb0a20, + 0x1d024: 0x6ceb0c20, 0x1d025: 0x6c2bec20, 0x1d026: 0x6d2d3c20, 0x1d027: 0x6d314220, + 0x1d028: 0x6c35fc20, 0x1d029: 0x6c3e3820, 0x1d02a: 0x6ca23e20, 0x1d02b: 0x6d3ad820, + 0x1d02c: 0x6c7e5c20, 0x1d02d: 0x6c0aee20, 0x1d02e: 0x6caa5620, 0x1d02f: 0x6cb25220, + 0x1d030: 0x6cae6020, 0x1d031: 0x6c8cce20, 0x1d032: 0x6cad8a20, 0x1d033: 0x6c821e20, + 0x1d034: 0x6cb37c20, 0x1d035: 0x6c0e6220, 0x1d036: 0x6cb37e20, 0x1d037: 0x6ccfd020, + 0x1d038: 0x6d28b020, 0x1d039: 0x6c009820, 0x1d03a: 0x6c85d620, 0x1d03b: 0x6c8f8020, + 0x1d03c: 0x6ce73a20, 0x1d03d: 0x6d1e8420, 0x1d03e: 0x6c85d820, 0x1d03f: 0x6c7c2a20, + // Block 0x741, offset 0x1d040 + 0x1d040: 0x6c1ed820, 0x1d041: 0x6c793620, 0x1d042: 0x6cc2e420, 0x1d043: 0x6d399c20, + 0x1d044: 0x6c7b9c20, 0x1d045: 0x6c4a5a20, 0x1d046: 0x6c361420, 0x1d047: 0x6ca4a620, + 0x1d048: 0x6cb86420, 0x1d049: 0x6c924420, 0x1d04a: 0x6cefb220, 0x1d04b: 0x6c009a20, + 0x1d04c: 0x6c448420, 0x1d04d: 0x6cfcb620, 0x1d04e: 0x6d03e220, 0x1d04f: 0x6d0c8a20, + 0x1d050: 0x6c307420, 0x1d051: 0x6cae6c20, 0x1d052: 0x6cf5fc20, 0x1d053: 0x6c81f220, + 0x1d054: 0x6c533c20, 0x1d055: 0x6cd78020, 0x1d056: 0x6cf9b020, 0x1d057: 0x6cbb7020, + 0x1d058: 0x6cbeea20, 0x1d059: 0x6cef0220, 0x1d05a: 0x6cbbdc20, 0x1d05b: 0x6d176820, + 0x1d05c: 0x6c793e20, 0x1d05d: 0x6cfec620, 0x1d05e: 0x6cc3c220, 0x1d05f: 0x6c162a20, + 0x1d060: 0x6c80c820, 0x1d061: 0x6c52ac20, 0x1d062: 0x6d213020, 0x1d063: 0x6cfec820, + 0x1d064: 0x6cf9c620, 0x1d065: 0x6c988e20, 0x1d066: 0x6c960220, 0x1d067: 0x6d1e3c20, + 0x1d068: 0x6c17dc20, 0x1d069: 0x6c182220, 0x1d06a: 0x6cf2f620, 0x1d06b: 0x6c8e5c20, + 0x1d06c: 0x6d1d3c20, 0x1d06d: 0x6c985a20, 0x1d06e: 0x6cc3c420, 0x1d06f: 0x6d0e7820, + 0x1d070: 0x6ccbf620, 0x1d071: 0x6c7dac20, 0x1d072: 0x6d234c20, 0x1d073: 0x6c1c2420, + 0x1d074: 0x6c57de20, 0x1d075: 0x6c91be20, 0x1d076: 0x6c190420, 0x1d077: 0x6c659a20, + 0x1d078: 0x6caaa820, 0x1d079: 0x6cd92620, 0x1d07a: 0x6d3d6e20, 0x1d07b: 0x6c794620, + 0x1d07c: 0x6caeaa20, 0x1d07d: 0x6d0c1420, 0x1d07e: 0x6d3c9220, 0x1d07f: 0x6c797e20, + // Block 0x742, offset 0x1d080 + 0x1d080: 0x6c19ec20, 0x1d081: 0x6cb5fc20, 0x1d082: 0x6d402220, 0x1d083: 0x6cbecc20, + 0x1d084: 0x6c8bbc20, 0x1d085: 0x6c757420, 0x1d086: 0x6c0e7e20, 0x1d087: 0x6c2fac20, + 0x1d088: 0x6c9f6420, 0x1d089: 0x6c2dce20, 0x1d08a: 0x6c64bc20, 0x1d08b: 0x6c51d020, + 0x1d08c: 0x6c926e20, 0x1d08d: 0x6c00ac20, 0x1d08e: 0x6cdc4e20, 0x1d08f: 0x6cc3d220, + 0x1d090: 0x6c837c20, 0x1d091: 0x6c06b020, 0x1d092: 0x6d1a7420, 0x1d093: 0x6c334c20, + 0x1d094: 0x6cf45220, 0x1d095: 0x6cb5fe20, 0x1d096: 0x6c951820, 0x1d097: 0x6ced2e20, + 0x1d098: 0x6c2d2020, 0x1d099: 0x6ca4b220, 0x1d09a: 0x6c073420, 0x1d09b: 0x6cb7a420, + 0x1d09c: 0x6c190620, 0x1d09d: 0x6cc87020, 0x1d09e: 0x6d0cb620, 0x1d09f: 0x6c2ed220, + 0x1d0a0: 0x6c2fb020, 0x1d0a1: 0x6c31a820, 0x1d0a2: 0x6ceb2e20, 0x1d0a3: 0x6c6b0c20, + 0x1d0a4: 0x6d1bc620, 0x1d0a5: 0x6c0b4420, 0x1d0a6: 0x6c78c620, 0x1d0a7: 0x6c0a0220, + 0x1d0a8: 0x6cf0b020, 0x1d0a9: 0x6cd79220, 0x1d0aa: 0x6d318220, 0x1d0ab: 0x6c32d420, + 0x1d0ac: 0x6cf9de20, 0x1d0ad: 0x6c297a20, 0x1d0ae: 0x6ce35420, 0x1d0af: 0x6ca50c20, + 0x1d0b0: 0x6caf1420, 0x1d0b1: 0x6c65c420, 0x1d0b2: 0x6c2c8220, 0x1d0b3: 0x6ce0a220, + 0x1d0b4: 0x6c13f620, 0x1d0b5: 0x6ce54220, 0x1d0b6: 0x6cb7b420, 0x1d0b7: 0x6c341420, + 0x1d0b8: 0x6c3c5e20, 0x1d0b9: 0x6d08a420, 0x1d0ba: 0x6cc3f020, 0x1d0bb: 0x6cc3f220, + 0x1d0bc: 0x6c96a020, 0x1d0bd: 0x6c45a620, 0x1d0be: 0x6ca73820, 0x1d0bf: 0x6cdb0820, + // Block 0x743, offset 0x1d0c0 + 0x1d0c0: 0x6c357820, 0x1d0c1: 0x6c225420, 0x1d0c2: 0x6c8e8820, 0x1d0c3: 0x6cd81a20, + 0x1d0c4: 0x6ce12620, 0x1d0c5: 0x6c058820, 0x1d0c6: 0x6c574620, 0x1d0c7: 0x6caf8620, + 0x1d0c8: 0x6ceff420, 0x1d0c9: 0x6cca8820, 0x1d0ca: 0x6c82d220, 0x1d0cb: 0x6c25c420, + 0x1d0cc: 0x6ce4ba20, 0x1d0cd: 0x6cf9e620, 0x1d0ce: 0x6cf6aa20, 0x1d0cf: 0x6c883e20, + 0x1d0d0: 0x6cac7020, 0x1d0d1: 0x6cef3020, 0x1d0d2: 0x6d27fc20, 0x1d0d3: 0x6c330e20, + 0x1d0d4: 0x6d307e20, 0x1d0d5: 0x6c782620, 0x1d0d6: 0x6c7e6020, 0x1d0d7: 0x6d3b8c20, + 0x1d0d8: 0x6cbed820, 0x1d0d9: 0x6c4be420, 0x1d0da: 0x6d3b9220, 0x1d0db: 0x6c152620, + 0x1d0dc: 0x6cb7da20, 0x1d0dd: 0x6c026c20, 0x1d0de: 0x6cae8620, 0x1d0df: 0x6c8f4020, + 0x1d0e0: 0x6c91de20, 0x1d0e1: 0x6c771420, 0x1d0e2: 0x6c209a20, 0x1d0e3: 0x6c190e20, + 0x1d0e4: 0x6d1afe20, 0x1d0e5: 0x6c82d820, 0x1d0e6: 0x6c0c1e20, 0x1d0e7: 0x6cb7dc20, + 0x1d0e8: 0x6ca07c20, 0x1d0e9: 0x6cb7de20, 0x1d0ea: 0x6c24e820, 0x1d0eb: 0x6d3fc220, + 0x1d0ec: 0x6cbeda20, 0x1d0ed: 0x6c21da20, 0x1d0ee: 0x6c952a20, 0x1d0ef: 0x6c5f5420, + 0x1d0f0: 0x6ccdbe20, 0x1d0f1: 0x6c817c20, 0x1d0f2: 0x6cc1c020, 0x1d0f3: 0x6d2b9a20, + 0x1d0f4: 0x6c2aec20, 0x1d0f5: 0x6c66e220, 0x1d0f6: 0x6cf8f220, 0x1d0f7: 0x6c8be820, + 0x1d0f8: 0x6c2fbe20, 0x1d0f9: 0x6ce01e20, 0x1d0fa: 0x6c59fc20, 0x1d0fb: 0x6cac7620, + 0x1d0fc: 0x6d28ce20, 0x1d0fd: 0x6cbbb820, 0x1d0fe: 0x6c2b4820, 0x1d0ff: 0x6c86aa20, + // Block 0x744, offset 0x1d100 + 0x1d100: 0x6c673e20, 0x1d101: 0x6c688220, 0x1d102: 0x6cf94a20, 0x1d103: 0x6d2f0e20, + 0x1d104: 0x6cbc0420, 0x1d105: 0x6c33b620, 0x1d106: 0x6c65f420, 0x1d107: 0x6d241220, + 0x1d108: 0x6d3cb420, 0x1d109: 0x6c518420, 0x1d10a: 0x6c78e020, 0x1d10b: 0x6d2b1420, + 0x1d10c: 0x6c826a20, 0x1d10d: 0x6c787220, 0x1d10e: 0x6c1ef620, 0x1d10f: 0x6d137020, + 0x1d110: 0x6cc40c20, 0x1d111: 0x6c299a20, 0x1d112: 0x6d161e20, 0x1d113: 0x6c678e20, + 0x1d114: 0x6caf9e20, 0x1d115: 0x6cafa020, 0x1d116: 0x6d243020, 0x1d117: 0x6cb1f420, + 0x1d118: 0x6c36d020, 0x1d119: 0x6c00fe20, 0x1d11a: 0x6c783e20, 0x1d11b: 0x6c652220, + 0x1d11c: 0x6d243220, 0x1d11d: 0x6cc88e20, 0x1d11e: 0x6c9b7220, 0x1d11f: 0x6cada020, + 0x1d120: 0x6c227820, 0x1d121: 0x6c0f9020, 0x1d122: 0x6d107c20, 0x1d123: 0x6c96e420, + 0x1d124: 0x6c10e620, 0x1d125: 0x6cfbc820, 0x1d126: 0x6c7c1620, 0x1d127: 0x6c828020, + 0x1d128: 0x6c82fe20, 0x1d129: 0x6d375420, 0x1d12a: 0x6c870420, 0x1d12b: 0x6c872e20, + 0x1d12c: 0x6c38e420, 0x1d12d: 0x6cc41c20, 0x1d12e: 0x6cada620, 0x1d12f: 0x6d1c3020, + 0x1d130: 0x6c874a20, 0x1d131: 0x6c8fe620, 0x1d132: 0x6c8fe820, 0x1d133: 0x6ca19620, + 0x1d134: 0x6c0fc220, 0x1d135: 0x6cd6b420, 0x1d136: 0x6c49be20, 0x1d137: 0x6c800020, + 0x1d138: 0x6d298620, 0x1d139: 0x6d0d1820, 0x1d13a: 0x6cd2f420, 0x1d13b: 0x6cd2e620, + 0x1d13c: 0x6c84f420, 0x1d13d: 0x6cc61c20, 0x1d13e: 0x6ccf3620, 0x1d13f: 0x6d268020, + // Block 0x745, offset 0x1d140 + 0x1d140: 0x6cd88420, 0x1d141: 0x6cb56820, 0x1d142: 0x6cdde220, 0x1d143: 0x6c96b420, + 0x1d144: 0x6d016420, 0x1d145: 0x6d109420, 0x1d146: 0x6cfa8020, 0x1d147: 0x6cb58820, + 0x1d148: 0x6cb58a20, 0x1d149: 0x6d34f820, 0x1d14a: 0x6c07d820, 0x1d14b: 0x6c333a20, + 0x1d14c: 0x6d381820, 0x1d14d: 0x6cc5d620, 0x1d14e: 0x6d13cc20, 0x1d14f: 0x6cd25420, + 0x1d150: 0x6d203020, 0x1d151: 0x6d35a820, 0x1d152: 0x6ce57a20, 0x1d153: 0x6c3e1e20, + 0x1d154: 0x6c3fc420, 0x1d155: 0x6c9d2e20, 0x1d156: 0x6d411420, 0x1d157: 0x6d33ac20, + 0x1d158: 0x6cdb9620, 0x1d159: 0x6c9a8420, 0x1d15a: 0x6d428620, 0x1d15b: 0x6cc0ec20, + 0x1d15c: 0x6c567220, 0x1d15d: 0x6d3ac620, 0x1d15e: 0x6cd03a20, 0x1d15f: 0x6cdc3020, + 0x1d160: 0x6c223020, 0x1d161: 0x6c147a20, 0x1d162: 0x6c9c3e20, 0x1d163: 0x6c939020, + 0x1d164: 0x6d223e20, 0x1d165: 0x6cfdbc20, 0x1d166: 0x6cf3c620, 0x1d167: 0x6ce55620, + 0x1d168: 0x6cb1ae20, 0x1d169: 0x6d3ada20, 0x1d16a: 0x6c4aec20, 0x1d16b: 0x6cf9ae20, + 0x1d16c: 0x6d33c820, 0x1d16d: 0x6c61f420, 0x1d16e: 0x6c434620, 0x1d16f: 0x6d314420, + 0x1d170: 0x6c434820, 0x1d171: 0x6cd71e20, 0x1d172: 0x6c6d0620, 0x1d173: 0x6cd0a020, + 0x1d174: 0x6c40f620, 0x1d175: 0x6c7daa20, 0x1d176: 0x6c2c4820, 0x1d177: 0x6c29d820, + 0x1d178: 0x6c5dc620, 0x1d179: 0x6ce22820, 0x1d17a: 0x6cb5ee20, 0x1d17b: 0x6c481620, + 0x1d17c: 0x6c498a20, 0x1d17d: 0x6d41b420, 0x1d17e: 0x6c8d0820, 0x1d17f: 0x6c925a20, + // Block 0x746, offset 0x1d180 + 0x1d180: 0x6c0de820, 0x1d181: 0x6c6d1a20, 0x1d182: 0x6c29da20, 0x1d183: 0x6d346620, + 0x1d184: 0x6c925820, 0x1d185: 0x6c14f820, 0x1d186: 0x6c06a620, 0x1d187: 0x6d30d820, + 0x1d188: 0x6c5aca20, 0x1d189: 0x6d1fd620, 0x1d18a: 0x6cf8a220, 0x1d18b: 0x6d19ee20, + 0x1d18c: 0x6d3e5420, 0x1d18d: 0x6c5dd420, 0x1d18e: 0x6d316e20, 0x1d18f: 0x6c3e9c20, + 0x1d190: 0x6d262420, 0x1d191: 0x6cf3d020, 0x1d192: 0x6cfc1820, 0x1d193: 0x6d0fca20, + 0x1d194: 0x6d33f420, 0x1d195: 0x6d13fc20, 0x1d196: 0x6c9a1220, 0x1d197: 0x6cd7f820, + 0x1d198: 0x6c2c6c20, 0x1d199: 0x6c077a20, 0x1d19a: 0x6d3d8220, 0x1d19b: 0x6d318420, + 0x1d19c: 0x6d1e5620, 0x1d19d: 0x6c606c20, 0x1d19e: 0x6c435220, 0x1d19f: 0x6ce11a20, + 0x1d1a0: 0x6cd80420, 0x1d1a1: 0x6c96d020, 0x1d1a2: 0x6cde7820, 0x1d1a3: 0x6c40b620, + 0x1d1a4: 0x6d07bc20, 0x1d1a5: 0x6cb63c20, 0x1d1a6: 0x6d241420, 0x1d1a7: 0x6cf81220, + 0x1d1a8: 0x6c5f3a20, 0x1d1a9: 0x6cd8e020, 0x1d1aa: 0x6c152820, 0x1d1ab: 0x6c28b420, + 0x1d1ac: 0x6c4b8020, 0x1d1ad: 0x6cdc7820, 0x1d1ae: 0x6c853820, 0x1d1af: 0x6ca9d020, + 0x1d1b0: 0x6c9c8a20, 0x1d1b1: 0x6c29f820, 0x1d1b2: 0x6c86d620, 0x1d1b3: 0x6cc4ee20, + 0x1d1b4: 0x6d271620, 0x1d1b5: 0x6ce3b420, 0x1d1b6: 0x6d29c220, 0x1d1b7: 0x6c836420, + 0x1d1b8: 0x6cc74020, 0x1d1b9: 0x6d222e20, 0x1d1ba: 0x6d20dc20, 0x1d1bb: 0x6c83ae20, + 0x1d1bc: 0x6d019820, 0x1d1bd: 0x6cbd7620, 0x1d1be: 0x6c50b220, 0x1d1bf: 0x6ce83c20, + // Block 0x747, offset 0x1d1c0 + 0x1d1c0: 0x6d052c20, 0x1d1c1: 0x6cd7c620, 0x1d1c2: 0x6cc56c20, 0x1d1c3: 0x6ce83e20, + 0x1d1c4: 0x6d3ef020, 0x1d1c5: 0x6c13c820, 0x1d1c6: 0x6c41cc20, 0x1d1c7: 0x6d16cc20, + 0x1d1c8: 0x6cfa8220, 0x1d1c9: 0x6c0dc620, 0x1d1ca: 0x6ca6f620, 0x1d1cb: 0x6cbfa620, + 0x1d1cc: 0x6cbfa820, 0x1d1cd: 0x6d37e820, 0x1d1ce: 0x6c3bd420, 0x1d1cf: 0x6c502220, + 0x1d1d0: 0x6d279020, 0x1d1d1: 0x6c77e620, 0x1d1d2: 0x6c9e8c20, 0x1d1d3: 0x6d33ae20, + 0x1d1d4: 0x6c6d9820, 0x1d1d5: 0x6c08c820, 0x1d1d6: 0x6d33b020, 0x1d1d7: 0x6d22e620, + 0x1d1d8: 0x6c9d3420, 0x1d1d9: 0x6c7a8a20, 0x1d1da: 0x6c04f420, 0x1d1db: 0x6caf5620, + 0x1d1dc: 0x6ca5ce20, 0x1d1dd: 0x6c85da20, 0x1d1de: 0x6d1f1a20, 0x1d1df: 0x6d409a20, + 0x1d1e0: 0x6caf5820, 0x1d1e1: 0x6c0edc20, 0x1d1e2: 0x6c8cd020, 0x1d1e3: 0x6ca0fc20, + 0x1d1e4: 0x6c1a8020, 0x1d1e5: 0x6ca6fe20, 0x1d1e6: 0x6cbd6620, 0x1d1e7: 0x6d0f5620, + 0x1d1e8: 0x6d423220, 0x1d1e9: 0x6d35c420, 0x1d1ea: 0x6d33ca20, 0x1d1eb: 0x6cd52420, + 0x1d1ec: 0x6c721a20, 0x1d1ed: 0x6d3ef620, 0x1d1ee: 0x6c5d7220, 0x1d1ef: 0x6c5ea820, + 0x1d1f0: 0x6c196220, 0x1d1f1: 0x6ce74220, 0x1d1f2: 0x6d35f820, 0x1d1f3: 0x6c5d7620, + 0x1d1f4: 0x6c511220, 0x1d1f5: 0x6d19ce20, 0x1d1f6: 0x6d3e2620, 0x1d1f7: 0x6d35fa20, + 0x1d1f8: 0x6c6a0220, 0x1d1f9: 0x6cc59420, 0x1d1fa: 0x6c325020, 0x1d1fb: 0x6d14e820, + 0x1d1fc: 0x6d399e20, 0x1d1fd: 0x6c5bb820, 0x1d1fe: 0x6ca9ba20, 0x1d1ff: 0x6c3ff420, + // Block 0x748, offset 0x1d200 + 0x1d200: 0x6cf62020, 0x1d201: 0x6c77aa20, 0x1d202: 0x6c80ca20, 0x1d203: 0x6c3d7420, + 0x1d204: 0x6d0a9020, 0x1d205: 0x6cd72020, 0x1d206: 0x6c939420, 0x1d207: 0x6c7dae20, + 0x1d208: 0x6c41da20, 0x1d209: 0x6c6db820, 0x1d20a: 0x6ce32e20, 0x1d20b: 0x6c1a0c20, + 0x1d20c: 0x6ce8b420, 0x1d20d: 0x6cce7020, 0x1d20e: 0x6cd72220, 0x1d20f: 0x6d0bc020, + 0x1d210: 0x6c951a20, 0x1d211: 0x6c927020, 0x1d212: 0x6c481c20, 0x1d213: 0x6d424420, + 0x1d214: 0x6cc59a20, 0x1d215: 0x6d3ce620, 0x1d216: 0x6c057c20, 0x1d217: 0x6c044a20, + 0x1d218: 0x6c5eec20, 0x1d219: 0x6d33f620, 0x1d21a: 0x6d366020, 0x1d21b: 0x6c7db420, + 0x1d21c: 0x6c837e20, 0x1d21d: 0x6caeac20, 0x1d21e: 0x6c780a20, 0x1d21f: 0x6c0dea20, + 0x1d220: 0x6c1dbe20, 0x1d221: 0x6d41b620, 0x1d222: 0x6d237420, 0x1d223: 0x6cda5220, + 0x1d224: 0x6c94ae20, 0x1d225: 0x6cfd8020, 0x1d226: 0x6d140620, 0x1d227: 0x6cf8b620, + 0x1d228: 0x6c0b4620, 0x1d229: 0x6c624820, 0x1d22a: 0x6c3ec420, 0x1d22b: 0x6cb0b020, + 0x1d22c: 0x6cab0820, 0x1d22d: 0x6c6a2c20, 0x1d22e: 0x6d380420, 0x1d22f: 0x6d3fa820, + 0x1d230: 0x6d064e20, 0x1d231: 0x6c197e20, 0x1d232: 0x6c2a2220, 0x1d233: 0x6cf1e820, + 0x1d234: 0x6cfb8220, 0x1d235: 0x6d3e6820, 0x1d236: 0x6d23c820, 0x1d237: 0x6c626420, + 0x1d238: 0x6d072e20, 0x1d239: 0x6d31f420, 0x1d23a: 0x6d36b820, 0x1d23b: 0x6c2a2a20, + 0x1d23c: 0x6c645420, 0x1d23d: 0x6c5f1820, 0x1d23e: 0x6c431820, 0x1d23f: 0x6c431a20, + // Block 0x749, offset 0x1d240 + 0x1d240: 0x6c47c420, 0x1d241: 0x6cc6a020, 0x1d242: 0x6cdc6020, 0x1d243: 0x6cc73c20, + 0x1d244: 0x6c627a20, 0x1d245: 0x6c775220, 0x1d246: 0x6ca2ac20, 0x1d247: 0x6c11dc20, + 0x1d248: 0x6c9a2620, 0x1d249: 0x6d370c20, 0x1d24a: 0x6c624a20, 0x1d24b: 0x6c92d620, + 0x1d24c: 0x6cda5a20, 0x1d24d: 0x6c5f3c20, 0x1d24e: 0x6d1d0c20, 0x1d24f: 0x6cf1f020, + 0x1d250: 0x6cbfc420, 0x1d251: 0x6ccb6020, 0x1d252: 0x6c51e620, 0x1d253: 0x6d18aa20, + 0x1d254: 0x6c59fe20, 0x1d255: 0x6cbce620, 0x1d256: 0x6c615620, 0x1d257: 0x6cdc8820, + 0x1d258: 0x6cff2020, 0x1d259: 0x6cb45e20, 0x1d25a: 0x6c688420, 0x1d25b: 0x6d3d0c20, + 0x1d25c: 0x6d380c20, 0x1d25d: 0x6d41e620, 0x1d25e: 0x6c93ba20, 0x1d25f: 0x6cdc8c20, + 0x1d260: 0x6ca9d420, 0x1d261: 0x6ccb7820, 0x1d262: 0x6c5c6c20, 0x1d263: 0x6cc4de20, + 0x1d264: 0x6cab1e20, 0x1d265: 0x6d243420, 0x1d266: 0x6cb1f820, 0x1d267: 0x6c62bc20, + 0x1d268: 0x6ce9ce20, 0x1d269: 0x6cf1f420, 0x1d26a: 0x6c199e20, 0x1d26b: 0x6c5e1a20, + 0x1d26c: 0x6c7c1820, 0x1d26d: 0x6c93c020, 0x1d26e: 0x6c0c4c20, 0x1d26f: 0x6ccba820, + 0x1d270: 0x6cc4f420, 0x1d271: 0x6d3d1620, 0x1d272: 0x6c84d420, 0x1d273: 0x6c24aa20, + 0x1d274: 0x6d08f220, 0x1d275: 0x6cebc420, 0x1d276: 0x6c6f5620, 0x1d277: 0x6cbefa20, + 0x1d278: 0x6cf59020, 0x1d279: 0x6cbefe20, 0x1d27a: 0x6c796820, 0x1d27b: 0x6d207a20, + 0x1d27c: 0x6ccfc020, 0x1d27d: 0x6c6e1a20, 0x1d27e: 0x6d11f220, 0x1d27f: 0x6c1fe020, + // Block 0x74a, offset 0x1d280 + 0x1d280: 0x6d3cce20, 0x1d281: 0x6ce84420, 0x1d282: 0x6c814620, 0x1d283: 0x6cbca020, + 0x1d284: 0x6d2d2820, 0x1d285: 0x6d11a020, 0x1d286: 0x6c0b3020, 0x1d287: 0x6c05c420, + 0x1d288: 0x6d11a220, 0x1d289: 0x6c0ddc20, 0x1d28a: 0x6cebd420, 0x1d28b: 0x6d3a0820, + 0x1d28c: 0x6c699020, 0x1d28d: 0x6cbc3a20, 0x1d28e: 0x6c2e1020, 0x1d28f: 0x6cf36620, + 0x1d290: 0x6c4a5e20, 0x1d291: 0x6d10ea20, 0x1d292: 0x6d35fc20, 0x1d293: 0x6c205020, + 0x1d294: 0x6d120220, 0x1d295: 0x6ce5c220, 0x1d296: 0x6c69a020, 0x1d297: 0x6c205220, + 0x1d298: 0x6c6f1220, 0x1d299: 0x6cfeca20, 0x1d29a: 0x6c19f020, 0x1d29b: 0x6c79ec20, + 0x1d29c: 0x6c24ac20, 0x1d29d: 0x6cf29420, 0x1d29e: 0x6c289420, 0x1d29f: 0x6c7a4a20, + 0x1d2a0: 0x6c780c20, 0x1d2a1: 0x6d3d7020, 0x1d2a2: 0x6d05b420, 0x1d2a3: 0x6cda5420, + 0x1d2a4: 0x6c491c20, 0x1d2a5: 0x6c7c3e20, 0x1d2a6: 0x6c312420, 0x1d2a7: 0x6d3dfa20, + 0x1d2a8: 0x6d09a020, 0x1d2a9: 0x6cf29620, 0x1d2aa: 0x6cebea20, 0x1d2ab: 0x6d0bc620, + 0x1d2ac: 0x6d217820, 0x1d2ad: 0x6c726a20, 0x1d2ae: 0x6cbf5220, 0x1d2af: 0x6d113a20, + 0x1d2b0: 0x6d113c20, 0x1d2b1: 0x6ce5cc20, 0x1d2b2: 0x6c177820, 0x1d2b3: 0x6d228020, + 0x1d2b4: 0x6ce4bc20, 0x1d2b5: 0x6c2e3e20, 0x1d2b6: 0x6c729220, 0x1d2b7: 0x6c8aa820, + 0x1d2b8: 0x6cf6ce20, 0x1d2b9: 0x6cf52220, 0x1d2ba: 0x6c7c4420, 0x1d2bb: 0x6c206220, + 0x1d2bc: 0x6d2f7220, 0x1d2bd: 0x6c7b7c20, 0x1d2be: 0x6c7b7420, 0x1d2bf: 0x6c907420, + // Block 0x74b, offset 0x1d2c0 + 0x1d2c0: 0x6c199c20, 0x1d2c1: 0x6c256c20, 0x1d2c2: 0x6cb18420, 0x1d2c3: 0x6d2a9420, + 0x1d2c4: 0x6c24ba20, 0x1d2c5: 0x6cbc6820, 0x1d2c6: 0x6cbf7820, 0x1d2c7: 0x6c314c20, + 0x1d2c8: 0x6d2a9e20, 0x1d2c9: 0x6c904620, 0x1d2ca: 0x6cbd0a20, 0x1d2cb: 0x6c856c20, + 0x1d2cc: 0x6c1f0a20, 0x1d2cd: 0x6cd40c20, 0x1d2ce: 0x6c3fb820, 0x1d2cf: 0x6cba9220, + 0x1d2d0: 0x6c1f1c20, 0x1d2d1: 0x6c531820, 0x1d2d2: 0x6cb59820, 0x1d2d3: 0x6c508620, + 0x1d2d4: 0x6cd18420, 0x1d2d5: 0x6c3c0820, 0x1d2d6: 0x6cd5b220, 0x1d2d7: 0x6c9eb020, + 0x1d2d8: 0x6cc24020, 0x1d2d9: 0x6d2e5220, 0x1d2da: 0x6d3adc20, 0x1d2db: 0x6c8cd420, + 0x1d2dc: 0x6c8f8220, 0x1d2dd: 0x6c0e1620, 0x1d2de: 0x6c6e6a20, 0x1d2df: 0x6c6e7e20, + 0x1d2e0: 0x6d2eb620, 0x1d2e1: 0x6c046620, 0x1d2e2: 0x6cd8c220, 0x1d2e3: 0x6c75c020, + 0x1d2e4: 0x6c534e20, 0x1d2e5: 0x6ce74a20, 0x1d2e6: 0x6cd95a20, 0x1d2e7: 0x6c6e8820, + 0x1d2e8: 0x6c2e2e20, 0x1d2e9: 0x6d17f820, 0x1d2ea: 0x6cd5e820, 0x1d2eb: 0x6c6e7820, + 0x1d2ec: 0x6cc24c20, 0x1d2ed: 0x6c6b1020, 0x1d2ee: 0x6cb26020, 0x1d2ef: 0x6c329e20, + 0x1d2f0: 0x6ccea620, 0x1d2f1: 0x6d3bac20, 0x1d2f2: 0x6c136220, 0x1d2f3: 0x6c2ab020, + 0x1d2f4: 0x6c259e20, 0x1d2f5: 0x6cec5a20, 0x1d2f6: 0x6c6ec020, 0x1d2f7: 0x6c76fa20, + 0x1d2f8: 0x6c6ec420, 0x1d2f9: 0x6d39f020, 0x1d2fa: 0x6d39f620, 0x1d2fb: 0x6c821a20, + 0x1d2fc: 0x6cae9220, 0x1d2fd: 0x6d20e020, 0x1d2fe: 0x6c1b0e20, 0x1d2ff: 0x6c418820, + // Block 0x74c, offset 0x1d300 + 0x1d300: 0x6c984220, 0x1d301: 0x6d39fe20, 0x1d302: 0x6cedb820, 0x1d303: 0x6c321220, + 0x1d304: 0x6c5eac20, 0x1d305: 0x6cff7420, 0x1d306: 0x6c03f020, 0x1d307: 0x6cdb9820, + 0x1d308: 0x6c5ffc20, 0x1d309: 0x6cbdce20, 0x1d30a: 0x6d2faa20, 0x1d30b: 0x6cdce820, + 0x1d30c: 0x6d0b2020, 0x1d30d: 0x6d3c7e20, 0x1d30e: 0x6d255220, 0x1d30f: 0x6c568420, + 0x1d310: 0x6c4f6820, 0x1d311: 0x6cffe220, 0x1d312: 0x6c132e20, 0x1d313: 0x6c096c20, + 0x1d314: 0x6c08d020, 0x1d315: 0x6c658020, 0x1d316: 0x6d15de20, 0x1d317: 0x6c2ffc20, + 0x1d318: 0x6ccce220, 0x1d319: 0x6cd0fe20, 0x1d31a: 0x6c264820, 0x1d31b: 0x6c2b6c20, + 0x1d31c: 0x6d3a0e20, 0x1d31d: 0x6ca33420, 0x1d31e: 0x6c1aac20, 0x1d31f: 0x6c470620, + 0x1d320: 0x6c85f620, 0x1d321: 0x6cbcba20, 0x1d322: 0x6c9faa20, 0x1d323: 0x6c05ae20, + 0x1d324: 0x6ce58220, 0x1d325: 0x6cd8b620, 0x1d326: 0x6c3e5820, 0x1d327: 0x6c12de20, + 0x1d328: 0x6c07b420, 0x1d329: 0x6cae1a20, 0x1d32a: 0x6c26a020, 0x1d32b: 0x6d3f0620, + 0x1d32c: 0x6c2c4a20, 0x1d32d: 0x6c8cee20, 0x1d32e: 0x6d2ac420, 0x1d32f: 0x6caa4220, + 0x1d330: 0x6c3e5a20, 0x1d331: 0x6c467e20, 0x1d332: 0x6c389620, 0x1d333: 0x6c634e20, + 0x1d334: 0x6c41d820, 0x1d335: 0x6c394820, 0x1d336: 0x6cd2cc20, 0x1d337: 0x6c993820, + 0x1d338: 0x6cb35620, 0x1d339: 0x6ce45020, 0x1d33a: 0x6c648a20, 0x1d33b: 0x6cbf1820, + 0x1d33c: 0x6c8f8a20, 0x1d33d: 0x6c9fe420, 0x1d33e: 0x6c0af020, 0x1d33f: 0x6c960420, + // Block 0x74d, offset 0x1d340 + 0x1d340: 0x6c4b4c20, 0x1d341: 0x6cc10c20, 0x1d342: 0x6c1b2620, 0x1d343: 0x6d19e220, + 0x1d344: 0x6d120820, 0x1d345: 0x6cfc0e20, 0x1d346: 0x6c08e220, 0x1d347: 0x6cbf1a20, + 0x1d348: 0x6c7dfa20, 0x1d349: 0x6c2acc20, 0x1d34a: 0x6cff8c20, 0x1d34b: 0x6c6c4620, + 0x1d34c: 0x6cc2f420, 0x1d34d: 0x6cdcec20, 0x1d34e: 0x6cc7ae20, 0x1d34f: 0x6c381420, + 0x1d350: 0x6c7b9e20, 0x1d351: 0x6d3af620, 0x1d352: 0x6ce7b820, 0x1d353: 0x6c5ed820, + 0x1d354: 0x6c26a820, 0x1d355: 0x6c4f7a20, 0x1d356: 0x6c12ee20, 0x1d357: 0x6d383020, + 0x1d358: 0x6c79ee20, 0x1d359: 0x6c7f0e20, 0x1d35a: 0x6c09a820, 0x1d35b: 0x6ccc8a20, + 0x1d35c: 0x6c28fe20, 0x1d35d: 0x6d32c820, 0x1d35e: 0x6c12fa20, 0x1d35f: 0x6c3d7e20, + 0x1d360: 0x6d27b420, 0x1d361: 0x6ce8c620, 0x1d362: 0x6cabd820, 0x1d363: 0x6c83ec20, + 0x1d364: 0x6c80d020, 0x1d365: 0x6c71ba20, 0x1d366: 0x6c495820, 0x1d367: 0x6c65b020, + 0x1d368: 0x6c4e1e20, 0x1d369: 0x6ce75620, 0x1d36a: 0x6cf9d620, 0x1d36b: 0x6d366220, + 0x1d36c: 0x6c1a0e20, 0x1d36d: 0x6cdb9a20, 0x1d36e: 0x6cd39e20, 0x1d36f: 0x6d3b0c20, + 0x1d370: 0x6d424620, 0x1d371: 0x6cffb020, 0x1d372: 0x6cce7620, 0x1d373: 0x6ce67620, + 0x1d374: 0x6c12fc20, 0x1d375: 0x6d0c9e20, 0x1d376: 0x6c435020, 0x1d377: 0x6c7b2c20, + 0x1d378: 0x6c41a020, 0x1d379: 0x6c1dc020, 0x1d37a: 0x6c7c2e20, 0x1d37b: 0x6c42aa20, + 0x1d37c: 0x6d27b620, 0x1d37d: 0x6cab2a20, 0x1d37e: 0x6cb8f420, 0x1d37f: 0x6cffb220, + // Block 0x74e, offset 0x1d380 + 0x1d380: 0x6c65b220, 0x1d381: 0x6cb3de20, 0x1d382: 0x6c7f1c20, 0x1d383: 0x6d405c20, + 0x1d384: 0x6c08ec20, 0x1d385: 0x6c0a0420, 0x1d386: 0x6c0a0620, 0x1d387: 0x6c448c20, + 0x1d388: 0x6cdf3020, 0x1d389: 0x6c48e020, 0x1d38a: 0x6d209420, 0x1d38b: 0x6c64cc20, + 0x1d38c: 0x6c2a2420, 0x1d38d: 0x6c472420, 0x1d38e: 0x6c1b4420, 0x1d38f: 0x6d32e220, + 0x1d390: 0x6cbed220, 0x1d391: 0x6ccc6820, 0x1d392: 0x6d38ec20, 0x1d393: 0x6c928e20, + 0x1d394: 0x6c0f3020, 0x1d395: 0x6c5f0a20, 0x1d396: 0x6c8bc420, 0x1d397: 0x6cdb9e20, + 0x1d398: 0x6c75d420, 0x1d399: 0x6c3ec820, 0x1d39a: 0x6d2c4220, 0x1d39b: 0x6c472620, + 0x1d39c: 0x6c798620, 0x1d39d: 0x6cb9b220, 0x1d39e: 0x6cb90a20, 0x1d39f: 0x6c75d620, + 0x1d3a0: 0x6c20dc20, 0x1d3a1: 0x6c495a20, 0x1d3a2: 0x6d250420, 0x1d3a3: 0x6c130820, + 0x1d3a4: 0x6d40cc20, 0x1d3a5: 0x6c0fe620, 0x1d3a6: 0x6d2ae420, 0x1d3a7: 0x6cbcd620, + 0x1d3a8: 0x6cebb020, 0x1d3a9: 0x6c954e20, 0x1d3aa: 0x6c27ec20, 0x1d3ab: 0x6cfef420, + 0x1d3ac: 0x6cc92620, 0x1d3ad: 0x6c66ba20, 0x1d3ae: 0x6d07c020, 0x1d3af: 0x6c0b0020, + 0x1d3b0: 0x6cdcfc20, 0x1d3b1: 0x6cfd8620, 0x1d3b2: 0x6cfc2420, 0x1d3b3: 0x6cb2c620, + 0x1d3b4: 0x6d318c20, 0x1d3b5: 0x6d039420, 0x1d3b6: 0x6c559420, 0x1d3b7: 0x6d154a20, + 0x1d3b8: 0x6d3b1420, 0x1d3b9: 0x6d265820, 0x1d3ba: 0x6c211020, 0x1d3bb: 0x6c93f620, + 0x1d3bc: 0x6cf37e20, 0x1d3bd: 0x6c303820, 0x1d3be: 0x6cd79a20, 0x1d3bf: 0x6c609020, + // Block 0x74f, offset 0x1d3c0 + 0x1d3c0: 0x6c6af220, 0x1d3c1: 0x6c59ee20, 0x1d3c2: 0x6d039620, 0x1d3c3: 0x6c9aa820, + 0x1d3c4: 0x6c396a20, 0x1d3c5: 0x6c200a20, 0x1d3c6: 0x6d3bde20, 0x1d3c7: 0x6cb0fc20, + 0x1d3c8: 0x6c3c6220, 0x1d3c9: 0x6d3a2820, 0x1d3ca: 0x6c59f020, 0x1d3cb: 0x6cbce020, + 0x1d3cc: 0x6c542420, 0x1d3cd: 0x6cbfbe20, 0x1d3ce: 0x6c9e9a20, 0x1d3cf: 0x6cba7620, + 0x1d3d0: 0x6c483c20, 0x1d3d1: 0x6c7d1020, 0x1d3d2: 0x6cd41c20, 0x1d3d3: 0x6c90f420, + 0x1d3d4: 0x6d27c820, 0x1d3d5: 0x6c517020, 0x1d3d6: 0x6ce13420, 0x1d3d7: 0x6d26ee20, + 0x1d3d8: 0x6c1d7e20, 0x1d3d9: 0x6c42de20, 0x1d3da: 0x6c3a7020, 0x1d3db: 0x6cc92e20, + 0x1d3dc: 0x6d32f420, 0x1d3dd: 0x6c465e20, 0x1d3de: 0x6ca87220, 0x1d3df: 0x6cba7e20, + 0x1d3e0: 0x6cffbc20, 0x1d3e1: 0x6c24b420, 0x1d3e2: 0x6c903820, 0x1d3e3: 0x6caec620, + 0x1d3e4: 0x6c322e20, 0x1d3e5: 0x6c867e20, 0x1d3e6: 0x6c0a5420, 0x1d3e7: 0x6d3d9e20, + 0x1d3e8: 0x6c1ea820, 0x1d3e9: 0x6ccc9020, 0x1d3ea: 0x6c1b5220, 0x1d3eb: 0x6d3b2c20, + 0x1d3ec: 0x6cbada20, 0x1d3ed: 0x6c8fae20, 0x1d3ee: 0x6c7fb620, 0x1d3ef: 0x6c64fa20, + 0x1d3f0: 0x6c10ba20, 0x1d3f1: 0x6c844220, 0x1d3f2: 0x6c5c5820, 0x1d3f3: 0x6c0a5620, + 0x1d3f4: 0x6c2b9020, 0x1d3f5: 0x6c236420, 0x1d3f6: 0x6d0c3620, 0x1d3f7: 0x6caf2020, + 0x1d3f8: 0x6c11e020, 0x1d3f9: 0x6d3be620, 0x1d3fa: 0x6cb02220, 0x1d3fb: 0x6cb19e20, + 0x1d3fc: 0x6c30c820, 0x1d3fd: 0x6d243620, 0x1d3fe: 0x6c9ef820, 0x1d3ff: 0x6ce96020, + // Block 0x750, offset 0x1d400 + 0x1d400: 0x6d2b1020, 0x1d401: 0x6ccc9220, 0x1d402: 0x6c4b8420, 0x1d403: 0x6d156e20, + 0x1d404: 0x6c56cc20, 0x1d405: 0x6c15e620, 0x1d406: 0x6c7a0820, 0x1d407: 0x6c246820, + 0x1d408: 0x6cb2d620, 0x1d409: 0x6d2a9020, 0x1d40a: 0x6c5f5620, 0x1d40b: 0x6c4b1c20, + 0x1d40c: 0x6cdb3820, 0x1d40d: 0x6c90fc20, 0x1d40e: 0x6c131a20, 0x1d40f: 0x6c92e820, + 0x1d410: 0x6ca73e20, 0x1d411: 0x6cdd3820, 0x1d412: 0x6c24b620, 0x1d413: 0x6c2e5420, + 0x1d414: 0x6cdd4020, 0x1d415: 0x6c822a20, 0x1d416: 0x6c32dc20, 0x1d417: 0x6c89d020, + 0x1d418: 0x6cff2220, 0x1d419: 0x6c0f9420, 0x1d41a: 0x6c9da020, 0x1d41b: 0x6ccc9420, + 0x1d41c: 0x6c299c20, 0x1d41d: 0x6c8a3620, 0x1d41e: 0x6c280c20, 0x1d41f: 0x6c2d8e20, + 0x1d420: 0x6c3f9020, 0x1d421: 0x6c65f820, 0x1d422: 0x6c9fd020, 0x1d423: 0x6c7d2820, + 0x1d424: 0x6c27a020, 0x1d425: 0x6c689820, 0x1d426: 0x6c2ab620, 0x1d427: 0x6c5a0c20, + 0x1d428: 0x6cdd0020, 0x1d429: 0x6c818220, 0x1d42a: 0x6d295220, 0x1d42b: 0x6cff3c20, + 0x1d42c: 0x6c931e20, 0x1d42d: 0x6cd3f620, 0x1d42e: 0x6d295420, 0x1d42f: 0x6cb81c20, + 0x1d430: 0x6cac0a20, 0x1d431: 0x6cb81e20, 0x1d432: 0x6cac0c20, 0x1d433: 0x6c41f620, + 0x1d434: 0x6c72b220, 0x1d435: 0x6c328a20, 0x1d436: 0x6c930620, 0x1d437: 0x6d0cf220, + 0x1d438: 0x6c0fea20, 0x1d439: 0x6c291820, 0x1d43a: 0x6cc9ec20, 0x1d43b: 0x6d3b5e20, + 0x1d43c: 0x6c8fca20, 0x1d43d: 0x6cb94020, 0x1d43e: 0x6c888420, 0x1d43f: 0x6c10cc20, + // Block 0x751, offset 0x1d440 + 0x1d440: 0x6d396220, 0x1d441: 0x6c7f6e20, 0x1d442: 0x6cd42020, 0x1d443: 0x6c7fec20, + 0x1d444: 0x6c7d3420, 0x1d445: 0x6d21d620, 0x1d446: 0x6d270420, 0x1d447: 0x6c500020, + 0x1d448: 0x6d31a220, 0x1d449: 0x6cdf5020, 0x1d44a: 0x6ce43e20, 0x1d44b: 0x6ca8a420, + 0x1d44c: 0x6c1e0420, 0x1d44d: 0x6c60ec20, 0x1d44e: 0x6d199820, 0x1d44f: 0x6cb82020, + 0x1d450: 0x6ce2ca20, 0x1d451: 0x6d3c0020, 0x1d452: 0x6d396820, 0x1d453: 0x6c387020, + 0x1d454: 0x6cda3c20, 0x1d455: 0x6d396620, 0x1d456: 0x6cba9820, 0x1d457: 0x6d3de020, + 0x1d458: 0x6ce2d420, 0x1d459: 0x6c933a20, 0x1d45a: 0x6c919420, 0x1d45b: 0x6c662a20, + 0x1d45c: 0x6cebbe20, 0x1d45d: 0x6d1cd420, 0x1d45e: 0x6d248620, 0x1d45f: 0x6c7f7e20, + 0x1d460: 0x6c8ff420, 0x1d461: 0x6cbd1620, 0x1d462: 0x6c88a220, 0x1d463: 0x6c800a20, + 0x1d464: 0x6cb95c20, 0x1d465: 0x6d272020, 0x1d466: 0x6d37e420, 0x1d467: 0x6cc20e20, + 0x1d468: 0x6c88a420, 0x1d469: 0x6c0b2820, 0x1d46a: 0x6c32ea20, 0x1d46b: 0x6d415a20, + 0x1d46c: 0x6c84d620, 0x1d46d: 0x6cd86220, 0x1d46e: 0x6c958e20, 0x1d46f: 0x6d1cde20, + 0x1d470: 0x6d273820, 0x1d471: 0x6d3df220, 0x1d472: 0x6d24ae20, 0x1d473: 0x6c9cd620, + 0x1d474: 0x6c2b5820, 0x1d475: 0x6c388a20, 0x1d476: 0x6ccfb020, 0x1d477: 0x6d302820, + 0x1d478: 0x6ccfc220, 0x1d479: 0x6caa7220, 0x1d47a: 0x6c50e220, 0x1d47b: 0x6c832420, + 0x1d47c: 0x6cfa8e20, 0x1d47d: 0x6d3efa20, 0x1d47e: 0x6ca5c620, 0x1d47f: 0x6c25b420, + // Block 0x752, offset 0x1d480 + 0x1d480: 0x6d2f4620, 0x1d481: 0x6cb8c020, 0x1d482: 0x6d2d5a20, 0x1d483: 0x6c08d220, + 0x1d484: 0x6c04c620, 0x1d485: 0x6cf4d820, 0x1d486: 0x6ccbde20, 0x1d487: 0x6c772a20, + 0x1d488: 0x6cc77620, 0x1d489: 0x6c3bba20, 0x1d48a: 0x6c096e20, 0x1d48b: 0x6c252620, + 0x1d48c: 0x6d1b9a20, 0x1d48d: 0x6d304020, 0x1d48e: 0x6c1b9020, 0x1d48f: 0x6cdf8620, + 0x1d490: 0x6c56fa20, 0x1d491: 0x6c033c20, 0x1d492: 0x6c85f820, 0x1d493: 0x6c419620, + 0x1d494: 0x6c722e20, 0x1d495: 0x6cb38420, 0x1d496: 0x6ca10c20, 0x1d497: 0x6c241020, + 0x1d498: 0x6d2d6e20, 0x1d499: 0x6d392220, 0x1d49a: 0x6c83c620, 0x1d49b: 0x6cdaac20, + 0x1d49c: 0x6ce5d620, 0x1d49d: 0x6c85fa20, 0x1d49e: 0x6cf62220, 0x1d49f: 0x6cdab620, + 0x1d4a0: 0x6c535020, 0x1d4a1: 0x6ce74c20, 0x1d4a2: 0x6d3e4420, 0x1d4a3: 0x6c12e020, + 0x1d4a4: 0x6d26bc20, 0x1d4a5: 0x6d388620, 0x1d4a6: 0x6c8bb820, 0x1d4a7: 0x6d3c1a20, + 0x1d4a8: 0x6c042220, 0x1d4a9: 0x6c81f620, 0x1d4aa: 0x6c3bda20, 0x1d4ab: 0x6c375820, + 0x1d4ac: 0x6cc10e20, 0x1d4ad: 0x6c521620, 0x1d4ae: 0x6c895a20, 0x1d4af: 0x6cfcd820, + 0x1d4b0: 0x6c3ea020, 0x1d4b1: 0x6c895c20, 0x1d4b2: 0x6c11fa20, 0x1d4b3: 0x6c6dc220, + 0x1d4b4: 0x6c851c20, 0x1d4b5: 0x6d26c620, 0x1d4b6: 0x6c929020, 0x1d4b7: 0x6c714020, + 0x1d4b8: 0x6cb61e20, 0x1d4b9: 0x6c254e20, 0x1d4ba: 0x6c045220, 0x1d4bb: 0x6d2ece20, + 0x1d4bc: 0x6c8bc620, 0x1d4bd: 0x6d402620, 0x1d4be: 0x6c6dcc20, 0x1d4bf: 0x6c4cc420, + // Block 0x753, offset 0x1d4c0 + 0x1d4c0: 0x6c57e020, 0x1d4c1: 0x6cca2220, 0x1d4c2: 0x6cca2620, 0x1d4c3: 0x6ce12a20, + 0x1d4c4: 0x6c0b4c20, 0x1d4c5: 0x6cc75c20, 0x1d4c6: 0x6c9e5c20, 0x1d4c7: 0x6c542620, + 0x1d4c8: 0x6d065220, 0x1d4c9: 0x6d402a20, 0x1d4ca: 0x6c56fe20, 0x1d4cb: 0x6c66be20, + 0x1d4cc: 0x6d294e20, 0x1d4cd: 0x6c225e20, 0x1d4ce: 0x6c843020, 0x1d4cf: 0x6d021a20, + 0x1d4d0: 0x6c3da020, 0x1d4d1: 0x6cab1220, 0x1d4d2: 0x6c076020, 0x1d4d3: 0x6c47d020, + 0x1d4d4: 0x6d052820, 0x1d4d5: 0x6c42e020, 0x1d4d6: 0x6ce13620, 0x1d4d7: 0x6cc0b220, + 0x1d4d8: 0x6c645620, 0x1d4d9: 0x6c126a20, 0x1d4da: 0x6d3c2420, 0x1d4db: 0x6ce14020, + 0x1d4dc: 0x6c9c7c20, 0x1d4dd: 0x6cca2c20, 0x1d4de: 0x6c3bf420, 0x1d4df: 0x6d2a2620, + 0x1d4e0: 0x6c775620, 0x1d4e1: 0x6c67fe20, 0x1d4e2: 0x6ca07e20, 0x1d4e3: 0x6cca3020, + 0x1d4e4: 0x6cca3220, 0x1d4e5: 0x6cab1c20, 0x1d4e6: 0x6cf70820, 0x1d4e7: 0x6c897420, + 0x1d4e8: 0x6c680820, 0x1d4e9: 0x6c7b4620, 0x1d4ea: 0x6c0ffa20, 0x1d4eb: 0x6c58b620, + 0x1d4ec: 0x6cd63620, 0x1d4ed: 0x6d403e20, 0x1d4ee: 0x6cfd4020, 0x1d4ef: 0x6cab2020, + 0x1d4f0: 0x6ce97020, 0x1d4f1: 0x6ca8b820, 0x1d4f2: 0x6c873020, 0x1d4f3: 0x6d42b220, + 0x1d4f4: 0x6c2bb820, 0x1d4f5: 0x6ca8ba20, 0x1d4f6: 0x6ce5e420, 0x1d4f7: 0x6c809820, + 0x1d4f8: 0x6c9d1a20, 0x1d4f9: 0x6cd7c020, 0x1d4fa: 0x6c6f5820, 0x1d4fb: 0x6cf83e20, + 0x1d4fc: 0x6c456620, 0x1d4fd: 0x6d331c20, 0x1d4fe: 0x6c6f5e20, 0x1d4ff: 0x6d201c20, + // Block 0x754, offset 0x1d500 + 0x1d500: 0x6c61b020, 0x1d501: 0x6c143a20, 0x1d502: 0x6d391020, 0x1d503: 0x6d09f020, + 0x1d504: 0x6d264a20, 0x1d505: 0x6c531c20, 0x1d506: 0x6d207e20, 0x1d507: 0x6c50e420, + 0x1d508: 0x6cecce20, 0x1d509: 0x6cc5d820, 0x1d50a: 0x6cf1d220, 0x1d50b: 0x6cf18c20, + 0x1d50c: 0x6cc03620, 0x1d50d: 0x6ca32820, 0x1d50e: 0x6d3e1c20, 0x1d50f: 0x6ce80c20, + 0x1d510: 0x6ca99020, 0x1d511: 0x6c3d1420, 0x1d512: 0x6c61d020, 0x1d513: 0x6cd4c020, + 0x1d514: 0x6c213c20, 0x1d515: 0x6caf5a20, 0x1d516: 0x6d323220, 0x1d517: 0x6ccbe020, + 0x1d518: 0x6c532e20, 0x1d519: 0x6d351220, 0x1d51a: 0x6c5ffe20, 0x1d51b: 0x6c3b2220, + 0x1d51c: 0x6d279e20, 0x1d51d: 0x6cc5de20, 0x1d51e: 0x6c283220, 0x1d51f: 0x6c6c4020, + 0x1d520: 0x6cda9420, 0x1d521: 0x6c39d220, 0x1d522: 0x6cdd5a20, 0x1d523: 0x6c252820, + 0x1d524: 0x6c6fb820, 0x1d525: 0x6d288c20, 0x1d526: 0x6c03f220, 0x1d527: 0x6c6c8c20, + 0x1d528: 0x6c3d6a20, 0x1d529: 0x6d35fe20, 0x1d52a: 0x6c229820, 0x1d52b: 0x6d3f1620, + 0x1d52c: 0x6c1da620, 0x1d52d: 0x6c533e20, 0x1d52e: 0x6d288e20, 0x1d52f: 0x6c833420, + 0x1d530: 0x6cf87a20, 0x1d531: 0x6c3e5c20, 0x1d532: 0x6d019a20, 0x1d533: 0x6ccfe020, + 0x1d534: 0x6c0e6c20, 0x1d535: 0x6d3ae820, 0x1d536: 0x6cc0fc20, 0x1d537: 0x6c8cf020, + 0x1d538: 0x6d3aea20, 0x1d539: 0x6cced620, 0x1d53a: 0x6c421e20, 0x1d53b: 0x6d101420, + 0x1d53c: 0x6c3e5e20, 0x1d53d: 0x6ceb1820, 0x1d53e: 0x6d31d420, 0x1d53f: 0x6c275e20, + // Block 0x755, offset 0x1d540 + 0x1d540: 0x6c1f3420, 0x1d541: 0x6cd1b420, 0x1d542: 0x6d37b620, 0x1d543: 0x6cfb4e20, + 0x1d544: 0x6d411a20, 0x1d545: 0x6c6ede20, 0x1d546: 0x6c04f820, 0x1d547: 0x6cc18c20, + 0x1d548: 0x6ca10e20, 0x1d549: 0x6cd5c620, 0x1d54a: 0x6d41ac20, 0x1d54b: 0x6c7c2c20, + 0x1d54c: 0x6c6db020, 0x1d54d: 0x6cc5f220, 0x1d54e: 0x6c4f7c20, 0x1d54f: 0x6d01b220, + 0x1d550: 0x6c6ad620, 0x1d551: 0x6d39a820, 0x1d552: 0x6c1db420, 0x1d553: 0x6c48b620, + 0x1d554: 0x6c042420, 0x1d555: 0x6c745420, 0x1d556: 0x6c7bf620, 0x1d557: 0x6c556220, + 0x1d558: 0x6c22c620, 0x1d559: 0x6c587820, 0x1d55a: 0x6c44d220, 0x1d55b: 0x6ce1c820, + 0x1d55c: 0x6c6ad820, 0x1d55d: 0x6c7a9a20, 0x1d55e: 0x6c68fc20, 0x1d55f: 0x6cc2f620, + 0x1d560: 0x6c411620, 0x1d561: 0x6c960620, 0x1d562: 0x6d089620, 0x1d563: 0x6c07ee20, + 0x1d564: 0x6cfcc620, 0x1d565: 0x6c3e8620, 0x1d566: 0x6c449420, 0x1d567: 0x6c307a20, + 0x1d568: 0x6cc67a20, 0x1d569: 0x6ce5d820, 0x1d56a: 0x6d19e420, 0x1d56b: 0x6c82c220, + 0x1d56c: 0x6d01b420, 0x1d56d: 0x6c736820, 0x1d56e: 0x6d06e020, 0x1d56f: 0x6c40f820, + 0x1d570: 0x6c2eae20, 0x1d571: 0x6ce7ba20, 0x1d572: 0x6cd7ea20, 0x1d573: 0x6c67e820, + 0x1d574: 0x6cfdc420, 0x1d575: 0x6c5bc820, 0x1d576: 0x6c745620, 0x1d577: 0x6d346820, + 0x1d578: 0x6c65b420, 0x1d579: 0x6c737620, 0x1d57a: 0x6c1ac020, 0x1d57b: 0x6c9e2c20, + 0x1d57c: 0x6d31e820, 0x1d57d: 0x6c939e20, 0x1d57e: 0x6c1a1020, 0x1d57f: 0x6cc07a20, + // Block 0x756, offset 0x1d580 + 0x1d580: 0x6cd4ec20, 0x1d581: 0x6c055020, 0x1d582: 0x6ce7bc20, 0x1d583: 0x6cfedc20, + 0x1d584: 0x6c588020, 0x1d585: 0x6cbd3620, 0x1d586: 0x6c451220, 0x1d587: 0x6d052620, + 0x1d588: 0x6ce34c20, 0x1d589: 0x6ce82e20, 0x1d58a: 0x6d00c020, 0x1d58b: 0x6c536420, + 0x1d58c: 0x6cf8a420, 0x1d58d: 0x6c3ea220, 0x1d58e: 0x6ce64620, 0x1d58f: 0x6cdbcc20, + 0x1d590: 0x6c335220, 0x1d591: 0x6c7db620, 0x1d592: 0x6c3d8020, 0x1d593: 0x6c6dc420, + 0x1d594: 0x6c56a620, 0x1d595: 0x6d33f820, 0x1d596: 0x6d0ca020, 0x1d597: 0x6c6f1c20, + 0x1d598: 0x6c3cb020, 0x1d599: 0x6c622020, 0x1d59a: 0x6d077420, 0x1d59b: 0x6cc60c20, + 0x1d59c: 0x6d3faa20, 0x1d59d: 0x6c187820, 0x1d59e: 0x6c34a420, 0x1d59f: 0x6c865020, + 0x1d5a0: 0x6c93ec20, 0x1d5a1: 0x6c896020, 0x1d5a2: 0x6c1dcc20, 0x1d5a3: 0x6cc36420, + 0x1d5a4: 0x6ccede20, 0x1d5a5: 0x6cb62020, 0x1d5a6: 0x6cb62220, 0x1d5a7: 0x6d3ce020, + 0x1d5a8: 0x6cb62420, 0x1d5a9: 0x6ced3420, 0x1d5aa: 0x6cba6a20, 0x1d5ab: 0x6cfcec20, + 0x1d5ac: 0x6cd47420, 0x1d5ad: 0x6cef2220, 0x1d5ae: 0x6cb70e20, 0x1d5af: 0x6ce23020, + 0x1d5b0: 0x6ced3620, 0x1d5b1: 0x6c428c20, 0x1d5b2: 0x6cee3020, 0x1d5b3: 0x6c080420, + 0x1d5b4: 0x6d3cc620, 0x1d5b5: 0x6c113a20, 0x1d5b6: 0x6c4cc620, 0x1d5b7: 0x6c255020, + 0x1d5b8: 0x6c950420, 0x1d5b9: 0x6c8f1020, 0x1d5ba: 0x6cb71020, 0x1d5bb: 0x6d2e6e20, + 0x1d5bc: 0x6c0a0820, 0x1d5bd: 0x6c21cc20, 0x1d5be: 0x6c8d3c20, 0x1d5bf: 0x6c9dca20, + // Block 0x757, offset 0x1d5c0 + 0x1d5c0: 0x6cb51420, 0x1d5c1: 0x6cbcd820, 0x1d5c2: 0x6ce4b420, 0x1d5c3: 0x6d3fac20, + 0x1d5c4: 0x6c4bd820, 0x1d5c5: 0x6d405e20, 0x1d5c6: 0x6cf67c20, 0x1d5c7: 0x6d3e6a20, + 0x1d5c8: 0x6d043220, 0x1d5c9: 0x6c899a20, 0x1d5ca: 0x6c6ca420, 0x1d5cb: 0x6c3a1220, + 0x1d5cc: 0x6cc8a020, 0x1d5cd: 0x6c9f7220, 0x1d5ce: 0x6d239e20, 0x1d5cf: 0x6d400420, + 0x1d5d0: 0x6c38ae20, 0x1d5d1: 0x6c93ee20, 0x1d5d2: 0x6d071620, 0x1d5d3: 0x6d1bd820, + 0x1d5d4: 0x6cce5620, 0x1d5d5: 0x6cb81820, 0x1d5d6: 0x6d073020, 0x1d5d7: 0x6cfd8820, + 0x1d5d8: 0x6c64dc20, 0x1d5d9: 0x6c78ce20, 0x1d5da: 0x6cfcfe20, 0x1d5db: 0x6cc87620, + 0x1d5dc: 0x6c9dcc20, 0x1d5dd: 0x6c5f1c20, 0x1d5de: 0x6c32d820, 0x1d5df: 0x6c1d1e20, + 0x1d5e0: 0x6c2c9420, 0x1d5e1: 0x6c9f7820, 0x1d5e2: 0x6c9e7c20, 0x1d5e3: 0x6d259c20, + 0x1d5e4: 0x6d01fe20, 0x1d5e5: 0x6c060e20, 0x1d5e6: 0x6cd82020, 0x1d5e7: 0x6cbfc020, + 0x1d5e8: 0x6c0b0220, 0x1d5e9: 0x6c58dc20, 0x1d5ea: 0x6c44d820, 0x1d5eb: 0x6c234620, + 0x1d5ec: 0x6c9e3820, 0x1d5ed: 0x6cf0c420, 0x1d5ee: 0x6c403620, 0x1d5ef: 0x6cf00620, + 0x1d5f0: 0x6ce7f420, 0x1d5f1: 0x6c465a20, 0x1d5f2: 0x6c9e9c20, 0x1d5f3: 0x6d00de20, + 0x1d5f4: 0x6c891220, 0x1d5f5: 0x6d3fb620, 0x1d5f6: 0x6c0bb620, 0x1d5f7: 0x6d284a20, + 0x1d5f8: 0x6d19fc20, 0x1d5f9: 0x6ce36820, 0x1d5fa: 0x6c486c20, 0x1d5fb: 0x6d36ea20, + 0x1d5fc: 0x6d284c20, 0x1d5fd: 0x6c198c20, 0x1d5fe: 0x6c152020, 0x1d5ff: 0x6c278c20, + // Block 0x758, offset 0x1d600 + 0x1d600: 0x6cf9ea20, 0x1d601: 0x6d259e20, 0x1d602: 0x6d400620, 0x1d603: 0x6d05da20, + 0x1d604: 0x6d1d6a20, 0x1d605: 0x6cf14420, 0x1d606: 0x6c44da20, 0x1d607: 0x6d07c220, + 0x1d608: 0x6d1c9c20, 0x1d609: 0x6c6d5220, 0x1d60a: 0x6d18ae20, 0x1d60b: 0x6d3ca220, + 0x1d60c: 0x6ca6c020, 0x1d60d: 0x6c053c20, 0x1d60e: 0x6c47c820, 0x1d60f: 0x6cac7220, + 0x1d610: 0x6d395420, 0x1d611: 0x6c64fc20, 0x1d612: 0x6c220a20, 0x1d613: 0x6cc31620, + 0x1d614: 0x6cd6e020, 0x1d615: 0x6d276620, 0x1d616: 0x6cf9f220, 0x1d617: 0x6c24ea20, + 0x1d618: 0x6cf6d220, 0x1d619: 0x6cc6a620, 0x1d61a: 0x6ce1ea20, 0x1d61b: 0x6c405420, + 0x1d61c: 0x6d27ca20, 0x1d61d: 0x6c188820, 0x1d61e: 0x6c432020, 0x1d61f: 0x6cc82820, + 0x1d620: 0x6c55b820, 0x1d621: 0x6d294620, 0x1d622: 0x6ce2b420, 0x1d623: 0x6cfd1020, + 0x1d624: 0x6cdb1e20, 0x1d625: 0x6d31fc20, 0x1d626: 0x6d403420, 0x1d627: 0x6ce1ec20, + 0x1d628: 0x6c5a8420, 0x1d629: 0x6c114a20, 0x1d62a: 0x6c0a5820, 0x1d62b: 0x6c3cf620, + 0x1d62c: 0x6c246a20, 0x1d62d: 0x6c844620, 0x1d62e: 0x6cdd4220, 0x1d62f: 0x6d0ddc20, + 0x1d630: 0x6cf81820, 0x1d631: 0x6d403820, 0x1d632: 0x6c826420, 0x1d633: 0x6c739820, + 0x1d634: 0x6cba8220, 0x1d635: 0x6c980820, 0x1d636: 0x6d34a420, 0x1d637: 0x6c93bc20, + 0x1d638: 0x6ca2b220, 0x1d639: 0x6cb1a020, 0x1d63a: 0x6c885220, 0x1d63b: 0x6c9c8020, + 0x1d63c: 0x6d08bc20, 0x1d63d: 0x6d400a20, 0x1d63e: 0x6c5f5820, 0x1d63f: 0x6ccd1220, + // Block 0x759, offset 0x1d640 + 0x1d640: 0x6cdc8e20, 0x1d641: 0x6c38ca20, 0x1d642: 0x6c940620, 0x1d643: 0x6c083020, + 0x1d644: 0x6d141e20, 0x1d645: 0x6ccac220, 0x1d646: 0x6ca1ec20, 0x1d647: 0x6d114c20, + 0x1d648: 0x6cbb4a20, 0x1d649: 0x6c5d0220, 0x1d64a: 0x6cfd5a20, 0x1d64b: 0x6c629a20, + 0x1d64c: 0x6ccc8620, 0x1d64d: 0x6d055220, 0x1d64e: 0x6cc49420, 0x1d64f: 0x6d08be20, + 0x1d650: 0x6cdca020, 0x1d651: 0x6cbbc020, 0x1d652: 0x6d2b9e20, 0x1d653: 0x6d427020, + 0x1d654: 0x6d341e20, 0x1d655: 0x6ccdca20, 0x1d656: 0x6cca3420, 0x1d657: 0x6c8bf020, + 0x1d658: 0x6d243820, 0x1d659: 0x6c386220, 0x1d65a: 0x6c8a3820, 0x1d65b: 0x6c21e020, + 0x1d65c: 0x6d41f820, 0x1d65d: 0x6c66f220, 0x1d65e: 0x6cc54a20, 0x1d65f: 0x6c15f020, + 0x1d660: 0x6cc8b620, 0x1d661: 0x6d055620, 0x1d662: 0x6c5c6e20, 0x1d663: 0x6c57ca20, + 0x1d664: 0x6d414a20, 0x1d665: 0x6cf70a20, 0x1d666: 0x6cbb4e20, 0x1d667: 0x6d287c20, + 0x1d668: 0x6c270220, 0x1d669: 0x6cd12620, 0x1d66a: 0x6c5c7e20, 0x1d66b: 0x6cf91620, + 0x1d66c: 0x6ccb8020, 0x1d66d: 0x6c660020, 0x1d66e: 0x6c679220, 0x1d66f: 0x6c58b820, + 0x1d670: 0x6d2a5e20, 0x1d671: 0x6c236e20, 0x1d672: 0x6d026020, 0x1d673: 0x6c695a20, + 0x1d674: 0x6c0aa820, 0x1d675: 0x6c28de20, 0x1d676: 0x6d191020, 0x1d677: 0x6ca9ec20, + 0x1d678: 0x6cdca220, 0x1d679: 0x6d191220, 0x1d67a: 0x6ccc9a20, 0x1d67b: 0x6d060420, + 0x1d67c: 0x6c62cc20, 0x1d67d: 0x6c0d6c20, 0x1d67e: 0x6cba3020, 0x1d67f: 0x6c7fee20, + // Block 0x75a, offset 0x1d680 + 0x1d680: 0x6cb47020, 0x1d681: 0x6d09c620, 0x1d682: 0x6d415420, 0x1d683: 0x6cb69620, + 0x1d684: 0x6caee820, 0x1d685: 0x6d124620, 0x1d686: 0x6ca19a20, 0x1d687: 0x6c835c20, + 0x1d688: 0x6d012820, 0x1d689: 0x6d415620, 0x1d68a: 0x6c7c1a20, 0x1d68b: 0x6d1ed220, + 0x1d68c: 0x6d076220, 0x1d68d: 0x6c828420, 0x1d68e: 0x6cfb0420, 0x1d68f: 0x6c156220, + 0x1d690: 0x6c69f220, 0x1d691: 0x6c919620, 0x1d692: 0x6c156a20, 0x1d693: 0x6d1c4020, + 0x1d694: 0x6c111820, 0x1d695: 0x6cc51620, 0x1d696: 0x6cfb1620, 0x1d697: 0x6d418620, + 0x1d698: 0x6d415c20, 0x1d699: 0x6c965220, 0x1d69a: 0x6c84e020, 0x1d69b: 0x6c2a5220, + 0x1d69c: 0x6c806a20, 0x1d69d: 0x6c82ac20, 0x1d69e: 0x6c894020, 0x1d69f: 0x6cd7b620, + 0x1d6a0: 0x6c6f4620, 0x1d6a1: 0x6d207420, 0x1d6a2: 0x6c52ee20, 0x1d6a3: 0x6d38f420, + 0x1d6a4: 0x6cfa7420, 0x1d6a5: 0x6c436a20, 0x1d6a6: 0x6d264820, 0x1d6a7: 0x6c5fce20, + 0x1d6a8: 0x6cecbc20, 0x1d6a9: 0x6c7bda20, 0x1d6aa: 0x6c617a20, 0x1d6ab: 0x6cc5b820, + 0x1d6ac: 0x6cef8820, 0x1d6ad: 0x6d278220, 0x1d6ae: 0x6c52fc20, 0x1d6af: 0x6c213420, + 0x1d6b0: 0x6caf2c20, 0x1d6b1: 0x6ccbca20, 0x1d6b2: 0x6c425820, 0x1d6b3: 0x6ca30820, + 0x1d6b4: 0x6cc5c620, 0x1d6b5: 0x6d401620, 0x1d6b6: 0x6c94dc20, 0x1d6b7: 0x6c3b1220, + 0x1d6b8: 0x6d34ec20, 0x1d6b9: 0x6cf17e20, 0x1d6ba: 0x6c39c220, 0x1d6bb: 0x6d3aa420, + 0x1d6bc: 0x6d321420, 0x1d6bd: 0x6ca97c20, 0x1d6be: 0x6cd4a020, 0x1d6bf: 0x6cfc8220, + // Block 0x75b, offset 0x1d6c0 + 0x1d6c0: 0x6c421220, 0x1d6c1: 0x6d016620, 0x1d6c2: 0x6c3dfa20, 0x1d6c3: 0x6c88e420, + 0x1d6c4: 0x6d410c20, 0x1d6c5: 0x6ccfb220, 0x1d6c6: 0x6cf84e20, 0x1d6c7: 0x6d33a020, + 0x1d6c8: 0x6d37a020, 0x1d6c9: 0x6d390420, 0x1d6ca: 0x6c04ec20, 0x1d6cb: 0x6c3dfc20, + 0x1d6cc: 0x6c1f1420, 0x1d6cd: 0x6ccec820, 0x1d6ce: 0x6d16ce20, 0x1d6cf: 0x6c6d9220, + 0x1d6d0: 0x6c273820, 0x1d6d1: 0x6c054a20, 0x1d6d2: 0x6cc65a20, 0x1d6d3: 0x6c6a9820, + 0x1d6d4: 0x6c7a8620, 0x1d6d5: 0x6cc54620, 0x1d6d6: 0x6c2e7620, 0x1d6d7: 0x6c4f6420, + 0x1d6d8: 0x6c5b9e20, 0x1d6d9: 0x6c449220, 0x1d6da: 0x6d087c20, 0x1d6db: 0x6c67dc20, + 0x1d6dc: 0x6c95ea20, 0x1d6dd: 0x6c740420, 0x1d6de: 0x6c68d620, 0x1d6df: 0x6ce7ae20, + 0x1d6e0: 0x6c450020, 0x1d6e1: 0x6cfea820, 0x1d6e2: 0x6c735020, 0x1d6e3: 0x6d053620, + 0x1d6e4: 0x6cf87220, 0x1d6e5: 0x6cdbf020, 0x1d6e6: 0x6ce1c020, 0x1d6e7: 0x6c61d220, + 0x1d6e8: 0x6ce31820, 0x1d6e9: 0x6c5eb820, 0x1d6ea: 0x6d06be20, 0x1d6eb: 0x6c8cf220, + 0x1d6ec: 0x6d1bb220, 0x1d6ed: 0x6d06c020, 0x1d6ee: 0x6cb6f620, 0x1d6ef: 0x6c39fc20, + 0x1d6f0: 0x6c21b820, 0x1d6f1: 0x6cce5220, 0x1d6f2: 0x6c4bc220, 0x1d6f3: 0x6cd11e20, + 0x1d6f4: 0x6cef0420, 0x1d6f5: 0x6c9dc020, 0x1d6f6: 0x6cd46820, 0x1d6f7: 0x6c081a20, + 0x1d6f8: 0x6c1da820, 0x1d6f9: 0x6ce22220, 0x1d6fa: 0x6c8f0620, 0x1d6fb: 0x6cc35a20, + 0x1d6fc: 0x6d3f7820, 0x1d6fd: 0x6d2e5c20, 0x1d6fe: 0x6ced0c20, 0x1d6ff: 0x6c93d820, + // Block 0x75c, offset 0x1d700 + 0x1d700: 0x6d3cc420, 0x1d701: 0x6d3e2820, 0x1d702: 0x6c78b420, 0x1d703: 0x6cfd7820, + 0x1d704: 0x6c64a420, 0x1d705: 0x6c9e2820, 0x1d706: 0x6c802a20, 0x1d707: 0x6ce33020, + 0x1d708: 0x6c9e9420, 0x1d709: 0x6c5eda20, 0x1d70a: 0x6d275020, 0x1d70b: 0x6c5bca20, + 0x1d70c: 0x6cd7ec20, 0x1d70d: 0x6c348620, 0x1d70e: 0x6c32c420, 0x1d70f: 0x6c0ba020, + 0x1d710: 0x6cfcc820, 0x1d711: 0x6c464a20, 0x1d712: 0x6d3c8a20, 0x1d713: 0x6c58d820, + 0x1d714: 0x6c2c5e20, 0x1d715: 0x6c93a020, 0x1d716: 0x6c0af620, 0x1d717: 0x6c9f5820, + 0x1d718: 0x6d256820, 0x1d719: 0x6c6d1c20, 0x1d71a: 0x6c401020, 0x1d71b: 0x6cc81e20, + 0x1d71c: 0x6d31ea20, 0x1d71d: 0x6c3ce620, 0x1d71e: 0x6c24ce20, 0x1d71f: 0x6c430c20, + 0x1d720: 0x6c150420, 0x1d721: 0x6c83f020, 0x1d722: 0x6d17fc20, 0x1d723: 0x6c64be20, + 0x1d724: 0x6c0d4020, 0x1d725: 0x6cb15a20, 0x1d726: 0x6c97f020, 0x1d727: 0x6c824820, + 0x1d728: 0x6d1bda20, 0x1d729: 0x6cdd2e20, 0x1d72a: 0x6ca1d820, 0x1d72b: 0x6ccaba20, + 0x1d72c: 0x6d00e020, 0x1d72d: 0x6c8a1420, 0x1d72e: 0x6ccda220, 0x1d72f: 0x6d2b8c20, + 0x1d730: 0x6c677a20, 0x1d731: 0x6cba2420, 0x1d732: 0x6cbbb220, 0x1d733: 0x6c589a20, + 0x1d734: 0x6c694620, 0x1d735: 0x6d415020, 0x1d736: 0x6c3d1a20, 0x1d737: 0x6d016820, + 0x1d738: 0x6c426820, 0x1d739: 0x6c3d2420, 0x1d73a: 0x6cc38a20, 0x1d73b: 0x6c3d2620, + 0x1d73c: 0x6cb81020, 0x1d73d: 0x6c0e6e20, 0x1d73e: 0x6cb2ac20, 0x1d73f: 0x6cfe3420, + // Block 0x75d, offset 0x1d740 + 0x1d740: 0x6d2ff620, 0x1d741: 0x6c428e20, 0x1d742: 0x6d1bdc20, 0x1d743: 0x6d1bea20, + 0x1d744: 0x6cbee020, 0x1d745: 0x6cfa4c20, 0x1d746: 0x6c49aa20, 0x1d747: 0x6d41fa20, + 0x1d748: 0x6ce02a20, 0x1d749: 0x6c126020, 0x1d74a: 0x6cb7fe20, 0x1d74b: 0x6cf27620, + 0x1d74c: 0x6d1c2220, 0x1d74d: 0x6c828620, 0x1d74e: 0x6ce04820, 0x1d74f: 0x6c919820, + 0x1d750: 0x6c49c420, 0x1d751: 0x6cedf420, 0x1d752: 0x6cedf020, 0x1d753: 0x6c424e20, + 0x1d754: 0x6cedfe20, 0x1d755: 0x6c4e5020, 0x1d756: 0x6c953820, 0x1d757: 0x6c952c20, + 0x1d758: 0x6c3e2220, 0x1d759: 0x6c9c3a20, 0x1d75a: 0x6c380620, 0x1d75b: 0x6c470020, + 0x1d75c: 0x6d3a6020, 0x1d75d: 0x6c707220, 0x1d75e: 0x6c98d420, 0x1d75f: 0x6c477420, + 0x1d760: 0x6c9f4220, 0x1d761: 0x6c427220, 0x1d762: 0x6c03f420, 0x1d763: 0x6c48b220, + 0x1d764: 0x6ce33220, 0x1d765: 0x6c736a20, 0x1d766: 0x6c3e8820, 0x1d767: 0x6cd0b420, + 0x1d768: 0x6d0da820, 0x1d769: 0x6d2fc220, 0x1d76a: 0x6d41b820, 0x1d76b: 0x6c48b820, + 0x1d76c: 0x6d3d7220, 0x1d76d: 0x6d237620, 0x1d76e: 0x6d366620, 0x1d76f: 0x6c018e20, + 0x1d770: 0x6c382020, 0x1d771: 0x6c803420, 0x1d772: 0x6cd56220, 0x1d773: 0x6cd80620, + 0x1d774: 0x6cb00820, 0x1d775: 0x6c96da20, 0x1d776: 0x6c8f1620, 0x1d777: 0x6c03f820, + 0x1d778: 0x6c382420, 0x1d779: 0x6c844a20, 0x1d77a: 0x6c177e20, 0x1d77b: 0x6cf0d020, + 0x1d77c: 0x6c0a3420, 0x1d77d: 0x6c629c20, 0x1d77e: 0x6d2b9c20, 0x1d77f: 0x6c1ce620, + // Block 0x75e, offset 0x1d780 + 0x1d780: 0x6c8f2220, 0x1d781: 0x6c5f5a20, 0x1d782: 0x6c739e20, 0x1d783: 0x6c9da220, + 0x1d784: 0x6d2fec20, 0x1d785: 0x6c956220, 0x1d786: 0x6cb03220, 0x1d787: 0x6c5f9e20, + 0x1d788: 0x6c5fb020, 0x1d789: 0x6c946820, 0x1d78a: 0x6d0f7620, 0x1d78b: 0x6c9cde20, + 0x1d78c: 0x6cba9e20, 0x1d78d: 0x6c268820, 0x1d78e: 0x6c9a4e20, 0x1d78f: 0x6d0f9a20, + 0x1d790: 0x6d1fbc20, 0x1d791: 0x6d1fb420, 0x1d792: 0x6c3b6620, 0x1d793: 0x6c033e20, + 0x1d794: 0x6c42b820, 0x1d795: 0x6d104a20, 0x1d796: 0x6c477620, 0x1d797: 0x6cbaaa20, + 0x1d798: 0x6d29d620, 0x1d799: 0x6c42ba20, 0x1d79a: 0x6c8cf620, 0x1d79b: 0x6d176e20, + 0x1d79c: 0x6d3aee20, 0x1d79d: 0x6c2b2820, 0x1d79e: 0x6d04c820, 0x1d79f: 0x6cbb3c20, + 0x1d7a0: 0x6d14fa20, 0x1d7a1: 0x6cfcca20, 0x1d7a2: 0x6cc67c20, 0x1d7a3: 0x6cc44a20, + 0x1d7a4: 0x6cc44c20, 0x1d7a5: 0x6cbb4420, 0x1d7a6: 0x6c588220, 0x1d7a7: 0x6cdd2620, + 0x1d7a8: 0x6cfcdc20, 0x1d7a9: 0x6d17fe20, 0x1d7aa: 0x6d107a20, 0x1d7ab: 0x6cbad220, + 0x1d7ac: 0x6cb9c220, 0x1d7ad: 0x6d218820, 0x1d7ae: 0x6c44dc20, 0x1d7af: 0x6c6b2220, + 0x1d7b0: 0x6ce0cc20, 0x1d7b1: 0x6d25ac20, 0x1d7b2: 0x6cf6d420, 0x1d7b3: 0x6c38d820, + 0x1d7b4: 0x6ccd1a20, 0x1d7b5: 0x6c3ba220, 0x1d7b6: 0x6ccd1e20, 0x1d7b7: 0x6c88d820, + 0x1d7b8: 0x6c827420, 0x1d7b9: 0x6c44e420, 0x1d7ba: 0x6caa0820, 0x1d7bb: 0x6cbb5e20, + 0x1d7bc: 0x6c164620, 0x1d7bd: 0x6d221c20, 0x1d7be: 0x6c461020, 0x1d7bf: 0x6d170420, + // Block 0x75f, offset 0x1d7c0 + 0x1d7c0: 0x6c1cbe20, 0x1d7c1: 0x6cf22220, 0x1d7c2: 0x6c3b2420, 0x1d7c3: 0x6c533020, + 0x1d7c4: 0x6c1c0820, 0x1d7c5: 0x6c1c0a20, 0x1d7c6: 0x6c252a20, 0x1d7c7: 0x6c3e6020, + 0x1d7c8: 0x6cf9b220, 0x1d7c9: 0x6c079c20, 0x1d7ca: 0x6d177020, 0x1d7cb: 0x6c7e4220, + 0x1d7cc: 0x6d177220, 0x1d7cd: 0x6caf6220, 0x1d7ce: 0x6c8cf820, 0x1d7cf: 0x6c8f2e20, + 0x1d7d0: 0x6d360020, 0x1d7d1: 0x6cc18e20, 0x1d7d2: 0x6cf77a20, 0x1d7d3: 0x6d00ae20, + 0x1d7d4: 0x6cfdc620, 0x1d7d5: 0x6cf62420, 0x1d7d6: 0x6cf88e20, 0x1d7d7: 0x6c785020, + 0x1d7d8: 0x6cbc4620, 0x1d7d9: 0x6c5bcc20, 0x1d7da: 0x6c5aba20, 0x1d7db: 0x6cfecc20, + 0x1d7dc: 0x6ccc5e20, 0x1d7dd: 0x6c536620, 0x1d7de: 0x6c676c20, 0x1d7df: 0x6c2b7e20, + 0x1d7e0: 0x6c255220, 0x1d7e1: 0x6c3a6420, 0x1d7e2: 0x6c2a2620, 0x1d7e3: 0x6ccc6a20, + 0x1d7e4: 0x6c1c4a20, 0x1d7e5: 0x6d3b1620, 0x1d7e6: 0x6c65d220, 0x1d7e7: 0x6d07c420, + 0x1d7e8: 0x6c1c6220, 0x1d7e9: 0x6cb0fe20, 0x1d7ea: 0x6d3fb820, 0x1d7eb: 0x6cece620, + 0x1d7ec: 0x6c5aea20, 0x1d7ed: 0x6c542820, 0x1d7ee: 0x6c517420, 0x1d7ef: 0x6c51e820, + 0x1d7f0: 0x6c4f0a20, 0x1d7f1: 0x6c027220, 0x1d7f2: 0x6cb16820, 0x1d7f3: 0x6d18d020, + 0x1d7f4: 0x6c885420, 0x1d7f5: 0x6c543420, 0x1d7f6: 0x6c030820, 0x1d7f7: 0x6c8bf220, + 0x1d7f8: 0x6cae4820, 0x1d7f9: 0x6cbc6a20, 0x1d7fa: 0x6c027e20, 0x1d7fb: 0x6c386420, + 0x1d7fc: 0x6d18d220, 0x1d7fd: 0x6c5c8020, 0x1d7fe: 0x6d07e420, 0x1d7ff: 0x6c2a4a20, + // Block 0x760, offset 0x1d800 + 0x1d800: 0x6d124420, 0x1d801: 0x6c819a20, 0x1d802: 0x6c819820, 0x1d803: 0x6c779c20, + 0x1d804: 0x6c996620, 0x1d805: 0x6d30d220, 0x1d806: 0x6cb5a820, 0x1d807: 0x6c467a20, + 0x1d808: 0x6c468020, 0x1d809: 0x6c467c20, 0x1d80a: 0x6c2f3420, 0x1d80b: 0x6c2eb020, + 0x1d80c: 0x6c373020, 0x1d80d: 0x6cd64620, 0x1d80e: 0x6cc85620, 0x1d80f: 0x6ca3b220, + 0x1d810: 0x6ca3b420, 0x1d811: 0x6c329220, 0x1d812: 0x6c82b220, 0x1d813: 0x6ce63220, + 0x1d814: 0x6d3efc20, 0x1d815: 0x6c44c220, 0x1d816: 0x6c17b620, 0x1d817: 0x6c503220, + 0x1d818: 0x6d27a020, 0x1d819: 0x6c03b020, 0x1d81a: 0x6caf6420, 0x1d81b: 0x6d14ec20, + 0x1d81c: 0x6cd8bc20, 0x1d81d: 0x6cc26e20, 0x1d81e: 0x6c635220, 0x1d81f: 0x6c723220, + 0x1d820: 0x6c5d5620, 0x1d821: 0x6c1e8e20, 0x1d822: 0x6c81d420, 0x1d823: 0x6c951c20, + 0x1d824: 0x6c607020, 0x1d825: 0x6ce0c620, 0x1d826: 0x6cab8e20, 0x1d827: 0x6c90b420, + 0x1d828: 0x6caa2820, 0x1d829: 0x6c67be20, 0x1d82a: 0x6cad1e20, 0x1d82b: 0x6d2c5620, + 0x1d82c: 0x6c90be20, 0x1d82d: 0x6c5f7020, 0x1d82e: 0x6c81e420, 0x1d82f: 0x6c5e2e20, + 0x1d830: 0x6d1ed420, 0x1d831: 0x6ca1a020, 0x1d832: 0x6c580420, 0x1d833: 0x6c378420, + 0x1d834: 0x6d169620, 0x1d835: 0x6c2f5420, 0x1d836: 0x6d127420, 0x1d837: 0x6c264420, + 0x1d838: 0x6cd95820, 0x1d839: 0x6cbd6820, 0x1d83a: 0x6d27a220, 0x1d83b: 0x6c1b9420, + 0x1d83c: 0x6c27ca20, 0x1d83d: 0x6c27cc20, 0x1d83e: 0x6c533420, 0x1d83f: 0x6c450220, + // Block 0x761, offset 0x1d840 + 0x1d840: 0x6d344820, 0x1d841: 0x6cacb220, 0x1d842: 0x6ca80c20, 0x1d843: 0x6c27d420, + 0x1d844: 0x6d31d620, 0x1d845: 0x6c181a20, 0x1d846: 0x6c8cfa20, 0x1d847: 0x6d32ba20, + 0x1d848: 0x6d1fc220, 0x1d849: 0x6cec3020, 0x1d84a: 0x6c89e420, 0x1d84b: 0x6c8f8c20, + 0x1d84c: 0x6d345c20, 0x1d84d: 0x6ca90220, 0x1d84e: 0x6ce55e20, 0x1d84f: 0x6c375c20, + 0x1d850: 0x6d0bb420, 0x1d851: 0x6ce5f020, 0x1d852: 0x6c485e20, 0x1d853: 0x6d077220, + 0x1d854: 0x6c880420, 0x1d855: 0x6c504620, 0x1d856: 0x6cd16e20, 0x1d857: 0x6c8b1a20, + 0x1d858: 0x6cb24420, 0x1d859: 0x6c6dce20, 0x1d85a: 0x6c726c20, 0x1d85b: 0x6c08ee20, + 0x1d85c: 0x6c2bfe20, 0x1d85d: 0x6c4c7c20, 0x1d85e: 0x6cf1a220, 0x1d85f: 0x6d071a20, + 0x1d860: 0x6cb25820, 0x1d861: 0x6c232e20, 0x1d862: 0x6c2fc820, 0x1d863: 0x6ca5f820, + 0x1d864: 0x6ce68c20, 0x1d865: 0x6c71d020, 0x1d866: 0x6c234820, 0x1d867: 0x6c7c4220, + 0x1d868: 0x6c894420, 0x1d869: 0x6c7d1220, 0x1d86a: 0x6c234a20, 0x1d86b: 0x6c884020, + 0x1d86c: 0x6cf26020, 0x1d86d: 0x6c7d1420, 0x1d86e: 0x6c885820, 0x1d86f: 0x6c886820, + 0x1d870: 0x6c236620, 0x1d871: 0x6c027420, 0x1d872: 0x6cd11820, 0x1d873: 0x6cd96e20, + 0x1d874: 0x6ce64c20, 0x1d875: 0x6c7d2a20, 0x1d876: 0x6ca88820, 0x1d877: 0x6d34aa20, + 0x1d878: 0x6c281020, 0x1d879: 0x6ca93420, 0x1d87a: 0x6cbc8a20, 0x1d87b: 0x6ca65e20, + 0x1d87c: 0x6ce65220, 0x1d87d: 0x6ce65620, 0x1d87e: 0x6c8ff820, 0x1d87f: 0x6d22c620, + // Block 0x762, offset 0x1d880 + 0x1d880: 0x6d22b620, 0x1d881: 0x6d2fac20, 0x1d882: 0x6cd8ac20, 0x1d883: 0x6cda8220, + 0x1d884: 0x6d180020, 0x1d885: 0x6cdad820, 0x1d886: 0x6cd8ca20, 0x1d887: 0x6d2fcc20, + 0x1d888: 0x6d2fce20, 0x1d889: 0x6cc78220, 0x1d88a: 0x6d164c20, 0x1d88b: 0x6c81fe20, + 0x1d88c: 0x6c5e8020, 0x1d88d: 0x6cbffe20, 0x1d88e: 0x6c78f220, 0x1d88f: 0x6c12b620, + 0x1d890: 0x6c437020, 0x1d891: 0x6c0eb020, 0x1d892: 0x6c58f020, 0x1d893: 0x6c597a20, + 0x1d894: 0x6d15c220, 0x1d895: 0x6cc5c820, 0x1d896: 0x6cffd220, 0x1d897: 0x6cc7f620, + 0x1d898: 0x6d38d820, 0x1d899: 0x6d25fc20, 0x1d89a: 0x6c323820, 0x1d89b: 0x6c425a20, + 0x1d89c: 0x6cc65420, 0x1d89d: 0x6c416e20, 0x1d89e: 0x6c138020, 0x1d89f: 0x6cf2d220, + 0x1d8a0: 0x6c169820, 0x1d8a1: 0x6c476020, 0x1d8a2: 0x6d33a220, 0x1d8a3: 0x6c4dd620, + 0x1d8a4: 0x6c3d4420, 0x1d8a5: 0x6c3a3220, 0x1d8a6: 0x6c3b6420, 0x1d8a7: 0x6cadb220, + 0x1d8a8: 0x6cad2820, 0x1d8a9: 0x6c647020, 0x1d8aa: 0x6c39a820, 0x1d8ab: 0x6d3ccc20, + 0x1d8ac: 0x6d1f0220, 0x1d8ad: 0x6ca31420, 0x1d8ae: 0x6c01e820, 0x1d8af: 0x6c78f620, + 0x1d8b0: 0x6cc46420, 0x1d8b1: 0x6c456820, 0x1d8b2: 0x6d22da20, 0x1d8b3: 0x6cf1d020, + 0x1d8b4: 0x6d10d020, 0x1d8b5: 0x6cb58c20, 0x1d8b6: 0x6cafc020, 0x1d8b7: 0x6cb9f620, + 0x1d8b8: 0x6cf59220, 0x1d8b9: 0x6cf59420, 0x1d8ba: 0x6c3a8c20, 0x1d8bb: 0x6c78f820, + 0x1d8bc: 0x6c6e1220, 0x1d8bd: 0x6cdf6420, 0x1d8be: 0x6cd09020, 0x1d8bf: 0x6d37e620, + // Block 0x763, offset 0x1d8c0 + 0x1d8c0: 0x6d2f2820, 0x1d8c1: 0x6d007220, 0x1d8c2: 0x6cd09620, 0x1d8c3: 0x6cf07e20, + 0x1d8c4: 0x6d391220, 0x1d8c5: 0x6c2e7820, 0x1d8c6: 0x6c282c20, 0x1d8c7: 0x6c3a9020, + 0x1d8c8: 0x6c037220, 0x1d8c9: 0x6c0ec820, 0x1d8ca: 0x6cc17c20, 0x1d8cb: 0x6ce49420, + 0x1d8cc: 0x6c06f220, 0x1d8cd: 0x6c484a20, 0x1d8ce: 0x6cdf0420, 0x1d8cf: 0x6d3ef220, + 0x1d8d0: 0x6c7a3220, 0x1d8d1: 0x6d33b420, 0x1d8d2: 0x6ca68820, 0x1d8d3: 0x6cb28a20, + 0x1d8d4: 0x6d3f5420, 0x1d8d5: 0x6c3f4c20, 0x1d8d6: 0x6cad2a20, 0x1d8d7: 0x6d313020, + 0x1d8d8: 0x6cfb3820, 0x1d8d9: 0x6d428820, 0x1d8da: 0x6cadb820, 0x1d8db: 0x6c640820, + 0x1d8dc: 0x6cd15620, 0x1d8dd: 0x6d33b620, 0x1d8de: 0x6c05ac20, 0x1d8df: 0x6ca23620, + 0x1d8e0: 0x6cc0ee20, 0x1d8e1: 0x6c552e20, 0x1d8e2: 0x6c77ea20, 0x1d8e3: 0x6c1b8620, + 0x1d8e4: 0x6d1b4020, 0x1d8e5: 0x6d057a20, 0x1d8e6: 0x6d0f5220, 0x1d8e7: 0x6c8f7a20, + 0x1d8e8: 0x6c306620, 0x1d8e9: 0x6c761c20, 0x1d8ea: 0x6c914620, 0x1d8eb: 0x6c6e5c20, + 0x1d8ec: 0x6caa5820, 0x1d8ed: 0x6d0bea20, 0x1d8ee: 0x6cacd020, 0x1d8ef: 0x6c7ae820, + 0x1d8f0: 0x6d14d620, 0x1d8f1: 0x6c49e820, 0x1d8f2: 0x6c4d3e20, 0x1d8f3: 0x6c438220, + 0x1d8f4: 0x6c307020, 0x1d8f5: 0x6c1aa220, 0x1d8f6: 0x6c683e20, 0x1d8f7: 0x6d046420, + 0x1d8f8: 0x6d046620, 0x1d8f9: 0x6c374c20, 0x1d8fa: 0x6c01b020, 0x1d8fb: 0x6c526020, + 0x1d8fc: 0x6cb10a20, 0x1d8fd: 0x6ca5a420, 0x1d8fe: 0x6d3f5620, 0x1d8ff: 0x6c4a4c20, + // Block 0x764, offset 0x1d900 + 0x1d900: 0x6c19e220, 0x1d901: 0x6ce5c020, 0x1d902: 0x6d33ce20, 0x1d903: 0x6c252c20, + 0x1d904: 0x6c99e620, 0x1d905: 0x6d009220, 0x1d906: 0x6c252e20, 0x1d907: 0x6d009420, + 0x1d908: 0x6c972e20, 0x1d909: 0x6c972a20, 0x1d90a: 0x6c600420, 0x1d90b: 0x6d029e20, + 0x1d90c: 0x6ca8f020, 0x1d90d: 0x6c7b2020, 0x1d90e: 0x6cc97220, 0x1d90f: 0x6d2a0420, + 0x1d910: 0x6cb5aa20, 0x1d911: 0x6ca4e820, 0x1d912: 0x6c9cec20, 0x1d913: 0x6ca9b820, + 0x1d914: 0x6c943a20, 0x1d915: 0x6ced7c20, 0x1d916: 0x6c0ef420, 0x1d917: 0x6cf1d820, + 0x1d918: 0x6ced0e20, 0x1d919: 0x6d04d020, 0x1d91a: 0x6c68ea20, 0x1d91b: 0x6c6e7a20, + 0x1d91c: 0x6d1fc420, 0x1d91d: 0x6c524e20, 0x1d91e: 0x6c260820, 0x1d91f: 0x6c8b0820, + 0x1d920: 0x6cccdc20, 0x1d921: 0x6ce6c420, 0x1d922: 0x6c99f020, 0x1d923: 0x6c214420, + 0x1d924: 0x6cd0a220, 0x1d925: 0x6cba0420, 0x1d926: 0x6c2a9220, 0x1d927: 0x6c72ee20, + 0x1d928: 0x6c243820, 0x1d929: 0x6d04cc20, 0x1d92a: 0x6d032e20, 0x1d92b: 0x6ceac220, + 0x1d92c: 0x6cad3820, 0x1d92d: 0x6c19f220, 0x1d92e: 0x6ca56c20, 0x1d92f: 0x6cb43620, + 0x1d930: 0x6c311420, 0x1d931: 0x6ceac420, 0x1d932: 0x6ca7d620, 0x1d933: 0x6ca53e20, + 0x1d934: 0x6cb05a20, 0x1d935: 0x6c478220, 0x1d936: 0x6c954020, 0x1d937: 0x6c85fc20, + 0x1d938: 0x6c88b820, 0x1d939: 0x6d2f3020, 0x1d93a: 0x6c254020, 0x1d93b: 0x6c6a1c20, + 0x1d93c: 0x6c899420, 0x1d93d: 0x6cd6fc20, 0x1d93e: 0x6caff420, 0x1d93f: 0x6c0bfe20, + // Block 0x765, offset 0x1d940 + 0x1d940: 0x6c94fc20, 0x1d941: 0x6cb11020, 0x1d942: 0x6c82c420, 0x1d943: 0x6c7cfe20, + 0x1d944: 0x6c20d620, 0x1d945: 0x6c288c20, 0x1d946: 0x6ce4fa20, 0x1d947: 0x6ca57020, + 0x1d948: 0x6c6dbc20, 0x1d949: 0x6ca37a20, 0x1d94a: 0x6c7e7820, 0x1d94b: 0x6d12f420, + 0x1d94c: 0x6d0c0e20, 0x1d94d: 0x6cc5f420, 0x1d94e: 0x6cd0a420, 0x1d94f: 0x6c21c220, + 0x1d950: 0x6c3f7820, 0x1d951: 0x6c3f6a20, 0x1d952: 0x6c709620, 0x1d953: 0x6c3a3620, + 0x1d954: 0x6cbabc20, 0x1d955: 0x6ced8820, 0x1d956: 0x6c307c20, 0x1d957: 0x6caff620, + 0x1d958: 0x6c4c6e20, 0x1d959: 0x6d3f9220, 0x1d95a: 0x6c2fa820, 0x1d95b: 0x6cf2fe20, + 0x1d95c: 0x6c9a6020, 0x1d95d: 0x6ca5f420, 0x1d95e: 0x6d3bd020, 0x1d95f: 0x6c1c3420, + 0x1d960: 0x6c23f020, 0x1d961: 0x6c954820, 0x1d962: 0x6cab8020, 0x1d963: 0x6c2c6e20, + 0x1d964: 0x6c013c20, 0x1d965: 0x6d038220, 0x1d966: 0x6ca50420, 0x1d967: 0x6cd5ea20, + 0x1d968: 0x6cd69220, 0x1d969: 0x6ca42e20, 0x1d96a: 0x6d283c20, 0x1d96b: 0x6d380020, + 0x1d96c: 0x6cc78620, 0x1d96d: 0x6c366020, 0x1d96e: 0x6cc9ca20, 0x1d96f: 0x6ce8c820, + 0x1d970: 0x6d10ae20, 0x1d971: 0x6c669220, 0x1d972: 0x6cefe620, 0x1d973: 0x6c690e20, + 0x1d974: 0x6d213220, 0x1d975: 0x6c637220, 0x1d976: 0x6c32d020, 0x1d977: 0x6c09d820, + 0x1d978: 0x6c16b220, 0x1d979: 0x6c401220, 0x1d97a: 0x6cfcde20, 0x1d97b: 0x6ca6b020, + 0x1d97c: 0x6c9e2e20, 0x1d97d: 0x6cec3820, 0x1d97e: 0x6ce2a220, 0x1d97f: 0x6ce9e620, + // Block 0x766, offset 0x1d980 + 0x1d980: 0x6c055620, 0x1d981: 0x6cba1820, 0x1d982: 0x6c93a820, 0x1d983: 0x6cec3a20, + 0x1d984: 0x6cda3e20, 0x1d985: 0x6ce11c20, 0x1d986: 0x6cdaee20, 0x1d987: 0x6d3c9820, + 0x1d988: 0x6c441420, 0x1d989: 0x6d183220, 0x1d98a: 0x6c100a20, 0x1d98b: 0x6c89fa20, + 0x1d98c: 0x6c607220, 0x1d98d: 0x6cb00a20, 0x1d98e: 0x6d00d020, 0x1d98f: 0x6c42d020, + 0x1d990: 0x6c93b420, 0x1d991: 0x6c0d8420, 0x1d992: 0x6cab6c20, 0x1d993: 0x6c16c220, + 0x1d994: 0x6c92ae20, 0x1d995: 0x6c4c8220, 0x1d996: 0x6cace020, 0x1d997: 0x6c1fbc20, + 0x1d998: 0x6c0c1a20, 0x1d999: 0x6c67c020, 0x1d99a: 0x6c3d9220, 0x1d99b: 0x6ce12c20, + 0x1d99c: 0x6ca06e20, 0x1d99d: 0x6cf6ac20, 0x1d99e: 0x6d3b8e20, 0x1d99f: 0x6c93f820, + 0x1d9a0: 0x6c686e20, 0x1d9a1: 0x6d1d4420, 0x1d9a2: 0x6c936220, 0x1d9a3: 0x6d36be20, + 0x1d9a4: 0x6d098620, 0x1d9a5: 0x6c211e20, 0x1d9a6: 0x6c8c6620, 0x1d9a7: 0x6ce78e20, + 0x1d9a8: 0x6caec820, 0x1d9a9: 0x6ca6cc20, 0x1d9aa: 0x6c1fcc20, 0x1d9ab: 0x6c8a1e20, + 0x1d9ac: 0x6c256620, 0x1d9ad: 0x6c4a8e20, 0x1d9ae: 0x6cff1620, 0x1d9af: 0x6ce29020, + 0x1d9b0: 0x6c38c220, 0x1d9b1: 0x6d349a20, 0x1d9b2: 0x6c688020, 0x1d9b3: 0x6ccdb420, + 0x1d9b4: 0x6c550420, 0x1d9b5: 0x6c255c20, 0x1d9b6: 0x6cc90a20, 0x1d9b7: 0x6cfd8a20, + 0x1d9b8: 0x6cdc1020, 0x1d9b9: 0x6c3bf020, 0x1d9ba: 0x6d1c0020, 0x1d9bb: 0x6ccd1620, + 0x1d9bc: 0x6d3b5c20, 0x1d9bd: 0x6c284c20, 0x1d9be: 0x6c7b4020, 0x1d9bf: 0x6ca9d220, + // Block 0x767, offset 0x1d9c0 + 0x1d9c0: 0x6cea7020, 0x1d9c1: 0x6c886a20, 0x1d9c2: 0x6c0a7620, 0x1d9c3: 0x6d1dc020, + 0x1d9c4: 0x6c74cc20, 0x1d9c5: 0x6c1f8020, 0x1d9c6: 0x6d18d420, 0x1d9c7: 0x6c732c20, + 0x1d9c8: 0x6c7e9820, 0x1d9c9: 0x6c88ce20, 0x1d9ca: 0x6ccac420, 0x1d9cb: 0x6cea7420, + 0x1d9cc: 0x6c47da20, 0x1d9cd: 0x6cb67820, 0x1d9ce: 0x6c257c20, 0x1d9cf: 0x6c0d8e20, + 0x1d9d0: 0x6d09bc20, 0x1d9d1: 0x6ca53a20, 0x1d9d2: 0x6cf32020, 0x1d9d3: 0x6d2a0e20, + 0x1d9d4: 0x6cfd3420, 0x1d9d5: 0x6c0c4420, 0x1d9d6: 0x6d044020, 0x1d9d7: 0x6c7b5c20, + 0x1d9d8: 0x6c7eaa20, 0x1d9d9: 0x6d0c4220, 0x1d9da: 0x6c918820, 0x1d9db: 0x6c5e4220, + 0x1d9dc: 0x6d28a020, 0x1d9dd: 0x6c95cc20, 0x1d9de: 0x6cc21020, 0x1d9df: 0x6d2a1020, + 0x1d9e0: 0x6c946c20, 0x1d9e1: 0x6ca61e20, 0x1d9e2: 0x6d28aa20, 0x1d9e3: 0x6c189420, + 0x1d9e4: 0x6cb8b620, 0x1d9e5: 0x6cf2da20, 0x1d9e6: 0x6c4a2420, 0x1d9e7: 0x6d29e220, + 0x1d9e8: 0x6c8bea20, 0x1d9e9: 0x6c4a0e20, 0x1d9ea: 0x6d3f2a20, 0x1d9eb: 0x6c68c420, + 0x1d9ec: 0x6ca80e20, 0x1d9ed: 0x6c1e4020, 0x1d9ee: 0x6c620c20, 0x1d9ef: 0x6c42c820, + 0x1d9f0: 0x6c1e4420, 0x1d9f1: 0x6c9dce20, 0x1d9f2: 0x6ca87420, 0x1d9f3: 0x6d357020, + 0x1d9f4: 0x6d35c620, 0x1d9f5: 0x6c43f220, 0x1d9f6: 0x6c669420, 0x1d9f7: 0x6c2eb220, + 0x1d9f8: 0x6d33e420, 0x1d9f9: 0x6d04d820, 0x1d9fa: 0x6cdf3220, 0x1d9fb: 0x6d319820, + 0x1d9fc: 0x6c6fd020, 0x1d9fd: 0x6cfc8420, 0x1d9fe: 0x6d20ca20, 0x1d9ff: 0x6c138620, + // Block 0x768, offset 0x1da00 + 0x1da00: 0x6d11a420, 0x1da01: 0x6d20e820, 0x1da02: 0x6c1cc220, 0x1da03: 0x6cf89020, + 0x1da04: 0x6cf89220, 0x1da05: 0x6c700620, 0x1da06: 0x6d217a20, 0x1da07: 0x6d227220, + 0x1da08: 0x6d043820, 0x1da09: 0x6c71d420, 0x1da0a: 0x6c702a20, 0x1da0b: 0x6d035820, + 0x1da0c: 0x6ccf0620, 0x1da0d: 0x6ccf2820, 0x1da0e: 0x6ccf9620, 0x1da0f: 0x6c6fb220, + 0x1da10: 0x6cd36020, 0x1da11: 0x6cdfa420, 0x1da12: 0x6cd4e220, 0x1da13: 0x6cd3b620, + 0x1da14: 0x6ce50820, 0x1da15: 0x6ce0a420, 0x1da16: 0x6cb4b020, 0x1da17: 0x6cb4b220, + 0x1da18: 0x6c496420, 0x1da19: 0x6c57cc20, 0x1da1a: 0x6ce54020, 0x1da1b: 0x6c201620, + 0x1da1c: 0x6cd75220, 0x1da1d: 0x6cf9d820, 0x1da1e: 0x6cf45e20, 0x1da1f: 0x6d385220, + 0x1da20: 0x6c29be20, 0x1da21: 0x6c1ff420, 0x1da22: 0x6cccd620, 0x1da23: 0x6d15d420, + 0x1da24: 0x6c397c20, 0x1da25: 0x6cabc020, 0x1da26: 0x6cdf6a20, 0x1da27: 0x6c389420, + 0x1da28: 0x6c04c820, 0x1da29: 0x6c1ff620, 0x1da2a: 0x6c4f6c20, 0x1da2b: 0x6c39d420, + 0x1da2c: 0x6c047a20, 0x1da2d: 0x6c08d420, 0x1da2e: 0x6c934820, 0x1da2f: 0x6d37b020, + 0x1da30: 0x6c667220, 0x1da31: 0x6c122a20, 0x1da32: 0x6c8cfc20, 0x1da33: 0x6d3a1020, + 0x1da34: 0x6d2ac620, 0x1da35: 0x6c34f220, 0x1da36: 0x6c0ef620, 0x1da37: 0x6cfb5020, + 0x1da38: 0x6c447620, 0x1da39: 0x6c1ff820, 0x1da3a: 0x6cf9b420, 0x1da3b: 0x6c914e20, + 0x1da3c: 0x6cbf2e20, 0x1da3d: 0x6cacfc20, 0x1da3e: 0x6cf62a20, 0x1da3f: 0x6c7af420, + // Block 0x769, offset 0x1da40 + 0x1da40: 0x6c3ea420, 0x1da41: 0x6d2a8620, 0x1da42: 0x6c3cb220, 0x1da43: 0x6c83f220, + 0x1da44: 0x6cce7820, 0x1da45: 0x6d216420, 0x1da46: 0x6c80d220, 0x1da47: 0x6ce6ce20, + 0x1da48: 0x6d237820, 0x1da49: 0x6cefe820, 0x1da4a: 0x6c0f3220, 0x1da4b: 0x6c9be020, + 0x1da4c: 0x6ca76c20, 0x1da4d: 0x6c70b420, 0x1da4e: 0x6c59f420, 0x1da4f: 0x6cd44a20, + 0x1da50: 0x6c78d020, 0x1da51: 0x6c0bb820, 0x1da52: 0x6ca2a620, 0x1da53: 0x6c2ede20, + 0x1da54: 0x6c315c20, 0x1da55: 0x6c059020, 0x1da56: 0x6c13ae20, 0x1da57: 0x6d18b220, + 0x1da58: 0x6cd9d820, 0x1da59: 0x6c123a20, 0x1da5a: 0x6c129c20, 0x1da5b: 0x6c90c020, + 0x1da5c: 0x6c279820, 0x1da5d: 0x6d098a20, 0x1da5e: 0x6d123420, 0x1da5f: 0x6c1cee20, + 0x1da60: 0x6c2b0820, 0x1da61: 0x6c291c20, 0x1da62: 0x6cbb2c20, 0x1da63: 0x6c91f620, + 0x1da64: 0x6d162220, 0x1da65: 0x6c60e020, 0x1da66: 0x6c670e20, 0x1da67: 0x6c5e3020, + 0x1da68: 0x6c9b8620, 0x1da69: 0x6cb69820, 0x1da6a: 0x6c91fe20, 0x1da6b: 0x6c919a20, + 0x1da6c: 0x6c157220, 0x1da6d: 0x6cd6c020, 0x1da6e: 0x6c449e20, 0x1da6f: 0x6c894620, + 0x1da70: 0x6c647220, 0x1da71: 0x6c650020, 0x1da72: 0x6ccb1420, 0x1da73: 0x6d0e5420, + 0x1da74: 0x6c3e6820, 0x1da75: 0x6cb25a20, 0x1da76: 0x6d0eea20, 0x1da77: 0x6d0f1c20, + 0x1da78: 0x6c12aa20, 0x1da79: 0x6c12c020, 0x1da7a: 0x6d164220, 0x1da7b: 0x6c821220, + 0x1da7c: 0x6ce62820, 0x1da7d: 0x6c681e20, 0x1da7e: 0x6c008420, 0x1da7f: 0x6ca39020, + // Block 0x76a, offset 0x1da80 + 0x1da80: 0x6ce56820, 0x1da81: 0x6c682020, 0x1da82: 0x6c6a5a20, 0x1da83: 0x6cae8c20, + 0x1da84: 0x6cecbe20, 0x1da85: 0x6d167020, 0x1da86: 0x6c145e20, 0x1da87: 0x6c9db820, + 0x1da88: 0x6c9cd820, 0x1da89: 0x6c416220, 0x1da8a: 0x6cb89e20, 0x1da8b: 0x6d22c820, + 0x1da8c: 0x6d22ca20, 0x1da8d: 0x6cce9620, 0x1da8e: 0x6cbeee20, 0x1da8f: 0x6c323020, + 0x1da90: 0x6c564c20, 0x1da91: 0x6cb6ce20, 0x1da92: 0x6c982c20, 0x1da93: 0x6d3f2e20, + 0x1da94: 0x6c5ba020, 0x1da95: 0x6cdbaa20, 0x1da96: 0x6d357220, 0x1da97: 0x6cfd6020, + 0x1da98: 0x6cafb020, 0x1da99: 0x6c3ddc20, 0x1da9a: 0x6cea4220, 0x1da9b: 0x6cef8a20, + 0x1da9c: 0x6cf3a820, 0x1da9d: 0x6d338420, 0x1da9e: 0x6cb73e20, 0x1da9f: 0x6cccbe20, + 0x1daa0: 0x6cf18020, 0x1daa1: 0x6cba3e20, 0x1daa2: 0x6cc56e20, 0x1daa3: 0x6c3dde20, + 0x1daa4: 0x6c79b620, 0x1daa5: 0x6c6bba20, 0x1daa6: 0x6c913620, 0x1daa7: 0x6d067420, + 0x1daa8: 0x6c5e8220, 0x1daa9: 0x6cbd5420, 0x1daaa: 0x6cb57620, 0x1daab: 0x6d0c5a20, + 0x1daac: 0x6c3b1420, 0x1daad: 0x6c032020, 0x1daae: 0x6cc8c020, 0x1daaf: 0x6d02ac20, + 0x1dab0: 0x6c618a20, 0x1dab1: 0x6c570620, 0x1dab2: 0x6c570820, 0x1dab3: 0x6c398620, + 0x1dab4: 0x6cf4ae20, 0x1dab5: 0x6c73e420, 0x1dab6: 0x6c466c20, 0x1dab7: 0x6d34ee20, + 0x1dab8: 0x6d278420, 0x1dab9: 0x6cbd5620, 0x1daba: 0x6c029e20, 0x1dabb: 0x6c1e7820, + 0x1dabc: 0x6c994620, 0x1dabd: 0x6d0b1420, 0x1dabe: 0x6c3a8020, 0x1dabf: 0x6cc63220, + // Block 0x76b, offset 0x1dac0 + 0x1dac0: 0x6c4f5a20, 0x1dac1: 0x6c22fc20, 0x1dac2: 0x6d1a2a20, 0x1dac3: 0x6d1fa220, + 0x1dac4: 0x6c0b7420, 0x1dac5: 0x6d169a20, 0x1dac6: 0x6cbd1020, 0x1dac7: 0x6cef8c20, + 0x1dac8: 0x6c858420, 0x1dac9: 0x6cb05420, 0x1daca: 0x6c35d420, 0x1dacb: 0x6cfc7c20, + 0x1dacc: 0x6c169a20, 0x1dacd: 0x6c122420, 0x1dace: 0x6d3aa620, 0x1dacf: 0x6cda4820, + 0x1dad0: 0x6ce30e20, 0x1dad1: 0x6d260220, 0x1dad2: 0x6cc4ae20, 0x1dad3: 0x6c8cb020, + 0x1dad4: 0x6cdf1a20, 0x1dad5: 0x6cce9820, 0x1dad6: 0x6c2b5c20, 0x1dad7: 0x6c9e6e20, + 0x1dad8: 0x6cbe9c20, 0x1dad9: 0x6c859620, 0x1dada: 0x6d1e7220, 0x1dadb: 0x6c77d820, + 0x1dadc: 0x6ca27220, 0x1dadd: 0x6c06ee20, 0x1dade: 0x6c05a820, 0x1dadf: 0x6c467220, + 0x1dae0: 0x6c9f3420, 0x1dae1: 0x6d15c420, 0x1dae2: 0x6d15ca20, 0x1dae3: 0x6c720020, + 0x1dae4: 0x6cb1de20, 0x1dae5: 0x6cc91420, 0x1dae6: 0x6c7a7620, 0x1dae7: 0x6ca8fa20, + 0x1dae8: 0x6ca62c20, 0x1dae9: 0x6c0ebc20, 0x1daea: 0x6c0dc820, 0x1daeb: 0x6cccc620, + 0x1daec: 0x6d051a20, 0x1daed: 0x6d119220, 0x1daee: 0x6cfa8420, 0x1daef: 0x6c079620, + 0x1daf0: 0x6c530620, 0x1daf1: 0x6d1ba220, 0x1daf2: 0x6d2c7420, 0x1daf3: 0x6c2fe220, + 0x1daf4: 0x6c706020, 0x1daf5: 0x6c2e6220, 0x1daf6: 0x6ca7de20, 0x1daf7: 0x6c417e20, + 0x1daf8: 0x6c54a820, 0x1daf9: 0x6cb27c20, 0x1dafa: 0x6c99dc20, 0x1dafb: 0x6c3e0220, + 0x1dafc: 0x6cd0e820, 0x1dafd: 0x6c46f620, 0x1dafe: 0x6c093e20, 0x1daff: 0x6cf07620, + // Block 0x76c, offset 0x1db00 + 0x1db00: 0x6c3e0420, 0x1db01: 0x6d3d2e20, 0x1db02: 0x6c994c20, 0x1db03: 0x6c393220, + 0x1db04: 0x6c633020, 0x1db05: 0x6c98cc20, 0x1db06: 0x6c98ce20, 0x1db07: 0x6c036a20, + 0x1db08: 0x6c223220, 0x1db09: 0x6ca0d620, 0x1db0a: 0x6d3e0620, 0x1db0b: 0x6c2be020, + 0x1db0c: 0x6c1b0a20, 0x1db0d: 0x6c61b220, 0x1db0e: 0x6c6d9420, 0x1db0f: 0x6c8f6e20, + 0x1db10: 0x6c23e220, 0x1db11: 0x6ca78e20, 0x1db12: 0x6d256c20, 0x1db13: 0x6d08fe20, + 0x1db14: 0x6d1c5a20, 0x1db15: 0x6cbf0020, 0x1db16: 0x6c43cc20, 0x1db17: 0x6c9ff020, + 0x1db18: 0x6c85ae20, 0x1db19: 0x6cc65c20, 0x1db1a: 0x6d1b3c20, 0x1db1b: 0x6c44b020, + 0x1db1c: 0x6cba4420, 0x1db1d: 0x6c148e20, 0x1db1e: 0x6c18aa20, 0x1db1f: 0x6d22e820, + 0x1db20: 0x6c4fa220, 0x1db21: 0x6d3f3420, 0x1db22: 0x6c8adc20, 0x1db23: 0x6cf3bc20, + 0x1db24: 0x6c61b420, 0x1db25: 0x6c4a4020, 0x1db26: 0x6c22bc20, 0x1db27: 0x6c657620, + 0x1db28: 0x6c223420, 0x1db29: 0x6c469e20, 0x1db2a: 0x6c49e220, 0x1db2b: 0x6c984420, + 0x1db2c: 0x6c13ce20, 0x1db2d: 0x6c683620, 0x1db2e: 0x6c683820, 0x1db2f: 0x6c3e2420, + 0x1db30: 0x6d20ea20, 0x1db31: 0x6d398e20, 0x1db32: 0x6d3e1420, 0x1db33: 0x6c675220, + 0x1db34: 0x6c5b2820, 0x1db35: 0x6d19b620, 0x1db36: 0x6c13d020, 0x1db37: 0x6c380820, + 0x1db38: 0x6cc64e20, 0x1db39: 0x6cc79420, 0x1db3a: 0x6c1cb620, 0x1db3b: 0x6c989220, + 0x1db3c: 0x6ce72c20, 0x1db3d: 0x6d381c20, 0x1db3e: 0x6cb8ac20, 0x1db3f: 0x6d3a0220, + // Block 0x76d, offset 0x1db40 + 0x1db40: 0x6d09f220, 0x1db41: 0x6c586820, 0x1db42: 0x6c3d5420, 0x1db43: 0x6cc2c620, + 0x1db44: 0x6c40ea20, 0x1db45: 0x6c264620, 0x1db46: 0x6c6d9a20, 0x1db47: 0x6d041c20, + 0x1db48: 0x6c201c20, 0x1db49: 0x6c12ac20, 0x1db4a: 0x6c6d9c20, 0x1db4b: 0x6c374820, + 0x1db4c: 0x6c01a820, 0x1db4d: 0x6cbbd420, 0x1db4e: 0x6c1b1220, 0x1db4f: 0x6cc58c20, + 0x1db50: 0x6c666020, 0x1db51: 0x6ce31220, 0x1db52: 0x6c598420, 0x1db53: 0x6cb28e20, + 0x1db54: 0x6c85b020, 0x1db55: 0x6c6c3620, 0x1db56: 0x6c81aa20, 0x1db57: 0x6cd5b620, + 0x1db58: 0x6d3c0e20, 0x1db59: 0x6c268c20, 0x1db5a: 0x6c63a820, 0x1db5b: 0x6cc52220, + 0x1db5c: 0x6c095620, 0x1db5d: 0x6d2ab420, 0x1db5e: 0x6cbbd620, 0x1db5f: 0x6c5ba220, + 0x1db60: 0x6c61b620, 0x1db61: 0x6c295c20, 0x1db62: 0x6d24c020, 0x1db63: 0x6cc65e20, + 0x1db64: 0x6c5cb620, 0x1db65: 0x6d03d420, 0x1db66: 0x6c95ec20, 0x1db67: 0x6d1c5e20, + 0x1db68: 0x6d09f420, 0x1db69: 0x6c6ce420, 0x1db6a: 0x6cdcce20, 0x1db6b: 0x6d19b820, + 0x1db6c: 0x6c971220, 0x1db6d: 0x6c532020, 0x1db6e: 0x6d391420, 0x1db6f: 0x6d11f620, + 0x1db70: 0x6c324c20, 0x1db71: 0x6cefa420, 0x1db72: 0x6c83b020, 0x1db73: 0x6c310820, + 0x1db74: 0x6c3d6020, 0x1db75: 0x6cc59220, 0x1db76: 0x6d1a4c20, 0x1db77: 0x6c50fc20, + 0x1db78: 0x6c08a020, 0x1db79: 0x6c108820, 0x1db7a: 0x6d27e220, 0x1db7b: 0x6c2b6620, + 0x1db7c: 0x6ce89820, 0x1db7d: 0x6cdbba20, 0x1db7e: 0x6cdbbc20, 0x1db7f: 0x6c19d020, + // Block 0x76e, offset 0x1db80 + 0x1db80: 0x6c18b420, 0x1db81: 0x6cf3be20, 0x1db82: 0x6c0ce420, 0x1db83: 0x6cf5d020, + 0x1db84: 0x6c450420, 0x1db85: 0x6c85de20, 0x1db86: 0x6cb43420, 0x1db87: 0x6d3ae020, + 0x1db88: 0x6ca10020, 0x1db89: 0x6c85e020, 0x1db8a: 0x6d3c1420, 0x1db8b: 0x6d423420, + 0x1db8c: 0x6ceab820, 0x1db8d: 0x6cc03820, 0x1db8e: 0x6ccbe420, 0x1db8f: 0x6cdd1220, + 0x1db90: 0x6c18b620, 0x1db91: 0x6cae9620, 0x1db92: 0x6c71ae20, 0x1db93: 0x6c99e820, + 0x1db94: 0x6c9b1220, 0x1db95: 0x6d042420, 0x1db96: 0x6c6da220, 0x1db97: 0x6c17d820, + 0x1db98: 0x6ccfd420, 0x1db99: 0x6c756820, 0x1db9a: 0x6d0c7a20, 0x1db9b: 0x6ce66620, + 0x1db9c: 0x6d1f2020, 0x1db9d: 0x6c261e20, 0x1db9e: 0x6c494c20, 0x1db9f: 0x6c4ea020, + 0x1dba0: 0x6d1fbe20, 0x1dba1: 0x6c262020, 0x1dba2: 0x6c63b420, 0x1dba3: 0x6cede220, + 0x1dba4: 0x6cda9620, 0x1dba5: 0x6ca99220, 0x1dba6: 0x6cce6420, 0x1dba7: 0x6cfcac20, + 0x1dba8: 0x6c811a20, 0x1dba9: 0x6c3e4020, 0x1dbaa: 0x6c355a20, 0x1dbab: 0x6ca10220, + 0x1dbac: 0x6cf20420, 0x1dbad: 0x6c6aa820, 0x1dbae: 0x6ca3f420, 0x1dbaf: 0x6ca27c20, + 0x1dbb0: 0x6c76c820, 0x1dbb1: 0x6c7eee20, 0x1dbb2: 0x6c87f820, 0x1dbb3: 0x6cd26020, + 0x1dbb4: 0x6cf28220, 0x1dbb5: 0x6ce93020, 0x1dbb6: 0x6cfa9620, 0x1dbb7: 0x6c5db220, + 0x1dbb8: 0x6d1f2220, 0x1dbb9: 0x6d1c6020, 0x1dbba: 0x6d1ba820, 0x1dbbb: 0x6c461e20, + 0x1dbbc: 0x6c213e20, 0x1dbbd: 0x6c988a20, 0x1dbbe: 0x6c988c20, 0x1dbbf: 0x6c22c220, + // Block 0x76f, offset 0x1dbc0 + 0x1dbc0: 0x6ced1020, 0x1dbc1: 0x6c6db220, 0x1dbc2: 0x6c2c4e20, 0x1dbc3: 0x6cc18020, + 0x1dbc4: 0x6c2ffe20, 0x1dbc5: 0x6c648c20, 0x1dbc6: 0x6d405020, 0x1dbc7: 0x6c483a20, + 0x1dbc8: 0x6c7e4420, 0x1dbc9: 0x6c924820, 0x1dbca: 0x6c711c20, 0x1dbcb: 0x6cf08620, + 0x1dbcc: 0x6c757020, 0x1dbcd: 0x6ca82220, 0x1dbce: 0x6c7d5c20, 0x1dbcf: 0x6c511a20, + 0x1dbd0: 0x6cb43a20, 0x1dbd1: 0x6d290020, 0x1dbd2: 0x6c430420, 0x1dbd3: 0x6c4cbc20, + 0x1dbd4: 0x6c3e6c20, 0x1dbd5: 0x6c94f620, 0x1dbd6: 0x6c166a20, 0x1dbd7: 0x6c1daa20, + 0x1dbd8: 0x6cd91e20, 0x1dbd9: 0x6c20ca20, 0x1dbda: 0x6d2e5e20, 0x1dbdb: 0x6c9acc20, + 0x1dbdc: 0x6c114420, 0x1dbdd: 0x6c037820, 0x1dbde: 0x6c83c820, 0x1dbdf: 0x6ce8aa20, + 0x1dbe0: 0x6c0e7020, 0x1dbe1: 0x6c4eb620, 0x1dbe2: 0x6c064620, 0x1dbe3: 0x6cbe1220, + 0x1dbe4: 0x6c731e20, 0x1dbe5: 0x6cf60020, 0x1dbe6: 0x6cbd6a20, 0x1dbe7: 0x6c2bf220, + 0x1dbe8: 0x6c6a0420, 0x1dbe9: 0x6cb43820, 0x1dbea: 0x6c296220, 0x1dbeb: 0x6c6c9020, + 0x1dbec: 0x6cbbde20, 0x1dbed: 0x6cdf2220, 0x1dbee: 0x6c44c820, 0x1dbef: 0x6c573420, + 0x1dbf0: 0x6c470c20, 0x1dbf1: 0x6c8cfe20, 0x1dbf2: 0x6c39fe20, 0x1dbf3: 0x6cbd7020, + 0x1dbf4: 0x6c012a20, 0x1dbf5: 0x6cee1620, 0x1dbf6: 0x6c081c20, 0x1dbf7: 0x6d38e220, + 0x1dbf8: 0x6d0c0020, 0x1dbf9: 0x6c709020, 0x1dbfa: 0x6c648e20, 0x1dbfb: 0x6c8c1e20, + 0x1dbfc: 0x6ce05c20, 0x1dbfd: 0x6cd4d420, 0x1dbfe: 0x6ce49e20, 0x1dbff: 0x6c2a1420, + // Block 0x770, offset 0x1dc00 + 0x1dc00: 0x6c561c20, 0x1dc01: 0x6cb5d020, 0x1dc02: 0x6c511c20, 0x1dc03: 0x6c253820, + 0x1dc04: 0x6ce22420, 0x1dc05: 0x6c210420, 0x1dc06: 0x6c098a20, 0x1dc07: 0x6c16aa20, + 0x1dc08: 0x6c586e20, 0x1dc09: 0x6c3aa620, 0x1dc0a: 0x6c7f0020, 0x1dc0b: 0x6cb4ee20, + 0x1dc0c: 0x6c9b1420, 0x1dc0d: 0x6cb2a020, 0x1dc0e: 0x6cee7420, 0x1dc0f: 0x6c288220, + 0x1dc10: 0x6ccc4e20, 0x1dc11: 0x6c587020, 0x1dc12: 0x6d0d6e20, 0x1dc13: 0x6d14ee20, + 0x1dc14: 0x6ce58420, 0x1dc15: 0x6cb5d220, 0x1dc16: 0x6ced1220, 0x1dc17: 0x6c12e220, + 0x1dc18: 0x6ca3bc20, 0x1dc19: 0x6d327c20, 0x1dc1a: 0x6ceba420, 0x1dc1b: 0x6c6f6c20, + 0x1dc1c: 0x6ce5ee20, 0x1dc1d: 0x6c954220, 0x1dc1e: 0x6c0ae020, 0x1dc1f: 0x6d199220, + 0x1dc20: 0x6c9b1620, 0x1dc21: 0x6c100820, 0x1dc22: 0x6cada820, 0x1dc23: 0x6c2fc620, + 0x1dc24: 0x6d1c6420, 0x1dc25: 0x6d1c6620, 0x1dc26: 0x6d1c6820, 0x1dc27: 0x6cfebc20, + 0x1dc28: 0x6cc97420, 0x1dc29: 0x6cbfb020, 0x1dc2a: 0x6c77fc20, 0x1dc2b: 0x6cfe3620, + 0x1dc2c: 0x6ced8620, 0x1dc2d: 0x6d226020, 0x1dc2e: 0x6d213620, 0x1dc2f: 0x6c3ffa20, + 0x1dc30: 0x6c88fe20, 0x1dc31: 0x6d07a220, 0x1dc32: 0x6d07a420, 0x1dc33: 0x6ca42a20, + 0x1dc34: 0x6c12f620, 0x1dc35: 0x6cf28e20, 0x1dc36: 0x6c217a20, 0x1dc37: 0x6cfece20, + 0x1dc38: 0x6d210620, 0x1dc39: 0x6c0b4020, 0x1dc3a: 0x6c998420, 0x1dc3b: 0x6c013420, + 0x1dc3c: 0x6c364020, 0x1dc3d: 0x6c960a20, 0x1dc3e: 0x6d1c7820, 0x1dc3f: 0x6c7dfc20, + // Block 0x771, offset 0x1dc40 + 0x1dc40: 0x6c7dfe20, 0x1dc41: 0x6c676420, 0x1dc42: 0x6c9e2a20, 0x1dc43: 0x6d42a020, + 0x1dc44: 0x6d42a220, 0x1dc45: 0x6d409c20, 0x1dc46: 0x6c060020, 0x1dc47: 0x6cc74e20, + 0x1dc48: 0x6cf7ec20, 0x1dc49: 0x6d12f620, 0x1dc4a: 0x6c013620, 0x1dc4b: 0x6cc19420, + 0x1dc4c: 0x6c64a820, 0x1dc4d: 0x6c3e8e20, 0x1dc4e: 0x6c93e420, 0x1dc4f: 0x6c6dbe20, + 0x1dc50: 0x6cae4220, 0x1dc51: 0x6c3c5020, 0x1dc52: 0x6c535220, 0x1dc53: 0x6c535420, + 0x1dc54: 0x6c540820, 0x1dc55: 0x6d0e7a20, 0x1dc56: 0x6ce86420, 0x1dc57: 0x6d311420, + 0x1dc58: 0x6d3e4620, 0x1dc59: 0x6cfd7a20, 0x1dc5a: 0x6cc5f620, 0x1dc5b: 0x6c43f420, + 0x1dc5c: 0x6cb82c20, 0x1dc5d: 0x6cbe8020, 0x1dc5e: 0x6c9cf820, 0x1dc5f: 0x6c59c820, + 0x1dc60: 0x6ccff220, 0x1dc61: 0x6cb43c20, 0x1dc62: 0x6c413820, 0x1dc63: 0x6c303020, + 0x1dc64: 0x6d392a20, 0x1dc65: 0x6c669620, 0x1dc66: 0x6cefcc20, 0x1dc67: 0x6c0f0820, + 0x1dc68: 0x6cee9220, 0x1dc69: 0x6cabc620, 0x1dc6a: 0x6c620e20, 0x1dc6b: 0x6c556620, + 0x1dc6c: 0x6d2a0820, 0x1dc6d: 0x6c636220, 0x1dc6e: 0x6c32c620, 0x1dc6f: 0x6d120a20, + 0x1dc70: 0x6cdbc420, 0x1dc71: 0x6c231c20, 0x1dc72: 0x6cc2fa20, 0x1dc73: 0x6cee9420, + 0x1dc74: 0x6d315820, 0x1dc75: 0x6c7c7a20, 0x1dc76: 0x6ce67820, 0x1dc77: 0x6c5cd220, + 0x1dc78: 0x6cf7ee20, 0x1dc79: 0x6cd1c220, 0x1dc7a: 0x6cb79a20, 0x1dc7b: 0x6c7f9e20, + 0x1dc7c: 0x6d3f9420, 0x1dc7d: 0x6d10a820, 0x1dc7e: 0x6d24f020, 0x1dc7f: 0x6c9a0620, + // Block 0x772, offset 0x1dc80 + 0x1dc80: 0x6d275220, 0x1dc81: 0x6cd5c820, 0x1dc82: 0x6c2c6220, 0x1dc83: 0x6d3bc620, + 0x1dc84: 0x6c491820, 0x1dc85: 0x6cc4dc20, 0x1dc86: 0x6d08e020, 0x1dc87: 0x6c15b820, + 0x1dc88: 0x6c765a20, 0x1dc89: 0x6c7d0020, 0x1dc8a: 0x6c571620, 0x1dc8b: 0x6c67a820, + 0x1dc8c: 0x6c908e20, 0x1dc8d: 0x6cefce20, 0x1dc8e: 0x6cac2a20, 0x1dc8f: 0x6d206c20, + 0x1dc90: 0x6cd9b620, 0x1dc91: 0x6d1b6220, 0x1dc92: 0x6cd1d420, 0x1dc93: 0x6c215420, + 0x1dc94: 0x6cd27620, 0x1dc95: 0x6d275a20, 0x1dc96: 0x6d317220, 0x1dc97: 0x6c812220, + 0x1dc98: 0x6cc7b420, 0x1dc99: 0x6c9b2a20, 0x1dc9a: 0x6c863a20, 0x1dc9b: 0x6cc38e20, + 0x1dc9c: 0x6cdb9c20, 0x1dc9d: 0x6d258a20, 0x1dc9e: 0x6c863c20, 0x1dc9f: 0x6c71c420, + 0x1dca0: 0x6cf65620, 0x1dca1: 0x6c057e20, 0x1dca2: 0x6c1e8220, 0x1dca3: 0x6d062020, + 0x1dca4: 0x6ce8cc20, 0x1dca5: 0x6c8e7020, 0x1dca6: 0x6c5de020, 0x1dca7: 0x6c2d2220, + 0x1dca8: 0x6cba5e20, 0x1dca9: 0x6d409e20, 0x1dcaa: 0x6cb39820, 0x1dcab: 0x6c25e420, + 0x1dcac: 0x6d24fa20, 0x1dcad: 0x6c1e9020, 0x1dcae: 0x6d237a20, 0x1dcaf: 0x6c7afe20, + 0x1dcb0: 0x6cac6220, 0x1dcb1: 0x6cb43e20, 0x1dcb2: 0x6cb44020, 0x1dcb3: 0x6ca35820, + 0x1dcb4: 0x6cd78820, 0x1dcb5: 0x6cf78820, 0x1dcb6: 0x6c3b7c20, 0x1dcb7: 0x6d27b820, + 0x1dcb8: 0x6d32d220, 0x1dcb9: 0x6c64c020, 0x1dcba: 0x6c605e20, 0x1dcbb: 0x6cc92220, + 0x1dcbc: 0x6c123620, 0x1dcbd: 0x6c371820, 0x1dcbe: 0x6c9c5820, 0x1dcbf: 0x6c4fa820, + // Block 0x773, offset 0x1dcc0 + 0x1dcc0: 0x6cdcd820, 0x1dcc1: 0x6d317420, 0x1dcc2: 0x6ca00c20, 0x1dcc3: 0x6cd9b820, + 0x1dcc4: 0x6d06fe20, 0x1dcc5: 0x6c8e7220, 0x1dcc6: 0x6cf78a20, 0x1dcc7: 0x6c479220, + 0x1dcc8: 0x6c80c020, 0x1dcc9: 0x6cc68c20, 0x1dcca: 0x6cf25420, 0x1dccb: 0x6c414820, + 0x1dccc: 0x6c263020, 0x1dccd: 0x6cd1d620, 0x1dcce: 0x6ce10820, 0x1dccf: 0x6c95b620, + 0x1dcd0: 0x6cc82020, 0x1dcd1: 0x6cdd2820, 0x1dcd2: 0x6d07ae20, 0x1dcd3: 0x6c073620, + 0x1dcd4: 0x6d11ba20, 0x1dcd5: 0x6c4b5620, 0x1dcd6: 0x6c09da20, 0x1dcd7: 0x6d3ffc20, + 0x1dcd8: 0x6c4bd220, 0x1dcd9: 0x6d42ba20, 0x1dcda: 0x6ce58620, 0x1dcdb: 0x6c12fe20, + 0x1dcdc: 0x6cae2e20, 0x1dcdd: 0x6c7fa420, 0x1dcde: 0x6c28b620, 0x1dcdf: 0x6c622420, + 0x1dce0: 0x6c83f420, 0x1dce1: 0x6ccffa20, 0x1dce2: 0x6c810620, 0x1dce3: 0x6d237c20, + 0x1dce4: 0x6c8e2e20, 0x1dce5: 0x6d1c8420, 0x1dce6: 0x6ca13020, 0x1dce7: 0x6c2e3020, + 0x1dce8: 0x6ce58e20, 0x1dce9: 0x6c993c20, 0x1dcea: 0x6ce6fa20, 0x1dceb: 0x6c1f5a20, + 0x1dcec: 0x6caeae20, 0x1dced: 0x6c014020, 0x1dcee: 0x6c881820, 0x1dcef: 0x6c233220, + 0x1dcf0: 0x6cf80220, 0x1dcf1: 0x6cb2ae20, 0x1dcf2: 0x6cbfb820, 0x1dcf3: 0x6c6ca620, + 0x1dcf4: 0x6c215820, 0x1dcf5: 0x6c6b1420, 0x1dcf6: 0x6cef2420, 0x1dcf7: 0x6ce99620, + 0x1dcf8: 0x6c128220, 0x1dcf9: 0x6d23ca20, 0x1dcfa: 0x6d183620, 0x1dcfb: 0x6d3ed220, + 0x1dcfc: 0x6c8a7220, 0x1dcfd: 0x6c09dc20, 0x1dcfe: 0x6c91ce20, 0x1dcff: 0x6d077620, + // Block 0x774, offset 0x1dd00 + 0x1dd00: 0x6c10a820, 0x1dd01: 0x6d2ed020, 0x1dd02: 0x6c824a20, 0x1dd03: 0x6cbb1c20, + 0x1dd04: 0x6c97f220, 0x1dd05: 0x6d0cb820, 0x1dd06: 0x6c8d3e20, 0x1dd07: 0x6c621020, + 0x1dd08: 0x6c0c0e20, 0x1dd09: 0x6c4bde20, 0x1dd0a: 0x6c4e5c20, 0x1dd0b: 0x6c2b8220, + 0x1dd0c: 0x6cdaf020, 0x1dd0d: 0x6c929620, 0x1dd0e: 0x6ccf6c20, 0x1dd0f: 0x6cce1420, + 0x1dd10: 0x6c2b8420, 0x1dd11: 0x6c9ee420, 0x1dd12: 0x6d09a220, 0x1dd13: 0x6c97f420, + 0x1dd14: 0x6c0f3420, 0x1dd15: 0x6c2c8420, 0x1dd16: 0x6c25ea20, 0x1dd17: 0x6d311620, + 0x1dd18: 0x6cd00a20, 0x1dd19: 0x6d08a620, 0x1dd1a: 0x6cf0b220, 0x1dd1b: 0x6c558220, + 0x1dd1c: 0x6c025620, 0x1dd1d: 0x6c9cfc20, 0x1dd1e: 0x6c90aa20, 0x1dd1f: 0x6c244a20, + 0x1dd20: 0x6d37c220, 0x1dd21: 0x6c114820, 0x1dd22: 0x6cb33220, 0x1dd23: 0x6c67b220, + 0x1dd24: 0x6c9d6e20, 0x1dd25: 0x6c233420, 0x1dd26: 0x6ca7a220, 0x1dd27: 0x6c5c0220, + 0x1dd28: 0x6c738620, 0x1dd29: 0x6d1a8420, 0x1dd2a: 0x6c66ac20, 0x1dd2b: 0x6ca6f020, + 0x1dd2c: 0x6cd50220, 0x1dd2d: 0x6d19f020, 0x1dd2e: 0x6c4c7e20, 0x1dd2f: 0x6c18d620, + 0x1dd30: 0x6c56bc20, 0x1dd31: 0x6ccc0020, 0x1dd32: 0x6c79fc20, 0x1dd33: 0x6cba6e20, + 0x1dd34: 0x6c966e20, 0x1dd35: 0x6d29e420, 0x1dd36: 0x6d2b5a20, 0x1dd37: 0x6cbb1620, + 0x1dd38: 0x6c30ba20, 0x1dd39: 0x6c88c620, 0x1dd3a: 0x6c8c5a20, 0x1dd3b: 0x6c79fe20, + 0x1dd3c: 0x6c007020, 0x1dd3d: 0x6c0a0a20, 0x1dd3e: 0x6c843220, 0x1dd3f: 0x6cf00a20, + // Block 0x775, offset 0x1dd40 + 0x1dd40: 0x6c609620, 0x1dd41: 0x6cb9c420, 0x1dd42: 0x6cd17620, 0x1dd43: 0x6c385c20, + 0x1dd44: 0x6c9b3c20, 0x1dd45: 0x6cab9020, 0x1dd46: 0x6c15dc20, 0x1dd47: 0x6c2d2820, + 0x1dd48: 0x6d0aa420, 0x1dd49: 0x6c687020, 0x1dd4a: 0x6cc8ac20, 0x1dd4b: 0x6cc8ae20, + 0x1dd4c: 0x6c82d420, 0x1dd4d: 0x6d218e20, 0x1dd4e: 0x6cbbf220, 0x1dd4f: 0x6c1ea020, + 0x1dd50: 0x6c575220, 0x1dd51: 0x6c64e220, 0x1dd52: 0x6c971a20, 0x1dd53: 0x6d27c220, + 0x1dd54: 0x6c05b820, 0x1dd55: 0x6d1f6820, 0x1dd56: 0x6cc1aa20, 0x1dd57: 0x6c92da20, + 0x1dd58: 0x6cc52a20, 0x1dd59: 0x6c5c1e20, 0x1dd5a: 0x6c369020, 0x1dd5b: 0x6ce36a20, + 0x1dd5c: 0x6c3a6a20, 0x1dd5d: 0x6c749e20, 0x1dd5e: 0x6d41c820, 0x1dd5f: 0x6c384020, + 0x1dd60: 0x6cc7c020, 0x1dd61: 0x6c3b8e20, 0x1dd62: 0x6c7d1620, 0x1dd63: 0x6cd75820, + 0x1dd64: 0x6cc8a220, 0x1dd65: 0x6d0b5e20, 0x1dd66: 0x6d05dc20, 0x1dd67: 0x6c403c20, + 0x1dd68: 0x6c74a020, 0x1dd69: 0x6c298a20, 0x1dd6a: 0x6cf3e420, 0x1dd6b: 0x6c303a20, + 0x1dd6c: 0x6cd82420, 0x1dd6d: 0x6cff1820, 0x1dd6e: 0x6cf8d020, 0x1dd6f: 0x6c8fa020, + 0x1dd70: 0x6cf16420, 0x1dd71: 0x6ccee820, 0x1dd72: 0x6cb64220, 0x1dd73: 0x6c64e420, + 0x1dd74: 0x6d284e20, 0x1dd75: 0x6cdcde20, 0x1dd76: 0x6c8d5a20, 0x1dd77: 0x6d23f220, + 0x1dd78: 0x6cf9ec20, 0x1dd79: 0x6cf27220, 0x1dd7a: 0x6c609820, 0x1dd7b: 0x6c538820, + 0x1dd7c: 0x6cd8ee20, 0x1dd7d: 0x6ca9ca20, 0x1dd7e: 0x6c82da20, 0x1dd7f: 0x6d07ce20, + // Block 0x776, offset 0x1dd80 + 0x1dd80: 0x6d285620, 0x1dd81: 0x6d23cc20, 0x1dd82: 0x6cf7a420, 0x1dd83: 0x6c506e20, + 0x1dd84: 0x6c05d620, 0x1dd85: 0x6c4fae20, 0x1dd86: 0x6c00d220, 0x1dd87: 0x6ceeba20, + 0x1dd88: 0x6c5c3c20, 0x1dd89: 0x6c5c3e20, 0x1dd8a: 0x6c628220, 0x1dd8b: 0x6c226e20, + 0x1dd8c: 0x6cfd8420, 0x1dd8d: 0x6ced9a20, 0x1dd8e: 0x6c9ee820, 0x1dd8f: 0x6d18b420, + 0x1dd90: 0x6c838820, 0x1dd91: 0x6c677e20, 0x1dd92: 0x6c120820, 0x1dd93: 0x6cd01e20, + 0x1dd94: 0x6cbb2620, 0x1dd95: 0x6c885a20, 0x1dd96: 0x6c781c20, 0x1dd97: 0x6d25ae20, + 0x1dd98: 0x6c26c020, 0x1dd99: 0x6ce42220, 0x1dd9a: 0x6ce0d420, 0x1dd9b: 0x6d08e820, + 0x1dd9c: 0x6c0a5c20, 0x1dd9d: 0x6d2d9a20, 0x1dd9e: 0x6cdce020, 0x1dd9f: 0x6cfad820, + 0x1dda0: 0x6c38c420, 0x1dda1: 0x6c2f8220, 0x1dda2: 0x6d021c20, 0x1dda3: 0x6c47d220, + 0x1dda4: 0x6d021e20, 0x1dda5: 0x6cd56e20, 0x1dda6: 0x6c66d420, 0x1dda7: 0x6c4fb020, + 0x1dda8: 0x6c52ca20, 0x1dda9: 0x6cc99820, 0x1ddaa: 0x6d02f220, 0x1ddab: 0x6d09aa20, + 0x1ddac: 0x6d122420, 0x1ddad: 0x6c046a20, 0x1ddae: 0x6cda2c20, 0x1ddaf: 0x6cd57020, + 0x1ddb0: 0x6d09b420, 0x1ddb1: 0x6c336a20, 0x1ddb2: 0x6cb21a20, 0x1ddb3: 0x6cf01820, + 0x1ddb4: 0x6ca92820, 0x1ddb5: 0x6c1df020, 0x1ddb6: 0x6c970420, 0x1ddb7: 0x6cc7d420, + 0x1ddb8: 0x6cb18620, 0x1ddb9: 0x6cdf4c20, 0x1ddba: 0x6c62a020, 0x1ddbb: 0x6d2a5a20, + 0x1ddbc: 0x6c18f020, 0x1ddbd: 0x6d319a20, 0x1ddbe: 0x6c37a820, 0x1ddbf: 0x6ca65420, + // Block 0x777, offset 0x1ddc0 + 0x1ddc0: 0x6d1ca820, 0x1ddc1: 0x6c432620, 0x1ddc2: 0x6c23b820, 0x1ddc3: 0x6cff2420, + 0x1ddc4: 0x6cb66020, 0x1ddc5: 0x6c382820, 0x1ddc6: 0x6c65e420, 0x1ddc7: 0x6d073e20, + 0x1ddc8: 0x6c7ca620, 0x1ddc9: 0x6c60c620, 0x1ddca: 0x6c0b5820, 0x1ddcb: 0x6c2e4620, + 0x1ddcc: 0x6c9d9420, 0x1ddcd: 0x6c7fc420, 0x1ddce: 0x6c6d6420, 0x1ddcf: 0x6c124e20, + 0x1ddd0: 0x6c9ea020, 0x1ddd1: 0x6cbf6e20, 0x1ddd2: 0x6cbcec20, 0x1ddd3: 0x6cfc3420, + 0x1ddd4: 0x6c8a5420, 0x1ddd5: 0x6cab9820, 0x1ddd6: 0x6cfbb620, 0x1ddd7: 0x6cdb4020, + 0x1ddd8: 0x6c936a20, 0x1ddd9: 0x6d18f020, 0x1ddda: 0x6d075220, 0x1dddb: 0x6d014c20, + 0x1dddc: 0x6c847220, 0x1dddd: 0x6d18f220, 0x1ddde: 0x6c7e6620, 0x1dddf: 0x6c82f020, + 0x1dde0: 0x6c69ca20, 0x1dde1: 0x6c2b9a20, 0x1dde2: 0x6d355a20, 0x1dde3: 0x6c06bc20, + 0x1dde4: 0x6ce2c220, 0x1dde5: 0x6d123620, 0x1dde6: 0x6ca17c20, 0x1dde7: 0x6c595e20, + 0x1dde8: 0x6c0c3e20, 0x1dde9: 0x6c386820, 0x1ddea: 0x6cda3220, 0x1ddeb: 0x6ce02e20, + 0x1ddec: 0x6ce99a20, 0x1dded: 0x6cbf8020, 0x1ddee: 0x6cbc0820, 0x1ddef: 0x6cf0f620, + 0x1ddf0: 0x6c8ebc20, 0x1ddf1: 0x6c5c5c20, 0x1ddf2: 0x6cabac20, 0x1ddf3: 0x6c432c20, + 0x1ddf4: 0x6d286220, 0x1ddf5: 0x6c068a20, 0x1ddf6: 0x6c870a20, 0x1ddf7: 0x6cd57e20, + 0x1ddf8: 0x6c1ebe20, 0x1ddf9: 0x6c007e20, 0x1ddfa: 0x6c8c7a20, 0x1ddfb: 0x6d2a6020, + 0x1ddfc: 0x6d07e620, 0x1ddfd: 0x6cbe2820, 0x1ddfe: 0x6c7f7220, 0x1ddff: 0x6c5e3220, + // Block 0x778, offset 0x1de00 + 0x1de00: 0x6cebb620, 0x1de01: 0x6cf54420, 0x1de02: 0x6cc8b820, 0x1de03: 0x6cc8ba20, + 0x1de04: 0x6cb68420, 0x1de05: 0x6c528020, 0x1de06: 0x6c917820, 0x1de07: 0x6cda6420, + 0x1de08: 0x6ce9d020, 0x1de09: 0x6c9b8a20, 0x1de0a: 0x6d287020, 0x1de0b: 0x6cb2dc20, + 0x1de0c: 0x6d22b020, 0x1de0d: 0x6d09c220, 0x1de0e: 0x6c62be20, 0x1de0f: 0x6c6eec20, + 0x1de10: 0x6d07e820, 0x1de11: 0x6ca09020, 0x1de12: 0x6cc0c220, 0x1de13: 0x6cda6620, + 0x1de14: 0x6c6eee20, 0x1de15: 0x6c3d0420, 0x1de16: 0x6ca8a620, 0x1de17: 0x6c0ffe20, + 0x1de18: 0x6cc4ea20, 0x1de19: 0x6d193020, 0x1de1a: 0x6cfc4a20, 0x1de1b: 0x6d21e420, + 0x1de1c: 0x6c718820, 0x1de1d: 0x6c892e20, 0x1de1e: 0x6c88dc20, 0x1de1f: 0x6d1b1e20, + 0x1de20: 0x6cbb2e20, 0x1de21: 0x6d1c2420, 0x1de22: 0x6c8fcc20, 0x1de23: 0x6ce82220, + 0x1de24: 0x6cf05420, 0x1de25: 0x6d270c20, 0x1de26: 0x6c8d9420, 0x1de27: 0x6cc1f020, + 0x1de28: 0x6d117020, 0x1de29: 0x6c38e620, 0x1de2a: 0x6c9a3c20, 0x1de2b: 0x6c4f3020, + 0x1de2c: 0x6c7c5620, 0x1de2d: 0x6c7ff020, 0x1de2e: 0x6c62d220, 0x1de2f: 0x6c29a220, + 0x1de30: 0x6c981820, 0x1de31: 0x6c836220, 0x1de32: 0x6c828820, 0x1de33: 0x6c5b0a20, + 0x1de34: 0x6c3c8220, 0x1de35: 0x6d342820, 0x1de36: 0x6cf10e20, 0x1de37: 0x6c7cb620, + 0x1de38: 0x6d2ea220, 0x1de39: 0x6c580620, 0x1de3a: 0x6c84ac20, 0x1de3b: 0x6c62e220, + 0x1de3c: 0x6c9cb620, 0x1de3d: 0x6c830a20, 0x1de3e: 0x6c582220, 0x1de3f: 0x6c957a20, + // Block 0x779, offset 0x1de40 + 0x1de40: 0x6c5fa020, 0x1de41: 0x6c7cbe20, 0x1de42: 0x6c934020, 0x1de43: 0x6c655020, + 0x1de44: 0x6cc9ba20, 0x1de45: 0x6ce2e620, 0x1de46: 0x6c829e20, 0x1de47: 0x6cc36820, + 0x1de48: 0x6cff6020, 0x1de49: 0x6d197420, 0x1de4a: 0x6c947220, 0x1de4b: 0x6c9ae620, + 0x1de4c: 0x6c0cd420, 0x1de4d: 0x6c549420, 0x1de4e: 0x6c561220, 0x1de4f: 0x6c91b820, + 0x1de50: 0x6caaa220, 0x1de51: 0x6c93d420, 0x1de52: 0x6cd7da20, 0x1de53: 0x6cfeaa20, + 0x1de54: 0x6cb98220, 0x1de55: 0x6c1f3620, 0x1de56: 0x6c54c620, 0x1de57: 0x6d058a20, + 0x1de58: 0x6c25d820, 0x1de59: 0x6c3e6e20, 0x1de5a: 0x6d058c20, 0x1de5b: 0x6d05a820, + 0x1de5c: 0x6c91c420, 0x1de5d: 0x6c562420, 0x1de5e: 0x6d216620, 0x1de5f: 0x6c504a20, + 0x1de60: 0x6c686020, 0x1de61: 0x6c725820, 0x1de62: 0x6c4c8620, 0x1de63: 0x6c066820, + 0x1de64: 0x6d0cd220, 0x1de65: 0x6d2e8220, 0x1de66: 0x6d2e8420, 0x1de67: 0x6c7c4820, + 0x1de68: 0x6c0d5620, 0x1de69: 0x6cf90620, 0x1de6a: 0x6cd63220, 0x1de6b: 0x6c1d0820, + 0x1de6c: 0x6cc00220, 0x1de6d: 0x6c2db220, 0x1de6e: 0x6c612620, 0x1de6f: 0x6cc00c20, + 0x1de70: 0x6c2f5820, 0x1de71: 0x6cd19a20, 0x1de72: 0x6cf95020, 0x1de73: 0x6c740820, + 0x1de74: 0x6d302a20, 0x1de75: 0x6ccf0a20, 0x1de76: 0x6d208020, 0x1de77: 0x6c4dea20, + 0x1de78: 0x6d3efe20, 0x1de79: 0x6c532220, 0x1de7a: 0x6c5a9a20, 0x1de7b: 0x6c9b0c20, + 0x1de7c: 0x6c447e20, 0x1de7d: 0x6cdbb020, 0x1de7e: 0x6cf95a20, 0x1de7f: 0x6c149420, + // Block 0x77a, offset 0x1de80 + 0x1de80: 0x6cd25620, 0x1de81: 0x6d15d620, 0x1de82: 0x6c969620, 0x1de83: 0x6cfe2020, + 0x1de84: 0x6c399420, 0x1de85: 0x6c360220, 0x1de86: 0x6c034020, 0x1de87: 0x6c1b9620, + 0x1de88: 0x6cb8ca20, 0x1de89: 0x6cf18e20, 0x1de8a: 0x6cf19020, 0x1de8b: 0x6cc8c620, + 0x1de8c: 0x6c056620, 0x1de8d: 0x6cafd220, 0x1de8e: 0x6d269a20, 0x1de8f: 0x6d269c20, + 0x1de90: 0x6c756a20, 0x1de91: 0x6cb5ae20, 0x1de92: 0x6ce73c20, 0x1de93: 0x6d1ad620, + 0x1de94: 0x6cb5b020, 0x1de95: 0x6c119020, 0x1de96: 0x6d255420, 0x1de97: 0x6c741a20, + 0x1de98: 0x6c5b3020, 0x1de99: 0x6cbd6c20, 0x1de9a: 0x6cb5b220, 0x1de9b: 0x6d382220, + 0x1de9c: 0x6d0b2220, 0x1de9d: 0x6c4fc220, 0x1de9e: 0x6ca27e20, 0x1de9f: 0x6cede420, + 0x1dea0: 0x6c3b6820, 0x1dea1: 0x6c3b6a20, 0x1dea2: 0x6c4f6e20, 0x1dea3: 0x6c462e20, + 0x1dea4: 0x6d2a4620, 0x1dea5: 0x6c3fd420, 0x1dea6: 0x6cc47020, 0x1dea7: 0x6c6bda20, + 0x1dea8: 0x6c3e4220, 0x1dea9: 0x6c1aa420, 0x1deaa: 0x6c30ea20, 0x1deab: 0x6c064820, + 0x1deac: 0x6cfc0620, 0x1dead: 0x6ca5de20, 0x1deae: 0x6ce27820, 0x1deaf: 0x6cbfac20, + 0x1deb0: 0x6d1f2c20, 0x1deb1: 0x6d2cc220, 0x1deb2: 0x6cb2a220, 0x1deb3: 0x6c1b1e20, + 0x1deb4: 0x6d204220, 0x1deb5: 0x6c511e20, 0x1deb6: 0x6c4da020, 0x1deb7: 0x6c723420, + 0x1deb8: 0x6c85fe20, 0x1deb9: 0x6c3fe620, 0x1deba: 0x6cc47620, 0x1debb: 0x6d2c2a20, + 0x1debc: 0x6c468220, 0x1debd: 0x6cafe220, 0x1debe: 0x6cafe420, 0x1debf: 0x6cfb5220, + // Block 0x77b, offset 0x1dec0 + 0x1dec0: 0x6d3af020, 0x1dec1: 0x6c2dc820, 0x1dec2: 0x6c0ce820, 0x1dec3: 0x6c0de220, + 0x1dec4: 0x6c470e20, 0x1dec5: 0x6d2d7020, 0x1dec6: 0x6cc10620, 0x1dec7: 0x6ccf1220, + 0x1dec8: 0x6ce5fa20, 0x1dec9: 0x6c8d0020, 0x1deca: 0x6c478420, 0x1decb: 0x6c288420, + 0x1decc: 0x6c478620, 0x1decd: 0x6d1c6a20, 0x1dece: 0x6c860020, 0x1decf: 0x6c196a20, + 0x1ded0: 0x6cc11220, 0x1ded1: 0x6ca1d620, 0x1ded2: 0x6c43f620, 0x1ded3: 0x6c22ca20, + 0x1ded4: 0x6c5b3820, 0x1ded5: 0x6c5b3a20, 0x1ded6: 0x6c986a20, 0x1ded7: 0x6c3ffc20, + 0x1ded8: 0x6d0fbc20, 0x1ded9: 0x6cebde20, 0x1deda: 0x6c8b0e20, 0x1dedb: 0x6d39ac20, + 0x1dedc: 0x6d13f820, 0x1dedd: 0x6cfb6220, 0x1dede: 0x6c7e0020, 0x1dedf: 0x6c684e20, + 0x1dee0: 0x6c861a20, 0x1dee1: 0x6d17be20, 0x1dee2: 0x6cb2b020, 0x1dee3: 0x6cb4fc20, + 0x1dee4: 0x6c4cfe20, 0x1dee5: 0x6ccf1a20, 0x1dee6: 0x6d14fc20, 0x1dee7: 0x6cee2420, + 0x1dee8: 0x6ca11c20, 0x1dee9: 0x6cbf3220, 0x1deea: 0x6cbcc420, 0x1deeb: 0x6c4b0420, + 0x1deec: 0x6cbf3420, 0x1deed: 0x6d364020, 0x1deee: 0x6c976420, 0x1deef: 0x6c81f820, + 0x1def0: 0x6d305c20, 0x1def1: 0x6c63c220, 0x1def2: 0x6ca4ae20, 0x1def3: 0x6cd7ee20, + 0x1def4: 0x6cb5f020, 0x1def5: 0x6d038420, 0x1def6: 0x6c6bee20, 0x1def7: 0x6cc07c20, + 0x1def8: 0x6cce7a20, 0x1def9: 0x6d1e4c20, 0x1defa: 0x6c63ce20, 0x1defb: 0x6cea0220, + 0x1defc: 0x6c17de20, 0x1defd: 0x6c044e20, 0x1defe: 0x6c357620, 0x1deff: 0x6c4ed420, + // Block 0x77c, offset 0x1df00 + 0x1df00: 0x6cd56420, 0x1df01: 0x6d081620, 0x1df02: 0x6c3c5820, 0x1df03: 0x6cd0b820, + 0x1df04: 0x6cd0ba20, 0x1df05: 0x6c3f7020, 0x1df06: 0x6cfce020, 0x1df07: 0x6d2ffe20, + 0x1df08: 0x6cf3da20, 0x1df09: 0x6c3ea820, 0x1df0a: 0x6c83f820, 0x1df0b: 0x6c80d420, + 0x1df0c: 0x6c09de20, 0x1df0d: 0x6c1e9220, 0x1df0e: 0x6d24fc20, 0x1df0f: 0x6d1fd820, + 0x1df10: 0x6c6af820, 0x1df11: 0x6c288e20, 0x1df12: 0x6d0ca220, 0x1df13: 0x6ce67a20, + 0x1df14: 0x6c2d6820, 0x1df15: 0x6cea0420, 0x1df16: 0x6c5b3c20, 0x1df17: 0x6cf29820, + 0x1df18: 0x6d340420, 0x1df19: 0x6cd92c20, 0x1df1a: 0x6c3a1420, 0x1df1b: 0x6c70b620, + 0x1df1c: 0x6c9d7020, 0x1df1d: 0x6cb62c20, 0x1df1e: 0x6cb62e20, 0x1df1f: 0x6d23a820, + 0x1df20: 0x6c75da20, 0x1df21: 0x6c7e8a20, 0x1df22: 0x6c9be220, 0x1df23: 0x6cbac420, + 0x1df24: 0x6cd80820, 0x1df25: 0x6cf68020, 0x1df26: 0x6c950820, 0x1df27: 0x6c865420, + 0x1df28: 0x6c2ed620, 0x1df29: 0x6ce59a20, 0x1df2a: 0x6ce23220, 0x1df2b: 0x6c7d7a20, + 0x1df2c: 0x6c4e2620, 0x1df2d: 0x6c4eec20, 0x1df2e: 0x6d23aa20, 0x1df2f: 0x6c058420, + 0x1df30: 0x6c3a4020, 0x1df31: 0x6cb00c20, 0x1df32: 0x6ceea820, 0x1df33: 0x6c339e20, + 0x1df34: 0x6d183820, 0x1df35: 0x6d250c20, 0x1df36: 0x6cddd020, 0x1df37: 0x6cc30c20, + 0x1df38: 0x6cba1a20, 0x1df39: 0x6cc8d820, 0x1df3a: 0x6ca5fc20, 0x1df3b: 0x6cbe5220, + 0x1df3c: 0x6cf0b420, 0x1df3d: 0x6c899e20, 0x1df3e: 0x6c4cc820, 0x1df3f: 0x6cec9620, + // Block 0x77d, offset 0x1df40 + 0x1df40: 0x6c301020, 0x1df41: 0x6c367220, 0x1df42: 0x6c04d020, 0x1df43: 0x6c2c8620, + 0x1df44: 0x6cee3420, 0x1df45: 0x6c11a020, 0x1df46: 0x6d102820, 0x1df47: 0x6d1d6820, + 0x1df48: 0x6c4c3220, 0x1df49: 0x6c150e20, 0x1df4a: 0x6c2fb420, 0x1df4b: 0x6c7e8c20, + 0x1df4c: 0x6c782c20, 0x1df4d: 0x6c6afa20, 0x1df4e: 0x6d005020, 0x1df4f: 0x6ce68e20, + 0x1df50: 0x6c99b220, 0x1df51: 0x6d05de20, 0x1df52: 0x6c9dd020, 0x1df53: 0x6d219020, + 0x1df54: 0x6c6a3220, 0x1df55: 0x6cd28020, 0x1df56: 0x6d07c820, 0x1df57: 0x6c59f620, + 0x1df58: 0x6d0dce20, 0x1df59: 0x6c0b0420, 0x1df5a: 0x6cc75e20, 0x1df5b: 0x6ceeb220, + 0x1df5c: 0x6c403e20, 0x1df5d: 0x6d25a020, 0x1df5e: 0x6c9aaa20, 0x1df5f: 0x6cf14620, + 0x1df60: 0x6c3ee220, 0x1df61: 0x6cc7c220, 0x1df62: 0x6d00e220, 0x1df63: 0x6d1f6a20, + 0x1df64: 0x6cc09020, 0x1df65: 0x6c990020, 0x1df66: 0x6cf97820, 0x1df67: 0x6d1be020, + 0x1df68: 0x6cd1f020, 0x1df69: 0x6c1d2020, 0x1df6a: 0x6ce0ce20, 0x1df6b: 0x6d39be20, + 0x1df6c: 0x6d3fba20, 0x1df6d: 0x6ce36c20, 0x1df6e: 0x6c404020, 0x1df6f: 0x6d25a220, + 0x1df70: 0x6c7c9820, 0x1df71: 0x6c9b3e20, 0x1df72: 0x6c7e9620, 0x1df73: 0x6c31b220, + 0x1df74: 0x6c559620, 0x1df75: 0x6cbfc220, 0x1df76: 0x6c2ee020, 0x1df77: 0x6c866420, + 0x1df78: 0x6cf29c20, 0x1df79: 0x6d276220, 0x1df7a: 0x6cc24e20, 0x1df7b: 0x6ca43a20, + 0x1df7c: 0x6c90b620, 0x1df7d: 0x6c211220, 0x1df7e: 0x6cc6a820, 0x1df7f: 0x6d1c9220, + // Block 0x77e, offset 0x1df80 + 0x1df80: 0x6c677620, 0x1df81: 0x6c051420, 0x1df82: 0x6c80d820, 0x1df83: 0x6cad0e20, + 0x1df84: 0x6cd82c20, 0x1df85: 0x6cf6da20, 0x1df86: 0x6c22de20, 0x1df87: 0x6cf6dc20, + 0x1df88: 0x6d25b020, 0x1df89: 0x6cf23c20, 0x1df8a: 0x6c885c20, 0x1df8b: 0x6cd9dc20, + 0x1df8c: 0x6c04a020, 0x1df8d: 0x6cc6b220, 0x1df8e: 0x6cc6b420, 0x1df8f: 0x6c60b220, + 0x1df90: 0x6cf38220, 0x1df91: 0x6d055020, 0x1df92: 0x6c4f0e20, 0x1df93: 0x6cbdac20, + 0x1df94: 0x6d156020, 0x1df95: 0x6c089020, 0x1df96: 0x6c575420, 0x1df97: 0x6ce13c20, + 0x1df98: 0x6d161420, 0x1df99: 0x6c327c20, 0x1df9a: 0x6ca3d620, 0x1df9b: 0x6c517820, + 0x1df9c: 0x6c55c020, 0x1df9d: 0x6c4a8a20, 0x1df9e: 0x6c96a420, 0x1df9f: 0x6ca01a20, + 0x1dfa0: 0x6d18b620, 0x1dfa1: 0x6cf1b020, 0x1dfa2: 0x6d1ca020, 0x1dfa3: 0x6ce28420, + 0x1dfa4: 0x6d37ca20, 0x1dfa5: 0x6c123c20, 0x1dfa6: 0x6ccb1020, 0x1dfa7: 0x6cb81a20, + 0x1dfa8: 0x6c97c820, 0x1dfa9: 0x6ce5e620, 0x1dfaa: 0x6cce2020, 0x1dfab: 0x6cd3e620, + 0x1dfac: 0x6c129e20, 0x1dfad: 0x6c1ad620, 0x1dfae: 0x6c2ca620, 0x1dfaf: 0x6c027620, + 0x1dfb0: 0x6c92fa20, 0x1dfb1: 0x6cf0e820, 0x1dfb2: 0x6d371220, 0x1dfb3: 0x6ce14220, + 0x1dfb4: 0x6c18ea20, 0x1dfb5: 0x6cb16a20, 0x1dfb6: 0x6cc1c420, 0x1dfb7: 0x6cb02420, + 0x1dfb8: 0x6d21be20, 0x1dfb9: 0x6c66e420, 0x1dfba: 0x6c955820, 0x1dfbb: 0x6c90c220, + 0x1dfbc: 0x6cbdea20, 0x1dfbd: 0x6d37ce20, 0x1dfbe: 0x6d1b1420, 0x1dfbf: 0x6c678820, + // Block 0x77f, offset 0x1dfc0 + 0x1dfc0: 0x6cd67620, 0x1dfc1: 0x6cf1b820, 0x1dfc2: 0x6cff2620, 0x1dfc3: 0x6ceda020, + 0x1dfc4: 0x6d30a220, 0x1dfc5: 0x6d310820, 0x1dfc6: 0x6c96f820, 0x1dfc7: 0x6c967a20, + 0x1dfc8: 0x6c4c4820, 0x1dfc9: 0x6c8eaa20, 0x1dfca: 0x6c990a20, 0x1dfcb: 0x6cf6f220, + 0x1dfcc: 0x6c236a20, 0x1dfcd: 0x6c846220, 0x1dfce: 0x6c97d020, 0x1dfcf: 0x6cff2820, + 0x1dfd0: 0x6c173020, 0x1dfd1: 0x6d2ee220, 0x1dfd2: 0x6c98a020, 0x1dfd3: 0x6cfe5e20, + 0x1dfd4: 0x6ca17e20, 0x1dfd5: 0x6d418220, 0x1dfd6: 0x6cd83c20, 0x1dfd7: 0x6cbfd420, + 0x1dfd8: 0x6ce28820, 0x1dfd9: 0x6d34ac20, 0x1dfda: 0x6caed820, 0x1dfdb: 0x6caeda20, + 0x1dfdc: 0x6c695620, 0x1dfdd: 0x6cc1dc20, 0x1dfde: 0x6c0cc220, 0x1dfdf: 0x6c8a3c20, + 0x1dfe0: 0x6cac8220, 0x1dfe1: 0x6c4b2220, 0x1dfe2: 0x6cf81c20, 0x1dfe3: 0x6c615a20, + 0x1dfe4: 0x6d3b9620, 0x1dfe5: 0x6c5a0e20, 0x1dfe6: 0x6c3a4220, 0x1dfe7: 0x6c818420, + 0x1dfe8: 0x6c74de20, 0x1dfe9: 0x6c74e020, 0x1dfea: 0x6c5c7220, 0x1dfeb: 0x6d1aa220, + 0x1dfec: 0x6c153a20, 0x1dfed: 0x6c689c20, 0x1dfee: 0x6ccdcc20, 0x1dfef: 0x6ca4ca20, + 0x1dff0: 0x6cff3e20, 0x1dff1: 0x6cf40020, 0x1dff2: 0x6c1d2620, 0x1dff3: 0x6d0a5020, + 0x1dff4: 0x6cd83e20, 0x1dff5: 0x6c1f9c20, 0x1dff6: 0x6c19a020, 0x1dff7: 0x6c291e20, + 0x1dff8: 0x6c854420, 0x1dff9: 0x6d026620, 0x1dffa: 0x6ccdd420, 0x1dffb: 0x6d162420, + 0x1dffc: 0x6c6e3a20, 0x1dffd: 0x6c26c820, 0x1dffe: 0x6c154420, 0x1dfff: 0x6cb80020, + // Block 0x780, offset 0x1e000 + 0x1e000: 0x6c221820, 0x1e001: 0x6cfe0220, 0x1e002: 0x6ccf7e20, 0x1e003: 0x6c95c820, + 0x1e004: 0x6cbdb620, 0x1e005: 0x6d1d6e20, 0x1e006: 0x6c14a220, 0x1e007: 0x6c86da20, + 0x1e008: 0x6d2b6a20, 0x1e009: 0x6d07ea20, 0x1e00a: 0x6c888820, 0x1e00b: 0x6d3a3220, + 0x1e00c: 0x6d2b1e20, 0x1e00d: 0x6d005a20, 0x1e00e: 0x6c98a420, 0x1e00f: 0x6d026820, + 0x1e010: 0x6cb69a20, 0x1e011: 0x6cc6e220, 0x1e012: 0x6c661a20, 0x1e013: 0x6c9bf220, + 0x1e014: 0x6c500220, 0x1e015: 0x6cc7e420, 0x1e016: 0x6c5e3420, 0x1e017: 0x6d3dda20, + 0x1e018: 0x6c6b7820, 0x1e019: 0x6cb22420, 0x1e01a: 0x6c50aa20, 0x1e01b: 0x6c9f0e20, + 0x1e01c: 0x6c38ee20, 0x1e01d: 0x6c828a20, 0x1e01e: 0x6c6b7220, 0x1e01f: 0x6c7ec420, + 0x1e020: 0x6c9fda20, 0x1e021: 0x6c84ae20, 0x1e022: 0x6c219020, 0x1e023: 0x6c873220, + 0x1e024: 0x6cbfe620, 0x1e025: 0x6ca8bc20, 0x1e026: 0x6c919c20, 0x1e027: 0x6c328c20, + 0x1e028: 0x6cff5620, 0x1e029: 0x6d39ee20, 0x1e02a: 0x6c8ffc20, 0x1e02b: 0x6c875620, + 0x1e02c: 0x6c8ffe20, 0x1e02d: 0x6c3c8620, 0x1e02e: 0x6d127220, 0x1e02f: 0x6c086620, + 0x1e030: 0x6ca46020, 0x1e031: 0x6c47f220, 0x1e032: 0x6c730e20, 0x1e033: 0x6d1c4220, + 0x1e034: 0x6cd63820, 0x1e035: 0x6cf75820, 0x1e036: 0x6c11c820, 0x1e037: 0x6cc22420, + 0x1e038: 0x6cc33c20, 0x1e039: 0x6c329020, 0x1e03a: 0x6c11ca20, 0x1e03b: 0x6c97ae20, + 0x1e03c: 0x6cc22e20, 0x1e03d: 0x6c6b8e20, 0x1e03e: 0x6d3a4e20, 0x1e03f: 0x6d3d1820, + // Block 0x781, offset 0x1e040 + 0x1e040: 0x6d093820, 0x1e041: 0x6c598620, 0x1e042: 0x6ca9a420, 0x1e043: 0x6cadba20, + 0x1e044: 0x6caa8420, 0x1e045: 0x6d033020, 0x1e046: 0x6d383220, 0x1e047: 0x6c973420, + 0x1e048: 0x6c37ce20, 0x1e049: 0x6c761220, 0x1e04a: 0x6c9f1020, 0x1e04b: 0x6cf93c20, + 0x1e04c: 0x6d03ba20, 0x1e04d: 0x6d0d5c20, 0x1e04e: 0x6c770620, 0x1e04f: 0x6d260e20, + 0x1e050: 0x6cc28820, 0x1e051: 0x6c8d0220, 0x1e052: 0x6d089020, 0x1e053: 0x6cd5ca20, + 0x1e054: 0x6cfb5420, 0x1e055: 0x6ce7cc20, 0x1e056: 0x6cfe3820, 0x1e057: 0x6c6a1e20, + 0x1e058: 0x6cfb7020, 0x1e059: 0x6d0b3220, 0x1e05a: 0x6c559a20, 0x1e05b: 0x6cf0ca20, + 0x1e05c: 0x6c2a2c20, 0x1e05d: 0x6c1cdc20, 0x1e05e: 0x6cf0d420, 0x1e05f: 0x6c2a3620, + 0x1e060: 0x6d3cd820, 0x1e061: 0x6c527020, 0x1e062: 0x6cc22620, 0x1e063: 0x6d13be20, + 0x1e064: 0x6d198c20, 0x1e065: 0x6c103220, 0x1e066: 0x6c41ce20, 0x1e067: 0x6d20cc20, + 0x1e068: 0x6c0c7020, 0x1e069: 0x6c141820, 0x1e06a: 0x6d147a20, 0x1e06b: 0x6cccc820, + 0x1e06c: 0x6c191e20, 0x1e06d: 0x6c3d5620, 0x1e06e: 0x6c4bbc20, 0x1e06f: 0x6c3b1e20, + 0x1e070: 0x6cd65220, 0x1e071: 0x6c6a8820, 0x1e072: 0x6ca32020, 0x1e073: 0x6d37aa20, + 0x1e074: 0x6c282e20, 0x1e075: 0x6d170c20, 0x1e076: 0x6d381e20, 0x1e077: 0x6d37b220, + 0x1e078: 0x6c6bd220, 0x1e079: 0x6d350820, 0x1e07a: 0x6d009820, 0x1e07b: 0x6cc46820, + 0x1e07c: 0x6d33ba20, 0x1e07d: 0x6cc5da20, 0x1e07e: 0x6cbd2620, 0x1e07f: 0x6c6c3820, + // Block 0x782, offset 0x1e080 + 0x1e080: 0x6c756220, 0x1e081: 0x6d255820, 0x1e082: 0x6c9a8620, 0x1e083: 0x6c149620, + 0x1e084: 0x6c02a220, 0x1e085: 0x6ca79820, 0x1e086: 0x6c5a9e20, 0x1e087: 0x6cc46a20, + 0x1e088: 0x6c635620, 0x1e089: 0x6ceb1020, 0x1e08a: 0x6c8e0e20, 0x1e08b: 0x6c276620, + 0x1e08c: 0x6c064a20, 0x1e08d: 0x6cad5620, 0x1e08e: 0x6d120020, 0x1e08f: 0x6d429420, + 0x1e090: 0x6c097020, 0x1e091: 0x6cced220, 0x1e092: 0x6ce05820, 0x1e093: 0x6c723620, + 0x1e094: 0x6c51c220, 0x1e095: 0x6d090220, 0x1e096: 0x6d053820, 0x1e097: 0x6d31d220, + 0x1e098: 0x6d14da20, 0x1e099: 0x6cabea20, 0x1e09a: 0x6c0e6420, 0x1e09b: 0x6c2b2220, + 0x1e09c: 0x6cec2a20, 0x1e09d: 0x6c3fd620, 0x1e09e: 0x6c4bc420, 0x1e09f: 0x6d35ca20, + 0x1e0a0: 0x6d360a20, 0x1e0a1: 0x6cc47220, 0x1e0a2: 0x6cacb420, 0x1e0a3: 0x6d174620, + 0x1e0a4: 0x6c997420, 0x1e0a5: 0x6ceaba20, 0x1e0a6: 0x6ca32e20, 0x1e0a7: 0x6c464420, + 0x1e0a8: 0x6d088220, 0x1e0a9: 0x6d304220, 0x1e0aa: 0x6cc0f420, 0x1e0ab: 0x6c070420, + 0x1e0ac: 0x6c4bc620, 0x1e0ad: 0x6cf77c20, 0x1e0ae: 0x6ca6ea20, 0x1e0af: 0x6c0ee020, + 0x1e0b0: 0x6c0e7220, 0x1e0b1: 0x6c40ac20, 0x1e0b2: 0x6c1bac20, 0x1e0b3: 0x6c1ba220, + 0x1e0b4: 0x6c7a9420, 0x1e0b5: 0x6cc5ea20, 0x1e0b6: 0x6c67e220, 0x1e0b7: 0x6c63ba20, + 0x1e0b8: 0x6c667e20, 0x1e0b9: 0x6c0efa20, 0x1e0ba: 0x6c6aba20, 0x1e0bb: 0x6c375420, + 0x1e0bc: 0x6c438620, 0x1e0bd: 0x6cc7a620, 0x1e0be: 0x6d39a020, 0x1e0bf: 0x6c4a6020, + // Block 0x783, offset 0x1e0c0 + 0x1e0c0: 0x6d19d020, 0x1e0c1: 0x6c111020, 0x1e0c2: 0x6c8b1020, 0x1e0c3: 0x6c762220, + 0x1e0c4: 0x6d044420, 0x1e0c5: 0x6d3c1c20, 0x1e0c6: 0x6c28fc20, 0x1e0c7: 0x6d05aa20, + 0x1e0c8: 0x6c7d5e20, 0x1e0c9: 0x6c791a20, 0x1e0ca: 0x6ca79e20, 0x1e0cb: 0x6cd5dc20, + 0x1e0cc: 0x6c63c420, 0x1e0cd: 0x6c7db020, 0x1e0ce: 0x6c1a1220, 0x1e0cf: 0x6c852220, + 0x1e0d0: 0x6c72f620, 0x1e0d1: 0x6ccff420, 0x1e0d2: 0x6cb3da20, 0x1e0d3: 0x6c43fa20, + 0x1e0d4: 0x6d180820, 0x1e0d5: 0x6d235620, 0x1e0d6: 0x6d31da20, 0x1e0d7: 0x6c8e6020, + 0x1e0d8: 0x6cc07e20, 0x1e0d9: 0x6cc44820, 0x1e0da: 0x6c622620, 0x1e0db: 0x6d180a20, + 0x1e0dc: 0x6c103e20, 0x1e0dd: 0x6d3c1e20, 0x1e0de: 0x6cd72420, 0x1e0df: 0x6ccc0420, + 0x1e0e0: 0x6cc44e20, 0x1e0e1: 0x6c87e220, 0x1e0e2: 0x6c880620, 0x1e0e3: 0x6c88c020, + 0x1e0e4: 0x6c7a9e20, 0x1e0e5: 0x6c659e20, 0x1e0e6: 0x6c3d1820, 0x1e0e7: 0x6c14d020, + 0x1e0e8: 0x6c09e020, 0x1e0e9: 0x6c7d7020, 0x1e0ea: 0x6ce22e20, 0x1e0eb: 0x6d262a20, + 0x1e0ec: 0x6c8d2220, 0x1e0ed: 0x6c1bb420, 0x1e0ee: 0x6c167420, 0x1e0ef: 0x6c1dc420, + 0x1e0f0: 0x6c343220, 0x1e0f1: 0x6c0c7420, 0x1e0f2: 0x6c899620, 0x1e0f3: 0x6cce5c20, + 0x1e0f4: 0x6cade020, 0x1e0f5: 0x6cade220, 0x1e0f6: 0x6c3a0e20, 0x1e0f7: 0x6d24fe20, + 0x1e0f8: 0x6c95b820, 0x1e0f9: 0x6c4cca20, 0x1e0fa: 0x6d0daa20, 0x1e0fb: 0x6c31aa20, + 0x1e0fc: 0x6ce40420, 0x1e0fd: 0x6d369a20, 0x1e0fe: 0x6c70ae20, 0x1e0ff: 0x6d15fa20, + // Block 0x784, offset 0x1e100 + 0x1e100: 0x6c622820, 0x1e101: 0x6d346c20, 0x1e102: 0x6c48ba20, 0x1e103: 0x6c791c20, + 0x1e104: 0x6cb81620, 0x1e105: 0x6ce40a20, 0x1e106: 0x6ce35820, 0x1e107: 0x6c402420, + 0x1e108: 0x6c1d1a20, 0x1e109: 0x6d01f020, 0x1e10a: 0x6c0b4820, 0x1e10b: 0x6c2ed820, + 0x1e10c: 0x6c7d7c20, 0x1e10d: 0x6c32a020, 0x1e10e: 0x6d054a20, 0x1e10f: 0x6d054c20, + 0x1e110: 0x6c51d620, 0x1e111: 0x6d262c20, 0x1e112: 0x6c05ba20, 0x1e113: 0x6c060620, + 0x1e114: 0x6c402620, 0x1e115: 0x6d217c20, 0x1e116: 0x6ce98c20, 0x1e117: 0x6d0dc420, + 0x1e118: 0x6c5adc20, 0x1e119: 0x6c074420, 0x1e11a: 0x6c1ee220, 0x1e11b: 0x6c93aa20, + 0x1e11c: 0x6cadaa20, 0x1e11d: 0x6c27ee20, 0x1e11e: 0x6d27f420, 0x1e11f: 0x6cddf820, + 0x1e120: 0x6c465c20, 0x1e121: 0x6c265c20, 0x1e122: 0x6c57ee20, 0x1e123: 0x6cc6aa20, + 0x1e124: 0x6d262e20, 0x1e125: 0x6cc82620, 0x1e126: 0x6ca3d420, 0x1e127: 0x6c6f3220, + 0x1e128: 0x6cdd8620, 0x1e129: 0x6c04a220, 0x1e12a: 0x6cea0a20, 0x1e12b: 0x6c1bbe20, + 0x1e12c: 0x6cca8a20, 0x1e12d: 0x6ca7ae20, 0x1e12e: 0x6d1bec20, 0x1e12f: 0x6c6bfa20, + 0x1e130: 0x6cb91e20, 0x1e131: 0x6c57f420, 0x1e132: 0x6c7aa820, 0x1e133: 0x6c884220, + 0x1e134: 0x6c7fae20, 0x1e135: 0x6c843420, 0x1e136: 0x6d30de20, 0x1e137: 0x6cd1fc20, + 0x1e138: 0x6c93b620, 0x1e139: 0x6d18b820, 0x1e13a: 0x6c2e5e20, 0x1e13b: 0x6d023220, + 0x1e13c: 0x6cfae020, 0x1e13d: 0x6cf0ea20, 0x1e13e: 0x6c0c7e20, 0x1e13f: 0x6c129620, + // Block 0x785, offset 0x1e140 + 0x1e140: 0x6c5f4620, 0x1e141: 0x6cbb4c20, 0x1e142: 0x6ccbb020, 0x1e143: 0x6c05bc20, + 0x1e144: 0x6cfd8c20, 0x1e145: 0x6c0ae420, 0x1e146: 0x6c3f0c20, 0x1e147: 0x6c65e620, + 0x1e148: 0x6d3bea20, 0x1e149: 0x6c65e820, 0x1e14a: 0x6c257020, 0x1e14b: 0x6c60c820, + 0x1e14c: 0x6c280620, 0x1e14d: 0x6d28d020, 0x1e14e: 0x6c38cc20, 0x1e14f: 0x6c0f7e20, + 0x1e150: 0x6cfe5a20, 0x1e151: 0x6d030420, 0x1e152: 0x6c0cf820, 0x1e153: 0x6cc52e20, + 0x1e154: 0x6c97ca20, 0x1e155: 0x6c7fc620, 0x1e156: 0x6c02b220, 0x1e157: 0x6d2b1620, + 0x1e158: 0x6c4b8e20, 0x1e159: 0x6c12bc20, 0x1e15a: 0x6cdc9220, 0x1e15b: 0x6ca9d620, + 0x1e15c: 0x6c14dc20, 0x1e15d: 0x6c88d220, 0x1e15e: 0x6c0aac20, 0x1e15f: 0x6c6c6a20, + 0x1e160: 0x6c291620, 0x1e161: 0x6cd58220, 0x1e162: 0x6ce08020, 0x1e163: 0x6c0aae20, + 0x1e164: 0x6c7fd820, 0x1e165: 0x6cb46e20, 0x1e166: 0x6cc7e020, 0x1e167: 0x6d355e20, + 0x1e168: 0x6c32ec20, 0x1e169: 0x6cd58620, 0x1e16a: 0x6cec4220, 0x1e16b: 0x6cd40020, + 0x1e16c: 0x6c042c20, 0x1e16d: 0x6d012020, 0x1e16e: 0x6c0fbe20, 0x1e16f: 0x6c194220, + 0x1e170: 0x6c7f7c20, 0x1e171: 0x6c8fee20, 0x1e172: 0x6cf7c420, 0x1e173: 0x6cfb0c20, + 0x1e174: 0x6c800220, 0x1e175: 0x6d30e220, 0x1e176: 0x6c27aa20, 0x1e177: 0x6c72d820, + 0x1e178: 0x6d29c620, 0x1e179: 0x6cd21c20, 0x1e17a: 0x6c663820, 0x1e17b: 0x6cacc620, + 0x1e17c: 0x6d196820, 0x1e17d: 0x6c809c20, 0x1e17e: 0x6d0b7020, 0x1e17f: 0x6cf94020, + // Block 0x786, offset 0x1e180 + 0x1e180: 0x6cf57420, 0x1e181: 0x6d11f820, 0x1e182: 0x6c3cc820, 0x1e183: 0x6cdfe620, + 0x1e184: 0x6c40b420, 0x1e185: 0x6c3d0620, 0x1e186: 0x6c407e20, 0x1e187: 0x6c03c820, + 0x1e188: 0x6c519620, 0x1e189: 0x6c5fa420, 0x1e18a: 0x6c5fb420, 0x1e18b: 0x6c665220, + 0x1e18c: 0x6c490820, 0x1e18d: 0x6c0b9020, 0x1e18e: 0x6d0e5620, 0x1e18f: 0x6c4a6220, + 0x1e190: 0x6c743020, 0x1e191: 0x6cb13a20, 0x1e192: 0x6c997620, 0x1e193: 0x6c9d4020, + 0x1e194: 0x6c9d4220, 0x1e195: 0x6c9ed620, 0x1e196: 0x6cd36c20, 0x1e197: 0x6cd8c420, + 0x1e198: 0x6c14cc20, 0x1e199: 0x6c954a20, 0x1e19a: 0x6c745a20, 0x1e19b: 0x6c9d6020, + 0x1e19c: 0x6ce5da20, 0x1e19d: 0x6c882620, 0x1e19e: 0x6d121820, 0x1e19f: 0x6d369c20, + 0x1e1a0: 0x6c757a20, 0x1e1a1: 0x6cf79620, 0x1e1a2: 0x6ccd5a20, 0x1e1a3: 0x6ceeb620, + 0x1e1a4: 0x6cf8d220, 0x1e1a5: 0x6ce51220, 0x1e1a6: 0x6d21a620, 0x1e1a7: 0x6c803e20, + 0x1e1a8: 0x6c36aa20, 0x1e1a9: 0x6c322a20, 0x1e1aa: 0x6cbd3e20, 0x1e1ab: 0x6cad2220, + 0x1e1ac: 0x6c62a220, 0x1e1ad: 0x6ca01e20, 0x1e1ae: 0x6d1caa20, 0x1e1af: 0x6c46dc20, + 0x1e1b0: 0x6cc15020, 0x1e1b1: 0x6d2e8c20, 0x1e1b2: 0x6c6d6c20, 0x1e1b3: 0x6c492c20, + 0x1e1b4: 0x6c2abc20, 0x1e1b5: 0x6c670420, 0x1e1b6: 0x6c956420, 0x1e1b7: 0x6cc28220, + 0x1e1b8: 0x6c652620, 0x1e1b9: 0x6cef6220, 0x1e1ba: 0x6c750220, 0x1e1bb: 0x6cc15c20, + 0x1e1bc: 0x6c956a20, 0x1e1bd: 0x6c805420, 0x1e1be: 0x6cd08a20, 0x1e1bf: 0x6c2bba20, + // Block 0x787, offset 0x1e1c0 + 0x1e1c0: 0x6c494420, 0x1e1c1: 0x6c664e20, 0x1e1c2: 0x6c490220, 0x1e1c3: 0x6d0e3e20, + 0x1e1c4: 0x6c4a3a20, 0x1e1c5: 0x6c9d2a20, 0x1e1c6: 0x6cd32020, 0x1e1c7: 0x6c14be20, + 0x1e1c8: 0x6c802020, 0x1e1c9: 0x6c740a20, 0x1e1ca: 0x6c61d620, 0x1e1cb: 0x6cf77e20, + 0x1e1cc: 0x6c2b6e20, 0x1e1cd: 0x6ce4fc20, 0x1e1ce: 0x6d216820, 0x1e1cf: 0x6c46cc20, + 0x1e1d0: 0x6c6d4620, 0x1e1d1: 0x6cc27220, 0x1e1d2: 0x6c68c620, 0x1e1d3: 0x6cc01820, + 0x1e1d4: 0x6c6c3a20, 0x1e1d5: 0x6c241220, 0x1e1d6: 0x6c743220, 0x1e1d7: 0x6d360c20, + 0x1e1d8: 0x6c17bc20, 0x1e1d9: 0x6c600a20, 0x1e1da: 0x6c471220, 0x1e1db: 0x6c289020, + 0x1e1dc: 0x6d3e5820, 0x1e1dd: 0x6c2bf820, 0x1e1de: 0x6cce0420, 0x1e1df: 0x6c57a020, + 0x1e1e0: 0x6cc30220, 0x1e1e1: 0x6c440c20, 0x1e1e2: 0x6cd3a020, 0x1e1e3: 0x6c6b9820, + 0x1e1e4: 0x6c4b0a20, 0x1e1e5: 0x6c459820, 0x1e1e6: 0x6c1f5c20, 0x1e1e7: 0x6c6b9a20, + 0x1e1e8: 0x6c5d3a20, 0x1e1e9: 0x6cc08420, 0x1e1ea: 0x6d039020, 0x1e1eb: 0x6cdaf220, + 0x1e1ec: 0x6ca60220, 0x1e1ed: 0x6c5f1e20, 0x1e1ee: 0x6c92b420, 0x1e1ef: 0x6d36c020, + 0x1e1f0: 0x6d2bfa20, 0x1e1f1: 0x6c0a5e20, 0x1e1f2: 0x6d03a620, 0x1e1f3: 0x6c55cc20, + 0x1e1f4: 0x6cce2220, 0x1e1f5: 0x6c45be20, 0x1e1f6: 0x6d374820, 0x1e1f7: 0x6d092820, + 0x1e1f8: 0x6c1f8a20, 0x1e1f9: 0x6cf71a20, 0x1e1fa: 0x6d159420, 0x1e1fb: 0x6c877e20, + 0x1e1fc: 0x6c750e20, 0x1e1fd: 0x6cf75020, 0x1e1fe: 0x6d0f0c20, 0x1e1ff: 0x6cf75e20, + // Block 0x788, offset 0x1e200 + 0x1e200: 0x6d0c5c20, 0x1e201: 0x6d0f3620, 0x1e202: 0x6c2f9a20, 0x1e203: 0x6c3fc620, + 0x1e204: 0x6cc01a20, 0x1e205: 0x6cc01c20, 0x1e206: 0x6c698a20, 0x1e207: 0x6c529c20, + 0x1e208: 0x6c61b820, 0x1e209: 0x6c384c20, 0x1e20a: 0x6d0a7e20, 0x1e20b: 0x6c2e1420, + 0x1e20c: 0x6c53b820, 0x1e20d: 0x6c149820, 0x1e20e: 0x6ce25c20, 0x1e20f: 0x6d058620, + 0x1e210: 0x6c6aaa20, 0x1e211: 0x6d14dc20, 0x1e212: 0x6cc5e020, 0x1e213: 0x6d0ac020, + 0x1e214: 0x6d1a4e20, 0x1e215: 0x6ccd7e20, 0x1e216: 0x6cb77020, 0x1e217: 0x6ceabc20, + 0x1e218: 0x6c61d820, 0x1e219: 0x6d0a8020, 0x1e21a: 0x6d1a5020, 0x1e21b: 0x6c356020, + 0x1e21c: 0x6c3b2c20, 0x1e21d: 0x6d0ba420, 0x1e21e: 0x6d109e20, 0x1e21f: 0x6cd98c20, + 0x1e220: 0x6cd06020, 0x1e221: 0x6d1a5e20, 0x1e222: 0x6d02ce20, 0x1e223: 0x6c743420, + 0x1e224: 0x6cff8620, 0x1e225: 0x6ca54e20, 0x1e226: 0x6c18c020, 0x1e227: 0x6d1f2e20, + 0x1e228: 0x6d352220, 0x1e229: 0x6d046820, 0x1e22a: 0x6c39d620, 0x1e22b: 0x6d033220, + 0x1e22c: 0x6c174020, 0x1e22d: 0x6ccf4420, 0x1e22e: 0x6cfaa220, 0x1e22f: 0x6cc94e20, + 0x1e230: 0x6d3ce220, 0x1e231: 0x6d063c20, 0x1e232: 0x6d177820, 0x1e233: 0x6d177a20, + 0x1e234: 0x6cdb7a20, 0x1e235: 0x6c1ab220, 0x1e236: 0x6c509e20, 0x1e237: 0x6ccff620, + 0x1e238: 0x6c512c20, 0x1e239: 0x6d06e620, 0x1e23a: 0x6d31de20, 0x1e23b: 0x6d3afa20, + 0x1e23c: 0x6d334e20, 0x1e23d: 0x6c46a820, 0x1e23e: 0x6d3e5c20, 0x1e23f: 0x6d3f1c20, + // Block 0x789, offset 0x1e240 + 0x1e240: 0x6d2d7820, 0x1e241: 0x6c479420, 0x1e242: 0x6c3ffe20, 0x1e243: 0x6c65a020, + 0x1e244: 0x6c2eb420, 0x1e245: 0x6c8d0a20, 0x1e246: 0x6c2bfa20, 0x1e247: 0x6d104e20, + 0x1e248: 0x6c861c20, 0x1e249: 0x6ca4b020, 0x1e24a: 0x6cacb820, 0x1e24b: 0x6d392e20, + 0x1e24c: 0x6c422220, 0x1e24d: 0x6d17c420, 0x1e24e: 0x6c724420, 0x1e24f: 0x6d120c20, + 0x1e250: 0x6d2cc820, 0x1e251: 0x6d150020, 0x1e252: 0x6d150220, 0x1e253: 0x6cc24a20, + 0x1e254: 0x6d2fb620, 0x1e255: 0x6cb2b220, 0x1e256: 0x6c09ac20, 0x1e257: 0x6d049620, + 0x1e258: 0x6cc11620, 0x1e259: 0x6c037c20, 0x1e25a: 0x6c26aa20, 0x1e25b: 0x6d411e20, + 0x1e25c: 0x6ce1cc20, 0x1e25d: 0x6d3a7220, 0x1e25e: 0x6c224820, 0x1e25f: 0x6d305e20, + 0x1e260: 0x6d1e3e20, 0x1e261: 0x6d064620, 0x1e262: 0x6d0a2020, 0x1e263: 0x6d180c20, + 0x1e264: 0x6c5a5620, 0x1e265: 0x6c514420, 0x1e266: 0x6cd3a220, 0x1e267: 0x6c13f020, + 0x1e268: 0x6cfff820, 0x1e269: 0x6cd1d820, 0x1e26a: 0x6c523e20, 0x1e26b: 0x6c144420, + 0x1e26c: 0x6c46ba20, 0x1e26d: 0x6c4b0c20, 0x1e26e: 0x6cc30420, 0x1e26f: 0x6c5bea20, + 0x1e270: 0x6c6afc20, 0x1e271: 0x6c57a220, 0x1e272: 0x6c40fc20, 0x1e273: 0x6cfdca20, + 0x1e274: 0x6ceea420, 0x1e275: 0x6ccffc20, 0x1e276: 0x6d393420, 0x1e277: 0x6ce75c20, + 0x1e278: 0x6c9c6220, 0x1e279: 0x6d2d8420, 0x1e27a: 0x6ca04620, 0x1e27b: 0x6c366420, + 0x1e27c: 0x6c5ace20, 0x1e27d: 0x6d0cb220, 0x1e27e: 0x6d046e20, 0x1e27f: 0x6c48bc20, + // Block 0x78a, offset 0x1e280 + 0x1e280: 0x6c37d220, 0x1e281: 0x6c0e2420, 0x1e282: 0x6ce5c420, 0x1e283: 0x6d152020, + 0x1e284: 0x6c82ca20, 0x1e285: 0x6d39b420, 0x1e286: 0x6c7ba420, 0x1e287: 0x6c7ac620, + 0x1e288: 0x6cf3dc20, 0x1e289: 0x6d238220, 0x1e28a: 0x6ce2a420, 0x1e28b: 0x6c625220, + 0x1e28c: 0x6d36a020, 0x1e28d: 0x6cc60220, 0x1e28e: 0x6c244e20, 0x1e28f: 0x6c810c20, + 0x1e290: 0x6c357a20, 0x1e291: 0x6c7bc620, 0x1e292: 0x6c370c20, 0x1e293: 0x6cd3b820, + 0x1e294: 0x6ce6d820, 0x1e295: 0x6c289620, 0x1e296: 0x6c074620, 0x1e297: 0x6c151020, + 0x1e298: 0x6d205620, 0x1e299: 0x6c794a20, 0x1e29a: 0x6cbc4e20, 0x1e29b: 0x6cbd3820, + 0x1e29c: 0x6cd65020, 0x1e29d: 0x6c014220, 0x1e29e: 0x6d227c20, 0x1e29f: 0x6cfffe20, + 0x1e2a0: 0x6c1a2220, 0x1e2a1: 0x6c6bf420, 0x1e2a2: 0x6cfcee20, 0x1e2a3: 0x6cf37a20, + 0x1e2a4: 0x6cf51020, 0x1e2a5: 0x6c435620, 0x1e2a6: 0x6cd99a20, 0x1e2a7: 0x6c101a20, + 0x1e2a8: 0x6c5c0420, 0x1e2a9: 0x6c6e9820, 0x1e2aa: 0x6cd76a20, 0x1e2ab: 0x6d325220, + 0x1e2ac: 0x6cd76c20, 0x1e2ad: 0x6c31ae20, 0x1e2ae: 0x6c57e420, 0x1e2af: 0x6c172420, + 0x1e2b0: 0x6cd6fe20, 0x1e2b1: 0x6c6b2820, 0x1e2b2: 0x6c78d420, 0x1e2b3: 0x6cc13a20, + 0x1e2b4: 0x6c23ac20, 0x1e2b5: 0x6cff9820, 0x1e2b6: 0x6cdc6420, 0x1e2b7: 0x6cee3620, + 0x1e2b8: 0x6cfb8620, 0x1e2b9: 0x6c3a6c20, 0x1e2ba: 0x6c1ad220, 0x1e2bb: 0x6cde9220, + 0x1e2bc: 0x6d186620, 0x1e2bd: 0x6ca6c220, 0x1e2be: 0x6d1a9a20, 0x1e2bf: 0x6c2e3820, + // Block 0x78b, offset 0x1e2c0 + 0x1e2c0: 0x6cb06820, 0x1e2c1: 0x6d3d8c20, 0x1e2c2: 0x6c15de20, 0x1e2c3: 0x6c188420, + 0x1e2c4: 0x6d3cd620, 0x1e2c5: 0x6c626a20, 0x1e2c6: 0x6cb52820, 0x1e2c7: 0x6ce00820, + 0x1e2c8: 0x6d3ca420, 0x1e2c9: 0x6cf00c20, 0x1e2ca: 0x6c714c20, 0x1e2cb: 0x6cbeb220, + 0x1e2cc: 0x6c303c20, 0x1e2cd: 0x6d335420, 0x1e2ce: 0x6d2af220, 0x1e2cf: 0x6d406020, + 0x1e2d0: 0x6cb91620, 0x1e2d1: 0x6d3d8e20, 0x1e2d2: 0x6c89c820, 0x1e2d3: 0x6c66c020, + 0x1e2d4: 0x6c1f6e20, 0x1e2d5: 0x6c4fe420, 0x1e2d6: 0x6c952620, 0x1e2d7: 0x6cd06e20, + 0x1e2d8: 0x6c0c7820, 0x1e2d9: 0x6c581220, 0x1e2da: 0x6cb12620, 0x1e2db: 0x6d219420, + 0x1e2dc: 0x6c2eea20, 0x1e2dd: 0x6d05e820, 0x1e2de: 0x6cb14220, 0x1e2df: 0x6cd3de20, + 0x1e2e0: 0x6d07d220, 0x1e2e1: 0x6cd3e020, 0x1e2e2: 0x6c5d4220, 0x1e2e3: 0x6c57c020, + 0x1e2e4: 0x6c36ac20, 0x1e2e5: 0x6d384020, 0x1e2e6: 0x6c2c9c20, 0x1e2e7: 0x6d00f220, + 0x1e2e8: 0x6c3ef620, 0x1e2e9: 0x6cb49420, 0x1e2ea: 0x6ce69020, 0x1e2eb: 0x6c66d620, + 0x1e2ec: 0x6cb71e20, 0x1e2ed: 0x6d23f620, 0x1e2ee: 0x6d3e9020, 0x1e2ef: 0x6d3b9420, + 0x1e2f0: 0x6cf81420, 0x1e2f1: 0x6c5c4220, 0x1e2f2: 0x6d1a0220, 0x1e2f3: 0x6c015020, + 0x1e2f4: 0x6cfb9e20, 0x1e2f5: 0x6ca40e20, 0x1e2f6: 0x6c18ec20, 0x1e2f7: 0x6c3cce20, + 0x1e2f8: 0x6d39c620, 0x1e2f9: 0x6d0fd820, 0x1e2fa: 0x6d0ec420, 0x1e2fb: 0x6c5a0020, + 0x1e2fc: 0x6d07d420, 0x1e2fd: 0x6c443a20, 0x1e2fe: 0x6cab0e20, 0x1e2ff: 0x6cb53220, + // Block 0x78c, offset 0x1e300 + 0x1e300: 0x6ca1e820, 0x1e301: 0x6d134620, 0x1e302: 0x6cf0d620, 0x1e303: 0x6d044620, + 0x1e304: 0x6ce2ba20, 0x1e305: 0x6d38b620, 0x1e306: 0x6ccdc020, 0x1e307: 0x6c65ec20, + 0x1e308: 0x6cb33a20, 0x1e309: 0x6c7d2220, 0x1e30a: 0x6c5a6420, 0x1e30b: 0x6c5e0c20, + 0x1e30c: 0x6c43b620, 0x1e30d: 0x6d1cac20, 0x1e30e: 0x6c9c7420, 0x1e30f: 0x6cffc020, + 0x1e310: 0x6c9d9820, 0x1e311: 0x6cf81a20, 0x1e312: 0x6cbae220, 0x1e313: 0x6c188c20, + 0x1e314: 0x6d097220, 0x1e315: 0x6ce38820, 0x1e316: 0x6cdb4a20, 0x1e317: 0x6c059420, + 0x1e318: 0x6c1b5a20, 0x1e319: 0x6cb92820, 0x1e31a: 0x6cd3ea20, 0x1e31b: 0x6c67c820, + 0x1e31c: 0x6d25b620, 0x1e31d: 0x6d023620, 0x1e31e: 0x6c51f620, 0x1e31f: 0x6ce1f220, + 0x1e320: 0x6d115020, 0x1e321: 0x6d115220, 0x1e322: 0x6d378020, 0x1e323: 0x6d21c820, + 0x1e324: 0x6c0c4020, 0x1e325: 0x6c23e020, 0x1e326: 0x6cbee620, 0x1e327: 0x6c846420, + 0x1e328: 0x6ca08020, 0x1e329: 0x6ca17620, 0x1e32a: 0x6cce2420, 0x1e32b: 0x6d30b020, + 0x1e32c: 0x6ca05420, 0x1e32d: 0x6c660420, 0x1e32e: 0x6d2b1820, 0x1e32f: 0x6c6a3a20, + 0x1e330: 0x6c886e20, 0x1e331: 0x6c90c620, 0x1e332: 0x6c121020, 0x1e333: 0x6cab5e20, + 0x1e334: 0x6c4c0620, 0x1e335: 0x6cf7ae20, 0x1e336: 0x6d3dc020, 0x1e337: 0x6c027a20, + 0x1e338: 0x6c027c20, 0x1e339: 0x6c6cc220, 0x1e33a: 0x6d30b220, 0x1e33b: 0x6d158620, + 0x1e33c: 0x6c551220, 0x1e33d: 0x6c680e20, 0x1e33e: 0x6c978e20, 0x1e33f: 0x6c178a20, + // Block 0x78d, offset 0x1e340 + 0x1e340: 0x6c4f2620, 0x1e341: 0x6c576020, 0x1e342: 0x6c160020, 0x1e343: 0x6d060020, + 0x1e344: 0x6d2ba420, 0x1e345: 0x6ccb9220, 0x1e346: 0x6cf71c20, 0x1e347: 0x6d2c0420, + 0x1e348: 0x6c337a20, 0x1e349: 0x6d336c20, 0x1e34a: 0x6ca4ce20, 0x1e34b: 0x6c7fda20, + 0x1e34c: 0x6c359820, 0x1e34d: 0x6d1c2620, 0x1e34e: 0x6c74ee20, 0x1e34f: 0x6c5f8220, + 0x1e350: 0x6d421220, 0x1e351: 0x6c696020, 0x1e352: 0x6c0ffc20, 0x1e353: 0x6c5c8620, + 0x1e354: 0x6d3bf420, 0x1e355: 0x6cf40820, 0x1e356: 0x6d2b7a20, 0x1e357: 0x6d2c6220, + 0x1e358: 0x6cd42220, 0x1e359: 0x6cbc6c20, 0x1e35a: 0x6ce03620, 0x1e35b: 0x6d2b7c20, + 0x1e35c: 0x6cb4a020, 0x1e35d: 0x6cd12820, 0x1e35e: 0x6d07ee20, 0x1e35f: 0x6d2a9820, + 0x1e360: 0x6ce04020, 0x1e361: 0x6c293620, 0x1e362: 0x6cdcac20, 0x1e363: 0x6cfc4e20, + 0x1e364: 0x6c5f8c20, 0x1e365: 0x6c69d820, 0x1e366: 0x6c6e3c20, 0x1e367: 0x6d2e9820, + 0x1e368: 0x6ca45c20, 0x1e369: 0x6d143220, 0x1e36a: 0x6c010420, 0x1e36b: 0x6d2dbc20, + 0x1e36c: 0x6cb0d820, 0x1e36d: 0x6c5b7e20, 0x1e36e: 0x6c57d420, 0x1e36f: 0x6d193220, + 0x1e370: 0x6d193420, 0x1e371: 0x6ccdd620, 0x1e372: 0x6cc51c20, 0x1e373: 0x6caa3220, + 0x1e374: 0x6cba3220, 0x1e375: 0x6d3cbe20, 0x1e376: 0x6cdee420, 0x1e377: 0x6c56e020, + 0x1e378: 0x6d38c420, 0x1e379: 0x6c500420, 0x1e37a: 0x6c010620, 0x1e37b: 0x6d1c3420, + 0x1e37c: 0x6c671a20, 0x1e37d: 0x6d246620, 0x1e37e: 0x6c662c20, 0x1e37f: 0x6c5c9c20, + // Block 0x78e, offset 0x1e380 + 0x1e380: 0x6c31f020, 0x1e381: 0x6d30bc20, 0x1e382: 0x6d08d020, 0x1e383: 0x6d29bc20, + 0x1e384: 0x6c830c20, 0x1e385: 0x6cd08c20, 0x1e386: 0x6cf12220, 0x1e387: 0x6c161a20, + 0x1e388: 0x6c879020, 0x1e389: 0x6d159a20, 0x1e38a: 0x6c0bdc20, 0x1e38b: 0x6d30c820, + 0x1e38c: 0x6d0f0e20, 0x1e38d: 0x6c36f220, 0x1e38e: 0x6c1e0e20, 0x1e38f: 0x6cf12a20, + 0x1e390: 0x6c1e1020, 0x1e391: 0x6d125620, 0x1e392: 0x6c157c20, 0x1e393: 0x6cc51e20, + 0x1e394: 0x6d1b2c20, 0x1e395: 0x6c801020, 0x1e396: 0x6c194820, 0x1e397: 0x6d013820, + 0x1e398: 0x6ca8cc20, 0x1e399: 0x6c584c20, 0x1e39a: 0x6d29ca20, 0x1e39b: 0x6d197c20, + 0x1e39c: 0x6c294a20, 0x1e39d: 0x6d2dda20, 0x1e39e: 0x6d0f2a20, 0x1e39f: 0x6c321020, + 0x1e3a0: 0x6d0c5020, 0x1e3a1: 0x6c616e20, 0x1e3a2: 0x6c2f8c20, 0x1e3a3: 0x6c3fa220, + 0x1e3a4: 0x6cc5a420, 0x1e3a5: 0x6c5e6620, 0x1e3a6: 0x6c6a5c20, 0x1e3a7: 0x6c53b420, + 0x1e3a8: 0x6ce25820, 0x1e3a9: 0x6cc51820, 0x1e3aa: 0x6ccd6620, 0x1e3ab: 0x6cb72820, + 0x1e3ac: 0x6cea9420, 0x1e3ad: 0x6d0abe20, 0x1e3ae: 0x6d164e20, 0x1e3af: 0x6d0a6220, + 0x1e3b0: 0x6c617020, 0x1e3b1: 0x6cc5aa20, 0x1e3b2: 0x6c679c20, 0x1e3b3: 0x6c5b8c20, + 0x1e3b4: 0x6cab2c20, 0x1e3b5: 0x6c71f420, 0x1e3b6: 0x6d0b7220, 0x1e3b7: 0x6ca54220, + 0x1e3b8: 0x6d062420, 0x1e3b9: 0x6c354620, 0x1e3ba: 0x6c952020, 0x1e3bb: 0x6d045220, + 0x1e3bc: 0x6cd97c20, 0x1e3bd: 0x6c3cc420, 0x1e3be: 0x6ccf3220, 0x1e3bf: 0x6c39b820, + // Block 0x78f, offset 0x1e3c0 + 0x1e3c0: 0x6c73d620, 0x1e3c1: 0x6d333a20, 0x1e3c2: 0x6c475a20, 0x1e3c3: 0x6c508a20, + 0x1e3c4: 0x6cb27020, 0x1e3c5: 0x6d410820, 0x1e3c6: 0x6cd40e20, 0x1e3c7: 0x6d048620, + 0x1e3c8: 0x6d2caa20, 0x1e3c9: 0x6cdb7820, 0x1e3ca: 0x6d31b420, 0x1e3cb: 0x6c2bce20, + 0x1e3cc: 0x6d385420, 0x1e3cd: 0x6c221e20, 0x1e3ce: 0x6cc0d420, 0x1e3cf: 0x6d2f9820, + 0x1e3d0: 0x6c092020, 0x1e3d1: 0x6d169c20, 0x1e3d2: 0x6d146620, 0x1e3d3: 0x6c7b8620, + 0x1e3d4: 0x6c82b620, 0x1e3d5: 0x6cd32220, 0x1e3d6: 0x6c48aa20, 0x1e3d7: 0x6cd19c20, + 0x1e3d8: 0x6c5fe420, 0x1e3d9: 0x6c5a8c20, 0x1e3da: 0x6c19c020, 0x1e3db: 0x6d398420, + 0x1e3dc: 0x6ccfb420, 0x1e3dd: 0x6c578620, 0x1e3de: 0x6c286c20, 0x1e3df: 0x6c469620, + 0x1e3e0: 0x6cc2ba20, 0x1e3e1: 0x6c4aca20, 0x1e3e2: 0x6d09e020, 0x1e3e3: 0x6d16d220, + 0x1e3e4: 0x6d328e20, 0x1e3e5: 0x6c40de20, 0x1e3e6: 0x6cfdb020, 0x1e3e7: 0x6c143220, + 0x1e3e8: 0x6c5d1a20, 0x1e3e9: 0x6d062e20, 0x1e3ea: 0x6d386220, 0x1e3eb: 0x6c6bd420, + 0x1e3ec: 0x6cf35c20, 0x1e3ed: 0x6d223020, 0x1e3ee: 0x6cbc3220, 0x1e3ef: 0x6cf4ce20, + 0x1e3f0: 0x6c433c20, 0x1e3f1: 0x6d203220, 0x1e3f2: 0x6c5ba420, 0x1e3f3: 0x6c7bbc20, + 0x1e3f4: 0x6cd76620, 0x1e3f5: 0x6cd98220, 0x1e3f6: 0x6c370a20, 0x1e3f7: 0x6cbea220, + 0x1e3f8: 0x6d399620, 0x1e3f9: 0x6d404a20, 0x1e3fa: 0x6caae620, 0x1e3fb: 0x6c319420, + 0x1e3fc: 0x6d3d3e20, 0x1e3fd: 0x6c3a4e20, 0x1e3fe: 0x6c789c20, 0x1e3ff: 0x6cefa620, + // Block 0x790, offset 0x1e400 + 0x1e400: 0x6d20f820, 0x1e401: 0x6cd6fa20, 0x1e402: 0x6cd05420, 0x1e403: 0x6c2e1620, + 0x1e404: 0x6c15a220, 0x1e405: 0x6c89b020, 0x1e406: 0x6d3cd020, 0x1e407: 0x6cdc3220, + 0x1e408: 0x6cdfd620, 0x1e409: 0x6cd05620, 0x1e40a: 0x6d174820, 0x1e40b: 0x6ca1d020, + 0x1e40c: 0x6c18c220, 0x1e40d: 0x6c2e9620, 0x1e40e: 0x6c5a5220, 0x1e40f: 0x6c668220, + 0x1e410: 0x6d00a620, 0x1e411: 0x6d095a20, 0x1e412: 0x6d12ea20, 0x1e413: 0x6cf08820, + 0x1e414: 0x6c361a20, 0x1e415: 0x6d232420, 0x1e416: 0x6d078e20, 0x1e417: 0x6c14f020, + 0x1e418: 0x6d3e2c20, 0x1e419: 0x6c012c20, 0x1e41a: 0x6d0e6620, 0x1e41b: 0x6c2c5020, + 0x1e41c: 0x6c9c4e20, 0x1e41d: 0x6cb13c20, 0x1e41e: 0x6d059020, 0x1e41f: 0x6ca05820, + 0x1e420: 0x6c292e20, 0x1e421: 0x6cdab820, 0x1e422: 0x6d01b620, 0x1e423: 0x6d10fe20, + 0x1e424: 0x6c057420, 0x1e425: 0x6cd38c20, 0x1e426: 0x6cb8e420, 0x1e427: 0x6c9d4c20, + 0x1e428: 0x6c6c9820, 0x1e429: 0x6c976820, 0x1e42a: 0x6d306620, 0x1e42b: 0x6c65b620, + 0x1e42c: 0x6ca05220, 0x1e42d: 0x6cdff420, 0x1e42e: 0x6d2b7820, 0x1e42f: 0x6cbbe420, + 0x1e430: 0x6c7fa820, 0x1e431: 0x6cb49020, 0x1e432: 0x6c748620, 0x1e433: 0x6d0ea820, + 0x1e434: 0x6cba1e20, 0x1e435: 0x6d2d9020, 0x1e436: 0x6c193c20, 0x1e437: 0x6c475c20, + 0x1e438: 0x6cb8cc20, 0x1e439: 0x6c534020, 0x1e43a: 0x6cf96420, 0x1e43b: 0x6c602420, + 0x1e43c: 0x6c536820, 0x1e43d: 0x6c4db220, 0x1e43e: 0x6c52c020, 0x1e43f: 0x6cf6f420, + // Block 0x791, offset 0x1e440 + 0x1e440: 0x6cf6f620, 0x1e441: 0x6c5d6220, 0x1e442: 0x6c8a3e20, 0x1e443: 0x6c4e6a20, + 0x1e444: 0x6c31f220, 0x1e445: 0x6c900420, 0x1e446: 0x6c30fa20, 0x1e447: 0x6c675a20, + 0x1e448: 0x6cb6e820, 0x1e449: 0x6cd37220, 0x1e44a: 0x6c852420, 0x1e44b: 0x6c2a9e20, + 0x1e44c: 0x6cec9a20, 0x1e44d: 0x6c088a20, 0x1e44e: 0x6cd60820, 0x1e44f: 0x6cfd1c20, + 0x1e450: 0x6c3c7020, 0x1e451: 0x6d375a20, 0x1e452: 0x6d377620, 0x1e453: 0x6d0f2c20, + 0x1e454: 0x6d0f3020, 0x1e455: 0x6cd2b020, 0x1e456: 0x6c1f1620, 0x1e457: 0x6c5aae20, + 0x1e458: 0x6cea4e20, 0x1e459: 0x6d177c20, 0x1e45a: 0x6cea5020, 0x1e45b: 0x6d177e20, + 0x1e45c: 0x6c649020, 0x1e45d: 0x6c034a20, 0x1e45e: 0x6c547220, 0x1e45f: 0x6c364820, + 0x1e460: 0x6c1e8420, 0x1e461: 0x6cfe3020, 0x1e462: 0x6c593e20, 0x1e463: 0x6c64c220, + 0x1e464: 0x6c790420, 0x1e465: 0x6c40fe20, 0x1e466: 0x6c725a20, 0x1e467: 0x6c3d8a20, + 0x1e468: 0x6cf68420, 0x1e469: 0x6c0d4820, 0x1e46a: 0x6c4fd620, 0x1e46b: 0x6d23ce20, + 0x1e46c: 0x6d39c820, 0x1e46d: 0x6c638420, 0x1e46e: 0x6c3b9a20, 0x1e46f: 0x6cf6f820, + 0x1e470: 0x6c0f8020, 0x1e471: 0x6cf16620, 0x1e472: 0x6c58aa20, 0x1e473: 0x6c0d5820, + 0x1e474: 0x6c2ba620, 0x1e475: 0x6d3fce20, 0x1e476: 0x6c3ba620, 0x1e477: 0x6d191c20, + 0x1e478: 0x6d357c20, 0x1e479: 0x6c064020, 0x1e47a: 0x6c147820, 0x1e47b: 0x6c01b420, + 0x1e47c: 0x6cafe620, 0x1e47d: 0x6ca33c20, 0x1e47e: 0x6caf6620, 0x1e47f: 0x6c468a20, + // Block 0x792, offset 0x1e480 + 0x1e480: 0x6ca34620, 0x1e481: 0x6d204820, 0x1e482: 0x6c2dcc20, 0x1e483: 0x6ca11e20, + 0x1e484: 0x6cd8ce20, 0x1e485: 0x6d04dc20, 0x1e486: 0x6c588420, 0x1e487: 0x6c7d7220, + 0x1e488: 0x6c514820, 0x1e489: 0x6c4fce20, 0x1e48a: 0x6ca13220, 0x1e48b: 0x6c4ef020, + 0x1e48c: 0x6c99a420, 0x1e48d: 0x6c842220, 0x1e48e: 0x6ca60420, 0x1e48f: 0x6c08f420, + 0x1e490: 0x6d229620, 0x1e491: 0x6c638620, 0x1e492: 0x6ce93a20, 0x1e493: 0x6c98be20, + 0x1e494: 0x6cb02620, 0x1e495: 0x6cf6fa20, 0x1e496: 0x6c36b820, 0x1e497: 0x6c72ae20, + 0x1e498: 0x6ca17820, 0x1e499: 0x6c1e6a20, 0x1e49a: 0x6ce03820, 0x1e49b: 0x6c584e20, + 0x1e49c: 0x6c753620, 0x1e49d: 0x6c06dc20, 0x1e49e: 0x6d313220, 0x1e49f: 0x6d254a20, + 0x1e4a0: 0x6c3fc820, 0x1e4a1: 0x6c110e20, 0x1e4a2: 0x6c461420, 0x1e4a3: 0x6ce27220, + 0x1e4a4: 0x6d14de20, 0x1e4a5: 0x6c4f7820, 0x1e4a6: 0x6ced8020, 0x1e4a7: 0x6cb20a20, + 0x1e4a8: 0x6c5dc820, 0x1e4a9: 0x6c395020, 0x1e4aa: 0x6cdfa620, 0x1e4ab: 0x6c498620, + 0x1e4ac: 0x6d2ac820, 0x1e4ad: 0x6d345e20, 0x1e4ae: 0x6c37cc20, 0x1e4af: 0x6d3afe20, + 0x1e4b0: 0x6cd38e20, 0x1e4b1: 0x6c09ae20, 0x1e4b2: 0x6d3e5e20, 0x1e4b3: 0x6c37d020, + 0x1e4b4: 0x6c4b4e20, 0x1e4b5: 0x6cb14020, 0x1e4b6: 0x6c0b3a20, 0x1e4b7: 0x6c971420, + 0x1e4b8: 0x6c277220, 0x1e4b9: 0x6cd16820, 0x1e4ba: 0x6c7bf820, 0x1e4bb: 0x6c3ab220, + 0x1e4bc: 0x6ce5f420, 0x1e4bd: 0x6d150620, 0x1e4be: 0x6c1b2a20, 0x1e4bf: 0x6c998620, + // Block 0x793, offset 0x1e4c0 + 0x1e4c0: 0x6c51c820, 0x1e4c1: 0x6c09b020, 0x1e4c2: 0x6c927420, 0x1e4c3: 0x6c8c5420, + 0x1e4c4: 0x6c5bec20, 0x1e4c5: 0x6c410020, 0x1e4c6: 0x6cb11a20, 0x1e4c7: 0x6d3e6020, + 0x1e4c8: 0x6c642020, 0x1e4c9: 0x6d070420, 0x1e4ca: 0x6d2b6020, 0x1e4cb: 0x6c691020, + 0x1e4cc: 0x6c414a20, 0x1e4cd: 0x6d29dc20, 0x1e4ce: 0x6c669e20, 0x1e4cf: 0x6d1be220, + 0x1e4d0: 0x6d0a9c20, 0x1e4d1: 0x6d325420, 0x1e4d2: 0x6ccef820, 0x1e4d3: 0x6c0d4a20, + 0x1e4d4: 0x6c0d4c20, 0x1e4d5: 0x6cc08620, 0x1e4d6: 0x6ccefa20, 0x1e4d7: 0x6c203c20, + 0x1e4d8: 0x6d29e620, 0x1e4d9: 0x6d38a220, 0x1e4da: 0x6c7f5220, 0x1e4db: 0x6d299820, + 0x1e4dc: 0x6c22e020, 0x1e4dd: 0x6c188620, 0x1e4de: 0x6cce3a20, 0x1e4df: 0x6ce51620, + 0x1e4e0: 0x6cadee20, 0x1e4e1: 0x6c44de20, 0x1e4e2: 0x6cfb8820, 0x1e4e3: 0x6c974020, + 0x1e4e4: 0x6c66c220, 0x1e4e5: 0x6cdc6820, 0x1e4e6: 0x6c404420, 0x1e4e7: 0x6ce0aa20, + 0x1e4e8: 0x6c23ae20, 0x1e4e9: 0x6c23b020, 0x1e4ea: 0x6d36c620, 0x1e4eb: 0x6c5f2220, + 0x1e4ec: 0x6d2f3e20, 0x1e4ed: 0x6c322c20, 0x1e4ee: 0x6c6d5420, 0x1e4ef: 0x6d047420, + 0x1e4f0: 0x6c218820, 0x1e4f1: 0x6d280420, 0x1e4f2: 0x6c061420, 0x1e4f3: 0x6d290c20, + 0x1e4f4: 0x6c7f5820, 0x1e4f5: 0x6c3cf820, 0x1e4f6: 0x6c125c20, 0x1e4f7: 0x6c5f6020, + 0x1e4f8: 0x6cd17e20, 0x1e4f9: 0x6d18da20, 0x1e4fa: 0x6d3bec20, 0x1e4fb: 0x6c406820, + 0x1e4fc: 0x6c46de20, 0x1e4fd: 0x6cc9ea20, 0x1e4fe: 0x6d2b1a20, 0x1e4ff: 0x6c8a4020, + // Block 0x794, offset 0x1e500 + 0x1e500: 0x6d18f820, 0x1e501: 0x6c045e20, 0x1e502: 0x6c191620, 0x1e503: 0x6ceda620, + 0x1e504: 0x6d373220, 0x1e505: 0x6d3cb620, 0x1e506: 0x6c0c4620, 0x1e507: 0x6d276e20, + 0x1e508: 0x6d2bb620, 0x1e509: 0x6c28e020, 0x1e50a: 0x6d29ae20, 0x1e50b: 0x6d0eec20, + 0x1e50c: 0x6cb4c420, 0x1e50d: 0x6ccdd820, 0x1e50e: 0x6cedac20, 0x1e50f: 0x6d1cca20, + 0x1e510: 0x6c6d7220, 0x1e511: 0x6c423c20, 0x1e512: 0x6cfbd420, 0x1e513: 0x6d29f020, + 0x1e514: 0x6c0ac620, 0x1e515: 0x6c31f420, 0x1e516: 0x6cd54820, 0x1e517: 0x6d0f0620, + 0x1e518: 0x6cce4220, 0x1e519: 0x6d08d420, 0x1e51a: 0x6c907020, 0x1e51b: 0x6c424420, + 0x1e51c: 0x6d29f420, 0x1e51d: 0x6c06d220, 0x1e51e: 0x6d311c20, 0x1e51f: 0x6c3fa820, + 0x1e520: 0x6d253420, 0x1e521: 0x6c460c20, 0x1e522: 0x6c110c20, 0x1e523: 0x6d2aae20, + 0x1e524: 0x6cfb2e20, 0x1e525: 0x6c043820, 0x1e526: 0x6d2f2a20, 0x1e527: 0x6c5da220, + 0x1e528: 0x6d358e20, 0x1e529: 0x6c393420, 0x1e52a: 0x6cdf9220, 0x1e52b: 0x6cb20620, + 0x1e52c: 0x6c0b2a20, 0x1e52d: 0x6c469820, 0x1e52e: 0x6d3ab420, 0x1e52f: 0x6c497a20, + 0x1e530: 0x6c37c420, 0x1e531: 0x6c666220, 0x1e532: 0x6c078220, 0x1e533: 0x6cd34820, + 0x1e534: 0x6ce5ec20, 0x1e535: 0x6c4b3a20, 0x1e536: 0x6c7bec20, 0x1e537: 0x6c274e20, + 0x1e538: 0x6c995a20, 0x1e539: 0x6c3a9220, 0x1e53a: 0x6c51be20, 0x1e53b: 0x6d14b020, + 0x1e53c: 0x6d2b5c20, 0x1e53d: 0x6d35ce20, 0x1e53e: 0x6c640e20, 0x1e53f: 0x6c5bb020, + // Block 0x795, offset 0x1e540 + 0x1e540: 0x6d3e1e20, 0x1e541: 0x6c8c5020, 0x1e542: 0x6c922c20, 0x1e543: 0x6d29d820, + 0x1e544: 0x6d3e2020, 0x1e545: 0x6c40f020, 0x1e546: 0x6c6cfa20, 0x1e547: 0x6cc05220, + 0x1e548: 0x6d323c20, 0x1e549: 0x6c7f4620, 0x1e54a: 0x6ccef020, 0x1e54b: 0x6c400020, + 0x1e54c: 0x6c322020, 0x1e54d: 0x6c5edc20, 0x1e54e: 0x6cd52c20, 0x1e54f: 0x6cce3820, + 0x1e550: 0x6c22ce20, 0x1e551: 0x6c09b220, 0x1e552: 0x6d388c20, 0x1e553: 0x6c44d420, + 0x1e554: 0x6cadda20, 0x1e555: 0x6c283620, 0x1e556: 0x6c7f4c20, 0x1e557: 0x6c3ce820, + 0x1e558: 0x6d3c9e20, 0x1e559: 0x6c402820, 0x1e55a: 0x6d3bd620, 0x1e55b: 0x6cc9e620, + 0x1e55c: 0x6d2af420, 0x1e55d: 0x6d0ec820, 0x1e55e: 0x6d299a20, 0x1e55f: 0x6d276820, + 0x1e560: 0x6d2bb220, 0x1e561: 0x6ccdc220, 0x1e562: 0x6d1cae20, 0x1e563: 0x6c423e20, + 0x1e564: 0x6c1be820, 0x1e565: 0x6cf60220, 0x1e566: 0x6ccf4620, 0x1e567: 0x6ca42420, + 0x1e568: 0x6ce75e20, 0x1e569: 0x6cf8a820, 0x1e56a: 0x6c197620, 0x1e56b: 0x6c51dc20, + 0x1e56c: 0x6c199620, 0x1e56d: 0x6d30dc20, 0x1e56e: 0x6cf9f620, 0x1e56f: 0x6ce14620, + 0x1e570: 0x6d407e20, 0x1e571: 0x6d407c20, 0x1e572: 0x6c85b620, 0x1e573: 0x6c6f6020, + 0x1e574: 0x6c3fca20, 0x1e575: 0x6d2fa620, 0x1e576: 0x6c41d220, 0x1e577: 0x6cb6ea20, + 0x1e578: 0x6ccd8020, 0x1e579: 0x6cbf1c20, 0x1e57a: 0x6d1adc20, 0x1e57b: 0x6cfc0c20, + 0x1e57c: 0x6c21fe20, 0x1e57d: 0x6c743620, 0x1e57e: 0x6cbdd420, 0x1e57f: 0x6c1b2020, + // Block 0x796, offset 0x1e580 + 0x1e580: 0x6c220020, 0x1e581: 0x6c192820, 0x1e582: 0x6c192a20, 0x1e583: 0x6c2eb620, + 0x1e584: 0x6c70a020, 0x1e585: 0x6c174820, 0x1e586: 0x6c2b3020, 0x1e587: 0x6cf89620, + 0x1e588: 0x6d2d7a20, 0x1e589: 0x6c745c20, 0x1e58a: 0x6d26be20, 0x1e58b: 0x6cc11820, + 0x1e58c: 0x6c606220, 0x1e58d: 0x6c1b3e20, 0x1e58e: 0x6c1e9420, 0x1e58f: 0x6c486420, + 0x1e590: 0x6d096820, 0x1e591: 0x6d3e6220, 0x1e592: 0x6ce59420, 0x1e593: 0x6c349c20, + 0x1e594: 0x6c8b1c20, 0x1e595: 0x6c41e220, 0x1e596: 0x6cdd3220, 0x1e597: 0x6c245020, + 0x1e598: 0x6cf79820, 0x1e599: 0x6d2fd220, 0x1e59a: 0x6cdaf420, 0x1e59b: 0x6d1b0020, + 0x1e59c: 0x6c715020, 0x1e59d: 0x6c66c420, 0x1e59e: 0x6cc3f420, 0x1e59f: 0x6ce1a020, + 0x1e5a0: 0x6c21d020, 0x1e5a1: 0x6c250420, 0x1e5a2: 0x6c92b820, 0x1e5a3: 0x6cc27420, + 0x1e5a4: 0x6c298c20, 0x1e5a5: 0x6cbfc820, 0x1e5a6: 0x6d3e9220, 0x1e5a7: 0x6ce37e20, + 0x1e5a8: 0x6cc14a20, 0x1e5a9: 0x6c1c8820, 0x1e5aa: 0x6c5a1e20, 0x1e5ab: 0x6cbc0a20, + 0x1e5ac: 0x6cbbc220, 0x1e5ad: 0x6c69ce20, 0x1e5ae: 0x6d2a9a20, 0x1e5af: 0x6ce44220, + 0x1e5b0: 0x6c37b020, 0x1e5b1: 0x6d298420, 0x1e5b2: 0x6d298820, 0x1e5b3: 0x6d40a620, + 0x1e5b4: 0x6cabbc20, 0x1e5b5: 0x6c064220, 0x1e5b6: 0x6c7a8c20, 0x1e5b7: 0x6c77f220, + 0x1e5b8: 0x6c33cc20, 0x1e5b9: 0x6c743820, 0x1e5ba: 0x6c3d6c20, 0x1e5bb: 0x6c190020, + 0x1e5bc: 0x6c658c20, 0x1e5bd: 0x6c39e420, 0x1e5be: 0x6d352420, 0x1e5bf: 0x6cdde620, + // Block 0x797, offset 0x1e5c0 + 0x1e5c0: 0x6d26a820, 0x1e5c1: 0x6c03b620, 0x1e5c2: 0x6cb5d820, 0x1e5c3: 0x6d26aa20, + 0x1e5c4: 0x6cbab420, 0x1e5c5: 0x6ceba820, 0x1e5c6: 0x6cdf2420, 0x1e5c7: 0x6d17c820, + 0x1e5c8: 0x6ca72620, 0x1e5c9: 0x6c8d0e20, 0x1e5ca: 0x6c9a9420, 0x1e5cb: 0x6c038220, + 0x1e5cc: 0x6c2e5820, 0x1e5cd: 0x6c7a4420, 0x1e5ce: 0x6ceb2420, 0x1e5cf: 0x6c636620, + 0x1e5d0: 0x6c220620, 0x1e5d1: 0x6cad7820, 0x1e5d2: 0x6cb83820, 0x1e5d3: 0x6d3b0020, + 0x1e5d4: 0x6c70a220, 0x1e5d5: 0x6c2d1c20, 0x1e5d6: 0x6d346e20, 0x1e5d7: 0x6c3d7620, + 0x1e5d8: 0x6cac5a20, 0x1e5d9: 0x6c724e20, 0x1e5da: 0x6ccce620, 0x1e5db: 0x6c0fe420, + 0x1e5dc: 0x6ca5ec20, 0x1e5dd: 0x6c724620, 0x1e5de: 0x6c861e20, 0x1e5df: 0x6c449a20, + 0x1e5e0: 0x6d152420, 0x1e5e1: 0x6c5ef420, 0x1e5e2: 0x6c34fe20, 0x1e5e3: 0x6cfc1c20, + 0x1e5e4: 0x6c685420, 0x1e5e5: 0x6c350020, 0x1e5e6: 0x6d39b620, 0x1e5e7: 0x6cc30620, + 0x1e5e8: 0x6c7aec20, 0x1e5e9: 0x6d3b6820, 0x1e5ea: 0x6c4b5a20, 0x1e5eb: 0x6cbf4420, + 0x1e5ec: 0x6c7cd620, 0x1e5ed: 0x6cfdce20, 0x1e5ee: 0x6c1c3620, 0x1e5ef: 0x6c927620, + 0x1e5f0: 0x6cb11c20, 0x1e5f1: 0x6d367020, 0x1e5f2: 0x6c63d020, 0x1e5f3: 0x6ce5dc20, + 0x1e5f4: 0x6c113820, 0x1e5f5: 0x6c669820, 0x1e5f6: 0x6cde6a20, 0x1e5f7: 0x6cbb8020, + 0x1e5f8: 0x6c09e220, 0x1e5f9: 0x6cfab220, 0x1e5fa: 0x6c350220, 0x1e5fb: 0x6c5ef620, + 0x1e5fc: 0x6c714620, 0x1e5fd: 0x6c625420, 0x1e5fe: 0x6cd4fa20, 0x1e5ff: 0x6ce8e020, + // Block 0x798, offset 0x1e600 + 0x1e600: 0x6c1f6420, 0x1e601: 0x6c6e9a20, 0x1e602: 0x6ca85620, 0x1e603: 0x6cfef820, + 0x1e604: 0x6c10b020, 0x1e605: 0x6d091420, 0x1e606: 0x6c259a20, 0x1e607: 0x6ca25020, + 0x1e608: 0x6cd4fc20, 0x1e609: 0x6c896220, 0x1e60a: 0x6d1e5420, 0x1e60b: 0x6c691820, + 0x1e60c: 0x6c1dce20, 0x1e60d: 0x6cbb9220, 0x1e60e: 0x6ca1da20, 0x1e60f: 0x6cde9420, + 0x1e610: 0x6c66c620, 0x1e611: 0x6cb64620, 0x1e612: 0x6cf29e20, 0x1e613: 0x6cf00e20, + 0x1e614: 0x6c219820, 0x1e615: 0x6c6b2a20, 0x1e616: 0x6c609a20, 0x1e617: 0x6ca86420, + 0x1e618: 0x6c70be20, 0x1e619: 0x6c70c020, 0x1e61a: 0x6c950c20, 0x1e61b: 0x6c92bc20, + 0x1e61c: 0x6c839a20, 0x1e61d: 0x6c57f020, 0x1e61e: 0x6c728420, 0x1e61f: 0x6c1b4e20, + 0x1e620: 0x6ced4820, 0x1e621: 0x6cc31420, 0x1e622: 0x6ce2fa20, 0x1e623: 0x6c0f4c20, + 0x1e624: 0x6d40d220, 0x1e625: 0x6cbce220, 0x1e626: 0x6d160820, 0x1e627: 0x6c245e20, + 0x1e628: 0x6d3fbc20, 0x1e629: 0x6c113e20, 0x1e62a: 0x6d3fbe20, 0x1e62b: 0x6caf1620, + 0x1e62c: 0x6d36c820, 0x1e62d: 0x6d32d820, 0x1e62e: 0x6c2d2a20, 0x1e62f: 0x6d349420, + 0x1e630: 0x6d21aa20, 0x1e631: 0x6c346220, 0x1e632: 0x6c340c20, 0x1e633: 0x6c202820, + 0x1e634: 0x6d1e6020, 0x1e635: 0x6d380820, 0x1e636: 0x6c2c9e20, 0x1e637: 0x6d2c9220, + 0x1e638: 0x6c191020, 0x1e639: 0x6c1fce20, 0x1e63a: 0x6c66c820, 0x1e63b: 0x6c486e20, + 0x1e63c: 0x6ce13e20, 0x1e63d: 0x6c71d620, 0x1e63e: 0x6c3efa20, 0x1e63f: 0x6d40d820, + // Block 0x799, offset 0x1e640 + 0x1e640: 0x6c2eec20, 0x1e641: 0x6cb12e20, 0x1e642: 0x6cc76020, 0x1e643: 0x6cab1020, + 0x1e644: 0x6ce38020, 0x1e645: 0x6c142020, 0x1e646: 0x6ce9ec20, 0x1e647: 0x6c65ee20, + 0x1e648: 0x6c29f420, 0x1e649: 0x6c25ca20, 0x1e64a: 0x6cb53a20, 0x1e64b: 0x6cdeb020, + 0x1e64c: 0x6cbae420, 0x1e64d: 0x6ca74020, 0x1e64e: 0x6c2ce020, 0x1e64f: 0x6ce38a20, + 0x1e650: 0x6c60ce20, 0x1e651: 0x6ca87e20, 0x1e652: 0x6cac7820, 0x1e653: 0x6c8e3a20, + 0x1e654: 0x6d29aa20, 0x1e655: 0x6c0a7a20, 0x1e656: 0x6c1cf220, 0x1e657: 0x6c931020, + 0x1e658: 0x6c8a4220, 0x1e659: 0x6c246e20, 0x1e65a: 0x6ce0da20, 0x1e65b: 0x6c27a420, + 0x1e65c: 0x6cdb5420, 0x1e65d: 0x6cf81e20, 0x1e65e: 0x6c7ce220, 0x1e65f: 0x6c5f7820, + 0x1e660: 0x6d34ae20, 0x1e661: 0x6cbaee20, 0x1e662: 0x6c2ba820, 0x1e663: 0x6cac8420, + 0x1e664: 0x6d3fd020, 0x1e665: 0x6c887020, 0x1e666: 0x6c085c20, 0x1e667: 0x6d2a2a20, + 0x1e668: 0x6ca74820, 0x1e669: 0x6c0d0220, 0x1e66a: 0x6ce9d220, 0x1e66b: 0x6c717e20, + 0x1e66c: 0x6c2ac020, 0x1e66d: 0x6c137020, 0x1e66e: 0x6cfaf420, 0x1e66f: 0x6c38dc20, + 0x1e670: 0x6c1ec820, 0x1e671: 0x6d37d820, 0x1e672: 0x6c33be20, 0x1e673: 0x6c0e9a20, + 0x1e674: 0x6c247420, 0x1e675: 0x6c247620, 0x1e676: 0x6c74f220, 0x1e677: 0x6c74f420, + 0x1e678: 0x6c8c7e20, 0x1e679: 0x6cde0620, 0x1e67a: 0x6cbbc420, 0x1e67b: 0x6c73bc20, + 0x1e67c: 0x6cb4a220, 0x1e67d: 0x6c89d420, 0x1e67e: 0x6c33c020, 0x1e67f: 0x6c249620, + // Block 0x79a, offset 0x1e680 + 0x1e680: 0x6c7c1220, 0x1e681: 0x6d2a9c20, 0x1e682: 0x6c26d220, 0x1e683: 0x6c0abc20, + 0x1e684: 0x6c0abe20, 0x1e685: 0x6d3a3820, 0x1e686: 0x6c72be20, 0x1e687: 0x6c1ec020, + 0x1e688: 0x6cbc7020, 0x1e689: 0x6c33d020, 0x1e68a: 0x6c1e0820, 0x1e68b: 0x6c5f9620, + 0x1e68c: 0x6cf48e20, 0x1e68d: 0x6d271820, 0x1e68e: 0x6ca74c20, 0x1e68f: 0x6c8c8220, + 0x1e690: 0x6c8b7620, 0x1e691: 0x6d34c020, 0x1e692: 0x6c878220, 0x1e693: 0x6d376a20, + 0x1e694: 0x6c156e20, 0x1e695: 0x6c1ece20, 0x1e696: 0x6c32e820, 0x1e697: 0x6cf12420, + 0x1e698: 0x6c900620, 0x1e699: 0x6c8c8c20, 0x1e69a: 0x6cfb0e20, 0x1e69b: 0x6cf12e20, + 0x1e69c: 0x6d414020, 0x1e69d: 0x6c801220, 0x1e69e: 0x6d028e20, 0x1e69f: 0x6cc4fa20, + 0x1e6a0: 0x6cc95e20, 0x1e6a1: 0x6ca8ce20, 0x1e6a2: 0x6cdef620, 0x1e6a3: 0x6cc22c20, + 0x1e6a4: 0x6c6c1220, 0x1e6a5: 0x6c249a20, 0x1e6a6: 0x6c260620, 0x1e6a7: 0x6cf83020, + 0x1e6a8: 0x6c7cc620, 0x1e6a9: 0x6c753a20, 0x1e6aa: 0x6c8c9020, 0x1e6ab: 0x6ccfa420, + 0x1e6ac: 0x6c457e20, 0x1e6ad: 0x6c27d820, 0x1e6ae: 0x6c3c0a20, 0x1e6af: 0x6cc10820, + 0x1e6b0: 0x6ce3c220, 0x1e6b1: 0x6c349e20, 0x1e6b2: 0x6c34a020, 0x1e6b3: 0x6c459a20, + 0x1e6b4: 0x6c80da20, 0x1e6b5: 0x6cc60e20, 0x1e6b6: 0x6c95be20, 0x1e6b7: 0x6c007620, + 0x1e6b8: 0x6c5f2420, 0x1e6b9: 0x6c715220, 0x1e6ba: 0x6ce18020, 0x1e6bb: 0x6c79ae20, + 0x1e6bc: 0x6c81de20, 0x1e6bd: 0x6d0dd820, 0x1e6be: 0x6c9abc20, 0x1e6bf: 0x6c775c20, + // Block 0x79b, offset 0x1e6c0 + 0x1e6c0: 0x6cc15420, 0x1e6c1: 0x6c90ce20, 0x1e6c2: 0x6c81ea20, 0x1e6c3: 0x6c34c020, + 0x1e6c4: 0x6d34b420, 0x1e6c5: 0x6d0f3c20, 0x1e6c6: 0x6ce3cc20, 0x1e6c7: 0x6c2a4e20, + 0x1e6c8: 0x6d1d7420, 0x1e6c9: 0x6d249a20, 0x1e6ca: 0x6c17ce20, 0x1e6cb: 0x6d0b8220, + 0x1e6cc: 0x6c4ade20, 0x1e6cd: 0x6c756420, 0x1e6ce: 0x6cf08220, 0x1e6cf: 0x6d269e20, + 0x1e6d0: 0x6d032c20, 0x1e6d1: 0x6c275420, 0x1e6d2: 0x6d078a20, 0x1e6d3: 0x6c393e20, + 0x1e6d4: 0x6cc5e420, 0x1e6d5: 0x6cccde20, 0x1e6d6: 0x6c7bc020, 0x1e6d7: 0x6cd4d620, + 0x1e6d8: 0x6cea5220, 0x1e6d9: 0x6c18c420, 0x1e6da: 0x6c276820, 0x1e6db: 0x6c361c20, + 0x1e6dc: 0x6ca34020, 0x1e6dd: 0x6cb5dc20, 0x1e6de: 0x6c98de20, 0x1e6df: 0x6cc86020, + 0x1e6e0: 0x6cc5ec20, 0x1e6e1: 0x6cb98c20, 0x1e6e2: 0x6d3ba620, 0x1e6e3: 0x6c52a020, + 0x1e6e4: 0x6c54d220, 0x1e6e5: 0x6cc19c20, 0x1e6e6: 0x6c7bfa20, 0x1e6e7: 0x6c2bfc20, + 0x1e6e8: 0x6c8d1220, 0x1e6e9: 0x6c277420, 0x1e6ea: 0x6c022c20, 0x1e6eb: 0x6d31e220, + 0x1e6ec: 0x6c395620, 0x1e6ed: 0x6c7baa20, 0x1e6ee: 0x6d102220, 0x1e6ef: 0x6cae7420, + 0x1e6f0: 0x6c072820, 0x1e6f1: 0x6c471420, 0x1e6f2: 0x6c471620, 0x1e6f3: 0x6cad5e20, + 0x1e6f4: 0x6d3b0420, 0x1e6f5: 0x6cc71020, 0x1e6f6: 0x6c364a20, 0x1e6f7: 0x6c038420, + 0x1e6f8: 0x6d38d420, 0x1e6f9: 0x6d353020, 0x1e6fa: 0x6d110020, 0x1e6fb: 0x6c780020, + 0x1e6fc: 0x6d17ca20, 0x1e6fd: 0x6d364420, 0x1e6fe: 0x6cd3a820, 0x1e6ff: 0x6cb2b820, + // Block 0x79c, offset 0x1e700 + 0x1e700: 0x6c375e20, 0x1e701: 0x6c45f420, 0x1e702: 0x6c713a20, 0x1e703: 0x6c69a820, + 0x1e704: 0x6c49ee20, 0x1e705: 0x6c514c20, 0x1e706: 0x6c766420, 0x1e707: 0x6cc30820, + 0x1e708: 0x6d389420, 0x1e709: 0x6d293c20, 0x1e70a: 0x6d367220, 0x1e70b: 0x6ccef620, + 0x1e70c: 0x6c89c420, 0x1e70d: 0x6d23ae20, 0x1e70e: 0x6cce7c20, 0x1e70f: 0x6d1f5c20, + 0x1e710: 0x6ced9020, 0x1e711: 0x6d1af820, 0x1e712: 0x6d307420, 0x1e713: 0x6ced3e20, + 0x1e714: 0x6c3f7c20, 0x1e715: 0x6cbe5420, 0x1e716: 0x6d38a620, 0x1e717: 0x6ca60620, + 0x1e718: 0x6c838420, 0x1e719: 0x6d308420, 0x1e71a: 0x6d2e7a20, 0x1e71b: 0x6c89ca20, + 0x1e71c: 0x6d3e8220, 0x1e71d: 0x6c5aee20, 0x1e71e: 0x6cee3820, 0x1e71f: 0x6c21d220, + 0x1e720: 0x6c4ccc20, 0x1e721: 0x6c76e820, 0x1e722: 0x6d160a20, 0x1e723: 0x6caec220, + 0x1e724: 0x6cba7a20, 0x1e725: 0x6c4be620, 0x1e726: 0x6ca73a20, 0x1e727: 0x6cb2c820, + 0x1e728: 0x6c496020, 0x1e729: 0x6c075220, 0x1e72a: 0x6c950e20, 0x1e72b: 0x6cac0420, + 0x1e72c: 0x6c896c20, 0x1e72d: 0x6cc88020, 0x1e72e: 0x6cc76220, 0x1e72f: 0x6c631020, + 0x1e730: 0x6d0fda20, 0x1e731: 0x6cfba020, 0x1e732: 0x6c201020, 0x1e733: 0x6c23fe20, + 0x1e734: 0x6c211c20, 0x1e735: 0x6c443c20, 0x1e736: 0x6d1f7220, 0x1e737: 0x6c52cc20, + 0x1e738: 0x6cd50820, 0x1e739: 0x6c405820, 0x1e73a: 0x6d3e9420, 0x1e73b: 0x6c3efc20, + 0x1e73c: 0x6cf16820, 0x1e73d: 0x6c07cc20, 0x1e73e: 0x6d2e2020, 0x1e73f: 0x6d21c020, + // Block 0x79d, offset 0x1e740 + 0x1e740: 0x6cf16a20, 0x1e741: 0x6ce1f420, 0x1e742: 0x6c47dc20, 0x1e743: 0x6d319e20, + 0x1e744: 0x6cfa0220, 0x1e745: 0x6d25b820, 0x1e746: 0x6c931220, 0x1e747: 0x6c689e20, + 0x1e748: 0x6c178620, 0x1e749: 0x6d3bb420, 0x1e74a: 0x6cf0f820, 0x1e74b: 0x6c5d0420, + 0x1e74c: 0x6d098c20, 0x1e74d: 0x6d30b820, 0x1e74e: 0x6c69d020, 0x1e74f: 0x6d2e9020, + 0x1e750: 0x6c102620, 0x1e751: 0x6c81c620, 0x1e752: 0x6c3ba820, 0x1e753: 0x6c386a20, + 0x1e754: 0x6c8bfc20, 0x1e755: 0x6c445220, 0x1e756: 0x6ccb8e20, 0x1e757: 0x6c76fc20, + 0x1e758: 0x6c58be20, 0x1e759: 0x6d162820, 0x1e75a: 0x6c60f020, 0x1e75b: 0x6d3cc020, + 0x1e75c: 0x6c377820, 0x1e75d: 0x6d246820, 0x1e75e: 0x6c671c20, 0x1e75f: 0x6c52e020, + 0x1e760: 0x6c829220, 0x1e761: 0x6cae2c20, 0x1e762: 0x6c878420, 0x1e763: 0x6c879a20, + 0x1e764: 0x6c91a020, 0x1e765: 0x6c8c9220, 0x1e766: 0x6c17ca20, 0x1e767: 0x6d0b6a20, + 0x1e768: 0x6c4ac020, 0x1e769: 0x6d077a20, 0x1e76a: 0x6c272a20, 0x1e76b: 0x6cc5ca20, + 0x1e76c: 0x6d3ba020, 0x1e76d: 0x6c35e220, 0x1e76e: 0x6c94e020, 0x1e76f: 0x6cc85420, + 0x1e770: 0x6c529820, 0x1e771: 0x6c46fa20, 0x1e772: 0x6c77ec20, 0x1e773: 0x6c914820, + 0x1e774: 0x6d38d020, 0x1e775: 0x6d350a20, 0x1e776: 0x6d171020, 0x1e777: 0x6c54b220, + 0x1e778: 0x6d31c420, 0x1e779: 0x6c85ba20, 0x1e77a: 0x6d10dc20, 0x1e77b: 0x6cbe3620, + 0x1e77c: 0x6cd36220, 0x1e77d: 0x6d293420, 0x1e77e: 0x6d35d020, 0x1e77f: 0x6c699620, + // Block 0x79e, offset 0x1e780 + 0x1e780: 0x6d386c20, 0x1e781: 0x6cc2d020, 0x1e782: 0x6c922e20, 0x1e783: 0x6c699820, + 0x1e784: 0x6d305420, 0x1e785: 0x6c3f6020, 0x1e786: 0x6c89b220, 0x1e787: 0x6ca72a20, + 0x1e788: 0x6c072a20, 0x1e789: 0x6c5abc20, 0x1e78a: 0x6c4bcc20, 0x1e78b: 0x6cee2620, + 0x1e78c: 0x6c895820, 0x1e78d: 0x6c21c420, 0x1e78e: 0x6d3e4820, 0x1e78f: 0x6c23f420, + 0x1e790: 0x6c3eae20, 0x1e791: 0x6c630c20, 0x1e792: 0x6cf15e20, 0x1e793: 0x6cd4f020, + 0x1e794: 0x6cae2020, 0x1e795: 0x6d259a20, 0x1e796: 0x6cf9e220, 0x1e797: 0x6ca72e20, + 0x1e798: 0x6c92c420, 0x1e799: 0x6d309420, 0x1e79a: 0x6c8be220, 0x1e79b: 0x6d02ae20, + 0x1e79c: 0x6c471820, 0x1e79d: 0x6c224a20, 0x1e79e: 0x6c225220, 0x1e79f: 0x6cb0a820, + 0x1e7a0: 0x6d41ba20, 0x1e7a1: 0x6c0bb020, 0x1e7a2: 0x6c7e8e20, 0x1e7a3: 0x6c7e9020, + 0x1e7a4: 0x6c226020, 0x1e7a5: 0x6d08ea20, 0x1e7a6: 0x6c050620, 0x1e7a7: 0x6c0bc020, + 0x1e7a8: 0x6c0bc220, 0x1e7a9: 0x6c0bc420, 0x1e7aa: 0x6d08ec20, 0x1e7ab: 0x6c0bcc20, + 0x1e7ac: 0x6c04a820, 0x1e7ad: 0x6c227e20, 0x1e7ae: 0x6c0bd620, 0x1e7af: 0x6c0bda20, + 0x1e7b0: 0x6c18a020, 0x1e7b1: 0x6cc7fc20, 0x1e7b2: 0x6ca9bc20, 0x1e7b3: 0x6ca9c220, + 0x1e7b4: 0x6c160420, 0x1e7b5: 0x6c21a820, 0x1e7b6: 0x6c21a420, 0x1e7b7: 0x6d198820, + 0x1e7b8: 0x6cc61820, 0x1e7b9: 0x6c0ae820, 0x1e7ba: 0x6c0aea20, 0x1e7bb: 0x6cd22e20, + 0x1e7bc: 0x6cc83220, 0x1e7bd: 0x6c89d620, 0x1e7be: 0x6c267620, 0x1e7bf: 0x6c14b620, + // Block 0x79f, offset 0x1e7c0 + 0x1e7c0: 0x6c416420, 0x1e7c1: 0x6cb8a020, 0x1e7c2: 0x6d207620, 0x1e7c3: 0x6d207820, + 0x1e7c4: 0x6cb73420, 0x1e7c5: 0x6d0a6820, 0x1e7c6: 0x6d145820, 0x1e7c7: 0x6c4ce420, + 0x1e7c8: 0x6c972020, 0x1e7c9: 0x6cb4ca20, 0x1e7ca: 0x6d288620, 0x1e7cb: 0x6cee4a20, + 0x1e7cc: 0x6ce91e20, 0x1e7cd: 0x6d3cca20, 0x1e7ce: 0x6d1c5820, 0x1e7cf: 0x6ce3d620, + 0x1e7d0: 0x6d281620, 0x1e7d1: 0x6c6cd620, 0x1e7d2: 0x6c4f5c20, 0x1e7d3: 0x6d0b7a20, + 0x1e7d4: 0x6c390620, 0x1e7d5: 0x6cf4b020, 0x1e7d6: 0x6c267820, 0x1e7d7: 0x6c354c20, + 0x1e7d8: 0x6c4d1c20, 0x1e7d9: 0x6d30e420, 0x1e7da: 0x6d384c20, 0x1e7db: 0x6c6cd820, + 0x1e7dc: 0x6d25de20, 0x1e7dd: 0x6ceee420, 0x1e7de: 0x6c87ee20, 0x1e7df: 0x6c1b0220, + 0x1e7e0: 0x6c180420, 0x1e7e1: 0x6ca68020, 0x1e7e2: 0x6ce57420, 0x1e7e3: 0x6d359020, + 0x1e7e4: 0x6d147c20, 0x1e7e5: 0x6c6efc20, 0x1e7e6: 0x6c633220, 0x1e7e7: 0x6c18a620, + 0x1e7e8: 0x6c273a20, 0x1e7e9: 0x6c378820, 0x1e7ea: 0x6c2b5e20, 0x1e7eb: 0x6cb36a20, + 0x1e7ec: 0x6d3ab620, 0x1e7ed: 0x6c2e6420, 0x1e7ee: 0x6d2ab020, 0x1e7ef: 0x6ce20620, + 0x1e7f0: 0x6cd5a220, 0x1e7f1: 0x6ceaf620, 0x1e7f2: 0x6cc28620, 0x1e7f3: 0x6c6e5020, + 0x1e7f4: 0x6c5b2a20, 0x1e7f5: 0x6c306820, 0x1e7f6: 0x6d203420, 0x1e7f7: 0x6c9c4020, + 0x1e7f8: 0x6c083c20, 0x1e7f9: 0x6c5e9c20, 0x1e7fa: 0x6ca39c20, 0x1e7fb: 0x6d14b220, + 0x1e7fc: 0x6c6a9a20, 0x1e7fd: 0x6d3c5820, 0x1e7fe: 0x6c8ade20, 0x1e7ff: 0x6d0a7420, + // Block 0x7a0, offset 0x1e800 + 0x1e800: 0x6ce9f620, 0x1e801: 0x6cd98420, 0x1e802: 0x6cd34a20, 0x1e803: 0x6ce20e20, + 0x1e804: 0x6cacf820, 0x1e805: 0x6c546820, 0x1e806: 0x6ca68a20, 0x1e807: 0x6c33e420, + 0x1e808: 0x6c6f0420, 0x1e809: 0x6d084620, 0x1e80a: 0x6d0a7620, 0x1e80b: 0x6c101220, + 0x1e80c: 0x6d1e9c20, 0x1e80d: 0x6cfeac20, 0x1e80e: 0x6cc03a20, 0x1e80f: 0x6ce82420, + 0x1e810: 0x6d3a0a20, 0x1e811: 0x6cc03c20, 0x1e812: 0x6c2c3420, 0x1e813: 0x6c2c3620, + 0x1e814: 0x6ce89a20, 0x1e815: 0x6c6e6c20, 0x1e816: 0x6ce3e620, 0x1e817: 0x6c310a20, + 0x1e818: 0x6d15e020, 0x1e819: 0x6d30ee20, 0x1e81a: 0x6ce6f220, 0x1e81b: 0x6c4a2020, + 0x1e81c: 0x6cf4da20, 0x1e81d: 0x6cd36420, 0x1e81e: 0x6c1a6a20, 0x1e81f: 0x6cda9820, + 0x1e820: 0x6d2a7a20, 0x1e821: 0x6cc43620, 0x1e822: 0x6c3ca420, 0x1e823: 0x6c87fa20, + 0x1e824: 0x6cddc820, 0x1e825: 0x6c5b3220, 0x1e826: 0x6c850e20, 0x1e827: 0x6c483620, + 0x1e828: 0x6c7f0220, 0x1e829: 0x6c07b820, 0x1e82a: 0x6c262420, 0x1e82b: 0x6c743e20, + 0x1e82c: 0x6c083e20, 0x1e82d: 0x6c591820, 0x1e82e: 0x6c271620, 0x1e82f: 0x6c924a20, + 0x1e830: 0x6d1f3220, 0x1e831: 0x6d387c20, 0x1e832: 0x6c6d0820, 0x1e833: 0x6d232620, + 0x1e834: 0x6c219620, 0x1e835: 0x6c7c6820, 0x1e836: 0x6cee7620, 0x1e837: 0x6ce3f020, + 0x1e838: 0x6d178420, 0x1e839: 0x6c26a220, 0x1e83a: 0x6d25e620, 0x1e83b: 0x6c954420, + 0x1e83c: 0x6c087420, 0x1e83d: 0x6caaf220, 0x1e83e: 0x6d213a20, 0x1e83f: 0x6c296a20, + // Block 0x7a1, offset 0x1e840 + 0x1e840: 0x6cdbf620, 0x1e841: 0x6c33f420, 0x1e842: 0x6cdc4220, 0x1e843: 0x6d0d9820, + 0x1e844: 0x6c1ffc20, 0x1e845: 0x6c1b2c20, 0x1e846: 0x6ce33420, 0x1e847: 0x6d235c20, + 0x1e848: 0x6cd26c20, 0x1e849: 0x6d315a20, 0x1e84a: 0x6d1f4020, 0x1e84b: 0x6d283820, + 0x1e84c: 0x6c364c20, 0x1e84d: 0x6c0ba420, 0x1e84e: 0x6c4cec20, 0x1e84f: 0x6c364e20, + 0x1e850: 0x6cf9ca20, 0x1e851: 0x6c59ca20, 0x1e852: 0x6cc07020, 0x1e853: 0x6c2a1820, + 0x1e854: 0x6c26ac20, 0x1e855: 0x6cef1620, 0x1e856: 0x6ca45020, 0x1e857: 0x6d150820, + 0x1e858: 0x6c46be20, 0x1e859: 0x6d111620, 0x1e85a: 0x6c1e4620, 0x1e85b: 0x6c8e7420, + 0x1e85c: 0x6d0a9820, 0x1e85d: 0x6cde6c20, 0x1e85e: 0x6c2c7420, 0x1e85f: 0x6c1b4020, + 0x1e860: 0x6d25ec20, 0x1e861: 0x6cdada20, 0x1e862: 0x6cde6e20, 0x1e863: 0x6cba1420, + 0x1e864: 0x6c96f220, 0x1e865: 0x6d111820, 0x1e866: 0x6c499c20, 0x1e867: 0x6d2ed220, + 0x1e868: 0x6c025820, 0x1e869: 0x6cd3bc20, 0x1e86a: 0x6c10ea20, 0x1e86b: 0x6c1c4e20, + 0x1e86c: 0x6cdaf620, 0x1e86d: 0x6d2a1c20, 0x1e86e: 0x6d300420, 0x1e86f: 0x6c340220, + 0x1e870: 0x6c2c8820, 0x1e871: 0x6c90ac20, 0x1e872: 0x6c1b5020, 0x1e873: 0x6c25c220, + 0x1e874: 0x6c8bd620, 0x1e875: 0x6d41f020, 0x1e876: 0x6cc54820, 0x1e877: 0x6cb91820, + 0x1e878: 0x6d085820, 0x1e879: 0x6d23d620, 0x1e87a: 0x6d154e20, 0x1e87b: 0x6cf51c20, + 0x1e87c: 0x6c8a1620, 0x1e87d: 0x6c729820, 0x1e87e: 0x6cd3e220, 0x1e87f: 0x6c0a6020, + // Block 0x7a2, offset 0x1e880 + 0x1e880: 0x6d10bc20, 0x1e881: 0x6c974220, 0x1e882: 0x6d022220, 0x1e883: 0x6cdc9420, + 0x1e884: 0x6c4d2a20, 0x1e885: 0x6d2d9e20, 0x1e886: 0x6ce2b020, 0x1e887: 0x6c37aa20, + 0x1e888: 0x6c9ea220, 0x1e889: 0x6c0b0c20, 0x1e88a: 0x6c0b1420, 0x1e88b: 0x6c7e5220, + 0x1e88c: 0x6c847a20, 0x1e88d: 0x6d25c820, 0x1e88e: 0x6d117620, 0x1e88f: 0x6c957c20, + 0x1e890: 0x6c854c20, 0x1e891: 0x6d169e20, 0x1e892: 0x6ce65a20, 0x1e893: 0x6c2ad420, + 0x1e894: 0x6cb6c420, 0x1e895: 0x6d1d8220, 0x1e896: 0x6cccb420, 0x1e897: 0x6c4dc820, + 0x1e898: 0x6d20a420, 0x1e899: 0x6c982220, 0x1e89a: 0x6cc78820, 0x1e89b: 0x6cbef620, + 0x1e89c: 0x6cedb420, 0x1e89d: 0x6c7bd620, 0x1e89e: 0x6c3d3620, 0x1e89f: 0x6c777a20, + 0x1e8a0: 0x6c0d2020, 0x1e8a1: 0x6c398220, 0x1e8a2: 0x6d03bc20, 0x1e8a3: 0x6ca30220, + 0x1e8a4: 0x6d02a620, 0x1e8a5: 0x6cd04220, 0x1e8a6: 0x6c051620, 0x1e8a7: 0x6d253620, + 0x1e8a8: 0x6c259020, 0x1e8a9: 0x6c5d8a20, 0x1e8aa: 0x6d006a20, 0x1e8ab: 0x6c052c20, + 0x1e8ac: 0x6cf34e20, 0x1e8ad: 0x6c720220, 0x1e8ae: 0x6d1ef620, 0x1e8af: 0x6c4dd020, + 0x1e8b0: 0x6cdf1220, 0x1e8b1: 0x6cbf9820, 0x1e8b2: 0x6c092220, 0x1e8b3: 0x6caf2e20, + 0x1e8b4: 0x6c0dbe20, 0x1e8b5: 0x6ccec620, 0x1e8b6: 0x6c06de20, 0x1e8b7: 0x6cec1020, + 0x1e8b8: 0x6c2bd020, 0x1e8b9: 0x6d404620, 0x1e8ba: 0x6d12c820, 0x1e8bb: 0x6c8b9e20, + 0x1e8bc: 0x6c7b8820, 0x1e8bd: 0x6c4a3c20, 0x1e8be: 0x6d398620, 0x1e8bf: 0x6cd19e20, + // Block 0x7a3, offset 0x1e8c0 + 0x1e8c0: 0x6c7a2c20, 0x1e8c1: 0x6d22dc20, 0x1e8c2: 0x6c40e020, 0x1e8c3: 0x6c50ce20, + 0x1e8c4: 0x6cbc9a20, 0x1e8c5: 0x6d359420, 0x1e8c6: 0x6c5fe620, 0x1e8c7: 0x6c585c20, + 0x1e8c8: 0x6c545e20, 0x1e8c9: 0x6d03c820, 0x1e8ca: 0x6c682a20, 0x1e8cb: 0x6cf76a20, + 0x1e8cc: 0x6c4a7620, 0x1e8cd: 0x6caab420, 0x1e8ce: 0x6c80a220, 0x1e8cf: 0x6c63a620, + 0x1e8d0: 0x6c7b1420, 0x1e8d1: 0x6d333e20, 0x1e8d2: 0x6c813820, 0x1e8d3: 0x6d281e20, + 0x1e8d4: 0x6d0c6c20, 0x1e8d5: 0x6c19c220, 0x1e8d6: 0x6c30fc20, 0x1e8d7: 0x6cf5ae20, + 0x1e8d8: 0x6c935220, 0x1e8d9: 0x6c3f4e20, 0x1e8da: 0x6cf3aa20, 0x1e8db: 0x6c3e2620, + 0x1e8dc: 0x6c433e20, 0x1e8dd: 0x6c500a20, 0x1e8de: 0x6c80a420, 0x1e8df: 0x6c63aa20, + 0x1e8e0: 0x6c44f020, 0x1e8e1: 0x6c759a20, 0x1e8e2: 0x6d1ce220, 0x1e8e3: 0x6c0eca20, + 0x1e8e4: 0x6cf86820, 0x1e8e5: 0x6c06f420, 0x1e8e6: 0x6c85bc20, 0x1e8e7: 0x6d279220, + 0x1e8e8: 0x6c108c20, 0x1e8e9: 0x6cff7a20, 0x1e8ea: 0x6cb4e020, 0x1e8eb: 0x6cafd420, + 0x1e8ec: 0x6cbe3c20, 0x1e8ed: 0x6c4c1a20, 0x1e8ee: 0x6d386e20, 0x1e8ef: 0x6cdfd820, + 0x1e8f0: 0x6d404c20, 0x1e8f1: 0x6cb27e20, 0x1e8f2: 0x6c7ef020, 0x1e8f3: 0x6ca5d020, + 0x1e8f4: 0x6c186220, 0x1e8f5: 0x6d1f2420, 0x1e8f6: 0x6c10b420, 0x1e8f7: 0x6cfd6820, + 0x1e8f8: 0x6c27d020, 0x1e8f9: 0x6c711e20, 0x1e8fa: 0x6d1dba20, 0x1e8fb: 0x6cbb7420, + 0x1e8fc: 0x6d13ea20, 0x1e8fd: 0x6c30a620, 0x1e8fe: 0x6d0d7220, 0x1e8ff: 0x6c99f220, + // Block 0x7a4, offset 0x1e900 + 0x1e900: 0x6cc91a20, 0x1e901: 0x6c071820, 0x1e902: 0x6c361e20, 0x1e903: 0x6cd4d820, + 0x1e904: 0x6c735e20, 0x1e905: 0x6d225220, 0x1e906: 0x6d282820, 0x1e907: 0x6c53f420, + 0x1e908: 0x6c7c6a20, 0x1e909: 0x6cfd6e20, 0x1e90a: 0x6cfd7020, 0x1e90b: 0x6cd9a820, + 0x1e90c: 0x6ce0f820, 0x1e90d: 0x6ca00220, 0x1e90e: 0x6cf63220, 0x1e90f: 0x6cc7fe20, + 0x1e910: 0x6c1f4c20, 0x1e911: 0x6d3e4a20, 0x1e912: 0x6d405820, 0x1e913: 0x6d12f820, + 0x1e914: 0x6cf36c20, 0x1e915: 0x6cfd7c20, 0x1e916: 0x6d27a820, 0x1e917: 0x6c504220, + 0x1e918: 0x6d1d9220, 0x1e919: 0x6c08e620, 0x1e91a: 0x6c998820, 0x1e91b: 0x6c176420, + 0x1e91c: 0x6c3d8620, 0x1e91d: 0x6c8a6e20, 0x1e91e: 0x6d1a7820, 0x1e91f: 0x6d3b8020, + 0x1e920: 0x6c56a820, 0x1e921: 0x6cbb8220, 0x1e922: 0x6d0c1820, 0x1e923: 0x6d2ebc20, + 0x1e924: 0x6c97e020, 0x1e925: 0x6cbb8420, 0x1e926: 0x6d065020, 0x1e927: 0x6c2adc20, + 0x1e928: 0x6c0a9c20, 0x1e929: 0x6d0a2820, 0x1e92a: 0x6c0a0c20, 0x1e92b: 0x6d2b8420, + 0x1e92c: 0x6cef2620, 0x1e92d: 0x6d335820, 0x1e92e: 0x6c99a820, 0x1e92f: 0x6ccd9620, + 0x1e930: 0x6c8bc820, 0x1e931: 0x6cb33420, 0x1e932: 0x6c27f020, 0x1e933: 0x6c9b4020, + 0x1e934: 0x6d133220, 0x1e935: 0x6c12b820, 0x1e936: 0x6c7b3620, 0x1e937: 0x6c3c6420, + 0x1e938: 0x6c9b4220, 0x1e939: 0x6d406420, 0x1e93a: 0x6c7c0220, 0x1e93b: 0x6c88d020, + 0x1e93c: 0x6d29a220, 0x1e93d: 0x6c153020, 0x1e93e: 0x6d1eb820, 0x1e93f: 0x6c5f6420, + // Block 0x7a5, offset 0x1e940 + 0x1e940: 0x6d0ed820, 0x1e941: 0x6c154820, 0x1e942: 0x6c25f820, 0x1e943: 0x6c8d8820, + 0x1e944: 0x6c583a20, 0x1e945: 0x6cf74020, 0x1e946: 0x6c3c7820, 0x1e947: 0x6d29b620, + 0x1e948: 0x6c875820, 0x1e949: 0x6d1fa420, 0x1e94a: 0x6c2f5a20, 0x1e94b: 0x6cc02020, + 0x1e94c: 0x6d3d4020, 0x1e94d: 0x6cae1820, 0x1e94e: 0x6d391e20, 0x1e94f: 0x6d15e220, + 0x1e950: 0x6c418e20, 0x1e951: 0x6d20fe20, 0x1e952: 0x6c6fba20, 0x1e953: 0x6d0d7420, + 0x1e954: 0x6d41ae20, 0x1e955: 0x6c98e020, 0x1e956: 0x6d323e20, 0x1e957: 0x6d06c820, + 0x1e958: 0x6c311820, 0x1e959: 0x6d315420, 0x1e95a: 0x6c3b3020, 0x1e95b: 0x6d263e20, + 0x1e95c: 0x6c40ae20, 0x1e95d: 0x6d282a20, 0x1e95e: 0x6cdf7220, 0x1e95f: 0x6ce46a20, + 0x1e960: 0x6cb83a20, 0x1e961: 0x6ceb2c20, 0x1e962: 0x6c243e20, 0x1e963: 0x6c4da820, + 0x1e964: 0x6c471a20, 0x1e965: 0x6cda5020, 0x1e966: 0x6c37ee20, 0x1e967: 0x6c1dc620, + 0x1e968: 0x6d293e20, 0x1e969: 0x6ca03a20, 0x1e96a: 0x6c81d620, 0x1e96b: 0x6c21ca20, + 0x1e96c: 0x6c1e4e20, 0x1e96d: 0x6d205020, 0x1e96e: 0x6ce76020, 0x1e96f: 0x6d353c20, + 0x1e970: 0x6cfab420, 0x1e971: 0x6c67ec20, 0x1e972: 0x6c1a3020, 0x1e973: 0x6d1b6c20, + 0x1e974: 0x6ce8e220, 0x1e975: 0x6c69b220, 0x1e976: 0x6c9a1a20, 0x1e977: 0x6c7aa420, + 0x1e978: 0x6cdb8820, 0x1e979: 0x6c833c20, 0x1e97a: 0x6cb44420, 0x1e97b: 0x6d41c220, + 0x1e97c: 0x6c4d4420, 0x1e97d: 0x6d0e9c20, 0x1e97e: 0x6ccc8c20, 0x1e97f: 0x6ca77e20, + // Block 0x7a6, offset 0x1e980 + 0x1e980: 0x6cef3420, 0x1e981: 0x6c92c620, 0x1e982: 0x6c803620, 0x1e983: 0x6d0c2c20, + 0x1e984: 0x6ce23820, 0x1e985: 0x6cadc220, 0x1e986: 0x6d2e1220, 0x1e987: 0x6c215e20, + 0x1e988: 0x6ce00a20, 0x1e989: 0x6d41ca20, 0x1e98a: 0x6d3ca620, 0x1e98b: 0x6c246020, + 0x1e98c: 0x6c7d8220, 0x1e98d: 0x6ce38220, 0x1e98e: 0x6cfba220, 0x1e98f: 0x6c317620, + 0x1e990: 0x6c55c420, 0x1e991: 0x6d065c20, 0x1e992: 0x6d040820, 0x1e993: 0x6ce07c20, + 0x1e994: 0x6cc09a20, 0x1e995: 0x6c216420, 0x1e996: 0x6d285a20, 0x1e997: 0x6cb3a620, + 0x1e998: 0x6c783620, 0x1e999: 0x6cd9e620, 0x1e99a: 0x6c9c7620, 0x1e99b: 0x6cc31820, + 0x1e99c: 0x6c1e3220, 0x1e99d: 0x6c25cc20, 0x1e99e: 0x6d285e20, 0x1e99f: 0x6d1e7e20, + 0x1e9a0: 0x6c022220, 0x1e9a1: 0x6d2ce420, 0x1e9a2: 0x6c4d4a20, 0x1e9a3: 0x6ce14a20, + 0x1e9a4: 0x6c680020, 0x1e9a5: 0x6cb1a220, 0x1e9a6: 0x6c191820, 0x1e9a7: 0x6d244020, + 0x1e9a8: 0x6c846620, 0x1e9a9: 0x6d2a2c20, 0x1e9aa: 0x6c818620, 0x1e9ab: 0x6d142c20, + 0x1e9ac: 0x6c680a20, 0x1e9ad: 0x6c102820, 0x1e9ae: 0x6c69d420, 0x1e9af: 0x6cf71e20, + 0x1e9b0: 0x6ce03c20, 0x1e9b1: 0x6c37f220, 0x1e9b2: 0x6ca9dc20, 0x1e9b3: 0x6d193620, + 0x1e9b4: 0x6c854620, 0x1e9b5: 0x6c72c020, 0x1e9b6: 0x6d0efc20, 0x1e9b7: 0x6d193820, + 0x1e9b8: 0x6ca78020, 0x1e9b9: 0x6cc7ec20, 0x1e9ba: 0x6d09cc20, 0x1e9bb: 0x6c1e0a20, + 0x1e9bc: 0x6d0f1220, 0x1e9bd: 0x6c8db420, 0x1e9be: 0x6c9cc820, 0x1e9bf: 0x6c9cca20, + // Block 0x7a7, offset 0x1e9c0 + 0x1e9c0: 0x6ca78420, 0x1e9c1: 0x6d036020, 0x1e9c2: 0x6c69ea20, 0x1e9c3: 0x6ccc9620, + 0x1e9c4: 0x6c9cd420, 0x1e9c5: 0x6d0f2420, 0x1e9c6: 0x6c0b7820, 0x1e9c7: 0x6c111e20, + 0x1e9c8: 0x6cd37620, 0x1e9c9: 0x6d204a20, 0x1e9ca: 0x6cd39220, 0x1e9cb: 0x6cd40220, + 0x1e9cc: 0x6c84fc20, 0x1e9cd: 0x6d382020, 0x1e9ce: 0x6d12aa20, 0x1e9cf: 0x6c89c020, + 0x1e9d0: 0x6c847c20, 0x1e9d1: 0x6c6c2e20, 0x1e9d2: 0x6c6d7c20, 0x1e9d3: 0x6cc02220, + 0x1e9d4: 0x6d15d820, 0x1e9d5: 0x6c8a6c20, 0x1e9d6: 0x6c29c020, 0x1e9d7: 0x6d2f6220, + 0x1e9d8: 0x6c2f5c20, 0x1e9d9: 0x6cb38220, 0x1e9da: 0x6cc04220, 0x1e9db: 0x6c034220, + 0x1e9dc: 0x6c3f5620, 0x1e9dd: 0x6d314820, 0x1e9de: 0x6d344a20, 0x1e9df: 0x6c034420, + 0x1e9e0: 0x6c949820, 0x1e9e1: 0x6c3f5820, 0x1e9e2: 0x6ca3a020, 0x1e9e3: 0x6c2e2020, + 0x1e9e4: 0x6ccd8620, 0x1e9e5: 0x6cbc2220, 0x1e9e6: 0x6c79ea20, 0x1e9e7: 0x6c203420, + 0x1e9e8: 0x6d3f0e20, 0x1e9e9: 0x6c390e20, 0x1e9ea: 0x6c573620, 0x1e9eb: 0x6c573820, + 0x1e9ec: 0x6c4eb820, 0x1e9ed: 0x6c427c20, 0x1e9ee: 0x6cb5de20, 0x1e9ef: 0x6c985c20, + 0x1e9f0: 0x6cc64620, 0x1e9f1: 0x6c2c5220, 0x1e9f2: 0x6cd8be20, 0x1e9f3: 0x6cf87e20, + 0x1e9f4: 0x6d178620, 0x1e9f5: 0x6c146620, 0x1e9f6: 0x6cd1b620, 0x1e9f7: 0x6ce91a20, + 0x1e9f8: 0x6cf60620, 0x1e9f9: 0x6caa7420, 0x1e9fa: 0x6cb8dc20, 0x1e9fb: 0x6cc0c020, + 0x1e9fc: 0x6c668420, 0x1e9fd: 0x6cb09a20, 0x1e9fe: 0x6d128220, 0x1e9ff: 0x6c6c4820, + // Block 0x7a8, offset 0x1ea00 + 0x1ea00: 0x6c03a020, 0x1ea01: 0x6c399620, 0x1ea02: 0x6c18d020, 0x1ea03: 0x6d03ee20, + 0x1ea04: 0x6c30ee20, 0x1ea05: 0x6d26c220, 0x1ea06: 0x6cb8e620, 0x1ea07: 0x6c3d7820, + 0x1ea08: 0x6caf6820, 0x1ea09: 0x6ca34820, 0x1ea0a: 0x6d02d820, 0x1ea0b: 0x6c356e20, + 0x1ea0c: 0x6c746020, 0x1ea0d: 0x6c33f820, 0x1ea0e: 0x6c464c20, 0x1ea0f: 0x6d1ae620, + 0x1ea10: 0x6cb99a20, 0x1ea11: 0x6c04ce20, 0x1ea12: 0x6cc97620, 0x1ea13: 0x6cc57220, + 0x1ea14: 0x6c174a20, 0x1ea15: 0x6ca99620, 0x1ea16: 0x6c3b3220, 0x1ea17: 0x6d27ec20, + 0x1ea18: 0x6c614620, 0x1ea19: 0x6cbd7820, 0x1ea1a: 0x6caf6a20, 0x1ea1b: 0x6c4c2020, + 0x1ea1c: 0x6c535a20, 0x1ea1d: 0x6d1a6c20, 0x1ea1e: 0x6c757220, 0x1ea1f: 0x6cd1ca20, + 0x1ea20: 0x6d17ce20, 0x1ea21: 0x6d37ba20, 0x1ea22: 0x6cf7f020, 0x1ea23: 0x6c413a20, + 0x1ea24: 0x6cc64820, 0x1ea25: 0x6c5d8e20, 0x1ea26: 0x6cdf7620, 0x1ea27: 0x6c778820, + 0x1ea28: 0x6d264020, 0x1ea29: 0x6c934a20, 0x1ea2a: 0x6c365020, 0x1ea2b: 0x6cf21c20, + 0x1ea2c: 0x6c345420, 0x1ea2d: 0x6d3e7220, 0x1ea2e: 0x6ca64020, 0x1ea2f: 0x6ce8d020, + 0x1ea30: 0x6cd3aa20, 0x1ea31: 0x6c9f6820, 0x1ea32: 0x6c472220, 0x1ea33: 0x6c780e20, + 0x1ea34: 0x6c8d2420, 0x1ea35: 0x6c0dec20, 0x1ea36: 0x6cd8d020, 0x1ea37: 0x6c47a420, + 0x1ea38: 0x6c0f1c20, 0x1ea39: 0x6caf7820, 0x1ea3a: 0x6d238420, 0x1ea3b: 0x6cd8d220, + 0x1ea3c: 0x6d424820, 0x1ea3d: 0x6c101820, 0x1ea3e: 0x6d1f5020, 0x1ea3f: 0x6ce4b020, + // Block 0x7a9, offset 0x1ea40 + 0x1ea40: 0x6c642220, 0x1ea41: 0x6d317620, 0x1ea42: 0x6cd2d420, 0x1ea43: 0x6cd3ac20, + 0x1ea44: 0x6d347a20, 0x1ea45: 0x6c725220, 0x1ea46: 0x6c14d220, 0x1ea47: 0x6cd1da20, + 0x1ea48: 0x6cd1dc20, 0x1ea49: 0x6d089e20, 0x1ea4a: 0x6d2f6820, 0x1ea4b: 0x6c065420, + 0x1ea4c: 0x6c514e20, 0x1ea4d: 0x6c09e620, 0x1ea4e: 0x6cd10e20, 0x1ea4f: 0x6c1e9620, + 0x1ea50: 0x6cd27820, 0x1ea51: 0x6c0f1e20, 0x1ea52: 0x6d3b0e20, 0x1ea53: 0x6c1c3820, + 0x1ea54: 0x6d289220, 0x1ea55: 0x6cb31420, 0x1ea56: 0x6ce76220, 0x1ea57: 0x6cb9aa20, + 0x1ea58: 0x6c3eb020, 0x1ea59: 0x6d2d3020, 0x1ea5a: 0x6c8f0c20, 0x1ea5b: 0x6cb8f820, + 0x1ea5c: 0x6c3eb220, 0x1ea5d: 0x6c864020, 0x1ea5e: 0x6d26ca20, 0x1ea5f: 0x6caf7a20, + 0x1ea60: 0x6d0f5e20, 0x1ea61: 0x6c04fe20, 0x1ea62: 0x6c0e8020, 0x1ea63: 0x6c6b0020, + 0x1ea64: 0x6c465420, 0x1ea65: 0x6cd5ec20, 0x1ea66: 0x6d32da20, 0x1ea67: 0x6ca24c20, + 0x1ea68: 0x6cf7f220, 0x1ea69: 0x6cf7f420, 0x1ea6a: 0x6c2c7620, 0x1ea6b: 0x6c637420, + 0x1ea6c: 0x6ca29e20, 0x1ea6d: 0x6ce06420, 0x1ea6e: 0x6c588820, 0x1ea6f: 0x6d15f220, + 0x1ea70: 0x6cd7fa20, 0x1ea71: 0x6c7bfe20, 0x1ea72: 0x6c761e20, 0x1ea73: 0x6c06ce20, + 0x1ea74: 0x6c66a020, 0x1ea75: 0x6ce77020, 0x1ea76: 0x6d03f420, 0x1ea77: 0x6c537820, + 0x1ea78: 0x6c691c20, 0x1ea79: 0x6c1bbc20, 0x1ea7a: 0x6c37d820, 0x1ea7b: 0x6c961a20, + 0x1ea7c: 0x6c0dee20, 0x1ea7d: 0x6cd3be20, 0x1ea7e: 0x6ca1dc20, 0x1ea7f: 0x6c637820, + // Block 0x7aa, offset 0x1ea80 + 0x1ea80: 0x6d1a8620, 0x1ea81: 0x6c757c20, 0x1ea82: 0x6d389e20, 0x1ea83: 0x6c1d5620, + 0x1ea84: 0x6cfdf620, 0x1ea85: 0x6ce77220, 0x1ea86: 0x6ca14220, 0x1ea87: 0x6c833e20, + 0x1ea88: 0x6c5f0e20, 0x1ea89: 0x6d23b020, 0x1ea8a: 0x6d071e20, 0x1ea8b: 0x6cc57820, + 0x1ea8c: 0x6d421a20, 0x1ea8d: 0x6d36a220, 0x1ea8e: 0x6cbf4c20, 0x1ea8f: 0x6ccd8e20, + 0x1ea90: 0x6c1c5020, 0x1ea91: 0x6cfc2220, 0x1ea92: 0x6d03f620, 0x1ea93: 0x6cc30e20, + 0x1ea94: 0x6caf8020, 0x1ea95: 0x6ce5fe20, 0x1ea96: 0x6d39c020, 0x1ea97: 0x6cfe4820, + 0x1ea98: 0x6ca01220, 0x1ea99: 0x6c7ada20, 0x1ea9a: 0x6d112c20, 0x1ea9b: 0x6cfac220, + 0x1ea9c: 0x6cfb7620, 0x1ea9d: 0x6d04ea20, 0x1ea9e: 0x6c757e20, 0x1ea9f: 0x6c13aa20, + 0x1eaa0: 0x6c81b620, 0x1eaa1: 0x6c607820, 0x1eaa2: 0x6cb06620, 0x1eaa3: 0x6cc7ba20, + 0x1eaa4: 0x6c9cfe20, 0x1eaa5: 0x6d140820, 0x1eaa6: 0x6d19fa20, 0x1eaa7: 0x6c49f220, + 0x1eaa8: 0x6c019020, 0x1eaa9: 0x6c2fd420, 0x1eaaa: 0x6d1fe020, 0x1eaab: 0x6ccb3820, + 0x1eaac: 0x6c77c620, 0x1eaad: 0x6cb9b620, 0x1eaae: 0x6c944220, 0x1eaaf: 0x6cd90020, + 0x1eab0: 0x6c003020, 0x1eab1: 0x6c2e3220, 0x1eab2: 0x6c4efe20, 0x1eab3: 0x6cc8de20, + 0x1eab4: 0x6cd3cc20, 0x1eab5: 0x6c795020, 0x1eab6: 0x6cc09220, 0x1eab7: 0x6cff0c20, + 0x1eab8: 0x6d308620, 0x1eab9: 0x6d054e20, 0x1eaba: 0x6d2a0c20, 0x1eabb: 0x6ce37020, + 0x1eabc: 0x6c263820, 0x1eabd: 0x6c487020, 0x1eabe: 0x6c53d220, 0x1eabf: 0x6d37c820, + // Block 0x7ab, offset 0x1eac0 + 0x1eac0: 0x6ce7de20, 0x1eac1: 0x6c93ac20, 0x1eac2: 0x6c9a2220, 0x1eac3: 0x6c80e220, + 0x1eac4: 0x6ced4a20, 0x1eac5: 0x6d02e620, 0x1eac6: 0x6d27c420, 0x1eac7: 0x6c075420, + 0x1eac8: 0x6cf51e20, 0x1eac9: 0x6cdb0c20, 0x1eaca: 0x6d23dc20, 0x1eacb: 0x6c151420, + 0x1eacc: 0x6c2fb620, 0x1eacd: 0x6c0f4e20, 0x1eace: 0x6c4f0020, 0x1eacf: 0x6c63de20, + 0x1ead0: 0x6c538420, 0x1ead1: 0x6c249220, 0x1ead2: 0x6c3c6620, 0x1ead3: 0x6c14d620, + 0x1ead4: 0x6ced4c20, 0x1ead5: 0x6d36d020, 0x1ead6: 0x6cd82620, 0x1ead7: 0x6d07ca20, + 0x1ead8: 0x6c575620, 0x1ead9: 0x6d228220, 0x1eada: 0x6ce59e20, 0x1eadb: 0x6c45fa20, + 0x1eadc: 0x6d3d9420, 0x1eadd: 0x6c94bc20, 0x1eade: 0x6d03fc20, 0x1eadf: 0x6cbde620, + 0x1eae0: 0x6cd0c420, 0x1eae1: 0x6c4e2e20, 0x1eae2: 0x6c94be20, 0x1eae3: 0x6d128a20, + 0x1eae4: 0x6c1eac20, 0x1eae5: 0x6d2bae20, 0x1eae6: 0x6c70c420, 0x1eae7: 0x6cfd0220, + 0x1eae8: 0x6ce60020, 0x1eae9: 0x6c987020, 0x1eaea: 0x6cb4b420, 0x1eaeb: 0x6c843620, + 0x1eaec: 0x6cacc020, 0x1eaed: 0x6cc8e020, 0x1eaee: 0x6c1a3220, 0x1eaef: 0x6c435820, + 0x1eaf0: 0x6c852820, 0x1eaf1: 0x6ce28220, 0x1eaf2: 0x6c0e4420, 0x1eaf3: 0x6d3b2420, + 0x1eaf4: 0x6d327e20, 0x1eaf5: 0x6ce87a20, 0x1eaf6: 0x6c8f1820, 0x1eaf7: 0x6d41d420, + 0x1eaf8: 0x6c729a20, 0x1eaf9: 0x6c16fa20, 0x1eafa: 0x6d25f020, 0x1eafb: 0x6c66d820, + 0x1eafc: 0x6c429220, 0x1eafd: 0x6c2e4020, 0x1eafe: 0x6ce24020, 0x1eaff: 0x6c16c620, + // Block 0x7ac, offset 0x1eb00 + 0x1eb00: 0x6c951020, 0x1eb01: 0x6c4cd020, 0x1eb02: 0x6c8d5c20, 0x1eb03: 0x6c06ba20, + 0x1eb04: 0x6c92de20, 0x1eb05: 0x6c845020, 0x1eb06: 0x6cbade20, 0x1eb07: 0x6cb3e220, + 0x1eb08: 0x6c732e20, 0x1eb09: 0x6c9f7a20, 0x1eb0a: 0x6d41d620, 0x1eb0b: 0x6caeca20, + 0x1eb0c: 0x6c01d020, 0x1eb0d: 0x6caf9020, 0x1eb0e: 0x6cfd1420, 0x1eb0f: 0x6d0afa20, + 0x1eb10: 0x6d3c6820, 0x1eb11: 0x6c834620, 0x1eb12: 0x6c783220, 0x1eb13: 0x6c798a20, + 0x1eb14: 0x6cdea820, 0x1eb15: 0x6c7d8420, 0x1eb16: 0x6c31bc20, 0x1eb17: 0x6ca59020, + 0x1eb18: 0x6c20e220, 0x1eb19: 0x6d3e9820, 0x1eb1a: 0x6d32ec20, 0x1eb1b: 0x6c078c20, + 0x1eb1c: 0x6ca87620, 0x1eb1d: 0x6d403620, 0x1eb1e: 0x6c216620, 0x1eb1f: 0x6ce01420, + 0x1eb20: 0x6c2fba20, 0x1eb21: 0x6cb65420, 0x1eb22: 0x6cb9cc20, 0x1eb23: 0x6d3cac20, + 0x1eb24: 0x6c5f4820, 0x1eb25: 0x6d23fa20, 0x1eb26: 0x6c6cb620, 0x1eb27: 0x6c496620, + 0x1eb28: 0x6c990820, 0x1eb29: 0x6c167c20, 0x1eb2a: 0x6ce51c20, 0x1eb2b: 0x6cf6de20, + 0x1eb2c: 0x6c891e20, 0x1eb2d: 0x6ce24220, 0x1eb2e: 0x6c482820, 0x1eb2f: 0x6c263a20, + 0x1eb30: 0x6cd61420, 0x1eb31: 0x6d319c20, 0x1eb32: 0x6c92e020, 0x1eb33: 0x6c9be820, + 0x1eb34: 0x6c92e220, 0x1eb35: 0x6c571820, 0x1eb36: 0x6c0c8020, 0x1eb37: 0x6c40cc20, + 0x1eb38: 0x6c7f2c20, 0x1eb39: 0x6c790e20, 0x1eb3a: 0x6c39ec20, 0x1eb3b: 0x6cf55820, + 0x1eb3c: 0x6ca3d820, 0x1eb3d: 0x6ced9c20, 0x1eb3e: 0x6d299c20, 0x1eb3f: 0x6c570020, + // Block 0x7ad, offset 0x1eb40 + 0x1eb40: 0x6c2a8620, 0x1eb41: 0x6cfada20, 0x1eb42: 0x6cb10220, 0x1eb43: 0x6c5d6020, + 0x1eb44: 0x6c89cc20, 0x1eb45: 0x6c384820, 0x1eb46: 0x6c9ad820, 0x1eb47: 0x6c767220, + 0x1eb48: 0x6d1bf220, 0x1eb49: 0x6c2b4a20, 0x1eb4a: 0x6c892220, 0x1eb4b: 0x6c4c4020, + 0x1eb4c: 0x6cfc3620, 0x1eb4d: 0x6c328220, 0x1eb4e: 0x6ce8fc20, 0x1eb4f: 0x6cef4420, + 0x1eb50: 0x6d3fca20, 0x1eb51: 0x6c406a20, 0x1eb52: 0x6cc76620, 0x1eb53: 0x6c60d220, + 0x1eb54: 0x6c36ba20, 0x1eb55: 0x6c758620, 0x1eb56: 0x6c191420, 0x1eb57: 0x6ce38c20, + 0x1eb58: 0x6d2c5820, 0x1eb59: 0x6c56d420, 0x1eb5a: 0x6d0fe020, 0x1eb5b: 0x6c32de20, + 0x1eb5c: 0x6cfa0420, 0x1eb5d: 0x6d21c220, 0x1eb5e: 0x6c795a20, 0x1eb5f: 0x6d03aa20, + 0x1eb60: 0x6c5a1020, 0x1eb61: 0x6cf03220, 0x1eb62: 0x6c406c20, 0x1eb63: 0x6d2f7620, + 0x1eb64: 0x6c13b620, 0x1eb65: 0x6cbcee20, 0x1eb66: 0x6cd20620, 0x1eb67: 0x6c52d620, + 0x1eb68: 0x6c7ca820, 0x1eb69: 0x6ce51e20, 0x1eb6a: 0x6ca1ee20, 0x1eb6b: 0x6cbbbc20, + 0x1eb6c: 0x6cbbbe20, 0x1eb6d: 0x6c543820, 0x1eb6e: 0x6ce7e020, 0x1eb6f: 0x6c236c20, + 0x1eb70: 0x6c58ae20, 0x1eb71: 0x6d136620, 0x1eb72: 0x6c9f7e20, 0x1eb73: 0x6c66e620, + 0x1eb74: 0x6c32a420, 0x1eb75: 0x6c66da20, 0x1eb76: 0x6cd94220, 0x1eb77: 0x6c7caa20, + 0x1eb78: 0x6c55d220, 0x1eb79: 0x6d07d820, 0x1eb7a: 0x6c34b620, 0x1eb7b: 0x6c6b4a20, + 0x1eb7c: 0x6d31a020, 0x1eb7d: 0x6c0b0e20, 0x1eb7e: 0x6d37d020, 0x1eb7f: 0x6d3ea220, + // Block 0x7ae, offset 0x1eb80 + 0x1eb80: 0x6d04fe20, 0x1eb81: 0x6d129020, 0x1eb82: 0x6c9a6e20, 0x1eb83: 0x6cac3420, + 0x1eb84: 0x6c003620, 0x1eb85: 0x6c6c0c20, 0x1eb86: 0x6cba9420, 0x1eb87: 0x6c9a3220, + 0x1eb88: 0x6cdda220, 0x1eb89: 0x6c26ca20, 0x1eb8a: 0x6c059620, 0x1eb8b: 0x6cfa0a20, + 0x1eb8c: 0x6c887a20, 0x1eb8d: 0x6cddaa20, 0x1eb8e: 0x6c769a20, 0x1eb8f: 0x6c8ec020, + 0x1eb90: 0x6d116420, 0x1eb91: 0x6d137420, 0x1eb92: 0x6caa2e20, 0x1eb93: 0x6cf23e20, + 0x1eb94: 0x6cc6d420, 0x1eb95: 0x6ce15420, 0x1eb96: 0x6cddac20, 0x1eb97: 0x6cbaf220, + 0x1eb98: 0x6c86e020, 0x1eb99: 0x6cd7a620, 0x1eb9a: 0x6c20e420, 0x1eb9b: 0x6c0f9620, + 0x1eb9c: 0x6cac8620, 0x1eb9d: 0x6c266e20, 0x1eb9e: 0x6c089620, 0x1eb9f: 0x6cca9020, + 0x1eba0: 0x6c429420, 0x1eba1: 0x6d3ea620, 0x1eba2: 0x6cf38c20, 0x1eba3: 0x6d1cb420, + 0x1eba4: 0x6c5a7e20, 0x1eba5: 0x6ce5aa20, 0x1eba6: 0x6c8ec220, 0x1eba7: 0x6c767420, + 0x1eba8: 0x6cdd0220, 0x1eba9: 0x6ccc2220, 0x1ebaa: 0x6cd9f020, 0x1ebab: 0x6ceda820, + 0x1ebac: 0x6c507620, 0x1ebad: 0x6d327020, 0x1ebae: 0x6d327220, 0x1ebaf: 0x6c80e820, + 0x1ebb0: 0x6d18fc20, 0x1ebb1: 0x6d25c420, 0x1ebb2: 0x6ce18620, 0x1ebb3: 0x6ca88a20, + 0x1ebb4: 0x6cf7b020, 0x1ebb5: 0x6c638c20, 0x1ebb6: 0x6c43ba20, 0x1ebb7: 0x6c96a820, + 0x1ebb8: 0x6c730620, 0x1ebb9: 0x6cd9a220, 0x1ebba: 0x6d413420, 0x1ebbb: 0x6cddae20, + 0x1ebbc: 0x6cfa5620, 0x1ebbd: 0x6c3d0220, 0x1ebbe: 0x6cf21e20, 0x1ebbf: 0x6ca2ec20, + // Block 0x7af, offset 0x1ebc0 + 0x1ebc0: 0x6c91fa20, 0x1ebc1: 0x6cddb020, 0x1ebc2: 0x6cab6020, 0x1ebc3: 0x6d40f620, + 0x1ebc4: 0x6ce96e20, 0x1ebc5: 0x6d050820, 0x1ebc6: 0x6c49b220, 0x1ebc7: 0x6d08cc20, + 0x1ebc8: 0x6c892620, 0x1ebc9: 0x6cd48620, 0x1ebca: 0x6c02f820, 0x1ebcb: 0x6c97d420, + 0x1ebcc: 0x6ca18020, 0x1ebcd: 0x6c956620, 0x1ebce: 0x6c0a9e20, 0x1ebcf: 0x6cf0fe20, + 0x1ebd0: 0x6c8ed020, 0x1ebd1: 0x6c2bb220, 0x1ebd2: 0x6cca3620, 0x1ebd3: 0x6d401220, + 0x1ebd4: 0x6d158a20, 0x1ebd5: 0x6c932020, 0x1ebd6: 0x6c028220, 0x1ebd7: 0x6c796220, + 0x1ebd8: 0x6cbafa20, 0x1ebd9: 0x6c24f820, 0x1ebda: 0x6cb54e20, 0x1ebdb: 0x6c16d220, + 0x1ebdc: 0x6ce0dc20, 0x1ebdd: 0x6c981020, 0x1ebde: 0x6d1dd020, 0x1ebdf: 0x6c160620, + 0x1ebe0: 0x6c3c7220, 0x1ebe1: 0x6c6ebe20, 0x1ebe2: 0x6c0c4820, 0x1ebe3: 0x6cd62a20, + 0x1ebe4: 0x6c912420, 0x1ebe5: 0x6d055820, 0x1ebe6: 0x6c237420, 0x1ebe7: 0x6c8fce20, + 0x1ebe8: 0x6d29b020, 0x1ebe9: 0x6c670820, 0x1ebea: 0x6c12a220, 0x1ebeb: 0x6c849220, + 0x1ebec: 0x6cfa5c20, 0x1ebed: 0x6cf72020, 0x1ebee: 0x6c776020, 0x1ebef: 0x6cd6f820, + 0x1ebf0: 0x6c086220, 0x1ebf1: 0x6d2f4a20, 0x1ebf2: 0x6cba9620, 0x1ebf3: 0x6c19a620, + 0x1ebf4: 0x6c933420, 0x1ebf5: 0x6c576820, 0x1ebf6: 0x6c60f220, 0x1ebf7: 0x6cb47220, + 0x1ebf8: 0x6c5c8c20, 0x1ebf9: 0x6cbb5020, 0x1ebfa: 0x6cb32420, 0x1ebfb: 0x6c8c0220, + 0x1ebfc: 0x6ccb9020, 0x1ebfd: 0x6d055a20, 0x1ebfe: 0x6cca3c20, 0x1ebff: 0x6c19a820, + // Block 0x7b0, offset 0x1ec00 + 0x1ec00: 0x6c7d3a20, 0x1ec01: 0x6cd84820, 0x1ec02: 0x6c8f5420, 0x1ec03: 0x6ca4d220, + 0x1ec04: 0x6c5a2220, 0x1ec05: 0x6cb1e020, 0x1ec06: 0x6cdcb020, 0x1ec07: 0x6c38ea20, + 0x1ec08: 0x6cbc0e20, 0x1ec09: 0x6cc2aa20, 0x1ec0a: 0x6d0fee20, 0x1ec0b: 0x6ce0de20, + 0x1ec0c: 0x6cfe6620, 0x1ec0d: 0x6c750420, 0x1ec0e: 0x6c68a420, 0x1ec0f: 0x6d41fc20, + 0x1ec10: 0x6c8a4e20, 0x1ec11: 0x6cbd0420, 0x1ec12: 0x6c819020, 0x1ec13: 0x6c338020, + 0x1ec14: 0x6d030620, 0x1ec15: 0x6d295820, 0x1ec16: 0x6c5f8e20, 0x1ec17: 0x6c661e20, + 0x1ec18: 0x6d37da20, 0x1ec19: 0x6c2af620, 0x1ec1a: 0x6d0b0620, 0x1ec1b: 0x6d1d5c20, + 0x1ec1c: 0x6c331e20, 0x1ec1d: 0x6c750620, 0x1ec1e: 0x6caa3020, 0x1ec1f: 0x6d295a20, + 0x1ec20: 0x6cb4a420, 0x1ec21: 0x6ce60620, 0x1ec22: 0x6c38ec20, 0x1ec23: 0x6d2f4c20, + 0x1ec24: 0x6c2f8a20, 0x1ec25: 0x6ccdda20, 0x1ec26: 0x6c764220, 0x1ec27: 0x6c653820, + 0x1ec28: 0x6c3af020, 0x1ec29: 0x6cdcba20, 0x1ec2a: 0x6c920020, 0x1ec2b: 0x6c730c20, + 0x1ec2c: 0x6c5c9420, 0x1ec2d: 0x6d246a20, 0x1ec2e: 0x6c889c20, 0x1ec2f: 0x6d3dcc20, + 0x1ec30: 0x6cbbc820, 0x1ec31: 0x6c672220, 0x1ec32: 0x6d3dde20, 0x1ec33: 0x6c828c20, + 0x1ec34: 0x6c0ac820, 0x1ec35: 0x6ce60820, 0x1ec36: 0x6c58c220, 0x1ec37: 0x6d138c20, + 0x1ec38: 0x6c346c20, 0x1ec39: 0x6c4cd620, 0x1ec3a: 0x6c29ac20, 0x1ec3b: 0x6c72ce20, + 0x1ec3c: 0x6c3bac20, 0x1ec3d: 0x6c26d620, 0x1ec3e: 0x6c077220, 0x1ec3f: 0x6d194a20, + // Block 0x7b1, offset 0x1ec40 + 0x1ec40: 0x6c010820, 0x1ec41: 0x6d3fe220, 0x1ec42: 0x6d0aba20, 0x1ec43: 0x6c2e4e20, + 0x1ec44: 0x6d3b4e20, 0x1ec45: 0x6c528620, 0x1ec46: 0x6d3cc220, 0x1ec47: 0x6c5fa220, + 0x1ec48: 0x6ca8be20, 0x1ec49: 0x6c51a620, 0x1ec4a: 0x6c5e4c20, 0x1ec4b: 0x6cbe6020, + 0x1ec4c: 0x6c0d7020, 0x1ec4d: 0x6d1c3e20, 0x1ec4e: 0x6c7d4020, 0x1ec4f: 0x6ca93c20, + 0x1ec50: 0x6d060e20, 0x1ec51: 0x6c672620, 0x1ec52: 0x6c672820, 0x1ec53: 0x6cba9a20, + 0x1ec54: 0x6c142620, 0x1ec55: 0x6d377220, 0x1ec56: 0x6c9f1620, 0x1ec57: 0x6c84ce20, + 0x1ec58: 0x6c829820, 0x1ec59: 0x6c5fa620, 0x1ec5a: 0x6d416620, 0x1ec5b: 0x6c7c2220, + 0x1ec5c: 0x6cce4420, 0x1ec5d: 0x6caefc20, 0x1ec5e: 0x6c7ece20, 0x1ec5f: 0x6c320020, + 0x1ec60: 0x6cd7b020, 0x1ec61: 0x6c21ec20, 0x1ec62: 0x6c942820, 0x1ec63: 0x6c0c6220, + 0x1ec64: 0x6c068420, 0x1ec65: 0x6c920420, 0x1ec66: 0x6cfd5c20, 0x1ec67: 0x6c7b7e20, + 0x1ec68: 0x6c901020, 0x1ec69: 0x6c36fa20, 0x1ec6a: 0x6c91a220, 0x1ec6b: 0x6d02f820, + 0x1ec6c: 0x6c672c20, 0x1ec6d: 0x6c809420, 0x1ec6e: 0x6c0fd620, 0x1ec6f: 0x6c655620, + 0x1ec70: 0x6d125820, 0x1ec71: 0x6c157e20, 0x1ec72: 0x6cfda620, 0x1ec73: 0x6c673020, + 0x1ec74: 0x6cf76220, 0x1ec75: 0x6c49c820, 0x1ec76: 0x6c125620, 0x1ec77: 0x6ca8d220, + 0x1ec78: 0x6c831620, 0x1ec79: 0x6c249c20, 0x1ec7a: 0x6cc23020, 0x1ec7b: 0x6cacc820, + 0x1ec7c: 0x6c959420, 0x1ec7d: 0x6d414420, 0x1ec7e: 0x6c947a20, 0x1ec7f: 0x6d2a3820, + // Block 0x7b2, offset 0x1ec80 + 0x1ec80: 0x6ca8d820, 0x1ec81: 0x6c753e20, 0x1ec82: 0x6ce19820, 0x1ec83: 0x6cd58e20, + 0x1ec84: 0x6c801c20, 0x1ec85: 0x6c6c2220, 0x1ec86: 0x6c40c420, 0x1ec87: 0x6d15b420, + 0x1ec88: 0x6d312020, 0x1ec89: 0x6c2f5220, 0x1ec8a: 0x6d2f5220, 0x1ec8b: 0x6cb2f020, + 0x1ec8c: 0x6c8a6620, 0x1ec8d: 0x6ce91820, 0x1ec8e: 0x6cb8ba20, 0x1ec8f: 0x6c203220, + 0x1ec90: 0x6cccca20, 0x1ec91: 0x6c5fe820, 0x1ec92: 0x6c388e20, 0x1ec93: 0x6c2e0a20, + 0x1ec94: 0x6c9ac420, 0x1ec95: 0x6caa7020, 0x1ec96: 0x6d0f8c20, 0x1ec97: 0x6c146420, + 0x1ec98: 0x6d03d620, 0x1ec99: 0x6c413020, 0x1ec9a: 0x6c107a20, 0x1ec9b: 0x6cdf6620, + 0x1ec9c: 0x6c721c20, 0x1ec9d: 0x6c33e620, 0x1ec9e: 0x6c173e20, 0x1ec9f: 0x6d37ac20, + 0x1eca0: 0x6ca32220, 0x1eca1: 0x6c06f620, 0x1eca2: 0x6c426a20, 0x1eca3: 0x6c04c420, + 0x1eca4: 0x6cb97a20, 0x1eca5: 0x6d11fa20, 0x1eca6: 0x6cbd2220, 0x1eca7: 0x6c756620, + 0x1eca8: 0x6cf35e20, 0x1eca9: 0x6c463c20, 0x1ecaa: 0x6c778420, 0x1ecab: 0x6c398e20, + 0x1ecac: 0x6c5d8c20, 0x1ecad: 0x6ce80a20, 0x1ecae: 0x6ca98e20, 0x1ecaf: 0x6c039c20, + 0x1ecb0: 0x6d22fa20, 0x1ecb1: 0x6cb98420, 0x1ecb2: 0x6d32aa20, 0x1ecb3: 0x6cb98620, + 0x1ecb4: 0x6c477820, 0x1ecb5: 0x6c0e6820, 0x1ecb6: 0x6c353c20, 0x1ecb7: 0x6cb35220, + 0x1ecb8: 0x6c108e20, 0x1ecb9: 0x6c0ee220, 0x1ecba: 0x6d26a020, 0x1ecbb: 0x6d413820, + 0x1ecbc: 0x6ca28020, 0x1ecbd: 0x6ce05a20, 0x1ecbe: 0x6c641020, 0x1ecbf: 0x6c2d4a20, + // Block 0x7b3, offset 0x1ecc0 + 0x1ecc0: 0x6d1f2620, 0x1ecc1: 0x6ce5f820, 0x1ecc2: 0x6c0ee420, 0x1ecc3: 0x6c8cd620, + 0x1ecc4: 0x6cd77a20, 0x1ecc5: 0x6cb8d020, 0x1ecc6: 0x6c993620, 0x1ecc7: 0x6c064420, + 0x1ecc8: 0x6cd36620, 0x1ecc9: 0x6d088420, 0x1ecca: 0x6cdde820, 0x1eccb: 0x6c097220, + 0x1eccc: 0x6ca5d220, 0x1eccd: 0x6caf5e20, 0x1ecce: 0x6c344220, 0x1eccf: 0x6d03e420, + 0x1ecd0: 0x6c77bc20, 0x1ecd1: 0x6c81b020, 0x1ecd2: 0x6c379420, 0x1ecd3: 0x6c985e20, + 0x1ecd4: 0x6d0ba820, 0x1ecd5: 0x6d1fc620, 0x1ecd6: 0x6c19f620, 0x1ecd7: 0x6c63bc20, + 0x1ecd8: 0x6d127e20, 0x1ecd9: 0x6ca4a820, 0x1ecda: 0x6d361020, 0x1ecdb: 0x6c29aa20, + 0x1ecdc: 0x6ce74620, 0x1ecdd: 0x6c939820, 0x1ecde: 0x6c2e2220, 0x1ecdf: 0x6d19d220, + 0x1ece0: 0x6c765020, 0x1ece1: 0x6d2c2e20, 0x1ece2: 0x6d39a220, 0x1ece3: 0x6cf7e420, + 0x1ece4: 0x6c2fa220, 0x1ece5: 0x6c2fd220, 0x1ece6: 0x6cfaa420, 0x1ece7: 0x6c573a20, + 0x1ece8: 0x6cc2e820, 0x1ece9: 0x6ccbf020, 0x1ecea: 0x6c4cfa20, 0x1eceb: 0x6c2e2420, + 0x1ecec: 0x6c448620, 0x1eced: 0x6c9ffc20, 0x1ecee: 0x6d32be20, 0x1ecef: 0x6ccb2620, + 0x1ecf0: 0x6c68ec20, 0x1ecf1: 0x6d13ec20, 0x1ecf2: 0x6c15b220, 0x1ecf3: 0x6c1d4e20, + 0x1ecf4: 0x6ce0be20, 0x1ecf5: 0x6c018220, 0x1ecf6: 0x6d1a6220, 0x1ecf7: 0x6cc7a820, + 0x1ecf8: 0x6d3b0620, 0x1ecf9: 0x6c815c20, 0x1ecfa: 0x6cb4ac20, 0x1ecfb: 0x6cf3cc20, + 0x1ecfc: 0x6c7f1020, 0x1ecfd: 0x6ce27c20, 0x1ecfe: 0x6c890020, 0x1ecff: 0x6c794420, + // Block 0x7b4, offset 0x1ed00 + 0x1ed00: 0x6cfed020, 0x1ed01: 0x6cdd6820, 0x1ed02: 0x6c851a20, 0x1ed03: 0x6d2bac20, + 0x1ed04: 0x6c1e8620, 0x1ed05: 0x6c4c2220, 0x1ed06: 0x6c434a20, 0x1ed07: 0x6c357020, + 0x1ed08: 0x6d053e20, 0x1ed09: 0x6c262e20, 0x1ed0a: 0x6c94aa20, 0x1ed0b: 0x6c3c5220, + 0x1ed0c: 0x6d02da20, 0x1ed0d: 0x6c8f0a20, 0x1ed0e: 0x6c763220, 0x1ed0f: 0x6c65a220, + 0x1ed10: 0x6cc8d020, 0x1ed11: 0x6ce2f220, 0x1ed12: 0x6c80ce20, 0x1ed13: 0x6cbdda20, + 0x1ed14: 0x6c70a420, 0x1ed15: 0x6c000820, 0x1ed16: 0x6cbac620, 0x1ed17: 0x6d30da20, + 0x1ed18: 0x6cab0020, 0x1ed19: 0x6c263220, 0x1ed1a: 0x6c98ee20, 0x1ed1b: 0x6c078a20, + 0x1ed1c: 0x6cb60620, 0x1ed1d: 0x6c2a7820, 0x1ed1e: 0x6c78be20, 0x1ed1f: 0x6c7d7420, + 0x1ed20: 0x6c167620, 0x1ed21: 0x6cf65e20, 0x1ed22: 0x6c482020, 0x1ed23: 0x6c954c20, + 0x1ed24: 0x6c20da20, 0x1ed25: 0x6d3c6420, 0x1ed26: 0x6c6c9a20, 0x1ed27: 0x6d367420, + 0x1ed28: 0x6cfab620, 0x1ed29: 0x6c732220, 0x1ed2a: 0x6c5d5820, 0x1ed2b: 0x6caddc20, + 0x1ed2c: 0x6cdfee20, 0x1ed2d: 0x6c2fae20, 0x1ed2e: 0x6c66a220, 0x1ed2f: 0x6c725c20, + 0x1ed30: 0x6c9bdc20, 0x1ed31: 0x6d3e6620, 0x1ed32: 0x6cbcdc20, 0x1ed33: 0x6d1bc820, + 0x1ed34: 0x6c766a20, 0x1ed35: 0x6cbad420, 0x1ed36: 0x6cd80a20, 0x1ed37: 0x6c367820, + 0x1ed38: 0x6c13ac20, 0x1ed39: 0x6cbb9420, 0x1ed3a: 0x6d37c420, 0x1ed3b: 0x6c32d620, + 0x1ed3c: 0x6cd9d220, 0x1ed3d: 0x6c59e820, 0x1ed3e: 0x6c588c20, 0x1ed3f: 0x6c003220, + // Block 0x7b5, offset 0x1ed40 + 0x1ed40: 0x6c327020, 0x1ed41: 0x6c9a6420, 0x1ed42: 0x6c911420, 0x1ed43: 0x6d3e7420, + 0x1ed44: 0x6c3ac020, 0x1ed45: 0x6c9a1c20, 0x1ed46: 0x6ca15820, 0x1ed47: 0x6d325c20, + 0x1ed48: 0x6c0f5020, 0x1ed49: 0x6c442a20, 0x1ed4a: 0x6ca86620, 0x1ed4b: 0x6ce18220, + 0x1ed4c: 0x6c730220, 0x1ed4d: 0x6ca86820, 0x1ed4e: 0x6ca2e820, 0x1ed4f: 0x6c8e8e20, + 0x1ed50: 0x6c431e20, 0x1ed51: 0x6c058a20, 0x1ed52: 0x6d186c20, 0x1ed53: 0x6c638020, + 0x1ed54: 0x6c0d4e20, 0x1ed55: 0x6cc6ac20, 0x1ed56: 0x6c0c2420, 0x1ed57: 0x6ce0d620, + 0x1ed58: 0x6c980620, 0x1ed59: 0x6c955420, 0x1ed5a: 0x6c085420, 0x1ed5b: 0x6d1dbc20, + 0x1ed5c: 0x6c6eae20, 0x1ed5d: 0x6c2b4620, 0x1ed5e: 0x6d40dc20, 0x1ed5f: 0x6d08b420, + 0x1ed60: 0x6c8ea620, 0x1ed61: 0x6c153220, 0x1ed62: 0x6c74d020, 0x1ed63: 0x6c8aac20, + 0x1ed64: 0x6cb46420, 0x1ed65: 0x6c91e220, 0x1ed66: 0x6c336e20, 0x1ed67: 0x6c7fc820, + 0x1ed68: 0x6cb49e20, 0x1ed69: 0x6c249420, 0x1ed6a: 0x6cbae820, 0x1ed6b: 0x6c2aee20, + 0x1ed6c: 0x6c5e1e20, 0x1ed6d: 0x6c826e20, 0x1ed6e: 0x6c58b220, 0x1ed6f: 0x6d3dc420, + 0x1ed70: 0x6c887c20, 0x1ed71: 0x6d18fe20, 0x1ed72: 0x6c142420, 0x1ed73: 0x6c0c4e20, + 0x1ed74: 0x6c7eba20, 0x1ed75: 0x6c157020, 0x1ed76: 0x6cfda020, 0x1ed77: 0x6d2f0020, + 0x1ed78: 0x6c169c20, 0x1ed79: 0x6c6fbc20, 0x1ed7a: 0x6c02a420, 0x1ed7b: 0x6c2eb820, + 0x1ed7c: 0x6cc13c20, 0x1ed7d: 0x6c8a8420, 0x1ed7e: 0x6c9caa20, 0x1ed7f: 0x6d2efa20, + // Block 0x7b6, offset 0x1ed80 + 0x1ed80: 0x6c9ac620, 0x1ed81: 0x6c96b620, 0x1ed82: 0x6cd68220, 0x1ed83: 0x6ccd3c20, + 0x1ed84: 0x6c5db420, 0x1ed85: 0x6c9ac820, 0x1ed86: 0x6d0c8e20, 0x1ed87: 0x6c098e20, + 0x1ed88: 0x6c4eba20, 0x1ed89: 0x6c099020, 0x1ed8a: 0x6ccdfa20, 0x1ed8b: 0x6c763420, + 0x1ed8c: 0x6c778a20, 0x1ed8d: 0x6c07f220, 0x1ed8e: 0x6c535c20, 0x1ed8f: 0x6cc8fe20, + 0x1ed90: 0x6cca5820, 0x1ed91: 0x6cfb6420, 0x1ed92: 0x6cfb6620, 0x1ed93: 0x6c64ac20, + 0x1ed94: 0x6c9fb420, 0x1ed95: 0x6cf96820, 0x1ed96: 0x6cd74020, 0x1ed97: 0x6c312020, + 0x1ed98: 0x6d2c3c20, 0x1ed99: 0x6ca53420, 0x1ed9a: 0x6d2d8820, 0x1ed9b: 0x6cae7820, + 0x1ed9c: 0x6cfa2220, 0x1ed9d: 0x6c8d2820, 0x1ed9e: 0x6c0bae20, 0x1ed9f: 0x6c09e820, + 0x1eda0: 0x6cc90020, 0x1eda1: 0x6c00be20, 0x1eda2: 0x6c492020, 0x1eda3: 0x6c441620, + 0x1eda4: 0x6c441820, 0x1eda5: 0x6c382220, 0x1eda6: 0x6c1f6620, 0x1eda7: 0x6c53c820, + 0x1eda8: 0x6c4a7e20, 0x1eda9: 0x6c9fbe20, 0x1edaa: 0x6ccb1220, 0x1edab: 0x6c7dc020, + 0x1edac: 0x6c812c20, 0x1edad: 0x6c935a20, 0x1edae: 0x6ce68820, 0x1edaf: 0x6ccc7620, + 0x1edb0: 0x6c714820, 0x1edb1: 0x6d26e420, 0x1edb2: 0x6d26e620, 0x1edb3: 0x6c15e020, + 0x1edb4: 0x6cc27620, 0x1edb5: 0x6c8c6a20, 0x1edb6: 0x6c167e20, 0x1edb7: 0x6ccca420, + 0x1edb8: 0x6c7dc220, 0x1edb9: 0x6d0c3020, 0x1edba: 0x6cf1b220, 0x1edbb: 0x6d0cd420, + 0x1edbc: 0x6c36b020, 0x1edbd: 0x6c5cda20, 0x1edbe: 0x6d23fc20, 0x1edbf: 0x6cf1b420, + // Block 0x7b7, offset 0x1edc0 + 0x1edc0: 0x6cfe6020, 0x1edc1: 0x6c05be20, 0x1edc2: 0x6c53d620, 0x1edc3: 0x6cc28020, + 0x1edc4: 0x6d11dc20, 0x1edc5: 0x6cf1ba20, 0x1edc6: 0x6c04d820, 0x1edc7: 0x6c01d220, + 0x1edc8: 0x6cef4620, 0x1edc9: 0x6d1a1020, 0x1edca: 0x6c7e2020, 0x1edcb: 0x6cc40a20, + 0x1edcc: 0x6c7fca20, 0x1edcd: 0x6c317c20, 0x1edce: 0x6cc38620, 0x1edcf: 0x6c3c6e20, + 0x1edd0: 0x6ce4cc20, 0x1edd1: 0x6ca88c20, 0x1edd2: 0x6cdec420, 0x1edd3: 0x6c767620, + 0x1edd4: 0x6c518a20, 0x1edd5: 0x6cc40e20, 0x1edd6: 0x6c209c20, 0x1edd7: 0x6c493020, + 0x1edd8: 0x6c314620, 0x1edd9: 0x6cb72420, 0x1edda: 0x6c7c4e20, 0x1eddb: 0x6ce15c20, + 0x1eddc: 0x6c493420, 0x1eddd: 0x6cb18a20, 0x1edde: 0x6c771820, 0x1eddf: 0x6cf92420, + 0x1ede0: 0x6c5c8e20, 0x1ede1: 0x6c160e20, 0x1ede2: 0x6cb0dc20, 0x1ede3: 0x6c29a420, + 0x1ede4: 0x6c58c420, 0x1ede5: 0x6cdeda20, 0x1ede6: 0x6cf1c220, 0x1ede7: 0x6cde0220, + 0x1ede8: 0x6c9abe20, 0x1ede9: 0x6cd67e20, 0x1edea: 0x6ccd2820, 0x1edeb: 0x6d0e3820, + 0x1edec: 0x6c4e8820, 0x1eded: 0x6c090e20, 0x1edee: 0x6cf1f820, 0x1edef: 0x6c208c20, + 0x1edf0: 0x6cc8f820, 0x1edf1: 0x6ceee620, 0x1edf2: 0x6cfb2820, 0x1edf3: 0x6c52fe20, + 0x1edf4: 0x6c646620, 0x1edf5: 0x6c9f9220, 0x1edf6: 0x6c772620, 0x1edf7: 0x6c9aea20, + 0x1edf8: 0x6d2c2420, 0x1edf9: 0x6ca52a20, 0x1edfa: 0x6c4a4220, 0x1edfb: 0x6cf18820, + 0x1edfc: 0x6cde3e20, 0x1edfd: 0x6c9fa020, 0x1edfe: 0x6c935420, 0x1edff: 0x6c764e20, + // Block 0x7b8, offset 0x1ee00 + 0x1ee00: 0x6c380a20, 0x1ee01: 0x6c43ce20, 0x1ee02: 0x6c50e620, 0x1ee03: 0x6c7da420, + 0x1ee04: 0x6c6f6820, 0x1ee05: 0x6d26a220, 0x1ee06: 0x6c80b020, 0x1ee07: 0x6c316c20, + 0x1ee08: 0x6d232820, 0x1ee09: 0x6d0c0420, 0x1ee0a: 0x6c166c20, 0x1ee0b: 0x6cf88020, + 0x1ee0c: 0x6cf19420, 0x1ee0d: 0x6c5cc620, 0x1ee0e: 0x6d0c9020, 0x1ee0f: 0x6c362020, + 0x1ee10: 0x6c15b420, 0x1ee11: 0x6c7fa020, 0x1ee12: 0x6cc27020, 0x1ee13: 0x6c5bce20, + 0x1ee14: 0x6c7e0220, 0x1ee15: 0x6cc3c620, 0x1ee16: 0x6c515020, 0x1ee17: 0x6ce4b220, + 0x1ee18: 0x6c26b220, 0x1ee19: 0x6cc39020, 0x1ee1a: 0x6c4e5e20, 0x1ee1b: 0x6c58a220, + 0x1ee1c: 0x6c3fba20, 0x1ee1d: 0x6c3f9e20, 0x1ee1e: 0x6c820620, 0x1ee1f: 0x6c332a20, + 0x1ee20: 0x6d031020, 0x1ee21: 0x6cb89020, 0x1ee22: 0x6cf49a20, 0x1ee23: 0x6c412620, + 0x1ee24: 0x6d356a20, 0x1ee25: 0x6d19a020, 0x1ee26: 0x6d0f7820, 0x1ee27: 0x6c30d620, + 0x1ee28: 0x6c35ce20, 0x1ee29: 0x6cd0d620, 0x1ee2a: 0x6c04b220, 0x1ee2b: 0x6cadc620, + 0x1ee2c: 0x6c792220, 0x1ee2d: 0x6d27d420, 0x1ee2e: 0x6cc84c20, 0x1ee2f: 0x6d34da20, + 0x1ee30: 0x6cafac20, 0x1ee31: 0x6c6e0420, 0x1ee32: 0x6c39a020, 0x1ee33: 0x6d0f7a20, + 0x1ee34: 0x6d19a220, 0x1ee35: 0x6d321020, 0x1ee36: 0x6c69f420, 0x1ee37: 0x6c195020, + 0x1ee38: 0x6c35d620, 0x1ee39: 0x6cc0d620, 0x1ee3a: 0x6c2bd220, 0x1ee3b: 0x6d410a20, + 0x1ee3c: 0x6d427820, 0x1ee3d: 0x6c2d3820, 0x1ee3e: 0x6c8e0820, 0x1ee3f: 0x6c000220, + // Block 0x7b9, offset 0x1ee40 + 0x1ee40: 0x6ceae620, 0x1ee41: 0x6ceae820, 0x1ee42: 0x6c068c20, 0x1ee43: 0x6c0dc020, + 0x1ee44: 0x6c3fae20, 0x1ee45: 0x6c618e20, 0x1ee46: 0x6c921420, 0x1ee47: 0x6c902c20, + 0x1ee48: 0x6c18a220, 0x1ee49: 0x6d03c220, 0x1ee4a: 0x6c34ce20, 0x1ee4b: 0x6c910220, + 0x1ee4c: 0x6ca0da20, 0x1ee4d: 0x6c67d620, 0x1ee4e: 0x6cd4ae20, 0x1ee4f: 0x6c34d020, + 0x1ee50: 0x6cfc8620, 0x1ee51: 0x6c373820, 0x1ee52: 0x6c4acc20, 0x1ee53: 0x6d207c20, + 0x1ee54: 0x6c40e220, 0x1ee55: 0x6ccd2e20, 0x1ee56: 0x6c759e20, 0x1ee57: 0x6cbc3420, + 0x1ee58: 0x6d03d820, 0x1ee59: 0x6c213620, 0x1ee5a: 0x6c3fd820, 0x1ee5b: 0x6c095820, + 0x1ee5c: 0x6cf99e20, 0x1ee5d: 0x6ccd3820, 0x1ee5e: 0x6cd0f620, 0x1ee5f: 0x6d35aa20, + 0x1ee60: 0x6cb40420, 0x1ee61: 0x6c30e420, 0x1ee62: 0x6d260620, 0x1ee63: 0x6d322820, + 0x1ee64: 0x6c1e7620, 0x1ee65: 0x6cfc9820, 0x1ee66: 0x6c2a5620, 0x1ee67: 0x6ca7fe20, + 0x1ee68: 0x6d27e020, 0x1ee69: 0x6cfbf020, 0x1ee6a: 0x6cadce20, 0x1ee6b: 0x6c3aa020, + 0x1ee6c: 0x6d404e20, 0x1ee6d: 0x6d174c20, 0x1ee6e: 0x6c334820, 0x1ee6f: 0x6c94e620, + 0x1ee70: 0x6d19c420, 0x1ee71: 0x6c707820, 0x1ee72: 0x6c20c620, 0x1ee73: 0x6c18ba20, + 0x1ee74: 0x6cafd620, 0x1ee75: 0x6c8cd820, 0x1ee76: 0x6ce21420, 0x1ee77: 0x6cfcae20, + 0x1ee78: 0x6c923020, 0x1ee79: 0x6cd0fc20, 0x1ee7a: 0x6cfc0a20, 0x1ee7b: 0x6d19d420, + 0x1ee7c: 0x6d3a6220, 0x1ee7d: 0x6d0fb020, 0x1ee7e: 0x6cc62c20, 0x1ee7f: 0x6cf9bc20, + // Block 0x7ba, offset 0x1ee80 + 0x1ee80: 0x6c1d1420, 0x1ee81: 0x6d0e6820, 0x1ee82: 0x6d19d620, 0x1ee83: 0x6cd5ce20, + 0x1ee84: 0x6c2b2c20, 0x1ee85: 0x6d210c20, 0x1ee86: 0x6c8f9220, 0x1ee87: 0x6cee7820, + 0x1ee88: 0x6cee7a20, 0x1ee89: 0x6ca82420, 0x1ee8a: 0x6c334a20, 0x1ee8b: 0x6cdbf220, + 0x1ee8c: 0x6c018420, 0x1ee8d: 0x6c59b620, 0x1ee8e: 0x6c6a0620, 0x1ee8f: 0x6cdbf420, + 0x1ee90: 0x6d1ae220, 0x1ee91: 0x6c413c20, 0x1ee92: 0x6d0d9a20, 0x1ee93: 0x6c5abe20, + 0x1ee94: 0x6c43fc20, 0x1ee95: 0x6d27ee20, 0x1ee96: 0x6cf4f220, 0x1ee97: 0x6c7c6c20, + 0x1ee98: 0x6c009e20, 0x1ee99: 0x6cf89820, 0x1ee9a: 0x6ce10c20, 0x1ee9b: 0x6c623020, + 0x1ee9c: 0x6d2f3620, 0x1ee9d: 0x6c29de20, 0x1ee9e: 0x6c024820, 0x1ee9f: 0x6cf8aa20, + 0x1eea0: 0x6d1aee20, 0x1eea1: 0x6cc9be20, 0x1eea2: 0x6cc53a20, 0x1eea3: 0x6c8bca20, + 0x1eea4: 0x6ce9b220, 0x1eea5: 0x6c2ade20, 0x1eea6: 0x6c693820, 0x1eea7: 0x6cdc5820, + 0x1eea8: 0x6cdbfa20, 0x1eea9: 0x6c02e220, 0x1eeaa: 0x6cfc2620, 0x1eeab: 0x6c3b8220, + 0x1eeac: 0x6ca64c20, 0x1eead: 0x6c376820, 0x1eeae: 0x6c5f4a20, 0x1eeaf: 0x6c29ec20, + 0x1eeb0: 0x6cf7a620, 0x1eeb1: 0x6d1b0a20, 0x1eeb2: 0x6c358220, 0x1eeb3: 0x6c5af420, + 0x1eeb4: 0x6c903c20, 0x1eeb5: 0x6cf72220, 0x1eeb6: 0x6c859820, 0x1eeb7: 0x6c868820, + 0x1eeb8: 0x6c86b420, 0x1eeb9: 0x6d3c5620, 0x1eeba: 0x6c553a20, 0x1eebb: 0x6d33d220, + 0x1eebc: 0x6cdcea20, 0x1eebd: 0x6c735220, 0x1eebe: 0x6ca3f620, 0x1eebf: 0x6d178820, + // Block 0x7bb, offset 0x1eec0 + 0x1eec0: 0x6cc3ba20, 0x1eec1: 0x6d0e7e20, 0x1eec2: 0x6cbd7a20, 0x1eec3: 0x6cb8e820, + 0x1eec4: 0x6d047c20, 0x1eec5: 0x6d0b5420, 0x1eec6: 0x6c604620, 0x1eec7: 0x6c481820, + 0x1eec8: 0x6c587a20, 0x1eec9: 0x6d367620, 0x1eeca: 0x6c46c020, 0x1eecb: 0x6c736e20, + 0x1eecc: 0x6c225620, 0x1eecd: 0x6d1d9420, 0x1eece: 0x6c70b020, 0x1eecf: 0x6c1e9820, + 0x1eed0: 0x6c54f020, 0x1eed1: 0x6d28c420, 0x1eed2: 0x6c961c20, 0x1eed3: 0x6d219620, + 0x1eed4: 0x6c1dde20, 0x1eed5: 0x6c2de020, 0x1eed6: 0x6cdbe020, 0x1eed7: 0x6c4f2820, + 0x1eed8: 0x6cf32220, 0x1eed9: 0x6cd6a620, 0x1eeda: 0x6c49ae20, 0x1eedb: 0x6c1ec220, + 0x1eedc: 0x6d28d220, 0x1eedd: 0x6d1dcc20, 0x1eede: 0x6c5f7c20, 0x1eedf: 0x6cf70c20, + 0x1eee0: 0x6c1dfe20, 0x1eee1: 0x6c8f5220, 0x1eee2: 0x6c847e20, 0x1eee3: 0x6ca41420, + 0x1eee4: 0x6d092c20, 0x1eee5: 0x6d28e420, 0x1eee6: 0x6c610820, 0x1eee7: 0x6c610a20, + 0x1eee8: 0x6d222220, 0x1eee9: 0x6d211020, 0x1eeea: 0x6d093020, 0x1eeeb: 0x6ca2f820, + 0x1eeec: 0x6c3d2e20, 0x1eeed: 0x6ccb2820, 0x1eeee: 0x6ca28e20, 0x1eeef: 0x6cf19820, + 0x1eef0: 0x6c3b3620, 0x1eef1: 0x6cacda20, 0x1eef2: 0x6d27aa20, 0x1eef3: 0x6c862220, + 0x1eef4: 0x6c1c3a20, 0x1eef5: 0x6d0f6020, 0x1eef6: 0x6c8d2a20, 0x1eef7: 0x6c823e20, + 0x1eef8: 0x6c016e20, 0x1eef9: 0x6c05ce20, 0x1eefa: 0x6cf50420, 0x1eefb: 0x6c2d6a20, + 0x1eefc: 0x6c297420, 0x1eefd: 0x6c56ac20, 0x1eefe: 0x6cf50620, 0x1eeff: 0x6c2e3420, + // Block 0x7bc, offset 0x1ef00 + 0x1ef00: 0x6d05c220, 0x1ef01: 0x6c625820, 0x1ef02: 0x6ca2a820, 0x1ef03: 0x6c18e820, + 0x1ef04: 0x6cff1020, 0x1ef05: 0x6d2cde20, 0x1ef06: 0x6ce68a20, 0x1ef07: 0x6d325e20, + 0x1ef08: 0x6cae2820, 0x1ef09: 0x6c9a2420, 0x1ef0a: 0x6c8d4c20, 0x1ef0b: 0x6cb53420, + 0x1ef0c: 0x6d38b020, 0x1ef0d: 0x6c5e0220, 0x1ef0e: 0x6ccc7c20, 0x1ef0f: 0x6c3a1a20, + 0x1ef10: 0x6c538a20, 0x1ef11: 0x6d2da020, 0x1ef12: 0x6d1a0820, 0x1ef13: 0x6ca60820, + 0x1ef14: 0x6d3b2e20, 0x1ef15: 0x6cea6e20, 0x1ef16: 0x6c8be420, 0x1ef17: 0x6c8e3020, + 0x1ef18: 0x6c308e20, 0x1ef19: 0x6d1bf620, 0x1ef1a: 0x6cf53220, 0x1ef1b: 0x6c8d7420, + 0x1ef1c: 0x6cd6a420, 0x1ef1d: 0x6c8d7620, 0x1ef1e: 0x6cfa0620, 0x1ef1f: 0x6c539020, + 0x1ef20: 0x6d1a1220, 0x1ef21: 0x6c974420, 0x1ef22: 0x6c974620, 0x1ef23: 0x6d280620, + 0x1ef24: 0x6c8f4c20, 0x1ef25: 0x6c9c1620, 0x1ef26: 0x6c0d6a20, 0x1ef27: 0x6cf54020, + 0x1ef28: 0x6cf10020, 0x1ef29: 0x6c7e2a20, 0x1ef2a: 0x6d1aac20, 0x1ef2b: 0x6cf7b220, + 0x1ef2c: 0x6d191e20, 0x1ef2d: 0x6c008020, 0x1ef2e: 0x6c28e420, 0x1ef2f: 0x6ce2e420, + 0x1ef30: 0x6cca4020, 0x1ef31: 0x6d246c20, 0x1ef32: 0x6c933620, 0x1ef33: 0x6c8fd020, + 0x1ef34: 0x6c27a820, 0x1ef35: 0x6c60f420, 0x1ef36: 0x6cacec20, 0x1ef37: 0x6d0ff420, + 0x1ef38: 0x6c03d620, 0x1ef39: 0x6cafa420, 0x1ef3a: 0x6cef7020, 0x1ef3b: 0x6c3c8420, + 0x1ef3c: 0x6cf93420, 0x1ef3d: 0x6c62e420, 0x1ef3e: 0x6c970e20, 0x1ef3f: 0x6c9bac20, + // Block 0x7bd, offset 0x1ef40 + 0x1ef40: 0x6c9bae20, 0x1ef41: 0x6c829a20, 0x1ef42: 0x6c87ae20, 0x1ef43: 0x6c5e5820, + 0x1ef44: 0x6c008220, 0x1ef45: 0x6c3b0220, 0x1ef46: 0x6c27ae20, 0x1ef47: 0x6c901220, + 0x1ef48: 0x6c8db620, 0x1ef49: 0x6c010e20, 0x1ef4a: 0x6c3c8e20, 0x1ef4b: 0x6c87c820, + 0x1ef4c: 0x6c062620, 0x1ef4d: 0x6c521820, 0x1ef4e: 0x6c521020, 0x1ef4f: 0x6c521420, + 0x1ef50: 0x6c0e3e20, 0x1ef51: 0x6cbe3020, 0x1ef52: 0x6cbe3220, 0x1ef53: 0x6c6e8a20, + 0x1ef54: 0x6ce46c20, 0x1ef55: 0x6d317820, 0x1ef56: 0x6c6e9220, 0x1ef57: 0x6c198420, + 0x1ef58: 0x6cbed420, 0x1ef59: 0x6c6e9c20, 0x1ef5a: 0x6c6ea620, 0x1ef5b: 0x6c2d8620, + 0x1ef5c: 0x6c6eb020, 0x1ef5d: 0x6ce47a20, 0x1ef5e: 0x6c39f220, 0x1ef5f: 0x6c3a0a20, + 0x1ef60: 0x6c77c820, 0x1ef61: 0x6c9c9220, 0x1ef62: 0x6c9e5620, 0x1ef63: 0x6c9e5020, + 0x1ef64: 0x6c065a20, 0x1ef65: 0x6d133420, 0x1ef66: 0x6ce52020, 0x1ef67: 0x6c5c9820, + 0x1ef68: 0x6d139c20, 0x1ef69: 0x6c43d020, 0x1ef6a: 0x6c2f5e20, 0x1ef6b: 0x6c13ea20, + 0x1ef6c: 0x6cb9a020, 0x1ef6d: 0x6cc5f820, 0x1ef6e: 0x6c2b7020, 0x1ef6f: 0x6c326020, + 0x1ef70: 0x6cf4f420, 0x1ef71: 0x6cc5fa20, 0x1ef72: 0x6cbd8820, 0x1ef73: 0x6c6d2020, + 0x1ef74: 0x6d08e420, 0x1ef75: 0x6ca99e20, 0x1ef76: 0x6c03a220, 0x1ef77: 0x6d1af020, + 0x1ef78: 0x6cc95020, 0x1ef79: 0x6ca35e20, 0x1ef7a: 0x6ca14420, 0x1ef7b: 0x6d412220, + 0x1ef7c: 0x6c26b620, 0x1ef7d: 0x6c050020, 0x1ef7e: 0x6d183e20, 0x1ef7f: 0x6d121a20, + // Block 0x7be, offset 0x1ef80 + 0x1ef80: 0x6ce23420, 0x1ef81: 0x6c074c20, 0x1ef82: 0x6c63d820, 0x1ef83: 0x6c537a20, + 0x1ef84: 0x6cad6220, 0x1ef85: 0x6d0f6420, 0x1ef86: 0x6c0e4220, 0x1ef87: 0x6d1a0020, + 0x1ef88: 0x6c442c20, 0x1ef89: 0x6ce23c20, 0x1ef8a: 0x6c6b2e20, 0x1ef8b: 0x6d00e420, + 0x1ef8c: 0x6c014820, 0x1ef8d: 0x6c014a20, 0x1ef8e: 0x6c523620, 0x1ef8f: 0x6c45fc20, + 0x1ef90: 0x6cb88a20, 0x1ef91: 0x6c26c220, 0x1ef92: 0x6cbbf420, 0x1ef93: 0x6ce64a20, + 0x1ef94: 0x6c978620, 0x1ef95: 0x6d1d4e20, 0x1ef96: 0x6cdbde20, 0x1ef97: 0x6ce5a020, + 0x1ef98: 0x6cbc6220, 0x1ef99: 0x6d08b820, 0x1ef9a: 0x6c79ac20, 0x1ef9b: 0x6c083420, + 0x1ef9c: 0x6cdeb420, 0x1ef9d: 0x6cce5820, 0x1ef9e: 0x6c0dfa20, 0x1ef9f: 0x6c7e2220, + 0x1efa0: 0x6c70d420, 0x1efa1: 0x6c7eda20, 0x1efa2: 0x6d024a20, 0x1efa3: 0x6cc76820, + 0x1efa4: 0x6c054420, 0x1efa5: 0x6c372c20, 0x1efa6: 0x6cbfd620, 0x1efa7: 0x6cbfd820, + 0x1efa8: 0x6c518c20, 0x1efa9: 0x6d001620, 0x1efaa: 0x6ca2ba20, 0x1efab: 0x6c70da20, + 0x1efac: 0x6c650a20, 0x1efad: 0x6c0b1620, 0x1efae: 0x6c2b4c20, 0x1efaf: 0x6c651c20, + 0x1efb0: 0x6cf16e20, 0x1efb1: 0x6ce1fa20, 0x1efb2: 0x6c466620, 0x1efb3: 0x6cdec620, + 0x1efb4: 0x6c076c20, 0x1efb5: 0x6d011c20, 0x1efb6: 0x6cac8820, 0x1efb7: 0x6c445420, + 0x1efb8: 0x6c0ab020, 0x1efb9: 0x6c7e2e20, 0x1efba: 0x6ce0e020, 0x1efbb: 0x6c90d420, + 0x1efbc: 0x6c4ba420, 0x1efbd: 0x6cbc1220, 0x1efbe: 0x6d08ee20, 0x1efbf: 0x6c5f9820, + // Block 0x7bf, offset 0x1efc0 + 0x1efc0: 0x6c654820, 0x1efc1: 0x6c679820, 0x1efc2: 0x6c164c20, 0x1efc3: 0x6c26d820, + 0x1efc4: 0x6c56e820, 0x1efc5: 0x6cfc6420, 0x1efc6: 0x6cb96020, 0x1efc7: 0x6c320420, + 0x1efc8: 0x6cec4420, 0x1efc9: 0x6c655a20, 0x1efca: 0x6c801e20, 0x1efcb: 0x6ceeee20, + 0x1efcc: 0x6cc5fc20, 0x1efcd: 0x6c3ecc20, 0x1efce: 0x6c9aa220, 0x1efcf: 0x6cc37820, + 0x1efd0: 0x6c442e20, 0x1efd1: 0x6cf01020, 0x1efd2: 0x6cbc6420, 0x1efd3: 0x6c4e3e20, + 0x1efd4: 0x6c172820, 0x1efd5: 0x6c7e3420, 0x1efd6: 0x6cc77c20, 0x1efd7: 0x6d286620, + 0x1efd8: 0x6ccf8020, 0x1efd9: 0x6cf04620, 0x1efda: 0x6c444e20, 0x1efdb: 0x6c046220, + 0x1efdc: 0x6ce1fc20, 0x1efdd: 0x6c466820, 0x1efde: 0x6d286c20, 0x1efdf: 0x6c435e20, + 0x1efe0: 0x6c0ab220, 0x1efe1: 0x6cf05220, 0x1efe2: 0x6cdcc220, 0x1efe3: 0x6c31fa20, + 0x1efe4: 0x6cec4620, 0x1efe5: 0x6c320620, 0x1efe6: 0x6ceed820, 0x1efe7: 0x6cc5cc20, + 0x1efe8: 0x6c3e2820, 0x1efe9: 0x6c4e1a20, 0x1efea: 0x6cefea20, 0x1efeb: 0x6d283e20, + 0x1efec: 0x6ce1e020, 0x1efed: 0x6c6fb420, 0x1efee: 0x6c6fc420, 0x1efef: 0x6cfad220, + 0x1eff0: 0x6d022820, 0x1eff1: 0x6cfae220, 0x1eff2: 0x6c5f8820, 0x1eff3: 0x6d19ba20, + 0x1eff4: 0x6d28c220, 0x1eff5: 0x6d284020, 0x1eff6: 0x6ccea820, 0x1eff7: 0x6c822420, + 0x1eff8: 0x6caecc20, 0x1eff9: 0x6c5a2020, 0x1effa: 0x6d1c0420, 0x1effb: 0x6d287220, + 0x1effc: 0x6caef020, 0x1effd: 0x6c016020, 0x1effe: 0x6d1a1820, 0x1efff: 0x6cfe0a20, + // Block 0x7c0, offset 0x1f000 + 0x1f000: 0x6c56ea20, 0x1f001: 0x6d12dc20, 0x1f002: 0x6c2f6e20, 0x1f003: 0x6cbea820, + 0x1f004: 0x6c7c7020, 0x1f005: 0x6cfe3a20, 0x1f006: 0x6cd75420, 0x1f007: 0x6c4daa20, + 0x1f008: 0x6d05ae20, 0x1f009: 0x6d152a20, 0x1f00a: 0x6d05b620, 0x1f00b: 0x6c35b420, + 0x1f00c: 0x6cd99020, 0x1f00d: 0x6c7cd820, 0x1f00e: 0x6cb60c20, 0x1f00f: 0x6c4f8220, + 0x1f010: 0x6d238620, 0x1f011: 0x6cece020, 0x1f012: 0x6c048c20, 0x1f013: 0x6c33fe20, + 0x1f014: 0x6c2b8620, 0x1f015: 0x6c27f220, 0x1f016: 0x6cacbe20, 0x1f017: 0x6cb31820, + 0x1f018: 0x6c8e1220, 0x1f019: 0x6c182e20, 0x1f01a: 0x6c6e2620, 0x1f01b: 0x6c834020, + 0x1f01c: 0x6c516a20, 0x1f01d: 0x6cbb9e20, 0x1f01e: 0x6c36a020, 0x1f01f: 0x6c357c20, + 0x1f020: 0x6cf01220, 0x1f021: 0x6d00e620, 0x1f022: 0x6c7e1020, 0x1f023: 0x6cd07020, + 0x1f024: 0x6d156620, 0x1f025: 0x6cd07a20, 0x1f026: 0x6c4d2420, 0x1f027: 0x6c332820, + 0x1f028: 0x6d228420, 0x1f029: 0x6cb26620, 0x1f02a: 0x6c834220, 0x1f02b: 0x6c3f8420, + 0x1f02c: 0x6c63e020, 0x1f02d: 0x6ce7f820, 0x1f02e: 0x6c5c4a20, 0x1f02f: 0x6c7ca020, + 0x1f030: 0x6c63ec20, 0x1f031: 0x6c953220, 0x1f032: 0x6ce6e220, 0x1f033: 0x6c199820, + 0x1f034: 0x6d1d1020, 0x1f035: 0x6d276a20, 0x1f036: 0x6c55c620, 0x1f037: 0x6c4f1020, + 0x1f038: 0x6c6e3620, 0x1f039: 0x6ce9be20, 0x1f03a: 0x6ce9c020, 0x1f03b: 0x6cb21420, + 0x1f03c: 0x6c7f5a20, 0x1f03d: 0x6ce9c220, 0x1f03e: 0x6d3eb420, 0x1f03f: 0x6d3eb220, + // Block 0x7c1, offset 0x1f040 + 0x1f040: 0x6c20e620, 0x1f041: 0x6c2fc020, 0x1f042: 0x6c7f5c20, 0x1f043: 0x6ce02020, + 0x1f044: 0x6c4f2220, 0x1f045: 0x6cb93220, 0x1f046: 0x6c783820, 0x1f047: 0x6c257220, + 0x1f048: 0x6d085e20, 0x1f049: 0x6cbd4420, 0x1f04a: 0x6d157820, 0x1f04b: 0x6cc9d420, + 0x1f04c: 0x6ce39e20, 0x1f04d: 0x6c358a20, 0x1f04e: 0x6c36ca20, 0x1f04f: 0x6d0ce220, + 0x1f050: 0x6cf21420, 0x1f051: 0x6c76f820, 0x1f052: 0x6d1e0220, 0x1f053: 0x6d3b9820, + 0x1f054: 0x6d0ce420, 0x1f055: 0x6cfc3c20, 0x1f056: 0x6d035220, 0x1f057: 0x6d162620, + 0x1f058: 0x6d263820, 0x1f059: 0x6cca9620, 0x1f05a: 0x6c2ce620, 0x1f05b: 0x6c2ce820, + 0x1f05c: 0x6c67ca20, 0x1f05d: 0x6c7c4a20, 0x1f05e: 0x6c835420, 0x1f05f: 0x6c819220, + 0x1f060: 0x6cb1a820, 0x1f061: 0x6cec7820, 0x1f062: 0x6c979a20, 0x1f063: 0x6c247c20, + 0x1f064: 0x6d117820, 0x1f065: 0x6c507e20, 0x1f066: 0x6cbc1420, 0x1f067: 0x6c482e20, + 0x1f068: 0x6d0ab620, 0x1f069: 0x6d0e1a20, 0x1f06a: 0x6c5c9e20, 0x1f06b: 0x6c164e20, + 0x1f06c: 0x6cc7ee20, 0x1f06d: 0x6c9bb620, 0x1f06e: 0x6c0d7420, 0x1f06f: 0x6cfc6620, + 0x1f070: 0x6cb23220, 0x1f071: 0x6c91a620, 0x1f072: 0x6c806620, 0x1f073: 0x6ca8d620, + 0x1f074: 0x6cc34620, 0x1f075: 0x6d12be20, 0x1f076: 0x6c2f6a20, 0x1f077: 0x6cbe9e20, + 0x1f078: 0x6c4d9620, 0x1f079: 0x6cfe2420, 0x1f07a: 0x6cd74a20, 0x1f07b: 0x6d057e20, + 0x1f07c: 0x6d058820, 0x1f07d: 0x6cecd220, 0x1f07e: 0x6c480620, 0x1f07f: 0x6c33ec20, + // Block 0x7c2, offset 0x1f080 + 0x1f080: 0x6cb5b420, 0x1f081: 0x6c047c20, 0x1f082: 0x6cd98820, 0x1f083: 0x6c4f7220, + 0x1f084: 0x6d22fc20, 0x1f085: 0x6c915420, 0x1f086: 0x6c8e1020, 0x1f087: 0x6cb30c20, + 0x1f088: 0x6c6e1e20, 0x1f089: 0x6c6ada20, 0x1f08a: 0x6c63c820, 0x1f08b: 0x6ce6d420, + 0x1f08c: 0x6c513220, 0x1f08d: 0x6d1cf420, 0x1f08e: 0x6c6f1420, 0x1f08f: 0x6c780220, + 0x1f090: 0x6d152c20, 0x1f091: 0x6cb21220, 0x1f092: 0x6c5bee20, 0x1f093: 0x6ce9a820, + 0x1f094: 0x6c4ed620, 0x1f095: 0x6d1cf820, 0x1f096: 0x6d1cfa20, 0x1f097: 0x6c781e20, + 0x1f098: 0x6ce37420, 0x1f099: 0x6d1dfe20, 0x1f09a: 0x6c36a220, 0x1f09b: 0x6d3b9020, + 0x1f09c: 0x6d0ccc20, 0x1f09d: 0x6c357e20, 0x1f09e: 0x6ca87820, 0x1f09f: 0x6c975a20, + 0x1f0a0: 0x6c2cdc20, 0x1f0a1: 0x6cca8c20, 0x1f0a2: 0x6c507820, 0x1f0a3: 0x6c835020, + 0x1f0a4: 0x6c163c20, 0x1f0a5: 0x6cc7e620, 0x1f0a6: 0x6cb22620, 0x1f0a7: 0x6cc33e20, + 0x1f0a8: 0x6c3c2c20, 0x1f0a9: 0x6c0c0020, 0x1f0aa: 0x6c48be20, 0x1f0ab: 0x6c3eb820, + 0x1f0ac: 0x6cf96e20, 0x1f0ad: 0x6d2e0c20, 0x1f0ae: 0x6c0c1020, 0x1f0af: 0x6cc98020, + 0x1f0b0: 0x6c038820, 0x1f0b1: 0x6cdf3420, 0x1f0b2: 0x6c8b2a20, 0x1f0b3: 0x6c487420, + 0x1f0b4: 0x6d08ba20, 0x1f0b5: 0x6cce8820, 0x1f0b6: 0x6c72a820, 0x1f0b7: 0x6c0c3420, + 0x1f0b8: 0x6cd84020, 0x1f0b9: 0x6cf04820, 0x1f0ba: 0x6d0fec20, 0x1f0bb: 0x6d116a20, + 0x1f0bc: 0x6cd9f820, 0x1f0bd: 0x6c767820, 0x1f0be: 0x6cd9fa20, 0x1f0bf: 0x6c386c20, + // Block 0x7c3, offset 0x1f0c0 + 0x1f0c0: 0x6c8ed220, 0x1f0c1: 0x6cf7bc20, 0x1f0c2: 0x6c8f5620, 0x1f0c3: 0x6cb17020, + 0x1f0c4: 0x6cb17220, 0x1f0c5: 0x6c8ede20, 0x1f0c6: 0x6c0c5620, 0x1f0c7: 0x6c0c5820, + 0x1f0c8: 0x6c0c5a20, 0x1f0c9: 0x6c8a5620, 0x1f0ca: 0x6c0c9e20, 0x1f0cb: 0x6ccb9c20, + 0x1f0cc: 0x6c3c9020, 0x1f0cd: 0x6d051820, 0x1f0ce: 0x6c3c0e20, 0x1f0cf: 0x6d0f8220, + 0x1f0d0: 0x6d2dde20, 0x1f0d1: 0x6c0bee20, 0x1f0d2: 0x6cc97020, 0x1f0d3: 0x6c725420, + 0x1f0d4: 0x6cd7fc20, 0x1f0d5: 0x6cd9c620, 0x1f0d6: 0x6d112e20, 0x1f0d7: 0x6c8e7e20, + 0x1f0d8: 0x6cb16020, 0x1f0d9: 0x6c0c2620, 0x1f0da: 0x6c0c2820, 0x1f0db: 0x6c39f420, + 0x1f0dc: 0x6c387420, 0x1f0dd: 0x6c3a2e20, 0x1f0de: 0x6c39ee20, 0x1f0df: 0x6cd25820, + 0x1f0e0: 0x6cd24c20, 0x1f0e1: 0x6c116220, 0x1f0e2: 0x6c5eb020, 0x1f0e3: 0x6c2f9e20, + 0x1f0e4: 0x6cd8ae20, 0x1f0e5: 0x6ceac620, 0x1f0e6: 0x6d2d7220, 0x1f0e7: 0x6cdcd220, + 0x1f0e8: 0x6cfde820, 0x1f0e9: 0x6cea5a20, 0x1f0ea: 0x6cc5fe20, 0x1f0eb: 0x6d235e20, + 0x1f0ec: 0x6c737e20, 0x1f0ed: 0x6c1c2a20, 0x1f0ee: 0x6d1af220, 0x1f0ef: 0x6c395c20, + 0x1f0f0: 0x6c395e20, 0x1f0f1: 0x6cdcda20, 0x1f0f2: 0x6d1ae820, 0x1f0f3: 0x6ce81620, + 0x1f0f4: 0x6d152e20, 0x1f0f5: 0x6d42a620, 0x1f0f6: 0x6c09ec20, 0x1f0f7: 0x6c6b9c20, + 0x1f0f8: 0x6ce1e220, 0x1f0f9: 0x6c8f0e20, 0x1f0fa: 0x6c226220, 0x1f0fb: 0x6ce61420, + 0x1f0fc: 0x6cd8d420, 0x1f0fd: 0x6c060420, 0x1f0fe: 0x6cd3b020, 0x1f0ff: 0x6c350620, + // Block 0x7c4, offset 0x1f100 + 0x1f100: 0x6c4d7220, 0x1f101: 0x6cc60420, 0x1f102: 0x6ce51020, 0x1f103: 0x6c691e20, + 0x1f104: 0x6c63da20, 0x1f105: 0x6c0df020, 0x1f106: 0x6d113020, 0x1f107: 0x6ce77420, + 0x1f108: 0x6c226420, 0x1f109: 0x6cfdf820, 0x1f10a: 0x6d102a20, 0x1f10b: 0x6c738a20, + 0x1f10c: 0x6c37a220, 0x1f10d: 0x6d0eb220, 0x1f10e: 0x6c823a20, 0x1f10f: 0x6cf68c20, + 0x1f110: 0x6c117220, 0x1f111: 0x6c0e8e20, 0x1f112: 0x6ca57220, 0x1f113: 0x6c36a420, + 0x1f114: 0x6c10b620, 0x1f115: 0x6c75e620, 0x1f116: 0x6c313620, 0x1f117: 0x6cdb0e20, + 0x1f118: 0x6d219820, 0x1f119: 0x6cd3d020, 0x1f11a: 0x6d114a20, 0x1f11b: 0x6c5d0020, + 0x1f11c: 0x6c4cd220, 0x1f11d: 0x6cd3d220, 0x1f11e: 0x6c66dc20, 0x1f11f: 0x6d3cae20, + 0x1f120: 0x6c0df420, 0x1f121: 0x6cfd1620, 0x1f122: 0x6c10c020, 0x1f123: 0x6d135020, + 0x1f124: 0x6ce01620, 0x1f125: 0x6c3a1e20, 0x1f126: 0x6d2ede20, 0x1f127: 0x6cf0de20, + 0x1f128: 0x6c496820, 0x1f129: 0x6c36b220, 0x1f12a: 0x6caa9a20, 0x1f12b: 0x6d286020, + 0x1f12c: 0x6c55d620, 0x1f12d: 0x6c5a1420, 0x1f12e: 0x6ce61c20, 0x1f12f: 0x6c5c6220, + 0x1f130: 0x6c650c20, 0x1f131: 0x6c543c20, 0x1f132: 0x6c00e820, 0x1f133: 0x6ce14c20, + 0x1f134: 0x6c3b4820, 0x1f135: 0x6cf0ee20, 0x1f136: 0x6c47de20, 0x1f137: 0x6c13b820, + 0x1f138: 0x6cd99e20, 0x1f139: 0x6ce15820, 0x1f13a: 0x6c0f9820, 0x1f13b: 0x6c42e820, + 0x1f13c: 0x6cf90c20, 0x1f13d: 0x6c7d2620, 0x1f13e: 0x6c8f4e20, 0x1f13f: 0x6cd9f220, + // Block 0x7c5, offset 0x1f140 + 0x1f140: 0x6ce24a20, 0x1f141: 0x6d137c20, 0x1f142: 0x6d27cc20, 0x1f143: 0x6ca08a20, + 0x1f144: 0x6ce16020, 0x1f145: 0x6c979420, 0x1f146: 0x6c0aa020, 0x1f147: 0x6d245620, + 0x1f148: 0x6d050a20, 0x1f149: 0x6c6cc820, 0x1f14a: 0x6cca4420, 0x1f14b: 0x6c7d3c20, + 0x1f14c: 0x6d3bfc20, 0x1f14d: 0x6ccdde20, 0x1f14e: 0x6c1c9020, 0x1f14f: 0x6c28e620, + 0x1f150: 0x6d193c20, 0x1f151: 0x6c5f9020, 0x1f152: 0x6cc53220, 0x1f153: 0x6c19ac20, + 0x1f154: 0x6d1de420, 0x1f155: 0x6ce20220, 0x1f156: 0x6cf11c20, 0x1f157: 0x6cfe0e20, + 0x1f158: 0x6d2dc620, 0x1f159: 0x6c3b4a20, 0x1f15a: 0x6c4d8a20, 0x1f15b: 0x6c9bb020, + 0x1f15c: 0x6d0f1420, 0x1f15d: 0x6ca0a220, 0x1f15e: 0x6c158020, 0x1f15f: 0x6cfe1020, + 0x1f160: 0x6c959820, 0x1f161: 0x6d29cc20, 0x1f162: 0x6ca46c20, 0x1f163: 0x6cd22620, + 0x1f164: 0x6c2f9020, 0x1f165: 0x6c5e6e20, 0x1f166: 0x6cea9e20, 0x1f167: 0x6ce0e420, + 0x1f168: 0x6cea4420, 0x1f169: 0x6cf84020, 0x1f16a: 0x6cc5ce20, 0x1f16b: 0x6d22d220, + 0x1f16c: 0x6c1bea20, 0x1f16d: 0x6c392420, 0x1f16e: 0x6d1acc20, 0x1f16f: 0x6c665620, + 0x1f170: 0x6cd32620, 0x1f171: 0x6c05e820, 0x1f172: 0x6cd89420, 0x1f173: 0x6c34d220, + 0x1f174: 0x6d147e20, 0x1f175: 0x6c378c20, 0x1f176: 0x6cc52420, 0x1f177: 0x6cfdde20, + 0x1f178: 0x6c50e820, 0x1f179: 0x6c823820, 0x1f17a: 0x6c68d820, 0x1f17b: 0x6cf5b020, + 0x1f17c: 0x6c0dd420, 0x1f17d: 0x6c0e6a20, 0x1f17e: 0x6c310c20, 0x1f17f: 0x6c360420, + // Block 0x7c6, offset 0x1f180 + 0x1f180: 0x6d210020, 0x1f181: 0x6ca56a20, 0x1f182: 0x6c75a820, 0x1f183: 0x6c4cbe20, + 0x1f184: 0x6c5ce820, 0x1f185: 0x6cfcbe20, 0x1f186: 0x6c495020, 0x1f187: 0x6c13a020, + 0x1f188: 0x6c7d0220, 0x1f189: 0x6c479820, 0x1f18a: 0x6cd9ba20, 0x1f18b: 0x6c14fc20, + 0x1f18c: 0x6d130a20, 0x1f18d: 0x6ca06020, 0x1f18e: 0x6c0f2220, 0x1f18f: 0x6c8e7620, + 0x1f190: 0x6d04de20, 0x1f191: 0x6c6ca820, 0x1f192: 0x6c976e20, 0x1f193: 0x6cca2820, + 0x1f194: 0x6d3be020, 0x1f195: 0x6ca46420, 0x1f196: 0x6cd44220, 0x1f197: 0x6c7c7220, + 0x1f198: 0x6c4c9020, 0x1f199: 0x6cfd6620, 0x1f19a: 0x6c3b8020, 0x1f19b: 0x6c0f3c20, + 0x1f19c: 0x6ca64420, 0x1f19d: 0x6c0a1420, 0x1f19e: 0x6c0f6e20, 0x1f19f: 0x6ce8fa20, + 0x1f1a0: 0x6c4dbc20, 0x1f1a1: 0x6c3a2020, 0x1f1a2: 0x6c650e20, 0x1f1a3: 0x6c015420, + 0x1f1a4: 0x6c00fa20, 0x1f1a5: 0x6c408020, 0x1f1a6: 0x6cfaf620, 0x1f1a7: 0x6d276c20, + 0x1f1a8: 0x6d02f420, 0x1f1a9: 0x6c3bb020, 0x1f1aa: 0x6cb1fe20, 0x1f1ab: 0x6d02fa20, + 0x1f1ac: 0x6c969820, 0x1f1ad: 0x6d236020, 0x1f1ae: 0x6c3caa20, 0x1f1af: 0x6c4ed820, + 0x1f1b0: 0x6c2b7420, 0x1f1b1: 0x6ceb3220, 0x1f1b2: 0x6d306820, 0x1f1b3: 0x6c1b4220, + 0x1f1b4: 0x6d0a2420, 0x1f1b5: 0x6d3b1020, 0x1f1b6: 0x6d340c20, 0x1f1b7: 0x6cae2420, + 0x1f1b8: 0x6d034620, 0x1f1b9: 0x6cc64a20, 0x1f1ba: 0x6cc97a20, 0x1f1bb: 0x6d27f820, + 0x1f1bc: 0x6cf1a420, 0x1f1bd: 0x6d348a20, 0x1f1be: 0x6c28a020, 0x1f1bf: 0x6c935c20, + // Block 0x7c7, offset 0x1f1c0 + 0x1f1c0: 0x6d1f5e20, 0x1f1c1: 0x6c0f3e20, 0x1f1c2: 0x6c060a20, 0x1f1c3: 0x6c748a20, + 0x1f1c4: 0x6ceb4220, 0x1f1c5: 0x6d184020, 0x1f1c6: 0x6cc13020, 0x1f1c7: 0x6cb4c220, + 0x1f1c8: 0x6cc13e20, 0x1f1c9: 0x6c6ee620, 0x1f1ca: 0x6cb35c20, 0x1f1cb: 0x6d2f7020, + 0x1f1cc: 0x6d251220, 0x1f1cd: 0x6cadf020, 0x1f1ce: 0x6d394c20, 0x1f1cf: 0x6c727220, + 0x1f1d0: 0x6d3b2620, 0x1f1d1: 0x6caa4420, 0x1f1d2: 0x6c70c820, 0x1f1d3: 0x6caf8820, + 0x1f1d4: 0x6d29fa20, 0x1f1d5: 0x6c645020, 0x1f1d6: 0x6c8d4e20, 0x1f1d7: 0x6d31f620, + 0x1f1d8: 0x6cdf3a20, 0x1f1d9: 0x6c404820, 0x1f1da: 0x6d103020, 0x1f1db: 0x6cd2d820, + 0x1f1dc: 0x6c0a4020, 0x1f1dd: 0x6cebc220, 0x1f1de: 0x6ceb4620, 0x1f1df: 0x6cd8e420, + 0x1f1e0: 0x6c8e9020, 0x1f1e1: 0x6c96de20, 0x1f1e2: 0x6cb13220, 0x1f1e3: 0x6ce24620, + 0x1f1e4: 0x6d36f820, 0x1f1e5: 0x6cc6b820, 0x1f1e6: 0x6ce2b620, 0x1f1e7: 0x6c308a20, + 0x1f1e8: 0x6d09ac20, 0x1f1e9: 0x6cc2a420, 0x1f1ea: 0x6cd02220, 0x1f1eb: 0x6c6ee820, + 0x1f1ec: 0x6c37a620, 0x1f1ed: 0x6c4d7a20, 0x1f1ee: 0x6c0f7020, 0x1f1ef: 0x6d39ce20, + 0x1f1f0: 0x6d1a0c20, 0x1f1f1: 0x6c962a20, 0x1f1f2: 0x6d397a20, 0x1f1f3: 0x6c28bc20, + 0x1f1f4: 0x6d023820, 0x1f1f5: 0x6c8eb020, 0x1f1f6: 0x6c716a20, 0x1f1f7: 0x6cd97020, + 0x1f1f8: 0x6cbd4620, 0x1f1f9: 0x6c987a20, 0x1f1fa: 0x6c80ec20, 0x1f1fb: 0x6c4f2420, + 0x1f1fc: 0x6ce90020, 0x1f1fd: 0x6d07da20, 0x1f1fe: 0x6cea1420, 0x1f1ff: 0x6c75f220, + // Block 0x7c8, offset 0x1f200 + 0x1f200: 0x6c35be20, 0x1f201: 0x6c1a7a20, 0x1f202: 0x6d03ac20, 0x1f203: 0x6c005820, + 0x1f204: 0x6c931420, 0x1f205: 0x6d3c6c20, 0x1f206: 0x6d38be20, 0x1f207: 0x6ccf8220, + 0x1f208: 0x6cb13620, 0x1f209: 0x6c7d8c20, 0x1f20a: 0x6ce24c20, 0x1f20b: 0x6c7f2e20, + 0x1f20c: 0x6d3fd220, 0x1f20d: 0x6c78e220, 0x1f20e: 0x6cb67c20, 0x1f20f: 0x6cb67e20, + 0x1f210: 0x6d0ede20, 0x1f211: 0x6c3a2220, 0x1f212: 0x6ccacc20, 0x1f213: 0x6d0df020, + 0x1f214: 0x6c445820, 0x1f215: 0x6d11e220, 0x1f216: 0x6cf54820, 0x1f217: 0x6cb14e20, + 0x1f218: 0x6c237620, 0x1f219: 0x6cb15020, 0x1f21a: 0x6cb9da20, 0x1f21b: 0x6c3a2420, + 0x1f21c: 0x6c5a2420, 0x1f21d: 0x6cb9d420, 0x1f21e: 0x6c5d6820, 0x1f21f: 0x6d21de20, + 0x1f220: 0x6ce3a820, 0x1f221: 0x6cc32420, 0x1f222: 0x6cfa1620, 0x1f223: 0x6d3fd620, + 0x1f224: 0x6c7cae20, 0x1f225: 0x6cc76c20, 0x1f226: 0x6cd84620, 0x1f227: 0x6c488020, + 0x1f228: 0x6ceb5c20, 0x1f229: 0x6c4aa220, 0x1f22a: 0x6cda0020, 0x1f22b: 0x6cb94a20, + 0x1f22c: 0x6c1a5a20, 0x1f22d: 0x6d374e20, 0x1f22e: 0x6c8ed620, 0x1f22f: 0x6caef820, + 0x1f230: 0x6ce2c820, 0x1f231: 0x6cf7be20, 0x1f232: 0x6c12b420, 0x1f233: 0x6c31ea20, + 0x1f234: 0x6d0efe20, 0x1f235: 0x6d25cc20, 0x1f236: 0x6d407220, 0x1f237: 0x6ccad020, + 0x1f238: 0x6ccde020, 0x1f239: 0x6c84b020, 0x1f23a: 0x6d376220, 0x1f23b: 0x6cd6b020, + 0x1f23c: 0x6c933820, 0x1f23d: 0x6cf7c020, 0x1f23e: 0x6c956c20, 0x1f23f: 0x6d2eec20, + // Block 0x7c9, offset 0x1f240 + 0x1f240: 0x6ca19020, 0x1f241: 0x6c030020, 0x1f242: 0x6c118420, 0x1f243: 0x6c0c5c20, + 0x1f244: 0x6c237a20, 0x1f245: 0x6cc16220, 0x1f246: 0x6c0ac220, 0x1f247: 0x6d376420, + 0x1f248: 0x6d248020, 0x1f249: 0x6d060c20, 0x1f24a: 0x6c576c20, 0x1f24b: 0x6c0e9e20, + 0x1f24c: 0x6cdb7020, 0x1f24d: 0x6cff5820, 0x1f24e: 0x6c8c0a20, 0x1f24f: 0x6d2ea420, + 0x1f250: 0x6c33c620, 0x1f251: 0x6c8eea20, 0x1f252: 0x6ceb6220, 0x1f253: 0x6c136a20, + 0x1f254: 0x6c2d9e20, 0x1f255: 0x6c68b220, 0x1f256: 0x6ce60c20, 0x1f257: 0x6d0f1620, + 0x1f258: 0x6c958620, 0x1f259: 0x6d2dca20, 0x1f25a: 0x6c6df820, 0x1f25b: 0x6d196a20, + 0x1f25c: 0x6d139e20, 0x1f25d: 0x6ceadc20, 0x1f25e: 0x6cb20020, 0x1f25f: 0x6d397220, + 0x1f260: 0x6d0f2620, 0x1f261: 0x6c902020, 0x1f262: 0x6c937220, 0x1f263: 0x6ce2e020, + 0x1f264: 0x6cfda820, 0x1f265: 0x6c630220, 0x1f266: 0x6cd6ca20, 0x1f267: 0x6c719c20, + 0x1f268: 0x6cf7d020, 0x1f269: 0x6c585020, 0x1f26a: 0x6c84ee20, 0x1f26b: 0x6c0c6820, + 0x1f26c: 0x6c968c20, 0x1f26d: 0x6d22ba20, 0x1f26e: 0x6ceae220, 0x1f26f: 0x6d09da20, + 0x1f270: 0x6c1afa20, 0x1f271: 0x6cc0d820, 0x1f272: 0x6cc63e20, 0x1f273: 0x6c0eb220, + 0x1f274: 0x6c935020, 0x1f275: 0x6d29f820, 0x1f276: 0x6cd2ba20, 0x1f277: 0x6cd89620, + 0x1f278: 0x6c3fbc20, 0x1f279: 0x6c706420, 0x1f27a: 0x6d404820, 0x1f27b: 0x6d3ab820, + 0x1f27c: 0x6cebc020, 0x1f27d: 0x6caa4020, 0x1f27e: 0x6c643820, 0x1f27f: 0x6d16d420, + // Block 0x7ca, offset 0x1f280 + 0x1f280: 0x6c273c20, 0x1f281: 0x6cfe9020, 0x1f282: 0x6c96b820, 0x1f283: 0x6d19bc20, + 0x1f284: 0x6c683a20, 0x1f285: 0x6c572e20, 0x1f286: 0x6c95ee20, 0x1f287: 0x6c4d5c20, + 0x1f288: 0x6cb10820, 0x1f289: 0x6c0bf020, 0x1f28a: 0x6c83b420, 0x1f28b: 0x6c1a6c20, + 0x1f28c: 0x6d0e5820, 0x1f28d: 0x6d036e20, 0x1f28e: 0x6cbd2820, 0x1f28f: 0x6c75aa20, + 0x1f290: 0x6cb5e220, 0x1f291: 0x6cb5e420, 0x1f292: 0x6c78aa20, 0x1f293: 0x6d3c5c20, + 0x1f294: 0x6d3f7e20, 0x1f295: 0x6cdaae20, 0x1f296: 0x6c116420, 0x1f297: 0x6cb14a20, + 0x1f298: 0x6d364820, 0x1f299: 0x6c7c8220, 0x1f29a: 0x6ccab020, 0x1f29b: 0x6cf4f620, + 0x1f29c: 0x6c02da20, 0x1f29d: 0x6c8e7820, 0x1f29e: 0x6cb8fa20, 0x1f29f: 0x6ccd9020, + 0x1f2a0: 0x6c0c1220, 0x1f2a1: 0x6c955020, 0x1f2a2: 0x6c233620, 0x1f2a3: 0x6c15e220, + 0x1f2a4: 0x6d395c20, 0x1f2a5: 0x6c62c420, 0x1f2a6: 0x6cd6ac20, 0x1f2a7: 0x6cfd9420, + 0x1f2a8: 0x6c476e20, 0x1f2a9: 0x6cefb420, 0x1f2aa: 0x6cefd220, 0x1f2ab: 0x6cefd420, + 0x1f2ac: 0x6d214020, 0x1f2ad: 0x6c422420, 0x1f2ae: 0x6d17d620, 0x1f2af: 0x6c01ec20, + 0x1f2b0: 0x6ce7f220, 0x1f2b1: 0x6c6bf020, 0x1f2b2: 0x6c065e20, 0x1f2b3: 0x6c074e20, + 0x1f2b4: 0x6c220c20, 0x1f2b5: 0x6ce3c620, 0x1f2b6: 0x6c2c0020, 0x1f2b7: 0x6c7a5620, + 0x1f2b8: 0x6c4d2820, 0x1f2b9: 0x6cbba020, 0x1f2ba: 0x6c543020, 0x1f2bb: 0x6c7af020, + 0x1f2bc: 0x6c443220, 0x1f2bd: 0x6ce9ee20, 0x1f2be: 0x6c452020, 0x1f2bf: 0x6cb12a20, + // Block 0x7cb, offset 0x1f2c0 + 0x1f2c0: 0x6c0a8220, 0x1f2c1: 0x6c783c20, 0x1f2c2: 0x6cb87a20, 0x1f2c3: 0x6d21ce20, + 0x1f2c4: 0x6cdc1420, 0x1f2c5: 0x6c90d020, 0x1f2c6: 0x6c0fb220, 0x1f2c7: 0x6cff4620, + 0x1f2c8: 0x6c055a20, 0x1f2c9: 0x6c0fb420, 0x1f2ca: 0x6c221420, 0x1f2cb: 0x6c7b5e20, + 0x1f2cc: 0x6c0d9220, 0x1f2cd: 0x6ca09420, 0x1f2ce: 0x6c8a5220, 0x1f2cf: 0x6c90da20, + 0x1f2d0: 0x6cff5220, 0x1f2d1: 0x6c31fe20, 0x1f2d2: 0x6d29f220, 0x1f2d3: 0x6cdc1a20, + 0x1f2d4: 0x6ce3d020, 0x1f2d5: 0x6c0d9620, 0x1f2d6: 0x6c7b6020, 0x1f2d7: 0x6c91a820, + 0x1f2d8: 0x6c42bc20, 0x1f2d9: 0x6c42c420, 0x1f2da: 0x6cbc5020, 0x1f2db: 0x6c779420, + 0x1f2dc: 0x6cbc2c20, 0x1f2dd: 0x6c819420, 0x1f2de: 0x6ccb0c20, 0x1f2df: 0x6c0bf420, + 0x1f2e0: 0x6c7d6e20, 0x1f2e1: 0x6c7d7620, 0x1f2e2: 0x6c2b7620, 0x1f2e3: 0x6c39da20, + 0x1f2e4: 0x6d04ec20, 0x1f2e5: 0x6cc47e20, 0x1f2e6: 0x6c98f820, 0x1f2e7: 0x6c28a220, + 0x1f2e8: 0x6c7d7e20, 0x1f2e9: 0x6c0d8620, 0x1f2ea: 0x6c383e20, 0x1f2eb: 0x6ce5a220, + 0x1f2ec: 0x6caf8a20, 0x1f2ed: 0x6d3e9c20, 0x1f2ee: 0x6c384220, 0x1f2ef: 0x6cc48620, + 0x1f2f0: 0x6ce41a20, 0x1f2f1: 0x6c066420, 0x1f2f2: 0x6c0a4220, 0x1f2f3: 0x6c990420, + 0x1f2f4: 0x6c3eea20, 0x1f2f5: 0x6c376a20, 0x1f2f6: 0x6cc6ba20, 0x1f2f7: 0x6cc14420, + 0x1f2f8: 0x6c45b620, 0x1f2f9: 0x6d04f820, 0x1f2fa: 0x6c7e1620, 0x1f2fb: 0x6c628e20, + 0x1f2fc: 0x6caed220, 0x1f2fd: 0x6d3b6020, 0x1f2fe: 0x6cce8e20, 0x1f2ff: 0x6cdd4420, + // Block 0x7cc, offset 0x1f300 + 0x1f300: 0x6ce43620, 0x1f301: 0x6c86ba20, 0x1f302: 0x6c0d8a20, 0x1f303: 0x6d3fd420, + 0x1f304: 0x6c2baa20, 0x1f305: 0x6caee420, 0x1f306: 0x6cd94820, 0x1f307: 0x6d32f820, + 0x1f308: 0x6cc32220, 0x1f309: 0x6d3fd820, 0x1f30a: 0x6cd76220, 0x1f30b: 0x6c660e20, + 0x1f30c: 0x6ceb9620, 0x1f30d: 0x6c55f420, 0x1f30e: 0x6c7eae20, 0x1f30f: 0x6c6f8e20, + 0x1f310: 0x6cb6a020, 0x1f311: 0x6c889820, 0x1f312: 0x6d320420, 0x1f313: 0x6c0d9420, + 0x1f314: 0x6caefa20, 0x1f315: 0x6c96e620, 0x1f316: 0x6cca0e20, 0x1f317: 0x6c979e20, + 0x1f318: 0x6c97a020, 0x1f319: 0x6ccbbc20, 0x1f31a: 0x6d061020, 0x1f31b: 0x6c8b7a20, + 0x1f31c: 0x6cb95420, 0x1f31d: 0x6cb95220, 0x1f31e: 0x6ca46220, 0x1f31f: 0x6c58cc20, + 0x1f320: 0x6c7e3220, 0x1f321: 0x6ca94220, 0x1f322: 0x6c0d9820, 0x1f323: 0x6c8b8a20, + 0x1f324: 0x6cc4fe20, 0x1f325: 0x6c310e20, 0x1f326: 0x6c313420, 0x1f327: 0x6ca53620, + 0x1f328: 0x6c53dc20, 0x1f329: 0x6cf90e20, 0x1f32a: 0x6c314e20, 0x1f32b: 0x6c4e7220, + 0x1f32c: 0x6c315420, 0x1f32d: 0x6c315220, 0x1f32e: 0x6c6f9620, 0x1f32f: 0x6c170e20, + 0x1f330: 0x6d249c20, 0x1f331: 0x6d24a420, 0x1f332: 0x6c43e020, 0x1f333: 0x6d0ecc20, + 0x1f334: 0x6c3f8e20, 0x1f335: 0x6cbdb820, 0x1f336: 0x6c4a9e20, 0x1f337: 0x6d3fdc20, + 0x1f338: 0x6c8f5820, 0x1f339: 0x6c4aa620, 0x1f33a: 0x6cce2a20, 0x1f33b: 0x6d248220, + 0x1f33c: 0x6c4ae220, 0x1f33d: 0x6c9a9620, 0x1f33e: 0x6c623220, 0x1f33f: 0x6cb61220, + // Block 0x7cd, offset 0x1f340 + 0x1f340: 0x6c40da20, 0x1f341: 0x6c7c9020, 0x1f342: 0x6c5cf620, 0x1f343: 0x6c038c20, + 0x1f344: 0x6cb39c20, 0x1f345: 0x6c9aa620, 0x1f346: 0x6d05c820, 0x1f347: 0x6d0dd220, + 0x1f348: 0x6cff1a20, 0x1f349: 0x6c89a220, 0x1f34a: 0x6d242620, 0x1f34b: 0x6ce9ca20, + 0x1f34c: 0x6cb53e20, 0x1f34d: 0x6cee3e20, 0x1f34e: 0x6c89a820, 0x1f34f: 0x6cf0f020, + 0x1f350: 0x6c41bc20, 0x1f351: 0x6c1aea20, 0x1f352: 0x6cb17420, 0x1f353: 0x6c0ab620, + 0x1f354: 0x6ca09620, 0x1f355: 0x6c616220, 0x1f356: 0x6d060820, 0x1f357: 0x6c1e3e20, + 0x1f358: 0x6d0e2620, 0x1f359: 0x6d2dcc20, 0x1f35a: 0x6d211220, 0x1f35b: 0x6c29c420, + 0x1f35c: 0x6cc57620, 0x1f35d: 0x6c6b0220, 0x1f35e: 0x6c03f620, 0x1f35f: 0x6c537c20, + 0x1f360: 0x6ceacc20, 0x1f361: 0x6c2e3620, 0x1f362: 0x6c614e20, 0x1f363: 0x6d073620, + 0x1f364: 0x6c358020, 0x1f365: 0x6c367c20, 0x1f366: 0x6ccc1220, 0x1f367: 0x6c4f8620, + 0x1f368: 0x6cea6620, 0x1f369: 0x6ca15e20, 0x1f36a: 0x6c6c0020, 0x1f36b: 0x6cd07220, + 0x1f36c: 0x6c04d620, 0x1f36d: 0x6d25a420, 0x1f36e: 0x6cb01420, 0x1f36f: 0x6c91d420, + 0x1f370: 0x6cf1aa20, 0x1f371: 0x6c55a620, 0x1f372: 0x6c915a20, 0x1f373: 0x6d289a20, + 0x1f374: 0x6c39ae20, 0x1f375: 0x6c3b9020, 0x1f376: 0x6ca36820, 0x1f377: 0x6d1f6c20, + 0x1f378: 0x6cb15220, 0x1f379: 0x6ca1b620, 0x1f37a: 0x6c517e20, 0x1f37b: 0x6cf9fa20, + 0x1f37c: 0x6cc14620, 0x1f37d: 0x6c4e3820, 0x1f37e: 0x6caf9420, 0x1f37f: 0x6c8d6220, + // Block 0x7ce, offset 0x1f380 + 0x1f380: 0x6ceb5220, 0x1f381: 0x6c0e9820, 0x1f382: 0x6cc0a020, 0x1f383: 0x6cb2d220, + 0x1f384: 0x6c3f0620, 0x1f385: 0x6c0a6420, 0x1f386: 0x6c22a420, 0x1f387: 0x6cf0e020, + 0x1f388: 0x6c70ce20, 0x1f389: 0x6c2de220, 0x1f38a: 0x6c03c620, 0x1f38b: 0x6d1f7a20, + 0x1f38c: 0x6c4bf020, 0x1f38d: 0x6caf9620, 0x1f38e: 0x6ca70620, 0x1f38f: 0x6d03a020, + 0x1f390: 0x6cdf4020, 0x1f391: 0x6c066a20, 0x1f392: 0x6c406020, 0x1f393: 0x6d2c9820, + 0x1f394: 0x6c728620, 0x1f395: 0x6c473620, 0x1f396: 0x6cd41e20, 0x1f397: 0x6c309a20, + 0x1f398: 0x6c27b020, 0x1f399: 0x6cdeba20, 0x1f39a: 0x6c6b4c20, 0x1f39b: 0x6cd50e20, + 0x1f39c: 0x6c548220, 0x1f39d: 0x6cfe0420, 0x1f39e: 0x6c376e20, 0x1f39f: 0x6c01d620, + 0x1f3a0: 0x6cef4820, 0x1f3a1: 0x6d2fe620, 0x1f3a2: 0x6d39d020, 0x1f3a3: 0x6d1b8220, + 0x1f3a4: 0x6c8b4020, 0x1f3a5: 0x6c962e20, 0x1f3a6: 0x6ce79420, 0x1f3a7: 0x6ce3c820, + 0x1f3a8: 0x6d18e220, 0x1f3a9: 0x6c0e3020, 0x1f3aa: 0x6cf03420, 0x1f3ab: 0x6c688a20, + 0x1f3ac: 0x6c7a6820, 0x1f3ad: 0x6c4a9220, 0x1f3ae: 0x6cfae620, 0x1f3af: 0x6c444820, + 0x1f3b0: 0x6c5b4420, 0x1f3b1: 0x6c81fc20, 0x1f3b2: 0x6c40b820, 0x1f3b3: 0x6c77ca20, + 0x1f3b4: 0x6d055e20, 0x1f3b5: 0x6c346820, 0x1f3b6: 0x6c758820, 0x1f3b7: 0x6ce3a020, + 0x1f3b8: 0x6c9e4620, 0x1f3b9: 0x6cce9220, 0x1f3ba: 0x6d2c9a20, 0x1f3bb: 0x6cdd4620, + 0x1f3bc: 0x6cbd4820, 0x1f3bd: 0x6d21d020, 0x1f3be: 0x6ca57820, 0x1f3bf: 0x6d30b420, + // Block 0x7cf, offset 0x1f3c0 + 0x1f3c0: 0x6c4bf620, 0x1f3c1: 0x6c452420, 0x1f3c2: 0x6cdb7c20, 0x1f3c3: 0x6cf40220, + 0x1f3c4: 0x6cc0a620, 0x1f3c5: 0x6ccd1820, 0x1f3c6: 0x6cb42020, 0x1f3c7: 0x6c596220, + 0x1f3c8: 0x6ce5a820, 0x1f3c9: 0x6c854020, 0x1f3ca: 0x6ccc2420, 0x1f3cb: 0x6ccc2620, + 0x1f3cc: 0x6c77d020, 0x1f3cd: 0x6c9b7e20, 0x1f3ce: 0x6c1a8e20, 0x1f3cf: 0x6c87e620, + 0x1f3d0: 0x6d409820, 0x1f3d1: 0x6cf94c20, 0x1f3d2: 0x6d1e6420, 0x1f3d3: 0x6ca61020, + 0x1f3d4: 0x6d3eba20, 0x1f3d5: 0x6cb68820, 0x1f3d6: 0x6d330c20, 0x1f3d7: 0x6cfe0620, + 0x1f3d8: 0x6ca57a20, 0x1f3d9: 0x6c216e20, 0x1f3da: 0x6c62c620, 0x1f3db: 0x6c2dec20, + 0x1f3dc: 0x6cbd0020, 0x1f3dd: 0x6c482c20, 0x1f3de: 0x6d38f220, 0x1f3df: 0x6c302420, + 0x1f3e0: 0x6c7f3020, 0x1f3e1: 0x6c3aec20, 0x1f3e2: 0x6ca61420, 0x1f3e3: 0x6d192220, + 0x1f3e4: 0x6c7d8e20, 0x1f3e5: 0x6c932620, 0x1f3e6: 0x6c703820, 0x1f3e7: 0x6c168620, + 0x1f3e8: 0x6c6de620, 0x1f3e9: 0x6c951220, 0x1f3ea: 0x6c8d8a20, 0x1f3eb: 0x6d406e20, + 0x1f3ec: 0x6c849420, 0x1f3ed: 0x6c9bf420, 0x1f3ee: 0x6d3fde20, 0x1f3ef: 0x6d375220, + 0x1f3f0: 0x6ca70c20, 0x1f3f1: 0x6c570420, 0x1f3f2: 0x6d24c420, 0x1f3f3: 0x6c2cb620, + 0x1f3f4: 0x6cd20c20, 0x1f3f5: 0x6cd02c20, 0x1f3f6: 0x6c5d1620, 0x1f3f7: 0x6ce3ac20, + 0x1f3f8: 0x6c544020, 0x1f3f9: 0x6d03b220, 0x1f3fa: 0x6d39e420, 0x1f3fb: 0x6c7ebc20, + 0x1f3fc: 0x6d3fe020, 0x1f3fd: 0x6d2b6820, 0x1f3fe: 0x6c0b1820, 0x1f3ff: 0x6c0b1a20, + // Block 0x7d0, offset 0x1f400 + 0x1f400: 0x6c596420, 0x1f401: 0x6cc32a20, 0x1f402: 0x6d2b7020, 0x1f403: 0x6ceeca20, + 0x1f404: 0x6ceecc20, 0x1f405: 0x6d21e620, 0x1f406: 0x6c212420, 0x1f407: 0x6cc77020, + 0x1f408: 0x6c2f0a20, 0x1f409: 0x6c5a2e20, 0x1f40a: 0x6c893220, 0x1f40b: 0x6d0e0620, + 0x1f40c: 0x6cbfda20, 0x1f40d: 0x6cbfdc20, 0x1f40e: 0x6c661020, 0x1f40f: 0x6c089c20, + 0x1f410: 0x6c36dc20, 0x1f411: 0x6d0ff220, 0x1f412: 0x6c409020, 0x1f413: 0x6cc9d820, + 0x1f414: 0x6c41fa20, 0x1f415: 0x6cf98220, 0x1f416: 0x6ceb9820, 0x1f417: 0x6c55fa20, + 0x1f418: 0x6cd42420, 0x1f419: 0x6cc93420, 0x1f41a: 0x6d08d620, 0x1f41b: 0x6cf17220, + 0x1f41c: 0x6cba8820, 0x1f41d: 0x6c508020, 0x1f41e: 0x6cf39020, 0x1f41f: 0x6c39b420, + 0x1f420: 0x6ccad620, 0x1f421: 0x6c8ee420, 0x1f422: 0x6c96aa20, 0x1f423: 0x6cd29620, + 0x1f424: 0x6cd21420, 0x1f425: 0x6c493a20, 0x1f426: 0x6d3ec220, 0x1f427: 0x6ce2d020, + 0x1f428: 0x6cde2620, 0x1f429: 0x6d117a20, 0x1f42a: 0x6c35a820, 0x1f42b: 0x6d1e0820, + 0x1f42c: 0x6cb9e420, 0x1f42d: 0x6cb6a420, 0x1f42e: 0x6cf17420, 0x1f42f: 0x6cc93820, + 0x1f430: 0x6cd0ce20, 0x1f431: 0x6c889e20, 0x1f432: 0x6c028e20, 0x1f433: 0x6c823420, + 0x1f434: 0x6c5b0c20, 0x1f435: 0x6c9fdc20, 0x1f436: 0x6c62e620, 0x1f437: 0x6ce5b620, + 0x1f438: 0x6cc16820, 0x1f439: 0x6c654a20, 0x1f43a: 0x6cd03020, 0x1f43b: 0x6c97a820, + 0x1f43c: 0x6cf7c620, 0x1f43d: 0x6cc0aa20, 0x1f43e: 0x6c0c9c20, 0x1f43f: 0x6c62e820, + // Block 0x7d1, offset 0x1f440 + 0x1f440: 0x6c62d820, 0x1f441: 0x6d3a3c20, 0x1f442: 0x6c679a20, 0x1f443: 0x6d051420, + 0x1f444: 0x6d3b9c20, 0x1f445: 0x6d1de620, 0x1f446: 0x6d2eee20, 0x1f447: 0x6c776420, + 0x1f448: 0x6d093620, 0x1f449: 0x6c0cce20, 0x1f44a: 0x6d248a20, 0x1f44b: 0x6cc16a20, + 0x1f44c: 0x6cfe6e20, 0x1f44d: 0x6c0ea220, 0x1f44e: 0x6c697820, 0x1f44f: 0x6d0a5a20, + 0x1f450: 0x6cdb7220, 0x1f451: 0x6c5a3a20, 0x1f452: 0x6d420020, 0x1f453: 0x6ccdee20, + 0x1f454: 0x6ccdf020, 0x1f455: 0x6c387620, 0x1f456: 0x6c4bae20, 0x1f457: 0x6c8c0c20, + 0x1f458: 0x6d0a5c20, 0x1f459: 0x6c9e8620, 0x1f45a: 0x6cf82c20, 0x1f45b: 0x6d2bbe20, + 0x1f45c: 0x6cfe7820, 0x1f45d: 0x6c3c0620, 0x1f45e: 0x6c494620, 0x1f45f: 0x6c548a20, + 0x1f460: 0x6c7b4e20, 0x1f461: 0x6d2b7220, 0x1f462: 0x6ccada20, 0x1f463: 0x6d2dd020, + 0x1f464: 0x6c420420, 0x1f465: 0x6c4bb220, 0x1f466: 0x6d1d6020, 0x1f467: 0x6c855220, + 0x1f468: 0x6c16da20, 0x1f469: 0x6c836e20, 0x1f46a: 0x6cd63a20, 0x1f46b: 0x6c011020, + 0x1f46c: 0x6cc7f220, 0x1f46d: 0x6c62fe20, 0x1f46e: 0x6d076e20, 0x1f46f: 0x6c56f220, + 0x1f470: 0x6cd63c20, 0x1f471: 0x6c87bc20, 0x1f472: 0x6c8b8e20, 0x1f473: 0x6c87c620, + 0x1f474: 0x6c9f2020, 0x1f475: 0x6d31a620, 0x1f476: 0x6cfe1220, 0x1f477: 0x6c370220, + 0x1f478: 0x6c91ac20, 0x1f479: 0x6c49ca20, 0x1f47a: 0x6c84f020, 0x1f47b: 0x6cfb1c20, + 0x1f47c: 0x6d20ce20, 0x1f47d: 0x6c29c220, 0x1f47e: 0x6c613a20, 0x1f47f: 0x6d1f4220, + // Block 0x7d2, offset 0x1f480 + 0x1f480: 0x6cea5c20, 0x1f481: 0x6c91c020, 0x1f482: 0x6c39ac20, 0x1f483: 0x6c035420, + 0x1f484: 0x6c515220, 0x1f485: 0x6c03be20, 0x1f486: 0x6cb2ba20, 0x1f487: 0x6ca70020, + 0x1f488: 0x6c915620, 0x1f489: 0x6d1f5220, 0x1f48a: 0x6d2c8020, 0x1f48b: 0x6c401420, + 0x1f48c: 0x6c03c020, 0x1f48d: 0x6c065620, 0x1f48e: 0x6c547620, 0x1f48f: 0x6cb00220, + 0x1f490: 0x6cdf2c20, 0x1f491: 0x6c4a8220, 0x1f492: 0x6c6b1620, 0x1f493: 0x6c77b420, + 0x1f494: 0x6ceffa20, 0x1f495: 0x6c376420, 0x1f496: 0x6ce77620, 0x1f497: 0x6d2b6220, + 0x1f498: 0x6c547c20, 0x1f499: 0x6c7b2e20, 0x1f49a: 0x6c625a20, 0x1f49b: 0x6c686220, + 0x1f49c: 0x6cfac620, 0x1f49d: 0x6d2c8820, 0x1f49e: 0x6cfdfa20, 0x1f49f: 0x6d0a2c20, + 0x1f4a0: 0x6c451e20, 0x1f4a1: 0x6c843820, 0x1f4a2: 0x6c884620, 0x1f4a3: 0x6c64ea20, + 0x1f4a4: 0x6c852c20, 0x1f4a5: 0x6cd28820, 0x1f4a6: 0x6ce5a420, 0x1f4a7: 0x6c4be820, + 0x1f4a8: 0x6ccc1620, 0x1f4a9: 0x6c595020, 0x1f4aa: 0x6c758020, 0x1f4ab: 0x6c626e20, + 0x1f4ac: 0x6d1e5a20, 0x1f4ad: 0x6cbe5820, 0x1f4ae: 0x6c8d6420, 0x1f4af: 0x6cb65820, + 0x1f4b0: 0x6d406820, 0x1f4b1: 0x6c3a1c20, 0x1f4b2: 0x6c7d8620, 0x1f4b3: 0x6c168020, + 0x1f4b4: 0x6c482a20, 0x1f4b5: 0x6ca60a20, 0x1f4b6: 0x6ca70820, 0x1f4b7: 0x6c2de420, + 0x1f4b8: 0x6c6dd420, 0x1f4b9: 0x6cd02420, 0x1f4ba: 0x6cd20020, 0x1f4bb: 0x6d3e9e20, + 0x1f4bc: 0x6c3bf820, 0x1f4bd: 0x6c2ef620, 0x1f4be: 0x6c089420, 0x1f4bf: 0x6c16ce20, + // Block 0x7d3, offset 0x1f4c0 + 0x1f4c0: 0x6ce39020, 0x1f4c1: 0x6cf16c20, 0x1f4c2: 0x6ceec420, 0x1f4c3: 0x6cc9d220, + 0x1f4c4: 0x6c36c020, 0x1f4c5: 0x6cbfd220, 0x1f4c6: 0x6c407020, 0x1f4c7: 0x6c5a1620, + 0x1f4c8: 0x6cc31e20, 0x1f4c9: 0x6c678a20, 0x1f4ca: 0x6c0b1220, 0x1f4cb: 0x6ccac820, + 0x1f4cc: 0x6c028020, 0x1f4cd: 0x6cb68020, 0x1f4ce: 0x6cde1e20, 0x1f4cf: 0x6c493220, + 0x1f4d0: 0x6d116620, 0x1f4d1: 0x6cad1220, 0x1f4d2: 0x6c651e20, 0x1f4d3: 0x6c823020, + 0x1f4d4: 0x6c0c9a20, 0x1f4d5: 0x6d093420, 0x1f4d6: 0x6c0cc820, 0x1f4d7: 0x6c979820, + 0x1f4d8: 0x6c9fd820, 0x1f4d9: 0x6d1dd220, 0x1f4da: 0x6cf10420, 0x1f4db: 0x6cf7b620, + 0x1f4dc: 0x6c4ba020, 0x1f4dd: 0x6ccde220, 0x1f4de: 0x6c8c0620, 0x1f4df: 0x6d41fe20, + 0x1f4e0: 0x6c56e420, 0x1f4e1: 0x6c41fe20, 0x1f4e2: 0x6c854a20, 0x1f4e3: 0x6d2dc820, + 0x1f4e4: 0x6c496e20, 0x1f4e5: 0x6ca79a20, 0x1f4e6: 0x6d15f420, 0x1f4e7: 0x6c3ebc20, + 0x1f4e8: 0x6c864220, 0x1f4e9: 0x6c6f7e20, 0x1f4ea: 0x6c102220, 0x1f4eb: 0x6d0e8e20, + 0x1f4ec: 0x6c3f5020, 0x1f4ed: 0x6c2dd020, 0x1f4ee: 0x6c5efc20, 0x1f4ef: 0x6c3cea20, + 0x1f4f0: 0x6cc83620, 0x1f4f1: 0x6c41ac20, 0x1f4f2: 0x6cd1e820, 0x1f4f3: 0x6c3cee20, + 0x1f4f4: 0x6ca01420, 0x1f4f5: 0x6c060c20, 0x1f4f6: 0x6d250820, 0x1f4f7: 0x6d341420, + 0x1f4f8: 0x6c56c420, 0x1f4f9: 0x6cbd9a20, 0x1f4fa: 0x6c3d9820, 0x1f4fb: 0x6c049620, + 0x1f4fc: 0x6cf1ac20, 0x1f4fd: 0x6c64ec20, 0x1f4fe: 0x6cd1f620, 0x1f4ff: 0x6d23e420, + // Block 0x7d4, offset 0x1f500 + 0x1f500: 0x6c3d3220, 0x1f501: 0x6d10b620, 0x1f502: 0x6c74b020, 0x1f503: 0x6c74b220, + 0x1f504: 0x6cb06c20, 0x1f505: 0x6c583020, 0x1f506: 0x6d326820, 0x1f507: 0x6c061220, + 0x1f508: 0x6d0eb420, 0x1f509: 0x6d0af620, 0x1f50a: 0x6d336420, 0x1f50b: 0x6c399c20, + 0x1f50c: 0x6c3cf020, 0x1f50d: 0x6cf1ae20, 0x1f50e: 0x6cab5220, 0x1f50f: 0x6c279220, + 0x1f510: 0x6c43ac20, 0x1f511: 0x6cc7ca20, 0x1f512: 0x6c8d6620, 0x1f513: 0x6c9eea20, + 0x1f514: 0x6c3eec20, 0x1f515: 0x6ceb5420, 0x1f516: 0x6c9f7c20, 0x1f517: 0x6c869620, + 0x1f518: 0x6c0b5020, 0x1f519: 0x6d36fc20, 0x1f51a: 0x6c43ae20, 0x1f51b: 0x6d251420, + 0x1f51c: 0x6c227620, 0x1f51d: 0x6cc1cc20, 0x1f51e: 0x6cff1c20, 0x1f51f: 0x6c1adc20, + 0x1f520: 0x6c28c020, 0x1f521: 0x6c70d020, 0x1f522: 0x6d11d620, 0x1f523: 0x6c473820, + 0x1f524: 0x6c301820, 0x1f525: 0x6d240020, 0x1f526: 0x6d0f6e20, 0x1f527: 0x6cc73a20, + 0x1f528: 0x6d0afe20, 0x1f529: 0x6ce60420, 0x1f52a: 0x6d240220, 0x1f52b: 0x6ce54420, + 0x1f52c: 0x6d1bf820, 0x1f52d: 0x6c331620, 0x1f52e: 0x6cf38620, 0x1f52f: 0x6c377020, + 0x1f530: 0x6c487c20, 0x1f531: 0x6c00d420, 0x1f532: 0x6d341a20, 0x1f533: 0x6d0ed620, + 0x1f534: 0x6c527a20, 0x1f535: 0x6cff2c20, 0x1f536: 0x6c63f020, 0x1f537: 0x6c8b4220, + 0x1f538: 0x6d39d220, 0x1f539: 0x6d0fe220, 0x1f53a: 0x6ce39220, 0x1f53b: 0x6c539220, + 0x1f53c: 0x6c963020, 0x1f53d: 0x6cc7da20, 0x1f53e: 0x6ca1f220, 0x1f53f: 0x6c43b820, + // Block 0x7d5, offset 0x1f540 + 0x1f540: 0x6cc57e20, 0x1f541: 0x6c688c20, 0x1f542: 0x6d050220, 0x1f543: 0x6d38ba20, + 0x1f544: 0x6d341c20, 0x1f545: 0x6c963220, 0x1f546: 0x6c528c20, 0x1f547: 0x6ca77620, + 0x1f548: 0x6c370820, 0x1f549: 0x6c944620, 0x1f54a: 0x6c63f220, 0x1f54b: 0x6c62b420, + 0x1f54c: 0x6ce90420, 0x1f54d: 0x6c583820, 0x1f54e: 0x6ceb9220, 0x1f54f: 0x6c104a20, + 0x1f550: 0x6cf40420, 0x1f551: 0x6c730820, 0x1f552: 0x6d244820, 0x1f553: 0x6c0f9c20, + 0x1f554: 0x6c75f620, 0x1f555: 0x6d0aae20, 0x1f556: 0x6c089220, 0x1f557: 0x6cf71020, + 0x1f558: 0x6c75f820, 0x1f559: 0x6c717620, 0x1f55a: 0x6ce87e20, 0x1f55b: 0x6c6de420, + 0x1f55c: 0x6ce3a220, 0x1f55d: 0x6c359020, 0x1f55e: 0x6c359220, 0x1f55f: 0x6c7bcc20, + 0x1f560: 0x6c55e820, 0x1f561: 0x6cf48a20, 0x1f562: 0x6cd02a20, 0x1f563: 0x6c7f6620, + 0x1f564: 0x6c69ee20, 0x1f565: 0x6cacca20, 0x1f566: 0x6c932820, 0x1f567: 0x6cb02c20, + 0x1f568: 0x6cd51a20, 0x1f569: 0x6c3f2220, 0x1f56a: 0x6c015e20, 0x1f56b: 0x6d3dd020, + 0x1f56c: 0x6caef420, 0x1f56d: 0x6cbdba20, 0x1f56e: 0x6cb94220, 0x1f56f: 0x6c06be20, + 0x1f570: 0x6c2dee20, 0x1f571: 0x6c932a20, 0x1f572: 0x6cc42c20, 0x1f573: 0x6c652a20, + 0x1f574: 0x6c718420, 0x1f575: 0x6ce92a20, 0x1f576: 0x6d0b0420, 0x1f577: 0x6d252020, + 0x1f578: 0x6cb68e20, 0x1f579: 0x6c849620, 0x1f57a: 0x6d138620, 0x1f57b: 0x6d3c7020, + 0x1f57c: 0x6c798e20, 0x1f57d: 0x6c352020, 0x1f57e: 0x6c7d9020, 0x1f57f: 0x6cd11c20, + // Block 0x7d6, offset 0x1f580 + 0x1f580: 0x6cb69020, 0x1f581: 0x6c6de820, 0x1f582: 0x6d192420, 0x1f583: 0x6d192620, + 0x1f584: 0x6c6dea20, 0x1f585: 0x6d3ebc20, 0x1f586: 0x6c7f3220, 0x1f587: 0x6c302620, + 0x1f588: 0x6cb55020, 0x1f589: 0x6c219420, 0x1f58a: 0x6c44e620, 0x1f58b: 0x6c70e020, + 0x1f58c: 0x6c74f620, 0x1f58d: 0x6d199620, 0x1f58e: 0x6d422420, 0x1f58f: 0x6c5f8a20, + 0x1f590: 0x6cd62c20, 0x1f591: 0x6d1c1420, 0x1f592: 0x6c1c9220, 0x1f593: 0x6c9e8220, + 0x1f594: 0x6cc77220, 0x1f595: 0x6c016220, 0x1f596: 0x6cbfe020, 0x1f597: 0x6ce3ae20, + 0x1f598: 0x6c55fc20, 0x1f599: 0x6ce3b020, 0x1f59a: 0x6c36e020, 0x1f59b: 0x6c6a4420, + 0x1f59c: 0x6c991220, 0x1f59d: 0x6c3f2620, 0x1f59e: 0x6c212820, 0x1f59f: 0x6ce90820, + 0x1f5a0: 0x6d0e0820, 0x1f5a1: 0x6c51a020, 0x1f5a2: 0x6d25d020, 0x1f5a3: 0x6cb10620, + 0x1f5a4: 0x6c7d9620, 0x1f5a5: 0x6c9a3e20, 0x1f5a6: 0x6c55fe20, 0x1f5a7: 0x6d1c1620, + 0x1f5a8: 0x6c204820, 0x1f5a9: 0x6cf54c20, 0x1f5aa: 0x6c718a20, 0x1f5ab: 0x6c309c20, + 0x1f5ac: 0x6c124420, 0x1f5ad: 0x6c39e020, 0x1f5ae: 0x6c520a20, 0x1f5af: 0x6d1c3620, + 0x1f5b0: 0x6d25d220, 0x1f5b1: 0x6cfb0620, 0x1f5b2: 0x6cf24620, 0x1f5b3: 0x6cd21620, + 0x1f5b4: 0x6c520c20, 0x1f5b5: 0x6c1eca20, 0x1f5b6: 0x6ce16820, 0x1f5b7: 0x6cfa1a20, + 0x1f5b8: 0x6cc93a20, 0x1f5b9: 0x6c8ee620, 0x1f5ba: 0x6c60fe20, 0x1f5bb: 0x6c474c20, + 0x1f5bc: 0x6c654620, 0x1f5bd: 0x6cdd0420, 0x1f5be: 0x6c4f3a20, 0x1f5bf: 0x6c228020, + // Block 0x7d7, offset 0x1f5c0 + 0x1f5c0: 0x6c228220, 0x1f5c1: 0x6d195420, 0x1f5c2: 0x6d124820, 0x1f5c3: 0x6d0f0220, + 0x1f5c4: 0x6c5f9a20, 0x1f5c5: 0x6c875c20, 0x1f5c6: 0x6ce4d220, 0x1f5c7: 0x6c7a0e20, + 0x1f5c8: 0x6ce30620, 0x1f5c9: 0x6ce30820, 0x1f5ca: 0x6d195620, 0x1f5cb: 0x6ce90c20, + 0x1f5cc: 0x6c96ac20, 0x1f5cd: 0x6c68ae20, 0x1f5ce: 0x6c42f420, 0x1f5cf: 0x6ce4d420, + 0x1f5d0: 0x6c18fe20, 0x1f5d1: 0x6c610020, 0x1f5d2: 0x6ce97620, 0x1f5d3: 0x6d311020, + 0x1f5d4: 0x6c029020, 0x1f5d5: 0x6d11e620, 0x1f5d6: 0x6d143c20, 0x1f5d7: 0x6cab6620, + 0x1f5d8: 0x6c1c9820, 0x1f5d9: 0x6d376e20, 0x1f5da: 0x6c8f5c20, 0x1f5db: 0x6d1de820, + 0x1f5dc: 0x6c937020, 0x1f5dd: 0x6c0aca20, 0x1f5de: 0x6cd6b820, 0x1f5df: 0x6d3de420, + 0x1f5e0: 0x6d21fa20, 0x1f5e1: 0x6cf41020, 0x1f5e2: 0x6c752620, 0x1f5e3: 0x6d1ab620, + 0x1f5e4: 0x6ce3b820, 0x1f5e5: 0x6cd85620, 0x1f5e6: 0x6c68b420, 0x1f5e7: 0x6d196c20, + 0x1f5e8: 0x6c577020, 0x1f5e9: 0x6c0ad020, 0x1f5ea: 0x6d1c4620, 0x1f5eb: 0x6cdb7420, + 0x1f5ec: 0x6c5a3c20, 0x1f5ed: 0x6c38f820, 0x1f5ee: 0x6c68b620, 0x1f5ef: 0x6c8a5a20, + 0x1f5f0: 0x6d0f1820, 0x1f5f1: 0x6c42f820, 0x1f5f2: 0x6c704020, 0x1f5f3: 0x6cfbda20, + 0x1f5f4: 0x6cfbdc20, 0x1f5f5: 0x6ce90e20, 0x1f5f6: 0x6c971c20, 0x1f5f7: 0x6d420220, + 0x1f5f8: 0x6d248e20, 0x1f5f9: 0x6d1c4a20, 0x1f5fa: 0x6c934220, 0x1f5fb: 0x6ce97820, + 0x1f5fc: 0x6cfbde20, 0x1f5fd: 0x6d092e20, 0x1f5fe: 0x6d197820, 0x1f5ff: 0x6cb0e020, + // Block 0x7d8, offset 0x1f600 + 0x1f600: 0x6c1efc20, 0x1f601: 0x6c958c20, 0x1f602: 0x6cf75c20, 0x1f603: 0x6d15a220, + 0x1f604: 0x6c5fb220, 0x1f605: 0x6d2b2c20, 0x1f606: 0x6d220820, 0x1f607: 0x6d2dd220, + 0x1f608: 0x6d13a420, 0x1f609: 0x6d0ffa20, 0x1f60a: 0x6cb0e220, 0x1f60b: 0x6ca94420, + 0x1f60c: 0x6c56f420, 0x1f60d: 0x6c9cd220, 0x1f60e: 0x6d1c5020, 0x1f60f: 0x6c9bc420, + 0x1f610: 0x6c2bc220, 0x1f611: 0x6d273620, 0x1f612: 0x6d249020, 0x1f613: 0x6c831a20, + 0x1f614: 0x6c068620, 0x1f615: 0x6c91ae20, 0x1f616: 0x6c521220, 0x1f617: 0x6c902220, + 0x1f618: 0x6cd6cc20, 0x1f619: 0x6d274020, 0x1f61a: 0x6d1c5220, 0x1f61b: 0x6c49cc20, + 0x1f61c: 0x6cc23820, 0x1f61d: 0x6c84f220, 0x1f61e: 0x6c948820, 0x1f61f: 0x6ca78a20, + 0x1f620: 0x6c6f5a20, 0x1f621: 0x6c5e8820, 0x1f622: 0x6d24ca20, 0x1f623: 0x6c9fea20, + 0x1f624: 0x6cd1a020, 0x1f625: 0x6cab3620, 0x1f626: 0x6d0ada20, 0x1f627: 0x6c122620, + 0x1f628: 0x6c05ec20, 0x1f629: 0x6d322a20, 0x1f62a: 0x6c470420, 0x1f62b: 0x6c2fec20, + 0x1f62c: 0x6c914a20, 0x1f62d: 0x6d0ae420, 0x1f62e: 0x6cfeae20, 0x1f62f: 0x6d0f5820, + 0x1f630: 0x6c8cda20, 0x1f631: 0x6c1aa620, 0x1f632: 0x6cc18220, 0x1f633: 0x6d24d820, + 0x1f634: 0x6d090420, 0x1f635: 0x6ceb1220, 0x1f636: 0x6cd7de20, 0x1f637: 0x6d361220, + 0x1f638: 0x6c375620, 0x1f639: 0x6c485820, 0x1f63a: 0x6d04d220, 0x1f63b: 0x6c526620, + 0x1f63c: 0x6d388020, 0x1f63d: 0x6c438a20, 0x1f63e: 0x6c943820, 0x1f63f: 0x6c534820, + // Block 0x7d9, offset 0x1f640 + 0x1f640: 0x6cf3ce20, 0x1f641: 0x6c0f0c20, 0x1f642: 0x6c83dc20, 0x1f643: 0x6c72f820, + 0x1f644: 0x6c479a20, 0x1f645: 0x6c357220, 0x1f646: 0x6d236220, 0x1f647: 0x6cfb6820, + 0x1f648: 0x6ce33a20, 0x1f649: 0x6cf45420, 0x1f64a: 0x6cc42a20, 0x1f64b: 0x6c9e7a20, + 0x1f64c: 0x6c013e20, 0x1f64d: 0x6c7d7820, 0x1f64e: 0x6c06b420, 0x1f64f: 0x6caeb020, + 0x1f650: 0x6cb8fc20, 0x1f651: 0x6c219220, 0x1f652: 0x6c44d620, 0x1f653: 0x6d250220, + 0x1f654: 0x6cdadc20, 0x1f655: 0x6c558e20, 0x1f656: 0x6c516020, 0x1f657: 0x6c367e20, + 0x1f658: 0x6c47bc20, 0x1f659: 0x6cbfba20, 0x1f65a: 0x6c225a20, 0x1f65b: 0x6c9a1e20, + 0x1f65c: 0x6cf51220, 0x1f65d: 0x6d187820, 0x1f65e: 0x6d122020, 0x1f65f: 0x6cf23820, + 0x1f660: 0x6c8e9420, 0x1f661: 0x6c60a020, 0x1f662: 0x6d187a20, 0x1f663: 0x6c64ee20, + 0x1f664: 0x6c51e220, 0x1f665: 0x6d141c20, 0x1f666: 0x6d1bfa20, 0x1f667: 0x6d310420, + 0x1f668: 0x6c8f4420, 0x1f669: 0x6c8a2e20, 0x1f66a: 0x6c689220, 0x1f66b: 0x6c703020, + 0x1f66c: 0x6d242a20, 0x1f66d: 0x6c931820, 0x1f66e: 0x6c58b420, 0x1f66f: 0x6d2db020, + 0x1f670: 0x6d1c0c20, 0x1f671: 0x6c56da20, 0x1f672: 0x6c9b8020, 0x1f673: 0x6c49c020, + 0x1f674: 0x6cd6ba20, 0x1f675: 0x6c91bc20, 0x1f676: 0x6c6c5820, 0x1f677: 0x6c8d6820, + 0x1f678: 0x6c661220, 0x1f679: 0x6cfbd020, 0x1f67a: 0x6c25fe20, 0x1f67b: 0x6c662620, + 0x1f67c: 0x6c664020, 0x1f67d: 0x6d0d1a20, 0x1f67e: 0x6c25f420, 0x1f67f: 0x6c924c20, + // Block 0x7da, offset 0x1f680 + 0x1f680: 0x6d1eaa20, 0x1f681: 0x6c241620, 0x1f682: 0x6c614c20, 0x1f683: 0x6cad6820, + 0x1f684: 0x6c241820, 0x1f685: 0x6cad6c20, 0x1f686: 0x6d3b3220, 0x1f687: 0x6c758220, + 0x1f688: 0x6d3a8220, 0x1f689: 0x6c651020, 0x1f68a: 0x6c9c8420, 0x1f68b: 0x6c9c8620, + 0x1f68c: 0x6d22a820, 0x1f68d: 0x6c8ec820, 0x1f68e: 0x6c18f420, 0x1f68f: 0x6c758a20, + 0x1f690: 0x6c8bf620, 0x1f691: 0x6ca61a20, 0x1f692: 0x6cb69420, 0x1f693: 0x6c932c20, + 0x1f694: 0x6c703a20, 0x1f695: 0x6c758c20, 0x1f696: 0x6c6df020, 0x1f697: 0x6c871420, + 0x1f698: 0x6cfd9820, 0x1f699: 0x6cfbd220, 0x1f69a: 0x6c639020, 0x1f69b: 0x6c9ca620, + 0x1f69c: 0x6c875e20, 0x1f69d: 0x6ccf8e20, 0x1f69e: 0x6d2ef220, 0x1f69f: 0x6c8c1020, + 0x1f6a0: 0x6c6dfa20, 0x1f6a1: 0x6cb6b620, 0x1f6a2: 0x6c8de220, 0x1f6a3: 0x6d0d2820, + 0x1f6a4: 0x6c241a20, 0x1f6a5: 0x6c973220, 0x1f6a6: 0x6c972620, 0x1f6a7: 0x6c516220, + 0x1f6a8: 0x6c17a620, 0x1f6a9: 0x6c3d9c20, 0x1f6aa: 0x6c9e5e20, 0x1f6ab: 0x6c9e3e20, + 0x1f6ac: 0x6c3da820, 0x1f6ad: 0x6cad9c20, 0x1f6ae: 0x6cc27e20, 0x1f6af: 0x6cc14c20, + 0x1f6b0: 0x6ca1f420, 0x1f6b1: 0x6c3db020, 0x1f6b2: 0x6cfd2c20, 0x1f6b3: 0x6c7f3420, + 0x1f6b4: 0x6cc15820, 0x1f6b5: 0x6c9e6a20, 0x1f6b6: 0x6c1ca620, 0x1f6b7: 0x6c3c9420, + 0x1f6b8: 0x6c3d6e20, 0x1f6b9: 0x6cc14020, 0x1f6ba: 0x6c9e6420, 0x1f6bb: 0x6c966820, + 0x1f6bc: 0x6c99c420, 0x1f6bd: 0x6ca07020, 0x1f6be: 0x6c5af020, 0x1f6bf: 0x6ca1b820, + // Block 0x7db, offset 0x1f6c0 + 0x1f6c0: 0x6d407020, 0x1f6c1: 0x6caaae20, 0x1f6c2: 0x6c3bb420, 0x1f6c3: 0x6c59ce20, + 0x1f6c4: 0x6c59b820, 0x1f6c5: 0x6c6c5a20, 0x1f6c6: 0x6c49f620, 0x1f6c7: 0x6ce47420, + 0x1f6c8: 0x6ce81c20, 0x1f6c9: 0x6c538c20, 0x1f6ca: 0x6c57c820, 0x1f6cb: 0x6c7c0820, + 0x1f6cc: 0x6c539a20, 0x1f6cd: 0x6cd56020, 0x1f6ce: 0x6c843a20, 0x1f6cf: 0x6ca70a20, + 0x1f6d0: 0x6c1af220, 0x1f6d1: 0x6c521c20, 0x1f6d2: 0x6c521a20, 0x1f6d3: 0x6d187c20, + 0x1f6d4: 0x6cb9ce20, 0x1f6d5: 0x6c284820, 0x1f6d6: 0x6cf8ea20, 0x1f6d7: 0x6cea2e20, + 0x1f6d8: 0x6ca17020, 0x1f6d9: 0x6ca15020, 0x1f6da: 0x6cb9d220, 0x1f6db: 0x6c279e20, + 0x1f6dc: 0x6c1f8420, 0x1f6dd: 0x6d1ff620, 0x1f6de: 0x6c2d2e20, 0x1f6df: 0x6d143020, + 0x1f6e0: 0x6cfa1220, 0x1f6e1: 0x6d0df220, 0x1f6e2: 0x6cc15a20, 0x1f6e3: 0x6c9a7220, + 0x1f6e4: 0x6d0e0a20, 0x1f6e5: 0x6cbe9420, 0x1f6e6: 0x6d271220, 0x1f6e7: 0x6c84a220, + 0x1f6e8: 0x6c293820, 0x1f6e9: 0x6c31ec20, 0x1f6ea: 0x6c11e820, 0x1f6eb: 0x6d0c4820, + 0x1f6ec: 0x6d0d0820, 0x1f6ed: 0x6d0e1420, 0x1f6ee: 0x6c285820, 0x1f6ef: 0x6c01e420, + 0x1f6f0: 0x6d320a20, 0x1f6f1: 0x6c27ac20, 0x1f6f2: 0x6c11ea20, 0x1f6f3: 0x6d144020, + 0x1f6f4: 0x6c9a4620, 0x1f6f5: 0x6d2e4220, 0x1f6f6: 0x6d0e3420, 0x1f6f7: 0x6c320e20, + 0x1f6f8: 0x6c91b020, 0x1f6f9: 0x6d353420, 0x1f6fa: 0x6c3bc220, 0x1f6fb: 0x6c3f1020, + 0x1f6fc: 0x6c3f9820, 0x1f6fd: 0x6c9e3220, 0x1f6fe: 0x6c9e0a20, 0x1f6ff: 0x6d25bc20, + // Block 0x7dc, offset 0x1f700 + 0x1f700: 0x6c247220, 0x1f701: 0x6cc28420, 0x1f702: 0x6c178820, 0x1f703: 0x6cebfc20, + 0x1f704: 0x6d39e620, 0x1f705: 0x6d342a20, 0x1f706: 0x6c9bbe20, 0x1f707: 0x6c029420, + 0x1f708: 0x6c0cd020, 0x1f709: 0x6ceb6a20, 0x1f70a: 0x6c0ada20, 0x1f70b: 0x6d257220, + 0x1f70c: 0x6c176620, 0x1f70d: 0x6ceb5e20, 0x1f70e: 0x6c2f7420, 0x1f70f: 0x6c9d7420, + 0x1f710: 0x6ca3d020, 0x1f711: 0x6c2f7c20, 0x1f712: 0x6d3e8420, 0x1f713: 0x6c47a620, + 0x1f714: 0x6c47a820, 0x1f715: 0x6c302220, 0x1f716: 0x6c3ba420, 0x1f717: 0x6ce25020, + 0x1f718: 0x6d252820, 0x1f719: 0x6cb03a20, 0x1f71a: 0x6c168e20, 0x1f71b: 0x6c42f620, + 0x1f71c: 0x6cb80820, 0x1f71d: 0x6d252a20, 0x1f71e: 0x6ce0e220, 0x1f71f: 0x6ce29820, + 0x1f720: 0x6cd56620, 0x1f721: 0x6cd55220, 0x1f722: 0x6c3b9e20, 0x1f723: 0x6c3adc20, + 0x1f724: 0x6cf1be20, 0x1f725: 0x6c039620, 0x1f726: 0x6c2dea20, 0x1f727: 0x6ceb5a20, + 0x1f728: 0x6d37d420, 0x1f729: 0x6cc1ee20, 0x1f72a: 0x6cd11a20, 0x1f72b: 0x6cd28e20, + 0x1f72c: 0x6d205e20, 0x1f72d: 0x6cd29420, 0x1f72e: 0x6ce69e20, 0x1f72f: 0x6cf40c20, + 0x1f730: 0x6ca77220, 0x1f731: 0x6c6df620, 0x1f732: 0x6c5d1020, 0x1f733: 0x6c719820, + 0x1f734: 0x6d0e1e20, 0x1f735: 0x6ce88020, 0x1f736: 0x6cd85c20, 0x1f737: 0x6cf75420, + 0x1f738: 0x6cfd4e20, 0x1f739: 0x6d0e2820, 0x1f73a: 0x6c82ae20, 0x1f73b: 0x6c08a220, + 0x1f73c: 0x6d11da20, 0x1f73d: 0x6cc0a220, 0x1f73e: 0x6c4dc020, 0x1f73f: 0x6cf53a20, + // Block 0x7dd, offset 0x1f740 + 0x1f740: 0x6cf54220, 0x1f741: 0x6c53e620, 0x1f742: 0x6d028620, 0x1f743: 0x6c36f820, + 0x1f744: 0x6d2c1020, 0x1f745: 0x6d055c20, 0x1f746: 0x6cf27820, 0x1f747: 0x6d2c1220, + 0x1f748: 0x6ca9f820, 0x1f749: 0x6ca48c20, 0x1f74a: 0x6cb63420, 0x1f74b: 0x6d2d0020, + 0x1f74c: 0x6c62b620, 0x1f74d: 0x6d3ebe20, 0x1f74e: 0x6c5f9c20, 0x1f74f: 0x6c5fac20, + 0x1f750: 0x6cb56c20, 0x1f751: 0x6c5f2820, 0x1f752: 0x6c1bc220, 0x1f753: 0x6c193020, + 0x1f754: 0x6c193420, 0x1f755: 0x6c519220, 0x1f756: 0x6d0b3a20, 0x1f757: 0x6d1aae20, + 0x1f758: 0x6d026c20, 0x1f759: 0x6c05c020, 0x1f75a: 0x6d2b2620, 0x1f75b: 0x6d027620, + 0x1f75c: 0x6c148c20, 0x1f75d: 0x6c1aec20, 0x1f75e: 0x6d0e0c20, 0x1f75f: 0x6c71e020, + 0x1f760: 0x6ce5b220, 0x1f761: 0x6c8d9620, 0x1f762: 0x6c8d7820, 0x1f763: 0x6c1e6e20, + 0x1f764: 0x6cc33220, 0x1f765: 0x6d027e20, 0x1f766: 0x6c791420, 0x1f767: 0x6ca8ae20, + 0x1f768: 0x6c703e20, 0x1f769: 0x6d11e420, 0x1f76a: 0x6c21e820, 0x1f76b: 0x6c7dc820, + 0x1f76c: 0x6d22b220, 0x1f76d: 0x6c1efa20, 0x1f76e: 0x6d163020, 0x1f76f: 0x6ca61c20, + 0x1f770: 0x6d2b2a20, 0x1f771: 0x6d407820, 0x1f772: 0x6cc25820, 0x1f773: 0x6d281020, + 0x1f774: 0x6d0e3020, 0x1f775: 0x6cab6e20, 0x1f776: 0x6c36fe20, 0x1f777: 0x6cf33820, + 0x1f778: 0x6d198020, 0x1f779: 0x6c221a20, 0x1f77a: 0x6d407a20, 0x1f77b: 0x6c2d0020, + 0x1f77c: 0x6c1efe20, 0x1f77d: 0x6c6d7a20, 0x1f77e: 0x6d0bd420, 0x1f77f: 0x6c1b8020, + // Block 0x7de, offset 0x1f780 + 0x1f780: 0x6c192420, 0x1f781: 0x6c512220, 0x1f782: 0x6d1a6e20, 0x1f783: 0x6c71c620, + 0x1f784: 0x6c8d3220, 0x1f785: 0x6c05b620, 0x1f786: 0x6ce59620, 0x1f787: 0x6d3e7820, + 0x1f788: 0x6c790620, 0x1f789: 0x6d228620, 0x1f78a: 0x6c21d420, 0x1f78b: 0x6cc25220, + 0x1f78c: 0x6cf32620, 0x1f78d: 0x6c8fb020, 0x1f78e: 0x6cad1420, 0x1f78f: 0x6c45c020, + 0x1f790: 0x6cad1620, 0x1f791: 0x6d0e0e20, 0x1f792: 0x6c8ff220, 0x1f793: 0x6c904820, + 0x1f794: 0x6c45c820, 0x1f795: 0x6c76b820, 0x1f796: 0x6c26dc20, 0x1f797: 0x6c8e0020, + 0x1f798: 0x6c26de20, 0x1f799: 0x6c8f6620, 0x1f79a: 0x6c458620, 0x1f79b: 0x6c76a820, + 0x1f79c: 0x6c4a9620, 0x1f79d: 0x6cbfea20, 0x1f79e: 0x6c0cd620, 0x1f79f: 0x6c4a3820, + 0x1f7a0: 0x6d26f620, 0x1f7a1: 0x6c20f820, 0x1f7a2: 0x6c51aa20, 0x1f7a3: 0x6c753020, + 0x1f7a4: 0x6d013c20, 0x1f7a5: 0x6d249820, + // Block 0x7df, offset 0x1f7c0 + 0x1f7c3: 0x6ccd4220, + // Block 0x7e0, offset 0x1f800 + 0x1f800: 0x6cb6e820, 0x1f801: 0x6c452620, 0x1f802: 0x6c17ce20, 0x1f803: 0x6c642020, + 0x1f804: 0x6c573e20, 0x1f805: 0x6c202c20, 0x1f806: 0x6c71ea20, 0x1f807: 0x6c4a9620, + 0x1f808: 0x6c4a9620, 0x1f809: 0x6cb75220, 0x1f80a: 0x6c6c2e20, 0x1f80b: 0x6c7e6220, + 0x1f80c: 0x6ca3ac20, 0x1f80d: 0x6c804a20, 0x1f80e: 0x6c7f7820, 0x1f80f: 0x6c956220, + 0x1f810: 0x6c957a20, 0x1f811: 0x6c955820, 0x1f812: 0x6c95b820, 0x1f813: 0x6c957c20, + 0x1f814: 0x6c822620, 0x1f815: 0x6c95e820, 0x1f816: 0x6c81d020, 0x1f817: 0x6c95f620, + 0x1f818: 0x6c960a20, 0x1f819: 0x6c81d620, 0x1f81a: 0x6c962a20, 0x1f81b: 0x6c949a20, + 0x1f81c: 0x6c948c20, 0x1f81d: 0x6c7ff820, 0x1f81e: 0x6c808820, 0x1f81f: 0x6c7ff020, + 0x1f820: 0x6c948820, 0x1f821: 0x6c7f9a20, 0x1f822: 0x6c807c20, 0x1f823: 0x6c7fc420, + 0x1f824: 0x6c7fd820, 0x1f825: 0x6c7e3e20, 0x1f826: 0x6c7eaa20, 0x1f827: 0x6c7ec420, + 0x1f828: 0x6c80b420, 0x1f829: 0x6c80f820, 0x1f82a: 0x6c811820, 0x1f82b: 0x6c80ae20, + 0x1f82c: 0x6c80a220, 0x1f82d: 0x6c7ee220, 0x1f82e: 0x6c839020, 0x1f82f: 0x6c815620, + 0x1f830: 0x6c91da20, 0x1f831: 0x6c91f220, 0x1f832: 0x6c918420, 0x1f833: 0x6c915c20, + 0x1f834: 0x6c819a20, 0x1f835: 0x6c917820, 0x1f836: 0x6c91c420, 0x1f837: 0x6c927620, + 0x1f838: 0x6c933620, 0x1f839: 0x6c91d420, 0x1f83a: 0x6c934220, 0x1f83b: 0x6c926e20, + 0x1f83c: 0x6c925a20, 0x1f83d: 0x6c93ec20, 0x1f83e: 0x6c924820, 0x1f83f: 0x6c92de20, + // Block 0x7e1, offset 0x1f840 + 0x1f840: 0x6c924c20, 0x1f841: 0x6c952620, 0x1f842: 0x6c903e20, 0x1f843: 0x6ca9f020, + 0x1f844: 0x6c8ff420, 0x1f845: 0x6c8ff820, 0x1f846: 0x6c814220, 0x1f847: 0x6c82d220, + 0x1f848: 0x6c927420, 0x1f849: 0x6c823e20, 0x1f84a: 0x6c82e220, 0x1f84b: 0x6c93a620, + 0x1f84c: 0x6c90b020, 0x1f84d: 0x6c833020, 0x1f84e: 0x6c910e20, 0x1f84f: 0x6c833420, + 0x1f850: 0x6c93bc20, 0x1f851: 0x6c910220, 0x1f852: 0x6c823c20, 0x1f853: 0x6c81fe20, + 0x1f854: 0x6c8c2820, 0x1f855: 0x6c8cc420, 0x1f856: 0x6c837e20, 0x1f857: 0x6c8d3c20, + 0x1f858: 0x6c8cfe20, 0x1f859: 0x6c8cd820, 0x1f85a: 0x6c31f020, 0x1f85b: 0x6ca2d020, + 0x1f85c: 0x6c822620, 0x1f85d: 0x6cab0e20, 0x1f85e: 0x6c27b220, 0x1f85f: 0x6ca91020, + 0x1f860: 0x6caa5e20, 0x1f861: 0x6c93d620, 0x1f862: 0x6d176620, 0x1f863: 0x6c06c620, + 0x1f864: 0x6cac7620, 0x1f865: 0x6c0b8220, 0x1f866: 0x6c3ff020, 0x1f867: 0x6c105620, + 0x1f868: 0x6c9d2620, 0x1f869: 0x6cd60020, 0x1f86a: 0x6cdd5a20, 0x1f86b: 0x6c115e20, + 0x1f86c: 0x6cc9c620, 0x1f86d: 0x6cd12c20, 0x1f86e: 0x6d12f620, 0x1f86f: 0x6cd76a20, + 0x1f870: 0x6ccbda20, 0x1f871: 0x6c18a020, 0x1f872: 0x6c189c20, 0x1f873: 0x6cd41020, + 0x1f874: 0x6cc91420, 0x1f875: 0x6c361020, 0x1f876: 0x6c361220, 0x1f877: 0x6c89aa20, + 0x1f878: 0x6c898820, 0x1f879: 0x6c894a20, 0x1f87a: 0x6c894c20, 0x1f87b: 0x6c897420, + 0x1f87c: 0x6c894620, 0x1f87d: 0x6c89c820, 0x1f87e: 0x6c89c020, 0x1f87f: 0x6c867020, + // Block 0x7e2, offset 0x1f880 + 0x1f880: 0x6c937620, 0x1f881: 0x6caa6e20, 0x1f882: 0x6c916e20, 0x1f883: 0x6c938a20, + 0x1f884: 0x6c940e20, 0x1f885: 0x6c870420, 0x1f886: 0x6c935a20, 0x1f887: 0x6c84ee20, + 0x1f888: 0x6c871420, 0x1f889: 0x6c843a20, 0x1f88a: 0x6c855c20, 0x1f88b: 0x6c867820, + 0x1f88c: 0x6c867c20, 0x1f88d: 0x6c878420, 0x1f88e: 0x6ca6f220, 0x1f88f: 0x6c883620, + 0x1f890: 0x6c893820, 0x1f891: 0x6ca73420, 0x1f892: 0x6c881620, 0x1f893: 0x6c890620, + 0x1f894: 0x6c88c420, 0x1f895: 0x6ca6f620, 0x1f896: 0x6c891220, 0x1f897: 0x6c886820, + 0x1f898: 0x6ca73a20, 0x1f899: 0x6c881820, 0x1f89a: 0x6c87fa20, 0x1f89b: 0x6c892220, + 0x1f89c: 0x6c8abc20, 0x1f89d: 0x6c8abe20, 0x1f89e: 0x6d0e4220, 0x1f89f: 0x6c8af020, + 0x1f8a0: 0x6c8b1020, 0x1f8a1: 0x6cd76a20, 0x1f8a2: 0x6c881020, 0x1f8a3: 0x6ca75a20, + 0x1f8a4: 0x6ca72020, 0x1f8a5: 0x6c892020, 0x1f8a6: 0x6c888420, 0x1f8a7: 0x6c8b5420, + 0x1f8a8: 0x6c8e1820, 0x1f8a9: 0x6c8c9e20, 0x1f8aa: 0x6ca91020, 0x1f8ab: 0x6c8e1420, + 0x1f8ac: 0x6c87f420, 0x1f8ad: 0x6c8cbe20, 0x1f8ae: 0x6d1c8a20, 0x1f8af: 0x6c8cf620, + 0x1f8b0: 0x6c8cfa20, 0x1f8b1: 0x6c8d2420, 0x1f8b2: 0x6c8d2a20, 0x1f8b3: 0x6c8db620, + 0x1f8b4: 0x6c8e1220, 0x1f8b5: 0x6c858620, 0x1f8b6: 0x6c853820, 0x1f8b7: 0x6c854620, + 0x1f8b8: 0x6c86b420, 0x1f8b9: 0x6c363420, 0x1f8ba: 0x6c823620, 0x1f8bb: 0x6c89ec20, + 0x1f8bc: 0x6c8a0620, 0x1f8bd: 0x6ca7d020, 0x1f8be: 0x6c8a9420, 0x1f8bf: 0x6c822620, + // Block 0x7e3, offset 0x1f8c0 + 0x1f8c0: 0x6c8a1a20, 0x1f8c1: 0x6c8a2620, 0x1f8c2: 0x6c8a7220, 0x1f8c3: 0x6c8a1620, + 0x1f8c4: 0x6c8fb020, 0x1f8c5: 0x6d275420, 0x1f8c6: 0x6cc84c20, 0x1f8c7: 0x6c8e8020, + 0x1f8c8: 0x6c1e2020, 0x1f8c9: 0x6c8efa20, 0x1f8ca: 0x6c8e4a20, 0x1f8cb: 0x6c8e3620, + 0x1f8cc: 0x6c8e5020, 0x1f8cd: 0x6c8e4c20, 0x1f8ce: 0x6c8e5c20, 0x1f8cf: 0x6ca99020, + 0x1f8d0: 0x6c835420, 0x1f8d1: 0x6c8f2420, 0x1f8d2: 0x6c92a020, 0x1f8d3: 0x6c923020, + 0x1f8d4: 0x6c94e420, 0x1f8d5: 0x6c94f020, 0x1f8d6: 0x6c94f420, 0x1f8d7: 0x6c950e20, + 0x1f8d8: 0x6c93d020, 0x1f8d9: 0x6c862e20, 0x1f8da: 0x6c85ca20, 0x1f8db: 0x6c93d620, + 0x1f8dc: 0x6c8f9220, 0x1f8dd: 0x6c857620, 0x1f8de: 0x6c856e20, 0x1f8df: 0x6c93ae20, + 0x1f8e0: 0x6d16ba20, 0x1f8e1: 0x6c87d820, 0x1f8e2: 0x6c83bc20, 0x1f8e3: 0x6ca5c020, + 0x1f8e4: 0x6c851420, 0x1f8e5: 0x6c861220, 0x1f8e6: 0x6c844a20, 0x1f8e7: 0x6c852220, + 0x1f8e8: 0x6c87e220, 0x1f8e9: 0x6c84fc20, 0x1f8ea: 0x6c847e20, 0x1f8eb: 0x6ca68c20, + 0x1f8ec: 0x6ca6ac20, 0x1f8ed: 0x6c8c4420, 0x1f8ee: 0x6c8bde20, 0x1f8ef: 0x6c8be020, + 0x1f8f0: 0x6c8c7a20, 0x1f8f1: 0x6c8bca20, 0x1f8f2: 0x6c8c0c20, 0x1f8f3: 0x6c8c1020, + 0x1f8f4: 0x6c8ba020, 0x1f8f5: 0x6c8bb020, 0x1f8f6: 0x6c8bea20, 0x1f8f7: 0x6c856c20, + 0x1f8f8: 0x6c85f620, 0x1f8f9: 0x6c85f820, 0x1f8fa: 0x6d3c3420, 0x1f8fb: 0x6d358c20, + 0x1f8fc: 0x6cd42220, 0x1f8fd: 0x6cd03620, 0x1f8fe: 0x6c13d020, 0x1f8ff: 0x6c22b220, + // Block 0x7e4, offset 0x1f900 + 0x1f900: 0x6cbc9020, 0x1f901: 0x6c324420, 0x1f902: 0x6cde2e20, 0x1f903: 0x6ce13620, + 0x1f904: 0x6d2d1820, 0x1f905: 0x6c306420, 0x1f906: 0x6c066220, 0x1f907: 0x6c3efc20, + 0x1f908: 0x6d03ba20, 0x1f909: 0x6c67d620, 0x1f90a: 0x6c665220, 0x1f90b: 0x6c7e0420, + 0x1f90c: 0x6cf49020, 0x1f90d: 0x6c56a220, 0x1f90e: 0x43f41c20, 0x1f90f: 0x43f41e20, + 0x1f910: 0x6d37f420, 0x1f911: 0x43f42220, 0x1f912: 0x6cbe7a20, 0x1f913: 0x43f42620, + 0x1f914: 0x43f42820, 0x1f915: 0x6cf6b620, 0x1f916: 0x6d399820, 0x1f917: 0x6d173820, + 0x1f918: 0x6c84f420, 0x1f919: 0x6cd03a20, 0x1f91a: 0x6cfdbc20, 0x1f91b: 0x6c3e9c20, + 0x1f91c: 0x6c6e9220, 0x1f91d: 0x6c6dcc20, 0x1f91e: 0x6d221c20, 0x1f91f: 0x43f43e20, + 0x1f920: 0x6cc0c220, 0x1f921: 0x43f44220, 0x1f922: 0x6d39c620, 0x1f923: 0x43f44620, + 0x1f924: 0x43f44820, 0x1f925: 0x6d178420, 0x1f926: 0x6c30a620, 0x1f927: 0x43f44e20, + 0x1f928: 0x43f45020, 0x1f929: 0x43f45220, 0x1f92a: 0x6c395c20, 0x1f92b: 0x6cd8d420, + 0x1f92c: 0x6c496820, 0x1f92d: 0x6c520c20, 0x1f92e: 0x6c80a420, 0x1f92f: 0x6c868820, + 0x1f930: 0x6cf43220, 0x1f931: 0x6ccbb820, 0x1f932: 0x6c9dfe20, 0x1f933: 0x6c9e0c20, + 0x1f934: 0x6cbd7c20, 0x1f935: 0x6c068e20, 0x1f936: 0x6c509c20, 0x1f937: 0x6ce0a020, + 0x1f938: 0x6cb7ce20, 0x1f939: 0x6cb2ec20, 0x1f93a: 0x6ca16020, 0x1f93b: 0x6c135420, + 0x1f93c: 0x6c17fa20, 0x1f93d: 0x6c5b4c20, 0x1f93e: 0x6c765820, 0x1f93f: 0x6d2b8a20, + // Block 0x7e5, offset 0x1f940 + 0x1f940: 0x6c1a5420, 0x1f941: 0x6c9fa820, 0x1f942: 0x6c61a820, 0x1f943: 0x6cd55a20, + 0x1f944: 0x6c99ec20, 0x1f945: 0x6c4d3a20, 0x1f946: 0x6d3a6420, 0x1f947: 0x6c4ee620, + 0x1f948: 0x6d3a6e20, 0x1f949: 0x6d2ff420, 0x1f94a: 0x6d423c20, 0x1f94b: 0x6c06b020, + 0x1f94c: 0x6ccf3620, 0x1f94d: 0x6d34f820, 0x1f94e: 0x6cb58a20, 0x1f94f: 0x6d203020, + 0x1f950: 0x6d411420, 0x1f951: 0x6d3ac620, 0x1f952: 0x6c5dd420, 0x1f953: 0x6d316e20, + 0x1f954: 0x6c47c420, 0x1f955: 0x6ce84420, 0x1f956: 0x6c6af220, 0x1f957: 0x6c891220, + 0x1f958: 0x6c6d5220, 0x1f959: 0x6c38ca20, 0x1f95a: 0x6cd56220, 0x1f95b: 0x6d30d220, + 0x1f95c: 0x6c1e4020, 0x1f95d: 0x6c12c020, 0x1f95e: 0x6c12c020, 0x1f95f: 0x6d311420, + 0x1f960: 0x6c51d620, 0x1f961: 0x6cd36c20, 0x1f962: 0x6d134620, 0x1f963: 0x6c6cc220, + 0x1f964: 0x6c0d4a20, 0x1f965: 0x6d2bb620, 0x1f966: 0x6c21a420, 0x1f967: 0x6d178420, + 0x1f968: 0x6ca41420, 0x1f969: 0x6cfe0a20, 0x1f96a: 0x6cb21420, 0x1f96b: 0x6c5baa20, + 0x1f96c: 0x4885dc20, 0x1f96d: 0x6c496420, + 0x1f970: 0x6c0e0820, 0x1f971: 0x6c7bdc20, 0x1f972: 0x6cc2b220, 0x1f973: 0x6d03c620, + 0x1f974: 0x6c1ca820, 0x1f975: 0x6c627020, 0x1f976: 0x6d1e1820, 0x1f977: 0x6cce9420, + 0x1f978: 0x6c509c20, 0x1f979: 0x6ce21620, 0x1f97a: 0x6c5bbc20, 0x1f97b: 0x6cec3420, + 0x1f97c: 0x6d37f420, 0x1f97d: 0x6c3b8420, 0x1f97e: 0x6d0d4620, 0x1f97f: 0x6c077c20, + // Block 0x7e6, offset 0x1f980 + 0x1f980: 0x6c097420, 0x1f981: 0x6c226820, 0x1f982: 0x6c025020, 0x1f983: 0x6d182220, + 0x1f984: 0x6c112620, 0x1f985: 0x6d110c20, 0x1f986: 0x6cee0e20, 0x1f987: 0x6cd0ac20, + 0x1f988: 0x6d236a20, 0x1f989: 0x6d2b8a20, 0x1f98a: 0x6c02d820, 0x1f98b: 0x6c1a5420, + 0x1f98c: 0x6c279420, 0x1f98d: 0x6d212620, 0x1f98e: 0x6cd9b020, 0x1f98f: 0x6c0de620, + 0x1f990: 0x6c024020, 0x1f991: 0x6cbe7a20, 0x1f992: 0x6c80f820, 0x1f993: 0x6cee5220, + 0x1f994: 0x6d2f2220, 0x1f995: 0x6c271220, 0x1f996: 0x6ccbda20, 0x1f997: 0x6c8e4a20, + 0x1f998: 0x6d1a7020, 0x1f999: 0x6d3e4020, 0x1f99a: 0x6c4ee620, 0x1f99b: 0x6c6eb420, + 0x1f99c: 0x6d3a6e20, 0x1f99d: 0x6cbc0220, 0x1f99e: 0x6c74c820, 0x1f99f: 0x6c391620, + 0x1f9a0: 0x6d399820, 0x1f9a1: 0x6d325020, 0x1f9a2: 0x6c225020, 0x1f9a3: 0x6c578420, + 0x1f9a4: 0x6c492220, 0x1f9a5: 0x6cf16020, 0x1f9a6: 0x6d173820, 0x1f9a7: 0x6cd15e20, + 0x1f9a8: 0x6d344020, 0x1f9a9: 0x6c736420, 0x1f9aa: 0x6d311220, 0x1f9ab: 0x6ce4ba20, + 0x1f9ac: 0x6ce5cc20, 0x1f9ad: 0x6c6af220, 0x1f9ae: 0x6c832420, 0x1f9af: 0x6ce1c820, + 0x1f9b0: 0x6c891220, 0x1f9b1: 0x6cb2ac20, 0x1f9b2: 0x6d30d220, 0x1f9b3: 0x6c598420, + 0x1f9b4: 0x6c573420, 0x1f9b5: 0x6d276220, 0x1f9b6: 0x6cbb4c20, 0x1f9b7: 0x6c407e20, + 0x1f9b8: 0x6cd36c20, 0x1f9b9: 0x6c2e3820, 0x1f9ba: 0x6d39c620, 0x1f9bb: 0x6cbeb220, + 0x1f9bc: 0x6d134620, 0x1f9bd: 0x6cab0e20, 0x1f9be: 0x6d23f620, 0x1f9bf: 0x6c6cc220, + // Block 0x7e7, offset 0x1f9c0 + 0x1f9c0: 0x6c0bdc20, 0x1f9c1: 0x6d2bb620, 0x1f9c2: 0x6cd50820, 0x1f9c3: 0x6c1b5020, + 0x1f9c4: 0x6cd9e620, 0x1f9c5: 0x6d03f420, 0x1f9c6: 0x6d3a6220, 0x1f9c7: 0x6ca41420, + 0x1f9c8: 0x6c6e9220, 0x1f9c9: 0x6c046220, 0x1f9ca: 0x6cfe0a20, 0x1f9cb: 0x6c35b420, + 0x1f9cc: 0x6cb21420, 0x1f9cd: 0x6d320420, 0x1f9ce: 0x6c4a9620, 0x1f9cf: 0x48509420, + 0x1f9d0: 0x48508820, 0x1f9d1: 0x4867aa20, 0x1f9d2: 0x6c513820, 0x1f9d3: 0x6d008620, + 0x1f9d4: 0x6c6ad220, 0x1f9d5: 0x48a49220, 0x1f9d6: 0x6cba2c20, 0x1f9d7: 0x6c084620, + 0x1f9d8: 0x6c36f820, 0x1f9d9: 0x6cad1420, + // Block 0x7e8, offset 0x1fa00 + 0x1fa00: 0xf0001c1c, 0x1fa01: 0xf0001c1c, 0x1fa02: 0x00658c9c, + 0x1fa10: 0x2cd43683, 0x1fa11: 0x2d3f2883, 0x1fa12: 0x2cd6a083, 0x1fa13: 0xf0001c1c, + 0x1fa14: 0x2c37b483, 0x1fa15: 0x2c341683, 0x1fa16: 0x2c6b9883, 0x1fa17: 0x2ce45483, + 0x1fa18: 0x2c682283, 0x1fa19: 0x2d1d3483, 0x1fa1a: 0x2cf3c883, 0x1fa1b: 0x2c8a9483, + 0x1fa1c: 0x2cb97883, 0x1fa1d: 0x2c546483, 0x1fa1e: 0x2d292683, 0x1fa1f: 0x2d02dc83, + 0x1fa20: 0x2c1e5483, 0x1fa21: 0x2d37b683, 0x1fa22: 0x2cd0d283, 0x1fa23: 0x2c395083, + 0x1fa24: 0x2cd0dc83, 0x1fa25: 0x2c20b483, 0x1fa26: 0x2d0db483, 0x1fa27: 0x2ce7e683, + 0x1fa28: 0x2c103683, 0x1fa29: 0x2d13b683, 0x1fa2a: 0x2cc9f283, 0x1fa2b: 0x2d1f4083, + 0x1fa2c: 0x2d426083, 0x1fa2d: 0x2d378283, 0x1fa2e: 0x2d200883, 0x1fa2f: 0x2d350083, + 0x1fa30: 0x2d407e83, 0x1fa31: 0x2c26e083, 0x1fa32: 0x2c6d1a83, 0x1fa33: 0x2c796883, + 0x1fa34: 0x2c50b683, 0x1fa35: 0x2c97ba83, 0x1fa36: 0x2d1f9883, 0x1fa37: 0x2d266883, + 0x1fa38: 0x2ccf9a83, 0x1fa39: 0x2c438c83, 0x1fa3a: 0x2d1c6283, + // Block 0x7e9, offset 0x1fa40 + 0x1fa40: 0xe000b460, 0x1fa41: 0xe000b474, 0x1fa42: 0xe000b470, 0x1fa43: 0xe000b458, + 0x1fa44: 0xe000b46c, 0x1fa45: 0xe000b464, 0x1fa46: 0xe000b468, 0x1fa47: 0xe000b478, + 0x1fa48: 0xe000b45c, + 0x1fa50: 0x2c2a9083, 0x1fa51: 0x2c785283, + // Block 0x7ea, offset 0x1fa80 + 0x1fa80: 0x6c508820, 0x1fa81: 0x6cb4c820, 0x1fa83: 0x6cbc8c20, + 0x1fa85: 0x6c4d4c20, + 0x1fa89: 0x6cbf9020, 0x1fa8a: 0x6c126420, + 0x1fa8d: 0x6cd2ec20, + 0x1fa93: 0x6cd7ba20, + 0x1fa94: 0x6c73ca20, + 0x1fa9b: 0x6d22c020, + 0x1fa9d: 0x6c796620, + 0x1faa2: 0x6d3dfc20, + 0x1faa6: 0x6d03be20, + 0x1fab1: 0x6ca1fc20, + 0x1fab7: 0x6c5e9420, + 0x1fab8: 0x6d12d220, 0x1fab9: 0x6c755e20, + 0x1fabc: 0x6cb97c20, 0x1fabd: 0x6c922420, + // Block 0x7eb, offset 0x1fac0 + 0x1fac9: 0x6c1e5e20, + 0x1fad7: 0x6cd3d420, + 0x1fae0: 0x6cbd0220, + 0x1fae5: 0x6c40ce20, + 0x1faed: 0x6cb58e20, + 0x1faf7: 0x6c15c420, + // Block 0x7ec, offset 0x1fb00 + 0x1fb04: 0x6c582a20, 0x1fb06: 0x6d163620, 0x1fb07: 0x6d425e20, + 0x1fb08: 0x6c6a4a20, + 0x1fb11: 0x6d404420, + 0x1fb14: 0x6d3ed420, + 0x1fb1f: 0x6c6c2020, + 0x1fb22: 0x6cac1620, + 0x1fb24: 0x6c32ee20, 0x1fb25: 0x6c238220, 0x1fb27: 0x6cd08e20, + 0x1fb38: 0x6c59aa20, + // Block 0x7ed, offset 0x1fb40 + 0x1fb4a: 0x6d1abe20, + 0x1fb4c: 0x6c4bb820, + 0x1fb56: 0x6c6f3a20, + 0x1fb6b: 0x6ccfa220, + 0x1fb7a: 0x6c6fe220, + // Block 0x7ee, offset 0x1fb80 + 0x1fb85: 0x6d130c20, + 0x1fb89: 0x6c308c20, + 0x1fb8c: 0x6c73c020, 0x1fb8d: 0x6c6a4c20, 0x1fb8f: 0x6c2df020, + 0x1fb91: 0x6c73c220, 0x1fb92: 0x6c20ba20, + 0x1fb96: 0x6c8c9820, + 0x1fb9a: 0x6ce63e20, + 0x1fba3: 0x6c44aa20, + 0x1fbae: 0x6d0b7e20, + 0x1fbb1: 0x6d148020, + 0x1fbbf: 0x6cef1c20, + // Block 0x7ef, offset 0x1fbc0 + 0x1fbc2: 0x6c6a5820, + 0x1fbcc: 0x6d146a20, + 0x1fbd7: 0x6c2f3220, + 0x1fbda: 0x6cb59a20, + 0x1fbec: 0x6c05b020, + 0x1fbf1: 0x6d01a620, + 0x1fbf9: 0x6d2f3220, + // Block 0x7f0, offset 0x1fc00 + 0x1fc0c: 0x6d1daa20, + 0x1fc10: 0x6d073820, + 0x1fc19: 0x6c2f3820, 0x1fc1b: 0x6c280820, + 0x1fc1f: 0x6cf06220, + 0x1fc23: 0x6c488620, + 0x1fc29: 0x6c391220, + 0x1fc2e: 0x6ca0ba20, + 0x1fc31: 0x6cf56220, 0x1fc32: 0x6d0d3220, + 0x1fc35: 0x6ca5b820, 0x1fc36: 0x6c286020, + // Block 0x7f1, offset 0x1fc40 + 0x1fc4b: 0x6c281a20, + 0x1fc4f: 0x6ce1ac20, + 0x1fc52: 0x6c455620, + 0x1fc57: 0x6c7abc20, + 0x1fc58: 0x6c1f0420, + 0x1fc6f: 0x6cc25e20, + 0x1fc71: 0x6ca0be20, 0x1fc73: 0x6cd19220, + 0x1fc75: 0x6c41c620, 0x1fc77: 0x6cd0d820, + // Block 0x7f2, offset 0x1fc80 + 0x1fc81: 0x6ceaa020, + 0x1fc85: 0x6cd42c20, + 0x1fc8a: 0x6ca7e620, + 0x1fca4: 0x6d281a20, 0x1fca5: 0x6c489220, + 0x1fcac: 0x6cfe7e20, 0x1fcad: 0x6c814420, + 0x1fcb0: 0x6c286e20, 0x1fcb1: 0x6cdd0620, + 0x1fcb5: 0x6c988420, 0x1fcb6: 0x6d148220, + 0x1fcb8: 0x6ce26e20, 0x1fcba: 0x6c094020, + // Block 0x7f3, offset 0x1fcc0 + 0x1fcc2: 0x6cde3020, + 0x1fcd7: 0x6c95e420, + 0x1fce2: 0x6cf7d220, 0x1fce3: 0x6c5cb820, + 0x1fce4: 0x6c268e20, 0x1fce7: 0x6c722420, + 0x1fce9: 0x6c318c20, + 0x1fcec: 0x6c017c20, + // Block 0x7f4, offset 0x1fd00 + 0x1fd09: 0x6c9a8820, + 0x1fd0c: 0x6cc46c20, 0x1fd0e: 0x6c003820, 0x1fd0f: 0x6d22ec20, + 0x1fd12: 0x6c666620, + 0x1fd14: 0x6cb76620, + 0x1fd1f: 0x6c9fa220, + 0x1fd23: 0x6d391620, + 0x1fd24: 0x6d35ac20, 0x1fd25: 0x6d37ea20, 0x1fd26: 0x6ca4e220, 0x1fd27: 0x6c0e1a20, + 0x1fd29: 0x6d3bc020, 0x1fd2a: 0x6cd5be20, 0x1fd2b: 0x6d0a8420, + 0x1fd2c: 0x6c741e20, 0x1fd2d: 0x6cb9fe20, + 0x1fd30: 0x6c489a20, 0x1fd32: 0x6ce85220, + 0x1fd36: 0x6d1d3820, 0x1fd37: 0x6d35d620, + 0x1fd3e: 0x6c7c6620, + // Block 0x7f5, offset 0x1fd40 + 0x1fd46: 0x6c192620, + 0x1fd56: 0x6c88ec20, 0x1fd57: 0x6d0ae620, + 0x1fd5c: 0x6c4ce820, 0x1fd5d: 0x6c9e8e20, 0x1fd5e: 0x6ccf0e20, 0x1fd5f: 0x6d223620, + 0x1fd61: 0x6cd8b020, 0x1fd62: 0x6cda1220, + 0x1fd64: 0x6d35d820, 0x1fd67: 0x6cbc7c20, + 0x1fd69: 0x6c3fde20, + 0x1fd6c: 0x6c710a20, 0x1fd6d: 0x6c071e20, 0x1fd6f: 0x6c099220, + 0x1fd72: 0x6cdd6220, + 0x1fd75: 0x6cba0820, 0x1fd76: 0x6ca03220, 0x1fd77: 0x6c15b620, + 0x1fd7a: 0x6ccaa820, 0x1fd7b: 0x6c5ec020, + // Block 0x7f6, offset 0x1fd80 + 0x1fd95: 0x6c461620, 0x1fd96: 0x6cbf1e20, + 0x1fd9a: 0x6cc73820, + 0x1fd9e: 0x6cda1a20, 0x1fd9f: 0x6cda1e20, + 0x1fda0: 0x6d10f420, + 0x1fdaa: 0x6c1d6a20, + 0x1fdad: 0x6cd66620, 0x1fdae: 0x6d2ffa20, 0x1fdaf: 0x6c862420, + 0x1fdb0: 0x6c413e20, 0x1fdb1: 0x6cdbc620, 0x1fdb2: 0x6d2d7c20, + 0x1fdb4: 0x6d3c4220, + 0x1fdbd: 0x6c400820, + // Block 0x7f7, offset 0x1fdc0 + 0x1fdc3: 0x6c5ee020, + 0x1fdc4: 0x6c30b220, + 0x1fdd7: 0x6c5bd020, + 0x1fdda: 0x6c65a420, 0x1fddb: 0x6d0d9c20, + 0x1fddc: 0x6d364a20, + 0x1fde8: 0x6c9a5c20, 0x1fde9: 0x6d120e20, 0x1fdea: 0x6c2b3220, 0x1fdeb: 0x6d150e20, + 0x1fdef: 0x6c0cf220, + 0x1fdf2: 0x6cc1a220, 0x1fdf3: 0x6d181a20, + 0x1fdf5: 0x6d105420, + 0x1fdf9: 0x6d2c3e20, + 0x1fdfd: 0x6ccc6020, + // Block 0x7f8, offset 0x1fe00 + 0x1fe19: 0x6c7f1820, + 0x1fe2e: 0x6c746e20, + 0x1fe30: 0x6cb50620, 0x1fe33: 0x6d216a20, + 0x1fe36: 0x6d291820, 0x1fe37: 0x6cc98220, + 0x1fe38: 0x6ccb3a20, 0x1fe3b: 0x6c340420, + 0x1fe3f: 0x6c6b9e20, + // Block 0x7f9, offset 0x1fe40 + 0x1fe40: 0x6c782020, 0x1fe43: 0x6d265420, + 0x1fe47: 0x6c65ca20, + 0x1fe48: 0x6d113220, + 0x1fe53: 0x6cfaca20, + 0x1fe55: 0x6d000220, 0x1fe56: 0x6cbb9620, + 0x1fe5a: 0x6d23b820, 0x1fe5b: 0x6cc1ae20, + 0x1fe61: 0x6cfac820, 0x1fe62: 0x6c962020, + 0x1fe64: 0x6c4a0a20, 0x1fe67: 0x6c198620, + 0x1fe68: 0x6c209620, 0x1fe69: 0x6d155620, 0x1fe6b: 0x6d333020, + 0x1fe6d: 0x6d403020, 0x1fe6e: 0x6c335c20, + 0x1fe70: 0x6d2d3420, + 0x1fe7f: 0x6c3a6e20, + // Block 0x7fa, offset 0x1fe80 + 0x1fe80: 0x6d155820, 0x1fe81: 0x6c9b4420, + 0x1fe88: 0x6c0b0a20, 0x1fe89: 0x6c6b4020, 0x1fe8a: 0x6cd61820, 0x1fe8b: 0x6c8a2220, + 0x1fe8c: 0x6c08fa20, 0x1fe8d: 0x6cda7620, + 0x1fe91: 0x6c2ca220, + 0x1fea1: 0x6c076220, 0x1fea2: 0x6cf21220, + 0x1fea7: 0x6c9b6a20, + 0x1fea9: 0x6c15ea20, + 0x1feb5: 0x6c29f620, + 0x1feba: 0x6cb21c20, 0x1febb: 0x6c660820, + 0x1febc: 0x6c8c7420, 0x1febd: 0x6c4b9220, 0x1febe: 0x6cb54620, 0x1febf: 0x6c52dc20, + // Block 0x7fb, offset 0x1fec0 + 0x1fec3: 0x6c60e820, + 0x1fec4: 0x6d024e20, 0x1fec5: 0x6d330820, 0x1fec6: 0x6c15fa20, + 0x1fed0: 0x6d116c20, 0x1fed1: 0x6c160a20, + 0x1fed8: 0x6c2cee20, 0x1fed9: 0x6c1d6020, 0x1feda: 0x6ca56220, 0x1fedb: 0x6ca56420, + 0x1fede: 0x6d2d5420, 0x1fedf: 0x6c0b1e20, + 0x1fee1: 0x6c161020, + 0x1feea: 0x6cff5a20, + 0x1feef: 0x6c248620, + 0x1fef0: 0x6d02f620, 0x1fef1: 0x6c6e4420, 0x1fef2: 0x6cb96620, + 0x1fef4: 0x6cbe6820, + 0x1fef9: 0x6c475220, + // Block 0x7fc, offset 0x1ff00 + 0x1ff04: 0x6cf4b420, + 0x1ff1c: 0x6d25e420, 0x1ff1d: 0x6c0dde20, + 0x1ff22: 0x6cecde20, + 0x1ff30: 0x6ca7a620, + 0x1ff35: 0x6c891020, + 0x1ff38: 0x6cc53e20, + 0x1ff3e: 0x6c396e20, 0x1ff3f: 0x6c2b9420, + // Block 0x7fd, offset 0x1ff40 + 0x1ff4a: 0x6c5af820, 0x1ff4b: 0x6d190620, + 0x1ff4c: 0x6cfbbc20, + 0x1ff56: 0x6c800420, 0x1ff57: 0x6c40a020, + 0x1ff59: 0x6d04ae20, + 0x1ff5c: 0x6c897e20, 0x1ff5d: 0x6ce1a620, 0x1ff5e: 0x6c5fba20, + 0x1ff62: 0x6c6ba620, 0x1ff63: 0x6d2c1a20, + 0x1ff64: 0x6cd19420, + 0x1ff6a: 0x6cb59220, 0x1ff6b: 0x6c0b2c20, + 0x1ff6d: 0x6c802220, 0x1ff6e: 0x6c8c1a20, + 0x1ff76: 0x6d364c20, 0x1ff77: 0x6c09bc20, + 0x1ff78: 0x6cd17020, + 0x1ff7d: 0x6cd17a20, 0x1ff7f: 0x6cbdbc20, + // Block 0x7fe, offset 0x1ff80 + 0x1ff82: 0x6c0be620, 0x1ff83: 0x6cf55e20, + 0x1ff89: 0x6c733a20, 0x1ff8b: 0x6c5e8420, + 0x1ff8d: 0x6cf57620, 0x1ff8e: 0x6cbdc420, + 0x1ff91: 0x6c4d5620, + 0x1ff95: 0x6c94e220, + 0x1ffa0: 0x6d26b420, + 0x1ffa8: 0x6c880a20, + 0x1ffaf: 0x6c048e20, + 0x1ffb2: 0x6c526820, + 0x1ffb6: 0x6cb54020, + 0x1ffba: 0x6cb93820, 0x1ffbb: 0x6d337820, + 0x1ffbc: 0x6c991a20, + // Block 0x7ff, offset 0x1ffc0 + 0x1ffc1: 0x6c238020, + 0x1ffc4: 0x6ca30020, + 0x1ffca: 0x6ce6a820, + 0x1ffcc: 0x6d3f6e20, + 0x1ffd5: 0x6c6ed420, 0x1ffd6: 0x6d2f8620, + 0x1ffdf: 0x6ca71c20, + 0x1ffe0: 0x6c19e420, 0x1ffe3: 0x6cb86620, + 0x1ffe6: 0x6d236420, 0x1ffe7: 0x6c690020, + 0x1ffed: 0x6d2fda20, + 0x1fff3: 0x6c2b5020, + 0x1fff4: 0x6c6f3c20, + 0x1fff8: 0x6cdc0a20, 0x1fffb: 0x6d108220, + 0x1ffff: 0x6cedbe20, + // Block 0x800, offset 0x20000 + 0x20002: 0x6c89d820, + 0x20004: 0x6ce71220, 0x20006: 0x6c9bfc20, + 0x2000b: 0x6d1faa20, + 0x20013: 0x6cd7e020, + 0x2001b: 0x6c910820, + 0x2001f: 0x6d19f820, + 0x20025: 0x6c1d4420, + 0x2002b: 0x6c420020, + 0x2002c: 0x6c6f3820, + 0x20036: 0x6cbdf820, 0x20037: 0x6c6ef220, + 0x20039: 0x6d006e20, + // Block 0x801, offset 0x20040 + 0x20042: 0x6c51b820, + 0x20046: 0x6ce1ae20, + 0x20048: 0x6cc01220, 0x20049: 0x6d007420, 0x2004a: 0x6c6e5420, 0x2004b: 0x6ca71620, + 0x2004c: 0x6c6e5620, 0x2004f: 0x6c5fea20, + 0x20058: 0x6ce4de20, 0x2005a: 0x6c252220, 0x2005b: 0x6c2e7c20, + 0x2005d: 0x6cbea020, + 0x20065: 0x6cb2e620, 0x20066: 0x6cb29620, + 0x20068: 0x6c2e9020, 0x20069: 0x6c910420, + 0x20073: 0x6c88ba20, + 0x20074: 0x6c4e0a20, 0x20075: 0x6cacd620, 0x20076: 0x6ce0f020, + 0x2007a: 0x6d151020, 0x2007b: 0x6d081420, + 0x2007c: 0x6cddca20, 0x2007d: 0x6c8e6420, 0x2007e: 0x6cd6d220, 0x2007f: 0x6cd0a820, + // Block 0x802, offset 0x20080 + 0x20081: 0x6c10a020, 0x20082: 0x6cd9bc20, + 0x20085: 0x6cbd8c20, 0x20086: 0x6cd06620, + 0x2008a: 0x6ca9f420, 0x2008b: 0x6ce6de20, + 0x2008c: 0x6c677020, + 0x20095: 0x6cf6b820, 0x20096: 0x6d36fe20, + 0x2009d: 0x6c7f5e20, 0x2009e: 0x6c86be20, 0x2009f: 0x6c86c020, + 0x200a2: 0x6c519420, 0x200a3: 0x6c69cc20, + 0x200a5: 0x6d0d0a20, 0x200a7: 0x6cd49420, + 0x200aa: 0x6cd2a220, + 0x200b1: 0x6d31ae20, 0x200b3: 0x6d1e8620, + 0x200ba: 0x6cddc620, 0x200bb: 0x6cf39e20, + // Block 0x803, offset 0x200c0 + 0x200c1: 0x6c169620, 0x200c2: 0x6c238820, + 0x200c6: 0x6c720820, + 0x200ce: 0x6cd4a420, + 0x200d4: 0x6c6fe620, 0x200d5: 0x6ceef020, + 0x200de: 0x6c5db620, + 0x200e4: 0x6c6a2020, + 0x200ec: 0x6d2a4e20, + 0x200f6: 0x6cab7220, + 0x200fc: 0x6c488c20, + // Block 0x804, offset 0x20100 + 0x20103: 0x6c4fba20, + 0x20104: 0x6c84f620, 0x20105: 0x6d356c20, 0x20106: 0x6cfc7220, + 0x20109: 0x6c100c20, 0x2010a: 0x6c170020, + 0x20113: 0x6d274a20, + 0x20114: 0x6c510020, + 0x2011c: 0x6ce1e420, + 0x20120: 0x6c0c4a20, + 0x20125: 0x6c2da420, 0x20127: 0x6c37b620, + 0x20128: 0x6c6f3e20, + 0x2012d: 0x6c2c0a20, 0x2012e: 0x6d164420, 0x2012f: 0x6c7d4620, + 0x20131: 0x6d300a20, 0x20133: 0x6c7de420, + 0x20134: 0x6d384e20, 0x20135: 0x6c71ee20, + 0x20139: 0x6ccd6820, 0x2013a: 0x6ccc3820, 0x2013b: 0x6c2da820, + 0x2013c: 0x6c046c20, 0x2013d: 0x6c5e7420, + // Block 0x805, offset 0x20140 + 0x20140: 0x6d378620, 0x20143: 0x6d144e20, + 0x20145: 0x6c79b020, 0x20146: 0x6cf33e20, + 0x2014a: 0x6c436420, 0x2014b: 0x6c031220, + 0x2014e: 0x6c463620, + 0x20151: 0x6cfb2420, 0x20152: 0x6c484020, 0x20153: 0x6c8ef620, + 0x20154: 0x6c1b7620, 0x20155: 0x6c48c020, 0x20156: 0x6c1fdc20, + 0x20158: 0x6c83a020, 0x20159: 0x6c242a20, 0x2015a: 0x6cd63e20, + 0x20161: 0x6c08b620, + 0x20165: 0x6c0dbc20, 0x20166: 0x6c857820, + 0x20169: 0x6c6fae20, 0x2016a: 0x6ce54a20, 0x2016b: 0x6c347220, + 0x2016d: 0x6d0bde20, 0x2016e: 0x6cc28a20, + 0x20171: 0x6c8ac820, 0x20173: 0x6c787c20, + 0x20175: 0x6c449620, 0x20176: 0x6d312420, + 0x20178: 0x6c3b5820, + // Block 0x806, offset 0x20180 + 0x20181: 0x6d146e20, 0x20183: 0x6c6fd220, + 0x20184: 0x6d067c20, 0x20185: 0x6c68cc20, + 0x20188: 0x6c93cc20, 0x20189: 0x6c6fb020, 0x2018b: 0x6c1e1e20, + 0x2018e: 0x6cfc7e20, + 0x20190: 0x6c7b1620, 0x20191: 0x6c333e20, + 0x20196: 0x6c952e20, 0x20197: 0x6cf59a20, + 0x20198: 0x6cbe0820, 0x20199: 0x6c107420, + 0x201a4: 0x6cb84620, + 0x201b1: 0x6caf5020, 0x201b2: 0x6d0adc20, 0x201b3: 0x6c07da20, + 0x201b4: 0x6c4cb220, 0x201b5: 0x6c484c20, + 0x201b9: 0x6c710020, + 0x201bc: 0x6cb82420, 0x201be: 0x6c741020, + // Block 0x807, offset 0x201c0 + 0x201c4: 0x6c85c020, + 0x201d0: 0x6c570c20, 0x201d1: 0x6c683c20, + 0x201d8: 0x6cb84e20, 0x201da: 0x6d2c2620, 0x201db: 0x6cb82620, + 0x201dd: 0x6d304620, 0x201de: 0x6c139020, 0x201df: 0x6d1ce820, + 0x201e2: 0x6d0bee20, + 0x201e4: 0x6c1cc020, + 0x201e8: 0x6c1b9a20, 0x201ea: 0x6cec8620, + 0x201ec: 0x6cd9a620, + 0x201f2: 0x6c76cc20, 0x201f3: 0x6d255c20, + 0x201fd: 0x6c1d9c20, 0x201ff: 0x6cdd6420, + // Block 0x808, offset 0x20200 + 0x20200: 0x6ce85820, 0x20203: 0x6d305620, + 0x20204: 0x6ce2ee20, 0x20206: 0x6cf36820, + 0x20208: 0x6c264a20, 0x20209: 0x6c860820, 0x2020a: 0x6c139420, + 0x20215: 0x6cc66e20, 0x20216: 0x6c461820, 0x20217: 0x6cc3bc20, + 0x20219: 0x6c83ce20, + 0x2021e: 0x6ce1c620, + 0x20224: 0x6c860a20, 0x20227: 0x6c9c5c20, + 0x20229: 0x6c1c3020, + 0x2022c: 0x6c4bfa20, 0x2022d: 0x6c909420, 0x2022e: 0x6c209020, 0x2022f: 0x6cdd6e20, + 0x20230: 0x6c690420, 0x20231: 0x6c6d0c20, + 0x20235: 0x6c381620, 0x20236: 0x6d2cf620, + 0x2023e: 0x6c6d0e20, 0x2023f: 0x6c254220, + // Block 0x809, offset 0x20240 + 0x20242: 0x6c136c20, 0x20243: 0x6d420820, + 0x20245: 0x6d2fc420, + 0x20248: 0x6cb1c620, 0x20249: 0x6d2dfc20, 0x2024a: 0x6cf66420, 0x2024b: 0x6d121420, + 0x2024c: 0x6c3f7420, 0x2024d: 0x6c1cce20, + 0x20253: 0x6c254a20, + 0x20257: 0x6c486820, + 0x20263: 0x6c5f0020, + 0x20266: 0x6ccb3c20, 0x20267: 0x6d2d8e20, + 0x20268: 0x6c8e2420, 0x20269: 0x6ccb3e20, 0x2026a: 0x6d132220, + 0x20270: 0x6c70ba20, + 0x20276: 0x6ce87220, + 0x2027a: 0x6cc7c620, 0x2027b: 0x6d2af820, + 0x2027c: 0x6c589020, + // Block 0x80a, offset 0x20280 + 0x20281: 0x6cfc2820, 0x20283: 0x6cb91a20, + 0x20284: 0x6d2fdc20, + 0x2028b: 0x6c11b220, + 0x2028e: 0x6c7e1820, 0x2028f: 0x6c869a20, + 0x20290: 0x6cc76420, + 0x20294: 0x6c31c020, 0x20297: 0x6c8b3020, + 0x2029c: 0x6d1c0620, 0x2029d: 0x6c86c220, + 0x202a0: 0x6c31c620, 0x202a2: 0x6c8d8020, + 0x202aa: 0x6ceca220, + 0x202af: 0x6c2f1820, + 0x202b3: 0x6c6f4020, + 0x202b5: 0x6c855e20, 0x202b6: 0x6c7a1620, 0x202b7: 0x6c791e20, + 0x202b9: 0x6d31b220, + // Block 0x80b, offset 0x202c0 + 0x202c0: 0x6c51b420, 0x202c2: 0x6c091220, + 0x202c4: 0x6caf2820, + 0x202ca: 0x6c4f4820, + 0x202d1: 0x6d3d2820, 0x202d2: 0x6c332020, + 0x202d4: 0x6d16a420, + 0x202dc: 0x6c787e20, 0x202dd: 0x6d16a620, 0x202de: 0x6ca0dc20, + 0x202e1: 0x6c118a20, 0x202e3: 0x6c44ee20, + 0x202e4: 0x6c788820, 0x202e5: 0x6cd32a20, + 0x202ed: 0x6c8cc620, 0x202ee: 0x6c07dc20, + 0x202f1: 0x6c32b820, + 0x202f6: 0x6c72e020, 0x202f7: 0x6ca4e420, + 0x202f8: 0x6d3f0020, 0x202fb: 0x6d401e20, + // Block 0x80c, offset 0x20300 + 0x20303: 0x6ce0ea20, + 0x20306: 0x6cf9be20, 0x20307: 0x6c4ec020, + 0x2030c: 0x6c94a620, 0x2030d: 0x6cb99020, + 0x20313: 0x6ca12220, + 0x20314: 0x6cab3a20, 0x20315: 0x6c4fc820, + 0x20319: 0x6d2c3420, 0x2031a: 0x6c737020, 0x2031b: 0x6c23a020, + 0x20320: 0x6c864420, 0x20321: 0x6d2c4020, 0x20322: 0x6d1fdc20, 0x20323: 0x6c2d6c20, + 0x20324: 0x6c747820, 0x20325: 0x6c073a20, + 0x20329: 0x6d11bc20, 0x2032a: 0x6cb1c820, + 0x20331: 0x6c6d3620, 0x20332: 0x6c766c20, 0x20333: 0x6ccb4020, + 0x20334: 0x6d102c20, 0x20335: 0x6c6d3820, + 0x20339: 0x6c78dc20, + // Block 0x80d, offset 0x20340 + 0x20344: 0x6c14de20, 0x20347: 0x6ca74a20, + 0x20349: 0x6cedb020, 0x2034a: 0x6c942a20, + 0x20350: 0x6d277a20, 0x20351: 0x6d108420, 0x20352: 0x6c05a020, + 0x20355: 0x6c755220, 0x20356: 0x6d07fc20, + 0x20358: 0x6d385820, + 0x20360: 0x6c7ce820, 0x20361: 0x6c3cda20, + 0x2036a: 0x6cc17e20, 0x2036b: 0x6ccecc20, + 0x2036c: 0x6cdce420, + 0x20370: 0x6c316820, 0x20372: 0x6c7af820, 0x20373: 0x6cad8c20, + 0x2037a: 0x6c065020, + 0x2037e: 0x6c401620, 0x2037f: 0x6c700c20, + // Block 0x80e, offset 0x20380 + 0x20380: 0x6cc47c20, + 0x20384: 0x6c70ca20, + 0x2038a: 0x6cbf6a20, + 0x2038d: 0x6d38c220, 0x2038e: 0x6c577420, 0x2038f: 0x6c05e020, + 0x20395: 0x6d145c20, 0x20397: 0x6d148420, + 0x20398: 0x6d148620, + 0x2039d: 0x6c995020, + 0x203a6: 0x6cc86c20, + 0x203ab: 0x6c227c20, + 0x203ae: 0x6c4dca20, + 0x203b0: 0x6c238420, + 0x203b4: 0x6cf83a20, + 0x203b9: 0x6cc2b820, 0x203ba: 0x6ce56c20, + 0x203bc: 0x6c2e0c20, 0x203be: 0x6c4ddc20, + // Block 0x80f, offset 0x203c0 + 0x203c7: 0x6d12a620, + 0x203cd: 0x6c353420, 0x203ce: 0x6ceef820, + 0x203d0: 0x6c122e20, 0x203d1: 0x6c2e2620, + 0x203d5: 0x6c362620, 0x203d6: 0x6c2c6820, + 0x203d8: 0x6cdb9220, 0x203d9: 0x6cc30a20, + 0x203dc: 0x6c368020, 0x203dd: 0x6cab4420, 0x203de: 0x6d081c20, + 0x203e2: 0x6cf47820, + 0x203e6: 0x6d190820, + 0x203e8: 0x6ca1fa20, + 0x203f0: 0x6c549620, + 0x203f4: 0x6c4dde20, + 0x203ff: 0x6cd22820, + // Block 0x810, offset 0x20400 + 0x20403: 0x6cc96420, + 0x20408: 0x6c090820, 0x2040a: 0x6c4dcc20, 0x2040b: 0x6c6e4620, + 0x2040e: 0x6cbdfa20, 0x2040f: 0x6c25d420, + 0x20410: 0x6c22a620, 0x20412: 0x6c046e20, + 0x20417: 0x6c32f020, + 0x2041c: 0x6cf84220, + 0x20427: 0x6d33c020, + 0x20428: 0x6c949220, 0x2042a: 0x6c54b620, 0x2042b: 0x6c601420, + 0x2042c: 0x6c48c820, + 0x20432: 0x6cacd820, + // Block 0x811, offset 0x20440 + 0x20440: 0x6d39c220, + 0x20445: 0x6c08fc20, 0x20447: 0x6d21ae20, + 0x20452: 0x6cb6c220, + 0x20455: 0x6c50b420, 0x20456: 0x6c1ed420, + 0x20459: 0x6ccec220, 0x2045a: 0x6c1be020, 0x2045b: 0x6c0eac20, + 0x2045f: 0x6cc62420, + 0x20460: 0x6d1ef820, + 0x20464: 0x6ca39620, + 0x20469: 0x6c5b9420, 0x2046a: 0x6ce57620, 0x2046b: 0x6c04c220, + 0x20470: 0x6d057620, + 0x20474: 0x6d1f1020, 0x20475: 0x6c1c0620, + 0x2047f: 0x6c526220, + // Block 0x812, offset 0x20480 + 0x20483: 0x6cec7020, + 0x20486: 0x6d01ce20, + 0x2048a: 0x6c748c20, + 0x2048c: 0x6cdbec20, 0x2048d: 0x6cbe2c20, 0x2048e: 0x6d3bbc20, + 0x20495: 0x6c617620, + 0x20498: 0x6c091420, 0x2049a: 0x6cf59c20, + 0x204a0: 0x6c602820, 0x204a2: 0x6c75c620, + 0x204a5: 0x6c89ee20, 0x204a6: 0x6d1eb620, + 0x204ad: 0x6c70ea20, + 0x204b2: 0x6d266a20, + 0x204b5: 0x6c055e20, + 0x204b8: 0x6cafaa20, 0x204bb: 0x6d2b3820, + 0x204be: 0x6d165820, 0x204bf: 0x6c2bc820, + // Block 0x813, offset 0x204c0 + 0x204c2: 0x6cbc9220, + 0x204c4: 0x6cdd4c20, 0x204c6: 0x6c22ae20, + 0x204c8: 0x6d3aa220, 0x204c9: 0x6d267420, + 0x204cf: 0x6c682820, + 0x204d4: 0x6cd23e20, 0x204d7: 0x6d148820, + 0x204d8: 0x6cf99220, + 0x204e0: 0x6d254220, + 0x204e5: 0x6c4c6020, 0x204e7: 0x6c789020, + 0x204ea: 0x6c252420, 0x204eb: 0x6d171a20, + 0x204f5: 0x6c85c220, 0x204f7: 0x6c2d0c20, + 0x204fa: 0x6cf5d620, + 0x204ff: 0x6c09c020, + // Block 0x814, offset 0x20500 + 0x20502: 0x6c0b3420, 0x20503: 0x6c99ea20, + 0x20504: 0x6c85e420, 0x20507: 0x6cda1820, + 0x20510: 0x6c8e5620, 0x20511: 0x6c4b5420, 0x20512: 0x6c78b620, + 0x20517: 0x6d151220, + 0x20519: 0x6cf7f620, 0x2051a: 0x6d1a7c20, + 0x2051f: 0x6c78c020, + 0x20523: 0x6ccf6020, + 0x20527: 0x6cf2bc20, + 0x2052e: 0x6cb0b620, + 0x20536: 0x6d26dc20, 0x20537: 0x6c538020, + 0x2053a: 0x6c867220, 0x2053b: 0x6c405020, + // Block 0x815, offset 0x20540 + 0x20543: 0x6c74d620, + 0x20544: 0x6cfae820, + 0x20549: 0x6c2cf020, + 0x2054c: 0x6c878820, + 0x20553: 0x6ce83420, + 0x20558: 0x6c645820, 0x2055b: 0x6c041420, + 0x2055c: 0x6c2c0c20, 0x2055d: 0x6d2efc20, + 0x20563: 0x6d22bc20, + 0x20568: 0x6c333420, + 0x2056d: 0x6c115c20, 0x2056e: 0x6ce88620, + 0x20576: 0x6cdf9420, 0x20577: 0x6c5fee20, + 0x20578: 0x6cb59420, 0x20579: 0x6ccd7620, 0x2057a: 0x6ca6fa20, + // Block 0x816, offset 0x20580 + 0x20586: 0x6c498c20, + 0x20588: 0x6c08e420, 0x2058b: 0x6d037820, + 0x20593: 0x6d31fa20, + 0x20599: 0x6cc94a20, 0x2059b: 0x6ca0b820, + 0x2059d: 0x6c3dc420, + 0x205a2: 0x6ce1a820, 0x205a3: 0x6c055c20, + 0x205aa: 0x6c0c8a20, + 0x205ac: 0x6cf56620, 0x205ae: 0x6c6a5e20, + 0x205b6: 0x6c6cd220, + 0x205be: 0x6cb8b020, + // Block 0x817, offset 0x205c0 + 0x205c8: 0x6cd89820, 0x205c9: 0x6c6e1620, 0x205cb: 0x6c1b8820, + 0x205d7: 0x6c6e1c20, + 0x205e5: 0x6cdc3a20, + 0x205ef: 0x6d2bde20, + 0x205f0: 0x6c83e020, + 0x205f4: 0x6d3d0620, + 0x205f9: 0x6c0ba820, + 0x205ff: 0x6cea6220, + // Block 0x818, offset 0x20600 + 0x20603: 0x6c0a1820, + 0x20606: 0x6c3ac220, + 0x2060a: 0x6c2a8220, + 0x2060c: 0x6d3a2620, + 0x20611: 0x6c70dc20, + 0x20619: 0x6d15b020, + 0x2061c: 0x6d0b6420, 0x2061f: 0x6c1bd820, + 0x20620: 0x6c488e20, 0x20621: 0x6d34d020, + 0x20628: 0x6cc61620, 0x2062b: 0x6d1e8a20, + 0x2062d: 0x6c0ea820, 0x2062f: 0x6c611820, + 0x20630: 0x6cb23620, 0x20633: 0x6d1b9c20, + 0x20634: 0x6d0f4220, 0x20635: 0x6c98b420, + 0x2063d: 0x6c904e20, 0x2063e: 0x6ca2ca20, 0x2063f: 0x6cc9bc20, + // Block 0x819, offset 0x20640 + 0x20640: 0x6c1fda20, 0x20642: 0x6c221c20, 0x20643: 0x6cf41a20, + 0x20644: 0x6cc5ae20, + 0x20648: 0x6c272420, 0x20649: 0x6c5fc420, 0x2064b: 0x6d15b820, + 0x2064d: 0x6cc45e20, + 0x20650: 0x6c5d9820, 0x20651: 0x6c484220, 0x20653: 0x6d301020, + 0x20654: 0x6cb08220, 0x20657: 0x6d288220, + 0x20658: 0x6c04e020, 0x20659: 0x6c6a6a20, + 0x2065c: 0x6c53e220, 0x2065f: 0x6cfc7620, + 0x20660: 0x6c5a8820, + 0x20669: 0x6d2bc420, 0x2066a: 0x6c270820, 0x2066b: 0x6c436c20, + 0x2066d: 0x6cb08420, 0x2066f: 0x6cb14620, + 0x20670: 0x6cd23620, 0x20671: 0x6c898620, 0x20672: 0x6d267620, 0x20673: 0x6c565020, + 0x20674: 0x6c0b6a20, 0x20677: 0x6cc61e20, + 0x20679: 0x6cc62020, + // Block 0x81a, offset 0x20680 + 0x20684: 0x6d13c420, 0x20685: 0x6d338820, 0x20687: 0x6c6c2820, + 0x20688: 0x6cf22020, 0x20689: 0x6c173420, 0x2068b: 0x6cbf9a20, + 0x2068d: 0x6d3a5620, 0x2068f: 0x6d2c1c20, + 0x20690: 0x6cb34820, 0x20691: 0x6c019e20, 0x20693: 0x6c50c220, + 0x20695: 0x6c1e5620, 0x20696: 0x6d0c6020, + 0x2069a: 0x6cd31820, 0x2069b: 0x6c566020, + 0x2069c: 0x6c35dc20, + 0x206b4: 0x6cd24020, + 0x206b9: 0x6ceaaa20, 0x206ba: 0x6c272c20, 0x206bb: 0x6cec6a20, + 0x206bc: 0x6cb2f420, 0x206bd: 0x6cc6f420, 0x206be: 0x6c705220, + // Block 0x81b, offset 0x206c0 + 0x206c0: 0x6c0e4a20, + 0x206d0: 0x6d222820, 0x206d1: 0x6c30a220, 0x206d3: 0x6c4ace20, + 0x206d4: 0x6cd45420, 0x206d7: 0x6cdd0820, + 0x206d8: 0x6ca68220, 0x206d9: 0x6d385c20, 0x206da: 0x6c905220, 0x206db: 0x6c0dca20, + 0x206dc: 0x6d421420, 0x206dd: 0x6d12d620, 0x206de: 0x6cc4b420, + 0x206e0: 0x6c8cb220, 0x206e1: 0x6cc96c20, + 0x206e4: 0x6c82b820, 0x206e5: 0x6c35e820, 0x206e7: 0x6d381a20, + 0x206e8: 0x6c612820, 0x206eb: 0x6c35ea20, + 0x206ef: 0x6d428420, + 0x206f2: 0x6ca31820, 0x206f3: 0x6d27dc20, + // Block 0x81c, offset 0x20700 + 0x2070a: 0x6d016c20, 0x2070b: 0x6d418a20, + 0x2070c: 0x6cd5aa20, 0x2070d: 0x6c2fce20, 0x2070e: 0x6c384620, 0x2070f: 0x6cc58a20, + 0x20711: 0x6c051820, 0x20712: 0x6c4de020, 0x20713: 0x6c530a20, + 0x20714: 0x6d13d020, 0x20716: 0x6d13d220, + 0x20719: 0x6c77da20, 0x2071a: 0x6d16de20, 0x2071b: 0x6c5b1e20, + 0x2071c: 0x6d329020, + 0x2072e: 0x6c6e6220, + 0x20731: 0x6c43d220, + 0x20734: 0x6ca9fa20, 0x20735: 0x6cbca220, 0x20737: 0x6c2e7e20, + 0x20739: 0x6c61c420, 0x2073a: 0x6d171e20, 0x2073b: 0x6d14b620, + 0x2073d: 0x6c3e2c20, 0x2073e: 0x6cd77220, 0x2073f: 0x6cd77420, + // Block 0x81d, offset 0x20740 + 0x20740: 0x6d1e1e20, 0x20741: 0x6c78fe20, 0x20742: 0x6c573020, 0x20743: 0x6c53b620, + 0x20747: 0x6c50ec20, + 0x2074a: 0x6c509620, 0x2074b: 0x6cb9f820, + 0x2074c: 0x6cb85020, 0x2074e: 0x6cd8a620, + 0x20750: 0x6c051e20, + 0x2076c: 0x6c6d9e20, 0x2076d: 0x6c789220, + 0x20773: 0x6c001a20, + 0x20774: 0x6c908020, 0x20776: 0x6ce84820, + 0x20779: 0x6c207020, + 0x2077c: 0x6cd98620, 0x2077d: 0x6c19d620, 0x2077f: 0x6cee6a20, + // Block 0x81e, offset 0x20780 + 0x20782: 0x6caa5220, + 0x20784: 0x6c6fb620, 0x20787: 0x6c0d2c20, + 0x207a1: 0x6cffda20, 0x207a2: 0x6cd0f820, 0x207a3: 0x6c545020, + 0x207a6: 0x6d3ad020, + 0x207a8: 0x6c490e20, 0x207a9: 0x6c5eb220, 0x207ab: 0x6c61dc20, + 0x207ad: 0x6cf5da20, 0x207af: 0x6ccf3e20, + 0x207b0: 0x6cab7e20, 0x207b1: 0x6c553c20, 0x207b2: 0x6cde4220, 0x207b3: 0x6cff7c20, + 0x207b5: 0x6d2a7c20, + 0x207b8: 0x6c0fee20, 0x207b9: 0x6cb77820, 0x207ba: 0x6cebd620, 0x207bb: 0x6ceabe20, + 0x207bc: 0x6c2a0c20, 0x207be: 0x6ca33020, + // Block 0x81f, offset 0x207c0 + 0x207e0: 0x6d2cee20, 0x207e3: 0x6d0b9020, + 0x207e6: 0x6cf44020, 0x207e7: 0x6d31aa20, + 0x207e8: 0x6c2a8e20, 0x207e9: 0x6c509a20, 0x207eb: 0x6c01ea20, + 0x207ec: 0x6cafda20, 0x207ed: 0x6ccb2220, 0x207ee: 0x6c3bbc20, 0x207ef: 0x6c485420, + 0x207f3: 0x6cb35420, + 0x207f7: 0x6d088820, + 0x207f8: 0x6c4d9c20, 0x207f9: 0x6c427420, 0x207fa: 0x6c034620, 0x207fb: 0x6d3f7620, + 0x207fc: 0x6c9c0020, 0x207fe: 0x6c5dba20, + // Block 0x820, offset 0x20800 + 0x20827: 0x6c2cc220, + 0x20828: 0x6cf5dc20, 0x2082b: 0x6c26ee20, + 0x2082c: 0x6ca47a20, + 0x20830: 0x6c2dbe20, 0x20831: 0x6c95f820, 0x20832: 0x6c789e20, + 0x20837: 0x6d178e20, + 0x20838: 0x6c744420, 0x20839: 0x6c512420, 0x2083b: 0x6c602c20, + 0x2083e: 0x6c51c620, 0x2083f: 0x6ca82820, + // Block 0x821, offset 0x20840 + 0x20840: 0x6cc8f620, 0x20841: 0x6cb99220, 0x20842: 0x6c276c20, 0x20843: 0x6cce6c20, + 0x20844: 0x6c78ae20, 0x20845: 0x6d3a1220, 0x20847: 0x6cd1b820, + 0x20848: 0x6c93da20, 0x20849: 0x6c635c20, 0x2084a: 0x6cb10c20, 0x2084b: 0x6c546e20, + 0x2084c: 0x6c5ec420, 0x2084d: 0x6cde5420, 0x2084e: 0x6c1dac20, 0x2084f: 0x6cf29020, + 0x20850: 0x6c6e8020, 0x20851: 0x6cb30e20, 0x20852: 0x6d2cf220, 0x20853: 0x6d02d420, + 0x20856: 0x6c0b9420, + 0x20859: 0x6d06ce20, + 0x2085e: 0x6c471020, 0x2085f: 0x6c6be620, + 0x20862: 0x6cfb6a20, + 0x20878: 0x6c356420, 0x2087a: 0x6c0f0020, 0x2087b: 0x6cb15420, + 0x2087f: 0x6d28ea20, + // Block 0x822, offset 0x20880 + 0x20881: 0x6cac2420, 0x20882: 0x6ce85a20, + 0x20884: 0x6d1bb420, + 0x208ae: 0x6cfde220, + 0x208b1: 0x6caaf420, 0x208b2: 0x6c438e20, 0x208b3: 0x6c0f0220, + 0x208b4: 0x6d01a420, + 0x208b8: 0x6d315c20, 0x208b9: 0x6d214620, 0x208ba: 0x6ca6a420, + // Block 0x823, offset 0x208c0 + 0x208c0: 0x6d0a9220, 0x208c1: 0x6cec3620, 0x208c3: 0x6c021820, + 0x208c4: 0x6c4ece20, 0x208c5: 0x6c52b220, 0x208c6: 0x6c27e220, + 0x208c8: 0x6caac220, 0x208ca: 0x6c12b020, 0x208cb: 0x6c604820, + 0x208cc: 0x6ca5ae20, 0x208cd: 0x6d1e4020, 0x208ce: 0x6cfed220, + 0x208d0: 0x6c1faa20, 0x208d1: 0x6d121020, 0x208d3: 0x6c440220, + 0x208d4: 0x6ce0fc20, 0x208d5: 0x6c065220, 0x208d6: 0x6c15be20, + 0x208d8: 0x6d06ec20, 0x208db: 0x6c4d2020, + 0x208dd: 0x6c1db620, 0x208df: 0x6c65a620, + 0x208e0: 0x6d422620, + 0x208e4: 0x6cf0a420, 0x208e5: 0x6c265220, 0x208e6: 0x6caf6c20, + // Block 0x824, offset 0x20900 + 0x20910: 0x6c592c20, 0x20912: 0x6cf63a20, + 0x20914: 0x6cae4c20, 0x20915: 0x6c8e3420, 0x20916: 0x6ca24a20, 0x20917: 0x6c9ec620, + 0x20918: 0x6c812020, 0x20919: 0x6ce9fe20, 0x2091a: 0x6c048420, + 0x2091d: 0x6c439820, 0x2091f: 0x6c7aa020, + 0x20922: 0x6c636a20, 0x20923: 0x6c0e7c20, + // Block 0x825, offset 0x20940 + 0x2094d: 0x6c592e20, 0x2094f: 0x6d40c420, + 0x20950: 0x6c960e20, + 0x20957: 0x6c840a20, + 0x20959: 0x6c515620, 0x2095a: 0x6ca06220, + 0x2095c: 0x6cd72a20, 0x2095d: 0x6cd00420, 0x2095e: 0x6c777020, 0x2095f: 0x6c1c4020, + 0x20960: 0x6c8d3420, 0x20961: 0x6c95ba20, + 0x20964: 0x6d0dae20, 0x20965: 0x6d2fc620, 0x20966: 0x6c1fae20, 0x20967: 0x6c47ac20, + 0x20968: 0x6cbde020, 0x2096a: 0x6cdff220, 0x2096b: 0x6c3be220, + 0x2096c: 0x6ce8d220, + 0x20971: 0x6c8d3620, + 0x20974: 0x6c810820, + // Block 0x826, offset 0x20980 + 0x20996: 0x6c7fa620, 0x20997: 0x6d299220, + 0x20998: 0x6cf50820, + 0x2099d: 0x6c840c20, 0x2099e: 0x6c000a20, 0x2099f: 0x6c94b620, + 0x209a0: 0x6d353e20, 0x209a1: 0x6c1dc820, 0x209a2: 0x6c67f020, + 0x209a4: 0x6c64c620, + 0x209a9: 0x6c950020, 0x209aa: 0x6d153020, + 0x209ac: 0x6cce0820, + 0x209bb: 0x6c5f0220, + // Block 0x827, offset 0x209c0 + 0x209dc: 0x6d181e20, 0x209dd: 0x6ca8ea20, + 0x209e1: 0x6c5c0a20, 0x209e3: 0x6d2bf020, + 0x209e6: 0x6c4e6020, + 0x209e8: 0x6d1afa20, 0x209e9: 0x6c0a1a20, 0x209ea: 0x6c014620, 0x209eb: 0x6cf97220, + 0x209ec: 0x6ca60020, + 0x209f0: 0x6c2b3e20, 0x209f1: 0x6c65cc20, 0x209f2: 0x6cac6820, + 0x209f5: 0x6d23bc20, 0x209f6: 0x6c1fc620, 0x209f7: 0x6d289820, + 0x209f9: 0x6c13fc20, 0x209fb: 0x6d307620, + 0x209fc: 0x6ccb4220, 0x209fe: 0x6cae3620, 0x209ff: 0x6c472820, + // Block 0x828, offset 0x20a00 + 0x20a00: 0x6d307820, + 0x20a06: 0x6c842420, 0x20a07: 0x6c30be20, + 0x20a09: 0x6c1dd020, 0x20a0b: 0x6d419620, + 0x20a0c: 0x6cb39e20, 0x20a0f: 0x6ccefc20, + 0x20a10: 0x6c8fa220, + 0x20a22: 0x6cd5fe20, + 0x20a24: 0x6c6d3a20, 0x20a25: 0x6c8d4820, + 0x20a28: 0x6c774220, 0x20a29: 0x6c7e9220, 0x20a2b: 0x6d05cc20, + 0x20a2c: 0x6c6d3c20, 0x20a2e: 0x6c1fea20, + 0x20a32: 0x6d26de20, + // Block 0x829, offset 0x20a40 + 0x20a46: 0x6c971820, 0x20a47: 0x6d020820, + 0x20a48: 0x6c6f8620, 0x20a49: 0x6c627420, 0x20a4b: 0x6d26e820, + 0x20a4f: 0x6c64f220, + 0x20a51: 0x6c4e3020, 0x20a53: 0x6cc98a20, + 0x20a54: 0x6c5c2820, 0x20a55: 0x6cbc5a20, 0x20a57: 0x6ccb5220, + 0x20a58: 0x6d419a20, 0x20a5b: 0x6c91d620, + 0x20a5c: 0x6c57c420, 0x20a5d: 0x6c1e6820, 0x20a5e: 0x6ccd5c20, 0x20a5f: 0x6cf31220, + 0x20a60: 0x6c60a220, 0x20a61: 0x6d3d9620, 0x20a62: 0x6cfb8c20, 0x20a63: 0x6d141020, + 0x20a64: 0x6c4c8820, 0x20a65: 0x6c7d1c20, + // Block 0x82a, offset 0x20a80 + 0x20a91: 0x6d38a820, + 0x20a94: 0x6c929e20, 0x20a96: 0x6c0e9020, 0x20a97: 0x6cd28a20, + 0x20a98: 0x6d1d4a20, 0x20a99: 0x6c7a5c20, + 0x20ab9: 0x6d36d820, 0x20aba: 0x6d00e820, + 0x20abd: 0x6d135420, 0x20abe: 0x6c36b420, 0x20abf: 0x6c940420, + // Block 0x82b, offset 0x20ac0 + 0x20ac0: 0x6c4f1420, 0x20ac1: 0x6d135620, + 0x20ac6: 0x6c962c20, 0x20ac7: 0x6c21dc20, + 0x20ac8: 0x6c397020, 0x20ac9: 0x6d34a020, 0x20aca: 0x6d1d5020, 0x20acb: 0x6cf1f220, + 0x20acc: 0x6cebf220, 0x20acd: 0x6c00d620, 0x20ace: 0x6d21b020, + 0x20ad1: 0x6c571a20, 0x20ad3: 0x6c8b3220, + 0x20ad4: 0x6c6dd620, 0x20ad5: 0x6d28ca20, + 0x20ae7: 0x6d29e820, + 0x20ae8: 0x6c336420, 0x20aea: 0x6c629220, + 0x20aee: 0x6cf2a220, + 0x20af0: 0x6c60ba20, 0x20af1: 0x6cf6e420, 0x20af3: 0x6d2e8620, + 0x20af4: 0x6ce95c20, + // Block 0x82c, offset 0x20b00 + 0x20b0a: 0x6d21b220, + 0x20b0f: 0x6c8b4620, + 0x20b12: 0x6d372420, 0x20b13: 0x6cd20a20, + 0x20b15: 0x6c81c220, 0x20b16: 0x6c7f6020, 0x20b17: 0x6cf03620, + 0x20b18: 0x6cad7220, 0x20b19: 0x6c1b6220, 0x20b1a: 0x6d1d1420, 0x20b1b: 0x6c314020, + 0x20b1d: 0x6c314220, 0x20b1f: 0x6c067620, + 0x20b20: 0x6cbcf020, 0x20b21: 0x6cd62020, 0x20b23: 0x6d34a820, + 0x20b29: 0x6c8b4820, 0x20b2b: 0x6caed620, + 0x20b2d: 0x6d300620, + 0x20b3f: 0x6cab5a20, + // Block 0x82d, offset 0x20b40 + 0x20b42: 0x6d023c20, 0x20b43: 0x6c60d820, + 0x20b44: 0x6c7f6220, 0x20b45: 0x6d1cb020, 0x20b46: 0x6c134c20, + 0x20b56: 0x6c820020, + 0x20b5d: 0x6c952820, + 0x20b61: 0x6c8fbc20, 0x20b62: 0x6cf91020, + 0x20b66: 0x6c8c7620, + 0x20b69: 0x6c4aa020, + 0x20b73: 0x6d03b020, + 0x20b77: 0x6c848620, + 0x20b78: 0x6c221620, + // Block 0x82e, offset 0x20b80 + 0x20b87: 0x6cbebc20, + 0x20b91: 0x6c652e20, 0x20b92: 0x6c2a4420, 0x20b93: 0x6c661420, + 0x20b94: 0x6cbee820, 0x20b95: 0x6d026e20, 0x20b96: 0x6d1d5a20, + 0x20b9f: 0x6c4d0020, + 0x20ba1: 0x6d311820, 0x20ba2: 0x6ccf0420, 0x20ba3: 0x6c9c9a20, + 0x20ba4: 0x6c58ba20, + 0x20bb1: 0x6c248220, 0x20bb2: 0x6cc7e820, 0x20bb3: 0x6cc95a20, + 0x20bb4: 0x6c5e4620, 0x20bb5: 0x6d143420, 0x20bb7: 0x6c2b4e20, + 0x20bb9: 0x6c949e20, 0x20bbb: 0x6d193e20, + // Block 0x82f, offset 0x20bc0 + 0x20bc2: 0x6c100020, 0x20bc3: 0x6cad1820, + 0x20bc4: 0x6ce04220, 0x20bc5: 0x6c35a420, 0x20bc6: 0x6d29ee20, 0x20bc7: 0x6c23c420, + 0x20bd3: 0x6d2d0a20, + 0x20bd5: 0x6cf82620, 0x20bd6: 0x6c98b020, + 0x20bd8: 0x6c7eca20, 0x20bd9: 0x6d287820, + 0x20be1: 0x6c36e620, + 0x20be5: 0x6c2f0e20, + 0x20bed: 0x6c493c20, + 0x20bf1: 0x6c596620, + 0x20bf5: 0x6cd40620, 0x20bf6: 0x6c663220, + 0x20bf9: 0x6d2dce20, 0x20bfa: 0x6c610620, 0x20bfb: 0x6c596820, + // Block 0x830, offset 0x20c00 + 0x20c05: 0x6cedb220, 0x20c06: 0x6c95d820, + 0x20c0f: 0x6c315620, + 0x20c15: 0x6c893c20, + 0x20c23: 0x6ca7ea20, + 0x20c24: 0x6ca41c20, 0x20c25: 0x6c6fc820, 0x20c26: 0x6d266c20, + 0x20c29: 0x6d108820, 0x20c2a: 0x6c204c20, + 0x20c2e: 0x6c11cc20, 0x20c2f: 0x6c84f820, + 0x20c30: 0x6c33d420, 0x20c31: 0x6ca41e20, 0x20c32: 0x6ca42020, + 0x20c38: 0x6cc63820, + 0x20c3d: 0x6d267820, + // Block 0x831, offset 0x20c40 + 0x20c40: 0x6d1ee620, 0x20c42: 0x6d19a420, + 0x20c44: 0x6c4c5820, + 0x20c48: 0x6c295420, + 0x20c51: 0x6d312620, 0x20c52: 0x6c9c3c20, 0x20c53: 0x6c2e6820, + 0x20c56: 0x6d312820, + 0x20c5a: 0x6c7abe20, + 0x20c5c: 0x6c4de220, 0x20c5d: 0x6cd98020, 0x20c5e: 0x6c50d020, 0x20c5f: 0x6c5e9620, + 0x20c60: 0x6d302e20, + 0x20c64: 0x6c0dd620, 0x20c66: 0x6ceef220, 0x20c67: 0x6ce7d220, + 0x20c69: 0x6ce88c20, + 0x20c6c: 0x6c426e20, 0x20c6d: 0x6c908220, 0x20c6e: 0x6cc2c820, 0x20c6f: 0x6c5d2220, + 0x20c70: 0x6d3ba420, 0x20c71: 0x6cc3b220, 0x20c73: 0x6c533a20, + 0x20c75: 0x6c296020, 0x20c76: 0x6c510420, 0x20c77: 0x6cdf6e20, + 0x20c78: 0x6c48ca20, 0x20c7a: 0x6d230220, + 0x20c7c: 0x6d0baa20, 0x20c7f: 0x6cec8c20, + // Block 0x832, offset 0x20c80 + 0x20c80: 0x6cc43820, + 0x20c85: 0x6c744620, 0x20c86: 0x6cab3820, + 0x20c89: 0x6cc29c20, 0x20c8a: 0x6d347220, + 0x20c8d: 0x6c8d1820, 0x20c8e: 0x6cf37020, 0x20c8f: 0x6d033c20, + 0x20c90: 0x6c26ae20, 0x20c92: 0x6d24f220, 0x20c93: 0x6d261e20, + 0x20c97: 0x6ca13820, + 0x20c99: 0x6d1f5420, + 0x20c9e: 0x6cf45820, + 0x20ca0: 0x6d2ebe20, 0x20ca3: 0x6d07b820, + 0x20ca6: 0x6cc53c20, 0x20ca7: 0x6c4be220, + 0x20ca8: 0x6d23be20, + 0x20cae: 0x6cf9fc20, 0x20caf: 0x6c0b5220, + 0x20cb0: 0x6d1f7e20, 0x20cb2: 0x6d1a1420, + 0x20cb4: 0x6d083220, 0x20cb5: 0x6d1f8c20, 0x20cb6: 0x6c827a20, + 0x20cbc: 0x6ce6a620, 0x20cbf: 0x6d311a20, + // Block 0x833, offset 0x20cc0 + 0x20cc4: 0x6d292420, 0x20cc5: 0x6c40ba20, 0x20cc6: 0x6c7e5620, + 0x20cc9: 0x6cc39e20, + 0x20cce: 0x6c70ec20, + 0x20cd0: 0x6c20fa20, 0x20cd1: 0x6c263e20, 0x20cd2: 0x6cea3a20, 0x20cd3: 0x6c001220, + 0x20cd7: 0x6d3edc20, + 0x20cda: 0x6c59a620, 0x20cdb: 0x6d167c20, + 0x20ce9: 0x6c062e20, 0x20cea: 0x6c1afc20, + 0x20ced: 0x6cc63a20, + 0x20cf4: 0x6c913220, 0x20cf7: 0x6c6a6c20, + 0x20cf8: 0x6cd30a20, 0x20cfa: 0x6d413620, + // Block 0x834, offset 0x20d00 + 0x20d01: 0x6d167e20, + 0x20d04: 0x6c3bc820, 0x20d05: 0x6c3bca20, + 0x20d09: 0x6ca0c420, + 0x20d0d: 0x6cd59a20, + 0x20d1b: 0x6c023e20, + 0x20d1d: 0x6cb05620, 0x20d1e: 0x6cb27820, 0x20d1f: 0x6cb2f820, + 0x20d20: 0x6c639e20, 0x20d21: 0x6d38ca20, 0x20d23: 0x6cbf9e20, + 0x20d27: 0x6d1fa620, + 0x20d28: 0x6cdfd020, 0x20d2b: 0x6cc6f620, + 0x20d2d: 0x6c9d2020, + 0x20d36: 0x6d16ac20, + 0x20d38: 0x6cc6fc20, 0x20d3b: 0x6c8ace20, + 0x20d3c: 0x6cbf0220, + // Block 0x835, offset 0x20d40 + 0x20d59: 0x6c5b2020, 0x20d5a: 0x6c61a020, + 0x20d5f: 0x6c433a20, + 0x20d67: 0x6d1f0420, + 0x20d68: 0x6c138220, 0x20d69: 0x6c2a6020, 0x20d6a: 0x6d19ac20, + 0x20d6c: 0x6d22de20, 0x20d6d: 0x6c06fc20, 0x20d6f: 0x6c0ed020, + // Block 0x836, offset 0x20d80 + 0x20d94: 0x6cbb6820, + 0x20d9a: 0x6c141c20, + 0x20d9c: 0x6d02be20, 0x20d9e: 0x6c1b1420, + 0x20da3: 0x6d2a7220, + 0x20da4: 0x6c7c6020, 0x20da6: 0x6c3aa220, + 0x20da9: 0x6cddea20, 0x20daa: 0x6c48f420, + 0x20dad: 0x6c342620, + 0x20db2: 0x6c4a5420, + 0x20db4: 0x6d345020, + // Block 0x837, offset 0x20dc0 + 0x20dcc: 0x6c15a620, 0x20dcd: 0x6ca4ec20, + 0x20dd0: 0x6c553e20, 0x20dd2: 0x6ce21820, + 0x20de1: 0x6d175620, + 0x20de4: 0x6ca82a20, 0x20de5: 0x6d2d3e20, 0x20de6: 0x6c587220, + 0x20de8: 0x6c325620, 0x20dea: 0x6cb78620, 0x20deb: 0x6c12e420, + 0x20dee: 0x6c20cc20, + 0x20df2: 0x6c264e20, + 0x20df6: 0x6d361820, 0x20df7: 0x6c453020, + 0x20dfb: 0x6cf26e20, + // Block 0x838, offset 0x20e00 + 0x20e09: 0x6c325820, + 0x20e0d: 0x6c1b2420, + 0x20e11: 0x6c01be20, 0x20e12: 0x6c7df820, + 0x20e14: 0x6cf2e820, + 0x20e18: 0x6d1bb620, 0x20e1a: 0x6cb13e20, + 0x20e2b: 0x6d2c3020, + 0x20e2c: 0x6d3b6420, 0x20e2e: 0x6cdac420, + 0x20e33: 0x6ca6a620, + 0x20e3a: 0x6d3a1420, 0x20e3b: 0x6c14fe20, + 0x20e3e: 0x6c084020, 0x20e3f: 0x6ca5f220, + // Block 0x839, offset 0x20e40 + 0x20e40: 0x6d347420, 0x20e41: 0x6c5bd420, + 0x20e58: 0x6cfa3a20, 0x20e5a: 0x6d364e20, 0x20e5b: 0x6cf63c20, + 0x20e5e: 0x6c67aa20, + 0x20e69: 0x6c330220, 0x20e6a: 0x6c3d7c20, + 0x20e6d: 0x6c685c20, 0x20e6e: 0x6c176820, 0x20e6f: 0x6c045020, + 0x20e75: 0x6c8b1e20, + 0x20e7c: 0x6c025a20, + // Block 0x83a, offset 0x20e80 + 0x20e8b: 0x6d2a1620, + 0x20e8c: 0x6c1f6020, 0x20e8f: 0x6ceb8620, + 0x20e92: 0x6c4fd220, 0x20e93: 0x6c773620, + 0x20e94: 0x6d1a7e20, 0x20e96: 0x6cfcea20, + 0x20e9d: 0x6c401820, 0x20e9e: 0x6c0cb620, + 0x20ea0: 0x6c7c4020, + 0x20ea4: 0x6cbcde20, 0x20ea5: 0x6cc98420, + 0x20ebf: 0x6c266220, + // Block 0x83b, offset 0x20ec0 + 0x20ec0: 0x6d12b220, + 0x20ec4: 0x6d2f0820, 0x20ec6: 0x6c896420, + 0x20ec8: 0x6c332620, + 0x20ecd: 0x6c816620, 0x20ece: 0x6d09a620, + 0x20ed8: 0x6d36a420, 0x20eda: 0x6c7a5a20, + 0x20ede: 0x6cdc6a20, 0x20edf: 0x6cf2a020, + 0x20ee3: 0x6c7a5e20, + 0x20eef: 0x6c65d420, + 0x20ef6: 0x6c67ba20, + 0x20efb: 0x6d3caa20, + 0x20efd: 0x6cd6dc20, 0x20efe: 0x6d219c20, + // Block 0x83c, offset 0x20f00 + 0x20f01: 0x6cc98c20, 0x20f03: 0x6d23e620, + 0x20f04: 0x6c803a20, + 0x20f0a: 0x6d240620, + 0x20f0c: 0x6cba2820, 0x20f0d: 0x6c72a220, 0x20f0f: 0x6c8b3420, + 0x20f12: 0x6cd53e20, 0x20f13: 0x6cfd1a20, + 0x20f16: 0x6c415420, + 0x20f22: 0x6cdf4420, + 0x20f27: 0x6ce52220, + 0x20f2f: 0x6c9c1020, + 0x20f31: 0x6c2ba220, 0x20f33: 0x6c9ddc20, + 0x20f3e: 0x6c5afa20, + // Block 0x83d, offset 0x20f40 + 0x20f49: 0x6c351c20, + 0x20f4d: 0x6c8b4a20, + 0x20f52: 0x6c7f6820, 0x20f53: 0x6d1aa820, + 0x20f54: 0x6c804620, 0x20f56: 0x6c68a020, + 0x20f58: 0x6c5e2620, + 0x20f63: 0x6c4c4c20, + 0x20f66: 0x6d2e9420, + 0x20f6d: 0x6c9d0820, + 0x20f70: 0x6c7c5020, + 0x20f77: 0x6c352620, + 0x20f7f: 0x6d1ab020, + // Block 0x83e, offset 0x20f80 + 0x20f87: 0x6c836020, + 0x20f95: 0x6c462a20, + 0x20f9b: 0x6ce6ac20, + 0x20f9c: 0x6d10c820, 0x20f9e: 0x6cedf620, + 0x20fa3: 0x6c6aa020, + 0x20fa8: 0x6d04c220, 0x20faa: 0x6cd5c020, + 0x20fb1: 0x6cf08c20, + 0x20fb4: 0x6d236620, + // Block 0x83f, offset 0x20fc0 + 0x20fc1: 0x6d2da620, + 0x20fc9: 0x6c01ee20, + 0x20fcf: 0x6cca9a20, + 0x20fd0: 0x6c1e0c20, 0x20fd2: 0x6c7ae220, + 0x20fd6: 0x6c71a020, 0x20fd7: 0x6c4d5220, + 0x20fe2: 0x6c9e0420, + 0x20fe7: 0x6c4f9420, + 0x20fea: 0x6c1d9e20, + 0x20fee: 0x6c8d1a20, + 0x20ff0: 0x6d3f9620, + // Block 0x840, offset 0x21000 + 0x21009: 0x6c7d4820, + 0x2100c: 0x6d378c20, 0x2100e: 0x6d2f5420, + 0x21010: 0x6c2f2e20, 0x21011: 0x6c467420, 0x21012: 0x6d279620, 0x21013: 0x6c27c620, + 0x21014: 0x6caada20, + 0x2101b: 0x6c0dd820, + 0x2101d: 0x6cc47420, 0x2101e: 0x6c14c420, + 0x21022: 0x6cc70620, 0x21023: 0x6d19c820, + 0x21024: 0x6c14c620, 0x21027: 0x6d361a20, + 0x2102a: 0x6c48f820, 0x2102b: 0x6caabe20, + 0x2102c: 0x6ccfe420, 0x2102f: 0x6cdac620, + 0x21032: 0x6cf2b820, 0x21033: 0x6c1bb220, + 0x2103a: 0x6c9ee220, 0x2103b: 0x6d347e20, + 0x2103e: 0x6cb50a20, + // Block 0x841, offset 0x21040 + 0x21041: 0x6c465820, + 0x21046: 0x6c90fa20, + 0x21048: 0x6d3ea020, + 0x2104d: 0x6c293a20, 0x2104f: 0x6cfc6820, + 0x21051: 0x6cc77e20, + 0x21057: 0x6caefe20, + 0x2105e: 0x6cf56c20, + 0x21062: 0x6c7aba20, + 0x21064: 0x6c4b2620, 0x21065: 0x6c212e20, 0x21066: 0x6c6baa20, + 0x21072: 0x6c6bac20, 0x21073: 0x6cf57820, + 0x21075: 0x6c7a1a20, 0x21077: 0x6c46ec20, + 0x21078: 0x6d2cac20, 0x21079: 0x6c392620, + 0x2107c: 0x6d015a20, + // Block 0x842, offset 0x21080 + 0x2108d: 0x6c585e20, 0x2108f: 0x6ca79020, + 0x21090: 0x6cf85820, + 0x2109b: 0x6c240820, + 0x2109d: 0x6c4bba20, + 0x210a1: 0x6cf5b620, + 0x210a7: 0x6cb83620, + 0x210aa: 0x6c981c20, + 0x210ad: 0x6d303220, + 0x210b0: 0x6c734620, + 0x210b4: 0x6c0ca020, + // Block 0x843, offset 0x210c0 + 0x210c0: 0x6c0ca220, + 0x210c5: 0x6cc2d620, + 0x210cb: 0x6cf88620, + 0x210ce: 0x6c68f020, + 0x210d0: 0x6cc2ea20, 0x210d1: 0x6d352620, 0x210d2: 0x6ce46820, 0x210d3: 0x6c762a20, + 0x210d8: 0x6cca1a20, 0x210db: 0x6d3e4c20, + 0x210e3: 0x6c6adc20, + 0x210ea: 0x6c0cec20, + 0x210ec: 0x6c312c20, 0x210ed: 0x6d417620, + 0x210f6: 0x6d0db020, + // Block 0x844, offset 0x21100 + 0x21101: 0x6c0a1c20, + 0x21105: 0x6c7b0020, 0x21107: 0x6d0eb620, + 0x21108: 0x6cef3820, 0x2110a: 0x6c583420, + 0x2110c: 0x6c506420, + 0x21111: 0x6c45b820, + 0x21114: 0x6c9b5420, 0x21117: 0x6c82e420, + 0x21119: 0x6c2cae20, 0x2111b: 0x6c0e0220, + 0x2111c: 0x6c584420, 0x2111f: 0x6cebfe20, + 0x21120: 0x6c751420, + 0x21128: 0x6c1bda20, + 0x2112d: 0x6c030e20, 0x2112e: 0x6c6fa420, + 0x21137: 0x6c2c0e20, + 0x21139: 0x6d2f1c20, 0x2113b: 0x6c26e620, + 0x2113c: 0x6cd23820, 0x2113d: 0x6c501420, + // Block 0x845, offset 0x21140 + 0x2114c: 0x6d12c020, + 0x21157: 0x6c091a20, + 0x21158: 0x6cb05020, 0x21159: 0x6d118820, + 0x2115c: 0x6c2b1420, 0x2115d: 0x6c11ee20, 0x2115e: 0x6cb20220, 0x2115f: 0x6d268420, + 0x21160: 0x6cbc7820, 0x21161: 0x6caf3220, + 0x21175: 0x6ceb7020, 0x21176: 0x6d015c20, + 0x2117d: 0x6d12cc20, + // Block 0x846, offset 0x21180 + 0x21180: 0x6c392820, 0x21181: 0x6c484620, 0x21182: 0x6c566e20, 0x21183: 0x6cc7fa20, + 0x21189: 0x6cc4b620, 0x2118a: 0x6c3d2020, 0x2118b: 0x6c598020, + 0x2119a: 0x6cc79020, + 0x211a2: 0x6c993020, + 0x211a5: 0x6c32f620, 0x211a6: 0x6c5b9820, 0x211a7: 0x6cf85a20, + 0x211a8: 0x6d04bc20, 0x211ab: 0x6cc4b820, + 0x211ac: 0x6d13d620, 0x211af: 0x6d303420, + 0x211b1: 0x6c61c620, 0x211b2: 0x6c434020, 0x211b3: 0x6d203820, + 0x211b5: 0x6cb40620, + // Block 0x847, offset 0x211c0 + 0x211c8: 0x6c1f2220, 0x211c9: 0x6c240a20, 0x211ca: 0x6d303620, 0x211cb: 0x6ca79220, + 0x211cd: 0x6cbca620, + 0x211d0: 0x6c13d220, 0x211d2: 0x6ca79420, 0x211d3: 0x6cdbb620, + 0x211d9: 0x6c13d420, 0x211da: 0x6c19da20, 0x211db: 0x6d10e020, + 0x211dc: 0x6c324820, 0x211dd: 0x6cedc820, 0x211df: 0x6ca76220, + 0x211e0: 0x6c9c4420, + 0x211e6: 0x6caa1620, 0x211e7: 0x6cf87820, + 0x211e9: 0x6d109820, 0x211eb: 0x6c14c820, + // Block 0x848, offset 0x21200 + 0x21218: 0x6d018c20, 0x21219: 0x6c9ed420, 0x2121a: 0x6c796420, + 0x2121c: 0x6c243a20, 0x2121e: 0x6cd13620, 0x2121f: 0x6cacb620, + 0x21220: 0x6c569c20, 0x21222: 0x6c78b020, 0x21223: 0x6cfcc220, + 0x21225: 0x6c53fa20, 0x21226: 0x6cbf2020, 0x21227: 0x6d3f8220, + 0x2122a: 0x6c3e7420, 0x2122b: 0x6ca3be20, + 0x2122d: 0x6ca69e20, 0x2122f: 0x6c7a7a20, + 0x2123e: 0x6ca59820, + // Block 0x849, offset 0x21240 + 0x2124d: 0x6c439020, + 0x21251: 0x6c53fc20, 0x21253: 0x6c002620, + 0x21255: 0x6cd1ba20, + 0x2125e: 0x6d04d420, 0x2125f: 0x6c230e20, + 0x21260: 0x6c684420, 0x21262: 0x6d2c3220, 0x21263: 0x6cfebe20, + 0x21264: 0x6c88f820, 0x21265: 0x6cc24820, + 0x21268: 0x6ccd4420, 0x21269: 0x6d01c020, 0x2126b: 0x6c461c20, + 0x2126c: 0x6c9ed820, 0x2126d: 0x6c148020, 0x2126f: 0x6c371620, + 0x21273: 0x6c312220, + // Block 0x84a, offset 0x21280 + 0x21286: 0x6c79f020, + 0x2128a: 0x6ce58a20, 0x2128b: 0x6cd1cc20, + 0x2128f: 0x6cca7020, + 0x21292: 0x6c491a20, + 0x21296: 0x6c505620, 0x21297: 0x6d367c20, + 0x21298: 0x6d106620, 0x21299: 0x6ce70020, 0x2129a: 0x6c09ee20, + 0x2129c: 0x6ca06420, 0x2129e: 0x6c3ebe20, + 0x212a5: 0x6cbb1420, + 0x212b9: 0x6d367e20, + 0x212bc: 0x6cd9ca20, 0x212bf: 0x6ca7a020, + // Block 0x84b, offset 0x212c0 + 0x212c0: 0x6c738020, 0x212c2: 0x6d105620, + 0x212c4: 0x6c599e20, + 0x212c8: 0x6c080020, 0x212c9: 0x6ca06620, 0x212ca: 0x6c176a20, + 0x212ce: 0x6c93a420, 0x212cf: 0x6cce8220, + 0x212d0: 0x6c104220, 0x212d1: 0x6d2b8820, 0x212d2: 0x6cd81020, + 0x212d4: 0x6d41c420, 0x212d5: 0x6d265620, 0x212d6: 0x6d294c20, 0x212d7: 0x6c948e20, + 0x212e5: 0x6cc1b020, + 0x212fa: 0x6c9e9820, + // Block 0x84c, offset 0x21300 + 0x21300: 0x6d3bd820, + 0x21308: 0x6c297e20, 0x2130a: 0x6d250a20, + 0x21312: 0x6c71d220, + 0x21315: 0x6c5b6020, 0x21316: 0x6cb7d020, + 0x21318: 0x6d285220, 0x2131a: 0x6c97fe20, + 0x2131c: 0x6ca0aa20, + 0x21331: 0x6cb16220, 0x21333: 0x6c6d4a20, + 0x21339: 0x6d10b820, + // Block 0x84d, offset 0x21340 + 0x21340: 0x6c1c6820, 0x21341: 0x6ca6c620, 0x21342: 0x6cd9de20, + 0x21348: 0x6cd61a20, 0x2134b: 0x6cb16420, + 0x21354: 0x6c4f1620, + 0x21360: 0x6d10be20, 0x21362: 0x6ca56020, + 0x2136a: 0x6cd3f020, + 0x2136c: 0x6d251820, 0x2136e: 0x6c114c20, 0x2136f: 0x6c6b5220, + 0x21379: 0x6d023e20, + 0x2137d: 0x6d0cec20, 0x2137e: 0x6cff3620, + // Block 0x84e, offset 0x21380 + 0x2138b: 0x6d025020, + 0x2138c: 0x6c86ec20, 0x2138e: 0x6c397620, + 0x21397: 0x6d3b3c20, + 0x21399: 0x6ca37220, 0x2139b: 0x6d3bb620, + 0x2139e: 0x6c7c4c20, + 0x213a2: 0x6c957020, + 0x213ab: 0x6cb83220, + 0x213b6: 0x6ceca820, + 0x213bd: 0x6cd54c20, 0x213bf: 0x6c1a7c20, + // Block 0x84f, offset 0x213c0 + 0x213c1: 0x6d164620, + 0x213c6: 0x6c500820, + 0x213c8: 0x6c698220, 0x213cb: 0x6c5b8e20, + 0x213cd: 0x6cffce20, 0x213ce: 0x6c222020, + 0x213de: 0x6c61a220, + 0x213e6: 0x6ca62e20, + 0x213e8: 0x6ca63420, 0x213e9: 0x6ce3bc20, + 0x213f6: 0x6c724820, + 0x213f8: 0x6ca04220, + 0x213fd: 0x6c83d220, 0x213ff: 0x6d382c20, + // Block 0x850, offset 0x21400 + 0x21401: 0x6d06d420, 0x21403: 0x6cbf3820, + 0x21404: 0x6c3e9620, 0x21406: 0x6c0d7e20, + 0x2140a: 0x6c621620, + 0x2140d: 0x6cb5f420, 0x2140e: 0x6cf89c20, + 0x21414: 0x6c2ada20, 0x21415: 0x6c376020, + 0x2141b: 0x6cd53220, + 0x2141c: 0x6ce77820, 0x2141d: 0x6cff9620, 0x2141f: 0x6cb01c20, + 0x21428: 0x6c284020, 0x2142a: 0x6c60da20, + 0x21433: 0x6d002020, + 0x21437: 0x6c23ca20, + 0x2143b: 0x6c0d1c20, + 0x2143c: 0x6cc6f020, + // Block 0x851, offset 0x21440 + 0x2144d: 0x6c9e4a20, + 0x21452: 0x6c9e4c20, + 0x21454: 0x6cd49c20, 0x21455: 0x6cff6c20, 0x21456: 0x6c05e420, 0x21457: 0x6cec2220, + 0x21459: 0x6cad8020, + 0x21463: 0x6c410e20, + 0x21465: 0x6c549c20, 0x21466: 0x6c525420, + 0x21468: 0x6d39f220, 0x21469: 0x6c48c420, + 0x2146d: 0x6c4b3820, + 0x21479: 0x6c273e20, + 0x2147c: 0x6c0d2820, 0x2147d: 0x6c5a4420, + // Block 0x852, offset 0x21480 + 0x21480: 0x6c13d620, + 0x21484: 0x6cfa3420, 0x21485: 0x6c710220, 0x21487: 0x6d119a20, + 0x21496: 0x6c3bb620, 0x21497: 0x6d2a7420, + 0x2149b: 0x6c3c3020, + 0x214a2: 0x6c708020, 0x214a3: 0x6d230a20, + 0x214a9: 0x6c5cbe20, + 0x214b2: 0x6c6ab020, 0x214b3: 0x6d049020, + 0x214b5: 0x6ca3ba20, + 0x214bb: 0x6caa1820, + 0x214bd: 0x6cd13820, 0x214bf: 0x6d233420, + // Block 0x853, offset 0x214c0 + 0x214c2: 0x6c587620, 0x214c3: 0x6c450c20, + 0x214c4: 0x6ced1620, 0x214c6: 0x6ceb1e20, 0x214c7: 0x6cbb7820, + 0x214d8: 0x6d1b5220, 0x214da: 0x6c635e20, + 0x214e1: 0x6cdd7220, 0x214e3: 0x6c6ade20, + 0x214e4: 0x6cf64020, 0x214e5: 0x6cf25020, + 0x214e9: 0x6c986620, + 0x214f6: 0x6d0fbe20, + 0x214f8: 0x6d110820, + 0x214fd: 0x6c986c20, 0x214fe: 0x6cab3e20, + // Block 0x854, offset 0x21500 + 0x21501: 0x6c017020, + 0x21505: 0x6c910c20, + 0x21511: 0x6c366e20, 0x21512: 0x6d3f1e20, + 0x21517: 0x6c367020, + 0x21519: 0x6c01c820, + 0x2151e: 0x6c5de220, + 0x21520: 0x6c135220, + 0x21530: 0x6d049c20, 0x21531: 0x6c625e20, 0x21533: 0x6d424e20, + 0x21535: 0x6cb63620, + 0x2153a: 0x6d32ee20, + // Block 0x855, offset 0x21540 + 0x21540: 0x6c5f2e20, 0x21541: 0x6cb52e20, 0x21542: 0x6c732420, 0x21543: 0x6ca91c20, + 0x2155f: 0x6ccb7220, + 0x21565: 0x6c51fa20, 0x21566: 0x6cc72c20, 0x21567: 0x6cbdec20, + 0x2156c: 0x6c70de20, 0x2156f: 0x6c86ee20, + 0x21575: 0x6cd29020, + 0x21578: 0x6ca6da20, 0x21579: 0x6cfbc420, 0x2157a: 0x6c3dbc20, + 0x2157d: 0x6cc80820, + // Block 0x856, offset 0x21580 + 0x21581: 0x6d04ac20, 0x21582: 0x6c4ba220, + 0x21584: 0x6c62e020, 0x21586: 0x6c9bf820, 0x21587: 0x6c3dc020, + 0x21589: 0x6cc9ee20, 0x2158a: 0x6d247820, 0x2158b: 0x6c69de20, + 0x2158c: 0x6c9c2220, 0x2158d: 0x6c900e20, 0x2158e: 0x6cbb0020, + 0x21590: 0x6c9cc620, 0x21593: 0x6d15a420, + 0x21596: 0x6c4dc620, 0x21597: 0x6ca6e620, + 0x21598: 0x6c81ee20, 0x21599: 0x6ccbbe20, + 0x2159c: 0x6c8c4220, 0x2159e: 0x6d22c220, + 0x215a5: 0x6caab020, + 0x215ab: 0x6cf4c020, + 0x215af: 0x6c0b3620, + 0x215b2: 0x6c0b3820, 0x215b3: 0x6d079620, + 0x215b5: 0x6c649620, + 0x215b8: 0x6c0b3c20, + // Block 0x857, offset 0x215c0 + 0x215c2: 0x6c2a7a20, + 0x215c7: 0x6d3b8620, + 0x215cb: 0x6cc72020, + 0x215d0: 0x6cd69820, + 0x215d8: 0x6c631820, 0x215db: 0x6c5b4a20, + 0x215de: 0x6d2d5c20, + 0x215e2: 0x6c042e20, 0x215e3: 0x6c8ac420, + 0x215e5: 0x6d003820, + 0x215ed: 0x6c656c20, 0x215ee: 0x6cd44020, + 0x215f3: 0x6c77ba20, + 0x215f7: 0x6c490c20, + 0x215f8: 0x6c949420, + 0x215fe: 0x6caa1a20, 0x215ff: 0x6c16e820, + // Block 0x858, offset 0x21600 + 0x2160e: 0x6c895220, + 0x21619: 0x6ca3c620, 0x2161a: 0x6cc80020, + 0x2161e: 0x6d368020, + 0x21626: 0x6c128620, + 0x21630: 0x6c867420, + 0x2163b: 0x6c7fcc20, + 0x2163f: 0x6c14e220, + // Block 0x859, offset 0x21640 + 0x21641: 0x6cedba20, + 0x21644: 0x6c856620, 0x21647: 0x6cf49620, + 0x21648: 0x6cad4220, 0x21649: 0x6d200a20, 0x2164b: 0x6c415e20, + 0x2164f: 0x6c011420, + 0x21650: 0x6d04b420, 0x21651: 0x6cd70420, 0x21652: 0x6cc8aa20, + 0x21658: 0x6c04b620, 0x21659: 0x6d1eea20, + 0x21662: 0x6c5d6e20, + 0x21665: 0x6c5a9c20, + 0x21668: 0x6d428c20, 0x21669: 0x6cfe9820, 0x2166b: 0x6c9dba20, + 0x21670: 0x6c40d620, 0x21671: 0x6d25e220, 0x21673: 0x6c0ff020, + 0x21674: 0x6c17ba20, 0x21675: 0x6ce9e220, 0x21677: 0x6c0ff220, + 0x2167d: 0x6c40d820, 0x2167f: 0x6ce55820, + // Block 0x85a, offset 0x21680 + 0x21680: 0x6ca2dc20, + 0x21685: 0x6c556a20, 0x21686: 0x6ca83c20, + 0x2168b: 0x6c5b3e20, + 0x2168c: 0x6c90ea20, 0x2168e: 0x6ce35020, + 0x21690: 0x6cbc5420, 0x21691: 0x6cbbee20, 0x21692: 0x6d380620, + 0x21696: 0x6c2b4220, + 0x2169a: 0x6c8bd820, + 0x2169d: 0x6cc32c20, 0x2169e: 0x6d3b9a20, + 0x216a0: 0x6c828e20, 0x216a2: 0x6d013620, + 0x216a5: 0x6cc56220, + 0x216a8: 0x6c28f620, 0x216aa: 0x6c316020, 0x216ab: 0x6ca71420, + 0x216af: 0x6cd2ae20, + 0x216b2: 0x6cfb2020, + 0x216b9: 0x6d343820, + 0x216bd: 0x6c008820, 0x216be: 0x6c21f220, 0x216bf: 0x6cb42a20, + // Block 0x85b, offset 0x216c0 + 0x216c1: 0x6cd2b620, + 0x216c5: 0x6cc0de20, 0x216c6: 0x6cd55020, 0x216c7: 0x6c2cbe20, + 0x216c9: 0x6cffa420, 0x216ca: 0x6cd70a20, + 0x216cc: 0x6c586020, + 0x216d0: 0x6d149220, 0x216d1: 0x6c72dc20, + 0x216d4: 0x6d34fc20, + 0x216dc: 0x6d2f9e20, + 0x216e3: 0x6d06a220, + 0x216ef: 0x6c905a20, + 0x216f1: 0x6d3aca20, 0x216f3: 0x6cdd5620, + 0x216f7: 0x6c2e8020, + 0x216fa: 0x6cc18420, + 0x216fc: 0x6c78a220, 0x216fd: 0x6c54ba20, 0x216fe: 0x6c708220, + // Block 0x85c, offset 0x21700 + 0x21700: 0x6cbea420, + 0x2170d: 0x6c0dae20, + 0x21715: 0x6ce3f220, 0x21717: 0x6c744820, + 0x2171a: 0x6cc05a20, + 0x21723: 0x6c67e420, + 0x2172a: 0x6d282e20, + 0x2172d: 0x6c9a9a20, 0x2172e: 0x6caf6e20, + 0x21730: 0x6cc1a020, + 0x2173c: 0x6c9d5220, 0x2173f: 0x6ce3fe20, + // Block 0x85d, offset 0x21740 + 0x21742: 0x6c768c20, + 0x21744: 0x6c08e820, 0x21746: 0x6cc11c20, + 0x2174f: 0x6ce56620, + 0x21751: 0x6c1f6c20, + 0x21758: 0x6c714a20, 0x2175a: 0x6cf69620, + 0x2175e: 0x6c8c5e20, + 0x2176d: 0x6c1bca20, 0x2176e: 0x6c5f7e20, + 0x21774: 0x6c917a20, + 0x21778: 0x6c876220, + 0x2177e: 0x6c73c820, + // Block 0x85e, offset 0x21780 + 0x21785: 0x6d397c20, 0x21786: 0x6c921020, + 0x2178e: 0x6ca7f620, + 0x21794: 0x6cc2c020, + 0x217ad: 0x6d0b6820, 0x217af: 0x6c35c220, + 0x217b1: 0x6c564020, + // Block 0x85f, offset 0x217c0 + 0x217c0: 0x6c982620, + 0x217c9: 0x6cf4a020, + 0x217cc: 0x6c137620, + 0x217d1: 0x6cbd1820, 0x217d2: 0x6c6a6220, 0x217d3: 0x6c52f420, + 0x217d5: 0x6c27b620, 0x217d6: 0x6c371c20, 0x217d7: 0x6d2b3a20, + 0x217d8: 0x6c565220, 0x217d9: 0x6c020e20, 0x217da: 0x6c6bb220, 0x217db: 0x6c3faa20, + 0x217dc: 0x6d1e7020, 0x217de: 0x6c3c1a20, + 0x217ec: 0x6ca26620, + 0x217f6: 0x6ccb1620, 0x217f7: 0x6c238a20, + 0x217fb: 0x6c772220, + // Block 0x860, offset 0x21800 + 0x21802: 0x6d11ea20, 0x21803: 0x6c008c20, + 0x21804: 0x6c05a620, 0x21806: 0x6cb34c20, + 0x21808: 0x6cd2b820, 0x21809: 0x6c392a20, 0x2180b: 0x6c70f420, + 0x2180c: 0x6cafb420, 0x2180e: 0x6cf07420, 0x2180f: 0x6c7a2220, + 0x21810: 0x6cbc8620, 0x21811: 0x6c417220, + 0x21822: 0x6c7be220, 0x21823: 0x6cdc2420, + 0x21824: 0x6c07d620, 0x21825: 0x6c632820, 0x21826: 0x6d0b8020, + 0x2182a: 0x6c76fe20, 0x2182b: 0x6ca7f820, + 0x2182d: 0x6d03cc20, 0x2182f: 0x6cf85c20, + 0x21831: 0x6c8c4a20, 0x21832: 0x6c347e20, + 0x21834: 0x6c159a20, + // Block 0x861, offset 0x21840 + 0x21848: 0x6cd32e20, 0x2184b: 0x6c334020, + 0x2184d: 0x6c675020, 0x2184e: 0x6d222a20, 0x2184f: 0x6c922020, + 0x21850: 0x6c372020, 0x21853: 0x6c476420, + 0x21855: 0x6cefa020, 0x21856: 0x6c17d620, 0x21857: 0x6c590020, + 0x21858: 0x6c0ce220, 0x2185b: 0x6c4e9420, + 0x2185c: 0x6ce99e20, 0x2185d: 0x6ca32420, 0x2185e: 0x6cb6e620, + 0x21860: 0x6ce7e820, 0x21861: 0x6d24d220, 0x21862: 0x6cede020, + 0x21864: 0x6cf3b020, 0x21865: 0x6c434220, + 0x21868: 0x6c792e20, 0x2186a: 0x6d14ba20, + 0x21878: 0x6cfe9a20, 0x2187a: 0x6c4ae420, 0x2187b: 0x6d0b8c20, + 0x2187c: 0x6cdc2e20, 0x2187d: 0x6cd95420, 0x2187f: 0x6d3d3820, + // Block 0x862, offset 0x21880 + 0x21882: 0x6ce84a20, 0x21883: 0x6cfbf420, + 0x21888: 0x6d2b4420, 0x21889: 0x6c85c620, + 0x2188c: 0x6d3acc20, 0x2188e: 0x6c6aa220, + 0x21891: 0x6ce3e820, + 0x21894: 0x6d009c20, 0x21895: 0x6cbf1220, 0x21897: 0x6d0b9420, + 0x21898: 0x6c708620, 0x2189b: 0x6d1a5a20, + 0x2189c: 0x6d345220, 0x2189e: 0x6c76d020, 0x2189f: 0x6d3e2220, + 0x218a1: 0x6c77f420, 0x218a3: 0x6ca81220, + 0x218a4: 0x6cbb0620, 0x218a5: 0x6ced0220, 0x218a6: 0x6d2abc20, + 0x218a8: 0x6c708820, 0x218aa: 0x6d3f4220, + // Block 0x863, offset 0x218c0 + 0x218c4: 0x6d0b9620, 0x218c7: 0x6c8bae20, + 0x218c9: 0x6cb5c020, + 0x218ce: 0x6c5b3420, + 0x218d3: 0x6cb77a20, + 0x218d5: 0x6d0fa820, 0x218d6: 0x6cdc3620, + 0x218d8: 0x6cb6f220, 0x218d9: 0x6c4a5620, + 0x218e2: 0x6cbe1020, 0x218e3: 0x6c353e20, + 0x218e5: 0x6d429820, + 0x218e8: 0x6d2b4820, 0x218e9: 0x6cb77c20, 0x218ea: 0x6c602e20, + 0x218ec: 0x6ceb2020, 0x218ed: 0x6c2e9c20, 0x218ef: 0x6c5bbe20, + 0x218f0: 0x6c98e420, 0x218f2: 0x6d063e20, + 0x218f5: 0x6c53fe20, 0x218f6: 0x6d0d7c20, 0x218f7: 0x6cfdc220, + 0x218f8: 0x6c231020, 0x218f9: 0x6c555820, + 0x218fc: 0x6c01c020, 0x218fe: 0x6c0de420, + // Block 0x864, offset 0x21900 + 0x21907: 0x6c348e20, + 0x21910: 0x6d3a6a20, 0x21911: 0x6c2e9e20, 0x21912: 0x6d1ea220, 0x21913: 0x6cb6fa20, + 0x21914: 0x6cd26820, 0x21915: 0x6d099a20, 0x21916: 0x6d1ea420, 0x21917: 0x6c76ae20, + 0x21918: 0x6cbc2420, 0x2191b: 0x6cbab620, + 0x2191c: 0x6cae3e20, 0x2191f: 0x6cc2ee20, + 0x21921: 0x6d1c6e20, + 0x21927: 0x6ccbf220, + 0x2192b: 0x6ce1d020, + 0x2192d: 0x6c53c020, 0x2192e: 0x6cb06220, 0x2192f: 0x6d110a20, + 0x21934: 0x6ce8bc20, 0x21935: 0x6c148220, 0x21937: 0x6cfa3c20, + 0x21938: 0x6cb5f620, 0x2193a: 0x6cbf3a20, + 0x2193d: 0x6c6d1220, + // Block 0x865, offset 0x21940 + 0x21948: 0x6d316020, + 0x2194c: 0x6d39ae20, 0x2194e: 0x6cf64420, + 0x21950: 0x6cf22a20, 0x21951: 0x6d37f820, + 0x21955: 0x6cdc4420, + 0x21958: 0x6c781020, 0x21959: 0x6c7e0c20, 0x2195a: 0x6c777220, + 0x2195d: 0x6c176c20, 0x2195e: 0x6c09f020, 0x2195f: 0x6ca13a20, + 0x21960: 0x6d3b1220, 0x21961: 0x6c4edc20, 0x21962: 0x6d227820, 0x21963: 0x6d153220, + 0x21964: 0x6c966c20, 0x21967: 0x6cb7aa20, + 0x21968: 0x6c4c0020, 0x21969: 0x6c97e420, 0x2196a: 0x6c89f420, 0x2196b: 0x6c8bc020, + 0x2196c: 0x6d40c620, 0x2196d: 0x6c82cc20, 0x2196e: 0x6c56b220, 0x2196f: 0x6c209220, + 0x21970: 0x6cb7ac20, 0x21971: 0x6c824420, + // Block 0x866, offset 0x21980 + 0x21981: 0x6c1ac420, 0x21983: 0x6cb33020, + 0x21984: 0x6c2eca20, + 0x2198a: 0x6c82ce20, + 0x2198e: 0x6d160420, + 0x21993: 0x6c2d7620, + 0x21996: 0x6c33a420, 0x21997: 0x6c42d620, + 0x21998: 0x6c54f220, 0x2199a: 0x6cff0020, 0x2199b: 0x6c40ca20, + 0x2199c: 0x6cae8020, + 0x219ac: 0x6cd06a20, + 0x219b1: 0x6cef2a20, + 0x219bb: 0x6c335820, + 0x219bc: 0x6c177220, 0x219bd: 0x6d1b0420, 0x219be: 0x6c7b3a20, 0x219bf: 0x6c7a6020, + // Block 0x867, offset 0x219c0 + 0x219c1: 0x6d41ce20, 0x219c2: 0x6c47ca20, + 0x219c5: 0x6d285420, 0x219c6: 0x6d36da20, + 0x219c9: 0x6c629420, 0x219ca: 0x6c199020, + 0x219d6: 0x6d020e20, + 0x219db: 0x6d419e20, + 0x219dc: 0x6c017420, 0x219dd: 0x6c4fb220, + 0x219e0: 0x6cb36020, 0x219e2: 0x6c2b9820, 0x219e3: 0x6d135820, + 0x219e7: 0x6ca4c420, + 0x219f1: 0x6c6b4220, 0x219f2: 0x6c059220, 0x219f3: 0x6c804020, + 0x219f4: 0x6c124820, 0x219f6: 0x6c0a6620, + 0x219fb: 0x6d2e1a20, + 0x219fc: 0x6cb7e620, + // Block 0x868, offset 0x21a00 + 0x21a02: 0x6ca4c620, + 0x21a05: 0x6c940c20, 0x21a07: 0x6c7c0a20, + 0x21a09: 0x6ca08420, 0x21a0b: 0x6c82e620, + 0x21a0c: 0x6cad7420, + 0x21a12: 0x6c86c420, 0x21a13: 0x6c136420, + 0x21a15: 0x6c299820, 0x21a16: 0x6c82e820, + 0x21a19: 0x6c36cc20, 0x21a1b: 0x6c086020, + 0x21a1c: 0x6c74e820, + 0x21a25: 0x6d083420, 0x21a26: 0x6ca89420, + 0x21a28: 0x6c4d7c20, + 0x21a2e: 0x6cfc4220, + 0x21a30: 0x6c661620, 0x21a31: 0x6c9c9e20, 0x21a32: 0x6ca8a020, + 0x21a3b: 0x6c124a20, + 0x21a3c: 0x6cd97820, 0x21a3d: 0x6d2ba820, 0x21a3e: 0x6d194220, + // Block 0x869, offset 0x21a40 + 0x21a42: 0x6c1d3020, + 0x21a44: 0x6c125020, + 0x21a49: 0x6c830620, 0x21a4a: 0x6caad220, 0x21a4b: 0x6c876420, + 0x21a4e: 0x6c84ba20, 0x21a4f: 0x6c957220, + 0x21a53: 0x6ce18a20, + 0x21a56: 0x6ca8c420, 0x21a57: 0x6ca8c620, + 0x21a59: 0x6c5fae20, 0x21a5b: 0x6c831220, + 0x21a5d: 0x6ca48020, + 0x21a60: 0x6c8c1420, 0x21a61: 0x6c8dce20, + 0x21a64: 0x6cfbe220, 0x21a65: 0x6d24a820, 0x21a67: 0x6d28ec20, + 0x21a68: 0x6cc34a20, 0x21a69: 0x6c8ac020, + 0x21a6f: 0x6d22ce20, + 0x21a70: 0x6c597620, + 0x21a7a: 0x6ca4de20, + 0x21a7c: 0x6d0a7820, 0x21a7e: 0x6c711020, 0x21a7f: 0x6c5dbc20, + // Block 0x86a, offset 0x21a80 + 0x21a81: 0x6d179420, + 0x21a8a: 0x6cf71420, 0x21a8b: 0x6ccb8a20, + 0x21a8c: 0x6c697020, 0x21a8d: 0x6d1de020, + 0x21a95: 0x6cd18c20, 0x21a96: 0x6c6d8420, 0x21a97: 0x6ced6e20, + 0x21a98: 0x6d129e20, 0x21a99: 0x6c6f4420, + 0x21a9c: 0x6c45d020, + 0x21aa1: 0x6c5aa020, + 0x21aaa: 0x6c37a420, + 0x21ab5: 0x6c4e7a20, + 0x21abc: 0x6c3e3020, + // Block 0x86b, offset 0x21ac0 + 0x21ac0: 0x6c3e4a20, 0x21ac1: 0x6d3d4a20, 0x21ac2: 0x6c5eb620, + 0x21acf: 0x6c053a20, + 0x21ad2: 0x6cb56620, 0x21ad3: 0x6cd2a620, + 0x21ad5: 0x6c2df420, 0x21ad6: 0x6cadfa20, 0x21ad7: 0x6cfbe420, + 0x21ad8: 0x6cc9f620, + 0x21add: 0x6c169220, 0x21ade: 0x6d264620, + 0x21ae0: 0x6c455820, 0x21ae2: 0x6cf34220, + 0x21ae4: 0x6c3b0a20, 0x21ae7: 0x6c159020, + 0x21ae9: 0x6ca58420, 0x21aea: 0x6c73d820, + 0x21aec: 0x6d2f8220, 0x21aee: 0x6cb96c20, + 0x21af1: 0x6c029820, + 0x21af6: 0x6cedf820, 0x21af7: 0x6d379020, + 0x21af9: 0x6c597820, 0x21afb: 0x6c106620, + 0x21afc: 0x6d3a5a20, 0x21afd: 0x6c092e20, 0x21afe: 0x6c173620, 0x21aff: 0x6d328620, + // Block 0x86c, offset 0x21b00 + 0x21b00: 0x6c3de620, 0x21b01: 0x6c79b820, 0x21b03: 0x6d422c20, + 0x21b04: 0x6d086c20, 0x21b06: 0x6c3fb220, + 0x21b0a: 0x6d118a20, + 0x21b0d: 0x6c0e4e20, 0x21b0f: 0x6c06e220, + 0x21b10: 0x6d007c20, 0x21b11: 0x6cd33020, 0x21b12: 0x6d149620, + 0x21b14: 0x6c531020, 0x21b15: 0x6c251c20, 0x21b17: 0x6d16e620, + 0x21b18: 0x6d3b7620, + 0x21b1d: 0x6c1bf620, + 0x21b24: 0x6cb2fe20, + 0x21b28: 0x6d1a3a20, + 0x21b31: 0x6d260a20, + 0x21b36: 0x6c6edc20, + 0x21b39: 0x6c995c20, 0x21b3a: 0x6cba4820, + 0x21b3c: 0x6d172420, + // Block 0x86d, offset 0x21b40 + 0x21b40: 0x6cf3b220, + 0x21b4d: 0x6c069820, 0x21b4e: 0x6c5dbe20, 0x21b4f: 0x6c239420, + 0x21b50: 0x6c797220, + 0x21b55: 0x6cde4820, 0x21b57: 0x6c4ea620, + 0x21b58: 0x6cba4e20, + 0x21b5c: 0x6d345420, + 0x21b62: 0x6ccb2420, + 0x21b65: 0x6cb8d620, 0x21b66: 0x6c4cb420, + 0x21b69: 0x6c4bbe20, + 0x21b6c: 0x6c649820, 0x21b6d: 0x6d37b820, 0x21b6e: 0x6c9e2220, 0x21b6f: 0x6c4afa20, + 0x21b70: 0x6cd37e20, 0x21b71: 0x6ca1d220, 0x21b72: 0x6c363220, 0x21b73: 0x6c039e20, + 0x21b74: 0x6c7e7220, + 0x21b78: 0x6d392820, 0x21b7a: 0x6c603020, + // Block 0x86e, offset 0x21b80 + 0x21b80: 0x6d2a4a20, + 0x21b84: 0x6d2bd820, 0x21b85: 0x6d179820, 0x21b87: 0x6c468420, + 0x21b8a: 0x6c4a6e20, 0x21b8b: 0x6d1bc420, + 0x21b8c: 0x6ccc9820, 0x21b8d: 0x6c513420, 0x21b8e: 0x6c057820, 0x21b8f: 0x6ca12a20, + 0x21b90: 0x6c9b1e20, 0x21b93: 0x6cf4fe20, + 0x21b94: 0x6c277620, 0x21b97: 0x6c6f1620, + 0x21b9c: 0x6c4ed020, 0x21b9f: 0x6ce70220, + 0x21ba0: 0x6c79be20, 0x21ba1: 0x6c841220, 0x21ba2: 0x6d368220, 0x21ba3: 0x6c5bf420, + 0x21ba4: 0x6d296e20, 0x21ba6: 0x6c2dfc20, 0x21ba7: 0x6c244420, + 0x21bb1: 0x6d368420, 0x21bb3: 0x6c7adc20, + 0x21bb5: 0x6cfe4a20, 0x21bb6: 0x6c57ba20, 0x21bb7: 0x6c8a0c20, + 0x21bb8: 0x6c255620, 0x21bb9: 0x6cbb9a20, 0x21bba: 0x6c692420, + 0x21bbc: 0x6d05d020, 0x21bbd: 0x6c37da20, 0x21bbf: 0x6cead020, + // Block 0x86f, offset 0x21bc0 + 0x21bc0: 0x6ce00020, 0x21bc1: 0x6d36a820, + 0x21bc8: 0x6ca51020, 0x21bc9: 0x6c99ac20, 0x21bca: 0x6c2c8c20, 0x21bcb: 0x6c135820, + 0x21bce: 0x6c693a20, 0x21bcf: 0x6c884820, + 0x21bd1: 0x6ccc1820, 0x21bd2: 0x6c28aa20, + 0x21bd5: 0x6cdc6c20, 0x21bd6: 0x6c884a20, 0x21bd7: 0x6c4cf020, + 0x21bda: 0x6c0c7c20, + 0x21bdc: 0x6c22e220, 0x21bdd: 0x6c2d7e20, 0x21bde: 0x6c93fc20, 0x21bdf: 0x6ca64e20, + 0x21be0: 0x6d0dda20, 0x21be1: 0x6c7fbc20, + 0x21be4: 0x6c415620, 0x21be5: 0x6c1eb420, + 0x21be9: 0x6c0a8820, 0x21bea: 0x6d40ea20, 0x21beb: 0x6c5c6620, + 0x21bed: 0x6c7f4220, 0x21bee: 0x6cfbba20, 0x21bef: 0x6c3bfc20, + 0x21bf0: 0x6c520220, + 0x21bf9: 0x6d124020, 0x21bfa: 0x6d2e3220, + 0x21bfc: 0x6ca56620, 0x21bfe: 0x6c95d020, + // Block 0x870, offset 0x21c00 + 0x21c00: 0x6d25d620, 0x21c02: 0x6ca5ac20, + 0x21c09: 0x6cc58220, + 0x21c1c: 0x6c43e820, 0x21c1e: 0x6c65a820, 0x21c1f: 0x6cb2b420, + 0x21c23: 0x6c0d1620, + 0x21c26: 0x6c66d020, + 0x21c29: 0x6c0e2e20, + 0x21c2f: 0x6c9d1820, + 0x21c30: 0x6c563420, + 0x21c34: 0x6c2df220, 0x21c36: 0x6d1e8c20, 0x21c37: 0x6d108c20, + 0x21c38: 0x6c07d020, 0x21c3a: 0x6c189820, 0x21c3b: 0x6c5e8c20, + 0x21c3d: 0x6d108e20, + // Block 0x871, offset 0x21c40 + 0x21c47: 0x6c491020, + 0x21c48: 0x6d0e5e20, + 0x21c55: 0x6c1bc820, 0x21c57: 0x6ccc3a20, + 0x21c58: 0x6d0d3820, 0x21c59: 0x6d165e20, 0x21c5a: 0x6d166020, 0x21c5b: 0x6c17fc20, + 0x21c5e: 0x6c4e8220, 0x21c5f: 0x6c597420, + 0x21c64: 0x6cd71020, 0x21c65: 0x6cdc2220, 0x21c66: 0x6cc56820, 0x21c67: 0x6cdfcc20, + 0x21c68: 0x6d34e420, 0x21c6a: 0x6c391e20, 0x21c6b: 0x6c3cc620, + 0x21c70: 0x6cdfce20, 0x21c72: 0x6c9c3620, 0x21c73: 0x6cafb620, + 0x21c74: 0x6c106820, 0x21c75: 0x6ca30e20, 0x21c76: 0x6ce48220, 0x21c77: 0x6c036620, + 0x21c78: 0x6d16b020, + // Block 0x872, offset 0x21c80 + 0x21c82: 0x6d0d4820, + 0x21c84: 0x6ce54c20, 0x21c86: 0x6d10ce20, 0x21c87: 0x6cd04c20, + 0x21c88: 0x6c77dc20, 0x21c89: 0x6ce72420, 0x21c8b: 0x6d084420, + 0x21c93: 0x6d202820, + 0x21c95: 0x6c043a20, + 0x21c99: 0x6cf9a220, 0x21c9a: 0x6c938420, 0x21c9b: 0x6c7dce20, + 0x21c9c: 0x6d29d220, 0x21c9d: 0x6cc02c20, + 0x21ca0: 0x6c243020, 0x21ca1: 0x6d416a20, 0x21ca2: 0x6c90e020, + 0x21ca4: 0x6cf9a420, + 0x21caf: 0x6ccfca20, + 0x21cb2: 0x6cb43020, + 0x21cb4: 0x6c6da620, 0x21cb5: 0x6cbaae20, 0x21cb6: 0x6d175820, + 0x21cb8: 0x6ca81420, 0x21cb9: 0x6c32fc20, 0x21cbb: 0x6c6ab420, + 0x21cbc: 0x6cdc3820, 0x21cbd: 0x6d2e5820, 0x21cbe: 0x6c23e420, + // Block 0x873, offset 0x21cc0 + 0x21cc1: 0x6c07e420, 0x21cc2: 0x6c491220, 0x21cc3: 0x6ccf2a20, + 0x21cc5: 0x6c6cfe20, 0x21cc6: 0x6c2c3e20, + 0x21cd1: 0x6c27d220, 0x21cd3: 0x6ca3a220, + 0x21cd5: 0x6ca9fc20, 0x21cd7: 0x6c601820, + 0x21cd8: 0x6d0c8220, 0x21cda: 0x6caa2020, + 0x21cdc: 0x6c325a20, 0x21cdd: 0x6cf09020, 0x21cde: 0x6cb0f420, + 0x21ce2: 0x6c555a20, + 0x21ce4: 0x6c644020, 0x21ce5: 0x6d12ee20, 0x21ce6: 0x6c759220, 0x21ce7: 0x6c7f9c20, + 0x21ce8: 0x6c7e7420, 0x21ce9: 0x6d19de20, + 0x21ced: 0x6ce9a220, + 0x21cf5: 0x6ca4f620, + 0x21cfa: 0x6d411c20, + 0x21cff: 0x6c96c220, + // Block 0x874, offset 0x21d00 + 0x21d00: 0x6cd7f020, 0x21d01: 0x6d365420, + 0x21d04: 0x6c5ac020, 0x21d05: 0x6d3c8e20, 0x21d07: 0x6c5bd820, + 0x21d0d: 0x6c1e8c20, 0x21d0f: 0x6c182420, + 0x21d12: 0x6d04da20, 0x21d13: 0x6c7fa220, + 0x21d15: 0x6c232620, 0x21d16: 0x6cd0bc20, 0x21d17: 0x6ca13c20, + 0x21d18: 0x6d140220, 0x21d19: 0x6d111a20, 0x21d1a: 0x6cf7fa20, 0x21d1b: 0x6d419020, + 0x21d1c: 0x6c0e2820, + 0x21d27: 0x6d216c20, + 0x21d29: 0x6c927e20, + 0x21d2e: 0x6ce9b620, 0x21d2f: 0x6ceffe20, + 0x21d31: 0x6c3b8820, 0x21d32: 0x6cd06c20, + 0x21d3b: 0x6c8a0e20, + // Block 0x875, offset 0x21d40 + 0x21d42: 0x6cd56a20, 0x21d43: 0x6c284220, + 0x21d44: 0x6c732620, 0x21d45: 0x6d21a020, 0x21d46: 0x6d034a20, 0x21d47: 0x6d114220, + 0x21d48: 0x6cda5820, + 0x21d52: 0x6c5d8020, + 0x21d54: 0x6cb92220, + 0x21d5a: 0x6c967c20, + 0x21d5d: 0x6c767020, + 0x21d61: 0x6c91e620, 0x21d63: 0x6d1ebc20, + 0x21d6e: 0x6cfd2e20, + 0x21d79: 0x6cf40620, 0x21d7b: 0x6d1b2020, + 0x21d7c: 0x6cf72c20, 0x21d7f: 0x6d2d0820, + // Block 0x876, offset 0x21d80 + 0x21d80: 0x6d027020, + 0x21d84: 0x6cc1fa20, + 0x21d88: 0x6c84be20, + 0x21d8d: 0x6cb95820, + 0x21d94: 0x6c8dd020, 0x21d95: 0x6c947820, + 0x21d9a: 0x6c14b220, + 0x21da6: 0x6d334420, + 0x21da8: 0x6d0c8420, + 0x21db2: 0x6d1b3820, 0x21db3: 0x6c7c5c20, + 0x21db7: 0x6cc0d220, + 0x21db9: 0x6c3dd820, 0x21dbb: 0x6d22d420, + // Block 0x877, offset 0x21dc0 + 0x21dc1: 0x6cb57e20, + 0x21dc6: 0x6cb75620, 0x21dc7: 0x6c61a620, + 0x21dc8: 0x6d24ce20, + 0x21dce: 0x6c434420, 0x21dcf: 0x6c734820, + 0x21dd1: 0x6cb5a020, 0x21dd3: 0x6c411020, + 0x21dd5: 0x6cc37220, + 0x21dda: 0x6cf09220, + 0x21de7: 0x6d368620, + 0x21deb: 0x6c65ba20, + 0x21ded: 0x6cd8d620, + 0x21df0: 0x6d188c20, 0x21df1: 0x6cb91c20, + 0x21dfc: 0x6c856220, 0x21dff: 0x6d29ce20, + // Block 0x878, offset 0x21e00 + 0x21e00: 0x6d168020, 0x21e02: 0x6c110620, 0x21e03: 0x6d168220, + 0x21e04: 0x6c437220, 0x21e06: 0x6c2e6e20, + 0x21e08: 0x6d33a420, 0x21e09: 0x6d16ec20, 0x21e0b: 0x6d28fa20, + 0x21e0c: 0x6c275220, 0x21e0e: 0x6cdab220, + 0x21e14: 0x6c6b4420, 0x21e15: 0x6c193820, 0x21e16: 0x6cc1fc20, + 0x21e18: 0x6c4e7820, 0x21e19: 0x6cfb1e20, + 0x21e20: 0x6cc2ae20, 0x21e21: 0x6c6a5620, + 0x21e25: 0x6c733820, + 0x21e2a: 0x6c285c20, + 0x21e2d: 0x6c6c2420, + 0x21e34: 0x6c0da820, 0x21e35: 0x6c551a20, + 0x21e39: 0x6c73da20, 0x21e3b: 0x6d20b020, + // Block 0x879, offset 0x21e40 + 0x21e43: 0x6c84fa20, + 0x21e44: 0x6cbb0420, 0x21e45: 0x6cd70620, 0x21e46: 0x6c7a2420, + 0x21e48: 0x6d31b620, + 0x21e4d: 0x6c3de820, 0x21e4e: 0x6ccfac20, + 0x21e52: 0x6c20c020, + 0x21e55: 0x6ce72620, 0x21e57: 0x6d16ee20, + 0x21e59: 0x6d0f9220, + 0x21e5c: 0x6ceafa20, 0x21e5d: 0x6d385e20, 0x21e5e: 0x6c5ff220, + 0x21e64: 0x6d0a7a20, 0x21e66: 0x6cd05220, 0x21e67: 0x6d078820, + 0x21e6d: 0x6c8e4820, 0x21e6e: 0x6d24dc20, 0x21e6f: 0x6c554220, + 0x21e70: 0x6d334820, 0x21e73: 0x6cae6620, + 0x21e77: 0x6c742220, + // Block 0x87a, offset 0x21e80 + 0x21e82: 0x6d362020, 0x21e83: 0x6cb0f620, + 0x21e84: 0x6d261820, 0x21e86: 0x6c649a20, + 0x21e8a: 0x6cad0220, + 0x21e8e: 0x6d3bca20, + 0x21e90: 0x6cfb6e20, 0x21e92: 0x6c080220, + 0x21e94: 0x6c232820, 0x21e96: 0x6ca13e20, + 0x21e9a: 0x6c4c7420, + 0x21e9e: 0x6c1a3420, 0x21e9f: 0x6cbb9c20, + 0x21ea6: 0x6c0a4a20, + 0x21ea9: 0x6cbb4820, 0x21eab: 0x6d38aa20, + 0x21eb2: 0x6c38d020, 0x21eb3: 0x6c0cc420, + 0x21ebe: 0x6c0fa020, 0x21ebf: 0x6cc73220, + // Block 0x87b, offset 0x21ec0 + 0x21ec5: 0x6c2f8820, 0x21ec6: 0x6cc32e20, 0x21ec7: 0x6c703c20, + 0x21ec8: 0x6d117420, + 0x21ed3: 0x6cf98620, + 0x21ed6: 0x6d2a3e20, + 0x21edd: 0x6c27c820, 0x21edf: 0x6cf44420, + 0x21ee0: 0x6ceb1420, 0x21ee2: 0x6c54c820, + 0x21ee7: 0x6cf64620, + 0x21eec: 0x6c7f1a20, 0x21eee: 0x6c3a1620, + 0x21ef9: 0x6c55ec20, + // Block 0x87c, offset 0x21f00 + 0x21f06: 0x6cfa7220, + 0x21f09: 0x6ccd2c20, + 0x21f0d: 0x6c3a8420, + 0x21f10: 0x6c261820, 0x21f12: 0x6c3e3220, + 0x21f14: 0x6c1f3020, + 0x21f1d: 0x6c2fd020, 0x21f1e: 0x6c807020, + 0x21f29: 0x6cf7fc20, + 0x21f2f: 0x6c0c1420, + 0x21f30: 0x6d23e820, 0x21f31: 0x6cdc6e20, 0x21f32: 0x6cf80c20, + 0x21f37: 0x6cb3e620, + 0x21f3e: 0x6c697c20, + // Block 0x87d, offset 0x21f40 + 0x21f40: 0x6d166420, 0x21f43: 0x6cecb820, + 0x21f44: 0x6c611e20, 0x21f46: 0x6cecc620, 0x21f47: 0x6ce9f220, + 0x21f4b: 0x6c021020, + 0x21f4d: 0x6ce45820, 0x21f4e: 0x6c1b0020, + 0x21f52: 0x6cc46220, + 0x21f54: 0x6cc96820, 0x21f55: 0x6d1a2c20, 0x21f56: 0x6caf3420, 0x21f57: 0x6c228e20, + 0x21f58: 0x6ce71a20, 0x21f59: 0x6d1ace20, + 0x21f5c: 0x6c43c820, 0x21f5d: 0x6ce55020, 0x21f5e: 0x6d329620, 0x21f5f: 0x6d390c20, + 0x21f61: 0x6d149820, 0x21f62: 0x6c7ae420, 0x21f63: 0x6cd90c20, + 0x21f67: 0x6c2c2820, + 0x21f6c: 0x6d008820, 0x21f6e: 0x6cfe9e20, 0x21f6f: 0x6c4a1c20, + 0x21f70: 0x6ceb7420, 0x21f71: 0x6c3c3620, 0x21f72: 0x6cf3b420, + 0x21f75: 0x6d053220, + 0x21f7f: 0x6d1f1620, + // Block 0x87e, offset 0x21f80 + 0x21f81: 0x6c8ce020, 0x21f82: 0x6d0e6020, + 0x21f85: 0x6c2ff620, 0x21f86: 0x6cb77e20, 0x21f87: 0x6ce21a20, + 0x21f88: 0x6c4dfc20, 0x21f8a: 0x6c1b1c20, 0x21f8b: 0x6cd91820, + 0x21f91: 0x6cc35820, + 0x21f94: 0x6c4ea820, + 0x21f9f: 0x6cc77820, + 0x21fa0: 0x6cb78e20, 0x21fa1: 0x6c762c20, 0x21fa2: 0x6d211e20, 0x21fa3: 0x6c139a20, + 0x21fa4: 0x6c1a8220, 0x21fa5: 0x6d233a20, 0x21fa7: 0x6c0e2020, + 0x21fa9: 0x6c231220, 0x21faa: 0x6d39a420, + 0x21fac: 0x6d235420, + 0x21fb1: 0x6c744a20, 0x21fb2: 0x6c8f3620, 0x21fb3: 0x6ccab220, + 0x21fb4: 0x6d236820, + // Block 0x87f, offset 0x21fc0 + 0x21fc5: 0x6cd66820, + 0x21fcb: 0x6d262020, + 0x21fce: 0x6d2eba20, + 0x21fd1: 0x6cd66a20, 0x21fd3: 0x6c1ee420, + 0x21fd4: 0x6d2ec620, 0x21fd5: 0x6cca2020, 0x21fd6: 0x6cfabe20, + 0x21fd8: 0x6c24d820, 0x21fd9: 0x6c9bde20, 0x21fda: 0x6c2b7c20, + 0x21fde: 0x6d368820, 0x21fdf: 0x6c02de20, + 0x21fe6: 0x6d04e020, + 0x21fe8: 0x6cb11e20, 0x21fea: 0x6c69bc20, 0x21feb: 0x6c7b6c20, + 0x21fec: 0x6cc98620, 0x21fed: 0x6cfcf420, 0x21fee: 0x6d2cda20, 0x21fef: 0x6c2d7820, + 0x21ff7: 0x6d154420, + 0x21ffa: 0x6c5c2e20, 0x21ffb: 0x6ccda620, + // Block 0x880, offset 0x22000 + 0x22004: 0x6c1d2220, 0x22005: 0x6d156220, 0x22006: 0x6d021220, 0x22007: 0x6d36dc20, + 0x22008: 0x6ce5e020, 0x2200a: 0x6cb26c20, 0x2200b: 0x6cfbb020, + 0x2200e: 0x6cfadc20, 0x2200f: 0x6cdb4c20, + 0x22011: 0x6c24a020, + 0x22017: 0x6cd97220, + 0x2201b: 0x6c522820, + 0x2201d: 0x6cfd3a20, 0x2201f: 0x6d1f8e20, + 0x22021: 0x6d246420, + 0x22024: 0x6cdf5220, 0x22026: 0x6c751820, 0x22027: 0x6ca48220, + 0x22029: 0x6c2cba20, 0x2202b: 0x6d164820, + 0x2202c: 0x6c090620, + 0x22033: 0x6d056220, + 0x22034: 0x6d166820, 0x22035: 0x6cc81020, 0x22037: 0x6c455a20, + 0x2203a: 0x6d166a20, + 0x2203f: 0x6d356e20, + // Block 0x881, offset 0x22040 + 0x22040: 0x6d02a420, 0x22042: 0x6c617820, + 0x22044: 0x6cfa2c20, + 0x22048: 0x6d2f4e20, 0x22049: 0x6ca54620, 0x2204a: 0x6d015620, + 0x2204e: 0x6d168620, + 0x2206b: 0x6c3f3420, + 0x2206d: 0x6ccf3420, 0x2206f: 0x6d253c20, + 0x22070: 0x6c390420, 0x22072: 0x6c3d3c20, 0x22073: 0x6cf4a820, + 0x22074: 0x6cf57c20, 0x22075: 0x6c539c20, + 0x22079: 0x6c618220, 0x2207a: 0x6c170420, + 0x2207f: 0x6ca0ca20, + // Block 0x882, offset 0x22080 + 0x22080: 0x6cae0820, 0x22083: 0x6ca20e20, + 0x22084: 0x6cc00420, 0x22085: 0x6c994a20, 0x22087: 0x6c268020, + 0x22089: 0x6cf98c20, 0x2208a: 0x6ccfae20, 0x2208b: 0x6ce26c20, + 0x2208c: 0x6c530220, 0x2208d: 0x6c093620, + 0x2209d: 0x6ca62620, 0x2209f: 0x6cbbd220, + 0x220a7: 0x6cc84e20, + 0x220b8: 0x6c67d820, 0x220b9: 0x6c138420, 0x220ba: 0x6c9ce220, + 0x220bd: 0x6d16f020, 0x220bf: 0x6cdd0a20, + // Block 0x883, offset 0x220c0 + 0x220c1: 0x6cf4c220, 0x220c2: 0x6d078420, + 0x220c5: 0x6cf76c20, 0x220c7: 0x6d15d020, + 0x220d0: 0x6ca49a20, 0x220d3: 0x6cf07820, + 0x220ee: 0x6c770220, + 0x220f1: 0x6c906020, 0x220f2: 0x6c938620, 0x220f3: 0x6d3c2a20, + 0x220fa: 0x6d35b420, + 0x220fc: 0x6d042220, 0x220fe: 0x6c44f820, 0x220ff: 0x6c6ce620, + // Block 0x884, offset 0x22100 + 0x22100: 0x6cfca420, 0x22101: 0x6c61c820, 0x22102: 0x6c261a20, + 0x22104: 0x6c815020, 0x22105: 0x6c3bb820, 0x22106: 0x6c722a20, + 0x2210b: 0x6c9eb220, + 0x2210c: 0x6cf9a620, + 0x22111: 0x6cda8c20, + 0x22128: 0x6d35b620, 0x2212a: 0x6c567e20, 0x2212b: 0x6c79e220, + 0x2212d: 0x6cdd5820, 0x2212e: 0x6ca68e20, + 0x2213a: 0x6ce28c20, 0x2213b: 0x6d3ace20, + // Block 0x885, offset 0x22140 + 0x22141: 0x6c269820, 0x22143: 0x6cc04420, + 0x22144: 0x6d0b9820, 0x22146: 0x6cfb4820, + 0x22149: 0x6ca58820, + 0x2214d: 0x6d351420, 0x2214e: 0x6c0ce620, + 0x22152: 0x6c1d3a20, 0x22153: 0x6c7f9820, + 0x22154: 0x6c2ff820, 0x22155: 0x6cc43a20, 0x22156: 0x6cfe2e20, + 0x22158: 0x6cff8020, 0x22159: 0x6ced0620, 0x2215a: 0x6cc81420, 0x2215b: 0x6cee5020, + 0x2215c: 0x6ca69820, 0x2215e: 0x6c03fe20, 0x2215f: 0x6d0b9a20, + 0x22165: 0x6cd7e220, 0x22166: 0x6d1ad820, + 0x22168: 0x6d231220, + 0x2216e: 0x6c83b820, 0x2216f: 0x6c5dc020, + // Block 0x886, offset 0x22180 + 0x22197: 0x6c056820, + 0x221a3: 0x6cf5e620, + 0x221a5: 0x6c6f6a20, + 0x221a8: 0x6d01ac20, 0x221a9: 0x6cb8e020, 0x221aa: 0x6caaf820, 0x221ab: 0x6d040020, + 0x221ac: 0x6c344e20, 0x221ad: 0x6c614020, 0x221ae: 0x6cf44a20, 0x221af: 0x6ca21220, + 0x221b0: 0x6d0e6e20, 0x221b1: 0x6cb79020, 0x221b2: 0x6ca2de20, 0x221b3: 0x6c1c1e20, + 0x221b4: 0x6c540220, 0x221b6: 0x6ccaf220, + 0x221b8: 0x6ca4aa20, 0x221bb: 0x6c1a7020, + 0x221bc: 0x6c1a7220, 0x221bd: 0x6c7cd020, 0x221bf: 0x6c644220, + // Block 0x887, offset 0x221c0 + 0x221c0: 0x6ce8ac20, 0x221c2: 0x6c319a20, + 0x221c5: 0x6cf9c220, 0x221c6: 0x6d382e20, 0x221c7: 0x6c5dcc20, + 0x221c8: 0x6c1d1620, 0x221c9: 0x6c26a420, + 0x221cc: 0x6c997c20, 0x221cd: 0x6d120620, + 0x221d3: 0x6c72f220, + 0x221ec: 0x6cd38420, 0x221ef: 0x6d1a6420, + 0x221f3: 0x6c478a20, + 0x221f4: 0x6cf4ec20, + 0x221f8: 0x6c4cee20, 0x221f9: 0x6ce3f620, 0x221fb: 0x6c52a220, + // Block 0x888, offset 0x22200 + 0x22207: 0x6cc54e20, + 0x22209: 0x6d14f420, 0x2220b: 0x6cea7c20, + 0x2220f: 0x6cbf3c20, + 0x22210: 0x6c4d6e20, 0x22212: 0x6cb79e20, + 0x22215: 0x6c5dd820, 0x22216: 0x6ce40020, 0x22217: 0x6caf7020, + 0x2221a: 0x6c451020, + 0x2221c: 0x6d01c420, 0x2221e: 0x6c9d5620, 0x2221f: 0x6c434c20, + 0x22220: 0x6cddf020, 0x22221: 0x6cfdec20, 0x22223: 0x6cd4e620, + 0x22226: 0x6c3e9820, + 0x2222c: 0x6d3b7e20, 0x2222d: 0x6c8f3820, + // Block 0x889, offset 0x22240 + 0x22245: 0x6d1f4420, + 0x2224a: 0x6c1a7820, 0x2224b: 0x6c330620, + 0x22262: 0x6c841420, 0x22263: 0x6d105820, + 0x22264: 0x6c841620, 0x22267: 0x6c91c820, + 0x22268: 0x6ca24e20, 0x22269: 0x6cdc5220, 0x2226a: 0x6c00b620, + 0x2226d: 0x6c79f420, 0x2226f: 0x6d306a20, + 0x22270: 0x6c00b820, 0x22271: 0x6ce2a620, 0x22273: 0x6c93ea20, + 0x22274: 0x6ce9ac20, 0x22275: 0x6c088020, + 0x2227e: 0x6c5bf620, 0x2227f: 0x6c588a20, + // Block 0x88a, offset 0x22280 + 0x2229b: 0x6c7e0e20, + 0x2229d: 0x6d02e020, + 0x222a1: 0x6ccaf420, + 0x222ab: 0x6cd5f020, + 0x222ac: 0x6cc3da20, 0x222ad: 0x6c035620, 0x222ae: 0x6cea0620, + 0x222b2: 0x6c403220, 0x222b3: 0x6c0cba20, + 0x222b5: 0x6ce17e20, 0x222b7: 0x6cfe4c20, + 0x222b9: 0x6cd81420, 0x222ba: 0x6c0f4020, + 0x222bc: 0x6c970020, 0x222bd: 0x6c298020, 0x222bf: 0x6c4b6420, + // Block 0x88b, offset 0x222c0 + 0x222c0: 0x6c522020, 0x222c1: 0x6cf69a20, 0x222c2: 0x6c298220, 0x222c3: 0x6d184e20, + 0x222c5: 0x6c088420, 0x222c7: 0x6c472c20, + 0x222c8: 0x6c255820, 0x222c9: 0x6ccb4420, + 0x222cd: 0x6c441e20, 0x222ce: 0x6d23c220, 0x222cf: 0x6ca2fa20, + 0x222d1: 0x6c865620, 0x222d2: 0x6d36ac20, + 0x222f0: 0x6d2fd420, + 0x222f4: 0x6c5f1220, 0x222f5: 0x6cc87220, + 0x222f9: 0x6c1d5820, + // Block 0x88c, offset 0x22300 + 0x22302: 0x6c6b1820, + 0x2230c: 0x6c172020, 0x2230d: 0x6d307a20, + 0x22312: 0x6cdb1020, 0x22313: 0x6d1db020, + 0x22316: 0x6cb7d420, 0x22317: 0x6d3d9820, + 0x2231a: 0x6c769620, + 0x2231c: 0x6d133c20, 0x2231e: 0x6cb7d620, + 0x22339: 0x6d04a420, + // Block 0x88d, offset 0x22340 + 0x22349: 0x6d141420, 0x2234a: 0x6c1e3020, + 0x2234e: 0x6ce98020, 0x2234f: 0x6c00da20, + 0x22350: 0x6cb1f220, 0x22353: 0x6c8b3620, + 0x22354: 0x6c9dd820, 0x22355: 0x6c00dc20, 0x22357: 0x6ca0ae20, + 0x22358: 0x6cf0e220, 0x22359: 0x6d1d5220, 0x2235a: 0x6ca65020, + 0x2235e: 0x6c0f7420, + 0x22360: 0x6c8f4620, + 0x22373: 0x6cc8e620, + 0x2237b: 0x6c936620, + 0x2237c: 0x6c140c20, 0x2237f: 0x6c1f8620, + // Block 0x88e, offset 0x22380 + 0x22381: 0x6ccb0220, 0x22382: 0x6c847020, + 0x22384: 0x6cd94620, 0x22386: 0x6c86c620, + 0x2238b: 0x6cf90420, + 0x2238d: 0x6d0c3e20, 0x2238e: 0x6c25ce20, + 0x22390: 0x6c8eb620, + 0x22398: 0x6c9b6c20, 0x2239a: 0x6d2e8a20, + 0x223a4: 0x6d3c4c20, 0x223a7: 0x6c9ea620, + 0x223a9: 0x6c86f220, 0x223ab: 0x6c71da20, + 0x223af: 0x6d025220, + 0x223b0: 0x6d025420, 0x223b1: 0x6c904220, 0x223b2: 0x6c8fc220, + // Block 0x88f, offset 0x223c0 + 0x223c2: 0x6ce2c620, 0x223c3: 0x6d3b3820, + 0x223cb: 0x6c155220, + 0x223cc: 0x6cfc4420, 0x223cf: 0x6d1cc220, + 0x223d0: 0x6cae2a20, + 0x223d8: 0x6d012220, 0x223da: 0x6c69dc20, + 0x223de: 0x6c1cf820, + 0x223f3: 0x6c50ae20, + 0x223fd: 0x6cea8420, + // Block 0x890, offset 0x22400 + 0x22405: 0x6c53b220, + 0x22408: 0x6c97b020, 0x2240a: 0x6c6c7a20, + 0x2240c: 0x6cc17020, 0x2240d: 0x6c30d420, 0x2240e: 0x6cbff820, 0x2240f: 0x6d28ee20, + 0x22411: 0x6cd0d420, 0x22412: 0x6d28f020, + 0x22415: 0x6d15ba20, + 0x2241a: 0x6c578020, + 0x2241f: 0x6c76a220, + 0x22430: 0x6d268e20, 0x22431: 0x6ca68420, 0x22432: 0x6cd7d620, + 0x22434: 0x6cf2aa20, + 0x22438: 0x6c118e20, 0x2243a: 0x6c647c20, + 0x2243c: 0x6c9ecc20, 0x2243d: 0x6ccea020, 0x2243f: 0x6cc70820, + // Block 0x891, offset 0x22440 + 0x22440: 0x6c419220, + 0x22445: 0x6cbb0a20, 0x22447: 0x6cd52a20, + 0x22448: 0x6d3d5820, + 0x2244f: 0x6cd1bc20, + 0x22451: 0x6ce3f820, + 0x22456: 0x6d2c3620, 0x22457: 0x6d2d7e20, + 0x2245d: 0x6c3bdc20, 0x2245e: 0x6c9eda20, + 0x22460: 0x6d2b5220, + 0x22464: 0x6d368a20, 0x22465: 0x6cb90020, 0x22466: 0x6c4ede20, 0x22467: 0x6c440e20, + 0x2246e: 0x6c119e20, + 0x22470: 0x6c4c7820, 0x22471: 0x6c685e20, 0x22473: 0x6d1da220, + 0x22474: 0x6c026820, + 0x2247b: 0x6d2c4620, + 0x2247d: 0x6cf8c420, + // Block 0x892, offset 0x22480 + 0x22481: 0x6d05d220, 0x22482: 0x6cf46620, + 0x2248f: 0x6c74b820, + 0x22490: 0x6c5f2a20, 0x22492: 0x6c1c6a20, + 0x22494: 0x6ced5420, 0x22496: 0x6c9ef220, 0x22497: 0x6d2b6420, + 0x2249c: 0x6c6b6e20, 0x2249d: 0x6cd29220, 0x2249f: 0x6cf72e20, + 0x224a1: 0x6c36e220, + 0x224a5: 0x6c564220, 0x224a6: 0x6c564a20, + 0x224a8: 0x6c857020, 0x224ab: 0x6c1f0820, + 0x224ae: 0x6d13c820, 0x224af: 0x6c992c20, + 0x224b0: 0x6d056c20, 0x224b1: 0x6d379820, 0x224b3: 0x6d16b820, + 0x224ba: 0x6c89de20, + 0x224bf: 0x6c647820, + // Block 0x893, offset 0x224c0 + 0x224c0: 0x6c656e20, 0x224c1: 0x6c70fa20, + 0x224c4: 0x6d3abc20, + 0x224c8: 0x6cf43a20, + 0x224cf: 0x6c78a420, + 0x224d0: 0x6c786020, 0x224d1: 0x6c860e20, 0x224d2: 0x6c08dc20, 0x224d3: 0x6c43ec20, + 0x224d5: 0x6d059820, 0x224d6: 0x6ccbfa20, 0x224d7: 0x6c8d1c20, + 0x224d8: 0x6c781220, + 0x224de: 0x6c0f4220, 0x224df: 0x6c0b0820, + 0x224e0: 0x6cd68820, 0x224e1: 0x6cb66e20, 0x224e2: 0x6ccde420, + 0x224e6: 0x6c5e6420, + 0x224e8: 0x6cbc1c20, + 0x224ee: 0x6d166c20, 0x224ef: 0x6c73d020, + 0x224f0: 0x6d2efe20, 0x224f2: 0x6d031620, + 0x224f7: 0x6cea9a20, + 0x224f8: 0x6c4d5020, 0x224f9: 0x6cfa2e20, 0x224fb: 0x6ceae020, + 0x224fc: 0x6d145620, + // Block 0x894, offset 0x22500 + 0x22503: 0x6c242c20, + 0x22507: 0x6c674620, + 0x22508: 0x6ca3de20, 0x2250b: 0x6caf0020, + 0x2250d: 0x6c6a7020, 0x2250e: 0x6d08d820, 0x2250f: 0x6c552020, + 0x22525: 0x6d1f9e20, 0x22526: 0x6caa4c20, 0x22527: 0x6d12c220, + 0x2252a: 0x6d1b3a20, + 0x2252c: 0x6c799420, + 0x22536: 0x6cfe8420, 0x22537: 0x6cfd6220, + 0x2253c: 0x6ca49620, 0x2253e: 0x6d2f2420, + // Block 0x895, offset 0x22540 + 0x22550: 0x6c6a7c20, 0x22553: 0x6caa5020, + 0x22554: 0x6ccd7020, + 0x22562: 0x6c63a020, + 0x22567: 0x6d38dc20, + 0x22568: 0x6cc6fe20, 0x2256b: 0x6c922220, + 0x2256c: 0x6cc96e20, 0x2256d: 0x6caa6020, 0x2256f: 0x6c0ec420, + 0x22570: 0x6d302220, 0x22572: 0x6cbdca20, + 0x22574: 0x6c21f620, 0x22575: 0x6d40ac20, 0x22577: 0x6cf2ac20, + 0x22578: 0x6cf43620, 0x2257b: 0x6ca7e020, + 0x2257f: 0x6cfa8820, + // Block 0x896, offset 0x22580 + 0x22580: 0x6c531220, + 0x225ab: 0x6ce6e820, + 0x225ac: 0x6c6c8a20, + 0x225b1: 0x6c6aa420, 0x225b2: 0x6c51c020, 0x225b3: 0x6ce84c20, + 0x225b4: 0x6d303a20, 0x225b5: 0x6cb1ec20, 0x225b6: 0x6c6ce820, 0x225b7: 0x6ca44420, + 0x225bc: 0x6c33e820, 0x225be: 0x6cf5be20, 0x225bf: 0x6d018020, + // Block 0x897, offset 0x225c0 + 0x225c1: 0x6cf86c20, 0x225c2: 0x6c815220, 0x225c3: 0x6c32ac20, + 0x225c4: 0x6c61ca20, 0x225c5: 0x6c138a20, 0x225c6: 0x6c1d6620, + 0x225c8: 0x6c427020, + 0x225ce: 0x6cfdb820, 0x225cf: 0x6c29d620, + 0x225e5: 0x6c0b8e20, 0x225e6: 0x6cfea020, 0x225e7: 0x6d02c220, + // Block 0x898, offset 0x22600 + 0x22601: 0x6d224c20, 0x22602: 0x6cfb4a20, 0x22603: 0x6c83ba20, + 0x22604: 0x6cba0020, 0x22607: 0x6c9a5420, + 0x22609: 0x6cbb6c20, 0x2260a: 0x6d0b9e20, + 0x2260c: 0x6cb82a20, 0x2260d: 0x6cbf8a20, 0x2260f: 0x6c056a20, + 0x22610: 0x6d32b220, + 0x2261a: 0x6d2b4a20, 0x2261b: 0x6cd68e20, + 0x2261e: 0x6ccaf020, + // Block 0x899, offset 0x22640 + 0x22645: 0x6c923a20, + 0x22649: 0x6d009e20, 0x2264b: 0x6c3f5c20, + 0x2264c: 0x6d2d3a20, + 0x22669: 0x6d2b5020, 0x2266b: 0x6c32c220, + 0x2266d: 0x6c2ad620, 0x2266e: 0x6d233c20, + 0x22670: 0x6c93de20, 0x22672: 0x6ced8220, 0x22673: 0x6d090e20, + 0x22674: 0x6c68f420, 0x22675: 0x6d266420, 0x22676: 0x6d362420, 0x22677: 0x6cefc420, + 0x22679: 0x6c43ee20, 0x2267a: 0x6c71b420, + 0x2267c: 0x6d0d8420, 0x2267d: 0x6c262620, 0x2267e: 0x6c997e20, + // Block 0x89a, offset 0x22680 + 0x22686: 0x6c3e7820, 0x22687: 0x6c002820, + 0x2268a: 0x6d079e20, + 0x2268c: 0x6c427e20, 0x2268d: 0x6c013220, + 0x22692: 0x6c603620, + 0x22698: 0x6cafea20, 0x22699: 0x6d352820, + 0x2269c: 0x6caac020, + 0x226bf: 0x6cacbc20, + // Block 0x89b, offset 0x226c0 + 0x226c1: 0x6d14f620, + 0x226c4: 0x6c6ac820, 0x226c6: 0x6d3e3820, + 0x226c8: 0x6c644420, 0x226c9: 0x6cec6420, + 0x226cc: 0x6c644620, + 0x226df: 0x6c15c020, + 0x226e1: 0x6cdd7420, 0x226e2: 0x6cdd7620, 0x226e3: 0x6c605020, + 0x226e4: 0x6cd96420, 0x226e6: 0x6ce2f420, 0x226e7: 0x6caf7420, + 0x226e8: 0x6cb32c20, + 0x226ee: 0x6c9d5a20, + 0x226f4: 0x6d12fc20, 0x226f6: 0x6cbe1c20, 0x226f7: 0x6c6d1620, + 0x226fa: 0x6c73ae20, + 0x226fd: 0x6d24f420, 0x226fe: 0x6cc83e20, + // Block 0x89c, offset 0x22700 + 0x22714: 0x6c04fa20, + 0x22730: 0x6c0d3a20, + 0x22734: 0x6cf0ae20, 0x22735: 0x6d2a8820, 0x22736: 0x6cbcd020, 0x22737: 0x6cd9ce20, + 0x22738: 0x6c91ca20, + 0x2273c: 0x6c2ecc20, 0x2273d: 0x6c1fb820, 0x2273e: 0x6c09f620, 0x2273f: 0x6d3a1a20, + // Block 0x89d, offset 0x22740 + 0x22740: 0x6c966220, 0x22741: 0x6c3aba20, 0x22742: 0x6cb1cc20, 0x22743: 0x6d1b6620, + 0x22744: 0x6d08a220, 0x22746: 0x6c02e020, 0x22747: 0x6d3d7820, + 0x22748: 0x6d40c820, 0x2274b: 0x6c08ea20, + 0x22751: 0x6c812620, 0x22753: 0x6ce40820, + 0x22759: 0x6ce5c820, 0x2275a: 0x6c64c820, + 0x2275f: 0x6ce7c020, + 0x2277d: 0x6c343420, 0x2277e: 0x6c308420, + // Block 0x89e, offset 0x22780 + 0x22782: 0x6c0b4220, + 0x227a0: 0x6d36b020, 0x227a2: 0x6c3b8a20, + 0x227a6: 0x6c776a20, 0x227a7: 0x6d36b220, + 0x227a8: 0x6d2cfc20, 0x227a9: 0x6c0a1e20, 0x227aa: 0x6c7b6e20, + 0x227ac: 0x6c050220, 0x227ad: 0x6c73b820, 0x227ae: 0x6cc13420, + 0x227b0: 0x6cb51e20, 0x227b1: 0x6c824e20, 0x227b2: 0x6d00da20, 0x227b3: 0x6ce0ca20, + 0x227bc: 0x6cd9d420, 0x227be: 0x6c075020, + // Block 0x89f, offset 0x227c0 + 0x227c7: 0x6d106820, + 0x227c8: 0x6c65ce20, + 0x227e5: 0x6d2a8a20, + // Block 0x8a0, offset 0x22800 + 0x22800: 0x6d3b6a20, 0x22803: 0x6c38b820, + 0x22805: 0x6ccf2420, 0x22807: 0x6cbf5e20, + 0x22809: 0x6cb3a020, 0x2280b: 0x6ce60220, + 0x2280c: 0x6ccc1a20, 0x2280d: 0x6d28c820, + 0x22811: 0x6ca7ac20, 0x22812: 0x6c48fa20, 0x22813: 0x6c250a20, + 0x22821: 0x6cbc5e20, 0x22823: 0x6c2ee420, + 0x22833: 0x6cb1ee20, + 0x22834: 0x6c226a20, 0x22836: 0x6c058e20, + // Block 0x8a1, offset 0x22840 + 0x2284d: 0x6d1b8a20, + 0x22851: 0x6cfc3020, + 0x22854: 0x6d161820, 0x22855: 0x6c9e9e20, 0x22856: 0x6c32b220, 0x22857: 0x6d395620, + 0x22859: 0x6c798c20, + 0x22862: 0x6d2ee020, + 0x22876: 0x6c8eb820, + 0x22878: 0x6d355820, 0x22879: 0x6c15ee20, 0x2287a: 0x6c31ca20, 0x2287b: 0x6d25c020, + 0x2287e: 0x6cddd220, 0x2287f: 0x6c6b5820, + // Block 0x8a2, offset 0x22880 + 0x22880: 0x6c86c820, 0x22881: 0x6c460420, + 0x2288c: 0x6c054220, + 0x22897: 0x6c4c9220, + 0x22898: 0x6c8a3420, 0x22899: 0x6cd08220, + 0x228a3: 0x6ca7c020, + 0x228a5: 0x6c24bc20, 0x228a6: 0x6cf04c20, + 0x228a8: 0x6cead620, 0x228ab: 0x6cda6020, + 0x228ad: 0x6c8fc420, + 0x228b3: 0x6cff3820, + 0x228b4: 0x6d0df820, + // Block 0x8a3, offset 0x228c0 + 0x228c3: 0x6cbebe20, + 0x228cd: 0x6cf73020, 0x228cf: 0x6d21e220, + 0x228d1: 0x6d337220, 0x228d2: 0x6d027420, 0x228d3: 0x6c146e20, + 0x228d4: 0x6c3c0020, 0x228d6: 0x6c4c9c20, + 0x228d8: 0x6c6e3e20, 0x228d9: 0x6c808220, 0x228da: 0x6cfafe20, + 0x228dd: 0x6c8d8e20, + 0x228ee: 0x6c830020, + 0x228f2: 0x6c760220, 0x228f3: 0x6d002a20, + 0x228fc: 0x6d28d820, + // Block 0x8a4, offset 0x22900 + 0x22904: 0x6c493e20, 0x22905: 0x6cbd0820, 0x22906: 0x6c963e20, 0x22907: 0x6d124a20, + 0x22908: 0x6c945620, 0x22909: 0x6cdeee20, + 0x22911: 0x6c964020, + 0x2291e: 0x6c03a420, 0x2291f: 0x6c165420, + 0x22921: 0x6d3dec20, + 0x2292b: 0x6ce5d020, + 0x2292f: 0x6cecaa20, + 0x22930: 0x6c8dd420, + 0x22934: 0x6d24aa20, 0x22935: 0x6cb72c20, 0x22937: 0x6cb58020, + 0x2293c: 0x6c619420, 0x2293d: 0x6c0eb620, 0x2293f: 0x6cd1a420, + // Block 0x8a5, offset 0x22940 + 0x22940: 0x6c3f4a20, 0x22942: 0x6c4a4620, + 0x22945: 0x6c2d0e20, 0x22947: 0x6c4fa420, + 0x22949: 0x6c411220, 0x2294b: 0x6cb5c820, + 0x22953: 0x6c19fe20, + 0x22954: 0x6c5bc220, 0x22957: 0x6cf9cc20, + 0x22958: 0x6cd27020, 0x22959: 0x6d365820, 0x2295a: 0x6cb61420, + 0x2295c: 0x6c4d7420, 0x2295f: 0x6c692c20, + 0x22960: 0x6c867620, 0x22962: 0x6c8a7820, + 0x22964: 0x6cbba620, + 0x22968: 0x6cc99c20, 0x2296a: 0x6cb55220, 0x2296b: 0x6cd19620, + 0x2296e: 0x6c6a7220, + 0x22975: 0x6c06e420, 0x22976: 0x6c0aec20, 0x22977: 0x6c032420, + 0x22978: 0x6c755c20, 0x22979: 0x6caf3a20, + 0x2297c: 0x6c282220, 0x2297f: 0x6ce0e620, + // Block 0x8a6, offset 0x22980 + 0x22980: 0x6c7cca20, 0x22981: 0x6c7a2820, 0x22983: 0x6c79d020, + 0x22989: 0x6cd1a620, 0x2298a: 0x6cd1a820, 0x2298b: 0x6c5e9a20, + 0x2298c: 0x6c063620, + 0x22990: 0x6c785a20, 0x22991: 0x6c7b9020, + 0x22996: 0x6c9f9c20, + 0x22999: 0x6c89e020, 0x2299a: 0x6c35f220, 0x2299b: 0x6c43d820, + 0x2299f: 0x6cee0420, + 0x229a0: 0x6c344020, 0x229a3: 0x6cb85220, + 0x229a4: 0x6c573220, 0x229a6: 0x6c539e20, + 0x229a9: 0x6cae5e20, 0x229ab: 0x6c698c20, + 0x229b0: 0x6cc0f020, 0x229b1: 0x6d3f3c20, 0x229b2: 0x6d391820, 0x229b3: 0x6c7b9620, + 0x229b5: 0x6ccbd820, 0x229b7: 0x6c61cc20, + 0x229b8: 0x6cee6c20, 0x229b9: 0x6cb40820, 0x229ba: 0x6d090620, + 0x229bc: 0x6cce6620, + // Block 0x8a7, offset 0x229c0 + 0x229c2: 0x6c80b620, 0x229c3: 0x6d351620, + 0x229c4: 0x6ce6c620, 0x229c7: 0x6c26f020, + 0x229d5: 0x6d0faa20, 0x229d6: 0x6c6d0020, 0x229d7: 0x6d351820, + 0x229da: 0x6d3d5a20, + 0x229dc: 0x6d28b420, 0x229dd: 0x6c14f220, + 0x229e2: 0x6c998020, + 0x229e6: 0x6c797820, 0x229e7: 0x6d388420, + 0x229e8: 0x6c54ca20, 0x229e9: 0x6cae7220, + 0x229ed: 0x6c6ffc20, + 0x229f8: 0x6c21bc20, 0x229f9: 0x6c9fae20, + 0x229fe: 0x6cffec20, + // Block 0x8a8, offset 0x22a00 + 0x22a00: 0x6c322220, 0x22a01: 0x6cef1820, 0x22a03: 0x6c119a20, + 0x22a04: 0x6d214a20, 0x22a05: 0x6c326220, 0x22a06: 0x6c763620, 0x22a07: 0x6cb0a220, + 0x22a0a: 0x6c1a1a20, + 0x22a0e: 0x6c218020, + 0x22a10: 0x6cceb420, 0x22a11: 0x6d0d9e20, 0x22a12: 0x6c7b2820, + 0x22a14: 0x6d265020, + 0x22a26: 0x6cb61620, 0x22a27: 0x6d32e020, + 0x22a29: 0x6c78c220, 0x22a2a: 0x6cb61820, 0x22a2b: 0x6d354020, + 0x22a2c: 0x6c928420, + 0x22a31: 0x6caf7c20, 0x22a32: 0x6cab0420, 0x22a33: 0x6cad7c20, + 0x22a3a: 0x6c3a6020, + 0x22a3f: 0x6cf19c20, + // Block 0x8a9, offset 0x22a40 + 0x22a42: 0x6c9b2c20, + 0x22a48: 0x6ccd5620, + 0x22a4c: 0x6d04a020, 0x22a4e: 0x6c351020, 0x22a4f: 0x6c0c9220, + 0x22a5a: 0x6d1eb020, + 0x22a5c: 0x6c97f620, 0x22a5e: 0x6c8a7a20, + 0x22a61: 0x6d00ea20, 0x22a62: 0x6c949c20, 0x22a63: 0x6cbba820, + 0x22a64: 0x6c2ae620, 0x22a66: 0x6c1a3e20, 0x22a67: 0x6c1a4020, + 0x22a6d: 0x6c21d820, + 0x22a78: 0x6c131420, + // Block 0x8aa, offset 0x22a80 + 0x22a80: 0x6c825e20, 0x22a81: 0x6d2e1c20, 0x22a82: 0x6c853620, 0x22a83: 0x6c885e20, + 0x22a84: 0x6cc45820, + 0x22a8d: 0x6c18ee20, 0x22a8f: 0x6c1a4820, + 0x22a90: 0x6c473c20, 0x22a92: 0x6d403a20, 0x22a93: 0x6c1df420, + 0x22a94: 0x6c204420, + 0x22a9c: 0x6c835220, 0x22a9d: 0x6cd7a820, 0x22a9e: 0x6c941020, + 0x22aa3: 0x6c3f2420, + 0x22aa5: 0x6c871620, 0x22aa7: 0x6cca6020, + 0x22aab: 0x6cca0c20, + 0x22aaf: 0x6cc9b220, + 0x22ab3: 0x6ca8b020, + 0x22ab6: 0x6d413c20, 0x22ab7: 0x6c855020, + 0x22abb: 0x6cd58c20, + 0x22abe: 0x6c3f2a20, + // Block 0x8ab, offset 0x22ac0 + 0x22ac9: 0x6c094620, + 0x22acd: 0x6c2a0820, + 0x22ad2: 0x6cd1b220, + 0x22ad6: 0x6c422020, 0x22ad7: 0x6ce09e20, + 0x22adc: 0x6c97f820, 0x22adf: 0x6c842820, + 0x22ae2: 0x6c0a4c20, + 0x22ae6: 0x6cac7e20, + 0x22ae8: 0x6d1eca20, + 0x22aed: 0x6c6f5020, 0x22aef: 0x6c4c1220, + 0x22af0: 0x6c89dc20, 0x22af3: 0x6cf2de20, + 0x22af4: 0x6cb85420, 0x22af5: 0x6c30e820, 0x22af7: 0x6c8afa20, + 0x22af9: 0x6c68e020, 0x22afb: 0x6c8afc20, + // Block 0x8ac, offset 0x22b00 + 0x22b01: 0x6ce56020, + 0x22b04: 0x6c4c2620, 0x22b06: 0x6cacde20, 0x22b07: 0x6cbb8e20, + 0x22b09: 0x6c2b8a20, 0x22b0a: 0x6d284420, + 0x22b12: 0x6c821420, + 0x22b16: 0x6cd7cc20, 0x22b17: 0x6d02b020, + 0x22b1c: 0x6d02c420, 0x22b1d: 0x6cfe2620, 0x22b1e: 0x6c95ac20, + 0x22b24: 0x6c07e820, 0x22b25: 0x6ce55a20, + 0x22b2c: 0x6cffee20, 0x22b2e: 0x6c30b420, + 0x22b33: 0x6c296e20, + 0x22b34: 0x6ce67c20, 0x22b35: 0x6d3bcc20, + 0x22b3b: 0x6cab4620, + 0x22b3d: 0x6cf30e20, + // Block 0x8ad, offset 0x22b40 + 0x22b44: 0x6d02ee20, 0x22b45: 0x6cc87a20, + 0x22b48: 0x6d3dae20, 0x22b49: 0x6c299020, + 0x22b4d: 0x6c257420, + 0x22b51: 0x6d3dc820, + 0x22b57: 0x6c238620, + 0x22b58: 0x6c159220, + 0x22b5d: 0x6d100820, + 0x22b67: 0x6d0d5e20, + 0x22b73: 0x6d0d6820, + 0x22b75: 0x6d323620, + 0x22b7d: 0x6caade20, 0x22b7e: 0x6d0e7220, + // Block 0x8ae, offset 0x22b80 + 0x22b85: 0x6c39d820, + 0x22b89: 0x6d0da020, 0x22b8a: 0x6d214e20, + 0x22b8d: 0x6ce34020, 0x22b8e: 0x6c401a20, 0x22b8f: 0x6c07a020, + 0x22b91: 0x6d0db220, 0x22b93: 0x6c5ad220, + 0x22b99: 0x6c5a6220, + 0x22b9c: 0x6c4b7420, 0x22b9d: 0x6d0ece20, 0x22b9f: 0x6c55da20, + 0x22ba0: 0x6c0c3620, + 0x22ba7: 0x6cdcc420, + 0x22bae: 0x6d3f3020, 0x22baf: 0x6c618620, + 0x22bb0: 0x6c35ae20, 0x22bb1: 0x6c61ce20, 0x22bb2: 0x6c7ccc20, + 0x22bb4: 0x6c89b620, + 0x22bb8: 0x6c5dda20, 0x22bba: 0x6cef3a20, 0x22bbb: 0x6d3cea20, + 0x22bbf: 0x6ce6ae20, + // Block 0x8af, offset 0x22bc0 + 0x22bc3: 0x6d290e20, + 0x22bc4: 0x6d201020, + 0x22bc9: 0x6cc5c020, + 0x22bcd: 0x6c9e4e20, + 0x22bda: 0x6ca31020, + 0x22bdd: 0x6ce84220, 0x22bdf: 0x6c27be20, + 0x22be1: 0x6c73ec20, + 0x22be4: 0x6d056e20, 0x22be5: 0x6c2b1820, + 0x22bf0: 0x6cfe1a20, + 0x22bf7: 0x6d048a20, + 0x22bfa: 0x6d1fac20, 0x22bfb: 0x6c489620, + 0x22bfe: 0x6cf5a420, + // Block 0x8b0, offset 0x22c00 + 0x22c08: 0x6c51bc20, + 0x22c0d: 0x6c2f6c20, + 0x22c10: 0x6c914020, 0x22c12: 0x6d061a20, + 0x22c14: 0x6d391a20, 0x22c15: 0x6cfca820, 0x22c16: 0x6c598820, 0x22c17: 0x6c138c20, + 0x22c18: 0x6cd2c420, 0x22c19: 0x6c421820, 0x22c1a: 0x6caadc20, 0x22c1b: 0x6c01aa20, + 0x22c1f: 0x6d003c20, + 0x22c27: 0x6c502c20, + 0x22c32: 0x6cbd2a20, 0x22c33: 0x6c450620, + 0x22c34: 0x6ccce020, 0x22c35: 0x6c3e4c20, + 0x22c3d: 0x6d2b4c20, + // Block 0x8b1, offset 0x22c40 + 0x22c47: 0x6c287c20, + 0x22c56: 0x6c2d1420, 0x22c57: 0x6ccfdc20, + 0x22c59: 0x6d411820, + 0x22c62: 0x6c0ca620, + 0x22c66: 0x6c20d020, 0x22c67: 0x6d30f820, + 0x22c68: 0x6c276e20, 0x22c6b: 0x6cf2b620, + 0x22c6c: 0x6cbf2420, + 0x22c70: 0x6c8bb420, 0x22c72: 0x6c5cc820, 0x22c73: 0x6c5ed020, + // Block 0x8b2, offset 0x22c80 + 0x22c85: 0x6c127620, + 0x22c8a: 0x6ca28620, + 0x22c8d: 0x6c2ea820, 0x22c8e: 0x6cf09620, + 0x22ca0: 0x6c0b9a20, 0x22ca1: 0x6ce3c020, + 0x22ca5: 0x6ce8be20, + 0x22cb6: 0x6c453620, + // Block 0x8b3, offset 0x22cc0 + 0x22cc4: 0x6c1b3220, 0x22cc5: 0x6c23ee20, 0x22cc6: 0x6ce3c420, + 0x22cd2: 0x6c5de620, 0x22cd3: 0x6cb50e20, + 0x22cd4: 0x6ccab820, 0x22cd5: 0x6ccaa020, 0x22cd6: 0x6d085220, 0x22cd7: 0x6c021c20, + 0x22cd8: 0x6ca3ce20, 0x22cda: 0x6d0fd020, 0x22cdb: 0x6cd4f420, + 0x22cdc: 0x6ccc0620, + 0x22ce1: 0x6ce6d620, + 0x22ce9: 0x6d0bc420, 0x22cea: 0x6c5a5820, + 0x22cee: 0x6c0d4220, + 0x22cfe: 0x6caba020, 0x22cff: 0x6c128820, + // Block 0x8b4, offset 0x22d00 + 0x22d01: 0x6c026a20, 0x22d03: 0x6c99ae20, + 0x22d14: 0x6c9b3620, 0x22d16: 0x6ce47220, + 0x22d1d: 0x6ccaa220, 0x22d1e: 0x6d073a20, 0x22d1f: 0x6c771020, + 0x22d27: 0x6c811020, + 0x22d36: 0x6c0cc020, 0x22d37: 0x6c23b220, + 0x22d3a: 0x6cfb8e20, + // Block 0x8b5, offset 0x22d40 + 0x22d44: 0x6cea2a20, + 0x22d49: 0x6d240a20, 0x22d4a: 0x6c28c220, 0x22d4b: 0x6d1d5420, + 0x22d4d: 0x6d2f7820, 0x22d4f: 0x6cb4b620, + 0x22d58: 0x6c5c4e20, + 0x22d5e: 0x6c00ea20, 0x22d5f: 0x6ca0b220, + 0x22d62: 0x6c6dde20, 0x22d63: 0x6c7fce20, + 0x22d72: 0x6c8b5820, 0x22d73: 0x6cb1a420, + 0x22d75: 0x6c0fa420, 0x22d76: 0x6cbf8220, + 0x22d79: 0x6c0aa220, + 0x22d7f: 0x6d1dd420, + // Block 0x8b6, offset 0x22d80 + 0x22d85: 0x6c871820, + 0x22d8d: 0x6ca8b220, 0x22d8f: 0x6c2a8820, + 0x22d93: 0x6c584620, + 0x22d97: 0x6d272420, + 0x22d9a: 0x6c212c20, + 0x22d9c: 0x6c87b020, 0x22d9e: 0x6d2ef420, 0x22d9f: 0x6c8dd620, + 0x22da0: 0x6c217020, + 0x22da7: 0x6c12d220, + 0x22da8: 0x6d09ea20, + 0x22dac: 0x6c71ac20, 0x22dad: 0x6c5cac20, + 0x22dbe: 0x6ce6f820, + // Block 0x8b7, offset 0x22dc0 + 0x22dc6: 0x6ca91220, 0x22dc7: 0x6c727a20, + 0x22dcf: 0x6c144c20, + 0x22dd6: 0x6d2a2e20, + 0x22ddb: 0x6d24a020, + 0x22ddf: 0x6c78f420, + 0x22de6: 0x6c7bea20, 0x22de7: 0x6c3a4a20, + 0x22def: 0x6d282620, + 0x22df0: 0x6cb9fc20, + 0x22df4: 0x6cc2dc20, + 0x22df8: 0x6cb38a20, 0x22dfa: 0x6cadf620, + // Block 0x8b8, offset 0x22e00 + 0x22e04: 0x6c453820, 0x22e05: 0x6d17e420, 0x22e06: 0x6c961020, + 0x22e11: 0x6c7b5a20, 0x22e13: 0x6d085420, + 0x22e14: 0x6ca76e20, + 0x22e1a: 0x6c55ac20, 0x22e1b: 0x6c715820, + 0x22e29: 0x6d136a20, + 0x22e2e: 0x6cf73420, + 0x22e31: 0x6d271c20, 0x22e32: 0x6ce19020, 0x22e33: 0x6cb23e20, + 0x22e34: 0x6c33c820, 0x22e35: 0x6c06d420, + 0x22e38: 0x6c8a6020, + // Block 0x8b9, offset 0x22e40 + 0x22e40: 0x6d1e0e20, + 0x22e4e: 0x6d0acc20, + 0x22e51: 0x6c68bc20, + 0x22e54: 0x6c7dcc20, 0x22e56: 0x6d321820, 0x22e57: 0x6cd59c20, + 0x22e5a: 0x6cd24820, + 0x22e5e: 0x6d1efa20, 0x22e5f: 0x6cac1a20, + 0x22e60: 0x6cff6e20, 0x22e61: 0x6c5fe020, + 0x22e76: 0x6cb4d220, 0x22e77: 0x6c50c620, + 0x22e7a: 0x6c799620, + // Block 0x8ba, offset 0x22e80 + 0x22e82: 0x6d12d020, 0x22e83: 0x6c1bf020, + 0x22e8a: 0x6c77a220, 0x22e8b: 0x6d269020, + 0x22e8e: 0x6cec1a20, 0x22e8f: 0x6ca71820, + 0x22e91: 0x6c222e20, 0x22e93: 0x6d14a020, + 0x22ea4: 0x6c704620, + 0x22eab: 0x6d0f4e20, + 0x22eac: 0x6c83a620, 0x22eae: 0x6c270a20, 0x22eaf: 0x6c1d0c20, + 0x22eb5: 0x6d14c620, + 0x22eba: 0x6c4e9a20, + 0x22ebf: 0x6d13de20, + // Block 0x8bb, offset 0x22ec0 + 0x22ec1: 0x6c1d4a20, 0x22ec2: 0x6c568020, 0x22ec3: 0x6d3b6220, + 0x22ee6: 0x6cbf0a20, 0x22ee7: 0x6c34de20, + 0x22ef8: 0x6ce73220, 0x22ef9: 0x6cfa9020, + 0x22eff: 0x6c3e5020, + // Block 0x8bc, offset 0x22f00 + 0x22f02: 0x6c2d5020, 0x22f03: 0x6cf77820, + 0x22f04: 0x6d003e20, 0x22f05: 0x6d323820, 0x22f06: 0x6cbc3e20, 0x22f07: 0x6ce85620, + 0x22f37: 0x6c4eb020, + 0x22f38: 0x6c7bf220, 0x22f39: 0x6cdd1a20, 0x22f3b: 0x6cd46220, + 0x22f3c: 0x6ce58020, + // Block 0x8bd, offset 0x22f40 + 0x22f40: 0x6d315020, 0x22f43: 0x6ca58c20, + 0x22f45: 0x6cba0a20, 0x22f46: 0x6d1a6620, + 0x22f48: 0x6c899220, 0x22f49: 0x6ccc5420, 0x22f4a: 0x6d3f4c20, 0x22f4b: 0x6cafec20, + 0x22f4c: 0x6c42c620, 0x22f4f: 0x6c6d0a20, + 0x22f50: 0x6d1f3620, 0x22f52: 0x6ccd8c20, + 0x22f54: 0x6c9d4620, 0x22f55: 0x6cab9c20, 0x22f57: 0x6c54cc20, + 0x22f5b: 0x6d204620, + 0x22f5d: 0x6c9bd420, + // Block 0x8be, offset 0x22f80 + 0x22f90: 0x6d352a20, 0x22f93: 0x6c08e020, + 0x22f97: 0x6ccfe820, + 0x22f98: 0x6cb79420, 0x22f99: 0x6cfaa620, 0x22f9a: 0x6cac5820, 0x22f9b: 0x6c776e20, + 0x22fab: 0x6cd68620, + 0x22fac: 0x6cafee20, 0x22fae: 0x6d290220, 0x22faf: 0x6d3a6c20, + 0x22fb1: 0x6cd9c020, 0x22fb2: 0x6c6f1820, + 0x22fb5: 0x6c150020, 0x22fb6: 0x6c38a420, 0x22fb7: 0x6cff8e20, + 0x22fb8: 0x6d1aec20, 0x22fb9: 0x6c540e20, 0x22fba: 0x6c999220, 0x22fbb: 0x6ce8c020, + 0x22fbd: 0x6c621820, + // Block 0x8bf, offset 0x22fc0 + 0x22fc1: 0x6d151c20, 0x22fc3: 0x6d236c20, + 0x22fc4: 0x6c6ee020, 0x22fc5: 0x6cad9220, 0x22fc7: 0x6cfed820, + 0x22fc9: 0x6c468c20, + 0x22fcc: 0x6c465020, 0x22fcd: 0x6cdcf220, 0x22fce: 0x6cfc1620, 0x22fcf: 0x6d3baa20, + 0x22ffe: 0x6c1dba20, + // Block 0x8c0, offset 0x23000 + 0x23004: 0x6cbb7e20, 0x23005: 0x6ce34220, 0x23006: 0x6d27b020, + 0x23009: 0x6cccec20, 0x2300a: 0x6c8b1420, + 0x2300c: 0x6d353620, + 0x23010: 0x6cabf220, + 0x23023: 0x6c712e20, + 0x23024: 0x6c7f1220, + 0x23028: 0x6d3f1820, 0x2302a: 0x6cc1a420, 0x2302b: 0x6c47b020, + 0x2302c: 0x6c747a20, 0x2302d: 0x6d348220, 0x2302e: 0x6c021e20, 0x2302f: 0x6cbe2020, + 0x23030: 0x6cb00620, 0x23031: 0x6d417820, 0x23033: 0x6cb9b020, + 0x23035: 0x6c25e620, 0x23037: 0x6c606620, + 0x23038: 0x6ce35220, 0x23039: 0x6cc7b620, 0x2303b: 0x6c4d4220, + 0x2303c: 0x6d0a2620, 0x2303e: 0x6c073c20, 0x2303f: 0x6d348420, + // Block 0x8c1, offset 0x23040 + 0x23041: 0x6c340020, + 0x2304b: 0x6c293220, + 0x23050: 0x6cc62e20, + 0x23072: 0x6c41a820, + 0x23075: 0x6c42ae20, 0x23076: 0x6cde7220, + 0x23078: 0x6cebae20, 0x23079: 0x6d105e20, 0x2307a: 0x6c7a4e20, 0x2307b: 0x6d368c20, + // Block 0x8c2, offset 0x23080 + 0x23096: 0x6c64d020, 0x23097: 0x6ca6be20, + 0x23098: 0x6cd00e20, 0x23099: 0x6c058620, 0x2309a: 0x6cd66e20, 0x2309b: 0x6c30c020, + 0x2309d: 0x6cb91420, 0x2309e: 0x6c4e2820, 0x2309f: 0x6cb83020, + 0x230a0: 0x6c41e420, 0x230a3: 0x6c215a20, + 0x230a4: 0x6c13fe20, 0x230a5: 0x6c0a2620, 0x230a6: 0x6d140c20, 0x230a7: 0x6c3d9020, + 0x230a8: 0x6c35b820, 0x230aa: 0x6c816c20, 0x230ab: 0x6c4fe020, + 0x230ac: 0x6c842a20, + 0x230b1: 0x6ce28020, 0x230b2: 0x6cd01020, + 0x230b4: 0x6d1a9020, 0x230b7: 0x6c64d220, + 0x230bb: 0x6c140020, + // Block 0x8c3, offset 0x230c0 + 0x230d7: 0x6ca86020, + 0x230d8: 0x6c23f620, 0x230db: 0x6d154620, + 0x230df: 0x6ce12220, + 0x230e2: 0x6c738820, + 0x230f0: 0x6c1c5820, 0x230f1: 0x6c468e20, + 0x230f4: 0x6c6b1a20, 0x230f5: 0x6d307c20, 0x230f6: 0x6c559220, 0x230f7: 0x6c987220, + 0x230fb: 0x6d406220, + 0x230fc: 0x6cd8e820, 0x230ff: 0x6c3ad020, + // Block 0x8c4, offset 0x23100 + 0x23100: 0x6d3e8620, 0x23101: 0x6d3e8820, 0x23103: 0x6c6b3420, + 0x23104: 0x6cd82820, 0x23106: 0x6c211620, 0x23107: 0x6cad9820, + 0x2310b: 0x6d128e20, + 0x2310c: 0x6c2b4420, 0x2310e: 0x6c825820, 0x2310f: 0x6d05e420, + 0x23110: 0x6cc7c820, 0x23112: 0x6cabde20, 0x23113: 0x6c738e20, + 0x23114: 0x6cf8dc20, 0x23115: 0x6d133e20, 0x23116: 0x6c014c20, + 0x23118: 0x6d189420, 0x23119: 0x6c64f420, + 0x2311c: 0x6cd93820, 0x2311d: 0x6cf2c420, 0x2311f: 0x6ccb5820, + 0x23120: 0x6d355020, 0x23121: 0x6c088e20, 0x23122: 0x6d3be220, + 0x23126: 0x6c67fa20, 0x23127: 0x6c506820, + 0x23129: 0x6c1c6c20, 0x2312a: 0x6c340820, + // Block 0x8c5, offset 0x23140 + 0x23153: 0x6c0f5820, + 0x23154: 0x6c60a820, 0x23155: 0x6c1fb020, 0x23157: 0x6c962620, + 0x2315a: 0x6cc8b220, + 0x2316b: 0x6c55b020, + 0x23171: 0x6c28c420, + 0x23174: 0x6c4e6420, 0x23175: 0x6cc3fe20, 0x23176: 0x6ccc1e20, 0x23177: 0x6d2e1e20, + 0x23178: 0x6d2b0e20, 0x23179: 0x6c201220, 0x2317a: 0x6cb53620, 0x2317b: 0x6c2ef020, + 0x2317d: 0x6d2ce220, 0x2317e: 0x6ce83220, + // Block 0x8c6, offset 0x23180 + 0x23181: 0x6c221220, 0x23182: 0x6cc99e20, + 0x23184: 0x6c955620, 0x23187: 0x6c60be20, + 0x231a2: 0x6c95c220, 0x231a3: 0x6cbdb220, + 0x231a7: 0x6cbf6c20, + 0x231a8: 0x6c739420, + 0x231ac: 0x6c00e020, 0x231ad: 0x6c65e220, + 0x231b9: 0x6ce42a20, 0x231ba: 0x6cf1b620, + 0x231bd: 0x6cbbb620, + // Block 0x8c7, offset 0x231c0 + 0x231c1: 0x6cac0820, 0x231c2: 0x6c5d0620, + 0x231c5: 0x6c00ec20, 0x231c7: 0x6cd7a220, + 0x231c8: 0x6c887220, 0x231c9: 0x6c337420, 0x231cb: 0x6cdebc20, + 0x231cc: 0x6c6cbe20, 0x231cd: 0x6c0a8a20, 0x231ce: 0x6d0de820, 0x231cf: 0x6c435a20, + 0x231d0: 0x6cb18820, 0x231d1: 0x6d242c20, 0x231d2: 0x6ccf7c20, + 0x231d5: 0x6c651420, 0x231d7: 0x6c55dc20, + 0x231da: 0x6c8b4e20, + 0x231dc: 0x6c0bce20, 0x231dd: 0x6cdb4e20, 0x231de: 0x6c689420, + 0x231f8: 0x6d3cb820, + 0x231fd: 0x6c4dc220, + // Block 0x8c8, offset 0x23200 + 0x23207: 0x6c340e20, + 0x23210: 0x6d014e20, 0x23211: 0x6c9b8220, 0x23212: 0x6c3db420, 0x23213: 0x6c931a20, + 0x23214: 0x6ce0b220, 0x23217: 0x6c8ecc20, + 0x23218: 0x6cfaee20, 0x23219: 0x6cca9420, + 0x2321c: 0x6c240220, 0x2321d: 0x6d3c2620, 0x2321f: 0x6c188e20, + 0x23230: 0x6c892820, + 0x23234: 0x6c848c20, + // Block 0x8c9, offset 0x23240 + 0x23240: 0x6caf1a20, 0x23241: 0x6ceb9420, + 0x23244: 0x6cebb820, 0x23246: 0x6c8a4a20, 0x23247: 0x6d002620, + 0x23248: 0x6c20f620, 0x23249: 0x6c581a20, 0x2324a: 0x6ca7c220, 0x2324b: 0x6cb94820, + 0x2324c: 0x6c871c20, 0x2324f: 0x6cad3e20, + 0x23250: 0x6ce5b020, 0x23251: 0x6c8ece20, 0x23252: 0x6cf40a20, + 0x23264: 0x6d1d2620, 0x23266: 0x6d2c6820, + 0x23270: 0x6d21ee20, 0x23272: 0x6cfc5020, 0x23273: 0x6d083820, + 0x23274: 0x6cd68a20, 0x23275: 0x6cf74220, + 0x23278: 0x6c9a4220, 0x23279: 0x6ccbb420, 0x2327a: 0x6c893420, + 0x2327c: 0x6c6f9020, 0x2327d: 0x6c81ec20, + // Block 0x8ca, offset 0x23280 + 0x2328e: 0x6cff5020, 0x2328f: 0x6d407420, + 0x2329a: 0x6c8ee820, + 0x2329c: 0x6d2ff020, 0x2329e: 0x6d30c220, + 0x232a0: 0x6c830820, + 0x232ad: 0x6c32b420, + 0x232b7: 0x6c663420, + 0x232b8: 0x6cd68c20, 0x232b9: 0x6d425620, 0x232ba: 0x6cbd0c20, + 0x232bc: 0x6c81ca20, + // Block 0x8cb, offset 0x232c0 + 0x232c9: 0x6d248420, 0x232ca: 0x6d196620, 0x232cb: 0x6ca66e20, + 0x232ce: 0x6c134620, + 0x232d5: 0x6d0f1a20, 0x232d7: 0x6cc89020, + 0x232de: 0x6d0d1c20, 0x232df: 0x6c2f1e20, + 0x232e0: 0x6c9df620, + 0x232e7: 0x6c82a420, + 0x232e9: 0x6cecae20, + 0x232f0: 0x6ca2fe20, + 0x232f6: 0x6d0d2420, + 0x232fa: 0x6c831c20, + 0x232fd: 0x6ccc3020, 0x232fe: 0x6c551620, + // Block 0x8cc, offset 0x23300 + 0x23301: 0x6cf58020, 0x23302: 0x6cf58220, + 0x23304: 0x6d1fa020, 0x23305: 0x6c4d9220, 0x23307: 0x6c4d0820, + 0x23309: 0x6cebc820, 0x2330a: 0x6d068220, 0x2330b: 0x6caf3c20, + 0x2330c: 0x6cdf8e20, 0x2330d: 0x6cf58a20, 0x2330e: 0x6cf58c20, 0x2330f: 0x6c0d2420, + 0x23310: 0x6cbd1a20, 0x23311: 0x6cf58e20, 0x23312: 0x6d20c420, 0x23313: 0x6cf84a20, + 0x23315: 0x6c22b620, 0x23316: 0x6cba4020, 0x23317: 0x6cf95420, + 0x2331a: 0x6cec0620, 0x2331b: 0x6c35f420, + 0x2331c: 0x6d1fae20, 0x2331d: 0x6d041a20, 0x2331e: 0x6ca5c220, 0x2331f: 0x6c4de420, + 0x23320: 0x6c094a20, 0x23321: 0x6cd0ec20, + 0x23324: 0x6d2d6220, 0x23325: 0x6c2d4420, 0x23326: 0x6d222c20, + 0x23328: 0x6cab7a20, 0x2332a: 0x6c4ae820, 0x2332b: 0x6cee0620, + 0x2332c: 0x6cb8c620, 0x2332d: 0x6d14c820, + 0x23330: 0x6d40b020, 0x23332: 0x6cb8c820, 0x23333: 0x6c2f9c20, + 0x23334: 0x6c793420, 0x23336: 0x6c1f2620, 0x23337: 0x6d13e020, + 0x2333a: 0x6c4d9e20, 0x2333b: 0x6c7b6420, + // Block 0x8cd, offset 0x23340 + 0x23348: 0x6c2d5820, 0x23349: 0x6cf88a20, 0x2334a: 0x6d3e3c20, 0x2334b: 0x6c8d0420, + 0x2334c: 0x6d3f4e20, 0x2334e: 0x6d234420, 0x2334f: 0x6c5ccc20, + 0x23351: 0x6cd86e20, 0x23352: 0x6c76d620, + 0x2335a: 0x6c01c420, + 0x2335c: 0x6d1fca20, 0x2335d: 0x6c605420, 0x2335e: 0x6c5d2c20, 0x2335f: 0x6cb82e20, + 0x23360: 0x6c541020, 0x23361: 0x6c541220, 0x23363: 0x6c2d5c20, + 0x23369: 0x6d004c20, + 0x2336d: 0x6ccf5620, 0x2336e: 0x6ccc5c20, + 0x23372: 0x6d00ca20, 0x23373: 0x6d112220, + 0x23374: 0x6c26f420, 0x23376: 0x6d01d820, 0x23377: 0x6c1ac620, + 0x23378: 0x6d1fde20, 0x23379: 0x6c50a220, 0x2337a: 0x6ccc6220, + 0x2337f: 0x6cdf2e20, + // Block 0x8ce, offset 0x23380 + 0x23381: 0x6d3a1c20, 0x23383: 0x6c006c20, + 0x23387: 0x6cc3e020, + 0x23388: 0x6d2aea20, 0x2338a: 0x6c7e4a20, 0x2338b: 0x6c911620, + 0x2338c: 0x6c1fc820, 0x2338e: 0x6d1fe620, + 0x23396: 0x6ce41020, + 0x23398: 0x6cd1fa20, + 0x233a1: 0x6d000a20, 0x233a2: 0x6cf8ee20, + 0x233a8: 0x6c5e1220, 0x233a9: 0x6c1c8620, 0x233aa: 0x6d18e620, + 0x233af: 0x6cd54420, + 0x233b0: 0x6d270020, 0x233b1: 0x6c155420, 0x233b2: 0x6c36da20, 0x233b3: 0x6cf73620, + 0x233b4: 0x6cf74420, 0x233b5: 0x6d1d2a20, 0x233b6: 0x6d410020, 0x233b7: 0x6d28a220, + 0x233ba: 0x6d28a820, + // Block 0x8cf, offset 0x233c0 + 0x233c2: 0x6cde2c20, 0x233c3: 0x6ced7020, + 0x233c7: 0x6d031e20, + 0x233ca: 0x6cee4820, 0x233cb: 0x6c3f3820, + 0x233d0: 0x6c91b620, + 0x233de: 0x6c656820, + 0x233e1: 0x6d0c6620, 0x233e3: 0x6c094c20, + 0x233e4: 0x6c78fc20, 0x233e5: 0x6c497820, + 0x233e8: 0x6d3e1820, + 0x233ee: 0x6c7cce20, 0x233ef: 0x6d38e020, + 0x233f0: 0x6d35be20, 0x233f3: 0x6ce8a420, + 0x233f7: 0x6cde4c20, + 0x233f9: 0x6c1f3e20, 0x233fa: 0x6c196e20, 0x233fb: 0x6c1a7420, + 0x233fc: 0x6d3af420, 0x233fe: 0x6c26f220, + // Block 0x8d0, offset 0x23400 + 0x23407: 0x6c09c620, + 0x23409: 0x6c641c20, + 0x2340c: 0x6d17e620, 0x2340f: 0x6d26c420, + 0x23410: 0x6c428a20, + 0x23416: 0x6c41ae20, + 0x2341c: 0x6cbbac20, + 0x23420: 0x6c1eb020, 0x23421: 0x6c1eb620, 0x23422: 0x6c0a6a20, + 0x23426: 0x6c4b8a20, + 0x23429: 0x6c47e020, 0x2342a: 0x6c0e0020, 0x2342b: 0x6d1b9420, + 0x2342c: 0x6d3cbc20, 0x2342d: 0x6c47ec20, 0x2342f: 0x6c876820, + 0x23435: 0x6c35c420, 0x23436: 0x6c271420, + 0x2343c: 0x6c118620, + // Block 0x8d1, offset 0x23440 + 0x23442: 0x6ce3d420, 0x23443: 0x6c323620, + 0x23444: 0x6d168c20, + 0x23448: 0x6c2e6020, 0x2344a: 0x6ca97e20, + 0x2344c: 0x6d094420, 0x2344d: 0x6ca54a20, 0x2344e: 0x6c4b3220, 0x2344f: 0x6c779e20, + 0x23452: 0x6c201a20, + 0x23456: 0x6d2c2020, 0x23457: 0x6d1efc20, + 0x23459: 0x6c043420, 0x2345a: 0x6cd24a20, 0x2345b: 0x6c2d3e20, + 0x2345c: 0x6cabb420, 0x2345d: 0x6cc01620, + 0x23461: 0x6d094820, 0x23463: 0x6ca0e420, + 0x23464: 0x6c77e020, 0x23465: 0x6d1fb020, 0x23466: 0x6c68d220, 0x23467: 0x6c0ec620, + 0x2346c: 0x6d052020, + 0x23472: 0x6c9ce820, 0x23473: 0x6c95f220, + 0x23475: 0x6d094e20, 0x23477: 0x6c34e220, + 0x23479: 0x6c37c620, 0x2347a: 0x6cccd820, + 0x2347c: 0x6c7cee20, 0x2347d: 0x6ca52c20, 0x2347e: 0x6c9e1420, 0x2347f: 0x6c85ce20, + // Block 0x8d2, offset 0x23480 + 0x23480: 0x6c949620, 0x23482: 0x6c2e8420, + 0x23484: 0x6cb85620, 0x23485: 0x6c832a20, 0x23487: 0x6c997020, + 0x23489: 0x6c524c20, 0x2348a: 0x6c181620, 0x2348b: 0x6d35e620, + 0x2348d: 0x6c477c20, 0x2348e: 0x6c25b820, + 0x23493: 0x6cf4de20, + 0x23494: 0x6ce26420, 0x23497: 0x6cf61220, + 0x23498: 0x6d10a620, 0x23499: 0x6cefc620, 0x2349b: 0x6d40be20, + 0x2349c: 0x6c96be20, 0x2349d: 0x6d225a20, 0x2349e: 0x6caf0820, 0x2349f: 0x6d17a420, + 0x234a0: 0x6cbe1620, 0x234a1: 0x6d26b620, 0x234a2: 0x6c754c20, 0x234a3: 0x6c67e620, + 0x234a4: 0x6d06d820, 0x234a5: 0x6c07ea20, + 0x234aa: 0x6c95b020, 0x234ab: 0x6d3c6020, + 0x234b2: 0x6c326420, 0x234b3: 0x6cfe4020, + 0x234b6: 0x6c5be420, + 0x234ba: 0x6c479e20, 0x234bb: 0x6c77b020, + 0x234be: 0x6d037c20, 0x234bf: 0x6c5cf020, + // Block 0x8d3, offset 0x234c0 + 0x234c0: 0x6c0af820, + 0x234c4: 0x6c78c420, 0x234c5: 0x6c77b220, + 0x234c8: 0x6c25e820, + 0x234cf: 0x6c92a420, + 0x234d1: 0x6d41c620, 0x234d2: 0x6d2a2020, 0x234d3: 0x6c692e20, + 0x234d4: 0x6c49a020, + 0x234d9: 0x6d0c2220, 0x234da: 0x6c376620, + 0x234dc: 0x6cbe8820, 0x234df: 0x6c2ae820, + 0x234e0: 0x6cd8ea20, 0x234e1: 0x6cdc7220, 0x234e2: 0x6c8aa420, + 0x234e7: 0x6ccdb020, + 0x234e9: 0x6c0a6e20, 0x234ea: 0x6cf0e420, 0x234eb: 0x6d136020, + 0x234ed: 0x6d2d5020, 0x234ef: 0x6d129420, + 0x234f0: 0x6c2e4c20, 0x234f1: 0x6c00ee20, + 0x234f4: 0x6c680620, 0x234f7: 0x6cda6220, + 0x234f9: 0x6c581c20, 0x234fa: 0x6d246020, + 0x234fd: 0x6cc50a20, + // Block 0x8d4, offset 0x23500 + 0x23500: 0x6c2cfa20, 0x23501: 0x6d413e20, 0x23502: 0x6c047420, + 0x23504: 0x6cbd5a20, 0x23507: 0x6c633620, + 0x23509: 0x6cafcc20, + 0x2350c: 0x6ce7ec20, + 0x23510: 0x6c1da220, + 0x23515: 0x6c4af020, + 0x23520: 0x6c5ee620, + 0x23528: 0x6d096420, 0x2352a: 0x6c2d6020, + 0x2352d: 0x6c0bac20, 0x2352e: 0x6d291c20, 0x2352f: 0x6ce76820, + 0x23536: 0x6ccd5820, + 0x23538: 0x6c482620, 0x23539: 0x6cc3ec20, + // Block 0x8d5, offset 0x23540 + 0x23540: 0x6c47cc20, + 0x23548: 0x6c55b220, 0x23549: 0x6c7b0420, + 0x2354c: 0x6c46d820, 0x2354e: 0x6cdb3220, + 0x23550: 0x6c1df620, 0x23552: 0x6c795c20, + 0x23554: 0x6c317e20, + 0x23559: 0x6d190a20, + 0x2355c: 0x6c2a4220, 0x2355d: 0x6cbaf820, + 0x23563: 0x6c900220, + 0x23565: 0x6c84cc20, 0x23567: 0x6c87a020, + 0x23568: 0x6cbe6420, 0x2356a: 0x6ceed420, + 0x2356c: 0x6ca1bc20, + 0x23571: 0x6cb74420, 0x23573: 0x6c67a020, + 0x23574: 0x6d008c20, + 0x23579: 0x6c277820, 0x2357b: 0x6c90a420, + // Block 0x8d6, offset 0x23580 + 0x23582: 0x6c497620, + 0x23586: 0x6cadc820, + 0x23589: 0x6cafce20, 0x2358b: 0x6c735420, + 0x2358d: 0x6c06aa20, 0x2358e: 0x6c747c20, 0x2358f: 0x6c738420, + 0x23590: 0x6cd3b420, + 0x23595: 0x6d014a20, + 0x23598: 0x6cc8a820, 0x23599: 0x6c6ec220, 0x2359a: 0x6cb3be20, 0x2359b: 0x6cc9f420, + 0x235a0: 0x6c5e7a20, + 0x235a9: 0x6c3b1820, 0x235aa: 0x6c06e820, 0x235ab: 0x6c6bc220, + 0x235ac: 0x6cc94020, 0x235ae: 0x6caf3e20, + 0x235b4: 0x6c2c2220, 0x235b5: 0x6c98c820, 0x235b6: 0x6c03ec20, 0x235b7: 0x6c03ee20, + 0x235b8: 0x6ce57820, 0x235b9: 0x6c8cba20, 0x235ba: 0x6cd0f020, 0x235bb: 0x6d31c220, + 0x235bc: 0x6caf4620, 0x235bd: 0x6cf4c620, 0x235bf: 0x6d2b4220, + // Block 0x8d7, offset 0x235c0 + 0x235c0: 0x6c063a20, + 0x235c7: 0x6c938020, + 0x235d6: 0x6c4fa020, 0x235d7: 0x6c30e020, + 0x235d8: 0x6c3e0e20, 0x235d9: 0x6ca5c420, + 0x235dd: 0x6c43de20, + 0x235e0: 0x6cc79820, 0x235e1: 0x6cfbfc20, + 0x235e4: 0x6c096020, + 0x235ee: 0x6c98d220, + 0x235f2: 0x6cc70a20, 0x235f3: 0x6cc04c20, + 0x235f7: 0x6c0ee820, + 0x235f9: 0x6c4fa620, 0x235fa: 0x6ca4ee20, 0x235fb: 0x6d0c8620, + // Block 0x8d8, offset 0x23600 + 0x23603: 0x6cad5c20, + 0x23604: 0x6cdbc020, 0x23606: 0x6ceba220, + 0x23608: 0x6cc10a20, 0x23609: 0x6c83d620, 0x2360a: 0x6c2a7220, + 0x2360c: 0x6c6aca20, 0x2360d: 0x6c6acc20, 0x2360e: 0x6c4bc820, 0x2360f: 0x6c649c20, + 0x23610: 0x6c099e20, + 0x23620: 0x6cca5620, 0x23621: 0x6c053020, 0x23622: 0x6c214a20, + 0x23626: 0x6ca3c220, 0x23627: 0x6c054e20, + 0x2362a: 0x6cc68820, 0x2362b: 0x6c636c20, + 0x2362c: 0x6cd9c220, + 0x23630: 0x6c2a7420, + 0x2363e: 0x6cfaac20, 0x2363f: 0x6d2d8020, + // Block 0x8d9, offset 0x23640 + 0x23640: 0x6c999620, 0x23643: 0x6d3e5020, + 0x23645: 0x6c623c20, 0x23646: 0x6cb61c20, + 0x2364b: 0x6cc82420, + 0x2364c: 0x6cdd2c20, 0x2364d: 0x6cc71620, 0x2364e: 0x6cf50c20, 0x2364f: 0x6cc69620, + 0x23650: 0x6cc69820, + 0x2365a: 0x6cde7620, + 0x2365c: 0x6cd9d020, + 0x23664: 0x6c842c20, 0x23667: 0x6c24fc20, + 0x23668: 0x6d3fb020, 0x23669: 0x6c9ad220, 0x2366a: 0x6cf80820, + 0x2366c: 0x6c989e20, 0x2366d: 0x6ca86220, 0x2366f: 0x6cdbd220, + 0x23671: 0x6cadea20, + 0x23674: 0x6c0a2820, 0x23675: 0x6c2c9020, + 0x23678: 0x6cc1be20, 0x23679: 0x6cbbfa20, 0x2367b: 0x6c3b4420, + 0x2367c: 0x6cdb1620, + // Block 0x8da, offset 0x23680 + 0x23683: 0x6d05e620, + 0x23687: 0x6cc72420, + 0x23688: 0x6c5f3220, 0x2368b: 0x6cc1d620, + 0x2368c: 0x6c8b3820, + 0x23695: 0x6ccafe20, + 0x23698: 0x6c7dd620, 0x2369a: 0x6c257620, 0x2369b: 0x6d136c20, + 0x2369c: 0x6c0e3220, 0x2369e: 0x6c6b5c20, + 0x236a0: 0x6cc1e020, 0x236a1: 0x6cc1e220, + 0x236a5: 0x6c9b6e20, 0x236a6: 0x6cc49020, + 0x236a8: 0x6c0d5e20, 0x236a9: 0x6c178220, + 0x236ac: 0x6c31d420, + 0x236b6: 0x6cc4ec20, 0x236b7: 0x6cfb0220, + 0x236ba: 0x6ce25220, 0x236bb: 0x6cc20a20, + 0x236bc: 0x6ca8b420, 0x236bf: 0x6cd51c20, + // Block 0x8db, offset 0x236c0 + 0x236c0: 0x6c920220, 0x236c2: 0x6c7dda20, + 0x236c8: 0x6c9f3620, 0x236c9: 0x6c9f9e20, + 0x236cd: 0x6c287e20, + 0x236d0: 0x6d1b6820, 0x236d3: 0x6d001020, + 0x236d7: 0x6c618820, + 0x236dc: 0x6d19b220, + 0x236e6: 0x6c3b3820, 0x236e7: 0x6d383420, + 0x236eb: 0x6c47c020, + 0x236f1: 0x6c13c420, 0x236f3: 0x6c8e3c20, + 0x236f6: 0x6c102c20, + 0x236fa: 0x6cabae20, 0x236fb: 0x6cd87620, + 0x236fc: 0x6c29b820, 0x236fd: 0x6d31b020, + // Block 0x8dc, offset 0x23700 + 0x23700: 0x6cccb620, 0x23702: 0x6c1fbe20, + 0x23704: 0x6c6fa820, + 0x2370a: 0x6c787620, 0x2370b: 0x6c1af820, + 0x23711: 0x6c565c20, 0x23712: 0x6c858220, 0x23713: 0x6ccbc620, + 0x23716: 0x6cac1820, 0x23717: 0x6ceee220, + 0x23718: 0x6cf42620, + 0x2371c: 0x6d1c5420, + 0x23721: 0x6ccbc820, 0x23722: 0x6c2b1020, + 0x23725: 0x6c27b820, + 0x23731: 0x6ce83a20, 0x23732: 0x6c50ca20, 0x23733: 0x6cb34e20, + 0x23735: 0x6d34f620, 0x23736: 0x6ca98020, 0x23737: 0x6ca67e20, + 0x2373d: 0x6cc6f820, 0x2373e: 0x6c48ea20, + // Block 0x8dd, offset 0x23740 + 0x23740: 0x6d343e20, 0x23743: 0x6c5fe220, + 0x2375c: 0x6c392c20, 0x2375f: 0x6c6a8020, + 0x23760: 0x6c4d3820, + 0x23764: 0x6d2e4e20, 0x23766: 0x6cf86420, + 0x23769: 0x6d3e1220, + 0x2376c: 0x6cf76e20, 0x2376d: 0x6cb1ac20, + 0x23770: 0x6c078020, 0x23772: 0x6c657220, + // Block 0x8de, offset 0x23780 + 0x23793: 0x6c665c20, + 0x23796: 0x6d28ae20, + 0x2379e: 0x6c07ac20, 0x2379f: 0x6c995e20, + 0x237a2: 0x6d2a7620, 0x237a3: 0x6d3c3820, + 0x237a5: 0x6c7bbe20, + 0x237a8: 0x6c089e20, 0x237aa: 0x6cac2220, + 0x237bc: 0x6c996020, 0x237bd: 0x6ce09020, + // Block 0x8df, offset 0x237c0 + 0x237de: 0x6cea7a20, 0x237df: 0x6c95aa20, + 0x237e2: 0x6cdf9a20, + 0x237f1: 0x6c016a20, + 0x237f7: 0x6c4e0420, + 0x237f8: 0x6d3a0c20, 0x237fa: 0x6c34e820, 0x237fb: 0x6c34ea20, + 0x237fc: 0x6c421c20, + // Block 0x8e0, offset 0x23800 + 0x23806: 0x6cbf8c20, + 0x23808: 0x6cee1220, 0x2380a: 0x6ca10420, 0x2380b: 0x6d30f220, + 0x2380c: 0x6cf1d620, 0x2380d: 0x6d3c3a20, 0x2380f: 0x6c69fe20, + 0x23810: 0x6cad8e20, + 0x23818: 0x6cdaa820, + 0x2381d: 0x6c724020, + 0x23820: 0x6cb4ec20, 0x23821: 0x6c11f420, 0x23823: 0x6ce94a20, + 0x23824: 0x6ccbec20, 0x23826: 0x6ceb1620, + 0x23829: 0x6c579420, 0x2382b: 0x6d176220, + // Block 0x8e1, offset 0x23840 + 0x23860: 0x6c9f4820, 0x23861: 0x6d37b420, + 0x23865: 0x6cd77e20, + 0x23869: 0x6d176420, 0x2386a: 0x6cee1420, 0x2386b: 0x6c024220, + 0x23876: 0x6cda7820, + 0x2387e: 0x6c4b0020, 0x2387f: 0x6ceb8020, + // Block 0x8e2, offset 0x23880 + 0x23880: 0x6c5b5220, 0x23883: 0x6d06dc20, + 0x23884: 0x6d296c20, 0x23886: 0x6d3f1220, 0x23887: 0x6c0b9e20, + 0x23889: 0x6c26a620, 0x2388a: 0x6d19ca20, 0x2388b: 0x6cc35c20, + 0x2388e: 0x6c580e20, 0x2388f: 0x6ca2e020, + 0x23890: 0x6d28ba20, 0x23892: 0x6ce32620, + 0x23898: 0x6d14f820, 0x23899: 0x6cdfaa20, 0x2389a: 0x6ccf1820, 0x2389b: 0x6cd78220, + 0x2389d: 0x6d03e620, + 0x238a0: 0x6d1fce20, 0x238a3: 0x6c3b7620, + // Block 0x8e3, offset 0x238c0 + 0x238c7: 0x6c78b220, + 0x238cb: 0x6c3e7c20, + 0x238d2: 0x6c9fb220, + 0x238da: 0x6cb09820, + 0x238dc: 0x6c604220, 0x238dd: 0x6cbc4a20, 0x238de: 0x6d37fc20, 0x238df: 0x6c422820, + 0x238e0: 0x6d24f820, 0x238e1: 0x6c1b3620, + 0x238e5: 0x6cba5a20, 0x238e7: 0x6d424220, + 0x238e9: 0x6d00bc20, 0x238ea: 0x6c98ea20, + 0x238ec: 0x6c556e20, 0x238ee: 0x6cb0a420, 0x238ef: 0x6d0a9420, + 0x238f1: 0x6cf9d220, 0x238f2: 0x6ce34420, + 0x238f5: 0x6ca34e20, 0x238f6: 0x6c1fac20, + // Block 0x8e4, offset 0x23900 + 0x23900: 0x6cf45020, + 0x2392c: 0x6c599820, 0x2392d: 0x6d096620, 0x2392e: 0x6ce26620, + 0x23930: 0x6cbc4c20, 0x23933: 0x6c685020, + 0x2393c: 0x6c293020, 0x2393d: 0x6c044620, + // Block 0x8e5, offset 0x23940 + 0x2394d: 0x6c297620, 0x2394e: 0x6c79f820, + 0x23950: 0x6c70b220, 0x23951: 0x6ccc0a20, 0x23952: 0x6c6dc820, + 0x23955: 0x6ca06c20, 0x23956: 0x6caa0220, + 0x23958: 0x6cd78e20, 0x2395a: 0x6cd5f820, 0x2395b: 0x6d3c2020, + 0x2395c: 0x6c3ec220, 0x2395f: 0x6d29de20, + 0x23960: 0x6d00cc20, 0x23961: 0x6c812820, 0x23962: 0x6ce70420, + 0x23969: 0x6d306e20, + 0x2396c: 0x6c11fe20, 0x2396e: 0x6d26cc20, + 0x23971: 0x6d393620, + // Block 0x8e6, offset 0x23980 + 0x2399a: 0x6cdfb420, + 0x2399e: 0x6d0cb420, 0x2399f: 0x6c928820, + 0x239a0: 0x6d0db620, + 0x239a6: 0x6d2ae020, 0x239a7: 0x6cd66c20, + // Block 0x8e7, offset 0x239c0 + 0x239c5: 0x6c4c3620, 0x239c6: 0x6d3a2020, + 0x239c8: 0x6cc7bc20, 0x239c9: 0x6cc7be20, + 0x239cc: 0x6c76e620, 0x239cd: 0x6c626220, 0x239ce: 0x6c42da20, + 0x239d2: 0x6d01fa20, + 0x239d5: 0x6caba220, 0x239d6: 0x6c64d420, + 0x239da: 0x6d349220, 0x239db: 0x6d2c4820, + 0x239dd: 0x6c53a820, 0x239df: 0x6c7b7020, + 0x239e1: 0x6c0f4420, + 0x239e4: 0x6ccb4820, 0x239e5: 0x6c01cc20, 0x239e6: 0x6c66b820, + 0x239e8: 0x6ce2ac20, 0x239eb: 0x6cd93420, + 0x239ed: 0x6c9c0c20, 0x239ee: 0x6d1a9420, 0x239ef: 0x6cdfb620, + 0x239f0: 0x6c4c3820, 0x239f3: 0x6cc84620, + 0x239f4: 0x6cf0ba20, 0x239f7: 0x6cd8de20, + // Block 0x8e8, offset 0x23a00 + 0x23a24: 0x6cb7c220, 0x23a26: 0x6d2f0a20, + // Block 0x8e9, offset 0x23a40 + 0x23a45: 0x6c304020, 0x23a46: 0x6c3eee20, 0x23a47: 0x6cd07620, + 0x23a48: 0x6cdb1a20, 0x23a49: 0x6d18a020, 0x23a4a: 0x6c891820, + 0x23a4c: 0x6c516e20, 0x23a4e: 0x6d319420, + 0x23a50: 0x6d2afe20, 0x23a52: 0x6c250c20, 0x23a53: 0x6c250e20, + 0x23a5d: 0x6c3cf220, 0x23a5e: 0x6c853220, 0x23a5f: 0x6c7a0220, + 0x23a63: 0x6d000620, + 0x23a64: 0x6d1fee20, + // Block 0x8ea, offset 0x23a80 + 0x23a83: 0x6c4fea20, + 0x23a89: 0x6c4f0620, 0x23a8a: 0x6c790c20, + 0x23a9d: 0x6d23ec20, + 0x23aa3: 0x6c58e220, + 0x23aa4: 0x6cdd3e20, 0x23aa6: 0x6c7e9c20, + 0x23aa8: 0x6c313c20, 0x23aa9: 0x6c66de20, 0x23aaa: 0x6cb32020, 0x23aab: 0x6c0b5420, + 0x23ab0: 0x6d097420, 0x23ab2: 0x6c0bc820, + 0x23ab7: 0x6cf0e620, + // Block 0x8eb, offset 0x23ac0 + 0x23ae1: 0x6c28d620, 0x23ae2: 0x6c6b5e20, 0x23ae3: 0x6c046020, + 0x23ae5: 0x6ca74420, 0x23ae6: 0x6cfd2620, 0x23ae7: 0x6ccb7620, + 0x23aea: 0x6c576420, 0x23aeb: 0x6c1fa420, + 0x23aee: 0x6caba620, 0x23aef: 0x6c8b5020, + 0x23af0: 0x6c2ba420, 0x23af1: 0x6c114e20, 0x23af3: 0x6d2c5e20, + 0x23af5: 0x6c936820, + 0x23af9: 0x6c5e1420, + 0x23afc: 0x6c86ce20, 0x23afd: 0x6d1d1620, 0x23aff: 0x6cf03a20, + // Block 0x8ec, offset 0x23b00 + 0x23b00: 0x6c0a8c20, 0x23b01: 0x6c4c9620, 0x23b03: 0x6cb0ce20, + 0x23b06: 0x6c0c3a20, + 0x23b20: 0x6d0dea20, + 0x23b24: 0x6d3bee20, + 0x23b32: 0x6c539420, + 0x23b36: 0x6c8c7820, 0x23b37: 0x6c36ce20, + 0x23b39: 0x6d1b1820, 0x23b3a: 0x6c808020, + 0x23b3c: 0x6d123820, 0x23b3f: 0x6d08c820, + // Block 0x8ed, offset 0x23b40 + 0x23b40: 0x6c86fa20, + 0x23b68: 0x6c808420, 0x23b69: 0x6c8d9020, 0x23b6a: 0x6cf73820, 0x23b6b: 0x6c52de20, + 0x23b6d: 0x6c696a20, 0x23b6e: 0x6d3dd220, + 0x23b72: 0x6d34b620, + 0x23b75: 0x6c0fb820, 0x23b76: 0x6ce29620, 0x23b77: 0x6c019820, + 0x23b7a: 0x6d0a5220, 0x23b7b: 0x6c82fa20, + 0x23b7c: 0x6d29ec20, 0x23b7d: 0x6c5b7c20, + // Block 0x8ee, offset 0x23b80 + 0x23b8e: 0x6cf92620, 0x23b8f: 0x6c539820, + 0x23b91: 0x6c397820, 0x23b92: 0x6c662420, 0x23b93: 0x6c23c820, + 0x23b94: 0x6d28da20, 0x23b96: 0x6c10e020, + 0x23b98: 0x6d1ece20, 0x23b9b: 0x6c338820, + 0x23b9c: 0x6cac4e20, + 0x23ba5: 0x6cdede20, 0x23ba7: 0x6cacc420, + 0x23bab: 0x6c386e20, + 0x23bac: 0x6cf74620, + 0x23bb6: 0x6d124c20, 0x23bb7: 0x6c957620, + 0x23bba: 0x6c0b2220, + 0x23bbc: 0x6c6d7420, 0x23bbd: 0x6c876a20, + // Block 0x8ef, offset 0x23bc0 + 0x23bca: 0x6d0f0a20, 0x23bcb: 0x6c315020, + 0x23bce: 0x6c981620, + 0x23bd0: 0x6c45ca20, 0x23bd1: 0x6cc51420, 0x23bd2: 0x6c121220, + 0x23be3: 0x6c9ae420, + 0x23bf1: 0x6c47fc20, 0x23bf2: 0x6cd69e20, + 0x23bf8: 0x6d0d2020, 0x23bf9: 0x6c0adc20, + // Block 0x8f0, offset 0x23c00 + 0x23c00: 0x6c0c6a20, 0x23c01: 0x6c1a6220, 0x23c02: 0x6c7ce620, + 0x23c04: 0x6c5d8820, + 0x23c0d: 0x6c1be620, 0x23c0f: 0x6cf2d020, + 0x23c11: 0x6c23e820, 0x23c12: 0x6d357a20, + 0x23c19: 0x6cd70820, + 0x23c1c: 0x6c48a220, 0x23c1d: 0x6cb40020, 0x23c1e: 0x6d068620, 0x23c1f: 0x6cd7d020, + 0x23c21: 0x6cf42e20, + 0x23c2e: 0x6c3d4020, + 0x23c30: 0x6cd31e20, 0x23c33: 0x6c5b9220, + 0x23c34: 0x6c597c20, 0x23c35: 0x6cabb620, + 0x23c3c: 0x6d3a5e20, 0x23c3e: 0x6d14a220, + // Block 0x8f1, offset 0x23c40 + 0x23c43: 0x6c85a820, + 0x23c44: 0x6ccd3420, + 0x23c5c: 0x6c9f3820, 0x23c5e: 0x6c437c20, + 0x23c60: 0x6c54b020, + 0x23c6f: 0x6c371220, + 0x23c70: 0x6c380e20, 0x23c73: 0x6d06aa20, + 0x23c74: 0x6d14ca20, + 0x23c7e: 0x6d1d3620, + // Block 0x8f2, offset 0x23c80 + 0x23c94: 0x6c1b1820, + 0x23c99: 0x6d14cc20, + 0x23ca5: 0x6c2b6a20, 0x23ca6: 0x6c5b5020, 0x23ca7: 0x6c510c20, + 0x23ca9: 0x6d2c7a20, + 0x23cb6: 0x6d27a420, 0x23cb7: 0x6cfa9c20, + // Block 0x8f3, offset 0x23cc0 + 0x23ccc: 0x6cfb4c20, 0x23ccd: 0x6c81d220, 0x23cce: 0x6cced420, 0x23ccf: 0x6cd36820, + 0x23cd0: 0x6d3d5220, + 0x23ce4: 0x6c0ca820, 0x23ce5: 0x6c6fc020, 0x23ce6: 0x6cf29220, 0x23ce7: 0x6c68f820, + 0x23ce8: 0x6c3e7e20, 0x23cea: 0x6cfd7620, 0x23ceb: 0x6c768a20, + // Block 0x8f4, offset 0x23d00 + 0x23d32: 0x6ca4fe20, + 0x23d34: 0x6c5ddc20, 0x23d35: 0x6c605620, 0x23d36: 0x6c7e7e20, + 0x23d3b: 0x6c3d1220, + 0x23d3c: 0x6ccd4c20, 0x23d3d: 0x6c8a9c20, 0x23d3e: 0x6c9ee020, 0x23d3f: 0x6c182620, + // Block 0x8f5, offset 0x23d40 + 0x23d42: 0x6ca05e20, + 0x23d4f: 0x6c909820, + 0x23d68: 0x6c34f620, 0x23d6b: 0x6ca50020, + 0x23d6d: 0x6c5ee820, + 0x23d70: 0x6d3b0820, + // Block 0x8f6, offset 0x23d80 + 0x23d82: 0x6cdad220, 0x23d83: 0x6c34f820, + 0x23d87: 0x6c6f2820, + 0x23d8a: 0x6d291e20, 0x23d8b: 0x6c5b5c20, + 0x23d8c: 0x6d1cfe20, 0x23d8d: 0x6c557a20, 0x23d8e: 0x6c8c5820, 0x23d8f: 0x6cf25820, + 0x23d90: 0x6c4ee820, + 0x23d94: 0x6ca40620, + 0x23db7: 0x6cf8b020, + 0x23db9: 0x6c422c20, + 0x23dbe: 0x6c51d420, 0x23dbf: 0x6c5f0820, + // Block 0x8f7, offset 0x23dc0 + 0x23dc0: 0x6cfdf020, 0x23dc1: 0x6ccc0c20, + 0x23dd0: 0x6cea0c20, 0x23dd2: 0x6d2f6c20, 0x23dd3: 0x6cd60420, + 0x23dd5: 0x6d1fe820, 0x23dd6: 0x6c64d820, + 0x23ddc: 0x6d2a8c20, + 0x23de4: 0x6d2ed820, + 0x23dfd: 0x6cc92c20, + // Block 0x8f8, offset 0x23e00 + 0x23e04: 0x6d0c2420, + 0x23e0b: 0x6c255a20, + 0x23e17: 0x6c608a20, + 0x23e18: 0x6cce1a20, + 0x23e23: 0x6c36a820, + 0x23e24: 0x6c817420, 0x23e25: 0x6ce07820, 0x23e27: 0x6d3b2820, + 0x23e2d: 0x6c8c3620, 0x23e2f: 0x6d2b9220, + 0x23e31: 0x6c732a20, 0x23e32: 0x6c550220, + // Block 0x8f9, offset 0x23e40 + 0x23e57: 0x6cd07820, + 0x23e58: 0x6c5dfa20, + 0x23e5c: 0x6c7d2020, + 0x23e71: 0x6c1f7620, 0x23e72: 0x6d395020, + 0x23e76: 0x6c023020, + 0x23e78: 0x6d3db220, + 0x23e7d: 0x6d03a420, 0x23e7f: 0x6c9ef420, + // Block 0x8fa, offset 0x23e80 + 0x23e80: 0x6c550c20, + 0x23e94: 0x6ce01a20, + 0x23e99: 0x6c0a7220, + 0x23ea3: 0x6c2f8420, + 0x23ea9: 0x6c769820, 0x23eab: 0x6c0c3c20, + 0x23eb0: 0x6c5e1620, 0x23eb1: 0x6c8b5220, 0x23eb2: 0x6c24b820, + // Block 0x8fb, offset 0x23ec0 + 0x23ec3: 0x6cfd2820, + 0x23ec4: 0x6cc55620, + 0x23ed3: 0x6d270220, + 0x23ed5: 0x6d09be20, 0x23ed7: 0x6c8a8020, + 0x23ee3: 0x6ccc2a20, + 0x23ee6: 0x6cd3fc20, + 0x23eea: 0x6d025c20, + 0x23ef3: 0x6cff4a20, + 0x23ef7: 0x6d129620, + 0x23ef8: 0x6c805020, 0x23ef9: 0x6d192e20, + 0x23eff: 0x6c88da20, + // Block 0x8fc, offset 0x23f00 + 0x23f14: 0x6c0fba20, 0x23f15: 0x6c126e20, + 0x23f1d: 0x6d124220, + 0x23f26: 0x6c893620, + 0x23f3b: 0x6cdef020, + // Block 0x8fd, offset 0x23f40 + 0x23f51: 0x6c62ec20, + 0x23f54: 0x6cf75220, 0x23f55: 0x6d377020, + 0x23f5a: 0x6cf75620, + 0x23f5d: 0x6d273220, + 0x23f64: 0x6cfc6c20, 0x23f66: 0x6d3df820, + 0x23f6f: 0x6d2ef820, + 0x23f75: 0x6d410620, 0x23f77: 0x6ca2ce20, + 0x23f7e: 0x6c2a0420, 0x23f7f: 0x6c8ad620, + // Block 0x8fe, offset 0x23f80 + 0x23f80: 0x6ca2d220, + 0x23f89: 0x6cad5420, 0x23f8b: 0x6c721620, + 0x23f96: 0x6c95b220, + 0x23f99: 0x6cd64820, 0x23f9a: 0x6cce5420, + 0x23f9d: 0x6c95b420, 0x23f9f: 0x6c3b3a20, + 0x23fa3: 0x6c065820, + 0x23fa8: 0x6c865820, 0x23fab: 0x6d04a220, + 0x23fb6: 0x6c290820, + // Block 0x8ff, offset 0x23fc0 + 0x23fc0: 0x6c1a8c20, + 0x23fc4: 0x6d2f1420, 0x23fc7: 0x6cda3a20, + 0x23fca: 0x6cd03e20, + 0x23fd2: 0x6c447220, + 0x23fd8: 0x6d209020, 0x23fda: 0x6c5ad420, 0x23fdb: 0x6c183e20, + 0x23fdd: 0x6c698420, 0x23fde: 0x6d3ac420, 0x23fdf: 0x6cd4b220, + 0x23fe2: 0x6cff8420, + 0x23fe6: 0x6ca91420, + 0x23fed: 0x6c674420, 0x23fef: 0x6c674820, + 0x23ff7: 0x6c2e0e20, + 0x23ffd: 0x6cbb0c20, 0x23ffe: 0x6cc04e20, + // Block 0x900, offset 0x24000 + 0x24000: 0x6c3c4020, + 0x24006: 0x6d2e6620, 0x24007: 0x6c77fa20, + 0x24012: 0x6c2ece20, 0x24013: 0x6d2aec20, + 0x24016: 0x6c49f820, 0x24017: 0x6ccb5c20, + 0x24018: 0x6c3bea20, 0x2401b: 0x6c67bc20, + 0x2401d: 0x6d0cd820, 0x2401e: 0x6d370820, + 0x24022: 0x6c872220, + 0x24026: 0x6c8ddc20, + 0x2402a: 0x6d146420, + 0x2402c: 0x6cc23e20, 0x2402d: 0x6cac5220, 0x2402e: 0x6c463a20, + 0x24030: 0x6c640220, 0x24031: 0x6c50da20, 0x24033: 0x6caf0c20, + 0x24035: 0x6c721820, 0x24037: 0x6c180620, + 0x2403a: 0x6c8af220, 0x2403b: 0x6cd35220, + 0x2403c: 0x6cb37a20, 0x2403d: 0x6cfe2820, 0x2403f: 0x6cb08e20, + // Block 0x901, offset 0x24040 + 0x24040: 0x6c95ae20, 0x24041: 0x6c243420, 0x24043: 0x6d225020, + 0x24047: 0x6c79a820, + 0x24048: 0x6d01b020, + 0x2404d: 0x6ced1e20, 0x2404e: 0x6d0d8e20, 0x2404f: 0x6cadd820, + 0x24053: 0x6c1a0620, + 0x24058: 0x6ce34620, 0x24059: 0x6c182820, 0x2405a: 0x6c09ce20, 0x2405b: 0x6c890820, + 0x2405c: 0x6c641e20, 0x2405e: 0x6ce68220, + 0x24062: 0x6ce2f620, + 0x24068: 0x6c2edc20, 0x2406a: 0x6cd60620, 0x2406b: 0x6c842e20, + 0x2406c: 0x6c936020, 0x2406d: 0x6cf97420, 0x2406f: 0x6c24e420, + 0x24073: 0x6c0e9220, + 0x24074: 0x6ce9ba20, 0x24075: 0x6cb45020, 0x24077: 0x6c8c6220, + 0x24078: 0x6c3bec20, 0x2407a: 0x6c0f7620, 0x2407b: 0x6c163620, + 0x2407e: 0x6c290a20, 0x2407f: 0x6cdf5820, + // Block 0x902, offset 0x24080 + 0x24080: 0x6c2a3c20, 0x24083: 0x6c872420, + 0x24085: 0x6d0b1220, 0x24086: 0x6d0b1820, 0x24087: 0x6d2d6620, + 0x2408a: 0x6d14e220, + 0x2408c: 0x6cb4fa20, + 0x24094: 0x6c564420, 0x24096: 0x6ce62a20, + 0x24098: 0x6c79cc20, 0x2409b: 0x6c213220, + 0x2409c: 0x6d1f0020, 0x2409d: 0x6c3bd020, 0x2409f: 0x6caab220, + 0x240a0: 0x6ce53020, 0x240a1: 0x6c6cde20, 0x240a2: 0x6cafbc20, 0x240a3: 0x6c18a420, + 0x240a4: 0x6cb08820, 0x240a6: 0x6c6bc420, 0x240a7: 0x6c4ac820, + 0x240b2: 0x6d3c3220, + 0x240b5: 0x6c552420, 0x240b6: 0x6c1e2420, 0x240b7: 0x6cd5a020, + 0x240b8: 0x6ce1b420, 0x240b9: 0x6cafc620, 0x240ba: 0x6cc70020, 0x240bb: 0x6cc70220, + 0x240bd: 0x6c544e20, 0x240be: 0x6cae5a20, + // Block 0x903, offset 0x240c0 + 0x240c5: 0x6c043e20, 0x240c7: 0x6cf99a20, + 0x240cb: 0x6cbdcc20, + 0x240cc: 0x6ca63220, 0x240ce: 0x6ce1b620, 0x240cf: 0x6cc26a20, + 0x240d2: 0x6d008e20, + 0x240d4: 0x6d2fa820, 0x240d5: 0x6c570e20, 0x240d6: 0x6d02c820, + 0x240d8: 0x6cd42e20, 0x240db: 0x6ce8a620, + 0x240dd: 0x6c895020, 0x240de: 0x6c097c20, 0x240df: 0x6c1e5a20, + 0x240e1: 0x6d037020, 0x240e3: 0x6d02cc20, + 0x240e4: 0x6c3d6820, + 0x240e9: 0x6c6bde20, + 0x240ed: 0x6c3f5e20, + 0x240f0: 0x6ce27a20, 0x240f1: 0x6ccf4c20, + 0x240f4: 0x6c174620, 0x240f5: 0x6c20b820, + 0x240fc: 0x6cc47a20, 0x240fd: 0x6c545620, 0x240fe: 0x6c07ec20, + // Block 0x904, offset 0x24100 + 0x24100: 0x6c113020, + 0x24105: 0x6ca21420, + 0x24109: 0x6d059e20, 0x2410a: 0x6c2eaa20, + 0x2410d: 0x6c15c220, 0x2410e: 0x6d215c20, 0x2410f: 0x6d383620, + 0x24113: 0x6c83e620, + 0x24114: 0x6cd43420, + 0x2411a: 0x6c31a420, + 0x2411c: 0x6c98bc20, 0x2411d: 0x6c59d420, 0x2411f: 0x6ce22c20, + 0x24121: 0x6c326620, 0x24122: 0x6ce34820, 0x24123: 0x6cd10820, + 0x24124: 0x6c9a0e20, + 0x24128: 0x6d316820, 0x24129: 0x6cbd9020, 0x2412a: 0x6cb0ae20, 0x2412b: 0x6ce11620, + 0x2412c: 0x6c123820, 0x2412d: 0x6d112420, 0x2412f: 0x6d054620, + 0x24130: 0x6c053620, 0x24131: 0x6c47b220, + 0x24135: 0x6c10aa20, + 0x2413c: 0x6c46c620, 0x2413d: 0x6c0f2e20, + // Block 0x905, offset 0x24140 + 0x24141: 0x6cf21020, + 0x24144: 0x6c624420, + 0x2414a: 0x6c7e4c20, + 0x2414d: 0x6c24e620, 0x2414e: 0x6c9fc820, 0x2414f: 0x6c242820, + 0x24150: 0x6cab4e20, 0x24151: 0x6d1da620, + 0x24156: 0x6c98fe20, 0x24157: 0x6c78c820, + 0x24158: 0x6c981e20, 0x24159: 0x6c2f8020, 0x2415a: 0x6c582e20, 0x2415b: 0x6c34ac20, + 0x2415c: 0x6c677420, 0x2415d: 0x6cdb0220, + 0x24162: 0x6c135c20, 0x24163: 0x6cde9e20, + 0x24165: 0x6c59f820, 0x24166: 0x6c74be20, 0x24167: 0x6d0a4020, + 0x2416a: 0x6d04a620, + 0x2416c: 0x6c9d8820, 0x2416d: 0x6cc45620, 0x2416e: 0x6c817620, + 0x24171: 0x6d370a20, 0x24172: 0x6cf02820, + 0x24177: 0x6ccb6e20, + 0x2417b: 0x6d29ea20, + // Block 0x906, offset 0x24180 + 0x24181: 0x6c019620, 0x24182: 0x6cf10c20, + 0x24184: 0x6c581e20, 0x24187: 0x6d2e9e20, + 0x24189: 0x6d1c2c20, 0x2418a: 0x6c43bc20, 0x2418b: 0x6c5c9220, + 0x2418d: 0x6cc33420, + 0x24193: 0x6c8b7c20, + 0x24194: 0x6c719a20, 0x24195: 0x6c03de20, 0x24196: 0x6c82a620, + 0x24198: 0x6c97ac20, 0x24199: 0x6c8dde20, + 0x2419c: 0x6c856a20, 0x2419d: 0x6c611420, + 0x241a1: 0x6c5b1620, 0x241a2: 0x6d031820, 0x241a3: 0x6cd30020, + 0x241a4: 0x6d300e20, 0x241a7: 0x6c0e4820, + 0x241ab: 0x6c137a20, + 0x241af: 0x6c137e20, + 0x241b0: 0x6c6d8c20, 0x241b1: 0x6c031c20, 0x241b2: 0x6c06da20, + 0x241b5: 0x6d0e3c20, 0x241b7: 0x6c565e20, + 0x241b9: 0x6d20ba20, 0x241bb: 0x6c091e20, + 0x241bc: 0x6c1ff220, 0x241be: 0x6c612220, + // Block 0x907, offset 0x241c0 + 0x241c2: 0x6ca26c20, + 0x241c4: 0x6c98c420, 0x241c5: 0x6d379420, 0x241c7: 0x6d12c620, + 0x241c8: 0x6c30a020, 0x241c9: 0x6d12a420, + 0x241cd: 0x6cc63c20, 0x241ce: 0x6d19a620, + 0x241d0: 0x6c501e20, 0x241d2: 0x6ca31220, 0x241d3: 0x6ce61020, + 0x241d4: 0x6c3fb620, 0x241d5: 0x6ca22c20, 0x241d6: 0x6d291020, + 0x241d8: 0x6c552820, 0x241da: 0x6c185c20, 0x241db: 0x6ceaf420, + 0x241de: 0x6c1f1220, 0x241df: 0x6c3df820, + 0x241e7: 0x6c063420, + 0x241ec: 0x6c2bde20, 0x241ed: 0x6c111c20, 0x241ee: 0x6c921220, 0x241ef: 0x6cb35020, + 0x241f0: 0x6c268620, 0x241f1: 0x6d12da20, 0x241f3: 0x6d15d220, + 0x241f7: 0x6cfdb620, + 0x241f8: 0x6c086e20, 0x241f9: 0x6d398c20, 0x241fb: 0x6d14a620, + 0x241fd: 0x6c93d220, 0x241ff: 0x6c7b9420, + // Block 0x908, offset 0x24200 + 0x24202: 0x6d35a420, + 0x24207: 0x6cec0820, + 0x24208: 0x6c2b1c20, 0x24209: 0x6cd5b020, 0x2420a: 0x6c8ad820, 0x2420b: 0x6d2a4220, + 0x2420c: 0x6d35a620, 0x2420d: 0x6ca49e20, + 0x24217: 0x6c147220, + 0x2421a: 0x6cfea620, 0x2421b: 0x6d2a0220, + 0x2421e: 0x6d22f420, 0x2421f: 0x6c310620, + 0x24220: 0x6c143e20, 0x24221: 0x6d009020, 0x24222: 0x6d0fa220, + 0x24224: 0x6cfc0220, 0x24225: 0x6c05f220, + 0x2422e: 0x6d2cec20, + 0x24230: 0x6cc03420, 0x24232: 0x6c553420, 0x24233: 0x6d293220, + 0x24234: 0x6c741620, 0x24236: 0x6c4d9a20, + 0x2423f: 0x6c01ae20, + // Block 0x909, offset 0x24240 + 0x24240: 0x6d2a7820, 0x24243: 0x6ccc4c20, + 0x24245: 0x6cfcb220, 0x24246: 0x6c1b9e20, 0x24247: 0x6d0d6a20, + 0x24249: 0x6c01ba20, + 0x2424d: 0x6d305220, 0x2424e: 0x6c742c20, + 0x24251: 0x6c85ea20, 0x24253: 0x6c822020, + 0x24256: 0x6c112c20, + 0x24258: 0x6c924220, 0x2425a: 0x6c634c20, + 0x2425d: 0x6cfa3820, 0x2425e: 0x6cfff020, 0x2425f: 0x6d0c0c20, + 0x24260: 0x6d05a020, 0x24262: 0x6c33f020, 0x24263: 0x6d1c7620, + 0x24264: 0x6c5ab820, 0x24265: 0x6ce32820, 0x24266: 0x6caa0020, 0x24267: 0x6cf7e820, + 0x2426a: 0x6ce8b220, + 0x24277: 0x6cec5620, + 0x24278: 0x6c186620, + 0x2427c: 0x6c52aa20, 0x2427e: 0x6ce32a20, 0x2427f: 0x6d07a020, + // Block 0x90a, offset 0x24280 + 0x24280: 0x6d28bc20, + 0x24287: 0x6c43f020, + 0x2428b: 0x6c908c20, + 0x2428c: 0x6c147c20, 0x2428d: 0x6cac6020, 0x2428e: 0x6c605820, + 0x24290: 0x6cde5e20, 0x24293: 0x6cf64e20, + 0x24296: 0x6cfeda20, + 0x24298: 0x6ccab620, 0x24299: 0x6c637020, 0x2429a: 0x6cdad420, 0x2429b: 0x6c599a20, + 0x2429d: 0x6c25bc20, 0x2429f: 0x6cde6020, + 0x242a0: 0x6cd65420, + 0x242aa: 0x6c3e9a20, 0x242ab: 0x6c863620, + 0x242ad: 0x6ccf5a20, 0x242af: 0x6ce10620, + 0x242b6: 0x6c2cd020, + 0x242ba: 0x6c09fa20, + 0x242bc: 0x6c46c820, 0x242bd: 0x6c244620, 0x242bf: 0x6cb90820, + // Block 0x90b, offset 0x242c0 + 0x242c2: 0x6c824620, 0x242c3: 0x6cdaea20, + 0x242c6: 0x6d402420, 0x242c7: 0x6c4faa20, + 0x242cf: 0x6c1c4420, + 0x242d0: 0x6c128020, 0x242d3: 0x6cf30420, + 0x242d4: 0x6cfef220, 0x242d5: 0x6c8b2020, 0x242d6: 0x6d0c1e20, + 0x242dd: 0x6c09fc20, 0x242df: 0x6c594220, + 0x242e1: 0x6cf67820, 0x242e2: 0x6c1ac820, 0x242e3: 0x6d05d620, + 0x242e4: 0x6ca4bc20, 0x242e5: 0x6d0cc020, 0x242e7: 0x6d01fc20, + 0x242e8: 0x6d2c4a20, 0x242ea: 0x6cdc5e20, + 0x242ec: 0x6cf8ca20, 0x242ed: 0x6c080620, 0x242ee: 0x6cc48420, 0x242ef: 0x6cd79820, + 0x242f0: 0x6c049020, 0x242f1: 0x6c4b6a20, 0x242f2: 0x6c763c20, 0x242f3: 0x6c188020, + 0x242f6: 0x6d072820, + 0x242fe: 0x6c368620, 0x242ff: 0x6c865a20, + // Block 0x90c, offset 0x24300 + 0x24300: 0x6cf69e20, 0x24301: 0x6c594c20, 0x24302: 0x6cdb0420, + 0x24304: 0x6c16f620, + 0x2430a: 0x6c92a820, 0x2430b: 0x6d0cc220, + 0x2430e: 0x6c290620, 0x2430f: 0x6c284620, + 0x24310: 0x6d0f6a20, 0x24312: 0x6d2d3620, 0x24313: 0x6c729020, + 0x24315: 0x6c345e20, 0x24316: 0x6ccabe20, 0x24317: 0x6c7f2a20, + 0x24318: 0x6cdb1c20, + 0x2431f: 0x6d2b0020, + 0x24323: 0x6c0a5020, + 0x24326: 0x6d1b8c20, + 0x24328: 0x6c4fb420, 0x2432a: 0x6c8b3a20, + 0x2432d: 0x6c4ff620, 0x2432e: 0x6d0fdc20, + 0x24334: 0x6cd7a420, 0x24335: 0x6c00f020, 0x24336: 0x6cbf7420, + 0x24339: 0x6c82ec20, 0x2433a: 0x6d011220, + 0x2433c: 0x6cd3f220, + // Block 0x90d, offset 0x24340 + 0x24343: 0x6c91ec20, + 0x24345: 0x6cc41220, 0x24346: 0x6c888020, + 0x2434c: 0x6d001a20, 0x2434e: 0x6d1c2020, + 0x24351: 0x6d012620, + 0x24358: 0x6c8d9e20, 0x24359: 0x6d1ed620, + 0x2435e: 0x6c294020, 0x2435f: 0x6c806020, + 0x24360: 0x6cff5e20, + 0x24368: 0x6d182a20, + 0x2436c: 0x6cf34c20, 0x2436e: 0x6d168e20, 0x2436f: 0x6ceaa420, + 0x24370: 0x6c102e20, 0x24372: 0x6d032020, + 0x24375: 0x6cd7c420, 0x24376: 0x6c6c2a20, + 0x24378: 0x6c031e20, 0x24379: 0x6c383020, 0x2437b: 0x6ca0d420, + 0x2437c: 0x6cc91220, + // Block 0x90e, offset 0x24380 + 0x2438a: 0x6c26ea20, 0x2438b: 0x6c619820, + 0x24390: 0x6cda8820, 0x24391: 0x6cbf0620, 0x24392: 0x6c033020, + 0x243a6: 0x6ce48c20, 0x243a7: 0x6d1f0a20, + 0x243a9: 0x6ceb0020, 0x243ab: 0x6cec6c20, + 0x243ac: 0x6d202e20, 0x243ae: 0x6c2fe820, + 0x243b1: 0x6cf7d820, 0x243b2: 0x6c799820, + 0x243b6: 0x6cbf0c20, 0x243b7: 0x6c32f820, + 0x243b8: 0x6c34e420, 0x243ba: 0x6d173620, + // Block 0x90f, offset 0x243c0 + 0x243d2: 0x6cf5c820, 0x243d3: 0x6cbd2420, + 0x243d4: 0x6cda9220, 0x243d7: 0x6c8e5220, + 0x243d9: 0x6cecd820, + 0x243ed: 0x6c17da20, 0x243ee: 0x6d399a20, + 0x243f0: 0x6c997220, + 0x243f7: 0x6cc2de20, + 0x243fd: 0x6d208c20, 0x243ff: 0x6d17ac20, + // Block 0x910, offset 0x24400 + 0x24400: 0x6c9c5020, 0x24403: 0x6c7f0c20, + 0x24404: 0x6d362e20, + 0x24424: 0x6ca5e620, 0x24426: 0x6c048220, + 0x2442a: 0x6c300420, + 0x2442e: 0x6d363020, + // Block 0x911, offset 0x24440 + 0x24455: 0x6d17ec20, + 0x24458: 0x6c8d1e20, 0x24459: 0x6d216020, 0x2445a: 0x6c231e20, 0x2445b: 0x6c2c6a20, + 0x2445c: 0x6d365c20, + 0x24460: 0x6cc86820, 0x24463: 0x6c669a20, + 0x24469: 0x6ced8c20, 0x2446b: 0x6c6d2c20, + 0x2446d: 0x6cad0820, + // Block 0x912, offset 0x24480 + 0x2448d: 0x6c928a20, 0x2448e: 0x6cc1a620, + 0x24490: 0x6cf80020, 0x24491: 0x6c26b420, + 0x24496: 0x6c56c220, 0x24497: 0x6c95bc20, + 0x24499: 0x6c822820, + 0x244b6: 0x6c45f820, + 0x244bb: 0x6c8e2620, + // Block 0x913, offset 0x244c0 + 0x244c2: 0x6c817820, + 0x244c4: 0x6d3be420, + 0x244e8: 0x6d2a5220, 0x244e9: 0x6c506a20, 0x244ea: 0x6cfe5420, + 0x244ed: 0x6c507020, 0x244ee: 0x6c86a220, + 0x244f1: 0x6c2d8820, 0x244f2: 0x6c444020, + 0x244fd: 0x6c58a820, + // Block 0x914, offset 0x24500 + 0x24504: 0x6c36b620, 0x24506: 0x6cf9fe20, + 0x2450b: 0x6c651820, + 0x2450c: 0x6cb67420, 0x2450d: 0x6cfa0820, 0x2450e: 0x6d1ffa20, + 0x24521: 0x6d330420, + 0x2452a: 0x6d3bf220, + 0x2452e: 0x6c163a20, + // Block 0x915, offset 0x24540 + 0x24549: 0x6d027a20, + 0x24555: 0x6ca4d620, + 0x2455d: 0x6c62ee20, 0x2455e: 0x6ce4d620, + 0x24563: 0x6d0e3220, + 0x24567: 0x6c500c20, + 0x24568: 0x6d030820, 0x24569: 0x6c8de020, 0x2456b: 0x6c047620, + 0x2456c: 0x6c081220, + 0x24571: 0x6c463e20, 0x24572: 0x6c8cc820, + 0x24575: 0x6c7df420, 0x24576: 0x6cb85e20, 0x24577: 0x6c699e20, + 0x24579: 0x6c371420, 0x2457a: 0x6d10fa20, 0x2457b: 0x6c316e20, + // Block 0x916, offset 0x24580 + 0x24581: 0x6c5d9220, 0x24582: 0x6c322420, 0x24583: 0x6cadbe20, + 0x2458c: 0x6d259820, 0x2458f: 0x6c90b820, + 0x24590: 0x6d03f820, 0x24593: 0x6c883a20, + 0x24594: 0x6d113820, 0x24595: 0x6cf6a020, 0x24596: 0x6d114420, + 0x24598: 0x6cf70020, 0x2459b: 0x6c918a20, + 0x2459d: 0x6d0f0020, + 0x245a0: 0x6cc33820, + 0x245a5: 0x6cc50020, 0x245a6: 0x6cec2020, 0x245a7: 0x6d40a420, + 0x245a8: 0x6c392e20, 0x245a9: 0x6d16c620, 0x245aa: 0x6c323c20, 0x245ab: 0x6cdc2620, + 0x245ad: 0x6caf4820, 0x245af: 0x6c4de820, + 0x245b1: 0x6d069820, 0x245b3: 0x6c45e620, + 0x245b5: 0x6c2c2e20, 0x245b7: 0x6ca32620, + 0x245be: 0x6c34ec20, 0x245bf: 0x6cebda20, + // Block 0x917, offset 0x245c0 + 0x245c2: 0x6ca81820, + 0x245c8: 0x6c2e1a20, 0x245c9: 0x6c598e20, + 0x245cc: 0x6ce32c20, 0x245cd: 0x6c395420, + 0x245d1: 0x6cf3ca20, 0x245d2: 0x6c01fe20, + 0x245d4: 0x6cb2a820, + 0x245d9: 0x6c4e1420, 0x245db: 0x6c428820, + 0x245dc: 0x6c83e820, 0x245de: 0x6c339c20, 0x245df: 0x6c400e20, + 0x245e0: 0x6ca35020, 0x245e2: 0x6c132220, + 0x245e7: 0x6c6a2820, + 0x245e9: 0x6cbed020, 0x245eb: 0x6d1bd020, + 0x245ec: 0x6cfdd220, + 0x245f1: 0x6c557c20, + 0x245f4: 0x6cdaec20, + 0x245fb: 0x6c43a420, + 0x245fc: 0x6c368820, 0x245fd: 0x6d072a20, + // Block 0x918, offset 0x24600 + 0x24606: 0x6cf6cc20, + 0x2460a: 0x6c774c20, 0x2460b: 0x6c4c8a20, + 0x2460c: 0x6c6a3620, 0x2460d: 0x6c200c20, 0x2460e: 0x6c826220, 0x2460f: 0x6c527620, + 0x24610: 0x6d41f420, + 0x24615: 0x6cb1e620, + 0x24618: 0x6c2ab420, 0x24619: 0x6cf70220, 0x2461a: 0x6c826820, + 0x2461c: 0x6ccdc620, + 0x24627: 0x6c918c20, + 0x24629: 0x6c338a20, 0x2462a: 0x6c760420, + 0x2462d: 0x6c164820, 0x2462f: 0x6d012c20, + 0x24630: 0x6cec0220, 0x24631: 0x6d30c420, 0x24633: 0x6d3b9e20, + 0x24637: 0x6c8f6020, + 0x24638: 0x6c82aa20, + 0x2463c: 0x6c273620, 0x2463d: 0x6c417820, + // Block 0x919, offset 0x24640 + 0x24644: 0x6cd34020, 0x24647: 0x6d0da420, + 0x2464c: 0x6c41b420, + 0x24650: 0x6d0d0020, + 0x24656: 0x6cdbac20, + 0x2465a: 0x6d37a620, + 0x2465c: 0x6cd34220, + 0x24661: 0x6cd15c20, + 0x24665: 0x6c15ae20, + 0x24677: 0x6c5a0820, + 0x24678: 0x6d1b8e20, 0x2467b: 0x6c9bee20, + // Block 0x91a, offset 0x24680 + 0x24682: 0x6cc4f220, + 0x24685: 0x6cfdae20, + 0x24688: 0x6c071420, + 0x2468c: 0x6c200820, + 0x24691: 0x6cb47620, + 0x24699: 0x6c77d220, 0x2469a: 0x6c7e3820, + 0x2469d: 0x6cc35020, 0x2469f: 0x6c4f9220, + 0x246a0: 0x6c1bf220, 0x246a1: 0x6c983820, + 0x246a6: 0x6d2cb020, + 0x246aa: 0x6c3bd220, + 0x246ac: 0x6c17b420, + 0x246b3: 0x6c6e1820, + // Block 0x91b, offset 0x246c0 + 0x246c3: 0x6c8ada20, + 0x246c5: 0x6ca31c20, 0x246c6: 0x6ca31e20, 0x246c7: 0x6ce72a20, + 0x246cb: 0x6cc46620, + 0x246cc: 0x6d411620, 0x246cd: 0x6caf5420, 0x246ce: 0x6d1fba20, + 0x246d0: 0x6cd4be20, + 0x246db: 0x6c8af420, + 0x246dc: 0x6cd43020, 0x246dd: 0x6ce97e20, 0x246df: 0x6c430220, + 0x246e0: 0x6ccea220, 0x246e1: 0x6ceb0420, 0x246e3: 0x6ca3f220, + 0x246e7: 0x6ceb7a20, + 0x246e8: 0x6c458220, 0x246e9: 0x6c2e1c20, + 0x246f4: 0x6c9bd020, 0x246f5: 0x6c052820, 0x246f7: 0x6d00a420, + 0x246f8: 0x6cd8b420, 0x246f9: 0x6ce6c820, 0x246fa: 0x6c4b4220, + 0x246fd: 0x6c3e8020, 0x246fe: 0x6c4b4820, + // Block 0x91c, offset 0x24700 + 0x24709: 0x6c4b4a20, + 0x24711: 0x6d3a7420, 0x24713: 0x6c7f1420, + 0x24715: 0x6c951620, 0x24716: 0x6ce50020, 0x24717: 0x6cc4c620, + 0x2471a: 0x6c300820, + 0x24728: 0x6c737220, 0x24729: 0x6d0cac20, + 0x2472c: 0x6cc84020, 0x2472d: 0x6c283a20, + 0x24730: 0x6c999e20, + 0x24736: 0x6c944020, + 0x24738: 0x6d072c20, 0x2473a: 0x6cf6a220, + // Block 0x91d, offset 0x24740 + 0x24742: 0x6c967420, 0x24743: 0x6cb52220, + 0x24745: 0x6c144820, + 0x24748: 0x6cce1e20, 0x24749: 0x6c4f0820, 0x2474a: 0x6cb2ce20, + 0x2474e: 0x6c5f3820, + 0x24753: 0x6c86a620, + 0x24755: 0x6d240c20, 0x24756: 0x6c04a420, + 0x24758: 0x6ce29220, + 0x2475d: 0x6c1de820, + 0x24760: 0x6c1dea20, + 0x24764: 0x6cb54420, 0x24765: 0x6cf70420, 0x24766: 0x6c076820, + 0x2476a: 0x6d138020, + 0x2476d: 0x6c4a1020, 0x2476f: 0x6d3b3a20, + 0x24773: 0x6c827c20, + 0x24774: 0x6c827e20, 0x24775: 0x6c13be20, + // Block 0x91e, offset 0x24780 + 0x24780: 0x6c4a1420, + 0x2478d: 0x6c2f2420, + 0x24793: 0x6d0b4420, + 0x24798: 0x6ca7fc20, 0x24799: 0x6cd4de20, 0x2479b: 0x6d363220, + 0x2479f: 0x6d36e420, + 0x247a2: 0x6d36e620, 0x247a3: 0x6cb07620, + 0x247a5: 0x6c6f4e20, 0x247a6: 0x6c6f5220, 0x247a7: 0x6d169020, + 0x247a8: 0x6d201220, 0x247aa: 0x6c6f5420, + 0x247af: 0x6c58f220, + 0x247b1: 0x6c323e20, + 0x247bb: 0x6ce20c20, + 0x247bc: 0x6cbc9e20, 0x247bd: 0x6cbd5c20, 0x247be: 0x6d032420, 0x247bf: 0x6c14bc20, + // Block 0x91f, offset 0x247c0 + 0x247c0: 0x6c61ae20, 0x247c2: 0x6cbe0a20, + 0x247ca: 0x6c324620, 0x247cb: 0x6d33aa20, + 0x247ce: 0x6cab7820, + 0x247d0: 0x6cf4c820, 0x247d2: 0x6cf18620, + 0x247d8: 0x6c096620, 0x247db: 0x6c069420, + 0x247dd: 0x6ca23c20, 0x247de: 0x6c6cf420, 0x247df: 0x6ce21220, + 0x247e0: 0x6c89e220, + 0x247e5: 0x6c127220, 0x247e6: 0x6d2c2820, + 0x247ec: 0x6c1b8e20, 0x247ed: 0x6d0ae020, 0x247ee: 0x6c7c6420, 0x247ef: 0x6d1b4420, + 0x247f8: 0x6c8f8820, 0x247f9: 0x6cb86020, 0x247fb: 0x6c4f4c20, + 0x247fc: 0x6cce5020, 0x247fd: 0x6c4d6420, 0x247fe: 0x6c139220, + // Block 0x920, offset 0x24800 + 0x24800: 0x6c68e220, 0x24801: 0x6c81ae20, + 0x24808: 0x6cf5fa20, 0x2480b: 0x6c0ef220, + 0x24813: 0x6d351a20, + 0x24815: 0x6cea8a20, 0x24816: 0x6c3e8220, + 0x24818: 0x6c54ce20, 0x2481a: 0x6ca83220, 0x2481b: 0x6d17ae20, + 0x2481c: 0x6d3c4020, + 0x24820: 0x6c13e620, + 0x24824: 0x6cdb8220, 0x24827: 0x6d283620, + 0x2482e: 0x6c325e20, + 0x24830: 0x6cf61c20, 0x24831: 0x6c203620, 0x24832: 0x6d03e820, 0x24833: 0x6c68fa20, + 0x24834: 0x6ccfea20, + // Block 0x921, offset 0x24840 + 0x24840: 0x6cedca20, 0x24841: 0x6c06a220, 0x24842: 0x6c3a3a20, 0x24843: 0x6c669c20, + 0x24844: 0x6cc30020, 0x24845: 0x6d17f020, 0x24846: 0x6c300a20, 0x24847: 0x6d06f620, + 0x24848: 0x6ca35220, 0x24849: 0x6c605a20, + 0x2484c: 0x6d31e620, 0x2484d: 0x6cb5fa20, 0x2484e: 0x6c330a20, 0x2484f: 0x6d1a7220, + 0x24851: 0x6c700420, 0x24852: 0x6caffe20, 0x24853: 0x6d033e20, + 0x24854: 0x6c94fe20, 0x24855: 0x6c113420, 0x24856: 0x6c8e2020, 0x24857: 0x6c0cac20, + 0x24858: 0x6c2a1c20, 0x24859: 0x6c2a7620, + 0x2485f: 0x6c7ed820, + 0x24861: 0x6cf65020, 0x24862: 0x6c725620, + 0x24864: 0x6cff9020, 0x24866: 0x6c6dc020, + 0x24879: 0x6cec7220, 0x2487b: 0x6ca50a20, + 0x2487c: 0x6cfd8220, 0x2487d: 0x6cc3e220, 0x2487e: 0x6cbcd420, 0x2487f: 0x6ce86a20, + // Block 0x922, offset 0x24880 + 0x24880: 0x6d064a20, 0x24881: 0x6c5bfc20, + 0x24885: 0x6c9f6c20, 0x24886: 0x6ceff220, + 0x24888: 0x6d1f5620, 0x24889: 0x6ce9ae20, 0x2488a: 0x6c278020, + 0x2488e: 0x6c786c20, 0x2488f: 0x6ca36220, + 0x24891: 0x6c401c20, 0x24892: 0x6d239620, 0x24893: 0x6d354420, + 0x24895: 0x6c4dae20, 0x24896: 0x6c002e20, 0x24897: 0x6c401e20, + 0x248a1: 0x6d0f6220, + 0x248a4: 0x6cd27e20, 0x248a6: 0x6c150c20, + 0x248aa: 0x6c1c5c20, 0x248ab: 0x6d284820, + 0x248ac: 0x6cd65a20, 0x248ae: 0x6cdb0620, 0x248af: 0x6cca8620, + 0x248b1: 0x6c368a20, 0x248b2: 0x6d332e20, 0x248b3: 0x6c004e20, + 0x248b4: 0x6cdd8c20, 0x248b5: 0x6c10b220, 0x248b7: 0x6cc45220, + 0x248b8: 0x6d185e20, 0x248b9: 0x6d0dca20, 0x248bb: 0x6ca36620, + 0x248bc: 0x6cf46a20, + // Block 0x923, offset 0x248c0 + 0x248c7: 0x6c865c20, + 0x248c8: 0x6c865e20, 0x248ca: 0x6cf6a820, 0x248cb: 0x6c749c20, + 0x248cc: 0x6cd1ea20, 0x248ce: 0x6d0b5c20, + 0x248db: 0x6c18e420, + 0x248dc: 0x6d1c8c20, 0x248dd: 0x6c0a5220, 0x248de: 0x6c184020, + 0x248e1: 0x6d2bfc20, 0x248e2: 0x6ceb9020, 0x248e3: 0x6c56c620, + 0x248e4: 0x6ce2b220, 0x248e5: 0x6d1d4c20, 0x248e6: 0x6c08f820, 0x248e7: 0x6ca91e20, + 0x248e8: 0x6c891a20, 0x248e9: 0x6d034c20, 0x248ea: 0x6d229020, + 0x248f2: 0x6c075e20, + 0x248f4: 0x6ca07820, 0x248f5: 0x6c331420, 0x248f7: 0x6c29ea20, + 0x248f8: 0x6cb64c20, + // Block 0x924, offset 0x24900 + 0x24900: 0x6cd65c20, 0x24903: 0x6cff1e20, + 0x24904: 0x6d380a20, 0x24905: 0x6d3cb220, 0x24907: 0x6c0bca20, + 0x24909: 0x6cf02a20, 0x2490a: 0x6cf6ec20, + 0x2490c: 0x6c2aae20, 0x2490e: 0x6d005620, 0x2490f: 0x6cac4620, + 0x24910: 0x6ca87a20, 0x24913: 0x6c0cfa20, + 0x24914: 0x6ccf7a20, 0x24915: 0x6c3ad820, 0x24916: 0x6c9fcc20, 0x24917: 0x6cb7e820, + 0x2492a: 0x6ccdbc20, 0x2492b: 0x6cdd9c20, + 0x24937: 0x6c60c020, + 0x2493a: 0x6c285020, 0x2493b: 0x6c739c20, + 0x2493c: 0x6c930420, 0x2493e: 0x6c02f620, + // Block 0x925, offset 0x24940 + 0x24942: 0x6d18ea20, 0x24943: 0x6cd57a20, + 0x24944: 0x6cdc9c20, 0x24945: 0x6cf0f220, 0x24946: 0x6cecec20, 0x24947: 0x6c1ef420, + 0x2494c: 0x6cf32820, + 0x24956: 0x6c0aa420, + 0x24958: 0x6d1b1a20, 0x24959: 0x6c5d8220, + 0x2495c: 0x6c769c20, 0x2495d: 0x6ca93020, + 0x24962: 0x6c00fc20, + 0x24964: 0x6c870020, 0x24966: 0x6d2d0220, + 0x24971: 0x6c933020, + 0x24976: 0x6c0bd420, 0x24977: 0x6cac8a20, + 0x2497f: 0x6c4b9c20, + // Block 0x926, offset 0x24980 + 0x24980: 0x6cda6a20, 0x24981: 0x6c9ba020, 0x24982: 0x6cfc5220, 0x24983: 0x6c906e20, + 0x24985: 0x6cb80220, + 0x2498b: 0x6c164a20, + 0x2498c: 0x6d195c20, 0x2498d: 0x6c4f8e20, 0x2498f: 0x6c88e020, + 0x24990: 0x6c49c220, 0x24992: 0x6cf06020, + 0x24997: 0x6c752020, + 0x24998: 0x6c829c20, 0x24999: 0x6c946620, 0x2499a: 0x6c87a620, + 0x2499c: 0x6cb03e20, + 0x249a2: 0x6c58e820, + 0x249ae: 0x6c4a5820, + 0x249b3: 0x6c713420, + 0x249b6: 0x6c2aa220, + 0x249ba: 0x6c3ad220, + // Block 0x927, offset 0x249c0 + 0x249c1: 0x6d338e20, 0x249c3: 0x6c9a7a20, + 0x249c5: 0x6c58f420, + 0x249c9: 0x6cabba20, 0x249ca: 0x6c08c420, + 0x249cc: 0x6cb30020, + 0x249d3: 0x6c374220, + 0x249d5: 0x6c58fc20, + 0x249e3: 0x6c170c20, + 0x249e5: 0x6c95fc20, 0x249e6: 0x6c3d2820, + 0x249ef: 0x6c1db220, + 0x249f1: 0x6d40c020, 0x249f2: 0x6ca3fe20, 0x249f3: 0x6cffae20, + 0x249f9: 0x6c044820, 0x249fa: 0x6c926620, + 0x249fc: 0x6c961220, 0x249ff: 0x6ca76620, + // Block 0x928, offset 0x24a00 + 0x24a00: 0x6d2ad020, + 0x24a04: 0x6d3b0a20, 0x24a05: 0x6c557420, + 0x24a08: 0x6c5ad820, 0x24a09: 0x6ce17c20, 0x24a0a: 0x6c1dca20, + 0x24a11: 0x6c59e020, 0x24a12: 0x6c30b820, + 0x24a1b: 0x6c9eba20, + 0x24a1d: 0x6c0f5a20, + 0x24a20: 0x6c2ca420, 0x24a22: 0x6c2ad020, 0x24a23: 0x6cb41620, + 0x24a25: 0x6cd94020, 0x24a26: 0x6c1dec20, + 0x24a2b: 0x6d123c20, + 0x24a2c: 0x6c9bf020, 0x24a2d: 0x6c8fc820, + 0x24a32: 0x6c888220, + 0x24a35: 0x6c0d0620, + 0x24a3a: 0x6c93c220, + 0x24a3f: 0x6ccba020, + // Block 0x929, offset 0x24a40 + 0x24a40: 0x6d425820, + 0x24a44: 0x6c25aa20, 0x24a45: 0x6c8de420, 0x24a46: 0x6d331a20, 0x24a47: 0x6cb05220, + 0x24a48: 0x6c05c220, 0x24a4b: 0x6cc3a420, + 0x24a4e: 0x6caf4a20, 0x24a4f: 0x6ca44220, + 0x24a50: 0x6caf4c20, 0x24a51: 0x6c0fe220, 0x24a52: 0x6c06f020, 0x24a53: 0x6c37e820, + 0x24a55: 0x6c9fa620, 0x24a56: 0x6ca0f220, 0x24a57: 0x6cec2420, + 0x24a58: 0x6d2f6020, 0x24a59: 0x6d35c220, 0x24a5a: 0x6c240c20, + 0x24a5f: 0x6d0a0620, + 0x24a60: 0x6c602020, 0x24a61: 0x6c4b4420, 0x24a63: 0x6c19ea20, + 0x24a67: 0x6c4ec620, + 0x24a68: 0x6cfff220, 0x24a69: 0x6cc3c020, 0x24a6b: 0x6c21be20, + 0x24a6d: 0x6c3f6420, + 0x24a73: 0x6cbdde20, + 0x24a74: 0x6c926820, 0x24a75: 0x6cc3d020, 0x24a76: 0x6c2d1e20, 0x24a77: 0x6cb8f020, + 0x24a7c: 0x6c16ee20, 0x24a7d: 0x6cde6220, 0x24a7e: 0x6c06ae20, + // Block 0x92a, offset 0x24a80 + 0x24a81: 0x6c326c20, 0x24a82: 0x6c082620, 0x24a83: 0x6c547820, + 0x24a88: 0x6d2c8420, 0x24a89: 0x6d2c8620, + 0x24a8e: 0x6cc3ee20, 0x24a8f: 0x6c967620, + 0x24a90: 0x6c4e2c20, 0x24a93: 0x6c8e8620, + 0x24a94: 0x6c92d020, 0x24a96: 0x6d3e8c20, + 0x24a98: 0x6cb07020, 0x24a99: 0x6d395220, 0x24a9b: 0x6d2a2420, + 0x24a9d: 0x6ca9a020, + 0x24aa0: 0x6c5c5620, 0x24aa3: 0x6d092020, + 0x24aa5: 0x6c7ea020, + 0x24aab: 0x6caa0620, + 0x24aac: 0x6d0dfa20, 0x24aad: 0x6cc4d820, 0x24aae: 0x6ca52220, + 0x24ab0: 0x6c7eb420, 0x24ab1: 0x6c4a1220, 0x24ab2: 0x6c31e220, + 0x24ab5: 0x6c919020, + 0x24ab9: 0x6c663c20, 0x24aba: 0x6d028c20, 0x24abb: 0x6cb80e20, + 0x24abe: 0x6cfe7420, + // Block 0x92b, offset 0x24ac0 + 0x24ac1: 0x6c4cb020, 0x24ac2: 0x6c6a8420, 0x24ac3: 0x6c98b620, + 0x24ac6: 0x6cf95820, 0x24ac7: 0x6c7c3620, + 0x24ace: 0x6d1e7620, + 0x24ad0: 0x6c4d3c20, 0x24ad1: 0x6c9d3220, 0x24ad2: 0x6d11fc20, + 0x24ad5: 0x6cf14c20, + 0x24adf: 0x6c85f220, + 0x24ae0: 0x6c735820, 0x24ae1: 0x6cf36420, 0x24ae2: 0x6cbbda20, + 0x24aee: 0x6c2e2a20, 0x24aef: 0x6c1f4220, + 0x24af2: 0x6cdd1c20, + 0x24af5: 0x6c1cc420, + 0x24af8: 0x6cc2a020, 0x24af9: 0x6ccf5e20, + // Block 0x92c, offset 0x24b00 + 0x24b02: 0x6c9bd820, 0x24b03: 0x6c726820, + 0x24b0b: 0x6ce8e620, + 0x24b12: 0x6ca9c020, 0x24b13: 0x6ca07a20, + 0x24b19: 0x6c3bee20, + 0x24b22: 0x6c027020, 0x24b23: 0x6c4c3e20, + 0x24b24: 0x6c55b420, 0x24b25: 0x6c11b820, 0x24b26: 0x6c33b220, 0x24b27: 0x6c4d4820, + 0x24b28: 0x6c694e20, + 0x24b30: 0x6c473a20, + 0x24b35: 0x6c6c6020, + 0x24b38: 0x6d0fe420, + // Block 0x92d, offset 0x24b40 + 0x24b40: 0x6c145020, + 0x24b4c: 0x6c5b0820, + 0x24b54: 0x6cc20c20, 0x24b55: 0x6c784420, + 0x24b5f: 0x6cbe6620, + 0x24b60: 0x6d197a20, 0x24b63: 0x6c767a20, + 0x24b64: 0x6c68b820, 0x24b67: 0x6c1d6220, + 0x24b68: 0x6c103020, 0x24b69: 0x6c44ae20, 0x24b6a: 0x6c682620, 0x24b6b: 0x6d339020, + 0x24b6e: 0x6cf20020, + 0x24b70: 0x6c0d2220, + 0x24b74: 0x6d048820, 0x24b75: 0x6c393020, + 0x24b78: 0x6d147620, 0x24b79: 0x6c203020, 0x24b7a: 0x6d11ee20, + 0x24b7d: 0x6d0f4c20, 0x24b7e: 0x6c324020, 0x24b7f: 0x6d0d4a20, + // Block 0x92e, offset 0x24b80 + 0x24b81: 0x6c9b0a20, + 0x24b87: 0x6c1a9620, + 0x24b88: 0x6ca27420, 0x24b89: 0x6c683420, 0x24b8b: 0x6caa7a20, + 0x24b8d: 0x6c4c6420, 0x24b8e: 0x6d094a20, + 0x24b91: 0x6c3e1c20, 0x24b92: 0x6d08dc20, 0x24b93: 0x6c3d4c20, + 0x24b94: 0x6cae1020, 0x24b95: 0x6ca0ea20, 0x24b96: 0x6cf5a820, 0x24b97: 0x6cf2dc20, + 0x24b98: 0x6ccd3620, 0x24b9b: 0x6cf5aa20, + 0x24b9c: 0x6cb75a20, 0x24b9d: 0x6c9e5220, + 0x24ba6: 0x6c282820, + 0x24ba8: 0x6c1e2820, + 0x24bb1: 0x6c3a9c20, 0x24bb2: 0x6c9ec820, + 0x24bb4: 0x6d095020, 0x24bb5: 0x6d06ae20, 0x24bb6: 0x6cd7dc20, 0x24bb7: 0x6c71b220, + 0x24bb8: 0x6c993420, 0x24bb9: 0x6c063e20, 0x24bbb: 0x6d14d220, + 0x24bbc: 0x6c485020, 0x24bbd: 0x6ca69220, 0x24bbf: 0x6d14d420, + // Block 0x92f, offset 0x24bc0 + 0x24bc1: 0x6d429020, + 0x24bc4: 0x6caa5420, + 0x24bd1: 0x6c2d4820, 0x24bd2: 0x6c393c20, 0x24bd3: 0x6d173a20, + 0x24bd4: 0x6cd35a20, 0x24bd7: 0x6c240e20, + 0x24bd8: 0x6d31ce20, + 0x24bde: 0x6cd36a20, 0x24bdf: 0x6c68e620, + 0x24be0: 0x6c546a20, 0x24be1: 0x6c375020, + 0x24be6: 0x6c833220, 0x24be7: 0x6d095420, + 0x24be8: 0x6c452c20, 0x24bea: 0x6cd43220, + 0x24bec: 0x6c72ec20, + 0x24bf4: 0x6c6ab820, 0x24bf5: 0x6cef0020, 0x24bf7: 0x6cd44620, + 0x24bf8: 0x6c6e7620, 0x24bfa: 0x6d061c20, 0x24bfb: 0x6c1d4c20, + // Block 0x930, offset 0x24c00 + 0x24c05: 0x6c675e20, 0x24c06: 0x6ca20a20, + 0x24c09: 0x6d231a20, + 0x24c0c: 0x6c745220, + 0x24c11: 0x6ce6ea20, + 0x24c14: 0x6cfec420, 0x24c16: 0x6c30ac20, + 0x24c18: 0x6c4c6c20, 0x24c19: 0x6c986220, 0x24c1a: 0x6cedcc20, 0x24c1b: 0x6d06de20, + 0x24c1c: 0x6cee5420, 0x24c1d: 0x6cdd2020, 0x24c1e: 0x6c736620, 0x24c1f: 0x6d26b820, + 0x24c21: 0x6c4e1620, 0x24c23: 0x6ccfec20, + 0x24c25: 0x6d00ac20, 0x24c26: 0x6c8e5a20, 0x24c27: 0x6cc8f020, + 0x24c2f: 0x6c09a620, + 0x24c32: 0x6ca53220, + 0x24c36: 0x6ced8420, 0x24c37: 0x6c700020, + 0x24c38: 0x6cc38c20, + // Block 0x931, offset 0x24c40 + 0x24c44: 0x6ca6a220, 0x24c46: 0x6c9c5220, 0x24c47: 0x6cdd2220, + 0x24c49: 0x6cbb4020, + 0x24c4c: 0x6c4ed220, 0x24c4d: 0x6d3d6c20, 0x24c4e: 0x6c9c5e20, 0x24c4f: 0x6d06f820, + 0x24c51: 0x6c810420, 0x24c52: 0x6c6aee20, 0x24c53: 0x6c2faa20, + 0x24c54: 0x6c171820, 0x24c55: 0x6d365e20, 0x24c56: 0x6c3a0c20, 0x24c57: 0x6c63cc20, + 0x24c58: 0x6c75cc20, 0x24c59: 0x6c5dde20, 0x24c5a: 0x6cb4fe20, 0x24c5b: 0x6c70a620, + 0x24c5c: 0x6d3cd420, 0x24c5e: 0x6c2d6420, 0x24c5f: 0x6c690c20, + 0x24c60: 0x6d0af220, 0x24c62: 0x6d2dfa20, + 0x24c6d: 0x6d33f220, 0x24c6f: 0x6c973620, + 0x24c70: 0x6c54da20, 0x24c71: 0x6d01ca20, 0x24c72: 0x6cd27420, 0x24c73: 0x6c4a7220, + 0x24c7f: 0x6d06fa20, + // Block 0x932, offset 0x24c80 + 0x24c82: 0x6c606a20, + 0x24c84: 0x6c20b020, 0x24c86: 0x6c99a220, 0x24c87: 0x6cc84220, + 0x24c88: 0x6d05bc20, 0x24c89: 0x6c594620, 0x24c8a: 0x6ccc6420, 0x24c8b: 0x6c71c820, + 0x24c8f: 0x6c7c0020, + 0x24c91: 0x6c542020, 0x24c92: 0x6c491e20, 0x24c93: 0x6c486a20, + 0x24c95: 0x6c9c6420, 0x24c96: 0x6c2ed020, 0x24c97: 0x6c0a0020, + 0x24c98: 0x6c899820, 0x24c99: 0x6c7e8620, 0x24c9a: 0x6ccd5220, 0x24c9b: 0x6c928c20, + 0x24c9c: 0x6cf8b420, 0x24c9f: 0x6cda2220, + 0x24cac: 0x6cab4220, 0x24cae: 0x6c838020, + 0x24cb7: 0x6c7a5020, + 0x24cb8: 0x6c4a7c20, 0x24cbb: 0x6cf67a20, + 0x24cbc: 0x6cac6c20, 0x24cbd: 0x6ccb4c20, 0x24cbe: 0x6c754e20, 0x24cbf: 0x6c53d020, + // Block 0x933, offset 0x24cc0 + 0x24cc0: 0x6c49a220, 0x24cc1: 0x6c727c20, 0x24cc3: 0x6ca3d220, + 0x24cc4: 0x6c575020, 0x24cc5: 0x6c442220, 0x24cc6: 0x6c866020, 0x24cc7: 0x6c46d020, + 0x24cc8: 0x6ce41420, 0x24cca: 0x6c96d820, 0x24ccb: 0x6ce2ae20, + 0x24ccc: 0x6c26ba20, + 0x24cd0: 0x6cb52420, 0x24cd1: 0x6d23c620, 0x24cd2: 0x6c693020, 0x24cd3: 0x6c9ee620, + 0x24cd4: 0x6c451820, 0x24cd5: 0x6c9c0e20, 0x24cd6: 0x6cf0c020, + 0x24cd8: 0x6ce36620, 0x24cd9: 0x6cb63a20, + 0x24cdc: 0x6c18e620, 0x24cdd: 0x6c30c220, 0x24cdf: 0x6cac6e20, + 0x24cf0: 0x6c4efc20, + 0x24cf4: 0x6c9d8a20, 0x24cf5: 0x6c967820, 0x24cf6: 0x6c92d220, 0x24cf7: 0x6cb53020, + 0x24cf8: 0x6c795220, 0x24cfa: 0x6c2ee820, 0x24cfb: 0x6cb7d820, + 0x24cfc: 0x6c687c20, 0x24cfd: 0x6c774e20, 0x24cfe: 0x6cbbb020, 0x24cff: 0x6c9d8c20, + // Block 0x934, offset 0x24d00 + 0x24d00: 0x6ccd0c20, + 0x24d07: 0x6c64da20, + 0x24d08: 0x6c843c20, 0x24d09: 0x6c78d620, 0x24d0a: 0x6d073c20, + 0x24d11: 0x6c977a20, 0x24d12: 0x6c3cf420, 0x24d13: 0x6c163420, + 0x24d14: 0x6c5b6420, + 0x24d27: 0x6c7a0420, + 0x24d2a: 0x6cf02c20, 0x24d2b: 0x6c49a820, + 0x24d2c: 0x6c60c220, 0x24d2d: 0x6d421c20, 0x24d2e: 0x6c5e0a20, 0x24d2f: 0x6d00fe20, + 0x24d34: 0x6cdc8420, 0x24d36: 0x6cc88220, + 0x24d38: 0x6ce28620, + 0x24d3c: 0x6d336820, 0x24d3d: 0x6c7d8820, 0x24d3e: 0x6cfe0020, 0x24d3f: 0x6c9dda20, + // Block 0x935, offset 0x24d40 + 0x24d41: 0x6cf8f020, + 0x24d4c: 0x6cc94820, + 0x24d59: 0x6c36c620, 0x24d5a: 0x6c9efe20, 0x24d5b: 0x6d3a8820, + 0x24d5c: 0x6d406c20, 0x24d5d: 0x6c9bec20, 0x24d5f: 0x6cf70620, + 0x24d61: 0x6ce14e20, 0x24d63: 0x6c645220, + 0x24d64: 0x6c16d020, 0x24d65: 0x6c60dc20, + 0x24d6e: 0x6d3dbc20, + 0x24d7f: 0x6c520420, + // Block 0x936, offset 0x24d80 + 0x24d80: 0x6c141020, 0x24d81: 0x6cb7fc20, 0x24d82: 0x6c9dea20, 0x24d83: 0x6d320220, + 0x24d84: 0x6c7a6c20, 0x24d85: 0x6d138220, 0x24d86: 0x6d38c020, + 0x24d88: 0x6c652020, 0x24d8a: 0x6cacc220, + 0x24d8d: 0x6c5b0220, 0x24d8f: 0x6ca02220, + 0x24d90: 0x6c8f5020, + 0x24d98: 0x6cd73420, 0x24d9a: 0x6c974a20, 0x24d9b: 0x6c849c20, + 0x24d9e: 0x6cd7ae20, 0x24d9f: 0x6d159020, + 0x24da4: 0x6c872c20, + 0x24da8: 0x6d005e20, 0x24da9: 0x6ce28a20, 0x24daa: 0x6d051020, + 0x24dad: 0x6d08ce20, 0x24dae: 0x6c874820, 0x24daf: 0x6c9ba220, + 0x24db0: 0x6cef6a20, 0x24db1: 0x6c9ba420, + 0x24dba: 0x6d124e20, 0x24dbb: 0x6c7ffe20, + 0x24dbc: 0x6c8da020, 0x24dbd: 0x6d1c3820, 0x24dbe: 0x6d1c3a20, 0x24dbf: 0x6c876c20, + // Block 0x937, offset 0x24dc0 + 0x24dc0: 0x6c662820, 0x24dc1: 0x6c4aaa20, + 0x24dc5: 0x6c494020, 0x24dc6: 0x6d028220, + 0x24dc9: 0x6ccf9220, 0x24dcb: 0x6d418420, + 0x24dd3: 0x6c771e20, + 0x24dd4: 0x6c82a820, + 0x24dda: 0x6c0bde20, + 0x24ddd: 0x6cd54e20, 0x24dde: 0x6caa7820, 0x24ddf: 0x6d069a20, + 0x24de3: 0x6c503020, + 0x24de8: 0x6c4af220, 0x24dea: 0x6d2d4020, 0x24deb: 0x6c80c620, + 0x24dec: 0x6c248e20, 0x24ded: 0x6d363620, 0x24dee: 0x6c3ca820, 0x24def: 0x6cbd3220, + 0x24df1: 0x6d2acc20, 0x24df2: 0x6ca35420, 0x24df3: 0x6ca99a20, + 0x24df4: 0x6d17f420, 0x24df7: 0x6c232c20, + 0x24df8: 0x6cd1e020, 0x24df9: 0x6c65c220, 0x24dfa: 0x6d3fa420, 0x24dfb: 0x6d0db820, + 0x24dfc: 0x6d1bd620, + // Block 0x938, offset 0x24e00 + 0x24e00: 0x6cc86e20, 0x24e02: 0x6cc6a420, 0x24e03: 0x6cf8cc20, + 0x24e05: 0x6c492420, 0x24e06: 0x6c769420, + 0x24e08: 0x6cf51420, 0x24e0a: 0x6cbda820, 0x24e0b: 0x6c235820, + 0x24e0d: 0x6d2b0620, 0x24e0e: 0x6d024220, + 0x24e10: 0x6d241020, 0x24e11: 0x6d29a020, 0x24e12: 0x6c206620, 0x24e13: 0x6c853c20, + 0x24e14: 0x6c853e20, 0x24e15: 0x6d075020, 0x24e16: 0x6c9c9020, 0x24e17: 0x6d075420, + 0x24e18: 0x6cc88c20, 0x24e1b: 0x6c4b9420, + 0x24e1c: 0x6cc73020, 0x24e1f: 0x6c991420, + 0x24e21: 0x6cbdbe20, 0x24e22: 0x6c24be20, 0x24e23: 0x6c24c020, + 0x24e24: 0x6c24c620, + 0x24e2e: 0x6cf35a20, + 0x24e30: 0x6c383220, 0x24e31: 0x6c037620, + 0x24e38: 0x6cb85820, 0x24e39: 0x6d35ee20, 0x24e3a: 0x6ce5d420, + // Block 0x939, offset 0x24e40 + 0x24e44: 0x6d35f020, 0x24e45: 0x6d345a20, 0x24e47: 0x6c591420, + 0x24e48: 0x6c1da420, 0x24e4a: 0x6d35f220, + 0x24e4e: 0x6d1cf020, + 0x24e52: 0x6cf4f020, 0x24e53: 0x6c06a420, + 0x24e55: 0x6c534c20, 0x24e56: 0x6cd06420, + 0x24e58: 0x6c746620, 0x24e59: 0x6c7d0420, + 0x24e5c: 0x6d15f820, 0x24e5d: 0x6d0bbe20, + 0x24e60: 0x6c087c20, + 0x24e64: 0x6c7aea20, 0x24e65: 0x6cb8f220, + 0x24e68: 0x6d2f6620, 0x24e6a: 0x6c766820, 0x24e6b: 0x6cce1220, + 0x24e6e: 0x6c01ca20, 0x24e6f: 0x6d307020, + 0x24e70: 0x6d369420, + 0x24e77: 0x6d36b620, + 0x24e79: 0x6c693220, + // Block 0x93a, offset 0x24e80 + 0x24e80: 0x6cd83020, 0x24e81: 0x6cb45c20, 0x24e82: 0x6cab9420, + 0x24e8a: 0x6d3dbe20, + 0x24e91: 0x6d1c3c20, 0x24e93: 0x6c584a20, + 0x24e95: 0x6d0b6e20, + 0x24e98: 0x6cd23c20, 0x24e99: 0x6cabb220, 0x24e9a: 0x6cb48420, + 0x24e9e: 0x6c983c20, 0x24e9f: 0x6c146220, + 0x24ea9: 0x6d278e20, + 0x24eac: 0x6c476a20, + 0x24eb9: 0x6c282a20, 0x24ebb: 0x6ca4a020, + 0x24ebd: 0x6d302620, 0x24ebf: 0x6c552c20, + // Block 0x93b, offset 0x24ec0 + 0x24ec5: 0x6c792c20, 0x24ec7: 0x6c2e8c20, + 0x24ec8: 0x6ce63c20, 0x24ecb: 0x6c48ee20, + 0x24ece: 0x6cbef020, 0x24ecf: 0x6cd2ca20, + 0x24ed0: 0x6c640c20, 0x24ed1: 0x6c02ca20, 0x24ed2: 0x6ca2f620, 0x24ed3: 0x6cb23a20, + 0x24ed4: 0x6c63b220, + 0x24ee1: 0x6d30ec20, 0x24ee2: 0x6c108620, 0x24ee3: 0x6cf2b020, + 0x24ee5: 0x6c141e20, + 0x24eea: 0x6ca4a420, 0x24eeb: 0x6c76c620, + 0x24eef: 0x6c319220, + 0x24ef0: 0x6c48f020, 0x24ef1: 0x6cbf0e20, 0x24ef3: 0x6cc66a20, + 0x24ef4: 0x6d15e820, 0x24ef5: 0x6c32fe20, 0x24ef6: 0x6c82c020, + 0x24ef8: 0x6d387a20, 0x24ef9: 0x6c7ac220, 0x24efa: 0x6c354020, 0x24efb: 0x6cfa9e20, + 0x24efc: 0x6c2d5420, 0x24efd: 0x6caaf020, 0x24efe: 0x6c361620, 0x24eff: 0x6d1d8620, + // Block 0x93c, offset 0x24f00 + 0x24f00: 0x6cf4e220, 0x24f01: 0x6c793a20, + 0x24f13: 0x6d35f420, + 0x24f17: 0x6d351c20, + 0x24f18: 0x6d0a0820, 0x24f1b: 0x6d334a20, + 0x24f1e: 0x6d0fae20, + 0x24f20: 0x6c5dc420, 0x24f21: 0x6c602220, 0x24f22: 0x6ca4f020, + 0x24f27: 0x6d0ba020, + 0x24f28: 0x6c924620, 0x24f2b: 0x6c3d7220, + 0x24f2c: 0x6cca1c20, 0x24f2d: 0x6c1f4420, 0x24f2e: 0x6cefca20, + 0x24f30: 0x6c3f6820, 0x24f31: 0x6c794020, 0x24f32: 0x6cd8c020, 0x24f33: 0x6c778620, + 0x24f35: 0x6d17b020, 0x24f36: 0x6c579a20, + 0x24f3e: 0x6d225e20, + // Block 0x93d, offset 0x24f40 + 0x24f43: 0x6c861420, + 0x24f46: 0x6c8c2020, 0x24f47: 0x6c321e20, + 0x24f48: 0x6c363c20, + 0x24f4c: 0x6cbb4220, 0x24f4d: 0x6c31a620, + 0x24f50: 0x6c6af020, 0x24f51: 0x6c21c620, 0x24f52: 0x6cfcd420, + 0x24f56: 0x6c430a20, + 0x24f6c: 0x6c2a1e20, + 0x24f70: 0x6c52b420, + 0x24f7b: 0x6d3fa620, + 0x24f7e: 0x6cb7b620, 0x24f7f: 0x6ceb3820, + // Block 0x93e, offset 0x24f80 + 0x24f80: 0x6c52b820, 0x24f81: 0x6cb06420, 0x24f82: 0x6c453c20, + 0x24f84: 0x6ca85020, 0x24f87: 0x6c798420, + 0x24f8a: 0x6d354620, + 0x24f91: 0x6cffb420, + 0x24fa1: 0x6ccf6620, 0x24fa2: 0x6d217620, 0x24fa3: 0x6c676a20, + 0x24fa9: 0x6cb70a20, 0x24faa: 0x6c190a20, 0x24fab: 0x6cca8220, + 0x24fad: 0x6cdd8e20, 0x24fae: 0x6cb9bc20, 0x24faf: 0x6c5c1a20, + 0x24fb1: 0x6ccda020, 0x24fb2: 0x6c368c20, + 0x24fbb: 0x6cbfbc20, + 0x24fbd: 0x6c78ca20, + // Block 0x93f, offset 0x24fc0 + 0x24fc0: 0x6cf23420, 0x24fc1: 0x6d3e7c20, 0x24fc2: 0x6c608e20, + 0x24fc7: 0x6c26e220, + 0x24fc9: 0x6c263620, + 0x24fcd: 0x6c90f620, 0x24fce: 0x6c775020, 0x24fcf: 0x6c7e1220, + 0x24fd0: 0x6c2b8e20, 0x24fd1: 0x6cbc7e20, 0x24fd3: 0x6ca16420, + 0x24fd6: 0x6c4cce20, 0x24fd7: 0x6c52c620, + 0x24fd8: 0x6c177c20, 0x24fd9: 0x6c522620, + 0x24fe2: 0x6c129020, 0x24fe3: 0x6d308c20, + 0x24fe6: 0x6c4bea20, + 0x24ff0: 0x6d05ec20, 0x24ff1: 0x6caece20, 0x24ff2: 0x6c74ca20, + 0x24ff5: 0x6c41ee20, 0x24ff6: 0x6cd83220, + 0x24ff8: 0x6cdc8620, 0x24ff9: 0x6cc40420, 0x24ffb: 0x6cf3f220, + 0x24ffc: 0x6d0cda20, 0x24ffd: 0x6caf1820, 0x24ffe: 0x6cffc420, 0x24fff: 0x6cac4820, + // Block 0x940, offset 0x25000 + 0x2500d: 0x6c7e9e20, + 0x25017: 0x6c085a20, + 0x25018: 0x6d320020, 0x25019: 0x6c60de20, + 0x2501c: 0x6c6cc020, 0x2501d: 0x6c887420, 0x2501e: 0x6c791220, + 0x25020: 0x6d38d620, + 0x25028: 0x6d2a9620, 0x2502a: 0x6c822e20, 0x2502b: 0x6cb54820, + 0x2502c: 0x6c0e3820, + 0x25035: 0x6d1b1c20, 0x25036: 0x6cb1f620, + 0x2503b: 0x6cda3820, + 0x2503c: 0x6c941620, 0x2503e: 0x6c2bb420, 0x2503f: 0x6c31e420, + // Block 0x941, offset 0x25040 + 0x25040: 0x6c8a8820, 0x25041: 0x6d3dd620, + 0x2504a: 0x6c16fc20, + 0x25052: 0x6c194020, 0x25053: 0x6cdee020, + 0x25059: 0x6cc41e20, 0x2505a: 0x6c2a4c20, + 0x2505d: 0x6cc51020, 0x2505f: 0x6cb3ba20, + 0x25066: 0x6d37e020, 0x25067: 0x6d006020, + 0x2506a: 0x6c679620, 0x2506b: 0x6cc21820, + 0x2506c: 0x6c831020, 0x2506d: 0x6c10f020, 0x2506e: 0x6cc39a20, + 0x25075: 0x6cfe7220, 0x25076: 0x6c836820, + 0x2507a: 0x6c809620, + 0x2507f: 0x6c7e6820, + // Block 0x942, offset 0x25080 + 0x25081: 0x6c7e6a20, + 0x25084: 0x6d24b420, + 0x2508a: 0x6c697e20, 0x2508b: 0x6cbd4e20, + 0x2508c: 0x6c5e7e20, 0x2508f: 0x6c41c820, + 0x25092: 0x6d169220, + 0x250a0: 0x6d16c820, 0x250a1: 0x6d339e20, + 0x250a4: 0x6c0c6e20, 0x250a5: 0x6cd0e620, 0x250a6: 0x6c6fd820, + 0x250ab: 0x6c509420, + 0x250ac: 0x6c3e2020, 0x250ae: 0x6c706620, + // Block 0x943, offset 0x250c0 + 0x250c0: 0x6d426620, 0x250c1: 0x6d14ac20, + 0x250c6: 0x6cfc9420, 0x250c7: 0x6d14ae20, + 0x250c9: 0x6cd8a220, 0x250cb: 0x6c20f220, + 0x250ce: 0x6ca0fa20, + 0x250e1: 0x6d2d6c20, 0x250e3: 0x6d0a0020, + 0x250e6: 0x6cc79a20, + 0x250e8: 0x6c5db020, + 0x250ec: 0x6cce6a20, + 0x250f0: 0x6cd46620, + 0x250fe: 0x6d203e20, 0x250ff: 0x6d231c20, + // Block 0x944, offset 0x25100 + 0x25102: 0x6c75b420, + 0x25109: 0x6d3e4220, 0x2510a: 0x6c925c20, + 0x2511a: 0x6c1baa20, 0x2511b: 0x6c7d6620, + 0x25120: 0x6d3ce420, + 0x25126: 0x6c541420, + 0x25129: 0x6d064420, + 0x2513e: 0x6d3f9c20, 0x2513f: 0x6d1d4220, + // Block 0x945, offset 0x25140 + 0x25142: 0x6d39b020, + 0x25145: 0x6c8f3a20, + 0x25151: 0x6caa6820, + 0x25158: 0x6c0a3020, 0x2515a: 0x6c1c5e20, + 0x2515c: 0x6d412420, 0x2515d: 0x6c3cb820, 0x2515e: 0x6c92aa20, 0x2515f: 0x6cb49220, + 0x25165: 0x6d3bdc20, 0x25167: 0x6d308020, + 0x25168: 0x6cd1ec20, 0x25169: 0x6d227e20, 0x2516a: 0x6c92ac20, 0x2516b: 0x6c896820, + 0x2516f: 0x6c74c020, + 0x25170: 0x6c8aa620, 0x25171: 0x6c080820, + // Block 0x946, offset 0x25180 + 0x25183: 0x6d18ce20, + 0x25184: 0x6c492820, + 0x2518c: 0x6c02ae20, 0x2518f: 0x6c4b8220, + 0x25190: 0x6c9fce20, 0x25192: 0x6d0dec20, 0x25193: 0x6c7fd220, + 0x25196: 0x6c0f9220, + 0x25199: 0x6d29a620, 0x2519a: 0x6d1ffe20, + 0x251a5: 0x6d194420, 0x251a6: 0x6ca66020, + 0x251ac: 0x6ca66620, 0x251ad: 0x6c4ce020, 0x251ae: 0x6c760a20, + 0x251b0: 0x6cd21820, 0x251b2: 0x6cfc5c20, + 0x251b4: 0x6cb95e20, 0x251b5: 0x6cc42020, 0x251b6: 0x6c7cc420, + // Block 0x947, offset 0x251c0 + 0x251c0: 0x6ccf1620, 0x251c2: 0x6c5dd620, + 0x251c4: 0x6ced8e20, + 0x251ca: 0x6c3af220, 0x251cb: 0x6c3b0020, + 0x251cd: 0x6d22c420, + 0x251d1: 0x6d339220, 0x251d2: 0x6c48a420, + 0x251d4: 0x6c6a8620, 0x251d5: 0x6c983e20, 0x251d6: 0x6c50cc20, + 0x251d8: 0x6d1fa820, + 0x251df: 0x6c324220, + 0x251e0: 0x6cd7d220, 0x251e2: 0x6c859420, + 0x251e5: 0x6c6a9420, 0x251e6: 0x6ca98a20, 0x251e7: 0x6c03ac20, + 0x251e8: 0x6d20de20, + 0x251ee: 0x6d33b220, + 0x251f8: 0x6c50e020, 0x251f9: 0x6c77e820, + 0x251fe: 0x6c324a20, 0x251ff: 0x6c634820, + // Block 0x948, offset 0x25200 + 0x25201: 0x6c186020, 0x25203: 0x6c20f420, + 0x25204: 0x6c50f820, 0x25205: 0x6d2d2620, + 0x2520a: 0x6c9a8c20, + 0x2520d: 0x6c50fa20, 0x2520e: 0x6d3f0420, 0x2520f: 0x6d3a0620, + 0x25212: 0x6ceb0e20, + 0x25218: 0x6d421820, 0x2521a: 0x6cc7a220, 0x2521b: 0x6c34ee20, + 0x2521c: 0x6c67e020, + 0x25227: 0x6c526420, + 0x25229: 0x6c07e620, 0x2522a: 0x6ca10820, + 0x2522f: 0x6d40ba20, + 0x25232: 0x6c0caa20, + 0x25234: 0x6c7a9820, 0x25235: 0x6c63c020, + 0x2523a: 0x6d3d0420, + 0x2523c: 0x6d04d620, + // Block 0x949, offset 0x25240 + 0x25243: 0x6c512820, + 0x25245: 0x6cbb7220, + 0x2524d: 0x6c3a5c20, 0x2524e: 0x6cd10a20, + 0x25252: 0x6d3c9620, 0x25253: 0x6c7b6a20, + 0x25254: 0x6d2b5420, 0x25255: 0x6cfaae20, 0x25257: 0x6c09d620, + 0x25258: 0x6d17f620, 0x2525a: 0x6c171a20, + 0x2526a: 0x6c999a20, + 0x25276: 0x6ced3020, + 0x2527d: 0x6cf37620, 0x2527e: 0x6c7a5220, 0x2527f: 0x6cf2be20, + // Block 0x94a, offset 0x25280 + 0x25280: 0x6d038a20, 0x25281: 0x6c781620, 0x25283: 0x6c6f8220, + 0x25284: 0x6c329c20, 0x25285: 0x6c594820, + 0x25288: 0x6d369620, 0x25289: 0x6c130620, 0x2528a: 0x6cc75a20, 0x2528b: 0x6c606e20, + 0x2528d: 0x6d131a20, + 0x2529b: 0x6c6dca20, + 0x2529c: 0x6d106220, + 0x252a1: 0x6d400220, + 0x252a9: 0x6c11d620, + 0x252b1: 0x6cd81c20, 0x252b2: 0x6c866220, 0x252b3: 0x6c47c620, + 0x252b4: 0x6c172220, 0x252b6: 0x6c3a6820, 0x252b7: 0x6c8e8a20, + 0x252b9: 0x6c6b1e20, 0x252ba: 0x6d276020, + 0x252bd: 0x6d36ba20, + // Block 0x94b, offset 0x252c0 + 0x252c0: 0x6c1dd220, 0x252c1: 0x6c0cbc20, + 0x252d2: 0x6c5f1a20, + 0x252dc: 0x6c955220, 0x252dd: 0x6c64f820, 0x252df: 0x6c206020, + 0x252e0: 0x6cd6de20, 0x252e2: 0x6c93fe20, 0x252e3: 0x6c75ea20, + 0x252e4: 0x6c69c820, 0x252e6: 0x6ce42020, 0x252e7: 0x6d2c0020, + 0x252ea: 0x6d18a820, + 0x252ec: 0x6c235a20, 0x252ed: 0x6ca57420, 0x252ee: 0x6c638220, + 0x252f4: 0x6c627c20, + 0x252fd: 0x6c00ce20, + // Block 0x94c, offset 0x25300 + 0x25307: 0x6c65d820, + 0x2530a: 0x6c07ca20, + 0x2530c: 0x6c38c620, 0x2530d: 0x6cdc8a20, 0x2530e: 0x6d421e20, + 0x25310: 0x6c42e420, 0x25311: 0x6c432420, 0x25312: 0x6c817e20, + 0x25314: 0x6d3db620, + 0x2531f: 0x6c56ca20, + 0x25322: 0x6ce9c420, + 0x25326: 0x6c0a7420, 0x25327: 0x6c716420, + 0x2532e: 0x6c575a20, + 0x25332: 0x6c1a4a20, + 0x25336: 0x6c7b4220, 0x25337: 0x6c291420, + 0x25338: 0x6c444c20, 0x25339: 0x6d011420, 0x2533b: 0x6c6b6220, + 0x2533d: 0x6c117620, + // Block 0x94d, offset 0x25340 + 0x25346: 0x6d40ec20, + 0x25348: 0x6cb46820, 0x2534b: 0x6cd57c20, + 0x2534c: 0x6c104820, + 0x25357: 0x6ca93220, + 0x25358: 0x6d0dfc20, 0x25359: 0x6d396020, 0x2535b: 0x6c9b8420, + 0x2535d: 0x6c0b5e20, 0x2535f: 0x6cfe6420, + 0x25364: 0x6c931c20, 0x25365: 0x6c849020, + 0x25369: 0x6c62ca20, 0x2536b: 0x6c9f0a20, + 0x2536c: 0x6c835620, 0x2536e: 0x6d375820, 0x2536f: 0x6d1ecc20, + 0x25370: 0x6c0b6020, + 0x25378: 0x6ca2bc20, 0x25379: 0x6cc4da20, + // Block 0x94e, offset 0x25380 + 0x25382: 0x6ca7c620, + 0x2538a: 0x6cc33a20, 0x2538b: 0x6d30c620, + 0x25390: 0x6c836620, + 0x25397: 0x6c294820, + 0x25398: 0x6c752e20, + 0x2539c: 0x6c8dc420, 0x2539e: 0x6c8de820, 0x2539f: 0x6d0d2620, + 0x253a3: 0x6d118620, + 0x253a4: 0x6d321220, 0x253a5: 0x6cb4ce20, 0x253a6: 0x6c008a20, + 0x253a8: 0x6caa3e20, 0x253a9: 0x6c988220, + 0x253b1: 0x6c76c220, 0x253b3: 0x6c6f5c20, + 0x253b4: 0x6d0d5820, 0x253b5: 0x6c9e5420, 0x253b7: 0x6d1a3e20, + 0x253b8: 0x6ceccc20, 0x253b9: 0x6d11f420, 0x253ba: 0x6cebce20, 0x253bb: 0x6cafc820, + 0x253bc: 0x6cdc2c20, + // Block 0x94f, offset 0x253c0 + 0x253c5: 0x6c799a20, + 0x253c8: 0x6c532c20, 0x253ca: 0x6ca03020, 0x253cb: 0x6c8cd220, + 0x253cc: 0x6d173e20, 0x253cd: 0x6ccfd220, 0x253cf: 0x6d429220, + 0x253db: 0x6ce85020, + 0x253dd: 0x6d1e7820, 0x253df: 0x6cec2620, + 0x253e0: 0x6c4af420, 0x253e1: 0x6c53bc20, + 0x253e5: 0x6cd36e20, 0x253e7: 0x6d049220, + 0x253e9: 0x6c000620, + 0x253f1: 0x6c19ee20, 0x253f3: 0x6c793c20, + 0x253f4: 0x6d176c20, 0x253f5: 0x6d104820, 0x253f6: 0x6ce67420, 0x253f7: 0x6c311e20, + 0x253f8: 0x6c13e820, 0x253f9: 0x6c8f3020, + 0x253fd: 0x6cc06a20, 0x253fe: 0x6d084e20, 0x253ff: 0x6ccfee20, + // Block 0x950, offset 0x25400 + 0x25400: 0x6c7b5420, 0x25401: 0x6ce7ca20, 0x25403: 0x6cba0e20, + 0x25405: 0x6c1e4220, + 0x2540a: 0x6cf1de20, + 0x2540c: 0x6c906820, 0x2540d: 0x6c018820, + 0x25414: 0x6c76d820, 0x25416: 0x6d11b020, + 0x25418: 0x6c3e8420, + 0x2541c: 0x6c084220, 0x2541d: 0x6c803020, 0x2541e: 0x6cb86c20, 0x2541f: 0x6c2d6620, + 0x25422: 0x6c69a620, 0x25423: 0x6c4a7420, + 0x25425: 0x6d049820, + 0x25428: 0x6c78bc20, + 0x25436: 0x6cfcd620, 0x25437: 0x6cf33a20, + // Block 0x951, offset 0x25440 + 0x25442: 0x6c45f620, + 0x25446: 0x6cab8620, 0x25447: 0x6c781820, + 0x2544b: 0x6c7a5420, + 0x25451: 0x6ce4be20, 0x25452: 0x6c46d420, 0x25453: 0x6c96a220, + 0x25455: 0x6c8f3e20, + 0x25459: 0x6cf0c220, 0x2545a: 0x6cf1ec20, + 0x25461: 0x6c462020, 0x25463: 0x6ce8e820, + 0x25464: 0x6ca91620, 0x25467: 0x6c9d7c20, + 0x2546b: 0x6c80e020, + 0x2546c: 0x6cba2220, 0x2546d: 0x6c977e20, 0x2546e: 0x6d308e20, + 0x25470: 0x6c57c620, 0x25471: 0x6d1db620, 0x25472: 0x6c6d5020, + 0x25474: 0x6c9aae20, 0x25477: 0x6c3ef020, + 0x2547b: 0x6cc1c220, + // Block 0x952, offset 0x25480 + 0x2548c: 0x6c8f4820, 0x2548d: 0x6c406220, 0x2548e: 0x6c28c620, + 0x25490: 0x6c460020, 0x25492: 0x6c256e20, + 0x25495: 0x6d040c20, + 0x2549c: 0x6ce87c20, 0x2549d: 0x6cd48020, + 0x254aa: 0x6cbf8420, + 0x254b3: 0x6cc6e020, + 0x254bb: 0x6c874c20, + 0x254bf: 0x6c5f9220, + // Block 0x953, offset 0x254c0 + 0x254c0: 0x6cebbc20, + 0x254cc: 0x6ce7aa20, + 0x254d2: 0x6ce04c20, + 0x254d4: 0x6c8dea20, 0x254d6: 0x6d169420, 0x254d7: 0x6cc85220, + 0x254d9: 0x6cabe220, + 0x254dd: 0x6c10e820, + 0x254e1: 0x6d269820, 0x254e2: 0x6cc3b020, 0x254e3: 0x6d3ade20, + 0x254e4: 0x6c4d6220, + 0x254f1: 0x6c381220, 0x254f2: 0x6c4d6820, + // Block 0x954, offset 0x25500 + 0x25500: 0x6c101620, 0x25501: 0x6cb25620, 0x25502: 0x6c8b0c20, + 0x2550a: 0x6c7cd420, 0x2550b: 0x6c3e9e20, + 0x2550c: 0x6ce50620, 0x2550d: 0x6cf2fc20, 0x2550f: 0x6c70aa20, + 0x25518: 0x6d318620, 0x2551a: 0x6c3ec620, + 0x25522: 0x6c8f9e20, + 0x25526: 0x6cf8ce20, 0x25527: 0x6ce4c020, + 0x2552b: 0x6c626620, + 0x2552f: 0x6d122c20, + 0x25531: 0x6c246620, + 0x25534: 0x6cad3020, 0x25535: 0x6cbce820, + 0x2553b: 0x6c8fb420, + 0x2553c: 0x6c615820, + // Block 0x955, offset 0x25540 + 0x25542: 0x6ce79a20, 0x25543: 0x6d158420, + 0x25545: 0x6c168420, + 0x2554b: 0x6c45c220, + 0x2554e: 0x6c309620, + 0x25556: 0x6cfda420, + 0x25559: 0x6ce6b620, 0x2555b: 0x6d3b7020, + 0x2555c: 0x6d15c820, 0x2555d: 0x6d170020, 0x2555e: 0x6d3ef820, 0x2555f: 0x6cb6e020, + 0x25562: 0x6c141a20, + 0x2556c: 0x6c33e220, 0x2556f: 0x6c1cbc20, + 0x25570: 0x6c922a20, 0x25571: 0x6c33ea20, 0x25573: 0x6c399220, + 0x25574: 0x6cd35c20, 0x25575: 0x6ce3e420, 0x25576: 0x6c5eaa20, 0x25577: 0x6cbfaa20, + 0x25578: 0x6cd70e20, 0x25579: 0x6c18b020, + 0x2557c: 0x6c5a6820, 0x2557d: 0x6cd41220, + // Block 0x956, offset 0x25580 + 0x25580: 0x6d279c20, + 0x25586: 0x6c8f8420, + 0x25588: 0x6c97b620, 0x25589: 0x6c464220, + 0x2558d: 0x6cfaa020, 0x2558e: 0x6ca10a20, + 0x25590: 0x6cd05e20, 0x25592: 0x6cb30820, 0x25593: 0x6d120420, + 0x25594: 0x6cc0fa20, 0x25595: 0x6cc4c020, + 0x25599: 0x6c724220, + 0x2559c: 0x6d1ada20, 0x2559d: 0x6c041020, 0x2559e: 0x6ca81c20, + 0x255a0: 0x6c1d6c20, + 0x255aa: 0x6cc67820, 0x255ab: 0x6c202020, + 0x255ac: 0x6ca83420, 0x255ad: 0x6c861620, 0x255ae: 0x6c676220, 0x255af: 0x6c77ac20, + 0x255b0: 0x6c12f020, 0x255b1: 0x6c1d5220, 0x255b2: 0x6d3b5620, 0x255b3: 0x6d3f1420, + 0x255b4: 0x6d0fb820, + 0x255bc: 0x6cf1e020, + // Block 0x957, offset 0x255c0 + 0x255cb: 0x6c620420, + 0x255cc: 0x6c620620, + 0x255d0: 0x6c93e820, 0x255d1: 0x6cc07820, 0x255d2: 0x6c33fc20, 0x255d3: 0x6c05cc20, + 0x255d4: 0x6c14ce20, 0x255d6: 0x6c0f1620, + 0x255d8: 0x6c1abe20, 0x255d9: 0x6d30fa20, 0x255da: 0x6c98b820, + 0x255dc: 0x6c621c20, 0x255dd: 0x6c9eb620, 0x255de: 0x6d262620, + 0x255e0: 0x6cf3d220, 0x255e1: 0x6d366420, 0x255e2: 0x6cb25c20, + 0x255e5: 0x6c1ccc20, + 0x255eb: 0x6c9c6020, + 0x255ec: 0x6c3a3c20, 0x255ed: 0x6c25c020, 0x255ee: 0x6c9b2420, + // Block 0x958, offset 0x25600 + 0x2560d: 0x6d1a8220, 0x2560e: 0x6c989a20, 0x2560f: 0x6c2d2420, + 0x25610: 0x6c2dd620, 0x25612: 0x6cb9b420, + 0x25615: 0x6c4f9820, 0x25616: 0x6d348620, 0x25617: 0x6c713e20, + 0x25618: 0x6ca76820, + 0x2561c: 0x6c9c6620, 0x2561d: 0x6c47b620, + 0x25623: 0x6d3b5820, + 0x25624: 0x6ca85220, 0x25625: 0x6d3d8420, 0x25627: 0x6d131c20, + 0x25628: 0x6c23dc20, 0x2562a: 0x6d05be20, + 0x2562c: 0x6cf8b820, 0x2562f: 0x6c0e8420, + 0x2563e: 0x6c11d820, + // Block 0x959, offset 0x25640 + 0x25643: 0x6d0dba20, + 0x25651: 0x6c6cb220, + 0x25654: 0x6c71ce20, 0x25655: 0x6c298620, 0x25656: 0x6c327620, + 0x25658: 0x6d128c20, 0x25659: 0x6c6ea020, 0x2565a: 0x6c78cc20, 0x2565b: 0x6c962220, + 0x2565c: 0x6cf00220, 0x2565d: 0x6ce87620, 0x2565e: 0x6d1f6020, 0x2565f: 0x6cac3020, + 0x25661: 0x6cb01020, 0x25662: 0x6c2fb820, + 0x25664: 0x6cf00420, 0x25665: 0x6c183620, 0x25666: 0x6c66bc20, + 0x25668: 0x6cd81e20, 0x25669: 0x6d3d8a20, 0x2566a: 0x6cda4020, + 0x2566c: 0x6cc87420, 0x2566e: 0x6d218420, + 0x25673: 0x6c368e20, + 0x25676: 0x6c7a7e20, + 0x25678: 0x6d3b2220, + 0x2567e: 0x6cf9e820, + // Block 0x95a, offset 0x25680 + 0x2569b: 0x6c3ef220, + 0x2569c: 0x6ce23e20, 0x2569d: 0x6cf6d020, 0x2569e: 0x6c1d8020, 0x2569f: 0x6c41ec20, + 0x256a0: 0x6c936420, 0x256a1: 0x6c131620, 0x256a2: 0x6ccdb220, 0x256a3: 0x6c8e9c20, + 0x256a5: 0x6cf8e020, 0x256a6: 0x6c5f3e20, 0x256a7: 0x6d161220, + 0x256a8: 0x6ce01220, 0x256aa: 0x6c55b620, + 0x256ad: 0x6c25c820, 0x256ae: 0x6c447820, + 0x256b0: 0x6cd3dc20, 0x256b1: 0x6ccac020, 0x256b2: 0x6c53d420, 0x256b3: 0x6cfd0e20, + 0x256b6: 0x6cf9f020, + 0x256bb: 0x6ca2ae20, + 0x256bc: 0x6cdd9620, 0x256be: 0x6d2d4c20, + // Block 0x95b, offset 0x256c0 + 0x256c0: 0x6c3d9e20, 0x256c1: 0x6ccb6220, 0x256c2: 0x6caa4620, 0x256c3: 0x6d18ac20, + 0x256e7: 0x6cbdaa20, + 0x256e8: 0x6cbedc20, + 0x256f5: 0x6c5c5a20, 0x256f6: 0x6cd6e220, 0x256f7: 0x6c284a20, + 0x256f8: 0x6cab5420, 0x256f9: 0x6ca17420, 0x256fa: 0x6cb92420, 0x256fb: 0x6c1c8020, + 0x256fc: 0x6cac0620, 0x256fd: 0x6c739620, + // Block 0x95c, offset 0x25700 + 0x25700: 0x6c178020, 0x25701: 0x6c8b3c20, 0x25702: 0x6c0db420, 0x25703: 0x6c7a0a20, + 0x25704: 0x6c28c820, 0x25705: 0x6c1dee20, 0x25706: 0x6ce70620, 0x25707: 0x6c28ca20, + 0x25708: 0x6c97ce20, 0x25709: 0x6c56ce20, 0x2570a: 0x6c8a2820, 0x2570b: 0x6cfbae20, + 0x2570d: 0x6c129820, 0x2570e: 0x6c92ea20, 0x2570f: 0x6c204220, + 0x25710: 0x6cf3f420, 0x25711: 0x6c978820, + 0x25715: 0x6d3f2420, 0x25717: 0x6c328020, + 0x2571a: 0x6cd6f220, 0x2571b: 0x6c406420, + 0x2571c: 0x6c72a620, 0x2571d: 0x6d395820, 0x2571f: 0x6c2e4220, + 0x25720: 0x6cee5a20, 0x25721: 0x6c206820, 0x25722: 0x6cb92620, 0x25723: 0x6cea1220, + 0x25725: 0x6c886420, 0x25726: 0x6c0c2e20, 0x25727: 0x6c845420, + 0x2572a: 0x6c845620, + // Block 0x95d, offset 0x25740 + 0x25746: 0x6c0a9220, 0x25747: 0x6c407620, + 0x25748: 0x6c257820, 0x25749: 0x6c318020, 0x2574b: 0x6d29a820, + 0x2574c: 0x6c8fb620, 0x2574d: 0x6d0a4a20, 0x2574e: 0x6cbf7a20, 0x2574f: 0x6c5f6e20, + 0x25750: 0x6cba2c20, 0x25752: 0x6c65fa20, 0x25753: 0x6cce9020, + 0x25754: 0x6c351e20, 0x25755: 0x6cd51620, 0x25756: 0x6c10c820, 0x25757: 0x6d05f820, + 0x25758: 0x6c304420, 0x2575a: 0x6cc49220, + 0x2575c: 0x6d0fe620, 0x2575d: 0x6cc8b420, 0x2575e: 0x6c8c7020, 0x2575f: 0x6c65fc20, + 0x25760: 0x6c2ca820, 0x25761: 0x6c3ba020, 0x25762: 0x6c2d9020, 0x25763: 0x6d41dc20, + 0x25765: 0x6ca94820, + 0x2576a: 0x6cdba020, 0x2576b: 0x6ce52420, + 0x2576c: 0x6c01da20, 0x2576f: 0x6c131c20, + 0x25770: 0x6c2fc220, 0x25771: 0x6cd02820, 0x25772: 0x6c328420, 0x25773: 0x6ce39420, + 0x25774: 0x6c695420, 0x25775: 0x6d41de20, 0x25776: 0x6d2f1020, 0x25777: 0x6c65fe20, + 0x25778: 0x6c28da20, 0x25779: 0x6c285420, 0x2577a: 0x6cd97420, + // Block 0x95e, offset 0x25780 + 0x25790: 0x6d2e2620, 0x25791: 0x6ce69620, 0x25792: 0x6d372a20, + 0x25795: 0x6d1f8220, 0x25796: 0x6cac0e20, + 0x257a1: 0x6c854220, + 0x257a4: 0x6cb9d820, 0x257a6: 0x6cdca620, 0x257a7: 0x6c71dc20, + 0x257a8: 0x6c010020, 0x257a9: 0x6c445020, 0x257aa: 0x6c72b420, 0x257ab: 0x6cea7220, + 0x257ac: 0x6c0aa620, 0x257ad: 0x6cb87e20, 0x257ae: 0x6c0fa820, 0x257af: 0x6c5c7c20, + 0x257b1: 0x6c670020, + 0x257b4: 0x6c466420, 0x257b5: 0x6cdba420, + 0x257ba: 0x6c227a20, 0x257bb: 0x6cbb5c20, + 0x257bf: 0x6d0cf420, + // Block 0x95f, offset 0x257c0 + 0x257cf: 0x6c2d9420, + 0x257d2: 0x6c9f0420, + 0x257dc: 0x6cb3b620, 0x257dd: 0x6c8e1620, 0x257de: 0x6c6b7420, 0x257df: 0x6d3b3e20, + 0x257e0: 0x6c47ee20, 0x257e3: 0x6c32aa20, + 0x257e4: 0x6d2fee20, 0x257e6: 0x6ccebe20, 0x257e7: 0x6cbdf020, + 0x257e8: 0x6c9ca420, 0x257ea: 0x6cb2e220, 0x257eb: 0x6c23c020, + 0x257ec: 0x6c1d8820, 0x257ef: 0x6cc9ae20, + 0x257f6: 0x6ce52620, + // Block 0x960, offset 0x25800 + 0x25805: 0x6c8edc20, 0x25806: 0x6c936c20, 0x25807: 0x6c91fc20, + 0x25808: 0x6d407620, + 0x2580c: 0x6c941e20, 0x2580d: 0x6c58e620, 0x2580f: 0x6ce5b420, + 0x25810: 0x6ce9d820, 0x25811: 0x6cbb5220, 0x25812: 0x6c8c8020, 0x25813: 0x6c06c220, + 0x25814: 0x6cad7620, 0x25815: 0x6d2dc420, 0x25817: 0x6c874e20, + 0x2581b: 0x6ce3b220, + 0x2581c: 0x6c560020, + 0x25822: 0x6c8b6c20, + 0x25835: 0x6c5b8020, 0x25836: 0x6cc16420, 0x25837: 0x6d086820, + 0x25839: 0x6c6ec620, 0x2583a: 0x6c2f1220, 0x2583b: 0x6cdc0820, + 0x2583d: 0x6cf11e20, 0x2583f: 0x6d0d1420, + // Block 0x961, offset 0x25840 + 0x25840: 0x6d0c4a20, 0x25841: 0x6c050e20, 0x25843: 0x6c67ce20, + 0x25844: 0x6ca66820, 0x25845: 0x6c876e20, 0x25846: 0x6c560620, 0x25847: 0x6cb80420, + 0x25848: 0x6d37e220, + 0x25851: 0x6c0acc20, + 0x25854: 0x6d220020, 0x25855: 0x6c2f1420, 0x25856: 0x6c8c8a20, 0x25857: 0x6c878c20, + 0x25858: 0x6d3de620, 0x25859: 0x6c62f020, 0x2585a: 0x6c70e620, + 0x2585c: 0x6c3c8820, 0x2585e: 0x6d248820, + 0x25868: 0x6c8b7e20, 0x25869: 0x6d28e020, 0x2586a: 0x6cb9e820, 0x2586b: 0x6c6a4620, + 0x2586c: 0x6c494220, 0x2586e: 0x6d3dee20, + 0x25871: 0x6c40a220, + 0x25879: 0x6ccba220, + 0x2587c: 0x6c248a20, + // Block 0x962, offset 0x25880 + 0x25883: 0x6c5b8220, + 0x25888: 0x6c29a620, 0x25889: 0x6c901c20, 0x2588a: 0x6d198420, + 0x25897: 0x6cc96020, + 0x25898: 0x6d274220, 0x2589a: 0x6c2bc620, + 0x258a1: 0x6c420820, 0x258a2: 0x6d295c20, 0x258a3: 0x6ccdf420, + 0x258a4: 0x6d24b020, 0x258a5: 0x6c0fde20, 0x258a7: 0x6c2f9820, + 0x258a8: 0x6c388c20, 0x258aa: 0x6d22d820, + 0x258ac: 0x6ccfc420, + 0x258b2: 0x6c457020, + 0x258b4: 0x6c9ed020, 0x258b5: 0x6cea4a20, + 0x258b8: 0x6c8af620, + // Block 0x963, offset 0x258c0 + 0x258c1: 0x6d2bd420, 0x258c2: 0x6cadbc20, + 0x258c4: 0x6c9c4a20, 0x258c6: 0x6c9ffa20, 0x258c7: 0x6c394a20, + 0x258c9: 0x6ca33620, 0x258ca: 0x6cd8b820, 0x258cb: 0x6d14ea20, + 0x258cc: 0x6c635020, 0x258cd: 0x6d3ae620, + 0x258d3: 0x6c047e20, + 0x258d4: 0x6d231e20, 0x258d6: 0x6cb35820, + 0x258da: 0x6c582820, 0x258db: 0x6c11f820, + 0x258dc: 0x6c684a20, + 0x258e0: 0x6cdfe420, + 0x258e9: 0x6d363a20, 0x258eb: 0x6c9cf420, + 0x258ec: 0x6c77ae20, + 0x258f1: 0x6d109a20, 0x258f2: 0x6c335020, 0x258f3: 0x6cc36020, + 0x258f4: 0x6c10a420, 0x258f5: 0x6c1f5420, 0x258f6: 0x6cbc2820, 0x258f7: 0x6c8e6c20, + 0x258f8: 0x6c0f1820, 0x258fa: 0x6c772e20, 0x258fb: 0x6c3bde20, + // Block 0x964, offset 0x25900 + 0x25905: 0x6c2a2020, + 0x25909: 0x6c312820, 0x2590a: 0x6c440820, + 0x25919: 0x6c8d3a20, 0x2591a: 0x6cf79420, + 0x2591c: 0x6ca6ba20, 0x2591d: 0x6d389620, 0x2591e: 0x6d389820, + 0x25923: 0x6c1d7820, + 0x25934: 0x6ca6ee20, 0x25935: 0x6c5f0c20, 0x25937: 0x6cc12420, + // Block 0x965, offset 0x25940 + 0x25944: 0x6c763e20, 0x25947: 0x6cfcfc20, + 0x25949: 0x6c516820, 0x2594b: 0x6c8bd220, + 0x2594d: 0x6d3e7e20, + 0x25951: 0x6cab8c20, 0x25952: 0x6c245620, + 0x25957: 0x6c140420, + 0x2595d: 0x6d383820, 0x2595e: 0x6c102420, + 0x25964: 0x6c1d8220, 0x25965: 0x6cf8e220, 0x25966: 0x6cc99220, 0x25967: 0x6cfb9620, + 0x25968: 0x6ccb6420, 0x25969: 0x6c9e6020, 0x2596b: 0x6c38c020, + 0x2596c: 0x6d341620, 0x2596e: 0x6c256420, + 0x25974: 0x6cfa4620, + 0x2597e: 0x6cab1420, 0x2597f: 0x6c845820, + // Block 0x966, offset 0x25980 + 0x25980: 0x6d40de20, 0x25982: 0x6c24f220, 0x25983: 0x6d2b1220, + 0x25985: 0x6c845a20, + 0x25998: 0x6cb67620, 0x2599a: 0x6d3d1020, 0x2599b: 0x6c257a20, + 0x2599c: 0x6cb41e20, 0x2599e: 0x6c38d620, 0x2599f: 0x6ce02620, + 0x259a9: 0x6d3eac20, 0x259aa: 0x6d412a20, 0x259ab: 0x6d38bc20, + 0x259ac: 0x6cc6d020, 0x259ad: 0x6c8bee20, 0x259ae: 0x6ce02820, + 0x259b6: 0x6cd3fe20, + 0x259ba: 0x6c251420, 0x259bb: 0x6d3eb820, + 0x259bc: 0x6c3db620, + // Block 0x967, offset 0x259c0 + 0x259c1: 0x6d001c20, + 0x259c8: 0x6c3c7420, + 0x259cf: 0x6cfd4220, + 0x259d0: 0x6c670c20, 0x259d2: 0x6c3c0420, + 0x259d7: 0x6c875020, + 0x259d8: 0x6ca19820, + 0x259df: 0x6d1ed020, + 0x259e5: 0x6c5e5020, 0x259e7: 0x6cc16620, + 0x259ec: 0x6ca78220, + 0x259f0: 0x6c9cbe20, 0x259f3: 0x6cb80a20, + 0x259f6: 0x6c51ae20, + 0x259f8: 0x6c893a20, + 0x259ff: 0x6d42b420, + // Block 0x968, offset 0x25a00 + 0x25a02: 0x6c8df220, + 0x25a05: 0x6d39f820, 0x25a07: 0x6ca78c20, + 0x25a0a: 0x6c612420, 0x25a0b: 0x6cc62620, + 0x25a0c: 0x6c6a9620, 0x25a0d: 0x6c41d020, + 0x25a10: 0x6d170220, 0x25a13: 0x6d38ce20, + 0x25a15: 0x6cf4ca20, + 0x25a1a: 0x6c44fe20, 0x25a1b: 0x6c243220, + 0x25a1d: 0x6c9ed220, + 0x25a21: 0x6d0a0220, 0x25a23: 0x6d33cc20, + 0x25a24: 0x6cff7620, 0x25a27: 0x6c3e3a20, + 0x25a28: 0x6c553620, + 0x25a2c: 0x6c2b1e20, 0x25a2e: 0x6c741820, 0x25a2f: 0x6c2e1220, + 0x25a39: 0x6cd44420, + 0x25a3c: 0x6cee0a20, + // Block 0x969, offset 0x25a40 + 0x25a43: 0x6ca33820, + 0x25a44: 0x6c2b2620, 0x25a45: 0x6cd37020, 0x25a46: 0x6c224020, 0x25a47: 0x6cd4d220, + 0x25a49: 0x6cec2c20, 0x25a4a: 0x6c181820, 0x25a4b: 0x6c389820, + 0x25a4d: 0x6c470820, 0x25a4e: 0x6d24e620, + 0x25a51: 0x6c491420, + 0x25a5a: 0x6cbcbc20, + 0x25a5c: 0x6d2de820, 0x25a5d: 0x6c276020, 0x25a5e: 0x6cceee20, + 0x25a66: 0x6d388820, 0x25a67: 0x6cfde420, + 0x25a68: 0x6ca00020, 0x25a69: 0x6d3f5020, 0x25a6a: 0x6c599620, 0x25a6b: 0x6c9c5420, + 0x25a6d: 0x6cf88c20, 0x25a6e: 0x6d363c20, 0x25a6f: 0x6cac2820, + 0x25a70: 0x6c349420, + 0x25a74: 0x6c22c820, 0x25a75: 0x6ca1d420, 0x25a77: 0x6c17be20, + 0x25a79: 0x6d17b620, 0x25a7a: 0x6c464820, + // Block 0x96a, offset 0x25a80 + 0x25a87: 0x6c6dba20, + 0x25a93: 0x6d2b8020, + 0x25a94: 0x6cb25e20, 0x25a95: 0x6d130420, 0x25a96: 0x6c6af420, + 0x25a98: 0x6caf7620, 0x25a9b: 0x6ccbfe20, + 0x25a9c: 0x6d3c4420, 0x25a9d: 0x6c6f1e20, + 0x25aa0: 0x6c8e6e20, 0x25aa1: 0x6d227020, 0x25aa3: 0x6c70ac20, + 0x25aa8: 0x6caafe20, + 0x25ab8: 0x6c999c20, + // Block 0x96b, offset 0x25ac0 + 0x25ac4: 0x6c187420, 0x25ac6: 0x6d3bd420, 0x25ac7: 0x6ca76a20, + 0x25ac8: 0x6c79aa20, 0x25ac9: 0x6c6a2e20, 0x25aca: 0x6c57b020, + 0x25acd: 0x6d02e220, 0x25ace: 0x6d424a20, 0x25acf: 0x6d0e9620, + 0x25ad0: 0x6c748220, + 0x25ad5: 0x6c54ea20, 0x25ad6: 0x6d393a20, 0x25ad7: 0x6ccf6a20, + 0x25ad9: 0x6d0dbc20, 0x25adb: 0x6d01de20, + 0x25adc: 0x6c2ed420, 0x25adf: 0x6c187a20, + 0x25af2: 0x6c65c620, 0x25af3: 0x6c624c20, + 0x25af6: 0x6c21ce20, 0x25af7: 0x6c537420, + // Block 0x96c, offset 0x25b00 + 0x25b00: 0x6c26bc20, + 0x25b04: 0x6c764020, 0x25b05: 0x6d039820, 0x25b06: 0x6c5c1c20, 0x25b07: 0x6c65d020, + 0x25b08: 0x6d394820, 0x25b09: 0x6d2c8c20, 0x25b0a: 0x6c403820, 0x25b0b: 0x6c1c6020, + 0x25b0c: 0x6c082e20, 0x25b0d: 0x6cab0a20, + 0x25b11: 0x6c626820, 0x25b12: 0x6cb9c020, + 0x25b14: 0x6ced9620, 0x25b15: 0x6cab6a20, 0x25b16: 0x6c0a3220, 0x25b17: 0x6cd79c20, + 0x25b20: 0x6c6dd020, 0x25b21: 0x6d132e20, + // Block 0x96d, offset 0x25b40 + 0x25b44: 0x6c3a7220, 0x25b47: 0x6c844420, + 0x25b4a: 0x6c868020, 0x25b4b: 0x6cb01e20, + 0x25b52: 0x6cdc7a20, 0x25b53: 0x6c8e9e20, + 0x25b54: 0x6c517220, 0x25b55: 0x6c5d1420, 0x25b56: 0x6ce07a20, 0x25b57: 0x6cd79e20, + 0x25b58: 0x6d36ec20, 0x25b59: 0x6c0f5c20, + 0x25b5d: 0x6cf8e420, + 0x25b61: 0x6cb33620, 0x25b62: 0x6cc45c20, + 0x25b64: 0x6ca2b020, + 0x25b7d: 0x6d1db820, + // Block 0x96e, offset 0x25b80 + 0x25b82: 0x6c279620, + 0x25b8a: 0x6cb72220, 0x25b8b: 0x6c2e0220, + 0x25b8c: 0x6ca87c20, 0x25b8d: 0x6cd6e420, 0x25b8f: 0x6cce8c20, + 0x25b90: 0x6c7dc420, 0x25b91: 0x6cdc9020, 0x25b93: 0x6c30ca20, + 0x25b94: 0x6c2ef220, + 0x25b9c: 0x6c45ba20, + 0x25baf: 0x6d3bb020, + 0x25bb0: 0x6c4c8c20, + 0x25bbc: 0x6d05fa20, 0x25bbd: 0x6cc1e820, + // Block 0x96f, offset 0x25bc0 + 0x25bc0: 0x6d0a4c20, 0x25bc3: 0x6c689a20, + 0x25bc4: 0x6d30aa20, 0x25bc6: 0x6c2d9220, 0x25bc7: 0x6cca7620, + 0x25bc8: 0x6c080c20, 0x25bca: 0x6cdda620, 0x25bcb: 0x6cba2e20, + 0x25bcf: 0x6d05fc20, + 0x25bd1: 0x6d0a4e20, + 0x25bd4: 0x6ca17a20, + 0x25bf5: 0x6cdca820, 0x25bf6: 0x6c7ea820, 0x25bf7: 0x6d3a8a20, + 0x25bf8: 0x6d396420, 0x25bfa: 0x6c870820, + 0x25bfc: 0x6c280e20, 0x25bfd: 0x6c717820, 0x25bff: 0x6d286e20, + // Block 0x970, offset 0x25c00 + 0x25c00: 0x6c15fc20, 0x25c01: 0x6c956020, + 0x25c04: 0x6ccb8220, 0x25c06: 0x6c888620, + 0x25c08: 0x6d414e20, 0x25c0b: 0x6c7f7020, + 0x25c0c: 0x6cd6ec20, 0x25c0d: 0x6cbcfe20, + 0x25c18: 0x6c30ce20, + 0x25c1e: 0x6cf54a20, 0x25c1f: 0x6c9b9020, + 0x25c21: 0x6c62ce20, + 0x25c24: 0x6c1aee20, 0x25c26: 0x6ca65c20, + 0x25c38: 0x6d116e20, 0x25c3b: 0x6c7ec020, + 0x25c3e: 0x6c942020, + // Block 0x971, offset 0x25c40 + 0x25c40: 0x6cdcbe20, 0x25c41: 0x6c3dbe20, + 0x25c44: 0x6c830420, 0x25c45: 0x6cf05820, + 0x25c4e: 0x6c237820, + 0x25c54: 0x6c877020, 0x25c56: 0x6cb22820, + 0x25c58: 0x6c759020, 0x25c59: 0x6c71e420, 0x25c5b: 0x6c7ecc20, + 0x25c67: 0x6c62f220, + 0x25c6a: 0x6c9f1a20, + 0x25c6c: 0x6d125020, 0x25c6d: 0x6c0b2620, + 0x25c71: 0x6c23d420, 0x25c72: 0x6cd85e20, + 0x25c75: 0x6cd86020, + 0x25c78: 0x6c51b020, + // Block 0x972, offset 0x25c80 + 0x25c83: 0x6ca48820, + 0x25c85: 0x6c2f2620, + 0x25c88: 0x6c180220, 0x25c89: 0x6d282220, 0x25c8b: 0x6d052220, + 0x25c8c: 0x6cd4c220, 0x25c8e: 0x6c15b020, 0x25c8f: 0x6c9f4c20, + 0x25c90: 0x6c87fe20, 0x25c91: 0x6d19e620, 0x25c92: 0x6d037620, 0x25c93: 0x6cee9020, + 0x25c94: 0x6c479020, 0x25c95: 0x6ce7f020, 0x25c96: 0x6cddf620, 0x25c97: 0x6c3a5e20, + 0x25c98: 0x6c265420, 0x25c99: 0x6ca84620, 0x25c9a: 0x6c244820, 0x25c9b: 0x6d426e20, + 0x25c9c: 0x6c6b2020, 0x25c9d: 0x6d08b020, 0x25c9e: 0x6c0f5e20, 0x25c9f: 0x6c6c5e20, + 0x25ca0: 0x6d1b1220, 0x25ca1: 0x6d05f020, 0x25ca3: 0x6d20e420, + 0x25ca4: 0x6d048c20, 0x25ca6: 0x6cb76c20, 0x25ca7: 0x6c069620, + 0x25ca8: 0x6d03dc20, 0x25ca9: 0x6c45ec20, + 0x25cac: 0x6d418c20, + 0x25cb0: 0x6c6a1a20, 0x25cb2: 0x6c763020, + 0x25cb5: 0x6d03f020, 0x25cb6: 0x6c06b220, 0x25cb7: 0x6cd4ee20, + 0x25cb8: 0x6d23a020, 0x25cba: 0x6d38ee20, 0x25cbb: 0x6d2e0420, + // Block 0x973, offset 0x25cc0 + 0x25cc2: 0x6d37c620, + 0x25cc6: 0x6c140620, + 0x25cc8: 0x6c20e020, 0x25cc9: 0x6c8f4220, + 0x25cce: 0x6cdbdc20, + 0x25cd0: 0x6d3a8620, + 0x25cd9: 0x6c0bd220, + 0x25cdd: 0x6d035420, 0x25cdf: 0x6d0bce20, + 0x25ce2: 0x6c8daa20, + 0x25ce7: 0x6d0bd220, + 0x25cec: 0x6ce63020, + 0x25cf9: 0x6c2b5a20, + // Block 0x974, offset 0x25d00 + 0x25d01: 0x6cafca20, 0x25d02: 0x6c567620, 0x25d03: 0x6c132a20, + 0x25d0a: 0x6ce45e20, 0x25d0b: 0x6ca20220, + 0x25d0c: 0x6c731620, 0x25d0e: 0x6ca20420, + 0x25d10: 0x6c723020, 0x25d11: 0x6c8f0020, 0x25d13: 0x6c8e0c20, + 0x25d17: 0x6c8f0220, + 0x25d18: 0x6c568820, + 0x25d26: 0x6c3e3e20, 0x25d27: 0x6c553820, + 0x25d2a: 0x6c361820, 0x25d2b: 0x6c458420, + 0x25d2c: 0x6c470a20, + 0x25d31: 0x6c48b420, + 0x25d39: 0x6c94a420, 0x25d3b: 0x6c389a20, + 0x25d3c: 0x6c93e220, 0x25d3d: 0x6c9b1820, 0x25d3e: 0x6c3e8a20, 0x25d3f: 0x6c8e5e20, + // Block 0x975, offset 0x25d40 + 0x25d45: 0x6d00c220, 0x25d46: 0x6c471e20, + 0x25d48: 0x6cfcda20, 0x25d49: 0x6c0f1a20, 0x25d4b: 0x6c622220, + 0x25d53: 0x6cc2a220, + 0x25d54: 0x6c927220, + 0x25d5e: 0x6cd79420, + 0x25d61: 0x6ca20820, 0x25d62: 0x6d23a420, 0x25d63: 0x6c4eea20, + 0x25d69: 0x6d26d020, 0x25d6a: 0x6c289e20, + 0x25d6f: 0x6d218620, + 0x25d70: 0x6c64de20, 0x25d73: 0x6c429020, + 0x25d7f: 0x6c129420, + // Block 0x976, offset 0x25d80 + 0x25d80: 0x6cd0c820, 0x25d81: 0x6c8f1c20, + 0x25d86: 0x6c687e20, + 0x25d89: 0x6cdb2020, 0x25d8a: 0x6cdb2220, 0x25d8b: 0x6d383e20, + 0x25d92: 0x6c8aaa20, + 0x25d94: 0x6d085c20, 0x25d95: 0x6c92ee20, 0x25d97: 0x6c629e20, + 0x25d9a: 0x6d0cdc20, + 0x25d9f: 0x6c930820, + 0x25da1: 0x6c9fd220, 0x25da2: 0x6ce39620, + 0x25da6: 0x6c595c20, + 0x25da9: 0x6d18ec20, 0x25daa: 0x6ce08220, + 0x25dac: 0x6cf48820, + 0x25db0: 0x6c5f8020, + 0x25db7: 0x6c31e620, + 0x25db8: 0x6c7d9420, 0x25dba: 0x6c758e20, + 0x25dbf: 0x6cd21a20, + // Block 0x977, offset 0x25dc0 + 0x25dc0: 0x6ca44e20, 0x25dc1: 0x6cb3bc20, + 0x25dc4: 0x6cd52020, 0x25dc5: 0x6cc37e20, + 0x25dcc: 0x6cc5bc20, 0x25dcf: 0x6c3b6220, + 0x25dd2: 0x6cde3a20, 0x25dd3: 0x6cea4820, + 0x25dd5: 0x6d0f9c20, + 0x25de6: 0x6c342c20, 0x25de7: 0x6c21fc20, + 0x25de9: 0x6c478020, 0x25dea: 0x6c3b6e20, + 0x25ded: 0x6cc74620, + 0x25df1: 0x6c42c020, 0x25df2: 0x6cfdbe20, + 0x25df4: 0x6cfdc020, 0x25df5: 0x6c545420, 0x25df7: 0x6ce1c420, + 0x25df8: 0x6ccd8420, 0x25df9: 0x6d0fba20, 0x25dfa: 0x6d3f5220, + 0x25dfc: 0x6d256a20, + // Block 0x978, offset 0x25e00 + 0x25e04: 0x6cda7420, 0x25e07: 0x6c203820, + 0x25e08: 0x6cfdc820, 0x25e0a: 0x6c048a20, + 0x25e0c: 0x6c97c020, 0x25e0e: 0x6c3f6e20, 0x25e0f: 0x6c7e6420, + 0x25e10: 0x6c851e20, 0x25e12: 0x6c6af620, 0x25e13: 0x6d1ea820, + 0x25e18: 0x6d23a620, 0x25e1a: 0x6c1c4820, + 0x25e1c: 0x6c203a20, 0x25e1d: 0x6d182e20, 0x25e1e: 0x6ccd0020, + 0x25e22: 0x6c609220, 0x25e23: 0x6d0c2820, + 0x25e26: 0x6cf51820, 0x25e27: 0x6c215c20, + 0x25e28: 0x6c987420, + 0x25e2d: 0x6c3ede20, 0x25e2e: 0x6c637c20, 0x25e2f: 0x6c46d620, + 0x25e30: 0x6c474420, 0x25e31: 0x6c63e420, + 0x25e35: 0x6cfb9820, 0x25e37: 0x6c6d6020, + 0x25e38: 0x6d3f6420, 0x25e39: 0x6c90bc20, + 0x25e3c: 0x6c46da20, + // Block 0x979, offset 0x25e40 + 0x25e40: 0x6cc57c20, 0x25e42: 0x6ccd1420, + 0x25e45: 0x6c74da20, 0x25e46: 0x6ce79c20, 0x25e47: 0x6d1ffc20, + 0x25e54: 0x6c651a20, 0x25e55: 0x6c31dc20, 0x25e57: 0x6c55f020, + 0x25e5b: 0x6ccace20, + 0x25e5c: 0x6d246220, + 0x25e62: 0x6c974e20, + 0x25e64: 0x6d342620, 0x25e65: 0x6d0c4420, 0x25e66: 0x6c42f020, + 0x25e68: 0x6c582020, + 0x25e6e: 0x6cc34420, + 0x25e71: 0x6d103e20, 0x25e73: 0x6d418820, + 0x25e77: 0x6cfe8e20, + 0x25e78: 0x6d170620, 0x25e79: 0x6d0d5a20, 0x25e7a: 0x6c531e20, 0x25e7b: 0x6d20e620, + 0x25e7f: 0x6c1c0020, + // Block 0x97a, offset 0x25e80 + 0x25e81: 0x6c1b1020, + 0x25e84: 0x6c4f6a20, 0x25e85: 0x6ccb1e20, 0x25e86: 0x6cabbe20, 0x25e87: 0x6cde4020, + 0x25e88: 0x6c3b2620, 0x25e89: 0x6c1aa020, + 0x25e8c: 0x6c533220, 0x25e8d: 0x6d095220, + 0x25e96: 0x6d351e20, + 0x25e9b: 0x6cc19020, + 0x25ea0: 0x6cf5fe20, 0x25ea1: 0x6c3e6220, 0x25ea3: 0x6cd4e020, + 0x25ea4: 0x6c4d6a20, 0x25ea6: 0x6cb38c20, + 0x25ea8: 0x6c229a20, + 0x25eb0: 0x6c149a20, 0x25eb3: 0x6c52ae20, + 0x25eb8: 0x6cad7a20, 0x25eb9: 0x6ccff820, 0x25eba: 0x6cfede20, + 0x25ebd: 0x6d07ac20, 0x25ebe: 0x6c229e20, 0x25ebf: 0x6ce68420, + // Block 0x97b, offset 0x25ec0 + 0x25ec0: 0x6cb39620, + 0x25ec7: 0x6cde7e20, + 0x25ec8: 0x6c13a820, 0x25ecb: 0x6d40ce20, + 0x25ecc: 0x6c5de820, 0x25ecd: 0x6d071820, 0x25ece: 0x6d0e9820, 0x25ecf: 0x6c149e20, + 0x25ed1: 0x6ceb3420, + 0x25ed8: 0x6cfb8420, 0x25ed9: 0x6d07c620, 0x25eda: 0x6c542a20, 0x25edb: 0x6c58de20, + 0x25edc: 0x6c442620, 0x25edd: 0x6c1d3c20, 0x25ede: 0x6c0a3620, 0x25edf: 0x6c52bc20, + 0x25ee0: 0x6c52be20, 0x25ee1: 0x6c1b4a20, 0x25ee3: 0x6c140820, + 0x25eef: 0x6d2c8e20, + 0x25ef1: 0x6d2d1e20, 0x25ef2: 0x6cdea220, + 0x25ef5: 0x6cb3a220, 0x25ef6: 0x6cdea420, + 0x25ef8: 0x6d1f6e20, 0x25ef9: 0x6c3ef420, 0x25efa: 0x6c220e20, 0x25efb: 0x6c26be20, + 0x25efc: 0x6cde1a20, 0x25efe: 0x6c8ea020, + // Block 0x97c, offset 0x25f00 + 0x25f01: 0x6c221020, 0x25f03: 0x6c52d420, + 0x25f05: 0x6c4f1a20, 0x25f06: 0x6c7e5020, + 0x25f08: 0x6cd20420, + 0x25f0d: 0x6ce79e20, 0x25f0e: 0x6c5c7020, 0x25f0f: 0x6c518620, + 0x25f10: 0x6cb1d820, 0x25f11: 0x6d243a20, + 0x25f1c: 0x6cfaf020, 0x25f1d: 0x6c4e6c20, 0x25f1f: 0x6cb3ac20, + 0x25f26: 0x6c7ec220, 0x25f27: 0x6c5e5220, + 0x25f30: 0x6cdf8420, + 0x25f34: 0x6c819e20, 0x25f36: 0x6cd5b420, + 0x25f3a: 0x6c2a0a20, 0x25f3b: 0x6c2d1020, + // Block 0x97d, offset 0x25f40 + 0x25f48: 0x6d04a820, 0x25f4b: 0x6cee6020, + 0x25f4d: 0x6c17f820, 0x25f4e: 0x6ca3ae20, + 0x25f50: 0x6c73d420, 0x25f53: 0x6c375220, + 0x25f54: 0x6c375a20, 0x25f55: 0x6caa6c20, 0x25f56: 0x6caa8820, + 0x25f5d: 0x6d3bae20, + 0x25f62: 0x6cab2220, + 0x25f64: 0x6c8ac220, 0x25f65: 0x6c82b420, 0x25f67: 0x6c032a20, + 0x25f6c: 0x6c196820, 0x25f6f: 0x6c4a6a20, + 0x25f70: 0x6cc2f820, 0x25f71: 0x6c448820, 0x25f73: 0x6c45ee20, + 0x25f74: 0x6ccee020, + 0x25f79: 0x6c7f2020, 0x25f7a: 0x6d32e820, 0x25f7b: 0x6d183020, + 0x25f7c: 0x6c4bda20, 0x25f7d: 0x6ceea620, 0x25f7e: 0x6c951e20, + // Block 0x97e, offset 0x25f80 + 0x25f82: 0x6cd28620, 0x25f83: 0x6d1be820, + 0x25f84: 0x6cd14620, 0x25f85: 0x6ce8ea20, 0x25f86: 0x6c0a3820, + 0x25f88: 0x6d2aee20, 0x25f89: 0x6d383a20, 0x25f8b: 0x6cc72620, + 0x25f8c: 0x6cb64e20, 0x25f8d: 0x6c405620, 0x25f8e: 0x6c131820, + 0x25f93: 0x6c845c20, + 0x25f94: 0x6c978c20, 0x25f96: 0x6c886620, 0x25f97: 0x6c0c3020, + 0x25f9b: 0x6c207e20, + 0x25f9c: 0x6d18ee20, + 0x25fa0: 0x6cac3620, + 0x25fa5: 0x6d191420, 0x25fa6: 0x6c7b4820, + 0x25fa9: 0x6c0c5220, 0x25fab: 0x6c1c9e20, + 0x25fac: 0x6cc22020, 0x25fad: 0x6ca1ae20, 0x25fae: 0x6d301620, 0x25faf: 0x6ccc3c20, + 0x25fb0: 0x6ccc3e20, + 0x25fb7: 0x6d109620, + 0x25fb8: 0x6c457420, 0x25fb9: 0x6ca3b620, + 0x25fbc: 0x6d018420, 0x25fbf: 0x6ce53220, + // Block 0x97f, offset 0x25fc0 + 0x25fc6: 0x6d127820, + 0x25fc9: 0x6ccbe220, + 0x25fcf: 0x6ccaec20, + 0x25fd2: 0x6c2cc620, 0x25fd3: 0x6d06c220, + 0x25fd9: 0x6cc19220, + 0x25fe0: 0x6c52b020, 0x25fe1: 0x6cd16620, 0x25fe2: 0x6ce6ec20, + 0x25ff0: 0x6c352e20, + 0x25ff5: 0x6c89ea20, 0x25ff7: 0x6c53c220, + 0x25ff8: 0x6c852020, 0x25ffa: 0x6cfdee20, + 0x25ffd: 0x6cd0b620, + // Block 0x980, offset 0x26000 + 0x26000: 0x6c3d8220, + 0x26008: 0x6d0dc020, 0x26009: 0x6cee3220, 0x2600a: 0x6cb51620, 0x2600b: 0x6c34a620, + 0x2600d: 0x6c57b220, 0x2600e: 0x6cb90c20, + 0x26010: 0x6d01e020, + 0x2601d: 0x6c22d620, 0x2601e: 0x6cd11020, + 0x26022: 0x6c37dc20, + 0x26024: 0x6d039a20, 0x26026: 0x6cea0e20, 0x26027: 0x6d0ea220, + 0x26029: 0x6c8b2820, + 0x2602c: 0x6c9c6e20, + 0x26038: 0x6d402c20, 0x2603a: 0x6d3e8020, + 0x2603c: 0x6c55ba20, 0x2603d: 0x6d1c9e20, 0x2603e: 0x6c885620, 0x2603f: 0x6c266a20, + // Block 0x981, offset 0x26040 + 0x26040: 0x6ce4c420, 0x26041: 0x6ce53e20, + 0x2604b: 0x6cc6b020, + 0x2604d: 0x6c00d020, + 0x26050: 0x6c00e420, 0x26051: 0x6d309e20, 0x26052: 0x6c4c4620, 0x26053: 0x6c92f020, + 0x26054: 0x6d2f7a20, 0x26055: 0x6c9c8220, 0x26056: 0x6c8a2a20, 0x26057: 0x6d30a020, + 0x2605b: 0x6cc25020, + 0x2605c: 0x6c236820, 0x2605f: 0x6ce65020, + 0x26061: 0x6ce02c20, 0x26062: 0x6d2e2820, 0x26063: 0x6c55e020, + 0x26065: 0x6cb1da20, 0x26067: 0x6c267020, + 0x26068: 0x6cc6d220, + 0x2606e: 0x6ca52020, + 0x26073: 0x6ca45a20, + 0x26074: 0x6c291a20, 0x26075: 0x6c695c20, + 0x2607b: 0x6c72b620, + 0x2607c: 0x6c37ac20, + // Block 0x982, offset 0x26080 + 0x2608a: 0x6c877420, + 0x2608c: 0x6c4c4e20, 0x2608d: 0x6cec7e20, + 0x26092: 0x6ca7ee20, + 0x26094: 0x6c6c3420, + 0x260a9: 0x6cb04a20, 0x260aa: 0x6c1bde20, + 0x260b2: 0x6cb04c20, 0x260b3: 0x6d166e20, + 0x260b4: 0x6c316220, 0x260b5: 0x6cec1420, 0x260b6: 0x6d099020, + 0x260b8: 0x6cb73c20, 0x260b9: 0x6ccd6c20, + 0x260bc: 0x6d056a20, 0x260bf: 0x6c509020, + // Block 0x983, offset 0x260c0 + 0x260c0: 0x6caca620, 0x260c2: 0x6cadb420, + 0x260c4: 0x6d045a20, 0x260c6: 0x6c1b7e20, 0x260c7: 0x6cdf9020, + 0x260c8: 0x6d41a620, 0x260c9: 0x6d414820, 0x260ca: 0x6cb74c20, 0x260cb: 0x6c316420, + 0x260d9: 0x6cd70c20, + 0x260dc: 0x6ca2f220, 0x260dd: 0x6cf59620, + 0x260e7: 0x6c179420, + 0x260e8: 0x6d16d020, 0x260eb: 0x6d329e20, + 0x260ee: 0x6c70fe20, 0x260ef: 0x6c274c20, + 0x260f1: 0x6cc9fc20, + 0x260f4: 0x6d3ac820, 0x260f5: 0x6ced7620, + 0x260f8: 0x6cc9fe20, 0x260f9: 0x6c04f220, 0x260fa: 0x6c643c20, 0x260fb: 0x6c972c20, + // Block 0x984, offset 0x26100 + 0x26108: 0x6ceb9c20, 0x2610a: 0x6cb76020, + 0x2610f: 0x6d3c0c20, + 0x26110: 0x6ceb0220, 0x26113: 0x6cb28c20, + 0x2611d: 0x6cae6220, 0x2611e: 0x6c7b9a20, 0x2611f: 0x6d14d820, + 0x26121: 0x6d018620, 0x26122: 0x6d264c20, 0x26123: 0x6c523020, + 0x26125: 0x6c53f220, 0x26126: 0x6d32a420, 0x26127: 0x6c217420, + 0x26128: 0x6cd35e20, 0x26129: 0x6cec1c20, 0x2612b: 0x6d009620, + 0x26138: 0x6c452a20, + // Block 0x985, offset 0x26140 + 0x26145: 0x6c35fe20, + 0x2614f: 0x6c7a7220, + 0x26150: 0x6ca32c20, 0x26153: 0x6c707420, + 0x26154: 0x6d088e20, 0x26155: 0x6cc0fe20, 0x26156: 0x6c181c20, 0x26157: 0x6c939620, + 0x26158: 0x6c511420, 0x26159: 0x6cd16020, 0x2615a: 0x6ca44620, + 0x2615c: 0x6c511620, 0x2615d: 0x6c13de20, 0x2615e: 0x6d0bfe20, 0x2615f: 0x6c450a20, + 0x26160: 0x6ca81e20, 0x26162: 0x6c4c6a20, 0x26163: 0x6d0c8c20, + 0x26164: 0x6c494e20, 0x26167: 0x6d360420, + 0x26168: 0x6c81f420, + 0x2616f: 0x6c321820, + 0x26170: 0x6cb78220, 0x26171: 0x6cc10020, 0x26172: 0x6c742e20, + // Block 0x986, offset 0x26180 + 0x26181: 0x6c3c4220, 0x26183: 0x6d06c420, + 0x26184: 0x6ce9fc20, 0x26186: 0x6c4e1820, 0x26187: 0x6c7a4220, + 0x2618a: 0x6ccff020, 0x2618b: 0x6d363e20, + 0x2618d: 0x6cad2c20, 0x2618e: 0x6d32cc20, 0x2618f: 0x6c861820, + 0x26190: 0x6ced2620, 0x26192: 0x6c391020, 0x26193: 0x6d033a20, + 0x26196: 0x6d0bb620, + 0x2619b: 0x6c709820, + 0x2619c: 0x6cd0a620, + 0x261ad: 0x6c989020, 0x261af: 0x6cea7e20, + 0x261b0: 0x6d3d6620, 0x261b1: 0x6cf62820, 0x261b2: 0x6d1b5820, 0x261b3: 0x6c6db620, + 0x261b4: 0x6cea5420, 0x261b7: 0x6c453220, + 0x261b8: 0x6c620a20, + // Block 0x987, offset 0x261c0 + 0x261cf: 0x6d3ba820, + 0x261d2: 0x6ce5f220, + 0x261d4: 0x6d33e220, 0x261d6: 0x6c604420, + 0x261da: 0x6d1c8220, 0x261db: 0x6cf0aa20, + 0x261dd: 0x6c593c20, 0x261de: 0x6ce68620, 0x261df: 0x6c150620, + 0x261e2: 0x6c7c8e20, 0x261e3: 0x6cb86e20, + 0x261e4: 0x6c04fc20, 0x261e5: 0x6c13a420, 0x261e6: 0x6ceb8420, 0x261e7: 0x6ca43020, + 0x261e8: 0x6c6a2420, 0x261ea: 0x6d0c1620, + 0x261ec: 0x6ce8ca20, 0x261ee: 0x6cf1e620, + 0x261f0: 0x6c232020, 0x261f3: 0x6d06fc20, + 0x261f4: 0x6d1b6020, 0x261f7: 0x6c084420, + 0x261fc: 0x6c935820, + // Block 0x988, offset 0x26200 + 0x26201: 0x6d290620, 0x26202: 0x6c265820, + 0x26206: 0x6ca84820, 0x26207: 0x6c71c220, + 0x26208: 0x6c541620, + 0x2620c: 0x6c453a20, + 0x26215: 0x6c541820, 0x26216: 0x6c76b220, 0x26217: 0x6c459620, + 0x26219: 0x6c5b5e20, 0x2621a: 0x6d01e220, + 0x2621d: 0x6cf8ba20, 0x2621e: 0x6c4e2420, 0x2621f: 0x6c9c6820, + 0x26221: 0x6cf25c20, 0x26222: 0x6c5d3620, 0x26223: 0x6ccabc20, + 0x26224: 0x6d034220, 0x26225: 0x6d307220, 0x26226: 0x6c5dea20, + 0x26228: 0x6c45a020, 0x2622b: 0x6cc9e420, + 0x2622c: 0x6c6c4a20, 0x2622d: 0x6cebec20, + 0x26231: 0x6c332420, 0x26232: 0x6c1aca20, + 0x2623d: 0x6cf67e20, + // Block 0x989, offset 0x26240 + 0x26242: 0x6c9c6a20, 0x26243: 0x6d29e020, + 0x26244: 0x6cca8420, + 0x26253: 0x6cea5e20, + 0x26254: 0x6d366820, 0x26255: 0x6cf1ea20, + 0x26258: 0x6d1a9820, 0x26259: 0x6cea8220, 0x2625b: 0x6c1cda20, + 0x2625c: 0x6d2af020, 0x2625e: 0x6cff0a20, 0x2625f: 0x6ca07420, + 0x26260: 0x6c245820, 0x26263: 0x6c0b4e20, + 0x26264: 0x6d04f020, 0x26267: 0x6d154c20, + 0x2626e: 0x6c5a6020, + 0x26270: 0x6d2bf820, 0x26271: 0x6cdd3620, 0x26272: 0x6c5cfe20, 0x26273: 0x6c727e20, + // Block 0x98a, offset 0x26280 + 0x26281: 0x6c245a20, + 0x26284: 0x6c5f4020, 0x26285: 0x6d0a4420, 0x26286: 0x6cdcfe20, 0x26287: 0x6c135e20, + 0x26289: 0x6d18b020, + 0x2628e: 0x6c0c2220, + 0x26292: 0x6c74c220, 0x26293: 0x6c868220, + 0x26296: 0x6cad9a20, + 0x2629b: 0x6d289c20, + 0x2629c: 0x6d134220, 0x2629e: 0x6c0a5a20, 0x2629f: 0x6d310020, + 0x262a0: 0x6d310220, 0x262a2: 0x6c702420, 0x262a3: 0x6d309020, + 0x262a6: 0x6cd60e20, + 0x262aa: 0x6cf6d620, + 0x262b7: 0x6d065820, + 0x262b8: 0x6ca3a620, 0x262b9: 0x6cfb9a20, 0x262ba: 0x6c4bec20, 0x262bb: 0x6cf0d220, + 0x262be: 0x6c60c420, 0x262bf: 0x6cc9a220, + // Block 0x98b, offset 0x262c0 + 0x262c2: 0x6c304220, 0x262c3: 0x6caac820, + 0x262c4: 0x6c327a20, 0x262c5: 0x6d32fc20, 0x262c6: 0x6c7a6420, + 0x262c9: 0x6ca01c20, + 0x262d5: 0x6c05d820, 0x262d6: 0x6c5c5020, + 0x262d9: 0x6d3fc620, + 0x262e8: 0x6cca5c20, 0x262ea: 0x6ce29420, 0x262eb: 0x6d157220, + 0x262ed: 0x6d241620, + 0x262f1: 0x6d123220, 0x262f2: 0x6ca94a20, + 0x262f4: 0x6c1dfa20, 0x262f5: 0x6c5d4820, 0x262f7: 0x6c337620, + 0x262f9: 0x6cb7f220, 0x262fa: 0x6d1d1820, 0x262fb: 0x6c0e3420, + 0x262fc: 0x6ca92e20, 0x262fd: 0x6c5a1a20, + // Block 0x98c, offset 0x26300 + 0x26306: 0x6d1d1a20, + 0x2630a: 0x6c05da20, + 0x2630e: 0x6c4a2820, 0x2630f: 0x6c82f620, + 0x26310: 0x6d421020, + 0x26319: 0x6c15fe20, + 0x26323: 0x6c660a20, + 0x26327: 0x6c9b9220, + 0x26329: 0x6d002820, + 0x2632f: 0x6d035620, + 0x26331: 0x6c849e20, + 0x2633a: 0x6cbc2e20, + 0x2633f: 0x6cf05c20, + // Block 0x98d, offset 0x26340 + 0x26340: 0x6ca37620, 0x26342: 0x6cacee20, + 0x26344: 0x6c829020, 0x26347: 0x6c958220, + 0x2634b: 0x6c946220, + 0x2634d: 0x6c44ea20, 0x2634f: 0x6c946420, + 0x26352: 0x6cc22220, + 0x26356: 0x6c959020, + 0x26358: 0x6ca46820, 0x2635b: 0x6c959220, + 0x2635c: 0x6d273e20, + 0x26362: 0x6cd71a20, + 0x26365: 0x6c9d3e20, 0x26366: 0x6cede820, 0x26367: 0x6c12f420, + 0x26368: 0x6c64a620, 0x26369: 0x6cee2020, + 0x2636f: 0x6c637e20, + 0x26374: 0x6c58c020, + 0x26378: 0x6c894220, 0x26379: 0x6d3f2c20, 0x2637a: 0x6c040a20, 0x2637b: 0x6cd43c20, + 0x2637e: 0x6cecf220, + // Block 0x98e, offset 0x26380 + 0x26382: 0x6cd4c420, + 0x26387: 0x6c4a4e20, + 0x26388: 0x6cf5cc20, 0x2638a: 0x6cc79c20, 0x2638b: 0x6d11fe20, + 0x2638e: 0x6c42c220, + 0x26395: 0x6d26d220, + 0x26398: 0x6d1da820, 0x26399: 0x6cec3c20, 0x2639a: 0x6c0f4620, + 0x2639f: 0x6d034e20, + 0x263a2: 0x6cb0c620, 0x263a3: 0x6c0f7820, + 0x263a6: 0x6c4d7e20, 0x263a7: 0x6d2d5220, + 0x263a8: 0x6cf33020, 0x263aa: 0x6d138420, 0x263ab: 0x6c0ab820, + 0x263ac: 0x6c4d8620, + 0x263b8: 0x6c1c0220, 0x263bb: 0x6d360620, + 0x263bd: 0x6ca5dc20, + // Block 0x98f, offset 0x263c0 + 0x263c1: 0x6cf3d420, 0x263c2: 0x6c006e20, + 0x263c8: 0x6c006a20, 0x263c9: 0x6d229220, 0x263ca: 0x6c1c7020, + 0x263cd: 0x6c6eac20, 0x263ce: 0x6d371020, 0x263cf: 0x6d372c20, + 0x263d0: 0x6d372e20, 0x263d1: 0x6c70ee20, + 0x263d6: 0x6c4dd820, + 0x263da: 0x6cb24c20, + 0x263dd: 0x6d11a620, + 0x263e3: 0x6d1f1e20, + 0x263e4: 0x6cb25420, 0x263e6: 0x6ca11020, + 0x263ec: 0x6d429e20, 0x263ed: 0x6cb38e20, 0x263ef: 0x6d091220, + 0x263f0: 0x6c7bc420, 0x263f1: 0x6d17bc20, 0x263f2: 0x6cb39020, + 0x263fb: 0x6d3c9c20, + // Block 0x990, offset 0x26400 + 0x26403: 0x6ca5fa20, + 0x26404: 0x6cc0b020, 0x26405: 0x6c23f820, + 0x2640c: 0x6d11cc20, + 0x26411: 0x6c3b9820, + 0x26415: 0x6cf9f420, 0x26417: 0x6c677c20, + 0x26418: 0x6c13b220, 0x2641b: 0x6d000e20, + 0x2641c: 0x6c13b420, + 0x26422: 0x6c1a5020, 0x26423: 0x6c257e20, + 0x26427: 0x6cbf7c20, + 0x26429: 0x6d245220, 0x2642b: 0x6d21d820, + 0x2642f: 0x6cf21620, + 0x26431: 0x6c13c020, 0x26432: 0x6d22ae20, + 0x26439: 0x6d425420, 0x2643a: 0x6c29fc20, + 0x2643d: 0x6c73a820, 0x2643e: 0x6c29fe20, 0x2643f: 0x6d1c4c20, + // Block 0x991, offset 0x26440 + 0x26441: 0x6c3cd420, + 0x26445: 0x6cf27a20, + 0x26448: 0x6c6cf620, 0x26449: 0x6cb76e20, 0x2644b: 0x6cbe0e20, + 0x2644d: 0x6c7dee20, 0x2644f: 0x6cdf9e20, + 0x26450: 0x6cfa9420, 0x26452: 0x6ce46420, + 0x26454: 0x6c7df620, 0x26456: 0x6ce53a20, + 0x26458: 0x6c556420, 0x26459: 0x6d39aa20, 0x2645a: 0x6d2d7620, 0x2645b: 0x6cde5820, + 0x2645d: 0x6ce46e20, 0x2645e: 0x6cde6820, 0x2645f: 0x6cde8020, + 0x26460: 0x6c574820, 0x26461: 0x6d0dc220, 0x26462: 0x6ce61620, + 0x26464: 0x6ce61820, 0x26465: 0x6cde8220, + 0x2646c: 0x6c581020, 0x2646e: 0x6c63e620, 0x2646f: 0x6cb7e020, + 0x26471: 0x6cdeae20, + 0x26474: 0x6cdfc220, 0x26475: 0x6c57ce20, + 0x26478: 0x6d3bf620, 0x26479: 0x6c572220, + 0x2647c: 0x6c800c20, + // Block 0x992, offset 0x26480 + 0x26486: 0x6d420420, 0x26487: 0x6d169820, + 0x26488: 0x6c3dfe20, 0x26489: 0x6cf4bc20, 0x2648b: 0x6c3e0020, + 0x2648d: 0x6c2f5620, 0x2648e: 0x6cde3c20, + 0x26496: 0x6c17b820, + 0x26499: 0x6cc64220, 0x2649a: 0x6cc35620, + 0x2649c: 0x6c438420, + 0x264a1: 0x6c3e6620, 0x264a2: 0x6c2c4c20, 0x264a3: 0x6c2dc620, + 0x264a4: 0x6d1e3020, 0x264a6: 0x6c643e20, + 0x264a9: 0x6c8f8e20, + 0x264ac: 0x6d1e3220, 0x264ad: 0x6cafe020, 0x264af: 0x6c5d7820, + 0x264b0: 0x6cbf3020, 0x264b2: 0x6c38a020, 0x264b3: 0x6cf3d620, + 0x264b4: 0x6ce74e20, 0x264b5: 0x6c4f7e20, + 0x264b8: 0x6cdfac20, + 0x264be: 0x6c525020, + // Block 0x993, offset 0x264c0 + 0x264c4: 0x6ce56220, + 0x264c8: 0x6d388e20, 0x264cb: 0x6c045420, + 0x264cc: 0x6d01e420, 0x264cd: 0x6c29c620, 0x264cf: 0x6c6c4c20, + 0x264d5: 0x6c54ec20, 0x264d6: 0x6c06b620, + 0x264d8: 0x6c2fb220, + 0x264dc: 0x6caac420, 0x264dd: 0x6cf0c620, 0x264de: 0x6d218c20, + 0x264e0: 0x6d039c20, 0x264e1: 0x6c3ee020, 0x264e2: 0x6cfd0020, 0x264e3: 0x6cb7c420, + 0x264e4: 0x6ce87820, 0x264e7: 0x6c609420, + 0x264e9: 0x6d1d4620, 0x264eb: 0x6c2ae420, + 0x264ec: 0x6ceeb020, 0x264ed: 0x6cf6ae20, 0x264ef: 0x6cac0220, + 0x264f1: 0x6cd12020, 0x264f2: 0x6d1fec20, + 0x264f4: 0x6c005220, 0x264f5: 0x6c66d220, 0x264f7: 0x6c466020, + 0x264f8: 0x6cc93020, + 0x264fc: 0x6c462220, 0x264ff: 0x6ccc6e20, + // Block 0x994, offset 0x26500 + 0x26500: 0x6ce13a20, + 0x26507: 0x6c92f220, + 0x26508: 0x6c027820, 0x2650a: 0x6cb7ee20, 0x2650b: 0x6d04fc20, + 0x2650d: 0x6c271020, + 0x26511: 0x6c382a20, 0x26512: 0x6cf0f420, + 0x26514: 0x6c341020, 0x26515: 0x6c8a3a20, 0x26516: 0x6c386620, 0x26517: 0x6c5a1c20, + 0x26518: 0x6c74dc20, 0x26519: 0x6cdec020, 0x2651a: 0x6d422020, 0x2651b: 0x6cc53020, + 0x2651c: 0x6c117a20, 0x2651d: 0x6ce2c020, + 0x26520: 0x6c57d020, 0x26521: 0x6d05fe20, 0x26523: 0x6d2dae20, + 0x26527: 0x6c41f420, + 0x2652a: 0x6caeea20, 0x2652b: 0x6c118020, + 0x2652c: 0x6d005820, 0x2652d: 0x6c26d020, + 0x26531: 0x6c62d020, + 0x26536: 0x6c854820, + 0x26539: 0x6cac9020, + 0x2653d: 0x6c8ffa20, 0x2653e: 0x6c877620, 0x2653f: 0x6cf7c220, + // Block 0x995, offset 0x26540 + 0x26540: 0x6ce2d620, 0x26543: 0x6c8dac20, + 0x26548: 0x6c855820, 0x26549: 0x6cc4a220, 0x2654a: 0x6c8df420, + 0x2654e: 0x6c4bca20, + 0x26554: 0x6cb30a20, 0x26555: 0x6ca11220, 0x26556: 0x6cabf020, + 0x26559: 0x6c03b420, + 0x26561: 0x6cb62820, + 0x26564: 0x6d0cc420, + 0x2656a: 0x6cec3e20, 0x2656b: 0x6c020c20, + 0x2656d: 0x6ca04a20, 0x2656e: 0x6c9fca20, 0x2656f: 0x6d0ab220, + 0x26570: 0x6c9b9420, 0x26573: 0x6c48d620, + 0x26576: 0x6c682420, + 0x2657b: 0x6c410a20, + // Block 0x996, offset 0x26580 + 0x26581: 0x6c110a20, 0x26582: 0x6cf4ac20, 0x26583: 0x6d301820, + 0x26584: 0x6cc58820, 0x26585: 0x6c79b420, + 0x26594: 0x6d2f8a20, 0x26595: 0x6d37a220, 0x26596: 0x6cc00a20, 0x26597: 0x6c4c1420, + 0x26598: 0x6c456a20, 0x26599: 0x6cb40220, 0x2659a: 0x6c566c20, 0x2659b: 0x6c9e0820, + 0x2659e: 0x6ce45a20, + 0x265a3: 0x6cee0020, + 0x265b8: 0x6d3a0020, 0x265b9: 0x6c268a20, 0x265ba: 0x6d048e20, 0x265bb: 0x6ca2d420, + 0x265be: 0x6c72de20, + // Block 0x997, offset 0x265c0 + 0x265c1: 0x6ca71a20, + 0x265c8: 0x6c567820, 0x265c9: 0x6ccbd420, + 0x265dc: 0x6d33b820, 0x265df: 0x6cdde420, + 0x265e1: 0x6cd7d820, + 0x265e5: 0x6d170820, + 0x265ed: 0x6cbf1020, 0x265ee: 0x6d35c820, 0x265ef: 0x6c939220, + 0x265f0: 0x6cc79e20, 0x265f2: 0x6cb5ac20, 0x265f3: 0x6d224020, + 0x265f4: 0x6d386a20, 0x265f5: 0x6d0fa620, 0x265f6: 0x6cfc0420, 0x265f7: 0x6ca1cc20, + 0x265f8: 0x6c1d9a20, 0x265f9: 0x6c5aa820, 0x265fa: 0x6c6f6420, 0x265fb: 0x6c6fec20, + 0x265fc: 0x6cb19220, + // Block 0x998, offset 0x26600 + 0x26601: 0x6c699220, 0x26603: 0x6c48c620, + 0x26605: 0x6ca0fe20, + 0x26610: 0x6cf5ce20, 0x26611: 0x6cb43220, + 0x2662f: 0x6c61d420, + 0x26636: 0x6cf1da20, 0x26637: 0x6c071620, + 0x26638: 0x6d15ea20, 0x26639: 0x6c3e6a20, 0x2663a: 0x6cd7e420, 0x2663b: 0x6c72f020, + 0x2663c: 0x6c61f620, 0x2663e: 0x6ca69a20, + // Block 0x999, offset 0x26640 + 0x26640: 0x6c07b620, + 0x26645: 0x6d06c620, + 0x26648: 0x6cbdd220, 0x26649: 0x6c0ef820, + 0x2664c: 0x6cede620, 0x2664d: 0x6d30f620, 0x2664f: 0x6cf2e620, + 0x26650: 0x6ccea420, 0x26651: 0x6d2a8020, 0x26652: 0x6d101820, + 0x26655: 0x6cd98a20, 0x26656: 0x6ca82020, + 0x2665b: 0x6c098620, + 0x26663: 0x6c242420, + 0x26664: 0x6cbab220, + 0x2666a: 0x6cffe620, 0x2666b: 0x6d33d620, + 0x2666c: 0x6ccf1020, 0x2666f: 0x6d360820, + 0x26670: 0x6cae7020, + // Block 0x99a, offset 0x26680 + 0x2668f: 0x6c2e1e20, + 0x26696: 0x6cf2f820, + 0x26698: 0x6d352020, 0x26699: 0x6c098820, 0x2669b: 0x6c3b7020, + 0x266a5: 0x6c052a20, + 0x266aa: 0x6cc06c20, 0x266ab: 0x6ca63a20, + 0x266ac: 0x6c0f0620, 0x266ad: 0x6c33f220, 0x266af: 0x6cd2d020, + 0x266b0: 0x6d05a220, 0x266b1: 0x6c16ac20, 0x266b2: 0x6d05a420, 0x266b3: 0x6d128020, + 0x266b4: 0x6c9c5620, + 0x266b8: 0x6d02d620, 0x266b9: 0x6d3d6820, 0x266ba: 0x6c3ff620, + 0x266bd: 0x6cb06020, 0x266be: 0x6d095e20, + // Block 0x99b, offset 0x266c0 + 0x266c0: 0x6d235020, 0x266c1: 0x6cfb6020, 0x266c2: 0x6d235220, 0x266c3: 0x6d213420, + 0x266c5: 0x6c709a20, 0x266c6: 0x6cddec20, 0x266c7: 0x6c797c20, + 0x266ca: 0x6d32ce20, 0x266cb: 0x6c9b1a20, + 0x266cc: 0x6c428420, + 0x266d2: 0x6ca28a20, 0x266d3: 0x6cf7ea20, + 0x266d4: 0x6c09aa20, 0x266d6: 0x6c3ff820, + 0x266dc: 0x6cfff420, + 0x266e0: 0x6c6f7620, 0x266e3: 0x6c468820, + 0x266f0: 0x6c1b2820, 0x266f1: 0x6c6f7820, 0x266f2: 0x6c6f7a20, + 0x266f5: 0x6ccbf820, 0x266f7: 0x6c3a0820, + // Block 0x99c, offset 0x26700 + 0x2672b: 0x6c3e8c20, + 0x2672f: 0x6ced8a20, + 0x26730: 0x6d05a620, 0x26731: 0x6c0e7620, + // Block 0x99d, offset 0x26740 + 0x26741: 0x6c504820, 0x26743: 0x6d00c420, + 0x26744: 0x6cb11820, 0x26745: 0x6d227420, 0x26747: 0x6ce4ae20, + 0x26748: 0x6cb00020, 0x2674a: 0x6cd2d220, 0x2674b: 0x6c7afc20, + 0x2674c: 0x6c5ef020, 0x2674f: 0x6d2be420, + 0x26750: 0x6ca3cc20, 0x26751: 0x6ca20620, 0x26753: 0x6c3ea620, + 0x26754: 0x6c326820, 0x26757: 0x6cd13e20, + 0x26758: 0x6c13ee20, 0x2675a: 0x6c1b3820, 0x2675b: 0x6c4b0820, + 0x2675c: 0x6c9f6620, 0x2675d: 0x6ce0c220, 0x2675e: 0x6c044c20, 0x2675f: 0x6cbac220, + 0x26761: 0x6d3d7420, 0x26762: 0x6cf0ac20, 0x26763: 0x6d0a1e20, + 0x26765: 0x6c9e9620, 0x26766: 0x6d290820, 0x26767: 0x6d1f4a20, + 0x26769: 0x6d204c20, 0x2676b: 0x6cccee20, + 0x2676c: 0x6c514220, 0x2676d: 0x6c93a220, 0x2676e: 0x6d347820, + 0x26772: 0x6c6e9020, 0x26773: 0x6d317020, + 0x26776: 0x6c9b2620, 0x26777: 0x6d1f4c20, + 0x26779: 0x6cf30020, 0x2677a: 0x6c038620, + 0x2677d: 0x6c737820, 0x2677e: 0x6cc7b220, 0x2677f: 0x6c23f220, + // Block 0x99e, offset 0x26780 + 0x26780: 0x6d33fc20, + 0x26789: 0x6c557620, 0x2678a: 0x6d0f5c20, + 0x2678c: 0x6c75d020, 0x2678d: 0x6ccf1c20, 0x2678e: 0x6c79f220, + 0x26791: 0x6cb9a820, + 0x26794: 0x6c9b2820, + 0x2679a: 0x6ce58c20, + // Block 0x99f, offset 0x267c0 + 0x267d0: 0x6ca84a20, + 0x267df: 0x6c1b3a20, + 0x267e1: 0x6d047220, 0x267e3: 0x6c5d3820, + 0x267e6: 0x6c2b8020, 0x267e7: 0x6c80d620, + 0x267e9: 0x6d2a1a20, 0x267ea: 0x6c130a20, 0x267eb: 0x6cdd8420, + 0x267ec: 0x6d412c20, 0x267ed: 0x6cdbd020, 0x267ef: 0x6cf9e020, + 0x267f1: 0x6d01e620, + 0x267f4: 0x6c6b1220, 0x267f5: 0x6d1f5820, 0x267f7: 0x6c46ca20, + 0x267f8: 0x6c451620, + 0x267fc: 0x6c75d820, 0x267fd: 0x6c5a5e20, 0x267fe: 0x6c607420, 0x267ff: 0x6cb3ca20, + // Block 0x9a0, offset 0x26800 + 0x26800: 0x6cf37820, 0x26802: 0x6d183420, + 0x26805: 0x6ca3a420, 0x26807: 0x6cc71820, + 0x26808: 0x6ca40820, 0x2680a: 0x6cb2c020, 0x2680b: 0x6ccd9420, + 0x2680c: 0x6c2dd820, 0x2680d: 0x6c607620, 0x2680e: 0x6c571420, 0x2680f: 0x6c335620, + 0x26810: 0x6c79a020, 0x26811: 0x6cde8620, 0x26813: 0x6c53c620, + 0x26815: 0x6cd4f820, + 0x26819: 0x6c526a20, 0x2681a: 0x6c3bc020, + 0x26832: 0x6c79fa20, + // Block 0x9a1, offset 0x26840 + 0x26859: 0x6ca70220, + 0x2685d: 0x6c1e9e20, + 0x26866: 0x6cbb5a20, + 0x26872: 0x6cf8bc20, 0x26873: 0x6c558020, + 0x26874: 0x6cd99620, 0x26875: 0x6cf30a20, 0x26877: 0x6c4d7620, + 0x26878: 0x6cc7b820, 0x26879: 0x6c9b3020, 0x2687b: 0x6cca2420, + 0x2687d: 0x6cf3de20, 0x2687f: 0x6d1f6420, + // Block 0x9a2, offset 0x26880 + 0x26881: 0x6cdfba20, 0x26882: 0x6cd01220, + 0x26886: 0x6cb71220, + 0x26888: 0x6c4c8420, 0x26889: 0x6cb87420, 0x2688a: 0x6cfad020, + 0x2688f: 0x6cdbd620, + 0x26890: 0x6c92b020, 0x26893: 0x6cb52620, + 0x26894: 0x6c2ddc20, 0x26897: 0x6cb64020, + 0x26898: 0x6c63dc20, 0x26899: 0x6d1f6620, 0x2689a: 0x6cf79e20, 0x2689b: 0x6c177a20, + 0x268a1: 0x6c9d7e20, 0x268a2: 0x6c911820, 0x268a3: 0x6c08f220, + 0x268aa: 0x6cadec20, + 0x268ae: 0x6d318e20, 0x268af: 0x6cd01420, + 0x268b0: 0x6c15da20, 0x268b1: 0x6c403a20, + 0x268b6: 0x6cc13820, 0x268b7: 0x6cd82220, + 0x268ba: 0x6d417a20, + // Block 0x9a3, offset 0x268c0 + 0x268eb: 0x6d2fd620, + 0x268fd: 0x6cb01220, + // Block 0x9a4, offset 0x26900 + 0x26900: 0x6c23fa20, + 0x26906: 0x6c42e220, 0x26907: 0x6c31b620, + 0x26909: 0x6c3da420, 0x2690a: 0x6c492620, 0x2690b: 0x6ccae620, + 0x2690c: 0x6cda2a20, 0x2690d: 0x6c65da20, 0x2690e: 0x6cb3e020, + 0x26910: 0x6c11ac20, 0x26911: 0x6c085020, 0x26912: 0x6ca20c20, 0x26913: 0x6d2f7420, + 0x26914: 0x6cff9a20, 0x26916: 0x6c715c20, 0x26917: 0x6cd50620, + 0x26918: 0x6c65dc20, 0x26919: 0x6c844e20, 0x2691b: 0x6c203e20, + 0x2691c: 0x6c81e220, 0x2691e: 0x6c51ea20, 0x2691f: 0x6c55bc20, + 0x26920: 0x6c473220, 0x26921: 0x6d2f0c20, 0x26922: 0x6c6b3620, 0x26923: 0x6cfe5620, + 0x26925: 0x6c317820, 0x26926: 0x6c4e3220, 0x26927: 0x6c63e820, + 0x26928: 0x6cfe5820, 0x26929: 0x6c60ae20, 0x2692a: 0x6cd56c20, 0x2692b: 0x6c812e20, + 0x2692c: 0x6c5f4220, 0x2692d: 0x6ccd0e20, + 0x26930: 0x6ce1ee20, 0x26931: 0x6d3e8e20, 0x26932: 0x6cd69620, + 0x26934: 0x6c60b020, 0x26935: 0x6c1f7820, 0x26936: 0x6c628020, 0x26937: 0x6cd01c20, + 0x26938: 0x6c8c6820, 0x26939: 0x6c8a2020, 0x2693b: 0x6cca2a20, + 0x2693d: 0x6c019220, 0x2693e: 0x6cc87c20, + // Block 0x9a5, offset 0x26940 + 0x26940: 0x6ce37820, 0x26941: 0x6c28b820, 0x26943: 0x6c589c20, + 0x26945: 0x6cc99420, + // Block 0x9a6, offset 0x26980 + 0x26986: 0x6cc8a420, 0x26987: 0x6cf38020, + 0x26988: 0x6c729620, 0x26989: 0x6c589e20, 0x2698a: 0x6c838620, 0x2698b: 0x6c92dc20, + 0x2698e: 0x6cdfbe20, 0x2698f: 0x6d2b9620, + 0x26993: 0x6cb9ca20, + 0x26997: 0x6cf6d820, + 0x269a1: 0x6c22a220, 0x269a2: 0x6ccf2620, + 0x269a7: 0x6cc99620, + 0x269aa: 0x6c99bc20, 0x269ab: 0x6cc1da20, + 0x269ad: 0x6c0f7a20, 0x269ae: 0x6c41f020, + 0x269b0: 0x6cbcea20, 0x269b1: 0x6c739a20, 0x269b2: 0x6c290e20, 0x269b3: 0x6c16cc20, + 0x269b4: 0x6d0fde20, 0x269b5: 0x6c518020, 0x269b7: 0x6c5f5c20, + 0x269b9: 0x6c0df820, 0x269bb: 0x6c9a3020, + 0x269bf: 0x6c33b820, + // Block 0x9a7, offset 0x269c0 + 0x269c0: 0x6c02b020, 0x269c1: 0x6c6dd820, 0x269c2: 0x6c92f420, 0x269c3: 0x6c9e6620, + 0x269c4: 0x6c2d8a20, 0x269c5: 0x6c51f220, 0x269c7: 0x6c650420, + 0x269ca: 0x6c575e20, 0x269cb: 0x6c466220, + 0x269ce: 0x6c92f620, 0x269cf: 0x6c3f0a20, + 0x269d0: 0x6c5b7220, 0x269d2: 0x6d2b6620, + 0x269d4: 0x6c6d6220, 0x269d5: 0x6cd83420, 0x269d6: 0x6cc43e20, + 0x269dc: 0x6c28cc20, 0x269de: 0x6ced9e20, 0x269df: 0x6c0b5620, + 0x269e4: 0x6c63ee20, + 0x269eb: 0x6c284e20, + 0x269ec: 0x6c6f8a20, 0x269ed: 0x6cfb9c20, 0x269ee: 0x6c0f7c20, + // Block 0x9a8, offset 0x26a00 + 0x26a0f: 0x6cfa0020, + 0x26a11: 0x6c0c3220, + 0x26a15: 0x6cb3a820, + 0x26a18: 0x6ccae820, 0x26a19: 0x6c076620, 0x26a1a: 0x6ccc8020, 0x26a1b: 0x6cf02e20, + 0x26a1d: 0x6c123e20, 0x26a1e: 0x6c92f820, + 0x26a29: 0x6c28ce20, 0x26a2b: 0x6c47e820, + 0x26a2c: 0x6d289e20, 0x26a2d: 0x6c055820, 0x26a2e: 0x6c423820, + 0x26a31: 0x6c175420, 0x26a32: 0x6c62ae20, 0x26a33: 0x6c8ab620, + 0x26a35: 0x6cbf7e20, 0x26a36: 0x6c66f420, 0x26a37: 0x6c930a20, + 0x26a38: 0x6c32a620, 0x26a39: 0x6cdb8a20, 0x26a3a: 0x6d116020, 0x26a3b: 0x6d1b1620, + 0x26a3d: 0x6cdec220, 0x26a3e: 0x6d116220, 0x26a3f: 0x6c6de020, + // Block 0x9a9, offset 0x26a40 + 0x26a40: 0x6c1ebc20, 0x26a41: 0x6c3f1220, 0x26a42: 0x6d25c220, 0x26a43: 0x6ccebc20, + 0x26a45: 0x6c0e3620, 0x26a46: 0x6c299e20, 0x26a47: 0x6cd3f820, + 0x26a4a: 0x6c916420, 0x26a4b: 0x6cbcf220, + 0x26a4c: 0x6c955c20, 0x26a4d: 0x6cb3ae20, 0x26a4f: 0x6c9b7a20, + 0x26a50: 0x6c6b6620, 0x26a53: 0x6c5f7220, + 0x26a56: 0x6c930c20, + // Block 0x9aa, offset 0x26a80 + 0x26a84: 0x6c172a20, 0x26a85: 0x6c9f0020, 0x26a86: 0x6c9b7c20, 0x26a87: 0x6c660220, + 0x26a8a: 0x6c114020, + 0x26a8c: 0x6cdb5220, + 0x26a94: 0x6c51fe20, 0x26a95: 0x6cc9aa20, 0x26a97: 0x6d3eae20, + 0x26a98: 0x6c795e20, 0x26a99: 0x6c452220, 0x26a9a: 0x6cd83a20, + 0x26aa0: 0x6ce3a420, 0x26aa1: 0x6d2e8e20, 0x26aa2: 0x6d026420, 0x26aa3: 0x6cd70020, + 0x26aa4: 0x6c1bcc20, 0x26aa5: 0x6d1ec620, 0x26aa6: 0x6c91f820, 0x26aa7: 0x6c9c1a20, + 0x26aa8: 0x6c8b6020, 0x26aa9: 0x6cd8f620, + 0x26aac: 0x6cf71820, 0x26aad: 0x6c38da20, 0x26aae: 0x6c3db820, 0x26aaf: 0x6cd08820, + 0x26ab0: 0x6ce3a620, 0x26ab1: 0x6c14a420, 0x26ab2: 0x6d270620, + 0x26ab4: 0x6c3dba20, 0x26ab5: 0x6c670220, 0x26ab6: 0x6c2cb020, + 0x26aba: 0x6d011a20, 0x26abb: 0x6c281220, + 0x26abf: 0x6d34b020, + // Block 0x9ab, offset 0x26ac0 + 0x26ac3: 0x6d075620, + 0x26ac8: 0x6ca89820, 0x26ac9: 0x6c397420, 0x26aca: 0x6c9b8820, 0x26acb: 0x6c9fd420, + 0x26afe: 0x6c90d220, 0x26aff: 0x6c31e820, + // Block 0x9ac, offset 0x26b00 + 0x26b01: 0x6d2e9620, 0x26b02: 0x6c671020, 0x26b03: 0x6c4f2e20, + 0x26b04: 0x6c28e220, 0x26b05: 0x6ccbb220, 0x26b06: 0x6c671220, 0x26b07: 0x6ce03e20, + 0x26b08: 0x6c696c20, 0x26b09: 0x6cb34220, 0x26b0b: 0x6cb2e420, + 0x26b0d: 0x6d3bf820, 0x26b0f: 0x6c8a4c20, + 0x26b10: 0x6d3f6620, 0x26b12: 0x6d3dd820, + 0x26b14: 0x6c56de20, + 0x26b19: 0x6cf92020, 0x26b1b: 0x6c9b9620, + 0x26b1c: 0x6c72ba20, 0x26b1d: 0x6c9f0c20, 0x26b1e: 0x6cfbcc20, + 0x26b20: 0x6c7d3820, 0x26b21: 0x6c9b9820, 0x26b22: 0x6c653420, + 0x26b26: 0x6caa0a20, + 0x26b28: 0x6c2cb220, 0x26b29: 0x6ccad220, + // Block 0x9ad, offset 0x26b40 + 0x26b4f: 0x6c1f8c20, + 0x26b50: 0x6d34bc20, 0x26b51: 0x6cb9e220, 0x26b52: 0x6c93c420, + 0x26b54: 0x6d3ddc20, + 0x26b58: 0x6d42b020, 0x26b59: 0x6c4e4820, 0x26b5a: 0x6cdc1820, 0x26b5b: 0x6c46e220, + 0x26b5d: 0x6c1e3c20, 0x26b5e: 0x6c62da20, 0x26b5f: 0x6d194820, + 0x26b60: 0x6d21f020, + 0x26b68: 0x6caa0c20, 0x26b69: 0x6ca66420, 0x26b6a: 0x6cc93620, + 0x26b6e: 0x6c8c0820, + 0x26b71: 0x6ca93820, + // Block 0x9ae, offset 0x26b80 + 0x26b8d: 0x6cbc1620, 0x26b8e: 0x6d117c20, 0x26b8f: 0x6c409c20, + 0x26b90: 0x6cd6b620, 0x26b91: 0x6c7d3e20, 0x26b92: 0x6cc21220, 0x26b93: 0x6c304a20, + 0x26b94: 0x6cd58a20, + 0x26b9a: 0x6c84c020, 0x26b9b: 0x6c719220, + 0x26b9c: 0x6cc8bc20, + 0x26ba0: 0x6d2c6c20, + 0x26ba4: 0x6cff5420, + 0x26bb8: 0x6c9ae220, 0x26bb9: 0x6cd29820, 0x26bba: 0x6c2cfc20, 0x26bbb: 0x6c878e20, + 0x26bbc: 0x6c2b0420, 0x26bbd: 0x6d29c420, 0x26bbf: 0x6c958420, + // Block 0x9af, offset 0x26bc0 + 0x26bc0: 0x6c11c620, 0x26bc3: 0x6c023c20, + 0x26bc6: 0x6c663620, + 0x26bc8: 0x6c2e5020, 0x26bcb: 0x6d1cd820, + 0x26bd6: 0x6d197220, 0x26bd7: 0x6c294620, + 0x26bd8: 0x6caa1220, 0x26bda: 0x6d272620, + 0x26bee: 0x6c855620, 0x26bef: 0x6c84e220, + 0x26bf0: 0x6c56f620, 0x26bf2: 0x6d206420, + 0x26bfa: 0x6ca48420, + // Block 0x9b0, offset 0x26c00 + 0x26c02: 0x6c194a20, + 0x26c09: 0x6c3c9220, 0x26c0a: 0x6c0cd220, + 0x26c0f: 0x6c97d820, + 0x26c10: 0x6c424a20, 0x26c11: 0x6c5e6020, 0x26c13: 0x6c241c20, + 0x26c15: 0x6d200020, + 0x26c18: 0x6d206620, + 0x26c1c: 0x6d057c20, + 0x26c21: 0x6d06b020, 0x26c22: 0x6c561820, 0x26c23: 0x6c915020, + 0x26c25: 0x6cf9b820, 0x26c26: 0x6d177420, + 0x26c2e: 0x6c561e20, 0x26c2f: 0x6c569020, + 0x26c30: 0x6d3f0a20, + 0x26c37: 0x6c458c20, + 0x26c38: 0x6ce99220, 0x26c39: 0x6cf36a20, 0x26c3a: 0x6c8d2020, 0x26c3b: 0x6c472020, + 0x26c3c: 0x6d37be20, + // Block 0x9b1, offset 0x26c40 + 0x26c44: 0x6c915820, + 0x26c48: 0x6d412e20, + 0x26c4c: 0x6ce76a20, 0x26c4d: 0x6cf97020, 0x26c4e: 0x6c515c20, + 0x26c53: 0x6d26e220, + 0x26c59: 0x6ca40c20, 0x26c5a: 0x6c0f4820, 0x26c5b: 0x6c54fa20, + 0x26c5c: 0x6cb7e220, 0x26c5d: 0x6cd53a20, 0x26c5e: 0x6cbadc20, 0x26c5f: 0x6d38ae20, + 0x26c60: 0x6d122620, 0x26c61: 0x6c473420, + 0x26c65: 0x6c049e20, 0x26c66: 0x6c76ec20, + 0x26c6e: 0x6c517620, 0x26c6f: 0x6c628420, + 0x26c70: 0x6c55be20, 0x26c71: 0x6d0cde20, + 0x26c76: 0x6c212020, 0x26c77: 0x6c2f8620, + 0x26c78: 0x6cbfce20, 0x26c79: 0x6c543620, + 0x26c7c: 0x6c507420, 0x26c7f: 0x6d413220, + // Block 0x9b2, offset 0x26c80 + 0x26c81: 0x6cfbb820, + 0x26c84: 0x6cfa5220, 0x26c85: 0x6cf91820, + 0x26c88: 0x6ccb8420, + 0x26c8c: 0x6c445a20, 0x26c8d: 0x6cf92220, + 0x26c91: 0x6c445e20, + 0x26c94: 0x6c93c620, 0x26c96: 0x6c446020, 0x26c97: 0x6c78ea20, + 0x26c99: 0x6cd48a20, 0x26c9a: 0x6d3b5020, + 0x26c9c: 0x6ce2de20, 0x26c9d: 0x6d0b7820, 0x26c9e: 0x6ca67c20, + 0x26ca6: 0x6c95e220, 0x26ca7: 0x6cdbae20, + 0x26caa: 0x6c159e20, + 0x26cad: 0x6cf4cc20, 0x26caf: 0x6d208220, + 0x26cb9: 0x6d2a4420, 0x26cbb: 0x6d174420, + 0x26cbc: 0x6cf5d220, 0x26cbd: 0x6c533620, 0x26cbe: 0x6cc2ce20, 0x26cbf: 0x6cee0c20, + // Block 0x9b3, offset 0x26cc0 + 0x26cc0: 0x6c1b9820, 0x26cc1: 0x6cf87420, 0x26cc2: 0x6ce4e020, 0x26cc3: 0x6d27e420, + 0x26cc5: 0x6d13e220, 0x26cc6: 0x6c600620, 0x26cc7: 0x6c5aaa20, + 0x26cc8: 0x6c3d1620, 0x26cca: 0x6c3f5420, + 0x26ccd: 0x6c600820, 0x26cce: 0x6d080a20, + 0x26cd1: 0x6cdf6c20, 0x26cd3: 0x6c324e20, + 0x26cd7: 0x6d255620, + 0x26cdb: 0x6c2c3220, + 0x26cde: 0x6d3a6620, 0x26cdf: 0x6cdf0620, + 0x26ce1: 0x6cc70c20, 0x26ce2: 0x6d090a20, 0x26ce3: 0x6d232020, + 0x26ce4: 0x6c394e20, 0x26ce5: 0x6c06ca20, 0x26ce7: 0x6cc24420, + 0x26ce9: 0x6c109620, 0x26cea: 0x6c635420, 0x26ceb: 0x6d2c2c20, + 0x26ced: 0x6caa5a20, 0x26cee: 0x6ccf1420, + 0x26cf2: 0x6c860220, + // Block 0x9b4, offset 0x26d00 + 0x26d04: 0x6c4af620, 0x26d05: 0x6c48de20, 0x26d07: 0x6c276420, + 0x26d0f: 0x6c40fa20, + 0x26d12: 0x6c22cc20, + 0x26d14: 0x6d0d9220, 0x26d15: 0x6cd92220, 0x26d16: 0x6cd38820, + 0x26d18: 0x6c7a9c20, 0x26d19: 0x6d352e20, 0x26d1a: 0x6ce75020, 0x26d1b: 0x6cc19620, + 0x26d1c: 0x6c364220, 0x26d1e: 0x6d03ea20, 0x26d1f: 0x6cc7b020, + 0x26d20: 0x6d213820, 0x26d23: 0x6d17c020, + 0x26d24: 0x6d17c220, 0x26d25: 0x6d06e420, 0x26d26: 0x6c3d2c20, 0x26d27: 0x6c43f820, + 0x26d2c: 0x6c512a20, 0x26d2d: 0x6d19e820, 0x26d2f: 0x6c53be20, + 0x26d31: 0x6c349820, + 0x26d3d: 0x6d03ec20, 0x26d3e: 0x6c38a220, + // Block 0x9b5, offset 0x26d40 + 0x26d49: 0x6cb50020, 0x26d4a: 0x6ccc0220, + 0x26d4c: 0x6c326a20, 0x26d4d: 0x6c2c7220, 0x26d4e: 0x6c83fa20, 0x26d4f: 0x6d180620, + 0x26d50: 0x6cf78c20, 0x26d51: 0x6c451420, 0x26d52: 0x6ce75820, 0x26d53: 0x6c77c020, + 0x26d54: 0x6c53c420, 0x26d55: 0x6c7db820, 0x26d56: 0x6ca84c20, 0x26d57: 0x6c1b3c20, + 0x26d58: 0x6ce34e20, 0x26d5a: 0x6ce75a20, + 0x26d60: 0x6c83fc20, 0x26d61: 0x6ca35c20, + 0x26d71: 0x6d2d8220, 0x26d72: 0x6c06cc20, + // Block 0x9b6, offset 0x26d80 + 0x26d81: 0x6ce59220, 0x26d83: 0x6d289420, + 0x26d84: 0x6c367420, 0x26d85: 0x6cd47620, 0x26d86: 0x6c798820, 0x26d87: 0x6caeb820, + 0x26d88: 0x6c402020, 0x26d89: 0x6c929820, 0x26d8a: 0x6d01e820, 0x26d8b: 0x6d01ea20, + 0x26d8c: 0x6d04e820, 0x26d8d: 0x6c929a20, 0x26d8e: 0x6ce50a20, 0x26d8f: 0x6cde8820, + 0x26d90: 0x6c22da20, 0x26d91: 0x6cc12a20, 0x26d93: 0x6c402220, + 0x26d94: 0x6d340620, 0x26d96: 0x6d01ec20, 0x26d97: 0x6d408220, + 0x26d98: 0x6c3abe20, 0x26d99: 0x6c9f7420, 0x26d9a: 0x6d038c20, + 0x26d9d: 0x6ce76c20, 0x26d9e: 0x6cb60220, + 0x26da0: 0x6cb15c20, 0x26da2: 0x6cdc5620, 0x26da3: 0x6c37a020, + 0x26da7: 0x6c562c20, + 0x26dbb: 0x6cd92e20, + 0x26dbd: 0x6c0cb020, 0x26dbe: 0x6c2f6620, 0x26dbf: 0x6c04d220, + // Block 0x9b7, offset 0x26dc0 + 0x26dc0: 0x6cd1e220, 0x26dc1: 0x6d01ee20, 0x26dc2: 0x6cff9420, 0x26dc3: 0x6c3a6620, + 0x26dd2: 0x6c202620, 0x26dd3: 0x6cd67020, + 0x26dd4: 0x6d10b220, 0x26dd5: 0x6c74a220, 0x26dd6: 0x6cd14820, + 0x26dd8: 0x6d1eb220, 0x26dd9: 0x6c396c20, + 0x26ddc: 0x6c7c9a20, 0x26ddd: 0x6c2c9820, 0x26ddf: 0x6c990220, + 0x26de0: 0x6c6b2420, 0x26de2: 0x6d0cc820, + 0x26de5: 0x6ceeb420, + 0x26de8: 0x6cca7220, 0x26de9: 0x6c6b2620, 0x26dea: 0x6d219220, 0x26deb: 0x6cf0c820, + 0x26dec: 0x6c369220, 0x26ded: 0x6cc31220, 0x26dee: 0x6c6f2e20, 0x26def: 0x6c3cba20, + 0x26df0: 0x6c8fa620, 0x26df1: 0x6c2ee220, 0x26df2: 0x6cb12420, + 0x26df4: 0x6c891420, 0x26df5: 0x6c559820, 0x26df6: 0x6c93fa20, + 0x26dff: 0x6c2d7a20, + // Block 0x9b8, offset 0x26e00 + 0x26e03: 0x6c255e20, + 0x26e04: 0x6ca1e420, + 0x26e15: 0x6cedea20, 0x26e16: 0x6c72fe20, 0x26e17: 0x6c782e20, + 0x26e18: 0x6d0cca20, 0x26e19: 0x6c693420, + 0x26e21: 0x6c45b020, 0x26e23: 0x6cc6b620, + 0x26e24: 0x6cdce220, 0x26e25: 0x6ccdb620, + 0x26e28: 0x6c1b5420, 0x26e2a: 0x6cb65220, 0x26e2b: 0x6cdd9820, + 0x26e2d: 0x6d134420, 0x26e2e: 0x6d2a5420, 0x26e2f: 0x6cc39620, + 0x26e30: 0x6d2e1820, 0x26e31: 0x6c035a20, 0x26e32: 0x6d40d620, 0x26e33: 0x6cdd9a20, + 0x26e34: 0x6d309220, 0x26e35: 0x6cf8e820, 0x26e37: 0x6c1eec20, + 0x26e38: 0x6c694820, 0x26e39: 0x6d41d220, 0x26e3a: 0x6c43aa20, 0x26e3b: 0x6cf52420, + 0x26e3e: 0x6c94c020, 0x26e3f: 0x6c60b420, + // Block 0x9b9, offset 0x26e40 + 0x26e42: 0x6d00ec20, 0x26e43: 0x6d00ee20, + 0x26e46: 0x6c30f620, + 0x26e4b: 0x6cbfc620, + 0x26e51: 0x6cb2d020, 0x26e53: 0x6c8ea420, + 0x26e65: 0x6c6b3820, 0x26e67: 0x6c5c4020, + 0x26e6b: 0x6ccc7a20, + 0x26e78: 0x6d34a620, 0x26e79: 0x6c00e620, 0x26e7a: 0x6d074a20, 0x26e7b: 0x6c0a7820, + 0x26e7d: 0x6d126820, 0x26e7e: 0x6ca6d820, 0x26e7f: 0x6d3a2e20, + // Block 0x9ba, offset 0x26e80 + 0x26e81: 0x6cdb4220, 0x26e83: 0x6d010220, + 0x26e84: 0x6d241820, 0x26e85: 0x6cc14820, + 0x26e88: 0x6d40e020, 0x26e89: 0x6d341820, 0x26e8a: 0x6d2ee420, 0x26e8b: 0x6c94c420, + 0x26e8c: 0x6cf03020, 0x26e8d: 0x6c1ce820, 0x26e8e: 0x6c9d9620, + 0x26e90: 0x6c5f5e20, 0x26e92: 0x6cdb4420, 0x26e93: 0x6d12b620, + 0x26e94: 0x6cf7ac20, 0x26e95: 0x6ce96420, 0x26e96: 0x6c886c20, 0x26e97: 0x6d082e20, + 0x26e99: 0x6cf52c20, + 0x26e9f: 0x6c990c20, + 0x26eac: 0x6c538e20, 0x26eaf: 0x6c94c620, + 0x26eb0: 0x6c31ce20, 0x26eb1: 0x6c23ba20, 0x26eb2: 0x6c152e20, 0x26eb3: 0x6c92fc20, + 0x26eb4: 0x6cdb4620, + // Block 0x9bb, offset 0x26ec0 + 0x26ec0: 0x6c94c820, + 0x26ec6: 0x6d37d220, 0x26ec7: 0x6c847420, + 0x26ec8: 0x6c3ae220, 0x26eca: 0x6c6e3820, 0x26ecb: 0x6c7d2c20, + 0x26ecc: 0x6d18f420, 0x26ecd: 0x6c576620, 0x26ece: 0x6c258020, + 0x26ed0: 0x6d243c20, 0x26ed1: 0x6c083620, 0x26ed2: 0x6cea3020, 0x26ed3: 0x6cd58020, + 0x26ed4: 0x6c27a220, 0x26ed5: 0x6cf38a20, 0x26ed6: 0x6c22ea20, 0x26ed7: 0x6ca95e20, + 0x26ed8: 0x6c29a020, 0x26ed9: 0x6d40ee20, 0x26eda: 0x6c4e4220, + 0x26edc: 0x6cb02e20, 0x26edd: 0x6c204620, + 0x26ee0: 0x6c328620, 0x26ee1: 0x6cabe020, + 0x26ee4: 0x6d39d620, 0x26ee6: 0x6d011620, 0x26ee7: 0x6d30ac20, + 0x26ee8: 0x6cbcf420, 0x26ee9: 0x6d07dc20, 0x26eeb: 0x6ccb0820, + // Block 0x9bc, offset 0x26f00 + 0x26f00: 0x6c0a9620, 0x26f02: 0x6c407c20, + 0x26f08: 0x6c86d820, + 0x26f0e: 0x6c359620, + 0x26f10: 0x6d126e20, 0x26f11: 0x6cd58420, 0x26f13: 0x6ccb8620, + 0x26f15: 0x6cb54a20, 0x26f16: 0x6c4cf220, 0x26f17: 0x6ccb8820, + 0x26f19: 0x6c408620, 0x26f1a: 0x6c990e20, + 0x26f1c: 0x6c827620, 0x26f1d: 0x6d2db420, + 0x26f28: 0x6c14a620, + 0x26f2d: 0x6cf0fc20, + 0x26f3d: 0x6c827820, 0x26f3f: 0x6d2b6c20, + // Block 0x9bd, offset 0x26f40 + 0x26f40: 0x6d1c0e20, 0x26f41: 0x6c010220, 0x26f42: 0x6d005c20, + 0x26f44: 0x6c0aaa20, + 0x26f4b: 0x6c155a20, + 0x26f4e: 0x6cb03620, 0x26f4f: 0x6c23c220, + 0x26f50: 0x6c8b6620, 0x26f51: 0x6cb69c20, 0x26f53: 0x6c62d420, + 0x26f54: 0x6c6df220, 0x26f55: 0x6c302820, 0x26f56: 0x6c3a4620, 0x26f57: 0x6d159220, + 0x26f58: 0x6ce97220, + 0x26f68: 0x6c9bf620, 0x26f69: 0x6c11be20, 0x26f6a: 0x6d0b3c20, + 0x26f72: 0x6d103c20, + 0x26f74: 0x6ce6a220, + 0x26f78: 0x6d34be20, 0x26f7a: 0x6d027c20, 0x26f7b: 0x6c942220, + 0x26f7d: 0x6c875420, 0x26f7f: 0x6c991620, + // Block 0x9be, offset 0x26f80 + 0x26f82: 0x6cfa1820, + 0x26f85: 0x6cda4420, + 0x26f96: 0x6cda6c20, 0x26f97: 0x6d097e20, + 0x26f9d: 0x6c877a20, 0x26f9e: 0x6d25d820, + 0x26fa1: 0x6d2e4020, 0x26fa3: 0x6cdef220, + 0x26fa4: 0x6d083a20, 0x26fa5: 0x6cf12020, 0x26fa6: 0x6d139620, 0x26fa7: 0x6cad1a20, + 0x26fa8: 0x6c991820, 0x26fa9: 0x6ce3b620, 0x26faa: 0x6cb22a20, + 0x26fac: 0x6c328e20, 0x26fad: 0x6cc0a820, 0x26fae: 0x6d162c20, + 0x26fb3: 0x6ceb6020, + 0x26fb4: 0x6c14aa20, 0x26fb7: 0x6c6d7620, + 0x26fbc: 0x6c35aa20, + // Block 0x9bf, offset 0x26fc0 + 0x26fc3: 0x6c157420, + 0x26fc4: 0x6d1c4420, 0x26fc5: 0x6c8dae20, 0x26fc7: 0x6cfc5e20, + 0x26fc9: 0x6cb55a20, 0x26fcb: 0x6d272220, + 0x26fcc: 0x6c94ce20, 0x26fcd: 0x6d1cda20, 0x26fce: 0x6cc21a20, + 0x26fd2: 0x6c3a7820, 0x26fd3: 0x6d3eca20, + 0x26fd9: 0x6cbe6220, + 0x26fdd: 0x6ca94020, 0x26fde: 0x6cf13220, 0x26fdf: 0x6cd6c220, + 0x26fe1: 0x6c40a420, + 0x26fe4: 0x6ca1aa20, 0x26fe5: 0x6ca1ac20, 0x26fe6: 0x6ceb6820, 0x26fe7: 0x6c14ae20, + 0x26fe8: 0x6d2a1220, + 0x26fee: 0x6c84da20, 0x26fef: 0x6c84e420, + 0x26ff1: 0x6cfa2020, 0x26ff2: 0x6c733420, + 0x26ff4: 0x6ca41a20, 0x26ff5: 0x6c9db420, + 0x26ff8: 0x6c5a3e20, 0x26ffa: 0x6cd6f620, + 0x26ffc: 0x6d066420, 0x26fff: 0x6c3a7a20, + // Block 0x9c0, offset 0x27000 + 0x27001: 0x6d029420, + 0x27006: 0x6cdefa20, 0x27007: 0x6d1e6a20, + 0x27009: 0x6d2e4420, + 0x27011: 0x6cbb3420, 0x27012: 0x6ca46a20, + 0x27014: 0x6c8c9420, + 0x27018: 0x6c948220, 0x27019: 0x6cfc6e20, 0x2701a: 0x6c3f2c20, + 0x2701c: 0x6c8df820, + 0x27020: 0x6ccadc20, 0x27022: 0x6c5ca620, + 0x27028: 0x6ce66020, 0x2702a: 0x6cbe7020, + 0x2702c: 0x6c598a20, 0x2702e: 0x6c01b220, + 0x27035: 0x6c97c220, 0x27037: 0x6ca6b220, + 0x2703b: 0x6c4c8020, + 0x2703c: 0x6cab8820, 0x2703f: 0x6cfe4620, + // Block 0x9c1, offset 0x27040 + 0x27041: 0x6c6c5620, + 0x27046: 0x6d32f620, + 0x27048: 0x6ca2cc20, 0x2704b: 0x6cca5e20, + 0x2704c: 0x6c56d020, 0x2704e: 0x6d40f020, 0x2704f: 0x6c5b7620, + 0x27052: 0x6c5f7420, + 0x27056: 0x6d138a20, + 0x27066: 0x6d03de20, + 0x27069: 0x6c7e6c20, 0x2706a: 0x6d232220, 0x2706b: 0x6c745820, + 0x27071: 0x6cd5da20, 0x27072: 0x6d32d620, + 0x27074: 0x6d1e4e20, 0x27076: 0x6c439c20, + 0x27078: 0x6c66ae20, 0x27079: 0x6d034820, + 0x2707c: 0x6c5aec20, 0x2707f: 0x6cd67820, + // Block 0x9c2, offset 0x27080 + 0x27082: 0x6c1cf020, 0x27083: 0x6c4f8a20, + 0x27088: 0x6c8a6420, + 0x2708d: 0x6c674a20, 0x2708f: 0x6c456c20, + 0x27091: 0x6d3d3020, + 0x27097: 0x6cb6de20, + 0x2709c: 0x6cb8b820, 0x2709e: 0x6c30e220, 0x2709f: 0x6cb30220, + 0x270a2: 0x6c567a20, + 0x270a5: 0x6ca98c20, 0x270a7: 0x6cb76420, + 0x270a8: 0x6c2db420, 0x270a9: 0x6c2db620, 0x270ab: 0x6c85b220, + 0x270ae: 0x6d046220, + 0x270bd: 0x6ca2da20, 0x270bf: 0x6d32a620, + // Block 0x9c3, offset 0x270c0 + 0x270c0: 0x6c7e6e20, 0x270c1: 0x6d35cc20, 0x270c3: 0x6c35b220, + 0x270c4: 0x6c0e6620, 0x270c5: 0x6cb30620, 0x270c6: 0x6d058420, 0x270c7: 0x6d1e7a20, + 0x270c8: 0x6c223c20, 0x270c9: 0x6c85e220, + 0x270cc: 0x6cad5820, 0x270cf: 0x6d053a20, + 0x270db: 0x6cb4a820, + 0x270dd: 0x6c17e420, 0x270de: 0x6cb78420, + 0x270e1: 0x6d177620, 0x270e3: 0x6ce31c20, + 0x270e4: 0x6c348820, 0x270e5: 0x6c8f9020, 0x270e7: 0x6c668020, + 0x270ed: 0x6d2e6020, 0x270ee: 0x6d261220, + 0x270f6: 0x6d210820, + 0x270f8: 0x6c44ca20, 0x270fa: 0x6c546c20, + 0x270fe: 0x6cb6f820, + // Block 0x9c4, offset 0x27100 + 0x27100: 0x6ca28c20, 0x27101: 0x6c592a20, 0x27102: 0x6c906a20, 0x27103: 0x6cf89420, + 0x27104: 0x6c356c20, 0x27105: 0x6c80fe20, 0x27106: 0x6c3aae20, 0x27107: 0x6ced2820, + 0x27109: 0x6c259620, 0x2710b: 0x6caea420, + 0x2710f: 0x6c262c20, + 0x27110: 0x6cf22420, + 0x27121: 0x6c430620, + 0x27125: 0x6c254820, + 0x27128: 0x6cb7a620, 0x27129: 0x6c83fe20, 0x2712a: 0x6cbcc820, 0x2712b: 0x6cba6020, + 0x2712c: 0x6c798220, 0x2712d: 0x6c082220, 0x2712f: 0x6cd46c20, + 0x27137: 0x6ceea220, + // Block 0x9c5, offset 0x27140 + 0x27144: 0x6cccf220, + 0x2714f: 0x6d3e6e20, + 0x27152: 0x6ce40c20, 0x27153: 0x6cb90e20, + 0x27154: 0x6c31ac20, 0x27157: 0x6ce8dc20, + 0x2715a: 0x6ceeaa20, + 0x2715e: 0x6c558420, 0x2715f: 0x6d038e20, + 0x27161: 0x6ccd0220, 0x27162: 0x6d354a20, + 0x27167: 0x6c1bb820, + 0x27178: 0x6d394a20, 0x27179: 0x6cf23620, 0x2717a: 0x6c1b4c20, 0x2717b: 0x6cdd9420, + 0x2717c: 0x6d020220, 0x2717e: 0x6c78d220, + // Block 0x9c6, offset 0x27180 + 0x27181: 0x6ccca220, 0x27182: 0x6cd1f220, 0x27183: 0x6cd47820, + 0x27185: 0x6c6bfc20, + 0x27189: 0x6c431c20, 0x2718a: 0x6c93b220, + 0x27194: 0x6d020420, + 0x2719a: 0x6d354c20, + 0x2719e: 0x6c978220, + 0x271a0: 0x6cd67420, 0x271a1: 0x6c78da20, 0x271a3: 0x6c2dfe20, + 0x271a4: 0x6d141a20, 0x271a6: 0x6cdb2420, 0x271a7: 0x6c206420, + 0x271b1: 0x6c256820, 0x271b2: 0x6cebb220, + 0x271b5: 0x6d022020, + 0x271bd: 0x6d082620, + // Block 0x9c7, offset 0x271c0 + 0x271c2: 0x6c51f420, 0x271c3: 0x6c74ce20, + 0x271c6: 0x6ce43020, 0x271c7: 0x6c3ada20, + 0x271c9: 0x6d355620, 0x271ca: 0x6cd3e820, 0x271cb: 0x6ce9c620, + 0x271ce: 0x6c1cea20, + 0x271d0: 0x6ce43220, 0x271d1: 0x6d2e8820, 0x271d2: 0x6c527820, + 0x271d4: 0x6cc1de20, 0x271d5: 0x6cef4220, 0x271d7: 0x6c33ba20, + 0x271d8: 0x6c067220, + 0x271dc: 0x6c8a2c20, + 0x271e4: 0x6cd83620, + 0x271ea: 0x6c0c8420, 0x271eb: 0x6d023420, + 0x271ec: 0x6c0cfc20, 0x271ee: 0x6c23d820, + 0x271f2: 0x6c72ac20, 0x271f3: 0x6c518820, + 0x271f7: 0x6c7d3020, + 0x271f8: 0x6d1dc820, + // Block 0x9c8, offset 0x27200 + 0x27200: 0x6cd62220, + 0x2720d: 0x6ca89a20, 0x2720f: 0x6d21da20, + 0x27210: 0x6d3dca20, 0x27211: 0x6c9b8c20, 0x27212: 0x6c55f220, + 0x27215: 0x6c8b6220, + 0x2721d: 0x6c6a4020, 0x2721e: 0x6d048220, + 0x27223: 0x6d0e0020, + 0x27229: 0x6c6b7a20, 0x2722a: 0x6c7eb820, 0x2722b: 0x6cd62e20, + 0x2722c: 0x6c6b7c20, 0x2722d: 0x6c828220, + 0x27230: 0x6d40fc20, 0x27232: 0x6cd40420, + 0x27238: 0x6cef6c20, 0x27239: 0x6c318620, 0x2723a: 0x6cdb6420, + // Block 0x9c9, offset 0x27240 + 0x27243: 0x6d012e20, + 0x27244: 0x6cc4f620, + 0x2724c: 0x6c964e20, + 0x27251: 0x6cb96420, + 0x27258: 0x6ca48620, 0x27259: 0x6c8dec20, + 0x2725c: 0x6c630620, + 0x27260: 0x6ca03e20, 0x27263: 0x6c476220, + 0x27268: 0x6d080c20, + 0x2726c: 0x6d058e20, + 0x27271: 0x6c0f3620, + 0x2727c: 0x6ceebc20, + // Block 0x9ca, offset 0x27280 + 0x27282: 0x6c7a6e20, + 0x27286: 0x6cecf020, + 0x27288: 0x6c143c20, 0x2728a: 0x6c996820, 0x2728b: 0x6c789a20, + 0x2728e: 0x6c22c420, + 0x27292: 0x6cfcbc20, 0x27293: 0x6ca11620, + 0x2729a: 0x6c5cc420, 0x2729b: 0x6c162c20, + 0x2729c: 0x6cd1c620, 0x2729d: 0x6d31dc20, 0x2729e: 0x6c364420, 0x2729f: 0x6c9c5a20, + 0x272a1: 0x6cd1c820, 0x272a2: 0x6cc11420, 0x272a3: 0x6cd4e420, + 0x272a5: 0x6c220420, 0x272a6: 0x6d0d9420, + 0x272a9: 0x6c54dc20, 0x272aa: 0x6cb50220, 0x272ab: 0x6d366c20, + 0x272ac: 0x6c599c20, + 0x272b4: 0x6d353820, 0x272b6: 0x6d1fda20, + 0x272bc: 0x6c435420, 0x272bd: 0x6d11c420, 0x272be: 0x6cb3cc20, + // Block 0x9cb, offset 0x272c0 + 0x272c7: 0x6d153620, + 0x272c8: 0x6c1a8420, 0x272c9: 0x6c625020, 0x272cb: 0x6c007420, + 0x272cd: 0x6c308620, 0x272cf: 0x6cdc6220, + 0x272d1: 0x6c701c20, + 0x272d8: 0x6cb7c820, 0x272d9: 0x6c884420, 0x272da: 0x6d085620, + 0x272dc: 0x6c8a7620, + 0x272e1: 0x6d285820, 0x272e2: 0x6d085a20, 0x272e3: 0x6c23e620, + 0x272e4: 0x6cb10020, 0x272e6: 0x6c7c9c20, + 0x272e8: 0x6ce37a20, 0x272e9: 0x6c58e020, 0x272ea: 0x6c280020, 0x272eb: 0x6c4b7820, + 0x272ec: 0x6c188a20, 0x272ee: 0x6cce3c20, 0x272ef: 0x6c628620, + 0x272f4: 0x6c891c20, 0x272f5: 0x6c76b620, 0x272f6: 0x6cd17820, + 0x272f8: 0x6c30cc20, 0x272f9: 0x6d1f8020, 0x272fa: 0x6cb66220, + 0x272fc: 0x6cffc620, + // Block 0x9cc, offset 0x27300 + 0x27302: 0x6d18f620, 0x27303: 0x6c90c420, + 0x27306: 0x6c206a20, + 0x2730b: 0x6c81e620, + 0x2730c: 0x6c42ec20, + 0x27310: 0x6d2ba220, 0x27312: 0x6cef6420, + 0x27316: 0x6c653620, + 0x2731b: 0x6d1c3220, + 0x2731c: 0x6c38f420, 0x2731d: 0x6c877c20, 0x2731e: 0x6cb94e20, + 0x27322: 0x6d125420, + 0x27326: 0x6c7c5a20, 0x27327: 0x6cef7a20, + 0x27329: 0x6cc42620, + 0x2732c: 0x6cffca20, 0x2732d: 0x6cc42820, + 0x27330: 0x6c551820, + 0x27335: 0x6c342020, 0x27336: 0x6c1f1e20, + 0x27339: 0x6ccfd620, + 0x2733c: 0x6d3d5620, 0x2733d: 0x6c355e20, 0x2733e: 0x6c61f820, + // Block 0x9cd, offset 0x27340 + 0x27341: 0x6cdfde20, 0x27343: 0x6cabc420, + 0x2734b: 0x6c6be220, + 0x2734c: 0x6cbc4220, + 0x27351: 0x6cb99620, 0x27352: 0x6c724c20, + 0x27355: 0x6cc06e20, 0x27356: 0x6ceb2220, + 0x2735a: 0x6caafa20, 0x2735b: 0x6cd8c620, + 0x2735f: 0x6d14fe20, + 0x27361: 0x6c47a220, 0x27362: 0x6c5d3220, 0x27363: 0x6cabda20, + 0x27364: 0x6d3e5a20, 0x27366: 0x6c685220, + 0x27369: 0x6cf80420, 0x2736a: 0x6cceb820, + 0x2736c: 0x6d153820, 0x2736d: 0x6d369e20, + 0x27375: 0x6c952420, 0x27377: 0x6d38a020, + 0x27378: 0x6c74a420, 0x27379: 0x6ce00620, 0x2737a: 0x6cab0c20, 0x2737b: 0x6c728020, + 0x2737c: 0x6c559c20, 0x2737e: 0x6d36c220, + // Block 0x9ce, offset 0x27380 + 0x27383: 0x6c088820, + 0x2738d: 0x6c1c7220, 0x2738e: 0x6d07d020, 0x2738f: 0x6c60b620, + 0x27390: 0x6c48a020, 0x27391: 0x6c715e20, 0x27392: 0x6cf31620, 0x27393: 0x6ceb4a20, + 0x27395: 0x6cc09820, 0x27396: 0x6ceebe20, 0x27397: 0x6c32a220, + 0x27399: 0x6cd47c20, 0x2739b: 0x6d31fe20, + 0x2739c: 0x6ca55420, 0x2739f: 0x6cf8f620, + 0x273a0: 0x6d30a420, 0x273a1: 0x6d371620, 0x273a3: 0x6ca2ea20, + 0x273a8: 0x6c650620, + 0x273ae: 0x6d114e20, 0x273af: 0x6c4c9820, + 0x273b2: 0x6c2c0820, + 0x273b4: 0x6c5e1c20, 0x273b5: 0x6c6de220, + 0x273bc: 0x6c74ec20, 0x273bd: 0x6d270820, + // Block 0x9cf, offset 0x273c0 + 0x273c4: 0x6c60ee20, 0x273c6: 0x6cdb5c20, + 0x273c8: 0x6c654020, 0x273ca: 0x6c7d9820, 0x273cb: 0x6cf33220, + 0x273cc: 0x6c7c1e20, 0x273cd: 0x6c0c6020, 0x273ce: 0x6c751220, + 0x273d1: 0x6c0ad620, 0x273d3: 0x6c157a20, + 0x273d5: 0x6d3ecc20, 0x273d6: 0x6c87c220, + 0x273da: 0x6c3d0e20, 0x273db: 0x6cb9f020, + 0x273dc: 0x6d0d4020, 0x273de: 0x6ce08c20, 0x273df: 0x6ca0d820, + 0x273e3: 0x6c79e420, + 0x273e4: 0x6cf5d420, + 0x273ee: 0x6c569220, 0x273ef: 0x6c569420, + 0x273f1: 0x6c3e7020, + 0x273f4: 0x6d104c20, 0x273f5: 0x6c4cea20, 0x273f7: 0x6cc57020, + 0x273f8: 0x6d1b4c20, 0x273f9: 0x6c3c4420, 0x273fa: 0x6c75b620, + 0x273fc: 0x6d27a620, 0x273ff: 0x6d0a8820, + // Block 0x9d0, offset 0x27400 + 0x27401: 0x6cf87c20, + 0x2740e: 0x6cf96220, + 0x27411: 0x6c4f7620, + 0x2741a: 0x6c569620, + 0x2741d: 0x6c54d020, 0x2741e: 0x6cb4aa20, 0x2741f: 0x6c385020, + 0x27424: 0x6c636420, 0x27427: 0x6d150420, + 0x2742d: 0x6ceac820, 0x2742e: 0x6ca2e220, + 0x27438: 0x6d1a6a20, 0x27439: 0x6d1b5a20, + // Block 0x9d1, offset 0x27440 + 0x27443: 0x6c622a20, + 0x27444: 0x6cee5620, 0x27445: 0x6cd3a420, 0x27446: 0x6c330c20, 0x27447: 0x6c34fc20, + 0x27449: 0x6ceb3020, 0x2744a: 0x6cebe620, 0x2744b: 0x6c863e20, + 0x2744f: 0x6cc55220, + 0x27452: 0x6c22d020, 0x27453: 0x6d070220, + 0x27454: 0x6d389020, 0x27455: 0x6d3f5a20, + 0x2745c: 0x6cee2a20, 0x2745d: 0x6d0b5820, 0x2745f: 0x6c622c20, + 0x27460: 0x6c179e20, + 0x27469: 0x6c606020, + 0x27475: 0x6ccd5420, 0x27476: 0x6ce8de20, + 0x27478: 0x6c0cf620, 0x27479: 0x6cf8be20, 0x2747a: 0x6caf7e20, 0x2747b: 0x6d2cd420, + 0x2747e: 0x6c5c0620, + // Block 0x9d2, offset 0x27480 + 0x27480: 0x6cdd3020, 0x27482: 0x6c51da20, + 0x27484: 0x6d265220, 0x27486: 0x6cf37c20, + 0x27488: 0x6c8d4020, 0x2748a: 0x6d2cd620, 0x2748b: 0x6c574a20, + 0x27497: 0x6c151220, + 0x2749f: 0x6c367620, + 0x274a1: 0x6c18e020, + 0x274a7: 0x6cdc6620, + 0x274a9: 0x6ce51420, + 0x274b0: 0x6d36c420, 0x274b1: 0x6ce41620, 0x274b2: 0x6c022e20, 0x274b3: 0x6d3d9020, + 0x274b4: 0x6d3f6020, 0x274b5: 0x6c783020, 0x274b7: 0x6ccb4e20, + 0x274b8: 0x6ce4c220, 0x274b9: 0x6c92b620, + 0x274be: 0x6ccd2620, 0x274bf: 0x6d2c9020, + // Block 0x9d3, offset 0x274c0 + 0x274c3: 0x6c1cde20, + 0x274c5: 0x6d0ea620, + 0x274d2: 0x6ca25420, 0x274d3: 0x6c54fc20, + 0x274da: 0x6c1ad420, + 0x274dd: 0x6cdb0a20, + 0x274e3: 0x6ca51420, + 0x274e6: 0x6c60b820, 0x274e7: 0x6c346020, + 0x274e8: 0x6c547e20, 0x274ea: 0x6c23de20, 0x274eb: 0x6d2c0220, + 0x274ec: 0x6d1a9c20, 0x274ee: 0x6cffbe20, + 0x274f0: 0x6c0bbc20, 0x274f1: 0x6c085220, 0x274f2: 0x6c7e9a20, + 0x274f4: 0x6c1ad820, 0x274f6: 0x6cb87820, + 0x274f8: 0x6c015220, 0x274f9: 0x6cd1fe20, + 0x274fc: 0x6c1c7420, + // Block 0x9d4, offset 0x27500 + 0x27505: 0x6caa6a20, 0x27507: 0x6c628820, + 0x27513: 0x6cab9220, + 0x27515: 0x6cf97a20, + 0x27518: 0x6c14a020, 0x2751a: 0x6c005620, + 0x2751d: 0x6cd17c20, 0x2751e: 0x6c518220, + 0x27520: 0x6c60ca20, 0x27521: 0x6c1ade20, 0x27522: 0x6cf8fa20, 0x27523: 0x6d32fe20, + 0x27526: 0x6cde0020, + 0x27528: 0x6c96e220, 0x2752b: 0x6caf9a20, + 0x2752e: 0x6d05f220, 0x2752f: 0x6cba2a20, + 0x27539: 0x6cfa4e20, + // Block 0x9d5, offset 0x27540 + 0x2754a: 0x6d241a20, + 0x27551: 0x6c6b4620, 0x27552: 0x6cfa5420, 0x27553: 0x6c91ee20, + 0x27555: 0x6cbcf620, 0x27557: 0x6c145220, + 0x2755b: 0x6d107020, + 0x2755c: 0x6c62b020, 0x2755d: 0x6ccc3620, 0x2755e: 0x6c912020, + 0x27560: 0x6c5f7620, 0x27561: 0x6d373020, 0x27562: 0x6cee5c20, + 0x27564: 0x6c0a9820, 0x27565: 0x6c015820, 0x27566: 0x6d142a20, 0x27567: 0x6c015a20, + 0x2756c: 0x6c847620, + 0x27579: 0x6cfaec20, + 0x2757e: 0x6c703620, 0x2757f: 0x6ce08420, + // Block 0x9d6, offset 0x27580 + 0x27581: 0x6c507a20, 0x27582: 0x6c520620, + 0x27585: 0x6d2c0620, 0x27586: 0x6d2e2e20, 0x27587: 0x6d191a20, + 0x27588: 0x6cf91a20, 0x2758a: 0x6cf91c20, 0x2758b: 0x6c384420, + 0x2758c: 0x6d0cf620, 0x2758f: 0x6ca25620, + 0x27595: 0x6c474020, + 0x2759e: 0x6d27d020, + 0x275a4: 0x6d384820, 0x275a6: 0x6c160220, 0x275a7: 0x6c208620, + 0x275a8: 0x6c5c8a20, 0x275a9: 0x6d28d620, 0x275aa: 0x6c4c0820, 0x275ab: 0x6c661c20, + 0x275ac: 0x6d0b3e20, + 0x275b0: 0x6cfe6820, 0x275b1: 0x6c520820, + // Block 0x9d7, offset 0x275c0 + 0x275c3: 0x6c28e820, + 0x275c7: 0x6c9df020, + 0x275c8: 0x6ca93a20, 0x275ca: 0x6c9ba620, + 0x275cc: 0x6c8b6e20, 0x275cd: 0x6d396a20, 0x275ce: 0x6cb42220, 0x275cf: 0x6cdf0a20, + 0x275d3: 0x6d1cd020, + 0x275d4: 0x6ce2cc20, 0x275d5: 0x6c4ca220, + 0x275da: 0x6cbb3020, + 0x275dc: 0x6c942420, 0x275dd: 0x6cc9b820, 0x275de: 0x6c8b7020, 0x275df: 0x6c1b6c20, + 0x275e0: 0x6d015020, 0x275e3: 0x6c4ca820, + 0x275e4: 0x6c067e20, 0x275e5: 0x6c964220, 0x275e6: 0x6c73a420, + 0x275ea: 0x6c36e820, + 0x275f3: 0x6c51a820, + 0x275f5: 0x6c9aba20, + 0x275f8: 0x6d028820, 0x275f9: 0x6cb22c20, 0x275fb: 0x6c4dc420, + 0x275fc: 0x6c194420, 0x275fd: 0x6ccdec20, 0x275fe: 0x6c5ca020, + // Block 0x9d8, offset 0x27600 + 0x27606: 0x6d1c4820, + 0x27608: 0x6c663e20, + 0x2760d: 0x6c016620, + 0x27611: 0x6cdef420, 0x27612: 0x6d144220, 0x27613: 0x6ce9dc20, + 0x27617: 0x6c8ef220, + 0x27619: 0x6d425a20, 0x2761b: 0x6c84ec20, + 0x2761d: 0x6cb23420, 0x2761e: 0x6d098420, + 0x27620: 0x6ca5a220, 0x27621: 0x6c315820, + 0x27624: 0x6c806c20, + 0x2762a: 0x6d2d5e20, 0x2762b: 0x6c73e620, + 0x2762c: 0x6d314620, 0x2762d: 0x6c600c20, 0x2762e: 0x6cb8ce20, + 0x27630: 0x6c4da220, 0x27631: 0x6c3b7220, 0x27633: 0x6c4da420, + 0x27634: 0x6c535620, 0x27635: 0x6c514620, 0x27636: 0x6c541a20, + 0x2763a: 0x6d2e7820, 0x2763b: 0x6c1dd420, + 0x2763c: 0x6cdf7e20, 0x2763d: 0x6cba7820, 0x2763f: 0x6ccf7420, + // Block 0x9d9, offset 0x27640 + 0x27640: 0x6d1bee20, 0x27643: 0x6cbd4020, + 0x27646: 0x6c5e0e20, + 0x27648: 0x6cf8fc20, 0x27649: 0x6c51f820, 0x2764a: 0x6cf90820, 0x2764b: 0x6cf97e20, + 0x2764c: 0x6c4fb620, 0x2764d: 0x6c81e820, 0x2764f: 0x6c870c20, + 0x27652: 0x6c19a220, + 0x27656: 0x6c760620, 0x27657: 0x6cf76020, + 0x27658: 0x6c4e7620, + 0x2765e: 0x6c311620, + 0x27660: 0x6c30ae20, 0x27661: 0x6cec9220, + 0x27664: 0x6c30b020, 0x27665: 0x6d293820, 0x27666: 0x6c737a20, + 0x27668: 0x6c90e620, 0x27669: 0x6c1f6220, 0x2766b: 0x6d32ea20, + 0x2766f: 0x6cb64420, + 0x27670: 0x6c770e20, 0x27671: 0x6c5df420, 0x27672: 0x6c7f2420, + 0x2767a: 0x6c410620, + 0x2767c: 0x6cd48220, 0x2767e: 0x6c301a20, + // Block 0x9da, offset 0x27680 + 0x27683: 0x6c90c820, + 0x27684: 0x6ce93e20, 0x27687: 0x6d21ca20, + 0x27688: 0x6cf52e20, 0x2768a: 0x6ce4ce20, + 0x27692: 0x6c4c9e20, + 0x27698: 0x6ce04420, 0x27699: 0x6cb6ae20, + 0x276a0: 0x6c8b8020, 0x276a1: 0x6c87b420, 0x276a3: 0x6d09d020, + 0x276a8: 0x6c452820, 0x276a9: 0x6ce63820, 0x276aa: 0x6c4ea220, 0x276ab: 0x6c1f2a20, + 0x276ad: 0x6cea4c20, 0x276af: 0x6d047a20, + 0x276b0: 0x6d1f3020, 0x276b1: 0x6ca11820, 0x276b2: 0x6c1ba420, + 0x276b4: 0x6c562020, 0x276b5: 0x6c317020, 0x276b7: 0x6ca24420, + 0x276b9: 0x6ca34420, 0x276bb: 0x6c8d0c20, + 0x276bf: 0x6c00ae20, + // Block 0x9db, offset 0x276c0 + 0x276c0: 0x6cfab020, + 0x276c4: 0x6c76e020, 0x276c5: 0x6cd8cc20, 0x276c6: 0x6cca0420, + 0x276ca: 0x6d180e20, + 0x276cf: 0x6d183c20, + 0x276d0: 0x6d000020, 0x276d2: 0x6d340820, 0x276d3: 0x6c313020, + 0x276d8: 0x6c973e20, + 0x276dc: 0x6c950a20, 0x276dd: 0x6c74a820, + 0x276e1: 0x6cbad620, 0x276e2: 0x6c8d4a20, + 0x276e9: 0x6cb12c20, 0x276ea: 0x6c23fc20, 0x276eb: 0x6c351820, + 0x276ec: 0x6d229420, + 0x276f0: 0x6d3d0a20, 0x276f2: 0x6cf8fe20, 0x276f3: 0x6c581620, + 0x276f4: 0x6ca02020, 0x276f5: 0x6ce14420, + 0x276f9: 0x6cb41820, 0x276fb: 0x6c9da420, + 0x276fc: 0x6c979020, 0x276fe: 0x6c48d420, + // Block 0x9dc, offset 0x27700 + 0x27700: 0x6cb93620, 0x27702: 0x6c8bfa20, 0x27703: 0x6c9fd620, + 0x27704: 0x6cf04e20, 0x27705: 0x6c136820, 0x27707: 0x6c56e220, + 0x27708: 0x6cdc0420, 0x2770b: 0x6c72bc20, + 0x2770c: 0x6ccc8420, 0x2770d: 0x6c9ba820, + 0x27717: 0x6cef7620, + 0x27718: 0x6cf75a20, 0x27719: 0x6c8e2a20, + 0x2771c: 0x6c0ad820, 0x2771d: 0x6cf13820, + 0x27721: 0x6c85b420, 0x27722: 0x6d304420, + 0x27724: 0x6d1df220, 0x27725: 0x6c554e20, 0x27726: 0x6cecda20, 0x27727: 0x6c034c20, + 0x27728: 0x6c649220, + 0x2772d: 0x6d426a20, 0x2772e: 0x6d2df220, 0x2772f: 0x6c0e7a20, + 0x27730: 0x6cbfb220, 0x27731: 0x6d0f5a20, + 0x27734: 0x6c300620, 0x27735: 0x6cc19820, + 0x2773a: 0x6caff820, 0x2773b: 0x6d2d2c20, + 0x2773e: 0x6cccf420, 0x2773f: 0x6c46bc20, + // Block 0x9dd, offset 0x27740 + 0x27740: 0x6c0c9020, 0x27741: 0x6d152220, 0x27742: 0x6c3eaa20, + 0x27744: 0x6d034020, 0x27745: 0x6cd3a620, 0x27746: 0x6ce6fc20, + 0x27749: 0x6c2f6220, + 0x2774c: 0x6ce86e20, 0x2774d: 0x6cfef620, 0x2774e: 0x6cf3e020, 0x2774f: 0x6cade420, + 0x27750: 0x6c5ade20, + 0x27755: 0x6c7f2220, + 0x27759: 0x6cd8e220, 0x2775a: 0x6c250220, 0x2775b: 0x6ccc7220, + 0x2775c: 0x6d38f020, 0x2775d: 0x6d2fd820, 0x2775e: 0x6cef3220, 0x2775f: 0x6c7f2620, + 0x27760: 0x6c0a3a20, 0x27763: 0x6c303e20, + 0x27766: 0x6ca51620, 0x27767: 0x6d005420, + 0x27768: 0x6cc54020, 0x27769: 0x6ce98e20, 0x2776a: 0x6cf0d820, 0x2776b: 0x6d1f7020, + 0x2776c: 0x6c9a2820, 0x2776d: 0x6d25b220, 0x2776e: 0x6d384220, + 0x27776: 0x6cd9ea20, + 0x27778: 0x6c474820, 0x27779: 0x6ccee620, 0x2777b: 0x6d2f9220, + 0x2777c: 0x6cb02820, 0x2777f: 0x6ce70820, + // Block 0x9de, offset 0x27780 + 0x27781: 0x6c1ae220, 0x27782: 0x6caedc20, 0x27783: 0x6c153c20, + 0x27784: 0x6d1dca20, 0x27785: 0x6cd6ea20, 0x27787: 0x6cf48420, + 0x27789: 0x6cb03020, 0x2778a: 0x6c596020, + 0x2778c: 0x6c3f1e20, 0x2778e: 0x6c0c9620, + 0x27793: 0x6ca4d020, + 0x27795: 0x6c0c9820, 0x27796: 0x6cf11420, 0x27797: 0x6d1dd620, + 0x27799: 0x6ca52620, 0x2779a: 0x6c48fe20, + 0x277a0: 0x6c879220, 0x277a2: 0x6d035e20, 0x277a3: 0x6d0d2220, + 0x277a4: 0x6cb37420, 0x277a5: 0x6cadca20, + 0x277aa: 0x6cdd5c20, + 0x277ac: 0x6cc5e220, 0x277ad: 0x6ccd3a20, + 0x277b2: 0x6cdd5e20, + 0x277b8: 0x6c27d620, 0x277ba: 0x6c9af020, + // Block 0x9df, offset 0x277c0 + 0x277c3: 0x6cd44820, + 0x277c8: 0x6c46a620, 0x277ca: 0x6c4da620, 0x277cb: 0x6cd39020, + 0x277cc: 0x6d102020, 0x277ce: 0x6c479620, + 0x277db: 0x6c77fe20, + 0x277de: 0x6c709c20, + 0x277e0: 0x6cac2e20, 0x277e1: 0x6c12f820, 0x277e2: 0x6c05b220, 0x277e3: 0x6d047020, + 0x277e4: 0x6c111420, 0x277e7: 0x6c8c2420, + 0x277e8: 0x6c00b020, + 0x277ec: 0x6c9d6220, 0x277ed: 0x6c7f3e20, + 0x277f1: 0x6cfee020, 0x277f3: 0x6ccf1e20, + 0x277fb: 0x6c5d7c20, + 0x277fc: 0x6ca6b420, + // Block 0x9e0, offset 0x27800 + 0x27804: 0x6d335620, 0x27806: 0x6c8c5c20, 0x27807: 0x6d2c4420, + 0x2780a: 0x6d27be20, + 0x2780d: 0x6d071c20, + 0x27814: 0x6c1a2a20, 0x27815: 0x6cf2c020, 0x27816: 0x6cf68620, + 0x27819: 0x6c074820, + 0x2781c: 0x6cce1c20, + 0x27820: 0x6d23d020, 0x27821: 0x6c9d8020, + 0x27832: 0x6c32b020, + 0x27835: 0x6c144a20, 0x27837: 0x6d2b0820, + 0x27838: 0x6c1a8820, 0x2783a: 0x6ce69220, + // Block 0x9e1, offset 0x27840 + 0x27845: 0x6d157020, + 0x2784b: 0x6d10ba20, + 0x2784e: 0x6c7a6620, + 0x27850: 0x6c3b9c20, 0x27851: 0x6d010420, 0x27852: 0x6c1a8a20, + 0x2785b: 0x6c7d2420, + 0x2785f: 0x6c0d6220, + 0x27861: 0x6c90cc20, + 0x27865: 0x6d18fa20, 0x27866: 0x6c9da620, 0x27867: 0x6d024620, + 0x27871: 0x6c4a9c20, 0x27873: 0x6c955e20, + 0x27876: 0x6ccdce20, + 0x2787e: 0x6c717a20, 0x2787f: 0x6c318420, + // Block 0x9e2, offset 0x27880 + 0x27882: 0x6cfaf220, + 0x27885: 0x6d356020, + 0x27888: 0x6c0d9020, + 0x27895: 0x6d356220, 0x27896: 0x6d3bfa20, 0x27897: 0x6d092a20, + 0x27898: 0x6c893020, 0x27899: 0x6cdcb220, + 0x278a6: 0x6c808c20, 0x278a7: 0x6c72cc20, + 0x278a8: 0x6c9df220, 0x278a9: 0x6d0ab420, 0x278aa: 0x6d2ea020, 0x278ab: 0x6c4c0c20, + 0x278b2: 0x6d376820, + 0x278bd: 0x6cf12c20, 0x278be: 0x6cc36a20, 0x278bf: 0x6c14ac20, + // Block 0x9e3, offset 0x278c0 + 0x278c8: 0x6cc63020, 0x278ca: 0x6d272820, + 0x278cc: 0x6d3ece20, + 0x278d0: 0x6c965420, 0x278d1: 0x6c4b3620, 0x278d3: 0x6c19f420, + 0x278d5: 0x6c709e20, 0x278d6: 0x6ce4fe20, 0x278d7: 0x6ced9820, + 0x278db: 0x6d33d820, + 0x278de: 0x6ca42c20, + 0x278e3: 0x6c4db420, + 0x278e8: 0x6cf6b020, 0x278e9: 0x6c8bd420, + 0x278ec: 0x6d0c2e20, 0x278ed: 0x6d074220, + 0x278f2: 0x6c56d220, 0x278f3: 0x6c423620, + 0x278f4: 0x6d074c20, 0x278f6: 0x6cf90a20, + 0x278fa: 0x6c258420, + 0x278fd: 0x6cf92a20, 0x278fe: 0x6c560220, + // Block 0x9e4, offset 0x27900 + 0x27905: 0x6d0c4c20, + 0x2790e: 0x6d170e20, 0x2790f: 0x6c1b1a20, + 0x27910: 0x6c741c20, 0x27912: 0x6d40b220, + 0x2791c: 0x6c699420, 0x2791d: 0x6d178220, 0x2791f: 0x6ce05e20, + 0x27920: 0x6c1c1420, 0x27921: 0x6c037a20, 0x27922: 0x6ce82820, 0x27923: 0x6d3f7a20, + 0x27924: 0x6cc05420, 0x27927: 0x6c1c1620, + 0x27928: 0x6cf7e020, + 0x27930: 0x6ca69c20, 0x27932: 0x6c241420, + 0x27934: 0x6cf44820, 0x27936: 0x6c1f4820, 0x27937: 0x6cda4e20, + 0x27938: 0x6d1df820, 0x27939: 0x6c71bc20, 0x2793a: 0x6c037e20, + 0x2793c: 0x6c229c20, 0x2793d: 0x6c2c6420, 0x2793e: 0x6cac9820, 0x2793f: 0x6c1c2620, + // Block 0x9e5, offset 0x27940 + 0x27941: 0x6cc0ac20, 0x27943: 0x6d0ca420, + 0x2794d: 0x6d2d2e20, + 0x27952: 0x6cfce220, 0x27953: 0x6c084620, + 0x27954: 0x6c7ba620, 0x27955: 0x6cb7a820, 0x27956: 0x6d389220, 0x27957: 0x6c713820, + 0x27958: 0x6cbcca20, 0x27959: 0x6ca13420, 0x2795a: 0x6d258c20, + 0x2795c: 0x6c4b5820, 0x2795d: 0x6d417220, + 0x27967: 0x6cbccc20, + 0x27970: 0x6c558a20, 0x27971: 0x6cc08820, 0x27972: 0x6c4d2220, 0x27973: 0x6c402c20, + 0x27974: 0x6c812a20, 0x27975: 0x6ccc6c20, 0x27976: 0x6cf68820, 0x27977: 0x6c101c20, + 0x27978: 0x6cd3ba20, 0x27979: 0x6d1e5220, 0x2797a: 0x6c49f020, + 0x2797c: 0x6ca85420, 0x2797f: 0x6c545820, + // Block 0x9e6, offset 0x27980 + 0x2798a: 0x6c9d7220, + 0x2798e: 0x6c369420, 0x2798f: 0x6cfb8a20, + 0x27990: 0x6d280020, 0x27991: 0x6d073220, 0x27992: 0x6cbde420, 0x27993: 0x6c301220, + 0x27994: 0x6c838220, 0x27995: 0x6cb7ca20, 0x27996: 0x6c7fb020, 0x27997: 0x6c3ee420, + 0x27998: 0x6cb71420, 0x27999: 0x6c1d3e20, + 0x2799c: 0x6c245c20, 0x2799f: 0x6ca16620, + 0x279a0: 0x6c06b820, + 0x279a4: 0x6c2a2e20, + 0x279a8: 0x6c6b3a20, 0x279a9: 0x6c1d5c20, 0x279aa: 0x6c1c7620, 0x279ab: 0x6d23f820, + 0x279ac: 0x6c24ee20, 0x279ad: 0x6cdb2620, 0x279ae: 0x6ce42420, 0x279af: 0x6cd61020, + 0x279b0: 0x6d2c4c20, 0x279b1: 0x6c3ef820, 0x279b3: 0x6c184620, + 0x279b4: 0x6c3d0c20, 0x279b5: 0x6c543220, 0x279b6: 0x6d2c4e20, + // Block 0x9e7, offset 0x279c0 + 0x279c4: 0x6c6b3c20, 0x279c5: 0x6d2c5020, 0x279c6: 0x6d2d9c20, + 0x279c9: 0x6d0dde20, 0x279ca: 0x6c4d3020, 0x279cb: 0x6cf48220, + 0x279cc: 0x6c576220, 0x279cd: 0x6c2cde20, 0x279ce: 0x6d115420, 0x279cf: 0x6cd9ec20, + 0x279d0: 0x6cb92c20, 0x279d1: 0x6c60cc20, 0x279d2: 0x6d04aa20, 0x279d3: 0x6cb7f020, + 0x279d4: 0x6c758420, 0x279d6: 0x6c4d3220, + 0x279de: 0x6d0dee20, 0x279df: 0x6c6b6820, + 0x279e0: 0x6c24f420, 0x279e2: 0x6ce96a20, 0x279e3: 0x6d2ee620, + 0x279e4: 0x6cb16c20, 0x279e5: 0x6c930e20, 0x279e6: 0x6d342020, 0x279e7: 0x6c1f8820, + 0x279e8: 0x6c9da820, 0x279e9: 0x6cbaec20, 0x279eb: 0x6c892420, + 0x279f2: 0x6c86dc20, + 0x279f6: 0x6c359a20, 0x279f7: 0x6cdb5820, + 0x279f8: 0x6c74f020, 0x279fb: 0x6c717c20, + 0x279fc: 0x6ce03a20, 0x279fd: 0x6c8a4820, 0x279fe: 0x6cca0a20, 0x279ff: 0x6c309220, + // Block 0x9e8, offset 0x27a00 + 0x27a01: 0x6d28d420, 0x27a02: 0x6d34b220, + 0x27a06: 0x6d08ca20, 0x27a07: 0x6c8d8620, + 0x27a0a: 0x6c2abe20, + 0x27a0d: 0x6d2dbe20, 0x27a0e: 0x6d07f020, 0x27a0f: 0x6cbdf220, + 0x27a10: 0x6c69da20, 0x27a11: 0x6cb0da20, + 0x27a14: 0x6c4e6e20, + 0x27a1a: 0x6d21f220, 0x27a1b: 0x6c4ca420, + 0x27a1d: 0x6d0a5420, + 0x27a20: 0x6d0a5620, 0x27a21: 0x6c156c20, 0x27a22: 0x6c6b8020, 0x27a23: 0x6c719420, + 0x27a24: 0x6d0e1820, 0x27a25: 0x6c31f620, 0x27a27: 0x6c53e020, + 0x27a28: 0x6cfd4a20, 0x27a29: 0x6d0a5820, + 0x27a2e: 0x6c8db020, 0x27a2f: 0x6c6b8620, + 0x27a30: 0x6d197e20, 0x27a31: 0x6cc22a20, 0x27a32: 0x6c41c020, 0x27a33: 0x6c3c8c20, + 0x27a35: 0x6c753820, 0x27a36: 0x6cc16e20, + 0x27a3b: 0x6c6fe020, + 0x27a3d: 0x6c61ba20, 0x27a3e: 0x6c612c20, + // Block 0x9e9, offset 0x27a40 + 0x27a45: 0x6cf77420, 0x27a46: 0x6cacd220, + 0x27a48: 0x6c7bf020, 0x27a49: 0x6c7a8e20, 0x27a4b: 0x6c7a9020, + 0x27a4c: 0x6d2cbe20, 0x27a4f: 0x6c03b220, + 0x27a52: 0x6c190220, 0x27a53: 0x6c569820, + 0x27a54: 0x6caa6220, 0x27a55: 0x6c356220, 0x27a56: 0x6d046a20, 0x27a57: 0x6c33ce20, + 0x27a58: 0x6cd10020, 0x27a59: 0x6cecdc20, 0x27a5a: 0x6c3b2e20, + 0x27a5d: 0x6cf60420, 0x27a5e: 0x6d3e2e20, + 0x27a60: 0x6c569a20, + 0x27a65: 0x6c0cea20, 0x27a67: 0x6ceba620, + 0x27a68: 0x6c04cc20, 0x27a69: 0x6c43e420, 0x27a6b: 0x6c77f620, + 0x27a72: 0x6d3c8c20, 0x27a73: 0x6c3e9220, + 0x27a74: 0x6ca12020, 0x27a75: 0x6c63c620, 0x27a76: 0x6ceb2620, 0x27a77: 0x6d235a20, + 0x27a79: 0x6ca24620, 0x27a7a: 0x6c745e20, 0x27a7b: 0x6c712820, + 0x27a7c: 0x6c486220, 0x27a7d: 0x6cb35a20, + // Block 0x9ea, offset 0x27a80 + 0x27a80: 0x6ca63c20, + 0x27a84: 0x6cec1e20, 0x27a85: 0x6d0d9620, + 0x27a94: 0x6c1e2c20, 0x27a95: 0x6c7ba820, 0x27a96: 0x6c4d7020, + 0x27a98: 0x6cfdd020, 0x27a99: 0x6cf65c20, 0x27a9b: 0x6c25a820, + 0x27a9c: 0x6ce6fe20, 0x27a9d: 0x6cc92420, 0x27a9f: 0x6c345820, + 0x27aa0: 0x6c182a20, + 0x27aa4: 0x6c833820, 0x27aa5: 0x6d3e6420, 0x27aa7: 0x6d332420, + 0x27aa8: 0x6d426c20, 0x27aab: 0x6c773020, + 0x27aac: 0x6d293a20, 0x27aae: 0x6d250020, 0x27aaf: 0x6cbf4620, + 0x27ab3: 0x6c381820, + 0x27ab4: 0x6d0a2220, 0x27ab6: 0x6c622e20, + 0x27ab8: 0x6c13a620, + // Block 0x9eb, offset 0x27ac0 + 0x27ac0: 0x6cd4fe20, 0x27ac1: 0x6d08a820, 0x27ac2: 0x6d00d220, 0x27ac3: 0x6ce2f820, + 0x27ac4: 0x6c4ef220, 0x27ac5: 0x6cfac020, 0x27ac6: 0x6ccd0420, 0x27ac7: 0x6cea8c20, + 0x27ac8: 0x6c4f8420, 0x27ac9: 0x6c7dbc20, 0x27aca: 0x6c133620, 0x27acb: 0x6c30bc20, + 0x27acc: 0x6caac620, 0x27acd: 0x6d0e9a20, 0x27ace: 0x6c1a2c20, 0x27acf: 0x6cb40a20, + 0x27ad0: 0x6cb7ba20, 0x27ad1: 0x6d26d420, 0x27ad2: 0x6c3d8c20, + 0x27ad7: 0x6ce6dc20, + 0x27adf: 0x6cf2c220, + 0x27ae0: 0x6cd11220, 0x27ae1: 0x6ceb8c20, + 0x27af4: 0x6ce06a20, 0x27af6: 0x6d0b6020, 0x27af7: 0x6d36ca20, + 0x27af8: 0x6c92be20, 0x27af9: 0x6d0dd020, 0x27afa: 0x6c70c220, + 0x27afd: 0x6c2a8020, 0x27aff: 0x6c1f7020, + // Block 0x9ec, offset 0x27b00 + 0x27b00: 0x6d412620, 0x27b01: 0x6c369620, 0x27b02: 0x6d349620, 0x27b03: 0x6caec020, + 0x27b05: 0x6c0cbe20, 0x27b07: 0x6c2c0220, + 0x27b10: 0x6c7f2820, 0x27b12: 0x6d133020, + 0x27b1c: 0x6c4fe620, 0x27b1d: 0x6cac7420, 0x27b1e: 0x6ce0ae20, 0x27b1f: 0x6c774a20, + 0x27b20: 0x6d05ea20, 0x27b21: 0x6d408e20, 0x27b22: 0x6c628c20, 0x27b23: 0x6cf52620, + 0x27b26: 0x6c204020, + 0x27b29: 0x6cb3a420, 0x27b2a: 0x6d0dd620, 0x27b2b: 0x6cebb420, + 0x27b2d: 0x6c31b820, 0x27b2f: 0x6cb13020, + 0x27b30: 0x6c1c7820, 0x27b31: 0x6c5d4420, 0x27b32: 0x6cb26820, + 0x27b34: 0x6c235c20, 0x27b35: 0x6d2c9620, + 0x27b3a: 0x6cec9e20, + 0x27b3f: 0x6cec6620, + // Block 0x9ed, offset 0x27b40 + 0x27b43: 0x6c36ae20, + 0x27b44: 0x6cf0da20, 0x27b45: 0x6c040420, 0x27b47: 0x6c678020, + 0x27b53: 0x6c140a20, + 0x27b55: 0x6c1f8220, 0x27b56: 0x6c7af220, 0x27b57: 0x6ce2bc20, + 0x27b58: 0x6d406a20, 0x27b59: 0x6c86ac20, 0x27b5a: 0x6cdeb220, 0x27b5b: 0x6cc9a420, + 0x27b5e: 0x6cac7a20, 0x27b5f: 0x6cac7c20, + 0x27b63: 0x6ccb0020, + 0x27b64: 0x6cbbba20, + 0x27b6d: 0x6d40e220, 0x27b6f: 0x6d371820, + 0x27b70: 0x6d0de020, 0x27b72: 0x6c6b4820, 0x27b73: 0x6ca5aa20, + // Block 0x9ee, offset 0x27b80 + 0x27b84: 0x6c944420, 0x27b85: 0x6cc15220, 0x27b87: 0x6c2af220, + 0x27b88: 0x6c897620, 0x27b89: 0x6c15f220, 0x27b8a: 0x6cbcf820, 0x27b8b: 0x6c912220, + 0x27b8c: 0x6c2efe20, 0x27b8d: 0x6c24f620, + 0x27b90: 0x6c615c20, 0x27b93: 0x6c178420, + 0x27b94: 0x6cd69a20, 0x27b95: 0x6d40f220, 0x27b97: 0x6c775a20, + 0x27b9a: 0x6cbaf020, 0x27b9b: 0x6c847820, + 0x27bae: 0x6cd65e20, 0x27baf: 0x6d243e20, + 0x27bb0: 0x6d2ee820, 0x27bb1: 0x6c82f220, + // Block 0x9ef, offset 0x27bc0 + 0x27bc5: 0x6cb33e20, + 0x27bca: 0x6d30b620, 0x27bcb: 0x6d001e20, + 0x27bcd: 0x6ce08620, 0x27bce: 0x6c258620, 0x27bcf: 0x6c7fdc20, + 0x27bd1: 0x6d060220, 0x27bd2: 0x6cd62820, 0x27bd3: 0x6d2c9c20, + 0x27bd4: 0x6c11ba20, 0x27bd7: 0x6c08fe20, + 0x27bd8: 0x6caf1c20, + 0x27bdd: 0x6c1a5620, + 0x27be3: 0x6cbc0c20, + 0x27be4: 0x6c5f8620, + 0x27bea: 0x6d2d0420, + 0x27bec: 0x6c7fde20, + // Block 0x9f0, offset 0x27c00 + 0x27c01: 0x6ce52820, 0x27c02: 0x6cc9b020, 0x27c03: 0x6c6c6e20, + 0x27c04: 0x6d3b4020, 0x27c05: 0x6c352220, 0x27c07: 0x6c145620, + 0x27c08: 0x6c73a020, 0x27c09: 0x6ce16220, 0x27c0a: 0x6c086420, + 0x27c0c: 0x6c38e820, 0x27c0d: 0x6c8b6820, 0x27c0e: 0x6d2b6e20, 0x27c0f: 0x6cdcb420, + 0x27c19: 0x6ccb8c20, + 0x27c27: 0x6d375c20, + 0x27c28: 0x6ce9d420, 0x27c2a: 0x6cbe5e20, + 0x27c2c: 0x6c21e620, + 0x27c30: 0x6cdee620, 0x27c31: 0x6c0e3c20, 0x27c32: 0x6cf1f620, + 0x27c35: 0x6cb36220, + 0x27c3d: 0x6ca09a20, 0x27c3e: 0x6c10e420, + // Block 0x9f1, offset 0x27c40 + 0x27c41: 0x6c7c2020, 0x27c43: 0x6c260220, + 0x27c44: 0x6cc54420, 0x27c45: 0x6c068020, 0x27c46: 0x6c7f8020, + 0x27c4d: 0x6ca75220, 0x27c4e: 0x6c84c220, + 0x27c55: 0x6c697220, 0x27c56: 0x6c919e20, 0x27c57: 0x6c879620, + 0x27c58: 0x6c900820, 0x27c59: 0x6c4baa20, + 0x27c5d: 0x6c161c20, + 0x27c64: 0x6cfb1820, 0x27c66: 0x6c165620, + 0x27c68: 0x6d029020, 0x27c69: 0x6d2ea820, + 0x27c6f: 0x6cd6c620, + 0x27c7b: 0x6c9d1220, + 0x27c7c: 0x6c947420, 0x27c7d: 0x6c965620, + // Block 0x9f2, offset 0x27c80 + 0x27c80: 0x6c2d0220, + 0x27c88: 0x6c2f2820, 0x27c8a: 0x6cecb220, 0x27c8b: 0x6d274620, + 0x27c8c: 0x6c948620, 0x27c8e: 0x6c948a20, + 0x27c93: 0x6c837220, + 0x27c95: 0x6cec6020, 0x27c96: 0x6c2f3e20, 0x27c97: 0x6ca59620, + 0x27c98: 0x6cceb220, 0x27c99: 0x6d019e20, 0x27c9a: 0x6cafe820, + 0x27ca5: 0x6c98dc20, 0x27ca7: 0x6d1ade20, + 0x27ca9: 0x6c0f0a20, 0x27cab: 0x6d3b0220, + 0x27cae: 0x6c1cc820, + 0x27cb6: 0x6ca24820, 0x27cb7: 0x6ceb2820, + 0x27cb9: 0x6ce7be20, 0x27cba: 0x6d128820, + // Block 0x9f3, offset 0x27cc0 + 0x27cc1: 0x6c5a7220, 0x27cc3: 0x6cc60020, + 0x27cc5: 0x6d130620, + 0x27ccb: 0x6ceb3a20, + 0x27cd6: 0x6d413a20, 0x27cd7: 0x6d23d220, + 0x27cda: 0x6c000c20, + 0x27cdc: 0x6d38a420, 0x27cdd: 0x6cec9c20, + 0x27ce1: 0x6c34ae20, 0x27ce2: 0x6d384420, 0x27ce3: 0x6c4cfc20, + 0x27ce4: 0x6c5a0420, 0x27ce5: 0x6c9e6220, + 0x27ce9: 0x6c211a20, 0x27cea: 0x6cbce420, 0x27ceb: 0x6c45b220, + 0x27cec: 0x6ce69420, 0x27ced: 0x6c9a2a20, + 0x27cf1: 0x6ce1a420, + 0x27cf4: 0x6cc6c420, 0x27cf7: 0x6cc6c620, + 0x27cf8: 0x6cb66420, 0x27cf9: 0x6c4c9a20, + 0x27cfd: 0x6cfe6220, 0x27cfe: 0x6ce4ca20, + // Block 0x9f4, offset 0x27d00 + 0x27d05: 0x6cff4020, + 0x27d08: 0x6d2db620, 0x27d09: 0x6c258820, + 0x27d14: 0x6c7ffc20, + 0x27d18: 0x6cd02e20, 0x27d1a: 0x6c830e20, 0x27d1b: 0x6c879820, + 0x27d1d: 0x6c14e620, 0x27d1e: 0x6ca8d020, 0x27d1f: 0x6c947620, + 0x27d21: 0x6ce63a20, 0x27d22: 0x6c5ba620, + 0x27d27: 0x6c458020, + 0x27d30: 0x6cb77220, 0x27d31: 0x6d20fa20, 0x27d33: 0x6d02d220, + 0x27d38: 0x6d26ae20, 0x27d39: 0x6c034e20, 0x27d3a: 0x6c276a20, 0x27d3b: 0x6c5eba20, + 0x27d3c: 0x6d089220, 0x27d3f: 0x6c743c20, + // Block 0x9f5, offset 0x27d40 + 0x27d40: 0x6ca99420, + 0x27d48: 0x6c325220, 0x27d49: 0x6c602620, + 0x27d50: 0x6cabc820, 0x27d51: 0x6c45f020, 0x27d52: 0x6c07ba20, + 0x27d54: 0x6c794220, 0x27d55: 0x6d105020, 0x27d56: 0x6c8f0820, 0x27d57: 0x6ca5ee20, + 0x27d58: 0x6d2cca20, 0x27d59: 0x6d1b5c20, 0x27d5a: 0x6ca72820, 0x27d5b: 0x6cad9020, + 0x27d5d: 0x6c458e20, 0x27d5e: 0x6c109e20, 0x27d5f: 0x6c512e20, + 0x27d60: 0x6cc71220, 0x27d61: 0x6c4b5020, + 0x27d65: 0x6c09b620, 0x27d66: 0x6cf63020, 0x27d67: 0x6c712a20, + 0x27d68: 0x6c5cf420, 0x27d69: 0x6c09e420, 0x27d6b: 0x6ce56420, + 0x27d6c: 0x6d332820, 0x27d6f: 0x6d181020, + 0x27d70: 0x6c22d220, 0x27d72: 0x6c0e2620, + 0x27d77: 0x6c459c20, + 0x27d7a: 0x6c381a20, + 0x27d7d: 0x6d0fce20, 0x27d7e: 0x6d064820, + // Block 0x9f6, offset 0x27d80 + 0x27d81: 0x6c52b620, + 0x27d84: 0x6d2a0a20, 0x27d85: 0x6c148420, 0x27d86: 0x6c537620, + 0x27d88: 0x6ce4b820, + 0x27d8c: 0x6d340a20, 0x27d8d: 0x6d039220, 0x27d8e: 0x6d062220, + 0x27d91: 0x6d325820, + 0x27d94: 0x6ced4020, + 0x27d98: 0x6c75dc20, + 0x27d9d: 0x6cf30c20, + 0x27da0: 0x6c92c220, 0x27da2: 0x6d32f220, 0x27da3: 0x6cc71a20, + 0x27da4: 0x6c1a3c20, 0x27da5: 0x6c3ee620, 0x27da7: 0x6c369820, + 0x27da8: 0x6ce1e620, 0x27da9: 0x6ce12e20, 0x27dab: 0x6c730020, + 0x27dac: 0x6c17c020, 0x27dad: 0x6cde9620, 0x27dae: 0x6c2c0420, + 0x27db0: 0x6d3fc020, 0x27db3: 0x6c794c20, + 0x27db4: 0x6ce99820, 0x27db6: 0x6c794e20, + // Block 0x9f7, offset 0x27dc0 + 0x27dc5: 0x6cc71c20, 0x27dc6: 0x6d276420, 0x27dc7: 0x6c517a20, + 0x27dc8: 0x6d400820, 0x27dc9: 0x6c235e20, 0x27dca: 0x6cbfcc20, + 0x27dce: 0x6ca2b420, 0x27dcf: 0x6c346420, + 0x27dd0: 0x6d065a20, 0x27dd1: 0x6c795620, 0x27dd2: 0x6cfd1220, + 0x27ddb: 0x6c31ba20, + 0x27ddc: 0x6c76ee20, 0x27dde: 0x6d1bf020, + 0x27de2: 0x6d3e9620, + 0x27de7: 0x6c5a0620, + 0x27de9: 0x6caed020, 0x27deb: 0x6c86ae20, + 0x27ded: 0x6c0f8220, 0x27dee: 0x6c444420, 0x27def: 0x6c716620, + 0x27df0: 0x6c783420, 0x27df2: 0x6c55ce20, 0x27df3: 0x6d115820, + 0x27df4: 0x6ce14820, 0x27df6: 0x6cbf7020, 0x27df7: 0x6cc72820, + 0x27df8: 0x6c8f1e20, 0x27df9: 0x6c5c5e20, 0x27dfa: 0x6c5f6220, + // Block 0x9f8, offset 0x27e00 + 0x27e09: 0x6d371a20, 0x27e0b: 0x6ce15220, + 0x27e0c: 0x6d355c20, 0x27e0d: 0x6c775e20, + 0x27e14: 0x6d107220, 0x27e16: 0x6ce18420, 0x27e17: 0x6c52d820, + 0x27e1b: 0x6c897820, + 0x27e1d: 0x6c12a020, + 0x27e21: 0x6ca3aa20, 0x27e22: 0x6d400e20, + 0x27e24: 0x6c2af420, 0x27e26: 0x6c68a220, 0x27e27: 0x6caeec20, + 0x27e29: 0x6c49fa20, 0x27e2a: 0x6c377420, 0x27e2b: 0x6c670620, + 0x27e2c: 0x6c69d220, 0x27e2d: 0x6caaca20, 0x27e2e: 0x6d2a6220, + 0x27e33: 0x6caef620, + 0x27e34: 0x6c292020, 0x27e36: 0x6cc1f620, 0x27e37: 0x6c889620, + 0x27e38: 0x6ca2be20, 0x27e39: 0x6c805220, + 0x27e3e: 0x6c3baa20, + // Block 0x9f9, offset 0x27e40 + 0x27e42: 0x6c5d0e20, + 0x27e46: 0x6c7bb420, + 0x27e48: 0x6d1b2a20, 0x27e49: 0x6cd69c20, 0x27e4a: 0x6c671e20, + 0x27e52: 0x6c964420, + 0x27e54: 0x6c933c20, + 0x27e5a: 0x6c446a20, 0x27e5b: 0x6cc51220, + 0x27e5e: 0x6cb22e20, + 0x27e60: 0x6c900a20, + 0x27e64: 0x6d320c20, 0x27e65: 0x6cfd4c20, + 0x27e68: 0x6c8c8e20, 0x27e69: 0x6c88aa20, 0x27e6a: 0x6ccd2420, 0x27e6b: 0x6c0fd420, + 0x27e6c: 0x6c87a820, + 0x27e73: 0x6d013a20, + 0x27e74: 0x6c446e20, 0x27e75: 0x6c9fe020, 0x27e76: 0x6c88ae20, + 0x27e79: 0x6c753c20, 0x27e7a: 0x6d38c820, + 0x27e7f: 0x6c784820, + // Block 0x9fa, offset 0x27e80 + 0x27e81: 0x6c2f2a20, 0x27e83: 0x6d30ce20, + 0x27e85: 0x6cd4ac20, 0x27e86: 0x6c5e9020, 0x27e87: 0x6c8f7c20, + 0x27e88: 0x6c49ea20, 0x27e89: 0x6d2a5620, 0x27e8a: 0x6cfd4420, 0x27e8b: 0x6cb8ae20, + 0x27e8d: 0x6ccfd820, + 0x27e90: 0x6d1ae020, 0x27e91: 0x6c6be420, + 0x27e94: 0x6ccffe20, 0x27e95: 0x6cd00020, 0x27e96: 0x6cc95220, + 0x27e9b: 0x6cf8c020, + 0x27ea1: 0x6c7aac20, 0x27ea3: 0x6cc1c620, + 0x27ea5: 0x6c443e20, 0x27ea6: 0x6c050820, + 0x27ea8: 0x6c0a7c20, 0x27ea9: 0x6cb92e20, + 0x27eb0: 0x6c0d6420, 0x27eb1: 0x6c050a20, 0x27eb3: 0x6d42ae20, + 0x27eb4: 0x6cb0d020, 0x27eb6: 0x6c5e3620, + 0x27ebe: 0x6c051020, + // Block 0x9fb, offset 0x27ec0 + 0x27eca: 0x6ca9d820, + 0x27ecc: 0x6c18fc20, 0x27ece: 0x6cae4e20, + 0x27ed1: 0x6c3f2e20, 0x27ed2: 0x6ce88220, + 0x27edc: 0x6cb04e20, 0x27edd: 0x6cb36420, + 0x27ee0: 0x6c1b7420, 0x27ee3: 0x6d093e20, + 0x27ee4: 0x6cb74020, 0x27ee5: 0x6cf4b220, + 0x27ee8: 0x6d357e20, 0x27ee9: 0x6c2c1c20, 0x27eea: 0x6c22fe20, 0x27eeb: 0x6d1ef420, + 0x27ef9: 0x6c230020, + 0x27efc: 0x6c2c1e20, 0x27efd: 0x6d3d2620, 0x27eff: 0x6d408020, + // Block 0x9fc, offset 0x27f00 + 0x27f00: 0x6c238c20, 0x27f03: 0x6caca820, + 0x27f04: 0x6d0d4c20, 0x27f05: 0x6cb74e20, 0x27f06: 0x6cc6fa20, 0x27f07: 0x6c63a420, + 0x27f09: 0x6d359220, 0x27f0a: 0x6cc00e20, 0x27f0b: 0x6d268a20, + 0x27f0d: 0x6cd32420, + 0x27f11: 0x6c4fc020, + 0x27f19: 0x6ceab220, + 0x27f1c: 0x6c0cde20, 0x27f1e: 0x6c770020, + 0x27f22: 0x6c21aa20, + 0x27f24: 0x6c229020, 0x27f26: 0x6d1ad020, 0x27f27: 0x6cd34c20, + 0x27f28: 0x6ca3b820, 0x27f29: 0x6cc85820, 0x27f2b: 0x6d0f9e20, + 0x27f2c: 0x6c1a9820, 0x27f2e: 0x6c21f820, + 0x27f31: 0x6c457620, 0x27f32: 0x6c9c4220, + 0x27f34: 0x6c612e20, + 0x27f3c: 0x6c44b220, 0x27f3d: 0x6d2a6c20, + // Block 0x9fd, offset 0x27f40 + 0x27f41: 0x6c081420, + 0x27f47: 0x6d030c20, + 0x27f48: 0x6c7df020, 0x27f4a: 0x6c2e8e20, + 0x27f4d: 0x6ce66a20, + 0x27f5a: 0x6cd71c20, + 0x27f5e: 0x6c275620, + 0x27f66: 0x6c851020, + 0x27f68: 0x6d1e2820, 0x27f69: 0x6c684220, + 0x27f6c: 0x6cde0420, 0x27f6d: 0x6cc24620, 0x27f6e: 0x6d1a6020, 0x27f6f: 0x6d24e820, + 0x27f70: 0x6c6abc20, 0x27f72: 0x6cb8da20, 0x27f73: 0x6d10a020, + 0x27f74: 0x6d0ba620, 0x27f77: 0x6cbe4a20, + 0x27f7f: 0x6cadd420, + // Block 0x9fe, offset 0x27f80 + 0x27f97: 0x6c635820, + 0x27f99: 0x6ce82c20, 0x27f9b: 0x6ce2ec20, + 0x27fa1: 0x6c33f620, 0x27fa2: 0x6c15ba20, 0x27fa3: 0x6c636820, + 0x27fa4: 0x6c1c2820, 0x27fa5: 0x6c64aa20, 0x27fa6: 0x6cd5e020, + 0x27faf: 0x6cde5a20, + // Block 0x9ff, offset 0x27fc0 + 0x27fd5: 0x6d33ea20, 0x27fd7: 0x6d256e20, + 0x27fda: 0x6c54d420, + 0x27fdc: 0x6c8b1220, + 0x27fe0: 0x6d2ad420, 0x27fe2: 0x6c1f5e20, + 0x27fe6: 0x6cc0ba20, 0x27fe7: 0x6c07fa20, + 0x27ff9: 0x6c588620, 0x27ffa: 0x6c7aca20, 0x27ffb: 0x6cd10c20, + 0x27ffd: 0x6c6afe20, 0x27fff: 0x6cee2c20, + // Block 0xa00, offset 0x28000 + 0x28003: 0x6c54de20, + 0x2800a: 0x6d2ae620, 0x2800b: 0x6d297020, + 0x2800c: 0x6d106420, 0x2800e: 0x6c1bba20, 0x2800f: 0x6c701220, + 0x2801a: 0x6c89fe20, 0x2801b: 0x6d209620, + 0x28020: 0x6c0b4a20, 0x28022: 0x6c7bc820, + 0x2802c: 0x6c1e4a20, 0x2802d: 0x6d0b3620, 0x2802e: 0x6d3d8620, + 0x28030: 0x6cbcda20, 0x28031: 0x6cfcf020, 0x28033: 0x6d250620, + 0x28034: 0x6cf46e20, 0x28035: 0x6c693620, 0x28036: 0x6cfe5020, 0x28037: 0x6ccc7420, + 0x28039: 0x6d36cc20, + 0x2803c: 0x6c1d5a20, 0x2803e: 0x6c0b0620, 0x2803f: 0x6ceeb820, + // Block 0xa01, offset 0x28040 + 0x28053: 0x6c2a3220, + 0x2805d: 0x6d23d820, 0x2805e: 0x6ce9b820, + 0x28061: 0x6c17c220, + 0x28065: 0x6c5c4420, 0x28066: 0x6cba2620, + 0x28068: 0x6cf01a20, + 0x28070: 0x6d1f7420, + 0x2807c: 0x6c2ca020, 0x2807e: 0x6c26f620, + // Block 0xa02, offset 0x28080 + 0x28081: 0x6d1f7620, 0x28082: 0x6c702620, 0x28083: 0x6ce9bc20, + 0x28084: 0x6d297620, 0x28087: 0x6c5c6020, + 0x28089: 0x6ccc8220, + 0x2808c: 0x6c5e1020, + 0x28094: 0x6d115a20, + 0x28099: 0x6cfd1e20, + 0x2809e: 0x6cfd2020, + 0x280ac: 0x6c2caa20, 0x280ae: 0x6c703220, + 0x280b2: 0x6c5c7420, + 0x280b4: 0x6c77cc20, 0x280b5: 0x6d1f8420, + 0x280b8: 0x6c870e20, + 0x280bc: 0x6c201420, 0x280be: 0x6c1b6820, + // Block 0xa03, offset 0x280c0 + 0x280c0: 0x6c5e3820, 0x280c2: 0x6d1f9020, + 0x280c4: 0x6d270e20, + 0x280ce: 0x6cded820, 0x280cf: 0x6d29b420, + 0x280d3: 0x6ca8ac20, + 0x280d4: 0x6d3b4a20, + 0x280e1: 0x6cfc6220, + 0x280e9: 0x6cd22a20, 0x280eb: 0x6c79ca20, + 0x280ec: 0x6cb6c620, 0x280ed: 0x6ce91420, 0x280ee: 0x6c387e20, 0x280ef: 0x6c258e20, + 0x280f2: 0x6cea3820, 0x280f3: 0x6c137420, + 0x280f4: 0x6c110020, 0x280f5: 0x6cfe1420, 0x280f6: 0x6cadfc20, 0x280f7: 0x6c6e0220, + 0x280f8: 0x6cb56a20, 0x280f9: 0x6cceae20, 0x280fa: 0x6ca97420, 0x280fb: 0x6ca30420, + 0x280fd: 0x6cbd5020, + // Block 0xa04, offset 0x28100 + 0x2810d: 0x6c090c20, + 0x28113: 0x6c092420, + 0x28114: 0x6c05a220, 0x28115: 0x6c0b7620, 0x28116: 0x6d3e0220, 0x28117: 0x6ca30a20, + 0x28118: 0x6cf07020, 0x28119: 0x6c4fbe20, + 0x28121: 0x6c6c8220, 0x28123: 0x6d333c20, + 0x28127: 0x6cbc8220, + 0x2812e: 0x6c501620, 0x2812f: 0x6ce71e20, + 0x28130: 0x6d2a4020, 0x28131: 0x6cd15420, 0x28132: 0x6c25a420, 0x28133: 0x6c597e20, + 0x28134: 0x6cc78e20, 0x28135: 0x6d292e20, 0x28136: 0x6ca6f820, + 0x2813e: 0x6cfa8620, + // Block 0xa05, offset 0x28140 + 0x28148: 0x6cc2bc20, 0x28149: 0x6c619a20, 0x2814a: 0x6d1a3620, 0x2814b: 0x6c850620, + 0x2814c: 0x6c984620, 0x2814d: 0x6cceca20, 0x2814e: 0x6c4e8e20, 0x2814f: 0x6c260e20, + 0x28150: 0x6c759c20, 0x28151: 0x6c61bc20, 0x28152: 0x6c107820, 0x28153: 0x6c905420, + 0x28154: 0x6c3d2220, 0x28155: 0x6d1f0e20, 0x28156: 0x6c7b1c20, + 0x2815c: 0x6cfe2220, + 0x28161: 0x6d279420, 0x28163: 0x6cbd5e20, + 0x28164: 0x6c5b2c20, 0x28165: 0x6cb42e20, + 0x2816b: 0x6c83b220, + 0x2816c: 0x6cadcc20, 0x2816d: 0x6cd4c620, 0x2816e: 0x6c707620, 0x2816f: 0x6d14e020, + 0x28170: 0x6d32a820, 0x28171: 0x6c1d0e20, 0x28173: 0x6cf77620, + 0x28175: 0x6c561a20, 0x28176: 0x6cc74420, + // Block 0xa06, offset 0x28180 + 0x2818c: 0x6c590c20, 0x2818d: 0x6cbc3c20, 0x2818e: 0x6d33d020, 0x2818f: 0x6d1c6c20, + 0x28190: 0x6cf7e220, 0x28191: 0x6cbb7620, 0x28192: 0x6c61fa20, 0x28193: 0x6d32bc20, + 0x28194: 0x6c59b420, 0x28196: 0x6d210a20, 0x28197: 0x6d405a20, + 0x28198: 0x6c99f420, + 0x2819c: 0x6cd13220, + 0x281a9: 0x6cc2e620, + 0x281b0: 0x6c676020, 0x281b1: 0x6c512020, 0x281b3: 0x6ce75220, + 0x281b4: 0x6c513020, 0x281b5: 0x6cf15220, 0x281b6: 0x6d17cc20, 0x281b7: 0x6cacfe20, + 0x281ba: 0x6cf22620, 0x281bb: 0x6cb99820, + 0x281bc: 0x6c862020, 0x281bd: 0x6d150a20, 0x281be: 0x6c20ac20, 0x281bf: 0x6d06e820, + // Block 0xa07, offset 0x281c0 + 0x281c0: 0x6cefd020, + 0x281c6: 0x6c439420, + 0x281c8: 0x6d226220, 0x281cb: 0x6d2d4420, + 0x281cc: 0x6c41a220, 0x281cd: 0x6cb8f620, 0x281ce: 0x6c773220, 0x281cf: 0x6c840220, + 0x281d0: 0x6cd00220, 0x281d1: 0x6c499220, 0x281d3: 0x6cb17c20, + 0x281d6: 0x6c840420, + 0x281d8: 0x6c562620, 0x281db: 0x6ce8ce20, + 0x281dc: 0x6cd75620, 0x281de: 0x6c56aa20, 0x281df: 0x6c840620, + 0x281e2: 0x6c910a20, + 0x281e6: 0x6c297020, + 0x281e8: 0x6d42a420, 0x281e9: 0x6cccf620, 0x281eb: 0x6ccf6e20, + 0x281ed: 0x6c3cb620, 0x281ee: 0x6c726e20, 0x281ef: 0x6ce76e20, + 0x281f0: 0x6c691a20, 0x281f1: 0x6cbbe620, 0x281f2: 0x6c42d420, 0x281f3: 0x6d3e7020, + 0x281f4: 0x6c59e620, 0x281f5: 0x6ccd0620, + 0x281f8: 0x6cdff620, + // Block 0xa08, offset 0x28200 + 0x2820c: 0x6ceaca20, 0x2820e: 0x6c8e2220, + 0x28210: 0x6c1a2e20, 0x28211: 0x6cf27020, 0x28212: 0x6d425020, 0x28213: 0x6d23da20, + 0x28215: 0x6d3a2220, 0x28217: 0x6cc45420, + 0x28218: 0x6cf80a20, 0x28219: 0x6cc1b620, 0x2821b: 0x6c442820, + 0x28222: 0x6cb52a20, 0x28223: 0x6d05e020, + 0x28228: 0x6c415220, 0x28229: 0x6cc3f820, 0x2822a: 0x6c1ddc20, 0x2822b: 0x6c9b4e20, + 0x28232: 0x6cd02020, 0x28233: 0x6cc1c820, + 0x28236: 0x6cbbb420, 0x28237: 0x6c11b420, + 0x2823a: 0x6c86b020, + 0x2823c: 0x6ceda220, 0x2823d: 0x6c826620, 0x2823e: 0x6d03a820, 0x2823f: 0x6c80ea20, + // Block 0xa09, offset 0x28240 + 0x28242: 0x6cd3ec20, 0x28243: 0x6d330020, + 0x28244: 0x6c38ce20, + 0x2824a: 0x6d371c20, + 0x2824f: 0x6d1aa420, + 0x28251: 0x6c86de20, + 0x28256: 0x6ca08820, 0x28257: 0x6cf04020, + 0x28259: 0x6d1c1020, 0x2825a: 0x6cc4e420, + 0x28260: 0x6cc2a820, + 0x28265: 0x6c95ce20, + 0x28272: 0x6c275820, + 0x28274: 0x6d1b4e20, 0x28275: 0x6c08da20, 0x28276: 0x6c438820, + 0x28278: 0x6cf20a20, 0x28279: 0x6d0d7620, 0x2827a: 0x6c9e1e20, + 0x2827c: 0x6c42a020, 0x2827d: 0x6cc05620, 0x2827e: 0x6d33da20, + // Block 0xa0a, offset 0x28280 + 0x2828b: 0x6c471c20, + 0x2828c: 0x6ce75420, 0x2828e: 0x6c8d1420, 0x2828f: 0x6ce33620, + 0x28290: 0x6c224c20, 0x28291: 0x6d150c20, 0x28292: 0x6c395a20, 0x28293: 0x6cb31220, + 0x28294: 0x6c09b820, 0x28296: 0x6c064e20, + 0x2829f: 0x6cae7620, + 0x282a1: 0x6cdb8420, + 0x282a4: 0x6cd92820, 0x282a5: 0x6cef1a20, 0x282a6: 0x6cff9220, + 0x282ac: 0x6c504c20, 0x282ad: 0x6d0dac20, + 0x282b6: 0x6d152620, 0x282b7: 0x6d2a1e20, + 0x282b8: 0x6d1d0020, 0x282b9: 0x6ca43220, + 0x282bf: 0x6d289620, + // Block 0xa0b, offset 0x282c0 + 0x282c1: 0x6ce50c20, 0x282c2: 0x6cf68a20, 0x282c3: 0x6c69b420, + 0x282c4: 0x6d0cbc20, + 0x282cc: 0x6ca55e20, 0x282cd: 0x6ce07020, 0x282ce: 0x6d0eaa20, 0x282cf: 0x6ce51a20, + 0x282d0: 0x6d36ce20, 0x282d1: 0x6c1d7a20, 0x282d2: 0x6ce23a20, + 0x282d7: 0x6d2cdc20, + 0x282de: 0x6c9e3a20, + 0x282e1: 0x6cf47020, 0x282e2: 0x6d1b0220, 0x282e3: 0x6d0eac20, + 0x282e4: 0x6c81ba20, + 0x282e9: 0x6cb31e20, 0x282eb: 0x6c5d4620, + 0x282ec: 0x6c4d4620, 0x282ed: 0x6ca21a20, 0x282ee: 0x6c236020, + 0x282f1: 0x6c7aae20, 0x282f2: 0x6c1d8420, + 0x282f4: 0x6d1ff020, + 0x282f8: 0x6d3da020, 0x282fb: 0x6cd9e420, + // Block 0xa0c, offset 0x28300 + 0x28302: 0x6d1b7e20, + 0x28305: 0x6d41da20, 0x28306: 0x6cca7420, 0x28307: 0x6c8f4a20, + 0x28308: 0x6c4f2020, 0x28309: 0x6cf0ec20, 0x2830a: 0x6c9b6020, 0x2830b: 0x6c55d020, + 0x2830c: 0x6c86b220, 0x2830e: 0x6c9d9c20, + 0x28310: 0x6c054020, 0x28311: 0x6c65f020, + 0x2831c: 0x6cc40620, + 0x28320: 0x6c9b6220, 0x28322: 0x6ca21c20, 0x28323: 0x6c53ac20, + 0x28324: 0x6c56d820, 0x28325: 0x6c9c8e20, 0x28326: 0x6ccca820, + 0x28329: 0x6cce2620, 0x2832a: 0x6c17c620, + 0x2832c: 0x6d3dc220, 0x2832e: 0x6d342220, 0x2832f: 0x6ca77020, + 0x28335: 0x6c62b220, + 0x28338: 0x6c784020, 0x28339: 0x6d330620, + 0x2833f: 0x6c281420, + // Block 0xa0d, offset 0x28340 + 0x28340: 0x6c8a8220, 0x28341: 0x6d2e3020, 0x28342: 0x6c460620, 0x28343: 0x6c818c20, + 0x28344: 0x6c571e20, 0x28345: 0x6c1fd220, 0x28347: 0x6c660c20, + 0x28348: 0x6c7d3220, + 0x2834d: 0x6ccf0220, + 0x28354: 0x6c191c20, 0x28355: 0x6ce08820, 0x28357: 0x6c55f820, + 0x28358: 0x6c9b9e20, 0x28359: 0x6cada420, 0x2835a: 0x6d2e3820, 0x2835b: 0x6c16d620, + 0x2835d: 0x6c41f820, + 0x28360: 0x6d193a20, 0x28362: 0x6cdcb620, + 0x28366: 0x6d076420, 0x28367: 0x6c62de20, + 0x28368: 0x6c808e20, + 0x2836c: 0x6d159620, 0x2836f: 0x6c9dae20, + 0x28371: 0x6c9f1420, + 0x28375: 0x6c24a620, + 0x28378: 0x6c805a20, 0x2837b: 0x6d0c4e20, + 0x2837e: 0x6c9ccc20, + // Block 0xa0e, offset 0x28380 + 0x28382: 0x6d1e6820, 0x28383: 0x6c125420, + 0x28384: 0x6c664420, 0x28387: 0x6cda0a20, + 0x2838e: 0x6d0d2a20, + 0x28391: 0x6c736020, + 0x28395: 0x6c369c20, + 0x28398: 0x6c3bf220, 0x2839a: 0x6c3bf620, + 0x283a1: 0x6c4a2a20, 0x283a2: 0x6c96fc20, + 0x283a4: 0x6c8ab820, + 0x283a9: 0x6c1cca20, 0x283ab: 0x6c840820, + 0x283b1: 0x6d349c20, + 0x283b4: 0x6d024820, 0x283b7: 0x6c1dfc20, + 0x283b9: 0x6c60fc20, + 0x283bd: 0x6caf5c20, + // Block 0xa0f, offset 0x283c0 + 0x283c2: 0x6c6abe20, + 0x283c7: 0x6d38e420, + 0x283cd: 0x6d046c20, + 0x283d1: 0x6c7bfc20, + 0x283d9: 0x6c6e2220, 0x283db: 0x6c56a020, + 0x283de: 0x6cb99c20, + 0x283e3: 0x6c133220, + 0x283e6: 0x6cb60420, 0x283e7: 0x6ced3220, + 0x283e8: 0x6c98ec20, 0x283ea: 0x6c30f020, + 0x283f4: 0x6c79d220, 0x283f6: 0x6c277c20, + 0x283f8: 0x6ca4b420, 0x283fa: 0x6c536a20, + // Block 0xa10, offset 0x28400 + 0x28402: 0x6c7f4020, 0x28403: 0x6c34aa20, + 0x28404: 0x6cb91020, 0x28406: 0x6d1a8820, + 0x28416: 0x6c911220, 0x28417: 0x6c5ae020, + 0x2841b: 0x6c402e20, + 0x2841c: 0x6c98f420, 0x2841e: 0x6d389a20, + 0x28421: 0x6d1dfa20, + 0x2842d: 0x6c817020, 0x2842e: 0x6c609c20, 0x2842f: 0x6d186a20, + 0x28430: 0x6c8e8c20, 0x28431: 0x6c235220, 0x28433: 0x6ca43c20, + // Block 0xa11, offset 0x28440 + 0x28450: 0x6cea2620, 0x28451: 0x6cfe5220, + 0x28455: 0x6c0bba20, 0x28456: 0x6c207820, 0x28457: 0x6cf52020, + 0x28459: 0x6c70c620, + 0x28465: 0x6d005220, 0x28466: 0x6caf9220, 0x28467: 0x6d3da220, + 0x28468: 0x6cc8e420, 0x2846a: 0x6ccafa20, 0x2846b: 0x6d3f6220, + 0x2846d: 0x6d336220, + 0x28470: 0x6d40da20, 0x28471: 0x6cc14220, 0x28473: 0x6c1c7a20, + 0x28475: 0x6d36f020, + // Block 0xa12, offset 0x28480 + 0x28497: 0x6cc37a20, + 0x28498: 0x6cb92020, 0x28499: 0x6d0afc20, 0x2849a: 0x6c17c420, 0x2849b: 0x6c517c20, + 0x2849c: 0x6cc80420, + 0x284a0: 0x6c70cc20, 0x284a1: 0x6cf52820, + 0x284ac: 0x6c1c7c20, 0x284ad: 0x6c7c0420, 0x284af: 0x6c240020, + 0x284b0: 0x6cc89220, 0x284b1: 0x6c7e1e20, 0x284b2: 0x6c1b5e20, 0x284b3: 0x6d40e420, + 0x284b4: 0x6c688620, 0x284b6: 0x6d21c420, 0x284b7: 0x6ce8fe20, + 0x284b8: 0x6c9b6420, 0x284b9: 0x6c266c20, 0x284ba: 0x6cd7a020, + // Block 0xa13, offset 0x284c0 + 0x284e5: 0x6c3c6c20, 0x284e6: 0x6c469020, 0x284e7: 0x6c301c20, + 0x284e8: 0x6c142220, 0x284e9: 0x6c99be20, 0x284ea: 0x6c15e820, 0x284eb: 0x6c0b1020, + 0x284ec: 0x6d241e20, 0x284ef: 0x6cecea20, + 0x284f0: 0x6d40e620, 0x284f2: 0x6d3ea420, + 0x284f4: 0x6c1fec20, 0x284f5: 0x6ced5620, 0x284f6: 0x6cebf420, + 0x284f8: 0x6cc2a620, 0x284fb: 0x6ced5820, + 0x284fd: 0x6cfa5020, + // Block 0xa14, offset 0x28500 + 0x28504: 0x6d1d5620, 0x28505: 0x6c66e820, + 0x28508: 0x6cf04220, 0x28509: 0x6ce39a20, 0x2850a: 0x6ccaca20, + 0x2850c: 0x6cb67a20, 0x2850d: 0x6ccc2020, 0x2850e: 0x6d244220, 0x2850f: 0x6c60e220, + 0x28510: 0x6c314420, 0x28511: 0x6c15f620, 0x28512: 0x6ce96c20, + 0x28515: 0x6c8ec420, 0x28517: 0x6d3cba20, + 0x28533: 0x6cc89420, + 0x28536: 0x6d0eda20, 0x28537: 0x6c47ea20, + 0x28539: 0x6c86e220, 0x2853a: 0x6c13ba20, + 0x2853e: 0x6c2cac20, + // Block 0xa15, offset 0x28540 + 0x28540: 0x6d2e2a20, 0x28541: 0x6cb32220, + 0x28552: 0x6c912620, + 0x28554: 0x6d374c20, + // Block 0xa16, offset 0x28580 + 0x28581: 0x6c888a20, + 0x28585: 0x6c95ca20, + 0x2858d: 0x6c352420, + 0x28590: 0x6c750820, 0x28591: 0x6c873420, 0x28592: 0x6c7ff220, + 0x28594: 0x6cc89620, 0x28595: 0x6c474220, 0x28596: 0x6c155c20, 0x28597: 0x6d060620, + 0x2859a: 0x6d356420, + // Block 0xa17, offset 0x285c0 + 0x285c1: 0x6d097c20, 0x285c2: 0x6c0e9c20, 0x285c3: 0x6c19aa20, + 0x285c5: 0x6d3b4220, 0x285c6: 0x6c522a20, + 0x285c9: 0x6c04ac20, + 0x285d3: 0x6c2f0820, + 0x285d6: 0x6d2e3a20, 0x285d7: 0x6c4ca620, + 0x285da: 0x6c0c5420, 0x285db: 0x6c7ec620, + 0x285fa: 0x6c6c7620, + // Block 0xa18, offset 0x28600 + 0x28602: 0x6c411c20, + 0x28612: 0x6c9c1e20, + 0x28614: 0x6d247e20, + 0x2862a: 0x6cf82a20, + 0x2862c: 0x6cb17820, 0x2862d: 0x6cd85020, + 0x28634: 0x6c2b0020, + 0x28638: 0x6c219e20, 0x28639: 0x6c2bbe20, 0x2863a: 0x6c5fa820, 0x2863b: 0x6c157620, + 0x2863f: 0x6d3dea20, + // Block 0xa19, offset 0x28640 + 0x28653: 0x6c115220, + 0x2865e: 0x6c681620, + 0x28672: 0x6ce80220, + 0x2867d: 0x6c84e820, + // Block 0xa1a, offset 0x28680 + 0x28682: 0x6cba9020, + 0x28686: 0x6c21a020, + 0x2868f: 0x6cdef820, + 0x28691: 0x6c2e5220, 0x28693: 0x6c664820, + 0x2869b: 0x6d356820, + 0x2869c: 0x6c753220, 0x2869e: 0x6ca0a420, + 0x286a0: 0x6c959620, + 0x286a6: 0x6c062420, + 0x286ad: 0x6d415e20, + 0x286b5: 0x6d300820, + 0x286b8: 0x6d220c20, 0x286bb: 0x6c062a20, + 0x286be: 0x6c969420, 0x286bf: 0x6cf85020, + // Block 0xa1b, offset 0x286c0 + 0x286c0: 0x6c567c20, 0x286c1: 0x6d171220, 0x286c2: 0x6c355020, 0x286c3: 0x6c470220, + 0x286c4: 0x6ce89e20, 0x286c5: 0x6d314a20, 0x286c7: 0x6cc07220, + 0x286c8: 0x6cdaba20, 0x286c9: 0x6c89c620, 0x286ca: 0x6cc11a20, 0x286cb: 0x6c8d2620, + 0x286cc: 0x6c499420, 0x286cd: 0x6c80e420, 0x286ce: 0x6ce7dc20, 0x286cf: 0x6c266620, + 0x286d0: 0x6c911e20, 0x286d1: 0x6c5a1220, 0x286d2: 0x6cd47e20, 0x286d3: 0x6c688820, + 0x286d4: 0x6d41f620, 0x286d5: 0x6c411a20, 0x286d6: 0x6cef5220, + 0x286d9: 0x6c7d4e20, 0x286da: 0x6c32bc20, 0x286db: 0x6cd92020, + 0x286dc: 0x6cb5e020, 0x286dd: 0x6d101a20, + 0x286e1: 0x6cd37820, 0x286e3: 0x6c411420, + 0x286e6: 0x6c2a1a20, 0x286e7: 0x6d11b220, + 0x286eb: 0x6cb99e20, + 0x286ed: 0x6cce7220, 0x286ee: 0x6c16ae20, 0x286ef: 0x6ca05020, + 0x286f1: 0x6ca05a20, + 0x286f5: 0x6ca50620, + 0x286f8: 0x6c232220, 0x286fa: 0x6ca84e20, 0x286fb: 0x6d2f6a20, + 0x286fc: 0x6c133420, 0x286ff: 0x6cd92a20, + // Block 0xa1c, offset 0x28700 + 0x28700: 0x6ca85820, 0x28701: 0x6c22dc20, + 0x28704: 0x6c75de20, 0x28706: 0x6cce7e20, + 0x28708: 0x6d3a2420, 0x28709: 0x6c34b020, 0x2870a: 0x6c01ce20, 0x2870b: 0x6c088c20, + 0x2870e: 0x6ce41820, + 0x28710: 0x6cb06a20, 0x28711: 0x6cf9ee20, 0x28712: 0x6cc09420, 0x28713: 0x6cd14e20, + 0x28717: 0x6ce0d820, + 0x2871b: 0x6c978420, + 0x2871c: 0x6cb10420, 0x2871e: 0x6ce43420, 0x2871f: 0x6cc6cc20, + 0x28727: 0x6c237220, + 0x2872a: 0x6c5f7a20, 0x2872b: 0x6c3cc020, + 0x2872c: 0x6cf53c20, 0x2872d: 0x6c69d620, 0x2872e: 0x6c818e20, 0x2872f: 0x6d2ba620, + 0x28730: 0x6caeee20, 0x28731: 0x6c11e420, 0x28733: 0x6ca9de20, + 0x28735: 0x6c160c20, + 0x2873e: 0x6c97a420, 0x2873f: 0x6c4ba820, + // Block 0xa1d, offset 0x28740 + 0x28740: 0x6ca7d820, 0x28741: 0x6c1d0220, 0x28742: 0x6c165820, + 0x28746: 0x6ca48a20, + 0x28749: 0x6cf95c20, 0x2874a: 0x6c6f6620, 0x2874b: 0x6c613020, + 0x2874c: 0x6d323420, + 0x28751: 0x6ce6ca20, + 0x28754: 0x6c9ace20, 0x28755: 0x6d26b220, 0x28757: 0x6d37bc20, + 0x28758: 0x6cea5620, 0x28759: 0x6cc8d220, 0x2875a: 0x6d01ba20, 0x2875b: 0x6cf63420, + 0x2875d: 0x6ce6d220, 0x2875e: 0x6ca99820, + 0x28760: 0x6cee2820, 0x28761: 0x6c64ae20, 0x28763: 0x6c3b3420, + 0x28772: 0x6c0ba620, + 0x28777: 0x6d152820, + 0x2877a: 0x6c2ec420, 0x2877b: 0x6c5ef820, + 0x2877c: 0x6c41de20, 0x2877f: 0x6c64c420, + // Block 0xa1e, offset 0x28780 + 0x28780: 0x6c6ee220, + 0x28786: 0x6c763820, + 0x2878a: 0x6cc3d620, + 0x2878c: 0x6ca40420, 0x2878d: 0x6ca1de20, 0x2878e: 0x6d072220, 0x2878f: 0x6cd96a20, + 0x28790: 0x6cd0c020, 0x28791: 0x6c7bac20, 0x28792: 0x6cc3e620, 0x28793: 0x6cef2820, + 0x28797: 0x6c2eda20, + 0x28798: 0x6ca40a20, 0x2879a: 0x6cc92a20, 0x2879b: 0x6c45a220, + 0x2879c: 0x6c313220, 0x2879e: 0x6ca73020, + 0x287a1: 0x6c175020, 0x287a2: 0x6c515e20, 0x287a3: 0x6d0e9e20, + 0x287a9: 0x6ce8f020, 0x287aa: 0x6c104420, + 0x287ac: 0x6c559e20, 0x287ad: 0x6d1e5820, 0x287af: 0x6cd2d620, + 0x287b0: 0x6c1f7220, + 0x287b9: 0x6cff0e20, 0x287ba: 0x6c9ad620, 0x287bb: 0x6c852a20, + 0x287bc: 0x6ce37220, 0x287be: 0x6c64e620, + // Block 0xa1f, offset 0x287c0 + 0x287c2: 0x6d354e20, 0x287c3: 0x6c487220, + 0x287c4: 0x6c496220, 0x287c6: 0x6cb7cc20, + 0x287c8: 0x6c3a1820, 0x287c9: 0x6d229820, 0x287ca: 0x6d309620, 0x287cb: 0x6cf01c20, + 0x287cc: 0x6c35ba20, 0x287cd: 0x6c14da20, 0x287ce: 0x6cf6e020, + 0x287d0: 0x6c47d420, + 0x287d7: 0x6cc3fa20, + 0x287d8: 0x6c5c4620, 0x287da: 0x6d00f620, 0x287db: 0x6d1bf420, + 0x287dd: 0x6cdeaa20, 0x287de: 0x6cec5820, 0x287df: 0x6c3efe20, + 0x287e0: 0x6c6c0820, 0x287e1: 0x6cb0bc20, + 0x287e5: 0x6cd15020, 0x287e6: 0x6d21c620, 0x287e7: 0x6c7ace20, + 0x287e9: 0x6cb0ca20, 0x287ea: 0x6d010620, 0x287eb: 0x6caaac20, + 0x287ec: 0x6cfd2420, 0x287ed: 0x6c66ea20, 0x287ee: 0x6d074e20, + 0x287f0: 0x6c0a7e20, + 0x287f4: 0x6ca41220, 0x287f6: 0x6c897020, + 0x287f8: 0x6cb13420, + 0x287fc: 0x6c6eb820, + // Block 0xa20, offset 0x28800 + 0x28800: 0x6cde1c20, 0x28801: 0x6d0edc20, 0x28802: 0x6c00f820, + 0x28805: 0x6cff3020, 0x28806: 0x6cbaf420, 0x28807: 0x6cf48620, + 0x28808: 0x6ce15620, 0x2880a: 0x6c75f420, + 0x28810: 0x6c7e2820, + 0x28817: 0x6c813220, + 0x28819: 0x6ca5b020, + 0x2881c: 0x6c314a20, 0x2881d: 0x6cd54620, 0x2881f: 0x6c696220, + 0x28820: 0x6ca89c20, 0x28822: 0x6d21dc20, + 0x28828: 0x6c132020, 0x2882a: 0x6c696420, + 0x2882c: 0x6c57d620, 0x2882d: 0x6cf1c020, 0x2882e: 0x6d127020, 0x2882f: 0x6c35a020, + 0x28830: 0x6c49fe20, 0x28831: 0x6c572020, 0x28832: 0x6c68a620, + 0x2883a: 0x6c835820, + 0x2883c: 0x6cce2820, 0x2883d: 0x6d1e8020, 0x2883f: 0x6c2ac220, + // Block 0xa21, offset 0x28840 + 0x28840: 0x6c493820, 0x28841: 0x6ca97220, 0x28843: 0x6cdcc020, + 0x28844: 0x6cfe6c20, 0x28846: 0x6cc9b420, 0x28847: 0x6c168c20, + 0x2884e: 0x6cc90c20, + 0x28850: 0x6d277020, 0x28852: 0x6c3b4c20, 0x28853: 0x6c672420, + 0x28854: 0x6d076a20, + 0x28858: 0x6cf93020, 0x28859: 0x6cd54a20, + 0x28865: 0x6d013220, 0x28866: 0x6c87ac20, + 0x28869: 0x6ce80420, + 0x2886c: 0x6c9d1020, 0x2886d: 0x6c162020, 0x2886e: 0x6c5d6a20, + 0x28871: 0x6d3bb820, 0x28872: 0x6d273420, + 0x2887b: 0x6c801a20, + 0x2887d: 0x6d0d2c20, 0x2887e: 0x6c29a820, 0x2887f: 0x6cfe1820, + // Block 0xa22, offset 0x28880 + 0x28880: 0x6d267220, 0x28881: 0x6ce6b020, 0x28882: 0x6c07d220, 0x28883: 0x6cca4620, + 0x28884: 0x6cfc9620, 0x28885: 0x6c2e7a20, 0x28886: 0x6cb09c20, 0x28887: 0x6cb11220, + 0x28889: 0x6cde0c20, 0x2888b: 0x6c687220, + 0x2888c: 0x6d126620, 0x2888e: 0x6d271020, + 0x28890: 0x6cc61420, 0x28891: 0x6cbc1820, 0x28892: 0x6cb56220, 0x28893: 0x6c2da620, + 0x28894: 0x6cb56420, 0x28897: 0x6c4e7e20, + 0x28898: 0x6d253220, 0x28899: 0x6d1ee220, 0x2889a: 0x6c5fd020, 0x2889b: 0x6c412820, + 0x2889c: 0x6c4d0620, 0x2889d: 0x6cd30420, 0x2889f: 0x6cc0c820, + 0x288a9: 0x6cf1fa20, + 0x288ac: 0x6d321620, 0x288ad: 0x6cb2f220, 0x288ae: 0x6d0c5e20, 0x288af: 0x6c46e820, + 0x288b0: 0x6c720420, 0x288b1: 0x6ce52e20, + 0x288b7: 0x6c35d820, + 0x288ba: 0x6d0ace20, 0x288bb: 0x6c8c4620, + 0x288bc: 0x6c092620, + // Block 0xa23, offset 0x288c0 + 0x288c0: 0x6d3eea20, 0x288c1: 0x6c530820, 0x288c3: 0x6c347420, + 0x288c5: 0x6c333c20, 0x288c6: 0x6d087220, + 0x288c8: 0x6ccd3020, 0x288ca: 0x6ccd3220, 0x288cb: 0x6d10d220, + 0x288cc: 0x6cc4b020, + 0x288d4: 0x6ceaf820, 0x288d7: 0x6c0dac20, + 0x288d8: 0x6d069e20, 0x288d9: 0x6cea1a20, 0x288da: 0x6c19d220, + 0x288dc: 0x6c30fe20, 0x288dd: 0x6d171420, + 0x288e1: 0x6c180820, + 0x288f5: 0x6c731a20, 0x288f6: 0x6c5eae20, + 0x288f8: 0x6d2fae20, 0x288f9: 0x6c07de20, 0x288fb: 0x6ce4e220, + // Block 0xa24, offset 0x28900 + 0x28900: 0x6cae6420, + 0x28905: 0x6c3fda20, + 0x28916: 0x6ceb7620, + 0x28918: 0x6cfb3e20, 0x28919: 0x6ca69420, 0x2891a: 0x6c8f8620, + 0x2891d: 0x6d3d4220, 0x2891f: 0x6d32c020, + 0x28920: 0x6cd74820, 0x28921: 0x6d3f7c20, 0x28922: 0x6c3c4620, 0x28923: 0x6c32be20, + 0x28924: 0x6cb09420, 0x28925: 0x6d0d7820, 0x28926: 0x6cda1620, 0x28927: 0x6cc05820, + 0x28928: 0x6c362220, 0x28929: 0x6cb98e20, 0x2892b: 0x6cba0620, + 0x2892d: 0x6c10d420, 0x2892e: 0x6d0a8a20, + 0x28935: 0x6d3c8220, + 0x28938: 0x6c993a20, 0x28939: 0x6c68ee20, + 0x2893f: 0x6d2dea20, + // Block 0xa25, offset 0x28940 + 0x28940: 0x6caffa20, 0x28941: 0x6cf63620, 0x28942: 0x6d0e7c20, 0x28943: 0x6c3ab420, + 0x28944: 0x6ca83620, 0x28946: 0x6d364620, + 0x28948: 0x6cdd6a20, 0x2894a: 0x6d17d020, + 0x2894c: 0x6c82c620, 0x2894d: 0x6d06ea20, 0x2894f: 0x6d17d220, + 0x28952: 0x6cee9620, + 0x28955: 0x6c5ede20, 0x28956: 0x6c186e20, 0x28957: 0x6c2eba20, + 0x28963: 0x6d257020, + 0x28965: 0x6cf78020, 0x28967: 0x6c8e6220, + 0x28968: 0x6cdd6c20, + 0x28971: 0x6c07fc20, 0x28972: 0x6cfa4020, 0x28973: 0x6d0e8c20, + 0x28975: 0x6c24d020, 0x28977: 0x6c773420, + 0x2897a: 0x6cbe4e20, 0x2897b: 0x6c909a20, + 0x2897c: 0x6c087e20, + // Block 0xa26, offset 0x28980 + 0x28988: 0x6d2e6a20, 0x28989: 0x6c24ae20, 0x2898a: 0x6cf3e220, 0x2898b: 0x6d05c020, + 0x2898c: 0x6c187e20, 0x2898d: 0x6c4fd820, 0x2898e: 0x6c748820, + 0x28990: 0x6c192e20, 0x28991: 0x6c13fa20, 0x28992: 0x6c15ce20, 0x28993: 0x6d348820, + 0x28994: 0x6d0a2a20, + 0x289a3: 0x6c441a20, + 0x289a4: 0x6c18e220, 0x289a5: 0x6d132020, + 0x289aa: 0x6c1ee820, 0x289ab: 0x6cc1b820, + 0x289ac: 0x6d020620, 0x289ae: 0x6d2e7c20, 0x289af: 0x6c790820, + 0x289b1: 0x6c74ae20, + 0x289bd: 0x6cc1ba20, 0x289bf: 0x6c9b5020, + // Block 0xa27, offset 0x289c0 + 0x289c0: 0x6d134e20, 0x289c1: 0x6d406620, 0x289c2: 0x6cb45620, + 0x289c4: 0x6cd3e420, + 0x289c9: 0x6cd57220, 0x289ca: 0x6c152a20, + 0x289cd: 0x6c31c420, 0x289cf: 0x6c4c4a20, + 0x289d0: 0x6c92fe20, 0x289d1: 0x6d0c3820, + 0x289d6: 0x6ca7ba20, 0x289d7: 0x6c0d6620, + 0x289df: 0x6ce9cc20, + 0x289e6: 0x6ca6dc20, 0x289e7: 0x6c584220, + 0x289e8: 0x6cb9de20, + 0x289ef: 0x6cfa6020, + 0x289f2: 0x6c8dc620, + 0x289f7: 0x6c882820, + 0x289f9: 0x6d186e20, 0x289fb: 0x6c866620, + 0x289fc: 0x6cd8f020, 0x289ff: 0x6c279a20, + // Block 0xa28, offset 0x28a00 + 0x28a02: 0x6cf11620, + 0x28a05: 0x6c22c020, + 0x28a09: 0x6c6fbe20, 0x28a0a: 0x6c534420, + 0x28a0c: 0x6d210e20, 0x28a0e: 0x6c7c6e20, + 0x28a12: 0x6c4f8020, 0x28a13: 0x6c439620, + 0x28a14: 0x6c39e620, 0x28a17: 0x6c7c8020, + 0x28a1a: 0x6c4a6c20, 0x28a1b: 0x6c1bb020, + 0x28a1e: 0x6c6fc220, + 0x28a21: 0x6cdbce20, + 0x28a24: 0x6c2ec620, + 0x28a2c: 0x6cdc0c20, + 0x28a30: 0x6cbd8620, + 0x28a34: 0x6c4a8020, + 0x28a3b: 0x6d3c6620, + 0x28a3e: 0x6ce5de20, + // Block 0xa29, offset 0x28a40 + 0x28a41: 0x6d26d820, + 0x28a47: 0x6d419220, + 0x28a4f: 0x6cf3e820, + 0x28a50: 0x6c250820, + 0x28a5b: 0x6d36d220, + 0x28a60: 0x6cd72e20, 0x28a62: 0x6c301420, + 0x28a6d: 0x6cef3c20, + 0x28a7f: 0x6c1d4220, + // Block 0xa2a, offset 0x28a80 + 0x28a8b: 0x6cc8f420, + 0x28a96: 0x6c60d420, + 0x28a9c: 0x6c2de820, 0x28a9e: 0x6c124020, + 0x28aa0: 0x6c7a0c20, 0x28aa3: 0x6cef5420, + 0x28aa7: 0x6c11bc20, + 0x28aaa: 0x6c968020, 0x28aab: 0x6caba820, + 0x28ab2: 0x6cca3820, + 0x28ab6: 0x6cef6620, + 0x28abc: 0x6cca3e20, 0x28abf: 0x6c6c7020, + // Block 0xa2b, offset 0x28ac0 + 0x28acc: 0x6cef6e20, + 0x28ade: 0x6c115420, 0x28adf: 0x6c84d020, + 0x28aef: 0x6d273a20, + 0x28af4: 0x6d277220, 0x28af7: 0x6c196420, + 0x28afa: 0x6ccce420, + // Block 0xa2c, offset 0x28b00 + 0x28b02: 0x6c54d620, 0x28b03: 0x6ccc9e20, + 0x28b04: 0x6cea5820, 0x28b06: 0x6c3d3020, + 0x28b08: 0x6cbe1820, 0x28b09: 0x6d05ac20, + 0x28b0d: 0x6c1fe620, 0x28b0e: 0x6c400420, + 0x28b12: 0x6d181220, 0x28b13: 0x6c300c20, + 0x28b14: 0x6c3eb420, 0x28b15: 0x6c3eb620, 0x28b16: 0x6d2ad620, 0x28b17: 0x6cb4ae20, + 0x28b19: 0x6c8d2c20, + 0x28b1d: 0x6ccca020, 0x28b1e: 0x6cad9420, + 0x28b22: 0x6d1a8a20, 0x28b23: 0x6c961e20, + 0x28b24: 0x6c57b620, 0x28b25: 0x6d1b6e20, 0x28b26: 0x6c084a20, 0x28b27: 0x6d209820, + 0x28b28: 0x6ccf7020, 0x28b2a: 0x6d01f220, 0x28b2b: 0x6c1ee620, + 0x28b34: 0x6ccf7220, 0x28b35: 0x6c2d7220, + 0x28b39: 0x6d187020, 0x28b3b: 0x6c183a20, + 0x28b3c: 0x6c451c20, 0x28b3d: 0x6c8fa820, 0x28b3e: 0x6cb2ca20, 0x28b3f: 0x6d280220, + // Block 0xa2d, offset 0x28b40 + 0x28b40: 0x6d0eae20, 0x28b41: 0x6ca15a20, 0x28b43: 0x6cdbd820, + 0x28b4b: 0x6c6ea420, + 0x28b4d: 0x6cd99c20, 0x28b4e: 0x6cad0c20, + 0x28b50: 0x6d0b3820, 0x28b51: 0x6ccb5020, 0x28b52: 0x6c34b820, + 0x28b55: 0x6c207a20, 0x28b56: 0x6d022420, + 0x28b58: 0x6ce95a20, 0x28b59: 0x6c45b420, 0x28b5a: 0x6d08b620, + 0x28b5c: 0x6c7e4e20, 0x28b5e: 0x6c8d5e20, + 0x28b60: 0x6c279020, 0x28b61: 0x6d2c5220, + 0x28b6c: 0x6d1a0a20, 0x28b6d: 0x6cd93c20, 0x28b6f: 0x6d229a20, + 0x28b70: 0x6ceb4c20, 0x28b71: 0x6ceb4e20, + 0x28b74: 0x6c03c420, 0x28b75: 0x6cc4d620, 0x28b76: 0x6c0f8420, 0x28b77: 0x6c279c20, + 0x28b79: 0x6d2c5a20, 0x28b7a: 0x6c543a20, + 0x28b7e: 0x6c5b7820, + // Block 0xa2e, offset 0x28b80 + 0x28b85: 0x6c916020, + 0x28b8a: 0x6c8e2820, 0x28b8b: 0x6cc7d620, + 0x28b95: 0x6c28d220, 0x28b96: 0x6c9b6620, 0x28b97: 0x6cfa5820, + 0x28b98: 0x6cf26220, 0x28b99: 0x6c4e4620, 0x28b9a: 0x6d3eb020, 0x28b9b: 0x6d327420, + 0x28b9c: 0x6ccb7c20, 0x28b9d: 0x6c25fa20, 0x28b9e: 0x6c86e420, + 0x28ba0: 0x6c2ce220, 0x28ba1: 0x6c887e20, 0x28ba2: 0x6c46e020, + 0x28ba6: 0x6caee020, + 0x28baa: 0x6d1c0a20, + 0x28bac: 0x6c548420, 0x28bae: 0x6c336c20, 0x28baf: 0x6cf53e20, + 0x28bb7: 0x6cb1be20, + 0x28bb8: 0x6c520020, 0x28bba: 0x6c8fb820, 0x28bbb: 0x6ca18420, + 0x28bbc: 0x6c3a7620, 0x28bbd: 0x6c93be20, 0x28bbe: 0x6d2b2020, 0x28bbf: 0x6c0fae20, + // Block 0xa2f, offset 0x28bc0 + 0x28bc0: 0x6c2d9620, 0x28bc1: 0x6c98aa20, 0x28bc3: 0x6d3c4e20, + 0x28bc4: 0x6c932220, 0x28bc5: 0x6cace820, 0x28bc6: 0x6c337c20, 0x28bc7: 0x6c10ce20, + 0x28bcc: 0x6c189020, 0x28bcd: 0x6c981220, + 0x28bd6: 0x6cf72420, + 0x28bdd: 0x6c019a20, 0x28bde: 0x6d37dc20, + 0x28be0: 0x6ca44a20, 0x28be1: 0x6cebba20, 0x28be2: 0x6c519c20, + 0x28be5: 0x6c338220, 0x28be6: 0x6ceca020, 0x28be7: 0x6d37de20, + 0x28be8: 0x6c133e20, 0x28be9: 0x6c873620, 0x28bea: 0x6cd6aa20, + 0x28bee: 0x6c134020, + 0x28bf0: 0x6cd84a20, 0x28bf2: 0x6c338420, + 0x28bf4: 0x6c5cdc20, + 0x28bfc: 0x6c654220, 0x28bfd: 0x6ca9e220, 0x28bfe: 0x6c28ea20, 0x28bff: 0x6c409820, + // Block 0xa30, offset 0x28c00 + 0x28c00: 0x6c5e4e20, 0x28c01: 0x6c5c9620, 0x28c02: 0x6c228420, + 0x28c04: 0x6d1e6620, 0x28c05: 0x6cc9b620, 0x28c06: 0x6ce6a420, + 0x28c0e: 0x6c8f5a20, + 0x28c11: 0x6cdb8c20, 0x28c12: 0x6c8da220, 0x28c13: 0x6c97a620, + 0x28c14: 0x6c2d9c20, + 0x28c18: 0x6cad4020, 0x28c1a: 0x6c8da420, + 0x28c1d: 0x6c878620, 0x28c1f: 0x6caa1020, + 0x28c23: 0x6c8b7820, + 0x28c24: 0x6ccd6220, 0x28c26: 0x6c3afe20, + 0x28c2b: 0x6ccd6420, + 0x28c2e: 0x6c8db820, 0x28c2f: 0x6d2eaa20, + 0x28c31: 0x6c0d7820, 0x28c32: 0x6c84dc20, + 0x28c35: 0x6cd86420, 0x28c36: 0x6cc4fc20, 0x28c37: 0x6c655820, + 0x28c38: 0x6d3df020, 0x28c3b: 0x6c8dbe20, + 0x28c3c: 0x6c8dc020, 0x28c3d: 0x6c9c2420, 0x28c3f: 0x6cd6c820, + // Block 0xa31, offset 0x28c40 + 0x28c44: 0x6c8dc820, 0x28c47: 0x6c5d5020, + 0x28c4e: 0x6c8dee20, 0x28c4f: 0x6c655e20, + 0x28c50: 0x6cc23a20, + 0x28c54: 0x6ca9ea20, 0x28c55: 0x6c6e7c20, 0x28c56: 0x6c187020, + 0x28c5c: 0x6d318820, 0x28c5d: 0x6cbede20, 0x28c5f: 0x6cbee220, + 0x28c60: 0x6c36c820, 0x28c63: 0x6ccb9420, + 0x28c69: 0x6c071a20, 0x28c6b: 0x6c3a0020, + 0x28c6e: 0x6c3ab620, 0x28c6f: 0x6c3a3820, + 0x28c74: 0x6c399820, 0x28c75: 0x6c7a7c20, + 0x28c7a: 0x6d28c620, 0x28c7b: 0x6c5c2220, + 0x28c7d: 0x6c3a4420, + // Block 0xa32, offset 0x28c80 + 0x28c81: 0x6c338620, + 0x28c86: 0x6cabca20, 0x28c87: 0x6ca99c20, + 0x28c88: 0x6cad2e20, 0x28c89: 0x6c289820, 0x28c8a: 0x6c27e820, 0x28c8b: 0x6c00b220, + 0x28c8d: 0x6ce50e20, 0x28c8e: 0x6c17a420, 0x28c8f: 0x6c02ac20, + 0x28c90: 0x6c9aa020, 0x28c91: 0x6ca43420, + 0x28c94: 0x6c0ff420, 0x28c95: 0x6d23b420, 0x28c96: 0x6cfac420, 0x28c97: 0x6c973a20, + 0x28c9a: 0x6cb26420, + 0x28c9c: 0x6c331020, 0x28c9e: 0x6c2a3020, + 0x28ca1: 0x6d043a20, 0x28ca2: 0x6ca6ce20, 0x28ca3: 0x6c4dba20, + 0x28ca4: 0x6c1f7a20, 0x28ca5: 0x6cd64a20, 0x28ca6: 0x6c97cc20, + 0x28cac: 0x6ceda420, 0x28cad: 0x6d18dc20, 0x28cae: 0x6c2e4820, 0x28caf: 0x6d0c3a20, + 0x28cb1: 0x6cf32420, 0x28cb2: 0x6cdba220, + 0x28cb4: 0x6c019420, 0x28cb5: 0x6c7fd420, 0x28cb6: 0x6ca43e20, + 0x28cb8: 0x6cc0b620, 0x28cb9: 0x6c9e6820, 0x28cba: 0x6caae420, 0x28cbb: 0x6c11c020, + 0x28cbc: 0x6c11e620, + // Block 0xa33, offset 0x28cc0 + 0x28cc0: 0x6c808620, 0x28cc1: 0x6ce52a20, 0x28cc2: 0x6d139220, + 0x28cc4: 0x6ca74e20, 0x28cc6: 0x6cd64e20, + 0x28ccb: 0x6c228620, + 0x28ccd: 0x6c663a20, + 0x28cd0: 0x6c424020, + 0x28cd4: 0x6c673220, 0x28cd5: 0x6c4caa20, 0x28cd7: 0x6d2dd620, + 0x28cd9: 0x6c95dc20, + 0x28cdc: 0x6c5ebc20, 0x28cdd: 0x6c4b5220, + 0x28ce1: 0x6c63d220, 0x28ce2: 0x6c614a20, + 0x28ce5: 0x6d08a020, 0x28ce7: 0x6c3c5a20, + 0x28ceb: 0x6c09ea20, + 0x28cec: 0x6cb60a20, 0x28cef: 0x6d258e20, + 0x28cf0: 0x6c021a20, 0x28cf1: 0x6c2b3820, + 0x28cf4: 0x6c366820, 0x28cf5: 0x6c3b7e20, + 0x28cf8: 0x6c727020, 0x28cf9: 0x6ca64220, 0x28cfa: 0x6ceb3c20, + 0x28cfc: 0x6cd00c20, 0x28cfd: 0x6c3eca20, 0x28cfe: 0x6cf9e420, 0x28cff: 0x6cc1ac20, + // Block 0xa34, offset 0x28d00 + 0x28d00: 0x6cb39a20, 0x28d01: 0x6ced4220, 0x28d02: 0x6c8d4220, 0x28d03: 0x6c96d220, + 0x28d04: 0x6d394020, 0x28d05: 0x6c065c20, 0x28d07: 0x6d23b620, + 0x28d0c: 0x6c082a20, 0x28d0d: 0x6c973c20, 0x28d0f: 0x6c637a20, + 0x28d11: 0x6d102e20, 0x28d13: 0x6c7ade20, + 0x28d14: 0x6c69c020, 0x28d16: 0x6c0df220, + 0x28d1a: 0x6c962420, 0x28d1b: 0x6c4b1820, + 0x28d1c: 0x6c351420, 0x28d1d: 0x6d36d420, + 0x28d21: 0x6d326020, 0x28d22: 0x6c369e20, 0x28d23: 0x6d39ca20, + 0x28d24: 0x6c039020, + 0x28d28: 0x6d326220, 0x28d29: 0x6c3c6820, 0x28d2a: 0x6c313820, 0x28d2b: 0x6ca73c20, + 0x28d2c: 0x6c10bc20, 0x28d2d: 0x6c336020, 0x28d2e: 0x6ccc1c20, 0x28d2f: 0x6ccb6820, + 0x28d30: 0x6c0a6220, + 0x28d34: 0x6d36f420, 0x28d35: 0x6d309820, 0x28d36: 0x6c10be20, + 0x28d3a: 0x6c74c420, 0x28d3b: 0x6d0aa820, + 0x28d3f: 0x6cf90020, + // Block 0xa35, offset 0x28d40 + 0x28d41: 0x6d3db820, 0x28d42: 0x6c045a20, 0x28d43: 0x6d115c20, + 0x28d44: 0x6c1e3420, 0x28d45: 0x6cdeb620, 0x28d46: 0x6cb93020, + 0x28d48: 0x6ca53820, 0x28d49: 0x6d242020, 0x28d4a: 0x6c36bc20, 0x28d4b: 0x6c650820, + 0x28d4c: 0x6d18de20, 0x28d4d: 0x6cff2a20, 0x28d4f: 0x6ca88020, + 0x28d52: 0x6c0db620, + 0x28d57: 0x6c4cd420, + 0x28d58: 0x6d010820, 0x28d59: 0x6c2e4a20, + 0x28d5c: 0x6c70d620, 0x28d5d: 0x6cdda420, 0x28d5e: 0x6c2ef420, 0x28d5f: 0x6c3f1420, + 0x28d60: 0x6c9e4420, 0x28d61: 0x6cd3fa20, 0x28d62: 0x6d08c420, 0x28d63: 0x6ce39c20, + 0x28d64: 0x6d244420, 0x28d67: 0x6d011820, + 0x28d68: 0x6c3f1620, 0x28d69: 0x6d373420, 0x28d6a: 0x6ca65a20, 0x28d6b: 0x6d08c620, + 0x28d6c: 0x6d0fe820, 0x28d6e: 0x6c3cd020, 0x28d6f: 0x6d403c20, + 0x28d70: 0x6d395e20, 0x28d71: 0x6d07de20, + 0x28d75: 0x6d39d820, 0x28d77: 0x6c7edc20, + 0x28d79: 0x6d1d5820, 0x28d7a: 0x6c435c20, 0x28d7b: 0x6c7e2c20, + 0x28d7d: 0x6c358820, 0x28d7e: 0x6cef5620, 0x28d7f: 0x6c9a3620, + // Block 0xa36, offset 0x28d80 + 0x28d83: 0x6c57fe20, + 0x28d84: 0x6c1e3820, 0x28d86: 0x6cddb220, 0x28d87: 0x6cdec820, + 0x28d88: 0x6cddb420, 0x28d89: 0x6cdeca20, 0x28d8a: 0x6d097a20, + 0x28d8c: 0x6c460820, 0x28d8d: 0x6c643220, 0x28d8f: 0x6c0fb020, + 0x28d90: 0x6cdecc20, 0x28d91: 0x6d25f620, + 0x28d98: 0x6cdece20, + 0x28d9d: 0x6c20ec20, + 0x28da0: 0x6d047820, 0x28da1: 0x6c519820, 0x28da2: 0x6cdd4820, + 0x28da7: 0x6ca18a20, + 0x28da8: 0x6c1d2c20, 0x28da9: 0x6cdbe420, 0x28daa: 0x6d2b2220, 0x28dab: 0x6c933220, + 0x28dac: 0x6d2eea20, 0x28dad: 0x6c963c20, 0x28dae: 0x6d075820, 0x28daf: 0x6c653a20, + 0x28db0: 0x6ccd2220, 0x28db2: 0x6d075a20, + 0x28dbe: 0x6c67cc20, + // Block 0xa37, offset 0x28dc0 + 0x28dc2: 0x6c067c20, 0x28dc3: 0x6c970c20, + 0x28dc5: 0x6ce7a020, 0x28dc6: 0x6cf92c20, + 0x28dc9: 0x6cc6e620, 0x28dcb: 0x6cd12a20, + 0x28dcc: 0x6d396c20, 0x28dce: 0x6c654420, 0x28dcf: 0x6c409a20, + 0x28dd0: 0x6c2afa20, 0x28dd3: 0x6d1de220, + 0x28dd4: 0x6c70e420, 0x28dd6: 0x6d195e20, 0x28dd7: 0x6c054820, + 0x28dd9: 0x6ccb9620, 0x28dda: 0x6cdcc620, + 0x28ddc: 0x6c346e20, 0x28ddd: 0x6d028420, + 0x28de1: 0x6c58c820, + 0x28de5: 0x6cc80c20, 0x28de6: 0x6ca66c20, 0x28de7: 0x6d397020, + 0x28de8: 0x6c4bac20, 0x28dea: 0x6c964820, + 0x28df2: 0x6d342e20, 0x28df3: 0x6d076c20, + 0x28df5: 0x6d343020, 0x28df7: 0x6c752a20, + 0x28df8: 0x6c70e820, 0x28dfb: 0x6d25da20, + 0x28dfc: 0x6c91a420, 0x28dff: 0x6c0fda20, + // Block 0xa38, offset 0x28e00 + 0x28e02: 0x6cc6ea20, 0x28e03: 0x6d029620, + 0x28e09: 0x6cf83220, 0x28e0a: 0x6c959a20, + 0x28e0e: 0x6c447020, + 0x28e11: 0x6d414620, 0x28e12: 0x6c4eca20, + 0x28e14: 0x6c685620, 0x28e15: 0x6cc95420, 0x28e16: 0x6cbd8a20, 0x28e17: 0x6cc43c20, + 0x28e18: 0x6cad6420, 0x28e19: 0x6d26da20, 0x28e1a: 0x6c182c20, 0x28e1b: 0x6c3ece20, + 0x28e1c: 0x6cadc020, 0x28e1f: 0x6c9aa420, + 0x28e22: 0x6ce1de20, + 0x28e24: 0x6c78f020, 0x28e25: 0x6cf8d420, + 0x28e2b: 0x6c351620, + 0x28e2d: 0x6d187220, + 0x28e30: 0x6cdc7e20, 0x28e32: 0x6cf9f820, 0x28e33: 0x6c730420, + 0x28e35: 0x6cef3e20, 0x28e37: 0x6d18ba20, + 0x28e39: 0x6d242220, 0x28e3b: 0x6c045c20, + 0x28e3c: 0x6ceb5820, 0x28e3d: 0x6cdeb820, 0x28e3e: 0x6cad6e20, + // Block 0xa39, offset 0x28e40 + 0x28e42: 0x6c0dfc20, + 0x28e45: 0x6d286820, 0x28e46: 0x6d286a20, 0x28e47: 0x6c32e220, + 0x28e48: 0x6cc88620, 0x28e49: 0x6cef5820, + 0x28e4f: 0x6cf05020, + 0x28e50: 0x6c4b9820, 0x28e52: 0x6c26d420, 0x28e53: 0x6cfa1420, + 0x28e56: 0x6c5d4a20, 0x28e57: 0x6c733220, + 0x28e58: 0x6cdbe620, 0x28e5a: 0x6cdcbc20, + 0x28e5d: 0x6c90d620, 0x28e5e: 0x6c046420, 0x28e5f: 0x6d246e20, + 0x28e60: 0x6d337420, 0x28e61: 0x6c4ba620, 0x28e63: 0x6c7c5820, + 0x28e64: 0x6c42f220, 0x28e65: 0x6c281620, + 0x28e69: 0x6cfc5a20, 0x28e6a: 0x6d2d2420, 0x28e6b: 0x6ccb9820, + 0x28e6d: 0x6c784620, 0x28e6e: 0x6c105020, 0x28e6f: 0x6c0fce20, + 0x28e72: 0x6cdcc820, + 0x28e74: 0x6d249420, 0x28e75: 0x6c105220, 0x28e76: 0x6c6f9220, 0x28e77: 0x6c6f9420, + 0x28e79: 0x6c73aa20, 0x28e7a: 0x6c754220, + 0x28e7c: 0x6ca31620, 0x28e7d: 0x6d2d1c20, 0x28e7e: 0x6ce1ba20, 0x28e7f: 0x6cefec20, + // Block 0xa3a, offset 0x28e80 + 0x28e80: 0x6cf9dc20, 0x28e81: 0x6d01cc20, + 0x28e85: 0x6cc9a620, 0x28e86: 0x6c5f6620, + 0x28e89: 0x6d026a20, + 0x28e8c: 0x6c338c20, 0x28e8d: 0x6d3f2620, + 0x28e98: 0x6d25ee20, 0x28e99: 0x6cbe1e20, 0x28e9a: 0x6c3ed020, 0x28e9b: 0x6caeba20, + 0x28e9c: 0x6cad6620, 0x28e9e: 0x6d1b7620, + 0x28ea0: 0x6c52c220, 0x28ea1: 0x6d40d420, 0x28ea3: 0x6c45a820, + 0x28ea4: 0x6c308820, 0x28ea5: 0x6c50a820, 0x28ea6: 0x6cf31020, + 0x28ea8: 0x6cace220, 0x28eab: 0x6cdb2820, + 0x28eac: 0x6c76f020, 0x28ead: 0x6ca88220, 0x28eae: 0x6c4ffa20, 0x28eaf: 0x6c3cfa20, + 0x28eb0: 0x6c36be20, 0x28eb1: 0x6d137620, + 0x28eb4: 0x6ce69820, 0x28eb5: 0x6c309420, 0x28eb6: 0x6d30ba20, 0x28eb7: 0x6cca7820, + 0x28ebb: 0x6ca18c20, + 0x28ebc: 0x6cdb6020, 0x28ebe: 0x6c823220, + // Block 0xa3b, offset 0x28ec0 + 0x28ec0: 0x6cb4a620, 0x28ec1: 0x6c35a620, 0x28ec2: 0x6d3de220, 0x28ec3: 0x6d139820, + 0x28ec7: 0x6cfda220, + 0x28ec8: 0x6c4a2c20, 0x28ec9: 0x6cc59e20, 0x28eca: 0x6c8dfe20, + 0x28ecd: 0x6c02cc20, + 0x28ed0: 0x6c146820, 0x28ed2: 0x6c345620, 0x28ed3: 0x6cbf3620, + 0x28ed4: 0x6c7a4620, 0x28ed5: 0x6d05b020, 0x28ed6: 0x6c587c20, 0x28ed7: 0x6d10aa20, + 0x28ed8: 0x6d324620, 0x28ed9: 0x6ce6da20, 0x28eda: 0x6c082420, + 0x28edd: 0x6c020220, 0x28edf: 0x6c76b420, + 0x28ee1: 0x6c7a4c20, 0x28ee2: 0x6cadde20, 0x28ee3: 0x6d205220, + 0x28ee4: 0x6c02aa20, 0x28ee5: 0x6c9ad020, 0x28ee6: 0x6ca13620, + 0x28eec: 0x6c3f7220, 0x28eed: 0x6cbe5020, 0x28eee: 0x6c7e8220, 0x28eef: 0x6c30f220, + 0x28ef0: 0x6ce06c20, 0x28ef3: 0x6cba1c20, + 0x28ef4: 0x6d121c20, 0x28ef5: 0x6cf0b620, 0x28ef6: 0x6c558c20, 0x28ef7: 0x6ca14620, + 0x28ef8: 0x6c50a620, 0x28ef9: 0x6d08ac20, 0x28efb: 0x6c0a1220, + 0x28efc: 0x6cb31a20, 0x28efe: 0x6c2b3c20, + // Block 0xa3c, offset 0x28f00 + 0x28f00: 0x6d31f020, 0x28f02: 0x6cd1e420, 0x28f03: 0x6c76e420, + 0x28f04: 0x6c130c20, 0x28f07: 0x6d05c420, + 0x28f08: 0x6d31f220, 0x28f0a: 0x6d3a7820, + 0x28f0f: 0x6c5c2420, + 0x28f10: 0x6c1bc020, 0x28f13: 0x6c53aa20, + 0x28f14: 0x6caa0420, 0x28f15: 0x6ca86a20, 0x28f16: 0x6d0eb020, + 0x28f18: 0x6c1d4020, 0x28f19: 0x6c3f8620, 0x28f1a: 0x6c49f420, 0x28f1b: 0x6cb52c20, + 0x28f1d: 0x6c44a220, 0x28f1e: 0x6ce6e020, + 0x28f22: 0x6ce07220, 0x28f23: 0x6cba2020, + 0x28f26: 0x6c702020, 0x28f27: 0x6d05e220, + 0x28f28: 0x6cb71620, 0x28f2a: 0x6d326420, + 0x28f2e: 0x6cc09c20, + 0x28f30: 0x6c35bc20, 0x28f33: 0x6c5c4c20, + 0x28f34: 0x6c53d820, 0x28f35: 0x6cbeb420, 0x28f37: 0x6c17e020, + 0x28f3a: 0x6c405c20, + 0x28f3c: 0x6c52ce20, 0x28f3d: 0x6cf6e220, 0x28f3e: 0x6cf3ee20, 0x28f3f: 0x6c987820, + // Block 0xa3d, offset 0x28f40 + 0x28f42: 0x6ce2fc20, + 0x28f45: 0x6c52d020, + 0x28f50: 0x6c0f6a20, 0x28f52: 0x6cbde820, 0x28f53: 0x6c44a420, + 0x28f56: 0x6c3f0020, 0x28f57: 0x6c7cde20, + 0x28f5d: 0x6c0cfe20, 0x28f5e: 0x6c6eba20, 0x28f5f: 0x6c76f220, + 0x28f60: 0x6c4a9020, 0x28f62: 0x6c432820, 0x28f63: 0x6d05f420, + 0x28f64: 0x6c01d420, 0x28f65: 0x6d26f420, 0x28f66: 0x6cf53420, 0x28f67: 0x6d157a20, + 0x28f68: 0x6c6dda20, 0x28f6a: 0x6c930220, 0x28f6b: 0x6cc31c20, + 0x28f6c: 0x6ce9c820, 0x28f6e: 0x6c62a420, + 0x28f7a: 0x6c6f3420, 0x28f7b: 0x6c74d420, + 0x28f7c: 0x6cb1d620, 0x28f7d: 0x6c7d8a20, + // Block 0xa3e, offset 0x28f80 + 0x28f80: 0x6cec7420, 0x28f81: 0x6c5c7620, 0x28f82: 0x6c341220, 0x28f83: 0x6d25f420, + 0x28f84: 0x6c6b6a20, 0x28f86: 0x6c4b9020, 0x28f87: 0x6c432e20, + 0x28f88: 0x6cb3b220, 0x28f89: 0x6c9ade20, 0x28f8a: 0x6d3bf020, 0x28f8b: 0x6c4f9c20, + 0x28f94: 0x6d1e0420, 0x28f95: 0x6cc0a420, 0x28f97: 0x6c834e20, + 0x28f98: 0x6c020620, 0x28f99: 0x6cb08020, 0x28f9a: 0x6cf24220, + 0x28f9d: 0x6cbe2a20, 0x28f9f: 0x6cbdee20, + 0x28fa0: 0x6c9f0620, 0x28fa1: 0x6c30d020, 0x28fa2: 0x6c9c9420, 0x28fa3: 0x6d2db820, + 0x28fa5: 0x6cbec020, 0x28fa6: 0x6d158c20, + 0x28fae: 0x6c04aa20, + 0x28fb1: 0x6c730a20, 0x28fb3: 0x6d2b2420, + 0x28fb4: 0x6d075c20, 0x28fb5: 0x6c7ff420, 0x28fb6: 0x6c968220, 0x28fb7: 0x6c968420, + 0x28fb8: 0x6cab6220, 0x28fb9: 0x6c06c020, 0x28fbb: 0x6cb3e820, + 0x28fbc: 0x6d075e20, + // Block 0xa3f, offset 0x28fc0 + 0x28fc0: 0x6c02fe20, + 0x28fc6: 0x6c53ae20, + 0x28fc9: 0x6c53b020, 0x28fca: 0x6d2e3c20, + 0x28fcc: 0x6ccbb620, 0x28fcd: 0x6c433020, 0x28fcf: 0x6cb34420, + 0x28fd0: 0x6c8aae20, + 0x28fd5: 0x6cec7a20, 0x28fd6: 0x6d07f420, + 0x28fdc: 0x6c7cb820, 0x28fdf: 0x6c36ea20, + 0x28fe0: 0x6c4f3e20, 0x28fe1: 0x6ccb9a20, + 0x28fe4: 0x6c28ee20, + 0x28fea: 0x6d07f620, + 0x28fec: 0x6c36f420, 0x28fed: 0x6c415a20, 0x28fef: 0x6c29c820, + 0x28ff1: 0x6c9bfa20, 0x28ff2: 0x6d143e20, 0x28ff3: 0x6ca94e20, + 0x28ff5: 0x6cb23020, + 0x28ff9: 0x6c124620, + 0x28ffe: 0x6d263c20, + // Block 0xa40, offset 0x29000 + 0x29000: 0x6c36fc20, 0x29001: 0x6ca8ca20, + 0x29004: 0x6d1b2e20, 0x29007: 0x6cbbca20, + 0x29009: 0x6c52e220, 0x2900a: 0x6c8dca20, + 0x2900c: 0x6c14e820, 0x2900d: 0x6d1d3020, + 0x29012: 0x6c494820, + 0x29014: 0x6ca7ca20, 0x29015: 0x6d05c620, 0x29016: 0x6cdff820, 0x29017: 0x6c6d6e20, + 0x2901b: 0x6caea620, + 0x2901d: 0x6c89e820, + 0x29020: 0x6c072c20, 0x29023: 0x6d030020, + 0x29024: 0x6cea6020, 0x29025: 0x6c174e20, 0x29026: 0x6c41a420, + 0x29028: 0x6c54e020, 0x29029: 0x6cee2e20, + 0x2902c: 0x6c3eba20, 0x2902d: 0x6cae2220, 0x2902f: 0x6ca4b620, + 0x29030: 0x6d0a1820, 0x29031: 0x6d096c20, + 0x29034: 0x6c8f1220, 0x29035: 0x6c8d4420, 0x29036: 0x6d097020, 0x29037: 0x6cc12e20, + 0x29038: 0x6c4fda20, 0x29039: 0x6d153c20, 0x2903a: 0x6c4ef420, + 0x2903c: 0x6c3ed220, 0x2903d: 0x6c038a20, 0x2903e: 0x6d153e20, + // Block 0xa41, offset 0x29040 + 0x29040: 0x6c0f3820, + 0x29044: 0x6c52c420, 0x29045: 0x6c866a20, + 0x29049: 0x6cc98820, 0x2904a: 0x6cf6b220, + 0x2904e: 0x6cd3ce20, 0x2904f: 0x6cb15e20, + 0x29050: 0x6c57c220, 0x29051: 0x6d155220, 0x29052: 0x6c0f5220, 0x29053: 0x6c0f6c20, + 0x29054: 0x6ca57620, 0x29055: 0x6cc09e20, + 0x29058: 0x6cf01e20, 0x29059: 0x6c184a20, 0x2905a: 0x6d1f7820, + 0x2905c: 0x6cf0dc20, 0x2905d: 0x6c5b6820, 0x2905e: 0x6cc99a20, + 0x29062: 0x6c53da20, 0x29063: 0x6cd9e820, + 0x29064: 0x6c4f1220, 0x29065: 0x6cad6a20, 0x29067: 0x6c39b020, + 0x29069: 0x6c8eae20, 0x2906a: 0x6d395a20, 0x2906b: 0x6cb02a20, + 0x2906d: 0x6c86b620, + 0x29070: 0x6c20e820, 0x29071: 0x6cf6fc20, 0x29072: 0x6d330220, + 0x29074: 0x6c085620, 0x29075: 0x6d333420, 0x29076: 0x6cdc9620, 0x29077: 0x6d0de420, + 0x2907c: 0x6cbe5a20, 0x2907d: 0x6cf53620, 0x2907e: 0x6c89a620, + // Block 0xa42, offset 0x29080 + 0x29080: 0x6d2fe420, 0x29081: 0x6c897220, + 0x29085: 0x6c6a3c20, 0x29087: 0x6c52da20, + 0x29088: 0x6d1ec020, 0x2908a: 0x6c7ea220, 0x2908b: 0x6c548620, + 0x2908d: 0x6d263620, 0x2908e: 0x6c539620, 0x2908f: 0x6d137820, + 0x29091: 0x6d1d1c20, 0x29092: 0x6d086020, 0x29093: 0x6d1f8620, + 0x29098: 0x6cc32020, + 0x2909c: 0x6ce15e20, 0x2909d: 0x6cddb620, 0x2909f: 0x6c871020, + 0x290a0: 0x6cd9fc20, 0x290a1: 0x6c871220, + 0x290a4: 0x6d245420, 0x290a7: 0x6d192020, + 0x290ad: 0x6d051220, 0x290ae: 0x6c028620, 0x290af: 0x6ce97420, + 0x290b0: 0x6cdb6220, 0x290b1: 0x6cd67a20, 0x290b3: 0x6d247020, + 0x290b5: 0x6c3c7a20, + 0x290b9: 0x6cdb6620, 0x290ba: 0x6ce9da20, 0x290bb: 0x6d247220, + 0x290bc: 0x6d331020, 0x290bd: 0x6d331220, 0x290bf: 0x6ce25420, + // Block 0xa43, offset 0x290c0 + 0x290c4: 0x6c8ee020, 0x290c6: 0x6c1a5c20, 0x290c7: 0x6cdc0620, + 0x290c8: 0x6ccad820, + 0x290cf: 0x6c47f420, + 0x290d0: 0x6c3c8a20, 0x290d1: 0x6c8b8420, 0x290d2: 0x6cb17a20, + 0x290d6: 0x6c87b620, + 0x290d8: 0x6c901820, 0x290d9: 0x6c1e7020, 0x290da: 0x6cff6220, 0x290db: 0x6c52e420, + 0x290dc: 0x6d029820, 0x290dd: 0x6ccf9420, + 0x290e0: 0x6c902620, 0x290e1: 0x6c53ea20, 0x290e2: 0x6d083e20, 0x290e3: 0x6c3c9620, + 0x290e5: 0x6c037420, 0x290e6: 0x6c0ecc20, 0x290e7: 0x6ce22620, + 0x290e8: 0x6cdabc20, 0x290e9: 0x6d2fb820, 0x290ea: 0x6c0c0220, 0x290eb: 0x6cd9c420, + 0x290ec: 0x6ce9aa20, 0x290ed: 0x6cdd8820, 0x290ee: 0x6cfefa20, 0x290ef: 0x6c527220, + 0x290f0: 0x6ccac620, 0x290f2: 0x6c3a1020, + 0x290f7: 0x6ca9aa20, + 0x290f8: 0x6c98ac20, + 0x290fd: 0x6c58ca20, 0x290fe: 0x6d343420, + // Block 0xa44, offset 0x29100 + 0x29102: 0x6d171620, + 0x29104: 0x6d22fe20, 0x29107: 0x6d14f020, + 0x29108: 0x6d264e20, 0x29109: 0x6c1b2220, + 0x29115: 0x6d1aea20, 0x29116: 0x6ca9a620, 0x29117: 0x6cc71420, + 0x2911b: 0x6ca34a20, + 0x29123: 0x6ce4a620, + 0x29125: 0x6c035020, + 0x2912a: 0x6c379c20, 0x2912b: 0x6d32dc20, + 0x2912c: 0x6c366a20, 0x2912d: 0x6cb3dc20, 0x2912e: 0x6c5efa20, 0x2912f: 0x6ca5f620, + 0x29131: 0x6c6f2020, 0x29132: 0x6c63d420, + 0x29135: 0x6c41a620, + 0x29139: 0x6c8d2e20, 0x2913b: 0x6d41bc20, + 0x2913e: 0x6c073820, + // Block 0xa45, offset 0x29140 + 0x29145: 0x6cd4f220, 0x29146: 0x6d15fc20, 0x29147: 0x6cabf420, + 0x2914b: 0x6ca50e20, + 0x2914c: 0x6cd3c020, 0x2914e: 0x6c97c620, 0x2914f: 0x6cd3c220, + 0x29151: 0x6ce35e20, + 0x29158: 0x6c45a420, + 0x2915d: 0x6c834420, 0x2915e: 0x6c061020, 0x2915f: 0x6d251020, + 0x29160: 0x6d422820, 0x29161: 0x6c80e620, 0x29162: 0x6d04f220, + 0x29165: 0x6d294220, 0x29166: 0x6c1a8620, 0x29167: 0x6c64e820, + 0x29168: 0x6c99b420, 0x29169: 0x6c63e220, 0x2916a: 0x6d23de20, + 0x2916d: 0x6d23e020, 0x2916e: 0x6d155420, + 0x29172: 0x6c982020, 0x29173: 0x6d294420, + 0x29175: 0x6d3ca820, 0x29176: 0x6ce37620, + 0x29179: 0x6cf8d620, 0x2917a: 0x6c716020, 0x2917b: 0x6d299e20, + 0x2917c: 0x6c92e420, 0x2917d: 0x6ce24420, + // Block 0xa46, offset 0x29180 + 0x29180: 0x6d3cb020, 0x29181: 0x6c8d6020, 0x29183: 0x6c729c20, + 0x29186: 0x6c5f4c20, 0x29187: 0x6c733020, + 0x2918a: 0x6d3e9a20, + 0x2918c: 0x6d265a20, 0x2918d: 0x6c301620, + 0x29192: 0x6ca47020, + 0x29196: 0x6c1d2420, + 0x2919f: 0x6c022020, + 0x291a3: 0x6c44e020, + 0x291a5: 0x6c0e9420, 0x291a6: 0x6c2fbc20, 0x291a7: 0x6cf02220, + 0x291ac: 0x6cc31a20, 0x291ad: 0x6c783a20, + 0x291b0: 0x6cb0cc20, 0x291b1: 0x6c76f420, 0x291b2: 0x6c3f0e20, 0x291b3: 0x6d1e6220, + 0x291b5: 0x6ce96620, 0x291b6: 0x6ce81e20, 0x291b7: 0x6d205a20, + 0x291b8: 0x6d10c020, 0x291ba: 0x6d126c20, + 0x291bd: 0x6d0ed220, + // Block 0xa47, offset 0x291c0 + 0x291c8: 0x6cfbb220, 0x291ca: 0x6ce38e20, + 0x291cc: 0x6cdc9820, + 0x291d0: 0x6c227420, + 0x291d4: 0x6d066220, 0x291d5: 0x6cf53820, 0x291d6: 0x6c117420, 0x291d7: 0x6d242420, + 0x291da: 0x6c15f820, 0x291db: 0x6cfa1020, + 0x291dd: 0x6c77ce20, 0x291de: 0x6c124220, 0x291df: 0x6c13bc20, + 0x291e0: 0x6cc0b420, 0x291e3: 0x6c267220, + 0x291e5: 0x6cdb5620, + 0x291e8: 0x6c571c20, + 0x291f7: 0x6cf38e20, + 0x291f8: 0x6d251a20, + 0x291fd: 0x6c681220, 0x291fe: 0x6cfe0820, 0x291ff: 0x6d2d0620, + // Block 0xa48, offset 0x29200 + 0x29200: 0x6cca3a20, 0x29201: 0x6ca09220, 0x29203: 0x6cce3e20, + 0x29204: 0x6c12a420, 0x29205: 0x6cdbe220, 0x29206: 0x6c208420, 0x29207: 0x6c9c9620, + 0x29208: 0x6d3a3420, 0x29209: 0x6c1d2820, 0x2920a: 0x6c62c220, 0x2920b: 0x6c1d2a20, + 0x29219: 0x6c889020, + 0x2921e: 0x6c4d8020, + 0x29224: 0x6c33c220, 0x29225: 0x6cfe0c20, 0x29226: 0x6c19ae20, 0x29227: 0x6cce4020, + 0x29228: 0x6c873820, 0x29229: 0x6c5a2c20, + 0x2922c: 0x6c2af820, 0x2922f: 0x6c897a20, + 0x29236: 0x6d28a420, + 0x2923a: 0x6c5e4420, 0x2923b: 0x6c8c0420, + 0x2923e: 0x6c31ee20, 0x2923f: 0x6c4f3620, + // Block 0xa49, offset 0x29240 + 0x29240: 0x6d1ddc20, 0x29241: 0x6d263a20, 0x29242: 0x6c4cf420, 0x29243: 0x6c8d9c20, + 0x29245: 0x6c88de20, 0x29247: 0x6c030220, + 0x29248: 0x6c292220, 0x29249: 0x6d194e20, 0x2924a: 0x6ca9e420, 0x2924b: 0x6ccde620, + 0x2924d: 0x6d035c20, + 0x29250: 0x6c26da20, 0x29251: 0x6d247420, 0x29252: 0x6c118220, 0x29253: 0x6cf33420, + 0x29254: 0x6c141420, 0x29255: 0x6c0fca20, 0x29257: 0x6c663020, + 0x2925e: 0x6c9bb820, 0x2925f: 0x6cf05e20, + 0x29260: 0x6ca09e20, + 0x29265: 0x6cd73820, 0x29266: 0x6c6b8220, 0x29267: 0x6cd7b220, + 0x29268: 0x6c5e5420, 0x2926b: 0x6c21ee20, + 0x2926d: 0x6c901420, 0x2926e: 0x6c582420, + 0x29270: 0x6ceada20, 0x29273: 0x6d220620, + 0x29276: 0x6c165a20, 0x29277: 0x6d1dee20, + 0x29278: 0x6c5e5e20, 0x2927a: 0x6c806820, + 0x2927f: 0x6ca30c20, + // Block 0xa4a, offset 0x29280 + 0x29280: 0x6c032220, 0x29281: 0x6c418020, 0x29282: 0x6d15cc20, 0x29283: 0x6c63ac20, + 0x29285: 0x6c269220, 0x29286: 0x6c2fa420, 0x29287: 0x6d0a8220, + 0x29288: 0x6cc59620, 0x29289: 0x6c732020, 0x2928a: 0x6ce94c20, 0x2928b: 0x6d064020, + 0x2928c: 0x6cd99220, 0x2928e: 0x6c128420, 0x2928f: 0x6c198e20, + 0x29291: 0x6c2f7020, + 0x2929a: 0x6c4d2620, + 0x2929f: 0x6cf47220, + 0x292a6: 0x6cb72020, + 0x292a8: 0x6c5f6820, + 0x292ae: 0x6c7cac20, 0x292af: 0x6cef5e20, + 0x292b6: 0x6cd44e20, 0x292b7: 0x6c3f2820, + 0x292b9: 0x6ce97a20, 0x292bb: 0x6c0cf020, + 0x292bd: 0x6cdff020, 0x292be: 0x6c4f5220, 0x292bf: 0x6cb1ce20, + // Block 0xa4b, offset 0x292c0 + 0x292c3: 0x6d217e20, + 0x292c4: 0x6cdffa20, + 0x292cc: 0x6cfd9020, 0x292ce: 0x6d050c20, + 0x292d3: 0x6cf26820, + 0x292d4: 0x6c4d8220, 0x292d5: 0x6caef220, + 0x292dd: 0x6ce04620, 0x292df: 0x6c0d0a20, + 0x292e0: 0x6cfd9e20, 0x292e3: 0x6d162e20, + 0x292e6: 0x6cb19020, 0x292e7: 0x6c586c20, + 0x292e8: 0x6ca24020, 0x292e9: 0x6c035220, 0x292eb: 0x6c396020, + 0x292ef: 0x6c2f6020, + 0x292f7: 0x6c3b3c20, + 0x292fa: 0x6c6bf620, + 0x292fe: 0x6cdd4a20, + // Block 0xa4c, offset 0x29300 + 0x29304: 0x6ced9220, 0x29305: 0x6c43a220, + 0x29308: 0x6c3b3e20, 0x2930a: 0x6ceb4420, + 0x2930c: 0x6cf1a620, 0x2930d: 0x6c487620, 0x2930e: 0x6c343620, + 0x29310: 0x6d308820, 0x29311: 0x6c22a020, 0x29312: 0x6d11ce20, + 0x29314: 0x6c050420, 0x29315: 0x6c10b820, 0x29316: 0x6ca15c20, + 0x29318: 0x6cb35e20, 0x2931b: 0x6c443020, + 0x2931e: 0x6c8e9220, + 0x29321: 0x6cc4d020, + 0x29328: 0x6c41b020, 0x2932a: 0x6c55a220, 0x2932b: 0x6ca1e620, + 0x2932e: 0x6d04f620, 0x2932f: 0x6c59a220, + 0x29330: 0x6c3f0220, 0x29331: 0x6c5b4220, 0x29333: 0x6cc1ca20, + 0x29334: 0x6c6b3e20, 0x29335: 0x6cead220, 0x29336: 0x6d21ac20, 0x29337: 0x6ca16820, + 0x29338: 0x6d38b220, 0x29339: 0x6c702820, 0x2933b: 0x6cd53c20, + 0x2933c: 0x6c7bae20, 0x2933d: 0x6cbf6620, 0x2933e: 0x6c8b2c20, 0x2933f: 0x6c405e20, + // Block 0xa4d, offset 0x29340 + 0x2934a: 0x6d074420, + 0x29356: 0x6c8c6e20, + 0x29358: 0x6ca88420, 0x2935a: 0x6caf9c20, + 0x2935c: 0x6c406e20, 0x2935d: 0x6c10c620, 0x2935e: 0x6d18e020, + 0x29361: 0x6c0f8620, 0x29363: 0x6c358420, + 0x29369: 0x6d30a620, 0x2936b: 0x6c86b820, + 0x2936e: 0x6ce92620, 0x2936f: 0x6c26cc20, + 0x29371: 0x6c931620, 0x29372: 0x6d0c4020, 0x29373: 0x6c301e20, + 0x29374: 0x6cbcfc20, 0x29375: 0x6ced5c20, 0x29376: 0x6ca03c20, 0x29377: 0x6d418020, + 0x29378: 0x6c408420, 0x29379: 0x6cc15620, 0x2937a: 0x6c078e20, 0x2937b: 0x6c02b420, + 0x2937c: 0x6cbaf620, + // Block 0xa4e, offset 0x29380 + 0x29381: 0x6cc44020, + 0x29388: 0x6cc41020, 0x29389: 0x6c576a20, 0x2938a: 0x6cfd2a20, 0x2938b: 0x6c7dd820, + 0x2938f: 0x6c258220, + 0x29392: 0x6d158820, + 0x29396: 0x6c1ae420, 0x29397: 0x6d404020, + 0x29398: 0x6ca52420, 0x29399: 0x6c1a5820, 0x2939a: 0x6c32a820, 0x2939b: 0x6d1e0620, + 0x2939c: 0x6d30e020, 0x2939e: 0x6ce0b020, 0x2939f: 0x6d0ff020, + 0x293a0: 0x6d011e20, 0x293a1: 0x6d07ec20, 0x293a3: 0x6c32e420, + 0x293a4: 0x6cd64c20, 0x293a5: 0x6cfbbe20, 0x293a6: 0x6cfbc020, + 0x293a9: 0x6c359e20, + 0x293b2: 0x6c7e5420, + 0x293b8: 0x6cf10220, 0x293b9: 0x6d1ec820, 0x293ba: 0x6d21e020, + 0x293bd: 0x6ce30420, 0x293bf: 0x6c6c7220, + // Block 0xa4f, offset 0x293c0 + 0x293c1: 0x6ce16420, 0x293c2: 0x6cb69e20, + 0x293c4: 0x6c2cec20, 0x293c5: 0x6ce1fe20, 0x293c6: 0x6c941820, 0x293c7: 0x6d2e9a20, + 0x293c8: 0x6cf17020, 0x293c9: 0x6c62d620, 0x293ca: 0x6c023820, 0x293cb: 0x6cabaa20, + 0x293cc: 0x6cb88420, + 0x293d0: 0x6cd21220, 0x293d1: 0x6cde2420, + 0x293d4: 0x6ca18e20, + 0x293d8: 0x6d1f9220, + 0x293e0: 0x6d2c6a20, 0x293e3: 0x6d117220, + 0x293eb: 0x6c1cfa20, + 0x293ec: 0x6c84b220, 0x293ed: 0x6d21f420, 0x293ee: 0x6c161420, 0x293ef: 0x6d143620, + 0x293f2: 0x6c1c9420, + 0x293f4: 0x6c84b420, + 0x293fd: 0x6ce90a20, 0x293ff: 0x6d40fe20, + // Block 0xa50, offset 0x29400 + 0x29402: 0x6cfbd620, + 0x29407: 0x6cf93620, + 0x29409: 0x6c0d0c20, 0x2940a: 0x6c4e4a20, 0x2940b: 0x6cb6b020, + 0x2940c: 0x6cca7a20, 0x2940e: 0x6c3a2c20, + 0x29410: 0x6ccdea20, + 0x29418: 0x6c584820, + 0x29420: 0x6c059a20, 0x29421: 0x6d220220, 0x29422: 0x6d220420, + 0x29424: 0x6c610420, + 0x29431: 0x6c7b0620, 0x29432: 0x6d3fe420, + 0x29439: 0x6cfd5420, 0x2943a: 0x6c9bc020, + // Block 0xa51, offset 0x29440 + 0x29443: 0x6c87b820, + 0x29444: 0x6d377820, 0x29445: 0x6c38fc20, 0x29446: 0x6c8b8820, 0x29447: 0x6c115620, + 0x29448: 0x6c320a20, 0x29449: 0x6c4a0020, 0x2944a: 0x6d04b020, 0x2944b: 0x6c84ea20, + 0x2944c: 0x6cb80c20, 0x2944f: 0x6c753420, + 0x29450: 0x6ceade20, 0x29452: 0x6c72d220, 0x29453: 0x6cff6420, + 0x29458: 0x6cc23420, + 0x2945c: 0x6d3bba20, + 0x29461: 0x6c754420, + 0x29466: 0x6c6bbc20, + 0x29468: 0x6d390620, 0x29469: 0x6cfc8820, 0x2946a: 0x6c8f7020, 0x2946b: 0x6d100420, + 0x2946c: 0x6cc4b220, 0x2946d: 0x6d16d620, 0x2946e: 0x6c8ae020, 0x2946f: 0x6c0e5620, + 0x29470: 0x6c5ce220, 0x29471: 0x6c61be20, 0x29472: 0x6c306a20, 0x29473: 0x6d386420, + 0x29474: 0x6cc29220, 0x29475: 0x6c6a9c20, + 0x2947a: 0x6c710820, + 0x2947c: 0x6c078620, 0x2947f: 0x6c087620, + // Block 0xa52, offset 0x29480 + 0x29480: 0x6c43fe20, 0x29481: 0x6c217c20, 0x29483: 0x6cb9a220, + 0x29484: 0x6cd9c820, 0x29485: 0x6cf0a020, 0x29486: 0x6c1a1420, 0x29487: 0x6c909020, + 0x29488: 0x6d213e20, 0x29489: 0x6c7e4620, 0x2948a: 0x6cb9a420, 0x2948b: 0x6c2cd220, + 0x2948c: 0x6cde0e20, 0x2948d: 0x6d2e6c20, 0x2948f: 0x6c38b620, + 0x29490: 0x6c8b5620, 0x29491: 0x6ce64420, 0x29492: 0x6c5ebe20, 0x29493: 0x6cb8de20, + 0x29494: 0x6c556820, 0x29497: 0x6d214220, + 0x29498: 0x6cb79c20, 0x29499: 0x6d214420, 0x2949a: 0x6cebe020, + 0x2949c: 0x6c03bc20, 0x2949d: 0x6cb61020, 0x2949e: 0x6cc95620, 0x2949f: 0x6cbb8620, + 0x294a0: 0x6d0bc220, 0x294a1: 0x6cfc1e20, + 0x294a8: 0x6c220820, 0x294a9: 0x6c396220, 0x294ab: 0x6c7dba20, + 0x294ac: 0x6c4be020, 0x294ad: 0x6cc39220, 0x294ae: 0x6c367a20, 0x294af: 0x6cbf4e20, + 0x294b2: 0x6c96d420, 0x294b3: 0x6c7a5820, + 0x294b4: 0x6d11c620, 0x294b7: 0x6cc39420, + 0x294b8: 0x6c1e6420, 0x294b9: 0x6c642c20, 0x294bb: 0x6d3a7a20, + 0x294bd: 0x6c331220, 0x294be: 0x6cec0a20, + // Block 0xa53, offset 0x294c0 + 0x294c0: 0x6ca51220, + 0x294c4: 0x6d0cce20, 0x294c5: 0x6ce78020, + 0x294cb: 0x6d03fe20, + 0x294cc: 0x6c4bee20, 0x294cd: 0x6cb26a20, + 0x294d1: 0x6d229c20, 0x294d2: 0x6c51ec20, + 0x294d4: 0x6d3da420, 0x294d7: 0x6ccf0020, + 0x294d8: 0x6d22a220, 0x294db: 0x6c62a620, + 0x294dd: 0x6cbaea20, 0x294de: 0x6cd73220, 0x294df: 0x6c21de20, + 0x294e0: 0x6d40e820, 0x294e1: 0x6c838e20, 0x294e2: 0x6ca60e20, + 0x294e4: 0x6cebf820, 0x294e5: 0x6d2c5c20, 0x294e7: 0x6c28d420, + 0x294ee: 0x6c328820, 0x294ef: 0x6c0bd020, + 0x294f0: 0x6c6a3e20, 0x294f1: 0x6cb87c20, 0x294f2: 0x6c519020, 0x294f3: 0x6c1d5e20, + 0x294f4: 0x6d0ce620, 0x294f6: 0x6d0ee020, + 0x294fa: 0x6cd94e20, 0x294fb: 0x6ce2c420, + 0x294fc: 0x6d11e020, 0x294fe: 0x6c779620, + // Block 0xa54, offset 0x29500 + 0x29500: 0x6d3c6e20, 0x29501: 0x6c4b9a20, 0x29502: 0x6c005a20, 0x29503: 0x6c4d8420, + 0x29508: 0x6cddb820, 0x29509: 0x6d076020, 0x2950a: 0x6c0c5020, + 0x2950c: 0x6c3cfc20, 0x2950d: 0x6cc15e20, 0x2950e: 0x6c98ae20, + 0x29510: 0x6c4ca020, + 0x29516: 0x6c0ac420, 0x29517: 0x6c751020, + 0x29518: 0x6c208a20, 0x2951b: 0x6cb47420, + 0x2951f: 0x6d195020, + 0x29522: 0x6cb95020, 0x29523: 0x6d196220, + 0x29524: 0x6c36ec20, 0x29525: 0x6c8da620, 0x29527: 0x6c0ace20, + 0x2952d: 0x6c5e5620, 0x2952e: 0x6ca0b620, + 0x29531: 0x6d09ce20, + 0x29534: 0x6d0f1e20, + 0x29538: 0x6c87ba20, 0x2953a: 0x6ce04e20, + 0x2953e: 0x6c947e20, + // Block 0xa55, offset 0x29540 + 0x29540: 0x6c769020, 0x29541: 0x6c99aa20, 0x29542: 0x6cfefc20, + 0x29547: 0x6c007220, + 0x2954a: 0x6cde1420, + 0x2954d: 0x6c9aac20, 0x2954f: 0x6c4c4220, + 0x29553: 0x6c432220, + 0x29554: 0x6ca4c220, 0x29555: 0x6c4ffc20, + 0x29560: 0x6cc39820, + 0x29565: 0x6c12a620, 0x29566: 0x6ccb0a20, + 0x2956b: 0x6cb03c20, + 0x29572: 0x6d006220, 0x29573: 0x6cff6620, + 0x29574: 0x6c712c20, + 0x29579: 0x6c1a2420, 0x2957a: 0x6ca50820, + // Block 0xa56, offset 0x29580 + 0x29580: 0x6ca58e20, + 0x2958d: 0x6ca25220, 0x2958f: 0x6cce8020, + 0x29591: 0x6c2cda20, + 0x29594: 0x6c8d5220, 0x29596: 0x6d31f820, 0x29597: 0x6d11d020, + 0x29599: 0x6c404a20, 0x2959a: 0x6cb9c620, 0x2959b: 0x6cbf5820, + 0x2959c: 0x6c715620, 0x2959d: 0x6c0e2c20, 0x2959e: 0x6c990620, 0x2959f: 0x6d2ce020, + 0x295a0: 0x6cdf0820, + 0x295a4: 0x6c1ce020, + 0x295ab: 0x6d2d3220, + 0x295ad: 0x6cd1f420, 0x295ae: 0x6d1e7c20, + 0x295b0: 0x6cbf6820, 0x295b1: 0x6c2a3820, 0x295b2: 0x6ce42620, 0x295b3: 0x6d3c7820, + 0x295b5: 0x6d1b8020, 0x295b7: 0x6ca51820, + 0x295b8: 0x6c0e9620, 0x295b9: 0x6c7bb220, 0x295ba: 0x6d355220, 0x295bb: 0x6c34ba20, + 0x295bc: 0x6c236220, 0x295bd: 0x6c061620, + // Block 0xa57, offset 0x295c0 + 0x295c7: 0x6c846820, + 0x295ca: 0x6c716c20, 0x295cb: 0x6cf1bc20, + 0x295cc: 0x6c8b3e20, 0x295cf: 0x6cf2c620, + 0x295d0: 0x6cd2de20, 0x295d1: 0x6ca7b620, 0x295d2: 0x6c987c20, 0x295d3: 0x6c6f8c20, + 0x295d8: 0x6d050020, + 0x295dd: 0x6cf2a420, 0x295df: 0x6c2a4020, + 0x295e1: 0x6cf70e20, 0x295e2: 0x6c01e020, 0x295e3: 0x6c26ce20, + 0x295e4: 0x6d401020, 0x295e5: 0x6c4f2a20, 0x295e6: 0x6c20ea20, 0x295e7: 0x6c089820, + 0x295e9: 0x6c309020, 0x295eb: 0x6d2f1220, + 0x295ef: 0x6d0b0220, + 0x295f2: 0x6c2bac20, 0x295f3: 0x6c5d6420, + 0x295f7: 0x6c9f8020, + 0x295fa: 0x6c408820, + 0x295fc: 0x6c061e20, 0x295fd: 0x6c78e420, 0x295fe: 0x6c991020, 0x295ff: 0x6cc55820, + // Block 0xa58, offset 0x29600 + 0x29600: 0x6d3fda20, 0x29601: 0x6cb88020, 0x29602: 0x6cf98020, 0x29603: 0x6cda0220, + 0x29604: 0x6d050e20, 0x29605: 0x6ca36e20, + 0x29609: 0x6c979620, + 0x2960e: 0x6d2c0820, 0x2960f: 0x6c154a20, + 0x29610: 0x6ccf8420, 0x29611: 0x6cf2ca20, + 0x29616: 0x6c005c20, 0x29617: 0x6c059820, + 0x29618: 0x6c4fb820, 0x2961a: 0x6ccad420, 0x2961b: 0x6cddba20, + 0x2961c: 0x6ce44020, 0x2961d: 0x6d0bcc20, 0x2961f: 0x6c0e3a20, + 0x29620: 0x6cc6e420, + 0x2962b: 0x6ccc2c20, + 0x2962c: 0x6cf26a20, 0x2962f: 0x6c028a20, + 0x29631: 0x6d3c2820, 0x29633: 0x6cb1c020, + 0x29634: 0x6cdbe820, 0x29635: 0x6d143820, 0x29636: 0x6cda0420, 0x29637: 0x6c30d220, + 0x29638: 0x6cda0620, 0x29639: 0x6c956e20, + // Block 0xa59, offset 0x29640 + 0x29643: 0x6c3afc20, + 0x29644: 0x6d422220, 0x29646: 0x6ca53c20, 0x29647: 0x6c2ac420, + 0x29648: 0x6d34c220, 0x29649: 0x6c25d020, 0x2964a: 0x6c8a5820, 0x2964b: 0x6c616420, + 0x2964c: 0x6c0ea020, 0x2964d: 0x6c23d020, 0x2964e: 0x6c1a6020, 0x2964f: 0x6c104e20, + 0x29651: 0x6cca1020, 0x29652: 0x6d29be20, + 0x29658: 0x6c69e420, 0x2965b: 0x6d125220, + 0x2965c: 0x6c920620, 0x2965e: 0x6c121420, + 0x29668: 0x6ca67020, + 0x29670: 0x6c6b8820, 0x29671: 0x6cb47c20, 0x29672: 0x6d3c5020, 0x29673: 0x6d29c820, + 0x2967a: 0x6c87c420, + 0x2967d: 0x6c7ed020, + // Block 0xa5a, offset 0x29680 + 0x29680: 0x6c1d0620, 0x29683: 0x6d2eae20, + 0x2968d: 0x6c0bb420, 0x2968e: 0x6cf23220, + 0x29693: 0x6c53de20, + 0x29697: 0x6cb1fc20, + 0x29699: 0x6ccb9e20, + 0x2969e: 0x6ca67220, 0x2969f: 0x6c3b4e20, + 0x296a0: 0x6d065620, 0x296a2: 0x6cd2da20, + 0x296a4: 0x6c72c220, + 0x296a8: 0x6c752420, 0x296aa: 0x6d24a220, + 0x296ac: 0x6c4c2a20, 0x296ad: 0x6c4c3420, 0x296af: 0x6c55a420, + 0x296b2: 0x6c869020, 0x296b3: 0x6d00fa20, + 0x296b4: 0x6c376c20, 0x296b5: 0x6d25b420, 0x296b6: 0x6c4d2e20, + 0x296b9: 0x6c6ebc20, 0x296bb: 0x6c78de20, + 0x296bd: 0x6d3fcc20, 0x296be: 0x6c3ae620, + // Block 0xa5b, offset 0x296c0 + 0x296c0: 0x6cae8820, 0x296c1: 0x6c44e220, 0x296c3: 0x6c652820, + 0x296c4: 0x6ca61220, 0x296c6: 0x6cfbc220, 0x296c7: 0x6c873c20, + 0x296c8: 0x6c17a820, 0x296ca: 0x6c377620, 0x296cb: 0x6c44e820, + 0x296cc: 0x6d247620, 0x296cd: 0x6c560420, 0x296ce: 0x6c3af820, 0x296cf: 0x6c028c20, + 0x296d3: 0x6c37b220, + 0x296d8: 0x6c78ec20, 0x296d9: 0x6c7ab620, 0x296da: 0x6c0fd020, + 0x296dd: 0x6d13a020, 0x296de: 0x6c69e820, + 0x296e6: 0x6c17ae20, 0x296e7: 0x6c44ec20, + 0x296e8: 0x6cc82e20, 0x296ea: 0x6d273c20, + 0x296ec: 0x6c8c1620, + 0x296f1: 0x6d24a620, 0x296f2: 0x6d274820, 0x296f3: 0x6d2d1220, + 0x296f4: 0x6cff6820, 0x296f7: 0x6c9f2420, + 0x296fb: 0x6c4af820, + 0x296fc: 0x6c6f6e20, 0x296fe: 0x6cebaa20, + // Block 0xa5c, offset 0x29700 + 0x29701: 0x6cf78220, 0x29702: 0x6cefd620, 0x29703: 0x6d3d6a20, + 0x29704: 0x6cf0a220, 0x29705: 0x6c7c8420, + 0x29708: 0x6c9a9820, 0x2970a: 0x6c505020, 0x2970b: 0x6c4f5020, + 0x2970c: 0x6c399a20, 0x2970d: 0x6ca96e20, 0x2970e: 0x6d205420, 0x2970f: 0x6c57a420, + 0x29712: 0x6c812420, + 0x29720: 0x6d3a1820, 0x29721: 0x6c4b1620, 0x29722: 0x6c0a1620, 0x29723: 0x6c642e20, + 0x29724: 0x6ce59c20, 0x29726: 0x6c93f020, 0x29727: 0x6c79a220, + 0x29728: 0x6d419420, 0x29729: 0x6c8d4620, 0x2972a: 0x6cb63220, + 0x2972c: 0x6d3a1e20, + 0x29731: 0x6c47ba20, 0x29732: 0x6d413020, + 0x29734: 0x6d0f6620, 0x29735: 0x6cda5620, 0x29737: 0x6c7c9620, + 0x29739: 0x6c167a20, 0x2973b: 0x6d113e20, + 0x2973e: 0x6d23e220, + // Block 0xa5d, offset 0x29740 + 0x29745: 0x6cd50420, 0x29746: 0x6c7f5420, 0x29747: 0x6d187620, + 0x29748: 0x6c30c420, + 0x2974c: 0x6cf3f020, 0x2974d: 0x6d1d1220, 0x2974e: 0x6c3f0420, 0x2974f: 0x6d3be820, + 0x29750: 0x6c3f8a20, 0x29752: 0x6cdb2a20, 0x29753: 0x6c853420, + 0x29754: 0x6d122820, 0x29755: 0x6cea1020, + 0x2975d: 0x6c4b7a20, + 0x29761: 0x6c940020, 0x29762: 0x6d0ed420, 0x29763: 0x6cb66620, + 0x29764: 0x6c813020, 0x29765: 0x6d3a3020, 0x29767: 0x6c4b1e20, + 0x29768: 0x6c551020, + 0x2976f: 0x6c6ddc20, + 0x29772: 0x6c1bc620, + 0x29775: 0x6c717220, 0x29776: 0x6d2c6020, + 0x29778: 0x6c9e8020, + // Block 0xa5e, offset 0x29780 + 0x29780: 0x6d39da20, 0x29781: 0x6c41ba20, 0x29782: 0x6d047620, 0x29783: 0x6c60e620, + 0x29787: 0x6cccaa20, + 0x29788: 0x6c9ab620, 0x29789: 0x6d287420, + 0x2978d: 0x6cd48820, + 0x29790: 0x6c941a20, 0x29791: 0x6d206020, 0x29792: 0x6c681420, 0x29793: 0x6caacc20, + 0x29798: 0x6c72c420, 0x29799: 0x6d206220, + 0x2979c: 0x6d195220, 0x2979d: 0x6ce2ce20, 0x2979e: 0x6cef7220, 0x2979f: 0x6c17f620, + 0x297a0: 0x6c8c8620, 0x297a1: 0x6c483020, 0x297a3: 0x6c875a20, + 0x297a4: 0x6c8ab020, 0x297a7: 0x6c68ac20, + 0x297a8: 0x6d0ff620, 0x297a9: 0x6c0c5e20, 0x297aa: 0x6cb6a220, + 0x297ae: 0x6d196420, + 0x297b1: 0x6c0d7620, 0x297b2: 0x6c9bbc20, 0x297b3: 0x6c145a20, + 0x297b5: 0x6c41be20, + 0x297b9: 0x6cc21c20, 0x297ba: 0x6c2bc020, 0x297bb: 0x6c82a020, + // Block 0xa5f, offset 0x297c0 + 0x297c0: 0x6c8dcc20, + 0x297c4: 0x6c585220, 0x297c5: 0x6cc23220, 0x297c7: 0x6c959c20, + 0x297c9: 0x6c7cc820, + 0x297cd: 0x6cc08020, 0x297ce: 0x6d227620, 0x297cf: 0x6c57a620, + 0x297d3: 0x6c833a20, + 0x297d5: 0x6cc60620, 0x297d6: 0x6cffb620, 0x297d7: 0x6cd8da20, + 0x297da: 0x6c327220, 0x297db: 0x6c0cb420, + 0x297e0: 0x6ca97020, 0x297e2: 0x6c51e020, 0x297e3: 0x6cadc420, + 0x297e5: 0x6c3acc20, 0x297e6: 0x6ca2aa20, + 0x297e9: 0x6c3d9620, + 0x297ec: 0x6c55a820, 0x297ed: 0x6cedec20, 0x297ee: 0x6ccc1420, + 0x297f0: 0x6c687420, 0x297f1: 0x6cf47420, + 0x297f9: 0x6c404c20, + // Block 0xa60, offset 0x29800 + 0x29801: 0x6c0df620, 0x29802: 0x6d3b3020, + 0x29804: 0x6d3a2a20, 0x29805: 0x6c1ada20, 0x29807: 0x6cd07c20, + 0x29808: 0x6c550820, 0x29809: 0x6c101e20, + 0x2980e: 0x6cc4d420, + 0x29816: 0x6ca2b620, + 0x29818: 0x6c869220, 0x2981b: 0x6c638820, + 0x2981e: 0x6c96e020, + 0x29821: 0x6c9b6820, 0x29822: 0x6ca1f020, 0x29823: 0x6d38b820, + 0x29824: 0x6cfc3820, 0x29825: 0x6c5b7420, 0x29826: 0x6c48fc20, 0x29827: 0x6c702c20, + 0x29829: 0x6ca2b820, 0x2982b: 0x6cc82a20, + 0x2982d: 0x6cf3fc20, 0x2982f: 0x6cc7d820, + 0x29831: 0x6d2ce620, + // Block 0xa61, offset 0x29840 + 0x29841: 0x6caae220, 0x29842: 0x6d010a20, + 0x29844: 0x6c680220, + 0x2984b: 0x6c853a20, + 0x2984c: 0x6cd51020, 0x2984d: 0x6d190020, 0x2984e: 0x6c2bae20, 0x2984f: 0x6cbe9220, + 0x29850: 0x6c717420, 0x29853: 0x6d373620, + 0x29855: 0x6c80f020, 0x29856: 0x6c10ca20, 0x29857: 0x6c7bca20, + 0x29858: 0x6d190220, 0x2985a: 0x6c0f9a20, + 0x29867: 0x6c1c8c20, + 0x2986d: 0x6c680c20, 0x2986f: 0x6cf32a20, + 0x29870: 0x6d0aac20, + 0x29875: 0x6cea3220, 0x29876: 0x6c987e20, + 0x29878: 0x6c39b220, 0x29879: 0x6d3dce20, 0x2987b: 0x6cb88220, + 0x2987d: 0x6cde2220, 0x2987e: 0x6cb68a20, + // Block 0xa62, offset 0x29880 + 0x29880: 0x6caf1e20, 0x29881: 0x6c0cc620, 0x29882: 0x6c3bfe20, 0x29883: 0x6ce92820, + 0x29884: 0x6c57d220, 0x29887: 0x6c36d220, + 0x2988b: 0x6c36d420, + 0x2988e: 0x6c2fc420, + 0x29890: 0x6cc7e220, + 0x29896: 0x6c36d620, + 0x2989e: 0x6d0ef020, 0x2989f: 0x6cd8f820, + 0x298a5: 0x6d1cc020, 0x298a6: 0x6ca61620, 0x298a7: 0x6ca61820, + 0x298a8: 0x6d158e20, + 0x298b9: 0x6c9c9820, + 0x298be: 0x6d129820, 0x298bf: 0x6cb32620, + // Block 0xa63, offset 0x298c0 + 0x298c0: 0x6c240420, 0x298c2: 0x6cf11820, + 0x298c4: 0x6c4d8820, 0x298c5: 0x6d1c2820, 0x298c7: 0x6ce6a020, + 0x298c8: 0x6d375e20, 0x298c9: 0x6c3a2a20, 0x298ca: 0x6d1f9420, + 0x298cd: 0x6c7cb020, 0x298ce: 0x6c01e220, 0x298cf: 0x6c03d220, + 0x298d1: 0x6c4f3420, + 0x298de: 0x6ca41620, 0x298df: 0x6ca3da20, + 0x298e2: 0x6c6df420, + 0x298e5: 0x6ceece20, + 0x298f1: 0x6c1f8e20, 0x298f3: 0x6cddbe20, + 0x298f4: 0x6ce20020, 0x298f5: 0x6cb6a620, 0x298f6: 0x6ce16620, 0x298f7: 0x6cf05a20, + 0x298f8: 0x6c41fc20, 0x298fa: 0x6c446420, + 0x298fc: 0x6c4f3820, 0x298fe: 0x6ca37420, 0x298ff: 0x6c446620, + // Block 0xa64, offset 0x29900 + 0x29904: 0x6d331420, + 0x29917: 0x6cde2820, + 0x2991b: 0x6cd84c20, + 0x2991d: 0x6ca6de20, 0x2991e: 0x6cca9820, + 0x2992b: 0x6d012a20, + 0x2992f: 0x6d410220, + 0x29930: 0x6d21fc20, 0x29931: 0x6ca6e020, 0x29932: 0x6cb55420, + 0x29935: 0x6cd03220, + 0x2993c: 0x6c102020, + // Block 0xa65, offset 0x29940 + 0x2994b: 0x6c7d9a20, + 0x2994c: 0x6c84c420, 0x2994e: 0x6c488220, + 0x29956: 0x6d0e1c20, 0x29957: 0x6c10d220, + 0x29958: 0x6c672a20, 0x2995a: 0x6cf40e20, 0x2995b: 0x6c134420, + 0x2995c: 0x6c8c0e20, 0x2995d: 0x6d3c0420, 0x2995f: 0x6c5b0e20, + 0x29961: 0x6ce7a620, 0x29962: 0x6d2ca220, + 0x29964: 0x6c522c20, 0x29967: 0x6c4ce220, + 0x29971: 0x6c6e4220, + 0x29975: 0x6c2f1620, 0x29977: 0x6d1cdc20, + 0x2997c: 0x6d377420, + // Block 0xa66, offset 0x29980 + 0x29982: 0x6cf06620, + 0x29984: 0x6c62fa20, 0x29985: 0x6cc73620, + 0x29988: 0x6c030620, 0x29989: 0x6c292420, 0x2998a: 0x6c958a20, 0x2998b: 0x6d13a220, + 0x2998c: 0x6ceed220, + 0x29992: 0x6cbb3220, + 0x29999: 0x6c446c20, 0x2999a: 0x6c62fc20, + 0x299a6: 0x6d409620, + 0x299a8: 0x6d15a620, 0x299ab: 0x6d2ca420, + 0x299ad: 0x6c8b8c20, + 0x299b4: 0x6d13a820, + 0x299bc: 0x6d2dd420, + // Block 0xa67, offset 0x299c0 + 0x299c0: 0x6c1e1620, 0x299c1: 0x6c0c6620, + 0x299c6: 0x6d077020, 0x299c7: 0x6d1eda20, + 0x299cd: 0x6d029a20, 0x299ce: 0x6cef7c20, 0x299cf: 0x6c87ca20, + 0x299db: 0x6c0fdc20, + 0x299dc: 0x6c664c20, 0x299dd: 0x6c158220, 0x299de: 0x6c7d9e20, + 0x299e1: 0x6cbe9a20, + 0x299e7: 0x6cd6ce20, + 0x299e8: 0x6cf76420, 0x299e9: 0x6cc23620, + 0x299f0: 0x6c95a020, 0x299f3: 0x6c294c20, + 0x299f4: 0x6ca71020, 0x299f5: 0x6c855a20, 0x299f7: 0x6c03e420, + 0x299f9: 0x6c365220, 0x299fa: 0x6c3d7a20, 0x299fb: 0x6c400620, + 0x299fc: 0x6c5d1220, 0x299fd: 0x6d2cd820, 0x299fe: 0x6c014420, + // Block 0xa68, offset 0x29a00 + 0x29a01: 0x6cc09620, 0x29a02: 0x6c1dd620, 0x29a03: 0x6c9e3c20, + 0x29a04: 0x6d0aa620, 0x29a05: 0x6ce92420, 0x29a06: 0x6ca60c20, 0x29a07: 0x6c570220, + 0x29a08: 0x6cd50a20, 0x29a0a: 0x6d05f620, 0x29a0b: 0x6d384620, + 0x29a0c: 0x6c776220, + 0x29a12: 0x6cfee220, 0x29a13: 0x6cfee420, + 0x29a14: 0x6c22d420, 0x29a15: 0x6c1c3c20, 0x29a17: 0x6c2dd220, + 0x29a18: 0x6d181420, 0x29a1a: 0x6c2f6420, + 0x29a1d: 0x6c4ef620, 0x29a1e: 0x6cece420, + 0x29a20: 0x6d160220, 0x29a21: 0x6c066020, 0x29a22: 0x6d184220, + 0x29a27: 0x6d0a9e20, + 0x29a2c: 0x6cfdd420, + 0x29a33: 0x6c08a420, + 0x29a36: 0x6c6b3020, 0x29a37: 0x6c43a620, + 0x29a38: 0x6d2b5620, 0x29a3a: 0x6d326a20, 0x29a3b: 0x6c55aa20, + 0x29a3c: 0x6cf6b420, 0x29a3d: 0x6d02e820, 0x29a3e: 0x6cff1220, 0x29a3f: 0x6c404e20, + // Block 0xa69, offset 0x29a40 + 0x29a40: 0x6d383c20, 0x29a42: 0x6c99b620, 0x29a43: 0x6d02ea20, + 0x29a44: 0x6cbad820, + 0x29a48: 0x6c3b9220, 0x29a49: 0x6c049820, 0x29a4a: 0x6c583220, + 0x29a51: 0x6c687620, 0x29a53: 0x6c066620, + 0x29a54: 0x6d0af820, 0x29a55: 0x6d114020, + 0x29a5b: 0x6cf8d820, + 0x29a5d: 0x6c729e20, 0x29a5f: 0x6cc27c20, + 0x29a60: 0x6d26f020, 0x29a61: 0x6cdf4220, 0x29a62: 0x6ce81820, 0x29a63: 0x6ca16c20, + 0x29a64: 0x6d2c5420, 0x29a65: 0x6cc1ce20, 0x29a67: 0x6c3da620, + 0x29a69: 0x6cc1d020, 0x29a6a: 0x6c1c7e20, + 0x29a6c: 0x6d1f7c20, + 0x29a77: 0x6ce38620, + 0x29a7a: 0x6cebf020, + 0x29a7d: 0x6ceb5620, 0x29a7f: 0x6c1eb220, + // Block 0xa6a, offset 0x29a80 + 0x29a81: 0x6c43b020, + 0x29a88: 0x6d251620, 0x29a89: 0x6c43b220, 0x29a8a: 0x6cc1d220, + 0x29a8f: 0x6c72a020, + 0x29a92: 0x6c2ef820, 0x29a93: 0x6d157e20, + 0x29a94: 0x6cd20820, 0x29a95: 0x6d18e420, 0x29a97: 0x6c4b2020, + 0x29a98: 0x6c680420, 0x29a9a: 0x6cd94420, 0x29a9b: 0x6cbf7220, + 0x29a9d: 0x6c36c220, 0x29a9e: 0x6c59a420, 0x29a9f: 0x6c5b4620, + 0x29aa0: 0x6d0a4620, 0x29aa3: 0x6c717020, + 0x29aa5: 0x6d2d2220, 0x29aa6: 0x6c1c8220, 0x29aa7: 0x6c81c020, + 0x29aa9: 0x6cb66820, 0x29aaa: 0x6d050420, + 0x29aac: 0x6c5af620, 0x29aad: 0x6ce79820, + 0x29aba: 0x6c407220, + 0x29abd: 0x6d0a4820, 0x29abe: 0x6c6b4e20, 0x29abf: 0x6c9d0620, + // Block 0xa6b, offset 0x29ac0 + 0x29ac0: 0x6d242820, + 0x29ac8: 0x6d3c4a20, 0x29ac9: 0x6c688e20, 0x29aca: 0x6d373820, 0x29acb: 0x6c1a5220, + 0x29acd: 0x6c6b6c20, 0x29ace: 0x6cff3220, 0x29acf: 0x6c18f220, + 0x29ad0: 0x6c848220, 0x29ad1: 0x6d26fe20, 0x29ad3: 0x6d373a20, + 0x29ad4: 0x6c818820, 0x29ad5: 0x6cf32c20, 0x29ad6: 0x6cc1ea20, + 0x29ad8: 0x6cedce20, 0x29ada: 0x6d142e20, 0x29adb: 0x6d190420, + 0x29adc: 0x6c80f220, 0x29ade: 0x6ce7fa20, 0x29adf: 0x6c015c20, + 0x29ae0: 0x6c74e420, 0x29ae1: 0x6d0ee420, + 0x29ae5: 0x6c72b020, 0x29ae7: 0x6d327620, + 0x29ae9: 0x6d373c20, 0x29aea: 0x6c98a820, + 0x29aee: 0x6d055420, + 0x29af1: 0x6c208020, 0x29af2: 0x6c1e6c20, + 0x29af8: 0x6cbafc20, 0x29af9: 0x6c3a2620, 0x29afa: 0x6c16d420, + 0x29afc: 0x6c9dec20, 0x29afd: 0x6cdb5a20, 0x29afe: 0x6c02b820, + // Block 0xa6c, offset 0x29b00 + 0x29b00: 0x6c3f9620, + 0x29b04: 0x6cf10620, 0x29b05: 0x6d342420, 0x29b06: 0x6c9f8220, 0x29b07: 0x6c168820, + 0x29b08: 0x6d0cfa20, 0x29b09: 0x6d245820, 0x29b0b: 0x6c408a20, + 0x29b0c: 0x6cded020, 0x29b0d: 0x6c616020, 0x29b0f: 0x6c3aee20, + 0x29b12: 0x6c55f620, 0x29b13: 0x6c70e220, + 0x29b15: 0x6d22ac20, + 0x29b1b: 0x6cb69220, + 0x29b1c: 0x6c9a3820, 0x29b1f: 0x6c0ccc20, + 0x29b20: 0x6c4cd820, + 0x29b24: 0x6ca04c20, 0x29b26: 0x6ced5e20, 0x29b27: 0x6ced6020, + 0x29b34: 0x6c6dec20, 0x29b35: 0x6d245a20, 0x29b36: 0x6cfbce20, + 0x29b39: 0x6c212a20, 0x29b3a: 0x6c60f820, + 0x29b3c: 0x6cfd9620, 0x29b3d: 0x6cae4420, 0x29b3e: 0x6c409220, + // Block 0xa6d, offset 0x29b40 + 0x29b42: 0x6c8ed820, + 0x29b44: 0x6cc9da20, 0x29b45: 0x6d08f020, 0x29b46: 0x6d409220, + 0x29b48: 0x6c6b7e20, 0x29b4b: 0x6d2dc220, + 0x29b4d: 0x6d21e820, 0x29b4e: 0x6d21ea20, 0x29b4f: 0x6c9a4020, + 0x29b50: 0x6c9ea820, 0x29b51: 0x6c99c020, 0x29b52: 0x6c346a20, 0x29b53: 0x6c409420, + 0x29b5b: 0x6c671820, + 0x29b66: 0x6c9e8420, + 0x29b68: 0x6c023a20, + 0x29b6d: 0x6c78e620, + 0x29b76: 0x6c544420, + 0x29b7a: 0x6c46e420, + 0x29b7c: 0x6cf74c20, 0x29b7e: 0x6cc6e820, 0x29b7f: 0x6c43be20, + // Block 0xa6e, offset 0x29b80 + 0x29b80: 0x6cac9220, 0x29b81: 0x6d25d420, 0x29b82: 0x6cfa5e20, + 0x29b85: 0x6ccc2e20, 0x29b86: 0x6cafa620, + 0x29b88: 0x6cbe9620, 0x29b89: 0x6d1dde20, 0x29b8a: 0x6cc20220, + 0x29b8c: 0x6c462820, 0x29b8e: 0x6c446820, 0x29b8f: 0x6cfb0820, + 0x29b91: 0x6cdb6820, + 0x29b95: 0x6c04ae20, 0x29b96: 0x6cb6a820, 0x29b97: 0x6c548820, + 0x29b9b: 0x6cf74e20, + 0x29b9d: 0x6cf39220, + 0x29bad: 0x6cb55620, 0x29bae: 0x6c56ec20, 0x29baf: 0x6c4aae20, + 0x29bb1: 0x6c2bbc20, 0x29bb2: 0x6cce2c20, 0x29bb3: 0x6c975220, + 0x29bb4: 0x6c9fde20, 0x29bb5: 0x6c62ea20, 0x29bb6: 0x6cf7c820, 0x29bb7: 0x6cfb1020, + 0x29bb8: 0x6c610220, 0x29bb9: 0x6c16d820, 0x29bba: 0x6c7a1220, 0x29bbb: 0x6c1cfc20, + // Block 0xa6f, offset 0x29bc0 + 0x29bc2: 0x6d2ef020, 0x29bc3: 0x6cb1aa20, + 0x29bc4: 0x6cdb6c20, 0x29bc5: 0x6c94cc20, 0x29bc6: 0x6c84c620, 0x29bc7: 0x6c9c2020, + 0x29bc8: 0x6c1cfe20, 0x29bc9: 0x6ce47c20, 0x29bcb: 0x6c8da820, + 0x29bcd: 0x6c1c9a20, + 0x29bd6: 0x6c1d0020, + 0x29bd9: 0x6c1c9c20, + 0x29bdd: 0x6ca7c820, 0x29bdf: 0x6d1e0a20, + 0x29bee: 0x6c9db020, + 0x29bf0: 0x6cd51e20, 0x29bf2: 0x6cf93820, + 0x29bf4: 0x6c36f620, 0x29bf5: 0x6d3ec820, + 0x29bf8: 0x6c6b8420, 0x29bf9: 0x6c5faa20, 0x29bfa: 0x6c53e820, 0x29bfb: 0x6cd18220, + 0x29bfc: 0x6c879c20, 0x29bfe: 0x6cb55c20, + // Block 0xa70, offset 0x29c00 + 0x29c00: 0x6d38c620, 0x29c01: 0x6cd85820, 0x29c02: 0x6cc21e20, + 0x29c0b: 0x6d013420, + 0x29c17: 0x6cd85a20, + 0x29c1b: 0x6d061220, + 0x29c20: 0x6c409e20, + 0x29c2f: 0x6ca9e620, + 0x29c30: 0x6d0bd020, 0x29c31: 0x6c8ef020, 0x29c32: 0x6c643420, 0x29c33: 0x6c4ab020, + 0x29c34: 0x6c7cc020, 0x29c35: 0x6c1ca220, 0x29c36: 0x6c121620, 0x29c37: 0x6c1ed020, + 0x29c39: 0x6c4c5020, 0x29c3b: 0x6c285a20, + 0x29c3f: 0x6c672e20, + // Block 0xa71, offset 0x29c40 + 0x29c41: 0x6c292620, 0x29c42: 0x6c548c20, + 0x29c44: 0x6c7a1420, 0x29c46: 0x6c1f9220, 0x29c47: 0x6cb96220, + 0x29c48: 0x6c010c20, 0x29c4a: 0x6cb0e420, + 0x29c51: 0x6d0abc20, 0x29c52: 0x6c6dfc20, 0x29c53: 0x6c9c2620, + 0x29c55: 0x6c0d7a20, 0x29c56: 0x6c801620, 0x29c57: 0x6c47fa20, + 0x29c58: 0x6c1e1420, 0x29c5b: 0x6d1dec20, + 0x29c5c: 0x6c488420, 0x29c5d: 0x6d220a20, 0x29c5e: 0x6d397420, + 0x29c6d: 0x6c115820, 0x29c6f: 0x6c8ef420, + 0x29c70: 0x6c105420, 0x29c71: 0x6c965820, 0x29c72: 0x6c6b8c20, 0x29c73: 0x6d31a820, + 0x29c74: 0x6c9f2220, 0x29c75: 0x6c4a1620, 0x29c77: 0x6c63f820, + 0x29c79: 0x6c7ed220, + // Block 0xa72, offset 0x29c80 + 0x29c80: 0x6cd48c20, 0x29c83: 0x6c4c5220, + 0x29c86: 0x6c9c2820, 0x29c87: 0x6cb9ea20, + 0x29c88: 0x6c7f8420, 0x29c8a: 0x6c51b220, 0x29c8b: 0x6ce97c20, + 0x29c91: 0x6c5b1020, + 0x29c98: 0x6c52e620, + 0x29c9c: 0x6c93c820, 0x29c9f: 0x6c63fa20, + 0x29ca5: 0x6c4ab220, + 0x29ca8: 0x6d144420, 0x29ca9: 0x6c585420, + 0x29cb0: 0x6c95a220, + 0x29cb4: 0x6c754620, + 0x29cb8: 0x6c49ce20, 0x29cbb: 0x6cc34820, + 0x29cbc: 0x6ca7cc20, 0x29cbf: 0x6c97b220, + // Block 0xa73, offset 0x29cc0 + 0x29cc2: 0x6d282420, 0x29cc3: 0x6cf18a20, + 0x29cc4: 0x6c1c0c20, 0x29cc5: 0x6c1c1820, 0x29cc6: 0x6d33dc20, + 0x29cc8: 0x6c224420, 0x29cc9: 0x6d3c3e20, 0x29cca: 0x6c573c20, 0x29ccb: 0x6c6ac020, + 0x29ccc: 0x6cc19e20, 0x29ccd: 0x6ce86620, 0x29cce: 0x6c9f6a20, 0x29ccf: 0x6c9a2020, + 0x29cd0: 0x6d218020, 0x29cd1: 0x6c026e20, 0x29cd2: 0x6c049a20, + 0x29cd4: 0x6caf8c20, 0x29cd5: 0x6d31a420, 0x29cd6: 0x6c91d020, 0x29cd7: 0x6c1c5420, + 0x29cd8: 0x6ce7f620, 0x29cda: 0x6c6a3420, + 0x29cdc: 0x6d2da420, + 0x29ce2: 0x6c6c6820, 0x29ce3: 0x6c91f020, + 0x29ce6: 0x6c670a20, 0x29ce7: 0x6ce0b420, + 0x29ce8: 0x6c168a20, 0x29cea: 0x6c22ee20, + 0x29ced: 0x6cec5c20, 0x29cee: 0x6c240620, 0x29cef: 0x6c771a20, + 0x29cf1: 0x6c0bd820, + 0x29cf8: 0x6cf17620, 0x29cfb: 0x6cb95620, + 0x29cff: 0x6c424220, + // Block 0xa74, offset 0x29d00 + 0x29d02: 0x6c5ca220, + 0x29d04: 0x6c420620, 0x29d06: 0x6c630020, 0x29d07: 0x6c424620, + 0x29d09: 0x6c580820, + 0x29d0d: 0x6cd8dc20, + 0x29d10: 0x6c3d9a20, + 0x29d15: 0x6cb01620, 0x29d17: 0x6c10d620, + 0x29d1c: 0x6c07c620, + 0x29d22: 0x6cd2dc20, + 0x29d25: 0x6c58b020, 0x29d27: 0x6c4a9420, + 0x29d2a: 0x6cab9620, + 0x29d33: 0x6cad7020, + 0x29d35: 0x6d1d2020, 0x29d36: 0x6ce6e620, 0x29d37: 0x6d001820, + 0x29d39: 0x6d3b3620, 0x29d3b: 0x6d21d220, + // Block 0xa75, offset 0x29d40 + 0x29d41: 0x6c66fa20, + 0x29d44: 0x6cc25420, 0x29d45: 0x6ced6220, 0x29d46: 0x6c7d9220, 0x29d47: 0x6d3c7220, + 0x29d49: 0x6d245c20, 0x29d4a: 0x6c4cda20, 0x29d4b: 0x6cb2de20, + 0x29d4c: 0x6d41a420, 0x29d4d: 0x6d40fa20, 0x29d4f: 0x6d39e820, + 0x29d50: 0x6caa9c20, 0x29d51: 0x6d39ea20, + 0x29d56: 0x6cb17620, 0x29d57: 0x6c9cac20, + 0x29d5c: 0x6c0ad220, 0x29d5d: 0x6cdb6e20, + 0x29d61: 0x6cb47a20, 0x29d62: 0x6c9cc420, + 0x29d6b: 0x6d13a620, + 0x29d6c: 0x6d22b420, 0x29d6e: 0x6d249620, + 0x29d70: 0x6d3a9420, 0x29d73: 0x6c8dc220, + 0x29d7a: 0x6caa3620, + 0x29d7e: 0x6c8d3020, + // Block 0xa76, offset 0x29d80 + 0x29d80: 0x6c8a7020, 0x29d82: 0x6ceace20, + 0x29d84: 0x6c08f020, 0x29d85: 0x6ca36a20, 0x29d86: 0x6cc1bc20, + 0x29d88: 0x6cb01820, 0x29d89: 0x6c30f420, 0x29d8a: 0x6ca86e20, 0x29d8b: 0x6cea6820, + 0x29d8d: 0x6c5f2620, 0x29d8f: 0x6c8d5420, + 0x29d93: 0x6c7aaa20, + 0x29d94: 0x6cdb2c20, + 0x29d98: 0x6ce81a20, + 0x29d9e: 0x6ca38620, 0x29d9f: 0x6d2b0c20, + 0x29da2: 0x6ce7c420, 0x29da3: 0x6c444a20, + 0x29da4: 0x6c331820, 0x29da7: 0x6c6b5020, + 0x29da9: 0x6ce4c820, 0x29daa: 0x6ce5e220, 0x29dab: 0x6c1b6020, + 0x29dac: 0x6cc14e20, 0x29dae: 0x6ccc2820, + 0x29db0: 0x6c0f9e20, 0x29db1: 0x6c848420, 0x29db3: 0x6c963a20, + 0x29db5: 0x6c8a4420, 0x29db6: 0x6cd62620, 0x29db7: 0x6c2ad220, + 0x29db9: 0x6c1ae620, 0x29dba: 0x6c9f0220, + 0x29dbc: 0x6ce24e20, 0x29dbd: 0x6c5d0c20, 0x29dbf: 0x6ca7e220, + // Block 0xa77, offset 0x29dc0 + 0x29dc1: 0x6c75fe20, 0x29dc2: 0x6c56dc20, + 0x29dc4: 0x6c932e20, 0x29dc5: 0x6d138820, 0x29dc7: 0x6ca18620, + 0x29dc8: 0x6c17c820, + 0x29dcc: 0x6cddd420, 0x29dce: 0x6c784220, 0x29dcf: 0x6c409620, + 0x29dd1: 0x6c17aa20, + 0x29dd4: 0x6cddbc20, 0x29dd7: 0x6cbfe220, + 0x29ddb: 0x6cdb6a20, + 0x29ddd: 0x6d287620, 0x29ddf: 0x6cddc220, + 0x29de0: 0x6c7a7020, 0x29de1: 0x6c0fc420, 0x29de3: 0x6c90fe20, + 0x29de4: 0x6ca1a220, 0x29de6: 0x6c88e220, 0x29de7: 0x6d08d220, + 0x29de8: 0x6cddc420, 0x29de9: 0x6c97aa20, 0x29dea: 0x6c0ad420, + 0x29df2: 0x6ce44820, + 0x29df4: 0x6c88a620, 0x29df5: 0x6ce04a20, 0x29df6: 0x6ccdf220, + 0x29df8: 0x6cc22820, 0x29df9: 0x6c320820, 0x29dfa: 0x6c58d420, 0x29dfb: 0x6ccb0e20, + 0x29dff: 0x6c7c2620, + // Block 0xa78, offset 0x29e00 + 0x29e03: 0x6ca8dc20, + 0x29e05: 0x6ca8de20, 0x29e06: 0x6c95a420, 0x29e07: 0x6d425c20, + 0x29e08: 0x6d174e20, 0x29e09: 0x6cfcc020, 0x29e0a: 0x6c179820, 0x29e0b: 0x6ce61220, + 0x29e12: 0x6cd79620, + 0x29e14: 0x6c9d0020, 0x29e17: 0x6c9c7220, + 0x29e1b: 0x6ced5220, + 0x29e1d: 0x6c07c820, 0x29e1e: 0x6cbae020, + 0x29e20: 0x6ca0b020, 0x29e23: 0x6c8eca20, + 0x29e24: 0x6cf32e20, 0x29e26: 0x6c9a7020, + 0x29e28: 0x6ce7fe20, 0x29e2b: 0x6ca25a20, + 0x29e2d: 0x6c9a4420, + 0x29e32: 0x6d42b620, + 0x29e34: 0x6cea6420, 0x29e35: 0x6c778c20, 0x29e36: 0x6cea6a20, + 0x29e3a: 0x6c184c20, 0x29e3b: 0x6d336a20, + 0x29e3d: 0x6c1cec20, 0x29e3e: 0x6ce47820, + // Block 0xa79, offset 0x29e40 + 0x29e40: 0x6d372020, 0x29e41: 0x6c153420, 0x29e42: 0x6c153e20, + 0x29e45: 0x6cbe5c20, 0x29e46: 0x6cea3420, 0x29e47: 0x6c5b7a20, + 0x29e48: 0x6cc41420, 0x29e49: 0x6d2dba20, 0x29e4a: 0x6c652c20, 0x29e4b: 0x6c154c20, + 0x29e4d: 0x6c5a2620, 0x29e4f: 0x6c5b0620, + 0x29e50: 0x6c1b6a20, 0x29e52: 0x6c5a2820, 0x29e53: 0x6c528220, + 0x29e54: 0x6d280820, 0x29e56: 0x6ce94020, 0x29e57: 0x6c0b1c20, + 0x29e59: 0x6c5a3620, 0x29e5a: 0x6d280a20, + 0x29e5f: 0x6ca1a420, + 0x29e60: 0x6c45c420, 0x29e62: 0x6c45c620, + 0x29e64: 0x6c4bb020, 0x29e66: 0x6c157820, + 0x29e68: 0x6cc42220, 0x29e69: 0x6cc8ee20, 0x29e6a: 0x6c7c2820, 0x29e6b: 0x6cb1c220, + 0x29e6e: 0x6cc80220, + 0x29e72: 0x6ca9a220, 0x29e73: 0x6c56c820, + 0x29e74: 0x6c6cb820, 0x29e75: 0x6ca6d220, 0x29e76: 0x6c067420, + 0x29e78: 0x6ca65620, 0x29e7a: 0x6c0a8420, 0x29e7b: 0x6c55d820, + 0x29e7c: 0x6c846a20, 0x29e7f: 0x6d39dc20, + // Block 0xa7a, offset 0x29e80 + 0x29e80: 0x6ca2fc20, 0x29e82: 0x6cc36620, 0x29e83: 0x6c3cd220, + 0x29e84: 0x6c090020, 0x29e85: 0x6c84a020, 0x29e86: 0x6c0d0820, 0x29e87: 0x6ca70e20, + 0x29e88: 0x6c304820, 0x29e8b: 0x6c88a020, + 0x29e8c: 0x6ca6e420, 0x29e8d: 0x6c88a820, 0x29e8e: 0x6c968820, 0x29e8f: 0x6d30ca20, + 0x29e93: 0x6c639420, + 0x29e94: 0x6d15a820, 0x29e96: 0x6c904c20, + 0x29e98: 0x6d181820, + 0x29e9d: 0x6c278e20, 0x29e9e: 0x6c327820, + 0x29ea3: 0x6d160c20, + 0x29ea5: 0x6cdf8220, 0x29ea6: 0x6c4f5420, 0x29ea7: 0x6cd61620, + 0x29eac: 0x6cece820, 0x29eae: 0x6cdb2e20, 0x29eaf: 0x6d11d820, + 0x29eb0: 0x6c37e020, 0x29eb2: 0x6d326e20, + 0x29eba: 0x6c313e20, 0x29ebb: 0x6c651220, + 0x29ebf: 0x6cace620, + // Block 0xa7b, offset 0x29ec0 + 0x29ec0: 0x6c5afe20, 0x29ec2: 0x6c145420, 0x29ec3: 0x6ccd1c20, + 0x29ec4: 0x6c916620, 0x29ec6: 0x6d244c20, + 0x29ec8: 0x6d0ef420, 0x29ec9: 0x6ced6420, 0x29eca: 0x6cbc6e20, 0x29ecb: 0x6c953420, + 0x29ecc: 0x6d245e20, 0x29ecf: 0x6ce90620, + 0x29ed0: 0x6cf10820, 0x29ed2: 0x6cea8e20, + 0x29ed5: 0x6c5d1820, 0x29ed6: 0x6c079020, 0x29ed7: 0x6cbd0620, + 0x29ed9: 0x6c6c7420, 0x29eda: 0x6c7f3620, + 0x29edc: 0x6d356620, 0x29edd: 0x6d21ec20, 0x29edf: 0x6c22f020, + 0x29ee6: 0x6d139420, 0x29ee7: 0x6c2f0c20, + 0x29ee8: 0x6c145820, 0x29ee9: 0x6c2d9a20, 0x29eea: 0x6c97a220, + 0x29eec: 0x6c2afc20, 0x29eed: 0x6ceed020, 0x29eee: 0x6ca75020, 0x29eef: 0x6c835e20, + 0x29ef0: 0x6c0db820, 0x29ef1: 0x6cf39420, 0x29ef3: 0x6d320820, + 0x29ef6: 0x6cc77420, 0x29ef7: 0x6cec7c20, + 0x29ef8: 0x6c9dac20, 0x29ef9: 0x6c6c1020, 0x29efb: 0x6c544620, + 0x29efd: 0x6d2d5620, 0x29efe: 0x6cc80a20, 0x29eff: 0x6d3ec620, + // Block 0xa7c, offset 0x29f00 + 0x29f00: 0x6cac9420, 0x29f02: 0x6ca1a620, + 0x29f04: 0x6c9db220, 0x29f06: 0x6cb55820, 0x29f07: 0x6ca1a820, + 0x29f0a: 0x6d342c20, 0x29f0b: 0x6c04b020, + 0x29f0d: 0x6c9f1820, 0x29f0f: 0x6c933e20, + 0x29f11: 0x6cb55e20, 0x29f12: 0x6c1d0420, + 0x29f14: 0x6c84d220, 0x29f15: 0x6d196e20, + 0x29f18: 0x6c2b0620, 0x29f19: 0x6c25d220, 0x29f1b: 0x6c339020, + 0x29f1c: 0x6c96e820, 0x29f1d: 0x6d0e2c20, 0x29f1f: 0x6d2bba20, + 0x29f20: 0x6d0e2e20, 0x29f21: 0x6c339220, 0x29f22: 0x6cb42620, + 0x29f25: 0x6d273020, + 0x29f29: 0x6c5e5c20, 0x29f2a: 0x6c975420, 0x29f2b: 0x6c664620, + 0x29f2c: 0x6ca9e820, 0x29f2d: 0x6cbdc020, 0x29f2f: 0x6cbdc220, + 0x29f32: 0x6d13aa20, + 0x29f34: 0x6cdf5420, + 0x29f39: 0x6c655c20, + 0x29f3c: 0x6c141620, 0x29f3e: 0x6c28f220, 0x29f3f: 0x6ce2e220, + // Block 0xa7d, offset 0x29f40 + 0x29f40: 0x6c87ce20, 0x29f43: 0x6ca77c20, + 0x29f44: 0x6c158420, 0x29f45: 0x6d29f620, + 0x29f4a: 0x6d24b820, + 0x29f4c: 0x6d41e220, 0x29f4d: 0x6c0b2020, + 0x29f50: 0x6c1ef820, + 0x29f58: 0x6cc48c20, 0x29f5a: 0x6cc49820, 0x29f5b: 0x6d0f7020, + 0x29f5c: 0x6c0fe820, + 0x29f61: 0x6c247820, + 0x29f6c: 0x6c9cae20, 0x29f6e: 0x6c787420, + 0x29f70: 0x6c248420, + 0x29f77: 0x6cf7ce20, + 0x29f79: 0x6c968a20, 0x29f7b: 0x6cd22020, + 0x29f7c: 0x6c2d0420, 0x29f7f: 0x6cd22220, + // Block 0xa7e, offset 0x29f80 + 0x29f82: 0x6c2f7620, 0x29f83: 0x6c6ee420, + 0x29f85: 0x6d25a820, 0x29f86: 0x6c41b220, + 0x29f8a: 0x6c5ca420, 0x29f8b: 0x6c5f4e20, + 0x29f8d: 0x6caed420, 0x29f8f: 0x6c2ab220, + 0x29f91: 0x6c085e20, + 0x29f94: 0x6cacea20, 0x29f95: 0x6cded420, 0x29f97: 0x6d252220, + 0x29f98: 0x6c42ee20, 0x29f99: 0x6d252420, + 0x29f9f: 0x6c639220, + 0x29fa3: 0x6c799020, + 0x29fa6: 0x6c309820, + 0x29fa9: 0x6cfbd820, 0x29faa: 0x6cb80620, + 0x29fac: 0x6cca7c20, + 0x29fb0: 0x6d1b9820, 0x29fb3: 0x6c901a20, + 0x29fb6: 0x6ce29a20, 0x29fb7: 0x6c902420, + 0x29fba: 0x6cc60820, + 0x29fbd: 0x6d1b9020, 0x29fbe: 0x6cb2d820, 0x29fbf: 0x6cb41c20, + // Block 0xa7f, offset 0x29fc0 + 0x29fc0: 0x6d25be20, 0x29fc1: 0x6cc72a20, 0x29fc3: 0x6c399e20, + 0x29fc7: 0x6c4f5820, + 0x29fc8: 0x6c9c8820, 0x29fc9: 0x6c55ea20, 0x29fca: 0x6d3eb620, + 0x29fcc: 0x6c8d7e20, 0x29fcd: 0x6c6eea20, 0x29fce: 0x6cc72e20, + 0x29fd2: 0x6cb2e020, 0x29fd3: 0x6c49fc20, + 0x29fd4: 0x6c37ae20, + 0x29fdd: 0x6c247e20, 0x29fde: 0x6c760020, + 0x29fe6: 0x6d052a20, + 0x29fe8: 0x6c377a20, 0x29fe9: 0x6ce44420, 0x29feb: 0x6d0ff820, + 0x29fed: 0x6c010a20, 0x29fee: 0x6c560820, 0x29fef: 0x6cf7ca20, + 0x29ff1: 0x6c560a20, 0x29ff3: 0x6cd85220, + 0x29ff4: 0x6c854e20, 0x29ff6: 0x6d197020, 0x29ff7: 0x6c47f620, + 0x29ff9: 0x6ce16a20, + // Block 0xa80, offset 0x2a000 + 0x2a000: 0x6cc42420, 0x2a001: 0x6d3fe620, 0x2a002: 0x6c84de20, + 0x2a004: 0x6c69ec20, 0x2a007: 0x6c38fe20, + 0x2a008: 0x6cb47e20, 0x2a009: 0x6cd86620, 0x2a00b: 0x6c6b9020, + 0x2a00c: 0x6c91b220, 0x2a00d: 0x6c87d020, 0x2a00e: 0x6c158620, + 0x2a010: 0x6d122220, + 0x2a015: 0x6c5b0020, + 0x2a019: 0x6c53e420, 0x2a01a: 0x6c2cea20, 0x2a01b: 0x6cc0be20, + 0x2a01c: 0x6c74f820, 0x2a01e: 0x6cb0d420, + 0x2a022: 0x6c7c5220, + 0x2a025: 0x6cf82820, 0x2a026: 0x6ce30c20, + 0x2a029: 0x6d076820, + 0x2a02f: 0x6c0b6220, + 0x2a032: 0x6c50b020, 0x2a033: 0x6c88ac20, + 0x2a036: 0x6cdb7620, 0x2a037: 0x6c8ab220, + 0x2a03c: 0x6c6c7820, + // Block 0xa81, offset 0x2a040 + 0x2a041: 0x6c87d220, 0x2a042: 0x6c158820, + 0x2a045: 0x6cb65a20, 0x2a046: 0x6cb66c20, + 0x2a049: 0x6d3ec020, 0x2a04b: 0x6d3ec420, + 0x2a04d: 0x6cb6b220, 0x2a04f: 0x6cb6b820, + 0x2a050: 0x6d3ed020, 0x2a052: 0x6d2d1020, 0x2a053: 0x6d2d1420, + 0x2a054: 0x6cabec20, 0x2a056: 0x6c70d820, + 0x2a059: 0x6d0df420, + 0x2a05c: 0x6c4f8c20, 0x2a05d: 0x6ca37020, + 0x2a064: 0x6d0e0220, 0x2a066: 0x6d2e9c20, 0x2a067: 0x6cd2e020, + 0x2a068: 0x6d34ba20, + 0x2a06d: 0x6d2c0a20, + 0x2a074: 0x6cc73420, 0x2a075: 0x6d2c0c20, 0x2a077: 0x6d195820, + 0x2a078: 0x6ca02820, 0x2a079: 0x6d0b4020, 0x2a07b: 0x6d376620, + 0x2a07d: 0x6c7e3020, 0x2a07e: 0x6cfa1c20, + // Block 0xa82, offset 0x2a080 + 0x2a080: 0x6cb13820, 0x2a081: 0x6cdeec20, 0x2a083: 0x6d162a20, + 0x2a086: 0x6d051620, 0x2a087: 0x6d2d0c20, + 0x2a089: 0x6c34c420, 0x2a08a: 0x6c36e420, + 0x2a08e: 0x6d1ab420, + 0x2a090: 0x6c36ee20, 0x2a091: 0x6cdb8e20, 0x2a092: 0x6c016420, 0x2a093: 0x6c260420, + 0x2a095: 0x6ceb6420, 0x2a097: 0x6ceb6620, + 0x2a098: 0x6cfa1e20, 0x2a09b: 0x6c21ea20, + 0x2a09d: 0x6cdb9020, + 0x2a0a5: 0x6c62f420, 0x2a0a6: 0x6cba3620, 0x2a0a7: 0x6d410420, + 0x2a0a8: 0x6d2d0e20, 0x2a0a9: 0x6d280e20, 0x2a0aa: 0x6d2ea620, + 0x2a0ac: 0x6d159c20, + 0x2a0b2: 0x6d0b4220, 0x2a0b3: 0x6d266020, + 0x2a0b9: 0x6c51ac20, 0x2a0ba: 0x6cb88820, + 0x2a0be: 0x6c13c220, + // Block 0xa83, offset 0x2a0c0 + 0x2a0c3: 0x6cab7020, + 0x2a0c8: 0x6c560c20, 0x2a0ca: 0x6d0f2020, + 0x2a0cc: 0x6cbd0e20, 0x2a0cd: 0x6c0fd820, 0x2a0ce: 0x6cbafe20, 0x2a0cf: 0x6c6c1420, + 0x2a0db: 0x6ca6e820, + 0x2a0de: 0x6c162420, 0x2a0df: 0x6cbdf620, + 0x2a0e1: 0x6d2a3220, + 0x2a0e4: 0x6d1b3220, 0x2a0e5: 0x6d029c20, 0x2a0e7: 0x6cb6ba20, + 0x2a0e8: 0x6c673420, 0x2a0eb: 0x6d061420, + 0x2a0ed: 0x6d2bbc20, 0x2a0ef: 0x6c370420, + 0x2a0f3: 0x6d40a020, + 0x2a0f4: 0x6d163220, + 0x2a0f9: 0x6d34c820, 0x2a0fa: 0x6c87d420, + 0x2a0fd: 0x6c87d620, 0x2a0fe: 0x6d1aba20, + // Block 0xa84, offset 0x2a100 + 0x2a101: 0x6c88b220, 0x2a103: 0x6c158a20, + 0x2a105: 0x6c754820, 0x2a107: 0x6d28e620, + 0x2a10e: 0x6d2d1620, 0x2a10f: 0x6cb12220, + 0x2a111: 0x6c8fd220, 0x2a113: 0x6c8fd420, + 0x2a118: 0x6c8fe220, + 0x2a11d: 0x6c900020, + 0x2a120: 0x6c900c20, 0x2a122: 0x6c98b220, + 0x2a125: 0x6d30d020, + 0x2a12c: 0x6c423a20, 0x2a12d: 0x6c466a20, 0x2a12e: 0x6cc49a20, 0x2a12f: 0x6c248020, + 0x2a130: 0x6c68aa20, + 0x2a137: 0x6c0fec20, + 0x2a139: 0x6d3b4c20, 0x2a13a: 0x6cbfe820, 0x2a13b: 0x6d0f7220, + // Block 0xa85, offset 0x2a140 + 0x2a140: 0x6d003020, 0x2a142: 0x6c5b4820, 0x2a143: 0x6cc16c20, + 0x2a148: 0x6c8e0220, 0x2a14a: 0x6d1ab220, + 0x2a14e: 0x6cb0e820, + 0x2a152: 0x6c88b020, + // Block 0xa86, offset 0x2a180 + 0x2a19d: 0x6c343c20, + // Block 0xa87, offset 0x2a1c0 + 0x2a1c8: 0x6c040c20, + 0x2a1cf: 0x6d2d9220, + // Block 0xa88, offset 0x2a200 + 0x2a22e: 0x6c943c20, + // Block 0xa89, offset 0x2a240 + 0x2a24a: 0x6cd94a20, + 0x2a257: 0x6c73ac20, + // Block 0xa8a, offset 0x2a280 + 0x2a29d: 0x6d1d8e20, + // Block 0xa8b, offset 0x2a2c0 + 0x2a2f9: 0x6caa5c20, + // Block 0xa8c, offset 0x2a300 + 0x2a310: 0x6c230620, + // Block 0xa8d, offset 0x2a340 + 0x2a362: 0x6cfc9220, + // Block 0xa8e, offset 0x2a380 + 0x2a3a1: 0x6c85dc20, + // Block 0xa8f, offset 0x2a3c0 + 0x2a3c8: 0x6c3abc20, + 0x2a3d9: 0x6cdb3a20, + // Block 0xa90, offset 0x2a400 + 0x2a41c: 0x6c79dc20, + // Block 0xa91, offset 0x2a440 + 0x2a468: 0x6c1a9e20, + 0x2a478: 0x6d09b220, + // Block 0xa92, offset 0x2a480 + 0x2a4b0: 0x6cb86a20, + // Block 0xa93, offset 0x2a4c0 + 0x2a4d0: 0x6c45fe20, + // Block 0xa94, offset 0x2a500 + 0x2a500: 0x6c5ef220, + 0x2a528: 0x6c953a20, + // Block 0xa95, offset 0x2a540 + 0x2a559: 0x6d165020, + 0x2a55f: 0x6d146820, + 0x2a562: 0x6ca49820, + 0x2a570: 0x6cf7de20, 0x2a572: 0x6cffaa20, + // Block 0xa96, offset 0x2a580 + 0x2a58b: 0x6c73b020, + // Block 0xa97, offset 0x2a5c0 + 0x2a5c4: 0x6d268220, 0x2a5c6: 0x6c7b1020, + 0x2a5c9: 0x6c8cc220, + 0x2a5d0: 0x6ca5f020, 0x2a5d3: 0x6c108a20, + // Block 0xa98, offset 0x2a600 + 0x2a636: 0x6c4e3a20, + // Block 0xa99, offset 0x2a640 + 0x2a667: 0x6c3d5820, + 0x2a669: 0x6c230a20, + // Block 0xa9a, offset 0x2a680 + 0x2a68e: 0x6c74d220, + // Block 0xa9b, offset 0x2a6c0 + 0x2a6e0: 0x6d2eb220, + 0x2a6e6: 0x6c109020, 0x2a6e7: 0x6cda9a20, + 0x2a6ee: 0x6c59cc20, + 0x2a6f4: 0x6d2da220, + // Block 0xa9c, offset 0x2a700 + 0x2a71d: 0x6c73ea20, + 0x2a723: 0x6c4ea420, + 0x2a724: 0x6c003a20, + 0x2a728: 0x6ce33820, + // Block 0xa9d, offset 0x2a740 + 0x2a748: 0x6d06ca20, 0x2a749: 0x6c534620, + 0x2a752: 0x6c3e4620, + 0x2a754: 0x6c5b4020, 0x2a755: 0x6cd1e620, + 0x2a759: 0x6cb41220, + // Block 0xa9e, offset 0x2a780 + 0x2a79b: 0x6d33bc20, + 0x2a79e: 0x6c740c20, + 0x2a7a2: 0x6ca90020, + 0x2a7b6: 0x6c1c5220, + 0x2a7b8: 0x6ce36020, + // Block 0xa9f, offset 0x2a7c0 + 0x2a7c0: 0x6c857420, 0x2a7c1: 0x6cecb420, 0x2a7c2: 0x6d144620, 0x2a7c3: 0x48024420, + 0x2a7c4: 0x6ca62220, 0x2a7c5: 0x6cf43220, 0x2a7c6: 0x6ce9f420, 0x2a7c7: 0x6c0e1020, + 0x2a7c8: 0x6d28b220, 0x2a7c9: 0x6c071c20, 0x2a7ca: 0x6ccbb820, 0x2a7cb: 0x6cfe3c20, + 0x2a7cc: 0x6c75ee20, 0x2a7cd: 0x6cddc620, 0x2a7ce: 0x6c9dfe20, 0x2a7cf: 0x6ce92020, + 0x2a7d0: 0x6c5a2a20, 0x2a7d1: 0x6c720620, 0x2a7d2: 0x480a3820, 0x2a7d3: 0x44697220, + 0x2a7d4: 0x6ca57e20, 0x2a7d5: 0x6d292620, 0x2a7d6: 0x480a9620, 0x2a7d7: 0x6cc6ec20, + 0x2a7d8: 0x6d24d020, 0x2a7d9: 0x6c0da020, 0x2a7da: 0x6c2fd820, 0x2a7db: 0x6c7bdc20, + 0x2a7dc: 0x6cbee220, 0x2a7dd: 0x6cb9ec20, 0x2a7de: 0x6cc5a020, 0x2a7df: 0x6cafae20, + 0x2a7e0: 0x6c787a20, 0x2a7e1: 0x6c95a620, 0x2a7e2: 0x6c438c20, 0x2a7e3: 0x6c15bc20, + 0x2a7e4: 0x6c5fc020, 0x2a7e5: 0x6d1e1820, 0x2a7e6: 0x6c9e0c20, 0x2a7e7: 0x6cbd7c20, + 0x2a7e8: 0x6cce9420, 0x2a7e9: 0x6c059e20, 0x2a7ea: 0x6c22f420, 0x2a7eb: 0x6c06c620, + 0x2a7ec: 0x6c5b8420, 0x2a7ed: 0x6c068e20, 0x2a7ee: 0x6c0efe20, 0x2a7ef: 0x6c5fd220, + 0x2a7f0: 0x6c5fec20, 0x2a7f1: 0x6cbe3a20, 0x2a7f2: 0x6cbe3a20, 0x2a7f3: 0x6cbe3a20, + 0x2a7f4: 0x48145820, 0x2a7f5: 0x6c5a8620, 0x2a7f6: 0x6c5fb820, 0x2a7f7: 0x6cda0e20, + 0x2a7f8: 0x4816c620, 0x2a7f9: 0x6c697a20, 0x2a7fa: 0x6c1bd620, 0x2a7fb: 0x6d108620, + 0x2a7fc: 0x6cfc7820, 0x2a7fd: 0x6cf56a20, 0x2a7fe: 0x6c19b620, 0x2a7ff: 0x6d385a20, + // Block 0xaa0, offset 0x2a800 + 0x2a800: 0x6c35e420, 0x2a801: 0x6c9ec220, 0x2a802: 0x6ce0e820, 0x2a803: 0x6cb6ec20, + 0x2a804: 0x6cfb5820, 0x2a805: 0x6ccd8a20, 0x2a806: 0x6ccd8a20, 0x2a807: 0x6c5bbc20, + 0x2a808: 0x6c1aae20, 0x2a809: 0x6d2bd620, 0x2a80a: 0x6d110420, 0x2a80b: 0x6ce8d420, + 0x2a80c: 0x6ce0a020, 0x2a80d: 0x6ce8d620, 0x2a80e: 0x6c4fd020, 0x2a80f: 0x6cae3420, + 0x2a810: 0x6cbc9020, 0x2a811: 0x6d3c2c20, 0x2a812: 0x6c19c620, 0x2a813: 0x6d344c20, + 0x2a814: 0x6ce92220, 0x2a815: 0x6d03ca20, 0x2a816: 0x6c223620, 0x2a817: 0x6c064c20, + 0x2a818: 0x6c2c7c20, 0x2a819: 0x4829c820, 0x2a81a: 0x6c972420, 0x2a81b: 0x6c554020, + 0x2a81c: 0x6c3c9c20, 0x2a81d: 0x6c341620, 0x2a81e: 0x6c9c0420, 0x2a81f: 0x6cceea20, + 0x2a820: 0x6c1bda20, 0x2a821: 0x482dd420, 0x2a822: 0x6c5ea220, 0x2a823: 0x6d20ec20, + 0x2a824: 0x6ce9f820, 0x2a825: 0x6cb1e820, 0x2a826: 0x6c3fe420, 0x2a827: 0x6ccae220, + 0x2a828: 0x6c139820, 0x2a829: 0x6cc52820, 0x2a82a: 0x6c804820, 0x2a82b: 0x6c804820, + 0x2a82c: 0x48339020, 0x2a82d: 0x6d24da20, 0x2a82e: 0x6d365020, 0x2a82f: 0x6ca91020, + 0x2a830: 0x6c061c20, 0x2a831: 0x6c81ee20, 0x2a832: 0x6cd45020, 0x2a833: 0x6c674e20, + 0x2a834: 0x6c28f820, 0x2a835: 0x6d1edc20, 0x2a836: 0x6d11f020, 0x2a837: 0x6ce8a020, + 0x2a838: 0x6c17fa20, 0x2a839: 0x6d053020, 0x2a83a: 0x6cb8a420, 0x2a83b: 0x6cf3b020, + 0x2a83c: 0x6d0d7a20, 0x2a83d: 0x483bcc20, 0x2a83e: 0x6c2ccc20, 0x2a83f: 0x6d3e3620, + // Block 0xaa1, offset 0x2a840 + 0x2a840: 0x6c15c620, 0x2a841: 0x6d09d820, 0x2a842: 0x6c175e20, 0x2a843: 0x6d15b220, + 0x2a844: 0x6d0a8c20, 0x2a845: 0x6cd71420, 0x2a846: 0x6c997a20, 0x2a847: 0x6c3b8620, + 0x2a848: 0x6c980020, 0x2a849: 0x48430620, 0x2a84a: 0x6d16e820, 0x2a84b: 0x6c0e0e20, + 0x2a84c: 0x6c097620, 0x2a84d: 0x6cd5c220, 0x2a84e: 0x6c80b420, 0x2a84f: 0x6cd79620, + 0x2a850: 0x6c45cc20, 0x2a851: 0x48466220, 0x2a852: 0x48466220, 0x2a853: 0x6d20e820, + 0x2a854: 0x6ce1b020, 0x2a855: 0x6ce1b020, 0x2a856: 0x6d16b220, 0x2a857: 0x48657020, + 0x2a858: 0x48c3b420, 0x2a859: 0x6d03c020, 0x2a85a: 0x6c2dc420, 0x2a85b: 0x6ccd7820, + 0x2a85c: 0x6c300020, 0x2a85d: 0x6cc58620, 0x2a85e: 0x6d357420, 0x2a85f: 0x6c7bb620, + 0x2a860: 0x6d24d420, 0x2a861: 0x6c5a4620, 0x2a862: 0x6c73f820, 0x2a863: 0x6c5b4c20, + 0x2a864: 0x6c2ff820, 0x2a865: 0x6c339820, 0x2a866: 0x6c224e20, 0x2a867: 0x6c599420, + 0x2a868: 0x6cd0ac20, 0x2a869: 0x6c599420, 0x2a86a: 0x6c90a220, 0x2a86b: 0x6d2b8a20, + 0x2a86c: 0x6cfd0820, 0x2a86d: 0x6c3be420, 0x2a86e: 0x6c11da20, 0x2a86f: 0x6c9b4a20, + 0x2a870: 0x6c1a5420, 0x2a871: 0x6c804a20, 0x2a872: 0x6c19b220, 0x2a873: 0x6c63b620, + 0x2a874: 0x6c7a1820, 0x2a875: 0x6c063220, 0x2a876: 0x6c036820, 0x2a877: 0x6c72e420, + 0x2a878: 0x48561820, 0x2a879: 0x6cecf820, 0x2a87a: 0x6cb1ea20, 0x2a87b: 0x6ccf2c20, + 0x2a87c: 0x6ccae020, 0x2a87d: 0x6c600020, 0x2a87e: 0x4857e220, 0x2a87f: 0x6c6d1420, + // Block 0xaa2, offset 0x2a880 + 0x2a880: 0x6d0ca820, 0x2a881: 0x6d0d6620, 0x2a882: 0x6c30b620, 0x2a883: 0x6ca07220, + 0x2a884: 0x6c67f620, 0x2a885: 0x6c5ae420, 0x2a886: 0x6c691420, 0x2a887: 0x4474d820, + 0x2a888: 0x6c9fa820, 0x2a889: 0x6c6e8420, 0x2a88a: 0x48601420, 0x2a88b: 0x6c61ec20, + 0x2a88c: 0x6cd4b820, 0x2a88d: 0x6c6cea20, 0x2a88e: 0x6cf01620, 0x2a88f: 0x6cd55a20, + 0x2a890: 0x6cf15420, 0x2a891: 0x6c16e420, 0x2a892: 0x6c994e20, 0x2a893: 0x6c9e1820, + 0x2a894: 0x6d41b020, 0x2a895: 0x6c6d2820, 0x2a896: 0x6ca31420, 0x2a897: 0x6ce05420, + 0x2a898: 0x6c80f820, 0x2a899: 0x6cee5220, 0x2a89a: 0x6d3f9820, 0x2a89b: 0x6cb6d620, + 0x2a89c: 0x6c0bea20, 0x2a89d: 0x48678620, 0x2a89e: 0x6c572820, 0x2a89f: 0x6c48dc20, + 0x2a8a0: 0x6c5e8e20, 0x2a8a1: 0x6cca6a20, 0x2a8a2: 0x6c99ec20, 0x2a8a3: 0x4868da20, + 0x2a8a4: 0x6c022a20, 0x2a8a5: 0x6c078420, 0x2a8a6: 0x6d3e3a20, 0x2a8a7: 0x6c513820, + 0x2a8a8: 0x6d2be020, 0x2a8a9: 0x6d112020, 0x2a8aa: 0x6c415020, 0x2a8ab: 0x6ccefe20, + 0x2a8ac: 0x486d4620, 0x2a8ad: 0x6d370620, 0x2a8ae: 0x6d159820, 0x2a8af: 0x6c22aa20, + 0x2a8b0: 0x48714e20, 0x2a8b1: 0x6d05d420, 0x2a8b2: 0x6c7d9c20, 0x2a8b3: 0x6cdc4620, + 0x2a8b4: 0x6cf15820, 0x2a8b5: 0x6ccbda20, 0x2a8b6: 0x6cbc4020, 0x2a8b7: 0x48751a20, + 0x2a8b8: 0x483a1620, 0x2a8b9: 0x4875f420, 0x2a8ba: 0x6c391c20, 0x2a8bb: 0x48797820, + 0x2a8bc: 0x6d0c6820, 0x2a8bd: 0x6c077e20, 0x2a8be: 0x6cb8a820, 0x2a8bf: 0x6cf3b620, + // Block 0xaa3, offset 0x2a8c0 + 0x2a8c0: 0x6cac1e20, 0x2a8c1: 0x6c4d3a20, 0x2a8c2: 0x6c8e4a20, 0x2a8c3: 0x6c502e20, + 0x2a8c4: 0x6c6cee20, 0x2a8c5: 0x6ca80820, 0x2a8c6: 0x6c07ac20, 0x2a8c7: 0x6cb28620, + 0x2a8c8: 0x6c42a220, 0x2a8c9: 0x6d0c0820, 0x2a8ca: 0x6c903620, 0x2a8cb: 0x6d3e4020, + 0x2a8cc: 0x6c2cce20, 0x2a8cd: 0x6ccc0a20, 0x2a8ce: 0x6d0bf820, 0x2a8cf: 0x6c177620, + 0x2a8d0: 0x487ebc20, 0x2a8d1: 0x487f1c20, 0x2a8d2: 0x6c3b8c20, 0x2a8d3: 0x6d270a20, + 0x2a8d4: 0x6c6eb420, 0x2a8d5: 0x6d1cba20, 0x2a8d6: 0x6cd63020, 0x2a8d7: 0x6cb9e020, + 0x2a8d8: 0x6d28f220, 0x2a8d9: 0x6d3bbe20, 0x2a8da: 0x6ce08e20, 0x2a8db: 0x480a4a20, + 0x2a8dc: 0x6c32cc20, 0x2a8dd: 0x4884c620, 0x2a8de: 0x6c233e20, 0x2a8df: 0x48875620, + 0x2a8e0: 0x6c24c420, 0x2a8e1: 0x6c74c820, 0x2a8e2: 0x6d2c3a20, 0x2a8e3: 0x488c1020, + 0x2a8e4: 0x6cf61a20, 0x2a8e5: 0x6c074020, 0x2a8e6: 0x6d0e3c20, 0x2a8e7: 0x48902820, + 0x2a8e8: 0x6cde2020, 0x2a8e9: 0x6cedda20, 0x2a8ea: 0x6c45d620, 0x2a8eb: 0x6d268820, + 0x2a8ec: 0x6cb29020, 0x2a8ed: 0x6cb29020, 0x2a8ee: 0x6c277a20, 0x2a8ef: 0x6d215e20, + 0x2a8f0: 0x6d325020, 0x2a8f1: 0x6cdd8a20, 0x2a8f2: 0x6cbf7620, 0x2a8f3: 0x6d03d220, + 0x2a8f4: 0x6cc89c20, 0x2a8f5: 0x48986c20, 0x2a8f6: 0x6d28f620, 0x2a8f7: 0x48992420, + 0x2a8f8: 0x6d176620, 0x2a8f9: 0x6cb2b420, 0x2a8fa: 0x6d226e20, 0x2a8fb: 0x489f4220, + 0x2a8fc: 0x489f7020, 0x2a8fd: 0x48a08820, 0x2a8fe: 0x6d0c7620, 0x2a8ff: 0x6c627820, + // Block 0xaa4, offset 0x2a900 + 0x2a900: 0x6d344020, 0x2a901: 0x48a1e620, 0x2a902: 0x48a1e420, 0x2a903: 0x48a23220, + 0x2a904: 0x48a26620, 0x2a905: 0x6d313c20, 0x2a906: 0x6d313e20, 0x2a907: 0x6d313e20, + 0x2a908: 0x6c736420, 0x2a909: 0x6c6ad220, 0x2a90a: 0x6c188220, 0x2a90b: 0x6d130220, + 0x2a90c: 0x6cd23420, 0x2a90d: 0x48a83a20, 0x2a90e: 0x6d03e220, 0x2a90f: 0x6c926e20, + 0x2a910: 0x6ce4ba20, 0x2a911: 0x6c5b7020, 0x2a912: 0x6c6fd820, 0x2a913: 0x6d411420, + 0x2a914: 0x6c1baa20, 0x2a915: 0x6c8f3a20, 0x2a916: 0x6c3e9c20, 0x2a917: 0x6cd52420, + 0x2a918: 0x6c657420, 0x2a919: 0x6c47c420, 0x2a91a: 0x6c624a20, 0x2a91b: 0x6cf1f020, + 0x2a91c: 0x48b2f820, 0x2a91d: 0x6ce4c020, 0x2a91e: 0x6ce4c020, 0x2a91f: 0x6cb26020, + 0x2a920: 0x6cb2be20, 0x2a921: 0x48b75620, 0x2a922: 0x6d3bde20, 0x2a923: 0x6d3a2820, + 0x2a924: 0x6cf00020, 0x2a925: 0x6c178020, 0x2a926: 0x6c076020, 0x2a927: 0x6cf8f420, + 0x2a928: 0x6c680820, 0x2a929: 0x6cca3020, 0x2a92a: 0x6c61b020, 0x2a92b: 0x48bf0c20, + 0x2a92c: 0x6c07ee20, 0x2a92d: 0x6d10b020, 0x2a92e: 0x6d3e6a20, 0x2a92f: 0x6d400620, + 0x2a930: 0x6ccac220, 0x2a931: 0x6c965020, 0x2a932: 0x6d03dc20, 0x2a933: 0x48c48e20, + 0x2a934: 0x6c9a0420, 0x2a935: 0x48c5b220, 0x2a936: 0x6c177e20, 0x2a937: 0x48c67c20, + 0x2a938: 0x6d104a20, 0x2a939: 0x6c027e20, 0x2a93a: 0x6d30d220, 0x2a93b: 0x48c9b420, + 0x2a93c: 0x48ca4620, 0x2a93d: 0x6cb25820, 0x2a93e: 0x48cb5020, 0x2a93f: 0x6c236620, + // Block 0xaa5, offset 0x2a940 + 0x2a940: 0x6c78f420, 0x2a941: 0x6cc5d220, 0x2a942: 0x6d22da20, 0x2a943: 0x6c252c20, + 0x2a944: 0x6c231a20, 0x2a945: 0x6caff420, 0x2a946: 0x6d1d4020, 0x2a947: 0x48cf4e20, + 0x2a948: 0x48cf6a20, 0x2a949: 0x6d085420, 0x2a94a: 0x48673820, 0x2a94b: 0x6d20e820, + 0x2a94c: 0x6cf89220, 0x2a94d: 0x6c225220, 0x2a94e: 0x6c07f020, 0x2a94f: 0x6cb6ce20, + 0x2a950: 0x6d22c820, 0x2a951: 0x6d338420, 0x2a952: 0x6c813e20, 0x2a953: 0x6c570620, + 0x2a954: 0x6c398620, 0x2a955: 0x6d0b1420, 0x2a956: 0x6c7a7620, 0x2a957: 0x48d67820, + 0x2a958: 0x6cc91420, 0x2a959: 0x6c148e20, 0x2a95a: 0x6cc65e20, 0x2a95b: 0x6c6aa820, + 0x2a95c: 0x6cf3bc20, 0x2a95d: 0x6c988a20, 0x2a95e: 0x6c2bf220, 0x2a95f: 0x6d311420, + 0x2a960: 0x6cb28e20, 0x2a961: 0x6c711c20, 0x2a962: 0x6c757020, 0x2a963: 0x6c114420, + 0x2a964: 0x48d86c20, 0x2a965: 0x6cdd8420, 0x2a966: 0x48d9aa20, 0x2a967: 0x448a5620, + 0x2a968: 0x6cb2ae20, 0x2a969: 0x6c6ca620, 0x2a96a: 0x6c25ea20, 0x2a96b: 0x48e79420, + 0x2a96c: 0x6cc8a220, 0x2a96d: 0x48de5820, 0x2a96e: 0x6c19a420, 0x2a96f: 0x6c936e20, + 0x2a970: 0x6c175420, 0x2a971: 0x6c93c420, 0x2a972: 0x6c7cba20, 0x2a973: 0x6caaa220, + 0x2a974: 0x6c91c420, 0x2a975: 0x6c7c4820, 0x2a976: 0x6cf90620, 0x2a977: 0x6c1aa420, + 0x2a978: 0x6cb8ca20, 0x2a979: 0x6d24fc20, 0x2a97a: 0x6cb2b020, 0x2a97b: 0x6d276220, + 0x2a97c: 0x6c2ed620, 0x2a97d: 0x6d39be20, 0x2a97e: 0x6c22de20, 0x2a97f: 0x6c5f4420, + // Block 0xaa6, offset 0x2a980 + 0x2a980: 0x6c4b2220, 0x2a981: 0x6cfe0220, 0x2a982: 0x6c22ec20, 0x2a983: 0x6d3cd820, + 0x2a984: 0x6d13be20, 0x2a985: 0x6c668020, 0x2a986: 0x6c8e6020, 0x2a987: 0x6cd72420, + 0x2a988: 0x6c929c20, 0x2a989: 0x6d0daa20, 0x2a98a: 0x6c996a20, 0x2a98b: 0x48f15c20, + 0x2a98c: 0x48f2cc20, 0x2a98d: 0x6ca8e820, 0x2a98e: 0x6d25ea20, 0x2a98f: 0x6c1a2220, + 0x2a990: 0x6d23f620, 0x2a991: 0x6c0bdc20, 0x2a992: 0x6cd2b020, 0x2a993: 0x6c649220, + 0x2a994: 0x6c498620, 0x2a995: 0x6c09b020, 0x2a996: 0x6c424420, 0x2a997: 0x6cb6ea20, + 0x2a998: 0x6cd61020, 0x2a999: 0x6d2fdc20, 0x2a99a: 0x6c038220, 0x2a99b: 0x6c658c20, + 0x2a99c: 0x6cb11c20, 0x2a99d: 0x4811bc20, 0x2a99e: 0x6cc5e420, 0x2a99f: 0x6cd50820, + 0x2a9a0: 0x490ba420, 0x2a9a1: 0x490bda20, 0x2a9a2: 0x6cb6c420, 0x2a9a3: 0x6cb27e20, + 0x2a9a4: 0x6d3e4a20, 0x2a9a5: 0x490e5c20, 0x2a9a6: 0x6c176420, 0x2a9a7: 0x6c0f1c20, + 0x2a9a8: 0x6d07ca20, 0x2a9a9: 0x6c575620, 0x2a9aa: 0x6c0dee20, 0x2a9ab: 0x6cbb5020, + 0x2a9ac: 0x6d295820, 0x2a9ad: 0x4917f420, 0x2a9ae: 0x6c763420, 0x2a9af: 0x6cae7c20, + 0x2a9b0: 0x6ccca420, 0x2a9b1: 0x491aee20, 0x2a9b2: 0x6cef3620, 0x2a9b3: 0x6cb8e820, + 0x2a9b4: 0x6cf69820, 0x2a9b5: 0x6d280620, 0x2a9b6: 0x6cace820, 0x2a9b7: 0x6cb26420, + 0x2a9b8: 0x6c930020, 0x2a9b9: 0x6c160820, 0x2a9ba: 0x6c0ab220, 0x2a9bb: 0x49281420, + 0x2a9bc: 0x6c7d6c20, 0x2a9bd: 0x6d0eb020, 0x2a9be: 0x6c35b420, 0x2a9bf: 0x6c35b420, + // Block 0xaa7, offset 0x2a9c0 + 0x2a9c0: 0x6cb26620, 0x2a9c1: 0x6d097020, 0x2a9c2: 0x6c5eb020, 0x2a9c3: 0x6c04d420, + 0x2a9c4: 0x6c36b220, 0x2a9c5: 0x6d276c20, 0x2a9c6: 0x6c060a20, 0x2a9c7: 0x6cea1420, + 0x2a9c8: 0x6c423020, 0x2a9c9: 0x6cbf6820, 0x2a9ca: 0x6d320420, 0x2a9cb: 0x6c62d820, + 0x2a9cc: 0x6c64ec20, 0x2a9cd: 0x6c702e20, 0x2a9ce: 0x6c60f620, 0x2a9cf: 0x6cb02c20, + 0x2a9d0: 0x6d21ea20, 0x2a9d1: 0x6c968620, 0x2a9d2: 0x6ccc2e20, 0x2a9d3: 0x49441c20, + 0x2a9d4: 0x49452220, 0x2a9d5: 0x6c966820, 0x2a9d6: 0x6cba8620, 0x2a9d7: 0x6d353420, + 0x2a9d8: 0x6c9e0a20, 0x2a9d9: 0x6d342a20, 0x2a9da: 0x6c9d7420, 0x2a9db: 0x6c3ba420, + 0x2a9dc: 0x6c08a220, 0x2a9dd: 0x6cb13820, + // Block 0xaa8, offset 0x2aa00 + 0x2aa00: 0x6c00c220, 0x2aa01: 0xe0002416, 0x2aa02: 0x029cb684, 0x2aa03: 0x029cb484, + 0x2aa04: 0x6c000e20, 0x2aa05: 0x029d7684, 0x2aa06: 0x6c008a20, 0x2aa07: 0x6c009220, + 0x2aa08: 0x6c009e20, 0x2aa09: 0x02a40484, 0x2aa0a: 0x6c00b820, 0x2aa0b: 0xe0002413, + 0x2aa0c: 0x6c01a420, 0x2aa0d: 0x6c01a620, 0x2aa0e: 0xe000241f, 0x2aa0f: 0x02b84684, + 0x2aa10: 0x02b84484, 0x2aa11: 0xe0002422, 0x2aa12: 0x02bbe684, 0x2aa13: 0x02bcf484, + 0x2aa14: 0x02bea284, 0x2aa15: 0x6c01e620, 0x2aa16: 0x02bf8884, 0x2aa17: 0xe0002428, + 0x2aa18: 0x02c49884, 0x2aa19: 0x02ca6a84, 0x2aa1b: 0x02cbc284, + 0x2aa1c: 0x6c049420, 0x2aa1d: 0x6c049a20, 0x2aa1e: 0xe0002436, 0x2aa1f: 0x2c098083, + 0x2aa20: 0x02d82284, 0x2aa21: 0x02d86a84, 0x2aa22: 0x02d87484, 0x2aa23: 0x02e0d884, + 0x2aa24: 0x02e45684, 0x2aa25: 0x6c04d420, 0x2aa26: 0x029c5884, 0x2aa27: 0x6c04ee20, + 0x2aa28: 0x02e55a84, 0x2aa29: 0xe000243f, 0x2aa2a: 0x6c0a1820, 0x2aa2b: 0xe0002445, + 0x2aa2c: 0x6c0a3220, 0x2aa2d: 0x02f27684, 0x2aa2e: 0x6c13f420, 0x2aa2f: 0x02f9f284, + 0x2aa30: 0x02fd3e84, 0x2aa31: 0x02fea684, 0x2aa32: 0x02fea484, 0x2aa33: 0xe0002451, + 0x2aa34: 0xe0002454, 0x2aa35: 0xe000244e, 0x2aa36: 0x6c143820, 0x2aa37: 0xe000245a, + 0x2aa38: 0x02ff1684, 0x2aa39: 0x03000484, 0x2aa3a: 0x03010084, 0x2aa3b: 0xe000245d, + 0x2aa3c: 0x6c050a20, 0x2aa3d: 0xe0002463, 0x2aa3e: 0x6c020220, 0x2aa3f: 0xe0002466, + // Block 0xaa9, offset 0x2aa40 + 0x2aa40: 0xe0002469, 0x2aa41: 0x030c9c84, 0x2aa42: 0x0310c884, 0x2aa43: 0x03130084, + 0x2aa44: 0x0312fe84, 0x2aa45: 0x03138284, 0x2aa46: 0x6c26a420, 0x2aa47: 0xe000246c, + 0x2aa48: 0x03174084, 0x2aa49: 0x031a3a84, 0x2aa4a: 0x6c270020, 0x2aa4b: 0x031ecc84, + 0x2aa4c: 0x6c020620, 0x2aa4d: 0x6c051c20, 0x2aa4e: 0xe0002475, 0x2aa4f: 0x6c00cc20, + 0x2aa50: 0x03290a84, 0x2aa51: 0x032aee84, 0x2aa52: 0x032af084, 0x2aa53: 0x032afe84, + 0x2aa54: 0x032bd084, 0x2aa55: 0xe000247b, 0x2aa56: 0x6c00ce20, 0x2aa57: 0x6c427620, + 0x2aa58: 0x032ea484, 0x2aa59: 0x032fcc84, 0x2aa5a: 0x0330ea84, 0x2aa5b: 0x03319c84, + 0x2aa5c: 0x0331bc84, 0x2aa5d: 0x0331be84, 0x2aa5e: 0x6c636020, 0x2aa5f: 0x0331c084, + 0x2aa60: 0x0332c684, 0x2aa61: 0xe0002484, 0x2aa62: 0x0334d884, 0x2aa63: 0x6c63aa20, + 0x2aa64: 0xe000248a, 0x2aa65: 0x0338f884, 0x2aa66: 0x033c3e84, 0x2aa67: 0xe000248d, + 0x2aa68: 0x033d4c84, 0x2aa69: 0x033d8884, 0x2aa6a: 0x033dfc84, 0x2aa6b: 0xe0002490, + 0x2aa6c: 0x033ea084, 0x2aa6d: 0xe0002493, 0x2aa6e: 0x033efe84, 0x2aa6f: 0xe0002496, + 0x2aa70: 0x033f3284, 0x2aa71: 0xe0002499, 0x2aa72: 0xe000249c, 0x2aa73: 0x2c28ac83, + // Block 0xaaa, offset 0x2aa80 + 0x2aa80: 0x2c000286, 0x2aa81: 0x2c000483, 0x2aa82: 0x2c000683, 0x2aa83: 0x2c000883, + 0x2aa84: 0x2c001084, 0x2aa85: 0x2c002483, 0x2aa86: 0x2c007486, 0x2aa87: 0x2c007c83, + 0x2aa88: 0x2c007e84, 0x2aa89: 0x2c008483, 0x2aa8a: 0x2c008683, 0x2aa8b: 0x2c008884, + 0x2aa8c: 0x2c008c83, 0x2aa8d: 0x2c008e83, 0x2aa8e: 0x2c009083, 0x2aa8f: 0x2c009483, + 0x2aa90: 0x2c009a83, 0x2aa91: 0x2c00a083, 0x2aa92: 0x2c00a883, 0x2aa93: 0x2c00aa83, + 0x2aa94: 0x2c00ac83, 0x2aa95: 0x2c00b083, 0x2aa96: 0x2c00b483, 0x2aa97: 0x2c00b685, + 0x2aa98: 0x2c00ba83, 0x2aa99: 0x2c00bc83, 0x2aa9a: 0x2c00be83, 0x2aa9b: 0x2c00c083, + 0x2aa9c: 0x2c00c483, 0x2aa9d: 0x2c018083, 0x2aa9e: 0x2c018283, 0x2aa9f: 0x2c018484, + 0x2aaa0: 0x2c018683, 0x2aaa1: 0x2c018883, 0x2aaa2: 0x2c018c83, 0x2aaa3: 0x2c018e83, + 0x2aaa4: 0x2c019083, 0x2aaa5: 0x2c019484, 0x2aaa6: 0x2c019683, 0x2aaa7: 0x2c01a083, + 0x2aaa8: 0x2c01a283, 0x2aaa9: 0x2c01a883, 0x2aaaa: 0x2c01ac83, 0x2aaab: 0x2c01b283, + 0x2aaac: 0x2c01b683, 0x2aaad: 0x2c01ba83, 0x2aaae: 0x2c01bc83, 0x2aaaf: 0x2c01c483, + 0x2aab0: 0x2c01c683, 0x2aab1: 0x2c01cc83, 0x2aab2: 0x2c01ce83, 0x2aab3: 0x2c01d283, + 0x2aab4: 0x2c01d483, 0x2aab5: 0x2c01d683, 0x2aab6: 0x2c01d883, 0x2aab7: 0x2c01dc83, + 0x2aab8: 0x2c01e083, 0x2aab9: 0x2c01e883, 0x2aaba: 0x2c01ec83, 0x2aabb: 0x2c01ee83, + 0x2aabc: 0x2c046683, 0x2aabd: 0x2c046c83, 0x2aabe: 0x2c046e83, 0x2aabf: 0x2c047484, + // Block 0xaab, offset 0x2aac0 + 0x2aac0: 0x2c047e83, 0x2aac1: 0x2c048083, 0x2aac2: 0x2c048484, 0x2aac3: 0x2c048683, + 0x2aac4: 0x2c048a83, 0x2aac5: 0x2c048e83, 0x2aac6: 0x2c049083, 0x2aac7: 0x2c049684, + 0x2aac8: 0x2c049883, 0x2aac9: 0x2c049c85, 0x2aaca: 0x2c049e84, 0x2aacb: 0x2c04a683, + 0x2aacc: 0x2c04a883, 0x2aacd: 0x2c04ae83, 0x2aace: 0x2c04b483, 0x2aacf: 0x2c04b683, + 0x2aad0: 0x2c04bc83, 0x2aad1: 0x2c04be83, 0x2aad2: 0x2c04c283, 0x2aad3: 0x2c04c483, + 0x2aad4: 0x2c04c684, 0x2aad5: 0x2c04d084, 0x2aad6: 0x2c04d683, 0x2aad7: 0x2c04de83, + 0x2aad8: 0x2c04e083, 0x2aad9: 0x2c04e483, 0x2aada: 0x2c04e883, 0x2aadb: 0x2c04ec83, + 0x2aadc: 0x2c04f083, 0x2aadd: 0x2c04f483, 0x2aade: 0x2c09ee83, 0x2aadf: 0x2c09f283, + 0x2aae0: 0x2c09fa83, 0x2aae1: 0x2c09fc83, 0x2aae2: 0x2c09fe83, 0x2aae3: 0x2c0a0284, + 0x2aae4: 0x2c0a0683, 0x2aae5: 0x2c0a0a83, 0x2aae6: 0x2c0a1a83, 0x2aae7: 0x2c0a2083, + 0x2aae8: 0x2c0a2283, 0x2aae9: 0x2c0a2483, 0x2aaea: 0x2c0a2683, 0x2aaeb: 0x2c0a2883, + 0x2aaec: 0x2c0a2a83, 0x2aaed: 0x2c0a2c83, 0x2aaee: 0x2c0a2e83, 0x2aaef: 0x2c0a3083, + 0x2aaf0: 0x2c0a3483, 0x2aaf1: 0x2c0a3883, 0x2aaf2: 0x2c0a3c83, 0x2aaf3: 0x2c0a4083, + 0x2aaf4: 0x2c0a4483, 0x2aaf5: 0x2c141083, 0x2aaf6: 0x2c141483, 0x2aaf7: 0x2c141683, + 0x2aaf8: 0x2c143083, 0x2aaf9: 0x2c143483, 0x2aafa: 0x2c143a83, 0x2aafb: 0x2c144283, + 0x2aafc: 0x2c144483, 0x2aafd: 0x2c144883, 0x2aafe: 0x2c144c83, 0x2aaff: 0x2c145083, + // Block 0xaac, offset 0x2ab00 + 0x2ab00: 0x2c145283, 0x2ab01: 0x2c145683, 0x2ab02: 0x2c147a83, 0x2ab03: 0x2c147e83, + 0x2ab04: 0x2c148283, 0x2ab05: 0x2c148883, 0x2ab06: 0x2c149083, 0x2ab07: 0x2c149283, + 0x2ab08: 0x2c149483, 0x2ab09: 0x2c149883, 0x2ab0a: 0x2c149a83, 0x2ab0b: 0x2c149e83, + 0x2ab0c: 0x2c14ca83, 0x2ab0d: 0x2c14cc83, 0x2ab0e: 0x2c14ce83, 0x2ab0f: 0x2c14d083, + 0x2ab10: 0x2c14d283, 0x2ab11: 0x2c14d483, 0x2ab12: 0x2c26a083, 0x2ab13: 0x2c26a683, + 0x2ab14: 0x2c26aa83, 0x2ab15: 0x2c26e683, 0x2ab16: 0x2c26ea83, 0x2ab17: 0x2c26ec83, + 0x2ab18: 0x2c26f283, 0x2ab19: 0x2c26f483, 0x2ab1a: 0x2c26fa83, 0x2ab1b: 0x2c26fc84, + 0x2ab1c: 0x2c270283, 0x2ab1d: 0x2c270683, 0x2ab1e: 0x2c270e83, 0x2ab1f: 0x2c271c83, + 0x2ab20: 0x2c272083, 0x2ab21: 0x2c272683, 0x2ab22: 0x2c278a83, 0x2ab23: 0x2c27ec83, + 0x2ab24: 0x2c27ee83, 0x2ab25: 0x2c27f083, 0x2ab26: 0x2c41dc84, 0x2ab27: 0x2c41fe83, + 0x2ab28: 0x2c420283, 0x2ab29: 0x2c421083, 0x2ab2a: 0x2c427283, 0x2ab2b: 0x2c427483, + 0x2ab2c: 0x2c427883, 0x2ab2d: 0x2c427a83, 0x2ab2e: 0x2c427e83, 0x2ab2f: 0x2c632e83, + 0x2ab30: 0x2c633283, 0x2ab31: 0x2c633483, 0x2ab32: 0x2c633c83, 0x2ab33: 0x2c633e83, + 0x2ab34: 0x2c634083, 0x2ab35: 0x2c634e83, 0x2ab36: 0x2c635c83, 0x2ab37: 0x2c636283, + 0x2ab38: 0x2c637e83, 0x2ab39: 0x2c638283, 0x2ab3a: 0x2c8a8e83, 0x2ab3b: 0x2c8aae83, + 0x2ab3c: 0x2c8ab083, 0x2ab3d: 0x2c8ab283, 0x2ab3e: 0x2c8ab483, 0x2ab3f: 0x2c8aba83, + // Block 0xaad, offset 0x2ab40 + 0x2ab40: 0x2c8abc83, 0x2ab41: 0x2c8abe83, 0x2ab42: 0x2cb74483, 0x2ab43: 0x2cb75283, + 0x2ab44: 0x2cb78283, 0x2ab45: 0x2cb78683, 0x2ab46: 0x2cb78a83, 0x2ab47: 0x2cb79483, + 0x2ab48: 0x2ce8b483, 0x2ab49: 0x2ce8b883, 0x2ab4a: 0x2ce8ba83, 0x2ab4b: 0x2ce8be83, + 0x2ab4c: 0x2d187483, 0x2ab4d: 0x2d187883, 0x2ab4e: 0x2d187a83, 0x2ab4f: 0x2d188083, + 0x2ab50: 0x2d478083, 0x2ab51: 0x2d478283, 0x2ab52: 0x2d75b683, 0x2ab53: 0x2d9f9c83, + 0x2ab54: 0x2d9f9e83, 0x2ab55: 0x2dc24283, + 0x2ab70: 0x40273a20, 0x2ab71: 0x40273c20, 0x2ab72: 0x40273e20, 0x2ab73: 0x40274020, + 0x2ab74: 0x40274220, 0x2ab75: 0x40274420, 0x2ab76: 0x40274620, 0x2ab77: 0x40274820, + 0x2ab78: 0x40274a20, 0x2ab79: 0x40274c20, 0x2ab7a: 0x40274e20, 0x2ab7b: 0x40275020, + // Block 0xaae, offset 0x2ab80 + 0x2ab80: 0x00021283, 0x2ab81: 0x40025c20, 0x2ab82: 0x40030420, 0x2ab83: 0x40051220, + 0x2ab84: 0x40279a20, 0x2ab85: 0x6c021420, 0x2ab86: 0x6c002820, 0x2ab87: 0x6c002a20, + 0x2ab88: 0x40049c20, 0x2ab89: 0x40049e20, 0x2ab8a: 0x4004a020, 0x2ab8b: 0x4004a220, + 0x2ab8c: 0x4004a420, 0x2ab8d: 0x4004a620, 0x2ab8e: 0x4004a820, 0x2ab8f: 0x4004aa20, + 0x2ab90: 0x4004ac20, 0x2ab91: 0x4004ae20, 0x2ab92: 0x40279c20, 0x2ab93: 0x40279e20, + 0x2ab94: 0x4004b020, 0x2ab95: 0x4004b220, 0x2ab96: 0x4004b420, 0x2ab97: 0x4004b620, + 0x2ab98: 0x4004b820, 0x2ab99: 0x4004ba20, 0x2ab9a: 0x4004bc20, 0x2ab9b: 0x4004be20, + 0x2ab9c: 0x40023820, 0x2ab9d: 0x4003ea20, 0x2ab9e: 0x4003ec20, 0x2ab9f: 0x4003ee20, + 0x2aba0: 0x4027a020, 0x2aba1: 0x6c002c20, 0x2aba2: 0x6c00d220, 0x2aba3: 0x6c021620, + 0x2aba4: 0x6c00d420, 0x2aba5: 0x6c002e20, 0x2aba6: 0x6c00d620, 0x2aba7: 0x6c021820, + 0x2aba8: 0x6c053820, 0x2aba9: 0x6c053a20, 0x2abaa: 0xada12202, 0x2abab: 0xae412302, + 0x2abac: 0xae812402, 0x2abad: 0xade12502, 0x2abae: 0xae012602, 0x2abaf: 0xae012702, + 0x2abb0: 0x40023a20, 0x2abb1: 0x4027ce20, 0x2abb2: 0xe0000152, 0x2abb3: 0x4027d020, + 0x2abb4: 0xe0000155, 0x2abb5: 0x4027d220, 0x2abb6: 0x00279c84, 0x2abb7: 0x4027a220, + 0x2abb8: 0x2c00b684, 0x2abb9: 0x2c00e683, 0x2abba: 0x2c036883, 0x2abbb: 0x6c003020, + 0x2abbc: 0xe000231a, 0x2abbd: 0x40051420, 0x2abbe: 0x4027a420, 0x2abbf: 0x4027a620, + // Block 0xaaf, offset 0x2abc0 + 0x2abc0: 0x00633a84, 0x2abc1: 0x00634484, 0x2abc2: 0x0064f684, 0x2abc3: 0x0064f884, + 0x2abc4: 0x00635a84, 0x2abc5: 0x00635c84, 0x2abc6: 0x00635e84, 0x2abc7: 0x0063ee84, + 0x2abc8: 0x0063f084, 0x2abc9: 0x0063f684, 0x2abca: 0x00640884, 0x2abcb: 0x00640a84, + 0x2abcc: 0x00640e84, 0x2abcd: 0x00642284, 0x2abce: 0x00642884, + 0x2abd0: 0x4027a820, 0x2abd1: 0x4027aa20, 0x2abd2: 0x2c000285, 0x2abd3: 0x2c007485, + 0x2abd4: 0x2c00dc85, 0x2abd5: 0x2c079084, 0x2abd6: 0x2c00de84, 0x2abd7: 0x2c023685, + 0x2abd8: 0x2c00e084, 0x2abd9: 0x2c0a0e83, 0x2abda: 0x2c001083, 0x2abdb: 0x2c054883, + 0x2abdc: 0x2c003283, 0x2abdd: 0x2c03de84, 0x2abde: 0x2c0ed083, 0x2abdf: 0x2c007e83, + 0x2abe0: 0xe000237a, 0x2abe1: 0xe0002383, 0x2abe2: 0xe0002380, 0x2abe3: 0xe000237d, + 0x2abe4: 0x40661c20, 0x2abe5: 0xe000238c, 0x2abe6: 0x40661620, 0x2abe7: 0xe0002389, + 0x2abe8: 0xe000239e, 0x2abe9: 0xe0002386, 0x2abea: 0xe0002395, 0x2abeb: 0xe000239b, + 0x2abec: 0x40663420, 0x2abed: 0x4065f220, 0x2abee: 0xe000238f, 0x2abef: 0xe0002392, + 0x2abf0: 0x40663020, 0x2abf1: 0x40663220, 0x2abf2: 0x40662c20, 0x2abf3: 0xe0002398, + 0x2abf4: 0x0065dc99, 0x2abf5: 0x0065e699, 0x2abf6: 0x0065ee99, 0x2abf7: 0x0065f499, + 0x2abf8: 0x40660c20, 0x2abf9: 0x40660e20, 0x2abfa: 0x40661020, + // Block 0xab0, offset 0x2ac00 + 0x2ac00: 0xf0000404, 0x2ac01: 0xf0000404, 0x2ac02: 0xf0000404, 0x2ac03: 0xf0000404, + 0x2ac04: 0xf0000404, 0x2ac05: 0xf0000404, 0x2ac06: 0xf0000404, 0x2ac07: 0xf0000404, + 0x2ac08: 0xf0000404, 0x2ac09: 0xf0000404, 0x2ac0a: 0xf0000404, 0x2ac0b: 0xf0000404, + 0x2ac0c: 0xf0000404, 0x2ac0d: 0xf0000404, 0x2ac0e: 0xe000004c, 0x2ac0f: 0xe0000051, + 0x2ac10: 0xe0000056, 0x2ac11: 0xe000005b, 0x2ac12: 0xe0000060, 0x2ac13: 0xe0000065, + 0x2ac14: 0xe000006a, 0x2ac15: 0xe000006f, 0x2ac16: 0xe0000083, 0x2ac17: 0xe000008d, + 0x2ac18: 0xe0000092, 0x2ac19: 0xe0000097, 0x2ac1a: 0xe000009c, 0x2ac1b: 0xe00000a1, + 0x2ac1c: 0xe0000088, 0x2ac1d: 0xe0000074, 0x2ac1e: 0xe000007c, + 0x2ac20: 0xe000b5b7, 0x2ac21: 0xe000b5c3, 0x2ac22: 0xe000b5cf, 0x2ac23: 0xe000b5f7, + 0x2ac24: 0xe000b5d7, 0x2ac25: 0xe000b5db, 0x2ac26: 0xe000b5bb, 0x2ac27: 0xe000b5c7, + 0x2ac28: 0xe000b5bf, 0x2ac29: 0xe000b5cb, 0x2ac2a: 0xe000b5e3, 0x2ac2b: 0xe000b5ef, + 0x2ac2c: 0xe000b5eb, 0x2ac2d: 0xe000b5e7, 0x2ac2e: 0xe000b627, 0x2ac2f: 0xe000b5d3, + 0x2ac30: 0xe000b5df, 0x2ac31: 0xe000b62b, 0x2ac32: 0xe000b607, 0x2ac33: 0xe000b623, + 0x2ac34: 0xe000b603, 0x2ac35: 0xe000b62f, 0x2ac36: 0xe000b637, 0x2ac37: 0xe000b633, + 0x2ac38: 0xe000b613, 0x2ac39: 0xe000b5f3, 0x2ac3a: 0xe000b61b, 0x2ac3b: 0xe000b61f, + 0x2ac3c: 0xe000b643, 0x2ac3d: 0xe000b5fb, 0x2ac3e: 0xe000b63f, 0x2ac3f: 0xe000b617, + // Block 0xab1, offset 0x2ac40 + 0x2ac40: 0xe000b63b, 0x2ac41: 0xe000b5ff, 0x2ac42: 0xe000b60b, 0x2ac43: 0xe000b60f, + 0x2ac44: 0x2c8e8e83, 0x2ac45: 0x2c08be83, 0x2ac46: 0x2c048483, 0x2ac47: 0x2d326883, + 0x2ac48: 0xe00002e3, 0x2ac49: 0xe00003d8, 0x2ac4a: 0xe00004b3, 0x2ac4b: 0xe000057d, + 0x2ac4c: 0xe0000648, 0x2ac4d: 0xe00006f0, 0x2ac4e: 0xe000079c, 0x2ac4f: 0xe0000841, + 0x2ac50: 0xe0000ec0, 0x2ac51: 0xf0000606, 0x2ac52: 0xf0000606, 0x2ac53: 0xf0000606, + 0x2ac54: 0xf0000606, 0x2ac55: 0xf0000606, 0x2ac56: 0xf0000606, 0x2ac57: 0xf0000606, + 0x2ac58: 0xf0000606, 0x2ac59: 0xf0000606, 0x2ac5a: 0xf0000606, 0x2ac5b: 0xf0000606, + 0x2ac5c: 0xf0000606, 0x2ac5d: 0xf0000606, 0x2ac5e: 0xf0000606, 0x2ac5f: 0xf0000606, + 0x2ac60: 0x0062ac86, 0x2ac61: 0x0062b086, 0x2ac62: 0x0062b286, 0x2ac63: 0x0062b686, + 0x2ac64: 0x0062b886, 0x2ac65: 0x0062ba86, 0x2ac66: 0x0062be86, 0x2ac67: 0x0062c286, + 0x2ac68: 0x0062c486, 0x2ac69: 0x0062c886, 0x2ac6a: 0x0062ca86, 0x2ac6b: 0x0062cc86, + 0x2ac6c: 0x0062ce86, 0x2ac6d: 0x0062d086, 0x2ac6e: 0xf0000606, 0x2ac6f: 0xf0000606, + 0x2ac70: 0xf0000606, 0x2ac71: 0xf0000606, 0x2ac72: 0xf0000606, 0x2ac73: 0xf0000606, + 0x2ac74: 0xf0000606, 0x2ac75: 0xf0000606, 0x2ac76: 0xf0000606, 0x2ac77: 0xf0000606, + 0x2ac78: 0xf0000606, 0x2ac79: 0xf0000606, 0x2ac7a: 0xf0000606, 0x2ac7b: 0xf0000606, + 0x2ac7c: 0xe0002127, 0x2ac7d: 0xe0002122, 0x2ac7e: 0xf0000606, 0x2ac7f: 0x4027ac20, + // Block 0xab2, offset 0x2ac80 + 0x2ac80: 0x2c000284, 0x2ac81: 0x2c007484, 0x2ac82: 0x2c00dc84, 0x2ac83: 0x2c079083, + 0x2ac84: 0x2c028883, 0x2ac85: 0x2c02d883, 0x2ac86: 0x2c003683, 0x2ac87: 0x2c008883, + 0x2ac88: 0x2c006283, 0x2ac89: 0x2c00b683, 0x2ac8a: 0x2c049c84, 0x2ac8b: 0x2c04d083, + 0x2ac8c: 0x2c04c683, 0x2ac8d: 0x2c049e83, 0x2ac8e: 0x2c41dc83, 0x2ac8f: 0x2c018483, + 0x2ac90: 0x2c049683, 0x2ac91: 0x2c741683, 0x2ac92: 0x2c127484, 0x2ac93: 0x2c3cee83, + 0x2ac94: 0x2c0e3e83, 0x2ac95: 0x2c791683, 0x2ac96: 0x2c86f083, 0x2ac97: 0x2c7de083, + 0x2ac98: 0x2c185283, 0x2ac99: 0x2c7e3883, 0x2ac9a: 0x2c24b683, 0x2ac9b: 0x2c019483, + 0x2ac9c: 0x2d6c7483, 0x2ac9d: 0x2d9fc483, 0x2ac9e: 0x2c0db883, 0x2ac9f: 0x2c38fa83, + 0x2aca0: 0x2ce74883, 0x2aca1: 0x2c0bc083, 0x2aca2: 0x2c063e83, 0x2aca3: 0x2c097683, + 0x2aca4: 0x2c00de83, 0x2aca5: 0x2c023684, 0x2aca6: 0x2c00e083, 0x2aca7: 0x2c089284, + 0x2aca8: 0x2c075484, 0x2aca9: 0x2c18a683, 0x2acaa: 0x2c300483, 0x2acab: 0x2c2fd883, + 0x2acac: 0x2d2efa83, 0x2acad: 0x2c0ba083, 0x2acae: 0x2d0f3883, 0x2acaf: 0x2c2bb283, + 0x2acb0: 0x2c2e8e83, 0x2acb1: 0xf0000606, 0x2acb2: 0xf0000606, 0x2acb3: 0xf0000606, + 0x2acb4: 0xf0000606, 0x2acb5: 0xf0000606, 0x2acb6: 0xf0000606, 0x2acb7: 0xf0000606, + 0x2acb8: 0xf0000606, 0x2acb9: 0xf0000606, 0x2acba: 0xf0000606, 0x2acbb: 0xf0000606, + 0x2acbc: 0xf0000606, 0x2acbd: 0xf0000606, 0x2acbe: 0xf0000606, 0x2acbf: 0xf0000606, + // Block 0xab3, offset 0x2acc0 + 0x2acc0: 0xf0000203, 0x2acc1: 0xf0000203, 0x2acc2: 0xf0000203, 0x2acc3: 0xf0000203, + 0x2acc4: 0xf0000203, 0x2acc5: 0xf0000203, 0x2acc6: 0xf0000203, 0x2acc7: 0xf0000203, + 0x2acc8: 0xf0000203, 0x2acc9: 0xe000b66f, 0x2acca: 0xe000b67b, 0x2accb: 0xe000b687, + 0x2accc: 0xf0001c1d, 0x2accd: 0xe0000b85, 0x2acce: 0xf0001d1c, 0x2accf: 0xe0000d14, + 0x2acd0: 0x00657693, 0x2acd1: 0x00657893, 0x2acd2: 0x00657a93, 0x2acd3: 0x00657e93, + 0x2acd4: 0x00658093, 0x2acd5: 0x00658293, 0x2acd6: 0x00658493, 0x2acd7: 0x00658693, + 0x2acd8: 0x00658893, 0x2acd9: 0x00658a93, 0x2acda: 0x00658c93, 0x2acdb: 0x00658e93, + 0x2acdc: 0x00659093, 0x2acdd: 0x00659293, 0x2acde: 0x00659493, 0x2acdf: 0x00659693, + 0x2ace0: 0x00659893, 0x2ace1: 0x00659a93, 0x2ace2: 0x00659c93, 0x2ace3: 0x00659e93, + 0x2ace4: 0x0065a093, 0x2ace5: 0x0065a293, 0x2ace6: 0x0065a493, 0x2ace7: 0x0065a693, + 0x2ace8: 0x0065a893, 0x2ace9: 0x0065aa93, 0x2acea: 0x0065ac93, 0x2aceb: 0x0065ae93, + 0x2acec: 0x0065b093, 0x2aced: 0x0065b293, 0x2acee: 0x0065b493, 0x2acef: 0x0065b693, + 0x2acf0: 0x0065b893, 0x2acf1: 0x0065ba93, 0x2acf2: 0x0065bc93, 0x2acf3: 0x0065be93, + 0x2acf4: 0x0065c093, 0x2acf5: 0x0065c493, 0x2acf6: 0x0065c693, 0x2acf7: 0x0065c893, + 0x2acf8: 0x0065ca93, 0x2acf9: 0x0065cc93, 0x2acfa: 0x0065ce93, 0x2acfb: 0x0065d093, + 0x2acfc: 0x0065d293, 0x2acfd: 0x0065d493, 0x2acfe: 0x0065d693, + // Block 0xab4, offset 0x2ad00 + 0x2ad00: 0xe000230b, 0x2ad01: 0xe00022f8, 0x2ad02: 0xe00022fc, 0x2ad03: 0xe0002311, + 0x2ad04: 0xe0002316, 0x2ad05: 0xe000231d, 0x2ad06: 0xe0002321, 0x2ad07: 0xe0002325, + 0x2ad08: 0xe000232b, 0x2ad09: 0xf0001c1c, 0x2ad0a: 0xe0002330, 0x2ad0b: 0xe000233c, + 0x2ad0c: 0xe0002340, 0x2ad0d: 0xe0002337, 0x2ad0e: 0xe0002346, 0x2ad0f: 0xe000234b, + 0x2ad10: 0xe000234f, 0x2ad11: 0xe0002353, 0x2ad12: 0xf0001c1c, 0x2ad13: 0xe000235e, + 0x2ad14: 0xe0002358, 0x2ad15: 0xf0001c1c, 0x2ad16: 0xe0002363, 0x2ad17: 0xe000236d, + 0x2ad18: 0xf0000203, 0x2ad19: 0xf0000203, 0x2ad1a: 0xf0000203, 0x2ad1b: 0xf0000203, + 0x2ad1c: 0xf0000203, 0x2ad1d: 0xf0000203, 0x2ad1e: 0xf0000203, 0x2ad1f: 0xf0000203, + 0x2ad20: 0xf0000203, 0x2ad21: 0xf0000203, 0x2ad22: 0xe000b673, 0x2ad23: 0xe000b67f, + 0x2ad24: 0xe000b68b, 0x2ad25: 0xe000b693, 0x2ad26: 0xe000b69b, 0x2ad27: 0xe000b6a3, + 0x2ad28: 0xe000b6ab, 0x2ad29: 0xe000b6b3, 0x2ad2a: 0xe000b6bb, 0x2ad2b: 0xe000b6c3, + 0x2ad2c: 0xe000b6cb, 0x2ad2d: 0xe000b6d3, 0x2ad2e: 0xe000b6db, 0x2ad2f: 0xe000b6e3, + 0x2ad30: 0xe000b6eb, 0x2ad31: 0xe0000c1e, 0x2ad32: 0xf0001c1c, 0x2ad33: 0xf0001d1d, + 0x2ad34: 0xe0000a31, 0x2ad35: 0xf0001d1c, 0x2ad36: 0xf0001c1c, 0x2ad37: 0xf0001c1c, + 0x2ad38: 0xe0000ac2, 0x2ad39: 0xe0000ac6, 0x2ad3a: 0xf0001d1d, 0x2ad3b: 0xf0000203, + 0x2ad3c: 0xf0000203, 0x2ad3d: 0xf0000203, 0x2ad3e: 0xf0000203, 0x2ad3f: 0xe000b70b, + // Block 0xab5, offset 0x2ad40 + 0x2ad40: 0xf0001d1c, 0x2ad41: 0xf0001d1d, 0x2ad42: 0xe00009b7, 0x2ad43: 0xf0001c1d, + 0x2ad44: 0xf0001c1c, 0x2ad45: 0xf0001c1c, 0x2ad46: 0xe0000a66, 0x2ad47: 0xe0000a7a, + 0x2ad48: 0xf0001d1c, 0x2ad49: 0xf0001c1d, 0x2ad4a: 0xf0001c1c, 0x2ad4b: 0xf0001d1d, + 0x2ad4c: 0xf0001c1c, 0x2ad4d: 0xf0001d1d, 0x2ad4e: 0xf0001d1d, 0x2ad4f: 0xf0001c1c, + 0x2ad50: 0xf0001c1c, 0x2ad51: 0xf0001c1c, 0x2ad52: 0xe0000d0d, 0x2ad53: 0xf0001c1c, + 0x2ad54: 0xf0001c1c, 0x2ad55: 0xe0000d3a, 0x2ad56: 0xe0000d46, 0x2ad57: 0xf0001d1d, + 0x2ad58: 0xe0000eb0, 0x2ad59: 0xe0000eb8, 0x2ad5a: 0xf0001d1d, 0x2ad5b: 0xf0001c1c, + 0x2ad5c: 0xf0001c1d, 0x2ad5d: 0xf0001c1d, 0x2ad5e: 0xe00010b2, 0x2ad5f: 0xe00009c8, + 0x2ad60: 0xf0000203, 0x2ad61: 0xf0000203, 0x2ad62: 0xf0000203, 0x2ad63: 0xf0000203, + 0x2ad64: 0xf0000203, 0x2ad65: 0xf0000203, 0x2ad66: 0xf0000203, 0x2ad67: 0xf0000203, + 0x2ad68: 0xf0000203, 0x2ad69: 0xe000b66b, 0x2ad6a: 0xe000b677, 0x2ad6b: 0xe000b683, + 0x2ad6c: 0xe000b68f, 0x2ad6d: 0xe000b697, 0x2ad6e: 0xe000b69f, 0x2ad6f: 0xe000b6a7, + 0x2ad70: 0xe000b6af, 0x2ad71: 0xe000b6b7, 0x2ad72: 0xe000b6bf, 0x2ad73: 0xe000b6c7, + 0x2ad74: 0xe000b6cf, 0x2ad75: 0xe000b6d7, 0x2ad76: 0xe000b6df, 0x2ad77: 0xe000b6e7, + 0x2ad78: 0xe000b6ef, 0x2ad79: 0xe000b6f3, 0x2ad7a: 0xe000b6f7, 0x2ad7b: 0xe000b6fb, + 0x2ad7c: 0xe000b6ff, 0x2ad7d: 0xe000b703, 0x2ad7e: 0xe000b707, 0x2ad7f: 0xe0000bdf, + // Block 0xab6, offset 0x2ad80 + 0x2ad80: 0x6c053e20, 0x2ad81: 0x6c0acc20, 0x2ad82: 0x6c0ace20, 0x2ad83: 0x6c00f620, + 0x2ad84: 0x6c00f820, 0x2ad85: 0x6c004e20, 0x2ad86: 0x6c0aee20, 0x2ad87: 0x6c011a20, + 0x2ad88: 0x6c011c20, 0x2ad89: 0x6c011e20, 0x2ad8a: 0x6c025820, 0x2ad8b: 0x6c025a20, + 0x2ad8c: 0x6c059820, 0x2ad8d: 0x6c059a20, 0x2ad8e: 0x6c059c20, 0x2ad8f: 0x6c059e20, + 0x2ad90: 0x6c0b0e20, 0x2ad91: 0x6c0b1020, 0x2ad92: 0x6c0b1220, 0x2ad93: 0x6c0b1420, + 0x2ad94: 0x6c0b1620, 0x2ad95: 0x6c0b1820, 0x2ad96: 0x6c160a20, 0x2ad97: 0x6c160c20, + 0x2ad98: 0x6c160e20, 0x2ad99: 0x6c28d820, 0x2ad9a: 0x6c28da20, 0x2ad9b: 0x6c28dc20, + 0x2ad9c: 0x6c430a20, 0x2ad9d: 0x6c430c20, 0x2ad9e: 0x6c430e20, 0x2ad9f: 0x6c431020, + 0x2ada0: 0x6c431220, 0x2ada1: 0x6c8b0620, 0x2ada2: 0x6c8b0820, 0x2ada3: 0x6c8b0a20, + 0x2ada4: 0x6cb7b020, 0x2ada5: 0x6d75d620, 0x2ada6: 0x6de00620, 0x2ada7: 0x6c027820, + 0x2ada8: 0x6c28f220, 0x2ada9: 0x6c28fa20, 0x2adaa: 0x6c0b5020, 0x2adab: 0x6c0b5220, + 0x2adac: 0x6c163420, 0x2adad: 0x6c290c20, 0x2adae: 0x6ce8e420, 0x2adaf: 0x6d9fa820, + 0x2adb0: 0x6c05b820, 0x2adb1: 0x6c05ba20, 0x2adb2: 0x6c05bc20, 0x2adb3: 0x6c05be20, + 0x2adb4: 0x6c05c020, 0x2adb5: 0x6c05c220, 0x2adb6: 0x6c05c420, 0x2adb7: 0x6c05c620, + 0x2adb8: 0x6c0b6820, 0x2adb9: 0x6c0b6a20, 0x2adba: 0x6c0b6c20, 0x2adbb: 0x6c0b6e20, + 0x2adbc: 0x6c0b7020, 0x2adbd: 0x6c0b7220, 0x2adbe: 0x6c0b7420, 0x2adbf: 0x6c0b7620, + // Block 0xab7, offset 0x2adc0 + 0x2adc0: 0x6c0b7820, 0x2adc1: 0x6c164620, 0x2adc2: 0x6c164820, 0x2adc3: 0x6c164a20, + 0x2adc4: 0x6c164c20, 0x2adc5: 0x6c164e20, 0x2adc6: 0x6c165020, 0x2adc7: 0x6c165220, + 0x2adc8: 0x6c165420, 0x2adc9: 0x6c292220, 0x2adca: 0x6c292420, 0x2adcb: 0x6c292620, + 0x2adcc: 0x6c292820, 0x2adcd: 0x6c292a20, 0x2adce: 0x6c292c20, 0x2adcf: 0x6c292e20, + 0x2add0: 0x6c293020, 0x2add1: 0x6c293220, 0x2add2: 0x6c293420, 0x2add3: 0x6c293620, + 0x2add4: 0x6c293820, 0x2add5: 0x6c293a20, 0x2add6: 0x6c293c20, 0x2add7: 0x6c434620, + 0x2add8: 0x6c434820, 0x2add9: 0x6c434a20, 0x2adda: 0x6c434c20, 0x2addb: 0x6c434e20, + 0x2addc: 0x6c435020, 0x2addd: 0x6c435220, 0x2adde: 0x6c435420, 0x2addf: 0x6c435620, + 0x2ade0: 0x6c435820, 0x2ade1: 0x6c435a20, 0x2ade2: 0x6c435c20, 0x2ade3: 0x6c641a20, + 0x2ade4: 0x6c8b3e20, 0x2ade5: 0x6c641c20, 0x2ade6: 0x6c641e20, 0x2ade7: 0x6c642020, + 0x2ade8: 0x6c642220, 0x2ade9: 0x6c642420, 0x2adea: 0x6c642620, 0x2adeb: 0x6c642820, + 0x2adec: 0x6c642a20, 0x2aded: 0x6c642c20, 0x2adee: 0x6c8b4020, 0x2adef: 0x6c8b4220, + 0x2adf0: 0x6c8b4420, 0x2adf1: 0x6c8b4620, 0x2adf2: 0x6c8b4820, 0x2adf3: 0x6cb7da20, + 0x2adf4: 0x6cb7dc20, 0x2adf5: 0x6cb7de20, 0x2adf6: 0x6cb7e020, 0x2adf7: 0x6cb7e220, + 0x2adf8: 0x6cb7e420, 0x2adf9: 0x6cb7e620, 0x2adfa: 0x6cb7e820, 0x2adfb: 0x6ce8fe20, + 0x2adfc: 0x6ce90020, 0x2adfd: 0x6ce90220, 0x2adfe: 0x6ce90420, 0x2adff: 0x6ce90620, + // Block 0xab8, offset 0x2ae00 + 0x2ae00: 0x6ce90820, 0x2ae01: 0x6ce90a20, 0x2ae02: 0x6d18ae20, 0x2ae03: 0x6d18b020, + 0x2ae04: 0x6d18b220, 0x2ae05: 0x6d18b420, 0x2ae06: 0x6d18b620, 0x2ae07: 0x6d18b820, + 0x2ae08: 0x6d18ba20, 0x2ae09: 0x6d18bc20, 0x2ae0a: 0x6d18be20, 0x2ae0b: 0x6d18c020, + 0x2ae0c: 0x6d18c220, 0x2ae0d: 0x6d18c420, 0x2ae0e: 0x6d18c620, 0x2ae0f: 0x6d18c820, + 0x2ae10: 0x6d18ca20, 0x2ae11: 0x6d47b220, 0x2ae12: 0x6d47b420, 0x2ae13: 0x6d47b620, + 0x2ae14: 0x6d47b820, 0x2ae15: 0x6d47ba20, 0x2ae16: 0x6d47bc20, 0x2ae17: 0x6d47be20, + 0x2ae18: 0x6d47c020, 0x2ae19: 0x6d75f420, 0x2ae1a: 0x6d75f620, 0x2ae1b: 0x6d75f820, + 0x2ae1c: 0x6d75fa20, 0x2ae1d: 0x6d9faa20, 0x2ae1e: 0x6d9fac20, 0x2ae1f: 0x6dc24a20, + 0x2ae20: 0x6dc24c20, 0x2ae21: 0x6de00e20, 0x2ae22: 0x6de01020, 0x2ae23: 0x6de01220, + 0x2ae24: 0x6df86e20, 0x2ae25: 0x6df87020, 0x2ae26: 0x6df87220, 0x2ae27: 0x6e0c3e20, + 0x2ae28: 0x6e0c4020, 0x2ae29: 0x6e284a20, 0x2ae2a: 0x6e3ce220, 0x2ae2b: 0x6c0c4420, + 0x2ae2c: 0x6c2a2c20, 0x2ae2d: 0x6c657020, 0x2ae2e: 0x6c8c6620, 0x2ae2f: 0x6dc28c20, + 0x2ae30: 0x6c061620, 0x2ae31: 0x6c061820, 0x2ae32: 0x6c0c5820, 0x2ae33: 0x6c174e20, + 0x2ae34: 0x6c175020, 0x2ae35: 0x6c175c20, 0x2ae36: 0x6c175e20, 0x2ae37: 0x6c176020, + 0x2ae38: 0x6c447420, 0x2ae39: 0x6df89620, 0x2ae3a: 0x6c2a5c20, 0x2ae3b: 0x6c8c8420, + 0x2ae3c: 0x6c8c8620, 0x2ae3d: 0x6cb8f220, 0x2ae3e: 0x6cea0820, 0x2ae3f: 0x6e1c1c20, + // Block 0xab9, offset 0x2ae40 + 0x2ae40: 0x6c02fa20, 0x2ae41: 0x6c02fc20, 0x2ae42: 0x6c449020, 0x2ae43: 0x6cb8fc20, + 0x2ae44: 0x6d487620, 0x2ae45: 0x6c030620, 0x2ae46: 0x6c0c9820, 0x2ae47: 0x6c0c9a20, + 0x2ae48: 0x6c178e20, 0x2ae49: 0x6c2a7420, 0x2ae4a: 0x6c2a7620, 0x2ae4b: 0x6c2a7820, + 0x2ae4c: 0x6c2a7a20, 0x2ae4d: 0x6c2a7c20, 0x2ae4e: 0x6c44a020, 0x2ae4f: 0x6c44a220, + 0x2ae50: 0x6c65c220, 0x2ae51: 0x6c65c420, 0x2ae52: 0x6c65c620, 0x2ae53: 0x6c8c9620, + 0x2ae54: 0x6cb90c20, 0x2ae55: 0x6cb90e20, 0x2ae56: 0x6cea1220, 0x2ae57: 0x6d19ea20, + 0x2ae58: 0x6c8cbe20, 0x2ae59: 0x6c0cd220, 0x2ae5a: 0x6c067c20, 0x2ae5b: 0x6c067e20, + 0x2ae5c: 0x6c068020, 0x2ae5d: 0x6c0ce620, 0x2ae5e: 0x6c0ce820, 0x2ae5f: 0x6c17da20, + 0x2ae60: 0x6c17dc20, 0x2ae61: 0x6c2abc20, 0x2ae62: 0x6c2abe20, 0x2ae63: 0x6c2ac020, + 0x2ae64: 0x6c2ac220, 0x2ae65: 0x6c2ac420, 0x2ae66: 0x6c2ac620, 0x2ae67: 0x6c44e020, + 0x2ae68: 0x6c44e220, 0x2ae69: 0x6c44e420, 0x2ae6a: 0x6c44e620, 0x2ae6b: 0x6c44e820, + 0x2ae6c: 0x6c661220, 0x2ae6d: 0x6c661420, 0x2ae6e: 0x6c661620, 0x2ae6f: 0x6c661820, + 0x2ae70: 0x6c661a20, 0x2ae71: 0x6c8cd820, 0x2ae72: 0x6c8cda20, 0x2ae73: 0x6c8cdc20, + 0x2ae74: 0x6c8cde20, 0x2ae75: 0x6c8ce020, 0x2ae76: 0x6c8ce220, 0x2ae77: 0x6cb94620, + 0x2ae78: 0x6cb94820, 0x2ae79: 0x6cb94a20, 0x2ae7a: 0x6cb94c20, 0x2ae7b: 0x6cb94e20, + 0x2ae7c: 0x6cea3c20, 0x2ae7d: 0x6cea3e20, 0x2ae7e: 0x6d1a0e20, 0x2ae7f: 0x6d1a1020, + // Block 0xaba, offset 0x2ae80 + 0x2ae80: 0x6d1a1220, 0x2ae81: 0x6d1a1420, 0x2ae82: 0x6d1a1620, 0x2ae83: 0x6d1a1820, + 0x2ae84: 0x6d1a1a20, 0x2ae85: 0x6d1a1c20, 0x2ae86: 0x6d1a1e20, 0x2ae87: 0x6d1a2020, + 0x2ae88: 0x6d1a2220, 0x2ae89: 0x6d1a2420, 0x2ae8a: 0x6d489620, 0x2ae8b: 0x6d76a420, + 0x2ae8c: 0x6d76a620, 0x2ae8d: 0x6d76a820, 0x2ae8e: 0x6da03020, 0x2ae8f: 0x6da03220, + 0x2ae90: 0x6dc2b620, 0x2ae91: 0x6de05620, 0x2ae92: 0x6df8a620, 0x2ae93: 0x6c06a020, + 0x2ae94: 0x6c0d3a20, 0x2ae95: 0x6c0d3c20, 0x2ae96: 0x6c0d3e20, 0x2ae97: 0x6c183820, + 0x2ae98: 0x6c183a20, 0x2ae99: 0x6c2b4c20, 0x2ae9a: 0x6c2b4e20, 0x2ae9b: 0x6c2b5020, + 0x2ae9c: 0x6c454e20, 0x2ae9d: 0x6c66a620, 0x2ae9e: 0x6c66a820, 0x2ae9f: 0x6c66aa20, + 0x2aea0: 0x6c8d4220, 0x2aea1: 0x6cb9aa20, 0x2aea2: 0x6d1a7620, 0x2aea3: 0x6da05420, + 0x2aea4: 0x6da05620, 0x2aea5: 0x6da05820, 0x2aea6: 0x6da05a20, 0x2aea7: 0x6dc2c420, + 0x2aea8: 0x6c8d6a20, 0x2aea9: 0x6cb9d420, 0x2aeaa: 0x6ceac220, 0x2aeab: 0x6c035820, + 0x2aeac: 0x6c2b9a20, 0x2aead: 0x6c8d8020, 0x2aeae: 0x6e123e20, 0x2aeaf: 0x6c188c20, + 0x2aeb0: 0x6c188e20, 0x2aeb1: 0x6c8d8620, 0x2aeb2: 0x6cead220, 0x2aeb3: 0x6cead420, + 0x2aeb4: 0x6cead620, 0x2aeb5: 0x6d1aba20, 0x2aeb6: 0x6e3cf020, 0x2aeb7: 0x6c18a420, + 0x2aeb8: 0x6cb9f020, 0x2aeb9: 0x6c036620, 0x2aeba: 0x6c0d8020, 0x2aebb: 0x6c0d8220, + 0x2aebc: 0x6ceae020, 0x2aebd: 0x6c2bd420, 0x2aebe: 0x6c016e20, 0x2aebf: 0x6c017020, + // Block 0xabb, offset 0x2aec0 + 0x2aec0: 0x6c18d020, 0x2aec1: 0x6c2bf220, 0x2aec2: 0x6c0dc820, 0x2aec3: 0x6c0dca20, + 0x2aec4: 0x6c0dcc20, 0x2aec5: 0x6c18dc20, 0x2aec6: 0x6c18de20, 0x2aec7: 0x6c18e020, + 0x2aec8: 0x6c2c0020, 0x2aec9: 0x6c2c0220, 0x2aeca: 0x6c45f620, 0x2aecb: 0x6c673220, + 0x2aecc: 0x6c673420, 0x2aecd: 0x6c673620, 0x2aece: 0x6cba0a20, 0x2aecf: 0x6ceb0220, + 0x2aed0: 0x6d1adc20, 0x2aed1: 0x6d1ade20, 0x2aed2: 0x6d491820, 0x2aed3: 0x6da08620, + 0x2aed4: 0x6e319620, 0x2aed5: 0x6c039020, 0x2aed6: 0x6c677020, 0x2aed7: 0x6c8de220, + 0x2aed8: 0x6c8de420, 0x2aed9: 0x6d493a20, 0x2aeda: 0x6c039c20, 0x2aedb: 0x6c039e20, + 0x2aedc: 0x6c0e0620, 0x2aedd: 0x6c190c20, 0x2aede: 0x6c2c3a20, 0x2aedf: 0x6c463e20, + 0x2aee0: 0x6cba4220, 0x2aee1: 0x6d1b2020, 0x2aee2: 0x6d3d7420, 0x2aee3: 0x6c073020, + 0x2aee4: 0x6c073220, 0x2aee5: 0x6c073420, 0x2aee6: 0x6c0e1c20, 0x2aee7: 0x6c0e1e20, + 0x2aee8: 0x6c0e2020, 0x2aee9: 0x6c192220, 0x2aeea: 0x6c192420, 0x2aeeb: 0x6c192620, + 0x2aeec: 0x6c192820, 0x2aeed: 0x6c192a20, 0x2aeee: 0x6c192c20, 0x2aeef: 0x6c192e20, + 0x2aef0: 0x6c193020, 0x2aef1: 0x6c193220, 0x2aef2: 0x6c193420, 0x2aef3: 0x6c193620, + 0x2aef4: 0x6c193820, 0x2aef5: 0x6c193a20, 0x2aef6: 0x6c193c20, 0x2aef7: 0x6c2c5620, + 0x2aef8: 0x6c2c5820, 0x2aef9: 0x6c2c5a20, 0x2aefa: 0x6c2c5c20, 0x2aefb: 0x6c2c5e20, + 0x2aefc: 0x6c2c6020, 0x2aefd: 0x6c2c6220, 0x2aefe: 0x6c2c6420, 0x2aeff: 0x6c2c6620, + // Block 0xabc, offset 0x2af00 + 0x2af00: 0x6c466820, 0x2af01: 0x6c466a20, 0x2af02: 0x6c466c20, 0x2af03: 0x6c466e20, + 0x2af04: 0x6c467020, 0x2af05: 0x6c467220, 0x2af06: 0x6c467420, 0x2af07: 0x6c467620, + 0x2af08: 0x6c467820, 0x2af09: 0x6c467a20, 0x2af0a: 0x6c467c20, 0x2af0b: 0x6c467e20, + 0x2af0c: 0x6c468020, 0x2af0d: 0x6c468220, 0x2af0e: 0x6c468420, 0x2af0f: 0x6c679a20, + 0x2af10: 0x6c679c20, 0x2af11: 0x6c679e20, 0x2af12: 0x6c67a020, 0x2af13: 0x6c67a220, + 0x2af14: 0x6c67a420, 0x2af15: 0x6c67a620, 0x2af16: 0x6c67a820, 0x2af17: 0x6c67aa20, + 0x2af18: 0x6c67ac20, 0x2af19: 0x6c67ae20, 0x2af1a: 0x6c67b020, 0x2af1b: 0x6c67b220, + 0x2af1c: 0x6c67b420, 0x2af1d: 0x6c67b620, 0x2af1e: 0x6c67b820, 0x2af1f: 0x6c8e1220, + 0x2af20: 0x6c8e1420, 0x2af21: 0x6c8e1620, 0x2af22: 0x6c8e1820, 0x2af23: 0x6c8e1a20, + 0x2af24: 0x6c8e1c20, 0x2af25: 0x6c8e1e20, 0x2af26: 0x6c8e2020, 0x2af27: 0x6c8e2220, + 0x2af28: 0x6c8e2420, 0x2af29: 0x6c8e2620, 0x2af2a: 0x6c8e2820, 0x2af2b: 0x6c8e2a20, + 0x2af2c: 0x6c8e2c20, 0x2af2d: 0x6c8e2e20, 0x2af2e: 0x6c8e3020, 0x2af2f: 0x6c8e3220, + 0x2af30: 0x6c8e3420, 0x2af31: 0x6c8e3620, 0x2af32: 0x6c8e3820, 0x2af33: 0x6c8e3a20, + 0x2af34: 0x6c8e3c20, 0x2af35: 0x6c8e3e20, 0x2af36: 0x6cba5c20, 0x2af37: 0x6cba5e20, + 0x2af38: 0x6cba6020, 0x2af39: 0x6cba6220, 0x2af3a: 0x6cba6420, 0x2af3b: 0x6cba6620, + 0x2af3c: 0x6cba6820, 0x2af3d: 0x6cba6a20, 0x2af3e: 0x6cba6c20, 0x2af3f: 0x6cba6e20, + // Block 0xabd, offset 0x2af40 + 0x2af40: 0x6cba7020, 0x2af41: 0x6cba7220, 0x2af42: 0x6cba7420, 0x2af43: 0x6cba7620, + 0x2af44: 0x6cba7820, 0x2af45: 0x6cba7a20, 0x2af46: 0x6cba7c20, 0x2af47: 0x6cba7e20, + 0x2af48: 0x6cba8020, 0x2af49: 0x6cba8220, 0x2af4a: 0x6cba8420, 0x2af4b: 0x6cba8620, + 0x2af4c: 0x6cba8820, 0x2af4d: 0x6cba8a20, 0x2af4e: 0x6cba8c20, 0x2af4f: 0x6cba8e20, + 0x2af50: 0x6cba9020, 0x2af51: 0x6cba9220, 0x2af52: 0x6ceb4e20, 0x2af53: 0x6ceb5020, + 0x2af54: 0x6ceb5220, 0x2af55: 0x6ceb5420, 0x2af56: 0x6ceb5620, 0x2af57: 0x6ceb5820, + 0x2af58: 0x6ceb5a20, 0x2af59: 0x6ceb5c20, 0x2af5a: 0x6ceb5e20, 0x2af5b: 0x6ceb6020, + 0x2af5c: 0x6ceb6220, 0x2af5d: 0x6ceb6420, 0x2af5e: 0x6ceb6620, 0x2af5f: 0x6ceb6820, + 0x2af60: 0x6ceb6a20, 0x2af61: 0x6ceb6c20, 0x2af62: 0x6d1b3420, 0x2af63: 0x6d1b3620, + 0x2af64: 0x6d1b3820, 0x2af65: 0x6d1b3a20, 0x2af66: 0x6d1b3c20, 0x2af67: 0x6d1b3e20, + 0x2af68: 0x6d1b4020, 0x2af69: 0x6d1b4220, 0x2af6a: 0x6d1b4420, 0x2af6b: 0x6d1b4620, + 0x2af6c: 0x6d1b4820, 0x2af6d: 0x6d1b4a20, 0x2af6e: 0x6d1b4c20, 0x2af6f: 0x6d1b4e20, + 0x2af70: 0x6d1b5020, 0x2af71: 0x6d494e20, 0x2af72: 0x6d495020, 0x2af73: 0x6d495220, + 0x2af74: 0x6d495420, 0x2af75: 0x6d495620, 0x2af76: 0x6d495820, 0x2af77: 0x6d495a20, + 0x2af78: 0x6d495c20, 0x2af79: 0x6d495e20, 0x2af7a: 0x6d496020, 0x2af7b: 0x6d770e20, + 0x2af7c: 0x6d771020, 0x2af7d: 0x6d771220, 0x2af7e: 0x6d771420, 0x2af7f: 0x6d771620, + // Block 0xabe, offset 0x2af80 + 0x2af80: 0x6d771820, 0x2af81: 0x6d771a20, 0x2af82: 0x6d771c20, 0x2af83: 0x6d771e20, + 0x2af84: 0x6d772020, 0x2af85: 0x6da09a20, 0x2af86: 0x6da09c20, 0x2af87: 0x6da09e20, + 0x2af88: 0x6da0a020, 0x2af89: 0x6dc2fa20, 0x2af8a: 0x6dc2fc20, 0x2af8b: 0x6dc2fe20, + 0x2af8c: 0x6dc30020, 0x2af8d: 0x6dc30220, 0x2af8e: 0x6dc30420, 0x2af8f: 0x6dc30620, + 0x2af90: 0x6de07e20, 0x2af91: 0x6de08020, 0x2af92: 0x6de08220, 0x2af93: 0x6df8cc20, + 0x2af94: 0x6df8ce20, 0x2af95: 0x6e0c9220, 0x2af96: 0x6e0c9420, 0x2af97: 0x6e0c9620, + 0x2af98: 0x6e1c2e20, 0x2af99: 0x6e287220, 0x2af9a: 0x6e287420, 0x2af9b: 0x6e384620, + 0x2af9c: 0x6e3cf820, 0x2af9d: 0x6c078820, 0x2af9e: 0x6c06a220, 0x2af9f: 0x6c0e9620, + 0x2afa0: 0x6c2d7e20, 0x2afa1: 0x6c2d8020, 0x2afa2: 0x6c47dc20, 0x2afa3: 0x6c694e20, + 0x2afa4: 0x6d1cf020, 0x2afa5: 0x6df92a20, 0x2afa6: 0x6c07a020, 0x2afa7: 0x6c1a9820, + 0x2afa8: 0x6c1a9a20, 0x2afa9: 0x6c1a9c20, 0x2afaa: 0x6c1a9e20, 0x2afab: 0x6c1aa020, + 0x2afac: 0x6c1aa220, 0x2afad: 0x6c1aa420, 0x2afae: 0x6c1aa620, 0x2afaf: 0x6c1aa820, + 0x2afb0: 0x6c1aaa20, 0x2afb1: 0x6c2daa20, 0x2afb2: 0x6c2dac20, 0x2afb3: 0x6c2dae20, + 0x2afb4: 0x6c2db020, 0x2afb5: 0x6c2db220, 0x2afb6: 0x6c480020, 0x2afb7: 0x6c480220, + 0x2afb8: 0x6c480420, 0x2afb9: 0x6c480620, 0x2afba: 0x6c480820, 0x2afbb: 0x6c480a20, + 0x2afbc: 0x6c480c20, 0x2afbd: 0x6c480e20, 0x2afbe: 0x6c481020, 0x2afbf: 0x6c697e20, + // Block 0xabf, offset 0x2afc0 + 0x2afc0: 0x6c698020, 0x2afc1: 0x6c698220, 0x2afc2: 0x6c698420, 0x2afc3: 0x6c698620, + 0x2afc4: 0x6c698820, 0x2afc5: 0x6c698a20, 0x2afc6: 0x6c698c20, 0x2afc7: 0x6c904620, + 0x2afc8: 0x6c904820, 0x2afc9: 0x6c904a20, 0x2afca: 0x6c904c20, 0x2afcb: 0x6c904e20, + 0x2afcc: 0x6c905020, 0x2afcd: 0x6c905220, 0x2afce: 0x6cbc6420, 0x2afcf: 0x6cbc6620, + 0x2afd0: 0x6cbc6820, 0x2afd1: 0x6cbc6a20, 0x2afd2: 0x6cbc6c20, 0x2afd3: 0x6cbc6e20, + 0x2afd4: 0x6cbc7020, 0x2afd5: 0x6cbc7220, 0x2afd6: 0x6cbc7420, 0x2afd7: 0x6cbc7620, + 0x2afd8: 0x6cbc7820, 0x2afd9: 0x6ced4a20, 0x2afda: 0x6ced4c20, 0x2afdb: 0x6ced4e20, + 0x2afdc: 0x6ced5020, 0x2afdd: 0x6ced5220, 0x2afde: 0x6ced5420, 0x2afdf: 0x6ced5620, + 0x2afe0: 0x6d1d1620, 0x2afe1: 0x6d1d1820, 0x2afe2: 0x6d1d1a20, 0x2afe3: 0x6d1d1c20, + 0x2afe4: 0x6d1d1e20, 0x2afe5: 0x6d1d2020, 0x2afe6: 0x6d1d2220, 0x2afe7: 0x6d4ac820, + 0x2afe8: 0x6d4aca20, 0x2afe9: 0x6d4acc20, 0x2afea: 0x6d4ace20, 0x2afeb: 0x6d4ad020, + 0x2afec: 0x6d4ad220, 0x2afed: 0x6d4ad420, 0x2afee: 0x6d4ad620, 0x2afef: 0x6d4ad820, + 0x2aff0: 0x6d786620, 0x2aff1: 0x6d786820, 0x2aff2: 0x6d786a20, 0x2aff3: 0x6d786c20, + 0x2aff4: 0x6d786e20, 0x2aff5: 0x6d787020, 0x2aff6: 0x6d787220, 0x2aff7: 0x6da18820, + 0x2aff8: 0x6da18a20, 0x2aff9: 0x6da18c20, 0x2affa: 0x6da18e20, 0x2affb: 0x6dc3e020, + 0x2affc: 0x6dc3e220, 0x2affd: 0x6dc3e420, 0x2affe: 0x6de10220, 0x2afff: 0x6de10420, + // Block 0xac0, offset 0x2b000 + 0x2b000: 0x6df93220, 0x2b001: 0x6e31c220, 0x2b002: 0x6e385e20, 0x2b003: 0x6cbd8620, + 0x2b004: 0x6d4ba020, 0x2b005: 0x6c48f020, 0x2b006: 0x6c48f420, 0x2b007: 0x6c48f620, + 0x2b008: 0x6c07ce20, 0x2b009: 0x6c2e8c20, 0x2b00a: 0x6cbd9820, 0x2b00b: 0x6d1e0c20, + 0x2b00c: 0x6d1e0e20, 0x2b00d: 0x6dc44620, 0x2b00e: 0x6c07dc20, 0x2b00f: 0x6c0f2c20, + 0x2b010: 0x6c0f2e20, 0x2b011: 0x6c0f3020, 0x2b012: 0x6c1b8a20, 0x2b013: 0x6c1b8c20, + 0x2b014: 0x6c2e9a20, 0x2b015: 0x6c2e9c20, 0x2b016: 0x6c2e9e20, 0x2b017: 0x6c2ea020, + 0x2b018: 0x6c2ea220, 0x2b019: 0x6c2ea420, 0x2b01a: 0x6c490220, 0x2b01b: 0x6c490420, + 0x2b01c: 0x6c919820, 0x2b01d: 0x6c919a20, 0x2b01e: 0x6c919c20, 0x2b01f: 0x6cbdb620, + 0x2b020: 0x6cee7620, 0x2b021: 0x6d791c20, 0x2b022: 0x6c07fc20, 0x2b023: 0x6c0f5620, + 0x2b024: 0x6c0f5820, 0x2b025: 0x6c0f5a20, 0x2b026: 0x6c0f5c20, 0x2b027: 0x6c0f5e20, + 0x2b028: 0x6c0f6020, 0x2b029: 0x6c1bc420, 0x2b02a: 0x6c1bc620, 0x2b02b: 0x6c1bc820, + 0x2b02c: 0x6c1bca20, 0x2b02d: 0x6c1bcc20, 0x2b02e: 0x6c1bce20, 0x2b02f: 0x6c1bd020, + 0x2b030: 0x6c2ef420, 0x2b031: 0x6c2ef620, 0x2b032: 0x6c2ef820, 0x2b033: 0x6c2efa20, + 0x2b034: 0x6c2efc20, 0x2b035: 0x6c2efe20, 0x2b036: 0x6c2f0020, 0x2b037: 0x6c2f0220, + 0x2b038: 0x6c2f0420, 0x2b039: 0x6c2f0620, 0x2b03a: 0x6c2f0820, 0x2b03b: 0x6c2f0a20, + 0x2b03c: 0x6c2f0c20, 0x2b03d: 0x6c2f0e20, 0x2b03e: 0x6c2f1020, 0x2b03f: 0x6c2f1220, + // Block 0xac1, offset 0x2b040 + 0x2b040: 0x6c2f1420, 0x2b041: 0x6c2f1620, 0x2b042: 0x6c493e20, 0x2b043: 0x6c494020, + 0x2b044: 0x6c494220, 0x2b045: 0x6c494420, 0x2b046: 0x6c494620, 0x2b047: 0x6c494820, + 0x2b048: 0x6c494a20, 0x2b049: 0x6c494c20, 0x2b04a: 0x6c494e20, 0x2b04b: 0x6c495020, + 0x2b04c: 0x6c495220, 0x2b04d: 0x6c6aea20, 0x2b04e: 0x6c6aec20, 0x2b04f: 0x6c6aee20, + 0x2b050: 0x6c6af020, 0x2b051: 0x6c6af220, 0x2b052: 0x6c6af420, 0x2b053: 0x6c6af620, + 0x2b054: 0x6c6af820, 0x2b055: 0x6c6afa20, 0x2b056: 0x6c6afc20, 0x2b057: 0x6c6afe20, + 0x2b058: 0x6c6b0020, 0x2b059: 0x6c6b0220, 0x2b05a: 0x6c6b0420, 0x2b05b: 0x6c6b0620, + 0x2b05c: 0x6c6b0820, 0x2b05d: 0x6c6b0a20, 0x2b05e: 0x6c6b0c20, 0x2b05f: 0x6c6b0e20, + 0x2b060: 0x6c1bd220, 0x2b061: 0x6c6b1020, 0x2b062: 0x6c6b1220, 0x2b063: 0x6c6b1420, + 0x2b064: 0x6c6b1620, 0x2b065: 0x6c91da20, 0x2b066: 0x6c91dc20, 0x2b067: 0x6c91de20, + 0x2b068: 0x6c91e020, 0x2b069: 0x6c91e220, 0x2b06a: 0x6c91e420, 0x2b06b: 0x6c91e620, + 0x2b06c: 0x6c91e820, 0x2b06d: 0x6c91ea20, 0x2b06e: 0x6cbdf220, 0x2b06f: 0x6cbdf420, + 0x2b070: 0x6cbdf620, 0x2b071: 0x6cbdf820, 0x2b072: 0x6cbdfa20, 0x2b073: 0x6cbdfc20, + 0x2b074: 0x6cbdfe20, 0x2b075: 0x6cbe0020, 0x2b076: 0x6cbe0220, 0x2b077: 0x6cbe0420, + 0x2b078: 0x6cbe0620, 0x2b079: 0x6cbe0820, 0x2b07a: 0x6cbe0a20, 0x2b07b: 0x6cbe0c20, + 0x2b07c: 0x6cbe0e20, 0x2b07d: 0x6cbe1020, 0x2b07e: 0x6cbe1220, 0x2b07f: 0x6cbe1420, + // Block 0xac2, offset 0x2b080 + 0x2b080: 0x6cbe1620, 0x2b081: 0x6cbe1820, 0x2b082: 0x6cbe1a20, 0x2b083: 0x6cbe1c20, + 0x2b084: 0x6cbe1e20, 0x2b085: 0x6ceea620, 0x2b086: 0x6ceea820, 0x2b087: 0x6ceeaa20, + 0x2b088: 0x6ceeac20, 0x2b089: 0x6ceeae20, 0x2b08a: 0x6ceeb020, 0x2b08b: 0x6ceeb220, + 0x2b08c: 0x6ceeb420, 0x2b08d: 0x6ceeb620, 0x2b08e: 0x6ceeb820, 0x2b08f: 0x6ceeba20, + 0x2b090: 0x6ceebc20, 0x2b091: 0x6ceebe20, 0x2b092: 0x6ceec020, 0x2b093: 0x6ceec220, + 0x2b094: 0x6ceec420, 0x2b095: 0x6d1e5220, 0x2b096: 0x6d1e5420, 0x2b097: 0x6d1e5620, + 0x2b098: 0x6d1e5820, 0x2b099: 0x6d1e5a20, 0x2b09a: 0x6d1e5c20, 0x2b09b: 0x6d1e5e20, + 0x2b09c: 0x6d1e6020, 0x2b09d: 0x6d1e6220, 0x2b09e: 0x6d1e6420, 0x2b09f: 0x6d1e6620, + 0x2b0a0: 0x6d1e6820, 0x2b0a1: 0x6d1e6a20, 0x2b0a2: 0x6d1e6c20, 0x2b0a3: 0x6d4bde20, + 0x2b0a4: 0x6d4be020, 0x2b0a5: 0x6d4be220, 0x2b0a6: 0x6d4be420, 0x2b0a7: 0x6d4be620, + 0x2b0a8: 0x6d4be820, 0x2b0a9: 0x6d793820, 0x2b0aa: 0x6d793a20, 0x2b0ab: 0x6d793c20, + 0x2b0ac: 0x6d793e20, 0x2b0ad: 0x6d794020, 0x2b0ae: 0x6da22220, 0x2b0af: 0x6da22420, + 0x2b0b0: 0x6dc45420, 0x2b0b1: 0x6dc45620, 0x2b0b2: 0x6de15a20, 0x2b0b3: 0x6de15c20, + 0x2b0b4: 0x6de15e20, 0x2b0b5: 0x6de16020, 0x2b0b6: 0x6df95c20, 0x2b0b7: 0x6df95e20, + 0x2b0b8: 0x6df96020, 0x2b0b9: 0x6e0d2820, 0x2b0ba: 0x6e1c9820, 0x2b0bb: 0x6e3d1620, + 0x2b0bc: 0x6e3d1820, 0x2b0bd: 0x6c0fa620, 0x2b0be: 0x6c1c6220, 0x2b0bf: 0x6c1c6420, + // Block 0xac3, offset 0x2b0c0 + 0x2b0c0: 0x6c2fc820, 0x2b0c1: 0x6c4a1c20, 0x2b0c2: 0x6c6bdc20, 0x2b0c3: 0x6c6bde20, + 0x2b0c4: 0x6cbf4220, 0x2b0c5: 0x6cef7820, 0x2b0c6: 0x6d4cb620, 0x2b0c7: 0x6d79e020, + 0x2b0c8: 0x6e386820, 0x2b0c9: 0x6c03f620, 0x2b0ca: 0x6c081e20, 0x2b0cb: 0x6c082020, + 0x2b0cc: 0x6c0fb820, 0x2b0cd: 0x6c0fba20, 0x2b0ce: 0x6c1c8620, 0x2b0cf: 0x6c1c8820, + 0x2b0d0: 0x6c1c8a20, 0x2b0d1: 0x6c1c8c20, 0x2b0d2: 0x6c2ffa20, 0x2b0d3: 0x6c4a4020, + 0x2b0d4: 0x6c4a4220, 0x2b0d5: 0x6c4a4420, 0x2b0d6: 0x6c4a4620, 0x2b0d7: 0x6c6bf620, + 0x2b0d8: 0x6c6bf820, 0x2b0d9: 0x6c6bfa20, 0x2b0da: 0x6c6bfc20, 0x2b0db: 0x6c932220, + 0x2b0dc: 0x6c932420, 0x2b0dd: 0x6c932620, 0x2b0de: 0x6c932820, 0x2b0df: 0x6c932a20, + 0x2b0e0: 0x6c932c20, 0x2b0e1: 0x6c932e20, 0x2b0e2: 0x6cbf6420, 0x2b0e3: 0x6cbf6620, + 0x2b0e4: 0x6cef9a20, 0x2b0e5: 0x6cef9c20, 0x2b0e6: 0x6cef9e20, 0x2b0e7: 0x6cefa020, + 0x2b0e8: 0x6cefa220, 0x2b0e9: 0x6d1f3c20, 0x2b0ea: 0x6d1f3e20, 0x2b0eb: 0x6d1f4020, + 0x2b0ec: 0x6d1f4220, 0x2b0ed: 0x6d4cc820, 0x2b0ee: 0x6d4cca20, 0x2b0ef: 0x6d4ccc20, + 0x2b0f0: 0x6dc49420, 0x2b0f1: 0x6e0d4620, 0x2b0f2: 0x6e3d1a20, 0x2b0f3: 0x6c083020, + 0x2b0f4: 0x6c1cbc20, 0x2b0f5: 0x6c304420, 0x2b0f6: 0x6c6c7220, 0x2b0f7: 0x6cbfd420, + 0x2b0f8: 0x6c6c7c20, 0x2b0f9: 0x6cbfea20, 0x2b0fa: 0x6d1fba20, 0x2b0fb: 0x6d4d3820, + 0x2b0fc: 0x6c0ffa20, 0x2b0fd: 0x6c1cd620, 0x2b0fe: 0x6c306a20, 0x2b0ff: 0x6c306c20, + // Block 0xac4, offset 0x2b100 + 0x2b100: 0x6c4aba20, 0x2b101: 0x6c4abc20, 0x2b102: 0x6c6c9420, 0x2b103: 0x6c93b820, + 0x2b104: 0x6c93ba20, 0x2b105: 0x6c93bc20, 0x2b106: 0x6c93be20, 0x2b107: 0x6cc00220, + 0x2b108: 0x6cc00420, 0x2b109: 0x6cf01220, 0x2b10a: 0x6cf01420, 0x2b10b: 0x6c085020, + 0x2b10c: 0x6c100a20, 0x2b10d: 0x6c100c20, 0x2b10e: 0x6c1cf820, 0x2b10f: 0x6c308020, + 0x2b110: 0x6c308220, 0x2b111: 0x6c308420, 0x2b112: 0x6c4acc20, 0x2b113: 0x6c4ace20, + 0x2b114: 0x6c4ad020, 0x2b115: 0x6c4ad220, 0x2b116: 0x6c4ad420, 0x2b117: 0x6c6cac20, + 0x2b118: 0x6c93cc20, 0x2b119: 0x6c93ce20, 0x2b11a: 0x6cc02020, 0x2b11b: 0x6cc02220, + 0x2b11c: 0x6d1fda20, 0x2b11d: 0x6d1fdc20, 0x2b11e: 0x6d1fde20, 0x2b11f: 0x6d4d5e20, + 0x2b120: 0x6d4d6020, 0x2b121: 0x6de1be20, 0x2b122: 0x6c040c20, 0x2b123: 0x6c1d1e20, + 0x2b124: 0x6c086420, 0x2b125: 0x6c086620, 0x2b126: 0x6c086820, 0x2b127: 0x6c086a20, + 0x2b128: 0x6c103620, 0x2b129: 0x6c103820, 0x2b12a: 0x6c103a20, 0x2b12b: 0x6c103c20, + 0x2b12c: 0x6c103e20, 0x2b12d: 0x6c104020, 0x2b12e: 0x6c104220, 0x2b12f: 0x6c104420, + 0x2b130: 0x6c1d2c20, 0x2b131: 0x6c1d2e20, 0x2b132: 0x6c1d3020, 0x2b133: 0x6c1d3220, + 0x2b134: 0x6c1d3420, 0x2b135: 0x6c1d3620, 0x2b136: 0x6c1d3820, 0x2b137: 0x6c1d2020, + 0x2b138: 0x6c1d3a20, 0x2b139: 0x6c30b820, 0x2b13a: 0x6c30ba20, 0x2b13b: 0x6c30bc20, + 0x2b13c: 0x6c30be20, 0x2b13d: 0x6c30c020, 0x2b13e: 0x6c30c220, 0x2b13f: 0x6c30c420, + // Block 0xac5, offset 0x2b140 + 0x2b140: 0x6c30c620, 0x2b141: 0x6c30c820, 0x2b142: 0x6c30ca20, 0x2b143: 0x6c30cc20, + 0x2b144: 0x6c4b2020, 0x2b145: 0x6c4b2220, 0x2b146: 0x6c4b2420, 0x2b147: 0x6c6d0020, + 0x2b148: 0x6c6d0220, 0x2b149: 0x6c6d0420, 0x2b14a: 0x6c6d0620, 0x2b14b: 0x6c6d0820, + 0x2b14c: 0x6c6d0a20, 0x2b14d: 0x6c6d0c20, 0x2b14e: 0x6c6d0e20, 0x2b14f: 0x6c6d1020, + 0x2b150: 0x6c6d1220, 0x2b151: 0x6c6d1420, 0x2b152: 0x6c6d1620, 0x2b153: 0x6c6d1820, + 0x2b154: 0x6c6d1a20, 0x2b155: 0x6c6d1c20, 0x2b156: 0x6c6d1e20, 0x2b157: 0x6c941620, + 0x2b158: 0x6c941820, 0x2b159: 0x6c941a20, 0x2b15a: 0x6c941c20, 0x2b15b: 0x6c941e20, + 0x2b15c: 0x6c942020, 0x2b15d: 0x6c942220, 0x2b15e: 0x6c942420, 0x2b15f: 0x6c942620, + 0x2b160: 0x6c942820, 0x2b161: 0x6c942a20, 0x2b162: 0x6c942c20, 0x2b163: 0x6c942e20, + 0x2b164: 0x6c943020, 0x2b165: 0x6c943220, 0x2b166: 0x6cc07020, 0x2b167: 0x6cc07220, + 0x2b168: 0x6cc07420, 0x2b169: 0x6cc07620, 0x2b16a: 0x6cc07820, 0x2b16b: 0x6cc07a20, + 0x2b16c: 0x6cc07c20, 0x2b16d: 0x6cc07e20, 0x2b16e: 0x6cc08020, 0x2b16f: 0x6cc08220, + 0x2b170: 0x6cf06820, 0x2b171: 0x6cf06a20, 0x2b172: 0x6cf06c20, 0x2b173: 0x6cf06e20, + 0x2b174: 0x6cf07020, 0x2b175: 0x6cf07220, 0x2b176: 0x6cf07420, 0x2b177: 0x6cf07620, + 0x2b178: 0x6cf07820, 0x2b179: 0x6d200020, 0x2b17a: 0x6d200220, 0x2b17b: 0x6d200420, + 0x2b17c: 0x6d200620, 0x2b17d: 0x6d200820, 0x2b17e: 0x6d200a20, 0x2b17f: 0x6d200c20, + // Block 0xac6, offset 0x2b180 + 0x2b180: 0x6d200e20, 0x2b181: 0x6d201020, 0x2b182: 0x6d201220, 0x2b183: 0x6d201420, + 0x2b184: 0x6d201620, 0x2b185: 0x6d4d9420, 0x2b186: 0x6d4d9620, 0x2b187: 0x6d4d9820, + 0x2b188: 0x6d4d9a20, 0x2b189: 0x6d4d9c20, 0x2b18a: 0x6d4d9e20, 0x2b18b: 0x6d4da020, + 0x2b18c: 0x6d4da220, 0x2b18d: 0x6d4da420, 0x2b18e: 0x6d4da620, 0x2b18f: 0x6d4da820, + 0x2b190: 0x6d4daa20, 0x2b191: 0x6d7a6020, 0x2b192: 0x6d7a6220, 0x2b193: 0x6d7a6420, + 0x2b194: 0x6d7a6620, 0x2b195: 0x6d7a6820, 0x2b196: 0x6d7a6a20, 0x2b197: 0x6d7a6c20, + 0x2b198: 0x6da2e220, 0x2b199: 0x6da2e420, 0x2b19a: 0x6da2e620, 0x2b19b: 0x6da2e820, + 0x2b19c: 0x6da2ea20, 0x2b19d: 0x6dc4d020, 0x2b19e: 0x6dc4d220, 0x2b19f: 0x6dc4d420, + 0x2b1a0: 0x6de1d020, 0x2b1a1: 0x6de1d220, 0x2b1a2: 0x6de1d420, 0x2b1a3: 0x6de1d620, + 0x2b1a4: 0x6df9b020, 0x2b1a5: 0x6e0d7020, 0x2b1a6: 0x6e0d7220, 0x2b1a7: 0x6e1cd620, + 0x2b1a8: 0x6e429020, 0x2b1a9: 0x6c109220, 0x2b1aa: 0x6c041c20, 0x2b1ab: 0x6c6de820, + 0x2b1ac: 0x6c6dea20, 0x2b1ad: 0x6cc16e20, 0x2b1ae: 0x6d4e4c20, 0x2b1af: 0x6c08a020, + 0x2b1b0: 0x6c318820, 0x2b1b1: 0x6c955820, 0x2b1b2: 0x6c08a620, 0x2b1b3: 0x6c08a820, + 0x2b1b4: 0x6c10ae20, 0x2b1b5: 0x6c10b020, 0x2b1b6: 0x6c10b220, 0x2b1b7: 0x6c1dea20, + 0x2b1b8: 0x6c1dec20, 0x2b1b9: 0x6c1dee20, 0x2b1ba: 0x6c1df020, 0x2b1bb: 0x6c1df220, + 0x2b1bc: 0x6c1df420, 0x2b1bd: 0x6c319220, 0x2b1be: 0x6c319420, 0x2b1bf: 0x6c319620, + // Block 0xac7, offset 0x2b1c0 + 0x2b1c0: 0x6c319820, 0x2b1c1: 0x6c4bf020, 0x2b1c2: 0x6c4bf220, 0x2b1c3: 0x6c4bf420, + 0x2b1c4: 0x6c4bf620, 0x2b1c5: 0x6c4bf820, 0x2b1c6: 0x6c4bfa20, 0x2b1c7: 0x6c6dfc20, + 0x2b1c8: 0x6c6dfe20, 0x2b1c9: 0x6c956420, 0x2b1ca: 0x6c956620, 0x2b1cb: 0x6c956820, + 0x2b1cc: 0x6c956a20, 0x2b1cd: 0x6c956c20, 0x2b1ce: 0x6c956e20, 0x2b1cf: 0x6cc18820, + 0x2b1d0: 0x6cc18a20, 0x2b1d1: 0x6cc18c20, 0x2b1d2: 0x6cc18e20, 0x2b1d3: 0x6cc19020, + 0x2b1d4: 0x6cc19220, 0x2b1d5: 0x6cc19420, 0x2b1d6: 0x6cc19620, 0x2b1d7: 0x6cf11a20, + 0x2b1d8: 0x6cf11c20, 0x2b1d9: 0x6cf11e20, 0x2b1da: 0x6cf12020, 0x2b1db: 0x6cf12220, + 0x2b1dc: 0x6d20c020, 0x2b1dd: 0x6d20c220, 0x2b1de: 0x6d20c420, 0x2b1df: 0x6d20c620, + 0x2b1e0: 0x6d4e5a20, 0x2b1e1: 0x6d4e5c20, 0x2b1e2: 0x6d7ae820, 0x2b1e3: 0x6d7aea20, + 0x2b1e4: 0x6d7aec20, 0x2b1e5: 0x6da35c20, 0x2b1e6: 0x6da35e20, 0x2b1e7: 0x6df9dc20, + 0x2b1e8: 0x6df9de20, 0x2b1e9: 0x6e1d0420, 0x2b1ea: 0x6e1d0620, 0x2b1eb: 0x6cc1fc20, + 0x2b1ec: 0x6cc1fe20, 0x2b1ed: 0x6d210c20, 0x2b1ee: 0x6d7b2420, 0x2b1ef: 0x6c10e420, + 0x2b1f0: 0x6c10e620, 0x2b1f1: 0x6c10e820, 0x2b1f2: 0x6c1e4220, 0x2b1f3: 0x6c1e4420, + 0x2b1f4: 0x6c31f220, 0x2b1f5: 0x6c31f420, 0x2b1f6: 0x6c31f620, 0x2b1f7: 0x6c31f820, + 0x2b1f8: 0x6c31fa20, 0x2b1f9: 0x6c31fc20, 0x2b1fa: 0x6c31fe20, 0x2b1fb: 0x6c320020, + 0x2b1fc: 0x6c4c6820, 0x2b1fd: 0x6c4c6a20, 0x2b1fe: 0x6c4c6c20, 0x2b1ff: 0x6c4c6e20, + // Block 0xac8, offset 0x2b200 + 0x2b200: 0x6c4c7020, 0x2b201: 0x6c4c7220, 0x2b202: 0x6c4c7420, 0x2b203: 0x6c6e6020, + 0x2b204: 0x6c6e6220, 0x2b205: 0x6c6e6420, 0x2b206: 0x6c6e6620, 0x2b207: 0x6c6e6820, + 0x2b208: 0x6c95d820, 0x2b209: 0x6c95da20, 0x2b20a: 0x6c95dc20, 0x2b20b: 0x6c95de20, + 0x2b20c: 0x6c95e020, 0x2b20d: 0x6cc20420, 0x2b20e: 0x6cc20620, 0x2b20f: 0x6cc20820, + 0x2b210: 0x6cc20a20, 0x2b211: 0x6cf16a20, 0x2b212: 0x6d211620, 0x2b213: 0x6d211820, + 0x2b214: 0x6d211a20, 0x2b215: 0x6d211c20, 0x2b216: 0x6d4eb620, 0x2b217: 0x6d4eb820, + 0x2b218: 0x6d4eba20, 0x2b219: 0x6d7b2620, 0x2b21a: 0x6d7b2820, 0x2b21b: 0x6d7b2a20, + 0x2b21c: 0x6d7b2c20, 0x2b21d: 0x6de23020, 0x2b21e: 0x6df9ec20, 0x2b21f: 0x6c110820, + 0x2b220: 0x6c324420, 0x2b221: 0x6d217420, 0x2b222: 0x6d4f0020, 0x2b223: 0x6d7b5c20, + 0x2b224: 0x6c1ea620, 0x2b225: 0x6c4ce020, 0x2b226: 0x6cf1b820, 0x2b227: 0x6c044820, + 0x2b228: 0x6c112020, 0x2b229: 0x6c112220, 0x2b22a: 0x6c112420, 0x2b22b: 0x6c112620, + 0x2b22c: 0x6c1eb220, 0x2b22d: 0x6c1eb420, 0x2b22e: 0x6c326020, 0x2b22f: 0x6c326220, + 0x2b230: 0x6c326420, 0x2b231: 0x6c326620, 0x2b232: 0x6c4cec20, 0x2b233: 0x6c4cee20, + 0x2b234: 0x6c4cf020, 0x2b235: 0x6c4cf220, 0x2b236: 0x6c4cf420, 0x2b237: 0x6c4cf620, + 0x2b238: 0x6c6ed820, 0x2b239: 0x6c6eda20, 0x2b23a: 0x6c966820, 0x2b23b: 0x6c966a20, + 0x2b23c: 0x6c966c20, 0x2b23d: 0x6cc27e20, 0x2b23e: 0x6cc28020, 0x2b23f: 0x6cc28220, + // Block 0xac9, offset 0x2b240 + 0x2b240: 0x6cf1c220, 0x2b241: 0x6cf1c420, 0x2b242: 0x6cf1c620, 0x2b243: 0x6d218420, + 0x2b244: 0x6d4f0820, 0x2b245: 0x6d4f0a20, 0x2b246: 0x6e0dac20, 0x2b247: 0x6c329a20, + 0x2b248: 0x6d7b7820, 0x2b249: 0x6c115620, 0x2b24a: 0x6c1ede20, 0x2b24b: 0x6c32a420, + 0x2b24c: 0x6c32a620, 0x2b24d: 0x6c32a820, 0x2b24e: 0x6c96aa20, 0x2b24f: 0x6cc2ae20, + 0x2b250: 0x6cc2b020, 0x2b251: 0x6d21b220, 0x2b252: 0x6d4f2620, 0x2b253: 0x6d7b8220, + 0x2b254: 0x6c090020, 0x2b255: 0x6c116020, 0x2b256: 0x6c1eea20, 0x2b257: 0x6c1eec20, + 0x2b258: 0x6c32b420, 0x2b259: 0x6c32b620, 0x2b25a: 0x6c4d3c20, 0x2b25b: 0x6c4d3e20, + 0x2b25c: 0x6c4d4020, 0x2b25d: 0x6c4d4220, 0x2b25e: 0x6c4d4420, 0x2b25f: 0x6c4d4620, + 0x2b260: 0x6c4d4820, 0x2b261: 0x6c4d4a20, 0x2b262: 0x6c6f1220, 0x2b263: 0x6c6f1420, + 0x2b264: 0x6c96c620, 0x2b265: 0x6c96c820, 0x2b266: 0x6c96ca20, 0x2b267: 0x6c96cc20, + 0x2b268: 0x6c96ce20, 0x2b269: 0x6c96d020, 0x2b26a: 0x6cc2c020, 0x2b26b: 0x6cc2c220, + 0x2b26c: 0x6cc2c420, 0x2b26d: 0x6cc2c620, 0x2b26e: 0x6cc2c820, 0x2b26f: 0x6cf1f620, + 0x2b270: 0x6d21bc20, 0x2b271: 0x6d21be20, 0x2b272: 0x6d21c020, 0x2b273: 0x6d4f3620, + 0x2b274: 0x6d4f3820, 0x2b275: 0x6d7b8c20, 0x2b276: 0x6d7b8e20, 0x2b277: 0x6da3c020, + 0x2b278: 0x6de27220, 0x2b279: 0x6dfa1a20, 0x2b27a: 0x6c090620, 0x2b27b: 0x6c116e20, + 0x2b27c: 0x6c117220, 0x2b27d: 0x6c1f1c20, 0x2b27e: 0x6c117420, 0x2b27f: 0x6c117620, + // Block 0xaca, offset 0x2b280 + 0x2b280: 0x6c1f1e20, 0x2b281: 0x6c32e020, 0x2b282: 0x6c32e220, 0x2b283: 0x6c1f3220, + 0x2b284: 0x6c1f3420, 0x2b285: 0x6c32e420, 0x2b286: 0x6c1f3620, 0x2b287: 0x6c1f3820, + 0x2b288: 0x6c1f3a20, 0x2b289: 0x6c1f3c20, 0x2b28a: 0x6c1f3e20, 0x2b28b: 0x6c1f4020, + 0x2b28c: 0x6c32fc20, 0x2b28d: 0x6c4d7c20, 0x2b28e: 0x6c4d7e20, 0x2b28f: 0x6c32fe20, + 0x2b290: 0x6c330020, 0x2b291: 0x6c330220, 0x2b292: 0x6c330420, 0x2b293: 0x6c330620, + 0x2b294: 0x6c330820, 0x2b295: 0x6c330a20, 0x2b296: 0x6c330c20, 0x2b297: 0x6c4d8020, + 0x2b298: 0x6c330e20, 0x2b299: 0x6c4d8220, 0x2b29a: 0x6c4da220, 0x2b29b: 0x6c4da420, + 0x2b29c: 0x6c4da620, 0x2b29d: 0x6c4da820, 0x2b29e: 0x6c4daa20, 0x2b29f: 0x6c6f5620, + 0x2b2a0: 0x6c6f5820, 0x2b2a1: 0x6c4dac20, 0x2b2a2: 0x6c4dae20, 0x2b2a3: 0x6c6f5a20, + 0x2b2a4: 0x6c4db020, 0x2b2a5: 0x6c4db220, 0x2b2a6: 0x6c4db420, 0x2b2a7: 0x6c4db620, + 0x2b2a8: 0x6c4db820, 0x2b2a9: 0x6c6f5c20, 0x2b2aa: 0x6c6f5e20, 0x2b2ab: 0x6c6f6020, + 0x2b2ac: 0x6c4dba20, 0x2b2ad: 0x6c4dbc20, 0x2b2ae: 0x6c972e20, 0x2b2af: 0x6c6f8a20, + 0x2b2b0: 0x6c973020, 0x2b2b1: 0x6c6f8c20, 0x2b2b2: 0x6c973220, 0x2b2b3: 0x6c6f8e20, + 0x2b2b4: 0x6c6f9020, 0x2b2b5: 0x6c973420, 0x2b2b6: 0x6c6f9220, 0x2b2b7: 0x6c6f9420, + 0x2b2b8: 0x6c6f9620, 0x2b2b9: 0x6c6f9820, 0x2b2ba: 0x6c4dbe20, 0x2b2bb: 0x6c973620, + 0x2b2bc: 0x6c6f9a20, 0x2b2bd: 0x6c6f9c20, 0x2b2be: 0x6c975620, 0x2b2bf: 0x6c975820, + // Block 0xacb, offset 0x2b2c0 + 0x2b2c0: 0x6c975a20, 0x2b2c1: 0x6cc30420, 0x2b2c2: 0x6c975c20, 0x2b2c3: 0x6c975e20, + 0x2b2c4: 0x6c976020, 0x2b2c5: 0x6c976220, 0x2b2c6: 0x6c976420, 0x2b2c7: 0x6c976620, + 0x2b2c8: 0x6cc30620, 0x2b2c9: 0x6c976820, 0x2b2ca: 0x6c976a20, 0x2b2cb: 0x6cc30820, + 0x2b2cc: 0x6c976c20, 0x2b2cd: 0x6c976e20, 0x2b2ce: 0x6cc30a20, 0x2b2cf: 0x6c977020, + 0x2b2d0: 0x6cc30c20, 0x2b2d1: 0x6cc30e20, 0x2b2d2: 0x6c977220, 0x2b2d3: 0x6c977420, + 0x2b2d4: 0x6c977620, 0x2b2d5: 0x6cc31020, 0x2b2d6: 0x6cc31220, 0x2b2d7: 0x6c977820, + 0x2b2d8: 0x6c977a20, 0x2b2d9: 0x6c977c20, 0x2b2da: 0x6cc33c20, 0x2b2db: 0x6cc33e20, + 0x2b2dc: 0x6cc34020, 0x2b2dd: 0x6cc34220, 0x2b2de: 0x6cc34420, 0x2b2df: 0x6cc34620, + 0x2b2e0: 0x6cc34820, 0x2b2e1: 0x6cc34a20, 0x2b2e2: 0x6cc34c20, 0x2b2e3: 0x6cf24220, + 0x2b2e4: 0x6cf24420, 0x2b2e5: 0x6cc34e20, 0x2b2e6: 0x6cf24620, 0x2b2e7: 0x6cc35020, + 0x2b2e8: 0x6cf24820, 0x2b2e9: 0x6cc35220, 0x2b2ea: 0x6cc35420, 0x2b2eb: 0x6cc35620, + 0x2b2ec: 0x6cf26620, 0x2b2ed: 0x6cf26820, 0x2b2ee: 0x6cf26a20, 0x2b2ef: 0x6d220420, + 0x2b2f0: 0x6cf26c20, 0x2b2f1: 0x6cf26e20, 0x2b2f2: 0x6d220620, 0x2b2f3: 0x6cf27020, + 0x2b2f4: 0x6cf27220, 0x2b2f5: 0x6cf27420, 0x2b2f6: 0x6d220820, 0x2b2f7: 0x6d220a20, + 0x2b2f8: 0x6d220c20, 0x2b2f9: 0x6d220e20, 0x2b2fa: 0x6cf27620, 0x2b2fb: 0x6d221020, + 0x2b2fc: 0x6d222a20, 0x2b2fd: 0x6d222c20, 0x2b2fe: 0x6d222e20, 0x2b2ff: 0x6d4f6420, + // Block 0xacc, offset 0x2b300 + 0x2b300: 0x6d223020, 0x2b301: 0x6d4f6620, 0x2b302: 0x6d4f6820, 0x2b303: 0x6d223220, + 0x2b304: 0x6d4f6a20, 0x2b305: 0x6d223420, 0x2b306: 0x6d223620, 0x2b307: 0x6d223820, + 0x2b308: 0x6d223a20, 0x2b309: 0x6d4f9820, 0x2b30a: 0x6d4f9a20, 0x2b30b: 0x6d4f9c20, + 0x2b30c: 0x6d7bb220, 0x2b30d: 0x6d4f9e20, 0x2b30e: 0x6d4fa020, 0x2b30f: 0x6d4fa220, + 0x2b310: 0x6d4fa420, 0x2b311: 0x6d4fa620, 0x2b312: 0x6d4fa820, 0x2b313: 0x6d4faa20, + 0x2b314: 0x6d7bb420, 0x2b315: 0x6d4fac20, 0x2b316: 0x6d4fae20, 0x2b317: 0x6d7bce20, + 0x2b318: 0x6da3d420, 0x2b319: 0x6d7bd020, 0x2b31a: 0x6dc57420, 0x2b31b: 0x6dc57620, + 0x2b31c: 0x6da3e620, 0x2b31d: 0x6dc57820, 0x2b31e: 0x6dc57a20, 0x2b31f: 0x6dc57c20, + 0x2b320: 0x6da3e820, 0x2b321: 0x6dc58820, 0x2b322: 0x6dc58a20, 0x2b323: 0x6dfa2a20, + 0x2b324: 0x6dfa2c20, 0x2b325: 0x6de28420, 0x2b326: 0x6de28620, 0x2b327: 0x6de28820, + 0x2b328: 0x6dfa3020, 0x2b329: 0x6dfa3220, 0x2b32a: 0x6dfa3420, 0x2b32b: 0x6e1d3420, + 0x2b32c: 0x6e1d3620, 0x2b32d: 0x6e403c20, 0x2b32e: 0x6c1ffc20, 0x2b32f: 0x6c1ffe20, + 0x2b330: 0x6c33dc20, 0x2b331: 0x6c33de20, 0x2b332: 0x6c33e020, 0x2b333: 0x6c4e9e20, + 0x2b334: 0x6c709620, 0x2b335: 0x6c709820, 0x2b336: 0x6c709a20, 0x2b337: 0x6c98b620, + 0x2b338: 0x6cc48e20, 0x2b339: 0x6cf37620, 0x2b33a: 0x6d233220, 0x2b33b: 0x6d50be20, + 0x2b33c: 0x6d50c020, 0x2b33d: 0x6da46820, 0x2b33e: 0x6c201620, 0x2b33f: 0x6c340220, + // Block 0xacd, offset 0x2b340 + 0x2b340: 0x6c340420, 0x2b341: 0x6c4ec820, 0x2b342: 0x6c4eca20, 0x2b343: 0x6c093220, + 0x2b344: 0x6c093420, 0x2b345: 0x6c093620, 0x2b346: 0x6c11d620, 0x2b347: 0x6c11d820, + 0x2b348: 0x6c11da20, 0x2b349: 0x6c202820, 0x2b34a: 0x6c202a20, 0x2b34b: 0x6c202c20, + 0x2b34c: 0x6c202e20, 0x2b34d: 0x6c203020, 0x2b34e: 0x6c203220, 0x2b34f: 0x6c203420, + 0x2b350: 0x6c203620, 0x2b351: 0x6c203820, 0x2b352: 0x6c341e20, 0x2b353: 0x6c342020, + 0x2b354: 0x6c342220, 0x2b355: 0x6c342420, 0x2b356: 0x6c342620, 0x2b357: 0x6c342820, + 0x2b358: 0x6c4ef220, 0x2b359: 0x6c342a20, 0x2b35a: 0x6c342c20, 0x2b35b: 0x6c342e20, + 0x2b35c: 0x6c343020, 0x2b35d: 0x6c343220, 0x2b35e: 0x6c343420, 0x2b35f: 0x6c343620, + 0x2b360: 0x6c343820, 0x2b361: 0x6c4ef820, 0x2b362: 0x6c4efa20, 0x2b363: 0x6c4efc20, + 0x2b364: 0x6c4efe20, 0x2b365: 0x6c4f0020, 0x2b366: 0x6c4f0220, 0x2b367: 0x6c4f0420, + 0x2b368: 0x6c4f0620, 0x2b369: 0x6c4f0820, 0x2b36a: 0x6c4f0a20, 0x2b36b: 0x6c4f0c20, + 0x2b36c: 0x6c70ca20, 0x2b36d: 0x6c70cc20, 0x2b36e: 0x6c4f0e20, 0x2b36f: 0x6c4f1020, + 0x2b370: 0x6c4f1220, 0x2b371: 0x6c70ce20, 0x2b372: 0x6c70e020, 0x2b373: 0x6c98e220, + 0x2b374: 0x6c70e220, 0x2b375: 0x6c70e420, 0x2b376: 0x6c70e620, 0x2b377: 0x6c70e820, + 0x2b378: 0x6c70ea20, 0x2b379: 0x6c98e820, 0x2b37a: 0x6c98ea20, 0x2b37b: 0x6c98ec20, + 0x2b37c: 0x6c98ee20, 0x2b37d: 0x6c98f020, 0x2b37e: 0x6c98f220, 0x2b37f: 0x6c98f420, + // Block 0xace, offset 0x2b380 + 0x2b380: 0x6c98f620, 0x2b381: 0x6c98f820, 0x2b382: 0x6c98fa20, 0x2b383: 0x6c98fc20, + 0x2b384: 0x6c98fe20, 0x2b385: 0x6c990020, 0x2b386: 0x6c990220, 0x2b387: 0x6cc4bc20, + 0x2b388: 0x6c990420, 0x2b389: 0x6cc4c820, 0x2b38a: 0x6cc4ca20, 0x2b38b: 0x6cc4cc20, + 0x2b38c: 0x6cf3a820, 0x2b38d: 0x6cf3aa20, 0x2b38e: 0x6cc4ce20, 0x2b38f: 0x6cc4d020, + 0x2b390: 0x6cc4d220, 0x2b391: 0x6cc4d420, 0x2b392: 0x6cc4d620, 0x2b393: 0x6cc4d820, + 0x2b394: 0x6cc4da20, 0x2b395: 0x6cc4dc20, 0x2b396: 0x6cc66c20, 0x2b397: 0x6cc4de20, + 0x2b398: 0x6cc4e020, 0x2b399: 0x6cf3b220, 0x2b39a: 0x6cf3b420, 0x2b39b: 0x6cf3b620, + 0x2b39c: 0x6cf3b820, 0x2b39d: 0x6cf3ba20, 0x2b39e: 0x6cf3bc20, 0x2b39f: 0x6cf3be20, + 0x2b3a0: 0x6cf3c020, 0x2b3a1: 0x6cf3c220, 0x2b3a2: 0x6cf3c420, 0x2b3a3: 0x6cf3c620, + 0x2b3a4: 0x6cf3c820, 0x2b3a5: 0x6cf3ca20, 0x2b3a6: 0x6cf3cc20, 0x2b3a7: 0x6cf3ce20, + 0x2b3a8: 0x6cf3d020, 0x2b3a9: 0x6cf3d220, 0x2b3aa: 0x6cf3d420, 0x2b3ab: 0x6cf3d620, + 0x2b3ac: 0x6cf3d820, 0x2b3ad: 0x6d237220, 0x2b3ae: 0x6d237420, 0x2b3af: 0x6d237620, + 0x2b3b0: 0x6d237820, 0x2b3b1: 0x6d237a20, 0x2b3b2: 0x6d237c20, 0x2b3b3: 0x6d237e20, + 0x2b3b4: 0x6d238020, 0x2b3b5: 0x6d238220, 0x2b3b6: 0x6d238420, 0x2b3b7: 0x6d238620, + 0x2b3b8: 0x6d238820, 0x2b3b9: 0x6d238a20, 0x2b3ba: 0x6d238c20, 0x2b3bb: 0x6d50fc20, + 0x2b3bc: 0x6d50fe20, 0x2b3bd: 0x6d238e20, 0x2b3be: 0x6d239020, 0x2b3bf: 0x6d239220, + // Block 0xacf, offset 0x2b3c0 + 0x2b3c0: 0x6d239420, 0x2b3c1: 0x6d239620, 0x2b3c2: 0x6d239820, 0x2b3c3: 0x6d511020, + 0x2b3c4: 0x6d511220, 0x2b3c5: 0x6d511420, 0x2b3c6: 0x6d511620, 0x2b3c7: 0x6d511820, + 0x2b3c8: 0x6d511a20, 0x2b3c9: 0x6d511c20, 0x2b3ca: 0x6d511e20, 0x2b3cb: 0x6d512020, + 0x2b3cc: 0x6d512220, 0x2b3cd: 0x6d512420, 0x2b3ce: 0x6d512620, 0x2b3cf: 0x6d512820, + 0x2b3d0: 0x6d512a20, 0x2b3d1: 0x6d512c20, 0x2b3d2: 0x6d7cb420, 0x2b3d3: 0x6da47a20, + 0x2b3d4: 0x6d7cb620, 0x2b3d5: 0x6d7cb820, 0x2b3d6: 0x6d7cba20, 0x2b3d7: 0x6d7cbc20, + 0x2b3d8: 0x6d7cbe20, 0x2b3d9: 0x6d7cc020, 0x2b3da: 0x6da48220, 0x2b3db: 0x6da48420, + 0x2b3dc: 0x6da48620, 0x2b3dd: 0x6da48820, 0x2b3de: 0x6da48a20, 0x2b3df: 0x6da48c20, + 0x2b3e0: 0x6dc60e20, 0x2b3e1: 0x6dc61020, 0x2b3e2: 0x6dc61220, 0x2b3e3: 0x6dc61420, + 0x2b3e4: 0x6dc61620, 0x2b3e5: 0x6dc61820, 0x2b3e6: 0x6dc61a20, 0x2b3e7: 0x6dc61c20, + 0x2b3e8: 0x6dc61e20, 0x2b3e9: 0x6dc62020, 0x2b3ea: 0x6dc62220, 0x2b3eb: 0x6dc62420, + 0x2b3ec: 0x6de2ea20, 0x2b3ed: 0x6de2ec20, 0x2b3ee: 0x6dfa5c20, 0x2b3ef: 0x6dfa5e20, + 0x2b3f0: 0x6dfa6020, 0x2b3f1: 0x6e0df020, 0x2b3f2: 0x6e0df220, 0x2b3f3: 0x6e0df420, + 0x2b3f4: 0x6e0df620, 0x2b3f5: 0x6e28f820, 0x2b3f6: 0x6e28fa20, 0x2b3f7: 0x6e28fc20, + 0x2b3f8: 0x6e389020, 0x2b3f9: 0x6e389220, 0x2b3fa: 0x6c352e20, 0x2b3fb: 0x6c722220, + 0x2b3fc: 0x6c722420, 0x2b3fd: 0x6c9a9420, 0x2b3fe: 0x6cc67020, 0x2b3ff: 0x6c211c20, + // Block 0xad0, offset 0x2b400 + 0x2b400: 0x6c211e20, 0x2b401: 0x6c354020, 0x2b402: 0x6c354220, 0x2b403: 0x6c503420, + 0x2b404: 0x6c503620, 0x2b405: 0x6c503820, 0x2b406: 0x6c503a20, 0x2b407: 0x6c723620, + 0x2b408: 0x6c723820, 0x2b409: 0x6c723a20, 0x2b40a: 0x6c9aa020, 0x2b40b: 0x6c9aa220, + 0x2b40c: 0x6c9aa420, 0x2b40d: 0x6c9aa620, 0x2b40e: 0x6c9aa820, 0x2b40f: 0x6cc68220, + 0x2b410: 0x6cc68420, 0x2b411: 0x6cc68620, 0x2b412: 0x6cc68820, 0x2b413: 0x6cc68a20, + 0x2b414: 0x6cc68c20, 0x2b415: 0x6cc68e20, 0x2b416: 0x6cc69020, 0x2b417: 0x6cc69220, + 0x2b418: 0x6cc69420, 0x2b419: 0x6cc69620, 0x2b41a: 0x6cc69820, 0x2b41b: 0x6cf52c20, + 0x2b41c: 0x6cf52e20, 0x2b41d: 0x6cf53020, 0x2b41e: 0x6cf53220, 0x2b41f: 0x6cf53420, + 0x2b420: 0x6d24f020, 0x2b421: 0x6d24f220, 0x2b422: 0x6d24f420, 0x2b423: 0x6d24f620, + 0x2b424: 0x6d527220, 0x2b425: 0x6d527420, 0x2b426: 0x6d527620, 0x2b427: 0x6d7dae20, + 0x2b428: 0x6d7db020, 0x2b429: 0x6d7db220, 0x2b42a: 0x6d7db420, 0x2b42b: 0x6dc6b620, + 0x2b42c: 0x6dc6b820, 0x2b42d: 0x6dfab220, 0x2b42e: 0x6e0e2c20, 0x2b42f: 0x6c213a20, + 0x2b430: 0x6c728c20, 0x2b431: 0x6cf58c20, 0x2b432: 0x6c124020, 0x2b433: 0x6c124220, + 0x2b434: 0x6c358220, 0x2b435: 0x6c507a20, 0x2b436: 0x6c729a20, 0x2b437: 0x6c9b2820, + 0x2b438: 0x6cc71420, 0x2b439: 0x6d52cc20, 0x2b43a: 0x6da54220, 0x2b43b: 0x6e292a20, + 0x2b43c: 0x6c508220, 0x2b43d: 0x6c508420, 0x2b43e: 0x6c72aa20, 0x2b43f: 0x6c72ac20, + // Block 0xad1, offset 0x2b440 + 0x2b440: 0x6cc72420, 0x2b441: 0x6d255620, 0x2b442: 0x6d52d620, 0x2b443: 0x6c124620, + 0x2b444: 0x6c359e20, 0x2b445: 0x6c72b420, 0x2b446: 0x6c508e20, 0x2b447: 0x6c72b620, + 0x2b448: 0x6c72b820, 0x2b449: 0x6c72ba20, 0x2b44a: 0x6c9b4220, 0x2b44b: 0x6c9b4420, + 0x2b44c: 0x6c9b4620, 0x2b44d: 0x6cc74420, 0x2b44e: 0x6d52e420, 0x2b44f: 0x6d52e620, + 0x2b450: 0x6c124c20, 0x2b451: 0x6c124e20, 0x2b452: 0x6c215020, 0x2b453: 0x6c215220, + 0x2b454: 0x6c215420, 0x2b455: 0x6c215620, 0x2b456: 0x6c215820, 0x2b457: 0x6c215a20, + 0x2b458: 0x6c35b020, 0x2b459: 0x6c35b220, 0x2b45a: 0x6c35b420, 0x2b45b: 0x6c50b020, + 0x2b45c: 0x6c50b220, 0x2b45d: 0x6c50b420, 0x2b45e: 0x6c50b620, 0x2b45f: 0x6c50b820, + 0x2b460: 0x6c50ba20, 0x2b461: 0x6c50bc20, 0x2b462: 0x6c50be20, 0x2b463: 0x6c50c020, + 0x2b464: 0x6c50c220, 0x2b465: 0x6c72f020, 0x2b466: 0x6c72f220, 0x2b467: 0x6c72f420, + 0x2b468: 0x6c72f620, 0x2b469: 0x6c72f820, 0x2b46a: 0x6c72fa20, 0x2b46b: 0x6c72fc20, + 0x2b46c: 0x6c72fe20, 0x2b46d: 0x6c730020, 0x2b46e: 0x6c730220, 0x2b46f: 0x6c9b7020, + 0x2b470: 0x6c9b7220, 0x2b471: 0x6c9b7420, 0x2b472: 0x6c9b7620, 0x2b473: 0x6c9b7820, + 0x2b474: 0x6c9b7a20, 0x2b475: 0x6cc76e20, 0x2b476: 0x6cc77020, 0x2b477: 0x6cc77220, + 0x2b478: 0x6cc77420, 0x2b479: 0x6cc77620, 0x2b47a: 0x6cc77820, 0x2b47b: 0x6cc77a20, + 0x2b47c: 0x6cc77c20, 0x2b47d: 0x6cc77e20, 0x2b47e: 0x6cc78020, 0x2b47f: 0x6cc78220, + // Block 0xad2, offset 0x2b480 + 0x2b480: 0x6cc78420, 0x2b481: 0x6cf5d820, 0x2b482: 0x6cf5da20, 0x2b483: 0x6cf5dc20, + 0x2b484: 0x6cf5de20, 0x2b485: 0x6cf5e020, 0x2b486: 0x6cf5e220, 0x2b487: 0x6cf5e420, + 0x2b488: 0x6cf5e620, 0x2b489: 0x6cf5e820, 0x2b48a: 0x6cf5ea20, 0x2b48b: 0x6cf5ec20, + 0x2b48c: 0x6cf5ee20, 0x2b48d: 0x6d257620, 0x2b48e: 0x6d257820, 0x2b48f: 0x6d257a20, + 0x2b490: 0x6d257c20, 0x2b491: 0x6d52f420, 0x2b492: 0x6d52f620, 0x2b493: 0x6d52f820, + 0x2b494: 0x6d52fa20, 0x2b495: 0x6d52fc20, 0x2b496: 0x6d52fe20, 0x2b497: 0x6d7e3220, + 0x2b498: 0x6d7e3420, 0x2b499: 0x6d7e3620, 0x2b49a: 0x6d7e3820, 0x2b49b: 0x6d7e3a20, + 0x2b49c: 0x6d7e3c20, 0x2b49d: 0x6d7e3e20, 0x2b49e: 0x6d7e4020, 0x2b49f: 0x6d7e4220, + 0x2b4a0: 0x6da55e20, 0x2b4a1: 0x6da56020, 0x2b4a2: 0x6da56220, 0x2b4a3: 0x6dc6fa20, + 0x2b4a4: 0x6dc6fc20, 0x2b4a5: 0x6dc6fe20, 0x2b4a6: 0x6dc70020, 0x2b4a7: 0x6dc70220, + 0x2b4a8: 0x6dc70420, 0x2b4a9: 0x6de38420, 0x2b4aa: 0x6de38620, 0x2b4ab: 0x6dfade20, + 0x2b4ac: 0x6e1d9a20, 0x2b4ad: 0x6e1d9c20, 0x2b4ae: 0x6e292e20, 0x2b4af: 0x6e38a620, + 0x2b4b0: 0x6c126e20, 0x2b4b1: 0x6d7ed420, 0x2b4b2: 0x6da5aa20, 0x2b4b3: 0x6c364a20, + 0x2b4b4: 0x6c73aa20, 0x2b4b5: 0x6c73ac20, 0x2b4b6: 0x6c9c1620, 0x2b4b7: 0x6c9c1820, + 0x2b4b8: 0x6cc85820, 0x2b4b9: 0x6cd95a20, 0x2b4ba: 0x6d260220, 0x2b4bb: 0x6d260420, + 0x2b4bc: 0x6d538020, 0x2b4bd: 0x6d538220, 0x2b4be: 0x6d538420, 0x2b4bf: 0x6d7ee420, + // Block 0xad3, offset 0x2b4c0 + 0x2b4c0: 0x6da5b020, 0x2b4c1: 0x6c127a20, 0x2b4c2: 0x6c21b020, 0x2b4c3: 0x6c21b220, + 0x2b4c4: 0x6c21b420, 0x2b4c5: 0x6c21b620, 0x2b4c6: 0x6c21b820, 0x2b4c7: 0x6c365820, + 0x2b4c8: 0x6c365a20, 0x2b4c9: 0x6c365c20, 0x2b4ca: 0x6c365e20, 0x2b4cb: 0x6c366020, + 0x2b4cc: 0x6c366220, 0x2b4cd: 0x6c366420, 0x2b4ce: 0x6c366620, 0x2b4cf: 0x6c366820, + 0x2b4d0: 0x6c366a20, 0x2b4d1: 0x6c518620, 0x2b4d2: 0x6c518820, 0x2b4d3: 0x6c518a20, + 0x2b4d4: 0x6c518c20, 0x2b4d5: 0x6c518e20, 0x2b4d6: 0x6c519020, 0x2b4d7: 0x6c519220, + 0x2b4d8: 0x6c73c620, 0x2b4d9: 0x6c73c820, 0x2b4da: 0x6c73ca20, 0x2b4db: 0x6c73cc20, + 0x2b4dc: 0x6c73ce20, 0x2b4dd: 0x6c73d020, 0x2b4de: 0x6c73d220, 0x2b4df: 0x6c73d420, + 0x2b4e0: 0x6c73d620, 0x2b4e1: 0x6c73d820, 0x2b4e2: 0x6c73da20, 0x2b4e3: 0x6c73dc20, + 0x2b4e4: 0x6c73de20, 0x2b4e5: 0x6c73e020, 0x2b4e6: 0x6c73e220, 0x2b4e7: 0x6c73e420, + 0x2b4e8: 0x6c9c3620, 0x2b4e9: 0x6c9c3820, 0x2b4ea: 0x6c9c3a20, 0x2b4eb: 0x6c9c3c20, + 0x2b4ec: 0x6c9c3e20, 0x2b4ed: 0x6c9c4020, 0x2b4ee: 0x6c9c4220, 0x2b4ef: 0x6c9c4420, + 0x2b4f0: 0x6c9c4620, 0x2b4f1: 0x6c9c4820, 0x2b4f2: 0x6c9c4a20, 0x2b4f3: 0x6c9c4c20, + 0x2b4f4: 0x6c9c4e20, 0x2b4f5: 0x6c9c5020, 0x2b4f6: 0x6cc88620, 0x2b4f7: 0x6c9c5220, + 0x2b4f8: 0x6cc88820, 0x2b4f9: 0x6cc88a20, 0x2b4fa: 0x6cc88c20, 0x2b4fb: 0x6cc88e20, + 0x2b4fc: 0x6cc89020, 0x2b4fd: 0x6cc89220, 0x2b4fe: 0x6cc89420, 0x2b4ff: 0x6cc89620, + // Block 0xad4, offset 0x2b500 + 0x2b500: 0x6cc89820, 0x2b501: 0x6cc89a20, 0x2b502: 0x6cc89c20, 0x2b503: 0x6cc89e20, + 0x2b504: 0x6cc8a020, 0x2b505: 0x6cc8a220, 0x2b506: 0x6cc8a420, 0x2b507: 0x6cc8a620, + 0x2b508: 0x6cc8a820, 0x2b509: 0x6cc8aa20, 0x2b50a: 0x6cc8ac20, 0x2b50b: 0x6cf6b220, + 0x2b50c: 0x6cf6b420, 0x2b50d: 0x6cf6b620, 0x2b50e: 0x6cf6b820, 0x2b50f: 0x6cf6ba20, + 0x2b510: 0x6cf6bc20, 0x2b511: 0x6cf6be20, 0x2b512: 0x6cf6c020, 0x2b513: 0x6cf6c220, + 0x2b514: 0x6cf6c420, 0x2b515: 0x6cf6c620, 0x2b516: 0x6cf6c820, 0x2b517: 0x6cf6ca20, + 0x2b518: 0x6cf6cc20, 0x2b519: 0x6cf6ce20, 0x2b51a: 0x6cf6d020, 0x2b51b: 0x6cf6d220, + 0x2b51c: 0x6cf6d420, 0x2b51d: 0x6cf6d620, 0x2b51e: 0x6cf6d820, 0x2b51f: 0x6cf6da20, + 0x2b520: 0x6cf6dc20, 0x2b521: 0x6cfbd820, 0x2b522: 0x6cf6de20, 0x2b523: 0x6cf6e020, + 0x2b524: 0x6d261a20, 0x2b525: 0x6d261c20, 0x2b526: 0x6d261e20, 0x2b527: 0x6d262020, + 0x2b528: 0x6d262220, 0x2b529: 0x6d262420, 0x2b52a: 0x6d262620, 0x2b52b: 0x6d262820, + 0x2b52c: 0x6d262a20, 0x2b52d: 0x6d262c20, 0x2b52e: 0x6d262e20, 0x2b52f: 0x6d263020, + 0x2b530: 0x6d263220, 0x2b531: 0x6d263420, 0x2b532: 0x6d263620, 0x2b533: 0x6d263820, + 0x2b534: 0x6d263a20, 0x2b535: 0x6d263c20, 0x2b536: 0x6d263e20, 0x2b537: 0x6d264020, + 0x2b538: 0x6d264220, 0x2b539: 0x6d264420, 0x2b53a: 0x6d264620, 0x2b53b: 0x6d264820, + 0x2b53c: 0x6d264a20, 0x2b53d: 0x6d264c20, 0x2b53e: 0x6d539e20, 0x2b53f: 0x6d53a020, + // Block 0xad5, offset 0x2b540 + 0x2b540: 0x6d53a220, 0x2b541: 0x6d53a420, 0x2b542: 0x6d53a620, 0x2b543: 0x6d53a820, + 0x2b544: 0x6d53aa20, 0x2b545: 0x6d53ac20, 0x2b546: 0x6d53ae20, 0x2b547: 0x6d53b020, + 0x2b548: 0x6d53b220, 0x2b549: 0x6d53b420, 0x2b54a: 0x6d53b620, 0x2b54b: 0x6d53b820, + 0x2b54c: 0x6d53ba20, 0x2b54d: 0x6d53bc20, 0x2b54e: 0x6d53be20, 0x2b54f: 0x6d53c020, + 0x2b550: 0x6d7f0220, 0x2b551: 0x6d53c220, 0x2b552: 0x6d53c420, 0x2b553: 0x6d7f0420, + 0x2b554: 0x6d7f0620, 0x2b555: 0x6d7f0820, 0x2b556: 0x6d7f0a20, 0x2b557: 0x6d7f0c20, + 0x2b558: 0x6d7f0e20, 0x2b559: 0x6d7f1020, 0x2b55a: 0x6d7f1220, 0x2b55b: 0x6d7f1420, + 0x2b55c: 0x6d7f1620, 0x2b55d: 0x6d7f1820, 0x2b55e: 0x6d7f1a20, 0x2b55f: 0x6d7f1c20, + 0x2b560: 0x6d53c620, 0x2b561: 0x6d7f1e20, 0x2b562: 0x6d7f2020, 0x2b563: 0x6d7f2220, + 0x2b564: 0x6d7f2420, 0x2b565: 0x6d7f2620, 0x2b566: 0x6d7f2820, 0x2b567: 0x6d7f2a20, + 0x2b568: 0x6d7f2c20, 0x2b569: 0x6d7f2e20, 0x2b56a: 0x6da5c220, 0x2b56b: 0x6da5c420, + 0x2b56c: 0x6da5c620, 0x2b56d: 0x6da5c820, 0x2b56e: 0x6da5ca20, 0x2b56f: 0x6da5cc20, + 0x2b570: 0x6da5ce20, 0x2b571: 0x6da5d020, 0x2b572: 0x6da5d220, 0x2b573: 0x6da5d420, + 0x2b574: 0x6da5d620, 0x2b575: 0x6da5d820, 0x2b576: 0x6da5da20, 0x2b577: 0x6dc75420, + 0x2b578: 0x6dc75620, 0x2b579: 0x6dc75820, 0x2b57a: 0x6dc75a20, 0x2b57b: 0x6dc75c20, + 0x2b57c: 0x6dc75e20, 0x2b57d: 0x6dc76020, 0x2b57e: 0x6de3b420, 0x2b57f: 0x6de3b620, + // Block 0xad6, offset 0x2b580 + 0x2b580: 0x6de3b820, 0x2b581: 0x6de3ba20, 0x2b582: 0x6de3bc20, 0x2b583: 0x6de3be20, + 0x2b584: 0x6de3c020, 0x2b585: 0x6de3c220, 0x2b586: 0x6de3c420, 0x2b587: 0x6de3c620, + 0x2b588: 0x6de3c820, 0x2b589: 0x6dfb0820, 0x2b58a: 0x6dfb0a20, 0x2b58b: 0x6dfb0c20, + 0x2b58c: 0x6dfb0e20, 0x2b58d: 0x6dfb1020, 0x2b58e: 0x6dfb1220, 0x2b58f: 0x6dfb1420, + 0x2b590: 0x6dfb1620, 0x2b591: 0x6dfb1820, 0x2b592: 0x6dfb1a20, 0x2b593: 0x6dfb1c20, + 0x2b594: 0x6e0e5e20, 0x2b595: 0x6e0e6020, 0x2b596: 0x6dfb1e20, 0x2b597: 0x6e1db220, + 0x2b598: 0x6e1db420, 0x2b599: 0x6e293a20, 0x2b59a: 0x6e293c20, 0x2b59b: 0x6e293e20, + 0x2b59c: 0x6e294020, 0x2b59d: 0x6c223820, 0x2b59e: 0x6c223a20, 0x2b59f: 0x6c376620, + 0x2b5a0: 0x6c376820, 0x2b5a1: 0x6c376a20, 0x2b5a2: 0x6c376c20, 0x2b5a3: 0x6c52c220, + 0x2b5a4: 0x6c52c420, 0x2b5a5: 0x6c52c620, 0x2b5a6: 0x6c52c820, 0x2b5a7: 0x6c52ca20, + 0x2b5a8: 0x6c52cc20, 0x2b5a9: 0x6c754820, 0x2b5aa: 0x6c754a20, 0x2b5ab: 0x6c754c20, + 0x2b5ac: 0x6c754e20, 0x2b5ad: 0x6c755020, 0x2b5ae: 0x6c9da620, 0x2b5af: 0x6c9da820, + 0x2b5b0: 0x6c9daa20, 0x2b5b1: 0x6c9dac20, 0x2b5b2: 0x6cca8c20, 0x2b5b3: 0x6cca8e20, + 0x2b5b4: 0x6cca9020, 0x2b5b5: 0x6cca9220, 0x2b5b6: 0x6cca9420, 0x2b5b7: 0x6c75a620, + 0x2b5b8: 0x6cca9620, 0x2b5b9: 0x6cf8bc20, 0x2b5ba: 0x6cf8be20, 0x2b5bb: 0x6cf8c020, + 0x2b5bc: 0x6cf8c220, 0x2b5bd: 0x6cf8c420, 0x2b5be: 0x6cf8c620, 0x2b5bf: 0x6d280220, + // Block 0xad7, offset 0x2b5c0 + 0x2b5c0: 0x6d280420, 0x2b5c1: 0x6d280620, 0x2b5c2: 0x6d555220, 0x2b5c3: 0x6d555420, + 0x2b5c4: 0x6d80d020, 0x2b5c5: 0x6d80d220, 0x2b5c6: 0x6da6f420, 0x2b5c7: 0x6da6f620, + 0x2b5c8: 0x6da6f820, 0x2b5c9: 0x6da6fa20, 0x2b5ca: 0x6de47a20, 0x2b5cb: 0x6dfb9a20, + 0x2b5cc: 0x6e1e0c20, 0x2b5cd: 0x6e297620, 0x2b5ce: 0x6e38d620, 0x2b5cf: 0x6c12ba20, + 0x2b5d0: 0x6c224e20, 0x2b5d1: 0x6c225020, 0x2b5d2: 0x6c52f820, 0x2b5d3: 0x6c52fa20, + 0x2b5d4: 0x6c52fc20, 0x2b5d5: 0x6ccad220, 0x2b5d6: 0x6ccad420, 0x2b5d7: 0x6d284220, + 0x2b5d8: 0x6dc85c20, 0x2b5d9: 0x6c12c220, 0x2b5da: 0x6c37ca20, 0x2b5db: 0x6c37cc20, + 0x2b5dc: 0x6c37ce20, 0x2b5dd: 0x6c37d020, 0x2b5de: 0x6c530820, 0x2b5df: 0x6c530a20, + 0x2b5e0: 0x6c530c20, 0x2b5e1: 0x6c75a820, 0x2b5e2: 0x6c9de820, 0x2b5e3: 0x6c9dea20, + 0x2b5e4: 0x6ccaf820, 0x2b5e5: 0x6ccafa20, 0x2b5e6: 0x6ccafc20, 0x2b5e7: 0x6ccafe20, + 0x2b5e8: 0x6ccb0020, 0x2b5e9: 0x6ccb0220, 0x2b5ea: 0x6cf92220, 0x2b5eb: 0x6cf92420, + 0x2b5ec: 0x6cf92620, 0x2b5ed: 0x6cf92820, 0x2b5ee: 0x6cf92a20, 0x2b5ef: 0x6d285020, + 0x2b5f0: 0x6d285220, 0x2b5f1: 0x6d285420, 0x2b5f2: 0x6d285620, 0x2b5f3: 0x6d559a20, + 0x2b5f4: 0x6d559c20, 0x2b5f5: 0x6d810220, 0x2b5f6: 0x6d810420, 0x2b5f7: 0x6d810620, + 0x2b5f8: 0x6da71e20, 0x2b5f9: 0x6dfba420, 0x2b5fa: 0x6dfba620, 0x2b5fb: 0x6e297e20, + 0x2b5fc: 0x6c227420, 0x2b5fd: 0x6c380420, 0x2b5fe: 0x6c75dc20, 0x2b5ff: 0x6c75de20, + // Block 0xad8, offset 0x2b600 + 0x2b600: 0x6c9e2020, 0x2b601: 0x6ccb4a20, 0x2b602: 0x6ccb4c20, 0x2b603: 0x6ccb4e20, + 0x2b604: 0x6cf95620, 0x2b605: 0x6d287620, 0x2b606: 0x6d812820, 0x2b607: 0x6d812a20, + 0x2b608: 0x6d812c20, 0x2b609: 0x6da73620, 0x2b60a: 0x6dc87e20, 0x2b60b: 0x6c535620, + 0x2b60c: 0x6c12da20, 0x2b60d: 0x6c382020, 0x2b60e: 0x6c382220, 0x2b60f: 0x6c382420, + 0x2b610: 0x6c382620, 0x2b611: 0x6c382820, 0x2b612: 0x6c535e20, 0x2b613: 0x6c75f620, + 0x2b614: 0x6c9e5420, 0x2b615: 0x6c9e5620, 0x2b616: 0x6c9e5820, 0x2b617: 0x6c9e5a20, + 0x2b618: 0x6c9e5c20, 0x2b619: 0x6c9e5e20, 0x2b61a: 0x6c9e6020, 0x2b61b: 0x6ccb6a20, + 0x2b61c: 0x6ccb6c20, 0x2b61d: 0x6ccb6e20, 0x2b61e: 0x6ccb7020, 0x2b61f: 0x6cf98220, + 0x2b620: 0x6cf98420, 0x2b621: 0x6cf98620, 0x2b622: 0x6cf98820, 0x2b623: 0x6cf98a20, + 0x2b624: 0x6d289e20, 0x2b625: 0x6d28a020, 0x2b626: 0x6d28a220, 0x2b627: 0x6d28a420, + 0x2b628: 0x6d28a620, 0x2b629: 0x6d28a820, 0x2b62a: 0x6d815c20, 0x2b62b: 0x6d815e20, + 0x2b62c: 0x6d816020, 0x2b62d: 0x6d816220, 0x2b62e: 0x6d816420, 0x2b62f: 0x6dc89220, + 0x2b630: 0x6dc89420, 0x2b631: 0x6de4a220, 0x2b632: 0x6e3d4820, 0x2b633: 0x6c763820, + 0x2b634: 0x6c385620, 0x2b635: 0x6c9ea020, 0x2b636: 0x6d561220, 0x2b637: 0x6d819620, + 0x2b638: 0x6c04c820, 0x2b639: 0x6c099620, 0x2b63a: 0x6c099820, 0x2b63b: 0x6c12f420, + 0x2b63c: 0x6c099a20, 0x2b63d: 0x6c12fa20, 0x2b63e: 0x6c22a020, 0x2b63f: 0x6c12fc20, + // Block 0xad9, offset 0x2b640 + 0x2b640: 0x6c22a620, 0x2b641: 0x6c22a820, 0x2b642: 0x6c22aa20, 0x2b643: 0x6c22ac20, + 0x2b644: 0x6c22ae20, 0x2b645: 0x6c22b020, 0x2b646: 0x6c22b220, 0x2b647: 0x6c22b420, + 0x2b648: 0x6c22b620, 0x2b649: 0x6c22b820, 0x2b64a: 0x6c22ba20, 0x2b64b: 0x6c387020, + 0x2b64c: 0x6c387220, 0x2b64d: 0x6c387420, 0x2b64e: 0x6c387620, 0x2b64f: 0x6c387820, + 0x2b650: 0x6c387a20, 0x2b651: 0x6c387c20, 0x2b652: 0x6c387e20, 0x2b653: 0x6c388020, + 0x2b654: 0x6c388220, 0x2b655: 0x6c388420, 0x2b656: 0x6c53d820, 0x2b657: 0x6c53da20, + 0x2b658: 0x6c53dc20, 0x2b659: 0x6c53de20, 0x2b65a: 0x6c53e020, 0x2b65b: 0x6c53e220, + 0x2b65c: 0x6c53e420, 0x2b65d: 0x6c53e620, 0x2b65e: 0x6c53e820, 0x2b65f: 0x6c9eaa20, + 0x2b660: 0x6c53ea20, 0x2b661: 0x6c53ec20, 0x2b662: 0x6c53ee20, 0x2b663: 0x6c53f020, + 0x2b664: 0x6c765220, 0x2b665: 0x6c765420, 0x2b666: 0x6c765620, 0x2b667: 0x6c765820, + 0x2b668: 0x6c765a20, 0x2b669: 0x6c765c20, 0x2b66a: 0x6c765e20, 0x2b66b: 0x6c9eac20, + 0x2b66c: 0x6c766020, 0x2b66d: 0x6c766220, 0x2b66e: 0x6c766420, 0x2b66f: 0x6c766620, + 0x2b670: 0x6c766820, 0x2b671: 0x6c766a20, 0x2b672: 0x6c766c20, 0x2b673: 0x6c766e20, + 0x2b674: 0x6c9eb020, 0x2b675: 0x6c9eb220, 0x2b676: 0x6c9eb420, 0x2b677: 0x6c9eb620, + 0x2b678: 0x6c9eb820, 0x2b679: 0x6c9eba20, 0x2b67a: 0x6c9ebc20, 0x2b67b: 0x6c9ebe20, + 0x2b67c: 0x6ccbd620, 0x2b67d: 0x6c9ec020, 0x2b67e: 0x6c9ec220, 0x2b67f: 0x6c9ec420, + // Block 0xada, offset 0x2b680 + 0x2b680: 0x6c9ec620, 0x2b681: 0x6c9ec820, 0x2b682: 0x6c9eca20, 0x2b683: 0x6c9ecc20, + 0x2b684: 0x6c9ece20, 0x2b685: 0x6ccbd820, 0x2b686: 0x6c9ed020, 0x2b687: 0x6ccbda20, + 0x2b688: 0x6c9ed220, 0x2b689: 0x6c9ed420, 0x2b68a: 0x6c9ed620, 0x2b68b: 0x6c9ed820, + 0x2b68c: 0x6c9eda20, 0x2b68d: 0x6c9edc20, 0x2b68e: 0x6c9ede20, 0x2b68f: 0x6ccbe020, + 0x2b690: 0x6ccbe220, 0x2b691: 0x6ccbe420, 0x2b692: 0x6ccbe620, 0x2b693: 0x6ccbe820, + 0x2b694: 0x6ccbea20, 0x2b695: 0x6ccbec20, 0x2b696: 0x6ccbee20, 0x2b697: 0x6ccbf020, + 0x2b698: 0x6ccbf220, 0x2b699: 0x6ccbf420, 0x2b69a: 0x6ccbf620, 0x2b69b: 0x6ccbf820, + 0x2b69c: 0x6ccbfa20, 0x2b69d: 0x6ccbfc20, 0x2b69e: 0x6ccbfe20, 0x2b69f: 0x6ccc0020, + 0x2b6a0: 0x6ccc0220, 0x2b6a1: 0x6ccc0420, 0x2b6a2: 0x6ccc0620, 0x2b6a3: 0x6ccc0820, + 0x2b6a4: 0x6ccc0a20, 0x2b6a5: 0x6cf9e420, 0x2b6a6: 0x6cf9e620, 0x2b6a7: 0x6cf9e820, + 0x2b6a8: 0x6cf9ea20, 0x2b6a9: 0x6cf9ec20, 0x2b6aa: 0x6cf9ee20, 0x2b6ab: 0x6cf9f020, + 0x2b6ac: 0x6cf9f220, 0x2b6ad: 0x6cf9f420, 0x2b6ae: 0x6cf9f620, 0x2b6af: 0x6cf9f820, + 0x2b6b0: 0x6cf9fa20, 0x2b6b1: 0x6cf9fc20, 0x2b6b2: 0x6cf9fe20, 0x2b6b3: 0x6cfa0020, + 0x2b6b4: 0x6cfa0220, 0x2b6b5: 0x6cfa0420, 0x2b6b6: 0x6cfa0620, 0x2b6b7: 0x6cfa0820, + 0x2b6b8: 0x6cfa0a20, 0x2b6b9: 0x6cfa0c20, 0x2b6ba: 0x6cfa0e20, 0x2b6bb: 0x6cfa1020, + 0x2b6bc: 0x6d28f620, 0x2b6bd: 0x6d28f820, 0x2b6be: 0x6d28fa20, 0x2b6bf: 0x6d28fc20, + // Block 0xadb, offset 0x2b6c0 + 0x2b6c0: 0x6d28fe20, 0x2b6c1: 0x6d290020, 0x2b6c2: 0x6d290220, 0x2b6c3: 0x6d290420, + 0x2b6c4: 0x6d290620, 0x2b6c5: 0x6d290820, 0x2b6c6: 0x6d290a20, 0x2b6c7: 0x6d290c20, + 0x2b6c8: 0x6d290e20, 0x2b6c9: 0x6d291020, 0x2b6ca: 0x6d562420, 0x2b6cb: 0x6d562620, + 0x2b6cc: 0x6d562820, 0x2b6cd: 0x6d562a20, 0x2b6ce: 0x6d562c20, 0x2b6cf: 0x6d562e20, + 0x2b6d0: 0x6d563020, 0x2b6d1: 0x6d563220, 0x2b6d2: 0x6d563420, 0x2b6d3: 0x6d563620, + 0x2b6d4: 0x6d563820, 0x2b6d5: 0x6d563a20, 0x2b6d6: 0x6d563c20, 0x2b6d7: 0x6d563e20, + 0x2b6d8: 0x6d819820, 0x2b6d9: 0x6d564020, 0x2b6da: 0x6d564220, 0x2b6db: 0x6d564420, + 0x2b6dc: 0x6d564620, 0x2b6dd: 0x6d819e20, 0x2b6de: 0x6d81a020, 0x2b6df: 0x6d81a220, + 0x2b6e0: 0x6d81a420, 0x2b6e1: 0x6d81a620, 0x2b6e2: 0x6d81a820, 0x2b6e3: 0x6d81aa20, + 0x2b6e4: 0x6d81ac20, 0x2b6e5: 0x6d81ae20, 0x2b6e6: 0x6d81b020, 0x2b6e7: 0x6d81b220, + 0x2b6e8: 0x6da77620, 0x2b6e9: 0x6d81b420, 0x2b6ea: 0x6d81b620, 0x2b6eb: 0x6d81b820, + 0x2b6ec: 0x6d81ba20, 0x2b6ed: 0x6d81bc20, 0x2b6ee: 0x6d81be20, 0x2b6ef: 0x6da77c20, + 0x2b6f0: 0x6da77e20, 0x2b6f1: 0x6da78020, 0x2b6f2: 0x6da78220, 0x2b6f3: 0x6da78420, + 0x2b6f4: 0x6da78620, 0x2b6f5: 0x6da78820, 0x2b6f6: 0x6da78a20, 0x2b6f7: 0x6da78c20, + 0x2b6f8: 0x6da78e20, 0x2b6f9: 0x6da79020, 0x2b6fa: 0x6da79220, 0x2b6fb: 0x6da79420, + 0x2b6fc: 0x6da79620, 0x2b6fd: 0x6dc8c420, 0x2b6fe: 0x6dc8c620, 0x2b6ff: 0x6dc8c820, + // Block 0xadc, offset 0x2b700 + 0x2b700: 0x6dc8ca20, 0x2b701: 0x6dc8cc20, 0x2b702: 0x6dc8ce20, 0x2b703: 0x6dc8d020, + 0x2b704: 0x6de4b220, 0x2b705: 0x6de4b420, 0x2b706: 0x6de4b620, 0x2b707: 0x6de4b820, + 0x2b708: 0x6de4ba20, 0x2b709: 0x6de4bc20, 0x2b70a: 0x6de4be20, 0x2b70b: 0x6de4c020, + 0x2b70c: 0x6dfbc420, 0x2b70d: 0x6dfbc620, 0x2b70e: 0x6dfbc820, 0x2b70f: 0x6dfbca20, + 0x2b710: 0x6dfbcc20, 0x2b711: 0x6dfbce20, 0x2b712: 0x6e0efa20, 0x2b713: 0x6e0efc20, + 0x2b714: 0x6e0efe20, 0x2b715: 0x6e0f0020, 0x2b716: 0x6e0f0220, 0x2b717: 0x6e1e2e20, + 0x2b718: 0x6e0f0420, 0x2b719: 0x6e1e3020, 0x2b71a: 0x6e1e3220, 0x2b71b: 0x6e299820, + 0x2b71c: 0x6e299a20, 0x2b71d: 0x6e299c20, 0x2b71e: 0x6e329e20, 0x2b71f: 0x6e32a020, + 0x2b720: 0x6e3d5020, 0x2b721: 0x6c135620, 0x2b722: 0x6c135820, 0x2b723: 0x6c238a20, + 0x2b724: 0x6c238c20, 0x2b725: 0x6c238e20, 0x2b726: 0x6c399420, 0x2b727: 0x6c399620, + 0x2b728: 0x6c399820, 0x2b729: 0x6c399a20, 0x2b72a: 0x6c399c20, 0x2b72b: 0x6c551820, + 0x2b72c: 0x6c551a20, 0x2b72d: 0x6c551c20, 0x2b72e: 0x6c551e20, 0x2b72f: 0x6c552020, + 0x2b730: 0x6c552220, 0x2b731: 0x6c552420, 0x2b732: 0x6c552620, 0x2b733: 0x6c77ea20, + 0x2b734: 0x6c77ec20, 0x2b735: 0x6c77ee20, 0x2b736: 0x6c77f020, 0x2b737: 0x6c77f220, + 0x2b738: 0x6c77f420, 0x2b739: 0x6ca0de20, 0x2b73a: 0x6ca0e020, 0x2b73b: 0x6ca0e220, + 0x2b73c: 0x6ca0e420, 0x2b73d: 0x6ca0e620, 0x2b73e: 0x6ca0e820, 0x2b73f: 0x6ca0ea20, + // Block 0xadd, offset 0x2b740 + 0x2b740: 0x6ca0ec20, 0x2b741: 0x6ca0ee20, 0x2b742: 0x6ccdde20, 0x2b743: 0x6ccde020, + 0x2b744: 0x6ccde220, 0x2b745: 0x6ccde420, 0x2b746: 0x6ccde620, 0x2b747: 0x6ccde820, + 0x2b748: 0x6ccdea20, 0x2b749: 0x6ccdec20, 0x2b74a: 0x6ccdee20, 0x2b74b: 0x6ccdf020, + 0x2b74c: 0x6ccdf220, 0x2b74d: 0x6ccdf420, 0x2b74e: 0x6cfbda20, 0x2b74f: 0x6cfbdc20, + 0x2b750: 0x6cfbde20, 0x2b751: 0x6cfbe020, 0x2b752: 0x6cfbe220, 0x2b753: 0x6cfbe420, + 0x2b754: 0x6cfbe620, 0x2b755: 0x6cfbe820, 0x2b756: 0x6cfbea20, 0x2b757: 0x6cfbec20, + 0x2b758: 0x6cfbee20, 0x2b759: 0x6cfbf020, 0x2b75a: 0x6cfbf220, 0x2b75b: 0x6cfbf420, + 0x2b75c: 0x6cfbf620, 0x2b75d: 0x6cfbf820, 0x2b75e: 0x6cfbfa20, 0x2b75f: 0x6d2ad220, + 0x2b760: 0x6d2ad420, 0x2b761: 0x6d2ad620, 0x2b762: 0x6d2ad820, 0x2b763: 0x6d2ada20, + 0x2b764: 0x6d2adc20, 0x2b765: 0x6d2ade20, 0x2b766: 0x6d2ae020, 0x2b767: 0x6d2ae220, + 0x2b768: 0x6d2ae420, 0x2b769: 0x6d2ae620, 0x2b76a: 0x6d2ae820, 0x2b76b: 0x6d580e20, + 0x2b76c: 0x6d581020, 0x2b76d: 0x6d581220, 0x2b76e: 0x6d581420, 0x2b76f: 0x6d581620, + 0x2b770: 0x6d581820, 0x2b771: 0x6d581a20, 0x2b772: 0x6d581c20, 0x2b773: 0x6d82fe20, + 0x2b774: 0x6d830020, 0x2b775: 0x6d830220, 0x2b776: 0x6d830420, 0x2b777: 0x6d830620, + 0x2b778: 0x6d830820, 0x2b779: 0x6d830a20, 0x2b77a: 0x6d830c20, 0x2b77b: 0x6d830e20, + 0x2b77c: 0x6d831020, 0x2b77d: 0x6d831220, 0x2b77e: 0x6da87020, 0x2b77f: 0x6da87220, + // Block 0xade, offset 0x2b780 + 0x2b780: 0x6da87420, 0x2b781: 0x6da87620, 0x2b782: 0x6da87820, 0x2b783: 0x6da87a20, + 0x2b784: 0x6dc9ba20, 0x2b785: 0x6dc9bc20, 0x2b786: 0x6de57220, 0x2b787: 0x6de57420, + 0x2b788: 0x6dfc4a20, 0x2b789: 0x6de57620, 0x2b78a: 0x6dfc4c20, 0x2b78b: 0x6dfc4e20, + 0x2b78c: 0x6dfc5020, 0x2b78d: 0x6e0f7c20, 0x2b78e: 0x6e1e6e20, 0x2b78f: 0x6e29d620, + 0x2b790: 0x6e29d820, 0x2b791: 0x6e3d6620, 0x2b792: 0x6c3a2420, 0x2b793: 0x6c3a2620, + 0x2b794: 0x6ca1ce20, 0x2b795: 0x6d2bda20, 0x2b796: 0x6c561420, 0x2b797: 0x6c78d420, + 0x2b798: 0x6ca1da20, 0x2b799: 0x6cfd3e20, 0x2b79a: 0x6c3a4020, 0x2b79b: 0x6c561e20, + 0x2b79c: 0x6ccf2820, 0x2b79d: 0x6c3a4e20, 0x2b79e: 0x6c3a5020, 0x2b79f: 0x6c78ee20, + 0x2b7a0: 0x6c78f020, 0x2b7a1: 0x6c78f220, 0x2b7a2: 0x6d2bfa20, 0x2b7a3: 0x6da93c20, + 0x2b7a4: 0x6dca4420, 0x2b7a5: 0x6e0fb620, 0x2b7a6: 0x6c04ea20, 0x2b7a7: 0x6c790220, + 0x2b7a8: 0x6c137e20, 0x2b7a9: 0x6c23e820, 0x2b7aa: 0x6c23ea20, 0x2b7ab: 0x6c3a6220, + 0x2b7ac: 0x6c3a6420, 0x2b7ad: 0x6c3a6620, 0x2b7ae: 0x6c3a6820, 0x2b7af: 0x6c3a6a20, + 0x2b7b0: 0x6c564220, 0x2b7b1: 0x6c564420, 0x2b7b2: 0x6c564620, 0x2b7b3: 0x6c564820, + 0x2b7b4: 0x6c564a20, 0x2b7b5: 0x6c790820, 0x2b7b6: 0x6c790a20, 0x2b7b7: 0x6c790c20, + 0x2b7b8: 0x6c790e20, 0x2b7b9: 0x6ca20e20, 0x2b7ba: 0x6ca21020, 0x2b7bb: 0x6ca21220, + 0x2b7bc: 0x6ca21420, 0x2b7bd: 0x6ca21620, 0x2b7be: 0x6ca21820, 0x2b7bf: 0x6ca21a20, + // Block 0xadf, offset 0x2b7c0 + 0x2b7c0: 0x6ca21c20, 0x2b7c1: 0x6ccf7220, 0x2b7c2: 0x6ccf7420, 0x2b7c3: 0x6ccf7620, + 0x2b7c4: 0x6d2c0e20, 0x2b7c5: 0x6cfd7020, 0x2b7c6: 0x6cfd7220, 0x2b7c7: 0x6cfd7420, + 0x2b7c8: 0x6cfd7620, 0x2b7c9: 0x6d2c1020, 0x2b7ca: 0x6d2c1220, 0x2b7cb: 0x6d2c1420, + 0x2b7cc: 0x6d594620, 0x2b7cd: 0x6d594820, 0x2b7ce: 0x6d594a20, 0x2b7cf: 0x6d594c20, + 0x2b7d0: 0x6d594e20, 0x2b7d1: 0x6d845220, 0x2b7d2: 0x6d845420, 0x2b7d3: 0x6d845620, + 0x2b7d4: 0x6da94820, 0x2b7d5: 0x6da94a20, 0x2b7d6: 0x6da94c20, 0x2b7d7: 0x6dca5020, + 0x2b7d8: 0x6dca5220, 0x2b7d9: 0x6de5e420, 0x2b7da: 0x6e0fba20, 0x2b7db: 0x6e1e9a20, + 0x2b7dc: 0x6c3ab420, 0x2b7dd: 0x6c240220, 0x2b7de: 0x6c240420, 0x2b7df: 0x6c240620, + 0x2b7e0: 0x6c240820, 0x2b7e1: 0x6c3ab820, 0x2b7e2: 0x6c3aba20, 0x2b7e3: 0x6c3abc20, + 0x2b7e4: 0x6c3abe20, 0x2b7e5: 0x6c3ac020, 0x2b7e6: 0x6c3ac220, 0x2b7e7: 0x6c3ac420, + 0x2b7e8: 0x6c3ac620, 0x2b7e9: 0x6c3ac820, 0x2b7ea: 0x6c3aca20, 0x2b7eb: 0x6c569820, + 0x2b7ec: 0x6c569a20, 0x2b7ed: 0x6c569c20, 0x2b7ee: 0x6c569e20, 0x2b7ef: 0x6c56a020, + 0x2b7f0: 0x6c56a220, 0x2b7f1: 0x6c793420, 0x2b7f2: 0x6c793620, 0x2b7f3: 0x6c793820, + 0x2b7f4: 0x6c793a20, 0x2b7f5: 0x6c793c20, 0x2b7f6: 0x6c793e20, 0x2b7f7: 0x6c794020, + 0x2b7f8: 0x6c794220, 0x2b7f9: 0x6ca25420, 0x2b7fa: 0x6ca25620, 0x2b7fb: 0x6ca25820, + 0x2b7fc: 0x6ca25a20, 0x2b7fd: 0x6ca25c20, 0x2b7fe: 0x6ca25e20, 0x2b7ff: 0x6ca26020, + // Block 0xae0, offset 0x2b800 + 0x2b800: 0x6ca26220, 0x2b801: 0x6ccfd820, 0x2b802: 0x6ccfda20, 0x2b803: 0x6ccfdc20, + 0x2b804: 0x6ccfde20, 0x2b805: 0x6ccfe020, 0x2b806: 0x6ccfe220, 0x2b807: 0x6cfdc420, + 0x2b808: 0x6cfdc620, 0x2b809: 0x6cfdc820, 0x2b80a: 0x6cfdca20, 0x2b80b: 0x6cfdcc20, + 0x2b80c: 0x6cfdce20, 0x2b80d: 0x6cfdd020, 0x2b80e: 0x6d2c6c20, 0x2b80f: 0x6d2c6e20, + 0x2b810: 0x6d2c7020, 0x2b811: 0x6d2c7220, 0x2b812: 0x6d2c7420, 0x2b813: 0x6d2c7620, + 0x2b814: 0x6d598820, 0x2b815: 0x6d598a20, 0x2b816: 0x6d598c20, 0x2b817: 0x6d598e20, + 0x2b818: 0x6d599020, 0x2b819: 0x6d599220, 0x2b81a: 0x6d848020, 0x2b81b: 0x6d848220, + 0x2b81c: 0x6d848420, 0x2b81d: 0x6da96420, 0x2b81e: 0x6da96620, 0x2b81f: 0x6da96820, + 0x2b820: 0x6dca5820, 0x2b821: 0x6de60220, 0x2b822: 0x6de60420, 0x2b823: 0x6dfce820, + 0x2b824: 0x6dfcea20, 0x2b825: 0x6dfcec20, 0x2b826: 0x6dfcee20, 0x2b827: 0x6e32d420, + 0x2b828: 0x6c13b620, 0x2b829: 0x6c13b820, 0x2b82a: 0x6c13ba20, 0x2b82b: 0x6c13bc20, + 0x2b82c: 0x6c246c20, 0x2b82d: 0x6c246e20, 0x2b82e: 0x6c247020, 0x2b82f: 0x6c247220, + 0x2b830: 0x6c3b3820, 0x2b831: 0x6c572a20, 0x2b832: 0x6c3b3a20, 0x2b833: 0x6c3b3c20, + 0x2b834: 0x6c3b3e20, 0x2b835: 0x6c3b4020, 0x2b836: 0x6c3b4220, 0x2b837: 0x6c572c20, + 0x2b838: 0x6c79bc20, 0x2b839: 0x6c572e20, 0x2b83a: 0x6c573020, 0x2b83b: 0x6c573220, + 0x2b83c: 0x6c573420, 0x2b83d: 0x6c573620, 0x2b83e: 0x6c573820, 0x2b83f: 0x6c79c220, + // Block 0xae1, offset 0x2b840 + 0x2b840: 0x6c79c420, 0x2b841: 0x6c79c620, 0x2b842: 0x6c79c820, 0x2b843: 0x6c79ca20, + 0x2b844: 0x6c79cc20, 0x2b845: 0x6c79ce20, 0x2b846: 0x6c79d020, 0x2b847: 0x6c79d220, + 0x2b848: 0x6c79d420, 0x2b849: 0x6ca2da20, 0x2b84a: 0x6ca2dc20, 0x2b84b: 0x6ca2de20, + 0x2b84c: 0x6ca2e020, 0x2b84d: 0x6ca2e220, 0x2b84e: 0x6ca2e420, 0x2b84f: 0x6ca2e620, + 0x2b850: 0x6ca2e820, 0x2b851: 0x6cd07620, 0x2b852: 0x6cd07820, 0x2b853: 0x6cd07a20, + 0x2b854: 0x6cd07c20, 0x2b855: 0x6cd07e20, 0x2b856: 0x6cd08020, 0x2b857: 0x6cfe4a20, + 0x2b858: 0x6cd08220, 0x2b859: 0x6cd08420, 0x2b85a: 0x6cd08620, 0x2b85b: 0x6cd08820, + 0x2b85c: 0x6cd08a20, 0x2b85d: 0x6cfe4e20, 0x2b85e: 0x6cfe5020, 0x2b85f: 0x6cfe5220, + 0x2b860: 0x6cfe5420, 0x2b861: 0x6cfe5620, 0x2b862: 0x6cfe5820, 0x2b863: 0x6cfe5a20, + 0x2b864: 0x6cfe5c20, 0x2b865: 0x6cfe5e20, 0x2b866: 0x6cfe6020, 0x2b867: 0x6d2ce220, + 0x2b868: 0x6d2ce420, 0x2b869: 0x6d2ce620, 0x2b86a: 0x6d2ce820, 0x2b86b: 0x6d5a0a20, + 0x2b86c: 0x6d5a0c20, 0x2b86d: 0x6d5a0e20, 0x2b86e: 0x6d5a1020, 0x2b86f: 0x6d5a1220, + 0x2b870: 0x6d5a1420, 0x2b871: 0x6d5a1620, 0x2b872: 0x6d5a1820, 0x2b873: 0x6d5a1a20, + 0x2b874: 0x6d5a1c20, 0x2b875: 0x6d84ce20, 0x2b876: 0x6d84d020, 0x2b877: 0x6d84d220, + 0x2b878: 0x6d84d420, 0x2b879: 0x6da99620, 0x2b87a: 0x6da99820, 0x2b87b: 0x6d84d620, + 0x2b87c: 0x6d84d820, 0x2b87d: 0x6da99e20, 0x2b87e: 0x6dca8420, 0x2b87f: 0x6da9a020, + // Block 0xae2, offset 0x2b880 + 0x2b880: 0x6da9a220, 0x2b881: 0x6da9a420, 0x2b882: 0x6dca8620, 0x2b883: 0x6de62020, + 0x2b884: 0x6de62220, 0x2b885: 0x6de62420, 0x2b886: 0x6de62620, 0x2b887: 0x6dfcfe20, + 0x2b888: 0x6e2a1a20, 0x2b889: 0x6c57c620, 0x2b88a: 0x6c57c820, 0x2b88b: 0x6c7a7420, + 0x2b88c: 0x6c7a7620, 0x2b88d: 0x6ca37c20, 0x2b88e: 0x6ca37e20, 0x2b88f: 0x6cd16020, + 0x2b890: 0x6d2d8620, 0x2b891: 0x6d2d8820, 0x2b892: 0x6d2d8a20, 0x2b893: 0x6d5ab220, + 0x2b894: 0x6d5ab420, 0x2b895: 0x6dcae220, 0x2b896: 0x6e3d7020, 0x2b897: 0x6c24a020, + 0x2b898: 0x6c3bb220, 0x2b899: 0x6c3bb420, 0x2b89a: 0x6c57d620, 0x2b89b: 0x6c57d820, + 0x2b89c: 0x6c7a8620, 0x2b89d: 0x6c7a8820, 0x2b89e: 0x6c7a8a20, 0x2b89f: 0x6c7a8c20, + 0x2b8a0: 0x6c7a8e20, 0x2b8a1: 0x6ca38c20, 0x2b8a2: 0x6ca38e20, 0x2b8a3: 0x6ca39020, + 0x2b8a4: 0x6ca39220, 0x2b8a5: 0x6ca39420, 0x2b8a6: 0x6ca39620, 0x2b8a7: 0x6cd17020, + 0x2b8a8: 0x6cd17220, 0x2b8a9: 0x6cd17420, 0x2b8aa: 0x6cd17620, 0x2b8ab: 0x6cff5220, + 0x2b8ac: 0x6cff5420, 0x2b8ad: 0x6cff5620, 0x2b8ae: 0x6cff5820, 0x2b8af: 0x6cff5a20, + 0x2b8b0: 0x6cff5c20, 0x2b8b1: 0x6cff5e20, 0x2b8b2: 0x6d2d9820, 0x2b8b3: 0x6d2d9a20, + 0x2b8b4: 0x6d2d9c20, 0x2b8b5: 0x6d2d9e20, 0x2b8b6: 0x6d2da020, 0x2b8b7: 0x6d2da220, + 0x2b8b8: 0x6d5ac620, 0x2b8b9: 0x6d5ac820, 0x2b8ba: 0x6d5aca20, 0x2b8bb: 0x6d857220, + 0x2b8bc: 0x6d857420, 0x2b8bd: 0x6d857620, 0x2b8be: 0x6d857820, 0x2b8bf: 0x6daa1220, + // Block 0xae3, offset 0x2b8c0 + 0x2b8c0: 0x6daa1420, 0x2b8c1: 0x6daa1620, 0x2b8c2: 0x6daa1820, 0x2b8c3: 0x6daa1a20, + 0x2b8c4: 0x6daa1c20, 0x2b8c5: 0x6daa1e20, 0x2b8c6: 0x6dcaea20, 0x2b8c7: 0x6dcaec20, + 0x2b8c8: 0x6de66a20, 0x2b8c9: 0x6de66c20, 0x2b8ca: 0x6e1ecc20, 0x2b8cb: 0x6e32e820, + 0x2b8cc: 0x6e392220, 0x2b8cd: 0x6c7aae20, 0x2b8ce: 0x6cff8820, 0x2b8cf: 0x6d2dd220, + 0x2b8d0: 0x6d5af020, 0x2b8d1: 0x6daa3a20, 0x2b8d2: 0x6cd1a220, 0x2b8d3: 0x6d5af620, + 0x2b8d4: 0x6d859a20, 0x2b8d5: 0x6c24b020, 0x2b8d6: 0x6c24b220, 0x2b8d7: 0x6c24b420, + 0x2b8d8: 0x6c581e20, 0x2b8d9: 0x6c582020, 0x2b8da: 0x6c582220, 0x2b8db: 0x6c7aba20, + 0x2b8dc: 0x6c7abc20, 0x2b8dd: 0x6ca3d220, 0x2b8de: 0x6ca3d420, 0x2b8df: 0x6cd1ba20, + 0x2b8e0: 0x6cd1bc20, 0x2b8e1: 0x6cffa220, 0x2b8e2: 0x6cffa420, 0x2b8e3: 0x6cffa620, + 0x2b8e4: 0x6cffa820, 0x2b8e5: 0x6d2de020, 0x2b8e6: 0x6d5afe20, 0x2b8e7: 0x6d5b0020, + 0x2b8e8: 0x6d5b0220, 0x2b8e9: 0x6d859e20, 0x2b8ea: 0x6daa4420, 0x2b8eb: 0x6dcb0a20, + 0x2b8ec: 0x6dcb0c20, 0x2b8ed: 0x6de67e20, 0x2b8ee: 0x6dfd3420, 0x2b8ef: 0x6e2a4020, + 0x2b8f0: 0x6cfff020, 0x2b8f1: 0x6c24d420, 0x2b8f2: 0x6c24d620, 0x2b8f3: 0x6c3c1820, + 0x2b8f4: 0x6c3c1a20, 0x2b8f5: 0x6c3c1c20, 0x2b8f6: 0x6c3c1e20, 0x2b8f7: 0x6c589020, + 0x2b8f8: 0x6c589220, 0x2b8f9: 0x6c589420, 0x2b8fa: 0x6c589620, 0x2b8fb: 0x6c589820, + 0x2b8fc: 0x6c589a20, 0x2b8fd: 0x6c7b1220, 0x2b8fe: 0x6c7b1420, 0x2b8ff: 0x6c7b1620, + // Block 0xae4, offset 0x2b900 + 0x2b900: 0x6c7b1820, 0x2b901: 0x6c7b1a20, 0x2b902: 0x6c7b1c20, 0x2b903: 0x6c7b1e20, + 0x2b904: 0x6c7b2020, 0x2b905: 0x6c7b2220, 0x2b906: 0x6c7b2420, 0x2b907: 0x6c7b2620, + 0x2b908: 0x6c7b2820, 0x2b909: 0x6c7b2a20, 0x2b90a: 0x6ca41c20, 0x2b90b: 0x6ca41e20, + 0x2b90c: 0x6ca42020, 0x2b90d: 0x6ca42220, 0x2b90e: 0x6ca42420, 0x2b90f: 0x6ca42620, + 0x2b910: 0x6ca42820, 0x2b911: 0x6ca42a20, 0x2b912: 0x6ca42c20, 0x2b913: 0x6cd21220, + 0x2b914: 0x6cd21420, 0x2b915: 0x6cd21620, 0x2b916: 0x6cd21820, 0x2b917: 0x6cd21a20, + 0x2b918: 0x6cd21c20, 0x2b919: 0x6cd21e20, 0x2b91a: 0x6cd22020, 0x2b91b: 0x6cd22220, + 0x2b91c: 0x6cd22420, 0x2b91d: 0x6cd22620, 0x2b91e: 0x6cd22820, 0x2b91f: 0x6cd22a20, + 0x2b920: 0x6cd22c20, 0x2b921: 0x6cd22e20, 0x2b922: 0x6cfff620, 0x2b923: 0x6cfff820, + 0x2b924: 0x6cfffa20, 0x2b925: 0x6cfffc20, 0x2b926: 0x6cfffe20, 0x2b927: 0x6d000020, + 0x2b928: 0x6d000220, 0x2b929: 0x6d000420, 0x2b92a: 0x6d2e0820, 0x2b92b: 0x6d2e0a20, + 0x2b92c: 0x6d2e0c20, 0x2b92d: 0x6d2e0e20, 0x2b92e: 0x6d2e1020, 0x2b92f: 0x6d2e1220, + 0x2b930: 0x6d2e1420, 0x2b931: 0x6d2e1620, 0x2b932: 0x6d2e1820, 0x2b933: 0x6d2e1a20, + 0x2b934: 0x6d2e1c20, 0x2b935: 0x6d2e1e20, 0x2b936: 0x6d5b3220, 0x2b937: 0x6d5b3420, + 0x2b938: 0x6d5b3620, 0x2b939: 0x6d5b3820, 0x2b93a: 0x6d5b3a20, 0x2b93b: 0x6d5b3c20, + 0x2b93c: 0x6d5b3e20, 0x2b93d: 0x6d5b4020, 0x2b93e: 0x6d5b4220, 0x2b93f: 0x6d5b4420, + // Block 0xae5, offset 0x2b940 + 0x2b940: 0x6d5b4620, 0x2b941: 0x6d5b4820, 0x2b942: 0x6d85c620, 0x2b943: 0x6d85c820, + 0x2b944: 0x6d85ca20, 0x2b945: 0x6d85cc20, 0x2b946: 0x6d85ce20, 0x2b947: 0x6d85d020, + 0x2b948: 0x6d85d220, 0x2b949: 0x6daa7020, 0x2b94a: 0x6daa7220, 0x2b94b: 0x6dcb2020, + 0x2b94c: 0x6dcb2220, 0x2b94d: 0x6dcb2420, 0x2b94e: 0x6dcb2620, 0x2b94f: 0x6dcb2820, + 0x2b950: 0x6dcb2a20, 0x2b951: 0x6de69620, 0x2b952: 0x6de69820, 0x2b953: 0x6de69a20, + 0x2b954: 0x6dfd4a20, 0x2b955: 0x6e101e20, 0x2b956: 0x6e102020, 0x2b957: 0x6e102220, + 0x2b958: 0x6e1ee820, 0x2b959: 0x6e2a4820, 0x2b95a: 0x6e32ee20, 0x2b95b: 0x6e32f020, + 0x2b95c: 0x6e42c820, 0x2b95d: 0x6c24f820, 0x2b95e: 0x6c590c20, 0x2b95f: 0x6c7baa20, + 0x2b960: 0x6ca48e20, 0x2b961: 0x6ca49020, 0x2b962: 0x6d00ba20, 0x2b963: 0x6d2ea820, + 0x2b964: 0x6d2eaa20, 0x2b965: 0x6d5bdc20, 0x2b966: 0x6d865220, 0x2b967: 0x6de6dc20, + 0x2b968: 0x6e104420, 0x2b969: 0x6e393020, 0x2b96a: 0x6c3c5420, 0x2b96b: 0x6c593a20, + 0x2b96c: 0x6c593c20, 0x2b96d: 0x6c7bd420, 0x2b96e: 0x6c7bd620, 0x2b96f: 0x6ca4a820, + 0x2b970: 0x6ca4aa20, 0x2b971: 0x6cd2ee20, 0x2b972: 0x6d00e420, 0x2b973: 0x6d00e620, + 0x2b974: 0x6d2ec820, 0x2b975: 0x6d2eca20, 0x2b976: 0x6d5bf820, 0x2b977: 0x6d5bfa20, + 0x2b978: 0x6d866420, 0x2b979: 0x6dcb9220, 0x2b97a: 0x6dfd8020, 0x2b97b: 0x6c3c6620, + 0x2b97c: 0x6c594e20, 0x2b97d: 0x6c595020, 0x2b97e: 0x6c7bf020, 0x2b97f: 0x6c7bf220, + // Block 0xae6, offset 0x2b980 + 0x2b980: 0x6c7bf420, 0x2b981: 0x6ca4be20, 0x2b982: 0x6ca4c020, 0x2b983: 0x6cd30a20, + 0x2b984: 0x6d010820, 0x2b985: 0x6d010a20, 0x2b986: 0x6d2ef220, 0x2b987: 0x6d867e20, + 0x2b988: 0x6d868020, 0x2b989: 0x6dab1e20, 0x2b98a: 0x6de6fa20, 0x2b98b: 0x6e105420, + 0x2b98c: 0x6e1f0820, 0x2b98d: 0x6e443e20, 0x2b98e: 0x6c251420, 0x2b98f: 0x6c251620, + 0x2b990: 0x6c3c7620, 0x2b991: 0x6c3c7820, 0x2b992: 0x6c3c7a20, 0x2b993: 0x6c3c7c20, + 0x2b994: 0x6c3c7e20, 0x2b995: 0x6c597420, 0x2b996: 0x6c597620, 0x2b997: 0x6c597820, + 0x2b998: 0x6c597a20, 0x2b999: 0x6c597c20, 0x2b99a: 0x6c597e20, 0x2b99b: 0x6c598020, + 0x2b99c: 0x6c598220, 0x2b99d: 0x6c598420, 0x2b99e: 0x6c598620, 0x2b99f: 0x6c7c2e20, + 0x2b9a0: 0x6c7c3020, 0x2b9a1: 0x6c7c3220, 0x2b9a2: 0x6c7c3420, 0x2b9a3: 0x6c7c3620, + 0x2b9a4: 0x6c7c3820, 0x2b9a5: 0x6c7c3a20, 0x2b9a6: 0x6c7c3c20, 0x2b9a7: 0x6ca4f220, + 0x2b9a8: 0x6ca4f420, 0x2b9a9: 0x6ca4f620, 0x2b9aa: 0x6ca4f820, 0x2b9ab: 0x6ca4fa20, + 0x2b9ac: 0x6ca4fc20, 0x2b9ad: 0x6ca4fe20, 0x2b9ae: 0x6ca50020, 0x2b9af: 0x6cd32c20, + 0x2b9b0: 0x6cd32e20, 0x2b9b1: 0x6cd33020, 0x2b9b2: 0x6cd33220, 0x2b9b3: 0x6cd33420, + 0x2b9b4: 0x6cd33620, 0x2b9b5: 0x6cd33820, 0x2b9b6: 0x6cd33a20, 0x2b9b7: 0x6cd33c20, + 0x2b9b8: 0x6cd33e20, 0x2b9b9: 0x6cd34020, 0x2b9ba: 0x6cd34220, 0x2b9bb: 0x6cd34420, + 0x2b9bc: 0x6cd34620, 0x2b9bd: 0x6cd34820, 0x2b9be: 0x6cd34a20, 0x2b9bf: 0x6cd34c20, + // Block 0xae7, offset 0x2b9c0 + 0x2b9c0: 0x6cd34e20, 0x2b9c1: 0x6d013020, 0x2b9c2: 0x6d013220, 0x2b9c3: 0x6d013420, + 0x2b9c4: 0x6d013620, 0x2b9c5: 0x6d013820, 0x2b9c6: 0x6d013a20, 0x2b9c7: 0x6d013c20, + 0x2b9c8: 0x6d013e20, 0x2b9c9: 0x6d014020, 0x2b9ca: 0x6d2f0820, 0x2b9cb: 0x6d2f0a20, + 0x2b9cc: 0x6d2f0c20, 0x2b9cd: 0x6d2f0e20, 0x2b9ce: 0x6d2f1020, 0x2b9cf: 0x6d2f1220, + 0x2b9d0: 0x6d2f1420, 0x2b9d1: 0x6d2f1620, 0x2b9d2: 0x6d2f1820, 0x2b9d3: 0x6d2f1a20, + 0x2b9d4: 0x6d2f1c20, 0x2b9d5: 0x6d2f1e20, 0x2b9d6: 0x6d2f2020, 0x2b9d7: 0x6d5c2820, + 0x2b9d8: 0x6d5c2a20, 0x2b9d9: 0x6d5c2c20, 0x2b9da: 0x6d5c2e20, 0x2b9db: 0x6d5c3020, + 0x2b9dc: 0x6d5c3220, 0x2b9dd: 0x6d5c3420, 0x2b9de: 0x6d5c3620, 0x2b9df: 0x6d5c3820, + 0x2b9e0: 0x6d5c3a20, 0x2b9e1: 0x6d5c3c20, 0x2b9e2: 0x6d86ae20, 0x2b9e3: 0x6d86b020, + 0x2b9e4: 0x6d86b220, 0x2b9e5: 0x6d86b420, 0x2b9e6: 0x6d86b620, 0x2b9e7: 0x6d86b820, + 0x2b9e8: 0x6d86ba20, 0x2b9e9: 0x6d86bc20, 0x2b9ea: 0x6d86be20, 0x2b9eb: 0x6dab4e20, + 0x2b9ec: 0x6dab5020, 0x2b9ed: 0x6dab5220, 0x2b9ee: 0x6dab5420, 0x2b9ef: 0x6dab5620, + 0x2b9f0: 0x6dab5820, 0x2b9f1: 0x6dab5a20, 0x2b9f2: 0x6dab5c20, 0x2b9f3: 0x6dab5e20, + 0x2b9f4: 0x6dcbbe20, 0x2b9f5: 0x6dcbc020, 0x2b9f6: 0x6dcbc220, 0x2b9f7: 0x6dcbc420, + 0x2b9f8: 0x6dcbc620, 0x2b9f9: 0x6dcbc820, 0x2b9fa: 0x6dcbca20, 0x2b9fb: 0x6dfda620, + 0x2b9fc: 0x6dfda820, 0x2b9fd: 0x6dfdaa20, 0x2b9fe: 0x6dfdac20, 0x2b9ff: 0x6e105c20, + // Block 0xae8, offset 0x2ba00 + 0x2ba00: 0x6e105e20, 0x2ba01: 0x6e1f1620, 0x2ba02: 0x6e2a6820, 0x2ba03: 0x6e2a6a20, + 0x2ba04: 0x6e393820, 0x2ba05: 0x6e452e20, 0x2ba06: 0x6c3cb220, 0x2ba07: 0x6c5a1a20, + 0x2ba08: 0x6ca59420, 0x2ba09: 0x6d2fce20, 0x2ba0a: 0x6dabea20, 0x2ba0b: 0x6dabec20, + 0x2ba0c: 0x6dabee20, 0x2ba0d: 0x6dfde020, 0x2ba0e: 0x6e332220, 0x2ba0f: 0x6c7ce420, + 0x2ba10: 0x6c7ce620, 0x2ba11: 0x6c7cfc20, 0x2ba12: 0x6ca59c20, 0x2ba13: 0x6cd40a20, + 0x2ba14: 0x6d020620, 0x2ba15: 0x6d2fe820, 0x2ba16: 0x6c13ee20, 0x2ba17: 0x6c253820, + 0x2ba18: 0x6c3cbc20, 0x2ba19: 0x6c3cbe20, 0x2ba1a: 0x6c5a3c20, 0x2ba1b: 0x6c5a3e20, + 0x2ba1c: 0x6c5a4020, 0x2ba1d: 0x6c5a4220, 0x2ba1e: 0x6c5a4420, 0x2ba1f: 0x6c7cfe20, + 0x2ba20: 0x6c7d0020, 0x2ba21: 0x6c7d0220, 0x2ba22: 0x6c7d0420, 0x2ba23: 0x6c7d0620, + 0x2ba24: 0x6c7d0820, 0x2ba25: 0x6c7d0a20, 0x2ba26: 0x6c7d0c20, 0x2ba27: 0x6c7d0e20, + 0x2ba28: 0x6c7d1020, 0x2ba29: 0x6ca5d020, 0x2ba2a: 0x6ca5d220, 0x2ba2b: 0x6ca5d420, + 0x2ba2c: 0x6ca5d620, 0x2ba2d: 0x6ca5d820, 0x2ba2e: 0x6ca5da20, 0x2ba2f: 0x6ca5dc20, + 0x2ba30: 0x6cd42620, 0x2ba31: 0x6cd42820, 0x2ba32: 0x6cd42a20, 0x2ba33: 0x6cd42c20, + 0x2ba34: 0x6cd42e20, 0x2ba35: 0x6cd43020, 0x2ba36: 0x6cd43220, 0x2ba37: 0x6d023020, + 0x2ba38: 0x6d023220, 0x2ba39: 0x6d023420, 0x2ba3a: 0x6d023620, 0x2ba3b: 0x6d023820, + 0x2ba3c: 0x6d023a20, 0x2ba3d: 0x6d023c20, 0x2ba3e: 0x6d023e20, 0x2ba3f: 0x6d024020, + // Block 0xae9, offset 0x2ba40 + 0x2ba40: 0x6d024220, 0x2ba41: 0x6d024420, 0x2ba42: 0x6d024620, 0x2ba43: 0x6d024820, + 0x2ba44: 0x6d024a20, 0x2ba45: 0x6d024c20, 0x2ba46: 0x6d024e20, 0x2ba47: 0x6d025020, + 0x2ba48: 0x6d2ffc20, 0x2ba49: 0x6d2ffe20, 0x2ba4a: 0x6d300020, 0x2ba4b: 0x6d300220, + 0x2ba4c: 0x6d300420, 0x2ba4d: 0x6d300620, 0x2ba4e: 0x6d300820, 0x2ba4f: 0x6d300a20, + 0x2ba50: 0x6d300c20, 0x2ba51: 0x6d5cf820, 0x2ba52: 0x6d5cfa20, 0x2ba53: 0x6d5cfc20, + 0x2ba54: 0x6d5cfe20, 0x2ba55: 0x6d5d0020, 0x2ba56: 0x6d5d0220, 0x2ba57: 0x6d5d0420, + 0x2ba58: 0x6d876a20, 0x2ba59: 0x6d876c20, 0x2ba5a: 0x6d876e20, 0x2ba5b: 0x6d877020, + 0x2ba5c: 0x6d877220, 0x2ba5d: 0x6d877420, 0x2ba5e: 0x6d877620, 0x2ba5f: 0x6dac0a20, + 0x2ba60: 0x6d877820, 0x2ba61: 0x6dac0c20, 0x2ba62: 0x6dac0e20, 0x2ba63: 0x6dac1020, + 0x2ba64: 0x6dac1220, 0x2ba65: 0x6dac1420, 0x2ba66: 0x6dac1620, 0x2ba67: 0x6dac1820, + 0x2ba68: 0x6dac1a20, 0x2ba69: 0x6dcc4220, 0x2ba6a: 0x6dcc4420, 0x2ba6b: 0x6dcc4620, + 0x2ba6c: 0x6dcc4820, 0x2ba6d: 0x6dcc4a20, 0x2ba6e: 0x6dcc4c20, 0x2ba6f: 0x6dcc4e20, + 0x2ba70: 0x6de76a20, 0x2ba71: 0x6dfdec20, 0x2ba72: 0x6dfdee20, 0x2ba73: 0x6dfdf020, + 0x2ba74: 0x6e108c20, 0x2ba75: 0x6e108e20, 0x2ba76: 0x6e109020, 0x2ba77: 0x6e109220, + 0x2ba78: 0x6e1f3420, 0x2ba79: 0x6e1f3620, 0x2ba7a: 0x6e332420, 0x2ba7b: 0x6e3d9620, + 0x2ba7c: 0x6c254c20, 0x2ba7d: 0x6c5abe20, 0x2ba7e: 0x6c5ac020, 0x2ba7f: 0x6c5ac220, + // Block 0xaea, offset 0x2ba80 + 0x2ba80: 0x6c5ac420, 0x2ba81: 0x6c7dbe20, 0x2ba82: 0x6c7dc020, 0x2ba83: 0x6c7dc220, + 0x2ba84: 0x6ca68c20, 0x2ba85: 0x6ca68e20, 0x2ba86: 0x6ca69020, 0x2ba87: 0x6cd4b820, + 0x2ba88: 0x6cd4ba20, 0x2ba89: 0x6cd4bc20, 0x2ba8a: 0x6cd4be20, 0x2ba8b: 0x6d030820, + 0x2ba8c: 0x6d030a20, 0x2ba8d: 0x6d030c20, 0x2ba8e: 0x6d030e20, 0x2ba8f: 0x6d031020, + 0x2ba90: 0x6d031220, 0x2ba91: 0x6d031420, 0x2ba92: 0x6d031620, 0x2ba93: 0x6d30b420, + 0x2ba94: 0x6d30b620, 0x2ba95: 0x6d30b820, 0x2ba96: 0x6d30ba20, 0x2ba97: 0x6d30bc20, + 0x2ba98: 0x6d5d8820, 0x2ba99: 0x6d5d8a20, 0x2ba9a: 0x6d87f420, 0x2ba9b: 0x6d87f620, + 0x2ba9c: 0x6d87f820, 0x2ba9d: 0x6d87fa20, 0x2ba9e: 0x6d87fc20, 0x2ba9f: 0x6dac9e20, + 0x2baa0: 0x6dcca020, 0x2baa1: 0x6dcca220, 0x2baa2: 0x6de7aa20, 0x2baa3: 0x6dfe3820, + 0x2baa4: 0x6e10bc20, 0x2baa5: 0x6e444820, 0x2baa6: 0x6c256420, 0x2baa7: 0x6c256620, + 0x2baa8: 0x6c3d2e20, 0x2baa9: 0x6c3d3020, 0x2baaa: 0x6c3d3220, 0x2baab: 0x6c3d3420, + 0x2baac: 0x6c3d3620, 0x2baad: 0x6c3d3820, 0x2baae: 0x6c5b2e20, 0x2baaf: 0x6c5b3020, + 0x2bab0: 0x6c5b3220, 0x2bab1: 0x6c5b3420, 0x2bab2: 0x6c5b3620, 0x2bab3: 0x6c5b3820, + 0x2bab4: 0x6c5b3a20, 0x2bab5: 0x6c5b3c20, 0x2bab6: 0x6c7e3020, 0x2bab7: 0x6c7e3220, + 0x2bab8: 0x6c7e3420, 0x2bab9: 0x6c7e3620, 0x2baba: 0x6ca6f820, 0x2babb: 0x6ca6fa20, + 0x2babc: 0x6ca6fc20, 0x2babd: 0x6ca6fe20, 0x2babe: 0x6ca70020, 0x2babf: 0x6ca70220, + // Block 0xaeb, offset 0x2bac0 + 0x2bac0: 0x6ca70420, 0x2bac1: 0x6ca70620, 0x2bac2: 0x6ca70820, 0x2bac3: 0x6ca70a20, + 0x2bac4: 0x6ca70c20, 0x2bac5: 0x6ca70e20, 0x2bac6: 0x6ca71020, 0x2bac7: 0x6ca71220, + 0x2bac8: 0x6ca71420, 0x2bac9: 0x6ca71620, 0x2baca: 0x6ca71820, 0x2bacb: 0x6cd52e20, + 0x2bacc: 0x6cd53020, 0x2bacd: 0x6cd53220, 0x2bace: 0x6cd53420, 0x2bacf: 0x6cd53620, + 0x2bad0: 0x6cd53820, 0x2bad1: 0x6cd53a20, 0x2bad2: 0x6cd53c20, 0x2bad3: 0x6cd53e20, + 0x2bad4: 0x6d037c20, 0x2bad5: 0x6d037e20, 0x2bad6: 0x6d038020, 0x2bad7: 0x6d038220, + 0x2bad8: 0x6d038420, 0x2bad9: 0x6d038620, 0x2bada: 0x6d038820, 0x2badb: 0x6d038a20, + 0x2badc: 0x6d038c20, 0x2badd: 0x6d038e20, 0x2bade: 0x6d039020, 0x2badf: 0x6d039220, + 0x2bae0: 0x6d311a20, 0x2bae1: 0x6d311c20, 0x2bae2: 0x6d311e20, 0x2bae3: 0x6d312020, + 0x2bae4: 0x6d312220, 0x2bae5: 0x6d312420, 0x2bae6: 0x6d312620, 0x2bae7: 0x6d312820, + 0x2bae8: 0x6d312a20, 0x2bae9: 0x6d312c20, 0x2baea: 0x6d312e20, 0x2baeb: 0x6d313020, + 0x2baec: 0x6d5dd820, 0x2baed: 0x6d5dda20, 0x2baee: 0x6d5ddc20, 0x2baef: 0x6d5dde20, + 0x2baf0: 0x6d5de020, 0x2baf1: 0x6d5de220, 0x2baf2: 0x6d5de420, 0x2baf3: 0x6d5de620, + 0x2baf4: 0x6d5de820, 0x2baf5: 0x6d5dea20, 0x2baf6: 0x6d5dec20, 0x2baf7: 0x6d883420, + 0x2baf8: 0x6d883620, 0x2baf9: 0x6d883820, 0x2bafa: 0x6d883a20, 0x2bafb: 0x6d883c20, + 0x2bafc: 0x6d883e20, 0x2bafd: 0x6d884020, 0x2bafe: 0x6dacce20, 0x2baff: 0x6dacd020, + // Block 0xaec, offset 0x2bb00 + 0x2bb00: 0x6dacd220, 0x2bb01: 0x6dccc020, 0x2bb02: 0x6dccc220, 0x2bb03: 0x6dccc420, + 0x2bb04: 0x6dccc620, 0x2bb05: 0x6dccc820, 0x2bb06: 0x6dccca20, 0x2bb07: 0x6dcccc20, + 0x2bb08: 0x6dfe4620, 0x2bb09: 0x6dfe4820, 0x2bb0a: 0x6e10ca20, 0x2bb0b: 0x6e10cc20, + 0x2bb0c: 0x6e10ce20, 0x2bb0d: 0x6e10d020, 0x2bb0e: 0x6e1f6620, 0x2bb0f: 0x6e1f6820, + 0x2bb10: 0x6e453020, 0x2bb11: 0x6c257a20, 0x2bb12: 0x6c3d6820, 0x2bb13: 0x6c5b9220, + 0x2bb14: 0x6c5b9420, 0x2bb15: 0x6c5b9620, 0x2bb16: 0x6c5b9820, 0x2bb17: 0x6c7ea620, + 0x2bb18: 0x6c7ea820, 0x2bb19: 0x6c7eaa20, 0x2bb1a: 0x6ca77820, 0x2bb1b: 0x6ca77a20, + 0x2bb1c: 0x6ca77c20, 0x2bb1d: 0x6ca77e20, 0x2bb1e: 0x6ca78020, 0x2bb1f: 0x6ca78220, + 0x2bb20: 0x6ca78420, 0x2bb21: 0x6cd5a220, 0x2bb22: 0x6cd5a420, 0x2bb23: 0x6cd5a620, + 0x2bb24: 0x6cd5a820, 0x2bb25: 0x6cd5aa20, 0x2bb26: 0x6d042a20, 0x2bb27: 0x6d042c20, + 0x2bb28: 0x6d042e20, 0x2bb29: 0x6d043020, 0x2bb2a: 0x6d31c420, 0x2bb2b: 0x6d31c620, + 0x2bb2c: 0x6d5e6a20, 0x2bb2d: 0x6d5e6c20, 0x2bb2e: 0x6d5e6e20, 0x2bb2f: 0x6d88bc20, + 0x2bb30: 0x6d88be20, 0x2bb31: 0x6d88c020, 0x2bb32: 0x6d88c220, 0x2bb33: 0x6d88c420, + 0x2bb34: 0x6d88c620, 0x2bb35: 0x6dad4220, 0x2bb36: 0x6dad4420, 0x2bb37: 0x6dad4620, + 0x2bb38: 0x6dad4820, 0x2bb39: 0x6dad4a20, 0x2bb3a: 0x6dad4c20, 0x2bb3b: 0x6dad4e20, + 0x2bb3c: 0x6dcd1c20, 0x2bb3d: 0x6dcd1e20, 0x2bb3e: 0x6de7f220, 0x2bb3f: 0x6de7f420, + // Block 0xaed, offset 0x2bb40 + 0x2bb40: 0x6dfe8420, 0x2bb41: 0x6e1f7620, 0x2bb42: 0x6c140e20, 0x2bb43: 0x6c3d8c20, + 0x2bb44: 0x6c3d8e20, 0x2bb45: 0x6c5bd220, 0x2bb46: 0x6c5bd420, 0x2bb47: 0x6c7ef620, + 0x2bb48: 0x6c7ef820, 0x2bb49: 0x6c7efa20, 0x2bb4a: 0x6c7efc20, 0x2bb4b: 0x6ca7c620, + 0x2bb4c: 0x6cd60a20, 0x2bb4d: 0x6cd60c20, 0x2bb4e: 0x6d048620, 0x2bb4f: 0x6d048820, + 0x2bb50: 0x6d048a20, 0x2bb51: 0x6d048c20, 0x2bb52: 0x6d892020, 0x2bb53: 0x6dad8820, + 0x2bb54: 0x6dcd3820, 0x2bb55: 0x6de80620, 0x2bb56: 0x6c5bf620, 0x2bb57: 0x6c7f3220, + 0x2bb58: 0x6c7f3420, 0x2bb59: 0x6c7f3620, 0x2bb5a: 0x6c7f3820, 0x2bb5b: 0x6c7f3a20, + 0x2bb5c: 0x6c7f3c20, 0x2bb5d: 0x6c7f3e20, 0x2bb5e: 0x6ca7e820, 0x2bb5f: 0x6ca7ea20, + 0x2bb60: 0x6ca7ec20, 0x2bb61: 0x6ca7ee20, 0x2bb62: 0x6ca7f020, 0x2bb63: 0x6ca7f220, + 0x2bb64: 0x6ca7f420, 0x2bb65: 0x6ca7f620, 0x2bb66: 0x6ca7f820, 0x2bb67: 0x6cd63620, + 0x2bb68: 0x6cd63820, 0x2bb69: 0x6cd63a20, 0x2bb6a: 0x6cd63c20, 0x2bb6b: 0x6cd63e20, + 0x2bb6c: 0x6cd64020, 0x2bb6d: 0x6cd64220, 0x2bb6e: 0x6cd64420, 0x2bb6f: 0x6cd64620, + 0x2bb70: 0x6cd64820, 0x2bb71: 0x6cd64a20, 0x2bb72: 0x6cd64c20, 0x2bb73: 0x6cd64e20, + 0x2bb74: 0x6cd65020, 0x2bb75: 0x6d04b620, 0x2bb76: 0x6d04b820, 0x2bb77: 0x6d04ba20, + 0x2bb78: 0x6d04bc20, 0x2bb79: 0x6d04be20, 0x2bb7a: 0x6d04c020, 0x2bb7b: 0x6d04c220, + 0x2bb7c: 0x6d04c420, 0x2bb7d: 0x6d04c620, 0x2bb7e: 0x6d04c820, 0x2bb7f: 0x6d04ca20, + // Block 0xaee, offset 0x2bb80 + 0x2bb80: 0x6d04cc20, 0x2bb81: 0x6d323220, 0x2bb82: 0x6d323420, 0x2bb83: 0x6d323620, + 0x2bb84: 0x6d323820, 0x2bb85: 0x6d323a20, 0x2bb86: 0x6d323c20, 0x2bb87: 0x6d323e20, + 0x2bb88: 0x6d324020, 0x2bb89: 0x6d324220, 0x2bb8a: 0x6d324420, 0x2bb8b: 0x6d324620, + 0x2bb8c: 0x6d324820, 0x2bb8d: 0x6d324a20, 0x2bb8e: 0x6d5ecc20, 0x2bb8f: 0x6d5ece20, + 0x2bb90: 0x6d5ed020, 0x2bb91: 0x6d5ed220, 0x2bb92: 0x6d5ed420, 0x2bb93: 0x6d5ed620, + 0x2bb94: 0x6d5ed820, 0x2bb95: 0x6d5eda20, 0x2bb96: 0x6d5edc20, 0x2bb97: 0x6d5ede20, + 0x2bb98: 0x6d5ee020, 0x2bb99: 0x6d5ee220, 0x2bb9a: 0x6d5ee420, 0x2bb9b: 0x6d5ee620, + 0x2bb9c: 0x6d5ee820, 0x2bb9d: 0x6d5eea20, 0x2bb9e: 0x6d5eec20, 0x2bb9f: 0x6d5eee20, + 0x2bba0: 0x6d5ef020, 0x2bba1: 0x6d5ef220, 0x2bba2: 0x6d5ef420, 0x2bba3: 0x6d5ef620, + 0x2bba4: 0x6d5ef820, 0x2bba5: 0x6d5efa20, 0x2bba6: 0x6d5efc20, 0x2bba7: 0x6d5efe20, + 0x2bba8: 0x6d5f0020, 0x2bba9: 0x6d5f0220, 0x2bbaa: 0x6d892e20, 0x2bbab: 0x6d893020, + 0x2bbac: 0x6d893220, 0x2bbad: 0x6d893420, 0x2bbae: 0x6d893620, 0x2bbaf: 0x6d893820, + 0x2bbb0: 0x6d893a20, 0x2bbb1: 0x6d893c20, 0x2bbb2: 0x6d893e20, 0x2bbb3: 0x6d894020, + 0x2bbb4: 0x6d894220, 0x2bbb5: 0x6d894420, 0x2bbb6: 0x6d894620, 0x2bbb7: 0x6d894820, + 0x2bbb8: 0x6dada820, 0x2bbb9: 0x6dadaa20, 0x2bbba: 0x6dadac20, 0x2bbbb: 0x6dadae20, + 0x2bbbc: 0x6dadb020, 0x2bbbd: 0x6dadb220, 0x2bbbe: 0x6dadb420, 0x2bbbf: 0x6dadb620, + // Block 0xaef, offset 0x2bbc0 + 0x2bbc0: 0x6dadb820, 0x2bbc1: 0x6dadba20, 0x2bbc2: 0x6dadbc20, 0x2bbc3: 0x6dadbe20, + 0x2bbc4: 0x6dadc020, 0x2bbc5: 0x6dadc220, 0x2bbc6: 0x6dadc420, 0x2bbc7: 0x6dadc620, + 0x2bbc8: 0x6dcd4c20, 0x2bbc9: 0x6dcd4e20, 0x2bbca: 0x6dcd5020, 0x2bbcb: 0x6dcd5220, + 0x2bbcc: 0x6dcd5420, 0x2bbcd: 0x6dcd5620, 0x2bbce: 0x6dcd5820, 0x2bbcf: 0x6de81420, + 0x2bbd0: 0x6dcd5a20, 0x2bbd1: 0x6dcd5c20, 0x2bbd2: 0x6dcd5e20, 0x2bbd3: 0x6dcd6020, + 0x2bbd4: 0x6dcd6220, 0x2bbd5: 0x6dcd6420, 0x2bbd6: 0x6dcd6620, 0x2bbd7: 0x6dcd6820, + 0x2bbd8: 0x6dcd6a20, 0x2bbd9: 0x6dcd6c20, 0x2bbda: 0x6dcd6e20, 0x2bbdb: 0x6de81620, + 0x2bbdc: 0x6de81820, 0x2bbdd: 0x6de81a20, 0x2bbde: 0x6de81c20, 0x2bbdf: 0x6de81e20, + 0x2bbe0: 0x6de82020, 0x2bbe1: 0x6de82220, 0x2bbe2: 0x6de82420, 0x2bbe3: 0x6dcd7020, + 0x2bbe4: 0x6de82620, 0x2bbe5: 0x6dfeaa20, 0x2bbe6: 0x6e110820, 0x2bbe7: 0x6e110a20, + 0x2bbe8: 0x6e110c20, 0x2bbe9: 0x6e110e20, 0x2bbea: 0x6e111020, 0x2bbeb: 0x6e111220, + 0x2bbec: 0x6e111420, 0x2bbed: 0x6e111620, 0x2bbee: 0x6e1f8620, 0x2bbef: 0x6e1f8820, + 0x2bbf0: 0x6e1f8a20, 0x2bbf1: 0x6e1f8c20, 0x2bbf2: 0x6e2ac620, 0x2bbf3: 0x6e2ac820, + 0x2bbf4: 0x6e2aca20, 0x2bbf5: 0x6e2e7820, 0x2bbf6: 0x6e335220, 0x2bbf7: 0x6e3dac20, + 0x2bbf8: 0x6e408e20, 0x2bbf9: 0x6e453220, 0x2bbfa: 0x6c5c2e20, 0x2bbfb: 0x6c7faa20, + 0x2bbfc: 0x6c7fac20, 0x2bbfd: 0x6ca89220, 0x2bbfe: 0x6ca89420, 0x2bbff: 0x6ca89620, + // Block 0xaf0, offset 0x2bc00 + 0x2bc00: 0x6ca89820, 0x2bc01: 0x6cd6e020, 0x2bc02: 0x6cd6e220, 0x2bc03: 0x6cd6e420, + 0x2bc04: 0x6cd6e620, 0x2bc05: 0x6cd6e820, 0x2bc06: 0x6cd6ea20, 0x2bc07: 0x6d059820, + 0x2bc08: 0x6d059a20, 0x2bc09: 0x6d059c20, 0x2bc0a: 0x6d059e20, 0x2bc0b: 0x6d05a020, + 0x2bc0c: 0x6d05a220, 0x2bc0d: 0x6d333820, 0x2bc0e: 0x6d333a20, 0x2bc0f: 0x6d333c20, + 0x2bc10: 0x6d333e20, 0x2bc11: 0x6d334020, 0x2bc12: 0x6d334220, 0x2bc13: 0x6d5fee20, + 0x2bc14: 0x6d5ff020, 0x2bc15: 0x6d5ff220, 0x2bc16: 0x6d5ff420, 0x2bc17: 0x6d5ff620, + 0x2bc18: 0x6d5ff820, 0x2bc19: 0x6d5ffa20, 0x2bc1a: 0x6d8a5220, 0x2bc1b: 0x6d8a5420, + 0x2bc1c: 0x6daec620, 0x2bc1d: 0x6daec820, 0x2bc1e: 0x6daeca20, 0x2bc1f: 0x6daecc20, + 0x2bc20: 0x6daece20, 0x2bc21: 0x6daed020, 0x2bc22: 0x6daed220, 0x2bc23: 0x6dce6420, + 0x2bc24: 0x6dce6620, 0x2bc25: 0x6dce6820, 0x2bc26: 0x6dce6a20, 0x2bc27: 0x6dce6c20, + 0x2bc28: 0x6dce6e20, 0x2bc29: 0x6dce7020, 0x2bc2a: 0x6de8c220, 0x2bc2b: 0x6de8c420, + 0x2bc2c: 0x6de8c620, 0x2bc2d: 0x6dff1c20, 0x2bc2e: 0x6dff1e20, 0x2bc2f: 0x6e118a20, + 0x2bc30: 0x6e1fe220, 0x2bc31: 0x6e2b0420, 0x2bc32: 0x6e2b0620, 0x2bc33: 0x6e398420, + 0x2bc34: 0x6e398620, 0x2bc35: 0x6c3dba20, 0x2bc36: 0x6c5c5e20, 0x2bc37: 0x6c5c6020, + 0x2bc38: 0x6c5c6220, 0x2bc39: 0x6c5c6420, 0x2bc3a: 0x6c7fee20, 0x2bc3b: 0x6c7ff020, + 0x2bc3c: 0x6c7ff220, 0x2bc3d: 0x6c7ff420, 0x2bc3e: 0x6c7ff620, 0x2bc3f: 0x6c7ff820, + // Block 0xaf1, offset 0x2bc40 + 0x2bc40: 0x6c7ffa20, 0x2bc41: 0x6c7ffc20, 0x2bc42: 0x6c7ffe20, 0x2bc43: 0x6c800020, + 0x2bc44: 0x6c800220, 0x2bc45: 0x6c800420, 0x2bc46: 0x6c800620, 0x2bc47: 0x6c800820, + 0x2bc48: 0x6ca8f220, 0x2bc49: 0x6ca8f420, 0x2bc4a: 0x6ca8f620, 0x2bc4b: 0x6ca8f820, + 0x2bc4c: 0x6ca8fa20, 0x2bc4d: 0x6ca8fc20, 0x2bc4e: 0x6ca8fe20, 0x2bc4f: 0x6ca90020, + 0x2bc50: 0x6ca90220, 0x2bc51: 0x6ca90420, 0x2bc52: 0x6ca90620, 0x2bc53: 0x6ca90820, + 0x2bc54: 0x6ca90a20, 0x2bc55: 0x6cd74620, 0x2bc56: 0x6cd74820, 0x2bc57: 0x6cd74a20, + 0x2bc58: 0x6cd74c20, 0x2bc59: 0x6cd74e20, 0x2bc5a: 0x6cd75020, 0x2bc5b: 0x6cd75220, + 0x2bc5c: 0x6cd75420, 0x2bc5d: 0x6cd75620, 0x2bc5e: 0x6cd75820, 0x2bc5f: 0x6d060420, + 0x2bc60: 0x6d060620, 0x2bc61: 0x6d060820, 0x2bc62: 0x6d060a20, 0x2bc63: 0x6d060c20, + 0x2bc64: 0x6d060e20, 0x2bc65: 0x6d061020, 0x2bc66: 0x6d061220, 0x2bc67: 0x6d33b820, + 0x2bc68: 0x6d33ba20, 0x2bc69: 0x6d33bc20, 0x2bc6a: 0x6d33be20, 0x2bc6b: 0x6d33c020, + 0x2bc6c: 0x6d33c220, 0x2bc6d: 0x6d33c420, 0x2bc6e: 0x6d33c620, 0x2bc6f: 0x6d33c820, + 0x2bc70: 0x6d33ca20, 0x2bc71: 0x6d33cc20, 0x2bc72: 0x6d33ce20, 0x2bc73: 0x6d606420, + 0x2bc74: 0x6d606620, 0x2bc75: 0x6d606820, 0x2bc76: 0x6d606a20, 0x2bc77: 0x6d606c20, + 0x2bc78: 0x6d606e20, 0x2bc79: 0x6d607020, 0x2bc7a: 0x6d607220, 0x2bc7b: 0x6d607420, + 0x2bc7c: 0x6d607620, 0x2bc7d: 0x6d607820, 0x2bc7e: 0x6d607a20, 0x2bc7f: 0x6d607c20, + // Block 0xaf2, offset 0x2bc80 + 0x2bc80: 0x6d607e20, 0x2bc81: 0x6d608020, 0x2bc82: 0x6d608220, 0x2bc83: 0x6d608420, + 0x2bc84: 0x6d608620, 0x2bc85: 0x6d8aac20, 0x2bc86: 0x6d8aae20, 0x2bc87: 0x6d8ab020, + 0x2bc88: 0x6d8ab220, 0x2bc89: 0x6d8ab420, 0x2bc8a: 0x6d8ab620, 0x2bc8b: 0x6d8ab820, + 0x2bc8c: 0x6daf2020, 0x2bc8d: 0x6daf2220, 0x2bc8e: 0x6daf2420, 0x2bc8f: 0x6daf2620, + 0x2bc90: 0x6daf2820, 0x2bc91: 0x6daf2a20, 0x2bc92: 0x6daf2c20, 0x2bc93: 0x6daf2e20, + 0x2bc94: 0x6daf3020, 0x2bc95: 0x6daf3220, 0x2bc96: 0x6dcec020, 0x2bc97: 0x6dcec220, + 0x2bc98: 0x6dcec420, 0x2bc99: 0x6dcec620, 0x2bc9a: 0x6dcec820, 0x2bc9b: 0x6dceca20, + 0x2bc9c: 0x6de90c20, 0x2bc9d: 0x6de90e20, 0x2bc9e: 0x6de91020, 0x2bc9f: 0x6de91220, + 0x2bca0: 0x6de91420, 0x2bca1: 0x6de91620, 0x2bca2: 0x6de91820, 0x2bca3: 0x6dff3820, + 0x2bca4: 0x6dff3a20, 0x2bca5: 0x6dff3c20, 0x2bca6: 0x6dff3e20, 0x2bca7: 0x6dff4020, + 0x2bca8: 0x6e11a620, 0x2bca9: 0x6e11a820, 0x2bcaa: 0x6e200020, 0x2bcab: 0x6e200220, + 0x2bcac: 0x6e200420, 0x2bcad: 0x6e200620, 0x2bcae: 0x6e2b1420, 0x2bcaf: 0x6e338a20, + 0x2bcb0: 0x6e338c20, 0x2bcb1: 0x6e338e20, 0x2bcb2: 0x6e339020, 0x2bcb3: 0x6e399420, + 0x2bcb4: 0x6e399620, 0x2bcb5: 0x6e40a420, 0x2bcb6: 0x6c5c9820, 0x2bcb7: 0x6ca99e20, + 0x2bcb8: 0x6c809c20, 0x2bcb9: 0x6ca9a020, 0x2bcba: 0x6cd80e20, 0x2bcbb: 0x6cd81020, + 0x2bcbc: 0x6d06cc20, 0x2bcbd: 0x6d34c620, 0x2bcbe: 0x6d617c20, 0x2bcbf: 0x6d617e20, + // Block 0xaf3, offset 0x2bcc0 + 0x2bcc0: 0x6d8b9420, 0x2bcc1: 0x6de9a020, 0x2bcc2: 0x6c5cc420, 0x2bcc3: 0x6c80c420, + 0x2bcc4: 0x6ca9e220, 0x2bcc5: 0x6ca9e420, 0x2bcc6: 0x6ca9e620, 0x2bcc7: 0x6ca9e820, + 0x2bcc8: 0x6ca9ea20, 0x2bcc9: 0x6ca9ec20, 0x2bcca: 0x6cd85220, 0x2bccb: 0x6d34e020, + 0x2bccc: 0x6d34e220, 0x2bccd: 0x6d8ba620, 0x2bcce: 0x6e2b3220, 0x2bccf: 0x6c0a4820, + 0x2bcd0: 0x6c3e0220, 0x2bcd1: 0x6c5cce20, 0x2bcd2: 0x6c5cd020, 0x2bcd3: 0x6c5cd220, + 0x2bcd4: 0x6c5cd420, 0x2bcd5: 0x6c80d220, 0x2bcd6: 0x6c80d420, 0x2bcd7: 0x6c80d620, + 0x2bcd8: 0x6ca9fe20, 0x2bcd9: 0x6cd86420, 0x2bcda: 0x6cd86620, 0x2bcdb: 0x6d06fc20, + 0x2bcdc: 0x6d06fe20, 0x2bcdd: 0x6d070020, 0x2bcde: 0x6d34fc20, 0x2bcdf: 0x6d34fe20, + 0x2bce0: 0x6d8bba20, 0x2bce1: 0x6d8bbc20, 0x2bce2: 0x6db00620, 0x2bce3: 0x6dcf8c20, + 0x2bce4: 0x6de9b420, 0x2bce5: 0x6e120820, 0x2bce6: 0x6e33ae20, 0x2bce7: 0x6c812420, + 0x2bce8: 0x6c812620, 0x2bce9: 0x6c812820, 0x2bcea: 0x6caa2a20, 0x2bceb: 0x6caa2c20, + 0x2bcec: 0x6caa2e20, 0x2bced: 0x6caa3020, 0x2bcee: 0x6cd88220, 0x2bcef: 0x6cd88420, + 0x2bcf0: 0x6cd88620, 0x2bcf1: 0x6d074620, 0x2bcf2: 0x6d352e20, 0x2bcf3: 0x6d353020, + 0x2bcf4: 0x6d353220, 0x2bcf5: 0x6d353420, 0x2bcf6: 0x6d353620, 0x2bcf7: 0x6d61ca20, + 0x2bcf8: 0x6d8bf220, 0x2bcf9: 0x6d8bf420, 0x2bcfa: 0x6db02c20, 0x2bcfb: 0x6dcfa820, + 0x2bcfc: 0x6dcfaa20, 0x2bcfd: 0x6e204220, 0x2bcfe: 0x6c815620, 0x2bcff: 0x6c815820, + // Block 0xaf4, offset 0x2bd00 + 0x2bd00: 0x6caa6e20, 0x2bd01: 0x6caa7020, 0x2bd02: 0x6caa7220, 0x2bd03: 0x6caa7420, + 0x2bd04: 0x6caa7620, 0x2bd05: 0x6caa7820, 0x2bd06: 0x6caa7a20, 0x2bd07: 0x6cd8aa20, + 0x2bd08: 0x6cd8ac20, 0x2bd09: 0x6cd8ae20, 0x2bd0a: 0x6cd8b020, 0x2bd0b: 0x6d077c20, + 0x2bd0c: 0x6d077e20, 0x2bd0d: 0x6d078020, 0x2bd0e: 0x6d078220, 0x2bd0f: 0x6d355020, + 0x2bd10: 0x6d355220, 0x2bd11: 0x6d355420, 0x2bd12: 0x6d355620, 0x2bd13: 0x6d355820, + 0x2bd14: 0x6d8c0c20, 0x2bd15: 0x6d8c0e20, 0x2bd16: 0x6dcfd820, 0x2bd17: 0x6dcfda20, + 0x2bd18: 0x6dcfdc20, 0x2bd19: 0x6dffb220, 0x2bd1a: 0x6e122220, 0x2bd1b: 0x6c5d2e20, + 0x2bd1c: 0x6cd8f220, 0x2bd1d: 0x6cd8f420, 0x2bd1e: 0x6cd8f620, 0x2bd1f: 0x6c5d3a20, + 0x2bd20: 0x6c5d3c20, 0x2bd21: 0x6c81a620, 0x2bd22: 0x6c5d4820, 0x2bd23: 0x6caaba20, + 0x2bd24: 0x6d07b020, 0x2bd25: 0x6d07b220, 0x2bd26: 0x6d359420, 0x2bd27: 0x6d359620, + 0x2bd28: 0x6d359820, 0x2bd29: 0x6d359a20, 0x2bd2a: 0x6d359c20, 0x2bd2b: 0x6d624c20, + 0x2bd2c: 0x6d624e20, 0x2bd2d: 0x6db07e20, 0x2bd2e: 0x6db08020, 0x2bd2f: 0x6db08220, + 0x2bd30: 0x6dd01020, 0x2bd31: 0x6e122c20, 0x2bd32: 0x6c25e420, 0x2bd33: 0x6c81b620, + 0x2bd34: 0x6c81b820, 0x2bd35: 0x6caad020, 0x2bd36: 0x6caad220, 0x2bd37: 0x6cd90e20, + 0x2bd38: 0x6d07c020, 0x2bd39: 0x6d07c220, 0x2bd3a: 0x6d35ba20, 0x2bd3b: 0x6d35bc20, + 0x2bd3c: 0x6d35be20, 0x2bd3d: 0x6d35c020, 0x2bd3e: 0x6d35c220, 0x2bd3f: 0x6d626820, + // Block 0xaf5, offset 0x2bd40 + 0x2bd40: 0x6d626a20, 0x2bd41: 0x6d8c6220, 0x2bd42: 0x6d8c6420, 0x2bd43: 0x6d8c6620, + 0x2bd44: 0x6db09820, 0x2bd45: 0x6db09a20, 0x2bd46: 0x6db09c20, 0x2bd47: 0x6db09e20, + 0x2bd48: 0x6dd02a20, 0x2bd49: 0x6dffc620, 0x2bd4a: 0x6e205c20, 0x2bd4b: 0x6d07fc20, + 0x2bd4c: 0x6c145820, 0x2bd4d: 0x6c145a20, 0x2bd4e: 0x6c25ea20, 0x2bd4f: 0x6c25ec20, + 0x2bd50: 0x6c3e6220, 0x2bd51: 0x6c81fe20, 0x2bd52: 0x6c3e6420, 0x2bd53: 0x6c3e6620, + 0x2bd54: 0x6c3e6820, 0x2bd55: 0x6c3e6a20, 0x2bd56: 0x6c3e6c20, 0x2bd57: 0x6c3e6e20, + 0x2bd58: 0x6c3e7020, 0x2bd59: 0x6c3e7220, 0x2bd5a: 0x6c3e7420, 0x2bd5b: 0x6c3e7620, + 0x2bd5c: 0x6c3e7820, 0x2bd5d: 0x6c3e7a20, 0x2bd5e: 0x6c5d6220, 0x2bd5f: 0x6c5d6420, + 0x2bd60: 0x6c5d6620, 0x2bd61: 0x6c5d6820, 0x2bd62: 0x6c5d6a20, 0x2bd63: 0x6c5d6c20, + 0x2bd64: 0x6c5d6e20, 0x2bd65: 0x6c5d7020, 0x2bd66: 0x6c820020, 0x2bd67: 0x6c820220, + 0x2bd68: 0x6c820420, 0x2bd69: 0x6c820620, 0x2bd6a: 0x6c820820, 0x2bd6b: 0x6c820a20, + 0x2bd6c: 0x6c820c20, 0x2bd6d: 0x6c820e20, 0x2bd6e: 0x6c821020, 0x2bd6f: 0x6cab1220, + 0x2bd70: 0x6cab1420, 0x2bd71: 0x6cab1620, 0x2bd72: 0x6cab1820, 0x2bd73: 0x6cab1a20, + 0x2bd74: 0x6cab1c20, 0x2bd75: 0x6cab1e20, 0x2bd76: 0x6cab2020, 0x2bd77: 0x6cab2220, + 0x2bd78: 0x6cab2420, 0x2bd79: 0x6cab2620, 0x2bd7a: 0x6cab2820, 0x2bd7b: 0x6cab2a20, + 0x2bd7c: 0x6cd95c20, 0x2bd7d: 0x6cd95e20, 0x2bd7e: 0x6cd96020, 0x2bd7f: 0x6cd96220, + // Block 0xaf6, offset 0x2bd80 + 0x2bd80: 0x6cd96420, 0x2bd81: 0x6cd96620, 0x2bd82: 0x6cd96820, 0x2bd83: 0x6cd96a20, + 0x2bd84: 0x6cd96c20, 0x2bd85: 0x6cd96e20, 0x2bd86: 0x6cd97020, 0x2bd87: 0x6cd97220, + 0x2bd88: 0x6cd97420, 0x2bd89: 0x6cd97620, 0x2bd8a: 0x6cd97820, 0x2bd8b: 0x6cd97a20, + 0x2bd8c: 0x6cd97c20, 0x2bd8d: 0x6d080a20, 0x2bd8e: 0x6d080c20, 0x2bd8f: 0x6d080e20, + 0x2bd90: 0x6d081020, 0x2bd91: 0x6d081220, 0x2bd92: 0x6d081420, 0x2bd93: 0x6d081620, + 0x2bd94: 0x6d081820, 0x2bd95: 0x6d081a20, 0x2bd96: 0x6d081c20, 0x2bd97: 0x6d081e20, + 0x2bd98: 0x6d082020, 0x2bd99: 0x6d082220, 0x2bd9a: 0x6d082420, 0x2bd9b: 0x6d082620, + 0x2bd9c: 0x6d361c20, 0x2bd9d: 0x6d361e20, 0x2bd9e: 0x6d362020, 0x2bd9f: 0x6d362220, + 0x2bda0: 0x6d362420, 0x2bda1: 0x6d8c9e20, 0x2bda2: 0x6d362620, 0x2bda3: 0x6d362820, + 0x2bda4: 0x6d362a20, 0x2bda5: 0x6d362c20, 0x2bda6: 0x6d362e20, 0x2bda7: 0x6d363020, + 0x2bda8: 0x6d363220, 0x2bda9: 0x6d363420, 0x2bdaa: 0x6d363620, 0x2bdab: 0x6d62bc20, + 0x2bdac: 0x6d62be20, 0x2bdad: 0x6d62c020, 0x2bdae: 0x6d62c220, 0x2bdaf: 0x6d62c420, + 0x2bdb0: 0x6d62c620, 0x2bdb1: 0x6d62c820, 0x2bdb2: 0x6d62ca20, 0x2bdb3: 0x6d62cc20, + 0x2bdb4: 0x6d62ce20, 0x2bdb5: 0x6d8ca220, 0x2bdb6: 0x6d8ca420, 0x2bdb7: 0x6d8ca620, + 0x2bdb8: 0x6d8ca820, 0x2bdb9: 0x6d8caa20, 0x2bdba: 0x6d8cac20, 0x2bdbb: 0x6d8cae20, + 0x2bdbc: 0x6d8cb020, 0x2bdbd: 0x6d8cb220, 0x2bdbe: 0x6db0d620, 0x2bdbf: 0x6db0d820, + // Block 0xaf7, offset 0x2bdc0 + 0x2bdc0: 0x6db0da20, 0x2bdc1: 0x6db0dc20, 0x2bdc2: 0x6dd05e20, 0x2bdc3: 0x6dd06020, + 0x2bdc4: 0x6dd06220, 0x2bdc5: 0x6dd06420, 0x2bdc6: 0x6dea2020, 0x2bdc7: 0x6dea2220, + 0x2bdc8: 0x6dea2420, 0x2bdc9: 0x6dffe020, 0x2bdca: 0x6dffe220, 0x2bdcb: 0x6e124020, + 0x2bdcc: 0x6e124220, 0x2bdcd: 0x6e124420, 0x2bdce: 0x6e124620, 0x2bdcf: 0x6e206820, + 0x2bdd0: 0x6cabdc20, 0x2bdd1: 0x6dd0b020, 0x2bdd2: 0x6c5e4020, 0x2bdd3: 0x6d08fc20, + 0x2bdd4: 0x6c82fa20, 0x2bdd5: 0x6cabf220, 0x2bdd6: 0x6d370020, 0x2bdd7: 0x6d637020, + 0x2bdd8: 0x6d8d7420, 0x2bdd9: 0x6c831020, 0x2bdda: 0x6c831220, 0x2bddb: 0x6cac0420, + 0x2bddc: 0x6d638620, 0x2bddd: 0x6d372e20, 0x2bdde: 0x6d8d9620, 0x2bddf: 0x6e126a20, + 0x2bde0: 0x6c3f3420, 0x2bde1: 0x6c5e5a20, 0x2bde2: 0x6c5e5c20, 0x2bde3: 0x6c5e5e20, + 0x2bde4: 0x6c832820, 0x2bde5: 0x6c832a20, 0x2bde6: 0x6cac1020, 0x2bde7: 0x6cac1220, + 0x2bde8: 0x6cac1420, 0x2bde9: 0x6cac1620, 0x2bdea: 0x6cdac020, 0x2bdeb: 0x6cdac220, + 0x2bdec: 0x6cdac420, 0x2bded: 0x6cdac620, 0x2bdee: 0x6cdac820, 0x2bdef: 0x6d091e20, + 0x2bdf0: 0x6d092020, 0x2bdf1: 0x6d373220, 0x2bdf2: 0x6d373420, 0x2bdf3: 0x6d373620, + 0x2bdf4: 0x6d373820, 0x2bdf5: 0x6d373a20, 0x2bdf6: 0x6d373c20, 0x2bdf7: 0x6d373e20, + 0x2bdf8: 0x6d374020, 0x2bdf9: 0x6d639c20, 0x2bdfa: 0x6d639e20, 0x2bdfb: 0x6d63a020, + 0x2bdfc: 0x6d8d9820, 0x2bdfd: 0x6d8d9a20, 0x2bdfe: 0x6d8d9c20, 0x2bdff: 0x6db18e20, + // Block 0xaf8, offset 0x2be00 + 0x2be00: 0x6db19020, 0x2be01: 0x6db19220, 0x2be02: 0x6db19420, 0x2be03: 0x6db19620, + 0x2be04: 0x6db19820, 0x2be05: 0x6db19a20, 0x2be06: 0x6dd0dc20, 0x2be07: 0x6dd0de20, + 0x2be08: 0x6dd0e020, 0x2be09: 0x6e003420, 0x2be0a: 0x6c5e7a20, 0x2be0b: 0x6cac4c20, + 0x2be0c: 0x6d8dca20, 0x2be0d: 0x6d8dcc20, 0x2be0e: 0x6dd11820, 0x2be0f: 0x6dd11a20, + 0x2be10: 0x6e209c20, 0x2be11: 0x6c149c20, 0x2be12: 0x6c3f4620, 0x2be13: 0x6c3f4820, + 0x2be14: 0x6c3f4a20, 0x2be15: 0x6c5e7e20, 0x2be16: 0x6c5e8020, 0x2be17: 0x6c5e8220, + 0x2be18: 0x6c5e8420, 0x2be19: 0x6c5e8620, 0x2be1a: 0x6c836020, 0x2be1b: 0x6c836220, + 0x2be1c: 0x6c836420, 0x2be1d: 0x6c836620, 0x2be1e: 0x6c836820, 0x2be1f: 0x6c836a20, + 0x2be20: 0x6c836c20, 0x2be21: 0x6c836e20, 0x2be22: 0x6c837020, 0x2be23: 0x6c837220, + 0x2be24: 0x6c837420, 0x2be25: 0x6c837620, 0x2be26: 0x6cac5c20, 0x2be27: 0x6cac5e20, + 0x2be28: 0x6cac6020, 0x2be29: 0x6cac6220, 0x2be2a: 0x6cac6420, 0x2be2b: 0x6cac6620, + 0x2be2c: 0x6cac6820, 0x2be2d: 0x6cac6a20, 0x2be2e: 0x6cac6c20, 0x2be2f: 0x6cac6e20, + 0x2be30: 0x6cdaf220, 0x2be31: 0x6cdaf420, 0x2be32: 0x6cdaf620, 0x2be33: 0x6cdaf820, + 0x2be34: 0x6cdafa20, 0x2be35: 0x6cdafc20, 0x2be36: 0x6cdafe20, 0x2be37: 0x6cdb0020, + 0x2be38: 0x6cdb0220, 0x2be39: 0x6cdb0420, 0x2be3a: 0x6cdb0620, 0x2be3b: 0x6cdb0820, + 0x2be3c: 0x6cdb0a20, 0x2be3d: 0x6cdb0c20, 0x2be3e: 0x6cdb0e20, 0x2be3f: 0x6cdb1020, + // Block 0xaf9, offset 0x2be40 + 0x2be40: 0x6cdb1220, 0x2be41: 0x6cdb1420, 0x2be42: 0x6d095a20, 0x2be43: 0x6d095c20, + 0x2be44: 0x6d095e20, 0x2be45: 0x6d096020, 0x2be46: 0x6d096220, 0x2be47: 0x6d096420, + 0x2be48: 0x6d096620, 0x2be49: 0x6d096820, 0x2be4a: 0x6d096a20, 0x2be4b: 0x6d096c20, + 0x2be4c: 0x6d096e20, 0x2be4d: 0x6d097020, 0x2be4e: 0x6d097220, 0x2be4f: 0x6d097420, + 0x2be50: 0x6d097620, 0x2be51: 0x6d097820, 0x2be52: 0x6d097a20, 0x2be53: 0x6d097c20, + 0x2be54: 0x6d097e20, 0x2be55: 0x6d378020, 0x2be56: 0x6d098020, 0x2be57: 0x6d378220, + 0x2be58: 0x6d378420, 0x2be59: 0x6d378620, 0x2be5a: 0x6d378820, 0x2be5b: 0x6d378a20, + 0x2be5c: 0x6d378c20, 0x2be5d: 0x6d378e20, 0x2be5e: 0x6d379020, 0x2be5f: 0x6d379220, + 0x2be60: 0x6d379420, 0x2be61: 0x6d379620, 0x2be62: 0x6d379820, 0x2be63: 0x6d379a20, + 0x2be64: 0x6d379c20, 0x2be65: 0x6d379e20, 0x2be66: 0x6d37a020, 0x2be67: 0x6d37a220, + 0x2be68: 0x6d37a420, 0x2be69: 0x6d37a620, 0x2be6a: 0x6d37a820, 0x2be6b: 0x6d37aa20, + 0x2be6c: 0x6d37ac20, 0x2be6d: 0x6d37ae20, 0x2be6e: 0x6d63f220, 0x2be6f: 0x6d63f420, + 0x2be70: 0x6d63f620, 0x2be71: 0x6d63f820, 0x2be72: 0x6d63fa20, 0x2be73: 0x6d63fc20, + 0x2be74: 0x6d63fe20, 0x2be75: 0x6d640020, 0x2be76: 0x6d640220, 0x2be77: 0x6d640420, + 0x2be78: 0x6d640620, 0x2be79: 0x6d640820, 0x2be7a: 0x6d640a20, 0x2be7b: 0x6d640c20, + 0x2be7c: 0x6d8dda20, 0x2be7d: 0x6d8ddc20, 0x2be7e: 0x6d8dde20, 0x2be7f: 0x6d8de020, + // Block 0xafa, offset 0x2be80 + 0x2be80: 0x6d8de220, 0x2be81: 0x6d8de420, 0x2be82: 0x6d8de620, 0x2be83: 0x6d8de820, + 0x2be84: 0x6d8dea20, 0x2be85: 0x6d8dec20, 0x2be86: 0x6d8dee20, 0x2be87: 0x6d8df020, + 0x2be88: 0x6d8df220, 0x2be89: 0x6d8df420, 0x2be8a: 0x6d8df620, 0x2be8b: 0x6d8df820, + 0x2be8c: 0x6d8dfa20, 0x2be8d: 0x6d8dfc20, 0x2be8e: 0x6db1c020, 0x2be8f: 0x6db1c220, + 0x2be90: 0x6db1c420, 0x2be91: 0x6db1c620, 0x2be92: 0x6db1c820, 0x2be93: 0x6db1ca20, + 0x2be94: 0x6db1cc20, 0x2be95: 0x6db1ce20, 0x2be96: 0x6db1d020, 0x2be97: 0x6db1d220, + 0x2be98: 0x6db1d420, 0x2be99: 0x6db1d620, 0x2be9a: 0x6db1d820, 0x2be9b: 0x6db1da20, + 0x2be9c: 0x6db1dc20, 0x2be9d: 0x6db1de20, 0x2be9e: 0x6db1e020, 0x2be9f: 0x6db1e220, + 0x2bea0: 0x6db1e420, 0x2bea1: 0x6db1e620, 0x2bea2: 0x6db1e820, 0x2bea3: 0x6db1ea20, + 0x2bea4: 0x6db1ec20, 0x2bea5: 0x6db1ee20, 0x2bea6: 0x6db1f020, 0x2bea7: 0x6db1f220, + 0x2bea8: 0x6db1f420, 0x2bea9: 0x6db1f620, 0x2beaa: 0x6db1f820, 0x2beab: 0x6db1fa20, + 0x2beac: 0x6db1fc20, 0x2bead: 0x6dd11c20, 0x2beae: 0x6dd11e20, 0x2beaf: 0x6dd12020, + 0x2beb0: 0x6dd12220, 0x2beb1: 0x6dd12420, 0x2beb2: 0x6dd12620, 0x2beb3: 0x6dd12820, + 0x2beb4: 0x6dd12a20, 0x2beb5: 0x6dd12c20, 0x2beb6: 0x6dd12e20, 0x2beb7: 0x6dd13020, + 0x2beb8: 0x6dd13220, 0x2beb9: 0x6dd13420, 0x2beba: 0x6dd13620, 0x2bebb: 0x6dd13820, + 0x2bebc: 0x6dd13a20, 0x2bebd: 0x6dd13c20, 0x2bebe: 0x6dd13e20, 0x2bebf: 0x6dd14020, + // Block 0xafb, offset 0x2bec0 + 0x2bec0: 0x6dd14220, 0x2bec1: 0x6dd14420, 0x2bec2: 0x6dd14620, 0x2bec3: 0x6dd14820, + 0x2bec4: 0x6dd14a20, 0x2bec5: 0x6deaa420, 0x2bec6: 0x6deaa620, 0x2bec7: 0x6deaa820, + 0x2bec8: 0x6deaaa20, 0x2bec9: 0x6deaac20, 0x2beca: 0x6deaae20, 0x2becb: 0x6deab020, + 0x2becc: 0x6deab220, 0x2becd: 0x6deab420, 0x2bece: 0x6deab620, 0x2becf: 0x6deab820, + 0x2bed0: 0x6deaba20, 0x2bed1: 0x6deabc20, 0x2bed2: 0x6e005220, 0x2bed3: 0x6e005420, + 0x2bed4: 0x6e005620, 0x2bed5: 0x6e005820, 0x2bed6: 0x6e005a20, 0x2bed7: 0x6e005c20, + 0x2bed8: 0x6e005e20, 0x2bed9: 0x6e006020, 0x2beda: 0x6e006220, 0x2bedb: 0x6e006420, + 0x2bedc: 0x6e006620, 0x2bedd: 0x6e006820, 0x2bede: 0x6e127a20, 0x2bedf: 0x6e127c20, + 0x2bee0: 0x6e127e20, 0x2bee1: 0x6e128020, 0x2bee2: 0x6e128220, 0x2bee3: 0x6e128420, + 0x2bee4: 0x6e128620, 0x2bee5: 0x6e128820, 0x2bee6: 0x6e209e20, 0x2bee7: 0x6e20a020, + 0x2bee8: 0x6e20a220, 0x2bee9: 0x6e20a420, 0x2beea: 0x6e20a620, 0x2beeb: 0x6e20a820, + 0x2beec: 0x6e20aa20, 0x2beed: 0x6e20ac20, 0x2beee: 0x6e20ae20, 0x2beef: 0x6e20b020, + 0x2bef0: 0x6e20b220, 0x2bef1: 0x6e20b420, 0x2bef2: 0x6e20b620, 0x2bef3: 0x6e2b7420, + 0x2bef4: 0x6e2b7620, 0x2bef5: 0x6e2b7820, 0x2bef6: 0x6e2b7a20, 0x2bef7: 0x6e2b7c20, + 0x2bef8: 0x6e33e620, 0x2bef9: 0x6e33e820, 0x2befa: 0x6e33ea20, 0x2befb: 0x6e39c420, + 0x2befc: 0x6e39c620, 0x2befd: 0x6e39c820, 0x2befe: 0x6e3df220, 0x2beff: 0x6e40c820, + // Block 0xafc, offset 0x2bf00 + 0x2bf00: 0x6e40ca20, 0x2bf01: 0x6e42ee20, 0x2bf02: 0x6e446020, 0x2bf03: 0x6e446220, + 0x2bf04: 0x6e446420, 0x2bf05: 0x6e454820, 0x2bf06: 0x6e454a20, 0x2bf07: 0x6e46ce20, + 0x2bf08: 0x6c400e20, 0x2bf09: 0x6c5f9420, 0x2bf0a: 0x6c84c620, 0x2bf0b: 0x6c84c820, + 0x2bf0c: 0x6c84ca20, 0x2bf0d: 0x6c84cc20, 0x2bf0e: 0x6cae2220, 0x2bf0f: 0x6cae2420, + 0x2bf10: 0x6cdd4820, 0x2bf11: 0x6cdd4a20, 0x2bf12: 0x6d0bc220, 0x2bf13: 0x6d0bc420, + 0x2bf14: 0x6d0bc620, 0x2bf15: 0x6d0bc820, 0x2bf16: 0x6d0bca20, 0x2bf17: 0x6d65f420, + 0x2bf18: 0x6d8fc820, 0x2bf19: 0x6db39820, 0x2bf1a: 0x6dd29620, 0x2bf1b: 0x6dd29820, + 0x2bf1c: 0x6debd220, 0x2bf1d: 0x6c268820, 0x2bf1e: 0x6c5fa220, 0x2bf1f: 0x6c5fa420, + 0x2bf20: 0x6c5fa620, 0x2bf21: 0x6c84de20, 0x2bf22: 0x6c84e020, 0x2bf23: 0x6c84e220, + 0x2bf24: 0x6cae4e20, 0x2bf25: 0x6cae5020, 0x2bf26: 0x6cae5220, 0x2bf27: 0x6cae5420, + 0x2bf28: 0x6cae5620, 0x2bf29: 0x6cae5820, 0x2bf2a: 0x6cae5a20, 0x2bf2b: 0x6cae5c20, + 0x2bf2c: 0x6cae5e20, 0x2bf2d: 0x6cdd6620, 0x2bf2e: 0x6cdd6820, 0x2bf2f: 0x6cdd6a20, + 0x2bf30: 0x6cdd6c20, 0x2bf31: 0x6cdd6e20, 0x2bf32: 0x6cdd7020, 0x2bf33: 0x6cdd7220, + 0x2bf34: 0x6cdd7420, 0x2bf35: 0x6cdd7620, 0x2bf36: 0x6d0bde20, 0x2bf37: 0x6d0be020, + 0x2bf38: 0x6d0be220, 0x2bf39: 0x6d0be420, 0x2bf3a: 0x6d0be620, 0x2bf3b: 0x6d0be820, + 0x2bf3c: 0x6d0bea20, 0x2bf3d: 0x6d0bec20, 0x2bf3e: 0x6d0bee20, 0x2bf3f: 0x6d39e220, + // Block 0xafd, offset 0x2bf40 + 0x2bf40: 0x6d39e420, 0x2bf41: 0x6d39e620, 0x2bf42: 0x6d39e820, 0x2bf43: 0x6d39ea20, + 0x2bf44: 0x6d39ec20, 0x2bf45: 0x6d39ee20, 0x2bf46: 0x6d39f020, 0x2bf47: 0x6d39f220, + 0x2bf48: 0x6d39f420, 0x2bf49: 0x6d39f620, 0x2bf4a: 0x6d39f820, 0x2bf4b: 0x6d661220, + 0x2bf4c: 0x6d661420, 0x2bf4d: 0x6d661620, 0x2bf4e: 0x6d661820, 0x2bf4f: 0x6d661a20, + 0x2bf50: 0x6d661c20, 0x2bf51: 0x6d661e20, 0x2bf52: 0x6d662020, 0x2bf53: 0x6d662220, + 0x2bf54: 0x6d662420, 0x2bf55: 0x6d39fa20, 0x2bf56: 0x6d662620, 0x2bf57: 0x6d8ffa20, + 0x2bf58: 0x6d8ffc20, 0x2bf59: 0x6d8ffe20, 0x2bf5a: 0x6d900020, 0x2bf5b: 0x6d900220, + 0x2bf5c: 0x6d900420, 0x2bf5d: 0x6d900620, 0x2bf5e: 0x6d900820, 0x2bf5f: 0x6db3b420, + 0x2bf60: 0x6db3b620, 0x2bf61: 0x6db3b820, 0x2bf62: 0x6db3ba20, 0x2bf63: 0x6db3bc20, + 0x2bf64: 0x6db3be20, 0x2bf65: 0x6db3c020, 0x2bf66: 0x6db3c220, 0x2bf67: 0x6db3c420, + 0x2bf68: 0x6db3c620, 0x2bf69: 0x6db3c820, 0x2bf6a: 0x6db3ca20, 0x2bf6b: 0x6db3cc20, + 0x2bf6c: 0x6db3ce20, 0x2bf6d: 0x6db3d020, 0x2bf6e: 0x6db3d220, 0x2bf6f: 0x6dd2b020, + 0x2bf70: 0x6dd2b220, 0x2bf71: 0x6dd2b420, 0x2bf72: 0x6dd2b620, 0x2bf73: 0x6dd2b820, + 0x2bf74: 0x6debe620, 0x2bf75: 0x6debe820, 0x2bf76: 0x6debea20, 0x2bf77: 0x6debec20, + 0x2bf78: 0x6debee20, 0x2bf79: 0x6debf020, 0x2bf7a: 0x6debf220, 0x2bf7b: 0x6debf420, + 0x2bf7c: 0x6e016420, 0x2bf7d: 0x6e016620, 0x2bf7e: 0x6e016820, 0x2bf7f: 0x6e016a20, + // Block 0xafe, offset 0x2bf80 + 0x2bf80: 0x6e016c20, 0x2bf81: 0x6e016e20, 0x2bf82: 0x6e135020, 0x2bf83: 0x6e135220, + 0x2bf84: 0x6e135420, 0x2bf85: 0x6e212220, 0x2bf86: 0x6e212420, 0x2bf87: 0x6e212620, + 0x2bf88: 0x6e212820, 0x2bf89: 0x6e212a20, 0x2bf8a: 0x6e2bdc20, 0x2bf8b: 0x6e2bde20, + 0x2bf8c: 0x6e2be020, 0x2bf8d: 0x6e39ea20, 0x2bf8e: 0x6e42fc20, 0x2bf8f: 0x6c5ff620, + 0x2bf90: 0x6c858220, 0x2bf91: 0x6caf1a20, 0x2bf92: 0x6d0cbc20, 0x2bf93: 0x6d3b1020, + 0x2bf94: 0x6d673a20, 0x2bf95: 0x6c859420, 0x2bf96: 0x6cde5020, 0x2bf97: 0x6d912020, + 0x2bf98: 0x6d912220, 0x2bf99: 0x6e01e020, 0x2bf9a: 0x6c404420, 0x2bf9b: 0x6c404620, + 0x2bf9c: 0x6c600c20, 0x2bf9d: 0x6c600e20, 0x2bf9e: 0x6c601020, 0x2bf9f: 0x6c85a020, + 0x2bfa0: 0x6c85a220, 0x2bfa1: 0x6c85a420, 0x2bfa2: 0x6caf3420, 0x2bfa3: 0x6caf3620, + 0x2bfa4: 0x6caf3820, 0x2bfa5: 0x6caf3a20, 0x2bfa6: 0x6caf3c20, 0x2bfa7: 0x6caf3e20, + 0x2bfa8: 0x6cde6a20, 0x2bfa9: 0x6cde6c20, 0x2bfaa: 0x6cde6e20, 0x2bfab: 0x6cde7020, + 0x2bfac: 0x6cde7220, 0x2bfad: 0x6cde7420, 0x2bfae: 0x6cde7620, 0x2bfaf: 0x6d0cd820, + 0x2bfb0: 0x6d0cda20, 0x2bfb1: 0x6d0cdc20, 0x2bfb2: 0x6d0cde20, 0x2bfb3: 0x6d3b2820, + 0x2bfb4: 0x6d3b2a20, 0x2bfb5: 0x6d3b2c20, 0x2bfb6: 0x6d3b2e20, 0x2bfb7: 0x6d3b3020, + 0x2bfb8: 0x6d3b3220, 0x2bfb9: 0x6d3b3420, 0x2bfba: 0x6d3b3620, 0x2bfbb: 0x6d3b3820, + 0x2bfbc: 0x6d3b3a20, 0x2bfbd: 0x6d3b3c20, 0x2bfbe: 0x6d3b3e20, 0x2bfbf: 0x6d3b4020, + // Block 0xaff, offset 0x2bfc0 + 0x2bfc0: 0x6d3b4220, 0x2bfc1: 0x6d3b4420, 0x2bfc2: 0x6d3b4620, 0x2bfc3: 0x6d675820, + 0x2bfc4: 0x6d675a20, 0x2bfc5: 0x6d675c20, 0x2bfc6: 0x6d675e20, 0x2bfc7: 0x6d676020, + 0x2bfc8: 0x6d676220, 0x2bfc9: 0x6d676420, 0x2bfca: 0x6d676620, 0x2bfcb: 0x6d676820, + 0x2bfcc: 0x6d676a20, 0x2bfcd: 0x6d676c20, 0x2bfce: 0x6d913020, 0x2bfcf: 0x6d913220, + 0x2bfd0: 0x6d913420, 0x2bfd1: 0x6d913620, 0x2bfd2: 0x6d913820, 0x2bfd3: 0x6d913a20, + 0x2bfd4: 0x6db4da20, 0x2bfd5: 0x6db4dc20, 0x2bfd6: 0x6db4de20, 0x2bfd7: 0x6db4e020, + 0x2bfd8: 0x6db4e220, 0x2bfd9: 0x6db4e420, 0x2bfda: 0x6db4e620, 0x2bfdb: 0x6db4e820, + 0x2bfdc: 0x6db4ea20, 0x2bfdd: 0x6db4ec20, 0x2bfde: 0x6dd3aa20, 0x2bfdf: 0x6dd3ac20, + 0x2bfe0: 0x6dd3ae20, 0x2bfe1: 0x6dd3b020, 0x2bfe2: 0x6dd3b220, 0x2bfe3: 0x6dd3b420, + 0x2bfe4: 0x6decac20, 0x2bfe5: 0x6decae20, 0x2bfe6: 0x6e01e420, 0x2bfe7: 0x6e01e620, + 0x2bfe8: 0x6e01e820, 0x2bfe9: 0x6e01ea20, 0x2bfea: 0x6e13d020, 0x2bfeb: 0x6e218c20, + 0x2bfec: 0x6e2c2220, 0x2bfed: 0x6e2c2420, 0x2bfee: 0x6e346020, 0x2bfef: 0x6e346220, + 0x2bff0: 0x6e3a0a20, 0x2bff1: 0x6e40fe20, 0x2bff2: 0x6c606420, 0x2bff3: 0x6c862220, + 0x2bff4: 0x6cafe220, 0x2bff5: 0x6cdefa20, 0x2bff6: 0x6cdefc20, 0x2bff7: 0x6c862a20, + 0x2bff8: 0x6c862c20, 0x2bff9: 0x6cafee20, 0x2bffa: 0x6caff020, 0x2bffb: 0x6caff220, + 0x2bffc: 0x6cdf0a20, 0x2bffd: 0x6cdf0c20, 0x2bffe: 0x6cdf0e20, 0x2bfff: 0x6cdf1020, + // Block 0xb00, offset 0x2c000 + 0x2c000: 0x6d0d7c20, 0x2c001: 0x6d0d7e20, 0x2c002: 0x6d3bec20, 0x2c003: 0x6d3bee20, + 0x2c004: 0x6d67f820, 0x2c005: 0x6d67fa20, 0x2c006: 0x6d91c220, 0x2c007: 0x6d91c420, + 0x2c008: 0x6d91c620, 0x2c009: 0x6d91c820, 0x2c00a: 0x6db58020, 0x2c00b: 0x6db58220, + 0x2c00c: 0x6db58420, 0x2c00d: 0x6dd41420, 0x2c00e: 0x6dd41620, 0x2c00f: 0x6ded0420, + 0x2c010: 0x6ded0620, 0x2c011: 0x6ded0820, 0x2c012: 0x6ded0a20, 0x2c013: 0x6ded0c20, + 0x2c014: 0x6e13fc20, 0x2c015: 0x6e3e2e20, 0x2c016: 0x6e45d820, 0x2c017: 0x6cb01e20, + 0x2c018: 0x6d0db020, 0x2c019: 0x6d0db220, 0x2c01a: 0x6d0db420, 0x2c01b: 0x6d3c2020, + 0x2c01c: 0x6d683a20, 0x2c01d: 0x6d683c20, 0x2c01e: 0x6d683e20, 0x2c01f: 0x6d684020, + 0x2c020: 0x6d684220, 0x2c021: 0x6d920220, 0x2c022: 0x6d920420, 0x2c023: 0x6d920620, + 0x2c024: 0x6d920820, 0x2c025: 0x6db5a820, 0x2c026: 0x6db5aa20, 0x2c027: 0x6dd43620, + 0x2c028: 0x6ded2420, 0x2c029: 0x6ded2620, 0x2c02a: 0x6e022e20, 0x2c02b: 0x6e023020, + 0x2c02c: 0x6ded2820, 0x2c02d: 0x6e3a3620, 0x2c02e: 0x6c608620, 0x2c02f: 0x6c608820, + 0x2c030: 0x6c608a20, 0x2c031: 0x6c864a20, 0x2c032: 0x6c864c20, 0x2c033: 0x6cb05620, + 0x2c034: 0x6cb05820, 0x2c035: 0x6cb05a20, 0x2c036: 0x6cb05c20, 0x2c037: 0x6cb05e20, + 0x2c038: 0x6cb06020, 0x2c039: 0x6cb06220, 0x2c03a: 0x6cb06420, 0x2c03b: 0x6cb06620, + 0x2c03c: 0x6cb06820, 0x2c03d: 0x6cb06a20, 0x2c03e: 0x6cb06c20, 0x2c03f: 0x6cb06e20, + // Block 0xb01, offset 0x2c040 + 0x2c040: 0x6cb07020, 0x2c041: 0x6cb07220, 0x2c042: 0x6cb07420, 0x2c043: 0x6cb07620, + 0x2c044: 0x6cdf6020, 0x2c045: 0x6cdf6220, 0x2c046: 0x6cdf6420, 0x2c047: 0x6cdf6620, + 0x2c048: 0x6cdf6820, 0x2c049: 0x6cdf6a20, 0x2c04a: 0x6cdf6c20, 0x2c04b: 0x6cdf6e20, + 0x2c04c: 0x6cdf7020, 0x2c04d: 0x6cdf7220, 0x2c04e: 0x6cdf7420, 0x2c04f: 0x6cdf7620, + 0x2c050: 0x6cdf7820, 0x2c051: 0x6cdf7a20, 0x2c052: 0x6cdf7c20, 0x2c053: 0x6cdf7e20, + 0x2c054: 0x6d0de020, 0x2c055: 0x6d0de220, 0x2c056: 0x6d0de420, 0x2c057: 0x6d0de620, + 0x2c058: 0x6d0de820, 0x2c059: 0x6d0dea20, 0x2c05a: 0x6d0dec20, 0x2c05b: 0x6d0dee20, + 0x2c05c: 0x6d0df020, 0x2c05d: 0x6d3c4220, 0x2c05e: 0x6d3c4420, 0x2c05f: 0x6d3c4620, + 0x2c060: 0x6d3c4820, 0x2c061: 0x6d3c4a20, 0x2c062: 0x6d3c4c20, 0x2c063: 0x6d3c4e20, + 0x2c064: 0x6d3c5020, 0x2c065: 0x6d3c5220, 0x2c066: 0x6d3c5420, 0x2c067: 0x6d3c5620, + 0x2c068: 0x6d3c5820, 0x2c069: 0x6d687e20, 0x2c06a: 0x6d688020, 0x2c06b: 0x6d688220, + 0x2c06c: 0x6d688420, 0x2c06d: 0x6d688620, 0x2c06e: 0x6d688820, 0x2c06f: 0x6d688a20, + 0x2c070: 0x6d688c20, 0x2c071: 0x6d688e20, 0x2c072: 0x6d689020, 0x2c073: 0x6d689220, + 0x2c074: 0x6d689420, 0x2c075: 0x6d689620, 0x2c076: 0x6d689820, 0x2c077: 0x6d689a20, + 0x2c078: 0x6d689c20, 0x2c079: 0x6d923220, 0x2c07a: 0x6d923420, 0x2c07b: 0x6d923620, + 0x2c07c: 0x6d923820, 0x2c07d: 0x6d923a20, 0x2c07e: 0x6db5d620, 0x2c07f: 0x6db5d820, + // Block 0xb02, offset 0x2c080 + 0x2c080: 0x6db5da20, 0x2c081: 0x6db5dc20, 0x2c082: 0x6db5de20, 0x2c083: 0x6dd45220, + 0x2c084: 0x6dd45420, 0x2c085: 0x6dd45620, 0x2c086: 0x6dd45820, 0x2c087: 0x6dd45a20, + 0x2c088: 0x6dd45c20, 0x2c089: 0x6dd45e20, 0x2c08a: 0x6dd46020, 0x2c08b: 0x6ded4220, + 0x2c08c: 0x6ded4420, 0x2c08d: 0x6ded4620, 0x2c08e: 0x6ded4820, 0x2c08f: 0x6ded4a20, + 0x2c090: 0x6ded4c20, 0x2c091: 0x6ded4e20, 0x2c092: 0x6e024020, 0x2c093: 0x6e024220, + 0x2c094: 0x6e024420, 0x2c095: 0x6e024620, 0x2c096: 0x6e024820, 0x2c097: 0x6e024a20, + 0x2c098: 0x6e024c20, 0x2c099: 0x6e141620, 0x2c09a: 0x6e141820, 0x2c09b: 0x6e141a20, + 0x2c09c: 0x6e141c20, 0x2c09d: 0x6e141e20, 0x2c09e: 0x6e142020, 0x2c09f: 0x6e21c220, + 0x2c0a0: 0x6e21c420, 0x2c0a1: 0x6e21c620, 0x2c0a2: 0x6e2c4420, 0x2c0a3: 0x6cb10a20, + 0x2c0a4: 0x6d0eb220, 0x2c0a5: 0x6d697a20, 0x2c0a6: 0x6db69820, 0x2c0a7: 0x6db69a20, + 0x2c0a8: 0x6dd4fc20, 0x2c0a9: 0x6e2c7620, 0x2c0aa: 0x6c60be20, 0x2c0ab: 0x6c86c420, + 0x2c0ac: 0x6ce04820, 0x2c0ad: 0x6ce04a20, 0x2c0ae: 0x6d3d1620, 0x2c0af: 0x6d698420, + 0x2c0b0: 0x6db69e20, 0x2c0b1: 0x6dd4fe20, 0x2c0b2: 0x6e221620, 0x2c0b3: 0x6c40b620, + 0x2c0b4: 0x6cb15020, 0x2c0b5: 0x6ce05020, 0x2c0b6: 0x6d0eca20, 0x2c0b7: 0x6d3d1e20, + 0x2c0b8: 0x6d3d2020, 0x2c0b9: 0x6d3d2220, 0x2c0ba: 0x6d699620, 0x2c0bb: 0x6d930c20, + 0x2c0bc: 0x6d930e20, 0x2c0bd: 0x6d931020, 0x2c0be: 0x6d931220, 0x2c0bf: 0x6d931420, + // Block 0xb03, offset 0x2c0c0 + 0x2c0c0: 0x6db6ae20, 0x2c0c1: 0x6db6b020, 0x2c0c2: 0x6db6b220, 0x2c0c3: 0x6e147020, + 0x2c0c4: 0x6e3a5420, 0x2c0c5: 0x6c86d820, 0x2c0c6: 0x6cb15820, 0x2c0c7: 0x6cb15a20, + 0x2c0c8: 0x6ce05c20, 0x2c0c9: 0x6d0ed620, 0x2c0ca: 0x6d69b420, 0x2c0cb: 0x6d69b620, + 0x2c0cc: 0x6d69b820, 0x2c0cd: 0x6d932020, 0x2c0ce: 0x6d932220, 0x2c0cf: 0x6dd51420, + 0x2c0d0: 0x6dee0620, 0x2c0d1: 0x6dee0820, 0x2c0d2: 0x6e147620, 0x2c0d3: 0x6e222220, + 0x2c0d4: 0x6e3a5c20, 0x2c0d5: 0x6e3a5e20, 0x2c0d6: 0x6cb17820, 0x2c0d7: 0x6cb17a20, + 0x2c0d8: 0x6cb17c20, 0x2c0d9: 0x6cb17e20, 0x2c0da: 0x6ce07a20, 0x2c0db: 0x6ce07c20, + 0x2c0dc: 0x6d3d4e20, 0x2c0dd: 0x6d69dc20, 0x2c0de: 0x6d69de20, 0x2c0df: 0x6d934020, + 0x2c0e0: 0x6db6e220, 0x2c0e1: 0x6dd52820, 0x2c0e2: 0x6dd52a20, 0x2c0e3: 0x6dee1820, + 0x2c0e4: 0x6dee1a20, 0x2c0e5: 0x6dee1c20, 0x2c0e6: 0x6dee1e20, 0x2c0e7: 0x6cb19420, + 0x2c0e8: 0x6cb19620, 0x2c0e9: 0x6ce0ae20, 0x2c0ea: 0x6ce0b020, 0x2c0eb: 0x6ce0b220, + 0x2c0ec: 0x6ce0b420, 0x2c0ed: 0x6ce0b620, 0x2c0ee: 0x6ce0b820, 0x2c0ef: 0x6ce0ba20, + 0x2c0f0: 0x6d0f2820, 0x2c0f1: 0x6d0f2a20, 0x2c0f2: 0x6d0f2c20, 0x2c0f3: 0x6d3d7620, + 0x2c0f4: 0x6d3d7820, 0x2c0f5: 0x6d3d7a20, 0x2c0f6: 0x6d6a0020, 0x2c0f7: 0x6d6a0220, + 0x2c0f8: 0x6d6a0420, 0x2c0f9: 0x6d6a0620, 0x2c0fa: 0x6d6a0820, 0x2c0fb: 0x6d6a0a20, + 0x2c0fc: 0x6d6a0c20, 0x2c0fd: 0x6d6a0e20, 0x2c0fe: 0x6d6a1020, 0x2c0ff: 0x6d6a1220, + // Block 0xb04, offset 0x2c100 + 0x2c100: 0x6d936820, 0x2c101: 0x6d936a20, 0x2c102: 0x6d936c20, 0x2c103: 0x6d936e20, + 0x2c104: 0x6d937020, 0x2c105: 0x6db70420, 0x2c106: 0x6db70620, 0x2c107: 0x6dd54620, + 0x2c108: 0x6dee3620, 0x2c109: 0x6e02e220, 0x2c10a: 0x6e223020, 0x2c10b: 0x6e2c8a20, + 0x2c10c: 0x6d0f9020, 0x2c10d: 0x6d6a6e20, 0x2c10e: 0x6d6a7020, 0x2c10f: 0x6d93be20, + 0x2c110: 0x6d93c020, 0x2c111: 0x6c872620, 0x2c112: 0x6d0f9820, 0x2c113: 0x6d3dca20, + 0x2c114: 0x6d3dcc20, 0x2c115: 0x6e14a620, 0x2c116: 0x6c872820, 0x2c117: 0x6c872a20, + 0x2c118: 0x6c872c20, 0x2c119: 0x6cb1f220, 0x2c11a: 0x6cb1f420, 0x2c11b: 0x6cb1f620, + 0x2c11c: 0x6cb1f820, 0x2c11d: 0x6ce13e20, 0x2c11e: 0x6ce14020, 0x2c11f: 0x6ce14220, + 0x2c120: 0x6ce14420, 0x2c121: 0x6ce14620, 0x2c122: 0x6ce14820, 0x2c123: 0x6ce14a20, + 0x2c124: 0x6ce14c20, 0x2c125: 0x6d0fa820, 0x2c126: 0x6d0faa20, 0x2c127: 0x6d0fac20, + 0x2c128: 0x6d0fae20, 0x2c129: 0x6d0fb020, 0x2c12a: 0x6d0fb220, 0x2c12b: 0x6d3dd820, + 0x2c12c: 0x6d3dda20, 0x2c12d: 0x6d3ddc20, 0x2c12e: 0x6d3dde20, 0x2c12f: 0x6d3de020, + 0x2c130: 0x6d3de220, 0x2c131: 0x6d3de420, 0x2c132: 0x6d3de620, 0x2c133: 0x6d6a8420, + 0x2c134: 0x6d6a8620, 0x2c135: 0x6d6a8820, 0x2c136: 0x6d6a8a20, 0x2c137: 0x6d6a8c20, + 0x2c138: 0x6d6a8e20, 0x2c139: 0x6d93dc20, 0x2c13a: 0x6d93de20, 0x2c13b: 0x6d93e020, + 0x2c13c: 0x6d93e220, 0x2c13d: 0x6db74e20, 0x2c13e: 0x6db75020, 0x2c13f: 0x6db75220, + // Block 0xb05, offset 0x2c140 + 0x2c140: 0x6db75420, 0x2c141: 0x6dd59c20, 0x2c142: 0x6dd59e20, 0x2c143: 0x6dd5a020, + 0x2c144: 0x6dd5a220, 0x2c145: 0x6dd5a420, 0x2c146: 0x6dd5a620, 0x2c147: 0x6dee8620, + 0x2c148: 0x6e030a20, 0x2c149: 0x6e030c20, 0x2c14a: 0x6e030e20, 0x2c14b: 0x6e031020, + 0x2c14c: 0x6e14ae20, 0x2c14d: 0x6e225c20, 0x2c14e: 0x6e225e20, 0x2c14f: 0x6e226020, + 0x2c150: 0x6e2cae20, 0x2c151: 0x6e34ba20, 0x2c152: 0x6e3a6e20, 0x2c153: 0x6c611620, + 0x2c154: 0x6c611820, 0x2c155: 0x6c875020, 0x2c156: 0x6c875220, 0x2c157: 0x6cb23e20, + 0x2c158: 0x6cb24020, 0x2c159: 0x6cb24220, 0x2c15a: 0x6cb24420, 0x2c15b: 0x6cb24620, + 0x2c15c: 0x6cb24820, 0x2c15d: 0x6cb24a20, 0x2c15e: 0x6cb24c20, 0x2c15f: 0x6ce19c20, + 0x2c160: 0x6ce19e20, 0x2c161: 0x6ce1a020, 0x2c162: 0x6ce1a220, 0x2c163: 0x6ce1a420, + 0x2c164: 0x6ce1a620, 0x2c165: 0x6ce1a820, 0x2c166: 0x6ce1aa20, 0x2c167: 0x6ce1ac20, + 0x2c168: 0x6ce1ae20, 0x2c169: 0x6ce1b020, 0x2c16a: 0x6ce1b220, 0x2c16b: 0x6ce1b420, + 0x2c16c: 0x6ce1b620, 0x2c16d: 0x6ce1b820, 0x2c16e: 0x6d100a20, 0x2c16f: 0x6d100c20, + 0x2c170: 0x6d100e20, 0x2c171: 0x6d101020, 0x2c172: 0x6d101220, 0x2c173: 0x6d101420, + 0x2c174: 0x6d3e3a20, 0x2c175: 0x6d3e3c20, 0x2c176: 0x6d3e3e20, 0x2c177: 0x6d3e4020, + 0x2c178: 0x6d3e4220, 0x2c179: 0x6d3e4420, 0x2c17a: 0x6d3e4620, 0x2c17b: 0x6d3e4820, + 0x2c17c: 0x6d6ada20, 0x2c17d: 0x6d3e4a20, 0x2c17e: 0x6d6adc20, 0x2c17f: 0x6d6ade20, + // Block 0xb06, offset 0x2c180 + 0x2c180: 0x6d6ae020, 0x2c181: 0x6d6ae220, 0x2c182: 0x6d6ae420, 0x2c183: 0x6d6ae620, + 0x2c184: 0x6d6ae820, 0x2c185: 0x6d6aea20, 0x2c186: 0x6d6aec20, 0x2c187: 0x6d6aee20, + 0x2c188: 0x6d6af020, 0x2c189: 0x6d6af220, 0x2c18a: 0x6d6af420, 0x2c18b: 0x6d6af620, + 0x2c18c: 0x6d6af820, 0x2c18d: 0x6d943220, 0x2c18e: 0x6d943420, 0x2c18f: 0x6d943620, + 0x2c190: 0x6d943820, 0x2c191: 0x6d943a20, 0x2c192: 0x6d943c20, 0x2c193: 0x6d943e20, + 0x2c194: 0x6d944020, 0x2c195: 0x6d944220, 0x2c196: 0x6d944420, 0x2c197: 0x6db78420, + 0x2c198: 0x6db78620, 0x2c199: 0x6db78820, 0x2c19a: 0x6db78a20, 0x2c19b: 0x6db78c20, + 0x2c19c: 0x6db78e20, 0x2c19d: 0x6db79020, 0x2c19e: 0x6dd5de20, 0x2c19f: 0x6dd5e020, + 0x2c1a0: 0x6dd5e220, 0x2c1a1: 0x6dd5e420, 0x2c1a2: 0x6dd5e620, 0x2c1a3: 0x6deebe20, + 0x2c1a4: 0x6deec020, 0x2c1a5: 0x6deec220, 0x2c1a6: 0x6deec420, 0x2c1a7: 0x6deec620, + 0x2c1a8: 0x6e032c20, 0x2c1a9: 0x6e032e20, 0x2c1aa: 0x6e14c420, 0x2c1ab: 0x6e14c620, + 0x2c1ac: 0x6e227020, 0x2c1ad: 0x6e2cbe20, 0x2c1ae: 0x6e2cc020, 0x2c1af: 0x6e34c020, + 0x2c1b0: 0x6e3a7a20, 0x2c1b1: 0x6e432220, 0x2c1b2: 0x6ce23a20, 0x2c1b3: 0x6ce23c20, + 0x2c1b4: 0x6ce23e20, 0x2c1b5: 0x6ce24020, 0x2c1b6: 0x6ce24220, 0x2c1b7: 0x6d10b020, + 0x2c1b8: 0x6d10b220, 0x2c1b9: 0x6d10b420, 0x2c1ba: 0x6d10b620, 0x2c1bb: 0x6d6b9c20, + 0x2c1bc: 0x6d94e220, 0x2c1bd: 0x6db81620, 0x2c1be: 0x6db81820, 0x2c1bf: 0x6def6a20, + // Block 0xb07, offset 0x2c1c0 + 0x2c1c0: 0x6e039a20, 0x2c1c1: 0x6e2ce820, 0x2c1c2: 0x6c612c20, 0x2c1c3: 0x6c612e20, + 0x2c1c4: 0x6c613020, 0x2c1c5: 0x6c878c20, 0x2c1c6: 0x6cb2d220, 0x2c1c7: 0x6cb2d420, + 0x2c1c8: 0x6cb2d620, 0x2c1c9: 0x6cb2d820, 0x2c1ca: 0x6cb2da20, 0x2c1cb: 0x6cb2dc20, + 0x2c1cc: 0x6cb2de20, 0x2c1cd: 0x6cb2e020, 0x2c1ce: 0x6cb2e220, 0x2c1cf: 0x6ce26420, + 0x2c1d0: 0x6ce26620, 0x2c1d1: 0x6ce26820, 0x2c1d2: 0x6ce26a20, 0x2c1d3: 0x6d10e020, + 0x2c1d4: 0x6d10e220, 0x2c1d5: 0x6d10e420, 0x2c1d6: 0x6d10e620, 0x2c1d7: 0x6d10e820, + 0x2c1d8: 0x6d3f0220, 0x2c1d9: 0x6d3f0420, 0x2c1da: 0x6d3f0620, 0x2c1db: 0x6d3f0820, + 0x2c1dc: 0x6d6bc820, 0x2c1dd: 0x6d6bca20, 0x2c1de: 0x6d6bcc20, 0x2c1df: 0x6d6bce20, + 0x2c1e0: 0x6d94fe20, 0x2c1e1: 0x6d950020, 0x2c1e2: 0x6d950220, 0x2c1e3: 0x6d950420, + 0x2c1e4: 0x6d950620, 0x2c1e5: 0x6db83620, 0x2c1e6: 0x6db83820, 0x2c1e7: 0x6db83a20, + 0x2c1e8: 0x6db83c20, 0x2c1e9: 0x6db83e20, 0x2c1ea: 0x6db84020, 0x2c1eb: 0x6dd6c020, + 0x2c1ec: 0x6dd6c220, 0x2c1ed: 0x6dd6c420, 0x2c1ee: 0x6dd6c620, 0x2c1ef: 0x6dd6c820, + 0x2c1f0: 0x6dd6ca20, 0x2c1f1: 0x6dd6cc20, 0x2c1f2: 0x6def9220, 0x2c1f3: 0x6def9420, + 0x2c1f4: 0x6def9620, 0x2c1f5: 0x6def9820, 0x2c1f6: 0x6e03ac20, 0x2c1f7: 0x6e151220, + 0x2c1f8: 0x6e151420, 0x2c1f9: 0x6e151620, 0x2c1fa: 0x6e22b420, 0x2c1fb: 0x6e22b620, + 0x2c1fc: 0x6e34e020, 0x2c1fd: 0x6e3e5e20, 0x2c1fe: 0x6e412e20, 0x2c1ff: 0x6e45de20, + // Block 0xb08, offset 0x2c200 + 0x2c200: 0x6c87b820, 0x2c201: 0x6cb33820, 0x2c202: 0x6c614420, 0x2c203: 0x6d6c5420, + 0x2c204: 0x6e03ec20, 0x2c205: 0x6d115e20, 0x2c206: 0x6d3f7620, 0x2c207: 0x6d6c6020, + 0x2c208: 0x6e03f820, 0x2c209: 0x6e03fa20, 0x2c20a: 0x6c272820, 0x2c20b: 0x6c272a20, + 0x2c20c: 0x6c40f820, 0x2c20d: 0x6c40fa20, 0x2c20e: 0x6c40fc20, 0x2c20f: 0x6c40fe20, + 0x2c210: 0x6c616620, 0x2c211: 0x6c616820, 0x2c212: 0x6c87d820, 0x2c213: 0x6c87da20, + 0x2c214: 0x6c87dc20, 0x2c215: 0x6c87de20, 0x2c216: 0x6c87e020, 0x2c217: 0x6c87e220, + 0x2c218: 0x6c87e420, 0x2c219: 0x6cb34820, 0x2c21a: 0x6cb34a20, 0x2c21b: 0x6cb34c20, + 0x2c21c: 0x6ce2fa20, 0x2c21d: 0x6ce2fc20, 0x2c21e: 0x6ce2fe20, 0x2c21f: 0x6ce30020, + 0x2c220: 0x6ce30220, 0x2c221: 0x6d116820, 0x2c222: 0x6d3f7820, 0x2c223: 0x6d3f7a20, + 0x2c224: 0x6d3f7c20, 0x2c225: 0x6d3f7e20, 0x2c226: 0x6d6c6620, 0x2c227: 0x6d6c6820, + 0x2c228: 0x6d6c6a20, 0x2c229: 0x6d6c6c20, 0x2c22a: 0x6d959620, 0x2c22b: 0x6d959820, + 0x2c22c: 0x6d959a20, 0x2c22d: 0x6d959c20, 0x2c22e: 0x6db8b020, 0x2c22f: 0x6dd71e20, + 0x2c230: 0x6dd72020, 0x2c231: 0x6defda20, 0x2c232: 0x6e34f820, 0x2c233: 0x6c0a8c20, + 0x2c234: 0x6c153a20, 0x2c235: 0x6c278c20, 0x2c236: 0x6c278e20, 0x2c237: 0x6c279020, + 0x2c238: 0x6c417c20, 0x2c239: 0x6c417e20, 0x2c23a: 0x6c418020, 0x2c23b: 0x6c61d220, + 0x2c23c: 0x6c61d420, 0x2c23d: 0x6d11fc20, 0x2c23e: 0x6c61d620, 0x2c23f: 0x6c61d820, + // Block 0xb09, offset 0x2c240 + 0x2c240: 0x6c61da20, 0x2c241: 0x6c61dc20, 0x2c242: 0x6c61de20, 0x2c243: 0x6c886c20, + 0x2c244: 0x6c886e20, 0x2c245: 0x6c887020, 0x2c246: 0x6c887220, 0x2c247: 0x6c887420, + 0x2c248: 0x6d400420, 0x2c249: 0x6d400620, 0x2c24a: 0x6cb40020, 0x2c24b: 0x6cb40220, + 0x2c24c: 0x6cb40420, 0x2c24d: 0x6cb40620, 0x2c24e: 0x6cb40820, 0x2c24f: 0x6cb40a20, + 0x2c250: 0x6ce3c020, 0x2c251: 0x6ce3c220, 0x2c252: 0x6ce3c420, 0x2c253: 0x6d120020, + 0x2c254: 0x6d120220, 0x2c255: 0x6d120420, 0x2c256: 0x6db90420, 0x2c257: 0x6d120620, + 0x2c258: 0x6d400a20, 0x2c259: 0x6d400c20, 0x2c25a: 0x6d400e20, 0x2c25b: 0x6d401020, + 0x2c25c: 0x6d401220, 0x2c25d: 0x6d6cfa20, 0x2c25e: 0x6d6cfc20, 0x2c25f: 0x6d6cfe20, + 0x2c260: 0x6d6d0020, 0x2c261: 0x6d95fc20, 0x2c262: 0x6db90620, 0x2c263: 0x6e2d1620, + 0x2c264: 0x6e2d1820, 0x2c265: 0x6c625620, 0x2c266: 0x6c625820, 0x2c267: 0x6c88ea20, + 0x2c268: 0x6c88ec20, 0x2c269: 0x6cb47420, 0x2c26a: 0x6cb47620, 0x2c26b: 0x6cb47820, + 0x2c26c: 0x6cb47a20, 0x2c26d: 0x6cb47c20, 0x2c26e: 0x6ce42020, 0x2c26f: 0x6ce42220, + 0x2c270: 0x6ce42420, 0x2c271: 0x6d126a20, 0x2c272: 0x6ce42620, 0x2c273: 0x6ce42820, + 0x2c274: 0x6d126c20, 0x2c275: 0x6d126e20, 0x2c276: 0x6d127020, 0x2c277: 0x6d127220, + 0x2c278: 0x6d127420, 0x2c279: 0x6d127620, 0x2c27a: 0x6d407a20, 0x2c27b: 0x6d407c20, + 0x2c27c: 0x6d6d4820, 0x2c27d: 0x6d6d4a20, 0x2c27e: 0x6d6d4c20, 0x2c27f: 0x6d6d4e20, + // Block 0xb0a, offset 0x2c280 + 0x2c280: 0x6d963020, 0x2c281: 0x6d963220, 0x2c282: 0x6d963420, 0x2c283: 0x6d963620, + 0x2c284: 0x6d963820, 0x2c285: 0x6d963a20, 0x2c286: 0x6d963c20, 0x2c287: 0x6d963e20, + 0x2c288: 0x6d964020, 0x2c289: 0x6db93420, 0x2c28a: 0x6db93620, 0x2c28b: 0x6db93820, + 0x2c28c: 0x6db93a20, 0x2c28d: 0x6dd78020, 0x2c28e: 0x6df00a20, 0x2c28f: 0x6df00c20, + 0x2c290: 0x6df00e20, 0x2c291: 0x6df01020, 0x2c292: 0x6df01220, 0x2c293: 0x6e155c20, + 0x2c294: 0x6e155e20, 0x2c295: 0x6e22f020, 0x2c296: 0x6e22f220, 0x2c297: 0x6e34fe20, + 0x2c298: 0x6e350020, 0x2c299: 0x6e433820, 0x2c29a: 0x6cb4ca20, 0x2c29b: 0x6c890c20, + 0x2c29c: 0x6cb4d420, 0x2c29d: 0x6ce47c20, 0x2c29e: 0x6ce47e20, 0x2c29f: 0x6ce48020, + 0x2c2a0: 0x6ce48220, 0x2c2a1: 0x6d12c020, 0x2c2a2: 0x6d12c220, 0x2c2a3: 0x6d12c420, + 0x2c2a4: 0x6d40d620, 0x2c2a5: 0x6d40d820, 0x2c2a6: 0x6d40da20, 0x2c2a7: 0x6d40dc20, + 0x2c2a8: 0x6d40de20, 0x2c2a9: 0x6d40e020, 0x2c2aa: 0x6d40e220, 0x2c2ab: 0x6d6db220, + 0x2c2ac: 0x6d6db420, 0x2c2ad: 0x6d6db620, 0x2c2ae: 0x6d6db820, 0x2c2af: 0x6d6dba20, + 0x2c2b0: 0x6d6dbc20, 0x2c2b1: 0x6d6dbe20, 0x2c2b2: 0x6d6dc020, 0x2c2b3: 0x6d969a20, + 0x2c2b4: 0x6d969c20, 0x2c2b5: 0x6d969e20, 0x2c2b6: 0x6d96a020, 0x2c2b7: 0x6db9a020, + 0x2c2b8: 0x6db9a220, 0x2c2b9: 0x6db9a420, 0x2c2ba: 0x6db9a620, 0x2c2bb: 0x6db9a820, + 0x2c2bc: 0x6db9aa20, 0x2c2bd: 0x6dd7d820, 0x2c2be: 0x6dd7da20, 0x2c2bf: 0x6dd7dc20, + // Block 0xb0b, offset 0x2c2c0 + 0x2c2c0: 0x6dd7de20, 0x2c2c1: 0x6dd7e020, 0x2c2c2: 0x6dd7e220, 0x2c2c3: 0x6dd7e420, + 0x2c2c4: 0x6dd7e620, 0x2c2c5: 0x6dd7e820, 0x2c2c6: 0x6dd7ea20, 0x2c2c7: 0x6dd7ec20, + 0x2c2c8: 0x6df05620, 0x2c2c9: 0x6df05820, 0x2c2ca: 0x6df05a20, 0x2c2cb: 0x6df05c20, + 0x2c2cc: 0x6df05e20, 0x2c2cd: 0x6df06020, 0x2c2ce: 0x6df06220, 0x2c2cf: 0x6df06420, + 0x2c2d0: 0x6df06620, 0x2c2d1: 0x6df06820, 0x2c2d2: 0x6df06a20, 0x2c2d3: 0x6df06c20, + 0x2c2d4: 0x6e046a20, 0x2c2d5: 0x6e046c20, 0x2c2d6: 0x6e046e20, 0x2c2d7: 0x6e047020, + 0x2c2d8: 0x6e047220, 0x2c2d9: 0x6e047420, 0x2c2da: 0x6e047620, 0x2c2db: 0x6e047820, + 0x2c2dc: 0x6e047a20, 0x2c2dd: 0x6e158020, 0x2c2de: 0x6e158220, 0x2c2df: 0x6e158420, + 0x2c2e0: 0x6e158620, 0x2c2e1: 0x6e158820, 0x2c2e2: 0x6e158a20, 0x2c2e3: 0x6e158c20, + 0x2c2e4: 0x6e158e20, 0x2c2e5: 0x6e159020, 0x2c2e6: 0x6e159220, 0x2c2e7: 0x6e230620, + 0x2c2e8: 0x6e230820, 0x2c2e9: 0x6e230a20, 0x2c2ea: 0x6e230c20, 0x2c2eb: 0x6e230e20, + 0x2c2ec: 0x6e231020, 0x2c2ed: 0x6e231220, 0x2c2ee: 0x6e231420, 0x2c2ef: 0x6e2d3a20, + 0x2c2f0: 0x6e2d3c20, 0x2c2f1: 0x6e2d3e20, 0x2c2f2: 0x6e2d4020, 0x2c2f3: 0x6e2d4220, + 0x2c2f4: 0x6e2d4420, 0x2c2f5: 0x6e351620, 0x2c2f6: 0x6e351820, 0x2c2f7: 0x6e351a20, + 0x2c2f8: 0x6e3ab220, 0x2c2f9: 0x6e449220, 0x2c2fa: 0x6ce52420, 0x2c2fb: 0x6ce52620, + 0x2c2fc: 0x6ce52820, 0x2c2fd: 0x6d139e20, 0x2c2fe: 0x6d13a020, 0x2c2ff: 0x6d13a220, + // Block 0xb0c, offset 0x2c300 + 0x2c300: 0x6d41c220, 0x2c301: 0x6d6ed020, 0x2c302: 0x6dd8fa20, 0x2c303: 0x6e058c20, + 0x2c304: 0x6e058e20, 0x2c305: 0x6e059020, 0x2c306: 0x6e435820, 0x2c307: 0x6cb58820, + 0x2c308: 0x6d13f620, 0x2c309: 0x6d13f820, 0x2c30a: 0x6d41fc20, 0x2c30b: 0x6df16420, + 0x2c30c: 0x6cb5a620, 0x2c30d: 0x6cb5a820, 0x2c30e: 0x6ce58c20, 0x2c30f: 0x6ce58e20, + 0x2c310: 0x6ce59020, 0x2c311: 0x6ce59220, 0x2c312: 0x6d141820, 0x2c313: 0x6d141a20, + 0x2c314: 0x6d141c20, 0x2c315: 0x6d420c20, 0x2c316: 0x6d420e20, 0x2c317: 0x6d421020, + 0x2c318: 0x6d421220, 0x2c319: 0x6d421420, 0x2c31a: 0x6d421620, 0x2c31b: 0x6d421820, + 0x2c31c: 0x6d6f1c20, 0x2c31d: 0x6d6f1e20, 0x2c31e: 0x6d6f2020, 0x2c31f: 0x6d6f2220, + 0x2c320: 0x6d982420, 0x2c321: 0x6d982620, 0x2c322: 0x6d982820, 0x2c323: 0x6d982a20, + 0x2c324: 0x6d982c20, 0x2c325: 0x6d982e20, 0x2c326: 0x6d983020, 0x2c327: 0x6d983220, + 0x2c328: 0x6d983420, 0x2c329: 0x6dbb2620, 0x2c32a: 0x6dbb2820, 0x2c32b: 0x6dbb2a20, + 0x2c32c: 0x6dbb2c20, 0x2c32d: 0x6dbb2e20, 0x2c32e: 0x6dbb3020, 0x2c32f: 0x6dbb3220, + 0x2c330: 0x6df17420, 0x2c331: 0x6e05a020, 0x2c332: 0x6e165620, 0x2c333: 0x6e165820, + 0x2c334: 0x6e165a20, 0x2c335: 0x6e23a420, 0x2c336: 0x6d426220, 0x2c337: 0x6d6f8220, + 0x2c338: 0x6dbb8620, 0x2c339: 0x6c0ab020, 0x2c33a: 0x6c0ab220, 0x2c33b: 0x6c15a220, + 0x2c33c: 0x6c281e20, 0x2c33d: 0x6c282020, 0x2c33e: 0x6c89a220, 0x2c33f: 0x6c282220, + // Block 0xb0d, offset 0x2c340 + 0x2c340: 0x6c282420, 0x2c341: 0x6c421220, 0x2c342: 0x6c421420, 0x2c343: 0x6c421620, + 0x2c344: 0x6c62cc20, 0x2c345: 0x6c62ce20, 0x2c346: 0x6c62d020, 0x2c347: 0x6c62d220, + 0x2c348: 0x6c62d420, 0x2c349: 0x6c89a420, 0x2c34a: 0x6c89a620, 0x2c34b: 0x6c89a820, + 0x2c34c: 0x6c89aa20, 0x2c34d: 0x6c89ac20, 0x2c34e: 0x6c89ae20, 0x2c34f: 0x6c89b020, + 0x2c350: 0x6cb5da20, 0x2c351: 0x6cb5dc20, 0x2c352: 0x6cb5de20, 0x2c353: 0x6cb5e020, + 0x2c354: 0x6cb5e220, 0x2c355: 0x6cb5e420, 0x2c356: 0x6cb5e620, 0x2c357: 0x6ce5fc20, + 0x2c358: 0x6ce5fe20, 0x2c359: 0x6ce60020, 0x2c35a: 0x6d148020, 0x2c35b: 0x6d148220, + 0x2c35c: 0x6d148420, 0x2c35d: 0x6d148620, 0x2c35e: 0x6d148820, 0x2c35f: 0x6d148a20, + 0x2c360: 0x6d426c20, 0x2c361: 0x6d426e20, 0x2c362: 0x6d427020, 0x2c363: 0x6d427220, + 0x2c364: 0x6d6f8820, 0x2c365: 0x6d6f8a20, 0x2c366: 0x6d6f8c20, 0x2c367: 0x6d989220, + 0x2c368: 0x6d989420, 0x2c369: 0x6d6f8e20, 0x2c36a: 0x6d989620, 0x2c36b: 0x6dbb8c20, + 0x2c36c: 0x6dbb8e20, 0x2c36d: 0x6dbb9020, 0x2c36e: 0x6df1a220, 0x2c36f: 0x6e05da20, + 0x2c370: 0x6e169020, 0x2c371: 0x6c8a3020, 0x2c372: 0x6cb66020, 0x2c373: 0x6cb66220, + 0x2c374: 0x6ce68a20, 0x2c375: 0x6ce68c20, 0x2c376: 0x6ce68e20, 0x2c377: 0x6d14e020, + 0x2c378: 0x6d14e220, 0x2c379: 0x6d14e420, 0x2c37a: 0x6d14e620, 0x2c37b: 0x6d42d020, + 0x2c37c: 0x6d6fcc20, 0x2c37d: 0x6d6fce20, 0x2c37e: 0x6d98c820, 0x2c37f: 0x6d98ca20, + // Block 0xb0e, offset 0x2c380 + 0x2c380: 0x6d8a5620, 0x2c381: 0x6dbbb620, 0x2c382: 0x6dbbb820, 0x2c383: 0x6dd98a20, + 0x2c384: 0x6df1ae20, 0x2c385: 0x6e05ee20, 0x2c386: 0x6e05f020, 0x2c387: 0x6e05f220, + 0x2c388: 0x6e23be20, 0x2c389: 0x6e3afa20, 0x2c38a: 0x6e464620, 0x2c38b: 0x6cb67c20, + 0x2c38c: 0x6ce6be20, 0x2c38d: 0x6ce6c020, 0x2c38e: 0x6d151820, 0x2c38f: 0x6d430c20, + 0x2c390: 0x6d430e20, 0x2c391: 0x6d431020, 0x2c392: 0x6d431220, 0x2c393: 0x6d431420, + 0x2c394: 0x6d431620, 0x2c395: 0x6d431820, 0x2c396: 0x6d431a20, 0x2c397: 0x6d6ffc20, + 0x2c398: 0x6d6ffe20, 0x2c399: 0x6d700020, 0x2c39a: 0x6d990e20, 0x2c39b: 0x6d991020, + 0x2c39c: 0x6d991220, 0x2c39d: 0x6d991420, 0x2c39e: 0x6dbbec20, 0x2c39f: 0x6dbbee20, + 0x2c3a0: 0x6dbbf020, 0x2c3a1: 0x6dbbf220, 0x2c3a2: 0x6dbbf420, 0x2c3a3: 0x6dbbf620, + 0x2c3a4: 0x6dbbf820, 0x2c3a5: 0x6dd9be20, 0x2c3a6: 0x6dd9c020, 0x2c3a7: 0x6dd9c220, + 0x2c3a8: 0x6dd9c420, 0x2c3a9: 0x6dd9c620, 0x2c3aa: 0x6dd9c820, 0x2c3ab: 0x6df1d420, + 0x2c3ac: 0x6df1d620, 0x2c3ad: 0x6df1d820, 0x2c3ae: 0x6df1da20, 0x2c3af: 0x6df1dc20, + 0x2c3b0: 0x6e061a20, 0x2c3b1: 0x6e061c20, 0x2c3b2: 0x6e23d220, 0x2c3b3: 0x6e23d420, + 0x2c3b4: 0x6e23d620, 0x2c3b5: 0x6e2de620, 0x2c3b6: 0x6e2de820, 0x2c3b7: 0x6e358e20, + 0x2c3b8: 0x6e3b0220, 0x2c3b9: 0x6e416620, 0x2c3ba: 0x6e46f020, 0x2c3bb: 0x6e473e20, + 0x2c3bc: 0x6e240c20, 0x2c3bd: 0x6cb69c20, 0x2c3be: 0x6cb69e20, 0x2c3bf: 0x6ce6fe20, + // Block 0xb0f, offset 0x2c3c0 + 0x2c3c0: 0x6d705020, 0x2c3c1: 0x6e067220, 0x2c3c2: 0x6d156820, 0x2c3c3: 0x6d156a20, + 0x2c3c4: 0x6d156c20, 0x2c3c5: 0x6d435c20, 0x2c3c6: 0x6d435e20, 0x2c3c7: 0x6d436020, + 0x2c3c8: 0x6d998620, 0x2c3c9: 0x6d998820, 0x2c3ca: 0x6dbc5620, 0x2c3cb: 0x6e067c20, + 0x2c3cc: 0x6e16f020, 0x2c3cd: 0x6e16f220, 0x2c3ce: 0x6e240e20, 0x2c3cf: 0x6e35b420, + 0x2c3d0: 0x6ce71820, 0x2c3d1: 0x6ce71a20, 0x2c3d2: 0x6ce71c20, 0x2c3d3: 0x6d157c20, + 0x2c3d4: 0x6d157e20, 0x2c3d5: 0x6d158020, 0x2c3d6: 0x6d158220, 0x2c3d7: 0x6d158420, + 0x2c3d8: 0x6d158620, 0x2c3d9: 0x6d437e20, 0x2c3da: 0x6d438020, 0x2c3db: 0x6d438220, + 0x2c3dc: 0x6d438420, 0x2c3dd: 0x6d438620, 0x2c3de: 0x6d438820, 0x2c3df: 0x6d707220, + 0x2c3e0: 0x6d99a220, 0x2c3e1: 0x6d99a420, 0x2c3e2: 0x6d99a620, 0x2c3e3: 0x6d99a820, + 0x2c3e4: 0x6d99aa20, 0x2c3e5: 0x6d99ac20, 0x2c3e6: 0x6d99ae20, 0x2c3e7: 0x6d99b020, + 0x2c3e8: 0x6dbc6620, 0x2c3e9: 0x6dbc6820, 0x2c3ea: 0x6dbc6a20, 0x2c3eb: 0x6dbc6c20, + 0x2c3ec: 0x6dbc6e20, 0x2c3ed: 0x6dbc7020, 0x2c3ee: 0x6dbc7220, 0x2c3ef: 0x6dda3020, + 0x2c3f0: 0x6dda3220, 0x2c3f1: 0x6dda3420, 0x2c3f2: 0x6dda3620, 0x2c3f3: 0x6dda3820, + 0x2c3f4: 0x6dda3a20, 0x2c3f5: 0x6dda3c20, 0x2c3f6: 0x6df24220, 0x2c3f7: 0x6df24420, + 0x2c3f8: 0x6df24620, 0x2c3f9: 0x6df24820, 0x2c3fa: 0x6df24a20, 0x2c3fb: 0x6df24c20, + 0x2c3fc: 0x6e068a20, 0x2c3fd: 0x6e068c20, 0x2c3fe: 0x6e068e20, 0x2c3ff: 0x6e170a20, + // Block 0xb10, offset 0x2c400 + 0x2c400: 0x6e170c20, 0x2c401: 0x6e170e20, 0x2c402: 0x6e171020, 0x2c403: 0x6e171220, + 0x2c404: 0x6e171420, 0x2c405: 0x6e241420, 0x2c406: 0x6e241620, 0x2c407: 0x6e2e0a20, + 0x2c408: 0x6e2e0c20, 0x2c409: 0x6e35ba20, 0x2c40a: 0x6e3b2020, 0x2c40b: 0x6e3b2220, + 0x2c40c: 0x6e3edc20, 0x2c40d: 0x6e3ede20, 0x2c40e: 0x6e417620, 0x2c40f: 0x6d15c620, + 0x2c410: 0x6d43d820, 0x2c411: 0x6d43da20, 0x2c412: 0x6d43dc20, 0x2c413: 0x6d43de20, + 0x2c414: 0x6d99ec20, 0x2c415: 0x6dbcc420, 0x2c416: 0x6ddaa420, 0x2c417: 0x6ddaa620, + 0x2c418: 0x6ddaa820, 0x2c419: 0x6df2a420, 0x2c41a: 0x6df2a620, 0x2c41b: 0x6e174020, + 0x2c41c: 0x6e244620, 0x2c41d: 0x6e2e2c20, 0x2c41e: 0x6d15de20, 0x2c41f: 0x6d70e020, + 0x2c420: 0x6dbce820, 0x2c421: 0x6df2c220, 0x2c422: 0x6df2c420, 0x2c423: 0x6e06ea20, + 0x2c424: 0x6e175620, 0x2c425: 0x6e2e3620, 0x2c426: 0x6ce73c20, 0x2c427: 0x6ce73e20, + 0x2c428: 0x6ce74020, 0x2c429: 0x6d15e620, 0x2c42a: 0x6d440220, 0x2c42b: 0x6d9a0820, + 0x2c42c: 0x6d9a0a20, 0x2c42d: 0x6ddaca20, 0x2c42e: 0x6df2cc20, 0x2c42f: 0x6df2ce20, + 0x2c430: 0x6e245c20, 0x2c431: 0x6ce74420, 0x2c432: 0x6ce74620, 0x2c433: 0x6d15f420, + 0x2c434: 0x6d15f620, 0x2c435: 0x6d15f820, 0x2c436: 0x6d441420, 0x2c437: 0x6d441620, + 0x2c438: 0x6d441820, 0x2c439: 0x6d441a20, 0x2c43a: 0x6d441c20, 0x2c43b: 0x6d441e20, + 0x2c43c: 0x6d442020, 0x2c43d: 0x6d442220, 0x2c43e: 0x6d442420, 0x2c43f: 0x6d70f820, + // Block 0xb11, offset 0x2c440 + 0x2c440: 0x6d70fa20, 0x2c441: 0x6d70fc20, 0x2c442: 0x6d70fe20, 0x2c443: 0x6d9a1a20, + 0x2c444: 0x6d9a1c20, 0x2c445: 0x6d9a1e20, 0x2c446: 0x6d9a2020, 0x2c447: 0x6d9a2220, + 0x2c448: 0x6d9a2420, 0x2c449: 0x6d9a2620, 0x2c44a: 0x6d9a2820, 0x2c44b: 0x6dbcfa20, + 0x2c44c: 0x6dbcfc20, 0x2c44d: 0x6dbcfe20, 0x2c44e: 0x6dbd0020, 0x2c44f: 0x6dbd0220, + 0x2c450: 0x6dbd0420, 0x2c451: 0x6dbd0620, 0x2c452: 0x6dbd0820, 0x2c453: 0x6dbd0a20, + 0x2c454: 0x6ddadc20, 0x2c455: 0x6ddade20, 0x2c456: 0x6ddae020, 0x2c457: 0x6ddae220, + 0x2c458: 0x6ddae420, 0x2c459: 0x6ddae620, 0x2c45a: 0x6ddae820, 0x2c45b: 0x6ddaea20, + 0x2c45c: 0x6ddaec20, 0x2c45d: 0x6ddaee20, 0x2c45e: 0x6df2dc20, 0x2c45f: 0x6df2de20, + 0x2c460: 0x6df2e020, 0x2c461: 0x6df2e220, 0x2c462: 0x6df2e420, 0x2c463: 0x6df2e620, + 0x2c464: 0x6df2e820, 0x2c465: 0x6df2ea20, 0x2c466: 0x6df2ec20, 0x2c467: 0x6df2ee20, + 0x2c468: 0x6e070620, 0x2c469: 0x6e070820, 0x2c46a: 0x6e070a20, 0x2c46b: 0x6e070c20, + 0x2c46c: 0x6e176620, 0x2c46d: 0x6e176820, 0x2c46e: 0x6e176a20, 0x2c46f: 0x6e176c20, + 0x2c470: 0x6e176e20, 0x2c471: 0x6e177020, 0x2c472: 0x6e246820, 0x2c473: 0x6e246a20, + 0x2c474: 0x6e246c20, 0x2c475: 0x6e35da20, 0x2c476: 0x6e35dc20, 0x2c477: 0x6e3b3620, + 0x2c478: 0x6cb6cc20, 0x2c479: 0x6ce77820, 0x2c47a: 0x6d165020, 0x2c47b: 0x6d165220, + 0x2c47c: 0x6d165420, 0x2c47d: 0x6d165620, 0x2c47e: 0x6d447e20, 0x2c47f: 0x6d448020, + // Block 0xb12, offset 0x2c480 + 0x2c480: 0x6d448220, 0x2c481: 0x6d448420, 0x2c482: 0x6d448620, 0x2c483: 0x6d448820, + 0x2c484: 0x6d716c20, 0x2c485: 0x6d716e20, 0x2c486: 0x6d9abc20, 0x2c487: 0x6d9abe20, + 0x2c488: 0x6d9ac020, 0x2c489: 0x6d9ac220, 0x2c48a: 0x6d9ac420, 0x2c48b: 0x6dbd6c20, + 0x2c48c: 0x6dbd6e20, 0x2c48d: 0x6dbd7020, 0x2c48e: 0x6dbd7220, 0x2c48f: 0x6dbd7420, + 0x2c490: 0x6dbd7620, 0x2c491: 0x6ddb4220, 0x2c492: 0x6ddb4420, 0x2c493: 0x6ddb4620, + 0x2c494: 0x6ddb4820, 0x2c495: 0x6ddb4a20, 0x2c496: 0x6ddb4c20, 0x2c497: 0x6ddb4e20, + 0x2c498: 0x6df33c20, 0x2c499: 0x6df33e20, 0x2c49a: 0x6df34020, 0x2c49b: 0x6e074a20, + 0x2c49c: 0x6e074c20, 0x2c49d: 0x6e17ae20, 0x2c49e: 0x6e2e6e20, 0x2c49f: 0x6e35f220, + 0x2c4a0: 0x6dbdbc20, 0x2c4a1: 0x6ddb8620, 0x2c4a2: 0x6cb6d620, 0x2c4a3: 0x6ce79820, + 0x2c4a4: 0x6ce79a20, 0x2c4a5: 0x6ce79c20, 0x2c4a6: 0x6d168a20, 0x2c4a7: 0x6d168c20, + 0x2c4a8: 0x6d168e20, 0x2c4a9: 0x6d169020, 0x2c4aa: 0x6d169220, 0x2c4ab: 0x6d44c220, + 0x2c4ac: 0x6d44c420, 0x2c4ad: 0x6d44c620, 0x2c4ae: 0x6d44c820, 0x2c4af: 0x6d44ca20, + 0x2c4b0: 0x6d44cc20, 0x2c4b1: 0x6d44ce20, 0x2c4b2: 0x6d44d020, 0x2c4b3: 0x6d44d220, + 0x2c4b4: 0x6d44d420, 0x2c4b5: 0x6d719820, 0x2c4b6: 0x6d719a20, 0x2c4b7: 0x6d719c20, + 0x2c4b8: 0x6d719e20, 0x2c4b9: 0x6d71a020, 0x2c4ba: 0x6d71a220, 0x2c4bb: 0x6d71a420, + 0x2c4bc: 0x6d9afa20, 0x2c4bd: 0x6d9afc20, 0x2c4be: 0x6d9afe20, 0x2c4bf: 0x6d9b0020, + // Block 0xb13, offset 0x2c4c0 + 0x2c4c0: 0x6d9b0220, 0x2c4c1: 0x6d9b0420, 0x2c4c2: 0x6d9b0620, 0x2c4c3: 0x6dbdc020, + 0x2c4c4: 0x6dbdc220, 0x2c4c5: 0x6dbdc420, 0x2c4c6: 0x6dbdc620, 0x2c4c7: 0x6dbdc820, + 0x2c4c8: 0x6ddb8a20, 0x2c4c9: 0x6ddb8c20, 0x2c4ca: 0x6ddb8e20, 0x2c4cb: 0x6ddb9020, + 0x2c4cc: 0x6ddb9220, 0x2c4cd: 0x6ddb9420, 0x2c4ce: 0x6ddb9620, 0x2c4cf: 0x6ddb9820, + 0x2c4d0: 0x6df37e20, 0x2c4d1: 0x6df38020, 0x2c4d2: 0x6df38220, 0x2c4d3: 0x6df38420, + 0x2c4d4: 0x6df38620, 0x2c4d5: 0x6e076e20, 0x2c4d6: 0x6e077020, 0x2c4d7: 0x6e077220, + 0x2c4d8: 0x6e17e220, 0x2c4d9: 0x6e17e420, 0x2c4da: 0x6e17e620, 0x2c4db: 0x6e17e820, + 0x2c4dc: 0x6e17ea20, 0x2c4dd: 0x6e24a620, 0x2c4de: 0x6e24a820, 0x2c4df: 0x6e24aa20, + 0x2c4e0: 0x6e24ac20, 0x2c4e1: 0x6e2e7a20, 0x2c4e2: 0x6e2e7c20, 0x2c4e3: 0x6e2e7e20, + 0x2c4e4: 0x6e2e8020, 0x2c4e5: 0x6e360020, 0x2c4e6: 0x6e3f0420, 0x2c4e7: 0x6e3f0620, + 0x2c4e8: 0x6e419620, 0x2c4e9: 0x6e437420, 0x2c4ea: 0x6e182020, 0x2c4eb: 0x6d720820, + 0x2c4ec: 0x6d720a20, 0x2c4ed: 0x6ddbfa20, 0x2c4ee: 0x6df3e420, 0x2c4ef: 0x6d453420, + 0x2c4f0: 0x6dbe5020, 0x2c4f1: 0x6dbe5220, 0x2c4f2: 0x6dbe5420, 0x2c4f3: 0x6e419e20, + 0x2c4f4: 0x6ce7f020, 0x2c4f5: 0x6d171020, 0x2c4f6: 0x6d171220, 0x2c4f7: 0x6d454820, + 0x2c4f8: 0x6d454a20, 0x2c4f9: 0x6d454c20, 0x2c4fa: 0x6d454e20, 0x2c4fb: 0x6d455020, + 0x2c4fc: 0x6d455220, 0x2c4fd: 0x6d455420, 0x2c4fe: 0x6d455620, 0x2c4ff: 0x6d722420, + // Block 0xb14, offset 0x2c500 + 0x2c500: 0x6d722620, 0x2c501: 0x6d722820, 0x2c502: 0x6d722a20, 0x2c503: 0x6d722c20, + 0x2c504: 0x6d722e20, 0x2c505: 0x6d723020, 0x2c506: 0x6d9baa20, 0x2c507: 0x6d9bac20, + 0x2c508: 0x6d9bae20, 0x2c509: 0x6d9bb020, 0x2c50a: 0x6d9bb220, 0x2c50b: 0x6d9bb420, + 0x2c50c: 0x6d9bb620, 0x2c50d: 0x6d9bb820, 0x2c50e: 0x6dbe6620, 0x2c50f: 0x6dbe6820, + 0x2c510: 0x6dbe6a20, 0x2c511: 0x6dbe6c20, 0x2c512: 0x6dbe6e20, 0x2c513: 0x6ddc1620, + 0x2c514: 0x6ddc1820, 0x2c515: 0x6ddc1a20, 0x2c516: 0x6ddc1c20, 0x2c517: 0x6ddc1e20, + 0x2c518: 0x6ddc2020, 0x2c519: 0x6ddc2220, 0x2c51a: 0x6ddc2420, 0x2c51b: 0x6ddc2620, + 0x2c51c: 0x6df3fc20, 0x2c51d: 0x6df3fe20, 0x2c51e: 0x6df40020, 0x2c51f: 0x6df40220, + 0x2c520: 0x6df40420, 0x2c521: 0x6df40620, 0x2c522: 0x6df40820, 0x2c523: 0x6e07d820, + 0x2c524: 0x6e07da20, 0x2c525: 0x6e07dc20, 0x2c526: 0x6e07de20, 0x2c527: 0x6e07e020, + 0x2c528: 0x6e07e220, 0x2c529: 0x6e07e420, 0x2c52a: 0x6e183220, 0x2c52b: 0x6e183420, + 0x2c52c: 0x6e183620, 0x2c52d: 0x6e183820, 0x2c52e: 0x6e183a20, 0x2c52f: 0x6e183c20, + 0x2c530: 0x6e183e20, 0x2c531: 0x6e184020, 0x2c532: 0x6e24e420, 0x2c533: 0x6e24e620, + 0x2c534: 0x6e24e820, 0x2c535: 0x6e24ea20, 0x2c536: 0x6e24ec20, 0x2c537: 0x6e2e9e20, + 0x2c538: 0x6e2ea020, 0x2c539: 0x6e2ea220, 0x2c53a: 0x6e361c20, 0x2c53b: 0x6e361e20, + 0x2c53c: 0x6e362020, 0x2c53d: 0x6e3b5620, 0x2c53e: 0x6e3f1220, 0x2c53f: 0x6e41a220, + // Block 0xb15, offset 0x2c540 + 0x2c540: 0x6e437820, 0x2c541: 0x6e44c020, 0x2c542: 0x6e46b820, 0x2c543: 0x6d9c3020, + 0x2c544: 0x6dbec220, 0x2c545: 0x6e086c20, 0x2c546: 0x6cb72e20, 0x2c547: 0x6ce82a20, + 0x2c548: 0x6d45b820, 0x2c549: 0x6d45ba20, 0x2c54a: 0x6d72b220, 0x2c54b: 0x6d72b420, + 0x2c54c: 0x6d72b620, 0x2c54d: 0x6d72b820, 0x2c54e: 0x6d72ba20, 0x2c54f: 0x6d9c3620, + 0x2c550: 0x6d9c3820, 0x2c551: 0x6d9c3a20, 0x2c552: 0x6d9c3c20, 0x2c553: 0x6d9c3e20, + 0x2c554: 0x6d9c4020, 0x2c555: 0x6dbec620, 0x2c556: 0x6dbec820, 0x2c557: 0x6dbeca20, + 0x2c558: 0x6dbecc20, 0x2c559: 0x6dbece20, 0x2c55a: 0x6dbed020, 0x2c55b: 0x6ddca820, + 0x2c55c: 0x6ddcaa20, 0x2c55d: 0x6df48420, 0x2c55e: 0x6df48620, 0x2c55f: 0x6df48820, + 0x2c560: 0x6df48a20, 0x2c561: 0x6e087420, 0x2c562: 0x6e189220, 0x2c563: 0x6e254420, + 0x2c564: 0x6e2ee420, 0x2c565: 0x6e364220, 0x2c566: 0x6e3b7220, 0x2c567: 0x6ce83e20, + 0x2c568: 0x6d177220, 0x2c569: 0x6d45e420, 0x2c56a: 0x6df4a420, 0x2c56b: 0x6e256220, + 0x2c56c: 0x6e3b7e20, 0x2c56d: 0x6ce84220, 0x2c56e: 0x6ce84420, 0x2c56f: 0x6d45fa20, + 0x2c570: 0x6d45fc20, 0x2c571: 0x6d45fe20, 0x2c572: 0x6d460020, 0x2c573: 0x6d460220, + 0x2c574: 0x6d460420, 0x2c575: 0x6d72ee20, 0x2c576: 0x6d72f020, 0x2c577: 0x6d9c7c20, + 0x2c578: 0x6d9c7e20, 0x2c579: 0x6dbf0c20, 0x2c57a: 0x6dbf0e20, 0x2c57b: 0x6dbf1020, + 0x2c57c: 0x6dbf1220, 0x2c57d: 0x6ddce420, 0x2c57e: 0x6ddce620, 0x2c57f: 0x6ddce820, + // Block 0xb16, offset 0x2c580 + 0x2c580: 0x6ddcea20, 0x2c581: 0x6ddcec20, 0x2c582: 0x6ddcee20, 0x2c583: 0x6ddcf020, + 0x2c584: 0x6df4aa20, 0x2c585: 0x6df4ac20, 0x2c586: 0x6df4ae20, 0x2c587: 0x6df4b020, + 0x2c588: 0x6e08aa20, 0x2c589: 0x6e08ac20, 0x2c58a: 0x6e08ae20, 0x2c58b: 0x6e08b020, + 0x2c58c: 0x6e18b020, 0x2c58d: 0x6e18b220, 0x2c58e: 0x6e256a20, 0x2c58f: 0x6e365420, + 0x2c590: 0x6e365620, 0x2c591: 0x6e365820, 0x2c592: 0x6e365a20, 0x2c593: 0x6e3b8220, + 0x2c594: 0x6e3b8420, 0x2c595: 0x6e3f3020, 0x2c596: 0x6e44c820, 0x2c597: 0x6e08ec20, + 0x2c598: 0x6e18e820, 0x2c599: 0x6d464420, 0x2c59a: 0x6d464620, 0x2c59b: 0x6d734c20, + 0x2c59c: 0x6d9cc620, 0x2c59d: 0x6e25ac20, 0x2c59e: 0x6e3b9c20, 0x2c59f: 0x6d464e20, + 0x2c5a0: 0x6d735420, 0x2c5a1: 0x6d735620, 0x2c5a2: 0x6d9cda20, 0x2c5a3: 0x6d9cdc20, + 0x2c5a4: 0x6ddd4e20, 0x2c5a5: 0x6ddd5020, 0x2c5a6: 0x6ddd5220, 0x2c5a7: 0x6ddd5420, + 0x2c5a8: 0x6df50420, 0x2c5a9: 0x6df50620, 0x2c5aa: 0x6e090020, 0x2c5ab: 0x6e25b820, + 0x2c5ac: 0x6e25ba20, 0x2c5ad: 0x6e25bc20, 0x2c5ae: 0x6e2f3420, 0x2c5af: 0x6e368620, + 0x2c5b0: 0x6e368820, 0x2c5b1: 0x6e46ba20, 0x2c5b2: 0x6ce86c20, 0x2c5b3: 0x6d17c420, + 0x2c5b4: 0x6d468c20, 0x2c5b5: 0x6d468e20, 0x2c5b6: 0x6d469020, 0x2c5b7: 0x6d738620, + 0x2c5b8: 0x6d738820, 0x2c5b9: 0x6d738a20, 0x2c5ba: 0x6d738c20, 0x2c5bb: 0x6d738e20, + 0x2c5bc: 0x6d739020, 0x2c5bd: 0x6d739220, 0x2c5be: 0x6d739420, 0x2c5bf: 0x6d9d0e20, + // Block 0xb17, offset 0x2c5c0 + 0x2c5c0: 0x6d9d1020, 0x2c5c1: 0x6d9d1220, 0x2c5c2: 0x6d9d1420, 0x2c5c3: 0x6d9d1620, + 0x2c5c4: 0x6d9d1820, 0x2c5c5: 0x6d9d1a20, 0x2c5c6: 0x6d9d1c20, 0x2c5c7: 0x6d9d1e20, + 0x2c5c8: 0x6d9d2020, 0x2c5c9: 0x6d9d2220, 0x2c5ca: 0x6dbf9220, 0x2c5cb: 0x6dbf9420, + 0x2c5cc: 0x6dbf9620, 0x2c5cd: 0x6dbf9820, 0x2c5ce: 0x6dbf9a20, 0x2c5cf: 0x6ddd8420, + 0x2c5d0: 0x6ddd8620, 0x2c5d1: 0x6ddd8820, 0x2c5d2: 0x6ddd8a20, 0x2c5d3: 0x6ddd8c20, + 0x2c5d4: 0x6ddd8e20, 0x2c5d5: 0x6ddd9020, 0x2c5d6: 0x6ddd9220, 0x2c5d7: 0x6ddd9420, + 0x2c5d8: 0x6ddd9620, 0x2c5d9: 0x6df51e20, 0x2c5da: 0x6df52020, 0x2c5db: 0x6df52220, + 0x2c5dc: 0x6df52420, 0x2c5dd: 0x6df52620, 0x2c5de: 0x6df52820, 0x2c5df: 0x6df52a20, + 0x2c5e0: 0x6df52c20, 0x2c5e1: 0x6df52e20, 0x2c5e2: 0x6df53020, 0x2c5e3: 0x6df53220, + 0x2c5e4: 0x6df53420, 0x2c5e5: 0x6df53620, 0x2c5e6: 0x6df53820, 0x2c5e7: 0x6df53a20, + 0x2c5e8: 0x6df53c20, 0x2c5e9: 0x6df53e20, 0x2c5ea: 0x6df54020, 0x2c5eb: 0x6e091e20, + 0x2c5ec: 0x6e092020, 0x2c5ed: 0x6e092220, 0x2c5ee: 0x6e092420, 0x2c5ef: 0x6e092620, + 0x2c5f0: 0x6e092820, 0x2c5f1: 0x6e092a20, 0x2c5f2: 0x6e092c20, 0x2c5f3: 0x6e092e20, + 0x2c5f4: 0x6e093020, 0x2c5f5: 0x6e193420, 0x2c5f6: 0x6e193620, 0x2c5f7: 0x6e193820, + 0x2c5f8: 0x6e193a20, 0x2c5f9: 0x6e193c20, 0x2c5fa: 0x6e193e20, 0x2c5fb: 0x6e194020, + 0x2c5fc: 0x6e194220, 0x2c5fd: 0x6e194420, 0x2c5fe: 0x6e25c820, 0x2c5ff: 0x6e25ca20, + // Block 0xb18, offset 0x2c600 + 0x2c600: 0x6e25cc20, 0x2c601: 0x6e25ce20, 0x2c602: 0x6e25d020, 0x2c603: 0x6e25d220, + 0x2c604: 0x6e25d420, 0x2c605: 0x6e25d620, 0x2c606: 0x6e25d820, 0x2c607: 0x6e25da20, + 0x2c608: 0x6e25dc20, 0x2c609: 0x6e2f4820, 0x2c60a: 0x6e2f4a20, 0x2c60b: 0x6e2f4c20, + 0x2c60c: 0x6e2f4e20, 0x2c60d: 0x6e2f5020, 0x2c60e: 0x6e2f5220, 0x2c60f: 0x6e2f5420, + 0x2c610: 0x6e369a20, 0x2c611: 0x6e369c20, 0x2c612: 0x6e369e20, 0x2c613: 0x6e36a020, + 0x2c614: 0x6e36a220, 0x2c615: 0x6e36a420, 0x2c616: 0x6e3ba620, 0x2c617: 0x6e3ba820, + 0x2c618: 0x6e3baa20, 0x2c619: 0x6e3f5220, 0x2c61a: 0x6e41d620, 0x2c61b: 0x6e41d820, + 0x2c61c: 0x6e473220, 0x2c61d: 0x6d740a20, 0x2c61e: 0x6d9dac20, 0x2c61f: 0x6d9dae20, + 0x2c620: 0x6e09e820, 0x2c621: 0x6e09ea20, 0x2c622: 0x6e19f220, 0x2c623: 0x6e19f420, + 0x2c624: 0x6e19f620, 0x2c625: 0x6d180620, 0x2c626: 0x6d46e820, 0x2c627: 0x6d46ea20, + 0x2c628: 0x6d46ec20, 0x2c629: 0x6d46ee20, 0x2c62a: 0x6d46f020, 0x2c62b: 0x6d46f220, + 0x2c62c: 0x6d743620, 0x2c62d: 0x6d743820, 0x2c62e: 0x6d743a20, 0x2c62f: 0x6d743c20, + 0x2c630: 0x6d743e20, 0x2c631: 0x6d744020, 0x2c632: 0x6d744220, 0x2c633: 0x6d744420, + 0x2c634: 0x6d744620, 0x2c635: 0x6d744820, 0x2c636: 0x6d744a20, 0x2c637: 0x6d744c20, + 0x2c638: 0x6d744e20, 0x2c639: 0x6d9de220, 0x2c63a: 0x6d9de420, 0x2c63b: 0x6d9de620, + 0x2c63c: 0x6d9de820, 0x2c63d: 0x6d9dea20, 0x2c63e: 0x6d9dec20, 0x2c63f: 0x6d9dee20, + // Block 0xb19, offset 0x2c640 + 0x2c640: 0x6d9df020, 0x2c641: 0x6d9df220, 0x2c642: 0x6d9df420, 0x2c643: 0x6d9df620, + 0x2c644: 0x6d9df820, 0x2c645: 0x6d9dfa20, 0x2c646: 0x6d9dfc20, 0x2c647: 0x6d9dfe20, + 0x2c648: 0x6d9e0020, 0x2c649: 0x6d9e0220, 0x2c64a: 0x6d9e0420, 0x2c64b: 0x6dc06c20, + 0x2c64c: 0x6dc06e20, 0x2c64d: 0x6dc07020, 0x2c64e: 0x6dc07220, 0x2c64f: 0x6dc07420, + 0x2c650: 0x6dc07620, 0x2c651: 0x6dc07820, 0x2c652: 0x6dc07a20, 0x2c653: 0x6dc07c20, + 0x2c654: 0x6dc07e20, 0x2c655: 0x6dde3e20, 0x2c656: 0x6dde4020, 0x2c657: 0x6dde4220, + 0x2c658: 0x6dde4420, 0x2c659: 0x6dde4620, 0x2c65a: 0x6dde4820, 0x2c65b: 0x6dde4a20, + 0x2c65c: 0x6dde4c20, 0x2c65d: 0x6df63a20, 0x2c65e: 0x6df63c20, 0x2c65f: 0x6df63e20, + 0x2c660: 0x6df64020, 0x2c661: 0x6df64220, 0x2c662: 0x6df64420, 0x2c663: 0x6df64620, + 0x2c664: 0x6df64820, 0x2c665: 0x6df64a20, 0x2c666: 0x6e09f820, 0x2c667: 0x6e09fa20, + 0x2c668: 0x6e09fc20, 0x2c669: 0x6e09fe20, 0x2c66a: 0x6e0a0020, 0x2c66b: 0x6e0a0220, + 0x2c66c: 0x6e0a0420, 0x2c66d: 0x6e0a0620, 0x2c66e: 0x6e0a0820, 0x2c66f: 0x6e0a0a20, + 0x2c670: 0x6e0a0c20, 0x2c671: 0x6e1a0420, 0x2c672: 0x6e1a0620, 0x2c673: 0x6e1a0820, + 0x2c674: 0x6e1a0a20, 0x2c675: 0x6e1a0c20, 0x2c676: 0x6e1a0e20, 0x2c677: 0x6e267820, + 0x2c678: 0x6e267a20, 0x2c679: 0x6e267c20, 0x2c67a: 0x6e267e20, 0x2c67b: 0x6e268020, + 0x2c67c: 0x6e268220, 0x2c67d: 0x6e268420, 0x2c67e: 0x6e2fe020, 0x2c67f: 0x6e2fe220, + // Block 0xb1a, offset 0x2c680 + 0x2c680: 0x6e2fe420, 0x2c681: 0x6e2fe620, 0x2c682: 0x6e2fe820, 0x2c683: 0x6e2fea20, + 0x2c684: 0x6e2fec20, 0x2c685: 0x6e2fee20, 0x2c686: 0x6e2ff020, 0x2c687: 0x6e371820, + 0x2c688: 0x6e371a20, 0x2c689: 0x6e371c20, 0x2c68a: 0x6e371e20, 0x2c68b: 0x6e372020, + 0x2c68c: 0x6e3be620, 0x2c68d: 0x6e3be820, 0x2c68e: 0x6e3f8620, 0x2c68f: 0x6e41f820, + 0x2c690: 0x6e45fe20, 0x2c691: 0x6e46bc20, 0x2c692: 0x6e46d420, 0x2c693: 0x6d74de20, + 0x2c694: 0x6dc13420, 0x2c695: 0x6dc13620, 0x2c696: 0x6df72e20, 0x2c697: 0x6e0ad420, + 0x2c698: 0x6e1ac220, 0x2c699: 0x6e378a20, 0x2c69a: 0x6d74fe20, 0x2c69b: 0x6ddef020, + 0x2c69c: 0x6e1ac420, 0x2c69d: 0x6e30a820, 0x2c69e: 0x6e3c3220, 0x2c69f: 0x6d474a20, + 0x2c6a0: 0x6d750c20, 0x2c6a1: 0x6d750e20, 0x2c6a2: 0x6d751020, 0x2c6a3: 0x6d9edc20, + 0x2c6a4: 0x6d9ede20, 0x2c6a5: 0x6d9ee020, 0x2c6a6: 0x6ddefa20, 0x2c6a7: 0x6df74620, + 0x2c6a8: 0x6e1ad420, 0x2c6a9: 0x6e274220, 0x2c6aa: 0x6e379620, 0x2c6ab: 0x6e379820, + 0x2c6ac: 0x6d475020, 0x2c6ad: 0x6d475220, 0x2c6ae: 0x6d475420, 0x2c6af: 0x6d753020, + 0x2c6b0: 0x6d753220, 0x2c6b1: 0x6d9efe20, 0x2c6b2: 0x6d9f0020, 0x2c6b3: 0x6d9f0220, + 0x2c6b4: 0x6d9f0420, 0x2c6b5: 0x6dc16e20, 0x2c6b6: 0x6ddf2820, 0x2c6b7: 0x6ddf2a20, + 0x2c6b8: 0x6ddf2c20, 0x2c6b9: 0x6df76a20, 0x2c6ba: 0x6df76c20, 0x2c6bb: 0x6df76e20, + 0x2c6bc: 0x6df77020, 0x2c6bd: 0x6df77220, 0x2c6be: 0x6e1ae420, 0x2c6bf: 0x6e1ae620, + // Block 0xb1b, offset 0x2c6c0 + 0x2c6c0: 0x6e1ae820, 0x2c6c1: 0x6e275020, 0x2c6c2: 0x6e275220, 0x2c6c3: 0x6e30c820, + 0x2c6c4: 0x6e37a420, 0x2c6c5: 0x6e275420, 0x2c6c6: 0x6e3c4820, 0x2c6c7: 0x6d756220, + 0x2c6c8: 0x6e0b2620, 0x2c6c9: 0x6e0b2820, 0x2c6ca: 0x6d9f3220, 0x2c6cb: 0x6ddf5820, + 0x2c6cc: 0x6df7a420, 0x2c6cd: 0x6e0b3020, 0x2c6ce: 0x6e1afe20, 0x2c6cf: 0x6e30de20, + 0x2c6d0: 0x6e37b620, 0x2c6d1: 0x6d757e20, 0x2c6d2: 0x6d9f3a20, 0x2c6d3: 0x6d9f3c20, + 0x2c6d4: 0x6e0b3e20, 0x2c6d5: 0x6e0b4020, 0x2c6d6: 0x6e0b4220, 0x2c6d7: 0x6e1b0c20, + 0x2c6d8: 0x6e1b0e20, 0x2c6d9: 0x6e1b1020, 0x2c6da: 0x6e278220, 0x2c6db: 0x6e30e620, + 0x2c6dc: 0x6e3c4e20, 0x2c6dd: 0x6d187020, 0x2c6de: 0x6d477220, 0x2c6df: 0x6d758620, + 0x2c6e0: 0x6dc1bc20, 0x2c6e1: 0x6d9f4a20, 0x2c6e2: 0x6dc1be20, 0x2c6e3: 0x6dc1c020, + 0x2c6e4: 0x6ddf6a20, 0x2c6e5: 0x6ddf6c20, 0x2c6e6: 0x6ddf6e20, 0x2c6e7: 0x6ddf7020, + 0x2c6e8: 0x6df7c220, 0x2c6e9: 0x6df7c420, 0x2c6ea: 0x6e0b4e20, 0x2c6eb: 0x6e0b5020, + 0x2c6ec: 0x6e0b5220, 0x2c6ed: 0x6e1b1a20, 0x2c6ee: 0x6e1b1c20, 0x2c6ef: 0x6e1b1e20, + 0x2c6f0: 0x6e30f020, 0x2c6f1: 0x6e37c020, 0x2c6f2: 0x6e3c5220, 0x2c6f3: 0x6e3c5420, + 0x2c6f4: 0x6e3c5620, 0x2c6f5: 0x6e3fc620, 0x2c6f6: 0x6ddf8c20, 0x2c6f7: 0x6df7e220, + 0x2c6f8: 0x6e27ae20, 0x2c6f9: 0x6e37e420, 0x2c6fa: 0x6d9f7620, 0x2c6fb: 0x6e37e820, + 0x2c6fc: 0x6e37ea20, 0x2c6fd: 0x6ddfa420, 0x2c6fe: 0x6ddfa620, 0x2c6ff: 0x6ddfa820, + // Block 0xb1c, offset 0x2c700 + 0x2c700: 0x6df7f620, 0x2c701: 0x6e1b6c20, 0x2c702: 0x6d9f8020, 0x2c703: 0x6dc20020, + 0x2c704: 0x6ddfb620, 0x2c705: 0x6df80a20, 0x2c706: 0x6e1b7e20, 0x2c707: 0x6e27d620, + 0x2c708: 0x6e311820, 0x2c709: 0x6e311a20, 0x2c70a: 0x6ddfdc20, 0x2c70b: 0x6ddfde20, + 0x2c70c: 0x6df82020, 0x2c70d: 0x6e0bc420, 0x2c70e: 0x6e0bc620, 0x2c70f: 0x6e1b8820, + 0x2c710: 0x6e424c20, 0x2c711: 0x6e45a820, 0x2c712: 0x6dc22820, 0x2c713: 0x6dc22a20, + 0x2c714: 0x6ddff420, 0x2c715: 0x6df83a20, 0x2c716: 0x6df83c20, 0x2c717: 0x6e0bd420, + 0x2c718: 0x6e0bd620, 0x2c719: 0x6e0bd820, 0x2c71a: 0x6e1ba020, 0x2c71b: 0x6e1ba220, + 0x2c71c: 0x6e27fc20, 0x2c71d: 0x6e27fe20, 0x2c71e: 0x6e314620, 0x2c71f: 0x6e314820, + 0x2c720: 0x6e380c20, 0x2c721: 0x6e380e20, 0x2c722: 0x6e381020, 0x2c723: 0x6e3ca420, + 0x2c724: 0x6e3ca620, 0x2c725: 0x6e3fe620, 0x2c726: 0x6e3fe820, 0x2c727: 0x6e425620, + 0x2c728: 0x6e440420, 0x2c729: 0x6e450c20, 0x2c72a: 0x6e450e20, 0x2c72b: 0x6e46da20, + 0x2c72c: 0x6e283620, 0x2c72d: 0x6e0c2020, 0x2c72e: 0x6e0c2220, 0x2c72f: 0x6df86420, + 0x2c730: 0x6e0c2420, 0x2c731: 0x6e1be620, 0x2c732: 0x6e1be820, 0x2c733: 0x6e1bfe20, + 0x2c734: 0x6e3cd820, 0x2c735: 0x6e427e20, + // Block 0xb1d, offset 0x2c740 + 0x2c740: 0x6c000220, 0x2c741: 0x6c003220, 0x2c742: 0x6c003420, 0x2c743: 0x6c003620, + 0x2c744: 0x6c003820, 0x2c745: 0x6c003a20, 0x2c746: 0x6c003c20, 0x2c747: 0x6c00d820, + 0x2c748: 0x6c00da20, 0x2c749: 0x6c00dc20, 0x2c74a: 0x6c00de20, 0x2c74b: 0x6c00e020, + 0x2c74c: 0x6c00e220, 0x2c74d: 0x6c021a20, 0x2c74e: 0x6c021c20, 0x2c74f: 0x6c021e20, + 0x2c750: 0x6c022020, 0x2c751: 0x6c022220, 0x2c752: 0x6c022420, 0x2c753: 0x6c022620, + 0x2c754: 0x6c054020, 0x2c755: 0x6c054220, 0x2c756: 0x6c054420, 0x2c757: 0x6c053c20, + 0x2c758: 0x6c054620, 0x2c759: 0x6c054820, 0x2c75a: 0x6c054a20, 0x2c75b: 0x6c054c20, + 0x2c75c: 0x6c054e20, 0x2c75d: 0x6c055020, 0x2c75e: 0x6c0ad020, 0x2c75f: 0x6c0ad220, + 0x2c760: 0x6c0ad420, 0x2c761: 0x6c0ad620, 0x2c762: 0x6c0ad820, 0x2c763: 0x6c15e420, + 0x2c764: 0x6c15e620, 0x2c765: 0x6c15e820, 0x2c766: 0x6c28ae20, 0x2c767: 0x6c28b020, + 0x2c768: 0x6c000420, 0x2c769: 0x6c004420, 0x2c76a: 0x6c00fa20, 0x2c76b: 0x6c00fc20, + 0x2c76c: 0x6c04e220, 0x2c76d: 0x6c023620, 0x2c76e: 0x6c023820, 0x2c76f: 0x6c023a20, + 0x2c770: 0x6c023c20, 0x2c771: 0x6c056820, 0x2c772: 0x6c160020, 0x2c773: 0x6c28c420, + 0x2c774: 0x6c42f620, 0x2c775: 0x6c63d820, 0x2c776: 0x6c000620, 0x2c777: 0x6c004a20, + 0x2c778: 0x6c00fe20, 0x2c779: 0x6c024220, 0x2c77a: 0x6c024420, 0x2c77b: 0x6c056c20, + 0x2c77c: 0x6c056e20, 0x2c77d: 0x6c15ea20, 0x2c77e: 0x6c430020, 0x2c77f: 0x6c000820, + // Block 0xb1e, offset 0x2c780 + 0x2c780: 0x6c000a20, 0x2c781: 0x6c000c20, 0x2c782: 0x6c005020, 0x2c783: 0x6c005220, + 0x2c784: 0x6c005420, 0x2c785: 0x6c010620, 0x2c786: 0x6c010820, 0x2c787: 0x6c010a20, + 0x2c788: 0x6c010c20, 0x2c789: 0x6c010020, 0x2c78a: 0x6c010e20, 0x2c78b: 0x6c024820, + 0x2c78c: 0x6c024a20, 0x2c78d: 0x6c057420, 0x2c78e: 0x6c057620, 0x2c78f: 0x6c057820, + 0x2c790: 0x6c057a20, 0x2c791: 0x6c0af020, 0x2c792: 0x6c0af220, 0x2c793: 0x6c0af420, + 0x2c794: 0x6c0af620, 0x2c795: 0x6c160620, 0x2c796: 0x6c28d020, 0x2c797: 0x6c430220, + 0x2c798: 0x6c63e020, 0x2c799: 0x6c001020, 0x2c79a: 0x6c001220, 0x2c79b: 0x6c001420, + 0x2c79c: 0x6c006020, 0x2c79d: 0x6c006220, 0x2c79e: 0x6c012020, 0x2c79f: 0x6c012220, + 0x2c7a0: 0x6c012420, 0x2c7a1: 0x6c01d020, 0x2c7a2: 0x6c041020, 0x2c7a3: 0x6c025c20, + 0x2c7a4: 0x6c025e20, 0x2c7a5: 0x6c026020, 0x2c7a6: 0x6c026220, 0x2c7a7: 0x6c05a020, + 0x2c7a8: 0x6c0b1a20, 0x2c7a9: 0x6c0b1c20, 0x2c7aa: 0x6c0b1e20, 0x2c7ab: 0x6c0b2020, + 0x2c7ac: 0x6c0b2220, 0x2c7ad: 0x6c0b2420, 0x2c7ae: 0x6c0b2620, 0x2c7af: 0x6c0b2820, + 0x2c7b0: 0x6c0b2a20, 0x2c7b1: 0x6c161020, 0x2c7b2: 0x6c161220, 0x2c7b3: 0x6c28de20, + 0x2c7b4: 0x6c28e020, 0x2c7b5: 0x6c28e220, 0x2c7b6: 0x6c28e420, 0x2c7b7: 0x6c28e620, + 0x2c7b8: 0x6c28e820, 0x2c7b9: 0x6c431420, 0x2c7ba: 0x6c431620, 0x2c7bb: 0x6c431820, + 0x2c7bc: 0x6c431a20, 0x2c7bd: 0x6c63f220, 0x2c7be: 0x6c8b0c20, 0x2c7bf: 0x6c8b0e20, + // Block 0xb1f, offset 0x2c7c0 + 0x2c7c0: 0x6c8b1020, 0x2c7c1: 0x6cb7b220, 0x2c7c2: 0x6ce8d220, 0x2c7c3: 0x6ce8d420, + 0x2c7c4: 0x6ce8d620, 0x2c7c5: 0x6c002420, 0x2c7c6: 0x6c006a20, 0x2c7c7: 0x6c012c20, + 0x2c7c8: 0x6c027a20, 0x2c7c9: 0x6c0b3820, 0x2c7ca: 0x6c162020, 0x2c7cb: 0x6c28f420, + 0x2c7cc: 0x6c007420, 0x2c7cd: 0x6c013020, 0x2c7ce: 0x6c013220, 0x2c7cf: 0x6c013420, + 0x2c7d0: 0x6c00e420, 0x2c7d1: 0x6c028220, 0x2c7d2: 0x6c028420, 0x2c7d3: 0x6c028620, + 0x2c7d4: 0x6c028820, 0x2c7d5: 0x6c028a20, 0x2c7d6: 0x6c028c20, 0x2c7d7: 0x6c05b020, + 0x2c7d8: 0x6c0b3e20, 0x2c7d9: 0x6c0b4020, 0x2c7da: 0x6c0b4220, 0x2c7db: 0x6c28f820, + 0x2c7dc: 0x6c162a20, 0x2c7dd: 0x6c28fc20, 0x2c7de: 0x6c28fe20, 0x2c7df: 0x6c290020, + 0x2c7e0: 0x6c007c20, 0x2c7e1: 0x6c013620, 0x2c7e2: 0x6c029020, 0x2c7e3: 0x6c029220, + 0x2c7e4: 0x6c0b5420, 0x2c7e5: 0x6c0b5620, 0x2c7e6: 0x6c0b5820, 0x2c7e7: 0x6c0b5a20, + 0x2c7e8: 0x6c163620, 0x2c7e9: 0x6c163820, 0x2c7ea: 0x6c163a20, 0x2c7eb: 0x6c290e20, + 0x2c7ec: 0x6c291020, 0x2c7ed: 0x6c433420, 0x2c7ee: 0x6c433620, 0x2c7ef: 0x6c433820, + 0x2c7f0: 0x6c433a20, 0x2c7f1: 0x6c433c20, 0x2c7f2: 0x6c433e20, 0x2c7f3: 0x6c640a20, + 0x2c7f4: 0x6cb7c020, 0x2c7f5: 0x6cb7c220, 0x2c7f6: 0x6ce8e620, 0x2c7f7: 0x6ce8e820, + 0x2c7f8: 0x6d75da20, 0x2c7f9: 0x6e1c0620, 0x2c7fa: 0x6c007e20, 0x2c7fb: 0x6c008020, + 0x2c7fc: 0x6c013820, 0x2c7fd: 0x6c013a20, 0x2c7fe: 0x6c013c20, 0x2c7ff: 0x6c013e20, + // Block 0xb20, offset 0x2c800 + 0x2c800: 0x6c029620, 0x2c801: 0x6c029820, 0x2c802: 0x6c029a20, 0x2c803: 0x6c029c20, + 0x2c804: 0x6c029e20, 0x2c805: 0x6c02a020, 0x2c806: 0x6c02a220, 0x2c807: 0x6c02a420, + 0x2c808: 0x6c02a620, 0x2c809: 0x6c02a820, 0x2c80a: 0x6c02aa20, 0x2c80b: 0x6c02ac20, + 0x2c80c: 0x6c02ae20, 0x2c80d: 0x6c02b020, 0x2c80e: 0x6c02b220, 0x2c80f: 0x6c02b420, + 0x2c810: 0x6c02b620, 0x2c811: 0x6c02b820, 0x2c812: 0x6c02ba20, 0x2c813: 0x6c02bc20, + 0x2c814: 0x6c05c820, 0x2c815: 0x6c05ca20, 0x2c816: 0x6c05cc20, 0x2c817: 0x6c05ce20, + 0x2c818: 0x6c05d020, 0x2c819: 0x6c05d220, 0x2c81a: 0x6c05d420, 0x2c81b: 0x6c05d620, + 0x2c81c: 0x6c05d820, 0x2c81d: 0x6c05da20, 0x2c81e: 0x6c05dc20, 0x2c81f: 0x6c05de20, + 0x2c820: 0x6c05e020, 0x2c821: 0x6c05e220, 0x2c822: 0x6c05e420, 0x2c823: 0x6c05e620, + 0x2c824: 0x6c05e820, 0x2c825: 0x6c05ea20, 0x2c826: 0x6c05ec20, 0x2c827: 0x6c05ee20, + 0x2c828: 0x6c05f020, 0x2c829: 0x6c05f220, 0x2c82a: 0x6c05f420, 0x2c82b: 0x6c05f620, + 0x2c82c: 0x6c05f820, 0x2c82d: 0x6c05fa20, 0x2c82e: 0x6c0b7a20, 0x2c82f: 0x6c0b7c20, + 0x2c830: 0x6c0b7e20, 0x2c831: 0x6c0b8020, 0x2c832: 0x6c0b8220, 0x2c833: 0x6c0b8420, + 0x2c834: 0x6c0b8620, 0x2c835: 0x6c0b8820, 0x2c836: 0x6c0b8a20, 0x2c837: 0x6c0b8c20, + 0x2c838: 0x6c0b8e20, 0x2c839: 0x6c0b9020, 0x2c83a: 0x6c0b9220, 0x2c83b: 0x6c0b9420, + 0x2c83c: 0x6c0b9620, 0x2c83d: 0x6c0b9820, 0x2c83e: 0x6c0b9a20, 0x2c83f: 0x6c0b9c20, + // Block 0xb21, offset 0x2c840 + 0x2c840: 0x6c0b9e20, 0x2c841: 0x6c0ba020, 0x2c842: 0x6c0ba220, 0x2c843: 0x6c0ba420, + 0x2c844: 0x6c0ba620, 0x2c845: 0x6c0ba820, 0x2c846: 0x6c0baa20, 0x2c847: 0x6c0bac20, + 0x2c848: 0x6c0bae20, 0x2c849: 0x6c0bb020, 0x2c84a: 0x6c0bb220, 0x2c84b: 0x6c0bb420, + 0x2c84c: 0x6c0bb620, 0x2c84d: 0x6c0bb820, 0x2c84e: 0x6c0bba20, 0x2c84f: 0x6c0bbc20, + 0x2c850: 0x6c0bbe20, 0x2c851: 0x6c0bc020, 0x2c852: 0x6c0bc220, 0x2c853: 0x6c0bc420, + 0x2c854: 0x6c0bc620, 0x2c855: 0x6c0bc820, 0x2c856: 0x6c0bca20, 0x2c857: 0x6c0bcc20, + 0x2c858: 0x6c0bce20, 0x2c859: 0x6c0bd020, 0x2c85a: 0x6c0bd220, 0x2c85b: 0x6c0bd420, + 0x2c85c: 0x6c0bd620, 0x2c85d: 0x6c0bd820, 0x2c85e: 0x6c0bda20, 0x2c85f: 0x6c0bdc20, + 0x2c860: 0x6c0bde20, 0x2c861: 0x6c0be020, 0x2c862: 0x6c0be220, 0x2c863: 0x6c0be420, + 0x2c864: 0x6c0be620, 0x2c865: 0x6c0be820, 0x2c866: 0x6c0bea20, 0x2c867: 0x6c0bec20, + 0x2c868: 0x6c0bee20, 0x2c869: 0x6c0bf020, 0x2c86a: 0x6c0bf220, 0x2c86b: 0x6c0bf420, + 0x2c86c: 0x6c0bf620, 0x2c86d: 0x6c165620, 0x2c86e: 0x6c165820, 0x2c86f: 0x6c165a20, + 0x2c870: 0x6c165c20, 0x2c871: 0x6c165e20, 0x2c872: 0x6c166020, 0x2c873: 0x6c166220, + 0x2c874: 0x6c166420, 0x2c875: 0x6c166620, 0x2c876: 0x6c166820, 0x2c877: 0x6c166a20, + 0x2c878: 0x6c166c20, 0x2c879: 0x6c166e20, 0x2c87a: 0x6c167020, 0x2c87b: 0x6c167220, + 0x2c87c: 0x6c167420, 0x2c87d: 0x6c167620, 0x2c87e: 0x6c167820, 0x2c87f: 0x6c167a20, + // Block 0xb22, offset 0x2c880 + 0x2c880: 0x6c167c20, 0x2c881: 0x6c167e20, 0x2c882: 0x6c168020, 0x2c883: 0x6c168220, + 0x2c884: 0x6c168420, 0x2c885: 0x6c168620, 0x2c886: 0x6c168820, 0x2c887: 0x6c168a20, + 0x2c888: 0x6c168c20, 0x2c889: 0x6c168e20, 0x2c88a: 0x6c169020, 0x2c88b: 0x6c169220, + 0x2c88c: 0x6c292020, 0x2c88d: 0x6c169420, 0x2c88e: 0x6c169620, 0x2c88f: 0x6c169820, + 0x2c890: 0x6c169a20, 0x2c891: 0x6c169c20, 0x2c892: 0x6c169e20, 0x2c893: 0x6c16a020, + 0x2c894: 0x6c16a220, 0x2c895: 0x6c16a420, 0x2c896: 0x6c16a620, 0x2c897: 0x6c16a820, + 0x2c898: 0x6c16aa20, 0x2c899: 0x6c16ac20, 0x2c89a: 0x6c16ae20, 0x2c89b: 0x6c16b020, + 0x2c89c: 0x6c16b220, 0x2c89d: 0x6c16b420, 0x2c89e: 0x6c16b620, 0x2c89f: 0x6c16b820, + 0x2c8a0: 0x6c16ba20, 0x2c8a1: 0x6c16bc20, 0x2c8a2: 0x6c16be20, 0x2c8a3: 0x6c16c020, + 0x2c8a4: 0x6c0bf820, 0x2c8a5: 0x6c16c220, 0x2c8a6: 0x6c16c420, 0x2c8a7: 0x6c16c620, + 0x2c8a8: 0x6c16c820, 0x2c8a9: 0x6c293e20, 0x2c8aa: 0x6c294020, 0x2c8ab: 0x6c294220, + 0x2c8ac: 0x6c294420, 0x2c8ad: 0x6c294620, 0x2c8ae: 0x6c294820, 0x2c8af: 0x6c294a20, + 0x2c8b0: 0x6c294c20, 0x2c8b1: 0x6c294e20, 0x2c8b2: 0x6c295020, 0x2c8b3: 0x6c295220, + 0x2c8b4: 0x6c295420, 0x2c8b5: 0x6c295620, 0x2c8b6: 0x6c295820, 0x2c8b7: 0x6c295a20, + 0x2c8b8: 0x6c295c20, 0x2c8b9: 0x6c295e20, 0x2c8ba: 0x6c296020, 0x2c8bb: 0x6c296220, + 0x2c8bc: 0x6c296420, 0x2c8bd: 0x6c296620, 0x2c8be: 0x6c296820, 0x2c8bf: 0x6c296a20, + // Block 0xb23, offset 0x2c8c0 + 0x2c8c0: 0x6c296c20, 0x2c8c1: 0x6c296e20, 0x2c8c2: 0x6c297020, 0x2c8c3: 0x6c297220, + 0x2c8c4: 0x6c297420, 0x2c8c5: 0x6c297620, 0x2c8c6: 0x6c297820, 0x2c8c7: 0x6c297a20, + 0x2c8c8: 0x6c297c20, 0x2c8c9: 0x6c297e20, 0x2c8ca: 0x6c298020, 0x2c8cb: 0x6c298220, + 0x2c8cc: 0x6c298420, 0x2c8cd: 0x6c298620, 0x2c8ce: 0x6c298820, 0x2c8cf: 0x6c298a20, + 0x2c8d0: 0x6c298c20, 0x2c8d1: 0x6c298e20, 0x2c8d2: 0x6c299020, 0x2c8d3: 0x6c299220, + 0x2c8d4: 0x6c299420, 0x2c8d5: 0x6c299620, 0x2c8d6: 0x6c299820, 0x2c8d7: 0x6c299a20, + 0x2c8d8: 0x6c299c20, 0x2c8d9: 0x6c299e20, 0x2c8da: 0x6c29a020, 0x2c8db: 0x6c29a220, + 0x2c8dc: 0x6c29a420, 0x2c8dd: 0x6c29a620, 0x2c8de: 0x6c29a820, 0x2c8df: 0x6c29aa20, + 0x2c8e0: 0x6c29ac20, 0x2c8e1: 0x6c29ae20, 0x2c8e2: 0x6c29b020, 0x2c8e3: 0x6c29b220, + 0x2c8e4: 0x6c29b420, 0x2c8e5: 0x6c29b620, 0x2c8e6: 0x6c29b820, 0x2c8e7: 0x6c29ba20, + 0x2c8e8: 0x6c29bc20, 0x2c8e9: 0x6c29be20, 0x2c8ea: 0x6c29c020, 0x2c8eb: 0x6c29c220, + 0x2c8ec: 0x6c29c420, 0x2c8ed: 0x6c29c620, 0x2c8ee: 0x6c435e20, 0x2c8ef: 0x6c436020, + 0x2c8f0: 0x6c436220, 0x2c8f1: 0x6c436420, 0x2c8f2: 0x6c436620, 0x2c8f3: 0x6c436820, + 0x2c8f4: 0x6c436a20, 0x2c8f5: 0x6c436c20, 0x2c8f6: 0x6c436e20, 0x2c8f7: 0x6c437020, + 0x2c8f8: 0x6c437220, 0x2c8f9: 0x6c437420, 0x2c8fa: 0x6c437620, 0x2c8fb: 0x6c437820, + 0x2c8fc: 0x6c437a20, 0x2c8fd: 0x6c437c20, 0x2c8fe: 0x6c437e20, 0x2c8ff: 0x6c438020, + // Block 0xb24, offset 0x2c900 + 0x2c900: 0x6c438220, 0x2c901: 0x6c438420, 0x2c902: 0x6c438620, 0x2c903: 0x6c438820, + 0x2c904: 0x6c438a20, 0x2c905: 0x6c438c20, 0x2c906: 0x6c438e20, 0x2c907: 0x6c439020, + 0x2c908: 0x6c439220, 0x2c909: 0x6c439420, 0x2c90a: 0x6c439620, 0x2c90b: 0x6c439820, + 0x2c90c: 0x6c439a20, 0x2c90d: 0x6c439c20, 0x2c90e: 0x6c439e20, 0x2c90f: 0x6c43a020, + 0x2c910: 0x6c43a220, 0x2c911: 0x6c43a420, 0x2c912: 0x6c43a620, 0x2c913: 0x6c43a820, + 0x2c914: 0x6c43aa20, 0x2c915: 0x6c43ac20, 0x2c916: 0x6c43ae20, 0x2c917: 0x6c43b020, + 0x2c918: 0x6c43b220, 0x2c919: 0x6c43b420, 0x2c91a: 0x6c43b620, 0x2c91b: 0x6c43b820, + 0x2c91c: 0x6c43ba20, 0x2c91d: 0x6c43bc20, 0x2c91e: 0x6c43be20, 0x2c91f: 0x6c43c020, + 0x2c920: 0x6c43c220, 0x2c921: 0x6c43c420, 0x2c922: 0x6c43c620, 0x2c923: 0x6c43c820, + 0x2c924: 0x6c43ca20, 0x2c925: 0x6c43cc20, 0x2c926: 0x6c43ce20, 0x2c927: 0x6c43d020, + 0x2c928: 0x6c43d220, 0x2c929: 0x6c43d420, 0x2c92a: 0x6c43d620, 0x2c92b: 0x6c43d820, + 0x2c92c: 0x6c43da20, 0x2c92d: 0x6c43dc20, 0x2c92e: 0x6c642e20, 0x2c92f: 0x6c643020, + 0x2c930: 0x6c643220, 0x2c931: 0x6c643420, 0x2c932: 0x6c643620, 0x2c933: 0x6c643820, + 0x2c934: 0x6c643a20, 0x2c935: 0x6c643c20, 0x2c936: 0x6c643e20, 0x2c937: 0x6c644020, + 0x2c938: 0x6c644220, 0x2c939: 0x6c644420, 0x2c93a: 0x6c644620, 0x2c93b: 0x6c644820, + 0x2c93c: 0x6c644a20, 0x2c93d: 0x6c644c20, 0x2c93e: 0x6c644e20, 0x2c93f: 0x6c645020, + // Block 0xb25, offset 0x2c940 + 0x2c940: 0x6c645220, 0x2c941: 0x6c645420, 0x2c942: 0x6c645620, 0x2c943: 0x6c645820, + 0x2c944: 0x6c645a20, 0x2c945: 0x6c645c20, 0x2c946: 0x6c645e20, 0x2c947: 0x6c646020, + 0x2c948: 0x6c646220, 0x2c949: 0x6c646420, 0x2c94a: 0x6c646620, 0x2c94b: 0x6c646820, + 0x2c94c: 0x6c646a20, 0x2c94d: 0x6c646c20, 0x2c94e: 0x6c646e20, 0x2c94f: 0x6c647020, + 0x2c950: 0x6c647220, 0x2c951: 0x6c647420, 0x2c952: 0x6c647620, 0x2c953: 0x6c647820, + 0x2c954: 0x6c647a20, 0x2c955: 0x6c647c20, 0x2c956: 0x6c647e20, 0x2c957: 0x6c648020, + 0x2c958: 0x6c648220, 0x2c959: 0x6c648420, 0x2c95a: 0x6c648620, 0x2c95b: 0x6c648820, + 0x2c95c: 0x6c648a20, 0x2c95d: 0x6c648c20, 0x2c95e: 0x6c648e20, 0x2c95f: 0x6c649020, + 0x2c960: 0x6c649220, 0x2c961: 0x6c649420, 0x2c962: 0x6c649620, 0x2c963: 0x6c649820, + 0x2c964: 0x6c649a20, 0x2c965: 0x6c649c20, 0x2c966: 0x6c649e20, 0x2c967: 0x6c64a020, + 0x2c968: 0x6c64a220, 0x2c969: 0x6c64a420, 0x2c96a: 0x6c64a620, 0x2c96b: 0x6c64a820, + 0x2c96c: 0x6c64aa20, 0x2c96d: 0x6c64ac20, 0x2c96e: 0x6c64ae20, 0x2c96f: 0x6c64b020, + 0x2c970: 0x6c64b220, 0x2c971: 0x6c64b420, 0x2c972: 0x6c64b620, 0x2c973: 0x6c64b820, + 0x2c974: 0x6c64ba20, 0x2c975: 0x6c64bc20, 0x2c976: 0x6c64be20, 0x2c977: 0x6c64c020, + 0x2c978: 0x6c64c220, 0x2c979: 0x6c64c420, 0x2c97a: 0x6c64c620, 0x2c97b: 0x6c64c820, + 0x2c97c: 0x6c64ca20, 0x2c97d: 0x6c64cc20, 0x2c97e: 0x6c64ce20, 0x2c97f: 0x6c64d020, + // Block 0xb26, offset 0x2c980 + 0x2c980: 0x6c8b4a20, 0x2c981: 0x6c8b4c20, 0x2c982: 0x6c8b4e20, 0x2c983: 0x6c8b5020, + 0x2c984: 0x6c8b5220, 0x2c985: 0x6c8b5420, 0x2c986: 0x6c8b5620, 0x2c987: 0x6c8b5820, + 0x2c988: 0x6c8b5a20, 0x2c989: 0x6c8b5c20, 0x2c98a: 0x6c8b5e20, 0x2c98b: 0x6c8b6020, + 0x2c98c: 0x6c8b6220, 0x2c98d: 0x6c8b6420, 0x2c98e: 0x6c8b6620, 0x2c98f: 0x6c8b6820, + 0x2c990: 0x6c8b6a20, 0x2c991: 0x6c8b6c20, 0x2c992: 0x6c8b6e20, 0x2c993: 0x6c8b7020, + 0x2c994: 0x6c8b7220, 0x2c995: 0x6c8b7420, 0x2c996: 0x6c656e20, 0x2c997: 0x6c8b7620, + 0x2c998: 0x6c8b7820, 0x2c999: 0x6c8b7a20, 0x2c99a: 0x6c8b7c20, 0x2c99b: 0x6c8b7e20, + 0x2c99c: 0x6c8b8020, 0x2c99d: 0x6c8b8220, 0x2c99e: 0x6c8b8420, 0x2c99f: 0x6c8b8620, + 0x2c9a0: 0x6c8b8820, 0x2c9a1: 0x6c8b8a20, 0x2c9a2: 0x6c8b8c20, 0x2c9a3: 0x6c8b8e20, + 0x2c9a4: 0x6c8b9020, 0x2c9a5: 0x6c8b9220, 0x2c9a6: 0x6c8b9420, 0x2c9a7: 0x6c8b9620, + 0x2c9a8: 0x6cb7d820, 0x2c9a9: 0x6c8b9820, 0x2c9aa: 0x6c8b9a20, 0x2c9ab: 0x6c8b9c20, + 0x2c9ac: 0x6c8b9e20, 0x2c9ad: 0x6c8ba020, 0x2c9ae: 0x6c8ba220, 0x2c9af: 0x6c8ba420, + 0x2c9b0: 0x6c8ba620, 0x2c9b1: 0x6c8ba820, 0x2c9b2: 0x6c8baa20, 0x2c9b3: 0x6c8bac20, + 0x2c9b4: 0x6c8bae20, 0x2c9b5: 0x6c8bb020, 0x2c9b6: 0x6c8bb220, 0x2c9b7: 0x6c8bb420, + 0x2c9b8: 0x6c8bb620, 0x2c9b9: 0x6c8bb820, 0x2c9ba: 0x6c8bba20, 0x2c9bb: 0x6c8bbc20, + 0x2c9bc: 0x6c8bbe20, 0x2c9bd: 0x6c8bc020, 0x2c9be: 0x6c8bc220, 0x2c9bf: 0x6c8bc420, + // Block 0xb27, offset 0x2c9c0 + 0x2c9c0: 0x6cb7ea20, 0x2c9c1: 0x6cb7ec20, 0x2c9c2: 0x6cb7ee20, 0x2c9c3: 0x6cb7f020, + 0x2c9c4: 0x6cb7f220, 0x2c9c5: 0x6cb7f420, 0x2c9c6: 0x6cb7f620, 0x2c9c7: 0x6cb7f820, + 0x2c9c8: 0x6cb7fa20, 0x2c9c9: 0x6cb7fc20, 0x2c9ca: 0x6cb7fe20, 0x2c9cb: 0x6cb80020, + 0x2c9cc: 0x6cb80220, 0x2c9cd: 0x6cb80420, 0x2c9ce: 0x6cb80620, 0x2c9cf: 0x6cb80820, + 0x2c9d0: 0x6cb80a20, 0x2c9d1: 0x6cb80c20, 0x2c9d2: 0x6cb80e20, 0x2c9d3: 0x6cb81020, + 0x2c9d4: 0x6cb81220, 0x2c9d5: 0x6cb81420, 0x2c9d6: 0x6cb81620, 0x2c9d7: 0x6cb81820, + 0x2c9d8: 0x6cb81a20, 0x2c9d9: 0x6cb81c20, 0x2c9da: 0x6cb81e20, 0x2c9db: 0x6cb82020, + 0x2c9dc: 0x6cb82220, 0x2c9dd: 0x6cb82420, 0x2c9de: 0x6cb82620, 0x2c9df: 0x6cb82820, + 0x2c9e0: 0x6cb82a20, 0x2c9e1: 0x6cb82c20, 0x2c9e2: 0x6cb82e20, 0x2c9e3: 0x6cb83020, + 0x2c9e4: 0x6cb83220, 0x2c9e5: 0x6cb83420, 0x2c9e6: 0x6cb83620, 0x2c9e7: 0x6cb83820, + 0x2c9e8: 0x6cb83a20, 0x2c9e9: 0x6cb83c20, 0x2c9ea: 0x6ce90c20, 0x2c9eb: 0x6ce90e20, + 0x2c9ec: 0x6ce91020, 0x2c9ed: 0x6ce91220, 0x2c9ee: 0x6ce91420, 0x2c9ef: 0x6ce91620, + 0x2c9f0: 0x6ce91820, 0x2c9f1: 0x6ce91a20, 0x2c9f2: 0x6ce91c20, 0x2c9f3: 0x6ce91e20, + 0x2c9f4: 0x6ce92020, 0x2c9f5: 0x6ce92220, 0x2c9f6: 0x6ce92420, 0x2c9f7: 0x6ce92620, + 0x2c9f8: 0x6ce92820, 0x2c9f9: 0x6ce92a20, 0x2c9fa: 0x6ce92c20, 0x2c9fb: 0x6ce92e20, + 0x2c9fc: 0x6ce93020, 0x2c9fd: 0x6ce93220, 0x2c9fe: 0x6ce93420, 0x2c9ff: 0x6ce93620, + // Block 0xb28, offset 0x2ca00 + 0x2ca00: 0x6ce93820, 0x2ca01: 0x6ce93a20, 0x2ca02: 0x6ce93c20, 0x2ca03: 0x6ce93e20, + 0x2ca04: 0x6ce94020, 0x2ca05: 0x6ce94220, 0x2ca06: 0x6ce94420, 0x2ca07: 0x6ce94620, + 0x2ca08: 0x6ce94820, 0x2ca09: 0x6ce94a20, 0x2ca0a: 0x6ce94c20, 0x2ca0b: 0x6ce94e20, + 0x2ca0c: 0x6ce95020, 0x2ca0d: 0x6ce95220, 0x2ca0e: 0x6d18cc20, 0x2ca0f: 0x6d18ce20, + 0x2ca10: 0x6d18d020, 0x2ca11: 0x6d18d220, 0x2ca12: 0x6d18d420, 0x2ca13: 0x6d18d620, + 0x2ca14: 0x6d18d820, 0x2ca15: 0x6d18da20, 0x2ca16: 0x6d18dc20, 0x2ca17: 0x6d18de20, + 0x2ca18: 0x6d18e020, 0x2ca19: 0x6d18e220, 0x2ca1a: 0x6d18e420, 0x2ca1b: 0x6d18e620, + 0x2ca1c: 0x6d18e820, 0x2ca1d: 0x6d18ea20, 0x2ca1e: 0x6d18ec20, 0x2ca1f: 0x6d18ee20, + 0x2ca20: 0x6d18f020, 0x2ca21: 0x6d18f220, 0x2ca22: 0x6d18f420, 0x2ca23: 0x6d18f620, + 0x2ca24: 0x6d18f820, 0x2ca25: 0x6d18fa20, 0x2ca26: 0x6d18fc20, 0x2ca27: 0x6d18fe20, + 0x2ca28: 0x6d190020, 0x2ca29: 0x6d190220, 0x2ca2a: 0x6d190420, 0x2ca2b: 0x6d190620, + 0x2ca2c: 0x6d190820, 0x2ca2d: 0x6d190a20, 0x2ca2e: 0x6d190c20, 0x2ca2f: 0x6d190e20, + 0x2ca30: 0x6d191020, 0x2ca31: 0x6d191220, 0x2ca32: 0x6d19b420, 0x2ca33: 0x6d191420, + 0x2ca34: 0x6d191620, 0x2ca35: 0x6d47c220, 0x2ca36: 0x6d47c420, 0x2ca37: 0x6d191820, + 0x2ca38: 0x6d47c620, 0x2ca39: 0x6d47c820, 0x2ca3a: 0x6d47ca20, 0x2ca3b: 0x6d47cc20, + 0x2ca3c: 0x6d47ce20, 0x2ca3d: 0x6d47d020, 0x2ca3e: 0x6d47d220, 0x2ca3f: 0x6d47d420, + // Block 0xb29, offset 0x2ca40 + 0x2ca40: 0x6d47d620, 0x2ca41: 0x6d47d820, 0x2ca42: 0x6d47da20, 0x2ca43: 0x6d47dc20, + 0x2ca44: 0x6d47de20, 0x2ca45: 0x6d47e020, 0x2ca46: 0x6d47e220, 0x2ca47: 0x6d47e420, + 0x2ca48: 0x6d47e620, 0x2ca49: 0x6d47e820, 0x2ca4a: 0x6d47ea20, 0x2ca4b: 0x6d47ec20, + 0x2ca4c: 0x6d47ee20, 0x2ca4d: 0x6d47f020, 0x2ca4e: 0x6d47f220, 0x2ca4f: 0x6d47f420, + 0x2ca50: 0x6d75fc20, 0x2ca51: 0x6d75fe20, 0x2ca52: 0x6d760020, 0x2ca53: 0x6d760220, + 0x2ca54: 0x6d760420, 0x2ca55: 0x6d760620, 0x2ca56: 0x6d760820, 0x2ca57: 0x6d760a20, + 0x2ca58: 0x6d760c20, 0x2ca59: 0x6d760e20, 0x2ca5a: 0x6d761020, 0x2ca5b: 0x6d761220, + 0x2ca5c: 0x6d761420, 0x2ca5d: 0x6d761620, 0x2ca5e: 0x6d761820, 0x2ca5f: 0x6d9fae20, + 0x2ca60: 0x6d9fb020, 0x2ca61: 0x6d9fb220, 0x2ca62: 0x6d9fb420, 0x2ca63: 0x6d9fb620, + 0x2ca64: 0x6d9fb820, 0x2ca65: 0x6d9fba20, 0x2ca66: 0x6d9fbc20, 0x2ca67: 0x6d9fbe20, + 0x2ca68: 0x6d9fc020, 0x2ca69: 0x6d9fc220, 0x2ca6a: 0x6d9fc420, 0x2ca6b: 0x6d761a20, + 0x2ca6c: 0x6d9fc620, 0x2ca6d: 0x6dc24e20, 0x2ca6e: 0x6dc25020, 0x2ca6f: 0x6dc25220, + 0x2ca70: 0x6d485a20, 0x2ca71: 0x6dc25420, 0x2ca72: 0x6da00220, 0x2ca73: 0x6de01420, + 0x2ca74: 0x6de01620, 0x2ca75: 0x6de01820, 0x2ca76: 0x6df87420, 0x2ca77: 0x6e0c4220, + 0x2ca78: 0x6e0c4420, 0x2ca79: 0x6e0c4620, 0x2ca7a: 0x6e0c4820, 0x2ca7b: 0x6e1c0820, + 0x2ca7c: 0x6e1c0a20, 0x2ca7d: 0x6e284c20, 0x2ca7e: 0x6e318820, 0x2ca7f: 0x6c008420, + // Block 0xb2a, offset 0x2ca80 + 0x2ca80: 0x6c014620, 0x2ca81: 0x6c02c620, 0x2ca82: 0x6c02c820, 0x2ca83: 0x6c02ca20, + 0x2ca84: 0x6c060e20, 0x2ca85: 0x6c061420, 0x2ca86: 0x6c0c4620, 0x2ca87: 0x6c0c4820, + 0x2ca88: 0x6c0c4a20, 0x2ca89: 0x6c0c4c20, 0x2ca8a: 0x6c0c4e20, 0x2ca8b: 0x6c173420, + 0x2ca8c: 0x6c173620, 0x2ca8d: 0x6c173820, 0x2ca8e: 0x6c173a20, 0x2ca8f: 0x6c173c20, + 0x2ca90: 0x6c173e20, 0x2ca91: 0x6c174020, 0x2ca92: 0x6c2a2e20, 0x2ca93: 0x6c2a3020, + 0x2ca94: 0x6c2a3220, 0x2ca95: 0x6c2a3420, 0x2ca96: 0x6c2a3620, 0x2ca97: 0x6c445a20, + 0x2ca98: 0x6c445c20, 0x2ca99: 0x6c445e20, 0x2ca9a: 0x6c657220, 0x2ca9b: 0x6c657420, + 0x2ca9c: 0x6c8c6820, 0x2ca9d: 0x6c8c6a20, 0x2ca9e: 0x6c8c6c20, 0x2ca9f: 0x6cb8c620, + 0x2caa0: 0x6cb8c820, 0x2caa1: 0x6ce9e220, 0x2caa2: 0x6d19b620, 0x2caa3: 0x6d766620, + 0x2caa4: 0x6e0c6420, 0x2caa5: 0x6c008620, 0x2caa6: 0x6c014820, 0x2caa7: 0x6c02ce20, + 0x2caa8: 0x6c0c5a20, 0x2caa9: 0x6c2a4c20, 0x2caaa: 0x6c446c20, 0x2caab: 0x6c008820, + 0x2caac: 0x6c02d620, 0x2caad: 0x6c02d820, 0x2caae: 0x6c02da20, 0x2caaf: 0x6c02dc20, + 0x2cab0: 0x6c061c20, 0x2cab1: 0x6c0c6820, 0x2cab2: 0x6c0c6a20, 0x2cab3: 0x6c0c6c20, + 0x2cab4: 0x6c0c6e20, 0x2cab5: 0x6c176220, 0x2cab6: 0x6c2a5020, 0x2cab7: 0x6c2a5220, + 0x2cab8: 0x6c2a5420, 0x2cab9: 0x6c447620, 0x2caba: 0x6c659020, 0x2cabb: 0x6c447820, + 0x2cabc: 0x6c659220, 0x2cabd: 0x6c8c7e20, 0x2cabe: 0x6ce9f420, 0x2cabf: 0x6ce9f620, + // Block 0xb2b, offset 0x2cac0 + 0x2cac0: 0x6d767a20, 0x2cac1: 0x6dc29820, 0x2cac2: 0x6c008c20, 0x2cac3: 0x6c02e620, + 0x2cac4: 0x6c02e820, 0x2cac5: 0x6c02ea20, 0x2cac6: 0x6c02ec20, 0x2cac7: 0x6c02ee20, + 0x2cac8: 0x6c02f020, 0x2cac9: 0x6c062220, 0x2caca: 0x6c062420, 0x2cacb: 0x6c062620, + 0x2cacc: 0x6c062820, 0x2cacd: 0x6c0c7820, 0x2cace: 0x6c0c7a20, 0x2cacf: 0x6c177020, + 0x2cad0: 0x6c2a5e20, 0x2cad1: 0x6c448620, 0x2cad2: 0x6c448820, 0x2cad3: 0x6c659a20, + 0x2cad4: 0x6c659c20, 0x2cad5: 0x6c8c8820, 0x2cad6: 0x6c008e20, 0x2cad7: 0x6c02fe20, + 0x2cad8: 0x6c030020, 0x2cad9: 0x6c063e20, 0x2cada: 0x6c064020, 0x2cadb: 0x6c0c8620, + 0x2cadc: 0x6c0c8820, 0x2cadd: 0x6c178020, 0x2cade: 0x6c2a6a20, 0x2cadf: 0x6c449220, + 0x2cae0: 0x6c449420, 0x2cae1: 0x6c65a420, 0x2cae2: 0x6c65a620, 0x2cae3: 0x6c65a820, + 0x2cae4: 0x6c65aa20, 0x2cae5: 0x6c65ac20, 0x2cae6: 0x6c65ae20, 0x2cae7: 0x6c65b020, + 0x2cae8: 0x6c8c9020, 0x2cae9: 0x6d19e020, 0x2caea: 0x6d768820, 0x2caeb: 0x6c009020, + 0x2caec: 0x6c064a20, 0x2caed: 0x6c064c20, 0x2caee: 0x6c064e20, 0x2caef: 0x6c065020, + 0x2caf0: 0x6c0c9c20, 0x2caf1: 0x6c0c9e20, 0x2caf2: 0x6c0ca020, 0x2caf3: 0x6c0ca220, + 0x2caf4: 0x6c0ca420, 0x2caf5: 0x6c179020, 0x2caf6: 0x6c179220, 0x2caf7: 0x6c179420, + 0x2caf8: 0x6c179620, 0x2caf9: 0x6c179820, 0x2cafa: 0x6c179a20, 0x2cafb: 0x6c179c20, + 0x2cafc: 0x6c2a7e20, 0x2cafd: 0x6c2a8020, 0x2cafe: 0x6c2a8220, 0x2caff: 0x6c2a8420, + // Block 0xb2c, offset 0x2cb00 + 0x2cb00: 0x6c2a8620, 0x2cb01: 0x6c44a420, 0x2cb02: 0x6c44a620, 0x2cb03: 0x6c44a820, + 0x2cb04: 0x6c65c820, 0x2cb05: 0x6c65ca20, 0x2cb06: 0x6c65cc20, 0x2cb07: 0x6c65ce20, + 0x2cb08: 0x6c65d020, 0x2cb09: 0x6c65d220, 0x2cb0a: 0x6c65d420, 0x2cb0b: 0x6c65d620, + 0x2cb0c: 0x6c65d820, 0x2cb0d: 0x6c65da20, 0x2cb0e: 0x6c65dc20, 0x2cb0f: 0x6c8c9820, + 0x2cb10: 0x6c8c9a20, 0x2cb11: 0x6c8c9c20, 0x2cb12: 0x6cb91020, 0x2cb13: 0x6cb91220, + 0x2cb14: 0x6cb91420, 0x2cb15: 0x6cb91620, 0x2cb16: 0x6cb91820, 0x2cb17: 0x6cea1420, + 0x2cb18: 0x6d19ec20, 0x2cb19: 0x6d487820, 0x2cb1a: 0x6d487a20, 0x2cb1b: 0x6d487c20, + 0x2cb1c: 0x6d487e20, 0x2cb1d: 0x6d768e20, 0x2cb1e: 0x6d769020, 0x2cb1f: 0x6da01a20, + 0x2cb20: 0x6c009420, 0x2cb21: 0x6c015220, 0x2cb22: 0x6c015420, 0x2cb23: 0x6c015620, + 0x2cb24: 0x6c030a20, 0x2cb25: 0x6c065a20, 0x2cb26: 0x6c065c20, 0x2cb27: 0x6c065e20, + 0x2cb28: 0x6c0cba20, 0x2cb29: 0x6c0cbc20, 0x2cb2a: 0x6c0cbe20, 0x2cb2b: 0x6c0cc020, + 0x2cb2c: 0x6c17b820, 0x2cb2d: 0x6c2a9820, 0x2cb2e: 0x6c2a9a20, 0x2cb2f: 0x6c2a9c20, + 0x2cb30: 0x6c8cc020, 0x2cb31: 0x6cb93020, 0x2cb32: 0x6cb93220, 0x2cb33: 0x6d19fe20, + 0x2cb34: 0x6d1a0020, 0x2cb35: 0x6c009a20, 0x2cb36: 0x6c031c20, 0x2cb37: 0x6c066820, + 0x2cb38: 0x6c066a20, 0x2cb39: 0x6c066c20, 0x2cb3a: 0x6c066e20, 0x2cb3b: 0x6c067020, + 0x2cb3c: 0x6c0cd420, 0x2cb3d: 0x6c2ab220, 0x2cb3e: 0x6c44d820, 0x2cb3f: 0x6cb94020, + // Block 0xb2d, offset 0x2cb40 + 0x2cb40: 0x6c00a020, 0x2cb41: 0x6c00a220, 0x2cb42: 0x6c00a420, 0x2cb43: 0x6c015a20, + 0x2cb44: 0x6c015c20, 0x2cb45: 0x6c032420, 0x2cb46: 0x6c032620, 0x2cb47: 0x6c032820, + 0x2cb48: 0x6c032a20, 0x2cb49: 0x6c068220, 0x2cb4a: 0x6c068420, 0x2cb4b: 0x6c068620, + 0x2cb4c: 0x6c068820, 0x2cb4d: 0x6c068a20, 0x2cb4e: 0x6c0cea20, 0x2cb4f: 0x6c0cec20, + 0x2cb50: 0x6c0cee20, 0x2cb51: 0x6c0cf020, 0x2cb52: 0x6c0cf220, 0x2cb53: 0x6c0cf420, + 0x2cb54: 0x6c0cf620, 0x2cb55: 0x6c0cf820, 0x2cb56: 0x6c0cfa20, 0x2cb57: 0x6c0cfc20, + 0x2cb58: 0x6c0cfe20, 0x2cb59: 0x6c0d0020, 0x2cb5a: 0x6c0d0220, 0x2cb5b: 0x6c0d0420, + 0x2cb5c: 0x6c17de20, 0x2cb5d: 0x6c17e020, 0x2cb5e: 0x6c17e220, 0x2cb5f: 0x6c17e420, + 0x2cb60: 0x6c17e620, 0x2cb61: 0x6c17e820, 0x2cb62: 0x6c17ea20, 0x2cb63: 0x6c17ec20, + 0x2cb64: 0x6c17ee20, 0x2cb65: 0x6c17f020, 0x2cb66: 0x6c17f220, 0x2cb67: 0x6c17f420, + 0x2cb68: 0x6c17f620, 0x2cb69: 0x6c17f820, 0x2cb6a: 0x6c17fa20, 0x2cb6b: 0x6c17fc20, + 0x2cb6c: 0x6c17fe20, 0x2cb6d: 0x6c180020, 0x2cb6e: 0x6c2ac820, 0x2cb6f: 0x6c2aca20, + 0x2cb70: 0x6c2acc20, 0x2cb71: 0x6c2ace20, 0x2cb72: 0x6c2ad020, 0x2cb73: 0x6c2ad220, + 0x2cb74: 0x6c2ad420, 0x2cb75: 0x6c2ad620, 0x2cb76: 0x6c2ad820, 0x2cb77: 0x6c2ada20, + 0x2cb78: 0x6c2adc20, 0x2cb79: 0x6c2ade20, 0x2cb7a: 0x6c2ae020, 0x2cb7b: 0x6c2ae220, + 0x2cb7c: 0x6c2ae420, 0x2cb7d: 0x6c2ae620, 0x2cb7e: 0x6c2ae820, 0x2cb7f: 0x6c2aea20, + // Block 0xb2e, offset 0x2cb80 + 0x2cb80: 0x6c2aec20, 0x2cb81: 0x6c2aee20, 0x2cb82: 0x6c2af020, 0x2cb83: 0x6c44ea20, + 0x2cb84: 0x6c44ec20, 0x2cb85: 0x6c44ee20, 0x2cb86: 0x6c2b4a20, 0x2cb87: 0x6c44f020, + 0x2cb88: 0x6c44f220, 0x2cb89: 0x6c44f420, 0x2cb8a: 0x6c44f620, 0x2cb8b: 0x6c44f820, + 0x2cb8c: 0x6c44fa20, 0x2cb8d: 0x6c44fc20, 0x2cb8e: 0x6c44fe20, 0x2cb8f: 0x6c450020, + 0x2cb90: 0x6c450220, 0x2cb91: 0x6c450420, 0x2cb92: 0x6c661c20, 0x2cb93: 0x6c661e20, + 0x2cb94: 0x6c662020, 0x2cb95: 0x6c662220, 0x2cb96: 0x6c662420, 0x2cb97: 0x6c662620, + 0x2cb98: 0x6c662820, 0x2cb99: 0x6c662a20, 0x2cb9a: 0x6c662c20, 0x2cb9b: 0x6c662e20, + 0x2cb9c: 0x6c663020, 0x2cb9d: 0x6c663220, 0x2cb9e: 0x6c663420, 0x2cb9f: 0x6c663620, + 0x2cba0: 0x6c663820, 0x2cba1: 0x6c663a20, 0x2cba2: 0x6c663c20, 0x2cba3: 0x6c663e20, + 0x2cba4: 0x6c664020, 0x2cba5: 0x6c664220, 0x2cba6: 0x6c664420, 0x2cba7: 0x6c664620, + 0x2cba8: 0x6c8ce420, 0x2cba9: 0x6cb95020, 0x2cbaa: 0x6c8ce620, 0x2cbab: 0x6c8ce820, + 0x2cbac: 0x6c8cea20, 0x2cbad: 0x6c8cec20, 0x2cbae: 0x6c8cee20, 0x2cbaf: 0x6c8cf020, + 0x2cbb0: 0x6c8cf220, 0x2cbb1: 0x6c8cf420, 0x2cbb2: 0x6cb95220, 0x2cbb3: 0x6cb95420, + 0x2cbb4: 0x6cb95620, 0x2cbb5: 0x6cb95820, 0x2cbb6: 0x6c8cf620, 0x2cbb7: 0x6cea4020, + 0x2cbb8: 0x6cea4220, 0x2cbb9: 0x6cea4420, 0x2cbba: 0x6cea4620, 0x2cbbb: 0x6cea4820, + 0x2cbbc: 0x6cea4a20, 0x2cbbd: 0x6cea4c20, 0x2cbbe: 0x6cea4e20, 0x2cbbf: 0x6cea5020, + // Block 0xb2f, offset 0x2cbc0 + 0x2cbc0: 0x6d1a2620, 0x2cbc1: 0x6d1a2820, 0x2cbc2: 0x6d1a2a20, 0x2cbc3: 0x6d1a2c20, + 0x2cbc4: 0x6d1a2e20, 0x2cbc5: 0x6d489820, 0x2cbc6: 0x6d489a20, 0x2cbc7: 0x6d489c20, + 0x2cbc8: 0x6d489e20, 0x2cbc9: 0x6d48a020, 0x2cbca: 0x6d48a220, 0x2cbcb: 0x6d48a420, + 0x2cbcc: 0x6d48a620, 0x2cbcd: 0x6d48a820, 0x2cbce: 0x6d48aa20, 0x2cbcf: 0x6d48ac20, + 0x2cbd0: 0x6d76aa20, 0x2cbd1: 0x6d76ac20, 0x2cbd2: 0x6d76ae20, 0x2cbd3: 0x6d76b020, + 0x2cbd4: 0x6d76b220, 0x2cbd5: 0x6da03420, 0x2cbd6: 0x6de05820, 0x2cbd7: 0x6e0c7220, + 0x2cbd8: 0x6e0c7420, 0x2cbd9: 0x6e286020, 0x2cbda: 0x6e286220, 0x2cbdb: 0x6c00a820, + 0x2cbdc: 0x6c016020, 0x2cbdd: 0x6c033c20, 0x2cbde: 0x6c033e20, 0x2cbdf: 0x6c06a420, + 0x2cbe0: 0x6c06a620, 0x2cbe1: 0x6c06a820, 0x2cbe2: 0x6c06aa20, 0x2cbe3: 0x6c0d4020, + 0x2cbe4: 0x6c0d4220, 0x2cbe5: 0x6c0d4420, 0x2cbe6: 0x6c0d4620, 0x2cbe7: 0x6c0d4820, + 0x2cbe8: 0x6c0d4a20, 0x2cbe9: 0x6c183c20, 0x2cbea: 0x6c183e20, 0x2cbeb: 0x6c184020, + 0x2cbec: 0x6c184220, 0x2cbed: 0x6c184420, 0x2cbee: 0x6c184620, 0x2cbef: 0x6c184820, + 0x2cbf0: 0x6c184a20, 0x2cbf1: 0x6c184c20, 0x2cbf2: 0x6c184e20, 0x2cbf3: 0x6c185020, + 0x2cbf4: 0x6c185220, 0x2cbf5: 0x6c2b5220, 0x2cbf6: 0x6c2b5420, 0x2cbf7: 0x6c2b5620, + 0x2cbf8: 0x6c2b5820, 0x2cbf9: 0x6c2b5a20, 0x2cbfa: 0x6c2b5c20, 0x2cbfb: 0x6c2b5e20, + 0x2cbfc: 0x6c2b6020, 0x2cbfd: 0x6c2b6220, 0x2cbfe: 0x6c2b6420, 0x2cbff: 0x6c2b6620, + // Block 0xb30, offset 0x2cc00 + 0x2cc00: 0x6c455020, 0x2cc01: 0x6c455220, 0x2cc02: 0x6c455420, 0x2cc03: 0x6c455620, + 0x2cc04: 0x6c455820, 0x2cc05: 0x6c455a20, 0x2cc06: 0x6c2b8620, 0x2cc07: 0x6c455c20, + 0x2cc08: 0x6c455e20, 0x2cc09: 0x6c456020, 0x2cc0a: 0x6c456220, 0x2cc0b: 0x6c456420, + 0x2cc0c: 0x6c66ac20, 0x2cc0d: 0x6c66ae20, 0x2cc0e: 0x6c66b020, 0x2cc0f: 0x6c66b220, + 0x2cc10: 0x6c66b420, 0x2cc11: 0x6c66b620, 0x2cc12: 0x6c8d4420, 0x2cc13: 0x6c8d4620, + 0x2cc14: 0x6c8d4820, 0x2cc15: 0x6c8d4a20, 0x2cc16: 0x6c8d4c20, 0x2cc17: 0x6c9b7c20, + 0x2cc18: 0x6c8d4e20, 0x2cc19: 0x6c8d5020, 0x2cc1a: 0x6c8d5220, 0x2cc1b: 0x6cb9ac20, + 0x2cc1c: 0x6cb9ae20, 0x2cc1d: 0x6cb9b020, 0x2cc1e: 0x6cb9b220, 0x2cc1f: 0x6cea9220, + 0x2cc20: 0x6cea9420, 0x2cc21: 0x6cea9620, 0x2cc22: 0x6cea9820, 0x2cc23: 0x6cea9a20, + 0x2cc24: 0x6cea9c20, 0x2cc25: 0x6cea9e20, 0x2cc26: 0x6ceaa020, 0x2cc27: 0x6ceaa220, + 0x2cc28: 0x6d1a7820, 0x2cc29: 0x6d1a7a20, 0x2cc2a: 0x6d1a7c20, 0x2cc2b: 0x6d1a7e20, + 0x2cc2c: 0x6d1a8020, 0x2cc2d: 0x6d1a8220, 0x2cc2e: 0x6d48da20, 0x2cc2f: 0x6d48dc20, + 0x2cc30: 0x6d48de20, 0x2cc31: 0x6d48e020, 0x2cc32: 0x6d48e220, 0x2cc33: 0x6d76da20, + 0x2cc34: 0x6da05c20, 0x2cc35: 0x6da05e20, 0x2cc36: 0x6da06020, 0x2cc37: 0x6de06020, + 0x2cc38: 0x6de06620, 0x2cc39: 0x6c00aa20, 0x2cc3a: 0x6c016420, 0x2cc3b: 0x6c034620, + 0x2cc3c: 0x6c034820, 0x2cc3d: 0x6c034a20, 0x2cc3e: 0x6c034c20, 0x2cc3f: 0x6c034e20, + // Block 0xb31, offset 0x2cc40 + 0x2cc40: 0x6c035020, 0x2cc41: 0x6c035220, 0x2cc42: 0x6c035420, 0x2cc43: 0x6c06b420, + 0x2cc44: 0x6c06b620, 0x2cc45: 0x6c06b820, 0x2cc46: 0x6c06ba20, 0x2cc47: 0x6c06bc20, + 0x2cc48: 0x6c0d5e20, 0x2cc49: 0x6c187820, 0x2cc4a: 0x6c2b8820, 0x2cc4b: 0x6c2b8a20, + 0x2cc4c: 0x6c2b8c20, 0x2cc4d: 0x6c458220, 0x2cc4e: 0x6c66de20, 0x2cc4f: 0x6c8d6c20, + 0x2cc50: 0x6c8d6e20, 0x2cc51: 0x6cb9d620, 0x2cc52: 0x6cb9d820, 0x2cc53: 0x6c8d7e20, + 0x2cc54: 0x6d48f220, 0x2cc55: 0x6c00ac20, 0x2cc56: 0x6c035a20, 0x2cc57: 0x6c06c620, + 0x2cc58: 0x6c8d8220, 0x2cc59: 0x6c8d8420, 0x2cc5a: 0x6c00b020, 0x2cc5b: 0x6c06ca20, + 0x2cc5c: 0x6c06cc20, 0x2cc5d: 0x6c06ce20, 0x2cc5e: 0x6c06d020, 0x2cc5f: 0x6c0d6820, + 0x2cc60: 0x6c0d6a20, 0x2cc61: 0x6c0d6c20, 0x2cc62: 0x6c0d6e20, 0x2cc63: 0x6c189020, + 0x2cc64: 0x6c189220, 0x2cc65: 0x6c189420, 0x2cc66: 0x6c2b9e20, 0x2cc67: 0x6c45a020, + 0x2cc68: 0x6c45a220, 0x2cc69: 0x6c45a420, 0x2cc6a: 0x6c66fc20, 0x2cc6b: 0x6c66fe20, + 0x2cc6c: 0x6c8d8820, 0x2cc6d: 0x6c8d8a20, 0x2cc6e: 0x6c8d8c20, 0x2cc6f: 0x6cead820, + 0x2cc70: 0x6d1abc20, 0x2cc71: 0x6d1abe20, 0x2cc72: 0x6d1ac020, 0x2cc73: 0x6d48f620, + 0x2cc74: 0x6d76ea20, 0x2cc75: 0x6da07820, 0x2cc76: 0x6de06820, 0x2cc77: 0x6df8ba20, + 0x2cc78: 0x6c00b420, 0x2cc79: 0x6c036020, 0x2cc7a: 0x6c036220, 0x2cc7b: 0x6c18a620, + 0x2cc7c: 0x6c2ba820, 0x2cc7d: 0x6c45c020, 0x2cc7e: 0x6c8d9220, 0x2cc7f: 0x6c8d9420, + // Block 0xb32, offset 0x2cc80 + 0x2cc80: 0x6c8d9620, 0x2cc81: 0x6c00b620, 0x2cc82: 0x6c016820, 0x2cc83: 0x6c016a20, + 0x2cc84: 0x6c00e620, 0x2cc85: 0x6c036820, 0x2cc86: 0x6c036a20, 0x2cc87: 0x6c036c20, + 0x2cc88: 0x6c036e20, 0x2cc89: 0x6c06d220, 0x2cc8a: 0x6c06d420, 0x2cc8b: 0x6c0d8420, + 0x2cc8c: 0x6c06d620, 0x2cc8d: 0x6c0d8620, 0x2cc8e: 0x6c0d8820, 0x2cc8f: 0x6c0d8a20, + 0x2cc90: 0x6c0d8c20, 0x2cc91: 0x6c2bac20, 0x2cc92: 0x6c2bae20, 0x2cc93: 0x6c2bb020, + 0x2cc94: 0x6c2bb220, 0x2cc95: 0x6c2bb420, 0x2cc96: 0x6c2bb620, 0x2cc97: 0x6c45c820, + 0x2cc98: 0x6c45ca20, 0x2cc99: 0x6c8d9820, 0x2cc9a: 0x6cb9f220, 0x2cc9b: 0x6e0c8420, + 0x2cc9c: 0x6c00ba20, 0x2cc9d: 0x6c037620, 0x2cc9e: 0x6c037820, 0x2cc9f: 0x6c06e220, + 0x2cca0: 0x6c06e420, 0x2cca1: 0x6c06e620, 0x2cca2: 0x6c06e820, 0x2cca3: 0x6c18c020, + 0x2cca4: 0x6c18c220, 0x2cca5: 0x6c2bd620, 0x2cca6: 0x6c2bd820, 0x2cca7: 0x6c2bda20, + 0x2cca8: 0x6c8da820, 0x2cca9: 0x6c00bc20, 0x2ccaa: 0x6c017220, 0x2ccab: 0x6c017420, + 0x2ccac: 0x6c037c20, 0x2ccad: 0x6c06ec20, 0x2ccae: 0x6c06ee20, 0x2ccaf: 0x6c06f020, + 0x2ccb0: 0x6c0db820, 0x2ccb1: 0x6c0dba20, 0x2ccb2: 0x6c18d220, 0x2ccb3: 0x6c18d420, + 0x2ccb4: 0x6c18d620, 0x2ccb5: 0x6c18d820, 0x2ccb6: 0x6c2bf420, 0x2ccb7: 0x6c2bf620, + 0x2ccb8: 0x6c2bf820, 0x2ccb9: 0x6c2bfa20, 0x2ccba: 0x6c2bfc20, 0x2ccbb: 0x6c45e420, + 0x2ccbc: 0x6c45e620, 0x2ccbd: 0x6c45e820, 0x2ccbe: 0x6c8db620, 0x2ccbf: 0x6c673020, + // Block 0xb33, offset 0x2ccc0 + 0x2ccc0: 0x6ceaf820, 0x2ccc1: 0x6ceafa20, 0x2ccc2: 0x6c00be20, 0x2ccc3: 0x6c038620, + 0x2ccc4: 0x6c038820, 0x2ccc5: 0x6c038a20, 0x2ccc6: 0x6c038c20, 0x2ccc7: 0x6c06f420, + 0x2ccc8: 0x6c06f620, 0x2ccc9: 0x6c06f820, 0x2ccca: 0x6c0dce20, 0x2cccb: 0x6c0dd020, + 0x2cccc: 0x6c0dd220, 0x2cccd: 0x6c0dd420, 0x2ccce: 0x6c18e220, 0x2cccf: 0x6c18e420, + 0x2ccd0: 0x6c18e620, 0x2ccd1: 0x6c18e820, 0x2ccd2: 0x6c2c0420, 0x2ccd3: 0x6c2c0620, + 0x2ccd4: 0x6c2c0820, 0x2ccd5: 0x6c2c0a20, 0x2ccd6: 0x6c45f820, 0x2ccd7: 0x6c45fa20, + 0x2ccd8: 0x6c45fc20, 0x2ccd9: 0x6c45fe20, 0x2ccda: 0x6c460020, 0x2ccdb: 0x6c460220, + 0x2ccdc: 0x6c673820, 0x2ccdd: 0x6c673a20, 0x2ccde: 0x6c673c20, 0x2ccdf: 0x6c673e20, + 0x2cce0: 0x6c8db820, 0x2cce1: 0x6c8dba20, 0x2cce2: 0x6c8dbc20, 0x2cce3: 0x6c8dbe20, + 0x2cce4: 0x6cba0c20, 0x2cce5: 0x6cba0e20, 0x2cce6: 0x6cba1020, 0x2cce7: 0x6cba1220, + 0x2cce8: 0x6cba1420, 0x2cce9: 0x6c8dc020, 0x2ccea: 0x6ceb0420, 0x2cceb: 0x6ceb0620, + 0x2ccec: 0x6d1ae020, 0x2cced: 0x6d1ae220, 0x2ccee: 0x6d1ae420, 0x2ccef: 0x6ceb2020, + 0x2ccf0: 0x6d1ae620, 0x2ccf1: 0x6d491a20, 0x2ccf2: 0x6d491c20, 0x2ccf3: 0x6da08820, + 0x2ccf4: 0x6de07020, 0x2ccf5: 0x6e451620, 0x2ccf6: 0x6c00c020, 0x2ccf7: 0x6c039220, + 0x2ccf8: 0x6c039420, 0x2ccf9: 0x6c039620, 0x2ccfa: 0x6c070a20, 0x2ccfb: 0x6c070c20, + 0x2ccfc: 0x6c070e20, 0x2ccfd: 0x6c0df220, 0x2ccfe: 0x6c0df420, 0x2ccff: 0x6c190420, + // Block 0xb34, offset 0x2cd00 + 0x2cd00: 0x6c2c2820, 0x2cd01: 0x6c2c2a20, 0x2cd02: 0x6c2c2c20, 0x2cd03: 0x6c8de620, + 0x2cd04: 0x6c8de820, 0x2cd05: 0x6cba2e20, 0x2cd06: 0x6d1b1420, 0x2cd07: 0x6d493c20, + 0x2cd08: 0x6c00c420, 0x2cd09: 0x6c017e20, 0x2cd0a: 0x6c03a020, 0x2cd0b: 0x6c03a220, + 0x2cd0c: 0x6c03a420, 0x2cd0d: 0x6c03a620, 0x2cd0e: 0x6c03a820, 0x2cd0f: 0x6c071a20, + 0x2cd10: 0x6c071c20, 0x2cd11: 0x6c071e20, 0x2cd12: 0x6c0e0820, 0x2cd13: 0x6c190e20, + 0x2cd14: 0x6c2c3c20, 0x2cd15: 0x6c2c3e20, 0x2cd16: 0x6c2c4020, 0x2cd17: 0x6c2c4220, + 0x2cd18: 0x6c2c4420, 0x2cd19: 0x6c464020, 0x2cd1a: 0x6c464220, 0x2cd1b: 0x6c464420, + 0x2cd1c: 0x6c464620, 0x2cd1d: 0x6c464820, 0x2cd1e: 0x6c677c20, 0x2cd1f: 0x6c677e20, + 0x2cd20: 0x6ceb3220, 0x2cd21: 0x6d76fc20, 0x2cd22: 0x6dc2f620, 0x2cd23: 0x6c018020, + 0x2cd24: 0x6c073620, 0x2cd25: 0x6c073820, 0x2cd26: 0x6c073a20, 0x2cd27: 0x6c073c20, + 0x2cd28: 0x6c073e20, 0x2cd29: 0x6c074020, 0x2cd2a: 0x6c074220, 0x2cd2b: 0x6c074420, + 0x2cd2c: 0x6c074620, 0x2cd2d: 0x6c074820, 0x2cd2e: 0x6c074a20, 0x2cd2f: 0x6c074c20, + 0x2cd30: 0x6c074e20, 0x2cd31: 0x6c075020, 0x2cd32: 0x6c075220, 0x2cd33: 0x6c075420, + 0x2cd34: 0x6c075620, 0x2cd35: 0x6c075820, 0x2cd36: 0x6c075a20, 0x2cd37: 0x6c075c20, + 0x2cd38: 0x6c075e20, 0x2cd39: 0x6c076020, 0x2cd3a: 0x6c076220, 0x2cd3b: 0x6c076420, + 0x2cd3c: 0x6c076620, 0x2cd3d: 0x6c076820, 0x2cd3e: 0x6c076a20, 0x2cd3f: 0x6c0e2220, + // Block 0xb35, offset 0x2cd40 + 0x2cd40: 0x6c0e2420, 0x2cd41: 0x6c0e2620, 0x2cd42: 0x6c0e2820, 0x2cd43: 0x6c0e2a20, + 0x2cd44: 0x6c0e2c20, 0x2cd45: 0x6c0e2e20, 0x2cd46: 0x6c0e3020, 0x2cd47: 0x6c0e3220, + 0x2cd48: 0x6c0e3420, 0x2cd49: 0x6c0e3620, 0x2cd4a: 0x6c0e3820, 0x2cd4b: 0x6c0e3a20, + 0x2cd4c: 0x6c0e3c20, 0x2cd4d: 0x6c0e3e20, 0x2cd4e: 0x6c0e4020, 0x2cd4f: 0x6c0e4220, + 0x2cd50: 0x6c0e4420, 0x2cd51: 0x6c0e4620, 0x2cd52: 0x6c0e4820, 0x2cd53: 0x6c0e4a20, + 0x2cd54: 0x6c0e4c20, 0x2cd55: 0x6c0e4e20, 0x2cd56: 0x6c0e5020, 0x2cd57: 0x6c0e5220, + 0x2cd58: 0x6c193e20, 0x2cd59: 0x6c194020, 0x2cd5a: 0x6c194220, 0x2cd5b: 0x6c194420, + 0x2cd5c: 0x6c194620, 0x2cd5d: 0x6c194820, 0x2cd5e: 0x6c194a20, 0x2cd5f: 0x6c194c20, + 0x2cd60: 0x6c194e20, 0x2cd61: 0x6c195020, 0x2cd62: 0x6c195220, 0x2cd63: 0x6c195420, + 0x2cd64: 0x6c195620, 0x2cd65: 0x6c195820, 0x2cd66: 0x6c195a20, 0x2cd67: 0x6c195c20, + 0x2cd68: 0x6c195e20, 0x2cd69: 0x6c196020, 0x2cd6a: 0x6c196220, 0x2cd6b: 0x6c196420, + 0x2cd6c: 0x6c196620, 0x2cd6d: 0x6c196820, 0x2cd6e: 0x6c196a20, 0x2cd6f: 0x6c196c20, + 0x2cd70: 0x6c196e20, 0x2cd71: 0x6c197020, 0x2cd72: 0x6c197220, 0x2cd73: 0x6c197420, + 0x2cd74: 0x6c197620, 0x2cd75: 0x6c197820, 0x2cd76: 0x6c197a20, 0x2cd77: 0x6c197c20, + 0x2cd78: 0x6c197e20, 0x2cd79: 0x6c198020, 0x2cd7a: 0x6c198220, 0x2cd7b: 0x6c198420, + 0x2cd7c: 0x6c198620, 0x2cd7d: 0x6c198820, 0x2cd7e: 0x6c198a20, 0x2cd7f: 0x6c198c20, + // Block 0xb36, offset 0x2cd80 + 0x2cd80: 0x6c198e20, 0x2cd81: 0x6c199020, 0x2cd82: 0x6c199220, 0x2cd83: 0x6c199420, + 0x2cd84: 0x6c199620, 0x2cd85: 0x6c199820, 0x2cd86: 0x6c199a20, 0x2cd87: 0x6c199c20, + 0x2cd88: 0x6c199e20, 0x2cd89: 0x6c19a020, 0x2cd8a: 0x6c19a220, 0x2cd8b: 0x6c19a420, + 0x2cd8c: 0x6c19a620, 0x2cd8d: 0x6c19a820, 0x2cd8e: 0x6c19aa20, 0x2cd8f: 0x6c19ac20, + 0x2cd90: 0x6c19ae20, 0x2cd91: 0x6c19b020, 0x2cd92: 0x6c19b220, 0x2cd93: 0x6c19b420, + 0x2cd94: 0x6c19b620, 0x2cd95: 0x6c19b820, 0x2cd96: 0x6c19ba20, 0x2cd97: 0x6c19bc20, + 0x2cd98: 0x6c19be20, 0x2cd99: 0x6c19c020, 0x2cd9a: 0x6c19c220, 0x2cd9b: 0x6c19c420, + 0x2cd9c: 0x6c19c620, 0x2cd9d: 0x6c2c6820, 0x2cd9e: 0x6c2c6a20, 0x2cd9f: 0x6c2c6c20, + 0x2cda0: 0x6c2c6e20, 0x2cda1: 0x6c2c7020, 0x2cda2: 0x6c2c7220, 0x2cda3: 0x6c2c7420, + 0x2cda4: 0x6c2c7620, 0x2cda5: 0x6c2c7820, 0x2cda6: 0x6c2c7a20, 0x2cda7: 0x6c2c7c20, + 0x2cda8: 0x6c2c7e20, 0x2cda9: 0x6c2c8020, 0x2cdaa: 0x6c2c8220, 0x2cdab: 0x6c2c8420, + 0x2cdac: 0x6c2c8620, 0x2cdad: 0x6c2c8820, 0x2cdae: 0x6c2c8a20, 0x2cdaf: 0x6c2c8c20, + 0x2cdb0: 0x6c466420, 0x2cdb1: 0x6c2c8e20, 0x2cdb2: 0x6c466620, 0x2cdb3: 0x6c2c9020, + 0x2cdb4: 0x6c2c9220, 0x2cdb5: 0x6c2c9420, 0x2cdb6: 0x6c2c9620, 0x2cdb7: 0x6c2c9820, + 0x2cdb8: 0x6c2c9a20, 0x2cdb9: 0x6c2c9c20, 0x2cdba: 0x6c2c9e20, 0x2cdbb: 0x6c2ca020, + 0x2cdbc: 0x6c2ca220, 0x2cdbd: 0x6c2ca420, 0x2cdbe: 0x6c2ca620, 0x2cdbf: 0x6c2ca820, + // Block 0xb37, offset 0x2cdc0 + 0x2cdc0: 0x6c2caa20, 0x2cdc1: 0x6c2cac20, 0x2cdc2: 0x6c2cae20, 0x2cdc3: 0x6c2cb020, + 0x2cdc4: 0x6c2cb220, 0x2cdc5: 0x6c2cb420, 0x2cdc6: 0x6c2cb620, 0x2cdc7: 0x6c2cb820, + 0x2cdc8: 0x6c2cba20, 0x2cdc9: 0x6c2cbc20, 0x2cdca: 0x6c2cbe20, 0x2cdcb: 0x6c2cc020, + 0x2cdcc: 0x6c2cc220, 0x2cdcd: 0x6c2cc420, 0x2cdce: 0x6c2cc620, 0x2cdcf: 0x6c2cc820, + 0x2cdd0: 0x6c2cca20, 0x2cdd1: 0x6c2ccc20, 0x2cdd2: 0x6c2cce20, 0x2cdd3: 0x6c2cd020, + 0x2cdd4: 0x6c2cd220, 0x2cdd5: 0x6c2cd420, 0x2cdd6: 0x6c2cd620, 0x2cdd7: 0x6c2cd820, + 0x2cdd8: 0x6c2cda20, 0x2cdd9: 0x6c2cdc20, 0x2cdda: 0x6c2cde20, 0x2cddb: 0x6c2ce020, + 0x2cddc: 0x6c2ce220, 0x2cddd: 0x6c2ce420, 0x2cdde: 0x6c468620, 0x2cddf: 0x6c468820, + 0x2cde0: 0x6c468a20, 0x2cde1: 0x6c468c20, 0x2cde2: 0x6c468e20, 0x2cde3: 0x6c469020, + 0x2cde4: 0x6c469220, 0x2cde5: 0x6c469420, 0x2cde6: 0x6c469620, 0x2cde7: 0x6c469820, + 0x2cde8: 0x6c469a20, 0x2cde9: 0x6c469c20, 0x2cdea: 0x6c469e20, 0x2cdeb: 0x6c46a020, + 0x2cdec: 0x6c46a220, 0x2cded: 0x6c46a420, 0x2cdee: 0x6c46a620, 0x2cdef: 0x6c46a820, + 0x2cdf0: 0x6c46aa20, 0x2cdf1: 0x6c46ac20, 0x2cdf2: 0x6c46ae20, 0x2cdf3: 0x6c46b020, + 0x2cdf4: 0x6c46b220, 0x2cdf5: 0x6c46b420, 0x2cdf6: 0x6c46b620, 0x2cdf7: 0x6c46b820, + 0x2cdf8: 0x6c46ba20, 0x2cdf9: 0x6c46bc20, 0x2cdfa: 0x6c46be20, 0x2cdfb: 0x6c46c020, + 0x2cdfc: 0x6c46c220, 0x2cdfd: 0x6c46c420, 0x2cdfe: 0x6c46c620, 0x2cdff: 0x6c46c820, + // Block 0xb38, offset 0x2ce00 + 0x2ce00: 0x6c46ca20, 0x2ce01: 0x6c46cc20, 0x2ce02: 0x6c46ce20, 0x2ce03: 0x6c46d020, + 0x2ce04: 0x6c46d220, 0x2ce05: 0x6c46d420, 0x2ce06: 0x6c46d620, 0x2ce07: 0x6c46d820, + 0x2ce08: 0x6c46da20, 0x2ce09: 0x6c46dc20, 0x2ce0a: 0x6c46de20, 0x2ce0b: 0x6c46e020, + 0x2ce0c: 0x6c46e220, 0x2ce0d: 0x6c46e420, 0x2ce0e: 0x6c46e620, 0x2ce0f: 0x6c46e820, + 0x2ce10: 0x6c46ea20, 0x2ce11: 0x6c46ec20, 0x2ce12: 0x6c46ee20, 0x2ce13: 0x6c46f020, + 0x2ce14: 0x6c46f220, 0x2ce15: 0x6c46f420, 0x2ce16: 0x6c46f620, 0x2ce17: 0x6c46f820, + 0x2ce18: 0x6c46fa20, 0x2ce19: 0x6c46fc20, 0x2ce1a: 0x6c46fe20, 0x2ce1b: 0x6c470020, + 0x2ce1c: 0x6c470220, 0x2ce1d: 0x6c470420, 0x2ce1e: 0x6c470620, 0x2ce1f: 0x6c470820, + 0x2ce20: 0x6c67ba20, 0x2ce21: 0x6c67bc20, 0x2ce22: 0x6c67be20, 0x2ce23: 0x6c67c020, + 0x2ce24: 0x6c67c220, 0x2ce25: 0x6c67c420, 0x2ce26: 0x6c67c620, 0x2ce27: 0x6c67c820, + 0x2ce28: 0x6c67ca20, 0x2ce29: 0x6c67cc20, 0x2ce2a: 0x6c67ce20, 0x2ce2b: 0x6c67d020, + 0x2ce2c: 0x6c67d220, 0x2ce2d: 0x6c67d420, 0x2ce2e: 0x6c67d620, 0x2ce2f: 0x6c67d820, + 0x2ce30: 0x6c67da20, 0x2ce31: 0x6c67dc20, 0x2ce32: 0x6c67de20, 0x2ce33: 0x6c67e020, + 0x2ce34: 0x6c67e220, 0x2ce35: 0x6c67e420, 0x2ce36: 0x6c67e620, 0x2ce37: 0x6c67e820, + 0x2ce38: 0x6c67ea20, 0x2ce39: 0x6c67ec20, 0x2ce3a: 0x6c67ee20, 0x2ce3b: 0x6c67f020, + 0x2ce3c: 0x6c67f220, 0x2ce3d: 0x6c67f420, 0x2ce3e: 0x6c67f620, 0x2ce3f: 0x6c67f820, + // Block 0xb39, offset 0x2ce40 + 0x2ce40: 0x6c67fa20, 0x2ce41: 0x6c67fc20, 0x2ce42: 0x6c67fe20, 0x2ce43: 0x6c680020, + 0x2ce44: 0x6c680220, 0x2ce45: 0x6c680420, 0x2ce46: 0x6c680620, 0x2ce47: 0x6c680820, + 0x2ce48: 0x6c680a20, 0x2ce49: 0x6c680c20, 0x2ce4a: 0x6c680e20, 0x2ce4b: 0x6c681020, + 0x2ce4c: 0x6c8e1020, 0x2ce4d: 0x6c681220, 0x2ce4e: 0x6c681420, 0x2ce4f: 0x6c681620, + 0x2ce50: 0x6c681820, 0x2ce51: 0x6c681a20, 0x2ce52: 0x6c681c20, 0x2ce53: 0x6c681e20, + 0x2ce54: 0x6c682020, 0x2ce55: 0x6c682220, 0x2ce56: 0x6c682420, 0x2ce57: 0x6c682620, + 0x2ce58: 0x6c682820, 0x2ce59: 0x6c682a20, 0x2ce5a: 0x6c682c20, 0x2ce5b: 0x6c682e20, + 0x2ce5c: 0x6c683020, 0x2ce5d: 0x6c683220, 0x2ce5e: 0x6c683420, 0x2ce5f: 0x6c683620, + 0x2ce60: 0x6c683820, 0x2ce61: 0x6c683a20, 0x2ce62: 0x6c683c20, 0x2ce63: 0x6c683e20, + 0x2ce64: 0x6c684020, 0x2ce65: 0x6c684220, 0x2ce66: 0x6c684420, 0x2ce67: 0x6c684620, + 0x2ce68: 0x6c8e4020, 0x2ce69: 0x6c8e4220, 0x2ce6a: 0x6c8e4420, 0x2ce6b: 0x6c8e4620, + 0x2ce6c: 0x6c8e4820, 0x2ce6d: 0x6c8e4a20, 0x2ce6e: 0x6c8e4c20, 0x2ce6f: 0x6c8e4e20, + 0x2ce70: 0x6c8e5020, 0x2ce71: 0x6c8e5220, 0x2ce72: 0x6c8e5420, 0x2ce73: 0x6c8e5620, + 0x2ce74: 0x6c8e5820, 0x2ce75: 0x6c8e5a20, 0x2ce76: 0x6c8e5c20, 0x2ce77: 0x6c8e5e20, + 0x2ce78: 0x6c8e6020, 0x2ce79: 0x6c8e6220, 0x2ce7a: 0x6c8e6420, 0x2ce7b: 0x6c8e6620, + 0x2ce7c: 0x6c8e6820, 0x2ce7d: 0x6c8e6a20, 0x2ce7e: 0x6c8e6c20, 0x2ce7f: 0x6c8e6e20, + // Block 0xb3a, offset 0x2ce80 + 0x2ce80: 0x6c8e7020, 0x2ce81: 0x6c8e7220, 0x2ce82: 0x6c8e7420, 0x2ce83: 0x6c8e7620, + 0x2ce84: 0x6c8e7820, 0x2ce85: 0x6c8e7a20, 0x2ce86: 0x6c8e7c20, 0x2ce87: 0x6c8e7e20, + 0x2ce88: 0x6c8e8020, 0x2ce89: 0x6c8e8220, 0x2ce8a: 0x6c8e8420, 0x2ce8b: 0x6c8e8620, + 0x2ce8c: 0x6c8e8820, 0x2ce8d: 0x6c8e8a20, 0x2ce8e: 0x6c8e8c20, 0x2ce8f: 0x6c8e8e20, + 0x2ce90: 0x6c8e9020, 0x2ce91: 0x6c8e9220, 0x2ce92: 0x6c8e9420, 0x2ce93: 0x6c8e9620, + 0x2ce94: 0x6c8e9820, 0x2ce95: 0x6c8e9a20, 0x2ce96: 0x6c8e9c20, 0x2ce97: 0x6c8e9e20, + 0x2ce98: 0x6c8ea020, 0x2ce99: 0x6cba9420, 0x2ce9a: 0x6c8ea220, 0x2ce9b: 0x6c8ea420, + 0x2ce9c: 0x6c8ea620, 0x2ce9d: 0x6c8ea820, 0x2ce9e: 0x6c8eaa20, 0x2ce9f: 0x6c9aaa20, + 0x2cea0: 0x6c8eac20, 0x2cea1: 0x6c8eae20, 0x2cea2: 0x6c8eb020, 0x2cea3: 0x6c8eb220, + 0x2cea4: 0x6c8eb420, 0x2cea5: 0x6c8eb620, 0x2cea6: 0x6c8eb820, 0x2cea7: 0x6c8eba20, + 0x2cea8: 0x6c8ebc20, 0x2cea9: 0x6c8ebe20, 0x2ceaa: 0x6c8ec020, 0x2ceab: 0x6c901820, + 0x2ceac: 0x6c8ec220, 0x2cead: 0x6c8ec420, 0x2ceae: 0x6c8ec620, 0x2ceaf: 0x6c8ec820, + 0x2ceb0: 0x6c8eca20, 0x2ceb1: 0x6c8ecc20, 0x2ceb2: 0x6c8ece20, 0x2ceb3: 0x6c8ed020, + 0x2ceb4: 0x6c8ed220, 0x2ceb5: 0x6c8ed420, 0x2ceb6: 0x6c8ed620, 0x2ceb7: 0x6c8ed820, + 0x2ceb8: 0x6c8eda20, 0x2ceb9: 0x6c8edc20, 0x2ceba: 0x6cba9620, 0x2cebb: 0x6cba9820, + 0x2cebc: 0x6cba9a20, 0x2cebd: 0x6cba9c20, 0x2cebe: 0x6cba9e20, 0x2cebf: 0x6cbaa020, + // Block 0xb3b, offset 0x2cec0 + 0x2cec0: 0x6cbaa220, 0x2cec1: 0x6cbaa420, 0x2cec2: 0x6cbaa620, 0x2cec3: 0x6cbaa820, + 0x2cec4: 0x6cbaaa20, 0x2cec5: 0x6cbaac20, 0x2cec6: 0x6cbaae20, 0x2cec7: 0x6cbab020, + 0x2cec8: 0x6cbab220, 0x2cec9: 0x6cbab420, 0x2ceca: 0x6cbab620, 0x2cecb: 0x6cbab820, + 0x2cecc: 0x6cbaba20, 0x2cecd: 0x6ceb6e20, 0x2cece: 0x6cbabc20, 0x2cecf: 0x6cbabe20, + 0x2ced0: 0x6cbac020, 0x2ced1: 0x6cbac220, 0x2ced2: 0x6cbac420, 0x2ced3: 0x6cbac620, + 0x2ced4: 0x6cbac820, 0x2ced5: 0x6cbaca20, 0x2ced6: 0x6cbacc20, 0x2ced7: 0x6cbace20, + 0x2ced8: 0x6cbad020, 0x2ced9: 0x6cbad220, 0x2ceda: 0x6cbad420, 0x2cedb: 0x6cbad620, + 0x2cedc: 0x6cbad820, 0x2cedd: 0x6cbada20, 0x2cede: 0x6cbadc20, 0x2cedf: 0x6cbade20, + 0x2cee0: 0x6cbae020, 0x2cee1: 0x6cbae220, 0x2cee2: 0x6cbae420, 0x2cee3: 0x6cbae620, + 0x2cee4: 0x6cbae820, 0x2cee5: 0x6cbaea20, 0x2cee6: 0x6cbaec20, 0x2cee7: 0x6cbaee20, + 0x2cee8: 0x6cbaf020, 0x2cee9: 0x6cbaf220, 0x2ceea: 0x6cbaf420, 0x2ceeb: 0x6cbaf620, + 0x2ceec: 0x6cbaf820, 0x2ceed: 0x6cbafa20, 0x2ceee: 0x6cbafc20, 0x2ceef: 0x6cbafe20, + 0x2cef0: 0x6cbb0020, 0x2cef1: 0x6cbb0220, 0x2cef2: 0x6cbb0420, 0x2cef3: 0x6cbb0620, + 0x2cef4: 0x6cbb0820, 0x2cef5: 0x6cbb0a20, 0x2cef6: 0x6c901a20, 0x2cef7: 0x6cbb0c20, + 0x2cef8: 0x6cbb0e20, 0x2cef9: 0x6cbb1020, 0x2cefa: 0x6cbb1220, 0x2cefb: 0x6cbb1420, + 0x2cefc: 0x6cbb1620, 0x2cefd: 0x6cbb1820, 0x2cefe: 0x6cbb1a20, 0x2ceff: 0x6ceb7020, + // Block 0xb3c, offset 0x2cf00 + 0x2cf00: 0x6ceb7220, 0x2cf01: 0x6ceb7420, 0x2cf02: 0x6ceb7620, 0x2cf03: 0x6ceb7820, + 0x2cf04: 0x6ceb7a20, 0x2cf05: 0x6ceb7c20, 0x2cf06: 0x6ceb7e20, 0x2cf07: 0x6ceb8020, + 0x2cf08: 0x6ceb8220, 0x2cf09: 0x6ceb8420, 0x2cf0a: 0x6ceb8620, 0x2cf0b: 0x6ceb8820, + 0x2cf0c: 0x6ceb8a20, 0x2cf0d: 0x6ceb8c20, 0x2cf0e: 0x6ceb8e20, 0x2cf0f: 0x6ceb9020, + 0x2cf10: 0x6ceb9220, 0x2cf11: 0x6ceb9420, 0x2cf12: 0x6ceb9620, 0x2cf13: 0x6ceb9820, + 0x2cf14: 0x6ceb9a20, 0x2cf15: 0x6ceb9c20, 0x2cf16: 0x6ceb9e20, 0x2cf17: 0x6ceba020, + 0x2cf18: 0x6ceba220, 0x2cf19: 0x6ceba420, 0x2cf1a: 0x6ceba620, 0x2cf1b: 0x6ceba820, + 0x2cf1c: 0x6cebaa20, 0x2cf1d: 0x6cebac20, 0x2cf1e: 0x6cbc3e20, 0x2cf1f: 0x6cebae20, + 0x2cf20: 0x6cebb020, 0x2cf21: 0x6cebb220, 0x2cf22: 0x6cebb420, 0x2cf23: 0x6cebb620, + 0x2cf24: 0x6cebb820, 0x2cf25: 0x6cebba20, 0x2cf26: 0x6cebbc20, 0x2cf27: 0x6cebbe20, + 0x2cf28: 0x6cebc020, 0x2cf29: 0x6cebc220, 0x2cf2a: 0x6cebc420, 0x2cf2b: 0x6cebc620, + 0x2cf2c: 0x6cebc820, 0x2cf2d: 0x6cebca20, 0x2cf2e: 0x6cebcc20, 0x2cf2f: 0x6cebce20, + 0x2cf30: 0x6cebd020, 0x2cf31: 0x6cebd220, 0x2cf32: 0x6cebd420, 0x2cf33: 0x6cebd620, + 0x2cf34: 0x6cebd820, 0x2cf35: 0x6cebda20, 0x2cf36: 0x6d1b5220, 0x2cf37: 0x6d1b5420, + 0x2cf38: 0x6d1b5620, 0x2cf39: 0x6d1b5820, 0x2cf3a: 0x6d1b5a20, 0x2cf3b: 0x6d1b5c20, + 0x2cf3c: 0x6d1b5e20, 0x2cf3d: 0x6d1b6020, 0x2cf3e: 0x6d1b6220, 0x2cf3f: 0x6d1b6420, + // Block 0xb3d, offset 0x2cf40 + 0x2cf40: 0x6d1b6620, 0x2cf41: 0x6d1b6820, 0x2cf42: 0x6d1b6a20, 0x2cf43: 0x6d1b6c20, + 0x2cf44: 0x6d1b6e20, 0x2cf45: 0x6d1b7020, 0x2cf46: 0x6d1b7220, 0x2cf47: 0x6d1b7420, + 0x2cf48: 0x6d1b7620, 0x2cf49: 0x6d1b7820, 0x2cf4a: 0x6d1b7a20, 0x2cf4b: 0x6d1b7c20, + 0x2cf4c: 0x6d1b7e20, 0x2cf4d: 0x6d1b8020, 0x2cf4e: 0x6d1b8220, 0x2cf4f: 0x6d1b8420, + 0x2cf50: 0x6d1b8620, 0x2cf51: 0x6d1b8820, 0x2cf52: 0x6d1b8a20, 0x2cf53: 0x6d1b8c20, + 0x2cf54: 0x6d1b8e20, 0x2cf55: 0x6d1b9020, 0x2cf56: 0x6d1b9220, 0x2cf57: 0x6d1b9420, + 0x2cf58: 0x6d1b9620, 0x2cf59: 0x6d1b9820, 0x2cf5a: 0x6d1b9a20, 0x2cf5b: 0x6d1b9c20, + 0x2cf5c: 0x6d1b9e20, 0x2cf5d: 0x6d1ba020, 0x2cf5e: 0x6d1ba220, 0x2cf5f: 0x6d1cec20, + 0x2cf60: 0x6d496220, 0x2cf61: 0x6d1ba420, 0x2cf62: 0x6d1ba620, 0x2cf63: 0x6d1ba820, + 0x2cf64: 0x6d1baa20, 0x2cf65: 0x6d1bac20, 0x2cf66: 0x6d1bae20, 0x2cf67: 0x6d1bb020, + 0x2cf68: 0x6d1cee20, 0x2cf69: 0x6d496420, 0x2cf6a: 0x6d496620, 0x2cf6b: 0x6d496820, + 0x2cf6c: 0x6d496a20, 0x2cf6d: 0x6d496c20, 0x2cf6e: 0x6d496e20, 0x2cf6f: 0x6d497020, + 0x2cf70: 0x6d497220, 0x2cf71: 0x6d497420, 0x2cf72: 0x6d497620, 0x2cf73: 0x6d497820, + 0x2cf74: 0x6d497a20, 0x2cf75: 0x6d497c20, 0x2cf76: 0x6d497e20, 0x2cf77: 0x6d498020, + 0x2cf78: 0x6d498220, 0x2cf79: 0x6d498420, 0x2cf7a: 0x6d498620, 0x2cf7b: 0x6d498820, + 0x2cf7c: 0x6d498a20, 0x2cf7d: 0x6d498c20, 0x2cf7e: 0x6d498e20, 0x2cf7f: 0x6d499020, + // Block 0xb3e, offset 0x2cf80 + 0x2cf80: 0x6d499220, 0x2cf81: 0x6d499420, 0x2cf82: 0x6d499620, 0x2cf83: 0x6d499820, + 0x2cf84: 0x6d499a20, 0x2cf85: 0x6cbb1c20, 0x2cf86: 0x6d499c20, 0x2cf87: 0x6d499e20, + 0x2cf88: 0x6d49a020, 0x2cf89: 0x6d49a220, 0x2cf8a: 0x6d49a420, 0x2cf8b: 0x6d49a620, + 0x2cf8c: 0x6d49a820, 0x2cf8d: 0x6d49aa20, 0x2cf8e: 0x6d49ac20, 0x2cf8f: 0x6d49ae20, + 0x2cf90: 0x6d49b020, 0x2cf91: 0x6d1bb220, 0x2cf92: 0x6d49b220, 0x2cf93: 0x6d494c20, + 0x2cf94: 0x6d49b420, 0x2cf95: 0x6d590220, 0x2cf96: 0x6d49b620, 0x2cf97: 0x6d49b820, + 0x2cf98: 0x6d49ba20, 0x2cf99: 0x6d49bc20, 0x2cf9a: 0x6d49be20, 0x2cf9b: 0x6d49c020, + 0x2cf9c: 0x6d49c220, 0x2cf9d: 0x6d49c420, 0x2cf9e: 0x6d772220, 0x2cf9f: 0x6d772420, + 0x2cfa0: 0x6d772620, 0x2cfa1: 0x6d772820, 0x2cfa2: 0x6d772a20, 0x2cfa3: 0x6d772c20, + 0x2cfa4: 0x6d772e20, 0x2cfa5: 0x6d773020, 0x2cfa6: 0x6d773220, 0x2cfa7: 0x6d773420, + 0x2cfa8: 0x6d773620, 0x2cfa9: 0x6d773820, 0x2cfaa: 0x6d773a20, 0x2cfab: 0x6d773c20, + 0x2cfac: 0x6d773e20, 0x2cfad: 0x6d774020, 0x2cfae: 0x6d774220, 0x2cfaf: 0x6d774420, + 0x2cfb0: 0x6d774620, 0x2cfb1: 0x6d774820, 0x2cfb2: 0x6d774a20, 0x2cfb3: 0x6d774c20, + 0x2cfb4: 0x6d49c620, 0x2cfb5: 0x6d774e20, 0x2cfb6: 0x6d775020, 0x2cfb7: 0x6d775220, + 0x2cfb8: 0x6d775420, 0x2cfb9: 0x6d775620, 0x2cfba: 0x6d775820, 0x2cfbb: 0x6d775a20, + 0x2cfbc: 0x6d775c20, 0x2cfbd: 0x6da0a220, 0x2cfbe: 0x6da0a420, 0x2cfbf: 0x6da0a620, + // Block 0xb3f, offset 0x2cfc0 + 0x2cfc0: 0x6da0a820, 0x2cfc1: 0x6da0aa20, 0x2cfc2: 0x6da0ac20, 0x2cfc3: 0x6da0ae20, + 0x2cfc4: 0x6da0b020, 0x2cfc5: 0x6da0b220, 0x2cfc6: 0x6da0b420, 0x2cfc7: 0x6da0b620, + 0x2cfc8: 0x6da0b820, 0x2cfc9: 0x6da0ba20, 0x2cfca: 0x6da0bc20, 0x2cfcb: 0x6da0be20, + 0x2cfcc: 0x6da0c020, 0x2cfcd: 0x6da0c220, 0x2cfce: 0x6da0c420, 0x2cfcf: 0x6da0c620, + 0x2cfd0: 0x6da0c820, 0x2cfd1: 0x6da0ca20, 0x2cfd2: 0x6da0cc20, 0x2cfd3: 0x6da0ce20, + 0x2cfd4: 0x6dc30820, 0x2cfd5: 0x6dc30a20, 0x2cfd6: 0x6dc30c20, 0x2cfd7: 0x6dc30e20, + 0x2cfd8: 0x6dc31020, 0x2cfd9: 0x6dc31220, 0x2cfda: 0x6dc31420, 0x2cfdb: 0x6dc31620, + 0x2cfdc: 0x6dc31820, 0x2cfdd: 0x6dc31a20, 0x2cfde: 0x6dc31c20, 0x2cfdf: 0x6dc31e20, + 0x2cfe0: 0x6dc32020, 0x2cfe1: 0x6dc32220, 0x2cfe2: 0x6dc32420, 0x2cfe3: 0x6dc32620, + 0x2cfe4: 0x6dc32820, 0x2cfe5: 0x6de08420, 0x2cfe6: 0x6de08620, 0x2cfe7: 0x6de08820, + 0x2cfe8: 0x6de08a20, 0x2cfe9: 0x6de08c20, 0x2cfea: 0x6de08e20, 0x2cfeb: 0x6de09020, + 0x2cfec: 0x6de09220, 0x2cfed: 0x6de09420, 0x2cfee: 0x6dc3dc20, 0x2cfef: 0x6de09620, + 0x2cff0: 0x6de09820, 0x2cff1: 0x6df8d020, 0x2cff2: 0x6df8d220, 0x2cff3: 0x6df8d420, + 0x2cff4: 0x6df8d620, 0x2cff5: 0x6df8d820, 0x2cff6: 0x6df8da20, 0x2cff7: 0x6df8dc20, + 0x2cff8: 0x6df8de20, 0x2cff9: 0x6df8e020, 0x2cffa: 0x6e0c9020, 0x2cffb: 0x6e0c9820, + 0x2cffc: 0x6df92820, 0x2cffd: 0x6e0c9a20, 0x2cffe: 0x6e0c9c20, 0x2cfff: 0x6e0c9e20, + // Block 0xb40, offset 0x2d000 + 0x2d000: 0x6e0ca020, 0x2d001: 0x6e0ca220, 0x2d002: 0x6e0ca420, 0x2d003: 0x6e0ca620, + 0x2d004: 0x6e0ca820, 0x2d005: 0x6e1c3020, 0x2d006: 0x6e1c3220, 0x2d007: 0x6e1c3420, + 0x2d008: 0x6e1c3620, 0x2d009: 0x6e1c3820, 0x2d00a: 0x6e1c3a20, 0x2d00b: 0x6e1c3c20, + 0x2d00c: 0x6e287620, 0x2d00d: 0x6e0caa20, 0x2d00e: 0x6e1c3e20, 0x2d00f: 0x6e287820, + 0x2d010: 0x6e287a20, 0x2d011: 0x6e319e20, 0x2d012: 0x6e31a020, 0x2d013: 0x6e31a220, + 0x2d014: 0x6e384820, 0x2d015: 0x6e384a20, 0x2d016: 0x6e428420, 0x2d017: 0x6c018220, + 0x2d018: 0x6c078a20, 0x2d019: 0x6c078c20, 0x2d01a: 0x6c078e20, 0x2d01b: 0x6c079020, + 0x2d01c: 0x6c079220, 0x2d01d: 0x6c0e9820, 0x2d01e: 0x6c0e9a20, 0x2d01f: 0x6c0e9c20, + 0x2d020: 0x6c0e9e20, 0x2d021: 0x6c0ea020, 0x2d022: 0x6c0ea220, 0x2d023: 0x6c0ea420, + 0x2d024: 0x6c1a4a20, 0x2d025: 0x6c1a4c20, 0x2d026: 0x6c1a4e20, 0x2d027: 0x6c1a5020, + 0x2d028: 0x6c1a5220, 0x2d029: 0x6c1a5420, 0x2d02a: 0x6c1a5620, 0x2d02b: 0x6c1a5820, + 0x2d02c: 0x6c1a5a20, 0x2d02d: 0x6c1a5c20, 0x2d02e: 0x6c1a5e20, 0x2d02f: 0x6c1a6020, + 0x2d030: 0x6c1a6220, 0x2d031: 0x6c1a6420, 0x2d032: 0x6c1a6620, 0x2d033: 0x6c1a6820, + 0x2d034: 0x6c1a6a20, 0x2d035: 0x6c1a6c20, 0x2d036: 0x6c2d8220, 0x2d037: 0x6c2d8420, + 0x2d038: 0x6c2d8620, 0x2d039: 0x6c2d8820, 0x2d03a: 0x6c2d8a20, 0x2d03b: 0x6c2d8c20, + 0x2d03c: 0x6c2d8e20, 0x2d03d: 0x6c2d9020, 0x2d03e: 0x6c2d9220, 0x2d03f: 0x6c47de20, + // Block 0xb41, offset 0x2d040 + 0x2d040: 0x6c47e020, 0x2d041: 0x6c695020, 0x2d042: 0x6c695220, 0x2d043: 0x6c695420, + 0x2d044: 0x6c695620, 0x2d045: 0x6c695820, 0x2d046: 0x6c695a20, 0x2d047: 0x6c901c20, + 0x2d048: 0x6c901e20, 0x2d049: 0x6c902020, 0x2d04a: 0x6c902220, 0x2d04b: 0x6c902420, + 0x2d04c: 0x6cbc4020, 0x2d04d: 0x6cbc4220, 0x2d04e: 0x6cbc4420, 0x2d04f: 0x6c902620, + 0x2d050: 0x6cbc4620, 0x2d051: 0x6ced2820, 0x2d052: 0x6ced2a20, 0x2d053: 0x6ced2c20, + 0x2d054: 0x6ced2e20, 0x2d055: 0x6ced3020, 0x2d056: 0x6d1cf220, 0x2d057: 0x6d1cf420, + 0x2d058: 0x6d1cf620, 0x2d059: 0x6d1cf820, 0x2d05a: 0x6d4ab620, 0x2d05b: 0x6d785820, + 0x2d05c: 0x6d785a20, 0x2d05d: 0x6e1c7420, 0x2d05e: 0x6e3d0e20, 0x2d05f: 0x6c018420, + 0x2d060: 0x6c03ce20, 0x2d061: 0x6c03d020, 0x2d062: 0x6c07a220, 0x2d063: 0x6c07a420, + 0x2d064: 0x6c07a620, 0x2d065: 0x6c07a820, 0x2d066: 0x6c07aa20, 0x2d067: 0x6c07ac20, + 0x2d068: 0x6c0ec020, 0x2d069: 0x6c0ec220, 0x2d06a: 0x6c0ec420, 0x2d06b: 0x6c0ec620, + 0x2d06c: 0x6c0ec820, 0x2d06d: 0x6c0eca20, 0x2d06e: 0x6c0ecc20, 0x2d06f: 0x6c0ece20, + 0x2d070: 0x6c0ed020, 0x2d071: 0x6c0ed220, 0x2d072: 0x6c0ed420, 0x2d073: 0x6c0ed620, + 0x2d074: 0x6c0ed820, 0x2d075: 0x6c0eda20, 0x2d076: 0x6c0edc20, 0x2d077: 0x6c0ede20, + 0x2d078: 0x6c0ee020, 0x2d079: 0x6c0ee220, 0x2d07a: 0x6c0ee420, 0x2d07b: 0x6c1aac20, + 0x2d07c: 0x6c1aae20, 0x2d07d: 0x6c1ab020, 0x2d07e: 0x6c1ab220, 0x2d07f: 0x6c1ab420, + // Block 0xb42, offset 0x2d080 + 0x2d080: 0x6c1ab620, 0x2d081: 0x6c1ab820, 0x2d082: 0x6c1aba20, 0x2d083: 0x6c1abc20, + 0x2d084: 0x6c1abe20, 0x2d085: 0x6c1ac020, 0x2d086: 0x6c1ac220, 0x2d087: 0x6c1ac420, + 0x2d088: 0x6c1ac620, 0x2d089: 0x6c1ac820, 0x2d08a: 0x6c1aca20, 0x2d08b: 0x6c1acc20, + 0x2d08c: 0x6c1ace20, 0x2d08d: 0x6c1ad020, 0x2d08e: 0x6c1ad220, 0x2d08f: 0x6c1ad420, + 0x2d090: 0x6c1ad620, 0x2d091: 0x6c1ad820, 0x2d092: 0x6c1ada20, 0x2d093: 0x6c1adc20, + 0x2d094: 0x6c1ade20, 0x2d095: 0x6c1ae020, 0x2d096: 0x6c1ae220, 0x2d097: 0x6c1ae420, + 0x2d098: 0x6c1ae620, 0x2d099: 0x6c1ae820, 0x2d09a: 0x6c1aea20, 0x2d09b: 0x6c1aec20, + 0x2d09c: 0x6c1aee20, 0x2d09d: 0x6c1af020, 0x2d09e: 0x6c1af220, 0x2d09f: 0x6c1af420, + 0x2d0a0: 0x6c1af620, 0x2d0a1: 0x6c2db420, 0x2d0a2: 0x6c2db620, 0x2d0a3: 0x6c2db820, + 0x2d0a4: 0x6c2dba20, 0x2d0a5: 0x6c2dbc20, 0x2d0a6: 0x6c2dbe20, 0x2d0a7: 0x6c2dc020, + 0x2d0a8: 0x6c2dc220, 0x2d0a9: 0x6c2dc420, 0x2d0aa: 0x6c2dc620, 0x2d0ab: 0x6c2dc820, + 0x2d0ac: 0x6c2dca20, 0x2d0ad: 0x6c2dcc20, 0x2d0ae: 0x6c2dce20, 0x2d0af: 0x6c2dd020, + 0x2d0b0: 0x6c2dd220, 0x2d0b1: 0x6c2dd420, 0x2d0b2: 0x6c2dd620, 0x2d0b3: 0x6c2dd820, + 0x2d0b4: 0x6c2dda20, 0x2d0b5: 0x6c2ddc20, 0x2d0b6: 0x6c2dde20, 0x2d0b7: 0x6c2de020, + 0x2d0b8: 0x6c2de220, 0x2d0b9: 0x6c2de420, 0x2d0ba: 0x6c2de620, 0x2d0bb: 0x6c2de820, + 0x2d0bc: 0x6c2dea20, 0x2d0bd: 0x6c2dec20, 0x2d0be: 0x6c2dee20, 0x2d0bf: 0x6c2df020, + // Block 0xb43, offset 0x2d0c0 + 0x2d0c0: 0x6c2df220, 0x2d0c1: 0x6c2df420, 0x2d0c2: 0x6c2df620, 0x2d0c3: 0x6c2df820, + 0x2d0c4: 0x6c2dfa20, 0x2d0c5: 0x6c2dfc20, 0x2d0c6: 0x6c2dfe20, 0x2d0c7: 0x6c2e0020, + 0x2d0c8: 0x6c2e0220, 0x2d0c9: 0x6c2e0420, 0x2d0ca: 0x6c2e0620, 0x2d0cb: 0x6c481220, + 0x2d0cc: 0x6c481420, 0x2d0cd: 0x6c481620, 0x2d0ce: 0x6c481820, 0x2d0cf: 0x6c481a20, + 0x2d0d0: 0x6c481c20, 0x2d0d1: 0x6c481e20, 0x2d0d2: 0x6c482020, 0x2d0d3: 0x6c482220, + 0x2d0d4: 0x6c482420, 0x2d0d5: 0x6c482620, 0x2d0d6: 0x6c482820, 0x2d0d7: 0x6c482a20, + 0x2d0d8: 0x6c482c20, 0x2d0d9: 0x6c482e20, 0x2d0da: 0x6c483020, 0x2d0db: 0x6c483220, + 0x2d0dc: 0x6c483420, 0x2d0dd: 0x6c483620, 0x2d0de: 0x6c483820, 0x2d0df: 0x6c483a20, + 0x2d0e0: 0x6c483c20, 0x2d0e1: 0x6c483e20, 0x2d0e2: 0x6c484020, 0x2d0e3: 0x6c484220, + 0x2d0e4: 0x6c484420, 0x2d0e5: 0x6c484620, 0x2d0e6: 0x6c484820, 0x2d0e7: 0x6c484a20, + 0x2d0e8: 0x6c484c20, 0x2d0e9: 0x6c484e20, 0x2d0ea: 0x6c485020, 0x2d0eb: 0x6c485220, + 0x2d0ec: 0x6c485420, 0x2d0ed: 0x6c485620, 0x2d0ee: 0x6c485820, 0x2d0ef: 0x6c485a20, + 0x2d0f0: 0x6c485c20, 0x2d0f1: 0x6c485e20, 0x2d0f2: 0x6c486020, 0x2d0f3: 0x6c486220, + 0x2d0f4: 0x6c486420, 0x2d0f5: 0x6c486620, 0x2d0f6: 0x6c698e20, 0x2d0f7: 0x6c699020, + 0x2d0f8: 0x6c699220, 0x2d0f9: 0x6c699420, 0x2d0fa: 0x6c699620, 0x2d0fb: 0x6c699820, + 0x2d0fc: 0x6c699a20, 0x2d0fd: 0x6c699c20, 0x2d0fe: 0x6c699e20, 0x2d0ff: 0x6c69a020, + // Block 0xb44, offset 0x2d100 + 0x2d100: 0x6c69a220, 0x2d101: 0x6c69a420, 0x2d102: 0x6c69a620, 0x2d103: 0x6c69a820, + 0x2d104: 0x6c69aa20, 0x2d105: 0x6c69ac20, 0x2d106: 0x6c69ae20, 0x2d107: 0x6c69b020, + 0x2d108: 0x6c69b220, 0x2d109: 0x6c69b420, 0x2d10a: 0x6c69b620, 0x2d10b: 0x6c69b820, + 0x2d10c: 0x6c69ba20, 0x2d10d: 0x6c69bc20, 0x2d10e: 0x6c486820, 0x2d10f: 0x6c69be20, + 0x2d110: 0x6c69c020, 0x2d111: 0x6c69c220, 0x2d112: 0x6c69c420, 0x2d113: 0x6c69c620, + 0x2d114: 0x6c69c820, 0x2d115: 0x6c69ca20, 0x2d116: 0x6c69cc20, 0x2d117: 0x6c69ce20, + 0x2d118: 0x6c69d020, 0x2d119: 0x6c69d220, 0x2d11a: 0x6c69d420, 0x2d11b: 0x6c69d620, + 0x2d11c: 0x6c905420, 0x2d11d: 0x6c905620, 0x2d11e: 0x6c905820, 0x2d11f: 0x6c905a20, + 0x2d120: 0x6c905c20, 0x2d121: 0x6c905e20, 0x2d122: 0x6c906020, 0x2d123: 0x6c906220, + 0x2d124: 0x6c906420, 0x2d125: 0x6c906620, 0x2d126: 0x6c906820, 0x2d127: 0x6c906a20, + 0x2d128: 0x6c906c20, 0x2d129: 0x6c906e20, 0x2d12a: 0x6c915e20, 0x2d12b: 0x6c907020, + 0x2d12c: 0x6c907220, 0x2d12d: 0x6c907420, 0x2d12e: 0x6c907620, 0x2d12f: 0x6c907820, + 0x2d130: 0x6c907a20, 0x2d131: 0x6c907c20, 0x2d132: 0x6c907e20, 0x2d133: 0x6c908020, + 0x2d134: 0x6c908220, 0x2d135: 0x6c908420, 0x2d136: 0x6c908620, 0x2d137: 0x6c908820, + 0x2d138: 0x6c908a20, 0x2d139: 0x6c908c20, 0x2d13a: 0x6c908e20, 0x2d13b: 0x6c909020, + 0x2d13c: 0x6c909220, 0x2d13d: 0x6c909420, 0x2d13e: 0x6c909620, 0x2d13f: 0x6c909820, + // Block 0xb45, offset 0x2d140 + 0x2d140: 0x6c909a20, 0x2d141: 0x6c909c20, 0x2d142: 0x6c909e20, 0x2d143: 0x6c90a020, + 0x2d144: 0x6c90a220, 0x2d145: 0x6c90a420, 0x2d146: 0x6c90a620, 0x2d147: 0x6c90a820, + 0x2d148: 0x6c90aa20, 0x2d149: 0x6c90ac20, 0x2d14a: 0x6c90ae20, 0x2d14b: 0x6c90b020, + 0x2d14c: 0x6c90b220, 0x2d14d: 0x6c90b420, 0x2d14e: 0x6c90b620, 0x2d14f: 0x6c90b820, + 0x2d150: 0x6c90ba20, 0x2d151: 0x6c90bc20, 0x2d152: 0x6c90be20, 0x2d153: 0x6c90c020, + 0x2d154: 0x6c90c220, 0x2d155: 0x6c90c420, 0x2d156: 0x6cbc7a20, 0x2d157: 0x6cbc7c20, + 0x2d158: 0x6cbc7e20, 0x2d159: 0x6cbc8020, 0x2d15a: 0x6cbc8220, 0x2d15b: 0x6cbc8420, + 0x2d15c: 0x6cbc8620, 0x2d15d: 0x6cbc8820, 0x2d15e: 0x6cbc8a20, 0x2d15f: 0x6cbc8c20, + 0x2d160: 0x6cbc8e20, 0x2d161: 0x6cbc9020, 0x2d162: 0x6cbc9220, 0x2d163: 0x6cbc9420, + 0x2d164: 0x6cbc9620, 0x2d165: 0x6cbc9820, 0x2d166: 0x6cbc9a20, 0x2d167: 0x6cbc9c20, + 0x2d168: 0x6cbc9e20, 0x2d169: 0x6cbca020, 0x2d16a: 0x6cbca220, 0x2d16b: 0x6cbca420, + 0x2d16c: 0x6cbca620, 0x2d16d: 0x6cbca820, 0x2d16e: 0x6cbcaa20, 0x2d16f: 0x6cbcac20, + 0x2d170: 0x6cbcae20, 0x2d171: 0x6cbcb020, 0x2d172: 0x6c6a6e20, 0x2d173: 0x6cbcb220, + 0x2d174: 0x6cbcb420, 0x2d175: 0x6c916020, 0x2d176: 0x6cbcb620, 0x2d177: 0x6cbcb820, + 0x2d178: 0x6cbcba20, 0x2d179: 0x6cbcbc20, 0x2d17a: 0x6cbcbe20, 0x2d17b: 0x6cbcc020, + 0x2d17c: 0x6cbcc220, 0x2d17d: 0x6ced5820, 0x2d17e: 0x6cbcc420, 0x2d17f: 0x6cbcc620, + // Block 0xb46, offset 0x2d180 + 0x2d180: 0x6cbcc820, 0x2d181: 0x6cbcca20, 0x2d182: 0x6cbccc20, 0x2d183: 0x6ced5a20, + 0x2d184: 0x6cbcce20, 0x2d185: 0x6cbcd020, 0x2d186: 0x6cbcd220, 0x2d187: 0x6cbcd420, + 0x2d188: 0x6cbcd620, 0x2d189: 0x6ced5c20, 0x2d18a: 0x6ced5e20, 0x2d18b: 0x6ced6020, + 0x2d18c: 0x6ced6220, 0x2d18d: 0x6ced6420, 0x2d18e: 0x6ced6620, 0x2d18f: 0x6ced6820, + 0x2d190: 0x6ced6a20, 0x2d191: 0x6ced6c20, 0x2d192: 0x6ced6e20, 0x2d193: 0x6ced7020, + 0x2d194: 0x6ced7220, 0x2d195: 0x6ced7420, 0x2d196: 0x6ced7620, 0x2d197: 0x6ced7820, + 0x2d198: 0x6ced7a20, 0x2d199: 0x6ced7c20, 0x2d19a: 0x6ced7e20, 0x2d19b: 0x6ced8020, + 0x2d19c: 0x6ced8220, 0x2d19d: 0x6ced8420, 0x2d19e: 0x6ced8620, 0x2d19f: 0x6ced8820, + 0x2d1a0: 0x6ced8a20, 0x2d1a1: 0x6ced8c20, 0x2d1a2: 0x6ced8e20, 0x2d1a3: 0x6ced9020, + 0x2d1a4: 0x6ced9220, 0x2d1a5: 0x6ced9420, 0x2d1a6: 0x6ced9620, 0x2d1a7: 0x6ced9820, + 0x2d1a8: 0x6ced9a20, 0x2d1a9: 0x6ced9c20, 0x2d1aa: 0x6ced9e20, 0x2d1ab: 0x6ceda020, + 0x2d1ac: 0x6ceda220, 0x2d1ad: 0x6ceda420, 0x2d1ae: 0x6ceda620, 0x2d1af: 0x6ceda820, + 0x2d1b0: 0x6cedaa20, 0x2d1b1: 0x6cedac20, 0x2d1b2: 0x6d1d2420, 0x2d1b3: 0x6d1d2620, + 0x2d1b4: 0x6d1d2820, 0x2d1b5: 0x6d1d2a20, 0x2d1b6: 0x6d1d2c20, 0x2d1b7: 0x6d1d2e20, + 0x2d1b8: 0x6d1d3020, 0x2d1b9: 0x6d1d3220, 0x2d1ba: 0x6d1d3420, 0x2d1bb: 0x6d1d3620, + 0x2d1bc: 0x6d1d3820, 0x2d1bd: 0x6d1d3a20, 0x2d1be: 0x6d1d3c20, 0x2d1bf: 0x6d1d3e20, + // Block 0xb47, offset 0x2d1c0 + 0x2d1c0: 0x6d4ac620, 0x2d1c1: 0x6d1d4020, 0x2d1c2: 0x6d1d4220, 0x2d1c3: 0x6d1d4420, + 0x2d1c4: 0x6d1d4620, 0x2d1c5: 0x6d1d4820, 0x2d1c6: 0x6d1d4a20, 0x2d1c7: 0x6d1d4c20, + 0x2d1c8: 0x6d1d4e20, 0x2d1c9: 0x6d1d5020, 0x2d1ca: 0x6d1d5220, 0x2d1cb: 0x6d1d5420, + 0x2d1cc: 0x6d1d5620, 0x2d1cd: 0x6d1d5820, 0x2d1ce: 0x6d1d5a20, 0x2d1cf: 0x6d1d5c20, + 0x2d1d0: 0x6d1d5e20, 0x2d1d1: 0x6d1d6020, 0x2d1d2: 0x6d1d6220, 0x2d1d3: 0x6d1d6420, + 0x2d1d4: 0x6d1d6620, 0x2d1d5: 0x6d1d6820, 0x2d1d6: 0x6d1d6a20, 0x2d1d7: 0x6d1d6c20, + 0x2d1d8: 0x6d1d6e20, 0x2d1d9: 0x6d1d7020, 0x2d1da: 0x6d1d7220, 0x2d1db: 0x6d1d7420, + 0x2d1dc: 0x6d4ada20, 0x2d1dd: 0x6d4adc20, 0x2d1de: 0x6d4ade20, 0x2d1df: 0x6d4ae020, + 0x2d1e0: 0x6d4ae220, 0x2d1e1: 0x6d4ae420, 0x2d1e2: 0x6d4ae620, 0x2d1e3: 0x6d4ae820, + 0x2d1e4: 0x6d4aea20, 0x2d1e5: 0x6d4aec20, 0x2d1e6: 0x6d4aee20, 0x2d1e7: 0x6d4af020, + 0x2d1e8: 0x6d758820, 0x2d1e9: 0x6d4af220, 0x2d1ea: 0x6d4af420, 0x2d1eb: 0x6d4af620, + 0x2d1ec: 0x6d4af820, 0x2d1ed: 0x6d1df220, 0x2d1ee: 0x6d4afa20, 0x2d1ef: 0x6d4afc20, + 0x2d1f0: 0x6d4afe20, 0x2d1f1: 0x6d4b0020, 0x2d1f2: 0x6d4b0220, 0x2d1f3: 0x6d4b0420, + 0x2d1f4: 0x6d4b0620, 0x2d1f5: 0x6d4b0820, 0x2d1f6: 0x6d4b0a20, 0x2d1f7: 0x6d4b0c20, + 0x2d1f8: 0x6d4b0e20, 0x2d1f9: 0x6d4b1020, 0x2d1fa: 0x6d787420, 0x2d1fb: 0x6d787620, + 0x2d1fc: 0x6d787820, 0x2d1fd: 0x6d787a20, 0x2d1fe: 0x6d787c20, 0x2d1ff: 0x6d787e20, + // Block 0xb48, offset 0x2d200 + 0x2d200: 0x6d788020, 0x2d201: 0x6d788220, 0x2d202: 0x6d788420, 0x2d203: 0x6d788620, + 0x2d204: 0x6d788820, 0x2d205: 0x6d788a20, 0x2d206: 0x6d788c20, 0x2d207: 0x6d788e20, + 0x2d208: 0x6d789020, 0x2d209: 0x6d789220, 0x2d20a: 0x6d789420, 0x2d20b: 0x6d789620, + 0x2d20c: 0x6d789820, 0x2d20d: 0x6da19020, 0x2d20e: 0x6da19220, 0x2d20f: 0x6da19420, + 0x2d210: 0x6da19620, 0x2d211: 0x6da19820, 0x2d212: 0x6da19a20, 0x2d213: 0x6da19c20, + 0x2d214: 0x6da19e20, 0x2d215: 0x6da1a020, 0x2d216: 0x6da1a220, 0x2d217: 0x6da1a420, + 0x2d218: 0x6dc3e620, 0x2d219: 0x6dc3e820, 0x2d21a: 0x6de10620, 0x2d21b: 0x6de10820, + 0x2d21c: 0x6de10a20, 0x2d21d: 0x6de10c20, 0x2d21e: 0x6de10e20, 0x2d21f: 0x6de11020, + 0x2d220: 0x6de11220, 0x2d221: 0x6de07820, 0x2d222: 0x6de11420, 0x2d223: 0x6df93420, + 0x2d224: 0x6df93620, 0x2d225: 0x6df93820, 0x2d226: 0x6e0cfc20, 0x2d227: 0x6e288e20, + 0x2d228: 0x6e289020, 0x2d229: 0x6e31c420, 0x2d22a: 0x6e386020, 0x2d22b: 0x6c018620, + 0x2d22c: 0x6c03da20, 0x2d22d: 0x6c07c420, 0x2d22e: 0x6c0f0e20, 0x2d22f: 0x6c1b6620, + 0x2d230: 0x6c1b6820, 0x2d231: 0x6c1b6a20, 0x2d232: 0x6c1b6c20, 0x2d233: 0x6c1b6e20, + 0x2d234: 0x6c48e620, 0x2d235: 0x6c48e820, 0x2d236: 0x6c6a7020, 0x2d237: 0x6c916220, + 0x2d238: 0x6c916420, 0x2d239: 0x6cbd8820, 0x2d23a: 0x6cbd8a20, 0x2d23b: 0x6cbd8c20, + 0x2d23c: 0x6cee4e20, 0x2d23d: 0x6d1df420, 0x2d23e: 0x6d1df620, 0x2d23f: 0x6d4ba220, + // Block 0xb49, offset 0x2d240 + 0x2d240: 0x6d4ba420, 0x2d241: 0x6d790020, 0x2d242: 0x6c018820, 0x2d243: 0x6c03dc20, + 0x2d244: 0x6c07c820, 0x2d245: 0x6c0f1220, 0x2d246: 0x6c1b7420, 0x2d247: 0x6c2e8020, + 0x2d248: 0x6c48f220, 0x2d249: 0x6c48f820, 0x2d24a: 0x6c018c20, 0x2d24b: 0x6c1b7c20, + 0x2d24c: 0x6c2e8220, 0x2d24d: 0x6c48fa20, 0x2d24e: 0x6c6a8420, 0x2d24f: 0x6c6a8620, + 0x2d250: 0x6d1e0220, 0x2d251: 0x6dc43a20, 0x2d252: 0x6de14820, 0x2d253: 0x6dc43c20, + 0x2d254: 0x6e0d1e20, 0x2d255: 0x6c018e20, 0x2d256: 0x6c07d020, 0x2d257: 0x6c07d220, + 0x2d258: 0x6c07d420, 0x2d259: 0x6c0f1c20, 0x2d25a: 0x6c0f1e20, 0x2d25b: 0x6c0f2020, + 0x2d25c: 0x6c2e8e20, 0x2d25d: 0x6c2e9020, 0x2d25e: 0x6c6a8c20, 0x2d25f: 0x6c918020, + 0x2d260: 0x6c918220, 0x2d261: 0x6cbd9a20, 0x2d262: 0x6d1e1020, 0x2d263: 0x6d1e1220, + 0x2d264: 0x6d1e1420, 0x2d265: 0x6d1e1620, 0x2d266: 0x6d4bae20, 0x2d267: 0x6c019020, + 0x2d268: 0x6c019220, 0x2d269: 0x6c03de20, 0x2d26a: 0x6c03e020, 0x2d26b: 0x6c03e220, + 0x2d26c: 0x6c03e420, 0x2d26d: 0x6c03e620, 0x2d26e: 0x6c07de20, 0x2d26f: 0x6c07e020, + 0x2d270: 0x6c07e220, 0x2d271: 0x6c07e420, 0x2d272: 0x6c07e620, 0x2d273: 0x6c07e820, + 0x2d274: 0x6c07ea20, 0x2d275: 0x6c0f3220, 0x2d276: 0x6c0f3420, 0x2d277: 0x6c0f3620, + 0x2d278: 0x6c0f3820, 0x2d279: 0x6c0f3a20, 0x2d27a: 0x6c0f3c20, 0x2d27b: 0x6c0f3e20, + 0x2d27c: 0x6c0f4020, 0x2d27d: 0x6c1b8e20, 0x2d27e: 0x6c1b9020, 0x2d27f: 0x6c1b9220, + // Block 0xb4a, offset 0x2d280 + 0x2d280: 0x6c1b9420, 0x2d281: 0x6c1b9620, 0x2d282: 0x6c1b9820, 0x2d283: 0x6c2ea620, + 0x2d284: 0x6c2ea820, 0x2d285: 0x6c2eaa20, 0x2d286: 0x6c2eac20, 0x2d287: 0x6c2eae20, + 0x2d288: 0x6c2eb020, 0x2d289: 0x6c2eb220, 0x2d28a: 0x6c6aaa20, 0x2d28b: 0x6c2eb420, + 0x2d28c: 0x6c2eb620, 0x2d28d: 0x6c2eb820, 0x2d28e: 0x6c490620, 0x2d28f: 0x6c490820, + 0x2d290: 0x6c490a20, 0x2d291: 0x6c490c20, 0x2d292: 0x6c490e20, 0x2d293: 0x6c491020, + 0x2d294: 0x6c2ef220, 0x2d295: 0x6c491220, 0x2d296: 0x6c491420, 0x2d297: 0x6c6aac20, + 0x2d298: 0x6c6aae20, 0x2d299: 0x6c6ab020, 0x2d29a: 0x6c6ab220, 0x2d29b: 0x6c919e20, + 0x2d29c: 0x6c91a020, 0x2d29d: 0x6c91a220, 0x2d29e: 0x6c91a420, 0x2d29f: 0x6c91d220, + 0x2d2a0: 0x6cbdb820, 0x2d2a1: 0x6cbdba20, 0x2d2a2: 0x6c91d420, 0x2d2a3: 0x6cbdbc20, + 0x2d2a4: 0x6cbdbe20, 0x2d2a5: 0x6cbdc020, 0x2d2a6: 0x6cee7820, 0x2d2a7: 0x6cee7a20, + 0x2d2a8: 0x6cee7c20, 0x2d2a9: 0x6d1e2e20, 0x2d2aa: 0x6d1e3020, 0x2d2ab: 0x6d1e3220, + 0x2d2ac: 0x6d1e3420, 0x2d2ad: 0x6d4bb820, 0x2d2ae: 0x6d791e20, 0x2d2af: 0x6d792020, + 0x2d2b0: 0x6dc44c20, 0x2d2b1: 0x6e1c9220, 0x2d2b2: 0x6e28a420, 0x2d2b3: 0x6c019420, + 0x2d2b4: 0x6c07fe20, 0x2d2b5: 0x6c080020, 0x2d2b6: 0x6c080220, 0x2d2b7: 0x6c0f6220, + 0x2d2b8: 0x6c0f6420, 0x2d2b9: 0x6c0f6620, 0x2d2ba: 0x6c0f6820, 0x2d2bb: 0x6c0f6a20, + 0x2d2bc: 0x6c0f6c20, 0x2d2bd: 0x6c0f6e20, 0x2d2be: 0x6c0f7020, 0x2d2bf: 0x6c0f7220, + // Block 0xb4b, offset 0x2d2c0 + 0x2d2c0: 0x6c0f7420, 0x2d2c1: 0x6c0f7620, 0x2d2c2: 0x6c0f7820, 0x2d2c3: 0x6c0f7a20, + 0x2d2c4: 0x6c0f7c20, 0x2d2c5: 0x6c0f7e20, 0x2d2c6: 0x6c0f8020, 0x2d2c7: 0x6c0f8220, + 0x2d2c8: 0x6c0f8420, 0x2d2c9: 0x6c1bd420, 0x2d2ca: 0x6c1bd620, 0x2d2cb: 0x6c1bd820, + 0x2d2cc: 0x6c1bda20, 0x2d2cd: 0x6c495420, 0x2d2ce: 0x6c1bdc20, 0x2d2cf: 0x6c1bde20, + 0x2d2d0: 0x6c1be020, 0x2d2d1: 0x6c1be220, 0x2d2d2: 0x6c1be420, 0x2d2d3: 0x6c1be620, + 0x2d2d4: 0x6c1be820, 0x2d2d5: 0x6c1bea20, 0x2d2d6: 0x6c1bec20, 0x2d2d7: 0x6c1bee20, + 0x2d2d8: 0x6c1bf020, 0x2d2d9: 0x6c1bf220, 0x2d2da: 0x6c1bf420, 0x2d2db: 0x6c1bf620, + 0x2d2dc: 0x6c1bf820, 0x2d2dd: 0x6c1bfa20, 0x2d2de: 0x6c1bfc20, 0x2d2df: 0x6c1bfe20, + 0x2d2e0: 0x6c1c0020, 0x2d2e1: 0x6c1c0220, 0x2d2e2: 0x6c1c0420, 0x2d2e3: 0x6c1c0620, + 0x2d2e4: 0x6c1c0820, 0x2d2e5: 0x6c1c0a20, 0x2d2e6: 0x6c1c0c20, 0x2d2e7: 0x6c1c0e20, + 0x2d2e8: 0x6c1c1020, 0x2d2e9: 0x6c1c1220, 0x2d2ea: 0x6c1c1420, 0x2d2eb: 0x6c1c1620, + 0x2d2ec: 0x6c2f1820, 0x2d2ed: 0x6c2f1a20, 0x2d2ee: 0x6c2f1c20, 0x2d2ef: 0x6c2f1e20, + 0x2d2f0: 0x6c2f2020, 0x2d2f1: 0x6c2f2220, 0x2d2f2: 0x6c2f2420, 0x2d2f3: 0x6c2f2620, + 0x2d2f4: 0x6c2f2820, 0x2d2f5: 0x6c2f2a20, 0x2d2f6: 0x6c2f2c20, 0x2d2f7: 0x6c2f2e20, + 0x2d2f8: 0x6c2f3020, 0x2d2f9: 0x6c2f3220, 0x2d2fa: 0x6c2f3420, 0x2d2fb: 0x6c2f3620, + 0x2d2fc: 0x6c2f3820, 0x2d2fd: 0x6c2f3a20, 0x2d2fe: 0x6c2f3c20, 0x2d2ff: 0x6c2f3e20, + // Block 0xb4c, offset 0x2d300 + 0x2d300: 0x6c2f4020, 0x2d301: 0x6c2f4220, 0x2d302: 0x6c2f4420, 0x2d303: 0x6c2f4620, + 0x2d304: 0x6c2f4820, 0x2d305: 0x6c2f4a20, 0x2d306: 0x6c2f4c20, 0x2d307: 0x6c2f4e20, + 0x2d308: 0x6c2f5020, 0x2d309: 0x6c2f5220, 0x2d30a: 0x6c2f5420, 0x2d30b: 0x6c2f5620, + 0x2d30c: 0x6c2f5820, 0x2d30d: 0x6c2f5a20, 0x2d30e: 0x6c2f5c20, 0x2d30f: 0x6c2f5e20, + 0x2d310: 0x6c2f6020, 0x2d311: 0x6c2f6220, 0x2d312: 0x6c2f6420, 0x2d313: 0x6c2f6620, + 0x2d314: 0x6c2f6820, 0x2d315: 0x6c493c20, 0x2d316: 0x6c2f6a20, 0x2d317: 0x6c2f6c20, + 0x2d318: 0x6c495620, 0x2d319: 0x6c495820, 0x2d31a: 0x6c495a20, 0x2d31b: 0x6c495c20, + 0x2d31c: 0x6c495e20, 0x2d31d: 0x6c496020, 0x2d31e: 0x6c496220, 0x2d31f: 0x6c496420, + 0x2d320: 0x6c496620, 0x2d321: 0x6c496820, 0x2d322: 0x6c496a20, 0x2d323: 0x6c496c20, + 0x2d324: 0x6c496e20, 0x2d325: 0x6c497020, 0x2d326: 0x6c497220, 0x2d327: 0x6c497420, + 0x2d328: 0x6c497620, 0x2d329: 0x6c497820, 0x2d32a: 0x6c497a20, 0x2d32b: 0x6c497c20, + 0x2d32c: 0x6c6b1820, 0x2d32d: 0x6c497e20, 0x2d32e: 0x6c498020, 0x2d32f: 0x6c498220, + 0x2d330: 0x6c498420, 0x2d331: 0x6c498620, 0x2d332: 0x6c498820, 0x2d333: 0x6c498a20, + 0x2d334: 0x6c498c20, 0x2d335: 0x6c498e20, 0x2d336: 0x6c499020, 0x2d337: 0x6c499220, + 0x2d338: 0x6c499420, 0x2d339: 0x6c499620, 0x2d33a: 0x6c499820, 0x2d33b: 0x6c499a20, + 0x2d33c: 0x6c499c20, 0x2d33d: 0x6c499e20, 0x2d33e: 0x6c49a020, 0x2d33f: 0x6c49a220, + // Block 0xb4d, offset 0x2d340 + 0x2d340: 0x6c49a420, 0x2d341: 0x6c49a620, 0x2d342: 0x6c49a820, 0x2d343: 0x6c49aa20, + 0x2d344: 0x6c5c3020, 0x2d345: 0x6c49ac20, 0x2d346: 0x6c49ae20, 0x2d347: 0x6c49b020, + 0x2d348: 0x6c49b220, 0x2d349: 0x6c6b1a20, 0x2d34a: 0x6c6b1c20, 0x2d34b: 0x6c6b1e20, + 0x2d34c: 0x6c6b2020, 0x2d34d: 0x6c4a1a20, 0x2d34e: 0x6c6b2220, 0x2d34f: 0x6c6b2420, + 0x2d350: 0x6c6b2620, 0x2d351: 0x6c6b2820, 0x2d352: 0x6c6b2a20, 0x2d353: 0x6c6b2c20, + 0x2d354: 0x6c6b2e20, 0x2d355: 0x6c6b3020, 0x2d356: 0x6c6b3220, 0x2d357: 0x6c6b3420, + 0x2d358: 0x6c6b3620, 0x2d359: 0x6c6b3820, 0x2d35a: 0x6c6b3a20, 0x2d35b: 0x6c6b3c20, + 0x2d35c: 0x6c6b3e20, 0x2d35d: 0x6c6b4020, 0x2d35e: 0x6c6b4220, 0x2d35f: 0x6c6b4420, + 0x2d360: 0x6c6b4620, 0x2d361: 0x6c6b4820, 0x2d362: 0x6c6b4a20, 0x2d363: 0x6c6b4c20, + 0x2d364: 0x6c6b4e20, 0x2d365: 0x6c6b5020, 0x2d366: 0x6c6b5220, 0x2d367: 0x6c6b5420, + 0x2d368: 0x6c6b5620, 0x2d369: 0x6c6b5820, 0x2d36a: 0x6c6b5a20, 0x2d36b: 0x6c91d620, + 0x2d36c: 0x6c91ec20, 0x2d36d: 0x6c6b5c20, 0x2d36e: 0x6c6b5e20, 0x2d36f: 0x6c6b6020, + 0x2d370: 0x6c6b6220, 0x2d371: 0x6c6b6420, 0x2d372: 0x6c6b6620, 0x2d373: 0x6c6b6820, + 0x2d374: 0x6c6b6a20, 0x2d375: 0x6c91ee20, 0x2d376: 0x6c91f020, 0x2d377: 0x6c91f220, + 0x2d378: 0x6c91f420, 0x2d379: 0x6c91f620, 0x2d37a: 0x6c91f820, 0x2d37b: 0x6c91fa20, + 0x2d37c: 0x6c91fc20, 0x2d37d: 0x6c91d820, 0x2d37e: 0x6c91fe20, 0x2d37f: 0x6c920020, + // Block 0xb4e, offset 0x2d380 + 0x2d380: 0x6c920220, 0x2d381: 0x6c920420, 0x2d382: 0x6c920620, 0x2d383: 0x6c920820, + 0x2d384: 0x6c920a20, 0x2d385: 0x6c920c20, 0x2d386: 0x6c920e20, 0x2d387: 0x6c921020, + 0x2d388: 0x6c921220, 0x2d389: 0x6c921420, 0x2d38a: 0x6c921620, 0x2d38b: 0x6c921820, + 0x2d38c: 0x6c921a20, 0x2d38d: 0x6c921c20, 0x2d38e: 0x6c921e20, 0x2d38f: 0x6c922020, + 0x2d390: 0x6c922220, 0x2d391: 0x6c922420, 0x2d392: 0x6c922620, 0x2d393: 0x6c922820, + 0x2d394: 0x6c922a20, 0x2d395: 0x6c922c20, 0x2d396: 0x6c922e20, 0x2d397: 0x6c923020, + 0x2d398: 0x6c923220, 0x2d399: 0x6c923420, 0x2d39a: 0x6c923620, 0x2d39b: 0x6c923820, + 0x2d39c: 0x6c923a20, 0x2d39d: 0x6c923c20, 0x2d39e: 0x6c923e20, 0x2d39f: 0x6c924020, + 0x2d3a0: 0x6c924220, 0x2d3a1: 0x6c924420, 0x2d3a2: 0x6c924620, 0x2d3a3: 0x6c924820, + 0x2d3a4: 0x6c924a20, 0x2d3a5: 0x6c924c20, 0x2d3a6: 0x6c924e20, 0x2d3a7: 0x6c925020, + 0x2d3a8: 0x6c925220, 0x2d3a9: 0x6c925420, 0x2d3aa: 0x6c925620, 0x2d3ab: 0x6c925820, + 0x2d3ac: 0x6c925a20, 0x2d3ad: 0x6c925c20, 0x2d3ae: 0x6c925e20, 0x2d3af: 0x6c926020, + 0x2d3b0: 0x6c926220, 0x2d3b1: 0x6c926420, 0x2d3b2: 0x6c926620, 0x2d3b3: 0x6c926820, + 0x2d3b4: 0x6c926a20, 0x2d3b5: 0x6c926c20, 0x2d3b6: 0x6c926e20, 0x2d3b7: 0x6cbe2020, + 0x2d3b8: 0x6cbe2220, 0x2d3b9: 0x6cbe2420, 0x2d3ba: 0x6cbe2620, 0x2d3bb: 0x6cbe2820, + 0x2d3bc: 0x6cbe2a20, 0x2d3bd: 0x6cbe2c20, 0x2d3be: 0x6cbe2e20, 0x2d3bf: 0x6cbe3020, + // Block 0xb4f, offset 0x2d3c0 + 0x2d3c0: 0x6cbe3220, 0x2d3c1: 0x6cbe3420, 0x2d3c2: 0x6cbe3620, 0x2d3c3: 0x6cbe3820, + 0x2d3c4: 0x6cbe3a20, 0x2d3c5: 0x6cbe3c20, 0x2d3c6: 0x6cbe3e20, 0x2d3c7: 0x6cbe4020, + 0x2d3c8: 0x6cbe4220, 0x2d3c9: 0x6cbe4420, 0x2d3ca: 0x6cbe4620, 0x2d3cb: 0x6cbe4820, + 0x2d3cc: 0x6cbe4a20, 0x2d3cd: 0x6cbe4c20, 0x2d3ce: 0x6c930220, 0x2d3cf: 0x6cbe4e20, + 0x2d3d0: 0x6ceec620, 0x2d3d1: 0x6cbe5020, 0x2d3d2: 0x6cbe5220, 0x2d3d3: 0x6cbe5420, + 0x2d3d4: 0x6cbe5620, 0x2d3d5: 0x6cbe5820, 0x2d3d6: 0x6cbe5a20, 0x2d3d7: 0x6cbe5c20, + 0x2d3d8: 0x6cbe5e20, 0x2d3d9: 0x6cbe6020, 0x2d3da: 0x6cbe6220, 0x2d3db: 0x6cbe6420, + 0x2d3dc: 0x6cbe6620, 0x2d3dd: 0x6cbe6820, 0x2d3de: 0x6cbe6a20, 0x2d3df: 0x6cbe6c20, + 0x2d3e0: 0x6cbe6e20, 0x2d3e1: 0x6cbe7020, 0x2d3e2: 0x6cbe7220, 0x2d3e3: 0x6cbe7420, + 0x2d3e4: 0x6cbe7620, 0x2d3e5: 0x6cbe7820, 0x2d3e6: 0x6cbe7a20, 0x2d3e7: 0x6cbe7c20, + 0x2d3e8: 0x6cbe7e20, 0x2d3e9: 0x6cbe8020, 0x2d3ea: 0x6cbe8220, 0x2d3eb: 0x6cbe8420, + 0x2d3ec: 0x6cbe8620, 0x2d3ed: 0x6cbe8820, 0x2d3ee: 0x6cbe8a20, 0x2d3ef: 0x6cbe8c20, + 0x2d3f0: 0x6ceec820, 0x2d3f1: 0x6ceeca20, 0x2d3f2: 0x6ceecc20, 0x2d3f3: 0x6ceece20, + 0x2d3f4: 0x6ceed020, 0x2d3f5: 0x6ceed220, 0x2d3f6: 0x6ceed420, 0x2d3f7: 0x6ceed620, + 0x2d3f8: 0x6ceed820, 0x2d3f9: 0x6ceeda20, 0x2d3fa: 0x6ceedc20, 0x2d3fb: 0x6ceede20, + 0x2d3fc: 0x6ceee020, 0x2d3fd: 0x6ceee220, 0x2d3fe: 0x6ceee420, 0x2d3ff: 0x6ceee620, + // Block 0xb50, offset 0x2d400 + 0x2d400: 0x6ceee820, 0x2d401: 0x6ceeea20, 0x2d402: 0x6ceeec20, 0x2d403: 0x6ceeee20, + 0x2d404: 0x6ceef020, 0x2d405: 0x6ceef220, 0x2d406: 0x6ceef420, 0x2d407: 0x6ceef620, + 0x2d408: 0x6ceef820, 0x2d409: 0x6ceefa20, 0x2d40a: 0x6ceefc20, 0x2d40b: 0x6ceefe20, + 0x2d40c: 0x6cef0020, 0x2d40d: 0x6cef0220, 0x2d40e: 0x6cef0420, 0x2d40f: 0x6cbe8e20, + 0x2d410: 0x6cef0620, 0x2d411: 0x6cef0820, 0x2d412: 0x6cef0a20, 0x2d413: 0x6cef0c20, + 0x2d414: 0x6cef0e20, 0x2d415: 0x6d1e6e20, 0x2d416: 0x6d1e7020, 0x2d417: 0x6d1e7220, + 0x2d418: 0x6d1e7420, 0x2d419: 0x6d1e7620, 0x2d41a: 0x6d1e7820, 0x2d41b: 0x6d1e7a20, + 0x2d41c: 0x6d1e7c20, 0x2d41d: 0x6d1e7e20, 0x2d41e: 0x6d1e8020, 0x2d41f: 0x6d1e8220, + 0x2d420: 0x6d1e8420, 0x2d421: 0x6d1e8620, 0x2d422: 0x6d1e8820, 0x2d423: 0x6d1e8a20, + 0x2d424: 0x6d1e8c20, 0x2d425: 0x6d1e8e20, 0x2d426: 0x6d1e9020, 0x2d427: 0x6d1e9220, + 0x2d428: 0x6d1e9420, 0x2d429: 0x6d1e9620, 0x2d42a: 0x6d1e9820, 0x2d42b: 0x6d1e9a20, + 0x2d42c: 0x6d1e9c20, 0x2d42d: 0x6d1e9e20, 0x2d42e: 0x6d1ea020, 0x2d42f: 0x6d1ea220, + 0x2d430: 0x6d1ea420, 0x2d431: 0x6d1ea620, 0x2d432: 0x6d1ea820, 0x2d433: 0x6d1f2820, + 0x2d434: 0x6d4bea20, 0x2d435: 0x6d4bec20, 0x2d436: 0x6d4bee20, 0x2d437: 0x6d4bf020, + 0x2d438: 0x6d4bf220, 0x2d439: 0x6d4bf420, 0x2d43a: 0x6d4bf620, 0x2d43b: 0x6d4bf820, + 0x2d43c: 0x6d4bfa20, 0x2d43d: 0x6d4bfc20, 0x2d43e: 0x6d4bfe20, 0x2d43f: 0x6d4c0020, + // Block 0xb51, offset 0x2d440 + 0x2d440: 0x6d4c0220, 0x2d441: 0x6d4c0420, 0x2d442: 0x6d4c0620, 0x2d443: 0x6d4c0820, + 0x2d444: 0x6d4c0a20, 0x2d445: 0x6d4c0c20, 0x2d446: 0x6d4c0e20, 0x2d447: 0x6d4c1020, + 0x2d448: 0x6d4c1220, 0x2d449: 0x6d4c1420, 0x2d44a: 0x6d4c1620, 0x2d44b: 0x6d4c1820, + 0x2d44c: 0x6d4c1a20, 0x2d44d: 0x6d4c1c20, 0x2d44e: 0x6d4c1e20, 0x2d44f: 0x6d4c2020, + 0x2d450: 0x6d794220, 0x2d451: 0x6d794420, 0x2d452: 0x6d794620, 0x2d453: 0x6d794820, + 0x2d454: 0x6d794a20, 0x2d455: 0x6d794c20, 0x2d456: 0x6d794e20, 0x2d457: 0x6d795020, + 0x2d458: 0x6d795220, 0x2d459: 0x6d795420, 0x2d45a: 0x6d795620, 0x2d45b: 0x6d795820, + 0x2d45c: 0x6d795a20, 0x2d45d: 0x6d795c20, 0x2d45e: 0x6d795e20, 0x2d45f: 0x6d796020, + 0x2d460: 0x6d796220, 0x2d461: 0x6d796420, 0x2d462: 0x6d796620, 0x2d463: 0x6da22620, + 0x2d464: 0x6da22820, 0x2d465: 0x6da22a20, 0x2d466: 0x6da22c20, 0x2d467: 0x6da22e20, + 0x2d468: 0x6d79de20, 0x2d469: 0x6da23020, 0x2d46a: 0x6da23220, 0x2d46b: 0x6da23420, + 0x2d46c: 0x6da23620, 0x2d46d: 0x6da23820, 0x2d46e: 0x6da23a20, 0x2d46f: 0x6da23c20, + 0x2d470: 0x6da23e20, 0x2d471: 0x6da24020, 0x2d472: 0x6da24220, 0x2d473: 0x6da24420, + 0x2d474: 0x6d796820, 0x2d475: 0x6da24620, 0x2d476: 0x6da24820, 0x2d477: 0x6da24a20, + 0x2d478: 0x6dc45820, 0x2d479: 0x6de16220, 0x2d47a: 0x6dc45a20, 0x2d47b: 0x6dc45c20, + 0x2d47c: 0x6dc45e20, 0x2d47d: 0x6de15820, 0x2d47e: 0x6de16420, 0x2d47f: 0x6de16620, + // Block 0xb52, offset 0x2d480 + 0x2d480: 0x6df96220, 0x2d481: 0x6df96420, 0x2d482: 0x6df96620, 0x2d483: 0x6df96820, + 0x2d484: 0x6df96a20, 0x2d485: 0x6df96c20, 0x2d486: 0x6df96e20, 0x2d487: 0x6e0d2a20, + 0x2d488: 0x6e0d2c20, 0x2d489: 0x6e0d2e20, 0x2d48a: 0x6e1c9a20, 0x2d48b: 0x6e1c9c20, + 0x2d48c: 0x6e1c9e20, 0x2d48d: 0x6e28a620, 0x2d48e: 0x6e31d820, 0x2d48f: 0x6e31da20, + 0x2d490: 0x6c019620, 0x2d491: 0x6c019820, 0x2d492: 0x6c019a20, 0x2d493: 0x6c019c20, + 0x2d494: 0x6c03f220, 0x2d495: 0x6c081220, 0x2d496: 0x6c0fa820, 0x2d497: 0x6c0faa20, + 0x2d498: 0x6c0fac20, 0x2d499: 0x6c0fae20, 0x2d49a: 0x6c1c6620, 0x2d49b: 0x6c1c6820, + 0x2d49c: 0x6c1c6a20, 0x2d49d: 0x6c1c6c20, 0x2d49e: 0x6c1c6e20, 0x2d49f: 0x6c2fca20, + 0x2d4a0: 0x6c2fcc20, 0x2d4a1: 0x6c2fce20, 0x2d4a2: 0x6c2fd020, 0x2d4a3: 0x6c2fd220, + 0x2d4a4: 0x6c2fd420, 0x2d4a5: 0x6c2fd620, 0x2d4a6: 0x6c2fd820, 0x2d4a7: 0x6c2fda20, + 0x2d4a8: 0x6c4a1e20, 0x2d4a9: 0x6c4a2020, 0x2d4aa: 0x6c4a2220, 0x2d4ab: 0x6c6be020, + 0x2d4ac: 0x6c6be220, 0x2d4ad: 0x6c6be420, 0x2d4ae: 0x6c930420, 0x2d4af: 0x6c930620, + 0x2d4b0: 0x6c930820, 0x2d4b1: 0x6cbf4420, 0x2d4b2: 0x6c930a20, 0x2d4b3: 0x6cbf6220, + 0x2d4b4: 0x6cef7a20, 0x2d4b5: 0x6d1f2a20, 0x2d4b6: 0x6cef9820, 0x2d4b7: 0x6d1f2c20, + 0x2d4b8: 0x6d79e220, 0x2d4b9: 0x6d79e420, 0x2d4ba: 0x6da29620, 0x2d4bb: 0x6da29820, + 0x2d4bc: 0x6de19020, 0x2d4bd: 0x6df98620, 0x2d4be: 0x6df98820, 0x2d4bf: 0x6e1cb420, + // Block 0xb53, offset 0x2d4c0 + 0x2d4c0: 0x6c01a020, 0x2d4c1: 0x6c082220, 0x2d4c2: 0x6c082420, 0x2d4c3: 0x6c082620, + 0x2d4c4: 0x6c082820, 0x2d4c5: 0x6c0fbc20, 0x2d4c6: 0x6c0fbe20, 0x2d4c7: 0x6c0fc020, + 0x2d4c8: 0x6c0fc220, 0x2d4c9: 0x6c0fc420, 0x2d4ca: 0x6c1c8e20, 0x2d4cb: 0x6c1c9020, + 0x2d4cc: 0x6c1c9220, 0x2d4cd: 0x6c1c9420, 0x2d4ce: 0x6c1c9620, 0x2d4cf: 0x6c1c9820, + 0x2d4d0: 0x6c1c9a20, 0x2d4d1: 0x6c1c9c20, 0x2d4d2: 0x6c1c9e20, 0x2d4d3: 0x6c2ffc20, + 0x2d4d4: 0x6c2ffe20, 0x2d4d5: 0x6c300020, 0x2d4d6: 0x6c300220, 0x2d4d7: 0x6c300420, + 0x2d4d8: 0x6c300620, 0x2d4d9: 0x6c300820, 0x2d4da: 0x6c300a20, 0x2d4db: 0x6c300c20, + 0x2d4dc: 0x6c300e20, 0x2d4dd: 0x6c301020, 0x2d4de: 0x6c301220, 0x2d4df: 0x6c301420, + 0x2d4e0: 0x6c301620, 0x2d4e1: 0x6c301820, 0x2d4e2: 0x6c4a4820, 0x2d4e3: 0x6c4a4a20, + 0x2d4e4: 0x6c4a4c20, 0x2d4e5: 0x6c4a4e20, 0x2d4e6: 0x6c4a5020, 0x2d4e7: 0x6c6bfe20, + 0x2d4e8: 0x6c4a5220, 0x2d4e9: 0x6c4a5420, 0x2d4ea: 0x6c4a5620, 0x2d4eb: 0x6c4a5820, + 0x2d4ec: 0x6c6c0020, 0x2d4ed: 0x6c6c0220, 0x2d4ee: 0x6c6c0420, 0x2d4ef: 0x6c6c0620, + 0x2d4f0: 0x6c6c0820, 0x2d4f1: 0x6c6c0a20, 0x2d4f2: 0x6c6c0c20, 0x2d4f3: 0x6c6c0e20, + 0x2d4f4: 0x6c6c1020, 0x2d4f5: 0x6c6c1220, 0x2d4f6: 0x6c6c1420, 0x2d4f7: 0x6c6c1620, + 0x2d4f8: 0x6c6c1820, 0x2d4f9: 0x6c6c1a20, 0x2d4fa: 0x6c6c1c20, 0x2d4fb: 0x6c6c1e20, + 0x2d4fc: 0x6c6c2020, 0x2d4fd: 0x6c6c2220, 0x2d4fe: 0x6c6c2420, 0x2d4ff: 0x6c933020, + // Block 0xb54, offset 0x2d500 + 0x2d500: 0x6c933220, 0x2d501: 0x6c933420, 0x2d502: 0x6c933620, 0x2d503: 0x6c933820, + 0x2d504: 0x6c933a20, 0x2d505: 0x6c933c20, 0x2d506: 0x6c933e20, 0x2d507: 0x6c934020, + 0x2d508: 0x6c934220, 0x2d509: 0x6c934420, 0x2d50a: 0x6cbf6820, 0x2d50b: 0x6cbf6a20, + 0x2d50c: 0x6cbf6c20, 0x2d50d: 0x6cbf6e20, 0x2d50e: 0x6cbf7020, 0x2d50f: 0x6cbf7220, + 0x2d510: 0x6cbf7420, 0x2d511: 0x6cbf7620, 0x2d512: 0x6cbf7820, 0x2d513: 0x6cbf7a20, + 0x2d514: 0x6cbf7c20, 0x2d515: 0x6cbf7e20, 0x2d516: 0x6cefa420, 0x2d517: 0x6cefa620, + 0x2d518: 0x6cefa820, 0x2d519: 0x6cefaa20, 0x2d51a: 0x6cefac20, 0x2d51b: 0x6cefae20, + 0x2d51c: 0x6cefb020, 0x2d51d: 0x6cefb220, 0x2d51e: 0x6d1f4420, 0x2d51f: 0x6d1f4620, + 0x2d520: 0x6d1f4820, 0x2d521: 0x6d1f4a20, 0x2d522: 0x6d1f4c20, 0x2d523: 0x6d1f4e20, + 0x2d524: 0x6d1f5020, 0x2d525: 0x6d1f5220, 0x2d526: 0x6d1f5420, 0x2d527: 0x6d1f5620, + 0x2d528: 0x6d1f5820, 0x2d529: 0x6d4cce20, 0x2d52a: 0x6cbf8020, 0x2d52b: 0x6d4cd020, + 0x2d52c: 0x6d4cd220, 0x2d52d: 0x6d4cd420, 0x2d52e: 0x6d4cd620, 0x2d52f: 0x6d79fe20, + 0x2d530: 0x6d7a0020, 0x2d531: 0x6da2a020, 0x2d532: 0x6da2a220, 0x2d533: 0x6de19a20, + 0x2d534: 0x6de19c20, 0x2d535: 0x6de19e20, 0x2d536: 0x6df99620, 0x2d537: 0x6e0d4820, + 0x2d538: 0x6c01a220, 0x2d539: 0x6c083220, 0x2d53a: 0x6c0fe220, 0x2d53b: 0x6c0fe420, + 0x2d53c: 0x6c0fe620, 0x2d53d: 0x6c1cbe20, 0x2d53e: 0x6c1cc020, 0x2d53f: 0x6c1cc220, + // Block 0xb55, offset 0x2d540 + 0x2d540: 0x6c304620, 0x2d541: 0x6c4a8e20, 0x2d542: 0x6c4a9020, 0x2d543: 0x6c6c7420, + 0x2d544: 0x6c6c7620, 0x2d545: 0x6c6c7820, 0x2d546: 0x6c4a9220, 0x2d547: 0x6c938220, + 0x2d548: 0x6c938420, 0x2d549: 0x6c938620, 0x2d54a: 0x6cbfd620, 0x2d54b: 0x6cbfd820, + 0x2d54c: 0x6cbfda20, 0x2d54d: 0x6d1fac20, 0x2d54e: 0x6d4d2220, 0x2d54f: 0x6c01a820, + 0x2d550: 0x6c03fc20, 0x2d551: 0x6c03fe20, 0x2d552: 0x6c083420, 0x2d553: 0x6c083620, + 0x2d554: 0x6c083820, 0x2d555: 0x6c083a20, 0x2d556: 0x6c0fec20, 0x2d557: 0x6c0fee20, + 0x2d558: 0x6c0ff020, 0x2d559: 0x6c305820, 0x2d55a: 0x6c305a20, 0x2d55b: 0x6c4aa020, + 0x2d55c: 0x6c4aa220, 0x2d55d: 0x6c4aa420, 0x2d55e: 0x6cbfec20, 0x2d55f: 0x6cf00020, + 0x2d560: 0x6cf00220, 0x2d561: 0x6d1fbc20, 0x2d562: 0x6c01ac20, 0x2d563: 0x6c040420, + 0x2d564: 0x6c040620, 0x2d565: 0x6c0ffc20, 0x2d566: 0x6c0ffe20, 0x2d567: 0x6c100020, + 0x2d568: 0x6c1cd820, 0x2d569: 0x6c1cda20, 0x2d56a: 0x6c1cdc20, 0x2d56b: 0x6c1cde20, + 0x2d56c: 0x6c1ce020, 0x2d56d: 0x6c306e20, 0x2d56e: 0x6c4abe20, 0x2d56f: 0x6c4ac020, + 0x2d570: 0x6cc00620, 0x2d571: 0x6cc00820, 0x2d572: 0x6cf01620, 0x2d573: 0x6cf01820, + 0x2d574: 0x6cf01a20, 0x2d575: 0x6d4d5020, 0x2d576: 0x6da2d220, 0x2d577: 0x6da2d420, + 0x2d578: 0x6c01b220, 0x2d579: 0x6c024c20, 0x2d57a: 0x6c040a20, 0x2d57b: 0x6c085220, + 0x2d57c: 0x6c085420, 0x2d57d: 0x6c100e20, 0x2d57e: 0x6c1cfa20, 0x2d57f: 0x6c1cfc20, + // Block 0xb56, offset 0x2d580 + 0x2d580: 0x6c1cfe20, 0x2d581: 0x6c1d0020, 0x2d582: 0x6c1d0220, 0x2d583: 0x6c1d0420, + 0x2d584: 0x6c308620, 0x2d585: 0x6c308820, 0x2d586: 0x6c308a20, 0x2d587: 0x6c308c20, + 0x2d588: 0x6c308e20, 0x2d589: 0x6c309020, 0x2d58a: 0x6c309220, 0x2d58b: 0x6c4ad620, + 0x2d58c: 0x6c4ad820, 0x2d58d: 0x6c4ada20, 0x2d58e: 0x6c4adc20, 0x2d58f: 0x6c4ade20, + 0x2d590: 0x6c6cae20, 0x2d591: 0x6c6cb020, 0x2d592: 0x6c6cb220, 0x2d593: 0x6c6cb420, + 0x2d594: 0x6c6cb620, 0x2d595: 0x6c6cb820, 0x2d596: 0x6c6cba20, 0x2d597: 0x6c6cbc20, + 0x2d598: 0x6c6cbe20, 0x2d599: 0x6c93d020, 0x2d59a: 0x6c93d220, 0x2d59b: 0x6c93d420, + 0x2d59c: 0x6c93d620, 0x2d59d: 0x6c93d820, 0x2d59e: 0x6cc02420, 0x2d59f: 0x6cc02620, + 0x2d5a0: 0x6c941020, 0x2d5a1: 0x6cc02820, 0x2d5a2: 0x6d1fe020, 0x2d5a3: 0x6d1fe220, + 0x2d5a4: 0x6d4d6220, 0x2d5a5: 0x6d4d6420, 0x2d5a6: 0x6d4d6620, 0x2d5a7: 0x6d4d6820, + 0x2d5a8: 0x6da2da20, 0x2d5a9: 0x6dc4c620, 0x2d5aa: 0x6dc4c820, 0x2d5ab: 0x6de1c020, + 0x2d5ac: 0x6e0d6420, 0x2d5ad: 0x6e31f020, 0x2d5ae: 0x6c01b620, 0x2d5af: 0x6c040e20, + 0x2d5b0: 0x6c102820, 0x2d5b1: 0x6c01ba20, 0x2d5b2: 0x6c041220, 0x2d5b3: 0x6c086c20, + 0x2d5b4: 0x6c086e20, 0x2d5b5: 0x6c087020, 0x2d5b6: 0x6c087220, 0x2d5b7: 0x6c087420, + 0x2d5b8: 0x6c104620, 0x2d5b9: 0x6c104820, 0x2d5ba: 0x6c104a20, 0x2d5bb: 0x6c104c20, + 0x2d5bc: 0x6c104e20, 0x2d5bd: 0x6c105020, 0x2d5be: 0x6c105220, 0x2d5bf: 0x6c105420, + // Block 0xb57, offset 0x2d5c0 + 0x2d5c0: 0x6c105620, 0x2d5c1: 0x6c105820, 0x2d5c2: 0x6c105a20, 0x2d5c3: 0x6c105c20, + 0x2d5c4: 0x6c1d3c20, 0x2d5c5: 0x6c1d3e20, 0x2d5c6: 0x6c1d4020, 0x2d5c7: 0x6c1d4220, + 0x2d5c8: 0x6c1d4420, 0x2d5c9: 0x6c1d4620, 0x2d5ca: 0x6c1d4820, 0x2d5cb: 0x6c1d4a20, + 0x2d5cc: 0x6c1d4c20, 0x2d5cd: 0x6c1dd220, 0x2d5ce: 0x6c1d4e20, 0x2d5cf: 0x6c1d5020, + 0x2d5d0: 0x6c1d5220, 0x2d5d1: 0x6c1d5420, 0x2d5d2: 0x6c1d5620, 0x2d5d3: 0x6c1d5820, + 0x2d5d4: 0x6c1d5a20, 0x2d5d5: 0x6c1d5c20, 0x2d5d6: 0x6c1d5e20, 0x2d5d7: 0x6c1d6020, + 0x2d5d8: 0x6c1d6220, 0x2d5d9: 0x6c1d6420, 0x2d5da: 0x6c1d6620, 0x2d5db: 0x6c1d6820, + 0x2d5dc: 0x6c1d6a20, 0x2d5dd: 0x6c30ce20, 0x2d5de: 0x6c30d020, 0x2d5df: 0x6c30d220, + 0x2d5e0: 0x6c30d420, 0x2d5e1: 0x6c30d620, 0x2d5e2: 0x6c30d820, 0x2d5e3: 0x6c30da20, + 0x2d5e4: 0x6c30dc20, 0x2d5e5: 0x6c30de20, 0x2d5e6: 0x6c30e020, 0x2d5e7: 0x6c30e220, + 0x2d5e8: 0x6c30e420, 0x2d5e9: 0x6c30e620, 0x2d5ea: 0x6c30e820, 0x2d5eb: 0x6c30ea20, + 0x2d5ec: 0x6c30ec20, 0x2d5ed: 0x6c30ee20, 0x2d5ee: 0x6c30f020, 0x2d5ef: 0x6c30f220, + 0x2d5f0: 0x6c30f420, 0x2d5f1: 0x6c30f620, 0x2d5f2: 0x6c30f820, 0x2d5f3: 0x6c30fa20, + 0x2d5f4: 0x6c30fc20, 0x2d5f5: 0x6c30fe20, 0x2d5f6: 0x6c310020, 0x2d5f7: 0x6c310220, + 0x2d5f8: 0x6c310420, 0x2d5f9: 0x6c310620, 0x2d5fa: 0x6c310820, 0x2d5fb: 0x6c310a20, + 0x2d5fc: 0x6c310c20, 0x2d5fd: 0x6c310e20, 0x2d5fe: 0x6c311020, 0x2d5ff: 0x6c311220, + // Block 0xb58, offset 0x2d600 + 0x2d600: 0x6c311420, 0x2d601: 0x6c311620, 0x2d602: 0x6c311820, 0x2d603: 0x6c311a20, + 0x2d604: 0x6c311c20, 0x2d605: 0x6c311e20, 0x2d606: 0x6c4b2620, 0x2d607: 0x6c4b2820, + 0x2d608: 0x6c4b2a20, 0x2d609: 0x6c4b2c20, 0x2d60a: 0x6c4b2e20, 0x2d60b: 0x6c4b3020, + 0x2d60c: 0x6c4b3220, 0x2d60d: 0x6c4b3420, 0x2d60e: 0x6c4b3620, 0x2d60f: 0x6c4b3820, + 0x2d610: 0x6c4b3a20, 0x2d611: 0x6c4b3c20, 0x2d612: 0x6c4b3e20, 0x2d613: 0x6c4b4020, + 0x2d614: 0x6c4b4220, 0x2d615: 0x6c4b4420, 0x2d616: 0x6c4b4620, 0x2d617: 0x6c4b4820, + 0x2d618: 0x6c4b4a20, 0x2d619: 0x6c4b4c20, 0x2d61a: 0x6c4b4e20, 0x2d61b: 0x6c4b5020, + 0x2d61c: 0x6c4b5220, 0x2d61d: 0x6c4b5420, 0x2d61e: 0x6c4b5620, 0x2d61f: 0x6c4b5820, + 0x2d620: 0x6c4b5a20, 0x2d621: 0x6c4b5c20, 0x2d622: 0x6c4b5e20, 0x2d623: 0x6c4b6020, + 0x2d624: 0x6c4b6220, 0x2d625: 0x6c4b6420, 0x2d626: 0x6c4b6620, 0x2d627: 0x6c4b6820, + 0x2d628: 0x6c6d2020, 0x2d629: 0x6c6d2220, 0x2d62a: 0x6c6d2420, 0x2d62b: 0x6c6d2620, + 0x2d62c: 0x6c6d2820, 0x2d62d: 0x6c6d2a20, 0x2d62e: 0x6c6d2c20, 0x2d62f: 0x6c6d2e20, + 0x2d630: 0x6c6d3020, 0x2d631: 0x6c6d3220, 0x2d632: 0x6c6d3420, 0x2d633: 0x6c6d3620, + 0x2d634: 0x6c6d3820, 0x2d635: 0x6c6d3a20, 0x2d636: 0x6c6d3c20, 0x2d637: 0x6c6d3e20, + 0x2d638: 0x6c4bcc20, 0x2d639: 0x6c6d4020, 0x2d63a: 0x6c6d4220, 0x2d63b: 0x6c6d4420, + 0x2d63c: 0x6c6d4620, 0x2d63d: 0x6c6d4820, 0x2d63e: 0x6c6d4a20, 0x2d63f: 0x6c6d4c20, + // Block 0xb59, offset 0x2d640 + 0x2d640: 0x6c6d4e20, 0x2d641: 0x6c6d5020, 0x2d642: 0x6c6d5220, 0x2d643: 0x6c6d5420, + 0x2d644: 0x6c6d5620, 0x2d645: 0x6c6d5820, 0x2d646: 0x6c943420, 0x2d647: 0x6c943620, + 0x2d648: 0x6c943820, 0x2d649: 0x6c943a20, 0x2d64a: 0x6c943c20, 0x2d64b: 0x6c943e20, + 0x2d64c: 0x6c944020, 0x2d64d: 0x6c944220, 0x2d64e: 0x6c944420, 0x2d64f: 0x6c944620, + 0x2d650: 0x6c944820, 0x2d651: 0x6c944a20, 0x2d652: 0x6c944c20, 0x2d653: 0x6c944e20, + 0x2d654: 0x6c945020, 0x2d655: 0x6c945220, 0x2d656: 0x6c945420, 0x2d657: 0x6c945620, + 0x2d658: 0x6c945820, 0x2d659: 0x6c945a20, 0x2d65a: 0x6c945c20, 0x2d65b: 0x6c945e20, + 0x2d65c: 0x6c946020, 0x2d65d: 0x6c946220, 0x2d65e: 0x6c946420, 0x2d65f: 0x6c946620, + 0x2d660: 0x6c946820, 0x2d661: 0x6c946a20, 0x2d662: 0x6c946c20, 0x2d663: 0x6c946e20, + 0x2d664: 0x6c947020, 0x2d665: 0x6c947220, 0x2d666: 0x6c947420, 0x2d667: 0x6c947620, + 0x2d668: 0x6c947820, 0x2d669: 0x6c947a20, 0x2d66a: 0x6c947c20, 0x2d66b: 0x6c947e20, + 0x2d66c: 0x6c948020, 0x2d66d: 0x6c948220, 0x2d66e: 0x6c948420, 0x2d66f: 0x6c948620, + 0x2d670: 0x6c948820, 0x2d671: 0x6cc08420, 0x2d672: 0x6cc08620, 0x2d673: 0x6cc08820, + 0x2d674: 0x6cc08a20, 0x2d675: 0x6cc08c20, 0x2d676: 0x6cc08e20, 0x2d677: 0x6cc09020, + 0x2d678: 0x6cc09220, 0x2d679: 0x6cc09420, 0x2d67a: 0x6cc09620, 0x2d67b: 0x6cc09820, + 0x2d67c: 0x6cc09a20, 0x2d67d: 0x6cc09c20, 0x2d67e: 0x6cc09e20, 0x2d67f: 0x6cc0a020, + // Block 0xb5a, offset 0x2d680 + 0x2d680: 0x6cc0a220, 0x2d681: 0x6cc0a420, 0x2d682: 0x6cc0a620, 0x2d683: 0x6cc0a820, + 0x2d684: 0x6cc0aa20, 0x2d685: 0x6cc0ac20, 0x2d686: 0x6cc0ae20, 0x2d687: 0x6cc0b020, + 0x2d688: 0x6cc0b220, 0x2d689: 0x6cc0b420, 0x2d68a: 0x6cf07a20, 0x2d68b: 0x6cc0b620, + 0x2d68c: 0x6cc0b820, 0x2d68d: 0x6cc0ba20, 0x2d68e: 0x6cc0bc20, 0x2d68f: 0x6cc0be20, + 0x2d690: 0x6cc0c020, 0x2d691: 0x6cc0c220, 0x2d692: 0x6cc0c420, 0x2d693: 0x6cc0c620, + 0x2d694: 0x6cc0c820, 0x2d695: 0x6cc0ca20, 0x2d696: 0x6cc0cc20, 0x2d697: 0x6cc0ce20, + 0x2d698: 0x6cc0d020, 0x2d699: 0x6cc0d220, 0x2d69a: 0x6cc0d420, 0x2d69b: 0x6cc0d620, + 0x2d69c: 0x6cc0d820, 0x2d69d: 0x6cc0da20, 0x2d69e: 0x6cf07c20, 0x2d69f: 0x6cf07e20, + 0x2d6a0: 0x6cf08020, 0x2d6a1: 0x6cf08220, 0x2d6a2: 0x6cf08420, 0x2d6a3: 0x6cf08620, + 0x2d6a4: 0x6cf08820, 0x2d6a5: 0x6cf08a20, 0x2d6a6: 0x6cf08c20, 0x2d6a7: 0x6cf08e20, + 0x2d6a8: 0x6cf09020, 0x2d6a9: 0x6cf09220, 0x2d6aa: 0x6cf09420, 0x2d6ab: 0x6cc16a20, + 0x2d6ac: 0x6cf09620, 0x2d6ad: 0x6cf09820, 0x2d6ae: 0x6cf09a20, 0x2d6af: 0x6cf09c20, + 0x2d6b0: 0x6cf09e20, 0x2d6b1: 0x6cf0a020, 0x2d6b2: 0x6cf0a220, 0x2d6b3: 0x6cf0a420, + 0x2d6b4: 0x6cf0a620, 0x2d6b5: 0x6cf0a820, 0x2d6b6: 0x6cf0aa20, 0x2d6b7: 0x6d201820, + 0x2d6b8: 0x6d201a20, 0x2d6b9: 0x6d201c20, 0x2d6ba: 0x6d201e20, 0x2d6bb: 0x6d202020, + 0x2d6bc: 0x6d202220, 0x2d6bd: 0x6d202420, 0x2d6be: 0x6d202620, 0x2d6bf: 0x6d202820, + // Block 0xb5b, offset 0x2d6c0 + 0x2d6c0: 0x6d202a20, 0x2d6c1: 0x6d202c20, 0x2d6c2: 0x6d202e20, 0x2d6c3: 0x6d203020, + 0x2d6c4: 0x6d203220, 0x2d6c5: 0x6d203420, 0x2d6c6: 0x6d203620, 0x2d6c7: 0x6d203820, + 0x2d6c8: 0x6d203a20, 0x2d6c9: 0x6d203c20, 0x2d6ca: 0x6d203e20, 0x2d6cb: 0x6d204020, + 0x2d6cc: 0x6d204220, 0x2d6cd: 0x6d204420, 0x2d6ce: 0x6d204620, 0x2d6cf: 0x6d4dac20, + 0x2d6d0: 0x6d4dae20, 0x2d6d1: 0x6d4db020, 0x2d6d2: 0x6d4db220, 0x2d6d3: 0x6d4db420, + 0x2d6d4: 0x6d4db620, 0x2d6d5: 0x6d4db820, 0x2d6d6: 0x6d4dba20, 0x2d6d7: 0x6d4dbc20, + 0x2d6d8: 0x6d4dbe20, 0x2d6d9: 0x6d4dc020, 0x2d6da: 0x6d4dc220, 0x2d6db: 0x6d4dc420, + 0x2d6dc: 0x6d4dc620, 0x2d6dd: 0x6d4dc820, 0x2d6de: 0x6d4dca20, 0x2d6df: 0x6d4dcc20, + 0x2d6e0: 0x6d4dce20, 0x2d6e1: 0x6d4dd020, 0x2d6e2: 0x6d4dd220, 0x2d6e3: 0x6d4dd420, + 0x2d6e4: 0x6d4dd620, 0x2d6e5: 0x6d4dd820, 0x2d6e6: 0x6d7a6e20, 0x2d6e7: 0x6d7a7020, + 0x2d6e8: 0x6d7a7220, 0x2d6e9: 0x6d7a7420, 0x2d6ea: 0x6d7a7620, 0x2d6eb: 0x6d7a7820, + 0x2d6ec: 0x6d7a7a20, 0x2d6ed: 0x6d7a7c20, 0x2d6ee: 0x6d7a7e20, 0x2d6ef: 0x6d7a8020, + 0x2d6f0: 0x6d7a8220, 0x2d6f1: 0x6d7a8420, 0x2d6f2: 0x6d7a8620, 0x2d6f3: 0x6d7a8820, + 0x2d6f4: 0x6d7a8a20, 0x2d6f5: 0x6d7a8c20, 0x2d6f6: 0x6d7a8e20, 0x2d6f7: 0x6da2ec20, + 0x2d6f8: 0x6da2ee20, 0x2d6f9: 0x6da2f020, 0x2d6fa: 0x6da2f220, 0x2d6fb: 0x6da35220, + 0x2d6fc: 0x6da2f420, 0x2d6fd: 0x6da2f620, 0x2d6fe: 0x6da2f820, 0x2d6ff: 0x6da2fa20, + // Block 0xb5c, offset 0x2d700 + 0x2d700: 0x6dc4d620, 0x2d701: 0x6dc4d820, 0x2d702: 0x6dc4da20, 0x2d703: 0x6de1d820, + 0x2d704: 0x6de1da20, 0x2d705: 0x6de1dc20, 0x2d706: 0x6df9b220, 0x2d707: 0x6df9b420, + 0x2d708: 0x6df9b620, 0x2d709: 0x6df9b820, 0x2d70a: 0x6df9ba20, 0x2d70b: 0x6e0d6e20, + 0x2d70c: 0x6df9bc20, 0x2d70d: 0x6e0d7420, 0x2d70e: 0x6e1cd820, 0x2d70f: 0x6e0d7620, + 0x2d710: 0x6e0d7820, 0x2d711: 0x6e1cda20, 0x2d712: 0x6e1cdc20, 0x2d713: 0x6e1cde20, + 0x2d714: 0x6e1ce020, 0x2d715: 0x6e1ce220, 0x2d716: 0x6e28b220, 0x2d717: 0x6e1ce420, + 0x2d718: 0x6e28b420, 0x2d719: 0x6e31f420, 0x2d71a: 0x6e28b620, 0x2d71b: 0x6c01bc20, + 0x2d71c: 0x6c00c620, 0x2d71d: 0x6c01be20, 0x2d71e: 0x6c109420, 0x2d71f: 0x6c109620, + 0x2d720: 0x6c1dd420, 0x2d721: 0x6c272c20, 0x2d722: 0x6c954a20, 0x2d723: 0x6c954c20, + 0x2d724: 0x6d4e4820, 0x2d725: 0x6c01c420, 0x2d726: 0x6c089220, 0x2d727: 0x6c089420, + 0x2d728: 0x6c089620, 0x2d729: 0x6c10a220, 0x2d72a: 0x6c10a420, 0x2d72b: 0x6c1dde20, + 0x2d72c: 0x6c4bda20, 0x2d72d: 0x6c4bdc20, 0x2d72e: 0x6c6dec20, 0x2d72f: 0x6cc17020, + 0x2d730: 0x6cf11020, 0x2d731: 0x6c01c620, 0x2d732: 0x6c01c820, 0x2d733: 0x6c01ca20, + 0x2d734: 0x6c042820, 0x2d735: 0x6c1de620, 0x2d736: 0x6c318a20, 0x2d737: 0x6c4be020, + 0x2d738: 0x6c4be220, 0x2d739: 0x6c4be420, 0x2d73a: 0x6c4be620, 0x2d73b: 0x6c4be820, + 0x2d73c: 0x6c6df220, 0x2d73d: 0x6cc17820, 0x2d73e: 0x6c01cc20, 0x2d73f: 0x6c042c20, + // Block 0xb5d, offset 0x2d740 + 0x2d740: 0x6c042e20, 0x2d741: 0x6c043020, 0x2d742: 0x6c08aa20, 0x2d743: 0x6c08ac20, + 0x2d744: 0x6c08ae20, 0x2d745: 0x6c08b020, 0x2d746: 0x6c10b420, 0x2d747: 0x6c10b620, + 0x2d748: 0x6c10b820, 0x2d749: 0x6c1df620, 0x2d74a: 0x6c1df820, 0x2d74b: 0x6c1dfa20, + 0x2d74c: 0x6c1dfc20, 0x2d74d: 0x6c1dfe20, 0x2d74e: 0x6c1e0020, 0x2d74f: 0x6c1e0220, + 0x2d750: 0x6c1e0420, 0x2d751: 0x6c319a20, 0x2d752: 0x6c319c20, 0x2d753: 0x6c319e20, + 0x2d754: 0x6c31a020, 0x2d755: 0x6c31a220, 0x2d756: 0x6c31a420, 0x2d757: 0x6c31a620, + 0x2d758: 0x6c31a820, 0x2d759: 0x6c31aa20, 0x2d75a: 0x6c31ac20, 0x2d75b: 0x6c31ae20, + 0x2d75c: 0x6c31b020, 0x2d75d: 0x6c4bfc20, 0x2d75e: 0x6c4bfe20, 0x2d75f: 0x6c4c0020, + 0x2d760: 0x6c4c0220, 0x2d761: 0x6c4c0420, 0x2d762: 0x6c4c0620, 0x2d763: 0x6c4c0820, + 0x2d764: 0x6c4c0a20, 0x2d765: 0x6c4c0c20, 0x2d766: 0x6c4c0e20, 0x2d767: 0x6c4c1020, + 0x2d768: 0x6c6e0020, 0x2d769: 0x6c6e0220, 0x2d76a: 0x6c6e0420, 0x2d76b: 0x6c6e0620, + 0x2d76c: 0x6c6e0820, 0x2d76d: 0x6c6e0a20, 0x2d76e: 0x6c6e0c20, 0x2d76f: 0x6c6e0e20, + 0x2d770: 0x6c6e1020, 0x2d771: 0x6c6e1220, 0x2d772: 0x6c957020, 0x2d773: 0x6c957220, + 0x2d774: 0x6c957420, 0x2d775: 0x6c957620, 0x2d776: 0x6c957820, 0x2d777: 0x6c957a20, + 0x2d778: 0x6c957c20, 0x2d779: 0x6c957e20, 0x2d77a: 0x6c958020, 0x2d77b: 0x6c958220, + 0x2d77c: 0x6c958420, 0x2d77d: 0x6cc19820, 0x2d77e: 0x6c95ca20, 0x2d77f: 0x6cc19a20, + // Block 0xb5e, offset 0x2d780 + 0x2d780: 0x6cc19c20, 0x2d781: 0x6cc19e20, 0x2d782: 0x6cc1a020, 0x2d783: 0x6cc1a220, + 0x2d784: 0x6cc1a420, 0x2d785: 0x6cc1a620, 0x2d786: 0x6cc1a820, 0x2d787: 0x6cc1aa20, + 0x2d788: 0x6cc1f220, 0x2d789: 0x6cc1ac20, 0x2d78a: 0x6cf12420, 0x2d78b: 0x6cf12620, + 0x2d78c: 0x6cf12820, 0x2d78d: 0x6cf12a20, 0x2d78e: 0x6cf12c20, 0x2d78f: 0x6cf12e20, + 0x2d790: 0x6d082820, 0x2d791: 0x6d20c820, 0x2d792: 0x6d20ca20, 0x2d793: 0x6d20cc20, + 0x2d794: 0x6d20ce20, 0x2d795: 0x6d20d020, 0x2d796: 0x6d20d220, 0x2d797: 0x6d20d420, + 0x2d798: 0x6d20d620, 0x2d799: 0x6d20d820, 0x2d79a: 0x6d4e5e20, 0x2d79b: 0x6d20da20, + 0x2d79c: 0x6d4e6020, 0x2d79d: 0x6d4e6220, 0x2d79e: 0x6d4e6420, 0x2d79f: 0x6d4e6620, + 0x2d7a0: 0x6d4e6820, 0x2d7a1: 0x6d4e6a20, 0x2d7a2: 0x6d4e6c20, 0x2d7a3: 0x6d210620, + 0x2d7a4: 0x6d4e6e20, 0x2d7a5: 0x6d4e7020, 0x2d7a6: 0x6d7aee20, 0x2d7a7: 0x6d7af020, + 0x2d7a8: 0x6d7af220, 0x2d7a9: 0x6d4ea820, 0x2d7aa: 0x6da36020, 0x2d7ab: 0x6da36220, + 0x2d7ac: 0x6da36420, 0x2d7ad: 0x6dc51020, 0x2d7ae: 0x6dc51220, 0x2d7af: 0x6d7b1a20, + 0x2d7b0: 0x6de21220, 0x2d7b1: 0x6df9e020, 0x2d7b2: 0x6c01ce20, 0x2d7b3: 0x6c08ba20, + 0x2d7b4: 0x6c10da20, 0x2d7b5: 0x6c10dc20, 0x2d7b6: 0x6c10de20, 0x2d7b7: 0x6c31dc20, + 0x2d7b8: 0x6c31de20, 0x2d7b9: 0x6cf15a20, 0x2d7ba: 0x6c01d220, 0x2d7bb: 0x6c043220, + 0x2d7bc: 0x6c08be20, 0x2d7bd: 0x6c4c5e20, 0x2d7be: 0x6cc20020, 0x2d7bf: 0x6c01d420, + // Block 0xb5f, offset 0x2d7c0 + 0x2d7c0: 0x6c08c820, 0x2d7c1: 0x6c08ca20, 0x2d7c2: 0x6c08cc20, 0x2d7c3: 0x6c08ce20, + 0x2d7c4: 0x6c10ea20, 0x2d7c5: 0x6c10ec20, 0x2d7c6: 0x6c10ee20, 0x2d7c7: 0x6c1e4620, + 0x2d7c8: 0x6c1e4820, 0x2d7c9: 0x6c1e4a20, 0x2d7ca: 0x6c1e4c20, 0x2d7cb: 0x6c1e4e20, + 0x2d7cc: 0x6c1e5020, 0x2d7cd: 0x6c1e5220, 0x2d7ce: 0x6c1e5420, 0x2d7cf: 0x6c1e5620, + 0x2d7d0: 0x6c1e5820, 0x2d7d1: 0x6c1e5a20, 0x2d7d2: 0x6c1e5c20, 0x2d7d3: 0x6c1e5e20, + 0x2d7d4: 0x6c1e6020, 0x2d7d5: 0x6c320220, 0x2d7d6: 0x6c320420, 0x2d7d7: 0x6c320620, + 0x2d7d8: 0x6c31f020, 0x2d7d9: 0x6c320820, 0x2d7da: 0x6c320a20, 0x2d7db: 0x6c4c6620, + 0x2d7dc: 0x6c320c20, 0x2d7dd: 0x6c320e20, 0x2d7de: 0x6c321020, 0x2d7df: 0x6c321220, + 0x2d7e0: 0x6c4c7620, 0x2d7e1: 0x6c4c7820, 0x2d7e2: 0x6c4c7a20, 0x2d7e3: 0x6c4c7c20, + 0x2d7e4: 0x6c4c7e20, 0x2d7e5: 0x6c4c8020, 0x2d7e6: 0x6c4c8220, 0x2d7e7: 0x6c6e6a20, + 0x2d7e8: 0x6c6e6c20, 0x2d7e9: 0x6c6e6e20, 0x2d7ea: 0x6c6e7020, 0x2d7eb: 0x6c6e7220, + 0x2d7ec: 0x6c6e7420, 0x2d7ed: 0x6c6e7620, 0x2d7ee: 0x6c6e7820, 0x2d7ef: 0x6c6e7a20, + 0x2d7f0: 0x6c4cac20, 0x2d7f1: 0x6c95e220, 0x2d7f2: 0x6c95e420, 0x2d7f3: 0x6c95e620, + 0x2d7f4: 0x6c95e820, 0x2d7f5: 0x6c95ea20, 0x2d7f6: 0x6c95ec20, 0x2d7f7: 0x6c95ee20, + 0x2d7f8: 0x6c95f020, 0x2d7f9: 0x6c95f220, 0x2d7fa: 0x6c95f420, 0x2d7fb: 0x6c95f620, + 0x2d7fc: 0x6c95f820, 0x2d7fd: 0x6cc20c20, 0x2d7fe: 0x6c965020, 0x2d7ff: 0x6cc20e20, + // Block 0xb60, offset 0x2d800 + 0x2d800: 0x6cc21020, 0x2d801: 0x6cc21220, 0x2d802: 0x6cc21420, 0x2d803: 0x6cc21620, + 0x2d804: 0x6cc26420, 0x2d805: 0x6cf16c20, 0x2d806: 0x6cf16e20, 0x2d807: 0x6cf17020, + 0x2d808: 0x6cf17220, 0x2d809: 0x6cf17420, 0x2d80a: 0x6cc21820, 0x2d80b: 0x6cf17620, + 0x2d80c: 0x6cf17820, 0x2d80d: 0x6d211e20, 0x2d80e: 0x6d212020, 0x2d80f: 0x6d212220, + 0x2d810: 0x6d212420, 0x2d811: 0x6d212620, 0x2d812: 0x6d212820, 0x2d813: 0x6d212a20, + 0x2d814: 0x6d212c20, 0x2d815: 0x6d212e20, 0x2d816: 0x6d213020, 0x2d817: 0x6d213220, + 0x2d818: 0x6d213420, 0x2d819: 0x6d216c20, 0x2d81a: 0x6d4ebc20, 0x2d81b: 0x6d4ebe20, + 0x2d81c: 0x6d216e20, 0x2d81d: 0x6d4ec020, 0x2d81e: 0x6d4ec220, 0x2d81f: 0x6d4ec420, + 0x2d820: 0x6d4ec620, 0x2d821: 0x6d4ec820, 0x2d822: 0x6d4eca20, 0x2d823: 0x6d4ecc20, + 0x2d824: 0x6d4ece20, 0x2d825: 0x6d7b2e20, 0x2d826: 0x6d7b3020, 0x2d827: 0x6d7b3220, + 0x2d828: 0x6d7b3420, 0x2d829: 0x6d7b3620, 0x2d82a: 0x6d7b3820, 0x2d82b: 0x6dc52020, + 0x2d82c: 0x6de23220, 0x2d82d: 0x6de23420, 0x2d82e: 0x6df9ee20, 0x2d82f: 0x6df9f020, + 0x2d830: 0x6df9f220, 0x2d831: 0x6e0da020, 0x2d832: 0x6e1d1220, 0x2d833: 0x6e388020, + 0x2d834: 0x6c01d620, 0x2d835: 0x6c110a20, 0x2d836: 0x6c324220, 0x2d837: 0x6c1e8420, + 0x2d838: 0x6c324620, 0x2d839: 0x6c324820, 0x2d83a: 0x6c4cae20, 0x2d83b: 0x6c4cb020, + 0x2d83c: 0x6c4cb220, 0x2d83d: 0x6c6eba20, 0x2d83e: 0x6c01d820, 0x2d83f: 0x6c043c20, + // Block 0xb61, offset 0x2d840 + 0x2d840: 0x6c043e20, 0x2d841: 0x6c08da20, 0x2d842: 0x6c110e20, 0x2d843: 0x6c1e9020, + 0x2d844: 0x6c1e9220, 0x2d845: 0x6c1e9420, 0x2d846: 0x6c324c20, 0x2d847: 0x6c4cc220, + 0x2d848: 0x6c4cc420, 0x2d849: 0x6c6ec220, 0x2d84a: 0x6d218220, 0x2d84b: 0x6c01dc20, + 0x2d84c: 0x6c044220, 0x2d84d: 0x6c08e020, 0x2d84e: 0x6c111620, 0x2d84f: 0x6c111820, + 0x2d850: 0x6c111a20, 0x2d851: 0x6cc27a20, 0x2d852: 0x6cf1ba20, 0x2d853: 0x6c01e020, + 0x2d854: 0x6c044a20, 0x2d855: 0x6c044c20, 0x2d856: 0x6c044e20, 0x2d857: 0x6c08e220, + 0x2d858: 0x6c08e420, 0x2d859: 0x6c112820, 0x2d85a: 0x6c112a20, 0x2d85b: 0x6c112c20, + 0x2d85c: 0x6c112e20, 0x2d85d: 0x6c1eb620, 0x2d85e: 0x6c1eb820, 0x2d85f: 0x6c1eba20, + 0x2d860: 0x6c1ebc20, 0x2d861: 0x6c326820, 0x2d862: 0x6c326a20, 0x2d863: 0x6c326c20, + 0x2d864: 0x6c326e20, 0x2d865: 0x6c327020, 0x2d866: 0x6c327220, 0x2d867: 0x6c327420, + 0x2d868: 0x6c327620, 0x2d869: 0x6c327820, 0x2d86a: 0x6c327a20, 0x2d86b: 0x6c4cf820, + 0x2d86c: 0x6c4cfa20, 0x2d86d: 0x6c4cfc20, 0x2d86e: 0x6c4cfe20, 0x2d86f: 0x6c4d0020, + 0x2d870: 0x6c6edc20, 0x2d871: 0x6c6ede20, 0x2d872: 0x6c6ee020, 0x2d873: 0x6c6ee220, + 0x2d874: 0x6c966e20, 0x2d875: 0x6c967020, 0x2d876: 0x6c967220, 0x2d877: 0x6c967420, + 0x2d878: 0x6c967620, 0x2d879: 0x6c967820, 0x2d87a: 0x6cc28420, 0x2d87b: 0x6cc28620, + 0x2d87c: 0x6cc28820, 0x2d87d: 0x6cc28a20, 0x2d87e: 0x6cc28c20, 0x2d87f: 0x6cf1c820, + // Block 0xb62, offset 0x2d880 + 0x2d880: 0x6cf1ca20, 0x2d881: 0x6cf1cc20, 0x2d882: 0x6cf1ce20, 0x2d883: 0x6d218620, + 0x2d884: 0x6d218820, 0x2d885: 0x6d218a20, 0x2d886: 0x6d21a620, 0x2d887: 0x6d4f0c20, + 0x2d888: 0x6d4f0e20, 0x2d889: 0x6d4f1020, 0x2d88a: 0x6d7b6820, 0x2d88b: 0x6d7b6a20, + 0x2d88c: 0x6da3aa20, 0x2d88d: 0x6dc54020, 0x2d88e: 0x6e1d2220, 0x2d88f: 0x6e28ca20, + 0x2d890: 0x6c01e820, 0x2d891: 0x6c01ea20, 0x2d892: 0x6c08f820, 0x2d893: 0x6c114a20, + 0x2d894: 0x6c329c20, 0x2d895: 0x6c329e20, 0x2d896: 0x6c4d2a20, 0x2d897: 0x6c96a020, + 0x2d898: 0x6cc2a620, 0x2d899: 0x6cf1e020, 0x2d89a: 0x6cf1e220, 0x2d89b: 0x6d7b7a20, + 0x2d89c: 0x6d7b7c20, 0x2d89d: 0x6dc54e20, 0x2d89e: 0x6dc55020, 0x2d89f: 0x6de26820, + 0x2d8a0: 0x6e3d2420, 0x2d8a1: 0x6c01ec20, 0x2d8a2: 0x6c1ee020, 0x2d8a3: 0x6c1ee220, + 0x2d8a4: 0x6c1ee420, 0x2d8a5: 0x6c4d3420, 0x2d8a6: 0x6c4d3620, 0x2d8a7: 0x6c6f0020, + 0x2d8a8: 0x6c6f0220, 0x2d8a9: 0x6c96ac20, 0x2d8aa: 0x6cae2020, 0x2d8ab: 0x6c96ae20, + 0x2d8ac: 0x6c96b020, 0x2d8ad: 0x6cc2b220, 0x2d8ae: 0x6cf1ea20, 0x2d8af: 0x6d21b420, + 0x2d8b0: 0x6d21b620, 0x2d8b1: 0x6d4f2820, 0x2d8b2: 0x6e1d2820, 0x2d8b3: 0x6c01ee20, + 0x2d8b4: 0x6c116220, 0x2d8b5: 0x6c116420, 0x2d8b6: 0x6c1eee20, 0x2d8b7: 0x6c1ef020, + 0x2d8b8: 0x6c1ef220, 0x2d8b9: 0x6c1ef420, 0x2d8ba: 0x6c1ef620, 0x2d8bb: 0x6c1ef820, + 0x2d8bc: 0x6c32b820, 0x2d8bd: 0x6c32ba20, 0x2d8be: 0x6c32bc20, 0x2d8bf: 0x6c32be20, + // Block 0xb63, offset 0x2d8c0 + 0x2d8c0: 0x6c32c020, 0x2d8c1: 0x6c32c220, 0x2d8c2: 0x6c32c420, 0x2d8c3: 0x6c32c620, + 0x2d8c4: 0x6c32c820, 0x2d8c5: 0x6c4d4c20, 0x2d8c6: 0x6c4d4e20, 0x2d8c7: 0x6c4d5020, + 0x2d8c8: 0x6c4d5220, 0x2d8c9: 0x6c4d5420, 0x2d8ca: 0x6c4d5620, 0x2d8cb: 0x6c4d5820, + 0x2d8cc: 0x6c4d5a20, 0x2d8cd: 0x6c4d5c20, 0x2d8ce: 0x6c6f1620, 0x2d8cf: 0x6c6f1820, + 0x2d8d0: 0x6c6f1a20, 0x2d8d1: 0x6c6f1c20, 0x2d8d2: 0x6c6f1e20, 0x2d8d3: 0x6c6f2020, + 0x2d8d4: 0x6c4d5e20, 0x2d8d5: 0x6c6f2220, 0x2d8d6: 0x6c96d220, 0x2d8d7: 0x6c96d420, + 0x2d8d8: 0x6c96d620, 0x2d8d9: 0x6c96d820, 0x2d8da: 0x6cc2ca20, 0x2d8db: 0x6c96da20, + 0x2d8dc: 0x6c96dc20, 0x2d8dd: 0x6c96de20, 0x2d8de: 0x6c96e020, 0x2d8df: 0x6c96e220, + 0x2d8e0: 0x6c96e420, 0x2d8e1: 0x6c96e620, 0x2d8e2: 0x6c96e820, 0x2d8e3: 0x6c96ea20, + 0x2d8e4: 0x6c96ec20, 0x2d8e5: 0x6cc2cc20, 0x2d8e6: 0x6cc2ce20, 0x2d8e7: 0x6cc2d020, + 0x2d8e8: 0x6cc2d220, 0x2d8e9: 0x6cc2d420, 0x2d8ea: 0x6cc2d620, 0x2d8eb: 0x6cc2d820, + 0x2d8ec: 0x6cf1f820, 0x2d8ed: 0x6cf1fa20, 0x2d8ee: 0x6cf1fc20, 0x2d8ef: 0x6cf1fe20, + 0x2d8f0: 0x6cf20020, 0x2d8f1: 0x6d21c220, 0x2d8f2: 0x6d4f3a20, 0x2d8f3: 0x6d21c420, + 0x2d8f4: 0x6d21c620, 0x2d8f5: 0x6d4f3c20, 0x2d8f6: 0x6d220220, 0x2d8f7: 0x6d4f3e20, + 0x2d8f8: 0x6d4f4020, 0x2d8f9: 0x6d4f4220, 0x2d8fa: 0x6d4f4420, 0x2d8fb: 0x6d7b9020, + 0x2d8fc: 0x6d7b9220, 0x2d8fd: 0x6da3c220, 0x2d8fe: 0x6da3c420, 0x2d8ff: 0x6de27420, + // Block 0xb64, offset 0x2d900 + 0x2d900: 0x6dfa1c20, 0x2d901: 0x6dfa1e20, 0x2d902: 0x6e0dba20, 0x2d903: 0x6c046620, + 0x2d904: 0x6c01f020, 0x2d905: 0x6c090820, 0x2d906: 0x6c046820, 0x2d907: 0x6c090a20, + 0x2d908: 0x6c117020, 0x2d909: 0x6c090c20, 0x2d90a: 0x6c090e20, 0x2d90b: 0x6c117820, + 0x2d90c: 0x6c1f2020, 0x2d90d: 0x6c1f2220, 0x2d90e: 0x6c1f2420, 0x2d90f: 0x6c117a20, + 0x2d910: 0x6c1f2620, 0x2d911: 0x6c1f2820, 0x2d912: 0x6c1f2a20, 0x2d913: 0x6c117c20, + 0x2d914: 0x6c117e20, 0x2d915: 0x6c118020, 0x2d916: 0x6c118220, 0x2d917: 0x6c1f2c20, + 0x2d918: 0x6c1f2e20, 0x2d919: 0x6c118420, 0x2d91a: 0x6c118620, 0x2d91b: 0x6c118820, + 0x2d91c: 0x6c1f3020, 0x2d91d: 0x6c32e620, 0x2d91e: 0x6c32e820, 0x2d91f: 0x6c1f4220, + 0x2d920: 0x6c32ea20, 0x2d921: 0x6c1f4420, 0x2d922: 0x6c32ec20, 0x2d923: 0x6c1f4620, + 0x2d924: 0x6c1f4820, 0x2d925: 0x6c32ee20, 0x2d926: 0x6c1f4a20, 0x2d927: 0x6c1f4c20, + 0x2d928: 0x6c1f4e20, 0x2d929: 0x6c32f020, 0x2d92a: 0x6c1f5020, 0x2d92b: 0x6c1f5220, + 0x2d92c: 0x6c1f5420, 0x2d92d: 0x6c1f5620, 0x2d92e: 0x6c1f5820, 0x2d92f: 0x6c1f5a20, + 0x2d930: 0x6c1f5c20, 0x2d931: 0x6c1f5e20, 0x2d932: 0x6c1f6020, 0x2d933: 0x6c1f6220, + 0x2d934: 0x6c1f6420, 0x2d935: 0x6c32f220, 0x2d936: 0x6c1f6620, 0x2d937: 0x6c1f6820, + 0x2d938: 0x6c1f6a20, 0x2d939: 0x6c1f6c20, 0x2d93a: 0x6c1f6e20, 0x2d93b: 0x6c1f7020, + 0x2d93c: 0x6c1f7220, 0x2d93d: 0x6c32f420, 0x2d93e: 0x6c1f7420, 0x2d93f: 0x6c32f620, + // Block 0xb65, offset 0x2d940 + 0x2d940: 0x6c1f7620, 0x2d941: 0x6c32f820, 0x2d942: 0x6c32fa20, 0x2d943: 0x6c1f7820, + 0x2d944: 0x6c1f7a20, 0x2d945: 0x6c1f7c20, 0x2d946: 0x6c1f7e20, 0x2d947: 0x6c331020, + 0x2d948: 0x6c331220, 0x2d949: 0x6c331420, 0x2d94a: 0x6c331620, 0x2d94b: 0x6c331820, + 0x2d94c: 0x6c331a20, 0x2d94d: 0x6c331c20, 0x2d94e: 0x6c4d8420, 0x2d94f: 0x6c331e20, + 0x2d950: 0x6c332020, 0x2d951: 0x6c332220, 0x2d952: 0x6c4d8620, 0x2d953: 0x6c332420, + 0x2d954: 0x6c332620, 0x2d955: 0x6c332820, 0x2d956: 0x6c332a20, 0x2d957: 0x6c332c20, + 0x2d958: 0x6c4d8820, 0x2d959: 0x6c332e20, 0x2d95a: 0x6c333020, 0x2d95b: 0x6c333220, + 0x2d95c: 0x6c333420, 0x2d95d: 0x6c4d8a20, 0x2d95e: 0x6c333620, 0x2d95f: 0x6c333820, + 0x2d960: 0x6c4d8c20, 0x2d961: 0x6c333a20, 0x2d962: 0x6c333c20, 0x2d963: 0x6c4d8e20, + 0x2d964: 0x6c4d9020, 0x2d965: 0x6c4d9220, 0x2d966: 0x6c333e20, 0x2d967: 0x6c334020, + 0x2d968: 0x6c4d9420, 0x2d969: 0x6c334220, 0x2d96a: 0x6c334420, 0x2d96b: 0x6c334620, + 0x2d96c: 0x6c334820, 0x2d96d: 0x6c334a20, 0x2d96e: 0x6c334c20, 0x2d96f: 0x6c334e20, + 0x2d970: 0x6c335020, 0x2d971: 0x6c4d9620, 0x2d972: 0x6c335220, 0x2d973: 0x6c335420, + 0x2d974: 0x6c335620, 0x2d975: 0x6c335820, 0x2d976: 0x6c335a20, 0x2d977: 0x6c4d9820, + 0x2d978: 0x6c4d9a20, 0x2d979: 0x6c4d9c20, 0x2d97a: 0x6c335c20, 0x2d97b: 0x6c4d9e20, + 0x2d97c: 0x6c4da020, 0x2d97d: 0x6c335e20, 0x2d97e: 0x6c336020, 0x2d97f: 0x6c336220, + // Block 0xb66, offset 0x2d980 + 0x2d980: 0x6c4dc020, 0x2d981: 0x6c6f6220, 0x2d982: 0x6c4dc220, 0x2d983: 0x6c4dc420, + 0x2d984: 0x6c4dc620, 0x2d985: 0x6c4dc820, 0x2d986: 0x6c4dca20, 0x2d987: 0x6c4dcc20, + 0x2d988: 0x6c4dce20, 0x2d989: 0x6c4dd020, 0x2d98a: 0x6c4dd220, 0x2d98b: 0x6c6f6420, + 0x2d98c: 0x6c4dd420, 0x2d98d: 0x6c4dd620, 0x2d98e: 0x6c4dd820, 0x2d98f: 0x6c6f6620, + 0x2d990: 0x6c6f6820, 0x2d991: 0x6c4dda20, 0x2d992: 0x6c4ddc20, 0x2d993: 0x6c4dde20, + 0x2d994: 0x6c4de020, 0x2d995: 0x6c6f6a20, 0x2d996: 0x6c6f6c20, 0x2d997: 0x6c4de220, + 0x2d998: 0x6c4de420, 0x2d999: 0x6c6f6e20, 0x2d99a: 0x6c6f7020, 0x2d99b: 0x6c4de620, + 0x2d99c: 0x6c4de820, 0x2d99d: 0x6c6f7220, 0x2d99e: 0x6c4dea20, 0x2d99f: 0x6c4dec20, + 0x2d9a0: 0x6c4dee20, 0x2d9a1: 0x6c4df020, 0x2d9a2: 0x6c4df220, 0x2d9a3: 0x6c6f7420, + 0x2d9a4: 0x6c4df420, 0x2d9a5: 0x6c6f7620, 0x2d9a6: 0x6c4df620, 0x2d9a7: 0x6c6f7820, + 0x2d9a8: 0x6c4df820, 0x2d9a9: 0x6c6f7a20, 0x2d9aa: 0x6c4dfa20, 0x2d9ab: 0x6c4dfc20, + 0x2d9ac: 0x6c4dfe20, 0x2d9ad: 0x6c6f7c20, 0x2d9ae: 0x6c4e0020, 0x2d9af: 0x6c6f7e20, + 0x2d9b0: 0x6c4e0220, 0x2d9b1: 0x6c4e0420, 0x2d9b2: 0x6c4e0620, 0x2d9b3: 0x6c6f8020, + 0x2d9b4: 0x6c6f8220, 0x2d9b5: 0x6c6f8420, 0x2d9b6: 0x6c6f8620, 0x2d9b7: 0x6c6f8820, + 0x2d9b8: 0x6c4e0820, 0x2d9b9: 0x6c4e0a20, 0x2d9ba: 0x6c4e0c20, 0x2d9bb: 0x6c4e0e20, + 0x2d9bc: 0x6c4e1020, 0x2d9bd: 0x6c4e1220, 0x2d9be: 0x6c6f9e20, 0x2d9bf: 0x6c973820, + // Block 0xb67, offset 0x2d9c0 + 0x2d9c0: 0x6c6fa020, 0x2d9c1: 0x6c6fa220, 0x2d9c2: 0x6c6fa420, 0x2d9c3: 0x6c6fa620, + 0x2d9c4: 0x6c6fa820, 0x2d9c5: 0x6c6faa20, 0x2d9c6: 0x6c973a20, 0x2d9c7: 0x6c6fac20, + 0x2d9c8: 0x6c6fae20, 0x2d9c9: 0x6c973c20, 0x2d9ca: 0x6c973e20, 0x2d9cb: 0x6c6fb020, + 0x2d9cc: 0x6c6fb220, 0x2d9cd: 0x6c6fb420, 0x2d9ce: 0x6c6fb620, 0x2d9cf: 0x6c6fb820, + 0x2d9d0: 0x6c974020, 0x2d9d1: 0x6c6fba20, 0x2d9d2: 0x6c6fbc20, 0x2d9d3: 0x6c6fbe20, + 0x2d9d4: 0x6c6fc020, 0x2d9d5: 0x6c6fc220, 0x2d9d6: 0x6c6fc420, 0x2d9d7: 0x6c6fc620, + 0x2d9d8: 0x6c974220, 0x2d9d9: 0x6c6fc820, 0x2d9da: 0x6c6fca20, 0x2d9db: 0x6c6fcc20, + 0x2d9dc: 0x6c6fce20, 0x2d9dd: 0x6c6fd020, 0x2d9de: 0x6c6fd220, 0x2d9df: 0x6c6fd420, + 0x2d9e0: 0x6c974420, 0x2d9e1: 0x6c974620, 0x2d9e2: 0x6c6fd620, 0x2d9e3: 0x6c974820, + 0x2d9e4: 0x6c974a20, 0x2d9e5: 0x6c974c20, 0x2d9e6: 0x6c6fd820, 0x2d9e7: 0x6c6fda20, + 0x2d9e8: 0x6c974e20, 0x2d9e9: 0x6c6fdc20, 0x2d9ea: 0x6c975020, 0x2d9eb: 0x6c975220, + 0x2d9ec: 0x6c975420, 0x2d9ed: 0x6c6fde20, 0x2d9ee: 0x6c6fe020, 0x2d9ef: 0x6c6fe220, + 0x2d9f0: 0x6c977e20, 0x2d9f1: 0x6c978020, 0x2d9f2: 0x6cc31420, 0x2d9f3: 0x6cc31620, + 0x2d9f4: 0x6c978220, 0x2d9f5: 0x6c978420, 0x2d9f6: 0x6cc31820, 0x2d9f7: 0x6c978620, + 0x2d9f8: 0x6c978820, 0x2d9f9: 0x6cc31a20, 0x2d9fa: 0x6c978a20, 0x2d9fb: 0x6c978c20, + 0x2d9fc: 0x6c978e20, 0x2d9fd: 0x6c979020, 0x2d9fe: 0x6c979220, 0x2d9ff: 0x6c979420, + // Block 0xb68, offset 0x2da00 + 0x2da00: 0x6c979620, 0x2da01: 0x6cc31c20, 0x2da02: 0x6c979820, 0x2da03: 0x6c979a20, + 0x2da04: 0x6cc31e20, 0x2da05: 0x6c979c20, 0x2da06: 0x6c979e20, 0x2da07: 0x6c97a020, + 0x2da08: 0x6c97a220, 0x2da09: 0x6cc32020, 0x2da0a: 0x6c97a420, 0x2da0b: 0x6c97a620, + 0x2da0c: 0x6cc32220, 0x2da0d: 0x6c97a820, 0x2da0e: 0x6cc32420, 0x2da0f: 0x6c97aa20, + 0x2da10: 0x6c97ac20, 0x2da11: 0x6cc32620, 0x2da12: 0x6cc32820, 0x2da13: 0x6c97ae20, + 0x2da14: 0x6c97b020, 0x2da15: 0x6c97b220, 0x2da16: 0x6cc32a20, 0x2da17: 0x6c97b420, + 0x2da18: 0x6c97b620, 0x2da19: 0x6c97b820, 0x2da1a: 0x6c97ba20, 0x2da1b: 0x6c97bc20, + 0x2da1c: 0x6c97be20, 0x2da1d: 0x6c97c020, 0x2da1e: 0x6c97c220, 0x2da1f: 0x6c97c420, + 0x2da20: 0x6cc32c20, 0x2da21: 0x6cc32e20, 0x2da22: 0x6cc33020, 0x2da23: 0x6cc33220, + 0x2da24: 0x6c97c620, 0x2da25: 0x6cc33420, 0x2da26: 0x6c97c820, 0x2da27: 0x6c97ca20, + 0x2da28: 0x6c97cc20, 0x2da29: 0x6cc33620, 0x2da2a: 0x6cc33820, 0x2da2b: 0x6cc33a20, + 0x2da2c: 0x6c97ce20, 0x2da2d: 0x6c97d020, 0x2da2e: 0x6c97d220, 0x2da2f: 0x6c97d420, + 0x2da30: 0x6cc35820, 0x2da31: 0x6cc35a20, 0x2da32: 0x6cc35c20, 0x2da33: 0x6cf24a20, + 0x2da34: 0x6cc35e20, 0x2da35: 0x6cc36020, 0x2da36: 0x6cc36220, 0x2da37: 0x6cf24c20, + 0x2da38: 0x6cc36420, 0x2da39: 0x6cf24e20, 0x2da3a: 0x6cc36620, 0x2da3b: 0x6cc36820, + 0x2da3c: 0x6cc36a20, 0x2da3d: 0x6cc36c20, 0x2da3e: 0x6cc36e20, 0x2da3f: 0x6cc37020, + // Block 0xb69, offset 0x2da40 + 0x2da40: 0x6cc37220, 0x2da41: 0x6cf25020, 0x2da42: 0x6cf25220, 0x2da43: 0x6cc37420, + 0x2da44: 0x6cc37620, 0x2da45: 0x6cc37820, 0x2da46: 0x6cf25420, 0x2da47: 0x6cc37a20, + 0x2da48: 0x6cf25620, 0x2da49: 0x6cc37c20, 0x2da4a: 0x6cc37e20, 0x2da4b: 0x6cc38020, + 0x2da4c: 0x6cc38220, 0x2da4d: 0x6cf25820, 0x2da4e: 0x6cc38420, 0x2da4f: 0x6cf25a20, + 0x2da50: 0x6cc38620, 0x2da51: 0x6cc38820, 0x2da52: 0x6cc38a20, 0x2da53: 0x6cc38c20, + 0x2da54: 0x6cc38e20, 0x2da55: 0x6cc39020, 0x2da56: 0x6cc39220, 0x2da57: 0x6cf25c20, + 0x2da58: 0x6cc39420, 0x2da59: 0x6cf25e20, 0x2da5a: 0x6cf26020, 0x2da5b: 0x6cf26220, + 0x2da5c: 0x6cc39620, 0x2da5d: 0x6cc39820, 0x2da5e: 0x6cc39a20, 0x2da5f: 0x6cf26420, + 0x2da60: 0x6cc39c20, 0x2da61: 0x6cc39e20, 0x2da62: 0x6cc3a020, 0x2da63: 0x6cc3a220, + 0x2da64: 0x6cc3a420, 0x2da65: 0x6cc3a620, 0x2da66: 0x6cc3a820, 0x2da67: 0x6cf27820, + 0x2da68: 0x6d221220, 0x2da69: 0x6cf27a20, 0x2da6a: 0x6cf27c20, 0x2da6b: 0x6cf27e20, + 0x2da6c: 0x6d221420, 0x2da6d: 0x6cf28020, 0x2da6e: 0x6cf28220, 0x2da6f: 0x6cf28420, + 0x2da70: 0x6cf28620, 0x2da71: 0x6cf28820, 0x2da72: 0x6cf28a20, 0x2da73: 0x6d221620, + 0x2da74: 0x6cf28c20, 0x2da75: 0x6cf28e20, 0x2da76: 0x6cf29020, 0x2da77: 0x6cf29220, + 0x2da78: 0x6d221820, 0x2da79: 0x6cf29420, 0x2da7a: 0x6cf29620, 0x2da7b: 0x6d221a20, + 0x2da7c: 0x6cf29820, 0x2da7d: 0x6cf29a20, 0x2da7e: 0x6cf29c20, 0x2da7f: 0x6d221c20, + // Block 0xb6a, offset 0x2da80 + 0x2da80: 0x6cf29e20, 0x2da81: 0x6d221e20, 0x2da82: 0x6d222020, 0x2da83: 0x6cf2a020, + 0x2da84: 0x6cf2a220, 0x2da85: 0x6cf2a420, 0x2da86: 0x6cf2a620, 0x2da87: 0x6d222220, + 0x2da88: 0x6d222420, 0x2da89: 0x6cf2a820, 0x2da8a: 0x6cf2aa20, 0x2da8b: 0x6d222620, + 0x2da8c: 0x6cf2ac20, 0x2da8d: 0x6cf2ae20, 0x2da8e: 0x6cf2b020, 0x2da8f: 0x6cf2b220, + 0x2da90: 0x6d222820, 0x2da91: 0x6cf2b420, 0x2da92: 0x6d223c20, 0x2da93: 0x6d223e20, + 0x2da94: 0x6d224020, 0x2da95: 0x6d4f6c20, 0x2da96: 0x6d224220, 0x2da97: 0x6d4f6e20, + 0x2da98: 0x6d224420, 0x2da99: 0x6d4f7020, 0x2da9a: 0x6d224620, 0x2da9b: 0x6d224820, + 0x2da9c: 0x6d4f7220, 0x2da9d: 0x6d4f7420, 0x2da9e: 0x6d224a20, 0x2da9f: 0x6d224c20, + 0x2daa0: 0x6d224e20, 0x2daa1: 0x6d225020, 0x2daa2: 0x6d225220, 0x2daa3: 0x6d225420, + 0x2daa4: 0x6d4f7620, 0x2daa5: 0x6d225620, 0x2daa6: 0x6d4f7820, 0x2daa7: 0x6d4f7a20, + 0x2daa8: 0x6cc3aa20, 0x2daa9: 0x6d225820, 0x2daaa: 0x6d225a20, 0x2daab: 0x6d4f7c20, + 0x2daac: 0x6d225c20, 0x2daad: 0x6d4fb020, 0x2daae: 0x6d4f7e20, 0x2daaf: 0x6d225e20, + 0x2dab0: 0x6d4f8020, 0x2dab1: 0x6d226020, 0x2dab2: 0x6d226220, 0x2dab3: 0x6d226420, + 0x2dab4: 0x6d226620, 0x2dab5: 0x6d226820, 0x2dab6: 0x6d4f8220, 0x2dab7: 0x6d226a20, + 0x2dab8: 0x6d4f8420, 0x2dab9: 0x6d4f8620, 0x2daba: 0x6d226c20, 0x2dabb: 0x6d226e20, + 0x2dabc: 0x6d4f8820, 0x2dabd: 0x6d227020, 0x2dabe: 0x6d4f8a20, 0x2dabf: 0x6d4f8c20, + // Block 0xb6b, offset 0x2dac0 + 0x2dac0: 0x6d227220, 0x2dac1: 0x6d227420, 0x2dac2: 0x6d4f8e20, 0x2dac3: 0x6d4f9020, + 0x2dac4: 0x6d4f9220, 0x2dac5: 0x6d4f9420, 0x2dac6: 0x6d227620, 0x2dac7: 0x6d4f9620, + 0x2dac8: 0x6d227820, 0x2dac9: 0x6d4fb220, 0x2daca: 0x6d7bb620, 0x2dacb: 0x6d4fb420, + 0x2dacc: 0x6d7bb820, 0x2dacd: 0x6d4fb620, 0x2dace: 0x6d4fb820, 0x2dacf: 0x6d4fba20, + 0x2dad0: 0x6d4fbc20, 0x2dad1: 0x6d7bba20, 0x2dad2: 0x6d4fbe20, 0x2dad3: 0x6d4fc020, + 0x2dad4: 0x6d4fc220, 0x2dad5: 0x6d4fc420, 0x2dad6: 0x6d7bbc20, 0x2dad7: 0x6d7bbe20, + 0x2dad8: 0x6d4fc620, 0x2dad9: 0x6d7bc020, 0x2dada: 0x6d4fc820, 0x2dadb: 0x6d4fca20, + 0x2dadc: 0x6d4fcc20, 0x2dadd: 0x6d7bc220, 0x2dade: 0x6d4fce20, 0x2dadf: 0x6d4fd020, + 0x2dae0: 0x6d7bc420, 0x2dae1: 0x6d4fd220, 0x2dae2: 0x6d4fd420, 0x2dae3: 0x6d4fd620, + 0x2dae4: 0x6d4fd820, 0x2dae5: 0x6d7bc620, 0x2dae6: 0x6d4fda20, 0x2dae7: 0x6d4fdc20, + 0x2dae8: 0x6d7bc820, 0x2dae9: 0x6d7bca20, 0x2daea: 0x6d4fde20, 0x2daeb: 0x6d4fe020, + 0x2daec: 0x6d4fe220, 0x2daed: 0x6d4fe420, 0x2daee: 0x6d4fe620, 0x2daef: 0x6d4fe820, + 0x2daf0: 0x6d4fea20, 0x2daf1: 0x6d4fec20, 0x2daf2: 0x6d7bcc20, 0x2daf3: 0x6d4fee20, + 0x2daf4: 0x6d7bd220, 0x2daf5: 0x6da3d620, 0x2daf6: 0x6d7bd420, 0x2daf7: 0x6d7bd620, + 0x2daf8: 0x6d7bd820, 0x2daf9: 0x6d7bda20, 0x2dafa: 0x6d7bdc20, 0x2dafb: 0x6d7c8e20, + 0x2dafc: 0x6da3d820, 0x2dafd: 0x6d7bde20, 0x2dafe: 0x6d7be020, 0x2daff: 0x6d7be220, + // Block 0xb6c, offset 0x2db00 + 0x2db00: 0x6d7be420, 0x2db01: 0x6d7be620, 0x2db02: 0x6da3da20, 0x2db03: 0x6da3dc20, + 0x2db04: 0x6d7be820, 0x2db05: 0x6d7bea20, 0x2db06: 0x6d7bec20, 0x2db07: 0x6da3de20, + 0x2db08: 0x6d7bee20, 0x2db09: 0x6da3e020, 0x2db0a: 0x6d7bf020, 0x2db0b: 0x6da3e220, + 0x2db0c: 0x6d7bf220, 0x2db0d: 0x6d7bf420, 0x2db0e: 0x6d7bf620, 0x2db0f: 0x6d7bf820, + 0x2db10: 0x6d7bfa20, 0x2db11: 0x6da3e420, 0x2db12: 0x6d7bfc20, 0x2db13: 0x6d7bfe20, + 0x2db14: 0x6d7c0020, 0x2db15: 0x6dc57e20, 0x2db16: 0x6dc58020, 0x2db17: 0x6da3ea20, + 0x2db18: 0x6dc58220, 0x2db19: 0x6da3ec20, 0x2db1a: 0x6da3ee20, 0x2db1b: 0x6da3f020, + 0x2db1c: 0x6da3f220, 0x2db1d: 0x6da3f420, 0x2db1e: 0x6da3f620, 0x2db1f: 0x6dc58420, + 0x2db20: 0x6da3f820, 0x2db21: 0x6da3fa20, 0x2db22: 0x6da3fc20, 0x2db23: 0x6dc58620, + 0x2db24: 0x6da3fe20, 0x2db25: 0x6da40020, 0x2db26: 0x6da40220, 0x2db27: 0x6da40420, + 0x2db28: 0x6da40620, 0x2db29: 0x6dc58c20, 0x2db2a: 0x6dc58e20, 0x2db2b: 0x6dc59020, + 0x2db2c: 0x6de27e20, 0x2db2d: 0x6dc59220, 0x2db2e: 0x6dc59420, 0x2db2f: 0x6de28020, + 0x2db30: 0x6dc59620, 0x2db31: 0x6dc59820, 0x2db32: 0x6de28220, 0x2db33: 0x6dc59a20, + 0x2db34: 0x6dc59c20, 0x2db35: 0x6de28a20, 0x2db36: 0x6de28c20, 0x2db37: 0x6de28e20, + 0x2db38: 0x6dfa2e20, 0x2db39: 0x6dfa3620, 0x2db3a: 0x6dfa3820, 0x2db3b: 0x6de2de20, + 0x2db3c: 0x6e0dc020, 0x2db3d: 0x6e0dc220, 0x2db3e: 0x6e0dc420, 0x2db3f: 0x6e1d3220, + // Block 0xb6d, offset 0x2db40 + 0x2db40: 0x6e28d020, 0x2db41: 0x6e28d220, 0x2db42: 0x6e1d3820, 0x2db43: 0x6e28d420, + 0x2db44: 0x6e28d620, 0x2db45: 0x6e388a20, 0x2db46: 0x6e388c20, 0x2db47: 0x6e429820, + 0x2db48: 0x6c046c20, 0x2db49: 0x6c092020, 0x2db4a: 0x6c092220, 0x2db4b: 0x6c092420, + 0x2db4c: 0x6c11ba20, 0x2db4d: 0x6c11bc20, 0x2db4e: 0x6c11be20, 0x2db4f: 0x6c11c020, + 0x2db50: 0x6c11c220, 0x2db51: 0x6c200020, 0x2db52: 0x6c200220, 0x2db53: 0x6c200420, + 0x2db54: 0x6c33e220, 0x2db55: 0x6c33e420, 0x2db56: 0x6c33e620, 0x2db57: 0x6c33e820, + 0x2db58: 0x6c4ea020, 0x2db59: 0x6c709c20, 0x2db5a: 0x6c98b820, 0x2db5b: 0x6c98ba20, + 0x2db5c: 0x6c98bc20, 0x2db5d: 0x6c98be20, 0x2db5e: 0x6cc49020, 0x2db5f: 0x6cc49220, + 0x2db60: 0x6cf37820, 0x2db61: 0x6cf37a20, 0x2db62: 0x6cf37c20, 0x2db63: 0x6cf37e20, + 0x2db64: 0x6cf38020, 0x2db65: 0x6cf38220, 0x2db66: 0x6cf37420, 0x2db67: 0x6d233420, + 0x2db68: 0x6d233620, 0x2db69: 0x6d233820, 0x2db6a: 0x6d233a20, 0x2db6b: 0x6d233c20, + 0x2db6c: 0x6d233e20, 0x2db6d: 0x6d50c220, 0x2db6e: 0x6d50c420, 0x2db6f: 0x6d50c620, + 0x2db70: 0x6d7c9220, 0x2db71: 0x6d7c9020, 0x2db72: 0x6da46a20, 0x2db73: 0x6dc60020, + 0x2db74: 0x6da46c20, 0x2db75: 0x6e1d5220, 0x2db76: 0x6c046e20, 0x2db77: 0x6c047020, + 0x2db78: 0x6c047220, 0x2db79: 0x6c092c20, 0x2db7a: 0x6c201820, 0x2db7b: 0x6c201a20, + 0x2db7c: 0x6c201c20, 0x2db7d: 0x6c340620, 0x2db7e: 0x6c340820, 0x2db7f: 0x6c340a20, + // Block 0xb6e, offset 0x2db80 + 0x2db80: 0x6c340c20, 0x2db81: 0x6c4ecc20, 0x2db82: 0x6c4ece20, 0x2db83: 0x6c4ed020, + 0x2db84: 0x6c70b220, 0x2db85: 0x6c70b420, 0x2db86: 0x6c70b620, 0x2db87: 0x6c70b820, + 0x2db88: 0x6c98d620, 0x2db89: 0x6cc4ae20, 0x2db8a: 0x6cc4b020, 0x2db8b: 0x6c047420, + 0x2db8c: 0x6c01f420, 0x2db8d: 0x6c01f620, 0x2db8e: 0x6c047620, 0x2db8f: 0x6c095020, + 0x2db90: 0x6c093820, 0x2db91: 0x6c093a20, 0x2db92: 0x6c093c20, 0x2db93: 0x6c093e20, + 0x2db94: 0x6c094020, 0x2db95: 0x6c094220, 0x2db96: 0x6c094420, 0x2db97: 0x6c11dc20, + 0x2db98: 0x6c11de20, 0x2db99: 0x6c11e020, 0x2db9a: 0x6c11e220, 0x2db9b: 0x6c11e420, + 0x2db9c: 0x6c11e620, 0x2db9d: 0x6c11e820, 0x2db9e: 0x6c11ea20, 0x2db9f: 0x6c123420, + 0x2dba0: 0x6c11ec20, 0x2dba1: 0x6c11ee20, 0x2dba2: 0x6c11f020, 0x2dba3: 0x6c11f220, + 0x2dba4: 0x6c11f420, 0x2dba5: 0x6c11f620, 0x2dba6: 0x6c11f820, 0x2dba7: 0x6c11fa20, + 0x2dba8: 0x6c11fc20, 0x2dba9: 0x6c11fe20, 0x2dbaa: 0x6c120020, 0x2dbab: 0x6c120220, + 0x2dbac: 0x6c120420, 0x2dbad: 0x6c203a20, 0x2dbae: 0x6c203c20, 0x2dbaf: 0x6c203e20, + 0x2dbb0: 0x6c204020, 0x2dbb1: 0x6c204220, 0x2dbb2: 0x6c204420, 0x2dbb3: 0x6c204620, + 0x2dbb4: 0x6c204820, 0x2dbb5: 0x6c204a20, 0x2dbb6: 0x6c204c20, 0x2dbb7: 0x6c204e20, + 0x2dbb8: 0x6c211820, 0x2dbb9: 0x6c205020, 0x2dbba: 0x6c205220, 0x2dbbb: 0x6c205420, + 0x2dbbc: 0x6c205620, 0x2dbbd: 0x6c205820, 0x2dbbe: 0x6c205a20, 0x2dbbf: 0x6c341c20, + // Block 0xb6f, offset 0x2dbc0 + 0x2dbc0: 0x6c205c20, 0x2dbc1: 0x6c205e20, 0x2dbc2: 0x6c206020, 0x2dbc3: 0x6c206220, + 0x2dbc4: 0x6c206420, 0x2dbc5: 0x6c206620, 0x2dbc6: 0x6c206820, 0x2dbc7: 0x6c206a20, + 0x2dbc8: 0x6c206c20, 0x2dbc9: 0x6c206e20, 0x2dbca: 0x6c207020, 0x2dbcb: 0x6c207220, + 0x2dbcc: 0x6c207420, 0x2dbcd: 0x6c207620, 0x2dbce: 0x6c207820, 0x2dbcf: 0x6c207a20, + 0x2dbd0: 0x6c207c20, 0x2dbd1: 0x6c207e20, 0x2dbd2: 0x6c208020, 0x2dbd3: 0x6c208220, + 0x2dbd4: 0x6c208420, 0x2dbd5: 0x6c208620, 0x2dbd6: 0x6c208820, 0x2dbd7: 0x6c208a20, + 0x2dbd8: 0x6c208c20, 0x2dbd9: 0x6c208e20, 0x2dbda: 0x6c209020, 0x2dbdb: 0x6c209220, + 0x2dbdc: 0x6c209420, 0x2dbdd: 0x6c209620, 0x2dbde: 0x6c209820, 0x2dbdf: 0x6c209a20, + 0x2dbe0: 0x6c209c20, 0x2dbe1: 0x6c209e20, 0x2dbe2: 0x6c20a020, 0x2dbe3: 0x6c20a220, + 0x2dbe4: 0x6c20a420, 0x2dbe5: 0x6c20a620, 0x2dbe6: 0x6c343a20, 0x2dbe7: 0x6c343c20, + 0x2dbe8: 0x6c343e20, 0x2dbe9: 0x6c344020, 0x2dbea: 0x6c344220, 0x2dbeb: 0x6c344420, + 0x2dbec: 0x6c344620, 0x2dbed: 0x6c344820, 0x2dbee: 0x6c344a20, 0x2dbef: 0x6c344c20, + 0x2dbf0: 0x6c344e20, 0x2dbf1: 0x6c345020, 0x2dbf2: 0x6c345220, 0x2dbf3: 0x6c345420, + 0x2dbf4: 0x6c345620, 0x2dbf5: 0x6c345820, 0x2dbf6: 0x6c345a20, 0x2dbf7: 0x6c345c20, + 0x2dbf8: 0x6c345e20, 0x2dbf9: 0x6c346020, 0x2dbfa: 0x6c346220, 0x2dbfb: 0x6c346420, + 0x2dbfc: 0x6c346620, 0x2dbfd: 0x6c346820, 0x2dbfe: 0x6c346a20, 0x2dbff: 0x6c346c20, + // Block 0xb70, offset 0x2dc00 + 0x2dc00: 0x6c346e20, 0x2dc01: 0x6c347020, 0x2dc02: 0x6c347220, 0x2dc03: 0x6c347420, + 0x2dc04: 0x6c347620, 0x2dc05: 0x6c347820, 0x2dc06: 0x6c347a20, 0x2dc07: 0x6c347c20, + 0x2dc08: 0x6c347e20, 0x2dc09: 0x6c348020, 0x2dc0a: 0x6c348220, 0x2dc0b: 0x6c348420, + 0x2dc0c: 0x6c348620, 0x2dc0d: 0x6c348820, 0x2dc0e: 0x6c348a20, 0x2dc0f: 0x6c4ef420, + 0x2dc10: 0x6c348c20, 0x2dc11: 0x6c348e20, 0x2dc12: 0x6c349020, 0x2dc13: 0x6c349220, + 0x2dc14: 0x6c349420, 0x2dc15: 0x6c349620, 0x2dc16: 0x6c349820, 0x2dc17: 0x6c349a20, + 0x2dc18: 0x6c349c20, 0x2dc19: 0x6c349e20, 0x2dc1a: 0x6c34a020, 0x2dc1b: 0x6c34a220, + 0x2dc1c: 0x6c4ef620, 0x2dc1d: 0x6c34a420, 0x2dc1e: 0x6c34a620, 0x2dc1f: 0x6c34a820, + 0x2dc20: 0x6c34aa20, 0x2dc21: 0x6c34ac20, 0x2dc22: 0x6c34ae20, 0x2dc23: 0x6c34b020, + 0x2dc24: 0x6c34b220, 0x2dc25: 0x6c34b420, 0x2dc26: 0x6c34b620, 0x2dc27: 0x6c34b820, + 0x2dc28: 0x6c34ba20, 0x2dc29: 0x6c34bc20, 0x2dc2a: 0x6c4f1420, 0x2dc2b: 0x6c4f1620, + 0x2dc2c: 0x6c4f1820, 0x2dc2d: 0x6c4f1a20, 0x2dc2e: 0x6c4f1c20, 0x2dc2f: 0x6c4f1e20, + 0x2dc30: 0x6c4f2020, 0x2dc31: 0x6c4f2220, 0x2dc32: 0x6c70d020, 0x2dc33: 0x6c70d220, + 0x2dc34: 0x6c4f2420, 0x2dc35: 0x6c4f2620, 0x2dc36: 0x6c4f2820, 0x2dc37: 0x6c4f2a20, + 0x2dc38: 0x6c4f2c20, 0x2dc39: 0x6c4f2e20, 0x2dc3a: 0x6c4f3020, 0x2dc3b: 0x6c4f3220, + 0x2dc3c: 0x6c4f3420, 0x2dc3d: 0x6c4f3620, 0x2dc3e: 0x6c4f3820, 0x2dc3f: 0x6c70d420, + // Block 0xb71, offset 0x2dc40 + 0x2dc40: 0x6c4f3a20, 0x2dc41: 0x6c4f3c20, 0x2dc42: 0x6c4f3e20, 0x2dc43: 0x6c4f4020, + 0x2dc44: 0x6c4f4220, 0x2dc45: 0x6c4f4420, 0x2dc46: 0x6c4f4620, 0x2dc47: 0x6c4f4820, + 0x2dc48: 0x6c70d620, 0x2dc49: 0x6c4f4a20, 0x2dc4a: 0x6c4f4c20, 0x2dc4b: 0x6c4f4e20, + 0x2dc4c: 0x6c4f5020, 0x2dc4d: 0x6c4f5220, 0x2dc4e: 0x6c4f5420, 0x2dc4f: 0x6c4f5620, + 0x2dc50: 0x6c70d820, 0x2dc51: 0x6c4f5820, 0x2dc52: 0x6c4f5a20, 0x2dc53: 0x6c4f5c20, + 0x2dc54: 0x6c4f5e20, 0x2dc55: 0x6c4f6020, 0x2dc56: 0x6c4f6220, 0x2dc57: 0x6c4f6420, + 0x2dc58: 0x6c4f6620, 0x2dc59: 0x6c70da20, 0x2dc5a: 0x6c70dc20, 0x2dc5b: 0x6c70de20, + 0x2dc5c: 0x6c4f6820, 0x2dc5d: 0x6c4f6a20, 0x2dc5e: 0x6c4f6c20, 0x2dc5f: 0x6c4f6e20, + 0x2dc60: 0x6c4f7020, 0x2dc61: 0x6c4f7220, 0x2dc62: 0x6c4f7420, 0x2dc63: 0x6c4f7620, + 0x2dc64: 0x6c4f7820, 0x2dc65: 0x6c4f7a20, 0x2dc66: 0x6c4f7c20, 0x2dc67: 0x6c4f7e20, + 0x2dc68: 0x6c70ec20, 0x2dc69: 0x6c70ee20, 0x2dc6a: 0x6c70f020, 0x2dc6b: 0x6c70f220, + 0x2dc6c: 0x6c70f420, 0x2dc6d: 0x6c70f620, 0x2dc6e: 0x6c70f820, 0x2dc6f: 0x6c70fa20, + 0x2dc70: 0x6c70fc20, 0x2dc71: 0x6c70fe20, 0x2dc72: 0x6c98e420, 0x2dc73: 0x6c710020, + 0x2dc74: 0x6c710220, 0x2dc75: 0x6c710420, 0x2dc76: 0x6c710620, 0x2dc77: 0x6c710820, + 0x2dc78: 0x6c710a20, 0x2dc79: 0x6c710c20, 0x2dc7a: 0x6c710e20, 0x2dc7b: 0x6c98e620, + 0x2dc7c: 0x6c711020, 0x2dc7d: 0x6c711220, 0x2dc7e: 0x6c711420, 0x2dc7f: 0x6c711620, + // Block 0xb72, offset 0x2dc80 + 0x2dc80: 0x6c711820, 0x2dc81: 0x6c711a20, 0x2dc82: 0x6c711c20, 0x2dc83: 0x6c711e20, + 0x2dc84: 0x6c712020, 0x2dc85: 0x6c712220, 0x2dc86: 0x6c712420, 0x2dc87: 0x6c712620, + 0x2dc88: 0x6c712820, 0x2dc89: 0x6c712a20, 0x2dc8a: 0x6c712c20, 0x2dc8b: 0x6c712e20, + 0x2dc8c: 0x6c713020, 0x2dc8d: 0x6c713220, 0x2dc8e: 0x6c713420, 0x2dc8f: 0x6c713620, + 0x2dc90: 0x6c713820, 0x2dc91: 0x6c713a20, 0x2dc92: 0x6c713c20, 0x2dc93: 0x6c713e20, + 0x2dc94: 0x6c714020, 0x2dc95: 0x6c714220, 0x2dc96: 0x6c714420, 0x2dc97: 0x6c714620, + 0x2dc98: 0x6c714820, 0x2dc99: 0x6c714a20, 0x2dc9a: 0x6c714c20, 0x2dc9b: 0x6c714e20, + 0x2dc9c: 0x6c715020, 0x2dc9d: 0x6c715220, 0x2dc9e: 0x6c715420, 0x2dc9f: 0x6c715620, + 0x2dca0: 0x6c715820, 0x2dca1: 0x6c715a20, 0x2dca2: 0x6c715c20, 0x2dca3: 0x6c715e20, + 0x2dca4: 0x6c716020, 0x2dca5: 0x6c990620, 0x2dca6: 0x6c990820, 0x2dca7: 0x6c990a20, + 0x2dca8: 0x6c990c20, 0x2dca9: 0x6c990e20, 0x2dcaa: 0x6c991020, 0x2dcab: 0x6c991220, + 0x2dcac: 0x6c991420, 0x2dcad: 0x6c991620, 0x2dcae: 0x6c991820, 0x2dcaf: 0x6c991a20, + 0x2dcb0: 0x6c991c20, 0x2dcb1: 0x6c991e20, 0x2dcb2: 0x6c992020, 0x2dcb3: 0x6c992220, + 0x2dcb4: 0x6c992420, 0x2dcb5: 0x6c992620, 0x2dcb6: 0x6c992820, 0x2dcb7: 0x6c992a20, + 0x2dcb8: 0x6c992c20, 0x2dcb9: 0x6c992e20, 0x2dcba: 0x6c993020, 0x2dcbb: 0x6c993220, + 0x2dcbc: 0x6c993420, 0x2dcbd: 0x6c993620, 0x2dcbe: 0x6c993820, 0x2dcbf: 0x6c993a20, + // Block 0xb73, offset 0x2dcc0 + 0x2dcc0: 0x6c993c20, 0x2dcc1: 0x6c993e20, 0x2dcc2: 0x6c994020, 0x2dcc3: 0x6c994220, + 0x2dcc4: 0x6c994420, 0x2dcc5: 0x6c994620, 0x2dcc6: 0x6c994820, 0x2dcc7: 0x6c994a20, + 0x2dcc8: 0x6c994c20, 0x2dcc9: 0x6c994e20, 0x2dcca: 0x6c995020, 0x2dccb: 0x6c995220, + 0x2dccc: 0x6cc4be20, 0x2dccd: 0x6c995420, 0x2dcce: 0x6c995620, 0x2dccf: 0x6c995820, + 0x2dcd0: 0x6c995a20, 0x2dcd1: 0x6c995c20, 0x2dcd2: 0x6c995e20, 0x2dcd3: 0x6c996020, + 0x2dcd4: 0x6cc4c020, 0x2dcd5: 0x6c996220, 0x2dcd6: 0x6c996420, 0x2dcd7: 0x6c996620, + 0x2dcd8: 0x6c996820, 0x2dcd9: 0x6c996a20, 0x2dcda: 0x6c996c20, 0x2dcdb: 0x6c996e20, + 0x2dcdc: 0x6c997020, 0x2dcdd: 0x6c997220, 0x2dcde: 0x6c997420, 0x2dcdf: 0x6c997620, + 0x2dce0: 0x6c997820, 0x2dce1: 0x6c997a20, 0x2dce2: 0x6c997c20, 0x2dce3: 0x6cc4c220, + 0x2dce4: 0x6c997e20, 0x2dce5: 0x6c998020, 0x2dce6: 0x6c998220, 0x2dce7: 0x6c998420, + 0x2dce8: 0x6c998620, 0x2dce9: 0x6c998820, 0x2dcea: 0x6c998a20, 0x2dceb: 0x6c998c20, + 0x2dcec: 0x6c998e20, 0x2dced: 0x6c999020, 0x2dcee: 0x6c999220, 0x2dcef: 0x6c999420, + 0x2dcf0: 0x6cc4c420, 0x2dcf1: 0x6cc4c620, 0x2dcf2: 0x6c9a9220, 0x2dcf3: 0x6c999620, + 0x2dcf4: 0x6c999820, 0x2dcf5: 0x6c999a20, 0x2dcf6: 0x6c999c20, 0x2dcf7: 0x6c999e20, + 0x2dcf8: 0x6c99a020, 0x2dcf9: 0x6c99a220, 0x2dcfa: 0x6c99a420, 0x2dcfb: 0x6c99a620, + 0x2dcfc: 0x6c99a820, 0x2dcfd: 0x6c99aa20, 0x2dcfe: 0x6cc4e220, 0x2dcff: 0x6cc4e420, + // Block 0xb74, offset 0x2dd00 + 0x2dd00: 0x6cc4e620, 0x2dd01: 0x6cc4e820, 0x2dd02: 0x6cc4ea20, 0x2dd03: 0x6cc4ec20, + 0x2dd04: 0x6cc4ee20, 0x2dd05: 0x6cf51c20, 0x2dd06: 0x6cc4f020, 0x2dd07: 0x6cc4f220, + 0x2dd08: 0x6cc4f420, 0x2dd09: 0x6cc4f620, 0x2dd0a: 0x6cc4f820, 0x2dd0b: 0x6cc4fa20, + 0x2dd0c: 0x6cc4fc20, 0x2dd0d: 0x6cc4fe20, 0x2dd0e: 0x6cc50020, 0x2dd0f: 0x6cc50220, + 0x2dd10: 0x6cc50420, 0x2dd11: 0x6cc50620, 0x2dd12: 0x6cc50820, 0x2dd13: 0x6cc50a20, + 0x2dd14: 0x6cc50c20, 0x2dd15: 0x6cc50e20, 0x2dd16: 0x6cc51020, 0x2dd17: 0x6cc51220, + 0x2dd18: 0x6cc51420, 0x2dd19: 0x6cc51620, 0x2dd1a: 0x6cc51820, 0x2dd1b: 0x6cc51a20, + 0x2dd1c: 0x6cc51c20, 0x2dd1d: 0x6cc51e20, 0x2dd1e: 0x6cc52020, 0x2dd1f: 0x6cc52220, + 0x2dd20: 0x6cc52420, 0x2dd21: 0x6cc52620, 0x2dd22: 0x6cc52820, 0x2dd23: 0x6cc52a20, + 0x2dd24: 0x6c722020, 0x2dd25: 0x6cc52c20, 0x2dd26: 0x6cc52e20, 0x2dd27: 0x6cf3ac20, + 0x2dd28: 0x6cc53020, 0x2dd29: 0x6cc53220, 0x2dd2a: 0x6cc53420, 0x2dd2b: 0x6cf3ae20, + 0x2dd2c: 0x6cc53620, 0x2dd2d: 0x6cc53820, 0x2dd2e: 0x6cc53a20, 0x2dd2f: 0x6cc53c20, + 0x2dd30: 0x6cc53e20, 0x2dd31: 0x6cf3b020, 0x2dd32: 0x6cc54020, 0x2dd33: 0x6cc54220, + 0x2dd34: 0x6cc54420, 0x2dd35: 0x6cc54620, 0x2dd36: 0x6cc54820, 0x2dd37: 0x6cc54a20, + 0x2dd38: 0x6cc54c20, 0x2dd39: 0x6cc54e20, 0x2dd3a: 0x6cc55020, 0x2dd3b: 0x6cc55220, + 0x2dd3c: 0x6cc55420, 0x2dd3d: 0x6cc55620, 0x2dd3e: 0x6cc55820, 0x2dd3f: 0x6cc55a20, + // Block 0xb75, offset 0x2dd40 + 0x2dd40: 0x6cc55c20, 0x2dd41: 0x6cc55e20, 0x2dd42: 0x6cc56020, 0x2dd43: 0x6cc56220, + 0x2dd44: 0x6cc56420, 0x2dd45: 0x6cc56620, 0x2dd46: 0x6cf3da20, 0x2dd47: 0x6cf3dc20, + 0x2dd48: 0x6cf3de20, 0x2dd49: 0x6cf3e020, 0x2dd4a: 0x6cf3e220, 0x2dd4b: 0x6cf3e420, + 0x2dd4c: 0x6cf3e620, 0x2dd4d: 0x6cf3e820, 0x2dd4e: 0x6cf3ea20, 0x2dd4f: 0x6cf3ec20, + 0x2dd50: 0x6cf3ee20, 0x2dd51: 0x6cf3f020, 0x2dd52: 0x6cf3f220, 0x2dd53: 0x6cf3f420, + 0x2dd54: 0x6cf3f620, 0x2dd55: 0x6cf3f820, 0x2dd56: 0x6cf3fa20, 0x2dd57: 0x6cf3fc20, + 0x2dd58: 0x6cf3fe20, 0x2dd59: 0x6cf40020, 0x2dd5a: 0x6cf40220, 0x2dd5b: 0x6cf40420, + 0x2dd5c: 0x6cf40620, 0x2dd5d: 0x6cf40820, 0x2dd5e: 0x6cf40a20, 0x2dd5f: 0x6cf40c20, + 0x2dd60: 0x6cf40e20, 0x2dd61: 0x6cf41020, 0x2dd62: 0x6cf41220, 0x2dd63: 0x6cf41420, + 0x2dd64: 0x6cf41620, 0x2dd65: 0x6cf41820, 0x2dd66: 0x6cf41a20, 0x2dd67: 0x6cf41c20, + 0x2dd68: 0x6cf41e20, 0x2dd69: 0x6cf42020, 0x2dd6a: 0x6cf42220, 0x2dd6b: 0x6d236a20, + 0x2dd6c: 0x6cf42420, 0x2dd6d: 0x6cf42620, 0x2dd6e: 0x6cf42820, 0x2dd6f: 0x6cf42a20, + 0x2dd70: 0x6cf42c20, 0x2dd71: 0x6cf51e20, 0x2dd72: 0x6cf42e20, 0x2dd73: 0x6cf43020, + 0x2dd74: 0x6d236c20, 0x2dd75: 0x6cf43220, 0x2dd76: 0x6cf43420, 0x2dd77: 0x6cf43620, + 0x2dd78: 0x6cf43820, 0x2dd79: 0x6cf43a20, 0x2dd7a: 0x6cf43c20, 0x2dd7b: 0x6d236e20, + 0x2dd7c: 0x6cf43e20, 0x2dd7d: 0x6cf44020, 0x2dd7e: 0x6cf44220, 0x2dd7f: 0x6d237020, + // Block 0xb76, offset 0x2dd80 + 0x2dd80: 0x6cf44420, 0x2dd81: 0x6cf44620, 0x2dd82: 0x6cf44820, 0x2dd83: 0x6cf44a20, + 0x2dd84: 0x6cf44c20, 0x2dd85: 0x6cf44e20, 0x2dd86: 0x6cf45020, 0x2dd87: 0x6cf45220, + 0x2dd88: 0x6cf45420, 0x2dd89: 0x6cf45620, 0x2dd8a: 0x6cf45820, 0x2dd8b: 0x6d239a20, + 0x2dd8c: 0x6d239c20, 0x2dd8d: 0x6d239e20, 0x2dd8e: 0x6d23a020, 0x2dd8f: 0x6d23a220, + 0x2dd90: 0x6d23a420, 0x2dd91: 0x6d23a620, 0x2dd92: 0x6cc56820, 0x2dd93: 0x6d23a820, + 0x2dd94: 0x6d23aa20, 0x2dd95: 0x6d23ac20, 0x2dd96: 0x6d24e620, 0x2dd97: 0x6d23ae20, + 0x2dd98: 0x6d23b020, 0x2dd99: 0x6d23b220, 0x2dd9a: 0x6d23b420, 0x2dd9b: 0x6d23b620, + 0x2dd9c: 0x6d23b820, 0x2dd9d: 0x6d23ba20, 0x2dd9e: 0x6d23bc20, 0x2dd9f: 0x6d23be20, + 0x2dda0: 0x6d23c020, 0x2dda1: 0x6cc66e20, 0x2dda2: 0x6d23c220, 0x2dda3: 0x6d23c420, + 0x2dda4: 0x6d23c620, 0x2dda5: 0x6d23c820, 0x2dda6: 0x6d23ca20, 0x2dda7: 0x6d23cc20, + 0x2dda8: 0x6d510020, 0x2dda9: 0x6d510220, 0x2ddaa: 0x6d23ce20, 0x2ddab: 0x6d23d020, + 0x2ddac: 0x6d23d220, 0x2ddad: 0x6d23d420, 0x2ddae: 0x6d510420, 0x2ddaf: 0x6d510620, + 0x2ddb0: 0x6d510820, 0x2ddb1: 0x6d23d620, 0x2ddb2: 0x6d23d820, 0x2ddb3: 0x6d23da20, + 0x2ddb4: 0x6d23dc20, 0x2ddb5: 0x6d23de20, 0x2ddb6: 0x6d23e020, 0x2ddb7: 0x6d23e220, + 0x2ddb8: 0x6d23e420, 0x2ddb9: 0x6d510a20, 0x2ddba: 0x6d23e620, 0x2ddbb: 0x6d23e820, + 0x2ddbc: 0x6d23ea20, 0x2ddbd: 0x6d23ec20, 0x2ddbe: 0x6d23ee20, 0x2ddbf: 0x6d23f020, + // Block 0xb77, offset 0x2ddc0 + 0x2ddc0: 0x6d510c20, 0x2ddc1: 0x6d23f220, 0x2ddc2: 0x6d23f420, 0x2ddc3: 0x6d510e20, + 0x2ddc4: 0x6d23f620, 0x2ddc5: 0x6d512e20, 0x2ddc6: 0x6d513020, 0x2ddc7: 0x6d23f820, + 0x2ddc8: 0x6d513220, 0x2ddc9: 0x6d7cb220, 0x2ddca: 0x6d513420, 0x2ddcb: 0x6d513620, + 0x2ddcc: 0x6d513820, 0x2ddcd: 0x6d513a20, 0x2ddce: 0x6d513c20, 0x2ddcf: 0x6d513e20, + 0x2ddd0: 0x6d514020, 0x2ddd1: 0x6d514220, 0x2ddd2: 0x6d514420, 0x2ddd3: 0x6d514620, + 0x2ddd4: 0x6d514820, 0x2ddd5: 0x6d514a20, 0x2ddd6: 0x6d514c20, 0x2ddd7: 0x6d514e20, + 0x2ddd8: 0x6d515020, 0x2ddd9: 0x6d515220, 0x2ddda: 0x6d515420, 0x2dddb: 0x6d515620, + 0x2dddc: 0x6d515820, 0x2dddd: 0x6d515a20, 0x2ddde: 0x6d515c20, 0x2dddf: 0x6d515e20, + 0x2dde0: 0x6d516020, 0x2dde1: 0x6d516220, 0x2dde2: 0x6d516420, 0x2dde3: 0x6d516620, + 0x2dde4: 0x6d516820, 0x2dde5: 0x6d516a20, 0x2dde6: 0x6d24e820, 0x2dde7: 0x6d516c20, + 0x2dde8: 0x6d516e20, 0x2dde9: 0x6d517020, 0x2ddea: 0x6d517220, 0x2ddeb: 0x6d517420, + 0x2ddec: 0x6d517620, 0x2dded: 0x6d517820, 0x2ddee: 0x6d517a20, 0x2ddef: 0x6d517c20, + 0x2ddf0: 0x6d517e20, 0x2ddf1: 0x6d518020, 0x2ddf2: 0x6d518220, 0x2ddf3: 0x6d518420, + 0x2ddf4: 0x6d518620, 0x2ddf5: 0x6d518820, 0x2ddf6: 0x6d518a20, 0x2ddf7: 0x6d518c20, + 0x2ddf8: 0x6d518e20, 0x2ddf9: 0x6d519020, 0x2ddfa: 0x6d519220, 0x2ddfb: 0x6d7cc220, + 0x2ddfc: 0x6d7cc420, 0x2ddfd: 0x6d7cc620, 0x2ddfe: 0x6d7cc820, 0x2ddff: 0x6d7cca20, + // Block 0xb78, offset 0x2de00 + 0x2de00: 0x6d7ccc20, 0x2de01: 0x6d7cce20, 0x2de02: 0x6d7cd020, 0x2de03: 0x6d7cd220, + 0x2de04: 0x6d7cd420, 0x2de05: 0x6d7cd620, 0x2de06: 0x6d519420, 0x2de07: 0x6d7cd820, + 0x2de08: 0x6d7cda20, 0x2de09: 0x6d7cdc20, 0x2de0a: 0x6da47c20, 0x2de0b: 0x6d7cde20, + 0x2de0c: 0x6d7ce020, 0x2de0d: 0x6d7ce220, 0x2de0e: 0x6da47e20, 0x2de0f: 0x6d7ce420, + 0x2de10: 0x6d7ce620, 0x2de11: 0x6d7ce820, 0x2de12: 0x6d7cea20, 0x2de13: 0x6d7cec20, + 0x2de14: 0x6d7cee20, 0x2de15: 0x6d7cf020, 0x2de16: 0x6d7cf220, 0x2de17: 0x6d7cf420, + 0x2de18: 0x6da48020, 0x2de19: 0x6d7cf620, 0x2de1a: 0x6d7cf820, 0x2de1b: 0x6d7cfa20, + 0x2de1c: 0x6d7cfc20, 0x2de1d: 0x6d7cfe20, 0x2de1e: 0x6d7d0020, 0x2de1f: 0x6da48e20, + 0x2de20: 0x6da49020, 0x2de21: 0x6da49220, 0x2de22: 0x6da49420, 0x2de23: 0x6da49620, + 0x2de24: 0x6da49820, 0x2de25: 0x6dc62620, 0x2de26: 0x6da49a20, 0x2de27: 0x6dc60a20, + 0x2de28: 0x6da49c20, 0x2de29: 0x6da49e20, 0x2de2a: 0x6dc60c20, 0x2de2b: 0x6da4a020, + 0x2de2c: 0x6da4a220, 0x2de2d: 0x6da4a420, 0x2de2e: 0x6da4a620, 0x2de2f: 0x6da4a820, + 0x2de30: 0x6da4aa20, 0x2de31: 0x6da4ac20, 0x2de32: 0x6dc62820, 0x2de33: 0x6d7d9e20, + 0x2de34: 0x6dc62a20, 0x2de35: 0x6dc62c20, 0x2de36: 0x6dc62e20, 0x2de37: 0x6dc63020, + 0x2de38: 0x6dc63220, 0x2de39: 0x6dc63420, 0x2de3a: 0x6dc63620, 0x2de3b: 0x6dc63820, + 0x2de3c: 0x6dc63a20, 0x2de3d: 0x6dc63c20, 0x2de3e: 0x6dc63e20, 0x2de3f: 0x6dc64020, + // Block 0xb79, offset 0x2de40 + 0x2de40: 0x6de2e820, 0x2de41: 0x6dc64220, 0x2de42: 0x6dc64420, 0x2de43: 0x6dc64620, + 0x2de44: 0x6dc64820, 0x2de45: 0x6dc64a20, 0x2de46: 0x6dc64c20, 0x2de47: 0x6de2ee20, + 0x2de48: 0x6de2f020, 0x2de49: 0x6de2f220, 0x2de4a: 0x6de2f420, 0x2de4b: 0x6de2f620, + 0x2de4c: 0x6de2f820, 0x2de4d: 0x6de2fa20, 0x2de4e: 0x6de2fc20, 0x2de4f: 0x6de2fe20, + 0x2de50: 0x6de30020, 0x2de51: 0x6e0dee20, 0x2de52: 0x6de30220, 0x2de53: 0x6dfa6220, + 0x2de54: 0x6dfa6420, 0x2de55: 0x6dfa6620, 0x2de56: 0x6dfa6820, 0x2de57: 0x6dfa6a20, + 0x2de58: 0x6dfa6c20, 0x2de59: 0x6dfa6e20, 0x2de5a: 0x6dfa7020, 0x2de5b: 0x6e0df820, + 0x2de5c: 0x6e0dfa20, 0x2de5d: 0x6e0dfc20, 0x2de5e: 0x6e1d5620, 0x2de5f: 0x6e1d5820, + 0x2de60: 0x6e1d5a20, 0x2de61: 0x6e1d5c20, 0x2de62: 0x6e1d5e20, 0x2de63: 0x6e28f620, + 0x2de64: 0x6e1d6020, 0x2de65: 0x6e28fe20, 0x2de66: 0x6e1d6220, 0x2de67: 0x6e1d6420, + 0x2de68: 0x6e290020, 0x2de69: 0x6e290220, 0x2de6a: 0x6e290420, 0x2de6b: 0x6e290620, + 0x2de6c: 0x6e322620, 0x2de6d: 0x6e322820, 0x2de6e: 0x6e389420, 0x2de6f: 0x6c047e20, + 0x2de70: 0x6c123620, 0x2de71: 0x6c502a20, 0x2de72: 0x6cc67220, 0x2de73: 0x6d7da020, + 0x2de74: 0x6c048020, 0x2de75: 0x6c048220, 0x2de76: 0x6c123a20, 0x2de77: 0x6c123c20, + 0x2de78: 0x6c212020, 0x2de79: 0x6c212220, 0x2de7a: 0x6c212420, 0x2de7b: 0x6c212620, + 0x2de7c: 0x6c212820, 0x2de7d: 0x6c354420, 0x2de7e: 0x6c354620, 0x2de7f: 0x6c503220, + // Block 0xb7a, offset 0x2de80 + 0x2de80: 0x6c503c20, 0x2de81: 0x6c503e20, 0x2de82: 0x6c504020, 0x2de83: 0x6c504220, + 0x2de84: 0x6c504420, 0x2de85: 0x6c504620, 0x2de86: 0x6c723c20, 0x2de87: 0x6c723e20, + 0x2de88: 0x6c724020, 0x2de89: 0x6c724220, 0x2de8a: 0x6c724420, 0x2de8b: 0x6c724620, + 0x2de8c: 0x6c724820, 0x2de8d: 0x6c9aac20, 0x2de8e: 0x6c9aae20, 0x2de8f: 0x6c9ab020, + 0x2de90: 0x6c9ab220, 0x2de91: 0x6c9ab420, 0x2de92: 0x6c9ab620, 0x2de93: 0x6c9ab820, + 0x2de94: 0x6c9aba20, 0x2de95: 0x6c9abc20, 0x2de96: 0x6c9abe20, 0x2de97: 0x6c9ac020, + 0x2de98: 0x6c9ac220, 0x2de99: 0x6c9ac420, 0x2de9a: 0x6c9ac620, 0x2de9b: 0x6c9ac820, + 0x2de9c: 0x6cc69a20, 0x2de9d: 0x6c9b1420, 0x2de9e: 0x6cc69c20, 0x2de9f: 0x6cc69e20, + 0x2dea0: 0x6cc6a020, 0x2dea1: 0x6cc6a220, 0x2dea2: 0x6cc6a420, 0x2dea3: 0x6cc6a620, + 0x2dea4: 0x6cc6a820, 0x2dea5: 0x6cc6aa20, 0x2dea6: 0x6cc6ac20, 0x2dea7: 0x6cc6ae20, + 0x2dea8: 0x6cc6b020, 0x2dea9: 0x6cc6b220, 0x2deaa: 0x6cc6b420, 0x2deab: 0x6cf53620, + 0x2deac: 0x6cf53820, 0x2dead: 0x6cf52a20, 0x2deae: 0x6cf53a20, 0x2deaf: 0x6cf53c20, + 0x2deb0: 0x6cf53e20, 0x2deb1: 0x6d24f820, 0x2deb2: 0x6d24fa20, 0x2deb3: 0x6d24fc20, + 0x2deb4: 0x6d7dac20, 0x2deb5: 0x6d527820, 0x2deb6: 0x6d527a20, 0x2deb7: 0x6d527c20, + 0x2deb8: 0x6d527e20, 0x2deb9: 0x6d528020, 0x2deba: 0x6d528220, 0x2debb: 0x6d528420, + 0x2debc: 0x6d7db620, 0x2debd: 0x6d7db820, 0x2debe: 0x6d7dba20, 0x2debf: 0x6d7dbc20, + // Block 0xb7b, offset 0x2dec0 + 0x2dec0: 0x6da51420, 0x2dec1: 0x6da51620, 0x2dec2: 0x6da51820, 0x2dec3: 0x6da53e20, + 0x2dec4: 0x6de35a20, 0x2dec5: 0x6dfab420, 0x2dec6: 0x6dfab620, 0x2dec7: 0x6c048420, + 0x2dec8: 0x6c213c20, 0x2dec9: 0x6c357620, 0x2deca: 0x6c728e20, 0x2decb: 0x6c729020, + 0x2decc: 0x6cc70220, 0x2decd: 0x6c9b1620, 0x2dece: 0x6c9b1820, 0x2decf: 0x6c9b1a20, + 0x2ded0: 0x6cc70420, 0x2ded1: 0x6cc70620, 0x2ded2: 0x6cf58e20, 0x2ded3: 0x6d7e0420, + 0x2ded4: 0x6dc6dc20, 0x2ded5: 0x6e0e3c20, 0x2ded6: 0x6e292620, 0x2ded7: 0x6c048620, + 0x2ded8: 0x6c214220, 0x2ded9: 0x6c729c20, 0x2deda: 0x6c729e20, 0x2dedb: 0x6c9b2a20, + 0x2dedc: 0x6c9b2c20, 0x2dedd: 0x6cc71620, 0x2dede: 0x6cc72220, 0x2dedf: 0x6cf59820, + 0x2dee0: 0x6d254820, 0x2dee1: 0x6d254a20, 0x2dee2: 0x6d7e0a20, 0x2dee3: 0x6da54420, + 0x2dee4: 0x6c048a20, 0x2dee5: 0x6c095220, 0x2dee6: 0x6c358a20, 0x2dee7: 0x6c358c20, + 0x2dee8: 0x6c358e20, 0x2dee9: 0x6c359020, 0x2deea: 0x6c508620, 0x2deeb: 0x6c508820, + 0x2deec: 0x6c9b3820, 0x2deed: 0x6c9b3a20, 0x2deee: 0x6cc72620, 0x2deef: 0x6cc72820, + 0x2def0: 0x6cf5a220, 0x2def1: 0x6cc74220, 0x2def2: 0x6d255820, 0x2def3: 0x6d52d820, + 0x2def4: 0x6d7e0c20, 0x2def5: 0x6da54c20, 0x2def6: 0x6da54e20, 0x2def7: 0x6dc6e020, + 0x2def8: 0x6e38a220, 0x2def9: 0x6c048e20, 0x2defa: 0x6c35a020, 0x2defb: 0x6c35a220, + 0x2defc: 0x6c35a420, 0x2defd: 0x6c509020, 0x2defe: 0x6c509220, 0x2deff: 0x6c509420, + // Block 0xb7c, offset 0x2df00 + 0x2df00: 0x6c509620, 0x2df01: 0x6c72bc20, 0x2df02: 0x6c72be20, 0x2df03: 0x6c72c020, + 0x2df04: 0x6c72c220, 0x2df05: 0x6c72c420, 0x2df06: 0x6c72c620, 0x2df07: 0x6c9b4820, + 0x2df08: 0x6c9b4a20, 0x2df09: 0x6c9b4c20, 0x2df0a: 0x6c72c820, 0x2df0b: 0x6c9b4e20, + 0x2df0c: 0x6c9b5020, 0x2df0d: 0x6c9b5220, 0x2df0e: 0x6c9b5420, 0x2df0f: 0x6c9b5620, + 0x2df10: 0x6cc74620, 0x2df11: 0x6cc74820, 0x2df12: 0x6cf5b620, 0x2df13: 0x6cf5b820, + 0x2df14: 0x6cf5ba20, 0x2df15: 0x6cf5bc20, 0x2df16: 0x6d256420, 0x2df17: 0x6d256620, + 0x2df18: 0x6d7e1c20, 0x2df19: 0x6d7e1e20, 0x2df1a: 0x6da55a20, 0x2df1b: 0x6dc6ec20, + 0x2df1c: 0x6de37820, 0x2df1d: 0x6de37a20, 0x2df1e: 0x6de37c20, 0x2df1f: 0x6dfad820, + 0x2df20: 0x6c049020, 0x2df21: 0x6c049220, 0x2df22: 0x6c50ac20, 0x2df23: 0x6c9b6e20, + 0x2df24: 0x6cf5ce20, 0x2df25: 0x6c049620, 0x2df26: 0x6c095420, 0x2df27: 0x6c095620, + 0x2df28: 0x6c125020, 0x2df29: 0x6c125220, 0x2df2a: 0x6c125420, 0x2df2b: 0x6c125620, + 0x2df2c: 0x6c125820, 0x2df2d: 0x6c125a20, 0x2df2e: 0x6c125c20, 0x2df2f: 0x6c125e20, + 0x2df30: 0x6c215c20, 0x2df31: 0x6c215e20, 0x2df32: 0x6c216020, 0x2df33: 0x6c216220, + 0x2df34: 0x6c216420, 0x2df35: 0x6c216620, 0x2df36: 0x6c216820, 0x2df37: 0x6c216a20, + 0x2df38: 0x6c216c20, 0x2df39: 0x6c35b620, 0x2df3a: 0x6c35b820, 0x2df3b: 0x6c35ba20, + 0x2df3c: 0x6c35bc20, 0x2df3d: 0x6c35be20, 0x2df3e: 0x6c35c020, 0x2df3f: 0x6c35c220, + // Block 0xb7d, offset 0x2df40 + 0x2df40: 0x6c35c420, 0x2df41: 0x6c35c620, 0x2df42: 0x6c35c820, 0x2df43: 0x6c35ca20, + 0x2df44: 0x6c35cc20, 0x2df45: 0x6c35ce20, 0x2df46: 0x6c35d020, 0x2df47: 0x6c35d220, + 0x2df48: 0x6c35d420, 0x2df49: 0x6c35d620, 0x2df4a: 0x6c35d820, 0x2df4b: 0x6c35da20, + 0x2df4c: 0x6c35dc20, 0x2df4d: 0x6c35de20, 0x2df4e: 0x6c35e020, 0x2df4f: 0x6c35e220, + 0x2df50: 0x6c35e420, 0x2df51: 0x6c35e620, 0x2df52: 0x6c35e820, 0x2df53: 0x6c35ea20, + 0x2df54: 0x6c35ec20, 0x2df55: 0x6c35ee20, 0x2df56: 0x6c35f020, 0x2df57: 0x6c35f220, + 0x2df58: 0x6c35f420, 0x2df59: 0x6c35f620, 0x2df5a: 0x6c50c420, 0x2df5b: 0x6c50c620, + 0x2df5c: 0x6c50c820, 0x2df5d: 0x6c50ca20, 0x2df5e: 0x6c50cc20, 0x2df5f: 0x6c50ce20, + 0x2df60: 0x6c50d020, 0x2df61: 0x6c50d220, 0x2df62: 0x6c50d420, 0x2df63: 0x6c50d620, + 0x2df64: 0x6c50d820, 0x2df65: 0x6c50da20, 0x2df66: 0x6c50dc20, 0x2df67: 0x6c50de20, + 0x2df68: 0x6c50e020, 0x2df69: 0x6c50e220, 0x2df6a: 0x6c50e420, 0x2df6b: 0x6c50e620, + 0x2df6c: 0x6c50e820, 0x2df6d: 0x6c50ea20, 0x2df6e: 0x6c50ec20, 0x2df6f: 0x6c50ee20, + 0x2df70: 0x6c50f020, 0x2df71: 0x6c50f220, 0x2df72: 0x6c50f420, 0x2df73: 0x6c50f620, + 0x2df74: 0x6c50f820, 0x2df75: 0x6c50fa20, 0x2df76: 0x6c50fc20, 0x2df77: 0x6c50fe20, + 0x2df78: 0x6c510020, 0x2df79: 0x6c510220, 0x2df7a: 0x6c510420, 0x2df7b: 0x6c510620, + 0x2df7c: 0x6c510820, 0x2df7d: 0x6c510a20, 0x2df7e: 0x6c510c20, 0x2df7f: 0x6c510e20, + // Block 0xb7e, offset 0x2df80 + 0x2df80: 0x6c730420, 0x2df81: 0x6c730620, 0x2df82: 0x6c730820, 0x2df83: 0x6c730a20, + 0x2df84: 0x6c730c20, 0x2df85: 0x6c730e20, 0x2df86: 0x6c731020, 0x2df87: 0x6c731220, + 0x2df88: 0x6c731420, 0x2df89: 0x6c731620, 0x2df8a: 0x6c731820, 0x2df8b: 0x6c731a20, + 0x2df8c: 0x6c731c20, 0x2df8d: 0x6c731e20, 0x2df8e: 0x6c732020, 0x2df8f: 0x6c732220, + 0x2df90: 0x6c732420, 0x2df91: 0x6c732620, 0x2df92: 0x6c732820, 0x2df93: 0x6c732a20, + 0x2df94: 0x6c732c20, 0x2df95: 0x6c732e20, 0x2df96: 0x6c733020, 0x2df97: 0x6c9b7e20, + 0x2df98: 0x6c9b8020, 0x2df99: 0x6c9b8220, 0x2df9a: 0x6c9b8420, 0x2df9b: 0x6c9b8620, + 0x2df9c: 0x6c9b8820, 0x2df9d: 0x6c9b8a20, 0x2df9e: 0x6c9b8c20, 0x2df9f: 0x6c738c20, + 0x2dfa0: 0x6c738e20, 0x2dfa1: 0x6c9b8e20, 0x2dfa2: 0x6c9b9020, 0x2dfa3: 0x6c9b9220, + 0x2dfa4: 0x6c9b9420, 0x2dfa5: 0x6c9b9620, 0x2dfa6: 0x6c9b9820, 0x2dfa7: 0x6c9b9a20, + 0x2dfa8: 0x6c9b9c20, 0x2dfa9: 0x6c9b9e20, 0x2dfaa: 0x6cc78620, 0x2dfab: 0x6cc78820, + 0x2dfac: 0x6cc78a20, 0x2dfad: 0x6cc78c20, 0x2dfae: 0x6cc78e20, 0x2dfaf: 0x6cc79020, + 0x2dfb0: 0x6cc79220, 0x2dfb1: 0x6cc79420, 0x2dfb2: 0x6cc79620, 0x2dfb3: 0x6cc79820, + 0x2dfb4: 0x6cc79a20, 0x2dfb5: 0x6cc79c20, 0x2dfb6: 0x6cc79e20, 0x2dfb7: 0x6cc7a020, + 0x2dfb8: 0x6cf5d620, 0x2dfb9: 0x6cc7a220, 0x2dfba: 0x6cc7a420, 0x2dfbb: 0x6cc7a620, + 0x2dfbc: 0x6cc7a820, 0x2dfbd: 0x6cc7aa20, 0x2dfbe: 0x6cc7ac20, 0x2dfbf: 0x6cc7ae20, + // Block 0xb7f, offset 0x2dfc0 + 0x2dfc0: 0x6cc7b020, 0x2dfc1: 0x6cc7b220, 0x2dfc2: 0x6cc7b420, 0x2dfc3: 0x6cc7b620, + 0x2dfc4: 0x6cf5f020, 0x2dfc5: 0x6cf5f220, 0x2dfc6: 0x6cf5f420, 0x2dfc7: 0x6cf5f620, + 0x2dfc8: 0x6cf5f820, 0x2dfc9: 0x6cf5fa20, 0x2dfca: 0x6cf5fc20, 0x2dfcb: 0x6cf5fe20, + 0x2dfcc: 0x6cf60020, 0x2dfcd: 0x6cf60220, 0x2dfce: 0x6cf60420, 0x2dfcf: 0x6cf60620, + 0x2dfd0: 0x6cf60820, 0x2dfd1: 0x6cc7b820, 0x2dfd2: 0x6cf60a20, 0x2dfd3: 0x6cf60c20, + 0x2dfd4: 0x6cf60e20, 0x2dfd5: 0x6cf61020, 0x2dfd6: 0x6cf61220, 0x2dfd7: 0x6cf61420, + 0x2dfd8: 0x6cf61620, 0x2dfd9: 0x6cf61820, 0x2dfda: 0x6d257e20, 0x2dfdb: 0x6d258020, + 0x2dfdc: 0x6d258220, 0x2dfdd: 0x6d258420, 0x2dfde: 0x6d258620, 0x2dfdf: 0x6d258820, + 0x2dfe0: 0x6d258a20, 0x2dfe1: 0x6d258c20, 0x2dfe2: 0x6d258e20, 0x2dfe3: 0x6d259020, + 0x2dfe4: 0x6d259220, 0x2dfe5: 0x6d259420, 0x2dfe6: 0x6d259620, 0x2dfe7: 0x6d259820, + 0x2dfe8: 0x6d259a20, 0x2dfe9: 0x6d530020, 0x2dfea: 0x6d530220, 0x2dfeb: 0x6d530420, + 0x2dfec: 0x6d530620, 0x2dfed: 0x6d530820, 0x2dfee: 0x6d530a20, 0x2dfef: 0x6d530c20, + 0x2dff0: 0x6d530e20, 0x2dff1: 0x6d531020, 0x2dff2: 0x6d531220, 0x2dff3: 0x6d531420, + 0x2dff4: 0x6d531620, 0x2dff5: 0x6d531820, 0x2dff6: 0x6d531a20, 0x2dff7: 0x6d531c20, + 0x2dff8: 0x6d7e4420, 0x2dff9: 0x6d7e4620, 0x2dffa: 0x6d7e4820, 0x2dffb: 0x6d7e4a20, + 0x2dffc: 0x6d537220, 0x2dffd: 0x6d7e4c20, 0x2dffe: 0x6d7e4e20, 0x2dfff: 0x6d7e5020, + // Block 0xb80, offset 0x2e000 + 0x2e000: 0x6d7e5220, 0x2e001: 0x6d7e5420, 0x2e002: 0x6d7e5620, 0x2e003: 0x6d7e5820, + 0x2e004: 0x6d7e5a20, 0x2e005: 0x6d7e5c20, 0x2e006: 0x6d7e5e20, 0x2e007: 0x6d7e6020, + 0x2e008: 0x6d7e6220, 0x2e009: 0x6d7e6420, 0x2e00a: 0x6d7e6620, 0x2e00b: 0x6d7e6820, + 0x2e00c: 0x6d7e6a20, 0x2e00d: 0x6d7e6c20, 0x2e00e: 0x6da56420, 0x2e00f: 0x6d7ed220, + 0x2e010: 0x6da56620, 0x2e011: 0x6da56820, 0x2e012: 0x6da56a20, 0x2e013: 0x6da56c20, + 0x2e014: 0x6da56e20, 0x2e015: 0x6da57020, 0x2e016: 0x6da57220, 0x2e017: 0x6da57420, + 0x2e018: 0x6dc70620, 0x2e019: 0x6da5a820, 0x2e01a: 0x6da57620, 0x2e01b: 0x6dc70820, + 0x2e01c: 0x6dc70a20, 0x2e01d: 0x6de38820, 0x2e01e: 0x6de38a20, 0x2e01f: 0x6de38c20, + 0x2e020: 0x6de38e20, 0x2e021: 0x6de39020, 0x2e022: 0x6de39220, 0x2e023: 0x6dfae020, + 0x2e024: 0x6dfae220, 0x2e025: 0x6dfae420, 0x2e026: 0x6dfae620, 0x2e027: 0x6dfae820, + 0x2e028: 0x6dfaea20, 0x2e029: 0x6e0e4620, 0x2e02a: 0x6e293020, 0x2e02b: 0x6e293220, + 0x2e02c: 0x6e293420, 0x2e02d: 0x6e324a20, 0x2e02e: 0x6e324c20, 0x2e02f: 0x6e38a820, + 0x2e030: 0x6c049820, 0x2e031: 0x6c095e20, 0x2e032: 0x6c127020, 0x2e033: 0x6c127220, + 0x2e034: 0x6c219c20, 0x2e035: 0x6c219e20, 0x2e036: 0x6c364020, 0x2e037: 0x6c515c20, + 0x2e038: 0x6c739020, 0x2e039: 0x6c9c0a20, 0x2e03a: 0x6c739220, 0x2e03b: 0x6c73a820, + 0x2e03c: 0x6c9c0c20, 0x2e03d: 0x6c9ba020, 0x2e03e: 0x6cc84a20, 0x2e03f: 0x6cc84c20, + // Block 0xb81, offset 0x2e040 + 0x2e040: 0x6cb8f420, 0x2e041: 0x6cc84e20, 0x2e042: 0x6cc85020, 0x2e043: 0x6cf68820, + 0x2e044: 0x6d25f820, 0x2e045: 0x6d25fa20, 0x2e046: 0x6d7ed620, 0x2e047: 0x6e0e5820, + 0x2e048: 0x6c049c20, 0x2e049: 0x6c127420, 0x2e04a: 0x6c364c20, 0x2e04b: 0x6c364e20, + 0x2e04c: 0x6c365020, 0x2e04d: 0x6c365220, 0x2e04e: 0x6c516c20, 0x2e04f: 0x6c516e20, + 0x2e050: 0x6c517020, 0x2e051: 0x6c517220, 0x2e052: 0x6c73ae20, 0x2e053: 0x6c73b020, + 0x2e054: 0x6c73b220, 0x2e055: 0x6c73b420, 0x2e056: 0x6c9c1a20, 0x2e057: 0x6c73be20, + 0x2e058: 0x6c9c1c20, 0x2e059: 0x6c9c1e20, 0x2e05a: 0x6c9c2020, 0x2e05b: 0x6c9c2220, + 0x2e05c: 0x6cc85a20, 0x2e05d: 0x6cc85c20, 0x2e05e: 0x6cc85e20, 0x2e05f: 0x6cc86020, + 0x2e060: 0x6cf69420, 0x2e061: 0x6cf69620, 0x2e062: 0x6d260620, 0x2e063: 0x6d7ee620, + 0x2e064: 0x6d7ee820, 0x2e065: 0x6d7eea20, 0x2e066: 0x6dc74820, 0x2e067: 0x6dfb0220, + 0x2e068: 0x6c049e20, 0x2e069: 0x6c04a020, 0x2e06a: 0x6c096220, 0x2e06b: 0x6c096420, + 0x2e06c: 0x6c096620, 0x2e06d: 0x6c096820, 0x2e06e: 0x6c096a20, 0x2e06f: 0x6c096c20, + 0x2e070: 0x6c096e20, 0x2e071: 0x6c127c20, 0x2e072: 0x6c127e20, 0x2e073: 0x6c128020, + 0x2e074: 0x6c128220, 0x2e075: 0x6c128420, 0x2e076: 0x6c128620, 0x2e077: 0x6c128820, + 0x2e078: 0x6c128a20, 0x2e079: 0x6c128c20, 0x2e07a: 0x6c128e20, 0x2e07b: 0x6c129020, + 0x2e07c: 0x6c129220, 0x2e07d: 0x6c129420, 0x2e07e: 0x6c129620, 0x2e07f: 0x6c129820, + // Block 0xb82, offset 0x2e080 + 0x2e080: 0x6c129a20, 0x2e081: 0x6c129c20, 0x2e082: 0x6c129e20, 0x2e083: 0x6c12a020, + 0x2e084: 0x6c21ba20, 0x2e085: 0x6c21bc20, 0x2e086: 0x6c21be20, 0x2e087: 0x6c21c020, + 0x2e088: 0x6c21c220, 0x2e089: 0x6c21c420, 0x2e08a: 0x6c21c620, 0x2e08b: 0x6c21c820, + 0x2e08c: 0x6c21ca20, 0x2e08d: 0x6c21cc20, 0x2e08e: 0x6c21ce20, 0x2e08f: 0x6c21d020, + 0x2e090: 0x6c21d220, 0x2e091: 0x6c21d420, 0x2e092: 0x6c21d620, 0x2e093: 0x6c21d820, + 0x2e094: 0x6c21da20, 0x2e095: 0x6c21dc20, 0x2e096: 0x6c21de20, 0x2e097: 0x6c21e020, + 0x2e098: 0x6c21e220, 0x2e099: 0x6c21e420, 0x2e09a: 0x6c21e620, 0x2e09b: 0x6c21e820, + 0x2e09c: 0x6c21ea20, 0x2e09d: 0x6c21ec20, 0x2e09e: 0x6c21ee20, 0x2e09f: 0x6c21f020, + 0x2e0a0: 0x6c21f220, 0x2e0a1: 0x6c21f420, 0x2e0a2: 0x6c21f620, 0x2e0a3: 0x6c21f820, + 0x2e0a4: 0x6c21fa20, 0x2e0a5: 0x6c21fc20, 0x2e0a6: 0x6c21fe20, 0x2e0a7: 0x6c220020, + 0x2e0a8: 0x6c220220, 0x2e0a9: 0x6c220420, 0x2e0aa: 0x6c366c20, 0x2e0ab: 0x6c366e20, + 0x2e0ac: 0x6c367020, 0x2e0ad: 0x6c367220, 0x2e0ae: 0x6c367420, 0x2e0af: 0x6c367620, + 0x2e0b0: 0x6c367820, 0x2e0b1: 0x6c367a20, 0x2e0b2: 0x6c367c20, 0x2e0b3: 0x6c367e20, + 0x2e0b4: 0x6c368020, 0x2e0b5: 0x6c368220, 0x2e0b6: 0x6c368420, 0x2e0b7: 0x6c368620, + 0x2e0b8: 0x6c368820, 0x2e0b9: 0x6c368a20, 0x2e0ba: 0x6c368c20, 0x2e0bb: 0x6c368e20, + 0x2e0bc: 0x6c369020, 0x2e0bd: 0x6c369220, 0x2e0be: 0x6c369420, 0x2e0bf: 0x6c369620, + // Block 0xb83, offset 0x2e0c0 + 0x2e0c0: 0x6c369820, 0x2e0c1: 0x6c220620, 0x2e0c2: 0x6c369a20, 0x2e0c3: 0x6c369c20, + 0x2e0c4: 0x6c369e20, 0x2e0c5: 0x6c36a020, 0x2e0c6: 0x6c36a220, 0x2e0c7: 0x6c36a420, + 0x2e0c8: 0x6c36a620, 0x2e0c9: 0x6c36a820, 0x2e0ca: 0x6c36aa20, 0x2e0cb: 0x6c36ac20, + 0x2e0cc: 0x6c36ae20, 0x2e0cd: 0x6c36b020, 0x2e0ce: 0x6c36b220, 0x2e0cf: 0x6c36b420, + 0x2e0d0: 0x6c36b620, 0x2e0d1: 0x6c36b820, 0x2e0d2: 0x6c36ba20, 0x2e0d3: 0x6c36bc20, + 0x2e0d4: 0x6c36be20, 0x2e0d5: 0x6c36c020, 0x2e0d6: 0x6c36c220, 0x2e0d7: 0x6c36c420, + 0x2e0d8: 0x6c36c620, 0x2e0d9: 0x6c36c820, 0x2e0da: 0x6c36ca20, 0x2e0db: 0x6c36cc20, + 0x2e0dc: 0x6c36ce20, 0x2e0dd: 0x6c36d020, 0x2e0de: 0x6c36d220, 0x2e0df: 0x6c36d420, + 0x2e0e0: 0x6c36d620, 0x2e0e1: 0x6c36d820, 0x2e0e2: 0x6c36da20, 0x2e0e3: 0x6c36dc20, + 0x2e0e4: 0x6c36de20, 0x2e0e5: 0x6c36e020, 0x2e0e6: 0x6c36e220, 0x2e0e7: 0x6c36e420, + 0x2e0e8: 0x6c36e620, 0x2e0e9: 0x6c36e820, 0x2e0ea: 0x6c36ea20, 0x2e0eb: 0x6c36ec20, + 0x2e0ec: 0x6c36ee20, 0x2e0ed: 0x6c36f020, 0x2e0ee: 0x6c519420, 0x2e0ef: 0x6c519620, + 0x2e0f0: 0x6c519820, 0x2e0f1: 0x6c519a20, 0x2e0f2: 0x6c519c20, 0x2e0f3: 0x6c519e20, + 0x2e0f4: 0x6c51a020, 0x2e0f5: 0x6c51a220, 0x2e0f6: 0x6c51a420, 0x2e0f7: 0x6c51a620, + 0x2e0f8: 0x6c51a820, 0x2e0f9: 0x6c51aa20, 0x2e0fa: 0x6c51ac20, 0x2e0fb: 0x6c51ae20, + 0x2e0fc: 0x6c51b020, 0x2e0fd: 0x6c73c020, 0x2e0fe: 0x6c51b220, 0x2e0ff: 0x6c51b420, + // Block 0xb84, offset 0x2e100 + 0x2e100: 0x6c51b620, 0x2e101: 0x6c51b820, 0x2e102: 0x6c51ba20, 0x2e103: 0x6c51bc20, + 0x2e104: 0x6c51be20, 0x2e105: 0x6c51c020, 0x2e106: 0x6c51c220, 0x2e107: 0x6c51c420, + 0x2e108: 0x6c51c620, 0x2e109: 0x6c51c820, 0x2e10a: 0x6c51ca20, 0x2e10b: 0x6c51cc20, + 0x2e10c: 0x6c51ce20, 0x2e10d: 0x6c51d020, 0x2e10e: 0x6c51d220, 0x2e10f: 0x6c51d420, + 0x2e110: 0x6c51d620, 0x2e111: 0x6c51d820, 0x2e112: 0x6c51da20, 0x2e113: 0x6c51dc20, + 0x2e114: 0x6c51de20, 0x2e115: 0x6c51e020, 0x2e116: 0x6c51e220, 0x2e117: 0x6c51e420, + 0x2e118: 0x6c51e620, 0x2e119: 0x6c51e820, 0x2e11a: 0x6c51ea20, 0x2e11b: 0x6c51ec20, + 0x2e11c: 0x6c51ee20, 0x2e11d: 0x6c51f020, 0x2e11e: 0x6c51f220, 0x2e11f: 0x6c51f420, + 0x2e120: 0x6c51f620, 0x2e121: 0x6c73c220, 0x2e122: 0x6c51f820, 0x2e123: 0x6c51fa20, + 0x2e124: 0x6c51fc20, 0x2e125: 0x6c51fe20, 0x2e126: 0x6c520020, 0x2e127: 0x6c520220, + 0x2e128: 0x6c520420, 0x2e129: 0x6c520620, 0x2e12a: 0x6c520820, 0x2e12b: 0x6c520a20, + 0x2e12c: 0x6c520c20, 0x2e12d: 0x6c520e20, 0x2e12e: 0x6c521020, 0x2e12f: 0x6c521220, + 0x2e130: 0x6c521420, 0x2e131: 0x6c521620, 0x2e132: 0x6c521820, 0x2e133: 0x6c521a20, + 0x2e134: 0x6c73c420, 0x2e135: 0x6c521c20, 0x2e136: 0x6c521e20, 0x2e137: 0x6c522020, + 0x2e138: 0x6c522220, 0x2e139: 0x6c376420, 0x2e13a: 0x6c522420, 0x2e13b: 0x6c522620, + 0x2e13c: 0x6c522820, 0x2e13d: 0x6c522a20, 0x2e13e: 0x6c522c20, 0x2e13f: 0x6c522e20, + // Block 0xb85, offset 0x2e140 + 0x2e140: 0x6c523020, 0x2e141: 0x6c523220, 0x2e142: 0x6c523420, 0x2e143: 0x6c523620, + 0x2e144: 0x6c523820, 0x2e145: 0x6c523a20, 0x2e146: 0x6c523c20, 0x2e147: 0x6c523e20, + 0x2e148: 0x6c524020, 0x2e149: 0x6c524220, 0x2e14a: 0x6c524420, 0x2e14b: 0x6c524620, + 0x2e14c: 0x6c524820, 0x2e14d: 0x6c524a20, 0x2e14e: 0x6c524c20, 0x2e14f: 0x6c524e20, + 0x2e150: 0x6c525020, 0x2e151: 0x6c525220, 0x2e152: 0x6c73e620, 0x2e153: 0x6c73e820, + 0x2e154: 0x6c73ea20, 0x2e155: 0x6c73ec20, 0x2e156: 0x6c73ee20, 0x2e157: 0x6c73f020, + 0x2e158: 0x6c73f220, 0x2e159: 0x6c73f420, 0x2e15a: 0x6c73f620, 0x2e15b: 0x6c73f820, + 0x2e15c: 0x6c73fa20, 0x2e15d: 0x6c73fc20, 0x2e15e: 0x6c73fe20, 0x2e15f: 0x6c740020, + 0x2e160: 0x6c740220, 0x2e161: 0x6c740420, 0x2e162: 0x6c740620, 0x2e163: 0x6c740820, + 0x2e164: 0x6c740a20, 0x2e165: 0x6c740c20, 0x2e166: 0x6c740e20, 0x2e167: 0x6c741020, + 0x2e168: 0x6c741220, 0x2e169: 0x6c741420, 0x2e16a: 0x6c741620, 0x2e16b: 0x6c741820, + 0x2e16c: 0x6c741a20, 0x2e16d: 0x6c741c20, 0x2e16e: 0x6c741e20, 0x2e16f: 0x6c742020, + 0x2e170: 0x6c742220, 0x2e171: 0x6c742420, 0x2e172: 0x6c742620, 0x2e173: 0x6c742820, + 0x2e174: 0x6c742a20, 0x2e175: 0x6c742c20, 0x2e176: 0x6c742e20, 0x2e177: 0x6c743020, + 0x2e178: 0x6c743220, 0x2e179: 0x6c743420, 0x2e17a: 0x6c743620, 0x2e17b: 0x6c743820, + 0x2e17c: 0x6c743a20, 0x2e17d: 0x6c743c20, 0x2e17e: 0x6c743e20, 0x2e17f: 0x6c744020, + // Block 0xb86, offset 0x2e180 + 0x2e180: 0x6c744220, 0x2e181: 0x6c744420, 0x2e182: 0x6c744620, 0x2e183: 0x6c744820, + 0x2e184: 0x6c744a20, 0x2e185: 0x6c744c20, 0x2e186: 0x6c744e20, 0x2e187: 0x6c745020, + 0x2e188: 0x6c745220, 0x2e189: 0x6c745420, 0x2e18a: 0x6c745620, 0x2e18b: 0x6c745820, + 0x2e18c: 0x6c745a20, 0x2e18d: 0x6c745c20, 0x2e18e: 0x6c745e20, 0x2e18f: 0x6c746020, + 0x2e190: 0x6c746220, 0x2e191: 0x6c746420, 0x2e192: 0x6c52c020, 0x2e193: 0x6c746620, + 0x2e194: 0x6c746820, 0x2e195: 0x6c746a20, 0x2e196: 0x6c746c20, 0x2e197: 0x6c746e20, + 0x2e198: 0x6c747020, 0x2e199: 0x6c747220, 0x2e19a: 0x6c747420, 0x2e19b: 0x6c747620, + 0x2e19c: 0x6c747820, 0x2e19d: 0x6c747a20, 0x2e19e: 0x6c747c20, 0x2e19f: 0x6c747e20, + 0x2e1a0: 0x6c748020, 0x2e1a1: 0x6c748220, 0x2e1a2: 0x6c748420, 0x2e1a3: 0x6c748620, + 0x2e1a4: 0x6c748820, 0x2e1a5: 0x6c748a20, 0x2e1a6: 0x6c748c20, 0x2e1a7: 0x6c748e20, + 0x2e1a8: 0x6c749020, 0x2e1a9: 0x6c749220, 0x2e1aa: 0x6c749420, 0x2e1ab: 0x6c9c5420, + 0x2e1ac: 0x6c9c5620, 0x2e1ad: 0x6c9c5820, 0x2e1ae: 0x6c9c5a20, 0x2e1af: 0x6c9c5c20, + 0x2e1b0: 0x6c9c5e20, 0x2e1b1: 0x6c9c6020, 0x2e1b2: 0x6c9c6220, 0x2e1b3: 0x6c9c6420, + 0x2e1b4: 0x6c9c6620, 0x2e1b5: 0x6c9c6820, 0x2e1b6: 0x6c9c6a20, 0x2e1b7: 0x6c9c6c20, + 0x2e1b8: 0x6c9c6e20, 0x2e1b9: 0x6c9c7020, 0x2e1ba: 0x6c9c7220, 0x2e1bb: 0x6c9c7420, + 0x2e1bc: 0x6c9c7620, 0x2e1bd: 0x6c9c7820, 0x2e1be: 0x6c9c7a20, 0x2e1bf: 0x6c9c7c20, + // Block 0xb87, offset 0x2e1c0 + 0x2e1c0: 0x6c9c7e20, 0x2e1c1: 0x6c9c8020, 0x2e1c2: 0x6c9c8220, 0x2e1c3: 0x6c9c8420, + 0x2e1c4: 0x6c9c8620, 0x2e1c5: 0x6c9c8820, 0x2e1c6: 0x6c9c8a20, 0x2e1c7: 0x6c9c8c20, + 0x2e1c8: 0x6c9c8e20, 0x2e1c9: 0x6c9c9020, 0x2e1ca: 0x6c9c9220, 0x2e1cb: 0x6c9c9420, + 0x2e1cc: 0x6c9c9620, 0x2e1cd: 0x6c9c9820, 0x2e1ce: 0x6c9c9a20, 0x2e1cf: 0x6c9c9c20, + 0x2e1d0: 0x6c9c9e20, 0x2e1d1: 0x6c9ca020, 0x2e1d2: 0x6c9ca220, 0x2e1d3: 0x6c9ca420, + 0x2e1d4: 0x6c9ca620, 0x2e1d5: 0x6c9ca820, 0x2e1d6: 0x6c9caa20, 0x2e1d7: 0x6c9cac20, + 0x2e1d8: 0x6c9cae20, 0x2e1d9: 0x6c9cb020, 0x2e1da: 0x6c9cb220, 0x2e1db: 0x6c9cb420, + 0x2e1dc: 0x6c9cb620, 0x2e1dd: 0x6c9cb820, 0x2e1de: 0x6c9cba20, 0x2e1df: 0x6c9cbc20, + 0x2e1e0: 0x6c9cbe20, 0x2e1e1: 0x6c9cc020, 0x2e1e2: 0x6c9cc220, 0x2e1e3: 0x6c9cc420, + 0x2e1e4: 0x6c9cc620, 0x2e1e5: 0x6c9cc820, 0x2e1e6: 0x6c9cca20, 0x2e1e7: 0x6c9ccc20, + 0x2e1e8: 0x6c9cce20, 0x2e1e9: 0x6c9cd020, 0x2e1ea: 0x6c9cd220, 0x2e1eb: 0x6c9cd420, + 0x2e1ec: 0x6c9cd620, 0x2e1ed: 0x6c9cd820, 0x2e1ee: 0x6c9cda20, 0x2e1ef: 0x6c9cdc20, + 0x2e1f0: 0x6c9cde20, 0x2e1f1: 0x6c9ce020, 0x2e1f2: 0x6c9ce220, 0x2e1f3: 0x6c9ce420, + 0x2e1f4: 0x6cc88420, 0x2e1f5: 0x6c9ce620, 0x2e1f6: 0x6c9ce820, 0x2e1f7: 0x6c9cea20, + 0x2e1f8: 0x6c9cec20, 0x2e1f9: 0x6c9cee20, 0x2e1fa: 0x6c9cf020, 0x2e1fb: 0x6c9cf220, + 0x2e1fc: 0x6c9cf420, 0x2e1fd: 0x6c9cf620, 0x2e1fe: 0x6c9cf820, 0x2e1ff: 0x6c9cfa20, + // Block 0xb88, offset 0x2e200 + 0x2e200: 0x6c9cfc20, 0x2e201: 0x6c9cfe20, 0x2e202: 0x6c9d0020, 0x2e203: 0x6cc8ae20, + 0x2e204: 0x6cc8b020, 0x2e205: 0x6cc8b220, 0x2e206: 0x6cc8b420, 0x2e207: 0x6cc8b620, + 0x2e208: 0x6cc8b820, 0x2e209: 0x6cc8ba20, 0x2e20a: 0x6cc8bc20, 0x2e20b: 0x6cc8be20, + 0x2e20c: 0x6cc8c020, 0x2e20d: 0x6cc8c220, 0x2e20e: 0x6cc8c420, 0x2e20f: 0x6cc8c620, + 0x2e210: 0x6cc8c820, 0x2e211: 0x6cc8ca20, 0x2e212: 0x6cc8cc20, 0x2e213: 0x6cc8ce20, + 0x2e214: 0x6cc8d020, 0x2e215: 0x6cc8d220, 0x2e216: 0x6cc8d420, 0x2e217: 0x6cc8d620, + 0x2e218: 0x6cc8d820, 0x2e219: 0x6cc8da20, 0x2e21a: 0x6cc8dc20, 0x2e21b: 0x6cc8de20, + 0x2e21c: 0x6cc8e020, 0x2e21d: 0x6cc8e220, 0x2e21e: 0x6cc8e420, 0x2e21f: 0x6cc8e620, + 0x2e220: 0x6cc8e820, 0x2e221: 0x6cc8ea20, 0x2e222: 0x6cc8ec20, 0x2e223: 0x6cc8ee20, + 0x2e224: 0x6cc8f020, 0x2e225: 0x6cc8f220, 0x2e226: 0x6cc8f420, 0x2e227: 0x6cc8f620, + 0x2e228: 0x6cc8f820, 0x2e229: 0x6cc8fa20, 0x2e22a: 0x6cc8fc20, 0x2e22b: 0x6cc8fe20, + 0x2e22c: 0x6cc90020, 0x2e22d: 0x6cc90220, 0x2e22e: 0x6cc90420, 0x2e22f: 0x6cc90620, + 0x2e230: 0x6cc90820, 0x2e231: 0x6cc90a20, 0x2e232: 0x6cc90c20, 0x2e233: 0x6cc90e20, + 0x2e234: 0x6cc91020, 0x2e235: 0x6cc91220, 0x2e236: 0x6cc91420, 0x2e237: 0x6cc91620, + 0x2e238: 0x6cc91820, 0x2e239: 0x6cc91a20, 0x2e23a: 0x6cc91c20, 0x2e23b: 0x6cc91e20, + 0x2e23c: 0x6cc92020, 0x2e23d: 0x6cc92220, 0x2e23e: 0x6cc92420, 0x2e23f: 0x6cc92620, + // Block 0xb89, offset 0x2e240 + 0x2e240: 0x6cc92820, 0x2e241: 0x6cc92a20, 0x2e242: 0x6cc92c20, 0x2e243: 0x6cc92e20, + 0x2e244: 0x6cc93020, 0x2e245: 0x6cc93220, 0x2e246: 0x6cc93420, 0x2e247: 0x6cc93620, + 0x2e248: 0x6cc93820, 0x2e249: 0x6cc93a20, 0x2e24a: 0x6cc93c20, 0x2e24b: 0x6cc93e20, + 0x2e24c: 0x6cc94020, 0x2e24d: 0x6cc94220, 0x2e24e: 0x6cc94420, 0x2e24f: 0x6cc94620, + 0x2e250: 0x6cc94820, 0x2e251: 0x6cc94a20, 0x2e252: 0x6cc94c20, 0x2e253: 0x6cc94e20, + 0x2e254: 0x6cc95020, 0x2e255: 0x6cc95220, 0x2e256: 0x6cc95420, 0x2e257: 0x6cc95620, + 0x2e258: 0x6cc95820, 0x2e259: 0x6cc95a20, 0x2e25a: 0x6cc95c20, 0x2e25b: 0x6cc95e20, + 0x2e25c: 0x6cc96020, 0x2e25d: 0x6cc96220, 0x2e25e: 0x6cc96420, 0x2e25f: 0x6cc96620, + 0x2e260: 0x6cc96820, 0x2e261: 0x6cc96a20, 0x2e262: 0x6cc96c20, 0x2e263: 0x6cc96e20, + 0x2e264: 0x6cc97020, 0x2e265: 0x6cc97220, 0x2e266: 0x6cc97420, 0x2e267: 0x6cc97620, + 0x2e268: 0x6cc97820, 0x2e269: 0x6cc97a20, 0x2e26a: 0x6cc97c20, 0x2e26b: 0x6cc97e20, + 0x2e26c: 0x6cc98020, 0x2e26d: 0x6cc98220, 0x2e26e: 0x6cc98420, 0x2e26f: 0x6cf6e220, + 0x2e270: 0x6cf6e420, 0x2e271: 0x6cf6e620, 0x2e272: 0x6cf6e820, 0x2e273: 0x6cf6ea20, + 0x2e274: 0x6cf6ec20, 0x2e275: 0x6cf6ee20, 0x2e276: 0x6cf6f020, 0x2e277: 0x6cf6f220, + 0x2e278: 0x6cf6f420, 0x2e279: 0x6cf6f620, 0x2e27a: 0x6cf6f820, 0x2e27b: 0x6cf6fa20, + 0x2e27c: 0x6cf6fc20, 0x2e27d: 0x6cf6fe20, 0x2e27e: 0x6cf70020, 0x2e27f: 0x6cf70220, + // Block 0xb8a, offset 0x2e280 + 0x2e280: 0x6cf70420, 0x2e281: 0x6cf70620, 0x2e282: 0x6cf70820, 0x2e283: 0x6cf70a20, + 0x2e284: 0x6cf70c20, 0x2e285: 0x6cf70e20, 0x2e286: 0x6cf71020, 0x2e287: 0x6cf71220, + 0x2e288: 0x6cf71420, 0x2e289: 0x6cf71620, 0x2e28a: 0x6cf71820, 0x2e28b: 0x6cf71a20, + 0x2e28c: 0x6cf71c20, 0x2e28d: 0x6cf71e20, 0x2e28e: 0x6cf72020, 0x2e28f: 0x6cf72220, + 0x2e290: 0x6cf72420, 0x2e291: 0x6cf72620, 0x2e292: 0x6cf72820, 0x2e293: 0x6cf72a20, + 0x2e294: 0x6cf72c20, 0x2e295: 0x6cf72e20, 0x2e296: 0x6c9da420, 0x2e297: 0x6cf73020, + 0x2e298: 0x6cf73220, 0x2e299: 0x6cf73420, 0x2e29a: 0x6cf73620, 0x2e29b: 0x6cf73820, + 0x2e29c: 0x6cf73a20, 0x2e29d: 0x6cf73c20, 0x2e29e: 0x6cf73e20, 0x2e29f: 0x6cf74020, + 0x2e2a0: 0x6cf74220, 0x2e2a1: 0x6cf74420, 0x2e2a2: 0x6cf74620, 0x2e2a3: 0x6cf74820, + 0x2e2a4: 0x6cf74a20, 0x2e2a5: 0x6cf74c20, 0x2e2a6: 0x6cf74e20, 0x2e2a7: 0x6cf75020, + 0x2e2a8: 0x6cf75220, 0x2e2a9: 0x6cf75420, 0x2e2aa: 0x6cf75620, 0x2e2ab: 0x6cf75820, + 0x2e2ac: 0x6cf75a20, 0x2e2ad: 0x6cf75c20, 0x2e2ae: 0x6cca8820, 0x2e2af: 0x6cf75e20, + 0x2e2b0: 0x6cca8a20, 0x2e2b1: 0x6cf76020, 0x2e2b2: 0x6cf76220, 0x2e2b3: 0x6cf76420, + 0x2e2b4: 0x6cf76620, 0x2e2b5: 0x6cf76820, 0x2e2b6: 0x6cf76a20, 0x2e2b7: 0x6cf76c20, + 0x2e2b8: 0x6cf76e20, 0x2e2b9: 0x6cf77020, 0x2e2ba: 0x6cf77220, 0x2e2bb: 0x6cf77420, + 0x2e2bc: 0x6cf77620, 0x2e2bd: 0x6cf77820, 0x2e2be: 0x6cf77a20, 0x2e2bf: 0x6cf77c20, + // Block 0xb8b, offset 0x2e2c0 + 0x2e2c0: 0x6cf77e20, 0x2e2c1: 0x6cf78020, 0x2e2c2: 0x6cf78220, 0x2e2c3: 0x6cf78420, + 0x2e2c4: 0x6cf78620, 0x2e2c5: 0x6cf78820, 0x2e2c6: 0x6cf78a20, 0x2e2c7: 0x6cf78c20, + 0x2e2c8: 0x6cf78e20, 0x2e2c9: 0x6cf79020, 0x2e2ca: 0x6d264e20, 0x2e2cb: 0x6cf79220, + 0x2e2cc: 0x6cf79420, 0x2e2cd: 0x6d265020, 0x2e2ce: 0x6d265220, 0x2e2cf: 0x6d265420, + 0x2e2d0: 0x6d265620, 0x2e2d1: 0x6d265820, 0x2e2d2: 0x6d265a20, 0x2e2d3: 0x6d265c20, + 0x2e2d4: 0x6cf79620, 0x2e2d5: 0x6d265e20, 0x2e2d6: 0x6d266020, 0x2e2d7: 0x6d266220, + 0x2e2d8: 0x6cf79820, 0x2e2d9: 0x6d266420, 0x2e2da: 0x6d266620, 0x2e2db: 0x6d266820, + 0x2e2dc: 0x6d266a20, 0x2e2dd: 0x6d266c20, 0x2e2de: 0x6d266e20, 0x2e2df: 0x6d267020, + 0x2e2e0: 0x6d267220, 0x2e2e1: 0x6d267420, 0x2e2e2: 0x6d267620, 0x2e2e3: 0x6d267820, + 0x2e2e4: 0x6d267a20, 0x2e2e5: 0x6d267c20, 0x2e2e6: 0x6d267e20, 0x2e2e7: 0x6d268020, + 0x2e2e8: 0x6d268220, 0x2e2e9: 0x6d268420, 0x2e2ea: 0x6d268620, 0x2e2eb: 0x6d268820, + 0x2e2ec: 0x6d268a20, 0x2e2ed: 0x6d268c20, 0x2e2ee: 0x6d268e20, 0x2e2ef: 0x6d269020, + 0x2e2f0: 0x6d269220, 0x2e2f1: 0x6d269420, 0x2e2f2: 0x6d269620, 0x2e2f3: 0x6d269820, + 0x2e2f4: 0x6d269a20, 0x2e2f5: 0x6d269c20, 0x2e2f6: 0x6d269e20, 0x2e2f7: 0x6d26a020, + 0x2e2f8: 0x6d26a220, 0x2e2f9: 0x6d26a420, 0x2e2fa: 0x6d26a620, 0x2e2fb: 0x6d26a820, + 0x2e2fc: 0x6d26aa20, 0x2e2fd: 0x6d26ac20, 0x2e2fe: 0x6d26ae20, 0x2e2ff: 0x6d26b020, + // Block 0xb8c, offset 0x2e300 + 0x2e300: 0x6d26b220, 0x2e301: 0x6d26b420, 0x2e302: 0x6d26b620, 0x2e303: 0x6d26b820, + 0x2e304: 0x6d26ba20, 0x2e305: 0x6d26bc20, 0x2e306: 0x6d26be20, 0x2e307: 0x6d26c020, + 0x2e308: 0x6d26c220, 0x2e309: 0x6d26c420, 0x2e30a: 0x6d26c620, 0x2e30b: 0x6d26c820, + 0x2e30c: 0x6d26ca20, 0x2e30d: 0x6d26cc20, 0x2e30e: 0x6d26ce20, 0x2e30f: 0x6d26d020, + 0x2e310: 0x6d26d220, 0x2e311: 0x6d26d420, 0x2e312: 0x6d26d620, 0x2e313: 0x6d26d820, + 0x2e314: 0x6d26da20, 0x2e315: 0x6d26dc20, 0x2e316: 0x6d26de20, 0x2e317: 0x6d26e020, + 0x2e318: 0x6d26e220, 0x2e319: 0x6d26e420, 0x2e31a: 0x6d26e620, 0x2e31b: 0x6d26e820, + 0x2e31c: 0x6d26ea20, 0x2e31d: 0x6d26ec20, 0x2e31e: 0x6d26ee20, 0x2e31f: 0x6d26f020, + 0x2e320: 0x6d26f220, 0x2e321: 0x6d26f420, 0x2e322: 0x6d53c820, 0x2e323: 0x6d53ca20, + 0x2e324: 0x6d53cc20, 0x2e325: 0x6d53ce20, 0x2e326: 0x6d53d020, 0x2e327: 0x6d53d220, + 0x2e328: 0x6d53d420, 0x2e329: 0x6d539c20, 0x2e32a: 0x6d53d620, 0x2e32b: 0x6d53d820, + 0x2e32c: 0x6d53da20, 0x2e32d: 0x6d53dc20, 0x2e32e: 0x6d53de20, 0x2e32f: 0x6d53e020, + 0x2e330: 0x6d53e220, 0x2e331: 0x6d53e420, 0x2e332: 0x6d53e620, 0x2e333: 0x6d53e820, + 0x2e334: 0x6d53ea20, 0x2e335: 0x6d53ec20, 0x2e336: 0x6d53ee20, 0x2e337: 0x6d53f020, + 0x2e338: 0x6d53f220, 0x2e339: 0x6d53f420, 0x2e33a: 0x6d53f620, 0x2e33b: 0x6d53f820, + 0x2e33c: 0x6d53fa20, 0x2e33d: 0x6d53fc20, 0x2e33e: 0x6d53fe20, 0x2e33f: 0x6d540020, + // Block 0xb8d, offset 0x2e340 + 0x2e340: 0x6d540220, 0x2e341: 0x6d540420, 0x2e342: 0x6d540620, 0x2e343: 0x6d280020, + 0x2e344: 0x6d540820, 0x2e345: 0x6d540a20, 0x2e346: 0x6d540c20, 0x2e347: 0x6d540e20, + 0x2e348: 0x6d541020, 0x2e349: 0x6d541220, 0x2e34a: 0x6d541420, 0x2e34b: 0x6d541620, + 0x2e34c: 0x6d541820, 0x2e34d: 0x6d541a20, 0x2e34e: 0x6d541c20, 0x2e34f: 0x6d541e20, + 0x2e350: 0x6d542020, 0x2e351: 0x6d542220, 0x2e352: 0x6d542420, 0x2e353: 0x6d542620, + 0x2e354: 0x6d542820, 0x2e355: 0x6d542a20, 0x2e356: 0x6d542c20, 0x2e357: 0x6d542e20, + 0x2e358: 0x6d543020, 0x2e359: 0x6d543220, 0x2e35a: 0x6d543420, 0x2e35b: 0x6d543620, + 0x2e35c: 0x6d543820, 0x2e35d: 0x6d543a20, 0x2e35e: 0x6d543c20, 0x2e35f: 0x6d543e20, + 0x2e360: 0x6d544020, 0x2e361: 0x6d544220, 0x2e362: 0x6d544420, 0x2e363: 0x6d544620, + 0x2e364: 0x6d544820, 0x2e365: 0x6d544a20, 0x2e366: 0x6d544c20, 0x2e367: 0x6d544e20, + 0x2e368: 0x6d7efe20, 0x2e369: 0x6d545020, 0x2e36a: 0x6d545220, 0x2e36b: 0x6d545420, + 0x2e36c: 0x6d545620, 0x2e36d: 0x6d545820, 0x2e36e: 0x6d26f620, 0x2e36f: 0x6d545a20, + 0x2e370: 0x6d545c20, 0x2e371: 0x6d545e20, 0x2e372: 0x6d7f3020, 0x2e373: 0x6d7f3220, + 0x2e374: 0x6d7f3420, 0x2e375: 0x6d7f3620, 0x2e376: 0x6d7f3820, 0x2e377: 0x6d7f3a20, + 0x2e378: 0x6d7f3c20, 0x2e379: 0x6d7f3e20, 0x2e37a: 0x6d7f4020, 0x2e37b: 0x6d7f4220, + 0x2e37c: 0x6d7f4420, 0x2e37d: 0x6d7f4620, 0x2e37e: 0x6d7f4820, 0x2e37f: 0x6d7f4a20, + // Block 0xb8e, offset 0x2e380 + 0x2e380: 0x6d7f4c20, 0x2e381: 0x6d7f4e20, 0x2e382: 0x6d7f5020, 0x2e383: 0x6d7f5220, + 0x2e384: 0x6d7f5420, 0x2e385: 0x6d7f5620, 0x2e386: 0x6d7f5820, 0x2e387: 0x6d7f5a20, + 0x2e388: 0x6d7f5c20, 0x2e389: 0x6d7f5e20, 0x2e38a: 0x6d7f6020, 0x2e38b: 0x6d7f6220, + 0x2e38c: 0x6d7f6420, 0x2e38d: 0x6d7f6620, 0x2e38e: 0x6d7f6820, 0x2e38f: 0x6d7f6a20, + 0x2e390: 0x6d7f6c20, 0x2e391: 0x6d7f6e20, 0x2e392: 0x6d7f7020, 0x2e393: 0x6d7f7220, + 0x2e394: 0x6d7f7420, 0x2e395: 0x6d7f7620, 0x2e396: 0x6d7f7820, 0x2e397: 0x6d7f7a20, + 0x2e398: 0x6d7f7c20, 0x2e399: 0x6d7f7e20, 0x2e39a: 0x6d7f8020, 0x2e39b: 0x6d7f8220, + 0x2e39c: 0x6d7f8420, 0x2e39d: 0x6d7f8620, 0x2e39e: 0x6d7f8820, 0x2e39f: 0x6d7f8a20, + 0x2e3a0: 0x6d7f8c20, 0x2e3a1: 0x6d7f8e20, 0x2e3a2: 0x6d7f9020, 0x2e3a3: 0x6d7f9220, + 0x2e3a4: 0x6d7f9420, 0x2e3a5: 0x6d546020, 0x2e3a6: 0x6d7f9620, 0x2e3a7: 0x6d7f9820, + 0x2e3a8: 0x6d7f9a20, 0x2e3a9: 0x6d7f9c20, 0x2e3aa: 0x6d7f9e20, 0x2e3ab: 0x6d7fa020, + 0x2e3ac: 0x6d7fa220, 0x2e3ad: 0x6d7fa420, 0x2e3ae: 0x6d7fa620, 0x2e3af: 0x6d7fa820, + 0x2e3b0: 0x6d7faa20, 0x2e3b1: 0x6d7fac20, 0x2e3b2: 0x6d7fae20, 0x2e3b3: 0x6d7fb020, + 0x2e3b4: 0x6d7f0020, 0x2e3b5: 0x6d7fb220, 0x2e3b6: 0x6d7fb420, 0x2e3b7: 0x6d7fb620, + 0x2e3b8: 0x6d7fb820, 0x2e3b9: 0x6d7fba20, 0x2e3ba: 0x6d7fbc20, 0x2e3bb: 0x6d7fbe20, + 0x2e3bc: 0x6d7fc020, 0x2e3bd: 0x6da5dc20, 0x2e3be: 0x6da5de20, 0x2e3bf: 0x6da5e020, + // Block 0xb8f, offset 0x2e3c0 + 0x2e3c0: 0x6da5e220, 0x2e3c1: 0x6da5e420, 0x2e3c2: 0x6da5e620, 0x2e3c3: 0x6da5e820, + 0x2e3c4: 0x6da5ea20, 0x2e3c5: 0x6da5ec20, 0x2e3c6: 0x6da5ee20, 0x2e3c7: 0x6da5f020, + 0x2e3c8: 0x6da5f220, 0x2e3c9: 0x6da5f420, 0x2e3ca: 0x6da5f620, 0x2e3cb: 0x6da5f820, + 0x2e3cc: 0x6da5fa20, 0x2e3cd: 0x6da5fc20, 0x2e3ce: 0x6da5fe20, 0x2e3cf: 0x6da60020, + 0x2e3d0: 0x6da60220, 0x2e3d1: 0x6da60420, 0x2e3d2: 0x6da60620, 0x2e3d3: 0x6da60820, + 0x2e3d4: 0x6da60a20, 0x2e3d5: 0x6da60c20, 0x2e3d6: 0x6da60e20, 0x2e3d7: 0x6da61020, + 0x2e3d8: 0x6da61220, 0x2e3d9: 0x6da61420, 0x2e3da: 0x6da61620, 0x2e3db: 0x6da61820, + 0x2e3dc: 0x6da61a20, 0x2e3dd: 0x6da61c20, 0x2e3de: 0x6da61e20, 0x2e3df: 0x6da62020, + 0x2e3e0: 0x6da62220, 0x2e3e1: 0x6da62420, 0x2e3e2: 0x6da62620, 0x2e3e3: 0x6da62820, + 0x2e3e4: 0x6da62a20, 0x2e3e5: 0x6da62c20, 0x2e3e6: 0x6da62e20, 0x2e3e7: 0x6da63020, + 0x2e3e8: 0x6da63220, 0x2e3e9: 0x6da63420, 0x2e3ea: 0x6da63620, 0x2e3eb: 0x6dc76220, + 0x2e3ec: 0x6dc76420, 0x2e3ed: 0x6dc76620, 0x2e3ee: 0x6dc76820, 0x2e3ef: 0x6dc76a20, + 0x2e3f0: 0x6dc76c20, 0x2e3f1: 0x6dc76e20, 0x2e3f2: 0x6dc77020, 0x2e3f3: 0x6dc77220, + 0x2e3f4: 0x6dc77420, 0x2e3f5: 0x6dc77620, 0x2e3f6: 0x6dc77820, 0x2e3f7: 0x6dc77a20, + 0x2e3f8: 0x6dc77c20, 0x2e3f9: 0x6dc77e20, 0x2e3fa: 0x6dc78020, 0x2e3fb: 0x6dc78220, + 0x2e3fc: 0x6dc78420, 0x2e3fd: 0x6dc78620, 0x2e3fe: 0x6dc78820, 0x2e3ff: 0x6dc78a20, + // Block 0xb90, offset 0x2e400 + 0x2e400: 0x6dc78c20, 0x2e401: 0x6dc78e20, 0x2e402: 0x6dc79020, 0x2e403: 0x6dc79220, + 0x2e404: 0x6dc79420, 0x2e405: 0x6dc79620, 0x2e406: 0x6dc79820, 0x2e407: 0x6dc79a20, + 0x2e408: 0x6dc79c20, 0x2e409: 0x6dc79e20, 0x2e40a: 0x6dc7a020, 0x2e40b: 0x6de3ca20, + 0x2e40c: 0x6de3cc20, 0x2e40d: 0x6de3ce20, 0x2e40e: 0x6de3d020, 0x2e40f: 0x6de3d220, + 0x2e410: 0x6de3d420, 0x2e411: 0x6de3d620, 0x2e412: 0x6de3d820, 0x2e413: 0x6de3da20, + 0x2e414: 0x6de3dc20, 0x2e415: 0x6de3de20, 0x2e416: 0x6de3e020, 0x2e417: 0x6de3e220, + 0x2e418: 0x6de3e420, 0x2e419: 0x6de3e620, 0x2e41a: 0x6de3e820, 0x2e41b: 0x6da6f220, + 0x2e41c: 0x6de3ea20, 0x2e41d: 0x6de3ec20, 0x2e41e: 0x6de3ee20, 0x2e41f: 0x6de3f020, + 0x2e420: 0x6de3f220, 0x2e421: 0x6dc84c20, 0x2e422: 0x6de3f420, 0x2e423: 0x6de3f620, + 0x2e424: 0x6de3f820, 0x2e425: 0x6de3fa20, 0x2e426: 0x6de3fc20, 0x2e427: 0x6de47820, + 0x2e428: 0x6dfb2020, 0x2e429: 0x6dfb2220, 0x2e42a: 0x6dfb2420, 0x2e42b: 0x6de3fe20, + 0x2e42c: 0x6dfb2620, 0x2e42d: 0x6dc84e20, 0x2e42e: 0x6dfb2820, 0x2e42f: 0x6dfb2a20, + 0x2e430: 0x6dfb2c20, 0x2e431: 0x6dfb2e20, 0x2e432: 0x6dfb3020, 0x2e433: 0x6dfb3220, + 0x2e434: 0x6dfb3420, 0x2e435: 0x6dfb3620, 0x2e436: 0x6dfb3820, 0x2e437: 0x6e1db620, + 0x2e438: 0x6e0e6220, 0x2e439: 0x6dfb9820, 0x2e43a: 0x6e0e6420, 0x2e43b: 0x6e0e6620, + 0x2e43c: 0x6e0e6820, 0x2e43d: 0x6e0e6a20, 0x2e43e: 0x6e0e6c20, 0x2e43f: 0x6e0e6e20, + // Block 0xb91, offset 0x2e440 + 0x2e440: 0x6e0e7020, 0x2e441: 0x6e0e7220, 0x2e442: 0x6e0e7420, 0x2e443: 0x6e0e7620, + 0x2e444: 0x6e0e7820, 0x2e445: 0x6e0e7a20, 0x2e446: 0x6e1db820, 0x2e447: 0x6e1dba20, + 0x2e448: 0x6e1dbc20, 0x2e449: 0x6e1dbe20, 0x2e44a: 0x6e1dc020, 0x2e44b: 0x6e1dc220, + 0x2e44c: 0x6e0e7c20, 0x2e44d: 0x6e1dc420, 0x2e44e: 0x6e1dc620, 0x2e44f: 0x6e294220, + 0x2e450: 0x6e294420, 0x2e451: 0x6e294620, 0x2e452: 0x6e294820, 0x2e453: 0x6e325e20, + 0x2e454: 0x6e326020, 0x2e455: 0x6e326220, 0x2e456: 0x6e38b020, 0x2e457: 0x6e38b220, + 0x2e458: 0x6e38b420, 0x2e459: 0x6e38b620, 0x2e45a: 0x6e38b820, 0x2e45b: 0x6e38ba20, + 0x2e45c: 0x6e3d3020, 0x2e45d: 0x6e38d420, 0x2e45e: 0x6e42a620, 0x2e45f: 0x6e42a820, + 0x2e460: 0x6c04a620, 0x2e461: 0x6c12b420, 0x2e462: 0x6c12b620, 0x2e463: 0x6c376e20, + 0x2e464: 0x6c223c20, 0x2e465: 0x6c377020, 0x2e466: 0x6c377220, 0x2e467: 0x6c377420, + 0x2e468: 0x6c52ce20, 0x2e469: 0x6c52d020, 0x2e46a: 0x6c52d220, 0x2e46b: 0x6c755220, + 0x2e46c: 0x6c755420, 0x2e46d: 0x6c755620, 0x2e46e: 0x6c755820, 0x2e46f: 0x6c755a20, + 0x2e470: 0x6c755c20, 0x2e471: 0x6c755e20, 0x2e472: 0x6c9dae20, 0x2e473: 0x6c9db020, + 0x2e474: 0x6c758620, 0x2e475: 0x6c9db220, 0x2e476: 0x6c9db420, 0x2e477: 0x6c9db620, + 0x2e478: 0x6c9db820, 0x2e479: 0x6cca9820, 0x2e47a: 0x6cca9a20, 0x2e47b: 0x6cca9c20, + 0x2e47c: 0x6cca9e20, 0x2e47d: 0x6ccaa020, 0x2e47e: 0x6ccaa220, 0x2e47f: 0x6ccaa420, + // Block 0xb92, offset 0x2e480 + 0x2e480: 0x6cf8c820, 0x2e481: 0x6cf8ca20, 0x2e482: 0x6cf8cc20, 0x2e483: 0x6cf8ce20, + 0x2e484: 0x6cf8d020, 0x2e485: 0x6cf8d220, 0x2e486: 0x6cf8d420, 0x2e487: 0x6cf8d620, + 0x2e488: 0x6cf8d820, 0x2e489: 0x6d280820, 0x2e48a: 0x6d280a20, 0x2e48b: 0x6d280c20, + 0x2e48c: 0x6d280e20, 0x2e48d: 0x6d281020, 0x2e48e: 0x6d555620, 0x2e48f: 0x6d555820, + 0x2e490: 0x6d555a20, 0x2e491: 0x6d555c20, 0x2e492: 0x6d555e20, 0x2e493: 0x6d556020, + 0x2e494: 0x6d80d420, 0x2e495: 0x6d80d620, 0x2e496: 0x6d80d820, 0x2e497: 0x6d80da20, + 0x2e498: 0x6d80dc20, 0x2e499: 0x6d80de20, 0x2e49a: 0x6d80e020, 0x2e49b: 0x6da6fc20, + 0x2e49c: 0x6da6fe20, 0x2e49d: 0x6da70020, 0x2e49e: 0x6dc85020, 0x2e49f: 0x6dc85220, + 0x2e4a0: 0x6de47c20, 0x2e4a1: 0x6e1e0e20, 0x2e4a2: 0x6c04a820, 0x2e4a3: 0x6c097620, + 0x2e4a4: 0x6c12bc20, 0x2e4a5: 0x6c225220, 0x2e4a6: 0x6c379420, 0x2e4a7: 0x6c379620, + 0x2e4a8: 0x6c379820, 0x2e4a9: 0x6c379a20, 0x2e4aa: 0x6c52fe20, 0x2e4ab: 0x6c530020, + 0x2e4ac: 0x6c758820, 0x2e4ad: 0x6c758a20, 0x2e4ae: 0x6ccad620, 0x2e4af: 0x6ccad820, + 0x2e4b0: 0x6d284020, 0x2e4b1: 0x6cf90620, 0x2e4b2: 0x6cf90820, 0x2e4b3: 0x6cf90a20, + 0x2e4b4: 0x6d284420, 0x2e4b5: 0x6d558420, 0x2e4b6: 0x6d558620, 0x2e4b7: 0x6d80f220, + 0x2e4b8: 0x6dc85e20, 0x2e4b9: 0x6c04ae20, 0x2e4ba: 0x6c097c20, 0x2e4bb: 0x6c12c420, + 0x2e4bc: 0x6c225e20, 0x2e4bd: 0x6c37d220, 0x2e4be: 0x6c37d420, 0x2e4bf: 0x6c37d620, + // Block 0xb93, offset 0x2e4c0 + 0x2e4c0: 0x6c37d820, 0x2e4c1: 0x6c37da20, 0x2e4c2: 0x6c530e20, 0x2e4c3: 0x6c531020, + 0x2e4c4: 0x6c531220, 0x2e4c5: 0x6c531420, 0x2e4c6: 0x6c531620, 0x2e4c7: 0x6c531820, + 0x2e4c8: 0x6c75aa20, 0x2e4c9: 0x6c75ac20, 0x2e4ca: 0x6c75ae20, 0x2e4cb: 0x6c75b020, + 0x2e4cc: 0x6c9dec20, 0x2e4cd: 0x6c9dee20, 0x2e4ce: 0x6c9df020, 0x2e4cf: 0x6c9df220, + 0x2e4d0: 0x6c9df420, 0x2e4d1: 0x6c9df620, 0x2e4d2: 0x6c9df820, 0x2e4d3: 0x6c9dfa20, + 0x2e4d4: 0x6ccb0420, 0x2e4d5: 0x6ccb0620, 0x2e4d6: 0x6ccb0820, 0x2e4d7: 0x6ccb0a20, + 0x2e4d8: 0x6ccb0c20, 0x2e4d9: 0x6ccb0e20, 0x2e4da: 0x6ccb1020, 0x2e4db: 0x6cf92c20, + 0x2e4dc: 0x6cf92e20, 0x2e4dd: 0x6d285820, 0x2e4de: 0x6d285a20, 0x2e4df: 0x6d285c20, + 0x2e4e0: 0x6d285e20, 0x2e4e1: 0x6d286020, 0x2e4e2: 0x6d559e20, 0x2e4e3: 0x6d55a020, + 0x2e4e4: 0x6d55a220, 0x2e4e5: 0x6d55a420, 0x2e4e6: 0x6d55a620, 0x2e4e7: 0x6d810820, + 0x2e4e8: 0x6d810a20, 0x2e4e9: 0x6d810c20, 0x2e4ea: 0x6d810e20, 0x2e4eb: 0x6d811020, + 0x2e4ec: 0x6da72020, 0x2e4ed: 0x6da72220, 0x2e4ee: 0x6da72420, 0x2e4ef: 0x6dc86c20, + 0x2e4f0: 0x6de48a20, 0x2e4f1: 0x6de48c20, 0x2e4f2: 0x6e0ee220, 0x2e4f3: 0x6c04b420, + 0x2e4f4: 0x6c380620, 0x2e4f5: 0x6c534820, 0x2e4f6: 0x6c534a20, 0x2e4f7: 0x6c75e020, + 0x2e4f8: 0x6c9e2220, 0x2e4f9: 0x6c9e2420, 0x2e4fa: 0x6c9e2620, 0x2e4fb: 0x6c9e2820, + 0x2e4fc: 0x6ccb5020, 0x2e4fd: 0x6ccb5220, 0x2e4fe: 0x6ccb6820, 0x2e4ff: 0x6cf95820, + // Block 0xb94, offset 0x2e500 + 0x2e500: 0x6cf95a20, 0x2e501: 0x6cf95c20, 0x2e502: 0x6cf95e20, 0x2e503: 0x6d287820, + 0x2e504: 0x6d287a20, 0x2e505: 0x6d55ca20, 0x2e506: 0x6d55cc20, 0x2e507: 0x6d812e20, + 0x2e508: 0x6d813020, 0x2e509: 0x6dc89020, 0x2e50a: 0x6e298620, 0x2e50b: 0x6c04b620, + 0x2e50c: 0x6c04b820, 0x2e50d: 0x6c098020, 0x2e50e: 0x6c12d420, 0x2e50f: 0x6c227620, + 0x2e510: 0x6c227820, 0x2e511: 0x6c380e20, 0x2e512: 0x6c535220, 0x2e513: 0x6cf97c20, + 0x2e514: 0x6c04bc20, 0x2e515: 0x6c12d820, 0x2e516: 0x6c535820, 0x2e517: 0x6c535a20, + 0x2e518: 0x6c535c20, 0x2e519: 0x6c75ee20, 0x2e51a: 0x6da74620, 0x2e51b: 0x6c04be20, + 0x2e51c: 0x6c228220, 0x2e51d: 0x6c228420, 0x2e51e: 0x6c382a20, 0x2e51f: 0x6c382c20, + 0x2e520: 0x6c536020, 0x2e521: 0x6c536220, 0x2e522: 0x6c75f820, 0x2e523: 0x6c75fa20, + 0x2e524: 0x6c75fc20, 0x2e525: 0x6c75fe20, 0x2e526: 0x6c760020, 0x2e527: 0x6c760220, + 0x2e528: 0x6c760420, 0x2e529: 0x6c760620, 0x2e52a: 0x6c760820, 0x2e52b: 0x6c9e6220, + 0x2e52c: 0x6c9e6420, 0x2e52d: 0x6c9e6620, 0x2e52e: 0x6c9e6820, 0x2e52f: 0x6ccb7220, + 0x2e530: 0x6ccb7420, 0x2e531: 0x6ccb7620, 0x2e532: 0x6ccb7820, 0x2e533: 0x6ccb7a20, + 0x2e534: 0x6ccb7c20, 0x2e535: 0x6ccb7e20, 0x2e536: 0x6ccb8020, 0x2e537: 0x6cf98c20, + 0x2e538: 0x6cf98e20, 0x2e539: 0x6cf99020, 0x2e53a: 0x6cf99220, 0x2e53b: 0x6cf99420, + 0x2e53c: 0x6cf99620, 0x2e53d: 0x6cf99820, 0x2e53e: 0x6d28aa20, 0x2e53f: 0x6d55de20, + // Block 0xb95, offset 0x2e540 + 0x2e540: 0x6d55e020, 0x2e541: 0x6d55e220, 0x2e542: 0x6d55e420, 0x2e543: 0x6d816620, + 0x2e544: 0x6d816820, 0x2e545: 0x6d816a20, 0x2e546: 0x6d816c20, 0x2e547: 0x6d816e20, + 0x2e548: 0x6da74a20, 0x2e549: 0x6da74c20, 0x2e54a: 0x6da74e20, 0x2e54b: 0x6dc89620, + 0x2e54c: 0x6de4a420, 0x2e54d: 0x6e1e2420, 0x2e54e: 0x6e3d4a20, 0x2e54f: 0x6c04c220, + 0x2e550: 0x6c098420, 0x2e551: 0x6c098620, 0x2e552: 0x6c12e620, 0x2e553: 0x6c385020, + 0x2e554: 0x6c04c420, 0x2e555: 0x6c098a20, 0x2e556: 0x6c12ea20, 0x2e557: 0x6c12ec20, + 0x2e558: 0x6c12ee20, 0x2e559: 0x6c229620, 0x2e55a: 0x6c229820, 0x2e55b: 0x6c385820, + 0x2e55c: 0x6c385a20, 0x2e55d: 0x6c385c20, 0x2e55e: 0x6c53b820, 0x2e55f: 0x6c53ba20, + 0x2e560: 0x6c53bc20, 0x2e561: 0x6c53be20, 0x2e562: 0x6c53c020, 0x2e563: 0x6c763a20, + 0x2e564: 0x6c763c20, 0x2e565: 0x6c763e20, 0x2e566: 0x6c764020, 0x2e567: 0x6c764220, + 0x2e568: 0x6c764420, 0x2e569: 0x6c764620, 0x2e56a: 0x6c9ea220, 0x2e56b: 0x6c9ea420, + 0x2e56c: 0x6ccbc620, 0x2e56d: 0x6ccbc820, 0x2e56e: 0x6ccbca20, 0x2e56f: 0x6ccbcc20, + 0x2e570: 0x6ccbce20, 0x2e571: 0x6cf9d820, 0x2e572: 0x6d28ec20, 0x2e573: 0x6d28ee20, + 0x2e574: 0x6c04c620, 0x2e575: 0x6c01fa20, 0x2e576: 0x6c098e20, 0x2e577: 0x6c099020, + 0x2e578: 0x6c099220, 0x2e579: 0x6c099420, 0x2e57a: 0x6c098c20, 0x2e57b: 0x6c099c20, + 0x2e57c: 0x6c12f620, 0x2e57d: 0x6c0c5c20, 0x2e57e: 0x6c099e20, 0x2e57f: 0x6c09a020, + // Block 0xb96, offset 0x2e580 + 0x2e580: 0x6c09a220, 0x2e581: 0x6c09a420, 0x2e582: 0x6c229e20, 0x2e583: 0x6c09a620, + 0x2e584: 0x6c09a820, 0x2e585: 0x6c09aa20, 0x2e586: 0x6c12f820, 0x2e587: 0x6c09ac20, + 0x2e588: 0x6c09ae20, 0x2e589: 0x6c09b020, 0x2e58a: 0x6c12fe20, 0x2e58b: 0x6c130020, + 0x2e58c: 0x6c130220, 0x2e58d: 0x6c130420, 0x2e58e: 0x6c130620, 0x2e58f: 0x6c130820, + 0x2e590: 0x6c130a20, 0x2e591: 0x6c130c20, 0x2e592: 0x6c130e20, 0x2e593: 0x6c131020, + 0x2e594: 0x6c131220, 0x2e595: 0x6c131420, 0x2e596: 0x6c22a220, 0x2e597: 0x6c131620, + 0x2e598: 0x6c131820, 0x2e599: 0x6c131a20, 0x2e59a: 0x6c131c20, 0x2e59b: 0x6c131e20, + 0x2e59c: 0x6c132020, 0x2e59d: 0x6c132220, 0x2e59e: 0x6c22a420, 0x2e59f: 0x6c132420, + 0x2e5a0: 0x6c132620, 0x2e5a1: 0x6c132820, 0x2e5a2: 0x6c132a20, 0x2e5a3: 0x6c132c20, + 0x2e5a4: 0x6c132e20, 0x2e5a5: 0x6c22bc20, 0x2e5a6: 0x6c22be20, 0x2e5a7: 0x6c22c020, + 0x2e5a8: 0x6c22c220, 0x2e5a9: 0x6c22c420, 0x2e5aa: 0x6c22c620, 0x2e5ab: 0x6c22c820, + 0x2e5ac: 0x6c386620, 0x2e5ad: 0x6c22ca20, 0x2e5ae: 0x6c22cc20, 0x2e5af: 0x6c22ce20, + 0x2e5b0: 0x6c22d020, 0x2e5b1: 0x6c22d220, 0x2e5b2: 0x6c22d420, 0x2e5b3: 0x6c22d620, + 0x2e5b4: 0x6c22d820, 0x2e5b5: 0x6c22da20, 0x2e5b6: 0x6c22dc20, 0x2e5b7: 0x6c135420, + 0x2e5b8: 0x6c22de20, 0x2e5b9: 0x6c22e020, 0x2e5ba: 0x6c22e220, 0x2e5bb: 0x6c22e420, + 0x2e5bc: 0x6c22e620, 0x2e5bd: 0x6c22e820, 0x2e5be: 0x6c22ea20, 0x2e5bf: 0x6c22ec20, + // Block 0xb97, offset 0x2e5c0 + 0x2e5c0: 0x6c386820, 0x2e5c1: 0x6c22ee20, 0x2e5c2: 0x6c22f020, 0x2e5c3: 0x6c22f220, + 0x2e5c4: 0x6c22f420, 0x2e5c5: 0x6c22f620, 0x2e5c6: 0x6c22f820, 0x2e5c7: 0x6c22fa20, + 0x2e5c8: 0x6c22fc20, 0x2e5c9: 0x6c22fe20, 0x2e5ca: 0x6c386a20, 0x2e5cb: 0x6c230020, + 0x2e5cc: 0x6c230220, 0x2e5cd: 0x6c230420, 0x2e5ce: 0x6c230620, 0x2e5cf: 0x6c230820, + 0x2e5d0: 0x6c230a20, 0x2e5d1: 0x6c230c20, 0x2e5d2: 0x6c230e20, 0x2e5d3: 0x6c386c20, + 0x2e5d4: 0x6c231020, 0x2e5d5: 0x6c231220, 0x2e5d6: 0x6c231420, 0x2e5d7: 0x6c53ce20, + 0x2e5d8: 0x6c231620, 0x2e5d9: 0x6c231820, 0x2e5da: 0x6c231a20, 0x2e5db: 0x6c231c20, + 0x2e5dc: 0x6c231e20, 0x2e5dd: 0x6c386e20, 0x2e5de: 0x6c232020, 0x2e5df: 0x6c232220, + 0x2e5e0: 0x6c232420, 0x2e5e1: 0x6c232620, 0x2e5e2: 0x6c232820, 0x2e5e3: 0x6c232a20, + 0x2e5e4: 0x6c232c20, 0x2e5e5: 0x6c232e20, 0x2e5e6: 0x6c233020, 0x2e5e7: 0x6c233220, + 0x2e5e8: 0x6c233420, 0x2e5e9: 0x6c233620, 0x2e5ea: 0x6c233820, 0x2e5eb: 0x6c388620, + 0x2e5ec: 0x6c388820, 0x2e5ed: 0x6c388a20, 0x2e5ee: 0x6c388c20, 0x2e5ef: 0x6c53d020, + 0x2e5f0: 0x6c388e20, 0x2e5f1: 0x6c389020, 0x2e5f2: 0x6c389220, 0x2e5f3: 0x6c389420, + 0x2e5f4: 0x6c389620, 0x2e5f5: 0x6c389820, 0x2e5f6: 0x6c389a20, 0x2e5f7: 0x6c389c20, + 0x2e5f8: 0x6c389e20, 0x2e5f9: 0x6c38a020, 0x2e5fa: 0x6c38a220, 0x2e5fb: 0x6c38a420, + 0x2e5fc: 0x6c38a620, 0x2e5fd: 0x6c38a820, 0x2e5fe: 0x6c38aa20, 0x2e5ff: 0x6c38ac20, + // Block 0xb98, offset 0x2e600 + 0x2e600: 0x6c38ae20, 0x2e601: 0x6c38b020, 0x2e602: 0x6c38b220, 0x2e603: 0x6c38b420, + 0x2e604: 0x6c38b620, 0x2e605: 0x6c38b820, 0x2e606: 0x6c38ba20, 0x2e607: 0x6c38bc20, + 0x2e608: 0x6c38be20, 0x2e609: 0x6c53d220, 0x2e60a: 0x6c38c020, 0x2e60b: 0x6c38c220, + 0x2e60c: 0x6c38c420, 0x2e60d: 0x6c38c620, 0x2e60e: 0x6c38c820, 0x2e60f: 0x6c38ca20, + 0x2e610: 0x6c38cc20, 0x2e611: 0x6c38ce20, 0x2e612: 0x6c38d020, 0x2e613: 0x6c38d220, + 0x2e614: 0x6c38d420, 0x2e615: 0x6c38d620, 0x2e616: 0x6c38d820, 0x2e617: 0x6c38da20, + 0x2e618: 0x6c38dc20, 0x2e619: 0x6c38de20, 0x2e61a: 0x6c53f220, 0x2e61b: 0x6c38e020, + 0x2e61c: 0x6c38e220, 0x2e61d: 0x6c38e420, 0x2e61e: 0x6c38e620, 0x2e61f: 0x6c38e820, + 0x2e620: 0x6c38ea20, 0x2e621: 0x6c38ec20, 0x2e622: 0x6c38ee20, 0x2e623: 0x6c38f020, + 0x2e624: 0x6c38f220, 0x2e625: 0x6c38f420, 0x2e626: 0x6c38f620, 0x2e627: 0x6c38f820, + 0x2e628: 0x6c38fa20, 0x2e629: 0x6c38fc20, 0x2e62a: 0x6c38fe20, 0x2e62b: 0x6c390020, + 0x2e62c: 0x6c390220, 0x2e62d: 0x6c390420, 0x2e62e: 0x6c390620, 0x2e62f: 0x6c390820, + 0x2e630: 0x6c764a20, 0x2e631: 0x6c390a20, 0x2e632: 0x6c390c20, 0x2e633: 0x6c390e20, + 0x2e634: 0x6c53d420, 0x2e635: 0x6c5a4620, 0x2e636: 0x6c53d620, 0x2e637: 0x6c391020, + 0x2e638: 0x6c391220, 0x2e639: 0x6c391420, 0x2e63a: 0x6c391620, 0x2e63b: 0x6c391820, + 0x2e63c: 0x6c391a20, 0x2e63d: 0x6c391c20, 0x2e63e: 0x6c391e20, 0x2e63f: 0x6c53f420, + // Block 0xb99, offset 0x2e640 + 0x2e640: 0x6c53f620, 0x2e641: 0x6c53f820, 0x2e642: 0x6c53fa20, 0x2e643: 0x6c53fc20, + 0x2e644: 0x6c53fe20, 0x2e645: 0x6c540020, 0x2e646: 0x6c540220, 0x2e647: 0x6c540420, + 0x2e648: 0x6c540620, 0x2e649: 0x6c540820, 0x2e64a: 0x6c540a20, 0x2e64b: 0x6c540c20, + 0x2e64c: 0x6c540e20, 0x2e64d: 0x6c767020, 0x2e64e: 0x6c541020, 0x2e64f: 0x6c541220, + 0x2e650: 0x6c541420, 0x2e651: 0x6c541620, 0x2e652: 0x6c541820, 0x2e653: 0x6c541a20, + 0x2e654: 0x6c541c20, 0x2e655: 0x6c541e20, 0x2e656: 0x6c767220, 0x2e657: 0x6c542020, + 0x2e658: 0x6c542220, 0x2e659: 0x6c542420, 0x2e65a: 0x6c542620, 0x2e65b: 0x6c542820, + 0x2e65c: 0x6c764c20, 0x2e65d: 0x6c542a20, 0x2e65e: 0x6c542c20, 0x2e65f: 0x6c542e20, + 0x2e660: 0x6c543020, 0x2e661: 0x6c543220, 0x2e662: 0x6c543420, 0x2e663: 0x6c543620, + 0x2e664: 0x6c543820, 0x2e665: 0x6c543a20, 0x2e666: 0x6c543c20, 0x2e667: 0x6c543e20, + 0x2e668: 0x6c544020, 0x2e669: 0x6c544220, 0x2e66a: 0x6c544420, 0x2e66b: 0x6c544620, + 0x2e66c: 0x6c544820, 0x2e66d: 0x6c544a20, 0x2e66e: 0x6c544c20, 0x2e66f: 0x6c764e20, + 0x2e670: 0x6c399020, 0x2e671: 0x6c544e20, 0x2e672: 0x6c545020, 0x2e673: 0x6c545220, + 0x2e674: 0x6c545420, 0x2e675: 0x6c545620, 0x2e676: 0x6c545820, 0x2e677: 0x6c545a20, + 0x2e678: 0x6c545c20, 0x2e679: 0x6c545e20, 0x2e67a: 0x6c546020, 0x2e67b: 0x6c546220, + 0x2e67c: 0x6c546420, 0x2e67d: 0x6c546620, 0x2e67e: 0x6c546820, 0x2e67f: 0x6c546a20, + // Block 0xb9a, offset 0x2e680 + 0x2e680: 0x6c546c20, 0x2e681: 0x6c546e20, 0x2e682: 0x6c547020, 0x2e683: 0x6c547220, + 0x2e684: 0x6c547420, 0x2e685: 0x6c547620, 0x2e686: 0x6c765020, 0x2e687: 0x6c547820, + 0x2e688: 0x6c547a20, 0x2e689: 0x6c547c20, 0x2e68a: 0x6c547e20, 0x2e68b: 0x6c548020, + 0x2e68c: 0x6c548220, 0x2e68d: 0x6c548420, 0x2e68e: 0x6c548620, 0x2e68f: 0x6c548820, + 0x2e690: 0x6c548a20, 0x2e691: 0x6c548c20, 0x2e692: 0x6c548e20, 0x2e693: 0x6c549020, + 0x2e694: 0x6c549220, 0x2e695: 0x6c549420, 0x2e696: 0x6c767420, 0x2e697: 0x6c767620, + 0x2e698: 0x6c767820, 0x2e699: 0x6c767a20, 0x2e69a: 0x6c767c20, 0x2e69b: 0x6c767e20, + 0x2e69c: 0x6c768020, 0x2e69d: 0x6c768220, 0x2e69e: 0x6c768420, 0x2e69f: 0x6c768620, + 0x2e6a0: 0x6c768820, 0x2e6a1: 0x6c768a20, 0x2e6a2: 0x6c768c20, 0x2e6a3: 0x6c768e20, + 0x2e6a4: 0x6c769020, 0x2e6a5: 0x6c769220, 0x2e6a6: 0x6c769420, 0x2e6a7: 0x6c769620, + 0x2e6a8: 0x6c769820, 0x2e6a9: 0x6c769a20, 0x2e6aa: 0x6c769c20, 0x2e6ab: 0x6c769e20, + 0x2e6ac: 0x6c76a020, 0x2e6ad: 0x6c76a220, 0x2e6ae: 0x6c76a420, 0x2e6af: 0x6c76a620, + 0x2e6b0: 0x6c76a820, 0x2e6b1: 0x6c76aa20, 0x2e6b2: 0x6c76ac20, 0x2e6b3: 0x6c76ae20, + 0x2e6b4: 0x6c76b020, 0x2e6b5: 0x6c76b220, 0x2e6b6: 0x6c76b420, 0x2e6b7: 0x6c76b620, + 0x2e6b8: 0x6c76b820, 0x2e6b9: 0x6c76ba20, 0x2e6ba: 0x6c76bc20, 0x2e6bb: 0x6c76be20, + 0x2e6bc: 0x6c76c020, 0x2e6bd: 0x6c76c220, 0x2e6be: 0x6c76c420, 0x2e6bf: 0x6c76c620, + // Block 0xb9b, offset 0x2e6c0 + 0x2e6c0: 0x6c76c820, 0x2e6c1: 0x6c76ca20, 0x2e6c2: 0x6c76cc20, 0x2e6c3: 0x6c76ce20, + 0x2e6c4: 0x6c76d020, 0x2e6c5: 0x6c76d220, 0x2e6c6: 0x6c76d420, 0x2e6c7: 0x6c76d620, + 0x2e6c8: 0x6c76d820, 0x2e6c9: 0x6c76da20, 0x2e6ca: 0x6c76dc20, 0x2e6cb: 0x6c76de20, + 0x2e6cc: 0x6c76e020, 0x2e6cd: 0x6c76e220, 0x2e6ce: 0x6c9eae20, 0x2e6cf: 0x6c76e420, + 0x2e6d0: 0x6c76e620, 0x2e6d1: 0x6c76e820, 0x2e6d2: 0x6c76ea20, 0x2e6d3: 0x6c76ec20, + 0x2e6d4: 0x6c76ee20, 0x2e6d5: 0x6c76f020, 0x2e6d6: 0x6c76f220, 0x2e6d7: 0x6c76f420, + 0x2e6d8: 0x6c76f620, 0x2e6d9: 0x6c9ee020, 0x2e6da: 0x6c76f820, 0x2e6db: 0x6c76fa20, + 0x2e6dc: 0x6c76fc20, 0x2e6dd: 0x6c76fe20, 0x2e6de: 0x6c770020, 0x2e6df: 0x6c770220, + 0x2e6e0: 0x6c770420, 0x2e6e1: 0x6c770620, 0x2e6e2: 0x6c770820, 0x2e6e3: 0x6c770a20, + 0x2e6e4: 0x6c770c20, 0x2e6e5: 0x6c770e20, 0x2e6e6: 0x6c771020, 0x2e6e7: 0x6c771220, + 0x2e6e8: 0x6c771420, 0x2e6e9: 0x6c771620, 0x2e6ea: 0x6c9ee220, 0x2e6eb: 0x6c9ee420, + 0x2e6ec: 0x6c9ee620, 0x2e6ed: 0x6c9ee820, 0x2e6ee: 0x6c9eea20, 0x2e6ef: 0x6c9eec20, + 0x2e6f0: 0x6c9eee20, 0x2e6f1: 0x6c9ef020, 0x2e6f2: 0x6c9ef220, 0x2e6f3: 0x6c9ef420, + 0x2e6f4: 0x6c9ef620, 0x2e6f5: 0x6c9ef820, 0x2e6f6: 0x6c9efa20, 0x2e6f7: 0x6c9efc20, + 0x2e6f8: 0x6c9efe20, 0x2e6f9: 0x6c9f0020, 0x2e6fa: 0x6c9f0220, 0x2e6fb: 0x6c9f0420, + 0x2e6fc: 0x6c9f0620, 0x2e6fd: 0x6c9f0820, 0x2e6fe: 0x6c9f0a20, 0x2e6ff: 0x6c9f0c20, + // Block 0xb9c, offset 0x2e700 + 0x2e700: 0x6c9f0e20, 0x2e701: 0x6c9f1020, 0x2e702: 0x6c9f1220, 0x2e703: 0x6c9f1420, + 0x2e704: 0x6c9f1620, 0x2e705: 0x6c9f1820, 0x2e706: 0x6c9f1a20, 0x2e707: 0x6c9f1c20, + 0x2e708: 0x6c9f1e20, 0x2e709: 0x6c9f2020, 0x2e70a: 0x6c9f2220, 0x2e70b: 0x6c9f2420, + 0x2e70c: 0x6c9f2620, 0x2e70d: 0x6c9f2820, 0x2e70e: 0x6c9f2a20, 0x2e70f: 0x6c9f2c20, + 0x2e710: 0x6c9f2e20, 0x2e711: 0x6c9f3020, 0x2e712: 0x6c9f3220, 0x2e713: 0x6c9f3420, + 0x2e714: 0x6c9f3620, 0x2e715: 0x6c9f3820, 0x2e716: 0x6c9f3a20, 0x2e717: 0x6c9f3c20, + 0x2e718: 0x6c9f3e20, 0x2e719: 0x6c9f4020, 0x2e71a: 0x6c9f4220, 0x2e71b: 0x6c9f4420, + 0x2e71c: 0x6c9f4620, 0x2e71d: 0x6c9f4820, 0x2e71e: 0x6c9f4a20, 0x2e71f: 0x6c9f4c20, + 0x2e720: 0x6c9f4e20, 0x2e721: 0x6c9f5020, 0x2e722: 0x6c9f5220, 0x2e723: 0x6c9f5420, + 0x2e724: 0x6c9f5620, 0x2e725: 0x6c9f5820, 0x2e726: 0x6c9f5a20, 0x2e727: 0x6c9f5c20, + 0x2e728: 0x6c9f5e20, 0x2e729: 0x6c9f6020, 0x2e72a: 0x6c9f6220, 0x2e72b: 0x6c9f6420, + 0x2e72c: 0x6c9f6620, 0x2e72d: 0x6c9f6820, 0x2e72e: 0x6c9f6a20, 0x2e72f: 0x6c9f6c20, + 0x2e730: 0x6c9f6e20, 0x2e731: 0x6c9f7020, 0x2e732: 0x6c9f7220, 0x2e733: 0x6c9f7420, + 0x2e734: 0x6c9f7620, 0x2e735: 0x6c9f7820, 0x2e736: 0x6c9f7a20, 0x2e737: 0x6c9f7c20, + 0x2e738: 0x6c9f7e20, 0x2e739: 0x6c9f8020, 0x2e73a: 0x6c9f8220, 0x2e73b: 0x6c9f8420, + 0x2e73c: 0x6ccbdc20, 0x2e73d: 0x6c9f8620, 0x2e73e: 0x6ccbde20, 0x2e73f: 0x6c9f8820, + // Block 0xb9d, offset 0x2e740 + 0x2e740: 0x6c9f8a20, 0x2e741: 0x6c9f8c20, 0x2e742: 0x6c9f8e20, 0x2e743: 0x6ccc0c20, + 0x2e744: 0x6c9f9020, 0x2e745: 0x6c9f9220, 0x2e746: 0x6c9f9420, 0x2e747: 0x6c9f9620, + 0x2e748: 0x6c9f9820, 0x2e749: 0x6c9f9a20, 0x2e74a: 0x6c9f9c20, 0x2e74b: 0x6c9f9e20, + 0x2e74c: 0x6c9fa020, 0x2e74d: 0x6c9fa220, 0x2e74e: 0x6c9fa420, 0x2e74f: 0x6c9fa620, + 0x2e750: 0x6c9fa820, 0x2e751: 0x6c9faa20, 0x2e752: 0x6c9fac20, 0x2e753: 0x6c9fae20, + 0x2e754: 0x6c9fb020, 0x2e755: 0x6c9fb220, 0x2e756: 0x6c9fb420, 0x2e757: 0x6c9fb620, + 0x2e758: 0x6ccc0e20, 0x2e759: 0x6ccc1020, 0x2e75a: 0x6c9fb820, 0x2e75b: 0x6ccc1220, + 0x2e75c: 0x6ccc1420, 0x2e75d: 0x6ccc1620, 0x2e75e: 0x6ccc1820, 0x2e75f: 0x6ccc1a20, + 0x2e760: 0x6ccc1c20, 0x2e761: 0x6ccc1e20, 0x2e762: 0x6ccc2020, 0x2e763: 0x6ccc2220, + 0x2e764: 0x6ccc2420, 0x2e765: 0x6ccc2620, 0x2e766: 0x6ccc2820, 0x2e767: 0x6ccc2a20, + 0x2e768: 0x6ccc2c20, 0x2e769: 0x6ccc2e20, 0x2e76a: 0x6ccc3020, 0x2e76b: 0x6ccc3220, + 0x2e76c: 0x6ccc3420, 0x2e76d: 0x6ccc3620, 0x2e76e: 0x6ccc3820, 0x2e76f: 0x6ccc3a20, + 0x2e770: 0x6ccc3c20, 0x2e771: 0x6ccc3e20, 0x2e772: 0x6ccc4020, 0x2e773: 0x6ccc4220, + 0x2e774: 0x6ccc4420, 0x2e775: 0x6ccc4620, 0x2e776: 0x6ccc4820, 0x2e777: 0x6ccc4a20, + 0x2e778: 0x6ccc4c20, 0x2e779: 0x6ccc4e20, 0x2e77a: 0x6ccc5020, 0x2e77b: 0x6ccc5220, + 0x2e77c: 0x6ccc5420, 0x2e77d: 0x6ccc5620, 0x2e77e: 0x6ccc5820, 0x2e77f: 0x6ccc5a20, + // Block 0xb9e, offset 0x2e780 + 0x2e780: 0x6ccc5c20, 0x2e781: 0x6ccc5e20, 0x2e782: 0x6ccc6020, 0x2e783: 0x6ccc6220, + 0x2e784: 0x6ccc6420, 0x2e785: 0x6ccc6620, 0x2e786: 0x6ccc6820, 0x2e787: 0x6ccc6a20, + 0x2e788: 0x6ccc6c20, 0x2e789: 0x6ccc6e20, 0x2e78a: 0x6ccc7020, 0x2e78b: 0x6ccc7220, + 0x2e78c: 0x6ccc7420, 0x2e78d: 0x6ccc7620, 0x2e78e: 0x6ccc7820, 0x2e78f: 0x6ccc7a20, + 0x2e790: 0x6ccc7c20, 0x2e791: 0x6ccc7e20, 0x2e792: 0x6ccc8020, 0x2e793: 0x6ccc8220, + 0x2e794: 0x6ccc8420, 0x2e795: 0x6ccc8620, 0x2e796: 0x6ccc8820, 0x2e797: 0x6ccc8a20, + 0x2e798: 0x6ccc8c20, 0x2e799: 0x6ccc8e20, 0x2e79a: 0x6ccc9020, 0x2e79b: 0x6ccc9220, + 0x2e79c: 0x6ccc9420, 0x2e79d: 0x6ccc9620, 0x2e79e: 0x6ccc9820, 0x2e79f: 0x6ccc9a20, + 0x2e7a0: 0x6ccc9c20, 0x2e7a1: 0x6ccc9e20, 0x2e7a2: 0x6ccca020, 0x2e7a3: 0x6ccca220, + 0x2e7a4: 0x6ccca420, 0x2e7a5: 0x6ccca620, 0x2e7a6: 0x6ccca820, 0x2e7a7: 0x6cccaa20, + 0x2e7a8: 0x6cccac20, 0x2e7a9: 0x6cccae20, 0x2e7aa: 0x6cccb020, 0x2e7ab: 0x6cccb220, + 0x2e7ac: 0x6cf9e220, 0x2e7ad: 0x6cccb420, 0x2e7ae: 0x6cccb620, 0x2e7af: 0x6cccb820, + 0x2e7b0: 0x6cccba20, 0x2e7b1: 0x6cccbc20, 0x2e7b2: 0x6cccbe20, 0x2e7b3: 0x6cccc020, + 0x2e7b4: 0x6c9fba20, 0x2e7b5: 0x6cccc220, 0x2e7b6: 0x6cccc420, 0x2e7b7: 0x6cccc620, + 0x2e7b8: 0x6cccc820, 0x2e7b9: 0x6cccca20, 0x2e7ba: 0x6ccccc20, 0x2e7bb: 0x6cccce20, + 0x2e7bc: 0x6cccd020, 0x2e7bd: 0x6cccd220, 0x2e7be: 0x6cccd420, 0x2e7bf: 0x6cccd620, + // Block 0xb9f, offset 0x2e7c0 + 0x2e7c0: 0x6cccd820, 0x2e7c1: 0x6cccda20, 0x2e7c2: 0x6cccdc20, 0x2e7c3: 0x6cccde20, + 0x2e7c4: 0x6ccce020, 0x2e7c5: 0x6ccce220, 0x2e7c6: 0x6ccce420, 0x2e7c7: 0x6ccce620, + 0x2e7c8: 0x6ccce820, 0x2e7c9: 0x6cccea20, 0x2e7ca: 0x6cccec20, 0x2e7cb: 0x6cccee20, + 0x2e7cc: 0x6cccf020, 0x2e7cd: 0x6cfa1220, 0x2e7ce: 0x6cfa1420, 0x2e7cf: 0x6cfa1620, + 0x2e7d0: 0x6cfa1820, 0x2e7d1: 0x6cfa1a20, 0x2e7d2: 0x6cfa1c20, 0x2e7d3: 0x6cfa1e20, + 0x2e7d4: 0x6cfa2020, 0x2e7d5: 0x6cfa2220, 0x2e7d6: 0x6cfa2420, 0x2e7d7: 0x6cfa2620, + 0x2e7d8: 0x6cfa2820, 0x2e7d9: 0x6cfa2a20, 0x2e7da: 0x6cfa2c20, 0x2e7db: 0x6cfa2e20, + 0x2e7dc: 0x6cfa3020, 0x2e7dd: 0x6cfa3220, 0x2e7de: 0x6cfa3420, 0x2e7df: 0x6cfa3620, + 0x2e7e0: 0x6cfa3820, 0x2e7e1: 0x6cfa3a20, 0x2e7e2: 0x6cfa3c20, 0x2e7e3: 0x6cfa3e20, + 0x2e7e4: 0x6cfa4020, 0x2e7e5: 0x6cfa4220, 0x2e7e6: 0x6cfa4420, 0x2e7e7: 0x6cfa4620, + 0x2e7e8: 0x6cfa4820, 0x2e7e9: 0x6cfa4a20, 0x2e7ea: 0x6cfa4c20, 0x2e7eb: 0x6cfa4e20, + 0x2e7ec: 0x6cfa5020, 0x2e7ed: 0x6cfa5220, 0x2e7ee: 0x6cfa5420, 0x2e7ef: 0x6cfa5620, + 0x2e7f0: 0x6cfa5820, 0x2e7f1: 0x6cfa5a20, 0x2e7f2: 0x6cfa5c20, 0x2e7f3: 0x6cfa5e20, + 0x2e7f4: 0x6cfa6020, 0x2e7f5: 0x6cfa6220, 0x2e7f6: 0x6cfa6420, 0x2e7f7: 0x6cfa6620, + 0x2e7f8: 0x6cfa6820, 0x2e7f9: 0x6cfa6a20, 0x2e7fa: 0x6cfa6c20, 0x2e7fb: 0x6cfa6e20, + 0x2e7fc: 0x6cfa7020, 0x2e7fd: 0x6cfa7220, 0x2e7fe: 0x6cfa7420, 0x2e7ff: 0x6cfa7620, + // Block 0xba0, offset 0x2e800 + 0x2e800: 0x6cfa7820, 0x2e801: 0x6cfa7a20, 0x2e802: 0x6cfa7c20, 0x2e803: 0x6cfa7e20, + 0x2e804: 0x6cfa8020, 0x2e805: 0x6cfa8220, 0x2e806: 0x6cfa8420, 0x2e807: 0x6cfa8620, + 0x2e808: 0x6cfa8820, 0x2e809: 0x6cfa8a20, 0x2e80a: 0x6cfa8c20, 0x2e80b: 0x6cccf220, + 0x2e80c: 0x6d291220, 0x2e80d: 0x6cfa8e20, 0x2e80e: 0x6d28f420, 0x2e80f: 0x6cfa9020, + 0x2e810: 0x6cfa9220, 0x2e811: 0x6cfa9420, 0x2e812: 0x6cfa9620, 0x2e813: 0x6cfa9820, + 0x2e814: 0x6cfa9a20, 0x2e815: 0x6d561820, 0x2e816: 0x6cfa9c20, 0x2e817: 0x6cfa9e20, + 0x2e818: 0x6cfaa020, 0x2e819: 0x6cfaa220, 0x2e81a: 0x6cfbd620, 0x2e81b: 0x6cfaa420, + 0x2e81c: 0x6cfaa620, 0x2e81d: 0x6cfaa820, 0x2e81e: 0x6cccf420, 0x2e81f: 0x6cfaaa20, + 0x2e820: 0x6cfaac20, 0x2e821: 0x6cfaae20, 0x2e822: 0x6cfab020, 0x2e823: 0x6cfab220, + 0x2e824: 0x6cfab420, 0x2e825: 0x6cfab620, 0x2e826: 0x6cfab820, 0x2e827: 0x6cfaba20, + 0x2e828: 0x6cfabc20, 0x2e829: 0x6cfabe20, 0x2e82a: 0x6cfac020, 0x2e82b: 0x6d291420, + 0x2e82c: 0x6d291620, 0x2e82d: 0x6d291820, 0x2e82e: 0x6d291a20, 0x2e82f: 0x6d291c20, + 0x2e830: 0x6d291e20, 0x2e831: 0x6d292020, 0x2e832: 0x6d292220, 0x2e833: 0x6d292420, + 0x2e834: 0x6d292620, 0x2e835: 0x6d292820, 0x2e836: 0x6d292a20, 0x2e837: 0x6d292c20, + 0x2e838: 0x6d292e20, 0x2e839: 0x6d293020, 0x2e83a: 0x6d293220, 0x2e83b: 0x6d293420, + 0x2e83c: 0x6d293620, 0x2e83d: 0x6d293820, 0x2e83e: 0x6d293a20, 0x2e83f: 0x6d293c20, + // Block 0xba1, offset 0x2e840 + 0x2e840: 0x6d561a20, 0x2e841: 0x6d293e20, 0x2e842: 0x6d294020, 0x2e843: 0x6d294220, + 0x2e844: 0x6d294420, 0x2e845: 0x6d294620, 0x2e846: 0x6d294820, 0x2e847: 0x6d294a20, + 0x2e848: 0x6d294c20, 0x2e849: 0x6d294e20, 0x2e84a: 0x6d295020, 0x2e84b: 0x6d564820, + 0x2e84c: 0x6d295220, 0x2e84d: 0x6d295420, 0x2e84e: 0x6d295620, 0x2e84f: 0x6d295820, + 0x2e850: 0x6d561c20, 0x2e851: 0x6d295a20, 0x2e852: 0x6d295c20, 0x2e853: 0x6cfac220, + 0x2e854: 0x6d295e20, 0x2e855: 0x6d296020, 0x2e856: 0x6d296220, 0x2e857: 0x6d296420, + 0x2e858: 0x6d296620, 0x2e859: 0x6d296820, 0x2e85a: 0x6d296a20, 0x2e85b: 0x6d296c20, + 0x2e85c: 0x6d296e20, 0x2e85d: 0x6d297020, 0x2e85e: 0x6d297220, 0x2e85f: 0x6d297420, + 0x2e860: 0x6d297620, 0x2e861: 0x6d297820, 0x2e862: 0x6d297a20, 0x2e863: 0x6d297c20, + 0x2e864: 0x6d297e20, 0x2e865: 0x6d298020, 0x2e866: 0x6d561e20, 0x2e867: 0x6d298220, + 0x2e868: 0x6d298420, 0x2e869: 0x6d298620, 0x2e86a: 0x6d298820, 0x2e86b: 0x6d298a20, + 0x2e86c: 0x6d298c20, 0x2e86d: 0x6d298e20, 0x2e86e: 0x6d299020, 0x2e86f: 0x6d299220, + 0x2e870: 0x6d299420, 0x2e871: 0x6d299620, 0x2e872: 0x6d299820, 0x2e873: 0x6d299a20, + 0x2e874: 0x6d299c20, 0x2e875: 0x6d299e20, 0x2e876: 0x6d29a020, 0x2e877: 0x6d29a220, + 0x2e878: 0x6d29a420, 0x2e879: 0x6d29a620, 0x2e87a: 0x6d29a820, 0x2e87b: 0x6d29aa20, + 0x2e87c: 0x6d29ac20, 0x2e87d: 0x6d564a20, 0x2e87e: 0x6d29ae20, 0x2e87f: 0x6d562020, + // Block 0xba2, offset 0x2e880 + 0x2e880: 0x6d29b020, 0x2e881: 0x6d562220, 0x2e882: 0x6d29b220, 0x2e883: 0x6d29b420, + 0x2e884: 0x6d29b620, 0x2e885: 0x6d29b820, 0x2e886: 0x6d29ba20, 0x2e887: 0x6d29bc20, + 0x2e888: 0x6d29be20, 0x2e889: 0x6d29c020, 0x2e88a: 0x6d29c220, 0x2e88b: 0x6d29c420, + 0x2e88c: 0x6d29c620, 0x2e88d: 0x6d29c820, 0x2e88e: 0x6d2aca20, 0x2e88f: 0x6d564c20, + 0x2e890: 0x6d564e20, 0x2e891: 0x6d565020, 0x2e892: 0x6d565220, 0x2e893: 0x6d565420, + 0x2e894: 0x6d565620, 0x2e895: 0x6d565820, 0x2e896: 0x6d565a20, 0x2e897: 0x6d565c20, + 0x2e898: 0x6d565e20, 0x2e899: 0x6d566020, 0x2e89a: 0x6d566220, 0x2e89b: 0x6d566420, + 0x2e89c: 0x6d566620, 0x2e89d: 0x6d566820, 0x2e89e: 0x6d819a20, 0x2e89f: 0x6d566a20, + 0x2e8a0: 0x6d566c20, 0x2e8a1: 0x6d566e20, 0x2e8a2: 0x6d567020, 0x2e8a3: 0x6d567220, + 0x2e8a4: 0x6d567420, 0x2e8a5: 0x6d567620, 0x2e8a6: 0x6d567820, 0x2e8a7: 0x6d567a20, + 0x2e8a8: 0x6d567c20, 0x2e8a9: 0x6d567e20, 0x2e8aa: 0x6d568020, 0x2e8ab: 0x6d568220, + 0x2e8ac: 0x6d568420, 0x2e8ad: 0x6d568620, 0x2e8ae: 0x6d568820, 0x2e8af: 0x6d568a20, + 0x2e8b0: 0x6d568c20, 0x2e8b1: 0x6d568e20, 0x2e8b2: 0x6d569020, 0x2e8b3: 0x6d2acc20, + 0x2e8b4: 0x6d569220, 0x2e8b5: 0x6d569420, 0x2e8b6: 0x6d569620, 0x2e8b7: 0x6d569820, + 0x2e8b8: 0x6d569a20, 0x2e8b9: 0x6d569c20, 0x2e8ba: 0x6d569e20, 0x2e8bb: 0x6d56a020, + 0x2e8bc: 0x6d56a220, 0x2e8bd: 0x6d56a420, 0x2e8be: 0x6d56a620, 0x2e8bf: 0x6d56a820, + // Block 0xba3, offset 0x2e8c0 + 0x2e8c0: 0x6da79820, 0x2e8c1: 0x6d56aa20, 0x2e8c2: 0x6d56ac20, 0x2e8c3: 0x6d819c20, + 0x2e8c4: 0x6d56ae20, 0x2e8c5: 0x6d56b020, 0x2e8c6: 0x6d56b220, 0x2e8c7: 0x6d56b420, + 0x2e8c8: 0x6d56b620, 0x2e8c9: 0x6d56b820, 0x2e8ca: 0x6d56ba20, 0x2e8cb: 0x6d56bc20, + 0x2e8cc: 0x6d56be20, 0x2e8cd: 0x6d56c020, 0x2e8ce: 0x6d56c220, 0x2e8cf: 0x6d56c420, + 0x2e8d0: 0x6d56c620, 0x2e8d1: 0x6d56c820, 0x2e8d2: 0x6d56ca20, 0x2e8d3: 0x6d56cc20, + 0x2e8d4: 0x6d56ce20, 0x2e8d5: 0x6d56d020, 0x2e8d6: 0x6d56d220, 0x2e8d7: 0x6d56d420, + 0x2e8d8: 0x6d56d620, 0x2e8d9: 0x6d81c020, 0x2e8da: 0x6d56d820, 0x2e8db: 0x6d56da20, + 0x2e8dc: 0x6d56dc20, 0x2e8dd: 0x6d56de20, 0x2e8de: 0x6d81c220, 0x2e8df: 0x6d81c420, + 0x2e8e0: 0x6d81c620, 0x2e8e1: 0x6d81c820, 0x2e8e2: 0x6d81ca20, 0x2e8e3: 0x6d81cc20, + 0x2e8e4: 0x6d81ce20, 0x2e8e5: 0x6d81d020, 0x2e8e6: 0x6d81d220, 0x2e8e7: 0x6d81d420, + 0x2e8e8: 0x6d81d620, 0x2e8e9: 0x6da77820, 0x2e8ea: 0x6d81d820, 0x2e8eb: 0x6d81da20, + 0x2e8ec: 0x6d81dc20, 0x2e8ed: 0x6d81de20, 0x2e8ee: 0x6d81e020, 0x2e8ef: 0x6d81e220, + 0x2e8f0: 0x6d81e420, 0x2e8f1: 0x6d81e620, 0x2e8f2: 0x6d81e820, 0x2e8f3: 0x6d81ea20, + 0x2e8f4: 0x6d81ec20, 0x2e8f5: 0x6d81ee20, 0x2e8f6: 0x6d81f020, 0x2e8f7: 0x6d81f220, + 0x2e8f8: 0x6d81f420, 0x2e8f9: 0x6d81f620, 0x2e8fa: 0x6d81f820, 0x2e8fb: 0x6d81fa20, + 0x2e8fc: 0x6d81fc20, 0x2e8fd: 0x6d81fe20, 0x2e8fe: 0x6d820020, 0x2e8ff: 0x6d820220, + // Block 0xba4, offset 0x2e900 + 0x2e900: 0x6d820420, 0x2e901: 0x6d820620, 0x2e902: 0x6d820820, 0x2e903: 0x6d820a20, + 0x2e904: 0x6d820c20, 0x2e905: 0x6d820e20, 0x2e906: 0x6d580a20, 0x2e907: 0x6d821020, + 0x2e908: 0x6d821220, 0x2e909: 0x6d821420, 0x2e90a: 0x6d821620, 0x2e90b: 0x6d821820, + 0x2e90c: 0x6da77a20, 0x2e90d: 0x6d821a20, 0x2e90e: 0x6d821c20, 0x2e90f: 0x6d821e20, + 0x2e910: 0x6d56e020, 0x2e911: 0x6d822020, 0x2e912: 0x6d822220, 0x2e913: 0x6d822420, + 0x2e914: 0x6da79a20, 0x2e915: 0x6da79c20, 0x2e916: 0x6d822620, 0x2e917: 0x6da79e20, + 0x2e918: 0x6da7a020, 0x2e919: 0x6da7a220, 0x2e91a: 0x6da7a420, 0x2e91b: 0x6da7a620, + 0x2e91c: 0x6da7a820, 0x2e91d: 0x6da7aa20, 0x2e91e: 0x6da7ac20, 0x2e91f: 0x6da7ae20, + 0x2e920: 0x6da7b020, 0x2e921: 0x6da7b220, 0x2e922: 0x6da7b420, 0x2e923: 0x6da7b620, + 0x2e924: 0x6da7b820, 0x2e925: 0x6da7ba20, 0x2e926: 0x6da7bc20, 0x2e927: 0x6da7be20, + 0x2e928: 0x6da7c020, 0x2e929: 0x6da7c220, 0x2e92a: 0x6da7c420, 0x2e92b: 0x6da7c620, + 0x2e92c: 0x6da7c820, 0x2e92d: 0x6da7ca20, 0x2e92e: 0x6da7cc20, 0x2e92f: 0x6da7ce20, + 0x2e930: 0x6da7d020, 0x2e931: 0x6da7d220, 0x2e932: 0x6da7d420, 0x2e933: 0x6de4c220, + 0x2e934: 0x6da7d620, 0x2e935: 0x6da7d820, 0x2e936: 0x6da7da20, 0x2e937: 0x6dc8c220, + 0x2e938: 0x6da7dc20, 0x2e939: 0x6dc8d220, 0x2e93a: 0x6dc8d420, 0x2e93b: 0x6dc8d620, + 0x2e93c: 0x6dc8d820, 0x2e93d: 0x6dc8da20, 0x2e93e: 0x6dc8dc20, 0x2e93f: 0x6dc8de20, + // Block 0xba5, offset 0x2e940 + 0x2e940: 0x6dc8e020, 0x2e941: 0x6dc8e220, 0x2e942: 0x6dc8e420, 0x2e943: 0x6dc8e620, + 0x2e944: 0x6d82fc20, 0x2e945: 0x6dc8e820, 0x2e946: 0x6dc8ea20, 0x2e947: 0x6dc8ec20, + 0x2e948: 0x6dc8ee20, 0x2e949: 0x6dc8f020, 0x2e94a: 0x6dc8f220, 0x2e94b: 0x6dc8f420, + 0x2e94c: 0x6dc8f620, 0x2e94d: 0x6dc8f820, 0x2e94e: 0x6dc8fa20, 0x2e94f: 0x6dc8fc20, + 0x2e950: 0x6dc8fe20, 0x2e951: 0x6dc90020, 0x2e952: 0x6dc90220, 0x2e953: 0x6dc90420, + 0x2e954: 0x6dc90620, 0x2e955: 0x6de4c420, 0x2e956: 0x6de4c620, 0x2e957: 0x6de4c820, + 0x2e958: 0x6de4ca20, 0x2e959: 0x6de4cc20, 0x2e95a: 0x6de4ce20, 0x2e95b: 0x6de4d020, + 0x2e95c: 0x6de4d220, 0x2e95d: 0x6de4d420, 0x2e95e: 0x6de4d620, 0x2e95f: 0x6de4d820, + 0x2e960: 0x6de4da20, 0x2e961: 0x6de4dc20, 0x2e962: 0x6de4de20, 0x2e963: 0x6de4e020, + 0x2e964: 0x6de4e220, 0x2e965: 0x6de4e420, 0x2e966: 0x6dc9b820, 0x2e967: 0x6de4e620, + 0x2e968: 0x6de4e820, 0x2e969: 0x6de4ea20, 0x2e96a: 0x6dfbc220, 0x2e96b: 0x6de4ec20, + 0x2e96c: 0x6de4ee20, 0x2e96d: 0x6de4f020, 0x2e96e: 0x6de4f220, 0x2e96f: 0x6dfbd020, + 0x2e970: 0x6dfbd220, 0x2e971: 0x6dfbd420, 0x2e972: 0x6dfbd620, 0x2e973: 0x6dfbd820, + 0x2e974: 0x6dfbda20, 0x2e975: 0x6dfbdc20, 0x2e976: 0x6dfbde20, 0x2e977: 0x6dfbe020, + 0x2e978: 0x6dfbe220, 0x2e979: 0x6dfbe420, 0x2e97a: 0x6dfbe620, 0x2e97b: 0x6dfbe820, + 0x2e97c: 0x6dfbea20, 0x2e97d: 0x6dfbec20, 0x2e97e: 0x6dfbee20, 0x2e97f: 0x6dfbf020, + // Block 0xba6, offset 0x2e980 + 0x2e980: 0x6dfbf220, 0x2e981: 0x6dfbf420, 0x2e982: 0x6dfc4820, 0x2e983: 0x6e0f0620, + 0x2e984: 0x6e0f0820, 0x2e985: 0x6e0f0a20, 0x2e986: 0x6e0f0c20, 0x2e987: 0x6e0f0e20, + 0x2e988: 0x6e0f1020, 0x2e989: 0x6e0f1220, 0x2e98a: 0x6e0f1420, 0x2e98b: 0x6e0f1620, + 0x2e98c: 0x6e0f1820, 0x2e98d: 0x6e0f1a20, 0x2e98e: 0x6e3d5220, 0x2e98f: 0x6e0f1c20, + 0x2e990: 0x6e0f1e20, 0x2e991: 0x6e1e3420, 0x2e992: 0x6e1e3620, 0x2e993: 0x6e299620, + 0x2e994: 0x6e1e3820, 0x2e995: 0x6e1e3a20, 0x2e996: 0x6e1e3c20, 0x2e997: 0x6e1e3e20, + 0x2e998: 0x6e1e4020, 0x2e999: 0x6e299e20, 0x2e99a: 0x6e29a020, 0x2e99b: 0x6e29a220, + 0x2e99c: 0x6e29a420, 0x2e99d: 0x6e32a220, 0x2e99e: 0x6e32a420, 0x2e99f: 0x6e32a620, + 0x2e9a0: 0x6e32a820, 0x2e9a1: 0x6e32aa20, 0x2e9a2: 0x6e38e020, 0x2e9a3: 0x6e38e220, + 0x2e9a4: 0x6e3d5420, 0x2e9a5: 0x6e405c20, 0x2e9a6: 0x6e3d5620, 0x2e9a7: 0x6e405e20, + 0x2e9a8: 0x6e406020, 0x2e9a9: 0x6e45c420, 0x2e9aa: 0x6e463020, 0x2e9ab: 0x6c04d020, + 0x2e9ac: 0x6c04d220, 0x2e9ad: 0x6c09ca20, 0x2e9ae: 0x6c135a20, 0x2e9af: 0x6c135c20, + 0x2e9b0: 0x6c135e20, 0x2e9b1: 0x6c136020, 0x2e9b2: 0x6c136220, 0x2e9b3: 0x6c136420, + 0x2e9b4: 0x6c239020, 0x2e9b5: 0x6c239220, 0x2e9b6: 0x6c239420, 0x2e9b7: 0x6c239620, + 0x2e9b8: 0x6c239820, 0x2e9b9: 0x6c239a20, 0x2e9ba: 0x6c239c20, 0x2e9bb: 0x6c239e20, + 0x2e9bc: 0x6c23a020, 0x2e9bd: 0x6c23a220, 0x2e9be: 0x6c23a420, 0x2e9bf: 0x6c23a620, + // Block 0xba7, offset 0x2e9c0 + 0x2e9c0: 0x6c23a820, 0x2e9c1: 0x6c399e20, 0x2e9c2: 0x6c39a020, 0x2e9c3: 0x6c39a220, + 0x2e9c4: 0x6c39a420, 0x2e9c5: 0x6c39a620, 0x2e9c6: 0x6c39a820, 0x2e9c7: 0x6c399220, + 0x2e9c8: 0x6c39aa20, 0x2e9c9: 0x6c39ac20, 0x2e9ca: 0x6c39ae20, 0x2e9cb: 0x6c39b020, + 0x2e9cc: 0x6c39b220, 0x2e9cd: 0x6c39b420, 0x2e9ce: 0x6c39b620, 0x2e9cf: 0x6c39b820, + 0x2e9d0: 0x6c39ba20, 0x2e9d1: 0x6c39bc20, 0x2e9d2: 0x6c39be20, 0x2e9d3: 0x6c39c020, + 0x2e9d4: 0x6c39c220, 0x2e9d5: 0x6c39c420, 0x2e9d6: 0x6c39c620, 0x2e9d7: 0x6c39c820, + 0x2e9d8: 0x6c39ca20, 0x2e9d9: 0x6c39cc20, 0x2e9da: 0x6c39ce20, 0x2e9db: 0x6c39d020, + 0x2e9dc: 0x6c39d220, 0x2e9dd: 0x6c39d420, 0x2e9de: 0x6c39d620, 0x2e9df: 0x6c552820, + 0x2e9e0: 0x6c552a20, 0x2e9e1: 0x6c552c20, 0x2e9e2: 0x6c552e20, 0x2e9e3: 0x6c553020, + 0x2e9e4: 0x6c553220, 0x2e9e5: 0x6c553420, 0x2e9e6: 0x6c553620, 0x2e9e7: 0x6c553820, + 0x2e9e8: 0x6c553a20, 0x2e9e9: 0x6c553c20, 0x2e9ea: 0x6c553e20, 0x2e9eb: 0x6c554020, + 0x2e9ec: 0x6c554220, 0x2e9ed: 0x6c554420, 0x2e9ee: 0x6c554620, 0x2e9ef: 0x6c554820, + 0x2e9f0: 0x6c554a20, 0x2e9f1: 0x6c554c20, 0x2e9f2: 0x6c554e20, 0x2e9f3: 0x6c555020, + 0x2e9f4: 0x6c555220, 0x2e9f5: 0x6c555420, 0x2e9f6: 0x6c555620, 0x2e9f7: 0x6c555820, + 0x2e9f8: 0x6c555a20, 0x2e9f9: 0x6c555c20, 0x2e9fa: 0x6c555e20, 0x2e9fb: 0x6c556020, + 0x2e9fc: 0x6c556220, 0x2e9fd: 0x6c556420, 0x2e9fe: 0x6c556620, 0x2e9ff: 0x6c556820, + // Block 0xba8, offset 0x2ea00 + 0x2ea00: 0x6c556a20, 0x2ea01: 0x6c556c20, 0x2ea02: 0x6c556e20, 0x2ea03: 0x6c557020, + 0x2ea04: 0x6c77f620, 0x2ea05: 0x6c77f820, 0x2ea06: 0x6c77fa20, 0x2ea07: 0x6c77fc20, + 0x2ea08: 0x6c77fe20, 0x2ea09: 0x6c780020, 0x2ea0a: 0x6c780220, 0x2ea0b: 0x6c780420, + 0x2ea0c: 0x6c780620, 0x2ea0d: 0x6c780820, 0x2ea0e: 0x6c780a20, 0x2ea0f: 0x6c780c20, + 0x2ea10: 0x6c780e20, 0x2ea11: 0x6c781020, 0x2ea12: 0x6c781220, 0x2ea13: 0x6c781420, + 0x2ea14: 0x6c781620, 0x2ea15: 0x6c781820, 0x2ea16: 0x6c781a20, 0x2ea17: 0x6c781c20, + 0x2ea18: 0x6c781e20, 0x2ea19: 0x6c782020, 0x2ea1a: 0x6c782220, 0x2ea1b: 0x6c782420, + 0x2ea1c: 0x6c782620, 0x2ea1d: 0x6c782820, 0x2ea1e: 0x6c782a20, 0x2ea1f: 0x6c782c20, + 0x2ea20: 0x6c782e20, 0x2ea21: 0x6c783020, 0x2ea22: 0x6c783220, 0x2ea23: 0x6c783420, + 0x2ea24: 0x6c783620, 0x2ea25: 0x6c783820, 0x2ea26: 0x6c783a20, 0x2ea27: 0x6c783c20, + 0x2ea28: 0x6c783e20, 0x2ea29: 0x6c784020, 0x2ea2a: 0x6c784220, 0x2ea2b: 0x6c784420, + 0x2ea2c: 0x6c784620, 0x2ea2d: 0x6c784820, 0x2ea2e: 0x6c784a20, 0x2ea2f: 0x6ca0f020, + 0x2ea30: 0x6ca0f220, 0x2ea31: 0x6ca0f420, 0x2ea32: 0x6ca0f620, 0x2ea33: 0x6ca0f820, + 0x2ea34: 0x6ca0fa20, 0x2ea35: 0x6ca0fc20, 0x2ea36: 0x6ca0fe20, 0x2ea37: 0x6ca10020, + 0x2ea38: 0x6ca10220, 0x2ea39: 0x6ca10420, 0x2ea3a: 0x6ca10620, 0x2ea3b: 0x6ccddc20, + 0x2ea3c: 0x6ca10820, 0x2ea3d: 0x6ca10a20, 0x2ea3e: 0x6ca10c20, 0x2ea3f: 0x6ca10e20, + // Block 0xba9, offset 0x2ea40 + 0x2ea40: 0x6ca11020, 0x2ea41: 0x6ca11220, 0x2ea42: 0x6ca11420, 0x2ea43: 0x6ca11620, + 0x2ea44: 0x6ca11820, 0x2ea45: 0x6ca11a20, 0x2ea46: 0x6ca11c20, 0x2ea47: 0x6ca11e20, + 0x2ea48: 0x6ca12020, 0x2ea49: 0x6ca12220, 0x2ea4a: 0x6ca12420, 0x2ea4b: 0x6ca12620, + 0x2ea4c: 0x6ca12820, 0x2ea4d: 0x6ca12a20, 0x2ea4e: 0x6ca12c20, 0x2ea4f: 0x6ca12e20, + 0x2ea50: 0x6ca13020, 0x2ea51: 0x6ca13220, 0x2ea52: 0x6ca13420, 0x2ea53: 0x6ca13620, + 0x2ea54: 0x6ca1cc20, 0x2ea55: 0x6ca13820, 0x2ea56: 0x6ca13a20, 0x2ea57: 0x6ca13c20, + 0x2ea58: 0x6ca13e20, 0x2ea59: 0x6ccdf620, 0x2ea5a: 0x6ccdf820, 0x2ea5b: 0x6ccdfa20, + 0x2ea5c: 0x6ccdfc20, 0x2ea5d: 0x6ccdfe20, 0x2ea5e: 0x6cce0020, 0x2ea5f: 0x6cce0220, + 0x2ea60: 0x6cce0420, 0x2ea61: 0x6cce0620, 0x2ea62: 0x6cce0820, 0x2ea63: 0x6cce0a20, + 0x2ea64: 0x6cce0c20, 0x2ea65: 0x6cce0e20, 0x2ea66: 0x6cce1020, 0x2ea67: 0x6cce1220, + 0x2ea68: 0x6cce1420, 0x2ea69: 0x6cce1620, 0x2ea6a: 0x6cce1820, 0x2ea6b: 0x6cce1a20, + 0x2ea6c: 0x6cce1c20, 0x2ea6d: 0x6cce1e20, 0x2ea6e: 0x6cce2020, 0x2ea6f: 0x6cce2220, + 0x2ea70: 0x6cce2420, 0x2ea71: 0x6cce2620, 0x2ea72: 0x6cce2820, 0x2ea73: 0x6cce2a20, + 0x2ea74: 0x6cce2c20, 0x2ea75: 0x6cce2e20, 0x2ea76: 0x6cce3020, 0x2ea77: 0x6cce3220, + 0x2ea78: 0x6cce3420, 0x2ea79: 0x6cce3620, 0x2ea7a: 0x6cce3820, 0x2ea7b: 0x6cce3a20, + 0x2ea7c: 0x6cce3c20, 0x2ea7d: 0x6cce3e20, 0x2ea7e: 0x6cce4020, 0x2ea7f: 0x6cce4220, + // Block 0xbaa, offset 0x2ea80 + 0x2ea80: 0x6cce4420, 0x2ea81: 0x6cfbfc20, 0x2ea82: 0x6cfbfe20, 0x2ea83: 0x6cfc0020, + 0x2ea84: 0x6cfc0220, 0x2ea85: 0x6cfc0420, 0x2ea86: 0x6cfc0620, 0x2ea87: 0x6cfc0820, + 0x2ea88: 0x6cfc0a20, 0x2ea89: 0x6cfc0c20, 0x2ea8a: 0x6cfc0e20, 0x2ea8b: 0x6cfc1020, + 0x2ea8c: 0x6cfc1220, 0x2ea8d: 0x6cfc1420, 0x2ea8e: 0x6cfc1620, 0x2ea8f: 0x6cfc1820, + 0x2ea90: 0x6cfc1a20, 0x2ea91: 0x6cfc1c20, 0x2ea92: 0x6cfc1e20, 0x2ea93: 0x6cfc2020, + 0x2ea94: 0x6cfc2220, 0x2ea95: 0x6d2ace20, 0x2ea96: 0x6cfc2420, 0x2ea97: 0x6cfc2620, + 0x2ea98: 0x6cfc2820, 0x2ea99: 0x6cfc2a20, 0x2ea9a: 0x6cfc2c20, 0x2ea9b: 0x6d2ad020, + 0x2ea9c: 0x6cfc2e20, 0x2ea9d: 0x6cfc3020, 0x2ea9e: 0x6cfc3220, 0x2ea9f: 0x6cfc3420, + 0x2eaa0: 0x6cfc3620, 0x2eaa1: 0x6cfc3820, 0x2eaa2: 0x6cfc3a20, 0x2eaa3: 0x6cfc3c20, + 0x2eaa4: 0x6cfc3e20, 0x2eaa5: 0x6cfc4020, 0x2eaa6: 0x6cfc4220, 0x2eaa7: 0x6cfc4420, + 0x2eaa8: 0x6cfc4620, 0x2eaa9: 0x6cfc4820, 0x2eaaa: 0x6cfc4a20, 0x2eaab: 0x6cfc4c20, + 0x2eaac: 0x6cfc4e20, 0x2eaad: 0x6cfc5020, 0x2eaae: 0x6cce4620, 0x2eaaf: 0x6cfc5220, + 0x2eab0: 0x6cfc5420, 0x2eab1: 0x6cfc5620, 0x2eab2: 0x6cfc5820, 0x2eab3: 0x6cfc5a20, + 0x2eab4: 0x6cfc5c20, 0x2eab5: 0x6cfc5e20, 0x2eab6: 0x6cfc6020, 0x2eab7: 0x6cfc6220, + 0x2eab8: 0x6cfc6420, 0x2eab9: 0x6d2aea20, 0x2eaba: 0x6cfc6620, 0x2eabb: 0x6d2aec20, + 0x2eabc: 0x6d2aee20, 0x2eabd: 0x6d2af020, 0x2eabe: 0x6d2af220, 0x2eabf: 0x6d2af420, + // Block 0xbab, offset 0x2eac0 + 0x2eac0: 0x6d2af620, 0x2eac1: 0x6d2af820, 0x2eac2: 0x6d2afa20, 0x2eac3: 0x6d2afc20, + 0x2eac4: 0x6d2afe20, 0x2eac5: 0x6d2b0020, 0x2eac6: 0x6d2b0220, 0x2eac7: 0x6d2b0420, + 0x2eac8: 0x6d2b0620, 0x2eac9: 0x6d2b0820, 0x2eaca: 0x6d2b0a20, 0x2eacb: 0x6d2b0c20, + 0x2eacc: 0x6d2b0e20, 0x2eacd: 0x6d2b1020, 0x2eace: 0x6d2b1220, 0x2eacf: 0x6d2b1420, + 0x2ead0: 0x6d2b1620, 0x2ead1: 0x6d2b1820, 0x2ead2: 0x6d2b1a20, 0x2ead3: 0x6d2b1c20, + 0x2ead4: 0x6d2b1e20, 0x2ead5: 0x6d2b2020, 0x2ead6: 0x6d2b2220, 0x2ead7: 0x6d2b2420, + 0x2ead8: 0x6d2b2620, 0x2ead9: 0x6d2b2820, 0x2eada: 0x6d581e20, 0x2eadb: 0x6d582020, + 0x2eadc: 0x6d582220, 0x2eadd: 0x6d582420, 0x2eade: 0x6d582620, 0x2eadf: 0x6d582820, + 0x2eae0: 0x6d582a20, 0x2eae1: 0x6d582c20, 0x2eae2: 0x6d582e20, 0x2eae3: 0x6d583020, + 0x2eae4: 0x6d583220, 0x2eae5: 0x6d583420, 0x2eae6: 0x6d580c20, 0x2eae7: 0x6d583620, + 0x2eae8: 0x6d583820, 0x2eae9: 0x6d583a20, 0x2eaea: 0x6d583c20, 0x2eaeb: 0x6d583e20, + 0x2eaec: 0x6d584020, 0x2eaed: 0x6d584220, 0x2eaee: 0x6d584420, 0x2eaef: 0x6d584620, + 0x2eaf0: 0x6d584820, 0x2eaf1: 0x6d584a20, 0x2eaf2: 0x6d584c20, 0x2eaf3: 0x6d584e20, + 0x2eaf4: 0x6d585020, 0x2eaf5: 0x6d585220, 0x2eaf6: 0x6d831420, 0x2eaf7: 0x6d831620, + 0x2eaf8: 0x6d831820, 0x2eaf9: 0x6d831a20, 0x2eafa: 0x6d831c20, 0x2eafb: 0x6d831e20, + 0x2eafc: 0x6d832020, 0x2eafd: 0x6d832220, 0x2eafe: 0x6d832420, 0x2eaff: 0x6d832620, + // Block 0xbac, offset 0x2eb00 + 0x2eb00: 0x6d832820, 0x2eb01: 0x6d832a20, 0x2eb02: 0x6d832c20, 0x2eb03: 0x6d832e20, + 0x2eb04: 0x6d833020, 0x2eb05: 0x6d833220, 0x2eb06: 0x6d833420, 0x2eb07: 0x6d833620, + 0x2eb08: 0x6d833820, 0x2eb09: 0x6d833a20, 0x2eb0a: 0x6d833c20, 0x2eb0b: 0x6d833e20, + 0x2eb0c: 0x6d834020, 0x2eb0d: 0x6d834220, 0x2eb0e: 0x6d834420, 0x2eb0f: 0x6d834620, + 0x2eb10: 0x6d834820, 0x2eb11: 0x6d834a20, 0x2eb12: 0x6d834c20, 0x2eb13: 0x6d834e20, + 0x2eb14: 0x6d835020, 0x2eb15: 0x6d835220, 0x2eb16: 0x6d835420, 0x2eb17: 0x6d835620, + 0x2eb18: 0x6d835820, 0x2eb19: 0x6d835a20, 0x2eb1a: 0x6d835c20, 0x2eb1b: 0x6d835e20, + 0x2eb1c: 0x6d836020, 0x2eb1d: 0x6d836220, 0x2eb1e: 0x6d836420, 0x2eb1f: 0x6da87c20, + 0x2eb20: 0x6da87e20, 0x2eb21: 0x6da88020, 0x2eb22: 0x6da88220, 0x2eb23: 0x6da88420, + 0x2eb24: 0x6da88620, 0x2eb25: 0x6da88820, 0x2eb26: 0x6da88a20, 0x2eb27: 0x6da88c20, + 0x2eb28: 0x6da88e20, 0x2eb29: 0x6da89020, 0x2eb2a: 0x6da89220, 0x2eb2b: 0x6da89420, + 0x2eb2c: 0x6da89620, 0x2eb2d: 0x6da89820, 0x2eb2e: 0x6da89a20, 0x2eb2f: 0x6da89c20, + 0x2eb30: 0x6da89e20, 0x2eb31: 0x6da8a020, 0x2eb32: 0x6da8a220, 0x2eb33: 0x6da8a420, + 0x2eb34: 0x6da8a620, 0x2eb35: 0x6da8a820, 0x2eb36: 0x6da8aa20, 0x2eb37: 0x6da8ac20, + 0x2eb38: 0x6dc9be20, 0x2eb39: 0x6dc9c020, 0x2eb3a: 0x6dc9c220, 0x2eb3b: 0x6dc9c420, + 0x2eb3c: 0x6dc9c620, 0x2eb3d: 0x6dc9c820, 0x2eb3e: 0x6dc9ca20, 0x2eb3f: 0x6dc9cc20, + // Block 0xbad, offset 0x2eb40 + 0x2eb40: 0x6dc9ce20, 0x2eb41: 0x6dc9d020, 0x2eb42: 0x6de57020, 0x2eb43: 0x6dc9d220, + 0x2eb44: 0x6de57820, 0x2eb45: 0x6de57a20, 0x2eb46: 0x6de57c20, 0x2eb47: 0x6de57e20, + 0x2eb48: 0x6de58020, 0x2eb49: 0x6de58220, 0x2eb4a: 0x6de58420, 0x2eb4b: 0x6dfc5220, + 0x2eb4c: 0x6de58620, 0x2eb4d: 0x6de58820, 0x2eb4e: 0x6de58a20, 0x2eb4f: 0x6dfc5420, + 0x2eb50: 0x6dfc5620, 0x2eb51: 0x6dfc5820, 0x2eb52: 0x6dfc5a20, 0x2eb53: 0x6dfc5c20, + 0x2eb54: 0x6dfc5e20, 0x2eb55: 0x6de58c20, 0x2eb56: 0x6dfc6020, 0x2eb57: 0x6dfc6220, + 0x2eb58: 0x6dfc6420, 0x2eb59: 0x6e0f7e20, 0x2eb5a: 0x6e0f8020, 0x2eb5b: 0x6e0f8220, + 0x2eb5c: 0x6e1e7020, 0x2eb5d: 0x6e0fb220, 0x2eb5e: 0x6e1e7220, 0x2eb5f: 0x6e1e7420, + 0x2eb60: 0x6e1e7620, 0x2eb61: 0x6e29da20, 0x2eb62: 0x6e29dc20, 0x2eb63: 0x6e32c020, + 0x2eb64: 0x6e38f220, 0x2eb65: 0x6e38f420, 0x2eb66: 0x6e38f620, 0x2eb67: 0x6e42b620, + 0x2eb68: 0x6e443420, 0x2eb69: 0x6e468220, 0x2eb6a: 0x6c04d620, 0x2eb6b: 0x6c04d820, + 0x2eb6c: 0x6c3a2820, 0x2eb6d: 0x6c3a2a20, 0x2eb6e: 0x6c55ee20, 0x2eb6f: 0x6c55f020, + 0x2eb70: 0x6c55f220, 0x2eb71: 0x6c78ca20, 0x2eb72: 0x6ccf0a20, 0x2eb73: 0x6d2bdc20, + 0x2eb74: 0x6d590420, 0x2eb75: 0x6da93020, 0x2eb76: 0x6c04de20, 0x2eb77: 0x6c137a20, + 0x2eb78: 0x6c3a3a20, 0x2eb79: 0x6c78d620, 0x2eb7a: 0x6cfd4020, 0x2eb7b: 0x6c04e020, + 0x2eb7c: 0x6c561820, 0x2eb7d: 0x6ca1e020, 0x2eb7e: 0x6d2bec20, 0x2eb7f: 0x6c04e420, + // Block 0xbae, offset 0x2eb80 + 0x2eb80: 0x6c3a4620, 0x2eb81: 0x6c562020, 0x2eb82: 0x6c78e220, 0x2eb83: 0x6cfd4820, + 0x2eb84: 0x6d2bf020, 0x2eb85: 0x6d591e20, 0x2eb86: 0x6da93220, 0x2eb87: 0x6c04e820, + 0x2eb88: 0x6c3a5220, 0x2eb89: 0x6c562a20, 0x2eb8a: 0x6c562c20, 0x2eb8b: 0x6ccf3c20, + 0x2eb8c: 0x6ccf3e20, 0x2eb8d: 0x6ccf4020, 0x2eb8e: 0x6cfd5020, 0x2eb8f: 0x6cfd5220, + 0x2eb90: 0x6cfd5420, 0x2eb91: 0x6cfd5620, 0x2eb92: 0x6cfd5820, 0x2eb93: 0x6d2bfc20, + 0x2eb94: 0x6d2bfe20, 0x2eb95: 0x6d592820, 0x2eb96: 0x6d592a20, 0x2eb97: 0x6d592c20, + 0x2eb98: 0x6de5e220, 0x2eb99: 0x6c04ec20, 0x2eb9a: 0x6ccf6620, 0x2eb9b: 0x6c04f020, + 0x2eb9c: 0x6c04f220, 0x2eb9d: 0x6c138020, 0x2eb9e: 0x6c138220, 0x2eb9f: 0x6c138420, + 0x2eba0: 0x6c23ec20, 0x2eba1: 0x6c23ee20, 0x2eba2: 0x6c23f020, 0x2eba3: 0x6c23f220, + 0x2eba4: 0x6c23f420, 0x2eba5: 0x6c3a6c20, 0x2eba6: 0x6c3a6e20, 0x2eba7: 0x6c3a7020, + 0x2eba8: 0x6c3a7220, 0x2eba9: 0x6c3a7420, 0x2ebaa: 0x6c3a7620, 0x2ebab: 0x6c3a7820, + 0x2ebac: 0x6c3a7a20, 0x2ebad: 0x6c564c20, 0x2ebae: 0x6c564e20, 0x2ebaf: 0x6c565020, + 0x2ebb0: 0x6c565220, 0x2ebb1: 0x6c565420, 0x2ebb2: 0x6c565620, 0x2ebb3: 0x6c565820, + 0x2ebb4: 0x6c565a20, 0x2ebb5: 0x6c565c20, 0x2ebb6: 0x6c791020, 0x2ebb7: 0x6c791220, + 0x2ebb8: 0x6c791420, 0x2ebb9: 0x6c791620, 0x2ebba: 0x6c791820, 0x2ebbb: 0x6ca21e20, + 0x2ebbc: 0x6ca22020, 0x2ebbd: 0x6ca22220, 0x2ebbe: 0x6ca22420, 0x2ebbf: 0x6ca22620, + // Block 0xbaf, offset 0x2ebc0 + 0x2ebc0: 0x6ccf7820, 0x2ebc1: 0x6ca22820, 0x2ebc2: 0x6ccf7a20, 0x2ebc3: 0x6ccf7c20, + 0x2ebc4: 0x6ccf7e20, 0x2ebc5: 0x6ccf8020, 0x2ebc6: 0x6ccf8220, 0x2ebc7: 0x6ccf8420, + 0x2ebc8: 0x6ccf8620, 0x2ebc9: 0x6ccf8820, 0x2ebca: 0x6ccf8a20, 0x2ebcb: 0x6ccf8c20, + 0x2ebcc: 0x6cfd7820, 0x2ebcd: 0x6cfd7a20, 0x2ebce: 0x6cfd7c20, 0x2ebcf: 0x6cfd7e20, + 0x2ebd0: 0x6cfd8020, 0x2ebd1: 0x6cfd8220, 0x2ebd2: 0x6d2c1620, 0x2ebd3: 0x6d2c1820, + 0x2ebd4: 0x6d2c1a20, 0x2ebd5: 0x6d2c1c20, 0x2ebd6: 0x6d2c1e20, 0x2ebd7: 0x6d2c2020, + 0x2ebd8: 0x6d595020, 0x2ebd9: 0x6d595220, 0x2ebda: 0x6d595420, 0x2ebdb: 0x6d595620, + 0x2ebdc: 0x6d845820, 0x2ebdd: 0x6d845a20, 0x2ebde: 0x6d845c20, 0x2ebdf: 0x6d845e20, + 0x2ebe0: 0x6da94e20, 0x2ebe1: 0x6de5e620, 0x2ebe2: 0x6de5e820, 0x2ebe3: 0x6de5ea20, + 0x2ebe4: 0x6de5ec20, 0x2ebe5: 0x6de5ee20, 0x2ebe6: 0x6de5f020, 0x2ebe7: 0x6dfcd820, + 0x2ebe8: 0x6dfcda20, 0x2ebe9: 0x6e1e9c20, 0x2ebea: 0x6e390e20, 0x2ebeb: 0x6e407820, + 0x2ebec: 0x6c04f420, 0x2ebed: 0x6c01fe20, 0x2ebee: 0x6c09dc20, 0x2ebef: 0x6c09de20, + 0x2ebf0: 0x6c09e020, 0x2ebf1: 0x6c138c20, 0x2ebf2: 0x6c138e20, 0x2ebf3: 0x6c139020, + 0x2ebf4: 0x6c139220, 0x2ebf5: 0x6c139420, 0x2ebf6: 0x6c240020, 0x2ebf7: 0x6c139620, + 0x2ebf8: 0x6c139820, 0x2ebf9: 0x6c240a20, 0x2ebfa: 0x6c240c20, 0x2ebfb: 0x6c240e20, + 0x2ebfc: 0x6c241020, 0x2ebfd: 0x6c241220, 0x2ebfe: 0x6c241420, 0x2ebff: 0x6c241620, + // Block 0xbb0, offset 0x2ec00 + 0x2ec00: 0x6c3ab620, 0x2ec01: 0x6c241820, 0x2ec02: 0x6c241a20, 0x2ec03: 0x6c241c20, + 0x2ec04: 0x6c241e20, 0x2ec05: 0x6c242020, 0x2ec06: 0x6c242220, 0x2ec07: 0x6c242420, + 0x2ec08: 0x6c242620, 0x2ec09: 0x6c3acc20, 0x2ec0a: 0x6c569620, 0x2ec0b: 0x6c3ace20, + 0x2ec0c: 0x6c3ad020, 0x2ec0d: 0x6c3ad220, 0x2ec0e: 0x6c3ad420, 0x2ec0f: 0x6c3ad620, + 0x2ec10: 0x6c3ad820, 0x2ec11: 0x6c3ada20, 0x2ec12: 0x6c3adc20, 0x2ec13: 0x6c3ade20, + 0x2ec14: 0x6c3ae020, 0x2ec15: 0x6c3ae220, 0x2ec16: 0x6c3ae420, 0x2ec17: 0x6c3ae620, + 0x2ec18: 0x6c3ae820, 0x2ec19: 0x6c3aea20, 0x2ec1a: 0x6c3aec20, 0x2ec1b: 0x6c3aee20, + 0x2ec1c: 0x6c3af020, 0x2ec1d: 0x6c3af220, 0x2ec1e: 0x6c3af420, 0x2ec1f: 0x6c56a420, + 0x2ec20: 0x6c56a620, 0x2ec21: 0x6c56a820, 0x2ec22: 0x6c56aa20, 0x2ec23: 0x6c56ac20, + 0x2ec24: 0x6c56ae20, 0x2ec25: 0x6c56b020, 0x2ec26: 0x6c56b220, 0x2ec27: 0x6c56b420, + 0x2ec28: 0x6c56b620, 0x2ec29: 0x6c56b820, 0x2ec2a: 0x6c56ba20, 0x2ec2b: 0x6c56bc20, + 0x2ec2c: 0x6c56be20, 0x2ec2d: 0x6c56c020, 0x2ec2e: 0x6c56c220, 0x2ec2f: 0x6c56c420, + 0x2ec30: 0x6c56c620, 0x2ec31: 0x6c56c820, 0x2ec32: 0x6c56ca20, 0x2ec33: 0x6c794420, + 0x2ec34: 0x6c794620, 0x2ec35: 0x6c794820, 0x2ec36: 0x6c794a20, 0x2ec37: 0x6c794c20, + 0x2ec38: 0x6c794e20, 0x2ec39: 0x6c795020, 0x2ec3a: 0x6c795220, 0x2ec3b: 0x6c795420, + 0x2ec3c: 0x6c795620, 0x2ec3d: 0x6c795820, 0x2ec3e: 0x6c795a20, 0x2ec3f: 0x6ca25220, + // Block 0xbb1, offset 0x2ec40 + 0x2ec40: 0x6c795c20, 0x2ec41: 0x6c795e20, 0x2ec42: 0x6c796020, 0x2ec43: 0x6c796220, + 0x2ec44: 0x6ca26420, 0x2ec45: 0x6ca26620, 0x2ec46: 0x6ccfce20, 0x2ec47: 0x6ca26820, + 0x2ec48: 0x6ca26a20, 0x2ec49: 0x6ca26c20, 0x2ec4a: 0x6ca26e20, 0x2ec4b: 0x6ccfd020, + 0x2ec4c: 0x6ccfd220, 0x2ec4d: 0x6ca27020, 0x2ec4e: 0x6ca27220, 0x2ec4f: 0x6ca27420, + 0x2ec50: 0x6ca27620, 0x2ec51: 0x6ca27820, 0x2ec52: 0x6ccfd420, 0x2ec53: 0x6ca27a20, + 0x2ec54: 0x6ca27c20, 0x2ec55: 0x6ca27e20, 0x2ec56: 0x6ca28020, 0x2ec57: 0x6ca28220, + 0x2ec58: 0x6ca28420, 0x2ec59: 0x6ca28620, 0x2ec5a: 0x6ca28820, 0x2ec5b: 0x6ca28a20, + 0x2ec5c: 0x6ca28c20, 0x2ec5d: 0x6ca28e20, 0x2ec5e: 0x6ca29020, 0x2ec5f: 0x6ca29220, + 0x2ec60: 0x6ca29420, 0x2ec61: 0x6ca29620, 0x2ec62: 0x6ccfe420, 0x2ec63: 0x6ccfe620, + 0x2ec64: 0x6ccfe820, 0x2ec65: 0x6ccfea20, 0x2ec66: 0x6ccfec20, 0x2ec67: 0x6ccfee20, + 0x2ec68: 0x6ccff020, 0x2ec69: 0x6ccff220, 0x2ec6a: 0x6ca29820, 0x2ec6b: 0x6ccfd620, + 0x2ec6c: 0x6ccff420, 0x2ec6d: 0x6ccff620, 0x2ec6e: 0x6cfdbe20, 0x2ec6f: 0x6ccff820, + 0x2ec70: 0x6ccffa20, 0x2ec71: 0x6ccffc20, 0x2ec72: 0x6ccffe20, 0x2ec73: 0x6cd00020, + 0x2ec74: 0x6cd00220, 0x2ec75: 0x6cd00420, 0x2ec76: 0x6cd00620, 0x2ec77: 0x6cfdc020, + 0x2ec78: 0x6cd00820, 0x2ec79: 0x6cd00a20, 0x2ec7a: 0x6cfdd220, 0x2ec7b: 0x6cfdd420, + 0x2ec7c: 0x6cfdd620, 0x2ec7d: 0x6cfdd820, 0x2ec7e: 0x6cfdda20, 0x2ec7f: 0x6cfddc20, + // Block 0xbb2, offset 0x2ec80 + 0x2ec80: 0x6cfdde20, 0x2ec81: 0x6cfdc220, 0x2ec82: 0x6cfde020, 0x2ec83: 0x6d2c6a20, + 0x2ec84: 0x6d2c7820, 0x2ec85: 0x6cfde220, 0x2ec86: 0x6cfde420, 0x2ec87: 0x6cfde620, + 0x2ec88: 0x6cfde820, 0x2ec89: 0x6cfdea20, 0x2ec8a: 0x6cfdec20, 0x2ec8b: 0x6d599420, + 0x2ec8c: 0x6d2c7a20, 0x2ec8d: 0x6d2c7c20, 0x2ec8e: 0x6d598620, 0x2ec8f: 0x6d2c7e20, + 0x2ec90: 0x6d2c8020, 0x2ec91: 0x6d2c8220, 0x2ec92: 0x6d2c8420, 0x2ec93: 0x6d2c6820, + 0x2ec94: 0x6d2c8620, 0x2ec95: 0x6d2c8820, 0x2ec96: 0x6d599620, 0x2ec97: 0x6d599820, + 0x2ec98: 0x6d599a20, 0x2ec99: 0x6d599c20, 0x2ec9a: 0x6d599e20, 0x2ec9b: 0x6d59a020, + 0x2ec9c: 0x6d59a220, 0x2ec9d: 0x6d59a420, 0x2ec9e: 0x6d59a620, 0x2ec9f: 0x6d59a820, + 0x2eca0: 0x6d59aa20, 0x2eca1: 0x6d59ac20, 0x2eca2: 0x6d59ae20, 0x2eca3: 0x6d847e20, + 0x2eca4: 0x6d59b020, 0x2eca5: 0x6d848620, 0x2eca6: 0x6d848820, 0x2eca7: 0x6d848a20, + 0x2eca8: 0x6d848c20, 0x2eca9: 0x6d848e20, 0x2ecaa: 0x6d849020, 0x2ecab: 0x6d849220, + 0x2ecac: 0x6d849420, 0x2ecad: 0x6d849620, 0x2ecae: 0x6da96a20, 0x2ecaf: 0x6da96c20, + 0x2ecb0: 0x6da96e20, 0x2ecb1: 0x6da97020, 0x2ecb2: 0x6da97220, 0x2ecb3: 0x6da97420, + 0x2ecb4: 0x6da97620, 0x2ecb5: 0x6dca5a20, 0x2ecb6: 0x6dca5c20, 0x2ecb7: 0x6dca5e20, + 0x2ecb8: 0x6de60020, 0x2ecb9: 0x6de60620, 0x2ecba: 0x6de60820, 0x2ecbb: 0x6dfce620, + 0x2ecbc: 0x6dfcf020, 0x2ecbd: 0x6dfcf220, 0x2ecbe: 0x6e0fc820, 0x2ecbf: 0x6e1ea820, + // Block 0xbb3, offset 0x2ecc0 + 0x2ecc0: 0x6e1eaa20, 0x2ecc1: 0x6e2a0c20, 0x2ecc2: 0x6e2a0e20, 0x2ecc3: 0x6e2a1020, + 0x2ecc4: 0x6c09ee20, 0x2ecc5: 0x6c572620, 0x2ecc6: 0x6c79ba20, 0x2ecc7: 0x6ca2d620, + 0x2ecc8: 0x6ca2d820, 0x2ecc9: 0x6c09f220, 0x2ecca: 0x6c09f420, 0x2eccb: 0x6c04fa20, + 0x2eccc: 0x6c09f620, 0x2eccd: 0x6c09f820, 0x2ecce: 0x6c13be20, 0x2eccf: 0x6c13c020, + 0x2ecd0: 0x6c13c220, 0x2ecd1: 0x6c13c420, 0x2ecd2: 0x6c247420, 0x2ecd3: 0x6c247620, + 0x2ecd4: 0x6c247820, 0x2ecd5: 0x6c247a20, 0x2ecd6: 0x6c247c20, 0x2ecd7: 0x6c247e20, + 0x2ecd8: 0x6c248020, 0x2ecd9: 0x6c248220, 0x2ecda: 0x6c248420, 0x2ecdb: 0x6c248620, + 0x2ecdc: 0x6c3b4420, 0x2ecdd: 0x6c3b4620, 0x2ecde: 0x6c3b4820, 0x2ecdf: 0x6c3b4a20, + 0x2ece0: 0x6c3b4c20, 0x2ece1: 0x6c3b4e20, 0x2ece2: 0x6c3b5020, 0x2ece3: 0x6c3b5220, + 0x2ece4: 0x6c3b5420, 0x2ece5: 0x6c3b5620, 0x2ece6: 0x6c3b5820, 0x2ece7: 0x6c3b5a20, + 0x2ece8: 0x6c3b5c20, 0x2ece9: 0x6c3b5e20, 0x2ecea: 0x6c3b6020, 0x2eceb: 0x6c3b6220, + 0x2ecec: 0x6c3b6420, 0x2eced: 0x6c3b6620, 0x2ecee: 0x6c3b6820, 0x2ecef: 0x6c3b6a20, + 0x2ecf0: 0x6c3b6c20, 0x2ecf1: 0x6c3b6e20, 0x2ecf2: 0x6c573a20, 0x2ecf3: 0x6c573c20, + 0x2ecf4: 0x6c573e20, 0x2ecf5: 0x6c574020, 0x2ecf6: 0x6c574220, 0x2ecf7: 0x6c574420, + 0x2ecf8: 0x6c574620, 0x2ecf9: 0x6c574820, 0x2ecfa: 0x6c79be20, 0x2ecfb: 0x6c574a20, + 0x2ecfc: 0x6c79c020, 0x2ecfd: 0x6c574c20, 0x2ecfe: 0x6c574e20, 0x2ecff: 0x6c575020, + // Block 0xbb4, offset 0x2ed00 + 0x2ed00: 0x6c575220, 0x2ed01: 0x6c575420, 0x2ed02: 0x6c575620, 0x2ed03: 0x6c575820, + 0x2ed04: 0x6c575a20, 0x2ed05: 0x6c575c20, 0x2ed06: 0x6c575e20, 0x2ed07: 0x6c576020, + 0x2ed08: 0x6c576220, 0x2ed09: 0x6c576420, 0x2ed0a: 0x6c576620, 0x2ed0b: 0x6c576820, + 0x2ed0c: 0x6c576a20, 0x2ed0d: 0x6c576c20, 0x2ed0e: 0x6c576e20, 0x2ed0f: 0x6c577020, + 0x2ed10: 0x6c577220, 0x2ed11: 0x6c577420, 0x2ed12: 0x6c79d620, 0x2ed13: 0x6c79d820, + 0x2ed14: 0x6c79da20, 0x2ed15: 0x6c79dc20, 0x2ed16: 0x6c79de20, 0x2ed17: 0x6c79e020, + 0x2ed18: 0x6c79e220, 0x2ed19: 0x6c79e420, 0x2ed1a: 0x6c79e620, 0x2ed1b: 0x6c79e820, + 0x2ed1c: 0x6c79ea20, 0x2ed1d: 0x6c79ec20, 0x2ed1e: 0x6c79ee20, 0x2ed1f: 0x6c79f020, + 0x2ed20: 0x6c79f220, 0x2ed21: 0x6c79f420, 0x2ed22: 0x6c79f620, 0x2ed23: 0x6c79f820, + 0x2ed24: 0x6c79fa20, 0x2ed25: 0x6c79fc20, 0x2ed26: 0x6c79fe20, 0x2ed27: 0x6c7a0020, + 0x2ed28: 0x6c7a0220, 0x2ed29: 0x6c7a0420, 0x2ed2a: 0x6c7a0620, 0x2ed2b: 0x6c7a0820, + 0x2ed2c: 0x6c7a0a20, 0x2ed2d: 0x6c7a0c20, 0x2ed2e: 0x6c7a0e20, 0x2ed2f: 0x6c7a1020, + 0x2ed30: 0x6c7a1220, 0x2ed31: 0x6c7a1420, 0x2ed32: 0x6c7a1620, 0x2ed33: 0x6ca2ea20, + 0x2ed34: 0x6ca2ec20, 0x2ed35: 0x6ca2ee20, 0x2ed36: 0x6ca2f020, 0x2ed37: 0x6cd08c20, + 0x2ed38: 0x6ca2f220, 0x2ed39: 0x6c7a7220, 0x2ed3a: 0x6ca2f420, 0x2ed3b: 0x6ca2f620, + 0x2ed3c: 0x6ca2f820, 0x2ed3d: 0x6ca2fa20, 0x2ed3e: 0x6ca2fc20, 0x2ed3f: 0x6ca2fe20, + // Block 0xbb5, offset 0x2ed40 + 0x2ed40: 0x6ca30020, 0x2ed41: 0x6ca30220, 0x2ed42: 0x6ca30420, 0x2ed43: 0x6ca30620, + 0x2ed44: 0x6ca30820, 0x2ed45: 0x6ca30a20, 0x2ed46: 0x6ca30c20, 0x2ed47: 0x6ca30e20, + 0x2ed48: 0x6ca31020, 0x2ed49: 0x6c7a1820, 0x2ed4a: 0x6ca31220, 0x2ed4b: 0x6ca31420, + 0x2ed4c: 0x6ca31620, 0x2ed4d: 0x6ca31820, 0x2ed4e: 0x6ca31a20, 0x2ed4f: 0x6ca31c20, + 0x2ed50: 0x6ca31e20, 0x2ed51: 0x6ca32020, 0x2ed52: 0x6ca32220, 0x2ed53: 0x6ca32420, + 0x2ed54: 0x6cd08e20, 0x2ed55: 0x6cd09020, 0x2ed56: 0x6cd09220, 0x2ed57: 0x6cd09420, + 0x2ed58: 0x6cd09620, 0x2ed59: 0x6cd09820, 0x2ed5a: 0x6cd09a20, 0x2ed5b: 0x6cd09c20, + 0x2ed5c: 0x6cd09e20, 0x2ed5d: 0x6cd0a020, 0x2ed5e: 0x6cfe6220, 0x2ed5f: 0x6cd0a220, + 0x2ed60: 0x6cd0a420, 0x2ed61: 0x6cd0a620, 0x2ed62: 0x6cd0a820, 0x2ed63: 0x6cd0aa20, + 0x2ed64: 0x6cd0ac20, 0x2ed65: 0x6cd0ae20, 0x2ed66: 0x6cd0b020, 0x2ed67: 0x6cfe4c20, + 0x2ed68: 0x6cd0b220, 0x2ed69: 0x6cd0b420, 0x2ed6a: 0x6cd0b620, 0x2ed6b: 0x6cd0b820, + 0x2ed6c: 0x6cd0ba20, 0x2ed6d: 0x6cd0bc20, 0x2ed6e: 0x6cd0be20, 0x2ed6f: 0x6cd0c020, + 0x2ed70: 0x6cd0c220, 0x2ed71: 0x6cd0c420, 0x2ed72: 0x6cd0c620, 0x2ed73: 0x6cd0c820, + 0x2ed74: 0x6cd0ca20, 0x2ed75: 0x6cd0cc20, 0x2ed76: 0x6cd0ce20, 0x2ed77: 0x6cd0d020, + 0x2ed78: 0x6cd0d220, 0x2ed79: 0x6cd0d420, 0x2ed7a: 0x6cd0d620, 0x2ed7b: 0x6cd0d820, + 0x2ed7c: 0x6cd0da20, 0x2ed7d: 0x6cfe6420, 0x2ed7e: 0x6cfe6620, 0x2ed7f: 0x6cfe6820, + // Block 0xbb6, offset 0x2ed80 + 0x2ed80: 0x6cfe6a20, 0x2ed81: 0x6cfe6c20, 0x2ed82: 0x6cfe6e20, 0x2ed83: 0x6cfe7020, + 0x2ed84: 0x6cfe7220, 0x2ed85: 0x6cfe7420, 0x2ed86: 0x6cfe7620, 0x2ed87: 0x6cfe7820, + 0x2ed88: 0x6cfe7a20, 0x2ed89: 0x6cfe7c20, 0x2ed8a: 0x6cfe7e20, 0x2ed8b: 0x6cfe8020, + 0x2ed8c: 0x6cfe8220, 0x2ed8d: 0x6cfe8420, 0x2ed8e: 0x6cfe8620, 0x2ed8f: 0x6cfe8820, + 0x2ed90: 0x6cfe8a20, 0x2ed91: 0x6cfe8c20, 0x2ed92: 0x6cfe8e20, 0x2ed93: 0x6cfe9020, + 0x2ed94: 0x6cfe9220, 0x2ed95: 0x6cfe9420, 0x2ed96: 0x6cfe9620, 0x2ed97: 0x6cfe9820, + 0x2ed98: 0x6cfe9a20, 0x2ed99: 0x6cfe9c20, 0x2ed9a: 0x6cfe9e20, 0x2ed9b: 0x6cfea020, + 0x2ed9c: 0x6cfea220, 0x2ed9d: 0x6cfea420, 0x2ed9e: 0x6cfea620, 0x2ed9f: 0x6cfea820, + 0x2eda0: 0x6d2cea20, 0x2eda1: 0x6d2cec20, 0x2eda2: 0x6d2cee20, 0x2eda3: 0x6d2cf020, + 0x2eda4: 0x6d2cf220, 0x2eda5: 0x6d2cf420, 0x2eda6: 0x6d2cf620, 0x2eda7: 0x6d2cf820, + 0x2eda8: 0x6d2cfa20, 0x2eda9: 0x6d5a0620, 0x2edaa: 0x6d2cfc20, 0x2edab: 0x6d2cfe20, + 0x2edac: 0x6d5a0820, 0x2edad: 0x6d2d0020, 0x2edae: 0x6d2d0220, 0x2edaf: 0x6cff4020, + 0x2edb0: 0x6d2d0420, 0x2edb1: 0x6d2d0620, 0x2edb2: 0x6d2d0820, 0x2edb3: 0x6d2d0a20, + 0x2edb4: 0x6d2d0c20, 0x2edb5: 0x6d2d0e20, 0x2edb6: 0x6d2d1020, 0x2edb7: 0x6d2d1220, + 0x2edb8: 0x6d2d1420, 0x2edb9: 0x6d5a1e20, 0x2edba: 0x6d5a2020, 0x2edbb: 0x6d5a2220, + 0x2edbc: 0x6d5a2420, 0x2edbd: 0x6d5a2620, 0x2edbe: 0x6d5a2820, 0x2edbf: 0x6d84cc20, + // Block 0xbb7, offset 0x2edc0 + 0x2edc0: 0x6d5a2a20, 0x2edc1: 0x6d5a2c20, 0x2edc2: 0x6d5a2e20, 0x2edc3: 0x6d5a3020, + 0x2edc4: 0x6d5a3220, 0x2edc5: 0x6d5a3420, 0x2edc6: 0x6d5a3620, 0x2edc7: 0x6d5a3820, + 0x2edc8: 0x6d5a3a20, 0x2edc9: 0x6d5a3c20, 0x2edca: 0x6d5a3e20, 0x2edcb: 0x6d5a4020, + 0x2edcc: 0x6d5a4220, 0x2edcd: 0x6d84da20, 0x2edce: 0x6d5a4420, 0x2edcf: 0x6d84dc20, + 0x2edd0: 0x6da99a20, 0x2edd1: 0x6d84de20, 0x2edd2: 0x6d84e020, 0x2edd3: 0x6d5a4620, + 0x2edd4: 0x6d84e220, 0x2edd5: 0x6d84e420, 0x2edd6: 0x6d84e620, 0x2edd7: 0x6da99c20, + 0x2edd8: 0x6d84e820, 0x2edd9: 0x6d84ea20, 0x2edda: 0x6d84ec20, 0x2eddb: 0x6d84ee20, + 0x2eddc: 0x6d84f020, 0x2eddd: 0x6d84f220, 0x2edde: 0x6d84f420, 0x2eddf: 0x6d84f620, + 0x2ede0: 0x6d84f820, 0x2ede1: 0x6d84fa20, 0x2ede2: 0x6d856820, 0x2ede3: 0x6d84fc20, + 0x2ede4: 0x6d84fe20, 0x2ede5: 0x6da9a620, 0x2ede6: 0x6da9a820, 0x2ede7: 0x6dca8820, + 0x2ede8: 0x6da9aa20, 0x2ede9: 0x6da9ac20, 0x2edea: 0x6da9ae20, 0x2edeb: 0x6da9b020, + 0x2edec: 0x6da9b220, 0x2eded: 0x6da9b420, 0x2edee: 0x6da9b620, 0x2edef: 0x6da9b820, + 0x2edf0: 0x6da9ba20, 0x2edf1: 0x6da9bc20, 0x2edf2: 0x6da9be20, 0x2edf3: 0x6da9c020, + 0x2edf4: 0x6da9c220, 0x2edf5: 0x6dca8a20, 0x2edf6: 0x6dca8c20, 0x2edf7: 0x6de61c20, + 0x2edf8: 0x6dca8e20, 0x2edf9: 0x6dca9020, 0x2edfa: 0x6dfcfc20, 0x2edfb: 0x6dca9220, + 0x2edfc: 0x6dca9420, 0x2edfd: 0x6de61e20, 0x2edfe: 0x6dca9620, 0x2edff: 0x6dca9820, + // Block 0xbb8, offset 0x2ee00 + 0x2ee00: 0x6dca9a20, 0x2ee01: 0x6dca9c20, 0x2ee02: 0x6dca9e20, 0x2ee03: 0x6de62820, + 0x2ee04: 0x6de62a20, 0x2ee05: 0x6de62c20, 0x2ee06: 0x6de62e20, 0x2ee07: 0x6de63020, + 0x2ee08: 0x6de63220, 0x2ee09: 0x6de63420, 0x2ee0a: 0x6de63620, 0x2ee0b: 0x6de63820, + 0x2ee0c: 0x6dfd0020, 0x2ee0d: 0x6dfd0220, 0x2ee0e: 0x6dfd0420, 0x2ee0f: 0x6dfd0620, + 0x2ee10: 0x6dfd0820, 0x2ee11: 0x6dfd0a20, 0x2ee12: 0x6dfd0c20, 0x2ee13: 0x6e0fd620, + 0x2ee14: 0x6e0fd820, 0x2ee15: 0x6e1eb420, 0x2ee16: 0x6e0fda20, 0x2ee17: 0x6e1eb620, + 0x2ee18: 0x6e1eb820, 0x2ee19: 0x6e1eba20, 0x2ee1a: 0x6e2a1c20, 0x2ee1b: 0x6e32de20, + 0x2ee1c: 0x6c09fa20, 0x2ee1d: 0x6c3bac20, 0x2ee1e: 0x6c7a7820, 0x2ee1f: 0x6c7a7a20, + 0x2ee20: 0x6ca38020, 0x2ee21: 0x6cff4220, 0x2ee22: 0x6d856a20, 0x2ee23: 0x6de66820, + 0x2ee24: 0x6e1ec620, 0x2ee25: 0x6e32e420, 0x2ee26: 0x6c09fc20, 0x2ee27: 0x6c24a220, + 0x2ee28: 0x6c3bb620, 0x2ee29: 0x6c3bb820, 0x2ee2a: 0x6c57da20, 0x2ee2b: 0x6c57dc20, + 0x2ee2c: 0x6c57de20, 0x2ee2d: 0x6c57e020, 0x2ee2e: 0x6c57e220, 0x2ee2f: 0x6c57e420, + 0x2ee30: 0x6c57e620, 0x2ee31: 0x6c57e820, 0x2ee32: 0x6c57ea20, 0x2ee33: 0x6c7a9020, + 0x2ee34: 0x6c7a9220, 0x2ee35: 0x6c7a9420, 0x2ee36: 0x6ca39820, 0x2ee37: 0x6ca39a20, + 0x2ee38: 0x6ca39c20, 0x2ee39: 0x6cd17820, 0x2ee3a: 0x6cd17a20, 0x2ee3b: 0x6cd17c20, + 0x2ee3c: 0x6cd17e20, 0x2ee3d: 0x6cff6020, 0x2ee3e: 0x6cff6220, 0x2ee3f: 0x6cff6420, + // Block 0xbb9, offset 0x2ee40 + 0x2ee40: 0x6d2d9620, 0x2ee41: 0x6cff6620, 0x2ee42: 0x6d2da420, 0x2ee43: 0x6d2da620, + 0x2ee44: 0x6d2da820, 0x2ee45: 0x6d2daa20, 0x2ee46: 0x6d2dac20, 0x2ee47: 0x6d5acc20, + 0x2ee48: 0x6d5ace20, 0x2ee49: 0x6d5ad020, 0x2ee4a: 0x6d857a20, 0x2ee4b: 0x6d857c20, + 0x2ee4c: 0x6d857e20, 0x2ee4d: 0x6d858020, 0x2ee4e: 0x6d858220, 0x2ee4f: 0x6daa2020, + 0x2ee50: 0x6daa2220, 0x2ee51: 0x6daa2420, 0x2ee52: 0x6daa2620, 0x2ee53: 0x6dcaee20, + 0x2ee54: 0x6dcaf020, 0x2ee55: 0x6dcaf220, 0x2ee56: 0x6de66e20, 0x2ee57: 0x6e0ffa20, + 0x2ee58: 0x6c09fe20, 0x2ee59: 0x6c3bc420, 0x2ee5a: 0x6c57fe20, 0x2ee5b: 0x6ca3ba20, + 0x2ee5c: 0x6ca3bc20, 0x2ee5d: 0x6cff8a20, 0x2ee5e: 0x6cff8c20, 0x2ee5f: 0x6c0a0220, + 0x2ee60: 0x6c580a20, 0x2ee61: 0x6c7ab220, 0x2ee62: 0x6ca3be20, 0x2ee63: 0x6ca3c020, + 0x2ee64: 0x6cd1a420, 0x2ee65: 0x6cd1a620, 0x2ee66: 0x6cd1a820, 0x2ee67: 0x6d2dd620, + 0x2ee68: 0x6c0a0620, 0x2ee69: 0x6c0a0820, 0x2ee6a: 0x6c13d020, 0x2ee6b: 0x6c24aa20, + 0x2ee6c: 0x6c24ac20, 0x2ee6d: 0x6c581a20, 0x2ee6e: 0x6c581c20, 0x2ee6f: 0x6cd1b620, + 0x2ee70: 0x6c0a0a20, 0x2ee71: 0x6c0a0c20, 0x2ee72: 0x6c0a0e20, 0x2ee73: 0x6c0a1020, + 0x2ee74: 0x6c0a1220, 0x2ee75: 0x6c0a1420, 0x2ee76: 0x6c13d620, 0x2ee77: 0x6c24b620, + 0x2ee78: 0x6c24b820, 0x2ee79: 0x6c24ba20, 0x2ee7a: 0x6c24bc20, 0x2ee7b: 0x6c3be220, + 0x2ee7c: 0x6c24be20, 0x2ee7d: 0x6c3be420, 0x2ee7e: 0x6c3be620, 0x2ee7f: 0x6c3be820, + // Block 0xbba, offset 0x2ee80 + 0x2ee80: 0x6c3bea20, 0x2ee81: 0x6c3bec20, 0x2ee82: 0x6c3bee20, 0x2ee83: 0x6c3bf020, + 0x2ee84: 0x6c3bf220, 0x2ee85: 0x6c3bf420, 0x2ee86: 0x6c582420, 0x2ee87: 0x6c582620, + 0x2ee88: 0x6c582820, 0x2ee89: 0x6c582a20, 0x2ee8a: 0x6c582c20, 0x2ee8b: 0x6c582e20, + 0x2ee8c: 0x6c583020, 0x2ee8d: 0x6c583220, 0x2ee8e: 0x6c583420, 0x2ee8f: 0x6c583620, + 0x2ee90: 0x6c583820, 0x2ee91: 0x6c583a20, 0x2ee92: 0x6c583c20, 0x2ee93: 0x6c583e20, + 0x2ee94: 0x6c7abe20, 0x2ee95: 0x6c7ac020, 0x2ee96: 0x6c7ac220, 0x2ee97: 0x6c7ac420, + 0x2ee98: 0x6c7ac620, 0x2ee99: 0x6c7ac820, 0x2ee9a: 0x6c7aca20, 0x2ee9b: 0x6c7acc20, + 0x2ee9c: 0x6c7ace20, 0x2ee9d: 0x6c7ad020, 0x2ee9e: 0x6c7ad220, 0x2ee9f: 0x6c7ad420, + 0x2eea0: 0x6c7bac20, 0x2eea1: 0x6ca3d620, 0x2eea2: 0x6ca3d820, 0x2eea3: 0x6ca3da20, + 0x2eea4: 0x6ca3dc20, 0x2eea5: 0x6ca3de20, 0x2eea6: 0x6ca3e020, 0x2eea7: 0x6ca3e220, + 0x2eea8: 0x6ca89a20, 0x2eea9: 0x6ca3e420, 0x2eeaa: 0x6cd1be20, 0x2eeab: 0x6cd1c020, + 0x2eeac: 0x6cd1c220, 0x2eead: 0x6cd1c420, 0x2eeae: 0x6cd1c620, 0x2eeaf: 0x6cd1c820, + 0x2eeb0: 0x6ca3e620, 0x2eeb1: 0x6cd20620, 0x2eeb2: 0x6cd1ca20, 0x2eeb3: 0x6cd1cc20, + 0x2eeb4: 0x6cd1ce20, 0x2eeb5: 0x6cffaa20, 0x2eeb6: 0x6cffac20, 0x2eeb7: 0x6cffae20, + 0x2eeb8: 0x6cffb020, 0x2eeb9: 0x6cffb220, 0x2eeba: 0x6cffb420, 0x2eebb: 0x6d2de220, + 0x2eebc: 0x6d2de420, 0x2eebd: 0x6d2de620, 0x2eebe: 0x6d5b0420, 0x2eebf: 0x6d5b0620, + // Block 0xbbb, offset 0x2eec0 + 0x2eec0: 0x6d85a020, 0x2eec1: 0x6d85a220, 0x2eec2: 0x6d85a420, 0x2eec3: 0x6daa4620, + 0x2eec4: 0x6daa4820, 0x2eec5: 0x6dcb0e20, 0x2eec6: 0x6de68020, 0x2eec7: 0x6de68220, + 0x2eec8: 0x6dfd3620, 0x2eec9: 0x6dfd4820, 0x2eeca: 0x6e1ede20, 0x2eecb: 0x6c0a1a20, + 0x2eecc: 0x6c3c1420, 0x2eecd: 0x6c7b0e20, 0x2eece: 0x6cd20820, 0x2eecf: 0x6cd20a20, + 0x2eed0: 0x6d2e0420, 0x2eed1: 0x6d2e0620, 0x2eed2: 0x6c0a2020, 0x2eed3: 0x6c24d820, + 0x2eed4: 0x6c24da20, 0x2eed5: 0x6c24dc20, 0x2eed6: 0x6c24de20, 0x2eed7: 0x6c24e020, + 0x2eed8: 0x6c3c2020, 0x2eed9: 0x6c3c2220, 0x2eeda: 0x6c3c2420, 0x2eedb: 0x6c3c2620, + 0x2eedc: 0x6c3c2820, 0x2eedd: 0x6c3c2a20, 0x2eede: 0x6c3c2c20, 0x2eedf: 0x6c3c2e20, + 0x2eee0: 0x6c3c3020, 0x2eee1: 0x6c3c4220, 0x2eee2: 0x6c589c20, 0x2eee3: 0x6c589e20, + 0x2eee4: 0x6c58a020, 0x2eee5: 0x6c58a220, 0x2eee6: 0x6c58a420, 0x2eee7: 0x6c58a620, + 0x2eee8: 0x6c58a820, 0x2eee9: 0x6c58aa20, 0x2eeea: 0x6c58ac20, 0x2eeeb: 0x6c58ae20, + 0x2eeec: 0x6c58b020, 0x2eeed: 0x6c58b220, 0x2eeee: 0x6c58b420, 0x2eeef: 0x6c58b620, + 0x2eef0: 0x6c7b2c20, 0x2eef1: 0x6c7b2e20, 0x2eef2: 0x6c7b3020, 0x2eef3: 0x6c7b3220, + 0x2eef4: 0x6c7b3420, 0x2eef5: 0x6ca41a20, 0x2eef6: 0x6c7b3620, 0x2eef7: 0x6c7b3820, + 0x2eef8: 0x6c7b3a20, 0x2eef9: 0x6c7b3c20, 0x2eefa: 0x6c58b820, 0x2eefb: 0x6c7b3e20, + 0x2eefc: 0x6c7b4020, 0x2eefd: 0x6c7b4220, 0x2eefe: 0x6c7b4420, 0x2eeff: 0x6c7b4620, + // Block 0xbbc, offset 0x2ef00 + 0x2ef00: 0x6c7b4820, 0x2ef01: 0x6c7b4a20, 0x2ef02: 0x6c7b4c20, 0x2ef03: 0x6c7b4e20, + 0x2ef04: 0x6c7b5020, 0x2ef05: 0x6c7b5220, 0x2ef06: 0x6c7b5420, 0x2ef07: 0x6c7b5620, + 0x2ef08: 0x6c7b5820, 0x2ef09: 0x6c7b5a20, 0x2ef0a: 0x6ca42e20, 0x2ef0b: 0x6ca43020, + 0x2ef0c: 0x6ca43220, 0x2ef0d: 0x6ca43420, 0x2ef0e: 0x6ca43620, 0x2ef0f: 0x6ca43820, + 0x2ef10: 0x6ca43a20, 0x2ef11: 0x6ca43c20, 0x2ef12: 0x6ca43e20, 0x2ef13: 0x6ca44020, + 0x2ef14: 0x6ca44220, 0x2ef15: 0x6ca44420, 0x2ef16: 0x6ca44620, 0x2ef17: 0x6cd23020, + 0x2ef18: 0x6cd23220, 0x2ef19: 0x6cd23420, 0x2ef1a: 0x6cd23620, 0x2ef1b: 0x6cd23820, + 0x2ef1c: 0x6cd23a20, 0x2ef1d: 0x6cd23c20, 0x2ef1e: 0x6cd23e20, 0x2ef1f: 0x6cd24020, + 0x2ef20: 0x6cd24220, 0x2ef21: 0x6cd24420, 0x2ef22: 0x6cd24620, 0x2ef23: 0x6cd24820, + 0x2ef24: 0x6cd24a20, 0x2ef25: 0x6cd24c20, 0x2ef26: 0x6cd24e20, 0x2ef27: 0x6cd25020, + 0x2ef28: 0x6cd25220, 0x2ef29: 0x6cd25420, 0x2ef2a: 0x6cd25620, 0x2ef2b: 0x6cd25820, + 0x2ef2c: 0x6d000620, 0x2ef2d: 0x6d000820, 0x2ef2e: 0x6d000a20, 0x2ef2f: 0x6d000c20, + 0x2ef30: 0x6d000e20, 0x2ef31: 0x6d001020, 0x2ef32: 0x6d001220, 0x2ef33: 0x6d001420, + 0x2ef34: 0x6d001620, 0x2ef35: 0x6d001820, 0x2ef36: 0x6d001a20, 0x2ef37: 0x6d001c20, + 0x2ef38: 0x6d001e20, 0x2ef39: 0x6d002020, 0x2ef3a: 0x6d002220, 0x2ef3b: 0x6d002420, + 0x2ef3c: 0x6d002620, 0x2ef3d: 0x6d002820, 0x2ef3e: 0x6d002a20, 0x2ef3f: 0x6d002c20, + // Block 0xbbd, offset 0x2ef40 + 0x2ef40: 0x6d002e20, 0x2ef41: 0x6d003020, 0x2ef42: 0x6d003220, 0x2ef43: 0x6d003420, + 0x2ef44: 0x6d003620, 0x2ef45: 0x6d003820, 0x2ef46: 0x6d003a20, 0x2ef47: 0x6d2e2020, + 0x2ef48: 0x6d2e2220, 0x2ef49: 0x6d2e2420, 0x2ef4a: 0x6d2e2620, 0x2ef4b: 0x6d2e2820, + 0x2ef4c: 0x6d2e2a20, 0x2ef4d: 0x6d2e2c20, 0x2ef4e: 0x6d2e2e20, 0x2ef4f: 0x6d00b020, + 0x2ef50: 0x6d00b220, 0x2ef51: 0x6d2e3020, 0x2ef52: 0x6d2e3220, 0x2ef53: 0x6d2e3420, + 0x2ef54: 0x6d2e3620, 0x2ef55: 0x6d2e3820, 0x2ef56: 0x6d2e3a20, 0x2ef57: 0x6d2e3c20, + 0x2ef58: 0x6d2e3e20, 0x2ef59: 0x6d5b4a20, 0x2ef5a: 0x6d5b4c20, 0x2ef5b: 0x6d5b4e20, + 0x2ef5c: 0x6d5b5020, 0x2ef5d: 0x6d5b5220, 0x2ef5e: 0x6d5b5420, 0x2ef5f: 0x6d5b3020, + 0x2ef60: 0x6d5b5620, 0x2ef61: 0x6d5b5820, 0x2ef62: 0x6d5b5a20, 0x2ef63: 0x6d5b5c20, + 0x2ef64: 0x6d5b5e20, 0x2ef65: 0x6d5b6020, 0x2ef66: 0x6d5b6220, 0x2ef67: 0x6d2e4020, + 0x2ef68: 0x6d5b6420, 0x2ef69: 0x6d5b6620, 0x2ef6a: 0x6d5b6820, 0x2ef6b: 0x6d5b6a20, + 0x2ef6c: 0x6d85d420, 0x2ef6d: 0x6d85d620, 0x2ef6e: 0x6d85d820, 0x2ef6f: 0x6d85da20, + 0x2ef70: 0x6d85dc20, 0x2ef71: 0x6d85de20, 0x2ef72: 0x6d85e020, 0x2ef73: 0x6d85e220, + 0x2ef74: 0x6d85e420, 0x2ef75: 0x6d85e620, 0x2ef76: 0x6d85e820, 0x2ef77: 0x6d85ea20, + 0x2ef78: 0x6d85ec20, 0x2ef79: 0x6d85ee20, 0x2ef7a: 0x6d85f020, 0x2ef7b: 0x6d85f220, + 0x2ef7c: 0x6d85f420, 0x2ef7d: 0x6d85f620, 0x2ef7e: 0x6d85f820, 0x2ef7f: 0x6d85fa20, + // Block 0xbbe, offset 0x2ef80 + 0x2ef80: 0x6daa7420, 0x2ef81: 0x6daa7620, 0x2ef82: 0x6daa7820, 0x2ef83: 0x6daa7a20, + 0x2ef84: 0x6daa7c20, 0x2ef85: 0x6daa7e20, 0x2ef86: 0x6daa8020, 0x2ef87: 0x6daa8220, + 0x2ef88: 0x6daa8420, 0x2ef89: 0x6daa8620, 0x2ef8a: 0x6d85fc20, 0x2ef8b: 0x6daa8820, + 0x2ef8c: 0x6daa8a20, 0x2ef8d: 0x6daa8c20, 0x2ef8e: 0x6daa8e20, 0x2ef8f: 0x6dcb2c20, + 0x2ef90: 0x6dcb2e20, 0x2ef91: 0x6dcb3020, 0x2ef92: 0x6dcb3220, 0x2ef93: 0x6dcb3420, + 0x2ef94: 0x6dcb3620, 0x2ef95: 0x6dcb3820, 0x2ef96: 0x6dcb3a20, 0x2ef97: 0x6dcb3c20, + 0x2ef98: 0x6dcb3e20, 0x2ef99: 0x6dcb4020, 0x2ef9a: 0x6dcb4220, 0x2ef9b: 0x6dcb4420, + 0x2ef9c: 0x6dcb4620, 0x2ef9d: 0x6dcb4820, 0x2ef9e: 0x6dcb4a20, 0x2ef9f: 0x6de69c20, + 0x2efa0: 0x6de69e20, 0x2efa1: 0x6de6a020, 0x2efa2: 0x6dfd4c20, 0x2efa3: 0x6de6a220, + 0x2efa4: 0x6dcb8220, 0x2efa5: 0x6dfd4e20, 0x2efa6: 0x6dfd5020, 0x2efa7: 0x6e102420, + 0x2efa8: 0x6e102620, 0x2efa9: 0x6e102820, 0x2efaa: 0x6e102a20, 0x2efab: 0x6e102c20, + 0x2efac: 0x6e1eea20, 0x2efad: 0x6e1eec20, 0x2efae: 0x6e1eee20, 0x2efaf: 0x6e2a4a20, + 0x2efb0: 0x6e2a4c20, 0x2efb1: 0x6e32f220, 0x2efb2: 0x6e32f420, 0x2efb3: 0x6e3d8020, + 0x2efb4: 0x6e42ca20, 0x2efb5: 0x6e452a20, 0x2efb6: 0x6c0a2220, 0x2efb7: 0x6c3c4420, + 0x2efb8: 0x6c590220, 0x2efb9: 0x6c590420, 0x2efba: 0x6c590620, 0x2efbb: 0x6cd2b820, + 0x2efbc: 0x6cd2ba20, 0x2efbd: 0x6c0a2420, 0x2efbe: 0x6c13e020, 0x2efbf: 0x6c13e220, + // Block 0xbbf, offset 0x2efc0 + 0x2efc0: 0x6c24fa20, 0x2efc1: 0x6c24fc20, 0x2efc2: 0x6c24fe20, 0x2efc3: 0x6c250020, + 0x2efc4: 0x6c3c4620, 0x2efc5: 0x6c590e20, 0x2efc6: 0x6c591020, 0x2efc7: 0x6c591220, + 0x2efc8: 0x6c591420, 0x2efc9: 0x6ca48c20, 0x2efca: 0x6c7bae20, 0x2efcb: 0x6c7bb020, + 0x2efcc: 0x6c7bb220, 0x2efcd: 0x6c7bb420, 0x2efce: 0x6ca49220, 0x2efcf: 0x6ca49420, + 0x2efd0: 0x6ca49620, 0x2efd1: 0x6ca49820, 0x2efd2: 0x6cd2c420, 0x2efd3: 0x6cd2c620, + 0x2efd4: 0x6cd2c820, 0x2efd5: 0x6cd2ca20, 0x2efd6: 0x6cd2cc20, 0x2efd7: 0x6d00bc20, + 0x2efd8: 0x6d00be20, 0x2efd9: 0x6d00c020, 0x2efda: 0x6d5bde20, 0x2efdb: 0x6d5be020, + 0x2efdc: 0x6d5be220, 0x2efdd: 0x6d5be420, 0x2efde: 0x6d5be620, 0x2efdf: 0x6d865420, + 0x2efe0: 0x6d865620, 0x2efe1: 0x6d865820, 0x2efe2: 0x6dab0020, 0x2efe3: 0x6dab0220, + 0x2efe4: 0x6dab0420, 0x2efe5: 0x6dab0620, 0x2efe6: 0x6dcb8420, 0x2efe7: 0x6dcb8620, + 0x2efe8: 0x6dcb8820, 0x2efe9: 0x6de6de20, 0x2efea: 0x6dfd7420, 0x2efeb: 0x6dfd7620, + 0x2efec: 0x6e104620, 0x2efed: 0x6e1f0020, 0x2efee: 0x6c0a2620, 0x2efef: 0x6c3c5620, + 0x2eff0: 0x6c7bd820, 0x2eff1: 0x6c7bda20, 0x2eff2: 0x6ca4ac20, 0x2eff3: 0x6cd2f020, + 0x2eff4: 0x6cd2f220, 0x2eff5: 0x6d00e820, 0x2eff6: 0x6d2ecc20, 0x2eff7: 0x6d2ece20, + 0x2eff8: 0x6d2ed020, 0x2eff9: 0x6d2ed220, 0x2effa: 0x6d5bfc20, 0x2effb: 0x6d866620, + 0x2effc: 0x6dab1620, 0x2effd: 0x6dcb9420, 0x2effe: 0x6dfd8220, 0x2efff: 0x6c0a2820, + // Block 0xbc0, offset 0x2f000 + 0x2f000: 0x6c250c20, 0x2f001: 0x6c250e20, 0x2f002: 0x6c3c6820, 0x2f003: 0x6c595220, + 0x2f004: 0x6c595420, 0x2f005: 0x6c595620, 0x2f006: 0x6c595820, 0x2f007: 0x6c595a20, + 0x2f008: 0x6c595c20, 0x2f009: 0x6c7bf620, 0x2f00a: 0x6c7bf820, 0x2f00b: 0x6c7bfa20, + 0x2f00c: 0x6c7bfc20, 0x2f00d: 0x6c7bfe20, 0x2f00e: 0x6c7c0020, 0x2f00f: 0x6c7c0220, + 0x2f010: 0x6c7c0420, 0x2f011: 0x6c7c0620, 0x2f012: 0x6ca4c220, 0x2f013: 0x6ca4c420, + 0x2f014: 0x6ca4c620, 0x2f015: 0x6ca4c820, 0x2f016: 0x6ca4ca20, 0x2f017: 0x6ca4cc20, + 0x2f018: 0x6ca4ce20, 0x2f019: 0x6cd30c20, 0x2f01a: 0x6cd30e20, 0x2f01b: 0x6ca4d020, + 0x2f01c: 0x6cd31020, 0x2f01d: 0x6d010c20, 0x2f01e: 0x6d010e20, 0x2f01f: 0x6d011020, + 0x2f020: 0x6d2ef420, 0x2f021: 0x6d2ef620, 0x2f022: 0x6d2ef820, 0x2f023: 0x6d2efa20, + 0x2f024: 0x6d5c0c20, 0x2f025: 0x6d868220, 0x2f026: 0x6d868420, 0x2f027: 0x6d868620, + 0x2f028: 0x6dab2020, 0x2f029: 0x6dab2220, 0x2f02a: 0x6dab2420, 0x2f02b: 0x6dcba820, + 0x2f02c: 0x6dcbaa20, 0x2f02d: 0x6dfd8e20, 0x2f02e: 0x6c0a2a20, 0x2f02f: 0x6c251820, + 0x2f030: 0x6c3c8020, 0x2f031: 0x6c3c8220, 0x2f032: 0x6c3c8420, 0x2f033: 0x6c3c8620, + 0x2f034: 0x6c3c8820, 0x2f035: 0x6c3c8a20, 0x2f036: 0x6c598820, 0x2f037: 0x6c598a20, + 0x2f038: 0x6c598c20, 0x2f039: 0x6c598e20, 0x2f03a: 0x6c599020, 0x2f03b: 0x6c599220, + 0x2f03c: 0x6c599420, 0x2f03d: 0x6c599620, 0x2f03e: 0x6c599820, 0x2f03f: 0x6c599a20, + // Block 0xbc1, offset 0x2f040 + 0x2f040: 0x6c599c20, 0x2f041: 0x6c599e20, 0x2f042: 0x6c59a020, 0x2f043: 0x6c59a220, + 0x2f044: 0x6c59a420, 0x2f045: 0x6c59a620, 0x2f046: 0x6c59a820, 0x2f047: 0x6c59aa20, + 0x2f048: 0x6c59ac20, 0x2f049: 0x6c59ae20, 0x2f04a: 0x6c59b020, 0x2f04b: 0x6c59b220, + 0x2f04c: 0x6c59b420, 0x2f04d: 0x6c59b620, 0x2f04e: 0x6c7c3e20, 0x2f04f: 0x6c7c4020, + 0x2f050: 0x6c7c4220, 0x2f051: 0x6c7c4420, 0x2f052: 0x6c7c4620, 0x2f053: 0x6c7c4820, + 0x2f054: 0x6c7c4a20, 0x2f055: 0x6c7c4c20, 0x2f056: 0x6c7c4e20, 0x2f057: 0x6c7c5020, + 0x2f058: 0x6c7c5220, 0x2f059: 0x6c7c5420, 0x2f05a: 0x6c7c5620, 0x2f05b: 0x6c7c5820, + 0x2f05c: 0x6c7c5a20, 0x2f05d: 0x6c7c5c20, 0x2f05e: 0x6c7c5e20, 0x2f05f: 0x6c7c6020, + 0x2f060: 0x6c7c6220, 0x2f061: 0x6c7c6420, 0x2f062: 0x6c7c6620, 0x2f063: 0x6c7c6820, + 0x2f064: 0x6c7c6a20, 0x2f065: 0x6ca4ee20, 0x2f066: 0x6ca4f020, 0x2f067: 0x6c7c6c20, + 0x2f068: 0x6c7c6e20, 0x2f069: 0x6c7c7020, 0x2f06a: 0x6c7c7220, 0x2f06b: 0x6c7c7420, + 0x2f06c: 0x6c7c7620, 0x2f06d: 0x6ca50220, 0x2f06e: 0x6ca50420, 0x2f06f: 0x6ca50620, + 0x2f070: 0x6ca50820, 0x2f071: 0x6ca50a20, 0x2f072: 0x6ca50c20, 0x2f073: 0x6ca50e20, + 0x2f074: 0x6ca51020, 0x2f075: 0x6ca51220, 0x2f076: 0x6ca51420, 0x2f077: 0x6ca51620, + 0x2f078: 0x6ca51820, 0x2f079: 0x6ca51a20, 0x2f07a: 0x6ca51c20, 0x2f07b: 0x6ca51e20, + 0x2f07c: 0x6ca52020, 0x2f07d: 0x6ca52220, 0x2f07e: 0x6ca52420, 0x2f07f: 0x6c7c7820, + // Block 0xbc2, offset 0x2f080 + 0x2f080: 0x6ca59220, 0x2f081: 0x6ca52620, 0x2f082: 0x6cd35020, 0x2f083: 0x6cd35220, + 0x2f084: 0x6cd35420, 0x2f085: 0x6cd35620, 0x2f086: 0x6cd35820, 0x2f087: 0x6cd35a20, + 0x2f088: 0x6cd35c20, 0x2f089: 0x6cd35e20, 0x2f08a: 0x6cd36020, 0x2f08b: 0x6cd36220, + 0x2f08c: 0x6cd36420, 0x2f08d: 0x6cd36620, 0x2f08e: 0x6cd36820, 0x2f08f: 0x6cd36a20, + 0x2f090: 0x6cd36c20, 0x2f091: 0x6cd36e20, 0x2f092: 0x6d014220, 0x2f093: 0x6d014420, + 0x2f094: 0x6d014620, 0x2f095: 0x6d014820, 0x2f096: 0x6d014a20, 0x2f097: 0x6d014c20, + 0x2f098: 0x6d014e20, 0x2f099: 0x6d015020, 0x2f09a: 0x6d015220, 0x2f09b: 0x6d015420, + 0x2f09c: 0x6d015620, 0x2f09d: 0x6d015820, 0x2f09e: 0x6d015a20, 0x2f09f: 0x6d015c20, + 0x2f0a0: 0x6d015e20, 0x2f0a1: 0x6d01f620, 0x2f0a2: 0x6d016020, 0x2f0a3: 0x6d016220, + 0x2f0a4: 0x6d016420, 0x2f0a5: 0x6d016620, 0x2f0a6: 0x6d016820, 0x2f0a7: 0x6d016a20, + 0x2f0a8: 0x6d016c20, 0x2f0a9: 0x6d016e20, 0x2f0aa: 0x6d017020, 0x2f0ab: 0x6d017220, + 0x2f0ac: 0x6d017420, 0x2f0ad: 0x6d017620, 0x2f0ae: 0x6d2f2220, 0x2f0af: 0x6d2f2420, + 0x2f0b0: 0x6d2f2620, 0x2f0b1: 0x6d2f2820, 0x2f0b2: 0x6d2f2a20, 0x2f0b3: 0x6d2f2c20, + 0x2f0b4: 0x6d2f2e20, 0x2f0b5: 0x6d2f3020, 0x2f0b6: 0x6d2f3220, 0x2f0b7: 0x6d2f3420, + 0x2f0b8: 0x6d2f3620, 0x2f0b9: 0x6d01f820, 0x2f0ba: 0x6d2f3820, 0x2f0bb: 0x6d2f3a20, + 0x2f0bc: 0x6d2f3c20, 0x2f0bd: 0x6d2f3e20, 0x2f0be: 0x6d2f4020, 0x2f0bf: 0x6d2f4220, + // Block 0xbc3, offset 0x2f0c0 + 0x2f0c0: 0x6d2f4420, 0x2f0c1: 0x6d2f4620, 0x2f0c2: 0x6d2f4820, 0x2f0c3: 0x6d2f4a20, + 0x2f0c4: 0x6d2f4c20, 0x2f0c5: 0x6d2f4e20, 0x2f0c6: 0x6d2f5020, 0x2f0c7: 0x6d5c3e20, + 0x2f0c8: 0x6d5c4020, 0x2f0c9: 0x6d5c4220, 0x2f0ca: 0x6d5c4420, 0x2f0cb: 0x6d5c4620, + 0x2f0cc: 0x6d5c4820, 0x2f0cd: 0x6d5c4a20, 0x2f0ce: 0x6d5c4c20, 0x2f0cf: 0x6d5c4e20, + 0x2f0d0: 0x6d5c5020, 0x2f0d1: 0x6d5c5220, 0x2f0d2: 0x6d5c5420, 0x2f0d3: 0x6d5c5620, + 0x2f0d4: 0x6d86c020, 0x2f0d5: 0x6d86c220, 0x2f0d6: 0x6d86c420, 0x2f0d7: 0x6d86c620, + 0x2f0d8: 0x6d86c820, 0x2f0d9: 0x6d86ca20, 0x2f0da: 0x6d86cc20, 0x2f0db: 0x6d86ce20, + 0x2f0dc: 0x6d86d020, 0x2f0dd: 0x6d86d220, 0x2f0de: 0x6d86d420, 0x2f0df: 0x6d86d620, + 0x2f0e0: 0x6d86d820, 0x2f0e1: 0x6d86da20, 0x2f0e2: 0x6d86dc20, 0x2f0e3: 0x6d86de20, + 0x2f0e4: 0x6dab6020, 0x2f0e5: 0x6d875220, 0x2f0e6: 0x6dab6220, 0x2f0e7: 0x6dab6420, + 0x2f0e8: 0x6dab6620, 0x2f0e9: 0x6dab6820, 0x2f0ea: 0x6dab6a20, 0x2f0eb: 0x6dab6c20, + 0x2f0ec: 0x6dab6e20, 0x2f0ed: 0x6dab7020, 0x2f0ee: 0x6dab7220, 0x2f0ef: 0x6dab7420, + 0x2f0f0: 0x6dab7620, 0x2f0f1: 0x6dab7820, 0x2f0f2: 0x6dab7a20, 0x2f0f3: 0x6dab7c20, + 0x2f0f4: 0x6dab7e20, 0x2f0f5: 0x6dab8020, 0x2f0f6: 0x6dab8220, 0x2f0f7: 0x6dab8420, + 0x2f0f8: 0x6dcbcc20, 0x2f0f9: 0x6dcbce20, 0x2f0fa: 0x6dcbd020, 0x2f0fb: 0x6dcbd220, + 0x2f0fc: 0x6dcbd420, 0x2f0fd: 0x6dcbd620, 0x2f0fe: 0x6dcbd820, 0x2f0ff: 0x6dcbda20, + // Block 0xbc4, offset 0x2f100 + 0x2f100: 0x6dcbdc20, 0x2f101: 0x6dcbde20, 0x2f102: 0x6dcbe020, 0x2f103: 0x6de70c20, + 0x2f104: 0x6de70e20, 0x2f105: 0x6de71020, 0x2f106: 0x6de71220, 0x2f107: 0x6de71420, + 0x2f108: 0x6de71620, 0x2f109: 0x6de71820, 0x2f10a: 0x6de71a20, 0x2f10b: 0x6dfdae20, + 0x2f10c: 0x6dfdb020, 0x2f10d: 0x6dfdb220, 0x2f10e: 0x6dfdb420, 0x2f10f: 0x6dfdb620, + 0x2f110: 0x6e106020, 0x2f111: 0x6e106220, 0x2f112: 0x6e106420, 0x2f113: 0x6e106620, + 0x2f114: 0x6e2a6c20, 0x2f115: 0x6e331420, 0x2f116: 0x6e332020, 0x2f117: 0x6e331620, + 0x2f118: 0x6e393a20, 0x2f119: 0x6e393c20, 0x2f11a: 0x6e3d8a20, 0x2f11b: 0x6c0a2c20, + 0x2f11c: 0x6c5a1c20, 0x2f11d: 0x6c7cd620, 0x2f11e: 0x6cd3f420, 0x2f11f: 0x6cd3f620, + 0x2f120: 0x6d01fa20, 0x2f121: 0x6e394020, 0x2f122: 0x6c0a2e20, 0x2f123: 0x6c253220, + 0x2f124: 0x6c3cb620, 0x2f125: 0x6c3cb820, 0x2f126: 0x6c5a2420, 0x2f127: 0x6c5a2620, + 0x2f128: 0x6c5a2820, 0x2f129: 0x6c7ce820, 0x2f12a: 0x6ca59e20, 0x2f12b: 0x6ca5a020, + 0x2f12c: 0x6cd40c20, 0x2f12d: 0x6cd40e20, 0x2f12e: 0x6d020820, 0x2f12f: 0x6dabf820, + 0x2f130: 0x6dabfa20, 0x2f131: 0x6de76020, 0x2f132: 0x6dfde820, 0x2f133: 0x6c0a3020, + 0x2f134: 0x6c253a20, 0x2f135: 0x6c253c20, 0x2f136: 0x6c253e20, 0x2f137: 0x6c3cc020, + 0x2f138: 0x6c3cc220, 0x2f139: 0x6c3cc420, 0x2f13a: 0x6c3cc620, 0x2f13b: 0x6c3cc820, + 0x2f13c: 0x6c3cca20, 0x2f13d: 0x6c3ccc20, 0x2f13e: 0x6c3cce20, 0x2f13f: 0x6c3cd020, + // Block 0xbc5, offset 0x2f140 + 0x2f140: 0x6c3cd220, 0x2f141: 0x6c3cd420, 0x2f142: 0x6c5a4820, 0x2f143: 0x6c5a4a20, + 0x2f144: 0x6c5a4c20, 0x2f145: 0x6c5a4e20, 0x2f146: 0x6c5a5020, 0x2f147: 0x6c5a5220, + 0x2f148: 0x6c5a5420, 0x2f149: 0x6c5a5620, 0x2f14a: 0x6c5a5820, 0x2f14b: 0x6c5a5a20, + 0x2f14c: 0x6c5a5c20, 0x2f14d: 0x6c5a5e20, 0x2f14e: 0x6c5a6020, 0x2f14f: 0x6c5a6220, + 0x2f150: 0x6c5a6420, 0x2f151: 0x6c5a6620, 0x2f152: 0x6c5a6820, 0x2f153: 0x6c5a6a20, + 0x2f154: 0x6c5a6c20, 0x2f155: 0x6c5a6e20, 0x2f156: 0x6c5a7020, 0x2f157: 0x6c5a7220, + 0x2f158: 0x6c5a7420, 0x2f159: 0x6c5a7620, 0x2f15a: 0x6c5a7820, 0x2f15b: 0x6c5a7a20, + 0x2f15c: 0x6c5a7c20, 0x2f15d: 0x6c7d1220, 0x2f15e: 0x6c7d1420, 0x2f15f: 0x6c7d1620, + 0x2f160: 0x6c7d1820, 0x2f161: 0x6c7d1a20, 0x2f162: 0x6c7d1c20, 0x2f163: 0x6c7d1e20, + 0x2f164: 0x6c7d2020, 0x2f165: 0x6c7d2220, 0x2f166: 0x6ca5ce20, 0x2f167: 0x6c7d2420, + 0x2f168: 0x6c7d2620, 0x2f169: 0x6c7d2820, 0x2f16a: 0x6c7d2a20, 0x2f16b: 0x6c7d2c20, + 0x2f16c: 0x6c7d2e20, 0x2f16d: 0x6c7d3020, 0x2f16e: 0x6c7d3220, 0x2f16f: 0x6c7d3420, + 0x2f170: 0x6c7d3620, 0x2f171: 0x6c7d3820, 0x2f172: 0x6c7d3a20, 0x2f173: 0x6c7d3c20, + 0x2f174: 0x6c7d3e20, 0x2f175: 0x6c7d4020, 0x2f176: 0x6c7d4220, 0x2f177: 0x6c7d4420, + 0x2f178: 0x6c7d4620, 0x2f179: 0x6c7d4820, 0x2f17a: 0x6c7d4a20, 0x2f17b: 0x6c7d4c20, + 0x2f17c: 0x6c7d4e20, 0x2f17d: 0x6c7d5020, 0x2f17e: 0x6c7d5220, 0x2f17f: 0x6c7d5420, + // Block 0xbc6, offset 0x2f180 + 0x2f180: 0x6c7d5620, 0x2f181: 0x6c7d5820, 0x2f182: 0x6ca5de20, 0x2f183: 0x6ca5e020, + 0x2f184: 0x6ca5e220, 0x2f185: 0x6ca5e420, 0x2f186: 0x6ca5e620, 0x2f187: 0x6ca5e820, + 0x2f188: 0x6ca5ea20, 0x2f189: 0x6ca5ec20, 0x2f18a: 0x6ca5ee20, 0x2f18b: 0x6ca5f020, + 0x2f18c: 0x6ca5f220, 0x2f18d: 0x6ca5f420, 0x2f18e: 0x6ca5f620, 0x2f18f: 0x6ca5f820, + 0x2f190: 0x6ca5fa20, 0x2f191: 0x6ca5fc20, 0x2f192: 0x6ca5fe20, 0x2f193: 0x6ca60020, + 0x2f194: 0x6ca60220, 0x2f195: 0x6ca60420, 0x2f196: 0x6ca60620, 0x2f197: 0x6ca60820, + 0x2f198: 0x6ca60a20, 0x2f199: 0x6ca60c20, 0x2f19a: 0x6ca60e20, 0x2f19b: 0x6ca61020, + 0x2f19c: 0x6cd43420, 0x2f19d: 0x6cd43620, 0x2f19e: 0x6cd43820, 0x2f19f: 0x6cd43a20, + 0x2f1a0: 0x6cd43c20, 0x2f1a1: 0x6cd43e20, 0x2f1a2: 0x6cd44020, 0x2f1a3: 0x6cd44220, + 0x2f1a4: 0x6cd44420, 0x2f1a5: 0x6cd44620, 0x2f1a6: 0x6cd44820, 0x2f1a7: 0x6cd44a20, + 0x2f1a8: 0x6cd44c20, 0x2f1a9: 0x6cd44e20, 0x2f1aa: 0x6cd45020, 0x2f1ab: 0x6cd45220, + 0x2f1ac: 0x6cd45420, 0x2f1ad: 0x6cd45620, 0x2f1ae: 0x6cd45820, 0x2f1af: 0x6cd45a20, + 0x2f1b0: 0x6cd45c20, 0x2f1b1: 0x6cd45e20, 0x2f1b2: 0x6cd46020, 0x2f1b3: 0x6cd46220, + 0x2f1b4: 0x6cd46420, 0x2f1b5: 0x6cd46620, 0x2f1b6: 0x6cd46820, 0x2f1b7: 0x6cd46a20, + 0x2f1b8: 0x6d025220, 0x2f1b9: 0x6d025420, 0x2f1ba: 0x6d025620, 0x2f1bb: 0x6d025820, + 0x2f1bc: 0x6d025a20, 0x2f1bd: 0x6d025c20, 0x2f1be: 0x6d300e20, 0x2f1bf: 0x6d025e20, + // Block 0xbc7, offset 0x2f1c0 + 0x2f1c0: 0x6d026020, 0x2f1c1: 0x6d026220, 0x2f1c2: 0x6d026420, 0x2f1c3: 0x6d026620, + 0x2f1c4: 0x6d026820, 0x2f1c5: 0x6d026a20, 0x2f1c6: 0x6d026c20, 0x2f1c7: 0x6d026e20, + 0x2f1c8: 0x6d027020, 0x2f1c9: 0x6d027220, 0x2f1ca: 0x6d027420, 0x2f1cb: 0x6d027620, + 0x2f1cc: 0x6d027820, 0x2f1cd: 0x6d027a20, 0x2f1ce: 0x6d027c20, 0x2f1cf: 0x6d027e20, + 0x2f1d0: 0x6d028020, 0x2f1d1: 0x6d028220, 0x2f1d2: 0x6d028420, 0x2f1d3: 0x6d028620, + 0x2f1d4: 0x6d028820, 0x2f1d5: 0x6d028a20, 0x2f1d6: 0x6d028c20, 0x2f1d7: 0x6d028e20, + 0x2f1d8: 0x6d029020, 0x2f1d9: 0x6d029220, 0x2f1da: 0x6d029420, 0x2f1db: 0x6d029620, + 0x2f1dc: 0x6d029820, 0x2f1dd: 0x6d301020, 0x2f1de: 0x6d301220, 0x2f1df: 0x6d301420, + 0x2f1e0: 0x6d301620, 0x2f1e1: 0x6d301820, 0x2f1e2: 0x6d301a20, 0x2f1e3: 0x6d301c20, + 0x2f1e4: 0x6d301e20, 0x2f1e5: 0x6d302020, 0x2f1e6: 0x6d302220, 0x2f1e7: 0x6d302420, + 0x2f1e8: 0x6d302620, 0x2f1e9: 0x6d302820, 0x2f1ea: 0x6d302a20, 0x2f1eb: 0x6d302c20, + 0x2f1ec: 0x6d302e20, 0x2f1ed: 0x6d303020, 0x2f1ee: 0x6d303220, 0x2f1ef: 0x6d303420, + 0x2f1f0: 0x6d029a20, 0x2f1f1: 0x6d303620, 0x2f1f2: 0x6d303820, 0x2f1f3: 0x6d303a20, + 0x2f1f4: 0x6d303c20, 0x2f1f5: 0x6d303e20, 0x2f1f6: 0x6d304020, 0x2f1f7: 0x6d304220, + 0x2f1f8: 0x6d304420, 0x2f1f9: 0x6d304620, 0x2f1fa: 0x6d5d0620, 0x2f1fb: 0x6d5d0820, + 0x2f1fc: 0x6d5d0a20, 0x2f1fd: 0x6d5d0c20, 0x2f1fe: 0x6d5d0e20, 0x2f1ff: 0x6d5d1020, + // Block 0xbc8, offset 0x2f200 + 0x2f200: 0x6d5d1220, 0x2f201: 0x6d304820, 0x2f202: 0x6d5d1420, 0x2f203: 0x6d5d1620, + 0x2f204: 0x6d5d1820, 0x2f205: 0x6d5d1a20, 0x2f206: 0x6d5d1c20, 0x2f207: 0x6d5d1e20, + 0x2f208: 0x6d5d2020, 0x2f209: 0x6d5d2220, 0x2f20a: 0x6d5d2420, 0x2f20b: 0x6d5d2620, + 0x2f20c: 0x6d5d2820, 0x2f20d: 0x6d5d2a20, 0x2f20e: 0x6d5d2c20, 0x2f20f: 0x6d5d2e20, + 0x2f210: 0x6d5d3020, 0x2f211: 0x6d5d3220, 0x2f212: 0x6d5d3420, 0x2f213: 0x6d5d3620, + 0x2f214: 0x6d5d3820, 0x2f215: 0x6d5d3a20, 0x2f216: 0x6d876620, 0x2f217: 0x6d5d3c20, + 0x2f218: 0x6d5d3e20, 0x2f219: 0x6d5d4020, 0x2f21a: 0x6d877a20, 0x2f21b: 0x6d877c20, + 0x2f21c: 0x6d876820, 0x2f21d: 0x6d877e20, 0x2f21e: 0x6d878020, 0x2f21f: 0x6d878220, + 0x2f220: 0x6d878420, 0x2f221: 0x6d878620, 0x2f222: 0x6d878820, 0x2f223: 0x6d878a20, + 0x2f224: 0x6d5d4220, 0x2f225: 0x6d878c20, 0x2f226: 0x6d878e20, 0x2f227: 0x6d879020, + 0x2f228: 0x6d879220, 0x2f229: 0x6d879420, 0x2f22a: 0x6d879620, 0x2f22b: 0x6d879820, + 0x2f22c: 0x6d879a20, 0x2f22d: 0x6d879c20, 0x2f22e: 0x6d879e20, 0x2f22f: 0x6dac1c20, + 0x2f230: 0x6dac1e20, 0x2f231: 0x6dac2020, 0x2f232: 0x6dac2220, 0x2f233: 0x6dac2420, + 0x2f234: 0x6dac2620, 0x2f235: 0x6dac2820, 0x2f236: 0x6dac2a20, 0x2f237: 0x6dac2c20, + 0x2f238: 0x6dac2e20, 0x2f239: 0x6dac3020, 0x2f23a: 0x6dac3220, 0x2f23b: 0x6dac3420, + 0x2f23c: 0x6dac3620, 0x2f23d: 0x6dac3820, 0x2f23e: 0x6dac3a20, 0x2f23f: 0x6dac3c20, + // Block 0xbc9, offset 0x2f240 + 0x2f240: 0x6dac3e20, 0x2f241: 0x6dac4020, 0x2f242: 0x6dac4220, 0x2f243: 0x6dac4420, + 0x2f244: 0x6dac4620, 0x2f245: 0x6dac4820, 0x2f246: 0x6dcc5020, 0x2f247: 0x6dcc5220, + 0x2f248: 0x6dcc5420, 0x2f249: 0x6dcc5620, 0x2f24a: 0x6dcc5820, 0x2f24b: 0x6dcc5a20, + 0x2f24c: 0x6dcc5c20, 0x2f24d: 0x6dcc5e20, 0x2f24e: 0x6dcc6020, 0x2f24f: 0x6dcc6220, + 0x2f250: 0x6dcc6420, 0x2f251: 0x6dcc6620, 0x2f252: 0x6dcc6820, 0x2f253: 0x6dcc6a20, + 0x2f254: 0x6dcc6c20, 0x2f255: 0x6dcc6e20, 0x2f256: 0x6dcc7020, 0x2f257: 0x6de76c20, + 0x2f258: 0x6de76e20, 0x2f259: 0x6de77020, 0x2f25a: 0x6de77220, 0x2f25b: 0x6de77420, + 0x2f25c: 0x6de77620, 0x2f25d: 0x6de77820, 0x2f25e: 0x6de77a20, 0x2f25f: 0x6de77c20, + 0x2f260: 0x6de77e20, 0x2f261: 0x6de78020, 0x2f262: 0x6dfdf220, 0x2f263: 0x6dfdf420, + 0x2f264: 0x6dfdf620, 0x2f265: 0x6dfdf820, 0x2f266: 0x6dfdfa20, 0x2f267: 0x6dfdfc20, + 0x2f268: 0x6dfdfe20, 0x2f269: 0x6dfe0020, 0x2f26a: 0x6dfe0220, 0x2f26b: 0x6dfe0420, + 0x2f26c: 0x6dfe0620, 0x2f26d: 0x6e109420, 0x2f26e: 0x6e109620, 0x2f26f: 0x6e109820, + 0x2f270: 0x6e109a20, 0x2f271: 0x6e109c20, 0x2f272: 0x6e109e20, 0x2f273: 0x6e10a020, + 0x2f274: 0x6e10a220, 0x2f275: 0x6e1f3820, 0x2f276: 0x6e2a8820, 0x2f277: 0x6e2a8a20, + 0x2f278: 0x6e332620, 0x2f279: 0x6e394220, 0x2f27a: 0x6c0a3420, 0x2f27b: 0x6c04fe20, + 0x2f27c: 0x6c13f620, 0x2f27d: 0x6c254e20, 0x2f27e: 0x6c3cee20, 0x2f27f: 0x6c3cf020, + // Block 0xbca, offset 0x2f280 + 0x2f280: 0x6c3cf220, 0x2f281: 0x6c3cf420, 0x2f282: 0x6c3cf620, 0x2f283: 0x6c3cf820, + 0x2f284: 0x6c5ac620, 0x2f285: 0x6c5ac820, 0x2f286: 0x6c5aca20, 0x2f287: 0x6c5acc20, + 0x2f288: 0x6c5ace20, 0x2f289: 0x6c5ad020, 0x2f28a: 0x6c5ad220, 0x2f28b: 0x6c5ad420, + 0x2f28c: 0x6c5ad620, 0x2f28d: 0x6c5ad820, 0x2f28e: 0x6c5ada20, 0x2f28f: 0x6c7dc420, + 0x2f290: 0x6c7dc620, 0x2f291: 0x6c7dc820, 0x2f292: 0x6c7dca20, 0x2f293: 0x6c7dcc20, + 0x2f294: 0x6c7dce20, 0x2f295: 0x6c7dd020, 0x2f296: 0x6c7dd220, 0x2f297: 0x6c7dd420, + 0x2f298: 0x6c7dd620, 0x2f299: 0x6c7dd820, 0x2f29a: 0x6c7dda20, 0x2f29b: 0x6c7ddc20, + 0x2f29c: 0x6c7dde20, 0x2f29d: 0x6c7de020, 0x2f29e: 0x6c7de220, 0x2f29f: 0x6c7de420, + 0x2f2a0: 0x6c7de620, 0x2f2a1: 0x6ca68a20, 0x2f2a2: 0x6c7de820, 0x2f2a3: 0x6ca69220, + 0x2f2a4: 0x6ca69420, 0x2f2a5: 0x6ca69620, 0x2f2a6: 0x6cd4c020, 0x2f2a7: 0x6ca69820, + 0x2f2a8: 0x6ca69a20, 0x2f2a9: 0x6ca69c20, 0x2f2aa: 0x6ca69e20, 0x2f2ab: 0x6ca6a020, + 0x2f2ac: 0x6ca6a220, 0x2f2ad: 0x6ca6a420, 0x2f2ae: 0x6ca6a620, 0x2f2af: 0x6ca6a820, + 0x2f2b0: 0x6cd4c220, 0x2f2b1: 0x6cd4c420, 0x2f2b2: 0x6cd4c620, 0x2f2b3: 0x6cd4c820, + 0x2f2b4: 0x6cd4ca20, 0x2f2b5: 0x6cd4cc20, 0x2f2b6: 0x6cd4ce20, 0x2f2b7: 0x6cd4d020, + 0x2f2b8: 0x6cd4d220, 0x2f2b9: 0x6d031820, 0x2f2ba: 0x6d031a20, 0x2f2bb: 0x6d031c20, + 0x2f2bc: 0x6d031e20, 0x2f2bd: 0x6d032020, 0x2f2be: 0x6d032220, 0x2f2bf: 0x6d032420, + // Block 0xbcb, offset 0x2f2c0 + 0x2f2c0: 0x6d032620, 0x2f2c1: 0x6d032820, 0x2f2c2: 0x6d032a20, 0x2f2c3: 0x6d032c20, + 0x2f2c4: 0x6cd4d420, 0x2f2c5: 0x6d032e20, 0x2f2c6: 0x6d033020, 0x2f2c7: 0x6d30be20, + 0x2f2c8: 0x6d30c020, 0x2f2c9: 0x6d30c220, 0x2f2ca: 0x6d30c420, 0x2f2cb: 0x6d30c620, + 0x2f2cc: 0x6d30c820, 0x2f2cd: 0x6d30ca20, 0x2f2ce: 0x6d30cc20, 0x2f2cf: 0x6d30ce20, + 0x2f2d0: 0x6d30d020, 0x2f2d1: 0x6d30d220, 0x2f2d2: 0x6d30d420, 0x2f2d3: 0x6d30d620, + 0x2f2d4: 0x6d30d820, 0x2f2d5: 0x6d30da20, 0x2f2d6: 0x6d30dc20, 0x2f2d7: 0x6d30de20, + 0x2f2d8: 0x6d30e020, 0x2f2d9: 0x6d30e220, 0x2f2da: 0x6d5d8c20, 0x2f2db: 0x6d5d8e20, + 0x2f2dc: 0x6d5d9020, 0x2f2dd: 0x6d5d9220, 0x2f2de: 0x6d5d9420, 0x2f2df: 0x6d5d9620, + 0x2f2e0: 0x6d5d9820, 0x2f2e1: 0x6d5d9a20, 0x2f2e2: 0x6d5d9c20, 0x2f2e3: 0x6d5d9e20, + 0x2f2e4: 0x6d87fe20, 0x2f2e5: 0x6d880020, 0x2f2e6: 0x6d880220, 0x2f2e7: 0x6daca020, + 0x2f2e8: 0x6daca220, 0x2f2e9: 0x6d880420, 0x2f2ea: 0x6daca420, 0x2f2eb: 0x6daca620, + 0x2f2ec: 0x6dcca420, 0x2f2ed: 0x6dcca620, 0x2f2ee: 0x6dcca820, 0x2f2ef: 0x6dccaa20, + 0x2f2f0: 0x6de7ac20, 0x2f2f1: 0x6de7ae20, 0x2f2f2: 0x6dfe3a20, 0x2f2f3: 0x6e1f5620, + 0x2f2f4: 0x6e1f5820, 0x2f2f5: 0x6e2aa020, 0x2f2f6: 0x6e333020, 0x2f2f7: 0x6e333220, + 0x2f2f8: 0x6c0a3820, 0x2f2f9: 0x6c5b2a20, 0x2f2fa: 0x6c5b2c20, 0x2f2fb: 0x6ca6f420, + 0x2f2fc: 0x6cd52620, 0x2f2fd: 0x6d037620, 0x2f2fe: 0x6c0a3c20, 0x2f2ff: 0x6c256820, + // Block 0xbcc, offset 0x2f300 + 0x2f300: 0x6c256a20, 0x2f301: 0x6c256c20, 0x2f302: 0x6c256e20, 0x2f303: 0x6c257020, + 0x2f304: 0x6c3d3a20, 0x2f305: 0x6c3d3c20, 0x2f306: 0x6c3d3e20, 0x2f307: 0x6c3d4020, + 0x2f308: 0x6c3d4220, 0x2f309: 0x6c3d4420, 0x2f30a: 0x6c3d4620, 0x2f30b: 0x6c5b3e20, + 0x2f30c: 0x6c5b4020, 0x2f30d: 0x6c5b4220, 0x2f30e: 0x6c5b4420, 0x2f30f: 0x6c5b4620, + 0x2f310: 0x6c5b4820, 0x2f311: 0x6c5b4a20, 0x2f312: 0x6c5b4c20, 0x2f313: 0x6c5b4e20, + 0x2f314: 0x6c5b5020, 0x2f315: 0x6c5b5220, 0x2f316: 0x6c5b5420, 0x2f317: 0x6c5b5620, + 0x2f318: 0x6c7e3820, 0x2f319: 0x6c7e3a20, 0x2f31a: 0x6c7e3c20, 0x2f31b: 0x6c7e3e20, + 0x2f31c: 0x6c7e4020, 0x2f31d: 0x6c7e4220, 0x2f31e: 0x6c7e4420, 0x2f31f: 0x6c7e4620, + 0x2f320: 0x6c7e4820, 0x2f321: 0x6c7e4a20, 0x2f322: 0x6c7e4c20, 0x2f323: 0x6c7e4e20, + 0x2f324: 0x6c7e5020, 0x2f325: 0x6c7e5220, 0x2f326: 0x6c7e5420, 0x2f327: 0x6c7e5620, + 0x2f328: 0x6c7e5820, 0x2f329: 0x6c7e5a20, 0x2f32a: 0x6c7e5c20, 0x2f32b: 0x6c7e5e20, + 0x2f32c: 0x6c7e6020, 0x2f32d: 0x6c7e6220, 0x2f32e: 0x6c7e6420, 0x2f32f: 0x6c7e6620, + 0x2f330: 0x6c7e6820, 0x2f331: 0x6ca71a20, 0x2f332: 0x6ca71c20, 0x2f333: 0x6ca71e20, + 0x2f334: 0x6ca72020, 0x2f335: 0x6ca72220, 0x2f336: 0x6ca72420, 0x2f337: 0x6ca72620, + 0x2f338: 0x6ca72820, 0x2f339: 0x6ca72a20, 0x2f33a: 0x6ca72c20, 0x2f33b: 0x6ca72e20, + 0x2f33c: 0x6ca73020, 0x2f33d: 0x6ca73220, 0x2f33e: 0x6ca73420, 0x2f33f: 0x6cd54020, + // Block 0xbcd, offset 0x2f340 + 0x2f340: 0x6cd54220, 0x2f341: 0x6cd54420, 0x2f342: 0x6cd54620, 0x2f343: 0x6cd54820, + 0x2f344: 0x6cd54a20, 0x2f345: 0x6cd54c20, 0x2f346: 0x6ca73620, 0x2f347: 0x6cd54e20, + 0x2f348: 0x6cd55020, 0x2f349: 0x6cd55220, 0x2f34a: 0x6cd55420, 0x2f34b: 0x6cd55620, + 0x2f34c: 0x6cd55820, 0x2f34d: 0x6cd55a20, 0x2f34e: 0x6cd55c20, 0x2f34f: 0x6d039420, + 0x2f350: 0x6d039620, 0x2f351: 0x6d039820, 0x2f352: 0x6d039a20, 0x2f353: 0x6d039c20, + 0x2f354: 0x6d039e20, 0x2f355: 0x6d03a020, 0x2f356: 0x6d03a220, 0x2f357: 0x6d03a420, + 0x2f358: 0x6d03a620, 0x2f359: 0x6d03a820, 0x2f35a: 0x6d03aa20, 0x2f35b: 0x6d03ac20, + 0x2f35c: 0x6d03ae20, 0x2f35d: 0x6d03b020, 0x2f35e: 0x6d03b220, 0x2f35f: 0x6d03b420, + 0x2f360: 0x6d03b620, 0x2f361: 0x6d03b820, 0x2f362: 0x6d03ba20, 0x2f363: 0x6d03bc20, + 0x2f364: 0x6d03be20, 0x2f365: 0x6d03c020, 0x2f366: 0x6d313220, 0x2f367: 0x6d313420, + 0x2f368: 0x6d313620, 0x2f369: 0x6d313820, 0x2f36a: 0x6d313a20, 0x2f36b: 0x6d313c20, + 0x2f36c: 0x6d313e20, 0x2f36d: 0x6d314020, 0x2f36e: 0x6d314220, 0x2f36f: 0x6d314420, + 0x2f370: 0x6d314620, 0x2f371: 0x6d314820, 0x2f372: 0x6d314a20, 0x2f373: 0x6d314c20, + 0x2f374: 0x6d5dee20, 0x2f375: 0x6d31c220, 0x2f376: 0x6d5df020, 0x2f377: 0x6d5df220, + 0x2f378: 0x6d5df420, 0x2f379: 0x6d5df620, 0x2f37a: 0x6d5df820, 0x2f37b: 0x6d5dfa20, + 0x2f37c: 0x6d5dfc20, 0x2f37d: 0x6d5dfe20, 0x2f37e: 0x6d5e0020, 0x2f37f: 0x6d5e0220, + // Block 0xbce, offset 0x2f380 + 0x2f380: 0x6d5e0420, 0x2f381: 0x6d5e0620, 0x2f382: 0x6d5e0820, 0x2f383: 0x6d5e0a20, + 0x2f384: 0x6d884220, 0x2f385: 0x6d884420, 0x2f386: 0x6d884620, 0x2f387: 0x6d884820, + 0x2f388: 0x6d884a20, 0x2f389: 0x6dacd420, 0x2f38a: 0x6d314e20, 0x2f38b: 0x6d884c20, + 0x2f38c: 0x6d884e20, 0x2f38d: 0x6d885020, 0x2f38e: 0x6d885220, 0x2f38f: 0x6d885420, + 0x2f390: 0x6d885620, 0x2f391: 0x6d885820, 0x2f392: 0x6d885a20, 0x2f393: 0x6d88ba20, + 0x2f394: 0x6dacd620, 0x2f395: 0x6dacd820, 0x2f396: 0x6dacda20, 0x2f397: 0x6dacdc20, + 0x2f398: 0x6dacde20, 0x2f399: 0x6dace020, 0x2f39a: 0x6dace220, 0x2f39b: 0x6dace420, + 0x2f39c: 0x6dace620, 0x2f39d: 0x6dace820, 0x2f39e: 0x6dacea20, 0x2f39f: 0x6dccce20, + 0x2f3a0: 0x6dccd020, 0x2f3a1: 0x6dccd220, 0x2f3a2: 0x6dccd420, 0x2f3a3: 0x6dccd620, + 0x2f3a4: 0x6de7bc20, 0x2f3a5: 0x6de7be20, 0x2f3a6: 0x6de7c020, 0x2f3a7: 0x6de7c220, + 0x2f3a8: 0x6de7c420, 0x2f3a9: 0x6de7c620, 0x2f3aa: 0x6de7c820, 0x2f3ab: 0x6de7ca20, + 0x2f3ac: 0x6dfe4a20, 0x2f3ad: 0x6dfe4c20, 0x2f3ae: 0x6dfe4e20, 0x2f3af: 0x6dfe5020, + 0x2f3b0: 0x6e1f6a20, 0x2f3b1: 0x6e1f7420, 0x2f3b2: 0x6e333e20, 0x2f3b3: 0x6e333c20, + 0x2f3b4: 0x6c0a4020, 0x2f3b5: 0x6c140c20, 0x2f3b6: 0x6c257c20, 0x2f3b7: 0x6c257e20, + 0x2f3b8: 0x6c3d6a20, 0x2f3b9: 0x6c3d6c20, 0x2f3ba: 0x6c3d6e20, 0x2f3bb: 0x6c3d7020, + 0x2f3bc: 0x6c5b9a20, 0x2f3bd: 0x6c5b9c20, 0x2f3be: 0x6c5b9e20, 0x2f3bf: 0x6c5ba020, + // Block 0xbcf, offset 0x2f3c0 + 0x2f3c0: 0x6c5ba220, 0x2f3c1: 0x6c5ba420, 0x2f3c2: 0x6c5ba620, 0x2f3c3: 0x6c5ba820, + 0x2f3c4: 0x6c7eac20, 0x2f3c5: 0x6c7eae20, 0x2f3c6: 0x6c7eb020, 0x2f3c7: 0x6c7eb220, + 0x2f3c8: 0x6c7eb420, 0x2f3c9: 0x6c7eb620, 0x2f3ca: 0x6c7eb820, 0x2f3cb: 0x6c7eba20, + 0x2f3cc: 0x6c7ebc20, 0x2f3cd: 0x6c7ebe20, 0x2f3ce: 0x6c7ec020, 0x2f3cf: 0x6ca78620, + 0x2f3d0: 0x6ca78820, 0x2f3d1: 0x6ca78a20, 0x2f3d2: 0x6ca78c20, 0x2f3d3: 0x6ca78e20, + 0x2f3d4: 0x6ca79020, 0x2f3d5: 0x6ca79220, 0x2f3d6: 0x6cd5ac20, 0x2f3d7: 0x6cd5ae20, + 0x2f3d8: 0x6cd5b020, 0x2f3d9: 0x6cd5b220, 0x2f3da: 0x6ca7c420, 0x2f3db: 0x6cd5b420, + 0x2f3dc: 0x6cd5b620, 0x2f3dd: 0x6cd5b820, 0x2f3de: 0x6d043220, 0x2f3df: 0x6d043420, + 0x2f3e0: 0x6d043620, 0x2f3e1: 0x6d043820, 0x2f3e2: 0x6d043a20, 0x2f3e3: 0x6d043c20, + 0x2f3e4: 0x6d043e20, 0x2f3e5: 0x6d044020, 0x2f3e6: 0x6d044220, 0x2f3e7: 0x6d044420, + 0x2f3e8: 0x6d31c820, 0x2f3e9: 0x6d31ca20, 0x2f3ea: 0x6d31cc20, 0x2f3eb: 0x6d31ce20, + 0x2f3ec: 0x6d31d020, 0x2f3ed: 0x6d31d220, 0x2f3ee: 0x6d5e7020, 0x2f3ef: 0x6d5e7220, + 0x2f3f0: 0x6d5e7420, 0x2f3f1: 0x6d5e7620, 0x2f3f2: 0x6d5e7820, 0x2f3f3: 0x6d5e7a20, + 0x2f3f4: 0x6d5e7c20, 0x2f3f5: 0x6d88c820, 0x2f3f6: 0x6d88ca20, 0x2f3f7: 0x6d88cc20, + 0x2f3f8: 0x6d88ce20, 0x2f3f9: 0x6d88d020, 0x2f3fa: 0x6d88d220, 0x2f3fb: 0x6d88d420, + 0x2f3fc: 0x6d88d620, 0x2f3fd: 0x6d88d820, 0x2f3fe: 0x6dad5020, 0x2f3ff: 0x6dad5220, + // Block 0xbd0, offset 0x2f400 + 0x2f400: 0x6dad5420, 0x2f401: 0x6dad5620, 0x2f402: 0x6dad5820, 0x2f403: 0x6e10de20, + 0x2f404: 0x6dcd2020, 0x2f405: 0x6dcd2220, 0x2f406: 0x6de7f620, 0x2f407: 0x6dfe8620, + 0x2f408: 0x6e10e020, 0x2f409: 0x6e10e220, 0x2f40a: 0x6e1f7820, 0x2f40b: 0x6c0a4420, + 0x2f40c: 0x6c258a20, 0x2f40d: 0x6c258c20, 0x2f40e: 0x6c3d9020, 0x2f40f: 0x6c3d9220, + 0x2f410: 0x6c5bd620, 0x2f411: 0x6c5bd820, 0x2f412: 0x6c5bda20, 0x2f413: 0x6c5bdc20, + 0x2f414: 0x6c5bde20, 0x2f415: 0x6c5be020, 0x2f416: 0x6c5be220, 0x2f417: 0x6c5be420, + 0x2f418: 0x6c7efe20, 0x2f419: 0x6c7f0020, 0x2f41a: 0x6c7f0220, 0x2f41b: 0x6c7f0420, + 0x2f41c: 0x6c7f0620, 0x2f41d: 0x6c7f0820, 0x2f41e: 0x6c7f0a20, 0x2f41f: 0x6cb6ae20, + 0x2f420: 0x6cb6b020, 0x2f421: 0x6ca7c820, 0x2f422: 0x6cd60e20, 0x2f423: 0x6cd61020, + 0x2f424: 0x6cd61220, 0x2f425: 0x6cd61420, 0x2f426: 0x6cd61620, 0x2f427: 0x6cd61820, + 0x2f428: 0x6d048e20, 0x2f429: 0x6d049020, 0x2f42a: 0x6d049220, 0x2f42b: 0x6d049420, + 0x2f42c: 0x6d320820, 0x2f42d: 0x6d320a20, 0x2f42e: 0x6d322e20, 0x2f42f: 0x6d320c20, + 0x2f430: 0x6d320e20, 0x2f431: 0x6d892220, 0x2f432: 0x6dad8a20, 0x2f433: 0x6dad8c20, + 0x2f434: 0x6dad8e20, 0x2f435: 0x6dcd3a20, 0x2f436: 0x6dfe9a20, 0x2f437: 0x6dfe9c20, + 0x2f438: 0x6e1f7e20, 0x2f439: 0x6c141020, 0x2f43a: 0x6c3d9a20, 0x2f43b: 0x6c3d9c20, + 0x2f43c: 0x6c5bf820, 0x2f43d: 0x6c5bfa20, 0x2f43e: 0x6c5bfc20, 0x2f43f: 0x6c5bfe20, + // Block 0xbd1, offset 0x2f440 + 0x2f440: 0x6c5c0020, 0x2f441: 0x6c5c0220, 0x2f442: 0x6c5c0420, 0x2f443: 0x6c5c0620, + 0x2f444: 0x6c7fa820, 0x2f445: 0x6c7f4020, 0x2f446: 0x6c7f4220, 0x2f447: 0x6c7f4420, + 0x2f448: 0x6c7f4620, 0x2f449: 0x6c7f4820, 0x2f44a: 0x6c7f4a20, 0x2f44b: 0x6c7f4c20, + 0x2f44c: 0x6c7f4e20, 0x2f44d: 0x6c7f5020, 0x2f44e: 0x6c7f5220, 0x2f44f: 0x6c7f5420, + 0x2f450: 0x6c7f5620, 0x2f451: 0x6c7f5820, 0x2f452: 0x6c7f5a20, 0x2f453: 0x6c7f5c20, + 0x2f454: 0x6c7f5e20, 0x2f455: 0x6c7f6020, 0x2f456: 0x6ca7fa20, 0x2f457: 0x6ca7fc20, + 0x2f458: 0x6ca7fe20, 0x2f459: 0x6ca80020, 0x2f45a: 0x6ca80220, 0x2f45b: 0x6ca80420, + 0x2f45c: 0x6ca80620, 0x2f45d: 0x6ca80820, 0x2f45e: 0x6ca80a20, 0x2f45f: 0x6ca80c20, + 0x2f460: 0x6ca80e20, 0x2f461: 0x6ca81020, 0x2f462: 0x6ca81220, 0x2f463: 0x6ca81420, + 0x2f464: 0x6ca81620, 0x2f465: 0x6ca81820, 0x2f466: 0x6ca81a20, 0x2f467: 0x6ca81c20, + 0x2f468: 0x6ca81e20, 0x2f469: 0x6ca82020, 0x2f46a: 0x6ca82220, 0x2f46b: 0x6ca82420, + 0x2f46c: 0x6ca82620, 0x2f46d: 0x6ca82820, 0x2f46e: 0x6ca82a20, 0x2f46f: 0x6ca82c20, + 0x2f470: 0x6ca82e20, 0x2f471: 0x6ca83020, 0x2f472: 0x6ca83220, 0x2f473: 0x6ca83420, + 0x2f474: 0x6ca83620, 0x2f475: 0x6ca83820, 0x2f476: 0x6ca83a20, 0x2f477: 0x6ca83c20, + 0x2f478: 0x6ca83e20, 0x2f479: 0x6ca84020, 0x2f47a: 0x6ca84220, 0x2f47b: 0x6ca84420, + 0x2f47c: 0x6ca84620, 0x2f47d: 0x6ca84820, 0x2f47e: 0x6ca84a20, 0x2f47f: 0x6cd65220, + // Block 0xbd2, offset 0x2f480 + 0x2f480: 0x6cd65420, 0x2f481: 0x6cd65620, 0x2f482: 0x6cd65820, 0x2f483: 0x6cd65a20, + 0x2f484: 0x6cd65c20, 0x2f485: 0x6cd65e20, 0x2f486: 0x6cd66020, 0x2f487: 0x6cd66220, + 0x2f488: 0x6cd66420, 0x2f489: 0x6cd66620, 0x2f48a: 0x6cd66820, 0x2f48b: 0x6cd66a20, + 0x2f48c: 0x6cd66c20, 0x2f48d: 0x6cd66e20, 0x2f48e: 0x6cd67020, 0x2f48f: 0x6cd67220, + 0x2f490: 0x6cd67420, 0x2f491: 0x6cd67620, 0x2f492: 0x6cd67820, 0x2f493: 0x6cd67a20, + 0x2f494: 0x6cd67c20, 0x2f495: 0x6cd67e20, 0x2f496: 0x6cd68020, 0x2f497: 0x6cd68220, + 0x2f498: 0x6cd68420, 0x2f499: 0x6cd68620, 0x2f49a: 0x6cd68820, 0x2f49b: 0x6cd68a20, + 0x2f49c: 0x6cd68c20, 0x2f49d: 0x6cd68e20, 0x2f49e: 0x6d04ce20, 0x2f49f: 0x6d04d020, + 0x2f4a0: 0x6d04d220, 0x2f4a1: 0x6d04d420, 0x2f4a2: 0x6d04d620, 0x2f4a3: 0x6d04d820, + 0x2f4a4: 0x6d04da20, 0x2f4a5: 0x6d04dc20, 0x2f4a6: 0x6d04de20, 0x2f4a7: 0x6d04e020, + 0x2f4a8: 0x6d04e220, 0x2f4a9: 0x6d04e420, 0x2f4aa: 0x6d04e620, 0x2f4ab: 0x6d04e820, + 0x2f4ac: 0x6cd6de20, 0x2f4ad: 0x6d04ea20, 0x2f4ae: 0x6d04ec20, 0x2f4af: 0x6d04ee20, + 0x2f4b0: 0x6d04f020, 0x2f4b1: 0x6d04f220, 0x2f4b2: 0x6d04f420, 0x2f4b3: 0x6d04f620, + 0x2f4b4: 0x6d04f820, 0x2f4b5: 0x6d323020, 0x2f4b6: 0x6d04fa20, 0x2f4b7: 0x6d04fc20, + 0x2f4b8: 0x6d04fe20, 0x2f4b9: 0x6d050020, 0x2f4ba: 0x6d050220, 0x2f4bb: 0x6d050420, + 0x2f4bc: 0x6d050620, 0x2f4bd: 0x6d050820, 0x2f4be: 0x6d050a20, 0x2f4bf: 0x6d050c20, + // Block 0xbd3, offset 0x2f4c0 + 0x2f4c0: 0x6d050e20, 0x2f4c1: 0x6d324c20, 0x2f4c2: 0x6d324e20, 0x2f4c3: 0x6d325020, + 0x2f4c4: 0x6d325220, 0x2f4c5: 0x6d325420, 0x2f4c6: 0x6d325620, 0x2f4c7: 0x6d325820, + 0x2f4c8: 0x6d325a20, 0x2f4c9: 0x6d325c20, 0x2f4ca: 0x6d325e20, 0x2f4cb: 0x6d326020, + 0x2f4cc: 0x6d326220, 0x2f4cd: 0x6d326420, 0x2f4ce: 0x6d326620, 0x2f4cf: 0x6d326820, + 0x2f4d0: 0x6d326a20, 0x2f4d1: 0x6d326c20, 0x2f4d2: 0x6d326e20, 0x2f4d3: 0x6d327020, + 0x2f4d4: 0x6d327220, 0x2f4d5: 0x6d327420, 0x2f4d6: 0x6d327620, 0x2f4d7: 0x6d327820, + 0x2f4d8: 0x6d327a20, 0x2f4d9: 0x6d327c20, 0x2f4da: 0x6d327e20, 0x2f4db: 0x6d328020, + 0x2f4dc: 0x6d328220, 0x2f4dd: 0x6d328420, 0x2f4de: 0x6d328620, 0x2f4df: 0x6d328820, + 0x2f4e0: 0x6d328a20, 0x2f4e1: 0x6d328c20, 0x2f4e2: 0x6d328e20, 0x2f4e3: 0x6d329020, + 0x2f4e4: 0x6d329220, 0x2f4e5: 0x6d329420, 0x2f4e6: 0x6d329620, 0x2f4e7: 0x6d329820, + 0x2f4e8: 0x6d329a20, 0x2f4e9: 0x6d329c20, 0x2f4ea: 0x6d329e20, 0x2f4eb: 0x6d32a020, + 0x2f4ec: 0x6d5f0420, 0x2f4ed: 0x6d5f0620, 0x2f4ee: 0x6d5f0820, 0x2f4ef: 0x6d5f0a20, + 0x2f4f0: 0x6d5f0c20, 0x2f4f1: 0x6d5f0e20, 0x2f4f2: 0x6d5f1020, 0x2f4f3: 0x6d5f1220, + 0x2f4f4: 0x6d5f1420, 0x2f4f5: 0x6d5f1620, 0x2f4f6: 0x6d5f1820, 0x2f4f7: 0x6d5f1a20, + 0x2f4f8: 0x6d333620, 0x2f4f9: 0x6d5f1c20, 0x2f4fa: 0x6d5f1e20, 0x2f4fb: 0x6d5f2020, + 0x2f4fc: 0x6d5f2220, 0x2f4fd: 0x6d5f2420, 0x2f4fe: 0x6d5f2620, 0x2f4ff: 0x6d5f2820, + // Block 0xbd4, offset 0x2f500 + 0x2f500: 0x6d051020, 0x2f501: 0x6d5f2a20, 0x2f502: 0x6d5f2c20, 0x2f503: 0x6d5f2e20, + 0x2f504: 0x6d5f3020, 0x2f505: 0x6d5f3220, 0x2f506: 0x6d5f3420, 0x2f507: 0x6d5f3620, + 0x2f508: 0x6d5f3820, 0x2f509: 0x6d894a20, 0x2f50a: 0x6d5f3a20, 0x2f50b: 0x6d5f3c20, + 0x2f50c: 0x6d5f3e20, 0x2f50d: 0x6d5f4020, 0x2f50e: 0x6d5f4220, 0x2f50f: 0x6d5f4420, + 0x2f510: 0x6d5f4620, 0x2f511: 0x6d5f4820, 0x2f512: 0x6d5f4a20, 0x2f513: 0x6d5f4c20, + 0x2f514: 0x6d894c20, 0x2f515: 0x6d894e20, 0x2f516: 0x6d895020, 0x2f517: 0x6d895220, + 0x2f518: 0x6d895420, 0x2f519: 0x6d895620, 0x2f51a: 0x6d895820, 0x2f51b: 0x6d895a20, + 0x2f51c: 0x6d895c20, 0x2f51d: 0x6d895e20, 0x2f51e: 0x6d896020, 0x2f51f: 0x6d896220, + 0x2f520: 0x6d896420, 0x2f521: 0x6d896620, 0x2f522: 0x6d896820, 0x2f523: 0x6d896a20, + 0x2f524: 0x6d896c20, 0x2f525: 0x6d896e20, 0x2f526: 0x6d897020, 0x2f527: 0x6d897220, + 0x2f528: 0x6d897420, 0x2f529: 0x6d897620, 0x2f52a: 0x6d897820, 0x2f52b: 0x6d897a20, + 0x2f52c: 0x6d897c20, 0x2f52d: 0x6d897e20, 0x2f52e: 0x6d898020, 0x2f52f: 0x6d898220, + 0x2f530: 0x6dadc820, 0x2f531: 0x6dadca20, 0x2f532: 0x6dadcc20, 0x2f533: 0x6dadce20, + 0x2f534: 0x6dadd020, 0x2f535: 0x6dadd220, 0x2f536: 0x6dadd420, 0x2f537: 0x6dadd620, + 0x2f538: 0x6dadd820, 0x2f539: 0x6d8a5020, 0x2f53a: 0x6dadda20, 0x2f53b: 0x6daddc20, + 0x2f53c: 0x6dadde20, 0x2f53d: 0x6dade020, 0x2f53e: 0x6dade220, 0x2f53f: 0x6dade420, + // Block 0xbd5, offset 0x2f540 + 0x2f540: 0x6dade620, 0x2f541: 0x6dade820, 0x2f542: 0x6dadea20, 0x2f543: 0x6dadec20, + 0x2f544: 0x6dadee20, 0x2f545: 0x6dadf020, 0x2f546: 0x6dadf220, 0x2f547: 0x6dadf420, + 0x2f548: 0x6dadf620, 0x2f549: 0x6dadf820, 0x2f54a: 0x6dadfa20, 0x2f54b: 0x6dadfc20, + 0x2f54c: 0x6dadfe20, 0x2f54d: 0x6dae0020, 0x2f54e: 0x6dae0220, 0x2f54f: 0x6dae0420, + 0x2f550: 0x6dae0620, 0x2f551: 0x6d898420, 0x2f552: 0x6dae0820, 0x2f553: 0x6dae0a20, + 0x2f554: 0x6dae0c20, 0x2f555: 0x6dada620, 0x2f556: 0x6dae0e20, 0x2f557: 0x6dae1020, + 0x2f558: 0x6daec420, 0x2f559: 0x6dcd7220, 0x2f55a: 0x6dcd7420, 0x2f55b: 0x6dcd7620, + 0x2f55c: 0x6dcd7820, 0x2f55d: 0x6dcd7a20, 0x2f55e: 0x6dcd7c20, 0x2f55f: 0x6dcd7e20, + 0x2f560: 0x6dcd8020, 0x2f561: 0x6dcd8220, 0x2f562: 0x6dcd8420, 0x2f563: 0x6dcd8620, + 0x2f564: 0x6dcd8820, 0x2f565: 0x6dcd8a20, 0x2f566: 0x6dcd8c20, 0x2f567: 0x6dcd8e20, + 0x2f568: 0x6dcd9020, 0x2f569: 0x6dcd9220, 0x2f56a: 0x6dcd9420, 0x2f56b: 0x6dcd9620, + 0x2f56c: 0x6de81220, 0x2f56d: 0x6dcd9820, 0x2f56e: 0x6dcd9a20, 0x2f56f: 0x6dcd9c20, + 0x2f570: 0x6dcd9e20, 0x2f571: 0x6dcda020, 0x2f572: 0x6dcda220, 0x2f573: 0x6de82820, + 0x2f574: 0x6de82a20, 0x2f575: 0x6de82c20, 0x2f576: 0x6de82e20, 0x2f577: 0x6de83020, + 0x2f578: 0x6de83220, 0x2f579: 0x6de83420, 0x2f57a: 0x6de83620, 0x2f57b: 0x6de83820, + 0x2f57c: 0x6de83a20, 0x2f57d: 0x6de83c20, 0x2f57e: 0x6de83e20, 0x2f57f: 0x6de84020, + // Block 0xbd6, offset 0x2f580 + 0x2f580: 0x6de84220, 0x2f581: 0x6de84420, 0x2f582: 0x6de84620, 0x2f583: 0x6dfeac20, + 0x2f584: 0x6dfeae20, 0x2f585: 0x6dfeb020, 0x2f586: 0x6dfeb220, 0x2f587: 0x6dfeb420, + 0x2f588: 0x6dfeb620, 0x2f589: 0x6dfeb820, 0x2f58a: 0x6dfeba20, 0x2f58b: 0x6dfebc20, + 0x2f58c: 0x6dfebe20, 0x2f58d: 0x6dfec020, 0x2f58e: 0x6dfec220, 0x2f58f: 0x6dfec420, + 0x2f590: 0x6e111820, 0x2f591: 0x6e111a20, 0x2f592: 0x6e111c20, 0x2f593: 0x6e111e20, + 0x2f594: 0x6e112020, 0x2f595: 0x6dfec620, 0x2f596: 0x6e110620, 0x2f597: 0x6e1f8e20, + 0x2f598: 0x6e1f9020, 0x2f599: 0x6e1f9220, 0x2f59a: 0x6e1f9420, 0x2f59b: 0x6e1f9620, + 0x2f59c: 0x6e1f9820, 0x2f59d: 0x6e1f9a20, 0x2f59e: 0x6e2ac420, 0x2f59f: 0x6e1f9c20, + 0x2f5a0: 0x6e1f9e20, 0x2f5a1: 0x6e1fa020, 0x2f5a2: 0x6e2acc20, 0x2f5a3: 0x6e2ace20, + 0x2f5a4: 0x6e2ad020, 0x2f5a5: 0x6e2ad220, 0x2f5a6: 0x6e2ad420, 0x2f5a7: 0x6e2ad620, + 0x2f5a8: 0x6e2ad820, 0x2f5a9: 0x6e396020, 0x2f5aa: 0x6e335420, 0x2f5ab: 0x6e396220, + 0x2f5ac: 0x6e396420, 0x2f5ad: 0x6e396620, 0x2f5ae: 0x6e396820, 0x2f5af: 0x6e3dae20, + 0x2f5b0: 0x6e3db020, 0x2f5b1: 0x6e453420, 0x2f5b2: 0x6e463620, 0x2f5b3: 0x6c141420, + 0x2f5b4: 0x6c3da820, 0x2f5b5: 0x6c3daa20, 0x2f5b6: 0x6c3dac20, 0x2f5b7: 0x6c5c3220, + 0x2f5b8: 0x6c5c3420, 0x2f5b9: 0x6c5c3620, 0x2f5ba: 0x6c5c3820, 0x2f5bb: 0x6c5c3a20, + 0x2f5bc: 0x6c5c3c20, 0x2f5bd: 0x6c5c3e20, 0x2f5be: 0x6c5c4020, 0x2f5bf: 0x6c5c4220, + // Block 0xbd7, offset 0x2f5c0 + 0x2f5c0: 0x6c5c4420, 0x2f5c1: 0x6c5c4620, 0x2f5c2: 0x6c5c4820, 0x2f5c3: 0x6c7fae20, + 0x2f5c4: 0x6c7fb020, 0x2f5c5: 0x6c7fb220, 0x2f5c6: 0x6c7fb420, 0x2f5c7: 0x6c7fb620, + 0x2f5c8: 0x6c7fb820, 0x2f5c9: 0x6c7fba20, 0x2f5ca: 0x6c7fbc20, 0x2f5cb: 0x6c7fbe20, + 0x2f5cc: 0x6c7fc020, 0x2f5cd: 0x6c7fc220, 0x2f5ce: 0x6c7fc420, 0x2f5cf: 0x6c7fc620, + 0x2f5d0: 0x6c7fc820, 0x2f5d1: 0x6c7fca20, 0x2f5d2: 0x6ca89c20, 0x2f5d3: 0x6ca89e20, + 0x2f5d4: 0x6ca8a020, 0x2f5d5: 0x6ca8a220, 0x2f5d6: 0x6ca8a420, 0x2f5d7: 0x6ca8a620, + 0x2f5d8: 0x6ca8a820, 0x2f5d9: 0x6ca8aa20, 0x2f5da: 0x6ca8ac20, 0x2f5db: 0x6ca8ae20, + 0x2f5dc: 0x6ca8b020, 0x2f5dd: 0x6ca8b220, 0x2f5de: 0x6cd6ec20, 0x2f5df: 0x6cd6ee20, + 0x2f5e0: 0x6cd6f020, 0x2f5e1: 0x6cd6f220, 0x2f5e2: 0x6cd6f420, 0x2f5e3: 0x6ca8b420, + 0x2f5e4: 0x6cd6f620, 0x2f5e5: 0x6cd6f820, 0x2f5e6: 0x6cd6fa20, 0x2f5e7: 0x6cd6fc20, + 0x2f5e8: 0x6cd6fe20, 0x2f5e9: 0x6cd70020, 0x2f5ea: 0x6cd70220, 0x2f5eb: 0x6cd70420, + 0x2f5ec: 0x6cd70620, 0x2f5ed: 0x6cd70820, 0x2f5ee: 0x6d05a420, 0x2f5ef: 0x6d05a620, + 0x2f5f0: 0x6d05a820, 0x2f5f1: 0x6d05aa20, 0x2f5f2: 0x6d05ac20, 0x2f5f3: 0x6d05ae20, + 0x2f5f4: 0x6d05b020, 0x2f5f5: 0x6d05b220, 0x2f5f6: 0x6d334420, 0x2f5f7: 0x6d334620, + 0x2f5f8: 0x6d334820, 0x2f5f9: 0x6d334a20, 0x2f5fa: 0x6d334c20, 0x2f5fb: 0x6d334e20, + 0x2f5fc: 0x6d335020, 0x2f5fd: 0x6d335220, 0x2f5fe: 0x6d335420, 0x2f5ff: 0x6d335620, + // Block 0xbd8, offset 0x2f600 + 0x2f600: 0x6d05b420, 0x2f601: 0x6d335820, 0x2f602: 0x6d5ffc20, 0x2f603: 0x6d5ffe20, + 0x2f604: 0x6d600020, 0x2f605: 0x6d600220, 0x2f606: 0x6d600420, 0x2f607: 0x6d600620, + 0x2f608: 0x6d600820, 0x2f609: 0x6d600a20, 0x2f60a: 0x6d600c20, 0x2f60b: 0x6d600e20, + 0x2f60c: 0x6d601020, 0x2f60d: 0x6d601220, 0x2f60e: 0x6d601420, 0x2f60f: 0x6d8a5820, + 0x2f610: 0x6d8a5a20, 0x2f611: 0x6d8a5c20, 0x2f612: 0x6d8a5e20, 0x2f613: 0x6d8a6020, + 0x2f614: 0x6d8a6220, 0x2f615: 0x6d8a6420, 0x2f616: 0x6d8a6620, 0x2f617: 0x6d8a6820, + 0x2f618: 0x6d8a6a20, 0x2f619: 0x6daed420, 0x2f61a: 0x6daed620, 0x2f61b: 0x6daed820, + 0x2f61c: 0x6daeda20, 0x2f61d: 0x6daedc20, 0x2f61e: 0x6daede20, 0x2f61f: 0x6daee020, + 0x2f620: 0x6daee220, 0x2f621: 0x6daee420, 0x2f622: 0x6daee620, 0x2f623: 0x6dce7220, + 0x2f624: 0x6dce7420, 0x2f625: 0x6dce7620, 0x2f626: 0x6dce7820, 0x2f627: 0x6dce7a20, + 0x2f628: 0x6daee820, 0x2f629: 0x6de8c820, 0x2f62a: 0x6de8ca20, 0x2f62b: 0x6de8cc20, + 0x2f62c: 0x6de8ce20, 0x2f62d: 0x6de8d020, 0x2f62e: 0x6dff2020, 0x2f62f: 0x6dff2220, + 0x2f630: 0x6dff2420, 0x2f631: 0x6e1fe420, 0x2f632: 0x6e118c20, 0x2f633: 0x6e3dc220, + 0x2f634: 0x6e1fe620, 0x2f635: 0x6e2b0820, 0x2f636: 0x6e398820, 0x2f637: 0x6e409e20, + 0x2f638: 0x6c141620, 0x2f639: 0x6c141820, 0x2f63a: 0x6c259a20, 0x2f63b: 0x6c259c20, + 0x2f63c: 0x6c3dbc20, 0x2f63d: 0x6c3dbe20, 0x2f63e: 0x6c3dc020, 0x2f63f: 0x6c3dc220, + // Block 0xbd9, offset 0x2f640 + 0x2f640: 0x6c5c6620, 0x2f641: 0x6c5c6820, 0x2f642: 0x6c5c6a20, 0x2f643: 0x6c5c6c20, + 0x2f644: 0x6c5c6e20, 0x2f645: 0x6c5c7020, 0x2f646: 0x6c5c7220, 0x2f647: 0x6c5c7420, + 0x2f648: 0x6c5c7620, 0x2f649: 0x6c5c7820, 0x2f64a: 0x6c800a20, 0x2f64b: 0x6c800c20, + 0x2f64c: 0x6c800e20, 0x2f64d: 0x6c801020, 0x2f64e: 0x6c801220, 0x2f64f: 0x6c801420, + 0x2f650: 0x6c801620, 0x2f651: 0x6c801820, 0x2f652: 0x6c801a20, 0x2f653: 0x6c801c20, + 0x2f654: 0x6c801e20, 0x2f655: 0x6c802020, 0x2f656: 0x6c802220, 0x2f657: 0x6c802420, + 0x2f658: 0x6c802620, 0x2f659: 0x6c802820, 0x2f65a: 0x6c802a20, 0x2f65b: 0x6c802c20, + 0x2f65c: 0x6c802e20, 0x2f65d: 0x6c803020, 0x2f65e: 0x6c803220, 0x2f65f: 0x6c803420, + 0x2f660: 0x6c803620, 0x2f661: 0x6c803820, 0x2f662: 0x6c803a20, 0x2f663: 0x6c803c20, + 0x2f664: 0x6c803e20, 0x2f665: 0x6c804020, 0x2f666: 0x6c804220, 0x2f667: 0x6c804420, + 0x2f668: 0x6ca90c20, 0x2f669: 0x6ca90e20, 0x2f66a: 0x6cd74220, 0x2f66b: 0x6cd74420, + 0x2f66c: 0x6ca91020, 0x2f66d: 0x6ca91220, 0x2f66e: 0x6ca91420, 0x2f66f: 0x6ca91620, + 0x2f670: 0x6ca91820, 0x2f671: 0x6ca91a20, 0x2f672: 0x6ca91c20, 0x2f673: 0x6ca91e20, + 0x2f674: 0x6ca92020, 0x2f675: 0x6ca92220, 0x2f676: 0x6ca92420, 0x2f677: 0x6ca92620, + 0x2f678: 0x6ca92820, 0x2f679: 0x6ca92a20, 0x2f67a: 0x6ca92c20, 0x2f67b: 0x6ca92e20, + 0x2f67c: 0x6ca93020, 0x2f67d: 0x6ca93220, 0x2f67e: 0x6ca93420, 0x2f67f: 0x6ca93620, + // Block 0xbda, offset 0x2f680 + 0x2f680: 0x6ca93820, 0x2f681: 0x6ca93a20, 0x2f682: 0x6ca93c20, 0x2f683: 0x6ca93e20, + 0x2f684: 0x6ca94020, 0x2f685: 0x6ca94220, 0x2f686: 0x6ca94420, 0x2f687: 0x6ca94620, + 0x2f688: 0x6ca94820, 0x2f689: 0x6ca94a20, 0x2f68a: 0x6ca94c20, 0x2f68b: 0x6ca94e20, + 0x2f68c: 0x6ca95020, 0x2f68d: 0x6cd75a20, 0x2f68e: 0x6cd75c20, 0x2f68f: 0x6cd75e20, + 0x2f690: 0x6cd76020, 0x2f691: 0x6cd76220, 0x2f692: 0x6cd76420, 0x2f693: 0x6cd76620, + 0x2f694: 0x6cd76820, 0x2f695: 0x6cd76a20, 0x2f696: 0x6cd76c20, 0x2f697: 0x6cd76e20, + 0x2f698: 0x6cd77020, 0x2f699: 0x6cd77220, 0x2f69a: 0x6cd77420, 0x2f69b: 0x6d061420, + 0x2f69c: 0x6cd77620, 0x2f69d: 0x6cd77820, 0x2f69e: 0x6cd77a20, 0x2f69f: 0x6cd77c20, + 0x2f6a0: 0x6cd77e20, 0x2f6a1: 0x6cd78020, 0x2f6a2: 0x6cd78220, 0x2f6a3: 0x6cd78420, + 0x2f6a4: 0x6cd78620, 0x2f6a5: 0x6cd78820, 0x2f6a6: 0x6cd78a20, 0x2f6a7: 0x6cd78c20, + 0x2f6a8: 0x6cd78e20, 0x2f6a9: 0x6cd79020, 0x2f6aa: 0x6cd79220, 0x2f6ab: 0x6cd79420, + 0x2f6ac: 0x6cd79620, 0x2f6ad: 0x6cd79820, 0x2f6ae: 0x6cd79a20, 0x2f6af: 0x6cd79c20, + 0x2f6b0: 0x6cd79e20, 0x2f6b1: 0x6cd7a020, 0x2f6b2: 0x6cd7a220, 0x2f6b3: 0x6cd7a420, + 0x2f6b4: 0x6cd7a620, 0x2f6b5: 0x6cd7a820, 0x2f6b6: 0x6cd7aa20, 0x2f6b7: 0x6cd7ac20, + 0x2f6b8: 0x6d061620, 0x2f6b9: 0x6d061820, 0x2f6ba: 0x6d061a20, 0x2f6bb: 0x6d061c20, + 0x2f6bc: 0x6d061e20, 0x2f6bd: 0x6d062020, 0x2f6be: 0x6cd80c20, 0x2f6bf: 0x6d062220, + // Block 0xbdb, offset 0x2f6c0 + 0x2f6c0: 0x6d062420, 0x2f6c1: 0x6d062620, 0x2f6c2: 0x6d062820, 0x2f6c3: 0x6d062a20, + 0x2f6c4: 0x6d062c20, 0x2f6c5: 0x6d062e20, 0x2f6c6: 0x6d063020, 0x2f6c7: 0x6d063220, + 0x2f6c8: 0x6d063420, 0x2f6c9: 0x6d063620, 0x2f6ca: 0x6d063820, 0x2f6cb: 0x6d063a20, + 0x2f6cc: 0x6d063c20, 0x2f6cd: 0x6d063e20, 0x2f6ce: 0x6d064020, 0x2f6cf: 0x6d064220, + 0x2f6d0: 0x6d064420, 0x2f6d1: 0x6d064620, 0x2f6d2: 0x6d064820, 0x2f6d3: 0x6d064a20, + 0x2f6d4: 0x6d064c20, 0x2f6d5: 0x6d064e20, 0x2f6d6: 0x6d33b420, 0x2f6d7: 0x6d065020, + 0x2f6d8: 0x6d065220, 0x2f6d9: 0x6d065420, 0x2f6da: 0x6d065620, 0x2f6db: 0x6d065820, + 0x2f6dc: 0x6d33d020, 0x2f6dd: 0x6d33d220, 0x2f6de: 0x6d33d420, 0x2f6df: 0x6d33d620, + 0x2f6e0: 0x6d33d820, 0x2f6e1: 0x6d33da20, 0x2f6e2: 0x6d33dc20, 0x2f6e3: 0x6d33de20, + 0x2f6e4: 0x6d33e020, 0x2f6e5: 0x6d33e220, 0x2f6e6: 0x6d33e420, 0x2f6e7: 0x6d33e620, + 0x2f6e8: 0x6d33e820, 0x2f6e9: 0x6d33ea20, 0x2f6ea: 0x6d33ec20, 0x2f6eb: 0x6d33ee20, + 0x2f6ec: 0x6d33f020, 0x2f6ed: 0x6d33f220, 0x2f6ee: 0x6d33f420, 0x2f6ef: 0x6d33f620, + 0x2f6f0: 0x6d33f820, 0x2f6f1: 0x6d33fa20, 0x2f6f2: 0x6d33fc20, 0x2f6f3: 0x6d33fe20, + 0x2f6f4: 0x6d340020, 0x2f6f5: 0x6d340220, 0x2f6f6: 0x6d340420, 0x2f6f7: 0x6d340620, + 0x2f6f8: 0x6d340820, 0x2f6f9: 0x6d340a20, 0x2f6fa: 0x6d340c20, 0x2f6fb: 0x6d340e20, + 0x2f6fc: 0x6d341020, 0x2f6fd: 0x6d341220, 0x2f6fe: 0x6d341420, 0x2f6ff: 0x6d341620, + // Block 0xbdc, offset 0x2f700 + 0x2f700: 0x6d341820, 0x2f701: 0x6d341a20, 0x2f702: 0x6d341c20, 0x2f703: 0x6d341e20, + 0x2f704: 0x6d342020, 0x2f705: 0x6d342220, 0x2f706: 0x6d342420, 0x2f707: 0x6d342620, + 0x2f708: 0x6d342820, 0x2f709: 0x6d342a20, 0x2f70a: 0x6d342c20, 0x2f70b: 0x6d342e20, + 0x2f70c: 0x6d343020, 0x2f70d: 0x6d343220, 0x2f70e: 0x6d343420, 0x2f70f: 0x6d343620, + 0x2f710: 0x6d33b620, 0x2f711: 0x6d343820, 0x2f712: 0x6d343a20, 0x2f713: 0x6d608820, + 0x2f714: 0x6d343c20, 0x2f715: 0x6d343e20, 0x2f716: 0x6d608a20, 0x2f717: 0x6d608c20, + 0x2f718: 0x6d608e20, 0x2f719: 0x6d609020, 0x2f71a: 0x6d609220, 0x2f71b: 0x6d609420, + 0x2f71c: 0x6d609620, 0x2f71d: 0x6d609820, 0x2f71e: 0x6d609a20, 0x2f71f: 0x6d609c20, + 0x2f720: 0x6d609e20, 0x2f721: 0x6d60a020, 0x2f722: 0x6d60a220, 0x2f723: 0x6d60a420, + 0x2f724: 0x6d60a620, 0x2f725: 0x6d60a820, 0x2f726: 0x6d60aa20, 0x2f727: 0x6d60ac20, + 0x2f728: 0x6d60ae20, 0x2f729: 0x6d60b020, 0x2f72a: 0x6d60b220, 0x2f72b: 0x6d60b420, + 0x2f72c: 0x6d60b620, 0x2f72d: 0x6d60b820, 0x2f72e: 0x6d60ba20, 0x2f72f: 0x6d60bc20, + 0x2f730: 0x6d60be20, 0x2f731: 0x6d60c020, 0x2f732: 0x6d60c220, 0x2f733: 0x6d60c420, + 0x2f734: 0x6d60c620, 0x2f735: 0x6d60c820, 0x2f736: 0x6d60ca20, 0x2f737: 0x6d60cc20, + 0x2f738: 0x6d60ce20, 0x2f739: 0x6d60d020, 0x2f73a: 0x6d60d220, 0x2f73b: 0x6d60d420, + 0x2f73c: 0x6d60d620, 0x2f73d: 0x6d60d820, 0x2f73e: 0x6d60da20, 0x2f73f: 0x6d60dc20, + // Block 0xbdd, offset 0x2f740 + 0x2f740: 0x6d60de20, 0x2f741: 0x6d60e020, 0x2f742: 0x6d60e220, 0x2f743: 0x6d60e420, + 0x2f744: 0x6d60e620, 0x2f745: 0x6d60e820, 0x2f746: 0x6d60ea20, 0x2f747: 0x6d60ec20, + 0x2f748: 0x6d8aba20, 0x2f749: 0x6d8abc20, 0x2f74a: 0x6d8abe20, 0x2f74b: 0x6d8ac020, + 0x2f74c: 0x6d8ac220, 0x2f74d: 0x6d8ac420, 0x2f74e: 0x6d8ac620, 0x2f74f: 0x6d8ac820, + 0x2f750: 0x6d8aca20, 0x2f751: 0x6d8acc20, 0x2f752: 0x6d8ace20, 0x2f753: 0x6d8ad020, + 0x2f754: 0x6d8ad220, 0x2f755: 0x6d8ad420, 0x2f756: 0x6d8ad620, 0x2f757: 0x6d8ad820, + 0x2f758: 0x6d8ada20, 0x2f759: 0x6d8adc20, 0x2f75a: 0x6d8ade20, 0x2f75b: 0x6d8ae020, + 0x2f75c: 0x6d8ae220, 0x2f75d: 0x6d8ae420, 0x2f75e: 0x6d8ae620, 0x2f75f: 0x6d8ae820, + 0x2f760: 0x6d8aea20, 0x2f761: 0x6d8aec20, 0x2f762: 0x6d8aee20, 0x2f763: 0x6d8af020, + 0x2f764: 0x6d8af220, 0x2f765: 0x6d8af420, 0x2f766: 0x6d8af620, 0x2f767: 0x6d8af820, + 0x2f768: 0x6d8afa20, 0x2f769: 0x6daf3420, 0x2f76a: 0x6daf3620, 0x2f76b: 0x6daf3820, + 0x2f76c: 0x6daf3a20, 0x2f76d: 0x6daf3c20, 0x2f76e: 0x6daf3e20, 0x2f76f: 0x6daf4020, + 0x2f770: 0x6daf4220, 0x2f771: 0x6daf4420, 0x2f772: 0x6daf4620, 0x2f773: 0x6daf4820, + 0x2f774: 0x6daf4a20, 0x2f775: 0x6daf4c20, 0x2f776: 0x6daf4e20, 0x2f777: 0x6daf5020, + 0x2f778: 0x6daf5220, 0x2f779: 0x6daf5420, 0x2f77a: 0x6daf5620, 0x2f77b: 0x6daf5820, + 0x2f77c: 0x6daf5a20, 0x2f77d: 0x6daf5c20, 0x2f77e: 0x6daf5e20, 0x2f77f: 0x6daf6020, + // Block 0xbde, offset 0x2f780 + 0x2f780: 0x6daf6220, 0x2f781: 0x6daf6420, 0x2f782: 0x6daf6620, 0x2f783: 0x6daf6820, + 0x2f784: 0x6daf6a20, 0x2f785: 0x6daf6c20, 0x2f786: 0x6daf6e20, 0x2f787: 0x6daf7020, + 0x2f788: 0x6dafea20, 0x2f789: 0x6daf7220, 0x2f78a: 0x6daf7420, 0x2f78b: 0x6de91a20, + 0x2f78c: 0x6daf7620, 0x2f78d: 0x6daf7820, 0x2f78e: 0x6dcecc20, 0x2f78f: 0x6dcece20, + 0x2f790: 0x6dced020, 0x2f791: 0x6dced220, 0x2f792: 0x6dced420, 0x2f793: 0x6dced620, + 0x2f794: 0x6dced820, 0x2f795: 0x6dceda20, 0x2f796: 0x6dcedc20, 0x2f797: 0x6dcede20, + 0x2f798: 0x6dcee020, 0x2f799: 0x6dcee220, 0x2f79a: 0x6dcee420, 0x2f79b: 0x6dcee620, + 0x2f79c: 0x6dcee820, 0x2f79d: 0x6dceea20, 0x2f79e: 0x6dceec20, 0x2f79f: 0x6dceee20, + 0x2f7a0: 0x6dcef020, 0x2f7a1: 0x6dcef220, 0x2f7a2: 0x6dcef420, 0x2f7a3: 0x6dcef620, + 0x2f7a4: 0x6dcef820, 0x2f7a5: 0x6dcefa20, 0x2f7a6: 0x6de91c20, 0x2f7a7: 0x6dcefc20, + 0x2f7a8: 0x6de91e20, 0x2f7a9: 0x6de92020, 0x2f7aa: 0x6de92220, 0x2f7ab: 0x6de92420, + 0x2f7ac: 0x6de92620, 0x2f7ad: 0x6de92820, 0x2f7ae: 0x6de92a20, 0x2f7af: 0x6de92c20, + 0x2f7b0: 0x6de92e20, 0x2f7b1: 0x6dcefe20, 0x2f7b2: 0x6de93020, 0x2f7b3: 0x6de93220, + 0x2f7b4: 0x6de93420, 0x2f7b5: 0x6de93620, 0x2f7b6: 0x6de93820, 0x2f7b7: 0x6de93a20, + 0x2f7b8: 0x6de93c20, 0x2f7b9: 0x6de93e20, 0x2f7ba: 0x6de94020, 0x2f7bb: 0x6dff4220, + 0x2f7bc: 0x6dff4420, 0x2f7bd: 0x6dff4620, 0x2f7be: 0x6dff4820, 0x2f7bf: 0x6dff4a20, + // Block 0xbdf, offset 0x2f7c0 + 0x2f7c0: 0x6dff4c20, 0x2f7c1: 0x6dff4e20, 0x2f7c2: 0x6dff5020, 0x2f7c3: 0x6dff5220, + 0x2f7c4: 0x6e11aa20, 0x2f7c5: 0x6e11ac20, 0x2f7c6: 0x6e11ae20, 0x2f7c7: 0x6e11b020, + 0x2f7c8: 0x6e11b220, 0x2f7c9: 0x6e11b420, 0x2f7ca: 0x6e11b620, 0x2f7cb: 0x6e11b820, + 0x2f7cc: 0x6e11ba20, 0x2f7cd: 0x6e11bc20, 0x2f7ce: 0x6e11be20, 0x2f7cf: 0x6e11c020, + 0x2f7d0: 0x6e11c220, 0x2f7d1: 0x6e200820, 0x2f7d2: 0x6e200a20, 0x2f7d3: 0x6e2b1620, + 0x2f7d4: 0x6e2b1820, 0x2f7d5: 0x6e2b1a20, 0x2f7d6: 0x6e2b1c20, 0x2f7d7: 0x6e339220, + 0x2f7d8: 0x6e399820, 0x2f7d9: 0x6e399a20, 0x2f7da: 0x6e399c20, 0x2f7db: 0x6e399e20, + 0x2f7dc: 0x6e40a620, 0x2f7dd: 0x6e40a820, 0x2f7de: 0x6e445a20, 0x2f7df: 0x6c020020, + 0x2f7e0: 0x6c0a4620, 0x2f7e1: 0x6c141a20, 0x2f7e2: 0x6c141c20, 0x2f7e3: 0x6c141e20, + 0x2f7e4: 0x6c142020, 0x2f7e5: 0x6c142220, 0x2f7e6: 0x6c142420, 0x2f7e7: 0x6c142620, + 0x2f7e8: 0x6c142820, 0x2f7e9: 0x6c142a20, 0x2f7ea: 0x6c142c20, 0x2f7eb: 0x6c142e20, + 0x2f7ec: 0x6c25a020, 0x2f7ed: 0x6c25a220, 0x2f7ee: 0x6c25a420, 0x2f7ef: 0x6c25a620, + 0x2f7f0: 0x6c25a820, 0x2f7f1: 0x6c25aa20, 0x2f7f2: 0x6c25ac20, 0x2f7f3: 0x6c25ae20, + 0x2f7f4: 0x6c25b020, 0x2f7f5: 0x6c25b220, 0x2f7f6: 0x6c259e20, 0x2f7f7: 0x6c25b420, + 0x2f7f8: 0x6c25b620, 0x2f7f9: 0x6c25b820, 0x2f7fa: 0x6c25ba20, 0x2f7fb: 0x6c25bc20, + 0x2f7fc: 0x6c25be20, 0x2f7fd: 0x6c25c020, 0x2f7fe: 0x6c25c220, 0x2f7ff: 0x6c3dd620, + // Block 0xbe0, offset 0x2f800 + 0x2f800: 0x6c3dd820, 0x2f801: 0x6c3dda20, 0x2f802: 0x6c3ddc20, 0x2f803: 0x6c3dde20, + 0x2f804: 0x6c3de020, 0x2f805: 0x6c3de220, 0x2f806: 0x6c3de420, 0x2f807: 0x6c3de620, + 0x2f808: 0x6c3de820, 0x2f809: 0x6c3dea20, 0x2f80a: 0x6c3dec20, 0x2f80b: 0x6c3dee20, + 0x2f80c: 0x6c3df020, 0x2f80d: 0x6c3df220, 0x2f80e: 0x6c3df420, 0x2f80f: 0x6c3df620, + 0x2f810: 0x6c3df820, 0x2f811: 0x6c5c9a20, 0x2f812: 0x6c5c9c20, 0x2f813: 0x6c5c9e20, + 0x2f814: 0x6c5ca020, 0x2f815: 0x6c5ca220, 0x2f816: 0x6c5ca420, 0x2f817: 0x6c5ca620, + 0x2f818: 0x6c5ca820, 0x2f819: 0x6c5caa20, 0x2f81a: 0x6c5cac20, 0x2f81b: 0x6c5cae20, + 0x2f81c: 0x6c5cb020, 0x2f81d: 0x6c5cb220, 0x2f81e: 0x6c5cb420, 0x2f81f: 0x6c5cb620, + 0x2f820: 0x6c809e20, 0x2f821: 0x6c80a020, 0x2f822: 0x6c80a220, 0x2f823: 0x6c80a420, + 0x2f824: 0x6c80a620, 0x2f825: 0x6c80a820, 0x2f826: 0x6c80aa20, 0x2f827: 0x6c80ac20, + 0x2f828: 0x6c80ae20, 0x2f829: 0x6ca9a220, 0x2f82a: 0x6ca9a420, 0x2f82b: 0x6ca9a620, + 0x2f82c: 0x6ca9a820, 0x2f82d: 0x6ca9aa20, 0x2f82e: 0x6ca9ac20, 0x2f82f: 0x6ca9ae20, + 0x2f830: 0x6ca9b020, 0x2f831: 0x6ca9b220, 0x2f832: 0x6ca9b420, 0x2f833: 0x6ca9b620, + 0x2f834: 0x6ca9b820, 0x2f835: 0x6ca9ba20, 0x2f836: 0x6ca9bc20, 0x2f837: 0x6ca9be20, + 0x2f838: 0x6ca9c020, 0x2f839: 0x6ca9c220, 0x2f83a: 0x6ca9c420, 0x2f83b: 0x6ca9c620, + 0x2f83c: 0x6ca9c820, 0x2f83d: 0x6ca9ca20, 0x2f83e: 0x6ca9cc20, 0x2f83f: 0x6ca9ce20, + // Block 0xbe1, offset 0x2f840 + 0x2f840: 0x6ca9d020, 0x2f841: 0x6ca9d220, 0x2f842: 0x6cd81220, 0x2f843: 0x6cd81420, + 0x2f844: 0x6cd81620, 0x2f845: 0x6cd81820, 0x2f846: 0x6cd81a20, 0x2f847: 0x6cd81c20, + 0x2f848: 0x6cd81e20, 0x2f849: 0x6cd82020, 0x2f84a: 0x6cd82220, 0x2f84b: 0x6cd82420, + 0x2f84c: 0x6cd82620, 0x2f84d: 0x6cd82820, 0x2f84e: 0x6cd82a20, 0x2f84f: 0x6cd82c20, + 0x2f850: 0x6cd82e20, 0x2f851: 0x6cd83020, 0x2f852: 0x6cd83220, 0x2f853: 0x6cd83420, + 0x2f854: 0x6cd83620, 0x2f855: 0x6cd83820, 0x2f856: 0x6cd83a20, 0x2f857: 0x6cd83c20, + 0x2f858: 0x6cd83e20, 0x2f859: 0x6d06ce20, 0x2f85a: 0x6d06d020, 0x2f85b: 0x6d06d220, + 0x2f85c: 0x6d06d420, 0x2f85d: 0x6d06d620, 0x2f85e: 0x6d06d820, 0x2f85f: 0x6d06da20, + 0x2f860: 0x6d06dc20, 0x2f861: 0x6d06de20, 0x2f862: 0x6d06e020, 0x2f863: 0x6d06e220, + 0x2f864: 0x6d06e420, 0x2f865: 0x6d34c820, 0x2f866: 0x6d34ca20, 0x2f867: 0x6d34cc20, + 0x2f868: 0x6d34ce20, 0x2f869: 0x6d34d020, 0x2f86a: 0x6d34d220, 0x2f86b: 0x6d34d420, + 0x2f86c: 0x6d618020, 0x2f86d: 0x6d618220, 0x2f86e: 0x6d618420, 0x2f86f: 0x6d618620, + 0x2f870: 0x6d8b9620, 0x2f871: 0x6d8b9820, 0x2f872: 0x6d8b9a20, 0x2f873: 0x6d8b9c20, + 0x2f874: 0x6d8b9e20, 0x2f875: 0x6de9a220, 0x2f876: 0x6c143020, 0x2f877: 0x6c3e0020, + 0x2f878: 0x6c5cc620, 0x2f879: 0x6c80c620, 0x2f87a: 0x6c80c820, 0x2f87b: 0x6ca9ee20, + 0x2f87c: 0x6c80ca20, 0x2f87d: 0x6ca9f020, 0x2f87e: 0x6cd85420, 0x2f87f: 0x6cd85620, + // Block 0xbe2, offset 0x2f880 + 0x2f880: 0x6cd85820, 0x2f881: 0x6d34e420, 0x2f882: 0x6d34e620, 0x2f883: 0x6d8ba820, + 0x2f884: 0x6daff420, 0x2f885: 0x6daff620, 0x2f886: 0x6daff820, 0x2f887: 0x6dcf7c20, + 0x2f888: 0x6dcf7e20, 0x2f889: 0x6dcf8020, 0x2f88a: 0x6de9a420, 0x2f88b: 0x6de9a620, + 0x2f88c: 0x6dff9020, 0x2f88d: 0x6e120220, 0x2f88e: 0x6e203a20, 0x2f88f: 0x6e203c20, + 0x2f890: 0x6e33a620, 0x2f891: 0x6c143420, 0x2f892: 0x6c0a4a20, 0x2f893: 0x6c050420, + 0x2f894: 0x6c3e0420, 0x2f895: 0x6c25dc20, 0x2f896: 0x6c3e0620, 0x2f897: 0x6c3e0820, + 0x2f898: 0x6c5cd620, 0x2f899: 0x6c3e2020, 0x2f89a: 0x6c5cd820, 0x2f89b: 0x6c80d820, + 0x2f89c: 0x6c80da20, 0x2f89d: 0x6c80dc20, 0x2f89e: 0x6c80de20, 0x2f89f: 0x6c80e020, + 0x2f8a0: 0x6c80e220, 0x2f8a1: 0x6c80e420, 0x2f8a2: 0x6c80e620, 0x2f8a3: 0x6caa0020, + 0x2f8a4: 0x6cd86820, 0x2f8a5: 0x6cd86a20, 0x2f8a6: 0x6cd86c20, 0x2f8a7: 0x6d070220, + 0x2f8a8: 0x6d070420, 0x2f8a9: 0x6d070620, 0x2f8aa: 0x6d070820, 0x2f8ab: 0x6d070a20, + 0x2f8ac: 0x6d070c20, 0x2f8ad: 0x6d070e20, 0x2f8ae: 0x6d071020, 0x2f8af: 0x6d350020, + 0x2f8b0: 0x6d350220, 0x2f8b1: 0x6d350420, 0x2f8b2: 0x6d071220, 0x2f8b3: 0x6d350620, + 0x2f8b4: 0x6d350820, 0x2f8b5: 0x6d61a420, 0x2f8b6: 0x6d61a620, 0x2f8b7: 0x6d61a820, + 0x2f8b8: 0x6d61aa20, 0x2f8b9: 0x6d8bbe20, 0x2f8ba: 0x6d8bc020, 0x2f8bb: 0x6d8bc220, + 0x2f8bc: 0x6d8bc420, 0x2f8bd: 0x6db00820, 0x2f8be: 0x6db00a20, 0x2f8bf: 0x6db00c20, + // Block 0xbe3, offset 0x2f8c0 + 0x2f8c0: 0x6dcf8a20, 0x2f8c1: 0x6db00e20, 0x2f8c2: 0x6dcf8e20, 0x2f8c3: 0x6de9b620, + 0x2f8c4: 0x6de9b820, 0x2f8c5: 0x6de9ba20, 0x2f8c6: 0x6de9bc20, 0x2f8c7: 0x6e204020, + 0x2f8c8: 0x6e33b020, 0x2f8c9: 0x6e33b220, 0x2f8ca: 0x6c143a20, 0x2f8cb: 0x6c3e2220, + 0x2f8cc: 0x6c3e2420, 0x2f8cd: 0x6c5cf620, 0x2f8ce: 0x6c5cf820, 0x2f8cf: 0x6c5cfa20, + 0x2f8d0: 0x6c812220, 0x2f8d1: 0x6c5cfc20, 0x2f8d2: 0x6c812a20, 0x2f8d3: 0x6c812c20, + 0x2f8d4: 0x6c812e20, 0x2f8d5: 0x6caa3220, 0x2f8d6: 0x6c813020, 0x2f8d7: 0x6c813220, + 0x2f8d8: 0x6c813420, 0x2f8d9: 0x6c813620, 0x2f8da: 0x6caa3420, 0x2f8db: 0x6caa3620, + 0x2f8dc: 0x6caa3820, 0x2f8dd: 0x6caa3a20, 0x2f8de: 0x6caa3c20, 0x2f8df: 0x6caa3e20, + 0x2f8e0: 0x6cd88820, 0x2f8e1: 0x6cd88a20, 0x2f8e2: 0x6cd88c20, 0x2f8e3: 0x6d074820, + 0x2f8e4: 0x6d074a20, 0x2f8e5: 0x6d074c20, 0x2f8e6: 0x6d074e20, 0x2f8e7: 0x6d075020, + 0x2f8e8: 0x6d075220, 0x2f8e9: 0x6d075420, 0x2f8ea: 0x6d075620, 0x2f8eb: 0x6d353820, + 0x2f8ec: 0x6d61cc20, 0x2f8ed: 0x6d61ce20, 0x2f8ee: 0x6d61d020, 0x2f8ef: 0x6d61d220, + 0x2f8f0: 0x6d61d420, 0x2f8f1: 0x6d8bf620, 0x2f8f2: 0x6d8bf820, 0x2f8f3: 0x6dcfac20, + 0x2f8f4: 0x6dcfae20, 0x2f8f5: 0x6dcfb020, 0x2f8f6: 0x6de9d620, 0x2f8f7: 0x6de9d820, + 0x2f8f8: 0x6de9da20, 0x2f8f9: 0x6de9dc20, 0x2f8fa: 0x6dffa220, 0x2f8fb: 0x6e121020, + 0x2f8fc: 0x6e121220, 0x2f8fd: 0x6c144220, 0x2f8fe: 0x6c5d0c20, 0x2f8ff: 0x6c5d0e20, + // Block 0xbe4, offset 0x2f900 + 0x2f900: 0x6c815a20, 0x2f901: 0x6c815c20, 0x2f902: 0x6c815e20, 0x2f903: 0x6c816020, + 0x2f904: 0x6c816220, 0x2f905: 0x6c816420, 0x2f906: 0x6c816620, 0x2f907: 0x6caa7c20, + 0x2f908: 0x6caa7e20, 0x2f909: 0x6caa8020, 0x2f90a: 0x6caa8220, 0x2f90b: 0x6caa8420, + 0x2f90c: 0x6caa8620, 0x2f90d: 0x6caa8820, 0x2f90e: 0x6caa8a20, 0x2f90f: 0x6caa8c20, + 0x2f910: 0x6caa8e20, 0x2f911: 0x6caa9020, 0x2f912: 0x6caa9220, 0x2f913: 0x6cd8b220, + 0x2f914: 0x6cd8b420, 0x2f915: 0x6cd8b620, 0x2f916: 0x6cd8b820, 0x2f917: 0x6cd8ba20, + 0x2f918: 0x6cd8bc20, 0x2f919: 0x6cd8be20, 0x2f91a: 0x6cd8c020, 0x2f91b: 0x6d078420, + 0x2f91c: 0x6d078620, 0x2f91d: 0x6d078820, 0x2f91e: 0x6d355a20, 0x2f91f: 0x6d355c20, + 0x2f920: 0x6d355e20, 0x2f921: 0x6d356020, 0x2f922: 0x6d356220, 0x2f923: 0x6d356420, + 0x2f924: 0x6d356620, 0x2f925: 0x6d358c20, 0x2f926: 0x6d61f620, 0x2f927: 0x6d61f820, + 0x2f928: 0x6d61fa20, 0x2f929: 0x6d61fc20, 0x2f92a: 0x6d61fe20, 0x2f92b: 0x6d620020, + 0x2f92c: 0x6d620220, 0x2f92d: 0x6d620420, 0x2f92e: 0x6d8c1020, 0x2f92f: 0x6d8c1220, + 0x2f930: 0x6d8c1420, 0x2f931: 0x6d8c1620, 0x2f932: 0x6db05020, 0x2f933: 0x6db05220, + 0x2f934: 0x6db05420, 0x2f935: 0x6db05620, 0x2f936: 0x6db05820, 0x2f937: 0x6dcfde20, + 0x2f938: 0x6dcfe020, 0x2f939: 0x6dcfe220, 0x2f93a: 0x6dcfe420, 0x2f93b: 0x6dcfe620, + 0x2f93c: 0x6db05a20, 0x2f93d: 0x6de9ec20, 0x2f93e: 0x6de9ee20, 0x2f93f: 0x6dffb420, + // Block 0xbe5, offset 0x2f940 + 0x2f940: 0x6dffb620, 0x2f941: 0x6c144420, 0x2f942: 0x6c050620, 0x2f943: 0x6c144620, + 0x2f944: 0x6c819020, 0x2f945: 0x6c3e3620, 0x2f946: 0x6c819220, 0x2f947: 0x6c5d3820, + 0x2f948: 0x6caab220, 0x2f949: 0x6caab420, 0x2f94a: 0x6c81a420, 0x2f94b: 0x6cd8f820, + 0x2f94c: 0x6c144820, 0x2f94d: 0x6c5d3e20, 0x2f94e: 0x6c5d4020, 0x2f94f: 0x6c5d4220, + 0x2f950: 0x6c5d4420, 0x2f951: 0x6c5d4620, 0x2f952: 0x6c144c20, 0x2f953: 0x6c3e3e20, + 0x2f954: 0x6c5d4a20, 0x2f955: 0x6c81aa20, 0x2f956: 0x6c81ac20, 0x2f957: 0x6c81ae20, + 0x2f958: 0x6c81b020, 0x2f959: 0x6c81b220, 0x2f95a: 0x6caabc20, 0x2f95b: 0x6caabe20, + 0x2f95c: 0x6caac020, 0x2f95d: 0x6caac220, 0x2f95e: 0x6caac420, 0x2f95f: 0x6caac620, + 0x2f960: 0x6cd8fe20, 0x2f961: 0x6d07b420, 0x2f962: 0x6d07b620, 0x2f963: 0x6d359e20, + 0x2f964: 0x6d35a020, 0x2f965: 0x6d35a220, 0x2f966: 0x6d625020, 0x2f967: 0x6d625220, + 0x2f968: 0x6d8c4a20, 0x2f969: 0x6d8c4c20, 0x2f96a: 0x6d8c4e20, 0x2f96b: 0x6db08420, + 0x2f96c: 0x6db08620, 0x2f96d: 0x6dd01220, 0x2f96e: 0x6dd01420, 0x2f96f: 0x6dffc420, + 0x2f970: 0x6e122e20, 0x2f971: 0x6e205820, 0x2f972: 0x6e205a20, 0x2f973: 0x6c145020, + 0x2f974: 0x6c25e620, 0x2f975: 0x6c3e4620, 0x2f976: 0x6c5d5220, 0x2f977: 0x6c5d5420, + 0x2f978: 0x6c81ba20, 0x2f979: 0x6c81bc20, 0x2f97a: 0x6c81be20, 0x2f97b: 0x6c81c020, + 0x2f97c: 0x6c81c220, 0x2f97d: 0x6c81c420, 0x2f97e: 0x6c81c620, 0x2f97f: 0x6c81c820, + // Block 0xbe6, offset 0x2f980 + 0x2f980: 0x6c81ca20, 0x2f981: 0x6c81cc20, 0x2f982: 0x6c81ce20, 0x2f983: 0x6caad420, + 0x2f984: 0x6caad620, 0x2f985: 0x6caad820, 0x2f986: 0x6caada20, 0x2f987: 0x6caadc20, + 0x2f988: 0x6caade20, 0x2f989: 0x6caae020, 0x2f98a: 0x6caae220, 0x2f98b: 0x6caae420, + 0x2f98c: 0x6caae620, 0x2f98d: 0x6caae820, 0x2f98e: 0x6cd91020, 0x2f98f: 0x6cd91220, + 0x2f990: 0x6cd91420, 0x2f991: 0x6cd91620, 0x2f992: 0x6cd91820, 0x2f993: 0x6cd91a20, + 0x2f994: 0x6cd91c20, 0x2f995: 0x6d07c420, 0x2f996: 0x6d07c620, 0x2f997: 0x6d07c820, + 0x2f998: 0x6d07ca20, 0x2f999: 0x6d35c420, 0x2f99a: 0x6d35c620, 0x2f99b: 0x6d35c820, + 0x2f99c: 0x6d35ca20, 0x2f99d: 0x6d35cc20, 0x2f99e: 0x6d35ce20, 0x2f99f: 0x6d35d020, + 0x2f9a0: 0x6cd91e20, 0x2f9a1: 0x6d35d220, 0x2f9a2: 0x6d35d420, 0x2f9a3: 0x6d35d620, + 0x2f9a4: 0x6d626c20, 0x2f9a5: 0x6d626e20, 0x2f9a6: 0x6d627020, 0x2f9a7: 0x6d627220, + 0x2f9a8: 0x6d627420, 0x2f9a9: 0x6d627620, 0x2f9aa: 0x6d627820, 0x2f9ab: 0x6d627a20, + 0x2f9ac: 0x6d8c6820, 0x2f9ad: 0x6d8c6a20, 0x2f9ae: 0x6d8c9a20, 0x2f9af: 0x6db0a020, + 0x2f9b0: 0x6db0a220, 0x2f9b1: 0x6db0a420, 0x2f9b2: 0x6db0a620, 0x2f9b3: 0x6db0a820, + 0x2f9b4: 0x6db0cc20, 0x2f9b5: 0x6dd02c20, 0x2f9b6: 0x6dd02e20, 0x2f9b7: 0x6dd03020, + 0x2f9b8: 0x6dea0220, 0x2f9b9: 0x6dffc820, 0x2f9ba: 0x6dffca20, 0x2f9bb: 0x6dffcc20, + 0x2f9bc: 0x6dffce20, 0x2f9bd: 0x6e205e20, 0x2f9be: 0x6e206020, 0x2f9bf: 0x6c145220, + // Block 0xbe7, offset 0x2f9c0 + 0x2f9c0: 0x6c050820, 0x2f9c1: 0x6c81fa20, 0x2f9c2: 0x6c81fc20, 0x2f9c3: 0x6c3e5e20, + 0x2f9c4: 0x6d07fe20, 0x2f9c5: 0x6d080020, 0x2f9c6: 0x6d080220, 0x2f9c7: 0x6d360e20, + 0x2f9c8: 0x6d361020, 0x2f9c9: 0x6c145620, 0x2f9ca: 0x6c0a5420, 0x2f9cb: 0x6c145c20, + 0x2f9cc: 0x6c145e20, 0x2f9cd: 0x6c146020, 0x2f9ce: 0x6c146220, 0x2f9cf: 0x6c3e6020, + 0x2f9d0: 0x6c25ee20, 0x2f9d1: 0x6c25f020, 0x2f9d2: 0x6c25f220, 0x2f9d3: 0x6c25f420, + 0x2f9d4: 0x6c25f620, 0x2f9d5: 0x6c25f820, 0x2f9d6: 0x6c25fa20, 0x2f9d7: 0x6c25fc20, + 0x2f9d8: 0x6c25fe20, 0x2f9d9: 0x6c260020, 0x2f9da: 0x6c260220, 0x2f9db: 0x6c260420, + 0x2f9dc: 0x6c260620, 0x2f9dd: 0x6c260820, 0x2f9de: 0x6c260a20, 0x2f9df: 0x6c260c20, + 0x2f9e0: 0x6c260e20, 0x2f9e1: 0x6c3e7c20, 0x2f9e2: 0x6c3e7e20, 0x2f9e3: 0x6c3e8020, + 0x2f9e4: 0x6c3e8220, 0x2f9e5: 0x6c3e8420, 0x2f9e6: 0x6c3e8620, 0x2f9e7: 0x6c3e8820, + 0x2f9e8: 0x6c3e8a20, 0x2f9e9: 0x6c3e8c20, 0x2f9ea: 0x6c3e8e20, 0x2f9eb: 0x6c3e9020, + 0x2f9ec: 0x6c3e9220, 0x2f9ed: 0x6c3e9420, 0x2f9ee: 0x6c3e9620, 0x2f9ef: 0x6c3e9820, + 0x2f9f0: 0x6c3e9a20, 0x2f9f1: 0x6c3e9c20, 0x2f9f2: 0x6c3e9e20, 0x2f9f3: 0x6c3ea020, + 0x2f9f4: 0x6c3ea220, 0x2f9f5: 0x6c3ea420, 0x2f9f6: 0x6c3ea620, 0x2f9f7: 0x6c3ea820, + 0x2f9f8: 0x6c3eaa20, 0x2f9f9: 0x6c3eac20, 0x2f9fa: 0x6c3eae20, 0x2f9fb: 0x6c3eb020, + 0x2f9fc: 0x6c3eb220, 0x2f9fd: 0x6c3eb420, 0x2f9fe: 0x6c3eb620, 0x2f9ff: 0x6c3eb820, + // Block 0xbe8, offset 0x2fa00 + 0x2fa00: 0x6c3eba20, 0x2fa01: 0x6c3ebc20, 0x2fa02: 0x6c5d7220, 0x2fa03: 0x6c5d7420, + 0x2fa04: 0x6c5d7620, 0x2fa05: 0x6c5d7820, 0x2fa06: 0x6c5d7a20, 0x2fa07: 0x6c5d7c20, + 0x2fa08: 0x6c5d7e20, 0x2fa09: 0x6c5d8020, 0x2fa0a: 0x6c5d8220, 0x2fa0b: 0x6c5d8420, + 0x2fa0c: 0x6c5d8620, 0x2fa0d: 0x6c5d8820, 0x2fa0e: 0x6c5d8a20, 0x2fa0f: 0x6c5d8c20, + 0x2fa10: 0x6c5d8e20, 0x2fa11: 0x6c5d9020, 0x2fa12: 0x6c5d9220, 0x2fa13: 0x6c5d9420, + 0x2fa14: 0x6cd95220, 0x2fa15: 0x6c5d9620, 0x2fa16: 0x6c5d9820, 0x2fa17: 0x6c5d9a20, + 0x2fa18: 0x6c5d9c20, 0x2fa19: 0x6c5d9e20, 0x2fa1a: 0x6c5da020, 0x2fa1b: 0x6c5da220, + 0x2fa1c: 0x6c5da420, 0x2fa1d: 0x6c5da620, 0x2fa1e: 0x6c5da820, 0x2fa1f: 0x6c5daa20, + 0x2fa20: 0x6c5dac20, 0x2fa21: 0x6c5dae20, 0x2fa22: 0x6c5db020, 0x2fa23: 0x6c5db220, + 0x2fa24: 0x6c5db420, 0x2fa25: 0x6c5db620, 0x2fa26: 0x6c5db820, 0x2fa27: 0x6c5dba20, + 0x2fa28: 0x6c5dbc20, 0x2fa29: 0x6c5dbe20, 0x2fa2a: 0x6c5dc020, 0x2fa2b: 0x6c5dc220, + 0x2fa2c: 0x6cab1020, 0x2fa2d: 0x6c821220, 0x2fa2e: 0x6c821420, 0x2fa2f: 0x6c821620, + 0x2fa30: 0x6c821820, 0x2fa31: 0x6c821a20, 0x2fa32: 0x6c821c20, 0x2fa33: 0x6c821e20, + 0x2fa34: 0x6c822020, 0x2fa35: 0x6c822220, 0x2fa36: 0x6c822420, 0x2fa37: 0x6c822620, + 0x2fa38: 0x6c822820, 0x2fa39: 0x6c822a20, 0x2fa3a: 0x6c822c20, 0x2fa3b: 0x6c822e20, + 0x2fa3c: 0x6c823020, 0x2fa3d: 0x6c823220, 0x2fa3e: 0x6cd95420, 0x2fa3f: 0x6c823420, + // Block 0xbe9, offset 0x2fa40 + 0x2fa40: 0x6c823620, 0x2fa41: 0x6c823820, 0x2fa42: 0x6c823a20, 0x2fa43: 0x6c823c20, + 0x2fa44: 0x6c823e20, 0x2fa45: 0x6c824020, 0x2fa46: 0x6c824220, 0x2fa47: 0x6c824420, + 0x2fa48: 0x6c824620, 0x2fa49: 0x6c5dc420, 0x2fa4a: 0x6c824820, 0x2fa4b: 0x6c824a20, + 0x2fa4c: 0x6c824c20, 0x2fa4d: 0x6c824e20, 0x2fa4e: 0x6c825020, 0x2fa4f: 0x6c825220, + 0x2fa50: 0x6c825420, 0x2fa51: 0x6c825620, 0x2fa52: 0x6c825820, 0x2fa53: 0x6c825a20, + 0x2fa54: 0x6cd95620, 0x2fa55: 0x6cab2c20, 0x2fa56: 0x6cab2e20, 0x2fa57: 0x6cab3020, + 0x2fa58: 0x6cab3220, 0x2fa59: 0x6cab3420, 0x2fa5a: 0x6cab3620, 0x2fa5b: 0x6cab3820, + 0x2fa5c: 0x6cab3a20, 0x2fa5d: 0x6cab3c20, 0x2fa5e: 0x6cab3e20, 0x2fa5f: 0x6cab4020, + 0x2fa60: 0x6cd95820, 0x2fa61: 0x6cab4220, 0x2fa62: 0x6cab4420, 0x2fa63: 0x6cab4620, + 0x2fa64: 0x6cab4820, 0x2fa65: 0x6cab4a20, 0x2fa66: 0x6cab4c20, 0x2fa67: 0x6cab4e20, + 0x2fa68: 0x6cab5020, 0x2fa69: 0x6cab5220, 0x2fa6a: 0x6cab5420, 0x2fa6b: 0x6cab5620, + 0x2fa6c: 0x6cab5820, 0x2fa6d: 0x6cab5a20, 0x2fa6e: 0x6cab5c20, 0x2fa6f: 0x6cab5e20, + 0x2fa70: 0x6cab6020, 0x2fa71: 0x6cab6220, 0x2fa72: 0x6cab6420, 0x2fa73: 0x6cab6620, + 0x2fa74: 0x6cab6820, 0x2fa75: 0x6cab6a20, 0x2fa76: 0x6cab6c20, 0x2fa77: 0x6cab6e20, + 0x2fa78: 0x6cab7020, 0x2fa79: 0x6cd97e20, 0x2fa7a: 0x6cd98020, 0x2fa7b: 0x6cd98220, + 0x2fa7c: 0x6cd98420, 0x2fa7d: 0x6cd98620, 0x2fa7e: 0x6cd98820, 0x2fa7f: 0x6cd98a20, + // Block 0xbea, offset 0x2fa80 + 0x2fa80: 0x6cd98c20, 0x2fa81: 0x6cd98e20, 0x2fa82: 0x6cd99020, 0x2fa83: 0x6cd99220, + 0x2fa84: 0x6cd99420, 0x2fa85: 0x6cd99620, 0x2fa86: 0x6cd99820, 0x2fa87: 0x6cd99a20, + 0x2fa88: 0x6cd99c20, 0x2fa89: 0x6cd99e20, 0x2fa8a: 0x6cd9a020, 0x2fa8b: 0x6cd9a220, + 0x2fa8c: 0x6cd9a420, 0x2fa8d: 0x6cd9a620, 0x2fa8e: 0x6cd9a820, 0x2fa8f: 0x6cd9aa20, + 0x2fa90: 0x6d361a20, 0x2fa91: 0x6cd9ac20, 0x2fa92: 0x6cd9ae20, 0x2fa93: 0x6cd9b020, + 0x2fa94: 0x6cd9b220, 0x2fa95: 0x6cd9b420, 0x2fa96: 0x6cd9b620, 0x2fa97: 0x6cd9b820, + 0x2fa98: 0x6cd9ba20, 0x2fa99: 0x6cd9bc20, 0x2fa9a: 0x6cd9be20, 0x2fa9b: 0x6d082a20, + 0x2fa9c: 0x6d082c20, 0x2fa9d: 0x6d082e20, 0x2fa9e: 0x6d083020, 0x2fa9f: 0x6d083220, + 0x2faa0: 0x6d083420, 0x2faa1: 0x6d083620, 0x2faa2: 0x6d083820, 0x2faa3: 0x6d083a20, + 0x2faa4: 0x6d083c20, 0x2faa5: 0x6d083e20, 0x2faa6: 0x6d084020, 0x2faa7: 0x6d084220, + 0x2faa8: 0x6d084420, 0x2faa9: 0x6d084620, 0x2faaa: 0x6d084820, 0x2faab: 0x6d084a20, + 0x2faac: 0x6d084c20, 0x2faad: 0x6d084e20, 0x2faae: 0x6d085020, 0x2faaf: 0x6d085220, + 0x2fab0: 0x6d085420, 0x2fab1: 0x6d085620, 0x2fab2: 0x6d085820, 0x2fab3: 0x6d085a20, + 0x2fab4: 0x6cda6e20, 0x2fab5: 0x6d085c20, 0x2fab6: 0x6d085e20, 0x2fab7: 0x6d086020, + 0x2fab8: 0x6d086220, 0x2fab9: 0x6d086420, 0x2faba: 0x6d086620, 0x2fabb: 0x6d086820, + 0x2fabc: 0x6d086a20, 0x2fabd: 0x6d086c20, 0x2fabe: 0x6d086e20, 0x2fabf: 0x6d363820, + // Block 0xbeb, offset 0x2fac0 + 0x2fac0: 0x6d363a20, 0x2fac1: 0x6d363c20, 0x2fac2: 0x6d363e20, 0x2fac3: 0x6d364020, + 0x2fac4: 0x6d364220, 0x2fac5: 0x6d364420, 0x2fac6: 0x6d364620, 0x2fac7: 0x6d364820, + 0x2fac8: 0x6d364a20, 0x2fac9: 0x6d364c20, 0x2faca: 0x6d364e20, 0x2facb: 0x6d365020, + 0x2facc: 0x6d365220, 0x2facd: 0x6d365420, 0x2face: 0x6d365620, 0x2facf: 0x6d365820, + 0x2fad0: 0x6d8ca020, 0x2fad1: 0x6d365a20, 0x2fad2: 0x6d62d020, 0x2fad3: 0x6d62d220, + 0x2fad4: 0x6d62d420, 0x2fad5: 0x6d62d620, 0x2fad6: 0x6d62d820, 0x2fad7: 0x6d62da20, + 0x2fad8: 0x6d62dc20, 0x2fad9: 0x6d62de20, 0x2fada: 0x6d62e020, 0x2fadb: 0x6d62e220, + 0x2fadc: 0x6d62e420, 0x2fadd: 0x6d62e620, 0x2fade: 0x6d62e820, 0x2fadf: 0x6d62ea20, + 0x2fae0: 0x6d62ec20, 0x2fae1: 0x6d62ee20, 0x2fae2: 0x6d62f020, 0x2fae3: 0x6d62f220, + 0x2fae4: 0x6d538620, 0x2fae5: 0x6db0d420, 0x2fae6: 0x6d8cb420, 0x2fae7: 0x6d8cb620, + 0x2fae8: 0x6d8cb820, 0x2fae9: 0x6d8cba20, 0x2faea: 0x6d8cbc20, 0x2faeb: 0x6d8cbe20, + 0x2faec: 0x6d8cc020, 0x2faed: 0x6d8cc220, 0x2faee: 0x6d8cc420, 0x2faef: 0x6d8cc620, + 0x2faf0: 0x6d8cc820, 0x2faf1: 0x6d8cca20, 0x2faf2: 0x6d8ccc20, 0x2faf3: 0x6d8cce20, + 0x2faf4: 0x6d8cd020, 0x2faf5: 0x6d8cd220, 0x2faf6: 0x6d8cd420, 0x2faf7: 0x6d8d5820, + 0x2faf8: 0x6db0de20, 0x2faf9: 0x6d8d5a20, 0x2fafa: 0x6db0e020, 0x2fafb: 0x6db0e220, + 0x2fafc: 0x6db0e420, 0x2fafd: 0x6db0e620, 0x2fafe: 0x6db0e820, 0x2faff: 0x6db0ea20, + // Block 0xbec, offset 0x2fb00 + 0x2fb00: 0x6db0ec20, 0x2fb01: 0x6db0ee20, 0x2fb02: 0x6db0f020, 0x2fb03: 0x6db0f220, + 0x2fb04: 0x6db0f420, 0x2fb05: 0x6db0f620, 0x2fb06: 0x6db0f820, 0x2fb07: 0x6db0fa20, + 0x2fb08: 0x6db0fc20, 0x2fb09: 0x6db0fe20, 0x2fb0a: 0x6db10020, 0x2fb0b: 0x6dea1e20, + 0x2fb0c: 0x6db10220, 0x2fb0d: 0x6dd06620, 0x2fb0e: 0x6dd06820, 0x2fb0f: 0x6dd06a20, + 0x2fb10: 0x6dd06c20, 0x2fb11: 0x6dd06e20, 0x2fb12: 0x6dd07020, 0x2fb13: 0x6dd07220, + 0x2fb14: 0x6dea2620, 0x2fb15: 0x6dea2820, 0x2fb16: 0x6dffe420, 0x2fb17: 0x6dea2a20, + 0x2fb18: 0x6dea2c20, 0x2fb19: 0x6dffe620, 0x2fb1a: 0x6dffe820, 0x2fb1b: 0x6dffea20, + 0x2fb1c: 0x6dffec20, 0x2fb1d: 0x6e124820, 0x2fb1e: 0x6e206a20, 0x2fb1f: 0x6e206c20, + 0x2fb20: 0x6e39ae20, 0x2fb21: 0x6e39b020, 0x2fb22: 0x6e2b4820, 0x2fb23: 0x6c147a20, + 0x2fb24: 0x6c3f1a20, 0x2fb25: 0x6c3f1c20, 0x2fb26: 0x6cda7020, 0x2fb27: 0x6d36e420, + 0x2fb28: 0x6db16420, 0x2fb29: 0x6db16620, 0x2fb2a: 0x6c147e20, 0x2fb2b: 0x6c262820, + 0x2fb2c: 0x6c82dc20, 0x2fb2d: 0x6c82de20, 0x2fb2e: 0x6cda7c20, 0x2fb2f: 0x6cda7e20, + 0x2fb30: 0x6cda8020, 0x2fb31: 0x6d635a20, 0x2fb32: 0x6d8d5e20, 0x2fb33: 0x6c148220, + 0x2fb34: 0x6c5e4220, 0x2fb35: 0x6cda8c20, 0x2fb36: 0x6cda8e20, 0x2fb37: 0x6cda9020, + 0x2fb38: 0x6cda9220, 0x2fb39: 0x6cda9820, 0x2fb3a: 0x6d36f420, 0x2fb3b: 0x6d8d6620, + 0x2fb3c: 0x6c148820, 0x2fb3d: 0x6c3f2220, 0x2fb3e: 0x6c3f2420, 0x2fb3f: 0x6c5e4a20, + // Block 0xbed, offset 0x2fb40 + 0x2fb40: 0x6c82fc20, 0x2fb41: 0x6c82fe20, 0x2fb42: 0x6cabf420, 0x2fb43: 0x6cda9a20, + 0x2fb44: 0x6cda9c20, 0x2fb45: 0x6d090220, 0x2fb46: 0x6d8d7620, 0x2fb47: 0x6d370220, + 0x2fb48: 0x6d8d7220, 0x2fb49: 0x6d8d7820, 0x2fb4a: 0x6dd0c020, 0x2fb4b: 0x6dea7220, + 0x2fb4c: 0x6c149020, 0x2fb4d: 0x6c3f2c20, 0x2fb4e: 0x6c3f2e20, 0x2fb4f: 0x6c3f3020, + 0x2fb50: 0x6c831420, 0x2fb51: 0x6cac0620, 0x2fb52: 0x6cdaac20, 0x2fb53: 0x6d371820, + 0x2fb54: 0x6d371a20, 0x2fb55: 0x6d371c20, 0x2fb56: 0x6d638820, 0x2fb57: 0x6d638a20, + 0x2fb58: 0x6d8d8a20, 0x2fb59: 0x6dd0d220, 0x2fb5a: 0x6dea8020, 0x2fb5b: 0x6c149220, + 0x2fb5c: 0x6cdabe20, 0x2fb5d: 0x6d091c20, 0x2fb5e: 0x6d373020, 0x2fb5f: 0x6c149420, + 0x2fb60: 0x6c3f3620, 0x2fb61: 0x6c5e6020, 0x2fb62: 0x6c5e6220, 0x2fb63: 0x6c5e6420, + 0x2fb64: 0x6c5e6620, 0x2fb65: 0x6c832c20, 0x2fb66: 0x6c832e20, 0x2fb67: 0x6c833020, + 0x2fb68: 0x6c833220, 0x2fb69: 0x6c833420, 0x2fb6a: 0x6c833620, 0x2fb6b: 0x6c833820, + 0x2fb6c: 0x6c833a20, 0x2fb6d: 0x6c833c20, 0x2fb6e: 0x6c833e20, 0x2fb6f: 0x6c834020, + 0x2fb70: 0x6c834220, 0x2fb71: 0x6c834420, 0x2fb72: 0x6cac1820, 0x2fb73: 0x6cac1a20, + 0x2fb74: 0x6cac1c20, 0x2fb75: 0x6cac1e20, 0x2fb76: 0x6cac2020, 0x2fb77: 0x6cac2220, + 0x2fb78: 0x6cac2420, 0x2fb79: 0x6cac2620, 0x2fb7a: 0x6cac2820, 0x2fb7b: 0x6cac2a20, + 0x2fb7c: 0x6cdaca20, 0x2fb7d: 0x6cdacc20, 0x2fb7e: 0x6cdace20, 0x2fb7f: 0x6cdad020, + // Block 0xbee, offset 0x2fb80 + 0x2fb80: 0x6d092220, 0x2fb81: 0x6d092420, 0x2fb82: 0x6d092620, 0x2fb83: 0x6d092820, + 0x2fb84: 0x6d092a20, 0x2fb85: 0x6d092c20, 0x2fb86: 0x6d092e20, 0x2fb87: 0x6d093020, + 0x2fb88: 0x6d093220, 0x2fb89: 0x6d093420, 0x2fb8a: 0x6d374220, 0x2fb8b: 0x6d374420, + 0x2fb8c: 0x6d374620, 0x2fb8d: 0x6d374820, 0x2fb8e: 0x6d63a220, 0x2fb8f: 0x6d63a420, + 0x2fb90: 0x6d63a620, 0x2fb91: 0x6d63a820, 0x2fb92: 0x6d63aa20, 0x2fb93: 0x6d63ac20, + 0x2fb94: 0x6d63ae20, 0x2fb95: 0x6d8d9e20, 0x2fb96: 0x6d8da020, 0x2fb97: 0x6d8da220, + 0x2fb98: 0x6d8da420, 0x2fb99: 0x6d8da620, 0x2fb9a: 0x6db19c20, 0x2fb9b: 0x6db19e20, + 0x2fb9c: 0x6db1a020, 0x2fb9d: 0x6db1a220, 0x2fb9e: 0x6dd0e220, 0x2fb9f: 0x6dd0e420, + 0x2fba0: 0x6dd0e620, 0x2fba1: 0x6dea8620, 0x2fba2: 0x6dea8820, 0x2fba3: 0x6dea8a20, + 0x2fba4: 0x6dea8c20, 0x2fba5: 0x6dea8e20, 0x2fba6: 0x6e003620, 0x2fba7: 0x6e003820, + 0x2fba8: 0x6e003a20, 0x2fba9: 0x6e003c20, 0x2fbaa: 0x6e126c20, 0x2fbab: 0x6e208820, + 0x2fbac: 0x6e2b6e20, 0x2fbad: 0x6e33e220, 0x2fbae: 0x6c149820, 0x2fbaf: 0x6c263620, + 0x2fbb0: 0x6c3f4420, 0x2fbb1: 0x6db1bc20, 0x2fbb2: 0x6c149a20, 0x2fbb3: 0x6c835e20, + 0x2fbb4: 0x6cac4e20, 0x2fbb5: 0x6cdaf020, 0x2fbb6: 0x6deaa220, 0x2fbb7: 0x6e33e420, + 0x2fbb8: 0x6c149e20, 0x2fbb9: 0x6c020420, 0x2fbba: 0x6c0a5620, 0x2fbbb: 0x6c14a020, + 0x2fbbc: 0x6c14a220, 0x2fbbd: 0x6c14a420, 0x2fbbe: 0x6c14a620, 0x2fbbf: 0x6c14a820, + // Block 0xbef, offset 0x2fbc0 + 0x2fbc0: 0x6c14aa20, 0x2fbc1: 0x6c14ac20, 0x2fbc2: 0x6c14ae20, 0x2fbc3: 0x6c263820, + 0x2fbc4: 0x6c263a20, 0x2fbc5: 0x6c263c20, 0x2fbc6: 0x6c263e20, 0x2fbc7: 0x6c264020, + 0x2fbc8: 0x6c264220, 0x2fbc9: 0x6c264420, 0x2fbca: 0x6c264620, 0x2fbcb: 0x6c264820, + 0x2fbcc: 0x6c264a20, 0x2fbcd: 0x6c264c20, 0x2fbce: 0x6c264e20, 0x2fbcf: 0x6c265020, + 0x2fbd0: 0x6c265220, 0x2fbd1: 0x6c265420, 0x2fbd2: 0x6c265620, 0x2fbd3: 0x6c265820, + 0x2fbd4: 0x6c5e8820, 0x2fbd5: 0x6c265a20, 0x2fbd6: 0x6c265c20, 0x2fbd7: 0x6c265e20, + 0x2fbd8: 0x6c3f4c20, 0x2fbd9: 0x6c3f4e20, 0x2fbda: 0x6c3f5020, 0x2fbdb: 0x6c3f5220, + 0x2fbdc: 0x6c3f5420, 0x2fbdd: 0x6c3f5620, 0x2fbde: 0x6c3f5820, 0x2fbdf: 0x6c3f5a20, + 0x2fbe0: 0x6c3f5c20, 0x2fbe1: 0x6c3f5e20, 0x2fbe2: 0x6c3f6020, 0x2fbe3: 0x6c3f6220, + 0x2fbe4: 0x6c3f6420, 0x2fbe5: 0x6c3f6620, 0x2fbe6: 0x6c3f6820, 0x2fbe7: 0x6c3f6a20, + 0x2fbe8: 0x6c3f6c20, 0x2fbe9: 0x6c3f6e20, 0x2fbea: 0x6c3f7020, 0x2fbeb: 0x6c3f7220, + 0x2fbec: 0x6c3f7420, 0x2fbed: 0x6c3f7620, 0x2fbee: 0x6c3f7820, 0x2fbef: 0x6c3f7a20, + 0x2fbf0: 0x6c3f7c20, 0x2fbf1: 0x6c3f7e20, 0x2fbf2: 0x6c3f8020, 0x2fbf3: 0x6c3f8220, + 0x2fbf4: 0x6c3f8420, 0x2fbf5: 0x6c3f8620, 0x2fbf6: 0x6c3f8820, 0x2fbf7: 0x6c3f8a20, + 0x2fbf8: 0x6c3f8c20, 0x2fbf9: 0x6c3f8e20, 0x2fbfa: 0x6c3f9020, 0x2fbfb: 0x6c837820, + 0x2fbfc: 0x6c3f9220, 0x2fbfd: 0x6c3f9420, 0x2fbfe: 0x6c3f9620, 0x2fbff: 0x6c400c20, + // Block 0xbf0, offset 0x2fc00 + 0x2fc00: 0x6c3f9820, 0x2fc01: 0x6c3f9a20, 0x2fc02: 0x6c3f9c20, 0x2fc03: 0x6c3f9e20, + 0x2fc04: 0x6c3fa020, 0x2fc05: 0x6c3fa220, 0x2fc06: 0x6c3fa420, 0x2fc07: 0x6c3fa620, + 0x2fc08: 0x6c3fa820, 0x2fc09: 0x6c3faa20, 0x2fc0a: 0x6c3fac20, 0x2fc0b: 0x6c3fae20, + 0x2fc0c: 0x6c3fb020, 0x2fc0d: 0x6c3fb220, 0x2fc0e: 0x6c3fb420, 0x2fc0f: 0x6c3fb620, + 0x2fc10: 0x6c5e8a20, 0x2fc11: 0x6c5e8c20, 0x2fc12: 0x6c5e8e20, 0x2fc13: 0x6c5e9020, + 0x2fc14: 0x6c5e9220, 0x2fc15: 0x6c5e9420, 0x2fc16: 0x6c5e9620, 0x2fc17: 0x6c5e9820, + 0x2fc18: 0x6c5e9a20, 0x2fc19: 0x6c5e9c20, 0x2fc1a: 0x6c5e9e20, 0x2fc1b: 0x6c5ea020, + 0x2fc1c: 0x6c5ea220, 0x2fc1d: 0x6c5ea420, 0x2fc1e: 0x6c5ea620, 0x2fc1f: 0x6c5ea820, + 0x2fc20: 0x6c5eaa20, 0x2fc21: 0x6c5eac20, 0x2fc22: 0x6c5eae20, 0x2fc23: 0x6c5eb020, + 0x2fc24: 0x6c5eb220, 0x2fc25: 0x6c5eb420, 0x2fc26: 0x6c5eb620, 0x2fc27: 0x6c5eb820, + 0x2fc28: 0x6c5eba20, 0x2fc29: 0x6c5ebc20, 0x2fc2a: 0x6c5ebe20, 0x2fc2b: 0x6c5ec020, + 0x2fc2c: 0x6c5ec220, 0x2fc2d: 0x6c5ec420, 0x2fc2e: 0x6c5ec620, 0x2fc2f: 0x6c5ec820, + 0x2fc30: 0x6c5eca20, 0x2fc31: 0x6c5ecc20, 0x2fc32: 0x6c5ece20, 0x2fc33: 0x6c5ed020, + 0x2fc34: 0x6c5ed220, 0x2fc35: 0x6c5ed420, 0x2fc36: 0x6c5ed620, 0x2fc37: 0x6c5ed820, + 0x2fc38: 0x6c5eda20, 0x2fc39: 0x6c5edc20, 0x2fc3a: 0x6c5ede20, 0x2fc3b: 0x6c5ee020, + 0x2fc3c: 0x6c5ee220, 0x2fc3d: 0x6c5ee420, 0x2fc3e: 0x6c5ee620, 0x2fc3f: 0x6c5ee820, + // Block 0xbf1, offset 0x2fc40 + 0x2fc40: 0x6c5eea20, 0x2fc41: 0x6c5eec20, 0x2fc42: 0x6c5eee20, 0x2fc43: 0x6c5ef020, + 0x2fc44: 0x6c5ef220, 0x2fc45: 0x6c5ef420, 0x2fc46: 0x6c5ef620, 0x2fc47: 0x6c5ef820, + 0x2fc48: 0x6c837a20, 0x2fc49: 0x6c5efa20, 0x2fc4a: 0x6c5efc20, 0x2fc4b: 0x6c5efe20, + 0x2fc4c: 0x6c5f0020, 0x2fc4d: 0x6c5f0220, 0x2fc4e: 0x6c5f0420, 0x2fc4f: 0x6c5f0620, + 0x2fc50: 0x6c5f0820, 0x2fc51: 0x6c5f0a20, 0x2fc52: 0x6cdb1620, 0x2fc53: 0x6c5f0c20, + 0x2fc54: 0x6c5f0e20, 0x2fc55: 0x6c5f1020, 0x2fc56: 0x6c837c20, 0x2fc57: 0x6c837e20, + 0x2fc58: 0x6c838020, 0x2fc59: 0x6c838220, 0x2fc5a: 0x6c838420, 0x2fc5b: 0x6c838620, + 0x2fc5c: 0x6c838820, 0x2fc5d: 0x6cac7420, 0x2fc5e: 0x6c838a20, 0x2fc5f: 0x6c838c20, + 0x2fc60: 0x6c838e20, 0x2fc61: 0x6c839020, 0x2fc62: 0x6c839220, 0x2fc63: 0x6cac7620, + 0x2fc64: 0x6c839420, 0x2fc65: 0x6c839620, 0x2fc66: 0x6c839820, 0x2fc67: 0x6c839a20, + 0x2fc68: 0x6c839c20, 0x2fc69: 0x6c839e20, 0x2fc6a: 0x6c83a020, 0x2fc6b: 0x6c83a220, + 0x2fc6c: 0x6c83a420, 0x2fc6d: 0x6c83a620, 0x2fc6e: 0x6c83a820, 0x2fc6f: 0x6c83aa20, + 0x2fc70: 0x6c83ac20, 0x2fc71: 0x6c83ae20, 0x2fc72: 0x6c83b020, 0x2fc73: 0x6c83b220, + 0x2fc74: 0x6c83b420, 0x2fc75: 0x6c83b620, 0x2fc76: 0x6c83b820, 0x2fc77: 0x6c83ba20, + 0x2fc78: 0x6c83bc20, 0x2fc79: 0x6c83be20, 0x2fc7a: 0x6c5f9220, 0x2fc7b: 0x6cdb1820, + 0x2fc7c: 0x6c83c020, 0x2fc7d: 0x6c83c220, 0x2fc7e: 0x6c3fb820, 0x2fc7f: 0x6c83c420, + // Block 0xbf2, offset 0x2fc80 + 0x2fc80: 0x6c83c620, 0x2fc81: 0x6c83c820, 0x2fc82: 0x6c83ca20, 0x2fc83: 0x6c83cc20, + 0x2fc84: 0x6c83ce20, 0x2fc85: 0x6c83d020, 0x2fc86: 0x6cdb1a20, 0x2fc87: 0x6c83d220, + 0x2fc88: 0x6c83d420, 0x2fc89: 0x6c83d620, 0x2fc8a: 0x6c83d820, 0x2fc8b: 0x6c83da20, + 0x2fc8c: 0x6c83dc20, 0x2fc8d: 0x6c83de20, 0x2fc8e: 0x6c83e020, 0x2fc8f: 0x6c83e220, + 0x2fc90: 0x6c83e420, 0x2fc91: 0x6c83e620, 0x2fc92: 0x6c83e820, 0x2fc93: 0x6c84c420, + 0x2fc94: 0x6c83ea20, 0x2fc95: 0x6c83ec20, 0x2fc96: 0x6c83ee20, 0x2fc97: 0x6c83f020, + 0x2fc98: 0x6c83f220, 0x2fc99: 0x6cac7020, 0x2fc9a: 0x6c83f420, 0x2fc9b: 0x6c83f620, + 0x2fc9c: 0x6c83f820, 0x2fc9d: 0x6c83fa20, 0x2fc9e: 0x6c83fc20, 0x2fc9f: 0x6c83fe20, + 0x2fca0: 0x6c840020, 0x2fca1: 0x6c840220, 0x2fca2: 0x6c840420, 0x2fca3: 0x6c840620, + 0x2fca4: 0x6c840820, 0x2fca5: 0x6c840a20, 0x2fca6: 0x6c840c20, 0x2fca7: 0x6c840e20, + 0x2fca8: 0x6c841020, 0x2fca9: 0x6c841220, 0x2fcaa: 0x6c841420, 0x2fcab: 0x6cac7220, + 0x2fcac: 0x6c841620, 0x2fcad: 0x6c841820, 0x2fcae: 0x6c841a20, 0x2fcaf: 0x6c841c20, + 0x2fcb0: 0x6cac7820, 0x2fcb1: 0x6cac7a20, 0x2fcb2: 0x6cac7c20, 0x2fcb3: 0x6cac7e20, + 0x2fcb4: 0x6cac8020, 0x2fcb5: 0x6cac8220, 0x2fcb6: 0x6cac8420, 0x2fcb7: 0x6cac8620, + 0x2fcb8: 0x6cac8820, 0x2fcb9: 0x6cac8a20, 0x2fcba: 0x6cac8c20, 0x2fcbb: 0x6cac8e20, + 0x2fcbc: 0x6cac9020, 0x2fcbd: 0x6cac9220, 0x2fcbe: 0x6cac9420, 0x2fcbf: 0x6cac9620, + // Block 0xbf3, offset 0x2fcc0 + 0x2fcc0: 0x6cac9820, 0x2fcc1: 0x6cac9a20, 0x2fcc2: 0x6cac9c20, 0x2fcc3: 0x6cac9e20, + 0x2fcc4: 0x6caca020, 0x2fcc5: 0x6caca220, 0x2fcc6: 0x6caca420, 0x2fcc7: 0x6caca620, + 0x2fcc8: 0x6caca820, 0x2fcc9: 0x6cacaa20, 0x2fcca: 0x6cacac20, 0x2fccb: 0x6cacae20, + 0x2fccc: 0x6cacb020, 0x2fccd: 0x6cacb220, 0x2fcce: 0x6cacb420, 0x2fccf: 0x6cacb620, + 0x2fcd0: 0x6cacb820, 0x2fcd1: 0x6cacba20, 0x2fcd2: 0x6cacbc20, 0x2fcd3: 0x6cacbe20, + 0x2fcd4: 0x6cacc020, 0x2fcd5: 0x6cacc220, 0x2fcd6: 0x6cacc420, 0x2fcd7: 0x6cacc620, + 0x2fcd8: 0x6cacc820, 0x2fcd9: 0x6cacca20, 0x2fcda: 0x6cdb1c20, 0x2fcdb: 0x6caccc20, + 0x2fcdc: 0x6cacce20, 0x2fcdd: 0x6cacd020, 0x2fcde: 0x6cacd220, 0x2fcdf: 0x6cacd420, + 0x2fce0: 0x6cacd620, 0x2fce1: 0x6cacd820, 0x2fce2: 0x6cacda20, 0x2fce3: 0x6cacdc20, + 0x2fce4: 0x6cacde20, 0x2fce5: 0x6cace020, 0x2fce6: 0x6cace220, 0x2fce7: 0x6cace420, + 0x2fce8: 0x6cace620, 0x2fce9: 0x6cace820, 0x2fcea: 0x6cacea20, 0x2fceb: 0x6cacec20, + 0x2fcec: 0x6cacee20, 0x2fced: 0x6cae1e20, 0x2fcee: 0x6cacf020, 0x2fcef: 0x6cacf220, + 0x2fcf0: 0x6cacf420, 0x2fcf1: 0x6cacf620, 0x2fcf2: 0x6cacf820, 0x2fcf3: 0x6cacfa20, + 0x2fcf4: 0x6cacfc20, 0x2fcf5: 0x6cacfe20, 0x2fcf6: 0x6cad0020, 0x2fcf7: 0x6cad0220, + 0x2fcf8: 0x6cad0420, 0x2fcf9: 0x6cad0620, 0x2fcfa: 0x6cad0820, 0x2fcfb: 0x6d098220, + 0x2fcfc: 0x6cad0a20, 0x2fcfd: 0x6cad0c20, 0x2fcfe: 0x6cdb1e20, 0x2fcff: 0x6cdb2020, + // Block 0xbf4, offset 0x2fd00 + 0x2fd00: 0x6cdb2220, 0x2fd01: 0x6cdb2420, 0x2fd02: 0x6cdb2620, 0x2fd03: 0x6cdb2820, + 0x2fd04: 0x6cdb2a20, 0x2fd05: 0x6cdb2c20, 0x2fd06: 0x6cdb2e20, 0x2fd07: 0x6cdb3020, + 0x2fd08: 0x6cdb3220, 0x2fd09: 0x6cdb3420, 0x2fd0a: 0x6cdb3620, 0x2fd0b: 0x6cdb3820, + 0x2fd0c: 0x6cdb3a20, 0x2fd0d: 0x6cdb3c20, 0x2fd0e: 0x6cdb3e20, 0x2fd0f: 0x6cdb4020, + 0x2fd10: 0x6cdb4220, 0x2fd11: 0x6cdb4420, 0x2fd12: 0x6cdb4620, 0x2fd13: 0x6cdb4820, + 0x2fd14: 0x6cdb4a20, 0x2fd15: 0x6cdb4c20, 0x2fd16: 0x6cdb4e20, 0x2fd17: 0x6cdb5020, + 0x2fd18: 0x6cdb5220, 0x2fd19: 0x6d098420, 0x2fd1a: 0x6cdb5420, 0x2fd1b: 0x6cdb5620, + 0x2fd1c: 0x6cdb5820, 0x2fd1d: 0x6cdb5a20, 0x2fd1e: 0x6cdb5c20, 0x2fd1f: 0x6cdb5e20, + 0x2fd20: 0x6cdb6020, 0x2fd21: 0x6cdb6220, 0x2fd22: 0x6cdb6420, 0x2fd23: 0x6cdb6620, + 0x2fd24: 0x6cdb6820, 0x2fd25: 0x6cdb6a20, 0x2fd26: 0x6cdb6c20, 0x2fd27: 0x6cdb6e20, + 0x2fd28: 0x6cdb7020, 0x2fd29: 0x6cdb7220, 0x2fd2a: 0x6cdb7420, 0x2fd2b: 0x6cdb7620, + 0x2fd2c: 0x6cdb7820, 0x2fd2d: 0x6cdb7a20, 0x2fd2e: 0x6cdb7c20, 0x2fd2f: 0x6cdb7e20, + 0x2fd30: 0x6cdb8020, 0x2fd31: 0x6cdb8220, 0x2fd32: 0x6cdb8420, 0x2fd33: 0x6cdb8620, + 0x2fd34: 0x6cdb8820, 0x2fd35: 0x6cdb8a20, 0x2fd36: 0x6cdb8c20, 0x2fd37: 0x6cdb8e20, + 0x2fd38: 0x6cdb9020, 0x2fd39: 0x6cdb9220, 0x2fd3a: 0x6cdb9420, 0x2fd3b: 0x6cdb9620, + 0x2fd3c: 0x6cdb9820, 0x2fd3d: 0x6cdb9a20, 0x2fd3e: 0x6cdb9c20, 0x2fd3f: 0x6cdb9e20, + // Block 0xbf5, offset 0x2fd40 + 0x2fd40: 0x6cdba020, 0x2fd41: 0x6cdba220, 0x2fd42: 0x6cdba420, 0x2fd43: 0x6cdba620, + 0x2fd44: 0x6cdba820, 0x2fd45: 0x6cdbaa20, 0x2fd46: 0x6cdbac20, 0x2fd47: 0x6cdbae20, + 0x2fd48: 0x6cdbb020, 0x2fd49: 0x6cdbb220, 0x2fd4a: 0x6cdbb420, 0x2fd4b: 0x6cdbb620, + 0x2fd4c: 0x6cdbb820, 0x2fd4d: 0x6cdbba20, 0x2fd4e: 0x6cdbbc20, 0x2fd4f: 0x6cdbbe20, + 0x2fd50: 0x6cdbc020, 0x2fd51: 0x6cdbc220, 0x2fd52: 0x6cdbc420, 0x2fd53: 0x6cdbc620, + 0x2fd54: 0x6cdbc820, 0x2fd55: 0x6cdbca20, 0x2fd56: 0x6cdbcc20, 0x2fd57: 0x6cdbce20, + 0x2fd58: 0x6cdbd020, 0x2fd59: 0x6cdbd220, 0x2fd5a: 0x6cdbd420, 0x2fd5b: 0x6cdbd620, + 0x2fd5c: 0x6cdbd820, 0x2fd5d: 0x6cdbda20, 0x2fd5e: 0x6cdbdc20, 0x2fd5f: 0x6cdbde20, + 0x2fd60: 0x6cdbe020, 0x2fd61: 0x6cdbe220, 0x2fd62: 0x6cdbe420, 0x2fd63: 0x6cdbe620, + 0x2fd64: 0x6cdbe820, 0x2fd65: 0x6d098620, 0x2fd66: 0x6cdbea20, 0x2fd67: 0x6cdbec20, + 0x2fd68: 0x6d098820, 0x2fd69: 0x6d098a20, 0x2fd6a: 0x6d098c20, 0x2fd6b: 0x6d098e20, + 0x2fd6c: 0x6d037820, 0x2fd6d: 0x6d099020, 0x2fd6e: 0x6d099220, 0x2fd6f: 0x6d099420, + 0x2fd70: 0x6d099620, 0x2fd71: 0x6d099820, 0x2fd72: 0x6d099a20, 0x2fd73: 0x6d099c20, + 0x2fd74: 0x6d099e20, 0x2fd75: 0x6d09a020, 0x2fd76: 0x6d09a220, 0x2fd77: 0x6d09a420, + 0x2fd78: 0x6cdd4420, 0x2fd79: 0x6d09a620, 0x2fd7a: 0x6d09a820, 0x2fd7b: 0x6d09aa20, + 0x2fd7c: 0x6d09ac20, 0x2fd7d: 0x6d09ae20, 0x2fd7e: 0x6d09b020, 0x2fd7f: 0x6d09b220, + // Block 0xbf6, offset 0x2fd80 + 0x2fd80: 0x6d09b420, 0x2fd81: 0x6d09b620, 0x2fd82: 0x6d09b820, 0x2fd83: 0x6d09ba20, + 0x2fd84: 0x6d09bc20, 0x2fd85: 0x6d09be20, 0x2fd86: 0x6d09c020, 0x2fd87: 0x6d09c220, + 0x2fd88: 0x6d09c420, 0x2fd89: 0x6d09c620, 0x2fd8a: 0x6d09c820, 0x2fd8b: 0x6d09ca20, + 0x2fd8c: 0x6d09cc20, 0x2fd8d: 0x6d09ce20, 0x2fd8e: 0x6d09d020, 0x2fd8f: 0x6d09d220, + 0x2fd90: 0x6d09d420, 0x2fd91: 0x6d09d620, 0x2fd92: 0x6d09d820, 0x2fd93: 0x6d09da20, + 0x2fd94: 0x6d09dc20, 0x2fd95: 0x6d09de20, 0x2fd96: 0x6d09e020, 0x2fd97: 0x6cdbee20, + 0x2fd98: 0x6d09e220, 0x2fd99: 0x6d09e420, 0x2fd9a: 0x6d09e620, 0x2fd9b: 0x6d09e820, + 0x2fd9c: 0x6d09ea20, 0x2fd9d: 0x6d09ec20, 0x2fd9e: 0x6d09ee20, 0x2fd9f: 0x6d09f020, + 0x2fda0: 0x6d09f220, 0x2fda1: 0x6d09f420, 0x2fda2: 0x6d09f620, 0x2fda3: 0x6d09f820, + 0x2fda4: 0x6d09fa20, 0x2fda5: 0x6d09fc20, 0x2fda6: 0x6d09fe20, 0x2fda7: 0x6d0a0020, + 0x2fda8: 0x6d0a0220, 0x2fda9: 0x6d0a0420, 0x2fdaa: 0x6d0a0620, 0x2fdab: 0x6d0a0820, + 0x2fdac: 0x6d0a0a20, 0x2fdad: 0x6d0a0c20, 0x2fdae: 0x6d0a0e20, 0x2fdaf: 0x6d0a1020, + 0x2fdb0: 0x6d0a1220, 0x2fdb1: 0x6d0a1420, 0x2fdb2: 0x6d0a1620, 0x2fdb3: 0x6d0a1820, + 0x2fdb4: 0x6d0a1a20, 0x2fdb5: 0x6d0a1c20, 0x2fdb6: 0x6d0a1e20, 0x2fdb7: 0x6d0a2020, + 0x2fdb8: 0x6d0a2220, 0x2fdb9: 0x6d0a2420, 0x2fdba: 0x6d0a2620, 0x2fdbb: 0x6d0a2820, + 0x2fdbc: 0x6d0a2a20, 0x2fdbd: 0x6d0a2c20, 0x2fdbe: 0x6d0a2e20, 0x2fdbf: 0x6d0a3020, + // Block 0xbf7, offset 0x2fdc0 + 0x2fdc0: 0x6d0a3220, 0x2fdc1: 0x6d0a3420, 0x2fdc2: 0x6d0a3620, 0x2fdc3: 0x6d0a3820, + 0x2fdc4: 0x6d0a3a20, 0x2fdc5: 0x6d0a3c20, 0x2fdc6: 0x6d0a3e20, 0x2fdc7: 0x6d0a4020, + 0x2fdc8: 0x6d0a4220, 0x2fdc9: 0x6d0a4420, 0x2fdca: 0x6d640e20, 0x2fdcb: 0x6d0a4620, + 0x2fdcc: 0x6d0a4820, 0x2fdcd: 0x6d0a4a20, 0x2fdce: 0x6d0a4c20, 0x2fdcf: 0x6d0a4e20, + 0x2fdd0: 0x6d37b020, 0x2fdd1: 0x6d37b220, 0x2fdd2: 0x6d37b420, 0x2fdd3: 0x6d37b620, + 0x2fdd4: 0x6d37b820, 0x2fdd5: 0x6d37ba20, 0x2fdd6: 0x6d37bc20, 0x2fdd7: 0x6d37be20, + 0x2fdd8: 0x6d37c020, 0x2fdd9: 0x6d37c220, 0x2fdda: 0x6d37c420, 0x2fddb: 0x6d37c620, + 0x2fddc: 0x6d37c820, 0x2fddd: 0x6d37ca20, 0x2fdde: 0x6d37cc20, 0x2fddf: 0x6d37ce20, + 0x2fde0: 0x6d37d020, 0x2fde1: 0x6d37d220, 0x2fde2: 0x6d37d420, 0x2fde3: 0x6d37d620, + 0x2fde4: 0x6d37d820, 0x2fde5: 0x6d37da20, 0x2fde6: 0x6d37dc20, 0x2fde7: 0x6d37de20, + 0x2fde8: 0x6d37e020, 0x2fde9: 0x6d37e220, 0x2fdea: 0x6d37e420, 0x2fdeb: 0x6d37e620, + 0x2fdec: 0x6d37e820, 0x2fded: 0x6d37ea20, 0x2fdee: 0x6d37ec20, 0x2fdef: 0x6d37ee20, + 0x2fdf0: 0x6d37f020, 0x2fdf1: 0x6d37f220, 0x2fdf2: 0x6d37f420, 0x2fdf3: 0x6d37f620, + 0x2fdf4: 0x6d37f820, 0x2fdf5: 0x6d37fa20, 0x2fdf6: 0x6d37fc20, 0x2fdf7: 0x6d37fe20, + 0x2fdf8: 0x6d2b2a20, 0x2fdf9: 0x6d380020, 0x2fdfa: 0x6d380220, 0x2fdfb: 0x6d380420, + 0x2fdfc: 0x6d380620, 0x2fdfd: 0x6d380820, 0x2fdfe: 0x6d380a20, 0x2fdff: 0x6d380c20, + // Block 0xbf8, offset 0x2fe00 + 0x2fe00: 0x6d380e20, 0x2fe01: 0x6d381020, 0x2fe02: 0x6d381220, 0x2fe03: 0x6d381420, + 0x2fe04: 0x6d381620, 0x2fe05: 0x6d0bb820, 0x2fe06: 0x6d381820, 0x2fe07: 0x6d381a20, + 0x2fe08: 0x6d0bba20, 0x2fe09: 0x6d381c20, 0x2fe0a: 0x6d381e20, 0x2fe0b: 0x6d382020, + 0x2fe0c: 0x6d382220, 0x2fe0d: 0x6d382420, 0x2fe0e: 0x6d382620, 0x2fe0f: 0x6d382820, + 0x2fe10: 0x6d382a20, 0x2fe11: 0x6d382c20, 0x2fe12: 0x6d382e20, 0x2fe13: 0x6d383020, + 0x2fe14: 0x6d383220, 0x2fe15: 0x6d383420, 0x2fe16: 0x6d383620, 0x2fe17: 0x6d383820, + 0x2fe18: 0x6d383a20, 0x2fe19: 0x6d383c20, 0x2fe1a: 0x6d383e20, 0x2fe1b: 0x6d384020, + 0x2fe1c: 0x6d384220, 0x2fe1d: 0x6d384420, 0x2fe1e: 0x6d8dfe20, 0x2fe1f: 0x6d384620, + 0x2fe20: 0x6d641020, 0x2fe21: 0x6d384820, 0x2fe22: 0x6d384a20, 0x2fe23: 0x6d384c20, + 0x2fe24: 0x6d384e20, 0x2fe25: 0x6d39b820, 0x2fe26: 0x6d385020, 0x2fe27: 0x6d641220, + 0x2fe28: 0x6d641420, 0x2fe29: 0x6d641620, 0x2fe2a: 0x6d641820, 0x2fe2b: 0x6d641a20, + 0x2fe2c: 0x6d641c20, 0x2fe2d: 0x6d641e20, 0x2fe2e: 0x6d642020, 0x2fe2f: 0x6d642220, + 0x2fe30: 0x6d642420, 0x2fe31: 0x6d0bbc20, 0x2fe32: 0x6d642620, 0x2fe33: 0x6d642820, + 0x2fe34: 0x6d642a20, 0x2fe35: 0x6d642c20, 0x2fe36: 0x6d642e20, 0x2fe37: 0x6d643020, + 0x2fe38: 0x6d643220, 0x2fe39: 0x6d643420, 0x2fe3a: 0x6d643620, 0x2fe3b: 0x6d643820, + 0x2fe3c: 0x6d643a20, 0x2fe3d: 0x6d643c20, 0x2fe3e: 0x6d643e20, 0x2fe3f: 0x6d644020, + // Block 0xbf9, offset 0x2fe40 + 0x2fe40: 0x6d644220, 0x2fe41: 0x6d644420, 0x2fe42: 0x6d644620, 0x2fe43: 0x6d644820, + 0x2fe44: 0x6d644a20, 0x2fe45: 0x6d644c20, 0x2fe46: 0x6d644e20, 0x2fe47: 0x6d0bbe20, + 0x2fe48: 0x6d645020, 0x2fe49: 0x6d645220, 0x2fe4a: 0x6d645420, 0x2fe4b: 0x6d645620, + 0x2fe4c: 0x6d645820, 0x2fe4d: 0x6d645a20, 0x2fe4e: 0x6d645c20, 0x2fe4f: 0x6d645e20, + 0x2fe50: 0x6d646020, 0x2fe51: 0x6d646220, 0x2fe52: 0x6d646420, 0x2fe53: 0x6d646620, + 0x2fe54: 0x6d646820, 0x2fe55: 0x6d646a20, 0x2fe56: 0x6d646c20, 0x2fe57: 0x6d646e20, + 0x2fe58: 0x6d647020, 0x2fe59: 0x6d647220, 0x2fe5a: 0x6d647420, 0x2fe5b: 0x6d647620, + 0x2fe5c: 0x6d647820, 0x2fe5d: 0x6d647a20, 0x2fe5e: 0x6d647c20, 0x2fe5f: 0x6d647e20, + 0x2fe60: 0x6d648020, 0x2fe61: 0x6d648220, 0x2fe62: 0x6d648420, 0x2fe63: 0x6d648620, + 0x2fe64: 0x6d648820, 0x2fe65: 0x6d648a20, 0x2fe66: 0x6d648c20, 0x2fe67: 0x6d648e20, + 0x2fe68: 0x6d649020, 0x2fe69: 0x6d649220, 0x2fe6a: 0x6d649420, 0x2fe6b: 0x6d649620, + 0x2fe6c: 0x6d649820, 0x2fe6d: 0x6d649a20, 0x2fe6e: 0x6d649c20, 0x2fe6f: 0x6d649e20, + 0x2fe70: 0x6d64a020, 0x2fe71: 0x6d64a220, 0x2fe72: 0x6d64a420, 0x2fe73: 0x6d64a620, + 0x2fe74: 0x6d64a820, 0x2fe75: 0x6d64aa20, 0x2fe76: 0x6d64ac20, 0x2fe77: 0x6d64ae20, + 0x2fe78: 0x6d64b020, 0x2fe79: 0x6d64b220, 0x2fe7a: 0x6d64b420, 0x2fe7b: 0x6d64b620, + 0x2fe7c: 0x6d64b820, 0x2fe7d: 0x6d65f020, 0x2fe7e: 0x6d8e0020, 0x2fe7f: 0x6d8e0220, + // Block 0xbfa, offset 0x2fe80 + 0x2fe80: 0x6d8e0420, 0x2fe81: 0x6d8e0620, 0x2fe82: 0x6d8e0820, 0x2fe83: 0x6d8e0a20, + 0x2fe84: 0x6d8e0c20, 0x2fe85: 0x6d8e0e20, 0x2fe86: 0x6d8e1020, 0x2fe87: 0x6d8e1220, + 0x2fe88: 0x6d8e1420, 0x2fe89: 0x6d8e1620, 0x2fe8a: 0x6d8e1820, 0x2fe8b: 0x6d8e1a20, + 0x2fe8c: 0x6d8e1c20, 0x2fe8d: 0x6d8e1e20, 0x2fe8e: 0x6d8e2020, 0x2fe8f: 0x6d65f220, + 0x2fe90: 0x6d8e2220, 0x2fe91: 0x6d8e2420, 0x2fe92: 0x6d8e2620, 0x2fe93: 0x6d8e2820, + 0x2fe94: 0x6d8e2a20, 0x2fe95: 0x6d8e2c20, 0x2fe96: 0x6d8e2e20, 0x2fe97: 0x6db1fe20, + 0x2fe98: 0x6d8e3020, 0x2fe99: 0x6d8e3220, 0x2fe9a: 0x6d8e3420, 0x2fe9b: 0x6d8e3620, + 0x2fe9c: 0x6d8e3820, 0x2fe9d: 0x6d8e3a20, 0x2fe9e: 0x6d8e3c20, 0x2fe9f: 0x6d8e3e20, + 0x2fea0: 0x6d8e4020, 0x2fea1: 0x6d8e4220, 0x2fea2: 0x6d8e4420, 0x2fea3: 0x6d8e4620, + 0x2fea4: 0x6d8e4820, 0x2fea5: 0x6d8e4a20, 0x2fea6: 0x6d8e4c20, 0x2fea7: 0x6d8e4e20, + 0x2fea8: 0x6d8e5020, 0x2fea9: 0x6d8e5220, 0x2feaa: 0x6d8e5420, 0x2feab: 0x6d8e5620, + 0x2feac: 0x6d8e5820, 0x2fead: 0x6d8e5a20, 0x2feae: 0x6d8e5c20, 0x2feaf: 0x6d8e5e20, + 0x2feb0: 0x6d8e6020, 0x2feb1: 0x6d8e6220, 0x2feb2: 0x6d8e6420, 0x2feb3: 0x6d8e6620, + 0x2feb4: 0x6d8e6820, 0x2feb5: 0x6d8e6a20, 0x2feb6: 0x6db20020, 0x2feb7: 0x6db20220, + 0x2feb8: 0x6db20420, 0x2feb9: 0x6db20620, 0x2feba: 0x6db20820, 0x2febb: 0x6db20a20, + 0x2febc: 0x6db20c20, 0x2febd: 0x6db20e20, 0x2febe: 0x6db21020, 0x2febf: 0x6db21220, + // Block 0xbfb, offset 0x2fec0 + 0x2fec0: 0x6db21420, 0x2fec1: 0x6db21620, 0x2fec2: 0x6db21820, 0x2fec3: 0x6db21a20, + 0x2fec4: 0x6db21c20, 0x2fec5: 0x6db21e20, 0x2fec6: 0x6db22020, 0x2fec7: 0x6db22220, + 0x2fec8: 0x6db22420, 0x2fec9: 0x6db22620, 0x2feca: 0x6db22820, 0x2fecb: 0x6db22a20, + 0x2fecc: 0x6d8fc420, 0x2fecd: 0x6db22c20, 0x2fece: 0x6db22e20, 0x2fecf: 0x6db23020, + 0x2fed0: 0x6db23220, 0x2fed1: 0x6db23420, 0x2fed2: 0x6db23620, 0x2fed3: 0x6db23820, + 0x2fed4: 0x6db23a20, 0x2fed5: 0x6db23c20, 0x2fed6: 0x6db23e20, 0x2fed7: 0x6db24020, + 0x2fed8: 0x6db24220, 0x2fed9: 0x6db24420, 0x2feda: 0x6db24620, 0x2fedb: 0x6db24820, + 0x2fedc: 0x6db24a20, 0x2fedd: 0x6db24c20, 0x2fede: 0x6db24e20, 0x2fedf: 0x6db25020, + 0x2fee0: 0x6db25220, 0x2fee1: 0x6db25420, 0x2fee2: 0x6db25620, 0x2fee3: 0x6db25820, + 0x2fee4: 0x6db25a20, 0x2fee5: 0x6db25c20, 0x2fee6: 0x6db25e20, 0x2fee7: 0x6db26020, + 0x2fee8: 0x6db26220, 0x2fee9: 0x6dd14c20, 0x2feea: 0x6db26420, 0x2feeb: 0x6db26620, + 0x2feec: 0x6db26820, 0x2feed: 0x6db39420, 0x2feee: 0x6db26a20, 0x2feef: 0x6db39620, + 0x2fef0: 0x6dd14e20, 0x2fef1: 0x6dd15020, 0x2fef2: 0x6dd15220, 0x2fef3: 0x6dd15420, + 0x2fef4: 0x6dd15620, 0x2fef5: 0x6dd15820, 0x2fef6: 0x6dd15a20, 0x2fef7: 0x6dd15c20, + 0x2fef8: 0x6dd15e20, 0x2fef9: 0x6dd16020, 0x2fefa: 0x6dd16220, 0x2fefb: 0x6dd16420, + 0x2fefc: 0x6dd16620, 0x2fefd: 0x6dd16820, 0x2fefe: 0x6dd16a20, 0x2feff: 0x6dd16c20, + // Block 0xbfc, offset 0x2ff00 + 0x2ff00: 0x6dd16e20, 0x2ff01: 0x6dd17020, 0x2ff02: 0x6dd17220, 0x2ff03: 0x6dd17420, + 0x2ff04: 0x6dd17620, 0x2ff05: 0x6dd17820, 0x2ff06: 0x6dd17a20, 0x2ff07: 0x6dd17c20, + 0x2ff08: 0x6dd17e20, 0x2ff09: 0x6dd18020, 0x2ff0a: 0x6dd18220, 0x2ff0b: 0x6dd18420, + 0x2ff0c: 0x6dd18620, 0x2ff0d: 0x6dd18820, 0x2ff0e: 0x6dd18a20, 0x2ff0f: 0x6dd18c20, + 0x2ff10: 0x6dd18e20, 0x2ff11: 0x6deac020, 0x2ff12: 0x6dd19020, 0x2ff13: 0x6dd19220, + 0x2ff14: 0x6e128a20, 0x2ff15: 0x6deac220, 0x2ff16: 0x6deac420, 0x2ff17: 0x6deac620, + 0x2ff18: 0x6deac820, 0x2ff19: 0x6deaca20, 0x2ff1a: 0x6deacc20, 0x2ff1b: 0x6deace20, + 0x2ff1c: 0x6dead020, 0x2ff1d: 0x6dead220, 0x2ff1e: 0x6dead420, 0x2ff1f: 0x6dead620, + 0x2ff20: 0x6dead820, 0x2ff21: 0x6deada20, 0x2ff22: 0x6deadc20, 0x2ff23: 0x6deade20, + 0x2ff24: 0x6deae020, 0x2ff25: 0x6deae220, 0x2ff26: 0x6deae420, 0x2ff27: 0x6deae620, + 0x2ff28: 0x6deae820, 0x2ff29: 0x6deaea20, 0x2ff2a: 0x6deaec20, 0x2ff2b: 0x6deaee20, + 0x2ff2c: 0x6deaf020, 0x2ff2d: 0x6deaf220, 0x2ff2e: 0x6e006c20, 0x2ff2f: 0x6deaf420, + 0x2ff30: 0x6deaf620, 0x2ff31: 0x6deaf820, 0x2ff32: 0x6deafa20, 0x2ff33: 0x6deafc20, + 0x2ff34: 0x6deafe20, 0x2ff35: 0x6deb0020, 0x2ff36: 0x6e006e20, 0x2ff37: 0x6debce20, + 0x2ff38: 0x6debd020, 0x2ff39: 0x6e007020, 0x2ff3a: 0x6e007220, 0x2ff3b: 0x6e007420, + 0x2ff3c: 0x6e007620, 0x2ff3d: 0x6e007820, 0x2ff3e: 0x6e007a20, 0x2ff3f: 0x6e007c20, + // Block 0xbfd, offset 0x2ff40 + 0x2ff40: 0x6e007e20, 0x2ff41: 0x6e008020, 0x2ff42: 0x6e008220, 0x2ff43: 0x6e008420, + 0x2ff44: 0x6e008620, 0x2ff45: 0x6e008820, 0x2ff46: 0x6e008a20, 0x2ff47: 0x6e008c20, + 0x2ff48: 0x6e008e20, 0x2ff49: 0x6e009020, 0x2ff4a: 0x6e009220, 0x2ff4b: 0x6e009420, + 0x2ff4c: 0x6e009620, 0x2ff4d: 0x6e009820, 0x2ff4e: 0x6e009a20, 0x2ff4f: 0x6e009c20, + 0x2ff50: 0x6e009e20, 0x2ff51: 0x6e00a020, 0x2ff52: 0x6e015420, 0x2ff53: 0x6e00a220, + 0x2ff54: 0x6e00a420, 0x2ff55: 0x6e128c20, 0x2ff56: 0x6e128e20, 0x2ff57: 0x6e129020, + 0x2ff58: 0x6e129220, 0x2ff59: 0x6e129420, 0x2ff5a: 0x6e129620, 0x2ff5b: 0x6e015620, + 0x2ff5c: 0x6e129820, 0x2ff5d: 0x6e129a20, 0x2ff5e: 0x6e129c20, 0x2ff5f: 0x6e129e20, + 0x2ff60: 0x6e12a020, 0x2ff61: 0x6e12a220, 0x2ff62: 0x6e00a620, 0x2ff63: 0x6e12a420, + 0x2ff64: 0x6e006a20, 0x2ff65: 0x6e12a620, 0x2ff66: 0x6e12a820, 0x2ff67: 0x6e12aa20, + 0x2ff68: 0x6e12ac20, 0x2ff69: 0x6e12ae20, 0x2ff6a: 0x6e12b020, 0x2ff6b: 0x6e12b220, + 0x2ff6c: 0x6e20b820, 0x2ff6d: 0x6e12b420, 0x2ff6e: 0x6e12b620, 0x2ff6f: 0x6e12b820, + 0x2ff70: 0x6e015820, 0x2ff71: 0x6e2b7e20, 0x2ff72: 0x6e20ba20, 0x2ff73: 0x6e20bc20, + 0x2ff74: 0x6e20be20, 0x2ff75: 0x6e20c020, 0x2ff76: 0x6e20c220, 0x2ff77: 0x6e20c420, + 0x2ff78: 0x6e2b8020, 0x2ff79: 0x6e2b8220, 0x2ff7a: 0x6e2b8420, 0x2ff7b: 0x6e2b8620, + 0x2ff7c: 0x6e2b8820, 0x2ff7d: 0x6e2b8a20, 0x2ff7e: 0x6e2b8c20, 0x2ff7f: 0x6e2b8e20, + // Block 0xbfe, offset 0x2ff80 + 0x2ff80: 0x6e2b9020, 0x2ff81: 0x6e2b9220, 0x2ff82: 0x6e39ca20, 0x2ff83: 0x6e33ec20, + 0x2ff84: 0x6e3df420, 0x2ff85: 0x6e33ee20, 0x2ff86: 0x6e39cc20, 0x2ff87: 0x6e39ce20, + 0x2ff88: 0x6e39d020, 0x2ff89: 0x6e39d220, 0x2ff8a: 0x6e40cc20, 0x2ff8b: 0x6e446620, + 0x2ff8c: 0x6e42fa20, 0x2ff8d: 0x6c14ca20, 0x2ff8e: 0x6c401020, 0x2ff8f: 0x6c401220, + 0x2ff90: 0x6c5f9620, 0x2ff91: 0x6c84ce20, 0x2ff92: 0x6c674020, 0x2ff93: 0x6c84d020, + 0x2ff94: 0x6c84d220, 0x2ff95: 0x6cae2620, 0x2ff96: 0x6cae2820, 0x2ff97: 0x6cae2a20, + 0x2ff98: 0x6cae2c20, 0x2ff99: 0x6cae2e20, 0x2ff9a: 0x6cae3020, 0x2ff9b: 0x6cdd4c20, + 0x2ff9c: 0x6d0bc020, 0x2ff9d: 0x6cdd4e20, 0x2ff9e: 0x6d0bcc20, 0x2ff9f: 0x6d0bce20, + 0x2ffa0: 0x6d39ba20, 0x2ffa1: 0x6d39bc20, 0x2ffa2: 0x6d65f620, 0x2ffa3: 0x6d8fc620, + 0x2ffa4: 0x6d8fca20, 0x2ffa5: 0x6d8fcc20, 0x2ffa6: 0x6d8fce20, 0x2ffa7: 0x6db39a20, + 0x2ffa8: 0x6db39c20, 0x2ffa9: 0x6dd29a20, 0x2ffaa: 0x6e3e1220, 0x2ffab: 0x6c14cc20, + 0x2ffac: 0x6c268a20, 0x2ffad: 0x6c401620, 0x2ffae: 0x6c401820, 0x2ffaf: 0x6c401a20, + 0x2ffb0: 0x6c401c20, 0x2ffb1: 0x6c401e20, 0x2ffb2: 0x6c402020, 0x2ffb3: 0x6c5fa820, + 0x2ffb4: 0x6c5faa20, 0x2ffb5: 0x6c5fac20, 0x2ffb6: 0x6c5fae20, 0x2ffb7: 0x6c5fb020, + 0x2ffb8: 0x6c5fb220, 0x2ffb9: 0x6c5fb420, 0x2ffba: 0x6c5fb620, 0x2ffbb: 0x6c5fb820, + 0x2ffbc: 0x6c5fba20, 0x2ffbd: 0x6c5fbc20, 0x2ffbe: 0x6c5fbe20, 0x2ffbf: 0x6c5fc020, + // Block 0xbff, offset 0x2ffc0 + 0x2ffc0: 0x6c5fc220, 0x2ffc1: 0x6c5fc420, 0x2ffc2: 0x6c5fc620, 0x2ffc3: 0x6c5fc820, + 0x2ffc4: 0x6c84e420, 0x2ffc5: 0x6c84e620, 0x2ffc6: 0x6c84e820, 0x2ffc7: 0x6c84ea20, + 0x2ffc8: 0x6cdd7820, 0x2ffc9: 0x6c84ec20, 0x2ffca: 0x6c84ee20, 0x2ffcb: 0x6c84f020, + 0x2ffcc: 0x6c84f220, 0x2ffcd: 0x6c84f420, 0x2ffce: 0x6c84f620, 0x2ffcf: 0x6c84f820, + 0x2ffd0: 0x6c84fa20, 0x2ffd1: 0x6c84fc20, 0x2ffd2: 0x6c84fe20, 0x2ffd3: 0x6c850020, + 0x2ffd4: 0x6c850220, 0x2ffd5: 0x6c850420, 0x2ffd6: 0x6c850620, 0x2ffd7: 0x6c850820, + 0x2ffd8: 0x6c850a20, 0x2ffd9: 0x6c850c20, 0x2ffda: 0x6c850e20, 0x2ffdb: 0x6c851020, + 0x2ffdc: 0x6c851220, 0x2ffdd: 0x6c851420, 0x2ffde: 0x6c851620, 0x2ffdf: 0x6c851820, + 0x2ffe0: 0x6c851a20, 0x2ffe1: 0x6c851c20, 0x2ffe2: 0x6c851e20, 0x2ffe3: 0x6c852020, + 0x2ffe4: 0x6c852220, 0x2ffe5: 0x6c852420, 0x2ffe6: 0x6c852620, 0x2ffe7: 0x6c852820, + 0x2ffe8: 0x6c852a20, 0x2ffe9: 0x6c852c20, 0x2ffea: 0x6c852e20, 0x2ffeb: 0x6cae6020, + 0x2ffec: 0x6c853020, 0x2ffed: 0x6cae6220, 0x2ffee: 0x6cae6420, 0x2ffef: 0x6cae6620, + 0x2fff0: 0x6cae6820, 0x2fff1: 0x6cae6a20, 0x2fff2: 0x6cae6c20, 0x2fff3: 0x6cae6e20, + 0x2fff4: 0x6cae7020, 0x2fff5: 0x6cae7220, 0x2fff6: 0x6cae7420, 0x2fff7: 0x6cae7620, + 0x2fff8: 0x6cae7820, 0x2fff9: 0x6cae7a20, 0x2fffa: 0x6cae7c20, 0x2fffb: 0x6cae7e20, + 0x2fffc: 0x6cae8020, 0x2fffd: 0x6cae8220, 0x2fffe: 0x6cae8420, 0x2ffff: 0x6cae8620, + // Block 0xc00, offset 0x30000 + 0x30000: 0x6cae8820, 0x30001: 0x6cae8a20, 0x30002: 0x6cae8c20, 0x30003: 0x6cae8e20, + 0x30004: 0x6cae9020, 0x30005: 0x6cae9220, 0x30006: 0x6cae9420, 0x30007: 0x6cae9620, + 0x30008: 0x6cae9820, 0x30009: 0x6cae9a20, 0x3000a: 0x6cae9c20, 0x3000b: 0x6cae9e20, + 0x3000c: 0x6caea020, 0x3000d: 0x6caea220, 0x3000e: 0x6caea420, 0x3000f: 0x6caea620, + 0x30010: 0x6cdd7a20, 0x30011: 0x6cdd7c20, 0x30012: 0x6cdd7e20, 0x30013: 0x6cdd8020, + 0x30014: 0x6cdd8220, 0x30015: 0x6cdd8420, 0x30016: 0x6d0bf020, 0x30017: 0x6cdd8620, + 0x30018: 0x6cdd8820, 0x30019: 0x6cdd8a20, 0x3001a: 0x6cdd8c20, 0x3001b: 0x6cdd8e20, + 0x3001c: 0x6cdd9020, 0x3001d: 0x6cdd9220, 0x3001e: 0x6cdd9420, 0x3001f: 0x6cdd9620, + 0x30020: 0x6cdd9820, 0x30021: 0x6cdd9a20, 0x30022: 0x6cdd9c20, 0x30023: 0x6cdd9e20, + 0x30024: 0x6cdda020, 0x30025: 0x6cdda220, 0x30026: 0x6cdda420, 0x30027: 0x6cdda620, + 0x30028: 0x6cdda820, 0x30029: 0x6cddaa20, 0x3002a: 0x6cddac20, 0x3002b: 0x6cddae20, + 0x3002c: 0x6cddb020, 0x3002d: 0x6cddb220, 0x3002e: 0x6cddb420, 0x3002f: 0x6cddb620, + 0x30030: 0x6cddb820, 0x30031: 0x6cddba20, 0x30032: 0x6cddbc20, 0x30033: 0x6cddbe20, + 0x30034: 0x6cddc020, 0x30035: 0x6d0bf220, 0x30036: 0x6d0bf420, 0x30037: 0x6d0bf620, + 0x30038: 0x6d0bf820, 0x30039: 0x6d0bfa20, 0x3003a: 0x6d0bfc20, 0x3003b: 0x6d0bfe20, + 0x3003c: 0x6d0c0020, 0x3003d: 0x6d0c0220, 0x3003e: 0x6d0c0420, 0x3003f: 0x6d0c0620, + // Block 0xc01, offset 0x30040 + 0x30040: 0x6d0c0820, 0x30041: 0x6d0c0a20, 0x30042: 0x6d0c0c20, 0x30043: 0x6d0c0e20, + 0x30044: 0x6d0c1020, 0x30045: 0x6d0c1220, 0x30046: 0x6d0c1420, 0x30047: 0x6d0c1620, + 0x30048: 0x6d0c1820, 0x30049: 0x6d0c1a20, 0x3004a: 0x6d0c1c20, 0x3004b: 0x6d0c1e20, + 0x3004c: 0x6d0c2020, 0x3004d: 0x6d0c2220, 0x3004e: 0x6d0c2420, 0x3004f: 0x6d0c2620, + 0x30050: 0x6d0c2820, 0x30051: 0x6d39dc20, 0x30052: 0x6d39de20, 0x30053: 0x6d0c2a20, + 0x30054: 0x6d0c2c20, 0x30055: 0x6d0c2e20, 0x30056: 0x6d0c3020, 0x30057: 0x6d0c3220, + 0x30058: 0x6d39fc20, 0x30059: 0x6d39fe20, 0x3005a: 0x6d3a0020, 0x3005b: 0x6d3a0220, + 0x3005c: 0x6d3a0420, 0x3005d: 0x6d3a0620, 0x3005e: 0x6d3a0820, 0x3005f: 0x6d3a0a20, + 0x30060: 0x6d3a0c20, 0x30061: 0x6d3a0e20, 0x30062: 0x6d3a1020, 0x30063: 0x6d3a1220, + 0x30064: 0x6d3a1420, 0x30065: 0x6d3a1620, 0x30066: 0x6d3a1820, 0x30067: 0x6d3a1a20, + 0x30068: 0x6d3a1c20, 0x30069: 0x6d3a1e20, 0x3006a: 0x6d3a2020, 0x3006b: 0x6d39e020, + 0x3006c: 0x6d3a2220, 0x3006d: 0x6d3a2420, 0x3006e: 0x6d3a2620, 0x3006f: 0x6d3a2820, + 0x30070: 0x6d3a2a20, 0x30071: 0x6d3a2c20, 0x30072: 0x6d3a2e20, 0x30073: 0x6d3a3020, + 0x30074: 0x6d3a3220, 0x30075: 0x6d3a3420, 0x30076: 0x6d3a3620, 0x30077: 0x6d3a3820, + 0x30078: 0x6d3a3a20, 0x30079: 0x6d3a3c20, 0x3007a: 0x6d3a3e20, 0x3007b: 0x6d3a4020, + 0x3007c: 0x6d3a4220, 0x3007d: 0x6d3a4420, 0x3007e: 0x6d3a4620, 0x3007f: 0x6d3a4820, + // Block 0xc02, offset 0x30080 + 0x30080: 0x6d3a4a20, 0x30081: 0x6d3a4c20, 0x30082: 0x6d3a4e20, 0x30083: 0x6d3a5020, + 0x30084: 0x6d3a5220, 0x30085: 0x6d3a5420, 0x30086: 0x6d0c3420, 0x30087: 0x6d3a5620, + 0x30088: 0x6d3a5820, 0x30089: 0x6d3a5a20, 0x3008a: 0x6d3a5c20, 0x3008b: 0x6d3a5e20, + 0x3008c: 0x6d662820, 0x3008d: 0x6d0cba20, 0x3008e: 0x6d662a20, 0x3008f: 0x6d662c20, + 0x30090: 0x6d662e20, 0x30091: 0x6d663020, 0x30092: 0x6d663220, 0x30093: 0x6d663420, + 0x30094: 0x6d663620, 0x30095: 0x6d3b0c20, 0x30096: 0x6d663820, 0x30097: 0x6d663a20, + 0x30098: 0x6d663c20, 0x30099: 0x6d663e20, 0x3009a: 0x6d664020, 0x3009b: 0x6d664220, + 0x3009c: 0x6d664420, 0x3009d: 0x6d664620, 0x3009e: 0x6d664820, 0x3009f: 0x6d664a20, + 0x300a0: 0x6d664c20, 0x300a1: 0x6d664e20, 0x300a2: 0x6d665020, 0x300a3: 0x6d665220, + 0x300a4: 0x6d665420, 0x300a5: 0x6d665620, 0x300a6: 0x6d665820, 0x300a7: 0x6d665a20, + 0x300a8: 0x6d665c20, 0x300a9: 0x6d665e20, 0x300aa: 0x6d666020, 0x300ab: 0x6d3b0e20, + 0x300ac: 0x6d666220, 0x300ad: 0x6d666420, 0x300ae: 0x6d666620, 0x300af: 0x6d666820, + 0x300b0: 0x6d666a20, 0x300b1: 0x6d666c20, 0x300b2: 0x6d666e20, 0x300b3: 0x6d667020, + 0x300b4: 0x6d667220, 0x300b5: 0x6d667420, 0x300b6: 0x6d667620, 0x300b7: 0x6d667820, + 0x300b8: 0x6d667a20, 0x300b9: 0x6d900a20, 0x300ba: 0x6d667c20, 0x300bb: 0x6d667e20, + 0x300bc: 0x6d668020, 0x300bd: 0x6d668220, 0x300be: 0x6d668420, 0x300bf: 0x6d668620, + // Block 0xc03, offset 0x300c0 + 0x300c0: 0x6d668820, 0x300c1: 0x6d900c20, 0x300c2: 0x6d673820, 0x300c3: 0x6d900e20, + 0x300c4: 0x6d901020, 0x300c5: 0x6d901220, 0x300c6: 0x6d901420, 0x300c7: 0x6d901620, + 0x300c8: 0x6d901820, 0x300c9: 0x6d901a20, 0x300ca: 0x6d901c20, 0x300cb: 0x6d901e20, + 0x300cc: 0x6d902020, 0x300cd: 0x6d902220, 0x300ce: 0x6d902420, 0x300cf: 0x6d902620, + 0x300d0: 0x6d902820, 0x300d1: 0x6d902a20, 0x300d2: 0x6d902c20, 0x300d3: 0x6d902e20, + 0x300d4: 0x6d903020, 0x300d5: 0x6d903220, 0x300d6: 0x6d903420, 0x300d7: 0x6d903620, + 0x300d8: 0x6d903820, 0x300d9: 0x6d903a20, 0x300da: 0x6d903c20, 0x300db: 0x6d903e20, + 0x300dc: 0x6d904020, 0x300dd: 0x6d904220, 0x300de: 0x6d904420, 0x300df: 0x6d904620, + 0x300e0: 0x6d904820, 0x300e1: 0x6d904a20, 0x300e2: 0x6d904c20, 0x300e3: 0x6d904e20, + 0x300e4: 0x6d905020, 0x300e5: 0x6d905220, 0x300e6: 0x6d905420, 0x300e7: 0x6d905620, + 0x300e8: 0x6d905820, 0x300e9: 0x6d905a20, 0x300ea: 0x6db3d420, 0x300eb: 0x6db3d620, + 0x300ec: 0x6db3d820, 0x300ed: 0x6db3da20, 0x300ee: 0x6db3dc20, 0x300ef: 0x6db3de20, + 0x300f0: 0x6db3e020, 0x300f1: 0x6db3e220, 0x300f2: 0x6db3e420, 0x300f3: 0x6db3e620, + 0x300f4: 0x6db3e820, 0x300f5: 0x6db3ea20, 0x300f6: 0x6db3ec20, 0x300f7: 0x6db3ee20, + 0x300f8: 0x6db3f020, 0x300f9: 0x6db3f220, 0x300fa: 0x6db3f420, 0x300fb: 0x6db3f620, + 0x300fc: 0x6db3f820, 0x300fd: 0x6db3fa20, 0x300fe: 0x6db3fc20, 0x300ff: 0x6db3fe20, + // Block 0xc04, offset 0x30100 + 0x30100: 0x6db40020, 0x30101: 0x6db40220, 0x30102: 0x6db40420, 0x30103: 0x6db40620, + 0x30104: 0x6db40820, 0x30105: 0x6db40a20, 0x30106: 0x6db40c20, 0x30107: 0x6db40e20, + 0x30108: 0x6db41020, 0x30109: 0x6db41220, 0x3010a: 0x6db41420, 0x3010b: 0x6db41620, + 0x3010c: 0x6db41820, 0x3010d: 0x6db41a20, 0x3010e: 0x6db41c20, 0x3010f: 0x6db41e20, + 0x30110: 0x6db42020, 0x30111: 0x6db42220, 0x30112: 0x6db42420, 0x30113: 0x6dd2ba20, + 0x30114: 0x6dd2bc20, 0x30115: 0x6debe420, 0x30116: 0x6dd2be20, 0x30117: 0x6dd2ae20, + 0x30118: 0x6dd2c020, 0x30119: 0x6dd2c220, 0x3011a: 0x6dd2c420, 0x3011b: 0x6dd2c620, + 0x3011c: 0x6dd2c820, 0x3011d: 0x6dd2ca20, 0x3011e: 0x6db4c620, 0x3011f: 0x6dd2cc20, + 0x30120: 0x6dd2ce20, 0x30121: 0x6d668a20, 0x30122: 0x6dd2d020, 0x30123: 0x6dd2d220, + 0x30124: 0x6dd2d420, 0x30125: 0x6dd2d620, 0x30126: 0x6dd2d820, 0x30127: 0x6dd2da20, + 0x30128: 0x6dd2dc20, 0x30129: 0x6dd2de20, 0x3012a: 0x6dd2e020, 0x3012b: 0x6dd2e220, + 0x3012c: 0x6dd2e420, 0x3012d: 0x6dd2e620, 0x3012e: 0x6dd2e820, 0x3012f: 0x6dd2ea20, + 0x30130: 0x6dd2ec20, 0x30131: 0x6dd2ee20, 0x30132: 0x6dd2f020, 0x30133: 0x6dd2f220, + 0x30134: 0x6dd2f420, 0x30135: 0x6dd2f620, 0x30136: 0x6debf620, 0x30137: 0x6debf820, + 0x30138: 0x6debfa20, 0x30139: 0x6debfc20, 0x3013a: 0x6debfe20, 0x3013b: 0x6dec0020, + 0x3013c: 0x6dec0220, 0x3013d: 0x6dec0420, 0x3013e: 0x6dec0620, 0x3013f: 0x6dec0820, + // Block 0xc05, offset 0x30140 + 0x30140: 0x6dec0a20, 0x30141: 0x6debe220, 0x30142: 0x6dec0c20, 0x30143: 0x6dec0e20, + 0x30144: 0x6dec1020, 0x30145: 0x6dec1220, 0x30146: 0x6dec1420, 0x30147: 0x6dec1620, + 0x30148: 0x6dec1820, 0x30149: 0x6dec1a20, 0x3014a: 0x6dec1c20, 0x3014b: 0x6dec1e20, + 0x3014c: 0x6dec2020, 0x3014d: 0x6dec2220, 0x3014e: 0x6dd2f820, 0x3014f: 0x6dec2420, + 0x30150: 0x6e017020, 0x30151: 0x6e017220, 0x30152: 0x6e017420, 0x30153: 0x6e017620, + 0x30154: 0x6e017820, 0x30155: 0x6e017a20, 0x30156: 0x6e017c20, 0x30157: 0x6e017e20, + 0x30158: 0x6e018020, 0x30159: 0x6e018220, 0x3015a: 0x6e135620, 0x3015b: 0x6e135820, + 0x3015c: 0x6e135a20, 0x3015d: 0x6e135c20, 0x3015e: 0x6deca420, 0x3015f: 0x6e135e20, + 0x30160: 0x6e136020, 0x30161: 0x6e136220, 0x30162: 0x6e136420, 0x30163: 0x6e136620, + 0x30164: 0x6e136820, 0x30165: 0x6e212c20, 0x30166: 0x6e212e20, 0x30167: 0x6e213020, + 0x30168: 0x6e213220, 0x30169: 0x6e13c620, 0x3016a: 0x6e213420, 0x3016b: 0x6e13c820, + 0x3016c: 0x6e213620, 0x3016d: 0x6e2be220, 0x3016e: 0x6e2be420, 0x3016f: 0x6e2be620, + 0x30170: 0x6e2be820, 0x30171: 0x6e2bea20, 0x30172: 0x6e2bec20, 0x30173: 0x6e2bee20, + 0x30174: 0x6e2bda20, 0x30175: 0x6e342620, 0x30176: 0x6e342820, 0x30177: 0x6e342a20, + 0x30178: 0x6e342c20, 0x30179: 0x6e342e20, 0x3017a: 0x6e343020, 0x3017b: 0x6e39ec20, + 0x3017c: 0x6e3e1620, 0x3017d: 0x6e40de20, 0x3017e: 0x6e40e020, 0x3017f: 0x6e40fa20, + // Block 0xc06, offset 0x30180 + 0x30180: 0x6c14ce20, 0x30181: 0x6c5ff820, 0x30182: 0x6c5ffa20, 0x30183: 0x6c858420, + 0x30184: 0x6c858620, 0x30185: 0x6caf1c20, 0x30186: 0x6cde4420, 0x30187: 0x6cde4620, + 0x30188: 0x6cde4820, 0x30189: 0x6cde4a20, 0x3018a: 0x6e13ca20, 0x3018b: 0x6e345c20, + 0x3018c: 0x6c14d020, 0x3018d: 0x6c5ffe20, 0x3018e: 0x6c600020, 0x3018f: 0x6c859620, + 0x30190: 0x6caf2620, 0x30191: 0x6caf2820, 0x30192: 0x6caf2a20, 0x30193: 0x6caf2c20, + 0x30194: 0x6caf2e20, 0x30195: 0x6cde5220, 0x30196: 0x6cde5420, 0x30197: 0x6cde5620, + 0x30198: 0x6d0cc820, 0x30199: 0x6d0cca20, 0x3019a: 0x6d674620, 0x3019b: 0x6d674820, + 0x3019c: 0x6d674a20, 0x3019d: 0x6d674c20, 0x3019e: 0x6d912420, 0x3019f: 0x6d912620, + 0x301a0: 0x6d912820, 0x301a1: 0x6d912a20, 0x301a2: 0x6e345e20, 0x301a3: 0x6c14d220, + 0x301a4: 0x6c0a6020, 0x301a5: 0x6c404820, 0x301a6: 0x6c601220, 0x301a7: 0x6c601420, + 0x301a8: 0x6c404a20, 0x301a9: 0x6c601620, 0x301aa: 0x6c601820, 0x301ab: 0x6c601a20, + 0x301ac: 0x6c601c20, 0x301ad: 0x6c85a620, 0x301ae: 0x6c85a820, 0x301af: 0x6c85aa20, + 0x301b0: 0x6c85ac20, 0x301b1: 0x6c85ae20, 0x301b2: 0x6c85b020, 0x301b3: 0x6c85b220, + 0x301b4: 0x6c85b420, 0x301b5: 0x6c85b620, 0x301b6: 0x6c85b820, 0x301b7: 0x6c85ba20, + 0x301b8: 0x6c85bc20, 0x301b9: 0x6c85be20, 0x301ba: 0x6c85c020, 0x301bb: 0x6c85c220, + 0x301bc: 0x6c85c420, 0x301bd: 0x6c85c620, 0x301be: 0x6c85c820, 0x301bf: 0x6c85ca20, + // Block 0xc07, offset 0x301c0 + 0x301c0: 0x6c85cc20, 0x301c1: 0x6c85ce20, 0x301c2: 0x6c85d020, 0x301c3: 0x6c85d220, + 0x301c4: 0x6c85d420, 0x301c5: 0x6c85d620, 0x301c6: 0x6c85d820, 0x301c7: 0x6c85da20, + 0x301c8: 0x6caf4020, 0x301c9: 0x6caf4220, 0x301ca: 0x6caf4420, 0x301cb: 0x6caf4620, + 0x301cc: 0x6caf4820, 0x301cd: 0x6caf4a20, 0x301ce: 0x6caf4c20, 0x301cf: 0x6caf4e20, + 0x301d0: 0x6caf5020, 0x301d1: 0x6caf5220, 0x301d2: 0x6caf5420, 0x301d3: 0x6caf5620, + 0x301d4: 0x6caf5820, 0x301d5: 0x6caf5a20, 0x301d6: 0x6caf5c20, 0x301d7: 0x6caf5e20, + 0x301d8: 0x6caf6020, 0x301d9: 0x6caf6220, 0x301da: 0x6caf6420, 0x301db: 0x6caf6620, + 0x301dc: 0x6caf6820, 0x301dd: 0x6caf6a20, 0x301de: 0x6caf6c20, 0x301df: 0x6caf6e20, + 0x301e0: 0x6caf7020, 0x301e1: 0x6caf7220, 0x301e2: 0x6caf7420, 0x301e3: 0x6caf7620, + 0x301e4: 0x6caf7820, 0x301e5: 0x6caf7a20, 0x301e6: 0x6caf7c20, 0x301e7: 0x6caf7e20, + 0x301e8: 0x6caf8020, 0x301e9: 0x6caf8220, 0x301ea: 0x6caf8420, 0x301eb: 0x6caf8620, + 0x301ec: 0x6caf8820, 0x301ed: 0x6caf8a20, 0x301ee: 0x6caf8c20, 0x301ef: 0x6caf9020, + 0x301f0: 0x6caf8e20, 0x301f1: 0x6cde7820, 0x301f2: 0x6cde7a20, 0x301f3: 0x6cde7c20, + 0x301f4: 0x6cde7e20, 0x301f5: 0x6cde8020, 0x301f6: 0x6cde8220, 0x301f7: 0x6cde8420, + 0x301f8: 0x6cde8620, 0x301f9: 0x6cde8820, 0x301fa: 0x6cde8a20, 0x301fb: 0x6cde8c20, + 0x301fc: 0x6cde8e20, 0x301fd: 0x6cde9020, 0x301fe: 0x6cde9220, 0x301ff: 0x6cde9420, + // Block 0xc08, offset 0x30200 + 0x30200: 0x6cde9620, 0x30201: 0x6cde9820, 0x30202: 0x6cde9a20, 0x30203: 0x6cde9c20, + 0x30204: 0x6cde9e20, 0x30205: 0x6cdea020, 0x30206: 0x6cdea220, 0x30207: 0x6cdea420, + 0x30208: 0x6cdea620, 0x30209: 0x6cdea820, 0x3020a: 0x6d0ce020, 0x3020b: 0x6d0ce220, + 0x3020c: 0x6d0ce420, 0x3020d: 0x6d0ce620, 0x3020e: 0x6d0ce820, 0x3020f: 0x6d0cea20, + 0x30210: 0x6d0cec20, 0x30211: 0x6d0cee20, 0x30212: 0x6d0cf020, 0x30213: 0x6d0cf220, + 0x30214: 0x6d0cf420, 0x30215: 0x6d0cf620, 0x30216: 0x6d0cf820, 0x30217: 0x6cdeaa20, + 0x30218: 0x6d0cfa20, 0x30219: 0x6d0cfc20, 0x3021a: 0x6d0cfe20, 0x3021b: 0x6d0d0020, + 0x3021c: 0x6d0d0220, 0x3021d: 0x6d0d0420, 0x3021e: 0x6d0d0620, 0x3021f: 0x6d0d0820, + 0x30220: 0x6d0d0a20, 0x30221: 0x6d0d0c20, 0x30222: 0x6d3b2620, 0x30223: 0x6d0d0e20, + 0x30224: 0x6d0d1020, 0x30225: 0x6d0d1220, 0x30226: 0x6d676e20, 0x30227: 0x6d3b4820, + 0x30228: 0x6d3b4a20, 0x30229: 0x6d3b4c20, 0x3022a: 0x6d3b4e20, 0x3022b: 0x6d3b5020, + 0x3022c: 0x6d3b5220, 0x3022d: 0x6d3b5420, 0x3022e: 0x6d3b5620, 0x3022f: 0x6d3b5820, + 0x30230: 0x6d3b5a20, 0x30231: 0x6d3b5c20, 0x30232: 0x6d3b5e20, 0x30233: 0x6d3b6020, + 0x30234: 0x6d3b6220, 0x30235: 0x6d3b6420, 0x30236: 0x6d3b6620, 0x30237: 0x6d3b6820, + 0x30238: 0x6d3b6a20, 0x30239: 0x6d3b6c20, 0x3023a: 0x6d3b6e20, 0x3023b: 0x6d3b7020, + 0x3023c: 0x6d3b7220, 0x3023d: 0x6d3b7420, 0x3023e: 0x6d3b7620, 0x3023f: 0x6d3b7820, + // Block 0xc09, offset 0x30240 + 0x30240: 0x6d3b7a20, 0x30241: 0x6cdef820, 0x30242: 0x6d3b7c20, 0x30243: 0x6d3b7e20, + 0x30244: 0x6d3b8020, 0x30245: 0x6d677020, 0x30246: 0x6d677220, 0x30247: 0x6d677420, + 0x30248: 0x6d677620, 0x30249: 0x6d677820, 0x3024a: 0x6d677a20, 0x3024b: 0x6d677c20, + 0x3024c: 0x6d677e20, 0x3024d: 0x6d678020, 0x3024e: 0x6d678220, 0x3024f: 0x6d678420, + 0x30250: 0x6d678620, 0x30251: 0x6d678820, 0x30252: 0x6d678a20, 0x30253: 0x6d678c20, + 0x30254: 0x6d678e20, 0x30255: 0x6d679020, 0x30256: 0x6d679220, 0x30257: 0x6d679420, + 0x30258: 0x6d679620, 0x30259: 0x6d679820, 0x3025a: 0x6d3b8220, 0x3025b: 0x6d679a20, + 0x3025c: 0x6d679c20, 0x3025d: 0x6d679e20, 0x3025e: 0x6d913c20, 0x3025f: 0x6d913e20, + 0x30260: 0x6d914020, 0x30261: 0x6d914220, 0x30262: 0x6d914420, 0x30263: 0x6d914620, + 0x30264: 0x6d914820, 0x30265: 0x6d914a20, 0x30266: 0x6d914c20, 0x30267: 0x6d914e20, + 0x30268: 0x6d915020, 0x30269: 0x6d915220, 0x3026a: 0x6d915420, 0x3026b: 0x6d915620, + 0x3026c: 0x6d915820, 0x3026d: 0x6d915a20, 0x3026e: 0x6d915c20, 0x3026f: 0x6d915e20, + 0x30270: 0x6d916020, 0x30271: 0x6d916220, 0x30272: 0x6d916420, 0x30273: 0x6db4ee20, + 0x30274: 0x6d916620, 0x30275: 0x6db4f020, 0x30276: 0x6db4f220, 0x30277: 0x6db4f420, + 0x30278: 0x6db4f620, 0x30279: 0x6db4f820, 0x3027a: 0x6db4fa20, 0x3027b: 0x6db4fc20, + 0x3027c: 0x6db4fe20, 0x3027d: 0x6db50020, 0x3027e: 0x6db50220, 0x3027f: 0x6db50420, + // Block 0xc0a, offset 0x30280 + 0x30280: 0x6db50620, 0x30281: 0x6db50820, 0x30282: 0x6db50a20, 0x30283: 0x6db50c20, + 0x30284: 0x6db50e20, 0x30285: 0x6db51020, 0x30286: 0x6dd3b620, 0x30287: 0x6dd3b820, + 0x30288: 0x6dd3ba20, 0x30289: 0x6dd3bc20, 0x3028a: 0x6dd3be20, 0x3028b: 0x6dd3c020, + 0x3028c: 0x6dd3c220, 0x3028d: 0x6dd3c420, 0x3028e: 0x6dd3c620, 0x3028f: 0x6dd3c820, + 0x30290: 0x6dd3ca20, 0x30291: 0x6dd3cc20, 0x30292: 0x6db51420, 0x30293: 0x6dd3ce20, + 0x30294: 0x6db51220, 0x30295: 0x6dd3d020, 0x30296: 0x6decb020, 0x30297: 0x6decb220, + 0x30298: 0x6decb420, 0x30299: 0x6decb620, 0x3029a: 0x6decb820, 0x3029b: 0x6decba20, + 0x3029c: 0x6decbc20, 0x3029d: 0x6decbe20, 0x3029e: 0x6decc020, 0x3029f: 0x6decc220, + 0x302a0: 0x6decc420, 0x302a1: 0x6decc620, 0x302a2: 0x6decc820, 0x302a3: 0x6e01ec20, + 0x302a4: 0x6e01ee20, 0x302a5: 0x6e01f020, 0x302a6: 0x6e01f220, 0x302a7: 0x6e01f420, + 0x302a8: 0x6e01f620, 0x302a9: 0x6e13d220, 0x302aa: 0x6e13d420, 0x302ab: 0x6e13d620, + 0x302ac: 0x6e13d820, 0x302ad: 0x6e13da20, 0x302ae: 0x6e13dc20, 0x302af: 0x6e218e20, + 0x302b0: 0x6e219020, 0x302b1: 0x6e219220, 0x302b2: 0x6e219420, 0x302b3: 0x6e2c2620, + 0x302b4: 0x6e2c2820, 0x302b5: 0x6e346420, 0x302b6: 0x6e2c2a20, 0x302b7: 0x6e346620, + 0x302b8: 0x6e3a0c20, 0x302b9: 0x6e3a0e20, 0x302ba: 0x6e3a1020, 0x302bb: 0x6e3a1220, + 0x302bc: 0x6e3a1420, 0x302bd: 0x6e40fc20, 0x302be: 0x6c14d420, 0x302bf: 0x6c14d620, + // Block 0xc0b, offset 0x302c0 + 0x302c0: 0x6c14d820, 0x302c1: 0x6c606620, 0x302c2: 0x6cafe420, 0x302c3: 0x6cdefe20, + 0x302c4: 0x6cdf0020, 0x302c5: 0x6d0d7620, 0x302c6: 0x6dd40e20, 0x302c7: 0x6decfe20, + 0x302c8: 0x6ded0020, 0x302c9: 0x6e2c3820, 0x302ca: 0x6e3a2020, 0x302cb: 0x6c26a020, + 0x302cc: 0x6c606e20, 0x302cd: 0x6c862e20, 0x302ce: 0x6c863020, 0x302cf: 0x6caff420, + 0x302d0: 0x6caff620, 0x302d1: 0x6caff820, 0x302d2: 0x6caffa20, 0x302d3: 0x6caffc20, + 0x302d4: 0x6caffe20, 0x302d5: 0x6cdf1220, 0x302d6: 0x6ca6aa20, 0x302d7: 0x6cdf1420, + 0x302d8: 0x6cdf1620, 0x302d9: 0x6cdf0820, 0x302da: 0x6cdf1820, 0x302db: 0x6d0d8020, + 0x302dc: 0x6d0d8220, 0x302dd: 0x6d3bf020, 0x302de: 0x6d3bf220, 0x302df: 0x6d3bf420, + 0x302e0: 0x6d3bf620, 0x302e1: 0x6d3bf820, 0x302e2: 0x6d67fc20, 0x302e3: 0x6d67fe20, + 0x302e4: 0x6d680020, 0x302e5: 0x6d680220, 0x302e6: 0x6d91ca20, 0x302e7: 0x6d91cc20, + 0x302e8: 0x6d91ce20, 0x302e9: 0x6d683220, 0x302ea: 0x6d91d020, 0x302eb: 0x6db58620, + 0x302ec: 0x6db58820, 0x302ed: 0x6db58a20, 0x302ee: 0x6db58c20, 0x302ef: 0x6db58e20, + 0x302f0: 0x6dd41820, 0x302f1: 0x6dd41a20, 0x302f2: 0x6dd41c20, 0x302f3: 0x6dd41e20, + 0x302f4: 0x6ded0e20, 0x302f5: 0x6ded1020, 0x302f6: 0x6ded1220, 0x302f7: 0x6ded1420, + 0x302f8: 0x6ded1620, 0x302f9: 0x6e021a20, 0x302fa: 0x6e021c20, 0x302fb: 0x6e021e20, + 0x302fc: 0x6e13fe20, 0x302fd: 0x6e140020, 0x302fe: 0x6e21a220, 0x302ff: 0x6e21a420, + // Block 0xc0c, offset 0x30300 + 0x30300: 0x6e3a2420, 0x30301: 0x6c050c20, 0x30302: 0x6c14da20, 0x30303: 0x6c26a220, + 0x30304: 0x6c407220, 0x30305: 0x6c407420, 0x30306: 0x6c5adc20, 0x30307: 0x6c607220, + 0x30308: 0x6c607420, 0x30309: 0x6c607620, 0x3030a: 0x6c863e20, 0x3030b: 0x6cb01c20, + 0x3030c: 0x6cdf3420, 0x3030d: 0x6cdf3620, 0x3030e: 0x6d0dac20, 0x3030f: 0x6d3c1e20, + 0x30310: 0x6d683420, 0x30311: 0x6d683620, 0x30312: 0x6c26a620, 0x30313: 0x6c607c20, + 0x30314: 0x6c607e20, 0x30315: 0x6cb02020, 0x30316: 0x6cb02220, 0x30317: 0x6cb02420, + 0x30318: 0x6cb02620, 0x30319: 0x6cb02820, 0x3031a: 0x6cdf3820, 0x3031b: 0x6cdf3a20, + 0x3031c: 0x6d0db620, 0x3031d: 0x6cdf3c20, 0x3031e: 0x6cdf3e20, 0x3031f: 0x6d0db820, + 0x30320: 0x6d0dba20, 0x30321: 0x6d0dbc20, 0x30322: 0x6d0dbe20, 0x30323: 0x6d0dc020, + 0x30324: 0x6d0dc220, 0x30325: 0x6d0dc420, 0x30326: 0x6d0dc620, 0x30327: 0x6d0dc820, + 0x30328: 0x6d3c2220, 0x30329: 0x6d3c2420, 0x3032a: 0x6d3c2620, 0x3032b: 0x6d3c2820, + 0x3032c: 0x6d684420, 0x3032d: 0x6d684620, 0x3032e: 0x6d684820, 0x3032f: 0x6d684a20, + 0x30330: 0x6d687a20, 0x30331: 0x6d920a20, 0x30332: 0x6db5ac20, 0x30333: 0x6db5ae20, + 0x30334: 0x6dd43820, 0x30335: 0x6ded2a20, 0x30336: 0x6ded2c20, 0x30337: 0x6e023220, + 0x30338: 0x6e023420, 0x30339: 0x6e023620, 0x3033a: 0x6e140a20, 0x3033b: 0x6e21b420, + 0x3033c: 0x6e21b620, 0x3033d: 0x6e2c3c20, 0x3033e: 0x6e2c3e20, 0x3033f: 0x6e3a3820, + // Block 0xc0d, offset 0x30340 + 0x30340: 0x6c26aa20, 0x30341: 0x6c26ac20, 0x30342: 0x6c608c20, 0x30343: 0x6c608e20, + 0x30344: 0x6c609020, 0x30345: 0x6c609220, 0x30346: 0x6c609420, 0x30347: 0x6c609620, + 0x30348: 0x6c609820, 0x30349: 0x6c864e20, 0x3034a: 0x6c865020, 0x3034b: 0x6c865220, + 0x3034c: 0x6c865420, 0x3034d: 0x6c865620, 0x3034e: 0x6c865820, 0x3034f: 0x6c865a20, + 0x30350: 0x6c865c20, 0x30351: 0x6c865e20, 0x30352: 0x6c866020, 0x30353: 0x6c866220, + 0x30354: 0x6c866420, 0x30355: 0x6c866620, 0x30356: 0x6c866820, 0x30357: 0x6c866a20, + 0x30358: 0x6c866c20, 0x30359: 0x6c866e20, 0x3035a: 0x6c867020, 0x3035b: 0x6cb07820, + 0x3035c: 0x6cb07a20, 0x3035d: 0x6cb07c20, 0x3035e: 0x6cb07e20, 0x3035f: 0x6cb08020, + 0x30360: 0x6cb08220, 0x30361: 0x6cb08420, 0x30362: 0x6cb08620, 0x30363: 0x6cb08820, + 0x30364: 0x6cb08a20, 0x30365: 0x6cb08c20, 0x30366: 0x6cb08e20, 0x30367: 0x6cb09020, + 0x30368: 0x6cb09220, 0x30369: 0x6cb09420, 0x3036a: 0x6cb09620, 0x3036b: 0x6cb09820, + 0x3036c: 0x6cb09a20, 0x3036d: 0x6cb09c20, 0x3036e: 0x6cb09e20, 0x3036f: 0x6cb0a020, + 0x30370: 0x6cb0a220, 0x30371: 0x6cb0a420, 0x30372: 0x6cb0a620, 0x30373: 0x6cb0a820, + 0x30374: 0x6cdf8020, 0x30375: 0x6cdf8220, 0x30376: 0x6cdf8420, 0x30377: 0x6cdf8620, + 0x30378: 0x6cdf8820, 0x30379: 0x6cdf8a20, 0x3037a: 0x6cdf8c20, 0x3037b: 0x6cdf8e20, + 0x3037c: 0x6cdf9020, 0x3037d: 0x6cdf9220, 0x3037e: 0x6d0ddc20, 0x3037f: 0x6d0dde20, + // Block 0xc0e, offset 0x30380 + 0x30380: 0x6cdf9420, 0x30381: 0x6cdf9620, 0x30382: 0x6cdf9820, 0x30383: 0x6cdf9a20, + 0x30384: 0x6cdf9c20, 0x30385: 0x6cdf9e20, 0x30386: 0x6cdfa020, 0x30387: 0x6cdfa220, + 0x30388: 0x6cdfa420, 0x30389: 0x6cdfa620, 0x3038a: 0x6cdfa820, 0x3038b: 0x6cdfaa20, + 0x3038c: 0x6cdfac20, 0x3038d: 0x6cdfae20, 0x3038e: 0x6cdfb020, 0x3038f: 0x6cdfb220, + 0x30390: 0x6cdfb420, 0x30391: 0x6cdfb620, 0x30392: 0x6cdfb820, 0x30393: 0x6cdfba20, + 0x30394: 0x6cdfbc20, 0x30395: 0x6cdfbe20, 0x30396: 0x6cdfc020, 0x30397: 0x6cdfc220, + 0x30398: 0x6cdfc420, 0x30399: 0x6cdfc620, 0x3039a: 0x6cdfc820, 0x3039b: 0x6cdfca20, + 0x3039c: 0x6cdfcc20, 0x3039d: 0x6cdfce20, 0x3039e: 0x6cdfd020, 0x3039f: 0x6cdfd220, + 0x303a0: 0x6cdfd420, 0x303a1: 0x6d0df220, 0x303a2: 0x6d0df420, 0x303a3: 0x6d0df620, + 0x303a4: 0x6d0df820, 0x303a5: 0x6d0dfa20, 0x303a6: 0x6d0dfc20, 0x303a7: 0x6d0dfe20, + 0x303a8: 0x6d0e0020, 0x303a9: 0x6d0e0220, 0x303aa: 0x6d0e0420, 0x303ab: 0x6d0e0620, + 0x303ac: 0x6d0e0820, 0x303ad: 0x6d0e0a20, 0x303ae: 0x6d0e0c20, 0x303af: 0x6d0e0e20, + 0x303b0: 0x6d0e1020, 0x303b1: 0x6d0e1220, 0x303b2: 0x6d0e1420, 0x303b3: 0x6d0e1620, + 0x303b4: 0x6d0e1820, 0x303b5: 0x6d0e1a20, 0x303b6: 0x6d0e1c20, 0x303b7: 0x6d0e1e20, + 0x303b8: 0x6d0e2020, 0x303b9: 0x6d0e2220, 0x303ba: 0x6d0e2420, 0x303bb: 0x6d0e2620, + 0x303bc: 0x6d0e2820, 0x303bd: 0x6d0e2a20, 0x303be: 0x6d0e2c20, 0x303bf: 0x6d0e2e20, + // Block 0xc0f, offset 0x303c0 + 0x303c0: 0x6d0e3020, 0x303c1: 0x6d0e3220, 0x303c2: 0x6d0e3420, 0x303c3: 0x6d0e3620, + 0x303c4: 0x6d0e3820, 0x303c5: 0x6d0e3a20, 0x303c6: 0x6d0e3c20, 0x303c7: 0x6d0e3e20, + 0x303c8: 0x6d0e4020, 0x303c9: 0x6d0e4220, 0x303ca: 0x6d0e4420, 0x303cb: 0x6d3c5a20, + 0x303cc: 0x6d3c5c20, 0x303cd: 0x6d3c5e20, 0x303ce: 0x6d3c6020, 0x303cf: 0x6d3c6220, + 0x303d0: 0x6d3c6420, 0x303d1: 0x6d3c6620, 0x303d2: 0x6d3c6820, 0x303d3: 0x6d3c6a20, + 0x303d4: 0x6d3c6c20, 0x303d5: 0x6d687c20, 0x303d6: 0x6d3c6e20, 0x303d7: 0x6d3c7020, + 0x303d8: 0x6d3c7220, 0x303d9: 0x6d3c7420, 0x303da: 0x6d3c7620, 0x303db: 0x6d3c7820, + 0x303dc: 0x6d3c7a20, 0x303dd: 0x6d3c7c20, 0x303de: 0x6d3c7e20, 0x303df: 0x6d3c8020, + 0x303e0: 0x6d0e4620, 0x303e1: 0x6d3c8220, 0x303e2: 0x6d3c8420, 0x303e3: 0x6d3c8620, + 0x303e4: 0x6d3c8820, 0x303e5: 0x6d3c8a20, 0x303e6: 0x6d3c8c20, 0x303e7: 0x6d3c8e20, + 0x303e8: 0x6d3c9020, 0x303e9: 0x6d3c9220, 0x303ea: 0x6d3c9420, 0x303eb: 0x6d3c9620, + 0x303ec: 0x6d3c9820, 0x303ed: 0x6d3c9a20, 0x303ee: 0x6d3c9c20, 0x303ef: 0x6d689e20, + 0x303f0: 0x6d68a020, 0x303f1: 0x6d68a220, 0x303f2: 0x6d68a420, 0x303f3: 0x6d68a620, + 0x303f4: 0x6d68a820, 0x303f5: 0x6d68aa20, 0x303f6: 0x6d68ac20, 0x303f7: 0x6d68ae20, + 0x303f8: 0x6d68b020, 0x303f9: 0x6d68b220, 0x303fa: 0x6d68b420, 0x303fb: 0x6d68b620, + 0x303fc: 0x6d68b820, 0x303fd: 0x6d68ba20, 0x303fe: 0x6d68bc20, 0x303ff: 0x6d68be20, + // Block 0xc10, offset 0x30400 + 0x30400: 0x6d68c020, 0x30401: 0x6d68c220, 0x30402: 0x6d68c420, 0x30403: 0x6d68c620, + 0x30404: 0x6d68c820, 0x30405: 0x6d68ca20, 0x30406: 0x6d68cc20, 0x30407: 0x6d68ce20, + 0x30408: 0x6d68d020, 0x30409: 0x6d68d220, 0x3040a: 0x6d68d420, 0x3040b: 0x6d68d620, + 0x3040c: 0x6d68d820, 0x3040d: 0x6d68da20, 0x3040e: 0x6d68dc20, 0x3040f: 0x6d68de20, + 0x30410: 0x6d68e020, 0x30411: 0x6d68e220, 0x30412: 0x6d68e420, 0x30413: 0x6d68e620, + 0x30414: 0x6d68e820, 0x30415: 0x6d68ea20, 0x30416: 0x6d68ec20, 0x30417: 0x6d68ee20, + 0x30418: 0x6d68f020, 0x30419: 0x6d68f220, 0x3041a: 0x6d68f420, 0x3041b: 0x6d697620, + 0x3041c: 0x6d923c20, 0x3041d: 0x6d923e20, 0x3041e: 0x6d924020, 0x3041f: 0x6d924220, + 0x30420: 0x6d924420, 0x30421: 0x6d924620, 0x30422: 0x6d924820, 0x30423: 0x6d924a20, + 0x30424: 0x6d924c20, 0x30425: 0x6d924e20, 0x30426: 0x6d925020, 0x30427: 0x6d925220, + 0x30428: 0x6d925420, 0x30429: 0x6d68f620, 0x3042a: 0x6d925620, 0x3042b: 0x6d925820, + 0x3042c: 0x6d925a20, 0x3042d: 0x6d925c20, 0x3042e: 0x6d925e20, 0x3042f: 0x6d926020, + 0x30430: 0x6d926220, 0x30431: 0x6d926420, 0x30432: 0x6d926620, 0x30433: 0x6d926820, + 0x30434: 0x6d926a20, 0x30435: 0x6d926c20, 0x30436: 0x6d926e20, 0x30437: 0x6d927020, + 0x30438: 0x6d697820, 0x30439: 0x6d927220, 0x3043a: 0x6d927420, 0x3043b: 0x6d927620, + 0x3043c: 0x6d927820, 0x3043d: 0x6d927a20, 0x3043e: 0x6d927c20, 0x3043f: 0x6d927e20, + // Block 0xc11, offset 0x30440 + 0x30440: 0x6d928020, 0x30441: 0x6d928220, 0x30442: 0x6d928420, 0x30443: 0x6d928620, + 0x30444: 0x6db5e020, 0x30445: 0x6db5e220, 0x30446: 0x6db5e420, 0x30447: 0x6db5e620, + 0x30448: 0x6db5e820, 0x30449: 0x6db5ea20, 0x3044a: 0x6db5ec20, 0x3044b: 0x6db5ee20, + 0x3044c: 0x6db5f020, 0x3044d: 0x6db5f220, 0x3044e: 0x6db5f420, 0x3044f: 0x6db5f620, + 0x30450: 0x6db5f820, 0x30451: 0x6db5fa20, 0x30452: 0x6db5fc20, 0x30453: 0x6db5fe20, + 0x30454: 0x6d92fc20, 0x30455: 0x6db60020, 0x30456: 0x6db60220, 0x30457: 0x6db60420, + 0x30458: 0x6db60620, 0x30459: 0x6db60820, 0x3045a: 0x6db60a20, 0x3045b: 0x6db60c20, + 0x3045c: 0x6db60e20, 0x3045d: 0x6db61020, 0x3045e: 0x6db61220, 0x3045f: 0x6db61420, + 0x30460: 0x6db61620, 0x30461: 0x6db61820, 0x30462: 0x6db61a20, 0x30463: 0x6dd46220, + 0x30464: 0x6dd46420, 0x30465: 0x6dd46620, 0x30466: 0x6dd46820, 0x30467: 0x6dd46a20, + 0x30468: 0x6dd46c20, 0x30469: 0x6dd46e20, 0x3046a: 0x6dd47020, 0x3046b: 0x6dd47220, + 0x3046c: 0x6dd47420, 0x3046d: 0x6dd47620, 0x3046e: 0x6dd47820, 0x3046f: 0x6dd47a20, + 0x30470: 0x6dd47c20, 0x30471: 0x6dd47e20, 0x30472: 0x6dd48020, 0x30473: 0x6dd48220, + 0x30474: 0x6dd48420, 0x30475: 0x6dd48620, 0x30476: 0x6dd48820, 0x30477: 0x6dd48a20, + 0x30478: 0x6dd48c20, 0x30479: 0x6dd48e20, 0x3047a: 0x6dd49020, 0x3047b: 0x6dd49220, + 0x3047c: 0x6dd49420, 0x3047d: 0x6dd49620, 0x3047e: 0x6dd49820, 0x3047f: 0x6ded5020, + // Block 0xc12, offset 0x30480 + 0x30480: 0x6ded5220, 0x30481: 0x6ded5420, 0x30482: 0x6ded5620, 0x30483: 0x6ded5820, + 0x30484: 0x6ded5a20, 0x30485: 0x6e141420, 0x30486: 0x6ded5c20, 0x30487: 0x6dd4fa20, + 0x30488: 0x6ded5e20, 0x30489: 0x6ded6020, 0x3048a: 0x6ded6220, 0x3048b: 0x6ded6420, + 0x3048c: 0x6ded6620, 0x3048d: 0x6e024e20, 0x3048e: 0x6ded6820, 0x3048f: 0x6ded6a20, + 0x30490: 0x6ded6c20, 0x30491: 0x6ded6e20, 0x30492: 0x6ded7020, 0x30493: 0x6ded7220, + 0x30494: 0x6ded7420, 0x30495: 0x6ded7620, 0x30496: 0x6ded7820, 0x30497: 0x6ded7a20, + 0x30498: 0x6ded7c20, 0x30499: 0x6ded7e20, 0x3049a: 0x6ded8020, 0x3049b: 0x6ded8220, + 0x3049c: 0x6ded8420, 0x3049d: 0x6e025020, 0x3049e: 0x6e025220, 0x3049f: 0x6e025420, + 0x304a0: 0x6e025620, 0x304a1: 0x6e025820, 0x304a2: 0x6e025a20, 0x304a3: 0x6e025c20, + 0x304a4: 0x6e025e20, 0x304a5: 0x6e026020, 0x304a6: 0x6e026220, 0x304a7: 0x6e026420, + 0x304a8: 0x6e026620, 0x304a9: 0x6e026820, 0x304aa: 0x6e026a20, 0x304ab: 0x6e026c20, + 0x304ac: 0x6e026e20, 0x304ad: 0x6e027020, 0x304ae: 0x6e027220, 0x304af: 0x6e027420, + 0x304b0: 0x6e027620, 0x304b1: 0x6e027820, 0x304b2: 0x6e027a20, 0x304b3: 0x6e142220, + 0x304b4: 0x6e142420, 0x304b5: 0x6e142620, 0x304b6: 0x6e142820, 0x304b7: 0x6e142a20, + 0x304b8: 0x6e142c20, 0x304b9: 0x6e142e20, 0x304ba: 0x6e143020, 0x304bb: 0x6e143220, + 0x304bc: 0x6e143420, 0x304bd: 0x6e143620, 0x304be: 0x6e21c820, 0x304bf: 0x6e21ca20, + // Block 0xc13, offset 0x304c0 + 0x304c0: 0x6e21cc20, 0x304c1: 0x6e21ce20, 0x304c2: 0x6e21d020, 0x304c3: 0x6e21d220, + 0x304c4: 0x6e21d420, 0x304c5: 0x6e21d620, 0x304c6: 0x6e221420, 0x304c7: 0x6e2c4620, + 0x304c8: 0x6e2c4820, 0x304c9: 0x6e2c4a20, 0x304ca: 0x6e2c4c20, 0x304cb: 0x6e2c4e20, + 0x304cc: 0x6e2c5020, 0x304cd: 0x6e2c5220, 0x304ce: 0x6e2c5420, 0x304cf: 0x6e2c5620, + 0x304d0: 0x6e2c5820, 0x304d1: 0x6e347c20, 0x304d2: 0x6e347e20, 0x304d3: 0x6e348020, + 0x304d4: 0x6e348220, 0x304d5: 0x6e348420, 0x304d6: 0x6e348620, 0x304d7: 0x6e3a3c20, + 0x304d8: 0x6e3a3e20, 0x304d9: 0x6e3a4020, 0x304da: 0x6e3e3420, 0x304db: 0x6e3e3620, + 0x304dc: 0x6e410420, 0x304dd: 0x6e410620, 0x304de: 0x6e410820, 0x304df: 0x6e448020, + 0x304e0: 0x6c00c820, 0x304e1: 0x6c050e20, 0x304e2: 0x6c051020, 0x304e3: 0x6c051220, + 0x304e4: 0x6c051420, 0x304e5: 0x6c051620, 0x304e6: 0x6c0a6420, 0x304e7: 0x6c0a6620, + 0x304e8: 0x6c0a6820, 0x304e9: 0x6c0a6a20, 0x304ea: 0x6c0a6c20, 0x304eb: 0x6c0a6e20, + 0x304ec: 0x6c0a7020, 0x304ed: 0x6c0a7220, 0x304ee: 0x6c0a7420, 0x304ef: 0x6c0a7620, + 0x304f0: 0x6c0a7820, 0x304f1: 0x6c0a7a20, 0x304f2: 0x6c14dc20, 0x304f3: 0x6c14de20, + 0x304f4: 0x6c14e020, 0x304f5: 0x6c14e220, 0x304f6: 0x6c14e420, 0x304f7: 0x6c14e620, + 0x304f8: 0x6c14e820, 0x304f9: 0x6c14ea20, 0x304fa: 0x6c14ec20, 0x304fb: 0x6c14ee20, + 0x304fc: 0x6c14f020, 0x304fd: 0x6c14f220, 0x304fe: 0x6c14f420, 0x304ff: 0x6c14f620, + // Block 0xc14, offset 0x30500 + 0x30500: 0x6c14f820, 0x30501: 0x6c26b220, 0x30502: 0x6c26b420, 0x30503: 0x6c26b620, + 0x30504: 0x6c26b820, 0x30505: 0x6c26ba20, 0x30506: 0x6c26bc20, 0x30507: 0x6c26be20, + 0x30508: 0x6c26c020, 0x30509: 0x6c26c220, 0x3050a: 0x6c26c420, 0x3050b: 0x6c26c620, + 0x3050c: 0x6c26c820, 0x3050d: 0x6c26ca20, 0x3050e: 0x6c26cc20, 0x3050f: 0x6c26ce20, + 0x30510: 0x6c26d020, 0x30511: 0x6c26d220, 0x30512: 0x6c26d420, 0x30513: 0x6c407e20, + 0x30514: 0x6c408020, 0x30515: 0x6c408220, 0x30516: 0x6c408420, 0x30517: 0x6c408620, + 0x30518: 0x6c408820, 0x30519: 0x6c408a20, 0x3051a: 0x6c408c20, 0x3051b: 0x6c408e20, + 0x3051c: 0x6c409020, 0x3051d: 0x6c409220, 0x3051e: 0x6c409420, 0x3051f: 0x6c409620, + 0x30520: 0x6c409820, 0x30521: 0x6c409a20, 0x30522: 0x6c409c20, 0x30523: 0x6c409e20, + 0x30524: 0x6c40a020, 0x30525: 0x6c40a220, 0x30526: 0x6c40a420, 0x30527: 0x6c40a620, + 0x30528: 0x6c40a820, 0x30529: 0x6c40aa20, 0x3052a: 0x6c609c20, 0x3052b: 0x6c609e20, + 0x3052c: 0x6c60a020, 0x3052d: 0x6c60a220, 0x3052e: 0x6c60a420, 0x3052f: 0x6c60a620, + 0x30530: 0x6c60a820, 0x30531: 0x6c60aa20, 0x30532: 0x6c60ac20, 0x30533: 0x6c60ae20, + 0x30534: 0x6c60b020, 0x30535: 0x6c60b220, 0x30536: 0x6c60b420, 0x30537: 0x6c869020, + 0x30538: 0x6c869220, 0x30539: 0x6c869420, 0x3053a: 0x6c869620, 0x3053b: 0x6c869820, + 0x3053c: 0x6c869a20, 0x3053d: 0x6c869c20, 0x3053e: 0x6c869e20, 0x3053f: 0x6c86a020, + // Block 0xc15, offset 0x30540 + 0x30540: 0x6c86a220, 0x30541: 0x6c86a420, 0x30542: 0x6c86a620, 0x30543: 0x6c86a820, + 0x30544: 0x6c86aa20, 0x30545: 0x6c86ac20, 0x30546: 0x6c86ae20, 0x30547: 0x6c86b020, + 0x30548: 0x6c86b220, 0x30549: 0x6c86b420, 0x3054a: 0x6c86b620, 0x3054b: 0x6cb10c20, + 0x3054c: 0x6cb10e20, 0x3054d: 0x6cb11020, 0x3054e: 0x6cb11220, 0x3054f: 0x6cb11420, + 0x30550: 0x6cb11620, 0x30551: 0x6cb11820, 0x30552: 0x6cb11a20, 0x30553: 0x6cb11c20, + 0x30554: 0x6cb11e20, 0x30555: 0x6cb12020, 0x30556: 0x6cb12220, 0x30557: 0x6cb12420, + 0x30558: 0x6cb12620, 0x30559: 0x6cb12820, 0x3055a: 0x6cb12a20, 0x3055b: 0x6cb12c20, + 0x3055c: 0x6cb12e20, 0x3055d: 0x6cb13020, 0x3055e: 0x6cb13220, 0x3055f: 0x6ce02c20, + 0x30560: 0x6ce02e20, 0x30561: 0x6ce03020, 0x30562: 0x6ce03220, 0x30563: 0x6ce03420, + 0x30564: 0x6ce03620, 0x30565: 0x6ce03820, 0x30566: 0x6ce03a20, 0x30567: 0x6ce03c20, + 0x30568: 0x6d0eb420, 0x30569: 0x6d0eb620, 0x3056a: 0x6d0eb820, 0x3056b: 0x6d0eba20, + 0x3056c: 0x6d0ebc20, 0x3056d: 0x6d3d0620, 0x3056e: 0x6d3d0820, 0x3056f: 0x6d3d0a20, + 0x30570: 0x6d3d0c20, 0x30571: 0x6d3d0e20, 0x30572: 0x6d3d1020, 0x30573: 0x6d697c20, + 0x30574: 0x6d697e20, 0x30575: 0x6d698020, 0x30576: 0x6dede020, 0x30577: 0x6c26e620, + 0x30578: 0x6c86c620, 0x30579: 0x6cb14020, 0x3057a: 0x6cb14220, 0x3057b: 0x6cb14420, + 0x3057c: 0x6d0ec220, 0x3057d: 0x6d3d1820, 0x3057e: 0x6d698620, 0x3057f: 0x6db6a020, + // Block 0xc16, offset 0x30580 + 0x30580: 0x6db6a220, 0x30581: 0x6db6a420, 0x30582: 0x6dd50020, 0x30583: 0x6dede220, + 0x30584: 0x6e221820, 0x30585: 0x6e2c7820, 0x30586: 0x6c26ea20, 0x30587: 0x6c86ce20, + 0x30588: 0x6c86d020, 0x30589: 0x6cb15220, 0x3058a: 0x6d0ecc20, 0x3058b: 0x6d0ece20, + 0x3058c: 0x6d699820, 0x3058d: 0x6d699a20, 0x3058e: 0x6d699c20, 0x3058f: 0x6db6b420, + 0x30590: 0x6dd50420, 0x30591: 0x6e02ba20, 0x30592: 0x6e3a5620, 0x30593: 0x6e411420, + 0x30594: 0x6e431e20, 0x30595: 0x6c26ec20, 0x30596: 0x6c40b820, 0x30597: 0x6c86da20, + 0x30598: 0x6cb15c20, 0x30599: 0x6cb15e20, 0x3059a: 0x6cb16020, 0x3059b: 0x6cb16220, + 0x3059c: 0x6cb16420, 0x3059d: 0x6cb16620, 0x3059e: 0x6ce05e20, 0x3059f: 0x6ce06020, + 0x305a0: 0x6ce06220, 0x305a1: 0x6ce06420, 0x305a2: 0x6d0ed820, 0x305a3: 0x6d0eda20, + 0x305a4: 0x6d0edc20, 0x305a5: 0x6d0ede20, 0x305a6: 0x6d0ee020, 0x305a7: 0x6d3d2c20, + 0x305a8: 0x6d3d2e20, 0x305a9: 0x6d3d3020, 0x305aa: 0x6d3d3220, 0x305ab: 0x6d932420, + 0x305ac: 0x6d69da20, 0x305ad: 0x6d932620, 0x305ae: 0x6d932820, 0x305af: 0x6db6c620, + 0x305b0: 0x6db6c820, 0x305b1: 0x6db6ca20, 0x305b2: 0x6db6cc20, 0x305b3: 0x6db6ce20, + 0x305b4: 0x6dd51620, 0x305b5: 0x6dd51820, 0x305b6: 0x6dee1620, 0x305b7: 0x6dee0a20, + 0x305b8: 0x6c26f220, 0x305b9: 0x6c86e420, 0x305ba: 0x6c86e620, 0x305bb: 0x6c86e820, + 0x305bc: 0x6cb18020, 0x305bd: 0x6cb18220, 0x305be: 0x6ce07e20, 0x305bf: 0x6ce08020, + // Block 0xc17, offset 0x305c0 + 0x305c0: 0x6ce08220, 0x305c1: 0x6ce08420, 0x305c2: 0x6ce08620, 0x305c3: 0x6ce08820, + 0x305c4: 0x6d0efe20, 0x305c5: 0x6d0f0020, 0x305c6: 0x6d0f0220, 0x305c7: 0x6d0f0420, + 0x305c8: 0x6d0f0620, 0x305c9: 0x6d0f0820, 0x305ca: 0x6d0f0a20, 0x305cb: 0x6d3d5020, + 0x305cc: 0x6d3d5220, 0x305cd: 0x6d3d5420, 0x305ce: 0x6d69e020, 0x305cf: 0x6d69e220, + 0x305d0: 0x6d934220, 0x305d1: 0x6d934420, 0x305d2: 0x6d934620, 0x305d3: 0x6d934820, + 0x305d4: 0x6db6e420, 0x305d5: 0x6db6e620, 0x305d6: 0x6db6e820, 0x305d7: 0x6dd52c20, + 0x305d8: 0x6dd52e20, 0x305d9: 0x6dd53020, 0x305da: 0x6dee2020, 0x305db: 0x6e3a6620, + 0x305dc: 0x6e411c20, 0x305dd: 0x6c26f420, 0x305de: 0x6c60c820, 0x305df: 0x6c60ca20, + 0x305e0: 0x6c60cc20, 0x305e1: 0x6c86f020, 0x305e2: 0x6c86f220, 0x305e3: 0x6c86f420, + 0x305e4: 0x6c86f620, 0x305e5: 0x6cb19820, 0x305e6: 0x6cb19a20, 0x305e7: 0x6cb19c20, + 0x305e8: 0x6cb19e20, 0x305e9: 0x6cb1a020, 0x305ea: 0x6cb1a220, 0x305eb: 0x6cb1a420, + 0x305ec: 0x6cb1a620, 0x305ed: 0x6cb1a820, 0x305ee: 0x6cb1aa20, 0x305ef: 0x6ce0bc20, + 0x305f0: 0x6ce0be20, 0x305f1: 0x6ce0c020, 0x305f2: 0x6d0f2620, 0x305f3: 0x6ce0c220, + 0x305f4: 0x6ce0c420, 0x305f5: 0x6ce0c620, 0x305f6: 0x6ce0c820, 0x305f7: 0x6ce0ca20, + 0x305f8: 0x6ce0cc20, 0x305f9: 0x6ce0ce20, 0x305fa: 0x6ce0d020, 0x305fb: 0x6ce0d220, + 0x305fc: 0x6ce0d420, 0x305fd: 0x6ce0d620, 0x305fe: 0x6ce0d820, 0x305ff: 0x6ce0da20, + // Block 0xc18, offset 0x30600 + 0x30600: 0x6ce0dc20, 0x30601: 0x6ce0de20, 0x30602: 0x6d0f2e20, 0x30603: 0x6d0f3020, + 0x30604: 0x6d0f3220, 0x30605: 0x6d0f3420, 0x30606: 0x6d0f3620, 0x30607: 0x6d0f3820, + 0x30608: 0x6d0f3a20, 0x30609: 0x6d0f3c20, 0x3060a: 0x6d0f3e20, 0x3060b: 0x6d0f4020, + 0x3060c: 0x6d0f4220, 0x3060d: 0x6d0f4420, 0x3060e: 0x6d0f4620, 0x3060f: 0x6d3d7c20, + 0x30610: 0x6d3d7e20, 0x30611: 0x6d3d8020, 0x30612: 0x6d3d8220, 0x30613: 0x6d3d8420, + 0x30614: 0x6d3d8620, 0x30615: 0x6d3d8820, 0x30616: 0x6d3d8a20, 0x30617: 0x6d3d8c20, + 0x30618: 0x6d3d8e20, 0x30619: 0x6d6a1420, 0x3061a: 0x6d6a1620, 0x3061b: 0x6d6a1820, + 0x3061c: 0x6d6a1a20, 0x3061d: 0x6d6a1c20, 0x3061e: 0x6d6a1e20, 0x3061f: 0x6d6a2020, + 0x30620: 0x6d6a2220, 0x30621: 0x6d6a2420, 0x30622: 0x6d6a2620, 0x30623: 0x6d6a2820, + 0x30624: 0x6d6a2a20, 0x30625: 0x6d6a2c20, 0x30626: 0x6d6a2e20, 0x30627: 0x6d6a3020, + 0x30628: 0x6d6a3220, 0x30629: 0x6d6a3420, 0x3062a: 0x6d6a3620, 0x3062b: 0x6d6a3820, + 0x3062c: 0x6d6a3a20, 0x3062d: 0x6d6a6c20, 0x3062e: 0x6d937220, 0x3062f: 0x6d937420, + 0x30630: 0x6d937620, 0x30631: 0x6d937820, 0x30632: 0x6d937a20, 0x30633: 0x6d937c20, + 0x30634: 0x6d937e20, 0x30635: 0x6d938020, 0x30636: 0x6db70820, 0x30637: 0x6db70a20, + 0x30638: 0x6db70c20, 0x30639: 0x6db70e20, 0x3063a: 0x6db71020, 0x3063b: 0x6db71220, + 0x3063c: 0x6db71420, 0x3063d: 0x6db71620, 0x3063e: 0x6dd54820, 0x3063f: 0x6dd54a20, + // Block 0xc19, offset 0x30640 + 0x30640: 0x6dd54c20, 0x30641: 0x6dc6ba20, 0x30642: 0x6dd54e20, 0x30643: 0x6dd55020, + 0x30644: 0x6dd55220, 0x30645: 0x6dd55420, 0x30646: 0x6dee3820, 0x30647: 0x6dee3a20, + 0x30648: 0x6dee3c20, 0x30649: 0x6dee3e20, 0x3064a: 0x6dee4020, 0x3064b: 0x6dee4220, + 0x3064c: 0x6dee4420, 0x3064d: 0x6e02e420, 0x3064e: 0x6e02e620, 0x3064f: 0x6e02e820, + 0x30650: 0x6e148420, 0x30651: 0x6e148620, 0x30652: 0x6e148820, 0x30653: 0x6e148a20, + 0x30654: 0x6e148c20, 0x30655: 0x6e223220, 0x30656: 0x6e223420, 0x30657: 0x6e223620, + 0x30658: 0x6e223820, 0x30659: 0x6e2c8c20, 0x3065a: 0x6e2c8e20, 0x3065b: 0x6e34b020, + 0x3065c: 0x6e3a6820, 0x3065d: 0x6c051820, 0x3065e: 0x6c150020, 0x3065f: 0x6c150220, + 0x30660: 0x6c150420, 0x30661: 0x6c26f620, 0x30662: 0x6c26f820, 0x30663: 0x6c40c020, + 0x30664: 0x6c40c220, 0x30665: 0x6c40c420, 0x30666: 0x6c40c620, 0x30667: 0x6c40c820, + 0x30668: 0x6c40ca20, 0x30669: 0x6c40cc20, 0x3066a: 0x6c40ce20, 0x3066b: 0x6c40d020, + 0x3066c: 0x6c40d220, 0x3066d: 0x6c40d420, 0x3066e: 0x6c40d620, 0x3066f: 0x6c40d820, + 0x30670: 0x6c60dc20, 0x30671: 0x6c60de20, 0x30672: 0x6c60e020, 0x30673: 0x6c60e220, + 0x30674: 0x6c60e420, 0x30675: 0x6c60e620, 0x30676: 0x6c60e820, 0x30677: 0x6c60ea20, + 0x30678: 0x6c60ec20, 0x30679: 0x6c60ee20, 0x3067a: 0x6c60f020, 0x3067b: 0x6c60f220, + 0x3067c: 0x6c871020, 0x3067d: 0x6c871220, 0x3067e: 0x6c871420, 0x3067f: 0x6c871620, + // Block 0xc1a, offset 0x30680 + 0x30680: 0x6c871820, 0x30681: 0x6c871a20, 0x30682: 0x6c871c20, 0x30683: 0x6c871e20, + 0x30684: 0x6c872020, 0x30685: 0x6c872220, 0x30686: 0x6c872420, 0x30687: 0x6cb1dc20, + 0x30688: 0x6cb1de20, 0x30689: 0x6cb1e020, 0x3068a: 0x6cb1e220, 0x3068b: 0x6ce11820, + 0x3068c: 0x6ce11a20, 0x3068d: 0x6ce11c20, 0x3068e: 0x6ce11e20, 0x3068f: 0x6ce12020, + 0x30690: 0x6ce12220, 0x30691: 0x6ce12420, 0x30692: 0x6ce12620, 0x30693: 0x6ce12820, + 0x30694: 0x6ce12a20, 0x30695: 0x6ce12c20, 0x30696: 0x6d0f9220, 0x30697: 0x6d0f9420, + 0x30698: 0x6d3dc220, 0x30699: 0x6d3dc420, 0x3069a: 0x6d3dc620, 0x3069b: 0x6d3dc820, + 0x3069c: 0x6d6a7220, 0x3069d: 0x6d93c220, 0x3069e: 0x6d93c420, 0x3069f: 0x6d93c620, + 0x306a0: 0x6d93c820, 0x306a1: 0x6db74020, 0x306a2: 0x6db74220, 0x306a3: 0x6e14a420, + 0x306a4: 0x6c26fa20, 0x306a5: 0x6cb1e820, 0x306a6: 0x6cb1ea20, 0x306a7: 0x6cb1ec20, + 0x306a8: 0x6d0f9a20, 0x306a9: 0x6d0f9c20, 0x306aa: 0x6d0f9e20, 0x306ab: 0x6d3dce20, + 0x306ac: 0x6d93cc20, 0x306ad: 0x6d6a8220, 0x306ae: 0x6d93ce20, 0x306af: 0x6db74420, + 0x306b0: 0x6c26fc20, 0x306b1: 0x6c150620, 0x306b2: 0x6c60fe20, 0x306b3: 0x6c610020, + 0x306b4: 0x6c610220, 0x306b5: 0x6c610420, 0x306b6: 0x6c872e20, 0x306b7: 0x6c873020, + 0x306b8: 0x6c873220, 0x306b9: 0x6cb1fa20, 0x306ba: 0x6cb1fc20, 0x306bb: 0x6cb1fe20, + 0x306bc: 0x6cb20020, 0x306bd: 0x6cb20220, 0x306be: 0x6cb20420, 0x306bf: 0x6cb20620, + // Block 0xc1b, offset 0x306c0 + 0x306c0: 0x6ce14e20, 0x306c1: 0x6ce15020, 0x306c2: 0x6ce15220, 0x306c3: 0x6ce15420, + 0x306c4: 0x6ce15620, 0x306c5: 0x6ce15820, 0x306c6: 0x6ce15a20, 0x306c7: 0x6ce15c20, + 0x306c8: 0x6ce15e20, 0x306c9: 0x6ce16020, 0x306ca: 0x6ce16220, 0x306cb: 0x6ce16420, + 0x306cc: 0x6d0fb420, 0x306cd: 0x6d0fb620, 0x306ce: 0x6d0fb820, 0x306cf: 0x6d0fba20, + 0x306d0: 0x6d0fbc20, 0x306d1: 0x6d0fbe20, 0x306d2: 0x6d0fc020, 0x306d3: 0x6d0fc220, + 0x306d4: 0x6d0fc420, 0x306d5: 0x6d3de820, 0x306d6: 0x6d3dea20, 0x306d7: 0x6d3dec20, + 0x306d8: 0x6d3dee20, 0x306d9: 0x6d3df020, 0x306da: 0x6d3df220, 0x306db: 0x6d6a9020, + 0x306dc: 0x6d6a9220, 0x306dd: 0x6d6a9420, 0x306de: 0x6d6a9620, 0x306df: 0x6d6a9820, + 0x306e0: 0x6d6a9a20, 0x306e1: 0x6d6a9c20, 0x306e2: 0x6d6a9e20, 0x306e3: 0x6d6aa020, + 0x306e4: 0x6d6aa220, 0x306e5: 0x6d93e420, 0x306e6: 0x6d93e620, 0x306e7: 0x6d93e820, + 0x306e8: 0x6db75620, 0x306e9: 0x6dd5dc20, 0x306ea: 0x6dee8820, 0x306eb: 0x6dee8a20, + 0x306ec: 0x6dee8c20, 0x306ed: 0x6dee8e20, 0x306ee: 0x6e031220, 0x306ef: 0x6e14b020, + 0x306f0: 0x6e14b220, 0x306f1: 0x6e2cb020, 0x306f2: 0x6e3e4a20, 0x306f3: 0x6c270220, + 0x306f4: 0x6c611a20, 0x306f5: 0x6c875420, 0x306f6: 0x6c875620, 0x306f7: 0x6c875820, + 0x306f8: 0x6c875a20, 0x306f9: 0x6cb24e20, 0x306fa: 0x6cb25020, 0x306fb: 0x6cb25220, + 0x306fc: 0x6d101620, 0x306fd: 0x6cb25420, 0x306fe: 0x6cb25620, 0x306ff: 0x6cb25820, + // Block 0xc1c, offset 0x30700 + 0x30700: 0x6cb25a20, 0x30701: 0x6cb25c20, 0x30702: 0x6cb25e20, 0x30703: 0x6cb26020, + 0x30704: 0x6cb26220, 0x30705: 0x6ce1ba20, 0x30706: 0x6ce1bc20, 0x30707: 0x6ce1be20, + 0x30708: 0x6ce1c020, 0x30709: 0x6ce1c220, 0x3070a: 0x6ce1c420, 0x3070b: 0x6ce1c620, + 0x3070c: 0x6ce1c820, 0x3070d: 0x6ce1ca20, 0x3070e: 0x6ce1cc20, 0x3070f: 0x6ce1ce20, + 0x30710: 0x6d100820, 0x30711: 0x6ce1d020, 0x30712: 0x6ce1d220, 0x30713: 0x6ce1d420, + 0x30714: 0x6ce1d620, 0x30715: 0x6ce1d820, 0x30716: 0x6ce1da20, 0x30717: 0x6ce1dc20, + 0x30718: 0x6ce1de20, 0x30719: 0x6ce1e020, 0x3071a: 0x6ce1e220, 0x3071b: 0x6ce1e420, + 0x3071c: 0x6ce1e620, 0x3071d: 0x6ce1e820, 0x3071e: 0x6ce1ea20, 0x3071f: 0x6d101820, + 0x30720: 0x6d101a20, 0x30721: 0x6d101c20, 0x30722: 0x6d101e20, 0x30723: 0x6d102020, + 0x30724: 0x6d102220, 0x30725: 0x6d102420, 0x30726: 0x6d102620, 0x30727: 0x6d102820, + 0x30728: 0x6d102a20, 0x30729: 0x6d102c20, 0x3072a: 0x6d102e20, 0x3072b: 0x6d103020, + 0x3072c: 0x6d103220, 0x3072d: 0x6d103420, 0x3072e: 0x6d103620, 0x3072f: 0x6d103820, + 0x30730: 0x6d103a20, 0x30731: 0x6d103c20, 0x30732: 0x6d103e20, 0x30733: 0x6d104020, + 0x30734: 0x6d104220, 0x30735: 0x6ce1ec20, 0x30736: 0x6d104420, 0x30737: 0x6d104620, + 0x30738: 0x6d104820, 0x30739: 0x6d104a20, 0x3073a: 0x6d104c20, 0x3073b: 0x6d104e20, + 0x3073c: 0x6d3e4c20, 0x3073d: 0x6d3e4e20, 0x3073e: 0x6d3e5020, 0x3073f: 0x6d3e5220, + // Block 0xc1d, offset 0x30740 + 0x30740: 0x6d3e5420, 0x30741: 0x6d3e5620, 0x30742: 0x6d3e5820, 0x30743: 0x6d3e5a20, + 0x30744: 0x6d3e5c20, 0x30745: 0x6d3e5e20, 0x30746: 0x6d3e6020, 0x30747: 0x6d3e6220, + 0x30748: 0x6d3e6420, 0x30749: 0x6d3e6620, 0x3074a: 0x6d3e6820, 0x3074b: 0x6d3e6a20, + 0x3074c: 0x6d3e6c20, 0x3074d: 0x6d3e6e20, 0x3074e: 0x6d3e7020, 0x3074f: 0x6d6afa20, + 0x30750: 0x6d6afc20, 0x30751: 0x6d6afe20, 0x30752: 0x6d6b0020, 0x30753: 0x6d6b0220, + 0x30754: 0x6d6b0420, 0x30755: 0x6d6b0620, 0x30756: 0x6d6b0820, 0x30757: 0x6d6b0a20, + 0x30758: 0x6d6b0c20, 0x30759: 0x6d6b0e20, 0x3075a: 0x6d6b1020, 0x3075b: 0x6d6b1220, + 0x3075c: 0x6d6b1420, 0x3075d: 0x6d6b1620, 0x3075e: 0x6d6b1820, 0x3075f: 0x6d6b1a20, + 0x30760: 0x6d6b1c20, 0x30761: 0x6d6b1e20, 0x30762: 0x6d6b2020, 0x30763: 0x6d6b2220, + 0x30764: 0x6d6b2420, 0x30765: 0x6d6b2620, 0x30766: 0x6d6b2820, 0x30767: 0x6d6b2a20, + 0x30768: 0x6d6b2c20, 0x30769: 0x6d6b2e20, 0x3076a: 0x6d6b3020, 0x3076b: 0x6d6b9820, + 0x3076c: 0x6d6b3220, 0x3076d: 0x6d6b3420, 0x3076e: 0x6d6b3620, 0x3076f: 0x6d6b3820, + 0x30770: 0x6d944620, 0x30771: 0x6d944820, 0x30772: 0x6d944a20, 0x30773: 0x6d944c20, + 0x30774: 0x6d944e20, 0x30775: 0x6d945020, 0x30776: 0x6d945220, 0x30777: 0x6d6b9a20, + 0x30778: 0x6d945420, 0x30779: 0x6d945620, 0x3077a: 0x6d6b3a20, 0x3077b: 0x6d945820, + 0x3077c: 0x6d945a20, 0x3077d: 0x6d945c20, 0x3077e: 0x6d945e20, 0x3077f: 0x6d946020, + // Block 0xc1e, offset 0x30780 + 0x30780: 0x6d946220, 0x30781: 0x6d946420, 0x30782: 0x6d946620, 0x30783: 0x6d946820, + 0x30784: 0x6d946a20, 0x30785: 0x6d946c20, 0x30786: 0x6db79220, 0x30787: 0x6db79420, + 0x30788: 0x6db79620, 0x30789: 0x6db79820, 0x3078a: 0x6db79a20, 0x3078b: 0x6db79c20, + 0x3078c: 0x6db79e20, 0x3078d: 0x6db7a020, 0x3078e: 0x6db7a220, 0x3078f: 0x6db7a420, + 0x30790: 0x6db7a620, 0x30791: 0x6db7a820, 0x30792: 0x6db7aa20, 0x30793: 0x6db7ac20, + 0x30794: 0x6dd5e820, 0x30795: 0x6dd5ea20, 0x30796: 0x6dd5ec20, 0x30797: 0x6dd5ee20, + 0x30798: 0x6dd5f020, 0x30799: 0x6dd5f220, 0x3079a: 0x6dd5f420, 0x3079b: 0x6dd5f620, + 0x3079c: 0x6dd5f820, 0x3079d: 0x6dd5fa20, 0x3079e: 0x6dd5fc20, 0x3079f: 0x6dd5fe20, + 0x307a0: 0x6dd60020, 0x307a1: 0x6dd60220, 0x307a2: 0x6dd60420, 0x307a3: 0x6dd60620, + 0x307a4: 0x6dd60820, 0x307a5: 0x6dd60a20, 0x307a6: 0x6dd60c20, 0x307a7: 0x6dd60e20, + 0x307a8: 0x6deec820, 0x307a9: 0x6dd6aa20, 0x307aa: 0x6deeca20, 0x307ab: 0x6deecc20, + 0x307ac: 0x6deece20, 0x307ad: 0x6deed020, 0x307ae: 0x6dd61020, 0x307af: 0x6deed220, + 0x307b0: 0x6deed420, 0x307b1: 0x6deed620, 0x307b2: 0x6deed820, 0x307b3: 0x6deeda20, + 0x307b4: 0x6deedc20, 0x307b5: 0x6deede20, 0x307b6: 0x6deee020, 0x307b7: 0x6deee220, + 0x307b8: 0x6deee420, 0x307b9: 0x6deee620, 0x307ba: 0x6deee820, 0x307bb: 0x6deeea20, + 0x307bc: 0x6deeec20, 0x307bd: 0x6deeee20, 0x307be: 0x6deef020, 0x307bf: 0x6deef220, + // Block 0xc1f, offset 0x307c0 + 0x307c0: 0x6dd61220, 0x307c1: 0x6e033020, 0x307c2: 0x6e033220, 0x307c3: 0x6e033420, + 0x307c4: 0x6e033620, 0x307c5: 0x6e033820, 0x307c6: 0x6e033a20, 0x307c7: 0x6def6820, + 0x307c8: 0x6e033c20, 0x307c9: 0x6e033e20, 0x307ca: 0x6e14c820, 0x307cb: 0x6e14ca20, + 0x307cc: 0x6e14cc20, 0x307cd: 0x6e14ce20, 0x307ce: 0x6e14d020, 0x307cf: 0x6e14d220, + 0x307d0: 0x6e227220, 0x307d1: 0x6e227420, 0x307d2: 0x6e227620, 0x307d3: 0x6e227820, + 0x307d4: 0x6e227a20, 0x307d5: 0x6e227c20, 0x307d6: 0x6e227e20, 0x307d7: 0x6e22aa20, + 0x307d8: 0x6e2cc220, 0x307d9: 0x6e2cc420, 0x307da: 0x6e22ac20, 0x307db: 0x6e2cc620, + 0x307dc: 0x6e2cc820, 0x307dd: 0x6e34c220, 0x307de: 0x6e34c420, 0x307df: 0x6e34c620, + 0x307e0: 0x6e34c820, 0x307e1: 0x6e3a7c20, 0x307e2: 0x6e3a7e20, 0x307e3: 0x6e3a8020, + 0x307e4: 0x6e3a8220, 0x307e5: 0x6e3a8420, 0x307e6: 0x6e3e4c20, 0x307e7: 0x6e3e4e20, + 0x307e8: 0x6e432420, 0x307e9: 0x6e412220, 0x307ea: 0x6e412420, 0x307eb: 0x6c270620, + 0x307ec: 0x6c878020, 0x307ed: 0x6cb2aa20, 0x307ee: 0x6cb2ac20, 0x307ef: 0x6cb2ae20, + 0x307f0: 0x6ce24420, 0x307f1: 0x6d10b820, 0x307f2: 0x6d10ba20, 0x307f3: 0x6d3ee220, + 0x307f4: 0x6d3ee420, 0x307f5: 0x6d3ee620, 0x307f6: 0x6d6b9e20, 0x307f7: 0x6d6ba020, + 0x307f8: 0x6d6ba220, 0x307f9: 0x6d6ba420, 0x307fa: 0x6d6ba620, 0x307fb: 0x6d6ba820, + 0x307fc: 0x6d6baa20, 0x307fd: 0x6d94e420, 0x307fe: 0x6d94e620, 0x307ff: 0x6dd6ac20, + // Block 0xc20, offset 0x30800 + 0x30800: 0x6dd6ae20, 0x30801: 0x6dd6b020, 0x30802: 0x6def6c20, 0x30803: 0x6def6e20, + 0x30804: 0x6def7020, 0x30805: 0x6def7220, 0x30806: 0x6e039c20, 0x30807: 0x6e150620, + 0x30808: 0x6e34de20, 0x30809: 0x6e412c20, 0x3080a: 0x6c270e20, 0x3080b: 0x6c40e420, + 0x3080c: 0x6c613220, 0x3080d: 0x6c613420, 0x3080e: 0x6c878e20, 0x3080f: 0x6c879020, + 0x30810: 0x6c879220, 0x30811: 0x6c879420, 0x30812: 0x6c879620, 0x30813: 0x6c879820, + 0x30814: 0x6c879a20, 0x30815: 0x6c879c20, 0x30816: 0x6cb2e420, 0x30817: 0x6cb2e620, + 0x30818: 0x6cb2e820, 0x30819: 0x6cb2ea20, 0x3081a: 0x6cb2ec20, 0x3081b: 0x6cb2ee20, + 0x3081c: 0x6cb2f020, 0x3081d: 0x6cb2f220, 0x3081e: 0x6cb2f420, 0x3081f: 0x6cb2f620, + 0x30820: 0x6cb2f820, 0x30821: 0x6cb2fa20, 0x30822: 0x6cb2fc20, 0x30823: 0x6cb2fe20, + 0x30824: 0x6ce26c20, 0x30825: 0x6ce26e20, 0x30826: 0x6ce27020, 0x30827: 0x6ce27220, + 0x30828: 0x6ce27420, 0x30829: 0x6ce27620, 0x3082a: 0x6ce27820, 0x3082b: 0x6ce27a20, + 0x3082c: 0x6ce27c20, 0x3082d: 0x6d10ea20, 0x3082e: 0x6ce27e20, 0x3082f: 0x6ce28020, + 0x30830: 0x6ce28220, 0x30831: 0x6ce28420, 0x30832: 0x6ce28620, 0x30833: 0x6ce28820, + 0x30834: 0x6ce28a20, 0x30835: 0x6ce28c20, 0x30836: 0x6ce28e20, 0x30837: 0x6ce29020, + 0x30838: 0x6ce29220, 0x30839: 0x6ce29420, 0x3083a: 0x6ce29620, 0x3083b: 0x6ce29820, + 0x3083c: 0x6ce29a20, 0x3083d: 0x6ce29c20, 0x3083e: 0x6d10ec20, 0x3083f: 0x6d10ee20, + // Block 0xc21, offset 0x30840 + 0x30840: 0x6d10f020, 0x30841: 0x6d10f220, 0x30842: 0x6d10f420, 0x30843: 0x6d10f620, + 0x30844: 0x6d10f820, 0x30845: 0x6d10fa20, 0x30846: 0x6d10fc20, 0x30847: 0x6d10fe20, + 0x30848: 0x6d110020, 0x30849: 0x6d110220, 0x3084a: 0x6d110420, 0x3084b: 0x6d110620, + 0x3084c: 0x6d110820, 0x3084d: 0x6d3f0a20, 0x3084e: 0x6d3f0c20, 0x3084f: 0x6d3f0e20, + 0x30850: 0x6d3f1020, 0x30851: 0x6d3f1220, 0x30852: 0x6d3f1420, 0x30853: 0x6d3f1620, + 0x30854: 0x6d3f1820, 0x30855: 0x6d3f1a20, 0x30856: 0x6d6bd020, 0x30857: 0x6d6bd220, + 0x30858: 0x6d6bd420, 0x30859: 0x6d6bd620, 0x3085a: 0x6d6bd820, 0x3085b: 0x6d6bda20, + 0x3085c: 0x6d6bdc20, 0x3085d: 0x6d6bde20, 0x3085e: 0x6d6be020, 0x3085f: 0x6d6be220, + 0x30860: 0x6d6be420, 0x30861: 0x6d6be620, 0x30862: 0x6d6be820, 0x30863: 0x6d6bea20, + 0x30864: 0x6d6bec20, 0x30865: 0x6d6bee20, 0x30866: 0x6d6bf020, 0x30867: 0x6d6bf220, + 0x30868: 0x6d6bf420, 0x30869: 0x6d6bf620, 0x3086a: 0x6d6bf820, 0x3086b: 0x6d6bfa20, + 0x3086c: 0x6d6bfc20, 0x3086d: 0x6d950820, 0x3086e: 0x6d950a20, 0x3086f: 0x6d950c20, + 0x30870: 0x6d950e20, 0x30871: 0x6d951020, 0x30872: 0x6d951220, 0x30873: 0x6d951420, + 0x30874: 0x6d951620, 0x30875: 0x6d951820, 0x30876: 0x6d951a20, 0x30877: 0x6d951c20, + 0x30878: 0x6d951e20, 0x30879: 0x6d952020, 0x3087a: 0x6d952220, 0x3087b: 0x6d952420, + 0x3087c: 0x6d952620, 0x3087d: 0x6db84220, 0x3087e: 0x6db84420, 0x3087f: 0x6db84620, + // Block 0xc22, offset 0x30880 + 0x30880: 0x6db84820, 0x30881: 0x6db84a20, 0x30882: 0x6db84c20, 0x30883: 0x6db84e20, + 0x30884: 0x6db85020, 0x30885: 0x6db85220, 0x30886: 0x6dd6ce20, 0x30887: 0x6dd6d020, + 0x30888: 0x6dd6d220, 0x30889: 0x6dd6d420, 0x3088a: 0x6dd6d620, 0x3088b: 0x6dd6d820, + 0x3088c: 0x6dd6da20, 0x3088d: 0x6def9a20, 0x3088e: 0x6def9c20, 0x3088f: 0x6def9e20, + 0x30890: 0x6defa020, 0x30891: 0x6defa220, 0x30892: 0x6defa420, 0x30893: 0x6defa620, + 0x30894: 0x6defa820, 0x30895: 0x6e03ae20, 0x30896: 0x6e03b020, 0x30897: 0x6e03b220, + 0x30898: 0x6e03b420, 0x30899: 0x6e03b620, 0x3089a: 0x6e03b820, 0x3089b: 0x6e151820, + 0x3089c: 0x6e151a20, 0x3089d: 0x6e151c20, 0x3089e: 0x6e151e20, 0x3089f: 0x6e152020, + 0x308a0: 0x6e22b820, 0x308a1: 0x6e22ba20, 0x308a2: 0x6e22bc20, 0x308a3: 0x6e2cee20, + 0x308a4: 0x6e2cf020, 0x308a5: 0x6e413020, 0x308a6: 0x6c051a20, 0x308a7: 0x6c0a7e20, + 0x308a8: 0x6c150820, 0x308a9: 0x6c271020, 0x308aa: 0x6c271220, 0x308ab: 0x6c271420, + 0x308ac: 0x6c40e620, 0x308ad: 0x6c40e820, 0x308ae: 0x6c40ea20, 0x308af: 0x6c40ec20, + 0x308b0: 0x6c40ee20, 0x308b1: 0x6c614620, 0x308b2: 0x6c614820, 0x308b3: 0x6c614a20, + 0x308b4: 0x6c614c20, 0x308b5: 0x6c614e20, 0x308b6: 0x6c615020, 0x308b7: 0x6c615220, + 0x308b8: 0x6c615420, 0x308b9: 0x6c615620, 0x308ba: 0x6c615820, 0x308bb: 0x6c615a20, + 0x308bc: 0x6c87ba20, 0x308bd: 0x6c87bc20, 0x308be: 0x6c87be20, 0x308bf: 0x6c87c020, + // Block 0xc23, offset 0x308c0 + 0x308c0: 0x6c87c220, 0x308c1: 0x6c87c420, 0x308c2: 0x6c87c620, 0x308c3: 0x6c87c820, + 0x308c4: 0x6cb33a20, 0x308c5: 0x6cb33c20, 0x308c6: 0x6cb33e20, 0x308c7: 0x6ce2d820, + 0x308c8: 0x6ce2da20, 0x308c9: 0x6ce2dc20, 0x308ca: 0x6ce2de20, 0x308cb: 0x6ce2e020, + 0x308cc: 0x6ce2e220, 0x308cd: 0x6ce2e420, 0x308ce: 0x6ce2e620, 0x308cf: 0x6d113e20, + 0x308d0: 0x6d114020, 0x308d1: 0x6d114220, 0x308d2: 0x6d114420, 0x308d3: 0x6d114620, + 0x308d4: 0x6d114820, 0x308d5: 0x6d3f5e20, 0x308d6: 0x6d3f6020, 0x308d7: 0x6d3f6220, + 0x308d8: 0x6d6c4e20, 0x308d9: 0x6d957020, 0x308da: 0x6d957220, 0x308db: 0x6c271c20, + 0x308dc: 0x6ce2f020, 0x308dd: 0x6ce2f220, 0x308de: 0x6d114c20, 0x308df: 0x6d114e20, + 0x308e0: 0x6d115020, 0x308e1: 0x6d3f6820, 0x308e2: 0x6d3f6a20, 0x308e3: 0x6d3f6c20, + 0x308e4: 0x6d6c5620, 0x308e5: 0x6d957820, 0x308e6: 0x6d957a20, 0x308e7: 0x6d957c20, + 0x308e8: 0x6d957e20, 0x308e9: 0x6d958020, 0x308ea: 0x6d958220, 0x308eb: 0x6db89e20, + 0x308ec: 0x6dd71620, 0x308ed: 0x6defca20, 0x308ee: 0x6e03ee20, 0x308ef: 0x6e153620, + 0x308f0: 0x6c272020, 0x308f1: 0x6c87d620, 0x308f2: 0x6d116020, 0x308f3: 0x6d6c6220, + 0x308f4: 0x6defd620, 0x308f5: 0x6c272620, 0x308f6: 0x6c051e20, 0x308f7: 0x6c0a8020, + 0x308f8: 0x6c150a20, 0x308f9: 0x6c150c20, 0x308fa: 0x6c150e20, 0x308fb: 0x6c151020, + 0x308fc: 0x6c151220, 0x308fd: 0x6c151420, 0x308fe: 0x6c272e20, 0x308ff: 0x6c273020, + // Block 0xc24, offset 0x30900 + 0x30900: 0x6c273220, 0x30901: 0x6c273420, 0x30902: 0x6c273620, 0x30903: 0x6c273820, + 0x30904: 0x6c273a20, 0x30905: 0x6c273c20, 0x30906: 0x6c273e20, 0x30907: 0x6c274020, + 0x30908: 0x6c274220, 0x30909: 0x6c274420, 0x3090a: 0x6c410020, 0x3090b: 0x6c410220, + 0x3090c: 0x6c410420, 0x3090d: 0x6c410620, 0x3090e: 0x6c410820, 0x3090f: 0x6c410a20, + 0x30910: 0x6c410c20, 0x30911: 0x6c410e20, 0x30912: 0x6c411020, 0x30913: 0x6c411220, + 0x30914: 0x6c411420, 0x30915: 0x6c411620, 0x30916: 0x6c411820, 0x30917: 0x6c411a20, + 0x30918: 0x6c411c20, 0x30919: 0x6c411e20, 0x3091a: 0x6c412020, 0x3091b: 0x6c412220, + 0x3091c: 0x6c412420, 0x3091d: 0x6c412620, 0x3091e: 0x6c412820, 0x3091f: 0x6c412a20, + 0x30920: 0x6c616a20, 0x30921: 0x6c616c20, 0x30922: 0x6c616e20, 0x30923: 0x6c617020, + 0x30924: 0x6c617220, 0x30925: 0x6c617420, 0x30926: 0x6c617620, 0x30927: 0x6c617820, + 0x30928: 0x6c617a20, 0x30929: 0x6c617c20, 0x3092a: 0x6c617e20, 0x3092b: 0x6c618020, + 0x3092c: 0x6c412c20, 0x3092d: 0x6c618220, 0x3092e: 0x6c618420, 0x3092f: 0x6c618620, + 0x30930: 0x6c618820, 0x30931: 0x6c618a20, 0x30932: 0x6c618c20, 0x30933: 0x6c618e20, + 0x30934: 0x6c87e620, 0x30935: 0x6c87e820, 0x30936: 0x6c87ea20, 0x30937: 0x6c87ec20, + 0x30938: 0x6c87ee20, 0x30939: 0x6c87f020, 0x3093a: 0x6c87f220, 0x3093b: 0x6c87f420, + 0x3093c: 0x6c87f620, 0x3093d: 0x6c87f820, 0x3093e: 0x6c87fa20, 0x3093f: 0x6c87fc20, + // Block 0xc25, offset 0x30940 + 0x30940: 0x6c87fe20, 0x30941: 0x6c880020, 0x30942: 0x6c880220, 0x30943: 0x6c880420, + 0x30944: 0x6c880620, 0x30945: 0x6c880820, 0x30946: 0x6c880a20, 0x30947: 0x6c880c20, + 0x30948: 0x6c880e20, 0x30949: 0x6c881020, 0x3094a: 0x6c881220, 0x3094b: 0x6cb34e20, + 0x3094c: 0x6cb35020, 0x3094d: 0x6cb35220, 0x3094e: 0x6cb35420, 0x3094f: 0x6cb35620, + 0x30950: 0x6cb35820, 0x30951: 0x6cb35a20, 0x30952: 0x6cb35c20, 0x30953: 0x6cb35e20, + 0x30954: 0x6cb36020, 0x30955: 0x6cb36220, 0x30956: 0x6cb36420, 0x30957: 0x6cb36620, + 0x30958: 0x6cb36820, 0x30959: 0x6cb36a20, 0x3095a: 0x6cb36c20, 0x3095b: 0x6cb36e20, + 0x3095c: 0x6cb37020, 0x3095d: 0x6cb37220, 0x3095e: 0x6cb37420, 0x3095f: 0x6cb37620, + 0x30960: 0x6cb37820, 0x30961: 0x6cb37a20, 0x30962: 0x6cb37c20, 0x30963: 0x6cb37e20, + 0x30964: 0x6cb38020, 0x30965: 0x6cb38220, 0x30966: 0x6cb38420, 0x30967: 0x6cb38620, + 0x30968: 0x6ce30420, 0x30969: 0x6ce30620, 0x3096a: 0x6ce30820, 0x3096b: 0x6ce30a20, + 0x3096c: 0x6ce30c20, 0x3096d: 0x6ce30e20, 0x3096e: 0x6ce31020, 0x3096f: 0x6ce31220, + 0x30970: 0x6ce31420, 0x30971: 0x6ce31620, 0x30972: 0x6ce31820, 0x30973: 0x6ce31a20, + 0x30974: 0x6ce31c20, 0x30975: 0x6ce31e20, 0x30976: 0x6ce32020, 0x30977: 0x6ce32220, + 0x30978: 0x6ce32420, 0x30979: 0x6ce32620, 0x3097a: 0x6ce32820, 0x3097b: 0x6ce32a20, + 0x3097c: 0x6d116a20, 0x3097d: 0x6d116c20, 0x3097e: 0x6d116e20, 0x3097f: 0x6d117020, + // Block 0xc26, offset 0x30980 + 0x30980: 0x6d117220, 0x30981: 0x6d117420, 0x30982: 0x6d117620, 0x30983: 0x6d117820, + 0x30984: 0x6d117a20, 0x30985: 0x6d117c20, 0x30986: 0x6d117e20, 0x30987: 0x6d118020, + 0x30988: 0x6d118220, 0x30989: 0x6d118420, 0x3098a: 0x6d118620, 0x3098b: 0x6d118820, + 0x3098c: 0x6d118a20, 0x3098d: 0x6d118c20, 0x3098e: 0x6d118e20, 0x3098f: 0x6d119020, + 0x30990: 0x6d119220, 0x30991: 0x6d119420, 0x30992: 0x6d119620, 0x30993: 0x6d119820, + 0x30994: 0x6d119a20, 0x30995: 0x6d119c20, 0x30996: 0x6d119e20, 0x30997: 0x6d11a020, + 0x30998: 0x6d3f8020, 0x30999: 0x6d3f8220, 0x3099a: 0x6d3f8420, 0x3099b: 0x6d3f8620, + 0x3099c: 0x6d3f8820, 0x3099d: 0x6d3f8a20, 0x3099e: 0x6d3f8c20, 0x3099f: 0x6d3f8e20, + 0x309a0: 0x6d3f9020, 0x309a1: 0x6d3f9220, 0x309a2: 0x6d3f9420, 0x309a3: 0x6d3f9620, + 0x309a4: 0x6d3f9820, 0x309a5: 0x6d3f9a20, 0x309a6: 0x6d6c6e20, 0x309a7: 0x6d6c7020, + 0x309a8: 0x6d6c7220, 0x309a9: 0x6d6c7420, 0x309aa: 0x6d6c7620, 0x309ab: 0x6d6c7820, + 0x309ac: 0x6d6c7a20, 0x309ad: 0x6d6c7c20, 0x309ae: 0x6d6c7e20, 0x309af: 0x6d6c8020, + 0x309b0: 0x6d6c8220, 0x309b1: 0x6d6c8420, 0x309b2: 0x6d959e20, 0x309b3: 0x6d6c8620, + 0x309b4: 0x6d95a020, 0x309b5: 0x6d95a220, 0x309b6: 0x6d95a420, 0x309b7: 0x6d6c8820, + 0x309b8: 0x6d95a620, 0x309b9: 0x6d95a820, 0x309ba: 0x6d95aa20, 0x309bb: 0x6d95ac20, + 0x309bc: 0x6d95ae20, 0x309bd: 0x6db8b220, 0x309be: 0x6db8b420, 0x309bf: 0x6db8b620, + // Block 0xc27, offset 0x309c0 + 0x309c0: 0x6db8b820, 0x309c1: 0x6db8ba20, 0x309c2: 0x6db8bc20, 0x309c3: 0x6db8be20, + 0x309c4: 0x6db8c020, 0x309c5: 0x6db8c220, 0x309c6: 0x6d95b020, 0x309c7: 0x6dd72220, + 0x309c8: 0x6dd72420, 0x309c9: 0x6db8c420, 0x309ca: 0x6defdc20, 0x309cb: 0x6defde20, + 0x309cc: 0x6defe020, 0x309cd: 0x6e03fc20, 0x309ce: 0x6e153c20, 0x309cf: 0x6e2d0820, + 0x309d0: 0x6e2d0a20, 0x309d1: 0x6c278a20, 0x309d2: 0x6c0a8e20, 0x309d3: 0x6c0a9020, + 0x309d4: 0x6c153c20, 0x309d5: 0x6c886a20, 0x309d6: 0x6c153e20, 0x309d7: 0x6c154020, + 0x309d8: 0x6c154220, 0x309d9: 0x6c154420, 0x309da: 0x6c154620, 0x309db: 0x6c154820, + 0x309dc: 0x6c154a20, 0x309dd: 0x6c154c20, 0x309de: 0x6c279220, 0x309df: 0x6c279420, + 0x309e0: 0x6c279620, 0x309e1: 0x6c279820, 0x309e2: 0x6c279a20, 0x309e3: 0x6c279c20, + 0x309e4: 0x6c279e20, 0x309e5: 0x6c27a020, 0x309e6: 0x6c27a220, 0x309e7: 0x6c27a420, + 0x309e8: 0x6c27a620, 0x309e9: 0x6c27a820, 0x309ea: 0x6c27aa20, 0x309eb: 0x6cb3fc20, + 0x309ec: 0x6c27ac20, 0x309ed: 0x6c418220, 0x309ee: 0x6c418420, 0x309ef: 0x6c418620, + 0x309f0: 0x6c418820, 0x309f1: 0x6c418a20, 0x309f2: 0x6c418c20, 0x309f3: 0x6c418e20, + 0x309f4: 0x6c419020, 0x309f5: 0x6c419220, 0x309f6: 0x6c419420, 0x309f7: 0x6c419620, + 0x309f8: 0x6c419820, 0x309f9: 0x6c419a20, 0x309fa: 0x6c419c20, 0x309fb: 0x6c419e20, + 0x309fc: 0x6c61e020, 0x309fd: 0x6c61e220, 0x309fe: 0x6c61e420, 0x309ff: 0x6c61e620, + // Block 0xc28, offset 0x30a00 + 0x30a00: 0x6c61e820, 0x30a01: 0x6c61ea20, 0x30a02: 0x6c61ec20, 0x30a03: 0x6c61ee20, + 0x30a04: 0x6c61f020, 0x30a05: 0x6c61f220, 0x30a06: 0x6c61f420, 0x30a07: 0x6c61f620, + 0x30a08: 0x6c61f820, 0x30a09: 0x6c61fa20, 0x30a0a: 0x6c61fc20, 0x30a0b: 0x6c61fe20, + 0x30a0c: 0x6d11fe20, 0x30a0d: 0x6c620020, 0x30a0e: 0x6c620220, 0x30a0f: 0x6c620420, + 0x30a10: 0x6c620620, 0x30a11: 0x6c620820, 0x30a12: 0x6d400820, 0x30a13: 0x6c620a20, + 0x30a14: 0x6cb3fe20, 0x30a15: 0x6c620c20, 0x30a16: 0x6c887620, 0x30a17: 0x6c887820, + 0x30a18: 0x6c887a20, 0x30a19: 0x6c887c20, 0x30a1a: 0x6c887e20, 0x30a1b: 0x6c888020, + 0x30a1c: 0x6c888220, 0x30a1d: 0x6c888420, 0x30a1e: 0x6c888620, 0x30a1f: 0x6c888820, + 0x30a20: 0x6c888a20, 0x30a21: 0x6c888c20, 0x30a22: 0x6c888e20, 0x30a23: 0x6c889020, + 0x30a24: 0x6c889220, 0x30a25: 0x6c889420, 0x30a26: 0x6c889620, 0x30a27: 0x6c889820, + 0x30a28: 0x6cb40c20, 0x30a29: 0x6cb40e20, 0x30a2a: 0x6cb41020, 0x30a2b: 0x6cb41220, + 0x30a2c: 0x6cb41420, 0x30a2d: 0x6cb41620, 0x30a2e: 0x6cb41820, 0x30a2f: 0x6cb41a20, + 0x30a30: 0x6cb41c20, 0x30a31: 0x6c625420, 0x30a32: 0x6cb41e20, 0x30a33: 0x6cb42020, + 0x30a34: 0x6cb42220, 0x30a35: 0x6ce3be20, 0x30a36: 0x6d6cf820, 0x30a37: 0x6cb42420, + 0x30a38: 0x6cb42620, 0x30a39: 0x6ce3c620, 0x30a3a: 0x6d95fa20, 0x30a3b: 0x6ce3c820, + 0x30a3c: 0x6ce3ca20, 0x30a3d: 0x6cb42820, 0x30a3e: 0x6ce3cc20, 0x30a3f: 0x6ce3ce20, + // Block 0xc29, offset 0x30a40 + 0x30a40: 0x6ce3d020, 0x30a41: 0x6ce3d220, 0x30a42: 0x6ce3d420, 0x30a43: 0x6ce3d620, + 0x30a44: 0x6ce3d820, 0x30a45: 0x6ce3da20, 0x30a46: 0x6ce3dc20, 0x30a47: 0x6ce3de20, + 0x30a48: 0x6ce3e020, 0x30a49: 0x6ce3e220, 0x30a4a: 0x6ce3e420, 0x30a4b: 0x6d120820, + 0x30a4c: 0x6d120a20, 0x30a4d: 0x6d120c20, 0x30a4e: 0x6d120e20, 0x30a4f: 0x6d121020, + 0x30a50: 0x6d121220, 0x30a51: 0x6d121420, 0x30a52: 0x6d121620, 0x30a53: 0x6d121820, + 0x30a54: 0x6d121a20, 0x30a55: 0x6d121c20, 0x30a56: 0x6d121e20, 0x30a57: 0x6d122020, + 0x30a58: 0x6d401420, 0x30a59: 0x6d401620, 0x30a5a: 0x6d401820, 0x30a5b: 0x6d401a20, + 0x30a5c: 0x6d401c20, 0x30a5d: 0x6d401e20, 0x30a5e: 0x6d402020, 0x30a5f: 0x6d402220, + 0x30a60: 0x6d402420, 0x30a61: 0x6d402620, 0x30a62: 0x6d402820, 0x30a63: 0x6d402a20, + 0x30a64: 0x6d402c20, 0x30a65: 0x6d402e20, 0x30a66: 0x6d6d0220, 0x30a67: 0x6d6d0420, + 0x30a68: 0x6dd75620, 0x30a69: 0x6d6d0620, 0x30a6a: 0x6d6d0820, 0x30a6b: 0x6d6d0a20, + 0x30a6c: 0x6ce41e20, 0x30a6d: 0x6d6d0c20, 0x30a6e: 0x6d6d0e20, 0x30a6f: 0x6d6d1020, + 0x30a70: 0x6d6d1220, 0x30a71: 0x6d6d1420, 0x30a72: 0x6d6d1620, 0x30a73: 0x6d95fe20, + 0x30a74: 0x6d960020, 0x30a75: 0x6d960220, 0x30a76: 0x6d960420, 0x30a77: 0x6d960620, + 0x30a78: 0x6db90820, 0x30a79: 0x6db90a20, 0x30a7a: 0x6dd75820, 0x30a7b: 0x6dd75a20, + 0x30a7c: 0x6dd75c20, 0x30a7d: 0x6dd75e20, 0x30a7e: 0x6dd76020, 0x30a7f: 0x6deff620, + // Block 0xc2a, offset 0x30a80 + 0x30a80: 0x6deff820, 0x30a81: 0x6e042620, 0x30a82: 0x6deffa20, 0x30a83: 0x6e042820, + 0x30a84: 0x6e154e20, 0x30a85: 0x6e155020, 0x30a86: 0x6e155220, 0x30a87: 0x6e22ea20, + 0x30a88: 0x6e22ec20, 0x30a89: 0x6c27ec20, 0x30a8a: 0x6c625a20, 0x30a8b: 0x6c625c20, + 0x30a8c: 0x6c88ee20, 0x30a8d: 0x6c88f020, 0x30a8e: 0x6c88f220, 0x30a8f: 0x6c88f420, + 0x30a90: 0x6c88f620, 0x30a91: 0x6c88f820, 0x30a92: 0x6c88fa20, 0x30a93: 0x6cb47e20, + 0x30a94: 0x6cb48020, 0x30a95: 0x6cb48220, 0x30a96: 0x6cb48420, 0x30a97: 0x6cb48620, + 0x30a98: 0x6cb48820, 0x30a99: 0x6cb48a20, 0x30a9a: 0x6cb48c20, 0x30a9b: 0x6cb48e20, + 0x30a9c: 0x6cb49020, 0x30a9d: 0x6cb49220, 0x30a9e: 0x6cb49420, 0x30a9f: 0x6ce42a20, + 0x30aa0: 0x6ce42c20, 0x30aa1: 0x6ce42e20, 0x30aa2: 0x6ce43020, 0x30aa3: 0x6ce43220, + 0x30aa4: 0x6ce43420, 0x30aa5: 0x6ce43620, 0x30aa6: 0x6d127820, 0x30aa7: 0x6d127a20, + 0x30aa8: 0x6d127c20, 0x30aa9: 0x6d127e20, 0x30aaa: 0x6d128020, 0x30aab: 0x6d128220, + 0x30aac: 0x6d128420, 0x30aad: 0x6d128620, 0x30aae: 0x6d128820, 0x30aaf: 0x6d128a20, + 0x30ab0: 0x6d128c20, 0x30ab1: 0x6d128e20, 0x30ab2: 0x6d407e20, 0x30ab3: 0x6d408020, + 0x30ab4: 0x6d408220, 0x30ab5: 0x6d408420, 0x30ab6: 0x6d408620, 0x30ab7: 0x6d408820, + 0x30ab8: 0x6d408a20, 0x30ab9: 0x6d408c20, 0x30aba: 0x6d408e20, 0x30abb: 0x6d409020, + 0x30abc: 0x6d409220, 0x30abd: 0x6d409420, 0x30abe: 0x6d409620, 0x30abf: 0x6d409820, + // Block 0xc2b, offset 0x30ac0 + 0x30ac0: 0x6d6d5020, 0x30ac1: 0x6d6d5220, 0x30ac2: 0x6d6d5420, 0x30ac3: 0x6d6d5620, + 0x30ac4: 0x6d6d5820, 0x30ac5: 0x6d6d5a20, 0x30ac6: 0x6d6d5c20, 0x30ac7: 0x6d6d5e20, + 0x30ac8: 0x6d6d6020, 0x30ac9: 0x6d6d6220, 0x30aca: 0x6d6d6420, 0x30acb: 0x6d6d6620, + 0x30acc: 0x6d6d6820, 0x30acd: 0x6d964220, 0x30ace: 0x6d964420, 0x30acf: 0x6d964620, + 0x30ad0: 0x6d964820, 0x30ad1: 0x6d964a20, 0x30ad2: 0x6d964c20, 0x30ad3: 0x6d964e20, + 0x30ad4: 0x6d965020, 0x30ad5: 0x6d965220, 0x30ad6: 0x6d965420, 0x30ad7: 0x6d965620, + 0x30ad8: 0x6db93c20, 0x30ad9: 0x6db93e20, 0x30ada: 0x6db94020, 0x30adb: 0x6db94220, + 0x30adc: 0x6db94420, 0x30add: 0x6db94620, 0x30ade: 0x6db94820, 0x30adf: 0x6db94a20, + 0x30ae0: 0x6db94c20, 0x30ae1: 0x6db94e20, 0x30ae2: 0x6db95020, 0x30ae3: 0x6db95220, + 0x30ae4: 0x6db95420, 0x30ae5: 0x6dd78220, 0x30ae6: 0x6dd78420, 0x30ae7: 0x6dd78620, + 0x30ae8: 0x6dd78820, 0x30ae9: 0x6dd78a20, 0x30aea: 0x6dd78c20, 0x30aeb: 0x6dd78e20, + 0x30aec: 0x6dd79020, 0x30aed: 0x6df01420, 0x30aee: 0x6df01620, 0x30aef: 0x6df01820, + 0x30af0: 0x6df01a20, 0x30af1: 0x6df01c20, 0x30af2: 0x6e043420, 0x30af3: 0x6e043620, + 0x30af4: 0x6e043820, 0x30af5: 0x6e043a20, 0x30af6: 0x6e043c20, 0x30af7: 0x6e043e20, + 0x30af8: 0x6e044020, 0x30af9: 0x6e156020, 0x30afa: 0x6e156220, 0x30afb: 0x6e156420, + 0x30afc: 0x6e2d2620, 0x30afd: 0x6e350220, 0x30afe: 0x6e350420, 0x30aff: 0x6e350620, + // Block 0xc2c, offset 0x30b00 + 0x30b00: 0x6e350820, 0x30b01: 0x6e3aaa20, 0x30b02: 0x6e351420, 0x30b03: 0x6e3e6e20, + 0x30b04: 0x6e3e7020, 0x30b05: 0x6e413820, 0x30b06: 0x6c27ee20, 0x30b07: 0x6c41da20, + 0x30b08: 0x6cb4c420, 0x30b09: 0x6ce46a20, 0x30b0a: 0x6ce46c20, 0x30b0b: 0x6e046220, + 0x30b0c: 0x6c27f020, 0x30b0d: 0x6c625e20, 0x30b0e: 0x6cb4cc20, 0x30b0f: 0x6ce47020, + 0x30b10: 0x6dd7ce20, 0x30b11: 0x6c41dc20, 0x30b12: 0x6c41de20, 0x30b13: 0x6c626220, + 0x30b14: 0x6c626420, 0x30b15: 0x6c890e20, 0x30b16: 0x6c891020, 0x30b17: 0x6c891220, + 0x30b18: 0x6c891420, 0x30b19: 0x6c891620, 0x30b1a: 0x6c891820, 0x30b1b: 0x6c891a20, + 0x30b1c: 0x6c891c20, 0x30b1d: 0x6c891e20, 0x30b1e: 0x6c892020, 0x30b1f: 0x6c892220, + 0x30b20: 0x6c892420, 0x30b21: 0x6c892620, 0x30b22: 0x6c892820, 0x30b23: 0x6cb4d620, + 0x30b24: 0x6cb4d820, 0x30b25: 0x6cb4da20, 0x30b26: 0x6cb4dc20, 0x30b27: 0x6cb4de20, + 0x30b28: 0x6cb4e020, 0x30b29: 0x6cb4e220, 0x30b2a: 0x6cb4e420, 0x30b2b: 0x6cb4e620, + 0x30b2c: 0x6cb4e820, 0x30b2d: 0x6cb4ea20, 0x30b2e: 0x6cb4ec20, 0x30b2f: 0x6cb4ee20, + 0x30b30: 0x6cb4f020, 0x30b31: 0x6cb4f220, 0x30b32: 0x6cb4f420, 0x30b33: 0x6cb4f620, + 0x30b34: 0x6cb4f820, 0x30b35: 0x6cb4fa20, 0x30b36: 0x6cb4fc20, 0x30b37: 0x6cb4fe20, + 0x30b38: 0x6cb50020, 0x30b39: 0x6cb50220, 0x30b3a: 0x6cb50420, 0x30b3b: 0x6cb50620, + 0x30b3c: 0x6cb50820, 0x30b3d: 0x6ce48420, 0x30b3e: 0x6ce48620, 0x30b3f: 0x6ce48820, + // Block 0xc2d, offset 0x30b40 + 0x30b40: 0x6ce48a20, 0x30b41: 0x6ce48c20, 0x30b42: 0x6ce48e20, 0x30b43: 0x6ce49020, + 0x30b44: 0x6ce49220, 0x30b45: 0x6ce49420, 0x30b46: 0x6ce49620, 0x30b47: 0x6ce49820, + 0x30b48: 0x6ce49a20, 0x30b49: 0x6ce49c20, 0x30b4a: 0x6ce49e20, 0x30b4b: 0x6ce4a020, + 0x30b4c: 0x6ce4a220, 0x30b4d: 0x6ce4a420, 0x30b4e: 0x6ce4a620, 0x30b4f: 0x6ce4a820, + 0x30b50: 0x6ce4aa20, 0x30b51: 0x6ce4ac20, 0x30b52: 0x6ce4ae20, 0x30b53: 0x6ce4b020, + 0x30b54: 0x6ce4b220, 0x30b55: 0x6ce4b420, 0x30b56: 0x6ce4b620, 0x30b57: 0x6ce4b820, + 0x30b58: 0x6ce4ba20, 0x30b59: 0x6ce4bc20, 0x30b5a: 0x6ce4be20, 0x30b5b: 0x6ce4c020, + 0x30b5c: 0x6ce4c220, 0x30b5d: 0x6ce4c420, 0x30b5e: 0x6ce4c620, 0x30b5f: 0x6ce4c820, + 0x30b60: 0x6ce4ca20, 0x30b61: 0x6ce4cc20, 0x30b62: 0x6ce4ce20, 0x30b63: 0x6ce4d020, + 0x30b64: 0x6ce4d220, 0x30b65: 0x6ce4d420, 0x30b66: 0x6ce4d620, 0x30b67: 0x6ce4d820, + 0x30b68: 0x6ce4da20, 0x30b69: 0x6ce4dc20, 0x30b6a: 0x6ce4de20, 0x30b6b: 0x6ce4e020, + 0x30b6c: 0x6ce4e220, 0x30b6d: 0x6d40d420, 0x30b6e: 0x6d12c620, 0x30b6f: 0x6d12c820, + 0x30b70: 0x6d12ca20, 0x30b71: 0x6d12cc20, 0x30b72: 0x6d12ce20, 0x30b73: 0x6d12d020, + 0x30b74: 0x6d12d220, 0x30b75: 0x6d12d420, 0x30b76: 0x6d12d620, 0x30b77: 0x6d12d820, + 0x30b78: 0x6d12da20, 0x30b79: 0x6d12dc20, 0x30b7a: 0x6d12de20, 0x30b7b: 0x6d12e020, + 0x30b7c: 0x6d12e220, 0x30b7d: 0x6d12e420, 0x30b7e: 0x6d12e620, 0x30b7f: 0x6d12e820, + // Block 0xc2e, offset 0x30b80 + 0x30b80: 0x6d12ea20, 0x30b81: 0x6d12ec20, 0x30b82: 0x6d12ee20, 0x30b83: 0x6d12f020, + 0x30b84: 0x6d12f220, 0x30b85: 0x6d12f420, 0x30b86: 0x6d12f620, 0x30b87: 0x6d12f820, + 0x30b88: 0x6d12fa20, 0x30b89: 0x6d12fc20, 0x30b8a: 0x6d12fe20, 0x30b8b: 0x6d130020, + 0x30b8c: 0x6d130220, 0x30b8d: 0x6d130420, 0x30b8e: 0x6d130620, 0x30b8f: 0x6d130820, + 0x30b90: 0x6d130a20, 0x30b91: 0x6d130c20, 0x30b92: 0x6d130e20, 0x30b93: 0x6d131020, + 0x30b94: 0x6d131220, 0x30b95: 0x6d131420, 0x30b96: 0x6d131620, 0x30b97: 0x6d131820, + 0x30b98: 0x6d131a20, 0x30b99: 0x6d131c20, 0x30b9a: 0x6d131e20, 0x30b9b: 0x6d132020, + 0x30b9c: 0x6d132220, 0x30b9d: 0x6d132420, 0x30b9e: 0x6d132620, 0x30b9f: 0x6d132820, + 0x30ba0: 0x6d132a20, 0x30ba1: 0x6d132c20, 0x30ba2: 0x6d132e20, 0x30ba3: 0x6d133020, + 0x30ba4: 0x6d133220, 0x30ba5: 0x6d133420, 0x30ba6: 0x6d133620, 0x30ba7: 0x6d133820, + 0x30ba8: 0x6d133a20, 0x30ba9: 0x6d133c20, 0x30baa: 0x6d133e20, 0x30bab: 0x6d134020, + 0x30bac: 0x6d134220, 0x30bad: 0x6d134420, 0x30bae: 0x6d134620, 0x30baf: 0x6d134820, + 0x30bb0: 0x6d134a20, 0x30bb1: 0x6d134c20, 0x30bb2: 0x6d134e20, 0x30bb3: 0x6d135020, + 0x30bb4: 0x6d135220, 0x30bb5: 0x6d40e420, 0x30bb6: 0x6d40e620, 0x30bb7: 0x6d40e820, + 0x30bb8: 0x6d40ea20, 0x30bb9: 0x6d40ec20, 0x30bba: 0x6d40ee20, 0x30bbb: 0x6d40f020, + 0x30bbc: 0x6d41c020, 0x30bbd: 0x6d40f220, 0x30bbe: 0x6d40f420, 0x30bbf: 0x6d40f620, + // Block 0xc2f, offset 0x30bc0 + 0x30bc0: 0x6d40f820, 0x30bc1: 0x6d40fa20, 0x30bc2: 0x6d40fc20, 0x30bc3: 0x6d40fe20, + 0x30bc4: 0x6d410020, 0x30bc5: 0x6d410220, 0x30bc6: 0x6d410420, 0x30bc7: 0x6d410620, + 0x30bc8: 0x6d410820, 0x30bc9: 0x6d410a20, 0x30bca: 0x6d410c20, 0x30bcb: 0x6d410e20, + 0x30bcc: 0x6d411020, 0x30bcd: 0x6d411220, 0x30bce: 0x6d411420, 0x30bcf: 0x6d135420, + 0x30bd0: 0x6d411620, 0x30bd1: 0x6d411820, 0x30bd2: 0x6d411a20, 0x30bd3: 0x6d411c20, + 0x30bd4: 0x6d411e20, 0x30bd5: 0x6d412020, 0x30bd6: 0x6d412220, 0x30bd7: 0x6d412420, + 0x30bd8: 0x6d412620, 0x30bd9: 0x6d412820, 0x30bda: 0x6d412a20, 0x30bdb: 0x6d412c20, + 0x30bdc: 0x6d412e20, 0x30bdd: 0x6d413020, 0x30bde: 0x6d413220, 0x30bdf: 0x6d413420, + 0x30be0: 0x6d413620, 0x30be1: 0x6d413820, 0x30be2: 0x6d413a20, 0x30be3: 0x6d413c20, + 0x30be4: 0x6d413e20, 0x30be5: 0x6d414020, 0x30be6: 0x6d414220, 0x30be7: 0x6d414420, + 0x30be8: 0x6d414620, 0x30be9: 0x6d414820, 0x30bea: 0x6d414a20, 0x30beb: 0x6d414c20, + 0x30bec: 0x6d414e20, 0x30bed: 0x6d415020, 0x30bee: 0x6d415220, 0x30bef: 0x6d415420, + 0x30bf0: 0x6d415620, 0x30bf1: 0x6d415820, 0x30bf2: 0x6d6dc220, 0x30bf3: 0x6d6dc420, + 0x30bf4: 0x6d6dc620, 0x30bf5: 0x6d6dc820, 0x30bf6: 0x6d6dca20, 0x30bf7: 0x6d6dcc20, + 0x30bf8: 0x6d6dce20, 0x30bf9: 0x6d6dd020, 0x30bfa: 0x6d6dd220, 0x30bfb: 0x6d6dd420, + 0x30bfc: 0x6d6dd620, 0x30bfd: 0x6d6dd820, 0x30bfe: 0x6d6dda20, 0x30bff: 0x6d6ddc20, + // Block 0xc30, offset 0x30c00 + 0x30c00: 0x6d6dde20, 0x30c01: 0x6d6de020, 0x30c02: 0x6d6de220, 0x30c03: 0x6d6de420, + 0x30c04: 0x6d6de620, 0x30c05: 0x6d6de820, 0x30c06: 0x6d6dea20, 0x30c07: 0x6d6dec20, + 0x30c08: 0x6d6dee20, 0x30c09: 0x6d6df020, 0x30c0a: 0x6d6df220, 0x30c0b: 0x6d969820, + 0x30c0c: 0x6d6df420, 0x30c0d: 0x6d6df620, 0x30c0e: 0x6d6df820, 0x30c0f: 0x6d6dfa20, + 0x30c10: 0x6d6dfc20, 0x30c11: 0x6d6dfe20, 0x30c12: 0x6d6e0020, 0x30c13: 0x6d6e0220, + 0x30c14: 0x6d6e0420, 0x30c15: 0x6d6e0620, 0x30c16: 0x6d6e0820, 0x30c17: 0x6d6e0a20, + 0x30c18: 0x6d6e0c20, 0x30c19: 0x6d6e0e20, 0x30c1a: 0x6d6e1020, 0x30c1b: 0x6d6e1220, + 0x30c1c: 0x6d6e1420, 0x30c1d: 0x6d6e1620, 0x30c1e: 0x6d6e1820, 0x30c1f: 0x6d6e1a20, + 0x30c20: 0x6d6e1c20, 0x30c21: 0x6d6e1e20, 0x30c22: 0x6d6e2020, 0x30c23: 0x6d6e2220, + 0x30c24: 0x6d6e2420, 0x30c25: 0x6d6e2620, 0x30c26: 0x6d6e2820, 0x30c27: 0x6d6e2a20, + 0x30c28: 0x6d6e2c20, 0x30c29: 0x6d6e2e20, 0x30c2a: 0x6d6e3020, 0x30c2b: 0x6d6e3220, + 0x30c2c: 0x6d6e3420, 0x30c2d: 0x6d6e3620, 0x30c2e: 0x6d41be20, 0x30c2f: 0x6d6e3820, + 0x30c30: 0x6d6e3a20, 0x30c31: 0x6d6e3c20, 0x30c32: 0x6d6e3e20, 0x30c33: 0x6d6e4020, + 0x30c34: 0x6d6e4220, 0x30c35: 0x6d6e4420, 0x30c36: 0x6d6e4620, 0x30c37: 0x6d96a220, + 0x30c38: 0x6d96a420, 0x30c39: 0x6d96a620, 0x30c3a: 0x6d96a820, 0x30c3b: 0x6d96aa20, + 0x30c3c: 0x6d96ac20, 0x30c3d: 0x6d96ae20, 0x30c3e: 0x6d96b020, 0x30c3f: 0x6d96b220, + // Block 0xc31, offset 0x30c40 + 0x30c40: 0x6d96b420, 0x30c41: 0x6d96b620, 0x30c42: 0x6d96b820, 0x30c43: 0x6d96ba20, + 0x30c44: 0x6d96bc20, 0x30c45: 0x6d96be20, 0x30c46: 0x6d96c020, 0x30c47: 0x6d96c220, + 0x30c48: 0x6d96c420, 0x30c49: 0x6d96c620, 0x30c4a: 0x6d96c820, 0x30c4b: 0x6d96ca20, + 0x30c4c: 0x6d96cc20, 0x30c4d: 0x6d96ce20, 0x30c4e: 0x6d96d020, 0x30c4f: 0x6d96d220, + 0x30c50: 0x6d96d420, 0x30c51: 0x6d96d620, 0x30c52: 0x6d96d820, 0x30c53: 0x6d96da20, + 0x30c54: 0x6d96dc20, 0x30c55: 0x6d96de20, 0x30c56: 0x6d96e020, 0x30c57: 0x6d96e220, + 0x30c58: 0x6d96e420, 0x30c59: 0x6d96e620, 0x30c5a: 0x6d96e820, 0x30c5b: 0x6d96ea20, + 0x30c5c: 0x6d96ec20, 0x30c5d: 0x6d96ee20, 0x30c5e: 0x6d96f020, 0x30c5f: 0x6d96f220, + 0x30c60: 0x6d96f420, 0x30c61: 0x6d96f620, 0x30c62: 0x6d96f820, 0x30c63: 0x6d96fa20, + 0x30c64: 0x6d96fc20, 0x30c65: 0x6d96fe20, 0x30c66: 0x6d970020, 0x30c67: 0x6d970220, + 0x30c68: 0x6db9ac20, 0x30c69: 0x6d970420, 0x30c6a: 0x6d970620, 0x30c6b: 0x6d970820, + 0x30c6c: 0x6d970a20, 0x30c6d: 0x6d970c20, 0x30c6e: 0x6d970e20, 0x30c6f: 0x6d971020, + 0x30c70: 0x6d971220, 0x30c71: 0x6d971420, 0x30c72: 0x6d971620, 0x30c73: 0x6d971820, + 0x30c74: 0x6d971a20, 0x30c75: 0x6d971c20, 0x30c76: 0x6d971e20, 0x30c77: 0x6d972020, + 0x30c78: 0x6d972220, 0x30c79: 0x6d972420, 0x30c7a: 0x6d972620, 0x30c7b: 0x6d972820, + 0x30c7c: 0x6d972a20, 0x30c7d: 0x6d972c20, 0x30c7e: 0x6d972e20, 0x30c7f: 0x6d973020, + // Block 0xc32, offset 0x30c80 + 0x30c80: 0x6d973220, 0x30c81: 0x6d973420, 0x30c82: 0x6d973620, 0x30c83: 0x6d973820, + 0x30c84: 0x6d973a20, 0x30c85: 0x6d973c20, 0x30c86: 0x6d973e20, 0x30c87: 0x6db9ae20, + 0x30c88: 0x6d974020, 0x30c89: 0x6db9b020, 0x30c8a: 0x6db9b220, 0x30c8b: 0x6db9b420, + 0x30c8c: 0x6db9b620, 0x30c8d: 0x6db9b820, 0x30c8e: 0x6db9ba20, 0x30c8f: 0x6db9bc20, + 0x30c90: 0x6db9be20, 0x30c91: 0x6db9c020, 0x30c92: 0x6db9c220, 0x30c93: 0x6db9c420, + 0x30c94: 0x6db9c620, 0x30c95: 0x6db9c820, 0x30c96: 0x6db9ca20, 0x30c97: 0x6db9cc20, + 0x30c98: 0x6db9ce20, 0x30c99: 0x6db9d020, 0x30c9a: 0x6db9d220, 0x30c9b: 0x6db9d420, + 0x30c9c: 0x6db9d620, 0x30c9d: 0x6db9d820, 0x30c9e: 0x6db9da20, 0x30c9f: 0x6db9dc20, + 0x30ca0: 0x6db9de20, 0x30ca1: 0x6db9e020, 0x30ca2: 0x6db9e220, 0x30ca3: 0x6db9e420, + 0x30ca4: 0x6db9e620, 0x30ca5: 0x6db9e820, 0x30ca6: 0x6db9ea20, 0x30ca7: 0x6db9ec20, + 0x30ca8: 0x6db9ee20, 0x30ca9: 0x6db9f020, 0x30caa: 0x6db9f220, 0x30cab: 0x6db9f420, + 0x30cac: 0x6db9f620, 0x30cad: 0x6db9f820, 0x30cae: 0x6db9fa20, 0x30caf: 0x6db9fc20, + 0x30cb0: 0x6db9fe20, 0x30cb1: 0x6dba0020, 0x30cb2: 0x6dba0220, 0x30cb3: 0x6dba0420, + 0x30cb4: 0x6dba0620, 0x30cb5: 0x6dba0820, 0x30cb6: 0x6dba0a20, 0x30cb7: 0x6dba0c20, + 0x30cb8: 0x6dba0e20, 0x30cb9: 0x6dba1020, 0x30cba: 0x6d97ec20, 0x30cbb: 0x6dba1220, + 0x30cbc: 0x6dba1420, 0x30cbd: 0x6dba1620, 0x30cbe: 0x6dba1820, 0x30cbf: 0x6dba1a20, + // Block 0xc33, offset 0x30cc0 + 0x30cc0: 0x6dba1c20, 0x30cc1: 0x6dba1e20, 0x30cc2: 0x6dba2020, 0x30cc3: 0x6dba2220, + 0x30cc4: 0x6dba2420, 0x30cc5: 0x6dba2620, 0x30cc6: 0x6dba2820, 0x30cc7: 0x6dba2a20, + 0x30cc8: 0x6dd7ee20, 0x30cc9: 0x6dd7f020, 0x30cca: 0x6dd7f220, 0x30ccb: 0x6dd7f420, + 0x30ccc: 0x6dd7f620, 0x30ccd: 0x6dd7f820, 0x30cce: 0x6dd7fa20, 0x30ccf: 0x6dd7fc20, + 0x30cd0: 0x6dd7fe20, 0x30cd1: 0x6dd80020, 0x30cd2: 0x6dd80220, 0x30cd3: 0x6dd80420, + 0x30cd4: 0x6dd80620, 0x30cd5: 0x6dd80820, 0x30cd6: 0x6dd80a20, 0x30cd7: 0x6dd80c20, + 0x30cd8: 0x6dd80e20, 0x30cd9: 0x6dd81020, 0x30cda: 0x6dd81220, 0x30cdb: 0x6dd81420, + 0x30cdc: 0x6dd81620, 0x30cdd: 0x6dd81820, 0x30cde: 0x6dd81a20, 0x30cdf: 0x6dd81c20, + 0x30ce0: 0x6dd81e20, 0x30ce1: 0x6dbaec20, 0x30ce2: 0x6dd82020, 0x30ce3: 0x6dd82220, + 0x30ce4: 0x6dd82420, 0x30ce5: 0x6dd82620, 0x30ce6: 0x6dd82820, 0x30ce7: 0x6dd82a20, + 0x30ce8: 0x6dd82c20, 0x30ce9: 0x6df06e20, 0x30cea: 0x6dd82e20, 0x30ceb: 0x6dd83020, + 0x30cec: 0x6dd83220, 0x30ced: 0x6dd83420, 0x30cee: 0x6dd83620, 0x30cef: 0x6dbaee20, + 0x30cf0: 0x6dd83820, 0x30cf1: 0x6dd83a20, 0x30cf2: 0x6dd83c20, 0x30cf3: 0x6dd83e20, + 0x30cf4: 0x6dd84020, 0x30cf5: 0x6dd84220, 0x30cf6: 0x6dd84420, 0x30cf7: 0x6dd84620, + 0x30cf8: 0x6dd84820, 0x30cf9: 0x6dd84a20, 0x30cfa: 0x6dd84c20, 0x30cfb: 0x6dd84e20, + 0x30cfc: 0x6dd85020, 0x30cfd: 0x6dd85220, 0x30cfe: 0x6dd85420, 0x30cff: 0x6dd85620, + // Block 0xc34, offset 0x30d00 + 0x30d00: 0x6df07020, 0x30d01: 0x6df07220, 0x30d02: 0x6df07420, 0x30d03: 0x6df07620, + 0x30d04: 0x6df07820, 0x30d05: 0x6df07a20, 0x30d06: 0x6df07c20, 0x30d07: 0x6df07e20, + 0x30d08: 0x6df08020, 0x30d09: 0x6df08220, 0x30d0a: 0x6df08420, 0x30d0b: 0x6df08620, + 0x30d0c: 0x6df08820, 0x30d0d: 0x6df08a20, 0x30d0e: 0x6df08c20, 0x30d0f: 0x6df08e20, + 0x30d10: 0x6df09020, 0x30d11: 0x6df09220, 0x30d12: 0x6df09420, 0x30d13: 0x6df09620, + 0x30d14: 0x6df09820, 0x30d15: 0x6df09a20, 0x30d16: 0x6df09c20, 0x30d17: 0x6df09e20, + 0x30d18: 0x6df0a020, 0x30d19: 0x6df0a220, 0x30d1a: 0x6df0a420, 0x30d1b: 0x6df0a620, + 0x30d1c: 0x6df0a820, 0x30d1d: 0x6df0aa20, 0x30d1e: 0x6df0ac20, 0x30d1f: 0x6df0ae20, + 0x30d20: 0x6df0b020, 0x30d21: 0x6df0b220, 0x30d22: 0x6df0b420, 0x30d23: 0x6df0b620, + 0x30d24: 0x6df0b820, 0x30d25: 0x6df0ba20, 0x30d26: 0x6df0bc20, 0x30d27: 0x6df0be20, + 0x30d28: 0x6df0c020, 0x30d29: 0x6df0c220, 0x30d2a: 0x6df0c420, 0x30d2b: 0x6df0c620, + 0x30d2c: 0x6df0c820, 0x30d2d: 0x6df0ca20, 0x30d2e: 0x6df0cc20, 0x30d2f: 0x6df0ce20, + 0x30d30: 0x6df0d020, 0x30d31: 0x6df0d220, 0x30d32: 0x6df0d420, 0x30d33: 0x6e047c20, + 0x30d34: 0x6e159420, 0x30d35: 0x6e047e20, 0x30d36: 0x6e048020, 0x30d37: 0x6e048220, + 0x30d38: 0x6e048420, 0x30d39: 0x6df0d620, 0x30d3a: 0x6e048620, 0x30d3b: 0x6e048820, + 0x30d3c: 0x6e048a20, 0x30d3d: 0x6e048c20, 0x30d3e: 0x6e048e20, 0x30d3f: 0x6e049020, + // Block 0xc35, offset 0x30d40 + 0x30d40: 0x6e049220, 0x30d41: 0x6e049420, 0x30d42: 0x6e049620, 0x30d43: 0x6e049820, + 0x30d44: 0x6e049a20, 0x30d45: 0x6e049c20, 0x30d46: 0x6e049e20, 0x30d47: 0x6e04a020, + 0x30d48: 0x6e04a220, 0x30d49: 0x6e04a420, 0x30d4a: 0x6e04a620, 0x30d4b: 0x6e04a820, + 0x30d4c: 0x6e04aa20, 0x30d4d: 0x6e04ac20, 0x30d4e: 0x6e04ae20, 0x30d4f: 0x6e04b020, + 0x30d50: 0x6e04b220, 0x30d51: 0x6e04b420, 0x30d52: 0x6e04b620, 0x30d53: 0x6e04b820, + 0x30d54: 0x6e04ba20, 0x30d55: 0x6e04bc20, 0x30d56: 0x6e04be20, 0x30d57: 0x6e04c020, + 0x30d58: 0x6e04c220, 0x30d59: 0x6e04c420, 0x30d5a: 0x6e04c620, 0x30d5b: 0x6e04c820, + 0x30d5c: 0x6e04ca20, 0x30d5d: 0x6e04cc20, 0x30d5e: 0x6e04ce20, 0x30d5f: 0x6e04d020, + 0x30d60: 0x6e04d220, 0x30d61: 0x6e04d420, 0x30d62: 0x6e04d620, 0x30d63: 0x6e04d820, + 0x30d64: 0x6e04da20, 0x30d65: 0x6e04dc20, 0x30d66: 0x6e04de20, 0x30d67: 0x6e04e020, + 0x30d68: 0x6e04e220, 0x30d69: 0x6e159620, 0x30d6a: 0x6e159820, 0x30d6b: 0x6e159a20, + 0x30d6c: 0x6e159c20, 0x30d6d: 0x6e159e20, 0x30d6e: 0x6e15a020, 0x30d6f: 0x6e058820, + 0x30d70: 0x6e15a220, 0x30d71: 0x6e15a420, 0x30d72: 0x6e15a620, 0x30d73: 0x6e15a820, + 0x30d74: 0x6e15aa20, 0x30d75: 0x6e15ac20, 0x30d76: 0x6e15ae20, 0x30d77: 0x6e15b020, + 0x30d78: 0x6e15b220, 0x30d79: 0x6e15b420, 0x30d7a: 0x6e15b620, 0x30d7b: 0x6e15b820, + 0x30d7c: 0x6e058a20, 0x30d7d: 0x6e15ba20, 0x30d7e: 0x6e15bc20, 0x30d7f: 0x6e15be20, + // Block 0xc36, offset 0x30d80 + 0x30d80: 0x6e15c020, 0x30d81: 0x6e15c220, 0x30d82: 0x6e231620, 0x30d83: 0x6e231820, + 0x30d84: 0x6e231a20, 0x30d85: 0x6e231c20, 0x30d86: 0x6e231e20, 0x30d87: 0x6e232020, + 0x30d88: 0x6e232220, 0x30d89: 0x6e232420, 0x30d8a: 0x6e232620, 0x30d8b: 0x6e232820, + 0x30d8c: 0x6e232a20, 0x30d8d: 0x6e232c20, 0x30d8e: 0x6e232e20, 0x30d8f: 0x6e233020, + 0x30d90: 0x6e233220, 0x30d91: 0x6e233420, 0x30d92: 0x6e233620, 0x30d93: 0x6e233820, + 0x30d94: 0x6e233a20, 0x30d95: 0x6e2d4620, 0x30d96: 0x6e2d4820, 0x30d97: 0x6e2d4a20, + 0x30d98: 0x6e2d4c20, 0x30d99: 0x6e2d4e20, 0x30d9a: 0x6e2d5020, 0x30d9b: 0x6e2d5220, + 0x30d9c: 0x6e2d5420, 0x30d9d: 0x6e2d5620, 0x30d9e: 0x6e2d5820, 0x30d9f: 0x6e2d5a20, + 0x30da0: 0x6e2d5c20, 0x30da1: 0x6e2d5e20, 0x30da2: 0x6e2d6020, 0x30da3: 0x6e2d6220, + 0x30da4: 0x6e2d6420, 0x30da5: 0x6e2d6620, 0x30da6: 0x6e2d6820, 0x30da7: 0x6e233c20, + 0x30da8: 0x6e351c20, 0x30da9: 0x6e351e20, 0x30daa: 0x6e352020, 0x30dab: 0x6e352220, + 0x30dac: 0x6e352420, 0x30dad: 0x6e3ab420, 0x30dae: 0x6e3ab620, 0x30daf: 0x6e3ab820, + 0x30db0: 0x6e3aba20, 0x30db1: 0x6e3abc20, 0x30db2: 0x6e3abe20, 0x30db3: 0x6e3ac020, + 0x30db4: 0x6e3e7620, 0x30db5: 0x6e3e7820, 0x30db6: 0x6e3e7a20, 0x30db7: 0x6e3e7c20, + 0x30db8: 0x6e3e7e20, 0x30db9: 0x6e3e8020, 0x30dba: 0x6e3e8220, 0x30dbb: 0x6e414020, + 0x30dbc: 0x6e414220, 0x30dbd: 0x6e414420, 0x30dbe: 0x6e414620, 0x30dbf: 0x6e434020, + // Block 0xc37, offset 0x30dc0 + 0x30dc0: 0x6e434220, 0x30dc1: 0x6e434420, 0x30dc2: 0x6e434620, 0x30dc3: 0x6e449420, + 0x30dc4: 0x6e449620, 0x30dc5: 0x6c0aaa20, 0x30dc6: 0x6c158c20, 0x30dc7: 0x6c158e20, + 0x30dc8: 0x6c27f220, 0x30dc9: 0x6c27f420, 0x30dca: 0x6c27f620, 0x30dcb: 0x6c27f820, + 0x30dcc: 0x6c27fa20, 0x30dcd: 0x6c41e020, 0x30dce: 0x6c41e220, 0x30dcf: 0x6c41e420, + 0x30dd0: 0x6c41e620, 0x30dd1: 0x6c41e820, 0x30dd2: 0x6c41ea20, 0x30dd3: 0x6c41ec20, + 0x30dd4: 0x6c41ee20, 0x30dd5: 0x6c41f020, 0x30dd6: 0x6c41f220, 0x30dd7: 0x6c41f420, + 0x30dd8: 0x6c626620, 0x30dd9: 0x6c626820, 0x30dda: 0x6c626a20, 0x30ddb: 0x6c626c20, + 0x30ddc: 0x6c626e20, 0x30ddd: 0x6c627020, 0x30dde: 0x6c627220, 0x30ddf: 0x6c627420, + 0x30de0: 0x6c627620, 0x30de1: 0x6c627820, 0x30de2: 0x6c627a20, 0x30de3: 0x6c627c20, + 0x30de4: 0x6c627e20, 0x30de5: 0x6c628020, 0x30de6: 0x6c628220, 0x30de7: 0x6c628420, + 0x30de8: 0x6c628620, 0x30de9: 0x6c628820, 0x30dea: 0x6c628a20, 0x30deb: 0x6c628c20, + 0x30dec: 0x6c628e20, 0x30ded: 0x6c629020, 0x30dee: 0x6c629220, 0x30def: 0x6c629420, + 0x30df0: 0x6c893420, 0x30df1: 0x6c893620, 0x30df2: 0x6c893820, 0x30df3: 0x6c893a20, + 0x30df4: 0x6c893c20, 0x30df5: 0x6c893e20, 0x30df6: 0x6c894020, 0x30df7: 0x6c894220, + 0x30df8: 0x6c894420, 0x30df9: 0x6c894620, 0x30dfa: 0x6c894820, 0x30dfb: 0x6c894a20, + 0x30dfc: 0x6c894c20, 0x30dfd: 0x6c894e20, 0x30dfe: 0x6c895020, 0x30dff: 0x6c895220, + // Block 0xc38, offset 0x30e00 + 0x30e00: 0x6c895420, 0x30e01: 0x6c895620, 0x30e02: 0x6c895820, 0x30e03: 0x6c895a20, + 0x30e04: 0x6c895c20, 0x30e05: 0x6c895e20, 0x30e06: 0x6c896020, 0x30e07: 0x6c896220, + 0x30e08: 0x6c896420, 0x30e09: 0x6c896620, 0x30e0a: 0x6c896820, 0x30e0b: 0x6c896a20, + 0x30e0c: 0x6c896c20, 0x30e0d: 0x6c896e20, 0x30e0e: 0x6c897020, 0x30e0f: 0x6cb52220, + 0x30e10: 0x6cb52420, 0x30e11: 0x6cb52620, 0x30e12: 0x6cb52820, 0x30e13: 0x6cb52a20, + 0x30e14: 0x6cb52c20, 0x30e15: 0x6cb52e20, 0x30e16: 0x6cb53020, 0x30e17: 0x6cb53220, + 0x30e18: 0x6cb53420, 0x30e19: 0x6cb53620, 0x30e1a: 0x6cb53820, 0x30e1b: 0x6cb53a20, + 0x30e1c: 0x6cb53c20, 0x30e1d: 0x6cb53e20, 0x30e1e: 0x6cb54020, 0x30e1f: 0x6cb54220, + 0x30e20: 0x6cb54420, 0x30e21: 0x6cb54620, 0x30e22: 0x6cb54820, 0x30e23: 0x6cb54a20, + 0x30e24: 0x6cb54c20, 0x30e25: 0x6cb54e20, 0x30e26: 0x6cb55020, 0x30e27: 0x6cb55220, + 0x30e28: 0x6cb55420, 0x30e29: 0x6cb55620, 0x30e2a: 0x6cb55820, 0x30e2b: 0x6cb55a20, + 0x30e2c: 0x6cb55c20, 0x30e2d: 0x6cb55e20, 0x30e2e: 0x6cb56020, 0x30e2f: 0x6cb56220, + 0x30e30: 0x6cb56420, 0x30e31: 0x6cb56620, 0x30e32: 0x6cb56820, 0x30e33: 0x6cb56a20, + 0x30e34: 0x6cb56c20, 0x30e35: 0x6cb56e20, 0x30e36: 0x6cb57020, 0x30e37: 0x6cb57220, + 0x30e38: 0x6ce52a20, 0x30e39: 0x6ce52c20, 0x30e3a: 0x6ce52e20, 0x30e3b: 0x6ce53020, + 0x30e3c: 0x6ce53220, 0x30e3d: 0x6ce53420, 0x30e3e: 0x6ce53620, 0x30e3f: 0x6ce53820, + // Block 0xc39, offset 0x30e40 + 0x30e40: 0x6ce53a20, 0x30e41: 0x6ce53c20, 0x30e42: 0x6ce53e20, 0x30e43: 0x6ce54020, + 0x30e44: 0x6ce54220, 0x30e45: 0x6ce54420, 0x30e46: 0x6ce54620, 0x30e47: 0x6ce54820, + 0x30e48: 0x6ce54a20, 0x30e49: 0x6ce54c20, 0x30e4a: 0x6ce54e20, 0x30e4b: 0x6ce55020, + 0x30e4c: 0x6ce55220, 0x30e4d: 0x6ce55420, 0x30e4e: 0x6ce55620, 0x30e4f: 0x6ce55820, + 0x30e50: 0x6ce55a20, 0x30e51: 0x6ce55c20, 0x30e52: 0x6ce55e20, 0x30e53: 0x6ce56020, + 0x30e54: 0x6ce56220, 0x30e55: 0x6ce56420, 0x30e56: 0x6d13a420, 0x30e57: 0x6d13a620, + 0x30e58: 0x6d13a820, 0x30e59: 0x6d13aa20, 0x30e5a: 0x6d13ac20, 0x30e5b: 0x6d13ae20, + 0x30e5c: 0x6d13b020, 0x30e5d: 0x6d13b220, 0x30e5e: 0x6d13b420, 0x30e5f: 0x6d13b620, + 0x30e60: 0x6d13b820, 0x30e61: 0x6d13ba20, 0x30e62: 0x6d13bc20, 0x30e63: 0x6d13be20, + 0x30e64: 0x6d13c020, 0x30e65: 0x6d13c220, 0x30e66: 0x6d13c420, 0x30e67: 0x6d13c620, + 0x30e68: 0x6d13c820, 0x30e69: 0x6d13ca20, 0x30e6a: 0x6d13cc20, 0x30e6b: 0x6d13ce20, + 0x30e6c: 0x6d13d020, 0x30e6d: 0x6d13d220, 0x30e6e: 0x6d13d420, 0x30e6f: 0x6d13d620, + 0x30e70: 0x6d13d820, 0x30e71: 0x6d13da20, 0x30e72: 0x6d41c420, 0x30e73: 0x6d41c620, + 0x30e74: 0x6d41c820, 0x30e75: 0x6d41ca20, 0x30e76: 0x6d41cc20, 0x30e77: 0x6d41ce20, + 0x30e78: 0x6d41d020, 0x30e79: 0x6d41d220, 0x30e7a: 0x6d41d420, 0x30e7b: 0x6d41d620, + 0x30e7c: 0x6d41d820, 0x30e7d: 0x6d41da20, 0x30e7e: 0x6d41dc20, 0x30e7f: 0x6d41de20, + // Block 0xc3a, offset 0x30e80 + 0x30e80: 0x6d41e020, 0x30e81: 0x6d41e220, 0x30e82: 0x6d41e420, 0x30e83: 0x6d41e620, + 0x30e84: 0x6d41e820, 0x30e85: 0x6d41ea20, 0x30e86: 0x6d6ed220, 0x30e87: 0x6d6ed420, + 0x30e88: 0x6d6ed620, 0x30e89: 0x6d6ed820, 0x30e8a: 0x6d6eda20, 0x30e8b: 0x6d6edc20, + 0x30e8c: 0x6d6ede20, 0x30e8d: 0x6d6ee020, 0x30e8e: 0x6d6ee220, 0x30e8f: 0x6d6ee420, + 0x30e90: 0x6d6ee620, 0x30e91: 0x6d6ee820, 0x30e92: 0x6d6eea20, 0x30e93: 0x6d6eec20, + 0x30e94: 0x6d6eee20, 0x30e95: 0x6d6ef020, 0x30e96: 0x6d97ee20, 0x30e97: 0x6d97f020, + 0x30e98: 0x6d97f220, 0x30e99: 0x6d97f420, 0x30e9a: 0x6d97f620, 0x30e9b: 0x6d97f820, + 0x30e9c: 0x6d97fa20, 0x30e9d: 0x6d97fc20, 0x30e9e: 0x6d97fe20, 0x30e9f: 0x6d980020, + 0x30ea0: 0x6d980220, 0x30ea1: 0x6dbaf020, 0x30ea2: 0x6dbaf220, 0x30ea3: 0x6dbaf420, + 0x30ea4: 0x6dbaf620, 0x30ea5: 0x6dbaf820, 0x30ea6: 0x6dbafa20, 0x30ea7: 0x6dbafc20, + 0x30ea8: 0x6dbafe20, 0x30ea9: 0x6dbb0020, 0x30eaa: 0x6dbb0220, 0x30eab: 0x6dbb0420, + 0x30eac: 0x6dd8fc20, 0x30ead: 0x6dd8fe20, 0x30eae: 0x6dd90020, 0x30eaf: 0x6dd90220, + 0x30eb0: 0x6dd90420, 0x30eb1: 0x6dd90620, 0x30eb2: 0x6df15e20, 0x30eb3: 0x6e059220, + 0x30eb4: 0x6e059420, 0x30eb5: 0x6e239420, 0x30eb6: 0x6e239620, 0x30eb7: 0x6c41fe20, + 0x30eb8: 0x6c420020, 0x30eb9: 0x6cb58a20, 0x30eba: 0x6cb58c20, 0x30ebb: 0x6ce57220, + 0x30ebc: 0x6d6f0020, 0x30ebd: 0x6df16620, 0x30ebe: 0x6e239820, 0x30ebf: 0x6c0aac20, + // Block 0xc3b, offset 0x30ec0 + 0x30ec0: 0x6c420220, 0x30ec1: 0x6c62ac20, 0x30ec2: 0x6c62ae20, 0x30ec3: 0x6c898420, + 0x30ec4: 0x6c898620, 0x30ec5: 0x6c898820, 0x30ec6: 0x6cb5aa20, 0x30ec7: 0x6cb5ac20, + 0x30ec8: 0x6cb5ae20, 0x30ec9: 0x6cb5b020, 0x30eca: 0x6cb5b220, 0x30ecb: 0x6ce59420, + 0x30ecc: 0x6ce59620, 0x30ecd: 0x6ce59820, 0x30ece: 0x6ce59a20, 0x30ecf: 0x6ce59c20, + 0x30ed0: 0x6ce59e20, 0x30ed1: 0x6ce5a020, 0x30ed2: 0x6ce5a220, 0x30ed3: 0x6ce5a420, + 0x30ed4: 0x6ce5a620, 0x30ed5: 0x6ce5a820, 0x30ed6: 0x6ce5aa20, 0x30ed7: 0x6ce5ac20, + 0x30ed8: 0x6d141e20, 0x30ed9: 0x6d142020, 0x30eda: 0x6d142220, 0x30edb: 0x6d142420, + 0x30edc: 0x6d142620, 0x30edd: 0x6d142820, 0x30ede: 0x6d142a20, 0x30edf: 0x6d142c20, + 0x30ee0: 0x6d142e20, 0x30ee1: 0x6d421a20, 0x30ee2: 0x6d421c20, 0x30ee3: 0x6d421e20, + 0x30ee4: 0x6d422020, 0x30ee5: 0x6d422220, 0x30ee6: 0x6d422420, 0x30ee7: 0x6d422620, + 0x30ee8: 0x6d422820, 0x30ee9: 0x6d422a20, 0x30eea: 0x6d422c20, 0x30eeb: 0x6d6f2420, + 0x30eec: 0x6d6f2620, 0x30eed: 0x6d6f2820, 0x30eee: 0x6d6f2a20, 0x30eef: 0x6d6f2c20, + 0x30ef0: 0x6d6f2e20, 0x30ef1: 0x6d6f3020, 0x30ef2: 0x6d6f3220, 0x30ef3: 0x6d6f3420, + 0x30ef4: 0x6d6f3620, 0x30ef5: 0x6d983620, 0x30ef6: 0x6d983820, 0x30ef7: 0x6dbb3420, + 0x30ef8: 0x6d983a20, 0x30ef9: 0x6d983c20, 0x30efa: 0x6d983e20, 0x30efb: 0x6d984020, + 0x30efc: 0x6d984220, 0x30efd: 0x6d984420, 0x30efe: 0x6d984620, 0x30eff: 0x6d984820, + // Block 0xc3c, offset 0x30f00 + 0x30f00: 0x6dbb2420, 0x30f01: 0x6d984a20, 0x30f02: 0x6d984c20, 0x30f03: 0x6dbb3620, + 0x30f04: 0x6dbb3820, 0x30f05: 0x6dbb3a20, 0x30f06: 0x6dbb3c20, 0x30f07: 0x6dbb3e20, + 0x30f08: 0x6dbb4020, 0x30f09: 0x6dbb4220, 0x30f0a: 0x6dbb4420, 0x30f0b: 0x6dbb4620, + 0x30f0c: 0x6dbb4820, 0x30f0d: 0x6d988e20, 0x30f0e: 0x6dbb4a20, 0x30f0f: 0x6dbb4c20, + 0x30f10: 0x6dd92020, 0x30f11: 0x6dd92220, 0x30f12: 0x6dd92420, 0x30f13: 0x6dd92620, + 0x30f14: 0x6dd92820, 0x30f15: 0x6dd92a20, 0x30f16: 0x6dd92c20, 0x30f17: 0x6dd92e20, + 0x30f18: 0x6dd93020, 0x30f19: 0x6df17620, 0x30f1a: 0x6df17820, 0x30f1b: 0x6df17a20, + 0x30f1c: 0x6df17c20, 0x30f1d: 0x6df17e20, 0x30f1e: 0x6e05a220, 0x30f1f: 0x6e05a420, + 0x30f20: 0x6e05a620, 0x30f21: 0x6e05a820, 0x30f22: 0x6e165c20, 0x30f23: 0x6e165e20, + 0x30f24: 0x6e166020, 0x30f25: 0x6e166220, 0x30f26: 0x6e166420, 0x30f27: 0x6e23a620, + 0x30f28: 0x6c020a20, 0x30f29: 0x6c052620, 0x30f2a: 0x6c0aae20, 0x30f2b: 0x6c159020, + 0x30f2c: 0x6c159220, 0x30f2d: 0x6c159420, 0x30f2e: 0x6c159620, 0x30f2f: 0x6c159820, + 0x30f30: 0x6c280420, 0x30f31: 0x6c280620, 0x30f32: 0x6c280820, 0x30f33: 0x6c280a20, + 0x30f34: 0x6c280c20, 0x30f35: 0x6c280e20, 0x30f36: 0x6c281020, 0x30f37: 0x6c281220, + 0x30f38: 0x6c420820, 0x30f39: 0x6c420a20, 0x30f3a: 0x6c62b420, 0x30f3b: 0x6c62b620, + 0x30f3c: 0x6c62b820, 0x30f3d: 0x6c62ba20, 0x30f3e: 0x6c62bc20, 0x30f3f: 0x6c62be20, + // Block 0xc3d, offset 0x30f40 + 0x30f40: 0x6c62c020, 0x30f41: 0x6c62c220, 0x30f42: 0x6c62c420, 0x30f43: 0x6c899620, + 0x30f44: 0x6c899820, 0x30f45: 0x6c899a20, 0x30f46: 0x6c899c20, 0x30f47: 0x6cb5c420, + 0x30f48: 0x6cb5c620, 0x30f49: 0x6cb5c820, 0x30f4a: 0x6cb5ca20, 0x30f4b: 0x6cb5cc20, + 0x30f4c: 0x6cb5ce20, 0x30f4d: 0x6cb5d020, 0x30f4e: 0x6cb5d220, 0x30f4f: 0x6cb5d420, + 0x30f50: 0x6cb5d620, 0x30f51: 0x6ce5ea20, 0x30f52: 0x6ce5ec20, 0x30f53: 0x6ce5ee20, + 0x30f54: 0x6ce5f020, 0x30f55: 0x6ce5f220, 0x30f56: 0x6d146e20, 0x30f57: 0x6d147020, + 0x30f58: 0x6d147220, 0x30f59: 0x6d147420, 0x30f5a: 0x6d426420, 0x30f5b: 0x6d989020, + 0x30f5c: 0x6c421020, 0x30f5d: 0x6c020c20, 0x30f5e: 0x6c0ab420, 0x30f5f: 0x6c0ab620, + 0x30f60: 0x6c15a420, 0x30f61: 0x6c15a620, 0x30f62: 0x6c15a820, 0x30f63: 0x6c15aa20, + 0x30f64: 0x6c15ac20, 0x30f65: 0x6c282620, 0x30f66: 0x6c282820, 0x30f67: 0x6c282a20, + 0x30f68: 0x6c282c20, 0x30f69: 0x6c282e20, 0x30f6a: 0x6c283020, 0x30f6b: 0x6c283220, + 0x30f6c: 0x6c283420, 0x30f6d: 0x6c283620, 0x30f6e: 0x6c283820, 0x30f6f: 0x6c283a20, + 0x30f70: 0x6c283c20, 0x30f71: 0x6c283e20, 0x30f72: 0x6c284020, 0x30f73: 0x6c284220, + 0x30f74: 0x6c284420, 0x30f75: 0x6c284620, 0x30f76: 0x6c284820, 0x30f77: 0x6c421820, + 0x30f78: 0x6c421a20, 0x30f79: 0x6c421c20, 0x30f7a: 0x6c421e20, 0x30f7b: 0x6c422020, + 0x30f7c: 0x6c422220, 0x30f7d: 0x6c422420, 0x30f7e: 0x6c422620, 0x30f7f: 0x6c422820, + // Block 0xc3e, offset 0x30f80 + 0x30f80: 0x6c422a20, 0x30f81: 0x6c422c20, 0x30f82: 0x6c422e20, 0x30f83: 0x6c423020, + 0x30f84: 0x6c423220, 0x30f85: 0x6c423420, 0x30f86: 0x6c423620, 0x30f87: 0x6c423820, + 0x30f88: 0x6c423a20, 0x30f89: 0x6c423c20, 0x30f8a: 0x6c62d620, 0x30f8b: 0x6c62d820, + 0x30f8c: 0x6c62da20, 0x30f8d: 0x6c62dc20, 0x30f8e: 0x6c62de20, 0x30f8f: 0x6c62e020, + 0x30f90: 0x6c62e220, 0x30f91: 0x6c62e420, 0x30f92: 0x6c62e620, 0x30f93: 0x6c62e820, + 0x30f94: 0x6c62ea20, 0x30f95: 0x6c62ec20, 0x30f96: 0x6c89b220, 0x30f97: 0x6c89b420, + 0x30f98: 0x6c89b620, 0x30f99: 0x6c89b820, 0x30f9a: 0x6c89d820, 0x30f9b: 0x6c89ba20, + 0x30f9c: 0x6c89bc20, 0x30f9d: 0x6c89be20, 0x30f9e: 0x6c89c020, 0x30f9f: 0x6c89c220, + 0x30fa0: 0x6c89c420, 0x30fa1: 0x6c89c620, 0x30fa2: 0x6c89c820, 0x30fa3: 0x6c89ca20, + 0x30fa4: 0x6c89cc20, 0x30fa5: 0x6c89ce20, 0x30fa6: 0x6c89d020, 0x30fa7: 0x6c89d220, + 0x30fa8: 0x6c89d420, 0x30fa9: 0x6c89d620, 0x30faa: 0x6cb5e820, 0x30fab: 0x6cb5ea20, + 0x30fac: 0x6cb5ec20, 0x30fad: 0x6cb5ee20, 0x30fae: 0x6cb5f020, 0x30faf: 0x6cb5f220, + 0x30fb0: 0x6cb5f420, 0x30fb1: 0x6cb5f620, 0x30fb2: 0x6ce5fa20, 0x30fb3: 0x6cb5f820, + 0x30fb4: 0x6cb5fa20, 0x30fb5: 0x6cb5fc20, 0x30fb6: 0x6cb5fe20, 0x30fb7: 0x6cb60020, + 0x30fb8: 0x6cb60220, 0x30fb9: 0x6cb60420, 0x30fba: 0x6cb60620, 0x30fbb: 0x6ce60220, + 0x30fbc: 0x6cb60820, 0x30fbd: 0x6ce60420, 0x30fbe: 0x6ce60620, 0x30fbf: 0x6ce60820, + // Block 0xc3f, offset 0x30fc0 + 0x30fc0: 0x6ce60a20, 0x30fc1: 0x6ce60c20, 0x30fc2: 0x6ce60e20, 0x30fc3: 0x6ce61020, + 0x30fc4: 0x6ce61220, 0x30fc5: 0x6ce61420, 0x30fc6: 0x6ce61620, 0x30fc7: 0x6ce61820, + 0x30fc8: 0x6ce61a20, 0x30fc9: 0x6ce61c20, 0x30fca: 0x6ce61e20, 0x30fcb: 0x6ce62020, + 0x30fcc: 0x6ce62220, 0x30fcd: 0x6ce62420, 0x30fce: 0x6ce62620, 0x30fcf: 0x6d147e20, + 0x30fd0: 0x6ce62820, 0x30fd1: 0x6d148c20, 0x30fd2: 0x6d148e20, 0x30fd3: 0x6d149020, + 0x30fd4: 0x6d149220, 0x30fd5: 0x6d149420, 0x30fd6: 0x6d149620, 0x30fd7: 0x6d149820, + 0x30fd8: 0x6d149a20, 0x30fd9: 0x6d426a20, 0x30fda: 0x6d427420, 0x30fdb: 0x6d427620, + 0x30fdc: 0x6d427820, 0x30fdd: 0x6d427a20, 0x30fde: 0x6d427c20, 0x30fdf: 0x6d427e20, + 0x30fe0: 0x6d428020, 0x30fe1: 0x6d428220, 0x30fe2: 0x6d6f9020, 0x30fe3: 0x6d6f9220, + 0x30fe4: 0x6d6f9420, 0x30fe5: 0x6d6f9620, 0x30fe6: 0x6d989820, 0x30fe7: 0x6d989a20, + 0x30fe8: 0x6d989c20, 0x30fe9: 0x6d989e20, 0x30fea: 0x6d98a020, 0x30feb: 0x6d98a220, + 0x30fec: 0x6dbb9220, 0x30fed: 0x6dbb9420, 0x30fee: 0x6dbb9620, 0x30fef: 0x6dbb9820, + 0x30ff0: 0x6dbb9a20, 0x30ff1: 0x6dbb9c20, 0x30ff2: 0x6dbb9e20, 0x30ff3: 0x6dd96a20, + 0x30ff4: 0x6df1a420, 0x30ff5: 0x6e05dc20, 0x30ff6: 0x6c427220, 0x30ff7: 0x6d98c020, + 0x30ff8: 0x6dbbb220, 0x30ff9: 0x6c427420, 0x30ffa: 0x6c8a3220, 0x30ffb: 0x6c8a3420, + 0x30ffc: 0x6c8a3620, 0x30ffd: 0x6c8a3820, 0x30ffe: 0x6c8a3a20, 0x30fff: 0x6cb66420, + // Block 0xc40, offset 0x31000 + 0x31000: 0x6cb66620, 0x31001: 0x6ce69020, 0x31002: 0x6ce69220, 0x31003: 0x6ce69420, + 0x31004: 0x6ce69620, 0x31005: 0x6ce69820, 0x31006: 0x6ce69a20, 0x31007: 0x6ce69c20, + 0x31008: 0x6ce69e20, 0x31009: 0x6d14e820, 0x3100a: 0x6d14ea20, 0x3100b: 0x6d14ec20, + 0x3100c: 0x6d42ce20, 0x3100d: 0x6d14ee20, 0x3100e: 0x6d14f020, 0x3100f: 0x6d14f220, + 0x31010: 0x6d42d220, 0x31011: 0x6d42d420, 0x31012: 0x6d42d620, 0x31013: 0x6d6fd020, + 0x31014: 0x6d98cc20, 0x31015: 0x6d98ce20, 0x31016: 0x6dbbba20, 0x31017: 0x6dd98c20, + 0x31018: 0x6dd98e20, 0x31019: 0x6dd99020, 0x3101a: 0x6dd99220, 0x3101b: 0x6dd99420, + 0x3101c: 0x6dd99620, 0x3101d: 0x6dd99820, 0x3101e: 0x6dd99a20, 0x3101f: 0x6dd99c20, + 0x31020: 0x6dd99e20, 0x31021: 0x6df1b020, 0x31022: 0x6dd9bc20, 0x31023: 0x6df1b220, + 0x31024: 0x6e169620, 0x31025: 0x6e358020, 0x31026: 0x6e358220, 0x31027: 0x6e435c20, + 0x31028: 0x6c427820, 0x31029: 0x6cb67e20, 0x3102a: 0x6cb68020, 0x3102b: 0x6cb68220, + 0x3102c: 0x6ce6c220, 0x3102d: 0x6ce6c420, 0x3102e: 0x6ce6c620, 0x3102f: 0x6ce6c820, + 0x31030: 0x6ce6ca20, 0x31031: 0x6ce6cc20, 0x31032: 0x6ce6ce20, 0x31033: 0x6ce6d020, + 0x31034: 0x6d151a20, 0x31035: 0x6d151c20, 0x31036: 0x6d151e20, 0x31037: 0x6d152020, + 0x31038: 0x6d152220, 0x31039: 0x6d152420, 0x3103a: 0x6d152620, 0x3103b: 0x6d152820, + 0x3103c: 0x6d152a20, 0x3103d: 0x6d152c20, 0x3103e: 0x6d152e20, 0x3103f: 0x6d431c20, + // Block 0xc41, offset 0x31040 + 0x31040: 0x6d431e20, 0x31041: 0x6d432020, 0x31042: 0x6d700220, 0x31043: 0x6d700420, + 0x31044: 0x6d700620, 0x31045: 0x6d700820, 0x31046: 0x6d700a20, 0x31047: 0x6d700c20, + 0x31048: 0x6d700e20, 0x31049: 0x6d701020, 0x3104a: 0x6d701220, 0x3104b: 0x6d991620, + 0x3104c: 0x6d991820, 0x3104d: 0x6d991a20, 0x3104e: 0x6d991c20, 0x3104f: 0x6d991e20, + 0x31050: 0x6d992020, 0x31051: 0x6d992220, 0x31052: 0x6d992420, 0x31053: 0x6d992620, + 0x31054: 0x6d992820, 0x31055: 0x6d992a20, 0x31056: 0x6d992c20, 0x31057: 0x6d992e20, + 0x31058: 0x6dbbfa20, 0x31059: 0x6dbbfc20, 0x3105a: 0x6dbbfe20, 0x3105b: 0x6dbc0020, + 0x3105c: 0x6dbc0220, 0x3105d: 0x6dbc0420, 0x3105e: 0x6dbc0620, 0x3105f: 0x6dbc0820, + 0x31060: 0x6dbc0a20, 0x31061: 0x6dbc5220, 0x31062: 0x6dd9ca20, 0x31063: 0x6dd9cc20, + 0x31064: 0x6dd9ce20, 0x31065: 0x6dd9d020, 0x31066: 0x6df1de20, 0x31067: 0x6df1e020, + 0x31068: 0x6df1e220, 0x31069: 0x6df1e420, 0x3106a: 0x6df1e620, 0x3106b: 0x6df1e820, + 0x3106c: 0x6df1ea20, 0x3106d: 0x6df1ec20, 0x3106e: 0x6e061e20, 0x3106f: 0x6e062020, + 0x31070: 0x6e062220, 0x31071: 0x6e062420, 0x31072: 0x6e16b020, 0x31073: 0x6e062620, + 0x31074: 0x6e062820, 0x31075: 0x6e16b220, 0x31076: 0x6e16b420, 0x31077: 0x6e16b620, + 0x31078: 0x6e16b820, 0x31079: 0x6e16ba20, 0x3107a: 0x6e16bc20, 0x3107b: 0x6e16be20, + 0x3107c: 0x6e23d820, 0x3107d: 0x6e23da20, 0x3107e: 0x6e23dc20, 0x3107f: 0x6e23de20, + // Block 0xc42, offset 0x31080 + 0x31080: 0x6e23e020, 0x31081: 0x6e2dea20, 0x31082: 0x6e359020, 0x31083: 0x6e359220, + 0x31084: 0x6e359420, 0x31085: 0x6e359620, 0x31086: 0x6e359820, 0x31087: 0x6e359a20, + 0x31088: 0x6e359c20, 0x31089: 0x6e3b0420, 0x3108a: 0x6e3ec220, 0x3108b: 0x6e416820, + 0x3108c: 0x6e416a20, 0x3108d: 0x6e416c20, 0x3108e: 0x6e416e20, 0x3108f: 0x6e44a620, + 0x31090: 0x6e472220, 0x31091: 0x6c427a20, 0x31092: 0x6c427c20, 0x31093: 0x6ce6f620, + 0x31094: 0x6ce6f820, 0x31095: 0x6d155420, 0x31096: 0x6d155620, 0x31097: 0x6d435020, + 0x31098: 0x6d435220, 0x31099: 0x6d435420, 0x3109a: 0x6d704e20, 0x3109b: 0x6d997a20, + 0x3109c: 0x6d997c20, 0x3109d: 0x6dda1c20, 0x3109e: 0x6c427e20, 0x3109f: 0x6ce70020, + 0x310a0: 0x6d705220, 0x310a1: 0x6df23a20, 0x310a2: 0x6c632e20, 0x310a3: 0x6c428020, + 0x310a4: 0x6d436220, 0x310a5: 0x6d705c20, 0x310a6: 0x6d998a20, 0x310a7: 0x6e16f420, + 0x310a8: 0x6e2dfe20, 0x310a9: 0x6c633220, 0x310aa: 0x6cb6a820, 0x310ab: 0x6ce71e20, + 0x310ac: 0x6ce72020, 0x310ad: 0x6ce72220, 0x310ae: 0x6ce72420, 0x310af: 0x6ce72620, + 0x310b0: 0x6ce72820, 0x310b1: 0x6ce72a20, 0x310b2: 0x6d158820, 0x310b3: 0x6d158a20, + 0x310b4: 0x6d158c20, 0x310b5: 0x6d158e20, 0x310b6: 0x6d159020, 0x310b7: 0x6d159220, + 0x310b8: 0x6d159420, 0x310b9: 0x6d159620, 0x310ba: 0x6d438a20, 0x310bb: 0x6d438c20, + 0x310bc: 0x6d438e20, 0x310bd: 0x6d439020, 0x310be: 0x6d439220, 0x310bf: 0x6d439420, + // Block 0xc43, offset 0x310c0 + 0x310c0: 0x6d439620, 0x310c1: 0x6d439820, 0x310c2: 0x6d439a20, 0x310c3: 0x6d439c20, + 0x310c4: 0x6d439e20, 0x310c5: 0x6d43a020, 0x310c6: 0x6d43a220, 0x310c7: 0x6d707420, + 0x310c8: 0x6d707620, 0x310c9: 0x6d707820, 0x310ca: 0x6d707a20, 0x310cb: 0x6d707c20, + 0x310cc: 0x6d707e20, 0x310cd: 0x6d708020, 0x310ce: 0x6d708220, 0x310cf: 0x6d708420, + 0x310d0: 0x6d708620, 0x310d1: 0x6d708820, 0x310d2: 0x6d708a20, 0x310d3: 0x6d99b220, + 0x310d4: 0x6d99b420, 0x310d5: 0x6d99b620, 0x310d6: 0x6d99b820, 0x310d7: 0x6d99ba20, + 0x310d8: 0x6d99bc20, 0x310d9: 0x6d99be20, 0x310da: 0x6dbc7420, 0x310db: 0x6dbc7620, + 0x310dc: 0x6dbc7820, 0x310dd: 0x6dbc7a20, 0x310de: 0x6dbc7c20, 0x310df: 0x6dbc7e20, + 0x310e0: 0x6dbc8020, 0x310e1: 0x6dbc8220, 0x310e2: 0x6dda3e20, 0x310e3: 0x6dda4020, + 0x310e4: 0x6dda4220, 0x310e5: 0x6dda4420, 0x310e6: 0x6dda4620, 0x310e7: 0x6dda4820, + 0x310e8: 0x6dda4a20, 0x310e9: 0x6dda4c20, 0x310ea: 0x6dda4e20, 0x310eb: 0x6dda5020, + 0x310ec: 0x6dda5220, 0x310ed: 0x6dda5420, 0x310ee: 0x6dda5620, 0x310ef: 0x6dda5820, + 0x310f0: 0x6dda5a20, 0x310f1: 0x6df24e20, 0x310f2: 0x6df25020, 0x310f3: 0x6df25220, + 0x310f4: 0x6df25420, 0x310f5: 0x6df25620, 0x310f6: 0x6df25820, 0x310f7: 0x6df25a20, + 0x310f8: 0x6e069020, 0x310f9: 0x6e069220, 0x310fa: 0x6e069420, 0x310fb: 0x6e069620, + 0x310fc: 0x6e171620, 0x310fd: 0x6e171820, 0x310fe: 0x6e171a20, 0x310ff: 0x6e171c20, + // Block 0xc44, offset 0x31100 + 0x31100: 0x6e241820, 0x31101: 0x6e241a20, 0x31102: 0x6e241c20, 0x31103: 0x6e241e20, + 0x31104: 0x6e2e0e20, 0x31105: 0x6e2e1020, 0x31106: 0x6e35bc20, 0x31107: 0x6e35be20, + 0x31108: 0x6e35c020, 0x31109: 0x6e3ee020, 0x3110a: 0x6e456e20, 0x3110b: 0x6c633420, + 0x3110c: 0x6ce73420, 0x3110d: 0x6d43e020, 0x3110e: 0x6d43e220, 0x3110f: 0x6d70c220, + 0x31110: 0x6d70c420, 0x31111: 0x6d70c620, 0x31112: 0x6d99ee20, 0x31113: 0x6dbcc620, + 0x31114: 0x6dbcc820, 0x31115: 0x6dbcca20, 0x31116: 0x6ddaaa20, 0x31117: 0x6ddaac20, + 0x31118: 0x6ddaae20, 0x31119: 0x6ddab020, 0x3111a: 0x6ddab220, 0x3111b: 0x6e06d420, + 0x3111c: 0x6df2a820, 0x3111d: 0x6df2aa20, 0x3111e: 0x6df2ac20, 0x3111f: 0x6df2ae20, + 0x31120: 0x6e06d620, 0x31121: 0x6e174220, 0x31122: 0x6e174420, 0x31123: 0x6e244820, + 0x31124: 0x6e35ce20, 0x31125: 0x6e35d020, 0x31126: 0x6c053420, 0x31127: 0x6c287c20, + 0x31128: 0x6c633620, 0x31129: 0x6ce73820, 0x3112a: 0x6d15d420, 0x3112b: 0x6d15d620, + 0x3112c: 0x6d43fc20, 0x3112d: 0x6c633c20, 0x3112e: 0x6d15e020, 0x3112f: 0x6d70e220, + 0x31130: 0x6d9a0420, 0x31131: 0x6dbcea20, 0x31132: 0x6df2c620, 0x31133: 0x6c633e20, + 0x31134: 0x6d15e820, 0x31135: 0x6d15ea20, 0x31136: 0x6d440420, 0x31137: 0x6d440620, + 0x31138: 0x6d9a0c20, 0x31139: 0x6ddacc20, 0x3113a: 0x6ddace20, 0x3113b: 0x6df2d020, + 0x3113c: 0x6df2d220, 0x3113d: 0x6e06f220, 0x3113e: 0x6e06f420, 0x3113f: 0x6e06f620, + // Block 0xc45, offset 0x31140 + 0x31140: 0x6e2e3c20, 0x31141: 0x6c634020, 0x31142: 0x6cb6b220, 0x31143: 0x6cb6b420, + 0x31144: 0x6cb6b620, 0x31145: 0x6ce74820, 0x31146: 0x6ce74a20, 0x31147: 0x6ce74c20, + 0x31148: 0x6ce74e20, 0x31149: 0x6d15f220, 0x3114a: 0x6d15fa20, 0x3114b: 0x6d15fc20, + 0x3114c: 0x6d15fe20, 0x3114d: 0x6d160020, 0x3114e: 0x6d160220, 0x3114f: 0x6d160420, + 0x31150: 0x6d160620, 0x31151: 0x6d160820, 0x31152: 0x6d160a20, 0x31153: 0x6d160c20, + 0x31154: 0x6d442620, 0x31155: 0x6d442820, 0x31156: 0x6d442a20, 0x31157: 0x6d442c20, + 0x31158: 0x6d442e20, 0x31159: 0x6d441220, 0x3115a: 0x6d443020, 0x3115b: 0x6d710020, + 0x3115c: 0x6d710220, 0x3115d: 0x6d710420, 0x3115e: 0x6d710620, 0x3115f: 0x6d710820, + 0x31160: 0x6d710a20, 0x31161: 0x6d710c20, 0x31162: 0x6d710e20, 0x31163: 0x6d711020, + 0x31164: 0x6d9a2a20, 0x31165: 0x6d9a2c20, 0x31166: 0x6d711220, 0x31167: 0x6d711420, + 0x31168: 0x6d711620, 0x31169: 0x6d711820, 0x3116a: 0x6d711a20, 0x3116b: 0x6d711c20, + 0x3116c: 0x6d711e20, 0x3116d: 0x6d9a2e20, 0x3116e: 0x6d9a3020, 0x3116f: 0x6d9a3220, + 0x31170: 0x6d9a3420, 0x31171: 0x6d9a3620, 0x31172: 0x6d9a3820, 0x31173: 0x6d9a3a20, + 0x31174: 0x6d9a3c20, 0x31175: 0x6d9a3e20, 0x31176: 0x6d9a4020, 0x31177: 0x6d9a4220, + 0x31178: 0x6d9a4420, 0x31179: 0x6d9a4620, 0x3117a: 0x6d9a4820, 0x3117b: 0x6d9a4a20, + 0x3117c: 0x6d9a4c20, 0x3117d: 0x6d9a4e20, 0x3117e: 0x6ddaf020, 0x3117f: 0x6ddada20, + // Block 0xc46, offset 0x31180 + 0x31180: 0x6dbd0c20, 0x31181: 0x6dbd0e20, 0x31182: 0x6dbd1020, 0x31183: 0x6dbd1220, + 0x31184: 0x6dbd1420, 0x31185: 0x6dbd1620, 0x31186: 0x6dbd1820, 0x31187: 0x6dbd1a20, + 0x31188: 0x6dbd1c20, 0x31189: 0x6dbd1e20, 0x3118a: 0x6dbd2020, 0x3118b: 0x6ddaf220, + 0x3118c: 0x6ddaf420, 0x3118d: 0x6ddaf620, 0x3118e: 0x6ddaf820, 0x3118f: 0x6ddafa20, + 0x31190: 0x6ddafc20, 0x31191: 0x6ddafe20, 0x31192: 0x6ddb0020, 0x31193: 0x6ddb0220, + 0x31194: 0x6ddb0420, 0x31195: 0x6ddb0620, 0x31196: 0x6df2f020, 0x31197: 0x6df2f220, + 0x31198: 0x6df2f420, 0x31199: 0x6df2f620, 0x3119a: 0x6df2f820, 0x3119b: 0x6df2fa20, + 0x3119c: 0x6df2fc20, 0x3119d: 0x6df2fe20, 0x3119e: 0x6df30020, 0x3119f: 0x6e070e20, + 0x311a0: 0x6e071020, 0x311a1: 0x6e071220, 0x311a2: 0x6e071420, 0x311a3: 0x6e071620, + 0x311a4: 0x6e177220, 0x311a5: 0x6e177420, 0x311a6: 0x6e177620, 0x311a7: 0x6e177820, + 0x311a8: 0x6e177a20, 0x311a9: 0x6e246e20, 0x311aa: 0x6e247020, 0x311ab: 0x6e247220, + 0x311ac: 0x6e2e4020, 0x311ad: 0x6e2e4220, 0x311ae: 0x6e2e4420, 0x311af: 0x6e2e4620, + 0x311b0: 0x6e35de20, 0x311b1: 0x6e3b3820, 0x311b2: 0x6e3b3a20, 0x311b3: 0x6e418220, + 0x311b4: 0x6e418420, 0x311b5: 0x6c15d220, 0x311b6: 0x6c428620, 0x311b7: 0x6c428820, + 0x311b8: 0x6c634420, 0x311b9: 0x6c634620, 0x311ba: 0x6c634820, 0x311bb: 0x6c634a20, + 0x311bc: 0x6c8a5220, 0x311bd: 0x6c8a5420, 0x311be: 0x6c8a5620, 0x311bf: 0x6c8a5820, + // Block 0xc47, offset 0x311c0 + 0x311c0: 0x6c8a5a20, 0x311c1: 0x6c8a5c20, 0x311c2: 0x6c8a5e20, 0x311c3: 0x6c8a6020, + 0x311c4: 0x6c8a6220, 0x311c5: 0x6cb6c020, 0x311c6: 0x6cb6c220, 0x311c7: 0x6cb6c420, + 0x311c8: 0x6cb6c620, 0x311c9: 0x6ce76220, 0x311ca: 0x6ce76420, 0x311cb: 0x6ce76620, + 0x311cc: 0x6ce76820, 0x311cd: 0x6ce76a20, 0x311ce: 0x6ce76c20, 0x311cf: 0x6ce76e20, + 0x311d0: 0x6d163e20, 0x311d1: 0x6d164020, 0x311d2: 0x6d164220, 0x311d3: 0x6d164420, + 0x311d4: 0x6d164620, 0x311d5: 0x6d164820, 0x311d6: 0x6d164a20, 0x311d7: 0x6d447220, + 0x311d8: 0x6d715e20, 0x311d9: 0x6d716020, 0x311da: 0x6d716220, 0x311db: 0x6d716420, + 0x311dc: 0x6d716620, 0x311dd: 0x6d716820, 0x311de: 0x6d9ab220, 0x311df: 0x6d9ab420, + 0x311e0: 0x6d9ab620, 0x311e1: 0x6d9ab820, 0x311e2: 0x6ddb3e20, 0x311e3: 0x6ddb4020, + 0x311e4: 0x6df33820, 0x311e5: 0x6e074820, 0x311e6: 0x6e17aa20, 0x311e7: 0x6e2e6c20, + 0x311e8: 0x6c634e20, 0x311e9: 0x6ce77a20, 0x311ea: 0x6ce77c20, 0x311eb: 0x6d165820, + 0x311ec: 0x6d165a20, 0x311ed: 0x6d448a20, 0x311ee: 0x6d448c20, 0x311ef: 0x6d448e20, + 0x311f0: 0x6d449020, 0x311f1: 0x6d449220, 0x311f2: 0x6d717020, 0x311f3: 0x6d717220, + 0x311f4: 0x6d9ac620, 0x311f5: 0x6d9ac820, 0x311f6: 0x6dbd7820, 0x311f7: 0x6dbd7a20, + 0x311f8: 0x6ddb5020, 0x311f9: 0x6ddb5220, 0x311fa: 0x6ddb5420, 0x311fb: 0x6df34220, + 0x311fc: 0x6df34420, 0x311fd: 0x6df34620, 0x311fe: 0x6df34820, 0x311ff: 0x6df34a20, + // Block 0xc48, offset 0x31200 + 0x31200: 0x6df34c20, 0x31201: 0x6e074e20, 0x31202: 0x6e075020, 0x31203: 0x6e075220, + 0x31204: 0x6e075420, 0x31205: 0x6e17b020, 0x31206: 0x6e17b220, 0x31207: 0x6e17b420, + 0x31208: 0x6e17b620, 0x31209: 0x6e17b820, 0x3120a: 0x6e17ba20, 0x3120b: 0x6e249020, + 0x3120c: 0x6e418c20, 0x3120d: 0x6e418e20, 0x3120e: 0x6c053620, 0x3120f: 0x6c287e20, + 0x31210: 0x6c635020, 0x31211: 0x6c635220, 0x31212: 0x6c635420, 0x31213: 0x6ce78e20, + 0x31214: 0x6d168020, 0x31215: 0x6d44b820, 0x31216: 0x6d44b620, 0x31217: 0x6d44ba20, + 0x31218: 0x6d719420, 0x31219: 0x6d9af420, 0x3121a: 0x6d9af620, 0x3121b: 0x6c635c20, + 0x3121c: 0x6e17dc20, 0x3121d: 0x6e419420, 0x3121e: 0x6c020e20, 0x3121f: 0x6c636220, + 0x31220: 0x6c636420, 0x31221: 0x6cb6d820, 0x31222: 0x6c8a6820, 0x31223: 0x6c8a6a20, + 0x31224: 0x6c8a6c20, 0x31225: 0x6cb6da20, 0x31226: 0x6cb6dc20, 0x31227: 0x6ce79e20, + 0x31228: 0x6ce7a020, 0x31229: 0x6ce7a220, 0x3122a: 0x6ce7a420, 0x3122b: 0x6ce7a620, + 0x3122c: 0x6d169420, 0x3122d: 0x6ce7a820, 0x3122e: 0x6d169620, 0x3122f: 0x6ce7aa20, + 0x31230: 0x6ce7ac20, 0x31231: 0x6d169820, 0x31232: 0x6ce7ae20, 0x31233: 0x6d169a20, + 0x31234: 0x6d169c20, 0x31235: 0x6d169e20, 0x31236: 0x6d16a020, 0x31237: 0x6d16a220, + 0x31238: 0x6d44d620, 0x31239: 0x6d16a420, 0x3123a: 0x6d71a620, 0x3123b: 0x6d16a620, + 0x3123c: 0x6d16a820, 0x3123d: 0x6d16aa20, 0x3123e: 0x6d16ac20, 0x3123f: 0x6d16ae20, + // Block 0xc49, offset 0x31240 + 0x31240: 0x6d44d820, 0x31241: 0x6d44da20, 0x31242: 0x6d44dc20, 0x31243: 0x6d44de20, + 0x31244: 0x6d44e020, 0x31245: 0x6d44e220, 0x31246: 0x6d44e420, 0x31247: 0x6d44e620, + 0x31248: 0x6d71a820, 0x31249: 0x6d44e820, 0x3124a: 0x6d71aa20, 0x3124b: 0x6d71ac20, + 0x3124c: 0x6d44ea20, 0x3124d: 0x6d71ae20, 0x3124e: 0x6d44ec20, 0x3124f: 0x6d44ee20, + 0x31250: 0x6d9b0820, 0x31251: 0x6d71b020, 0x31252: 0x6d71b220, 0x31253: 0x6d71b420, + 0x31254: 0x6d71b620, 0x31255: 0x6d71b820, 0x31256: 0x6d71ba20, 0x31257: 0x6d71bc20, + 0x31258: 0x6d71be20, 0x31259: 0x6d71c020, 0x3125a: 0x6d9b0c20, 0x3125b: 0x6d9b0e20, + 0x3125c: 0x6d9b1020, 0x3125d: 0x6d9b0a20, 0x3125e: 0x6d9b1220, 0x3125f: 0x6d9b1420, + 0x31260: 0x6d9b1620, 0x31261: 0x6d9b1820, 0x31262: 0x6d9b1a20, 0x31263: 0x6d9b1c20, + 0x31264: 0x6d9b1e20, 0x31265: 0x6dbdca20, 0x31266: 0x6d9b2020, 0x31267: 0x6d9b2220, + 0x31268: 0x6d9b2420, 0x31269: 0x6d9b2620, 0x3126a: 0x6dbdcc20, 0x3126b: 0x6dbdce20, + 0x3126c: 0x6dbdd020, 0x3126d: 0x6dbdd220, 0x3126e: 0x6ddb9a20, 0x3126f: 0x6dbdd420, + 0x31270: 0x6dbdd620, 0x31271: 0x6dbdd820, 0x31272: 0x6dbdda20, 0x31273: 0x6dbddc20, + 0x31274: 0x6d9b8c20, 0x31275: 0x6dbdde20, 0x31276: 0x6ddb9c20, 0x31277: 0x6dbde020, + 0x31278: 0x6ddb9e20, 0x31279: 0x6ddba020, 0x3127a: 0x6ddba220, 0x3127b: 0x6ddba420, + 0x3127c: 0x6ddba620, 0x3127d: 0x6ddba820, 0x3127e: 0x6ddbaa20, 0x3127f: 0x6ddbac20, + // Block 0xc4a, offset 0x31280 + 0x31280: 0x6ddbae20, 0x31281: 0x6ddbb020, 0x31282: 0x6dbe4420, 0x31283: 0x6df38820, + 0x31284: 0x6df38a20, 0x31285: 0x6df38c20, 0x31286: 0x6dbe4620, 0x31287: 0x6df38e20, + 0x31288: 0x6df39020, 0x31289: 0x6df39220, 0x3128a: 0x6e077420, 0x3128b: 0x6e077620, + 0x3128c: 0x6e077820, 0x3128d: 0x6e077a20, 0x3128e: 0x6e077c20, 0x3128f: 0x6e17ec20, + 0x31290: 0x6e077e20, 0x31291: 0x6e078020, 0x31292: 0x6e078220, 0x31293: 0x6e078420, + 0x31294: 0x6e24ae20, 0x31295: 0x6e24b020, 0x31296: 0x6e17ee20, 0x31297: 0x6e17f020, + 0x31298: 0x6e17f220, 0x31299: 0x6e07c220, 0x3129a: 0x6e24b220, 0x3129b: 0x6e24b420, + 0x3129c: 0x6e2e8220, 0x3129d: 0x6e360220, 0x3129e: 0x6e3b4c20, 0x3129f: 0x6e3b4e20, + 0x312a0: 0x6e419820, 0x312a1: 0x6e419a20, 0x312a2: 0x6e457220, 0x312a3: 0x6c021020, + 0x312a4: 0x6c0ac220, 0x312a5: 0x6c0ac420, 0x312a6: 0x6c15d420, 0x312a7: 0x6c15d620, + 0x312a8: 0x6c288020, 0x312a9: 0x6c288220, 0x312aa: 0x6c288420, 0x312ab: 0x6c288620, + 0x312ac: 0x6c288820, 0x312ad: 0x6c288a20, 0x312ae: 0x6c288c20, 0x312af: 0x6c429820, + 0x312b0: 0x6c429a20, 0x312b1: 0x6c429c20, 0x312b2: 0x6c429e20, 0x312b3: 0x6c42a020, + 0x312b4: 0x6c42a220, 0x312b5: 0x6c636820, 0x312b6: 0x6c636a20, 0x312b7: 0x6c636c20, + 0x312b8: 0x6c636e20, 0x312b9: 0x6c637020, 0x312ba: 0x6c637220, 0x312bb: 0x6c637420, + 0x312bc: 0x6c637620, 0x312bd: 0x6c8a7420, 0x312be: 0x6c8a7620, 0x312bf: 0x6c8a7820, + // Block 0xc4b, offset 0x312c0 + 0x312c0: 0x6c8a7a20, 0x312c1: 0x6c8a7c20, 0x312c2: 0x6c8a7e20, 0x312c3: 0x6cb6fa20, + 0x312c4: 0x6cb6fc20, 0x312c5: 0x6cb6fe20, 0x312c6: 0x6cb70020, 0x312c7: 0x6ce7d820, + 0x312c8: 0x6ce7da20, 0x312c9: 0x6d16f420, 0x312ca: 0x6ce7dc20, 0x312cb: 0x6ce7de20, + 0x312cc: 0x6d16f620, 0x312cd: 0x6d16f820, 0x312ce: 0x6d16fa20, 0x312cf: 0x6d16fc20, + 0x312d0: 0x6d16fe20, 0x312d1: 0x6d452020, 0x312d2: 0x6d452220, 0x312d3: 0x6d71fe20, + 0x312d4: 0x6d720020, 0x312d5: 0x6e3b5220, 0x312d6: 0x6c637e20, 0x312d7: 0x6cb70c20, + 0x312d8: 0x6dbe4820, 0x312d9: 0x6c638220, 0x312da: 0x6d170820, 0x312db: 0x6d453620, + 0x312dc: 0x6d453820, 0x312dd: 0x6d453a20, 0x312de: 0x6d9ba020, 0x312df: 0x6d9ba220, + 0x312e0: 0x6d9ba420, 0x312e1: 0x6dbe5620, 0x312e2: 0x6dbe5820, 0x312e3: 0x6dbe5a20, + 0x312e4: 0x6ddc0420, 0x312e5: 0x6ddc0620, 0x312e6: 0x6df3ec20, 0x312e7: 0x6df3ee20, + 0x312e8: 0x6e07ca20, 0x312e9: 0x6e182420, 0x312ea: 0x6e2e9a20, 0x312eb: 0x6e41a020, + 0x312ec: 0x6c8a8e20, 0x312ed: 0x6ce7f220, 0x312ee: 0x6ce7f420, 0x312ef: 0x6d171420, + 0x312f0: 0x6d171620, 0x312f1: 0x6d171820, 0x312f2: 0x6d171a20, 0x312f3: 0x6d171c20, + 0x312f4: 0x6d171e20, 0x312f5: 0x6d172020, 0x312f6: 0x6d455820, 0x312f7: 0x6d455a20, + 0x312f8: 0x6d455c20, 0x312f9: 0x6d455e20, 0x312fa: 0x6d456020, 0x312fb: 0x6d456220, + 0x312fc: 0x6d456420, 0x312fd: 0x6d456620, 0x312fe: 0x6d456820, 0x312ff: 0x6d456a20, + // Block 0xc4c, offset 0x31300 + 0x31300: 0x6d456c20, 0x31301: 0x6d456e20, 0x31302: 0x6d457020, 0x31303: 0x6d457220, + 0x31304: 0x6d457420, 0x31305: 0x6d457620, 0x31306: 0x6d457820, 0x31307: 0x6d457a20, + 0x31308: 0x6d723220, 0x31309: 0x6d723420, 0x3130a: 0x6d723620, 0x3130b: 0x6d723820, + 0x3130c: 0x6d723a20, 0x3130d: 0x6d723c20, 0x3130e: 0x6d723e20, 0x3130f: 0x6d724020, + 0x31310: 0x6d724220, 0x31311: 0x6d724420, 0x31312: 0x6d724620, 0x31313: 0x6d724820, + 0x31314: 0x6d724a20, 0x31315: 0x6d724c20, 0x31316: 0x6d724e20, 0x31317: 0x6d725020, + 0x31318: 0x6d725220, 0x31319: 0x6d725420, 0x3131a: 0x6d725620, 0x3131b: 0x6d725820, + 0x3131c: 0x6d725a20, 0x3131d: 0x6d725c20, 0x3131e: 0x6d725e20, 0x3131f: 0x6d726020, + 0x31320: 0x6d726220, 0x31321: 0x6d9bba20, 0x31322: 0x6d9bbc20, 0x31323: 0x6d9bbe20, + 0x31324: 0x6d9bc020, 0x31325: 0x6d9bc220, 0x31326: 0x6d9bc420, 0x31327: 0x6d9bc620, + 0x31328: 0x6d9bc820, 0x31329: 0x6d9bca20, 0x3132a: 0x6d9bcc20, 0x3132b: 0x6d9bce20, + 0x3132c: 0x6d9bd020, 0x3132d: 0x6d9bd220, 0x3132e: 0x6d9bd420, 0x3132f: 0x6d9bd620, + 0x31330: 0x6d9bd820, 0x31331: 0x6d9bda20, 0x31332: 0x6d9bdc20, 0x31333: 0x6dbec020, + 0x31334: 0x6dbe7020, 0x31335: 0x6dbe7220, 0x31336: 0x6dbe7420, 0x31337: 0x6dbe7620, + 0x31338: 0x6dbe7820, 0x31339: 0x6dbe7a20, 0x3133a: 0x6dbe7c20, 0x3133b: 0x6dbe7e20, + 0x3133c: 0x6dbe8020, 0x3133d: 0x6dbe8220, 0x3133e: 0x6dbe8420, 0x3133f: 0x6dbe8620, + // Block 0xc4d, offset 0x31340 + 0x31340: 0x6dbe8820, 0x31341: 0x6dbe8a20, 0x31342: 0x6dbe8c20, 0x31343: 0x6dbe8e20, + 0x31344: 0x6ddc2820, 0x31345: 0x6ddc2a20, 0x31346: 0x6ddc2c20, 0x31347: 0x6ddc2e20, + 0x31348: 0x6ddc3020, 0x31349: 0x6ddc3220, 0x3134a: 0x6ddc3420, 0x3134b: 0x6ddc3620, + 0x3134c: 0x6ddc3820, 0x3134d: 0x6ddc3a20, 0x3134e: 0x6ddc3c20, 0x3134f: 0x6ddc3e20, + 0x31350: 0x6ddc4020, 0x31351: 0x6ddc4220, 0x31352: 0x6ddc4420, 0x31353: 0x6ddc4620, + 0x31354: 0x6df40a20, 0x31355: 0x6df40c20, 0x31356: 0x6df40e20, 0x31357: 0x6df41020, + 0x31358: 0x6df41220, 0x31359: 0x6df41420, 0x3135a: 0x6df41620, 0x3135b: 0x6df41820, + 0x3135c: 0x6df41a20, 0x3135d: 0x6df41c20, 0x3135e: 0x6df41e20, 0x3135f: 0x6df42020, + 0x31360: 0x6df42220, 0x31361: 0x6df42420, 0x31362: 0x6df42620, 0x31363: 0x6df42820, + 0x31364: 0x6df42a20, 0x31365: 0x6df42c20, 0x31366: 0x6df42e20, 0x31367: 0x6df43020, + 0x31368: 0x6df43220, 0x31369: 0x6e07e620, 0x3136a: 0x6e07e820, 0x3136b: 0x6e07ea20, + 0x3136c: 0x6e07ec20, 0x3136d: 0x6e07ee20, 0x3136e: 0x6e07f020, 0x3136f: 0x6e07f220, + 0x31370: 0x6e07f420, 0x31371: 0x6e07f620, 0x31372: 0x6e07f820, 0x31373: 0x6e07fa20, + 0x31374: 0x6e07fc20, 0x31375: 0x6e07fe20, 0x31376: 0x6e080020, 0x31377: 0x6e080220, + 0x31378: 0x6e080420, 0x31379: 0x6e184220, 0x3137a: 0x6e184420, 0x3137b: 0x6e184620, + 0x3137c: 0x6e184820, 0x3137d: 0x6e184a20, 0x3137e: 0x6e184c20, 0x3137f: 0x6e184e20, + // Block 0xc4e, offset 0x31380 + 0x31380: 0x6e185020, 0x31381: 0x6e185220, 0x31382: 0x6e185420, 0x31383: 0x6e185620, + 0x31384: 0x6e185820, 0x31385: 0x6e185a20, 0x31386: 0x6e185c20, 0x31387: 0x6e185e20, + 0x31388: 0x6e24ee20, 0x31389: 0x6e24f020, 0x3138a: 0x6e24f220, 0x3138b: 0x6e24f420, + 0x3138c: 0x6e24f620, 0x3138d: 0x6e24f820, 0x3138e: 0x6e24fa20, 0x3138f: 0x6e24fc20, + 0x31390: 0x6e24fe20, 0x31391: 0x6e250020, 0x31392: 0x6e250220, 0x31393: 0x6e250420, + 0x31394: 0x6e250620, 0x31395: 0x6e250820, 0x31396: 0x6e2ea420, 0x31397: 0x6e2ea620, + 0x31398: 0x6e2ea820, 0x31399: 0x6e2eaa20, 0x3139a: 0x6e2eac20, 0x3139b: 0x6e2eae20, + 0x3139c: 0x6e2eb020, 0x3139d: 0x6e362220, 0x3139e: 0x6e362420, 0x3139f: 0x6e362620, + 0x313a0: 0x6e3f1420, 0x313a1: 0x6e3f1620, 0x313a2: 0x6e3f1820, 0x313a3: 0x6e3f1a20, + 0x313a4: 0x6e41a420, 0x313a5: 0x6e3f2620, 0x313a6: 0x6e41a620, 0x313a7: 0x6e41a820, + 0x313a8: 0x6e437a20, 0x313a9: 0x6e437c20, 0x313aa: 0x6e44c220, 0x313ab: 0x6e457620, + 0x313ac: 0x6c021220, 0x313ad: 0x6c0ac620, 0x313ae: 0x6c15da20, 0x313af: 0x6c15dc20, + 0x313b0: 0x6c15de20, 0x313b1: 0x6c289820, 0x313b2: 0x6c289a20, 0x313b3: 0x6c289c20, + 0x313b4: 0x6c289e20, 0x313b5: 0x6c42ae20, 0x313b6: 0x6c42b020, 0x313b7: 0x6c42b220, + 0x313b8: 0x6c42b420, 0x313b9: 0x6c42b620, 0x313ba: 0x6c42b820, 0x313bb: 0x6c42ba20, + 0x313bc: 0x6c42bc20, 0x313bd: 0x6c42be20, 0x313be: 0x6c42c020, 0x313bf: 0x6c42c220, + // Block 0xc4f, offset 0x313c0 + 0x313c0: 0x6c42c420, 0x313c1: 0x6c638420, 0x313c2: 0x6c638620, 0x313c3: 0x6c638820, + 0x313c4: 0x6c638a20, 0x313c5: 0x6c638c20, 0x313c6: 0x6c638e20, 0x313c7: 0x6c639020, + 0x313c8: 0x6c639220, 0x313c9: 0x6c639420, 0x313ca: 0x6c8a9420, 0x313cb: 0x6c8a9620, + 0x313cc: 0x6c8a9820, 0x313cd: 0x6c8a9a20, 0x313ce: 0x6c8a9c20, 0x313cf: 0x6c8a9e20, + 0x313d0: 0x6cb71420, 0x313d1: 0x6cb71620, 0x313d2: 0x6cb71820, 0x313d3: 0x6cb71a20, + 0x313d4: 0x6cb71c20, 0x313d5: 0x6cb71e20, 0x313d6: 0x6cb72020, 0x313d7: 0x6ce80420, + 0x313d8: 0x6ce80620, 0x313d9: 0x6ce80820, 0x313da: 0x6ce80a20, 0x313db: 0x6ce80c20, + 0x313dc: 0x6d173220, 0x313dd: 0x6d173420, 0x313de: 0x6d173620, 0x313df: 0x6d173820, + 0x313e0: 0x6d45ac20, 0x313e1: 0x6d45ae20, 0x313e2: 0x6d45b020, 0x313e3: 0x6d72aa20, + 0x313e4: 0x6dbec420, 0x313e5: 0x6df48220, 0x313e6: 0x6e086e20, 0x313e7: 0x6e087020, + 0x313e8: 0x6c8aae20, 0x313e9: 0x6ce82c20, 0x313ea: 0x6d174820, 0x313eb: 0x6d174a20, + 0x313ec: 0x6d174c20, 0x313ed: 0x6d174e20, 0x313ee: 0x6d175020, 0x313ef: 0x6d45bc20, + 0x313f0: 0x6d45be20, 0x313f1: 0x6d45c020, 0x313f2: 0x6d72bc20, 0x313f3: 0x6d72be20, + 0x313f4: 0x6d72c020, 0x313f5: 0x6d72c220, 0x313f6: 0x6d72c420, 0x313f7: 0x6d72c620, + 0x313f8: 0x6d9c4220, 0x313f9: 0x6d9c4420, 0x313fa: 0x6d9c4620, 0x313fb: 0x6d9c4820, + 0x313fc: 0x6d9c4a20, 0x313fd: 0x6dbed220, 0x313fe: 0x6dbed420, 0x313ff: 0x6d9c6820, + // Block 0xc50, offset 0x31400 + 0x31400: 0x6ddcac20, 0x31401: 0x6ddcae20, 0x31402: 0x6df48c20, 0x31403: 0x6df48e20, + 0x31404: 0x6e087220, 0x31405: 0x6df49020, 0x31406: 0x6e087620, 0x31407: 0x6e087820, + 0x31408: 0x6e087a20, 0x31409: 0x6e087c20, 0x3140a: 0x6e087e20, 0x3140b: 0x6e088020, + 0x3140c: 0x6e088220, 0x3140d: 0x6e189420, 0x3140e: 0x6e189620, 0x3140f: 0x6e189820, + 0x31410: 0x6e254620, 0x31411: 0x6e2ee620, 0x31412: 0x6e254820, 0x31413: 0x6e2ee820, + 0x31414: 0x6e2eea20, 0x31415: 0x6e364420, 0x31416: 0x6e3b7420, 0x31417: 0x6e3f2820, + 0x31418: 0x6c8ab020, 0x31419: 0x6cb73620, 0x3141a: 0x6d45e620, 0x3141b: 0x6d72e220, + 0x3141c: 0x6ddcda20, 0x3141d: 0x6e256420, 0x3141e: 0x6e2ef820, 0x3141f: 0x6c8ab220, + 0x31420: 0x6ce84620, 0x31421: 0x6d177820, 0x31422: 0x6d177a20, 0x31423: 0x6d460620, + 0x31424: 0x6d460820, 0x31425: 0x6d460a20, 0x31426: 0x6d460c20, 0x31427: 0x6d460e20, + 0x31428: 0x6d461020, 0x31429: 0x6d461220, 0x3142a: 0x6d461420, 0x3142b: 0x6d72f220, + 0x3142c: 0x6d72f420, 0x3142d: 0x6d9c7a20, 0x3142e: 0x6d72f620, 0x3142f: 0x6d72f820, + 0x31430: 0x6d72fa20, 0x31431: 0x6d72fc20, 0x31432: 0x6d72fe20, 0x31433: 0x6d730020, + 0x31434: 0x6d730220, 0x31435: 0x6d9c8020, 0x31436: 0x6d9c8220, 0x31437: 0x6d9c8420, + 0x31438: 0x6d9c8620, 0x31439: 0x6d9c8820, 0x3143a: 0x6d9c8a20, 0x3143b: 0x6d9c8c20, + 0x3143c: 0x6dbf1420, 0x3143d: 0x6dbf1620, 0x3143e: 0x6dbf1820, 0x3143f: 0x6dbf1a20, + // Block 0xc51, offset 0x31440 + 0x31440: 0x6dbf1c20, 0x31441: 0x6dbf1e20, 0x31442: 0x6dbf2020, 0x31443: 0x6ddcf220, + 0x31444: 0x6ddcf420, 0x31445: 0x6ddcf620, 0x31446: 0x6ddcf820, 0x31447: 0x6d9c8e20, + 0x31448: 0x6ddcfa20, 0x31449: 0x6df4b220, 0x3144a: 0x6df4b420, 0x3144b: 0x6df4b620, + 0x3144c: 0x6df4b820, 0x3144d: 0x6df4ba20, 0x3144e: 0x6df4bc20, 0x3144f: 0x6df4be20, + 0x31450: 0x6e08b220, 0x31451: 0x6e08b420, 0x31452: 0x6e08b620, 0x31453: 0x6e08b820, + 0x31454: 0x6e18b420, 0x31455: 0x6e18b620, 0x31456: 0x6e18b820, 0x31457: 0x6e18ba20, + 0x31458: 0x6e18bc20, 0x31459: 0x6e256c20, 0x3145a: 0x6e256e20, 0x3145b: 0x6e257020, + 0x3145c: 0x6e257220, 0x3145d: 0x6e256820, 0x3145e: 0x6e2f0020, 0x3145f: 0x6e2f0220, + 0x31460: 0x6e2f0420, 0x31461: 0x6e365c20, 0x31462: 0x6e365e20, 0x31463: 0x6e3b8620, + 0x31464: 0x6e41be20, 0x31465: 0x6c8ab420, 0x31466: 0x6d463c20, 0x31467: 0x6d734420, + 0x31468: 0x6d9cc020, 0x31469: 0x6ddd3820, 0x3146a: 0x6e08ee20, 0x3146b: 0x6e25a420, + 0x3146c: 0x6e367420, 0x3146d: 0x6e367620, 0x3146e: 0x6e41c820, 0x3146f: 0x6c8aba20, + 0x31470: 0x6e41ca20, 0x31471: 0x6e44ca20, 0x31472: 0x6c8abc20, 0x31473: 0x6d9cc820, + 0x31474: 0x6dbf5620, 0x31475: 0x6ddd4020, 0x31476: 0x6ddd4220, 0x31477: 0x6df4fa20, + 0x31478: 0x6e08f420, 0x31479: 0x6e18f420, 0x3147a: 0x6e18f620, 0x3147b: 0x6e25ae20, + 0x3147c: 0x6c8abe20, 0x3147d: 0x6d179220, 0x3147e: 0x6d465020, 0x3147f: 0x6d465220, + // Block 0xc52, offset 0x31480 + 0x31480: 0x6d465420, 0x31481: 0x6d465620, 0x31482: 0x6d465820, 0x31483: 0x6d735820, + 0x31484: 0x6d735a20, 0x31485: 0x6d735c20, 0x31486: 0x6d735e20, 0x31487: 0x6d9cde20, + 0x31488: 0x6dbf6220, 0x31489: 0x6dbf6420, 0x3148a: 0x6ddd5620, 0x3148b: 0x6ddd5820, + 0x3148c: 0x6ddd5a20, 0x3148d: 0x6ddd5c20, 0x3148e: 0x6ddd5e20, 0x3148f: 0x6ddd6020, + 0x31490: 0x6e090220, 0x31491: 0x6e190620, 0x31492: 0x6e190820, 0x31493: 0x6e190a20, + 0x31494: 0x6e190c20, 0x31495: 0x6e25be20, 0x31496: 0x6e25c020, 0x31497: 0x6e368a20, + 0x31498: 0x6e368c20, 0x31499: 0x6e368e20, 0x3149a: 0x6cb74420, 0x3149b: 0x6d17c620, + 0x3149c: 0x6d17c820, 0x3149d: 0x6d17ca20, 0x3149e: 0x6d17cc20, 0x3149f: 0x6d469220, + 0x314a0: 0x6d469420, 0x314a1: 0x6d469620, 0x314a2: 0x6d469820, 0x314a3: 0x6d739620, + 0x314a4: 0x6d739820, 0x314a5: 0x6d739a20, 0x314a6: 0x6d739c20, 0x314a7: 0x6d739e20, + 0x314a8: 0x6d73a020, 0x314a9: 0x6d73a220, 0x314aa: 0x6d73a420, 0x314ab: 0x6d73a620, + 0x314ac: 0x6d73a820, 0x314ad: 0x6d73aa20, 0x314ae: 0x6d73ac20, 0x314af: 0x6d73ae20, + 0x314b0: 0x6d73b020, 0x314b1: 0x6d73b220, 0x314b2: 0x6d73b420, 0x314b3: 0x6d73b620, + 0x314b4: 0x6d73b820, 0x314b5: 0x6d73ba20, 0x314b6: 0x6d73bc20, 0x314b7: 0x6d73be20, + 0x314b8: 0x6d73c020, 0x314b9: 0x6d73c220, 0x314ba: 0x6d9d2420, 0x314bb: 0x6d9d2620, + 0x314bc: 0x6d9d2820, 0x314bd: 0x6d9d2a20, 0x314be: 0x6d9d2c20, 0x314bf: 0x6d9d2e20, + // Block 0xc53, offset 0x314c0 + 0x314c0: 0x6d9d3020, 0x314c1: 0x6d9d3220, 0x314c2: 0x6d9d3420, 0x314c3: 0x6d9d3620, + 0x314c4: 0x6d9d3820, 0x314c5: 0x6d9d3a20, 0x314c6: 0x6dbf9020, 0x314c7: 0x6d9d3c20, + 0x314c8: 0x6d9d3e20, 0x314c9: 0x6d9d4020, 0x314ca: 0x6d9d4220, 0x314cb: 0x6d9d4420, + 0x314cc: 0x6d9d4620, 0x314cd: 0x6d9d4820, 0x314ce: 0x6d9d4a20, 0x314cf: 0x6d9d4c20, + 0x314d0: 0x6d9d4e20, 0x314d1: 0x6d9d5020, 0x314d2: 0x6d9d5220, 0x314d3: 0x6d9d5420, + 0x314d4: 0x6d9d5620, 0x314d5: 0x6d9d5820, 0x314d6: 0x6d9d5a20, 0x314d7: 0x6d9d5c20, + 0x314d8: 0x6d9d5e20, 0x314d9: 0x6dbf9c20, 0x314da: 0x6dbf9e20, 0x314db: 0x6dbfa020, + 0x314dc: 0x6dbfa220, 0x314dd: 0x6dbfa420, 0x314de: 0x6dbfa620, 0x314df: 0x6dbfa820, + 0x314e0: 0x6dbfaa20, 0x314e1: 0x6dbfac20, 0x314e2: 0x6dbfae20, 0x314e3: 0x6d9d6020, + 0x314e4: 0x6dbfb020, 0x314e5: 0x6dbfb220, 0x314e6: 0x6dbfb420, 0x314e7: 0x6dbfb620, + 0x314e8: 0x6dbfb820, 0x314e9: 0x6dbfba20, 0x314ea: 0x6dbfbc20, 0x314eb: 0x6dbfbe20, + 0x314ec: 0x6dbfc020, 0x314ed: 0x6dbfc220, 0x314ee: 0x6dbfc420, 0x314ef: 0x6dbfc620, + 0x314f0: 0x6dbfc820, 0x314f1: 0x6dbfca20, 0x314f2: 0x6dbfcc20, 0x314f3: 0x6dbfce20, + 0x314f4: 0x6dbfd020, 0x314f5: 0x6ddd9820, 0x314f6: 0x6ddd9a20, 0x314f7: 0x6ddd9c20, + 0x314f8: 0x6ddd9e20, 0x314f9: 0x6ddda020, 0x314fa: 0x6dbfd220, 0x314fb: 0x6ddda220, + 0x314fc: 0x6ddda420, 0x314fd: 0x6ddda620, 0x314fe: 0x6ddda820, 0x314ff: 0x6dddaa20, + // Block 0xc54, offset 0x31500 + 0x31500: 0x6dddac20, 0x31501: 0x6dddae20, 0x31502: 0x6dddb020, 0x31503: 0x6dddb220, + 0x31504: 0x6dddb420, 0x31505: 0x6df51c20, 0x31506: 0x6dddb620, 0x31507: 0x6dddb820, + 0x31508: 0x6dddba20, 0x31509: 0x6dddbc20, 0x3150a: 0x6dddbe20, 0x3150b: 0x6dddc020, + 0x3150c: 0x6dddc220, 0x3150d: 0x6dddc420, 0x3150e: 0x6dc03a20, 0x3150f: 0x6dddc620, + 0x31510: 0x6dddc820, 0x31511: 0x6dddca20, 0x31512: 0x6dddcc20, 0x31513: 0x6dddce20, + 0x31514: 0x6df54220, 0x31515: 0x6df54420, 0x31516: 0x6df54620, 0x31517: 0x6df54820, + 0x31518: 0x6df54a20, 0x31519: 0x6df54c20, 0x3151a: 0x6df54e20, 0x3151b: 0x6df55020, + 0x3151c: 0x6df55220, 0x3151d: 0x6df55420, 0x3151e: 0x6df55620, 0x3151f: 0x6df55820, + 0x31520: 0x6df55a20, 0x31521: 0x6df55c20, 0x31522: 0x6df55e20, 0x31523: 0x6df56020, + 0x31524: 0x6df56220, 0x31525: 0x6df56420, 0x31526: 0x6df56620, 0x31527: 0x6df56820, + 0x31528: 0x6df56a20, 0x31529: 0x6df56c20, 0x3152a: 0x6df56e20, 0x3152b: 0x6df57020, + 0x3152c: 0x6df57220, 0x3152d: 0x6df57420, 0x3152e: 0x6df57620, 0x3152f: 0x6df57820, + 0x31530: 0x6df57a20, 0x31531: 0x6df57c20, 0x31532: 0x6df57e20, 0x31533: 0x6df58020, + 0x31534: 0x6df58220, 0x31535: 0x6df58420, 0x31536: 0x6e093220, 0x31537: 0x6e093420, + 0x31538: 0x6e093620, 0x31539: 0x6e093820, 0x3153a: 0x6df61c20, 0x3153b: 0x6e091c20, + 0x3153c: 0x6e093a20, 0x3153d: 0x6dddd020, 0x3153e: 0x6e093c20, 0x3153f: 0x6e093e20, + // Block 0xc55, offset 0x31540 + 0x31540: 0x6e094020, 0x31541: 0x6e094220, 0x31542: 0x6e094420, 0x31543: 0x6e094620, + 0x31544: 0x6e094820, 0x31545: 0x6e094a20, 0x31546: 0x6e094c20, 0x31547: 0x6e094e20, + 0x31548: 0x6e095020, 0x31549: 0x6e095220, 0x3154a: 0x6e095420, 0x3154b: 0x6e095620, + 0x3154c: 0x6e095820, 0x3154d: 0x6e095a20, 0x3154e: 0x6e095c20, 0x3154f: 0x6e095e20, + 0x31550: 0x6e096020, 0x31551: 0x6e096220, 0x31552: 0x6e096420, 0x31553: 0x6e096620, + 0x31554: 0x6e096820, 0x31555: 0x6e096a20, 0x31556: 0x6e096c20, 0x31557: 0x6e096e20, + 0x31558: 0x6e097020, 0x31559: 0x6e097220, 0x3155a: 0x6e097420, 0x3155b: 0x6e097620, + 0x3155c: 0x6e194620, 0x3155d: 0x6e194820, 0x3155e: 0x6e194a20, 0x3155f: 0x6e194c20, + 0x31560: 0x6e097820, 0x31561: 0x6e194e20, 0x31562: 0x6e195020, 0x31563: 0x6e195220, + 0x31564: 0x6e195420, 0x31565: 0x6e195620, 0x31566: 0x6e195820, 0x31567: 0x6e195a20, + 0x31568: 0x6e195c20, 0x31569: 0x6e195e20, 0x3156a: 0x6e196020, 0x3156b: 0x6e196220, + 0x3156c: 0x6e196420, 0x3156d: 0x6e196620, 0x3156e: 0x6e196820, 0x3156f: 0x6e196a20, + 0x31570: 0x6e196c20, 0x31571: 0x6e25de20, 0x31572: 0x6e25e020, 0x31573: 0x6e25e220, + 0x31574: 0x6e25e420, 0x31575: 0x6e25e620, 0x31576: 0x6e25e820, 0x31577: 0x6e25ea20, + 0x31578: 0x6e25ec20, 0x31579: 0x6e25ee20, 0x3157a: 0x6e25f020, 0x3157b: 0x6e25f220, + 0x3157c: 0x6e25f420, 0x3157d: 0x6e25f620, 0x3157e: 0x6e25f820, 0x3157f: 0x6e25fa20, + // Block 0xc56, offset 0x31580 + 0x31580: 0x6e09e620, 0x31581: 0x6e25fc20, 0x31582: 0x6e25fe20, 0x31583: 0x6e260020, + 0x31584: 0x6e260220, 0x31585: 0x6e260420, 0x31586: 0x6e260620, 0x31587: 0x6e260820, + 0x31588: 0x6e260a20, 0x31589: 0x6e267220, 0x3158a: 0x6e2f5620, 0x3158b: 0x6e2f5820, + 0x3158c: 0x6e2f5a20, 0x3158d: 0x6e2f5c20, 0x3158e: 0x6e2f5e20, 0x3158f: 0x6e2f6020, + 0x31590: 0x6e2f6220, 0x31591: 0x6e2f6420, 0x31592: 0x6e2f6620, 0x31593: 0x6e2f6820, + 0x31594: 0x6e2f6a20, 0x31595: 0x6e2f6c20, 0x31596: 0x6e2f6e20, 0x31597: 0x6e2f7020, + 0x31598: 0x6e2f7220, 0x31599: 0x6e2f7420, 0x3159a: 0x6e2f7620, 0x3159b: 0x6e2f7820, + 0x3159c: 0x6e36a620, 0x3159d: 0x6e36a820, 0x3159e: 0x6e36aa20, 0x3159f: 0x6e36ac20, + 0x315a0: 0x6e36ae20, 0x315a1: 0x6e36b020, 0x315a2: 0x6e36b220, 0x315a3: 0x6e36b420, + 0x315a4: 0x6e36b620, 0x315a5: 0x6e36b820, 0x315a6: 0x6e36ba20, 0x315a7: 0x6e36bc20, + 0x315a8: 0x6e3bac20, 0x315a9: 0x6e36be20, 0x315aa: 0x6e2fda20, 0x315ab: 0x6e36c020, + 0x315ac: 0x6e3bae20, 0x315ad: 0x6e3bb020, 0x315ae: 0x6e3bb220, 0x315af: 0x6e3bb420, + 0x315b0: 0x6e371420, 0x315b1: 0x6e3f5420, 0x315b2: 0x6e3f5620, 0x315b3: 0x6e3f5820, + 0x315b4: 0x6e3f5a20, 0x315b5: 0x6e3f5c20, 0x315b6: 0x6e3f5e20, 0x315b7: 0x6e41da20, + 0x315b8: 0x6e41dc20, 0x315b9: 0x6e44d220, 0x315ba: 0x6e458220, 0x315bb: 0x6e469a20, + 0x315bc: 0x6c42dc20, 0x315bd: 0x6c8ac020, 0x315be: 0x6cb74a20, 0x315bf: 0x6ce86e20, + // Block 0xc57, offset 0x315c0 + 0x315c0: 0x6ce87020, 0x315c1: 0x6ce87220, 0x315c2: 0x6ce87420, 0x315c3: 0x6ce87620, + 0x315c4: 0x6d17e020, 0x315c5: 0x6d17e220, 0x315c6: 0x6d17e420, 0x315c7: 0x6d17e620, + 0x315c8: 0x6d17e820, 0x315c9: 0x6d17ea20, 0x315ca: 0x6d17ec20, 0x315cb: 0x6d17ee20, + 0x315cc: 0x6d17f020, 0x315cd: 0x6d17f220, 0x315ce: 0x6d17f420, 0x315cf: 0x6d17f620, + 0x315d0: 0x6d17f820, 0x315d1: 0x6d46b620, 0x315d2: 0x6d46b820, 0x315d3: 0x6d46ba20, + 0x315d4: 0x6d46bc20, 0x315d5: 0x6d46be20, 0x315d6: 0x6d46c020, 0x315d7: 0x6d46c220, + 0x315d8: 0x6d46c420, 0x315d9: 0x6d46c620, 0x315da: 0x6d46c820, 0x315db: 0x6d46ca20, + 0x315dc: 0x6d46cc20, 0x315dd: 0x6d46ce20, 0x315de: 0x6d46d020, 0x315df: 0x6d46d220, + 0x315e0: 0x6d740c20, 0x315e1: 0x6d740e20, 0x315e2: 0x6d741020, 0x315e3: 0x6d741220, + 0x315e4: 0x6d741420, 0x315e5: 0x6d741620, 0x315e6: 0x6d741820, 0x315e7: 0x6d741a20, + 0x315e8: 0x6d741c20, 0x315e9: 0x6d741e20, 0x315ea: 0x6d742020, 0x315eb: 0x6d742220, + 0x315ec: 0x6d742420, 0x315ed: 0x6d9db020, 0x315ee: 0x6d9db220, 0x315ef: 0x6d9db420, + 0x315f0: 0x6d9db620, 0x315f1: 0x6d9db820, 0x315f2: 0x6d9dba20, 0x315f3: 0x6d9dbc20, + 0x315f4: 0x6d9dbe20, 0x315f5: 0x6d9dc020, 0x315f6: 0x6d9dc220, 0x315f7: 0x6d9dc420, + 0x315f8: 0x6d9dc620, 0x315f9: 0x6d9dc820, 0x315fa: 0x6d9dca20, 0x315fb: 0x6d9dcc20, + 0x315fc: 0x6dc03c20, 0x315fd: 0x6dc03e20, 0x315fe: 0x6dc06820, 0x315ff: 0x6dc04020, + // Block 0xc58, offset 0x31600 + 0x31600: 0x6dc04220, 0x31601: 0x6dc04420, 0x31602: 0x6dc04620, 0x31603: 0x6dc04820, + 0x31604: 0x6dc04a20, 0x31605: 0x6dc04c20, 0x31606: 0x6dc04e20, 0x31607: 0x6dc05020, + 0x31608: 0x6dc05220, 0x31609: 0x6dc05420, 0x3160a: 0x6dc05620, 0x3160b: 0x6dc05820, + 0x3160c: 0x6dde2e20, 0x3160d: 0x6dde3020, 0x3160e: 0x6dde3220, 0x3160f: 0x6dde3420, + 0x31610: 0x6dde3620, 0x31611: 0x6dde3820, 0x31612: 0x6dde3a20, 0x31613: 0x6df61e20, + 0x31614: 0x6df62020, 0x31615: 0x6df62220, 0x31616: 0x6df62420, 0x31617: 0x6df62620, + 0x31618: 0x6df62820, 0x31619: 0x6df62a20, 0x3161a: 0x6df62c20, 0x3161b: 0x6df62e20, + 0x3161c: 0x6e09ec20, 0x3161d: 0x6e09ee20, 0x3161e: 0x6e09f020, 0x3161f: 0x6e09f220, + 0x31620: 0x6e19f820, 0x31621: 0x6e19fa20, 0x31622: 0x6e19fc20, 0x31623: 0x6e19fe20, + 0x31624: 0x6e267420, 0x31625: 0x6cb75220, 0x31626: 0x6ce88620, 0x31627: 0x6d180820, + 0x31628: 0x6d180a20, 0x31629: 0x6d180c20, 0x3162a: 0x6d180e20, 0x3162b: 0x6d181020, + 0x3162c: 0x6c63ac20, 0x3162d: 0x6d181220, 0x3162e: 0x6d181420, 0x3162f: 0x6d181620, + 0x31630: 0x6d181820, 0x31631: 0x6d46f420, 0x31632: 0x6d46f620, 0x31633: 0x6d46f820, + 0x31634: 0x6d46fa20, 0x31635: 0x6d46fc20, 0x31636: 0x6d46fe20, 0x31637: 0x6d745020, + 0x31638: 0x6d745220, 0x31639: 0x6d745420, 0x3163a: 0x6d745620, 0x3163b: 0x6d745820, + 0x3163c: 0x6d745a20, 0x3163d: 0x6d745c20, 0x3163e: 0x6d745e20, 0x3163f: 0x6d746020, + // Block 0xc59, offset 0x31640 + 0x31640: 0x6d746220, 0x31641: 0x6d746420, 0x31642: 0x6d746620, 0x31643: 0x6d746820, + 0x31644: 0x6d746a20, 0x31645: 0x6d746c20, 0x31646: 0x6d746e20, 0x31647: 0x6d747020, + 0x31648: 0x6d747220, 0x31649: 0x6d747420, 0x3164a: 0x6d9e0620, 0x3164b: 0x6d747620, + 0x3164c: 0x6d747820, 0x3164d: 0x6d747a20, 0x3164e: 0x6d747c20, 0x3164f: 0x6d9e0820, + 0x31650: 0x6d9e0a20, 0x31651: 0x6d9e0c20, 0x31652: 0x6d9e0e20, 0x31653: 0x6d9e1020, + 0x31654: 0x6d9e1220, 0x31655: 0x6d9e1420, 0x31656: 0x6d9e1620, 0x31657: 0x6d9e1820, + 0x31658: 0x6d9e1a20, 0x31659: 0x6d9e1c20, 0x3165a: 0x6d9e1e20, 0x3165b: 0x6d9e2020, + 0x3165c: 0x6dc06a20, 0x3165d: 0x6d9e2220, 0x3165e: 0x6d9e2420, 0x3165f: 0x6d9e2620, + 0x31660: 0x6d9e2820, 0x31661: 0x6d9e2a20, 0x31662: 0x6d9e2c20, 0x31663: 0x6d9e2e20, + 0x31664: 0x6d9e3020, 0x31665: 0x6d9e3220, 0x31666: 0x6d9e3420, 0x31667: 0x6d9e3620, + 0x31668: 0x6d9e3820, 0x31669: 0x6d9e3a20, 0x3166a: 0x6d9e3c20, 0x3166b: 0x6d9e3e20, + 0x3166c: 0x6d9e4020, 0x3166d: 0x6dc08020, 0x3166e: 0x6dc08220, 0x3166f: 0x6dc08420, + 0x31670: 0x6dc08620, 0x31671: 0x6dc08820, 0x31672: 0x6dc08a20, 0x31673: 0x6dc08c20, + 0x31674: 0x6dc08e20, 0x31675: 0x6dc09020, 0x31676: 0x6dc09220, 0x31677: 0x6dc09420, + 0x31678: 0x6dc09620, 0x31679: 0x6dc09820, 0x3167a: 0x6dc09a20, 0x3167b: 0x6dc09c20, + 0x3167c: 0x6dc09e20, 0x3167d: 0x6dc0a020, 0x3167e: 0x6dc0a220, 0x3167f: 0x6dc0a420, + // Block 0xc5a, offset 0x31680 + 0x31680: 0x6dc0a620, 0x31681: 0x6dc0a820, 0x31682: 0x6dc0aa20, 0x31683: 0x6dc0ac20, + 0x31684: 0x6dc0ae20, 0x31685: 0x6dc0b020, 0x31686: 0x6dc0b220, 0x31687: 0x6dc0b420, + 0x31688: 0x6dc0b620, 0x31689: 0x6dc0b820, 0x3168a: 0x6dde4e20, 0x3168b: 0x6dde5020, + 0x3168c: 0x6dde5220, 0x3168d: 0x6dde5420, 0x3168e: 0x6dde5620, 0x3168f: 0x6dde5820, + 0x31690: 0x6dde5a20, 0x31691: 0x6dde5c20, 0x31692: 0x6dde5e20, 0x31693: 0x6dde6020, + 0x31694: 0x6dde6220, 0x31695: 0x6dde6420, 0x31696: 0x6dde6620, 0x31697: 0x6dde6820, + 0x31698: 0x6dde6a20, 0x31699: 0x6dde6c20, 0x3169a: 0x6dde6e20, 0x3169b: 0x6dde7020, + 0x3169c: 0x6dde7220, 0x3169d: 0x6dde7420, 0x3169e: 0x6dde7620, 0x3169f: 0x6dde7820, + 0x316a0: 0x6dde7a20, 0x316a1: 0x6df63820, 0x316a2: 0x6dde7c20, 0x316a3: 0x6dde7e20, + 0x316a4: 0x6dd43a20, 0x316a5: 0x6dde8020, 0x316a6: 0x6df64c20, 0x316a7: 0x6dc13220, + 0x316a8: 0x6df64e20, 0x316a9: 0x6df65020, 0x316aa: 0x6df65220, 0x316ab: 0x6df65420, + 0x316ac: 0x6df65620, 0x316ad: 0x6df65820, 0x316ae: 0x6df65a20, 0x316af: 0x6df65c20, + 0x316b0: 0x6df65e20, 0x316b1: 0x6df66020, 0x316b2: 0x6df66220, 0x316b3: 0x6df66420, + 0x316b4: 0x6df66620, 0x316b5: 0x6df66820, 0x316b6: 0x6df66a20, 0x316b7: 0x6df66c20, + 0x316b8: 0x6df66e20, 0x316b9: 0x6df67020, 0x316ba: 0x6df67220, 0x316bb: 0x6df67420, + 0x316bc: 0x6df67620, 0x316bd: 0x6df67820, 0x316be: 0x6df67a20, 0x316bf: 0x6df67c20, + // Block 0xc5b, offset 0x316c0 + 0x316c0: 0x6df67e20, 0x316c1: 0x6df68020, 0x316c2: 0x6df68220, 0x316c3: 0x6df68420, + 0x316c4: 0x6df68620, 0x316c5: 0x6df68820, 0x316c6: 0x6df68a20, 0x316c7: 0x6df68c20, + 0x316c8: 0x6df68e20, 0x316c9: 0x6df69020, 0x316ca: 0x6df69220, 0x316cb: 0x6df69420, + 0x316cc: 0x6df69620, 0x316cd: 0x6df69820, 0x316ce: 0x6df69a20, 0x316cf: 0x6df69c20, + 0x316d0: 0x6e0a0e20, 0x316d1: 0x6df69e20, 0x316d2: 0x6e0a1020, 0x316d3: 0x6e0a1220, + 0x316d4: 0x6e0a1420, 0x316d5: 0x6e0a1620, 0x316d6: 0x6e0a1820, 0x316d7: 0x6e0a1a20, + 0x316d8: 0x6e0a1c20, 0x316d9: 0x6e0a1e20, 0x316da: 0x6e0a2020, 0x316db: 0x6e0a2220, + 0x316dc: 0x6e0a2420, 0x316dd: 0x6e0a2620, 0x316de: 0x6e0a2820, 0x316df: 0x6e0a2a20, + 0x316e0: 0x6e0a2c20, 0x316e1: 0x6e0a2e20, 0x316e2: 0x6e0a3020, 0x316e3: 0x6e0a3220, + 0x316e4: 0x6e0a3420, 0x316e5: 0x6e0a3620, 0x316e6: 0x6e0a3820, 0x316e7: 0x6e0a3a20, + 0x316e8: 0x6e0a3c20, 0x316e9: 0x6e0a3e20, 0x316ea: 0x6e0a4020, 0x316eb: 0x6e0a4220, + 0x316ec: 0x6e1a1020, 0x316ed: 0x6e1a1220, 0x316ee: 0x6e1a1420, 0x316ef: 0x6e1a1620, + 0x316f0: 0x6e1a1820, 0x316f1: 0x6e1a1a20, 0x316f2: 0x6e1a1c20, 0x316f3: 0x6e1a1e20, + 0x316f4: 0x6e1a2020, 0x316f5: 0x6e1a2220, 0x316f6: 0x6e1a2420, 0x316f7: 0x6e1a2620, + 0x316f8: 0x6e1a2820, 0x316f9: 0x6e1a2a20, 0x316fa: 0x6e1a2c20, 0x316fb: 0x6e1a2e20, + 0x316fc: 0x6e1a3020, 0x316fd: 0x6e1a3220, 0x316fe: 0x6e1a3420, 0x316ff: 0x6e0ad220, + // Block 0xc5c, offset 0x31700 + 0x31700: 0x6e1a3620, 0x31701: 0x6e1a3820, 0x31702: 0x6e1a3a20, 0x31703: 0x6e1a3c20, + 0x31704: 0x6e1a3e20, 0x31705: 0x6e1a4020, 0x31706: 0x6e1a4220, 0x31707: 0x6e1a4420, + 0x31708: 0x6e1a4620, 0x31709: 0x6e1a4820, 0x3170a: 0x6e1a4a20, 0x3170b: 0x6e268620, + 0x3170c: 0x6e1a4c20, 0x3170d: 0x6e1a4e20, 0x3170e: 0x6e1a5020, 0x3170f: 0x6e1a5220, + 0x31710: 0x6e268820, 0x31711: 0x6e268a20, 0x31712: 0x6e268c20, 0x31713: 0x6e268e20, + 0x31714: 0x6e269020, 0x31715: 0x6e269220, 0x31716: 0x6e269420, 0x31717: 0x6e269620, + 0x31718: 0x6e269820, 0x31719: 0x6e269a20, 0x3171a: 0x6e269c20, 0x3171b: 0x6e269e20, + 0x3171c: 0x6e26a020, 0x3171d: 0x6e26a220, 0x3171e: 0x6e26a420, 0x3171f: 0x6e26a620, + 0x31720: 0x6e260c20, 0x31721: 0x6e2ff220, 0x31722: 0x6e2ff420, 0x31723: 0x6e2ff620, + 0x31724: 0x6e2ff820, 0x31725: 0x6e2ffa20, 0x31726: 0x6e2ffc20, 0x31727: 0x6e2ffe20, + 0x31728: 0x6e300020, 0x31729: 0x6e273020, 0x3172a: 0x6e300220, 0x3172b: 0x6e300420, + 0x3172c: 0x6e300620, 0x3172d: 0x6e300820, 0x3172e: 0x6e300a20, 0x3172f: 0x6e300c20, + 0x31730: 0x6e300e20, 0x31731: 0x6e301020, 0x31732: 0x6e301220, 0x31733: 0x6e301420, + 0x31734: 0x6e301620, 0x31735: 0x6e273220, 0x31736: 0x6e301820, 0x31737: 0x6e301a20, + 0x31738: 0x6e301c20, 0x31739: 0x6e372220, 0x3173a: 0x6e371620, 0x3173b: 0x6e301e20, + 0x3173c: 0x6e302020, 0x3173d: 0x6e372420, 0x3173e: 0x6e372620, 0x3173f: 0x6e372820, + // Block 0xc5d, offset 0x31740 + 0x31740: 0x6e372a20, 0x31741: 0x6e372c20, 0x31742: 0x6e372e20, 0x31743: 0x6e373020, + 0x31744: 0x6e373220, 0x31745: 0x6e373420, 0x31746: 0x6e373620, 0x31747: 0x6e373820, + 0x31748: 0x6e373a20, 0x31749: 0x6e373c20, 0x3174a: 0x6e373e20, 0x3174b: 0x6e3bea20, + 0x3174c: 0x6e3bec20, 0x3174d: 0x6e3bee20, 0x3174e: 0x6e3bf020, 0x3174f: 0x6e3bf220, + 0x31750: 0x6e3bf420, 0x31751: 0x6e3bf620, 0x31752: 0x6e3bf820, 0x31753: 0x6e3f8820, + 0x31754: 0x6e3f8a20, 0x31755: 0x6e41fa20, 0x31756: 0x6e41fc20, 0x31757: 0x6e41fe20, + 0x31758: 0x6e43c020, 0x31759: 0x6e43c220, 0x3175a: 0x6e43c420, 0x3175b: 0x6e44e620, + 0x3175c: 0x6e44e820, 0x3175d: 0x6e458c20, 0x3175e: 0x6e458e20, 0x3175f: 0x6c0ac820, + 0x31760: 0x6c28a620, 0x31761: 0x6c28a820, 0x31762: 0x6c42de20, 0x31763: 0x6c42e020, + 0x31764: 0x6c42e220, 0x31765: 0x6c63ae20, 0x31766: 0x6c63b020, 0x31767: 0x6c63b220, + 0x31768: 0x6c63b420, 0x31769: 0x6c63b620, 0x3176a: 0x6c8ac420, 0x3176b: 0x6c8ac620, + 0x3176c: 0x6c8ac820, 0x3176d: 0x6c8aca20, 0x3176e: 0x6c8acc20, 0x3176f: 0x6c8ace20, + 0x31770: 0x6c8ad020, 0x31771: 0x6c8ad220, 0x31772: 0x6c8ad420, 0x31773: 0x6c8ad620, + 0x31774: 0x6c8ad820, 0x31775: 0x6c8ada20, 0x31776: 0x6c8adc20, 0x31777: 0x6cb75620, + 0x31778: 0x6cb75820, 0x31779: 0x6cb75a20, 0x3177a: 0x6cb75c20, 0x3177b: 0x6cb75e20, + 0x3177c: 0x6cb76020, 0x3177d: 0x6cb76220, 0x3177e: 0x6cb76420, 0x3177f: 0x6cb76620, + // Block 0xc5e, offset 0x31780 + 0x31780: 0x6ce89020, 0x31781: 0x6ce89220, 0x31782: 0x6ce89420, 0x31783: 0x6ce89620, + 0x31784: 0x6ce89820, 0x31785: 0x6ce89a20, 0x31786: 0x6ce89c20, 0x31787: 0x6ce89e20, + 0x31788: 0x6ce8a020, 0x31789: 0x6d183020, 0x3178a: 0x6d183220, 0x3178b: 0x6d183420, + 0x3178c: 0x6d183620, 0x3178d: 0x6d183820, 0x3178e: 0x6d183a20, 0x3178f: 0x6d183c20, + 0x31790: 0x6d183e20, 0x31791: 0x6d184020, 0x31792: 0x6d184220, 0x31793: 0x6d184420, + 0x31794: 0x6d184620, 0x31795: 0x6d472620, 0x31796: 0x6d472820, 0x31797: 0x6d472a20, + 0x31798: 0x6d74e020, 0x31799: 0x6d472c20, 0x3179a: 0x6d472e20, 0x3179b: 0x6d473020, + 0x3179c: 0x6d473220, 0x3179d: 0x6d74e220, 0x3179e: 0x6d74e420, 0x3179f: 0x6d74e620, + 0x317a0: 0x6d74e820, 0x317a1: 0x6d74ea20, 0x317a2: 0x6d74ec20, 0x317a3: 0x6d74ee20, + 0x317a4: 0x6d74f020, 0x317a5: 0x6d9eba20, 0x317a6: 0x6d9ebc20, 0x317a7: 0x6d9ebe20, + 0x317a8: 0x6d9ec020, 0x317a9: 0x6dc13820, 0x317aa: 0x6dc13a20, 0x317ab: 0x6dc13c20, + 0x317ac: 0x6dc13e20, 0x317ad: 0x6ddee620, 0x317ae: 0x6ddee820, 0x317af: 0x6ddeea20, + 0x317b0: 0x6ddeec20, 0x317b1: 0x6df73020, 0x317b2: 0x6df73220, 0x317b3: 0x6e273420, + 0x317b4: 0x6e273620, 0x317b5: 0x6cb78220, 0x317b6: 0x6d750020, 0x317b7: 0x6d9eca20, + 0x317b8: 0x6df73620, 0x317b9: 0x6e0ad820, 0x317ba: 0x6e1ac620, 0x317bb: 0x6e1ac820, + 0x317bc: 0x6e378c20, 0x317bd: 0x6e378e20, 0x317be: 0x6d9ed820, 0x317bf: 0x6cb78620, + // Block 0xc5f, offset 0x317c0 + 0x317c0: 0x6d185620, 0x317c1: 0x6d185820, 0x317c2: 0x6d185a20, 0x317c3: 0x6d751220, + 0x317c4: 0x6d751420, 0x317c5: 0x6d9ee220, 0x317c6: 0x6d9ee420, 0x317c7: 0x6d9ee620, + 0x317c8: 0x6d9ee820, 0x317c9: 0x6dc14820, 0x317ca: 0x6dc14a20, 0x317cb: 0x6dc14c20, + 0x317cc: 0x6ddefc20, 0x317cd: 0x6ddefe20, 0x317ce: 0x6ddf0020, 0x317cf: 0x6ddf0220, + 0x317d0: 0x6ddf0420, 0x317d1: 0x6df74820, 0x317d2: 0x6df74a20, 0x317d3: 0x6df74c20, + 0x317d4: 0x6df74e20, 0x317d5: 0x6df75020, 0x317d6: 0x6df75220, 0x317d7: 0x6df75420, + 0x317d8: 0x6e0aec20, 0x317d9: 0x6e0aee20, 0x317da: 0x6e0af020, 0x317db: 0x6e0af220, + 0x317dc: 0x6e1ad620, 0x317dd: 0x6e1ad820, 0x317de: 0x6e274420, 0x317df: 0x6e30b220, + 0x317e0: 0x6e379a20, 0x317e1: 0x6e3c3820, 0x317e2: 0x6e43e220, 0x317e3: 0x6e460a20, + 0x317e4: 0x6e46a220, 0x317e5: 0x6cb78a20, 0x317e6: 0x6c28aa20, 0x317e7: 0x6d475620, + 0x317e8: 0x6d753420, 0x317e9: 0x6d753620, 0x317ea: 0x6d753820, 0x317eb: 0x6d753a20, + 0x317ec: 0x6d9f0620, 0x317ed: 0x6d9f0820, 0x317ee: 0x6d9f0a20, 0x317ef: 0x6dc17020, + 0x317f0: 0x6dc17220, 0x317f1: 0x6ddf2e20, 0x317f2: 0x6ddf3020, 0x317f3: 0x6df77420, + 0x317f4: 0x6df77620, 0x317f5: 0x6e0b0620, 0x317f6: 0x6e275620, 0x317f7: 0x6e44fe20, + 0x317f8: 0x6cb78c20, 0x317f9: 0x6d755a20, 0x317fa: 0x6d9f2620, 0x317fb: 0x6cb79420, + 0x317fc: 0x6d476420, 0x317fd: 0x6d476620, 0x317fe: 0x6d756420, 0x317ff: 0x6ddf5220, + // Block 0xc60, offset 0x31800 + 0x31800: 0x6df79a20, 0x31801: 0x6e0b2a20, 0x31802: 0x6e30dc20, 0x31803: 0x6ce8b420, + 0x31804: 0x6ce8b620, 0x31805: 0x6d9f3420, 0x31806: 0x6d9f3620, 0x31807: 0x6dc19420, + 0x31808: 0x6dc19620, 0x31809: 0x6dc19820, 0x3180a: 0x6ddf5a20, 0x3180b: 0x6ddf5c20, + 0x3180c: 0x6e3c4c20, 0x3180d: 0x6ce8b820, 0x3180e: 0x6d758020, 0x3180f: 0x6dc1a820, + 0x31810: 0x6e278420, 0x31811: 0x6ce8ba20, 0x31812: 0x6cb79620, 0x31813: 0x6d758a20, + 0x31814: 0x6d9f4c20, 0x31815: 0x6d9f4e20, 0x31816: 0x6d9f5020, 0x31817: 0x6d9f5220, + 0x31818: 0x6d9f5420, 0x31819: 0x6d585420, 0x3181a: 0x6dc1c220, 0x3181b: 0x6dc1c420, + 0x3181c: 0x6dc1c620, 0x3181d: 0x6dc1c820, 0x3181e: 0x6dc1ca20, 0x3181f: 0x6ddf7220, + 0x31820: 0x6ddf7420, 0x31821: 0x6ddf7620, 0x31822: 0x6df7c620, 0x31823: 0x6df7c820, + 0x31824: 0x6e0b5420, 0x31825: 0x6e0b5620, 0x31826: 0x6e0b5820, 0x31827: 0x6e0b5a20, + 0x31828: 0x6e0b5c20, 0x31829: 0x6e0b5e20, 0x3182a: 0x6e0b6020, 0x3182b: 0x6e1b2020, + 0x3182c: 0x6e1b2220, 0x3182d: 0x6e1b2420, 0x3182e: 0x6e1b2620, 0x3182f: 0x6e1b2820, + 0x31830: 0x6e278820, 0x31831: 0x6e278a20, 0x31832: 0x6e30f220, 0x31833: 0x6e30f420, + 0x31834: 0x6e30f620, 0x31835: 0x6e3c5820, 0x31836: 0x6e3fc820, 0x31837: 0x6e423420, + 0x31838: 0x6e43f420, 0x31839: 0x6ce8be20, 0x3183a: 0x6d9f7220, 0x3183b: 0x6dc1e620, + 0x3183c: 0x6df7e020, 0x3183d: 0x6d187420, 0x3183e: 0x6c42e420, 0x3183f: 0x6dc1e820, + // Block 0xc61, offset 0x31840 + 0x31840: 0x6ddf8e20, 0x31841: 0x6ddf9020, 0x31842: 0x6ddf9220, 0x31843: 0x6df7e420, + 0x31844: 0x6df7e620, 0x31845: 0x6e1b6620, 0x31846: 0x6e310c20, 0x31847: 0x6e310e20, + 0x31848: 0x6e3c7020, 0x31849: 0x6e3c7220, 0x3184a: 0x6e3fd420, 0x3184b: 0x6ce8c020, + 0x3184c: 0x6d187620, 0x3184d: 0x6e0b9620, 0x3184e: 0x6d187820, 0x3184f: 0x6d75a020, + 0x31850: 0x6d75a220, 0x31851: 0x6d75a420, 0x31852: 0x6d9f7820, 0x31853: 0x6d187a20, + 0x31854: 0x6d187c20, 0x31855: 0x6ddfaa20, 0x31856: 0x6ddfac20, 0x31857: 0x6df7f820, + 0x31858: 0x6e1b6e20, 0x31859: 0x6e1b7020, 0x3185a: 0x6e1b7220, 0x3185b: 0x6e1b7420, + 0x3185c: 0x6e311420, 0x3185d: 0x6e3c7a20, 0x3185e: 0x6e37ec20, 0x3185f: 0x6e3c7c20, + 0x31860: 0x6d188020, 0x31861: 0x6c42e620, 0x31862: 0x6dc20220, 0x31863: 0x6dc20420, + 0x31864: 0x6dc20620, 0x31865: 0x6ddfb820, 0x31866: 0x6ddfba20, 0x31867: 0x6ddfbc20, + 0x31868: 0x6ddfbe20, 0x31869: 0x6ddfc020, 0x3186a: 0x6ddfc220, 0x3186b: 0x6ddfc420, + 0x3186c: 0x6ddfc620, 0x3186d: 0x6df80c20, 0x3186e: 0x6e0ba420, 0x3186f: 0x6e0ba620, + 0x31870: 0x6e0ba820, 0x31871: 0x6e1b8020, 0x31872: 0x6e27d820, 0x31873: 0x6e27da20, + 0x31874: 0x6e27dc20, 0x31875: 0x6e27de20, 0x31876: 0x6e311c20, 0x31877: 0x6e311e20, + 0x31878: 0x6e312020, 0x31879: 0x6e312220, 0x3187a: 0x6e440020, 0x3187b: 0x6d478020, + 0x3187c: 0x6d9f8820, 0x3187d: 0x6d9f8a20, 0x3187e: 0x6dc22020, 0x3187f: 0x6dc22220, + // Block 0xc62, offset 0x31880 + 0x31880: 0x6df82220, 0x31881: 0x6df82420, 0x31882: 0x6e27f420, 0x31883: 0x6e313820, + 0x31884: 0x6e313a20, 0x31885: 0x6e380020, 0x31886: 0x6e380220, 0x31887: 0x6e3c9220, + 0x31888: 0x6e424e20, 0x31889: 0x6e46fc20, 0x3188a: 0x6d478220, 0x3188b: 0x6dc22c20, + 0x3188c: 0x6ddfec20, 0x3188d: 0x6df83420, 0x3188e: 0x6e1b9a20, 0x3188f: 0x6e314420, + 0x31890: 0x6c15e220, 0x31891: 0x6d75b420, 0x31892: 0x6d75b620, 0x31893: 0x6d9f9220, + 0x31894: 0x6dc23020, 0x31895: 0x6ddff620, 0x31896: 0x6df83e20, 0x31897: 0x6df84020, + 0x31898: 0x6df84220, 0x31899: 0x6e0bda20, 0x3189a: 0x6e0bdc20, 0x3189b: 0x6e0bde20, + 0x3189c: 0x6e1b9e20, 0x3189d: 0x6e0be020, 0x3189e: 0x6e0be220, 0x3189f: 0x6e0be420, + 0x318a0: 0x6e0be620, 0x318a1: 0x6e0be820, 0x318a2: 0x6dc23a20, 0x318a3: 0x6e0bea20, + 0x318a4: 0x6e1ba420, 0x318a5: 0x6e1ba620, 0x318a6: 0x6e1ba820, 0x318a7: 0x6e1baa20, + 0x318a8: 0x6e1bac20, 0x318a9: 0x6e1bae20, 0x318aa: 0x6e280020, 0x318ab: 0x6e280220, + 0x318ac: 0x6e280420, 0x318ad: 0x6e314a20, 0x318ae: 0x6e314c20, 0x318af: 0x6e314e20, + 0x318b0: 0x6e315020, 0x318b1: 0x6e315220, 0x318b2: 0x6e381220, 0x318b3: 0x6e381420, + 0x318b4: 0x6e381620, 0x318b5: 0x6e381820, 0x318b6: 0x6e381a20, 0x318b7: 0x6e381c20, + 0x318b8: 0x6e3ca820, 0x318b9: 0x6e3caa20, 0x318ba: 0x6e3cac20, 0x318bb: 0x6e3cae20, + 0x318bc: 0x6e440620, 0x318bd: 0x6e440820, 0x318be: 0x6e46dc20, 0x318bf: 0x6c42e820, + // Block 0xc63, offset 0x318c0 + 0x318c0: 0x6c8aee20, 0x318c1: 0x6cb79820, 0x318c2: 0x6ce8c420, 0x318c3: 0x6d188220, + 0x318c4: 0x6d188420, 0x318c5: 0x6d188620, 0x318c6: 0x6d188820, 0x318c7: 0x6d478620, + 0x318c8: 0x6d478820, 0x318c9: 0x6d75ba20, 0x318ca: 0x6d75bc20, 0x318cb: 0x6dc23c20, + 0x318cc: 0x6dc23e20, 0x318cd: 0x6d9f9c20, 0x318ce: 0x6de00020, 0x318cf: 0x6df85a20, + 0x318d0: 0x6de23620, 0x318d1: 0x6e0c1220, 0x318d2: 0x6e1be220, 0x318d3: 0x6e283820, + 0x318d4: 0x6e283a20, 0x318d5: 0x6e283c20, 0x318d6: 0x6e467820, 0x318d7: 0x6e46a820, + 0x318d8: 0x6e473c20, 0x318d9: 0x6c0aca20, 0x318da: 0x6cb79a20, 0x318db: 0x6cb79c20, + 0x318dc: 0x6d9f9e20, 0x318dd: 0x6e1bea20, 0x318de: 0x6e441620, 0x318df: 0x6c28ac20, + 0x318e0: 0x6dc24220, 0x318e1: 0x6e1c0020, 0x318e2: 0x6e284620, 0x318e3: 0x6e3cda20, + 0x318e4: 0x6e3ffc20, 0x318e5: 0x6e3ffe20, 0x318e6: 0x6d585620, 0x318e7: 0x6d7e6e20, + 0x318e8: 0x6c670020, 0x318e9: 0x6db26c20, 0x318ea: 0x6c610620, 0x318eb: 0x6ce29e20, + 0x318ec: 0x6d974220, 0x318ed: 0x6e186020, 0x318ee: 0x6e41aa20, 0x318ef: 0x6d135620, + 0x318f0: 0x6c04aa20, 0x318f1: 0x6c079420, 0x318f2: 0x6dd85820, 0x318f3: 0x6d789a20, + 0x318f4: 0x6c006420, 0x318f5: 0x6c01f820, 0x318f6: 0x6c03d220, 0x318f7: 0x6c0a5820, + 0x318f8: 0x6c083c20, 0x318f9: 0x6c0c7020, 0x318fa: 0x6c2bb820, 0x318fb: 0x6ded8620, + 0x318fc: 0x6da1a620, 0x318fd: 0x6d585820, 0x318fe: 0x6d00ea20, 0x318ff: 0x6cae1c20, + // Block 0xc64, offset 0x31900 + 0x31900: 0x6e134020, 0x31901: 0x6d0e4820, 0x31902: 0x6dd6dc20, 0x31903: 0x6cd37020, + 0x31904: 0x6c749620, 0x31905: 0x6daca820, 0x31906: 0x6c3cfa20, 0x31907: 0x6c29c820, + 0x31908: 0x6c1efa20, 0x31909: 0x6c1efc20, 0x3190a: 0x6cad0e20, 0x3190b: 0x6db51620, + // Block 0xc65, offset 0x31940 + 0x31940: 0x6c86d020, 0x31941: 0x6c219c20, 0x31942: 0x6c270e20, 0x31943: 0x6d0f3a20, + 0x31944: 0x6cfa9420, 0x31945: 0x6c160020, 0x31946: 0x6c073820, 0x31947: 0x6d9f9e20, + 0x31948: 0x6d9f9e20, 0x31949: 0x6c490c20, 0x3194a: 0x6c41dc20, 0x3194b: 0x6cbab020, + 0x3194c: 0x6c2eb020, 0x3194d: 0x6de28c20, 0x3194e: 0x6e102820, 0x3194f: 0x6de9ba20, + 0x31950: 0x6e2b8e20, 0x31951: 0x6db3f420, 0x31952: 0x6d3b6a20, 0x31953: 0x6e2d0820, + 0x31954: 0x6d540620, 0x31955: 0x6c542820, 0x31956: 0x6c782020, 0x31957: 0x6c79ee20, + 0x31958: 0x6d09ae20, 0x31959: 0x6d128020, 0x3195a: 0x6d9bda20, 0x3195b: 0x6ce8d220, + 0x3195c: 0x6c18d820, 0x3195d: 0x6e0e7820, 0x3195e: 0x6e0f8220, 0x3195f: 0x6e12b420, + 0x31960: 0x6e458e20, 0x31961: 0x6cc0c020, 0x31962: 0x6da7c620, 0x31963: 0x6dd18820, + 0x31964: 0x6e01ee20, 0x31965: 0x6c348020, 0x31966: 0x6dea2c20, 0x31967: 0x6e135e20, + 0x31968: 0x6cc21820, 0x31969: 0x6c73be20, 0x3196a: 0x6c769c20, 0x3196b: 0x6c795620, + 0x3196c: 0x6c620220, 0x3196d: 0x6c297820, 0x3196e: 0x6c179420, 0x3196f: 0x6cb9b220, + 0x31970: 0x6d7cd420, 0x31971: 0x6de3da20, 0x31972: 0x6dfc5620, 0x31973: 0x6d868620, + 0x31974: 0x6c144420, 0x31975: 0x6e008a20, 0x31976: 0x6d0bc020, 0x31977: 0x6d103820, + 0x31978: 0x6e16b020, 0x31979: 0x6d73ae20, 0x3197a: 0x6e371620, 0x3197b: 0x6d027820, + 0x3197c: 0x6d032420, 0x3197d: 0x6d33d820, 0x3197e: 0x6cdb3420, 0x3197f: 0x6d96bc20, + // Block 0xc66, offset 0x31980 + 0x31980: 0x6cb78620, 0x31981: 0x6d68ec20, 0x31982: 0x6de11020, 0x31983: 0x6c1e9220, + 0x31984: 0x6e1f9e20, 0x31985: 0x6e206020, 0x31986: 0x6c23f020, 0x31987: 0x6d5d2420, + 0x31988: 0x6d0f2e20, 0x31989: 0x6d152020, 0x3198a: 0x6dc3e620, 0x3198b: 0x6d1fe020, + 0x3198c: 0x6d542620, 0x3198d: 0x6c9f4220, 0x3198e: 0x6d295820, 0x3198f: 0x6ca91620, + 0x31990: 0x6daf5020, 0x31991: 0x6c62d820, 0x31992: 0x6c8d4420, 0x31993: 0x6c145c20, + 0x31994: 0x6d487e20, 0x31995: 0x6c65d820, 0x31996: 0x6d03ae20, 0x31997: 0x6d341420, + 0x31998: 0x6cdb8220, 0x31999: 0x6cb5fc20, 0x3199a: 0x6e21cc20, 0x3199b: 0x6c4ef420, + 0x3199c: 0x6d540620, 0x3199d: 0x6d927c20, 0x3199e: 0x6c024220, 0x3199f: 0x6d1f5620, + 0x319a0: 0x6c4d8620, 0x319a1: 0x6ca2d620, 0x319a2: 0x6ca3e620, 0x319a3: 0x6c06c620, + 0x319a4: 0x6dac3420, 0x319a5: 0x6c438020, 0x319a6: 0x6cc2d420, 0x319a7: 0x6c021a20, + 0x319a8: 0x6c38c420, 0x319a9: 0x6d527e20, 0x319aa: 0x6c803a20, 0x319ab: 0x6c8de620, + 0x319ac: 0x6ced8620, 0x319ad: 0x6c599e20, 0x319ae: 0x6d09c620, 0x319af: 0x6d3c9420, + 0x319b0: 0x6c9e2620, 0x319b1: 0x6c272020, 0x319b2: 0x6c22fc20, 0x319b3: 0x6c4f3820, + 0x319b4: 0x6c5eb420, 0x319b5: 0x6c997820, 0x319b6: 0x6ca3de20, 0x319b7: 0x6c433620, + 0x319b8: 0x6c2a4c20, 0x319b9: 0x6c65d220, 0x319ba: 0x6c9c8020, 0x319bb: 0x6dce7a20, + 0x319bc: 0x6c263620, 0x319bd: 0x6d68e420, 0x319be: 0x6ce47020, 0x319bf: 0x6da05e20, + // Block 0xc67, offset 0x319c0 + 0x319c0: 0x6c199220, 0x319c1: 0x6c019420, 0x319c2: 0x6de23220, 0x319c3: 0x6c72c420, + 0x319c4: 0x6dc8dc20, 0x319c5: 0x6dfe0220, 0x319c6: 0x6d6f2820, 0x319c7: 0x6e44c220, + 0x319c8: 0x6df75420, 0x319c9: 0x6d758020, 0x319ca: 0x6c00a820, 0x319cb: 0x6d7e5e20, + 0x319cc: 0x6d80f220, 0x319cd: 0x6e22bc20, 0x319ce: 0x6c10da20, 0x319cf: 0x6d4fbc20, + 0x319d0: 0x6e28d020, 0x319d1: 0x6d515420, 0x319d2: 0x6d297c20, 0x319d3: 0x6cfc0c20, + 0x319d4: 0x6d5a3c20, 0x319d5: 0x6c3d4620, 0x319d6: 0x6d60c620, 0x319d7: 0x6db0a020, + 0x319d8: 0x6d6bf020, 0x319d9: 0x6d642020, 0x319da: 0x6cb37e20, 0x319db: 0x6db9b220, + 0x319dc: 0x6c0cfc20, 0x319dd: 0x6c0d4020, 0x319de: 0x6c46c420, 0x319df: 0x6c77fe20, + 0x319e0: 0x6cde9a20, 0x319e1: 0x6d3c9420, 0x319e2: 0x6cf17420, 0x319e3: 0x6c32f220, + 0x319e4: 0x6c993220, 0x319e5: 0x6da72420, 0x319e6: 0x6de83e20, 0x319e7: 0x6dca5a20, + 0x319e8: 0x6c05e820, 0x319e9: 0x6c2d8820, 0x319ea: 0x6d1f5620, 0x319eb: 0x6da2f220, + 0x319ec: 0x6c333420, 0x319ed: 0x6c573a20, 0x319ee: 0x6d5a0620, 0x319ef: 0x6caa3420, + 0x319f0: 0x6caada20, 0x319f1: 0x6d12d220, 0x319f2: 0x6d151e20, 0x319f3: 0x6e359c20, + 0x319f4: 0x6d442e20, 0x319f5: 0x6c298220, 0x319f6: 0x6dcca820, 0x319f7: 0x6e043820, + 0x319f8: 0x6dbbb220, 0x319f9: 0x6cc32e20, 0x319fa: 0x6c006a20, 0x319fb: 0x6d18e420, + 0x319fc: 0x6d4cd620, 0x319fd: 0x6c1cfc20, 0x319fe: 0x6c729c20, 0x319ff: 0x6d540620, + // Block 0xc68, offset 0x31a00 + 0x31a00: 0x6d834420, 0x31a01: 0x6daa7820, 0x31a02: 0x6d643a20, 0x31a03: 0x6d95ae20, + 0x31a04: 0x6d9f9c20, 0x31a05: 0x6cf5f820, 0x31a06: 0x6c283820, 0x31a07: 0x6d48a020, + 0x31a08: 0x6c368e20, 0x31a09: 0x6c521a20, 0x31a0a: 0x6c546e20, 0x31a0b: 0x6cfa3020, + 0x31a0c: 0x6c7a1820, 0x31a0d: 0x6c7ac820, 0x31a0e: 0x6cd45220, 0x31a0f: 0x6c801620, + 0x31a10: 0x6df30020, 0x31a11: 0x6c02d820, 0x31a12: 0x6d50c420, 0x31a13: 0x6cb60220, + 0x31a14: 0x6c64a820, 0x31a15: 0x6c945a20, 0x31a16: 0x6c9f6220, 0x31a17: 0x6d6bf820, + 0x31a18: 0x6c4d5820, 0x31a19: 0x6cf2a220, 0x31a1a: 0x6c73f020, 0x31a1b: 0x6ca2d620, + 0x31a1c: 0x6ce61620, 0x31a1d: 0x6c17f820, 0x31a1e: 0x6c0e4220, 0x31a1f: 0x6d4d6420, + 0x31a20: 0x6c35ea20, 0x31a21: 0x6c21ce20, 0x31a22: 0x6c9cce20, 0x31a23: 0x6c38f420, + 0x31a24: 0x6ca30c20, 0x31a25: 0x6cd24620, 0x31a26: 0x6d8bbe20, 0x31a27: 0x6d0cea20, + 0x31a28: 0x6d0d0c20, 0x31a29: 0x6c27f020, 0x31a2a: 0x6dd9bc20, 0x31a2b: 0x6c8d9420, + 0x31a2c: 0x6cfa6c20, 0x31a2d: 0x6c194820, 0x31a2e: 0x6d834820, 0x31a2f: 0x6d84e820, + 0x31a30: 0x6e007220, 0x31a31: 0x6d6f9220, 0x31a32: 0x6e2f7020, 0x31a33: 0x6e30b220, + 0x31a34: 0x6c36c420, 0x31a35: 0x6c9f2420, 0x31a36: 0x6db16420, 0x31a37: 0x6c0a4420, + 0x31a38: 0x6ca80e20, 0x31a39: 0x6ca89c20, 0x31a3a: 0x6c3ab620, 0x31a3b: 0x6c39cc20, + 0x31a3c: 0x6ded7c20, 0x31a3d: 0x6c029620, 0x31a3e: 0x6c83b820, 0x31a3f: 0x6c2ae020, + // Block 0xc69, offset 0x31a40 + 0x31a40: 0x6c032820, 0x31a41: 0x6c4c8220, 0x31a42: 0x6c349220, 0x31a43: 0x6d8a6620, + 0x31a44: 0x6c0fbc20, 0x31a45: 0x6c542c20, 0x31a46: 0x6d531620, 0x31a47: 0x6d952420, + 0x31a48: 0x6c14d020, 0x31a49: 0x6c62dc20, 0x31a4a: 0x6c26a020, 0x31a4b: 0x6d212a20, + 0x31a4c: 0x6c014620, 0x31a4d: 0x6ceb7220, 0x31a4e: 0x6ceb3420, 0x31a4f: 0x6c69d820, + 0x31a50: 0x6ced7e20, 0x31a51: 0x6cc0dc20, 0x31a52: 0x6cc79a20, 0x31a53: 0x6cf79a20, + 0x31a54: 0x6d26f820, 0x31a55: 0x6d769020, 0x31a56: 0x6ca29820, 0x31a57: 0x6c7bf820, + 0x31a58: 0x6c13f620, 0x31a59: 0x6c7de220, 0x31a5a: 0x6ca69620, 0x31a5b: 0x6d30ce20, + 0x31a5c: 0x6d155620, 0x31a5d: 0x6d335420, 0x31a5e: 0x6c144220, 0x31a5f: 0x6deabe20, + 0x31a60: 0x6e015420, 0x31a61: 0x6caea820, 0x31a62: 0x6d697820, 0x31a63: 0x6cb20820, + 0x31a64: 0x6c412e20, 0x31a65: 0x6ce32420, 0x31a66: 0x6cb42820, 0x31a67: 0x6d6e4820, + 0x31a68: 0x6d974420, 0x31a69: 0x6d149c20, 0x31a6a: 0x6ce7aa20, 0x31a6b: 0x6d16a820, + 0x31a6c: 0x6d9b2420, 0x31a6d: 0x6e1a2020, 0x31a6e: 0x6c888620, 0x31a6f: 0x6d98c020, + 0x31a70: 0x6c435e20, 0x31a71: 0x6d18fe20, 0x31a72: 0x6c173820, 0x31a73: 0x6c456020, + 0x31a74: 0x6cea9c20, 0x31a75: 0x6c2bac20, 0x31a76: 0x6cbada20, 0x31a77: 0x6d1b7220, + 0x31a78: 0x6d773620, 0x31a79: 0x6cbcc820, 0x31a7a: 0x6d758820, 0x31a7b: 0x6d4d6220, + 0x31a7c: 0x6c01b620, 0x31a7d: 0x6c6fc020, 0x31a7e: 0x6cc3aa20, 0x31a7f: 0x6d4fb820, + // Block 0xc6a, offset 0x31a80 + 0x31a80: 0x6de28220, 0x31a81: 0x6c9ab020, 0x31a82: 0x6c50ac20, 0x31a83: 0x6cc7b820, + 0x31a84: 0x6c9c8820, 0x31a85: 0x6c76b620, 0x31a86: 0x6c9fb820, 0x31a87: 0x6d297a20, + 0x31a88: 0x6cce4620, 0x31a89: 0x6c04d820, 0x31a8a: 0x6cd0a820, 0x31a8b: 0x6d028220, + 0x31a8c: 0x6c3cee20, 0x31a8d: 0x6c5ad020, 0x31a8e: 0x6c5ace20, 0x31a8f: 0x6c7dc620, + 0x31a90: 0x6c7dd220, 0x31a91: 0x6c7de020, 0x31a92: 0x6d30ca20, 0x31a93: 0x6d30cc20, + 0x31a94: 0x6d5e0420, 0x31a95: 0x6c5ba420, 0x31a96: 0x6d051020, 0x31a97: 0x6d60c620, + 0x31a98: 0x6d8abc20, 0x31a99: 0x6daf6420, 0x31a9a: 0x6d071220, 0x31a9b: 0x6c3e3620, + 0x31a9c: 0x6c82de20, 0x31a9d: 0x6c020420, 0x31a9e: 0x6c020420, 0x31a9f: 0x6cdbee20, + 0x31aa0: 0x6d678620, 0x31aa1: 0x6ca6aa20, 0x31aa2: 0x6d928220, 0x31aa3: 0x6dd48e20, + 0x31aa4: 0x6d3d8420, 0x31aa5: 0x6dee3c20, 0x31aa6: 0x6c051e20, 0x31aa7: 0x6ce32420, + 0x31aa8: 0x6df1b220, 0x31aa9: 0x6e06f620, 0x31aaa: 0x6d9a4a20, 0x31aab: 0x6c6f8420, + 0x31aac: 0x6cfce020, 0x31aad: 0x6d8d8a20, + 0x31ab0: 0x6c28ae20, 0x31ab1: 0x6c179020, 0x31ab2: 0x6c0c5a20, 0x31ab3: 0x6c296c20, + 0x31ab4: 0x6c061420, 0x31ab5: 0x6d767a20, 0x31ab6: 0x6c455c20, 0x31ab7: 0x6c016420, + 0x31ab8: 0x6cbada20, 0x31ab9: 0x6c8e9a20, 0x31aba: 0x6cbad220, 0x31abb: 0x6cebb420, + 0x31abc: 0x6ced7e20, 0x31abd: 0x6d4b0420, 0x31abe: 0x6c2ea820, 0x31abf: 0x6c2ef220, + // Block 0xc6b, offset 0x31ac0 + 0x31ac0: 0x6c924620, 0x31ac1: 0x6d79de20, 0x31ac2: 0x6d212820, 0x31ac3: 0x6d216c20, + 0x31ac4: 0x6c96ac20, 0x31ac5: 0x6cf1fa20, 0x31ac6: 0x6c97b620, 0x31ac7: 0x6cf2b020, + 0x31ac8: 0x6cf25620, 0x31ac9: 0x6d4fb820, 0x31aca: 0x6d224e20, 0x31acb: 0x6de28220, + 0x31acc: 0x6da46c20, 0x31acd: 0x6cc4ee20, 0x31ace: 0x6cf40620, 0x31acf: 0x6cc56820, + 0x31ad0: 0x6c9abe20, 0x31ad1: 0x6cc79a20, 0x31ad2: 0x6c73be20, 0x31ad3: 0x6c9c2220, + 0x31ad4: 0x6c21de20, 0x31ad5: 0x6c04ae20, 0x31ad6: 0x6c9e2620, 0x31ad7: 0x6c546e20, + 0x31ad8: 0x6cfaa420, 0x31ad9: 0x6cccf220, 0x31ada: 0x6d297a20, 0x31adb: 0x6de4d620, + 0x31adc: 0x6cce4620, 0x31add: 0x6dab6420, 0x31ade: 0x6da93020, 0x31adf: 0x6c09de20, + 0x31ae0: 0x6ca29820, 0x31ae1: 0x6d2d0620, 0x31ae2: 0x6d2dac20, 0x31ae3: 0x6c3be220, + 0x31ae4: 0x6d5b5220, 0x31ae5: 0x6d5b3020, 0x31ae6: 0x6c7bf820, 0x31ae7: 0x6ca4d020, + 0x31ae8: 0x6c3c8820, 0x31ae9: 0x6cd36020, 0x31aea: 0x6ca59220, 0x31aeb: 0x6d5d2820, + 0x31aec: 0x6d5e7620, 0x31aed: 0x6d051020, 0x31aee: 0x6c5c3a20, 0x31aef: 0x6d061420, + 0x31af0: 0x6d60c620, 0x31af1: 0x6cd85420, 0x31af2: 0x6c3e3620, 0x31af3: 0x6c83e820, + 0x31af4: 0x6cdb7e20, 0x31af5: 0x6d900a20, 0x31af6: 0x6db50820, 0x31af7: 0x6dd40e20, + 0x31af8: 0x6ca6aa20, 0x31af9: 0x6d68be20, 0x31afa: 0x6d697820, 0x31afb: 0x6d68d620, + 0x31afc: 0x6d928220, 0x31afd: 0x6d927c20, 0x31afe: 0x6d925c20, 0x31aff: 0x6dd48e20, + // Block 0xc6c, offset 0x31b00 + 0x31b00: 0x6e2c4c20, 0x31b01: 0x6dee3c20, 0x31b02: 0x6d951e20, 0x31b03: 0x6d959e20, + 0x31b04: 0x6db93e20, 0x31b05: 0x6d40e620, 0x31b06: 0x6cb60820, 0x31b07: 0x6df1b220, + 0x31b08: 0x6d155620, 0x31b09: 0x6e06d420, 0x31b0a: 0x6e06f620, 0x31b0b: 0x6d15fc20, + 0x31b0c: 0x6d9a4a20, 0x31b0d: 0x6e08b620, 0x31b0e: 0x6d9f9e20, 0x31b0f: 0x6d502220, + 0x31b10: 0x6d501620, 0x31b11: 0x6c36f420, 0x31b12: 0x6cf6d620, 0x31b13: 0x6c597a20, + 0x31b14: 0x6cd34020, 0x31b15: 0x6d5c7220, 0x31b16: 0x6dcdba20, 0x31b17: 0x6d0fcc20, + 0x31b18: 0x6e313820, 0x31b19: 0x6de00020, + // Block 0xc6d, offset 0x31b40 + 0x31b40: 0xf0001c1c, 0x31b41: 0xf0001c1c, 0x31b42: 0x00658c9c, + 0x31b50: 0x2c047483, 0x31b51: 0x2c0faa83, 0x31b52: 0x2c03a483, 0x31b53: 0xf0001c1c, + 0x31b54: 0x2c007483, 0x31b55: 0x2c0f1e83, 0x31b56: 0x2d0dc083, 0x31b57: 0x2c03de83, + 0x31b58: 0x2c0b5483, 0x31b59: 0x2c50d083, 0x31b5a: 0x2cce0683, 0x31b5b: 0x2c729c83, + 0x31b5c: 0x2c44fc83, 0x31b5d: 0x2c4d5a83, 0x31b5e: 0x2c0c7883, 0x31b5f: 0x2cf5a283, + 0x31b60: 0x2c17e083, 0x31b61: 0x2ca93c83, 0x31b62: 0x2c0a0283, 0x31b63: 0x2cb1a083, + 0x31b64: 0x2c1b6883, 0x31b65: 0x2c198083, 0x31b66: 0x2d295e83, 0x31b67: 0x2c208683, + 0x31b68: 0x2c714283, 0x31b69: 0x2c000283, 0x31b6a: 0x2c00dc83, 0x31b6b: 0x2d118683, + 0x31b6c: 0x2c089283, 0x31b6d: 0x2c023683, 0x31b6e: 0x2c075483, 0x31b6f: 0x2c4f4883, + 0x31b70: 0x2c26fc83, 0x31b71: 0x2c093e83, 0x31b72: 0x2d032883, 0x31b73: 0x2c3d6e83, + 0x31b74: 0x2c0e3483, 0x31b75: 0x2cccd883, 0x31b76: 0x2c127483, 0x31b77: 0x2c049c83, + 0x31b78: 0x2c0a1083, 0x31b79: 0x2cb95283, 0x31b7a: 0x2c901a83, + // Block 0xc6e, offset 0x31b80 + 0x31b80: 0xe000b653, 0x31b81: 0xe000b64b, 0x31b82: 0xe000b647, 0x31b83: 0xe000b657, + 0x31b84: 0xe000b65b, 0x31b85: 0xe000b64f, 0x31b86: 0xe000b663, 0x31b87: 0xe000b667, + 0x31b88: 0xe000b65f, + 0x31b90: 0x2c96d483, 0x31b91: 0x2c074c83, + // Block 0xc6f, offset 0x31bc0 + 0x31bc0: 0x6c003e20, 0x31bc1: 0x6c004020, 0x31bc2: 0x6c004220, 0x31bc3: 0x6c00e820, + 0x31bc4: 0x6c00ea20, 0x31bc5: 0x6c00ec20, 0x31bc6: 0x6c00ee20, 0x31bc7: 0x6c022820, + 0x31bc8: 0x6c022a20, 0x31bc9: 0x6c022c20, 0x31bca: 0x6c022e20, 0x31bcb: 0x6c023020, + 0x31bcc: 0x6c023220, 0x31bcd: 0x6c055220, 0x31bce: 0x6c055420, 0x31bcf: 0x6c055620, + 0x31bd0: 0x6c055820, 0x31bd1: 0x6c055a20, 0x31bd2: 0x6c055c20, 0x31bd3: 0x6c055e20, + 0x31bd4: 0x6c056020, 0x31bd5: 0x6c056220, 0x31bd6: 0x6c056420, 0x31bd7: 0x6c056620, + 0x31bd8: 0x6c0ada20, 0x31bd9: 0x6c0adc20, 0x31bda: 0x6c0ade20, 0x31bdb: 0x6c0f4220, + 0x31bdc: 0x6c0ae020, 0x31bdd: 0x6c0dac20, 0x31bde: 0x6c0ae220, 0x31bdf: 0x6c0ae420, + 0x31be0: 0x6c0ae620, 0x31be1: 0x6c15ec20, 0x31be2: 0x6c15ee20, 0x31be3: 0x6c15f020, + 0x31be4: 0x6c15f220, 0x31be5: 0x6c162c20, 0x31be6: 0x6c15f420, 0x31be7: 0x6c15f620, + 0x31be8: 0x6c15f820, 0x31be9: 0x6c0b3a20, 0x31bea: 0x6c15fa20, 0x31beb: 0x6c15fc20, + 0x31bec: 0x6c28b220, 0x31bed: 0x6c28b420, 0x31bee: 0x6c28b620, 0x31bef: 0x6c2d9420, + 0x31bf0: 0x6c28b820, 0x31bf1: 0x6c28ba20, 0x31bf2: 0x6c28bc20, 0x31bf3: 0x6c28be20, + 0x31bf4: 0x6c28c020, 0x31bf5: 0x6c42ea20, 0x31bf6: 0x6c42ec20, 0x31bf7: 0x6c470a20, + 0x31bf8: 0x6c42ee20, 0x31bf9: 0x6c470c20, 0x31bfa: 0x6c42f020, 0x31bfb: 0x6c42f220, + 0x31bfc: 0x6c6a8820, 0x31bfd: 0x6c63cc20, 0x31bfe: 0x6c63ce20, 0x31bff: 0x6c63d020, + // Block 0xc70, offset 0x31c00 + 0x31c00: 0x6c63d220, 0x31c01: 0x6c8af020, 0x31c02: 0x6c8af220, 0x31c03: 0x6c8af420, + 0x31c04: 0x6c8af620, 0x31c05: 0x6c8af820, 0x31c06: 0x6cb79e20, 0x31c07: 0x6cb7a020, + 0x31c08: 0x6cb7a220, 0x31c09: 0x6cb93420, 0x31c0a: 0x6cb7a420, 0x31c0b: 0x6cb7a620, + 0x31c0c: 0x6ce8ca20, 0x31c0d: 0x6ce8cc20, 0x31c0e: 0x6d188c20, 0x31c0f: 0x6d188e20, + 0x31c10: 0x6d189020, 0x31c11: 0x6d189220, 0x31c12: 0x6d189420, 0x31c13: 0x6d479020, + 0x31c14: 0x6d479220, 0x31c15: 0x6d75c220, 0x31c16: 0x6d9fa420, 0x31c17: 0x6d75c420, + 0x31c18: 0x6d75c620, 0x31c19: 0x6d75c820, 0x31c1a: 0x6d75ca20, 0x31c1b: 0x6d75cc20, + 0x31c1c: 0x6da01620, 0x31c1d: 0x6d75ce20, 0x31c1e: 0x6da57820, 0x31c1f: 0x6dc24420, + 0x31c20: 0x6df86a20, 0x31c21: 0x6c004620, 0x31c22: 0x6c004820, 0x31c23: 0x6c023e20, + 0x31c24: 0x6c079620, 0x31c25: 0x6c056a20, 0x31c26: 0x6c0aea20, 0x31c27: 0x6c160220, + 0x31c28: 0x6c160420, 0x31c29: 0x6c28c620, 0x31c2a: 0x6c28c820, 0x31c2b: 0x6c28ca20, + 0x31c2c: 0x6c28cc20, 0x31c2d: 0x6c42f820, 0x31c2e: 0x6c42fa20, 0x31c2f: 0x6c42fc20, + 0x31c30: 0x6c63da20, 0x31c31: 0x6c63dc20, 0x31c32: 0x6c15ae20, 0x31c33: 0x6c8afc20, + 0x31c34: 0x6cb7a820, 0x31c35: 0x6cb7aa20, 0x31c36: 0x6d189820, 0x31c37: 0x6d1bb420, + 0x31c38: 0x6d479420, 0x31c39: 0x6dc24620, 0x31c3a: 0x6de00420, 0x31c3b: 0x6e1c0420, + 0x31c3c: 0x6c010220, 0x31c3d: 0x6c010420, 0x31c3e: 0x6c026420, 0x31c3f: 0x6c024620, + // Block 0xc71, offset 0x31c40 + 0x31c40: 0x6c057020, 0x31c41: 0x6c057220, 0x31c42: 0x6c0aec20, 0x31c43: 0x6c63de20, + 0x31c44: 0x6ce8ce20, 0x31c45: 0x6d75d420, 0x31c46: 0x6c005620, 0x31c47: 0x6c005820, + 0x31c48: 0x6c005a20, 0x31c49: 0x6c005c20, 0x31c4a: 0x6c005e20, 0x31c4b: 0x6c011020, + 0x31c4c: 0x6c011220, 0x31c4d: 0x6c011420, 0x31c4e: 0x6c011620, 0x31c4f: 0x6c024e20, + 0x31c50: 0x6c025020, 0x31c51: 0x6c025220, 0x31c52: 0x6c025420, 0x31c53: 0x6c025620, + 0x31c54: 0x6c057c20, 0x31c55: 0x6c057e20, 0x31c56: 0x6c058020, 0x31c57: 0x6c058220, + 0x31c58: 0x6c058420, 0x31c59: 0x6c058620, 0x31c5a: 0x6c058820, 0x31c5b: 0x6c058a20, + 0x31c5c: 0x6c058c20, 0x31c5d: 0x6c058e20, 0x31c5e: 0x6c059020, 0x31c5f: 0x6c059220, + 0x31c60: 0x6c059420, 0x31c61: 0x6c059620, 0x31c62: 0x6c0af820, 0x31c63: 0x6c0afa20, + 0x31c64: 0x6c0afc20, 0x31c65: 0x6c0afe20, 0x31c66: 0x6c0b0020, 0x31c67: 0x6c0b0220, + 0x31c68: 0x6c149620, 0x31c69: 0x6c0b0420, 0x31c6a: 0x6c0b0620, 0x31c6b: 0x6c0b0820, + 0x31c6c: 0x6c0dd620, 0x31c6d: 0x6c0b0a20, 0x31c6e: 0x6c0dd820, 0x31c6f: 0x6c160820, + 0x31c70: 0x6c18ea20, 0x31c71: 0x6c227c20, 0x31c72: 0x6c28d220, 0x31c73: 0x6c28d420, + 0x31c74: 0x6c430420, 0x31c75: 0x6c3bd820, 0x31c76: 0x6c28d620, 0x31c77: 0x6c430620, + 0x31c78: 0x6c431c20, 0x31c79: 0x6c63e220, 0x31c7a: 0x6c63e420, 0x31c7b: 0x6c63e620, + 0x31c7c: 0x6c63e820, 0x31c7d: 0x6c63ea20, 0x31c7e: 0x6c63ec20, 0x31c7f: 0x6c8afe20, + // Block 0xc72, offset 0x31c80 + 0x31c80: 0x6c8b0020, 0x31c81: 0x6c8b0220, 0x31c82: 0x6c8b0420, 0x31c83: 0x6cb7ac20, + 0x31c84: 0x6cb7ae20, 0x31c85: 0x6d189a20, 0x31c86: 0x6ce8d020, 0x31c87: 0x6d479620, + 0x31c88: 0x6e284820, 0x31c89: 0x6c001620, 0x31c8a: 0x6c001820, 0x31c8b: 0x6c001a20, + 0x31c8c: 0x6c001c20, 0x31c8d: 0x6c001e20, 0x31c8e: 0x6c002020, 0x31c8f: 0x6c006620, + 0x31c90: 0x6c006820, 0x31c91: 0x6c002220, 0x31c92: 0x6c012620, 0x31c93: 0x6c012820, + 0x31c94: 0x6c012a20, 0x31c95: 0x6c026620, 0x31c96: 0x6c026820, 0x31c97: 0x6c026a20, + 0x31c98: 0x6c026c20, 0x31c99: 0x6c026e20, 0x31c9a: 0x6c027020, 0x31c9b: 0x6c027220, + 0x31c9c: 0x6c027420, 0x31c9d: 0x6c027620, 0x31c9e: 0x6c05a220, 0x31c9f: 0x6c05a420, + 0x31ca0: 0x6c05a620, 0x31ca1: 0x6c05a820, 0x31ca2: 0x6c05aa20, 0x31ca3: 0x6c05ac20, + 0x31ca4: 0x6c0b2c20, 0x31ca5: 0x6c0b2e20, 0x31ca6: 0x6c0b3020, 0x31ca7: 0x6c0b3220, + 0x31ca8: 0x6c0b3420, 0x31ca9: 0x6c161420, 0x31caa: 0x6c161620, 0x31cab: 0x6c24c020, + 0x31cac: 0x6c161820, 0x31cad: 0x6c28ea20, 0x31cae: 0x6c28ec20, 0x31caf: 0x6c28ee20, + 0x31cb0: 0x6c3bda20, 0x31cb1: 0x6c2fdc20, 0x31cb2: 0x6c431e20, 0x31cb3: 0x6c432020, + 0x31cb4: 0x6c432220, 0x31cb5: 0x6c432420, 0x31cb6: 0x6c432620, 0x31cb7: 0x6c432820, + 0x31cb8: 0x6c63f420, 0x31cb9: 0x6c63f620, 0x31cba: 0x6c63f820, 0x31cbb: 0x6c63fa20, + 0x31cbc: 0x6c8b1220, 0x31cbd: 0x6c8b1420, 0x31cbe: 0x6c8b1620, 0x31cbf: 0x6c8b1820, + // Block 0xc73, offset 0x31cc0 + 0x31cc0: 0x6c8b1a20, 0x31cc1: 0x6c8b1c20, 0x31cc2: 0x6c8b1e20, 0x31cc3: 0x6ce8d820, + 0x31cc4: 0x6ce8da20, 0x31cc5: 0x6d189c20, 0x31cc6: 0x6d189e20, 0x31cc7: 0x6d18a020, + 0x31cc8: 0x6d18a220, 0x31cc9: 0x6d9fa620, 0x31cca: 0x6de00820, 0x31ccb: 0x6df86c20, + 0x31ccc: 0x6c002620, 0x31ccd: 0x6c006c20, 0x31cce: 0x6c006e20, 0x31ccf: 0x6c007020, + 0x31cd0: 0x6c007220, 0x31cd1: 0x6c012e20, 0x31cd2: 0x6c027c20, 0x31cd3: 0x6c027e20, + 0x31cd4: 0x6c028020, 0x31cd5: 0x6c0b3c20, 0x31cd6: 0x6c162220, 0x31cd7: 0x6c162420, + 0x31cd8: 0x6c162620, 0x31cd9: 0x6c28f620, 0x31cda: 0x6c8b2220, 0x31cdb: 0x6cb7ba20, + 0x31cdc: 0x6d479820, 0x31cdd: 0x6d75d820, 0x31cde: 0x6c007620, 0x31cdf: 0x6c007820, + 0x31ce0: 0x6c007a20, 0x31ce1: 0x6c028e20, 0x31ce2: 0x6c0b4420, 0x31ce3: 0x6c0b4620, + 0x31ce4: 0x6c0b4820, 0x31ce5: 0x6c0b4a20, 0x31ce6: 0x6c0b4c20, 0x31ce7: 0x6c0b4e20, + 0x31ce8: 0x6c162e20, 0x31ce9: 0x6c163020, 0x31cea: 0x6c163220, 0x31ceb: 0x6c290220, + 0x31cec: 0x6c290420, 0x31ced: 0x6c290620, 0x31cee: 0x6c290820, 0x31cef: 0x6c290a20, + 0x31cf0: 0x6c432c20, 0x31cf1: 0x6c432e20, 0x31cf2: 0x6c433020, 0x31cf3: 0x6c433220, + 0x31cf4: 0x6c4d0220, 0x31cf5: 0x6c640220, 0x31cf6: 0x6c640420, 0x31cf7: 0x6c640620, + 0x31cf8: 0x6c640820, 0x31cf9: 0x6c8b2420, 0x31cfa: 0x6c8b2620, 0x31cfb: 0x6cb7be20, + 0x31cfc: 0x6ce8de20, 0x31cfd: 0x6ce8e020, 0x31cfe: 0x6ce8e220, 0x31cff: 0x6d18a620, + // Block 0xc74, offset 0x31d00 + 0x31d00: 0x6d479a20, 0x31d01: 0x6c029420, 0x31d02: 0x6c05b220, 0x31d03: 0x6c0b5c20, + 0x31d04: 0x6c0b5e20, 0x31d05: 0x6c0b6020, 0x31d06: 0x6c0b6220, 0x31d07: 0x6c0b6420, + 0x31d08: 0x6c163c20, 0x31d09: 0x6c163e20, 0x31d0a: 0x6c164020, 0x31d0b: 0x6c164220, + 0x31d0c: 0x6c291220, 0x31d0d: 0x6c291420, 0x31d0e: 0x6c291620, 0x31d0f: 0x6c291820, + 0x31d10: 0x6c291a20, 0x31d11: 0x6c291c20, 0x31d12: 0x6c291e20, 0x31d13: 0x6c434020, + 0x31d14: 0x6c434220, 0x31d15: 0x6c434420, 0x31d16: 0x6c640c20, 0x31d17: 0x6c6a8e20, + 0x31d18: 0x6c640e20, 0x31d19: 0x6c641020, 0x31d1a: 0x6c641220, 0x31d1b: 0x6c641420, + 0x31d1c: 0x6c641620, 0x31d1d: 0x6c641820, 0x31d1e: 0x6c8b2820, 0x31d1f: 0x6c8b2a20, + 0x31d20: 0x6c8b2c20, 0x31d21: 0x6c8b2e20, 0x31d22: 0x6c8b3020, 0x31d23: 0x6c8b3220, + 0x31d24: 0x6c8b3420, 0x31d25: 0x6c8b3620, 0x31d26: 0x6c8b3820, 0x31d27: 0x6c8b3a20, + 0x31d28: 0x6cb7c420, 0x31d29: 0x6cb7c620, 0x31d2a: 0x6cb7c820, 0x31d2b: 0x6cb7ca20, + 0x31d2c: 0x6cb7cc20, 0x31d2d: 0x6cb7ce20, 0x31d2e: 0x6cb7d020, 0x31d2f: 0x6cb7d220, + 0x31d30: 0x6cd41020, 0x31d31: 0x6cbd9c20, 0x31d32: 0x6cb7d420, 0x31d33: 0x6ce8ea20, + 0x31d34: 0x6ce8ec20, 0x31d35: 0x6ce8ee20, 0x31d36: 0x6ce8f020, 0x31d37: 0x6ce8f220, + 0x31d38: 0x6ce8f420, 0x31d39: 0x6cf16620, 0x31d3a: 0x6ce8f620, 0x31d3b: 0x6ce8f820, + 0x31d3c: 0x6ce8fa20, 0x31d3d: 0x6cf00420, 0x31d3e: 0x6d18aa20, 0x31d3f: 0x6d18ac20, + // Block 0xc75, offset 0x31d40 + 0x31d40: 0x6ce8fc20, 0x31d41: 0x6d479e20, 0x31d42: 0x6d47a020, 0x31d43: 0x6d47a220, + 0x31d44: 0x6d47a420, 0x31d45: 0x6d47a620, 0x31d46: 0x6d47a820, 0x31d47: 0x6d47aa20, + 0x31d48: 0x6d47ac20, 0x31d49: 0x6d47ae20, 0x31d4a: 0x6d49c820, 0x31d4b: 0x6d75dc20, + 0x31d4c: 0x6d75de20, 0x31d4d: 0x6d75e020, 0x31d4e: 0x6d75e220, 0x31d4f: 0x6d75e420, + 0x31d50: 0x6d75e620, 0x31d51: 0x6d75e820, 0x31d52: 0x6d75ea20, 0x31d53: 0x6d790e20, + 0x31d54: 0x6d75ec20, 0x31d55: 0x6d791020, 0x31d56: 0x6d75ee20, 0x31d57: 0x6d75f020, + 0x31d58: 0x6d75f220, 0x31d59: 0x6da20a20, 0x31d5a: 0x6dc24820, 0x31d5b: 0x6dc70c20, + 0x31d5c: 0x6ddfee20, 0x31d5d: 0x6de00a20, 0x31d5e: 0x6e0c3c20, 0x31d5f: 0x6e318620, + 0x31d60: 0x6e428220, 0x31d61: 0x6e442020, 0x31d62: 0x6c008220, 0x31d63: 0x6c014020, + 0x31d64: 0x6c014220, 0x31d65: 0x6c014420, 0x31d66: 0x6c02be20, 0x31d67: 0x6c02c020, + 0x31d68: 0x6c02c220, 0x31d69: 0x6c05fc20, 0x31d6a: 0x6c05fe20, 0x31d6b: 0x6c060020, + 0x31d6c: 0x6c060220, 0x31d6d: 0x6c060420, 0x31d6e: 0x6c06ac20, 0x31d6f: 0x6c060620, + 0x31d70: 0x6c060820, 0x31d71: 0x6c06d820, 0x31d72: 0x6c08d020, 0x31d73: 0x6c060a20, + 0x31d74: 0x6c0bfa20, 0x31d75: 0x6c0bfc20, 0x31d76: 0x6c0bfe20, 0x31d77: 0x6c0c0020, + 0x31d78: 0x6c0c0220, 0x31d79: 0x6c0c0420, 0x31d7a: 0x6c0c0620, 0x31d7b: 0x6c0c0820, + 0x31d7c: 0x6c0c0a20, 0x31d7d: 0x6c0c0c20, 0x31d7e: 0x6c0c0e20, 0x31d7f: 0x6c0c1020, + // Block 0xc76, offset 0x31d80 + 0x31d80: 0x6c0c1220, 0x31d81: 0x6c0c1420, 0x31d82: 0x6c0c1620, 0x31d83: 0x6c0c1820, + 0x31d84: 0x6c0c1a20, 0x31d85: 0x6c0c1c20, 0x31d86: 0x6c0c1e20, 0x31d87: 0x6c0c2020, + 0x31d88: 0x6c0c2220, 0x31d89: 0x6c0c2420, 0x31d8a: 0x6c0c2620, 0x31d8b: 0x6c0c2820, + 0x31d8c: 0x6c0c2a20, 0x31d8d: 0x6c0c2c20, 0x31d8e: 0x6c0c2e20, 0x31d8f: 0x6c0c3020, + 0x31d90: 0x6c0c3220, 0x31d91: 0x6c0c3420, 0x31d92: 0x6c0c5e20, 0x31d93: 0x6c0c3620, + 0x31d94: 0x6c0c3820, 0x31d95: 0x6c0c3a20, 0x31d96: 0x6c16ca20, 0x31d97: 0x6c16cc20, + 0x31d98: 0x6c16ce20, 0x31d99: 0x6c16d020, 0x31d9a: 0x6c16d220, 0x31d9b: 0x6c16d420, + 0x31d9c: 0x6c16d620, 0x31d9d: 0x6c16d820, 0x31d9e: 0x6c16da20, 0x31d9f: 0x6c16dc20, + 0x31da0: 0x6c16de20, 0x31da1: 0x6c16e020, 0x31da2: 0x6c16e220, 0x31da3: 0x6c16e420, + 0x31da4: 0x6c16e620, 0x31da5: 0x6c16e820, 0x31da6: 0x6c16ea20, 0x31da7: 0x6c16ec20, + 0x31da8: 0x6c16ee20, 0x31da9: 0x6c16f020, 0x31daa: 0x6c16f220, 0x31dab: 0x6c16f420, + 0x31dac: 0x6c16f620, 0x31dad: 0x6c16f820, 0x31dae: 0x6c16fa20, 0x31daf: 0x6c16fc20, + 0x31db0: 0x6c16fe20, 0x31db1: 0x6c170020, 0x31db2: 0x6c170220, 0x31db3: 0x6c170420, + 0x31db4: 0x6c170620, 0x31db5: 0x6c170820, 0x31db6: 0x6c170a20, 0x31db7: 0x6c170c20, + 0x31db8: 0x6c170e20, 0x31db9: 0x6c171020, 0x31dba: 0x6c171220, 0x31dbb: 0x6c171420, + 0x31dbc: 0x6c171620, 0x31dbd: 0x6c171820, 0x31dbe: 0x6c171a20, 0x31dbf: 0x6c171c20, + // Block 0xc77, offset 0x31dc0 + 0x31dc0: 0x6c171e20, 0x31dc1: 0x6c172020, 0x31dc2: 0x6c19c820, 0x31dc3: 0x6c29ca20, + 0x31dc4: 0x6c29cc20, 0x31dc5: 0x6c29ce20, 0x31dc6: 0x6c29d020, 0x31dc7: 0x6c29d220, + 0x31dc8: 0x6c29d420, 0x31dc9: 0x6c29d620, 0x31dca: 0x6c29d820, 0x31dcb: 0x6c29da20, + 0x31dcc: 0x6c29dc20, 0x31dcd: 0x6c29de20, 0x31dce: 0x6c29e020, 0x31dcf: 0x6c29e220, + 0x31dd0: 0x6c29e420, 0x31dd1: 0x6c29e620, 0x31dd2: 0x6c29e820, 0x31dd3: 0x6c29ea20, + 0x31dd4: 0x6c29ec20, 0x31dd5: 0x6c29ee20, 0x31dd6: 0x6c29f020, 0x31dd7: 0x6c29f220, + 0x31dd8: 0x6c29f420, 0x31dd9: 0x6c29f620, 0x31dda: 0x6c29f820, 0x31ddb: 0x6c29fa20, + 0x31ddc: 0x6c29fc20, 0x31ddd: 0x6c29fe20, 0x31dde: 0x6c2a0020, 0x31ddf: 0x6c2a0220, + 0x31de0: 0x6c2a0420, 0x31de1: 0x6c2a0620, 0x31de2: 0x6c2a0820, 0x31de3: 0x6c2a0a20, + 0x31de4: 0x6c305c20, 0x31de5: 0x6c2a0c20, 0x31de6: 0x6c2a0e20, 0x31de7: 0x6c2a1020, + 0x31de8: 0x6c2a1220, 0x31de9: 0x6c2a1420, 0x31dea: 0x6c2a1620, 0x31deb: 0x6c2a1820, + 0x31dec: 0x6c2a1a20, 0x31ded: 0x6c43de20, 0x31dee: 0x6c43e020, 0x31def: 0x6c43e220, + 0x31df0: 0x6c43e420, 0x31df1: 0x6c43e620, 0x31df2: 0x6c43e820, 0x31df3: 0x6c43ea20, + 0x31df4: 0x6c43ec20, 0x31df5: 0x6c43ee20, 0x31df6: 0x6c43f020, 0x31df7: 0x6c43f220, + 0x31df8: 0x6c43f420, 0x31df9: 0x6c43f620, 0x31dfa: 0x6c43f820, 0x31dfb: 0x6c43fa20, + 0x31dfc: 0x6c43fc20, 0x31dfd: 0x6c43fe20, 0x31dfe: 0x6c440020, 0x31dff: 0x6c440220, + // Block 0xc78, offset 0x31e00 + 0x31e00: 0x6c440420, 0x31e01: 0x6c440620, 0x31e02: 0x6c440820, 0x31e03: 0x6c440a20, + 0x31e04: 0x6c440c20, 0x31e05: 0x6c440e20, 0x31e06: 0x6c441020, 0x31e07: 0x6c441220, + 0x31e08: 0x6c441420, 0x31e09: 0x6c441620, 0x31e0a: 0x6c441820, 0x31e0b: 0x6c441a20, + 0x31e0c: 0x6c441c20, 0x31e0d: 0x6c441e20, 0x31e0e: 0x6c442020, 0x31e0f: 0x6c442220, + 0x31e10: 0x6c442420, 0x31e11: 0x6c442620, 0x31e12: 0x6c442820, 0x31e13: 0x6c442a20, + 0x31e14: 0x6c442c20, 0x31e15: 0x6c442e20, 0x31e16: 0x6c443020, 0x31e17: 0x6c443220, + 0x31e18: 0x6c443420, 0x31e19: 0x6c443620, 0x31e1a: 0x6c443820, 0x31e1b: 0x6c443a20, + 0x31e1c: 0x6c443c20, 0x31e1d: 0x6c443e20, 0x31e1e: 0x6c444020, 0x31e1f: 0x6c444220, + 0x31e20: 0x6c444420, 0x31e21: 0x6c444620, 0x31e22: 0x6c444820, 0x31e23: 0x6c64d220, + 0x31e24: 0x6c64d420, 0x31e25: 0x6c64d620, 0x31e26: 0x6c64d820, 0x31e27: 0x6c64da20, + 0x31e28: 0x6c64dc20, 0x31e29: 0x6c64de20, 0x31e2a: 0x6c64e020, 0x31e2b: 0x6c64e220, + 0x31e2c: 0x6c64e420, 0x31e2d: 0x6c64e620, 0x31e2e: 0x6c64e820, 0x31e2f: 0x6c64ea20, + 0x31e30: 0x6c64ec20, 0x31e31: 0x6c64ee20, 0x31e32: 0x6c64f020, 0x31e33: 0x6c64f220, + 0x31e34: 0x6c64f420, 0x31e35: 0x6c64f620, 0x31e36: 0x6c64f820, 0x31e37: 0x6c64fa20, + 0x31e38: 0x6c64fc20, 0x31e39: 0x6c64fe20, 0x31e3a: 0x6c650020, 0x31e3b: 0x6c650220, + 0x31e3c: 0x6c650420, 0x31e3d: 0x6c650620, 0x31e3e: 0x6c650820, 0x31e3f: 0x6c650a20, + // Block 0xc79, offset 0x31e40 + 0x31e40: 0x6c650c20, 0x31e41: 0x6c650e20, 0x31e42: 0x6c651020, 0x31e43: 0x6c651220, + 0x31e44: 0x6c651420, 0x31e45: 0x6c651620, 0x31e46: 0x6c651820, 0x31e47: 0x6c651a20, + 0x31e48: 0x6c651c20, 0x31e49: 0x6c651e20, 0x31e4a: 0x6c652020, 0x31e4b: 0x6c652220, + 0x31e4c: 0x6c652420, 0x31e4d: 0x6c652620, 0x31e4e: 0x6c652820, 0x31e4f: 0x6c652a20, + 0x31e50: 0x6c652c20, 0x31e51: 0x6c652e20, 0x31e52: 0x6c653020, 0x31e53: 0x6c653220, + 0x31e54: 0x6c653420, 0x31e55: 0x6c653620, 0x31e56: 0x6c653820, 0x31e57: 0x6c653a20, + 0x31e58: 0x6c653c20, 0x31e59: 0x6c653e20, 0x31e5a: 0x6c654020, 0x31e5b: 0x6c654220, + 0x31e5c: 0x6c654420, 0x31e5d: 0x6c654620, 0x31e5e: 0x6c654820, 0x31e5f: 0x6c654a20, + 0x31e60: 0x6c654c20, 0x31e61: 0x6c654e20, 0x31e62: 0x6c655020, 0x31e63: 0x6c655220, + 0x31e64: 0x6c655420, 0x31e65: 0x6c655620, 0x31e66: 0x6c655820, 0x31e67: 0x6c8bc620, + 0x31e68: 0x6c8bc820, 0x31e69: 0x6c8bca20, 0x31e6a: 0x6c8bcc20, 0x31e6b: 0x6c8bce20, + 0x31e6c: 0x6c8bd020, 0x31e6d: 0x6c8bd220, 0x31e6e: 0x6c8bd420, 0x31e6f: 0x6c8bd620, + 0x31e70: 0x6c8bd820, 0x31e71: 0x6c8bda20, 0x31e72: 0x6c8bdc20, 0x31e73: 0x6c8bde20, + 0x31e74: 0x6c8be020, 0x31e75: 0x6c8be220, 0x31e76: 0x6c8be420, 0x31e77: 0x6c8be620, + 0x31e78: 0x6c8be820, 0x31e79: 0x6c8bea20, 0x31e7a: 0x6c8bec20, 0x31e7b: 0x6c8bee20, + 0x31e7c: 0x6c8bf020, 0x31e7d: 0x6c8bf220, 0x31e7e: 0x6c8bf420, 0x31e7f: 0x6c8bf620, + // Block 0xc7a, offset 0x31e80 + 0x31e80: 0x6c8bf820, 0x31e81: 0x6c8bfa20, 0x31e82: 0x6c8bfc20, 0x31e83: 0x6c8bfe20, + 0x31e84: 0x6c8c0020, 0x31e85: 0x6c8c0220, 0x31e86: 0x6c8c0420, 0x31e87: 0x6c8c0620, + 0x31e88: 0x6c8c0820, 0x31e89: 0x6c8c0a20, 0x31e8a: 0x6c8c0c20, 0x31e8b: 0x6c8c0e20, + 0x31e8c: 0x6c8c1020, 0x31e8d: 0x6c8c1220, 0x31e8e: 0x6c8c1420, 0x31e8f: 0x6c8c1620, + 0x31e90: 0x6c8c1820, 0x31e91: 0x6c428e20, 0x31e92: 0x6c8c1a20, 0x31e93: 0x6c8c1c20, + 0x31e94: 0x6c8c1e20, 0x31e95: 0x6c8c2020, 0x31e96: 0x6c8c2220, 0x31e97: 0x6c8c2420, + 0x31e98: 0x6c8c2620, 0x31e99: 0x6c8c2820, 0x31e9a: 0x6c8c2a20, 0x31e9b: 0x6c8c2c20, + 0x31e9c: 0x6c8c2e20, 0x31e9d: 0x6c8c3020, 0x31e9e: 0x6c8c3220, 0x31e9f: 0x6c655a20, + 0x31ea0: 0x6c8c3420, 0x31ea1: 0x6c8c3620, 0x31ea2: 0x6c8c3820, 0x31ea3: 0x6c8c3a20, + 0x31ea4: 0x6c8c3c20, 0x31ea5: 0x6c8c3e20, 0x31ea6: 0x6c8c4020, 0x31ea7: 0x6c8c4220, + 0x31ea8: 0x6c8c4420, 0x31ea9: 0x6c8c4620, 0x31eaa: 0x6c8c4820, 0x31eab: 0x6c8c4a20, + 0x31eac: 0x6c8c4c20, 0x31ead: 0x6cb83e20, 0x31eae: 0x6cb84020, 0x31eaf: 0x6cb84220, + 0x31eb0: 0x6cb84420, 0x31eb1: 0x6cb84620, 0x31eb2: 0x6cb84820, 0x31eb3: 0x6cb84a20, + 0x31eb4: 0x6cb84c20, 0x31eb5: 0x6cb84e20, 0x31eb6: 0x6cb85020, 0x31eb7: 0x6cb85220, + 0x31eb8: 0x6cb85420, 0x31eb9: 0x6cb85620, 0x31eba: 0x6cb85820, 0x31ebb: 0x6cb85a20, + 0x31ebc: 0x6cb85c20, 0x31ebd: 0x6cb85e20, 0x31ebe: 0x6cb86020, 0x31ebf: 0x6cb86220, + // Block 0xc7b, offset 0x31ec0 + 0x31ec0: 0x6cb86420, 0x31ec1: 0x6cb86620, 0x31ec2: 0x6cb86820, 0x31ec3: 0x6cb86a20, + 0x31ec4: 0x6cb86c20, 0x31ec5: 0x6cb86e20, 0x31ec6: 0x6cb8d620, 0x31ec7: 0x6cb87020, + 0x31ec8: 0x6cb87220, 0x31ec9: 0x6cb87420, 0x31eca: 0x6cb87620, 0x31ecb: 0x6cb87820, + 0x31ecc: 0x6cb87a20, 0x31ecd: 0x6cb87c20, 0x31ece: 0x6cb87e20, 0x31ecf: 0x6cb88020, + 0x31ed0: 0x6cb88220, 0x31ed1: 0x6cb88420, 0x31ed2: 0x6cb88620, 0x31ed3: 0x6cb88820, + 0x31ed4: 0x6cb88a20, 0x31ed5: 0x6cb88c20, 0x31ed6: 0x6cb88e20, 0x31ed7: 0x6cb89020, + 0x31ed8: 0x6cb89220, 0x31ed9: 0x6cb89420, 0x31eda: 0x6cb89620, 0x31edb: 0x6cb89820, + 0x31edc: 0x6cb89a20, 0x31edd: 0x6cb89c20, 0x31ede: 0x6cbd9420, 0x31edf: 0x6cd2ce20, + 0x31ee0: 0x6cb89e20, 0x31ee1: 0x6cb8a020, 0x31ee2: 0x6cb8a220, 0x31ee3: 0x6cb8a420, + 0x31ee4: 0x6cb8a620, 0x31ee5: 0x6cb8a820, 0x31ee6: 0x6cb8aa20, 0x31ee7: 0x6cb8ac20, + 0x31ee8: 0x6cb8ae20, 0x31ee9: 0x6cb8b020, 0x31eea: 0x6ca52820, 0x31eeb: 0x6ce95420, + 0x31eec: 0x6ce95620, 0x31eed: 0x6ce95820, 0x31eee: 0x6ce95a20, 0x31eef: 0x6ce95c20, + 0x31ef0: 0x6ce95e20, 0x31ef1: 0x6ce96020, 0x31ef2: 0x6ce96220, 0x31ef3: 0x6ce96420, + 0x31ef4: 0x6ce96620, 0x31ef5: 0x6ce96820, 0x31ef6: 0x6ce96a20, 0x31ef7: 0x6ce96c20, + 0x31ef8: 0x6ce96e20, 0x31ef9: 0x6ce97020, 0x31efa: 0x6ce97220, 0x31efb: 0x6ce97420, + 0x31efc: 0x6ce97620, 0x31efd: 0x6ce97820, 0x31efe: 0x6ce97a20, 0x31eff: 0x6ce97c20, + // Block 0xc7c, offset 0x31f00 + 0x31f00: 0x6ce97e20, 0x31f01: 0x6ce98020, 0x31f02: 0x6ce98220, 0x31f03: 0x6ce98420, + 0x31f04: 0x6ce98620, 0x31f05: 0x6ce98820, 0x31f06: 0x6ce98a20, 0x31f07: 0x6ce98c20, + 0x31f08: 0x6ce98e20, 0x31f09: 0x6ce99020, 0x31f0a: 0x6ce99220, 0x31f0b: 0x6ce99420, + 0x31f0c: 0x6ce99620, 0x31f0d: 0x6ce99820, 0x31f0e: 0x6ce99a20, 0x31f0f: 0x6ce99c20, + 0x31f10: 0x6ce99e20, 0x31f11: 0x6ce9a020, 0x31f12: 0x6ce9a220, 0x31f13: 0x6ce9a420, + 0x31f14: 0x6ce9a620, 0x31f15: 0x6ce9a820, 0x31f16: 0x6ce9aa20, 0x31f17: 0x6ce9ac20, + 0x31f18: 0x6ce9ae20, 0x31f19: 0x6ce9b020, 0x31f1a: 0x6ce9b220, 0x31f1b: 0x6ce9b420, + 0x31f1c: 0x6ce9b620, 0x31f1d: 0x6ce9b820, 0x31f1e: 0x6ce9ba20, 0x31f1f: 0x6ce9bc20, + 0x31f20: 0x6ce9be20, 0x31f21: 0x6ce9c020, 0x31f22: 0x6d01fc20, 0x31f23: 0x6ce9c220, + 0x31f24: 0x6ce9c420, 0x31f25: 0x6d191a20, 0x31f26: 0x6ce9c620, 0x31f27: 0x6ce9c820, + 0x31f28: 0x6ce9ca20, 0x31f29: 0x6ce9cc20, 0x31f2a: 0x6ce9ce20, 0x31f2b: 0x6ce9d020, + 0x31f2c: 0x6ce9d220, 0x31f2d: 0x6d191c20, 0x31f2e: 0x6d191e20, 0x31f2f: 0x6d192020, + 0x31f30: 0x6d192220, 0x31f31: 0x6d192420, 0x31f32: 0x6d192620, 0x31f33: 0x6d192820, + 0x31f34: 0x6d192a20, 0x31f35: 0x6d192c20, 0x31f36: 0x6d192e20, 0x31f37: 0x6d193020, + 0x31f38: 0x6d193220, 0x31f39: 0x6d193420, 0x31f3a: 0x6d193620, 0x31f3b: 0x6d193820, + 0x31f3c: 0x6d193a20, 0x31f3d: 0x6d193c20, 0x31f3e: 0x6d193e20, 0x31f3f: 0x6d194020, + // Block 0xc7d, offset 0x31f40 + 0x31f40: 0x6d194220, 0x31f41: 0x6d194420, 0x31f42: 0x6d194620, 0x31f43: 0x6d194820, + 0x31f44: 0x6d194a20, 0x31f45: 0x6d194c20, 0x31f46: 0x6d194e20, 0x31f47: 0x6d195020, + 0x31f48: 0x6d195220, 0x31f49: 0x6d195420, 0x31f4a: 0x6d195620, 0x31f4b: 0x6d195820, + 0x31f4c: 0x6d195a20, 0x31f4d: 0x6d195c20, 0x31f4e: 0x6d195e20, 0x31f4f: 0x6d196020, + 0x31f50: 0x6d196220, 0x31f51: 0x6d196420, 0x31f52: 0x6d196620, 0x31f53: 0x6d196820, + 0x31f54: 0x6d196a20, 0x31f55: 0x6d196c20, 0x31f56: 0x6d196e20, 0x31f57: 0x6d197020, + 0x31f58: 0x6d311420, 0x31f59: 0x6d197220, 0x31f5a: 0x6d197420, 0x31f5b: 0x6d2bee20, + 0x31f5c: 0x6e0bec20, 0x31f5d: 0x6d197620, 0x31f5e: 0x6d197820, 0x31f5f: 0x6d197a20, + 0x31f60: 0x6d197c20, 0x31f61: 0x6d197e20, 0x31f62: 0x6d198020, 0x31f63: 0x6d198220, + 0x31f64: 0x6d198420, 0x31f65: 0x6d198620, 0x31f66: 0x6d198820, 0x31f67: 0x6d198a20, + 0x31f68: 0x6d198c20, 0x31f69: 0x6d198e20, 0x31f6a: 0x6d199020, 0x31f6b: 0x6d199220, + 0x31f6c: 0x6d199420, 0x31f6d: 0x6d199620, 0x31f6e: 0x6d199820, 0x31f6f: 0x6d199a20, + 0x31f70: 0x6d199c20, 0x31f71: 0x6d199e20, 0x31f72: 0x6d19a020, 0x31f73: 0x6d19a220, + 0x31f74: 0x6d19a420, 0x31f75: 0x6ce9d420, 0x31f76: 0x6d234020, 0x31f77: 0x6d47f620, + 0x31f78: 0x6d47f820, 0x31f79: 0x6d47fa20, 0x31f7a: 0x6d47fc20, 0x31f7b: 0x6d47fe20, + 0x31f7c: 0x6d480020, 0x31f7d: 0x6d480220, 0x31f7e: 0x6d480420, 0x31f7f: 0x6d480620, + // Block 0xc7e, offset 0x31f80 + 0x31f80: 0x6d480820, 0x31f81: 0x6d480a20, 0x31f82: 0x6d480c20, 0x31f83: 0x6d480e20, + 0x31f84: 0x6d481020, 0x31f85: 0x6d481220, 0x31f86: 0x6d481420, 0x31f87: 0x6d481620, + 0x31f88: 0x6d481820, 0x31f89: 0x6d481a20, 0x31f8a: 0x6d481c20, 0x31f8b: 0x6d481e20, + 0x31f8c: 0x6d482020, 0x31f8d: 0x6d482220, 0x31f8e: 0x6d482420, 0x31f8f: 0x6d482620, + 0x31f90: 0x6d19a620, 0x31f91: 0x6d482820, 0x31f92: 0x6d761c20, 0x31f93: 0x6d49ca20, + 0x31f94: 0x6d482a20, 0x31f95: 0x6d482c20, 0x31f96: 0x6d482e20, 0x31f97: 0x6d483020, + 0x31f98: 0x6d483220, 0x31f99: 0x6d483420, 0x31f9a: 0x6d483620, 0x31f9b: 0x6d483820, + 0x31f9c: 0x6d483a20, 0x31f9d: 0x6d483c20, 0x31f9e: 0x6d483e20, 0x31f9f: 0x6d484020, + 0x31fa0: 0x6d484220, 0x31fa1: 0x6d484420, 0x31fa2: 0x6d484620, 0x31fa3: 0x6d484820, + 0x31fa4: 0x6d484a20, 0x31fa5: 0x6d484c20, 0x31fa6: 0x6d484e20, 0x31fa7: 0x6d49cc20, + 0x31fa8: 0x6d761e20, 0x31fa9: 0x6d762020, 0x31faa: 0x6d762220, 0x31fab: 0x6d762420, + 0x31fac: 0x6d762620, 0x31fad: 0x6d762820, 0x31fae: 0x6d762a20, 0x31faf: 0x6d762c20, + 0x31fb0: 0x6d762e20, 0x31fb1: 0x6d763020, 0x31fb2: 0x6d763220, 0x31fb3: 0x6d763420, + 0x31fb4: 0x6d763620, 0x31fb5: 0x6d763820, 0x31fb6: 0x6d763a20, 0x31fb7: 0x6d763c20, + 0x31fb8: 0x6d763e20, 0x31fb9: 0x6d764020, 0x31fba: 0x6d764220, 0x31fbb: 0x6d764420, + 0x31fbc: 0x6d764620, 0x31fbd: 0x6d764820, 0x31fbe: 0x6d764a20, 0x31fbf: 0x6d764c20, + // Block 0xc7f, offset 0x31fc0 + 0x31fc0: 0x6d764e20, 0x31fc1: 0x6d765020, 0x31fc2: 0x6d765220, 0x31fc3: 0x6d765420, + 0x31fc4: 0x6d765620, 0x31fc5: 0x6d765820, 0x31fc6: 0x6d765a20, 0x31fc7: 0x6d765c20, + 0x31fc8: 0x6d9fc820, 0x31fc9: 0x6d9fca20, 0x31fca: 0x6d9fcc20, 0x31fcb: 0x6d9fce20, + 0x31fcc: 0x6d9fd020, 0x31fcd: 0x6d9fd220, 0x31fce: 0x6d9fd420, 0x31fcf: 0x6d9fd620, + 0x31fd0: 0x6d9fd820, 0x31fd1: 0x6d9fda20, 0x31fd2: 0x6d9fdc20, 0x31fd3: 0x6d9fde20, + 0x31fd4: 0x6d9fe020, 0x31fd5: 0x6d9fe220, 0x31fd6: 0x6d9fe420, 0x31fd7: 0x6d9fe620, + 0x31fd8: 0x6d9fe820, 0x31fd9: 0x6d9fea20, 0x31fda: 0x6d9fec20, 0x31fdb: 0x6d9fee20, + 0x31fdc: 0x6db61c20, 0x31fdd: 0x6d9ff020, 0x31fde: 0x6d9ff220, 0x31fdf: 0x6d9ff420, + 0x31fe0: 0x6d9ff620, 0x31fe1: 0x6d9ff820, 0x31fe2: 0x6d9ffa20, 0x31fe3: 0x6dc25620, + 0x31fe4: 0x6dc25820, 0x31fe5: 0x6dc25a20, 0x31fe6: 0x6dc25c20, 0x31fe7: 0x6dc25e20, + 0x31fe8: 0x6dc26020, 0x31fe9: 0x6dc26220, 0x31fea: 0x6dc26420, 0x31feb: 0x6dc26620, + 0x31fec: 0x6dc26820, 0x31fed: 0x6dc26a20, 0x31fee: 0x6dc26c20, 0x31fef: 0x6dc26e20, + 0x31ff0: 0x6dc27020, 0x31ff1: 0x6dc27220, 0x31ff2: 0x6dc27420, 0x31ff3: 0x6dc27620, + 0x31ff4: 0x6dc27820, 0x31ff5: 0x6dc27a20, 0x31ff6: 0x6dc27c20, 0x31ff7: 0x6dc27e20, + 0x31ff8: 0x6dc28020, 0x31ff9: 0x6dc28220, 0x31ffa: 0x6dc28420, 0x31ffb: 0x6de01a20, + 0x31ffc: 0x6de01c20, 0x31ffd: 0x6de01e20, 0x31ffe: 0x6de02020, 0x31fff: 0x6de02220, + // Block 0xc80, offset 0x32000 + 0x32000: 0x6de02420, 0x32001: 0x6de02620, 0x32002: 0x6de5da20, 0x32003: 0x6de02820, + 0x32004: 0x6de02a20, 0x32005: 0x6de02c20, 0x32006: 0x6de02e20, 0x32007: 0x6de03020, + 0x32008: 0x6de03220, 0x32009: 0x6de03420, 0x3200a: 0x6de03620, 0x3200b: 0x6de03820, + 0x3200c: 0x6de03a20, 0x3200d: 0x6df87620, 0x3200e: 0x6df87820, 0x3200f: 0x6df87a20, + 0x32010: 0x6df87c20, 0x32011: 0x6df87e20, 0x32012: 0x6df88020, 0x32013: 0x6df88220, + 0x32014: 0x6df88420, 0x32015: 0x6df88620, 0x32016: 0x6df88820, 0x32017: 0x6e0c4a20, + 0x32018: 0x6e0c4c20, 0x32019: 0x6e0c4e20, 0x3201a: 0x6e0c5020, 0x3201b: 0x6e0c5220, + 0x3201c: 0x6e0c5420, 0x3201d: 0x6e0c5620, 0x3201e: 0x6df88a20, 0x3201f: 0x6e0c5820, + 0x32020: 0x6e0c5a20, 0x32021: 0x6e0c5c20, 0x32022: 0x6e0c5e20, 0x32023: 0x6e0c6020, + 0x32024: 0x6e1c0c20, 0x32025: 0x6e1c0e20, 0x32026: 0x6e1c1020, 0x32027: 0x6e1c1220, + 0x32028: 0x6e1c1420, 0x32029: 0x6e1c1620, 0x3202a: 0x6e284e20, 0x3202b: 0x6e285020, + 0x3202c: 0x6e285220, 0x3202d: 0x6e285420, 0x3202e: 0x6e285620, 0x3202f: 0x6e285820, + 0x32030: 0x6e318a20, 0x32031: 0x6e38ae20, 0x32032: 0x6e3ce420, 0x32033: 0x6e3ce620, + 0x32034: 0x6e446c20, 0x32035: 0x6e442220, 0x32036: 0x6c02cc20, 0x32037: 0x6c061020, + 0x32038: 0x6c061220, 0x32039: 0x6c0c5020, 0x3203a: 0x6c0c5220, 0x3203b: 0x6c0c5420, + 0x3203c: 0x6c0c5620, 0x3203d: 0x6c174220, 0x3203e: 0x6c174420, 0x3203f: 0x6c174620, + // Block 0xc81, offset 0x32040 + 0x32040: 0x6c174820, 0x32041: 0x6c174a20, 0x32042: 0x6c174c20, 0x32043: 0x6c2a3820, + 0x32044: 0x6c2a3a20, 0x32045: 0x6c2a3c20, 0x32046: 0x6c2a3e20, 0x32047: 0x6c2a4020, + 0x32048: 0x6c2a4220, 0x32049: 0x6c2a4420, 0x3204a: 0x6c2a4620, 0x3204b: 0x6c2a4820, + 0x3204c: 0x6c446020, 0x3204d: 0x6c446220, 0x3204e: 0x6c446420, 0x3204f: 0x6c446620, + 0x32050: 0x6c657620, 0x32051: 0x6c657820, 0x32052: 0x6c657a20, 0x32053: 0x6c657c20, + 0x32054: 0x6c657e20, 0x32055: 0x6c658020, 0x32056: 0x6c658220, 0x32057: 0x6c8c6e20, + 0x32058: 0x6c8c7020, 0x32059: 0x6c8c7220, 0x3205a: 0x6c8c7420, 0x3205b: 0x6c8c7620, + 0x3205c: 0x6c8c7820, 0x3205d: 0x6c8c7a20, 0x3205e: 0x6cb8ca20, 0x3205f: 0x6cb8cc20, + 0x32060: 0x6cb8ce20, 0x32061: 0x6cb8d020, 0x32062: 0x6cb8d220, 0x32063: 0x6cb8d420, + 0x32064: 0x6ce9e420, 0x32065: 0x6ce9e620, 0x32066: 0x6ce9e820, 0x32067: 0x6d19b820, + 0x32068: 0x6d19ba20, 0x32069: 0x6d19bc20, 0x3206a: 0x6d19be20, 0x3206b: 0x6d19c020, + 0x3206c: 0x6d19c220, 0x3206d: 0x6d19c420, 0x3206e: 0x6d19c620, 0x3206f: 0x6d19c820, + 0x32070: 0x6d485c20, 0x32071: 0x6d485e20, 0x32072: 0x6d486020, 0x32073: 0x6d766820, + 0x32074: 0x6d486220, 0x32075: 0x6d486420, 0x32076: 0x6d486620, 0x32077: 0x6d486820, + 0x32078: 0x6d766a20, 0x32079: 0x6d766c20, 0x3207a: 0x6d766e20, 0x3207b: 0x6d767020, + 0x3207c: 0x6d767220, 0x3207d: 0x6d767420, 0x3207e: 0x6d767620, 0x3207f: 0x6da00420, + // Block 0xc82, offset 0x32080 + 0x32080: 0x6da00620, 0x32081: 0x6da00820, 0x32082: 0x6da00a20, 0x32083: 0x6da00c20, + 0x32084: 0x6da00e20, 0x32085: 0x6da01020, 0x32086: 0x6dc28e20, 0x32087: 0x6da01220, + 0x32088: 0x6dc29020, 0x32089: 0x6dc29220, 0x3208a: 0x6dc29420, 0x3208b: 0x6de04220, + 0x3208c: 0x6de23820, 0x3208d: 0x6df88e20, 0x3208e: 0x6de04420, 0x3208f: 0x6df89020, + 0x32090: 0x6df89220, 0x32091: 0x6e0c6620, 0x32092: 0x6e0c6820, 0x32093: 0x6e1c1820, + 0x32094: 0x6e1c1a20, 0x32095: 0x6e285a20, 0x32096: 0x6e285c20, 0x32097: 0x6e318c20, + 0x32098: 0x6e318e20, 0x32099: 0x6e319020, 0x3209a: 0x6e3ce820, 0x3209b: 0x6c014a20, + 0x3209c: 0x6c02d020, 0x3209d: 0x6c02d220, 0x3209e: 0x6c02d420, 0x3209f: 0x6c061a20, + 0x320a0: 0x6c0c6020, 0x320a1: 0x6c0c6220, 0x320a2: 0x6c0c6420, 0x320a3: 0x6c0c6620, + 0x320a4: 0x6c175220, 0x320a5: 0x6c175420, 0x320a6: 0x6c175620, 0x320a7: 0x6c175820, + 0x320a8: 0x6c175a20, 0x320a9: 0x6c2a4e20, 0x320aa: 0x6c446e20, 0x320ab: 0x6c447020, + 0x320ac: 0x6c447220, 0x320ad: 0x6c658620, 0x320ae: 0x6c658820, 0x320af: 0x6c658a20, + 0x320b0: 0x6c658c20, 0x320b1: 0x6c8c7c20, 0x320b2: 0x6cb8d820, 0x320b3: 0x6cb8da20, + 0x320b4: 0x6ce9ec20, 0x320b5: 0x6ce9ee20, 0x320b6: 0x6ce9f020, 0x320b7: 0x6ce9f220, + 0x320b8: 0x6d19ca20, 0x320b9: 0x6d19cc20, 0x320ba: 0x6d19ce20, 0x320bb: 0x6d19d020, + 0x320bc: 0x6d767820, 0x320bd: 0x6da01420, 0x320be: 0x6dc29620, 0x320bf: 0x6df89420, + // Block 0xc83, offset 0x320c0 + 0x320c0: 0x6c014c20, 0x320c1: 0x6c02de20, 0x320c2: 0x6c02e020, 0x320c3: 0x6c02e220, + 0x320c4: 0x6c02e420, 0x320c5: 0x6c061e20, 0x320c6: 0x6c062020, 0x320c7: 0x6c020820, + 0x320c8: 0x6c0c7220, 0x320c9: 0x6c0c7420, 0x320ca: 0x6c176420, 0x320cb: 0x6c176620, + 0x320cc: 0x6c176820, 0x320cd: 0x6c176a20, 0x320ce: 0x6c176c20, 0x320cf: 0x6c176e20, + 0x320d0: 0x6c2a5620, 0x320d1: 0x6c2a5820, 0x320d2: 0x6c447a20, 0x320d3: 0x6c447c20, + 0x320d4: 0x6c447e20, 0x320d5: 0x6c448020, 0x320d6: 0x6c448220, 0x320d7: 0x6c448420, + 0x320d8: 0x6c4d0420, 0x320d9: 0x6c659420, 0x320da: 0x6c659620, 0x320db: 0x6c659820, + 0x320dc: 0x6c8c8020, 0x320dd: 0x6c8c8220, 0x320de: 0x6cb8dc20, 0x320df: 0x6cb8de20, + 0x320e0: 0x6cb8e020, 0x320e1: 0x6cb8e220, 0x320e2: 0x6cb8e420, 0x320e3: 0x6cb8e620, + 0x320e4: 0x6cb8e820, 0x320e5: 0x6cb8ea20, 0x320e6: 0x6cb8ec20, 0x320e7: 0x6cb8ee20, + 0x320e8: 0x6ce9f820, 0x320e9: 0x6ce9fa20, 0x320ea: 0x6ce9fc20, 0x320eb: 0x6ce9fe20, + 0x320ec: 0x6cea0020, 0x320ed: 0x6cea0220, 0x320ee: 0x6cea0420, 0x320ef: 0x6d19d220, + 0x320f0: 0x6d19d420, 0x320f1: 0x6d19d620, 0x320f2: 0x6d1b1620, 0x320f3: 0x6d767c20, + 0x320f4: 0x6d767e20, 0x320f5: 0x6d768020, 0x320f6: 0x6dc29a20, 0x320f7: 0x6dc29c20, + 0x320f8: 0x6de04820, 0x320f9: 0x6de04a20, 0x320fa: 0x6de04c20, 0x320fb: 0x6e474020, + 0x320fc: 0x6c014e20, 0x320fd: 0x6c02f220, 0x320fe: 0x6c02f420, 0x320ff: 0x6c02f620, + // Block 0xc84, offset 0x32100 + 0x32100: 0x6c02f820, 0x32101: 0x6c062a20, 0x32102: 0x6c062c20, 0x32103: 0x6c062e20, + 0x32104: 0x6c063020, 0x32105: 0x6c063220, 0x32106: 0x6c063420, 0x32107: 0x6c063620, + 0x32108: 0x6c063820, 0x32109: 0x6c063a20, 0x3210a: 0x6c063c20, 0x3210b: 0x6c0c7c20, + 0x3210c: 0x6c0c7e20, 0x3210d: 0x6c0c8020, 0x3210e: 0x6c0c8220, 0x3210f: 0x6c0c8420, + 0x32110: 0x6c177220, 0x32111: 0x6c177420, 0x32112: 0x6c177620, 0x32113: 0x6c177820, + 0x32114: 0x6c177a20, 0x32115: 0x6c177c20, 0x32116: 0x6c2a6020, 0x32117: 0x6c2a6220, + 0x32118: 0x6c2a6420, 0x32119: 0x6c2a6620, 0x3211a: 0x6c2a6820, 0x3211b: 0x6c448a20, + 0x3211c: 0x6c448c20, 0x3211d: 0x6c659e20, 0x3211e: 0x6c65a020, 0x3211f: 0x6c65a220, + 0x32120: 0x6c8c8a20, 0x32121: 0x6c8c8c20, 0x32122: 0x6c8c8e20, 0x32123: 0x6cb8f620, + 0x32124: 0x6cb8f820, 0x32125: 0x6cb8fa20, 0x32126: 0x6cea0a20, 0x32127: 0x6cea0c20, + 0x32128: 0x6d19dc20, 0x32129: 0x6d19de20, 0x3212a: 0x6d487220, 0x3212b: 0x6d227a20, + 0x3212c: 0x6d487420, 0x3212d: 0x6d768420, 0x3212e: 0x6d768620, 0x3212f: 0x6dc29e20, + 0x32130: 0x6dc2a020, 0x32131: 0x6df89820, 0x32132: 0x6e1c1e20, 0x32133: 0x6c030220, + 0x32134: 0x6c030420, 0x32135: 0x6c064220, 0x32136: 0x6c064420, 0x32137: 0x6c064620, + 0x32138: 0x6c064820, 0x32139: 0x6c0c8a20, 0x3213a: 0x6c0c8c20, 0x3213b: 0x6c0c8e20, + 0x3213c: 0x6c0c9020, 0x3213d: 0x6c0c9220, 0x3213e: 0x6c0c9420, 0x3213f: 0x6c0c9620, + // Block 0xc85, offset 0x32140 + 0x32140: 0x6c178220, 0x32141: 0x6c178420, 0x32142: 0x6c178620, 0x32143: 0x6c178820, + 0x32144: 0x6c2a6c20, 0x32145: 0x6c2a6e20, 0x32146: 0x6c2a7020, 0x32147: 0x6c449620, + 0x32148: 0x6c449820, 0x32149: 0x6c449a20, 0x3214a: 0x6c449c20, 0x3214b: 0x6c449e20, + 0x3214c: 0x6c65b220, 0x3214d: 0x6c65b420, 0x3214e: 0x6c65b620, 0x3214f: 0x6c65b820, + 0x32150: 0x6c65ba20, 0x32151: 0x6c65bc20, 0x32152: 0x6c65be20, 0x32153: 0x6c8c9220, + 0x32154: 0x6cb8fe20, 0x32155: 0x6cb90020, 0x32156: 0x6cb90220, 0x32157: 0x6cb90420, + 0x32158: 0x6cb90620, 0x32159: 0x6cb90820, 0x3215a: 0x6cea0e20, 0x3215b: 0x6cea1020, + 0x3215c: 0x6d19e220, 0x3215d: 0x6d19e420, 0x3215e: 0x6d19e620, 0x3215f: 0x6d30e420, + 0x32160: 0x6d768a20, 0x32161: 0x6d768c20, 0x32162: 0x6da01820, 0x32163: 0x6dc2a220, + 0x32164: 0x6dc2a420, 0x32165: 0x6dc2a620, 0x32166: 0x6df89a20, 0x32167: 0x6df89c20, + 0x32168: 0x6df89e20, 0x32169: 0x6e0c6a20, 0x3216a: 0x6e1c2020, 0x3216b: 0x6e285e20, + 0x3216c: 0x6c015020, 0x3216d: 0x6c030820, 0x3216e: 0x6c065220, 0x3216f: 0x6c065420, + 0x32170: 0x6c065620, 0x32171: 0x6c0ca620, 0x32172: 0x6c0ca820, 0x32173: 0x6c0caa20, + 0x32174: 0x6c0cac20, 0x32175: 0x6c0cae20, 0x32176: 0x6c0cb020, 0x32177: 0x6c179e20, + 0x32178: 0x6c17a020, 0x32179: 0x6c17a220, 0x3217a: 0x6c17a420, 0x3217b: 0x6c17a620, + 0x3217c: 0x6c17a820, 0x3217d: 0x6c17aa20, 0x3217e: 0x6c17ac20, 0x3217f: 0x6c17ae20, + // Block 0xc86, offset 0x32180 + 0x32180: 0x6c2a8820, 0x32181: 0x6c17b020, 0x32182: 0x6c2a8a20, 0x32183: 0x6c2a8c20, + 0x32184: 0x6c2a8e20, 0x32185: 0x6c2a9020, 0x32186: 0x6c2a9220, 0x32187: 0x6c2a9420, + 0x32188: 0x6c44aa20, 0x32189: 0x6c44ac20, 0x3218a: 0x6c44ae20, 0x3218b: 0x6c44b020, + 0x3218c: 0x6c44b220, 0x3218d: 0x6c44b420, 0x3218e: 0x6c44b620, 0x3218f: 0x6c44b820, + 0x32190: 0x6c44ba20, 0x32191: 0x6c44bc20, 0x32192: 0x6c44be20, 0x32193: 0x6c44c020, + 0x32194: 0x6c44c220, 0x32195: 0x6c44c420, 0x32196: 0x6c44c620, 0x32197: 0x6c44c820, + 0x32198: 0x6c65de20, 0x32199: 0x6c65e020, 0x3219a: 0x6c65e220, 0x3219b: 0x6c65e420, + 0x3219c: 0x6c65e620, 0x3219d: 0x6c65e820, 0x3219e: 0x6c65ea20, 0x3219f: 0x6c65ec20, + 0x321a0: 0x6c65ee20, 0x321a1: 0x6c65f020, 0x321a2: 0x6c65f220, 0x321a3: 0x6c65f420, + 0x321a4: 0x6c65f620, 0x321a5: 0x6c8c9e20, 0x321a6: 0x6c8ca020, 0x321a7: 0x6c8ca220, + 0x321a8: 0x6c8ca420, 0x321a9: 0x6c8ca620, 0x321aa: 0x6c8ca820, 0x321ab: 0x6c8caa20, + 0x321ac: 0x6c8cac20, 0x321ad: 0x6c8cae20, 0x321ae: 0x6c8cb020, 0x321af: 0x6c8cb220, + 0x321b0: 0x6c8cb420, 0x321b1: 0x6cb91a20, 0x321b2: 0x6cb91c20, 0x321b3: 0x6cb91e20, + 0x321b4: 0x6cb92020, 0x321b5: 0x6cb92220, 0x321b6: 0x6cb92420, 0x321b7: 0x6cb92620, + 0x321b8: 0x6cb92820, 0x321b9: 0x6cb92a20, 0x321ba: 0x6cea1620, 0x321bb: 0x6cea1820, + 0x321bc: 0x6cea1a20, 0x321bd: 0x6cea1c20, 0x321be: 0x6cea1e20, 0x321bf: 0x6cea2020, + // Block 0xc87, offset 0x321c0 + 0x321c0: 0x6cea2220, 0x321c1: 0x6cea2420, 0x321c2: 0x6cea2620, 0x321c3: 0x6cea2820, + 0x321c4: 0x6d19ee20, 0x321c5: 0x6d19f020, 0x321c6: 0x6d19f220, 0x321c7: 0x6d19f420, + 0x321c8: 0x6d19f620, 0x321c9: 0x6d19f820, 0x321ca: 0x6d488020, 0x321cb: 0x6d488220, + 0x321cc: 0x6d488420, 0x321cd: 0x6d488620, 0x321ce: 0x6d488820, 0x321cf: 0x6d488a20, + 0x321d0: 0x6d488c20, 0x321d1: 0x6d488e20, 0x321d2: 0x6d769220, 0x321d3: 0x6d19fa20, + 0x321d4: 0x6d769420, 0x321d5: 0x6d769620, 0x321d6: 0x6da01c20, 0x321d7: 0x6da01e20, + 0x321d8: 0x6da02020, 0x321d9: 0x6da02220, 0x321da: 0x6da02420, 0x321db: 0x6da02620, + 0x321dc: 0x6da02820, 0x321dd: 0x6dc2a820, 0x321de: 0x6dc2aa20, 0x321df: 0x6dc2ac20, + 0x321e0: 0x6dc2ae20, 0x321e1: 0x6dc2b020, 0x321e2: 0x6de04e20, 0x321e3: 0x6de05020, + 0x321e4: 0x6e0c6c20, 0x321e5: 0x6e1c2220, 0x321e6: 0x6e3cea20, 0x321e7: 0x6c009620, + 0x321e8: 0x6c009820, 0x321e9: 0x6c030c20, 0x321ea: 0x6c030e20, 0x321eb: 0x6c031020, + 0x321ec: 0x6c031220, 0x321ed: 0x6c031420, 0x321ee: 0x6c031620, 0x321ef: 0x6c031820, + 0x321f0: 0x6c031a20, 0x321f1: 0x6c066020, 0x321f2: 0x6c066220, 0x321f3: 0x6c066420, + 0x321f4: 0x6c066620, 0x321f5: 0x6c0cc220, 0x321f6: 0x6c0cc420, 0x321f7: 0x6c0cc620, + 0x321f8: 0x6c0cc820, 0x321f9: 0x6c0cca20, 0x321fa: 0x6c0ccc20, 0x321fb: 0x6c0cce20, + 0x321fc: 0x6c17ba20, 0x321fd: 0x6c17bc20, 0x321fe: 0x6c17be20, 0x321ff: 0x6c17c020, + // Block 0xc88, offset 0x32200 + 0x32200: 0x6c17c220, 0x32201: 0x6c17c420, 0x32202: 0x6c17c620, 0x32203: 0x6c17c820, + 0x32204: 0x6c17ca20, 0x32205: 0x6c17cc20, 0x32206: 0x6c2a9e20, 0x32207: 0x6c2aa020, + 0x32208: 0x6c2aa220, 0x32209: 0x6c2aa420, 0x3220a: 0x6c2aa620, 0x3220b: 0x6c2aa820, + 0x3220c: 0x6c2aaa20, 0x3220d: 0x6c2aac20, 0x3220e: 0x6c2aae20, 0x3220f: 0x6c44d220, + 0x32210: 0x6c44d420, 0x32211: 0x6c44d620, 0x32212: 0x6c660020, 0x32213: 0x6c660220, + 0x32214: 0x6c660420, 0x32215: 0x6c660620, 0x32216: 0x6c660820, 0x32217: 0x6c6de220, + 0x32218: 0x6c8cc220, 0x32219: 0x6c8cc420, 0x3221a: 0x6c916e20, 0x3221b: 0x6c8cc620, + 0x3221c: 0x6c8cc820, 0x3221d: 0x6c8cca20, 0x3221e: 0x6c8ccc20, 0x3221f: 0x6cb93620, + 0x32220: 0x6cb93820, 0x32221: 0x6cb93a20, 0x32222: 0x6cb93c20, 0x32223: 0x6cb93e20, + 0x32224: 0x6cea2e20, 0x32225: 0x6cea3020, 0x32226: 0x6cea3220, 0x32227: 0x6cea3420, + 0x32228: 0x6d1a0220, 0x32229: 0x6d1a0420, 0x3222a: 0x6d1a0620, 0x3222b: 0x6d489220, + 0x3222c: 0x6d717420, 0x3222d: 0x6d769a20, 0x3222e: 0x6d769c20, 0x3222f: 0x6d769e20, + 0x32230: 0x6d76a020, 0x32231: 0x6da02c20, 0x32232: 0x6df8a220, 0x32233: 0x6e0c6e20, + 0x32234: 0x6c009c20, 0x32235: 0x6c015820, 0x32236: 0x6c031e20, 0x32237: 0x6c032020, + 0x32238: 0x6c032220, 0x32239: 0x6c067220, 0x3223a: 0x6c067420, 0x3223b: 0x6c067620, + 0x3223c: 0x6c076c20, 0x3223d: 0x6c067820, 0x3223e: 0x6c0cd620, 0x3223f: 0x6c0cd820, + // Block 0xc89, offset 0x32240 + 0x32240: 0x6c0cda20, 0x32241: 0x6c0cdc20, 0x32242: 0x6c0cde20, 0x32243: 0x6c0ce020, + 0x32244: 0x6c0ce220, 0x32245: 0x6c0ce420, 0x32246: 0x6c17d020, 0x32247: 0x6c17d220, + 0x32248: 0x6c17d420, 0x32249: 0x6c17d620, 0x3224a: 0x6c17d820, 0x3224b: 0x6c2ab420, + 0x3224c: 0x6c2ab620, 0x3224d: 0x6c2ab820, 0x3224e: 0x6c44da20, 0x3224f: 0x6c44dc20, + 0x32250: 0x6c44de20, 0x32251: 0x6c633020, 0x32252: 0x6c660c20, 0x32253: 0x6c660e20, + 0x32254: 0x6c8cd020, 0x32255: 0x6c8cd220, 0x32256: 0x6c8cd420, 0x32257: 0x6c8cd620, + 0x32258: 0x6cb94220, 0x32259: 0x6d1a0820, 0x3225a: 0x6d1a0a20, 0x3225b: 0x6d4b1220, + 0x3225c: 0x6d489420, 0x3225d: 0x6d76a220, 0x3225e: 0x6da02e20, 0x3225f: 0x6de05220, + 0x32260: 0x6df8a420, 0x32261: 0x6e0c7020, 0x32262: 0x6e319220, 0x32263: 0x6c00a620, + 0x32264: 0x6c015e20, 0x32265: 0x6c032c20, 0x32266: 0x6c032e20, 0x32267: 0x6c033020, + 0x32268: 0x6c033220, 0x32269: 0x6c033420, 0x3226a: 0x6c033620, 0x3226b: 0x6c033820, + 0x3226c: 0x6c033a20, 0x3226d: 0x6c068c20, 0x3226e: 0x6c068e20, 0x3226f: 0x6c069020, + 0x32270: 0x6c069220, 0x32271: 0x6c069420, 0x32272: 0x6c069620, 0x32273: 0x6c069820, + 0x32274: 0x6c069a20, 0x32275: 0x6c0d0620, 0x32276: 0x6c069c20, 0x32277: 0x6c0d0820, + 0x32278: 0x6c0d0a20, 0x32279: 0x6c0d0c20, 0x3227a: 0x6c0d0e20, 0x3227b: 0x6c069e20, + 0x3227c: 0x6c0d1020, 0x3227d: 0x6c0d1220, 0x3227e: 0x6c0d1420, 0x3227f: 0x6c0d1620, + // Block 0xc8a, offset 0x32280 + 0x32280: 0x6c0d1820, 0x32281: 0x6c0d1a20, 0x32282: 0x6c0d1c20, 0x32283: 0x6c0d1e20, + 0x32284: 0x6c0d2020, 0x32285: 0x6c0d2220, 0x32286: 0x6c0d2420, 0x32287: 0x6c0d2620, + 0x32288: 0x6c0d2820, 0x32289: 0x6c0d2a20, 0x3228a: 0x6c0d2c20, 0x3228b: 0x6c0d2e20, + 0x3228c: 0x6c0d3020, 0x3228d: 0x6c0d3220, 0x3228e: 0x6c180220, 0x3228f: 0x6c180420, + 0x32290: 0x6c180620, 0x32291: 0x6c180820, 0x32292: 0x6c180a20, 0x32293: 0x6c180c20, + 0x32294: 0x6c180e20, 0x32295: 0x6c181020, 0x32296: 0x6c181220, 0x32297: 0x6c181420, + 0x32298: 0x6c181620, 0x32299: 0x6c181820, 0x3229a: 0x6c181a20, 0x3229b: 0x6c181c20, + 0x3229c: 0x6c181e20, 0x3229d: 0x6c182020, 0x3229e: 0x6c182220, 0x3229f: 0x6c182420, + 0x322a0: 0x6c182620, 0x322a1: 0x6c182820, 0x322a2: 0x6c182a20, 0x322a3: 0x6c182c20, + 0x322a4: 0x6c182e20, 0x322a5: 0x6c183020, 0x322a6: 0x6c183220, 0x322a7: 0x6c2af220, + 0x322a8: 0x6c2af420, 0x322a9: 0x6c2af620, 0x322aa: 0x6c2af820, 0x322ab: 0x6c2afa20, + 0x322ac: 0x6c2afc20, 0x322ad: 0x6c2afe20, 0x322ae: 0x6c2b0020, 0x322af: 0x6c2b0220, + 0x322b0: 0x6c2b0420, 0x322b1: 0x6c2b0620, 0x322b2: 0x6c2b0820, 0x322b3: 0x6c2b0a20, + 0x322b4: 0x6c2b0c20, 0x322b5: 0x6c2b0e20, 0x322b6: 0x6c2b1020, 0x322b7: 0x6c2b1220, + 0x322b8: 0x6c2b1420, 0x322b9: 0x6c2b1620, 0x322ba: 0x6c2b1820, 0x322bb: 0x6c2b1a20, + 0x322bc: 0x6c2b1c20, 0x322bd: 0x6c2b1e20, 0x322be: 0x6c2b2020, 0x322bf: 0x6c2b2220, + // Block 0xc8b, offset 0x322c0 + 0x322c0: 0x6c2b2420, 0x322c1: 0x6c2b2620, 0x322c2: 0x6c2b2820, 0x322c3: 0x6c2b2a20, + 0x322c4: 0x6c2b2c20, 0x322c5: 0x6c2b2e20, 0x322c6: 0x6c2b3020, 0x322c7: 0x6c2b3220, + 0x322c8: 0x6c2b3420, 0x322c9: 0x6c2b3620, 0x322ca: 0x6c2b3820, 0x322cb: 0x6c2b3a20, + 0x322cc: 0x6c2b3c20, 0x322cd: 0x6c2b3e20, 0x322ce: 0x6c2b4020, 0x322cf: 0x6c2b4220, + 0x322d0: 0x6c450620, 0x322d1: 0x6c450820, 0x322d2: 0x6c450a20, 0x322d3: 0x6c450c20, + 0x322d4: 0x6c450e20, 0x322d5: 0x6c451020, 0x322d6: 0x6c451220, 0x322d7: 0x6c451420, + 0x322d8: 0x6c451620, 0x322d9: 0x6c451820, 0x322da: 0x6c451a20, 0x322db: 0x6c451c20, + 0x322dc: 0x6c451e20, 0x322dd: 0x6c452020, 0x322de: 0x6c452220, 0x322df: 0x6c452420, + 0x322e0: 0x6c452620, 0x322e1: 0x6c452820, 0x322e2: 0x6c452a20, 0x322e3: 0x6c452c20, + 0x322e4: 0x6c452e20, 0x322e5: 0x6c453020, 0x322e6: 0x6c453220, 0x322e7: 0x6c453420, + 0x322e8: 0x6c453620, 0x322e9: 0x6c453820, 0x322ea: 0x6c453a20, 0x322eb: 0x6c453c20, + 0x322ec: 0x6c453e20, 0x322ed: 0x6c454020, 0x322ee: 0x6c454220, 0x322ef: 0x6c454420, + 0x322f0: 0x6c454620, 0x322f1: 0x6c664820, 0x322f2: 0x6c664a20, 0x322f3: 0x6c664c20, + 0x322f4: 0x6c664e20, 0x322f5: 0x6c665020, 0x322f6: 0x6c665220, 0x322f7: 0x6c665420, + 0x322f8: 0x6c665620, 0x322f9: 0x6c665820, 0x322fa: 0x6c665a20, 0x322fb: 0x6c665c20, + 0x322fc: 0x6c665e20, 0x322fd: 0x6c666020, 0x322fe: 0x6c666220, 0x322ff: 0x6c666420, + // Block 0xc8c, offset 0x32300 + 0x32300: 0x6c666620, 0x32301: 0x6c666820, 0x32302: 0x6c666a20, 0x32303: 0x6c666c20, + 0x32304: 0x6c666e20, 0x32305: 0x6c667020, 0x32306: 0x6c667220, 0x32307: 0x6c667420, + 0x32308: 0x6c667620, 0x32309: 0x6c667820, 0x3230a: 0x6c667a20, 0x3230b: 0x6c667c20, + 0x3230c: 0x6c667e20, 0x3230d: 0x6c668020, 0x3230e: 0x6c668220, 0x3230f: 0x6c668420, + 0x32310: 0x6c668620, 0x32311: 0x6c668820, 0x32312: 0x6c668a20, 0x32313: 0x6c668c20, + 0x32314: 0x6c668e20, 0x32315: 0x6c669020, 0x32316: 0x6c669220, 0x32317: 0x6c669420, + 0x32318: 0x6c669620, 0x32319: 0x6c669820, 0x3231a: 0x6c669a20, 0x3231b: 0x6c669c20, + 0x3231c: 0x6c669e20, 0x3231d: 0x6c8cf820, 0x3231e: 0x6c8cfa20, 0x3231f: 0x6c8cfc20, + 0x32320: 0x6c8cfe20, 0x32321: 0x6c8d0020, 0x32322: 0x6c8d0220, 0x32323: 0x6c8d0420, + 0x32324: 0x6c8d0620, 0x32325: 0x6c8d0820, 0x32326: 0x6c8d0a20, 0x32327: 0x6c8d0c20, + 0x32328: 0x6c8d0e20, 0x32329: 0x6c8d1020, 0x3232a: 0x6c8d1220, 0x3232b: 0x6c8d1420, + 0x3232c: 0x6c8d1620, 0x3232d: 0x6c8d1820, 0x3232e: 0x6c8d1a20, 0x3232f: 0x6c8d1c20, + 0x32330: 0x6c8d1e20, 0x32331: 0x6c8d2020, 0x32332: 0x6c8d2220, 0x32333: 0x6c8d2420, + 0x32334: 0x6c8d2620, 0x32335: 0x6c8d2820, 0x32336: 0x6c66a020, 0x32337: 0x6c8d2a20, + 0x32338: 0x6c8d2c20, 0x32339: 0x6c8d2e20, 0x3233a: 0x6c8d3020, 0x3233b: 0x6c8d3220, + 0x3233c: 0x6c8d3420, 0x3233d: 0x6c8d3620, 0x3233e: 0x6c8d3820, 0x3233f: 0x6cb95a20, + // Block 0xc8d, offset 0x32340 + 0x32340: 0x6cb95c20, 0x32341: 0x6cb95e20, 0x32342: 0x6cb96020, 0x32343: 0x6cb96220, + 0x32344: 0x6cb96420, 0x32345: 0x6cb96620, 0x32346: 0x6cb96820, 0x32347: 0x6cb96a20, + 0x32348: 0x6cb96c20, 0x32349: 0x6cb96e20, 0x3234a: 0x6cb97020, 0x3234b: 0x6cb97220, + 0x3234c: 0x6cb97420, 0x3234d: 0x6cb97620, 0x3234e: 0x6cb97820, 0x3234f: 0x6cb97a20, + 0x32350: 0x6cb97c20, 0x32351: 0x6cb97e20, 0x32352: 0x6cb98020, 0x32353: 0x6cb98220, + 0x32354: 0x6cb98420, 0x32355: 0x6cb98620, 0x32356: 0x6cb98820, 0x32357: 0x6cb98a20, + 0x32358: 0x6cb98c20, 0x32359: 0x6cb98e20, 0x3235a: 0x6cb99020, 0x3235b: 0x6cb99220, + 0x3235c: 0x6cd55e20, 0x3235d: 0x6cb99420, 0x3235e: 0x6cb99620, 0x3235f: 0x6cb99820, + 0x32360: 0x6cb99a20, 0x32361: 0x6cb99c20, 0x32362: 0x6cb99e20, 0x32363: 0x6cb9a020, + 0x32364: 0x6cb9a220, 0x32365: 0x6cea5220, 0x32366: 0x6cea5420, 0x32367: 0x6cea5620, + 0x32368: 0x6cea5820, 0x32369: 0x6cea5a20, 0x3236a: 0x6cea5c20, 0x3236b: 0x6cea5e20, + 0x3236c: 0x6cea6020, 0x3236d: 0x6cea6220, 0x3236e: 0x6cea6420, 0x3236f: 0x6cea6620, + 0x32370: 0x6cea6820, 0x32371: 0x6cea6a20, 0x32372: 0x6cea6c20, 0x32373: 0x6cea6e20, + 0x32374: 0x6cea7020, 0x32375: 0x6cea7220, 0x32376: 0x6cea7420, 0x32377: 0x6cea7620, + 0x32378: 0x6cea7820, 0x32379: 0x6cea7a20, 0x3237a: 0x6cea7c20, 0x3237b: 0x6cea7e20, + 0x3237c: 0x6cea8020, 0x3237d: 0x6cea8220, 0x3237e: 0x6cea8420, 0x3237f: 0x6cea8620, + // Block 0xc8e, offset 0x32380 + 0x32380: 0x6cea8820, 0x32381: 0x6cea8a20, 0x32382: 0x6d1a3020, 0x32383: 0x6d1a3220, + 0x32384: 0x6d1a3420, 0x32385: 0x6d1a3620, 0x32386: 0x6d1a3820, 0x32387: 0x6d1a3a20, + 0x32388: 0x6d1a3c20, 0x32389: 0x6d1a3e20, 0x3238a: 0x6d1a4020, 0x3238b: 0x6d1a4220, + 0x3238c: 0x6d1a4420, 0x3238d: 0x6d1a4620, 0x3238e: 0x6d1a4820, 0x3238f: 0x6d1a4a20, + 0x32390: 0x6d1a4c20, 0x32391: 0x6d1a4e20, 0x32392: 0x6d1a5020, 0x32393: 0x6d1a5220, + 0x32394: 0x6d1a5420, 0x32395: 0x6d1a5620, 0x32396: 0x6d1a5820, 0x32397: 0x6d1a5a20, + 0x32398: 0x6d1a5c20, 0x32399: 0x6d1a5e20, 0x3239a: 0x6d1a6020, 0x3239b: 0x6d1a6220, + 0x3239c: 0x6d1a6420, 0x3239d: 0x6d1a6620, 0x3239e: 0x6d1a6820, 0x3239f: 0x6d1a6a20, + 0x323a0: 0x6d48ae20, 0x323a1: 0x6d1a6c20, 0x323a2: 0x6d1a6e20, 0x323a3: 0x6d1a7020, + 0x323a4: 0x6d1a7220, 0x323a5: 0x6d1a7420, 0x323a6: 0x6d48b020, 0x323a7: 0x6d48b220, + 0x323a8: 0x6d48b420, 0x323a9: 0x6d48b620, 0x323aa: 0x6d48b820, 0x323ab: 0x6d48ba20, + 0x323ac: 0x6d48bc20, 0x323ad: 0x6d48be20, 0x323ae: 0x6d48c020, 0x323af: 0x6d48c220, + 0x323b0: 0x6d48c420, 0x323b1: 0x6d48c620, 0x323b2: 0x6d48c820, 0x323b3: 0x6d48ca20, + 0x323b4: 0x6d48cc20, 0x323b5: 0x6d48ce20, 0x323b6: 0x6d48d020, 0x323b7: 0x6d48d220, + 0x323b8: 0x6d48d420, 0x323b9: 0x6d48d620, 0x323ba: 0x6d76b420, 0x323bb: 0x6d76b620, + 0x323bc: 0x6d76b820, 0x323bd: 0x6d76ba20, 0x323be: 0x6d76bc20, 0x323bf: 0x6d76be20, + // Block 0xc8f, offset 0x323c0 + 0x323c0: 0x6d76c020, 0x323c1: 0x6d76c220, 0x323c2: 0x6d76c420, 0x323c3: 0x6d76c620, + 0x323c4: 0x6d76c820, 0x323c5: 0x6d76ca20, 0x323c6: 0x6d76cc20, 0x323c7: 0x6d76ce20, + 0x323c8: 0x6d76d020, 0x323c9: 0x6d76d220, 0x323ca: 0x6d76d420, 0x323cb: 0x6d938220, + 0x323cc: 0x6da03620, 0x323cd: 0x6da03820, 0x323ce: 0x6da03a20, 0x323cf: 0x6da03c20, + 0x323d0: 0x6da03e20, 0x323d1: 0x6da04020, 0x323d2: 0x6da04220, 0x323d3: 0x6da04420, + 0x323d4: 0x6da04620, 0x323d5: 0x6da04820, 0x323d6: 0x6da04a20, 0x323d7: 0x6da04c20, + 0x323d8: 0x6da04e20, 0x323d9: 0x6da05020, 0x323da: 0x6da05220, 0x323db: 0x6dc2b820, + 0x323dc: 0x6dc2ba20, 0x323dd: 0x6dc2bc20, 0x323de: 0x6dc2be20, 0x323df: 0x6dc2c020, + 0x323e0: 0x6dc2c220, 0x323e1: 0x6de05a20, 0x323e2: 0x6de05c20, 0x323e3: 0x6de05e20, + 0x323e4: 0x6df8a820, 0x323e5: 0x6e0c7620, 0x323e6: 0x6df8aa20, 0x323e7: 0x6df8ac20, + 0x323e8: 0x6df8ae20, 0x323e9: 0x6df8b020, 0x323ea: 0x6e0c7820, 0x323eb: 0x6e0c7a20, + 0x323ec: 0x6e0c7c20, 0x323ed: 0x6e0c7e20, 0x323ee: 0x6e286420, 0x323ef: 0x6e319420, + 0x323f0: 0x6e3cec20, 0x323f1: 0x6e3cee20, 0x323f2: 0x6c016220, 0x323f3: 0x6c034020, + 0x323f4: 0x6c034220, 0x323f5: 0x6c034420, 0x323f6: 0x6c06ae20, 0x323f7: 0x6c06b020, + 0x323f8: 0x6c06b220, 0x323f9: 0x6c0d4c20, 0x323fa: 0x6c0d4e20, 0x323fb: 0x6c0d5020, + 0x323fc: 0x6c0d5220, 0x323fd: 0x6c0d5420, 0x323fe: 0x6c0d5620, 0x323ff: 0x6c0d5820, + // Block 0xc90, offset 0x32400 + 0x32400: 0x6c0d5a20, 0x32401: 0x6c0d5c20, 0x32402: 0x6c185420, 0x32403: 0x6c185620, + 0x32404: 0x6c185820, 0x32405: 0x6c185a20, 0x32406: 0x6c185c20, 0x32407: 0x6c185e20, + 0x32408: 0x6c186020, 0x32409: 0x6c186220, 0x3240a: 0x6c186420, 0x3240b: 0x6c186620, + 0x3240c: 0x6c186820, 0x3240d: 0x6c186a20, 0x3240e: 0x6c186c20, 0x3240f: 0x6c186e20, + 0x32410: 0x6c187020, 0x32411: 0x6c2b6820, 0x32412: 0x6c2b6a20, 0x32413: 0x6c2b6c20, + 0x32414: 0x6c2b6e20, 0x32415: 0x6c2b7020, 0x32416: 0x6c2b7220, 0x32417: 0x6c2b7420, + 0x32418: 0x6c2b7620, 0x32419: 0x6c2b7820, 0x3241a: 0x6c2b7a20, 0x3241b: 0x6c2b7c20, + 0x3241c: 0x6c2b7e20, 0x3241d: 0x6c2b8020, 0x3241e: 0x6c456620, 0x3241f: 0x6c456820, + 0x32420: 0x6c456a20, 0x32421: 0x6c456c20, 0x32422: 0x6c456e20, 0x32423: 0x6c457020, + 0x32424: 0x6c457220, 0x32425: 0x6c457420, 0x32426: 0x6c457620, 0x32427: 0x6c457820, + 0x32428: 0x6c457a20, 0x32429: 0x6c457c20, 0x3242a: 0x6c457e20, 0x3242b: 0x6c66b820, + 0x3242c: 0x6c66ba20, 0x3242d: 0x6c66bc20, 0x3242e: 0x6c66be20, 0x3242f: 0x6c66c020, + 0x32430: 0x6c66c220, 0x32431: 0x6c66c420, 0x32432: 0x6c66c620, 0x32433: 0x6c66c820, + 0x32434: 0x6c66ca20, 0x32435: 0x6c66cc20, 0x32436: 0x6c66ce20, 0x32437: 0x6c66d020, + 0x32438: 0x6c66d220, 0x32439: 0x6c66d420, 0x3243a: 0x6c66d620, 0x3243b: 0x6c8d5420, + 0x3243c: 0x6c8d5620, 0x3243d: 0x6c8d5820, 0x3243e: 0x6c8d5a20, 0x3243f: 0x6c8d5c20, + // Block 0xc91, offset 0x32440 + 0x32440: 0x6c8d5e20, 0x32441: 0x6c8d6020, 0x32442: 0x6c8d6220, 0x32443: 0x6c8d6420, + 0x32444: 0x6c8d6620, 0x32445: 0x6cb9b420, 0x32446: 0x6cb9b620, 0x32447: 0x6cb9b820, + 0x32448: 0x6cb9ba20, 0x32449: 0x6cb9bc20, 0x3244a: 0x6cb9be20, 0x3244b: 0x6cb9c020, + 0x3244c: 0x6cb9c220, 0x3244d: 0x6cb9c420, 0x3244e: 0x6cb9c620, 0x3244f: 0x6cb9c820, + 0x32450: 0x6cb9ca20, 0x32451: 0x6cb9cc20, 0x32452: 0x6cb9ce20, 0x32453: 0x6ceaa420, + 0x32454: 0x6ceaa620, 0x32455: 0x6ceaa820, 0x32456: 0x6ceaaa20, 0x32457: 0x6ceaac20, + 0x32458: 0x6ceaae20, 0x32459: 0x6ceab020, 0x3245a: 0x6ceab220, 0x3245b: 0x6ceab420, + 0x3245c: 0x6ceab620, 0x3245d: 0x6ceab820, 0x3245e: 0x6ceaba20, 0x3245f: 0x6ceabc20, + 0x32460: 0x6d1a8420, 0x32461: 0x6d1a8620, 0x32462: 0x6d1a8820, 0x32463: 0x6d1a8a20, + 0x32464: 0x6d1a8c20, 0x32465: 0x6d1a8e20, 0x32466: 0x6d1a9020, 0x32467: 0x6d1a9220, + 0x32468: 0x6d1a9420, 0x32469: 0x6d1a9620, 0x3246a: 0x6d1a9820, 0x3246b: 0x6d1a9a20, + 0x3246c: 0x6d1a9c20, 0x3246d: 0x6d1a9e20, 0x3246e: 0x6d1aa020, 0x3246f: 0x6d1aa220, + 0x32470: 0x6d48e420, 0x32471: 0x6d48e620, 0x32472: 0x6d48e820, 0x32473: 0x6d48ea20, + 0x32474: 0x6d48ec20, 0x32475: 0x6d48ee20, 0x32476: 0x6d76dc20, 0x32477: 0x6d76de20, + 0x32478: 0x6d76e020, 0x32479: 0x6da06220, 0x3247a: 0x6da06420, 0x3247b: 0x6da06620, + 0x3247c: 0x6da06820, 0x3247d: 0x6da06a20, 0x3247e: 0x6da06c20, 0x3247f: 0x6da06e20, + // Block 0xc92, offset 0x32480 + 0x32480: 0x6dc2c620, 0x32481: 0x6dc2c820, 0x32482: 0x6dc2ca20, 0x32483: 0x6dc2cc20, + 0x32484: 0x6de06220, 0x32485: 0x6de06420, 0x32486: 0x6df8b220, 0x32487: 0x6e0c8020, + 0x32488: 0x6e286620, 0x32489: 0x6e286820, 0x3248a: 0x6e384220, 0x3248b: 0x6e46ae20, + 0x3248c: 0x6c035620, 0x3248d: 0x6c06be20, 0x3248e: 0x6c06c020, 0x3248f: 0x6c06c220, + 0x32490: 0x6c06c420, 0x32491: 0x6c0d6020, 0x32492: 0x6c0d6220, 0x32493: 0x6c0d6420, + 0x32494: 0x6c187a20, 0x32495: 0x6c187c20, 0x32496: 0x6c187e20, 0x32497: 0x6c188020, + 0x32498: 0x6c2b8e20, 0x32499: 0x6c2b9020, 0x3249a: 0x6c2b9220, 0x3249b: 0x6c2b9420, + 0x3249c: 0x6c2b9620, 0x3249d: 0x6c2b9820, 0x3249e: 0x6c458420, 0x3249f: 0x6c458620, + 0x324a0: 0x6c458820, 0x324a1: 0x6c458a20, 0x324a2: 0x6c458c20, 0x324a3: 0x6c458e20, + 0x324a4: 0x6c66e020, 0x324a5: 0x6c66e220, 0x324a6: 0x6c66e420, 0x324a7: 0x6c66e620, + 0x324a8: 0x6c66e820, 0x324a9: 0x6c66ea20, 0x324aa: 0x6c66ec20, 0x324ab: 0x6c66ee20, + 0x324ac: 0x6c66f020, 0x324ad: 0x6c66f220, 0x324ae: 0x6c8d7020, 0x324af: 0x6c8d7220, + 0x324b0: 0x6c8d7420, 0x324b1: 0x6c8d7620, 0x324b2: 0x6c8d7820, 0x324b3: 0x6c8d7a20, + 0x324b4: 0x6c8d7c20, 0x324b5: 0x6cb9da20, 0x324b6: 0x6cb9dc20, 0x324b7: 0x6cb9de20, + 0x324b8: 0x6ceac420, 0x324b9: 0x6ceac620, 0x324ba: 0x6ceac820, 0x324bb: 0x6ceaca20, + 0x324bc: 0x6ceacc20, 0x324bd: 0x6d1aa820, 0x324be: 0x6d1aaa20, 0x324bf: 0x6d1aac20, + // Block 0xc93, offset 0x324c0 + 0x324c0: 0x6d1aae20, 0x324c1: 0x6d1ab020, 0x324c2: 0x6d1ab220, 0x324c3: 0x6d48f420, + 0x324c4: 0x6d76e220, 0x324c5: 0x6d76e420, 0x324c6: 0x6d76e620, 0x324c7: 0x6d76e820, + 0x324c8: 0x6da07020, 0x324c9: 0x6da07220, 0x324ca: 0x6da07420, 0x324cb: 0x6df8b420, + 0x324cc: 0x6df8b620, 0x324cd: 0x6df8b820, 0x324ce: 0x6c00ae20, 0x324cf: 0x6c035c20, + 0x324d0: 0x6c06c820, 0x324d1: 0x6c188220, 0x324d2: 0x6c188420, 0x324d3: 0x6c188620, + 0x324d4: 0x6c188820, 0x324d5: 0x6c188a20, 0x324d6: 0x6c2b9c20, 0x324d7: 0x6c459020, + 0x324d8: 0x6c459220, 0x324d9: 0x6c459420, 0x324da: 0x6c459620, 0x324db: 0x6c459820, + 0x324dc: 0x6c459a20, 0x324dd: 0x6c459c20, 0x324de: 0x6c66f420, 0x324df: 0x6c66f620, + 0x324e0: 0x6c66f820, 0x324e1: 0x6c66fa20, 0x324e2: 0x6c63d420, 0x324e3: 0x6cb9e020, + 0x324e4: 0x6cb9e220, 0x324e5: 0x6ceace20, 0x324e6: 0x6d1ab420, 0x324e7: 0x6d1ab620, + 0x324e8: 0x6d1ab820, 0x324e9: 0x6da07620, 0x324ea: 0x6dc2ce20, 0x324eb: 0x6dea7420, + 0x324ec: 0x6c00b220, 0x324ed: 0x6c035e20, 0x324ee: 0x6c0d7020, 0x324ef: 0x6c0d7220, + 0x324f0: 0x6c0d7420, 0x324f1: 0x6c0d7620, 0x324f2: 0x6c0d7a20, 0x324f3: 0x6c189620, + 0x324f4: 0x6c189820, 0x324f5: 0x6c189a20, 0x324f6: 0x6c189c20, 0x324f7: 0x6c189e20, + 0x324f8: 0x6c2ba020, 0x324f9: 0x6c2ba220, 0x324fa: 0x6c2ba420, 0x324fb: 0x6c2ba620, + 0x324fc: 0x6c45a620, 0x324fd: 0x6c45a820, 0x324fe: 0x6c45aa20, 0x324ff: 0x6c45ac20, + // Block 0xc94, offset 0x32500 + 0x32500: 0x6c45ae20, 0x32501: 0x6c45b020, 0x32502: 0x6c45b220, 0x32503: 0x6c45c220, + 0x32504: 0x6c45b420, 0x32505: 0x6c45b620, 0x32506: 0x6c45b820, 0x32507: 0x6c45ba20, + 0x32508: 0x6c45bc20, 0x32509: 0x6c670220, 0x3250a: 0x6c670420, 0x3250b: 0x6c670620, + 0x3250c: 0x6c670820, 0x3250d: 0x6c670a20, 0x3250e: 0x6c8d8e20, 0x3250f: 0x6c8d9020, + 0x32510: 0x6cb9e420, 0x32511: 0x6cb9e620, 0x32512: 0x6cb9e820, 0x32513: 0x6cb9ea20, + 0x32514: 0x6cb9ec20, 0x32515: 0x6cb9ee20, 0x32516: 0x6ceada20, 0x32517: 0x6ceadc20, + 0x32518: 0x6ceade20, 0x32519: 0x6d1ac220, 0x3251a: 0x6d1ac420, 0x3251b: 0x6d1ac620, + 0x3251c: 0x6d48f820, 0x3251d: 0x6d48fa20, 0x3251e: 0x6d48fc20, 0x3251f: 0x6d48fe20, + 0x32520: 0x6d490020, 0x32521: 0x6d490220, 0x32522: 0x6d76ec20, 0x32523: 0x6d76ee20, + 0x32524: 0x6dc2d020, 0x32525: 0x6dc2d220, 0x32526: 0x6de06a20, 0x32527: 0x6de06c20, + 0x32528: 0x6df8bc20, 0x32529: 0x6df8be20, 0x3252a: 0x6e1c2420, 0x3252b: 0x6e3cf220, + 0x3252c: 0x6e451420, 0x3252d: 0x6c036420, 0x3252e: 0x6c0d7c20, 0x3252f: 0x6c0d7e20, + 0x32530: 0x6c18a820, 0x32531: 0x6c18aa20, 0x32532: 0x6c18ac20, 0x32533: 0x6c2baa20, + 0x32534: 0x6c45c420, 0x32535: 0x6c45c620, 0x32536: 0x6c670e20, 0x32537: 0x6d1aca20, + 0x32538: 0x6df8c220, 0x32539: 0x6e1c2620, 0x3253a: 0x6e1c2820, 0x3253b: 0x6c037020, + 0x3253c: 0x6c037220, 0x3253d: 0x6c06da20, 0x3253e: 0x6c06dc20, 0x3253f: 0x6c037420, + // Block 0xc95, offset 0x32540 + 0x32540: 0x6c06de20, 0x32541: 0x6c06e020, 0x32542: 0x6c0d8e20, 0x32543: 0x6c0d9020, + 0x32544: 0x6c0d9220, 0x32545: 0x6c0d9420, 0x32546: 0x6c0d9620, 0x32547: 0x6c0d9820, + 0x32548: 0x6c0d9a20, 0x32549: 0x6c0d9c20, 0x3254a: 0x6c0d9e20, 0x3254b: 0x6c0da020, + 0x3254c: 0x6c0da220, 0x3254d: 0x6c0da420, 0x3254e: 0x6c0da620, 0x3254f: 0x6c0da820, + 0x32550: 0x6c0daa20, 0x32551: 0x6c18ae20, 0x32552: 0x6c18b020, 0x32553: 0x6c18b220, + 0x32554: 0x6c18b420, 0x32555: 0x6c18b620, 0x32556: 0x6c18b820, 0x32557: 0x6c18ba20, + 0x32558: 0x6c2bba20, 0x32559: 0x6c2bbc20, 0x3255a: 0x6c2bbe20, 0x3255b: 0x6c2bc020, + 0x3255c: 0x6c2bc220, 0x3255d: 0x6c2bc420, 0x3255e: 0x6c2bc620, 0x3255f: 0x6c2bc820, + 0x32560: 0x6c2bca20, 0x32561: 0x6c2bcc20, 0x32562: 0x6c2bce20, 0x32563: 0x6c671020, + 0x32564: 0x6c671220, 0x32565: 0x6c671420, 0x32566: 0x6c671620, 0x32567: 0x6c671820, + 0x32568: 0x6c671a20, 0x32569: 0x6c671c20, 0x3256a: 0x6c8d9a20, 0x3256b: 0x6c8d9c20, + 0x3256c: 0x6c8d9e20, 0x3256d: 0x6c8da020, 0x3256e: 0x6c8da220, 0x3256f: 0x6c8da420, + 0x32570: 0x6cb9f420, 0x32571: 0x6cb9f620, 0x32572: 0x6cb9f820, 0x32573: 0x6cb9fa20, + 0x32574: 0x6ceae220, 0x32575: 0x6ceae420, 0x32576: 0x6ceae620, 0x32577: 0x6ceae820, + 0x32578: 0x6ceaea20, 0x32579: 0x6ceaec20, 0x3257a: 0x6ceaee20, 0x3257b: 0x6ceaf020, + 0x3257c: 0x6ceaf220, 0x3257d: 0x6d1acc20, 0x3257e: 0x6d1ace20, 0x3257f: 0x6d1ad020, + // Block 0xc96, offset 0x32580 + 0x32580: 0x6d490420, 0x32581: 0x6d490620, 0x32582: 0x6d490820, 0x32583: 0x6d490a20, + 0x32584: 0x6d490c20, 0x32585: 0x6da07a20, 0x32586: 0x6da07c20, 0x32587: 0x6da07e20, + 0x32588: 0x6da08020, 0x32589: 0x6dc2d420, 0x3258a: 0x6dc2d620, 0x3258b: 0x6dc2d820, + 0x3258c: 0x6dc2da20, 0x3258d: 0x6dc2dc20, 0x3258e: 0x6de06e20, 0x3258f: 0x6e0c8620, + 0x32590: 0x6e384420, 0x32591: 0x6e3cf420, 0x32592: 0x6c016c20, 0x32593: 0x6c06ea20, + 0x32594: 0x6c0dae20, 0x32595: 0x6c0db020, 0x32596: 0x6c0db220, 0x32597: 0x6c0db420, + 0x32598: 0x6c0db620, 0x32599: 0x6c18c420, 0x3259a: 0x6c18c620, 0x3259b: 0x6c18c820, + 0x3259c: 0x6c18ca20, 0x3259d: 0x6c161a20, 0x3259e: 0x6c2bdc20, 0x3259f: 0x6c2bde20, + 0x325a0: 0x6c2be020, 0x325a1: 0x6c2be220, 0x325a2: 0x6c2be420, 0x325a3: 0x6c2be620, + 0x325a4: 0x6c2be820, 0x325a5: 0x6c2bea20, 0x325a6: 0x6c2bec20, 0x325a7: 0x6c2bee20, + 0x325a8: 0x6c2bf020, 0x325a9: 0x6c45ce20, 0x325aa: 0x6c45d020, 0x325ab: 0x6c45d220, + 0x325ac: 0x6c45d420, 0x325ad: 0x6c45d620, 0x325ae: 0x6c45d820, 0x325af: 0x6c45da20, + 0x325b0: 0x6c45dc20, 0x325b1: 0x6c45de20, 0x325b2: 0x6c45e020, 0x325b3: 0x6c672020, + 0x325b4: 0x6c672220, 0x325b5: 0x6c672420, 0x325b6: 0x6c672620, 0x325b7: 0x6c672820, + 0x325b8: 0x6cb78420, 0x325b9: 0x6c672a20, 0x325ba: 0x6c8daa20, 0x325bb: 0x6c8dac20, + 0x325bc: 0x6c8dae20, 0x325bd: 0x6c8db020, 0x325be: 0x6c8db220, 0x325bf: 0x6c8db420, + // Block 0xc97, offset 0x325c0 + 0x325c0: 0x6cb9fc20, 0x325c1: 0x6cb9fe20, 0x325c2: 0x6cba0020, 0x325c3: 0x6cbd9e20, + 0x325c4: 0x6cba0220, 0x325c5: 0x6ceaf620, 0x325c6: 0x6d1ad420, 0x325c7: 0x6d1ad620, + 0x325c8: 0x6d491220, 0x325c9: 0x6d491420, 0x325ca: 0x6d491620, 0x325cb: 0x6e400820, + 0x325cc: 0x6e467a20, 0x325cd: 0x6c037e20, 0x325ce: 0x6c038020, 0x325cf: 0x6c038220, + 0x325d0: 0x6c038420, 0x325d1: 0x6c06f220, 0x325d2: 0x6c0dbc20, 0x325d3: 0x6c0dbe20, + 0x325d4: 0x6c0dc020, 0x325d5: 0x6c0dc220, 0x325d6: 0x6c0dc420, 0x325d7: 0x6c0dc620, + 0x325d8: 0x6c18da20, 0x325d9: 0x6c45ea20, 0x325da: 0x6c45ec20, 0x325db: 0x6c45ee20, + 0x325dc: 0x6c45f020, 0x325dd: 0x6c45f220, 0x325de: 0x6c672e20, 0x325df: 0x6cba0420, + 0x325e0: 0x6cba0620, 0x325e1: 0x6cba0820, 0x325e2: 0x6ceafc20, 0x325e3: 0x6ceafe20, + 0x325e4: 0x6ceb0020, 0x325e5: 0x6d1ada20, 0x325e6: 0x6da08420, 0x325e7: 0x6dc2e020, + 0x325e8: 0x6dc2e220, 0x325e9: 0x6dc2e420, 0x325ea: 0x6dc2e620, 0x325eb: 0x6e3cf620, + 0x325ec: 0x6c038e20, 0x325ed: 0x6c06fa20, 0x325ee: 0x6c06fc20, 0x325ef: 0x6c06fe20, + 0x325f0: 0x6c070020, 0x325f1: 0x6c070220, 0x325f2: 0x6c070420, 0x325f3: 0x6c070620, + 0x325f4: 0x6c0dda20, 0x325f5: 0x6c0ddc20, 0x325f6: 0x6c0dde20, 0x325f7: 0x6c0de020, + 0x325f8: 0x6c0de220, 0x325f9: 0x6c0de420, 0x325fa: 0x6c0de620, 0x325fb: 0x6c0de820, + 0x325fc: 0x6c0dea20, 0x325fd: 0x6c0dec20, 0x325fe: 0x6c0dee20, 0x325ff: 0x6c0df020, + // Block 0xc98, offset 0x32600 + 0x32600: 0x6c18ec20, 0x32601: 0x6c18ee20, 0x32602: 0x6c18f020, 0x32603: 0x6c18f220, + 0x32604: 0x6c18f420, 0x32605: 0x6c18f620, 0x32606: 0x6c18f820, 0x32607: 0x6c18fa20, + 0x32608: 0x6c18fc20, 0x32609: 0x6c18fe20, 0x3260a: 0x6c2c0c20, 0x3260b: 0x6c2c0e20, + 0x3260c: 0x6c2c1020, 0x3260d: 0x6c2c1220, 0x3260e: 0x6c2c1420, 0x3260f: 0x6c2c1620, + 0x32610: 0x6c2c1820, 0x32611: 0x6c2c1a20, 0x32612: 0x6c2c1c20, 0x32613: 0x6c2c1e20, + 0x32614: 0x6c2c2020, 0x32615: 0x6c2c2220, 0x32616: 0x6c2a5a20, 0x32617: 0x6c460420, + 0x32618: 0x6c460620, 0x32619: 0x6c460820, 0x3261a: 0x6c460a20, 0x3261b: 0x6c460c20, + 0x3261c: 0x6c460e20, 0x3261d: 0x6c461020, 0x3261e: 0x6c461220, 0x3261f: 0x6c461420, + 0x32620: 0x6c461620, 0x32621: 0x6c461820, 0x32622: 0x6c461a20, 0x32623: 0x6c461c20, + 0x32624: 0x6c461e20, 0x32625: 0x6c462020, 0x32626: 0x6c462220, 0x32627: 0x6c674220, + 0x32628: 0x6c674420, 0x32629: 0x6c674620, 0x3262a: 0x6c674820, 0x3262b: 0x6c674a20, + 0x3262c: 0x6c674c20, 0x3262d: 0x6c674e20, 0x3262e: 0x6c675020, 0x3262f: 0x6c675220, + 0x32630: 0x6c675420, 0x32631: 0x6c675620, 0x32632: 0x6c675820, 0x32633: 0x6c675a20, + 0x32634: 0x6c675c20, 0x32635: 0x6c675e20, 0x32636: 0x6c676020, 0x32637: 0x6c676220, + 0x32638: 0x6c8dc220, 0x32639: 0x6c8dc420, 0x3263a: 0x6c8dc620, 0x3263b: 0x6c8dc820, + 0x3263c: 0x6c8dca20, 0x3263d: 0x6c8dcc20, 0x3263e: 0x6c8dce20, 0x3263f: 0x6ceb0820, + // Block 0xc99, offset 0x32640 + 0x32640: 0x6c8dd020, 0x32641: 0x6c8dd220, 0x32642: 0x6c8dd420, 0x32643: 0x6c8dd620, + 0x32644: 0x6c8dd820, 0x32645: 0x6c8dda20, 0x32646: 0x6c8ddc20, 0x32647: 0x6cba1620, + 0x32648: 0x6cba1820, 0x32649: 0x6cba1a20, 0x3264a: 0x6cba1c20, 0x3264b: 0x6cba1e20, + 0x3264c: 0x6cba2020, 0x3264d: 0x6cba2220, 0x3264e: 0x6cba2420, 0x3264f: 0x6cba2620, + 0x32650: 0x6cba2820, 0x32651: 0x6ceb0a20, 0x32652: 0x6ceb0c20, 0x32653: 0x6ceb0e20, + 0x32654: 0x6ceb1020, 0x32655: 0x6ceb1220, 0x32656: 0x6ceb1420, 0x32657: 0x6ceb1620, + 0x32658: 0x6ceb1820, 0x32659: 0x6d1ae820, 0x3265a: 0x6d1aea20, 0x3265b: 0x6d1aec20, + 0x3265c: 0x6d1aee20, 0x3265d: 0x6d1af020, 0x3265e: 0x6d1af220, 0x3265f: 0x6d1af420, + 0x32660: 0x6d1af620, 0x32661: 0x6d1af820, 0x32662: 0x6d1afa20, 0x32663: 0x6d1afc20, + 0x32664: 0x6d1afe20, 0x32665: 0x6d1b0020, 0x32666: 0x6d1b0220, 0x32667: 0x6d1b0420, + 0x32668: 0x6d1b0620, 0x32669: 0x6d1b0820, 0x3266a: 0x6d1b0a20, 0x3266b: 0x6d1b0c20, + 0x3266c: 0x6d1b0e20, 0x3266d: 0x6d491e20, 0x3266e: 0x6d492020, 0x3266f: 0x6d492220, + 0x32670: 0x6d492420, 0x32671: 0x6d492620, 0x32672: 0x6d492820, 0x32673: 0x6d492a20, + 0x32674: 0x6d492c20, 0x32675: 0x6d492e20, 0x32676: 0x6d493020, 0x32677: 0x6d493220, + 0x32678: 0x6d493420, 0x32679: 0x6d5ad220, 0x3267a: 0x6d76f020, 0x3267b: 0x6d76f220, + 0x3267c: 0x6d76f420, 0x3267d: 0x6d76f620, 0x3267e: 0x6d76f820, 0x3267f: 0x6da08a20, + // Block 0xc9a, offset 0x32680 + 0x32680: 0x6dc2e820, 0x32681: 0x6dc2ea20, 0x32682: 0x6dc2ec20, 0x32683: 0x6dc2ee20, + 0x32684: 0x6dc2f020, 0x32685: 0x6dc2f220, 0x32686: 0x6dc2f420, 0x32687: 0x6df8c620, + 0x32688: 0x6dfbb620, 0x32689: 0x6e0c8820, 0x3268a: 0x6e0c8a20, 0x3268b: 0x6e1c2a20, + 0x3268c: 0x6e286a20, 0x3268d: 0x6e286c20, 0x3268e: 0x6e286e20, 0x3268f: 0x6e319820, + 0x32690: 0x6e442420, 0x32691: 0x6e462220, 0x32692: 0x6e467c20, 0x32693: 0x6c017620, + 0x32694: 0x6c017820, 0x32695: 0x6c017a20, 0x32696: 0x6c017c20, 0x32697: 0x6c039820, + 0x32698: 0x6c039a20, 0x32699: 0x6c071020, 0x3269a: 0x6c071220, 0x3269b: 0x6c071420, + 0x3269c: 0x6c071620, 0x3269d: 0x6c071820, 0x3269e: 0x6c0df620, 0x3269f: 0x6c0df820, + 0x326a0: 0x6c0dfa20, 0x326a1: 0x6c0dfc20, 0x326a2: 0x6c0dfe20, 0x326a3: 0x6c0e0020, + 0x326a4: 0x6c0e0220, 0x326a5: 0x6c0e0420, 0x326a6: 0x6c190620, 0x326a7: 0x6c190820, + 0x326a8: 0x6c190a20, 0x326a9: 0x6c2c2e20, 0x326aa: 0x6c2c3020, 0x326ab: 0x6c2c3220, + 0x326ac: 0x6c2c3420, 0x326ad: 0x6c2c3620, 0x326ae: 0x6c2ab020, 0x326af: 0x6c2c3820, + 0x326b0: 0x6c462c20, 0x326b1: 0x6c462e20, 0x326b2: 0x6c463020, 0x326b3: 0x6c464a20, + 0x326b4: 0x6c463220, 0x326b5: 0x6c463420, 0x326b6: 0x6c463620, 0x326b7: 0x6c463820, + 0x326b8: 0x6c463a20, 0x326b9: 0x6c677220, 0x326ba: 0x6c677420, 0x326bb: 0x6c677620, + 0x326bc: 0x6c677820, 0x326bd: 0x6c8dea20, 0x326be: 0x6c8dec20, 0x326bf: 0x6cba3020, + // Block 0xc9b, offset 0x326c0 + 0x326c0: 0x6cba3220, 0x326c1: 0x6cba3420, 0x326c2: 0x6cba3620, 0x326c3: 0x6cba3820, + 0x326c4: 0x6cba3a20, 0x326c5: 0x6cba3c20, 0x326c6: 0x6ceb2220, 0x326c7: 0x6ceb2420, + 0x326c8: 0x6ceb2620, 0x326c9: 0x6ceb2820, 0x326ca: 0x6ceb2a20, 0x326cb: 0x6ceb2c20, + 0x326cc: 0x6ceb2e20, 0x326cd: 0x6d1b1820, 0x326ce: 0x6d1b1a20, 0x326cf: 0x6d1b1c20, + 0x326d0: 0x6d1b1e20, 0x326d1: 0x6d493e20, 0x326d2: 0x6d494020, 0x326d3: 0x6d76fa20, + 0x326d4: 0x6de07220, 0x326d5: 0x6da08e20, 0x326d6: 0x6da09020, 0x326d7: 0x6da09220, + 0x326d8: 0x6de07420, 0x326d9: 0x6de07620, 0x326da: 0x6c03aa20, 0x326db: 0x6c03ac20, + 0x326dc: 0x6c03ae20, 0x326dd: 0x6c03b020, 0x326de: 0x6c03b220, 0x326df: 0x6c03b420, + 0x326e0: 0x6c03b620, 0x326e1: 0x6c072020, 0x326e2: 0x6c072220, 0x326e3: 0x6c072420, + 0x326e4: 0x6c072620, 0x326e5: 0x6c072820, 0x326e6: 0x6c072a20, 0x326e7: 0x6c072c20, + 0x326e8: 0x6c072e20, 0x326e9: 0x6c0e0a20, 0x326ea: 0x6c0e0c20, 0x326eb: 0x6c0e0e20, + 0x326ec: 0x6c0e1020, 0x326ed: 0x6c0e1220, 0x326ee: 0x6c0e1420, 0x326ef: 0x6c0e1620, + 0x326f0: 0x6c0e1820, 0x326f1: 0x6c191020, 0x326f2: 0x6c191220, 0x326f3: 0x6c191420, + 0x326f4: 0x6c191620, 0x326f5: 0x6c191820, 0x326f6: 0x6c191a20, 0x326f7: 0x6c191c20, + 0x326f8: 0x6c191e20, 0x326f9: 0x6c2c4620, 0x326fa: 0x6c2c4820, 0x326fb: 0x6c2c4a20, + 0x326fc: 0x6c2c4c20, 0x326fd: 0x6c2c4e20, 0x326fe: 0x6c2c5020, 0x326ff: 0x6c464c20, + // Block 0xc9c, offset 0x32700 + 0x32700: 0x6c464e20, 0x32701: 0x6c465020, 0x32702: 0x6c465220, 0x32703: 0x6c465420, + 0x32704: 0x6c465620, 0x32705: 0x6c465820, 0x32706: 0x6c465a20, 0x32707: 0x6c465c20, + 0x32708: 0x6c465e20, 0x32709: 0x6c45e220, 0x3270a: 0x6c678020, 0x3270b: 0x6c678220, + 0x3270c: 0x6c678420, 0x3270d: 0x6c678620, 0x3270e: 0x6c678820, 0x3270f: 0x6c678a20, + 0x32710: 0x6c678c20, 0x32711: 0x6c678e20, 0x32712: 0x6c679020, 0x32713: 0x6c679220, + 0x32714: 0x6c679420, 0x32715: 0x6c8df020, 0x32716: 0x6c8df220, 0x32717: 0x6c8df420, + 0x32718: 0x6c8df620, 0x32719: 0x6c8df820, 0x3271a: 0x6c8dfa20, 0x3271b: 0x6c8dfc20, + 0x3271c: 0x6c8dfe20, 0x3271d: 0x6c8e0020, 0x3271e: 0x6c8e0220, 0x3271f: 0x6c8e0420, + 0x32720: 0x6c8e0620, 0x32721: 0x6c8e0820, 0x32722: 0x6c8e0a20, 0x32723: 0x6c8e0c20, + 0x32724: 0x6c8e0e20, 0x32725: 0x6cba4420, 0x32726: 0x6cba4620, 0x32727: 0x6cba4820, + 0x32728: 0x6cba4a20, 0x32729: 0x6cba4c20, 0x3272a: 0x6cba4e20, 0x3272b: 0x6cba5020, + 0x3272c: 0x6cba5220, 0x3272d: 0x6cba5420, 0x3272e: 0x6cba5620, 0x3272f: 0x6ceb3620, + 0x32730: 0x6ceb3820, 0x32731: 0x6ceb3a20, 0x32732: 0x6ceb3c20, 0x32733: 0x6ceb3e20, + 0x32734: 0x6ceb4020, 0x32735: 0x6ceb4220, 0x32736: 0x6cee5e20, 0x32737: 0x6ceb4420, + 0x32738: 0x6ceb4620, 0x32739: 0x6ceb4820, 0x3273a: 0x6ceb4a20, 0x3273b: 0x6d19d820, + 0x3273c: 0x6d1b2220, 0x3273d: 0x6d1b2420, 0x3273e: 0x6d1b2620, 0x3273f: 0x6d1b2820, + // Block 0xc9d, offset 0x32740 + 0x32740: 0x6d1b2a20, 0x32741: 0x6d1b2c20, 0x32742: 0x6d1b2e20, 0x32743: 0x6d494420, + 0x32744: 0x6d494620, 0x32745: 0x6d494820, 0x32746: 0x6d494a20, 0x32747: 0x6d76fe20, + 0x32748: 0x6d770020, 0x32749: 0x6d770220, 0x3274a: 0x6d770420, 0x3274b: 0x6d770620, + 0x3274c: 0x6d770820, 0x3274d: 0x6da09420, 0x3274e: 0x6da09620, 0x3274f: 0x6da09820, + 0x32750: 0x6dc2f820, 0x32751: 0x6de07a20, 0x32752: 0x6de07c20, 0x32753: 0x6e0c8c20, + 0x32754: 0x6e0c8e20, 0x32755: 0x6e1c2c20, 0x32756: 0x6e287020, 0x32757: 0x6e319a20, + 0x32758: 0x6e319c20, 0x32759: 0x6c03bc20, 0x3275a: 0x6c03be20, 0x3275b: 0x6c03c020, + 0x3275c: 0x6c03c220, 0x3275d: 0x6c03c420, 0x3275e: 0x6c03c620, 0x3275f: 0x6c076e20, + 0x32760: 0x6c077020, 0x32761: 0x6c077220, 0x32762: 0x6c077420, 0x32763: 0x6c077620, + 0x32764: 0x6c077820, 0x32765: 0x6c077a20, 0x32766: 0x6c077c20, 0x32767: 0x6c077e20, + 0x32768: 0x6c078020, 0x32769: 0x6c078220, 0x3276a: 0x6c078420, 0x3276b: 0x6c0e5420, + 0x3276c: 0x6c0e5620, 0x3276d: 0x6c0e5820, 0x3276e: 0x6c0e5a20, 0x3276f: 0x6c0e5c20, + 0x32770: 0x6c0e5e20, 0x32771: 0x6c0e6020, 0x32772: 0x6c0e6220, 0x32773: 0x6c0e6420, + 0x32774: 0x6c0e6620, 0x32775: 0x6c0e6820, 0x32776: 0x6c0e6a20, 0x32777: 0x6c0e6c20, + 0x32778: 0x6c0e6e20, 0x32779: 0x6c0e7020, 0x3277a: 0x6c0e7220, 0x3277b: 0x6c0e7420, + 0x3277c: 0x6c0e7620, 0x3277d: 0x6c0e7820, 0x3277e: 0x6c0e7a20, 0x3277f: 0x6c0e7c20, + // Block 0xc9e, offset 0x32780 + 0x32780: 0x6c0e7e20, 0x32781: 0x6c0e8020, 0x32782: 0x6c0e8220, 0x32783: 0x6c0e8420, + 0x32784: 0x6c0e8620, 0x32785: 0x6c0e8820, 0x32786: 0x6c0e8a20, 0x32787: 0x6c0e8c20, + 0x32788: 0x6c0e8e20, 0x32789: 0x6c0e9020, 0x3278a: 0x6c0e9220, 0x3278b: 0x6c19ca20, + 0x3278c: 0x6c19cc20, 0x3278d: 0x6c19ce20, 0x3278e: 0x6c19d020, 0x3278f: 0x6c19d220, + 0x32790: 0x6c19d420, 0x32791: 0x6c19d620, 0x32792: 0x6c19d820, 0x32793: 0x6c19da20, + 0x32794: 0x6c19dc20, 0x32795: 0x6c19de20, 0x32796: 0x6c19e020, 0x32797: 0x6c19e220, + 0x32798: 0x6c19e420, 0x32799: 0x6c19e620, 0x3279a: 0x6c19e820, 0x3279b: 0x6c19ea20, + 0x3279c: 0x6c19ec20, 0x3279d: 0x6c19ee20, 0x3279e: 0x6c19f020, 0x3279f: 0x6c19f220, + 0x327a0: 0x6c19f420, 0x327a1: 0x6c19f620, 0x327a2: 0x6c19f820, 0x327a3: 0x6c19fa20, + 0x327a4: 0x6c19fc20, 0x327a5: 0x6c19fe20, 0x327a6: 0x6c1a0020, 0x327a7: 0x6c1a0220, + 0x327a8: 0x6c1a0420, 0x327a9: 0x6c1a0620, 0x327aa: 0x6c1a0820, 0x327ab: 0x6c1a0a20, + 0x327ac: 0x6c1a0c20, 0x327ad: 0x6c1a0e20, 0x327ae: 0x6c1a1020, 0x327af: 0x6c1a1220, + 0x327b0: 0x6c1a1420, 0x327b1: 0x6c1a1620, 0x327b2: 0x6c1a1820, 0x327b3: 0x6c1a1a20, + 0x327b4: 0x6c1a1c20, 0x327b5: 0x6c1a1e20, 0x327b6: 0x6c1a2020, 0x327b7: 0x6c1a2220, + 0x327b8: 0x6c1a2420, 0x327b9: 0x6c1a2620, 0x327ba: 0x6c1a2820, 0x327bb: 0x6c1a2a20, + 0x327bc: 0x6c1a2c20, 0x327bd: 0x6c1a2e20, 0x327be: 0x6c1a3020, 0x327bf: 0x6c1a3220, + // Block 0xc9f, offset 0x327c0 + 0x327c0: 0x6c1a3420, 0x327c1: 0x6c1a3620, 0x327c2: 0x6c1a3820, 0x327c3: 0x6c1a3a20, + 0x327c4: 0x6c1a3c20, 0x327c5: 0x6c1a3e20, 0x327c6: 0x6c1a4020, 0x327c7: 0x6c1a4220, + 0x327c8: 0x6c2ce620, 0x327c9: 0x6c2ce820, 0x327ca: 0x6c2cea20, 0x327cb: 0x6c2cec20, + 0x327cc: 0x6c2cee20, 0x327cd: 0x6c2cf020, 0x327ce: 0x6c2cf220, 0x327cf: 0x6c2cf420, + 0x327d0: 0x6c2cf620, 0x327d1: 0x6c2cf820, 0x327d2: 0x6c2cfa20, 0x327d3: 0x6c2cfc20, + 0x327d4: 0x6c2cfe20, 0x327d5: 0x6c2d0020, 0x327d6: 0x6c2d0220, 0x327d7: 0x6c2d0420, + 0x327d8: 0x6c2d0620, 0x327d9: 0x6c2d0820, 0x327da: 0x6c2d0a20, 0x327db: 0x6c2d0c20, + 0x327dc: 0x6c2d0e20, 0x327dd: 0x6c2d1020, 0x327de: 0x6c2d1220, 0x327df: 0x6c2d1420, + 0x327e0: 0x6c2d1620, 0x327e1: 0x6c2d1820, 0x327e2: 0x6c2d1a20, 0x327e3: 0x6c2d1c20, + 0x327e4: 0x6c2d1e20, 0x327e5: 0x6c2d2020, 0x327e6: 0x6c2d2220, 0x327e7: 0x6c2d2420, + 0x327e8: 0x6c2d2620, 0x327e9: 0x6c2d2820, 0x327ea: 0x6c2d2a20, 0x327eb: 0x6c2d2c20, + 0x327ec: 0x6c2d2e20, 0x327ed: 0x6c2d3020, 0x327ee: 0x6c2d3220, 0x327ef: 0x6c2d3420, + 0x327f0: 0x6c2d3620, 0x327f1: 0x6c2d3820, 0x327f2: 0x6c2d3a20, 0x327f3: 0x6c2d3c20, + 0x327f4: 0x6c2d3e20, 0x327f5: 0x6c2d4020, 0x327f6: 0x6c2d4220, 0x327f7: 0x6c2d4420, + 0x327f8: 0x6c2d4620, 0x327f9: 0x6c2d4820, 0x327fa: 0x6c2d4a20, 0x327fb: 0x6c2d4c20, + 0x327fc: 0x6c2d4e20, 0x327fd: 0x6c2d5020, 0x327fe: 0x6c2d5220, 0x327ff: 0x6c2d5420, + // Block 0xca0, offset 0x32800 + 0x32800: 0x6c2d5620, 0x32801: 0x6c2d5820, 0x32802: 0x6c2d5a20, 0x32803: 0x6c2d5c20, + 0x32804: 0x6c2d5e20, 0x32805: 0x6c2d6020, 0x32806: 0x6c2d6220, 0x32807: 0x6c2d6420, + 0x32808: 0x6c2d6620, 0x32809: 0x6c2d6820, 0x3280a: 0x6c2d6a20, 0x3280b: 0x6c2d6c20, + 0x3280c: 0x6c2d6e20, 0x3280d: 0x6c2d7020, 0x3280e: 0x6c2d7220, 0x3280f: 0x6c2d7420, + 0x32810: 0x6c470e20, 0x32811: 0x6c471020, 0x32812: 0x6c471220, 0x32813: 0x6c471420, + 0x32814: 0x6c471620, 0x32815: 0x6c471820, 0x32816: 0x6c471a20, 0x32817: 0x6c471c20, + 0x32818: 0x6c471e20, 0x32819: 0x6c472020, 0x3281a: 0x6c472220, 0x3281b: 0x6c472420, + 0x3281c: 0x6c472620, 0x3281d: 0x6c472820, 0x3281e: 0x6c472a20, 0x3281f: 0x6c472c20, + 0x32820: 0x6c472e20, 0x32821: 0x6c473020, 0x32822: 0x6c473220, 0x32823: 0x6c473420, + 0x32824: 0x6c473620, 0x32825: 0x6c473820, 0x32826: 0x6c473a20, 0x32827: 0x6c473c20, + 0x32828: 0x6c473e20, 0x32829: 0x6c474020, 0x3282a: 0x6c474220, 0x3282b: 0x6c474420, + 0x3282c: 0x6c474620, 0x3282d: 0x6c474820, 0x3282e: 0x6c474a20, 0x3282f: 0x6c474c20, + 0x32830: 0x6c474e20, 0x32831: 0x6c475020, 0x32832: 0x6c475220, 0x32833: 0x6c475420, + 0x32834: 0x6c475620, 0x32835: 0x6c475820, 0x32836: 0x6c475a20, 0x32837: 0x6c475c20, + 0x32838: 0x6c475e20, 0x32839: 0x6c476020, 0x3283a: 0x6c476220, 0x3283b: 0x6c476420, + 0x3283c: 0x6c476620, 0x3283d: 0x6c476820, 0x3283e: 0x6c476a20, 0x3283f: 0x6c476c20, + // Block 0xca1, offset 0x32840 + 0x32840: 0x6c476e20, 0x32841: 0x6c477020, 0x32842: 0x6c477220, 0x32843: 0x6c477420, + 0x32844: 0x6c477620, 0x32845: 0x6c477820, 0x32846: 0x6c477a20, 0x32847: 0x6c477c20, + 0x32848: 0x6c477e20, 0x32849: 0x6c478020, 0x3284a: 0x6c478220, 0x3284b: 0x6c478420, + 0x3284c: 0x6c478620, 0x3284d: 0x6c478820, 0x3284e: 0x6c478a20, 0x3284f: 0x6c478c20, + 0x32850: 0x6c478e20, 0x32851: 0x6c479020, 0x32852: 0x6c479220, 0x32853: 0x6c479420, + 0x32854: 0x6c479620, 0x32855: 0x6c479820, 0x32856: 0x6c479a20, 0x32857: 0x6c479c20, + 0x32858: 0x6c479e20, 0x32859: 0x6c47a020, 0x3285a: 0x6c47a220, 0x3285b: 0x6c47a420, + 0x3285c: 0x6c47a620, 0x3285d: 0x6c47a820, 0x3285e: 0x6c47aa20, 0x3285f: 0x6c47ac20, + 0x32860: 0x6c47ae20, 0x32861: 0x6c47b020, 0x32862: 0x6c47b220, 0x32863: 0x6c47b420, + 0x32864: 0x6c47b620, 0x32865: 0x6c47b820, 0x32866: 0x6c47ba20, 0x32867: 0x6c47bc20, + 0x32868: 0x6c47be20, 0x32869: 0x6c47c020, 0x3286a: 0x6c47c220, 0x3286b: 0x6c47c420, + 0x3286c: 0x6c684820, 0x3286d: 0x6c684a20, 0x3286e: 0x6c684c20, 0x3286f: 0x6c684e20, + 0x32870: 0x6c685020, 0x32871: 0x6c685220, 0x32872: 0x6c685420, 0x32873: 0x6c685620, + 0x32874: 0x6c685820, 0x32875: 0x6c685a20, 0x32876: 0x6c685c20, 0x32877: 0x6c685e20, + 0x32878: 0x6c686020, 0x32879: 0x6c686220, 0x3287a: 0x6c686420, 0x3287b: 0x6c686620, + 0x3287c: 0x6c686820, 0x3287d: 0x6c686a20, 0x3287e: 0x6c686c20, 0x3287f: 0x6c686e20, + // Block 0xca2, offset 0x32880 + 0x32880: 0x6c687020, 0x32881: 0x6c687220, 0x32882: 0x6c687420, 0x32883: 0x6c687620, + 0x32884: 0x6c687820, 0x32885: 0x6c687a20, 0x32886: 0x6c687c20, 0x32887: 0x6c687e20, + 0x32888: 0x6c688020, 0x32889: 0x6c688220, 0x3288a: 0x6c688420, 0x3288b: 0x6c688620, + 0x3288c: 0x6c688820, 0x3288d: 0x6c688a20, 0x3288e: 0x6c688c20, 0x3288f: 0x6c688e20, + 0x32890: 0x6c689020, 0x32891: 0x6c689220, 0x32892: 0x6c689420, 0x32893: 0x6c689620, + 0x32894: 0x6c689820, 0x32895: 0x6c689a20, 0x32896: 0x6c689c20, 0x32897: 0x6c689e20, + 0x32898: 0x6c68a020, 0x32899: 0x6c68a220, 0x3289a: 0x6c68a420, 0x3289b: 0x6c68a620, + 0x3289c: 0x6c68a820, 0x3289d: 0x6c68aa20, 0x3289e: 0x6c68ac20, 0x3289f: 0x6c68ae20, + 0x328a0: 0x6c68b020, 0x328a1: 0x6c68b220, 0x328a2: 0x6c68b420, 0x328a3: 0x6c68b620, + 0x328a4: 0x6c68b820, 0x328a5: 0x6c8ede20, 0x328a6: 0x6c68ba20, 0x328a7: 0x6c68bc20, + 0x328a8: 0x6c68be20, 0x328a9: 0x6c68c020, 0x328aa: 0x6c68c220, 0x328ab: 0x6c7ab620, + 0x328ac: 0x6c68c420, 0x328ad: 0x6c68c620, 0x328ae: 0x6c68c820, 0x328af: 0x6c68ca20, + 0x328b0: 0x6c68cc20, 0x328b1: 0x6c68ce20, 0x328b2: 0x6c68d020, 0x328b3: 0x6c68d220, + 0x328b4: 0x6c68d420, 0x328b5: 0x6c68d620, 0x328b6: 0x6c68d820, 0x328b7: 0x6c68da20, + 0x328b8: 0x6c68dc20, 0x328b9: 0x6c68de20, 0x328ba: 0x6c68e020, 0x328bb: 0x6c68e220, + 0x328bc: 0x6c68e420, 0x328bd: 0x6c68e620, 0x328be: 0x6c68e820, 0x328bf: 0x6c68ea20, + // Block 0xca3, offset 0x328c0 + 0x328c0: 0x6c68ec20, 0x328c1: 0x6c68ee20, 0x328c2: 0x6c68f020, 0x328c3: 0x6c68f220, + 0x328c4: 0x6c68f420, 0x328c5: 0x6c68f620, 0x328c6: 0x6c68f820, 0x328c7: 0x6c68fa20, + 0x328c8: 0x6c68fc20, 0x328c9: 0x6c68fe20, 0x328ca: 0x6c690020, 0x328cb: 0x6c690220, + 0x328cc: 0x6c690420, 0x328cd: 0x6c690620, 0x328ce: 0x6c690820, 0x328cf: 0x6c690a20, + 0x328d0: 0x6c690c20, 0x328d1: 0x6c690e20, 0x328d2: 0x6c691020, 0x328d3: 0x6c691220, + 0x328d4: 0x6c691420, 0x328d5: 0x6c691620, 0x328d6: 0x6c691820, 0x328d7: 0x6c691a20, + 0x328d8: 0x6c691c20, 0x328d9: 0x6c691e20, 0x328da: 0x6c692020, 0x328db: 0x6c692220, + 0x328dc: 0x6c692420, 0x328dd: 0x6c692620, 0x328de: 0x6c692820, 0x328df: 0x6c692a20, + 0x328e0: 0x6c692c20, 0x328e1: 0x6c692e20, 0x328e2: 0x6c693020, 0x328e3: 0x6c693220, + 0x328e4: 0x6c693420, 0x328e5: 0x6c693620, 0x328e6: 0x6c7a1a20, 0x328e7: 0x6c8ee020, + 0x328e8: 0x6c8ee220, 0x328e9: 0x6c8ee420, 0x328ea: 0x6c8ee620, 0x328eb: 0x6c8ee820, + 0x328ec: 0x6c8eea20, 0x328ed: 0x6c8eec20, 0x328ee: 0x6c8eee20, 0x328ef: 0x6c8ef020, + 0x328f0: 0x6c8ef220, 0x328f1: 0x6c8ef420, 0x328f2: 0x6c8ef620, 0x328f3: 0x6c8ef820, + 0x328f4: 0x6c8efa20, 0x328f5: 0x6c8efc20, 0x328f6: 0x6c8efe20, 0x328f7: 0x6c8f0020, + 0x328f8: 0x6c8f0220, 0x328f9: 0x6c8f0420, 0x328fa: 0x6c8f0620, 0x328fb: 0x6c8f0820, + 0x328fc: 0x6c8f0a20, 0x328fd: 0x6c8f0c20, 0x328fe: 0x6c8f0e20, 0x328ff: 0x6c8f1020, + // Block 0xca4, offset 0x32900 + 0x32900: 0x6c8f1220, 0x32901: 0x6c8f1420, 0x32902: 0x6c8f1620, 0x32903: 0x6c8f1820, + 0x32904: 0x6c8f1a20, 0x32905: 0x6c8f1c20, 0x32906: 0x6c8f1e20, 0x32907: 0x6c8f2020, + 0x32908: 0x6c8f2220, 0x32909: 0x6c8f2420, 0x3290a: 0x6c8f2620, 0x3290b: 0x6c8f2820, + 0x3290c: 0x6c8f2a20, 0x3290d: 0x6c8f2c20, 0x3290e: 0x6c8f2e20, 0x3290f: 0x6c8f3020, + 0x32910: 0x6c8f3220, 0x32911: 0x6c8f3420, 0x32912: 0x6c8f3620, 0x32913: 0x6c8f3820, + 0x32914: 0x6c8f3a20, 0x32915: 0x6c8f3c20, 0x32916: 0x6c8f3e20, 0x32917: 0x6c8f4020, + 0x32918: 0x6c8f4220, 0x32919: 0x6c8f4420, 0x3291a: 0x6c8f4620, 0x3291b: 0x6c8f4820, + 0x3291c: 0x6c8f4a20, 0x3291d: 0x6c8f4c20, 0x3291e: 0x6c8f4e20, 0x3291f: 0x6c8f5020, + 0x32920: 0x6c8f5220, 0x32921: 0x6c8f5420, 0x32922: 0x6c8f5620, 0x32923: 0x6c8f5820, + 0x32924: 0x6c8f5a20, 0x32925: 0x6c8f5c20, 0x32926: 0x6c8f5e20, 0x32927: 0x6c8f6020, + 0x32928: 0x6c8f6220, 0x32929: 0x6c8f6420, 0x3292a: 0x6c8f6620, 0x3292b: 0x6c8f6820, + 0x3292c: 0x6c8f6a20, 0x3292d: 0x6c8f6c20, 0x3292e: 0x6c8f6e20, 0x3292f: 0x6c8f7020, + 0x32930: 0x6c8f7220, 0x32931: 0x6c8f7420, 0x32932: 0x6c8f7620, 0x32933: 0x6c8f7820, + 0x32934: 0x6c8f7a20, 0x32935: 0x6c8f7c20, 0x32936: 0x6c8f7e20, 0x32937: 0x6c8f8020, + 0x32938: 0x6c8f8220, 0x32939: 0x6c8f8420, 0x3293a: 0x6c8f8620, 0x3293b: 0x6c8f8820, + 0x3293c: 0x6c8f8a20, 0x3293d: 0x6c8f8c20, 0x3293e: 0x6c8f8e20, 0x3293f: 0x6c8f9020, + // Block 0xca5, offset 0x32940 + 0x32940: 0x6c8f9220, 0x32941: 0x6c8f9420, 0x32942: 0x6c8f9620, 0x32943: 0x6c8f9820, + 0x32944: 0x6c8f9a20, 0x32945: 0x6c8f9c20, 0x32946: 0x6c8f9e20, 0x32947: 0x6c8fa020, + 0x32948: 0x6c8fa220, 0x32949: 0x6c8fa420, 0x3294a: 0x6c8fa620, 0x3294b: 0x6c8fa820, + 0x3294c: 0x6c8faa20, 0x3294d: 0x6c8fac20, 0x3294e: 0x6c8fae20, 0x3294f: 0x6c8fb020, + 0x32950: 0x6c8fb220, 0x32951: 0x6c8fb420, 0x32952: 0x6c8fb620, 0x32953: 0x6c8fb820, + 0x32954: 0x6c8fba20, 0x32955: 0x6c8fbc20, 0x32956: 0x6c8fbe20, 0x32957: 0x6c8fc020, + 0x32958: 0x6c8fc220, 0x32959: 0x6c8fc420, 0x3295a: 0x6c8fc620, 0x3295b: 0x6c8fc820, + 0x3295c: 0x6c8fca20, 0x3295d: 0x6c8fcc20, 0x3295e: 0x6c8fce20, 0x3295f: 0x6c8fd020, + 0x32960: 0x6c8fd220, 0x32961: 0x6c8fd420, 0x32962: 0x6c8fd620, 0x32963: 0x6c8fd820, + 0x32964: 0x6c8fda20, 0x32965: 0x6c8fdc20, 0x32966: 0x6c8fde20, 0x32967: 0x6c8fe020, + 0x32968: 0x6c8fe220, 0x32969: 0x6c8fe420, 0x3296a: 0x6c8fe620, 0x3296b: 0x6c8fe820, + 0x3296c: 0x6c8fea20, 0x3296d: 0x6c8fec20, 0x3296e: 0x6c8fee20, 0x3296f: 0x6c8ff020, + 0x32970: 0x6c8ff220, 0x32971: 0x6c8ff420, 0x32972: 0x6c8ff620, 0x32973: 0x6c8ff820, + 0x32974: 0x6c8ffa20, 0x32975: 0x6c8ffc20, 0x32976: 0x6c8ffe20, 0x32977: 0x6cbb1e20, + 0x32978: 0x6cbb2020, 0x32979: 0x6cbb2220, 0x3297a: 0x6cbb2420, 0x3297b: 0x6cbb2620, + 0x3297c: 0x6cbb2820, 0x3297d: 0x6cbb2a20, 0x3297e: 0x6cbb2c20, 0x3297f: 0x6cbb2e20, + // Block 0xca6, offset 0x32980 + 0x32980: 0x6cbb3020, 0x32981: 0x6cbb3220, 0x32982: 0x6cbb3420, 0x32983: 0x6cbb3620, + 0x32984: 0x6cbb3820, 0x32985: 0x6cbb3a20, 0x32986: 0x6cbb3c20, 0x32987: 0x6cbb3e20, + 0x32988: 0x6cbb4020, 0x32989: 0x6cbb4220, 0x3298a: 0x6cbb4420, 0x3298b: 0x6cbb4620, + 0x3298c: 0x6cbb4820, 0x3298d: 0x6cbb4a20, 0x3298e: 0x6cbb4c20, 0x3298f: 0x6cbb4e20, + 0x32990: 0x6cbb5020, 0x32991: 0x6cbb5220, 0x32992: 0x6cbb5420, 0x32993: 0x6cbb5620, + 0x32994: 0x6cbb5820, 0x32995: 0x6cbb5a20, 0x32996: 0x6cbb5c20, 0x32997: 0x6cbb5e20, + 0x32998: 0x6cbb6020, 0x32999: 0x6cbb6220, 0x3299a: 0x6cbb6420, 0x3299b: 0x6cbb6620, + 0x3299c: 0x6cbb6820, 0x3299d: 0x6cbb6a20, 0x3299e: 0x6cbb6c20, 0x3299f: 0x6cbb6e20, + 0x329a0: 0x6cbb7020, 0x329a1: 0x6cbb7220, 0x329a2: 0x6cebdc20, 0x329a3: 0x6cbb7420, + 0x329a4: 0x6cbb7620, 0x329a5: 0x6cbb7820, 0x329a6: 0x6cbb7a20, 0x329a7: 0x6cbb7c20, + 0x329a8: 0x6cbb7e20, 0x329a9: 0x6cbb8020, 0x329aa: 0x6cbb8220, 0x329ab: 0x6cbb8420, + 0x329ac: 0x6cbb8620, 0x329ad: 0x6cbb8820, 0x329ae: 0x6cbb8a20, 0x329af: 0x6cbb8c20, + 0x329b0: 0x6cbb8e20, 0x329b1: 0x6cbb9020, 0x329b2: 0x6cbb9220, 0x329b3: 0x6cbb9420, + 0x329b4: 0x6cbb9620, 0x329b5: 0x6cbb9820, 0x329b6: 0x6cbb9a20, 0x329b7: 0x6cbb9c20, + 0x329b8: 0x6cbb9e20, 0x329b9: 0x6cbba020, 0x329ba: 0x6cbba220, 0x329bb: 0x6cbba420, + 0x329bc: 0x6cbba620, 0x329bd: 0x6cbba820, 0x329be: 0x6cbbaa20, 0x329bf: 0x6cbbac20, + // Block 0xca7, offset 0x329c0 + 0x329c0: 0x6cbbae20, 0x329c1: 0x6cbbb020, 0x329c2: 0x6cbbb220, 0x329c3: 0x6cbbb420, + 0x329c4: 0x6cbbb620, 0x329c5: 0x6cbbb820, 0x329c6: 0x6cbbba20, 0x329c7: 0x6cbbbc20, + 0x329c8: 0x6cbbbe20, 0x329c9: 0x6cbbc020, 0x329ca: 0x6cbbc220, 0x329cb: 0x6cbbc420, + 0x329cc: 0x6cbbc620, 0x329cd: 0x6cbbc820, 0x329ce: 0x6cbbca20, 0x329cf: 0x6cbbcc20, + 0x329d0: 0x6cbbce20, 0x329d1: 0x6cbbd020, 0x329d2: 0x6cbbd220, 0x329d3: 0x6cbbd420, + 0x329d4: 0x6cbbd620, 0x329d5: 0x6cbbd820, 0x329d6: 0x6cbbda20, 0x329d7: 0x6cbbdc20, + 0x329d8: 0x6cbbde20, 0x329d9: 0x6cbbe020, 0x329da: 0x6cbbe220, 0x329db: 0x6cbbe420, + 0x329dc: 0x6cbbe620, 0x329dd: 0x6cbbe820, 0x329de: 0x6cbbea20, 0x329df: 0x6cbbec20, + 0x329e0: 0x6cbbee20, 0x329e1: 0x6cbbf020, 0x329e2: 0x6cbbf220, 0x329e3: 0x6cbbf420, + 0x329e4: 0x6cbbf620, 0x329e5: 0x6cbbf820, 0x329e6: 0x6cbbfa20, 0x329e7: 0x6cbbfc20, + 0x329e8: 0x6cbbfe20, 0x329e9: 0x6cbc0020, 0x329ea: 0x6cbc0220, 0x329eb: 0x6cbc0420, + 0x329ec: 0x6cbc0620, 0x329ed: 0x6cbc0820, 0x329ee: 0x6cbc0a20, 0x329ef: 0x6cbc0c20, + 0x329f0: 0x6cbc0e20, 0x329f1: 0x6cbc1020, 0x329f2: 0x6cbc1220, 0x329f3: 0x6cbc1420, + 0x329f4: 0x6cbc1620, 0x329f5: 0x6cbc1820, 0x329f6: 0x6cebde20, 0x329f7: 0x6cebe020, + 0x329f8: 0x6cebe220, 0x329f9: 0x6cebe420, 0x329fa: 0x6cebe620, 0x329fb: 0x6cbc1a20, + 0x329fc: 0x6cbc1c20, 0x329fd: 0x6cbc1e20, 0x329fe: 0x6cbc2020, 0x329ff: 0x6cebe820, + // Block 0xca8, offset 0x32a00 + 0x32a00: 0x6cebea20, 0x32a01: 0x6cebec20, 0x32a02: 0x6cebee20, 0x32a03: 0x6cebf020, + 0x32a04: 0x6cebf220, 0x32a05: 0x6cebf420, 0x32a06: 0x6cebf620, 0x32a07: 0x6cebf820, + 0x32a08: 0x6cebfa20, 0x32a09: 0x6cebfc20, 0x32a0a: 0x6cebfe20, 0x32a0b: 0x6cec0020, + 0x32a0c: 0x6cec0220, 0x32a0d: 0x6cec0420, 0x32a0e: 0x6cec0620, 0x32a0f: 0x6cec0820, + 0x32a10: 0x6cec0a20, 0x32a11: 0x6cec0c20, 0x32a12: 0x6cec0e20, 0x32a13: 0x6cec1020, + 0x32a14: 0x6cec1220, 0x32a15: 0x6cec1420, 0x32a16: 0x6cec1620, 0x32a17: 0x6cec1820, + 0x32a18: 0x6cec1a20, 0x32a19: 0x6cec1c20, 0x32a1a: 0x6cec1e20, 0x32a1b: 0x6cec2020, + 0x32a1c: 0x6cec2220, 0x32a1d: 0x6cec2420, 0x32a1e: 0x6cec2620, 0x32a1f: 0x6cec2820, + 0x32a20: 0x6cec2a20, 0x32a21: 0x6cec2c20, 0x32a22: 0x6cec2e20, 0x32a23: 0x6cec3020, + 0x32a24: 0x6cec3220, 0x32a25: 0x6cec3420, 0x32a26: 0x6cec3620, 0x32a27: 0x6cec3820, + 0x32a28: 0x6cec3a20, 0x32a29: 0x6cec3c20, 0x32a2a: 0x6cec3e20, 0x32a2b: 0x6cec4020, + 0x32a2c: 0x6cec4220, 0x32a2d: 0x6cec4420, 0x32a2e: 0x6cec4620, 0x32a2f: 0x6cec4820, + 0x32a30: 0x6d49ce20, 0x32a31: 0x6d49d020, 0x32a32: 0x6d49d220, 0x32a33: 0x6cec4a20, + 0x32a34: 0x6cec4c20, 0x32a35: 0x6cec4e20, 0x32a36: 0x6cec5020, 0x32a37: 0x6cec5220, + 0x32a38: 0x6cec5420, 0x32a39: 0x6cec5620, 0x32a3a: 0x6cec5820, 0x32a3b: 0x6cec5a20, + 0x32a3c: 0x6cec5c20, 0x32a3d: 0x6cec5e20, 0x32a3e: 0x6cec6020, 0x32a3f: 0x6cec6220, + // Block 0xca9, offset 0x32a40 + 0x32a40: 0x6cec6420, 0x32a41: 0x6cec6620, 0x32a42: 0x6cec6820, 0x32a43: 0x6cec6a20, + 0x32a44: 0x6cec6c20, 0x32a45: 0x6cec6e20, 0x32a46: 0x6cec7020, 0x32a47: 0x6cec7220, + 0x32a48: 0x6cec7420, 0x32a49: 0x6cec7620, 0x32a4a: 0x6cec7820, 0x32a4b: 0x6cec7a20, + 0x32a4c: 0x6cec7c20, 0x32a4d: 0x6cec7e20, 0x32a4e: 0x6cec8020, 0x32a4f: 0x6cec8220, + 0x32a50: 0x6cec8420, 0x32a51: 0x6cec8620, 0x32a52: 0x6cec8820, 0x32a53: 0x6cec8a20, + 0x32a54: 0x6cec8c20, 0x32a55: 0x6cec8e20, 0x32a56: 0x6cec9020, 0x32a57: 0x6cec9220, + 0x32a58: 0x6cec9420, 0x32a59: 0x6cec9620, 0x32a5a: 0x6cec9820, 0x32a5b: 0x6cec9a20, + 0x32a5c: 0x6cec9c20, 0x32a5d: 0x6cec9e20, 0x32a5e: 0x6ceca020, 0x32a5f: 0x6ceca220, + 0x32a60: 0x6ceca420, 0x32a61: 0x6ceca620, 0x32a62: 0x6ceca820, 0x32a63: 0x6cecaa20, + 0x32a64: 0x6cecac20, 0x32a65: 0x6cecae20, 0x32a66: 0x6cecb020, 0x32a67: 0x6cecb220, + 0x32a68: 0x6cecb420, 0x32a69: 0x6cecb620, 0x32a6a: 0x6cecb820, 0x32a6b: 0x6cecba20, + 0x32a6c: 0x6cecbc20, 0x32a6d: 0x6cecbe20, 0x32a6e: 0x6cecc020, 0x32a6f: 0x6cecc220, + 0x32a70: 0x6cecc420, 0x32a71: 0x6cecc620, 0x32a72: 0x6cecc820, 0x32a73: 0x6cecca20, + 0x32a74: 0x6ceccc20, 0x32a75: 0x6cecce20, 0x32a76: 0x6cecd020, 0x32a77: 0x6cecd220, + 0x32a78: 0x6cecd420, 0x32a79: 0x6cecd620, 0x32a7a: 0x6cecd820, 0x32a7b: 0x6cecda20, + 0x32a7c: 0x6cecdc20, 0x32a7d: 0x6cecde20, 0x32a7e: 0x6cece020, 0x32a7f: 0x6cece220, + // Block 0xcaa, offset 0x32a80 + 0x32a80: 0x6cece420, 0x32a81: 0x6cece620, 0x32a82: 0x6cece820, 0x32a83: 0x6cecea20, + 0x32a84: 0x6cecec20, 0x32a85: 0x6cecee20, 0x32a86: 0x6cecf020, 0x32a87: 0x6cecf220, + 0x32a88: 0x6cecf420, 0x32a89: 0x6cecf620, 0x32a8a: 0x6cecf820, 0x32a8b: 0x6cecfa20, + 0x32a8c: 0x6cecfc20, 0x32a8d: 0x6cecfe20, 0x32a8e: 0x6ced0020, 0x32a8f: 0x6ced0220, + 0x32a90: 0x6ced0420, 0x32a91: 0x6ced0620, 0x32a92: 0x6ced0820, 0x32a93: 0x6ced0a20, + 0x32a94: 0x6d1bb620, 0x32a95: 0x6d1bb820, 0x32a96: 0x6d1bba20, 0x32a97: 0x6d1bbc20, + 0x32a98: 0x6d1bbe20, 0x32a99: 0x6d1bc020, 0x32a9a: 0x6d1bc220, 0x32a9b: 0x6d1bc420, + 0x32a9c: 0x6d1bc620, 0x32a9d: 0x6d1bc820, 0x32a9e: 0x6d1bca20, 0x32a9f: 0x6d1bcc20, + 0x32aa0: 0x6d1bce20, 0x32aa1: 0x6d1bd020, 0x32aa2: 0x6d1bd220, 0x32aa3: 0x6d1bd420, + 0x32aa4: 0x6d1bd620, 0x32aa5: 0x6d1bd820, 0x32aa6: 0x6d1bda20, 0x32aa7: 0x6d1bdc20, + 0x32aa8: 0x6d1bde20, 0x32aa9: 0x6d1be020, 0x32aaa: 0x6d1be220, 0x32aab: 0x6d1be420, + 0x32aac: 0x6d1be620, 0x32aad: 0x6d1be820, 0x32aae: 0x6d1bea20, 0x32aaf: 0x6d1bec20, + 0x32ab0: 0x6d1bee20, 0x32ab1: 0x6d1bf020, 0x32ab2: 0x6d1bf220, 0x32ab3: 0x6d1bf420, + 0x32ab4: 0x6d1bf620, 0x32ab5: 0x6d1bf820, 0x32ab6: 0x6d1bfa20, 0x32ab7: 0x6d1bfc20, + 0x32ab8: 0x6d1bfe20, 0x32ab9: 0x6d1c0020, 0x32aba: 0x6d1c0220, 0x32abb: 0x6d1c0420, + 0x32abc: 0x6d1c0620, 0x32abd: 0x6d1c0820, 0x32abe: 0x6d1c0a20, 0x32abf: 0x6d1c0c20, + // Block 0xcab, offset 0x32ac0 + 0x32ac0: 0x6d1c0e20, 0x32ac1: 0x6d1c1020, 0x32ac2: 0x6d1c1220, 0x32ac3: 0x6d1c1420, + 0x32ac4: 0x6d1c1620, 0x32ac5: 0x6d1c1820, 0x32ac6: 0x6d1c1a20, 0x32ac7: 0x6d1c1c20, + 0x32ac8: 0x6d1c1e20, 0x32ac9: 0x6d1c2020, 0x32aca: 0x6d1c2220, 0x32acb: 0x6d1c2420, + 0x32acc: 0x6d1c2620, 0x32acd: 0x6d1c2820, 0x32ace: 0x6d1c2a20, 0x32acf: 0x6d1c2c20, + 0x32ad0: 0x6d1c2e20, 0x32ad1: 0x6d1c3020, 0x32ad2: 0x6d1c3220, 0x32ad3: 0x6d1c3420, + 0x32ad4: 0x6d1c3620, 0x32ad5: 0x6d1c3820, 0x32ad6: 0x6d1c3a20, 0x32ad7: 0x6d1c3c20, + 0x32ad8: 0x6d1c3e20, 0x32ad9: 0x6d1c4020, 0x32ada: 0x6d1c4220, 0x32adb: 0x6d1c4420, + 0x32adc: 0x6d1c4620, 0x32add: 0x6d1c4820, 0x32ade: 0x6d1c4a20, 0x32adf: 0x6d1c4c20, + 0x32ae0: 0x6d1c4e20, 0x32ae1: 0x6d1c5020, 0x32ae2: 0x6d1c5220, 0x32ae3: 0x6d1c5420, + 0x32ae4: 0x6d1c5620, 0x32ae5: 0x6d1c5820, 0x32ae6: 0x6d1c5a20, 0x32ae7: 0x6d1c5c20, + 0x32ae8: 0x6d1c5e20, 0x32ae9: 0x6d1c6020, 0x32aea: 0x6d1c6220, 0x32aeb: 0x6d1c6420, + 0x32aec: 0x6d1c6620, 0x32aed: 0x6d1c6820, 0x32aee: 0x6d1c6a20, 0x32aef: 0x6d1c6c20, + 0x32af0: 0x6d1c6e20, 0x32af1: 0x6d1c7020, 0x32af2: 0x6d1c7220, 0x32af3: 0x6d1c7420, + 0x32af4: 0x6d1c7620, 0x32af5: 0x6d1c7820, 0x32af6: 0x6d1c7a20, 0x32af7: 0x6d1c7c20, + 0x32af8: 0x6d1c7e20, 0x32af9: 0x6d1c8020, 0x32afa: 0x6d1c8220, 0x32afb: 0x6d1c8420, + 0x32afc: 0x6d1c8620, 0x32afd: 0x6d1c8820, 0x32afe: 0x6d1c8a20, 0x32aff: 0x6d1c8c20, + // Block 0xcac, offset 0x32b00 + 0x32b00: 0x6d1c8e20, 0x32b01: 0x6d1c9020, 0x32b02: 0x6d1c9220, 0x32b03: 0x6d1c9420, + 0x32b04: 0x6d1c9620, 0x32b05: 0x6d1c9820, 0x32b06: 0x6d1c9a20, 0x32b07: 0x6d1c9c20, + 0x32b08: 0x6d1c9e20, 0x32b09: 0x6d1ca020, 0x32b0a: 0x6d1ca220, 0x32b0b: 0x6d1ca420, + 0x32b0c: 0x6d1ca620, 0x32b0d: 0x6d1ca820, 0x32b0e: 0x6d1caa20, 0x32b0f: 0x6d1cac20, + 0x32b10: 0x6d1cae20, 0x32b11: 0x6d1cb020, 0x32b12: 0x6d1cb220, 0x32b13: 0x6d1cb420, + 0x32b14: 0x6d1cb620, 0x32b15: 0x6d1cb820, 0x32b16: 0x6d1cba20, 0x32b17: 0x6d1cbc20, + 0x32b18: 0x6d1cbe20, 0x32b19: 0x6d1cc020, 0x32b1a: 0x6d1cc220, 0x32b1b: 0x6d1cc420, + 0x32b1c: 0x6d1cc620, 0x32b1d: 0x6d1cc820, 0x32b1e: 0x6d1cca20, 0x32b1f: 0x6d1ccc20, + 0x32b20: 0x6d1cce20, 0x32b21: 0x6d49d420, 0x32b22: 0x6d49d620, 0x32b23: 0x6d49d820, + 0x32b24: 0x6d49da20, 0x32b25: 0x6d49dc20, 0x32b26: 0x6d49de20, 0x32b27: 0x6d49e020, + 0x32b28: 0x6d49e220, 0x32b29: 0x6d49e420, 0x32b2a: 0x6d49e620, 0x32b2b: 0x6d49e820, + 0x32b2c: 0x6d49ea20, 0x32b2d: 0x6d49ec20, 0x32b2e: 0x6d49ee20, 0x32b2f: 0x6d49f020, + 0x32b30: 0x6d49f220, 0x32b31: 0x6d49f420, 0x32b32: 0x6d49f620, 0x32b33: 0x6d49f820, + 0x32b34: 0x6d49fa20, 0x32b35: 0x6d49fc20, 0x32b36: 0x6d49fe20, 0x32b37: 0x6d4a0020, + 0x32b38: 0x6d4a0220, 0x32b39: 0x6d4a0420, 0x32b3a: 0x6d4a0620, 0x32b3b: 0x6d4a0820, + 0x32b3c: 0x6d4a0a20, 0x32b3d: 0x6d4a0c20, 0x32b3e: 0x6d4a0e20, 0x32b3f: 0x6d4a1020, + // Block 0xcad, offset 0x32b40 + 0x32b40: 0x6d4a1220, 0x32b41: 0x6d4a1420, 0x32b42: 0x6d4a1620, 0x32b43: 0x6d4a1820, + 0x32b44: 0x6d4a1a20, 0x32b45: 0x6d4a1c20, 0x32b46: 0x6d4a1e20, 0x32b47: 0x6d4a2020, + 0x32b48: 0x6d4a2220, 0x32b49: 0x6d4a2420, 0x32b4a: 0x6d4a2620, 0x32b4b: 0x6d4a2820, + 0x32b4c: 0x6d4a2a20, 0x32b4d: 0x6d4a2c20, 0x32b4e: 0x6d4a2e20, 0x32b4f: 0x6d4a3020, + 0x32b50: 0x6d4a3220, 0x32b51: 0x6d4a3420, 0x32b52: 0x6d4a3620, 0x32b53: 0x6d4a3820, + 0x32b54: 0x6d4a3a20, 0x32b55: 0x6d4a3c20, 0x32b56: 0x6d4a3e20, 0x32b57: 0x6d4a4020, + 0x32b58: 0x6d4a4220, 0x32b59: 0x6d4a4420, 0x32b5a: 0x6d4a4620, 0x32b5b: 0x6d4a4820, + 0x32b5c: 0x6d4a4a20, 0x32b5d: 0x6d4a4c20, 0x32b5e: 0x6d4a4e20, 0x32b5f: 0x6d4a5020, + 0x32b60: 0x6d4a5220, 0x32b61: 0x6d4a5420, 0x32b62: 0x6d4a5620, 0x32b63: 0x6d4a5820, + 0x32b64: 0x6d4a5a20, 0x32b65: 0x6d4a5c20, 0x32b66: 0x6d4a5e20, 0x32b67: 0x6d311620, + 0x32b68: 0x6d4a6020, 0x32b69: 0x6d4a6220, 0x32b6a: 0x6d4a6420, 0x32b6b: 0x6d4a6620, + 0x32b6c: 0x6d4a6820, 0x32b6d: 0x6d4a6a20, 0x32b6e: 0x6d4a6c20, 0x32b6f: 0x6d4a6e20, + 0x32b70: 0x6d4a7020, 0x32b71: 0x6d4a7220, 0x32b72: 0x6d4a7420, 0x32b73: 0x6d4a7620, + 0x32b74: 0x6d4a7820, 0x32b75: 0x6d4a7a20, 0x32b76: 0x6d4a7c20, 0x32b77: 0x6d4a7e20, + 0x32b78: 0x6d4a8020, 0x32b79: 0x6d4a8220, 0x32b7a: 0x6d4a8420, 0x32b7b: 0x6d4a8620, + 0x32b7c: 0x6d4a8820, 0x32b7d: 0x6d4a8a20, 0x32b7e: 0x6d4a8c20, 0x32b7f: 0x6d4a8e20, + // Block 0xcae, offset 0x32b80 + 0x32b80: 0x6d4a9020, 0x32b81: 0x6d4a9220, 0x32b82: 0x6d4a9420, 0x32b83: 0x6d4a9620, + 0x32b84: 0x6d4a9820, 0x32b85: 0x6d4a9a20, 0x32b86: 0x6d4a9c20, 0x32b87: 0x6d775e20, + 0x32b88: 0x6d776020, 0x32b89: 0x6d776220, 0x32b8a: 0x6d776420, 0x32b8b: 0x6d776620, + 0x32b8c: 0x6d776820, 0x32b8d: 0x6d776a20, 0x32b8e: 0x6d776c20, 0x32b8f: 0x6d776e20, + 0x32b90: 0x6d777020, 0x32b91: 0x6d777220, 0x32b92: 0x6d777420, 0x32b93: 0x6d777620, + 0x32b94: 0x6d777820, 0x32b95: 0x6d777a20, 0x32b96: 0x6d777c20, 0x32b97: 0x6d777e20, + 0x32b98: 0x6d778020, 0x32b99: 0x6d778220, 0x32b9a: 0x6d778420, 0x32b9b: 0x6d778620, + 0x32b9c: 0x6d778820, 0x32b9d: 0x6d778a20, 0x32b9e: 0x6d778c20, 0x32b9f: 0x6d778e20, + 0x32ba0: 0x6d779020, 0x32ba1: 0x6d779220, 0x32ba2: 0x6d779420, 0x32ba3: 0x6d779620, + 0x32ba4: 0x6d779820, 0x32ba5: 0x6d779a20, 0x32ba6: 0x6d779c20, 0x32ba7: 0x6d779e20, + 0x32ba8: 0x6d77a020, 0x32ba9: 0x6d77a220, 0x32baa: 0x6d77a420, 0x32bab: 0x6d77a620, + 0x32bac: 0x6d77a820, 0x32bad: 0x6d77aa20, 0x32bae: 0x6d77ac20, 0x32baf: 0x6d77ae20, + 0x32bb0: 0x6d77b020, 0x32bb1: 0x6d77b220, 0x32bb2: 0x6d77b420, 0x32bb3: 0x6d77b620, + 0x32bb4: 0x6d77b820, 0x32bb5: 0x6d77ba20, 0x32bb6: 0x6d77bc20, 0x32bb7: 0x6d77be20, + 0x32bb8: 0x6d77c020, 0x32bb9: 0x6d77c220, 0x32bba: 0x6d77c420, 0x32bbb: 0x6d77c620, + 0x32bbc: 0x6d77c820, 0x32bbd: 0x6d77ca20, 0x32bbe: 0x6d77cc20, 0x32bbf: 0x6d77ce20, + // Block 0xcaf, offset 0x32bc0 + 0x32bc0: 0x6d77d020, 0x32bc1: 0x6d77d220, 0x32bc2: 0x6d77d420, 0x32bc3: 0x6d77d620, + 0x32bc4: 0x6d77d820, 0x32bc5: 0x6d77da20, 0x32bc6: 0x6d77dc20, 0x32bc7: 0x6d77de20, + 0x32bc8: 0x6d77e020, 0x32bc9: 0x6d77e220, 0x32bca: 0x6d77e420, 0x32bcb: 0x6d77e620, + 0x32bcc: 0x6d77e820, 0x32bcd: 0x6d77ea20, 0x32bce: 0x6d77ec20, 0x32bcf: 0x6d77ee20, + 0x32bd0: 0x6d77f020, 0x32bd1: 0x6d77f220, 0x32bd2: 0x6d77f420, 0x32bd3: 0x6d77f620, + 0x32bd4: 0x6d4a9e20, 0x32bd5: 0x6d77f820, 0x32bd6: 0x6d77fa20, 0x32bd7: 0x6d77fc20, + 0x32bd8: 0x6d77fe20, 0x32bd9: 0x6d780020, 0x32bda: 0x6d780220, 0x32bdb: 0x6d780420, + 0x32bdc: 0x6d780620, 0x32bdd: 0x6d780820, 0x32bde: 0x6d780a20, 0x32bdf: 0x6d780c20, + 0x32be0: 0x6d780e20, 0x32be1: 0x6d781020, 0x32be2: 0x6d781220, 0x32be3: 0x6d781420, + 0x32be4: 0x6d781620, 0x32be5: 0x6d781820, 0x32be6: 0x6d4aa020, 0x32be7: 0x6d781a20, + 0x32be8: 0x6d781c20, 0x32be9: 0x6d781e20, 0x32bea: 0x6d782020, 0x32beb: 0x6d782220, + 0x32bec: 0x6d782420, 0x32bed: 0x6d782620, 0x32bee: 0x6d782820, 0x32bef: 0x6d782a20, + 0x32bf0: 0x6d782c20, 0x32bf1: 0x6d782e20, 0x32bf2: 0x6d783020, 0x32bf3: 0x6d783220, + 0x32bf4: 0x6d783420, 0x32bf5: 0x6d783620, 0x32bf6: 0x6d783820, 0x32bf7: 0x6d783a20, + 0x32bf8: 0x6d783c20, 0x32bf9: 0x6d783e20, 0x32bfa: 0x6d784020, 0x32bfb: 0x6d784220, + 0x32bfc: 0x6d784420, 0x32bfd: 0x6da0d020, 0x32bfe: 0x6da0d220, 0x32bff: 0x6da0d420, + // Block 0xcb0, offset 0x32c00 + 0x32c00: 0x6da0d620, 0x32c01: 0x6da0d820, 0x32c02: 0x6da0da20, 0x32c03: 0x6da0dc20, + 0x32c04: 0x6da0de20, 0x32c05: 0x6da0e020, 0x32c06: 0x6da0e220, 0x32c07: 0x6da0e420, + 0x32c08: 0x6da0e620, 0x32c09: 0x6da0e820, 0x32c0a: 0x6da0ea20, 0x32c0b: 0x6da0ec20, + 0x32c0c: 0x6da0ee20, 0x32c0d: 0x6da0f020, 0x32c0e: 0x6da0f220, 0x32c0f: 0x6da0f420, + 0x32c10: 0x6da0f620, 0x32c11: 0x6da0f820, 0x32c12: 0x6da0fa20, 0x32c13: 0x6da0fc20, + 0x32c14: 0x6da0fe20, 0x32c15: 0x6da10020, 0x32c16: 0x6da10220, 0x32c17: 0x6da10420, + 0x32c18: 0x6da10620, 0x32c19: 0x6da10820, 0x32c1a: 0x6da10a20, 0x32c1b: 0x6da10c20, + 0x32c1c: 0x6da10e20, 0x32c1d: 0x6da11020, 0x32c1e: 0x6da11220, 0x32c1f: 0x6da11420, + 0x32c20: 0x6da11620, 0x32c21: 0x6da11820, 0x32c22: 0x6da11a20, 0x32c23: 0x6da11c20, + 0x32c24: 0x6da11e20, 0x32c25: 0x6da12020, 0x32c26: 0x6da12220, 0x32c27: 0x6da12420, + 0x32c28: 0x6da12620, 0x32c29: 0x6da12820, 0x32c2a: 0x6da12a20, 0x32c2b: 0x6da12c20, + 0x32c2c: 0x6da12e20, 0x32c2d: 0x6da13020, 0x32c2e: 0x6da13220, 0x32c2f: 0x6da13420, + 0x32c30: 0x6da13620, 0x32c31: 0x6da13820, 0x32c32: 0x6da13a20, 0x32c33: 0x6da13c20, + 0x32c34: 0x6da13e20, 0x32c35: 0x6da14020, 0x32c36: 0x6da14220, 0x32c37: 0x6da14420, + 0x32c38: 0x6da14620, 0x32c39: 0x6da14820, 0x32c3a: 0x6da14a20, 0x32c3b: 0x6da14c20, + 0x32c3c: 0x6da14e20, 0x32c3d: 0x6da15020, 0x32c3e: 0x6da15220, 0x32c3f: 0x6da15420, + // Block 0xcb1, offset 0x32c40 + 0x32c40: 0x6da15620, 0x32c41: 0x6da15820, 0x32c42: 0x6da15a20, 0x32c43: 0x6da15c20, + 0x32c44: 0x6da15e20, 0x32c45: 0x6da16020, 0x32c46: 0x6da16220, 0x32c47: 0x6da16420, + 0x32c48: 0x6da16620, 0x32c49: 0x6da16820, 0x32c4a: 0x6da16a20, 0x32c4b: 0x6da16c20, + 0x32c4c: 0x6da16e20, 0x32c4d: 0x6da17020, 0x32c4e: 0x6da17220, 0x32c4f: 0x6dc32a20, + 0x32c50: 0x6dc32c20, 0x32c51: 0x6dc32e20, 0x32c52: 0x6dc33020, 0x32c53: 0x6dc33220, + 0x32c54: 0x6dc33420, 0x32c55: 0x6dc33620, 0x32c56: 0x6dc33820, 0x32c57: 0x6dc33a20, + 0x32c58: 0x6dc33c20, 0x32c59: 0x6dc33e20, 0x32c5a: 0x6dc34020, 0x32c5b: 0x6dc34220, + 0x32c5c: 0x6dc34420, 0x32c5d: 0x6dc34620, 0x32c5e: 0x6dc34820, 0x32c5f: 0x6dc34a20, + 0x32c60: 0x6dc34c20, 0x32c61: 0x6dc34e20, 0x32c62: 0x6dc35020, 0x32c63: 0x6dc35220, + 0x32c64: 0x6dc35420, 0x32c65: 0x6dc35620, 0x32c66: 0x6dc35820, 0x32c67: 0x6dc35a20, + 0x32c68: 0x6dc35c20, 0x32c69: 0x6dc35e20, 0x32c6a: 0x6dc36020, 0x32c6b: 0x6dc36220, + 0x32c6c: 0x6dc36420, 0x32c6d: 0x6dc36620, 0x32c6e: 0x6dc36820, 0x32c6f: 0x6dc36a20, + 0x32c70: 0x6dc36c20, 0x32c71: 0x6dc36e20, 0x32c72: 0x6dc37020, 0x32c73: 0x6dc37220, + 0x32c74: 0x6dc37420, 0x32c75: 0x6dc37620, 0x32c76: 0x6dc37820, 0x32c77: 0x6dc37a20, + 0x32c78: 0x6dc37c20, 0x32c79: 0x6dc37e20, 0x32c7a: 0x6dc38020, 0x32c7b: 0x6dc38220, + 0x32c7c: 0x6dc38420, 0x32c7d: 0x6dc38620, 0x32c7e: 0x6dc38820, 0x32c7f: 0x6dc38a20, + // Block 0xcb2, offset 0x32c80 + 0x32c80: 0x6dc38c20, 0x32c81: 0x6dc38e20, 0x32c82: 0x6dc39020, 0x32c83: 0x6dc39220, + 0x32c84: 0x6dc39420, 0x32c85: 0x6dc39620, 0x32c86: 0x6dc39820, 0x32c87: 0x6dc39a20, + 0x32c88: 0x6dc39c20, 0x32c89: 0x6dc39e20, 0x32c8a: 0x6dc3a020, 0x32c8b: 0x6dc3a220, + 0x32c8c: 0x6dc3a420, 0x32c8d: 0x6dc3a620, 0x32c8e: 0x6dc3a820, 0x32c8f: 0x6dc3aa20, + 0x32c90: 0x6dc3ac20, 0x32c91: 0x6dc3ae20, 0x32c92: 0x6dc3b020, 0x32c93: 0x6dc3b220, + 0x32c94: 0x6dc3b420, 0x32c95: 0x6dc3b620, 0x32c96: 0x6dc3b820, 0x32c97: 0x6dc3ba20, + 0x32c98: 0x6dc3bc20, 0x32c99: 0x6dc3be20, 0x32c9a: 0x6dc3c020, 0x32c9b: 0x6dc3c220, + 0x32c9c: 0x6dc3c420, 0x32c9d: 0x6dc3c620, 0x32c9e: 0x6dc3c820, 0x32c9f: 0x6dc3ca20, + 0x32ca0: 0x6de09a20, 0x32ca1: 0x6de09c20, 0x32ca2: 0x6de09e20, 0x32ca3: 0x6de0a020, + 0x32ca4: 0x6de0a220, 0x32ca5: 0x6de0a420, 0x32ca6: 0x6de0a620, 0x32ca7: 0x6de0a820, + 0x32ca8: 0x6de0aa20, 0x32ca9: 0x6de0ac20, 0x32caa: 0x6de0ae20, 0x32cab: 0x6de0b020, + 0x32cac: 0x6de0b220, 0x32cad: 0x6de0b420, 0x32cae: 0x6de0b620, 0x32caf: 0x6de0b820, + 0x32cb0: 0x6dc3cc20, 0x32cb1: 0x6de0ba20, 0x32cb2: 0x6de0bc20, 0x32cb3: 0x6de0be20, + 0x32cb4: 0x6de0c020, 0x32cb5: 0x6de0c220, 0x32cb6: 0x6de0c420, 0x32cb7: 0x6de0c620, + 0x32cb8: 0x6de0c820, 0x32cb9: 0x6de0ca20, 0x32cba: 0x6de0cc20, 0x32cbb: 0x6de0ce20, + 0x32cbc: 0x6de0d020, 0x32cbd: 0x6de0d220, 0x32cbe: 0x6de0d420, 0x32cbf: 0x6de0d620, + // Block 0xcb3, offset 0x32cc0 + 0x32cc0: 0x6de0d820, 0x32cc1: 0x6de0da20, 0x32cc2: 0x6de0dc20, 0x32cc3: 0x6de0de20, + 0x32cc4: 0x6de0e020, 0x32cc5: 0x6de0e220, 0x32cc6: 0x6de0e420, 0x32cc7: 0x6de0e620, + 0x32cc8: 0x6de0e820, 0x32cc9: 0x6de5dc20, 0x32cca: 0x6de0ea20, 0x32ccb: 0x6de0ec20, + 0x32ccc: 0x6de0ee20, 0x32ccd: 0x6de0f020, 0x32cce: 0x6de0f220, 0x32ccf: 0x6de0f420, + 0x32cd0: 0x6de0f620, 0x32cd1: 0x6df8e220, 0x32cd2: 0x6df8e420, 0x32cd3: 0x6df8e620, + 0x32cd4: 0x6df8e820, 0x32cd5: 0x6df8ea20, 0x32cd6: 0x6df8ec20, 0x32cd7: 0x6df8ee20, + 0x32cd8: 0x6df8f020, 0x32cd9: 0x6df8f220, 0x32cda: 0x6df8f420, 0x32cdb: 0x6df8f620, + 0x32cdc: 0x6df8f820, 0x32cdd: 0x6df8fa20, 0x32cde: 0x6df8fc20, 0x32cdf: 0x6df8fe20, + 0x32ce0: 0x6df90020, 0x32ce1: 0x6df90220, 0x32ce2: 0x6df90420, 0x32ce3: 0x6df90620, + 0x32ce4: 0x6df90820, 0x32ce5: 0x6df90a20, 0x32ce6: 0x6df90c20, 0x32ce7: 0x6df90e20, + 0x32ce8: 0x6df91020, 0x32ce9: 0x6df91220, 0x32cea: 0x6df91420, 0x32ceb: 0x6df91620, + 0x32cec: 0x6df91820, 0x32ced: 0x6df91a20, 0x32cee: 0x6df91c20, 0x32cef: 0x6df91e20, + 0x32cf0: 0x6df92020, 0x32cf1: 0x6e0cac20, 0x32cf2: 0x6e0cae20, 0x32cf3: 0x6e0cb020, + 0x32cf4: 0x6e0cb220, 0x32cf5: 0x6e0cb420, 0x32cf6: 0x6e0cb620, 0x32cf7: 0x6e0cb820, + 0x32cf8: 0x6e0cba20, 0x32cf9: 0x6e0cbc20, 0x32cfa: 0x6e0cbe20, 0x32cfb: 0x6e0cc020, + 0x32cfc: 0x6e0cc220, 0x32cfd: 0x6e0cc420, 0x32cfe: 0x6e0cc620, 0x32cff: 0x6e0cc820, + // Block 0xcb4, offset 0x32d00 + 0x32d00: 0x6e0cca20, 0x32d01: 0x6e0ccc20, 0x32d02: 0x6e0cce20, 0x32d03: 0x6e0cd020, + 0x32d04: 0x6e0cd220, 0x32d05: 0x6e0cd420, 0x32d06: 0x6e0cd620, 0x32d07: 0x6e0cd820, + 0x32d08: 0x6e0cda20, 0x32d09: 0x6e0cdc20, 0x32d0a: 0x6e0cde20, 0x32d0b: 0x6e0ce020, + 0x32d0c: 0x6e0ce220, 0x32d0d: 0x6e0ce420, 0x32d0e: 0x6e0ce620, 0x32d0f: 0x6e0ce820, + 0x32d10: 0x6e0cea20, 0x32d11: 0x6e0cec20, 0x32d12: 0x6e0cee20, 0x32d13: 0x6e0cf020, + 0x32d14: 0x6e0cf220, 0x32d15: 0x6e0d1c20, 0x32d16: 0x6e121420, 0x32d17: 0x6e1c4020, + 0x32d18: 0x6e1c4220, 0x32d19: 0x6e1c4420, 0x32d1a: 0x6e1c4620, 0x32d1b: 0x6e1c4820, + 0x32d1c: 0x6e1c4a20, 0x32d1d: 0x6e1c4c20, 0x32d1e: 0x6e1c4e20, 0x32d1f: 0x6e1c5020, + 0x32d20: 0x6e1c5220, 0x32d21: 0x6e1c5420, 0x32d22: 0x6e1c5620, 0x32d23: 0x6e0cf420, + 0x32d24: 0x6e1c5820, 0x32d25: 0x6e1c5a20, 0x32d26: 0x6e1c5c20, 0x32d27: 0x6e1c5e20, + 0x32d28: 0x6e1c6020, 0x32d29: 0x6e1c6220, 0x32d2a: 0x6e1c6420, 0x32d2b: 0x6e1c6620, + 0x32d2c: 0x6e1c6820, 0x32d2d: 0x6e1c6a20, 0x32d2e: 0x6e1c6c20, 0x32d2f: 0x6e1c6e20, + 0x32d30: 0x6e287c20, 0x32d31: 0x6e287e20, 0x32d32: 0x6e288020, 0x32d33: 0x6e288220, + 0x32d34: 0x6e288420, 0x32d35: 0x6e288620, 0x32d36: 0x6e288820, 0x32d37: 0x6e288a20, + 0x32d38: 0x6e288c20, 0x32d39: 0x6e31a420, 0x32d3a: 0x6e31a620, 0x32d3b: 0x6e31a820, + 0x32d3c: 0x6e31aa20, 0x32d3d: 0x6e31ac20, 0x32d3e: 0x6e31ae20, 0x32d3f: 0x6e31b020, + // Block 0xcb5, offset 0x32d40 + 0x32d40: 0x6e31b220, 0x32d41: 0x6e31b420, 0x32d42: 0x6e31b620, 0x32d43: 0x6e31b820, + 0x32d44: 0x6e31ba20, 0x32d45: 0x6e31bc20, 0x32d46: 0x6e384c20, 0x32d47: 0x6e384e20, + 0x32d48: 0x6e385020, 0x32d49: 0x6e385220, 0x32d4a: 0x6e385420, 0x32d4b: 0x6e385620, + 0x32d4c: 0x6e385820, 0x32d4d: 0x6e385a20, 0x32d4e: 0x6e385c20, 0x32d4f: 0x6e3cfa20, + 0x32d50: 0x6e3cfc20, 0x32d51: 0x6e3cfe20, 0x32d52: 0x6e3d0020, 0x32d53: 0x6e3d0220, + 0x32d54: 0x6e3d0420, 0x32d55: 0x6e3d0620, 0x32d56: 0x6e3d0820, 0x32d57: 0x6e3d0a20, + 0x32d58: 0x6e3d0c20, 0x32d59: 0x6e400a20, 0x32d5a: 0x6e400c20, 0x32d5b: 0x6e428620, + 0x32d5c: 0x6e428820, 0x32d5d: 0x6e428a20, 0x32d5e: 0x6e400e20, 0x32d5f: 0x6e45bc20, + 0x32d60: 0x6c03c820, 0x32d61: 0x6c03ca20, 0x32d62: 0x6c03cc20, 0x32d63: 0x6c079820, + 0x32d64: 0x6c079a20, 0x32d65: 0x6c079c20, 0x32d66: 0x6c079e20, 0x32d67: 0x6c0ea620, + 0x32d68: 0x6c0ea820, 0x32d69: 0x6c0eaa20, 0x32d6a: 0x6c0eac20, 0x32d6b: 0x6c0eae20, + 0x32d6c: 0x6c0eb020, 0x32d6d: 0x6c0eb220, 0x32d6e: 0x6c0eb420, 0x32d6f: 0x6c0eb620, + 0x32d70: 0x6c0eb820, 0x32d71: 0x6c0eba20, 0x32d72: 0x6c0ebc20, 0x32d73: 0x6c0ebe20, + 0x32d74: 0x6c1a6e20, 0x32d75: 0x6c1a7020, 0x32d76: 0x6c1a7220, 0x32d77: 0x6c1a7420, + 0x32d78: 0x6c1a7620, 0x32d79: 0x6c1a7820, 0x32d7a: 0x6c1a7a20, 0x32d7b: 0x6c1a7c20, + 0x32d7c: 0x6c1a7e20, 0x32d7d: 0x6c1a8020, 0x32d7e: 0x6c1a8220, 0x32d7f: 0x6c1a8420, + // Block 0xcb6, offset 0x32d80 + 0x32d80: 0x6c1a8620, 0x32d81: 0x6c1a8820, 0x32d82: 0x6c1a8a20, 0x32d83: 0x6c1a8c20, + 0x32d84: 0x6c1a8e20, 0x32d85: 0x6c1a9020, 0x32d86: 0x6c1a9220, 0x32d87: 0x6c1a9420, + 0x32d88: 0x6c2d9620, 0x32d89: 0x6c2d9820, 0x32d8a: 0x6c2d9a20, 0x32d8b: 0x6c2d9c20, + 0x32d8c: 0x6c2d9e20, 0x32d8d: 0x6c3bf620, 0x32d8e: 0x6c2da020, 0x32d8f: 0x6c2da220, + 0x32d90: 0x6c2da420, 0x32d91: 0x6c2da620, 0x32d92: 0x6c47e220, 0x32d93: 0x6c47e420, + 0x32d94: 0x6c47e620, 0x32d95: 0x6c47e820, 0x32d96: 0x6c47ea20, 0x32d97: 0x6c47ec20, + 0x32d98: 0x6c47ee20, 0x32d99: 0x6c47f020, 0x32d9a: 0x6c47f220, 0x32d9b: 0x6c47f420, + 0x32d9c: 0x6c47f620, 0x32d9d: 0x6c47f820, 0x32d9e: 0x6c47fa20, 0x32d9f: 0x6c47fc20, + 0x32da0: 0x6c695c20, 0x32da1: 0x6c695e20, 0x32da2: 0x6c696020, 0x32da3: 0x6c696220, + 0x32da4: 0x6c696420, 0x32da5: 0x6c696620, 0x32da6: 0x6c696820, 0x32da7: 0x6c696a20, + 0x32da8: 0x6c696c20, 0x32da9: 0x6c696e20, 0x32daa: 0x6c697020, 0x32dab: 0x6c697220, + 0x32dac: 0x6c697420, 0x32dad: 0x6c697620, 0x32dae: 0x6c697820, 0x32daf: 0x6c697a20, + 0x32db0: 0x6c902820, 0x32db1: 0x6c902a20, 0x32db2: 0x6c902c20, 0x32db3: 0x6c902e20, + 0x32db4: 0x6c903020, 0x32db5: 0x6c903220, 0x32db6: 0x6c903420, 0x32db7: 0x6c903620, + 0x32db8: 0x6c903820, 0x32db9: 0x6c903a20, 0x32dba: 0x6c903c20, 0x32dbb: 0x6c903e20, + 0x32dbc: 0x6cbc4820, 0x32dbd: 0x6cbc4a20, 0x32dbe: 0x6cbc4c20, 0x32dbf: 0x6cbc4e20, + // Block 0xcb7, offset 0x32dc0 + 0x32dc0: 0x6c904020, 0x32dc1: 0x6cbc5020, 0x32dc2: 0x6cbc5220, 0x32dc3: 0x6cbc5420, + 0x32dc4: 0x6cbc5620, 0x32dc5: 0x6cbc5820, 0x32dc6: 0x6cbc5a20, 0x32dc7: 0x6cbc5c20, + 0x32dc8: 0x6cbc5e20, 0x32dc9: 0x6cbc6020, 0x32dca: 0x6ced3220, 0x32dcb: 0x6ced3420, + 0x32dcc: 0x6ced3620, 0x32dcd: 0x6ced3820, 0x32dce: 0x6ced3a20, 0x32dcf: 0x6ced3c20, + 0x32dd0: 0x6ced3e20, 0x32dd1: 0x6ced4020, 0x32dd2: 0x6ced4220, 0x32dd3: 0x6ced4420, + 0x32dd4: 0x6ced4620, 0x32dd5: 0x6d1cfa20, 0x32dd6: 0x6d1cfc20, 0x32dd7: 0x6d1cfe20, + 0x32dd8: 0x6d1d0020, 0x32dd9: 0x6d1d0220, 0x32dda: 0x6d1d0420, 0x32ddb: 0x6d1d0620, + 0x32ddc: 0x6d1d0820, 0x32ddd: 0x6d1d0a20, 0x32dde: 0x6d1d0c20, 0x32ddf: 0x6d1d0e20, + 0x32de0: 0x6d1d1020, 0x32de1: 0x6d1d1220, 0x32de2: 0x6d4ab820, 0x32de3: 0x6d4aba20, + 0x32de4: 0x6d4abc20, 0x32de5: 0x6d785c20, 0x32de6: 0x6d4abe20, 0x32de7: 0x6d4ac020, + 0x32de8: 0x6d4ac220, 0x32de9: 0x6d4ac420, 0x32dea: 0x6d785e20, 0x32deb: 0x6d786020, + 0x32dec: 0x6d786220, 0x32ded: 0x6da17e20, 0x32dee: 0x6da18020, 0x32def: 0x6da18220, + 0x32df0: 0x6da18420, 0x32df1: 0x6da18620, 0x32df2: 0x6dc3de20, 0x32df3: 0x6de0fe20, + 0x32df4: 0x6de10020, 0x32df5: 0x6df92c20, 0x32df6: 0x6df92e20, 0x32df7: 0x6df93020, + 0x32df8: 0x6e0cf620, 0x32df9: 0x6e0cf820, 0x32dfa: 0x6e0cfa20, 0x32dfb: 0x6e3d1020, + 0x32dfc: 0x6c03d420, 0x32dfd: 0x6c03d620, 0x32dfe: 0x6c03d820, 0x32dff: 0x6c07ae20, + // Block 0xcb8, offset 0x32e00 + 0x32e00: 0x6c07b020, 0x32e01: 0x6c07b220, 0x32e02: 0x6c07b420, 0x32e03: 0x6c07b620, + 0x32e04: 0x6c07b820, 0x32e05: 0x6c07ba20, 0x32e06: 0x6c07bc20, 0x32e07: 0x6c07be20, + 0x32e08: 0x6c0ee620, 0x32e09: 0x6c0ee820, 0x32e0a: 0x6c0eea20, 0x32e0b: 0x6c0eec20, + 0x32e0c: 0x6c0eee20, 0x32e0d: 0x6c0ef020, 0x32e0e: 0x6c0ef220, 0x32e0f: 0x6c0ef420, + 0x32e10: 0x6c0ef620, 0x32e11: 0x6c0ef820, 0x32e12: 0x6c0efa20, 0x32e13: 0x6c0efc20, + 0x32e14: 0x6c0efe20, 0x32e15: 0x6c0f0020, 0x32e16: 0x6c0f0220, 0x32e17: 0x6c0fb020, + 0x32e18: 0x6c1af820, 0x32e19: 0x6c1afa20, 0x32e1a: 0x6c1afc20, 0x32e1b: 0x6c1afe20, + 0x32e1c: 0x6c1b0020, 0x32e1d: 0x6c1b0220, 0x32e1e: 0x6c1b0420, 0x32e1f: 0x6c1b0620, + 0x32e20: 0x6c1b0820, 0x32e21: 0x6c1b0a20, 0x32e22: 0x6c1b0c20, 0x32e23: 0x6c1b0e20, + 0x32e24: 0x6c1b1020, 0x32e25: 0x6c1b1220, 0x32e26: 0x6c1b1420, 0x32e27: 0x6c1b1620, + 0x32e28: 0x6c1b1820, 0x32e29: 0x6c1b1a20, 0x32e2a: 0x6c1b1c20, 0x32e2b: 0x6c1b1e20, + 0x32e2c: 0x6c1b2020, 0x32e2d: 0x6c1b2220, 0x32e2e: 0x6c1b2420, 0x32e2f: 0x6c1b2620, + 0x32e30: 0x6c1b2820, 0x32e31: 0x6c1b2a20, 0x32e32: 0x6c1b2c20, 0x32e33: 0x6c1b2e20, + 0x32e34: 0x6c1b3020, 0x32e35: 0x6c1b3220, 0x32e36: 0x6c1b3420, 0x32e37: 0x6c1b3620, + 0x32e38: 0x6c1b3820, 0x32e39: 0x6c1b3a20, 0x32e3a: 0x6c1b3c20, 0x32e3b: 0x6c1b3e20, + 0x32e3c: 0x6c1b4020, 0x32e3d: 0x6c1b4220, 0x32e3e: 0x6c1b4420, 0x32e3f: 0x6c1b4620, + // Block 0xcb9, offset 0x32e40 + 0x32e40: 0x6c1b4820, 0x32e41: 0x6c1b4a20, 0x32e42: 0x6c1b4c20, 0x32e43: 0x6c1b4e20, + 0x32e44: 0x6c2e0820, 0x32e45: 0x6c2e0a20, 0x32e46: 0x6c2e0c20, 0x32e47: 0x6c2e0e20, + 0x32e48: 0x6c2e1020, 0x32e49: 0x6c2e1220, 0x32e4a: 0x6c2e1420, 0x32e4b: 0x6c2e1620, + 0x32e4c: 0x6c2e1820, 0x32e4d: 0x6c2e1a20, 0x32e4e: 0x6c2e1c20, 0x32e4f: 0x6c2e1e20, + 0x32e50: 0x6c2e2020, 0x32e51: 0x6c2e2220, 0x32e52: 0x6c2e2420, 0x32e53: 0x6c2e2620, + 0x32e54: 0x6c2e2820, 0x32e55: 0x6c2e2a20, 0x32e56: 0x6c2e2c20, 0x32e57: 0x6c2e2e20, + 0x32e58: 0x6c2e3020, 0x32e59: 0x6c2e3220, 0x32e5a: 0x6c2e3420, 0x32e5b: 0x6c2e3620, + 0x32e5c: 0x6c2e3820, 0x32e5d: 0x6c2e3a20, 0x32e5e: 0x6c2e3c20, 0x32e5f: 0x6c2e3e20, + 0x32e60: 0x6c2e4020, 0x32e61: 0x6c2e4220, 0x32e62: 0x6c2e4420, 0x32e63: 0x6c2e4620, + 0x32e64: 0x6c2e4820, 0x32e65: 0x6c2e4a20, 0x32e66: 0x6c2e4c20, 0x32e67: 0x6c2e4e20, + 0x32e68: 0x6c2e5020, 0x32e69: 0x6c2e5220, 0x32e6a: 0x6c2e5420, 0x32e6b: 0x6c2e5620, + 0x32e6c: 0x6c2e5820, 0x32e6d: 0x6c2e5a20, 0x32e6e: 0x6c2e5c20, 0x32e6f: 0x6c2e5e20, + 0x32e70: 0x6c2e6020, 0x32e71: 0x6c2e6220, 0x32e72: 0x6c2e6420, 0x32e73: 0x6c2e6620, + 0x32e74: 0x6c2e6820, 0x32e75: 0x6c2e6a20, 0x32e76: 0x6c2e6c20, 0x32e77: 0x6c486a20, + 0x32e78: 0x6c486c20, 0x32e79: 0x6c486e20, 0x32e7a: 0x6c487020, 0x32e7b: 0x6c487220, + 0x32e7c: 0x6c487420, 0x32e7d: 0x6c487620, 0x32e7e: 0x6c487820, 0x32e7f: 0x6c487a20, + // Block 0xcba, offset 0x32e80 + 0x32e80: 0x6c487c20, 0x32e81: 0x6c487e20, 0x32e82: 0x6c488020, 0x32e83: 0x6c488220, + 0x32e84: 0x6c488420, 0x32e85: 0x6c488620, 0x32e86: 0x6c488820, 0x32e87: 0x6c488a20, + 0x32e88: 0x6c488c20, 0x32e89: 0x6c488e20, 0x32e8a: 0x6c489020, 0x32e8b: 0x6c489220, + 0x32e8c: 0x6c489420, 0x32e8d: 0x6c489620, 0x32e8e: 0x6c489820, 0x32e8f: 0x6c489a20, + 0x32e90: 0x6c489c20, 0x32e91: 0x6c489e20, 0x32e92: 0x6c48a020, 0x32e93: 0x6c48a220, + 0x32e94: 0x6c48a420, 0x32e95: 0x6c48a620, 0x32e96: 0x6c48a820, 0x32e97: 0x6c48aa20, + 0x32e98: 0x6c48ac20, 0x32e99: 0x6c48ae20, 0x32e9a: 0x6c48b020, 0x32e9b: 0x6c48b220, + 0x32e9c: 0x6c5dc620, 0x32e9d: 0x6c48b420, 0x32e9e: 0x6c48b620, 0x32e9f: 0x6c48b820, + 0x32ea0: 0x6c48ba20, 0x32ea1: 0x6c48bc20, 0x32ea2: 0x6c48be20, 0x32ea3: 0x6c48c020, + 0x32ea4: 0x6c48c220, 0x32ea5: 0x6c48c420, 0x32ea6: 0x6c48c620, 0x32ea7: 0x6c48c820, + 0x32ea8: 0x6c48ca20, 0x32ea9: 0x6c48cc20, 0x32eaa: 0x6c48ce20, 0x32eab: 0x6c48d020, + 0x32eac: 0x6c48d220, 0x32ead: 0x6c69da20, 0x32eae: 0x6c69dc20, 0x32eaf: 0x6c69de20, + 0x32eb0: 0x6c69e020, 0x32eb1: 0x6c69e220, 0x32eb2: 0x6c69e420, 0x32eb3: 0x6c69e620, + 0x32eb4: 0x6c69e820, 0x32eb5: 0x6c69ea20, 0x32eb6: 0x6c69ec20, 0x32eb7: 0x6c69ee20, + 0x32eb8: 0x6c69f020, 0x32eb9: 0x6c69f220, 0x32eba: 0x6c69f420, 0x32ebb: 0x6c69f620, + 0x32ebc: 0x6c69f820, 0x32ebd: 0x6c69fa20, 0x32ebe: 0x6c69fc20, 0x32ebf: 0x6c69fe20, + // Block 0xcbb, offset 0x32ec0 + 0x32ec0: 0x6c6a0020, 0x32ec1: 0x6c6a0220, 0x32ec2: 0x6c6a0420, 0x32ec3: 0x6c6a0620, + 0x32ec4: 0x6c6a0820, 0x32ec5: 0x6c6a0a20, 0x32ec6: 0x6c6a0c20, 0x32ec7: 0x6c6a0e20, + 0x32ec8: 0x6c6a1020, 0x32ec9: 0x6c6a1220, 0x32eca: 0x6c6a1420, 0x32ecb: 0x6c6a1620, + 0x32ecc: 0x6c6a1820, 0x32ecd: 0x6c6a1a20, 0x32ece: 0x6c6a1c20, 0x32ecf: 0x6c6a1e20, + 0x32ed0: 0x6c6a2020, 0x32ed1: 0x6c6a2220, 0x32ed2: 0x6c6a2420, 0x32ed3: 0x6c6a2620, + 0x32ed4: 0x6c6a2820, 0x32ed5: 0x6c6a2a20, 0x32ed6: 0x6c6a2c20, 0x32ed7: 0x6c6a2e20, + 0x32ed8: 0x6c6a3020, 0x32ed9: 0x6c6a3220, 0x32eda: 0x6c6a3420, 0x32edb: 0x6c6a3620, + 0x32edc: 0x6c6a3820, 0x32edd: 0x6c6a3a20, 0x32ede: 0x6c6a3c20, 0x32edf: 0x6c6a3e20, + 0x32ee0: 0x6c6a4020, 0x32ee1: 0x6c6a4220, 0x32ee2: 0x6c6a4420, 0x32ee3: 0x6c6a4620, + 0x32ee4: 0x6c6a4820, 0x32ee5: 0x6c6a4a20, 0x32ee6: 0x6c90c620, 0x32ee7: 0x6c90c820, + 0x32ee8: 0x6c90ca20, 0x32ee9: 0x6c90cc20, 0x32eea: 0x6c90ce20, 0x32eeb: 0x6c90d020, + 0x32eec: 0x6c90d220, 0x32eed: 0x6c90d420, 0x32eee: 0x6c90d620, 0x32eef: 0x6c90d820, + 0x32ef0: 0x6c90da20, 0x32ef1: 0x6c90dc20, 0x32ef2: 0x6c90de20, 0x32ef3: 0x6c90e020, + 0x32ef4: 0x6c90e220, 0x32ef5: 0x6c90e420, 0x32ef6: 0x6c90e620, 0x32ef7: 0x6c90e820, + 0x32ef8: 0x6c90ea20, 0x32ef9: 0x6c90ec20, 0x32efa: 0x6c90ee20, 0x32efb: 0x6c90f020, + 0x32efc: 0x6c90f220, 0x32efd: 0x6c90f420, 0x32efe: 0x6c90f620, 0x32eff: 0x6c90f820, + // Block 0xcbc, offset 0x32f00 + 0x32f00: 0x6c90fa20, 0x32f01: 0x6c90fc20, 0x32f02: 0x6c90fe20, 0x32f03: 0x6c910020, + 0x32f04: 0x6c910220, 0x32f05: 0x6c910420, 0x32f06: 0x6c910620, 0x32f07: 0x6c910820, + 0x32f08: 0x6c910a20, 0x32f09: 0x6c910c20, 0x32f0a: 0x6c910e20, 0x32f0b: 0x6c911020, + 0x32f0c: 0x6c911220, 0x32f0d: 0x6c911420, 0x32f0e: 0x6c911620, 0x32f0f: 0x6c911820, + 0x32f10: 0x6c911a20, 0x32f11: 0x6c911c20, 0x32f12: 0x6c911e20, 0x32f13: 0x6c912020, + 0x32f14: 0x6c912220, 0x32f15: 0x6c912420, 0x32f16: 0x6c912620, 0x32f17: 0x6c912820, + 0x32f18: 0x6c912a20, 0x32f19: 0x6c912c20, 0x32f1a: 0x6c912e20, 0x32f1b: 0x6c913020, + 0x32f1c: 0x6c913220, 0x32f1d: 0x6c913420, 0x32f1e: 0x6c913620, 0x32f1f: 0x6c913820, + 0x32f20: 0x6c913a20, 0x32f21: 0x6c913c20, 0x32f22: 0x6c913e20, 0x32f23: 0x6c914020, + 0x32f24: 0x6cbcd820, 0x32f25: 0x6cbcda20, 0x32f26: 0x6cbcdc20, 0x32f27: 0x6cbcde20, + 0x32f28: 0x6cbce020, 0x32f29: 0x6cbce220, 0x32f2a: 0x6cbce420, 0x32f2b: 0x6cbce620, + 0x32f2c: 0x6cbce820, 0x32f2d: 0x6cbcea20, 0x32f2e: 0x6cbcec20, 0x32f2f: 0x6cbcee20, + 0x32f30: 0x6cbcf020, 0x32f31: 0x6cbcf220, 0x32f32: 0x6cbcf420, 0x32f33: 0x6cbcf620, + 0x32f34: 0x6cbcf820, 0x32f35: 0x6cbcfa20, 0x32f36: 0x6cbcfc20, 0x32f37: 0x6cbcfe20, + 0x32f38: 0x6cbd0020, 0x32f39: 0x6cbd0220, 0x32f3a: 0x6cbd0420, 0x32f3b: 0x6cbd0620, + 0x32f3c: 0x6cbd0820, 0x32f3d: 0x6cbd0a20, 0x32f3e: 0x6cbd0c20, 0x32f3f: 0x6cbd0e20, + // Block 0xcbd, offset 0x32f40 + 0x32f40: 0x6cbd1020, 0x32f41: 0x6cbd1220, 0x32f42: 0x6cbd1420, 0x32f43: 0x6cbd1620, + 0x32f44: 0x6cbd1820, 0x32f45: 0x6cbd1a20, 0x32f46: 0x6cbd1c20, 0x32f47: 0x6cbd1e20, + 0x32f48: 0x6cbd2020, 0x32f49: 0x6cbd2220, 0x32f4a: 0x6cbd2420, 0x32f4b: 0x6cbd2620, + 0x32f4c: 0x6cbd2820, 0x32f4d: 0x6cbd2a20, 0x32f4e: 0x6cbd2c20, 0x32f4f: 0x6cbd2e20, + 0x32f50: 0x6cbd3020, 0x32f51: 0x6cbd3220, 0x32f52: 0x6cbd3420, 0x32f53: 0x6cbd3620, + 0x32f54: 0x6cbd3820, 0x32f55: 0x6cbd3a20, 0x32f56: 0x6cbd3c20, 0x32f57: 0x6cbd3e20, + 0x32f58: 0x6cbd4020, 0x32f59: 0x6cbd4220, 0x32f5a: 0x6cbd4420, 0x32f5b: 0x6cbd4620, + 0x32f5c: 0x6cbd4820, 0x32f5d: 0x6cbd4a20, 0x32f5e: 0x6cbd4c20, 0x32f5f: 0x6cbd4e20, + 0x32f60: 0x6cbd5020, 0x32f61: 0x6cbd5220, 0x32f62: 0x6cbd5420, 0x32f63: 0x6cbd5620, + 0x32f64: 0x6cbd5820, 0x32f65: 0x6cbd5a20, 0x32f66: 0x6cbd5c20, 0x32f67: 0x6cbd5e20, + 0x32f68: 0x6cbd6020, 0x32f69: 0x6cbd6220, 0x32f6a: 0x6cbd6420, 0x32f6b: 0x6cbd6620, + 0x32f6c: 0x6cbd6820, 0x32f6d: 0x6cbd6a20, 0x32f6e: 0x6cedae20, 0x32f6f: 0x6cedb020, + 0x32f70: 0x6cedb220, 0x32f71: 0x6cedb420, 0x32f72: 0x6cedb620, 0x32f73: 0x6cedb820, + 0x32f74: 0x6cedba20, 0x32f75: 0x6cedbc20, 0x32f76: 0x6cedbe20, 0x32f77: 0x6cedc020, + 0x32f78: 0x6cedc220, 0x32f79: 0x6cedc420, 0x32f7a: 0x6cedc620, 0x32f7b: 0x6cedc820, + 0x32f7c: 0x6cedca20, 0x32f7d: 0x6cedcc20, 0x32f7e: 0x6cedce20, 0x32f7f: 0x6cedd020, + // Block 0xcbe, offset 0x32f80 + 0x32f80: 0x6cedd220, 0x32f81: 0x6cedd420, 0x32f82: 0x6cedd620, 0x32f83: 0x6cedd820, + 0x32f84: 0x6cedda20, 0x32f85: 0x6ceddc20, 0x32f86: 0x6cedde20, 0x32f87: 0x6cede020, + 0x32f88: 0x6cede220, 0x32f89: 0x6cede420, 0x32f8a: 0x6cede620, 0x32f8b: 0x6cede820, + 0x32f8c: 0x6cedea20, 0x32f8d: 0x6cedec20, 0x32f8e: 0x6cedee20, 0x32f8f: 0x6cedf020, + 0x32f90: 0x6cedf220, 0x32f91: 0x6cedf420, 0x32f92: 0x6cedf620, 0x32f93: 0x6cedf820, + 0x32f94: 0x6cedfa20, 0x32f95: 0x6cedfc20, 0x32f96: 0x6cedfe20, 0x32f97: 0x6cee0020, + 0x32f98: 0x6cee0220, 0x32f99: 0x6cee0420, 0x32f9a: 0x6cee0620, 0x32f9b: 0x6cee0820, + 0x32f9c: 0x6cee0a20, 0x32f9d: 0x6cee0c20, 0x32f9e: 0x6cee0e20, 0x32f9f: 0x6cee1020, + 0x32fa0: 0x6cee1220, 0x32fa1: 0x6cee1420, 0x32fa2: 0x6cee1620, 0x32fa3: 0x6cee1820, + 0x32fa4: 0x6cee1a20, 0x32fa5: 0x6cee1c20, 0x32fa6: 0x6cee1e20, 0x32fa7: 0x6cee2020, + 0x32fa8: 0x6cee2220, 0x32fa9: 0x6cee2420, 0x32faa: 0x6cee2620, 0x32fab: 0x6cee2820, + 0x32fac: 0x6cee2a20, 0x32fad: 0x6d1d7620, 0x32fae: 0x6d1d7820, 0x32faf: 0x6d1d7a20, + 0x32fb0: 0x6d1d7c20, 0x32fb1: 0x6d1d7e20, 0x32fb2: 0x6d1d8020, 0x32fb3: 0x6d1d8220, + 0x32fb4: 0x6d1d8420, 0x32fb5: 0x6d1d8620, 0x32fb6: 0x6d1d8820, 0x32fb7: 0x6d1d8a20, + 0x32fb8: 0x6d1d8c20, 0x32fb9: 0x6d1d8e20, 0x32fba: 0x6d1d9020, 0x32fbb: 0x6d1d9220, + 0x32fbc: 0x6d1d9420, 0x32fbd: 0x6d1d9620, 0x32fbe: 0x6d1d9820, 0x32fbf: 0x6d1d9a20, + // Block 0xcbf, offset 0x32fc0 + 0x32fc0: 0x6d1d9c20, 0x32fc1: 0x6d1d9e20, 0x32fc2: 0x6d1da020, 0x32fc3: 0x6d1da220, + 0x32fc4: 0x6d1da420, 0x32fc5: 0x6d1da620, 0x32fc6: 0x6d1da820, 0x32fc7: 0x6d1daa20, + 0x32fc8: 0x6d1dac20, 0x32fc9: 0x6d1dae20, 0x32fca: 0x6d1db020, 0x32fcb: 0x6d1db220, + 0x32fcc: 0x6d1db420, 0x32fcd: 0x6d1db620, 0x32fce: 0x6d1db820, 0x32fcf: 0x6d1dba20, + 0x32fd0: 0x6d1dbc20, 0x32fd1: 0x6d1dbe20, 0x32fd2: 0x6d1dc020, 0x32fd3: 0x6d1dc220, + 0x32fd4: 0x6d1dc420, 0x32fd5: 0x6d1dc620, 0x32fd6: 0x6d1dc820, 0x32fd7: 0x6d1dca20, + 0x32fd8: 0x6d1dcc20, 0x32fd9: 0x6d1dce20, 0x32fda: 0x6d1dd020, 0x32fdb: 0x6d1dd220, + 0x32fdc: 0x6d1dd420, 0x32fdd: 0x6d1dd620, 0x32fde: 0x6d4b1420, 0x32fdf: 0x6d4b1620, + 0x32fe0: 0x6d4b1820, 0x32fe1: 0x6d4b1a20, 0x32fe2: 0x6d4b1c20, 0x32fe3: 0x6d4b1e20, + 0x32fe4: 0x6d4b2020, 0x32fe5: 0x6d4b2220, 0x32fe6: 0x6d4b2420, 0x32fe7: 0x6d4b2620, + 0x32fe8: 0x6d4b2820, 0x32fe9: 0x6d4b2a20, 0x32fea: 0x6d4b2c20, 0x32feb: 0x6d4b2e20, + 0x32fec: 0x6d4b3020, 0x32fed: 0x6d4b3220, 0x32fee: 0x6d4b3420, 0x32fef: 0x6d4b3620, + 0x32ff0: 0x6d4b3820, 0x32ff1: 0x6d4b3a20, 0x32ff2: 0x6d4b3c20, 0x32ff3: 0x6d4b3e20, + 0x32ff4: 0x6d4b4020, 0x32ff5: 0x6d4b4220, 0x32ff6: 0x6d4b4420, 0x32ff7: 0x6d4b4620, + 0x32ff8: 0x6d4b4820, 0x32ff9: 0x6d4b4a20, 0x32ffa: 0x6d4b4c20, 0x32ffb: 0x6d4b4e20, + 0x32ffc: 0x6d4b5020, 0x32ffd: 0x6d4b5220, 0x32ffe: 0x6d4b5420, 0x32fff: 0x6d4b5620, + // Block 0xcc0, offset 0x33000 + 0x33000: 0x6d4b5820, 0x33001: 0x6d4b5a20, 0x33002: 0x6d4b5c20, 0x33003: 0x6d4b5e20, + 0x33004: 0x6d4b6020, 0x33005: 0x6d4b6220, 0x33006: 0x6d4b6420, 0x33007: 0x6d4b6620, + 0x33008: 0x6d4b6820, 0x33009: 0x6d4b6a20, 0x3300a: 0x6d4b6c20, 0x3300b: 0x6d4b6e20, + 0x3300c: 0x6d4b7020, 0x3300d: 0x6d4b7220, 0x3300e: 0x6d4b7420, 0x3300f: 0x6d4b7620, + 0x33010: 0x6d4b7820, 0x33011: 0x6d4b7a20, 0x33012: 0x6d4b7c20, 0x33013: 0x6d4b7e20, + 0x33014: 0x6d4b8020, 0x33015: 0x6d4b8220, 0x33016: 0x6d4b8420, 0x33017: 0x6d4b8620, + 0x33018: 0x6d4b8820, 0x33019: 0x6d4b8a20, 0x3301a: 0x6d4b8c20, 0x3301b: 0x6d4b8e20, + 0x3301c: 0x6d4b9020, 0x3301d: 0x6d4b9220, 0x3301e: 0x6d789c20, 0x3301f: 0x6d789e20, + 0x33020: 0x6d78a020, 0x33021: 0x6d78a220, 0x33022: 0x6d78a420, 0x33023: 0x6d78a620, + 0x33024: 0x6d78a820, 0x33025: 0x6d78aa20, 0x33026: 0x6d78ac20, 0x33027: 0x6d78ae20, + 0x33028: 0x6d78b020, 0x33029: 0x6d78b220, 0x3302a: 0x6d78b420, 0x3302b: 0x6d78b620, + 0x3302c: 0x6d78b820, 0x3302d: 0x6d78ba20, 0x3302e: 0x6d78bc20, 0x3302f: 0x6d78be20, + 0x33030: 0x6d78c020, 0x33031: 0x6d78c220, 0x33032: 0x6d78c420, 0x33033: 0x6d78c620, + 0x33034: 0x6d78c820, 0x33035: 0x6d78ca20, 0x33036: 0x6d78cc20, 0x33037: 0x6d78ce20, + 0x33038: 0x6d78d020, 0x33039: 0x6d78d220, 0x3303a: 0x6d980c20, 0x3303b: 0x6d78d420, + 0x3303c: 0x6d78d620, 0x3303d: 0x6d78d820, 0x3303e: 0x6d78da20, 0x3303f: 0x6d78dc20, + // Block 0xcc1, offset 0x33040 + 0x33040: 0x6d78de20, 0x33041: 0x6d78e020, 0x33042: 0x6d78e220, 0x33043: 0x6d78e420, + 0x33044: 0x6d78e620, 0x33045: 0x6d78e820, 0x33046: 0x6d78ea20, 0x33047: 0x6d78ec20, + 0x33048: 0x6d78ee20, 0x33049: 0x6da1a820, 0x3304a: 0x6da1aa20, 0x3304b: 0x6da1ac20, + 0x3304c: 0x6da1ae20, 0x3304d: 0x6da1b020, 0x3304e: 0x6da1b220, 0x3304f: 0x6da1b420, + 0x33050: 0x6da1b620, 0x33051: 0x6da1b820, 0x33052: 0x6da1ba20, 0x33053: 0x6da1bc20, + 0x33054: 0x6da1be20, 0x33055: 0x6da1c020, 0x33056: 0x6da1c220, 0x33057: 0x6da1c420, + 0x33058: 0x6da1c620, 0x33059: 0x6da1c820, 0x3305a: 0x6da1ca20, 0x3305b: 0x6da1cc20, + 0x3305c: 0x6da1ce20, 0x3305d: 0x6da1d020, 0x3305e: 0x6da1d220, 0x3305f: 0x6da1d420, + 0x33060: 0x6da1d620, 0x33061: 0x6dc1f820, 0x33062: 0x6da1d820, 0x33063: 0x6da1da20, + 0x33064: 0x6da1dc20, 0x33065: 0x6da1de20, 0x33066: 0x6da1e020, 0x33067: 0x6da1e220, + 0x33068: 0x6da1e420, 0x33069: 0x6da1e620, 0x3306a: 0x6da1e820, 0x3306b: 0x6da1ea20, + 0x3306c: 0x6da1ec20, 0x3306d: 0x6da1ee20, 0x3306e: 0x6da1f020, 0x3306f: 0x6da1f220, + 0x33070: 0x6dc3ea20, 0x33071: 0x6dc3ec20, 0x33072: 0x6dc3ee20, 0x33073: 0x6dc3f020, + 0x33074: 0x6dc3f220, 0x33075: 0x6dc3f420, 0x33076: 0x6dc3f620, 0x33077: 0x6dc3f820, + 0x33078: 0x6dc3fa20, 0x33079: 0x6dc3fc20, 0x3307a: 0x6dc3fe20, 0x3307b: 0x6dc40020, + 0x3307c: 0x6dc40220, 0x3307d: 0x6dc40420, 0x3307e: 0x6dc40620, 0x3307f: 0x6dc40820, + // Block 0xcc2, offset 0x33080 + 0x33080: 0x6de11620, 0x33081: 0x6dc40a20, 0x33082: 0x6dc40c20, 0x33083: 0x6dc40e20, + 0x33084: 0x6dc41020, 0x33085: 0x6dc41220, 0x33086: 0x6dc41420, 0x33087: 0x6dc41620, + 0x33088: 0x6dc41820, 0x33089: 0x6dc41a20, 0x3308a: 0x6dc41c20, 0x3308b: 0x6dc41e20, + 0x3308c: 0x6dc42020, 0x3308d: 0x6dc42220, 0x3308e: 0x6dc42420, 0x3308f: 0x6dc42620, + 0x33090: 0x6de11820, 0x33091: 0x6de11a20, 0x33092: 0x6de11c20, 0x33093: 0x6de11e20, + 0x33094: 0x6de12020, 0x33095: 0x6de12220, 0x33096: 0x6de12420, 0x33097: 0x6de12620, + 0x33098: 0x6de12820, 0x33099: 0x6de12a20, 0x3309a: 0x6de12c20, 0x3309b: 0x6dede420, + 0x3309c: 0x6de12e20, 0x3309d: 0x6de13020, 0x3309e: 0x6de13220, 0x3309f: 0x6de13420, + 0x330a0: 0x6de13620, 0x330a1: 0x6de13820, 0x330a2: 0x6de13a20, 0x330a3: 0x6de13c20, + 0x330a4: 0x6de13e20, 0x330a5: 0x6de14020, 0x330a6: 0x6df93a20, 0x330a7: 0x6df93c20, + 0x330a8: 0x6df93e20, 0x330a9: 0x6df94020, 0x330aa: 0x6df94220, 0x330ab: 0x6df94420, + 0x330ac: 0x6df94620, 0x330ad: 0x6df94820, 0x330ae: 0x6df94a20, 0x330af: 0x6df94c20, + 0x330b0: 0x6df94e20, 0x330b1: 0x6e0cfe20, 0x330b2: 0x6e0d0020, 0x330b3: 0x6e0d0220, + 0x330b4: 0x6e0d0420, 0x330b5: 0x6e0d0620, 0x330b6: 0x6e0d0820, 0x330b7: 0x6e078620, + 0x330b8: 0x6e0d0a20, 0x330b9: 0x6e0d0c20, 0x330ba: 0x6e1c7620, 0x330bb: 0x6e0d0e20, + 0x330bc: 0x6e0d1020, 0x330bd: 0x6e0d1220, 0x330be: 0x6e0d1420, 0x330bf: 0x6e0d1620, + // Block 0xcc3, offset 0x330c0 + 0x330c0: 0x6e0d1820, 0x330c1: 0x6e0d1a20, 0x330c2: 0x6e1c7820, 0x330c3: 0x6e1c7a20, + 0x330c4: 0x6e1c7c20, 0x330c5: 0x6e1c7e20, 0x330c6: 0x6e1c8020, 0x330c7: 0x6e1c8220, + 0x330c8: 0x6e1c8420, 0x330c9: 0x6e1c8620, 0x330ca: 0x6e289220, 0x330cb: 0x6e289420, + 0x330cc: 0x6e289620, 0x330cd: 0x6e289820, 0x330ce: 0x6e289a20, 0x330cf: 0x6e31c620, + 0x330d0: 0x6e31c820, 0x330d1: 0x6e31ca20, 0x330d2: 0x6e31cc20, 0x330d3: 0x6e31ce20, + 0x330d4: 0x6e31d020, 0x330d5: 0x6e31d220, 0x330d6: 0x6e3d1220, 0x330d7: 0x6e442620, + 0x330d8: 0x6e451820, 0x330d9: 0x6e46e220, 0x330da: 0x6e471e20, 0x330db: 0x6c07c620, + 0x330dc: 0x6c0f1020, 0x330dd: 0x6c1b7020, 0x330de: 0x6c1b7220, 0x330df: 0x6c2e7e20, + 0x330e0: 0x6c48ea20, 0x330e1: 0x6c48ec20, 0x330e2: 0x6c48ee20, 0x330e3: 0x6c6a7220, + 0x330e4: 0x6c6a7420, 0x330e5: 0x6c6a7620, 0x330e6: 0x6c6a7820, 0x330e7: 0x6c6a7a20, + 0x330e8: 0x6c6a7c20, 0x330e9: 0x6c6a7e20, 0x330ea: 0x6c916620, 0x330eb: 0x6c916820, + 0x330ec: 0x6c916a20, 0x330ed: 0x6c916c20, 0x330ee: 0x6cbd8e20, 0x330ef: 0x6cbd9020, + 0x330f0: 0x6cee5020, 0x330f1: 0x6cbdc220, 0x330f2: 0x6cee5220, 0x330f3: 0x6cee5420, + 0x330f4: 0x6cee5620, 0x330f5: 0x6cee5820, 0x330f6: 0x6d1df820, 0x330f7: 0x6d187e20, + 0x330f8: 0x6d1dfa20, 0x330f9: 0x6d1dfc20, 0x330fa: 0x6d1dfe20, 0x330fb: 0x6d1e0020, + 0x330fc: 0x6d4ba620, 0x330fd: 0x6d4ba820, 0x330fe: 0x6d790220, 0x330ff: 0x6d790420, + // Block 0xcc4, offset 0x33100 + 0x33100: 0x6d790620, 0x33101: 0x6da20020, 0x33102: 0x6da20220, 0x33103: 0x6da20420, + 0x33104: 0x6da20620, 0x33105: 0x6dc43020, 0x33106: 0x6dd50620, 0x33107: 0x6dc43220, + 0x33108: 0x6dc43420, 0x33109: 0x6dc43620, 0x3310a: 0x6dc43820, 0x3310b: 0x6de14420, + 0x3310c: 0x6de14620, 0x3310d: 0x6df95220, 0x3310e: 0x6dfe0820, 0x3310f: 0x6e1c8820, + 0x33110: 0x6e1c8a20, 0x33111: 0x6e1c8c20, 0x33112: 0x6c018a20, 0x33113: 0x6c07ca20, + 0x33114: 0x6c07cc20, 0x33115: 0x6c0f1420, 0x33116: 0x6c0f1620, 0x33117: 0x6c1b7620, + 0x33118: 0x6c1b7820, 0x33119: 0x6c1b7a20, 0x3311a: 0x6c6a8220, 0x3311b: 0x6c917020, + 0x3311c: 0x6c917220, 0x3311d: 0x6cee5c20, 0x3311e: 0x6c0f1820, 0x3311f: 0x6c0f1a20, + 0x33120: 0x6c1b7e20, 0x33121: 0x6c1b8020, 0x33122: 0x6c2e8420, 0x33123: 0x6c2e8620, + 0x33124: 0x6c2e8820, 0x33125: 0x6c2e8a20, 0x33126: 0x6c6a8a20, 0x33127: 0x6c917420, + 0x33128: 0x6c917620, 0x33129: 0x6c917820, 0x3312a: 0x6c917a20, 0x3312b: 0x6c917c20, + 0x3312c: 0x6c917e20, 0x3312d: 0x6cbd9620, 0x3312e: 0x6cee6020, 0x3312f: 0x6cee6220, + 0x33130: 0x6cee6420, 0x33131: 0x6cee6620, 0x33132: 0x6d1e0420, 0x33133: 0x6d1e0620, + 0x33134: 0x6d1e0820, 0x33135: 0x6d1e0a20, 0x33136: 0x6d4baa20, 0x33137: 0x6d4bac20, + 0x33138: 0x6d790820, 0x33139: 0x6d790a20, 0x3313a: 0x6d790c20, 0x3313b: 0x6da20820, + 0x3313c: 0x6dc43e20, 0x3313d: 0x6dc44020, 0x3313e: 0x6dc44220, 0x3313f: 0x6dc44420, + // Block 0xcc5, offset 0x33140 + 0x33140: 0x6de14a20, 0x33141: 0x6df95620, 0x33142: 0x6e289c20, 0x33143: 0x6e451a20, + 0x33144: 0x6c07d620, 0x33145: 0x6c07d820, 0x33146: 0x6c07da20, 0x33147: 0x6c0f2220, + 0x33148: 0x6c0f2420, 0x33149: 0x6c0f2620, 0x3314a: 0x6c1b8220, 0x3314b: 0x6c1b8420, + 0x3314c: 0x6c1b8620, 0x3314d: 0x6c2e9220, 0x3314e: 0x6c2e9420, 0x3314f: 0x6c2e9620, + 0x33150: 0x6c48fc20, 0x33151: 0x6c48fe20, 0x33152: 0x6c6a9020, 0x33153: 0x6c6a9220, + 0x33154: 0x6c6a9420, 0x33155: 0x6c6a9620, 0x33156: 0x6c6a9820, 0x33157: 0x6c6a9a20, + 0x33158: 0x6c6a9c20, 0x33159: 0x6c6a9e20, 0x3315a: 0x6c6aa020, 0x3315b: 0x6c6aa220, + 0x3315c: 0x6c6aa420, 0x3315d: 0x6c918420, 0x3315e: 0x6c918620, 0x3315f: 0x6c918820, + 0x33160: 0x6c918a20, 0x33161: 0x6c918c20, 0x33162: 0x6c918e20, 0x33163: 0x6c919020, + 0x33164: 0x6c919220, 0x33165: 0x6c919420, 0x33166: 0x6cbda020, 0x33167: 0x6cbda220, + 0x33168: 0x6cbda420, 0x33169: 0x6cbda620, 0x3316a: 0x6cbda820, 0x3316b: 0x6cbdaa20, + 0x3316c: 0x6cbdac20, 0x3316d: 0x6cbdae20, 0x3316e: 0x6cbdb020, 0x3316f: 0x6cee6a20, + 0x33170: 0x6cbdb220, 0x33171: 0x6cee6c20, 0x33172: 0x6cee6e20, 0x33173: 0x6cee7020, + 0x33174: 0x6cee7220, 0x33175: 0x6cee7420, 0x33176: 0x6d1e1820, 0x33177: 0x6d1e1a20, + 0x33178: 0x6d1e1c20, 0x33179: 0x6d1e1e20, 0x3317a: 0x6d1e2020, 0x3317b: 0x6d1e2220, + 0x3317c: 0x6d1e2420, 0x3317d: 0x6d1e2620, 0x3317e: 0x6d1e2820, 0x3317f: 0x6d4bb020, + // Block 0xcc6, offset 0x33180 + 0x33180: 0x6d4bb220, 0x33181: 0x6d4bb420, 0x33182: 0x6d791220, 0x33183: 0x6d791420, + 0x33184: 0x6d791620, 0x33185: 0x6d791820, 0x33186: 0x6da20c20, 0x33187: 0x6da20e20, + 0x33188: 0x6da21020, 0x33189: 0x6dc44820, 0x3318a: 0x6dc44a20, 0x3318b: 0x6de14c20, + 0x3318c: 0x6de14e20, 0x3318d: 0x6e0d2020, 0x3318e: 0x6e0d2220, 0x3318f: 0x6e3d1420, + 0x33190: 0x6de15020, 0x33191: 0x6e45be20, 0x33192: 0x6c03e820, 0x33193: 0x6c03ea20, + 0x33194: 0x6c03ec20, 0x33195: 0x6c07ec20, 0x33196: 0x6c07ee20, 0x33197: 0x6c07f020, + 0x33198: 0x6c07f220, 0x33199: 0x6c07f420, 0x3319a: 0x6c07f620, 0x3319b: 0x6c07f820, + 0x3319c: 0x6c04f620, 0x3319d: 0x6c0f4420, 0x3319e: 0x6c0f4620, 0x3319f: 0x6c0f4820, + 0x331a0: 0x6c0f4a20, 0x331a1: 0x6c0f4c20, 0x331a2: 0x6c0f4e20, 0x331a3: 0x6c0f5020, + 0x331a4: 0x6c0f5220, 0x331a5: 0x6c1b9a20, 0x331a6: 0x6c1b9c20, 0x331a7: 0x6c1b9e20, + 0x331a8: 0x6c1ba020, 0x331a9: 0x6c1ba220, 0x331aa: 0x6c1ba420, 0x331ab: 0x6c1ba620, + 0x331ac: 0x6c1ba820, 0x331ad: 0x6c1baa20, 0x331ae: 0x6c1bac20, 0x331af: 0x6c1bae20, + 0x331b0: 0x6c1bb020, 0x331b1: 0x6c1bb220, 0x331b2: 0x6c1bb420, 0x331b3: 0x6c1bb620, + 0x331b4: 0x6c1bb820, 0x331b5: 0x6c1bba20, 0x331b6: 0x6c1bbc20, 0x331b7: 0x6c2eba20, + 0x331b8: 0x6c2ebc20, 0x331b9: 0x6c2ebe20, 0x331ba: 0x6c2ec020, 0x331bb: 0x6c2ec220, + 0x331bc: 0x6c2ec420, 0x331bd: 0x6c2ec620, 0x331be: 0x6c2ec820, 0x331bf: 0x6c2eca20, + // Block 0xcc7, offset 0x331c0 + 0x331c0: 0x6c2ecc20, 0x331c1: 0x6c2ece20, 0x331c2: 0x6c2ed020, 0x331c3: 0x6c2ed220, + 0x331c4: 0x6c2ed420, 0x331c5: 0x6c2ed620, 0x331c6: 0x6c2ed820, 0x331c7: 0x6c2eda20, + 0x331c8: 0x6c2edc20, 0x331c9: 0x6c2ede20, 0x331ca: 0x6c2ee020, 0x331cb: 0x6c2ee220, + 0x331cc: 0x6c2ee420, 0x331cd: 0x6c491620, 0x331ce: 0x6c491820, 0x331cf: 0x6c491a20, + 0x331d0: 0x6c491c20, 0x331d1: 0x6c491e20, 0x331d2: 0x6c492020, 0x331d3: 0x6c492220, + 0x331d4: 0x6c492420, 0x331d5: 0x6c492620, 0x331d6: 0x6c492820, 0x331d7: 0x6c492a20, + 0x331d8: 0x6c492c20, 0x331d9: 0x6c492e20, 0x331da: 0x6c493020, 0x331db: 0x6c493220, + 0x331dc: 0x6c493420, 0x331dd: 0x6c6ab420, 0x331de: 0x6c6ab620, 0x331df: 0x6c6ab820, + 0x331e0: 0x6c6aba20, 0x331e1: 0x6c6abc20, 0x331e2: 0x6c6abe20, 0x331e3: 0x6c6ac020, + 0x331e4: 0x6c6ac220, 0x331e5: 0x6c6ac420, 0x331e6: 0x6c6ac620, 0x331e7: 0x6c6ac820, + 0x331e8: 0x6c6aca20, 0x331e9: 0x6c6acc20, 0x331ea: 0x6c6ace20, 0x331eb: 0x6c6ad020, + 0x331ec: 0x6c6ad220, 0x331ed: 0x6c6ad420, 0x331ee: 0x6c6ad620, 0x331ef: 0x6c6ad820, + 0x331f0: 0x6c6ada20, 0x331f1: 0x6c6adc20, 0x331f2: 0x6c6ade20, 0x331f3: 0x6c6ae020, + 0x331f4: 0x6c91a620, 0x331f5: 0x6c91a820, 0x331f6: 0x6c91aa20, 0x331f7: 0x6c91ac20, + 0x331f8: 0x6c91ae20, 0x331f9: 0x6c91b020, 0x331fa: 0x6c91b220, 0x331fb: 0x6c91b420, + 0x331fc: 0x6c91b620, 0x331fd: 0x6c91b820, 0x331fe: 0x6c91ba20, 0x331ff: 0x6c91bc20, + // Block 0xcc8, offset 0x33200 + 0x33200: 0x6c91be20, 0x33201: 0x6c91c020, 0x33202: 0x6c91c220, 0x33203: 0x6c91c420, + 0x33204: 0x6c91c620, 0x33205: 0x6c91c820, 0x33206: 0x6c91ca20, 0x33207: 0x6cbdc420, + 0x33208: 0x6cbdc620, 0x33209: 0x6cbdc820, 0x3320a: 0x6cbdca20, 0x3320b: 0x6cbdcc20, + 0x3320c: 0x6cbdce20, 0x3320d: 0x6cbdd020, 0x3320e: 0x6cbdd220, 0x3320f: 0x6cbdd420, + 0x33210: 0x6cbdd620, 0x33211: 0x6cbdd820, 0x33212: 0x6cbdda20, 0x33213: 0x6cbddc20, + 0x33214: 0x6cbdde20, 0x33215: 0x6cbde020, 0x33216: 0x6cbde220, 0x33217: 0x6cbde420, + 0x33218: 0x6cbde620, 0x33219: 0x6cbde820, 0x3321a: 0x6cbdea20, 0x3321b: 0x6cee7e20, + 0x3321c: 0x6cee8020, 0x3321d: 0x6cee8220, 0x3321e: 0x6cee8420, 0x3321f: 0x6cee8620, + 0x33220: 0x6cee8820, 0x33221: 0x6cee8a20, 0x33222: 0x6cee8c20, 0x33223: 0x6cee8e20, + 0x33224: 0x6cee9020, 0x33225: 0x6cee9220, 0x33226: 0x6cee9420, 0x33227: 0x6cee9620, + 0x33228: 0x6cee9820, 0x33229: 0x6cee9a20, 0x3322a: 0x6cee9c20, 0x3322b: 0x6cee9e20, + 0x3322c: 0x6d1e3620, 0x3322d: 0x6d1e3820, 0x3322e: 0x6d1e3a20, 0x3322f: 0x6d1e3c20, + 0x33230: 0x6d1e3e20, 0x33231: 0x6d1e4020, 0x33232: 0x6d1e4220, 0x33233: 0x6d1e4420, + 0x33234: 0x6d1e4620, 0x33235: 0x6d1e4820, 0x33236: 0x6d1e4a20, 0x33237: 0x6d4bba20, + 0x33238: 0x6d4bbc20, 0x33239: 0x6d4bbe20, 0x3323a: 0x6d4bc020, 0x3323b: 0x6d4bc220, + 0x3323c: 0x6d4bc420, 0x3323d: 0x6d4bc620, 0x3323e: 0x6d4bc820, 0x3323f: 0x6d4bca20, + // Block 0xcc9, offset 0x33240 + 0x33240: 0x6d4bcc20, 0x33241: 0x6d4bce20, 0x33242: 0x6d4bd020, 0x33243: 0x6d4bd220, + 0x33244: 0x6d4bd420, 0x33245: 0x6d4bd620, 0x33246: 0x6d792220, 0x33247: 0x6d792420, + 0x33248: 0x6d792620, 0x33249: 0x6d792820, 0x3324a: 0x6d792a20, 0x3324b: 0x6d792c20, + 0x3324c: 0x6d792e20, 0x3324d: 0x6d793020, 0x3324e: 0x6d793220, 0x3324f: 0x6da21220, + 0x33250: 0x6da21420, 0x33251: 0x6da21620, 0x33252: 0x6da21820, 0x33253: 0x6da21a20, + 0x33254: 0x6da21c20, 0x33255: 0x6da21e20, 0x33256: 0x6da22020, 0x33257: 0x6dc44e20, + 0x33258: 0x6de15220, 0x33259: 0x6de15420, 0x3325a: 0x6de15620, 0x3325b: 0x6df95820, + 0x3325c: 0x6e0d2420, 0x3325d: 0x6e0d2620, 0x3325e: 0x6e1c9420, 0x3325f: 0x6e1c9620, + 0x33260: 0x6e289e20, 0x33261: 0x6e28a020, 0x33262: 0x6e28a220, 0x33263: 0x6e31d420, + 0x33264: 0x6e31d620, 0x33265: 0x6e401220, 0x33266: 0x6c03f020, 0x33267: 0x6c080420, + 0x33268: 0x6c080620, 0x33269: 0x6c080820, 0x3326a: 0x6c080a20, 0x3326b: 0x6c080c20, + 0x3326c: 0x6c080e20, 0x3326d: 0x6c081020, 0x3326e: 0x6c0f8620, 0x3326f: 0x6c0f8820, + 0x33270: 0x6c0f8a20, 0x33271: 0x6c0f8c20, 0x33272: 0x6c0f8e20, 0x33273: 0x6c0f9020, + 0x33274: 0x6c0f9220, 0x33275: 0x6c0f9420, 0x33276: 0x6c0f9620, 0x33277: 0x6c0f9820, + 0x33278: 0x6c0f9a20, 0x33279: 0x6c0f9c20, 0x3327a: 0x6c0f9e20, 0x3327b: 0x6c0fa020, + 0x3327c: 0x6c1c1820, 0x3327d: 0x6c1c1a20, 0x3327e: 0x6c1c1c20, 0x3327f: 0x6c1c1e20, + // Block 0xcca, offset 0x33280 + 0x33280: 0x6c1c2020, 0x33281: 0x6c1c2220, 0x33282: 0x6c1c2420, 0x33283: 0x6c1c2620, + 0x33284: 0x6c1c2820, 0x33285: 0x6c1c2a20, 0x33286: 0x6c1c2c20, 0x33287: 0x6c1c2e20, + 0x33288: 0x6c1c3020, 0x33289: 0x6c1c3220, 0x3328a: 0x6c1c3420, 0x3328b: 0x6c1c3620, + 0x3328c: 0x6c1c3820, 0x3328d: 0x6c1c3a20, 0x3328e: 0x6c1c3c20, 0x3328f: 0x6c1c3e20, + 0x33290: 0x6c1c4020, 0x33291: 0x6c1c4220, 0x33292: 0x6c1c4420, 0x33293: 0x6c1c4620, + 0x33294: 0x6c1c4820, 0x33295: 0x6c1c4a20, 0x33296: 0x6c1c4c20, 0x33297: 0x6c1c4e20, + 0x33298: 0x6c1c5020, 0x33299: 0x6c2f6e20, 0x3329a: 0x6c2f7020, 0x3329b: 0x6c2f7220, + 0x3329c: 0x6c2f7420, 0x3329d: 0x6c2f7620, 0x3329e: 0x6c2f7820, 0x3329f: 0x6c2f7a20, + 0x332a0: 0x6c2f7c20, 0x332a1: 0x6c2f7e20, 0x332a2: 0x6c2f8020, 0x332a3: 0x6c2f8220, + 0x332a4: 0x6c2f8420, 0x332a5: 0x6c2f8620, 0x332a6: 0x6c2f8820, 0x332a7: 0x6c2f8a20, + 0x332a8: 0x6c2f8c20, 0x332a9: 0x6c2f8e20, 0x332aa: 0x6c2f9020, 0x332ab: 0x6c2f9220, + 0x332ac: 0x6c2f9420, 0x332ad: 0x6c2f9620, 0x332ae: 0x6c2f9820, 0x332af: 0x6c2f9a20, + 0x332b0: 0x6c2f9c20, 0x332b1: 0x6c2f9e20, 0x332b2: 0x6c2fa020, 0x332b3: 0x6c2fa220, + 0x332b4: 0x6c2fa420, 0x332b5: 0x6c2fa620, 0x332b6: 0x6c2fa820, 0x332b7: 0x6c2faa20, + 0x332b8: 0x6c2fac20, 0x332b9: 0x6c2fae20, 0x332ba: 0x6c2fb020, 0x332bb: 0x6c2fb220, + 0x332bc: 0x6c2fb420, 0x332bd: 0x6c2fb620, 0x332be: 0x6c2fb820, 0x332bf: 0x6c2fba20, + // Block 0xccb, offset 0x332c0 + 0x332c0: 0x6c2fbc20, 0x332c1: 0x6c2fbe20, 0x332c2: 0x6c49b420, 0x332c3: 0x6c49b620, + 0x332c4: 0x6c49b820, 0x332c5: 0x6c49ba20, 0x332c6: 0x6c49bc20, 0x332c7: 0x6c49be20, + 0x332c8: 0x6c49c020, 0x332c9: 0x6c49c220, 0x332ca: 0x6c49c420, 0x332cb: 0x6c49c620, + 0x332cc: 0x6c49c820, 0x332cd: 0x6c49ca20, 0x332ce: 0x6c49cc20, 0x332cf: 0x6c49ce20, + 0x332d0: 0x6c49d020, 0x332d1: 0x6c49d220, 0x332d2: 0x6c49d420, 0x332d3: 0x6c49d620, + 0x332d4: 0x6c49d820, 0x332d5: 0x6c49da20, 0x332d6: 0x6c49dc20, 0x332d7: 0x6c49de20, + 0x332d8: 0x6c49e020, 0x332d9: 0x6c49e220, 0x332da: 0x6c49e420, 0x332db: 0x6c49e620, + 0x332dc: 0x6c49e820, 0x332dd: 0x6c49ea20, 0x332de: 0x6c49ec20, 0x332df: 0x6c49ee20, + 0x332e0: 0x6c49f020, 0x332e1: 0x6c49f220, 0x332e2: 0x6c49f420, 0x332e3: 0x6c49f620, + 0x332e4: 0x6c49f820, 0x332e5: 0x6c49fa20, 0x332e6: 0x6c49fc20, 0x332e7: 0x6c49fe20, + 0x332e8: 0x6c4a0020, 0x332e9: 0x6c4a0220, 0x332ea: 0x6c4a0420, 0x332eb: 0x6c4a0620, + 0x332ec: 0x6c4a0820, 0x332ed: 0x6c4a0a20, 0x332ee: 0x6c6b6c20, 0x332ef: 0x6c6b6e20, + 0x332f0: 0x6c6b7020, 0x332f1: 0x6c6b7220, 0x332f2: 0x6c6b7420, 0x332f3: 0x6c6b7620, + 0x332f4: 0x6c6b7820, 0x332f5: 0x6c6b7a20, 0x332f6: 0x6c6b7c20, 0x332f7: 0x6c6b7e20, + 0x332f8: 0x6c6b8020, 0x332f9: 0x6c6b8220, 0x332fa: 0x6c6b8420, 0x332fb: 0x6c6b8620, + 0x332fc: 0x6c6b8820, 0x332fd: 0x6c6b8a20, 0x332fe: 0x6c6b8c20, 0x332ff: 0x6c6b8e20, + // Block 0xccc, offset 0x33300 + 0x33300: 0x6c6b9020, 0x33301: 0x6c6b9220, 0x33302: 0x6c6b9420, 0x33303: 0x6c6b9620, + 0x33304: 0x6c6b9820, 0x33305: 0x6c6b9a20, 0x33306: 0x6c6b9c20, 0x33307: 0x6c6b9e20, + 0x33308: 0x6c6ba020, 0x33309: 0x6c6ba220, 0x3330a: 0x6c6ba420, 0x3330b: 0x6c6ba620, + 0x3330c: 0x6c6ba820, 0x3330d: 0x6c6baa20, 0x3330e: 0x6c6bac20, 0x3330f: 0x6c6bae20, + 0x33310: 0x6c6bb020, 0x33311: 0x6c6bb220, 0x33312: 0x6c6bb420, 0x33313: 0x6c6bb620, + 0x33314: 0x6c6bb820, 0x33315: 0x6c6bba20, 0x33316: 0x6c6bbc20, 0x33317: 0x6c6bbe20, + 0x33318: 0x6c6bc020, 0x33319: 0x6c6bc220, 0x3331a: 0x6c6bc420, 0x3331b: 0x6c6bc620, + 0x3331c: 0x6c6bc820, 0x3331d: 0x6c6bca20, 0x3331e: 0x6c927020, 0x3331f: 0x6c927220, + 0x33320: 0x6c927420, 0x33321: 0x6c927620, 0x33322: 0x6c927820, 0x33323: 0x6c927a20, + 0x33324: 0x6c927c20, 0x33325: 0x6c927e20, 0x33326: 0x6c928020, 0x33327: 0x6c928220, + 0x33328: 0x6c928420, 0x33329: 0x6c928620, 0x3332a: 0x6c928820, 0x3332b: 0x6c928a20, + 0x3332c: 0x6c928c20, 0x3332d: 0x6c928e20, 0x3332e: 0x6c929020, 0x3332f: 0x6c929220, + 0x33330: 0x6c929420, 0x33331: 0x6c929620, 0x33332: 0x6c929820, 0x33333: 0x6c929a20, + 0x33334: 0x6c929c20, 0x33335: 0x6c929e20, 0x33336: 0x6c92a020, 0x33337: 0x6c92a220, + 0x33338: 0x6c92a420, 0x33339: 0x6c92a620, 0x3333a: 0x6c92a820, 0x3333b: 0x6c92aa20, + 0x3333c: 0x6c92ac20, 0x3333d: 0x6c92ae20, 0x3333e: 0x6c92b020, 0x3333f: 0x6c92b220, + // Block 0xccd, offset 0x33340 + 0x33340: 0x6c92b420, 0x33341: 0x6c92b620, 0x33342: 0x6c92b820, 0x33343: 0x6c92ba20, + 0x33344: 0x6c92bc20, 0x33345: 0x6c92be20, 0x33346: 0x6c92c020, 0x33347: 0x6c92c220, + 0x33348: 0x6c92c420, 0x33349: 0x6c92c620, 0x3334a: 0x6c92c820, 0x3334b: 0x6c92ca20, + 0x3334c: 0x6c92cc20, 0x3334d: 0x6c92ce20, 0x3334e: 0x6c92d020, 0x3334f: 0x6c92d220, + 0x33350: 0x6c92d420, 0x33351: 0x6c92d620, 0x33352: 0x6c92d820, 0x33353: 0x6c92da20, + 0x33354: 0x6c92dc20, 0x33355: 0x6c92de20, 0x33356: 0x6c92e020, 0x33357: 0x6c92e220, + 0x33358: 0x6c92e420, 0x33359: 0x6c92e620, 0x3335a: 0x6c92e820, 0x3335b: 0x6c92ea20, + 0x3335c: 0x6cbe9020, 0x3335d: 0x6cbe9220, 0x3335e: 0x6cbe9420, 0x3335f: 0x6cbe9620, + 0x33360: 0x6cbe9820, 0x33361: 0x6cbe9a20, 0x33362: 0x6cbe9c20, 0x33363: 0x6cbe9e20, + 0x33364: 0x6cbea020, 0x33365: 0x6cbea220, 0x33366: 0x6cbea420, 0x33367: 0x6cbea620, + 0x33368: 0x6cbea820, 0x33369: 0x6cbeaa20, 0x3336a: 0x6cbeac20, 0x3336b: 0x6cbeae20, + 0x3336c: 0x6cbeb020, 0x3336d: 0x6cbeb220, 0x3336e: 0x6cbeb420, 0x3336f: 0x6cbeb620, + 0x33370: 0x6cbeb820, 0x33371: 0x6cbeba20, 0x33372: 0x6cbebc20, 0x33373: 0x6cbebe20, + 0x33374: 0x6cbec020, 0x33375: 0x6cbec220, 0x33376: 0x6cbec420, 0x33377: 0x6cbec620, + 0x33378: 0x6cbec820, 0x33379: 0x6cbeca20, 0x3337a: 0x6cbecc20, 0x3337b: 0x6cbece20, + 0x3337c: 0x6cbed020, 0x3337d: 0x6cbed220, 0x3337e: 0x6cbed420, 0x3337f: 0x6cbed620, + // Block 0xcce, offset 0x33380 + 0x33380: 0x6cbed820, 0x33381: 0x6cbeda20, 0x33382: 0x6cbedc20, 0x33383: 0x6cbede20, + 0x33384: 0x6cbee020, 0x33385: 0x6cbee220, 0x33386: 0x6cbee420, 0x33387: 0x6cbee620, + 0x33388: 0x6cbee820, 0x33389: 0x6cbeea20, 0x3338a: 0x6cbeec20, 0x3338b: 0x6cbeee20, + 0x3338c: 0x6cbef020, 0x3338d: 0x6cbef220, 0x3338e: 0x6cbef420, 0x3338f: 0x6cbef620, + 0x33390: 0x6cbef820, 0x33391: 0x6cbefa20, 0x33392: 0x6cbefc20, 0x33393: 0x6cbefe20, + 0x33394: 0x6cbf0020, 0x33395: 0x6cbf0220, 0x33396: 0x6cbf0420, 0x33397: 0x6cbf0620, + 0x33398: 0x6cbf0820, 0x33399: 0x6cbf0a20, 0x3339a: 0x6cbf0c20, 0x3339b: 0x6cbf0e20, + 0x3339c: 0x6cbf1020, 0x3339d: 0x6cbf1220, 0x3339e: 0x6cbf1420, 0x3339f: 0x6cbf1620, + 0x333a0: 0x6cbf1820, 0x333a1: 0x6cbf1a20, 0x333a2: 0x6cbf1c20, 0x333a3: 0x6cbf1e20, + 0x333a4: 0x6cbf2020, 0x333a5: 0x6cbf2220, 0x333a6: 0x6cbf2420, 0x333a7: 0x6cbf2620, + 0x333a8: 0x6cef1020, 0x333a9: 0x6cef1220, 0x333aa: 0x6cef1420, 0x333ab: 0x6cef1620, + 0x333ac: 0x6cef1820, 0x333ad: 0x6cef1a20, 0x333ae: 0x6cef1c20, 0x333af: 0x6cef1e20, + 0x333b0: 0x6cef2020, 0x333b1: 0x6cef2220, 0x333b2: 0x6cef2420, 0x333b3: 0x6cef2620, + 0x333b4: 0x6cef2820, 0x333b5: 0x6cef2a20, 0x333b6: 0x6cef2c20, 0x333b7: 0x6cef2e20, + 0x333b8: 0x6cef3020, 0x333b9: 0x6cef3220, 0x333ba: 0x6cef3420, 0x333bb: 0x6cef3620, + 0x333bc: 0x6cef3820, 0x333bd: 0x6cef3a20, 0x333be: 0x6cef3c20, 0x333bf: 0x6cef3e20, + // Block 0xccf, offset 0x333c0 + 0x333c0: 0x6cef4020, 0x333c1: 0x6cef4220, 0x333c2: 0x6cef4420, 0x333c3: 0x6cef4620, + 0x333c4: 0x6cef4820, 0x333c5: 0x6cef4a20, 0x333c6: 0x6cef4c20, 0x333c7: 0x6cef4e20, + 0x333c8: 0x6cef5020, 0x333c9: 0x6cef5220, 0x333ca: 0x6cef5420, 0x333cb: 0x6cef5620, + 0x333cc: 0x6cef5820, 0x333cd: 0x6cef5a20, 0x333ce: 0x6cef5c20, 0x333cf: 0x6cef5e20, + 0x333d0: 0x6cef6020, 0x333d1: 0x6cef6220, 0x333d2: 0x6cef6420, 0x333d3: 0x6cef6620, + 0x333d4: 0x6cef6820, 0x333d5: 0x6cef6a20, 0x333d6: 0x6d4c2220, 0x333d7: 0x6d1eaa20, + 0x333d8: 0x6d4c2420, 0x333d9: 0x6d1eac20, 0x333da: 0x6d1eae20, 0x333db: 0x6d1eb020, + 0x333dc: 0x6d1eb220, 0x333dd: 0x6d1eb420, 0x333de: 0x6d1eb620, 0x333df: 0x6d1eb820, + 0x333e0: 0x6d1eba20, 0x333e1: 0x6d1ebc20, 0x333e2: 0x6d1ebe20, 0x333e3: 0x6cbf2820, + 0x333e4: 0x6d1ec020, 0x333e5: 0x6d1ec220, 0x333e6: 0x6d1ec420, 0x333e7: 0x6d1ec620, + 0x333e8: 0x6d1ec820, 0x333e9: 0x6d1eca20, 0x333ea: 0x6d1ecc20, 0x333eb: 0x6d1ece20, + 0x333ec: 0x6d1ed020, 0x333ed: 0x6d1ed220, 0x333ee: 0x6d1ed420, 0x333ef: 0x6d1ed620, + 0x333f0: 0x6d1ed820, 0x333f1: 0x6d1eda20, 0x333f2: 0x6d4c2620, 0x333f3: 0x6d1edc20, + 0x333f4: 0x6d1ede20, 0x333f5: 0x6d1ee020, 0x333f6: 0x6d1ee220, 0x333f7: 0x6d1ee420, + 0x333f8: 0x6d1ee620, 0x333f9: 0x6d1ee820, 0x333fa: 0x6d1eea20, 0x333fb: 0x6d1eec20, + 0x333fc: 0x6d1eee20, 0x333fd: 0x6d1ef020, 0x333fe: 0x6d1ef220, 0x333ff: 0x6d1ef420, + // Block 0xcd0, offset 0x33400 + 0x33400: 0x6d1ef620, 0x33401: 0x6d1ef820, 0x33402: 0x6d1efa20, 0x33403: 0x6d1efc20, + 0x33404: 0x6d1efe20, 0x33405: 0x6d1f0020, 0x33406: 0x6d1f0220, 0x33407: 0x6d1f0420, + 0x33408: 0x6d1f0620, 0x33409: 0x6d1f0820, 0x3340a: 0x6d1f0a20, 0x3340b: 0x6d1f0c20, + 0x3340c: 0x6d1f0e20, 0x3340d: 0x6d1f1020, 0x3340e: 0x6d1f1220, 0x3340f: 0x6d4c2820, + 0x33410: 0x6d4c2a20, 0x33411: 0x6d4c2c20, 0x33412: 0x6d4c2e20, 0x33413: 0x6d4c3020, + 0x33414: 0x6d4c3220, 0x33415: 0x6d4c3420, 0x33416: 0x6d4c3620, 0x33417: 0x6d4c3820, + 0x33418: 0x6d4c3a20, 0x33419: 0x6d4c3c20, 0x3341a: 0x6d4c3e20, 0x3341b: 0x6d4c4020, + 0x3341c: 0x6d4c4220, 0x3341d: 0x6d4c4420, 0x3341e: 0x6d4c4620, 0x3341f: 0x6d4c4820, + 0x33420: 0x6d4c4a20, 0x33421: 0x6d4c4c20, 0x33422: 0x6d4c4e20, 0x33423: 0x6d4c5020, + 0x33424: 0x6d4c5220, 0x33425: 0x6d4c5420, 0x33426: 0x6d4c5620, 0x33427: 0x6d4c5820, + 0x33428: 0x6d4c5a20, 0x33429: 0x6d4c5c20, 0x3342a: 0x6d4c5e20, 0x3342b: 0x6d4c6020, + 0x3342c: 0x6d4c6220, 0x3342d: 0x6d4c6420, 0x3342e: 0x6d4c6620, 0x3342f: 0x6d4c6820, + 0x33430: 0x6d4c6a20, 0x33431: 0x6d4c6c20, 0x33432: 0x6d4c6e20, 0x33433: 0x6d4c7020, + 0x33434: 0x6d4c7220, 0x33435: 0x6d4c7420, 0x33436: 0x6d4c7620, 0x33437: 0x6d4c7820, + 0x33438: 0x6d4c7a20, 0x33439: 0x6d4c7c20, 0x3343a: 0x6d4c7e20, 0x3343b: 0x6d4c8020, + 0x3343c: 0x6d4c8220, 0x3343d: 0x6d4c8420, 0x3343e: 0x6d4c8620, 0x3343f: 0x6d4c8820, + // Block 0xcd1, offset 0x33440 + 0x33440: 0x6d4c8a20, 0x33441: 0x6d4c8c20, 0x33442: 0x6d4c8e20, 0x33443: 0x6d4c9020, + 0x33444: 0x6d4c9220, 0x33445: 0x6d4c9420, 0x33446: 0x6d4c9620, 0x33447: 0x6d4c9820, + 0x33448: 0x6d4c9a20, 0x33449: 0x6d4c9c20, 0x3344a: 0x6d4c9e20, 0x3344b: 0x6d4ca020, + 0x3344c: 0x6d4ca220, 0x3344d: 0x6d4ca420, 0x3344e: 0x6d796a20, 0x3344f: 0x6d601620, + 0x33450: 0x6d4ca620, 0x33451: 0x6d796c20, 0x33452: 0x6d796e20, 0x33453: 0x6d797020, + 0x33454: 0x6d797220, 0x33455: 0x6d797420, 0x33456: 0x6d797620, 0x33457: 0x6d797820, + 0x33458: 0x6d797a20, 0x33459: 0x6d797c20, 0x3345a: 0x6d797e20, 0x3345b: 0x6d798020, + 0x3345c: 0x6d798220, 0x3345d: 0x6d798420, 0x3345e: 0x6d798620, 0x3345f: 0x6d798820, + 0x33460: 0x6d798a20, 0x33461: 0x6d798c20, 0x33462: 0x6d798e20, 0x33463: 0x6d799020, + 0x33464: 0x6d799220, 0x33465: 0x6d799420, 0x33466: 0x6d799620, 0x33467: 0x6d799820, + 0x33468: 0x6d799a20, 0x33469: 0x6d799c20, 0x3346a: 0x6d799e20, 0x3346b: 0x6d79a020, + 0x3346c: 0x6d79a220, 0x3346d: 0x6d79a420, 0x3346e: 0x6d79a620, 0x3346f: 0x6d79a820, + 0x33470: 0x6d79aa20, 0x33471: 0x6d79ac20, 0x33472: 0x6d79ae20, 0x33473: 0x6d79b020, + 0x33474: 0x6d79b220, 0x33475: 0x6d79b420, 0x33476: 0x6d79b620, 0x33477: 0x6d79b820, + 0x33478: 0x6d79ba20, 0x33479: 0x6d79bc20, 0x3347a: 0x6d79be20, 0x3347b: 0x6d79c020, + 0x3347c: 0x6d79c220, 0x3347d: 0x6d79c420, 0x3347e: 0x6d79c620, 0x3347f: 0x6d79c820, + // Block 0xcd2, offset 0x33480 + 0x33480: 0x6d79ca20, 0x33481: 0x6d79cc20, 0x33482: 0x6d79ce20, 0x33483: 0x6d79d020, + 0x33484: 0x6d79d220, 0x33485: 0x6da24c20, 0x33486: 0x6da24e20, 0x33487: 0x6da25020, + 0x33488: 0x6da25220, 0x33489: 0x6da25420, 0x3348a: 0x6da25620, 0x3348b: 0x6da25820, + 0x3348c: 0x6da25a20, 0x3348d: 0x6da25c20, 0x3348e: 0x6da25e20, 0x3348f: 0x6da26020, + 0x33490: 0x6da26220, 0x33491: 0x6da26420, 0x33492: 0x6da26620, 0x33493: 0x6da26820, + 0x33494: 0x6da26a20, 0x33495: 0x6da26c20, 0x33496: 0x6da26e20, 0x33497: 0x6da27020, + 0x33498: 0x6da27220, 0x33499: 0x6da27420, 0x3349a: 0x6da27620, 0x3349b: 0x6da27820, + 0x3349c: 0x6da27a20, 0x3349d: 0x6da27c20, 0x3349e: 0x6da27e20, 0x3349f: 0x6da28020, + 0x334a0: 0x6da28220, 0x334a1: 0x6da28420, 0x334a2: 0x6db99820, 0x334a3: 0x6da28620, + 0x334a4: 0x6da28820, 0x334a5: 0x6da28a20, 0x334a6: 0x6da28c20, 0x334a7: 0x6da28e20, + 0x334a8: 0x6da29020, 0x334a9: 0x6da29220, 0x334aa: 0x6dc46020, 0x334ab: 0x6dc46220, + 0x334ac: 0x6dc46420, 0x334ad: 0x6dc46620, 0x334ae: 0x6dc46820, 0x334af: 0x6dc46a20, + 0x334b0: 0x6dc46c20, 0x334b1: 0x6dc46e20, 0x334b2: 0x6dc47020, 0x334b3: 0x6dc47220, + 0x334b4: 0x6dc47420, 0x334b5: 0x6dc47620, 0x334b6: 0x6dc47820, 0x334b7: 0x6dc47a20, + 0x334b8: 0x6dc47c20, 0x334b9: 0x6dc47e20, 0x334ba: 0x6dc48020, 0x334bb: 0x6dc48220, + 0x334bc: 0x6dc48420, 0x334bd: 0x6de16820, 0x334be: 0x6de16a20, 0x334bf: 0x6de16c20, + // Block 0xcd3, offset 0x334c0 + 0x334c0: 0x6de16e20, 0x334c1: 0x6de17020, 0x334c2: 0x6de17220, 0x334c3: 0x6de17420, + 0x334c4: 0x6de17620, 0x334c5: 0x6de17820, 0x334c6: 0x6de17a20, 0x334c7: 0x6de17c20, + 0x334c8: 0x6de17e20, 0x334c9: 0x6de18020, 0x334ca: 0x6de18220, 0x334cb: 0x6de18420, + 0x334cc: 0x6de18620, 0x334cd: 0x6de18820, 0x334ce: 0x6df97020, 0x334cf: 0x6df97220, + 0x334d0: 0x6df97420, 0x334d1: 0x6df97620, 0x334d2: 0x6df97820, 0x334d3: 0x6df97a20, + 0x334d4: 0x6df97c20, 0x334d5: 0x6df97e20, 0x334d6: 0x6df98020, 0x334d7: 0x6df98220, + 0x334d8: 0x6e0d3020, 0x334d9: 0x6e0d3220, 0x334da: 0x6e0d3420, 0x334db: 0x6e0d3620, + 0x334dc: 0x6e0d3820, 0x334dd: 0x6e0d3a20, 0x334de: 0x6de18a20, 0x334df: 0x6e0d3c20, + 0x334e0: 0x6e0d3e20, 0x334e1: 0x6e1ca020, 0x334e2: 0x6e1ca220, 0x334e3: 0x6e1ca420, + 0x334e4: 0x6e1ca620, 0x334e5: 0x6e1ca820, 0x334e6: 0x6e1caa20, 0x334e7: 0x6e1cac20, + 0x334e8: 0x6e1cae20, 0x334e9: 0x6e1cb020, 0x334ea: 0x6e1cb220, 0x334eb: 0x6e28a820, + 0x334ec: 0x6e28aa20, 0x334ed: 0x6e28ac20, 0x334ee: 0x6e31dc20, 0x334ef: 0x6e31de20, + 0x334f0: 0x6e31e020, 0x334f1: 0x6e31e220, 0x334f2: 0x6e31e420, 0x334f3: 0x6e31e620, + 0x334f4: 0x6e386220, 0x334f5: 0x6e386420, 0x334f6: 0x6e386620, 0x334f7: 0x6e401420, + 0x334f8: 0x6e401620, 0x334f9: 0x6e401820, 0x334fa: 0x6e401a20, 0x334fb: 0x6e467e20, + 0x334fc: 0x6c019e20, 0x334fd: 0x6c03f420, 0x334fe: 0x6c081420, 0x334ff: 0x6c081620, + // Block 0xcd4, offset 0x33500 + 0x33500: 0x6c081820, 0x33501: 0x6c081a20, 0x33502: 0x6c081c20, 0x33503: 0x6c0fb220, + 0x33504: 0x6c0fb420, 0x33505: 0x6c0fb620, 0x33506: 0x6c1c7020, 0x33507: 0x6c1c7220, + 0x33508: 0x6c1c7420, 0x33509: 0x6c1c7620, 0x3350a: 0x6c1c7820, 0x3350b: 0x6c18cc20, + 0x3350c: 0x6c1c7a20, 0x3350d: 0x6c1c7c20, 0x3350e: 0x6c2fde20, 0x3350f: 0x6c2fe020, + 0x33510: 0x6c2fe220, 0x33511: 0x6c2fe420, 0x33512: 0x6c2fe620, 0x33513: 0x6c2fe820, + 0x33514: 0x6c2fea20, 0x33515: 0x6c2fec20, 0x33516: 0x6c2fee20, 0x33517: 0x6c2ff020, + 0x33518: 0x6c2ff220, 0x33519: 0x6c2ff420, 0x3351a: 0x6c2ff620, 0x3351b: 0x6c4a2420, + 0x3351c: 0x6c4a2620, 0x3351d: 0x6c4a2820, 0x3351e: 0x6c4a2a20, 0x3351f: 0x6c4a2c20, + 0x33520: 0x6c4a2e20, 0x33521: 0x6c4a3020, 0x33522: 0x6c4a3220, 0x33523: 0x6c4a3420, + 0x33524: 0x6c4a3620, 0x33525: 0x6c4a3820, 0x33526: 0x6c4a3a20, 0x33527: 0x6c4a3c20, + 0x33528: 0x6c6be620, 0x33529: 0x6c6be820, 0x3352a: 0x6c6bea20, 0x3352b: 0x6c6bec20, + 0x3352c: 0x6c6bee20, 0x3352d: 0x6c6bf020, 0x3352e: 0x6c930c20, 0x3352f: 0x6c930e20, + 0x33530: 0x6c931020, 0x33531: 0x6c931220, 0x33532: 0x6c931420, 0x33533: 0x6c931620, + 0x33534: 0x6c931820, 0x33535: 0x6c931a20, 0x33536: 0x6cbf4620, 0x33537: 0x6cbf4820, + 0x33538: 0x6cbf4a20, 0x33539: 0x6cbf4c20, 0x3353a: 0x6cbf4e20, 0x3353b: 0x6cbf5020, + 0x3353c: 0x6cbf5220, 0x3353d: 0x6cbf5420, 0x3353e: 0x6cbf5620, 0x3353f: 0x6cbf5820, + // Block 0xcd5, offset 0x33540 + 0x33540: 0x6cbf5a20, 0x33541: 0x6cbf5c20, 0x33542: 0x6cbf5e20, 0x33543: 0x6cef7c20, + 0x33544: 0x6cef7e20, 0x33545: 0x6cef8020, 0x33546: 0x6cef8220, 0x33547: 0x6cef8420, + 0x33548: 0x6cef8620, 0x33549: 0x6cef8820, 0x3354a: 0x6cef8a20, 0x3354b: 0x6cef8c20, + 0x3354c: 0x6cef8e20, 0x3354d: 0x6cef9020, 0x3354e: 0x6cef9220, 0x3354f: 0x6cef9420, + 0x33550: 0x6cef9620, 0x33551: 0x6d1f2e20, 0x33552: 0x6d1f3020, 0x33553: 0x6d1f3220, + 0x33554: 0x6d1f3420, 0x33555: 0x6d1f3620, 0x33556: 0x6d1f3820, 0x33557: 0x6d4cb820, + 0x33558: 0x6d4cba20, 0x33559: 0x6d4cbc20, 0x3355a: 0x6d4cbe20, 0x3355b: 0x6d4cc020, + 0x3355c: 0x6d4cc220, 0x3355d: 0x6d4cc420, 0x3355e: 0x6d79e620, 0x3355f: 0x6d79e820, + 0x33560: 0x6d79ea20, 0x33561: 0x6d79ec20, 0x33562: 0x6d79ee20, 0x33563: 0x6d79f020, + 0x33564: 0x6d79f220, 0x33565: 0x6d79f420, 0x33566: 0x6d79f620, 0x33567: 0x6d79f820, + 0x33568: 0x6d79fa20, 0x33569: 0x6da29a20, 0x3356a: 0x6dc48e20, 0x3356b: 0x6dc49020, + 0x3356c: 0x6dc49220, 0x3356d: 0x6de19220, 0x3356e: 0x6de19420, 0x3356f: 0x6de19620, + 0x33570: 0x6de19820, 0x33571: 0x6df98a20, 0x33572: 0x6df98c20, 0x33573: 0x6df98e20, + 0x33574: 0x6df99020, 0x33575: 0x6df99220, 0x33576: 0x6df99420, 0x33577: 0x6e1cb620, + 0x33578: 0x6e401c20, 0x33579: 0x6c03f820, 0x3357a: 0x6c082a20, 0x3357b: 0x6c082c20, + 0x3357c: 0x6c082e20, 0x3357d: 0x6c0fc620, 0x3357e: 0x6c0fc820, 0x3357f: 0x6c0fca20, + // Block 0xcd6, offset 0x33580 + 0x33580: 0x6c0fcc20, 0x33581: 0x6c0fce20, 0x33582: 0x6c0fd020, 0x33583: 0x6c0fd220, + 0x33584: 0x6c0fd420, 0x33585: 0x6c0fd620, 0x33586: 0x6c0fd820, 0x33587: 0x6c0fda20, + 0x33588: 0x6c0fdc20, 0x33589: 0x6c0fde20, 0x3358a: 0x6c0fe020, 0x3358b: 0x6c1ca020, + 0x3358c: 0x6c1ca220, 0x3358d: 0x6c1ca420, 0x3358e: 0x6c1ca620, 0x3358f: 0x6c1ca820, + 0x33590: 0x6c1caa20, 0x33591: 0x6c1cac20, 0x33592: 0x6c1cae20, 0x33593: 0x6c1cb020, + 0x33594: 0x6c1cb220, 0x33595: 0x6c1cb420, 0x33596: 0x6c301a20, 0x33597: 0x6c301c20, + 0x33598: 0x6c301e20, 0x33599: 0x6c302020, 0x3359a: 0x6c302220, 0x3359b: 0x6c302420, + 0x3359c: 0x6c302620, 0x3359d: 0x6c302820, 0x3359e: 0x6c302a20, 0x3359f: 0x6c302c20, + 0x335a0: 0x6c302e20, 0x335a1: 0x6c303020, 0x335a2: 0x6c303220, 0x335a3: 0x6c303420, + 0x335a4: 0x6c303620, 0x335a5: 0x6c303820, 0x335a6: 0x6c303a20, 0x335a7: 0x6c303c20, + 0x335a8: 0x6c303e20, 0x335a9: 0x6c4a5a20, 0x335aa: 0x6c4a5c20, 0x335ab: 0x6c4a5e20, + 0x335ac: 0x6c4a6020, 0x335ad: 0x6c4a6220, 0x335ae: 0x6c4a6420, 0x335af: 0x6c4a6620, + 0x335b0: 0x6c4a6820, 0x335b1: 0x6c4a6a20, 0x335b2: 0x6c4a6c20, 0x335b3: 0x6c4a6e20, + 0x335b4: 0x6c4a7020, 0x335b5: 0x6c4a7220, 0x335b6: 0x6c4a7420, 0x335b7: 0x6c4a7620, + 0x335b8: 0x6c4a7820, 0x335b9: 0x6c4a7a20, 0x335ba: 0x6c4a7c20, 0x335bb: 0x6c4a7e20, + 0x335bc: 0x6c4a8020, 0x335bd: 0x6c4a8220, 0x335be: 0x6c4a8420, 0x335bf: 0x6c4a8620, + // Block 0xcd7, offset 0x335c0 + 0x335c0: 0x6c6c2620, 0x335c1: 0x6c6c2820, 0x335c2: 0x6c6c2a20, 0x335c3: 0x6c6c2c20, + 0x335c4: 0x6c6c2e20, 0x335c5: 0x6c6c3020, 0x335c6: 0x6c6c3220, 0x335c7: 0x6c6c3420, + 0x335c8: 0x6c6c3620, 0x335c9: 0x6c6c3820, 0x335ca: 0x6c6c3a20, 0x335cb: 0x6c6c3c20, + 0x335cc: 0x6c6c3e20, 0x335cd: 0x6c6c4020, 0x335ce: 0x6c6c4220, 0x335cf: 0x6c6c4420, + 0x335d0: 0x6c6c4620, 0x335d1: 0x6c6c4820, 0x335d2: 0x6c6c4a20, 0x335d3: 0x6c6c4c20, + 0x335d4: 0x6c6c4e20, 0x335d5: 0x6c6c5020, 0x335d6: 0x6c6c5220, 0x335d7: 0x6c6c5420, + 0x335d8: 0x6c6c5620, 0x335d9: 0x6c6c5820, 0x335da: 0x6c6c5a20, 0x335db: 0x6c6c5c20, + 0x335dc: 0x6c6c5e20, 0x335dd: 0x6c6c6020, 0x335de: 0x6c6c6220, 0x335df: 0x6c6c6420, + 0x335e0: 0x6c6c6620, 0x335e1: 0x6c6c6820, 0x335e2: 0x6c934620, 0x335e3: 0x6c934820, + 0x335e4: 0x6c934a20, 0x335e5: 0x6c934c20, 0x335e6: 0x6c934e20, 0x335e7: 0x6c935020, + 0x335e8: 0x6c935220, 0x335e9: 0x6c935420, 0x335ea: 0x6c935620, 0x335eb: 0x6c935820, + 0x335ec: 0x6c935a20, 0x335ed: 0x6c935c20, 0x335ee: 0x6c935e20, 0x335ef: 0x6c936020, + 0x335f0: 0x6c936220, 0x335f1: 0x6c936420, 0x335f2: 0x6c936620, 0x335f3: 0x6c936820, + 0x335f4: 0x6c936a20, 0x335f5: 0x6c936c20, 0x335f6: 0x6c936e20, 0x335f7: 0x6c937020, + 0x335f8: 0x6c937220, 0x335f9: 0x6c937420, 0x335fa: 0x6c937620, 0x335fb: 0x6c937820, + 0x335fc: 0x6c937a20, 0x335fd: 0x6cbf8220, 0x335fe: 0x6cbf8420, 0x335ff: 0x6cbf8620, + // Block 0xcd8, offset 0x33600 + 0x33600: 0x6cbf8820, 0x33601: 0x6cbf8a20, 0x33602: 0x6cbf8c20, 0x33603: 0x6cbf8e20, + 0x33604: 0x6cbf9020, 0x33605: 0x6cbf9220, 0x33606: 0x6cbf9420, 0x33607: 0x6cbf9620, + 0x33608: 0x6cbf9820, 0x33609: 0x6cbf9a20, 0x3360a: 0x6cbf9c20, 0x3360b: 0x6cbf9e20, + 0x3360c: 0x6cbfa020, 0x3360d: 0x6cbfa220, 0x3360e: 0x6cbfa420, 0x3360f: 0x6cbfa620, + 0x33610: 0x6cbfa820, 0x33611: 0x6cbfaa20, 0x33612: 0x6cbfac20, 0x33613: 0x6cbfae20, + 0x33614: 0x6cbfb020, 0x33615: 0x6cbfb220, 0x33616: 0x6cbfb420, 0x33617: 0x6cbfb620, + 0x33618: 0x6cbfb820, 0x33619: 0x6cbfba20, 0x3361a: 0x6cbfbc20, 0x3361b: 0x6cbfbe20, + 0x3361c: 0x6cbfc020, 0x3361d: 0x6cbfc220, 0x3361e: 0x6cbfc420, 0x3361f: 0x6cefb420, + 0x33620: 0x6cefb620, 0x33621: 0x6cefb820, 0x33622: 0x6cefba20, 0x33623: 0x6cefbc20, + 0x33624: 0x6cefbe20, 0x33625: 0x6cefc020, 0x33626: 0x6cefc220, 0x33627: 0x6cefc420, + 0x33628: 0x6cefc620, 0x33629: 0x6cefc820, 0x3362a: 0x6cefca20, 0x3362b: 0x6cefcc20, + 0x3362c: 0x6cefce20, 0x3362d: 0x6cefd020, 0x3362e: 0x6cefd220, 0x3362f: 0x6cefd420, + 0x33630: 0x6cefd620, 0x33631: 0x6cefd820, 0x33632: 0x6cefda20, 0x33633: 0x6cefdc20, + 0x33634: 0x6cefde20, 0x33635: 0x6cefe020, 0x33636: 0x6cefe220, 0x33637: 0x6cefe420, + 0x33638: 0x6cefe620, 0x33639: 0x6cefe820, 0x3363a: 0x6cefea20, 0x3363b: 0x6d1f5a20, + 0x3363c: 0x6d1f5c20, 0x3363d: 0x6d1f5e20, 0x3363e: 0x6d1f6020, 0x3363f: 0x6d1f6220, + // Block 0xcd9, offset 0x33640 + 0x33640: 0x6d1f6420, 0x33641: 0x6d1f6620, 0x33642: 0x6d1f6820, 0x33643: 0x6d1f6a20, + 0x33644: 0x6d1f6c20, 0x33645: 0x6d1f6e20, 0x33646: 0x6d1f7020, 0x33647: 0x6d1f7220, + 0x33648: 0x6d1f7420, 0x33649: 0x6d1f7620, 0x3364a: 0x6d1f7820, 0x3364b: 0x6d1f7a20, + 0x3364c: 0x6d1f7c20, 0x3364d: 0x6d1f7e20, 0x3364e: 0x6d1f8020, 0x3364f: 0x6d1f8220, + 0x33650: 0x6d1f8420, 0x33651: 0x6d1f8620, 0x33652: 0x6d1f8820, 0x33653: 0x6d1f8a20, + 0x33654: 0x6d1f8c20, 0x33655: 0x6d1f8e20, 0x33656: 0x6d1f9020, 0x33657: 0x6d1f9220, + 0x33658: 0x6d1f9420, 0x33659: 0x6d1f9620, 0x3365a: 0x6d1f9820, 0x3365b: 0x6d1f9a20, + 0x3365c: 0x6d1f9c20, 0x3365d: 0x6d1f9e20, 0x3365e: 0x6d1b3020, 0x3365f: 0x6d4cd820, + 0x33660: 0x6d4cda20, 0x33661: 0x6d4cdc20, 0x33662: 0x6d4cde20, 0x33663: 0x6d4ce020, + 0x33664: 0x6d4ce220, 0x33665: 0x6d4ce420, 0x33666: 0x6d4ce620, 0x33667: 0x6d4ce820, + 0x33668: 0x6d4cea20, 0x33669: 0x6d4cec20, 0x3366a: 0x6d4cee20, 0x3366b: 0x6d4cf020, + 0x3366c: 0x6d4cf220, 0x3366d: 0x6d4cf420, 0x3366e: 0x6d4cf620, 0x3366f: 0x6d4cf820, + 0x33670: 0x6d4cfa20, 0x33671: 0x6d4cfc20, 0x33672: 0x6d4cfe20, 0x33673: 0x6d4d0020, + 0x33674: 0x6d4d0220, 0x33675: 0x6d4d0420, 0x33676: 0x6d4d0620, 0x33677: 0x6d4d0820, + 0x33678: 0x6d4d0a20, 0x33679: 0x6d4d0c20, 0x3367a: 0x6d4d0e20, 0x3367b: 0x6d4d1020, + 0x3367c: 0x6d4d1220, 0x3367d: 0x6d4d1420, 0x3367e: 0x6d7a0220, 0x3367f: 0x6d7a0420, + // Block 0xcda, offset 0x33680 + 0x33680: 0x6d7a0620, 0x33681: 0x6d7a0820, 0x33682: 0x6d7a0a20, 0x33683: 0x6d7a0c20, + 0x33684: 0x6d7a0e20, 0x33685: 0x6d7a1020, 0x33686: 0x6d7a1220, 0x33687: 0x6d7a1420, + 0x33688: 0x6d7a1620, 0x33689: 0x6d7a1820, 0x3368a: 0x6d7a1a20, 0x3368b: 0x6d7a1c20, + 0x3368c: 0x6d7a1e20, 0x3368d: 0x6d7a2020, 0x3368e: 0x6d7a2220, 0x3368f: 0x6d7a2420, + 0x33690: 0x6d7a2620, 0x33691: 0x6da2a420, 0x33692: 0x6da2a620, 0x33693: 0x6da2a820, + 0x33694: 0x6da2aa20, 0x33695: 0x6da2ac20, 0x33696: 0x6da2ae20, 0x33697: 0x6da2b020, + 0x33698: 0x6da2b220, 0x33699: 0x6da2b420, 0x3369a: 0x6da2b620, 0x3369b: 0x6da2b820, + 0x3369c: 0x6da2ba20, 0x3369d: 0x6da2bc20, 0x3369e: 0x6dc49620, 0x3369f: 0x6dc49820, + 0x336a0: 0x6dc49a20, 0x336a1: 0x6dc49c20, 0x336a2: 0x6dc49e20, 0x336a3: 0x6dc4a020, + 0x336a4: 0x6dc4a220, 0x336a5: 0x6dc4a420, 0x336a6: 0x6dc4a620, 0x336a7: 0x6dc4a820, + 0x336a8: 0x6dc4aa20, 0x336a9: 0x6dc4ac20, 0x336aa: 0x6dc4ae20, 0x336ab: 0x6dc4b020, + 0x336ac: 0x6de1a020, 0x336ad: 0x6de1a220, 0x336ae: 0x6de1a420, 0x336af: 0x6de1a620, + 0x336b0: 0x6de1a820, 0x336b1: 0x6de1aa20, 0x336b2: 0x6de1ac20, 0x336b3: 0x6de1ae20, + 0x336b4: 0x6de1b020, 0x336b5: 0x6de1b220, 0x336b6: 0x6de1b420, 0x336b7: 0x6df99820, + 0x336b8: 0x6df99a20, 0x336b9: 0x6df99c20, 0x336ba: 0x6df99e20, 0x336bb: 0x6df9a020, + 0x336bc: 0x6e0d4a20, 0x336bd: 0x6e0d4c20, 0x336be: 0x6e0d4e20, 0x336bf: 0x6e0d5020, + // Block 0xcdb, offset 0x336c0 + 0x336c0: 0x6e0d5220, 0x336c1: 0x6e0d5420, 0x336c2: 0x6e0d5620, 0x336c3: 0x6e0d5820, + 0x336c4: 0x6e1cb820, 0x336c5: 0x6e1cba20, 0x336c6: 0x6e1cbc20, 0x336c7: 0x6e1cbe20, + 0x336c8: 0x6e1cc020, 0x336c9: 0x6e1cc220, 0x336ca: 0x6e1cc420, 0x336cb: 0x6e1cc620, + 0x336cc: 0x6e28b020, 0x336cd: 0x6e31e820, 0x336ce: 0x6e401e20, 0x336cf: 0x6e31ea20, + 0x336d0: 0x6e31ec20, 0x336d1: 0x6e386a20, 0x336d2: 0x6e428e20, 0x336d3: 0x6e386c20, + 0x336d4: 0x6e386e20, 0x336d5: 0x6e387020, 0x336d6: 0x6e3d1c20, 0x336d7: 0x6e3d1e20, + 0x336d8: 0x6e3d2020, 0x336d9: 0x6e402020, 0x336da: 0x6e402220, 0x336db: 0x6e442820, + 0x336dc: 0x6e46e420, 0x336dd: 0x6c03fa20, 0x336de: 0x6c0fe820, 0x336df: 0x6c304820, + 0x336e0: 0x6c304a20, 0x336e1: 0x6c304c20, 0x336e2: 0x6c304e20, 0x336e3: 0x6c305020, + 0x336e4: 0x6c305220, 0x336e5: 0x6c305420, 0x336e6: 0x6c305620, 0x336e7: 0x6c4a9420, + 0x336e8: 0x6c4a9620, 0x336e9: 0x6c4a9820, 0x336ea: 0x6c4a9a20, 0x336eb: 0x6c4a9c20, + 0x336ec: 0x6c4a9e20, 0x336ed: 0x6c6c7a20, 0x336ee: 0x6c938820, 0x336ef: 0x6c938a20, + 0x336f0: 0x6c938c20, 0x336f1: 0x6c938e20, 0x336f2: 0x6c939020, 0x336f3: 0x6cbfdc20, + 0x336f4: 0x6cbfde20, 0x336f5: 0x6cbfe020, 0x336f6: 0x6cbfe220, 0x336f7: 0x6cbfe420, + 0x336f8: 0x6cbfe620, 0x336f9: 0x6ceff820, 0x336fa: 0x6ceffa20, 0x336fb: 0x6ceffc20, + 0x336fc: 0x6ceffe20, 0x336fd: 0x6d1fae20, 0x336fe: 0x6d1fb020, 0x336ff: 0x6d1fb220, + // Block 0xcdc, offset 0x33700 + 0x33700: 0x6d1fb420, 0x33701: 0x6d1fb620, 0x33702: 0x6d1fb820, 0x33703: 0x6d4d2420, + 0x33704: 0x6d4d2620, 0x33705: 0x6d4d2820, 0x33706: 0x6d4d2a20, 0x33707: 0x6d4d2c20, + 0x33708: 0x6d4d2e20, 0x33709: 0x6d4d3020, 0x3370a: 0x6d7a3020, 0x3370b: 0x6d7a3220, + 0x3370c: 0x6d7a3420, 0x3370d: 0x6da2c020, 0x3370e: 0x6da2c220, 0x3370f: 0x6da2c420, + 0x33710: 0x6dc4b820, 0x33711: 0x6de1b620, 0x33712: 0x6df9a620, 0x33713: 0x6e0d5c20, + 0x33714: 0x6c01aa20, 0x33715: 0x6c040020, 0x33716: 0x6c040220, 0x33717: 0x6c083e20, + 0x33718: 0x6c084020, 0x33719: 0x6c0ff220, 0x3371a: 0x6c0ff420, 0x3371b: 0x6c0ff620, + 0x3371c: 0x6c0ff820, 0x3371d: 0x6c1cc420, 0x3371e: 0x6c1cc620, 0x3371f: 0x6c1cc820, + 0x33720: 0x6c1cca20, 0x33721: 0x6c1ccc20, 0x33722: 0x6c1cce20, 0x33723: 0x6c1cd020, + 0x33724: 0x6c1cd220, 0x33725: 0x6c305e20, 0x33726: 0x6c306020, 0x33727: 0x6c306220, + 0x33728: 0x6c306420, 0x33729: 0x6c306620, 0x3372a: 0x6c4aa620, 0x3372b: 0x6c4aa820, + 0x3372c: 0x6c4aaa20, 0x3372d: 0x6c4aac20, 0x3372e: 0x6c4aae20, 0x3372f: 0x6c4ab020, + 0x33730: 0x6c4ab220, 0x33731: 0x6c4ab420, 0x33732: 0x6c4ab620, 0x33733: 0x6c4ab820, + 0x33734: 0x6c6c7e20, 0x33735: 0x6c6c8020, 0x33736: 0x6c6c8220, 0x33737: 0x6c6c8420, + 0x33738: 0x6c6c8620, 0x33739: 0x6c6c8820, 0x3373a: 0x6c6c8a20, 0x3373b: 0x6c6c8c20, + 0x3373c: 0x6c6c8e20, 0x3373d: 0x6c939620, 0x3373e: 0x6c939820, 0x3373f: 0x6c939a20, + // Block 0xcdd, offset 0x33740 + 0x33740: 0x6c939c20, 0x33741: 0x6c939e20, 0x33742: 0x6c93a020, 0x33743: 0x6c93a220, + 0x33744: 0x6c93a420, 0x33745: 0x6c93a620, 0x33746: 0x6c93a820, 0x33747: 0x6c93aa20, + 0x33748: 0x6c93ac20, 0x33749: 0x6c93ae20, 0x3374a: 0x6c93b020, 0x3374b: 0x6c93b220, + 0x3374c: 0x6c93b420, 0x3374d: 0x6c93b620, 0x3374e: 0x6cbfee20, 0x3374f: 0x6cbff020, + 0x33750: 0x6cbff220, 0x33751: 0x6cbff420, 0x33752: 0x6cbff620, 0x33753: 0x6cbff820, + 0x33754: 0x6cbffa20, 0x33755: 0x6cbffc20, 0x33756: 0x6cbffe20, 0x33757: 0x6cc00020, + 0x33758: 0x6cf00620, 0x33759: 0x6cf00820, 0x3375a: 0x6cf00a20, 0x3375b: 0x6cf00c20, + 0x3375c: 0x6cf00e20, 0x3375d: 0x6cf01020, 0x3375e: 0x6d1fbe20, 0x3375f: 0x6d1fc020, + 0x33760: 0x6d1fc220, 0x33761: 0x6d1fc420, 0x33762: 0x6d1fc620, 0x33763: 0x6d1fc820, + 0x33764: 0x6d1fca20, 0x33765: 0x6d1fcc20, 0x33766: 0x6d4d3a20, 0x33767: 0x6d4d3c20, + 0x33768: 0x6d4d3e20, 0x33769: 0x6d4d4020, 0x3376a: 0x6d4d4220, 0x3376b: 0x6d4d4420, + 0x3376c: 0x6d4d4620, 0x3376d: 0x6d4d4820, 0x3376e: 0x6d4d4a20, 0x3376f: 0x6d4d4c20, + 0x33770: 0x6d7a3820, 0x33771: 0x6d7a3a20, 0x33772: 0x6d7a3c20, 0x33773: 0x6d7a3e20, + 0x33774: 0x6da2c820, 0x33775: 0x6da2ca20, 0x33776: 0x6da2cc20, 0x33777: 0x6dc4ba20, + 0x33778: 0x6dc4bc20, 0x33779: 0x6dc4be20, 0x3377a: 0x6dc4c020, 0x3377b: 0x6dc4c220, + 0x3377c: 0x6de1b820, 0x3377d: 0x6de1ba20, 0x3377e: 0x6de1bc20, 0x3377f: 0x6e0d5e20, + // Block 0xcde, offset 0x33780 + 0x33780: 0x6e462420, 0x33781: 0x6c01ae20, 0x33782: 0x6c01b020, 0x33783: 0x6c040820, + 0x33784: 0x6c084220, 0x33785: 0x6c084420, 0x33786: 0x6c084620, 0x33787: 0x6c084820, + 0x33788: 0x6c084a20, 0x33789: 0x6c084c20, 0x3378a: 0x6c084e20, 0x3378b: 0x6c100220, + 0x3378c: 0x6c100420, 0x3378d: 0x6c100620, 0x3378e: 0x6c100820, 0x3378f: 0x6c1ce220, + 0x33790: 0x6c1ce420, 0x33791: 0x6c1ce620, 0x33792: 0x6c1ce820, 0x33793: 0x6c1cea20, + 0x33794: 0x6c1cec20, 0x33795: 0x6c1cee20, 0x33796: 0x6c1cf020, 0x33797: 0x6c1cf220, + 0x33798: 0x6c1cf420, 0x33799: 0x6c1cf620, 0x3379a: 0x6c307020, 0x3379b: 0x6c307220, + 0x3379c: 0x6c307420, 0x3379d: 0x6c307620, 0x3379e: 0x6c307820, 0x3379f: 0x6c307a20, + 0x337a0: 0x6c307c20, 0x337a1: 0x6c307e20, 0x337a2: 0x6c4ac220, 0x337a3: 0x6c4ac420, + 0x337a4: 0x6c4ac620, 0x337a5: 0x6c5fca20, 0x337a6: 0x6c4ac820, 0x337a7: 0x6c4aca20, + 0x337a8: 0x6c6c9620, 0x337a9: 0x6c6c9820, 0x337aa: 0x6c6c9a20, 0x337ab: 0x6c6c9c20, + 0x337ac: 0x6c6c9e20, 0x337ad: 0x6c6ca020, 0x337ae: 0x6c6ca220, 0x337af: 0x6c6ca420, + 0x337b0: 0x6c6ca620, 0x337b1: 0x6c6ca820, 0x337b2: 0x6c6caa20, 0x337b3: 0x6c93c020, + 0x337b4: 0x6c93c220, 0x337b5: 0x6c93c420, 0x337b6: 0x6c93c620, 0x337b7: 0x6c93c820, + 0x337b8: 0x6c93ca20, 0x337b9: 0x6cc00a20, 0x337ba: 0x6cc00c20, 0x337bb: 0x6cc00e20, + 0x337bc: 0x6cc01020, 0x337bd: 0x6cc01220, 0x337be: 0x6cc01420, 0x337bf: 0x6cc01620, + // Block 0xcdf, offset 0x337c0 + 0x337c0: 0x6cc01820, 0x337c1: 0x6cc01a20, 0x337c2: 0x6cc01c20, 0x337c3: 0x6cf01c20, + 0x337c4: 0x6cf01e20, 0x337c5: 0x6cf02020, 0x337c6: 0x6cf02220, 0x337c7: 0x6cf02420, + 0x337c8: 0x6cf02620, 0x337c9: 0x6cf02820, 0x337ca: 0x6cf02a20, 0x337cb: 0x6d1fd020, + 0x337cc: 0x6d1fd220, 0x337cd: 0x6d1fd420, 0x337ce: 0x6d1fd620, 0x337cf: 0x6d1fd820, + 0x337d0: 0x6d4d5220, 0x337d1: 0x6d4d5420, 0x337d2: 0x6d4d5620, 0x337d3: 0x6d4d5820, + 0x337d4: 0x6d4d5a20, 0x337d5: 0x6d4d5c20, 0x337d6: 0x6d7a4220, 0x337d7: 0x6d7a4420, + 0x337d8: 0x6d7a4620, 0x337d9: 0x6d7a4820, 0x337da: 0x6d7a4a20, 0x337db: 0x6da2d620, + 0x337dc: 0x6da2d820, 0x337dd: 0x6e0d6020, 0x337de: 0x6e0d6220, 0x337df: 0x6e1cc820, + 0x337e0: 0x6e1cca20, 0x337e1: 0x6e387220, 0x337e2: 0x6e387420, 0x337e3: 0x6c01b420, + 0x337e4: 0x6c085620, 0x337e5: 0x6c085820, 0x337e6: 0x6c085a20, 0x337e7: 0x6c085c20, + 0x337e8: 0x6c085e20, 0x337e9: 0x6c101020, 0x337ea: 0x6c101220, 0x337eb: 0x6c101420, + 0x337ec: 0x6c101620, 0x337ed: 0x6c101820, 0x337ee: 0x6c101a20, 0x337ef: 0x6c101c20, + 0x337f0: 0x6c101e20, 0x337f1: 0x6c102020, 0x337f2: 0x6c102220, 0x337f3: 0x6c102420, + 0x337f4: 0x6c086020, 0x337f5: 0x6c1d0620, 0x337f6: 0x6c1d0820, 0x337f7: 0x6c1d0a20, + 0x337f8: 0x6c1d0c20, 0x337f9: 0x6c1d0e20, 0x337fa: 0x6c1d1020, 0x337fb: 0x6c1d1220, + 0x337fc: 0x6c1d1420, 0x337fd: 0x6c1d1620, 0x337fe: 0x6c309420, 0x337ff: 0x6c309620, + // Block 0xce0, offset 0x33800 + 0x33800: 0x6c309820, 0x33801: 0x6c309a20, 0x33802: 0x6c309c20, 0x33803: 0x6c309e20, + 0x33804: 0x6c30a020, 0x33805: 0x6c30a220, 0x33806: 0x6c30a420, 0x33807: 0x6c30a620, + 0x33808: 0x6c30a820, 0x33809: 0x6c30aa20, 0x3380a: 0x6c30ac20, 0x3380b: 0x6c30ae20, + 0x3380c: 0x6c4ae020, 0x3380d: 0x6c4ae220, 0x3380e: 0x6c4ae420, 0x3380f: 0x6c4ae620, + 0x33810: 0x6c4ae820, 0x33811: 0x6c4aea20, 0x33812: 0x6c4aec20, 0x33813: 0x6c4aee20, + 0x33814: 0x6c4af020, 0x33815: 0x6c4af220, 0x33816: 0x6c4af420, 0x33817: 0x6c4af620, + 0x33818: 0x6c4af820, 0x33819: 0x6c4afa20, 0x3381a: 0x6c4afc20, 0x3381b: 0x6c4afe20, + 0x3381c: 0x6c4b0020, 0x3381d: 0x6c4b0220, 0x3381e: 0x6c4b0420, 0x3381f: 0x6c4b0620, + 0x33820: 0x6c4b0820, 0x33821: 0x6c4b0a20, 0x33822: 0x6c6cc020, 0x33823: 0x6c6cc220, + 0x33824: 0x6c6cc420, 0x33825: 0x6c6cc620, 0x33826: 0x6c6cc820, 0x33827: 0x6c6cca20, + 0x33828: 0x6c6ccc20, 0x33829: 0x6c6cce20, 0x3382a: 0x6c6cd020, 0x3382b: 0x6c6cd220, + 0x3382c: 0x6c6cd420, 0x3382d: 0x6c6cd620, 0x3382e: 0x6c6cd820, 0x3382f: 0x6c6cda20, + 0x33830: 0x6c6cdc20, 0x33831: 0x6c6cde20, 0x33832: 0x6c6ce020, 0x33833: 0x6c6ce220, + 0x33834: 0x6c6ce420, 0x33835: 0x6c6ce620, 0x33836: 0x6c6ce820, 0x33837: 0x6c6cea20, + 0x33838: 0x6c6cec20, 0x33839: 0x6c6cee20, 0x3383a: 0x6c93da20, 0x3383b: 0x6c93dc20, + 0x3383c: 0x6c93de20, 0x3383d: 0x6c93e020, 0x3383e: 0x6c93e220, 0x3383f: 0x6c93e420, + // Block 0xce1, offset 0x33840 + 0x33840: 0x6c93e620, 0x33841: 0x6c93e820, 0x33842: 0x6c93ea20, 0x33843: 0x6c93ec20, + 0x33844: 0x6c93ee20, 0x33845: 0x6c93f020, 0x33846: 0x6c93f220, 0x33847: 0x6c93f420, + 0x33848: 0x6c93f620, 0x33849: 0x6c93f820, 0x3384a: 0x6c93fa20, 0x3384b: 0x6c93fc20, + 0x3384c: 0x6c93fe20, 0x3384d: 0x6c940020, 0x3384e: 0x6c940220, 0x3384f: 0x6c940420, + 0x33850: 0x6c940620, 0x33851: 0x6c940820, 0x33852: 0x6c940a20, 0x33853: 0x6c940c20, + 0x33854: 0x6cc02a20, 0x33855: 0x6cc02c20, 0x33856: 0x6cc02e20, 0x33857: 0x6cc03020, + 0x33858: 0x6cc03220, 0x33859: 0x6cc03420, 0x3385a: 0x6cc03620, 0x3385b: 0x6cc03820, + 0x3385c: 0x6cc03a20, 0x3385d: 0x6cc03c20, 0x3385e: 0x6cc03e20, 0x3385f: 0x6cc04020, + 0x33860: 0x6cc04220, 0x33861: 0x6cc04420, 0x33862: 0x6cc04620, 0x33863: 0x6cc04820, + 0x33864: 0x6cc04a20, 0x33865: 0x6cc04c20, 0x33866: 0x6cc04e20, 0x33867: 0x6cc05020, + 0x33868: 0x6cc05220, 0x33869: 0x6cc05420, 0x3386a: 0x6cc05620, 0x3386b: 0x6cc05820, + 0x3386c: 0x6cf02e20, 0x3386d: 0x6cf03020, 0x3386e: 0x6cf03220, 0x3386f: 0x6cf03420, + 0x33870: 0x6cf03620, 0x33871: 0x6cf03820, 0x33872: 0x6cf03a20, 0x33873: 0x6cf03c20, + 0x33874: 0x6cf03e20, 0x33875: 0x6cf04020, 0x33876: 0x6cf04220, 0x33877: 0x6cf04420, + 0x33878: 0x6cf04620, 0x33879: 0x6cf04820, 0x3387a: 0x6cf04a20, 0x3387b: 0x6cf04c20, + 0x3387c: 0x6cf04e20, 0x3387d: 0x6cf05020, 0x3387e: 0x6cf05220, 0x3387f: 0x6cf05420, + // Block 0xce2, offset 0x33880 + 0x33880: 0x6cf05620, 0x33881: 0x6cf05820, 0x33882: 0x6cf05a20, 0x33883: 0x6cf05c20, + 0x33884: 0x6d1fe420, 0x33885: 0x6d1fe620, 0x33886: 0x6d1fe820, 0x33887: 0x6d1fea20, + 0x33888: 0x6d1fec20, 0x33889: 0x6d1fee20, 0x3388a: 0x6d1ff020, 0x3388b: 0x6d1ff220, + 0x3388c: 0x6d1ff420, 0x3388d: 0x6d1ff620, 0x3388e: 0x6d1ff820, 0x3388f: 0x6d1ffa20, + 0x33890: 0x6d4d6a20, 0x33891: 0x6d4d6c20, 0x33892: 0x6d4d6e20, 0x33893: 0x6d4d7020, + 0x33894: 0x6d4d7220, 0x33895: 0x6d4d7420, 0x33896: 0x6d4d7620, 0x33897: 0x6d4d7820, + 0x33898: 0x6d4d7a20, 0x33899: 0x6d4d7c20, 0x3389a: 0x6d4d7e20, 0x3389b: 0x6d4d8020, + 0x3389c: 0x6d4d8220, 0x3389d: 0x6d4d8420, 0x3389e: 0x6d4d8620, 0x3389f: 0x6d7a4c20, + 0x338a0: 0x6d7a4e20, 0x338a1: 0x6d7a5020, 0x338a2: 0x6d7a5220, 0x338a3: 0x6d7a5420, + 0x338a4: 0x6d7a5620, 0x338a5: 0x6d7a5820, 0x338a6: 0x6d7a5a20, 0x338a7: 0x6d7a5c20, + 0x338a8: 0x6da2dc20, 0x338a9: 0x6da2de20, 0x338aa: 0x6dc4ca20, 0x338ab: 0x6dc4cc20, + 0x338ac: 0x6de1c220, 0x338ad: 0x6de1c420, 0x338ae: 0x6de1c620, 0x338af: 0x6de1c820, + 0x338b0: 0x6de1ca20, 0x338b1: 0x6df9a820, 0x338b2: 0x6df9aa20, 0x338b3: 0x6df9ac20, + 0x338b4: 0x6df9ae20, 0x338b5: 0x6e0d6620, 0x338b6: 0x6e0d6820, 0x338b7: 0x6e0d6a20, + 0x338b8: 0x6e1ccc20, 0x338b9: 0x6e1cce20, 0x338ba: 0x6e1cd020, 0x338bb: 0x6e31f220, + 0x338bc: 0x6e387620, 0x338bd: 0x6e387820, 0x338be: 0x6c01b820, 0x338bf: 0x6c086220, + // Block 0xce3, offset 0x338c0 + 0x338c0: 0x6c102a20, 0x338c1: 0x6c102c20, 0x338c2: 0x6c102e20, 0x338c3: 0x6c103020, + 0x338c4: 0x6c103220, 0x338c5: 0x6c103420, 0x338c6: 0x6c1d2220, 0x338c7: 0x6c1d2420, + 0x338c8: 0x6c1d2620, 0x338c9: 0x6c1d2820, 0x338ca: 0x6c1d2a20, 0x338cb: 0x6c30b220, + 0x338cc: 0x6c30b420, 0x338cd: 0x6c30b620, 0x338ce: 0x6c4b1220, 0x338cf: 0x6c4b1420, + 0x338d0: 0x6c4b1620, 0x338d1: 0x6c4b1820, 0x338d2: 0x6c4b1a20, 0x338d3: 0x6c4b1c20, + 0x338d4: 0x6c4b1e20, 0x338d5: 0x6c6cf420, 0x338d6: 0x6c6cf620, 0x338d7: 0x6c6cf820, + 0x338d8: 0x6c6cfa20, 0x338d9: 0x6c6cfc20, 0x338da: 0x6c6cfe20, 0x338db: 0x6c941220, + 0x338dc: 0x6c941420, 0x338dd: 0x6cc06220, 0x338de: 0x6cc06420, 0x338df: 0x6cc06620, + 0x338e0: 0x6cc06820, 0x338e1: 0x6cc06a20, 0x338e2: 0x6cc06c20, 0x338e3: 0x6cc06e20, + 0x338e4: 0x6cf06420, 0x338e5: 0x6cf06620, 0x338e6: 0x6d4d8c20, 0x338e7: 0x6d4d8e20, + 0x338e8: 0x6d4d9020, 0x338e9: 0x6d4d9220, 0x338ea: 0x6dc4ce20, 0x338eb: 0x6e0d6c20, + 0x338ec: 0x6e1cd420, 0x338ed: 0x6c041420, 0x338ee: 0x6c041620, 0x338ef: 0x6c041820, + 0x338f0: 0x6c087620, 0x338f1: 0x6c087820, 0x338f2: 0x6c087a20, 0x338f3: 0x6c087c20, + 0x338f4: 0x6c087e20, 0x338f5: 0x6c088020, 0x338f6: 0x6c088220, 0x338f7: 0x6c088420, + 0x338f8: 0x6c088620, 0x338f9: 0x6c088820, 0x338fa: 0x6c088a20, 0x338fb: 0x6c088c20, + 0x338fc: 0x6c088e20, 0x338fd: 0x6c089020, 0x338fe: 0x6c105e20, 0x338ff: 0x6c106020, + // Block 0xce4, offset 0x33900 + 0x33900: 0x6c106220, 0x33901: 0x6c106420, 0x33902: 0x6c106620, 0x33903: 0x6c106820, + 0x33904: 0x6c106a20, 0x33905: 0x6c106c20, 0x33906: 0x6c106e20, 0x33907: 0x6c107020, + 0x33908: 0x6c107220, 0x33909: 0x6c107420, 0x3390a: 0x6c107620, 0x3390b: 0x6c107820, + 0x3390c: 0x6c107a20, 0x3390d: 0x6c107c20, 0x3390e: 0x6c107e20, 0x3390f: 0x6c108020, + 0x33910: 0x6c108220, 0x33911: 0x6c108420, 0x33912: 0x6c108620, 0x33913: 0x6c1d6c20, + 0x33914: 0x6c1d6e20, 0x33915: 0x6c1d7020, 0x33916: 0x6c1d7220, 0x33917: 0x6c1d7420, + 0x33918: 0x6c1d7620, 0x33919: 0x6c1d7820, 0x3391a: 0x6c1d7a20, 0x3391b: 0x6c1d7c20, + 0x3391c: 0x6c1d7e20, 0x3391d: 0x6c1d8020, 0x3391e: 0x6c1d8220, 0x3391f: 0x6c1d8420, + 0x33920: 0x6c1d8620, 0x33921: 0x6c1d8820, 0x33922: 0x6c1d8a20, 0x33923: 0x6c1d8c20, + 0x33924: 0x6c1d8e20, 0x33925: 0x6c1d9020, 0x33926: 0x6c1d9220, 0x33927: 0x6c1d9420, + 0x33928: 0x6c1d9620, 0x33929: 0x6c1d9820, 0x3392a: 0x6c1d9a20, 0x3392b: 0x6c1d9c20, + 0x3392c: 0x6c1d9e20, 0x3392d: 0x6c1da020, 0x3392e: 0x6c1da220, 0x3392f: 0x6c1da420, + 0x33930: 0x6c1da620, 0x33931: 0x6c1da820, 0x33932: 0x6c1daa20, 0x33933: 0x6c1dac20, + 0x33934: 0x6c1dae20, 0x33935: 0x6c1db020, 0x33936: 0x6c1db220, 0x33937: 0x6c1db420, + 0x33938: 0x6c1db620, 0x33939: 0x6c1db820, 0x3393a: 0x6c1dba20, 0x3393b: 0x6c1dbc20, + 0x3393c: 0x6c1dbe20, 0x3393d: 0x6c1dc020, 0x3393e: 0x6c1dc220, 0x3393f: 0x6c1dc420, + // Block 0xce5, offset 0x33940 + 0x33940: 0x6c1dc620, 0x33941: 0x6c1dc820, 0x33942: 0x6c1dca20, 0x33943: 0x6c312020, + 0x33944: 0x6c312220, 0x33945: 0x6c312420, 0x33946: 0x6c312620, 0x33947: 0x6c312820, + 0x33948: 0x6c312a20, 0x33949: 0x6c312c20, 0x3394a: 0x6c312e20, 0x3394b: 0x6c313020, + 0x3394c: 0x6c313220, 0x3394d: 0x6c313420, 0x3394e: 0x6c313620, 0x3394f: 0x6c313820, + 0x33950: 0x6c313a20, 0x33951: 0x6c313c20, 0x33952: 0x6c313e20, 0x33953: 0x6c314020, + 0x33954: 0x6c314220, 0x33955: 0x6c314420, 0x33956: 0x6c314620, 0x33957: 0x6c314820, + 0x33958: 0x6c314a20, 0x33959: 0x6c314c20, 0x3395a: 0x6c314e20, 0x3395b: 0x6c315020, + 0x3395c: 0x6c315220, 0x3395d: 0x6c315420, 0x3395e: 0x6c315620, 0x3395f: 0x6c315820, + 0x33960: 0x6c315a20, 0x33961: 0x6c315c20, 0x33962: 0x6c315e20, 0x33963: 0x6c316020, + 0x33964: 0x6c3bdc20, 0x33965: 0x6c316220, 0x33966: 0x6c316420, 0x33967: 0x6c316620, + 0x33968: 0x6c316820, 0x33969: 0x6c316a20, 0x3396a: 0x6c316c20, 0x3396b: 0x6c4b6a20, + 0x3396c: 0x6c4b6c20, 0x3396d: 0x6c4b6e20, 0x3396e: 0x6c4b7020, 0x3396f: 0x6c4b7220, + 0x33970: 0x6c4b7420, 0x33971: 0x6c4b7620, 0x33972: 0x6c4b7820, 0x33973: 0x6c4b7a20, + 0x33974: 0x6c4b7c20, 0x33975: 0x6c4b7e20, 0x33976: 0x6c4b8020, 0x33977: 0x6c4b8220, + 0x33978: 0x6c4b8420, 0x33979: 0x6c4b8620, 0x3397a: 0x6c4b8820, 0x3397b: 0x6c4b8a20, + 0x3397c: 0x6c4b8c20, 0x3397d: 0x6c4b8e20, 0x3397e: 0x6c4b9020, 0x3397f: 0x6c4b9220, + // Block 0xce6, offset 0x33980 + 0x33980: 0x6c4b9420, 0x33981: 0x6c4b9620, 0x33982: 0x6c4b9820, 0x33983: 0x6c4b9a20, + 0x33984: 0x6c4b9c20, 0x33985: 0x6c4b9e20, 0x33986: 0x6c4ba020, 0x33987: 0x6c4ba220, + 0x33988: 0x6c4ba420, 0x33989: 0x6c4ba620, 0x3398a: 0x6c4ba820, 0x3398b: 0x6c4baa20, + 0x3398c: 0x6c4bac20, 0x3398d: 0x6c4bae20, 0x3398e: 0x6c4bb020, 0x3398f: 0x6c4bb220, + 0x33990: 0x6c4bb420, 0x33991: 0x6c4bb620, 0x33992: 0x6c4bb820, 0x33993: 0x6c4bba20, + 0x33994: 0x6c4bbc20, 0x33995: 0x6c6d5a20, 0x33996: 0x6c6d5c20, 0x33997: 0x6c6d5e20, + 0x33998: 0x6c6d6020, 0x33999: 0x6c6d6220, 0x3399a: 0x6c6d6420, 0x3399b: 0x6c6d6620, + 0x3399c: 0x6c6d6820, 0x3399d: 0x6c6d6a20, 0x3399e: 0x6c6d6c20, 0x3399f: 0x6c6d6e20, + 0x339a0: 0x6c6d7020, 0x339a1: 0x6c6d7220, 0x339a2: 0x6c6d7420, 0x339a3: 0x6c6d7620, + 0x339a4: 0x6c6d7820, 0x339a5: 0x6c6d7a20, 0x339a6: 0x6c6d7c20, 0x339a7: 0x6c6d7e20, + 0x339a8: 0x6c6d8020, 0x339a9: 0x6c6d8220, 0x339aa: 0x6c6d8420, 0x339ab: 0x6c6d8620, + 0x339ac: 0x6c6d8820, 0x339ad: 0x6c6d8a20, 0x339ae: 0x6c6d8c20, 0x339af: 0x6c6d8e20, + 0x339b0: 0x6c6d9020, 0x339b1: 0x6c6d9220, 0x339b2: 0x6c6d9420, 0x339b3: 0x6c6d9620, + 0x339b4: 0x6c6d9820, 0x339b5: 0x6c6d9a20, 0x339b6: 0x6c6d9c20, 0x339b7: 0x6c6d9e20, + 0x339b8: 0x6c6da020, 0x339b9: 0x6c6da220, 0x339ba: 0x6c6da420, 0x339bb: 0x6c6da620, + 0x339bc: 0x6c6da820, 0x339bd: 0x6c6daa20, 0x339be: 0x6c6dac20, 0x339bf: 0x6c6dae20, + // Block 0xce7, offset 0x339c0 + 0x339c0: 0x6c6db020, 0x339c1: 0x6c6db220, 0x339c2: 0x6c6db420, 0x339c3: 0x6c6db620, + 0x339c4: 0x6c6db820, 0x339c5: 0x6c6dba20, 0x339c6: 0x6c6dbc20, 0x339c7: 0x6c6dbe20, + 0x339c8: 0x6c6dc020, 0x339c9: 0x6c6dc220, 0x339ca: 0x6c6dc420, 0x339cb: 0x6c6dc620, + 0x339cc: 0x6c6dc820, 0x339cd: 0x6c6dca20, 0x339ce: 0x6c6dcc20, 0x339cf: 0x6c6dce20, + 0x339d0: 0x6c6dd020, 0x339d1: 0x6c948a20, 0x339d2: 0x6c948c20, 0x339d3: 0x6c948e20, + 0x339d4: 0x6c949020, 0x339d5: 0x6c949220, 0x339d6: 0x6c949420, 0x339d7: 0x6c949620, + 0x339d8: 0x6c949820, 0x339d9: 0x6c949a20, 0x339da: 0x6c949c20, 0x339db: 0x6c949e20, + 0x339dc: 0x6c94a020, 0x339dd: 0x6c94a220, 0x339de: 0x6c94a420, 0x339df: 0x6c94a620, + 0x339e0: 0x6c94a820, 0x339e1: 0x6c94aa20, 0x339e2: 0x6c94ac20, 0x339e3: 0x6c94ae20, + 0x339e4: 0x6c94b020, 0x339e5: 0x6c94b220, 0x339e6: 0x6c94b420, 0x339e7: 0x6c94b620, + 0x339e8: 0x6c94b820, 0x339e9: 0x6c94ba20, 0x339ea: 0x6c94bc20, 0x339eb: 0x6c94be20, + 0x339ec: 0x6c94c020, 0x339ed: 0x6c94c220, 0x339ee: 0x6c94c420, 0x339ef: 0x6c94c620, + 0x339f0: 0x6c94c820, 0x339f1: 0x6c94ca20, 0x339f2: 0x6c94cc20, 0x339f3: 0x6c94ce20, + 0x339f4: 0x6c94d020, 0x339f5: 0x6c94d220, 0x339f6: 0x6c94d420, 0x339f7: 0x6c94d620, + 0x339f8: 0x6c94d820, 0x339f9: 0x6c94da20, 0x339fa: 0x6c94dc20, 0x339fb: 0x6c94de20, + 0x339fc: 0x6c94e020, 0x339fd: 0x6c94e220, 0x339fe: 0x6c94e420, 0x339ff: 0x6c94e620, + // Block 0xce8, offset 0x33a00 + 0x33a00: 0x6c94e820, 0x33a01: 0x6c94ea20, 0x33a02: 0x6c94ec20, 0x33a03: 0x6c94ee20, + 0x33a04: 0x6c94f020, 0x33a05: 0x6c94f220, 0x33a06: 0x6c94f420, 0x33a07: 0x6c94f620, + 0x33a08: 0x6c94f820, 0x33a09: 0x6c94fa20, 0x33a0a: 0x6c94fc20, 0x33a0b: 0x6c94fe20, + 0x33a0c: 0x6c950020, 0x33a0d: 0x6c950220, 0x33a0e: 0x6c950420, 0x33a0f: 0x6c950620, + 0x33a10: 0x6c950820, 0x33a11: 0x6c950a20, 0x33a12: 0x6c950c20, 0x33a13: 0x6c950e20, + 0x33a14: 0x6c951020, 0x33a15: 0x6c951220, 0x33a16: 0x6c951420, 0x33a17: 0x6c951620, + 0x33a18: 0x6c951820, 0x33a19: 0x6c951a20, 0x33a1a: 0x6c951c20, 0x33a1b: 0x6c951e20, + 0x33a1c: 0x6c952020, 0x33a1d: 0x6c952220, 0x33a1e: 0x6c952420, 0x33a1f: 0x6c952620, + 0x33a20: 0x6c952820, 0x33a21: 0x6c952a20, 0x33a22: 0x6c952c20, 0x33a23: 0x6c952e20, + 0x33a24: 0x6c953020, 0x33a25: 0x6c953220, 0x33a26: 0x6c953420, 0x33a27: 0x6c953620, + 0x33a28: 0x6c953820, 0x33a29: 0x6c953a20, 0x33a2a: 0x6cc0de20, 0x33a2b: 0x6cc0e020, + 0x33a2c: 0x6cc0e220, 0x33a2d: 0x6cc0e420, 0x33a2e: 0x6cc0e620, 0x33a2f: 0x6cc0e820, + 0x33a30: 0x6cc0ea20, 0x33a31: 0x6cc0ec20, 0x33a32: 0x6cc0ee20, 0x33a33: 0x6cc0f020, + 0x33a34: 0x6cc0f220, 0x33a35: 0x6cc0f420, 0x33a36: 0x6cc0f620, 0x33a37: 0x6cc0f820, + 0x33a38: 0x6cc0fa20, 0x33a39: 0x6cc0fc20, 0x33a3a: 0x6cc0fe20, 0x33a3b: 0x6cc10020, + 0x33a3c: 0x6cc10220, 0x33a3d: 0x6cc10420, 0x33a3e: 0x6cc10620, 0x33a3f: 0x6cc10820, + // Block 0xce9, offset 0x33a40 + 0x33a40: 0x6cc10a20, 0x33a41: 0x6cc10c20, 0x33a42: 0x6cc10e20, 0x33a43: 0x6cc11020, + 0x33a44: 0x6cc11220, 0x33a45: 0x6cc11420, 0x33a46: 0x6cc11620, 0x33a47: 0x6cc11820, + 0x33a48: 0x6cc11a20, 0x33a49: 0x6cc11c20, 0x33a4a: 0x6cc11e20, 0x33a4b: 0x6cc12020, + 0x33a4c: 0x6cc12220, 0x33a4d: 0x6cc12420, 0x33a4e: 0x6cc12620, 0x33a4f: 0x6cc12820, + 0x33a50: 0x6cc12a20, 0x33a51: 0x6cc12c20, 0x33a52: 0x6cc12e20, 0x33a53: 0x6cc13020, + 0x33a54: 0x6cc13220, 0x33a55: 0x6cc13420, 0x33a56: 0x6cc13620, 0x33a57: 0x6cc13820, + 0x33a58: 0x6cc13a20, 0x33a59: 0x6cc13c20, 0x33a5a: 0x6cc13e20, 0x33a5b: 0x6cc14020, + 0x33a5c: 0x6cc14220, 0x33a5d: 0x6cc14420, 0x33a5e: 0x6cc14620, 0x33a5f: 0x6cc14820, + 0x33a60: 0x6cc14a20, 0x33a61: 0x6cc14c20, 0x33a62: 0x6cc14e20, 0x33a63: 0x6cc15020, + 0x33a64: 0x6cc15220, 0x33a65: 0x6cc15420, 0x33a66: 0x6cc15620, 0x33a67: 0x6cc15820, + 0x33a68: 0x6cc15a20, 0x33a69: 0x6cc15c20, 0x33a6a: 0x6cf0ac20, 0x33a6b: 0x6cf0ae20, + 0x33a6c: 0x6cf0b020, 0x33a6d: 0x6cf0b220, 0x33a6e: 0x6cf0b420, 0x33a6f: 0x6cf0b620, + 0x33a70: 0x6cf0b820, 0x33a71: 0x6cf0ba20, 0x33a72: 0x6cf0bc20, 0x33a73: 0x6cf0be20, + 0x33a74: 0x6cf0c020, 0x33a75: 0x6cf0c220, 0x33a76: 0x6cf0c420, 0x33a77: 0x6cf0c620, + 0x33a78: 0x6cf0c820, 0x33a79: 0x6cf0ca20, 0x33a7a: 0x6cf0cc20, 0x33a7b: 0x6cf0ce20, + 0x33a7c: 0x6cf0d020, 0x33a7d: 0x6cf0d220, 0x33a7e: 0x6cf0d420, 0x33a7f: 0x6cf0d620, + // Block 0xcea, offset 0x33a80 + 0x33a80: 0x6cf0d820, 0x33a81: 0x6cf0da20, 0x33a82: 0x6cf0dc20, 0x33a83: 0x6cf0de20, + 0x33a84: 0x6cf0e020, 0x33a85: 0x6cf0e220, 0x33a86: 0x6cf0e420, 0x33a87: 0x6cf0e620, + 0x33a88: 0x6cf0e820, 0x33a89: 0x6cf0ea20, 0x33a8a: 0x6cf0ec20, 0x33a8b: 0x6cf0ee20, + 0x33a8c: 0x6cf0f020, 0x33a8d: 0x6cf0f220, 0x33a8e: 0x6cf0f420, 0x33a8f: 0x6cf0f620, + 0x33a90: 0x6cf0f820, 0x33a91: 0x6cf0fa20, 0x33a92: 0x6cf0fc20, 0x33a93: 0x6cf0fe20, + 0x33a94: 0x6cf10020, 0x33a95: 0x6cf10220, 0x33a96: 0x6cf10420, 0x33a97: 0x6cf10620, + 0x33a98: 0x6d204820, 0x33a99: 0x6d204a20, 0x33a9a: 0x6d204c20, 0x33a9b: 0x6d204e20, + 0x33a9c: 0x6d205020, 0x33a9d: 0x6d205220, 0x33a9e: 0x6d205420, 0x33a9f: 0x6d205620, + 0x33aa0: 0x6d205820, 0x33aa1: 0x6d205a20, 0x33aa2: 0x6d205c20, 0x33aa3: 0x6d205e20, + 0x33aa4: 0x6d206020, 0x33aa5: 0x6d206220, 0x33aa6: 0x6d206420, 0x33aa7: 0x6d206620, + 0x33aa8: 0x6d206820, 0x33aa9: 0x6d206a20, 0x33aaa: 0x6d206c20, 0x33aab: 0x6d206e20, + 0x33aac: 0x6d207020, 0x33aad: 0x6d207220, 0x33aae: 0x6d207420, 0x33aaf: 0x6d207620, + 0x33ab0: 0x6d207820, 0x33ab1: 0x6d207a20, 0x33ab2: 0x6d207c20, 0x33ab3: 0x6d207e20, + 0x33ab4: 0x6d208020, 0x33ab5: 0x6d208220, 0x33ab6: 0x6d208420, 0x33ab7: 0x6d208620, + 0x33ab8: 0x6d208820, 0x33ab9: 0x6d208a20, 0x33aba: 0x6d208c20, 0x33abb: 0x6d208e20, + 0x33abc: 0x6d209020, 0x33abd: 0x6d209220, 0x33abe: 0x6d209420, 0x33abf: 0x6d209620, + // Block 0xceb, offset 0x33ac0 + 0x33ac0: 0x6d209820, 0x33ac1: 0x6d209a20, 0x33ac2: 0x6d209c20, 0x33ac3: 0x6d209e20, + 0x33ac4: 0x6d20a020, 0x33ac5: 0x6d20a220, 0x33ac6: 0x6d20a420, 0x33ac7: 0x6d20a620, + 0x33ac8: 0x6d20a820, 0x33ac9: 0x6d20aa20, 0x33aca: 0x6d4dda20, 0x33acb: 0x6d4ddc20, + 0x33acc: 0x6d4dde20, 0x33acd: 0x6d4de020, 0x33ace: 0x6d4de220, 0x33acf: 0x6d4de420, + 0x33ad0: 0x6d4de620, 0x33ad1: 0x6d4de820, 0x33ad2: 0x6d4dea20, 0x33ad3: 0x6d4dec20, + 0x33ad4: 0x6d4dee20, 0x33ad5: 0x6d4df020, 0x33ad6: 0x6d4df220, 0x33ad7: 0x6d4df420, + 0x33ad8: 0x6d4df620, 0x33ad9: 0x6d4df820, 0x33ada: 0x6d4dfa20, 0x33adb: 0x6d4dfc20, + 0x33adc: 0x6d4dfe20, 0x33add: 0x6d4e0020, 0x33ade: 0x6d4e0220, 0x33adf: 0x6d4e0420, + 0x33ae0: 0x6d4e0620, 0x33ae1: 0x6d4e0820, 0x33ae2: 0x6d4e0a20, 0x33ae3: 0x6d4e0c20, + 0x33ae4: 0x6d4e0e20, 0x33ae5: 0x6d4e1020, 0x33ae6: 0x6d4e1220, 0x33ae7: 0x6d4e1420, + 0x33ae8: 0x6d4e1620, 0x33ae9: 0x6d4e1820, 0x33aea: 0x6d4e1a20, 0x33aeb: 0x6d4e1c20, + 0x33aec: 0x6d4e1e20, 0x33aed: 0x6d4e2020, 0x33aee: 0x6d4e2220, 0x33aef: 0x6d4e2420, + 0x33af0: 0x6d4e2620, 0x33af1: 0x6d4e2820, 0x33af2: 0x6d4e2a20, 0x33af3: 0x6d4e2c20, + 0x33af4: 0x6d4e2e20, 0x33af5: 0x6d4e3020, 0x33af6: 0x6d4e3220, 0x33af7: 0x6d4e3420, + 0x33af8: 0x6d4e3620, 0x33af9: 0x6d4e3820, 0x33afa: 0x6d4e3a20, 0x33afb: 0x6d4e3c20, + 0x33afc: 0x6d4e3e20, 0x33afd: 0x6d7a9020, 0x33afe: 0x6d7a9220, 0x33aff: 0x6d7a9420, + // Block 0xcec, offset 0x33b00 + 0x33b00: 0x6d7a9620, 0x33b01: 0x6d7a9820, 0x33b02: 0x6d7a9a20, 0x33b03: 0x6d7a9c20, + 0x33b04: 0x6d7a9e20, 0x33b05: 0x6d7aa020, 0x33b06: 0x6d7aa220, 0x33b07: 0x6d7aa420, + 0x33b08: 0x6d7aa620, 0x33b09: 0x6da2fc20, 0x33b0a: 0x6d7aa820, 0x33b0b: 0x6d7aaa20, + 0x33b0c: 0x6d7aac20, 0x33b0d: 0x6d7aae20, 0x33b0e: 0x6d7ab020, 0x33b0f: 0x6d7ab220, + 0x33b10: 0x6d7ab420, 0x33b11: 0x6d7ab620, 0x33b12: 0x6d7ab820, 0x33b13: 0x6d7aba20, + 0x33b14: 0x6d7abc20, 0x33b15: 0x6d7abe20, 0x33b16: 0x6d7ac020, 0x33b17: 0x6d7ac220, + 0x33b18: 0x6d7ac420, 0x33b19: 0x6d7ac620, 0x33b1a: 0x6d7ac820, 0x33b1b: 0x6d7aca20, + 0x33b1c: 0x6da2fe20, 0x33b1d: 0x6da30020, 0x33b1e: 0x6da30220, 0x33b1f: 0x6da30420, + 0x33b20: 0x6da30620, 0x33b21: 0x6da30820, 0x33b22: 0x6da30a20, 0x33b23: 0x6da30c20, + 0x33b24: 0x6da30e20, 0x33b25: 0x6da31020, 0x33b26: 0x6da31220, 0x33b27: 0x6da31420, + 0x33b28: 0x6da31620, 0x33b29: 0x6da31820, 0x33b2a: 0x6da31a20, 0x33b2b: 0x6da31c20, + 0x33b2c: 0x6da31e20, 0x33b2d: 0x6da32020, 0x33b2e: 0x6da32220, 0x33b2f: 0x6da32420, + 0x33b30: 0x6da32620, 0x33b31: 0x6da32820, 0x33b32: 0x6da32a20, 0x33b33: 0x6da32c20, + 0x33b34: 0x6da32e20, 0x33b35: 0x6da33020, 0x33b36: 0x6da33220, 0x33b37: 0x6da33420, + 0x33b38: 0x6da33620, 0x33b39: 0x6da33820, 0x33b3a: 0x6da33a20, 0x33b3b: 0x6da33c20, + 0x33b3c: 0x6da33e20, 0x33b3d: 0x6da34020, 0x33b3e: 0x6da34220, 0x33b3f: 0x6da34420, + // Block 0xced, offset 0x33b40 + 0x33b40: 0x6da34620, 0x33b41: 0x6da34820, 0x33b42: 0x6dc4dc20, 0x33b43: 0x6dc4de20, + 0x33b44: 0x6dc4e020, 0x33b45: 0x6dc4e220, 0x33b46: 0x6dc4e420, 0x33b47: 0x6dc4e620, + 0x33b48: 0x6dc4e820, 0x33b49: 0x6dc4ea20, 0x33b4a: 0x6dc4ec20, 0x33b4b: 0x6dc4ee20, + 0x33b4c: 0x6dc4f020, 0x33b4d: 0x6dc4f220, 0x33b4e: 0x6dc4f420, 0x33b4f: 0x6dc4f620, + 0x33b50: 0x6dc4f820, 0x33b51: 0x6dc4fa20, 0x33b52: 0x6dc4fc20, 0x33b53: 0x6dc4fe20, + 0x33b54: 0x6dc50020, 0x33b55: 0x6dc50220, 0x33b56: 0x6dc50420, 0x33b57: 0x6dc45020, + 0x33b58: 0x6de1de20, 0x33b59: 0x6de1e020, 0x33b5a: 0x6de1e220, 0x33b5b: 0x6de1e420, + 0x33b5c: 0x6de1e620, 0x33b5d: 0x6de1e820, 0x33b5e: 0x6de1ea20, 0x33b5f: 0x6de1ec20, + 0x33b60: 0x6dc50620, 0x33b61: 0x6de1ee20, 0x33b62: 0x6de1f020, 0x33b63: 0x6de1f220, + 0x33b64: 0x6de1f420, 0x33b65: 0x6de1f620, 0x33b66: 0x6de1f820, 0x33b67: 0x6de1fa20, + 0x33b68: 0x6de1fc20, 0x33b69: 0x6de1fe20, 0x33b6a: 0x6de20020, 0x33b6b: 0x6de20220, + 0x33b6c: 0x6de20420, 0x33b6d: 0x6de20620, 0x33b6e: 0x6df9be20, 0x33b6f: 0x6df9c020, + 0x33b70: 0x6df9c220, 0x33b71: 0x6df9c420, 0x33b72: 0x6df9c620, 0x33b73: 0x6df9c820, + 0x33b74: 0x6df9ca20, 0x33b75: 0x6df9cc20, 0x33b76: 0x6df9ce20, 0x33b77: 0x6df9d020, + 0x33b78: 0x6df9d220, 0x33b79: 0x6df9d420, 0x33b7a: 0x6df9d620, 0x33b7b: 0x6da34a20, + 0x33b7c: 0x6e0d7a20, 0x33b7d: 0x6e0d7c20, 0x33b7e: 0x6e0d7e20, 0x33b7f: 0x6e0d8020, + // Block 0xcee, offset 0x33b80 + 0x33b80: 0x6e0d8220, 0x33b81: 0x6e0d8420, 0x33b82: 0x6e0d8620, 0x33b83: 0x6e0d8820, + 0x33b84: 0x6e0d8a20, 0x33b85: 0x6e0d8c20, 0x33b86: 0x6e0d8e20, 0x33b87: 0x6e1ce620, + 0x33b88: 0x6e1ce820, 0x33b89: 0x6e1cea20, 0x33b8a: 0x6e1cec20, 0x33b8b: 0x6e1cee20, + 0x33b8c: 0x6e1cf020, 0x33b8d: 0x6e1cf220, 0x33b8e: 0x6e1cf420, 0x33b8f: 0x6e1cf620, + 0x33b90: 0x6e1cf820, 0x33b91: 0x6e1cfa20, 0x33b92: 0x6e28b820, 0x33b93: 0x6e28ba20, + 0x33b94: 0x6e31f620, 0x33b95: 0x6e31f820, 0x33b96: 0x6e31fa20, 0x33b97: 0x6e31fc20, + 0x33b98: 0x6e31fe20, 0x33b99: 0x6e320020, 0x33b9a: 0x6e320220, 0x33b9b: 0x6e320420, + 0x33b9c: 0x6e320620, 0x33b9d: 0x6e387a20, 0x33b9e: 0x6e387c20, 0x33b9f: 0x6e387e20, + 0x33ba0: 0x6e402420, 0x33ba1: 0x6e402620, 0x33ba2: 0x6e429220, 0x33ba3: 0x6e402820, + 0x33ba4: 0x6e402a20, 0x33ba5: 0x6e462620, 0x33ba6: 0x6c01c020, 0x33ba7: 0x6c041a20, + 0x33ba8: 0x6c01c220, 0x33ba9: 0x6c109820, 0x33baa: 0x6c109a20, 0x33bab: 0x6c109c20, + 0x33bac: 0x6c109e20, 0x33bad: 0x6c10a020, 0x33bae: 0x6c1dd620, 0x33baf: 0x6c1dd820, + 0x33bb0: 0x6c1dda20, 0x33bb1: 0x6c317a20, 0x33bb2: 0x6c317c20, 0x33bb3: 0x6c317e20, + 0x33bb4: 0x6c318020, 0x33bb5: 0x6c318220, 0x33bb6: 0x6c318420, 0x33bb7: 0x6c4bce20, + 0x33bb8: 0x6c4bd020, 0x33bb9: 0x6c4bd220, 0x33bba: 0x6c4bd420, 0x33bbb: 0x6c4bd620, + 0x33bbc: 0x6c6de420, 0x33bbd: 0x6c6de620, 0x33bbe: 0x6c954e20, 0x33bbf: 0x6c955020, + // Block 0xcef, offset 0x33bc0 + 0x33bc0: 0x6c955220, 0x33bc1: 0x6cc16c20, 0x33bc2: 0x6d20ba20, 0x33bc3: 0x6d4e4a20, + 0x33bc4: 0x6d7ad420, 0x33bc5: 0x6d7ad620, 0x33bc6: 0x6d7ad820, 0x33bc7: 0x6da35420, + 0x33bc8: 0x6dc50820, 0x33bc9: 0x6de20c20, 0x33bca: 0x6de20e20, 0x33bcb: 0x6df9d820, + 0x33bcc: 0x6e1cfe20, 0x33bcd: 0x6e1d0020, 0x33bce: 0x6e320820, 0x33bcf: 0x6e402c20, + 0x33bd0: 0x6e442a20, 0x33bd1: 0x6c041e20, 0x33bd2: 0x6c042020, 0x33bd3: 0x6c042220, + 0x33bd4: 0x6c042420, 0x33bd5: 0x6c042620, 0x33bd6: 0x6c089820, 0x33bd7: 0x6c089a20, + 0x33bd8: 0x6c089c20, 0x33bd9: 0x6c089e20, 0x33bda: 0x6c10a620, 0x33bdb: 0x6c10a820, + 0x33bdc: 0x6c1de020, 0x33bdd: 0x6c1de220, 0x33bde: 0x6c1de420, 0x33bdf: 0x6c318620, + 0x33be0: 0x6c4bde20, 0x33be1: 0x6c6dee20, 0x33be2: 0x6c6df020, 0x33be3: 0x6c955420, + 0x33be4: 0x6cc17220, 0x33be5: 0x6cc17420, 0x33be6: 0x6cf11220, 0x33be7: 0x6cf11420, + 0x33be8: 0x6d4e4e20, 0x33be9: 0x6d4e5020, 0x33bea: 0x6d4e5220, 0x33beb: 0x6d4e5420, + 0x33bec: 0x6d7ada20, 0x33bed: 0x6da35620, 0x33bee: 0x6dc50a20, 0x33bef: 0x6de21020, + 0x33bf0: 0x6e0d9220, 0x33bf1: 0x6e0d9420, 0x33bf2: 0x6e0d9620, 0x33bf3: 0x6c042a20, + 0x33bf4: 0x6c08a220, 0x33bf5: 0x6c08a420, 0x33bf6: 0x6c10ac20, 0x33bf7: 0x6c318c20, + 0x33bf8: 0x6c318e20, 0x33bf9: 0x6c4bea20, 0x33bfa: 0x6c4bec20, 0x33bfb: 0x6c4bee20, + 0x33bfc: 0x6c6df420, 0x33bfd: 0x6c6df620, 0x33bfe: 0x6c6df820, 0x33bff: 0x6c6dfa20, + // Block 0xcf0, offset 0x33c00 + 0x33c00: 0x6c955a20, 0x33c01: 0x6c955c20, 0x33c02: 0x6c955e20, 0x33c03: 0x6c956020, + 0x33c04: 0x6c956220, 0x33c05: 0x6cc17a20, 0x33c06: 0x6cc17c20, 0x33c07: 0x6cc17e20, + 0x33c08: 0x6cc18020, 0x33c09: 0x6cc18220, 0x33c0a: 0x6cf11820, 0x33c0b: 0x6d4e5620, + 0x33c0c: 0x6d4e5820, 0x33c0d: 0x6d7ae020, 0x33c0e: 0x6da35a20, 0x33c0f: 0x6d7ae220, + 0x33c10: 0x6dc50e20, 0x33c11: 0x6df9da20, 0x33c12: 0x6c08b220, 0x33c13: 0x6c08b420, + 0x33c14: 0x6c08b620, 0x33c15: 0x6c10ba20, 0x33c16: 0x6c10bc20, 0x33c17: 0x6c10be20, + 0x33c18: 0x6c10c020, 0x33c19: 0x6c10c220, 0x33c1a: 0x6c10c420, 0x33c1b: 0x6c10c620, + 0x33c1c: 0x6c10c820, 0x33c1d: 0x6c10ca20, 0x33c1e: 0x6c10cc20, 0x33c1f: 0x6c10ce20, + 0x33c20: 0x6c10d020, 0x33c21: 0x6c10d220, 0x33c22: 0x6c10d420, 0x33c23: 0x6c10d620, + 0x33c24: 0x6c10d820, 0x33c25: 0x6c1e0620, 0x33c26: 0x6c1e0820, 0x33c27: 0x6c1e0a20, + 0x33c28: 0x6c1e0c20, 0x33c29: 0x6c1e0e20, 0x33c2a: 0x6c1e1020, 0x33c2b: 0x6c1e1220, + 0x33c2c: 0x6c1e1420, 0x33c2d: 0x6c1e1620, 0x33c2e: 0x6c1e1820, 0x33c2f: 0x6c1e1a20, + 0x33c30: 0x6c1e1c20, 0x33c31: 0x6c1e1e20, 0x33c32: 0x6c1e2020, 0x33c33: 0x6c1e2220, + 0x33c34: 0x6c1e2420, 0x33c35: 0x6c1e2620, 0x33c36: 0x6c1e2820, 0x33c37: 0x6c1e2a20, + 0x33c38: 0x6c1e2c20, 0x33c39: 0x6c1e2e20, 0x33c3a: 0x6c1e3020, 0x33c3b: 0x6c31b220, + 0x33c3c: 0x6c31b420, 0x33c3d: 0x6c31b620, 0x33c3e: 0x6c31b820, 0x33c3f: 0x6c31ba20, + // Block 0xcf1, offset 0x33c40 + 0x33c40: 0x6c31bc20, 0x33c41: 0x6c31be20, 0x33c42: 0x6c31c020, 0x33c43: 0x6c31c220, + 0x33c44: 0x6c31c420, 0x33c45: 0x6c31c620, 0x33c46: 0x6c31c820, 0x33c47: 0x6c31ca20, + 0x33c48: 0x6c31cc20, 0x33c49: 0x6c31ce20, 0x33c4a: 0x6c31d020, 0x33c4b: 0x6c31d220, + 0x33c4c: 0x6c31d420, 0x33c4d: 0x6c31d620, 0x33c4e: 0x6c31d820, 0x33c4f: 0x6c31da20, + 0x33c50: 0x6c4c1220, 0x33c51: 0x6c4c1420, 0x33c52: 0x6c4c1620, 0x33c53: 0x6c4c1820, + 0x33c54: 0x6c4c1a20, 0x33c55: 0x6c4c1c20, 0x33c56: 0x6c4c1e20, 0x33c57: 0x6c4c2020, + 0x33c58: 0x6c4c2220, 0x33c59: 0x6c4c2420, 0x33c5a: 0x6c4c2620, 0x33c5b: 0x6c4c2820, + 0x33c5c: 0x6c4c2a20, 0x33c5d: 0x6c4c2c20, 0x33c5e: 0x6c4c2e20, 0x33c5f: 0x6c4c3020, + 0x33c60: 0x6c4c3220, 0x33c61: 0x6c4c3420, 0x33c62: 0x6c4c3620, 0x33c63: 0x6c4c3820, + 0x33c64: 0x6c4c3a20, 0x33c65: 0x6c4c3c20, 0x33c66: 0x6c4c3e20, 0x33c67: 0x6c4c4020, + 0x33c68: 0x6c4c4220, 0x33c69: 0x6c4c4420, 0x33c6a: 0x6c4c4620, 0x33c6b: 0x6c4c4820, + 0x33c6c: 0x6c4c4a20, 0x33c6d: 0x6c4c4c20, 0x33c6e: 0x6c4c4e20, 0x33c6f: 0x6c4c5020, + 0x33c70: 0x6c4c5220, 0x33c71: 0x6c6e1420, 0x33c72: 0x6c6e1620, 0x33c73: 0x6c6e1820, + 0x33c74: 0x6c6e1a20, 0x33c75: 0x6c6e1c20, 0x33c76: 0x6c6e1e20, 0x33c77: 0x6c6e2020, + 0x33c78: 0x6c6e2220, 0x33c79: 0x6c6e2420, 0x33c7a: 0x6c6e2620, 0x33c7b: 0x6c6e2820, + 0x33c7c: 0x6c6e2a20, 0x33c7d: 0x6c6e2c20, 0x33c7e: 0x6c6e2e20, 0x33c7f: 0x6c6e3020, + // Block 0xcf2, offset 0x33c80 + 0x33c80: 0x6c6e3220, 0x33c81: 0x6c6e3420, 0x33c82: 0x6c6e3620, 0x33c83: 0x6c6e3820, + 0x33c84: 0x6c6e3a20, 0x33c85: 0x6c6e3c20, 0x33c86: 0x6c6e3e20, 0x33c87: 0x6c6e4020, + 0x33c88: 0x6c6e4220, 0x33c89: 0x6c6e4420, 0x33c8a: 0x6c6e4620, 0x33c8b: 0x6c6e4820, + 0x33c8c: 0x6c6e4a20, 0x33c8d: 0x6c958620, 0x33c8e: 0x6c958820, 0x33c8f: 0x6c958a20, + 0x33c90: 0x6c958c20, 0x33c91: 0x6c958e20, 0x33c92: 0x6c959020, 0x33c93: 0x6c959220, + 0x33c94: 0x6c959420, 0x33c95: 0x6c959620, 0x33c96: 0x6c959820, 0x33c97: 0x6c959a20, + 0x33c98: 0x6c959c20, 0x33c99: 0x6c959e20, 0x33c9a: 0x6c95a020, 0x33c9b: 0x6c95a220, + 0x33c9c: 0x6c95a420, 0x33c9d: 0x6c95a620, 0x33c9e: 0x6c95a820, 0x33c9f: 0x6c95aa20, + 0x33ca0: 0x6c95ac20, 0x33ca1: 0x6c95ae20, 0x33ca2: 0x6c95b020, 0x33ca3: 0x6c95b220, + 0x33ca4: 0x6c95b420, 0x33ca5: 0x6c95b620, 0x33ca6: 0x6c95b820, 0x33ca7: 0x6c95ba20, + 0x33ca8: 0x6c95bc20, 0x33ca9: 0x6c95be20, 0x33caa: 0x6c95c020, 0x33cab: 0x6cc1ae20, + 0x33cac: 0x6cc1b020, 0x33cad: 0x6cc1b220, 0x33cae: 0x6cc1b420, 0x33caf: 0x6cc1b620, + 0x33cb0: 0x6cc1b820, 0x33cb1: 0x6cc1ba20, 0x33cb2: 0x6cc1bc20, 0x33cb3: 0x6cc1be20, + 0x33cb4: 0x6cc1c020, 0x33cb5: 0x6cc1c220, 0x33cb6: 0x6cc1c420, 0x33cb7: 0x6cc1c620, + 0x33cb8: 0x6cc1c820, 0x33cb9: 0x6cc1ca20, 0x33cba: 0x6cc1cc20, 0x33cbb: 0x6cc1ce20, + 0x33cbc: 0x6cc1d020, 0x33cbd: 0x6cc1d220, 0x33cbe: 0x6cc1d420, 0x33cbf: 0x6cc1d620, + // Block 0xcf3, offset 0x33cc0 + 0x33cc0: 0x6cc1d820, 0x33cc1: 0x6cc1da20, 0x33cc2: 0x6cc1dc20, 0x33cc3: 0x6cc1de20, + 0x33cc4: 0x6cc1e020, 0x33cc5: 0x6cc1e220, 0x33cc6: 0x6cc1e420, 0x33cc7: 0x6cc1e620, + 0x33cc8: 0x6cc1e820, 0x33cc9: 0x6cc1ea20, 0x33cca: 0x6cf13020, 0x33ccb: 0x6cf13220, + 0x33ccc: 0x6cf13420, 0x33ccd: 0x6cf13620, 0x33cce: 0x6cf13820, 0x33ccf: 0x6cf13a20, + 0x33cd0: 0x6cf13c20, 0x33cd1: 0x6cf13e20, 0x33cd2: 0x6cf14020, 0x33cd3: 0x6cf14220, + 0x33cd4: 0x6cf14420, 0x33cd5: 0x6cf14620, 0x33cd6: 0x6cf14820, 0x33cd7: 0x6cf14a20, + 0x33cd8: 0x6cf14c20, 0x33cd9: 0x6cf14e20, 0x33cda: 0x6cf15020, 0x33cdb: 0x6cf15220, + 0x33cdc: 0x6cf15420, 0x33cdd: 0x6cf15620, 0x33cde: 0x6cf15820, 0x33cdf: 0x6d20dc20, + 0x33ce0: 0x6d20de20, 0x33ce1: 0x6d20e020, 0x33ce2: 0x6d20e220, 0x33ce3: 0x6d20e420, + 0x33ce4: 0x6d20e620, 0x33ce5: 0x6d20e820, 0x33ce6: 0x6d20ea20, 0x33ce7: 0x6d20ec20, + 0x33ce8: 0x6d20ee20, 0x33ce9: 0x6d20f020, 0x33cea: 0x6d20f220, 0x33ceb: 0x6d20f420, + 0x33cec: 0x6d20f620, 0x33ced: 0x6d20f820, 0x33cee: 0x6d20fa20, 0x33cef: 0x6d20fc20, + 0x33cf0: 0x6d20fe20, 0x33cf1: 0x6d210020, 0x33cf2: 0x6d210220, 0x33cf3: 0x6d4e7220, + 0x33cf4: 0x6d4e7420, 0x33cf5: 0x6d4e7620, 0x33cf6: 0x6d4e7820, 0x33cf7: 0x6d4e7a20, + 0x33cf8: 0x6d4e7c20, 0x33cf9: 0x6d4e7e20, 0x33cfa: 0x6d4e8020, 0x33cfb: 0x6d4e8220, + 0x33cfc: 0x6d4e8420, 0x33cfd: 0x6d4e8620, 0x33cfe: 0x6d4e8820, 0x33cff: 0x6d4e8a20, + // Block 0xcf4, offset 0x33d00 + 0x33d00: 0x6d4e8c20, 0x33d01: 0x6d4e8e20, 0x33d02: 0x6d4e9020, 0x33d03: 0x6d4e9220, + 0x33d04: 0x6d4e9420, 0x33d05: 0x6d4e9620, 0x33d06: 0x6d4e9820, 0x33d07: 0x6d4e9a20, + 0x33d08: 0x6d4e9c20, 0x33d09: 0x6d4e9e20, 0x33d0a: 0x6d4ea020, 0x33d0b: 0x6d4ea220, + 0x33d0c: 0x6d4ea420, 0x33d0d: 0x6d7af420, 0x33d0e: 0x6d7af620, 0x33d0f: 0x6d7af820, + 0x33d10: 0x6d7afa20, 0x33d11: 0x6d7afc20, 0x33d12: 0x6d7afe20, 0x33d13: 0x6d7b0020, + 0x33d14: 0x6d7b0220, 0x33d15: 0x6d7b0420, 0x33d16: 0x6d7b0620, 0x33d17: 0x6d7b0820, + 0x33d18: 0x6d7b0a20, 0x33d19: 0x6d7b0c20, 0x33d1a: 0x6d7b0e20, 0x33d1b: 0x6d7b1020, + 0x33d1c: 0x6d7b1220, 0x33d1d: 0x6d7b1420, 0x33d1e: 0x6d7b1620, 0x33d1f: 0x6da36620, + 0x33d20: 0x6da36820, 0x33d21: 0x6da36a20, 0x33d22: 0x6da36c20, 0x33d23: 0x6da36e20, + 0x33d24: 0x6da37020, 0x33d25: 0x6da37220, 0x33d26: 0x6da37420, 0x33d27: 0x6da37620, + 0x33d28: 0x6da37820, 0x33d29: 0x6dc51420, 0x33d2a: 0x6dc51620, 0x33d2b: 0x6dc51820, + 0x33d2c: 0x6dc51a20, 0x33d2d: 0x6de21420, 0x33d2e: 0x6de21620, 0x33d2f: 0x6de21820, + 0x33d30: 0x6de21a20, 0x33d31: 0x6de21c20, 0x33d32: 0x6de21e20, 0x33d33: 0x6de22020, + 0x33d34: 0x6de22220, 0x33d35: 0x6de22420, 0x33d36: 0x6de22620, 0x33d37: 0x6de22820, + 0x33d38: 0x6df9e220, 0x33d39: 0x6df9e420, 0x33d3a: 0x6df9e620, 0x33d3b: 0x6e0d9820, + 0x33d3c: 0x6e0d9a20, 0x33d3d: 0x6e0d9c20, 0x33d3e: 0x6e1d0820, 0x33d3f: 0x6e1d0a20, + // Block 0xcf5, offset 0x33d40 + 0x33d40: 0x6e1d0c20, 0x33d41: 0x6e1d0e20, 0x33d42: 0x6e28bc20, 0x33d43: 0x6e320a20, + 0x33d44: 0x6e320c20, 0x33d45: 0x6e320e20, 0x33d46: 0x6e321020, 0x33d47: 0x6e402e20, + 0x33d48: 0x6e403020, 0x33d49: 0x6c08bc20, 0x33d4a: 0x6c1e3220, 0x33d4b: 0x6c1e3420, + 0x33d4c: 0x6c1e3620, 0x33d4d: 0x6c31e020, 0x33d4e: 0x6c31e220, 0x33d4f: 0x6c31e420, + 0x33d50: 0x6c31e620, 0x33d51: 0x6c4c5420, 0x33d52: 0x6c4c5620, 0x33d53: 0x6c4c5820, + 0x33d54: 0x6c4c5a20, 0x33d55: 0x6c4c5c20, 0x33d56: 0x6c6e4e20, 0x33d57: 0x6c6e5020, + 0x33d58: 0x6c6e5220, 0x33d59: 0x6c6e5420, 0x33d5a: 0x6c95cc20, 0x33d5b: 0x6cc1f420, + 0x33d5c: 0x6cc1f620, 0x33d5d: 0x6cc1f820, 0x33d5e: 0x6cf15c20, 0x33d5f: 0x6cf15e20, + 0x33d60: 0x6cf16020, 0x33d61: 0x6d18a420, 0x33d62: 0x6d210820, 0x33d63: 0x6d1e2a20, + 0x33d64: 0x6d210a20, 0x33d65: 0x6d4eaa20, 0x33d66: 0x6d7b1c20, 0x33d67: 0x6d7b1e20, + 0x33d68: 0x6d7b2020, 0x33d69: 0x6d7b2220, 0x33d6a: 0x6dc51c20, 0x33d6b: 0x6de22c20, + 0x33d6c: 0x6df9ea20, 0x33d6d: 0x6e0d9e20, 0x33d6e: 0x6e28be20, 0x33d6f: 0x6c043420, + 0x33d70: 0x6c043620, 0x33d71: 0x6c043820, 0x33d72: 0x6c08c020, 0x33d73: 0x6c08c220, + 0x33d74: 0x6c08c420, 0x33d75: 0x6c08c620, 0x33d76: 0x6c10e020, 0x33d77: 0x6c1e3a20, + 0x33d78: 0x6c1e3c20, 0x33d79: 0x6c1e3e20, 0x33d7a: 0x6c1e4020, 0x33d7b: 0x6c31e820, + 0x33d7c: 0x6c31ea20, 0x33d7d: 0x6c31ec20, 0x33d7e: 0x6c31ee20, 0x33d7f: 0x6c4c6020, + // Block 0xcf6, offset 0x33d80 + 0x33d80: 0x6c4b0c20, 0x33d81: 0x6c6e5620, 0x33d82: 0x6c4c6220, 0x33d83: 0x6c6e5820, + 0x33d84: 0x6c6e5a20, 0x33d85: 0x6c6e5c20, 0x33d86: 0x6c6e5e20, 0x33d87: 0x6c95d220, + 0x33d88: 0x6c95d420, 0x33d89: 0x6c95d620, 0x33d8a: 0x6cc20220, 0x33d8b: 0x6cf16820, + 0x33d8c: 0x6d210e20, 0x33d8d: 0x6d211020, 0x33d8e: 0x6d211220, 0x33d8f: 0x6d211420, + 0x33d90: 0x6d4eae20, 0x33d91: 0x6d4eb020, 0x33d92: 0x6d4eb220, 0x33d93: 0x6d4eb420, + 0x33d94: 0x6da2ce20, 0x33d95: 0x6dc2b220, 0x33d96: 0x6e1d1020, 0x33d97: 0x6c10f020, + 0x33d98: 0x6c10f220, 0x33d99: 0x6c10f420, 0x33d9a: 0x6c10f620, 0x33d9b: 0x6c10f820, + 0x33d9c: 0x6c10fa20, 0x33d9d: 0x6c10fc20, 0x33d9e: 0x6c10fe20, 0x33d9f: 0x6c110020, + 0x33da0: 0x6c110220, 0x33da1: 0x6c110420, 0x33da2: 0x6c110620, 0x33da3: 0x6c1e6220, + 0x33da4: 0x6c1e6420, 0x33da5: 0x6c1e6620, 0x33da6: 0x6c1e6820, 0x33da7: 0x6c1e6a20, + 0x33da8: 0x6c1e6c20, 0x33da9: 0x6c1e6e20, 0x33daa: 0x6c1e7020, 0x33dab: 0x6c1e7220, + 0x33dac: 0x6c1e7420, 0x33dad: 0x6c1e7620, 0x33dae: 0x6c1e7820, 0x33daf: 0x6c1e7a20, + 0x33db0: 0x6c1e7c20, 0x33db1: 0x6c1e7e20, 0x33db2: 0x6c321420, 0x33db3: 0x6c321620, + 0x33db4: 0x6c321820, 0x33db5: 0x6c321a20, 0x33db6: 0x6c321c20, 0x33db7: 0x6c321e20, + 0x33db8: 0x6c322020, 0x33db9: 0x6c322220, 0x33dba: 0x6c322420, 0x33dbb: 0x6c322620, + 0x33dbc: 0x6c322820, 0x33dbd: 0x6c322a20, 0x33dbe: 0x6c322c20, 0x33dbf: 0x6c322e20, + // Block 0xcf7, offset 0x33dc0 + 0x33dc0: 0x6c323020, 0x33dc1: 0x6c323220, 0x33dc2: 0x6c323420, 0x33dc3: 0x6c323620, + 0x33dc4: 0x6c323820, 0x33dc5: 0x6c323a20, 0x33dc6: 0x6c323c20, 0x33dc7: 0x6c4c8420, + 0x33dc8: 0x6c4c8620, 0x33dc9: 0x6c4c8820, 0x33dca: 0x6c4c8a20, 0x33dcb: 0x6c4c8c20, + 0x33dcc: 0x6c4c8e20, 0x33dcd: 0x6c4c9020, 0x33dce: 0x6c4c9220, 0x33dcf: 0x6c4c9420, + 0x33dd0: 0x6c4c9620, 0x33dd1: 0x6c4c9820, 0x33dd2: 0x6c4c9a20, 0x33dd3: 0x6c4c9c20, + 0x33dd4: 0x6c4c9e20, 0x33dd5: 0x6c4ca020, 0x33dd6: 0x6c4ca220, 0x33dd7: 0x6c4ca420, + 0x33dd8: 0x6c4ca620, 0x33dd9: 0x6c6e7c20, 0x33dda: 0x6c6e7e20, 0x33ddb: 0x6c6e8020, + 0x33ddc: 0x6c6e8220, 0x33ddd: 0x6c6e8420, 0x33dde: 0x6c6e8620, 0x33ddf: 0x6c6e8820, + 0x33de0: 0x6c6e8a20, 0x33de1: 0x6c6e8c20, 0x33de2: 0x6c6e8e20, 0x33de3: 0x6c6e9020, + 0x33de4: 0x6c6e9220, 0x33de5: 0x6c6e9420, 0x33de6: 0x6c6e9620, 0x33de7: 0x6c6e9820, + 0x33de8: 0x6c6e9a20, 0x33de9: 0x6c6e9c20, 0x33dea: 0x6c6e9e20, 0x33deb: 0x6c6ea020, + 0x33dec: 0x6c6ea220, 0x33ded: 0x6c6ea420, 0x33dee: 0x6c6ea620, 0x33def: 0x6c6ea820, + 0x33df0: 0x6c6eaa20, 0x33df1: 0x6c6eac20, 0x33df2: 0x6c6bf220, 0x33df3: 0x6c95fa20, + 0x33df4: 0x6c95fc20, 0x33df5: 0x6c95fe20, 0x33df6: 0x6c960020, 0x33df7: 0x6c960220, + 0x33df8: 0x6c960420, 0x33df9: 0x6c960620, 0x33dfa: 0x6c960820, 0x33dfb: 0x6c960a20, + 0x33dfc: 0x6c960c20, 0x33dfd: 0x6c960e20, 0x33dfe: 0x6c961020, 0x33dff: 0x6c961220, + // Block 0xcf8, offset 0x33e00 + 0x33e00: 0x6c961420, 0x33e01: 0x6c961620, 0x33e02: 0x6c961820, 0x33e03: 0x6c961a20, + 0x33e04: 0x6c961c20, 0x33e05: 0x6c961e20, 0x33e06: 0x6c962020, 0x33e07: 0x6c962220, + 0x33e08: 0x6c962420, 0x33e09: 0x6c962620, 0x33e0a: 0x6c962820, 0x33e0b: 0x6c962a20, + 0x33e0c: 0x6c962c20, 0x33e0d: 0x6c962e20, 0x33e0e: 0x6c963020, 0x33e0f: 0x6c963220, + 0x33e10: 0x6c963420, 0x33e11: 0x6c963620, 0x33e12: 0x6c963820, 0x33e13: 0x6c963a20, + 0x33e14: 0x6c963c20, 0x33e15: 0x6c963e20, 0x33e16: 0x6cb78820, 0x33e17: 0x6c964020, + 0x33e18: 0x6c964220, 0x33e19: 0x6c964420, 0x33e1a: 0x6c964620, 0x33e1b: 0x6cc21a20, + 0x33e1c: 0x6cc21c20, 0x33e1d: 0x6cc21e20, 0x33e1e: 0x6cc22020, 0x33e1f: 0x6cc22220, + 0x33e20: 0x6cc22420, 0x33e21: 0x6cc22620, 0x33e22: 0x6cc22820, 0x33e23: 0x6cc22a20, + 0x33e24: 0x6cc22c20, 0x33e25: 0x6cc22e20, 0x33e26: 0x6cc23020, 0x33e27: 0x6cc23220, + 0x33e28: 0x6cc23420, 0x33e29: 0x6cc23620, 0x33e2a: 0x6cc23820, 0x33e2b: 0x6cc23a20, + 0x33e2c: 0x6cc23c20, 0x33e2d: 0x6cc23e20, 0x33e2e: 0x6cc24020, 0x33e2f: 0x6cc24220, + 0x33e30: 0x6cc24420, 0x33e31: 0x6cc24620, 0x33e32: 0x6cc24820, 0x33e33: 0x6cc24a20, + 0x33e34: 0x6cc24c20, 0x33e35: 0x6cc24e20, 0x33e36: 0x6cc25020, 0x33e37: 0x6cc25220, + 0x33e38: 0x6cc25420, 0x33e39: 0x6cc25620, 0x33e3a: 0x6cc25820, 0x33e3b: 0x6cc25a20, + 0x33e3c: 0x6cf17a20, 0x33e3d: 0x6cc25c20, 0x33e3e: 0x6cc25e20, 0x33e3f: 0x6cf17c20, + // Block 0xcf9, offset 0x33e40 + 0x33e40: 0x6cf17e20, 0x33e41: 0x6cf18020, 0x33e42: 0x6cf18220, 0x33e43: 0x6cf18420, + 0x33e44: 0x6cf18620, 0x33e45: 0x6cf18820, 0x33e46: 0x6cf18a20, 0x33e47: 0x6cf18c20, + 0x33e48: 0x6cf18e20, 0x33e49: 0x6cf19020, 0x33e4a: 0x6cf19220, 0x33e4b: 0x6cf19420, + 0x33e4c: 0x6cf19620, 0x33e4d: 0x6cf19820, 0x33e4e: 0x6cf19a20, 0x33e4f: 0x6cf19c20, + 0x33e50: 0x6cf19e20, 0x33e51: 0x6cf1a020, 0x33e52: 0x6cf1a220, 0x33e53: 0x6cf1a420, + 0x33e54: 0x6cf1a620, 0x33e55: 0x6d213620, 0x33e56: 0x6d213820, 0x33e57: 0x6d213a20, + 0x33e58: 0x6d213c20, 0x33e59: 0x6d213e20, 0x33e5a: 0x6d214020, 0x33e5b: 0x6d214220, + 0x33e5c: 0x6d214420, 0x33e5d: 0x6d214620, 0x33e5e: 0x6d214820, 0x33e5f: 0x6d214a20, + 0x33e60: 0x6d214c20, 0x33e61: 0x6d214e20, 0x33e62: 0x6d215020, 0x33e63: 0x6d215220, + 0x33e64: 0x6d215420, 0x33e65: 0x6d215620, 0x33e66: 0x6d215820, 0x33e67: 0x6d215a20, + 0x33e68: 0x6d215c20, 0x33e69: 0x6d215e20, 0x33e6a: 0x6d216020, 0x33e6b: 0x6d216220, + 0x33e6c: 0x6d216420, 0x33e6d: 0x6d4ed020, 0x33e6e: 0x6d4ed220, 0x33e6f: 0x6d4ed420, + 0x33e70: 0x6d4ed620, 0x33e71: 0x6d4ed820, 0x33e72: 0x6d4eda20, 0x33e73: 0x6d4edc20, + 0x33e74: 0x6d4ede20, 0x33e75: 0x6d4ee020, 0x33e76: 0x6d4ee220, 0x33e77: 0x6d4ee420, + 0x33e78: 0x6d4ee620, 0x33e79: 0x6d4ee820, 0x33e7a: 0x6d4eea20, 0x33e7b: 0x6d4eec20, + 0x33e7c: 0x6d4eee20, 0x33e7d: 0x6d4ef020, 0x33e7e: 0x6d4ef220, 0x33e7f: 0x6d4ef420, + // Block 0xcfa, offset 0x33e80 + 0x33e80: 0x6d4ef620, 0x33e81: 0x6d4ef820, 0x33e82: 0x6d7b3a20, 0x33e83: 0x6d7b3c20, + 0x33e84: 0x6d7b3e20, 0x33e85: 0x6d7b4020, 0x33e86: 0x6d7b4220, 0x33e87: 0x6d7b4420, + 0x33e88: 0x6d7b4620, 0x33e89: 0x6d7b4820, 0x33e8a: 0x6d7b4a20, 0x33e8b: 0x6d7b4c20, + 0x33e8c: 0x6d7b4e20, 0x33e8d: 0x6d7b5020, 0x33e8e: 0x6d7b5220, 0x33e8f: 0x6d7b5420, + 0x33e90: 0x6d7b5620, 0x33e91: 0x6da37c20, 0x33e92: 0x6da37e20, 0x33e93: 0x6da38020, + 0x33e94: 0x6da38220, 0x33e95: 0x6da38420, 0x33e96: 0x6da38620, 0x33e97: 0x6da38820, + 0x33e98: 0x6da38a20, 0x33e99: 0x6da38c20, 0x33e9a: 0x6da38e20, 0x33e9b: 0x6da39020, + 0x33e9c: 0x6db42620, 0x33e9d: 0x6da39220, 0x33e9e: 0x6da39420, 0x33e9f: 0x6da39620, + 0x33ea0: 0x6da39820, 0x33ea1: 0x6dc52220, 0x33ea2: 0x6dc52420, 0x33ea3: 0x6dc52620, + 0x33ea4: 0x6dc52820, 0x33ea5: 0x6dc52a20, 0x33ea6: 0x6dc52c20, 0x33ea7: 0x6dc52e20, + 0x33ea8: 0x6dc53020, 0x33ea9: 0x6dc53220, 0x33eaa: 0x6dc53420, 0x33eab: 0x6dc53620, + 0x33eac: 0x6dc53820, 0x33ead: 0x6dc53a20, 0x33eae: 0x6de23a20, 0x33eaf: 0x6de23c20, + 0x33eb0: 0x6de23e20, 0x33eb1: 0x6de24020, 0x33eb2: 0x6de24220, 0x33eb3: 0x6de24420, + 0x33eb4: 0x6de24620, 0x33eb5: 0x6de24820, 0x33eb6: 0x6de24a20, 0x33eb7: 0x6de24c20, + 0x33eb8: 0x6de24e20, 0x33eb9: 0x6de25020, 0x33eba: 0x6de25220, 0x33ebb: 0x6df9f420, + 0x33ebc: 0x6df9f620, 0x33ebd: 0x6df9f820, 0x33ebe: 0x6df9fa20, 0x33ebf: 0x6df9fc20, + // Block 0xcfb, offset 0x33ec0 + 0x33ec0: 0x6df9fe20, 0x33ec1: 0x6dfa0020, 0x33ec2: 0x6dfa0220, 0x33ec3: 0x6dfa0420, + 0x33ec4: 0x6e0da220, 0x33ec5: 0x6e0da420, 0x33ec6: 0x6e0da620, 0x33ec7: 0x6e0f2020, + 0x33ec8: 0x6e1d1420, 0x33ec9: 0x6e1d1620, 0x33eca: 0x6e1d1820, 0x33ecb: 0x6e1d1a20, + 0x33ecc: 0x6e1d1c20, 0x33ecd: 0x6e28c020, 0x33ece: 0x6e28c220, 0x33ecf: 0x6e28c420, + 0x33ed0: 0x6e28c620, 0x33ed1: 0x6e28c820, 0x33ed2: 0x6e321220, 0x33ed3: 0x6e3d2220, + 0x33ed4: 0x6e403220, 0x33ed5: 0x6e403420, 0x33ed6: 0x6e429420, 0x33ed7: 0x6c043a20, + 0x33ed8: 0x6c08d220, 0x33ed9: 0x6c08d420, 0x33eda: 0x6c08d620, 0x33edb: 0x6c1e8620, + 0x33edc: 0x6c110c20, 0x33edd: 0x6c1e8820, 0x33ede: 0x6c1e8a20, 0x33edf: 0x6c324a20, + 0x33ee0: 0x6c4cb420, 0x33ee1: 0x6c4cb620, 0x33ee2: 0x6c4cb820, 0x33ee3: 0x6c4cba20, + 0x33ee4: 0x6c4cbc20, 0x33ee5: 0x6c4cbe20, 0x33ee6: 0x6c6ebc20, 0x33ee7: 0x6c6ebe20, + 0x33ee8: 0x6c965220, 0x33ee9: 0x6c965420, 0x33eea: 0x6c965620, 0x33eeb: 0x6cc26620, + 0x33eec: 0x6c01da20, 0x33eed: 0x6c044020, 0x33eee: 0x6c08dc20, 0x33eef: 0x6c08de20, + 0x33ef0: 0x6c111020, 0x33ef1: 0x6c111220, 0x33ef2: 0x6c111420, 0x33ef3: 0x6c1e9620, + 0x33ef4: 0x6c4cc620, 0x33ef5: 0x6c1e9820, 0x33ef6: 0x6c1e9a20, 0x33ef7: 0x6c1e9c20, + 0x33ef8: 0x6c1e9e20, 0x33ef9: 0x6c1ea020, 0x33efa: 0x6c1ea220, 0x33efb: 0x6c324e20, + 0x33efc: 0x6c4cc820, 0x33efd: 0x6c325020, 0x33efe: 0x6c325220, 0x33eff: 0x6c325420, + // Block 0xcfc, offset 0x33f00 + 0x33f00: 0x6c325620, 0x33f01: 0x6c325820, 0x33f02: 0x6c4cca20, 0x33f03: 0x6c4ccc20, + 0x33f04: 0x6c4cce20, 0x33f05: 0x6c4cd020, 0x33f06: 0x6c4cd220, 0x33f07: 0x6c4cd420, + 0x33f08: 0x6c4cd620, 0x33f09: 0x6c4cd820, 0x33f0a: 0x6c4cda20, 0x33f0b: 0x6c4cdc20, + 0x33f0c: 0x6c4cde20, 0x33f0d: 0x6c6ec420, 0x33f0e: 0x6c6ec620, 0x33f0f: 0x6c6ec820, + 0x33f10: 0x6c6eca20, 0x33f11: 0x6c6ecc20, 0x33f12: 0x6c6ece20, 0x33f13: 0x6c6ed020, + 0x33f14: 0x6c965a20, 0x33f15: 0x6c965c20, 0x33f16: 0x6c965e20, 0x33f17: 0x6c966020, + 0x33f18: 0x6c966220, 0x33f19: 0x6c966420, 0x33f1a: 0x6cc26820, 0x33f1b: 0x6cc26a20, + 0x33f1c: 0x6cc26c20, 0x33f1d: 0x6cc26e20, 0x33f1e: 0x6cc27020, 0x33f1f: 0x6cc27220, + 0x33f20: 0x6cc27420, 0x33f21: 0x6cc27620, 0x33f22: 0x6cf1ae20, 0x33f23: 0x6cf1b020, + 0x33f24: 0x6cf1b220, 0x33f25: 0x6cf1b420, 0x33f26: 0x6d217620, 0x33f27: 0x6d217820, + 0x33f28: 0x6d217a20, 0x33f29: 0x6d217c20, 0x33f2a: 0x6d217e20, 0x33f2b: 0x6d218020, + 0x33f2c: 0x6d4f0220, 0x33f2d: 0x6d1a0c20, 0x33f2e: 0x6d7b5e20, 0x33f2f: 0x6d7b6020, + 0x33f30: 0x6d7b6220, 0x33f31: 0x6d7b6420, 0x33f32: 0x6da3a020, 0x33f33: 0x6da3a220, + 0x33f34: 0x6da3a420, 0x33f35: 0x6de25620, 0x33f36: 0x6e1d1e20, 0x33f37: 0x6e403620, + 0x33f38: 0x6e403820, 0x33f39: 0x6e442c20, 0x33f3a: 0x6c01de20, 0x33f3b: 0x6c044420, + 0x33f3c: 0x6c044620, 0x33f3d: 0x6c111c20, 0x33f3e: 0x6c111e20, 0x33f3f: 0x6c1ea820, + // Block 0xcfd, offset 0x33f40 + 0x33f40: 0x6c1eaa20, 0x33f41: 0x6c1eac20, 0x33f42: 0x6c1eae20, 0x33f43: 0x6c1eb020, + 0x33f44: 0x6c325c20, 0x33f45: 0x6c325e20, 0x33f46: 0x6c4ce220, 0x33f47: 0x6c4ce420, + 0x33f48: 0x6c4ce620, 0x33f49: 0x6c4ce820, 0x33f4a: 0x6c4cea20, 0x33f4b: 0x6c6ed420, + 0x33f4c: 0x6c6ed620, 0x33f4d: 0x6c966620, 0x33f4e: 0x6cc27c20, 0x33f4f: 0x6cf1bc20, + 0x33f50: 0x6cf1be20, 0x33f51: 0x6d4f0420, 0x33f52: 0x6d4f0620, 0x33f53: 0x6d7b6620, + 0x33f54: 0x6da3a820, 0x33f55: 0x6dc53e20, 0x33f56: 0x6e0daa20, 0x33f57: 0x6c01e220, + 0x33f58: 0x6c01e420, 0x33f59: 0x6c045020, 0x33f5a: 0x6c045220, 0x33f5b: 0x6c045420, + 0x33f5c: 0x6c045620, 0x33f5d: 0x6c045820, 0x33f5e: 0x6c045a20, 0x33f5f: 0x6c045c20, + 0x33f60: 0x6c045e20, 0x33f61: 0x6c046020, 0x33f62: 0x6c08e620, 0x33f63: 0x6c08e820, + 0x33f64: 0x6c08ea20, 0x33f65: 0x6c08ec20, 0x33f66: 0x6c08ee20, 0x33f67: 0x6c08f020, + 0x33f68: 0x6c08f220, 0x33f69: 0x6c08f420, 0x33f6a: 0x6c08f620, 0x33f6b: 0x6c113020, + 0x33f6c: 0x6c113220, 0x33f6d: 0x6c113420, 0x33f6e: 0x6c113620, 0x33f6f: 0x6c113820, + 0x33f70: 0x6c113a20, 0x33f71: 0x6c113c20, 0x33f72: 0x6c113e20, 0x33f73: 0x6c114020, + 0x33f74: 0x6c114220, 0x33f75: 0x6c114420, 0x33f76: 0x6c114620, 0x33f77: 0x6c1ebe20, + 0x33f78: 0x6c1ec020, 0x33f79: 0x6c1ec220, 0x33f7a: 0x6c1ec420, 0x33f7b: 0x6c1ec620, + 0x33f7c: 0x6c1ec820, 0x33f7d: 0x6c1eca20, 0x33f7e: 0x6c1ecc20, 0x33f7f: 0x6c1ece20, + // Block 0xcfe, offset 0x33f80 + 0x33f80: 0x6c1ed020, 0x33f81: 0x6c1ed220, 0x33f82: 0x6c1ed420, 0x33f83: 0x6c1ed620, + 0x33f84: 0x6c1ed820, 0x33f85: 0x6c1eda20, 0x33f86: 0x6c327c20, 0x33f87: 0x6c327e20, + 0x33f88: 0x6c328020, 0x33f89: 0x6c328220, 0x33f8a: 0x6c328420, 0x33f8b: 0x6c328620, + 0x33f8c: 0x6c328820, 0x33f8d: 0x6c328a20, 0x33f8e: 0x6c328c20, 0x33f8f: 0x6c328e20, + 0x33f90: 0x6c329020, 0x33f91: 0x6c329220, 0x33f92: 0x6c329420, 0x33f93: 0x6c329620, + 0x33f94: 0x6c4d0620, 0x33f95: 0x6c4d0820, 0x33f96: 0x6c4d0a20, 0x33f97: 0x6c4d0c20, + 0x33f98: 0x6c4d0e20, 0x33f99: 0x6c4d1020, 0x33f9a: 0x6c4d1220, 0x33f9b: 0x6c4d1420, + 0x33f9c: 0x6c4d1620, 0x33f9d: 0x6c4d1820, 0x33f9e: 0x6c4d1a20, 0x33f9f: 0x6c4d1c20, + 0x33fa0: 0x6c4d1e20, 0x33fa1: 0x6c4d2020, 0x33fa2: 0x6c4d2220, 0x33fa3: 0x6c4d2420, + 0x33fa4: 0x6c6ee420, 0x33fa5: 0x6c6ee620, 0x33fa6: 0x6c6ee820, 0x33fa7: 0x6c6eea20, + 0x33fa8: 0x6c6eec20, 0x33fa9: 0x6c6eee20, 0x33faa: 0x6c6ef020, 0x33fab: 0x6c6ef220, + 0x33fac: 0x6c6ef420, 0x33fad: 0x6c6ef620, 0x33fae: 0x6c967a20, 0x33faf: 0x6c967c20, + 0x33fb0: 0x6c967e20, 0x33fb1: 0x6c968020, 0x33fb2: 0x6c968220, 0x33fb3: 0x6c968420, + 0x33fb4: 0x6c968620, 0x33fb5: 0x6c968820, 0x33fb6: 0x6c968a20, 0x33fb7: 0x6c968c20, + 0x33fb8: 0x6c968e20, 0x33fb9: 0x6c969020, 0x33fba: 0x6c969220, 0x33fbb: 0x6c969420, + 0x33fbc: 0x6c969620, 0x33fbd: 0x6c969820, 0x33fbe: 0x6c969a20, 0x33fbf: 0x6c969c20, + // Block 0xcff, offset 0x33fc0 + 0x33fc0: 0x6cc28e20, 0x33fc1: 0x6cc29020, 0x33fc2: 0x6cc29220, 0x33fc3: 0x6cc29420, + 0x33fc4: 0x6cc29620, 0x33fc5: 0x6cc29820, 0x33fc6: 0x6cc29a20, 0x33fc7: 0x6cc29c20, + 0x33fc8: 0x6cc29e20, 0x33fc9: 0x6cc2a020, 0x33fca: 0x6cf1d020, 0x33fcb: 0x6cf1d220, + 0x33fcc: 0x6cf1d420, 0x33fcd: 0x6cf1d620, 0x33fce: 0x6cf1d820, 0x33fcf: 0x6cf1da20, + 0x33fd0: 0x6cf1dc20, 0x33fd1: 0x6cf1de20, 0x33fd2: 0x6d218c20, 0x33fd3: 0x6d218e20, + 0x33fd4: 0x6d219020, 0x33fd5: 0x6d219220, 0x33fd6: 0x6d219420, 0x33fd7: 0x6d219620, + 0x33fd8: 0x6d219820, 0x33fd9: 0x6d219a20, 0x33fda: 0x6d219c20, 0x33fdb: 0x6d219e20, + 0x33fdc: 0x6d21a020, 0x33fdd: 0x6d21a220, 0x33fde: 0x6d4f1220, 0x33fdf: 0x6d4f1420, + 0x33fe0: 0x6d4f1620, 0x33fe1: 0x6d4f1820, 0x33fe2: 0x6d4f1a20, 0x33fe3: 0x6d4f1c20, + 0x33fe4: 0x6d4f1e20, 0x33fe5: 0x6d7b6c20, 0x33fe6: 0x6d7b6e20, 0x33fe7: 0x6d7b7020, + 0x33fe8: 0x6d7b7220, 0x33fe9: 0x6d7b7420, 0x33fea: 0x6d7b7620, 0x33feb: 0x6d8a6c20, + 0x33fec: 0x6da3ac20, 0x33fed: 0x6da3ae20, 0x33fee: 0x6da3b020, 0x33fef: 0x6da3b220, + 0x33ff0: 0x6da3b420, 0x33ff1: 0x6da3b620, 0x33ff2: 0x6dc54220, 0x33ff3: 0x6dc54420, + 0x33ff4: 0x6dc54620, 0x33ff5: 0x6dc54820, 0x33ff6: 0x6dc54a20, 0x33ff7: 0x6dc54c20, + 0x33ff8: 0x6de25820, 0x33ff9: 0x6de25a20, 0x33ffa: 0x6de25c20, 0x33ffb: 0x6de25e20, + 0x33ffc: 0x6de26020, 0x33ffd: 0x6de26220, 0x33ffe: 0x6de26420, 0x33fff: 0x6dfa0620, + // Block 0xd00, offset 0x34000 + 0x34000: 0x6dfa0820, 0x34001: 0x6dfa0a20, 0x34002: 0x6dfa0c20, 0x34003: 0x6dfa0e20, + 0x34004: 0x6dfa1020, 0x34005: 0x6dfa1220, 0x34006: 0x6e0dae20, 0x34007: 0x6e0db020, + 0x34008: 0x6e0db220, 0x34009: 0x6e0db420, 0x3400a: 0x6e1d2420, 0x3400b: 0x6e321420, + 0x3400c: 0x6e388220, 0x3400d: 0x6e429620, 0x3400e: 0x6e462820, 0x3400f: 0x6c114c20, + 0x34010: 0x6c114e20, 0x34011: 0x6c115020, 0x34012: 0x6c115220, 0x34013: 0x6c1edc20, + 0x34014: 0x6c32a020, 0x34015: 0x6c32a220, 0x34016: 0x6c3bf820, 0x34017: 0x6c4d2c20, + 0x34018: 0x6c4d2e20, 0x34019: 0x6c4d3020, 0x3401a: 0x6c4d3220, 0x3401b: 0x6c6efa20, + 0x3401c: 0x6c6efc20, 0x3401d: 0x6c6efe20, 0x3401e: 0x6c96a220, 0x3401f: 0x6c96a420, + 0x34020: 0x6c96a620, 0x34021: 0x6c96a820, 0x34022: 0x6cc2a820, 0x34023: 0x6cc2aa20, + 0x34024: 0x6cc2ac20, 0x34025: 0x6cf1e420, 0x34026: 0x6cf1e620, 0x34027: 0x6cf1e820, + 0x34028: 0x6d21a820, 0x34029: 0x6d21aa20, 0x3402a: 0x6d21ac20, 0x3402b: 0x6d21ae20, + 0x3402c: 0x6d21b020, 0x3402d: 0x6d4f2020, 0x3402e: 0x6d4f2220, 0x3402f: 0x6d7b7e20, + 0x34030: 0x6d7adc20, 0x34031: 0x6d7b8020, 0x34032: 0x6da3ba20, 0x34033: 0x6dc55220, + 0x34034: 0x6dc55420, 0x34035: 0x6dc55620, 0x34036: 0x6dc55820, 0x34037: 0x6de26a20, + 0x34038: 0x6de26c20, 0x34039: 0x6de26e20, 0x3403a: 0x6de27020, 0x3403b: 0x6dfa1420, + 0x3403c: 0x6dfa1620, 0x3403d: 0x6e1d2620, 0x3403e: 0x6e28cc20, 0x3403f: 0x6e3d2620, + // Block 0xd01, offset 0x34040 + 0x34040: 0x6c08fa20, 0x34041: 0x6c08fc20, 0x34042: 0x6c08fe20, 0x34043: 0x6c115820, + 0x34044: 0x6c115a20, 0x34045: 0x6c115c20, 0x34046: 0x6c115e20, 0x34047: 0x6c1ee620, + 0x34048: 0x6c1ee820, 0x34049: 0x6c32aa20, 0x3404a: 0x6c32ac20, 0x3404b: 0x6c32ae20, + 0x3404c: 0x6c32b020, 0x3404d: 0x6c32b220, 0x3404e: 0x6c4d3820, 0x3404f: 0x6c6f0420, + 0x34050: 0x6c6f0620, 0x34051: 0x6c6f0820, 0x34052: 0x6c6f0a20, 0x34053: 0x6c6f0c20, + 0x34054: 0x6c96b220, 0x34055: 0x6c96b420, 0x34056: 0x6c96b620, 0x34057: 0x6c96b820, + 0x34058: 0x6c96ba20, 0x34059: 0x6c96bc20, 0x3405a: 0x6c96be20, 0x3405b: 0x6c96c020, + 0x3405c: 0x6c96c220, 0x3405d: 0x6c96c420, 0x3405e: 0x6cc2b420, 0x3405f: 0x6cc2b620, + 0x34060: 0x6cc2b820, 0x34061: 0x6cc2ba20, 0x34062: 0x6cc2bc20, 0x34063: 0x6cc2be20, + 0x34064: 0x6cf1ec20, 0x34065: 0x6cf1ee20, 0x34066: 0x6cf1f020, 0x34067: 0x6cf1f220, + 0x34068: 0x6cf1f420, 0x34069: 0x6d21b820, 0x3406a: 0x6d21ba20, 0x3406b: 0x6d4f2a20, + 0x3406c: 0x6d4f2c20, 0x3406d: 0x6d4f2e20, 0x3406e: 0x6d4f3020, 0x3406f: 0x6d4f3220, + 0x34070: 0x6d7b8420, 0x34071: 0x6d7b8620, 0x34072: 0x6d7b8820, 0x34073: 0x6d7b8a20, + 0x34074: 0x6da3bc20, 0x34075: 0x6dc55c20, 0x34076: 0x6e0db820, 0x34077: 0x6dfa1820, + 0x34078: 0x6e1d2a20, 0x34079: 0x6e1d2c20, 0x3407a: 0x6e1d2e20, 0x3407b: 0x6e388620, + 0x3407c: 0x6c046220, 0x3407d: 0x6c046420, 0x3407e: 0x6c090220, 0x3407f: 0x6c090420, + // Block 0xd02, offset 0x34080 + 0x34080: 0x6c116620, 0x34081: 0x6c116820, 0x34082: 0x6c116a20, 0x34083: 0x6c116c20, + 0x34084: 0x6c1efe20, 0x34085: 0x6c1f0020, 0x34086: 0x6c1f0220, 0x34087: 0x6c1f0420, + 0x34088: 0x6c1f0620, 0x34089: 0x6c1f0820, 0x3408a: 0x6c1f0a20, 0x3408b: 0x6c1f0c20, + 0x3408c: 0x6c1f0e20, 0x3408d: 0x6c1f1020, 0x3408e: 0x6c1f1220, 0x3408f: 0x6c1f1420, + 0x34090: 0x6c1f1620, 0x34091: 0x6c1f1820, 0x34092: 0x6c32ca20, 0x34093: 0x6c32cc20, + 0x34094: 0x6c32ce20, 0x34095: 0x6c32d020, 0x34096: 0x6c32d220, 0x34097: 0x6c32d420, + 0x34098: 0x6c32d620, 0x34099: 0x6c32d820, 0x3409a: 0x6c32da20, 0x3409b: 0x6c32dc20, + 0x3409c: 0x6c4d6020, 0x3409d: 0x6c4d6220, 0x3409e: 0x6c4d6420, 0x3409f: 0x6c4d6620, + 0x340a0: 0x6c4d6820, 0x340a1: 0x6c4d6a20, 0x340a2: 0x6c4d6c20, 0x340a3: 0x6c4d6e20, + 0x340a4: 0x6c4d7020, 0x340a5: 0x6c4d7220, 0x340a6: 0x6c4d7420, 0x340a7: 0x6c4d7620, + 0x340a8: 0x6c4d7820, 0x340a9: 0x6c4d7a20, 0x340aa: 0x6c6f2420, 0x340ab: 0x6c6f2620, + 0x340ac: 0x6c6f2820, 0x340ad: 0x6c6f2a20, 0x340ae: 0x6c6f2c20, 0x340af: 0x6c6f2e20, + 0x340b0: 0x6c6f3020, 0x340b1: 0x6c6f3220, 0x340b2: 0x6c6f3420, 0x340b3: 0x6c6f3620, + 0x340b4: 0x6c6f3820, 0x340b5: 0x6c6f3a20, 0x340b6: 0x6c6f3c20, 0x340b7: 0x6c6f3e20, + 0x340b8: 0x6c6f4020, 0x340b9: 0x6c6f4220, 0x340ba: 0x6c6f4420, 0x340bb: 0x6c6f4620, + 0x340bc: 0x6c6f4820, 0x340bd: 0x6c6f4a20, 0x340be: 0x6c6f4c20, 0x340bf: 0x6c6f4e20, + // Block 0xd03, offset 0x340c0 + 0x340c0: 0x6c6f5020, 0x340c1: 0x6c96ee20, 0x340c2: 0x6c96f020, 0x340c3: 0x6c96f220, + 0x340c4: 0x6c96f420, 0x340c5: 0x6c96f620, 0x340c6: 0x6c96f820, 0x340c7: 0x6c96fa20, + 0x340c8: 0x6c96fc20, 0x340c9: 0x6c96fe20, 0x340ca: 0x6c970020, 0x340cb: 0x6c970220, + 0x340cc: 0x6c970420, 0x340cd: 0x6c970620, 0x340ce: 0x6c970820, 0x340cf: 0x6c970a20, + 0x340d0: 0x6c970c20, 0x340d1: 0x6c970e20, 0x340d2: 0x6c971020, 0x340d3: 0x6c971220, + 0x340d4: 0x6c971420, 0x340d5: 0x6c971620, 0x340d6: 0x6c971820, 0x340d7: 0x6c971a20, + 0x340d8: 0x6c971c20, 0x340d9: 0x6c971e20, 0x340da: 0x6c972020, 0x340db: 0x6c972220, + 0x340dc: 0x6c972420, 0x340dd: 0x6c972620, 0x340de: 0x6c972820, 0x340df: 0x6cc2da20, + 0x340e0: 0x6cc2dc20, 0x340e1: 0x6cc2de20, 0x340e2: 0x6cc2e020, 0x340e3: 0x6cc2e220, + 0x340e4: 0x6cc2e420, 0x340e5: 0x6cc2e620, 0x340e6: 0x6cc2e820, 0x340e7: 0x6cc2ea20, + 0x340e8: 0x6cc2ec20, 0x340e9: 0x6cc2ee20, 0x340ea: 0x6cc2f020, 0x340eb: 0x6cc2f220, + 0x340ec: 0x6cde5820, 0x340ed: 0x6cc2f420, 0x340ee: 0x6cc2f620, 0x340ef: 0x6cc2f820, + 0x340f0: 0x6cc2fa20, 0x340f1: 0x6cc2fc20, 0x340f2: 0x6cf20220, 0x340f3: 0x6cf20420, + 0x340f4: 0x6cf20620, 0x340f5: 0x6cf20820, 0x340f6: 0x6cf20a20, 0x340f7: 0x6cf20c20, + 0x340f8: 0x6cf20e20, 0x340f9: 0x6cf21020, 0x340fa: 0x6cf21220, 0x340fb: 0x6cf21420, + 0x340fc: 0x6cf21620, 0x340fd: 0x6cf21820, 0x340fe: 0x6cf21a20, 0x340ff: 0x6cf21c20, + // Block 0xd04, offset 0x34100 + 0x34100: 0x6cf21e20, 0x34101: 0x6cf22020, 0x34102: 0x6cf22220, 0x34103: 0x6cf22420, + 0x34104: 0x6cf22620, 0x34105: 0x6cf22820, 0x34106: 0x6cf22a20, 0x34107: 0x6cf22c20, + 0x34108: 0x6cf22e20, 0x34109: 0x6cf23020, 0x3410a: 0x6cf23220, 0x3410b: 0x6cf23420, + 0x3410c: 0x6cf23620, 0x3410d: 0x6cf23820, 0x3410e: 0x6cf23a20, 0x3410f: 0x6d21c820, + 0x34110: 0x6d21ca20, 0x34111: 0x6d21cc20, 0x34112: 0x6d21ce20, 0x34113: 0x6d21d020, + 0x34114: 0x6d21d220, 0x34115: 0x6d21d420, 0x34116: 0x6d21d620, 0x34117: 0x6d21d820, + 0x34118: 0x6d21da20, 0x34119: 0x6d21dc20, 0x3411a: 0x6d21de20, 0x3411b: 0x6d21e020, + 0x3411c: 0x6d21e220, 0x3411d: 0x6d21e420, 0x3411e: 0x6d21e620, 0x3411f: 0x6d21e820, + 0x34120: 0x6d21ea20, 0x34121: 0x6d21ec20, 0x34122: 0x6d21ee20, 0x34123: 0x6d21f020, + 0x34124: 0x6d21f220, 0x34125: 0x6d21f420, 0x34126: 0x6d21f620, 0x34127: 0x6cf23c20, + 0x34128: 0x6d21f820, 0x34129: 0x6d21fa20, 0x3412a: 0x6d4f4620, 0x3412b: 0x6d4f4820, + 0x3412c: 0x6d4f4a20, 0x3412d: 0x6d4f4c20, 0x3412e: 0x6d4f4e20, 0x3412f: 0x6d4f5020, + 0x34130: 0x6d4f5220, 0x34131: 0x6d4f5420, 0x34132: 0x6d4f5620, 0x34133: 0x6d4f5820, + 0x34134: 0x6d4f5a20, 0x34135: 0x6d4f5c20, 0x34136: 0x6d4f5e20, 0x34137: 0x6d4f6020, + 0x34138: 0x6d4f6220, 0x34139: 0x6d7b9420, 0x3413a: 0x6d7b9620, 0x3413b: 0x6d7b9820, + 0x3413c: 0x6d7b9a20, 0x3413d: 0x6d7b9c20, 0x3413e: 0x6d7b9e20, 0x3413f: 0x6d7ba020, + // Block 0xd05, offset 0x34140 + 0x34140: 0x6d7ba220, 0x34141: 0x6d7ba420, 0x34142: 0x6d7ba620, 0x34143: 0x6d7ba820, + 0x34144: 0x6d7baa20, 0x34145: 0x6d912c20, 0x34146: 0x6d7bac20, 0x34147: 0x6d7bae20, + 0x34148: 0x6da3c620, 0x34149: 0x6da3c820, 0x3414a: 0x6da3ca20, 0x3414b: 0x6db4d020, + 0x3414c: 0x6da3cc20, 0x3414d: 0x6da3ce20, 0x3414e: 0x6da3d020, 0x3414f: 0x6dc55e20, + 0x34150: 0x6dc56020, 0x34151: 0x6dc56220, 0x34152: 0x6dc56420, 0x34153: 0x6dc56620, + 0x34154: 0x6dc56820, 0x34155: 0x6dc56a20, 0x34156: 0x6dc56c20, 0x34157: 0x6dc56e20, + 0x34158: 0x6de27620, 0x34159: 0x6de27820, 0x3415a: 0x6de27a20, 0x3415b: 0x6df7ca20, + 0x3415c: 0x6de27c20, 0x3415d: 0x6dfa2020, 0x3415e: 0x6dfa2220, 0x3415f: 0x6dfa2420, + 0x34160: 0x6dfa2620, 0x34161: 0x6e01e220, 0x34162: 0x6dfa2820, 0x34163: 0x6e0dbc20, + 0x34164: 0x6e0dbe20, 0x34165: 0x6e1d3020, 0x34166: 0x6e28ce20, 0x34167: 0x6e388820, + 0x34168: 0x6e403a20, 0x34169: 0x6c01f220, 0x3416a: 0x6c046a20, 0x3416b: 0x6c091020, + 0x3416c: 0x6c091220, 0x3416d: 0x6c091420, 0x3416e: 0x6c091620, 0x3416f: 0x6c091820, + 0x34170: 0x6c091a20, 0x34171: 0x6c091c20, 0x34172: 0x6c118a20, 0x34173: 0x6c118c20, + 0x34174: 0x6c118e20, 0x34175: 0x6c119020, 0x34176: 0x6c119220, 0x34177: 0x6c119420, + 0x34178: 0x6c119620, 0x34179: 0x6c119820, 0x3417a: 0x6c119a20, 0x3417b: 0x6c119c20, + 0x3417c: 0x6c119e20, 0x3417d: 0x6c11a020, 0x3417e: 0x6c11a220, 0x3417f: 0x6c11a420, + // Block 0xd06, offset 0x34180 + 0x34180: 0x6c11a620, 0x34181: 0x6c11a820, 0x34182: 0x6c11aa20, 0x34183: 0x6c11ac20, + 0x34184: 0x6c11ae20, 0x34185: 0x6c11b020, 0x34186: 0x6c11b220, 0x34187: 0x6c11b420, + 0x34188: 0x6c11b620, 0x34189: 0x6c1f8020, 0x3418a: 0x6c1f8220, 0x3418b: 0x6c1f8420, + 0x3418c: 0x6c1f8620, 0x3418d: 0x6c1f8820, 0x3418e: 0x6c1f8a20, 0x3418f: 0x6c1f8c20, + 0x34190: 0x6c1f8e20, 0x34191: 0x6c1f9020, 0x34192: 0x6c1f9220, 0x34193: 0x6c1f9420, + 0x34194: 0x6c1f9620, 0x34195: 0x6c1f9820, 0x34196: 0x6c1f9a20, 0x34197: 0x6c1f9c20, + 0x34198: 0x6c1f9e20, 0x34199: 0x6c1fa020, 0x3419a: 0x6c1fa220, 0x3419b: 0x6c1fa420, + 0x3419c: 0x6c1fa620, 0x3419d: 0x6c1fa820, 0x3419e: 0x6c1faa20, 0x3419f: 0x6c1fac20, + 0x341a0: 0x6c1fae20, 0x341a1: 0x6c1fb020, 0x341a2: 0x6c1fb220, 0x341a3: 0x6c1fb420, + 0x341a4: 0x6c1fb620, 0x341a5: 0x6c1fb820, 0x341a6: 0x6c1fba20, 0x341a7: 0x6c1fbc20, + 0x341a8: 0x6c1fbe20, 0x341a9: 0x6c1fc020, 0x341aa: 0x6c1fc220, 0x341ab: 0x6c1fc420, + 0x341ac: 0x6c1fc620, 0x341ad: 0x6c1fc820, 0x341ae: 0x6c1fca20, 0x341af: 0x6c1fcc20, + 0x341b0: 0x6c1fce20, 0x341b1: 0x6c1fd020, 0x341b2: 0x6c1fd220, 0x341b3: 0x6c1fd420, + 0x341b4: 0x6c1fd620, 0x341b5: 0x6c1fd820, 0x341b6: 0x6c1fda20, 0x341b7: 0x6c1fdc20, + 0x341b8: 0x6c1fde20, 0x341b9: 0x6c1fe020, 0x341ba: 0x6c1fe220, 0x341bb: 0x6c1fe420, + 0x341bc: 0x6c1fe620, 0x341bd: 0x6c1fe820, 0x341be: 0x6c1fea20, 0x341bf: 0x6c336420, + // Block 0xd07, offset 0x341c0 + 0x341c0: 0x6c336620, 0x341c1: 0x6c336820, 0x341c2: 0x6c336a20, 0x341c3: 0x6c336c20, + 0x341c4: 0x6c336e20, 0x341c5: 0x6c337020, 0x341c6: 0x6c337220, 0x341c7: 0x6c337420, + 0x341c8: 0x6c337620, 0x341c9: 0x6c337820, 0x341ca: 0x6c337a20, 0x341cb: 0x6c337c20, + 0x341cc: 0x6c337e20, 0x341cd: 0x6c338020, 0x341ce: 0x6c338220, 0x341cf: 0x6c338420, + 0x341d0: 0x6c338620, 0x341d1: 0x6c338820, 0x341d2: 0x6c338a20, 0x341d3: 0x6c338c20, + 0x341d4: 0x6c338e20, 0x341d5: 0x6c339020, 0x341d6: 0x6c339220, 0x341d7: 0x6c339420, + 0x341d8: 0x6c339620, 0x341d9: 0x6c339820, 0x341da: 0x6c339a20, 0x341db: 0x6c339c20, + 0x341dc: 0x6c339e20, 0x341dd: 0x6c33a020, 0x341de: 0x6c33a220, 0x341df: 0x6c33a420, + 0x341e0: 0x6c33a620, 0x341e1: 0x6c33a820, 0x341e2: 0x6c33aa20, 0x341e3: 0x6c33ac20, + 0x341e4: 0x6c33ae20, 0x341e5: 0x6c33b020, 0x341e6: 0x6c33b220, 0x341e7: 0x6c33b420, + 0x341e8: 0x6c33b620, 0x341e9: 0x6c33b820, 0x341ea: 0x6c33ba20, 0x341eb: 0x6c33bc20, + 0x341ec: 0x6c33be20, 0x341ed: 0x6c33c020, 0x341ee: 0x6c33c220, 0x341ef: 0x6c33c420, + 0x341f0: 0x6c33c620, 0x341f1: 0x6c33c820, 0x341f2: 0x6c33ca20, 0x341f3: 0x6c33cc20, + 0x341f4: 0x6c4e1420, 0x341f5: 0x6c4e1620, 0x341f6: 0x6c4e1820, 0x341f7: 0x6c4e1a20, + 0x341f8: 0x6c4e1c20, 0x341f9: 0x6c4e1e20, 0x341fa: 0x6c4e2020, 0x341fb: 0x6c4e2220, + 0x341fc: 0x6c4e2420, 0x341fd: 0x6c4e2620, 0x341fe: 0x6c4e2820, 0x341ff: 0x6c4e2a20, + // Block 0xd08, offset 0x34200 + 0x34200: 0x6c4e2c20, 0x34201: 0x6c4e2e20, 0x34202: 0x6c4e3020, 0x34203: 0x6c4e3220, + 0x34204: 0x6c4e3420, 0x34205: 0x6c4e3620, 0x34206: 0x6c4e3820, 0x34207: 0x6c4e3a20, + 0x34208: 0x6c4e3c20, 0x34209: 0x6c4e3e20, 0x3420a: 0x6c4e4020, 0x3420b: 0x6c4e4220, + 0x3420c: 0x6c4e4420, 0x3420d: 0x6c4e4620, 0x3420e: 0x6c4e4820, 0x3420f: 0x6c4e4a20, + 0x34210: 0x6c4e4c20, 0x34211: 0x6c4e4e20, 0x34212: 0x6c4e5020, 0x34213: 0x6c4e5220, + 0x34214: 0x6c4e5420, 0x34215: 0x6c4e5620, 0x34216: 0x6c4e5820, 0x34217: 0x6c4e5a20, + 0x34218: 0x6c4e5c20, 0x34219: 0x6c4e5e20, 0x3421a: 0x6c4e6020, 0x3421b: 0x6c4e6220, + 0x3421c: 0x6c4e6420, 0x3421d: 0x6c4e6620, 0x3421e: 0x6c4e6820, 0x3421f: 0x6c4e6a20, + 0x34220: 0x6c4e6c20, 0x34221: 0x6c4e6e20, 0x34222: 0x6c4e7020, 0x34223: 0x6c4e7220, + 0x34224: 0x6c4e7420, 0x34225: 0x6c4e7620, 0x34226: 0x6c4e7820, 0x34227: 0x6c4e7a20, + 0x34228: 0x6c4e7c20, 0x34229: 0x6c4e7e20, 0x3422a: 0x6c4e8020, 0x3422b: 0x6c4e8220, + 0x3422c: 0x6c4e8420, 0x3422d: 0x6c4e8620, 0x3422e: 0x6c4e8820, 0x3422f: 0x6c4e8a20, + 0x34230: 0x6c4e8c20, 0x34231: 0x6c6fe420, 0x34232: 0x6c6fe620, 0x34233: 0x6c6fe820, + 0x34234: 0x6c6fea20, 0x34235: 0x6c6fec20, 0x34236: 0x6c6fee20, 0x34237: 0x6c6ff020, + 0x34238: 0x6c6ff220, 0x34239: 0x6c6ff420, 0x3423a: 0x6c6ff620, 0x3423b: 0x6c6ff820, + 0x3423c: 0x6c6ffa20, 0x3423d: 0x6c6ffc20, 0x3423e: 0x6c6ffe20, 0x3423f: 0x6c700020, + // Block 0xd09, offset 0x34240 + 0x34240: 0x6c700220, 0x34241: 0x6c700420, 0x34242: 0x6c700620, 0x34243: 0x6c700820, + 0x34244: 0x6c700a20, 0x34245: 0x6c700c20, 0x34246: 0x6c700e20, 0x34247: 0x6c701020, + 0x34248: 0x6c701220, 0x34249: 0x6c701420, 0x3424a: 0x6c701620, 0x3424b: 0x6c701820, + 0x3424c: 0x6c701a20, 0x3424d: 0x6c701c20, 0x3424e: 0x6c701e20, 0x3424f: 0x6c702020, + 0x34250: 0x6c702220, 0x34251: 0x6c702420, 0x34252: 0x6c702620, 0x34253: 0x6c702820, + 0x34254: 0x6c702a20, 0x34255: 0x6c702c20, 0x34256: 0x6c702e20, 0x34257: 0x6c703020, + 0x34258: 0x6c703220, 0x34259: 0x6c703420, 0x3425a: 0x6c703620, 0x3425b: 0x6c703820, + 0x3425c: 0x6c703a20, 0x3425d: 0x6c703c20, 0x3425e: 0x6c703e20, 0x3425f: 0x6c704020, + 0x34260: 0x6c704220, 0x34261: 0x6c704420, 0x34262: 0x6c704620, 0x34263: 0x6c704820, + 0x34264: 0x6c704a20, 0x34265: 0x6c704c20, 0x34266: 0x6c704e20, 0x34267: 0x6c705020, + 0x34268: 0x6c705220, 0x34269: 0x6c705420, 0x3426a: 0x6c705620, 0x3426b: 0x6c705820, + 0x3426c: 0x6c705a20, 0x3426d: 0x6c705c20, 0x3426e: 0x6c705e20, 0x3426f: 0x6c706020, + 0x34270: 0x6c706220, 0x34271: 0x6c706420, 0x34272: 0x6c706620, 0x34273: 0x6c706820, + 0x34274: 0x6c706a20, 0x34275: 0x6c706c20, 0x34276: 0x6c706e20, 0x34277: 0x6c707020, + 0x34278: 0x6c707220, 0x34279: 0x6c707420, 0x3427a: 0x6c707620, 0x3427b: 0x6c707820, + 0x3427c: 0x6c707a20, 0x3427d: 0x6c707c20, 0x3427e: 0x6c707e20, 0x3427f: 0x6c708020, + // Block 0xd0a, offset 0x34280 + 0x34280: 0x6c97d620, 0x34281: 0x6c97d820, 0x34282: 0x6c97da20, 0x34283: 0x6c97dc20, + 0x34284: 0x6c97de20, 0x34285: 0x6c97e020, 0x34286: 0x6c97e220, 0x34287: 0x6c97e420, + 0x34288: 0x6c97e620, 0x34289: 0x6c97e820, 0x3428a: 0x6c97ea20, 0x3428b: 0x6c97ec20, + 0x3428c: 0x6c97ee20, 0x3428d: 0x6c97f020, 0x3428e: 0x6c97f220, 0x3428f: 0x6c97f420, + 0x34290: 0x6c97f620, 0x34291: 0x6c97f820, 0x34292: 0x6c97fa20, 0x34293: 0x6c97fc20, + 0x34294: 0x6c97fe20, 0x34295: 0x6c980020, 0x34296: 0x6c980220, 0x34297: 0x6c980420, + 0x34298: 0x6c980620, 0x34299: 0x6c980820, 0x3429a: 0x6c980a20, 0x3429b: 0x6c980c20, + 0x3429c: 0x6c980e20, 0x3429d: 0x6c981020, 0x3429e: 0x6c981220, 0x3429f: 0x6c981420, + 0x342a0: 0x6c981620, 0x342a1: 0x6c981820, 0x342a2: 0x6c981a20, 0x342a3: 0x6c981c20, + 0x342a4: 0x6c981e20, 0x342a5: 0x6c982020, 0x342a6: 0x6c982220, 0x342a7: 0x6c982420, + 0x342a8: 0x6c982620, 0x342a9: 0x6c982820, 0x342aa: 0x6c982a20, 0x342ab: 0x6c982c20, + 0x342ac: 0x6c982e20, 0x342ad: 0x6c983020, 0x342ae: 0x6c983220, 0x342af: 0x6c983420, + 0x342b0: 0x6c983620, 0x342b1: 0x6c983820, 0x342b2: 0x6c983a20, 0x342b3: 0x6c983c20, + 0x342b4: 0x6c983e20, 0x342b5: 0x6c984020, 0x342b6: 0x6c984220, 0x342b7: 0x6c984420, + 0x342b8: 0x6c984620, 0x342b9: 0x6c984820, 0x342ba: 0x6c984a20, 0x342bb: 0x6c984c20, + 0x342bc: 0x6c984e20, 0x342bd: 0x6c985020, 0x342be: 0x6c985220, 0x342bf: 0x6c985420, + // Block 0xd0b, offset 0x342c0 + 0x342c0: 0x6c985620, 0x342c1: 0x6c985820, 0x342c2: 0x6c985a20, 0x342c3: 0x6c985c20, + 0x342c4: 0x6c985e20, 0x342c5: 0x6c986020, 0x342c6: 0x6c986220, 0x342c7: 0x6c986420, + 0x342c8: 0x6c986620, 0x342c9: 0x6c986820, 0x342ca: 0x6c986a20, 0x342cb: 0x6c986c20, + 0x342cc: 0x6c986e20, 0x342cd: 0x6c987020, 0x342ce: 0x6c987220, 0x342cf: 0x6c987420, + 0x342d0: 0x6c987620, 0x342d1: 0x6c987820, 0x342d2: 0x6c987a20, 0x342d3: 0x6c987c20, + 0x342d4: 0x6c987e20, 0x342d5: 0x6c988020, 0x342d6: 0x6c988220, 0x342d7: 0x6c988420, + 0x342d8: 0x6c988620, 0x342d9: 0x6c988820, 0x342da: 0x6c988a20, 0x342db: 0x6c988c20, + 0x342dc: 0x6c988e20, 0x342dd: 0x6c989020, 0x342de: 0x6c989220, 0x342df: 0x6c989420, + 0x342e0: 0x6c989620, 0x342e1: 0x6c989820, 0x342e2: 0x6c989a20, 0x342e3: 0x6c989c20, + 0x342e4: 0x6c989e20, 0x342e5: 0x6c98a020, 0x342e6: 0x6c98a220, 0x342e7: 0x6c98a420, + 0x342e8: 0x6cc3ac20, 0x342e9: 0x6cc3ae20, 0x342ea: 0x6cc3b020, 0x342eb: 0x6cc3b220, + 0x342ec: 0x6cc3b420, 0x342ed: 0x6cc3b620, 0x342ee: 0x6cc3b820, 0x342ef: 0x6cc3ba20, + 0x342f0: 0x6cc3bc20, 0x342f1: 0x6cc3be20, 0x342f2: 0x6cc3c020, 0x342f3: 0x6cc3c220, + 0x342f4: 0x6cc3c420, 0x342f5: 0x6cc3c620, 0x342f6: 0x6cc3c820, 0x342f7: 0x6cc3ca20, + 0x342f8: 0x6cc3cc20, 0x342f9: 0x6cc3ce20, 0x342fa: 0x6cc3d020, 0x342fb: 0x6cc3d220, + 0x342fc: 0x6cc3d420, 0x342fd: 0x6cc3d620, 0x342fe: 0x6cc3d820, 0x342ff: 0x6cc3da20, + // Block 0xd0c, offset 0x34300 + 0x34300: 0x6cc3dc20, 0x34301: 0x6cc3de20, 0x34302: 0x6cc3e020, 0x34303: 0x6cc3e220, + 0x34304: 0x6cc3e420, 0x34305: 0x6cc3e620, 0x34306: 0x6cc3e820, 0x34307: 0x6cc3ea20, + 0x34308: 0x6cc3ec20, 0x34309: 0x6cc3ee20, 0x3430a: 0x6cc3f020, 0x3430b: 0x6cc3f220, + 0x3430c: 0x6cc3f420, 0x3430d: 0x6cc3f620, 0x3430e: 0x6cc3f820, 0x3430f: 0x6cc3fa20, + 0x34310: 0x6cc3fc20, 0x34311: 0x6cc3fe20, 0x34312: 0x6cc40020, 0x34313: 0x6cc40220, + 0x34314: 0x6cc40420, 0x34315: 0x6cc40620, 0x34316: 0x6cc40820, 0x34317: 0x6cc40a20, + 0x34318: 0x6cc40c20, 0x34319: 0x6cc40e20, 0x3431a: 0x6cc41020, 0x3431b: 0x6cc41220, + 0x3431c: 0x6cc41420, 0x3431d: 0x6cc41620, 0x3431e: 0x6cc41820, 0x3431f: 0x6cc41a20, + 0x34320: 0x6cc41c20, 0x34321: 0x6cc41e20, 0x34322: 0x6cc42020, 0x34323: 0x6cc42220, + 0x34324: 0x6cc42420, 0x34325: 0x6cc42620, 0x34326: 0x6cc42820, 0x34327: 0x6cc42a20, + 0x34328: 0x6cc42c20, 0x34329: 0x6cc42e20, 0x3432a: 0x6cc43020, 0x3432b: 0x6cc43220, + 0x3432c: 0x6cc43420, 0x3432d: 0x6cc43620, 0x3432e: 0x6cc43820, 0x3432f: 0x6cc43a20, + 0x34330: 0x6cc43c20, 0x34331: 0x6cc43e20, 0x34332: 0x6cc44020, 0x34333: 0x6cc44220, + 0x34334: 0x6cc44420, 0x34335: 0x6cc44620, 0x34336: 0x6cc44820, 0x34337: 0x6cc44a20, + 0x34338: 0x6cc44c20, 0x34339: 0x6cc44e20, 0x3433a: 0x6cc45020, 0x3433b: 0x6cc45220, + 0x3433c: 0x6cc45420, 0x3433d: 0x6cc45620, 0x3433e: 0x6cc45820, 0x3433f: 0x6cc45a20, + // Block 0xd0d, offset 0x34340 + 0x34340: 0x6cc45c20, 0x34341: 0x6cc45e20, 0x34342: 0x6cc46020, 0x34343: 0x6cc46220, + 0x34344: 0x6cc46420, 0x34345: 0x6cc46620, 0x34346: 0x6cc46820, 0x34347: 0x6cc46a20, + 0x34348: 0x6cc46c20, 0x34349: 0x6cc46e20, 0x3434a: 0x6cc47020, 0x3434b: 0x6cc47220, + 0x3434c: 0x6cc47420, 0x3434d: 0x6cf2b620, 0x3434e: 0x6cf2b820, 0x3434f: 0x6cf2ba20, + 0x34350: 0x6cf2bc20, 0x34351: 0x6cf2be20, 0x34352: 0x6cf2c020, 0x34353: 0x6cf2c220, + 0x34354: 0x6cf2c420, 0x34355: 0x6cf2c620, 0x34356: 0x6cf2c820, 0x34357: 0x6cf2ca20, + 0x34358: 0x6cf2cc20, 0x34359: 0x6cf2ce20, 0x3435a: 0x6cf2d020, 0x3435b: 0x6cf2d220, + 0x3435c: 0x6cf2d420, 0x3435d: 0x6cf2d620, 0x3435e: 0x6cf2d820, 0x3435f: 0x6cf2da20, + 0x34360: 0x6cf2dc20, 0x34361: 0x6cf2de20, 0x34362: 0x6cf2e020, 0x34363: 0x6cf2e220, + 0x34364: 0x6cf2e420, 0x34365: 0x6cf2e620, 0x34366: 0x6cf2e820, 0x34367: 0x6cf2ea20, + 0x34368: 0x6cf2ec20, 0x34369: 0x6cf2ee20, 0x3436a: 0x6cf2f020, 0x3436b: 0x6cf2f220, + 0x3436c: 0x6cf2f420, 0x3436d: 0x6cf2f620, 0x3436e: 0x6cf2f820, 0x3436f: 0x6cf2fa20, + 0x34370: 0x6cf2fc20, 0x34371: 0x6cf2fe20, 0x34372: 0x6cf30020, 0x34373: 0x6cf30220, + 0x34374: 0x6cf30420, 0x34375: 0x6cf30620, 0x34376: 0x6cf30820, 0x34377: 0x6cf30a20, + 0x34378: 0x6cf30c20, 0x34379: 0x6cf30e20, 0x3437a: 0x6cf31020, 0x3437b: 0x6cf31220, + 0x3437c: 0x6cf31420, 0x3437d: 0x6cf31620, 0x3437e: 0x6cf31820, 0x3437f: 0x6cf31a20, + // Block 0xd0e, offset 0x34380 + 0x34380: 0x6cf31c20, 0x34381: 0x6cf31e20, 0x34382: 0x6cf32020, 0x34383: 0x6cf32220, + 0x34384: 0x6cf32420, 0x34385: 0x6cf32620, 0x34386: 0x6cf32820, 0x34387: 0x6cf32a20, + 0x34388: 0x6cf32c20, 0x34389: 0x6cf32e20, 0x3438a: 0x6cf33020, 0x3438b: 0x6cf33220, + 0x3438c: 0x6cf33420, 0x3438d: 0x6cf33620, 0x3438e: 0x6cf33820, 0x3438f: 0x6cf33a20, + 0x34390: 0x6cf33c20, 0x34391: 0x6cf33e20, 0x34392: 0x6cf34020, 0x34393: 0x6cf34220, + 0x34394: 0x6cf34420, 0x34395: 0x6cf34620, 0x34396: 0x6cf34820, 0x34397: 0x6cf34a20, + 0x34398: 0x6cf34c20, 0x34399: 0x6cf34e20, 0x3439a: 0x6cf35020, 0x3439b: 0x6cf35220, + 0x3439c: 0x6cf35420, 0x3439d: 0x6cf35620, 0x3439e: 0x6cf35820, 0x3439f: 0x6cf35a20, + 0x343a0: 0x6d227c20, 0x343a1: 0x6d227e20, 0x343a2: 0x6d228020, 0x343a3: 0x6d228220, + 0x343a4: 0x6d228420, 0x343a5: 0x6d228620, 0x343a6: 0x6d228820, 0x343a7: 0x6d228a20, + 0x343a8: 0x6d228c20, 0x343a9: 0x6d228e20, 0x343aa: 0x6d229020, 0x343ab: 0x6d229220, + 0x343ac: 0x6d229420, 0x343ad: 0x6d229620, 0x343ae: 0x6d229820, 0x343af: 0x6d229a20, + 0x343b0: 0x6d229c20, 0x343b1: 0x6d229e20, 0x343b2: 0x6d22a020, 0x343b3: 0x6d22a220, + 0x343b4: 0x6d22a420, 0x343b5: 0x6d22a620, 0x343b6: 0x6d22a820, 0x343b7: 0x6d22aa20, + 0x343b8: 0x6d22ac20, 0x343b9: 0x6d22ae20, 0x343ba: 0x6d22b020, 0x343bb: 0x6d22b220, + 0x343bc: 0x6d22b420, 0x343bd: 0x6d22b620, 0x343be: 0x6d22b820, 0x343bf: 0x6d22ba20, + // Block 0xd0f, offset 0x343c0 + 0x343c0: 0x6d22bc20, 0x343c1: 0x6d22be20, 0x343c2: 0x6d22c020, 0x343c3: 0x6d22c220, + 0x343c4: 0x6d22c420, 0x343c5: 0x6d22c620, 0x343c6: 0x6d22c820, 0x343c7: 0x6d22ca20, + 0x343c8: 0x6d22cc20, 0x343c9: 0x6d22ce20, 0x343ca: 0x6d22d020, 0x343cb: 0x6d22d220, + 0x343cc: 0x6d22d420, 0x343cd: 0x6d22d620, 0x343ce: 0x6d22d820, 0x343cf: 0x6d22da20, + 0x343d0: 0x6d22dc20, 0x343d1: 0x6d22de20, 0x343d2: 0x6d22e020, 0x343d3: 0x6d22e220, + 0x343d4: 0x6d22e420, 0x343d5: 0x6d22e620, 0x343d6: 0x6d22e820, 0x343d7: 0x6d22ea20, + 0x343d8: 0x6d22ec20, 0x343d9: 0x6d22ee20, 0x343da: 0x6d22f020, 0x343db: 0x6d22f220, + 0x343dc: 0x6d22f420, 0x343dd: 0x6d22f620, 0x343de: 0x6d22f820, 0x343df: 0x6d22fa20, + 0x343e0: 0x6d22fc20, 0x343e1: 0x6d22fe20, 0x343e2: 0x6d230020, 0x343e3: 0x6d230220, + 0x343e4: 0x6d230420, 0x343e5: 0x6d230620, 0x343e6: 0x6d230820, 0x343e7: 0x6d230a20, + 0x343e8: 0x6d230c20, 0x343e9: 0x6d230e20, 0x343ea: 0x6d231020, 0x343eb: 0x6d231220, + 0x343ec: 0x6d231420, 0x343ed: 0x6d231620, 0x343ee: 0x6d231820, 0x343ef: 0x6d231a20, + 0x343f0: 0x6d231c20, 0x343f1: 0x6d4ff020, 0x343f2: 0x6d4ff220, 0x343f3: 0x6d4ff420, + 0x343f4: 0x6d4ff620, 0x343f5: 0x6d4ff820, 0x343f6: 0x6d4ffa20, 0x343f7: 0x6d4ffc20, + 0x343f8: 0x6d4ffe20, 0x343f9: 0x6d500020, 0x343fa: 0x6d500220, 0x343fb: 0x6d500420, + 0x343fc: 0x6d500620, 0x343fd: 0x6d500820, 0x343fe: 0x6d500a20, 0x343ff: 0x6d500c20, + // Block 0xd10, offset 0x34400 + 0x34400: 0x6d500e20, 0x34401: 0x6d501020, 0x34402: 0x6d501220, 0x34403: 0x6d501420, + 0x34404: 0x6d501620, 0x34405: 0x6d501820, 0x34406: 0x6d501a20, 0x34407: 0x6d501c20, + 0x34408: 0x6d501e20, 0x34409: 0x6d502020, 0x3440a: 0x6d502220, 0x3440b: 0x6d502420, + 0x3440c: 0x6d502620, 0x3440d: 0x6d502820, 0x3440e: 0x6d502a20, 0x3440f: 0x6d502c20, + 0x34410: 0x6d502e20, 0x34411: 0x6d503020, 0x34412: 0x6d503220, 0x34413: 0x6d503420, + 0x34414: 0x6d503620, 0x34415: 0x6d503820, 0x34416: 0x6d503a20, 0x34417: 0x6d503c20, + 0x34418: 0x6d503e20, 0x34419: 0x6d504020, 0x3441a: 0x6d504220, 0x3441b: 0x6d504420, + 0x3441c: 0x6d504620, 0x3441d: 0x6d504820, 0x3441e: 0x6d504a20, 0x3441f: 0x6d504c20, + 0x34420: 0x6d504e20, 0x34421: 0x6d505020, 0x34422: 0x6d505220, 0x34423: 0x6d505420, + 0x34424: 0x6d505620, 0x34425: 0x6d505820, 0x34426: 0x6d505a20, 0x34427: 0x6d505c20, + 0x34428: 0x6d505e20, 0x34429: 0x6d506020, 0x3442a: 0x6d506220, 0x3442b: 0x6d506420, + 0x3442c: 0x6d506620, 0x3442d: 0x6d506820, 0x3442e: 0x6d506a20, 0x3442f: 0x6d506c20, + 0x34430: 0x6d506e20, 0x34431: 0x6d507020, 0x34432: 0x6d507220, 0x34433: 0x6d507420, + 0x34434: 0x6d507620, 0x34435: 0x6d507820, 0x34436: 0x6d507a20, 0x34437: 0x6d507c20, + 0x34438: 0x6d507e20, 0x34439: 0x6d508020, 0x3443a: 0x6d508220, 0x3443b: 0x6d508420, + 0x3443c: 0x6d508620, 0x3443d: 0x6d508820, 0x3443e: 0x6d508a20, 0x3443f: 0x6d508c20, + // Block 0xd11, offset 0x34440 + 0x34440: 0x6d508e20, 0x34441: 0x6d509020, 0x34442: 0x6d509220, 0x34443: 0x6d509420, + 0x34444: 0x6d509620, 0x34445: 0x6d509820, 0x34446: 0x6d509a20, 0x34447: 0x6d509c20, + 0x34448: 0x6d509e20, 0x34449: 0x6d50a020, 0x3444a: 0x6d50a220, 0x3444b: 0x6d50a420, + 0x3444c: 0x6d50a620, 0x3444d: 0x6d50a820, 0x3444e: 0x6d50aa20, 0x3444f: 0x6d50ac20, + 0x34450: 0x6d50ae20, 0x34451: 0x6d50b020, 0x34452: 0x6d7c0220, 0x34453: 0x6d7c0420, + 0x34454: 0x6d7c0620, 0x34455: 0x6d7c0820, 0x34456: 0x6d7c0a20, 0x34457: 0x6d7c0c20, + 0x34458: 0x6d7c0e20, 0x34459: 0x6d7c1020, 0x3445a: 0x6d7c1220, 0x3445b: 0x6d7c1420, + 0x3445c: 0x6d7c1620, 0x3445d: 0x6d7c1820, 0x3445e: 0x6d7c1a20, 0x3445f: 0x6d7c1c20, + 0x34460: 0x6d7c1e20, 0x34461: 0x6d7c2020, 0x34462: 0x6d7c2220, 0x34463: 0x6d7c2420, + 0x34464: 0x6d7c2620, 0x34465: 0x6d7c2820, 0x34466: 0x6d7c2a20, 0x34467: 0x6d7c2c20, + 0x34468: 0x6d7c2e20, 0x34469: 0x6d7c3020, 0x3446a: 0x6d7c3220, 0x3446b: 0x6d7c3420, + 0x3446c: 0x6d7c3620, 0x3446d: 0x6d7c3820, 0x3446e: 0x6d7c3a20, 0x3446f: 0x6d7c3c20, + 0x34470: 0x6d7c3e20, 0x34471: 0x6d7c4020, 0x34472: 0x6d7c4220, 0x34473: 0x6d7c4420, + 0x34474: 0x6d7c4620, 0x34475: 0x6d7c4820, 0x34476: 0x6d7c4a20, 0x34477: 0x6d7c4c20, + 0x34478: 0x6d7c4e20, 0x34479: 0x6d7c5020, 0x3447a: 0x6d7c5220, 0x3447b: 0x6d7c5420, + 0x3447c: 0x6d7c5620, 0x3447d: 0x6d7c5820, 0x3447e: 0x6d7c5a20, 0x3447f: 0x6d7c5c20, + // Block 0xd12, offset 0x34480 + 0x34480: 0x6d7c5e20, 0x34481: 0x6d7c6020, 0x34482: 0x6d7c6220, 0x34483: 0x6d7c6420, + 0x34484: 0x6d7c6620, 0x34485: 0x6d7c6820, 0x34486: 0x6d7c6a20, 0x34487: 0x6d7c6c20, + 0x34488: 0x6d7c6e20, 0x34489: 0x6d7c7020, 0x3448a: 0x6d7c7220, 0x3448b: 0x6d7c7420, + 0x3448c: 0x6d7c7620, 0x3448d: 0x6d7c7820, 0x3448e: 0x6da40820, 0x3448f: 0x6da40a20, + 0x34490: 0x6da40c20, 0x34491: 0x6da40e20, 0x34492: 0x6da41020, 0x34493: 0x6da41220, + 0x34494: 0x6da41420, 0x34495: 0x6da41620, 0x34496: 0x6da41820, 0x34497: 0x6da41a20, + 0x34498: 0x6da41c20, 0x34499: 0x6da41e20, 0x3449a: 0x6da42020, 0x3449b: 0x6da42220, + 0x3449c: 0x6da42420, 0x3449d: 0x6da42620, 0x3449e: 0x6da42820, 0x3449f: 0x6da42a20, + 0x344a0: 0x6da42c20, 0x344a1: 0x6da42e20, 0x344a2: 0x6da43020, 0x344a3: 0x6da43220, + 0x344a4: 0x6da43420, 0x344a5: 0x6da43620, 0x344a6: 0x6da43820, 0x344a7: 0x6da43a20, + 0x344a8: 0x6da43c20, 0x344a9: 0x6da43e20, 0x344aa: 0x6da44020, 0x344ab: 0x6da44220, + 0x344ac: 0x6da44420, 0x344ad: 0x6da44620, 0x344ae: 0x6da44820, 0x344af: 0x6da44a20, + 0x344b0: 0x6da44c20, 0x344b1: 0x6da44e20, 0x344b2: 0x6da45020, 0x344b3: 0x6da45220, + 0x344b4: 0x6da45420, 0x344b5: 0x6da45620, 0x344b6: 0x6da45820, 0x344b7: 0x6da45a20, + 0x344b8: 0x6da45c20, 0x344b9: 0x6da45e20, 0x344ba: 0x6da46020, 0x344bb: 0x6dc59e20, + 0x344bc: 0x6dc5a020, 0x344bd: 0x6dc5a220, 0x344be: 0x6dc5a420, 0x344bf: 0x6dc5a620, + // Block 0xd13, offset 0x344c0 + 0x344c0: 0x6dc5a820, 0x344c1: 0x6dc5aa20, 0x344c2: 0x6dc5ac20, 0x344c3: 0x6dc5ae20, + 0x344c4: 0x6dc5b020, 0x344c5: 0x6dc5b220, 0x344c6: 0x6dc5b420, 0x344c7: 0x6dc5b620, + 0x344c8: 0x6dc5b820, 0x344c9: 0x6dc5ba20, 0x344ca: 0x6dc5bc20, 0x344cb: 0x6dc5be20, + 0x344cc: 0x6dc5c020, 0x344cd: 0x6dc5c220, 0x344ce: 0x6dc5c420, 0x344cf: 0x6dc5c620, + 0x344d0: 0x6dc5c820, 0x344d1: 0x6dc5ca20, 0x344d2: 0x6dc5cc20, 0x344d3: 0x6dc5ce20, + 0x344d4: 0x6dc5d020, 0x344d5: 0x6dc5d220, 0x344d6: 0x6dc5d420, 0x344d7: 0x6dc5d620, + 0x344d8: 0x6dc5d820, 0x344d9: 0x6dc5da20, 0x344da: 0x6dc5dc20, 0x344db: 0x6dc5de20, + 0x344dc: 0x6dc5e020, 0x344dd: 0x6dc5e220, 0x344de: 0x6dc5e420, 0x344df: 0x6dc5e620, + 0x344e0: 0x6dc5e820, 0x344e1: 0x6dc5ea20, 0x344e2: 0x6dc5ec20, 0x344e3: 0x6dc5ee20, + 0x344e4: 0x6dc5f020, 0x344e5: 0x6dc5f220, 0x344e6: 0x6de29020, 0x344e7: 0x6de29220, + 0x344e8: 0x6de29420, 0x344e9: 0x6de29620, 0x344ea: 0x6de29820, 0x344eb: 0x6de29a20, + 0x344ec: 0x6de29c20, 0x344ed: 0x6de29e20, 0x344ee: 0x6de2a020, 0x344ef: 0x6de2a220, + 0x344f0: 0x6de2a420, 0x344f1: 0x6de2a620, 0x344f2: 0x6de2a820, 0x344f3: 0x6de2aa20, + 0x344f4: 0x6de2ac20, 0x344f5: 0x6de2ae20, 0x344f6: 0x6de2b020, 0x344f7: 0x6de2b220, + 0x344f8: 0x6de2b420, 0x344f9: 0x6de2b620, 0x344fa: 0x6de2b820, 0x344fb: 0x6de2ba20, + 0x344fc: 0x6de2bc20, 0x344fd: 0x6de2be20, 0x344fe: 0x6de2c020, 0x344ff: 0x6de2c220, + // Block 0xd14, offset 0x34500 + 0x34500: 0x6de2c420, 0x34501: 0x6de2c620, 0x34502: 0x6de2c820, 0x34503: 0x6de2ca20, + 0x34504: 0x6de2cc20, 0x34505: 0x6de2ce20, 0x34506: 0x6de2d020, 0x34507: 0x6de2d220, + 0x34508: 0x6de2d420, 0x34509: 0x6de2d620, 0x3450a: 0x6de2d820, 0x3450b: 0x6dfa3a20, + 0x3450c: 0x6dfa3c20, 0x3450d: 0x6dfa3e20, 0x3450e: 0x6dfa4020, 0x3450f: 0x6dfa4220, + 0x34510: 0x6dfa4420, 0x34511: 0x6dfa4620, 0x34512: 0x6dfa4820, 0x34513: 0x6dfa4a20, + 0x34514: 0x6dfa4c20, 0x34515: 0x6dfa4e20, 0x34516: 0x6dfa5020, 0x34517: 0x6e0dc620, + 0x34518: 0x6e0dc820, 0x34519: 0x6e0dca20, 0x3451a: 0x6e0dcc20, 0x3451b: 0x6e0dce20, + 0x3451c: 0x6e0dd020, 0x3451d: 0x6e0dd220, 0x3451e: 0x6e0dd420, 0x3451f: 0x6e0dd620, + 0x34520: 0x6e0dd820, 0x34521: 0x6e0dda20, 0x34522: 0x6e0ddc20, 0x34523: 0x6e0dde20, + 0x34524: 0x6e0de020, 0x34525: 0x6e1d3a20, 0x34526: 0x6e1d3c20, 0x34527: 0x6e1d3e20, + 0x34528: 0x6e1d4020, 0x34529: 0x6e1d4220, 0x3452a: 0x6e1d4420, 0x3452b: 0x6e1d4620, + 0x3452c: 0x6e1d4820, 0x3452d: 0x6e1d4a20, 0x3452e: 0x6e1d4c20, 0x3452f: 0x6e28d820, + 0x34530: 0x6e28da20, 0x34531: 0x6e28dc20, 0x34532: 0x6e28de20, 0x34533: 0x6e28e020, + 0x34534: 0x6e28e220, 0x34535: 0x6e28e420, 0x34536: 0x6e28e620, 0x34537: 0x6e28e820, + 0x34538: 0x6e28ea20, 0x34539: 0x6e28ec20, 0x3453a: 0x6e28ee20, 0x3453b: 0x6e321620, + 0x3453c: 0x6e321820, 0x3453d: 0x6e321a20, 0x3453e: 0x6e321c20, 0x3453f: 0x6e321e20, + // Block 0xd15, offset 0x34540 + 0x34540: 0x6e322020, 0x34541: 0x6e322220, 0x34542: 0x6e322420, 0x34543: 0x6e3d2820, + 0x34544: 0x6e3d2a20, 0x34545: 0x6e403e20, 0x34546: 0x6e404020, 0x34547: 0x6e404220, + 0x34548: 0x6e429a20, 0x34549: 0x6e429c20, 0x3454a: 0x6e451c20, 0x3454b: 0x6e45c020, + 0x3454c: 0x6c092620, 0x3454d: 0x6c092820, 0x3454e: 0x6c11c420, 0x3454f: 0x6c11c620, + 0x34550: 0x6c11c820, 0x34551: 0x6c11ca20, 0x34552: 0x6c200620, 0x34553: 0x6c200820, + 0x34554: 0x6c200a20, 0x34555: 0x6c200c20, 0x34556: 0x6c200e20, 0x34557: 0x6c201020, + 0x34558: 0x6c201220, 0x34559: 0x6c201420, 0x3455a: 0x6c33ea20, 0x3455b: 0x6c33ec20, + 0x3455c: 0x6c33ee20, 0x3455d: 0x6c33f020, 0x3455e: 0x6c33f220, 0x3455f: 0x6c33f420, + 0x34560: 0x6c33f620, 0x34561: 0x6c33f820, 0x34562: 0x6c33fa20, 0x34563: 0x6c33fc20, + 0x34564: 0x6c33fe20, 0x34565: 0x6c340020, 0x34566: 0x6c4ea220, 0x34567: 0x6c4ea420, + 0x34568: 0x6c4ea620, 0x34569: 0x6c4ea820, 0x3456a: 0x6c4eaa20, 0x3456b: 0x6c4eac20, + 0x3456c: 0x6c4eae20, 0x3456d: 0x6c4eb020, 0x3456e: 0x6c4eb220, 0x3456f: 0x6c4eb420, + 0x34570: 0x6c4eb620, 0x34571: 0x6c4eb820, 0x34572: 0x6c4eba20, 0x34573: 0x6c4ebc20, + 0x34574: 0x6c4ebe20, 0x34575: 0x6c4ec020, 0x34576: 0x6c4ec220, 0x34577: 0x6c709e20, + 0x34578: 0x6c70a020, 0x34579: 0x6c70a220, 0x3457a: 0x6c70a420, 0x3457b: 0x6c70a620, + 0x3457c: 0x6c70a820, 0x3457d: 0x6c70aa20, 0x3457e: 0x6c70ac20, 0x3457f: 0x6c98c020, + // Block 0xd16, offset 0x34580 + 0x34580: 0x6c98c220, 0x34581: 0x6c98c420, 0x34582: 0x6c98c620, 0x34583: 0x6c98c820, + 0x34584: 0x6c98ca20, 0x34585: 0x6c98cc20, 0x34586: 0x6c98ce20, 0x34587: 0x6c98d020, + 0x34588: 0x6cc49420, 0x34589: 0x6cc49620, 0x3458a: 0x6cc49820, 0x3458b: 0x6cc49a20, + 0x3458c: 0x6cc49c20, 0x3458d: 0x6cc49e20, 0x3458e: 0x6cc4a020, 0x3458f: 0x6cc4a220, + 0x34590: 0x6cc4a420, 0x34591: 0x6cc4a620, 0x34592: 0x6cc4a820, 0x34593: 0x6cc4aa20, + 0x34594: 0x6cf38420, 0x34595: 0x6cf38620, 0x34596: 0x6cf38820, 0x34597: 0x6cf38a20, + 0x34598: 0x6cf38c20, 0x34599: 0x6cf38e20, 0x3459a: 0x6cf39020, 0x3459b: 0x6cf39220, + 0x3459c: 0x6cf39420, 0x3459d: 0x6cf39620, 0x3459e: 0x6cf39820, 0x3459f: 0x6cf39a20, + 0x345a0: 0x6cf39c20, 0x345a1: 0x6cf39e20, 0x345a2: 0x6d234220, 0x345a3: 0x6d234420, + 0x345a4: 0x6d234620, 0x345a5: 0x6d234820, 0x345a6: 0x6d234a20, 0x345a7: 0x6d234c20, + 0x345a8: 0x6d50c820, 0x345a9: 0x6d234e20, 0x345aa: 0x6d235020, 0x345ab: 0x6d235220, + 0x345ac: 0x6d235420, 0x345ad: 0x6d235620, 0x345ae: 0x6d235820, 0x345af: 0x6d235a20, + 0x345b0: 0x6d235c20, 0x345b1: 0x6d235e20, 0x345b2: 0x6d50ca20, 0x345b3: 0x6d50cc20, + 0x345b4: 0x6d50ce20, 0x345b5: 0x6d50d020, 0x345b6: 0x6d50d220, 0x345b7: 0x6d50d420, + 0x345b8: 0x6d50d620, 0x345b9: 0x6d50d820, 0x345ba: 0x6d50da20, 0x345bb: 0x6d50dc20, + 0x345bc: 0x6d50de20, 0x345bd: 0x6d50e020, 0x345be: 0x6d50e220, 0x345bf: 0x6d50e420, + // Block 0xd17, offset 0x345c0 + 0x345c0: 0x6d50e620, 0x345c1: 0x6d50e820, 0x345c2: 0x6d50ea20, 0x345c3: 0x6d50ec20, + 0x345c4: 0x6d50ee20, 0x345c5: 0x6d50f020, 0x345c6: 0x6d50f220, 0x345c7: 0x6d7c9420, + 0x345c8: 0x6d7c9620, 0x345c9: 0x6d7c9820, 0x345ca: 0x6d7c9a20, 0x345cb: 0x6d7c9c20, + 0x345cc: 0x6d7c9e20, 0x345cd: 0x6d7ca020, 0x345ce: 0x6d7ca220, 0x345cf: 0x6d7ca420, + 0x345d0: 0x6d784620, 0x345d1: 0x6d7ca620, 0x345d2: 0x6d7ca820, 0x345d3: 0x6da46e20, + 0x345d4: 0x6da47020, 0x345d5: 0x6da47220, 0x345d6: 0x6da47420, 0x345d7: 0x6da47620, + 0x345d8: 0x6dc60220, 0x345d9: 0x6dc60420, 0x345da: 0x6de2e020, 0x345db: 0x6de2e220, + 0x345dc: 0x6de2e420, 0x345dd: 0x6de2e620, 0x345de: 0x6dfa5620, 0x345df: 0x6dfa5820, + 0x345e0: 0x6dfa5a20, 0x345e1: 0x6e0de620, 0x345e2: 0x6e0de820, 0x345e3: 0x6e0dea20, + 0x345e4: 0x6c092e20, 0x345e5: 0x6c093020, 0x345e6: 0x6c11ce20, 0x345e7: 0x6c11d020, + 0x345e8: 0x6c11d220, 0x345e9: 0x6c11d420, 0x345ea: 0x6c201e20, 0x345eb: 0x6c202020, + 0x345ec: 0x6c202220, 0x345ed: 0x6c202420, 0x345ee: 0x6c202620, 0x345ef: 0x6c340e20, + 0x345f0: 0x6c341020, 0x345f1: 0x6c341220, 0x345f2: 0x6c341420, 0x345f3: 0x6c341620, + 0x345f4: 0x6c341820, 0x345f5: 0x6c341a20, 0x345f6: 0x6c4ed220, 0x345f7: 0x6c4ed420, + 0x345f8: 0x6c4ed620, 0x345f9: 0x6c4ed820, 0x345fa: 0x6c4eda20, 0x345fb: 0x6c4edc20, + 0x345fc: 0x6c4ede20, 0x345fd: 0x6c4ee020, 0x345fe: 0x6c4ee220, 0x345ff: 0x6c4ee420, + // Block 0xd18, offset 0x34600 + 0x34600: 0x6c4ee620, 0x34601: 0x6c4ee820, 0x34602: 0x6c4eea20, 0x34603: 0x6c4eec20, + 0x34604: 0x6c4eee20, 0x34605: 0x6c70ba20, 0x34606: 0x6c70bc20, 0x34607: 0x6c70be20, + 0x34608: 0x6c70c020, 0x34609: 0x6c70c220, 0x3460a: 0x6c70c420, 0x3460b: 0x6c70c620, + 0x3460c: 0x6c70c820, 0x3460d: 0x6c98d820, 0x3460e: 0x6c98da20, 0x3460f: 0x6c98dc20, + 0x34610: 0x6c98de20, 0x34611: 0x6cc4b220, 0x34612: 0x6cc4b420, 0x34613: 0x6cc4b620, + 0x34614: 0x6cc4b820, 0x34615: 0x6cc4ba20, 0x34616: 0x6cf3a220, 0x34617: 0x6cf3a420, + 0x34618: 0x6d236220, 0x34619: 0x6d236420, 0x3461a: 0x6d236620, 0x3461b: 0x6d236820, + 0x3461c: 0x6d50f420, 0x3461d: 0x6d50f620, 0x3461e: 0x6d50f820, 0x3461f: 0x6d7cb020, + 0x34620: 0x6da47820, 0x34621: 0x6dc60620, 0x34622: 0x6e0dec20, 0x34623: 0x6e28f220, + 0x34624: 0x6e28f420, 0x34625: 0x6c047820, 0x34626: 0x6c047a20, 0x34627: 0x6c047c20, + 0x34628: 0x6c094620, 0x34629: 0x6c094820, 0x3462a: 0x6c094a20, 0x3462b: 0x6c094c20, + 0x3462c: 0x6c094e20, 0x3462d: 0x6c120620, 0x3462e: 0x6c120820, 0x3462f: 0x6c120a20, + 0x34630: 0x6c120c20, 0x34631: 0x6c120e20, 0x34632: 0x6c121020, 0x34633: 0x6c121220, + 0x34634: 0x6c121420, 0x34635: 0x6c121620, 0x34636: 0x6c121820, 0x34637: 0x6c121a20, + 0x34638: 0x6c121c20, 0x34639: 0x6c121e20, 0x3463a: 0x6c122020, 0x3463b: 0x6c122220, + 0x3463c: 0x6c122420, 0x3463d: 0x6c122620, 0x3463e: 0x6c122820, 0x3463f: 0x6c122a20, + // Block 0xd19, offset 0x34640 + 0x34640: 0x6c122c20, 0x34641: 0x6c122e20, 0x34642: 0x6c123020, 0x34643: 0x6c20a820, + 0x34644: 0x6c20aa20, 0x34645: 0x6c20ac20, 0x34646: 0x6c20ae20, 0x34647: 0x6c20b020, + 0x34648: 0x6c20b220, 0x34649: 0x6c20b420, 0x3464a: 0x6c20b620, 0x3464b: 0x6c20b820, + 0x3464c: 0x6c20ba20, 0x3464d: 0x6c20bc20, 0x3464e: 0x6c20be20, 0x3464f: 0x6c20c020, + 0x34650: 0x6c20c220, 0x34651: 0x6c20c420, 0x34652: 0x6c20c620, 0x34653: 0x6c20c820, + 0x34654: 0x6c20ca20, 0x34655: 0x6c20cc20, 0x34656: 0x6c20ce20, 0x34657: 0x6c20d020, + 0x34658: 0x6c20d220, 0x34659: 0x6c20d420, 0x3465a: 0x6c20d620, 0x3465b: 0x6c20d820, + 0x3465c: 0x6c20da20, 0x3465d: 0x6c20dc20, 0x3465e: 0x6c20de20, 0x3465f: 0x6c20e020, + 0x34660: 0x6c20e220, 0x34661: 0x6c20e420, 0x34662: 0x6c20e620, 0x34663: 0x6c20e820, + 0x34664: 0x6c20ea20, 0x34665: 0x6c20ec20, 0x34666: 0x6c20ee20, 0x34667: 0x6c20f020, + 0x34668: 0x6c20f220, 0x34669: 0x6c20f420, 0x3466a: 0x6c20f620, 0x3466b: 0x6c20f820, + 0x3466c: 0x6c20fa20, 0x3466d: 0x6c20fc20, 0x3466e: 0x6c20fe20, 0x3466f: 0x6c210020, + 0x34670: 0x6c210220, 0x34671: 0x6c210420, 0x34672: 0x6c210620, 0x34673: 0x6c210820, + 0x34674: 0x6c34be20, 0x34675: 0x6c34c020, 0x34676: 0x6c34c220, 0x34677: 0x6c34c420, + 0x34678: 0x6c34c620, 0x34679: 0x6c34c820, 0x3467a: 0x6c34ca20, 0x3467b: 0x6c34cc20, + 0x3467c: 0x6c34ce20, 0x3467d: 0x6c34d020, 0x3467e: 0x6c34d220, 0x3467f: 0x6c34d420, + // Block 0xd1a, offset 0x34680 + 0x34680: 0x6c34d620, 0x34681: 0x6c34d820, 0x34682: 0x6c34da20, 0x34683: 0x6c34dc20, + 0x34684: 0x6c34de20, 0x34685: 0x6c34e020, 0x34686: 0x6c34e220, 0x34687: 0x6c34e420, + 0x34688: 0x6c34e620, 0x34689: 0x6c34e820, 0x3468a: 0x6c34ea20, 0x3468b: 0x6c34ec20, + 0x3468c: 0x6c34ee20, 0x3468d: 0x6c34f020, 0x3468e: 0x6c34f220, 0x3468f: 0x6c34f420, + 0x34690: 0x6c34f620, 0x34691: 0x6c34f820, 0x34692: 0x6c34fa20, 0x34693: 0x6c34fc20, + 0x34694: 0x6c34fe20, 0x34695: 0x6c350020, 0x34696: 0x6c350220, 0x34697: 0x6c350420, + 0x34698: 0x6c350620, 0x34699: 0x6c350820, 0x3469a: 0x6c350a20, 0x3469b: 0x6c350c20, + 0x3469c: 0x6c350e20, 0x3469d: 0x6c351020, 0x3469e: 0x6c351220, 0x3469f: 0x6c351420, + 0x346a0: 0x6c351620, 0x346a1: 0x6c351820, 0x346a2: 0x6c351a20, 0x346a3: 0x6c351c20, + 0x346a4: 0x6c4f8020, 0x346a5: 0x6c4f8220, 0x346a6: 0x6c4f8420, 0x346a7: 0x6c4f8620, + 0x346a8: 0x6c4f8820, 0x346a9: 0x6c4f8a20, 0x346aa: 0x6c4f8c20, 0x346ab: 0x6c4f8e20, + 0x346ac: 0x6c4f9020, 0x346ad: 0x6c4f9220, 0x346ae: 0x6c4f9420, 0x346af: 0x6c4f9620, + 0x346b0: 0x6c4f9820, 0x346b1: 0x6c4f9a20, 0x346b2: 0x6c4f9c20, 0x346b3: 0x6c4f9e20, + 0x346b4: 0x6c4fa020, 0x346b5: 0x6c4fa220, 0x346b6: 0x6c4fa420, 0x346b7: 0x6c4fa620, + 0x346b8: 0x6c4fa820, 0x346b9: 0x6c4faa20, 0x346ba: 0x6c4fac20, 0x346bb: 0x6c4fae20, + 0x346bc: 0x6c4fb020, 0x346bd: 0x6c4fb220, 0x346be: 0x6c4fb420, 0x346bf: 0x6c4fb620, + // Block 0xd1b, offset 0x346c0 + 0x346c0: 0x6c4fb820, 0x346c1: 0x6c4fba20, 0x346c2: 0x6c4fbc20, 0x346c3: 0x6c4fbe20, + 0x346c4: 0x6c4fc020, 0x346c5: 0x6c4fc220, 0x346c6: 0x6c4fc420, 0x346c7: 0x6c4fc620, + 0x346c8: 0x6c4fc820, 0x346c9: 0x6c4fca20, 0x346ca: 0x6c4fcc20, 0x346cb: 0x6c4fce20, + 0x346cc: 0x6c4fd020, 0x346cd: 0x6c4fd220, 0x346ce: 0x6c4fd420, 0x346cf: 0x6c4fd620, + 0x346d0: 0x6c4fd820, 0x346d1: 0x6c4fda20, 0x346d2: 0x6c4fdc20, 0x346d3: 0x6c4fde20, + 0x346d4: 0x6c4fe020, 0x346d5: 0x6c4fe220, 0x346d6: 0x6c4fe420, 0x346d7: 0x6c4fe620, + 0x346d8: 0x6c4fe820, 0x346d9: 0x6c4fea20, 0x346da: 0x6c4fec20, 0x346db: 0x6c4fee20, + 0x346dc: 0x6c4ff020, 0x346dd: 0x6c4ff220, 0x346de: 0x6c4ff420, 0x346df: 0x6c4ff620, + 0x346e0: 0x6c4ff820, 0x346e1: 0x6c4ffa20, 0x346e2: 0x6c4ffc20, 0x346e3: 0x6c4ffe20, + 0x346e4: 0x6c500020, 0x346e5: 0x6c500220, 0x346e6: 0x6c500420, 0x346e7: 0x6c500620, + 0x346e8: 0x6c500820, 0x346e9: 0x6c500a20, 0x346ea: 0x6c500c20, 0x346eb: 0x6c500e20, + 0x346ec: 0x6c501020, 0x346ed: 0x6c501220, 0x346ee: 0x6c501420, 0x346ef: 0x6c716220, + 0x346f0: 0x6c716420, 0x346f1: 0x6c716620, 0x346f2: 0x6c716820, 0x346f3: 0x6c716a20, + 0x346f4: 0x6c716c20, 0x346f5: 0x6c716e20, 0x346f6: 0x6c717020, 0x346f7: 0x6c717220, + 0x346f8: 0x6c717420, 0x346f9: 0x6c717620, 0x346fa: 0x6c717820, 0x346fb: 0x6c717a20, + 0x346fc: 0x6c717c20, 0x346fd: 0x6c717e20, 0x346fe: 0x6c718020, 0x346ff: 0x6c718220, + // Block 0xd1c, offset 0x34700 + 0x34700: 0x6c718420, 0x34701: 0x6c718620, 0x34702: 0x6c718820, 0x34703: 0x6c718a20, + 0x34704: 0x6c718c20, 0x34705: 0x6c718e20, 0x34706: 0x6c719020, 0x34707: 0x6c719220, + 0x34708: 0x6c719420, 0x34709: 0x6c719620, 0x3470a: 0x6c719820, 0x3470b: 0x6c719a20, + 0x3470c: 0x6c719c20, 0x3470d: 0x6c719e20, 0x3470e: 0x6c71a020, 0x3470f: 0x6c71a220, + 0x34710: 0x6c71a420, 0x34711: 0x6c71a620, 0x34712: 0x6c71a820, 0x34713: 0x6c71aa20, + 0x34714: 0x6c71ac20, 0x34715: 0x6c71ae20, 0x34716: 0x6c71b020, 0x34717: 0x6c71b220, + 0x34718: 0x6c71b420, 0x34719: 0x6c71b620, 0x3471a: 0x6c71b820, 0x3471b: 0x6c71ba20, + 0x3471c: 0x6c71bc20, 0x3471d: 0x6c71be20, 0x3471e: 0x6c71c020, 0x3471f: 0x6c71c220, + 0x34720: 0x6c71c420, 0x34721: 0x6c71c620, 0x34722: 0x6c71c820, 0x34723: 0x6c71ca20, + 0x34724: 0x6c71cc20, 0x34725: 0x6c71ce20, 0x34726: 0x6c71d020, 0x34727: 0x6c71d220, + 0x34728: 0x6c71d420, 0x34729: 0x6c71d620, 0x3472a: 0x6c71d820, 0x3472b: 0x6c71da20, + 0x3472c: 0x6c71dc20, 0x3472d: 0x6c71de20, 0x3472e: 0x6c71e020, 0x3472f: 0x6c71e220, + 0x34730: 0x6c71e420, 0x34731: 0x6c71e620, 0x34732: 0x6c71e820, 0x34733: 0x6c71ea20, + 0x34734: 0x6c71ec20, 0x34735: 0x6c71ee20, 0x34736: 0x6c71f020, 0x34737: 0x6c71f220, + 0x34738: 0x6c71f420, 0x34739: 0x6c71f620, 0x3473a: 0x6c71f820, 0x3473b: 0x6c71fa20, + 0x3473c: 0x6c71fc20, 0x3473d: 0x6c71fe20, 0x3473e: 0x6c720020, 0x3473f: 0x6c720220, + // Block 0xd1d, offset 0x34740 + 0x34740: 0x6c720420, 0x34741: 0x6c99ac20, 0x34742: 0x6c99ae20, 0x34743: 0x6c99b020, + 0x34744: 0x6c99b220, 0x34745: 0x6c99b420, 0x34746: 0x6c99b620, 0x34747: 0x6c99b820, + 0x34748: 0x6c99ba20, 0x34749: 0x6c99bc20, 0x3474a: 0x6c99be20, 0x3474b: 0x6c99c020, + 0x3474c: 0x6c99c220, 0x3474d: 0x6c99c420, 0x3474e: 0x6c99c620, 0x3474f: 0x6c99c820, + 0x34750: 0x6c99ca20, 0x34751: 0x6c99cc20, 0x34752: 0x6c99ce20, 0x34753: 0x6c99d020, + 0x34754: 0x6c99d220, 0x34755: 0x6c99d420, 0x34756: 0x6c99d620, 0x34757: 0x6c99d820, + 0x34758: 0x6c99da20, 0x34759: 0x6c99dc20, 0x3475a: 0x6c99de20, 0x3475b: 0x6c99e020, + 0x3475c: 0x6c99e220, 0x3475d: 0x6c99e420, 0x3475e: 0x6c99e620, 0x3475f: 0x6c99e820, + 0x34760: 0x6c99ea20, 0x34761: 0x6c99ec20, 0x34762: 0x6c99ee20, 0x34763: 0x6c99f020, + 0x34764: 0x6c99f220, 0x34765: 0x6c99f420, 0x34766: 0x6c99f620, 0x34767: 0x6c99f820, + 0x34768: 0x6c99fa20, 0x34769: 0x6c99fc20, 0x3476a: 0x6c99fe20, 0x3476b: 0x6c9a0020, + 0x3476c: 0x6c9a0220, 0x3476d: 0x6c9a0420, 0x3476e: 0x6c9a0620, 0x3476f: 0x6c9a0820, + 0x34770: 0x6c9a0a20, 0x34771: 0x6c9a0c20, 0x34772: 0x6c9a0e20, 0x34773: 0x6c9a1020, + 0x34774: 0x6c9a1220, 0x34775: 0x6c9a1420, 0x34776: 0x6c9a1620, 0x34777: 0x6c9a1820, + 0x34778: 0x6c9a1a20, 0x34779: 0x6c9a1c20, 0x3477a: 0x6c9a1e20, 0x3477b: 0x6c9a2020, + 0x3477c: 0x6c9a2220, 0x3477d: 0x6c9a2420, 0x3477e: 0x6c9a2620, 0x3477f: 0x6c9a2820, + // Block 0xd1e, offset 0x34780 + 0x34780: 0x6c9a2a20, 0x34781: 0x6c9a2c20, 0x34782: 0x6c9a2e20, 0x34783: 0x6c9a3020, + 0x34784: 0x6c9a3220, 0x34785: 0x6c9a3420, 0x34786: 0x6c9a3620, 0x34787: 0x6c9a3820, + 0x34788: 0x6c9a3a20, 0x34789: 0x6c9a3c20, 0x3478a: 0x6c9a3e20, 0x3478b: 0x6c9a4020, + 0x3478c: 0x6c9a4220, 0x3478d: 0x6c9a4420, 0x3478e: 0x6c9a4620, 0x3478f: 0x6c9a4820, + 0x34790: 0x6c9a4a20, 0x34791: 0x6c9a4c20, 0x34792: 0x6c9a4e20, 0x34793: 0x6c9a5020, + 0x34794: 0x6c9a5220, 0x34795: 0x6c9a5420, 0x34796: 0x6c9a5620, 0x34797: 0x6c9a5820, + 0x34798: 0x6c9a5a20, 0x34799: 0x6c9a5c20, 0x3479a: 0x6c9a5e20, 0x3479b: 0x6c9a6020, + 0x3479c: 0x6c9a6220, 0x3479d: 0x6c9a6420, 0x3479e: 0x6c9a6620, 0x3479f: 0x6c9a6820, + 0x347a0: 0x6c9a6a20, 0x347a1: 0x6c9a6c20, 0x347a2: 0x6c9a6e20, 0x347a3: 0x6c9a7020, + 0x347a4: 0x6c9a7220, 0x347a5: 0x6c9a7420, 0x347a6: 0x6c9a7620, 0x347a7: 0x6c9a7820, + 0x347a8: 0x6c9a7a20, 0x347a9: 0x6cc56a20, 0x347aa: 0x6cc56c20, 0x347ab: 0x6cc56e20, + 0x347ac: 0x6cc57020, 0x347ad: 0x6cc57220, 0x347ae: 0x6cc57420, 0x347af: 0x6cc57620, + 0x347b0: 0x6cc57820, 0x347b1: 0x6cc57a20, 0x347b2: 0x6cc57c20, 0x347b3: 0x6cc57e20, + 0x347b4: 0x6cc58020, 0x347b5: 0x6cc58220, 0x347b6: 0x6cc58420, 0x347b7: 0x6cc58620, + 0x347b8: 0x6cc58820, 0x347b9: 0x6cc58a20, 0x347ba: 0x6cc58c20, 0x347bb: 0x6cc58e20, + 0x347bc: 0x6cc59020, 0x347bd: 0x6cc59220, 0x347be: 0x6cc59420, 0x347bf: 0x6cc59620, + // Block 0xd1f, offset 0x347c0 + 0x347c0: 0x6cc59820, 0x347c1: 0x6cc59a20, 0x347c2: 0x6cc59c20, 0x347c3: 0x6cc59e20, + 0x347c4: 0x6cc5a020, 0x347c5: 0x6cc5a220, 0x347c6: 0x6cc5a420, 0x347c7: 0x6cc5a620, + 0x347c8: 0x6cc5a820, 0x347c9: 0x6cc5aa20, 0x347ca: 0x6cc5ac20, 0x347cb: 0x6cc5ae20, + 0x347cc: 0x6cc5b020, 0x347cd: 0x6cc5b220, 0x347ce: 0x6cc5b420, 0x347cf: 0x6cc5b620, + 0x347d0: 0x6cc5b820, 0x347d1: 0x6cc5ba20, 0x347d2: 0x6cc5bc20, 0x347d3: 0x6cc5be20, + 0x347d4: 0x6cc5c020, 0x347d5: 0x6cc5c220, 0x347d6: 0x6cc5c420, 0x347d7: 0x6cc5c620, + 0x347d8: 0x6cc5c820, 0x347d9: 0x6cc5ca20, 0x347da: 0x6cc5cc20, 0x347db: 0x6cc5ce20, + 0x347dc: 0x6cc5d020, 0x347dd: 0x6cc5d220, 0x347de: 0x6cc5d420, 0x347df: 0x6cc5d620, + 0x347e0: 0x6cc5d820, 0x347e1: 0x6cc5da20, 0x347e2: 0x6cc5dc20, 0x347e3: 0x6cc5de20, + 0x347e4: 0x6cc5e020, 0x347e5: 0x6cc5e220, 0x347e6: 0x6cc5e420, 0x347e7: 0x6cc5e620, + 0x347e8: 0x6cc5e820, 0x347e9: 0x6cc5ea20, 0x347ea: 0x6cc5ec20, 0x347eb: 0x6cc5ee20, + 0x347ec: 0x6cc5f020, 0x347ed: 0x6cc5f220, 0x347ee: 0x6cc5f420, 0x347ef: 0x6cc5f620, + 0x347f0: 0x6cc5f820, 0x347f1: 0x6cc5fa20, 0x347f2: 0x6cc5fc20, 0x347f3: 0x6cc5fe20, + 0x347f4: 0x6cc60020, 0x347f5: 0x6cc60220, 0x347f6: 0x6cc60420, 0x347f7: 0x6cc60620, + 0x347f8: 0x6cc60820, 0x347f9: 0x6cc60a20, 0x347fa: 0x6cc60c20, 0x347fb: 0x6cc60e20, + 0x347fc: 0x6cc61020, 0x347fd: 0x6cc61220, 0x347fe: 0x6cc61420, 0x347ff: 0x6d017820, + // Block 0xd20, offset 0x34800 + 0x34800: 0x6cc61620, 0x34801: 0x6cc61820, 0x34802: 0x6cc61a20, 0x34803: 0x6cc61c20, + 0x34804: 0x6cc61e20, 0x34805: 0x6cc62020, 0x34806: 0x6cc62220, 0x34807: 0x6cc62420, + 0x34808: 0x6cc62620, 0x34809: 0x6cc62820, 0x3480a: 0x6cc62a20, 0x3480b: 0x6cc62c20, + 0x3480c: 0x6cc62e20, 0x3480d: 0x6cc63020, 0x3480e: 0x6cc63220, 0x3480f: 0x6cc63420, + 0x34810: 0x6cc63620, 0x34811: 0x6cc63820, 0x34812: 0x6cc63a20, 0x34813: 0x6cc63c20, + 0x34814: 0x6cc63e20, 0x34815: 0x6cc64020, 0x34816: 0x6cc64220, 0x34817: 0x6cc64420, + 0x34818: 0x6cc64620, 0x34819: 0x6cc64820, 0x3481a: 0x6cc64a20, 0x3481b: 0x6cc64c20, + 0x3481c: 0x6cc64e20, 0x3481d: 0x6cc65020, 0x3481e: 0x6cc65220, 0x3481f: 0x6cf45a20, + 0x34820: 0x6cf45c20, 0x34821: 0x6cf45e20, 0x34822: 0x6cf46020, 0x34823: 0x6cf46220, + 0x34824: 0x6cf46420, 0x34825: 0x6cf46620, 0x34826: 0x6cf46820, 0x34827: 0x6cf46a20, + 0x34828: 0x6cf46c20, 0x34829: 0x6cf46e20, 0x3482a: 0x6cf47020, 0x3482b: 0x6cf47220, + 0x3482c: 0x6cf47420, 0x3482d: 0x6cf47620, 0x3482e: 0x6cf47820, 0x3482f: 0x6cf47a20, + 0x34830: 0x6cf47c20, 0x34831: 0x6cf47e20, 0x34832: 0x6cf48020, 0x34833: 0x6cf48220, + 0x34834: 0x6cf48420, 0x34835: 0x6cf48620, 0x34836: 0x6cf48820, 0x34837: 0x6cf48a20, + 0x34838: 0x6cf48c20, 0x34839: 0x6cf48e20, 0x3483a: 0x6cf49020, 0x3483b: 0x6cf49220, + 0x3483c: 0x6cf49420, 0x3483d: 0x6cf49620, 0x3483e: 0x6cf49820, 0x3483f: 0x6cf49a20, + // Block 0xd21, offset 0x34840 + 0x34840: 0x6cf49c20, 0x34841: 0x6cf49e20, 0x34842: 0x6cf4a020, 0x34843: 0x6cf4a220, + 0x34844: 0x6cf4a420, 0x34845: 0x6cf4a620, 0x34846: 0x6cf4a820, 0x34847: 0x6cf4aa20, + 0x34848: 0x6cf4ac20, 0x34849: 0x6cf4ae20, 0x3484a: 0x6cf4b020, 0x3484b: 0x6cf4b220, + 0x3484c: 0x6cf4b420, 0x3484d: 0x6cf4b620, 0x3484e: 0x6cf4b820, 0x3484f: 0x6cf4ba20, + 0x34850: 0x6cf4bc20, 0x34851: 0x6cf4be20, 0x34852: 0x6cf4c020, 0x34853: 0x6cf4c220, + 0x34854: 0x6cf4c420, 0x34855: 0x6cf4c620, 0x34856: 0x6cf4c820, 0x34857: 0x6cf4ca20, + 0x34858: 0x6cf4cc20, 0x34859: 0x6cf4ce20, 0x3485a: 0x6cf4d020, 0x3485b: 0x6cf4d220, + 0x3485c: 0x6cf4d420, 0x3485d: 0x6cf4d620, 0x3485e: 0x6cf4d820, 0x3485f: 0x6cf4da20, + 0x34860: 0x6cf4dc20, 0x34861: 0x6cf4de20, 0x34862: 0x6cf4e020, 0x34863: 0x6cf4e220, + 0x34864: 0x6cf4e420, 0x34865: 0x6cf4e620, 0x34866: 0x6cf4e820, 0x34867: 0x6cf4ea20, + 0x34868: 0x6cf4ec20, 0x34869: 0x6cf4ee20, 0x3486a: 0x6cf4f020, 0x3486b: 0x6cf4f220, + 0x3486c: 0x6cf4f420, 0x3486d: 0x6cf4f620, 0x3486e: 0x6cf4f820, 0x3486f: 0x6cf4fa20, + 0x34870: 0x6cf4fc20, 0x34871: 0x6cf4fe20, 0x34872: 0x6cf50020, 0x34873: 0x6d23fa20, + 0x34874: 0x6d23fc20, 0x34875: 0x6d23fe20, 0x34876: 0x6d240020, 0x34877: 0x6d240220, + 0x34878: 0x6d240420, 0x34879: 0x6d240620, 0x3487a: 0x6d240820, 0x3487b: 0x6d240a20, + 0x3487c: 0x6d240c20, 0x3487d: 0x6d240e20, 0x3487e: 0x6d241020, 0x3487f: 0x6d241220, + // Block 0xd22, offset 0x34880 + 0x34880: 0x6d241420, 0x34881: 0x6d241620, 0x34882: 0x6d241820, 0x34883: 0x6d241a20, + 0x34884: 0x6d241c20, 0x34885: 0x6d241e20, 0x34886: 0x6d242020, 0x34887: 0x6d242220, + 0x34888: 0x6d242420, 0x34889: 0x6d242620, 0x3488a: 0x6d242820, 0x3488b: 0x6d242a20, + 0x3488c: 0x6d242c20, 0x3488d: 0x6d242e20, 0x3488e: 0x6d243020, 0x3488f: 0x6d243220, + 0x34890: 0x6d243420, 0x34891: 0x6d243620, 0x34892: 0x6d243820, 0x34893: 0x6d243a20, + 0x34894: 0x6d243c20, 0x34895: 0x6d243e20, 0x34896: 0x6d244020, 0x34897: 0x6d244220, + 0x34898: 0x6d244420, 0x34899: 0x6d244620, 0x3489a: 0x6d244820, 0x3489b: 0x6d244a20, + 0x3489c: 0x6d244c20, 0x3489d: 0x6d244e20, 0x3489e: 0x6d245020, 0x3489f: 0x6d245220, + 0x348a0: 0x6d245420, 0x348a1: 0x6d245620, 0x348a2: 0x6d245820, 0x348a3: 0x6d245a20, + 0x348a4: 0x6d245c20, 0x348a5: 0x6d245e20, 0x348a6: 0x6d246020, 0x348a7: 0x6d246220, + 0x348a8: 0x6d246420, 0x348a9: 0x6d246620, 0x348aa: 0x6d246820, 0x348ab: 0x6d246a20, + 0x348ac: 0x6d246c20, 0x348ad: 0x6d246e20, 0x348ae: 0x6d247020, 0x348af: 0x6d247220, + 0x348b0: 0x6d247420, 0x348b1: 0x6d247620, 0x348b2: 0x6d247820, 0x348b3: 0x6d247a20, + 0x348b4: 0x6d247c20, 0x348b5: 0x6d247e20, 0x348b6: 0x6d248020, 0x348b7: 0x6d248220, + 0x348b8: 0x6d248420, 0x348b9: 0x6d248620, 0x348ba: 0x6d248820, 0x348bb: 0x6d248a20, + 0x348bc: 0x6d248c20, 0x348bd: 0x6d248e20, 0x348be: 0x6d249020, 0x348bf: 0x6d249220, + // Block 0xd23, offset 0x348c0 + 0x348c0: 0x6d249420, 0x348c1: 0x6d249620, 0x348c2: 0x6d249820, 0x348c3: 0x6d249a20, + 0x348c4: 0x6d249c20, 0x348c5: 0x6d249e20, 0x348c6: 0x6d24a020, 0x348c7: 0x6d24a220, + 0x348c8: 0x6d24a420, 0x348c9: 0x6d24a620, 0x348ca: 0x6d24a820, 0x348cb: 0x6d24aa20, + 0x348cc: 0x6d24ac20, 0x348cd: 0x6d24ae20, 0x348ce: 0x6d24b020, 0x348cf: 0x6d24b220, + 0x348d0: 0x6d24b420, 0x348d1: 0x6d24b620, 0x348d2: 0x6d24b820, 0x348d3: 0x6d24ba20, + 0x348d4: 0x6d24bc20, 0x348d5: 0x6d24be20, 0x348d6: 0x6d24c020, 0x348d7: 0x6d24c220, + 0x348d8: 0x6d24c420, 0x348d9: 0x6d24c620, 0x348da: 0x6d24c820, 0x348db: 0x6d24ca20, + 0x348dc: 0x6d24cc20, 0x348dd: 0x6d24ce20, 0x348de: 0x6d24d020, 0x348df: 0x6d24d220, + 0x348e0: 0x6d519620, 0x348e1: 0x6d519820, 0x348e2: 0x6d519a20, 0x348e3: 0x6d519c20, + 0x348e4: 0x6d519e20, 0x348e5: 0x6d51a020, 0x348e6: 0x6d51a220, 0x348e7: 0x6d51a420, + 0x348e8: 0x6d51a620, 0x348e9: 0x6d51a820, 0x348ea: 0x6d51aa20, 0x348eb: 0x6d51ac20, + 0x348ec: 0x6d51ae20, 0x348ed: 0x6d51b020, 0x348ee: 0x6d51b220, 0x348ef: 0x6d51b420, + 0x348f0: 0x6d51b620, 0x348f1: 0x6d51b820, 0x348f2: 0x6d51ba20, 0x348f3: 0x6d51bc20, + 0x348f4: 0x6d51be20, 0x348f5: 0x6d51c020, 0x348f6: 0x6d51c220, 0x348f7: 0x6d51c420, + 0x348f8: 0x6d51c620, 0x348f9: 0x6d51c820, 0x348fa: 0x6d51ca20, 0x348fb: 0x6d51cc20, + 0x348fc: 0x6d51ce20, 0x348fd: 0x6d51d020, 0x348fe: 0x6d51d220, 0x348ff: 0x6d51d420, + // Block 0xd24, offset 0x34900 + 0x34900: 0x6d51d620, 0x34901: 0x6d51d820, 0x34902: 0x6d51da20, 0x34903: 0x6d51dc20, + 0x34904: 0x6d51de20, 0x34905: 0x6d51e020, 0x34906: 0x6d51e220, 0x34907: 0x6d51e420, + 0x34908: 0x6d51e620, 0x34909: 0x6d51e820, 0x3490a: 0x6d51ea20, 0x3490b: 0x6d51ec20, + 0x3490c: 0x6d51ee20, 0x3490d: 0x6d51f020, 0x3490e: 0x6d51f220, 0x3490f: 0x6d51f420, + 0x34910: 0x6d51f620, 0x34911: 0x6d51f820, 0x34912: 0x6d51fa20, 0x34913: 0x6d51fc20, + 0x34914: 0x6d51fe20, 0x34915: 0x6d520020, 0x34916: 0x6d520220, 0x34917: 0x6d520420, + 0x34918: 0x6d520620, 0x34919: 0x6d520820, 0x3491a: 0x6d520a20, 0x3491b: 0x6d520c20, + 0x3491c: 0x6d520e20, 0x3491d: 0x6d521020, 0x3491e: 0x6d521220, 0x3491f: 0x6d521420, + 0x34920: 0x6d521620, 0x34921: 0x6d521820, 0x34922: 0x6d521a20, 0x34923: 0x6d521c20, + 0x34924: 0x6d521e20, 0x34925: 0x6d522020, 0x34926: 0x6d522220, 0x34927: 0x6d522420, + 0x34928: 0x6d522620, 0x34929: 0x6d522820, 0x3492a: 0x6d522a20, 0x3492b: 0x6d522c20, + 0x3492c: 0x6d522e20, 0x3492d: 0x6d523020, 0x3492e: 0x6d523220, 0x3492f: 0x6d523420, + 0x34930: 0x6d523620, 0x34931: 0x6d523820, 0x34932: 0x6d523a20, 0x34933: 0x6d523c20, + 0x34934: 0x6d523e20, 0x34935: 0x6d524020, 0x34936: 0x6d524220, 0x34937: 0x6d524420, + 0x34938: 0x6d524620, 0x34939: 0x6d524820, 0x3493a: 0x6d524a20, 0x3493b: 0x6d524c20, + 0x3493c: 0x6d524e20, 0x3493d: 0x6d525020, 0x3493e: 0x6d525220, 0x3493f: 0x6d7d0220, + // Block 0xd25, offset 0x34940 + 0x34940: 0x6d7d0420, 0x34941: 0x6d7d0620, 0x34942: 0x6d7d0820, 0x34943: 0x6d7d0a20, + 0x34944: 0x6d7d0c20, 0x34945: 0x6d7d0e20, 0x34946: 0x6d7d1020, 0x34947: 0x6d7d1220, + 0x34948: 0x6d7d1420, 0x34949: 0x6d7d1620, 0x3494a: 0x6d7d1820, 0x3494b: 0x6d7d1a20, + 0x3494c: 0x6d7d1c20, 0x3494d: 0x6d7d1e20, 0x3494e: 0x6d7d2020, 0x3494f: 0x6d7d2220, + 0x34950: 0x6d7d2420, 0x34951: 0x6d7d2620, 0x34952: 0x6d7d2820, 0x34953: 0x6d7d2a20, + 0x34954: 0x6d7d2c20, 0x34955: 0x6d7d2e20, 0x34956: 0x6d7d3020, 0x34957: 0x6d7d3220, + 0x34958: 0x6d7d3420, 0x34959: 0x6d7d3620, 0x3495a: 0x6d7d3820, 0x3495b: 0x6d7d3a20, + 0x3495c: 0x6d7d3c20, 0x3495d: 0x6d7d3e20, 0x3495e: 0x6d7d4020, 0x3495f: 0x6d7d4220, + 0x34960: 0x6d7d4420, 0x34961: 0x6d7d4620, 0x34962: 0x6d7d4820, 0x34963: 0x6d7d4a20, + 0x34964: 0x6d7d4c20, 0x34965: 0x6d7d4e20, 0x34966: 0x6d7d5020, 0x34967: 0x6d7d5220, + 0x34968: 0x6d7d5420, 0x34969: 0x6d7d5620, 0x3496a: 0x6d7d5820, 0x3496b: 0x6d7d5a20, + 0x3496c: 0x6d7d5c20, 0x3496d: 0x6d7d5e20, 0x3496e: 0x6d7d6020, 0x3496f: 0x6d7d6220, + 0x34970: 0x6d7d6420, 0x34971: 0x6d7d6620, 0x34972: 0x6d7d6820, 0x34973: 0x6d7d6a20, + 0x34974: 0x6d7d6c20, 0x34975: 0x6d7d6e20, 0x34976: 0x6d7d7020, 0x34977: 0x6d7d7220, + 0x34978: 0x6d7d7420, 0x34979: 0x6d7d7620, 0x3497a: 0x6d7d7820, 0x3497b: 0x6d7d7a20, + 0x3497c: 0x6d7d7c20, 0x3497d: 0x6d7d7e20, 0x3497e: 0x6d7d8020, 0x3497f: 0x6d7d8220, + // Block 0xd26, offset 0x34980 + 0x34980: 0x6d7d8420, 0x34981: 0x6d7d8620, 0x34982: 0x6d7d8820, 0x34983: 0x6d7d8a20, + 0x34984: 0x6d7d8c20, 0x34985: 0x6d525420, 0x34986: 0x6d7d8e20, 0x34987: 0x6d7d9020, + 0x34988: 0x6d7d9220, 0x34989: 0x6d7d9420, 0x3498a: 0x6d7d9620, 0x3498b: 0x6da4ae20, + 0x3498c: 0x6da4b020, 0x3498d: 0x6da4b220, 0x3498e: 0x6da4b420, 0x3498f: 0x6da4b620, + 0x34990: 0x6da4b820, 0x34991: 0x6da4ba20, 0x34992: 0x6da4bc20, 0x34993: 0x6da4be20, + 0x34994: 0x6da4c020, 0x34995: 0x6da4c220, 0x34996: 0x6da4c420, 0x34997: 0x6da4c620, + 0x34998: 0x6da4c820, 0x34999: 0x6da4ca20, 0x3499a: 0x6da4cc20, 0x3499b: 0x6da4ce20, + 0x3499c: 0x6da4d020, 0x3499d: 0x6da4d220, 0x3499e: 0x6da4d420, 0x3499f: 0x6da4d620, + 0x349a0: 0x6da4d820, 0x349a1: 0x6da4da20, 0x349a2: 0x6da4dc20, 0x349a3: 0x6da4de20, + 0x349a4: 0x6da4e020, 0x349a5: 0x6da4e220, 0x349a6: 0x6da4e420, 0x349a7: 0x6da4e620, + 0x349a8: 0x6da4e820, 0x349a9: 0x6da4ea20, 0x349aa: 0x6da4ec20, 0x349ab: 0x6da4ee20, + 0x349ac: 0x6da4f020, 0x349ad: 0x6da4f220, 0x349ae: 0x6da4f420, 0x349af: 0x6da4f620, + 0x349b0: 0x6da4f820, 0x349b1: 0x6da4fa20, 0x349b2: 0x6da4fc20, 0x349b3: 0x6da4fe20, + 0x349b4: 0x6da50020, 0x349b5: 0x6da50220, 0x349b6: 0x6dc64e20, 0x349b7: 0x6dc65020, + 0x349b8: 0x6dc65220, 0x349b9: 0x6dc65420, 0x349ba: 0x6dc65620, 0x349bb: 0x6dc65820, + 0x349bc: 0x6dc65a20, 0x349bd: 0x6dc65c20, 0x349be: 0x6dc65e20, 0x349bf: 0x6dc66020, + // Block 0xd27, offset 0x349c0 + 0x349c0: 0x6dc66220, 0x349c1: 0x6dc66420, 0x349c2: 0x6dc66620, 0x349c3: 0x6dc66820, + 0x349c4: 0x6dc66a20, 0x349c5: 0x6dc66c20, 0x349c6: 0x6dc66e20, 0x349c7: 0x6dc67020, + 0x349c8: 0x6dc67220, 0x349c9: 0x6dc67420, 0x349ca: 0x6dc67620, 0x349cb: 0x6dc67820, + 0x349cc: 0x6dc67a20, 0x349cd: 0x6dc67c20, 0x349ce: 0x6dc67e20, 0x349cf: 0x6dc68020, + 0x349d0: 0x6dc68220, 0x349d1: 0x6dc68420, 0x349d2: 0x6dc68620, 0x349d3: 0x6dc68820, + 0x349d4: 0x6dc68a20, 0x349d5: 0x6dc68c20, 0x349d6: 0x6dc68e20, 0x349d7: 0x6dc69020, + 0x349d8: 0x6dc69220, 0x349d9: 0x6dc69420, 0x349da: 0x6dc69620, 0x349db: 0x6dc69820, + 0x349dc: 0x6dc69a20, 0x349dd: 0x6dc69c20, 0x349de: 0x6dc69e20, 0x349df: 0x6dc6a020, + 0x349e0: 0x6dc6a220, 0x349e1: 0x6dc6a420, 0x349e2: 0x6dc6a620, 0x349e3: 0x6de30420, + 0x349e4: 0x6de30620, 0x349e5: 0x6de30820, 0x349e6: 0x6de30a20, 0x349e7: 0x6de30c20, + 0x349e8: 0x6de30e20, 0x349e9: 0x6de31020, 0x349ea: 0x6de31220, 0x349eb: 0x6de31420, + 0x349ec: 0x6de31620, 0x349ed: 0x6de31820, 0x349ee: 0x6de31a20, 0x349ef: 0x6de31c20, + 0x349f0: 0x6de31e20, 0x349f1: 0x6de32020, 0x349f2: 0x6de32220, 0x349f3: 0x6de32420, + 0x349f4: 0x6de32620, 0x349f5: 0x6de32820, 0x349f6: 0x6de32a20, 0x349f7: 0x6de32c20, + 0x349f8: 0x6de32e20, 0x349f9: 0x6de33020, 0x349fa: 0x6de33220, 0x349fb: 0x6de33420, + 0x349fc: 0x6de33620, 0x349fd: 0x6de33820, 0x349fe: 0x6de33a20, 0x349ff: 0x6de33c20, + // Block 0xd28, offset 0x34a00 + 0x34a00: 0x6de33e20, 0x34a01: 0x6de34020, 0x34a02: 0x6de34220, 0x34a03: 0x6de34420, + 0x34a04: 0x6de34620, 0x34a05: 0x6de34820, 0x34a06: 0x6de34a20, 0x34a07: 0x6de34c20, + 0x34a08: 0x6de34e20, 0x34a09: 0x6de35020, 0x34a0a: 0x6de35220, 0x34a0b: 0x6de35420, + 0x34a0c: 0x6de35620, 0x34a0d: 0x6dfa7220, 0x34a0e: 0x6dfa7420, 0x34a0f: 0x6dfa7620, + 0x34a10: 0x6dfa7820, 0x34a11: 0x6dfa7a20, 0x34a12: 0x6dfa7c20, 0x34a13: 0x6dfa7e20, + 0x34a14: 0x6dfa8020, 0x34a15: 0x6dfa8220, 0x34a16: 0x6dfa8420, 0x34a17: 0x6dfa8620, + 0x34a18: 0x6dfa8820, 0x34a19: 0x6dfa8a20, 0x34a1a: 0x6dfa8c20, 0x34a1b: 0x6dfa8e20, + 0x34a1c: 0x6dfa9020, 0x34a1d: 0x6dfa9220, 0x34a1e: 0x6dfa9420, 0x34a1f: 0x6dfa9620, + 0x34a20: 0x6dfa9820, 0x34a21: 0x6dfa9a20, 0x34a22: 0x6e0dfe20, 0x34a23: 0x6dfa9c20, + 0x34a24: 0x6dfa9e20, 0x34a25: 0x6dfaa020, 0x34a26: 0x6dfaa220, 0x34a27: 0x6dfaa420, + 0x34a28: 0x6dfaa620, 0x34a29: 0x6dfaa820, 0x34a2a: 0x6dfaaa20, 0x34a2b: 0x6dfaac20, + 0x34a2c: 0x6e0e0020, 0x34a2d: 0x6e0e0220, 0x34a2e: 0x6e0e0420, 0x34a2f: 0x6e0e0620, + 0x34a30: 0x6e0e0820, 0x34a31: 0x6e0e0a20, 0x34a32: 0x6e0e0c20, 0x34a33: 0x6e0e0e20, + 0x34a34: 0x6e0e1020, 0x34a35: 0x6e0e1220, 0x34a36: 0x6e0e1420, 0x34a37: 0x6e0e1620, + 0x34a38: 0x6e0e1820, 0x34a39: 0x6e0e1a20, 0x34a3a: 0x6e0e1c20, 0x34a3b: 0x6e0e1e20, + 0x34a3c: 0x6e0e2020, 0x34a3d: 0x6e0e2220, 0x34a3e: 0x6e0e2420, 0x34a3f: 0x6e0e2620, + // Block 0xd29, offset 0x34a40 + 0x34a40: 0x6e0e2820, 0x34a41: 0x6e0e2a20, 0x34a42: 0x6e1d6620, 0x34a43: 0x6e1d6820, + 0x34a44: 0x6e1d6a20, 0x34a45: 0x6e1d6c20, 0x34a46: 0x6e1d6e20, 0x34a47: 0x6e1d7020, + 0x34a48: 0x6e1d7220, 0x34a49: 0x6e1d7420, 0x34a4a: 0x6e1d7620, 0x34a4b: 0x6e1d7820, + 0x34a4c: 0x6e1d7a20, 0x34a4d: 0x6e1d7c20, 0x34a4e: 0x6e1d7e20, 0x34a4f: 0x6e1d8020, + 0x34a50: 0x6e1d8220, 0x34a51: 0x6e1d8420, 0x34a52: 0x6e1d8620, 0x34a53: 0x6e1d8820, + 0x34a54: 0x6e1d8a20, 0x34a55: 0x6e1d8c20, 0x34a56: 0x6e290820, 0x34a57: 0x6e290a20, + 0x34a58: 0x6e290c20, 0x34a59: 0x6e290e20, 0x34a5a: 0x6e291020, 0x34a5b: 0x6e291220, + 0x34a5c: 0x6e291420, 0x34a5d: 0x6e291620, 0x34a5e: 0x6e322a20, 0x34a5f: 0x6e322c20, + 0x34a60: 0x6e322e20, 0x34a61: 0x6e323020, 0x34a62: 0x6e323220, 0x34a63: 0x6e323420, + 0x34a64: 0x6e323620, 0x34a65: 0x6e323820, 0x34a66: 0x6e323a20, 0x34a67: 0x6e323c20, + 0x34a68: 0x6e323e20, 0x34a69: 0x6e324020, 0x34a6a: 0x6e324220, 0x34a6b: 0x6e324420, + 0x34a6c: 0x6e389620, 0x34a6d: 0x6e389820, 0x34a6e: 0x6e389a20, 0x34a6f: 0x6e389c20, + 0x34a70: 0x6e404420, 0x34a71: 0x6e404620, 0x34a72: 0x6e404820, 0x34a73: 0x6e429e20, + 0x34a74: 0x6e462a20, 0x34a75: 0x6c123820, 0x34a76: 0x6c211a20, 0x34a77: 0x6c353020, + 0x34a78: 0x6c353220, 0x34a79: 0x6c353420, 0x34a7a: 0x6c353620, 0x34a7b: 0x6c353820, + 0x34a7c: 0x6c353a20, 0x34a7d: 0x6c353c20, 0x34a7e: 0x6c502c20, 0x34a7f: 0x6c502e20, + // Block 0xd2a, offset 0x34a80 + 0x34a80: 0x6c503020, 0x34a81: 0x6c722620, 0x34a82: 0x6c722820, 0x34a83: 0x6c722a20, + 0x34a84: 0x6c722c20, 0x34a85: 0x6c722e20, 0x34a86: 0x6c723020, 0x34a87: 0x6c723220, + 0x34a88: 0x6c6aa620, 0x34a89: 0x6c723420, 0x34a8a: 0x6c9a9620, 0x34a8b: 0x6c9a9820, + 0x34a8c: 0x6c9a9a20, 0x34a8d: 0x6c9a9c20, 0x34a8e: 0x6cc67420, 0x34a8f: 0x6cc67620, + 0x34a90: 0x6cc67820, 0x34a91: 0x6cc67a20, 0x34a92: 0x6cc67c20, 0x34a93: 0x6cc67e20, + 0x34a94: 0x6cc68020, 0x34a95: 0x6cf52020, 0x34a96: 0x6cf52220, 0x34a97: 0x6cf52420, + 0x34a98: 0x6cf52620, 0x34a99: 0x6cf52820, 0x34a9a: 0x6d24ea20, 0x34a9b: 0x6d24ec20, + 0x34a9c: 0x6d24ee20, 0x34a9d: 0x6d526a20, 0x34a9e: 0x6d526c20, 0x34a9f: 0x6d526e20, + 0x34aa0: 0x6d7da220, 0x34aa1: 0x6d7da420, 0x34aa2: 0x6d7da620, 0x34aa3: 0x6d7da820, + 0x34aa4: 0x6d7daa20, 0x34aa5: 0x6da50a20, 0x34aa6: 0x6da50c20, 0x34aa7: 0x6da50e20, + 0x34aa8: 0x6da51020, 0x34aa9: 0x6da51220, 0x34aaa: 0x6dfab020, 0x34aab: 0x6c212a20, + 0x34aac: 0x6c212c20, 0x34aad: 0x6c212e20, 0x34aae: 0x6c213020, 0x34aaf: 0x6c213220, + 0x34ab0: 0x6c213420, 0x34ab1: 0x6c213620, 0x34ab2: 0x6c213820, 0x34ab3: 0x6c354820, + 0x34ab4: 0x6c354a20, 0x34ab5: 0x6c354c20, 0x34ab6: 0x6c354e20, 0x34ab7: 0x6c355020, + 0x34ab8: 0x6c355220, 0x34ab9: 0x6c355420, 0x34aba: 0x6c355620, 0x34abb: 0x6c355820, + 0x34abc: 0x6c355a20, 0x34abd: 0x6c355c20, 0x34abe: 0x6c355e20, 0x34abf: 0x6c356020, + // Block 0xd2b, offset 0x34ac0 + 0x34ac0: 0x6c356220, 0x34ac1: 0x6c356420, 0x34ac2: 0x6c356620, 0x34ac3: 0x6c356820, + 0x34ac4: 0x6c356a20, 0x34ac5: 0x6c356c20, 0x34ac6: 0x6c356e20, 0x34ac7: 0x6c357020, + 0x34ac8: 0x6c357220, 0x34ac9: 0x6c504820, 0x34aca: 0x6c504a20, 0x34acb: 0x6c504c20, + 0x34acc: 0x6c504e20, 0x34acd: 0x6c505020, 0x34ace: 0x6c505220, 0x34acf: 0x6c505420, + 0x34ad0: 0x6c505620, 0x34ad1: 0x6c505820, 0x34ad2: 0x6c505a20, 0x34ad3: 0x6c505c20, + 0x34ad4: 0x6c505e20, 0x34ad5: 0x6c506020, 0x34ad6: 0x6c506220, 0x34ad7: 0x6c506420, + 0x34ad8: 0x6c506620, 0x34ad9: 0x6c506820, 0x34ada: 0x6c506a20, 0x34adb: 0x6c724a20, + 0x34adc: 0x6c724c20, 0x34add: 0x6c724e20, 0x34ade: 0x6c725020, 0x34adf: 0x6c725220, + 0x34ae0: 0x6c725420, 0x34ae1: 0x6c725620, 0x34ae2: 0x6c725820, 0x34ae3: 0x6c725a20, + 0x34ae4: 0x6c725c20, 0x34ae5: 0x6c725e20, 0x34ae6: 0x6c726020, 0x34ae7: 0x6c726220, + 0x34ae8: 0x6c726420, 0x34ae9: 0x6c726620, 0x34aea: 0x6c726820, 0x34aeb: 0x6c726a20, + 0x34aec: 0x6c726c20, 0x34aed: 0x6c726e20, 0x34aee: 0x6c727020, 0x34aef: 0x6c727220, + 0x34af0: 0x6c727420, 0x34af1: 0x6c727620, 0x34af2: 0x6c727820, 0x34af3: 0x6c727a20, + 0x34af4: 0x6c727c20, 0x34af5: 0x6c727e20, 0x34af6: 0x6c728020, 0x34af7: 0x6c728220, + 0x34af8: 0x6c728420, 0x34af9: 0x6c9aca20, 0x34afa: 0x6c9acc20, 0x34afb: 0x6c9ace20, + 0x34afc: 0x6c9ad020, 0x34afd: 0x6c9ad220, 0x34afe: 0x6c9ad420, 0x34aff: 0x6c9ad620, + // Block 0xd2c, offset 0x34b00 + 0x34b00: 0x6c9ad820, 0x34b01: 0x6c9ada20, 0x34b02: 0x6c9adc20, 0x34b03: 0x6c9ade20, + 0x34b04: 0x6c9ae020, 0x34b05: 0x6c9ae220, 0x34b06: 0x6c9ae420, 0x34b07: 0x6c9ae620, + 0x34b08: 0x6c9ae820, 0x34b09: 0x6c9aea20, 0x34b0a: 0x6c9aec20, 0x34b0b: 0x6c9aee20, + 0x34b0c: 0x6c9af020, 0x34b0d: 0x6c9af220, 0x34b0e: 0x6c9af420, 0x34b0f: 0x6c9af620, + 0x34b10: 0x6c9af820, 0x34b11: 0x6c9afa20, 0x34b12: 0x6c9afc20, 0x34b13: 0x6c9afe20, + 0x34b14: 0x6c9b0020, 0x34b15: 0x6c9b0220, 0x34b16: 0x6c9b0420, 0x34b17: 0x6c9b0620, + 0x34b18: 0x6c9b0820, 0x34b19: 0x6c9b0a20, 0x34b1a: 0x6cc6b620, 0x34b1b: 0x6cc6b820, + 0x34b1c: 0x6c9b0c20, 0x34b1d: 0x6cc6ba20, 0x34b1e: 0x6cc6bc20, 0x34b1f: 0x6cc6be20, + 0x34b20: 0x6cc6c020, 0x34b21: 0x6cc6c220, 0x34b22: 0x6cc6c420, 0x34b23: 0x6cc6c620, + 0x34b24: 0x6cc6c820, 0x34b25: 0x6cc6ca20, 0x34b26: 0x6cc6cc20, 0x34b27: 0x6cc6ce20, + 0x34b28: 0x6cc6d020, 0x34b29: 0x6cc6d220, 0x34b2a: 0x6cc6d420, 0x34b2b: 0x6cc6d620, + 0x34b2c: 0x6cc6d820, 0x34b2d: 0x6cc6da20, 0x34b2e: 0x6cc6dc20, 0x34b2f: 0x6cc6de20, + 0x34b30: 0x6cc6e020, 0x34b31: 0x6cc6e220, 0x34b32: 0x6cc6e420, 0x34b33: 0x6cc6e620, + 0x34b34: 0x6cc6e820, 0x34b35: 0x6cc6ea20, 0x34b36: 0x6cc6ec20, 0x34b37: 0x6c9b0e20, + 0x34b38: 0x6cc6ee20, 0x34b39: 0x6cc6f020, 0x34b3a: 0x6cc6f220, 0x34b3b: 0x6cc6f420, + 0x34b3c: 0x6cc6f620, 0x34b3d: 0x6cc6f820, 0x34b3e: 0x6cc6fa20, 0x34b3f: 0x6cf54020, + // Block 0xd2d, offset 0x34b40 + 0x34b40: 0x6cf54220, 0x34b41: 0x6cf54420, 0x34b42: 0x6cf54620, 0x34b43: 0x6cf54820, + 0x34b44: 0x6cf54a20, 0x34b45: 0x6cf54c20, 0x34b46: 0x6cf54e20, 0x34b47: 0x6cf55020, + 0x34b48: 0x6cf55220, 0x34b49: 0x6cf55420, 0x34b4a: 0x6cf55620, 0x34b4b: 0x6cf55820, + 0x34b4c: 0x6cf55a20, 0x34b4d: 0x6cf55c20, 0x34b4e: 0x6cf55e20, 0x34b4f: 0x6cf56020, + 0x34b50: 0x6cf56220, 0x34b51: 0x6cf56420, 0x34b52: 0x6cf56620, 0x34b53: 0x6cf56820, + 0x34b54: 0x6cf56a20, 0x34b55: 0x6cf56c20, 0x34b56: 0x6cf56e20, 0x34b57: 0x6cf57020, + 0x34b58: 0x6cf57220, 0x34b59: 0x6cf57420, 0x34b5a: 0x6cf57620, 0x34b5b: 0x6cf57820, + 0x34b5c: 0x6cf57a20, 0x34b5d: 0x6cf57c20, 0x34b5e: 0x6cf57e20, 0x34b5f: 0x6cf58020, + 0x34b60: 0x6cf58220, 0x34b61: 0x6cf58420, 0x34b62: 0x6cf58620, 0x34b63: 0x6cc6fc20, + 0x34b64: 0x6cf58820, 0x34b65: 0x6d017a20, 0x34b66: 0x6d24fe20, 0x34b67: 0x6d250020, + 0x34b68: 0x6d250220, 0x34b69: 0x6d250420, 0x34b6a: 0x6d250620, 0x34b6b: 0x6d250820, + 0x34b6c: 0x6d250a20, 0x34b6d: 0x6d250c20, 0x34b6e: 0x6d250e20, 0x34b6f: 0x6d251020, + 0x34b70: 0x6d251220, 0x34b71: 0x6d251420, 0x34b72: 0x6d251620, 0x34b73: 0x6d251820, + 0x34b74: 0x6d251a20, 0x34b75: 0x6d251c20, 0x34b76: 0x6d251e20, 0x34b77: 0x6d252020, + 0x34b78: 0x6d252220, 0x34b79: 0x6d252420, 0x34b7a: 0x6d252620, 0x34b7b: 0x6d252820, + 0x34b7c: 0x6d252a20, 0x34b7d: 0x6d252c20, 0x34b7e: 0x6d252e20, 0x34b7f: 0x6d253020, + // Block 0xd2e, offset 0x34b80 + 0x34b80: 0x6d253220, 0x34b81: 0x6d253420, 0x34b82: 0x6d253620, 0x34b83: 0x6d253820, + 0x34b84: 0x6d253a20, 0x34b85: 0x6d253c20, 0x34b86: 0x6d033220, 0x34b87: 0x6d528620, + 0x34b88: 0x6d528820, 0x34b89: 0x6d528a20, 0x34b8a: 0x6d528c20, 0x34b8b: 0x6d528e20, + 0x34b8c: 0x6d529020, 0x34b8d: 0x6d529220, 0x34b8e: 0x6d529420, 0x34b8f: 0x6d529620, + 0x34b90: 0x6d529820, 0x34b91: 0x6d529a20, 0x34b92: 0x6d529c20, 0x34b93: 0x6d529e20, + 0x34b94: 0x6d52a020, 0x34b95: 0x6d52a220, 0x34b96: 0x6d52a420, 0x34b97: 0x6d52a620, + 0x34b98: 0x6d52a820, 0x34b99: 0x6d52aa20, 0x34b9a: 0x6d52ac20, 0x34b9b: 0x6d52ae20, + 0x34b9c: 0x6d52b020, 0x34b9d: 0x6d52b220, 0x34b9e: 0x6d7dbe20, 0x34b9f: 0x6d7dc020, + 0x34ba0: 0x6d7dc220, 0x34ba1: 0x6d7dc420, 0x34ba2: 0x6d7dc620, 0x34ba3: 0x6d7dc820, + 0x34ba4: 0x6d7dca20, 0x34ba5: 0x6d7dcc20, 0x34ba6: 0x6d7dce20, 0x34ba7: 0x6d7dd020, + 0x34ba8: 0x6d7dd220, 0x34ba9: 0x6d7dd420, 0x34baa: 0x6d7dd620, 0x34bab: 0x6d7dd820, + 0x34bac: 0x6d7dda20, 0x34bad: 0x6d7ddc20, 0x34bae: 0x6d7dde20, 0x34baf: 0x6d7de020, + 0x34bb0: 0x6d7de220, 0x34bb1: 0x6d7de420, 0x34bb2: 0x6d7de620, 0x34bb3: 0x6d7de820, + 0x34bb4: 0x6d7dea20, 0x34bb5: 0x6d7dec20, 0x34bb6: 0x6d7dee20, 0x34bb7: 0x6d7df020, + 0x34bb8: 0x6d7df220, 0x34bb9: 0x6d7df420, 0x34bba: 0x6d7df620, 0x34bbb: 0x6d7df820, + 0x34bbc: 0x6d7dfa20, 0x34bbd: 0x6d7dfc20, 0x34bbe: 0x6da51a20, 0x34bbf: 0x6da51c20, + // Block 0xd2f, offset 0x34bc0 + 0x34bc0: 0x6da51e20, 0x34bc1: 0x6da52020, 0x34bc2: 0x6da52220, 0x34bc3: 0x6da52420, + 0x34bc4: 0x6dc6bc20, 0x34bc5: 0x6da52620, 0x34bc6: 0x6da52820, 0x34bc7: 0x6da52a20, + 0x34bc8: 0x6da52c20, 0x34bc9: 0x6da52e20, 0x34bca: 0x6da53020, 0x34bcb: 0x6da53220, + 0x34bcc: 0x6da53420, 0x34bcd: 0x6da53620, 0x34bce: 0x6da53820, 0x34bcf: 0x6da53a20, + 0x34bd0: 0x6dc6be20, 0x34bd1: 0x6dc6c020, 0x34bd2: 0x6dc6c220, 0x34bd3: 0x6dc6c420, + 0x34bd4: 0x6dc6c620, 0x34bd5: 0x6dc6c820, 0x34bd6: 0x6dc6ca20, 0x34bd7: 0x6dc6cc20, + 0x34bd8: 0x6dc6ce20, 0x34bd9: 0x6dc6d020, 0x34bda: 0x6dc6d220, 0x34bdb: 0x6de35c20, + 0x34bdc: 0x6de35e20, 0x34bdd: 0x6de36020, 0x34bde: 0x6de36220, 0x34bdf: 0x6de36420, + 0x34be0: 0x6de36620, 0x34be1: 0x6de36820, 0x34be2: 0x6de36a20, 0x34be3: 0x6dfab820, + 0x34be4: 0x6dfaba20, 0x34be5: 0x6dfabc20, 0x34be6: 0x6dfabe20, 0x34be7: 0x6dfac020, + 0x34be8: 0x6dfac220, 0x34be9: 0x6dfac420, 0x34bea: 0x6dfac620, 0x34beb: 0x6dfac820, + 0x34bec: 0x6dfaca20, 0x34bed: 0x6dfacc20, 0x34bee: 0x6e0e2e20, 0x34bef: 0x6e0e3020, + 0x34bf0: 0x6e0e3220, 0x34bf1: 0x6e0e3420, 0x34bf2: 0x6e0e3620, 0x34bf3: 0x6e1d9020, + 0x34bf4: 0x6e1d9220, 0x34bf5: 0x6e291a20, 0x34bf6: 0x6e291c20, 0x34bf7: 0x6e291e20, + 0x34bf8: 0x6e292020, 0x34bf9: 0x6e292220, 0x34bfa: 0x6e292420, 0x34bfb: 0x6e389e20, + 0x34bfc: 0x6e38a020, 0x34bfd: 0x6e404a20, 0x34bfe: 0x6e404c20, 0x34bff: 0x6e42a020, + // Block 0xd30, offset 0x34c00 + 0x34c00: 0x6e442e20, 0x34c01: 0x6c123e20, 0x34c02: 0x6c213e20, 0x34c03: 0x6c357820, + 0x34c04: 0x6c357a20, 0x34c05: 0x6c357c20, 0x34c06: 0x6c507020, 0x34c07: 0x6c507220, + 0x34c08: 0x6c507420, 0x34c09: 0x6c507620, 0x34c0a: 0x6c729220, 0x34c0b: 0x6c728620, + 0x34c0c: 0x6c729420, 0x34c0d: 0x6c729620, 0x34c0e: 0x6c9b1c20, 0x34c0f: 0x6c9b1e20, + 0x34c10: 0x6c9b2020, 0x34c11: 0x6c9b2220, 0x34c12: 0x6c9b2420, 0x34c13: 0x6c9b2620, + 0x34c14: 0x6cc70820, 0x34c15: 0x6cc70a20, 0x34c16: 0x6cc70c20, 0x34c17: 0x6cf59020, + 0x34c18: 0x6cf59220, 0x34c19: 0x6cf59420, 0x34c1a: 0x6d52b420, 0x34c1b: 0x6d52be20, + 0x34c1c: 0x6d52c020, 0x34c1d: 0x6d52c220, 0x34c1e: 0x6d52c420, 0x34c1f: 0x6d52c620, + 0x34c20: 0x6d52c820, 0x34c21: 0x6d52ca20, 0x34c22: 0x6d7e0620, 0x34c23: 0x6d7e0820, + 0x34c24: 0x6da54020, 0x34c25: 0x6dc6d820, 0x34c26: 0x6dc6da20, 0x34c27: 0x6de36e20, + 0x34c28: 0x6dfad020, 0x34c29: 0x6e0e3e20, 0x34c2a: 0x6e0e4020, 0x34c2b: 0x6e292820, + 0x34c2c: 0x6c048820, 0x34c2d: 0x6c214420, 0x34c2e: 0x6c358420, 0x34c2f: 0x6c358620, + 0x34c30: 0x6c358820, 0x34c31: 0x6c507c20, 0x34c32: 0x6c507e20, 0x34c33: 0x6c72a020, + 0x34c34: 0x6c72a220, 0x34c35: 0x6c72a420, 0x34c36: 0x6c72a620, 0x34c37: 0x6c9b2e20, + 0x34c38: 0x6c9b3020, 0x34c39: 0x6c9b3220, 0x34c3a: 0x6c9b3420, 0x34c3b: 0x6c9b3620, + 0x34c3c: 0x6cc71820, 0x34c3d: 0x6cc71a20, 0x34c3e: 0x6cc71c20, 0x34c3f: 0x6cc71e20, + // Block 0xd31, offset 0x34c40 + 0x34c40: 0x6cc72020, 0x34c41: 0x6cf59a20, 0x34c42: 0x6d254c20, 0x34c43: 0x6cf59c20, + 0x34c44: 0x6cf59e20, 0x34c45: 0x6cf5a020, 0x34c46: 0x6d254e20, 0x34c47: 0x6d255020, + 0x34c48: 0x6d255220, 0x34c49: 0x6d52ce20, 0x34c4a: 0x6d52d020, 0x34c4b: 0x6d52d220, + 0x34c4c: 0x6da54620, 0x34c4d: 0x6da54820, 0x34c4e: 0x6dc6de20, 0x34c4f: 0x6de37020, + 0x34c50: 0x6dfad220, 0x34c51: 0x6c048c20, 0x34c52: 0x6c124420, 0x34c53: 0x6c214620, + 0x34c54: 0x6c359220, 0x34c55: 0x6c359420, 0x34c56: 0x6c359620, 0x34c57: 0x6c359820, + 0x34c58: 0x6c359a20, 0x34c59: 0x6c508a20, 0x34c5a: 0x6c508c20, 0x34c5b: 0x6c72ae20, + 0x34c5c: 0x6c72b020, 0x34c5d: 0x6c72b220, 0x34c5e: 0x6c9b3c20, 0x34c5f: 0x6c9b3e20, + 0x34c60: 0x6c9b4020, 0x34c61: 0x6cc72a20, 0x34c62: 0x6cc72c20, 0x34c63: 0x6cc72e20, + 0x34c64: 0x6cc73020, 0x34c65: 0x6cc73220, 0x34c66: 0x6cc73420, 0x34c67: 0x6cc73620, + 0x34c68: 0x6cc73820, 0x34c69: 0x6cc73a20, 0x34c6a: 0x6cc73c20, 0x34c6b: 0x6ca6ac20, + 0x34c6c: 0x6cc73e20, 0x34c6d: 0x6cc74020, 0x34c6e: 0x6cf5a420, 0x34c6f: 0x6cf5a620, + 0x34c70: 0x6cf5a820, 0x34c71: 0x6cf5aa20, 0x34c72: 0x6cf5ac20, 0x34c73: 0x6cf5ae20, + 0x34c74: 0x6cf5b020, 0x34c75: 0x6cf5b220, 0x34c76: 0x6d255a20, 0x34c77: 0x6d255c20, + 0x34c78: 0x6d255e20, 0x34c79: 0x6d256020, 0x34c7a: 0x6d256220, 0x34c7b: 0x6d52da20, + 0x34c7c: 0x6d52dc20, 0x34c7d: 0x6d52de20, 0x34c7e: 0x6d52e020, 0x34c7f: 0x6d52e220, + // Block 0xd32, offset 0x34c80 + 0x34c80: 0x6d7e0e20, 0x34c81: 0x6d7e1020, 0x34c82: 0x6d7e1220, 0x34c83: 0x6d7e1420, + 0x34c84: 0x6d7e1620, 0x34c85: 0x6d7e1820, 0x34c86: 0x6d7e1a20, 0x34c87: 0x6da55020, + 0x34c88: 0x6da55220, 0x34c89: 0x6da55420, 0x34c8a: 0x6da55620, 0x34c8b: 0x6da55820, + 0x34c8c: 0x6dc6e220, 0x34c8d: 0x6dc6e420, 0x34c8e: 0x6dc6e620, 0x34c8f: 0x6dc6e820, + 0x34c90: 0x6dc6ea20, 0x34c91: 0x6de37220, 0x34c92: 0x6de37420, 0x34c93: 0x6de37620, + 0x34c94: 0x6dfad420, 0x34c95: 0x6dfad620, 0x34c96: 0x6e1d9420, 0x34c97: 0x6c124820, + 0x34c98: 0x6c214820, 0x34c99: 0x6c214a20, 0x34c9a: 0x6c35a620, 0x34c9b: 0x6c35a820, + 0x34c9c: 0x6c35aa20, 0x34c9d: 0x6c509820, 0x34c9e: 0x6c509a20, 0x34c9f: 0x6c509c20, + 0x34ca0: 0x6c509e20, 0x34ca1: 0x6c50a020, 0x34ca2: 0x6c50a220, 0x34ca3: 0x6c50a420, + 0x34ca4: 0x6c50a620, 0x34ca5: 0x6c50a820, 0x34ca6: 0x6c72ca20, 0x34ca7: 0x6c72cc20, + 0x34ca8: 0x6c72ce20, 0x34ca9: 0x6c72d020, 0x34caa: 0x6c72d220, 0x34cab: 0x6c72d420, + 0x34cac: 0x6c72d620, 0x34cad: 0x6c72d820, 0x34cae: 0x6c72da20, 0x34caf: 0x6c72dc20, + 0x34cb0: 0x6c72de20, 0x34cb1: 0x6c72e020, 0x34cb2: 0x6c72e220, 0x34cb3: 0x6c9b5820, + 0x34cb4: 0x6c9b5a20, 0x34cb5: 0x6c9b5c20, 0x34cb6: 0x6c9b5e20, 0x34cb7: 0x6c9b6020, + 0x34cb8: 0x6c9b6220, 0x34cb9: 0x6c9b6420, 0x34cba: 0x6c9b6620, 0x34cbb: 0x6c9b6820, + 0x34cbc: 0x6cc74a20, 0x34cbd: 0x6cc74c20, 0x34cbe: 0x6cc74e20, 0x34cbf: 0x6cc75020, + // Block 0xd33, offset 0x34cc0 + 0x34cc0: 0x6cc75220, 0x34cc1: 0x6cc75420, 0x34cc2: 0x6cc75620, 0x34cc3: 0x6cc75820, + 0x34cc4: 0x6cc75a20, 0x34cc5: 0x6cc75c20, 0x34cc6: 0x6cc75e20, 0x34cc7: 0x6cc76020, + 0x34cc8: 0x6cf5be20, 0x34cc9: 0x6cf5c020, 0x34cca: 0x6cf5c220, 0x34ccb: 0x6cf5c420, + 0x34ccc: 0x6cf5c620, 0x34ccd: 0x6cf5c820, 0x34cce: 0x6d256820, 0x34ccf: 0x6d256a20, + 0x34cd0: 0x6d256c20, 0x34cd1: 0x6d256e20, 0x34cd2: 0x6d257020, 0x34cd3: 0x6d257220, + 0x34cd4: 0x6d52e820, 0x34cd5: 0x6d52ea20, 0x34cd6: 0x6d52ec20, 0x34cd7: 0x6d7e2020, + 0x34cd8: 0x6d7e2220, 0x34cd9: 0x6d7e2420, 0x34cda: 0x6d7e2620, 0x34cdb: 0x6d7e2820, + 0x34cdc: 0x6d7e2a20, 0x34cdd: 0x6da55c20, 0x34cde: 0x6dc6ee20, 0x34cdf: 0x6dc6f020, + 0x34ce0: 0x6dc6f220, 0x34ce1: 0x6dc6f420, 0x34ce2: 0x6dc6f620, 0x34ce3: 0x6dc6f820, + 0x34ce4: 0x6de37e20, 0x34ce5: 0x6dfada20, 0x34ce6: 0x6e0e4420, 0x34ce7: 0x6e1d9620, + 0x34ce8: 0x6e1d9820, 0x34ce9: 0x6e292c20, 0x34cea: 0x6e324820, 0x34ceb: 0x6e38a420, + 0x34cec: 0x6e3d2e20, 0x34ced: 0x6c124a20, 0x34cee: 0x6c214c20, 0x34cef: 0x6c214e20, + 0x34cf0: 0x6c50ae20, 0x34cf1: 0x6c72ea20, 0x34cf2: 0x6c72ec20, 0x34cf3: 0x6c72ee20, + 0x34cf4: 0x6cc76a20, 0x34cf5: 0x6cc76c20, 0x34cf6: 0x6cf5d020, 0x34cf7: 0x6cf5d220, + 0x34cf8: 0x6cf5d420, 0x34cf9: 0x6d52f220, 0x34cfa: 0x6d7e3020, 0x34cfb: 0x6c095820, + 0x34cfc: 0x6c095a20, 0x34cfd: 0x6c095c20, 0x34cfe: 0x6c126020, 0x34cff: 0x6c126220, + // Block 0xd34, offset 0x34d00 + 0x34d00: 0x6c126420, 0x34d01: 0x6c126620, 0x34d02: 0x6c126820, 0x34d03: 0x6c126a20, + 0x34d04: 0x6c216e20, 0x34d05: 0x6c126c20, 0x34d06: 0x6c217020, 0x34d07: 0x6c217220, + 0x34d08: 0x6c217420, 0x34d09: 0x6c217620, 0x34d0a: 0x6c217820, 0x34d0b: 0x6c217a20, + 0x34d0c: 0x6c217c20, 0x34d0d: 0x6c217e20, 0x34d0e: 0x6c218020, 0x34d0f: 0x6c218220, + 0x34d10: 0x6c218420, 0x34d11: 0x6c218620, 0x34d12: 0x6c218820, 0x34d13: 0x6c218a20, + 0x34d14: 0x6c218c20, 0x34d15: 0x6c218e20, 0x34d16: 0x6c219020, 0x34d17: 0x6c219220, + 0x34d18: 0x6c219420, 0x34d19: 0x6c219620, 0x34d1a: 0x6c35f820, 0x34d1b: 0x6c35fa20, + 0x34d1c: 0x6c35fc20, 0x34d1d: 0x6c35fe20, 0x34d1e: 0x6c360020, 0x34d1f: 0x6c360220, + 0x34d20: 0x6c360420, 0x34d21: 0x6c360620, 0x34d22: 0x6c360820, 0x34d23: 0x6c360a20, + 0x34d24: 0x6c360c20, 0x34d25: 0x6c360e20, 0x34d26: 0x6c361020, 0x34d27: 0x6c361220, + 0x34d28: 0x6c361420, 0x34d29: 0x6c361620, 0x34d2a: 0x6c361820, 0x34d2b: 0x6c361a20, + 0x34d2c: 0x6c361c20, 0x34d2d: 0x6c361e20, 0x34d2e: 0x6c362020, 0x34d2f: 0x6c362220, + 0x34d30: 0x6c362420, 0x34d31: 0x6c362620, 0x34d32: 0x6c362820, 0x34d33: 0x6c362a20, + 0x34d34: 0x6c362c20, 0x34d35: 0x6c362e20, 0x34d36: 0x6c363020, 0x34d37: 0x6c511020, + 0x34d38: 0x6c511220, 0x34d39: 0x6c511420, 0x34d3a: 0x6c511620, 0x34d3b: 0x6c511820, + 0x34d3c: 0x6c511a20, 0x34d3d: 0x6c511c20, 0x34d3e: 0x6c511e20, 0x34d3f: 0x6c512020, + // Block 0xd35, offset 0x34d40 + 0x34d40: 0x6c512220, 0x34d41: 0x6c512420, 0x34d42: 0x6c512620, 0x34d43: 0x6c512820, + 0x34d44: 0x6c512a20, 0x34d45: 0x6c512c20, 0x34d46: 0x6c512e20, 0x34d47: 0x6c513020, + 0x34d48: 0x6c513220, 0x34d49: 0x6c515e20, 0x34d4a: 0x6c513420, 0x34d4b: 0x6c513620, + 0x34d4c: 0x6c513820, 0x34d4d: 0x6c513a20, 0x34d4e: 0x6c513c20, 0x34d4f: 0x6c513e20, + 0x34d50: 0x6c514020, 0x34d51: 0x6c514220, 0x34d52: 0x6c733220, 0x34d53: 0x6c733420, + 0x34d54: 0x6c733620, 0x34d55: 0x6c733820, 0x34d56: 0x6c733a20, 0x34d57: 0x6c733c20, + 0x34d58: 0x6c733e20, 0x34d59: 0x6c734020, 0x34d5a: 0x6c734220, 0x34d5b: 0x6c734420, + 0x34d5c: 0x6c734620, 0x34d5d: 0x6c734820, 0x34d5e: 0x6c734a20, 0x34d5f: 0x6c734c20, + 0x34d60: 0x6c734e20, 0x34d61: 0x6c735020, 0x34d62: 0x6c735220, 0x34d63: 0x6c735420, + 0x34d64: 0x6c735620, 0x34d65: 0x6c735820, 0x34d66: 0x6c735a20, 0x34d67: 0x6c735c20, + 0x34d68: 0x6c735e20, 0x34d69: 0x6c736020, 0x34d6a: 0x6c736220, 0x34d6b: 0x6c736420, + 0x34d6c: 0x6c736620, 0x34d6d: 0x6c736820, 0x34d6e: 0x6c736a20, 0x34d6f: 0x6c736c20, + 0x34d70: 0x6c736e20, 0x34d71: 0x6c737020, 0x34d72: 0x6c9ba220, 0x34d73: 0x6c9ba420, + 0x34d74: 0x6c9ba620, 0x34d75: 0x6c9ba820, 0x34d76: 0x6c9baa20, 0x34d77: 0x6c9bac20, + 0x34d78: 0x6c9bae20, 0x34d79: 0x6c9bb020, 0x34d7a: 0x6c9bb220, 0x34d7b: 0x6c9bb420, + 0x34d7c: 0x6c9bb620, 0x34d7d: 0x6c9bb820, 0x34d7e: 0x6c9bba20, 0x34d7f: 0x6c9bbc20, + // Block 0xd36, offset 0x34d80 + 0x34d80: 0x6c9bbe20, 0x34d81: 0x6c9bc020, 0x34d82: 0x6c9bc220, 0x34d83: 0x6c9bc420, + 0x34d84: 0x6c9bc620, 0x34d85: 0x6c9bc820, 0x34d86: 0x6c9bca20, 0x34d87: 0x6c9bcc20, + 0x34d88: 0x6c9bce20, 0x34d89: 0x6c9bd020, 0x34d8a: 0x6c9bd220, 0x34d8b: 0x6c9bd420, + 0x34d8c: 0x6c9bd620, 0x34d8d: 0x6c9bd820, 0x34d8e: 0x6c9bda20, 0x34d8f: 0x6c9bdc20, + 0x34d90: 0x6c9bde20, 0x34d91: 0x6c9be020, 0x34d92: 0x6c9be220, 0x34d93: 0x6c9be420, + 0x34d94: 0x6c9be620, 0x34d95: 0x6c9be820, 0x34d96: 0x6c9bea20, 0x34d97: 0x6c9bec20, + 0x34d98: 0x6c9bee20, 0x34d99: 0x6c9bf020, 0x34d9a: 0x6c9bf220, 0x34d9b: 0x6c9bf420, + 0x34d9c: 0x6c9bf620, 0x34d9d: 0x6c9bf820, 0x34d9e: 0x6c9bfa20, 0x34d9f: 0x6c9bfc20, + 0x34da0: 0x6c9bfe20, 0x34da1: 0x6c9c0020, 0x34da2: 0x6cc7ba20, 0x34da3: 0x6cc7bc20, + 0x34da4: 0x6cc7be20, 0x34da5: 0x6cc7c020, 0x34da6: 0x6cc7c220, 0x34da7: 0x6cc7c420, + 0x34da8: 0x6cc7c620, 0x34da9: 0x6cc7c820, 0x34daa: 0x6cc7ca20, 0x34dab: 0x6cc7cc20, + 0x34dac: 0x6cc7ce20, 0x34dad: 0x6cc7d020, 0x34dae: 0x6cc7d220, 0x34daf: 0x6cc7d420, + 0x34db0: 0x6cc7d620, 0x34db1: 0x6cc7d820, 0x34db2: 0x6cc7da20, 0x34db3: 0x6cc7dc20, + 0x34db4: 0x6cc7de20, 0x34db5: 0x6cc7e020, 0x34db6: 0x6cc7e220, 0x34db7: 0x6cc7e420, + 0x34db8: 0x6cc7e620, 0x34db9: 0x6cc7e820, 0x34dba: 0x6cc7ea20, 0x34dbb: 0x6cc7ec20, + 0x34dbc: 0x6cc7ee20, 0x34dbd: 0x6cc7f020, 0x34dbe: 0x6cc7f220, 0x34dbf: 0x6cc7f420, + // Block 0xd37, offset 0x34dc0 + 0x34dc0: 0x6cc7f620, 0x34dc1: 0x6cc7f820, 0x34dc2: 0x6cc7fa20, 0x34dc3: 0x6cc7fc20, + 0x34dc4: 0x6cc7fe20, 0x34dc5: 0x6cc80020, 0x34dc6: 0x6cc80220, 0x34dc7: 0x6cc80420, + 0x34dc8: 0x6cc80620, 0x34dc9: 0x6cc80820, 0x34dca: 0x6cc80a20, 0x34dcb: 0x6cc80c20, + 0x34dcc: 0x6cc80e20, 0x34dcd: 0x6cc81020, 0x34dce: 0x6cc81220, 0x34dcf: 0x6cc81420, + 0x34dd0: 0x6cc81620, 0x34dd1: 0x6cc81820, 0x34dd2: 0x6cc81a20, 0x34dd3: 0x6cc81c20, + 0x34dd4: 0x6cc81e20, 0x34dd5: 0x6cc82020, 0x34dd6: 0x6cc82220, 0x34dd7: 0x6cc82420, + 0x34dd8: 0x6cc82620, 0x34dd9: 0x6cc82820, 0x34dda: 0x6cc82a20, 0x34ddb: 0x6cc82c20, + 0x34ddc: 0x6cc82e20, 0x34ddd: 0x6cc83020, 0x34dde: 0x6cc83220, 0x34ddf: 0x6cc83420, + 0x34de0: 0x6cc83620, 0x34de1: 0x6cc83820, 0x34de2: 0x6cc83a20, 0x34de3: 0x6cc83c20, + 0x34de4: 0x6cf61a20, 0x34de5: 0x6cf61c20, 0x34de6: 0x6cf61e20, 0x34de7: 0x6cf62020, + 0x34de8: 0x6cf62220, 0x34de9: 0x6cf62420, 0x34dea: 0x6cf62620, 0x34deb: 0x6cf62820, + 0x34dec: 0x6cf62a20, 0x34ded: 0x6cf62c20, 0x34dee: 0x6cf62e20, 0x34def: 0x6cf63020, + 0x34df0: 0x6cf63220, 0x34df1: 0x6cf63420, 0x34df2: 0x6cf63620, 0x34df3: 0x6cf63820, + 0x34df4: 0x6cf63a20, 0x34df5: 0x6cf63c20, 0x34df6: 0x6cf63e20, 0x34df7: 0x6cf64020, + 0x34df8: 0x6cf64220, 0x34df9: 0x6cf64420, 0x34dfa: 0x6cf64620, 0x34dfb: 0x6cf64820, + 0x34dfc: 0x6cf64a20, 0x34dfd: 0x6cf64c20, 0x34dfe: 0x6cf64e20, 0x34dff: 0x6cf65020, + // Block 0xd38, offset 0x34e00 + 0x34e00: 0x6cf65220, 0x34e01: 0x6cf65420, 0x34e02: 0x6cf65620, 0x34e03: 0x6cf65820, + 0x34e04: 0x6cf65a20, 0x34e05: 0x6cf65c20, 0x34e06: 0x6cf65e20, 0x34e07: 0x6cf66020, + 0x34e08: 0x6cf66220, 0x34e09: 0x6cf66420, 0x34e0a: 0x6cf66620, 0x34e0b: 0x6cf66820, + 0x34e0c: 0x6cf66a20, 0x34e0d: 0x6cf66c20, 0x34e0e: 0x6cf66e20, 0x34e0f: 0x6cf67020, + 0x34e10: 0x6cf67220, 0x34e11: 0x6cf67420, 0x34e12: 0x6d259c20, 0x34e13: 0x6d259e20, + 0x34e14: 0x6d25a020, 0x34e15: 0x6d25a220, 0x34e16: 0x6d25a420, 0x34e17: 0x6d25a620, + 0x34e18: 0x6d25a820, 0x34e19: 0x6d25aa20, 0x34e1a: 0x6d25ac20, 0x34e1b: 0x6d25ae20, + 0x34e1c: 0x6d25b020, 0x34e1d: 0x6d25b220, 0x34e1e: 0x6d25b420, 0x34e1f: 0x6d25b620, + 0x34e20: 0x6d25b820, 0x34e21: 0x6cf1ac20, 0x34e22: 0x6d25ba20, 0x34e23: 0x6d25bc20, + 0x34e24: 0x6d25be20, 0x34e25: 0x6d25c020, 0x34e26: 0x6d25c220, 0x34e27: 0x6d25c420, + 0x34e28: 0x6d25c620, 0x34e29: 0x6d25c820, 0x34e2a: 0x6d25ca20, 0x34e2b: 0x6d25cc20, + 0x34e2c: 0x6d25ce20, 0x34e2d: 0x6d25d020, 0x34e2e: 0x6d25d220, 0x34e2f: 0x6d25d420, + 0x34e30: 0x6d25d620, 0x34e31: 0x6d25d820, 0x34e32: 0x6d25da20, 0x34e33: 0x6d25dc20, + 0x34e34: 0x6d25de20, 0x34e35: 0x6d25e020, 0x34e36: 0x6d25e220, 0x34e37: 0x6d25e420, + 0x34e38: 0x6d25e620, 0x34e39: 0x6d25e820, 0x34e3a: 0x6d25ea20, 0x34e3b: 0x6d531e20, + 0x34e3c: 0x6d532020, 0x34e3d: 0x6d532220, 0x34e3e: 0x6d532420, 0x34e3f: 0x6d532620, + // Block 0xd39, offset 0x34e40 + 0x34e40: 0x6d532820, 0x34e41: 0x6d532a20, 0x34e42: 0x6d532c20, 0x34e43: 0x6d532e20, + 0x34e44: 0x6d533020, 0x34e45: 0x6d533220, 0x34e46: 0x6d533420, 0x34e47: 0x6d533620, + 0x34e48: 0x6d533820, 0x34e49: 0x6d7e7020, 0x34e4a: 0x6d533a20, 0x34e4b: 0x6d533c20, + 0x34e4c: 0x6d533e20, 0x34e4d: 0x6d534020, 0x34e4e: 0x6d534220, 0x34e4f: 0x6d534420, + 0x34e50: 0x6d534620, 0x34e51: 0x6d534820, 0x34e52: 0x6d4d3220, 0x34e53: 0x6d534a20, + 0x34e54: 0x6d534c20, 0x34e55: 0x6d534e20, 0x34e56: 0x6d535020, 0x34e57: 0x6d535220, + 0x34e58: 0x6d535420, 0x34e59: 0x6d535620, 0x34e5a: 0x6d535820, 0x34e5b: 0x6d535a20, + 0x34e5c: 0x6d535c20, 0x34e5d: 0x6d535e20, 0x34e5e: 0x6d7e7220, 0x34e5f: 0x6d7e7420, + 0x34e60: 0x6d7e7620, 0x34e61: 0x6d7e7820, 0x34e62: 0x6d7e7a20, 0x34e63: 0x6d7e7c20, + 0x34e64: 0x6d7e7e20, 0x34e65: 0x6d7e8020, 0x34e66: 0x6d7e8220, 0x34e67: 0x6d7e8420, + 0x34e68: 0x6d7e8620, 0x34e69: 0x6d7e8820, 0x34e6a: 0x6d7e8a20, 0x34e6b: 0x6d7e8c20, + 0x34e6c: 0x6d7e8e20, 0x34e6d: 0x6d7e9020, 0x34e6e: 0x6d7e9220, 0x34e6f: 0x6d7e9420, + 0x34e70: 0x6d7e9620, 0x34e71: 0x6d7e9820, 0x34e72: 0x6d7e9a20, 0x34e73: 0x6d7e9c20, + 0x34e74: 0x6d7e9e20, 0x34e75: 0x6d7ea020, 0x34e76: 0x6d7ea220, 0x34e77: 0x6d7ea420, + 0x34e78: 0x6d7ea620, 0x34e79: 0x6d7ea820, 0x34e7a: 0x6d7eaa20, 0x34e7b: 0x6d7eac20, + 0x34e7c: 0x6d7eae20, 0x34e7d: 0x6d7eb020, 0x34e7e: 0x6d7eb220, 0x34e7f: 0x6d7eb420, + // Block 0xd3a, offset 0x34e80 + 0x34e80: 0x6d7eb620, 0x34e81: 0x6d7eb820, 0x34e82: 0x6d7eba20, 0x34e83: 0x6d7ebc20, + 0x34e84: 0x6d7ebe20, 0x34e85: 0x6d7ec020, 0x34e86: 0x6d7ec220, 0x34e87: 0x6d536020, + 0x34e88: 0x6d7ec420, 0x34e89: 0x6da57a20, 0x34e8a: 0x6da57c20, 0x34e8b: 0x6da57e20, + 0x34e8c: 0x6da58020, 0x34e8d: 0x6da58220, 0x34e8e: 0x6da58420, 0x34e8f: 0x6da58620, + 0x34e90: 0x6da58820, 0x34e91: 0x6da58a20, 0x34e92: 0x6da58c20, 0x34e93: 0x6da58e20, + 0x34e94: 0x6da59020, 0x34e95: 0x6da59220, 0x34e96: 0x6da59420, 0x34e97: 0x6da59620, + 0x34e98: 0x6da59820, 0x34e99: 0x6da59a20, 0x34e9a: 0x6da59c20, 0x34e9b: 0x6da59e20, + 0x34e9c: 0x6da5a020, 0x34e9d: 0x6da5a220, 0x34e9e: 0x6dc70e20, 0x34e9f: 0x6dc71020, + 0x34ea0: 0x6dc71220, 0x34ea1: 0x6dc71420, 0x34ea2: 0x6dc71620, 0x34ea3: 0x6dc71820, + 0x34ea4: 0x6dc71a20, 0x34ea5: 0x6dc71c20, 0x34ea6: 0x6dc71e20, 0x34ea7: 0x6dc72020, + 0x34ea8: 0x6dc72220, 0x34ea9: 0x6dc72420, 0x34eaa: 0x6dc72620, 0x34eab: 0x6dc72820, + 0x34eac: 0x6dc72a20, 0x34ead: 0x6dc72c20, 0x34eae: 0x6dc72e20, 0x34eaf: 0x6dc73020, + 0x34eb0: 0x6dc73220, 0x34eb1: 0x6dc73420, 0x34eb2: 0x6de39420, 0x34eb3: 0x6de39620, + 0x34eb4: 0x6de39820, 0x34eb5: 0x6de39a20, 0x34eb6: 0x6de39c20, 0x34eb7: 0x6de39e20, + 0x34eb8: 0x6de3a020, 0x34eb9: 0x6de3a220, 0x34eba: 0x6de3a420, 0x34ebb: 0x6de3a620, + 0x34ebc: 0x6de3a820, 0x34ebd: 0x6de3aa20, 0x34ebe: 0x6de3ac20, 0x34ebf: 0x6dfaec20, + // Block 0xd3b, offset 0x34ec0 + 0x34ec0: 0x6dfaee20, 0x34ec1: 0x6dfaf020, 0x34ec2: 0x6dfaf220, 0x34ec3: 0x6dfaf420, + 0x34ec4: 0x6dfaf620, 0x34ec5: 0x6dfaf820, 0x34ec6: 0x6dfafa20, 0x34ec7: 0x6dfafc20, + 0x34ec8: 0x6e0e4820, 0x34ec9: 0x6e0e4a20, 0x34eca: 0x6e0e4c20, 0x34ecb: 0x6e0e4e20, + 0x34ecc: 0x6e0e5020, 0x34ecd: 0x6e1d9e20, 0x34ece: 0x6e1da020, 0x34ecf: 0x6e1da220, + 0x34ed0: 0x6e1da420, 0x34ed1: 0x6e1da620, 0x34ed2: 0x6e1da820, 0x34ed3: 0x6e1daa20, + 0x34ed4: 0x6e1dac20, 0x34ed5: 0x6e1dae20, 0x34ed6: 0x6e293620, 0x34ed7: 0x6e324e20, + 0x34ed8: 0x6e325020, 0x34ed9: 0x6e325220, 0x34eda: 0x6e348820, 0x34edb: 0x6e325420, + 0x34edc: 0x6e38aa20, 0x34edd: 0x6e38ac20, 0x34ede: 0x6e40ba20, 0x34edf: 0x6e42a220, + 0x34ee0: 0x6e46e620, 0x34ee1: 0x6c21a020, 0x34ee2: 0x6c21a220, 0x34ee3: 0x6c364220, + 0x34ee4: 0x6c364420, 0x34ee5: 0x6c364620, 0x34ee6: 0x6c364820, 0x34ee7: 0x6c516020, + 0x34ee8: 0x6c516220, 0x34ee9: 0x6c516420, 0x34eea: 0x6c516620, 0x34eeb: 0x6c516820, + 0x34eec: 0x6c516a20, 0x34eed: 0x6c739420, 0x34eee: 0x6c739620, 0x34eef: 0x6c739820, + 0x34ef0: 0x6c739a20, 0x34ef1: 0x6c739c20, 0x34ef2: 0x6c739e20, 0x34ef3: 0x6c73a020, + 0x34ef4: 0x6c73a220, 0x34ef5: 0x6c73a420, 0x34ef6: 0x6c73a620, 0x34ef7: 0x6c9c0e20, + 0x34ef8: 0x6c9c1020, 0x34ef9: 0x6c9c1220, 0x34efa: 0x6c9c1420, 0x34efb: 0x6cc85220, + 0x34efc: 0x6cc85420, 0x34efd: 0x6cc85620, 0x34efe: 0x6cf68a20, 0x34eff: 0x6cf68c20, + // Block 0xd3c, offset 0x34f00 + 0x34f00: 0x6cf68e20, 0x34f01: 0x6cf69020, 0x34f02: 0x6cf69220, 0x34f03: 0x6d25fc20, + 0x34f04: 0x6d25fe20, 0x34f05: 0x6d260020, 0x34f06: 0x6d537420, 0x34f07: 0x6d537620, + 0x34f08: 0x6d537820, 0x34f09: 0x6d537a20, 0x34f0a: 0x6d537c20, 0x34f0b: 0x6d7ed820, + 0x34f0c: 0x6d7eda20, 0x34f0d: 0x6d7edc20, 0x34f0e: 0x6d7ede20, 0x34f0f: 0x6da5ac20, + 0x34f10: 0x6da5ae20, 0x34f11: 0x6dc73e20, 0x34f12: 0x6dc74020, 0x34f13: 0x6dc74220, + 0x34f14: 0x6dc74420, 0x34f15: 0x6dc74620, 0x34f16: 0x6de3ae20, 0x34f17: 0x6de3b020, + 0x34f18: 0x6dfafe20, 0x34f19: 0x6dfb0020, 0x34f1a: 0x6e325820, 0x34f1b: 0x6e42a420, + 0x34f1c: 0x6e46c620, 0x34f1d: 0x6c096020, 0x34f1e: 0x6c127620, 0x34f1f: 0x6c21a420, + 0x34f20: 0x6c21a620, 0x34f21: 0x6c21a820, 0x34f22: 0x6c21aa20, 0x34f23: 0x6c21ac20, + 0x34f24: 0x6c365420, 0x34f25: 0x6c517420, 0x34f26: 0x6c517620, 0x34f27: 0x6c517820, + 0x34f28: 0x6c5dc820, 0x34f29: 0x6c517a20, 0x34f2a: 0x6c517c20, 0x34f2b: 0x6c517e20, + 0x34f2c: 0x6c518020, 0x34f2d: 0x6c73b620, 0x34f2e: 0x6c73b820, 0x34f2f: 0x6c825c20, + 0x34f30: 0x6c825e20, 0x34f31: 0x6c9c2420, 0x34f32: 0x6c9c2620, 0x34f33: 0x6c9c2820, + 0x34f34: 0x6c9c2a20, 0x34f35: 0x6c9c2c20, 0x34f36: 0x6c9c2e20, 0x34f37: 0x6cc86220, + 0x34f38: 0x6cc86420, 0x34f39: 0x6cc86620, 0x34f3a: 0x6cc86820, 0x34f3b: 0x6cc86a20, + 0x34f3c: 0x6cc86c20, 0x34f3d: 0x6cc86e20, 0x34f3e: 0x6cc87020, 0x34f3f: 0x6cc87220, + // Block 0xd3d, offset 0x34f40 + 0x34f40: 0x6cc87420, 0x34f41: 0x6cc87620, 0x34f42: 0x6cc87820, 0x34f43: 0x6cc87a20, + 0x34f44: 0x6cf69820, 0x34f45: 0x6cf69a20, 0x34f46: 0x6cf69c20, 0x34f47: 0x6cf69e20, + 0x34f48: 0x6cf6a020, 0x34f49: 0x6cf6a220, 0x34f4a: 0x6cf6a420, 0x34f4b: 0x6cf6a620, + 0x34f4c: 0x6cf6a820, 0x34f4d: 0x6d260820, 0x34f4e: 0x6d260a20, 0x34f4f: 0x6d260c20, + 0x34f50: 0x6d260e20, 0x34f51: 0x6d261020, 0x34f52: 0x6d538820, 0x34f53: 0x6d538a20, + 0x34f54: 0x6d538c20, 0x34f55: 0x6d538e20, 0x34f56: 0x6d539020, 0x34f57: 0x6d539220, + 0x34f58: 0x6d539420, 0x34f59: 0x6d539620, 0x34f5a: 0x6d7eec20, 0x34f5b: 0x6d7eee20, + 0x34f5c: 0x6da5b220, 0x34f5d: 0x6d7ef020, 0x34f5e: 0x6d7ef220, 0x34f5f: 0x6d7ef420, + 0x34f60: 0x6d7ef620, 0x34f61: 0x6d7ef820, 0x34f62: 0x6d7efa20, 0x34f63: 0x6da5b420, + 0x34f64: 0x6da5b620, 0x34f65: 0x6da5b820, 0x34f66: 0x6da5ba20, 0x34f67: 0x6da5bc20, + 0x34f68: 0x6da5be20, 0x34f69: 0x6dc74a20, 0x34f6a: 0x6dc74c20, 0x34f6b: 0x6dc74e20, + 0x34f6c: 0x6dc75020, 0x34f6d: 0x6dc75220, 0x34f6e: 0x6dfb0420, 0x34f6f: 0x6dfb0620, + 0x34f70: 0x6e1db020, 0x34f71: 0x6e293820, 0x34f72: 0x6e325a20, 0x34f73: 0x6c04a220, + 0x34f74: 0x6c04a420, 0x34f75: 0x6c097020, 0x34f76: 0x6c097220, 0x34f77: 0x6c097420, + 0x34f78: 0x6c12a220, 0x34f79: 0x6c12a420, 0x34f7a: 0x6c12a620, 0x34f7b: 0x6c12a820, + 0x34f7c: 0x6c12aa20, 0x34f7d: 0x6c12ac20, 0x34f7e: 0x6c12ae20, 0x34f7f: 0x6c12b020, + // Block 0xd3e, offset 0x34f80 + 0x34f80: 0x6c12b220, 0x34f81: 0x6c220820, 0x34f82: 0x6c220a20, 0x34f83: 0x6c220c20, + 0x34f84: 0x6c220e20, 0x34f85: 0x6c221020, 0x34f86: 0x6c221220, 0x34f87: 0x6c221420, + 0x34f88: 0x6c221620, 0x34f89: 0x6c221820, 0x34f8a: 0x6c221a20, 0x34f8b: 0x6c221c20, + 0x34f8c: 0x6c221e20, 0x34f8d: 0x6c222020, 0x34f8e: 0x6c222220, 0x34f8f: 0x6c222420, + 0x34f90: 0x6c222620, 0x34f91: 0x6c222820, 0x34f92: 0x6c222a20, 0x34f93: 0x6c222c20, + 0x34f94: 0x6c36f220, 0x34f95: 0x6c36f420, 0x34f96: 0x6c36f620, 0x34f97: 0x6c36f820, + 0x34f98: 0x6c36fa20, 0x34f99: 0x6c36fc20, 0x34f9a: 0x6c36fe20, 0x34f9b: 0x6c370020, + 0x34f9c: 0x6c370220, 0x34f9d: 0x6c370420, 0x34f9e: 0x6c370620, 0x34f9f: 0x6c370820, + 0x34fa0: 0x6c370a20, 0x34fa1: 0x6c370c20, 0x34fa2: 0x6c370e20, 0x34fa3: 0x6c371020, + 0x34fa4: 0x6c371220, 0x34fa5: 0x6c371420, 0x34fa6: 0x6c371620, 0x34fa7: 0x6c371820, + 0x34fa8: 0x6c371a20, 0x34fa9: 0x6c371c20, 0x34faa: 0x6c371e20, 0x34fab: 0x6c372020, + 0x34fac: 0x6c372220, 0x34fad: 0x6c372420, 0x34fae: 0x6c372620, 0x34faf: 0x6c372820, + 0x34fb0: 0x6c372a20, 0x34fb1: 0x6c372c20, 0x34fb2: 0x6c372e20, 0x34fb3: 0x6c373020, + 0x34fb4: 0x6c373220, 0x34fb5: 0x6c373420, 0x34fb6: 0x6c373620, 0x34fb7: 0x6c373820, + 0x34fb8: 0x6c373a20, 0x34fb9: 0x6c373c20, 0x34fba: 0x6c373e20, 0x34fbb: 0x6c374020, + 0x34fbc: 0x6c374220, 0x34fbd: 0x6c374420, 0x34fbe: 0x6c374620, 0x34fbf: 0x6c374820, + // Block 0xd3f, offset 0x34fc0 + 0x34fc0: 0x6c374a20, 0x34fc1: 0x6c374c20, 0x34fc2: 0x6c374e20, 0x34fc3: 0x6c375020, + 0x34fc4: 0x6c375220, 0x34fc5: 0x6c375420, 0x34fc6: 0x6c375620, 0x34fc7: 0x6c375820, + 0x34fc8: 0x6c525420, 0x34fc9: 0x6c525620, 0x34fca: 0x6c525820, 0x34fcb: 0x6c525a20, + 0x34fcc: 0x6c525c20, 0x34fcd: 0x6c525e20, 0x34fce: 0x6c526020, 0x34fcf: 0x6c526220, + 0x34fd0: 0x6c526420, 0x34fd1: 0x6c526620, 0x34fd2: 0x6c526820, 0x34fd3: 0x6c526a20, + 0x34fd4: 0x6c526c20, 0x34fd5: 0x6c526e20, 0x34fd6: 0x6c527020, 0x34fd7: 0x6c527220, + 0x34fd8: 0x6c527420, 0x34fd9: 0x6c527620, 0x34fda: 0x6c527820, 0x34fdb: 0x6c527a20, + 0x34fdc: 0x6c527c20, 0x34fdd: 0x6c527e20, 0x34fde: 0x6c528020, 0x34fdf: 0x6c528220, + 0x34fe0: 0x6c528420, 0x34fe1: 0x6c528620, 0x34fe2: 0x6c528820, 0x34fe3: 0x6c528a20, + 0x34fe4: 0x6c528c20, 0x34fe5: 0x6c528e20, 0x34fe6: 0x6c529020, 0x34fe7: 0x6c529220, + 0x34fe8: 0x6c529420, 0x34fe9: 0x6c529620, 0x34fea: 0x6c529820, 0x34feb: 0x6c529a20, + 0x34fec: 0x6c529c20, 0x34fed: 0x6c529e20, 0x34fee: 0x6c52a020, 0x34fef: 0x6c52a220, + 0x34ff0: 0x6c52a420, 0x34ff1: 0x6c52a620, 0x34ff2: 0x6c52a820, 0x34ff3: 0x6c52aa20, + 0x34ff4: 0x6c52ac20, 0x34ff5: 0x6c749820, 0x34ff6: 0x6c749a20, 0x34ff7: 0x6c749c20, + 0x34ff8: 0x6c749e20, 0x34ff9: 0x6c74a020, 0x34ffa: 0x6c74a220, 0x34ffb: 0x6c74a420, + 0x34ffc: 0x6c74a620, 0x34ffd: 0x6c74a820, 0x34ffe: 0x6c74aa20, 0x34fff: 0x6c74ac20, + // Block 0xd40, offset 0x35000 + 0x35000: 0x6c74ae20, 0x35001: 0x6c74b020, 0x35002: 0x6c74b220, 0x35003: 0x6c74b420, + 0x35004: 0x6c74b620, 0x35005: 0x6c74b820, 0x35006: 0x6c74ba20, 0x35007: 0x6c74bc20, + 0x35008: 0x6c74be20, 0x35009: 0x6c74c020, 0x3500a: 0x6c74c220, 0x3500b: 0x6c74c420, + 0x3500c: 0x6c74c620, 0x3500d: 0x6c74c820, 0x3500e: 0x6c74ca20, 0x3500f: 0x6c74cc20, + 0x35010: 0x6c74ce20, 0x35011: 0x6c74d020, 0x35012: 0x6c74d220, 0x35013: 0x6c74d420, + 0x35014: 0x6c74d620, 0x35015: 0x6c74d820, 0x35016: 0x6c74da20, 0x35017: 0x6c74dc20, + 0x35018: 0x6c74de20, 0x35019: 0x6c74e020, 0x3501a: 0x6c74e220, 0x3501b: 0x6c74e420, + 0x3501c: 0x6c74e620, 0x3501d: 0x6c74e820, 0x3501e: 0x6c74ea20, 0x3501f: 0x6c74ec20, + 0x35020: 0x6c74ee20, 0x35021: 0x6c74f020, 0x35022: 0x6c74f220, 0x35023: 0x6c74f420, + 0x35024: 0x6c74f620, 0x35025: 0x6c74f820, 0x35026: 0x6c74fa20, 0x35027: 0x6c6a4c20, + 0x35028: 0x6c74fc20, 0x35029: 0x6c74fe20, 0x3502a: 0x6c750020, 0x3502b: 0x6c750220, + 0x3502c: 0x6c750420, 0x3502d: 0x6c750620, 0x3502e: 0x6c750820, 0x3502f: 0x6c750a20, + 0x35030: 0x6c750c20, 0x35031: 0x6c750e20, 0x35032: 0x6c751020, 0x35033: 0x6c751220, + 0x35034: 0x6c751420, 0x35035: 0x6c751620, 0x35036: 0x6c751820, 0x35037: 0x6c751a20, + 0x35038: 0x6c751c20, 0x35039: 0x6c751e20, 0x3503a: 0x6c752020, 0x3503b: 0x6c752220, + 0x3503c: 0x6c752420, 0x3503d: 0x6c752620, 0x3503e: 0x6c752820, 0x3503f: 0x6c9d0220, + // Block 0xd41, offset 0x35040 + 0x35040: 0x6c9d0420, 0x35041: 0x6c9d0620, 0x35042: 0x6c9d0820, 0x35043: 0x6c9d0a20, + 0x35044: 0x6c9d0c20, 0x35045: 0x6c9d0e20, 0x35046: 0x6c9d1020, 0x35047: 0x6c9d1220, + 0x35048: 0x6c9d1420, 0x35049: 0x6c9d1620, 0x3504a: 0x6c9d1820, 0x3504b: 0x6c9d1a20, + 0x3504c: 0x6c9d1c20, 0x3504d: 0x6c9d1e20, 0x3504e: 0x6c9d2020, 0x3504f: 0x6c9d2220, + 0x35050: 0x6c9d2420, 0x35051: 0x6c9d2620, 0x35052: 0x6c9d2820, 0x35053: 0x6c9d2a20, + 0x35054: 0x6c9d2c20, 0x35055: 0x6c9d2e20, 0x35056: 0x6c9d3020, 0x35057: 0x6c9d3220, + 0x35058: 0x6c9d3420, 0x35059: 0x6c9d3620, 0x3505a: 0x6c9d3820, 0x3505b: 0x6c9d3a20, + 0x3505c: 0x6c9d3c20, 0x3505d: 0x6c9d3e20, 0x3505e: 0x6c9d4020, 0x3505f: 0x6c9d4220, + 0x35060: 0x6c9d4420, 0x35061: 0x6c9d4620, 0x35062: 0x6c9d4820, 0x35063: 0x6c9d4a20, + 0x35064: 0x6c9d4c20, 0x35065: 0x6c9d4e20, 0x35066: 0x6c9d5020, 0x35067: 0x6c9d5220, + 0x35068: 0x6c9d5420, 0x35069: 0x6c9d5620, 0x3506a: 0x6c9d5820, 0x3506b: 0x6c9d5a20, + 0x3506c: 0x6c9d5c20, 0x3506d: 0x6c9d5e20, 0x3506e: 0x6c9d6020, 0x3506f: 0x6c9d6220, + 0x35070: 0x6c9d6420, 0x35071: 0x6c9d6620, 0x35072: 0x6c9d6820, 0x35073: 0x6c9d6a20, + 0x35074: 0x6c9d6c20, 0x35075: 0x6c9d6e20, 0x35076: 0x6c9d7020, 0x35077: 0x6c9d7220, + 0x35078: 0x6c9d7420, 0x35079: 0x6c9d7620, 0x3507a: 0x6c9d7820, 0x3507b: 0x6c9d7a20, + 0x3507c: 0x6c9d7c20, 0x3507d: 0x6c9d7e20, 0x3507e: 0x6c9d8020, 0x3507f: 0x6c9d8220, + // Block 0xd42, offset 0x35080 + 0x35080: 0x6c9d8420, 0x35081: 0x6cc98620, 0x35082: 0x6cc98820, 0x35083: 0x6cc98a20, + 0x35084: 0x6cc98c20, 0x35085: 0x6cc98e20, 0x35086: 0x6cc99020, 0x35087: 0x6cc99220, + 0x35088: 0x6cc99420, 0x35089: 0x6cc99620, 0x3508a: 0x6cc99820, 0x3508b: 0x6cc99a20, + 0x3508c: 0x6cc99c20, 0x3508d: 0x6cc99e20, 0x3508e: 0x6cc9a020, 0x3508f: 0x6cc9a220, + 0x35090: 0x6cc9a420, 0x35091: 0x6cc9a620, 0x35092: 0x6cc9a820, 0x35093: 0x6cc9aa20, + 0x35094: 0x6cc9ac20, 0x35095: 0x6cc9ae20, 0x35096: 0x6cc9b020, 0x35097: 0x6cc9b220, + 0x35098: 0x6cc9b420, 0x35099: 0x6cc9b620, 0x3509a: 0x6cc9b820, 0x3509b: 0x6cc9ba20, + 0x3509c: 0x6cc9bc20, 0x3509d: 0x6cc9be20, 0x3509e: 0x6cc9c020, 0x3509f: 0x6cc9c220, + 0x350a0: 0x6cc9c420, 0x350a1: 0x6cc9c620, 0x350a2: 0x6cc9c820, 0x350a3: 0x6cc9ca20, + 0x350a4: 0x6cc9cc20, 0x350a5: 0x6cc9ce20, 0x350a6: 0x6cc9d020, 0x350a7: 0x6cc9d220, + 0x350a8: 0x6cc9d420, 0x350a9: 0x6cc9d620, 0x350aa: 0x6cc9d820, 0x350ab: 0x6cc9da20, + 0x350ac: 0x6cc9dc20, 0x350ad: 0x6cc9de20, 0x350ae: 0x6cc9e020, 0x350af: 0x6cc9e220, + 0x350b0: 0x6cc9e420, 0x350b1: 0x6cc9e620, 0x350b2: 0x6cc9e820, 0x350b3: 0x6cc9ea20, + 0x350b4: 0x6cc9ec20, 0x350b5: 0x6cc9ee20, 0x350b6: 0x6cc9f020, 0x350b7: 0x6cc9f220, + 0x350b8: 0x6cc9f420, 0x350b9: 0x6cc9f620, 0x350ba: 0x6cc9f820, 0x350bb: 0x6cc9fa20, + 0x350bc: 0x6cc9fc20, 0x350bd: 0x6cc9fe20, 0x350be: 0x6cca0020, 0x350bf: 0x6cca0220, + // Block 0xd43, offset 0x350c0 + 0x350c0: 0x6cca0420, 0x350c1: 0x6cca0620, 0x350c2: 0x6cca0820, 0x350c3: 0x6cca0a20, + 0x350c4: 0x6cca0c20, 0x350c5: 0x6cca0e20, 0x350c6: 0x6cca1020, 0x350c7: 0x6cca1220, + 0x350c8: 0x6cca1420, 0x350c9: 0x6cca1620, 0x350ca: 0x6cca1820, 0x350cb: 0x6cca1a20, + 0x350cc: 0x6cca1c20, 0x350cd: 0x6cca1e20, 0x350ce: 0x6cca2020, 0x350cf: 0x6cca2220, + 0x350d0: 0x6cca2420, 0x350d1: 0x6cca2620, 0x350d2: 0x6cca2820, 0x350d3: 0x6cca2a20, + 0x350d4: 0x6cca2c20, 0x350d5: 0x6cca2e20, 0x350d6: 0x6cca3020, 0x350d7: 0x6cca3220, + 0x350d8: 0x6cca3420, 0x350d9: 0x6cca3620, 0x350da: 0x6cca3820, 0x350db: 0x6cca3a20, + 0x350dc: 0x6cca3c20, 0x350dd: 0x6cca3e20, 0x350de: 0x6cca4020, 0x350df: 0x6cca4220, + 0x350e0: 0x6cca4420, 0x350e1: 0x6cca4620, 0x350e2: 0x6cca4820, 0x350e3: 0x6cca4a20, + 0x350e4: 0x6cca4c20, 0x350e5: 0x6cca4e20, 0x350e6: 0x6cca5020, 0x350e7: 0x6cca5220, + 0x350e8: 0x6cca5420, 0x350e9: 0x6cca5620, 0x350ea: 0x6cca5820, 0x350eb: 0x6cca5a20, + 0x350ec: 0x6cca5c20, 0x350ed: 0x6cca5e20, 0x350ee: 0x6cca6020, 0x350ef: 0x6cca6220, + 0x350f0: 0x6cca6420, 0x350f1: 0x6cf79c20, 0x350f2: 0x6cf79e20, 0x350f3: 0x6cf7a020, + 0x350f4: 0x6cf7a220, 0x350f5: 0x6cf7a420, 0x350f6: 0x6cf7a620, 0x350f7: 0x6cf7a820, + 0x350f8: 0x6cf7aa20, 0x350f9: 0x6cf7ac20, 0x350fa: 0x6cf7ae20, 0x350fb: 0x6cf7b020, + 0x350fc: 0x6cf7b220, 0x350fd: 0x6cf7b420, 0x350fe: 0x6cf7b620, 0x350ff: 0x6cf7b820, + // Block 0xd44, offset 0x35100 + 0x35100: 0x6cf7ba20, 0x35101: 0x6cf7bc20, 0x35102: 0x6cf7be20, 0x35103: 0x6cf7c020, + 0x35104: 0x6cf7c220, 0x35105: 0x6cf7c420, 0x35106: 0x6cf7c620, 0x35107: 0x6cf7c820, + 0x35108: 0x6cf7ca20, 0x35109: 0x6cf7cc20, 0x3510a: 0x6cf7ce20, 0x3510b: 0x6cf7d020, + 0x3510c: 0x6cf7d220, 0x3510d: 0x6cf7d420, 0x3510e: 0x6cf7d620, 0x3510f: 0x6cf7d820, + 0x35110: 0x6cf7da20, 0x35111: 0x6cf7dc20, 0x35112: 0x6cf7de20, 0x35113: 0x6cf7e020, + 0x35114: 0x6cf7e220, 0x35115: 0x6cf7e420, 0x35116: 0x6cf7e620, 0x35117: 0x6cf7e820, + 0x35118: 0x6cf7ea20, 0x35119: 0x6cf7ec20, 0x3511a: 0x6cf7ee20, 0x3511b: 0x6cf7f020, + 0x3511c: 0x6cf7f220, 0x3511d: 0x6cf7f420, 0x3511e: 0x6cf7f620, 0x3511f: 0x6cf7f820, + 0x35120: 0x6cf7fa20, 0x35121: 0x6cf7fc20, 0x35122: 0x6cf7fe20, 0x35123: 0x6cf80020, + 0x35124: 0x6d26fa20, 0x35125: 0x6cf80220, 0x35126: 0x6cf80420, 0x35127: 0x6cf80620, + 0x35128: 0x6cf80820, 0x35129: 0x6cf80a20, 0x3512a: 0x6cf80c20, 0x3512b: 0x6cf80e20, + 0x3512c: 0x6cf81020, 0x3512d: 0x6cf81220, 0x3512e: 0x6cf81420, 0x3512f: 0x6cf81620, + 0x35130: 0x6cf81820, 0x35131: 0x6cf81a20, 0x35132: 0x6cf81c20, 0x35133: 0x6cf81e20, + 0x35134: 0x6cf82020, 0x35135: 0x6cf82220, 0x35136: 0x6cf82420, 0x35137: 0x6cf82620, + 0x35138: 0x6cf82820, 0x35139: 0x6cf82a20, 0x3513a: 0x6cf82c20, 0x3513b: 0x6cf82e20, + 0x3513c: 0x6cf83020, 0x3513d: 0x6cf83220, 0x3513e: 0x6cf83420, 0x3513f: 0x6cf83620, + // Block 0xd45, offset 0x35140 + 0x35140: 0x6cf83820, 0x35141: 0x6cf83a20, 0x35142: 0x6cf83c20, 0x35143: 0x6cf83e20, + 0x35144: 0x6cf84020, 0x35145: 0x6cf84220, 0x35146: 0x6cf84420, 0x35147: 0x6cf84620, + 0x35148: 0x6cf84820, 0x35149: 0x6cf84a20, 0x3514a: 0x6cf84c20, 0x3514b: 0x6cf84e20, + 0x3514c: 0x6cf85020, 0x3514d: 0x6cf85220, 0x3514e: 0x6cf85420, 0x3514f: 0x6cf85620, + 0x35150: 0x6cf85820, 0x35151: 0x6cf85a20, 0x35152: 0x6cf85c20, 0x35153: 0x6cf85e20, + 0x35154: 0x6cf86020, 0x35155: 0x6cf86220, 0x35156: 0x6cf86420, 0x35157: 0x6cf86620, + 0x35158: 0x6cf86820, 0x35159: 0x6cf86a20, 0x3515a: 0x6cf86c20, 0x3515b: 0x6cf86e20, + 0x3515c: 0x6cf87020, 0x3515d: 0x6cf87220, 0x3515e: 0x6cf87420, 0x3515f: 0x6cf87620, + 0x35160: 0x6cf87820, 0x35161: 0x6cf87a20, 0x35162: 0x6cf87c20, 0x35163: 0x6cf87e20, + 0x35164: 0x6cf88020, 0x35165: 0x6cf88220, 0x35166: 0x6cf88420, 0x35167: 0x6cf88620, + 0x35168: 0x6cf88820, 0x35169: 0x6cf88a20, 0x3516a: 0x6d26fc20, 0x3516b: 0x6d26fe20, + 0x3516c: 0x6d270020, 0x3516d: 0x6d270220, 0x3516e: 0x6d270420, 0x3516f: 0x6d270620, + 0x35170: 0x6d270820, 0x35171: 0x6d270a20, 0x35172: 0x6d270c20, 0x35173: 0x6d270e20, + 0x35174: 0x6d271020, 0x35175: 0x6d271220, 0x35176: 0x6d271420, 0x35177: 0x6d271620, + 0x35178: 0x6d271820, 0x35179: 0x6d271a20, 0x3517a: 0x6d271c20, 0x3517b: 0x6d271e20, + 0x3517c: 0x6d272020, 0x3517d: 0x6d272220, 0x3517e: 0x6d272420, 0x3517f: 0x6d272620, + // Block 0xd46, offset 0x35180 + 0x35180: 0x6d272820, 0x35181: 0x6d272a20, 0x35182: 0x6d272c20, 0x35183: 0x6d272e20, + 0x35184: 0x6d273020, 0x35185: 0x6d273220, 0x35186: 0x6d273420, 0x35187: 0x6d273620, + 0x35188: 0x6d273820, 0x35189: 0x6d273a20, 0x3518a: 0x6d273c20, 0x3518b: 0x6d273e20, + 0x3518c: 0x6d274020, 0x3518d: 0x6d274220, 0x3518e: 0x6d274420, 0x3518f: 0x6d274620, + 0x35190: 0x6d274820, 0x35191: 0x6d274a20, 0x35192: 0x6d274c20, 0x35193: 0x6d274e20, + 0x35194: 0x6d275020, 0x35195: 0x6d275220, 0x35196: 0x6d275420, 0x35197: 0x6d275620, + 0x35198: 0x6d275820, 0x35199: 0x6d275a20, 0x3519a: 0x6d275c20, 0x3519b: 0x6d275e20, + 0x3519c: 0x6d276020, 0x3519d: 0x6d276220, 0x3519e: 0x6d276420, 0x3519f: 0x6d276620, + 0x351a0: 0x6d276820, 0x351a1: 0x6d276a20, 0x351a2: 0x6d276c20, 0x351a3: 0x6d276e20, + 0x351a4: 0x6d277020, 0x351a5: 0x6d277220, 0x351a6: 0x6d277420, 0x351a7: 0x6d277620, + 0x351a8: 0x6d277820, 0x351a9: 0x6d277a20, 0x351aa: 0x6d277c20, 0x351ab: 0x6d277e20, + 0x351ac: 0x6d278020, 0x351ad: 0x6d278220, 0x351ae: 0x6d278420, 0x351af: 0x6d278620, + 0x351b0: 0x6d278820, 0x351b1: 0x6d278a20, 0x351b2: 0x6d278c20, 0x351b3: 0x6d278e20, + 0x351b4: 0x6d279020, 0x351b5: 0x6d279220, 0x351b6: 0x6d279420, 0x351b7: 0x6d279620, + 0x351b8: 0x6d279820, 0x351b9: 0x6d279a20, 0x351ba: 0x6d279c20, 0x351bb: 0x6d279e20, + 0x351bc: 0x6d27a020, 0x351bd: 0x6d27a220, 0x351be: 0x6d27a420, 0x351bf: 0x6d27a620, + // Block 0xd47, offset 0x351c0 + 0x351c0: 0x6d27a820, 0x351c1: 0x6d27aa20, 0x351c2: 0x6d27ac20, 0x351c3: 0x6d27ae20, + 0x351c4: 0x6d27b020, 0x351c5: 0x6d27b220, 0x351c6: 0x6d27b420, 0x351c7: 0x6d27b620, + 0x351c8: 0x6d27b820, 0x351c9: 0x6d27ba20, 0x351ca: 0x6d27bc20, 0x351cb: 0x6d27be20, + 0x351cc: 0x6d27c020, 0x351cd: 0x6d27c220, 0x351ce: 0x6d27c420, 0x351cf: 0x6d27c620, + 0x351d0: 0x6d27c820, 0x351d1: 0x6d27ca20, 0x351d2: 0x6d27cc20, 0x351d3: 0x6d27ce20, + 0x351d4: 0x6d27d020, 0x351d5: 0x6d546220, 0x351d6: 0x6d546420, 0x351d7: 0x6d546620, + 0x351d8: 0x6d546820, 0x351d9: 0x6d546a20, 0x351da: 0x6d546c20, 0x351db: 0x6d546e20, + 0x351dc: 0x6d547020, 0x351dd: 0x6d547220, 0x351de: 0x6d547420, 0x351df: 0x6d547620, + 0x351e0: 0x6d547820, 0x351e1: 0x6d547a20, 0x351e2: 0x6d547c20, 0x351e3: 0x6d547e20, + 0x351e4: 0x6d548020, 0x351e5: 0x6d548220, 0x351e6: 0x6d548420, 0x351e7: 0x6d548620, + 0x351e8: 0x6d548820, 0x351e9: 0x6d548a20, 0x351ea: 0x6d548c20, 0x351eb: 0x6d548e20, + 0x351ec: 0x6d549020, 0x351ed: 0x6d549220, 0x351ee: 0x6d549420, 0x351ef: 0x6d549620, + 0x351f0: 0x6d549820, 0x351f1: 0x6d549a20, 0x351f2: 0x6d549c20, 0x351f3: 0x6d549e20, + 0x351f4: 0x6d54a020, 0x351f5: 0x6d54a220, 0x351f6: 0x6d54a420, 0x351f7: 0x6d54a620, + 0x351f8: 0x6d54a820, 0x351f9: 0x6d54aa20, 0x351fa: 0x6d54ac20, 0x351fb: 0x6d54ae20, + 0x351fc: 0x6d54b020, 0x351fd: 0x6d54b220, 0x351fe: 0x6d54b420, 0x351ff: 0x6d54b620, + // Block 0xd48, offset 0x35200 + 0x35200: 0x6d54b820, 0x35201: 0x6d54ba20, 0x35202: 0x6d54bc20, 0x35203: 0x6d54be20, + 0x35204: 0x6d54c020, 0x35205: 0x6d54c220, 0x35206: 0x6d54c420, 0x35207: 0x6d54c620, + 0x35208: 0x6d54c820, 0x35209: 0x6d54ca20, 0x3520a: 0x6d54cc20, 0x3520b: 0x6d54ce20, + 0x3520c: 0x6d54d020, 0x3520d: 0x6d54d220, 0x3520e: 0x6d54d420, 0x3520f: 0x6d54d620, + 0x35210: 0x6d54d820, 0x35211: 0x6d54da20, 0x35212: 0x6d7fc220, 0x35213: 0x6d54dc20, + 0x35214: 0x6d54de20, 0x35215: 0x6d54e020, 0x35216: 0x6d54e220, 0x35217: 0x6d54e420, + 0x35218: 0x6d54e620, 0x35219: 0x6d54e820, 0x3521a: 0x6d54ea20, 0x3521b: 0x6d54ec20, + 0x3521c: 0x6d54ee20, 0x3521d: 0x6d54f020, 0x3521e: 0x6d54f220, 0x3521f: 0x6d54f420, + 0x35220: 0x6d54f620, 0x35221: 0x6d54f820, 0x35222: 0x6d54fa20, 0x35223: 0x6d54fc20, + 0x35224: 0x6d54fe20, 0x35225: 0x6d550020, 0x35226: 0x6d550220, 0x35227: 0x6d550420, + 0x35228: 0x6d550620, 0x35229: 0x6d550820, 0x3522a: 0x6d550a20, 0x3522b: 0x6d550c20, + 0x3522c: 0x6d550e20, 0x3522d: 0x6d551020, 0x3522e: 0x6d551220, 0x3522f: 0x6d551420, + 0x35230: 0x6d551620, 0x35231: 0x6d551820, 0x35232: 0x6d551a20, 0x35233: 0x6d551c20, + 0x35234: 0x6d551e20, 0x35235: 0x6d552020, 0x35236: 0x6d552220, 0x35237: 0x6d552420, + 0x35238: 0x6d552620, 0x35239: 0x6d552820, 0x3523a: 0x6d552a20, 0x3523b: 0x6d7fc420, + 0x3523c: 0x6d7fc620, 0x3523d: 0x6d7fc820, 0x3523e: 0x6d7fca20, 0x3523f: 0x6d7fcc20, + // Block 0xd49, offset 0x35240 + 0x35240: 0x6d7fce20, 0x35241: 0x6d7fd020, 0x35242: 0x6d7fd220, 0x35243: 0x6d7fd420, + 0x35244: 0x6d7fd620, 0x35245: 0x6d7fd820, 0x35246: 0x6d7fda20, 0x35247: 0x6d7fdc20, + 0x35248: 0x6d7fde20, 0x35249: 0x6d7fe020, 0x3524a: 0x6d7fe220, 0x3524b: 0x6d7fe420, + 0x3524c: 0x6d7fe620, 0x3524d: 0x6d7fe820, 0x3524e: 0x6d7fea20, 0x3524f: 0x6d7fec20, + 0x35250: 0x6d7fee20, 0x35251: 0x6d7ff020, 0x35252: 0x6d7ff220, 0x35253: 0x6d7ff420, + 0x35254: 0x6d7ff620, 0x35255: 0x6d7ff820, 0x35256: 0x6d7ffa20, 0x35257: 0x6d7ffc20, + 0x35258: 0x6d7ffe20, 0x35259: 0x6d800020, 0x3525a: 0x6d800220, 0x3525b: 0x6d800420, + 0x3525c: 0x6d800620, 0x3525d: 0x6d800820, 0x3525e: 0x6d800a20, 0x3525f: 0x6d800c20, + 0x35260: 0x6d800e20, 0x35261: 0x6d801020, 0x35262: 0x6d801220, 0x35263: 0x6d801420, + 0x35264: 0x6d801620, 0x35265: 0x6d801820, 0x35266: 0x6d801a20, 0x35267: 0x6d801c20, + 0x35268: 0x6d801e20, 0x35269: 0x6d802020, 0x3526a: 0x6d802220, 0x3526b: 0x6d802420, + 0x3526c: 0x6d802620, 0x3526d: 0x6d802820, 0x3526e: 0x6d802a20, 0x3526f: 0x6d802c20, + 0x35270: 0x6d802e20, 0x35271: 0x6d803020, 0x35272: 0x6d803220, 0x35273: 0x6d803420, + 0x35274: 0x6d803620, 0x35275: 0x6d803820, 0x35276: 0x6d803a20, 0x35277: 0x6d803c20, + 0x35278: 0x6d803e20, 0x35279: 0x6d804020, 0x3527a: 0x6d804220, 0x3527b: 0x6d804420, + 0x3527c: 0x6d804620, 0x3527d: 0x6d804820, 0x3527e: 0x6d804a20, 0x3527f: 0x6d804c20, + // Block 0xd4a, offset 0x35280 + 0x35280: 0x6d804e20, 0x35281: 0x6d805020, 0x35282: 0x6d805220, 0x35283: 0x6d805420, + 0x35284: 0x6d805620, 0x35285: 0x6d805820, 0x35286: 0x6d805a20, 0x35287: 0x6d805c20, + 0x35288: 0x6d805e20, 0x35289: 0x6d806020, 0x3528a: 0x6d806220, 0x3528b: 0x6d806420, + 0x3528c: 0x6d806620, 0x3528d: 0x6d806820, 0x3528e: 0x6d806a20, 0x3528f: 0x6d806c20, + 0x35290: 0x6d806e20, 0x35291: 0x6d807020, 0x35292: 0x6d807220, 0x35293: 0x6d807420, + 0x35294: 0x6d807620, 0x35295: 0x6d807820, 0x35296: 0x6d807a20, 0x35297: 0x6d807c20, + 0x35298: 0x6d807e20, 0x35299: 0x6d808020, 0x3529a: 0x6d808220, 0x3529b: 0x6d808420, + 0x3529c: 0x6d808620, 0x3529d: 0x6d808820, 0x3529e: 0x6d808a20, 0x3529f: 0x6d808c20, + 0x352a0: 0x6d808e20, 0x352a1: 0x6d809020, 0x352a2: 0x6d809220, 0x352a3: 0x6d809420, + 0x352a4: 0x6d809620, 0x352a5: 0x6d809820, 0x352a6: 0x6d809a20, 0x352a7: 0x6d809c20, + 0x352a8: 0x6d809e20, 0x352a9: 0x6d80a020, 0x352aa: 0x6d80a220, 0x352ab: 0x6d80a420, + 0x352ac: 0x6d80a620, 0x352ad: 0x6d80a820, 0x352ae: 0x6d80aa20, 0x352af: 0x6d80ac20, + 0x352b0: 0x6da63820, 0x352b1: 0x6da63a20, 0x352b2: 0x6da63c20, 0x352b3: 0x6da63e20, + 0x352b4: 0x6da64020, 0x352b5: 0x6da64220, 0x352b6: 0x6da64420, 0x352b7: 0x6da64620, + 0x352b8: 0x6da64820, 0x352b9: 0x6da64a20, 0x352ba: 0x6da64c20, 0x352bb: 0x6da64e20, + 0x352bc: 0x6da65020, 0x352bd: 0x6da65220, 0x352be: 0x6da65420, 0x352bf: 0x6da65620, + // Block 0xd4b, offset 0x352c0 + 0x352c0: 0x6da65820, 0x352c1: 0x6da65a20, 0x352c2: 0x6da65c20, 0x352c3: 0x6da65e20, + 0x352c4: 0x6da66020, 0x352c5: 0x6da66220, 0x352c6: 0x6da66420, 0x352c7: 0x6da66620, + 0x352c8: 0x6da66820, 0x352c9: 0x6da66a20, 0x352ca: 0x6da66c20, 0x352cb: 0x6da66e20, + 0x352cc: 0x6da67020, 0x352cd: 0x6da67220, 0x352ce: 0x6da67420, 0x352cf: 0x6da67620, + 0x352d0: 0x6da67820, 0x352d1: 0x6da67a20, 0x352d2: 0x6da67c20, 0x352d3: 0x6da67e20, + 0x352d4: 0x6da68020, 0x352d5: 0x6da68220, 0x352d6: 0x6da68420, 0x352d7: 0x6da68620, + 0x352d8: 0x6da68820, 0x352d9: 0x6da68a20, 0x352da: 0x6da68c20, 0x352db: 0x6da68e20, + 0x352dc: 0x6da69020, 0x352dd: 0x6da69220, 0x352de: 0x6da69420, 0x352df: 0x6da69620, + 0x352e0: 0x6da69820, 0x352e1: 0x6da69a20, 0x352e2: 0x6d883220, 0x352e3: 0x6da69c20, + 0x352e4: 0x6da69e20, 0x352e5: 0x6da6a020, 0x352e6: 0x6da6a220, 0x352e7: 0x6da6a420, + 0x352e8: 0x6da6a620, 0x352e9: 0x6da6a820, 0x352ea: 0x6da6aa20, 0x352eb: 0x6da6ac20, + 0x352ec: 0x6da6ae20, 0x352ed: 0x6da6b020, 0x352ee: 0x6da6b220, 0x352ef: 0x6da6b420, + 0x352f0: 0x6da6b620, 0x352f1: 0x6da6b820, 0x352f2: 0x6da6ba20, 0x352f3: 0x6da6bc20, + 0x352f4: 0x6da6be20, 0x352f5: 0x6da6c020, 0x352f6: 0x6da6c220, 0x352f7: 0x6da6c420, + 0x352f8: 0x6da6c620, 0x352f9: 0x6da6c820, 0x352fa: 0x6da6ca20, 0x352fb: 0x6da6cc20, + 0x352fc: 0x6da6ce20, 0x352fd: 0x6da6d020, 0x352fe: 0x6da6d220, 0x352ff: 0x6da6d420, + // Block 0xd4c, offset 0x35300 + 0x35300: 0x6da6d620, 0x35301: 0x6dc7a220, 0x35302: 0x6dc7a420, 0x35303: 0x6dc7a620, + 0x35304: 0x6dc7a820, 0x35305: 0x6dc7aa20, 0x35306: 0x6dc7ac20, 0x35307: 0x6dc7ae20, + 0x35308: 0x6dc7b020, 0x35309: 0x6dc7b220, 0x3530a: 0x6dc7b420, 0x3530b: 0x6dc7b620, + 0x3530c: 0x6dc7b820, 0x3530d: 0x6dc7ba20, 0x3530e: 0x6dc7bc20, 0x3530f: 0x6dc7be20, + 0x35310: 0x6dc7c020, 0x35311: 0x6dc7c220, 0x35312: 0x6dc7c420, 0x35313: 0x6dc7c620, + 0x35314: 0x6dc7c820, 0x35315: 0x6dc7ca20, 0x35316: 0x6dc7cc20, 0x35317: 0x6dc7ce20, + 0x35318: 0x6dc7d020, 0x35319: 0x6de40020, 0x3531a: 0x6dc7d220, 0x3531b: 0x6dc7d420, + 0x3531c: 0x6dc7d620, 0x3531d: 0x6dc7d820, 0x3531e: 0x6dc7da20, 0x3531f: 0x6dc7dc20, + 0x35320: 0x6dc7de20, 0x35321: 0x6dc7e020, 0x35322: 0x6dc7e220, 0x35323: 0x6dc7e420, + 0x35324: 0x6dc7e620, 0x35325: 0x6dc7e820, 0x35326: 0x6dc7ea20, 0x35327: 0x6dc7ec20, + 0x35328: 0x6dc7ee20, 0x35329: 0x6dc7f020, 0x3532a: 0x6dc7f220, 0x3532b: 0x6dc7f420, + 0x3532c: 0x6dc7f620, 0x3532d: 0x6dc7f820, 0x3532e: 0x6dc7fa20, 0x3532f: 0x6dc7fc20, + 0x35330: 0x6dc7fe20, 0x35331: 0x6dc80020, 0x35332: 0x6dc80220, 0x35333: 0x6dc80420, + 0x35334: 0x6dc80620, 0x35335: 0x6dc80820, 0x35336: 0x6dc80a20, 0x35337: 0x6dc80c20, + 0x35338: 0x6dc80e20, 0x35339: 0x6dc81020, 0x3533a: 0x6dc81220, 0x3533b: 0x6dc81420, + 0x3533c: 0x6dc81620, 0x3533d: 0x6dc81820, 0x3533e: 0x6dc81a20, 0x3533f: 0x6dc81c20, + // Block 0xd4d, offset 0x35340 + 0x35340: 0x6dc81e20, 0x35341: 0x6dc82020, 0x35342: 0x6dc82220, 0x35343: 0x6dc82420, + 0x35344: 0x6dc82620, 0x35345: 0x6dc82820, 0x35346: 0x6dc82a20, 0x35347: 0x6dc82c20, + 0x35348: 0x6dc82e20, 0x35349: 0x6dc83020, 0x3534a: 0x6dc83220, 0x3534b: 0x6dc83420, + 0x3534c: 0x6dc83620, 0x3534d: 0x6dc83820, 0x3534e: 0x6dc83a20, 0x3534f: 0x6dcc7220, + 0x35350: 0x6de40220, 0x35351: 0x6de40420, 0x35352: 0x6de40620, 0x35353: 0x6de40820, + 0x35354: 0x6de40a20, 0x35355: 0x6de40c20, 0x35356: 0x6de40e20, 0x35357: 0x6de41020, + 0x35358: 0x6de41220, 0x35359: 0x6de41420, 0x3535a: 0x6de41620, 0x3535b: 0x6de41820, + 0x3535c: 0x6de41a20, 0x3535d: 0x6de41c20, 0x3535e: 0x6de41e20, 0x3535f: 0x6de42020, + 0x35360: 0x6de42220, 0x35361: 0x6de42420, 0x35362: 0x6de42620, 0x35363: 0x6de42820, + 0x35364: 0x6de42a20, 0x35365: 0x6de42c20, 0x35366: 0x6de42e20, 0x35367: 0x6de43020, + 0x35368: 0x6de43220, 0x35369: 0x6de43420, 0x3536a: 0x6de43620, 0x3536b: 0x6de43820, + 0x3536c: 0x6de43a20, 0x3536d: 0x6de43c20, 0x3536e: 0x6de43e20, 0x3536f: 0x6de44020, + 0x35370: 0x6de44220, 0x35371: 0x6de44420, 0x35372: 0x6de44620, 0x35373: 0x6de44820, + 0x35374: 0x6de44a20, 0x35375: 0x6de44c20, 0x35376: 0x6de44e20, 0x35377: 0x6de45020, + 0x35378: 0x6de45220, 0x35379: 0x6de45420, 0x3537a: 0x6de45620, 0x3537b: 0x6de45820, + 0x3537c: 0x6de45a20, 0x3537d: 0x6de45c20, 0x3537e: 0x6de45e20, 0x3537f: 0x6de46020, + // Block 0xd4e, offset 0x35380 + 0x35380: 0x6de46220, 0x35381: 0x6de46420, 0x35382: 0x6de46620, 0x35383: 0x6de46820, + 0x35384: 0x6dfb3a20, 0x35385: 0x6dfb3c20, 0x35386: 0x6dfb3e20, 0x35387: 0x6dfb4020, + 0x35388: 0x6dfb4220, 0x35389: 0x6dfb4420, 0x3538a: 0x6dfb4620, 0x3538b: 0x6dfb4820, + 0x3538c: 0x6dfb4a20, 0x3538d: 0x6dfb4c20, 0x3538e: 0x6dfb4e20, 0x3538f: 0x6dfb5020, + 0x35390: 0x6dfb5220, 0x35391: 0x6de46a20, 0x35392: 0x6dfb5420, 0x35393: 0x6dfb5620, + 0x35394: 0x6dfb5820, 0x35395: 0x6dfb5a20, 0x35396: 0x6dfb5c20, 0x35397: 0x6dfb5e20, + 0x35398: 0x6dfb6020, 0x35399: 0x6dfb6220, 0x3539a: 0x6dfb6420, 0x3539b: 0x6dfb6620, + 0x3539c: 0x6dfb6820, 0x3539d: 0x6dfb6a20, 0x3539e: 0x6dfb6c20, 0x3539f: 0x6dfb6e20, + 0x353a0: 0x6dfb7020, 0x353a1: 0x6dfb7220, 0x353a2: 0x6dfb7420, 0x353a3: 0x6dfb7620, + 0x353a4: 0x6dfb7820, 0x353a5: 0x6dfb7a20, 0x353a6: 0x6dfb7c20, 0x353a7: 0x6dfb7e20, + 0x353a8: 0x6dfb8020, 0x353a9: 0x6dfb8220, 0x353aa: 0x6dfb8420, 0x353ab: 0x6dfb8620, + 0x353ac: 0x6dfb8820, 0x353ad: 0x6dfb8a20, 0x353ae: 0x6dfb8c20, 0x353af: 0x6e0e7e20, + 0x353b0: 0x6e0e8020, 0x353b1: 0x6e0e8220, 0x353b2: 0x6e0e8420, 0x353b3: 0x6e0e8620, + 0x353b4: 0x6e0e8820, 0x353b5: 0x6e0e8a20, 0x353b6: 0x6e0e8c20, 0x353b7: 0x6e0e8e20, + 0x353b8: 0x6e0e9020, 0x353b9: 0x6e0e9220, 0x353ba: 0x6e0e9420, 0x353bb: 0x6e0e9620, + 0x353bc: 0x6e0e9820, 0x353bd: 0x6e0e9a20, 0x353be: 0x6e0e9c20, 0x353bf: 0x6e0e9e20, + // Block 0xd4f, offset 0x353c0 + 0x353c0: 0x6e0ea020, 0x353c1: 0x6e0ea220, 0x353c2: 0x6e1dc820, 0x353c3: 0x6e0ea420, + 0x353c4: 0x6e0ea620, 0x353c5: 0x6e0ea820, 0x353c6: 0x6e0eaa20, 0x353c7: 0x6e0eac20, + 0x353c8: 0x6e0eae20, 0x353c9: 0x6e0eb020, 0x353ca: 0x6e0eb220, 0x353cb: 0x6e0eb420, + 0x353cc: 0x6e0eb620, 0x353cd: 0x6e0eb820, 0x353ce: 0x6e0eba20, 0x353cf: 0x6e0ebc20, + 0x353d0: 0x6e0ebe20, 0x353d1: 0x6e0ec020, 0x353d2: 0x6e0ec220, 0x353d3: 0x6e0ec420, + 0x353d4: 0x6e0ec620, 0x353d5: 0x6e0ec820, 0x353d6: 0x6e0eca20, 0x353d7: 0x6e0ecc20, + 0x353d8: 0x6e0ece20, 0x353d9: 0x6e1dca20, 0x353da: 0x6e1dcc20, 0x353db: 0x6e1dce20, + 0x353dc: 0x6e1dd020, 0x353dd: 0x6e1dd220, 0x353de: 0x6e1dd420, 0x353df: 0x6e1dd620, + 0x353e0: 0x6e1dd820, 0x353e1: 0x6e1dda20, 0x353e2: 0x6e1ddc20, 0x353e3: 0x6e1dde20, + 0x353e4: 0x6e1de020, 0x353e5: 0x6e1de220, 0x353e6: 0x6e1de420, 0x353e7: 0x6e1de620, + 0x353e8: 0x6e1de820, 0x353e9: 0x6e1dea20, 0x353ea: 0x6e1dec20, 0x353eb: 0x6e1dee20, + 0x353ec: 0x6e1df020, 0x353ed: 0x6e1df220, 0x353ee: 0x6e1df420, 0x353ef: 0x6e1df620, + 0x353f0: 0x6e1df820, 0x353f1: 0x6e1dfa20, 0x353f2: 0x6e1dfc20, 0x353f3: 0x6e1dfe20, + 0x353f4: 0x6e1e0020, 0x353f5: 0x6e1e0220, 0x353f6: 0x6e1e0420, 0x353f7: 0x6e294a20, + 0x353f8: 0x6e294c20, 0x353f9: 0x6e294e20, 0x353fa: 0x6e295020, 0x353fb: 0x6e295220, + 0x353fc: 0x6e295420, 0x353fd: 0x6e295620, 0x353fe: 0x6e295820, 0x353ff: 0x6e295a20, + // Block 0xd50, offset 0x35400 + 0x35400: 0x6e295c20, 0x35401: 0x6e295e20, 0x35402: 0x6e296020, 0x35403: 0x6e296220, + 0x35404: 0x6e296420, 0x35405: 0x6e296620, 0x35406: 0x6e296820, 0x35407: 0x6e296a20, + 0x35408: 0x6e296c20, 0x35409: 0x6e296e20, 0x3540a: 0x6e297020, 0x3540b: 0x6e326420, + 0x3540c: 0x6e326620, 0x3540d: 0x6e326820, 0x3540e: 0x6e326a20, 0x3540f: 0x6e326c20, + 0x35410: 0x6e326e20, 0x35411: 0x6e327020, 0x35412: 0x6e327220, 0x35413: 0x6e327420, + 0x35414: 0x6e327620, 0x35415: 0x6e327820, 0x35416: 0x6e327a20, 0x35417: 0x6e327c20, + 0x35418: 0x6e327e20, 0x35419: 0x6e328020, 0x3541a: 0x6e328220, 0x3541b: 0x6e328420, + 0x3541c: 0x6e328620, 0x3541d: 0x6e328820, 0x3541e: 0x6e38bc20, 0x3541f: 0x6e38be20, + 0x35420: 0x6e38c020, 0x35421: 0x6e38c220, 0x35422: 0x6e38c420, 0x35423: 0x6e38c620, + 0x35424: 0x6e38c820, 0x35425: 0x6e38ca20, 0x35426: 0x6e38cc20, 0x35427: 0x6e38ce20, + 0x35428: 0x6e38d020, 0x35429: 0x6e3d3220, 0x3542a: 0x6e3d3420, 0x3542b: 0x6e3d3620, + 0x3542c: 0x6e3d3820, 0x3542d: 0x6e3d3a20, 0x3542e: 0x6e3d3c20, 0x3542f: 0x6e3d3e20, + 0x35430: 0x6e3d4020, 0x35431: 0x6e3d4220, 0x35432: 0x6e404e20, 0x35433: 0x6e401020, + 0x35434: 0x6e405020, 0x35435: 0x6e405220, 0x35436: 0x6e42aa20, 0x35437: 0x6e42ac20, + 0x35438: 0x6e42ae20, 0x35439: 0x6e443020, 0x3543a: 0x6e451e20, 0x3543b: 0x6e452020, + 0x3543c: 0x6e45c220, 0x3543d: 0x6e462c20, 0x3543e: 0x6e462e20, 0x3543f: 0x6e46b020, + // Block 0xd51, offset 0x35440 + 0x35440: 0x6c12b820, 0x35441: 0x6c223e20, 0x35442: 0x6c224020, 0x35443: 0x6c224220, + 0x35444: 0x6c224420, 0x35445: 0x6c224620, 0x35446: 0x6c224820, 0x35447: 0x6c224a20, + 0x35448: 0x6c224c20, 0x35449: 0x6c377620, 0x3544a: 0x6c377820, 0x3544b: 0x6c377a20, + 0x3544c: 0x6c377c20, 0x3544d: 0x6c377e20, 0x3544e: 0x6c378020, 0x3544f: 0x6c378220, + 0x35450: 0x6c378420, 0x35451: 0x6c378620, 0x35452: 0x6c378820, 0x35453: 0x6c378a20, + 0x35454: 0x6c378c20, 0x35455: 0x6c378e20, 0x35456: 0x6c379020, 0x35457: 0x6c52d420, + 0x35458: 0x6c52d620, 0x35459: 0x6c52d820, 0x3545a: 0x6c52da20, 0x3545b: 0x6c52dc20, + 0x3545c: 0x6c52de20, 0x3545d: 0x6c52e020, 0x3545e: 0x6c52e220, 0x3545f: 0x6c52e420, + 0x35460: 0x6c52e620, 0x35461: 0x6c52e820, 0x35462: 0x6c52ea20, 0x35463: 0x6c52ec20, + 0x35464: 0x6c52ee20, 0x35465: 0x6c52f020, 0x35466: 0x6c52f220, 0x35467: 0x6c756020, + 0x35468: 0x6c756220, 0x35469: 0x6c756420, 0x3546a: 0x6c756620, 0x3546b: 0x6c756820, + 0x3546c: 0x6c756a20, 0x3546d: 0x6c756c20, 0x3546e: 0x6c756e20, 0x3546f: 0x6c757020, + 0x35470: 0x6c757220, 0x35471: 0x6c757420, 0x35472: 0x6c757620, 0x35473: 0x6c757820, + 0x35474: 0x6c757a20, 0x35475: 0x6c757c20, 0x35476: 0x6c757e20, 0x35477: 0x6c758020, + 0x35478: 0x6c758220, 0x35479: 0x6c758420, 0x3547a: 0x6c9dba20, 0x3547b: 0x6c9dbc20, + 0x3547c: 0x6c9dbe20, 0x3547d: 0x6c9dc020, 0x3547e: 0x6c9dc220, 0x3547f: 0x6c9dc420, + // Block 0xd52, offset 0x35480 + 0x35480: 0x6c9dc620, 0x35481: 0x6c9dc820, 0x35482: 0x6c9dca20, 0x35483: 0x6c9dcc20, + 0x35484: 0x6c9dce20, 0x35485: 0x6c9dd020, 0x35486: 0x6c9dd220, 0x35487: 0x6c9dd420, + 0x35488: 0x6ccaa620, 0x35489: 0x6ccaa820, 0x3548a: 0x6ccaaa20, 0x3548b: 0x6ccaac20, + 0x3548c: 0x6ccaae20, 0x3548d: 0x6ccab020, 0x3548e: 0x6ccab220, 0x3548f: 0x6ccab420, + 0x35490: 0x6ccab620, 0x35491: 0x6ccab820, 0x35492: 0x6ccaba20, 0x35493: 0x6ccabc20, + 0x35494: 0x6ccabe20, 0x35495: 0x6ccac020, 0x35496: 0x6ccac220, 0x35497: 0x6ccac420, + 0x35498: 0x6ccac620, 0x35499: 0x6ccac820, 0x3549a: 0x6ccaca20, 0x3549b: 0x6ccacc20, + 0x3549c: 0x6ccace20, 0x3549d: 0x6cf8da20, 0x3549e: 0x6cf8dc20, 0x3549f: 0x6cf8de20, + 0x354a0: 0x6cf8e020, 0x354a1: 0x6cf8e220, 0x354a2: 0x6cf8e420, 0x354a3: 0x6cf8e620, + 0x354a4: 0x6cf8e820, 0x354a5: 0x6cf8ea20, 0x354a6: 0x6cf8ec20, 0x354a7: 0x6cf8ee20, + 0x354a8: 0x6cf8f020, 0x354a9: 0x6cf8f220, 0x354aa: 0x6cf8f420, 0x354ab: 0x6cf8f620, + 0x354ac: 0x6d0f4820, 0x354ad: 0x6cf8f820, 0x354ae: 0x6cf8fa20, 0x354af: 0x6cf8fc20, + 0x354b0: 0x6cf8fe20, 0x354b1: 0x6cf90020, 0x354b2: 0x6d281220, 0x354b3: 0x6d281420, + 0x354b4: 0x6d281620, 0x354b5: 0x6d281820, 0x354b6: 0x6d281a20, 0x354b7: 0x6d281c20, + 0x354b8: 0x6d281e20, 0x354b9: 0x6d282020, 0x354ba: 0x6d282220, 0x354bb: 0x6d282420, + 0x354bc: 0x6d282620, 0x354bd: 0x6d282820, 0x354be: 0x6d282a20, 0x354bf: 0x6d282c20, + // Block 0xd53, offset 0x354c0 + 0x354c0: 0x6d282e20, 0x354c1: 0x6d283020, 0x354c2: 0x6d283220, 0x354c3: 0x6d283420, + 0x354c4: 0x6d283620, 0x354c5: 0x6d283820, 0x354c6: 0x6d283a20, 0x354c7: 0x6d283c20, + 0x354c8: 0x6d556220, 0x354c9: 0x6d556420, 0x354ca: 0x6d556620, 0x354cb: 0x6d556820, + 0x354cc: 0x6d556a20, 0x354cd: 0x6d556c20, 0x354ce: 0x6d556e20, 0x354cf: 0x6d557020, + 0x354d0: 0x6d557220, 0x354d1: 0x6d557420, 0x354d2: 0x6d557620, 0x354d3: 0x6d557820, + 0x354d4: 0x6d557a20, 0x354d5: 0x6d557c20, 0x354d6: 0x6d557e20, 0x354d7: 0x6d558020, + 0x354d8: 0x6d80e220, 0x354d9: 0x6d80e420, 0x354da: 0x6d80e620, 0x354db: 0x6d80e820, + 0x354dc: 0x6d80ea20, 0x354dd: 0x6d80ec20, 0x354de: 0x6d80ee20, 0x354df: 0x6d80f020, + 0x354e0: 0x6da70220, 0x354e1: 0x6da70420, 0x354e2: 0x6da70620, 0x354e3: 0x6da70820, + 0x354e4: 0x6da70a20, 0x354e5: 0x6da70c20, 0x354e6: 0x6da70e20, 0x354e7: 0x6da71020, + 0x354e8: 0x6dc85420, 0x354e9: 0x6dc85620, 0x354ea: 0x6dc85820, 0x354eb: 0x6dc85a20, + 0x354ec: 0x6de47e20, 0x354ed: 0x6de48020, 0x354ee: 0x6de48220, 0x354ef: 0x6de48420, + 0x354f0: 0x6de48620, 0x354f1: 0x6dfb9c20, 0x354f2: 0x6dfb9e20, 0x354f3: 0x6dfba020, + 0x354f4: 0x6e0ed820, 0x354f5: 0x6e0eda20, 0x354f6: 0x6e1e1020, 0x354f7: 0x6e0edc20, + 0x354f8: 0x6e0ede20, 0x354f9: 0x6e1e1220, 0x354fa: 0x6e1e1420, 0x354fb: 0x6e1e1620, + 0x354fc: 0x6e1e1820, 0x354fd: 0x6e297820, 0x354fe: 0x6e329020, 0x354ff: 0x6e38d820, + // Block 0xd54, offset 0x35500 + 0x35500: 0x6e38da20, 0x35501: 0x6e3d4620, 0x35502: 0x6c04ac20, 0x35503: 0x6c097820, + 0x35504: 0x6c097a20, 0x35505: 0x6c12be20, 0x35506: 0x6c12c020, 0x35507: 0x6c225420, + 0x35508: 0x6c225620, 0x35509: 0x6c379c20, 0x3550a: 0x6c225820, 0x3550b: 0x6c225a20, + 0x3550c: 0x6c225c20, 0x3550d: 0x6c379e20, 0x3550e: 0x6c37a020, 0x3550f: 0x6c37a220, + 0x35510: 0x6c37a420, 0x35511: 0x6c37a620, 0x35512: 0x6c37a820, 0x35513: 0x6c37aa20, + 0x35514: 0x6c37ac20, 0x35515: 0x6c37ae20, 0x35516: 0x6c37b020, 0x35517: 0x6c37b220, + 0x35518: 0x6c37b420, 0x35519: 0x6c37b620, 0x3551a: 0x6c37b820, 0x3551b: 0x6c37ba20, + 0x3551c: 0x6c37bc20, 0x3551d: 0x6c37be20, 0x3551e: 0x6c37c020, 0x3551f: 0x6c37c220, + 0x35520: 0x6c37c420, 0x35521: 0x6c37c620, 0x35522: 0x6c530220, 0x35523: 0x6c530420, + 0x35524: 0x6c530620, 0x35525: 0x6c2bd020, 0x35526: 0x6c758c20, 0x35527: 0x6c758e20, + 0x35528: 0x6c759020, 0x35529: 0x6c759220, 0x3552a: 0x6c759420, 0x3552b: 0x6c759620, + 0x3552c: 0x6c759820, 0x3552d: 0x6c759a20, 0x3552e: 0x6c759c20, 0x3552f: 0x6c759e20, + 0x35530: 0x6c75a020, 0x35531: 0x6c75a220, 0x35532: 0x6c6f0e20, 0x35533: 0x6c9dda20, + 0x35534: 0x6c9ddc20, 0x35535: 0x6c9dde20, 0x35536: 0x6c9de020, 0x35537: 0x6c9de220, + 0x35538: 0x6c9de420, 0x35539: 0x6ccada20, 0x3553a: 0x6ccadc20, 0x3553b: 0x6ccade20, + 0x3553c: 0x6ccae020, 0x3553d: 0x6ccae220, 0x3553e: 0x6ccae420, 0x3553f: 0x6ccae620, + // Block 0xd55, offset 0x35540 + 0x35540: 0x6ccae820, 0x35541: 0x6ccaea20, 0x35542: 0x6ccaec20, 0x35543: 0x6ccaee20, + 0x35544: 0x6ccaf020, 0x35545: 0x6ccaf220, 0x35546: 0x6ccaf420, 0x35547: 0x6cf90c20, + 0x35548: 0x6cf90e20, 0x35549: 0x6cf91020, 0x3554a: 0x6cf91220, 0x3554b: 0x6d75b820, + 0x3554c: 0x6cf91420, 0x3554d: 0x6cf91620, 0x3554e: 0x6cf91820, 0x3554f: 0x6cf1c020, + 0x35550: 0x6d284620, 0x35551: 0x6d284820, 0x35552: 0x6d284a20, 0x35553: 0x6d284c20, + 0x35554: 0x6d558820, 0x35555: 0x6d558a20, 0x35556: 0x6d558c20, 0x35557: 0x6d558e20, + 0x35558: 0x6d559020, 0x35559: 0x6d559220, 0x3555a: 0x6d559420, 0x3555b: 0x6d559620, + 0x3555c: 0x6d80f420, 0x3555d: 0x6d80f620, 0x3555e: 0x6d80f820, 0x3555f: 0x6d80fa20, + 0x35560: 0x6d80fc20, 0x35561: 0x6da71220, 0x35562: 0x6da71420, 0x35563: 0x6da71620, + 0x35564: 0x6da71820, 0x35565: 0x6da71a20, 0x35566: 0x6dc86020, 0x35567: 0x6dc86220, + 0x35568: 0x6dc86420, 0x35569: 0x6dc86620, 0x3556a: 0x6dc86820, 0x3556b: 0x6dc86a20, + 0x3556c: 0x6de48820, 0x3556d: 0x6de20820, 0x3556e: 0x6e0ee020, 0x3556f: 0x6e1e1a20, + 0x35570: 0x6e1e1c20, 0x35571: 0x6e297a20, 0x35572: 0x6e297c20, 0x35573: 0x6e329420, + 0x35574: 0x6e329620, 0x35575: 0x6c04b020, 0x35576: 0x6c04b220, 0x35577: 0x6c097e20, + 0x35578: 0x6c12c620, 0x35579: 0x6c12c820, 0x3557a: 0x6c12ca20, 0x3557b: 0x6c12cc20, + 0x3557c: 0x6c12ce20, 0x3557d: 0x6c12d020, 0x3557e: 0x6c12d220, 0x3557f: 0x6c226020, + // Block 0xd56, offset 0x35580 + 0x35580: 0x6c226220, 0x35581: 0x6c226420, 0x35582: 0x6c226620, 0x35583: 0x6c226820, + 0x35584: 0x6c226a20, 0x35585: 0x6c226c20, 0x35586: 0x6c226e20, 0x35587: 0x6c227020, + 0x35588: 0x6c227220, 0x35589: 0x6c37dc20, 0x3558a: 0x6c37de20, 0x3558b: 0x6c37e020, + 0x3558c: 0x6c37e220, 0x3558d: 0x6c37e420, 0x3558e: 0x6c37e620, 0x3558f: 0x6c37e820, + 0x35590: 0x6c37ea20, 0x35591: 0x6c37ec20, 0x35592: 0x6c37ee20, 0x35593: 0x6c37f020, + 0x35594: 0x6c37f220, 0x35595: 0x6c37f420, 0x35596: 0x6c37f620, 0x35597: 0x6c37f820, + 0x35598: 0x6c37fa20, 0x35599: 0x6c37fc20, 0x3559a: 0x6c37fe20, 0x3559b: 0x6c380020, + 0x3559c: 0x6c380220, 0x3559d: 0x6c531a20, 0x3559e: 0x6c531c20, 0x3559f: 0x6c531e20, + 0x355a0: 0x6c532020, 0x355a1: 0x6c532220, 0x355a2: 0x6c532420, 0x355a3: 0x6c532620, + 0x355a4: 0x6c532820, 0x355a5: 0x6c532a20, 0x355a6: 0x6c532c20, 0x355a7: 0x6c532e20, + 0x355a8: 0x6c533020, 0x355a9: 0x6c533220, 0x355aa: 0x6c533420, 0x355ab: 0x6c533620, + 0x355ac: 0x6c533820, 0x355ad: 0x6c533a20, 0x355ae: 0x6c533c20, 0x355af: 0x6c533e20, + 0x355b0: 0x6c534020, 0x355b1: 0x6c534220, 0x355b2: 0x6c75b220, 0x355b3: 0x6c75b420, + 0x355b4: 0x6c75b620, 0x355b5: 0x6c75b820, 0x355b6: 0x6c75ba20, 0x355b7: 0x6c75bc20, + 0x355b8: 0x6c75be20, 0x355b9: 0x6c75c020, 0x355ba: 0x6c75c220, 0x355bb: 0x6c75c420, + 0x355bc: 0x6c75c620, 0x355bd: 0x6c75c820, 0x355be: 0x6c75ca20, 0x355bf: 0x6c75cc20, + // Block 0xd57, offset 0x355c0 + 0x355c0: 0x6c75ce20, 0x355c1: 0x6c75d020, 0x355c2: 0x6c75d220, 0x355c3: 0x6c75d420, + 0x355c4: 0x6c75d620, 0x355c5: 0x6c9dfc20, 0x355c6: 0x6c9dfe20, 0x355c7: 0x6c9e0020, + 0x355c8: 0x6c9e0220, 0x355c9: 0x6c9e0420, 0x355ca: 0x6c9e0620, 0x355cb: 0x6c9e0820, + 0x355cc: 0x6c9e0a20, 0x355cd: 0x6c9e0c20, 0x355ce: 0x6c9e0e20, 0x355cf: 0x6c9e1020, + 0x355d0: 0x6c9e1220, 0x355d1: 0x6c9e1420, 0x355d2: 0x6c9e1620, 0x355d3: 0x6c9e1820, + 0x355d4: 0x6c9e1a20, 0x355d5: 0x6c9e1c20, 0x355d6: 0x6ccb1220, 0x355d7: 0x6ccb1420, + 0x355d8: 0x6ccb1620, 0x355d9: 0x6ccb1820, 0x355da: 0x6ccb1a20, 0x355db: 0x6ccb1c20, + 0x355dc: 0x6ccb1e20, 0x355dd: 0x6ccb2020, 0x355de: 0x6ccb2220, 0x355df: 0x6ccb2420, + 0x355e0: 0x6ccb2620, 0x355e1: 0x6ccb2820, 0x355e2: 0x6ccb2a20, 0x355e3: 0x6ccb2c20, + 0x355e4: 0x6ccb2e20, 0x355e5: 0x6ccb3020, 0x355e6: 0x6ccb3220, 0x355e7: 0x6ccb3420, + 0x355e8: 0x6ccb3620, 0x355e9: 0x6ccb3820, 0x355ea: 0x6ccb3a20, 0x355eb: 0x6ccb3c20, + 0x355ec: 0x6ccb3e20, 0x355ed: 0x6ccb4020, 0x355ee: 0x6ccb4220, 0x355ef: 0x6ccb4420, + 0x355f0: 0x6ccb4620, 0x355f1: 0x6cf93020, 0x355f2: 0x6cf93220, 0x355f3: 0x6cf93420, + 0x355f4: 0x6cf93620, 0x355f5: 0x6cf93820, 0x355f6: 0x6cf93a20, 0x355f7: 0x6cf93c20, + 0x355f8: 0x6cf93e20, 0x355f9: 0x6cf94020, 0x355fa: 0x6cf94220, 0x355fb: 0x6cf94420, + 0x355fc: 0x6cf94620, 0x355fd: 0x6cf94820, 0x355fe: 0x6cf94a20, 0x355ff: 0x6cf94c20, + // Block 0xd58, offset 0x35600 + 0x35600: 0x6cf94e20, 0x35601: 0x6cf95020, 0x35602: 0x6cf95220, 0x35603: 0x6cf95420, + 0x35604: 0x6d286220, 0x35605: 0x6d286420, 0x35606: 0x6d286620, 0x35607: 0x6d286820, + 0x35608: 0x6d286a20, 0x35609: 0x6d286c20, 0x3560a: 0x6d286e20, 0x3560b: 0x6d287020, + 0x3560c: 0x6d287220, 0x3560d: 0x6d55a820, 0x3560e: 0x6d55aa20, 0x3560f: 0x6d55ac20, + 0x35610: 0x6d55ae20, 0x35611: 0x6d55b020, 0x35612: 0x6d55b220, 0x35613: 0x6d55b420, + 0x35614: 0x6d55b620, 0x35615: 0x6d55b820, 0x35616: 0x6d55ba20, 0x35617: 0x6d55bc20, + 0x35618: 0x6d55be20, 0x35619: 0x6d55c020, 0x3561a: 0x6d55c220, 0x3561b: 0x6d55c420, + 0x3561c: 0x6d55c620, 0x3561d: 0x6d811220, 0x3561e: 0x6d811420, 0x3561f: 0x6d811620, + 0x35620: 0x6d811820, 0x35621: 0x6d811a20, 0x35622: 0x6d811c20, 0x35623: 0x6d811e20, + 0x35624: 0x6d812020, 0x35625: 0x6d812220, 0x35626: 0x6d812420, 0x35627: 0x6d812620, + 0x35628: 0x6da72620, 0x35629: 0x6da72820, 0x3562a: 0x6da72a20, 0x3562b: 0x6da72c20, + 0x3562c: 0x6da72e20, 0x3562d: 0x6da73020, 0x3562e: 0x6da73220, 0x3562f: 0x6dc86e20, + 0x35630: 0x6dc87020, 0x35631: 0x6dc87220, 0x35632: 0x6dc87420, 0x35633: 0x6dc87620, + 0x35634: 0x6dc87820, 0x35635: 0x6dc87a20, 0x35636: 0x6dc87c20, 0x35637: 0x6de48e20, + 0x35638: 0x6de49020, 0x35639: 0x6dfba820, 0x3563a: 0x6dfbaa20, 0x3563b: 0x6dfbac20, + 0x3563c: 0x6e0ee420, 0x3563d: 0x6e0ee620, 0x3563e: 0x6e1e1e20, 0x3563f: 0x6e298020, + // Block 0xd59, offset 0x35640 + 0x35640: 0x6e298220, 0x35641: 0x6e298420, 0x35642: 0x6c380820, 0x35643: 0x6c380a20, + 0x35644: 0x6c380c20, 0x35645: 0x6c534c20, 0x35646: 0x6c534e20, 0x35647: 0x6c535020, + 0x35648: 0x6c75e220, 0x35649: 0x6c75e420, 0x3564a: 0x6c75e620, 0x3564b: 0x6c9e2a20, + 0x3564c: 0x6c9e2c20, 0x3564d: 0x6c9e2e20, 0x3564e: 0x6c9e3020, 0x3564f: 0x6c9e3220, + 0x35650: 0x6c9e3420, 0x35651: 0x6c9e3620, 0x35652: 0x6c9e3820, 0x35653: 0x6c9e3a20, + 0x35654: 0x6c9e3c20, 0x35655: 0x6c9e3e20, 0x35656: 0x6c9e4020, 0x35657: 0x6c9e4220, + 0x35658: 0x6c9e4420, 0x35659: 0x6ccb5420, 0x3565a: 0x6ccb5620, 0x3565b: 0x6ccb5820, + 0x3565c: 0x6ccb5a20, 0x3565d: 0x6ccb5c20, 0x3565e: 0x6ccb5e20, 0x3565f: 0x6ccb6020, + 0x35660: 0x6cf96020, 0x35661: 0x6cf96220, 0x35662: 0x6cf96420, 0x35663: 0x6cf96620, + 0x35664: 0x6cf96820, 0x35665: 0x6cf96a20, 0x35666: 0x6cf96c20, 0x35667: 0x6cf96e20, + 0x35668: 0x6cf97020, 0x35669: 0x6cf97220, 0x3566a: 0x6cf97420, 0x3566b: 0x6cf97620, + 0x3566c: 0x6cf97820, 0x3566d: 0x6d017c20, 0x3566e: 0x6d287c20, 0x3566f: 0x6d287e20, + 0x35670: 0x6d288020, 0x35671: 0x6d288220, 0x35672: 0x6d288420, 0x35673: 0x6d288620, + 0x35674: 0x6d288820, 0x35675: 0x6d288a20, 0x35676: 0x6d55ce20, 0x35677: 0x6d55d020, + 0x35678: 0x6d55d220, 0x35679: 0x6d55d420, 0x3567a: 0x6d55d620, 0x3567b: 0x6d813220, + 0x3567c: 0x6d813420, 0x3567d: 0x6d813620, 0x3567e: 0x6d813820, 0x3567f: 0x6d813a20, + // Block 0xd5a, offset 0x35680 + 0x35680: 0x6d813c20, 0x35681: 0x6d813e20, 0x35682: 0x6d814020, 0x35683: 0x6d814220, + 0x35684: 0x6d814420, 0x35685: 0x6d814620, 0x35686: 0x6d814820, 0x35687: 0x6d814a20, + 0x35688: 0x6d814c20, 0x35689: 0x6d814e20, 0x3568a: 0x6d815020, 0x3568b: 0x6d815220, + 0x3568c: 0x6da73820, 0x3568d: 0x6da73a20, 0x3568e: 0x6da73c20, 0x3568f: 0x6da73e20, + 0x35690: 0x6dc88020, 0x35691: 0x6dc88220, 0x35692: 0x6dc88420, 0x35693: 0x6dc88620, + 0x35694: 0x6dc88820, 0x35695: 0x6dc88a20, 0x35696: 0x6dc88c20, 0x35697: 0x6dc88e20, + 0x35698: 0x6de49220, 0x35699: 0x6de49420, 0x3569a: 0x6de49620, 0x3569b: 0x6de49820, + 0x3569c: 0x6de49a20, 0x3569d: 0x6de49c20, 0x3569e: 0x6dfbae20, 0x3569f: 0x6dfbb020, + 0x356a0: 0x6e0ee820, 0x356a1: 0x6e0eea20, 0x356a2: 0x6e298820, 0x356a3: 0x6e298a20, + 0x356a4: 0x6e298c20, 0x356a5: 0x6e298e20, 0x356a6: 0x6e329820, 0x356a7: 0x6e329a20, + 0x356a8: 0x6e329c20, 0x356a9: 0x6e38dc20, 0x356aa: 0x6e405620, 0x356ab: 0x6e405820, + 0x356ac: 0x6c04ba20, 0x356ad: 0x6c12d620, 0x356ae: 0x6c227a20, 0x356af: 0x6c381020, + 0x356b0: 0x6c381220, 0x356b1: 0x6c381420, 0x356b2: 0x6c381620, 0x356b3: 0x6c535420, + 0x356b4: 0x6c75ec20, 0x356b5: 0x6c9e4820, 0x356b6: 0x6c9e4a20, 0x356b7: 0x6c9e4c20, + 0x356b8: 0x6c9e4e20, 0x356b9: 0x6cf97e20, 0x356ba: 0x6d288c20, 0x356bb: 0x6d288e20, + 0x356bc: 0x6d289020, 0x356bd: 0x6d815420, 0x356be: 0x6d815620, 0x356bf: 0x6da74420, + // Block 0xd5b, offset 0x356c0 + 0x356c0: 0x6de49e20, 0x356c1: 0x6e1e2020, 0x356c2: 0x6c227e20, 0x356c3: 0x6c228020, + 0x356c4: 0x6c381820, 0x356c5: 0x6c381a20, 0x356c6: 0x6c381c20, 0x356c7: 0x6c381e20, + 0x356c8: 0x6c75f020, 0x356c9: 0x6c75f220, 0x356ca: 0x6c75f420, 0x356cb: 0x6c9e5020, + 0x356cc: 0x6c9e5220, 0x356cd: 0x6cf98020, 0x356ce: 0x6d289420, 0x356cf: 0x6d289620, + 0x356d0: 0x6d289820, 0x356d1: 0x6d289a20, 0x356d2: 0x6d55dc20, 0x356d3: 0x6d815820, + 0x356d4: 0x6d815a20, 0x356d5: 0x6da74820, 0x356d6: 0x6de4a020, 0x356d7: 0x6dfbb220, + 0x356d8: 0x6dfbb420, 0x356d9: 0x6e1e2220, 0x356da: 0x6e405a20, 0x356db: 0x6c04c020, + 0x356dc: 0x6c12dc20, 0x356dd: 0x6c12de20, 0x356de: 0x6c12e020, 0x356df: 0x6c12e220, + 0x356e0: 0x6c12e420, 0x356e1: 0x6c228620, 0x356e2: 0x6c228820, 0x356e3: 0x6c228a20, + 0x356e4: 0x6c228c20, 0x356e5: 0x6c228e20, 0x356e6: 0x6c229020, 0x356e7: 0x6c229220, + 0x356e8: 0x6c229420, 0x356e9: 0x6c382e20, 0x356ea: 0x6c383020, 0x356eb: 0x6c383220, + 0x356ec: 0x6c383420, 0x356ed: 0x6c383620, 0x356ee: 0x6c383820, 0x356ef: 0x6c383a20, + 0x356f0: 0x6c383c20, 0x356f1: 0x6c383e20, 0x356f2: 0x6c384020, 0x356f3: 0x6c384220, + 0x356f4: 0x6c384420, 0x356f5: 0x6c384620, 0x356f6: 0x6c384820, 0x356f7: 0x6c384a20, + 0x356f8: 0x6c536420, 0x356f9: 0x6c536620, 0x356fa: 0x6c536820, 0x356fb: 0x6c536a20, + 0x356fc: 0x6c536c20, 0x356fd: 0x6c536e20, 0x356fe: 0x6c537020, 0x356ff: 0x6c537220, + // Block 0xd5c, offset 0x35700 + 0x35700: 0x6c537420, 0x35701: 0x6c537620, 0x35702: 0x6c537820, 0x35703: 0x6c537a20, + 0x35704: 0x6c537c20, 0x35705: 0x6c537e20, 0x35706: 0x6c538020, 0x35707: 0x6c538220, + 0x35708: 0x6c538420, 0x35709: 0x6c538620, 0x3570a: 0x6c538820, 0x3570b: 0x6c538a20, + 0x3570c: 0x6c538c20, 0x3570d: 0x6c538e20, 0x3570e: 0x6c539020, 0x3570f: 0x6c539220, + 0x35710: 0x6c539420, 0x35711: 0x6c539620, 0x35712: 0x6c539820, 0x35713: 0x6c539a20, + 0x35714: 0x6c539c20, 0x35715: 0x6c539e20, 0x35716: 0x6c53a020, 0x35717: 0x6c53a220, + 0x35718: 0x6c53a420, 0x35719: 0x6c53a620, 0x3571a: 0x6c53a820, 0x3571b: 0x6c53aa20, + 0x3571c: 0x6c760a20, 0x3571d: 0x6c760c20, 0x3571e: 0x6c760e20, 0x3571f: 0x6c761020, + 0x35720: 0x6c761220, 0x35721: 0x6c761420, 0x35722: 0x6c761620, 0x35723: 0x6c761820, + 0x35724: 0x6c761a20, 0x35725: 0x6c761c20, 0x35726: 0x6c761e20, 0x35727: 0x6c762020, + 0x35728: 0x6c762220, 0x35729: 0x6c762420, 0x3572a: 0x6c762620, 0x3572b: 0x6c762820, + 0x3572c: 0x6c762a20, 0x3572d: 0x6c762c20, 0x3572e: 0x6c762e20, 0x3572f: 0x6c763020, + 0x35730: 0x6c763220, 0x35731: 0x6c9e6a20, 0x35732: 0x6c9e6c20, 0x35733: 0x6c9e6e20, + 0x35734: 0x6c9e7020, 0x35735: 0x6c9e7220, 0x35736: 0x6c9e7420, 0x35737: 0x6c9e7620, + 0x35738: 0x6c9e7820, 0x35739: 0x6c9e7a20, 0x3573a: 0x6c9e7c20, 0x3573b: 0x6c9e7e20, + 0x3573c: 0x6c9e8020, 0x3573d: 0x6c9e8220, 0x3573e: 0x6c9e8420, 0x3573f: 0x6c9e8620, + // Block 0xd5d, offset 0x35740 + 0x35740: 0x6c9e8820, 0x35741: 0x6c9e8a20, 0x35742: 0x6c9e8c20, 0x35743: 0x6c9e8e20, + 0x35744: 0x6c9e9020, 0x35745: 0x6c9e9220, 0x35746: 0x6c9e9420, 0x35747: 0x6c9e9620, + 0x35748: 0x6ccb8220, 0x35749: 0x6ccb8420, 0x3574a: 0x6ccb8620, 0x3574b: 0x6ccb8820, + 0x3574c: 0x6ccb8a20, 0x3574d: 0x6ccb8c20, 0x3574e: 0x6ccb8e20, 0x3574f: 0x6ccb9020, + 0x35750: 0x6ccb9220, 0x35751: 0x6ccb9420, 0x35752: 0x6ccb9620, 0x35753: 0x6ccb9820, + 0x35754: 0x6ccb9a20, 0x35755: 0x6ccb9c20, 0x35756: 0x6ccb9e20, 0x35757: 0x6ccba020, + 0x35758: 0x6ccba220, 0x35759: 0x6ccba420, 0x3575a: 0x6ccba620, 0x3575b: 0x6ccba820, + 0x3575c: 0x6ccbaa20, 0x3575d: 0x6ccbac20, 0x3575e: 0x6ccbae20, 0x3575f: 0x6ccbb020, + 0x35760: 0x6ccbb220, 0x35761: 0x6ccbb420, 0x35762: 0x6ccbb620, 0x35763: 0x6ccbb820, + 0x35764: 0x6ccbba20, 0x35765: 0x6ccbbc20, 0x35766: 0x6ccbbe20, 0x35767: 0x6ccbc020, + 0x35768: 0x6cf99a20, 0x35769: 0x6cf99c20, 0x3576a: 0x6cf99e20, 0x3576b: 0x6cf9a020, + 0x3576c: 0x6cf9a220, 0x3576d: 0x6cf9a420, 0x3576e: 0x6cf9a620, 0x3576f: 0x6cf9a820, + 0x35770: 0x6cf9aa20, 0x35771: 0x6cf9ac20, 0x35772: 0x6cf9ae20, 0x35773: 0x6cf9b020, + 0x35774: 0x6cf9b220, 0x35775: 0x6cf9b420, 0x35776: 0x6cf9b620, 0x35777: 0x6cf9b820, + 0x35778: 0x6cf9ba20, 0x35779: 0x6cf9bc20, 0x3577a: 0x6cf9be20, 0x3577b: 0x6cf9c020, + 0x3577c: 0x6cf9c220, 0x3577d: 0x6cf9c420, 0x3577e: 0x6cf9c620, 0x3577f: 0x6cf9c820, + // Block 0xd5e, offset 0x35780 + 0x35780: 0x6cf9ca20, 0x35781: 0x6cf9cc20, 0x35782: 0x6cf9ce20, 0x35783: 0x6cf9d020, + 0x35784: 0x6cf9d220, 0x35785: 0x6d28ac20, 0x35786: 0x6d28ae20, 0x35787: 0x6d28b020, + 0x35788: 0x6d28b220, 0x35789: 0x6d28b420, 0x3578a: 0x6d28b620, 0x3578b: 0x6d28b820, + 0x3578c: 0x6d28ba20, 0x3578d: 0x6d28bc20, 0x3578e: 0x6d28be20, 0x3578f: 0x6d28c020, + 0x35790: 0x6d28c220, 0x35791: 0x6d28c420, 0x35792: 0x6d28c620, 0x35793: 0x6d28c820, + 0x35794: 0x6d28ca20, 0x35795: 0x6d28cc20, 0x35796: 0x6d28ce20, 0x35797: 0x6d28d020, + 0x35798: 0x6d28d220, 0x35799: 0x6d28d420, 0x3579a: 0x6d28d620, 0x3579b: 0x6d28d820, + 0x3579c: 0x6d28da20, 0x3579d: 0x6d28dc20, 0x3579e: 0x6d28de20, 0x3579f: 0x6d28e020, + 0x357a0: 0x6d28e220, 0x357a1: 0x6d28e420, 0x357a2: 0x6d28e620, 0x357a3: 0x6d55e620, + 0x357a4: 0x6d55e820, 0x357a5: 0x6d55ea20, 0x357a6: 0x6d55ec20, 0x357a7: 0x6d55ee20, + 0x357a8: 0x6d55f020, 0x357a9: 0x6d55f220, 0x357aa: 0x6d55f420, 0x357ab: 0x6d55f620, + 0x357ac: 0x6d55f820, 0x357ad: 0x6d55fa20, 0x357ae: 0x6d55fc20, 0x357af: 0x6d55fe20, + 0x357b0: 0x6d560020, 0x357b1: 0x6d560220, 0x357b2: 0x6d560420, 0x357b3: 0x6d560620, + 0x357b4: 0x6d560820, 0x357b5: 0x6d560a20, 0x357b6: 0x6d560c20, 0x357b7: 0x6d560e20, + 0x357b8: 0x6d817020, 0x357b9: 0x6d817220, 0x357ba: 0x6d817420, 0x357bb: 0x6d817620, + 0x357bc: 0x6d817820, 0x357bd: 0x6d817a20, 0x357be: 0x6d817c20, 0x357bf: 0x6d817e20, + // Block 0xd5f, offset 0x357c0 + 0x357c0: 0x6d818020, 0x357c1: 0x6d818220, 0x357c2: 0x6d818420, 0x357c3: 0x6d818620, + 0x357c4: 0x6d818820, 0x357c5: 0x6d818a20, 0x357c6: 0x6d818c20, 0x357c7: 0x6d818e20, + 0x357c8: 0x6d819020, 0x357c9: 0x6d819220, 0x357ca: 0x6da75020, 0x357cb: 0x6da75220, + 0x357cc: 0x6da75420, 0x357cd: 0x6da75620, 0x357ce: 0x6da75820, 0x357cf: 0x6da75a20, + 0x357d0: 0x6da75c20, 0x357d1: 0x6da75e20, 0x357d2: 0x6da76020, 0x357d3: 0x6da76220, + 0x357d4: 0x6da76420, 0x357d5: 0x6da76620, 0x357d6: 0x6da76820, 0x357d7: 0x6da76a20, + 0x357d8: 0x6da76c20, 0x357d9: 0x6da76e20, 0x357da: 0x6dc89820, 0x357db: 0x6dc89a20, + 0x357dc: 0x6dc89c20, 0x357dd: 0x6dc89e20, 0x357de: 0x6dc8a020, 0x357df: 0x6dc8a220, + 0x357e0: 0x6dc8a420, 0x357e1: 0x6dc8a620, 0x357e2: 0x6dc8a820, 0x357e3: 0x6dc8aa20, + 0x357e4: 0x6dc8ac20, 0x357e5: 0x6dc8ae20, 0x357e6: 0x6dc8b020, 0x357e7: 0x6dc8b220, + 0x357e8: 0x6dc8b420, 0x357e9: 0x6dc8b620, 0x357ea: 0x6dc8b820, 0x357eb: 0x6de4a620, + 0x357ec: 0x6de4a820, 0x357ed: 0x6de4aa20, 0x357ee: 0x6de4ac20, 0x357ef: 0x6de4ae20, + 0x357f0: 0x6de4b020, 0x357f1: 0x6dfbb820, 0x357f2: 0x6dfbba20, 0x357f3: 0x6dfbbc20, + 0x357f4: 0x6dfbbe20, 0x357f5: 0x6dfbc020, 0x357f6: 0x6e0eec20, 0x357f7: 0x6e0eee20, + 0x357f8: 0x6e0ef020, 0x357f9: 0x6e0ef220, 0x357fa: 0x6e0ef420, 0x357fb: 0x6e1e2620, + 0x357fc: 0x6e1e2820, 0x357fd: 0x6e1e2a20, 0x357fe: 0x6e1e2c20, 0x357ff: 0x6e299020, + // Block 0xd60, offset 0x35800 + 0x35800: 0x6e299220, 0x35801: 0x6e299420, 0x35802: 0x6e3d4c20, 0x35803: 0x6e3d4e20, + 0x35804: 0x6e42b020, 0x35805: 0x6c385220, 0x35806: 0x6c385420, 0x35807: 0x6c53b020, + 0x35808: 0x6c53b220, 0x35809: 0x6c53b420, 0x3580a: 0x6c53b620, 0x3580b: 0x6c9e9820, + 0x3580c: 0x6c9e9a20, 0x3580d: 0x6c9e9c20, 0x3580e: 0x6c9e9e20, 0x3580f: 0x6cf9d620, + 0x35810: 0x6d28ea20, 0x35811: 0x6d819420, 0x35812: 0x6da77020, 0x35813: 0x6dc8bc20, + 0x35814: 0x6dc8be20, 0x35815: 0x6c12f020, 0x35816: 0x6c12f220, 0x35817: 0x6c229a20, + 0x35818: 0x6c229c20, 0x35819: 0x6c385e20, 0x3581a: 0x6c386020, 0x3581b: 0x6c386220, + 0x3581c: 0x6c53c220, 0x3581d: 0x6c53c420, 0x3581e: 0x6c53c620, 0x3581f: 0x6c53c820, + 0x35820: 0x6c53ca20, 0x35821: 0x6c764820, 0x35822: 0x6ccbd020, 0x35823: 0x6c9ea620, + 0x35824: 0x6ccbd220, 0x35825: 0x6ccbd420, 0x35826: 0x6cf9da20, 0x35827: 0x6cf9dc20, + 0x35828: 0x6cf9de20, 0x35829: 0x6d28f020, 0x3582a: 0x6d561420, 0x3582b: 0x6d561620, + 0x3582c: 0x6da77220, 0x3582d: 0x6da77420, 0x3582e: 0x6dc8c020, 0x3582f: 0x6e0ef620, + 0x35830: 0x6e0ef820, 0x35831: 0x6c01fc20, 0x35832: 0x6c04ca20, 0x35833: 0x6c04cc20, + 0x35834: 0x6c04ce20, 0x35835: 0x6c09b220, 0x35836: 0x6c09b420, 0x35837: 0x6c09b620, + 0x35838: 0x6c09b820, 0x35839: 0x6c09ba20, 0x3583a: 0x6c09bc20, 0x3583b: 0x6c09be20, + 0x3583c: 0x6c09c020, 0x3583d: 0x6c09c220, 0x3583e: 0x6c09c420, 0x3583f: 0x6c09c620, + // Block 0xd61, offset 0x35840 + 0x35840: 0x6c133020, 0x35841: 0x6c133220, 0x35842: 0x6c133420, 0x35843: 0x6c133620, + 0x35844: 0x6c133820, 0x35845: 0x6c133a20, 0x35846: 0x6c133c20, 0x35847: 0x6c133e20, + 0x35848: 0x6c134020, 0x35849: 0x6c134220, 0x3584a: 0x6c134420, 0x3584b: 0x6c134620, + 0x3584c: 0x6c134820, 0x3584d: 0x6c134a20, 0x3584e: 0x6c233a20, 0x3584f: 0x6c233c20, + 0x35850: 0x6c233e20, 0x35851: 0x6c234020, 0x35852: 0x6c234220, 0x35853: 0x6c234420, + 0x35854: 0x6c234620, 0x35855: 0x6c234820, 0x35856: 0x6c234a20, 0x35857: 0x6c234c20, + 0x35858: 0x6c234e20, 0x35859: 0x6c235020, 0x3585a: 0x6c235220, 0x3585b: 0x6c235420, + 0x3585c: 0x6c235620, 0x3585d: 0x6c235820, 0x3585e: 0x6c235a20, 0x3585f: 0x6c235c20, + 0x35860: 0x6c235e20, 0x35861: 0x6c236020, 0x35862: 0x6c236220, 0x35863: 0x6c236420, + 0x35864: 0x6c236620, 0x35865: 0x6c236820, 0x35866: 0x6c236a20, 0x35867: 0x6c236c20, + 0x35868: 0x6c236e20, 0x35869: 0x6c237020, 0x3586a: 0x6c237220, 0x3586b: 0x6c237420, + 0x3586c: 0x6c237620, 0x3586d: 0x6c237820, 0x3586e: 0x6c237a20, 0x3586f: 0x6c237c20, + 0x35870: 0x6c237e20, 0x35871: 0x6c238020, 0x35872: 0x6c392020, 0x35873: 0x6c392220, + 0x35874: 0x6c392420, 0x35875: 0x6c392620, 0x35876: 0x6c392820, 0x35877: 0x6c392a20, + 0x35878: 0x6c392c20, 0x35879: 0x6c392e20, 0x3587a: 0x6c393020, 0x3587b: 0x6c393220, + 0x3587c: 0x6c393420, 0x3587d: 0x6c393620, 0x3587e: 0x6c393820, 0x3587f: 0x6c393a20, + // Block 0xd62, offset 0x35880 + 0x35880: 0x6c393c20, 0x35881: 0x6c393e20, 0x35882: 0x6c394020, 0x35883: 0x6c394220, + 0x35884: 0x6c394420, 0x35885: 0x6c394620, 0x35886: 0x6c394820, 0x35887: 0x6c394a20, + 0x35888: 0x6c394c20, 0x35889: 0x6c394e20, 0x3588a: 0x6c395020, 0x3588b: 0x6c395220, + 0x3588c: 0x6c395420, 0x3588d: 0x6c395620, 0x3588e: 0x6c395820, 0x3588f: 0x6c395a20, + 0x35890: 0x6c395c20, 0x35891: 0x6c395e20, 0x35892: 0x6c396020, 0x35893: 0x6c396220, + 0x35894: 0x6c396420, 0x35895: 0x6c396620, 0x35896: 0x6c396820, 0x35897: 0x6c396a20, + 0x35898: 0x6c396c20, 0x35899: 0x6c396e20, 0x3589a: 0x6c397020, 0x3589b: 0x6c397220, + 0x3589c: 0x6c397420, 0x3589d: 0x6c397620, 0x3589e: 0x6c397820, 0x3589f: 0x6c397a20, + 0x358a0: 0x6c397c20, 0x358a1: 0x6c397e20, 0x358a2: 0x6c398020, 0x358a3: 0x6c398220, + 0x358a4: 0x6c549620, 0x358a5: 0x6c549820, 0x358a6: 0x6c549a20, 0x358a7: 0x6c549c20, + 0x358a8: 0x6c549e20, 0x358a9: 0x6c54a020, 0x358aa: 0x6c54a220, 0x358ab: 0x6c54a420, + 0x358ac: 0x6c54a620, 0x358ad: 0x6c54a820, 0x358ae: 0x6c54aa20, 0x358af: 0x6c54ac20, + 0x358b0: 0x6c54ae20, 0x358b1: 0x6c54b020, 0x358b2: 0x6c54b220, 0x358b3: 0x6c54b420, + 0x358b4: 0x6c54b620, 0x358b5: 0x6c54b820, 0x358b6: 0x6c54ba20, 0x358b7: 0x6c54bc20, + 0x358b8: 0x6c54be20, 0x358b9: 0x6c54c020, 0x358ba: 0x6c54c220, 0x358bb: 0x6c54c420, + 0x358bc: 0x6c54c620, 0x358bd: 0x6c54c820, 0x358be: 0x6c54ca20, 0x358bf: 0x6c54cc20, + // Block 0xd63, offset 0x358c0 + 0x358c0: 0x6c54ce20, 0x358c1: 0x6c54d020, 0x358c2: 0x6c54d220, 0x358c3: 0x6c54d420, + 0x358c4: 0x6c54d620, 0x358c5: 0x6c54d820, 0x358c6: 0x6c54da20, 0x358c7: 0x6c54dc20, + 0x358c8: 0x6c54de20, 0x358c9: 0x6c54e020, 0x358ca: 0x6c54e220, 0x358cb: 0x6c54e420, + 0x358cc: 0x6c54e620, 0x358cd: 0x6c54e820, 0x358ce: 0x6c54ea20, 0x358cf: 0x6c54ec20, + 0x358d0: 0x6c54ee20, 0x358d1: 0x6c54f020, 0x358d2: 0x6c54f220, 0x358d3: 0x6c54f420, + 0x358d4: 0x6c54f620, 0x358d5: 0x6c54f820, 0x358d6: 0x6c54fa20, 0x358d7: 0x6c54fc20, + 0x358d8: 0x6c54fe20, 0x358d9: 0x6c550020, 0x358da: 0x6c550220, 0x358db: 0x6c550420, + 0x358dc: 0x6c550620, 0x358dd: 0x6c550820, 0x358de: 0x6c771820, 0x358df: 0x6c771a20, + 0x358e0: 0x6c771c20, 0x358e1: 0x6c771e20, 0x358e2: 0x6c772020, 0x358e3: 0x6c772220, + 0x358e4: 0x6c772420, 0x358e5: 0x6c772620, 0x358e6: 0x6c772820, 0x358e7: 0x6c772a20, + 0x358e8: 0x6c772c20, 0x358e9: 0x6c772e20, 0x358ea: 0x6c773020, 0x358eb: 0x6c773220, + 0x358ec: 0x6c773420, 0x358ed: 0x6c773620, 0x358ee: 0x6c773820, 0x358ef: 0x6c773a20, + 0x358f0: 0x6c773c20, 0x358f1: 0x6c773e20, 0x358f2: 0x6c774020, 0x358f3: 0x6c774220, + 0x358f4: 0x6c774420, 0x358f5: 0x6c774620, 0x358f6: 0x6c774820, 0x358f7: 0x6c774a20, + 0x358f8: 0x6c774c20, 0x358f9: 0x6c774e20, 0x358fa: 0x6c775020, 0x358fb: 0x6c775220, + 0x358fc: 0x6c775420, 0x358fd: 0x6c775620, 0x358fe: 0x6c775820, 0x358ff: 0x6c775a20, + // Block 0xd64, offset 0x35900 + 0x35900: 0x6c775c20, 0x35901: 0x6c775e20, 0x35902: 0x6c776020, 0x35903: 0x6c776220, + 0x35904: 0x6c776420, 0x35905: 0x6c776620, 0x35906: 0x6c776820, 0x35907: 0x6c776a20, + 0x35908: 0x6c776c20, 0x35909: 0x6c776e20, 0x3590a: 0x6c777020, 0x3590b: 0x6c777220, + 0x3590c: 0x6c777420, 0x3590d: 0x6c777620, 0x3590e: 0x6c777820, 0x3590f: 0x6c777a20, + 0x35910: 0x6c777c20, 0x35911: 0x6c777e20, 0x35912: 0x6c778020, 0x35913: 0x6c778220, + 0x35914: 0x6c778420, 0x35915: 0x6c778620, 0x35916: 0x6c778820, 0x35917: 0x6c778a20, + 0x35918: 0x6c778c20, 0x35919: 0x6c778e20, 0x3591a: 0x6c779020, 0x3591b: 0x6c779220, + 0x3591c: 0x6c779420, 0x3591d: 0x6c779620, 0x3591e: 0x6c779820, 0x3591f: 0x6c779a20, + 0x35920: 0x6c779c20, 0x35921: 0x6c779e20, 0x35922: 0x6c77a020, 0x35923: 0x6c77a220, + 0x35924: 0x6c77a420, 0x35925: 0x6c77a620, 0x35926: 0x6c77a820, 0x35927: 0x6c77aa20, + 0x35928: 0x6c77ac20, 0x35929: 0x6c77ae20, 0x3592a: 0x6c77b020, 0x3592b: 0x6c77b220, + 0x3592c: 0x6c77b420, 0x3592d: 0x6c77b620, 0x3592e: 0x6c77b820, 0x3592f: 0x6c77ba20, + 0x35930: 0x6c77bc20, 0x35931: 0x6c77be20, 0x35932: 0x6c77c020, 0x35933: 0x6c77c220, + 0x35934: 0x6c77c420, 0x35935: 0x6c77c620, 0x35936: 0x6c77c820, 0x35937: 0x6c9fbc20, + 0x35938: 0x6c9fbe20, 0x35939: 0x6c9fc020, 0x3593a: 0x6c9fc220, 0x3593b: 0x6c9fc420, + 0x3593c: 0x6c9fc620, 0x3593d: 0x6c9fc820, 0x3593e: 0x6c9fca20, 0x3593f: 0x6c9fcc20, + // Block 0xd65, offset 0x35940 + 0x35940: 0x6c9fce20, 0x35941: 0x6c9fd020, 0x35942: 0x6c9fd220, 0x35943: 0x6c9fd420, + 0x35944: 0x6c9fd620, 0x35945: 0x6c9fd820, 0x35946: 0x6c9fda20, 0x35947: 0x6c9fdc20, + 0x35948: 0x6c9fde20, 0x35949: 0x6c9fe020, 0x3594a: 0x6c9fe220, 0x3594b: 0x6c9fe420, + 0x3594c: 0x6c9fe620, 0x3594d: 0x6c9fe820, 0x3594e: 0x6c9fea20, 0x3594f: 0x6c9fec20, + 0x35950: 0x6c9fee20, 0x35951: 0x6c9ff020, 0x35952: 0x6c9ff220, 0x35953: 0x6c9ff420, + 0x35954: 0x6c9ff620, 0x35955: 0x6c9ff820, 0x35956: 0x6c9ffa20, 0x35957: 0x6c9ffc20, + 0x35958: 0x6c9ffe20, 0x35959: 0x6ca00020, 0x3595a: 0x6ca00220, 0x3595b: 0x6ca00420, + 0x3595c: 0x6ca00620, 0x3595d: 0x6ca00820, 0x3595e: 0x6ca00a20, 0x3595f: 0x6ca00c20, + 0x35960: 0x6ca00e20, 0x35961: 0x6ca01020, 0x35962: 0x6ca01220, 0x35963: 0x6ca01420, + 0x35964: 0x6ca01620, 0x35965: 0x6ca01820, 0x35966: 0x6ca01a20, 0x35967: 0x6ca01c20, + 0x35968: 0x6ca01e20, 0x35969: 0x6ca02020, 0x3596a: 0x6ca02220, 0x3596b: 0x6ca02420, + 0x3596c: 0x6ca02620, 0x3596d: 0x6ca02820, 0x3596e: 0x6ca02a20, 0x3596f: 0x6ca02c20, + 0x35970: 0x6ca02e20, 0x35971: 0x6ca03020, 0x35972: 0x6ca03220, 0x35973: 0x6ca03420, + 0x35974: 0x6ca03620, 0x35975: 0x6ca03820, 0x35976: 0x6ca03a20, 0x35977: 0x6ca03c20, + 0x35978: 0x6ca03e20, 0x35979: 0x6ca04020, 0x3597a: 0x6ca04220, 0x3597b: 0x6ca04420, + 0x3597c: 0x6ca04620, 0x3597d: 0x6ca04820, 0x3597e: 0x6ca04a20, 0x3597f: 0x6ca04c20, + // Block 0xd66, offset 0x35980 + 0x35980: 0x6ca04e20, 0x35981: 0x6ca05020, 0x35982: 0x6ca05220, 0x35983: 0x6ca05420, + 0x35984: 0x6ca05620, 0x35985: 0x6ca05820, 0x35986: 0x6ca05a20, 0x35987: 0x6ca05c20, + 0x35988: 0x6ca05e20, 0x35989: 0x6ca06020, 0x3598a: 0x6ca06220, 0x3598b: 0x6ca06420, + 0x3598c: 0x6ca06620, 0x3598d: 0x6ca06820, 0x3598e: 0x6ca06a20, 0x3598f: 0x6ca06c20, + 0x35990: 0x6ca06e20, 0x35991: 0x6ca07020, 0x35992: 0x6ca07220, 0x35993: 0x6ca07420, + 0x35994: 0x6ca07620, 0x35995: 0x6ca07820, 0x35996: 0x6ca07a20, 0x35997: 0x6ca07c20, + 0x35998: 0x6ca07e20, 0x35999: 0x6ca08020, 0x3599a: 0x6c77ca20, 0x3599b: 0x6ca08220, + 0x3599c: 0x6ca08420, 0x3599d: 0x6ca08620, 0x3599e: 0x6ca08820, 0x3599f: 0x6ca08a20, + 0x359a0: 0x6ca08c20, 0x359a1: 0x6ca08e20, 0x359a2: 0x6ca09020, 0x359a3: 0x6ca09220, + 0x359a4: 0x6ca09420, 0x359a5: 0x6ca09620, 0x359a6: 0x6ca09820, 0x359a7: 0x6ca09a20, + 0x359a8: 0x6ca09c20, 0x359a9: 0x6ca09e20, 0x359aa: 0x6ca0a020, 0x359ab: 0x6ca0a220, + 0x359ac: 0x6ca0a420, 0x359ad: 0x6ca0a620, 0x359ae: 0x6ca0a820, 0x359af: 0x6ca0aa20, + 0x359b0: 0x6ca0ac20, 0x359b1: 0x6ca0ae20, 0x359b2: 0x6ca0b020, 0x359b3: 0x6ca0b220, + 0x359b4: 0x6ca0b420, 0x359b5: 0x6ca0b620, 0x359b6: 0x6ca0b820, 0x359b7: 0x6ca0ba20, + 0x359b8: 0x6ca0bc20, 0x359b9: 0x6ca0be20, 0x359ba: 0x6ca0c020, 0x359bb: 0x6ca0c220, + 0x359bc: 0x6cccf620, 0x359bd: 0x6cccf820, 0x359be: 0x6cccfa20, 0x359bf: 0x6cccfc20, + // Block 0xd67, offset 0x359c0 + 0x359c0: 0x6cccfe20, 0x359c1: 0x6ccd0020, 0x359c2: 0x6ccd0220, 0x359c3: 0x6ccd0420, + 0x359c4: 0x6ccd0620, 0x359c5: 0x6ccd0820, 0x359c6: 0x6ccd0a20, 0x359c7: 0x6ccd0c20, + 0x359c8: 0x6ccd0e20, 0x359c9: 0x6ccd1020, 0x359ca: 0x6ca0c420, 0x359cb: 0x6ccd1220, + 0x359cc: 0x6ccd1420, 0x359cd: 0x6ccd1620, 0x359ce: 0x6ccd1820, 0x359cf: 0x6ccd1a20, + 0x359d0: 0x6ccd1c20, 0x359d1: 0x6ccd1e20, 0x359d2: 0x6ccd2020, 0x359d3: 0x6ccd2220, + 0x359d4: 0x6ccd2420, 0x359d5: 0x6ccd2620, 0x359d6: 0x6ccd2820, 0x359d7: 0x6ccd2a20, + 0x359d8: 0x6ccd2c20, 0x359d9: 0x6ccd2e20, 0x359da: 0x6ccd3020, 0x359db: 0x6ccd3220, + 0x359dc: 0x6ccd3420, 0x359dd: 0x6ccd3620, 0x359de: 0x6ccd3820, 0x359df: 0x6ccd3a20, + 0x359e0: 0x6ccd3c20, 0x359e1: 0x6ccd3e20, 0x359e2: 0x6ccd4020, 0x359e3: 0x6ccd4220, + 0x359e4: 0x6ccd4420, 0x359e5: 0x6ccd4620, 0x359e6: 0x6ccd4820, 0x359e7: 0x6ccd4a20, + 0x359e8: 0x6ccd4c20, 0x359e9: 0x6ccd4e20, 0x359ea: 0x6ccd5020, 0x359eb: 0x6ccd5220, + 0x359ec: 0x6ccd5420, 0x359ed: 0x6ccd5620, 0x359ee: 0x6ccd5820, 0x359ef: 0x6ccd5a20, + 0x359f0: 0x6ccd5c20, 0x359f1: 0x6ccd5e20, 0x359f2: 0x6ccd6020, 0x359f3: 0x6ccd6220, + 0x359f4: 0x6ccd6420, 0x359f5: 0x6ccd6620, 0x359f6: 0x6ccd6820, 0x359f7: 0x6ccd6a20, + 0x359f8: 0x6ccd6c20, 0x359f9: 0x6ccd6e20, 0x359fa: 0x6ccd7020, 0x359fb: 0x6ccd7220, + 0x359fc: 0x6ccd7420, 0x359fd: 0x6ccd7620, 0x359fe: 0x6ccd7820, 0x359ff: 0x6ccd7a20, + // Block 0xd68, offset 0x35a00 + 0x35a00: 0x6ccd7c20, 0x35a01: 0x6ccd7e20, 0x35a02: 0x6ccd8020, 0x35a03: 0x6ccd8220, + 0x35a04: 0x6ccd8420, 0x35a05: 0x6ccd8620, 0x35a06: 0x6ccd8820, 0x35a07: 0x6ccd8a20, + 0x35a08: 0x6ccd8c20, 0x35a09: 0x6ccd8e20, 0x35a0a: 0x6ccd9020, 0x35a0b: 0x6ccd9220, + 0x35a0c: 0x6ccd9420, 0x35a0d: 0x6ccd9620, 0x35a0e: 0x6ccd9820, 0x35a0f: 0x6ccd9a20, + 0x35a10: 0x6ccd9c20, 0x35a11: 0x6ccd9e20, 0x35a12: 0x6ccda020, 0x35a13: 0x6ccda220, + 0x35a14: 0x6ccda420, 0x35a15: 0x6ccda620, 0x35a16: 0x6ccda820, 0x35a17: 0x6ccdaa20, + 0x35a18: 0x6ccdac20, 0x35a19: 0x6ccdae20, 0x35a1a: 0x6ccdb020, 0x35a1b: 0x6ccdb220, + 0x35a1c: 0x6ccdb420, 0x35a1d: 0x6cfac420, 0x35a1e: 0x6cfac620, 0x35a1f: 0x6cfac820, + 0x35a20: 0x6cfaca20, 0x35a21: 0x6cfacc20, 0x35a22: 0x6cface20, 0x35a23: 0x6cfad020, + 0x35a24: 0x6cfad220, 0x35a25: 0x6cfad420, 0x35a26: 0x6cfad620, 0x35a27: 0x6cfad820, + 0x35a28: 0x6cfada20, 0x35a29: 0x6cfadc20, 0x35a2a: 0x6cfade20, 0x35a2b: 0x6cfae020, + 0x35a2c: 0x6cfae220, 0x35a2d: 0x6cfae420, 0x35a2e: 0x6cfae620, 0x35a2f: 0x6cfae820, + 0x35a30: 0x6cfaea20, 0x35a31: 0x6cfaec20, 0x35a32: 0x6cfaee20, 0x35a33: 0x6cfaf020, + 0x35a34: 0x6cfaf220, 0x35a35: 0x6cfaf420, 0x35a36: 0x6cfaf620, 0x35a37: 0x6cfaf820, + 0x35a38: 0x6cfafa20, 0x35a39: 0x6cfafc20, 0x35a3a: 0x6cfafe20, 0x35a3b: 0x6cfb0020, + 0x35a3c: 0x6cfb0220, 0x35a3d: 0x6cfb0420, 0x35a3e: 0x6cfb0620, 0x35a3f: 0x6cfb0820, + // Block 0xd69, offset 0x35a40 + 0x35a40: 0x6cfb0a20, 0x35a41: 0x6cfb0c20, 0x35a42: 0x6cfb0e20, 0x35a43: 0x6cfb1020, + 0x35a44: 0x6cfb1220, 0x35a45: 0x6cfb1420, 0x35a46: 0x6cfb1620, 0x35a47: 0x6cfb1820, + 0x35a48: 0x6cfb1a20, 0x35a49: 0x6cfb1c20, 0x35a4a: 0x6cfb1e20, 0x35a4b: 0x6cfb2020, + 0x35a4c: 0x6cfb2220, 0x35a4d: 0x6cfb2420, 0x35a4e: 0x6cfb2620, 0x35a4f: 0x6cfb2820, + 0x35a50: 0x6cfb2a20, 0x35a51: 0x6cfb2c20, 0x35a52: 0x6cfb2e20, 0x35a53: 0x6cfb3020, + 0x35a54: 0x6cfb3220, 0x35a55: 0x6cfb3420, 0x35a56: 0x6cfb3620, 0x35a57: 0x6cfb3820, + 0x35a58: 0x6cfb3a20, 0x35a59: 0x6cfb3c20, 0x35a5a: 0x6cfb3e20, 0x35a5b: 0x6cfb4020, + 0x35a5c: 0x6cfb4220, 0x35a5d: 0x6cfb4420, 0x35a5e: 0x6cfb4620, 0x35a5f: 0x6cfb4820, + 0x35a60: 0x6cfb4a20, 0x35a61: 0x6cfb4c20, 0x35a62: 0x6cfb4e20, 0x35a63: 0x6cfb5020, + 0x35a64: 0x6cfb5220, 0x35a65: 0x6cfb5420, 0x35a66: 0x6cfb5620, 0x35a67: 0x6cfb5820, + 0x35a68: 0x6cfb5a20, 0x35a69: 0x6cfb5c20, 0x35a6a: 0x6cfb5e20, 0x35a6b: 0x6cfb6020, + 0x35a6c: 0x6cfb6220, 0x35a6d: 0x6cfb6420, 0x35a6e: 0x6cfb6620, 0x35a6f: 0x6cfb6820, + 0x35a70: 0x6cfb6a20, 0x35a71: 0x6cfb6c20, 0x35a72: 0x6cfb6e20, 0x35a73: 0x6cfb7020, + 0x35a74: 0x6cfb7220, 0x35a75: 0x6cfb7420, 0x35a76: 0x6cfb7620, 0x35a77: 0x6cfb7820, + 0x35a78: 0x6cfb7a20, 0x35a79: 0x6cfb7c20, 0x35a7a: 0x6cfb7e20, 0x35a7b: 0x6cfb8020, + 0x35a7c: 0x6cfb8220, 0x35a7d: 0x6cfb8420, 0x35a7e: 0x6cfb8620, 0x35a7f: 0x6cfb8820, + // Block 0xd6a, offset 0x35a80 + 0x35a80: 0x6cfb8a20, 0x35a81: 0x6cfb8c20, 0x35a82: 0x6cfb8e20, 0x35a83: 0x6cfb9020, + 0x35a84: 0x6cfb9220, 0x35a85: 0x6cfb9420, 0x35a86: 0x6cfb9620, 0x35a87: 0x6cfb9820, + 0x35a88: 0x6cfb9a20, 0x35a89: 0x6cfb9c20, 0x35a8a: 0x6cfb9e20, 0x35a8b: 0x6cfba020, + 0x35a8c: 0x6cfba220, 0x35a8d: 0x6d29ca20, 0x35a8e: 0x6d29cc20, 0x35a8f: 0x6d29ce20, + 0x35a90: 0x6d29d020, 0x35a91: 0x6d29d220, 0x35a92: 0x6d29d420, 0x35a93: 0x6d29d620, + 0x35a94: 0x6d29d820, 0x35a95: 0x6d29da20, 0x35a96: 0x6d29dc20, 0x35a97: 0x6d29de20, + 0x35a98: 0x6d29e020, 0x35a99: 0x6d29e220, 0x35a9a: 0x6d29e420, 0x35a9b: 0x6d29e620, + 0x35a9c: 0x6d29e820, 0x35a9d: 0x6d29ea20, 0x35a9e: 0x6d29ec20, 0x35a9f: 0x6d29ee20, + 0x35aa0: 0x6d29f020, 0x35aa1: 0x6d29f220, 0x35aa2: 0x6d29f420, 0x35aa3: 0x6d29f620, + 0x35aa4: 0x6d29f820, 0x35aa5: 0x6d29fa20, 0x35aa6: 0x6d29fc20, 0x35aa7: 0x6d29fe20, + 0x35aa8: 0x6d2a0020, 0x35aa9: 0x6d2a0220, 0x35aaa: 0x6d2a0420, 0x35aab: 0x6d2a0620, + 0x35aac: 0x6d2a0820, 0x35aad: 0x6d2a0a20, 0x35aae: 0x6d2a0c20, 0x35aaf: 0x6d2a0e20, + 0x35ab0: 0x6d2a1020, 0x35ab1: 0x6d2a1220, 0x35ab2: 0x6d2a1420, 0x35ab3: 0x6d2a1620, + 0x35ab4: 0x6d56e220, 0x35ab5: 0x6d2a1820, 0x35ab6: 0x6d2a1a20, 0x35ab7: 0x6d2a1c20, + 0x35ab8: 0x6d2a1e20, 0x35ab9: 0x6d2a2020, 0x35aba: 0x6d2a2220, 0x35abb: 0x6d2a2420, + 0x35abc: 0x6d2a2620, 0x35abd: 0x6d2a2820, 0x35abe: 0x6d2a2a20, 0x35abf: 0x6d2a2c20, + // Block 0xd6b, offset 0x35ac0 + 0x35ac0: 0x6d2a2e20, 0x35ac1: 0x6d2a3020, 0x35ac2: 0x6d2a3220, 0x35ac3: 0x6d2a3420, + 0x35ac4: 0x6d2a3620, 0x35ac5: 0x6d2a3820, 0x35ac6: 0x6d2a3a20, 0x35ac7: 0x6d2a3c20, + 0x35ac8: 0x6d2a3e20, 0x35ac9: 0x6d2a4020, 0x35aca: 0x6d2a4220, 0x35acb: 0x6d2a4420, + 0x35acc: 0x6d2a4620, 0x35acd: 0x6d2a4820, 0x35ace: 0x6d2a4a20, 0x35acf: 0x6d2a4c20, + 0x35ad0: 0x6d2a4e20, 0x35ad1: 0x6d2a5020, 0x35ad2: 0x6d2a5220, 0x35ad3: 0x6d2a5420, + 0x35ad4: 0x6d2a5620, 0x35ad5: 0x6d2a5820, 0x35ad6: 0x6d2a5a20, 0x35ad7: 0x6d2a5c20, + 0x35ad8: 0x6d2a5e20, 0x35ad9: 0x6d4f2420, 0x35ada: 0x6d2a6020, 0x35adb: 0x6d2a6220, + 0x35adc: 0x6d2a6420, 0x35add: 0x6d2a6620, 0x35ade: 0x6d2a6820, 0x35adf: 0x6d2a6a20, + 0x35ae0: 0x6d2a6c20, 0x35ae1: 0x6d2a6e20, 0x35ae2: 0x6d2a7020, 0x35ae3: 0x6d2a7220, + 0x35ae4: 0x6d2a7420, 0x35ae5: 0x6d2a7620, 0x35ae6: 0x6d2a7820, 0x35ae7: 0x6d2a7a20, + 0x35ae8: 0x6d2a7c20, 0x35ae9: 0x6d2a7e20, 0x35aea: 0x6d2a8020, 0x35aeb: 0x6d2a8220, + 0x35aec: 0x6d2a8420, 0x35aed: 0x6d2a8620, 0x35aee: 0x6d2a8820, 0x35aef: 0x6d2a8a20, + 0x35af0: 0x6d2a8c20, 0x35af1: 0x6d2a8e20, 0x35af2: 0x6d2a9020, 0x35af3: 0x6d2a9220, + 0x35af4: 0x6d2a9420, 0x35af5: 0x6d2a9620, 0x35af6: 0x6d2a9820, 0x35af7: 0x6d2a9a20, + 0x35af8: 0x6d2a9c20, 0x35af9: 0x6d2a9e20, 0x35afa: 0x6d2aa020, 0x35afb: 0x6d2aa220, + 0x35afc: 0x6d2aa420, 0x35afd: 0x6d2aa620, 0x35afe: 0x6d2aa820, 0x35aff: 0x6d2aaa20, + // Block 0xd6c, offset 0x35b00 + 0x35b00: 0x6d2aac20, 0x35b01: 0x6d2aae20, 0x35b02: 0x6d2ab020, 0x35b03: 0x6d56e420, + 0x35b04: 0x6d56e620, 0x35b05: 0x6d56e820, 0x35b06: 0x6d56ea20, 0x35b07: 0x6d56ec20, + 0x35b08: 0x6d56ee20, 0x35b09: 0x6d56f020, 0x35b0a: 0x6d56f220, 0x35b0b: 0x6d56f420, + 0x35b0c: 0x6d56f620, 0x35b0d: 0x6d56f820, 0x35b0e: 0x6d56fa20, 0x35b0f: 0x6d56fc20, + 0x35b10: 0x6d56fe20, 0x35b11: 0x6d570020, 0x35b12: 0x6d570220, 0x35b13: 0x6d570420, + 0x35b14: 0x6d570620, 0x35b15: 0x6d570820, 0x35b16: 0x6d570a20, 0x35b17: 0x6d570c20, + 0x35b18: 0x6d570e20, 0x35b19: 0x6d571020, 0x35b1a: 0x6d571220, 0x35b1b: 0x6d571420, + 0x35b1c: 0x6d571620, 0x35b1d: 0x6d571820, 0x35b1e: 0x6d571a20, 0x35b1f: 0x6d571c20, + 0x35b20: 0x6d571e20, 0x35b21: 0x6d572020, 0x35b22: 0x6d572220, 0x35b23: 0x6d572420, + 0x35b24: 0x6d572620, 0x35b25: 0x6d572820, 0x35b26: 0x6d572a20, 0x35b27: 0x6d572c20, + 0x35b28: 0x6d572e20, 0x35b29: 0x6d573020, 0x35b2a: 0x6d573220, 0x35b2b: 0x6d573420, + 0x35b2c: 0x6d573620, 0x35b2d: 0x6d573820, 0x35b2e: 0x6d573a20, 0x35b2f: 0x6d573c20, + 0x35b30: 0x6d573e20, 0x35b31: 0x6d574020, 0x35b32: 0x6d574220, 0x35b33: 0x6d574420, + 0x35b34: 0x6d574620, 0x35b35: 0x6d574820, 0x35b36: 0x6d574a20, 0x35b37: 0x6d574c20, + 0x35b38: 0x6d574e20, 0x35b39: 0x6d575020, 0x35b3a: 0x6d575220, 0x35b3b: 0x6d575420, + 0x35b3c: 0x6d575620, 0x35b3d: 0x6d575820, 0x35b3e: 0x6d575a20, 0x35b3f: 0x6d575c20, + // Block 0xd6d, offset 0x35b40 + 0x35b40: 0x6d575e20, 0x35b41: 0x6d576020, 0x35b42: 0x6d576220, 0x35b43: 0x6d576420, + 0x35b44: 0x6d576620, 0x35b45: 0x6d576820, 0x35b46: 0x6d576a20, 0x35b47: 0x6d576c20, + 0x35b48: 0x6d576e20, 0x35b49: 0x6d577020, 0x35b4a: 0x6d577220, 0x35b4b: 0x6d577420, + 0x35b4c: 0x6d577620, 0x35b4d: 0x6d577820, 0x35b4e: 0x6d577a20, 0x35b4f: 0x6d577c20, + 0x35b50: 0x6d577e20, 0x35b51: 0x6d578020, 0x35b52: 0x6d578220, 0x35b53: 0x6d578420, + 0x35b54: 0x6d578620, 0x35b55: 0x6d578820, 0x35b56: 0x6d578a20, 0x35b57: 0x6d578c20, + 0x35b58: 0x6d578e20, 0x35b59: 0x6d579020, 0x35b5a: 0x6d579220, 0x35b5b: 0x6d579420, + 0x35b5c: 0x6d579620, 0x35b5d: 0x6d579820, 0x35b5e: 0x6d579a20, 0x35b5f: 0x6d579c20, + 0x35b60: 0x6d579e20, 0x35b61: 0x6d57a020, 0x35b62: 0x6d57a220, 0x35b63: 0x6d57a420, + 0x35b64: 0x6d57a620, 0x35b65: 0x6d57a820, 0x35b66: 0x6d57aa20, 0x35b67: 0x6d57ac20, + 0x35b68: 0x6d57ae20, 0x35b69: 0x6d822820, 0x35b6a: 0x6d57b020, 0x35b6b: 0x6d57b220, + 0x35b6c: 0x6d57b420, 0x35b6d: 0x6d57b620, 0x35b6e: 0x6d57b820, 0x35b6f: 0x6d57ba20, + 0x35b70: 0x6d57bc20, 0x35b71: 0x6d57be20, 0x35b72: 0x6d57c020, 0x35b73: 0x6d57c220, + 0x35b74: 0x6d57c420, 0x35b75: 0x6d57c620, 0x35b76: 0x6d57c820, 0x35b77: 0x6d57ca20, + 0x35b78: 0x6d57cc20, 0x35b79: 0x6d57ce20, 0x35b7a: 0x6d57d020, 0x35b7b: 0x6d57d220, + 0x35b7c: 0x6d57d420, 0x35b7d: 0x6d57d620, 0x35b7e: 0x6d57d820, 0x35b7f: 0x6d57da20, + // Block 0xd6e, offset 0x35b80 + 0x35b80: 0x6da7de20, 0x35b81: 0x6d57dc20, 0x35b82: 0x6d57de20, 0x35b83: 0x6d57e020, + 0x35b84: 0x6d57e220, 0x35b85: 0x6d822a20, 0x35b86: 0x6d822c20, 0x35b87: 0x6d822e20, + 0x35b88: 0x6d823020, 0x35b89: 0x6d823220, 0x35b8a: 0x6d823420, 0x35b8b: 0x6d823620, + 0x35b8c: 0x6d823820, 0x35b8d: 0x6d823a20, 0x35b8e: 0x6d823c20, 0x35b8f: 0x6d823e20, + 0x35b90: 0x6d824020, 0x35b91: 0x6d824220, 0x35b92: 0x6d824420, 0x35b93: 0x6d824620, + 0x35b94: 0x6d824820, 0x35b95: 0x6d824a20, 0x35b96: 0x6d824c20, 0x35b97: 0x6d824e20, + 0x35b98: 0x6d825020, 0x35b99: 0x6d825220, 0x35b9a: 0x6d825420, 0x35b9b: 0x6d825620, + 0x35b9c: 0x6d825820, 0x35b9d: 0x6d825a20, 0x35b9e: 0x6d825c20, 0x35b9f: 0x6d825e20, + 0x35ba0: 0x6d826020, 0x35ba1: 0x6d826220, 0x35ba2: 0x6d826420, 0x35ba3: 0x6d826620, + 0x35ba4: 0x6d826820, 0x35ba5: 0x6d826a20, 0x35ba6: 0x6d826c20, 0x35ba7: 0x6d826e20, + 0x35ba8: 0x6d827020, 0x35ba9: 0x6d827220, 0x35baa: 0x6d827420, 0x35bab: 0x6d827620, + 0x35bac: 0x6d827820, 0x35bad: 0x6d827a20, 0x35bae: 0x6d827c20, 0x35baf: 0x6d827e20, + 0x35bb0: 0x6d828020, 0x35bb1: 0x6d828220, 0x35bb2: 0x6d828420, 0x35bb3: 0x6d828620, + 0x35bb4: 0x6d828820, 0x35bb5: 0x6d828a20, 0x35bb6: 0x6d828c20, 0x35bb7: 0x6d828e20, + 0x35bb8: 0x6d829020, 0x35bb9: 0x6d829220, 0x35bba: 0x6d829420, 0x35bbb: 0x6d829620, + 0x35bbc: 0x6d829820, 0x35bbd: 0x6d829a20, 0x35bbe: 0x6d829c20, 0x35bbf: 0x6d829e20, + // Block 0xd6f, offset 0x35bc0 + 0x35bc0: 0x6d82a020, 0x35bc1: 0x6d82a220, 0x35bc2: 0x6d82a420, 0x35bc3: 0x6d82a620, + 0x35bc4: 0x6d82a820, 0x35bc5: 0x6d82aa20, 0x35bc6: 0x6d82ac20, 0x35bc7: 0x6d82ae20, + 0x35bc8: 0x6d82b020, 0x35bc9: 0x6d82b220, 0x35bca: 0x6d82b420, 0x35bcb: 0x6d82b620, + 0x35bcc: 0x6d82b820, 0x35bcd: 0x6d82ba20, 0x35bce: 0x6d82bc20, 0x35bcf: 0x6d82be20, + 0x35bd0: 0x6d82c020, 0x35bd1: 0x6d82c220, 0x35bd2: 0x6d82c420, 0x35bd3: 0x6d82c620, + 0x35bd4: 0x6d82c820, 0x35bd5: 0x6d82ca20, 0x35bd6: 0x6d82cc20, 0x35bd7: 0x6d82ce20, + 0x35bd8: 0x6d82d020, 0x35bd9: 0x6d82d220, 0x35bda: 0x6d82d420, 0x35bdb: 0x6d82d620, + 0x35bdc: 0x6d82d820, 0x35bdd: 0x6d82da20, 0x35bde: 0x6d82dc20, 0x35bdf: 0x6d82de20, + 0x35be0: 0x6d82e020, 0x35be1: 0x6d82e220, 0x35be2: 0x6d7ade20, 0x35be3: 0x6da7e020, + 0x35be4: 0x6da7e220, 0x35be5: 0x6da7e420, 0x35be6: 0x6da7e620, 0x35be7: 0x6da7e820, + 0x35be8: 0x6da7ea20, 0x35be9: 0x6da7ec20, 0x35bea: 0x6da7ee20, 0x35beb: 0x6da7f020, + 0x35bec: 0x6da7f220, 0x35bed: 0x6da7f420, 0x35bee: 0x6da7f620, 0x35bef: 0x6da7f820, + 0x35bf0: 0x6da7fa20, 0x35bf1: 0x6da7fc20, 0x35bf2: 0x6da7fe20, 0x35bf3: 0x6da80020, + 0x35bf4: 0x6da80220, 0x35bf5: 0x6da80420, 0x35bf6: 0x6da80620, 0x35bf7: 0x6da80820, + 0x35bf8: 0x6da80a20, 0x35bf9: 0x6da80c20, 0x35bfa: 0x6da80e20, 0x35bfb: 0x6da81020, + 0x35bfc: 0x6da81220, 0x35bfd: 0x6da81420, 0x35bfe: 0x6da81620, 0x35bff: 0x6da81820, + // Block 0xd70, offset 0x35c00 + 0x35c00: 0x6da81a20, 0x35c01: 0x6da81c20, 0x35c02: 0x6da81e20, 0x35c03: 0x6da82020, + 0x35c04: 0x6da82220, 0x35c05: 0x6da82420, 0x35c06: 0x6da82620, 0x35c07: 0x6da82820, + 0x35c08: 0x6da82a20, 0x35c09: 0x6da82c20, 0x35c0a: 0x6da82e20, 0x35c0b: 0x6da83020, + 0x35c0c: 0x6da83220, 0x35c0d: 0x6da83420, 0x35c0e: 0x6da83620, 0x35c0f: 0x6da83820, + 0x35c10: 0x6da83a20, 0x35c11: 0x6da83c20, 0x35c12: 0x6da83e20, 0x35c13: 0x6da84020, + 0x35c14: 0x6da84220, 0x35c15: 0x6da84420, 0x35c16: 0x6da84620, 0x35c17: 0x6da84820, + 0x35c18: 0x6da84a20, 0x35c19: 0x6da84c20, 0x35c1a: 0x6da84e20, 0x35c1b: 0x6da85020, + 0x35c1c: 0x6da85220, 0x35c1d: 0x6da85420, 0x35c1e: 0x6dc90820, 0x35c1f: 0x6da85620, + 0x35c20: 0x6da85820, 0x35c21: 0x6dc90a20, 0x35c22: 0x6dc90c20, 0x35c23: 0x6dc90e20, + 0x35c24: 0x6dc91020, 0x35c25: 0x6dc91220, 0x35c26: 0x6dc91420, 0x35c27: 0x6dc91620, + 0x35c28: 0x6dc91820, 0x35c29: 0x6dc91a20, 0x35c2a: 0x6dc91c20, 0x35c2b: 0x6dc91e20, + 0x35c2c: 0x6dc92020, 0x35c2d: 0x6dc92220, 0x35c2e: 0x6dc92420, 0x35c2f: 0x6dc92620, + 0x35c30: 0x6dc92820, 0x35c31: 0x6dc92a20, 0x35c32: 0x6dc92c20, 0x35c33: 0x6dc92e20, + 0x35c34: 0x6dc93020, 0x35c35: 0x6dc93220, 0x35c36: 0x6dc93420, 0x35c37: 0x6dc93620, + 0x35c38: 0x6dc93820, 0x35c39: 0x6dc93a20, 0x35c3a: 0x6dc93c20, 0x35c3b: 0x6dc93e20, + 0x35c3c: 0x6dc94020, 0x35c3d: 0x6dc94220, 0x35c3e: 0x6dc94420, 0x35c3f: 0x6dc94620, + // Block 0xd71, offset 0x35c40 + 0x35c40: 0x6dc94820, 0x35c41: 0x6dc94a20, 0x35c42: 0x6dc94c20, 0x35c43: 0x6dc94e20, + 0x35c44: 0x6dc95020, 0x35c45: 0x6dc95220, 0x35c46: 0x6dc95420, 0x35c47: 0x6dc95620, + 0x35c48: 0x6dc95820, 0x35c49: 0x6dc95a20, 0x35c4a: 0x6dc95c20, 0x35c4b: 0x6dc95e20, + 0x35c4c: 0x6dc96020, 0x35c4d: 0x6dc96220, 0x35c4e: 0x6dc96420, 0x35c4f: 0x6dc96620, + 0x35c50: 0x6dc96820, 0x35c51: 0x6dc96a20, 0x35c52: 0x6dc96c20, 0x35c53: 0x6dc96e20, + 0x35c54: 0x6dc97020, 0x35c55: 0x6dc97220, 0x35c56: 0x6dc97420, 0x35c57: 0x6dc97620, + 0x35c58: 0x6dc97820, 0x35c59: 0x6dc97a20, 0x35c5a: 0x6dc97c20, 0x35c5b: 0x6dc97e20, + 0x35c5c: 0x6dc98020, 0x35c5d: 0x6de4f420, 0x35c5e: 0x6dc98220, 0x35c5f: 0x6dc98420, + 0x35c60: 0x6dc98620, 0x35c61: 0x6de4f620, 0x35c62: 0x6dc98820, 0x35c63: 0x6dc98a20, + 0x35c64: 0x6dc98c20, 0x35c65: 0x6dc98e20, 0x35c66: 0x6dc99020, 0x35c67: 0x6dc99220, + 0x35c68: 0x6dc99420, 0x35c69: 0x6dc99620, 0x35c6a: 0x6dc99820, 0x35c6b: 0x6dc99a20, + 0x35c6c: 0x6dc99c20, 0x35c6d: 0x6dc99e20, 0x35c6e: 0x6dc9a020, 0x35c6f: 0x6dc9a220, + 0x35c70: 0x6dc9a420, 0x35c71: 0x6dc9a620, 0x35c72: 0x6dc9a820, 0x35c73: 0x6de4f820, + 0x35c74: 0x6de4fa20, 0x35c75: 0x6de4fc20, 0x35c76: 0x6de4fe20, 0x35c77: 0x6de50020, + 0x35c78: 0x6de50220, 0x35c79: 0x6de50420, 0x35c7a: 0x6de50620, 0x35c7b: 0x6de50820, + 0x35c7c: 0x6de50a20, 0x35c7d: 0x6de50c20, 0x35c7e: 0x6de50e20, 0x35c7f: 0x6de51020, + // Block 0xd72, offset 0x35c80 + 0x35c80: 0x6de51220, 0x35c81: 0x6de51420, 0x35c82: 0x6de51620, 0x35c83: 0x6de51820, + 0x35c84: 0x6de51a20, 0x35c85: 0x6de51c20, 0x35c86: 0x6de51e20, 0x35c87: 0x6de52020, + 0x35c88: 0x6de52220, 0x35c89: 0x6de52420, 0x35c8a: 0x6de52620, 0x35c8b: 0x6de52820, + 0x35c8c: 0x6de52a20, 0x35c8d: 0x6de52c20, 0x35c8e: 0x6de52e20, 0x35c8f: 0x6de53020, + 0x35c90: 0x6de53220, 0x35c91: 0x6de53420, 0x35c92: 0x6de53620, 0x35c93: 0x6de53820, + 0x35c94: 0x6de53a20, 0x35c95: 0x6de53c20, 0x35c96: 0x6de53e20, 0x35c97: 0x6de54020, + 0x35c98: 0x6de54220, 0x35c99: 0x6de54420, 0x35c9a: 0x6de54620, 0x35c9b: 0x6de54820, + 0x35c9c: 0x6de54a20, 0x35c9d: 0x6de54c20, 0x35c9e: 0x6de54e20, 0x35c9f: 0x6de55020, + 0x35ca0: 0x6de55220, 0x35ca1: 0x6de55420, 0x35ca2: 0x6de55620, 0x35ca3: 0x6de55820, + 0x35ca4: 0x6de55a20, 0x35ca5: 0x6de55c20, 0x35ca6: 0x6de55e20, 0x35ca7: 0x6de56020, + 0x35ca8: 0x6dfbf620, 0x35ca9: 0x6dfbf820, 0x35caa: 0x6dfbfa20, 0x35cab: 0x6dfbfc20, + 0x35cac: 0x6dfbfe20, 0x35cad: 0x6dfc0020, 0x35cae: 0x6dfc0220, 0x35caf: 0x6dfc0420, + 0x35cb0: 0x6dfc0620, 0x35cb1: 0x6dfc0820, 0x35cb2: 0x6dfc0a20, 0x35cb3: 0x6dfc0c20, + 0x35cb4: 0x6dfc0e20, 0x35cb5: 0x6dfc1020, 0x35cb6: 0x6dfc1220, 0x35cb7: 0x6dfc1420, + 0x35cb8: 0x6dfc1620, 0x35cb9: 0x6dfc1820, 0x35cba: 0x6dfc1a20, 0x35cbb: 0x6dfc1c20, + 0x35cbc: 0x6dfc1e20, 0x35cbd: 0x6dfc2020, 0x35cbe: 0x6dfc2220, 0x35cbf: 0x6dfc2420, + // Block 0xd73, offset 0x35cc0 + 0x35cc0: 0x6dfc2620, 0x35cc1: 0x6dfc2820, 0x35cc2: 0x6dfc2a20, 0x35cc3: 0x6dfc2c20, + 0x35cc4: 0x6dfc2e20, 0x35cc5: 0x6dfc3020, 0x35cc6: 0x6dfc3220, 0x35cc7: 0x6dfc3420, + 0x35cc8: 0x6dfc3620, 0x35cc9: 0x6dfc3820, 0x35cca: 0x6dfc3a20, 0x35ccb: 0x6dfc3c20, + 0x35ccc: 0x6dfc3e20, 0x35ccd: 0x6dfc4020, 0x35cce: 0x6e0f2220, 0x35ccf: 0x6e0f2420, + 0x35cd0: 0x6e0f2620, 0x35cd1: 0x6e0f2820, 0x35cd2: 0x6e0f2a20, 0x35cd3: 0x6e0f2c20, + 0x35cd4: 0x6e0f2e20, 0x35cd5: 0x6e0f3020, 0x35cd6: 0x6e0f3220, 0x35cd7: 0x6e0f3420, + 0x35cd8: 0x6e0f3620, 0x35cd9: 0x6e0f3820, 0x35cda: 0x6e0f3a20, 0x35cdb: 0x6e0f3c20, + 0x35cdc: 0x6e0f3e20, 0x35cdd: 0x6e0f4020, 0x35cde: 0x6e0f4220, 0x35cdf: 0x6e0f4420, + 0x35ce0: 0x6e0f4620, 0x35ce1: 0x6e0f4820, 0x35ce2: 0x6e0f4a20, 0x35ce3: 0x6e0f4c20, + 0x35ce4: 0x6e0f4e20, 0x35ce5: 0x6e0f5020, 0x35ce6: 0x6e0f5220, 0x35ce7: 0x6e0f5420, + 0x35ce8: 0x6e0f5620, 0x35ce9: 0x6e0f5820, 0x35cea: 0x6e0f5a20, 0x35ceb: 0x6e0f5c20, + 0x35cec: 0x6e0f5e20, 0x35ced: 0x6e0f6020, 0x35cee: 0x6e0f6220, 0x35cef: 0x6e0f6420, + 0x35cf0: 0x6e0f6620, 0x35cf1: 0x6e0f6820, 0x35cf2: 0x6e0f6a20, 0x35cf3: 0x6e0f6c20, + 0x35cf4: 0x6e0f6e20, 0x35cf5: 0x6e0f7020, 0x35cf6: 0x6e1e4220, 0x35cf7: 0x6e1e4420, + 0x35cf8: 0x6e1e4620, 0x35cf9: 0x6e1e4820, 0x35cfa: 0x6e1e4a20, 0x35cfb: 0x6e1e4c20, + 0x35cfc: 0x6e1e4e20, 0x35cfd: 0x6e1e5020, 0x35cfe: 0x6e1e5220, 0x35cff: 0x6e1e5420, + // Block 0xd74, offset 0x35d00 + 0x35d00: 0x6e1e5620, 0x35d01: 0x6e1e5820, 0x35d02: 0x6e1e5a20, 0x35d03: 0x6e1e5c20, + 0x35d04: 0x6e1e5e20, 0x35d05: 0x6e1e6020, 0x35d06: 0x6e1e6220, 0x35d07: 0x6e1e6420, + 0x35d08: 0x6e1e6620, 0x35d09: 0x6e1e6820, 0x35d0a: 0x6e29a620, 0x35d0b: 0x6e29a820, + 0x35d0c: 0x6e29aa20, 0x35d0d: 0x6e29ac20, 0x35d0e: 0x6e29ae20, 0x35d0f: 0x6e29b020, + 0x35d10: 0x6e29b220, 0x35d11: 0x6e29b420, 0x35d12: 0x6e29b620, 0x35d13: 0x6e29b820, + 0x35d14: 0x6e29ba20, 0x35d15: 0x6e29bc20, 0x35d16: 0x6e29be20, 0x35d17: 0x6e29c020, + 0x35d18: 0x6e29c220, 0x35d19: 0x6e29c420, 0x35d1a: 0x6e29c620, 0x35d1b: 0x6e29c820, + 0x35d1c: 0x6e29ca20, 0x35d1d: 0x6e29cc20, 0x35d1e: 0x6e29ce20, 0x35d1f: 0x6e29d020, + 0x35d20: 0x6e32ac20, 0x35d21: 0x6e32ae20, 0x35d22: 0x6e32b020, 0x35d23: 0x6e32b220, + 0x35d24: 0x6e32b420, 0x35d25: 0x6e32b620, 0x35d26: 0x6e32b820, 0x35d27: 0x6e32ba20, + 0x35d28: 0x6e32bc20, 0x35d29: 0x6e38e420, 0x35d2a: 0x6e38e620, 0x35d2b: 0x6e38e820, + 0x35d2c: 0x6e38ea20, 0x35d2d: 0x6e38ec20, 0x35d2e: 0x6e38ee20, 0x35d2f: 0x6e38f020, + 0x35d30: 0x6e3d5820, 0x35d31: 0x6e3d5a20, 0x35d32: 0x6e3d5c20, 0x35d33: 0x6e3d5e20, + 0x35d34: 0x6e3d6020, 0x35d35: 0x6e3d6220, 0x35d36: 0x6e3d6420, 0x35d37: 0x6e406220, + 0x35d38: 0x6e406420, 0x35d39: 0x6e406620, 0x35d3a: 0x6e406820, 0x35d3b: 0x6e406a20, + 0x35d3c: 0x6e42b220, 0x35d3d: 0x6e42b420, 0x35d3e: 0x6e443220, 0x35d3f: 0x6e452220, + // Block 0xd75, offset 0x35d40 + 0x35d40: 0x6e468020, 0x35d41: 0x6e46c820, 0x35d42: 0x6c09cc20, 0x35d43: 0x6c136620, + 0x35d44: 0x6c136820, 0x35d45: 0x6c136a20, 0x35d46: 0x6c136c20, 0x35d47: 0x6c136e20, + 0x35d48: 0x6c137020, 0x35d49: 0x6c137220, 0x35d4a: 0x6c137420, 0x35d4b: 0x6c137620, + 0x35d4c: 0x6c137820, 0x35d4d: 0x6c23aa20, 0x35d4e: 0x6c23ac20, 0x35d4f: 0x6c23ae20, + 0x35d50: 0x6c23b020, 0x35d51: 0x6c23b220, 0x35d52: 0x6c23b420, 0x35d53: 0x6c23b620, + 0x35d54: 0x6c23b820, 0x35d55: 0x6c23ba20, 0x35d56: 0x6c23bc20, 0x35d57: 0x6c23be20, + 0x35d58: 0x6c23c020, 0x35d59: 0x6c23c220, 0x35d5a: 0x6c23c420, 0x35d5b: 0x6c23c620, + 0x35d5c: 0x6c23c820, 0x35d5d: 0x6c39d820, 0x35d5e: 0x6c39da20, 0x35d5f: 0x6c39dc20, + 0x35d60: 0x6c39de20, 0x35d61: 0x6c39e020, 0x35d62: 0x6c39e220, 0x35d63: 0x6c39e420, + 0x35d64: 0x6c39e620, 0x35d65: 0x6c39e820, 0x35d66: 0x6c39ea20, 0x35d67: 0x6c39ec20, + 0x35d68: 0x6c39ee20, 0x35d69: 0x6c39f020, 0x35d6a: 0x6c39f220, 0x35d6b: 0x6c39f420, + 0x35d6c: 0x6c39f620, 0x35d6d: 0x6c39f820, 0x35d6e: 0x6c39fa20, 0x35d6f: 0x6c39fc20, + 0x35d70: 0x6c39fe20, 0x35d71: 0x6c3a0020, 0x35d72: 0x6c3a0220, 0x35d73: 0x6c3a0420, + 0x35d74: 0x6c3a0620, 0x35d75: 0x6c3a0820, 0x35d76: 0x6c3a0a20, 0x35d77: 0x6c3a0c20, + 0x35d78: 0x6c3a0e20, 0x35d79: 0x6c3a1020, 0x35d7a: 0x6c3a1220, 0x35d7b: 0x6c3a1420, + 0x35d7c: 0x6c557220, 0x35d7d: 0x6c557420, 0x35d7e: 0x6c557620, 0x35d7f: 0x6c557820, + // Block 0xd76, offset 0x35d80 + 0x35d80: 0x6c557a20, 0x35d81: 0x6c557c20, 0x35d82: 0x6c557e20, 0x35d83: 0x6c558020, + 0x35d84: 0x6c558220, 0x35d85: 0x6c558420, 0x35d86: 0x6c558620, 0x35d87: 0x6c558820, + 0x35d88: 0x6c558a20, 0x35d89: 0x6c558c20, 0x35d8a: 0x6c558e20, 0x35d8b: 0x6c559020, + 0x35d8c: 0x6c559220, 0x35d8d: 0x6c559420, 0x35d8e: 0x6c559620, 0x35d8f: 0x6c559820, + 0x35d90: 0x6c559a20, 0x35d91: 0x6c559c20, 0x35d92: 0x6c559e20, 0x35d93: 0x6c55a020, + 0x35d94: 0x6c55a220, 0x35d95: 0x6c55a420, 0x35d96: 0x6c55a620, 0x35d97: 0x6c55a820, + 0x35d98: 0x6c55aa20, 0x35d99: 0x6c55ac20, 0x35d9a: 0x6c55ae20, 0x35d9b: 0x6c55b020, + 0x35d9c: 0x6c55b220, 0x35d9d: 0x6c55b420, 0x35d9e: 0x6c55b620, 0x35d9f: 0x6c55b820, + 0x35da0: 0x6c55ba20, 0x35da1: 0x6c55bc20, 0x35da2: 0x6c55be20, 0x35da3: 0x6c55c020, + 0x35da4: 0x6c55c220, 0x35da5: 0x6c55c420, 0x35da6: 0x6c55c620, 0x35da7: 0x6c55c820, + 0x35da8: 0x6c55ca20, 0x35da9: 0x6c55cc20, 0x35daa: 0x6c55ce20, 0x35dab: 0x6c55d020, + 0x35dac: 0x6c55d220, 0x35dad: 0x6c55d420, 0x35dae: 0x6c55d620, 0x35daf: 0x6c784c20, + 0x35db0: 0x6c784e20, 0x35db1: 0x6c785020, 0x35db2: 0x6c785220, 0x35db3: 0x6c785420, + 0x35db4: 0x6c785620, 0x35db5: 0x6c785820, 0x35db6: 0x6c785a20, 0x35db7: 0x6c785c20, + 0x35db8: 0x6c785e20, 0x35db9: 0x6c786020, 0x35dba: 0x6c786220, 0x35dbb: 0x6c786420, + 0x35dbc: 0x6c786620, 0x35dbd: 0x6c786820, 0x35dbe: 0x6c786a20, 0x35dbf: 0x6c786c20, + // Block 0xd77, offset 0x35dc0 + 0x35dc0: 0x6c786e20, 0x35dc1: 0x6c787020, 0x35dc2: 0x6c787220, 0x35dc3: 0x6c787420, + 0x35dc4: 0x6c787620, 0x35dc5: 0x6c787820, 0x35dc6: 0x6c787a20, 0x35dc7: 0x6c787c20, + 0x35dc8: 0x6c787e20, 0x35dc9: 0x6c788020, 0x35dca: 0x6c788220, 0x35dcb: 0x6c788420, + 0x35dcc: 0x6c788620, 0x35dcd: 0x6c788820, 0x35dce: 0x6c788a20, 0x35dcf: 0x6c788c20, + 0x35dd0: 0x6c788e20, 0x35dd1: 0x6c789020, 0x35dd2: 0x6c789220, 0x35dd3: 0x6c789420, + 0x35dd4: 0x6c789620, 0x35dd5: 0x6c789820, 0x35dd6: 0x6c789a20, 0x35dd7: 0x6c789c20, + 0x35dd8: 0x6c789e20, 0x35dd9: 0x6c78a020, 0x35dda: 0x6c78a220, 0x35ddb: 0x6c78a420, + 0x35ddc: 0x6c78a620, 0x35ddd: 0x6c78a820, 0x35dde: 0x6c78aa20, 0x35ddf: 0x6c78ac20, + 0x35de0: 0x6c78ae20, 0x35de1: 0x6c78b020, 0x35de2: 0x6c78b220, 0x35de3: 0x6c78b420, + 0x35de4: 0x6c78b620, 0x35de5: 0x6ca14020, 0x35de6: 0x6ca14220, 0x35de7: 0x6ca14420, + 0x35de8: 0x6ca14620, 0x35de9: 0x6ca14820, 0x35dea: 0x6ca14a20, 0x35deb: 0x6ca14c20, + 0x35dec: 0x6ca14e20, 0x35ded: 0x6ca15020, 0x35dee: 0x6ca15220, 0x35def: 0x6ca15420, + 0x35df0: 0x6ca15620, 0x35df1: 0x6ca15820, 0x35df2: 0x6ca15a20, 0x35df3: 0x6ca15c20, + 0x35df4: 0x6ca15e20, 0x35df5: 0x6ca16020, 0x35df6: 0x6ca16220, 0x35df7: 0x6ca16420, + 0x35df8: 0x6ca16620, 0x35df9: 0x6ca16820, 0x35dfa: 0x6ca16a20, 0x35dfb: 0x6ca16c20, + 0x35dfc: 0x6ca16e20, 0x35dfd: 0x6ca17020, 0x35dfe: 0x6ca17220, 0x35dff: 0x6ca17420, + // Block 0xd78, offset 0x35e00 + 0x35e00: 0x6ca17620, 0x35e01: 0x6ca17820, 0x35e02: 0x6ca17a20, 0x35e03: 0x6ca17c20, + 0x35e04: 0x6ca17e20, 0x35e05: 0x6ca18020, 0x35e06: 0x6ca18220, 0x35e07: 0x6ca18420, + 0x35e08: 0x6ca18620, 0x35e09: 0x6ca18820, 0x35e0a: 0x6ca18a20, 0x35e0b: 0x6ca18c20, + 0x35e0c: 0x6ca18e20, 0x35e0d: 0x6ca19020, 0x35e0e: 0x6ca19220, 0x35e0f: 0x6ca19420, + 0x35e10: 0x6ca19620, 0x35e11: 0x6ca19820, 0x35e12: 0x6ca19a20, 0x35e13: 0x6ca19c20, + 0x35e14: 0x6ca19e20, 0x35e15: 0x6ca1a020, 0x35e16: 0x6ca1a220, 0x35e17: 0x6ca1a420, + 0x35e18: 0x6ca1a620, 0x35e19: 0x6ca1a820, 0x35e1a: 0x6ca1aa20, 0x35e1b: 0x6ca1ac20, + 0x35e1c: 0x6ca1ae20, 0x35e1d: 0x6ca1b020, 0x35e1e: 0x6ca1b220, 0x35e1f: 0x6ca1b420, + 0x35e20: 0x6ca1b620, 0x35e21: 0x6ca1b820, 0x35e22: 0x6cce4820, 0x35e23: 0x6cce4a20, + 0x35e24: 0x6cce4c20, 0x35e25: 0x6cce4e20, 0x35e26: 0x6cce5020, 0x35e27: 0x6cce5220, + 0x35e28: 0x6cce5420, 0x35e29: 0x6cce5620, 0x35e2a: 0x6cce5820, 0x35e2b: 0x6cce5a20, + 0x35e2c: 0x6cce5c20, 0x35e2d: 0x6cce5e20, 0x35e2e: 0x6cce6020, 0x35e2f: 0x6cce6220, + 0x35e30: 0x6cce6420, 0x35e31: 0x6cce6620, 0x35e32: 0x6cce6820, 0x35e33: 0x6cce6a20, + 0x35e34: 0x6cce6c20, 0x35e35: 0x6cce6e20, 0x35e36: 0x6cce7020, 0x35e37: 0x6cce7220, + 0x35e38: 0x6cce7420, 0x35e39: 0x6cce7620, 0x35e3a: 0x6cce7820, 0x35e3b: 0x6cce7a20, + 0x35e3c: 0x6cce7c20, 0x35e3d: 0x6cce7e20, 0x35e3e: 0x6cce8020, 0x35e3f: 0x6cce8220, + // Block 0xd79, offset 0x35e40 + 0x35e40: 0x6cce8420, 0x35e41: 0x6cce8620, 0x35e42: 0x6cce8820, 0x35e43: 0x6cce8a20, + 0x35e44: 0x6cce8c20, 0x35e45: 0x6cce8e20, 0x35e46: 0x6cce9020, 0x35e47: 0x6cce9220, + 0x35e48: 0x6cce9420, 0x35e49: 0x6cce9620, 0x35e4a: 0x6cce9820, 0x35e4b: 0x6cce9a20, + 0x35e4c: 0x6cce9c20, 0x35e4d: 0x6cce9e20, 0x35e4e: 0x6ccea020, 0x35e4f: 0x6ccea220, + 0x35e50: 0x6ccea420, 0x35e51: 0x6ccea620, 0x35e52: 0x6ccea820, 0x35e53: 0x6cceaa20, + 0x35e54: 0x6cceac20, 0x35e55: 0x6cceae20, 0x35e56: 0x6cceb020, 0x35e57: 0x6cceb220, + 0x35e58: 0x6cceb420, 0x35e59: 0x6cceb620, 0x35e5a: 0x6cceb820, 0x35e5b: 0x6cceba20, + 0x35e5c: 0x6ccebc20, 0x35e5d: 0x6ccebe20, 0x35e5e: 0x6ccec020, 0x35e5f: 0x6ccec220, + 0x35e60: 0x6ccec420, 0x35e61: 0x6ccec620, 0x35e62: 0x6ccec820, 0x35e63: 0x6cceca20, + 0x35e64: 0x6ccecc20, 0x35e65: 0x6ccece20, 0x35e66: 0x6cced020, 0x35e67: 0x6cced220, + 0x35e68: 0x6cced420, 0x35e69: 0x6cced620, 0x35e6a: 0x6cced820, 0x35e6b: 0x6cceda20, + 0x35e6c: 0x6ccedc20, 0x35e6d: 0x6ccede20, 0x35e6e: 0x6ccee020, 0x35e6f: 0x6ccee220, + 0x35e70: 0x6ccee420, 0x35e71: 0x6ccee620, 0x35e72: 0x6cfc6820, 0x35e73: 0x6cfc6a20, + 0x35e74: 0x6cfc6c20, 0x35e75: 0x6cfc6e20, 0x35e76: 0x6cfc7020, 0x35e77: 0x6cfc7220, + 0x35e78: 0x6cfc7420, 0x35e79: 0x6cfc7620, 0x35e7a: 0x6cfc7820, 0x35e7b: 0x6cfc7a20, + 0x35e7c: 0x6cfc7c20, 0x35e7d: 0x6cfc7e20, 0x35e7e: 0x6cfc8020, 0x35e7f: 0x6cfc8220, + // Block 0xd7a, offset 0x35e80 + 0x35e80: 0x6cfc8420, 0x35e81: 0x6cfc8620, 0x35e82: 0x6cfc8820, 0x35e83: 0x6cfc8a20, + 0x35e84: 0x6cfc8c20, 0x35e85: 0x6cfc8e20, 0x35e86: 0x6cfc9020, 0x35e87: 0x6cfc9220, + 0x35e88: 0x6cfc9420, 0x35e89: 0x6cfc9620, 0x35e8a: 0x6cfc9820, 0x35e8b: 0x6cfc9a20, + 0x35e8c: 0x6cfc9c20, 0x35e8d: 0x6cfc9e20, 0x35e8e: 0x6cfca020, 0x35e8f: 0x6cfca220, + 0x35e90: 0x6cfca420, 0x35e91: 0x6cfca620, 0x35e92: 0x6cfca820, 0x35e93: 0x6cfcaa20, + 0x35e94: 0x6cfcac20, 0x35e95: 0x6cfcae20, 0x35e96: 0x6cfcb020, 0x35e97: 0x6cfcb220, + 0x35e98: 0x6cfcb420, 0x35e99: 0x6cfcb620, 0x35e9a: 0x6cfcb820, 0x35e9b: 0x6cfcba20, + 0x35e9c: 0x6cfcbc20, 0x35e9d: 0x6cfcbe20, 0x35e9e: 0x6cfcc020, 0x35e9f: 0x6cfcc220, + 0x35ea0: 0x6cfcc420, 0x35ea1: 0x6cfcc620, 0x35ea2: 0x6cfcc820, 0x35ea3: 0x6cfcca20, + 0x35ea4: 0x6cfccc20, 0x35ea5: 0x6cfcce20, 0x35ea6: 0x6cfcd020, 0x35ea7: 0x6cfcd220, + 0x35ea8: 0x6cfcd420, 0x35ea9: 0x6cfcd620, 0x35eaa: 0x6cfcd820, 0x35eab: 0x6cfcda20, + 0x35eac: 0x6cfcdc20, 0x35ead: 0x6cfcde20, 0x35eae: 0x6cfce020, 0x35eaf: 0x6cfce220, + 0x35eb0: 0x6cfce420, 0x35eb1: 0x6cfce620, 0x35eb2: 0x6cfce820, 0x35eb3: 0x6cb74620, + 0x35eb4: 0x6cfcea20, 0x35eb5: 0x6cfcec20, 0x35eb6: 0x6cfcee20, 0x35eb7: 0x6cfcf020, + 0x35eb8: 0x6cfcf220, 0x35eb9: 0x6cfcf420, 0x35eba: 0x6cfcf620, 0x35ebb: 0x6cfcf820, + 0x35ebc: 0x6cfcfa20, 0x35ebd: 0x6cfcfc20, 0x35ebe: 0x6cfcfe20, 0x35ebf: 0x6cfd0020, + // Block 0xd7b, offset 0x35ec0 + 0x35ec0: 0x6cfd0220, 0x35ec1: 0x6cfd0420, 0x35ec2: 0x6cfd0620, 0x35ec3: 0x6cfd0820, + 0x35ec4: 0x6cfd0a20, 0x35ec5: 0x6cfd0c20, 0x35ec6: 0x6cfd0e20, 0x35ec7: 0x6d2b2c20, + 0x35ec8: 0x6d2b2e20, 0x35ec9: 0x6d2b3020, 0x35eca: 0x6d2b3220, 0x35ecb: 0x6d2b3420, + 0x35ecc: 0x6d2b3620, 0x35ecd: 0x6d2b3820, 0x35ece: 0x6d2b3a20, 0x35ecf: 0x6d2b3c20, + 0x35ed0: 0x6d2b3e20, 0x35ed1: 0x6d2b4020, 0x35ed2: 0x6d2b4220, 0x35ed3: 0x6d2b4420, + 0x35ed4: 0x6d2b4620, 0x35ed5: 0x6d2b4820, 0x35ed6: 0x6d2b4a20, 0x35ed7: 0x6d2b4c20, + 0x35ed8: 0x6d2b4e20, 0x35ed9: 0x6d2b5020, 0x35eda: 0x6d2b5220, 0x35edb: 0x6d2b5420, + 0x35edc: 0x6d2b5620, 0x35edd: 0x6d2b5820, 0x35ede: 0x6d2b5a20, 0x35edf: 0x6d2b5c20, + 0x35ee0: 0x6d2b5e20, 0x35ee1: 0x6d2b6020, 0x35ee2: 0x6d2b6220, 0x35ee3: 0x6d2b6420, + 0x35ee4: 0x6d2b6620, 0x35ee5: 0x6d2b6820, 0x35ee6: 0x6d2b6a20, 0x35ee7: 0x6d2b6c20, + 0x35ee8: 0x6d2b6e20, 0x35ee9: 0x6d2b7020, 0x35eea: 0x6d2b7220, 0x35eeb: 0x6d2b7420, + 0x35eec: 0x6d2b7620, 0x35eed: 0x6d2b7820, 0x35eee: 0x6d2b7a20, 0x35eef: 0x6d2b7c20, + 0x35ef0: 0x6d2b7e20, 0x35ef1: 0x6d2b8020, 0x35ef2: 0x6d585a20, 0x35ef3: 0x6d2b8220, + 0x35ef4: 0x6d2b8420, 0x35ef5: 0x6d2b8620, 0x35ef6: 0x6d2b8820, 0x35ef7: 0x6d2b8a20, + 0x35ef8: 0x6d2b8c20, 0x35ef9: 0x6d2b8e20, 0x35efa: 0x6d2b9020, 0x35efb: 0x6d2b9220, + 0x35efc: 0x6d2b9420, 0x35efd: 0x6d2b9620, 0x35efe: 0x6d2b9820, 0x35eff: 0x6d2b9a20, + // Block 0xd7c, offset 0x35f00 + 0x35f00: 0x6d2b9c20, 0x35f01: 0x6d2b9e20, 0x35f02: 0x6d2ba020, 0x35f03: 0x6d2ba220, + 0x35f04: 0x6d2ba420, 0x35f05: 0x6d2ba620, 0x35f06: 0x6d2ba820, 0x35f07: 0x6d2baa20, + 0x35f08: 0x6d2bac20, 0x35f09: 0x6d2bae20, 0x35f0a: 0x6d2bb020, 0x35f0b: 0x6d2bb220, + 0x35f0c: 0x6d2bb420, 0x35f0d: 0x6d2bb620, 0x35f0e: 0x6d2bb820, 0x35f0f: 0x6cfd1020, + 0x35f10: 0x6d585c20, 0x35f11: 0x6d585e20, 0x35f12: 0x6d586020, 0x35f13: 0x6d586220, + 0x35f14: 0x6d586420, 0x35f15: 0x6d586620, 0x35f16: 0x6d586820, 0x35f17: 0x6d586a20, + 0x35f18: 0x6d586c20, 0x35f19: 0x6d586e20, 0x35f1a: 0x6d587020, 0x35f1b: 0x6d587220, + 0x35f1c: 0x6d587420, 0x35f1d: 0x6d587620, 0x35f1e: 0x6d587820, 0x35f1f: 0x6d587a20, + 0x35f20: 0x6d587c20, 0x35f21: 0x6d587e20, 0x35f22: 0x6d588020, 0x35f23: 0x6d588220, + 0x35f24: 0x6d588420, 0x35f25: 0x6d588620, 0x35f26: 0x6d588820, 0x35f27: 0x6d588a20, + 0x35f28: 0x6d588c20, 0x35f29: 0x6d836620, 0x35f2a: 0x6d588e20, 0x35f2b: 0x6d589020, + 0x35f2c: 0x6d589220, 0x35f2d: 0x6d589420, 0x35f2e: 0x6d589620, 0x35f2f: 0x6d589820, + 0x35f30: 0x6d589a20, 0x35f31: 0x6d589c20, 0x35f32: 0x6d589e20, 0x35f33: 0x6d58a020, + 0x35f34: 0x6d58a220, 0x35f35: 0x6d58a420, 0x35f36: 0x6d58a620, 0x35f37: 0x6d58a820, + 0x35f38: 0x6d58aa20, 0x35f39: 0x6d58ac20, 0x35f3a: 0x6d58ae20, 0x35f3b: 0x6d58b020, + 0x35f3c: 0x6d58b220, 0x35f3d: 0x6d58b420, 0x35f3e: 0x6d58b620, 0x35f3f: 0x6d58b820, + // Block 0xd7d, offset 0x35f40 + 0x35f40: 0x6d385220, 0x35f41: 0x6d58ba20, 0x35f42: 0x6d705e20, 0x35f43: 0x6d58bc20, + 0x35f44: 0x6d58be20, 0x35f45: 0x6d58c020, 0x35f46: 0x6d58c220, 0x35f47: 0x6d58c420, + 0x35f48: 0x6d58c620, 0x35f49: 0x6d58c820, 0x35f4a: 0x6d58ca20, 0x35f4b: 0x6d58cc20, + 0x35f4c: 0x6d58ce20, 0x35f4d: 0x6d58d020, 0x35f4e: 0x6d58d220, 0x35f4f: 0x6d58d420, + 0x35f50: 0x6d58d620, 0x35f51: 0x6d58d820, 0x35f52: 0x6d58da20, 0x35f53: 0x6d58dc20, + 0x35f54: 0x6d58de20, 0x35f55: 0x6d58e020, 0x35f56: 0x6d58e220, 0x35f57: 0x6d58e420, + 0x35f58: 0x6d58e620, 0x35f59: 0x6d58e820, 0x35f5a: 0x6d58ea20, 0x35f5b: 0x6d58ec20, + 0x35f5c: 0x6d58ee20, 0x35f5d: 0x6d836820, 0x35f5e: 0x6d836a20, 0x35f5f: 0x6d836c20, + 0x35f60: 0x6d836e20, 0x35f61: 0x6d837020, 0x35f62: 0x6d837220, 0x35f63: 0x6d837420, + 0x35f64: 0x6d837620, 0x35f65: 0x6d837820, 0x35f66: 0x6d837a20, 0x35f67: 0x6d837c20, + 0x35f68: 0x6d837e20, 0x35f69: 0x6d838020, 0x35f6a: 0x6d838220, 0x35f6b: 0x6d838420, + 0x35f6c: 0x6d838620, 0x35f6d: 0x6d838820, 0x35f6e: 0x6d838a20, 0x35f6f: 0x6d838c20, + 0x35f70: 0x6d838e20, 0x35f71: 0x6d839020, 0x35f72: 0x6d839220, 0x35f73: 0x6d839420, + 0x35f74: 0x6d839620, 0x35f75: 0x6d839820, 0x35f76: 0x6d839a20, 0x35f77: 0x6d839c20, + 0x35f78: 0x6d839e20, 0x35f79: 0x6d83a020, 0x35f7a: 0x6d83a220, 0x35f7b: 0x6d83a420, + 0x35f7c: 0x6d83a620, 0x35f7d: 0x6d83a820, 0x35f7e: 0x6d83aa20, 0x35f7f: 0x6d83ac20, + // Block 0xd7e, offset 0x35f80 + 0x35f80: 0x6d83ae20, 0x35f81: 0x6d83b020, 0x35f82: 0x6d83b220, 0x35f83: 0x6d83b420, + 0x35f84: 0x6d83b620, 0x35f85: 0x6d83b820, 0x35f86: 0x6d83ba20, 0x35f87: 0x6d83bc20, + 0x35f88: 0x6d83be20, 0x35f89: 0x6d83c020, 0x35f8a: 0x6d83c220, 0x35f8b: 0x6d83c420, + 0x35f8c: 0x6d83c620, 0x35f8d: 0x6d83c820, 0x35f8e: 0x6d83ca20, 0x35f8f: 0x6d83cc20, + 0x35f90: 0x6d83ce20, 0x35f91: 0x6d83d020, 0x35f92: 0x6d83d220, 0x35f93: 0x6d83d420, + 0x35f94: 0x6d83d620, 0x35f95: 0x6d83d820, 0x35f96: 0x6d83da20, 0x35f97: 0x6d83dc20, + 0x35f98: 0x6d83de20, 0x35f99: 0x6d83e020, 0x35f9a: 0x6d83e220, 0x35f9b: 0x6d83e420, + 0x35f9c: 0x6d83e620, 0x35f9d: 0x6d83e820, 0x35f9e: 0x6d83ea20, 0x35f9f: 0x6d83ec20, + 0x35fa0: 0x6d793420, 0x35fa1: 0x6d83ee20, 0x35fa2: 0x6d83f020, 0x35fa3: 0x6d83f220, + 0x35fa4: 0x6d83f420, 0x35fa5: 0x6d83f620, 0x35fa6: 0x6d83f820, 0x35fa7: 0x6d83fa20, + 0x35fa8: 0x6d83fc20, 0x35fa9: 0x6d83fe20, 0x35faa: 0x6d840020, 0x35fab: 0x6d840220, + 0x35fac: 0x6d840420, 0x35fad: 0x6d840620, 0x35fae: 0x6d840820, 0x35faf: 0x6d840a20, + 0x35fb0: 0x6d840c20, 0x35fb1: 0x6d840e20, 0x35fb2: 0x6d841020, 0x35fb3: 0x6d841220, + 0x35fb4: 0x6d841420, 0x35fb5: 0x6da8ae20, 0x35fb6: 0x6da8b020, 0x35fb7: 0x6da8b220, + 0x35fb8: 0x6da8b420, 0x35fb9: 0x6da8b620, 0x35fba: 0x6da8b820, 0x35fbb: 0x6da8ba20, + 0x35fbc: 0x6da8bc20, 0x35fbd: 0x6da8be20, 0x35fbe: 0x6da8c020, 0x35fbf: 0x6da8c220, + // Block 0xd7f, offset 0x35fc0 + 0x35fc0: 0x6da8c420, 0x35fc1: 0x6da8c620, 0x35fc2: 0x6da8c820, 0x35fc3: 0x6da8ca20, + 0x35fc4: 0x6da8cc20, 0x35fc5: 0x6da8ce20, 0x35fc6: 0x6da8d020, 0x35fc7: 0x6da8d220, + 0x35fc8: 0x6da8d420, 0x35fc9: 0x6da8d620, 0x35fca: 0x6da8d820, 0x35fcb: 0x6da8da20, + 0x35fcc: 0x6da8dc20, 0x35fcd: 0x6da8de20, 0x35fce: 0x6da8e020, 0x35fcf: 0x6da8e220, + 0x35fd0: 0x6da8e420, 0x35fd1: 0x6da8e620, 0x35fd2: 0x6da8e820, 0x35fd3: 0x6da8ea20, + 0x35fd4: 0x6da8ec20, 0x35fd5: 0x6da8ee20, 0x35fd6: 0x6da8f020, 0x35fd7: 0x6da8f220, + 0x35fd8: 0x6da8f420, 0x35fd9: 0x6da8f620, 0x35fda: 0x6da8f820, 0x35fdb: 0x6da8fa20, + 0x35fdc: 0x6da8fc20, 0x35fdd: 0x6da8fe20, 0x35fde: 0x6da90020, 0x35fdf: 0x6da90220, + 0x35fe0: 0x6da90420, 0x35fe1: 0x6da90620, 0x35fe2: 0x6da90820, 0x35fe3: 0x6da90a20, + 0x35fe4: 0x6dc9d420, 0x35fe5: 0x6dc9d620, 0x35fe6: 0x6dc9d820, 0x35fe7: 0x6dc9da20, + 0x35fe8: 0x6dc9dc20, 0x35fe9: 0x6dc9de20, 0x35fea: 0x6dc9e020, 0x35feb: 0x6dc9e220, + 0x35fec: 0x6dc9e420, 0x35fed: 0x6dc9e620, 0x35fee: 0x6dc9e820, 0x35fef: 0x6dc9ea20, + 0x35ff0: 0x6dc9ec20, 0x35ff1: 0x6dc9ee20, 0x35ff2: 0x6dc9f020, 0x35ff3: 0x6dc9f220, + 0x35ff4: 0x6dc9f420, 0x35ff5: 0x6dc9f620, 0x35ff6: 0x6dc9f820, 0x35ff7: 0x6dc9fa20, + 0x35ff8: 0x6dc9fc20, 0x35ff9: 0x6dc9fe20, 0x35ffa: 0x6dca0020, 0x35ffb: 0x6dca0220, + 0x35ffc: 0x6dca0420, 0x35ffd: 0x6dca0620, 0x35ffe: 0x6dca0820, 0x35fff: 0x6dca0a20, + // Block 0xd80, offset 0x36000 + 0x36000: 0x6dca0c20, 0x36001: 0x6dca0e20, 0x36002: 0x6dca1020, 0x36003: 0x6dd07420, + 0x36004: 0x6dca1220, 0x36005: 0x6dca1420, 0x36006: 0x6dca1620, 0x36007: 0x6dca1820, + 0x36008: 0x6dca1a20, 0x36009: 0x6dca1c20, 0x3600a: 0x6dca1e20, 0x3600b: 0x6dca2020, + 0x3600c: 0x6dca2220, 0x3600d: 0x6dca2420, 0x3600e: 0x6dca2620, 0x3600f: 0x6dca2820, + 0x36010: 0x6dca2a20, 0x36011: 0x6dca2c20, 0x36012: 0x6de58e20, 0x36013: 0x6de59020, + 0x36014: 0x6de59220, 0x36015: 0x6de59420, 0x36016: 0x6de59620, 0x36017: 0x6de59820, + 0x36018: 0x6de59a20, 0x36019: 0x6de59c20, 0x3601a: 0x6de59e20, 0x3601b: 0x6de5a020, + 0x3601c: 0x6de5a220, 0x3601d: 0x6de5a420, 0x3601e: 0x6de5a620, 0x3601f: 0x6de5a820, + 0x36020: 0x6de5aa20, 0x36021: 0x6de5ac20, 0x36022: 0x6de5ae20, 0x36023: 0x6de5b020, + 0x36024: 0x6de5b220, 0x36025: 0x6de5b420, 0x36026: 0x6de5b620, 0x36027: 0x6de5b820, + 0x36028: 0x6de5ba20, 0x36029: 0x6de5bc20, 0x3602a: 0x6de5be20, 0x3602b: 0x6de5c020, + 0x3602c: 0x6de5c220, 0x3602d: 0x6de5c420, 0x3602e: 0x6de5c620, 0x3602f: 0x6de5c820, + 0x36030: 0x6de5ca20, 0x36031: 0x6de5cc20, 0x36032: 0x6de5ce20, 0x36033: 0x6dfc6620, + 0x36034: 0x6dfc6820, 0x36035: 0x6dfc6a20, 0x36036: 0x6dfc6c20, 0x36037: 0x6dfc6e20, + 0x36038: 0x6dfc7020, 0x36039: 0x6dfc7220, 0x3603a: 0x6dfc7420, 0x3603b: 0x6dfc7620, + 0x3603c: 0x6dfc7820, 0x3603d: 0x6dfc7a20, 0x3603e: 0x6dfc7c20, 0x3603f: 0x6dfc7e20, + // Block 0xd81, offset 0x36040 + 0x36040: 0x6dfc8020, 0x36041: 0x6dfc8220, 0x36042: 0x6dfc8420, 0x36043: 0x6dfc8620, + 0x36044: 0x6dfc8820, 0x36045: 0x6dfc8a20, 0x36046: 0x6dfc8c20, 0x36047: 0x6dfc8e20, + 0x36048: 0x6dfc9020, 0x36049: 0x6dfc9220, 0x3604a: 0x6dfc9420, 0x3604b: 0x6dfc9620, + 0x3604c: 0x6dfc9820, 0x3604d: 0x6dfc9a20, 0x3604e: 0x6dfc9c20, 0x3604f: 0x6dfc9e20, + 0x36050: 0x6dfca020, 0x36051: 0x6dfca220, 0x36052: 0x6dfca420, 0x36053: 0x6dfca620, + 0x36054: 0x6dfca820, 0x36055: 0x6dfcaa20, 0x36056: 0x6dfcac20, 0x36057: 0x6dfcae20, + 0x36058: 0x6dfcb020, 0x36059: 0x6dfcb220, 0x3605a: 0x6dfcb420, 0x3605b: 0x6dfcb620, + 0x3605c: 0x6dfcb820, 0x3605d: 0x6dfcba20, 0x3605e: 0x6dfcbc20, 0x3605f: 0x6dfcbe20, + 0x36060: 0x6dfcc020, 0x36061: 0x6e0f8420, 0x36062: 0x6e0f8620, 0x36063: 0x6e0f8820, + 0x36064: 0x6e0f8a20, 0x36065: 0x6e0f8c20, 0x36066: 0x6e0f8e20, 0x36067: 0x6e0f9020, + 0x36068: 0x6dfcc220, 0x36069: 0x6e1e7820, 0x3606a: 0x6e0f9220, 0x3606b: 0x6e0f9420, + 0x3606c: 0x6e0f9620, 0x3606d: 0x6e0f9820, 0x3606e: 0x6e0f9a20, 0x3606f: 0x6e0f9c20, + 0x36070: 0x6e0f9e20, 0x36071: 0x6e0fa020, 0x36072: 0x6e0fa220, 0x36073: 0x6e0fa420, + 0x36074: 0x6e0fa620, 0x36075: 0x6e0fa820, 0x36076: 0x6e0faa20, 0x36077: 0x6e0fac20, + 0x36078: 0x6e0fae20, 0x36079: 0x6e0fb020, 0x3607a: 0x6e1e7a20, 0x3607b: 0x6e1e7c20, + 0x3607c: 0x6e29de20, 0x3607d: 0x6e1e7e20, 0x3607e: 0x6e1e8020, 0x3607f: 0x6e1e8220, + // Block 0xd82, offset 0x36080 + 0x36080: 0x6e1e8420, 0x36081: 0x6e1e8620, 0x36082: 0x6e1e8820, 0x36083: 0x6e1e8a20, + 0x36084: 0x6e1e8c20, 0x36085: 0x6e1e8e20, 0x36086: 0x6e1e9020, 0x36087: 0x6e1e9220, + 0x36088: 0x6e29e020, 0x36089: 0x6e29e220, 0x3608a: 0x6e29e420, 0x3608b: 0x6e29e620, + 0x3608c: 0x6e29e820, 0x3608d: 0x6e29ea20, 0x3608e: 0x6e29ec20, 0x3608f: 0x6e2b4a20, + 0x36090: 0x6e29ee20, 0x36091: 0x6e29f020, 0x36092: 0x6e29f220, 0x36093: 0x6e29f420, + 0x36094: 0x6e29f620, 0x36095: 0x6e29f820, 0x36096: 0x6e29fa20, 0x36097: 0x6e32c220, + 0x36098: 0x6e32c420, 0x36099: 0x6e32c620, 0x3609a: 0x6e32c820, 0x3609b: 0x6e32ca20, + 0x3609c: 0x6e38f820, 0x3609d: 0x6e38fa20, 0x3609e: 0x6e38fc20, 0x3609f: 0x6e33dc20, + 0x360a0: 0x6e38fe20, 0x360a1: 0x6e390020, 0x360a2: 0x6e390220, 0x360a3: 0x6e390420, + 0x360a4: 0x6e3d6820, 0x360a5: 0x6e3d6a20, 0x360a6: 0x6e406c20, 0x360a7: 0x6e406e20, + 0x360a8: 0x6e407020, 0x360a9: 0x6e407220, 0x360aa: 0x6e42b820, 0x360ab: 0x6e443620, + 0x360ac: 0x6e42ba20, 0x360ad: 0x6e452420, 0x360ae: 0x6e468420, 0x360af: 0x6c04da20, + 0x360b0: 0x6c04dc20, 0x360b1: 0x6c09d020, 0x360b2: 0x6c23d020, 0x360b3: 0x6c23d220, + 0x360b4: 0x6c23d420, 0x360b5: 0x6c23d620, 0x360b6: 0x6c3a2c20, 0x360b7: 0x6c3a2e20, + 0x360b8: 0x6c3a3020, 0x360b9: 0x6c3a3220, 0x360ba: 0x6c3a3420, 0x360bb: 0x6c3a3620, + 0x360bc: 0x6c3a3820, 0x360bd: 0x6c55f420, 0x360be: 0x6c55f620, 0x360bf: 0x6c55f820, + // Block 0xd83, offset 0x360c0 + 0x360c0: 0x6c55fa20, 0x360c1: 0x6c55fc20, 0x360c2: 0x6c55fe20, 0x360c3: 0x6c560020, + 0x360c4: 0x6c560220, 0x360c5: 0x6c560420, 0x360c6: 0x6c560620, 0x360c7: 0x6c560820, + 0x360c8: 0x6c560a20, 0x360c9: 0x6c560c20, 0x360ca: 0x6c560e20, 0x360cb: 0x6c561020, + 0x360cc: 0x6c78cc20, 0x360cd: 0x6c78ce20, 0x360ce: 0x6c78d020, 0x360cf: 0x6c78d220, + 0x360d0: 0x6ca1d020, 0x360d1: 0x6ca1d220, 0x360d2: 0x6ca1d420, 0x360d3: 0x6ca1d620, + 0x360d4: 0x6ccf0c20, 0x360d5: 0x6ccf0e20, 0x360d6: 0x6ccf1020, 0x360d7: 0x6cbc6220, + 0x360d8: 0x6ccf1220, 0x360d9: 0x6ccf1420, 0x360da: 0x6ccf1620, 0x360db: 0x6ccf1820, + 0x360dc: 0x6cfd2e20, 0x360dd: 0x6cfd3020, 0x360de: 0x6cfd3220, 0x360df: 0x6cfd3420, + 0x360e0: 0x6cfd3620, 0x360e1: 0x6cfd3820, 0x360e2: 0x6d2bde20, 0x360e3: 0x6d2be020, + 0x360e4: 0x6d2be220, 0x360e5: 0x6d2be420, 0x360e6: 0x6d2be620, 0x360e7: 0x6d590620, + 0x360e8: 0x6d590820, 0x360e9: 0x6d590a20, 0x360ea: 0x6d590c20, 0x360eb: 0x6d590e20, + 0x360ec: 0x6d591020, 0x360ed: 0x6d591220, 0x360ee: 0x6d842a20, 0x360ef: 0x6d842c20, + 0x360f0: 0x6d842e20, 0x360f1: 0x6d843020, 0x360f2: 0x6da91c20, 0x360f3: 0x6da91e20, + 0x360f4: 0x6da92020, 0x360f5: 0x6da92220, 0x360f6: 0x6da92420, 0x360f7: 0x6da92620, + 0x360f8: 0x6da92820, 0x360f9: 0x6dca3a20, 0x360fa: 0x6de5d420, 0x360fb: 0x6dca3c20, + 0x360fc: 0x6da92a20, 0x360fd: 0x6dca3e20, 0x360fe: 0x6dca4020, 0x360ff: 0x6de5d620, + // Block 0xd84, offset 0x36100 + 0x36100: 0x6de5d820, 0x36101: 0x6de9a820, 0x36102: 0x6dfcca20, 0x36103: 0x6dfccc20, + 0x36104: 0x6dfcce20, 0x36105: 0x6dfcd020, 0x36106: 0x6dfcd220, 0x36107: 0x6e0fb420, + 0x36108: 0x6e29fe20, 0x36109: 0x6e2a0020, 0x3610a: 0x6e2a0220, 0x3610b: 0x6e32ce20, + 0x3610c: 0x6e390a20, 0x3610d: 0x6e390c20, 0x3610e: 0x6c23da20, 0x3610f: 0x6c23dc20, + 0x36110: 0x6c3a3c20, 0x36111: 0x6c3a3e20, 0x36112: 0x6c561620, 0x36113: 0x6c78d820, + 0x36114: 0x6c78da20, 0x36115: 0x6ca1dc20, 0x36116: 0x6ccf2220, 0x36117: 0x6ccf2420, + 0x36118: 0x6cfd4220, 0x36119: 0x6d2be820, 0x3611a: 0x6d2bea20, 0x3611b: 0x6d843220, + 0x3611c: 0x6c09d220, 0x3611d: 0x6c3a4220, 0x3611e: 0x6c561a20, 0x3611f: 0x6c561c20, + 0x36120: 0x6c78de20, 0x36121: 0x6c78e020, 0x36122: 0x6ca1e220, 0x36123: 0x6ccf2620, + 0x36124: 0x6cfd4420, 0x36125: 0x6cfd4620, 0x36126: 0x6d591820, 0x36127: 0x6d591a20, + 0x36128: 0x6d591c20, 0x36129: 0x6d843420, 0x3612a: 0x6c04e620, 0x3612b: 0x6c09d420, + 0x3612c: 0x6c09d620, 0x3612d: 0x6c137c20, 0x3612e: 0x6c23de20, 0x3612f: 0x6c3a4820, + 0x36130: 0x6c3a4a20, 0x36131: 0x6c3a4c20, 0x36132: 0x6c562220, 0x36133: 0x6c562420, + 0x36134: 0x6c562620, 0x36135: 0x6c562820, 0x36136: 0x6c78e420, 0x36137: 0x6c78e620, + 0x36138: 0x6c78e820, 0x36139: 0x6c78ea20, 0x3613a: 0x6c78ec20, 0x3613b: 0x6ca1e420, + 0x3613c: 0x6ca1e620, 0x3613d: 0x6ca1e820, 0x3613e: 0x6ca1ea20, 0x3613f: 0x6ca1ec20, + // Block 0xd85, offset 0x36140 + 0x36140: 0x6ca1ee20, 0x36141: 0x6ca1f020, 0x36142: 0x6ca1f220, 0x36143: 0x6ca1f420, + 0x36144: 0x6ccf2a20, 0x36145: 0x6ccf2c20, 0x36146: 0x6ccf2e20, 0x36147: 0x6ccf3020, + 0x36148: 0x6ccf3220, 0x36149: 0x6ccf3420, 0x3614a: 0x6ccf3620, 0x3614b: 0x6ccf3820, + 0x3614c: 0x6cfd4a20, 0x3614d: 0x6cfd4c20, 0x3614e: 0x6cfd4e20, 0x3614f: 0x6d2bf220, + 0x36150: 0x6d2bf420, 0x36151: 0x6d2bf620, 0x36152: 0x6d2bf820, 0x36153: 0x6d592020, + 0x36154: 0x6d592220, 0x36155: 0x6d592420, 0x36156: 0x6d843620, 0x36157: 0x6d843820, + 0x36158: 0x6d843a20, 0x36159: 0x6d843c20, 0x3615a: 0x6d843e20, 0x3615b: 0x6d844020, + 0x3615c: 0x6da93420, 0x3615d: 0x6da93620, 0x3615e: 0x6da93820, 0x3615f: 0x6da93a20, + 0x36160: 0x6de5de20, 0x36161: 0x6de5e020, 0x36162: 0x6dfcd420, 0x36163: 0x6e1e9820, + 0x36164: 0x6e2a0420, 0x36165: 0x6e407620, 0x36166: 0x6e42bc20, 0x36167: 0x6e42be20, + 0x36168: 0x6c09d820, 0x36169: 0x6c23e020, 0x3616a: 0x6c23e220, 0x3616b: 0x6c23e420, + 0x3616c: 0x6c3a5420, 0x3616d: 0x6c3a5620, 0x3616e: 0x6c3a5820, 0x3616f: 0x6c3a5a20, + 0x36170: 0x6c3a5c20, 0x36171: 0x6c562e20, 0x36172: 0x6c563020, 0x36173: 0x6c563220, + 0x36174: 0x6c563420, 0x36175: 0x6c563620, 0x36176: 0x6c563820, 0x36177: 0x6c563a20, + 0x36178: 0x6c563c20, 0x36179: 0x6c563e20, 0x3617a: 0x6c78f420, 0x3617b: 0x6c78f620, + 0x3617c: 0x6c78f820, 0x3617d: 0x6c78fa20, 0x3617e: 0x6c78fc20, 0x3617f: 0x6c78fe20, + // Block 0xd86, offset 0x36180 + 0x36180: 0x6ca1f820, 0x36181: 0x6ca1fa20, 0x36182: 0x6ca1fc20, 0x36183: 0x6ca1fe20, + 0x36184: 0x6ca20020, 0x36185: 0x6ca20220, 0x36186: 0x6ca20420, 0x36187: 0x6ccf4220, + 0x36188: 0x6ccf4420, 0x36189: 0x6ccf4620, 0x3618a: 0x6ccf4820, 0x3618b: 0x6ccf4a20, + 0x3618c: 0x6ccf4c20, 0x3618d: 0x6ccf4e20, 0x3618e: 0x6ccf5020, 0x3618f: 0x6ccf5220, + 0x36190: 0x6ccf5420, 0x36191: 0x6ccf5620, 0x36192: 0x6ccf5820, 0x36193: 0x6ccf5a20, + 0x36194: 0x6ccf5c20, 0x36195: 0x6ccf5e20, 0x36196: 0x6ccf6020, 0x36197: 0x6ccf6220, + 0x36198: 0x6cfd5a20, 0x36199: 0x6cfd5c20, 0x3619a: 0x6cfd5e20, 0x3619b: 0x6cfd6020, + 0x3619c: 0x6cfd6220, 0x3619d: 0x6cfd6420, 0x3619e: 0x6cfd6620, 0x3619f: 0x6cfd6820, + 0x361a0: 0x6cfd6a20, 0x361a1: 0x6cfd6c20, 0x361a2: 0x6d2c0020, 0x361a3: 0x6d2c0220, + 0x361a4: 0x6d2c0420, 0x361a5: 0x6d2c0620, 0x361a6: 0x6d2c0820, 0x361a7: 0x6d2c0a20, + 0x361a8: 0x6d592e20, 0x361a9: 0x6d593020, 0x361aa: 0x6d593220, 0x361ab: 0x6d593420, + 0x361ac: 0x6d593620, 0x361ad: 0x6d593820, 0x361ae: 0x6d593a20, 0x361af: 0x6d593c20, + 0x361b0: 0x6d593e20, 0x361b1: 0x6d594020, 0x361b2: 0x6d594220, 0x361b3: 0x6d844220, + 0x361b4: 0x6d844420, 0x361b5: 0x6d844620, 0x361b6: 0x6d844820, 0x361b7: 0x6d844a20, + 0x361b8: 0x6d844c20, 0x361b9: 0x6d844e20, 0x361ba: 0x6da93e20, 0x361bb: 0x6da94020, + 0x361bc: 0x6da94220, 0x361bd: 0x6da94420, 0x361be: 0x6da94620, 0x361bf: 0x6dca4620, + // Block 0xd87, offset 0x361c0 + 0x361c0: 0x6dca4820, 0x361c1: 0x6dca4a20, 0x361c2: 0x6dca4c20, 0x361c3: 0x6dfcd620, + 0x361c4: 0x6e0fb820, 0x361c5: 0x6c23e620, 0x361c6: 0x6c3a5e20, 0x361c7: 0x6c564020, + 0x361c8: 0x6c790420, 0x361c9: 0x6c790620, 0x361ca: 0x6ca20a20, 0x361cb: 0x6ca20c20, + 0x361cc: 0x6ccf6820, 0x361cd: 0x6ccf6a20, 0x361ce: 0x6ccf6c20, 0x361cf: 0x6ccf6e20, + 0x361d0: 0x6cfd6e20, 0x361d1: 0x6d2c0c20, 0x361d2: 0x6d594420, 0x361d3: 0x6dca4e20, + 0x361d4: 0x6c09da20, 0x361d5: 0x6c138620, 0x361d6: 0x6c138820, 0x361d7: 0x6c138a20, + 0x361d8: 0x6c23f620, 0x361d9: 0x6c23f820, 0x361da: 0x6c23fa20, 0x361db: 0x6c23fc20, + 0x361dc: 0x6c3a7c20, 0x361dd: 0x6c3a7e20, 0x361de: 0x6c3a8020, 0x361df: 0x6c3a8220, + 0x361e0: 0x6c3a8420, 0x361e1: 0x6c3a8620, 0x361e2: 0x6c3a8820, 0x361e3: 0x6c3a8a20, + 0x361e4: 0x6c3a8c20, 0x361e5: 0x6c3a8e20, 0x361e6: 0x6c3a9020, 0x361e7: 0x6c3a9220, + 0x361e8: 0x6c3a9420, 0x361e9: 0x6c3a9620, 0x361ea: 0x6c3a9820, 0x361eb: 0x6c3a9a20, + 0x361ec: 0x6c3a9c20, 0x361ed: 0x6c3a9e20, 0x361ee: 0x6c3aa020, 0x361ef: 0x6c3aa220, + 0x361f0: 0x6c3aa420, 0x361f1: 0x6c3aa620, 0x361f2: 0x6c3aa820, 0x361f3: 0x6c3aaa20, + 0x361f4: 0x6c3aac20, 0x361f5: 0x6c3aae20, 0x361f6: 0x6c3ab020, 0x361f7: 0x6c3ab220, + 0x361f8: 0x6c565e20, 0x361f9: 0x6c566020, 0x361fa: 0x6c566220, 0x361fb: 0x6c566420, + 0x361fc: 0x6c566620, 0x361fd: 0x6c566820, 0x361fe: 0x6c566a20, 0x361ff: 0x6c566c20, + // Block 0xd88, offset 0x36200 + 0x36200: 0x6c566e20, 0x36201: 0x6c567020, 0x36202: 0x6c567220, 0x36203: 0x6c567420, + 0x36204: 0x6c567620, 0x36205: 0x6c567820, 0x36206: 0x6c567a20, 0x36207: 0x6c567c20, + 0x36208: 0x6c567e20, 0x36209: 0x6c568020, 0x3620a: 0x6c568220, 0x3620b: 0x6c568420, + 0x3620c: 0x6c568620, 0x3620d: 0x6c568820, 0x3620e: 0x6c568a20, 0x3620f: 0x6c568c20, + 0x36210: 0x6c568e20, 0x36211: 0x6c791a20, 0x36212: 0x6c791c20, 0x36213: 0x6c791e20, + 0x36214: 0x6c792020, 0x36215: 0x6c792220, 0x36216: 0x6c792420, 0x36217: 0x6c792620, + 0x36218: 0x6c792820, 0x36219: 0x6c792a20, 0x3621a: 0x6c792c20, 0x3621b: 0x6ca22a20, + 0x3621c: 0x6ca22c20, 0x3621d: 0x6ca22e20, 0x3621e: 0x6ca23020, 0x3621f: 0x6ca23220, + 0x36220: 0x6ca23420, 0x36221: 0x6ca23620, 0x36222: 0x6ca23820, 0x36223: 0x6ca23a20, + 0x36224: 0x6ca23c20, 0x36225: 0x6ca23e20, 0x36226: 0x6ca24020, 0x36227: 0x6ca24220, + 0x36228: 0x6ca24420, 0x36229: 0x6ca24620, 0x3622a: 0x6ca24820, 0x3622b: 0x6ca24a20, + 0x3622c: 0x6ca24c20, 0x3622d: 0x6ca24e20, 0x3622e: 0x6ca25020, 0x3622f: 0x6ccf8e20, + 0x36230: 0x6ccf9020, 0x36231: 0x6ccf9220, 0x36232: 0x6ccf9420, 0x36233: 0x6ccf9620, + 0x36234: 0x6ccf9820, 0x36235: 0x6ccf9a20, 0x36236: 0x6ccf9c20, 0x36237: 0x6ccf9e20, + 0x36238: 0x6ccfa020, 0x36239: 0x6ccfa220, 0x3623a: 0x6ccfa420, 0x3623b: 0x6ccfa620, + 0x3623c: 0x6ccfa820, 0x3623d: 0x6ccfaa20, 0x3623e: 0x6ccfac20, 0x3623f: 0x6ccfae20, + // Block 0xd89, offset 0x36240 + 0x36240: 0x6ccfb020, 0x36241: 0x6ccfb220, 0x36242: 0x6ccfb420, 0x36243: 0x6ccfb620, + 0x36244: 0x6ccfb820, 0x36245: 0x6ccfba20, 0x36246: 0x6ccfbc20, 0x36247: 0x6ccfbe20, + 0x36248: 0x6ccfc020, 0x36249: 0x6ccfc220, 0x3624a: 0x6ccfc420, 0x3624b: 0x6ccfc620, + 0x3624c: 0x6ccfc820, 0x3624d: 0x6cfd8420, 0x3624e: 0x6cfd8620, 0x3624f: 0x6cfd8820, + 0x36250: 0x6cfd8a20, 0x36251: 0x6cfd8c20, 0x36252: 0x6cfd8e20, 0x36253: 0x6cfd9020, + 0x36254: 0x6cfd9220, 0x36255: 0x6cfd9420, 0x36256: 0x6cfd9620, 0x36257: 0x6cfd9820, + 0x36258: 0x6cfd9a20, 0x36259: 0x6cfd9c20, 0x3625a: 0x6cfd9e20, 0x3625b: 0x6cfda020, + 0x3625c: 0x6cf91a20, 0x3625d: 0x6cfda220, 0x3625e: 0x6cfda420, 0x3625f: 0x6cfda620, + 0x36260: 0x6cfda820, 0x36261: 0x6cfdaa20, 0x36262: 0x6cfdac20, 0x36263: 0x6cfdae20, + 0x36264: 0x6cfdb020, 0x36265: 0x6cfdb220, 0x36266: 0x6cfdb420, 0x36267: 0x6cfdb620, + 0x36268: 0x6cfdb820, 0x36269: 0x6d2c2220, 0x3626a: 0x6d2c2420, 0x3626b: 0x6d2c2620, + 0x3626c: 0x6d2c2820, 0x3626d: 0x6d2c2a20, 0x3626e: 0x6d2c2c20, 0x3626f: 0x6d2c2e20, + 0x36270: 0x6d2c3020, 0x36271: 0x6d2c3220, 0x36272: 0x6d2c3420, 0x36273: 0x6d2c3620, + 0x36274: 0x6d2c3820, 0x36275: 0x6d2c3a20, 0x36276: 0x6d2c3c20, 0x36277: 0x6d2c3e20, + 0x36278: 0x6d2c4020, 0x36279: 0x6d2c4220, 0x3627a: 0x6d2c4420, 0x3627b: 0x6d2c4620, + 0x3627c: 0x6d2c4820, 0x3627d: 0x6d2c4a20, 0x3627e: 0x6d2c4c20, 0x3627f: 0x6cfdba20, + // Block 0xd8a, offset 0x36280 + 0x36280: 0x6d2c4e20, 0x36281: 0x6d2c5020, 0x36282: 0x6d2c5220, 0x36283: 0x6d2c5420, + 0x36284: 0x6d2c5620, 0x36285: 0x6d2c5820, 0x36286: 0x6d2c5a20, 0x36287: 0x6d2c5c20, + 0x36288: 0x6d2c5e20, 0x36289: 0x6d2c6020, 0x3628a: 0x6d595820, 0x3628b: 0x6d595a20, + 0x3628c: 0x6d595c20, 0x3628d: 0x6d595e20, 0x3628e: 0x6d596020, 0x3628f: 0x6d596220, + 0x36290: 0x6d596420, 0x36291: 0x6d596620, 0x36292: 0x6d596820, 0x36293: 0x6d596a20, + 0x36294: 0x6d596c20, 0x36295: 0x6d596e20, 0x36296: 0x6d597020, 0x36297: 0x6d55d820, + 0x36298: 0x6d597220, 0x36299: 0x6d597420, 0x3629a: 0x6d597620, 0x3629b: 0x6d597820, + 0x3629c: 0x6d597a20, 0x3629d: 0x6d597c20, 0x3629e: 0x6d597e20, 0x3629f: 0x6d598020, + 0x362a0: 0x6d598220, 0x362a1: 0x6d846020, 0x362a2: 0x6d846220, 0x362a3: 0x6d846420, + 0x362a4: 0x6d846620, 0x362a5: 0x6d846820, 0x362a6: 0x6d846a20, 0x362a7: 0x6d846c20, + 0x362a8: 0x6d846e20, 0x362a9: 0x6d847020, 0x362aa: 0x6d847220, 0x362ab: 0x6d847420, + 0x362ac: 0x6d847620, 0x362ad: 0x6d847820, 0x362ae: 0x6d847a20, 0x362af: 0x6da95020, + 0x362b0: 0x6da95220, 0x362b1: 0x6da95420, 0x362b2: 0x6da95620, 0x362b3: 0x6da95820, + 0x362b4: 0x6da95a20, 0x362b5: 0x6da95c20, 0x362b6: 0x6da95e20, 0x362b7: 0x6da96020, + 0x362b8: 0x6da96220, 0x362b9: 0x6dca5420, 0x362ba: 0x6dca5620, 0x362bb: 0x6de5f220, + 0x362bc: 0x6de5f420, 0x362bd: 0x6de5f620, 0x362be: 0x6de5f820, 0x362bf: 0x6de5fa20, + // Block 0xd8b, offset 0x362c0 + 0x362c0: 0x6de5fc20, 0x362c1: 0x6de5fe20, 0x362c2: 0x6dfcdc20, 0x362c3: 0x6dfcde20, + 0x362c4: 0x6dfce020, 0x362c5: 0x6dfce220, 0x362c6: 0x6dfce420, 0x362c7: 0x6e0fbc20, + 0x362c8: 0x6e0fbe20, 0x362c9: 0x6e0fc020, 0x362ca: 0x6e0fc220, 0x362cb: 0x6e0fc420, + 0x362cc: 0x6e1e9e20, 0x362cd: 0x6e1ea020, 0x362ce: 0x6e1ea220, 0x362cf: 0x6e1ea420, + 0x362d0: 0x6e1ea620, 0x362d1: 0x6e2a0620, 0x362d2: 0x6e2a0820, 0x362d3: 0x6e2a0a20, + 0x362d4: 0x6e32d020, 0x362d5: 0x6e32d220, 0x362d6: 0x6e391020, 0x362d7: 0x6e391220, + 0x362d8: 0x6e391420, 0x362d9: 0x6e42c020, 0x362da: 0x6c04f820, 0x362db: 0x6c09e220, + 0x362dc: 0x6c09e420, 0x362dd: 0x6c09e620, 0x362de: 0x6c09e820, 0x362df: 0x6c09ea20, + 0x362e0: 0x6c09ec20, 0x362e1: 0x6c139a20, 0x362e2: 0x6c139c20, 0x362e3: 0x6c139e20, + 0x362e4: 0x6c13a020, 0x362e5: 0x6c13a220, 0x362e6: 0x6c13a420, 0x362e7: 0x6c13a620, + 0x362e8: 0x6c13a820, 0x362e9: 0x6c13aa20, 0x362ea: 0x6c13ac20, 0x362eb: 0x6c13ae20, + 0x362ec: 0x6c13b020, 0x362ed: 0x6c13b220, 0x362ee: 0x6c13b420, 0x362ef: 0x6c242820, + 0x362f0: 0x6c242a20, 0x362f1: 0x6c242c20, 0x362f2: 0x6c242e20, 0x362f3: 0x6c243020, + 0x362f4: 0x6c243220, 0x362f5: 0x6c243420, 0x362f6: 0x6c243620, 0x362f7: 0x6c243820, + 0x362f8: 0x6c243a20, 0x362f9: 0x6c243c20, 0x362fa: 0x6c243e20, 0x362fb: 0x6c244020, + 0x362fc: 0x6c244220, 0x362fd: 0x6c244420, 0x362fe: 0x6c244620, 0x362ff: 0x6c244820, + // Block 0xd8c, offset 0x36300 + 0x36300: 0x6c244a20, 0x36301: 0x6c244c20, 0x36302: 0x6c244e20, 0x36303: 0x6c245020, + 0x36304: 0x6c245220, 0x36305: 0x6c245420, 0x36306: 0x6c245620, 0x36307: 0x6c245820, + 0x36308: 0x6c245a20, 0x36309: 0x6c245c20, 0x3630a: 0x6c245e20, 0x3630b: 0x6c246020, + 0x3630c: 0x6c246220, 0x3630d: 0x6c246420, 0x3630e: 0x6c246620, 0x3630f: 0x6c3af620, + 0x36310: 0x6c3af820, 0x36311: 0x6c3afa20, 0x36312: 0x6c3afc20, 0x36313: 0x6c3afe20, + 0x36314: 0x6c3b0020, 0x36315: 0x6c3b0220, 0x36316: 0x6c3b0420, 0x36317: 0x6c3b0620, + 0x36318: 0x6c3b0820, 0x36319: 0x6c3b0a20, 0x3631a: 0x6c3b0c20, 0x3631b: 0x6c3b0e20, + 0x3631c: 0x6c3b1020, 0x3631d: 0x6c3b1220, 0x3631e: 0x6c3b1420, 0x3631f: 0x6c3b1620, + 0x36320: 0x6c3b1820, 0x36321: 0x6c3b1a20, 0x36322: 0x6c3b1c20, 0x36323: 0x6c3b1e20, + 0x36324: 0x6c3b2020, 0x36325: 0x6c3b2220, 0x36326: 0x6c3b2420, 0x36327: 0x6c3b2620, + 0x36328: 0x6c3b2820, 0x36329: 0x6c3b2a20, 0x3632a: 0x6c3b2c20, 0x3632b: 0x6c3b2e20, + 0x3632c: 0x6c3b3020, 0x3632d: 0x6c3b3220, 0x3632e: 0x6c246820, 0x3632f: 0x6c56cc20, + 0x36330: 0x6c56ce20, 0x36331: 0x6c56d020, 0x36332: 0x6c56d220, 0x36333: 0x6c56d420, + 0x36334: 0x6c56d620, 0x36335: 0x6c56d820, 0x36336: 0x6c56da20, 0x36337: 0x6c56dc20, + 0x36338: 0x6c56de20, 0x36339: 0x6c56e020, 0x3633a: 0x6c56e220, 0x3633b: 0x6c56e420, + 0x3633c: 0x6c56e620, 0x3633d: 0x6c56e820, 0x3633e: 0x6c56ea20, 0x3633f: 0x6c56ec20, + // Block 0xd8d, offset 0x36340 + 0x36340: 0x6c56ee20, 0x36341: 0x6c56f020, 0x36342: 0x6c56f220, 0x36343: 0x6c56f420, + 0x36344: 0x6c56f620, 0x36345: 0x6c56f820, 0x36346: 0x6c56fa20, 0x36347: 0x6c56fc20, + 0x36348: 0x6c56fe20, 0x36349: 0x6c570020, 0x3634a: 0x6c570220, 0x3634b: 0x6c570420, + 0x3634c: 0x6c570620, 0x3634d: 0x6c570820, 0x3634e: 0x6c570a20, 0x3634f: 0x6c570c20, + 0x36350: 0x6c570e20, 0x36351: 0x6c571020, 0x36352: 0x6c571220, 0x36353: 0x6c571420, + 0x36354: 0x6c571620, 0x36355: 0x6c571820, 0x36356: 0x6c571a20, 0x36357: 0x6c571c20, + 0x36358: 0x6c571e20, 0x36359: 0x6c796420, 0x3635a: 0x6c796620, 0x3635b: 0x6c796820, + 0x3635c: 0x6c796a20, 0x3635d: 0x6c796c20, 0x3635e: 0x6c796e20, 0x3635f: 0x6c797020, + 0x36360: 0x6c797220, 0x36361: 0x6c797420, 0x36362: 0x6c797620, 0x36363: 0x6c572020, + 0x36364: 0x6c797820, 0x36365: 0x6c797a20, 0x36366: 0x6c797c20, 0x36367: 0x6c797e20, + 0x36368: 0x6c798020, 0x36369: 0x6c798220, 0x3636a: 0x6c798420, 0x3636b: 0x6c798620, + 0x3636c: 0x6c798820, 0x3636d: 0x6c798a20, 0x3636e: 0x6c798c20, 0x3636f: 0x6c798e20, + 0x36370: 0x6c799020, 0x36371: 0x6c799220, 0x36372: 0x6c799420, 0x36373: 0x6c799620, + 0x36374: 0x6c799820, 0x36375: 0x6c799a20, 0x36376: 0x6c799c20, 0x36377: 0x6c799e20, + 0x36378: 0x6c79a020, 0x36379: 0x6c79a220, 0x3637a: 0x6c79a420, 0x3637b: 0x6c79a620, + 0x3637c: 0x6c79a820, 0x3637d: 0x6c79aa20, 0x3637e: 0x6c79ac20, 0x3637f: 0x6c79ae20, + // Block 0xd8e, offset 0x36380 + 0x36380: 0x6c79b020, 0x36381: 0x6c79b220, 0x36382: 0x6c79b420, 0x36383: 0x6ca29a20, + 0x36384: 0x6ca29c20, 0x36385: 0x6ca29e20, 0x36386: 0x6ca2a020, 0x36387: 0x6ca2a220, + 0x36388: 0x6ca2a420, 0x36389: 0x6ca2a620, 0x3638a: 0x6ca2a820, 0x3638b: 0x6ca2aa20, + 0x3638c: 0x6ca2ac20, 0x3638d: 0x6ca2ae20, 0x3638e: 0x6ca2b020, 0x3638f: 0x6ca2b220, + 0x36390: 0x6ca2b420, 0x36391: 0x6ca2b620, 0x36392: 0x6ca2b820, 0x36393: 0x6ca2ba20, + 0x36394: 0x6ca2bc20, 0x36395: 0x6ca2be20, 0x36396: 0x6ca2c020, 0x36397: 0x6ca2c220, + 0x36398: 0x6ca2c420, 0x36399: 0x6ca2c620, 0x3639a: 0x6ca2c820, 0x3639b: 0x6ca2ca20, + 0x3639c: 0x6cd00c20, 0x3639d: 0x6cd00e20, 0x3639e: 0x6cd01020, 0x3639f: 0x6cd01220, + 0x363a0: 0x6cd01420, 0x363a1: 0x6cd01620, 0x363a2: 0x6cd01820, 0x363a3: 0x6cd01a20, + 0x363a4: 0x6cd01c20, 0x363a5: 0x6cd01e20, 0x363a6: 0x6cd02020, 0x363a7: 0x6cd02220, + 0x363a8: 0x6cd02420, 0x363a9: 0x6cd02620, 0x363aa: 0x6cd02820, 0x363ab: 0x6cd02a20, + 0x363ac: 0x6cd02c20, 0x363ad: 0x6cd02e20, 0x363ae: 0x6cd03020, 0x363af: 0x6cd03220, + 0x363b0: 0x6cd03420, 0x363b1: 0x6cd03620, 0x363b2: 0x6cd03820, 0x363b3: 0x6cd03a20, + 0x363b4: 0x6cd03c20, 0x363b5: 0x6cf3a620, 0x363b6: 0x6cd03e20, 0x363b7: 0x6cd04020, + 0x363b8: 0x6cd04220, 0x363b9: 0x6cd04420, 0x363ba: 0x6cd04620, 0x363bb: 0x6cd04820, + 0x363bc: 0x6cd04a20, 0x363bd: 0x6cd04c20, 0x363be: 0x6cd04e20, 0x363bf: 0x6cd05020, + // Block 0xd8f, offset 0x363c0 + 0x363c0: 0x6cd05220, 0x363c1: 0x6cd05420, 0x363c2: 0x6cd05620, 0x363c3: 0x6cd05820, + 0x363c4: 0x6cd05a20, 0x363c5: 0x6cd05c20, 0x363c6: 0x6cd05e20, 0x363c7: 0x6cd06020, + 0x363c8: 0x6cd06220, 0x363c9: 0x6cd06420, 0x363ca: 0x6cd06620, 0x363cb: 0x6cd06820, + 0x363cc: 0x6cd06a20, 0x363cd: 0x6cfdee20, 0x363ce: 0x6cfdf020, 0x363cf: 0x6cfdf220, + 0x363d0: 0x6cfdf420, 0x363d1: 0x6cfdf620, 0x363d2: 0x6cfdf820, 0x363d3: 0x6cfdfa20, + 0x363d4: 0x6cfdfc20, 0x363d5: 0x6cfdfe20, 0x363d6: 0x6cfe0020, 0x363d7: 0x6cfe0220, + 0x363d8: 0x6cfe0420, 0x363d9: 0x6cfe0620, 0x363da: 0x6cfe0820, 0x363db: 0x6cfe0a20, + 0x363dc: 0x6cfe0c20, 0x363dd: 0x6cfe0e20, 0x363de: 0x6cfe1020, 0x363df: 0x6cfe1220, + 0x363e0: 0x6cfe1420, 0x363e1: 0x6cfe1620, 0x363e2: 0x6cfe1820, 0x363e3: 0x6cfe1a20, + 0x363e4: 0x6cfe1c20, 0x363e5: 0x6cfe1e20, 0x363e6: 0x6cfe2020, 0x363e7: 0x6cfe2220, + 0x363e8: 0x6cfe2420, 0x363e9: 0x6cfe2620, 0x363ea: 0x6cfe2820, 0x363eb: 0x6cfe2a20, + 0x363ec: 0x6cfe2c20, 0x363ed: 0x6cfe2e20, 0x363ee: 0x6cfe3020, 0x363ef: 0x6cfe3220, + 0x363f0: 0x6cfe3420, 0x363f1: 0x6cfe3620, 0x363f2: 0x6cfe3820, 0x363f3: 0x6cfe3a20, + 0x363f4: 0x6cfe3c20, 0x363f5: 0x6cfe3e20, 0x363f6: 0x6cfe4020, 0x363f7: 0x6cfe4220, + 0x363f8: 0x6cfe4420, 0x363f9: 0x6d2c8a20, 0x363fa: 0x6d2c8c20, 0x363fb: 0x6d2c8e20, + 0x363fc: 0x6d2c9020, 0x363fd: 0x6d2c9220, 0x363fe: 0x6d2c9420, 0x363ff: 0x6d2c9620, + // Block 0xd90, offset 0x36400 + 0x36400: 0x6d2c9820, 0x36401: 0x6d2c9a20, 0x36402: 0x6d2c9c20, 0x36403: 0x6d2c9e20, + 0x36404: 0x6d2ca020, 0x36405: 0x6d2ca220, 0x36406: 0x6d2ca420, 0x36407: 0x6d2ca620, + 0x36408: 0x6d2ca820, 0x36409: 0x6d2caa20, 0x3640a: 0x6d2cac20, 0x3640b: 0x6d2cae20, + 0x3640c: 0x6d2cb020, 0x3640d: 0x6d2cb220, 0x3640e: 0x6d2cb420, 0x3640f: 0x6d2cb620, + 0x36410: 0x6d2cb820, 0x36411: 0x6d2cba20, 0x36412: 0x6d2cbc20, 0x36413: 0x6d2cbe20, + 0x36414: 0x6d2cc020, 0x36415: 0x6d2cc220, 0x36416: 0x6d2cc420, 0x36417: 0x6d2cc620, + 0x36418: 0x6d2cc820, 0x36419: 0x6d2cca20, 0x3641a: 0x6d2ccc20, 0x3641b: 0x6d2cce20, + 0x3641c: 0x6d2cd020, 0x3641d: 0x6d2cd220, 0x3641e: 0x6d2cd420, 0x3641f: 0x6d2cd620, + 0x36420: 0x6d2cd820, 0x36421: 0x6d2cda20, 0x36422: 0x6d2cdc20, 0x36423: 0x6d59b220, + 0x36424: 0x6d59b420, 0x36425: 0x6d59b620, 0x36426: 0x6d59b820, 0x36427: 0x6d59ba20, + 0x36428: 0x6d59bc20, 0x36429: 0x6d59be20, 0x3642a: 0x6d59c020, 0x3642b: 0x6d59c220, + 0x3642c: 0x6d59c420, 0x3642d: 0x6d59c620, 0x3642e: 0x6d59c820, 0x3642f: 0x6d59ca20, + 0x36430: 0x6d59cc20, 0x36431: 0x6d59ce20, 0x36432: 0x6d59d020, 0x36433: 0x6d59d220, + 0x36434: 0x6d59d420, 0x36435: 0x6d59d620, 0x36436: 0x6d59d820, 0x36437: 0x6d59da20, + 0x36438: 0x6d59dc20, 0x36439: 0x6d59de20, 0x3643a: 0x6d59e020, 0x3643b: 0x6d59e220, + 0x3643c: 0x6d59e420, 0x3643d: 0x6d59e620, 0x3643e: 0x6d59e820, 0x3643f: 0x6d59ea20, + // Block 0xd91, offset 0x36440 + 0x36440: 0x6d59ec20, 0x36441: 0x6d59ee20, 0x36442: 0x6d59f020, 0x36443: 0x6d59f220, + 0x36444: 0x6d59f420, 0x36445: 0x6d59f620, 0x36446: 0x6d59f820, 0x36447: 0x6d59fa20, + 0x36448: 0x6d59fc20, 0x36449: 0x6d59fe20, 0x3644a: 0x6d5a0020, 0x3644b: 0x6d5a0220, + 0x3644c: 0x6d849820, 0x3644d: 0x6d849a20, 0x3644e: 0x6d849c20, 0x3644f: 0x6d849e20, + 0x36450: 0x6d84a020, 0x36451: 0x6d84a220, 0x36452: 0x6d84a420, 0x36453: 0x6d84a620, + 0x36454: 0x6d84a820, 0x36455: 0x6d84aa20, 0x36456: 0x6d84ac20, 0x36457: 0x6d84ae20, + 0x36458: 0x6d84b020, 0x36459: 0x6d84b220, 0x3645a: 0x6d84b420, 0x3645b: 0x6d84b620, + 0x3645c: 0x6d84b820, 0x3645d: 0x6d84ba20, 0x3645e: 0x6d84bc20, 0x3645f: 0x6d84be20, + 0x36460: 0x6d84c020, 0x36461: 0x6d84c220, 0x36462: 0x6d84c420, 0x36463: 0x6d84c620, + 0x36464: 0x6d84c820, 0x36465: 0x6d84ca20, 0x36466: 0x6da97820, 0x36467: 0x6da97a20, + 0x36468: 0x6da97c20, 0x36469: 0x6da97e20, 0x3646a: 0x6da98020, 0x3646b: 0x6da98220, + 0x3646c: 0x6da98420, 0x3646d: 0x6da98620, 0x3646e: 0x6da98820, 0x3646f: 0x6da98a20, + 0x36470: 0x6da98c20, 0x36471: 0x6da98e20, 0x36472: 0x6da99020, 0x36473: 0x6da99220, + 0x36474: 0x6dca6020, 0x36475: 0x6dca6220, 0x36476: 0x6dca6420, 0x36477: 0x6dca6620, + 0x36478: 0x6dca6820, 0x36479: 0x6dca6a20, 0x3647a: 0x6dca6c20, 0x3647b: 0x6dca6e20, + 0x3647c: 0x6dca7020, 0x3647d: 0x6dca7220, 0x3647e: 0x6dca7420, 0x3647f: 0x6dca7620, + // Block 0xd92, offset 0x36480 + 0x36480: 0x6dca7820, 0x36481: 0x6dca7a20, 0x36482: 0x6dca7c20, 0x36483: 0x6dca7e20, + 0x36484: 0x6dca8020, 0x36485: 0x6de60a20, 0x36486: 0x6de60c20, 0x36487: 0x6de60e20, + 0x36488: 0x6de61020, 0x36489: 0x6de61220, 0x3648a: 0x6de61420, 0x3648b: 0x6de61620, + 0x3648c: 0x6de61820, 0x3648d: 0x6dfcf420, 0x3648e: 0x6dfcf620, 0x3648f: 0x6dfcf820, + 0x36490: 0x6dfcfa20, 0x36491: 0x6e0fca20, 0x36492: 0x6e0fcc20, 0x36493: 0x6e0fce20, + 0x36494: 0x6e0fd020, 0x36495: 0x6e0fd220, 0x36496: 0x6e0fd420, 0x36497: 0x6e1eac20, + 0x36498: 0x6e1eae20, 0x36499: 0x6e1eb020, 0x3649a: 0x6e1eb220, 0x3649b: 0x6e2a1220, + 0x3649c: 0x6e2a1420, 0x3649d: 0x6e2a1620, 0x3649e: 0x6e2a1820, 0x3649f: 0x6e32d620, + 0x364a0: 0x6e32d820, 0x364a1: 0x6e32da20, 0x364a2: 0x6e32dc20, 0x364a3: 0x6e391620, + 0x364a4: 0x6e407a20, 0x364a5: 0x6c09f020, 0x364a6: 0x6c572820, 0x364a7: 0x6cd07420, + 0x364a8: 0x6d2ce020, 0x364a9: 0x6c04fc20, 0x364aa: 0x6c13c620, 0x364ab: 0x6c13c820, + 0x364ac: 0x6c13ca20, 0x364ad: 0x6c248820, 0x364ae: 0x6c248a20, 0x364af: 0x6c248c20, + 0x364b0: 0x6c248e20, 0x364b1: 0x6c249020, 0x364b2: 0x6c249220, 0x364b3: 0x6c249420, + 0x364b4: 0x6c249620, 0x364b5: 0x6c249820, 0x364b6: 0x6c249a20, 0x364b7: 0x6c249c20, + 0x364b8: 0x6c249e20, 0x364b9: 0x6c3b7020, 0x364ba: 0x6c3b7220, 0x364bb: 0x6c3b7420, + 0x364bc: 0x6c3b7620, 0x364bd: 0x6c3b7820, 0x364be: 0x6c3b7a20, 0x364bf: 0x6c3b7c20, + // Block 0xd93, offset 0x364c0 + 0x364c0: 0x6c3b7e20, 0x364c1: 0x6c3b8020, 0x364c2: 0x6c3b8220, 0x364c3: 0x6c3b8420, + 0x364c4: 0x6c3b8620, 0x364c5: 0x6c3b8820, 0x364c6: 0x6c3b8a20, 0x364c7: 0x6c3b8c20, + 0x364c8: 0x6c3b8e20, 0x364c9: 0x6c3b9020, 0x364ca: 0x6c3b9220, 0x364cb: 0x6c3b9420, + 0x364cc: 0x6c3b9620, 0x364cd: 0x6c3b9820, 0x364ce: 0x6c3b9a20, 0x364cf: 0x6c577620, + 0x364d0: 0x6c577820, 0x364d1: 0x6c577a20, 0x364d2: 0x6c577c20, 0x364d3: 0x6c577e20, + 0x364d4: 0x6c578020, 0x364d5: 0x6c578220, 0x364d6: 0x6c578420, 0x364d7: 0x6c578620, + 0x364d8: 0x6c578820, 0x364d9: 0x6c578a20, 0x364da: 0x6c578c20, 0x364db: 0x6c578e20, + 0x364dc: 0x6c579020, 0x364dd: 0x6c579220, 0x364de: 0x6c579420, 0x364df: 0x6c579620, + 0x364e0: 0x6c579820, 0x364e1: 0x6c579a20, 0x364e2: 0x6c579c20, 0x364e3: 0x6c579e20, + 0x364e4: 0x6c57a020, 0x364e5: 0x6c57a220, 0x364e6: 0x6c57a420, 0x364e7: 0x6c57a620, + 0x364e8: 0x6c57a820, 0x364e9: 0x6c57aa20, 0x364ea: 0x6c57ac20, 0x364eb: 0x6c57ae20, + 0x364ec: 0x6c57b020, 0x364ed: 0x6c57b220, 0x364ee: 0x6c57b420, 0x364ef: 0x6c57b620, + 0x364f0: 0x6c57b820, 0x364f1: 0x6c57ba20, 0x364f2: 0x6c57bc20, 0x364f3: 0x6c57be20, + 0x364f4: 0x6c57c020, 0x364f5: 0x6c7a1c20, 0x364f6: 0x6c7a1e20, 0x364f7: 0x6c7a2020, + 0x364f8: 0x6c7a2220, 0x364f9: 0x6c7a2420, 0x364fa: 0x6c7a2620, 0x364fb: 0x6c7a2820, + 0x364fc: 0x6c7a2a20, 0x364fd: 0x6c7a2c20, 0x364fe: 0x6c7a2e20, 0x364ff: 0x6c7a3020, + // Block 0xd94, offset 0x36500 + 0x36500: 0x6c7a3220, 0x36501: 0x6c7a3420, 0x36502: 0x6c7a3620, 0x36503: 0x6c7a3820, + 0x36504: 0x6c7a3a20, 0x36505: 0x6c7a3c20, 0x36506: 0x6c7a3e20, 0x36507: 0x6c7a4020, + 0x36508: 0x6c7a4220, 0x36509: 0x6c7a4420, 0x3650a: 0x6c7a4620, 0x3650b: 0x6c7a4820, + 0x3650c: 0x6c7a4a20, 0x3650d: 0x6c7a4c20, 0x3650e: 0x6c7a4e20, 0x3650f: 0x6c7a5020, + 0x36510: 0x6c7a5220, 0x36511: 0x6c7a5420, 0x36512: 0x6c7a5620, 0x36513: 0x6c7a5820, + 0x36514: 0x6c7a5a20, 0x36515: 0x6c7a5c20, 0x36516: 0x6ca32620, 0x36517: 0x6ca32820, + 0x36518: 0x6ca32a20, 0x36519: 0x6ca32c20, 0x3651a: 0x6ca32e20, 0x3651b: 0x6ca33020, + 0x3651c: 0x6ca33220, 0x3651d: 0x6ca33420, 0x3651e: 0x6ca33620, 0x3651f: 0x6ca33820, + 0x36520: 0x6ca33a20, 0x36521: 0x6ca33c20, 0x36522: 0x6ca33e20, 0x36523: 0x6ca34020, + 0x36524: 0x6ca34220, 0x36525: 0x6ca34420, 0x36526: 0x6ca34620, 0x36527: 0x6ca34820, + 0x36528: 0x6ca34a20, 0x36529: 0x6ca34c20, 0x3652a: 0x6ca34e20, 0x3652b: 0x6ca35020, + 0x3652c: 0x6ca35220, 0x3652d: 0x6ca35420, 0x3652e: 0x6ca35620, 0x3652f: 0x6ca35820, + 0x36530: 0x6ca35a20, 0x36531: 0x6ca35c20, 0x36532: 0x6ca35e20, 0x36533: 0x6ca36020, + 0x36534: 0x6ca36220, 0x36535: 0x6ca36420, 0x36536: 0x6ca36620, 0x36537: 0x6ca36820, + 0x36538: 0x6ca36a20, 0x36539: 0x6ca36c20, 0x3653a: 0x6ca36e20, 0x3653b: 0x6cd0dc20, + 0x3653c: 0x6cd0de20, 0x3653d: 0x6cd0e020, 0x3653e: 0x6cd0e220, 0x3653f: 0x6cd0e420, + // Block 0xd95, offset 0x36540 + 0x36540: 0x6cd0e620, 0x36541: 0x6cd0e820, 0x36542: 0x6cd0ea20, 0x36543: 0x6cd0ec20, + 0x36544: 0x6cd0ee20, 0x36545: 0x6cd0f020, 0x36546: 0x6cd0f220, 0x36547: 0x6cd0f420, + 0x36548: 0x6cd0f620, 0x36549: 0x6cd0f820, 0x3654a: 0x6cd0fa20, 0x3654b: 0x6cd0fc20, + 0x3654c: 0x6cd0fe20, 0x3654d: 0x6cd10020, 0x3654e: 0x6cd10220, 0x3654f: 0x6cd10420, + 0x36550: 0x6cd10620, 0x36551: 0x6cd10820, 0x36552: 0x6cd10a20, 0x36553: 0x6cd10c20, + 0x36554: 0x6cd10e20, 0x36555: 0x6cd11020, 0x36556: 0x6cd11220, 0x36557: 0x6cd11420, + 0x36558: 0x6cd11620, 0x36559: 0x6cd11820, 0x3655a: 0x6cd11a20, 0x3655b: 0x6cd11c20, + 0x3655c: 0x6cd11e20, 0x3655d: 0x6cd12020, 0x3655e: 0x6cd12220, 0x3655f: 0x6cd12420, + 0x36560: 0x6cd12620, 0x36561: 0x6cd12820, 0x36562: 0x6cd12a20, 0x36563: 0x6cd12c20, + 0x36564: 0x6cd12e20, 0x36565: 0x6cd13020, 0x36566: 0x6cd13220, 0x36567: 0x6cd13420, + 0x36568: 0x6cd13620, 0x36569: 0x6cd13820, 0x3656a: 0x6cd13a20, 0x3656b: 0x6cd13c20, + 0x3656c: 0x6cd13e20, 0x3656d: 0x6cd14020, 0x3656e: 0x6cd14220, 0x3656f: 0x6cfeaa20, + 0x36570: 0x6cfeac20, 0x36571: 0x6cfeae20, 0x36572: 0x6cfeb020, 0x36573: 0x6cfeb220, + 0x36574: 0x6cfeb420, 0x36575: 0x6cfeb620, 0x36576: 0x6cfeb820, 0x36577: 0x6cfeba20, + 0x36578: 0x6cfebc20, 0x36579: 0x6cfebe20, 0x3657a: 0x6cfec020, 0x3657b: 0x6cfec220, + 0x3657c: 0x6cfec420, 0x3657d: 0x6cfec620, 0x3657e: 0x6cfec820, 0x3657f: 0x6cfeca20, + // Block 0xd96, offset 0x36580 + 0x36580: 0x6cfecc20, 0x36581: 0x6cfece20, 0x36582: 0x6cfed020, 0x36583: 0x6cfed220, + 0x36584: 0x6cfed420, 0x36585: 0x6cfed620, 0x36586: 0x6cfed820, 0x36587: 0x6cfeda20, + 0x36588: 0x6cfedc20, 0x36589: 0x6cfede20, 0x3658a: 0x6cfee020, 0x3658b: 0x6cfee220, + 0x3658c: 0x6cfee420, 0x3658d: 0x6cfee620, 0x3658e: 0x6cfee820, 0x3658f: 0x6cfeea20, + 0x36590: 0x6cfeec20, 0x36591: 0x6cfeee20, 0x36592: 0x6cfef020, 0x36593: 0x6cfef220, + 0x36594: 0x6cfef420, 0x36595: 0x6cfef620, 0x36596: 0x6cfef820, 0x36597: 0x6cfefa20, + 0x36598: 0x6cfefc20, 0x36599: 0x6cfefe20, 0x3659a: 0x6cff0020, 0x3659b: 0x6cff0220, + 0x3659c: 0x6cff0420, 0x3659d: 0x6cff0620, 0x3659e: 0x6cff0820, 0x3659f: 0x6cff0a20, + 0x365a0: 0x6cff0c20, 0x365a1: 0x6cff0e20, 0x365a2: 0x6cff1020, 0x365a3: 0x6cff1220, + 0x365a4: 0x6cff1420, 0x365a5: 0x6cff1620, 0x365a6: 0x6cff1820, 0x365a7: 0x6cff1a20, + 0x365a8: 0x6cff1c20, 0x365a9: 0x6cff1e20, 0x365aa: 0x6d2d1620, 0x365ab: 0x6d2d1820, + 0x365ac: 0x6d2d1a20, 0x365ad: 0x6d2d1c20, 0x365ae: 0x6d2d1e20, 0x365af: 0x6d2d2020, + 0x365b0: 0x6d2d2220, 0x365b1: 0x6d2d2420, 0x365b2: 0x6d2d2620, 0x365b3: 0x6d2d2820, + 0x365b4: 0x6d2d2a20, 0x365b5: 0x6d2d2c20, 0x365b6: 0x6d2d2e20, 0x365b7: 0x6d2d3020, + 0x365b8: 0x6d2d3220, 0x365b9: 0x6d2d3420, 0x365ba: 0x6d2d3620, 0x365bb: 0x6d2d3820, + 0x365bc: 0x6d2d3a20, 0x365bd: 0x6d2d3c20, 0x365be: 0x6d2d3e20, 0x365bf: 0x6d2d4020, + // Block 0xd97, offset 0x365c0 + 0x365c0: 0x6d2d4220, 0x365c1: 0x6d2d4420, 0x365c2: 0x6d2d4620, 0x365c3: 0x6d2d4820, + 0x365c4: 0x6d2d4a20, 0x365c5: 0x6d2d4c20, 0x365c6: 0x6d2d4e20, 0x365c7: 0x6d2d5020, + 0x365c8: 0x6d2d5220, 0x365c9: 0x6d2d5420, 0x365ca: 0x6d2d5620, 0x365cb: 0x6d2d5820, + 0x365cc: 0x6d2d5a20, 0x365cd: 0x6d2d5c20, 0x365ce: 0x6d2d5e20, 0x365cf: 0x6d2d6020, + 0x365d0: 0x6d2d6220, 0x365d1: 0x6d2d6420, 0x365d2: 0x6d2d6620, 0x365d3: 0x6d2d6820, + 0x365d4: 0x6d5a4820, 0x365d5: 0x6d5a4a20, 0x365d6: 0x6d5a4c20, 0x365d7: 0x6d5a4e20, + 0x365d8: 0x6d5a5020, 0x365d9: 0x6d5a5220, 0x365da: 0x6d5a5420, 0x365db: 0x6d5a5620, + 0x365dc: 0x6d5a5820, 0x365dd: 0x6d5a5a20, 0x365de: 0x6d5a5c20, 0x365df: 0x6d5a5e20, + 0x365e0: 0x6d5a6020, 0x365e1: 0x6d5a6220, 0x365e2: 0x6d5a6420, 0x365e3: 0x6d5a6620, + 0x365e4: 0x6d5a6820, 0x365e5: 0x6d5a6a20, 0x365e6: 0x6d5a6c20, 0x365e7: 0x6d5a6e20, + 0x365e8: 0x6d5a7020, 0x365e9: 0x6d5a7220, 0x365ea: 0x6d5a7420, 0x365eb: 0x6d5a7620, + 0x365ec: 0x6d5a7820, 0x365ed: 0x6d5a7a20, 0x365ee: 0x6d5a7c20, 0x365ef: 0x6d5a7e20, + 0x365f0: 0x6d5a8020, 0x365f1: 0x6d5a8220, 0x365f2: 0x6d5a8420, 0x365f3: 0x6d5a8620, + 0x365f4: 0x6d5a8820, 0x365f5: 0x6d5a8a20, 0x365f6: 0x6d5a8c20, 0x365f7: 0x6d5a8e20, + 0x365f8: 0x6d5a9020, 0x365f9: 0x6d5a9220, 0x365fa: 0x6d5a9420, 0x365fb: 0x6d5a9620, + 0x365fc: 0x6d5a9820, 0x365fd: 0x6d5a9a20, 0x365fe: 0x6d5a9c20, 0x365ff: 0x6d5a9e20, + // Block 0xd98, offset 0x36600 + 0x36600: 0x6d850020, 0x36601: 0x6d5aa020, 0x36602: 0x6d850220, 0x36603: 0x6d850420, + 0x36604: 0x6d850620, 0x36605: 0x6d850820, 0x36606: 0x6d850a20, 0x36607: 0x6d850c20, + 0x36608: 0x6d850e20, 0x36609: 0x6d851020, 0x3660a: 0x6d851220, 0x3660b: 0x6d851420, + 0x3660c: 0x6d851620, 0x3660d: 0x6d851820, 0x3660e: 0x6d851a20, 0x3660f: 0x6d851c20, + 0x36610: 0x6d851e20, 0x36611: 0x6d852020, 0x36612: 0x6d852220, 0x36613: 0x6d852420, + 0x36614: 0x6d852620, 0x36615: 0x6d852820, 0x36616: 0x6d852a20, 0x36617: 0x6d852c20, + 0x36618: 0x6d852e20, 0x36619: 0x6d853020, 0x3661a: 0x6d853220, 0x3661b: 0x6d853420, + 0x3661c: 0x6d853620, 0x3661d: 0x6d853820, 0x3661e: 0x6d853a20, 0x3661f: 0x6d853c20, + 0x36620: 0x6d853e20, 0x36621: 0x6d854020, 0x36622: 0x6d854220, 0x36623: 0x6d854420, + 0x36624: 0x6d854620, 0x36625: 0x6d854820, 0x36626: 0x6d854a20, 0x36627: 0x6d854c20, + 0x36628: 0x6d854e20, 0x36629: 0x6d855020, 0x3662a: 0x6d855220, 0x3662b: 0x6da9c420, + 0x3662c: 0x6da9c620, 0x3662d: 0x6da9c820, 0x3662e: 0x6da9ca20, 0x3662f: 0x6da9cc20, + 0x36630: 0x6da9ce20, 0x36631: 0x6da9d020, 0x36632: 0x6da9d220, 0x36633: 0x6da9d420, + 0x36634: 0x6da9d620, 0x36635: 0x6da9d820, 0x36636: 0x6da9da20, 0x36637: 0x6da9dc20, + 0x36638: 0x6da9de20, 0x36639: 0x6da9e020, 0x3663a: 0x6da9e220, 0x3663b: 0x6da9e420, + 0x3663c: 0x6da9e620, 0x3663d: 0x6da9e820, 0x3663e: 0x6da9ea20, 0x3663f: 0x6da9ec20, + // Block 0xd99, offset 0x36640 + 0x36640: 0x6da9ee20, 0x36641: 0x6da9f020, 0x36642: 0x6da9f220, 0x36643: 0x6da9f420, + 0x36644: 0x6da9f620, 0x36645: 0x6da9f820, 0x36646: 0x6da9fa20, 0x36647: 0x6da9fc20, + 0x36648: 0x6da9fe20, 0x36649: 0x6daa0020, 0x3664a: 0x6daa0220, 0x3664b: 0x6dcaa020, + 0x3664c: 0x6dcaa220, 0x3664d: 0x6dcaa420, 0x3664e: 0x6dcaa620, 0x3664f: 0x6dcaa820, + 0x36650: 0x6dcaaa20, 0x36651: 0x6dcaac20, 0x36652: 0x6dcaae20, 0x36653: 0x6dcab020, + 0x36654: 0x6dcab220, 0x36655: 0x6dcab420, 0x36656: 0x6dcab620, 0x36657: 0x6dcab820, + 0x36658: 0x6dcaba20, 0x36659: 0x6dcabc20, 0x3665a: 0x6dcabe20, 0x3665b: 0x6dcac020, + 0x3665c: 0x6dcac220, 0x3665d: 0x6dcac420, 0x3665e: 0x6dcac620, 0x3665f: 0x6dcac820, + 0x36660: 0x6dcaca20, 0x36661: 0x6dcacc20, 0x36662: 0x6dcace20, 0x36663: 0x6dcad020, + 0x36664: 0x6dcad220, 0x36665: 0x6dcad420, 0x36666: 0x6dcad620, 0x36667: 0x6dcad820, + 0x36668: 0x6dcada20, 0x36669: 0x6de63a20, 0x3666a: 0x6de63c20, 0x3666b: 0x6de63e20, + 0x3666c: 0x6de64020, 0x3666d: 0x6de64220, 0x3666e: 0x6de64420, 0x3666f: 0x6de64620, + 0x36670: 0x6de64820, 0x36671: 0x6de64a20, 0x36672: 0x6de64c20, 0x36673: 0x6de64e20, + 0x36674: 0x6dcadc20, 0x36675: 0x6de65020, 0x36676: 0x6de65220, 0x36677: 0x6de65420, + 0x36678: 0x6de65620, 0x36679: 0x6de65820, 0x3667a: 0x6de65a20, 0x3667b: 0x6de65c20, + 0x3667c: 0x6de65e20, 0x3667d: 0x6de66020, 0x3667e: 0x6dfd0e20, 0x3667f: 0x6dfd1020, + // Block 0xd9a, offset 0x36680 + 0x36680: 0x6dfd1220, 0x36681: 0x6dfd1420, 0x36682: 0x6dfd1620, 0x36683: 0x6dfd1820, + 0x36684: 0x6dfd1a20, 0x36685: 0x6dfd1c20, 0x36686: 0x6dfd1e20, 0x36687: 0x6dfd2020, + 0x36688: 0x6dfd2220, 0x36689: 0x6e0fdc20, 0x3668a: 0x6e0fde20, 0x3668b: 0x6e0fe020, + 0x3668c: 0x6e0fe220, 0x3668d: 0x6e0fe420, 0x3668e: 0x6e0fe620, 0x3668f: 0x6e0fe820, + 0x36690: 0x6e0fea20, 0x36691: 0x6e0fec20, 0x36692: 0x6e0fee20, 0x36693: 0x6e0ff020, + 0x36694: 0x6e1ebc20, 0x36695: 0x6e1ebe20, 0x36696: 0x6e1ec020, 0x36697: 0x6e1ec220, + 0x36698: 0x6e1ec420, 0x36699: 0x6e2a1e20, 0x3669a: 0x6e2a2020, 0x3669b: 0x6e2a2220, + 0x3669c: 0x6e2a2420, 0x3669d: 0x6e2a2620, 0x3669e: 0x6e2a2820, 0x3669f: 0x6e2a2a20, + 0x366a0: 0x6e32e020, 0x366a1: 0x6e33a820, 0x366a2: 0x6e3d6c20, 0x366a3: 0x6e391820, + 0x366a4: 0x6e391a20, 0x366a5: 0x6e391c20, 0x366a6: 0x6e391e20, 0x366a7: 0x6e392020, + 0x366a8: 0x6e3d6e20, 0x366a9: 0x6e42c220, 0x366aa: 0x6c3bae20, 0x366ab: 0x6c57ca20, + 0x366ac: 0x6c57cc20, 0x366ad: 0x6c57ce20, 0x366ae: 0x6c57d020, 0x366af: 0x6c57d220, + 0x366b0: 0x6c7a7c20, 0x366b1: 0x6c7a7e20, 0x366b2: 0x6c7a8020, 0x366b3: 0x6c7a8220, + 0x366b4: 0x6c7a8420, 0x366b5: 0x6ca38220, 0x366b6: 0x6ca38420, 0x366b7: 0x6ca38620, + 0x366b8: 0x6ca38820, 0x366b9: 0x6ca38a20, 0x366ba: 0x6cd16220, 0x366bb: 0x6cd16420, + 0x366bc: 0x6cd16620, 0x366bd: 0x6cd16820, 0x366be: 0x6cd16a20, 0x366bf: 0x6cd16c20, + // Block 0xd9b, offset 0x366c0 + 0x366c0: 0x6cd16e20, 0x366c1: 0x6cff4420, 0x366c2: 0x6cff4620, 0x366c3: 0x6cff4820, + 0x366c4: 0x6cff4a20, 0x366c5: 0x6cff4c20, 0x366c6: 0x6cff4e20, 0x366c7: 0x6d5ab620, + 0x366c8: 0x6d2d8c20, 0x366c9: 0x6d2d8e20, 0x366ca: 0x6d2d9020, 0x366cb: 0x6d2d9220, + 0x366cc: 0x6d2d9420, 0x366cd: 0x6d5ab820, 0x366ce: 0x6d856c20, 0x366cf: 0x6d856e20, + 0x366d0: 0x6d5aba20, 0x366d1: 0x6d5abc20, 0x366d2: 0x6d5abe20, 0x366d3: 0x6d5ac020, + 0x366d4: 0x6d5ac220, 0x366d5: 0x6d5ac420, 0x366d6: 0x6d857020, 0x366d7: 0x6daa1020, + 0x366d8: 0x6dcae420, 0x366d9: 0x6dcae620, 0x366da: 0x6dcae820, 0x366db: 0x6e0ff420, + 0x366dc: 0x6e0ff620, 0x366dd: 0x6e0ff820, 0x366de: 0x6e1ec820, 0x366df: 0x6e1eca20, + 0x366e0: 0x6e2a2e20, 0x366e1: 0x6e2a3020, 0x366e2: 0x6e32e620, 0x366e3: 0x6e3d7220, + 0x366e4: 0x6e3d7420, 0x366e5: 0x6e452620, 0x366e6: 0x6c24a420, 0x366e7: 0x6c24a620, + 0x366e8: 0x6c3bba20, 0x366e9: 0x6c3bbc20, 0x366ea: 0x6c3bbe20, 0x366eb: 0x6c3bc020, + 0x366ec: 0x6c57ec20, 0x366ed: 0x6c57ee20, 0x366ee: 0x6c57f020, 0x366ef: 0x6c57f220, + 0x366f0: 0x6c57f420, 0x366f1: 0x6c57f620, 0x366f2: 0x6c57f820, 0x366f3: 0x6c7a9620, + 0x366f4: 0x6c7a9820, 0x366f5: 0x6c7a9a20, 0x366f6: 0x6c7a9c20, 0x366f7: 0x6c7a9e20, + 0x366f8: 0x6c7aa020, 0x366f9: 0x6c7aa220, 0x366fa: 0x6c7aa420, 0x366fb: 0x6c7aa620, + 0x366fc: 0x6c7aa820, 0x366fd: 0x6c7aaa20, 0x366fe: 0x6ca39e20, 0x366ff: 0x6ca3a020, + // Block 0xd9c, offset 0x36700 + 0x36700: 0x6ca3a220, 0x36701: 0x6ca3a420, 0x36702: 0x6ca3a620, 0x36703: 0x6ca3a820, + 0x36704: 0x6ca3aa20, 0x36705: 0x6ca3ac20, 0x36706: 0x6ca3ae20, 0x36707: 0x6ca3b020, + 0x36708: 0x6ca3b220, 0x36709: 0x6ca3b420, 0x3670a: 0x6ca3b620, 0x3670b: 0x6ca3b820, + 0x3670c: 0x6cd18020, 0x3670d: 0x6cd18220, 0x3670e: 0x6cd18420, 0x3670f: 0x6cd18620, + 0x36710: 0x6cd18820, 0x36711: 0x6cd18a20, 0x36712: 0x6cd18c20, 0x36713: 0x6cd18e20, + 0x36714: 0x6cd19020, 0x36715: 0x6cd19220, 0x36716: 0x6cd19420, 0x36717: 0x6cd19620, + 0x36718: 0x6cd19820, 0x36719: 0x6cd19a20, 0x3671a: 0x6cd19c20, 0x3671b: 0x6cff6820, + 0x3671c: 0x6cff6a20, 0x3671d: 0x6cff6c20, 0x3671e: 0x6cff6e20, 0x3671f: 0x6cff7020, + 0x36720: 0x6cff7220, 0x36721: 0x6cff7420, 0x36722: 0x6cff7620, 0x36723: 0x6cff7820, + 0x36724: 0x6cff7a20, 0x36725: 0x6cff7c20, 0x36726: 0x6cff7e20, 0x36727: 0x6d2dae20, + 0x36728: 0x6d2db020, 0x36729: 0x6d2db220, 0x3672a: 0x6d2db420, 0x3672b: 0x6d2db620, + 0x3672c: 0x6d2db820, 0x3672d: 0x6d2dba20, 0x3672e: 0x6d2dbc20, 0x3672f: 0x6d2dbe20, + 0x36730: 0x6d2dc020, 0x36731: 0x6d2dc220, 0x36732: 0x6cff8020, 0x36733: 0x6d2dc420, + 0x36734: 0x6d2dc620, 0x36735: 0x6d2dc820, 0x36736: 0x6d2dca20, 0x36737: 0x6d2dcc20, + 0x36738: 0x6d2dce20, 0x36739: 0x6d5ad420, 0x3673a: 0x6d5ad620, 0x3673b: 0x6d5ad820, + 0x3673c: 0x6d5ada20, 0x3673d: 0x6d5adc20, 0x3673e: 0x6d5ade20, 0x3673f: 0x6d5ae020, + // Block 0xd9d, offset 0x36740 + 0x36740: 0x6d5ae220, 0x36741: 0x6d5ae420, 0x36742: 0x6d5ae620, 0x36743: 0x6d5ae820, + 0x36744: 0x6d5aea20, 0x36745: 0x6d858420, 0x36746: 0x6d858620, 0x36747: 0x6d858820, + 0x36748: 0x6d858a20, 0x36749: 0x6d858c20, 0x3674a: 0x6d858e20, 0x3674b: 0x6d859020, + 0x3674c: 0x6d859220, 0x3674d: 0x6d859420, 0x3674e: 0x6daa2820, 0x3674f: 0x6daa2a20, + 0x36750: 0x6daa2c20, 0x36751: 0x6daa2e20, 0x36752: 0x6daa3020, 0x36753: 0x6daa3220, + 0x36754: 0x6daa3420, 0x36755: 0x6daa3620, 0x36756: 0x6cff8220, 0x36757: 0x6daa3820, + 0x36758: 0x6dcaf420, 0x36759: 0x6dcaf620, 0x3675a: 0x6dcaf820, 0x3675b: 0x6dcafa20, + 0x3675c: 0x6dcafc20, 0x3675d: 0x6dcafe20, 0x3675e: 0x6dcb0020, 0x3675f: 0x6dcb0220, + 0x36760: 0x6de67020, 0x36761: 0x6de67220, 0x36762: 0x6dfd2c20, 0x36763: 0x6dfd2e20, + 0x36764: 0x6dfd3020, 0x36765: 0x6dfd3220, 0x36766: 0x6e0ffc20, 0x36767: 0x6e0ffe20, + 0x36768: 0x6e100020, 0x36769: 0x6e100220, 0x3676a: 0x6e100420, 0x3676b: 0x6e100620, + 0x3676c: 0x6e100820, 0x3676d: 0x6e1ece20, 0x3676e: 0x6e1ed020, 0x3676f: 0x6e1ed220, + 0x36770: 0x6e2a3220, 0x36771: 0x6e2a3420, 0x36772: 0x6e2a3620, 0x36773: 0x6e2a3820, + 0x36774: 0x6e2a3a20, 0x36775: 0x6e2a3c20, 0x36776: 0x6e32ea20, 0x36777: 0x6e392420, + 0x36778: 0x6e407c20, 0x36779: 0x6e443820, 0x3677a: 0x6c0a0020, 0x3677b: 0x6c3bc620, + 0x3677c: 0x6c3bc820, 0x3677d: 0x6c3bca20, 0x3677e: 0x6c3bcc20, 0x3677f: 0x6c3bce20, + // Block 0xd9e, offset 0x36780 + 0x36780: 0x6c3bd020, 0x36781: 0x6c580020, 0x36782: 0x6c580220, 0x36783: 0x6c580420, + 0x36784: 0x6c580620, 0x36785: 0x6c7ab020, 0x36786: 0x6cd19e20, 0x36787: 0x6cff8e20, + 0x36788: 0x6d2dd420, 0x36789: 0x6d5af220, 0x3678a: 0x6d5af420, 0x3678b: 0x6d859620, + 0x3678c: 0x6d859820, 0x3678d: 0x6daa3c20, 0x3678e: 0x6dcb0420, 0x3678f: 0x6dc4c420, + 0x36790: 0x6e100a20, 0x36791: 0x6e1ed620, 0x36792: 0x6e42c420, 0x36793: 0x6c0a0420, + 0x36794: 0x6c13ce20, 0x36795: 0x6c3bd220, 0x36796: 0x6c3bd420, 0x36797: 0x6c3bd620, + 0x36798: 0x6c580c20, 0x36799: 0x6c580e20, 0x3679a: 0x6c581020, 0x3679b: 0x6c581220, + 0x3679c: 0x6c581420, 0x3679d: 0x6c581620, 0x3679e: 0x6c581820, 0x3679f: 0x6c7ab420, + 0x367a0: 0x6ca3c220, 0x367a1: 0x6ca3c420, 0x367a2: 0x6ca3c620, 0x367a3: 0x6ca3c820, + 0x367a4: 0x6ca3ca20, 0x367a5: 0x6ca3cc20, 0x367a6: 0x6cd1aa20, 0x367a7: 0x6cd1ac20, + 0x367a8: 0x6cd1ae20, 0x367a9: 0x6cd1b020, 0x367aa: 0x6cd1b220, 0x367ab: 0x6cd1b420, + 0x367ac: 0x6cff9020, 0x367ad: 0x6cff9220, 0x367ae: 0x6cff9420, 0x367af: 0x6cff9620, + 0x367b0: 0x6cff9820, 0x367b1: 0x6cff9a20, 0x367b2: 0x6d2dd820, 0x367b3: 0x6d2dda20, + 0x367b4: 0x6d2ddc20, 0x367b5: 0x6d5af820, 0x367b6: 0x6d859c20, 0x367b7: 0x6daa3e20, + 0x367b8: 0x6daa4020, 0x367b9: 0x6daa4220, 0x367ba: 0x6dcb0620, 0x367bb: 0x6de67420, + 0x367bc: 0x6de67620, 0x367bd: 0x6de26620, 0x367be: 0x6de67820, 0x367bf: 0x6de67a20, + // Block 0xd9f, offset 0x367c0 + 0x367c0: 0x6e100c20, 0x367c1: 0x6e1ed820, 0x367c2: 0x6e1eda20, 0x367c3: 0x6c13d220, + 0x367c4: 0x6c24ae20, 0x367c5: 0x6c3bde20, 0x367c6: 0x6c3be020, 0x367c7: 0x6c7ab820, + 0x367c8: 0x6ca3d020, 0x367c9: 0x6cd1b820, 0x367ca: 0x6d2dde20, 0x367cb: 0x6d5afa20, + 0x367cc: 0x6d5afc20, 0x367cd: 0x6dcb0820, 0x367ce: 0x6de67c20, 0x367cf: 0x6e1edc20, + 0x367d0: 0x6e392620, 0x367d1: 0x6e2a3e20, 0x367d2: 0x6c0a1620, 0x367d3: 0x6c13d820, + 0x367d4: 0x6c13da20, 0x367d5: 0x6c24c220, 0x367d6: 0x6c24c420, 0x367d7: 0x6c24c620, + 0x367d8: 0x6c24c820, 0x367d9: 0x6c24ca20, 0x367da: 0x6c24cc20, 0x367db: 0x6c24ce20, + 0x367dc: 0x6c24d020, 0x367dd: 0x6c3bfa20, 0x367de: 0x6c3bfc20, 0x367df: 0x6c3bfe20, + 0x367e0: 0x6c3c0020, 0x367e1: 0x6c3c0220, 0x367e2: 0x6c3c0420, 0x367e3: 0x6c3c0620, + 0x367e4: 0x6c3c0820, 0x367e5: 0x6c3c0a20, 0x367e6: 0x6c3c0c20, 0x367e7: 0x6c3c0e20, + 0x367e8: 0x6c3c1020, 0x367e9: 0x6c584020, 0x367ea: 0x6c584220, 0x367eb: 0x6c584420, + 0x367ec: 0x6c584620, 0x367ed: 0x6c584820, 0x367ee: 0x6c584a20, 0x367ef: 0x6c584c20, + 0x367f0: 0x6c584e20, 0x367f1: 0x6c585020, 0x367f2: 0x6c585220, 0x367f3: 0x6c585420, + 0x367f4: 0x6c585620, 0x367f5: 0x6c585820, 0x367f6: 0x6c585a20, 0x367f7: 0x6c585c20, + 0x367f8: 0x6c585e20, 0x367f9: 0x6c586020, 0x367fa: 0x6c586220, 0x367fb: 0x6c586420, + 0x367fc: 0x6c586620, 0x367fd: 0x6c586820, 0x367fe: 0x6c586a20, 0x367ff: 0x6c586c20, + // Block 0xda0, offset 0x36800 + 0x36800: 0x6c586e20, 0x36801: 0x6c587020, 0x36802: 0x6c587220, 0x36803: 0x6c587420, + 0x36804: 0x6c587620, 0x36805: 0x6c587820, 0x36806: 0x6c587a20, 0x36807: 0x6c587c20, + 0x36808: 0x6c587e20, 0x36809: 0x6c588020, 0x3680a: 0x6c588220, 0x3680b: 0x6c588420, + 0x3680c: 0x6c7ad620, 0x3680d: 0x6c7ad820, 0x3680e: 0x6c7ada20, 0x3680f: 0x6c7adc20, + 0x36810: 0x6c7ade20, 0x36811: 0x6c7ae020, 0x36812: 0x6c7ae220, 0x36813: 0x6c7ae420, + 0x36814: 0x6c7ae620, 0x36815: 0x6c7ae820, 0x36816: 0x6c7aea20, 0x36817: 0x6c7aec20, + 0x36818: 0x6c7aee20, 0x36819: 0x6c7af020, 0x3681a: 0x6c7af220, 0x3681b: 0x6c7af420, + 0x3681c: 0x6c7af620, 0x3681d: 0x6c7af820, 0x3681e: 0x6c7afa20, 0x3681f: 0x6c7afc20, + 0x36820: 0x6c7afe20, 0x36821: 0x6c63fc20, 0x36822: 0x6c7b0020, 0x36823: 0x6c7b0220, + 0x36824: 0x6c7b0420, 0x36825: 0x6ca3e820, 0x36826: 0x6ca3ea20, 0x36827: 0x6ca3ec20, + 0x36828: 0x6ca3ee20, 0x36829: 0x6ca3f020, 0x3682a: 0x6ca3f220, 0x3682b: 0x6ca3f420, + 0x3682c: 0x6ca3f620, 0x3682d: 0x6ca3f820, 0x3682e: 0x6ca3fa20, 0x3682f: 0x6ca3fc20, + 0x36830: 0x6ca3fe20, 0x36831: 0x6ca40020, 0x36832: 0x6ca40220, 0x36833: 0x6ca40420, + 0x36834: 0x6ca40620, 0x36835: 0x6ca40820, 0x36836: 0x6ca40a20, 0x36837: 0x6ca40c20, + 0x36838: 0x6ca40e20, 0x36839: 0x6ca41020, 0x3683a: 0x6ca41220, 0x3683b: 0x6cd1d020, + 0x3683c: 0x6cd1d220, 0x3683d: 0x6cd1d420, 0x3683e: 0x6cd1d620, 0x3683f: 0x6cd1d820, + // Block 0xda1, offset 0x36840 + 0x36840: 0x6cd1da20, 0x36841: 0x6cd1dc20, 0x36842: 0x6cd1de20, 0x36843: 0x6cd1e020, + 0x36844: 0x6cd1e220, 0x36845: 0x6cd1e420, 0x36846: 0x6cd1e620, 0x36847: 0x6cd1e820, + 0x36848: 0x6cd1ea20, 0x36849: 0x6cd1ec20, 0x3684a: 0x6cd1ee20, 0x3684b: 0x6cd1f020, + 0x3684c: 0x6cd1f220, 0x3684d: 0x6cd1f420, 0x3684e: 0x6cd1f620, 0x3684f: 0x6cd1f820, + 0x36850: 0x6cd1fa20, 0x36851: 0x6cffb620, 0x36852: 0x6cffb820, 0x36853: 0x6cffba20, + 0x36854: 0x6cffbc20, 0x36855: 0x6cffbe20, 0x36856: 0x6cffc020, 0x36857: 0x6cffc220, + 0x36858: 0x6cffc420, 0x36859: 0x6cffc620, 0x3685a: 0x6cffc820, 0x3685b: 0x6cffca20, + 0x3685c: 0x6cffcc20, 0x3685d: 0x6cffce20, 0x3685e: 0x6cffd020, 0x3685f: 0x6cffd220, + 0x36860: 0x6cffd420, 0x36861: 0x6cffd620, 0x36862: 0x6cffd820, 0x36863: 0x6cffda20, + 0x36864: 0x6cffdc20, 0x36865: 0x6cffde20, 0x36866: 0x6cffe020, 0x36867: 0x6cffe220, + 0x36868: 0x6cffe420, 0x36869: 0x6cffe620, 0x3686a: 0x6cffe820, 0x3686b: 0x6d2de820, + 0x3686c: 0x6d2dea20, 0x3686d: 0x6d2dec20, 0x3686e: 0x6d2dee20, 0x3686f: 0x6d2df020, + 0x36870: 0x6d2df220, 0x36871: 0x6d2df420, 0x36872: 0x6d2df620, 0x36873: 0x6d2df820, + 0x36874: 0x6d2dfa20, 0x36875: 0x6d2dfc20, 0x36876: 0x6d2dfe20, 0x36877: 0x6d5b0820, + 0x36878: 0x6d5b0a20, 0x36879: 0x6d5b0c20, 0x3687a: 0x6d5b0e20, 0x3687b: 0x6d5b1020, + 0x3687c: 0x6d5b1220, 0x3687d: 0x6d5b1420, 0x3687e: 0x6d5b1620, 0x3687f: 0x6d5b1820, + // Block 0xda2, offset 0x36880 + 0x36880: 0x6d5b1a20, 0x36881: 0x6d5b1c20, 0x36882: 0x6d5b1e20, 0x36883: 0x6d5b2020, + 0x36884: 0x6d5b2220, 0x36885: 0x6d5b2420, 0x36886: 0x6d5b2620, 0x36887: 0x6d5b2820, + 0x36888: 0x6d85a620, 0x36889: 0x6d85a820, 0x3688a: 0x6d85aa20, 0x3688b: 0x6d85ac20, + 0x3688c: 0x6d85ae20, 0x3688d: 0x6d85b020, 0x3688e: 0x6d85b220, 0x3688f: 0x6d75d020, + 0x36890: 0x6d85b420, 0x36891: 0x6d85b620, 0x36892: 0x6daa4a20, 0x36893: 0x6daa4c20, + 0x36894: 0x6daa4e20, 0x36895: 0x6daa5020, 0x36896: 0x6daa5220, 0x36897: 0x6daa5420, + 0x36898: 0x6daa5620, 0x36899: 0x6daa5820, 0x3689a: 0x6daa5a20, 0x3689b: 0x6db99020, + 0x3689c: 0x6daa5c20, 0x3689d: 0x6daa5e20, 0x3689e: 0x6daa6020, 0x3689f: 0x6daa6220, + 0x368a0: 0x6daa6420, 0x368a1: 0x6daa6620, 0x368a2: 0x6daa6820, 0x368a3: 0x6daa6a20, + 0x368a4: 0x6dcb1020, 0x368a5: 0x6dcb1220, 0x368a6: 0x6dcb1420, 0x368a7: 0x6dcb1620, + 0x368a8: 0x6dcb1820, 0x368a9: 0x6de68420, 0x368aa: 0x6de68620, 0x368ab: 0x6de68820, + 0x368ac: 0x6de68a20, 0x368ad: 0x6de68c20, 0x368ae: 0x6de68e20, 0x368af: 0x6de69020, + 0x368b0: 0x6de69220, 0x368b1: 0x6dfd3820, 0x368b2: 0x6de69420, 0x368b3: 0x6dfd3a20, + 0x368b4: 0x6dfd3c20, 0x368b5: 0x6dfd3e20, 0x368b6: 0x6dfd4020, 0x368b7: 0x6dfd4220, + 0x368b8: 0x6dfd4420, 0x368b9: 0x6e100e20, 0x368ba: 0x6e101020, 0x368bb: 0x6e101220, + 0x368bc: 0x6e101420, 0x368bd: 0x6e101620, 0x368be: 0x6e101820, 0x368bf: 0x6e1ee020, + // Block 0xda3, offset 0x368c0 + 0x368c0: 0x6e1ee220, 0x368c1: 0x6e1ee420, 0x368c2: 0x6e2a4220, 0x368c3: 0x6e2a4420, + 0x368c4: 0x6e2a4620, 0x368c5: 0x6e32ec20, 0x368c6: 0x6e392820, 0x368c7: 0x6e3d7620, + 0x368c8: 0x6e3d7820, 0x368c9: 0x6e3d7a20, 0x368ca: 0x6e3d7c20, 0x368cb: 0x6e3d7e20, + 0x368cc: 0x6e407e20, 0x368cd: 0x6e408020, 0x368ce: 0x6e42c620, 0x368cf: 0x6e452820, + 0x368d0: 0x6e463220, 0x368d1: 0x6e468620, 0x368d2: 0x6e46e820, 0x368d3: 0x6c0a1c20, + 0x368d4: 0x6c0a1e20, 0x368d5: 0x6c13dc20, 0x368d6: 0x6c3c1620, 0x368d7: 0x6c7b1020, + 0x368d8: 0x6c588e20, 0x368d9: 0x6cd20c20, 0x368da: 0x6cd20e20, 0x368db: 0x6cd21020, + 0x368dc: 0x6cfff220, 0x368dd: 0x6cfff420, 0x368de: 0x6d5b2e20, 0x368df: 0x6d85be20, + 0x368e0: 0x6d85c020, 0x368e1: 0x6d85c220, 0x368e2: 0x6d85c420, 0x368e3: 0x6dcb1e20, + 0x368e4: 0x6e1ee620, 0x368e5: 0x6c13de20, 0x368e6: 0x6c24e220, 0x368e7: 0x6c24e420, + 0x368e8: 0x6c24e620, 0x368e9: 0x6c24e820, 0x368ea: 0x6c24ea20, 0x368eb: 0x6c24ec20, + 0x368ec: 0x6c24ee20, 0x368ed: 0x6c24f020, 0x368ee: 0x6c24f220, 0x368ef: 0x6c3c3220, + 0x368f0: 0x6c3c3420, 0x368f1: 0x6c3c3620, 0x368f2: 0x6c3c3820, 0x368f3: 0x6c3c3a20, + 0x368f4: 0x6c3c3c20, 0x368f5: 0x6c3c3e20, 0x368f6: 0x6c3c4020, 0x368f7: 0x6c58ba20, + 0x368f8: 0x6c58bc20, 0x368f9: 0x6c58be20, 0x368fa: 0x6c58c020, 0x368fb: 0x6c58c220, + 0x368fc: 0x6c58c420, 0x368fd: 0x6c58c620, 0x368fe: 0x6c58c820, 0x368ff: 0x6c58ca20, + // Block 0xda4, offset 0x36900 + 0x36900: 0x6c58cc20, 0x36901: 0x6c58ce20, 0x36902: 0x6c58d020, 0x36903: 0x6c58d220, + 0x36904: 0x6c58d420, 0x36905: 0x6c58d620, 0x36906: 0x6c58d820, 0x36907: 0x6c58da20, + 0x36908: 0x6c58dc20, 0x36909: 0x6c58de20, 0x3690a: 0x6c58e020, 0x3690b: 0x6c58e220, + 0x3690c: 0x6c58e420, 0x3690d: 0x6c58e620, 0x3690e: 0x6c58e820, 0x3690f: 0x6c58ea20, + 0x36910: 0x6c58ec20, 0x36911: 0x6c58ee20, 0x36912: 0x6c58f020, 0x36913: 0x6c58f220, + 0x36914: 0x6c58f420, 0x36915: 0x6c58f620, 0x36916: 0x6c58f820, 0x36917: 0x6c7b5c20, + 0x36918: 0x6c7b5e20, 0x36919: 0x6c7b6020, 0x3691a: 0x6c7b6220, 0x3691b: 0x6c7b6420, + 0x3691c: 0x6c7b6620, 0x3691d: 0x6c7b6820, 0x3691e: 0x6c7b6a20, 0x3691f: 0x6c7b6c20, + 0x36920: 0x6c7b6e20, 0x36921: 0x6c7b7020, 0x36922: 0x6c7b7220, 0x36923: 0x6c7b7420, + 0x36924: 0x6c7b7620, 0x36925: 0x6c7b7820, 0x36926: 0x6c7b7a20, 0x36927: 0x6c7b7c20, + 0x36928: 0x6c7b7e20, 0x36929: 0x6c7b8020, 0x3692a: 0x6c7b8220, 0x3692b: 0x6c7b8420, + 0x3692c: 0x6c7b8620, 0x3692d: 0x6c7b8820, 0x3692e: 0x6c7b8a20, 0x3692f: 0x6c7b8c20, + 0x36930: 0x6c7b8e20, 0x36931: 0x6c7b9020, 0x36932: 0x6c7b9220, 0x36933: 0x6c7b9420, + 0x36934: 0x6c7b9620, 0x36935: 0x6c7b9820, 0x36936: 0x6c7b9a20, 0x36937: 0x6ca44820, + 0x36938: 0x6ca44a20, 0x36939: 0x6ca44c20, 0x3693a: 0x6ca44e20, 0x3693b: 0x6ca45020, + 0x3693c: 0x6ca45220, 0x3693d: 0x6ca45420, 0x3693e: 0x6ca45620, 0x3693f: 0x6ca45820, + // Block 0xda5, offset 0x36940 + 0x36940: 0x6ca45a20, 0x36941: 0x6ca45c20, 0x36942: 0x6ca45e20, 0x36943: 0x6ca46020, + 0x36944: 0x6ca46220, 0x36945: 0x6ca46420, 0x36946: 0x6ca46620, 0x36947: 0x6ca46820, + 0x36948: 0x6ca46a20, 0x36949: 0x6ca46c20, 0x3694a: 0x6ca46e20, 0x3694b: 0x6ca47020, + 0x3694c: 0x6ca47220, 0x3694d: 0x6ca47420, 0x3694e: 0x6ca47620, 0x3694f: 0x6ca47820, + 0x36950: 0x6ca47a20, 0x36951: 0x6ca47c20, 0x36952: 0x6ca47e20, 0x36953: 0x6ca48020, + 0x36954: 0x6ca48220, 0x36955: 0x6cd25a20, 0x36956: 0x6cd25c20, 0x36957: 0x6cd25e20, + 0x36958: 0x6cd26020, 0x36959: 0x6cd26220, 0x3695a: 0x6cd26420, 0x3695b: 0x6cd26620, + 0x3695c: 0x6cd26820, 0x3695d: 0x6cd26a20, 0x3695e: 0x6cd26c20, 0x3695f: 0x6cd26e20, + 0x36960: 0x6cd27020, 0x36961: 0x6cd27220, 0x36962: 0x6cd27420, 0x36963: 0x6cd27620, + 0x36964: 0x6cd27820, 0x36965: 0x6cd27a20, 0x36966: 0x6cd27c20, 0x36967: 0x6cd27e20, + 0x36968: 0x6cd28020, 0x36969: 0x6cd28220, 0x3696a: 0x6cd28420, 0x3696b: 0x6cd28620, + 0x3696c: 0x6cd28820, 0x3696d: 0x6cd28a20, 0x3696e: 0x6cd28c20, 0x3696f: 0x6cd28e20, + 0x36970: 0x6cd29020, 0x36971: 0x6cd29220, 0x36972: 0x6cd29420, 0x36973: 0x6cd29620, + 0x36974: 0x6cd29820, 0x36975: 0x6cd29a20, 0x36976: 0x6cd29c20, 0x36977: 0x6cd29e20, + 0x36978: 0x6cd2a020, 0x36979: 0x6cd2a220, 0x3697a: 0x6cd2a420, 0x3697b: 0x6cd2a620, + 0x3697c: 0x6cd2a820, 0x3697d: 0x6cd2aa20, 0x3697e: 0x6cd2ac20, 0x3697f: 0x6cd2ae20, + // Block 0xda6, offset 0x36980 + 0x36980: 0x6cd2b020, 0x36981: 0x6cd2b220, 0x36982: 0x6d003c20, 0x36983: 0x6d003e20, + 0x36984: 0x6d004020, 0x36985: 0x6d004220, 0x36986: 0x6d004420, 0x36987: 0x6d004620, + 0x36988: 0x6d004820, 0x36989: 0x6d004a20, 0x3698a: 0x6d004c20, 0x3698b: 0x6d004e20, + 0x3698c: 0x6d005020, 0x3698d: 0x6d005220, 0x3698e: 0x6d005420, 0x3698f: 0x6d005620, + 0x36990: 0x6d005820, 0x36991: 0x6d005a20, 0x36992: 0x6d005c20, 0x36993: 0x6d005e20, + 0x36994: 0x6d006020, 0x36995: 0x6d006220, 0x36996: 0x6d006420, 0x36997: 0x6d006620, + 0x36998: 0x6d006820, 0x36999: 0x6d006a20, 0x3699a: 0x6d006c20, 0x3699b: 0x6d006e20, + 0x3699c: 0x6d007020, 0x3699d: 0x6d007220, 0x3699e: 0x6d007420, 0x3699f: 0x6d007620, + 0x369a0: 0x6d007820, 0x369a1: 0x6d007a20, 0x369a2: 0x6d007c20, 0x369a3: 0x6d007e20, + 0x369a4: 0x6d008020, 0x369a5: 0x6d008220, 0x369a6: 0x6d008420, 0x369a7: 0x6d008620, + 0x369a8: 0x6d008820, 0x369a9: 0x6d008a20, 0x369aa: 0x6d008c20, 0x369ab: 0x6d008e20, + 0x369ac: 0x6d009020, 0x369ad: 0x6d009220, 0x369ae: 0x6d009420, 0x369af: 0x6d009620, + 0x369b0: 0x6d009820, 0x369b1: 0x6d009a20, 0x369b2: 0x6d009c20, 0x369b3: 0x6d009e20, + 0x369b4: 0x6d00a020, 0x369b5: 0x6d00a220, 0x369b6: 0x6d00a420, 0x369b7: 0x6d00a620, + 0x369b8: 0x6d00a820, 0x369b9: 0x6d00aa20, 0x369ba: 0x6d00ac20, 0x369bb: 0x6d2e4220, + 0x369bc: 0x6d2e4420, 0x369bd: 0x6d2e4620, 0x369be: 0x6d2e4820, 0x369bf: 0x6d2e4a20, + // Block 0xda7, offset 0x369c0 + 0x369c0: 0x6d2e4c20, 0x369c1: 0x6d2e4e20, 0x369c2: 0x6d2e5020, 0x369c3: 0x6d2e5220, + 0x369c4: 0x6d2e5420, 0x369c5: 0x6d2e5620, 0x369c6: 0x6d2e5820, 0x369c7: 0x6d2e5a20, + 0x369c8: 0x6d2e5c20, 0x369c9: 0x6d2e5e20, 0x369ca: 0x6d2e6020, 0x369cb: 0x6d2e6220, + 0x369cc: 0x6d2e6420, 0x369cd: 0x6d2e6620, 0x369ce: 0x6d2e6820, 0x369cf: 0x6d2e6a20, + 0x369d0: 0x6d2e6c20, 0x369d1: 0x6d2e6e20, 0x369d2: 0x6d2e7020, 0x369d3: 0x6d2e7220, + 0x369d4: 0x6d2e7420, 0x369d5: 0x6d2e7620, 0x369d6: 0x6d2e7820, 0x369d7: 0x6d2e7a20, + 0x369d8: 0x6d2e7c20, 0x369d9: 0x6d2e7e20, 0x369da: 0x6d2e8020, 0x369db: 0x6d2e8220, + 0x369dc: 0x6d2e8420, 0x369dd: 0x6d2e8620, 0x369de: 0x6d2e8820, 0x369df: 0x6d2e8a20, + 0x369e0: 0x6d2e8c20, 0x369e1: 0x6d2e8e20, 0x369e2: 0x6d2e9020, 0x369e3: 0x6d2e9220, + 0x369e4: 0x6d2e9420, 0x369e5: 0x6d2e9620, 0x369e6: 0x6d2e9820, 0x369e7: 0x6d2e9a20, + 0x369e8: 0x6d2e9c20, 0x369e9: 0x6d2e9e20, 0x369ea: 0x6d5b6c20, 0x369eb: 0x6d5b6e20, + 0x369ec: 0x6d5b7020, 0x369ed: 0x6d5b7220, 0x369ee: 0x6d5b7420, 0x369ef: 0x6d5b7620, + 0x369f0: 0x6d5b7820, 0x369f1: 0x6d5b7a20, 0x369f2: 0x6d5b7c20, 0x369f3: 0x6d5b7e20, + 0x369f4: 0x6d5b8020, 0x369f5: 0x6d5b8220, 0x369f6: 0x6d5b8420, 0x369f7: 0x6d5b8620, + 0x369f8: 0x6d5b8820, 0x369f9: 0x6d5b8a20, 0x369fa: 0x6d5b8c20, 0x369fb: 0x6d5b8e20, + 0x369fc: 0x6d5b9020, 0x369fd: 0x6d5b9220, 0x369fe: 0x6d5b9420, 0x369ff: 0x6d5b9620, + // Block 0xda8, offset 0x36a00 + 0x36a00: 0x6d5b9820, 0x36a01: 0x6d5b9a20, 0x36a02: 0x6d5b9c20, 0x36a03: 0x6d5b9e20, + 0x36a04: 0x6d5ba020, 0x36a05: 0x6d5ba220, 0x36a06: 0x6d5ba420, 0x36a07: 0x6d5ba620, + 0x36a08: 0x6d5ba820, 0x36a09: 0x6d5baa20, 0x36a0a: 0x6d5bac20, 0x36a0b: 0x6d5bae20, + 0x36a0c: 0x6d5bb020, 0x36a0d: 0x6d5bb220, 0x36a0e: 0x6d5bb420, 0x36a0f: 0x6d5bb620, + 0x36a10: 0x6d5bb820, 0x36a11: 0x6d5bba20, 0x36a12: 0x6d5bbc20, 0x36a13: 0x6d5bbe20, + 0x36a14: 0x6d5bc020, 0x36a15: 0x6d5bc220, 0x36a16: 0x6d5bc420, 0x36a17: 0x6d5bc620, + 0x36a18: 0x6d5bc820, 0x36a19: 0x6d5bca20, 0x36a1a: 0x6d5bcc20, 0x36a1b: 0x6d5bce20, + 0x36a1c: 0x6d5bd020, 0x36a1d: 0x6d85fe20, 0x36a1e: 0x6d860020, 0x36a1f: 0x6d860220, + 0x36a20: 0x6d860420, 0x36a21: 0x6d860620, 0x36a22: 0x6d860820, 0x36a23: 0x6d860a20, + 0x36a24: 0x6d860c20, 0x36a25: 0x6d860e20, 0x36a26: 0x6d861020, 0x36a27: 0x6d861220, + 0x36a28: 0x6d861420, 0x36a29: 0x6d861620, 0x36a2a: 0x6d861820, 0x36a2b: 0x6d861a20, + 0x36a2c: 0x6d861c20, 0x36a2d: 0x6d861e20, 0x36a2e: 0x6d862020, 0x36a2f: 0x6d862220, + 0x36a30: 0x6d862420, 0x36a31: 0x6d862620, 0x36a32: 0x6d862820, 0x36a33: 0x6d862a20, + 0x36a34: 0x6d862c20, 0x36a35: 0x6d862e20, 0x36a36: 0x6d863020, 0x36a37: 0x6d863220, + 0x36a38: 0x6d863420, 0x36a39: 0x6d863620, 0x36a3a: 0x6d863820, 0x36a3b: 0x6d863a20, + 0x36a3c: 0x6d863c20, 0x36a3d: 0x6d863e20, 0x36a3e: 0x6d864020, 0x36a3f: 0x6d864220, + // Block 0xda9, offset 0x36a40 + 0x36a40: 0x6d864420, 0x36a41: 0x6d864620, 0x36a42: 0x6d864820, 0x36a43: 0x6daa9020, + 0x36a44: 0x6daa9220, 0x36a45: 0x6daa9420, 0x36a46: 0x6daa9620, 0x36a47: 0x6daa9820, + 0x36a48: 0x6daa9a20, 0x36a49: 0x6daa9c20, 0x36a4a: 0x6daa9e20, 0x36a4b: 0x6daaa020, + 0x36a4c: 0x6daaa220, 0x36a4d: 0x6daaa420, 0x36a4e: 0x6daaa620, 0x36a4f: 0x6daaa820, + 0x36a50: 0x6daaaa20, 0x36a51: 0x6daaac20, 0x36a52: 0x6daaae20, 0x36a53: 0x6daab020, + 0x36a54: 0x6daab220, 0x36a55: 0x6daab420, 0x36a56: 0x6daab620, 0x36a57: 0x6daab820, + 0x36a58: 0x6daaba20, 0x36a59: 0x6daabc20, 0x36a5a: 0x6daabe20, 0x36a5b: 0x6daac020, + 0x36a5c: 0x6daac220, 0x36a5d: 0x6daac420, 0x36a5e: 0x6d864a20, 0x36a5f: 0x6daac620, + 0x36a60: 0x6daac820, 0x36a61: 0x6daaca20, 0x36a62: 0x6daacc20, 0x36a63: 0x6daace20, + 0x36a64: 0x6daad020, 0x36a65: 0x6daad220, 0x36a66: 0x6daad420, 0x36a67: 0x6daad620, + 0x36a68: 0x6daad820, 0x36a69: 0x6daada20, 0x36a6a: 0x6daadc20, 0x36a6b: 0x6daade20, + 0x36a6c: 0x6daae020, 0x36a6d: 0x6daae220, 0x36a6e: 0x6daae420, 0x36a6f: 0x6daae620, + 0x36a70: 0x6daae820, 0x36a71: 0x6daaea20, 0x36a72: 0x6daaec20, 0x36a73: 0x6daaee20, + 0x36a74: 0x6daaf020, 0x36a75: 0x6daaf220, 0x36a76: 0x6daaf420, 0x36a77: 0x6daaf620, + 0x36a78: 0x6daaf820, 0x36a79: 0x6daafa20, 0x36a7a: 0x6dcb4c20, 0x36a7b: 0x6dcb4e20, + 0x36a7c: 0x6dcb5020, 0x36a7d: 0x6dcb5220, 0x36a7e: 0x6dcb5420, 0x36a7f: 0x6dcb5620, + // Block 0xdaa, offset 0x36a80 + 0x36a80: 0x6dcb5820, 0x36a81: 0x6dcb5a20, 0x36a82: 0x6dcb5c20, 0x36a83: 0x6dcb5e20, + 0x36a84: 0x6dcb6020, 0x36a85: 0x6dcb6220, 0x36a86: 0x6dcb6420, 0x36a87: 0x6dcb6620, + 0x36a88: 0x6dcb6820, 0x36a89: 0x6dcb6a20, 0x36a8a: 0x6dcb6c20, 0x36a8b: 0x6dcb6e20, + 0x36a8c: 0x6dcb7020, 0x36a8d: 0x6dcb7220, 0x36a8e: 0x6dcb7420, 0x36a8f: 0x6dcb7620, + 0x36a90: 0x6dcb7820, 0x36a91: 0x6dcb7a20, 0x36a92: 0x6dcb7c20, 0x36a93: 0x6dcb7e20, + 0x36a94: 0x6dcb8020, 0x36a95: 0x6de6a420, 0x36a96: 0x6de6a620, 0x36a97: 0x6de6a820, + 0x36a98: 0x6de6aa20, 0x36a99: 0x6de6ac20, 0x36a9a: 0x6de6ae20, 0x36a9b: 0x6de6b020, + 0x36a9c: 0x6de6b220, 0x36a9d: 0x6de6b420, 0x36a9e: 0x6de6b620, 0x36a9f: 0x6de6b820, + 0x36aa0: 0x6de6ba20, 0x36aa1: 0x6de6bc20, 0x36aa2: 0x6de6be20, 0x36aa3: 0x6de6c020, + 0x36aa4: 0x6de6c220, 0x36aa5: 0x6de6c420, 0x36aa6: 0x6de6c620, 0x36aa7: 0x6de6c820, + 0x36aa8: 0x6de6ca20, 0x36aa9: 0x6de6cc20, 0x36aaa: 0x6de6ce20, 0x36aab: 0x6de6d020, + 0x36aac: 0x6de6d220, 0x36aad: 0x6de6d420, 0x36aae: 0x6de6d620, 0x36aaf: 0x6de6d820, + 0x36ab0: 0x6dfd5220, 0x36ab1: 0x6dfd5420, 0x36ab2: 0x6dfd5620, 0x36ab3: 0x6dfd5820, + 0x36ab4: 0x6dfd5a20, 0x36ab5: 0x6dfd5c20, 0x36ab6: 0x6dfd5e20, 0x36ab7: 0x6dfd6020, + 0x36ab8: 0x6dfd6220, 0x36ab9: 0x6dfd6420, 0x36aba: 0x6dfd6620, 0x36abb: 0x6dfd6820, + 0x36abc: 0x6dfd6a20, 0x36abd: 0x6dfd6c20, 0x36abe: 0x6dfd6e20, 0x36abf: 0x6dfd7020, + // Block 0xdab, offset 0x36ac0 + 0x36ac0: 0x6e102e20, 0x36ac1: 0x6e103020, 0x36ac2: 0x6e103220, 0x36ac3: 0x6e103420, + 0x36ac4: 0x6e103620, 0x36ac5: 0x6e103820, 0x36ac6: 0x6e103a20, 0x36ac7: 0x6e103c20, + 0x36ac8: 0x6e103e20, 0x36ac9: 0x6e104020, 0x36aca: 0x6e104220, 0x36acb: 0x6e1ef020, + 0x36acc: 0x6e1ef220, 0x36acd: 0x6e1ef420, 0x36ace: 0x6e1ef620, 0x36acf: 0x6e1ef820, + 0x36ad0: 0x6e2a4e20, 0x36ad1: 0x6e2a5020, 0x36ad2: 0x6e2a5220, 0x36ad3: 0x6e2a5420, + 0x36ad4: 0x6e2a5620, 0x36ad5: 0x6e2a5820, 0x36ad6: 0x6e2a5a20, 0x36ad7: 0x6e2a5c20, + 0x36ad8: 0x6e32f620, 0x36ad9: 0x6e32f820, 0x36ada: 0x6e32fa20, 0x36adb: 0x6e32fc20, + 0x36adc: 0x6e392a20, 0x36add: 0x6e392c20, 0x36ade: 0x6e392e20, 0x36adf: 0x6e3d8220, + 0x36ae0: 0x6e3d8420, 0x36ae1: 0x6e3d8620, 0x36ae2: 0x6e408220, 0x36ae3: 0x6e42cc20, + 0x36ae4: 0x6e443a20, 0x36ae5: 0x6c24f420, 0x36ae6: 0x6c24f620, 0x36ae7: 0x6c590820, + 0x36ae8: 0x6c590a20, 0x36ae9: 0x6c7ba420, 0x36aea: 0x6c7ba620, 0x36aeb: 0x6c7ba820, + 0x36aec: 0x6ca48620, 0x36aed: 0x6ca48820, 0x36aee: 0x6ca48a20, 0x36aef: 0x6cd2bc20, + 0x36af0: 0x6cd2be20, 0x36af1: 0x6cd2c020, 0x36af2: 0x6cd2c220, 0x36af3: 0x6d00b420, + 0x36af4: 0x6d00b620, 0x36af5: 0x6d00b820, 0x36af6: 0x6d2ea620, 0x36af7: 0x6d5bd820, + 0x36af8: 0x6d5bda20, 0x36af9: 0x6d864c20, 0x36afa: 0x6d864e20, 0x36afb: 0x6dfd7220, + 0x36afc: 0x6d865020, 0x36afd: 0x6c13e420, 0x36afe: 0x6c13e620, 0x36aff: 0x6c250220, + // Block 0xdac, offset 0x36b00 + 0x36b00: 0x6c250420, 0x36b01: 0x6c250620, 0x36b02: 0x6c3c4820, 0x36b03: 0x6c3c4a20, + 0x36b04: 0x6c3c4c20, 0x36b05: 0x6c3c4e20, 0x36b06: 0x6c3c5020, 0x36b07: 0x6c3c5220, + 0x36b08: 0x6c591620, 0x36b09: 0x6c591820, 0x36b0a: 0x6c591a20, 0x36b0b: 0x6c591c20, + 0x36b0c: 0x6c591e20, 0x36b0d: 0x6c592020, 0x36b0e: 0x6c592220, 0x36b0f: 0x6c592420, + 0x36b10: 0x6c592620, 0x36b11: 0x6c592820, 0x36b12: 0x6c592a20, 0x36b13: 0x6c592c20, + 0x36b14: 0x6c592e20, 0x36b15: 0x6c593020, 0x36b16: 0x6c593220, 0x36b17: 0x6c593420, + 0x36b18: 0x6c7bb620, 0x36b19: 0x6c7bb820, 0x36b1a: 0x6c7bba20, 0x36b1b: 0x6c7bbc20, + 0x36b1c: 0x6c7bbe20, 0x36b1d: 0x6c7bc020, 0x36b1e: 0x6c7bc220, 0x36b1f: 0x6c7bc420, + 0x36b20: 0x6c7bc620, 0x36b21: 0x6c7bc820, 0x36b22: 0x6c7bca20, 0x36b23: 0x6c7bcc20, + 0x36b24: 0x6c7bce20, 0x36b25: 0x6ca49a20, 0x36b26: 0x6ca49c20, 0x36b27: 0x6ca49e20, + 0x36b28: 0x6ca4a020, 0x36b29: 0x6ca4a220, 0x36b2a: 0x6ca4a420, 0x36b2b: 0x6ca4a620, + 0x36b2c: 0x6cd2d020, 0x36b2d: 0x6cd2d220, 0x36b2e: 0x6cd2d420, 0x36b2f: 0x6cd2d620, + 0x36b30: 0x6cd2d820, 0x36b31: 0x6cd2da20, 0x36b32: 0x6cd2dc20, 0x36b33: 0x6cd2de20, + 0x36b34: 0x6cd2e020, 0x36b35: 0x6cd2e220, 0x36b36: 0x6cd2e420, 0x36b37: 0x6cd2e620, + 0x36b38: 0x6cd2e820, 0x36b39: 0x6d00c220, 0x36b3a: 0x6d00c420, 0x36b3b: 0x6d00c620, + 0x36b3c: 0x6d00c820, 0x36b3d: 0x6d00ca20, 0x36b3e: 0x6d00cc20, 0x36b3f: 0x6d00ce20, + // Block 0xdad, offset 0x36b40 + 0x36b40: 0x6d00d020, 0x36b41: 0x6d00d220, 0x36b42: 0x6d00d420, 0x36b43: 0x6d00d620, + 0x36b44: 0x6d00d820, 0x36b45: 0x6d00da20, 0x36b46: 0x6d00dc20, 0x36b47: 0x6d00de20, + 0x36b48: 0x6d2eac20, 0x36b49: 0x6d2eae20, 0x36b4a: 0x6d2eb020, 0x36b4b: 0x6d2eb220, + 0x36b4c: 0x6d2eb420, 0x36b4d: 0x6d2eb620, 0x36b4e: 0x6d2eb820, 0x36b4f: 0x6d2eba20, + 0x36b50: 0x6d2ebc20, 0x36b51: 0x6d2ebe20, 0x36b52: 0x6d2ec020, 0x36b53: 0x6d2ec220, + 0x36b54: 0x6d5be820, 0x36b55: 0x6d5bea20, 0x36b56: 0x6d5bec20, 0x36b57: 0x6d5bee20, + 0x36b58: 0x6d5bf020, 0x36b59: 0x6d5bf220, 0x36b5a: 0x6d5bf420, 0x36b5b: 0x6d865a20, + 0x36b5c: 0x6d865c20, 0x36b5d: 0x6d865e20, 0x36b5e: 0x6d866020, 0x36b5f: 0x6d866220, + 0x36b60: 0x6dab0820, 0x36b61: 0x6dab0a20, 0x36b62: 0x6dab0c20, 0x36b63: 0x6dab0e20, + 0x36b64: 0x6dab1020, 0x36b65: 0x6dab1220, 0x36b66: 0x6dab1420, 0x36b67: 0x6dcb8a20, + 0x36b68: 0x6dcb8c20, 0x36b69: 0x6dcb8e20, 0x36b6a: 0x6dcb9020, 0x36b6b: 0x6de6e020, + 0x36b6c: 0x6de6e220, 0x36b6d: 0x6de6e420, 0x36b6e: 0x6de6e620, 0x36b6f: 0x6de6e820, + 0x36b70: 0x6de6ea20, 0x36b71: 0x6de6ec20, 0x36b72: 0x6de6ee20, 0x36b73: 0x6de6f020, + 0x36b74: 0x6dfd7820, 0x36b75: 0x6dfd7a20, 0x36b76: 0x6dfd7c20, 0x36b77: 0x6dfd7e20, + 0x36b78: 0x6e104820, 0x36b79: 0x6e104a20, 0x36b7a: 0x6e104c20, 0x36b7b: 0x6e1efa20, + 0x36b7c: 0x6e1efc20, 0x36b7d: 0x6e1efe20, 0x36b7e: 0x6e2a5e20, 0x36b7f: 0x6e2a6020, + // Block 0xdae, offset 0x36b80 + 0x36b80: 0x6e32fe20, 0x36b81: 0x6e330020, 0x36b82: 0x6e330220, 0x36b83: 0x6e330420, + 0x36b84: 0x6e393220, 0x36b85: 0x6e443c20, 0x36b86: 0x6c250820, 0x36b87: 0x6c250a20, + 0x36b88: 0x6c3c5820, 0x36b89: 0x6c3c5a20, 0x36b8a: 0x6c3c5c20, 0x36b8b: 0x6c3c5e20, + 0x36b8c: 0x6c3c6020, 0x36b8d: 0x6c3c6220, 0x36b8e: 0x6c593e20, 0x36b8f: 0x6c594020, + 0x36b90: 0x6c594220, 0x36b91: 0x6c594420, 0x36b92: 0x6c594620, 0x36b93: 0x6c594820, + 0x36b94: 0x6c594a20, 0x36b95: 0x6c7bdc20, 0x36b96: 0x6c7bde20, 0x36b97: 0x6c7be020, + 0x36b98: 0x6c7be220, 0x36b99: 0x6c7be420, 0x36b9a: 0x6c7be620, 0x36b9b: 0x6c7be820, + 0x36b9c: 0x6c7bea20, 0x36b9d: 0x6c7bec20, 0x36b9e: 0x6c7bee20, 0x36b9f: 0x6ca4ae20, + 0x36ba0: 0x6ca4b020, 0x36ba1: 0x6ca4b220, 0x36ba2: 0x6ca4b420, 0x36ba3: 0x6ca4b620, + 0x36ba4: 0x6ca4b820, 0x36ba5: 0x6ca4ba20, 0x36ba6: 0x6ca4bc20, 0x36ba7: 0x6cd2f420, + 0x36ba8: 0x6cd2f620, 0x36ba9: 0x6cd2f820, 0x36baa: 0x6cd2fa20, 0x36bab: 0x6cd2fc20, + 0x36bac: 0x6cd2fe20, 0x36bad: 0x6cd30020, 0x36bae: 0x6cd30220, 0x36baf: 0x6d00ec20, + 0x36bb0: 0x6cd30420, 0x36bb1: 0x6cd30620, 0x36bb2: 0x6cd30820, 0x36bb3: 0x6d00ee20, + 0x36bb4: 0x6d00f020, 0x36bb5: 0x6d00f220, 0x36bb6: 0x6d00f420, 0x36bb7: 0x6d00f620, + 0x36bb8: 0x6d00f820, 0x36bb9: 0x6d00fa20, 0x36bba: 0x6d00fc20, 0x36bbb: 0x6d00fe20, + 0x36bbc: 0x6d010020, 0x36bbd: 0x6d010220, 0x36bbe: 0x6d010420, 0x36bbf: 0x6d010620, + // Block 0xdaf, offset 0x36bc0 + 0x36bc0: 0x6d2ed420, 0x36bc1: 0x6d2ed620, 0x36bc2: 0x6d2ed820, 0x36bc3: 0x6d2eda20, + 0x36bc4: 0x6d2edc20, 0x36bc5: 0x6d2ede20, 0x36bc6: 0x6d2ee020, 0x36bc7: 0x6d2ee220, + 0x36bc8: 0x6d2ee420, 0x36bc9: 0x6d2ee620, 0x36bca: 0x6d2ee820, 0x36bcb: 0x6d2eea20, + 0x36bcc: 0x6d2eec20, 0x36bcd: 0x6d5bfe20, 0x36bce: 0x6d5c0020, 0x36bcf: 0x6d5c0220, + 0x36bd0: 0x6d5c0420, 0x36bd1: 0x6d5c0620, 0x36bd2: 0x6d5c0820, 0x36bd3: 0x6d5c0a20, + 0x36bd4: 0x6d866820, 0x36bd5: 0x6d866a20, 0x36bd6: 0x6d866c20, 0x36bd7: 0x6d866e20, + 0x36bd8: 0x6d867020, 0x36bd9: 0x6d867220, 0x36bda: 0x6d867420, 0x36bdb: 0x6d867620, + 0x36bdc: 0x6d867820, 0x36bdd: 0x6d867a20, 0x36bde: 0x6d867c20, 0x36bdf: 0x6dab1820, + 0x36be0: 0x6dab1a20, 0x36be1: 0x6dab1c20, 0x36be2: 0x6dcb9620, 0x36be3: 0x6dcb9820, + 0x36be4: 0x6dcb9a20, 0x36be5: 0x6dcb9c20, 0x36be6: 0x6dcb9e20, 0x36be7: 0x6dcba020, + 0x36be8: 0x6dcba220, 0x36be9: 0x6dcba420, 0x36bea: 0x6dcba620, 0x36beb: 0x6de6f220, + 0x36bec: 0x6de6f420, 0x36bed: 0x6de6f620, 0x36bee: 0x6de6f820, 0x36bef: 0x6dfd8420, + 0x36bf0: 0x6dfd8620, 0x36bf1: 0x6dfd8820, 0x36bf2: 0x6dfd8a20, 0x36bf3: 0x6dfd8c20, + 0x36bf4: 0x6e105020, 0x36bf5: 0x6e105220, 0x36bf6: 0x6e1f0220, 0x36bf7: 0x6e1f0420, + 0x36bf8: 0x6e1f0620, 0x36bf9: 0x6e330620, 0x36bfa: 0x6e330820, 0x36bfb: 0x6e3c7e20, + 0x36bfc: 0x6e3fda20, 0x36bfd: 0x6e450420, 0x36bfe: 0x6e46a420, 0x36bff: 0x6c251020, + // Block 0xdb0, offset 0x36c00 + 0x36c00: 0x6c251220, 0x36c01: 0x6c3c6a20, 0x36c02: 0x6c3c6c20, 0x36c03: 0x6c3c6e20, + 0x36c04: 0x6c3c7020, 0x36c05: 0x6c3c7220, 0x36c06: 0x6c595e20, 0x36c07: 0x6c596020, + 0x36c08: 0x6c596220, 0x36c09: 0x6c596420, 0x36c0a: 0x6c596620, 0x36c0b: 0x6c596820, + 0x36c0c: 0x6c596a20, 0x36c0d: 0x6c596c20, 0x36c0e: 0x6c7c0820, 0x36c0f: 0x6c7c0a20, + 0x36c10: 0x6c7c0c20, 0x36c11: 0x6c7c0e20, 0x36c12: 0x6c7c1020, 0x36c13: 0x6c7c1220, + 0x36c14: 0x6c7c1420, 0x36c15: 0x6c7c1620, 0x36c16: 0x6c7c1820, 0x36c17: 0x6c7c1a20, + 0x36c18: 0x6c7c1c20, 0x36c19: 0x6c7c1e20, 0x36c1a: 0x6c7c2020, 0x36c1b: 0x6c7c2220, + 0x36c1c: 0x6c7c2420, 0x36c1d: 0x6c7c2620, 0x36c1e: 0x6ca4d220, 0x36c1f: 0x6ca4d420, + 0x36c20: 0x6ca4d620, 0x36c21: 0x6ca4d820, 0x36c22: 0x6ca4da20, 0x36c23: 0x6ca4dc20, + 0x36c24: 0x6ca4de20, 0x36c25: 0x6ca4e020, 0x36c26: 0x6ca4e220, 0x36c27: 0x6ca4e420, + 0x36c28: 0x6ca4e620, 0x36c29: 0x6ca4e820, 0x36c2a: 0x6ca4ea20, 0x36c2b: 0x6c7c2820, + 0x36c2c: 0x6cd31220, 0x36c2d: 0x6cd31420, 0x36c2e: 0x6cd31620, 0x36c2f: 0x6cd31820, + 0x36c30: 0x6cd31a20, 0x36c31: 0x6cd31c20, 0x36c32: 0x6cd31e20, 0x36c33: 0x6cd32020, + 0x36c34: 0x6cd32220, 0x36c35: 0x6cd32420, 0x36c36: 0x6cd32620, 0x36c37: 0x6d011220, + 0x36c38: 0x6d011420, 0x36c39: 0x6d011620, 0x36c3a: 0x6d011820, 0x36c3b: 0x6d011a20, + 0x36c3c: 0x6d011c20, 0x36c3d: 0x6d011e20, 0x36c3e: 0x6d012020, 0x36c3f: 0x6d012220, + // Block 0xdb1, offset 0x36c40 + 0x36c40: 0x6d012420, 0x36c41: 0x6d012620, 0x36c42: 0x6d012820, 0x36c43: 0x6d2efc20, + 0x36c44: 0x6d2efe20, 0x36c45: 0x6d2f0020, 0x36c46: 0x6d2f0220, 0x36c47: 0x6d5c0e20, + 0x36c48: 0x6d5c1020, 0x36c49: 0x6d5c1220, 0x36c4a: 0x6d5c1420, 0x36c4b: 0x6d5c1620, + 0x36c4c: 0x6d5c1820, 0x36c4d: 0x6d5c1a20, 0x36c4e: 0x6d5c1c20, 0x36c4f: 0x6d5c1e20, + 0x36c50: 0x6d5c2020, 0x36c51: 0x6d5c2220, 0x36c52: 0x6d5c2420, 0x36c53: 0x6d868820, + 0x36c54: 0x6d868a20, 0x36c55: 0x6d868c20, 0x36c56: 0x6d868e20, 0x36c57: 0x6d869020, + 0x36c58: 0x6d869220, 0x36c59: 0x6d869420, 0x36c5a: 0x6d869620, 0x36c5b: 0x6d869820, + 0x36c5c: 0x6d869a20, 0x36c5d: 0x6d869c20, 0x36c5e: 0x6d869e20, 0x36c5f: 0x6d86a020, + 0x36c60: 0x6d86a220, 0x36c61: 0x6d86a420, 0x36c62: 0x6d86a620, 0x36c63: 0x6d86a820, + 0x36c64: 0x6d86aa20, 0x36c65: 0x6dab2620, 0x36c66: 0x6dab2820, 0x36c67: 0x6dab2a20, + 0x36c68: 0x6dab2c20, 0x36c69: 0x6dab2e20, 0x36c6a: 0x6dab3020, 0x36c6b: 0x6dab3220, + 0x36c6c: 0x6dab3420, 0x36c6d: 0x6dab3620, 0x36c6e: 0x6dab3820, 0x36c6f: 0x6dab3a20, + 0x36c70: 0x6dab3c20, 0x36c71: 0x6dab3e20, 0x36c72: 0x6dab4020, 0x36c73: 0x6da02a20, + 0x36c74: 0x6dab4220, 0x36c75: 0x6dab4420, 0x36c76: 0x6dab4620, 0x36c77: 0x6dab4820, + 0x36c78: 0x6dcbac20, 0x36c79: 0x6dcbae20, 0x36c7a: 0x6dcbb020, 0x36c7b: 0x6de6fc20, + 0x36c7c: 0x6dcbb220, 0x36c7d: 0x6dcbb420, 0x36c7e: 0x6dcbb620, 0x36c7f: 0x6dcbb820, + // Block 0xdb2, offset 0x36c80 + 0x36c80: 0x6dcbba20, 0x36c81: 0x6de6fe20, 0x36c82: 0x6de70020, 0x36c83: 0x6de70220, + 0x36c84: 0x6de70420, 0x36c85: 0x6de70620, 0x36c86: 0x6de70820, 0x36c87: 0x6dfd9020, + 0x36c88: 0x6dfd9220, 0x36c89: 0x6dfd9420, 0x36c8a: 0x6dfd9620, 0x36c8b: 0x6dfd9820, + 0x36c8c: 0x6dfd9a20, 0x36c8d: 0x6dfd9c20, 0x36c8e: 0x6dfd9e20, 0x36c8f: 0x6dfda020, + 0x36c90: 0x6dfda220, 0x36c91: 0x6dfda420, 0x36c92: 0x6e105620, 0x36c93: 0x6e1f0a20, + 0x36c94: 0x6e1f0c20, 0x36c95: 0x6e1f0e20, 0x36c96: 0x6e1f1020, 0x36c97: 0x6e1f1220, + 0x36c98: 0x6e2a6220, 0x36c99: 0x6e2a6420, 0x36c9a: 0x6e330a20, 0x36c9b: 0x6e330c20, + 0x36c9c: 0x6e330e20, 0x36c9d: 0x6e331020, 0x36c9e: 0x6e2a6620, 0x36c9f: 0x6e393420, + 0x36ca0: 0x6e393620, 0x36ca1: 0x6e3d8820, 0x36ca2: 0x6e452c20, 0x36ca3: 0x6e468820, + 0x36ca4: 0x6c13e820, 0x36ca5: 0x6c13ea20, 0x36ca6: 0x6c251a20, 0x36ca7: 0x6c251c20, + 0x36ca8: 0x6c251e20, 0x36ca9: 0x6c252020, 0x36caa: 0x6c252220, 0x36cab: 0x6c252420, + 0x36cac: 0x6c252620, 0x36cad: 0x6c252820, 0x36cae: 0x6c252a20, 0x36caf: 0x6c252c20, + 0x36cb0: 0x6c252e20, 0x36cb1: 0x6c253020, 0x36cb2: 0x6c3c8c20, 0x36cb3: 0x6c3c8e20, + 0x36cb4: 0x6c3c9020, 0x36cb5: 0x6c3c9220, 0x36cb6: 0x6c3c9420, 0x36cb7: 0x6c3c9620, + 0x36cb8: 0x6c3c9820, 0x36cb9: 0x6c3c9a20, 0x36cba: 0x6c3c9c20, 0x36cbb: 0x6c3c9e20, + 0x36cbc: 0x6c3ca020, 0x36cbd: 0x6c3ca220, 0x36cbe: 0x6c3ca420, 0x36cbf: 0x6c3ca620, + // Block 0xdb3, offset 0x36cc0 + 0x36cc0: 0x6c3ca820, 0x36cc1: 0x6c3caa20, 0x36cc2: 0x6c3cac20, 0x36cc3: 0x6c59b820, + 0x36cc4: 0x6c59ba20, 0x36cc5: 0x6c59bc20, 0x36cc6: 0x6c59be20, 0x36cc7: 0x6c59c020, + 0x36cc8: 0x6c59c220, 0x36cc9: 0x6c59c420, 0x36cca: 0x6c59c620, 0x36ccb: 0x6c59c820, + 0x36ccc: 0x6c59ca20, 0x36ccd: 0x6c59cc20, 0x36cce: 0x6c59ce20, 0x36ccf: 0x6c59d020, + 0x36cd0: 0x6c59d220, 0x36cd1: 0x6c59d420, 0x36cd2: 0x6c59d620, 0x36cd3: 0x6c59d820, + 0x36cd4: 0x6c59da20, 0x36cd5: 0x6c59dc20, 0x36cd6: 0x6c59de20, 0x36cd7: 0x6c59e020, + 0x36cd8: 0x6c59e220, 0x36cd9: 0x6c59e420, 0x36cda: 0x6c59e620, 0x36cdb: 0x6c59e820, + 0x36cdc: 0x6c59ea20, 0x36cdd: 0x6c59ec20, 0x36cde: 0x6c59ee20, 0x36cdf: 0x6c59f020, + 0x36ce0: 0x6c59f220, 0x36ce1: 0x6c59f420, 0x36ce2: 0x6c59f620, 0x36ce3: 0x6c59f820, + 0x36ce4: 0x6c59fa20, 0x36ce5: 0x6c59fc20, 0x36ce6: 0x6c59fe20, 0x36ce7: 0x6c5a0020, + 0x36ce8: 0x6c5a0220, 0x36ce9: 0x6c5a0420, 0x36cea: 0x6c5a0620, 0x36ceb: 0x6c5a0820, + 0x36cec: 0x6c5a0a20, 0x36ced: 0x6c5a0c20, 0x36cee: 0x6c5a0e20, 0x36cef: 0x6c5a1020, + 0x36cf0: 0x6c5a1220, 0x36cf1: 0x6c7c7a20, 0x36cf2: 0x6c7c7c20, 0x36cf3: 0x6c7c7e20, + 0x36cf4: 0x6c7c8020, 0x36cf5: 0x6c7c8220, 0x36cf6: 0x6c7c8420, 0x36cf7: 0x6c7c8620, + 0x36cf8: 0x6c7c8820, 0x36cf9: 0x6c7c8a20, 0x36cfa: 0x6c7c8c20, 0x36cfb: 0x6c7c8e20, + 0x36cfc: 0x6c7c9020, 0x36cfd: 0x6c7c9220, 0x36cfe: 0x6c7c9420, 0x36cff: 0x6c7c9620, + // Block 0xdb4, offset 0x36d00 + 0x36d00: 0x6c7c9820, 0x36d01: 0x6c7c9a20, 0x36d02: 0x6c7c9c20, 0x36d03: 0x6c7c9e20, + 0x36d04: 0x6c7ca020, 0x36d05: 0x6c7ca220, 0x36d06: 0x6c7ca420, 0x36d07: 0x6c7ca620, + 0x36d08: 0x6c7ca820, 0x36d09: 0x6c7caa20, 0x36d0a: 0x6c7cac20, 0x36d0b: 0x6c7cae20, + 0x36d0c: 0x6c7cb020, 0x36d0d: 0x6c7cb220, 0x36d0e: 0x6c7cb420, 0x36d0f: 0x6c7cb620, + 0x36d10: 0x6c7cb820, 0x36d11: 0x6c7cba20, 0x36d12: 0x6c7cbc20, 0x36d13: 0x6c7cbe20, + 0x36d14: 0x6c7cc020, 0x36d15: 0x6c7cc220, 0x36d16: 0x6c7cc420, 0x36d17: 0x6c7cc620, + 0x36d18: 0x6c7cc820, 0x36d19: 0x6c7cca20, 0x36d1a: 0x6ca52a20, 0x36d1b: 0x6ca52c20, + 0x36d1c: 0x6ca52e20, 0x36d1d: 0x6ca53020, 0x36d1e: 0x6ca53220, 0x36d1f: 0x6ca53420, + 0x36d20: 0x6ca53620, 0x36d21: 0x6ca53820, 0x36d22: 0x6ca53a20, 0x36d23: 0x6ca53c20, + 0x36d24: 0x6ca53e20, 0x36d25: 0x6ca54020, 0x36d26: 0x6ca54220, 0x36d27: 0x6ca54420, + 0x36d28: 0x6ca54620, 0x36d29: 0x6ca54820, 0x36d2a: 0x6ca54a20, 0x36d2b: 0x6ca54c20, + 0x36d2c: 0x6ca54e20, 0x36d2d: 0x6ca55020, 0x36d2e: 0x6ca55220, 0x36d2f: 0x6ca55420, + 0x36d30: 0x6ca55620, 0x36d31: 0x6ca55820, 0x36d32: 0x6ca55a20, 0x36d33: 0x6ca55c20, + 0x36d34: 0x6ca55e20, 0x36d35: 0x6ca56020, 0x36d36: 0x6ca56220, 0x36d37: 0x6ca56420, + 0x36d38: 0x6ca56620, 0x36d39: 0x6ca56820, 0x36d3a: 0x6ca56a20, 0x36d3b: 0x6ca56c20, + 0x36d3c: 0x6ca56e20, 0x36d3d: 0x6ca57020, 0x36d3e: 0x6ca57220, 0x36d3f: 0x6ca57420, + // Block 0xdb5, offset 0x36d40 + 0x36d40: 0x6ca57620, 0x36d41: 0x6ca57820, 0x36d42: 0x6ca57a20, 0x36d43: 0x6ca57c20, + 0x36d44: 0x6ca57e20, 0x36d45: 0x6ca58020, 0x36d46: 0x6ca58220, 0x36d47: 0x6ca58420, + 0x36d48: 0x6ca58620, 0x36d49: 0x6ca58820, 0x36d4a: 0x6cd37220, 0x36d4b: 0x6cd37420, + 0x36d4c: 0x6cd37620, 0x36d4d: 0x6cd37820, 0x36d4e: 0x6cd37a20, 0x36d4f: 0x6cd37c20, + 0x36d50: 0x6cd37e20, 0x36d51: 0x6cd38020, 0x36d52: 0x6cd38220, 0x36d53: 0x6cd38420, + 0x36d54: 0x6cd38620, 0x36d55: 0x6cd38820, 0x36d56: 0x6cd38a20, 0x36d57: 0x6cd38c20, + 0x36d58: 0x6cd38e20, 0x36d59: 0x6cd39020, 0x36d5a: 0x6cd39220, 0x36d5b: 0x6cd39420, + 0x36d5c: 0x6cd39620, 0x36d5d: 0x6cd39820, 0x36d5e: 0x6cd39a20, 0x36d5f: 0x6cd39c20, + 0x36d60: 0x6cd39e20, 0x36d61: 0x6cd3a020, 0x36d62: 0x6cd3a220, 0x36d63: 0x6cd3a420, + 0x36d64: 0x6cd3a620, 0x36d65: 0x6cd3a820, 0x36d66: 0x6cd3aa20, 0x36d67: 0x6cd3ac20, + 0x36d68: 0x6cd3ae20, 0x36d69: 0x6cd3b020, 0x36d6a: 0x6cd3b220, 0x36d6b: 0x6cd3b420, + 0x36d6c: 0x6cd3b620, 0x36d6d: 0x6cd3b820, 0x36d6e: 0x6cd3ba20, 0x36d6f: 0x6cd3bc20, + 0x36d70: 0x6cd3be20, 0x36d71: 0x6cd3c020, 0x36d72: 0x6cd3c220, 0x36d73: 0x6cd3c420, + 0x36d74: 0x6cd3c620, 0x36d75: 0x6cd3c820, 0x36d76: 0x6cd3ca20, 0x36d77: 0x6cd3cc20, + 0x36d78: 0x6cd3ce20, 0x36d79: 0x6cd3d020, 0x36d7a: 0x6cd3d220, 0x36d7b: 0x6cd3d420, + 0x36d7c: 0x6cd3d620, 0x36d7d: 0x6cd3d820, 0x36d7e: 0x6cd3da20, 0x36d7f: 0x6cd3dc20, + // Block 0xdb6, offset 0x36d80 + 0x36d80: 0x6cd3de20, 0x36d81: 0x6cd3e020, 0x36d82: 0x6cd3e220, 0x36d83: 0x6cd3e420, + 0x36d84: 0x6cd3e620, 0x36d85: 0x6d017e20, 0x36d86: 0x6cd3e820, 0x36d87: 0x6cd3ea20, + 0x36d88: 0x6cd3ec20, 0x36d89: 0x6d018020, 0x36d8a: 0x6d018220, 0x36d8b: 0x6d018420, + 0x36d8c: 0x6d018620, 0x36d8d: 0x6d018820, 0x36d8e: 0x6d018a20, 0x36d8f: 0x6d018c20, + 0x36d90: 0x6d018e20, 0x36d91: 0x6d019020, 0x36d92: 0x6d019220, 0x36d93: 0x6d019420, + 0x36d94: 0x6d019620, 0x36d95: 0x6d019820, 0x36d96: 0x6d019a20, 0x36d97: 0x6d019c20, + 0x36d98: 0x6d019e20, 0x36d99: 0x6d01a020, 0x36d9a: 0x6d01a220, 0x36d9b: 0x6d01a420, + 0x36d9c: 0x6d01a620, 0x36d9d: 0x6d01a820, 0x36d9e: 0x6d01aa20, 0x36d9f: 0x6d01ac20, + 0x36da0: 0x6d01ae20, 0x36da1: 0x6d01b020, 0x36da2: 0x6d01b220, 0x36da3: 0x6d01b420, + 0x36da4: 0x6d01b620, 0x36da5: 0x6d01b820, 0x36da6: 0x6d01ba20, 0x36da7: 0x6d01bc20, + 0x36da8: 0x6d01be20, 0x36da9: 0x6d01c020, 0x36daa: 0x6d01c220, 0x36dab: 0x6cd3ee20, + 0x36dac: 0x6d01c420, 0x36dad: 0x6d01c620, 0x36dae: 0x6d01c820, 0x36daf: 0x6d01ca20, + 0x36db0: 0x6d01cc20, 0x36db1: 0x6d01ce20, 0x36db2: 0x6d01d020, 0x36db3: 0x6d01d220, + 0x36db4: 0x6cf5b420, 0x36db5: 0x6d01d420, 0x36db6: 0x6d01d620, 0x36db7: 0x6d01d820, + 0x36db8: 0x6d01da20, 0x36db9: 0x6d01dc20, 0x36dba: 0x6d01de20, 0x36dbb: 0x6d01e020, + 0x36dbc: 0x6d01e220, 0x36dbd: 0x6d01e420, 0x36dbe: 0x6d01e620, 0x36dbf: 0x6d01e820, + // Block 0xdb7, offset 0x36dc0 + 0x36dc0: 0x6d01ea20, 0x36dc1: 0x6d01ec20, 0x36dc2: 0x6d2f5220, 0x36dc3: 0x6d2f5420, + 0x36dc4: 0x6d2f5620, 0x36dc5: 0x6d2f5820, 0x36dc6: 0x6d2f5a20, 0x36dc7: 0x6d2f5c20, + 0x36dc8: 0x6d2f5e20, 0x36dc9: 0x6d2f6020, 0x36dca: 0x6d2f6220, 0x36dcb: 0x6d2f6420, + 0x36dcc: 0x6d2f6620, 0x36dcd: 0x6d2f6820, 0x36dce: 0x6d2f6a20, 0x36dcf: 0x6d2f6c20, + 0x36dd0: 0x6d2f6e20, 0x36dd1: 0x6d2f7020, 0x36dd2: 0x6d2f7220, 0x36dd3: 0x6d2f7420, + 0x36dd4: 0x6d2f7620, 0x36dd5: 0x6d2f7820, 0x36dd6: 0x6d2f7a20, 0x36dd7: 0x6d2f7c20, + 0x36dd8: 0x6d2f7e20, 0x36dd9: 0x6d2f8020, 0x36dda: 0x6d2f8220, 0x36ddb: 0x6d2f8420, + 0x36ddc: 0x6d2f8620, 0x36ddd: 0x6d2f8820, 0x36dde: 0x6d2f8a20, 0x36ddf: 0x6d2f8c20, + 0x36de0: 0x6d2f8e20, 0x36de1: 0x6d2f9020, 0x36de2: 0x6d2f9220, 0x36de3: 0x6d2f9420, + 0x36de4: 0x6d2f9620, 0x36de5: 0x6d2f9820, 0x36de6: 0x6d2f9a20, 0x36de7: 0x6d2f9c20, + 0x36de8: 0x6d2f9e20, 0x36de9: 0x6d2fa020, 0x36dea: 0x6d2fa220, 0x36deb: 0x6d2fa420, + 0x36dec: 0x6d2fa620, 0x36ded: 0x6d2fa820, 0x36dee: 0x6d2faa20, 0x36def: 0x6d2fac20, + 0x36df0: 0x6d2fae20, 0x36df1: 0x6d2fb020, 0x36df2: 0x6d2fb220, 0x36df3: 0x6d2fb420, + 0x36df4: 0x6d2fb620, 0x36df5: 0x6d2fb820, 0x36df6: 0x6d2fba20, 0x36df7: 0x6d2fbc20, + 0x36df8: 0x6d2fbe20, 0x36df9: 0x6d2fc020, 0x36dfa: 0x6d2fc220, 0x36dfb: 0x6d2fc420, + 0x36dfc: 0x6d5c5820, 0x36dfd: 0x6d5c5a20, 0x36dfe: 0x6d5c5c20, 0x36dff: 0x6d5c5e20, + // Block 0xdb8, offset 0x36e00 + 0x36e00: 0x6d5c6020, 0x36e01: 0x6d5c6220, 0x36e02: 0x6d5c6420, 0x36e03: 0x6d5c6620, + 0x36e04: 0x6d5c6820, 0x36e05: 0x6d5c6a20, 0x36e06: 0x6d5c6c20, 0x36e07: 0x6d5c6e20, + 0x36e08: 0x6d5c7020, 0x36e09: 0x6d5c7220, 0x36e0a: 0x6d5c7420, 0x36e0b: 0x6d5c7620, + 0x36e0c: 0x6d5c7820, 0x36e0d: 0x6d5c7a20, 0x36e0e: 0x6d5c7c20, 0x36e0f: 0x6d5c7e20, + 0x36e10: 0x6d5c8020, 0x36e11: 0x6d5c8220, 0x36e12: 0x6d5c8420, 0x36e13: 0x6d5c8620, + 0x36e14: 0x6d5c8820, 0x36e15: 0x6d5c8a20, 0x36e16: 0x6d5c8c20, 0x36e17: 0x6d5c8e20, + 0x36e18: 0x6d5c9020, 0x36e19: 0x6d5c9220, 0x36e1a: 0x6d5c9420, 0x36e1b: 0x6d5c9620, + 0x36e1c: 0x6d5c9820, 0x36e1d: 0x6d5c9a20, 0x36e1e: 0x6d5c9c20, 0x36e1f: 0x6d5c9e20, + 0x36e20: 0x6d5ca020, 0x36e21: 0x6d5ca220, 0x36e22: 0x6d5ca420, 0x36e23: 0x6d5ca620, + 0x36e24: 0x6d5ca820, 0x36e25: 0x6d5caa20, 0x36e26: 0x6d5cac20, 0x36e27: 0x6d5cae20, + 0x36e28: 0x6d5cb020, 0x36e29: 0x6d5cb220, 0x36e2a: 0x6d5cb420, 0x36e2b: 0x6d5cb620, + 0x36e2c: 0x6d5cb820, 0x36e2d: 0x6d5cba20, 0x36e2e: 0x6d5cbc20, 0x36e2f: 0x6d5cbe20, + 0x36e30: 0x6d5cc020, 0x36e31: 0x6d5cc220, 0x36e32: 0x6d5cc420, 0x36e33: 0x6d5cc620, + 0x36e34: 0x6d86e020, 0x36e35: 0x6d86e220, 0x36e36: 0x6d86e420, 0x36e37: 0x6d86e620, + 0x36e38: 0x6d86e820, 0x36e39: 0x6d86ea20, 0x36e3a: 0x6d86ec20, 0x36e3b: 0x6d86ee20, + 0x36e3c: 0x6d86f020, 0x36e3d: 0x6d86f220, 0x36e3e: 0x6d86f420, 0x36e3f: 0x6d86f620, + // Block 0xdb9, offset 0x36e40 + 0x36e40: 0x6d86f820, 0x36e41: 0x6d86fa20, 0x36e42: 0x6d86fc20, 0x36e43: 0x6d86fe20, + 0x36e44: 0x6d870020, 0x36e45: 0x6d870220, 0x36e46: 0x6d870420, 0x36e47: 0x6d5cc820, + 0x36e48: 0x6d870620, 0x36e49: 0x6d870820, 0x36e4a: 0x6d870a20, 0x36e4b: 0x6d870c20, + 0x36e4c: 0x6d870e20, 0x36e4d: 0x6d871020, 0x36e4e: 0x6d871220, 0x36e4f: 0x6d871420, + 0x36e50: 0x6d871620, 0x36e51: 0x6d871820, 0x36e52: 0x6d871a20, 0x36e53: 0x6d871c20, + 0x36e54: 0x6d871e20, 0x36e55: 0x6d872020, 0x36e56: 0x6d872220, 0x36e57: 0x6d872420, + 0x36e58: 0x6d872620, 0x36e59: 0x6d872820, 0x36e5a: 0x6d872a20, 0x36e5b: 0x6d872c20, + 0x36e5c: 0x6d872e20, 0x36e5d: 0x6d873020, 0x36e5e: 0x6d873220, 0x36e5f: 0x6d873420, + 0x36e60: 0x6d873620, 0x36e61: 0x6d873820, 0x36e62: 0x6d873a20, 0x36e63: 0x6d873c20, + 0x36e64: 0x6d873e20, 0x36e65: 0x6d874020, 0x36e66: 0x6d874220, 0x36e67: 0x6d874420, + 0x36e68: 0x6d874620, 0x36e69: 0x6d874820, 0x36e6a: 0x6dab8620, 0x36e6b: 0x6dab8820, + 0x36e6c: 0x6dab8a20, 0x36e6d: 0x6dab8c20, 0x36e6e: 0x6dab8e20, 0x36e6f: 0x6dab9020, + 0x36e70: 0x6dab9220, 0x36e71: 0x6dab9420, 0x36e72: 0x6dab9620, 0x36e73: 0x6dab9820, + 0x36e74: 0x6dab9a20, 0x36e75: 0x6dab9c20, 0x36e76: 0x6dab9e20, 0x36e77: 0x6daba020, + 0x36e78: 0x6daba220, 0x36e79: 0x6daba420, 0x36e7a: 0x6daba620, 0x36e7b: 0x6daba820, + 0x36e7c: 0x6dabaa20, 0x36e7d: 0x6dabac20, 0x36e7e: 0x6dabae20, 0x36e7f: 0x6dabb020, + // Block 0xdba, offset 0x36e80 + 0x36e80: 0x6dabb220, 0x36e81: 0x6dabb420, 0x36e82: 0x6dabb620, 0x36e83: 0x6dabb820, + 0x36e84: 0x6dabba20, 0x36e85: 0x6dabbc20, 0x36e86: 0x6dabbe20, 0x36e87: 0x6dabc020, + 0x36e88: 0x6dabc220, 0x36e89: 0x6dabc420, 0x36e8a: 0x6dabc620, 0x36e8b: 0x6dabc820, + 0x36e8c: 0x6dabca20, 0x36e8d: 0x6dabcc20, 0x36e8e: 0x6dabce20, 0x36e8f: 0x6dabd020, + 0x36e90: 0x6dabd220, 0x36e91: 0x6dabd420, 0x36e92: 0x6dabd620, 0x36e93: 0x6dabd820, + 0x36e94: 0x6dabda20, 0x36e95: 0x6dabdc20, 0x36e96: 0x6d874a20, 0x36e97: 0x6dabde20, + 0x36e98: 0x6dcbe220, 0x36e99: 0x6dcbe420, 0x36e9a: 0x6dcbe620, 0x36e9b: 0x6dcbe820, + 0x36e9c: 0x6dcbea20, 0x36e9d: 0x6dcbec20, 0x36e9e: 0x6dcbee20, 0x36e9f: 0x6dcbf020, + 0x36ea0: 0x6dcbf220, 0x36ea1: 0x6dcbf420, 0x36ea2: 0x6dcbf620, 0x36ea3: 0x6dcbf820, + 0x36ea4: 0x6dcbfa20, 0x36ea5: 0x6dcbfc20, 0x36ea6: 0x6dcbfe20, 0x36ea7: 0x6dcc0020, + 0x36ea8: 0x6dcc0220, 0x36ea9: 0x6dcc0420, 0x36eaa: 0x6dcc0620, 0x36eab: 0x6dcc0820, + 0x36eac: 0x6dcc0a20, 0x36ead: 0x6dcc0c20, 0x36eae: 0x6dcc0e20, 0x36eaf: 0x6dcc1020, + 0x36eb0: 0x6dcc1220, 0x36eb1: 0x6dcc1420, 0x36eb2: 0x6dcc1620, 0x36eb3: 0x6dcc1820, + 0x36eb4: 0x6dcc1a20, 0x36eb5: 0x6dcc1c20, 0x36eb6: 0x6dcc1e20, 0x36eb7: 0x6dcc2020, + 0x36eb8: 0x6dcc2220, 0x36eb9: 0x6dcc2420, 0x36eba: 0x6dcc2620, 0x36ebb: 0x6dcc2820, + 0x36ebc: 0x6dcc2a20, 0x36ebd: 0x6dcc2c20, 0x36ebe: 0x6dcc2e20, 0x36ebf: 0x6de71c20, + // Block 0xdbb, offset 0x36ec0 + 0x36ec0: 0x6de71e20, 0x36ec1: 0x6de72020, 0x36ec2: 0x6de72220, 0x36ec3: 0x6de72420, + 0x36ec4: 0x6de72620, 0x36ec5: 0x6de72820, 0x36ec6: 0x6de72a20, 0x36ec7: 0x6de72c20, + 0x36ec8: 0x6de72e20, 0x36ec9: 0x6de73020, 0x36eca: 0x6de73220, 0x36ecb: 0x6de73420, + 0x36ecc: 0x6de73620, 0x36ecd: 0x6de73820, 0x36ece: 0x6de73a20, 0x36ecf: 0x6de73c20, + 0x36ed0: 0x6de73e20, 0x36ed1: 0x6de74020, 0x36ed2: 0x6de74220, 0x36ed3: 0x6de74420, + 0x36ed4: 0x6de74620, 0x36ed5: 0x6df25c20, 0x36ed6: 0x6de74820, 0x36ed7: 0x6de74a20, + 0x36ed8: 0x6de74c20, 0x36ed9: 0x6de74e20, 0x36eda: 0x6dfdb820, 0x36edb: 0x6dfdba20, + 0x36edc: 0x6dfdbc20, 0x36edd: 0x6dfdbe20, 0x36ede: 0x6dfdc020, 0x36edf: 0x6dfdc220, + 0x36ee0: 0x6dfdc420, 0x36ee1: 0x6dfdc620, 0x36ee2: 0x6dfdc820, 0x36ee3: 0x6dfdca20, + 0x36ee4: 0x6dfdcc20, 0x36ee5: 0x6dfdce20, 0x36ee6: 0x6dfdd020, 0x36ee7: 0x6dfdd220, + 0x36ee8: 0x6dfdd420, 0x36ee9: 0x6dfdd620, 0x36eea: 0x6dfdd820, 0x36eeb: 0x6dfdda20, + 0x36eec: 0x6dfddc20, 0x36eed: 0x6e106820, 0x36eee: 0x6e106a20, 0x36eef: 0x6e106c20, + 0x36ef0: 0x6e106e20, 0x36ef1: 0x6e107020, 0x36ef2: 0x6e107220, 0x36ef3: 0x6e107420, + 0x36ef4: 0x6e107620, 0x36ef5: 0x6e107820, 0x36ef6: 0x6e107a20, 0x36ef7: 0x6e107c20, + 0x36ef8: 0x6e107e20, 0x36ef9: 0x6e108020, 0x36efa: 0x6e1f1820, 0x36efb: 0x6e1f1a20, + 0x36efc: 0x6e1f1c20, 0x36efd: 0x6e1f1e20, 0x36efe: 0x6e1f2020, 0x36eff: 0x6e1f2220, + // Block 0xdbc, offset 0x36f00 + 0x36f00: 0x6e1f2420, 0x36f01: 0x6e1f2620, 0x36f02: 0x6e108220, 0x36f03: 0x6e1f2820, + 0x36f04: 0x6e21a620, 0x36f05: 0x6e1f2a20, 0x36f06: 0x6e1f2c20, 0x36f07: 0x6e1f2e20, + 0x36f08: 0x6e2a6e20, 0x36f09: 0x6e2a7020, 0x36f0a: 0x6e2a7220, 0x36f0b: 0x6e2a7420, + 0x36f0c: 0x6e2a7620, 0x36f0d: 0x6e2a7820, 0x36f0e: 0x6e2a7a20, 0x36f0f: 0x6e331820, + 0x36f10: 0x6e331a20, 0x36f11: 0x6e331c20, 0x36f12: 0x6e331e20, 0x36f13: 0x6e393e20, + 0x36f14: 0x6e3d8c20, 0x36f15: 0x6e3d8e20, 0x36f16: 0x6e3d9020, 0x36f17: 0x6e3d9220, + 0x36f18: 0x6e3d9420, 0x36f19: 0x6e408420, 0x36f1a: 0x6e408620, 0x36f1b: 0x6e42ce20, + 0x36f1c: 0x6e444220, 0x36f1d: 0x6c13ec20, 0x36f1e: 0x6c3cb420, 0x36f1f: 0x6c5a1e20, + 0x36f20: 0x6c5a2020, 0x36f21: 0x6c7cd820, 0x36f22: 0x6c7cda20, 0x36f23: 0x6c7cdc20, + 0x36f24: 0x6c7cde20, 0x36f25: 0x6c7ce020, 0x36f26: 0x6c7ce220, 0x36f27: 0x6ca59620, + 0x36f28: 0x6ca59820, 0x36f29: 0x6ca59a20, 0x36f2a: 0x6cd3f820, 0x36f2b: 0x6cd3fa20, + 0x36f2c: 0x6cd3fc20, 0x36f2d: 0x6cd3fe20, 0x36f2e: 0x6cd40020, 0x36f2f: 0x6cd40220, + 0x36f30: 0x6cd40420, 0x36f31: 0x6cd40620, 0x36f32: 0x6d01fe20, 0x36f33: 0x6d020020, + 0x36f34: 0x6d020220, 0x36f35: 0x6d020420, 0x36f36: 0x6d2fd020, 0x36f37: 0x6d2fd220, + 0x36f38: 0x6d2fd420, 0x36f39: 0x6d2fd620, 0x36f3a: 0x6d2fd820, 0x36f3b: 0x6d2fda20, + 0x36f3c: 0x6d2fdc20, 0x36f3d: 0x6d2fde20, 0x36f3e: 0x6d2fe020, 0x36f3f: 0x6d2fe220, + // Block 0xdbd, offset 0x36f40 + 0x36f40: 0x6d2fe420, 0x36f41: 0x6d2fe620, 0x36f42: 0x6d5cd220, 0x36f43: 0x6d5cd420, + 0x36f44: 0x6d5cd620, 0x36f45: 0x6d5cd820, 0x36f46: 0x6d5cda20, 0x36f47: 0x6d5cdc20, + 0x36f48: 0x6d5cde20, 0x36f49: 0x6d5ce020, 0x36f4a: 0x6d875420, 0x36f4b: 0x6d875620, + 0x36f4c: 0x6d875820, 0x36f4d: 0x6d875a20, 0x36f4e: 0x6dcc3020, 0x36f4f: 0x6dabf020, + 0x36f50: 0x6dabf220, 0x36f51: 0x6dabf420, 0x36f52: 0x6dabf620, 0x36f53: 0x6dcc3220, + 0x36f54: 0x6dcc3420, 0x36f55: 0x6dcc3620, 0x36f56: 0x6de75220, 0x36f57: 0x6de75420, + 0x36f58: 0x6de75620, 0x36f59: 0x6de75820, 0x36f5a: 0x6de75a20, 0x36f5b: 0x6de75c20, + 0x36f5c: 0x6de75e20, 0x36f5d: 0x6e108820, 0x36f5e: 0x6dfde220, 0x36f5f: 0x6dfde420, + 0x36f60: 0x6dfde620, 0x36f61: 0x6e2a7c20, 0x36f62: 0x6e2a7e20, 0x36f63: 0x6e2a8020, + 0x36f64: 0x6e46ca20, 0x36f65: 0x6e46ea20, 0x36f66: 0x6c253420, 0x36f67: 0x6c253620, + 0x36f68: 0x6c3cba20, 0x36f69: 0x6c5a2a20, 0x36f6a: 0x6c5a2c20, 0x36f6b: 0x6c5a2e20, + 0x36f6c: 0x6c5a3020, 0x36f6d: 0x6c5a3220, 0x36f6e: 0x6c5a3420, 0x36f6f: 0x6c5a3620, + 0x36f70: 0x6c7cea20, 0x36f71: 0x6c7cec20, 0x36f72: 0x6c7cee20, 0x36f73: 0x6c7cf020, + 0x36f74: 0x6c7cf220, 0x36f75: 0x6c7cf420, 0x36f76: 0x6c7cf620, 0x36f77: 0x6c7cf820, + 0x36f78: 0x6c7cfa20, 0x36f79: 0x6ca5a220, 0x36f7a: 0x6ca5a420, 0x36f7b: 0x6ca5a620, + 0x36f7c: 0x6ca5a820, 0x36f7d: 0x6ca5aa20, 0x36f7e: 0x6ca5ac20, 0x36f7f: 0x6ca5ae20, + // Block 0xdbe, offset 0x36f80 + 0x36f80: 0x6ca5b020, 0x36f81: 0x6ca5b220, 0x36f82: 0x6ca5b420, 0x36f83: 0x6ca5b620, + 0x36f84: 0x6ca5b820, 0x36f85: 0x6ca5ba20, 0x36f86: 0x6ca5bc20, 0x36f87: 0x6ca5be20, + 0x36f88: 0x6ca5c020, 0x36f89: 0x6ca5c220, 0x36f8a: 0x6ca5c420, 0x36f8b: 0x6ca5c620, + 0x36f8c: 0x6ca5c820, 0x36f8d: 0x6ca5ca20, 0x36f8e: 0x6cd41220, 0x36f8f: 0x6cd41420, + 0x36f90: 0x6cd41620, 0x36f91: 0x6cd41820, 0x36f92: 0x6cd41a20, 0x36f93: 0x6cd41c20, + 0x36f94: 0x6cd41e20, 0x36f95: 0x6cd42020, 0x36f96: 0x6cd42220, 0x36f97: 0x6cd42420, + 0x36f98: 0x6d020a20, 0x36f99: 0x6d020c20, 0x36f9a: 0x6d020e20, 0x36f9b: 0x6d021020, + 0x36f9c: 0x6d021220, 0x36f9d: 0x6d021420, 0x36f9e: 0x6d021620, 0x36f9f: 0x6d021820, + 0x36fa0: 0x6d021a20, 0x36fa1: 0x6d021c20, 0x36fa2: 0x6d021e20, 0x36fa3: 0x6d022020, + 0x36fa4: 0x6d022220, 0x36fa5: 0x6d022420, 0x36fa6: 0x6d022620, 0x36fa7: 0x6d022820, + 0x36fa8: 0x6d022a20, 0x36fa9: 0x6d022c20, 0x36faa: 0x6d2fea20, 0x36fab: 0x6d2fec20, + 0x36fac: 0x6d2fee20, 0x36fad: 0x6d2ff020, 0x36fae: 0x6d2ff220, 0x36faf: 0x6d2ff420, + 0x36fb0: 0x6d2ff620, 0x36fb1: 0x6d2ff820, 0x36fb2: 0x6d5ce220, 0x36fb3: 0x6d5ce420, + 0x36fb4: 0x6d5ce620, 0x36fb5: 0x6d5ce820, 0x36fb6: 0x6d5cea20, 0x36fb7: 0x6d5cec20, + 0x36fb8: 0x6d5cee20, 0x36fb9: 0x6d5cf020, 0x36fba: 0x6d5cf220, 0x36fbb: 0x6d875c20, + 0x36fbc: 0x6d875e20, 0x36fbd: 0x6d876020, 0x36fbe: 0x6d876220, 0x36fbf: 0x6d876420, + // Block 0xdbf, offset 0x36fc0 + 0x36fc0: 0x6dabfc20, 0x36fc1: 0x6dabfe20, 0x36fc2: 0x6dac0020, 0x36fc3: 0x6dac0220, + 0x36fc4: 0x6dac0420, 0x36fc5: 0x6dac0620, 0x36fc6: 0x6dac0820, 0x36fc7: 0x6dcc3820, + 0x36fc8: 0x6dcc3a20, 0x36fc9: 0x6dcc3c20, 0x36fca: 0x6dcc3e20, 0x36fcb: 0x6dcc4020, + 0x36fcc: 0x6de76220, 0x36fcd: 0x6de76420, 0x36fce: 0x6de76620, 0x36fcf: 0x6de76820, + 0x36fd0: 0x6e2a8220, 0x36fd1: 0x6e1f3020, 0x36fd2: 0x6e1f3220, 0x36fd3: 0x6e2a8420, + 0x36fd4: 0x6e2a8620, 0x36fd5: 0x6c13f020, 0x36fd6: 0x6c13f220, 0x36fd7: 0x6c254020, + 0x36fd8: 0x6c254220, 0x36fd9: 0x6c254420, 0x36fda: 0x6c254620, 0x36fdb: 0x6c254820, + 0x36fdc: 0x6c254a20, 0x36fdd: 0x6c3cd620, 0x36fde: 0x6c3cd820, 0x36fdf: 0x6c3cda20, + 0x36fe0: 0x6c3cdc20, 0x36fe1: 0x6c3cde20, 0x36fe2: 0x6c3ce020, 0x36fe3: 0x6c3ce220, + 0x36fe4: 0x6c3ce420, 0x36fe5: 0x6c3ce620, 0x36fe6: 0x6c3ce820, 0x36fe7: 0x6c3cea20, + 0x36fe8: 0x6c3cec20, 0x36fe9: 0x6c5a7e20, 0x36fea: 0x6c5a8020, 0x36feb: 0x6c5a8220, + 0x36fec: 0x6c5a8420, 0x36fed: 0x6c5a8620, 0x36fee: 0x6c5a8820, 0x36fef: 0x6c5a8a20, + 0x36ff0: 0x6c5a8c20, 0x36ff1: 0x6c5a8e20, 0x36ff2: 0x6c5a9020, 0x36ff3: 0x6c5a9220, + 0x36ff4: 0x6c5a9420, 0x36ff5: 0x6c5a9620, 0x36ff6: 0x6c5a9820, 0x36ff7: 0x6c5a9a20, + 0x36ff8: 0x6c5a9c20, 0x36ff9: 0x6c5a9e20, 0x36ffa: 0x6c5aa020, 0x36ffb: 0x6c5aa220, + 0x36ffc: 0x6c5aa420, 0x36ffd: 0x6c5aa620, 0x36ffe: 0x6c5aa820, 0x36fff: 0x6c5aaa20, + // Block 0xdc0, offset 0x37000 + 0x37000: 0x6c5aac20, 0x37001: 0x6c5aae20, 0x37002: 0x6c5ab020, 0x37003: 0x6c5ab220, + 0x37004: 0x6c5ab420, 0x37005: 0x6c5ab620, 0x37006: 0x6c7d5a20, 0x37007: 0x6c7d5c20, + 0x37008: 0x6c7d5e20, 0x37009: 0x6c7d6020, 0x3700a: 0x6c7d6220, 0x3700b: 0x6c7d6420, + 0x3700c: 0x6c7d6620, 0x3700d: 0x6c7d6820, 0x3700e: 0x6c7d6a20, 0x3700f: 0x6c7d6c20, + 0x37010: 0x6c7d6e20, 0x37011: 0x6c7d7020, 0x37012: 0x6c7d7220, 0x37013: 0x6c7d7420, + 0x37014: 0x6c7d7620, 0x37015: 0x6c7d7820, 0x37016: 0x6c7d7a20, 0x37017: 0x6c7d7c20, + 0x37018: 0x6c7d7e20, 0x37019: 0x6c7d8020, 0x3701a: 0x6c7d8220, 0x3701b: 0x6c7d8420, + 0x3701c: 0x6c7d8620, 0x3701d: 0x6c7d8820, 0x3701e: 0x6c7d8a20, 0x3701f: 0x6c7d8c20, + 0x37020: 0x6c7d8e20, 0x37021: 0x6c7d9020, 0x37022: 0x6c7d9220, 0x37023: 0x6c7d9420, + 0x37024: 0x6c7d9620, 0x37025: 0x6c7d9820, 0x37026: 0x6c7d9a20, 0x37027: 0x6c7d9c20, + 0x37028: 0x6c7d9e20, 0x37029: 0x6c7da020, 0x3702a: 0x6c7da220, 0x3702b: 0x6c7da420, + 0x3702c: 0x6c7da620, 0x3702d: 0x6c7da820, 0x3702e: 0x6c7daa20, 0x3702f: 0x6c7dac20, + 0x37030: 0x6c7dae20, 0x37031: 0x6c7db020, 0x37032: 0x6c7db220, 0x37033: 0x6ca61220, + 0x37034: 0x6ca61420, 0x37035: 0x6ca61620, 0x37036: 0x6ca61820, 0x37037: 0x6ca61a20, + 0x37038: 0x6ca61c20, 0x37039: 0x6ca61e20, 0x3703a: 0x6ca62020, 0x3703b: 0x6ca62220, + 0x3703c: 0x6ca62420, 0x3703d: 0x6ca62620, 0x3703e: 0x6ca62820, 0x3703f: 0x6ca62a20, + // Block 0xdc1, offset 0x37040 + 0x37040: 0x6ca62c20, 0x37041: 0x6ca62e20, 0x37042: 0x6ca63020, 0x37043: 0x6ca63220, + 0x37044: 0x6ca63420, 0x37045: 0x6ca63620, 0x37046: 0x6ca63820, 0x37047: 0x6ca63a20, + 0x37048: 0x6ca63c20, 0x37049: 0x6ca63e20, 0x3704a: 0x6ca64020, 0x3704b: 0x6ca64220, + 0x3704c: 0x6ca64420, 0x3704d: 0x6ca64620, 0x3704e: 0x6ca64820, 0x3704f: 0x6ca64a20, + 0x37050: 0x6ca64c20, 0x37051: 0x6ca64e20, 0x37052: 0x6ca65020, 0x37053: 0x6ca65220, + 0x37054: 0x6ca65420, 0x37055: 0x6ca65620, 0x37056: 0x6ca65820, 0x37057: 0x6ca65a20, + 0x37058: 0x6ca65c20, 0x37059: 0x6ca65e20, 0x3705a: 0x6ca66020, 0x3705b: 0x6ca66220, + 0x3705c: 0x6ca66420, 0x3705d: 0x6ca66620, 0x3705e: 0x6ca66820, 0x3705f: 0x6ca66a20, + 0x37060: 0x6ca66c20, 0x37061: 0x6ca66e20, 0x37062: 0x6ca67020, 0x37063: 0x6ca67220, + 0x37064: 0x6ca67420, 0x37065: 0x6ca67620, 0x37066: 0x6ca67820, 0x37067: 0x6ca67a20, + 0x37068: 0x6ca67c20, 0x37069: 0x6ca67e20, 0x3706a: 0x6cd46c20, 0x3706b: 0x6cd46e20, + 0x3706c: 0x6cd47020, 0x3706d: 0x6cd47220, 0x3706e: 0x6cd47420, 0x3706f: 0x6cd47620, + 0x37070: 0x6cd47820, 0x37071: 0x6cd47a20, 0x37072: 0x6cd47c20, 0x37073: 0x6cd47e20, + 0x37074: 0x6cd48020, 0x37075: 0x6cd48220, 0x37076: 0x6cd48420, 0x37077: 0x6cd48620, + 0x37078: 0x6cd48820, 0x37079: 0x6cd48a20, 0x3707a: 0x6cd48c20, 0x3707b: 0x6cd48e20, + 0x3707c: 0x6cd49020, 0x3707d: 0x6cd49220, 0x3707e: 0x6cd49420, 0x3707f: 0x6cd49620, + // Block 0xdc2, offset 0x37080 + 0x37080: 0x6cd49820, 0x37081: 0x6cd49a20, 0x37082: 0x6cd49c20, 0x37083: 0x6cd49e20, + 0x37084: 0x6cd4a020, 0x37085: 0x6cd4a220, 0x37086: 0x6cd4a420, 0x37087: 0x6cd4a620, + 0x37088: 0x6cd4a820, 0x37089: 0x6cd4aa20, 0x3708a: 0x6d029c20, 0x3708b: 0x6d029e20, + 0x3708c: 0x6d02a020, 0x3708d: 0x6d02a220, 0x3708e: 0x6d02a420, 0x3708f: 0x6d02a620, + 0x37090: 0x6d02a820, 0x37091: 0x6d02aa20, 0x37092: 0x6d02ac20, 0x37093: 0x6d02ae20, + 0x37094: 0x6d02b020, 0x37095: 0x6d02b220, 0x37096: 0x6d02b420, 0x37097: 0x6d02b620, + 0x37098: 0x6d02b820, 0x37099: 0x6d02ba20, 0x3709a: 0x6d02bc20, 0x3709b: 0x6d02be20, + 0x3709c: 0x6d02c020, 0x3709d: 0x6d02c220, 0x3709e: 0x6d02c420, 0x3709f: 0x6d02c620, + 0x370a0: 0x6d02c820, 0x370a1: 0x6d02ca20, 0x370a2: 0x6d02cc20, 0x370a3: 0x6d02ce20, + 0x370a4: 0x6d02d020, 0x370a5: 0x6d02d220, 0x370a6: 0x6d02d420, 0x370a7: 0x6d02d620, + 0x370a8: 0x6d02d820, 0x370a9: 0x6d02da20, 0x370aa: 0x6d02dc20, 0x370ab: 0x6d02de20, + 0x370ac: 0x6d02e020, 0x370ad: 0x6d02e220, 0x370ae: 0x6d02e420, 0x370af: 0x6d02e620, + 0x370b0: 0x6d02e820, 0x370b1: 0x6d02ea20, 0x370b2: 0x6d02ec20, 0x370b3: 0x6d02ee20, + 0x370b4: 0x6d02f020, 0x370b5: 0x6d02f220, 0x370b6: 0x6d02f420, 0x370b7: 0x6d02f620, + 0x370b8: 0x6d02f820, 0x370b9: 0x6d02fa20, 0x370ba: 0x6d304a20, 0x370bb: 0x6d304c20, + 0x370bc: 0x6d304e20, 0x370bd: 0x6d305020, 0x370be: 0x6d305220, 0x370bf: 0x6d305420, + // Block 0xdc3, offset 0x370c0 + 0x370c0: 0x6d305620, 0x370c1: 0x6d305820, 0x370c2: 0x6d305a20, 0x370c3: 0x6d305c20, + 0x370c4: 0x6d305e20, 0x370c5: 0x6d306020, 0x370c6: 0x6d306220, 0x370c7: 0x6d306420, + 0x370c8: 0x6d306620, 0x370c9: 0x6d306820, 0x370ca: 0x6d306a20, 0x370cb: 0x6d306c20, + 0x370cc: 0x6d306e20, 0x370cd: 0x6d307020, 0x370ce: 0x6d307220, 0x370cf: 0x6d307420, + 0x370d0: 0x6d307620, 0x370d1: 0x6d307820, 0x370d2: 0x6d307a20, 0x370d3: 0x6d307c20, + 0x370d4: 0x6d307e20, 0x370d5: 0x6d308020, 0x370d6: 0x6d308220, 0x370d7: 0x6d308420, + 0x370d8: 0x6d308620, 0x370d9: 0x6d308820, 0x370da: 0x6d308a20, 0x370db: 0x6d308c20, + 0x370dc: 0x6d308e20, 0x370dd: 0x6d309020, 0x370de: 0x6d309220, 0x370df: 0x6d309420, + 0x370e0: 0x6d309620, 0x370e1: 0x6d309820, 0x370e2: 0x6d309a20, 0x370e3: 0x6d309c20, + 0x370e4: 0x6d309e20, 0x370e5: 0x6d30a020, 0x370e6: 0x6d30a220, 0x370e7: 0x6d30a420, + 0x370e8: 0x6d30a620, 0x370e9: 0x6d30a820, 0x370ea: 0x6d30aa20, 0x370eb: 0x6d30ac20, + 0x370ec: 0x6d30ae20, 0x370ed: 0x6d5d4420, 0x370ee: 0x6d5d4620, 0x370ef: 0x6d5d4820, + 0x370f0: 0x6d5d4a20, 0x370f1: 0x6d5d4c20, 0x370f2: 0x6d5d4e20, 0x370f3: 0x6d5d5020, + 0x370f4: 0x6d5d5220, 0x370f5: 0x6d5d5420, 0x370f6: 0x6d5d5620, 0x370f7: 0x6d5d5820, + 0x370f8: 0x6d5d5a20, 0x370f9: 0x6d5d5c20, 0x370fa: 0x6d5d5e20, 0x370fb: 0x6d5d6020, + 0x370fc: 0x6d5d6220, 0x370fd: 0x6d5d6420, 0x370fe: 0x6d5d6620, 0x370ff: 0x6d5d6820, + // Block 0xdc4, offset 0x37100 + 0x37100: 0x6d5d6a20, 0x37101: 0x6d5d6c20, 0x37102: 0x6d5d6e20, 0x37103: 0x6d5d7020, + 0x37104: 0x6d5d7220, 0x37105: 0x6d5d7420, 0x37106: 0x6d5d7620, 0x37107: 0x6d5d7820, + 0x37108: 0x6d5d7a20, 0x37109: 0x6d5d7c20, 0x3710a: 0x6d5d7e20, 0x3710b: 0x6d5d8020, + 0x3710c: 0x6d87a020, 0x3710d: 0x6d87a220, 0x3710e: 0x6d87a420, 0x3710f: 0x6d87a620, + 0x37110: 0x6d87a820, 0x37111: 0x6d87aa20, 0x37112: 0x6d87ac20, 0x37113: 0x6d87ae20, + 0x37114: 0x6d87b020, 0x37115: 0x6d87b220, 0x37116: 0x6d87b420, 0x37117: 0x6d87b620, + 0x37118: 0x6d87b820, 0x37119: 0x6d87ba20, 0x3711a: 0x6d87bc20, 0x3711b: 0x6d87be20, + 0x3711c: 0x6d87c020, 0x3711d: 0x6d87c220, 0x3711e: 0x6d87c420, 0x3711f: 0x6d87c620, + 0x37120: 0x6d87c820, 0x37121: 0x6d87ca20, 0x37122: 0x6d87cc20, 0x37123: 0x6d87ce20, + 0x37124: 0x6d87d020, 0x37125: 0x6d87d220, 0x37126: 0x6d87d420, 0x37127: 0x6d87d620, + 0x37128: 0x6d87d820, 0x37129: 0x6d87da20, 0x3712a: 0x6d87dc20, 0x3712b: 0x6d87de20, + 0x3712c: 0x6d87e020, 0x3712d: 0x6d87e220, 0x3712e: 0x6d87e420, 0x3712f: 0x6d87e620, + 0x37130: 0x6dac4a20, 0x37131: 0x6dac4c20, 0x37132: 0x6dac4e20, 0x37133: 0x6dac5020, + 0x37134: 0x6dac5220, 0x37135: 0x6dac5420, 0x37136: 0x6dac5620, 0x37137: 0x6dac5820, + 0x37138: 0x6dac5a20, 0x37139: 0x6dac5c20, 0x3713a: 0x6dac5e20, 0x3713b: 0x6dac6020, + 0x3713c: 0x6dac6220, 0x3713d: 0x6dac6420, 0x3713e: 0x6dac6620, 0x3713f: 0x6dac6820, + // Block 0xdc5, offset 0x37140 + 0x37140: 0x6dac6a20, 0x37141: 0x6dac6c20, 0x37142: 0x6dac6e20, 0x37143: 0x6dac7020, + 0x37144: 0x6dac7220, 0x37145: 0x6dac7420, 0x37146: 0x6dac7620, 0x37147: 0x6dac7820, + 0x37148: 0x6dac7a20, 0x37149: 0x6dac7c20, 0x3714a: 0x6dac7e20, 0x3714b: 0x6dac8020, + 0x3714c: 0x6dac8220, 0x3714d: 0x6dac8420, 0x3714e: 0x6dac8620, 0x3714f: 0x6dac8820, + 0x37150: 0x6dac8a20, 0x37151: 0x6dac8c20, 0x37152: 0x6dac8e20, 0x37153: 0x6dac9020, + 0x37154: 0x6dac9220, 0x37155: 0x6dac9420, 0x37156: 0x6dac9620, 0x37157: 0x6dcc7420, + 0x37158: 0x6dcc7620, 0x37159: 0x6dcc7820, 0x3715a: 0x6dcc7a20, 0x3715b: 0x6dcc7c20, + 0x3715c: 0x6dcc7e20, 0x3715d: 0x6dcc8020, 0x3715e: 0x6dcc8220, 0x3715f: 0x6dcc8420, + 0x37160: 0x6dcc8620, 0x37161: 0x6dcc8820, 0x37162: 0x6dcc8a20, 0x37163: 0x6dcc8c20, + 0x37164: 0x6dcc8e20, 0x37165: 0x6dcc9020, 0x37166: 0x6dcc9220, 0x37167: 0x6dcc9420, + 0x37168: 0x6dcc9620, 0x37169: 0x6dcc9820, 0x3716a: 0x6de78220, 0x3716b: 0x6de78420, + 0x3716c: 0x6de78620, 0x3716d: 0x6de78820, 0x3716e: 0x6de78a20, 0x3716f: 0x6de78c20, + 0x37170: 0x6de78e20, 0x37171: 0x6de79020, 0x37172: 0x6de79220, 0x37173: 0x6de79420, + 0x37174: 0x6de79620, 0x37175: 0x6de79820, 0x37176: 0x6de79a20, 0x37177: 0x6de79c20, + 0x37178: 0x6de79e20, 0x37179: 0x6de7a020, 0x3717a: 0x6de7a220, 0x3717b: 0x6dfe0a20, + 0x3717c: 0x6dfe0c20, 0x3717d: 0x6dfe0e20, 0x3717e: 0x6dfe1020, 0x3717f: 0x6dfe1220, + // Block 0xdc6, offset 0x37180 + 0x37180: 0x6dfe1420, 0x37181: 0x6dfe1620, 0x37182: 0x6dfe1820, 0x37183: 0x6dfe1a20, + 0x37184: 0x6dfe1c20, 0x37185: 0x6dfe1e20, 0x37186: 0x6dfe2020, 0x37187: 0x6dfe2220, + 0x37188: 0x6dfe2420, 0x37189: 0x6dfe2620, 0x3718a: 0x6dfe2820, 0x3718b: 0x6dfe2a20, + 0x3718c: 0x6dfe2c20, 0x3718d: 0x6dfe2e20, 0x3718e: 0x6dfe3020, 0x3718f: 0x6dfe3220, + 0x37190: 0x6dfe3420, 0x37191: 0x6dfe3620, 0x37192: 0x6e10a420, 0x37193: 0x6e10a620, + 0x37194: 0x6e10a820, 0x37195: 0x6e10aa20, 0x37196: 0x6e10ac20, 0x37197: 0x6e10ae20, + 0x37198: 0x6e10b020, 0x37199: 0x6e10b220, 0x3719a: 0x6e10b420, 0x3719b: 0x6e10b620, + 0x3719c: 0x6e10b820, 0x3719d: 0x6e1f3a20, 0x3719e: 0x6e1f3c20, 0x3719f: 0x6e1f3e20, + 0x371a0: 0x6e1f4020, 0x371a1: 0x6e1f4220, 0x371a2: 0x6e1f4420, 0x371a3: 0x6e1f4620, + 0x371a4: 0x6e1f4820, 0x371a5: 0x6e1f4a20, 0x371a6: 0x6e1f4c20, 0x371a7: 0x6e1f4e20, + 0x371a8: 0x6e1f5020, 0x371a9: 0x6e1f5220, 0x371aa: 0x6e1f5420, 0x371ab: 0x6e2a8c20, + 0x371ac: 0x6e2a8e20, 0x371ad: 0x6e2a9020, 0x371ae: 0x6e2a9220, 0x371af: 0x6e2a9420, + 0x371b0: 0x6e2a9620, 0x371b1: 0x6e2a9820, 0x371b2: 0x6e2a9a20, 0x371b3: 0x6e2a9c20, + 0x371b4: 0x6e332820, 0x371b5: 0x6e332a20, 0x371b6: 0x6e361a20, 0x371b7: 0x6e332c20, + 0x371b8: 0x6e332e20, 0x371b9: 0x6e394420, 0x371ba: 0x6e3d9820, 0x371bb: 0x6e3d9a20, + 0x371bc: 0x6e3d9c20, 0x371bd: 0x6e3d9e20, 0x371be: 0x6e408820, 0x371bf: 0x6e408a20, + // Block 0xdc7, offset 0x371c0 + 0x371c0: 0x6e408c20, 0x371c1: 0x6e42d020, 0x371c2: 0x6e42d220, 0x371c3: 0x6e444620, + 0x371c4: 0x6e46b220, 0x371c5: 0x6c050020, 0x371c6: 0x6c0a3620, 0x371c7: 0x6c13f820, + 0x371c8: 0x6c13fa20, 0x371c9: 0x6c13fc20, 0x371ca: 0x6c13fe20, 0x371cb: 0x6c140020, + 0x371cc: 0x6c140220, 0x371cd: 0x6c255020, 0x371ce: 0x6c255220, 0x371cf: 0x6c255420, + 0x371d0: 0x6c255620, 0x371d1: 0x6c255820, 0x371d2: 0x6c255a20, 0x371d3: 0x6c255c20, + 0x371d4: 0x6c255e20, 0x371d5: 0x6c3cfc20, 0x371d6: 0x6c3cfe20, 0x371d7: 0x6c3d0020, + 0x371d8: 0x6c3d0220, 0x371d9: 0x6c3d0420, 0x371da: 0x6c3d0620, 0x371db: 0x6c3d0820, + 0x371dc: 0x6c3d0a20, 0x371dd: 0x6c3d0c20, 0x371de: 0x6c3d0e20, 0x371df: 0x6c3d1020, + 0x371e0: 0x6c3d1220, 0x371e1: 0x6c3d1420, 0x371e2: 0x6c3d1620, 0x371e3: 0x6c3d1820, + 0x371e4: 0x6c3d1a20, 0x371e5: 0x6c3d1c20, 0x371e6: 0x6c3d1e20, 0x371e7: 0x6c3d2020, + 0x371e8: 0x6c3d2220, 0x371e9: 0x6c3d2420, 0x371ea: 0x6c3d2620, 0x371eb: 0x6c5ade20, + 0x371ec: 0x6c5ae020, 0x371ed: 0x6c5ae220, 0x371ee: 0x6c5ae420, 0x371ef: 0x6c5ae620, + 0x371f0: 0x6c5ae820, 0x371f1: 0x6c5aea20, 0x371f2: 0x6c5aec20, 0x371f3: 0x6c5aee20, + 0x371f4: 0x6c5af020, 0x371f5: 0x6c5af220, 0x371f6: 0x6c5af420, 0x371f7: 0x6c5af620, + 0x371f8: 0x6c5af820, 0x371f9: 0x6c5afa20, 0x371fa: 0x6c5afc20, 0x371fb: 0x6c5afe20, + 0x371fc: 0x6c5b0020, 0x371fd: 0x6c5b0220, 0x371fe: 0x6c5b0420, 0x371ff: 0x6c5b0620, + // Block 0xdc8, offset 0x37200 + 0x37200: 0x6c5b0820, 0x37201: 0x6c5b0a20, 0x37202: 0x6c5b0c20, 0x37203: 0x6c5b0e20, + 0x37204: 0x6c5b1020, 0x37205: 0x6c5b1220, 0x37206: 0x6c5b1420, 0x37207: 0x6c5b1620, + 0x37208: 0x6c5b1820, 0x37209: 0x6c5b1a20, 0x3720a: 0x6c5b1c20, 0x3720b: 0x6c5b1e20, + 0x3720c: 0x6c5b2020, 0x3720d: 0x6c5b2220, 0x3720e: 0x6c7dea20, 0x3720f: 0x6c7dec20, + 0x37210: 0x6c7dee20, 0x37211: 0x6c7df020, 0x37212: 0x6c7df220, 0x37213: 0x6c7df420, + 0x37214: 0x6c7df620, 0x37215: 0x6c7df820, 0x37216: 0x6c7dfa20, 0x37217: 0x6c7dfc20, + 0x37218: 0x6c7dfe20, 0x37219: 0x6c7e0020, 0x3721a: 0x6c7e0220, 0x3721b: 0x6c7e0420, + 0x3721c: 0x6c7e0620, 0x3721d: 0x6c7e0820, 0x3721e: 0x6c7e0a20, 0x3721f: 0x6c7e0c20, + 0x37220: 0x6c7e0e20, 0x37221: 0x6c7e1020, 0x37222: 0x6c7e1220, 0x37223: 0x6c7e1420, + 0x37224: 0x6c7e1620, 0x37225: 0x6c7e1820, 0x37226: 0x6c7e1a20, 0x37227: 0x6c7e1c20, + 0x37228: 0x6c7e1e20, 0x37229: 0x6c7e2020, 0x3722a: 0x6c7e2220, 0x3722b: 0x6ca6ae20, + 0x3722c: 0x6ca6b020, 0x3722d: 0x6ca6b220, 0x3722e: 0x6ca6b420, 0x3722f: 0x6ca6b620, + 0x37230: 0x6ca6b820, 0x37231: 0x6ca6ba20, 0x37232: 0x6ca6bc20, 0x37233: 0x6ca6be20, + 0x37234: 0x6ca6c020, 0x37235: 0x6ca6c220, 0x37236: 0x6ca6c420, 0x37237: 0x6ca6c620, + 0x37238: 0x6ca6c820, 0x37239: 0x6ca6ca20, 0x3723a: 0x6ca6cc20, 0x3723b: 0x6ca6ce20, + 0x3723c: 0x6ca6d020, 0x3723d: 0x6ca6d220, 0x3723e: 0x6ca6d420, 0x3723f: 0x6ca6d620, + // Block 0xdc9, offset 0x37240 + 0x37240: 0x6ca6d820, 0x37241: 0x6ca6da20, 0x37242: 0x6ca6dc20, 0x37243: 0x6ca6de20, + 0x37244: 0x6ca6e020, 0x37245: 0x6ca6e220, 0x37246: 0x6ca6e420, 0x37247: 0x6ca6e620, + 0x37248: 0x6cd4d620, 0x37249: 0x6cd4d820, 0x3724a: 0x6cd4da20, 0x3724b: 0x6cd4dc20, + 0x3724c: 0x6cd4de20, 0x3724d: 0x6cd4e020, 0x3724e: 0x6cd4e220, 0x3724f: 0x6cd4e420, + 0x37250: 0x6cd4e620, 0x37251: 0x6cd4e820, 0x37252: 0x6cd4ea20, 0x37253: 0x6cd4ec20, + 0x37254: 0x6cd4ee20, 0x37255: 0x6cd4f020, 0x37256: 0x6cd4f220, 0x37257: 0x6cd4f420, + 0x37258: 0x6cd4f620, 0x37259: 0x6cd4f820, 0x3725a: 0x6cd4fa20, 0x3725b: 0x6cd4fc20, + 0x3725c: 0x6cd4fe20, 0x3725d: 0x6cd50020, 0x3725e: 0x6cd50220, 0x3725f: 0x6cd50420, + 0x37260: 0x6cd50620, 0x37261: 0x6cd50820, 0x37262: 0x6cd50a20, 0x37263: 0x6cd50c20, + 0x37264: 0x6cd50e20, 0x37265: 0x6cd51020, 0x37266: 0x6d033420, 0x37267: 0x6d033620, + 0x37268: 0x6d033820, 0x37269: 0x6d033a20, 0x3726a: 0x6d033c20, 0x3726b: 0x6d033e20, + 0x3726c: 0x6d034020, 0x3726d: 0x6d034220, 0x3726e: 0x6d034420, 0x3726f: 0x6d034620, + 0x37270: 0x6d034820, 0x37271: 0x6d034a20, 0x37272: 0x6d034c20, 0x37273: 0x6d034e20, + 0x37274: 0x6d035020, 0x37275: 0x6d035220, 0x37276: 0x6d035420, 0x37277: 0x6d035620, + 0x37278: 0x6d035820, 0x37279: 0x6d035a20, 0x3727a: 0x6d035c20, 0x3727b: 0x6d035e20, + 0x3727c: 0x6d036020, 0x3727d: 0x6d036220, 0x3727e: 0x6d036420, 0x3727f: 0x6d036620, + // Block 0xdca, offset 0x37280 + 0x37280: 0x6d036820, 0x37281: 0x6d036a20, 0x37282: 0x6d036c20, 0x37283: 0x6d036e20, + 0x37284: 0x6d037020, 0x37285: 0x6d30e620, 0x37286: 0x6d30e820, 0x37287: 0x6d30ea20, + 0x37288: 0x6d30ec20, 0x37289: 0x6d30ee20, 0x3728a: 0x6d30f020, 0x3728b: 0x6d30f220, + 0x3728c: 0x6d30f420, 0x3728d: 0x6d30f620, 0x3728e: 0x6d30f820, 0x3728f: 0x6d30fa20, + 0x37290: 0x6d30fc20, 0x37291: 0x6d30fe20, 0x37292: 0x6d310020, 0x37293: 0x6d310220, + 0x37294: 0x6d310420, 0x37295: 0x6d310620, 0x37296: 0x6d310820, 0x37297: 0x6d310a20, + 0x37298: 0x6d5da020, 0x37299: 0x6d5da220, 0x3729a: 0x6d5da420, 0x3729b: 0x6d5da620, + 0x3729c: 0x6d5da820, 0x3729d: 0x6d5daa20, 0x3729e: 0x6d5dac20, 0x3729f: 0x6d5dae20, + 0x372a0: 0x6d5db020, 0x372a1: 0x6d5db220, 0x372a2: 0x6d5db420, 0x372a3: 0x6d5db620, + 0x372a4: 0x6d5db820, 0x372a5: 0x6d5dba20, 0x372a6: 0x6d5dbc20, 0x372a7: 0x6d5dbe20, + 0x372a8: 0x6d5dc020, 0x372a9: 0x6d5dc220, 0x372aa: 0x6d5dc420, 0x372ab: 0x6d5dc620, + 0x372ac: 0x6d5dc820, 0x372ad: 0x6d5dca20, 0x372ae: 0x6d880620, 0x372af: 0x6d880820, + 0x372b0: 0x6d880a20, 0x372b1: 0x6d880c20, 0x372b2: 0x6d880e20, 0x372b3: 0x6d881020, + 0x372b4: 0x6d881220, 0x372b5: 0x6d881420, 0x372b6: 0x6d881620, 0x372b7: 0x6d881820, + 0x372b8: 0x6d881a20, 0x372b9: 0x6d881c20, 0x372ba: 0x6d881e20, 0x372bb: 0x6d882020, + 0x372bc: 0x6d882220, 0x372bd: 0x6d882420, 0x372be: 0x6d882620, 0x372bf: 0x6d882820, + // Block 0xdcb, offset 0x372c0 + 0x372c0: 0x6d882a20, 0x372c1: 0x6d882c20, 0x372c2: 0x6d882e20, 0x372c3: 0x6dacaa20, + 0x372c4: 0x6dacac20, 0x372c5: 0x6dacae20, 0x372c6: 0x6dacb020, 0x372c7: 0x6dacb220, + 0x372c8: 0x6dacb420, 0x372c9: 0x6dacb620, 0x372ca: 0x6dacb820, 0x372cb: 0x6dacba20, + 0x372cc: 0x6dacbc20, 0x372cd: 0x6dacbe20, 0x372ce: 0x6dacc020, 0x372cf: 0x6dacc220, + 0x372d0: 0x6dacc420, 0x372d1: 0x6dacc620, 0x372d2: 0x6dccac20, 0x372d3: 0x6dccae20, + 0x372d4: 0x6dccb020, 0x372d5: 0x6dccb220, 0x372d6: 0x6dccb420, 0x372d7: 0x6dccb620, + 0x372d8: 0x6dccb820, 0x372d9: 0x6dccba20, 0x372da: 0x6de7b020, 0x372db: 0x6de7b220, + 0x372dc: 0x6de7b420, 0x372dd: 0x6de7b620, 0x372de: 0x6de7b820, 0x372df: 0x6de7ba20, + 0x372e0: 0x6dfe3c20, 0x372e1: 0x6dfe3e20, 0x372e2: 0x6dfe4020, 0x372e3: 0x6dfe4220, + 0x372e4: 0x6dfe4420, 0x372e5: 0x6e10be20, 0x372e6: 0x6e10c020, 0x372e7: 0x6e10c220, + 0x372e8: 0x6e10c420, 0x372e9: 0x6e10c620, 0x372ea: 0x6e1f5a20, 0x372eb: 0x6e1f5c20, + 0x372ec: 0x6e1f5e20, 0x372ed: 0x6e1f6020, 0x372ee: 0x6e1f6220, 0x372ef: 0x6e1f6420, + 0x372f0: 0x6e2aa220, 0x372f1: 0x6e2aa420, 0x372f2: 0x6e2aa620, 0x372f3: 0x6e2aa820, + 0x372f4: 0x6e333420, 0x372f5: 0x6e333620, 0x372f6: 0x6e394620, 0x372f7: 0x6e394820, + 0x372f8: 0x6e394a20, 0x372f9: 0x6e3da020, 0x372fa: 0x6e3da220, 0x372fb: 0x6c0a3a20, + 0x372fc: 0x6c3d2c20, 0x372fd: 0x6c7e2e20, 0x372fe: 0x6ca6f620, 0x372ff: 0x6cd52820, + // Block 0xdcc, offset 0x37300 + 0x37300: 0x6cb7b420, 0x37301: 0x6cd52a20, 0x37302: 0x6cd52c20, 0x37303: 0x6d037a20, + 0x37304: 0x6d311820, 0x37305: 0x6d5dd020, 0x37306: 0x6d5dd220, 0x37307: 0x6d5dd420, + 0x37308: 0x6dacca20, 0x37309: 0x6daccc20, 0x3730a: 0x6e10c820, 0x3730b: 0x6e333a20, + 0x3730c: 0x6c0a3e20, 0x3730d: 0x6c140420, 0x3730e: 0x6c140620, 0x3730f: 0x6c140820, + 0x37310: 0x6c257220, 0x37311: 0x6c257420, 0x37312: 0x6c257620, 0x37313: 0x6c257820, + 0x37314: 0x6c3d4820, 0x37315: 0x6c3d4a20, 0x37316: 0x6c3d4c20, 0x37317: 0x6c3d4e20, + 0x37318: 0x6c3d5020, 0x37319: 0x6c3d5220, 0x3731a: 0x6c3d5420, 0x3731b: 0x6c3d5620, + 0x3731c: 0x6c3d5820, 0x3731d: 0x6c3d5a20, 0x3731e: 0x6c3d5c20, 0x3731f: 0x6c3d5e20, + 0x37320: 0x6c3d6020, 0x37321: 0x6c3d6220, 0x37322: 0x6c3d6420, 0x37323: 0x6c5b5820, + 0x37324: 0x6c5b5a20, 0x37325: 0x6c5b5c20, 0x37326: 0x6c5b5e20, 0x37327: 0x6c5b6020, + 0x37328: 0x6c5b6220, 0x37329: 0x6c5b6420, 0x3732a: 0x6c5b6620, 0x3732b: 0x6c5b6820, + 0x3732c: 0x6c5b6a20, 0x3732d: 0x6c5b6c20, 0x3732e: 0x6c5b6e20, 0x3732f: 0x6c5b7020, + 0x37330: 0x6c5b7220, 0x37331: 0x6c5b7420, 0x37332: 0x6c5b7620, 0x37333: 0x6c5b7820, + 0x37334: 0x6c5b7a20, 0x37335: 0x6c5b7c20, 0x37336: 0x6c5b7e20, 0x37337: 0x6c5b8020, + 0x37338: 0x6c5b8220, 0x37339: 0x6c5b8420, 0x3733a: 0x6c5b8620, 0x3733b: 0x6c5b8820, + 0x3733c: 0x6c5b8a20, 0x3733d: 0x6c5b8c20, 0x3733e: 0x6c7e6a20, 0x3733f: 0x6c7e6c20, + // Block 0xdcd, offset 0x37340 + 0x37340: 0x6c7e6e20, 0x37341: 0x6c7e7020, 0x37342: 0x6c7e7220, 0x37343: 0x6c7e7420, + 0x37344: 0x6c7e7620, 0x37345: 0x6c7e7820, 0x37346: 0x6c7e7a20, 0x37347: 0x6c7e7c20, + 0x37348: 0x6c7e7e20, 0x37349: 0x6c7e8020, 0x3734a: 0x6c7e8220, 0x3734b: 0x6c7e8420, + 0x3734c: 0x6c7e8620, 0x3734d: 0x6c7e8820, 0x3734e: 0x6c7e8a20, 0x3734f: 0x6c7e8c20, + 0x37350: 0x6c7e8e20, 0x37351: 0x6c7e9020, 0x37352: 0x6c7e9220, 0x37353: 0x6c7e9420, + 0x37354: 0x6c7e9620, 0x37355: 0x6c7e9820, 0x37356: 0x6c7e9a20, 0x37357: 0x6c7e9c20, + 0x37358: 0x6ca73820, 0x37359: 0x6ca73a20, 0x3735a: 0x6ca73c20, 0x3735b: 0x6ca73e20, + 0x3735c: 0x6ca74020, 0x3735d: 0x6ca74220, 0x3735e: 0x6ca74420, 0x3735f: 0x6ca74620, + 0x37360: 0x6ca74820, 0x37361: 0x6ca74a20, 0x37362: 0x6ca74c20, 0x37363: 0x6ca74e20, + 0x37364: 0x6ca75020, 0x37365: 0x6ca75220, 0x37366: 0x6ca75420, 0x37367: 0x6ca75620, + 0x37368: 0x6ca75820, 0x37369: 0x6ca75a20, 0x3736a: 0x6ca75c20, 0x3736b: 0x6ca75e20, + 0x3736c: 0x6ca76020, 0x3736d: 0x6ca76220, 0x3736e: 0x6ca76420, 0x3736f: 0x6ca76620, + 0x37370: 0x6ca76820, 0x37371: 0x6ca76a20, 0x37372: 0x6cd56020, 0x37373: 0x6cd56220, + 0x37374: 0x6cd56420, 0x37375: 0x6cd56620, 0x37376: 0x6cd56820, 0x37377: 0x6cd56a20, + 0x37378: 0x6cd56c20, 0x37379: 0x6cd56e20, 0x3737a: 0x6cd57020, 0x3737b: 0x6cd57220, + 0x3737c: 0x6cd57420, 0x3737d: 0x6cd57620, 0x3737e: 0x6cd57820, 0x3737f: 0x6cd57a20, + // Block 0xdce, offset 0x37380 + 0x37380: 0x6cd57c20, 0x37381: 0x6cd57e20, 0x37382: 0x6cd58020, 0x37383: 0x6cd58220, + 0x37384: 0x6cd58420, 0x37385: 0x6ca76c20, 0x37386: 0x6cd58620, 0x37387: 0x6cd58820, + 0x37388: 0x6cd58a20, 0x37389: 0x6cd58c20, 0x3738a: 0x6cd58e20, 0x3738b: 0x6cd59020, + 0x3738c: 0x6cd59220, 0x3738d: 0x6d03c220, 0x3738e: 0x6d03c420, 0x3738f: 0x6d03c620, + 0x37390: 0x6d03c820, 0x37391: 0x6d03ca20, 0x37392: 0x6d03cc20, 0x37393: 0x6d03ce20, + 0x37394: 0x6d03d020, 0x37395: 0x6d03d220, 0x37396: 0x6d03d420, 0x37397: 0x6d03d620, + 0x37398: 0x6d03d820, 0x37399: 0x6d03da20, 0x3739a: 0x6d03dc20, 0x3739b: 0x6d03de20, + 0x3739c: 0x6d03e020, 0x3739d: 0x6d03e220, 0x3739e: 0x6d03e420, 0x3739f: 0x6d03e620, + 0x373a0: 0x6d03e820, 0x373a1: 0x6d03ea20, 0x373a2: 0x6d03ec20, 0x373a3: 0x6d03ee20, + 0x373a4: 0x6d03f020, 0x373a5: 0x6d03f220, 0x373a6: 0x6d03f420, 0x373a7: 0x6d03f620, + 0x373a8: 0x6d03f820, 0x373a9: 0x6d03fa20, 0x373aa: 0x6d03fc20, 0x373ab: 0x6d03fe20, + 0x373ac: 0x6d040020, 0x373ad: 0x6d040220, 0x373ae: 0x6d040420, 0x373af: 0x6d040620, + 0x373b0: 0x6d040820, 0x373b1: 0x6d040a20, 0x373b2: 0x6d040c20, 0x373b3: 0x6d040e20, + 0x373b4: 0x6d041020, 0x373b5: 0x6d041220, 0x373b6: 0x6d041420, 0x373b7: 0x6d041620, + 0x373b8: 0x6d041820, 0x373b9: 0x6d041a20, 0x373ba: 0x6d041c20, 0x373bb: 0x6d041e20, + 0x373bc: 0x6d042020, 0x373bd: 0x6d315020, 0x373be: 0x6d315220, 0x373bf: 0x6d315420, + // Block 0xdcf, offset 0x373c0 + 0x373c0: 0x6d315620, 0x373c1: 0x6d315820, 0x373c2: 0x6d315a20, 0x373c3: 0x6d315c20, + 0x373c4: 0x6d315e20, 0x373c5: 0x6d316020, 0x373c6: 0x6d316220, 0x373c7: 0x6d316420, + 0x373c8: 0x6d316620, 0x373c9: 0x6d316820, 0x373ca: 0x6d316a20, 0x373cb: 0x6d316c20, + 0x373cc: 0x6d316e20, 0x373cd: 0x6d317020, 0x373ce: 0x6d317220, 0x373cf: 0x6d317420, + 0x373d0: 0x6d317620, 0x373d1: 0x6d317820, 0x373d2: 0x6d317a20, 0x373d3: 0x6d317c20, + 0x373d4: 0x6d317e20, 0x373d5: 0x6d318020, 0x373d6: 0x6d318220, 0x373d7: 0x6d318420, + 0x373d8: 0x6d318620, 0x373d9: 0x6d318820, 0x373da: 0x6d318a20, 0x373db: 0x6d318c20, + 0x373dc: 0x6d318e20, 0x373dd: 0x6d319020, 0x373de: 0x6d319220, 0x373df: 0x6d319420, + 0x373e0: 0x6d319620, 0x373e1: 0x6d319820, 0x373e2: 0x6d319a20, 0x373e3: 0x6d319c20, + 0x373e4: 0x6d319e20, 0x373e5: 0x6d31a020, 0x373e6: 0x6d31a220, 0x373e7: 0x6d31a420, + 0x373e8: 0x6d31a620, 0x373e9: 0x6d31a820, 0x373ea: 0x6d31aa20, 0x373eb: 0x6d31ac20, + 0x373ec: 0x6d31ae20, 0x373ed: 0x6d31b020, 0x373ee: 0x6d31b220, 0x373ef: 0x6d31b420, + 0x373f0: 0x6d31b620, 0x373f1: 0x6d5e0c20, 0x373f2: 0x6d5e0e20, 0x373f3: 0x6d5e1020, + 0x373f4: 0x6d5e1220, 0x373f5: 0x6d5e1420, 0x373f6: 0x6d5e1620, 0x373f7: 0x6d5e1820, + 0x373f8: 0x6d5e1a20, 0x373f9: 0x6d5e1c20, 0x373fa: 0x6d5e1e20, 0x373fb: 0x6d5e2020, + 0x373fc: 0x6d5e2220, 0x373fd: 0x6d5e2420, 0x373fe: 0x6d5e2620, 0x373ff: 0x6d5e2820, + // Block 0xdd0, offset 0x37400 + 0x37400: 0x6d5e2a20, 0x37401: 0x6d5e2c20, 0x37402: 0x6d5e2e20, 0x37403: 0x6d5e3020, + 0x37404: 0x6d5e3220, 0x37405: 0x6d5e3420, 0x37406: 0x6d5e3620, 0x37407: 0x6d5e3820, + 0x37408: 0x6d5e3a20, 0x37409: 0x6d5e3c20, 0x3740a: 0x6d5e3e20, 0x3740b: 0x6d5e4020, + 0x3740c: 0x6d5e4220, 0x3740d: 0x6d5e4420, 0x3740e: 0x6d5e4620, 0x3740f: 0x6d5e4820, + 0x37410: 0x6d5e4a20, 0x37411: 0x6d5e4c20, 0x37412: 0x6d5e4e20, 0x37413: 0x6d5e5020, + 0x37414: 0x6d5e5220, 0x37415: 0x6d5e5420, 0x37416: 0x6d5e5620, 0x37417: 0x6d5e5820, + 0x37418: 0x6d5e5a20, 0x37419: 0x6d5e5c20, 0x3741a: 0x6d5e5e20, 0x3741b: 0x6d5e6020, + 0x3741c: 0x6d885c20, 0x3741d: 0x6d885e20, 0x3741e: 0x6d886020, 0x3741f: 0x6d886220, + 0x37420: 0x6d886420, 0x37421: 0x6d886620, 0x37422: 0x6d886820, 0x37423: 0x6d886a20, + 0x37424: 0x6d886c20, 0x37425: 0x6d886e20, 0x37426: 0x6d887020, 0x37427: 0x6d887220, + 0x37428: 0x6d887420, 0x37429: 0x6d887620, 0x3742a: 0x6d887820, 0x3742b: 0x6d887a20, + 0x3742c: 0x6d887c20, 0x3742d: 0x6d887e20, 0x3742e: 0x6d888020, 0x3742f: 0x6d888220, + 0x37430: 0x6d888420, 0x37431: 0x6d888620, 0x37432: 0x6d888820, 0x37433: 0x6d888a20, + 0x37434: 0x6d888c20, 0x37435: 0x6d888e20, 0x37436: 0x6d889020, 0x37437: 0x6d889220, + 0x37438: 0x6d889420, 0x37439: 0x6d889620, 0x3743a: 0x6d889820, 0x3743b: 0x6d889a20, + 0x3743c: 0x6d889c20, 0x3743d: 0x6d889e20, 0x3743e: 0x6d88a020, 0x3743f: 0x6d88a220, + // Block 0xdd1, offset 0x37440 + 0x37440: 0x6d88a420, 0x37441: 0x6d88a620, 0x37442: 0x6d88a820, 0x37443: 0x6d88aa20, + 0x37444: 0x6d88ac20, 0x37445: 0x6d88ae20, 0x37446: 0x6d88b020, 0x37447: 0x6d88b220, + 0x37448: 0x6d88b420, 0x37449: 0x6d88b620, 0x3744a: 0x6dacec20, 0x3744b: 0x6dacee20, + 0x3744c: 0x6dacf020, 0x3744d: 0x6dacf220, 0x3744e: 0x6dacf420, 0x3744f: 0x6dacf620, + 0x37450: 0x6dacf820, 0x37451: 0x6dacfa20, 0x37452: 0x6dacfc20, 0x37453: 0x6dacfe20, + 0x37454: 0x6dad0020, 0x37455: 0x6dad0220, 0x37456: 0x6dad0420, 0x37457: 0x6dad0620, + 0x37458: 0x6dad0820, 0x37459: 0x6dad0a20, 0x3745a: 0x6dad0c20, 0x3745b: 0x6dad0e20, + 0x3745c: 0x6dad1020, 0x3745d: 0x6dad1220, 0x3745e: 0x6dad1420, 0x3745f: 0x6dad1620, + 0x37460: 0x6dad1820, 0x37461: 0x6dad1a20, 0x37462: 0x6dad1c20, 0x37463: 0x6dad1e20, + 0x37464: 0x6dad2020, 0x37465: 0x6dad2220, 0x37466: 0x6dad2420, 0x37467: 0x6dad2620, + 0x37468: 0x6dad2820, 0x37469: 0x6dad2a20, 0x3746a: 0x6dad2c20, 0x3746b: 0x6dad2e20, + 0x3746c: 0x6dad3020, 0x3746d: 0x6dad3220, 0x3746e: 0x6dad3420, 0x3746f: 0x6dad3620, + 0x37470: 0x6dad3820, 0x37471: 0x6dad3a20, 0x37472: 0x6dad3c20, 0x37473: 0x6dad3e20, + 0x37474: 0x6dccd820, 0x37475: 0x6dccda20, 0x37476: 0x6dccdc20, 0x37477: 0x6dccde20, + 0x37478: 0x6dcce020, 0x37479: 0x6dcce220, 0x3747a: 0x6dcce420, 0x3747b: 0x6dcce620, + 0x3747c: 0x6dcce820, 0x3747d: 0x6dccea20, 0x3747e: 0x6dccec20, 0x3747f: 0x6dccee20, + // Block 0xdd2, offset 0x37480 + 0x37480: 0x6dccf020, 0x37481: 0x6dccf220, 0x37482: 0x6dccf420, 0x37483: 0x6dccf620, + 0x37484: 0x6dccf820, 0x37485: 0x6dccfa20, 0x37486: 0x6dccfc20, 0x37487: 0x6dccfe20, + 0x37488: 0x6dcd0020, 0x37489: 0x6dcd0220, 0x3748a: 0x6de7cc20, 0x3748b: 0x6dcd0420, + 0x3748c: 0x6dcd0620, 0x3748d: 0x6dcd0820, 0x3748e: 0x6dcd0a20, 0x3748f: 0x6dcd0c20, + 0x37490: 0x6dcd0e20, 0x37491: 0x6dcd1020, 0x37492: 0x6dcd1220, 0x37493: 0x6dcd1420, + 0x37494: 0x6dcd1620, 0x37495: 0x6de7ce20, 0x37496: 0x6de7d020, 0x37497: 0x6de7d220, + 0x37498: 0x6de7d420, 0x37499: 0x6de7d620, 0x3749a: 0x6de7d820, 0x3749b: 0x6de7da20, + 0x3749c: 0x6de7dc20, 0x3749d: 0x6de7de20, 0x3749e: 0x6de7e020, 0x3749f: 0x6de7e220, + 0x374a0: 0x6de7e420, 0x374a1: 0x6de7e620, 0x374a2: 0x6dfe5220, 0x374a3: 0x6de7e820, + 0x374a4: 0x6de7ea20, 0x374a5: 0x6de7ec20, 0x374a6: 0x6de7ee20, 0x374a7: 0x6de7f020, + 0x374a8: 0x6dfe5420, 0x374a9: 0x6dfe5620, 0x374aa: 0x6dfe5820, 0x374ab: 0x6dfe5a20, + 0x374ac: 0x6dfe5c20, 0x374ad: 0x6dfe5e20, 0x374ae: 0x6dfe6020, 0x374af: 0x6dfe6220, + 0x374b0: 0x6dfe6420, 0x374b1: 0x6dfe6620, 0x374b2: 0x6dfe6820, 0x374b3: 0x6dfe6a20, + 0x374b4: 0x6dfe6c20, 0x374b5: 0x6dfe6e20, 0x374b6: 0x6dfe7020, 0x374b7: 0x6e046620, + 0x374b8: 0x6dfe7220, 0x374b9: 0x6dfe7420, 0x374ba: 0x6dfe7620, 0x374bb: 0x6dfe7820, + 0x374bc: 0x6dfe7a20, 0x374bd: 0x6dfe7c20, 0x374be: 0x6dfe7e20, 0x374bf: 0x6dfe8020, + // Block 0xdd3, offset 0x374c0 + 0x374c0: 0x6e10d220, 0x374c1: 0x6e10d420, 0x374c2: 0x6e10d620, 0x374c3: 0x6e10d820, + 0x374c4: 0x6e10da20, 0x374c5: 0x6e10dc20, 0x374c6: 0x6e1f6c20, 0x374c7: 0x6e1f6e20, + 0x374c8: 0x6e1f7020, 0x374c9: 0x6e1f7220, 0x374ca: 0x6e2aaa20, 0x374cb: 0x6e2aac20, + 0x374cc: 0x6e2aae20, 0x374cd: 0x6e2ab020, 0x374ce: 0x6e2ab220, 0x374cf: 0x6e2ab420, + 0x374d0: 0x6e2ab620, 0x374d1: 0x6e2ab820, 0x374d2: 0x6e2aba20, 0x374d3: 0x6e334020, + 0x374d4: 0x6e328a20, 0x374d5: 0x6e334220, 0x374d6: 0x6e334420, 0x374d7: 0x6e394e20, + 0x374d8: 0x6e395020, 0x374d9: 0x6e395220, 0x374da: 0x6e395420, 0x374db: 0x6e3da420, + 0x374dc: 0x6e3da620, 0x374dd: 0x6e3da820, 0x374de: 0x6e444a20, 0x374df: 0x6e444c20, + 0x374e0: 0x6e463420, 0x374e1: 0x6e46cc20, 0x374e2: 0x6c0a4220, 0x374e3: 0x6c258020, + 0x374e4: 0x6c258220, 0x374e5: 0x6c258420, 0x374e6: 0x6c258620, 0x374e7: 0x6c3d7220, + 0x374e8: 0x6c3d7420, 0x374e9: 0x6c3d7620, 0x374ea: 0x6c3d7820, 0x374eb: 0x6c3d7a20, + 0x374ec: 0x6c3d7c20, 0x374ed: 0x6c3d7e20, 0x374ee: 0x6c3d8020, 0x374ef: 0x6c3d8220, + 0x374f0: 0x6c3d8420, 0x374f1: 0x6c3d8620, 0x374f2: 0x6c3d8820, 0x374f3: 0x6c3d8a20, + 0x374f4: 0x6c5baa20, 0x374f5: 0x6c5bac20, 0x374f6: 0x6c5bae20, 0x374f7: 0x6c5bb020, + 0x374f8: 0x6c5bb220, 0x374f9: 0x6c5bb420, 0x374fa: 0x6c5bb620, 0x374fb: 0x6c5bb820, + 0x374fc: 0x6c5bba20, 0x374fd: 0x6c5bbc20, 0x374fe: 0x6c5bbe20, 0x374ff: 0x6c5bc020, + // Block 0xdd4, offset 0x37500 + 0x37500: 0x6c5bc220, 0x37501: 0x6c5bc420, 0x37502: 0x6c5bc620, 0x37503: 0x6c5bc820, + 0x37504: 0x6c5bca20, 0x37505: 0x6c5bcc20, 0x37506: 0x6c5bce20, 0x37507: 0x6c7ec220, + 0x37508: 0x6c7ec420, 0x37509: 0x6c7ec620, 0x3750a: 0x6c7ec820, 0x3750b: 0x6c7eca20, + 0x3750c: 0x6c7ecc20, 0x3750d: 0x6c7ece20, 0x3750e: 0x6c7ed020, 0x3750f: 0x6c7ed220, + 0x37510: 0x6c7ed420, 0x37511: 0x6c7ed620, 0x37512: 0x6c7ed820, 0x37513: 0x6c7eda20, + 0x37514: 0x6c7edc20, 0x37515: 0x6c7ede20, 0x37516: 0x6c7ee020, 0x37517: 0x6c7ee220, + 0x37518: 0x6c7ee420, 0x37519: 0x6c7ee620, 0x3751a: 0x6c7ee820, 0x3751b: 0x6c7eea20, + 0x3751c: 0x6c7eec20, 0x3751d: 0x6c7eee20, 0x3751e: 0x6c7ef020, 0x3751f: 0x6c7ef220, + 0x37520: 0x6ca79420, 0x37521: 0x6ca79620, 0x37522: 0x6ca79820, 0x37523: 0x6ca79a20, + 0x37524: 0x6ca79c20, 0x37525: 0x6ca79e20, 0x37526: 0x6ca7a020, 0x37527: 0x6ca7a220, + 0x37528: 0x6ca7a420, 0x37529: 0x6ca7a620, 0x3752a: 0x6ca7a820, 0x3752b: 0x6ca7aa20, + 0x3752c: 0x6ca7ac20, 0x3752d: 0x6ca7ae20, 0x3752e: 0x6ca7b020, 0x3752f: 0x6ca7b220, + 0x37530: 0x6ca7b420, 0x37531: 0x6ca7b620, 0x37532: 0x6ca7b820, 0x37533: 0x6ca7ba20, + 0x37534: 0x6ca7bc20, 0x37535: 0x6ca7be20, 0x37536: 0x6cd5ba20, 0x37537: 0x6cd5bc20, + 0x37538: 0x6cd5be20, 0x37539: 0x6cd5c020, 0x3753a: 0x6cd5c220, 0x3753b: 0x6cd5c420, + 0x3753c: 0x6cd5c620, 0x3753d: 0x6cd5c820, 0x3753e: 0x6cd5ca20, 0x3753f: 0x6cd5cc20, + // Block 0xdd5, offset 0x37540 + 0x37540: 0x6cd5ce20, 0x37541: 0x6cd5d020, 0x37542: 0x6cd5d220, 0x37543: 0x6cd5d420, + 0x37544: 0x6cd5d620, 0x37545: 0x6cd5d820, 0x37546: 0x6cd5da20, 0x37547: 0x6cd5dc20, + 0x37548: 0x6cd5de20, 0x37549: 0x6cd5e020, 0x3754a: 0x6cd5e220, 0x3754b: 0x6cd5e420, + 0x3754c: 0x6cd5e620, 0x3754d: 0x6cd5e820, 0x3754e: 0x6cd5ea20, 0x3754f: 0x6cd5ec20, + 0x37550: 0x6cd5ee20, 0x37551: 0x6cd5f020, 0x37552: 0x6cd5f220, 0x37553: 0x6cd5f420, + 0x37554: 0x6cd5f620, 0x37555: 0x6cd5f820, 0x37556: 0x6cd5fa20, 0x37557: 0x6cd5fc20, + 0x37558: 0x6cd5fe20, 0x37559: 0x6cd60020, 0x3755a: 0x6cd60220, 0x3755b: 0x6d044620, + 0x3755c: 0x6d044820, 0x3755d: 0x6d044a20, 0x3755e: 0x6d044c20, 0x3755f: 0x6d044e20, + 0x37560: 0x6d045020, 0x37561: 0x6d045220, 0x37562: 0x6d045420, 0x37563: 0x6d045620, + 0x37564: 0x6d045820, 0x37565: 0x6d045a20, 0x37566: 0x6d045c20, 0x37567: 0x6d045e20, + 0x37568: 0x6d046020, 0x37569: 0x6d046220, 0x3756a: 0x6d046420, 0x3756b: 0x6d046620, + 0x3756c: 0x6d046820, 0x3756d: 0x6d046a20, 0x3756e: 0x6d046c20, 0x3756f: 0x6d046e20, + 0x37570: 0x6d047020, 0x37571: 0x6d047220, 0x37572: 0x6d047420, 0x37573: 0x6d047620, + 0x37574: 0x6d047820, 0x37575: 0x6d047a20, 0x37576: 0x6d047c20, 0x37577: 0x6d047e20, + 0x37578: 0x6d31d420, 0x37579: 0x6d31d620, 0x3757a: 0x6d31d820, 0x3757b: 0x6d31da20, + 0x3757c: 0x6d31dc20, 0x3757d: 0x6d31de20, 0x3757e: 0x6d31e020, 0x3757f: 0x6d31e220, + // Block 0xdd6, offset 0x37580 + 0x37580: 0x6d31e420, 0x37581: 0x6d31e620, 0x37582: 0x6d31e820, 0x37583: 0x6d31ea20, + 0x37584: 0x6d31ec20, 0x37585: 0x6d31ee20, 0x37586: 0x6d31f020, 0x37587: 0x6d31f220, + 0x37588: 0x6d31f420, 0x37589: 0x6d31f620, 0x3758a: 0x6d31f820, 0x3758b: 0x6d31fa20, + 0x3758c: 0x6d31fc20, 0x3758d: 0x6d31fe20, 0x3758e: 0x6d320020, 0x3758f: 0x6d320220, + 0x37590: 0x6d5e7e20, 0x37591: 0x6d5e8020, 0x37592: 0x6d5e8220, 0x37593: 0x6d5e8420, + 0x37594: 0x6d5e8620, 0x37595: 0x6d5e8820, 0x37596: 0x6d5e8a20, 0x37597: 0x6d5e8c20, + 0x37598: 0x6d5e8e20, 0x37599: 0x6d5e9020, 0x3759a: 0x6d5e9220, 0x3759b: 0x6d5e9420, + 0x3759c: 0x6d5e9620, 0x3759d: 0x6d5e9820, 0x3759e: 0x6d5e9a20, 0x3759f: 0x6d5e9c20, + 0x375a0: 0x6d5e9e20, 0x375a1: 0x6d5ea020, 0x375a2: 0x6d627c20, 0x375a3: 0x6d5ea220, + 0x375a4: 0x6d5ea420, 0x375a5: 0x6d5ea620, 0x375a6: 0x6d5ea820, 0x375a7: 0x6d5eaa20, + 0x375a8: 0x6d5eac20, 0x375a9: 0x6d5eae20, 0x375aa: 0x6d5eb020, 0x375ab: 0x6d5eb220, + 0x375ac: 0x6d88da20, 0x375ad: 0x6d88dc20, 0x375ae: 0x6d88de20, 0x375af: 0x6d88e020, + 0x375b0: 0x6d88e220, 0x375b1: 0x6d88e420, 0x375b2: 0x6d88e620, 0x375b3: 0x6d88e820, + 0x375b4: 0x6d88ea20, 0x375b5: 0x6d88ec20, 0x375b6: 0x6d88ee20, 0x375b7: 0x6d88f020, + 0x375b8: 0x6d88f220, 0x375b9: 0x6d88f420, 0x375ba: 0x6d88f620, 0x375bb: 0x6d88f820, + 0x375bc: 0x6dad5a20, 0x375bd: 0x6d88fa20, 0x375be: 0x6d88fc20, 0x375bf: 0x6d88fe20, + // Block 0xdd7, offset 0x375c0 + 0x375c0: 0x6d890020, 0x375c1: 0x6d890220, 0x375c2: 0x6d890420, 0x375c3: 0x6d890620, + 0x375c4: 0x6d890820, 0x375c5: 0x6d890a20, 0x375c6: 0x6d890c20, 0x375c7: 0x6d890e20, + 0x375c8: 0x6d891020, 0x375c9: 0x6d891220, 0x375ca: 0x6d891420, 0x375cb: 0x6d891620, + 0x375cc: 0x6dad5c20, 0x375cd: 0x6dad5e20, 0x375ce: 0x6dad6020, 0x375cf: 0x6dad6220, + 0x375d0: 0x6dad6420, 0x375d1: 0x6dad6620, 0x375d2: 0x6dad6820, 0x375d3: 0x6dad6a20, + 0x375d4: 0x6dad6c20, 0x375d5: 0x6dad6e20, 0x375d6: 0x6dad7020, 0x375d7: 0x6dad7220, + 0x375d8: 0x6dad7420, 0x375d9: 0x6dad7620, 0x375da: 0x6dad7820, 0x375db: 0x6dad7a20, + 0x375dc: 0x6dad7c20, 0x375dd: 0x6dad7e20, 0x375de: 0x6dad8020, 0x375df: 0x6dad8220, + 0x375e0: 0x6dcd2420, 0x375e1: 0x6dcd2620, 0x375e2: 0x6dcd2820, 0x375e3: 0x6dcd2a20, + 0x375e4: 0x6dcd2c20, 0x375e5: 0x6dcd2e20, 0x375e6: 0x6dcd3020, 0x375e7: 0x6dcd3220, + 0x375e8: 0x6dcd3420, 0x375e9: 0x6dad8420, 0x375ea: 0x6de7f820, 0x375eb: 0x6de7fa20, + 0x375ec: 0x6de7fc20, 0x375ed: 0x6de7fe20, 0x375ee: 0x6de80020, 0x375ef: 0x6de80220, + 0x375f0: 0x6dfe8820, 0x375f1: 0x6dfe8a20, 0x375f2: 0x6de80420, 0x375f3: 0x6dfe8c20, + 0x375f4: 0x6dfe8e20, 0x375f5: 0x6e10e420, 0x375f6: 0x6dfe9020, 0x375f7: 0x6dfe9220, + 0x375f8: 0x6dfe9420, 0x375f9: 0x6dfe9620, 0x375fa: 0x6dfe9820, 0x375fb: 0x6e10e620, + 0x375fc: 0x6e10e820, 0x375fd: 0x6e10ea20, 0x375fe: 0x6e10ec20, 0x375ff: 0x6e10ee20, + // Block 0xdd8, offset 0x37600 + 0x37600: 0x6e10f020, 0x37601: 0x6e10f220, 0x37602: 0x6e10f420, 0x37603: 0x6e10f620, + 0x37604: 0x6e10f820, 0x37605: 0x6e10fa20, 0x37606: 0x6e10fc20, 0x37607: 0x6e10fe20, + 0x37608: 0x6e110020, 0x37609: 0x6e1f7a20, 0x3760a: 0x6e2abc20, 0x3760b: 0x6e2abe20, + 0x3760c: 0x6e334620, 0x3760d: 0x6e334820, 0x3760e: 0x6e395620, 0x3760f: 0x6e334a20, + 0x37610: 0x6e334c20, 0x37611: 0x6e334e20, 0x37612: 0x6e395820, 0x37613: 0x6e3daa20, + 0x37614: 0x6e444e20, 0x37615: 0x6c258e20, 0x37616: 0x6c259020, 0x37617: 0x6c3d9420, + 0x37618: 0x6c3d9620, 0x37619: 0x6c5be620, 0x3761a: 0x6c5be820, 0x3761b: 0x6c5bea20, + 0x3761c: 0x6c5bec20, 0x3761d: 0x6c5bee20, 0x3761e: 0x6c5bf020, 0x3761f: 0x6c5bf220, + 0x37620: 0x6c7f0c20, 0x37621: 0x6c7f0e20, 0x37622: 0x6c7f1020, 0x37623: 0x6c7f1220, + 0x37624: 0x6c7f1420, 0x37625: 0x6c7f1620, 0x37626: 0x6c7f1820, 0x37627: 0x6c7f1a20, + 0x37628: 0x6c7f1c20, 0x37629: 0x6c7f1e20, 0x3762a: 0x6c7f2020, 0x3762b: 0x6c7f2220, + 0x3762c: 0x6c7f2420, 0x3762d: 0x6c7f2620, 0x3762e: 0x6c7f2820, 0x3762f: 0x6c7f2a20, + 0x37630: 0x6c7f2c20, 0x37631: 0x6ca7ca20, 0x37632: 0x6ca7cc20, 0x37633: 0x6ca7ce20, + 0x37634: 0x6ca7d020, 0x37635: 0x6ca7d220, 0x37636: 0x6ca7d420, 0x37637: 0x6ca7d620, + 0x37638: 0x6ca7d820, 0x37639: 0x6ca7da20, 0x3763a: 0x6ca7dc20, 0x3763b: 0x6ca7de20, + 0x3763c: 0x6ca7e020, 0x3763d: 0x6ca7e220, 0x3763e: 0x6cd61a20, 0x3763f: 0x6cd61c20, + // Block 0xdd9, offset 0x37640 + 0x37640: 0x6cd61e20, 0x37641: 0x6cd62020, 0x37642: 0x6cd62220, 0x37643: 0x6cd62420, + 0x37644: 0x6cd62620, 0x37645: 0x6cd62820, 0x37646: 0x6cd62a20, 0x37647: 0x6cd62c20, + 0x37648: 0x6cd62e20, 0x37649: 0x6cd63020, 0x3764a: 0x6d049620, 0x3764b: 0x6d049820, + 0x3764c: 0x6d049a20, 0x3764d: 0x6d049c20, 0x3764e: 0x6d049e20, 0x3764f: 0x6d04a020, + 0x37650: 0x6d04a220, 0x37651: 0x6d04a420, 0x37652: 0x6d04a620, 0x37653: 0x6d04a820, + 0x37654: 0x6d04aa20, 0x37655: 0x6d04ac20, 0x37656: 0x6d04ae20, 0x37657: 0x6d04b020, + 0x37658: 0x6d321020, 0x37659: 0x6d321220, 0x3765a: 0x6d321420, 0x3765b: 0x6d321620, + 0x3765c: 0x6d321820, 0x3765d: 0x6d321a20, 0x3765e: 0x6d321c20, 0x3765f: 0x6d321e20, + 0x37660: 0x6d322020, 0x37661: 0x6d322220, 0x37662: 0x6d322420, 0x37663: 0x6d322620, + 0x37664: 0x6d322820, 0x37665: 0x6d5eb620, 0x37666: 0x6d5eb820, 0x37667: 0x6d5eba20, + 0x37668: 0x6d5ebc20, 0x37669: 0x6d5ebe20, 0x3766a: 0x6d5ec020, 0x3766b: 0x6d5ec220, + 0x3766c: 0x6d5ec420, 0x3766d: 0x6d892420, 0x3766e: 0x6d892620, 0x3766f: 0x6dad9020, + 0x37670: 0x6d892820, 0x37671: 0x6d892a20, 0x37672: 0x6dad9220, 0x37673: 0x6dad9420, + 0x37674: 0x6dad9620, 0x37675: 0x6dad9820, 0x37676: 0x6dad9a20, 0x37677: 0x6dad9c20, + 0x37678: 0x6dad9e20, 0x37679: 0x6dada020, 0x3767a: 0x6de80820, 0x3767b: 0x6dada220, + 0x3767c: 0x6dcd3c20, 0x3767d: 0x6dcd3e20, 0x3767e: 0x6dcd4020, 0x3767f: 0x6dcd4220, + // Block 0xdda, offset 0x37680 + 0x37680: 0x6dcd4420, 0x37681: 0x6dcd4620, 0x37682: 0x6dc73620, 0x37683: 0x6dcd4820, + 0x37684: 0x6dcd4a20, 0x37685: 0x6de80a20, 0x37686: 0x6de80c20, 0x37687: 0x6de80e20, + 0x37688: 0x6dfe9e20, 0x37689: 0x6dfea020, 0x3768a: 0x6dfea220, 0x3768b: 0x6dfea420, + 0x3768c: 0x6dfea620, 0x3768d: 0x6dfea820, 0x3768e: 0x6e110220, 0x3768f: 0x6e110420, + 0x37690: 0x6e1f8020, 0x37691: 0x6e1f8220, 0x37692: 0x6e395a20, 0x37693: 0x6e2ac220, + 0x37694: 0x6e335020, 0x37695: 0x6e395c20, 0x37696: 0x6e395e20, 0x37697: 0x6c141220, + 0x37698: 0x6c259420, 0x37699: 0x6c3d9e20, 0x3769a: 0x6c3da020, 0x3769b: 0x6c3da220, + 0x3769c: 0x6c3da420, 0x3769d: 0x6c5c0820, 0x3769e: 0x6c5c0a20, 0x3769f: 0x6c5c0c20, + 0x376a0: 0x6c5c0e20, 0x376a1: 0x6c5c1020, 0x376a2: 0x6c5c1220, 0x376a3: 0x6c5c1420, + 0x376a4: 0x6c5c1620, 0x376a5: 0x6c5c1820, 0x376a6: 0x6c5c1a20, 0x376a7: 0x6c5c1c20, + 0x376a8: 0x6c5c1e20, 0x376a9: 0x6c5c2020, 0x376aa: 0x6c5c2220, 0x376ab: 0x6c5c2420, + 0x376ac: 0x6c5c2620, 0x376ad: 0x6c5c2820, 0x376ae: 0x6c5c2a20, 0x376af: 0x6c7f6220, + 0x376b0: 0x6c7f6420, 0x376b1: 0x6c7f6620, 0x376b2: 0x6c7f6820, 0x376b3: 0x6c7f6a20, + 0x376b4: 0x6c7f6c20, 0x376b5: 0x6c7f6e20, 0x376b6: 0x6c7f7020, 0x376b7: 0x6c7f7220, + 0x376b8: 0x6c7f7420, 0x376b9: 0x6c7f7620, 0x376ba: 0x6c7f7820, 0x376bb: 0x6c7f7a20, + 0x376bc: 0x6c7f7c20, 0x376bd: 0x6c7f7e20, 0x376be: 0x6c7f8020, 0x376bf: 0x6c7f8220, + // Block 0xddb, offset 0x376c0 + 0x376c0: 0x6c7f8420, 0x376c1: 0x6c7f8620, 0x376c2: 0x6c7f8820, 0x376c3: 0x6c7f8a20, + 0x376c4: 0x6c7f8c20, 0x376c5: 0x6c7f8e20, 0x376c6: 0x6c7f9020, 0x376c7: 0x6c7f9220, + 0x376c8: 0x6c7f9420, 0x376c9: 0x6c7f9620, 0x376ca: 0x6c7f9820, 0x376cb: 0x6c7f9a20, + 0x376cc: 0x6ca84c20, 0x376cd: 0x6ca84e20, 0x376ce: 0x6ca85020, 0x376cf: 0x6ca85220, + 0x376d0: 0x6ca85420, 0x376d1: 0x6ca85620, 0x376d2: 0x6ca85820, 0x376d3: 0x6ca85a20, + 0x376d4: 0x6ca85c20, 0x376d5: 0x6ca85e20, 0x376d6: 0x6ca86020, 0x376d7: 0x6ca86220, + 0x376d8: 0x6ca86420, 0x376d9: 0x6ca86620, 0x376da: 0x6ca86820, 0x376db: 0x6ca86a20, + 0x376dc: 0x6ca86c20, 0x376dd: 0x6ca86e20, 0x376de: 0x6ca87020, 0x376df: 0x6ca87220, + 0x376e0: 0x6ca87420, 0x376e1: 0x6ca87620, 0x376e2: 0x6ca87820, 0x376e3: 0x6ca87a20, + 0x376e4: 0x6ca87c20, 0x376e5: 0x6ca87e20, 0x376e6: 0x6ca88020, 0x376e7: 0x6ca88220, + 0x376e8: 0x6ca88420, 0x376e9: 0x6ca88620, 0x376ea: 0x6cd69020, 0x376eb: 0x6cd69220, + 0x376ec: 0x6cd69420, 0x376ed: 0x6cd69620, 0x376ee: 0x6cd69820, 0x376ef: 0x6cd69a20, + 0x376f0: 0x6cd69c20, 0x376f1: 0x6cd69e20, 0x376f2: 0x6cd6a020, 0x376f3: 0x6cd6a220, + 0x376f4: 0x6cd6a420, 0x376f5: 0x6cd6a620, 0x376f6: 0x6cd6a820, 0x376f7: 0x6cd6aa20, + 0x376f8: 0x6cd6ac20, 0x376f9: 0x6cd6ae20, 0x376fa: 0x6cd6b020, 0x376fb: 0x6cd6b220, + 0x376fc: 0x6cd6b420, 0x376fd: 0x6cd6b620, 0x376fe: 0x6cd6b820, 0x376ff: 0x6ca88820, + // Block 0xddc, offset 0x37700 + 0x37700: 0x6cd6ba20, 0x37701: 0x6cd6bc20, 0x37702: 0x6cd6be20, 0x37703: 0x6cd6c020, + 0x37704: 0x6cd6c220, 0x37705: 0x6cd6c420, 0x37706: 0x6cd6c620, 0x37707: 0x6cd6c820, + 0x37708: 0x6cd6ca20, 0x37709: 0x6cd6cc20, 0x3770a: 0x6cd6ce20, 0x3770b: 0x6cd6d020, + 0x3770c: 0x6cd6d220, 0x3770d: 0x6cd6d420, 0x3770e: 0x6cd6d620, 0x3770f: 0x6cd6d820, + 0x37710: 0x6d051220, 0x37711: 0x6d051420, 0x37712: 0x6d051620, 0x37713: 0x6d051820, + 0x37714: 0x6d051a20, 0x37715: 0x6d051c20, 0x37716: 0x6d051e20, 0x37717: 0x6d052020, + 0x37718: 0x6d052220, 0x37719: 0x6d052420, 0x3771a: 0x6d052620, 0x3771b: 0x6d052820, + 0x3771c: 0x6d052a20, 0x3771d: 0x6d052c20, 0x3771e: 0x6d052e20, 0x3771f: 0x6d053020, + 0x37720: 0x6d053220, 0x37721: 0x6d053420, 0x37722: 0x6d053620, 0x37723: 0x6d053820, + 0x37724: 0x6d053a20, 0x37725: 0x6d053c20, 0x37726: 0x6d053e20, 0x37727: 0x6d054020, + 0x37728: 0x6d054220, 0x37729: 0x6d054420, 0x3772a: 0x6d054620, 0x3772b: 0x6d054820, + 0x3772c: 0x6d054a20, 0x3772d: 0x6d054c20, 0x3772e: 0x6d054e20, 0x3772f: 0x6d055020, + 0x37730: 0x6d055220, 0x37731: 0x6d055420, 0x37732: 0x6d055620, 0x37733: 0x6d055820, + 0x37734: 0x6d055a20, 0x37735: 0x6d055c20, 0x37736: 0x6d055e20, 0x37737: 0x6d056020, + 0x37738: 0x6d056220, 0x37739: 0x6d056420, 0x3773a: 0x6d056620, 0x3773b: 0x6d056820, + 0x3773c: 0x6d056a20, 0x3773d: 0x6d056c20, 0x3773e: 0x6d056e20, 0x3773f: 0x6d057020, + // Block 0xddd, offset 0x37740 + 0x37740: 0x6d057220, 0x37741: 0x6d057420, 0x37742: 0x6d057620, 0x37743: 0x6d057820, + 0x37744: 0x6d057a20, 0x37745: 0x6d057c20, 0x37746: 0x6d057e20, 0x37747: 0x6d058020, + 0x37748: 0x6d058220, 0x37749: 0x6d058420, 0x3774a: 0x6d058620, 0x3774b: 0x6d058820, + 0x3774c: 0x6d058a20, 0x3774d: 0x6d32a220, 0x3774e: 0x6d32a420, 0x3774f: 0x6d32a620, + 0x37750: 0x6d32a820, 0x37751: 0x6d32aa20, 0x37752: 0x6d32ac20, 0x37753: 0x6d32ae20, + 0x37754: 0x6d32b020, 0x37755: 0x6d32b220, 0x37756: 0x6d32b420, 0x37757: 0x6d32b620, + 0x37758: 0x6d32b820, 0x37759: 0x6d32ba20, 0x3775a: 0x6d32bc20, 0x3775b: 0x6d32be20, + 0x3775c: 0x6d32c020, 0x3775d: 0x6d32c220, 0x3775e: 0x6d32c420, 0x3775f: 0x6d32c620, + 0x37760: 0x6d32c820, 0x37761: 0x6d32ca20, 0x37762: 0x6d32cc20, 0x37763: 0x6d32ce20, + 0x37764: 0x6d32d020, 0x37765: 0x6d32d220, 0x37766: 0x6d32d420, 0x37767: 0x6d32d620, + 0x37768: 0x6d32d820, 0x37769: 0x6d32da20, 0x3776a: 0x6d32dc20, 0x3776b: 0x6d32de20, + 0x3776c: 0x6d32e020, 0x3776d: 0x6d32e220, 0x3776e: 0x6d32e420, 0x3776f: 0x6d32e620, + 0x37770: 0x6d32e820, 0x37771: 0x6d32ea20, 0x37772: 0x6d32ec20, 0x37773: 0x6d32ee20, + 0x37774: 0x6d32f020, 0x37775: 0x6d32f220, 0x37776: 0x6d32f420, 0x37777: 0x6d32f620, + 0x37778: 0x6d32f820, 0x37779: 0x6d32fa20, 0x3777a: 0x6d32fc20, 0x3777b: 0x6d32fe20, + 0x3777c: 0x6d330020, 0x3777d: 0x6d330220, 0x3777e: 0x6d330420, 0x3777f: 0x6d330620, + // Block 0xdde, offset 0x37780 + 0x37780: 0x6d330820, 0x37781: 0x6d330a20, 0x37782: 0x6d330c20, 0x37783: 0x6d330e20, + 0x37784: 0x6d331020, 0x37785: 0x6d331220, 0x37786: 0x6d331420, 0x37787: 0x6d331620, + 0x37788: 0x6d331820, 0x37789: 0x6d331a20, 0x3778a: 0x6d331c20, 0x3778b: 0x6d331e20, + 0x3778c: 0x6d332020, 0x3778d: 0x6d332220, 0x3778e: 0x6d332420, 0x3778f: 0x6d332620, + 0x37790: 0x6d332820, 0x37791: 0x6d5f4e20, 0x37792: 0x6d5f5020, 0x37793: 0x6d5f5220, + 0x37794: 0x6d5f5420, 0x37795: 0x6d5f5620, 0x37796: 0x6d5f5820, 0x37797: 0x6d5f5a20, + 0x37798: 0x6d5f5c20, 0x37799: 0x6d5f5e20, 0x3779a: 0x6d5f6020, 0x3779b: 0x6d5f6220, + 0x3779c: 0x6d5f6420, 0x3779d: 0x6d5f6620, 0x3779e: 0x6d5f6820, 0x3779f: 0x6d5f6a20, + 0x377a0: 0x6d5f6c20, 0x377a1: 0x6d5f6e20, 0x377a2: 0x6d5f7020, 0x377a3: 0x6d5f7220, + 0x377a4: 0x6d5f7420, 0x377a5: 0x6d5f7620, 0x377a6: 0x6d5f7820, 0x377a7: 0x6d5f7a20, + 0x377a8: 0x6d5f7c20, 0x377a9: 0x6d5f7e20, 0x377aa: 0x6d5f8020, 0x377ab: 0x6d5f8220, + 0x377ac: 0x6d5f8420, 0x377ad: 0x6d5f8620, 0x377ae: 0x6d5f8820, 0x377af: 0x6d5f8a20, + 0x377b0: 0x6d5f8c20, 0x377b1: 0x6d5f8e20, 0x377b2: 0x6d5f9020, 0x377b3: 0x6d5f9220, + 0x377b4: 0x6d5f9420, 0x377b5: 0x6d5f9620, 0x377b6: 0x6d5f9820, 0x377b7: 0x6d5f9a20, + 0x377b8: 0x6d5f9c20, 0x377b9: 0x6d5f9e20, 0x377ba: 0x6d5fa020, 0x377bb: 0x6d5fa220, + 0x377bc: 0x6d5fa420, 0x377bd: 0x6d5fa620, 0x377be: 0x6d5fa820, 0x377bf: 0x6d5faa20, + // Block 0xddf, offset 0x377c0 + 0x377c0: 0x6d5fac20, 0x377c1: 0x6d5fae20, 0x377c2: 0x6d5fb020, 0x377c3: 0x6d5fb220, + 0x377c4: 0x6d5fb420, 0x377c5: 0x6d5fb620, 0x377c6: 0x6d5fb820, 0x377c7: 0x6d5fba20, + 0x377c8: 0x6d5fbc20, 0x377c9: 0x6d5fbe20, 0x377ca: 0x6d5fc020, 0x377cb: 0x6d5fc220, + 0x377cc: 0x6d5fc420, 0x377cd: 0x6d5fc620, 0x377ce: 0x6d5fc820, 0x377cf: 0x6d5fca20, + 0x377d0: 0x6d5fcc20, 0x377d1: 0x6d5fce20, 0x377d2: 0x6d5fd020, 0x377d3: 0x6d5fd220, + 0x377d4: 0x6d5fd420, 0x377d5: 0x6d5fd620, 0x377d6: 0x6d5fd820, 0x377d7: 0x6d5fda20, + 0x377d8: 0x6d898620, 0x377d9: 0x6d898820, 0x377da: 0x6d898a20, 0x377db: 0x6d898c20, + 0x377dc: 0x6d898e20, 0x377dd: 0x6d899020, 0x377de: 0x6d899220, 0x377df: 0x6d899420, + 0x377e0: 0x6d899620, 0x377e1: 0x6d899820, 0x377e2: 0x6d899a20, 0x377e3: 0x6d899c20, + 0x377e4: 0x6d899e20, 0x377e5: 0x6d89a020, 0x377e6: 0x6d89a220, 0x377e7: 0x6d89a420, + 0x377e8: 0x6d89a620, 0x377e9: 0x6d89a820, 0x377ea: 0x6d89aa20, 0x377eb: 0x6d89ac20, + 0x377ec: 0x6d89ae20, 0x377ed: 0x6d89b020, 0x377ee: 0x6d89b220, 0x377ef: 0x6d89b420, + 0x377f0: 0x6d89b620, 0x377f1: 0x6d89b820, 0x377f2: 0x6d89ba20, 0x377f3: 0x6d89bc20, + 0x377f4: 0x6d89be20, 0x377f5: 0x6d89c020, 0x377f6: 0x6d89c220, 0x377f7: 0x6d89c420, + 0x377f8: 0x6d89c620, 0x377f9: 0x6d89c820, 0x377fa: 0x6d89ca20, 0x377fb: 0x6d89cc20, + 0x377fc: 0x6d89ce20, 0x377fd: 0x6d89d020, 0x377fe: 0x6d89d220, 0x377ff: 0x6d89d420, + // Block 0xde0, offset 0x37800 + 0x37800: 0x6d89d620, 0x37801: 0x6d89d820, 0x37802: 0x6d89da20, 0x37803: 0x6d89dc20, + 0x37804: 0x6d89de20, 0x37805: 0x6d89e020, 0x37806: 0x6d89e220, 0x37807: 0x6d89e420, + 0x37808: 0x6d89e620, 0x37809: 0x6d89e820, 0x3780a: 0x6d89ea20, 0x3780b: 0x6d89ec20, + 0x3780c: 0x6d89ee20, 0x3780d: 0x6d89f020, 0x3780e: 0x6d89f220, 0x3780f: 0x6d89f420, + 0x37810: 0x6d89f620, 0x37811: 0x6d89f820, 0x37812: 0x6d89fa20, 0x37813: 0x6d89fc20, + 0x37814: 0x6d89fe20, 0x37815: 0x6d8a0020, 0x37816: 0x6d8a0220, 0x37817: 0x6d8a0420, + 0x37818: 0x6d8a0620, 0x37819: 0x6d8a0820, 0x3781a: 0x6d8a0a20, 0x3781b: 0x6d8a0c20, + 0x3781c: 0x6d8a0e20, 0x3781d: 0x6d8a1020, 0x3781e: 0x6d8a1220, 0x3781f: 0x6d8a1420, + 0x37820: 0x6d8a1620, 0x37821: 0x6d8a1820, 0x37822: 0x6d8a1a20, 0x37823: 0x6d8a1c20, + 0x37824: 0x6d8a1e20, 0x37825: 0x6d8a2020, 0x37826: 0x6d8a2220, 0x37827: 0x6d8a2420, + 0x37828: 0x6d8a2620, 0x37829: 0x6d8a2820, 0x3782a: 0x6d8a2a20, 0x3782b: 0x6d8a2c20, + 0x3782c: 0x6d8a2e20, 0x3782d: 0x6d8a3020, 0x3782e: 0x6d8a3220, 0x3782f: 0x6d8a3420, + 0x37830: 0x6d8a3620, 0x37831: 0x6d8a3820, 0x37832: 0x6d8a3a20, 0x37833: 0x6d8a3c20, + 0x37834: 0x6d8a3e20, 0x37835: 0x6dae1220, 0x37836: 0x6dae1420, 0x37837: 0x6dae1620, + 0x37838: 0x6dae1820, 0x37839: 0x6dae1a20, 0x3783a: 0x6dae1c20, 0x3783b: 0x6dae1e20, + 0x3783c: 0x6dae2020, 0x3783d: 0x6dae2220, 0x3783e: 0x6dae2420, 0x3783f: 0x6dae2620, + // Block 0xde1, offset 0x37840 + 0x37840: 0x6dae2820, 0x37841: 0x6dae2a20, 0x37842: 0x6dae2c20, 0x37843: 0x6dae2e20, + 0x37844: 0x6dae3020, 0x37845: 0x6dae3220, 0x37846: 0x6dae3420, 0x37847: 0x6dae3620, + 0x37848: 0x6dae3820, 0x37849: 0x6dae3a20, 0x3784a: 0x6dae3c20, 0x3784b: 0x6dae3e20, + 0x3784c: 0x6dae4020, 0x3784d: 0x6dae4220, 0x3784e: 0x6dae4420, 0x3784f: 0x6dae4620, + 0x37850: 0x6dae4820, 0x37851: 0x6dae4a20, 0x37852: 0x6dae4c20, 0x37853: 0x6dae4e20, + 0x37854: 0x6dae5020, 0x37855: 0x6dae5220, 0x37856: 0x6dae5420, 0x37857: 0x6dae5620, + 0x37858: 0x6dae5820, 0x37859: 0x6dae5a20, 0x3785a: 0x6dae5c20, 0x3785b: 0x6dae5e20, + 0x3785c: 0x6dae6020, 0x3785d: 0x6dae6220, 0x3785e: 0x6dae6420, 0x3785f: 0x6dae6620, + 0x37860: 0x6dae6820, 0x37861: 0x6dae6a20, 0x37862: 0x6dae6c20, 0x37863: 0x6dae6e20, + 0x37864: 0x6dae7020, 0x37865: 0x6dae7220, 0x37866: 0x6dae7420, 0x37867: 0x6dae7620, + 0x37868: 0x6dae7820, 0x37869: 0x6dae7a20, 0x3786a: 0x6dae7c20, 0x3786b: 0x6dae7e20, + 0x3786c: 0x6dae8020, 0x3786d: 0x6dae8220, 0x3786e: 0x6dae8420, 0x3786f: 0x6dae8620, + 0x37870: 0x6dae8820, 0x37871: 0x6dae8a20, 0x37872: 0x6dae8c20, 0x37873: 0x6dae8e20, + 0x37874: 0x6dae9020, 0x37875: 0x6dae9220, 0x37876: 0x6dae9420, 0x37877: 0x6dae9620, + 0x37878: 0x6dae9820, 0x37879: 0x6dae9a20, 0x3787a: 0x6dae9c20, 0x3787b: 0x6dae9e20, + 0x3787c: 0x6daea020, 0x3787d: 0x6daea220, 0x3787e: 0x6daea420, 0x3787f: 0x6daea620, + // Block 0xde2, offset 0x37880 + 0x37880: 0x6daea820, 0x37881: 0x6dcda420, 0x37882: 0x6daeaa20, 0x37883: 0x6daeac20, + 0x37884: 0x6daeae20, 0x37885: 0x6daeb020, 0x37886: 0x6dcda620, 0x37887: 0x6dcda820, + 0x37888: 0x6dcdaa20, 0x37889: 0x6dcdac20, 0x3788a: 0x6dcdae20, 0x3788b: 0x6dcdb020, + 0x3788c: 0x6dcdb220, 0x3788d: 0x6dcdb420, 0x3788e: 0x6dcdb620, 0x3788f: 0x6dcdb820, + 0x37890: 0x6dcdba20, 0x37891: 0x6dcdbc20, 0x37892: 0x6dcdbe20, 0x37893: 0x6dcdc020, + 0x37894: 0x6dcdc220, 0x37895: 0x6dcdc420, 0x37896: 0x6dcdc620, 0x37897: 0x6dcdc820, + 0x37898: 0x6dcdca20, 0x37899: 0x6dcdcc20, 0x3789a: 0x6dcdce20, 0x3789b: 0x6dcdd020, + 0x3789c: 0x6dcdd220, 0x3789d: 0x6dcdd420, 0x3789e: 0x6dcdd620, 0x3789f: 0x6dcdd820, + 0x378a0: 0x6dcdda20, 0x378a1: 0x6dcddc20, 0x378a2: 0x6dcdde20, 0x378a3: 0x6dcde020, + 0x378a4: 0x6dcde220, 0x378a5: 0x6dcde420, 0x378a6: 0x6dcde620, 0x378a7: 0x6dcde820, + 0x378a8: 0x6dcdea20, 0x378a9: 0x6dcdec20, 0x378aa: 0x6dcdee20, 0x378ab: 0x6dcdf020, + 0x378ac: 0x6dcdf220, 0x378ad: 0x6dcdf420, 0x378ae: 0x6dcdf620, 0x378af: 0x6dcdf820, + 0x378b0: 0x6dcdfa20, 0x378b1: 0x6dcdfc20, 0x378b2: 0x6dcdfe20, 0x378b3: 0x6dce0020, + 0x378b4: 0x6dce0220, 0x378b5: 0x6dce0420, 0x378b6: 0x6dce0620, 0x378b7: 0x6dce0820, + 0x378b8: 0x6dce0a20, 0x378b9: 0x6dce0c20, 0x378ba: 0x6dce0e20, 0x378bb: 0x6dce1020, + 0x378bc: 0x6dce1220, 0x378bd: 0x6dce1420, 0x378be: 0x6dce1620, 0x378bf: 0x6dce1820, + // Block 0xde3, offset 0x378c0 + 0x378c0: 0x6dce1a20, 0x378c1: 0x6dce1c20, 0x378c2: 0x6dce1e20, 0x378c3: 0x6dce2020, + 0x378c4: 0x6dce2220, 0x378c5: 0x6dce2420, 0x378c6: 0x6dce2620, 0x378c7: 0x6dce2820, + 0x378c8: 0x6dce2a20, 0x378c9: 0x6dce2c20, 0x378ca: 0x6dce2e20, 0x378cb: 0x6dce3020, + 0x378cc: 0x6dce3220, 0x378cd: 0x6dce3420, 0x378ce: 0x6daeb220, 0x378cf: 0x6dce3620, + 0x378d0: 0x6dce3820, 0x378d1: 0x6dce3a20, 0x378d2: 0x6dce3c20, 0x378d3: 0x6dce3e20, + 0x378d4: 0x6dce4020, 0x378d5: 0x6dce4220, 0x378d6: 0x6dce4420, 0x378d7: 0x6dce4620, + 0x378d8: 0x6dce4820, 0x378d9: 0x6dce4a20, 0x378da: 0x6dce4c20, 0x378db: 0x6dce4e20, + 0x378dc: 0x6dce5020, 0x378dd: 0x6dce5220, 0x378de: 0x6dce5420, 0x378df: 0x6dce5620, + 0x378e0: 0x6dce5820, 0x378e1: 0x6de84820, 0x378e2: 0x6de84a20, 0x378e3: 0x6de84c20, + 0x378e4: 0x6de84e20, 0x378e5: 0x6de85020, 0x378e6: 0x6de85220, 0x378e7: 0x6de85420, + 0x378e8: 0x6de85620, 0x378e9: 0x6de85820, 0x378ea: 0x6de85a20, 0x378eb: 0x6de85c20, + 0x378ec: 0x6de85e20, 0x378ed: 0x6de86020, 0x378ee: 0x6de86220, 0x378ef: 0x6de86420, + 0x378f0: 0x6de86620, 0x378f1: 0x6de86820, 0x378f2: 0x6de86a20, 0x378f3: 0x6de86c20, + 0x378f4: 0x6de86e20, 0x378f5: 0x6de87020, 0x378f6: 0x6de87220, 0x378f7: 0x6de87420, + 0x378f8: 0x6de87620, 0x378f9: 0x6de87820, 0x378fa: 0x6de87a20, 0x378fb: 0x6de87c20, + 0x378fc: 0x6de87e20, 0x378fd: 0x6de88020, 0x378fe: 0x6de88220, 0x378ff: 0x6de88420, + // Block 0xde4, offset 0x37900 + 0x37900: 0x6de88620, 0x37901: 0x6de88820, 0x37902: 0x6de88a20, 0x37903: 0x6de88c20, + 0x37904: 0x6de88e20, 0x37905: 0x6de89020, 0x37906: 0x6de89220, 0x37907: 0x6de89420, + 0x37908: 0x6de89620, 0x37909: 0x6de89820, 0x3790a: 0x6de89a20, 0x3790b: 0x6de89c20, + 0x3790c: 0x6de89e20, 0x3790d: 0x6de8a020, 0x3790e: 0x6de8a220, 0x3790f: 0x6de8a420, + 0x37910: 0x6de8a620, 0x37911: 0x6de8a820, 0x37912: 0x6de8aa20, 0x37913: 0x6de8ac20, + 0x37914: 0x6de8ae20, 0x37915: 0x6de8b020, 0x37916: 0x6de8b220, 0x37917: 0x6de8b420, + 0x37918: 0x6de8b620, 0x37919: 0x6de8b820, 0x3791a: 0x6de8ba20, 0x3791b: 0x6de8bc20, + 0x3791c: 0x6dfec820, 0x3791d: 0x6dfeca20, 0x3791e: 0x6dfecc20, 0x3791f: 0x6dfece20, + 0x37920: 0x6dfed020, 0x37921: 0x6dfed220, 0x37922: 0x6dfed420, 0x37923: 0x6dfed620, + 0x37924: 0x6dfed820, 0x37925: 0x6dfeda20, 0x37926: 0x6dfedc20, 0x37927: 0x6dfede20, + 0x37928: 0x6dfee020, 0x37929: 0x6dfee220, 0x3792a: 0x6dfee420, 0x3792b: 0x6dfee620, + 0x3792c: 0x6dfee820, 0x3792d: 0x6dfeea20, 0x3792e: 0x6dfeec20, 0x3792f: 0x6dfeee20, + 0x37930: 0x6dfef020, 0x37931: 0x6dfef220, 0x37932: 0x6dfef420, 0x37933: 0x6dfef620, + 0x37934: 0x6dfef820, 0x37935: 0x6dfefa20, 0x37936: 0x6dfefc20, 0x37937: 0x6dfefe20, + 0x37938: 0x6dff0020, 0x37939: 0x6dff0220, 0x3793a: 0x6dff0420, 0x3793b: 0x6dff0620, + 0x3793c: 0x6dff0820, 0x3793d: 0x6dff0a20, 0x3793e: 0x6dff0c20, 0x3793f: 0x6dff0e20, + // Block 0xde5, offset 0x37940 + 0x37940: 0x6dff1020, 0x37941: 0x6dff1220, 0x37942: 0x6dff1420, 0x37943: 0x6dff1620, + 0x37944: 0x6dff1820, 0x37945: 0x6e112220, 0x37946: 0x6e112420, 0x37947: 0x6e112620, + 0x37948: 0x6e112820, 0x37949: 0x6e112a20, 0x3794a: 0x6e112c20, 0x3794b: 0x6e112e20, + 0x3794c: 0x6e113020, 0x3794d: 0x6e113220, 0x3794e: 0x6e113420, 0x3794f: 0x6e113620, + 0x37950: 0x6e113820, 0x37951: 0x6e113a20, 0x37952: 0x6e113c20, 0x37953: 0x6e113e20, + 0x37954: 0x6e114020, 0x37955: 0x6e114220, 0x37956: 0x6e114420, 0x37957: 0x6e114620, + 0x37958: 0x6e114820, 0x37959: 0x6e114a20, 0x3795a: 0x6e114c20, 0x3795b: 0x6e114e20, + 0x3795c: 0x6e115020, 0x3795d: 0x6e115220, 0x3795e: 0x6e115420, 0x3795f: 0x6e115620, + 0x37960: 0x6e115820, 0x37961: 0x6e115a20, 0x37962: 0x6e115c20, 0x37963: 0x6e115e20, + 0x37964: 0x6e116020, 0x37965: 0x6e116220, 0x37966: 0x6e116420, 0x37967: 0x6e116620, + 0x37968: 0x6e116820, 0x37969: 0x6e116a20, 0x3796a: 0x6e116c20, 0x3796b: 0x6e116e20, + 0x3796c: 0x6e117020, 0x3796d: 0x6e117220, 0x3796e: 0x6e117420, 0x3796f: 0x6e117620, + 0x37970: 0x6e117820, 0x37971: 0x6e117a20, 0x37972: 0x6e117c20, 0x37973: 0x6e117e20, + 0x37974: 0x6e118020, 0x37975: 0x6e1fa220, 0x37976: 0x6e1fa420, 0x37977: 0x6e1fa620, + 0x37978: 0x6e1fa820, 0x37979: 0x6e1faa20, 0x3797a: 0x6e1fac20, 0x3797b: 0x6e1fae20, + 0x3797c: 0x6e1fb020, 0x3797d: 0x6e1fb220, 0x3797e: 0x6e1fb420, 0x3797f: 0x6e1fb620, + // Block 0xde6, offset 0x37980 + 0x37980: 0x6e1fb820, 0x37981: 0x6e1fba20, 0x37982: 0x6e1fbc20, 0x37983: 0x6e1fbe20, + 0x37984: 0x6e1fc020, 0x37985: 0x6e1fc220, 0x37986: 0x6e1fc420, 0x37987: 0x6e1fc620, + 0x37988: 0x6e1fc820, 0x37989: 0x6e1fca20, 0x3798a: 0x6e1fcc20, 0x3798b: 0x6e1fce20, + 0x3798c: 0x6e1fd020, 0x3798d: 0x6e1fd220, 0x3798e: 0x6e1fd420, 0x3798f: 0x6e1fd620, + 0x37990: 0x6e1fd820, 0x37991: 0x6e1fda20, 0x37992: 0x6e1fdc20, 0x37993: 0x6e1fde20, + 0x37994: 0x6e2ada20, 0x37995: 0x6e2adc20, 0x37996: 0x6e2ade20, 0x37997: 0x6e2ae020, + 0x37998: 0x6e2ae220, 0x37999: 0x6e2ae420, 0x3799a: 0x6e2ae620, 0x3799b: 0x6e2ae820, + 0x3799c: 0x6e2aea20, 0x3799d: 0x6e2aec20, 0x3799e: 0x6e2aee20, 0x3799f: 0x6e2af020, + 0x379a0: 0x6e2af220, 0x379a1: 0x6e2af420, 0x379a2: 0x6e2af620, 0x379a3: 0x6e2af820, + 0x379a4: 0x6e2afa20, 0x379a5: 0x6e2afc20, 0x379a6: 0x6e2afe20, 0x379a7: 0x6e2b0020, + 0x379a8: 0x6e335620, 0x379a9: 0x6e335820, 0x379aa: 0x6e335a20, 0x379ab: 0x6e335c20, + 0x379ac: 0x6e335e20, 0x379ad: 0x6e336020, 0x379ae: 0x6e336220, 0x379af: 0x6e336420, + 0x379b0: 0x6e336620, 0x379b1: 0x6e336820, 0x379b2: 0x6e336a20, 0x379b3: 0x6e336c20, + 0x379b4: 0x6e336e20, 0x379b5: 0x6e337020, 0x379b6: 0x6e337220, 0x379b7: 0x6e337420, + 0x379b8: 0x6e337620, 0x379b9: 0x6e337820, 0x379ba: 0x6e337a20, 0x379bb: 0x6e337c20, + 0x379bc: 0x6e396a20, 0x379bd: 0x6e396c20, 0x379be: 0x6e396e20, 0x379bf: 0x6e397020, + // Block 0xde7, offset 0x379c0 + 0x379c0: 0x6e397220, 0x379c1: 0x6e397420, 0x379c2: 0x6e397620, 0x379c3: 0x6e397820, + 0x379c4: 0x6e397a20, 0x379c5: 0x6e397c20, 0x379c6: 0x6e397e20, 0x379c7: 0x6e398020, + 0x379c8: 0x6e3db220, 0x379c9: 0x6e3db420, 0x379ca: 0x6e3db620, 0x379cb: 0x6e3db820, + 0x379cc: 0x6e3dba20, 0x379cd: 0x6e3dbc20, 0x379ce: 0x6e3dbe20, 0x379cf: 0x6e3dc020, + 0x379d0: 0x6e409020, 0x379d1: 0x6e409220, 0x379d2: 0x6e409420, 0x379d3: 0x6e409620, + 0x379d4: 0x6e409820, 0x379d5: 0x6e409a20, 0x379d6: 0x6e409c20, 0x379d7: 0x6e42d420, + 0x379d8: 0x6e445020, 0x379d9: 0x6e445220, 0x379da: 0x6e42d620, 0x379db: 0x6e42d820, + 0x379dc: 0x6e42da20, 0x379dd: 0x6e42dc20, 0x379de: 0x6e445420, 0x379df: 0x6e445620, + 0x379e0: 0x6e445820, 0x379e1: 0x6e453620, 0x379e2: 0x6e453820, 0x379e3: 0x6e45c620, + 0x379e4: 0x6e463820, 0x379e5: 0x6c259620, 0x379e6: 0x6c259820, 0x379e7: 0x6c3dae20, + 0x379e8: 0x6c3db020, 0x379e9: 0x6c3db220, 0x379ea: 0x6c3db420, 0x379eb: 0x6c5c4a20, + 0x379ec: 0x6c5c4c20, 0x379ed: 0x6c5c4e20, 0x379ee: 0x6c5c5020, 0x379ef: 0x6c5c5220, + 0x379f0: 0x6c5c5420, 0x379f1: 0x6c5c5620, 0x379f2: 0x6c5c5820, 0x379f3: 0x6c7fcc20, + 0x379f4: 0x6c7fce20, 0x379f5: 0x6c7fd020, 0x379f6: 0x6c7fd220, 0x379f7: 0x6c7fd420, + 0x379f8: 0x6c7fd620, 0x379f9: 0x6c7fd820, 0x379fa: 0x6c7fda20, 0x379fb: 0x6c7fdc20, + 0x379fc: 0x6c7fde20, 0x379fd: 0x6c7fe020, 0x379fe: 0x6c7fe220, 0x379ff: 0x6c7fe420, + // Block 0xde8, offset 0x37a00 + 0x37a00: 0x6c7fe620, 0x37a01: 0x6ca8b620, 0x37a02: 0x6ca8b820, 0x37a03: 0x6ca8ba20, + 0x37a04: 0x6ca8bc20, 0x37a05: 0x6ca8be20, 0x37a06: 0x6ca8c020, 0x37a07: 0x6ca8c220, + 0x37a08: 0x6ca8c420, 0x37a09: 0x6ca8c620, 0x37a0a: 0x6ca8c820, 0x37a0b: 0x6ca8ca20, + 0x37a0c: 0x6ca8cc20, 0x37a0d: 0x6ca8ce20, 0x37a0e: 0x6ca8d020, 0x37a0f: 0x6ca8d220, + 0x37a10: 0x6ca8d420, 0x37a11: 0x6ca8d620, 0x37a12: 0x6ca8d820, 0x37a13: 0x6ca8da20, + 0x37a14: 0x6ca8dc20, 0x37a15: 0x6ca8de20, 0x37a16: 0x6ca8e020, 0x37a17: 0x6cd70a20, + 0x37a18: 0x6ca8e220, 0x37a19: 0x6ca8e420, 0x37a1a: 0x6cd70c20, 0x37a1b: 0x6cd70e20, + 0x37a1c: 0x6cd71020, 0x37a1d: 0x6cd71220, 0x37a1e: 0x6cd71420, 0x37a1f: 0x6cd71620, + 0x37a20: 0x6cd71820, 0x37a21: 0x6cd71a20, 0x37a22: 0x6cd71c20, 0x37a23: 0x6cd71e20, + 0x37a24: 0x6cd72020, 0x37a25: 0x6cd72220, 0x37a26: 0x6cd72420, 0x37a27: 0x6cd72620, + 0x37a28: 0x6cd72820, 0x37a29: 0x6cd72a20, 0x37a2a: 0x6cd72c20, 0x37a2b: 0x6cd72e20, + 0x37a2c: 0x6cd73020, 0x37a2d: 0x6cd73220, 0x37a2e: 0x6cd73420, 0x37a2f: 0x6cd73620, + 0x37a30: 0x6cd73820, 0x37a31: 0x6ca8e620, 0x37a32: 0x6d05b620, 0x37a33: 0x6d05b820, + 0x37a34: 0x6d05ba20, 0x37a35: 0x6d05bc20, 0x37a36: 0x6d05be20, 0x37a37: 0x6d05c020, + 0x37a38: 0x6d05c220, 0x37a39: 0x6d05c420, 0x37a3a: 0x6d05c620, 0x37a3b: 0x6d05c820, + 0x37a3c: 0x6d05ca20, 0x37a3d: 0x6d05cc20, 0x37a3e: 0x6d05ce20, 0x37a3f: 0x6d05d020, + // Block 0xde9, offset 0x37a40 + 0x37a40: 0x6d05d220, 0x37a41: 0x6d05d420, 0x37a42: 0x6d05d620, 0x37a43: 0x6d05d820, + 0x37a44: 0x6d05da20, 0x37a45: 0x6d05dc20, 0x37a46: 0x6d05de20, 0x37a47: 0x6d05e020, + 0x37a48: 0x6d05e220, 0x37a49: 0x6d05e420, 0x37a4a: 0x6d05e620, 0x37a4b: 0x6d05e820, + 0x37a4c: 0x6d05ea20, 0x37a4d: 0x6d05ec20, 0x37a4e: 0x6d05ee20, 0x37a4f: 0x6d05f020, + 0x37a50: 0x6d05f220, 0x37a51: 0x6d05f420, 0x37a52: 0x6d05f620, 0x37a53: 0x6d05f820, + 0x37a54: 0x6d05fa20, 0x37a55: 0x6d05fc20, 0x37a56: 0x6d05fe20, 0x37a57: 0x6d060020, + 0x37a58: 0x6d335a20, 0x37a59: 0x6d335c20, 0x37a5a: 0x6d335e20, 0x37a5b: 0x6d336020, + 0x37a5c: 0x6d336220, 0x37a5d: 0x6d336420, 0x37a5e: 0x6d336620, 0x37a5f: 0x6d336820, + 0x37a60: 0x6d336a20, 0x37a61: 0x6d336c20, 0x37a62: 0x6d336e20, 0x37a63: 0x6d337020, + 0x37a64: 0x6d337220, 0x37a65: 0x6d337420, 0x37a66: 0x6d337620, 0x37a67: 0x6d337820, + 0x37a68: 0x6d337a20, 0x37a69: 0x6d337c20, 0x37a6a: 0x6d337e20, 0x37a6b: 0x6d338020, + 0x37a6c: 0x6d338220, 0x37a6d: 0x6d338420, 0x37a6e: 0x6d338620, 0x37a6f: 0x6d338820, + 0x37a70: 0x6d338a20, 0x37a71: 0x6d338c20, 0x37a72: 0x6d338e20, 0x37a73: 0x6d339020, + 0x37a74: 0x6d339220, 0x37a75: 0x6d339420, 0x37a76: 0x6d339620, 0x37a77: 0x6d339820, + 0x37a78: 0x6d339a20, 0x37a79: 0x6d339c20, 0x37a7a: 0x6d339e20, 0x37a7b: 0x6d33a020, + 0x37a7c: 0x6d33a220, 0x37a7d: 0x6d33a420, 0x37a7e: 0x6d33a620, 0x37a7f: 0x6d33a820, + // Block 0xdea, offset 0x37a80 + 0x37a80: 0x6d33aa20, 0x37a81: 0x6d601820, 0x37a82: 0x6d601a20, 0x37a83: 0x6d601c20, + 0x37a84: 0x6d601e20, 0x37a85: 0x6d602020, 0x37a86: 0x6d602220, 0x37a87: 0x6d602420, + 0x37a88: 0x6d602620, 0x37a89: 0x6d602820, 0x37a8a: 0x6d602a20, 0x37a8b: 0x6d602c20, + 0x37a8c: 0x6d602e20, 0x37a8d: 0x6d603020, 0x37a8e: 0x6d603220, 0x37a8f: 0x6d603420, + 0x37a90: 0x6d603620, 0x37a91: 0x6d603820, 0x37a92: 0x6d603a20, 0x37a93: 0x6d603c20, + 0x37a94: 0x6d603e20, 0x37a95: 0x6d604020, 0x37a96: 0x6d604220, 0x37a97: 0x6d604420, + 0x37a98: 0x6d604620, 0x37a99: 0x6d604820, 0x37a9a: 0x6d604a20, 0x37a9b: 0x6d604c20, + 0x37a9c: 0x6d604e20, 0x37a9d: 0x6d605020, 0x37a9e: 0x6d605220, 0x37a9f: 0x6d605420, + 0x37aa0: 0x6d605620, 0x37aa1: 0x6d605820, 0x37aa2: 0x6d605a20, 0x37aa3: 0x6d605c20, + 0x37aa4: 0x6d8a6e20, 0x37aa5: 0x6d8a7020, 0x37aa6: 0x6d8a7220, 0x37aa7: 0x6d8a7420, + 0x37aa8: 0x6d8a7620, 0x37aa9: 0x6d8a7820, 0x37aaa: 0x6d8a7a20, 0x37aab: 0x6d8a7c20, + 0x37aac: 0x6d8a7e20, 0x37aad: 0x6d8a8020, 0x37aae: 0x6d8a8220, 0x37aaf: 0x6d8a8420, + 0x37ab0: 0x6d8a8620, 0x37ab1: 0x6d8a8820, 0x37ab2: 0x6d8a8a20, 0x37ab3: 0x6d8a8c20, + 0x37ab4: 0x6d8a8e20, 0x37ab5: 0x6d8a9020, 0x37ab6: 0x6d8a9220, 0x37ab7: 0x6d8a9420, + 0x37ab8: 0x6d8a9620, 0x37ab9: 0x6d8a9820, 0x37aba: 0x6d8a9a20, 0x37abb: 0x6d8a9c20, + 0x37abc: 0x6d8a9e20, 0x37abd: 0x6d8aa020, 0x37abe: 0x6d8aa220, 0x37abf: 0x6daeea20, + // Block 0xdeb, offset 0x37ac0 + 0x37ac0: 0x6daeec20, 0x37ac1: 0x6daeee20, 0x37ac2: 0x6daef020, 0x37ac3: 0x6daef220, + 0x37ac4: 0x6daef420, 0x37ac5: 0x6daef620, 0x37ac6: 0x6daef820, 0x37ac7: 0x6daefa20, + 0x37ac8: 0x6daefc20, 0x37ac9: 0x6daefe20, 0x37aca: 0x6daf0020, 0x37acb: 0x6daf0220, + 0x37acc: 0x6daf0420, 0x37acd: 0x6daf0620, 0x37ace: 0x6daf0820, 0x37acf: 0x6daf0a20, + 0x37ad0: 0x6daf0c20, 0x37ad1: 0x6daf0e20, 0x37ad2: 0x6daf1020, 0x37ad3: 0x6daf1220, + 0x37ad4: 0x6daf1420, 0x37ad5: 0x6daf1620, 0x37ad6: 0x6daf1820, 0x37ad7: 0x6dce7c20, + 0x37ad8: 0x6dce7e20, 0x37ad9: 0x6dce8020, 0x37ada: 0x6dce8220, 0x37adb: 0x6dce8420, + 0x37adc: 0x6dce8620, 0x37add: 0x6dce8820, 0x37ade: 0x6dce8a20, 0x37adf: 0x6dce8c20, + 0x37ae0: 0x6dce8e20, 0x37ae1: 0x6dce9020, 0x37ae2: 0x6dce9220, 0x37ae3: 0x6dce9420, + 0x37ae4: 0x6dce9620, 0x37ae5: 0x6dce9820, 0x37ae6: 0x6dce9a20, 0x37ae7: 0x6dce9c20, + 0x37ae8: 0x6dce9e20, 0x37ae9: 0x6dcea020, 0x37aea: 0x6dcea220, 0x37aeb: 0x6dcea420, + 0x37aec: 0x6dcea620, 0x37aed: 0x6dcea820, 0x37aee: 0x6dceaa20, 0x37aef: 0x6dceac20, + 0x37af0: 0x6dceae20, 0x37af1: 0x6dceb020, 0x37af2: 0x6dceb220, 0x37af3: 0x6dceb420, + 0x37af4: 0x6dceb620, 0x37af5: 0x6dceb820, 0x37af6: 0x6de8d220, 0x37af7: 0x6de8d420, + 0x37af8: 0x6de8d620, 0x37af9: 0x6de8d820, 0x37afa: 0x6de8da20, 0x37afb: 0x6de8dc20, + 0x37afc: 0x6de8de20, 0x37afd: 0x6de8e020, 0x37afe: 0x6de8e220, 0x37aff: 0x6de8e420, + // Block 0xdec, offset 0x37b00 + 0x37b00: 0x6de8e620, 0x37b01: 0x6de8e820, 0x37b02: 0x6de8ea20, 0x37b03: 0x6de8ec20, + 0x37b04: 0x6de8ee20, 0x37b05: 0x6de8f020, 0x37b06: 0x6de8f220, 0x37b07: 0x6de8f420, + 0x37b08: 0x6de8f620, 0x37b09: 0x6de8f820, 0x37b0a: 0x6de8fa20, 0x37b0b: 0x6de8fc20, + 0x37b0c: 0x6de8fe20, 0x37b0d: 0x6de90020, 0x37b0e: 0x6de90220, 0x37b0f: 0x6dff2620, + 0x37b10: 0x6dff2820, 0x37b11: 0x6dff2a20, 0x37b12: 0x6dff2c20, 0x37b13: 0x6dff2e20, + 0x37b14: 0x6dff3020, 0x37b15: 0x6dff3220, 0x37b16: 0x6dff3420, 0x37b17: 0x6e118e20, + 0x37b18: 0x6e119020, 0x37b19: 0x6e119220, 0x37b1a: 0x6e119420, 0x37b1b: 0x6e119620, + 0x37b1c: 0x6e119820, 0x37b1d: 0x6e119a20, 0x37b1e: 0x6e119c20, 0x37b1f: 0x6e119e20, + 0x37b20: 0x6e11a020, 0x37b21: 0x6e1fe820, 0x37b22: 0x6e11a220, 0x37b23: 0x6e11a420, + 0x37b24: 0x6e1fea20, 0x37b25: 0x6e1fec20, 0x37b26: 0x6e1fee20, 0x37b27: 0x6e1ff020, + 0x37b28: 0x6e1ff220, 0x37b29: 0x6e1ff420, 0x37b2a: 0x6e1ff620, 0x37b2b: 0x6e1ff820, + 0x37b2c: 0x6e2b0a20, 0x37b2d: 0x6e2b0c20, 0x37b2e: 0x6e2b0e20, 0x37b2f: 0x6e2b1020, + 0x37b30: 0x6e2b1220, 0x37b31: 0x6e338020, 0x37b32: 0x6e338220, 0x37b33: 0x6e338420, + 0x37b34: 0x6e338620, 0x37b35: 0x6e338820, 0x37b36: 0x6e398a20, 0x37b37: 0x6e398c20, + 0x37b38: 0x6e398e20, 0x37b39: 0x6e399020, 0x37b3a: 0x6e399220, 0x37b3b: 0x6e3dc420, + 0x37b3c: 0x6e3dc620, 0x37b3d: 0x6e3dc820, 0x37b3e: 0x6e3dca20, 0x37b3f: 0x6e3dcc20, + // Block 0xded, offset 0x37b40 + 0x37b40: 0x6e40a020, 0x37b41: 0x6e40a220, 0x37b42: 0x6e453a20, 0x37b43: 0x6e45c820, + 0x37b44: 0x6e468a20, 0x37b45: 0x6c3dc420, 0x37b46: 0x6c3dc620, 0x37b47: 0x6c3dc820, + 0x37b48: 0x6c3dca20, 0x37b49: 0x6c3dcc20, 0x37b4a: 0x6c3dce20, 0x37b4b: 0x6c3dd020, + 0x37b4c: 0x6c5c7a20, 0x37b4d: 0x6c5c7c20, 0x37b4e: 0x6c5c7e20, 0x37b4f: 0x6c5c8020, + 0x37b50: 0x6c5c8220, 0x37b51: 0x6c5c8420, 0x37b52: 0x6c5c8620, 0x37b53: 0x6c5c8820, + 0x37b54: 0x6c5c8a20, 0x37b55: 0x6c5c8c20, 0x37b56: 0x6c5c8e20, 0x37b57: 0x6c5c9020, + 0x37b58: 0x6c5c9220, 0x37b59: 0x6c804620, 0x37b5a: 0x6c804820, 0x37b5b: 0x6c804a20, + 0x37b5c: 0x6c804c20, 0x37b5d: 0x6c804e20, 0x37b5e: 0x6c805020, 0x37b5f: 0x6c805220, + 0x37b60: 0x6c805420, 0x37b61: 0x6c805620, 0x37b62: 0x6c805820, 0x37b63: 0x6c805a20, + 0x37b64: 0x6c805c20, 0x37b65: 0x6c805e20, 0x37b66: 0x6c806020, 0x37b67: 0x6c806220, + 0x37b68: 0x6c806420, 0x37b69: 0x6c806620, 0x37b6a: 0x6c806820, 0x37b6b: 0x6c806a20, + 0x37b6c: 0x6c806c20, 0x37b6d: 0x6c806e20, 0x37b6e: 0x6c807020, 0x37b6f: 0x6c807220, + 0x37b70: 0x6c807420, 0x37b71: 0x6c807620, 0x37b72: 0x6c807820, 0x37b73: 0x6c807a20, + 0x37b74: 0x6c807c20, 0x37b75: 0x6c807e20, 0x37b76: 0x6c808020, 0x37b77: 0x6c808220, + 0x37b78: 0x6c808420, 0x37b79: 0x6c808620, 0x37b7a: 0x6c808820, 0x37b7b: 0x6c808a20, + 0x37b7c: 0x6c808c20, 0x37b7d: 0x6c808e20, 0x37b7e: 0x6c809020, 0x37b7f: 0x6c809220, + // Block 0xdee, offset 0x37b80 + 0x37b80: 0x6c809420, 0x37b81: 0x6c809620, 0x37b82: 0x6c809820, 0x37b83: 0x6ca95220, + 0x37b84: 0x6ca95420, 0x37b85: 0x6ca95620, 0x37b86: 0x6ca95820, 0x37b87: 0x6ca95a20, + 0x37b88: 0x6ca95c20, 0x37b89: 0x6ca95e20, 0x37b8a: 0x6ca96020, 0x37b8b: 0x6ca96220, + 0x37b8c: 0x6ca96420, 0x37b8d: 0x6ca96620, 0x37b8e: 0x6ca96820, 0x37b8f: 0x6ca96a20, + 0x37b90: 0x6ca96c20, 0x37b91: 0x6ca96e20, 0x37b92: 0x6ca97020, 0x37b93: 0x6ca97220, + 0x37b94: 0x6ca97420, 0x37b95: 0x6ca97620, 0x37b96: 0x6ca97820, 0x37b97: 0x6ca97a20, + 0x37b98: 0x6ca97c20, 0x37b99: 0x6ca97e20, 0x37b9a: 0x6ca98020, 0x37b9b: 0x6ca98220, + 0x37b9c: 0x6ca98420, 0x37b9d: 0x6ca98620, 0x37b9e: 0x6ca98820, 0x37b9f: 0x6ca98a20, + 0x37ba0: 0x6ca98c20, 0x37ba1: 0x6ca98e20, 0x37ba2: 0x6ca99020, 0x37ba3: 0x6ca99220, + 0x37ba4: 0x6ca99420, 0x37ba5: 0x6ca99620, 0x37ba6: 0x6cd7ae20, 0x37ba7: 0x6cd7b020, + 0x37ba8: 0x6cd7b220, 0x37ba9: 0x6cd7b420, 0x37baa: 0x6cd7b620, 0x37bab: 0x6cd7b820, + 0x37bac: 0x6cd7ba20, 0x37bad: 0x6cd7bc20, 0x37bae: 0x6cd7be20, 0x37baf: 0x6cd7c020, + 0x37bb0: 0x6cd7c220, 0x37bb1: 0x6cd7c420, 0x37bb2: 0x6cd7c620, 0x37bb3: 0x6cd7c820, + 0x37bb4: 0x6cd7ca20, 0x37bb5: 0x6cd7cc20, 0x37bb6: 0x6cd7ce20, 0x37bb7: 0x6cd7d020, + 0x37bb8: 0x6cd7d220, 0x37bb9: 0x6cd7d420, 0x37bba: 0x6cd7d620, 0x37bbb: 0x6cd7d820, + 0x37bbc: 0x6cd7da20, 0x37bbd: 0x6cd7dc20, 0x37bbe: 0x6cd7de20, 0x37bbf: 0x6cd7e020, + // Block 0xdef, offset 0x37bc0 + 0x37bc0: 0x6cd7e220, 0x37bc1: 0x6cd7e420, 0x37bc2: 0x6cd7e620, 0x37bc3: 0x6cd7e820, + 0x37bc4: 0x6cd7ea20, 0x37bc5: 0x6cd7ec20, 0x37bc6: 0x6cd7ee20, 0x37bc7: 0x6cd7f020, + 0x37bc8: 0x6cd7f220, 0x37bc9: 0x6cd7f420, 0x37bca: 0x6cd7f620, 0x37bcb: 0x6cd7f820, + 0x37bcc: 0x6cd7fa20, 0x37bcd: 0x6cd7fc20, 0x37bce: 0x6cd7fe20, 0x37bcf: 0x6cd80020, + 0x37bd0: 0x6cd80220, 0x37bd1: 0x6cd80420, 0x37bd2: 0x6d065a20, 0x37bd3: 0x6d065c20, + 0x37bd4: 0x6d065e20, 0x37bd5: 0x6d066020, 0x37bd6: 0x6d066220, 0x37bd7: 0x6d066420, + 0x37bd8: 0x6d066620, 0x37bd9: 0x6d066820, 0x37bda: 0x6d066a20, 0x37bdb: 0x6d066c20, + 0x37bdc: 0x6d066e20, 0x37bdd: 0x6d067020, 0x37bde: 0x6d067220, 0x37bdf: 0x6d067420, + 0x37be0: 0x6d067620, 0x37be1: 0x6d067820, 0x37be2: 0x6d067a20, 0x37be3: 0x6d067c20, + 0x37be4: 0x6d067e20, 0x37be5: 0x6d068020, 0x37be6: 0x6d068220, 0x37be7: 0x6d068420, + 0x37be8: 0x6d068620, 0x37be9: 0x6d068820, 0x37bea: 0x6d068a20, 0x37beb: 0x6d068c20, + 0x37bec: 0x6d068e20, 0x37bed: 0x6d069020, 0x37bee: 0x6d069220, 0x37bef: 0x6d069420, + 0x37bf0: 0x6d069620, 0x37bf1: 0x6d069820, 0x37bf2: 0x6d069a20, 0x37bf3: 0x6d069c20, + 0x37bf4: 0x6d069e20, 0x37bf5: 0x6d06a020, 0x37bf6: 0x6d06a220, 0x37bf7: 0x6d06a420, + 0x37bf8: 0x6d06a620, 0x37bf9: 0x6d06a820, 0x37bfa: 0x6d06aa20, 0x37bfb: 0x6d06ac20, + 0x37bfc: 0x6d06ae20, 0x37bfd: 0x6d06b020, 0x37bfe: 0x6d06b220, 0x37bff: 0x6d06b420, + // Block 0xdf0, offset 0x37c00 + 0x37c00: 0x6d06b620, 0x37c01: 0x6d06b820, 0x37c02: 0x6d06ba20, 0x37c03: 0x6d06bc20, + 0x37c04: 0x6d06be20, 0x37c05: 0x6d06c020, 0x37c06: 0x6d344020, 0x37c07: 0x6d344220, + 0x37c08: 0x6d344420, 0x37c09: 0x6d344620, 0x37c0a: 0x6d344820, 0x37c0b: 0x6d344a20, + 0x37c0c: 0x6d344c20, 0x37c0d: 0x6d344e20, 0x37c0e: 0x6d345020, 0x37c0f: 0x6d345220, + 0x37c10: 0x6d345420, 0x37c11: 0x6d345620, 0x37c12: 0x6d345820, 0x37c13: 0x6d345a20, + 0x37c14: 0x6d345c20, 0x37c15: 0x6d345e20, 0x37c16: 0x6d346020, 0x37c17: 0x6d346220, + 0x37c18: 0x6d346420, 0x37c19: 0x6d346620, 0x37c1a: 0x6d346820, 0x37c1b: 0x6d346a20, + 0x37c1c: 0x6d346c20, 0x37c1d: 0x6d346e20, 0x37c1e: 0x6d347020, 0x37c1f: 0x6d347220, + 0x37c20: 0x6d347420, 0x37c21: 0x6d347620, 0x37c22: 0x6d347820, 0x37c23: 0x6d347a20, + 0x37c24: 0x6d347c20, 0x37c25: 0x6d347e20, 0x37c26: 0x6d348020, 0x37c27: 0x6d348220, + 0x37c28: 0x6d348420, 0x37c29: 0x6d348620, 0x37c2a: 0x6d348820, 0x37c2b: 0x6d348a20, + 0x37c2c: 0x6d348c20, 0x37c2d: 0x6d348e20, 0x37c2e: 0x6d349020, 0x37c2f: 0x6d349220, + 0x37c30: 0x6d349420, 0x37c31: 0x6d349620, 0x37c32: 0x6d349820, 0x37c33: 0x6d349a20, + 0x37c34: 0x6d349c20, 0x37c35: 0x6d349e20, 0x37c36: 0x6d34a020, 0x37c37: 0x6d34a220, + 0x37c38: 0x6d34a420, 0x37c39: 0x6d34a620, 0x37c3a: 0x6d34a820, 0x37c3b: 0x6d34aa20, + 0x37c3c: 0x6d34ac20, 0x37c3d: 0x6d34ae20, 0x37c3e: 0x6d34b020, 0x37c3f: 0x6d34b220, + // Block 0xdf1, offset 0x37c40 + 0x37c40: 0x6d60ee20, 0x37c41: 0x6d60f020, 0x37c42: 0x6d60f220, 0x37c43: 0x6d60f420, + 0x37c44: 0x6d60f620, 0x37c45: 0x6d60f820, 0x37c46: 0x6d60fa20, 0x37c47: 0x6d60fc20, + 0x37c48: 0x6d60fe20, 0x37c49: 0x6d610020, 0x37c4a: 0x6d610220, 0x37c4b: 0x6d610420, + 0x37c4c: 0x6d610620, 0x37c4d: 0x6d610820, 0x37c4e: 0x6d610a20, 0x37c4f: 0x6d610c20, + 0x37c50: 0x6d610e20, 0x37c51: 0x6d611020, 0x37c52: 0x6d611220, 0x37c53: 0x6d611420, + 0x37c54: 0x6d611620, 0x37c55: 0x6d611820, 0x37c56: 0x6d611a20, 0x37c57: 0x6d611c20, + 0x37c58: 0x6d611e20, 0x37c59: 0x6d612020, 0x37c5a: 0x6d612220, 0x37c5b: 0x6d612420, + 0x37c5c: 0x6d612620, 0x37c5d: 0x6d612820, 0x37c5e: 0x6d612a20, 0x37c5f: 0x6d612c20, + 0x37c60: 0x6d612e20, 0x37c61: 0x6d613020, 0x37c62: 0x6d613220, 0x37c63: 0x6d613420, + 0x37c64: 0x6d613620, 0x37c65: 0x6d613820, 0x37c66: 0x6d613a20, 0x37c67: 0x6d8afc20, + 0x37c68: 0x6d613c20, 0x37c69: 0x6d613e20, 0x37c6a: 0x6d614020, 0x37c6b: 0x6d614220, + 0x37c6c: 0x6d614420, 0x37c6d: 0x6d614620, 0x37c6e: 0x6d614820, 0x37c6f: 0x6d614a20, + 0x37c70: 0x6d614c20, 0x37c71: 0x6d614e20, 0x37c72: 0x6d615020, 0x37c73: 0x6d615220, + 0x37c74: 0x6d615420, 0x37c75: 0x6d615620, 0x37c76: 0x6d615820, 0x37c77: 0x6d615a20, + 0x37c78: 0x6d615c20, 0x37c79: 0x6d615e20, 0x37c7a: 0x6d616020, 0x37c7b: 0x6d616220, + 0x37c7c: 0x6d616420, 0x37c7d: 0x6d616620, 0x37c7e: 0x6d616820, 0x37c7f: 0x6d616a20, + // Block 0xdf2, offset 0x37c80 + 0x37c80: 0x6d616c20, 0x37c81: 0x6d616e20, 0x37c82: 0x6d8afe20, 0x37c83: 0x6d8b0020, + 0x37c84: 0x6d8b0220, 0x37c85: 0x6d8b0420, 0x37c86: 0x6d8b0620, 0x37c87: 0x6d8b0820, + 0x37c88: 0x6d8b0a20, 0x37c89: 0x6d8b0c20, 0x37c8a: 0x6d8b0e20, 0x37c8b: 0x6d8b1020, + 0x37c8c: 0x6d8b1220, 0x37c8d: 0x6d8b1420, 0x37c8e: 0x6d8b1620, 0x37c8f: 0x6d8b1820, + 0x37c90: 0x6d8b1a20, 0x37c91: 0x6d8b1c20, 0x37c92: 0x6d8b1e20, 0x37c93: 0x6d8b2020, + 0x37c94: 0x6d8b2220, 0x37c95: 0x6d8b2420, 0x37c96: 0x6d8b2620, 0x37c97: 0x6d8b2820, + 0x37c98: 0x6d8b2a20, 0x37c99: 0x6d8b2c20, 0x37c9a: 0x6d8b2e20, 0x37c9b: 0x6d8b3020, + 0x37c9c: 0x6d8b3220, 0x37c9d: 0x6d8b3420, 0x37c9e: 0x6d8b3620, 0x37c9f: 0x6d8b3820, + 0x37ca0: 0x6d8b3a20, 0x37ca1: 0x6d8b3c20, 0x37ca2: 0x6d8b3e20, 0x37ca3: 0x6d8b4020, + 0x37ca4: 0x6d8b4220, 0x37ca5: 0x6d8b4420, 0x37ca6: 0x6d8b4620, 0x37ca7: 0x6d8b4820, + 0x37ca8: 0x6d8b4a20, 0x37ca9: 0x6d8b4c20, 0x37caa: 0x6d8b4e20, 0x37cab: 0x6d8b5020, + 0x37cac: 0x6d8b5220, 0x37cad: 0x6d8b5420, 0x37cae: 0x6d8b5620, 0x37caf: 0x6d8b5820, + 0x37cb0: 0x6d8b5a20, 0x37cb1: 0x6d8b5c20, 0x37cb2: 0x6d8b5e20, 0x37cb3: 0x6d8b6020, + 0x37cb4: 0x6d8b6220, 0x37cb5: 0x6d8b6420, 0x37cb6: 0x6d8b6620, 0x37cb7: 0x6d8b6820, + 0x37cb8: 0x6d8b6a20, 0x37cb9: 0x6d8b6c20, 0x37cba: 0x6d8b6e20, 0x37cbb: 0x6d8b7020, + 0x37cbc: 0x6d8b7220, 0x37cbd: 0x6d8b7420, 0x37cbe: 0x6d8b7620, 0x37cbf: 0x6d8b7820, + // Block 0xdf3, offset 0x37cc0 + 0x37cc0: 0x6d8b7a20, 0x37cc1: 0x6d8b7c20, 0x37cc2: 0x6daf7a20, 0x37cc3: 0x6d8b7e20, + 0x37cc4: 0x6d8b8020, 0x37cc5: 0x6d8b8220, 0x37cc6: 0x6d8b8420, 0x37cc7: 0x6d8b8620, + 0x37cc8: 0x6d8b8820, 0x37cc9: 0x6daf7c20, 0x37cca: 0x6daf7e20, 0x37ccb: 0x6daf8020, + 0x37ccc: 0x6daf8220, 0x37ccd: 0x6daf8420, 0x37cce: 0x6daf8620, 0x37ccf: 0x6daf8820, + 0x37cd0: 0x6daf8a20, 0x37cd1: 0x6daf8c20, 0x37cd2: 0x6daf8e20, 0x37cd3: 0x6daf9020, + 0x37cd4: 0x6daf9220, 0x37cd5: 0x6daf9420, 0x37cd6: 0x6daf9620, 0x37cd7: 0x6daf9820, + 0x37cd8: 0x6daf9a20, 0x37cd9: 0x6daf9c20, 0x37cda: 0x6daf9e20, 0x37cdb: 0x6dafa020, + 0x37cdc: 0x6dafa220, 0x37cdd: 0x6dafa420, 0x37cde: 0x6dafa620, 0x37cdf: 0x6dafa820, + 0x37ce0: 0x6dafaa20, 0x37ce1: 0x6dafac20, 0x37ce2: 0x6dafae20, 0x37ce3: 0x6dafb020, + 0x37ce4: 0x6dafb220, 0x37ce5: 0x6dafb420, 0x37ce6: 0x6dafb620, 0x37ce7: 0x6dafb820, + 0x37ce8: 0x6dafba20, 0x37ce9: 0x6dafbc20, 0x37cea: 0x6dafbe20, 0x37ceb: 0x6dafc020, + 0x37cec: 0x6dafc220, 0x37ced: 0x6dafc420, 0x37cee: 0x6dafc620, 0x37cef: 0x6dafc820, + 0x37cf0: 0x6dafca20, 0x37cf1: 0x6dafcc20, 0x37cf2: 0x6dafce20, 0x37cf3: 0x6dafd020, + 0x37cf4: 0x6dafd220, 0x37cf5: 0x6dafd420, 0x37cf6: 0x6dafd620, 0x37cf7: 0x6dafd820, + 0x37cf8: 0x6dafda20, 0x37cf9: 0x6dafdc20, 0x37cfa: 0x6dafde20, 0x37cfb: 0x6dafe020, + 0x37cfc: 0x6dcf0020, 0x37cfd: 0x6dcf0220, 0x37cfe: 0x6dcf0420, 0x37cff: 0x6dcf0620, + // Block 0xdf4, offset 0x37d00 + 0x37d00: 0x6dcf0820, 0x37d01: 0x6dcf0a20, 0x37d02: 0x6dcf0c20, 0x37d03: 0x6dcf0e20, + 0x37d04: 0x6dcf1020, 0x37d05: 0x6dcf1220, 0x37d06: 0x6dcf1420, 0x37d07: 0x6dcf1620, + 0x37d08: 0x6dcf1820, 0x37d09: 0x6dcf1a20, 0x37d0a: 0x6dcf1c20, 0x37d0b: 0x6dcf1e20, + 0x37d0c: 0x6dcf2020, 0x37d0d: 0x6dcf2220, 0x37d0e: 0x6dcf2420, 0x37d0f: 0x6dcf2620, + 0x37d10: 0x6dcf2820, 0x37d11: 0x6dcf2a20, 0x37d12: 0x6dcf2c20, 0x37d13: 0x6dcf2e20, + 0x37d14: 0x6dcf3020, 0x37d15: 0x6dcf3220, 0x37d16: 0x6dcf3420, 0x37d17: 0x6dcf3620, + 0x37d18: 0x6dcf3820, 0x37d19: 0x6dcf3a20, 0x37d1a: 0x6dcf3c20, 0x37d1b: 0x6dcf3e20, + 0x37d1c: 0x6dcf4020, 0x37d1d: 0x6dcf4220, 0x37d1e: 0x6dcf4420, 0x37d1f: 0x6dcf4620, + 0x37d20: 0x6dcf4820, 0x37d21: 0x6dcf4a20, 0x37d22: 0x6dcf4c20, 0x37d23: 0x6dcf4e20, + 0x37d24: 0x6dcf5020, 0x37d25: 0x6dcf5220, 0x37d26: 0x6dcf5420, 0x37d27: 0x6dcf5620, + 0x37d28: 0x6dcf5820, 0x37d29: 0x6dcf5a20, 0x37d2a: 0x6dcf5c20, 0x37d2b: 0x6dcf5e20, + 0x37d2c: 0x6dcf6020, 0x37d2d: 0x6dcf6220, 0x37d2e: 0x6dcf6420, 0x37d2f: 0x6dcf6620, + 0x37d30: 0x6dcf6820, 0x37d31: 0x6dcf6a20, 0x37d32: 0x6dcf6c20, 0x37d33: 0x6dcf6e20, + 0x37d34: 0x6dcf7020, 0x37d35: 0x6de94220, 0x37d36: 0x6de94420, 0x37d37: 0x6de94620, + 0x37d38: 0x6de94820, 0x37d39: 0x6de94a20, 0x37d3a: 0x6de94c20, 0x37d3b: 0x6de94e20, + 0x37d3c: 0x6de95020, 0x37d3d: 0x6de95220, 0x37d3e: 0x6de95420, 0x37d3f: 0x6de95620, + // Block 0xdf5, offset 0x37d40 + 0x37d40: 0x6de95820, 0x37d41: 0x6de95a20, 0x37d42: 0x6de95c20, 0x37d43: 0x6de95e20, + 0x37d44: 0x6de96020, 0x37d45: 0x6de96220, 0x37d46: 0x6de96420, 0x37d47: 0x6de96620, + 0x37d48: 0x6de96820, 0x37d49: 0x6de96a20, 0x37d4a: 0x6de96c20, 0x37d4b: 0x6de96e20, + 0x37d4c: 0x6de97020, 0x37d4d: 0x6de97220, 0x37d4e: 0x6de97420, 0x37d4f: 0x6de97620, + 0x37d50: 0x6de97820, 0x37d51: 0x6de97a20, 0x37d52: 0x6de97c20, 0x37d53: 0x6de97e20, + 0x37d54: 0x6de98020, 0x37d55: 0x6de98220, 0x37d56: 0x6de98420, 0x37d57: 0x6de98620, + 0x37d58: 0x6de98820, 0x37d59: 0x6de98a20, 0x37d5a: 0x6de98c20, 0x37d5b: 0x6de98e20, + 0x37d5c: 0x6dff5420, 0x37d5d: 0x6dff5620, 0x37d5e: 0x6dff5820, 0x37d5f: 0x6dff5a20, + 0x37d60: 0x6dff5c20, 0x37d61: 0x6dff5e20, 0x37d62: 0x6dff6020, 0x37d63: 0x6dff6220, + 0x37d64: 0x6e11c420, 0x37d65: 0x6de99020, 0x37d66: 0x6dff6420, 0x37d67: 0x6dff6620, + 0x37d68: 0x6e11c620, 0x37d69: 0x6dff6820, 0x37d6a: 0x6dff6a20, 0x37d6b: 0x6e11c820, + 0x37d6c: 0x6dff6c20, 0x37d6d: 0x6dff6e20, 0x37d6e: 0x6dff7020, 0x37d6f: 0x6dff7220, + 0x37d70: 0x6dff7420, 0x37d71: 0x6dff7620, 0x37d72: 0x6dff7820, 0x37d73: 0x6dff7a20, + 0x37d74: 0x6dff7c20, 0x37d75: 0x6dff7e20, 0x37d76: 0x6dff8020, 0x37d77: 0x6dff8220, + 0x37d78: 0x6dff8420, 0x37d79: 0x6dff8620, 0x37d7a: 0x6dff8820, 0x37d7b: 0x6e11ca20, + 0x37d7c: 0x6e11cc20, 0x37d7d: 0x6e11ce20, 0x37d7e: 0x6e11d020, 0x37d7f: 0x6e11d220, + // Block 0xdf6, offset 0x37d80 + 0x37d80: 0x6e11d420, 0x37d81: 0x6e11d620, 0x37d82: 0x6e200c20, 0x37d83: 0x6e11d820, + 0x37d84: 0x6e11da20, 0x37d85: 0x6e11dc20, 0x37d86: 0x6e11de20, 0x37d87: 0x6e11e020, + 0x37d88: 0x6e11e220, 0x37d89: 0x6e11e420, 0x37d8a: 0x6e11e620, 0x37d8b: 0x6e11e820, + 0x37d8c: 0x6e11ea20, 0x37d8d: 0x6e11ec20, 0x37d8e: 0x6e11ee20, 0x37d8f: 0x6e11f020, + 0x37d90: 0x6e11f220, 0x37d91: 0x6e11f420, 0x37d92: 0x6e11f620, 0x37d93: 0x6e11f820, + 0x37d94: 0x6e200e20, 0x37d95: 0x6e201020, 0x37d96: 0x6e201220, 0x37d97: 0x6e201420, + 0x37d98: 0x6e201620, 0x37d99: 0x6e201820, 0x37d9a: 0x6e201a20, 0x37d9b: 0x6e201c20, + 0x37d9c: 0x6e201e20, 0x37d9d: 0x6e202020, 0x37d9e: 0x6e202220, 0x37d9f: 0x6e202420, + 0x37da0: 0x6e202620, 0x37da1: 0x6e202820, 0x37da2: 0x6e202a20, 0x37da3: 0x6e202c20, + 0x37da4: 0x6e202e20, 0x37da5: 0x6e203020, 0x37da6: 0x6e203220, 0x37da7: 0x6e2b1e20, + 0x37da8: 0x6e2b2020, 0x37da9: 0x6e2b2220, 0x37daa: 0x6e2b2420, 0x37dab: 0x6e2b2620, + 0x37dac: 0x6e2b2820, 0x37dad: 0x6e2b2a20, 0x37dae: 0x6e2b2c20, 0x37daf: 0x6e2b2e20, + 0x37db0: 0x6e339420, 0x37db1: 0x6e339620, 0x37db2: 0x6e339820, 0x37db3: 0x6e339a20, + 0x37db4: 0x6e339c20, 0x37db5: 0x6e339e20, 0x37db6: 0x6e33a020, 0x37db7: 0x6e33a220, + 0x37db8: 0x6e39a020, 0x37db9: 0x6e33a420, 0x37dba: 0x6e39a220, 0x37dbb: 0x6e39a420, + 0x37dbc: 0x6e3dce20, 0x37dbd: 0x6e3dd020, 0x37dbe: 0x6e40aa20, 0x37dbf: 0x6e40ac20, + // Block 0xdf7, offset 0x37dc0 + 0x37dc0: 0x6e40ae20, 0x37dc1: 0x6e40b020, 0x37dc2: 0x6e40b220, 0x37dc3: 0x6e42e020, + 0x37dc4: 0x6e42e220, 0x37dc5: 0x6e445c20, 0x37dc6: 0x6e453c20, 0x37dc7: 0x6e45ca20, + 0x37dc8: 0x6c3dfa20, 0x37dc9: 0x6c5cb820, 0x37dca: 0x6c80b020, 0x37dcb: 0x6c80b220, + 0x37dcc: 0x6c80b420, 0x37dcd: 0x6ca9d420, 0x37dce: 0x6ca9d620, 0x37dcf: 0x6ca9d820, + 0x37dd0: 0x6ca9da20, 0x37dd1: 0x6cd84020, 0x37dd2: 0x6cd84220, 0x37dd3: 0x6cd84420, + 0x37dd4: 0x6cd84620, 0x37dd5: 0x6cd84820, 0x37dd6: 0x6d06e620, 0x37dd7: 0x6d06e820, + 0x37dd8: 0x6d06ea20, 0x37dd9: 0x6d06ec20, 0x37dda: 0x6d34d620, 0x37ddb: 0x6d618820, + 0x37ddc: 0x6d618a20, 0x37ddd: 0x6d618c20, 0x37dde: 0x6d8ba020, 0x37ddf: 0x6d8ba220, + 0x37de0: 0x6dafec20, 0x37de1: 0x6dafee20, 0x37de2: 0x6c143220, 0x37de3: 0x6c5cc820, + 0x37de4: 0x6c5cca20, 0x37de5: 0x6c5ccc20, 0x37de6: 0x6c80cc20, 0x37de7: 0x6c80ce20, + 0x37de8: 0x6c80d020, 0x37de9: 0x6ca9f220, 0x37dea: 0x6ca9f420, 0x37deb: 0x6ca9f620, + 0x37dec: 0x6ca9f820, 0x37ded: 0x6ca9fa20, 0x37dee: 0x6ca9fc20, 0x37def: 0x6cd85a20, + 0x37df0: 0x6cd85c20, 0x37df1: 0x6cd85e20, 0x37df2: 0x6cd86020, 0x37df3: 0x6cd86220, + 0x37df4: 0x6d06f220, 0x37df5: 0x6d06f420, 0x37df6: 0x6d06f620, 0x37df7: 0x6d06f820, + 0x37df8: 0x6d34e820, 0x37df9: 0x6d34ea20, 0x37dfa: 0x6d34ec20, 0x37dfb: 0x6d34ee20, + 0x37dfc: 0x6d34f020, 0x37dfd: 0x6d34f220, 0x37dfe: 0x6d34f420, 0x37dff: 0x6d34f620, + // Block 0xdf8, offset 0x37e00 + 0x37e00: 0x6d34f820, 0x37e01: 0x6d619220, 0x37e02: 0x6d619420, 0x37e03: 0x6d619620, + 0x37e04: 0x6d619820, 0x37e05: 0x6d619a20, 0x37e06: 0x6d619c20, 0x37e07: 0x6d619e20, + 0x37e08: 0x6d8baa20, 0x37e09: 0x6d8bac20, 0x37e0a: 0x6d8bae20, 0x37e0b: 0x6d8bb020, + 0x37e0c: 0x6d8bb220, 0x37e0d: 0x6d8bb420, 0x37e0e: 0x6d8bb620, 0x37e0f: 0x6daffa20, + 0x37e10: 0x6daffc20, 0x37e11: 0x6daffe20, 0x37e12: 0x6db00020, 0x37e13: 0x6db00220, + 0x37e14: 0x6db00420, 0x37e15: 0x6dcf8220, 0x37e16: 0x6dcf8420, 0x37e17: 0x6dcf8620, + 0x37e18: 0x6dcf8820, 0x37e19: 0x6de9aa20, 0x37e1a: 0x6de9ac20, 0x37e1b: 0x6de9ae20, + 0x37e1c: 0x6de9b020, 0x37e1d: 0x6dff9220, 0x37e1e: 0x6dff9420, 0x37e1f: 0x6e120420, + 0x37e20: 0x6e120620, 0x37e21: 0x6e203e20, 0x37e22: 0x6e2b3420, 0x37e23: 0x6e2b3620, + 0x37e24: 0x6e2b3820, 0x37e25: 0x6e33aa20, 0x37e26: 0x6e33ac20, 0x37e27: 0x6e3dd420, + 0x37e28: 0x6e40b620, 0x37e29: 0x6e45cc20, 0x37e2a: 0x6c0a4c20, 0x37e2b: 0x6c0a4e20, + 0x37e2c: 0x6c25cc20, 0x37e2d: 0x6c0a5020, 0x37e2e: 0x6c25ce20, 0x37e2f: 0x6c143620, + 0x37e30: 0x6c0a5220, 0x37e31: 0x6c25d020, 0x37e32: 0x6c25d220, 0x37e33: 0x6c25d420, + 0x37e34: 0x6c25d620, 0x37e35: 0x6c25d820, 0x37e36: 0x6c25da20, 0x37e37: 0x6c3e0a20, + 0x37e38: 0x6c3e0c20, 0x37e39: 0x6c3e0e20, 0x37e3a: 0x6c3e1020, 0x37e3b: 0x6c3e1220, + 0x37e3c: 0x6c3e1420, 0x37e3d: 0x6c3e1620, 0x37e3e: 0x6c3e1820, 0x37e3f: 0x6c3e1a20, + // Block 0xdf9, offset 0x37e40 + 0x37e40: 0x6c3e1c20, 0x37e41: 0x6c5cda20, 0x37e42: 0x6c5cdc20, 0x37e43: 0x6c5cde20, + 0x37e44: 0x6c5ce020, 0x37e45: 0x6c5ce220, 0x37e46: 0x6c5ce420, 0x37e47: 0x6c5ce620, + 0x37e48: 0x6c5ce820, 0x37e49: 0x6c5cea20, 0x37e4a: 0x6c5cec20, 0x37e4b: 0x6c5cee20, + 0x37e4c: 0x6c5cf020, 0x37e4d: 0x6c5cf220, 0x37e4e: 0x6c80e820, 0x37e4f: 0x6c80ea20, + 0x37e50: 0x6c80ec20, 0x37e51: 0x6c80ee20, 0x37e52: 0x6c80f020, 0x37e53: 0x6c80f220, + 0x37e54: 0x6c80f420, 0x37e55: 0x6c80f620, 0x37e56: 0x6c80f820, 0x37e57: 0x6c80fa20, + 0x37e58: 0x6c80fc20, 0x37e59: 0x6c80fe20, 0x37e5a: 0x6c810020, 0x37e5b: 0x6c810220, + 0x37e5c: 0x6c810420, 0x37e5d: 0x6c810620, 0x37e5e: 0x6c810820, 0x37e5f: 0x6c810a20, + 0x37e60: 0x6c810c20, 0x37e61: 0x6c810e20, 0x37e62: 0x6c811020, 0x37e63: 0x6c811220, + 0x37e64: 0x6c6dd220, 0x37e65: 0x6c811420, 0x37e66: 0x6c811620, 0x37e67: 0x6c811820, + 0x37e68: 0x6c811a20, 0x37e69: 0x6c811c20, 0x37e6a: 0x6caa0220, 0x37e6b: 0x6caa0420, + 0x37e6c: 0x6caa0620, 0x37e6d: 0x6caa0820, 0x37e6e: 0x6caa0a20, 0x37e6f: 0x6caa0c20, + 0x37e70: 0x6caa0e20, 0x37e71: 0x6caa1020, 0x37e72: 0x6caa1220, 0x37e73: 0x6c811e20, + 0x37e74: 0x6caa1420, 0x37e75: 0x6caa1620, 0x37e76: 0x6caa1820, 0x37e77: 0x6caa1a20, + 0x37e78: 0x6caa1c20, 0x37e79: 0x6caa1e20, 0x37e7a: 0x6caa2020, 0x37e7b: 0x6caa2220, + 0x37e7c: 0x6cd86e20, 0x37e7d: 0x6cd87020, 0x37e7e: 0x6cd87220, 0x37e7f: 0x6cd87420, + // Block 0xdfa, offset 0x37e80 + 0x37e80: 0x6cd87620, 0x37e81: 0x6cd87820, 0x37e82: 0x6cd87a20, 0x37e83: 0x6cd87c20, + 0x37e84: 0x6cd87e20, 0x37e85: 0x6d071420, 0x37e86: 0x6d071620, 0x37e87: 0x6d071820, + 0x37e88: 0x6d071a20, 0x37e89: 0x6d071c20, 0x37e8a: 0x6d071e20, 0x37e8b: 0x6d072020, + 0x37e8c: 0x6d072220, 0x37e8d: 0x6d072420, 0x37e8e: 0x6d072620, 0x37e8f: 0x6d072820, + 0x37e90: 0x6d072a20, 0x37e91: 0x6cd88020, 0x37e92: 0x6d072c20, 0x37e93: 0x6d072e20, + 0x37e94: 0x6d073020, 0x37e95: 0x6d073220, 0x37e96: 0x6d073420, 0x37e97: 0x6d073620, + 0x37e98: 0x6d073820, 0x37e99: 0x6d073a20, 0x37e9a: 0x6d073c20, 0x37e9b: 0x6d073e20, + 0x37e9c: 0x6d074020, 0x37e9d: 0x6d350a20, 0x37e9e: 0x6d350c20, 0x37e9f: 0x6d350e20, + 0x37ea0: 0x6d351020, 0x37ea1: 0x6d351220, 0x37ea2: 0x6d351420, 0x37ea3: 0x6d351620, + 0x37ea4: 0x6d351820, 0x37ea5: 0x6d351a20, 0x37ea6: 0x6d351c20, 0x37ea7: 0x6d351e20, + 0x37ea8: 0x6d352020, 0x37ea9: 0x6d352220, 0x37eaa: 0x6d217020, 0x37eab: 0x6d352420, + 0x37eac: 0x6d352620, 0x37ead: 0x6d352820, 0x37eae: 0x6d352a20, 0x37eaf: 0x6d61ac20, + 0x37eb0: 0x6d61ae20, 0x37eb1: 0x6d61b020, 0x37eb2: 0x6d61b220, 0x37eb3: 0x6d61b420, + 0x37eb4: 0x6d61b620, 0x37eb5: 0x6d61b820, 0x37eb6: 0x6d61ba20, 0x37eb7: 0x6d61bc20, + 0x37eb8: 0x6d61be20, 0x37eb9: 0x6d61c020, 0x37eba: 0x6d61c220, 0x37ebb: 0x6d61c420, + 0x37ebc: 0x6d61c620, 0x37ebd: 0x6d8bc620, 0x37ebe: 0x6d8bc820, 0x37ebf: 0x6d8bca20, + // Block 0xdfb, offset 0x37ec0 + 0x37ec0: 0x6d8bcc20, 0x37ec1: 0x6d8bce20, 0x37ec2: 0x6d8bd020, 0x37ec3: 0x6d8bd220, + 0x37ec4: 0x6d8bd420, 0x37ec5: 0x6d8bd620, 0x37ec6: 0x6d8bd820, 0x37ec7: 0x6d8bda20, + 0x37ec8: 0x6d8bdc20, 0x37ec9: 0x6d8bde20, 0x37eca: 0x6d8be020, 0x37ecb: 0x6d8be220, + 0x37ecc: 0x6d8be420, 0x37ecd: 0x6d8be620, 0x37ece: 0x6d8be820, 0x37ecf: 0x6d8bea20, + 0x37ed0: 0x6d8bec20, 0x37ed1: 0x6d8bee20, 0x37ed2: 0x6db01020, 0x37ed3: 0x6db01220, + 0x37ed4: 0x6db01420, 0x37ed5: 0x6db01620, 0x37ed6: 0x6db01820, 0x37ed7: 0x6db01a20, + 0x37ed8: 0x6db01c20, 0x37ed9: 0x6db01e20, 0x37eda: 0x6db02020, 0x37edb: 0x6db02220, + 0x37edc: 0x6db02420, 0x37edd: 0x6db02620, 0x37ede: 0x6db02820, 0x37edf: 0x6dcf9020, + 0x37ee0: 0x6dcf9220, 0x37ee1: 0x6dcf9420, 0x37ee2: 0x6dcf9620, 0x37ee3: 0x6dcf9820, + 0x37ee4: 0x6dcf9a20, 0x37ee5: 0x6dcf9c20, 0x37ee6: 0x6dcf9e20, 0x37ee7: 0x6dcfa020, + 0x37ee8: 0x6dcfa220, 0x37ee9: 0x6dcfb220, 0x37eea: 0x6de9be20, 0x37eeb: 0x6de9c020, + 0x37eec: 0x6de9c220, 0x37eed: 0x6de9c420, 0x37eee: 0x6de9c620, 0x37eef: 0x6de9c820, + 0x37ef0: 0x6de9ca20, 0x37ef1: 0x6de9cc20, 0x37ef2: 0x6de9ce20, 0x37ef3: 0x6de9d020, + 0x37ef4: 0x6de9d220, 0x37ef5: 0x6dff9620, 0x37ef6: 0x6dff9820, 0x37ef7: 0x6dff9a20, + 0x37ef8: 0x6dff9c20, 0x37ef9: 0x6dff9e20, 0x37efa: 0x6dffa020, 0x37efb: 0x6e120a20, + 0x37efc: 0x6e120c20, 0x37efd: 0x6e2b3a20, 0x37efe: 0x6e33b420, 0x37eff: 0x6e33b620, + // Block 0xdfc, offset 0x37f00 + 0x37f00: 0x6e33b820, 0x37f01: 0x6e33ba20, 0x37f02: 0x6e33bc20, 0x37f03: 0x6e33be20, + 0x37f04: 0x6e33c020, 0x37f05: 0x6e33c220, 0x37f06: 0x6e3dd620, 0x37f07: 0x6e40b820, + 0x37f08: 0x6e42e420, 0x37f09: 0x6e42e620, 0x37f0a: 0x6e42e820, 0x37f0b: 0x6c143c20, + 0x37f0c: 0x6c143e20, 0x37f0d: 0x6c144020, 0x37f0e: 0x6c3e2620, 0x37f0f: 0x6c3e2820, + 0x37f10: 0x6c3e2a20, 0x37f11: 0x6c5cfe20, 0x37f12: 0x6c5d0020, 0x37f13: 0x6c5d0220, + 0x37f14: 0x6c5d0420, 0x37f15: 0x6c5d0620, 0x37f16: 0x6c5d0820, 0x37f17: 0x6c813820, + 0x37f18: 0x6c813a20, 0x37f19: 0x6c813c20, 0x37f1a: 0x6c813e20, 0x37f1b: 0x6c814020, + 0x37f1c: 0x6c814220, 0x37f1d: 0x6c814420, 0x37f1e: 0x6c814620, 0x37f1f: 0x6c814820, + 0x37f20: 0x6c814a20, 0x37f21: 0x6c814c20, 0x37f22: 0x6c814e20, 0x37f23: 0x6c815020, + 0x37f24: 0x6c815220, 0x37f25: 0x6caa4020, 0x37f26: 0x6caa4220, 0x37f27: 0x6caa4420, + 0x37f28: 0x6caa4620, 0x37f29: 0x6caa4820, 0x37f2a: 0x6caa4a20, 0x37f2b: 0x6caa4c20, + 0x37f2c: 0x6caa4e20, 0x37f2d: 0x6caa5020, 0x37f2e: 0x6c815420, 0x37f2f: 0x6caa5220, + 0x37f30: 0x6caa5420, 0x37f31: 0x6caa5620, 0x37f32: 0x6caa5820, 0x37f33: 0x6caa5a20, + 0x37f34: 0x6caa5c20, 0x37f35: 0x6caa5e20, 0x37f36: 0x6caa6020, 0x37f37: 0x6caa6220, + 0x37f38: 0x6caa6420, 0x37f39: 0x6cd88e20, 0x37f3a: 0x6cd89020, 0x37f3b: 0x6cd89220, + 0x37f3c: 0x6cd89420, 0x37f3d: 0x6cd89620, 0x37f3e: 0x6cd89820, 0x37f3f: 0x6cd89a20, + // Block 0xdfd, offset 0x37f40 + 0x37f40: 0x6cd89c20, 0x37f41: 0x6cd89e20, 0x37f42: 0x6cd8a020, 0x37f43: 0x6cd8a220, + 0x37f44: 0x6cd8a420, 0x37f45: 0x6cba3e20, 0x37f46: 0x6d075820, 0x37f47: 0x6d075a20, + 0x37f48: 0x6d075c20, 0x37f49: 0x6d075e20, 0x37f4a: 0x6d076020, 0x37f4b: 0x6d076220, + 0x37f4c: 0x6d076420, 0x37f4d: 0x6d076620, 0x37f4e: 0x6d076820, 0x37f4f: 0x6d076a20, + 0x37f50: 0x6d076c20, 0x37f51: 0x6d076e20, 0x37f52: 0x6d077020, 0x37f53: 0x6d077220, + 0x37f54: 0x6d077420, 0x37f55: 0x6d077620, 0x37f56: 0x6d077820, 0x37f57: 0x6d353a20, + 0x37f58: 0x6d353c20, 0x37f59: 0x6d353e20, 0x37f5a: 0x6d354020, 0x37f5b: 0x6d354220, + 0x37f5c: 0x6d354420, 0x37f5d: 0x6d354620, 0x37f5e: 0x6d354820, 0x37f5f: 0x6d354a20, + 0x37f60: 0x6d354c20, 0x37f61: 0x6d354e20, 0x37f62: 0x6d61d620, 0x37f63: 0x6d61d820, + 0x37f64: 0x6d61da20, 0x37f65: 0x6d61dc20, 0x37f66: 0x6d61de20, 0x37f67: 0x6d61e020, + 0x37f68: 0x6d61e220, 0x37f69: 0x6d61e420, 0x37f6a: 0x6d61e620, 0x37f6b: 0x6d61e820, + 0x37f6c: 0x6d61ea20, 0x37f6d: 0x6d61ec20, 0x37f6e: 0x6d61ee20, 0x37f6f: 0x6d8bfa20, + 0x37f70: 0x6d8bfc20, 0x37f71: 0x6d8bfe20, 0x37f72: 0x6d8c0020, 0x37f73: 0x6d8c0220, + 0x37f74: 0x6d8c0420, 0x37f75: 0x6d8c0620, 0x37f76: 0x6d8c0820, 0x37f77: 0x6db02e20, + 0x37f78: 0x6db03020, 0x37f79: 0x6db03220, 0x37f7a: 0x6db03420, 0x37f7b: 0x6db03620, + 0x37f7c: 0x6db03820, 0x37f7d: 0x6db03a20, 0x37f7e: 0x6db03c20, 0x37f7f: 0x6db03e20, + // Block 0xdfe, offset 0x37f80 + 0x37f80: 0x6db04020, 0x37f81: 0x6db04220, 0x37f82: 0x6db04420, 0x37f83: 0x6db04620, + 0x37f84: 0x6db04820, 0x37f85: 0x6dcfb420, 0x37f86: 0x6dcfb620, 0x37f87: 0x6dcfb820, + 0x37f88: 0x6dcfba20, 0x37f89: 0x6dcfbc20, 0x37f8a: 0x6dcfbe20, 0x37f8b: 0x6dcfc020, + 0x37f8c: 0x6dcfc220, 0x37f8d: 0x6dcfc420, 0x37f8e: 0x6dcfc620, 0x37f8f: 0x6dcfc820, + 0x37f90: 0x6dcfca20, 0x37f91: 0x6dcfcc20, 0x37f92: 0x6dcfce20, 0x37f93: 0x6dcfd020, + 0x37f94: 0x6dcfd220, 0x37f95: 0x6de9de20, 0x37f96: 0x6de9e020, 0x37f97: 0x6de9e220, + 0x37f98: 0x6de9e420, 0x37f99: 0x6de9e620, 0x37f9a: 0x6de9e820, 0x37f9b: 0x6de9ea20, + 0x37f9c: 0x6dffa420, 0x37f9d: 0x6dffa620, 0x37f9e: 0x6dffa820, 0x37f9f: 0x6dffaa20, + 0x37fa0: 0x6dffac20, 0x37fa1: 0x6dffae20, 0x37fa2: 0x6e121620, 0x37fa3: 0x6e121820, + 0x37fa4: 0x6e121a20, 0x37fa5: 0x6e121c20, 0x37fa6: 0x6e121e20, 0x37fa7: 0x6e122020, + 0x37fa8: 0x6e204420, 0x37fa9: 0x6e204620, 0x37faa: 0x6e2b3c20, 0x37fab: 0x6e2b3e20, + 0x37fac: 0x6e33c420, 0x37fad: 0x6e39a820, 0x37fae: 0x6e3dd820, 0x37faf: 0x6e40bc20, + 0x37fb0: 0x6e453e20, 0x37fb1: 0x6e454020, 0x37fb2: 0x6c3e2e20, 0x37fb3: 0x6c25de20, + 0x37fb4: 0x6c5d1020, 0x37fb5: 0x6c5d1220, 0x37fb6: 0x6c5d1420, 0x37fb7: 0x6c5d1620, + 0x37fb8: 0x6c5d1820, 0x37fb9: 0x6c5d1a20, 0x37fba: 0x6c5d1c20, 0x37fbb: 0x6c5d1e20, + 0x37fbc: 0x6c5d2020, 0x37fbd: 0x6c5d2220, 0x37fbe: 0x6c5d2420, 0x37fbf: 0x6c5d2620, + // Block 0xdff, offset 0x37fc0 + 0x37fc0: 0x6c5d2820, 0x37fc1: 0x6c5d2a20, 0x37fc2: 0x6c816820, 0x37fc3: 0x6c816a20, + 0x37fc4: 0x6c816c20, 0x37fc5: 0x6c816e20, 0x37fc6: 0x6c817020, 0x37fc7: 0x6c817220, + 0x37fc8: 0x6c817420, 0x37fc9: 0x6c817620, 0x37fca: 0x6c817820, 0x37fcb: 0x6c817a20, + 0x37fcc: 0x6c817c20, 0x37fcd: 0x6c817e20, 0x37fce: 0x6c818020, 0x37fcf: 0x6c818220, + 0x37fd0: 0x6c818420, 0x37fd1: 0x6c818620, 0x37fd2: 0x6c818820, 0x37fd3: 0x6c818a20, + 0x37fd4: 0x6c818c20, 0x37fd5: 0x6caa9420, 0x37fd6: 0x6caa9620, 0x37fd7: 0x6caa9820, + 0x37fd8: 0x6caa9a20, 0x37fd9: 0x6caa9c20, 0x37fda: 0x6caa9e20, 0x37fdb: 0x6caaa020, + 0x37fdc: 0x6caaa220, 0x37fdd: 0x6caaa420, 0x37fde: 0x6caaa620, 0x37fdf: 0x6caaa820, + 0x37fe0: 0x6caaaa20, 0x37fe1: 0x6caaac20, 0x37fe2: 0x6caaae20, 0x37fe3: 0x6cd8c220, + 0x37fe4: 0x6cd8c420, 0x37fe5: 0x6cd8c620, 0x37fe6: 0x6cd8c820, 0x37fe7: 0x6cd8ca20, + 0x37fe8: 0x6cd8cc20, 0x37fe9: 0x6cd8ce20, 0x37fea: 0x6cd8d020, 0x37feb: 0x6cd8d220, + 0x37fec: 0x6cd8d420, 0x37fed: 0x6cd8d620, 0x37fee: 0x6cd8d820, 0x37fef: 0x6cd8da20, + 0x37ff0: 0x6cd8dc20, 0x37ff1: 0x6cd8de20, 0x37ff2: 0x6cd8e020, 0x37ff3: 0x6cd8e220, + 0x37ff4: 0x6cd8e420, 0x37ff5: 0x6cd8e620, 0x37ff6: 0x6cd8e820, 0x37ff7: 0x6cd8ea20, + 0x37ff8: 0x6d078a20, 0x37ff9: 0x6d078c20, 0x37ffa: 0x6d078e20, 0x37ffb: 0x6d079020, + 0x37ffc: 0x6d079220, 0x37ffd: 0x6d079420, 0x37ffe: 0x6d079620, 0x37fff: 0x6d079820, + // Block 0xe00, offset 0x38000 + 0x38000: 0x6d079a20, 0x38001: 0x6d079c20, 0x38002: 0x6d079e20, 0x38003: 0x6d07a020, + 0x38004: 0x6d07a220, 0x38005: 0x6d356820, 0x38006: 0x6d07a420, 0x38007: 0x6d356a20, + 0x38008: 0x6d356c20, 0x38009: 0x6d356e20, 0x3800a: 0x6d357020, 0x3800b: 0x6d357220, + 0x3800c: 0x6d357420, 0x3800d: 0x6d357620, 0x3800e: 0x6d357820, 0x3800f: 0x6d357a20, + 0x38010: 0x6d357c20, 0x38011: 0x6d231e20, 0x38012: 0x6d357e20, 0x38013: 0x6d358020, + 0x38014: 0x6d358220, 0x38015: 0x6d358420, 0x38016: 0x6d358620, 0x38017: 0x6d358820, + 0x38018: 0x6d620620, 0x38019: 0x6d620820, 0x3801a: 0x6d620a20, 0x3801b: 0x6d620c20, + 0x3801c: 0x6d620e20, 0x3801d: 0x6d621020, 0x3801e: 0x6d621220, 0x3801f: 0x6d621420, + 0x38020: 0x6d621620, 0x38021: 0x6d621820, 0x38022: 0x6d621a20, 0x38023: 0x6d621c20, + 0x38024: 0x6d621e20, 0x38025: 0x6d622020, 0x38026: 0x6d622220, 0x38027: 0x6d622420, + 0x38028: 0x6d622620, 0x38029: 0x6d622820, 0x3802a: 0x6d622a20, 0x3802b: 0x6d622c20, + 0x3802c: 0x6d622e20, 0x3802d: 0x6d623020, 0x3802e: 0x6d623220, 0x3802f: 0x6d623420, + 0x38030: 0x6d8c1820, 0x38031: 0x6d8c1a20, 0x38032: 0x6d8c1c20, 0x38033: 0x6d8c1e20, + 0x38034: 0x6d8c2020, 0x38035: 0x6d8c2220, 0x38036: 0x6d8c2420, 0x38037: 0x6d8c2620, + 0x38038: 0x6d8c2820, 0x38039: 0x6d8c2a20, 0x3803a: 0x6d8c2c20, 0x3803b: 0x6d623620, + 0x3803c: 0x6d8c2e20, 0x3803d: 0x6d8c3020, 0x3803e: 0x6d8c3220, 0x3803f: 0x6d8c3420, + // Block 0xe01, offset 0x38040 + 0x38040: 0x6d8c3620, 0x38041: 0x6d8c3820, 0x38042: 0x6d8c3a20, 0x38043: 0x6db05c20, + 0x38044: 0x6db05e20, 0x38045: 0x6db06020, 0x38046: 0x6db06220, 0x38047: 0x6db06420, + 0x38048: 0x6db06620, 0x38049: 0x6db06820, 0x3804a: 0x6db06a20, 0x3804b: 0x6db06c20, + 0x3804c: 0x6db06e20, 0x3804d: 0x6dcfe820, 0x3804e: 0x6dcfea20, 0x3804f: 0x6dcfec20, + 0x38050: 0x6dcfee20, 0x38051: 0x6dcff020, 0x38052: 0x6dcff220, 0x38053: 0x6dcff420, + 0x38054: 0x6dcff620, 0x38055: 0x6dcff820, 0x38056: 0x6dcffa20, 0x38057: 0x6dcffc20, + 0x38058: 0x6dcffe20, 0x38059: 0x6dd00020, 0x3805a: 0x6dd00220, 0x3805b: 0x6dd00420, + 0x3805c: 0x6de9f020, 0x3805d: 0x6de9f220, 0x3805e: 0x6d8c3c20, 0x3805f: 0x6dd00620, + 0x38060: 0x6de9f420, 0x38061: 0x6de9f620, 0x38062: 0x6dffb820, 0x38063: 0x6dffba20, + 0x38064: 0x6dffbc20, 0x38065: 0x6dffbe20, 0x38066: 0x6e122420, 0x38067: 0x6e204c20, + 0x38068: 0x6e122620, 0x38069: 0x6e122820, 0x3806a: 0x6dffc020, 0x3806b: 0x6dffc220, + 0x3806c: 0x6e122a20, 0x3806d: 0x6e204e20, 0x3806e: 0x6e205020, 0x3806f: 0x6e205220, + 0x38070: 0x6e33c620, 0x38071: 0x6c25e020, 0x38072: 0x6c25e220, 0x38073: 0x6c3e3020, + 0x38074: 0x6c3e3220, 0x38075: 0x6c3e3420, 0x38076: 0x6c5d3020, 0x38077: 0x6c5d3220, + 0x38078: 0x6c5d3420, 0x38079: 0x6c5d3620, 0x3807a: 0x6c819420, 0x3807b: 0x6c819620, + 0x3807c: 0x6c819820, 0x3807d: 0x6c819a20, 0x3807e: 0x6c819c20, 0x3807f: 0x6c819e20, + // Block 0xe02, offset 0x38080 + 0x38080: 0x6caab620, 0x38081: 0x6d07aa20, 0x38082: 0x6d358e20, 0x38083: 0x6db07220, + 0x38084: 0x6d623c20, 0x38085: 0x6d623e20, 0x38086: 0x6d8c4220, 0x38087: 0x6d8c4420, + 0x38088: 0x6db07420, 0x38089: 0x6db07620, 0x3808a: 0x6dd00c20, 0x3808b: 0x6e2b4020, + 0x3808c: 0x6e2b4220, 0x3808d: 0x6e3dda20, 0x3808e: 0x6c3e3820, 0x3808f: 0x6c3e3a20, + 0x38090: 0x6c144a20, 0x38091: 0x6c3e3c20, 0x38092: 0x6c81a820, 0x38093: 0x6caab820, + 0x38094: 0x6cd8fa20, 0x38095: 0x6cd8fc20, 0x38096: 0x6d07ae20, 0x38097: 0x6d359220, + 0x38098: 0x6d624220, 0x38099: 0x6d624420, 0x3809a: 0x6d624620, 0x3809b: 0x6d624820, + 0x3809c: 0x6d624a20, 0x3809d: 0x6d8c4620, 0x3809e: 0x6d8c4820, 0x3809f: 0x6db07820, + 0x380a0: 0x6db07a20, 0x380a1: 0x6db07c20, 0x380a2: 0x6e205620, 0x380a3: 0x6e33c820, + 0x380a4: 0x6c144e20, 0x380a5: 0x6c3e4020, 0x380a6: 0x6c3e4220, 0x380a7: 0x6c3e4420, + 0x380a8: 0x6c5d4c20, 0x380a9: 0x6c5d4e20, 0x380aa: 0x6c5d5020, 0x380ab: 0x6c81b420, + 0x380ac: 0x6caac820, 0x380ad: 0x6caaca20, 0x380ae: 0x6caacc20, 0x380af: 0x6cd90020, + 0x380b0: 0x6cd90220, 0x380b1: 0x6cd90420, 0x380b2: 0x6cd90620, 0x380b3: 0x6cd90820, + 0x380b4: 0x6d07b820, 0x380b5: 0x6d07ba20, 0x380b6: 0x6d07bc20, 0x380b7: 0x6d35a420, + 0x380b8: 0x6d35a620, 0x380b9: 0x6d35a820, 0x380ba: 0x6d35aa20, 0x380bb: 0x6d35ac20, + 0x380bc: 0x6d35ae20, 0x380bd: 0x6d35b020, 0x380be: 0x6d35b220, 0x380bf: 0x6d35b420, + // Block 0xe03, offset 0x380c0 + 0x380c0: 0x6d35b620, 0x380c1: 0x6d35b820, 0x380c2: 0x6d625420, 0x380c3: 0x6d625620, + 0x380c4: 0x6d625820, 0x380c5: 0x6d625a20, 0x380c6: 0x6d625c20, 0x380c7: 0x6d625e20, + 0x380c8: 0x6d626020, 0x380c9: 0x6d626220, 0x380ca: 0x6d626420, 0x380cb: 0x6d8c5020, + 0x380cc: 0x6d8c5220, 0x380cd: 0x6d8c5420, 0x380ce: 0x6d8c5620, 0x380cf: 0x6d8c5820, + 0x380d0: 0x6d8c5a20, 0x380d1: 0x6d8c5c20, 0x380d2: 0x6d8c5e20, 0x380d3: 0x6db08820, + 0x380d4: 0x6db08a20, 0x380d5: 0x6db08c20, 0x380d6: 0x6db08e20, 0x380d7: 0x6db09020, + 0x380d8: 0x6db09220, 0x380d9: 0x6db09420, 0x380da: 0x6db09620, 0x380db: 0x6dd01620, + 0x380dc: 0x6dd01820, 0x380dd: 0x6dd01a20, 0x380de: 0x6dd01c20, 0x380df: 0x6de9f820, + 0x380e0: 0x6dd01e20, 0x380e1: 0x6dd02020, 0x380e2: 0x6dd02220, 0x380e3: 0x6dd02420, + 0x380e4: 0x6dd02620, 0x380e5: 0x6de9fa20, 0x380e6: 0x6de9fc20, 0x380e7: 0x6de9fe20, + 0x380e8: 0x6dea0020, 0x380e9: 0x6e123020, 0x380ea: 0x6e123220, 0x380eb: 0x6e33ca20, + 0x380ec: 0x6e33cc20, 0x380ed: 0x6e39aa20, 0x380ee: 0x6c25e820, 0x380ef: 0x6c3e4820, + 0x380f0: 0x6c3e4a20, 0x380f1: 0x6c3e4c20, 0x380f2: 0x6c3e4e20, 0x380f3: 0x6c3e5020, + 0x380f4: 0x6c3e5220, 0x380f5: 0x6c3e5420, 0x380f6: 0x6c3e5620, 0x380f7: 0x6c5d5620, + 0x380f8: 0x6c5d5820, 0x380f9: 0x6c5d5a20, 0x380fa: 0x6c5d5c20, 0x380fb: 0x6c5d5e20, + 0x380fc: 0x6c81d020, 0x380fd: 0x6c81d220, 0x380fe: 0x6c81d420, 0x380ff: 0x6c81d620, + // Block 0xe04, offset 0x38100 + 0x38100: 0x6c81d820, 0x38101: 0x6c81da20, 0x38102: 0x6c81dc20, 0x38103: 0x6c81de20, + 0x38104: 0x6c81e020, 0x38105: 0x6c81e220, 0x38106: 0x6c81e420, 0x38107: 0x6c81e620, + 0x38108: 0x6c81e820, 0x38109: 0x6c81ea20, 0x3810a: 0x6c81ec20, 0x3810b: 0x6c81ee20, + 0x3810c: 0x6c81f020, 0x3810d: 0x6c81f220, 0x3810e: 0x6c81f420, 0x3810f: 0x6c81f620, + 0x38110: 0x6caaea20, 0x38111: 0x6caaec20, 0x38112: 0x6caaee20, 0x38113: 0x6caaf020, + 0x38114: 0x6caaf220, 0x38115: 0x6caaf420, 0x38116: 0x6caaf620, 0x38117: 0x6caaf820, + 0x38118: 0x6caafa20, 0x38119: 0x6caafc20, 0x3811a: 0x6caafe20, 0x3811b: 0x6cab0020, + 0x3811c: 0x6cab0220, 0x3811d: 0x6cab0420, 0x3811e: 0x6cab0620, 0x3811f: 0x6cab0820, + 0x38120: 0x6cd92020, 0x38121: 0x6cd92220, 0x38122: 0x6cd92420, 0x38123: 0x6d07cc20, + 0x38124: 0x6cd92620, 0x38125: 0x6cd92820, 0x38126: 0x6cd92a20, 0x38127: 0x6cd92c20, + 0x38128: 0x6cd92e20, 0x38129: 0x6cd93020, 0x3812a: 0x6cd93220, 0x3812b: 0x6cd93420, + 0x3812c: 0x6cd93620, 0x3812d: 0x6cd93820, 0x3812e: 0x6cd93a20, 0x3812f: 0x6cd93c20, + 0x38130: 0x6cd93e20, 0x38131: 0x6cd94020, 0x38132: 0x6cd94220, 0x38133: 0x6cd94420, + 0x38134: 0x6cd94620, 0x38135: 0x6d07ce20, 0x38136: 0x6d07d020, 0x38137: 0x6d07d220, + 0x38138: 0x6d07d420, 0x38139: 0x6d07d620, 0x3813a: 0x6d07d820, 0x3813b: 0x6d07da20, + 0x3813c: 0x6d07dc20, 0x3813d: 0x6d07de20, 0x3813e: 0x6d07e020, 0x3813f: 0x6d07e220, + // Block 0xe05, offset 0x38140 + 0x38140: 0x6d07e420, 0x38141: 0x6d07e620, 0x38142: 0x6d07e820, 0x38143: 0x6d07ea20, + 0x38144: 0x6d07ec20, 0x38145: 0x6d07ee20, 0x38146: 0x6d07f020, 0x38147: 0x6d07f220, + 0x38148: 0x6d35d820, 0x38149: 0x6d35da20, 0x3814a: 0x6d35dc20, 0x3814b: 0x6d35de20, + 0x3814c: 0x6d35e020, 0x3814d: 0x6d35e220, 0x3814e: 0x6d35e420, 0x3814f: 0x6d35e620, + 0x38150: 0x6d35e820, 0x38151: 0x6d35ea20, 0x38152: 0x6d35ec20, 0x38153: 0x6d35ee20, + 0x38154: 0x6d35f020, 0x38155: 0x6d35f220, 0x38156: 0x6d35f420, 0x38157: 0x6d07f420, + 0x38158: 0x6d35f620, 0x38159: 0x6d35f820, 0x3815a: 0x6d35fa20, 0x3815b: 0x6d35fc20, + 0x3815c: 0x6d35fe20, 0x3815d: 0x6d360020, 0x3815e: 0x6d360220, 0x3815f: 0x6d360420, + 0x38160: 0x6d360620, 0x38161: 0x6d360820, 0x38162: 0x6d627e20, 0x38163: 0x6d628020, + 0x38164: 0x6d628220, 0x38165: 0x6d628420, 0x38166: 0x6d628620, 0x38167: 0x6d628820, + 0x38168: 0x6d628a20, 0x38169: 0x6d628c20, 0x3816a: 0x6d628e20, 0x3816b: 0x6d629020, + 0x3816c: 0x6d629220, 0x3816d: 0x6d629420, 0x3816e: 0x6d629620, 0x3816f: 0x6d629820, + 0x38170: 0x6d629a20, 0x38171: 0x6d629c20, 0x38172: 0x6d629e20, 0x38173: 0x6d62a020, + 0x38174: 0x6d62a220, 0x38175: 0x6d62a420, 0x38176: 0x6d62a620, 0x38177: 0x6d62a820, + 0x38178: 0x6d62aa20, 0x38179: 0x6d62ac20, 0x3817a: 0x6d62ae20, 0x3817b: 0x6d62b020, + 0x3817c: 0x6d8c6c20, 0x3817d: 0x6d8c6e20, 0x3817e: 0x6d8c7020, 0x3817f: 0x6d8c7220, + // Block 0xe06, offset 0x38180 + 0x38180: 0x6d8c7420, 0x38181: 0x6d8c7620, 0x38182: 0x6d8c7820, 0x38183: 0x6d8c7a20, + 0x38184: 0x6d8c7c20, 0x38185: 0x6d8c7e20, 0x38186: 0x6d8c8020, 0x38187: 0x6d62b220, + 0x38188: 0x6d8c8220, 0x38189: 0x6d8c8420, 0x3818a: 0x6d8c8620, 0x3818b: 0x6d8c8820, + 0x3818c: 0x6d8c8a20, 0x3818d: 0x6d8c8c20, 0x3818e: 0x6d8c8e20, 0x3818f: 0x6d8c9020, + 0x38190: 0x6db0aa20, 0x38191: 0x6db0ac20, 0x38192: 0x6db0ae20, 0x38193: 0x6db0b020, + 0x38194: 0x6db0b220, 0x38195: 0x6db0b420, 0x38196: 0x6db0b620, 0x38197: 0x6db0b820, + 0x38198: 0x6db0ba20, 0x38199: 0x6db0bc20, 0x3819a: 0x6db0be20, 0x3819b: 0x6db0c020, + 0x3819c: 0x6db0c220, 0x3819d: 0x6db0c420, 0x3819e: 0x6db0c620, 0x3819f: 0x6dd03220, + 0x381a0: 0x6dd03420, 0x381a1: 0x6dd03620, 0x381a2: 0x6dd03820, 0x381a3: 0x6dd03a20, + 0x381a4: 0x6dd03c20, 0x381a5: 0x6dd03e20, 0x381a6: 0x6dd04020, 0x381a7: 0x6dd04220, + 0x381a8: 0x6dd04420, 0x381a9: 0x6dd04620, 0x381aa: 0x6dd04820, 0x381ab: 0x6dd04a20, + 0x381ac: 0x6dd04c20, 0x381ad: 0x6dd04e20, 0x381ae: 0x6dd05020, 0x381af: 0x6dd05220, + 0x381b0: 0x6dd05420, 0x381b1: 0x6dd05620, 0x381b2: 0x6dd05820, 0x381b3: 0x6dea0420, + 0x381b4: 0x6dea0620, 0x381b5: 0x6dea0820, 0x381b6: 0x6dea0a20, 0x381b7: 0x6dea0c20, + 0x381b8: 0x6dea0e20, 0x381b9: 0x6dea1020, 0x381ba: 0x6dea1220, 0x381bb: 0x6dea1420, + 0x381bc: 0x6dea1620, 0x381bd: 0x6dea1820, 0x381be: 0x6dffd020, 0x381bf: 0x6dffd220, + // Block 0xe07, offset 0x381c0 + 0x381c0: 0x6dffd420, 0x381c1: 0x6dffd620, 0x381c2: 0x6dffd820, 0x381c3: 0x6dffda20, + 0x381c4: 0x6dffdc20, 0x381c5: 0x6e123420, 0x381c6: 0x6e123620, 0x381c7: 0x6e123820, + 0x381c8: 0x6e123a20, 0x381c9: 0x6e123c20, 0x381ca: 0x6e206220, 0x381cb: 0x6e206420, + 0x381cc: 0x6e206620, 0x381cd: 0x6e2b4420, 0x381ce: 0x6e2b4620, 0x381cf: 0x6e33ce20, + 0x381d0: 0x6e39ac20, 0x381d1: 0x6e3ddc20, 0x381d2: 0x6c145420, 0x381d3: 0x6c3e5c20, + 0x381d4: 0x6c5d6020, 0x381d5: 0x6cab0a20, 0x381d6: 0x6cab0c20, 0x381d7: 0x6cab0e20, + 0x381d8: 0x6cd94c20, 0x381d9: 0x6cd94e20, 0x381da: 0x6cd95020, 0x381db: 0x6d080420, + 0x381dc: 0x6d080620, 0x381dd: 0x6d361220, 0x381de: 0x6d361420, 0x381df: 0x6d361620, + 0x381e0: 0x6d62b620, 0x381e1: 0x6d62b820, 0x381e2: 0x6d62ba20, 0x381e3: 0x6d8c9c20, + 0x381e4: 0x6db0ce20, 0x381e5: 0x6db0d020, 0x381e6: 0x6db0d220, 0x381e7: 0x6dea1c20, + 0x381e8: 0x6dffde20, 0x381e9: 0x6c146420, 0x381ea: 0x6c146620, 0x381eb: 0x6c146820, + 0x381ec: 0x6c146a20, 0x381ed: 0x6c146c20, 0x381ee: 0x6c146e20, 0x381ef: 0x6c147020, + 0x381f0: 0x6c147220, 0x381f1: 0x6c147420, 0x381f2: 0x6c147620, 0x381f3: 0x6c147820, + 0x381f4: 0x6c261020, 0x381f5: 0x6c261220, 0x381f6: 0x6c261420, 0x381f7: 0x6c261620, + 0x381f8: 0x6c261820, 0x381f9: 0x6c261a20, 0x381fa: 0x6c261c20, 0x381fb: 0x6c261e20, + 0x381fc: 0x6c262020, 0x381fd: 0x6c262220, 0x381fe: 0x6c262420, 0x381ff: 0x6c3ebe20, + // Block 0xe08, offset 0x38200 + 0x38200: 0x6c3ec020, 0x38201: 0x6c3ec220, 0x38202: 0x6c3ec420, 0x38203: 0x6c3ec620, + 0x38204: 0x6c3ec820, 0x38205: 0x6c3eca20, 0x38206: 0x6c3ecc20, 0x38207: 0x6c3ece20, + 0x38208: 0x6c3ed020, 0x38209: 0x6c3ed220, 0x3820a: 0x6c3ed420, 0x3820b: 0x6c3ed620, + 0x3820c: 0x6c3ed820, 0x3820d: 0x6c3eda20, 0x3820e: 0x6c3edc20, 0x3820f: 0x6c3ede20, + 0x38210: 0x6c3ee020, 0x38211: 0x6c3ee220, 0x38212: 0x6c3ee420, 0x38213: 0x6c3ee620, + 0x38214: 0x6c3ee820, 0x38215: 0x6c3eea20, 0x38216: 0x6c3eec20, 0x38217: 0x6c3eee20, + 0x38218: 0x6c3ef020, 0x38219: 0x6c3ef220, 0x3821a: 0x6c3ef420, 0x3821b: 0x6c3ef620, + 0x3821c: 0x6c3ef820, 0x3821d: 0x6c3efa20, 0x3821e: 0x6c3efc20, 0x3821f: 0x6c3efe20, + 0x38220: 0x6c3f0020, 0x38221: 0x6c3f0220, 0x38222: 0x6c3f0420, 0x38223: 0x6c3f0620, + 0x38224: 0x6c3f0820, 0x38225: 0x6c3f0a20, 0x38226: 0x6c3f0c20, 0x38227: 0x6c3f0e20, + 0x38228: 0x6c3f1020, 0x38229: 0x6c3f1220, 0x3822a: 0x6c5dca20, 0x3822b: 0x6c5dcc20, + 0x3822c: 0x6c5dce20, 0x3822d: 0x6c5dd020, 0x3822e: 0x6c5dd220, 0x3822f: 0x6c5dd420, + 0x38230: 0x6c5dd620, 0x38231: 0x6c5dd820, 0x38232: 0x6c5dda20, 0x38233: 0x6c5ddc20, + 0x38234: 0x6c5dde20, 0x38235: 0x6c5de020, 0x38236: 0x6c5de220, 0x38237: 0x6c5de420, + 0x38238: 0x6c5de620, 0x38239: 0x6c5de820, 0x3823a: 0x6c5dea20, 0x3823b: 0x6c5dec20, + 0x3823c: 0x6c5dee20, 0x3823d: 0x6c5df020, 0x3823e: 0x6c5df220, 0x3823f: 0x6c5df420, + // Block 0xe09, offset 0x38240 + 0x38240: 0x6c5df620, 0x38241: 0x6c5df820, 0x38242: 0x6c5dfa20, 0x38243: 0x6c5dfc20, + 0x38244: 0x6c5dfe20, 0x38245: 0x6c5e0020, 0x38246: 0x6c5e0220, 0x38247: 0x6c5e0420, + 0x38248: 0x6c5e0620, 0x38249: 0x6c5e0820, 0x3824a: 0x6c5e0a20, 0x3824b: 0x6c5e0c20, + 0x3824c: 0x6c5e0e20, 0x3824d: 0x6c5e1020, 0x3824e: 0x6c5e1220, 0x3824f: 0x6c5e1420, + 0x38250: 0x6c5e1620, 0x38251: 0x6c5e1820, 0x38252: 0x6c5e1a20, 0x38253: 0x6c5e1c20, + 0x38254: 0x6c5e1e20, 0x38255: 0x6c5e2020, 0x38256: 0x6c5e2220, 0x38257: 0x6c5e2420, + 0x38258: 0x6c5e2620, 0x38259: 0x6c5e2820, 0x3825a: 0x6c5e2a20, 0x3825b: 0x6c5e2c20, + 0x3825c: 0x6c5e2e20, 0x3825d: 0x6c826020, 0x3825e: 0x6c826220, 0x3825f: 0x6c826420, + 0x38260: 0x6c826620, 0x38261: 0x6c826820, 0x38262: 0x6c826a20, 0x38263: 0x6c826c20, + 0x38264: 0x6c826e20, 0x38265: 0x6c827020, 0x38266: 0x6c827220, 0x38267: 0x6c827420, + 0x38268: 0x6c827620, 0x38269: 0x6c827820, 0x3826a: 0x6c827a20, 0x3826b: 0x6c827c20, + 0x3826c: 0x6c827e20, 0x3826d: 0x6c828020, 0x3826e: 0x6c828220, 0x3826f: 0x6c828420, + 0x38270: 0x6c828620, 0x38271: 0x6c828820, 0x38272: 0x6c828a20, 0x38273: 0x6c828c20, + 0x38274: 0x6c828e20, 0x38275: 0x6c829020, 0x38276: 0x6c829220, 0x38277: 0x6c829420, + 0x38278: 0x6c829620, 0x38279: 0x6c829820, 0x3827a: 0x6c829a20, 0x3827b: 0x6c829c20, + 0x3827c: 0x6c829e20, 0x3827d: 0x6c82a020, 0x3827e: 0x6c82a220, 0x3827f: 0x6c82a420, + // Block 0xe0a, offset 0x38280 + 0x38280: 0x6c82a620, 0x38281: 0x6c82a820, 0x38282: 0x6c82aa20, 0x38283: 0x6c82ac20, + 0x38284: 0x6c82ae20, 0x38285: 0x6c82b020, 0x38286: 0x6c82b220, 0x38287: 0x6c82b420, + 0x38288: 0x6c82b620, 0x38289: 0x6c82b820, 0x3828a: 0x6c82ba20, 0x3828b: 0x6c82bc20, + 0x3828c: 0x6c82be20, 0x3828d: 0x6c82c020, 0x3828e: 0x6c82c220, 0x3828f: 0x6c82c420, + 0x38290: 0x6c82c620, 0x38291: 0x6c82c820, 0x38292: 0x6c82ca20, 0x38293: 0x6c82cc20, + 0x38294: 0x6cab7220, 0x38295: 0x6cab7420, 0x38296: 0x6cab7620, 0x38297: 0x6cab7820, + 0x38298: 0x6cab7a20, 0x38299: 0x6cab7c20, 0x3829a: 0x6cab7e20, 0x3829b: 0x6cab8020, + 0x3829c: 0x6cab8220, 0x3829d: 0x6cab8420, 0x3829e: 0x6cab8620, 0x3829f: 0x6cab8820, + 0x382a0: 0x6cab8a20, 0x382a1: 0x6cab8c20, 0x382a2: 0x6cab8e20, 0x382a3: 0x6cab9020, + 0x382a4: 0x6cab9220, 0x382a5: 0x6cab9420, 0x382a6: 0x6cab9620, 0x382a7: 0x6cab9820, + 0x382a8: 0x6cab9a20, 0x382a9: 0x6cab9c20, 0x382aa: 0x6cab9e20, 0x382ab: 0x6caba020, + 0x382ac: 0x6caba220, 0x382ad: 0x6caba420, 0x382ae: 0x6caba620, 0x382af: 0x6caba820, + 0x382b0: 0x6cabaa20, 0x382b1: 0x6cabac20, 0x382b2: 0x6cabae20, 0x382b3: 0x6cabb020, + 0x382b4: 0x6cabb220, 0x382b5: 0x6cabb420, 0x382b6: 0x6cabb620, 0x382b7: 0x6cabb820, + 0x382b8: 0x6cabba20, 0x382b9: 0x6cabbc20, 0x382ba: 0x6cabbe20, 0x382bb: 0x6cabc020, + 0x382bc: 0x6cabc220, 0x382bd: 0x6cabc420, 0x382be: 0x6cabc620, 0x382bf: 0x6cabc820, + // Block 0xe0b, offset 0x382c0 + 0x382c0: 0x6cabca20, 0x382c1: 0x6cabcc20, 0x382c2: 0x6cabce20, 0x382c3: 0x6cabd020, + 0x382c4: 0x6cabd220, 0x382c5: 0x6cabd420, 0x382c6: 0x6cd9c020, 0x382c7: 0x6cd9c220, + 0x382c8: 0x6cd9c420, 0x382c9: 0x6cd9c620, 0x382ca: 0x6cd9c820, 0x382cb: 0x6cd9ca20, + 0x382cc: 0x6cd9cc20, 0x382cd: 0x6cd9ce20, 0x382ce: 0x6cd9d020, 0x382cf: 0x6cd9d220, + 0x382d0: 0x6cd9d420, 0x382d1: 0x6cd9d620, 0x382d2: 0x6cd9d820, 0x382d3: 0x6cd9da20, + 0x382d4: 0x6cd9dc20, 0x382d5: 0x6cd9de20, 0x382d6: 0x6cd9e020, 0x382d7: 0x6cd9e220, + 0x382d8: 0x6cd9e420, 0x382d9: 0x6cd9e620, 0x382da: 0x6cd9e820, 0x382db: 0x6cd9ea20, + 0x382dc: 0x6cd9ec20, 0x382dd: 0x6cd9ee20, 0x382de: 0x6cd9f020, 0x382df: 0x6cd9f220, + 0x382e0: 0x6cd9f420, 0x382e1: 0x6cd9f620, 0x382e2: 0x6cd9f820, 0x382e3: 0x6cd9fa20, + 0x382e4: 0x6cd9fc20, 0x382e5: 0x6cd9fe20, 0x382e6: 0x6cda0020, 0x382e7: 0x6cda0220, + 0x382e8: 0x6cda0420, 0x382e9: 0x6cda0620, 0x382ea: 0x6cda0820, 0x382eb: 0x6cda0a20, + 0x382ec: 0x6cda0c20, 0x382ed: 0x6cda0e20, 0x382ee: 0x6cda1020, 0x382ef: 0x6cda1220, + 0x382f0: 0x6cda1420, 0x382f1: 0x6cda1620, 0x382f2: 0x6cda1820, 0x382f3: 0x6cc87c20, + 0x382f4: 0x6cda1a20, 0x382f5: 0x6cda1c20, 0x382f6: 0x6cda1e20, 0x382f7: 0x6cda2020, + 0x382f8: 0x6cda2220, 0x382f9: 0x6cda2420, 0x382fa: 0x6cda2620, 0x382fb: 0x6cda2820, + 0x382fc: 0x6cda2a20, 0x382fd: 0x6cda2c20, 0x382fe: 0x6cda2e20, 0x382ff: 0x6cda3020, + // Block 0xe0c, offset 0x38300 + 0x38300: 0x6cda3220, 0x38301: 0x6cda3420, 0x38302: 0x6cda3620, 0x38303: 0x6cda3820, + 0x38304: 0x6cda3a20, 0x38305: 0x6cda3c20, 0x38306: 0x6cda3e20, 0x38307: 0x6cda4020, + 0x38308: 0x6cda4220, 0x38309: 0x6cda4420, 0x3830a: 0x6cda4620, 0x3830b: 0x6cda4820, + 0x3830c: 0x6cda4a20, 0x3830d: 0x6cda4c20, 0x3830e: 0x6cda4e20, 0x3830f: 0x6cda5020, + 0x38310: 0x6cda5220, 0x38311: 0x6cda5420, 0x38312: 0x6cda5620, 0x38313: 0x6cda5820, + 0x38314: 0x6cda5a20, 0x38315: 0x6cda5c20, 0x38316: 0x6cda5e20, 0x38317: 0x6cda6020, + 0x38318: 0x6cda6220, 0x38319: 0x6cda6420, 0x3831a: 0x6d087020, 0x3831b: 0x6d087220, + 0x3831c: 0x6d087420, 0x3831d: 0x6d087620, 0x3831e: 0x6d087820, 0x3831f: 0x6d087a20, + 0x38320: 0x6d087c20, 0x38321: 0x6d087e20, 0x38322: 0x6d088020, 0x38323: 0x6d088220, + 0x38324: 0x6d088420, 0x38325: 0x6d088620, 0x38326: 0x6d088820, 0x38327: 0x6d088a20, + 0x38328: 0x6d088c20, 0x38329: 0x6d088e20, 0x3832a: 0x6d089020, 0x3832b: 0x6d089220, + 0x3832c: 0x6d089420, 0x3832d: 0x6d089620, 0x3832e: 0x6d089820, 0x3832f: 0x6d089a20, + 0x38330: 0x6d089c20, 0x38331: 0x6d089e20, 0x38332: 0x6d08a020, 0x38333: 0x6d08a220, + 0x38334: 0x6d08a420, 0x38335: 0x6d08a620, 0x38336: 0x6d08a820, 0x38337: 0x6d08aa20, + 0x38338: 0x6d08ac20, 0x38339: 0x6d08ae20, 0x3833a: 0x6d08b020, 0x3833b: 0x6d08b220, + 0x3833c: 0x6d08b420, 0x3833d: 0x6d08b620, 0x3833e: 0x6d08b820, 0x3833f: 0x6d08ba20, + // Block 0xe0d, offset 0x38340 + 0x38340: 0x6d08bc20, 0x38341: 0x6d08be20, 0x38342: 0x6d08c020, 0x38343: 0x6d08c220, + 0x38344: 0x6d08c420, 0x38345: 0x6d08c620, 0x38346: 0x6d08c820, 0x38347: 0x6d08ca20, + 0x38348: 0x6d08cc20, 0x38349: 0x6d08ce20, 0x3834a: 0x6d08d020, 0x3834b: 0x6d08d220, + 0x3834c: 0x6d08d420, 0x3834d: 0x6d08d620, 0x3834e: 0x6d08d820, 0x3834f: 0x6d08da20, + 0x38350: 0x6d08dc20, 0x38351: 0x6d08de20, 0x38352: 0x6d08e020, 0x38353: 0x6d08e220, + 0x38354: 0x6d08e420, 0x38355: 0x6d08e620, 0x38356: 0x6d08e820, 0x38357: 0x6d08ea20, + 0x38358: 0x6d08ec20, 0x38359: 0x6d365c20, 0x3835a: 0x6d365e20, 0x3835b: 0x6d366020, + 0x3835c: 0x6d366220, 0x3835d: 0x6d366420, 0x3835e: 0x6d366620, 0x3835f: 0x6d366820, + 0x38360: 0x6d366a20, 0x38361: 0x6d366c20, 0x38362: 0x6d366e20, 0x38363: 0x6d367020, + 0x38364: 0x6d367220, 0x38365: 0x6d367420, 0x38366: 0x6d367620, 0x38367: 0x6d367820, + 0x38368: 0x6d367a20, 0x38369: 0x6d367c20, 0x3836a: 0x6d367e20, 0x3836b: 0x6d368020, + 0x3836c: 0x6d368220, 0x3836d: 0x6d368420, 0x3836e: 0x6d368620, 0x3836f: 0x6d368820, + 0x38370: 0x6d368a20, 0x38371: 0x6d368c20, 0x38372: 0x6d368e20, 0x38373: 0x6d369020, + 0x38374: 0x6d369220, 0x38375: 0x6d369420, 0x38376: 0x6d369620, 0x38377: 0x6d369820, + 0x38378: 0x6d369a20, 0x38379: 0x6d369c20, 0x3837a: 0x6d369e20, 0x3837b: 0x6d36a020, + 0x3837c: 0x6d36a220, 0x3837d: 0x6d36a420, 0x3837e: 0x6d36a620, 0x3837f: 0x6d36a820, + // Block 0xe0e, offset 0x38380 + 0x38380: 0x6d36aa20, 0x38381: 0x6d36ac20, 0x38382: 0x6d36ae20, 0x38383: 0x6d36b020, + 0x38384: 0x6d36b220, 0x38385: 0x6d36b420, 0x38386: 0x6d36b620, 0x38387: 0x6d36b820, + 0x38388: 0x6d36ba20, 0x38389: 0x6d36bc20, 0x3838a: 0x6d36be20, 0x3838b: 0x6d36c020, + 0x3838c: 0x6d36c220, 0x3838d: 0x6d36c420, 0x3838e: 0x6d36c620, 0x3838f: 0x6d36c820, + 0x38390: 0x6d36ca20, 0x38391: 0x6d36cc20, 0x38392: 0x6d36ce20, 0x38393: 0x6d08ee20, + 0x38394: 0x6d08f020, 0x38395: 0x6d36d020, 0x38396: 0x6d36d220, 0x38397: 0x6d36d420, + 0x38398: 0x6d62f420, 0x38399: 0x6d62f620, 0x3839a: 0x6d62f820, 0x3839b: 0x6d62fa20, + 0x3839c: 0x6d62fc20, 0x3839d: 0x6d62fe20, 0x3839e: 0x6d630020, 0x3839f: 0x6d630220, + 0x383a0: 0x6d630420, 0x383a1: 0x6d630620, 0x383a2: 0x6d630820, 0x383a3: 0x6d630a20, + 0x383a4: 0x6d630c20, 0x383a5: 0x6d630e20, 0x383a6: 0x6d631020, 0x383a7: 0x6d631220, + 0x383a8: 0x6d631420, 0x383a9: 0x6d631620, 0x383aa: 0x6d631820, 0x383ab: 0x6d631a20, + 0x383ac: 0x6d631c20, 0x383ad: 0x6d631e20, 0x383ae: 0x6d632020, 0x383af: 0x6d632220, + 0x383b0: 0x6d632420, 0x383b1: 0x6d632620, 0x383b2: 0x6d632820, 0x383b3: 0x6d632a20, + 0x383b4: 0x6d632c20, 0x383b5: 0x6d632e20, 0x383b6: 0x6d633020, 0x383b7: 0x6d633220, + 0x383b8: 0x6d633420, 0x383b9: 0x6d633620, 0x383ba: 0x6d633820, 0x383bb: 0x6d633a20, + 0x383bc: 0x6d633c20, 0x383bd: 0x6d633e20, 0x383be: 0x6d634020, 0x383bf: 0x6d634220, + // Block 0xe0f, offset 0x383c0 + 0x383c0: 0x6d634420, 0x383c1: 0x6d634620, 0x383c2: 0x6d634820, 0x383c3: 0x6d8cd620, + 0x383c4: 0x6d8cd820, 0x383c5: 0x6d8cda20, 0x383c6: 0x6d8cdc20, 0x383c7: 0x6d8cde20, + 0x383c8: 0x6d8ce020, 0x383c9: 0x6d8ce220, 0x383ca: 0x6d8ce420, 0x383cb: 0x6d8ce620, + 0x383cc: 0x6d8ce820, 0x383cd: 0x6d8cea20, 0x383ce: 0x6d8cec20, 0x383cf: 0x6d8cee20, + 0x383d0: 0x6d8cf020, 0x383d1: 0x6d8cf220, 0x383d2: 0x6d8cf420, 0x383d3: 0x6d8cf620, + 0x383d4: 0x6d8cf820, 0x383d5: 0x6d8cfa20, 0x383d6: 0x6d8cfc20, 0x383d7: 0x6d8cfe20, + 0x383d8: 0x6d8d0020, 0x383d9: 0x6d8d0220, 0x383da: 0x6d8d0420, 0x383db: 0x6d8d0620, + 0x383dc: 0x6d8d0820, 0x383dd: 0x6d8d0a20, 0x383de: 0x6d8d0c20, 0x383df: 0x6d8d0e20, + 0x383e0: 0x6d8d1020, 0x383e1: 0x6d8d1220, 0x383e2: 0x6d8d1420, 0x383e3: 0x6d8d1620, + 0x383e4: 0x6d8d1820, 0x383e5: 0x6d8d1a20, 0x383e6: 0x6d8d1c20, 0x383e7: 0x6d8d1e20, + 0x383e8: 0x6d8d2020, 0x383e9: 0x6d8d2220, 0x383ea: 0x6d8d2420, 0x383eb: 0x6d8d2620, + 0x383ec: 0x6d8d2820, 0x383ed: 0x6d8d2a20, 0x383ee: 0x6d8d2c20, 0x383ef: 0x6d8d2e20, + 0x383f0: 0x6d8d3020, 0x383f1: 0x6d8d3220, 0x383f2: 0x6d8d3420, 0x383f3: 0x6d8d3620, + 0x383f4: 0x6d8d3820, 0x383f5: 0x6d8d3a20, 0x383f6: 0x6d8d3c20, 0x383f7: 0x6d8d3e20, + 0x383f8: 0x6d8d4020, 0x383f9: 0x6d8d4220, 0x383fa: 0x6d8d4420, 0x383fb: 0x6d8d4620, + 0x383fc: 0x6d8d4820, 0x383fd: 0x6d8d4a20, 0x383fe: 0x6db10420, 0x383ff: 0x6db10620, + // Block 0xe10, offset 0x38400 + 0x38400: 0x6db10820, 0x38401: 0x6db10a20, 0x38402: 0x6db10c20, 0x38403: 0x6db10e20, + 0x38404: 0x6d8d4c20, 0x38405: 0x6db11020, 0x38406: 0x6db11220, 0x38407: 0x6db11420, + 0x38408: 0x6db11620, 0x38409: 0x6db11820, 0x3840a: 0x6db11a20, 0x3840b: 0x6db11c20, + 0x3840c: 0x6db11e20, 0x3840d: 0x6db12020, 0x3840e: 0x6dd07620, 0x3840f: 0x6db12220, + 0x38410: 0x6db12420, 0x38411: 0x6db12620, 0x38412: 0x6db12820, 0x38413: 0x6db12a20, + 0x38414: 0x6db12c20, 0x38415: 0x6db12e20, 0x38416: 0x6da5c020, 0x38417: 0x6d7c7a20, + 0x38418: 0x6db13020, 0x38419: 0x6db13220, 0x3841a: 0x6db13420, 0x3841b: 0x6db13620, + 0x3841c: 0x6db13820, 0x3841d: 0x6db13a20, 0x3841e: 0x6db13c20, 0x3841f: 0x6db13e20, + 0x38420: 0x6db14020, 0x38421: 0x6db14220, 0x38422: 0x6db14420, 0x38423: 0x6db14620, + 0x38424: 0x6db14820, 0x38425: 0x6db14a20, 0x38426: 0x6db14c20, 0x38427: 0x6db14e20, + 0x38428: 0x6db15020, 0x38429: 0x6db15220, 0x3842a: 0x6db15420, 0x3842b: 0x6db15620, + 0x3842c: 0x6db15820, 0x3842d: 0x6db15a20, 0x3842e: 0x6d8d4e20, 0x3842f: 0x6db15c20, + 0x38430: 0x6dd07820, 0x38431: 0x6dd07a20, 0x38432: 0x6dd07c20, 0x38433: 0x6dd07e20, + 0x38434: 0x6dd08020, 0x38435: 0x6dd08220, 0x38436: 0x6dd08420, 0x38437: 0x6dd08620, + 0x38438: 0x6dd08820, 0x38439: 0x6dd08a20, 0x3843a: 0x6dd08c20, 0x3843b: 0x6dd08e20, + 0x3843c: 0x6dd09020, 0x3843d: 0x6dd09220, 0x3843e: 0x6dd09420, 0x3843f: 0x6dd09620, + // Block 0xe11, offset 0x38440 + 0x38440: 0x6dd09820, 0x38441: 0x6dd09a20, 0x38442: 0x6dd09c20, 0x38443: 0x6dd09e20, + 0x38444: 0x6dd0a020, 0x38445: 0x6dd0a220, 0x38446: 0x6dd0a420, 0x38447: 0x6dd0a620, + 0x38448: 0x6dd0a820, 0x38449: 0x6dd0aa20, 0x3844a: 0x6dea2e20, 0x3844b: 0x6dea3020, + 0x3844c: 0x6dea3220, 0x3844d: 0x6dea3420, 0x3844e: 0x6dea3620, 0x3844f: 0x6dea3820, + 0x38450: 0x6dea3a20, 0x38451: 0x6dea3c20, 0x38452: 0x6dea3e20, 0x38453: 0x6dea4020, + 0x38454: 0x6dea4220, 0x38455: 0x6dea4420, 0x38456: 0x6dea4620, 0x38457: 0x6dea4820, + 0x38458: 0x6dea4a20, 0x38459: 0x6dea4c20, 0x3845a: 0x6dea4e20, 0x3845b: 0x6dea5020, + 0x3845c: 0x6dea5220, 0x3845d: 0x6dea5420, 0x3845e: 0x6dea5620, 0x3845f: 0x6dea5820, + 0x38460: 0x6dea5a20, 0x38461: 0x6dea5c20, 0x38462: 0x6dea5e20, 0x38463: 0x6dea6020, + 0x38464: 0x6dea6220, 0x38465: 0x6dffee20, 0x38466: 0x6dfff020, 0x38467: 0x6dfff220, + 0x38468: 0x6dfff420, 0x38469: 0x6dfff620, 0x3846a: 0x6dfff820, 0x3846b: 0x6dfffa20, + 0x3846c: 0x6dfffc20, 0x3846d: 0x6dfffe20, 0x3846e: 0x6e000020, 0x3846f: 0x6e000220, + 0x38470: 0x6e000420, 0x38471: 0x6e000620, 0x38472: 0x6e000820, 0x38473: 0x6e000a20, + 0x38474: 0x6e000c20, 0x38475: 0x6e000e20, 0x38476: 0x6e001020, 0x38477: 0x6e001220, + 0x38478: 0x6e124a20, 0x38479: 0x6e124c20, 0x3847a: 0x6e124e20, 0x3847b: 0x6e125020, + 0x3847c: 0x6e125220, 0x3847d: 0x6e125420, 0x3847e: 0x6e125620, 0x3847f: 0x6e206e20, + // Block 0xe12, offset 0x38480 + 0x38480: 0x6e207020, 0x38481: 0x6e207220, 0x38482: 0x6e207420, 0x38483: 0x6e207620, + 0x38484: 0x6e207820, 0x38485: 0x6e207a20, 0x38486: 0x6e2b4c20, 0x38487: 0x6e2b4e20, + 0x38488: 0x6e2b5020, 0x38489: 0x6e2b5220, 0x3848a: 0x6e2b5420, 0x3848b: 0x6e2b5620, + 0x3848c: 0x6e2b5820, 0x3848d: 0x6e2b5a20, 0x3848e: 0x6e2b5c20, 0x3848f: 0x6e2b5e20, + 0x38490: 0x6e2b6020, 0x38491: 0x6e33d020, 0x38492: 0x6e33d220, 0x38493: 0x6e33d420, + 0x38494: 0x6e33d620, 0x38495: 0x6e33d820, 0x38496: 0x6e39b220, 0x38497: 0x6e39b420, + 0x38498: 0x6e3dde20, 0x38499: 0x6e3de020, 0x3849a: 0x6e3de220, 0x3849b: 0x6e40be20, + 0x3849c: 0x6e42ec20, 0x3849d: 0x6c262620, 0x3849e: 0x6c147c20, 0x3849f: 0x6c5e3820, + 0x384a0: 0x6c82d220, 0x384a1: 0x6c82d420, 0x384a2: 0x6c82d620, 0x384a3: 0x6c82d820, + 0x384a4: 0x6cabde20, 0x384a5: 0x6cabe020, 0x384a6: 0x6cda7220, 0x384a7: 0x6cda7420, + 0x384a8: 0x6cda7620, 0x384a9: 0x6cda7820, 0x384aa: 0x6d8d5c20, 0x384ab: 0x6d36e620, + 0x384ac: 0x6d36e820, 0x384ad: 0x6d635620, 0x384ae: 0x6d36ea20, 0x384af: 0x6d635820, + 0x384b0: 0x6db16820, 0x384b1: 0x6db16a20, 0x384b2: 0x6dd0b220, 0x384b3: 0x6dd0b420, + 0x384b4: 0x6e125a20, 0x384b5: 0x6e125c20, 0x384b6: 0x6e207e20, 0x384b7: 0x6e445e20, + 0x384b8: 0x6e45ce20, 0x384b9: 0x6c148020, 0x384ba: 0x6c262a20, 0x384bb: 0x6c262c20, + 0x384bc: 0x6c262e20, 0x384bd: 0x6c3f1e20, 0x384be: 0x6c5e3a20, 0x384bf: 0x6c5e3c20, + // Block 0xe13, offset 0x384c0 + 0x384c0: 0x6c5e3e20, 0x384c1: 0x6c82e020, 0x384c2: 0x6c82e220, 0x384c3: 0x6c82e420, + 0x384c4: 0x6c82e620, 0x384c5: 0x6c82e820, 0x384c6: 0x6c82ea20, 0x384c7: 0x6c82ec20, + 0x384c8: 0x6c82ee20, 0x384c9: 0x6c82f020, 0x384ca: 0x6c82f220, 0x384cb: 0x6c82f420, + 0x384cc: 0x6cabe220, 0x384cd: 0x6cabe420, 0x384ce: 0x6cabe620, 0x384cf: 0x6cabe820, + 0x384d0: 0x6cda8220, 0x384d1: 0x6cda8420, 0x384d2: 0x6cda8620, 0x384d3: 0x6cda8820, + 0x384d4: 0x6d08fa20, 0x384d5: 0x6d36ee20, 0x384d6: 0x6d36f020, 0x384d7: 0x6d36f220, + 0x384d8: 0x6d635c20, 0x384d9: 0x6d635e20, 0x384da: 0x6d636020, 0x384db: 0x6d636220, + 0x384dc: 0x6d636420, 0x384dd: 0x6d636620, 0x384de: 0x6d8d6020, 0x384df: 0x6d8d6220, + 0x384e0: 0x6d8d6420, 0x384e1: 0x6db16c20, 0x384e2: 0x6db16e20, 0x384e3: 0x6db17020, + 0x384e4: 0x6db17220, 0x384e5: 0x6dd0b820, 0x384e6: 0x6dea6820, 0x384e7: 0x6dea6a20, + 0x384e8: 0x6dea6c20, 0x384e9: 0x6dea6e20, 0x384ea: 0x6dea7020, 0x384eb: 0x6e001620, + 0x384ec: 0x6e001820, 0x384ed: 0x6e001a20, 0x384ee: 0x6e001c20, 0x384ef: 0x6e125e20, + 0x384f0: 0x6e126020, 0x384f1: 0x6e33da20, 0x384f2: 0x6e3de420, 0x384f3: 0x6c148420, + 0x384f4: 0x6c148620, 0x384f5: 0x6c3f2020, 0x384f6: 0x6c5e4420, 0x384f7: 0x6c5e4620, + 0x384f8: 0x6c5e4820, 0x384f9: 0x6c82f620, 0x384fa: 0x6c82f820, 0x384fb: 0x6cabea20, + 0x384fc: 0x6cabec20, 0x384fd: 0x6cabee20, 0x384fe: 0x6cabf020, 0x384ff: 0x6cda9420, + // Block 0xe14, offset 0x38500 + 0x38500: 0x6cda9620, 0x38501: 0x6d08fe20, 0x38502: 0x6d36f620, 0x38503: 0x6d36f820, + 0x38504: 0x6d36fa20, 0x38505: 0x6d636a20, 0x38506: 0x6d636c20, 0x38507: 0x6d636e20, + 0x38508: 0x6d1dd820, 0x38509: 0x6d8d6820, 0x3850a: 0x6d8d6a20, 0x3850b: 0x6d8d6c20, + 0x3850c: 0x6d8d6e20, 0x3850d: 0x6d8d7020, 0x3850e: 0x6db17420, 0x3850f: 0x6dd0bc20, + 0x38510: 0x6dd0be20, 0x38511: 0x6c148a20, 0x38512: 0x6c148c20, 0x38513: 0x6c148e20, + 0x38514: 0x6c263020, 0x38515: 0x6c3f2620, 0x38516: 0x6c3f2820, 0x38517: 0x6c5e4c20, + 0x38518: 0x6c5e4e20, 0x38519: 0x6c3f2a20, 0x3851a: 0x6c5e5020, 0x3851b: 0x6c5e5220, + 0x3851c: 0x6c5e5420, 0x3851d: 0x6c830020, 0x3851e: 0x6c830220, 0x3851f: 0x6c830420, + 0x38520: 0x6c830620, 0x38521: 0x6c830820, 0x38522: 0x6c830a20, 0x38523: 0x6c830c20, + 0x38524: 0x6c830e20, 0x38525: 0x6cabf620, 0x38526: 0x6cabf820, 0x38527: 0x6c5e5620, + 0x38528: 0x6cabfa20, 0x38529: 0x6cabfc20, 0x3852a: 0x6cabfe20, 0x3852b: 0x6cac0020, + 0x3852c: 0x6cac0220, 0x3852d: 0x6cda9e20, 0x3852e: 0x6cdaa020, 0x3852f: 0x6cdaa220, + 0x38530: 0x6cdaa420, 0x38531: 0x6cdaa620, 0x38532: 0x6cdaa820, 0x38533: 0x6d090420, + 0x38534: 0x6d090620, 0x38535: 0x6d090820, 0x38536: 0x6d090a20, 0x38537: 0x6d090c20, + 0x38538: 0x6d090e20, 0x38539: 0x6d091020, 0x3853a: 0x6d091220, 0x3853b: 0x6d370420, + 0x3853c: 0x6d370620, 0x3853d: 0x6d370820, 0x3853e: 0x6d370a20, 0x3853f: 0x6d370c20, + // Block 0xe15, offset 0x38540 + 0x38540: 0x6d370e20, 0x38541: 0x6d371020, 0x38542: 0x6d371220, 0x38543: 0x6d371420, + 0x38544: 0x6d371620, 0x38545: 0x6d637220, 0x38546: 0x6d637420, 0x38547: 0x6d637620, + 0x38548: 0x6d637820, 0x38549: 0x6d637a20, 0x3854a: 0x6d637c20, 0x3854b: 0x6d637e20, + 0x3854c: 0x6d638020, 0x3854d: 0x6d638220, 0x3854e: 0x6d638420, 0x3854f: 0x6d8d7a20, + 0x38550: 0x6d8d7c20, 0x38551: 0x6d8d7e20, 0x38552: 0x6d8d8020, 0x38553: 0x6d8d8220, + 0x38554: 0x6d5dd620, 0x38555: 0x6d8d8420, 0x38556: 0x6d8d8620, 0x38557: 0x6d8d8820, + 0x38558: 0x6db17620, 0x38559: 0x6db17820, 0x3855a: 0x6db17a20, 0x3855b: 0x6db17c20, + 0x3855c: 0x6db17e20, 0x3855d: 0x6db18020, 0x3855e: 0x6db18220, 0x3855f: 0x6db18420, + 0x38560: 0x6db18620, 0x38561: 0x6dd0c220, 0x38562: 0x6dd0c420, 0x38563: 0x6dd0c620, + 0x38564: 0x6dd0c820, 0x38565: 0x6dd0ca20, 0x38566: 0x6dd0cc20, 0x38567: 0x6dd0ce20, + 0x38568: 0x6dca2e20, 0x38569: 0x6dea7620, 0x3856a: 0x6dea7820, 0x3856b: 0x6dea7a20, + 0x3856c: 0x6dea7c20, 0x3856d: 0x6e002020, 0x3856e: 0x6e002220, 0x3856f: 0x6dea7e20, + 0x38570: 0x6e002420, 0x38571: 0x6e002620, 0x38572: 0x6e002820, 0x38573: 0x6e002a20, + 0x38574: 0x6e002c20, 0x38575: 0x6e002e20, 0x38576: 0x6e126220, 0x38577: 0x6e126420, + 0x38578: 0x6e126620, 0x38579: 0x6e208020, 0x3857a: 0x6e2b6420, 0x3857b: 0x6e2b6620, + 0x3857c: 0x6e33de20, 0x3857d: 0x6e39b620, 0x3857e: 0x6e39b820, 0x3857f: 0x6e39ba20, + // Block 0xe16, offset 0x38580 + 0x38580: 0x6e3de820, 0x38581: 0x6e40c020, 0x38582: 0x6e40c220, 0x38583: 0x6e454420, + 0x38584: 0x6e472c20, 0x38585: 0x6e473620, 0x38586: 0x6c263220, 0x38587: 0x6c5e5820, + 0x38588: 0x6c831620, 0x38589: 0x6c831820, 0x3858a: 0x6c831a20, 0x3858b: 0x6c831c20, + 0x3858c: 0x6c831e20, 0x3858d: 0x6c832020, 0x3858e: 0x6c832220, 0x3858f: 0x6c832420, + 0x38590: 0x6c832620, 0x38591: 0x6cac0820, 0x38592: 0x6cac0a20, 0x38593: 0x6cac0c20, + 0x38594: 0x6cac0e20, 0x38595: 0x6cdaae20, 0x38596: 0x6cdab020, 0x38597: 0x6cdab220, + 0x38598: 0x6cdab420, 0x38599: 0x6cdab620, 0x3859a: 0x6cdab820, 0x3859b: 0x6cdaba20, + 0x3859c: 0x6cdabc20, 0x3859d: 0x6d091420, 0x3859e: 0x6d091620, 0x3859f: 0x6d371e20, + 0x385a0: 0x6d372020, 0x385a1: 0x6d372220, 0x385a2: 0x6d372420, 0x385a3: 0x6d372620, + 0x385a4: 0x6d372820, 0x385a5: 0x6d372a20, 0x385a6: 0x6d372c20, 0x385a7: 0x6d638c20, + 0x385a8: 0x6d638e20, 0x385a9: 0x6d639020, 0x385aa: 0x6d639220, 0x385ab: 0x6d639420, + 0x385ac: 0x6d639620, 0x385ad: 0x6d8d8c20, 0x385ae: 0x6d8d8e20, 0x385af: 0x6d8d9020, + 0x385b0: 0x6d8d9220, 0x385b1: 0x6db18820, 0x385b2: 0x6db18a20, 0x385b3: 0x6db18c20, + 0x385b4: 0x6dd0d420, 0x385b5: 0x6dd0d620, 0x385b6: 0x6dd0d820, 0x385b7: 0x6dea8220, + 0x385b8: 0x6e003020, 0x385b9: 0x6e126820, 0x385ba: 0x6e208220, 0x385bb: 0x6e2b6820, + 0x385bc: 0x6e2b6a20, 0x385bd: 0x6e3dec20, 0x385be: 0x6d639820, 0x385bf: 0x6d639a20, + // Block 0xe17, offset 0x385c0 + 0x385c0: 0x6dd0da20, 0x385c1: 0x6e003220, 0x385c2: 0x6e2b6c20, 0x385c3: 0x6e208620, + 0x385c4: 0x6e33e020, 0x385c5: 0x6e39bc20, 0x385c6: 0x6e40c420, 0x385c7: 0x6c263420, + 0x385c8: 0x6c3f3820, 0x385c9: 0x6c3f3a20, 0x385ca: 0x6c3f3c20, 0x385cb: 0x6c3f3e20, + 0x385cc: 0x6c3f4020, 0x385cd: 0x6c3f4220, 0x385ce: 0x6c5e6820, 0x385cf: 0x6c5e6a20, + 0x385d0: 0x6c5e6c20, 0x385d1: 0x6c5e6e20, 0x385d2: 0x6c5e7020, 0x385d3: 0x6c5e7220, + 0x385d4: 0x6c5e7420, 0x385d5: 0x6c834620, 0x385d6: 0x6c834820, 0x385d7: 0x6c834a20, + 0x385d8: 0x6c834c20, 0x385d9: 0x6c834e20, 0x385da: 0x6c835020, 0x385db: 0x6c835220, + 0x385dc: 0x6c835420, 0x385dd: 0x6c835620, 0x385de: 0x6c835820, 0x385df: 0x6c835a20, + 0x385e0: 0x6c835c20, 0x385e1: 0x6cac2c20, 0x385e2: 0x6cac2e20, 0x385e3: 0x6cac3020, + 0x385e4: 0x6cac3220, 0x385e5: 0x6cac3420, 0x385e6: 0x6cac3620, 0x385e7: 0x6cac3820, + 0x385e8: 0x6cac3a20, 0x385e9: 0x6cac3c20, 0x385ea: 0x6cac3e20, 0x385eb: 0x6cac4020, + 0x385ec: 0x6cac4220, 0x385ed: 0x6cac4420, 0x385ee: 0x6cac4620, 0x385ef: 0x6cdad220, + 0x385f0: 0x6cdad420, 0x385f1: 0x6cdad620, 0x385f2: 0x6cdad820, 0x385f3: 0x6d093620, + 0x385f4: 0x6cdada20, 0x385f5: 0x6cdadc20, 0x385f6: 0x6cdade20, 0x385f7: 0x6cdae020, + 0x385f8: 0x6cdae220, 0x385f9: 0x6cdae420, 0x385fa: 0x6cdae620, 0x385fb: 0x6cdae820, + 0x385fc: 0x6cdaea20, 0x385fd: 0x6d093820, 0x385fe: 0x6d093a20, 0x385ff: 0x6d093c20, + // Block 0xe18, offset 0x38600 + 0x38600: 0x6d093e20, 0x38601: 0x6d094020, 0x38602: 0x6d094220, 0x38603: 0x6d094420, + 0x38604: 0x6d094620, 0x38605: 0x6d094820, 0x38606: 0x6d094a20, 0x38607: 0x6d094c20, + 0x38608: 0x6d094e20, 0x38609: 0x6d095020, 0x3860a: 0x6d374a20, 0x3860b: 0x6d374c20, + 0x3860c: 0x6d374e20, 0x3860d: 0x6d375020, 0x3860e: 0x6d375220, 0x3860f: 0x6d375420, + 0x38610: 0x6d375620, 0x38611: 0x6d375820, 0x38612: 0x6d375a20, 0x38613: 0x6d375c20, + 0x38614: 0x6d375e20, 0x38615: 0x6d376020, 0x38616: 0x6d376220, 0x38617: 0x6d376420, + 0x38618: 0x6d376620, 0x38619: 0x6d376820, 0x3861a: 0x6d376a20, 0x3861b: 0x6d376c20, + 0x3861c: 0x6d376e20, 0x3861d: 0x6d63b020, 0x3861e: 0x6d63b220, 0x3861f: 0x6d63b420, + 0x38620: 0x6d63b620, 0x38621: 0x6d63b820, 0x38622: 0x6d63ba20, 0x38623: 0x6d63bc20, + 0x38624: 0x6d63be20, 0x38625: 0x6d63c020, 0x38626: 0x6d63c220, 0x38627: 0x6d63c420, + 0x38628: 0x6d63c620, 0x38629: 0x6d63c820, 0x3862a: 0x6d63ca20, 0x3862b: 0x6d63cc20, + 0x3862c: 0x6d63ce20, 0x3862d: 0x6d63d020, 0x3862e: 0x6d63d220, 0x3862f: 0x6d63d420, + 0x38630: 0x6d63d620, 0x38631: 0x6d63d820, 0x38632: 0x6d63da20, 0x38633: 0x6d63dc20, + 0x38634: 0x6d8da820, 0x38635: 0x6d8daa20, 0x38636: 0x6d8dac20, 0x38637: 0x6d8dae20, + 0x38638: 0x6d8db020, 0x38639: 0x6d8db220, 0x3863a: 0x6d8db420, 0x3863b: 0x6d8db620, + 0x3863c: 0x6d8db820, 0x3863d: 0x6d8dba20, 0x3863e: 0x6d8dbc20, 0x3863f: 0x6d63de20, + // Block 0xe19, offset 0x38640 + 0x38640: 0x6d8dbe20, 0x38641: 0x6d8dc020, 0x38642: 0x6d8dc220, 0x38643: 0x6d8dc420, + 0x38644: 0x6d8dc620, 0x38645: 0x6d8dc820, 0x38646: 0x6db1a420, 0x38647: 0x6db1a620, + 0x38648: 0x6db1a820, 0x38649: 0x6db1aa20, 0x3864a: 0x6db1ac20, 0x3864b: 0x6db1ae20, + 0x3864c: 0x6db1b020, 0x3864d: 0x6db1b220, 0x3864e: 0x6db1b420, 0x3864f: 0x6db1b620, + 0x38650: 0x6db1b820, 0x38651: 0x6dd0e820, 0x38652: 0x6dd0ea20, 0x38653: 0x6dd0ec20, + 0x38654: 0x6dd0ee20, 0x38655: 0x6dd0f020, 0x38656: 0x6dd0f220, 0x38657: 0x6dd0f420, + 0x38658: 0x6dd0f620, 0x38659: 0x6dd0f820, 0x3865a: 0x6dd0fa20, 0x3865b: 0x6dd0fc20, + 0x3865c: 0x6dd0fe20, 0x3865d: 0x6dd10020, 0x3865e: 0x6dd10220, 0x3865f: 0x6dd10420, + 0x38660: 0x6dd10620, 0x38661: 0x6dd10820, 0x38662: 0x6dd10a20, 0x38663: 0x6dd10c20, + 0x38664: 0x6dd10e20, 0x38665: 0x6dd11020, 0x38666: 0x6dd11220, 0x38667: 0x6dd11420, + 0x38668: 0x6dea9020, 0x38669: 0x6dea9220, 0x3866a: 0x6dea9420, 0x3866b: 0x6dea9620, + 0x3866c: 0x6dea9820, 0x3866d: 0x6dea9a20, 0x3866e: 0x6dea9c20, 0x3866f: 0x6dea9e20, + 0x38670: 0x6deaa020, 0x38671: 0x6e003e20, 0x38672: 0x6e004020, 0x38673: 0x6e004220, + 0x38674: 0x6e004420, 0x38675: 0x6e004620, 0x38676: 0x6e126e20, 0x38677: 0x6e127020, + 0x38678: 0x6e127220, 0x38679: 0x6e105820, 0x3867a: 0x6e127420, 0x3867b: 0x6e127620, + 0x3867c: 0x6e127820, 0x3867d: 0x6e208a20, 0x3867e: 0x6e208c20, 0x3867f: 0x6e208e20, + // Block 0xe1a, offset 0x38680 + 0x38680: 0x6e209020, 0x38681: 0x6e209220, 0x38682: 0x6e209420, 0x38683: 0x6e2b7020, + 0x38684: 0x6e2b7220, 0x38685: 0x6e39be20, 0x38686: 0x6e39c020, 0x38687: 0x6e3dee20, + 0x38688: 0x6e40c620, 0x38689: 0x6e3df020, 0x3868a: 0x6e454620, 0x3868b: 0x6c5e7820, + 0x3868c: 0x6cac4820, 0x3868d: 0x6cac4a20, 0x3868e: 0x6cdaec20, 0x3868f: 0x6d095220, + 0x38690: 0x6d63e420, 0x38691: 0x6db1be20, 0x38692: 0x6e004a20, 0x38693: 0x6c5e7c20, + 0x38694: 0x6cac5020, 0x38695: 0x6cac5220, 0x38696: 0x6cac5420, 0x38697: 0x6cac5620, + 0x38698: 0x6cac5820, 0x38699: 0x6cac5a20, 0x3869a: 0x6cdaee20, 0x3869b: 0x6d095420, + 0x3869c: 0x6d095620, 0x3869d: 0x6d095820, 0x3869e: 0x6d377420, 0x3869f: 0x6d377620, + 0x386a0: 0x6d377820, 0x386a1: 0x6d377a20, 0x386a2: 0x6d377c20, 0x386a3: 0x6d377e20, + 0x386a4: 0x6d63e620, 0x386a5: 0x6d63e820, 0x386a6: 0x6d63ea20, 0x386a7: 0x6d63ec20, + 0x386a8: 0x6d63ee20, 0x386a9: 0x6d63f020, 0x386aa: 0x6d8dce20, 0x386ab: 0x6d8dd020, + 0x386ac: 0x6d8dd220, 0x386ad: 0x6d8dd420, 0x386ae: 0x6d8dd620, 0x386af: 0x6e004c20, + 0x386b0: 0x6e004e20, 0x386b1: 0x6e005020, 0x386b2: 0x6e39c220, 0x386b3: 0x6c0a5a20, + 0x386b4: 0x6c0a5c20, 0x386b5: 0x6c0a5e20, 0x386b6: 0x6c14b020, 0x386b7: 0x6c14b220, + 0x386b8: 0x6c14b420, 0x386b9: 0x6c14b620, 0x386ba: 0x6c14b820, 0x386bb: 0x6c14ba20, + 0x386bc: 0x6c14bc20, 0x386bd: 0x6c14be20, 0x386be: 0x6c14c020, 0x386bf: 0x6c14c220, + // Block 0xe1b, offset 0x386c0 + 0x386c0: 0x6c14c420, 0x386c1: 0x6c266020, 0x386c2: 0x6c266220, 0x386c3: 0x6c266420, + 0x386c4: 0x6c266620, 0x386c5: 0x6c266820, 0x386c6: 0x6c266a20, 0x386c7: 0x6c266c20, + 0x386c8: 0x6c266e20, 0x386c9: 0x6c267020, 0x386ca: 0x6c267220, 0x386cb: 0x6c267420, + 0x386cc: 0x6c267620, 0x386cd: 0x6c267820, 0x386ce: 0x6c267a20, 0x386cf: 0x6c267c20, + 0x386d0: 0x6c267e20, 0x386d1: 0x6c268020, 0x386d2: 0x6c268220, 0x386d3: 0x6c3fba20, + 0x386d4: 0x6c3fbc20, 0x386d5: 0x6c3fbe20, 0x386d6: 0x6c3fc020, 0x386d7: 0x6c3fc220, + 0x386d8: 0x6c3fc420, 0x386d9: 0x6c3fc620, 0x386da: 0x6c3fc820, 0x386db: 0x6c3fca20, + 0x386dc: 0x6c3fcc20, 0x386dd: 0x6c3fce20, 0x386de: 0x6c3fd020, 0x386df: 0x6c3fd220, + 0x386e0: 0x6c3fd420, 0x386e1: 0x6c3fd620, 0x386e2: 0x6c3fd820, 0x386e3: 0x6c3fda20, + 0x386e4: 0x6c3fdc20, 0x386e5: 0x6c3fde20, 0x386e6: 0x6c3fe020, 0x386e7: 0x6c3fe220, + 0x386e8: 0x6c3fe420, 0x386e9: 0x6c3fe620, 0x386ea: 0x6c3fe820, 0x386eb: 0x6c3fea20, + 0x386ec: 0x6c3fec20, 0x386ed: 0x6c3fee20, 0x386ee: 0x6c3ff020, 0x386ef: 0x6c3ff220, + 0x386f0: 0x6c3ff420, 0x386f1: 0x6c3ff620, 0x386f2: 0x6c3ff820, 0x386f3: 0x6c3ffa20, + 0x386f4: 0x6c3ffc20, 0x386f5: 0x6c3ffe20, 0x386f6: 0x6c400020, 0x386f7: 0x6c5f1220, + 0x386f8: 0x6c5f1420, 0x386f9: 0x6c5f1620, 0x386fa: 0x6c5f1820, 0x386fb: 0x6c5f1a20, + 0x386fc: 0x6c5f1c20, 0x386fd: 0x6c5f1e20, 0x386fe: 0x6c5f2020, 0x386ff: 0x6c5f2220, + // Block 0xe1c, offset 0x38700 + 0x38700: 0x6c5f2420, 0x38701: 0x6c5f2620, 0x38702: 0x6c5f2820, 0x38703: 0x6c5f2a20, + 0x38704: 0x6c5f2c20, 0x38705: 0x6c5f2e20, 0x38706: 0x6c5f3020, 0x38707: 0x6c5f3220, + 0x38708: 0x6c5f3420, 0x38709: 0x6c5f3620, 0x3870a: 0x6c5f3820, 0x3870b: 0x6c5f3a20, + 0x3870c: 0x6c5f3c20, 0x3870d: 0x6c5f3e20, 0x3870e: 0x6c5f4020, 0x3870f: 0x6c5f4220, + 0x38710: 0x6c5f4420, 0x38711: 0x6c5f4620, 0x38712: 0x6c5f4820, 0x38713: 0x6c5f4a20, + 0x38714: 0x6c5f4c20, 0x38715: 0x6c5f4e20, 0x38716: 0x6c5f5020, 0x38717: 0x6c5f5220, + 0x38718: 0x6c5f5420, 0x38719: 0x6c5f5620, 0x3871a: 0x6c5f5820, 0x3871b: 0x6c5f5a20, + 0x3871c: 0x6c5f5c20, 0x3871d: 0x6c5f5e20, 0x3871e: 0x6c5f6020, 0x3871f: 0x6c5f6220, + 0x38720: 0x6c5f6420, 0x38721: 0x6c5f6620, 0x38722: 0x6c5f6820, 0x38723: 0x6c5f6a20, + 0x38724: 0x6c5f6c20, 0x38725: 0x6c5f6e20, 0x38726: 0x6c5f7020, 0x38727: 0x6c5f7220, + 0x38728: 0x6c5f7420, 0x38729: 0x6c5f7620, 0x3872a: 0x6c5f7820, 0x3872b: 0x6c5f7a20, + 0x3872c: 0x6c5f7c20, 0x3872d: 0x6c841e20, 0x3872e: 0x6c842020, 0x3872f: 0x6c842220, + 0x38730: 0x6c842420, 0x38731: 0x6c842620, 0x38732: 0x6c842820, 0x38733: 0x6c842a20, + 0x38734: 0x6c842c20, 0x38735: 0x6c842e20, 0x38736: 0x6c843020, 0x38737: 0x6c843220, + 0x38738: 0x6c843420, 0x38739: 0x6c843620, 0x3873a: 0x6c843820, 0x3873b: 0x6c843a20, + 0x3873c: 0x6c843c20, 0x3873d: 0x6c843e20, 0x3873e: 0x6c844020, 0x3873f: 0x6c844220, + // Block 0xe1d, offset 0x38740 + 0x38740: 0x6c844420, 0x38741: 0x6c844620, 0x38742: 0x6c844820, 0x38743: 0x6c844a20, + 0x38744: 0x6c844c20, 0x38745: 0x6c844e20, 0x38746: 0x6c845020, 0x38747: 0x6c845220, + 0x38748: 0x6c845420, 0x38749: 0x6c845620, 0x3874a: 0x6c845820, 0x3874b: 0x6c845a20, + 0x3874c: 0x6c845c20, 0x3874d: 0x6c845e20, 0x3874e: 0x6c846020, 0x3874f: 0x6c846220, + 0x38750: 0x6c846420, 0x38751: 0x6c846620, 0x38752: 0x6c846820, 0x38753: 0x6c846a20, + 0x38754: 0x6c846c20, 0x38755: 0x6c846e20, 0x38756: 0x6c847020, 0x38757: 0x6c847220, + 0x38758: 0x6c847420, 0x38759: 0x6c847620, 0x3875a: 0x6c847820, 0x3875b: 0x6c847a20, + 0x3875c: 0x6c847c20, 0x3875d: 0x6c847e20, 0x3875e: 0x6c848020, 0x3875f: 0x6c848220, + 0x38760: 0x6c848420, 0x38761: 0x6c848620, 0x38762: 0x6c848820, 0x38763: 0x6c848a20, + 0x38764: 0x6c848c20, 0x38765: 0x6c848e20, 0x38766: 0x6c849020, 0x38767: 0x6c849220, + 0x38768: 0x6c849420, 0x38769: 0x6c849620, 0x3876a: 0x6c849820, 0x3876b: 0x6c849a20, + 0x3876c: 0x6c849c20, 0x3876d: 0x6c849e20, 0x3876e: 0x6c84a020, 0x3876f: 0x6c84a220, + 0x38770: 0x6c84a420, 0x38771: 0x6c84a620, 0x38772: 0x6c84a820, 0x38773: 0x6c84aa20, + 0x38774: 0x6c84ac20, 0x38775: 0x6c84ae20, 0x38776: 0x6cad1020, 0x38777: 0x6cad1220, + 0x38778: 0x6cad1420, 0x38779: 0x6cad1620, 0x3877a: 0x6cad1820, 0x3877b: 0x6cad1a20, + 0x3877c: 0x6cad1c20, 0x3877d: 0x6cad1e20, 0x3877e: 0x6cad2020, 0x3877f: 0x6cad2220, + // Block 0xe1e, offset 0x38780 + 0x38780: 0x6cad2420, 0x38781: 0x6cad2620, 0x38782: 0x6cad2820, 0x38783: 0x6cad2a20, + 0x38784: 0x6cad2c20, 0x38785: 0x6cad2e20, 0x38786: 0x6cad3020, 0x38787: 0x6cad3220, + 0x38788: 0x6cad3420, 0x38789: 0x6cad3620, 0x3878a: 0x6cad3820, 0x3878b: 0x6cad3a20, + 0x3878c: 0x6cad3c20, 0x3878d: 0x6cad3e20, 0x3878e: 0x6cad4020, 0x3878f: 0x6cad4220, + 0x38790: 0x6cad4420, 0x38791: 0x6cad4620, 0x38792: 0x6cad4820, 0x38793: 0x6cad4a20, + 0x38794: 0x6cad4c20, 0x38795: 0x6cad4e20, 0x38796: 0x6cad5020, 0x38797: 0x6cad5220, + 0x38798: 0x6cad5420, 0x38799: 0x6cad5620, 0x3879a: 0x6cad5820, 0x3879b: 0x6cad5a20, + 0x3879c: 0x6cad5c20, 0x3879d: 0x6cad5e20, 0x3879e: 0x6cad6020, 0x3879f: 0x6cad6220, + 0x387a0: 0x6cad6420, 0x387a1: 0x6cad6620, 0x387a2: 0x6cad6820, 0x387a3: 0x6cad6a20, + 0x387a4: 0x6cad6c20, 0x387a5: 0x6cad6e20, 0x387a6: 0x6cad7020, 0x387a7: 0x6cad7220, + 0x387a8: 0x6cad7420, 0x387a9: 0x6cad7620, 0x387aa: 0x6cad7820, 0x387ab: 0x6cad7a20, + 0x387ac: 0x6cad7c20, 0x387ad: 0x6cad7e20, 0x387ae: 0x6cad8020, 0x387af: 0x6cad8220, + 0x387b0: 0x6cad8420, 0x387b1: 0x6cdbf020, 0x387b2: 0x6cad8620, 0x387b3: 0x6cad8820, + 0x387b4: 0x6cad8a20, 0x387b5: 0x6cad8c20, 0x387b6: 0x6cad8e20, 0x387b7: 0x6cad9020, + 0x387b8: 0x6cad9220, 0x387b9: 0x6cad9420, 0x387ba: 0x6cad9620, 0x387bb: 0x6cad9820, + 0x387bc: 0x6cad9a20, 0x387bd: 0x6cad9c20, 0x387be: 0x6cad9e20, 0x387bf: 0x6cada020, + // Block 0xe1f, offset 0x387c0 + 0x387c0: 0x6cada220, 0x387c1: 0x6cada420, 0x387c2: 0x6cada620, 0x387c3: 0x6cada820, + 0x387c4: 0x6cadaa20, 0x387c5: 0x6cadac20, 0x387c6: 0x6cadae20, 0x387c7: 0x6cadb020, + 0x387c8: 0x6cadb220, 0x387c9: 0x6cadb420, 0x387ca: 0x6cadb620, 0x387cb: 0x6cadb820, + 0x387cc: 0x6cadba20, 0x387cd: 0x6cadbc20, 0x387ce: 0x6cadbe20, 0x387cf: 0x6cadc020, + 0x387d0: 0x6cadc220, 0x387d1: 0x6cadc420, 0x387d2: 0x6cadc620, 0x387d3: 0x6cadc820, + 0x387d4: 0x6cadca20, 0x387d5: 0x6cadcc20, 0x387d6: 0x6cdbf220, 0x387d7: 0x6cadce20, + 0x387d8: 0x6cadd020, 0x387d9: 0x6cadd220, 0x387da: 0x6cadd420, 0x387db: 0x6cadd620, + 0x387dc: 0x6cadd820, 0x387dd: 0x6cadda20, 0x387de: 0x6caddc20, 0x387df: 0x6cadde20, + 0x387e0: 0x6cade020, 0x387e1: 0x6cade220, 0x387e2: 0x6cade420, 0x387e3: 0x6cade620, + 0x387e4: 0x6cade820, 0x387e5: 0x6cadea20, 0x387e6: 0x6cadec20, 0x387e7: 0x6cadee20, + 0x387e8: 0x6cadf020, 0x387e9: 0x6cadf220, 0x387ea: 0x6cdbf420, 0x387eb: 0x6cdbf620, + 0x387ec: 0x6cdbf820, 0x387ed: 0x6cdbfa20, 0x387ee: 0x6cdbfc20, 0x387ef: 0x6cdbfe20, + 0x387f0: 0x6cdc0020, 0x387f1: 0x6cdc0220, 0x387f2: 0x6cdc0420, 0x387f3: 0x6cdc0620, + 0x387f4: 0x6cdc0820, 0x387f5: 0x6cdc0a20, 0x387f6: 0x6cdc0c20, 0x387f7: 0x6cdc0e20, + 0x387f8: 0x6cdc1020, 0x387f9: 0x6cdc1220, 0x387fa: 0x6cdc1420, 0x387fb: 0x6cdc1620, + 0x387fc: 0x6cdc1820, 0x387fd: 0x6cdc1a20, 0x387fe: 0x6cdc1c20, 0x387ff: 0x6cdc1e20, + // Block 0xe20, offset 0x38800 + 0x38800: 0x6cdc2020, 0x38801: 0x6cdc2220, 0x38802: 0x6cdc2420, 0x38803: 0x6cdc2620, + 0x38804: 0x6cdc2820, 0x38805: 0x6cdc2a20, 0x38806: 0x6cdc2c20, 0x38807: 0x6cdc2e20, + 0x38808: 0x6cdc3020, 0x38809: 0x6cdc3220, 0x3880a: 0x6cdc3420, 0x3880b: 0x6cdc3620, + 0x3880c: 0x6cdc3820, 0x3880d: 0x6cdc3a20, 0x3880e: 0x6cdc3c20, 0x3880f: 0x6cdc3e20, + 0x38810: 0x6cdc4020, 0x38811: 0x6cdc4220, 0x38812: 0x6cdc4420, 0x38813: 0x6cdc4620, + 0x38814: 0x6cdc4820, 0x38815: 0x6cdc4a20, 0x38816: 0x6cdc4c20, 0x38817: 0x6cdc4e20, + 0x38818: 0x6cdc5020, 0x38819: 0x6cdc5220, 0x3881a: 0x6cdc5420, 0x3881b: 0x6cdc5620, + 0x3881c: 0x6cdc5820, 0x3881d: 0x6cdc5a20, 0x3881e: 0x6cdc5c20, 0x3881f: 0x6cdc5e20, + 0x38820: 0x6cdc6020, 0x38821: 0x6cdc6220, 0x38822: 0x6cdc6420, 0x38823: 0x6cdc6620, + 0x38824: 0x6cdc6820, 0x38825: 0x6cdc6a20, 0x38826: 0x6cdc6c20, 0x38827: 0x6cdc6e20, + 0x38828: 0x6cdc7020, 0x38829: 0x6cdc7220, 0x3882a: 0x6cdc7420, 0x3882b: 0x6cdc7620, + 0x3882c: 0x6cdc7820, 0x3882d: 0x6cdc7a20, 0x3882e: 0x6cdc7c20, 0x3882f: 0x6cdc7e20, + 0x38830: 0x6cdc8020, 0x38831: 0x6cdc8220, 0x38832: 0x6cdc8420, 0x38833: 0x6cdc8620, + 0x38834: 0x6cdc8820, 0x38835: 0x6cdc8a20, 0x38836: 0x6cdc8c20, 0x38837: 0x6cdc8e20, + 0x38838: 0x6cdc9020, 0x38839: 0x6cdc9220, 0x3883a: 0x6cdc9420, 0x3883b: 0x6cdc9620, + 0x3883c: 0x6cdc9820, 0x3883d: 0x6cdc9a20, 0x3883e: 0x6cdc9c20, 0x3883f: 0x6cdc9e20, + // Block 0xe21, offset 0x38840 + 0x38840: 0x6cdca020, 0x38841: 0x6cdca220, 0x38842: 0x6cdca420, 0x38843: 0x6cdca620, + 0x38844: 0x6cdca820, 0x38845: 0x6cdcaa20, 0x38846: 0x6cdcac20, 0x38847: 0x6cdcae20, + 0x38848: 0x6cdcb020, 0x38849: 0x6cdcb220, 0x3884a: 0x6cdcb420, 0x3884b: 0x6cdcb620, + 0x3884c: 0x6cdcb820, 0x3884d: 0x6cdcba20, 0x3884e: 0x6cdcbc20, 0x3884f: 0x6cdcbe20, + 0x38850: 0x6cdcc020, 0x38851: 0x6cdcc220, 0x38852: 0x6cdcc420, 0x38853: 0x6cdcc620, + 0x38854: 0x6cdcc820, 0x38855: 0x6cdcca20, 0x38856: 0x6cdccc20, 0x38857: 0x6cdcce20, + 0x38858: 0x6cdcd020, 0x38859: 0x6cdcd220, 0x3885a: 0x6cdcd420, 0x3885b: 0x6cdcd620, + 0x3885c: 0x6cdcd820, 0x3885d: 0x6cdcda20, 0x3885e: 0x6cdcdc20, 0x3885f: 0x6cdcde20, + 0x38860: 0x6cdce020, 0x38861: 0x6cdce220, 0x38862: 0x6cdce420, 0x38863: 0x6cdce620, + 0x38864: 0x6cdce820, 0x38865: 0x6cdcea20, 0x38866: 0x6cdcec20, 0x38867: 0x6cdcee20, + 0x38868: 0x6cdcf020, 0x38869: 0x6cdcf220, 0x3886a: 0x6cdcf420, 0x3886b: 0x6cdcf620, + 0x3886c: 0x6cdcf820, 0x3886d: 0x6cdcfa20, 0x3886e: 0x6cdcfc20, 0x3886f: 0x6cdcfe20, + 0x38870: 0x6cdd0020, 0x38871: 0x6cdd0220, 0x38872: 0x6cdd0420, 0x38873: 0x6cdd0620, + 0x38874: 0x6cdd0820, 0x38875: 0x6cdd0a20, 0x38876: 0x6cdd0c20, 0x38877: 0x6cdd0e20, + 0x38878: 0x6cdd1020, 0x38879: 0x6cdd1220, 0x3887a: 0x6cdd1420, 0x3887b: 0x6cdd1620, + 0x3887c: 0x6cdd1820, 0x3887d: 0x6cdd1a20, 0x3887e: 0x6cdd1c20, 0x3887f: 0x6cdd1e20, + // Block 0xe22, offset 0x38880 + 0x38880: 0x6cdd2020, 0x38881: 0x6d0a5020, 0x38882: 0x6d0a5220, 0x38883: 0x6d0a5420, + 0x38884: 0x6d0a5620, 0x38885: 0x6d0a5820, 0x38886: 0x6d0a5a20, 0x38887: 0x6d0a5c20, + 0x38888: 0x6d0a5e20, 0x38889: 0x6d0a6020, 0x3888a: 0x6d0a6220, 0x3888b: 0x6d0a6420, + 0x3888c: 0x6d0a6620, 0x3888d: 0x6d0a6820, 0x3888e: 0x6d0a6a20, 0x3888f: 0x6d0a6c20, + 0x38890: 0x6d0a6e20, 0x38891: 0x6d0a7020, 0x38892: 0x6d0a7220, 0x38893: 0x6d0a7420, + 0x38894: 0x6d0a7620, 0x38895: 0x6d0a7820, 0x38896: 0x6d0a7a20, 0x38897: 0x6d0a7c20, + 0x38898: 0x6d0a7e20, 0x38899: 0x6d0a8020, 0x3889a: 0x6d0a8220, 0x3889b: 0x6d0a8420, + 0x3889c: 0x6d0a8620, 0x3889d: 0x6d0a8820, 0x3889e: 0x6d0a8a20, 0x3889f: 0x6d0a8c20, + 0x388a0: 0x6d0a8e20, 0x388a1: 0x6d0a9020, 0x388a2: 0x6d0a9220, 0x388a3: 0x6d0a9420, + 0x388a4: 0x6d0a9620, 0x388a5: 0x6d0a9820, 0x388a6: 0x6d0a9a20, 0x388a7: 0x6d0a9c20, + 0x388a8: 0x6d0a9e20, 0x388a9: 0x6d0aa020, 0x388aa: 0x6d0aa220, 0x388ab: 0x6d0aa420, + 0x388ac: 0x6d0aa620, 0x388ad: 0x6d0aa820, 0x388ae: 0x6d0aaa20, 0x388af: 0x6d0aac20, + 0x388b0: 0x6d0aae20, 0x388b1: 0x6d0ab020, 0x388b2: 0x6d0ab220, 0x388b3: 0x6d0ab420, + 0x388b4: 0x6d0ab620, 0x388b5: 0x6d0ab820, 0x388b6: 0x6d0aba20, 0x388b7: 0x6d0abc20, + 0x388b8: 0x6d0abe20, 0x388b9: 0x6d0ac020, 0x388ba: 0x6d0ac220, 0x388bb: 0x6d0ac420, + 0x388bc: 0x6d0ac620, 0x388bd: 0x6d0ac820, 0x388be: 0x6d0aca20, 0x388bf: 0x6d0acc20, + // Block 0xe23, offset 0x388c0 + 0x388c0: 0x6d0ace20, 0x388c1: 0x6d0ad020, 0x388c2: 0x6d0ad220, 0x388c3: 0x6d0ad420, + 0x388c4: 0x6d0ad620, 0x388c5: 0x6d0ad820, 0x388c6: 0x6d0ada20, 0x388c7: 0x6d0adc20, + 0x388c8: 0x6d0ade20, 0x388c9: 0x6d0ae020, 0x388ca: 0x6d0ae220, 0x388cb: 0x6d0ae420, + 0x388cc: 0x6d0ae620, 0x388cd: 0x6d0ae820, 0x388ce: 0x6d0aea20, 0x388cf: 0x6d0aec20, + 0x388d0: 0x6d0aee20, 0x388d1: 0x6d0af020, 0x388d2: 0x6d0af220, 0x388d3: 0x6d0af420, + 0x388d4: 0x6d0af620, 0x388d5: 0x6d0af820, 0x388d6: 0x6d0afa20, 0x388d7: 0x6d0afc20, + 0x388d8: 0x6d0afe20, 0x388d9: 0x6d0b0020, 0x388da: 0x6d0b0220, 0x388db: 0x6d0b0420, + 0x388dc: 0x6d0b0620, 0x388dd: 0x6d0b0820, 0x388de: 0x6d0b0a20, 0x388df: 0x6d0b0c20, + 0x388e0: 0x6d0b0e20, 0x388e1: 0x6d0b1020, 0x388e2: 0x6d0b1220, 0x388e3: 0x6d0b1420, + 0x388e4: 0x6d0b1620, 0x388e5: 0x6d0b1820, 0x388e6: 0x6d0b1a20, 0x388e7: 0x6d0b1c20, + 0x388e8: 0x6d0b1e20, 0x388e9: 0x6d0b2020, 0x388ea: 0x6d0b2220, 0x388eb: 0x6d0b2420, + 0x388ec: 0x6d0b2620, 0x388ed: 0x6d0b2820, 0x388ee: 0x6d0b2a20, 0x388ef: 0x6d0b2c20, + 0x388f0: 0x6d0b2e20, 0x388f1: 0x6d0b3020, 0x388f2: 0x6d0b3220, 0x388f3: 0x6d0b3420, + 0x388f4: 0x6d0b3620, 0x388f5: 0x6d0b3820, 0x388f6: 0x6cfba420, 0x388f7: 0x6d0b3a20, + 0x388f8: 0x6d0b3c20, 0x388f9: 0x6d0b3e20, 0x388fa: 0x6d0b4020, 0x388fb: 0x6d0b4220, + 0x388fc: 0x6d0b4420, 0x388fd: 0x6d0b4620, 0x388fe: 0x6d0b4820, 0x388ff: 0x6d0b4a20, + // Block 0xe24, offset 0x38900 + 0x38900: 0x6d0b4c20, 0x38901: 0x6d0b4e20, 0x38902: 0x6d0b5020, 0x38903: 0x6d0b5220, + 0x38904: 0x6d0b5420, 0x38905: 0x6d0b5620, 0x38906: 0x6d0b5820, 0x38907: 0x6d385420, + 0x38908: 0x6d0b5a20, 0x38909: 0x6d0b5c20, 0x3890a: 0x6d0b5e20, 0x3890b: 0x6d0b6020, + 0x3890c: 0x6d0b6220, 0x3890d: 0x6d0b6420, 0x3890e: 0x6d0b6620, 0x3890f: 0x6d0b6820, + 0x38910: 0x6d0b6a20, 0x38911: 0x6d0b6c20, 0x38912: 0x6d0b6e20, 0x38913: 0x6d0b7020, + 0x38914: 0x6d0b7220, 0x38915: 0x6d0b7420, 0x38916: 0x6d0b7620, 0x38917: 0x6d0b7820, + 0x38918: 0x6d0b7a20, 0x38919: 0x6d0b7c20, 0x3891a: 0x6d0b7e20, 0x3891b: 0x6d0b8020, + 0x3891c: 0x6d0b8220, 0x3891d: 0x6d0b8420, 0x3891e: 0x6d0b8620, 0x3891f: 0x6d0b8820, + 0x38920: 0x6d0b8a20, 0x38921: 0x6d385620, 0x38922: 0x6d385820, 0x38923: 0x6d385a20, + 0x38924: 0x6d385c20, 0x38925: 0x6d385e20, 0x38926: 0x6d386020, 0x38927: 0x6d386220, + 0x38928: 0x6d386420, 0x38929: 0x6d386620, 0x3892a: 0x6d386820, 0x3892b: 0x6d386a20, + 0x3892c: 0x6d386c20, 0x3892d: 0x6d386e20, 0x3892e: 0x6d387020, 0x3892f: 0x6d387220, + 0x38930: 0x6d387420, 0x38931: 0x6d387620, 0x38932: 0x6d387820, 0x38933: 0x6d387a20, + 0x38934: 0x6d387c20, 0x38935: 0x6d387e20, 0x38936: 0x6d388020, 0x38937: 0x6d388220, + 0x38938: 0x6d388420, 0x38939: 0x6d388620, 0x3893a: 0x6d388820, 0x3893b: 0x6d388a20, + 0x3893c: 0x6d388c20, 0x3893d: 0x6d388e20, 0x3893e: 0x6d389020, 0x3893f: 0x6d389220, + // Block 0xe25, offset 0x38940 + 0x38940: 0x6d389420, 0x38941: 0x6d389620, 0x38942: 0x6d389820, 0x38943: 0x6d389a20, + 0x38944: 0x6d389c20, 0x38945: 0x6d389e20, 0x38946: 0x6d38a020, 0x38947: 0x6d38a220, + 0x38948: 0x6d38a420, 0x38949: 0x6d38a620, 0x3894a: 0x6d38a820, 0x3894b: 0x6d38aa20, + 0x3894c: 0x6d38ac20, 0x3894d: 0x6d38ae20, 0x3894e: 0x6d38b020, 0x3894f: 0x6d38b220, + 0x38950: 0x6d38b420, 0x38951: 0x6d38b620, 0x38952: 0x6d38b820, 0x38953: 0x6d38ba20, + 0x38954: 0x6d38bc20, 0x38955: 0x6d38be20, 0x38956: 0x6d38c020, 0x38957: 0x6d38c220, + 0x38958: 0x6d38c420, 0x38959: 0x6d38c620, 0x3895a: 0x6d38c820, 0x3895b: 0x6d38ca20, + 0x3895c: 0x6d38cc20, 0x3895d: 0x6d38ce20, 0x3895e: 0x6d38d020, 0x3895f: 0x6d38d220, + 0x38960: 0x6d38d420, 0x38961: 0x6d38d620, 0x38962: 0x6d38d820, 0x38963: 0x6d38da20, + 0x38964: 0x6d38dc20, 0x38965: 0x6d38de20, 0x38966: 0x6d38e020, 0x38967: 0x6d38e220, + 0x38968: 0x6d38e420, 0x38969: 0x6d38e620, 0x3896a: 0x6d38e820, 0x3896b: 0x6d38ea20, + 0x3896c: 0x6d38ec20, 0x3896d: 0x6d38ee20, 0x3896e: 0x6d38f020, 0x3896f: 0x6d38f220, + 0x38970: 0x6d38f420, 0x38971: 0x6d38f620, 0x38972: 0x6d38f820, 0x38973: 0x6d38fa20, + 0x38974: 0x6d38fc20, 0x38975: 0x6d38fe20, 0x38976: 0x6d390020, 0x38977: 0x6d390220, + 0x38978: 0x6d390420, 0x38979: 0x6d390620, 0x3897a: 0x6d390820, 0x3897b: 0x6d390a20, + 0x3897c: 0x6d390c20, 0x3897d: 0x6d390e20, 0x3897e: 0x6d391020, 0x3897f: 0x6d391220, + // Block 0xe26, offset 0x38980 + 0x38980: 0x6d391420, 0x38981: 0x6d391620, 0x38982: 0x6d391820, 0x38983: 0x6d391a20, + 0x38984: 0x6d391c20, 0x38985: 0x6d391e20, 0x38986: 0x6d392020, 0x38987: 0x6d392220, + 0x38988: 0x6d392420, 0x38989: 0x6d392620, 0x3898a: 0x6d392820, 0x3898b: 0x6d392a20, + 0x3898c: 0x6d392c20, 0x3898d: 0x6d392e20, 0x3898e: 0x6d393020, 0x3898f: 0x6d393220, + 0x38990: 0x6d393420, 0x38991: 0x6d393620, 0x38992: 0x6d393820, 0x38993: 0x6d393a20, + 0x38994: 0x6d393c20, 0x38995: 0x6d393e20, 0x38996: 0x6d394020, 0x38997: 0x6d394220, + 0x38998: 0x6d394420, 0x38999: 0x6d394620, 0x3899a: 0x6d394820, 0x3899b: 0x6d394a20, + 0x3899c: 0x6d394c20, 0x3899d: 0x6d394e20, 0x3899e: 0x6d395020, 0x3899f: 0x6d395220, + 0x389a0: 0x6d395420, 0x389a1: 0x6d395620, 0x389a2: 0x6d395820, 0x389a3: 0x6d395a20, + 0x389a4: 0x6d395c20, 0x389a5: 0x6d395e20, 0x389a6: 0x6d396020, 0x389a7: 0x6d396220, + 0x389a8: 0x6d396420, 0x389a9: 0x6d396620, 0x389aa: 0x6d396820, 0x389ab: 0x6d396a20, + 0x389ac: 0x6d396c20, 0x389ad: 0x6d396e20, 0x389ae: 0x6d397020, 0x389af: 0x6d397220, + 0x389b0: 0x6d397420, 0x389b1: 0x6d397620, 0x389b2: 0x6d397820, 0x389b3: 0x6d397a20, + 0x389b4: 0x6d397c20, 0x389b5: 0x6d397e20, 0x389b6: 0x6d398020, 0x389b7: 0x6d398220, + 0x389b8: 0x6d398420, 0x389b9: 0x6d398620, 0x389ba: 0x6d398820, 0x389bb: 0x6d398a20, + 0x389bc: 0x6d398c20, 0x389bd: 0x6d398e20, 0x389be: 0x6d399020, 0x389bf: 0x6d64ba20, + // Block 0xe27, offset 0x389c0 + 0x389c0: 0x6d64bc20, 0x389c1: 0x6d64be20, 0x389c2: 0x6d64c020, 0x389c3: 0x6d64c220, + 0x389c4: 0x6d64c420, 0x389c5: 0x6d64c620, 0x389c6: 0x6d64c820, 0x389c7: 0x6d64ca20, + 0x389c8: 0x6d64cc20, 0x389c9: 0x6d64ce20, 0x389ca: 0x6d64d020, 0x389cb: 0x6d64d220, + 0x389cc: 0x6d64d420, 0x389cd: 0x6d64d620, 0x389ce: 0x6d64d820, 0x389cf: 0x6d64da20, + 0x389d0: 0x6d64dc20, 0x389d1: 0x6d64de20, 0x389d2: 0x6d64e020, 0x389d3: 0x6d64e220, + 0x389d4: 0x6d64e420, 0x389d5: 0x6d64e620, 0x389d6: 0x6d64e820, 0x389d7: 0x6d64ea20, + 0x389d8: 0x6d64ec20, 0x389d9: 0x6d64ee20, 0x389da: 0x6d64f020, 0x389db: 0x6d64f220, + 0x389dc: 0x6d64f420, 0x389dd: 0x6d64f620, 0x389de: 0x6d64f820, 0x389df: 0x6d64fa20, + 0x389e0: 0x6d64fc20, 0x389e1: 0x6d64fe20, 0x389e2: 0x6d650020, 0x389e3: 0x6d650220, + 0x389e4: 0x6d650420, 0x389e5: 0x6d650620, 0x389e6: 0x6d650820, 0x389e7: 0x6d650a20, + 0x389e8: 0x6d650c20, 0x389e9: 0x6d650e20, 0x389ea: 0x6d651020, 0x389eb: 0x6d651220, + 0x389ec: 0x6d651420, 0x389ed: 0x6d651620, 0x389ee: 0x6d651820, 0x389ef: 0x6d651a20, + 0x389f0: 0x6d651c20, 0x389f1: 0x6d651e20, 0x389f2: 0x6d652020, 0x389f3: 0x6d652220, + 0x389f4: 0x6d652420, 0x389f5: 0x6d652620, 0x389f6: 0x6d652820, 0x389f7: 0x6d652a20, + 0x389f8: 0x6d652c20, 0x389f9: 0x6d652e20, 0x389fa: 0x6d653020, 0x389fb: 0x6d653220, + 0x389fc: 0x6d653420, 0x389fd: 0x6d8e6c20, 0x389fe: 0x6d653620, 0x389ff: 0x6d653820, + // Block 0xe28, offset 0x38a00 + 0x38a00: 0x6d653a20, 0x38a01: 0x6d653c20, 0x38a02: 0x6d653e20, 0x38a03: 0x6d654020, + 0x38a04: 0x6d654220, 0x38a05: 0x6d654420, 0x38a06: 0x6d654620, 0x38a07: 0x6d654820, + 0x38a08: 0x6d654a20, 0x38a09: 0x6d654c20, 0x38a0a: 0x6d654e20, 0x38a0b: 0x6d655020, + 0x38a0c: 0x6d655220, 0x38a0d: 0x6d655420, 0x38a0e: 0x6d655620, 0x38a0f: 0x6d655820, + 0x38a10: 0x6d655a20, 0x38a11: 0x6d655c20, 0x38a12: 0x6d655e20, 0x38a13: 0x6d656020, + 0x38a14: 0x6d656220, 0x38a15: 0x6d656420, 0x38a16: 0x6d656620, 0x38a17: 0x6d656820, + 0x38a18: 0x6d656a20, 0x38a19: 0x6d656c20, 0x38a1a: 0x6d656e20, 0x38a1b: 0x6d657020, + 0x38a1c: 0x6d657220, 0x38a1d: 0x6d657420, 0x38a1e: 0x6d657620, 0x38a1f: 0x6d657820, + 0x38a20: 0x6d657a20, 0x38a21: 0x6d657c20, 0x38a22: 0x6d657e20, 0x38a23: 0x6d658020, + 0x38a24: 0x6d658220, 0x38a25: 0x6d658420, 0x38a26: 0x6d658620, 0x38a27: 0x6d658820, + 0x38a28: 0x6d658a20, 0x38a29: 0x6d658c20, 0x38a2a: 0x6d658e20, 0x38a2b: 0x6d659020, + 0x38a2c: 0x6d659220, 0x38a2d: 0x6d659420, 0x38a2e: 0x6d659620, 0x38a2f: 0x6d659820, + 0x38a30: 0x6d659a20, 0x38a31: 0x6d659c20, 0x38a32: 0x6d659e20, 0x38a33: 0x6d65a020, + 0x38a34: 0x6d65a220, 0x38a35: 0x6d65a420, 0x38a36: 0x6d65a620, 0x38a37: 0x6d65a820, + 0x38a38: 0x6d65aa20, 0x38a39: 0x6d65ac20, 0x38a3a: 0x6d65ae20, 0x38a3b: 0x6d65b020, + 0x38a3c: 0x6d65b220, 0x38a3d: 0x6d65b420, 0x38a3e: 0x6d65b620, 0x38a3f: 0x6d65b820, + // Block 0xe29, offset 0x38a40 + 0x38a40: 0x6d65ba20, 0x38a41: 0x6d65bc20, 0x38a42: 0x6d65be20, 0x38a43: 0x6d65c020, + 0x38a44: 0x6d65c220, 0x38a45: 0x6e454c20, 0x38a46: 0x6d8e6e20, 0x38a47: 0x6d8e7020, + 0x38a48: 0x6d8e7220, 0x38a49: 0x6d8e7420, 0x38a4a: 0x6d8e7620, 0x38a4b: 0x6d8e7820, + 0x38a4c: 0x6d8e7a20, 0x38a4d: 0x6d8e7c20, 0x38a4e: 0x6d8e7e20, 0x38a4f: 0x6d8e8020, + 0x38a50: 0x6d8e8220, 0x38a51: 0x6d8e8420, 0x38a52: 0x6d8e8620, 0x38a53: 0x6d8e8820, + 0x38a54: 0x6d8e8a20, 0x38a55: 0x6d8e8c20, 0x38a56: 0x6d8e8e20, 0x38a57: 0x6d8e9020, + 0x38a58: 0x6d8e9220, 0x38a59: 0x6d8e9420, 0x38a5a: 0x6d8e9620, 0x38a5b: 0x6d8e9820, + 0x38a5c: 0x6d8e9a20, 0x38a5d: 0x6d8e9c20, 0x38a5e: 0x6d8e9e20, 0x38a5f: 0x6d8ea020, + 0x38a60: 0x6d8ea220, 0x38a61: 0x6d8ea420, 0x38a62: 0x6d8ea620, 0x38a63: 0x6d8ea820, + 0x38a64: 0x6d8eaa20, 0x38a65: 0x6d8eac20, 0x38a66: 0x6d8eae20, 0x38a67: 0x6d8eb020, + 0x38a68: 0x6d8eb220, 0x38a69: 0x6d8eb420, 0x38a6a: 0x6d8eb620, 0x38a6b: 0x6d8eb820, + 0x38a6c: 0x6d8eba20, 0x38a6d: 0x6d8ebc20, 0x38a6e: 0x6d8ebe20, 0x38a6f: 0x6d8ec020, + 0x38a70: 0x6d8ec220, 0x38a71: 0x6d8ec420, 0x38a72: 0x6d8ec620, 0x38a73: 0x6d8ec820, + 0x38a74: 0x6d8eca20, 0x38a75: 0x6d8ecc20, 0x38a76: 0x6d8ece20, 0x38a77: 0x6d8ed020, + 0x38a78: 0x6d8ed220, 0x38a79: 0x6d8ed420, 0x38a7a: 0x6d8ed620, 0x38a7b: 0x6d8ed820, + 0x38a7c: 0x6d8eda20, 0x38a7d: 0x6d8edc20, 0x38a7e: 0x6d8ede20, 0x38a7f: 0x6d8ee020, + // Block 0xe2a, offset 0x38a80 + 0x38a80: 0x6d8ee220, 0x38a81: 0x6d8ee420, 0x38a82: 0x6d8ee620, 0x38a83: 0x6d8ee820, + 0x38a84: 0x6d8eea20, 0x38a85: 0x6d8eec20, 0x38a86: 0x6d8eee20, 0x38a87: 0x6dc5f420, + 0x38a88: 0x6d8ef020, 0x38a89: 0x6d8ef220, 0x38a8a: 0x6d8ef420, 0x38a8b: 0x6d8ef620, + 0x38a8c: 0x6d8ef820, 0x38a8d: 0x6d8efa20, 0x38a8e: 0x6d8efc20, 0x38a8f: 0x6d8efe20, + 0x38a90: 0x6d8f0020, 0x38a91: 0x6d8f0220, 0x38a92: 0x6d8f0420, 0x38a93: 0x6d8f0620, + 0x38a94: 0x6d8f0820, 0x38a95: 0x6d8f0a20, 0x38a96: 0x6d8f0c20, 0x38a97: 0x6d8f0e20, + 0x38a98: 0x6d8f1020, 0x38a99: 0x6d8f1220, 0x38a9a: 0x6d8f1420, 0x38a9b: 0x6d8f1620, + 0x38a9c: 0x6d8f1820, 0x38a9d: 0x6d8f1a20, 0x38a9e: 0x6d8f1c20, 0x38a9f: 0x6d8f1e20, + 0x38aa0: 0x6d8f2020, 0x38aa1: 0x6d8f2220, 0x38aa2: 0x6d8f2420, 0x38aa3: 0x6d8f2620, + 0x38aa4: 0x6d8f2820, 0x38aa5: 0x6d8f2a20, 0x38aa6: 0x6d8f2c20, 0x38aa7: 0x6d8f2e20, + 0x38aa8: 0x6d8f3020, 0x38aa9: 0x6d8f3220, 0x38aaa: 0x6d8f3420, 0x38aab: 0x6d8f3620, + 0x38aac: 0x6d8f3820, 0x38aad: 0x6d8f3a20, 0x38aae: 0x6d8f3c20, 0x38aaf: 0x6d8f3e20, + 0x38ab0: 0x6d8f4020, 0x38ab1: 0x6d8f4220, 0x38ab2: 0x6d8f4420, 0x38ab3: 0x6d8f4620, + 0x38ab4: 0x6d8f4820, 0x38ab5: 0x6d8f4a20, 0x38ab6: 0x6d8f4c20, 0x38ab7: 0x6d8f4e20, + 0x38ab8: 0x6d8f5020, 0x38ab9: 0x6d8f5220, 0x38aba: 0x6d8f5420, 0x38abb: 0x6d8f5620, + 0x38abc: 0x6d8f5820, 0x38abd: 0x6d8f5a20, 0x38abe: 0x6db26e20, 0x38abf: 0x6d8f5c20, + // Block 0xe2b, offset 0x38ac0 + 0x38ac0: 0x6d8f5e20, 0x38ac1: 0x6d8f6020, 0x38ac2: 0x6d8f6220, 0x38ac3: 0x6d8f6420, + 0x38ac4: 0x6d8f6620, 0x38ac5: 0x6d8f6820, 0x38ac6: 0x6d8f6a20, 0x38ac7: 0x6d8f6c20, + 0x38ac8: 0x6d8f6e20, 0x38ac9: 0x6d8f7020, 0x38aca: 0x6d8f7220, 0x38acb: 0x6d8f7420, + 0x38acc: 0x6d8f7620, 0x38acd: 0x6d8f7820, 0x38ace: 0x6d8f7a20, 0x38acf: 0x6d8f7c20, + 0x38ad0: 0x6d8f7e20, 0x38ad1: 0x6d8f8020, 0x38ad2: 0x6d8f8220, 0x38ad3: 0x6d8f8420, + 0x38ad4: 0x6d8f8620, 0x38ad5: 0x6d8f8820, 0x38ad6: 0x6d8f8a20, 0x38ad7: 0x6d8f8c20, + 0x38ad8: 0x6d8f8e20, 0x38ad9: 0x6d8f9020, 0x38ada: 0x6d8f9220, 0x38adb: 0x6d8f9420, + 0x38adc: 0x6d8f9620, 0x38add: 0x6d8f9820, 0x38ade: 0x6d8f9a20, 0x38adf: 0x6d8f9c20, + 0x38ae0: 0x6d8f9e20, 0x38ae1: 0x6d8fa020, 0x38ae2: 0x6d8fa220, 0x38ae3: 0x6d8fa420, + 0x38ae4: 0x6d8fa620, 0x38ae5: 0x6d8fa820, 0x38ae6: 0x6d8faa20, 0x38ae7: 0x6d8fac20, + 0x38ae8: 0x6d8fae20, 0x38ae9: 0x6db27020, 0x38aea: 0x6db27220, 0x38aeb: 0x6db27420, + 0x38aec: 0x6db27620, 0x38aed: 0x6db27820, 0x38aee: 0x6db27a20, 0x38aef: 0x6db27c20, + 0x38af0: 0x6db27e20, 0x38af1: 0x6db28020, 0x38af2: 0x6db28220, 0x38af3: 0x6db28420, + 0x38af4: 0x6db28620, 0x38af5: 0x6db28820, 0x38af6: 0x6db28a20, 0x38af7: 0x6db28c20, + 0x38af8: 0x6db28e20, 0x38af9: 0x6db29020, 0x38afa: 0x6db29220, 0x38afb: 0x6db29420, + 0x38afc: 0x6db29620, 0x38afd: 0x6db29820, 0x38afe: 0x6db29a20, 0x38aff: 0x6db29c20, + // Block 0xe2c, offset 0x38b00 + 0x38b00: 0x6db29e20, 0x38b01: 0x6db2a020, 0x38b02: 0x6db2a220, 0x38b03: 0x6db2a420, + 0x38b04: 0x6db2a620, 0x38b05: 0x6db2a820, 0x38b06: 0x6db2aa20, 0x38b07: 0x6db2ac20, + 0x38b08: 0x6db2ae20, 0x38b09: 0x6db2b020, 0x38b0a: 0x6db2b220, 0x38b0b: 0x6db2b420, + 0x38b0c: 0x6db2b620, 0x38b0d: 0x6db2b820, 0x38b0e: 0x6db2ba20, 0x38b0f: 0x6db2bc20, + 0x38b10: 0x6db2be20, 0x38b11: 0x6db2c020, 0x38b12: 0x6db2c220, 0x38b13: 0x6db2c420, + 0x38b14: 0x6db2c620, 0x38b15: 0x6db2c820, 0x38b16: 0x6db2ca20, 0x38b17: 0x6db2cc20, + 0x38b18: 0x6db2ce20, 0x38b19: 0x6db2d020, 0x38b1a: 0x6db2d220, 0x38b1b: 0x6db2d420, + 0x38b1c: 0x6db2d620, 0x38b1d: 0x6db2d820, 0x38b1e: 0x6db2da20, 0x38b1f: 0x6db2dc20, + 0x38b20: 0x6db2de20, 0x38b21: 0x6db2e020, 0x38b22: 0x6db2e220, 0x38b23: 0x6db2e420, + 0x38b24: 0x6db2e620, 0x38b25: 0x6db2e820, 0x38b26: 0x6db2ea20, 0x38b27: 0x6db2ec20, + 0x38b28: 0x6db2ee20, 0x38b29: 0x6db2f020, 0x38b2a: 0x6db2f220, 0x38b2b: 0x6db2f420, + 0x38b2c: 0x6db2f620, 0x38b2d: 0x6d8fb020, 0x38b2e: 0x6db2f820, 0x38b2f: 0x6db2fa20, + 0x38b30: 0x6db2fc20, 0x38b31: 0x6db2fe20, 0x38b32: 0x6db30020, 0x38b33: 0x6db30220, + 0x38b34: 0x6db30420, 0x38b35: 0x6db30620, 0x38b36: 0x6db30820, 0x38b37: 0x6db30a20, + 0x38b38: 0x6db30c20, 0x38b39: 0x6db30e20, 0x38b3a: 0x6db31020, 0x38b3b: 0x6db31220, + 0x38b3c: 0x6db31420, 0x38b3d: 0x6db31620, 0x38b3e: 0x6db31820, 0x38b3f: 0x6db31a20, + // Block 0xe2d, offset 0x38b40 + 0x38b40: 0x6db31c20, 0x38b41: 0x6db31e20, 0x38b42: 0x6db32020, 0x38b43: 0x6db32220, + 0x38b44: 0x6db32420, 0x38b45: 0x6db32620, 0x38b46: 0x6db32820, 0x38b47: 0x6db32a20, + 0x38b48: 0x6db32c20, 0x38b49: 0x6db32e20, 0x38b4a: 0x6db33020, 0x38b4b: 0x6db33220, + 0x38b4c: 0x6db33420, 0x38b4d: 0x6db33620, 0x38b4e: 0x6db33820, 0x38b4f: 0x6db33a20, + 0x38b50: 0x6db33c20, 0x38b51: 0x6db33e20, 0x38b52: 0x6db34020, 0x38b53: 0x6db34220, + 0x38b54: 0x6db34420, 0x38b55: 0x6db34620, 0x38b56: 0x6db34820, 0x38b57: 0x6db34a20, + 0x38b58: 0x6db34c20, 0x38b59: 0x6db34e20, 0x38b5a: 0x6db35020, 0x38b5b: 0x6db35220, + 0x38b5c: 0x6db35420, 0x38b5d: 0x6db35620, 0x38b5e: 0x6db35820, 0x38b5f: 0x6db35a20, + 0x38b60: 0x6db35c20, 0x38b61: 0x6db35e20, 0x38b62: 0x6db36020, 0x38b63: 0x6db36220, + 0x38b64: 0x6db36420, 0x38b65: 0x6db36620, 0x38b66: 0x6db36820, 0x38b67: 0x6db36a20, + 0x38b68: 0x6db36c20, 0x38b69: 0x6db36e20, 0x38b6a: 0x6dd19420, 0x38b6b: 0x6dd19620, + 0x38b6c: 0x6dd19820, 0x38b6d: 0x6dd19a20, 0x38b6e: 0x6dd19c20, 0x38b6f: 0x6dd19e20, + 0x38b70: 0x6dd1a020, 0x38b71: 0x6dd1a220, 0x38b72: 0x6dd1a420, 0x38b73: 0x6dd1a620, + 0x38b74: 0x6dd1a820, 0x38b75: 0x6dd1aa20, 0x38b76: 0x6dd1ac20, 0x38b77: 0x6dd1ae20, + 0x38b78: 0x6dd1b020, 0x38b79: 0x6dd1b220, 0x38b7a: 0x6dd1b420, 0x38b7b: 0x6dd1b620, + 0x38b7c: 0x6dd1b820, 0x38b7d: 0x6dd1ba20, 0x38b7e: 0x6dd1bc20, 0x38b7f: 0x6dd1be20, + // Block 0xe2e, offset 0x38b80 + 0x38b80: 0x6dd1c020, 0x38b81: 0x6dd1c220, 0x38b82: 0x6dd1c420, 0x38b83: 0x6dd1c620, + 0x38b84: 0x6dd1c820, 0x38b85: 0x6dd1ca20, 0x38b86: 0x6dd1cc20, 0x38b87: 0x6dd1ce20, + 0x38b88: 0x6dd1d020, 0x38b89: 0x6dd1d220, 0x38b8a: 0x6dd1d420, 0x38b8b: 0x6dd1d620, + 0x38b8c: 0x6dd1d820, 0x38b8d: 0x6dd1da20, 0x38b8e: 0x6dd1dc20, 0x38b8f: 0x6dd1de20, + 0x38b90: 0x6dd1e020, 0x38b91: 0x6dd1e220, 0x38b92: 0x6dd1e420, 0x38b93: 0x6dd1e620, + 0x38b94: 0x6deb0220, 0x38b95: 0x6deb0420, 0x38b96: 0x6dd1e820, 0x38b97: 0x6dd1ea20, + 0x38b98: 0x6dd1ec20, 0x38b99: 0x6dd1ee20, 0x38b9a: 0x6dd1f020, 0x38b9b: 0x6dd1f220, + 0x38b9c: 0x6dd1f420, 0x38b9d: 0x6deb0620, 0x38b9e: 0x6dd1f620, 0x38b9f: 0x6dd1f820, + 0x38ba0: 0x6dd1fa20, 0x38ba1: 0x6db37020, 0x38ba2: 0x6dd1fc20, 0x38ba3: 0x6dd1fe20, + 0x38ba4: 0x6dd20020, 0x38ba5: 0x6dd20220, 0x38ba6: 0x6dd20420, 0x38ba7: 0x6dd20620, + 0x38ba8: 0x6dd20820, 0x38ba9: 0x6dd20a20, 0x38baa: 0x6dd20c20, 0x38bab: 0x6dd20e20, + 0x38bac: 0x6dd21020, 0x38bad: 0x6dd21220, 0x38bae: 0x6dd21420, 0x38baf: 0x6dd21620, + 0x38bb0: 0x6dd21820, 0x38bb1: 0x6dd21a20, 0x38bb2: 0x6dd21c20, 0x38bb3: 0x6dd21e20, + 0x38bb4: 0x6dd22020, 0x38bb5: 0x6dd22220, 0x38bb6: 0x6dd22420, 0x38bb7: 0x6dd22620, + 0x38bb8: 0x6db37220, 0x38bb9: 0x6dd22820, 0x38bba: 0x6dd22a20, 0x38bbb: 0x6dd22c20, + 0x38bbc: 0x6dd22e20, 0x38bbd: 0x6dd23020, 0x38bbe: 0x6dd23220, 0x38bbf: 0x6dd23420, + // Block 0xe2f, offset 0x38bc0 + 0x38bc0: 0x6dd23620, 0x38bc1: 0x6dd23820, 0x38bc2: 0x6dd23a20, 0x38bc3: 0x6dd23c20, + 0x38bc4: 0x6dd23e20, 0x38bc5: 0x6dd24020, 0x38bc6: 0x6dd24220, 0x38bc7: 0x6dd24420, + 0x38bc8: 0x6dd24620, 0x38bc9: 0x6dd24820, 0x38bca: 0x6dd24a20, 0x38bcb: 0x6dd24c20, + 0x38bcc: 0x6dd24e20, 0x38bcd: 0x6dd25020, 0x38bce: 0x6dd25220, 0x38bcf: 0x6dd25420, + 0x38bd0: 0x6dd25620, 0x38bd1: 0x6dd25820, 0x38bd2: 0x6dd25a20, 0x38bd3: 0x6dd25c20, + 0x38bd4: 0x6dd25e20, 0x38bd5: 0x6dd26020, 0x38bd6: 0x6dd26220, 0x38bd7: 0x6dd26420, + 0x38bd8: 0x6dd26620, 0x38bd9: 0x6dd26820, 0x38bda: 0x6dd26a20, 0x38bdb: 0x6dd26c20, + 0x38bdc: 0x6dd26e20, 0x38bdd: 0x6dd27020, 0x38bde: 0x6dd27220, 0x38bdf: 0x6dd27420, + 0x38be0: 0x6deb0820, 0x38be1: 0x6deb0a20, 0x38be2: 0x6deb0c20, 0x38be3: 0x6deb0e20, + 0x38be4: 0x6deb1020, 0x38be5: 0x6deb1220, 0x38be6: 0x6deb1420, 0x38be7: 0x6deb1620, + 0x38be8: 0x6deb1820, 0x38be9: 0x6deb1a20, 0x38bea: 0x6deb1c20, 0x38beb: 0x6deb1e20, + 0x38bec: 0x6deb2020, 0x38bed: 0x6deb2220, 0x38bee: 0x6deb2420, 0x38bef: 0x6deb2620, + 0x38bf0: 0x6deb2820, 0x38bf1: 0x6deb2a20, 0x38bf2: 0x6deb2c20, 0x38bf3: 0x6deb2e20, + 0x38bf4: 0x6deb3020, 0x38bf5: 0x6deb3220, 0x38bf6: 0x6deb3420, 0x38bf7: 0x6deb3620, + 0x38bf8: 0x6deb3820, 0x38bf9: 0x6deb3a20, 0x38bfa: 0x6deb3c20, 0x38bfb: 0x6deb3e20, + 0x38bfc: 0x6deb4020, 0x38bfd: 0x6deb4220, 0x38bfe: 0x6deb4420, 0x38bff: 0x6deb4620, + // Block 0xe30, offset 0x38c00 + 0x38c00: 0x6deb4820, 0x38c01: 0x6deb4a20, 0x38c02: 0x6deb4c20, 0x38c03: 0x6deb4e20, + 0x38c04: 0x6deb5020, 0x38c05: 0x6deb5220, 0x38c06: 0x6deb5420, 0x38c07: 0x6deb5620, + 0x38c08: 0x6deb5820, 0x38c09: 0x6deb5a20, 0x38c0a: 0x6deb5c20, 0x38c0b: 0x6deb5e20, + 0x38c0c: 0x6deb6020, 0x38c0d: 0x6deb6220, 0x38c0e: 0x6deb6420, 0x38c0f: 0x6deb6620, + 0x38c10: 0x6deb6820, 0x38c11: 0x6deb6a20, 0x38c12: 0x6deb6c20, 0x38c13: 0x6deb6e20, + 0x38c14: 0x6deb7020, 0x38c15: 0x6deb7220, 0x38c16: 0x6deb7420, 0x38c17: 0x6deb7620, + 0x38c18: 0x6deb7820, 0x38c19: 0x6deb7a20, 0x38c1a: 0x6deb7c20, 0x38c1b: 0x6deb7e20, + 0x38c1c: 0x6deb8020, 0x38c1d: 0x6deb8220, 0x38c1e: 0x6deb8420, 0x38c1f: 0x6deb8620, + 0x38c20: 0x6deb8820, 0x38c21: 0x6deb8a20, 0x38c22: 0x6deb8c20, 0x38c23: 0x6deb8e20, + 0x38c24: 0x6deb9020, 0x38c25: 0x6deb9220, 0x38c26: 0x6deb9420, 0x38c27: 0x6deb9620, + 0x38c28: 0x6deb9820, 0x38c29: 0x6deb9a20, 0x38c2a: 0x6deb9c20, 0x38c2b: 0x6deb9e20, + 0x38c2c: 0x6deba020, 0x38c2d: 0x6deba220, 0x38c2e: 0x6deba420, 0x38c2f: 0x6deba620, + 0x38c30: 0x6deba820, 0x38c31: 0x6debaa20, 0x38c32: 0x6debac20, 0x38c33: 0x6debae20, + 0x38c34: 0x6debb020, 0x38c35: 0x6debb220, 0x38c36: 0x6debb420, 0x38c37: 0x6debb620, + 0x38c38: 0x6debb820, 0x38c39: 0x6debba20, 0x38c3a: 0x6debbc20, 0x38c3b: 0x6e00a820, + 0x38c3c: 0x6e00aa20, 0x38c3d: 0x6e00ac20, 0x38c3e: 0x6e00ae20, 0x38c3f: 0x6e00b020, + // Block 0xe31, offset 0x38c40 + 0x38c40: 0x6e00b220, 0x38c41: 0x6e00b420, 0x38c42: 0x6e00b620, 0x38c43: 0x6e00b820, + 0x38c44: 0x6e00ba20, 0x38c45: 0x6e00bc20, 0x38c46: 0x6e00be20, 0x38c47: 0x6e00c020, + 0x38c48: 0x6e00c220, 0x38c49: 0x6e00c420, 0x38c4a: 0x6e00c620, 0x38c4b: 0x6e00c820, + 0x38c4c: 0x6e00ca20, 0x38c4d: 0x6e00cc20, 0x38c4e: 0x6e00ce20, 0x38c4f: 0x6e00d020, + 0x38c50: 0x6e00d220, 0x38c51: 0x6e00d420, 0x38c52: 0x6e00d620, 0x38c53: 0x6e00d820, + 0x38c54: 0x6e00da20, 0x38c55: 0x6e00dc20, 0x38c56: 0x6e00de20, 0x38c57: 0x6e00e020, + 0x38c58: 0x6e00e220, 0x38c59: 0x6e00e420, 0x38c5a: 0x6e00e620, 0x38c5b: 0x6e00e820, + 0x38c5c: 0x6e00ea20, 0x38c5d: 0x6e00ec20, 0x38c5e: 0x6e00ee20, 0x38c5f: 0x6e00f020, + 0x38c60: 0x6e00f220, 0x38c61: 0x6e00f420, 0x38c62: 0x6e00f620, 0x38c63: 0x6e00f820, + 0x38c64: 0x6e00fa20, 0x38c65: 0x6e00fc20, 0x38c66: 0x6e00fe20, 0x38c67: 0x6e010020, + 0x38c68: 0x6e010220, 0x38c69: 0x6e010420, 0x38c6a: 0x6e010620, 0x38c6b: 0x6e010820, + 0x38c6c: 0x6e010a20, 0x38c6d: 0x6e010c20, 0x38c6e: 0x6e010e20, 0x38c6f: 0x6e011020, + 0x38c70: 0x6e011220, 0x38c71: 0x6e011420, 0x38c72: 0x6e011620, 0x38c73: 0x6e011820, + 0x38c74: 0x6e011a20, 0x38c75: 0x6e011c20, 0x38c76: 0x6e011e20, 0x38c77: 0x6e012020, + 0x38c78: 0x6e012220, 0x38c79: 0x6e012420, 0x38c7a: 0x6e012620, 0x38c7b: 0x6e012820, + 0x38c7c: 0x6e012a20, 0x38c7d: 0x6e012c20, 0x38c7e: 0x6e012e20, 0x38c7f: 0x6e013020, + // Block 0xe32, offset 0x38c80 + 0x38c80: 0x6e013220, 0x38c81: 0x6e013420, 0x38c82: 0x6e013620, 0x38c83: 0x6e013820, + 0x38c84: 0x6e013a20, 0x38c85: 0x6e013c20, 0x38c86: 0x6e013e20, 0x38c87: 0x6e014020, + 0x38c88: 0x6e014220, 0x38c89: 0x6e014420, 0x38c8a: 0x6e014620, 0x38c8b: 0x6e014820, + 0x38c8c: 0x6debbe20, 0x38c8d: 0x6e12ba20, 0x38c8e: 0x6e014a20, 0x38c8f: 0x6e12bc20, + 0x38c90: 0x6e12be20, 0x38c91: 0x6e12c020, 0x38c92: 0x6e12c220, 0x38c93: 0x6e12c420, + 0x38c94: 0x6e12c620, 0x38c95: 0x6e12c820, 0x38c96: 0x6e12ca20, 0x38c97: 0x6e12cc20, + 0x38c98: 0x6e12ce20, 0x38c99: 0x6e12d020, 0x38c9a: 0x6e12d220, 0x38c9b: 0x6e12d420, + 0x38c9c: 0x6e12d620, 0x38c9d: 0x6e12d820, 0x38c9e: 0x6e12da20, 0x38c9f: 0x6e12dc20, + 0x38ca0: 0x6e12de20, 0x38ca1: 0x6e12e020, 0x38ca2: 0x6e12e220, 0x38ca3: 0x6e12e420, + 0x38ca4: 0x6e12e620, 0x38ca5: 0x6e12e820, 0x38ca6: 0x6e12ea20, 0x38ca7: 0x6e12ec20, + 0x38ca8: 0x6e12ee20, 0x38ca9: 0x6e12f020, 0x38caa: 0x6e12f220, 0x38cab: 0x6e12f420, + 0x38cac: 0x6e12f620, 0x38cad: 0x6e12f820, 0x38cae: 0x6e12fa20, 0x38caf: 0x6e12fc20, + 0x38cb0: 0x6e12fe20, 0x38cb1: 0x6e130020, 0x38cb2: 0x6e130220, 0x38cb3: 0x6e130420, + 0x38cb4: 0x6e130620, 0x38cb5: 0x6e130820, 0x38cb6: 0x6e130a20, 0x38cb7: 0x6e130c20, + 0x38cb8: 0x6e130e20, 0x38cb9: 0x6e131020, 0x38cba: 0x6e131220, 0x38cbb: 0x6e131420, + 0x38cbc: 0x6e131620, 0x38cbd: 0x6e131820, 0x38cbe: 0x6e131a20, 0x38cbf: 0x6e131c20, + // Block 0xe33, offset 0x38cc0 + 0x38cc0: 0x6e131e20, 0x38cc1: 0x6e132020, 0x38cc2: 0x6e132220, 0x38cc3: 0x6e132420, + 0x38cc4: 0x6e132620, 0x38cc5: 0x6e132820, 0x38cc6: 0x6e132a20, 0x38cc7: 0x6e132c20, + 0x38cc8: 0x6e132e20, 0x38cc9: 0x6e133020, 0x38cca: 0x6e133220, 0x38ccb: 0x6e133420, + 0x38ccc: 0x6e133620, 0x38ccd: 0x6e20c620, 0x38cce: 0x6e20c820, 0x38ccf: 0x6e20ca20, + 0x38cd0: 0x6e20cc20, 0x38cd1: 0x6e20ce20, 0x38cd2: 0x6e20d020, 0x38cd3: 0x6e20d220, + 0x38cd4: 0x6e20d420, 0x38cd5: 0x6e20d620, 0x38cd6: 0x6e20d820, 0x38cd7: 0x6e20da20, + 0x38cd8: 0x6e20dc20, 0x38cd9: 0x6e20de20, 0x38cda: 0x6e20e020, 0x38cdb: 0x6e20e220, + 0x38cdc: 0x6e20e420, 0x38cdd: 0x6e20e620, 0x38cde: 0x6e20e820, 0x38cdf: 0x6e20ea20, + 0x38ce0: 0x6e20ec20, 0x38ce1: 0x6e20ee20, 0x38ce2: 0x6e20f020, 0x38ce3: 0x6e20f220, + 0x38ce4: 0x6e20f420, 0x38ce5: 0x6e20f620, 0x38ce6: 0x6e20f820, 0x38ce7: 0x6e20fa20, + 0x38ce8: 0x6e20fc20, 0x38ce9: 0x6e20fe20, 0x38cea: 0x6e210020, 0x38ceb: 0x6e210220, + 0x38cec: 0x6e210420, 0x38ced: 0x6e210620, 0x38cee: 0x6e210820, 0x38cef: 0x6e210a20, + 0x38cf0: 0x6e210c20, 0x38cf1: 0x6e210e20, 0x38cf2: 0x6e211020, 0x38cf3: 0x6e211220, + 0x38cf4: 0x6e211420, 0x38cf5: 0x6e211620, 0x38cf6: 0x6e2b9420, 0x38cf7: 0x6e2b9620, + 0x38cf8: 0x6e2b9820, 0x38cf9: 0x6e2b9a20, 0x38cfa: 0x6e2b9c20, 0x38cfb: 0x6e2b9e20, + 0x38cfc: 0x6e2ba020, 0x38cfd: 0x6e2ba220, 0x38cfe: 0x6e2ba420, 0x38cff: 0x6e2ba620, + // Block 0xe34, offset 0x38d00 + 0x38d00: 0x6e2ba820, 0x38d01: 0x6e2baa20, 0x38d02: 0x6e2bac20, 0x38d03: 0x6e2bae20, + 0x38d04: 0x6e2bb020, 0x38d05: 0x6e2bb220, 0x38d06: 0x6e2bb420, 0x38d07: 0x6e2bb620, + 0x38d08: 0x6e2bb820, 0x38d09: 0x6e2bba20, 0x38d0a: 0x6e2bbc20, 0x38d0b: 0x6e2bbe20, + 0x38d0c: 0x6e2bc020, 0x38d0d: 0x6e2bc220, 0x38d0e: 0x6e2bc420, 0x38d0f: 0x6e2bc620, + 0x38d10: 0x6e2bc820, 0x38d11: 0x6e2bca20, 0x38d12: 0x6e2bcc20, 0x38d13: 0x6e2bce20, + 0x38d14: 0x6e2bd020, 0x38d15: 0x6e2bd220, 0x38d16: 0x6e33f020, 0x38d17: 0x6e33f220, + 0x38d18: 0x6e33f420, 0x38d19: 0x6e33f620, 0x38d1a: 0x6e33f820, 0x38d1b: 0x6e33fa20, + 0x38d1c: 0x6e33fc20, 0x38d1d: 0x6e33fe20, 0x38d1e: 0x6e340020, 0x38d1f: 0x6e340220, + 0x38d20: 0x6e340420, 0x38d21: 0x6e340620, 0x38d22: 0x6e340820, 0x38d23: 0x6e340a20, + 0x38d24: 0x6e340c20, 0x38d25: 0x6e340e20, 0x38d26: 0x6e341020, 0x38d27: 0x6e341220, + 0x38d28: 0x6e341420, 0x38d29: 0x6e341620, 0x38d2a: 0x6e341820, 0x38d2b: 0x6e341a20, + 0x38d2c: 0x6e341c20, 0x38d2d: 0x6e341e20, 0x38d2e: 0x6e39d420, 0x38d2f: 0x6e39d620, + 0x38d30: 0x6e39d820, 0x38d31: 0x6e39da20, 0x38d32: 0x6e39dc20, 0x38d33: 0x6e39de20, + 0x38d34: 0x6e39e020, 0x38d35: 0x6e42f020, 0x38d36: 0x6e39e220, 0x38d37: 0x6e39e420, + 0x38d38: 0x6e39e620, 0x38d39: 0x6e39e820, 0x38d3a: 0x6e3df620, 0x38d3b: 0x6e3df820, + 0x38d3c: 0x6e3dfa20, 0x38d3d: 0x6e3dfc20, 0x38d3e: 0x6e3dfe20, 0x38d3f: 0x6e3e0020, + // Block 0xe35, offset 0x38d40 + 0x38d40: 0x6e3e0220, 0x38d41: 0x6e3e0420, 0x38d42: 0x6e3e0620, 0x38d43: 0x6e3e0820, + 0x38d44: 0x6e3e0a20, 0x38d45: 0x6e3e0c20, 0x38d46: 0x6e394c20, 0x38d47: 0x6e40ce20, + 0x38d48: 0x6e40d020, 0x38d49: 0x6e40d220, 0x38d4a: 0x6e40d420, 0x38d4b: 0x6e40d620, + 0x38d4c: 0x6e40d820, 0x38d4d: 0x6e40da20, 0x38d4e: 0x6e40dc20, 0x38d4f: 0x6e42f220, + 0x38d50: 0x6e42f420, 0x38d51: 0x6e42f620, 0x38d52: 0x6e42f820, 0x38d53: 0x6e470220, + 0x38d54: 0x6e446820, 0x38d55: 0x6e446a20, 0x38d56: 0x6e454e20, 0x38d57: 0x6e45d020, + 0x38d58: 0x6e472e20, 0x38d59: 0x6e468c20, 0x38d5a: 0x6e455020, 0x38d5b: 0x6c401420, + 0x38d5c: 0x6c5f9820, 0x38d5d: 0x6c5f9a20, 0x38d5e: 0x6c5f9c20, 0x38d5f: 0x6c84d420, + 0x38d60: 0x6c84d620, 0x38d61: 0x6c84d820, 0x38d62: 0x6c84da20, 0x38d63: 0x6cae3220, + 0x38d64: 0x6cae3420, 0x38d65: 0x6cae3620, 0x38d66: 0x6cae3820, 0x38d67: 0x6cae3a20, + 0x38d68: 0x6cae3c20, 0x38d69: 0x6cae3e20, 0x38d6a: 0x6cae4020, 0x38d6b: 0x6cae4220, + 0x38d6c: 0x6cae4420, 0x38d6d: 0x6cae4620, 0x38d6e: 0x6cae4820, 0x38d6f: 0x6cae4a20, + 0x38d70: 0x6cae4c20, 0x38d71: 0x6cdd5020, 0x38d72: 0x6cdd5220, 0x38d73: 0x6cdd5420, + 0x38d74: 0x6cdd5620, 0x38d75: 0x6cdd5820, 0x38d76: 0x6cdd5a20, 0x38d77: 0x6cdd5c20, + 0x38d78: 0x6cdd5e20, 0x38d79: 0x6cdd6020, 0x38d7a: 0x6d0bd020, 0x38d7b: 0x6d0bd220, + 0x38d7c: 0x6d0bd420, 0x38d7d: 0x6d0bd620, 0x38d7e: 0x6d0bd820, 0x38d7f: 0x6d0bda20, + // Block 0xe36, offset 0x38d80 + 0x38d80: 0x6d0bdc20, 0x38d81: 0x6d39be20, 0x38d82: 0x6d39c020, 0x38d83: 0x6d39c220, + 0x38d84: 0x6d39c420, 0x38d85: 0x6d39c620, 0x38d86: 0x6d39c820, 0x38d87: 0x6d39ca20, + 0x38d88: 0x6d39cc20, 0x38d89: 0x6d39ce20, 0x38d8a: 0x6d39d020, 0x38d8b: 0x6d39d220, + 0x38d8c: 0x6d39d420, 0x38d8d: 0x6d39d620, 0x38d8e: 0x6d39d820, 0x38d8f: 0x6d65f820, + 0x38d90: 0x6d65fa20, 0x38d91: 0x6d65fc20, 0x38d92: 0x6d65fe20, 0x38d93: 0x6d660020, + 0x38d94: 0x6d660220, 0x38d95: 0x6d660420, 0x38d96: 0x6d660620, 0x38d97: 0x6d660820, + 0x38d98: 0x6d660a20, 0x38d99: 0x6d660c20, 0x38d9a: 0x6d660e20, 0x38d9b: 0x6d661020, + 0x38d9c: 0x6d8fd020, 0x38d9d: 0x6d8fd220, 0x38d9e: 0x6d8fd420, 0x38d9f: 0x6d8fd620, + 0x38da0: 0x6d8fd820, 0x38da1: 0x6d8fda20, 0x38da2: 0x6d8fdc20, 0x38da3: 0x6d8fde20, + 0x38da4: 0x6d8fe020, 0x38da5: 0x6d8fe220, 0x38da6: 0x6d8fe420, 0x38da7: 0x6d8fe620, + 0x38da8: 0x6d8fe820, 0x38da9: 0x6d8fea20, 0x38daa: 0x6d8fec20, 0x38dab: 0x6d8fee20, + 0x38dac: 0x6d8ff020, 0x38dad: 0x6d8ff220, 0x38dae: 0x6d8ff420, 0x38daf: 0x6d8ff620, + 0x38db0: 0x6d8ff820, 0x38db1: 0x6db39e20, 0x38db2: 0x6db3a020, 0x38db3: 0x6db3a220, + 0x38db4: 0x6db3a420, 0x38db5: 0x6db3a620, 0x38db6: 0x6db3a820, 0x38db7: 0x6db3aa20, + 0x38db8: 0x6db3ac20, 0x38db9: 0x6db3ae20, 0x38dba: 0x6db3b020, 0x38dbb: 0x6dd29c20, + 0x38dbc: 0x6dd29e20, 0x38dbd: 0x6dd2a020, 0x38dbe: 0x6dd2a220, 0x38dbf: 0x6dd2a420, + // Block 0xe37, offset 0x38dc0 + 0x38dc0: 0x6dd2a620, 0x38dc1: 0x6dd2a820, 0x38dc2: 0x6debd420, 0x38dc3: 0x6dd2aa20, + 0x38dc4: 0x6dd2ac20, 0x38dc5: 0x6debd620, 0x38dc6: 0x6debd820, 0x38dc7: 0x6debda20, + 0x38dc8: 0x6debdc20, 0x38dc9: 0x6debde20, 0x38dca: 0x6debe020, 0x38dcb: 0x6e015a20, + 0x38dcc: 0x6e015c20, 0x38dcd: 0x6e015e20, 0x38dce: 0x6e016020, 0x38dcf: 0x6e016220, + 0x38dd0: 0x6df39420, 0x38dd1: 0x6e134220, 0x38dd2: 0x6e134420, 0x38dd3: 0x6e134620, + 0x38dd4: 0x6e134820, 0x38dd5: 0x6e134a20, 0x38dd6: 0x6e134c20, 0x38dd7: 0x6e134e20, + 0x38dd8: 0x6e211e20, 0x38dd9: 0x6e212020, 0x38dda: 0x6e2bd620, 0x38ddb: 0x6e2bd820, + 0x38ddc: 0x6e3e1420, 0x38ddd: 0x6c268c20, 0x38dde: 0x6c268e20, 0x38ddf: 0x6c402220, + 0x38de0: 0x6c402420, 0x38de1: 0x6c402620, 0x38de2: 0x6c402820, 0x38de3: 0x6c402a20, + 0x38de4: 0x6c402c20, 0x38de5: 0x6c402e20, 0x38de6: 0x6c403020, 0x38de7: 0x6c403220, + 0x38de8: 0x6c5fcc20, 0x38de9: 0x6c5fce20, 0x38dea: 0x6c5fd020, 0x38deb: 0x6c5fd220, + 0x38dec: 0x6c5fd420, 0x38ded: 0x6c5fd620, 0x38dee: 0x6c5fd820, 0x38def: 0x6c5fda20, + 0x38df0: 0x6c5fdc20, 0x38df1: 0x6c5fde20, 0x38df2: 0x6c5fe020, 0x38df3: 0x6c5fe220, + 0x38df4: 0x6c5fe420, 0x38df5: 0x6c5fe620, 0x38df6: 0x6c5fe820, 0x38df7: 0x6c5fea20, + 0x38df8: 0x6c5fec20, 0x38df9: 0x6c5fee20, 0x38dfa: 0x6c5ff020, 0x38dfb: 0x6c853220, + 0x38dfc: 0x6c853420, 0x38dfd: 0x6c853620, 0x38dfe: 0x6c853820, 0x38dff: 0x6c853a20, + // Block 0xe38, offset 0x38e00 + 0x38e00: 0x6c853c20, 0x38e01: 0x6c853e20, 0x38e02: 0x6c854020, 0x38e03: 0x6c854220, + 0x38e04: 0x6c854420, 0x38e05: 0x6c854620, 0x38e06: 0x6c854820, 0x38e07: 0x6c854a20, + 0x38e08: 0x6c854c20, 0x38e09: 0x6c854e20, 0x38e0a: 0x6c855020, 0x38e0b: 0x6c855220, + 0x38e0c: 0x6c855420, 0x38e0d: 0x6c855620, 0x38e0e: 0x6c855820, 0x38e0f: 0x6c855a20, + 0x38e10: 0x6c855c20, 0x38e11: 0x6c855e20, 0x38e12: 0x6c856020, 0x38e13: 0x6c856220, + 0x38e14: 0x6c856420, 0x38e15: 0x6c856620, 0x38e16: 0x6c856820, 0x38e17: 0x6c856a20, + 0x38e18: 0x6c856c20, 0x38e19: 0x6c856e20, 0x38e1a: 0x6c857020, 0x38e1b: 0x6c857220, + 0x38e1c: 0x6c857420, 0x38e1d: 0x6c857620, 0x38e1e: 0x6caeaa20, 0x38e1f: 0x6caeac20, + 0x38e20: 0x6caeae20, 0x38e21: 0x6caeb020, 0x38e22: 0x6caeb220, 0x38e23: 0x6caeb420, + 0x38e24: 0x6caeb620, 0x38e25: 0x6caeb820, 0x38e26: 0x6caeba20, 0x38e27: 0x6caebc20, + 0x38e28: 0x6caebe20, 0x38e29: 0x6caec020, 0x38e2a: 0x6caec220, 0x38e2b: 0x6caec420, + 0x38e2c: 0x6caec620, 0x38e2d: 0x6caec820, 0x38e2e: 0x6caeca20, 0x38e2f: 0x6caecc20, + 0x38e30: 0x6caece20, 0x38e31: 0x6caed020, 0x38e32: 0x6caed220, 0x38e33: 0x6caed420, + 0x38e34: 0x6caed620, 0x38e35: 0x6caed820, 0x38e36: 0x6caeda20, 0x38e37: 0x6caedc20, + 0x38e38: 0x6caede20, 0x38e39: 0x6caee020, 0x38e3a: 0x6caee220, 0x38e3b: 0x6caee420, + 0x38e3c: 0x6caee620, 0x38e3d: 0x6caee820, 0x38e3e: 0x6caeea20, 0x38e3f: 0x6caeec20, + // Block 0xe39, offset 0x38e40 + 0x38e40: 0x6caeee20, 0x38e41: 0x6caef020, 0x38e42: 0x6caef220, 0x38e43: 0x6caef420, + 0x38e44: 0x6caef620, 0x38e45: 0x6caef820, 0x38e46: 0x6caefa20, 0x38e47: 0x6caefc20, + 0x38e48: 0x6caefe20, 0x38e49: 0x6caf0020, 0x38e4a: 0x6caf0220, 0x38e4b: 0x6caf0420, + 0x38e4c: 0x6caf0620, 0x38e4d: 0x6caf0820, 0x38e4e: 0x6caf0a20, 0x38e4f: 0x6cddc220, + 0x38e50: 0x6cddc420, 0x38e51: 0x6cddc620, 0x38e52: 0x6cddc820, 0x38e53: 0x6cddca20, + 0x38e54: 0x6cddcc20, 0x38e55: 0x6cddce20, 0x38e56: 0x6cddd020, 0x38e57: 0x6cddd220, + 0x38e58: 0x6cddd420, 0x38e59: 0x6cddd620, 0x38e5a: 0x6cddd820, 0x38e5b: 0x6cddda20, + 0x38e5c: 0x6cdddc20, 0x38e5d: 0x6cddde20, 0x38e5e: 0x6cdde020, 0x38e5f: 0x6cdde220, + 0x38e60: 0x6cdde420, 0x38e61: 0x6cdde620, 0x38e62: 0x6cdde820, 0x38e63: 0x6cddea20, + 0x38e64: 0x6cddec20, 0x38e65: 0x6cddee20, 0x38e66: 0x6cddf020, 0x38e67: 0x6cddf220, + 0x38e68: 0x6cddf420, 0x38e69: 0x6cddf620, 0x38e6a: 0x6cddf820, 0x38e6b: 0x6d0c3620, + 0x38e6c: 0x6cddfa20, 0x38e6d: 0x6cddfc20, 0x38e6e: 0x6d0c3820, 0x38e6f: 0x6cddfe20, + 0x38e70: 0x6cde0020, 0x38e71: 0x6cde0220, 0x38e72: 0x6cde0420, 0x38e73: 0x6cde0620, + 0x38e74: 0x6cde0820, 0x38e75: 0x6cde0a20, 0x38e76: 0x6cde0c20, 0x38e77: 0x6cde0e20, + 0x38e78: 0x6cde1020, 0x38e79: 0x6cde1220, 0x38e7a: 0x6cde1420, 0x38e7b: 0x6cde1620, + 0x38e7c: 0x6cde1820, 0x38e7d: 0x6cde1a20, 0x38e7e: 0x6cde1c20, 0x38e7f: 0x6cde1e20, + // Block 0xe3a, offset 0x38e80 + 0x38e80: 0x6cde2020, 0x38e81: 0x6cde2220, 0x38e82: 0x6cde2420, 0x38e83: 0x6cde2620, + 0x38e84: 0x6cde2820, 0x38e85: 0x6cde2a20, 0x38e86: 0x6cde2c20, 0x38e87: 0x6cde2e20, + 0x38e88: 0x6d0c3a20, 0x38e89: 0x6d0c3c20, 0x38e8a: 0x6d0c3e20, 0x38e8b: 0x6d0c4020, + 0x38e8c: 0x6d0c4220, 0x38e8d: 0x6d0c4420, 0x38e8e: 0x6d0c4620, 0x38e8f: 0x6d0c4820, + 0x38e90: 0x6d0c4a20, 0x38e91: 0x6d0c4c20, 0x38e92: 0x6d0c4e20, 0x38e93: 0x6d0c5020, + 0x38e94: 0x6d0c5220, 0x38e95: 0x6d0c5420, 0x38e96: 0x6d0c5620, 0x38e97: 0x6d0c5820, + 0x38e98: 0x6d0c5a20, 0x38e99: 0x6d0c5c20, 0x38e9a: 0x6d0c5e20, 0x38e9b: 0x6d0c6020, + 0x38e9c: 0x6d0c6220, 0x38e9d: 0x6d0c6420, 0x38e9e: 0x6d3a6020, 0x38e9f: 0x6d0c6620, + 0x38ea0: 0x6d0c6820, 0x38ea1: 0x6d0c6a20, 0x38ea2: 0x6d0c6c20, 0x38ea3: 0x6d0c6e20, + 0x38ea4: 0x6d0c7020, 0x38ea5: 0x6d0c7220, 0x38ea6: 0x6d0c7420, 0x38ea7: 0x6d0c7620, + 0x38ea8: 0x6d0c7820, 0x38ea9: 0x6d0c7a20, 0x38eaa: 0x6d0c7c20, 0x38eab: 0x6d0c7e20, + 0x38eac: 0x6d0c8020, 0x38ead: 0x6d0c8220, 0x38eae: 0x6d0c8420, 0x38eaf: 0x6d0c8620, + 0x38eb0: 0x6d0c8820, 0x38eb1: 0x6d0c8a20, 0x38eb2: 0x6d0c8c20, 0x38eb3: 0x6d0c8e20, + 0x38eb4: 0x6d0c9020, 0x38eb5: 0x6d0c9220, 0x38eb6: 0x6d0c9420, 0x38eb7: 0x6d0c9620, + 0x38eb8: 0x6d0c9820, 0x38eb9: 0x6d0c9a20, 0x38eba: 0x6d0c9c20, 0x38ebb: 0x6d0c9e20, + 0x38ebc: 0x6d0ca020, 0x38ebd: 0x6d0ca220, 0x38ebe: 0x6d0ca420, 0x38ebf: 0x6d0ca620, + // Block 0xe3b, offset 0x38ec0 + 0x38ec0: 0x6d0ca820, 0x38ec1: 0x6d0caa20, 0x38ec2: 0x6d0cac20, 0x38ec3: 0x6d3a6220, + 0x38ec4: 0x6d3a6420, 0x38ec5: 0x6d3a6620, 0x38ec6: 0x6d3a6820, 0x38ec7: 0x6d3a6a20, + 0x38ec8: 0x6d3a6c20, 0x38ec9: 0x6d3a6e20, 0x38eca: 0x6d3a7020, 0x38ecb: 0x6d3a7220, + 0x38ecc: 0x6d3a7420, 0x38ecd: 0x6d3a7620, 0x38ece: 0x6d3a7820, 0x38ecf: 0x6d3a7a20, + 0x38ed0: 0x6d3a7c20, 0x38ed1: 0x6d3a7e20, 0x38ed2: 0x6d3a8020, 0x38ed3: 0x6d3a8220, + 0x38ed4: 0x6d3a8420, 0x38ed5: 0x6d3a8620, 0x38ed6: 0x6d3a8820, 0x38ed7: 0x6d3a8a20, + 0x38ed8: 0x6d3a8c20, 0x38ed9: 0x6d3a8e20, 0x38eda: 0x6d3a9020, 0x38edb: 0x6d3a9220, + 0x38edc: 0x6d3a9420, 0x38edd: 0x6d3a9620, 0x38ede: 0x6d0cae20, 0x38edf: 0x6d3a9820, + 0x38ee0: 0x6d3a9a20, 0x38ee1: 0x6d3a9c20, 0x38ee2: 0x6d3a9e20, 0x38ee3: 0x6d3aa020, + 0x38ee4: 0x6d3aa220, 0x38ee5: 0x6d3aa420, 0x38ee6: 0x6d3aa620, 0x38ee7: 0x6d3aa820, + 0x38ee8: 0x6d3aaa20, 0x38ee9: 0x6d3aac20, 0x38eea: 0x6d3aae20, 0x38eeb: 0x6d3ab020, + 0x38eec: 0x6d3ab220, 0x38eed: 0x6d3ab420, 0x38eee: 0x6d3ab620, 0x38eef: 0x6d3ab820, + 0x38ef0: 0x6d668c20, 0x38ef1: 0x6d3aba20, 0x38ef2: 0x6d3abc20, 0x38ef3: 0x6d3abe20, + 0x38ef4: 0x6d3ac020, 0x38ef5: 0x6d3ac220, 0x38ef6: 0x6d3ac420, 0x38ef7: 0x6d3ac620, + 0x38ef8: 0x6d3ac820, 0x38ef9: 0x6d3aca20, 0x38efa: 0x6d3acc20, 0x38efb: 0x6d3ace20, + 0x38efc: 0x6d3ad020, 0x38efd: 0x6d3ad220, 0x38efe: 0x6d3ad420, 0x38eff: 0x6d3ad620, + // Block 0xe3c, offset 0x38f00 + 0x38f00: 0x6d3ad820, 0x38f01: 0x6d3ada20, 0x38f02: 0x6d3adc20, 0x38f03: 0x6d3ade20, + 0x38f04: 0x6d3ae020, 0x38f05: 0x6d3ae220, 0x38f06: 0x6d3ae420, 0x38f07: 0x6d3ae620, + 0x38f08: 0x6d3ae820, 0x38f09: 0x6d3aea20, 0x38f0a: 0x6d3aec20, 0x38f0b: 0x6d3aee20, + 0x38f0c: 0x6d3af020, 0x38f0d: 0x6d3af220, 0x38f0e: 0x6d3af420, 0x38f0f: 0x6d3af620, + 0x38f10: 0x6d3af820, 0x38f11: 0x6d3afa20, 0x38f12: 0x6d668e20, 0x38f13: 0x6d669020, + 0x38f14: 0x6d669220, 0x38f15: 0x6d669420, 0x38f16: 0x6d669620, 0x38f17: 0x6d669820, + 0x38f18: 0x6d669a20, 0x38f19: 0x6d669c20, 0x38f1a: 0x6d669e20, 0x38f1b: 0x6d66a020, + 0x38f1c: 0x6d66a220, 0x38f1d: 0x6d66a420, 0x38f1e: 0x6d66a620, 0x38f1f: 0x6d66a820, + 0x38f20: 0x6d66aa20, 0x38f21: 0x6d66ac20, 0x38f22: 0x6d66ae20, 0x38f23: 0x6d66b020, + 0x38f24: 0x6d66b220, 0x38f25: 0x6d66b420, 0x38f26: 0x6d66b620, 0x38f27: 0x6d66b820, + 0x38f28: 0x6d66ba20, 0x38f29: 0x6d66bc20, 0x38f2a: 0x6d66be20, 0x38f2b: 0x6d66c020, + 0x38f2c: 0x6d66c220, 0x38f2d: 0x6d66c420, 0x38f2e: 0x6d66c620, 0x38f2f: 0x6d66c820, + 0x38f30: 0x6d66ca20, 0x38f31: 0x6d66cc20, 0x38f32: 0x6d66ce20, 0x38f33: 0x6d66d020, + 0x38f34: 0x6d66d220, 0x38f35: 0x6d66d420, 0x38f36: 0x6d66d620, 0x38f37: 0x6d66d820, + 0x38f38: 0x6d66da20, 0x38f39: 0x6d66dc20, 0x38f3a: 0x6d66de20, 0x38f3b: 0x6d66e020, + 0x38f3c: 0x6d66e220, 0x38f3d: 0x6d66e420, 0x38f3e: 0x6d66e620, 0x38f3f: 0x6d66e820, + // Block 0xe3d, offset 0x38f40 + 0x38f40: 0x6d66ea20, 0x38f41: 0x6d66ec20, 0x38f42: 0x6d66ee20, 0x38f43: 0x6d66f020, + 0x38f44: 0x6d66f220, 0x38f45: 0x6d66f420, 0x38f46: 0x6d66f620, 0x38f47: 0x6d66f820, + 0x38f48: 0x6d66fa20, 0x38f49: 0x6d66fc20, 0x38f4a: 0x6d66fe20, 0x38f4b: 0x6d670020, + 0x38f4c: 0x6d670220, 0x38f4d: 0x6d670420, 0x38f4e: 0x6d670620, 0x38f4f: 0x6d670820, + 0x38f50: 0x6d670a20, 0x38f51: 0x6d670c20, 0x38f52: 0x6d670e20, 0x38f53: 0x6d671020, + 0x38f54: 0x6d671220, 0x38f55: 0x6d671420, 0x38f56: 0x6d671620, 0x38f57: 0x6d671820, + 0x38f58: 0x6d671a20, 0x38f59: 0x6d671c20, 0x38f5a: 0x6d671e20, 0x38f5b: 0x6d672020, + 0x38f5c: 0x6d672220, 0x38f5d: 0x6d672420, 0x38f5e: 0x6d672620, 0x38f5f: 0x6d672820, + 0x38f60: 0x6d672a20, 0x38f61: 0x6d905c20, 0x38f62: 0x6d905e20, 0x38f63: 0x6d906020, + 0x38f64: 0x6d906220, 0x38f65: 0x6d906420, 0x38f66: 0x6d906620, 0x38f67: 0x6d906820, + 0x38f68: 0x6d906a20, 0x38f69: 0x6d906c20, 0x38f6a: 0x6d906e20, 0x38f6b: 0x6d907020, + 0x38f6c: 0x6d907220, 0x38f6d: 0x6d907420, 0x38f6e: 0x6d907620, 0x38f6f: 0x6d907820, + 0x38f70: 0x6d907a20, 0x38f71: 0x6d907c20, 0x38f72: 0x6d907e20, 0x38f73: 0x6d908020, + 0x38f74: 0x6d908220, 0x38f75: 0x6d908420, 0x38f76: 0x6d908620, 0x38f77: 0x6d908820, + 0x38f78: 0x6d908a20, 0x38f79: 0x6d908c20, 0x38f7a: 0x6d908e20, 0x38f7b: 0x6d909020, + 0x38f7c: 0x6d909220, 0x38f7d: 0x6d909420, 0x38f7e: 0x6d909620, 0x38f7f: 0x6d909820, + // Block 0xe3e, offset 0x38f80 + 0x38f80: 0x6d909a20, 0x38f81: 0x6d909c20, 0x38f82: 0x6d909e20, 0x38f83: 0x6d90a020, + 0x38f84: 0x6d90a220, 0x38f85: 0x6d90a420, 0x38f86: 0x6d90a620, 0x38f87: 0x6d672c20, + 0x38f88: 0x6d90a820, 0x38f89: 0x6d90aa20, 0x38f8a: 0x6d90ac20, 0x38f8b: 0x6d90ae20, + 0x38f8c: 0x6d90b020, 0x38f8d: 0x6d90b220, 0x38f8e: 0x6d90b420, 0x38f8f: 0x6d90b620, + 0x38f90: 0x6d90b820, 0x38f91: 0x6d90ba20, 0x38f92: 0x6d90bc20, 0x38f93: 0x6d90be20, + 0x38f94: 0x6d90c020, 0x38f95: 0x6d90c220, 0x38f96: 0x6d90c420, 0x38f97: 0x6d90c620, + 0x38f98: 0x6d90c820, 0x38f99: 0x6d90ca20, 0x38f9a: 0x6d90cc20, 0x38f9b: 0x6d90ce20, + 0x38f9c: 0x6d90d020, 0x38f9d: 0x6d90d220, 0x38f9e: 0x6d90d420, 0x38f9f: 0x6d90d620, + 0x38fa0: 0x6d90d820, 0x38fa1: 0x6d90da20, 0x38fa2: 0x6d90dc20, 0x38fa3: 0x6d90de20, + 0x38fa4: 0x6d90e020, 0x38fa5: 0x6d90e220, 0x38fa6: 0x6d90e420, 0x38fa7: 0x6d90e620, + 0x38fa8: 0x6d90e820, 0x38fa9: 0x6d90ea20, 0x38faa: 0x6d90ec20, 0x38fab: 0x6d90ee20, + 0x38fac: 0x6d90f020, 0x38fad: 0x6d90f220, 0x38fae: 0x6d90f420, 0x38faf: 0x6d90f620, + 0x38fb0: 0x6d90f820, 0x38fb1: 0x6d90fa20, 0x38fb2: 0x6d90fc20, 0x38fb3: 0x6d90fe20, + 0x38fb4: 0x6d910020, 0x38fb5: 0x6d910220, 0x38fb6: 0x6d910420, 0x38fb7: 0x6d910620, + 0x38fb8: 0x6db42820, 0x38fb9: 0x6db42a20, 0x38fba: 0x6db42c20, 0x38fbb: 0x6db42e20, + 0x38fbc: 0x6db43020, 0x38fbd: 0x6db43220, 0x38fbe: 0x6db43420, 0x38fbf: 0x6db43620, + // Block 0xe3f, offset 0x38fc0 + 0x38fc0: 0x6db43820, 0x38fc1: 0x6db43a20, 0x38fc2: 0x6db43c20, 0x38fc3: 0x6db43e20, + 0x38fc4: 0x6db44020, 0x38fc5: 0x6db44220, 0x38fc6: 0x6db44420, 0x38fc7: 0x6db44620, + 0x38fc8: 0x6db44820, 0x38fc9: 0x6db44a20, 0x38fca: 0x6db44c20, 0x38fcb: 0x6db44e20, + 0x38fcc: 0x6db45020, 0x38fcd: 0x6db45220, 0x38fce: 0x6db45420, 0x38fcf: 0x6db45620, + 0x38fd0: 0x6db45820, 0x38fd1: 0x6db45a20, 0x38fd2: 0x6db45c20, 0x38fd3: 0x6db45e20, + 0x38fd4: 0x6db46020, 0x38fd5: 0x6db46220, 0x38fd6: 0x6db46420, 0x38fd7: 0x6db46620, + 0x38fd8: 0x6db46820, 0x38fd9: 0x6db46a20, 0x38fda: 0x6db46c20, 0x38fdb: 0x6db46e20, + 0x38fdc: 0x6db47020, 0x38fdd: 0x6db47220, 0x38fde: 0x6db47420, 0x38fdf: 0x6db47620, + 0x38fe0: 0x6db47820, 0x38fe1: 0x6db47a20, 0x38fe2: 0x6db47c20, 0x38fe3: 0x6db47e20, + 0x38fe4: 0x6db48020, 0x38fe5: 0x6db48220, 0x38fe6: 0x6db48420, 0x38fe7: 0x6db48620, + 0x38fe8: 0x6db48820, 0x38fe9: 0x6db48a20, 0x38fea: 0x6db48c20, 0x38feb: 0x6db48e20, + 0x38fec: 0x6db49020, 0x38fed: 0x6db49220, 0x38fee: 0x6db49420, 0x38fef: 0x6db49620, + 0x38ff0: 0x6dcfa420, 0x38ff1: 0x6db49820, 0x38ff2: 0x6db49a20, 0x38ff3: 0x6db49c20, + 0x38ff4: 0x6db49e20, 0x38ff5: 0x6db4a020, 0x38ff6: 0x6db4a220, 0x38ff7: 0x6db4a420, + 0x38ff8: 0x6db4a620, 0x38ff9: 0x6db4a820, 0x38ffa: 0x6db4aa20, 0x38ffb: 0x6db4ac20, + 0x38ffc: 0x6db4ae20, 0x38ffd: 0x6db4b020, 0x38ffe: 0x6db4b220, 0x38fff: 0x6db4b420, + // Block 0xe40, offset 0x39000 + 0x39000: 0x6db4b620, 0x39001: 0x6db4b820, 0x39002: 0x6db4ba20, 0x39003: 0x6db4bc20, + 0x39004: 0x6dd2fa20, 0x39005: 0x6dd2fc20, 0x39006: 0x6dd2fe20, 0x39007: 0x6dd30020, + 0x39008: 0x6dd30220, 0x39009: 0x6dd30420, 0x3900a: 0x6dd30620, 0x3900b: 0x6dd30820, + 0x3900c: 0x6dd30a20, 0x3900d: 0x6dd30c20, 0x3900e: 0x6dd30e20, 0x3900f: 0x6dd31020, + 0x39010: 0x6dd31220, 0x39011: 0x6dd31420, 0x39012: 0x6dd31620, 0x39013: 0x6dd31820, + 0x39014: 0x6dd31a20, 0x39015: 0x6dd31c20, 0x39016: 0x6dd31e20, 0x39017: 0x6dd32020, + 0x39018: 0x6dd32220, 0x39019: 0x6dd32420, 0x3901a: 0x6dd32620, 0x3901b: 0x6dd32820, + 0x3901c: 0x6dd32a20, 0x3901d: 0x6dd32c20, 0x3901e: 0x6dd32e20, 0x3901f: 0x6dd33020, + 0x39020: 0x6dd33220, 0x39021: 0x6dd33420, 0x39022: 0x6dd33620, 0x39023: 0x6dd33820, + 0x39024: 0x6dd33a20, 0x39025: 0x6dd33c20, 0x39026: 0x6dd33e20, 0x39027: 0x6dd34020, + 0x39028: 0x6dd34220, 0x39029: 0x6dd34420, 0x3902a: 0x6dd34620, 0x3902b: 0x6dd34820, + 0x3902c: 0x6dd34a20, 0x3902d: 0x6dd34c20, 0x3902e: 0x6dd34e20, 0x3902f: 0x6dd35020, + 0x39030: 0x6dd35220, 0x39031: 0x6dd35420, 0x39032: 0x6dd35620, 0x39033: 0x6dd35820, + 0x39034: 0x6dd35a20, 0x39035: 0x6dd35c20, 0x39036: 0x6dd35e20, 0x39037: 0x6dd36020, + 0x39038: 0x6dd36220, 0x39039: 0x6dd36420, 0x3903a: 0x6dd36620, 0x3903b: 0x6dd36820, + 0x3903c: 0x6dd36a20, 0x3903d: 0x6dd36c20, 0x3903e: 0x6dd36e20, 0x3903f: 0x6dd37020, + // Block 0xe41, offset 0x39040 + 0x39040: 0x6dd37220, 0x39041: 0x6dd37420, 0x39042: 0x6dd37620, 0x39043: 0x6dd37820, + 0x39044: 0x6dd37a20, 0x39045: 0x6dd37c20, 0x39046: 0x6dd37e20, 0x39047: 0x6dd38020, + 0x39048: 0x6dd38220, 0x39049: 0x6dd38420, 0x3904a: 0x6dd38620, 0x3904b: 0x6dd38820, + 0x3904c: 0x6dd38a20, 0x3904d: 0x6dd38c20, 0x3904e: 0x6dec2620, 0x3904f: 0x6dec2820, + 0x39050: 0x6dec2a20, 0x39051: 0x6dec2c20, 0x39052: 0x6dec2e20, 0x39053: 0x6dec3020, + 0x39054: 0x6dec3220, 0x39055: 0x6dec3420, 0x39056: 0x6dec3620, 0x39057: 0x6dec3820, + 0x39058: 0x6dec3a20, 0x39059: 0x6dec3c20, 0x3905a: 0x6dec3e20, 0x3905b: 0x6dec4020, + 0x3905c: 0x6dec4220, 0x3905d: 0x6dec4420, 0x3905e: 0x6dec4620, 0x3905f: 0x6dec4820, + 0x39060: 0x6dec4a20, 0x39061: 0x6dec4c20, 0x39062: 0x6dec4e20, 0x39063: 0x6dec5020, + 0x39064: 0x6dec5220, 0x39065: 0x6dec5420, 0x39066: 0x6dec5620, 0x39067: 0x6dec5820, + 0x39068: 0x6dec5a20, 0x39069: 0x6dec5c20, 0x3906a: 0x6dec5e20, 0x3906b: 0x6dec6020, + 0x3906c: 0x6dec6220, 0x3906d: 0x6dec6420, 0x3906e: 0x6dec6620, 0x3906f: 0x6dec6820, + 0x39070: 0x6dec6a20, 0x39071: 0x6dec6c20, 0x39072: 0x6dec6e20, 0x39073: 0x6dec7020, + 0x39074: 0x6dec7220, 0x39075: 0x6dec7420, 0x39076: 0x6dec7620, 0x39077: 0x6dec7820, + 0x39078: 0x6dec7a20, 0x39079: 0x6dec7c20, 0x3907a: 0x6dec7e20, 0x3907b: 0x6dec8020, + 0x3907c: 0x6dec8220, 0x3907d: 0x6dec8420, 0x3907e: 0x6dec8620, 0x3907f: 0x6dec8820, + // Block 0xe42, offset 0x39080 + 0x39080: 0x6dec8a20, 0x39081: 0x6dec8c20, 0x39082: 0x6dec8e20, 0x39083: 0x6dec9020, + 0x39084: 0x6dec9220, 0x39085: 0x6dec9420, 0x39086: 0x6dec9620, 0x39087: 0x6dec9820, + 0x39088: 0x6dec9a20, 0x39089: 0x6e018420, 0x3908a: 0x6e018620, 0x3908b: 0x6e018820, + 0x3908c: 0x6e018a20, 0x3908d: 0x6e018c20, 0x3908e: 0x6e018e20, 0x3908f: 0x6e019020, + 0x39090: 0x6e019220, 0x39091: 0x6e019420, 0x39092: 0x6e019620, 0x39093: 0x6e019820, + 0x39094: 0x6e019a20, 0x39095: 0x6e019c20, 0x39096: 0x6e019e20, 0x39097: 0x6e01a020, + 0x39098: 0x6e01a220, 0x39099: 0x6e01a420, 0x3909a: 0x6e01a620, 0x3909b: 0x6e01a820, + 0x3909c: 0x6e01aa20, 0x3909d: 0x6e01ac20, 0x3909e: 0x6e01ae20, 0x3909f: 0x6e01b020, + 0x390a0: 0x6e01b220, 0x390a1: 0x6e01b420, 0x390a2: 0x6e01b620, 0x390a3: 0x6e01b820, + 0x390a4: 0x6e01ba20, 0x390a5: 0x6e01bc20, 0x390a6: 0x6e01be20, 0x390a7: 0x6e01c020, + 0x390a8: 0x6e01c220, 0x390a9: 0x6e01c420, 0x390aa: 0x6e01c620, 0x390ab: 0x6e01c820, + 0x390ac: 0x6e01ca20, 0x390ad: 0x6e01cc20, 0x390ae: 0x6e01ce20, 0x390af: 0x6e01d020, + 0x390b0: 0x6e01d220, 0x390b1: 0x6e136a20, 0x390b2: 0x6e136c20, 0x390b3: 0x6e136e20, + 0x390b4: 0x6e137020, 0x390b5: 0x6e137220, 0x390b6: 0x6e137420, 0x390b7: 0x6e137620, + 0x390b8: 0x6e137820, 0x390b9: 0x6e137a20, 0x390ba: 0x6e137c20, 0x390bb: 0x6e137e20, + 0x390bc: 0x6e138020, 0x390bd: 0x6e138220, 0x390be: 0x6e138420, 0x390bf: 0x6e138620, + // Block 0xe43, offset 0x390c0 + 0x390c0: 0x6e138820, 0x390c1: 0x6e138a20, 0x390c2: 0x6e138c20, 0x390c3: 0x6e138e20, + 0x390c4: 0x6e139020, 0x390c5: 0x6e139220, 0x390c6: 0x6e139420, 0x390c7: 0x6e139620, + 0x390c8: 0x6e139820, 0x390c9: 0x6e139a20, 0x390ca: 0x6e139c20, 0x390cb: 0x6e139e20, + 0x390cc: 0x6e13a020, 0x390cd: 0x6e13a220, 0x390ce: 0x6e13a420, 0x390cf: 0x6e13a620, + 0x390d0: 0x6e13a820, 0x390d1: 0x6e13aa20, 0x390d2: 0x6e13ac20, 0x390d3: 0x6e13ae20, + 0x390d4: 0x6e13b020, 0x390d5: 0x6e13b220, 0x390d6: 0x6e13b420, 0x390d7: 0x6e13b620, + 0x390d8: 0x6e13b820, 0x390d9: 0x6e13ba20, 0x390da: 0x6e13bc20, 0x390db: 0x6e13be20, + 0x390dc: 0x6e13c020, 0x390dd: 0x6e213820, 0x390de: 0x6e213a20, 0x390df: 0x6e213c20, + 0x390e0: 0x6e213e20, 0x390e1: 0x6e214020, 0x390e2: 0x6e214220, 0x390e3: 0x6e214420, + 0x390e4: 0x6e214620, 0x390e5: 0x6e214820, 0x390e6: 0x6e214a20, 0x390e7: 0x6e214c20, + 0x390e8: 0x6e214e20, 0x390e9: 0x6e215020, 0x390ea: 0x6e215220, 0x390eb: 0x6e215420, + 0x390ec: 0x6e215620, 0x390ed: 0x6e215820, 0x390ee: 0x6e215a20, 0x390ef: 0x6e215c20, + 0x390f0: 0x6e215e20, 0x390f1: 0x6e216020, 0x390f2: 0x6e216220, 0x390f3: 0x6e216420, + 0x390f4: 0x6e216620, 0x390f5: 0x6e216820, 0x390f6: 0x6e216a20, 0x390f7: 0x6e216c20, + 0x390f8: 0x6e216e20, 0x390f9: 0x6e217020, 0x390fa: 0x6e217220, 0x390fb: 0x6e217420, + 0x390fc: 0x6e217620, 0x390fd: 0x6e217820, 0x390fe: 0x6e217a20, 0x390ff: 0x6e217c20, + // Block 0xe44, offset 0x39100 + 0x39100: 0x6e217e20, 0x39101: 0x6e218020, 0x39102: 0x6e218220, 0x39103: 0x6e2bf020, + 0x39104: 0x6e2bf220, 0x39105: 0x6e2bf420, 0x39106: 0x6e2bf620, 0x39107: 0x6e2bf820, + 0x39108: 0x6e2bfa20, 0x39109: 0x6e2bfc20, 0x3910a: 0x6e2bfe20, 0x3910b: 0x6e2c0020, + 0x3910c: 0x6e2c0220, 0x3910d: 0x6e2c0420, 0x3910e: 0x6e2c0620, 0x3910f: 0x6e2c0820, + 0x39110: 0x6e2c0a20, 0x39111: 0x6e2c0c20, 0x39112: 0x6e2c0e20, 0x39113: 0x6e343220, + 0x39114: 0x6e2c1020, 0x39115: 0x6e2c1220, 0x39116: 0x6e2c1420, 0x39117: 0x6e2c1620, + 0x39118: 0x6e2c1820, 0x39119: 0x6e2c1a20, 0x3911a: 0x6e2c1c20, 0x3911b: 0x6e343420, + 0x3911c: 0x6e343620, 0x3911d: 0x6e343820, 0x3911e: 0x6e343a20, 0x3911f: 0x6e343c20, + 0x39120: 0x6e343e20, 0x39121: 0x6e344020, 0x39122: 0x6e344220, 0x39123: 0x6e344420, + 0x39124: 0x6e344620, 0x39125: 0x6e344820, 0x39126: 0x6e344a20, 0x39127: 0x6e344c20, + 0x39128: 0x6e344e20, 0x39129: 0x6e345020, 0x3912a: 0x6e345220, 0x3912b: 0x6e345420, + 0x3912c: 0x6e345620, 0x3912d: 0x6e345820, 0x3912e: 0x6e345a20, 0x3912f: 0x6e39ee20, + 0x39130: 0x6e39f020, 0x39131: 0x6e39f220, 0x39132: 0x6e39f420, 0x39133: 0x6e39f620, + 0x39134: 0x6e39f820, 0x39135: 0x6e39fa20, 0x39136: 0x6e39fc20, 0x39137: 0x6e39fe20, + 0x39138: 0x6e3a0020, 0x39139: 0x6e3a0220, 0x3913a: 0x6e3a0420, 0x3913b: 0x6e3a0620, + 0x3913c: 0x6e3a0820, 0x3913d: 0x6e3e1820, 0x3913e: 0x6e3e1a20, 0x3913f: 0x6e3e1c20, + // Block 0xe45, offset 0x39140 + 0x39140: 0x6e3e1e20, 0x39141: 0x6e3e2020, 0x39142: 0x6e3e2220, 0x39143: 0x6e3e2420, + 0x39144: 0x6e40e220, 0x39145: 0x6e40e420, 0x39146: 0x6e40e620, 0x39147: 0x6e40e820, + 0x39148: 0x6e40ea20, 0x39149: 0x6e40ec20, 0x3914a: 0x6e3e2620, 0x3914b: 0x6e40ee20, + 0x3914c: 0x6e40f020, 0x3914d: 0x6e40f220, 0x3914e: 0x6e40f420, 0x3914f: 0x6e40f620, + 0x39150: 0x6e40f820, 0x39151: 0x6e42fe20, 0x39152: 0x6e430020, 0x39153: 0x6e430220, + 0x39154: 0x6e430420, 0x39155: 0x6e430620, 0x39156: 0x6e430820, 0x39157: 0x6e430a20, + 0x39158: 0x6e446e20, 0x39159: 0x6e447020, 0x3915a: 0x6e447220, 0x3915b: 0x6e447420, + 0x3915c: 0x6e455220, 0x3915d: 0x6e455420, 0x3915e: 0x6e455620, 0x3915f: 0x6e455820, + 0x39160: 0x6e459020, 0x39161: 0x6e455a20, 0x39162: 0x6e45d220, 0x39163: 0x6e45d420, + 0x39164: 0x6e463a20, 0x39165: 0x6e463c20, 0x39166: 0x6e463e20, 0x39167: 0x6c403620, + 0x39168: 0x6c403820, 0x39169: 0x6c403a20, 0x3916a: 0x6c5ffc20, 0x3916b: 0x6c858820, + 0x3916c: 0x6c858a20, 0x3916d: 0x6c858c20, 0x3916e: 0x6c858e20, 0x3916f: 0x6c859020, + 0x39170: 0x6caf1e20, 0x39171: 0x6caf2020, 0x39172: 0x6caf2220, 0x39173: 0x6cde4c20, + 0x39174: 0x6cde4e20, 0x39175: 0x6d0cbe20, 0x39176: 0x6d0cc020, 0x39177: 0x6d0cc220, + 0x39178: 0x6d0cc420, 0x39179: 0x6d0cc620, 0x3917a: 0x6d3b1220, 0x3917b: 0x6d3b1420, + 0x3917c: 0x6d3b1620, 0x3917d: 0x6d3b1820, 0x3917e: 0x6d3b1a20, 0x3917f: 0x6d3b1c20, + // Block 0xe46, offset 0x39180 + 0x39180: 0x6d673c20, 0x39181: 0x6d673e20, 0x39182: 0x6d674020, 0x39183: 0x6d674220, + 0x39184: 0x6d3b1e20, 0x39185: 0x6d674420, 0x39186: 0x6d911620, 0x39187: 0x6d911820, + 0x39188: 0x6d911a20, 0x39189: 0x6d911c20, 0x3918a: 0x6d911e20, 0x3918b: 0x6db4c820, + 0x3918c: 0x6db4ca20, 0x3918d: 0x6db4cc20, 0x3918e: 0x6dd39820, 0x3918f: 0x6dd39a20, + 0x39190: 0x6dd39c20, 0x39191: 0x6dd39e20, 0x39192: 0x6dd3a020, 0x39193: 0x6dd3a220, + 0x39194: 0x6deca620, 0x39195: 0x6deca820, 0x39196: 0x6e01dc20, 0x39197: 0x6e01de20, + 0x39198: 0x6e13cc20, 0x39199: 0x6e218620, 0x3919a: 0x6e218820, 0x3919b: 0x6e2c1e20, + 0x3919c: 0x6e455c20, 0x3919d: 0x6c403c20, 0x3919e: 0x6c403e20, 0x3919f: 0x6c404020, + 0x391a0: 0x6c404220, 0x391a1: 0x6c600220, 0x391a2: 0x6c600420, 0x391a3: 0x6c600620, + 0x391a4: 0x6c600820, 0x391a5: 0x6c600a20, 0x391a6: 0x6c859820, 0x391a7: 0x6c859a20, + 0x391a8: 0x6c859c20, 0x391a9: 0x6c859e20, 0x391aa: 0x6caf3020, 0x391ab: 0x6cde5a20, + 0x391ac: 0x6cde5c20, 0x391ad: 0x6cde5e20, 0x391ae: 0x6cde6020, 0x391af: 0x6cde6220, + 0x391b0: 0x6cde6420, 0x391b1: 0x6cde6620, 0x391b2: 0x6d0ccc20, 0x391b3: 0x6d0cce20, + 0x391b4: 0x6d0cd020, 0x391b5: 0x6d0cd220, 0x391b6: 0x6d0cd420, 0x391b7: 0x6d0cd620, + 0x391b8: 0x6d3b2020, 0x391b9: 0x6d674e20, 0x391ba: 0x6d3b2220, 0x391bb: 0x6d3b2420, + 0x391bc: 0x6d675020, 0x391bd: 0x6d675220, 0x391be: 0x6d912e20, 0x391bf: 0x6db4d220, + // Block 0xe47, offset 0x391c0 + 0x391c0: 0x6db4d420, 0x391c1: 0x6db4d620, 0x391c2: 0x6dd3a420, 0x391c3: 0x6dd3a620, + 0x391c4: 0x6decaa20, 0x391c5: 0x6e13ce20, 0x391c6: 0x6e218a20, 0x391c7: 0x6c0a6220, + 0x391c8: 0x6c269020, 0x391c9: 0x6c269220, 0x391ca: 0x6c269420, 0x391cb: 0x6c269620, + 0x391cc: 0x6c269820, 0x391cd: 0x6c404c20, 0x391ce: 0x6c404e20, 0x391cf: 0x6c405020, + 0x391d0: 0x6c405220, 0x391d1: 0x6c405420, 0x391d2: 0x6c405620, 0x391d3: 0x6c405820, + 0x391d4: 0x6c405a20, 0x391d5: 0x6c405c20, 0x391d6: 0x6c405e20, 0x391d7: 0x6c406020, + 0x391d8: 0x6c406220, 0x391d9: 0x6c406420, 0x391da: 0x6c406620, 0x391db: 0x6c406820, + 0x391dc: 0x6c406a20, 0x391dd: 0x6c601e20, 0x391de: 0x6c602020, 0x391df: 0x6c602220, + 0x391e0: 0x6c602420, 0x391e1: 0x6c602620, 0x391e2: 0x6c602820, 0x391e3: 0x6c602a20, + 0x391e4: 0x6c602c20, 0x391e5: 0x6c602e20, 0x391e6: 0x6c603020, 0x391e7: 0x6c603220, + 0x391e8: 0x6c603420, 0x391e9: 0x6c603620, 0x391ea: 0x6c603820, 0x391eb: 0x6c603a20, + 0x391ec: 0x6c603c20, 0x391ed: 0x6c603e20, 0x391ee: 0x6c604020, 0x391ef: 0x6c604220, + 0x391f0: 0x6c604420, 0x391f1: 0x6c604620, 0x391f2: 0x6c604820, 0x391f3: 0x6c604a20, + 0x391f4: 0x6c604c20, 0x391f5: 0x6c604e20, 0x391f6: 0x6c605020, 0x391f7: 0x6c605220, + 0x391f8: 0x6c605420, 0x391f9: 0x6c605620, 0x391fa: 0x6c605820, 0x391fb: 0x6c605a20, + 0x391fc: 0x6c605c20, 0x391fd: 0x6c85dc20, 0x391fe: 0x6caf9220, 0x391ff: 0x6c85de20, + // Block 0xe48, offset 0x39200 + 0x39200: 0x6c85e020, 0x39201: 0x6c85e220, 0x39202: 0x6c85e420, 0x39203: 0x6c85e620, + 0x39204: 0x6c85e820, 0x39205: 0x6c85ea20, 0x39206: 0x6c85ec20, 0x39207: 0x6c85ee20, + 0x39208: 0x6c85f020, 0x39209: 0x6c85f220, 0x3920a: 0x6c85f420, 0x3920b: 0x6c85f620, + 0x3920c: 0x6c85f820, 0x3920d: 0x6c85fa20, 0x3920e: 0x6c85fc20, 0x3920f: 0x6c85fe20, + 0x39210: 0x6c860020, 0x39211: 0x6c860220, 0x39212: 0x6c860420, 0x39213: 0x6c860620, + 0x39214: 0x6c860820, 0x39215: 0x6c860a20, 0x39216: 0x6c860c20, 0x39217: 0x6c860e20, + 0x39218: 0x6c861020, 0x39219: 0x6c861220, 0x3921a: 0x6c861420, 0x3921b: 0x6c861620, + 0x3921c: 0x6c861820, 0x3921d: 0x6c861a20, 0x3921e: 0x6caf9420, 0x3921f: 0x6caf9620, + 0x39220: 0x6caf9820, 0x39221: 0x6caf9a20, 0x39222: 0x6caf9c20, 0x39223: 0x6caf9e20, + 0x39224: 0x6cafa020, 0x39225: 0x6cafa220, 0x39226: 0x6cafa420, 0x39227: 0x6cafa620, + 0x39228: 0x6cafa820, 0x39229: 0x6cafaa20, 0x3922a: 0x6cafac20, 0x3922b: 0x6cafae20, + 0x3922c: 0x6cafb020, 0x3922d: 0x6cafb220, 0x3922e: 0x6cafb420, 0x3922f: 0x6cafb620, + 0x39230: 0x6cafb820, 0x39231: 0x6cafba20, 0x39232: 0x6cafbc20, 0x39233: 0x6cafbe20, + 0x39234: 0x6cafc020, 0x39235: 0x6cafc220, 0x39236: 0x6cafc420, 0x39237: 0x6cafc620, + 0x39238: 0x6cafc820, 0x39239: 0x6cafca20, 0x3923a: 0x6cafcc20, 0x3923b: 0x6cafce20, + 0x3923c: 0x6cafd020, 0x3923d: 0x6cafd220, 0x3923e: 0x6cafd420, 0x3923f: 0x6cafd620, + // Block 0xe49, offset 0x39240 + 0x39240: 0x6cdeac20, 0x39241: 0x6cdeae20, 0x39242: 0x6cdeb020, 0x39243: 0x6cdeb220, + 0x39244: 0x6cdeb420, 0x39245: 0x6cdeb620, 0x39246: 0x6cdeb820, 0x39247: 0x6cdeba20, + 0x39248: 0x6cdebc20, 0x39249: 0x6cdebe20, 0x3924a: 0x6cdec020, 0x3924b: 0x6cdec220, + 0x3924c: 0x6cdec420, 0x3924d: 0x6cdec620, 0x3924e: 0x6cdec820, 0x3924f: 0x6cdeca20, + 0x39250: 0x6cdecc20, 0x39251: 0x6cdece20, 0x39252: 0x6cded020, 0x39253: 0x6cded220, + 0x39254: 0x6cded420, 0x39255: 0x6cded620, 0x39256: 0x6cded820, 0x39257: 0x6cdeda20, + 0x39258: 0x6cdedc20, 0x39259: 0x6cdede20, 0x3925a: 0x6cdee020, 0x3925b: 0x6cdee220, + 0x3925c: 0x6cdee420, 0x3925d: 0x6cdee620, 0x3925e: 0x6cdee820, 0x3925f: 0x6cdeea20, + 0x39260: 0x6cdeec20, 0x39261: 0x6cdeee20, 0x39262: 0x6cdef020, 0x39263: 0x6cdef220, + 0x39264: 0x6d0d1420, 0x39265: 0x6d0d1620, 0x39266: 0x6d0d1820, 0x39267: 0x6d0d1a20, + 0x39268: 0x6d0d1c20, 0x39269: 0x6d0d1e20, 0x3926a: 0x6d0d2020, 0x3926b: 0x6d0d2220, + 0x3926c: 0x6d0d2420, 0x3926d: 0x6d0d2620, 0x3926e: 0x6d0d2820, 0x3926f: 0x6d0d2a20, + 0x39270: 0x6d0d2c20, 0x39271: 0x6d0d2e20, 0x39272: 0x6d0d3020, 0x39273: 0x6d0d3220, + 0x39274: 0x6d0d3420, 0x39275: 0x6d0d3620, 0x39276: 0x6d0d3820, 0x39277: 0x6d0d3a20, + 0x39278: 0x6d0d3c20, 0x39279: 0x6d0d3e20, 0x3927a: 0x6d0d4020, 0x3927b: 0x6d3b8420, + 0x3927c: 0x6d0d4220, 0x3927d: 0x6d0d4420, 0x3927e: 0x6d0d4620, 0x3927f: 0x6d0d4820, + // Block 0xe4a, offset 0x39280 + 0x39280: 0x6d0d4a20, 0x39281: 0x6d0d4c20, 0x39282: 0x6d0d4e20, 0x39283: 0x6d0d5020, + 0x39284: 0x6d0d5220, 0x39285: 0x6d0d5420, 0x39286: 0x6d0d5620, 0x39287: 0x6d0d5820, + 0x39288: 0x6d0d5a20, 0x39289: 0x6d0d5c20, 0x3928a: 0x6d0d5e20, 0x3928b: 0x6d0d6020, + 0x3928c: 0x6d0d6220, 0x3928d: 0x6d0d6420, 0x3928e: 0x6d0d6620, 0x3928f: 0x6d3b8620, + 0x39290: 0x6d3b8820, 0x39291: 0x6d3b8a20, 0x39292: 0x6d3b8c20, 0x39293: 0x6d3b8e20, + 0x39294: 0x6d3b9020, 0x39295: 0x6d3b9220, 0x39296: 0x6d3b9420, 0x39297: 0x6d3b9620, + 0x39298: 0x6d3b9820, 0x39299: 0x6d3b9a20, 0x3929a: 0x6d3b9c20, 0x3929b: 0x6d3b9e20, + 0x3929c: 0x6d3ba020, 0x3929d: 0x6d3ba220, 0x3929e: 0x6d3ba420, 0x3929f: 0x6d3ba620, + 0x392a0: 0x6d3ba820, 0x392a1: 0x6d3baa20, 0x392a2: 0x6d3bac20, 0x392a3: 0x6d3bae20, + 0x392a4: 0x6d3bb020, 0x392a5: 0x6d3bb220, 0x392a6: 0x6d3bb420, 0x392a7: 0x6d3bb620, + 0x392a8: 0x6d3bb820, 0x392a9: 0x6d3bba20, 0x392aa: 0x6d3bbc20, 0x392ab: 0x6d3bbe20, + 0x392ac: 0x6d3bc020, 0x392ad: 0x6d3bc220, 0x392ae: 0x6d3bc420, 0x392af: 0x6d3bc620, + 0x392b0: 0x6d3bc820, 0x392b1: 0x6d3bca20, 0x392b2: 0x6d3bcc20, 0x392b3: 0x6d3bce20, + 0x392b4: 0x6d3bd020, 0x392b5: 0x6d3bd220, 0x392b6: 0x6d3bd420, 0x392b7: 0x6d3bd620, + 0x392b8: 0x6d67a020, 0x392b9: 0x6d67a220, 0x392ba: 0x6d67a420, 0x392bb: 0x6d67a620, + 0x392bc: 0x6d67a820, 0x392bd: 0x6d67aa20, 0x392be: 0x6d67ac20, 0x392bf: 0x6d67ae20, + // Block 0xe4b, offset 0x392c0 + 0x392c0: 0x6d67b020, 0x392c1: 0x6d67b220, 0x392c2: 0x6d67b420, 0x392c3: 0x6d67b620, + 0x392c4: 0x6d67b820, 0x392c5: 0x6d67ba20, 0x392c6: 0x6d67bc20, 0x392c7: 0x6d67be20, + 0x392c8: 0x6d67c020, 0x392c9: 0x6d67c220, 0x392ca: 0x6d67c420, 0x392cb: 0x6d67c620, + 0x392cc: 0x6d67c820, 0x392cd: 0x6d67ca20, 0x392ce: 0x6d67cc20, 0x392cf: 0x6d67ce20, + 0x392d0: 0x6d67d020, 0x392d1: 0x6d67d220, 0x392d2: 0x6d67d420, 0x392d3: 0x6d67d620, + 0x392d4: 0x6d67d820, 0x392d5: 0x6d67da20, 0x392d6: 0x6d67dc20, 0x392d7: 0x6d67de20, + 0x392d8: 0x6d67e020, 0x392d9: 0x6d67e220, 0x392da: 0x6d67e420, 0x392db: 0x6d67e620, + 0x392dc: 0x6d67e820, 0x392dd: 0x6d916820, 0x392de: 0x6d916a20, 0x392df: 0x6d916c20, + 0x392e0: 0x6d916e20, 0x392e1: 0x6d917020, 0x392e2: 0x6d917220, 0x392e3: 0x6d917420, + 0x392e4: 0x6d917620, 0x392e5: 0x6d917820, 0x392e6: 0x6d917a20, 0x392e7: 0x6d917c20, + 0x392e8: 0x6d67ea20, 0x392e9: 0x6d917e20, 0x392ea: 0x6d918020, 0x392eb: 0x6d918220, + 0x392ec: 0x6d918420, 0x392ed: 0x6db51820, 0x392ee: 0x6d918620, 0x392ef: 0x6d918820, + 0x392f0: 0x6d918a20, 0x392f1: 0x6d918c20, 0x392f2: 0x6d918e20, 0x392f3: 0x6d919020, + 0x392f4: 0x6d919220, 0x392f5: 0x6d919420, 0x392f6: 0x6d919620, 0x392f7: 0x6d919820, + 0x392f8: 0x6d919a20, 0x392f9: 0x6d919c20, 0x392fa: 0x6d919e20, 0x392fb: 0x6d91a020, + 0x392fc: 0x6d91a220, 0x392fd: 0x6d91a420, 0x392fe: 0x6d91a620, 0x392ff: 0x6d91a820, + // Block 0xe4c, offset 0x39300 + 0x39300: 0x6d91aa20, 0x39301: 0x6d91ac20, 0x39302: 0x6db51a20, 0x39303: 0x6db51c20, + 0x39304: 0x6db51e20, 0x39305: 0x6db52020, 0x39306: 0x6db52220, 0x39307: 0x6db52420, + 0x39308: 0x6db52620, 0x39309: 0x6db52820, 0x3930a: 0x6db52a20, 0x3930b: 0x6db52c20, + 0x3930c: 0x6db52e20, 0x3930d: 0x6db53020, 0x3930e: 0x6db53220, 0x3930f: 0x6db53420, + 0x39310: 0x6db53620, 0x39311: 0x6db53820, 0x39312: 0x6db53a20, 0x39313: 0x6db53c20, + 0x39314: 0x6db53e20, 0x39315: 0x6db54020, 0x39316: 0x6db54220, 0x39317: 0x6db54420, + 0x39318: 0x6db54620, 0x39319: 0x6db54820, 0x3931a: 0x6db54a20, 0x3931b: 0x6db54c20, + 0x3931c: 0x6db54e20, 0x3931d: 0x6db55020, 0x3931e: 0x6db55220, 0x3931f: 0x6db55420, + 0x39320: 0x6db55620, 0x39321: 0x6db55820, 0x39322: 0x6db55a20, 0x39323: 0x6db55c20, + 0x39324: 0x6db55e20, 0x39325: 0x6db56020, 0x39326: 0x6db56220, 0x39327: 0x6db56420, + 0x39328: 0x6db56620, 0x39329: 0x6db56820, 0x3932a: 0x6db56a20, 0x3932b: 0x6db56c20, + 0x3932c: 0x6db56e20, 0x3932d: 0x6db57020, 0x3932e: 0x6db57220, 0x3932f: 0x6db57420, + 0x39330: 0x6db57620, 0x39331: 0x6dd3d220, 0x39332: 0x6dd3d420, 0x39333: 0x6dd3d620, + 0x39334: 0x6dd3d820, 0x39335: 0x6dd3da20, 0x39336: 0x6dd3dc20, 0x39337: 0x6dd3de20, + 0x39338: 0x6dd3e020, 0x39339: 0x6dd3e220, 0x3933a: 0x6dd3e420, 0x3933b: 0x6dd3e620, + 0x3933c: 0x6dd3e820, 0x3933d: 0x6dd3ea20, 0x3933e: 0x6dd3ec20, 0x3933f: 0x6dd3ee20, + // Block 0xe4d, offset 0x39340 + 0x39340: 0x6dd3f020, 0x39341: 0x6dd3f220, 0x39342: 0x6dd3f420, 0x39343: 0x6dd3f620, + 0x39344: 0x6dd3f820, 0x39345: 0x6dd3fa20, 0x39346: 0x6dd3fc20, 0x39347: 0x6dd3fe20, + 0x39348: 0x6dd40020, 0x39349: 0x6dd40220, 0x3934a: 0x6dd40420, 0x3934b: 0x6dd40620, + 0x3934c: 0x6dd40820, 0x3934d: 0x6decca20, 0x3934e: 0x6deccc20, 0x3934f: 0x6decce20, + 0x39350: 0x6decd020, 0x39351: 0x6decd220, 0x39352: 0x6decd420, 0x39353: 0x6decd620, + 0x39354: 0x6decd820, 0x39355: 0x6decda20, 0x39356: 0x6decdc20, 0x39357: 0x6e01f820, + 0x39358: 0x6decde20, 0x39359: 0x6dece020, 0x3935a: 0x6dece220, 0x3935b: 0x6dece420, + 0x3935c: 0x6dece620, 0x3935d: 0x6dece820, 0x3935e: 0x6decea20, 0x3935f: 0x6decec20, + 0x39360: 0x6decee20, 0x39361: 0x6decf020, 0x39362: 0x6decf220, 0x39363: 0x6decf420, + 0x39364: 0x6decf620, 0x39365: 0x6decf820, 0x39366: 0x6decfa20, 0x39367: 0x6e01fa20, + 0x39368: 0x6e01fc20, 0x39369: 0x6e01fe20, 0x3936a: 0x6e020020, 0x3936b: 0x6e020220, + 0x3936c: 0x6e020420, 0x3936d: 0x6e020620, 0x3936e: 0x6e020820, 0x3936f: 0x6e020a20, + 0x39370: 0x6e020c20, 0x39371: 0x6e020e20, 0x39372: 0x6e13de20, 0x39373: 0x6e021020, + 0x39374: 0x6e021220, 0x39375: 0x6e021420, 0x39376: 0x6e13e020, 0x39377: 0x6e13e220, + 0x39378: 0x6e13e420, 0x39379: 0x6e13e620, 0x3937a: 0x6e13e820, 0x3937b: 0x6e13ea20, + 0x3937c: 0x6e13ec20, 0x3937d: 0x6e13ee20, 0x3937e: 0x6e13f020, 0x3937f: 0x6e13f220, + // Block 0xe4e, offset 0x39380 + 0x39380: 0x6e13f420, 0x39381: 0x6e13f620, 0x39382: 0x6e13f820, 0x39383: 0x6e219620, + 0x39384: 0x6e219820, 0x39385: 0x6e219a20, 0x39386: 0x6e219c20, 0x39387: 0x6e219e20, + 0x39388: 0x6e2c2c20, 0x39389: 0x6e2c2e20, 0x3938a: 0x6e2c3020, 0x3938b: 0x6e2c3220, + 0x3938c: 0x6e346820, 0x3938d: 0x6e346a20, 0x3938e: 0x6e346c20, 0x3938f: 0x6e346e20, + 0x39390: 0x6e3a1620, 0x39391: 0x6e3a1820, 0x39392: 0x6e3a1a20, 0x39393: 0x6e3a1c20, + 0x39394: 0x6e3a1e20, 0x39395: 0x6e3e2820, 0x39396: 0x6e3e2a20, 0x39397: 0x6e3e2c20, + 0x39398: 0x6e410020, 0x39399: 0x6e447820, 0x3939a: 0x6e447a20, 0x3939b: 0x6e45d620, + 0x3939c: 0x6e468e20, 0x3939d: 0x6e469020, 0x3939e: 0x6e470420, 0x3939f: 0x6e470620, + 0x393a0: 0x6c269a20, 0x393a1: 0x6c269c20, 0x393a2: 0x6c269e20, 0x393a3: 0x6c406c20, + 0x393a4: 0x6c606820, 0x393a5: 0x6c606a20, 0x393a6: 0x6c606c20, 0x393a7: 0x6c862420, + 0x393a8: 0x6c862620, 0x393a9: 0x6c862820, 0x393aa: 0x6cafe620, 0x393ab: 0x6cafe820, + 0x393ac: 0x6cafea20, 0x393ad: 0x6cdf0220, 0x393ae: 0x6cdf0420, 0x393af: 0x6d0d7820, + 0x393b0: 0x6d0d7a20, 0x393b1: 0x6d3bdc20, 0x393b2: 0x6d3bde20, 0x393b3: 0x6d3be020, + 0x393b4: 0x6d3be220, 0x393b5: 0x6d3be420, 0x393b6: 0x6d3be620, 0x393b7: 0x6d3be820, + 0x393b8: 0x6d3bea20, 0x393b9: 0x6d67f220, 0x393ba: 0x6d67f420, 0x393bb: 0x6d67f620, + 0x393bc: 0x6d91ba20, 0x393bd: 0x6d91bc20, 0x393be: 0x6d91be20, 0x393bf: 0x6db57e20, + // Block 0xe4f, offset 0x393c0 + 0x393c0: 0x6dd41020, 0x393c1: 0x6dd41220, 0x393c2: 0x6ded0220, 0x393c3: 0x6e021820, + 0x393c4: 0x6e13fa20, 0x393c5: 0x6e3a2220, 0x393c6: 0x6c406e20, 0x393c7: 0x6c407020, + 0x393c8: 0x6c607020, 0x393c9: 0x6c863220, 0x393ca: 0x6c863420, 0x393cb: 0x6c863620, + 0x393cc: 0x6c863820, 0x393cd: 0x6c863a20, 0x393ce: 0x6cb00020, 0x393cf: 0x6cb00220, + 0x393d0: 0x6cb00420, 0x393d1: 0x6cb00620, 0x393d2: 0x6cb00820, 0x393d3: 0x6cb00a20, + 0x393d4: 0x6cb00c20, 0x393d5: 0x6cb00e20, 0x393d6: 0x6cb01020, 0x393d7: 0x6cb01220, + 0x393d8: 0x6cb01420, 0x393d9: 0x6cb01620, 0x393da: 0x6cb01820, 0x393db: 0x6cb01a20, + 0x393dc: 0x6cdf1a20, 0x393dd: 0x6cdf1c20, 0x393de: 0x6cdf1e20, 0x393df: 0x6cdf2020, + 0x393e0: 0x6cdf2220, 0x393e1: 0x6cdf2420, 0x393e2: 0x6cdf2620, 0x393e3: 0x6cdf2820, + 0x393e4: 0x6cdf2a20, 0x393e5: 0x6cdf2c20, 0x393e6: 0x6cdf2e20, 0x393e7: 0x6cdf3020, + 0x393e8: 0x6d0d8420, 0x393e9: 0x6d0d8620, 0x393ea: 0x6d0d8820, 0x393eb: 0x6d0d8a20, + 0x393ec: 0x6d0d8c20, 0x393ed: 0x6d0d8e20, 0x393ee: 0x6d0d9020, 0x393ef: 0x6d0d9220, + 0x393f0: 0x6d0d9420, 0x393f1: 0x6d0d9620, 0x393f2: 0x6d0d9820, 0x393f3: 0x6d0d9a20, + 0x393f4: 0x6d0d9c20, 0x393f5: 0x6d0d9e20, 0x393f6: 0x6d0da020, 0x393f7: 0x6d0da220, + 0x393f8: 0x6d0da420, 0x393f9: 0x6d0da620, 0x393fa: 0x6d0da820, 0x393fb: 0x6d3bfa20, + 0x393fc: 0x6d3bfc20, 0x393fd: 0x6d3bfe20, 0x393fe: 0x6d3c0020, 0x393ff: 0x6d3c0220, + // Block 0xe50, offset 0x39400 + 0x39400: 0x6d3c0420, 0x39401: 0x6d3c0620, 0x39402: 0x6d3c0820, 0x39403: 0x6d3c0a20, + 0x39404: 0x6d3c0c20, 0x39405: 0x6d3c0e20, 0x39406: 0x6d3c1020, 0x39407: 0x6d3c1220, + 0x39408: 0x6d3c1420, 0x39409: 0x6d3c1620, 0x3940a: 0x6d3c1820, 0x3940b: 0x6d680420, + 0x3940c: 0x6d680620, 0x3940d: 0x6d680820, 0x3940e: 0x6d680a20, 0x3940f: 0x6d680c20, + 0x39410: 0x6d680e20, 0x39411: 0x6d681020, 0x39412: 0x6d681220, 0x39413: 0x6d681420, + 0x39414: 0x6d681620, 0x39415: 0x6d681820, 0x39416: 0x6d681a20, 0x39417: 0x6d681c20, + 0x39418: 0x6d681e20, 0x39419: 0x6d682020, 0x3941a: 0x6d682220, 0x3941b: 0x6d682420, + 0x3941c: 0x6d682620, 0x3941d: 0x6d682820, 0x3941e: 0x6d682a20, 0x3941f: 0x6d682c20, + 0x39420: 0x6d682e20, 0x39421: 0x6d91d220, 0x39422: 0x6d91d420, 0x39423: 0x6d91d620, + 0x39424: 0x6d91d820, 0x39425: 0x6d91da20, 0x39426: 0x6d91dc20, 0x39427: 0x6d91de20, + 0x39428: 0x6d91e020, 0x39429: 0x6d91e220, 0x3942a: 0x6d91e420, 0x3942b: 0x6d91e620, + 0x3942c: 0x6d91e820, 0x3942d: 0x6d91ea20, 0x3942e: 0x6d91ec20, 0x3942f: 0x6d91ee20, + 0x39430: 0x6d91f020, 0x39431: 0x6d91f220, 0x39432: 0x6d91f420, 0x39433: 0x6d91f620, + 0x39434: 0x6d91f820, 0x39435: 0x6d91fa20, 0x39436: 0x6d91fc20, 0x39437: 0x6db59020, + 0x39438: 0x6db59220, 0x39439: 0x6db59420, 0x3943a: 0x6db59620, 0x3943b: 0x6db59820, + 0x3943c: 0x6db59a20, 0x3943d: 0x6db59c20, 0x3943e: 0x6db59e20, 0x3943f: 0x6db5a020, + // Block 0xe51, offset 0x39440 + 0x39440: 0x6db5a220, 0x39441: 0x6db5a420, 0x39442: 0x6dd42020, 0x39443: 0x6dd42220, + 0x39444: 0x6dd42420, 0x39445: 0x6dd42620, 0x39446: 0x6dd42820, 0x39447: 0x6dd42a20, + 0x39448: 0x6dd42c20, 0x39449: 0x6dd42e20, 0x3944a: 0x6dd43020, 0x3944b: 0x6dd43220, + 0x3944c: 0x6ded1820, 0x3944d: 0x6ded1a20, 0x3944e: 0x6ded1c20, 0x3944f: 0x6ded1e20, + 0x39450: 0x6ded2020, 0x39451: 0x6ded2220, 0x39452: 0x6e022020, 0x39453: 0x6e022220, + 0x39454: 0x6e022420, 0x39455: 0x6e022620, 0x39456: 0x6e022820, 0x39457: 0x6e022a20, + 0x39458: 0x6e140220, 0x39459: 0x6e140420, 0x3945a: 0x6e140620, 0x3945b: 0x6e140820, + 0x3945c: 0x6e21a820, 0x3945d: 0x6e21aa20, 0x3945e: 0x6e21ac20, 0x3945f: 0x6e21ae20, + 0x39460: 0x6e21b020, 0x39461: 0x6e21b220, 0x39462: 0x6e347020, 0x39463: 0x6e347220, + 0x39464: 0x6e347420, 0x39465: 0x6e347620, 0x39466: 0x6e3a2620, 0x39467: 0x6e3a2820, + 0x39468: 0x6e3a2a20, 0x39469: 0x6e3a2c20, 0x3946a: 0x6e3a2e20, 0x3946b: 0x6e3a3020, + 0x3946c: 0x6e3e3020, 0x3946d: 0x6e410220, 0x3946e: 0x6e430c20, 0x3946f: 0x6e46b420, + 0x39470: 0x6e470820, 0x39471: 0x6e473020, 0x39472: 0x6c26a820, 0x39473: 0x6c407620, + 0x39474: 0x6c608020, 0x39475: 0x6c608220, 0x39476: 0x6c608420, 0x39477: 0x6c864220, + 0x39478: 0x6c864420, 0x39479: 0x6c864620, 0x3947a: 0x6c864820, 0x3947b: 0x6cb02a20, + 0x3947c: 0x6cb02c20, 0x3947d: 0x6cb02e20, 0x3947e: 0x6cb03020, 0x3947f: 0x6cb03220, + // Block 0xe52, offset 0x39480 + 0x39480: 0x6cb03420, 0x39481: 0x6cb03620, 0x39482: 0x6cb03820, 0x39483: 0x6cb03a20, + 0x39484: 0x6cb03c20, 0x39485: 0x6cb03e20, 0x39486: 0x6cb04020, 0x39487: 0x6cb04220, + 0x39488: 0x6cb04420, 0x39489: 0x6cb04620, 0x3948a: 0x6cb04820, 0x3948b: 0x6cb04a20, + 0x3948c: 0x6cb04c20, 0x3948d: 0x6cb04e20, 0x3948e: 0x6cb05020, 0x3948f: 0x6cb05220, + 0x39490: 0x6cb05420, 0x39491: 0x6cdf4020, 0x39492: 0x6cdf4220, 0x39493: 0x6cdf4420, + 0x39494: 0x6cdf4620, 0x39495: 0x6cdf4820, 0x39496: 0x6cdf4a20, 0x39497: 0x6cdf4c20, + 0x39498: 0x6cdf4e20, 0x39499: 0x6cdf5020, 0x3949a: 0x6cdf5220, 0x3949b: 0x6cdf5420, + 0x3949c: 0x6cdf5620, 0x3949d: 0x6cdf5820, 0x3949e: 0x6cdf5a20, 0x3949f: 0x6cdf5c20, + 0x394a0: 0x6cdf5e20, 0x394a1: 0x6d0dca20, 0x394a2: 0x6d0dcc20, 0x394a3: 0x6d0dce20, + 0x394a4: 0x6d0dd020, 0x394a5: 0x6d0dd220, 0x394a6: 0x6d0dd420, 0x394a7: 0x6d0dd620, + 0x394a8: 0x6d3c2a20, 0x394a9: 0x6d3c2c20, 0x394aa: 0x6d3c2e20, 0x394ab: 0x6d3c3020, + 0x394ac: 0x6d3c3220, 0x394ad: 0x6d3c3420, 0x394ae: 0x6d3c3620, 0x394af: 0x6d3c3820, + 0x394b0: 0x6d3c3a20, 0x394b1: 0x6d3c3c20, 0x394b2: 0x6d3c3e20, 0x394b3: 0x6d3c4020, + 0x394b4: 0x6d684c20, 0x394b5: 0x6d684e20, 0x394b6: 0x6d685020, 0x394b7: 0x6d685220, + 0x394b8: 0x6d685420, 0x394b9: 0x6d685620, 0x394ba: 0x6d685820, 0x394bb: 0x6d685a20, + 0x394bc: 0x6d685c20, 0x394bd: 0x6d685e20, 0x394be: 0x6d686020, 0x394bf: 0x6d686220, + // Block 0xe53, offset 0x394c0 + 0x394c0: 0x6d686420, 0x394c1: 0x6d686620, 0x394c2: 0x6d686820, 0x394c3: 0x6d686a20, + 0x394c4: 0x6d686c20, 0x394c5: 0x6d686e20, 0x394c6: 0x6d687020, 0x394c7: 0x6d687220, + 0x394c8: 0x6d687420, 0x394c9: 0x6d687620, 0x394ca: 0x6d687820, 0x394cb: 0x6d920c20, + 0x394cc: 0x6d920e20, 0x394cd: 0x6d921020, 0x394ce: 0x6d921220, 0x394cf: 0x6d921420, + 0x394d0: 0x6d921620, 0x394d1: 0x6d921820, 0x394d2: 0x6d921a20, 0x394d3: 0x6d921c20, + 0x394d4: 0x6d921e20, 0x394d5: 0x6d922020, 0x394d6: 0x6d922220, 0x394d7: 0x6d922420, + 0x394d8: 0x6d922620, 0x394d9: 0x6d922820, 0x394da: 0x6d922a20, 0x394db: 0x6db5b020, + 0x394dc: 0x6db5b220, 0x394dd: 0x6db5b420, 0x394de: 0x6db5b620, 0x394df: 0x6db5b820, + 0x394e0: 0x6db5ba20, 0x394e1: 0x6db5bc20, 0x394e2: 0x6d922c20, 0x394e3: 0x6db5be20, + 0x394e4: 0x6db5c020, 0x394e5: 0x6db5c220, 0x394e6: 0x6db5c420, 0x394e7: 0x6db5c620, + 0x394e8: 0x6db5c820, 0x394e9: 0x6db5ca20, 0x394ea: 0x6db5cc20, 0x394eb: 0x6db5ce20, + 0x394ec: 0x6db5d020, 0x394ed: 0x6db5d220, 0x394ee: 0x6db5d420, 0x394ef: 0x6dd43c20, + 0x394f0: 0x6dd43e20, 0x394f1: 0x6dd44020, 0x394f2: 0x6dd44220, 0x394f3: 0x6dd44420, + 0x394f4: 0x6dd44620, 0x394f5: 0x6dd44820, 0x394f6: 0x6dd44a20, 0x394f7: 0x6dd44c20, + 0x394f8: 0x6dd44e20, 0x394f9: 0x6dd45020, 0x394fa: 0x6ded2e20, 0x394fb: 0x6ded3020, + 0x394fc: 0x6ded3220, 0x394fd: 0x6ded3420, 0x394fe: 0x6ded3620, 0x394ff: 0x6ded3820, + // Block 0xe54, offset 0x39500 + 0x39500: 0x6ded3a20, 0x39501: 0x6ded3c20, 0x39502: 0x6ded3e20, 0x39503: 0x6ded4020, + 0x39504: 0x6e023820, 0x39505: 0x6e023a20, 0x39506: 0x6e023c20, 0x39507: 0x6e023e20, + 0x39508: 0x6e140c20, 0x39509: 0x6e140e20, 0x3950a: 0x6e141020, 0x3950b: 0x6e141220, + 0x3950c: 0x6e21b820, 0x3950d: 0x6e21ba20, 0x3950e: 0x6e21bc20, 0x3950f: 0x6e21be20, + 0x39510: 0x6e21c020, 0x39511: 0x6e2c4020, 0x39512: 0x6e2c4220, 0x39513: 0x6e347820, + 0x39514: 0x6e347a20, 0x39515: 0x6e3a3a20, 0x39516: 0x6e3e3220, 0x39517: 0x6e430e20, + 0x39518: 0x6e431020, 0x39519: 0x6e447c20, 0x3951a: 0x6e447e20, 0x3951b: 0x6c26ae20, + 0x3951c: 0x6c26b020, 0x3951d: 0x6c407820, 0x3951e: 0x6c407a20, 0x3951f: 0x6c407c20, + 0x39520: 0x6c609a20, 0x39521: 0x6c867220, 0x39522: 0x6c867420, 0x39523: 0x6c867620, + 0x39524: 0x6c867820, 0x39525: 0x6c867a20, 0x39526: 0x6c867c20, 0x39527: 0x6c867e20, + 0x39528: 0x6c868020, 0x39529: 0x6c868220, 0x3952a: 0x6c868420, 0x3952b: 0x6c868620, + 0x3952c: 0x6c868820, 0x3952d: 0x6c868a20, 0x3952e: 0x6cb0aa20, 0x3952f: 0x6cb0ac20, + 0x39530: 0x6cb0ae20, 0x39531: 0x6cb0b020, 0x39532: 0x6cb0b220, 0x39533: 0x6cb0b420, + 0x39534: 0x6cb0b620, 0x39535: 0x6cb0b820, 0x39536: 0x6cb0ba20, 0x39537: 0x6cb0bc20, + 0x39538: 0x6cb0be20, 0x39539: 0x6cb0c020, 0x3953a: 0x6cb0c220, 0x3953b: 0x6cb0c420, + 0x3953c: 0x6cb0c620, 0x3953d: 0x6cb0c820, 0x3953e: 0x6cb0ca20, 0x3953f: 0x6cb0cc20, + // Block 0xe55, offset 0x39540 + 0x39540: 0x6cb0ce20, 0x39541: 0x6cb0d020, 0x39542: 0x6cb0d220, 0x39543: 0x6cb0d420, + 0x39544: 0x6cb0d620, 0x39545: 0x6cb0d820, 0x39546: 0x6cb0da20, 0x39547: 0x6cb0dc20, + 0x39548: 0x6cb0de20, 0x39549: 0x6cb0e020, 0x3954a: 0x6cb0e220, 0x3954b: 0x6cb0e420, + 0x3954c: 0x6cb0e620, 0x3954d: 0x6cb0e820, 0x3954e: 0x6cb0ea20, 0x3954f: 0x6cb0ec20, + 0x39550: 0x6cb0ee20, 0x39551: 0x6cb0f020, 0x39552: 0x6cb0f220, 0x39553: 0x6cb0f420, + 0x39554: 0x6cb0f620, 0x39555: 0x6cb0f820, 0x39556: 0x6cb0fa20, 0x39557: 0x6cb0fc20, + 0x39558: 0x6cb0fe20, 0x39559: 0x6cb10020, 0x3955a: 0x6cb10220, 0x3955b: 0x6cb10420, + 0x3955c: 0x6cdfd620, 0x3955d: 0x6cdfd820, 0x3955e: 0x6cdfda20, 0x3955f: 0x6cdfdc20, + 0x39560: 0x6cdfde20, 0x39561: 0x6cdfe020, 0x39562: 0x6cdfe220, 0x39563: 0x6cdfe420, + 0x39564: 0x6cdfe620, 0x39565: 0x6cdfe820, 0x39566: 0x6cdfea20, 0x39567: 0x6cdfec20, + 0x39568: 0x6cdfee20, 0x39569: 0x6cdff020, 0x3956a: 0x6cdff220, 0x3956b: 0x6cdff420, + 0x3956c: 0x6cdff620, 0x3956d: 0x6cdff820, 0x3956e: 0x6cdffa20, 0x3956f: 0x6cdffc20, + 0x39570: 0x6cdffe20, 0x39571: 0x6ce00020, 0x39572: 0x6ce00220, 0x39573: 0x6ce00420, + 0x39574: 0x6ce00620, 0x39575: 0x6ce00820, 0x39576: 0x6ce00a20, 0x39577: 0x6ce00c20, + 0x39578: 0x6ce00e20, 0x39579: 0x6ce01020, 0x3957a: 0x6ce01220, 0x3957b: 0x6ce01420, + 0x3957c: 0x6ce01620, 0x3957d: 0x6ce01820, 0x3957e: 0x6ce01a20, 0x3957f: 0x6ce01c20, + // Block 0xe56, offset 0x39580 + 0x39580: 0x6ce01e20, 0x39581: 0x6ce02020, 0x39582: 0x6ce02220, 0x39583: 0x6d0e4a20, + 0x39584: 0x6d0e4c20, 0x39585: 0x6d0e4e20, 0x39586: 0x6d0e5020, 0x39587: 0x6d0e5220, + 0x39588: 0x6d0e5420, 0x39589: 0x6d0e5620, 0x3958a: 0x6d0e5820, 0x3958b: 0x6d0e5a20, + 0x3958c: 0x6d0e5c20, 0x3958d: 0x6d0e5e20, 0x3958e: 0x6d0e6020, 0x3958f: 0x6d0e6220, + 0x39590: 0x6d0e6420, 0x39591: 0x6d0e6620, 0x39592: 0x6d0e6820, 0x39593: 0x6d0e6a20, + 0x39594: 0x6d0e6c20, 0x39595: 0x6d0e6e20, 0x39596: 0x6d0e7020, 0x39597: 0x6d0e7220, + 0x39598: 0x6d0e7420, 0x39599: 0x6d0e7620, 0x3959a: 0x6d0e7820, 0x3959b: 0x6d0e7a20, + 0x3959c: 0x6d0e7c20, 0x3959d: 0x6d0e7e20, 0x3959e: 0x6d0e8020, 0x3959f: 0x6d0e8220, + 0x395a0: 0x6d0e8420, 0x395a1: 0x6d0e8620, 0x395a2: 0x6d0e8820, 0x395a3: 0x6d0e8a20, + 0x395a4: 0x6d0e8c20, 0x395a5: 0x6d0e8e20, 0x395a6: 0x6d0e9020, 0x395a7: 0x6d0e9220, + 0x395a8: 0x6d0e9420, 0x395a9: 0x6d0e9620, 0x395aa: 0x6d0e9820, 0x395ab: 0x6d0e9a20, + 0x395ac: 0x6d0e9c20, 0x395ad: 0x6d0e9e20, 0x395ae: 0x6d0ea020, 0x395af: 0x6d0ea220, + 0x395b0: 0x6d0ea420, 0x395b1: 0x6d0ea620, 0x395b2: 0x6d0ea820, 0x395b3: 0x6d0eaa20, + 0x395b4: 0x6d3c9e20, 0x395b5: 0x6d3ca020, 0x395b6: 0x6d3ca220, 0x395b7: 0x6d3ca420, + 0x395b8: 0x6d3ca620, 0x395b9: 0x6d3ca820, 0x395ba: 0x6d3caa20, 0x395bb: 0x6d3cac20, + 0x395bc: 0x6d3cae20, 0x395bd: 0x6d3cb020, 0x395be: 0x6d3cb220, 0x395bf: 0x6d3cb420, + // Block 0xe57, offset 0x395c0 + 0x395c0: 0x6d3cb620, 0x395c1: 0x6d3cb820, 0x395c2: 0x6d3cba20, 0x395c3: 0x6d3cbc20, + 0x395c4: 0x6d3cbe20, 0x395c5: 0x6d3cc020, 0x395c6: 0x6d3cc220, 0x395c7: 0x6d3cc420, + 0x395c8: 0x6d3cc620, 0x395c9: 0x6d3cc820, 0x395ca: 0x6d3cca20, 0x395cb: 0x6d3ccc20, + 0x395cc: 0x6d3cce20, 0x395cd: 0x6d3cd020, 0x395ce: 0x6d3cd220, 0x395cf: 0x6d3cd420, + 0x395d0: 0x6d3cd620, 0x395d1: 0x6d3cd820, 0x395d2: 0x6d3cda20, 0x395d3: 0x6d3cdc20, + 0x395d4: 0x6d3cde20, 0x395d5: 0x6d3ce020, 0x395d6: 0x6d3ce220, 0x395d7: 0x6d3ce420, + 0x395d8: 0x6d3ce620, 0x395d9: 0x6d3ce820, 0x395da: 0x6d3cea20, 0x395db: 0x6d3cec20, + 0x395dc: 0x6d0eac20, 0x395dd: 0x6d3cee20, 0x395de: 0x6d3cf020, 0x395df: 0x6d3cf220, + 0x395e0: 0x6d3cf420, 0x395e1: 0x6d3cf620, 0x395e2: 0x6d3cf820, 0x395e3: 0x6d3cfa20, + 0x395e4: 0x6d3cfc20, 0x395e5: 0x6d3cfe20, 0x395e6: 0x6d68f820, 0x395e7: 0x6d68fa20, + 0x395e8: 0x6d68fc20, 0x395e9: 0x6d68fe20, 0x395ea: 0x6d690020, 0x395eb: 0x6d690220, + 0x395ec: 0x6d690420, 0x395ed: 0x6d690620, 0x395ee: 0x6d690820, 0x395ef: 0x6d690a20, + 0x395f0: 0x6d690c20, 0x395f1: 0x6d690e20, 0x395f2: 0x6d691020, 0x395f3: 0x6d691220, + 0x395f4: 0x6d691420, 0x395f5: 0x6d691620, 0x395f6: 0x6d691820, 0x395f7: 0x6d691a20, + 0x395f8: 0x6d691c20, 0x395f9: 0x6d691e20, 0x395fa: 0x6d692020, 0x395fb: 0x6d692220, + 0x395fc: 0x6d692420, 0x395fd: 0x6d692620, 0x395fe: 0x6d692820, 0x395ff: 0x6d692a20, + // Block 0xe58, offset 0x39600 + 0x39600: 0x6d692c20, 0x39601: 0x6d692e20, 0x39602: 0x6d693020, 0x39603: 0x6d693220, + 0x39604: 0x6d693420, 0x39605: 0x6d693620, 0x39606: 0x6d693820, 0x39607: 0x6d693a20, + 0x39608: 0x6d693c20, 0x39609: 0x6d693e20, 0x3960a: 0x6d694020, 0x3960b: 0x6d694220, + 0x3960c: 0x6d694420, 0x3960d: 0x6d694620, 0x3960e: 0x6d694820, 0x3960f: 0x6d694a20, + 0x39610: 0x6d694c20, 0x39611: 0x6d694e20, 0x39612: 0x6d695020, 0x39613: 0x6d695220, + 0x39614: 0x6d695420, 0x39615: 0x6d695620, 0x39616: 0x6d695820, 0x39617: 0x6d695a20, + 0x39618: 0x6d695c20, 0x39619: 0x6d695e20, 0x3961a: 0x6d696020, 0x3961b: 0x6d696220, + 0x3961c: 0x6d696420, 0x3961d: 0x6d696620, 0x3961e: 0x6d696820, 0x3961f: 0x6d696a20, + 0x39620: 0x6d696c20, 0x39621: 0x6d696e20, 0x39622: 0x6d697020, 0x39623: 0x6d928820, + 0x39624: 0x6d928a20, 0x39625: 0x6d928c20, 0x39626: 0x6d928e20, 0x39627: 0x6d929020, + 0x39628: 0x6d929220, 0x39629: 0x6d929420, 0x3962a: 0x6d929620, 0x3962b: 0x6d929820, + 0x3962c: 0x6d929a20, 0x3962d: 0x6d929c20, 0x3962e: 0x6d929e20, 0x3962f: 0x6d92a020, + 0x39630: 0x6d92a220, 0x39631: 0x6d92a420, 0x39632: 0x6d92a620, 0x39633: 0x6d92a820, + 0x39634: 0x6d92aa20, 0x39635: 0x6d92ac20, 0x39636: 0x6d92ae20, 0x39637: 0x6d92b020, + 0x39638: 0x6d92b220, 0x39639: 0x6d92b420, 0x3963a: 0x6d92b620, 0x3963b: 0x6d92b820, + 0x3963c: 0x6d92ba20, 0x3963d: 0x6d92bc20, 0x3963e: 0x6d92be20, 0x3963f: 0x6d92c020, + // Block 0xe59, offset 0x39640 + 0x39640: 0x6d92c220, 0x39641: 0x6d92c420, 0x39642: 0x6d92c620, 0x39643: 0x6d92c820, + 0x39644: 0x6d92ca20, 0x39645: 0x6d92cc20, 0x39646: 0x6d92ce20, 0x39647: 0x6d92d020, + 0x39648: 0x6d92d220, 0x39649: 0x6d92d420, 0x3964a: 0x6d92d620, 0x3964b: 0x6d92d820, + 0x3964c: 0x6d92da20, 0x3964d: 0x6d92dc20, 0x3964e: 0x6d92de20, 0x3964f: 0x6d92e020, + 0x39650: 0x6d92e220, 0x39651: 0x6d92e420, 0x39652: 0x6d92e620, 0x39653: 0x6d92e820, + 0x39654: 0x6d92ea20, 0x39655: 0x6d92ec20, 0x39656: 0x6d92ee20, 0x39657: 0x6d92f020, + 0x39658: 0x6db61e20, 0x39659: 0x6db62020, 0x3965a: 0x6db62220, 0x3965b: 0x6db62420, + 0x3965c: 0x6db62620, 0x3965d: 0x6db62820, 0x3965e: 0x6db62a20, 0x3965f: 0x6db62c20, + 0x39660: 0x6db62e20, 0x39661: 0x6db63020, 0x39662: 0x6db63220, 0x39663: 0x6db63420, + 0x39664: 0x6db63620, 0x39665: 0x6db63820, 0x39666: 0x6db63a20, 0x39667: 0x6db63c20, + 0x39668: 0x6db63e20, 0x39669: 0x6db64020, 0x3966a: 0x6db64220, 0x3966b: 0x6db64420, + 0x3966c: 0x6db64620, 0x3966d: 0x6db64820, 0x3966e: 0x6db64a20, 0x3966f: 0x6db64c20, + 0x39670: 0x6db64e20, 0x39671: 0x6db65020, 0x39672: 0x6db65220, 0x39673: 0x6db65420, + 0x39674: 0x6db65620, 0x39675: 0x6db65820, 0x39676: 0x6db65a20, 0x39677: 0x6db65c20, + 0x39678: 0x6db65e20, 0x39679: 0x6db66020, 0x3967a: 0x6db66220, 0x3967b: 0x6db66420, + 0x3967c: 0x6db66620, 0x3967d: 0x6db66820, 0x3967e: 0x6db66a20, 0x3967f: 0x6db66c20, + // Block 0xe5a, offset 0x39680 + 0x39680: 0x6db66e20, 0x39681: 0x6db67020, 0x39682: 0x6db67220, 0x39683: 0x6db67420, + 0x39684: 0x6db67620, 0x39685: 0x6db67820, 0x39686: 0x6db67a20, 0x39687: 0x6db67c20, + 0x39688: 0x6db67e20, 0x39689: 0x6db68020, 0x3968a: 0x6db68220, 0x3968b: 0x6db68420, + 0x3968c: 0x6db68620, 0x3968d: 0x6db68820, 0x3968e: 0x6db68a20, 0x3968f: 0x6db68c20, + 0x39690: 0x6db68e20, 0x39691: 0x6db69020, 0x39692: 0x6dd49a20, 0x39693: 0x6dd49c20, + 0x39694: 0x6dd49e20, 0x39695: 0x6dd4a020, 0x39696: 0x6dd4a220, 0x39697: 0x6dd4a420, + 0x39698: 0x6dd4a620, 0x39699: 0x6dd4a820, 0x3969a: 0x6dd4aa20, 0x3969b: 0x6dd4ac20, + 0x3969c: 0x6dd4ae20, 0x3969d: 0x6dd4b020, 0x3969e: 0x6dd4b220, 0x3969f: 0x6dd4b420, + 0x396a0: 0x6dd4b620, 0x396a1: 0x6dd4b820, 0x396a2: 0x6dd4ba20, 0x396a3: 0x6dd4bc20, + 0x396a4: 0x6dd4be20, 0x396a5: 0x6dd4c020, 0x396a6: 0x6dd4c220, 0x396a7: 0x6dd4c420, + 0x396a8: 0x6dd4c620, 0x396a9: 0x6dd4c820, 0x396aa: 0x6dd4ca20, 0x396ab: 0x6dd4cc20, + 0x396ac: 0x6dd4ce20, 0x396ad: 0x6dd4d020, 0x396ae: 0x6dd4d220, 0x396af: 0x6dd4d420, + 0x396b0: 0x6dd4d620, 0x396b1: 0x6dd4d820, 0x396b2: 0x6dd4da20, 0x396b3: 0x6dd4dc20, + 0x396b4: 0x6dd4de20, 0x396b5: 0x6dd4e020, 0x396b6: 0x6dd4e220, 0x396b7: 0x6dd4e420, + 0x396b8: 0x6dd4e620, 0x396b9: 0x6dd4e820, 0x396ba: 0x6dd4ea20, 0x396bb: 0x6dd4ec20, + 0x396bc: 0x6dd4ee20, 0x396bd: 0x6dd4f020, 0x396be: 0x6ded8820, 0x396bf: 0x6ded8a20, + // Block 0xe5b, offset 0x396c0 + 0x396c0: 0x6ded8c20, 0x396c1: 0x6ded8e20, 0x396c2: 0x6ded9020, 0x396c3: 0x6ded9220, + 0x396c4: 0x6ded9420, 0x396c5: 0x6ded9620, 0x396c6: 0x6ded9820, 0x396c7: 0x6ded9a20, + 0x396c8: 0x6ded9c20, 0x396c9: 0x6ded9e20, 0x396ca: 0x6deda020, 0x396cb: 0x6deda220, + 0x396cc: 0x6deda420, 0x396cd: 0x6deda620, 0x396ce: 0x6deda820, 0x396cf: 0x6dedaa20, + 0x396d0: 0x6dedac20, 0x396d1: 0x6dedae20, 0x396d2: 0x6dedb020, 0x396d3: 0x6dedb220, + 0x396d4: 0x6dedb420, 0x396d5: 0x6dedb620, 0x396d6: 0x6dedb820, 0x396d7: 0x6dedba20, + 0x396d8: 0x6dedbc20, 0x396d9: 0x6dedbe20, 0x396da: 0x6dedc020, 0x396db: 0x6dedc220, + 0x396dc: 0x6dedc420, 0x396dd: 0x6dedc620, 0x396de: 0x6dedc820, 0x396df: 0x6dedca20, + 0x396e0: 0x6dedcc20, 0x396e1: 0x6dedce20, 0x396e2: 0x6dedd020, 0x396e3: 0x6dedd220, + 0x396e4: 0x6dedd420, 0x396e5: 0x6dedd620, 0x396e6: 0x6dedd820, 0x396e7: 0x6e027c20, + 0x396e8: 0x6e027e20, 0x396e9: 0x6e028020, 0x396ea: 0x6e028220, 0x396eb: 0x6e028420, + 0x396ec: 0x6e028620, 0x396ed: 0x6e028820, 0x396ee: 0x6e028a20, 0x396ef: 0x6e028c20, + 0x396f0: 0x6e028e20, 0x396f1: 0x6e029020, 0x396f2: 0x6e029220, 0x396f3: 0x6e029420, + 0x396f4: 0x6e029620, 0x396f5: 0x6e029820, 0x396f6: 0x6e029a20, 0x396f7: 0x6e029c20, + 0x396f8: 0x6e029e20, 0x396f9: 0x6e02a020, 0x396fa: 0x6e02a220, 0x396fb: 0x6e02a420, + 0x396fc: 0x6e02a620, 0x396fd: 0x6e02a820, 0x396fe: 0x6e02aa20, 0x396ff: 0x6e02ac20, + // Block 0xe5c, offset 0x39700 + 0x39700: 0x6e02ae20, 0x39701: 0x6e02b020, 0x39702: 0x6e143820, 0x39703: 0x6e143a20, + 0x39704: 0x6e143c20, 0x39705: 0x6e143e20, 0x39706: 0x6e144020, 0x39707: 0x6e144220, + 0x39708: 0x6e144420, 0x39709: 0x6e144620, 0x3970a: 0x6e144820, 0x3970b: 0x6e144a20, + 0x3970c: 0x6e144c20, 0x3970d: 0x6e144e20, 0x3970e: 0x6e145020, 0x3970f: 0x6e145220, + 0x39710: 0x6e145420, 0x39711: 0x6e21d820, 0x39712: 0x6e145620, 0x39713: 0x6e145820, + 0x39714: 0x6e145a20, 0x39715: 0x6e145c20, 0x39716: 0x6e145e20, 0x39717: 0x6e146020, + 0x39718: 0x6e146220, 0x39719: 0x6e146420, 0x3971a: 0x6e146620, 0x3971b: 0x6e146820, + 0x3971c: 0x6e21da20, 0x3971d: 0x6e21dc20, 0x3971e: 0x6e21de20, 0x3971f: 0x6e21e020, + 0x39720: 0x6e21e220, 0x39721: 0x6e21e420, 0x39722: 0x6e21e620, 0x39723: 0x6e21e820, + 0x39724: 0x6e21ea20, 0x39725: 0x6e21ec20, 0x39726: 0x6e21ee20, 0x39727: 0x6e21f020, + 0x39728: 0x6e21f220, 0x39729: 0x6e21f420, 0x3972a: 0x6e21f620, 0x3972b: 0x6e21f820, + 0x3972c: 0x6e21fa20, 0x3972d: 0x6e21fc20, 0x3972e: 0x6e21fe20, 0x3972f: 0x6e220020, + 0x39730: 0x6e220220, 0x39731: 0x6e220420, 0x39732: 0x6e220620, 0x39733: 0x6e220820, + 0x39734: 0x6e220a20, 0x39735: 0x6e220c20, 0x39736: 0x6e220e20, 0x39737: 0x6e221020, + 0x39738: 0x6e2c5a20, 0x39739: 0x6e2c5c20, 0x3973a: 0x6e2c5e20, 0x3973b: 0x6e2c6020, + 0x3973c: 0x6e2c6220, 0x3973d: 0x6e2c6420, 0x3973e: 0x6e2c6620, 0x3973f: 0x6e2c6820, + // Block 0xe5d, offset 0x39740 + 0x39740: 0x6e2c6a20, 0x39741: 0x6e2c6c20, 0x39742: 0x6e2c6e20, 0x39743: 0x6e2c7020, + 0x39744: 0x6e2c7220, 0x39745: 0x6e348a20, 0x39746: 0x6e348c20, 0x39747: 0x6e348e20, + 0x39748: 0x6e349020, 0x39749: 0x6e349220, 0x3974a: 0x6e349420, 0x3974b: 0x6e349620, + 0x3974c: 0x6e349820, 0x3974d: 0x6e349a20, 0x3974e: 0x6e349c20, 0x3974f: 0x6e349e20, + 0x39750: 0x6e34a020, 0x39751: 0x6e3a4220, 0x39752: 0x6e3a4420, 0x39753: 0x6e3a4620, + 0x39754: 0x6e3a4820, 0x39755: 0x6e3a4a20, 0x39756: 0x6e3a4c20, 0x39757: 0x6e3a4e20, + 0x39758: 0x6e3a5020, 0x39759: 0x6e3e3820, 0x3975a: 0x6e3e3a20, 0x3975b: 0x6e3e3c20, + 0x3975c: 0x6e3e3e20, 0x3975d: 0x6e3e4020, 0x3975e: 0x6e410a20, 0x3975f: 0x6e410c20, + 0x39760: 0x6e410e20, 0x39761: 0x6e411020, 0x39762: 0x6e431220, 0x39763: 0x6e431420, + 0x39764: 0x6e431620, 0x39765: 0x6e428c20, 0x39766: 0x6e431820, 0x39767: 0x6e431a20, + 0x39768: 0x6e448220, 0x39769: 0x6e472020, 0x3976a: 0x6c26d620, 0x3976b: 0x6c26e820, + 0x3976c: 0x6c86c820, 0x3976d: 0x6c86ca20, 0x3976e: 0x6c86cc20, 0x3976f: 0x6cb14620, + 0x39770: 0x6cb14820, 0x39771: 0x6cb14a20, 0x39772: 0x6cb14c20, 0x39773: 0x6ce04c20, + 0x39774: 0x6ce04e20, 0x39775: 0x6d0ec420, 0x39776: 0x6d0ec620, 0x39777: 0x6d0ec820, + 0x39778: 0x6d3d1a20, 0x39779: 0x6d3d1c20, 0x3977a: 0x6d698820, 0x3977b: 0x6d698a20, + 0x3977c: 0x6d698c20, 0x3977d: 0x6d698e20, 0x3977e: 0x6d699020, 0x3977f: 0x6d699220, + // Block 0xe5e, offset 0x39780 + 0x39780: 0x6d930020, 0x39781: 0x6d930220, 0x39782: 0x6d930420, 0x39783: 0x6d930620, + 0x39784: 0x6d930820, 0x39785: 0x6d930a20, 0x39786: 0x6db6a620, 0x39787: 0x6db6a820, + 0x39788: 0x6db6aa20, 0x39789: 0x6db6ac20, 0x3978a: 0x6dd50220, 0x3978b: 0x6dede620, + 0x3978c: 0x6dede820, 0x3978d: 0x6dedea20, 0x3978e: 0x6dedec20, 0x3978f: 0x6dedee20, + 0x39790: 0x6dedf020, 0x39791: 0x6dedf220, 0x39792: 0x6dedf420, 0x39793: 0x6e02b620, + 0x39794: 0x6e02b820, 0x39795: 0x6e146c20, 0x39796: 0x6e146e20, 0x39797: 0x6e3a5220, + 0x39798: 0x6e411220, 0x39799: 0x6e45da20, 0x3979a: 0x6c60c220, 0x3979b: 0x6c86d220, + 0x3979c: 0x6c86d420, 0x3979d: 0x6c86d620, 0x3979e: 0x6cb15420, 0x3979f: 0x6cb15620, + 0x397a0: 0x6ce05220, 0x397a1: 0x6ce05420, 0x397a2: 0x6ce05620, 0x397a3: 0x6ce05820, + 0x397a4: 0x6ce05a20, 0x397a5: 0x6d0ed020, 0x397a6: 0x6d0ed220, 0x397a7: 0x6cee2c20, + 0x397a8: 0x6d0ed420, 0x397a9: 0x6d3d2420, 0x397aa: 0x6d3d2620, 0x397ab: 0x6d3d2820, + 0x397ac: 0x6d3d2a20, 0x397ad: 0x6d699e20, 0x397ae: 0x6d69a020, 0x397af: 0x6d69a220, + 0x397b0: 0x6d69a420, 0x397b1: 0x6d69a620, 0x397b2: 0x6d69a820, 0x397b3: 0x6d69aa20, + 0x397b4: 0x6d69ac20, 0x397b5: 0x6d69ae20, 0x397b6: 0x6d69b020, 0x397b7: 0x6d931620, + 0x397b8: 0x6d931820, 0x397b9: 0x6d931a20, 0x397ba: 0x6d931c20, 0x397bb: 0x6d931e20, + 0x397bc: 0x6db6b620, 0x397bd: 0x6db6b820, 0x397be: 0x6db6ba20, 0x397bf: 0x6db6bc20, + // Block 0xe5f, offset 0x397c0 + 0x397c0: 0x6db6be20, 0x397c1: 0x6db6c020, 0x397c2: 0x6db6c220, 0x397c3: 0x6dd50820, + 0x397c4: 0x6dd50a20, 0x397c5: 0x6dd50c20, 0x397c6: 0x6dd50e20, 0x397c7: 0x6dd51020, + 0x397c8: 0x6db6c420, 0x397c9: 0x6dedf620, 0x397ca: 0x6dedf820, 0x397cb: 0x6dedfa20, + 0x397cc: 0x6dedfc20, 0x397cd: 0x6dedfe20, 0x397ce: 0x6dee0020, 0x397cf: 0x6dee0220, + 0x397d0: 0x6dee0420, 0x397d1: 0x6e02bc20, 0x397d2: 0x6e02be20, 0x397d3: 0x6e02c020, + 0x397d4: 0x6e02c220, 0x397d5: 0x6e02c420, 0x397d6: 0x6e02c620, 0x397d7: 0x6e147220, + 0x397d8: 0x6e147420, 0x397d9: 0x6e221a20, 0x397da: 0x6e221c20, 0x397db: 0x6e221e20, + 0x397dc: 0x6e222020, 0x397dd: 0x6e2c7a20, 0x397de: 0x6e2c7c20, 0x397df: 0x6e2c7e20, + 0x397e0: 0x6e34a820, 0x397e1: 0x6e3a5820, 0x397e2: 0x6e3a5a20, 0x397e3: 0x6e411620, + 0x397e4: 0x6e411820, 0x397e5: 0x6e448420, 0x397e6: 0x6c40ba20, 0x397e7: 0x6c26ee20, + 0x397e8: 0x6c26f020, 0x397e9: 0x6c60c420, 0x397ea: 0x6c86dc20, 0x397eb: 0x6c86de20, + 0x397ec: 0x6c86e020, 0x397ed: 0x6c86e220, 0x397ee: 0x6cb16820, 0x397ef: 0x6cb16a20, + 0x397f0: 0x6cb16c20, 0x397f1: 0x6cb16e20, 0x397f2: 0x6cb17020, 0x397f3: 0x6cb17220, + 0x397f4: 0x6cb17420, 0x397f5: 0x6ce06620, 0x397f6: 0x6ce06820, 0x397f7: 0x6ce06a20, + 0x397f8: 0x6ce06c20, 0x397f9: 0x6ce06e20, 0x397fa: 0x6ce07020, 0x397fb: 0x6ce07220, + 0x397fc: 0x6ce07420, 0x397fd: 0x6ce07620, 0x397fe: 0x6ce07820, 0x397ff: 0x6d0ee220, + // Block 0xe60, offset 0x39800 + 0x39800: 0x6d0ee420, 0x39801: 0x6d0ee620, 0x39802: 0x6d0ee820, 0x39803: 0x6d0eea20, + 0x39804: 0x6d0eec20, 0x39805: 0x6d0eee20, 0x39806: 0x6d0ef020, 0x39807: 0x6d0ef220, + 0x39808: 0x6d0ef420, 0x39809: 0x6d0ef620, 0x3980a: 0x6d0ef820, 0x3980b: 0x6d0efa20, + 0x3980c: 0x6d0efc20, 0x3980d: 0x6d3d3420, 0x3980e: 0x6d3d3620, 0x3980f: 0x6d3d3820, + 0x39810: 0x6d3d3a20, 0x39811: 0x6d3d3c20, 0x39812: 0x6d3d3e20, 0x39813: 0x6d3d4020, + 0x39814: 0x6d3d4220, 0x39815: 0x6d3d4420, 0x39816: 0x6d3d4620, 0x39817: 0x6d3d4820, + 0x39818: 0x6d69ba20, 0x39819: 0x6d69bc20, 0x3981a: 0x6d69be20, 0x3981b: 0x6d69c020, + 0x3981c: 0x6d69c220, 0x3981d: 0x6d69c420, 0x3981e: 0x6d69c620, 0x3981f: 0x6d69c820, + 0x39820: 0x6d69ca20, 0x39821: 0x6d69cc20, 0x39822: 0x6d69ce20, 0x39823: 0x6d69d020, + 0x39824: 0x6d69d220, 0x39825: 0x6d69d420, 0x39826: 0x6d69d620, 0x39827: 0x6d69d820, + 0x39828: 0x6d932a20, 0x39829: 0x6d932c20, 0x3982a: 0x6d932e20, 0x3982b: 0x6d933020, + 0x3982c: 0x6d933220, 0x3982d: 0x6d933420, 0x3982e: 0x6d933620, 0x3982f: 0x6d933820, + 0x39830: 0x6d933a20, 0x39831: 0x6d933c20, 0x39832: 0x6db6d020, 0x39833: 0x6db6d220, + 0x39834: 0x6db6d420, 0x39835: 0x6db6d620, 0x39836: 0x6db6d820, 0x39837: 0x6db6da20, + 0x39838: 0x6db6dc20, 0x39839: 0x6db6de20, 0x3983a: 0x6db6e020, 0x3983b: 0x6dd51a20, + 0x3983c: 0x6dd51c20, 0x3983d: 0x6dd51e20, 0x3983e: 0x6dd52020, 0x3983f: 0x6dd52220, + // Block 0xe61, offset 0x39840 + 0x39840: 0x6dd52420, 0x39841: 0x6dd52620, 0x39842: 0x6dee0c20, 0x39843: 0x6dee0e20, + 0x39844: 0x6dee1020, 0x39845: 0x6dee1220, 0x39846: 0x6dee1420, 0x39847: 0x6e02c820, + 0x39848: 0x6e02ca20, 0x39849: 0x6e02cc20, 0x3984a: 0x6e02ce20, 0x3984b: 0x6e02d020, + 0x3984c: 0x6e147820, 0x3984d: 0x6e147a20, 0x3984e: 0x6e147c20, 0x3984f: 0x6e147e20, + 0x39850: 0x6e222420, 0x39851: 0x6e222620, 0x39852: 0x6e222820, 0x39853: 0x6e222a20, + 0x39854: 0x6e2c8020, 0x39855: 0x6e2c8220, 0x39856: 0x6e2c8420, 0x39857: 0x6e222c20, + 0x39858: 0x6e34aa20, 0x39859: 0x6e34ac20, 0x3985a: 0x6e3a6020, 0x3985b: 0x6e3a6220, + 0x3985c: 0x6e3a6420, 0x3985d: 0x6e411a20, 0x3985e: 0x6e448620, 0x3985f: 0x6e46ec20, + 0x39860: 0x6c40be20, 0x39861: 0x6c60c620, 0x39862: 0x6c86ea20, 0x39863: 0x6c86ec20, + 0x39864: 0x6cb18420, 0x39865: 0x6cb18620, 0x39866: 0x6cb18820, 0x39867: 0x6cb18a20, + 0x39868: 0x6cb18c20, 0x39869: 0x6cb18e20, 0x3986a: 0x6cb19020, 0x3986b: 0x6cb19220, + 0x3986c: 0x6ce08a20, 0x3986d: 0x6ce08c20, 0x3986e: 0x6ce08e20, 0x3986f: 0x6ce09020, + 0x39870: 0x6ce09220, 0x39871: 0x6ce09420, 0x39872: 0x6ce09620, 0x39873: 0x6ce09820, + 0x39874: 0x6ce09a20, 0x39875: 0x6ce09c20, 0x39876: 0x6ce09e20, 0x39877: 0x6ce0a020, + 0x39878: 0x6ce0a220, 0x39879: 0x6ce0a420, 0x3987a: 0x6ce0a620, 0x3987b: 0x6ce0a820, + 0x3987c: 0x6ce0aa20, 0x3987d: 0x6ce0ac20, 0x3987e: 0x6d0f0c20, 0x3987f: 0x6d0f0e20, + // Block 0xe62, offset 0x39880 + 0x39880: 0x6d0f1020, 0x39881: 0x6d0f1220, 0x39882: 0x6d0f1420, 0x39883: 0x6d0f1620, + 0x39884: 0x6d0f1820, 0x39885: 0x6d0f1a20, 0x39886: 0x6d0f1c20, 0x39887: 0x6d0f1e20, + 0x39888: 0x6d0f2020, 0x39889: 0x6d0f2220, 0x3988a: 0x6d3d5620, 0x3988b: 0x6d3d5820, + 0x3988c: 0x6d3d5a20, 0x3988d: 0x6d3d5c20, 0x3988e: 0x6d3d5e20, 0x3988f: 0x6d3d6020, + 0x39890: 0x6d3d6220, 0x39891: 0x6d3d6420, 0x39892: 0x6d3d6620, 0x39893: 0x6d3d6820, + 0x39894: 0x6d3d6a20, 0x39895: 0x6d3d6c20, 0x39896: 0x6d3d6e20, 0x39897: 0x6d3d7020, + 0x39898: 0x6d3d7220, 0x39899: 0x6d69e420, 0x3989a: 0x6d69e620, 0x3989b: 0x6d69e820, + 0x3989c: 0x6d69ea20, 0x3989d: 0x6d69ec20, 0x3989e: 0x6d69ee20, 0x3989f: 0x6d69f020, + 0x398a0: 0x6d69f220, 0x398a1: 0x6d69f420, 0x398a2: 0x6d69f620, 0x398a3: 0x6d69f820, + 0x398a4: 0x6d69fa20, 0x398a5: 0x6d69fc20, 0x398a6: 0x6d934a20, 0x398a7: 0x6d934c20, + 0x398a8: 0x6d934e20, 0x398a9: 0x6d935020, 0x398aa: 0x6d935220, 0x398ab: 0x6d935420, + 0x398ac: 0x6d935620, 0x398ad: 0x6d935820, 0x398ae: 0x6d935a20, 0x398af: 0x6d935c20, + 0x398b0: 0x6d935e20, 0x398b1: 0x6d69fe20, 0x398b2: 0x6d936020, 0x398b3: 0x6d936220, + 0x398b4: 0x6d936420, 0x398b5: 0x6db6ea20, 0x398b6: 0x6db6ec20, 0x398b7: 0x6db6ee20, + 0x398b8: 0x6db6f020, 0x398b9: 0x6db6f220, 0x398ba: 0x6db6f420, 0x398bb: 0x6db6f620, + 0x398bc: 0x6db6f820, 0x398bd: 0x6db6fa20, 0x398be: 0x6db6fc20, 0x398bf: 0x6db6fe20, + // Block 0xe63, offset 0x398c0 + 0x398c0: 0x6db70020, 0x398c1: 0x6dd53220, 0x398c2: 0x6dd53420, 0x398c3: 0x6dd53620, + 0x398c4: 0x6dd53820, 0x398c5: 0x6dd53a20, 0x398c6: 0x6dee2220, 0x398c7: 0x6dd53c20, + 0x398c8: 0x6dd53e20, 0x398c9: 0x6dd54020, 0x398ca: 0x6dd54220, 0x398cb: 0x6dd54420, + 0x398cc: 0x6dee2420, 0x398cd: 0x6dee2620, 0x398ce: 0x6dee2820, 0x398cf: 0x6dee2a20, + 0x398d0: 0x6e02d220, 0x398d1: 0x6dee2c20, 0x398d2: 0x6dee2e20, 0x398d3: 0x6dee3020, + 0x398d4: 0x6dee3220, 0x398d5: 0x6dee3420, 0x398d6: 0x6e02d420, 0x398d7: 0x6e02d620, + 0x398d8: 0x6e02d820, 0x398d9: 0x6e02da20, 0x398da: 0x6e02dc20, 0x398db: 0x6e02de20, + 0x398dc: 0x6e02e020, 0x398dd: 0x6e148020, 0x398de: 0x6e148220, 0x398df: 0x6e222e20, + 0x398e0: 0x6e2c8620, 0x398e1: 0x6e2c8820, 0x398e2: 0x6e34ae20, 0x398e3: 0x6e411e20, + 0x398e4: 0x6c60ce20, 0x398e5: 0x6c60d020, 0x398e6: 0x6c60d220, 0x398e7: 0x6c60d420, + 0x398e8: 0x6c60d620, 0x398e9: 0x6c60d820, 0x398ea: 0x6c86f820, 0x398eb: 0x6c86fa20, + 0x398ec: 0x6c86fc20, 0x398ed: 0x6c86fe20, 0x398ee: 0x6c870020, 0x398ef: 0x6c870220, + 0x398f0: 0x6c870420, 0x398f1: 0x6c870620, 0x398f2: 0x6c870820, 0x398f3: 0x6cb1ac20, + 0x398f4: 0x6cb1ae20, 0x398f5: 0x6cb1b020, 0x398f6: 0x6cb1b220, 0x398f7: 0x6cb1b420, + 0x398f8: 0x6cb1b620, 0x398f9: 0x6cb1b820, 0x398fa: 0x6cb1ba20, 0x398fb: 0x6cb1bc20, + 0x398fc: 0x6cb1be20, 0x398fd: 0x6cb1c020, 0x398fe: 0x6cb1c220, 0x398ff: 0x6cb1c420, + // Block 0xe64, offset 0x39900 + 0x39900: 0x6cb1c620, 0x39901: 0x6cb1c820, 0x39902: 0x6cb1ca20, 0x39903: 0x6cb1cc20, + 0x39904: 0x6cb1ce20, 0x39905: 0x6cb1d020, 0x39906: 0x6cb1d220, 0x39907: 0x6cb1d420, + 0x39908: 0x6cb1d620, 0x39909: 0x6ce0e020, 0x3990a: 0x6ce0e220, 0x3990b: 0x6ce0e420, + 0x3990c: 0x6ce0e620, 0x3990d: 0x6ce0e820, 0x3990e: 0x6ce0ea20, 0x3990f: 0x6ce0ec20, + 0x39910: 0x6ce0ee20, 0x39911: 0x6ce0f020, 0x39912: 0x6ce0f220, 0x39913: 0x6ce0f420, + 0x39914: 0x6ce0f620, 0x39915: 0x6ce0f820, 0x39916: 0x6ce0fa20, 0x39917: 0x6ce0fc20, + 0x39918: 0x6ce0fe20, 0x39919: 0x6ce10020, 0x3991a: 0x6ce10220, 0x3991b: 0x6ce10420, + 0x3991c: 0x6ce10620, 0x3991d: 0x6ce10820, 0x3991e: 0x6ce10a20, 0x3991f: 0x6ce10c20, + 0x39920: 0x6ce10e20, 0x39921: 0x6ce11020, 0x39922: 0x6ce11220, 0x39923: 0x6d0f4a20, + 0x39924: 0x6d0f4c20, 0x39925: 0x6d0f4e20, 0x39926: 0x6d0f5020, 0x39927: 0x6d0f5220, + 0x39928: 0x6d0f5420, 0x39929: 0x6d0f5620, 0x3992a: 0x6d0f5820, 0x3992b: 0x6d0f5a20, + 0x3992c: 0x6d0f5c20, 0x3992d: 0x6d0f5e20, 0x3992e: 0x6d0f6020, 0x3992f: 0x6d0f6220, + 0x39930: 0x6d0f6420, 0x39931: 0x6d0f6620, 0x39932: 0x6d0f6820, 0x39933: 0x6d0f6a20, + 0x39934: 0x6d0f6c20, 0x39935: 0x6d0f6e20, 0x39936: 0x6d0f7020, 0x39937: 0x6d0f7220, + 0x39938: 0x6d0f7420, 0x39939: 0x6d0f7620, 0x3993a: 0x6d0f7820, 0x3993b: 0x6d0f7a20, + 0x3993c: 0x6d0f7c20, 0x3993d: 0x6d0f7e20, 0x3993e: 0x6d0f8020, 0x3993f: 0x6d0f8220, + // Block 0xe65, offset 0x39940 + 0x39940: 0x6d0f8420, 0x39941: 0x6d0f8620, 0x39942: 0x6d0f8820, 0x39943: 0x6d0f8a20, + 0x39944: 0x6d0f8c20, 0x39945: 0x6d3d9020, 0x39946: 0x6d3d9220, 0x39947: 0x6d3d9420, + 0x39948: 0x6d3d9620, 0x39949: 0x6d3d9820, 0x3994a: 0x6d3d9a20, 0x3994b: 0x6d3d9c20, + 0x3994c: 0x6d3d9e20, 0x3994d: 0x6d3da020, 0x3994e: 0x6d3da220, 0x3994f: 0x6d3da420, + 0x39950: 0x6d3da620, 0x39951: 0x6d3da820, 0x39952: 0x6d3daa20, 0x39953: 0x6d3dac20, + 0x39954: 0x6d3dae20, 0x39955: 0x6d3db020, 0x39956: 0x6d3db220, 0x39957: 0x6d3db420, + 0x39958: 0x6d3db620, 0x39959: 0x6d3db820, 0x3995a: 0x6d3dba20, 0x3995b: 0x6d6a3c20, + 0x3995c: 0x6d6a3e20, 0x3995d: 0x6d6a4020, 0x3995e: 0x6d6a4220, 0x3995f: 0x6d6a4420, + 0x39960: 0x6d6a4620, 0x39961: 0x6d6a4820, 0x39962: 0x6d6a4a20, 0x39963: 0x6d6a4c20, + 0x39964: 0x6d6a4e20, 0x39965: 0x6d6a5020, 0x39966: 0x6d6a5220, 0x39967: 0x6d6a5420, + 0x39968: 0x6d6a5620, 0x39969: 0x6d6a5820, 0x3996a: 0x6d6a5a20, 0x3996b: 0x6d6a5c20, + 0x3996c: 0x6d6a5e20, 0x3996d: 0x6d6a6020, 0x3996e: 0x6d6a6220, 0x3996f: 0x6d6a6420, + 0x39970: 0x6d6a6620, 0x39971: 0x6d938420, 0x39972: 0x6d938620, 0x39973: 0x6d938820, + 0x39974: 0x6d938a20, 0x39975: 0x6d938c20, 0x39976: 0x6d938e20, 0x39977: 0x6d939020, + 0x39978: 0x6d939220, 0x39979: 0x6d939420, 0x3997a: 0x6d939620, 0x3997b: 0x6d939820, + 0x3997c: 0x6d939a20, 0x3997d: 0x6d939c20, 0x3997e: 0x6d939e20, 0x3997f: 0x6d93a020, + // Block 0xe66, offset 0x39980 + 0x39980: 0x6d93a220, 0x39981: 0x6d93a420, 0x39982: 0x6d93a620, 0x39983: 0x6d93a820, + 0x39984: 0x6d93aa20, 0x39985: 0x6db02a20, 0x39986: 0x6d93ac20, 0x39987: 0x6d93ae20, + 0x39988: 0x6d93b020, 0x39989: 0x6d93b220, 0x3998a: 0x6d93b420, 0x3998b: 0x6d93b620, + 0x3998c: 0x6db71820, 0x3998d: 0x6db71a20, 0x3998e: 0x6db71c20, 0x3998f: 0x6db71e20, + 0x39990: 0x6db72020, 0x39991: 0x6db72220, 0x39992: 0x6db72420, 0x39993: 0x6db72620, + 0x39994: 0x6db72820, 0x39995: 0x6db72a20, 0x39996: 0x6db72c20, 0x39997: 0x6db72e20, + 0x39998: 0x6db73020, 0x39999: 0x6db73220, 0x3999a: 0x6db73420, 0x3999b: 0x6db73620, + 0x3999c: 0x6db73820, 0x3999d: 0x6db73a20, 0x3999e: 0x6dd55620, 0x3999f: 0x6dd55820, + 0x399a0: 0x6dd55a20, 0x399a1: 0x6dd55c20, 0x399a2: 0x6dd55e20, 0x399a3: 0x6dd56020, + 0x399a4: 0x6dd56220, 0x399a5: 0x6dd56420, 0x399a6: 0x6dd56620, 0x399a7: 0x6dd56820, + 0x399a8: 0x6dd56a20, 0x399a9: 0x6dd56c20, 0x399aa: 0x6dd56e20, 0x399ab: 0x6dd57020, + 0x399ac: 0x6dd57220, 0x399ad: 0x6dd57420, 0x399ae: 0x6dd57620, 0x399af: 0x6dd57820, + 0x399b0: 0x6dd57a20, 0x399b1: 0x6dd57c20, 0x399b2: 0x6dd57e20, 0x399b3: 0x6dd58020, + 0x399b4: 0x6dd58220, 0x399b5: 0x6dd58420, 0x399b6: 0x6dd58620, 0x399b7: 0x6dd58820, + 0x399b8: 0x6dd58a20, 0x399b9: 0x6dd58c20, 0x399ba: 0x6dd58e20, 0x399bb: 0x6dd59020, + 0x399bc: 0x6dee4620, 0x399bd: 0x6dee4820, 0x399be: 0x6dee4a20, 0x399bf: 0x6dee4c20, + // Block 0xe67, offset 0x399c0 + 0x399c0: 0x6dee4e20, 0x399c1: 0x6dee5020, 0x399c2: 0x6dee5220, 0x399c3: 0x6dee5420, + 0x399c4: 0x6dee5620, 0x399c5: 0x6dee5820, 0x399c6: 0x6dee5a20, 0x399c7: 0x6dee5c20, + 0x399c8: 0x6dee5e20, 0x399c9: 0x6dee6020, 0x399ca: 0x6dee6220, 0x399cb: 0x6dee6420, + 0x399cc: 0x6dee6620, 0x399cd: 0x6dee6820, 0x399ce: 0x6dee6a20, 0x399cf: 0x6dee6c20, + 0x399d0: 0x6dee6e20, 0x399d1: 0x6dee7020, 0x399d2: 0x6dee7220, 0x399d3: 0x6dee7420, + 0x399d4: 0x6dee7620, 0x399d5: 0x6dee7820, 0x399d6: 0x6e02ea20, 0x399d7: 0x6e02ec20, + 0x399d8: 0x6e02ee20, 0x399d9: 0x6e02f020, 0x399da: 0x6e02f220, 0x399db: 0x6e02f420, + 0x399dc: 0x6e02f620, 0x399dd: 0x6e02f820, 0x399de: 0x6e02fa20, 0x399df: 0x6e02fc20, + 0x399e0: 0x6e02fe20, 0x399e1: 0x6e030020, 0x399e2: 0x6e030220, 0x399e3: 0x6e030420, + 0x399e4: 0x6e030620, 0x399e5: 0x6e030820, 0x399e6: 0x6e148e20, 0x399e7: 0x6e149020, + 0x399e8: 0x6e149220, 0x399e9: 0x6e149420, 0x399ea: 0x6e149620, 0x399eb: 0x6e149820, + 0x399ec: 0x6e149a20, 0x399ed: 0x6e149c20, 0x399ee: 0x6e149e20, 0x399ef: 0x6e14a020, + 0x399f0: 0x6e14a220, 0x399f1: 0x6e223a20, 0x399f2: 0x6e223c20, 0x399f3: 0x6e223e20, + 0x399f4: 0x6e224020, 0x399f5: 0x6e224220, 0x399f6: 0x6e224420, 0x399f7: 0x6e224620, + 0x399f8: 0x6e224820, 0x399f9: 0x6e224a20, 0x399fa: 0x6e224c20, 0x399fb: 0x6e224e20, + 0x399fc: 0x6e225020, 0x399fd: 0x6e2c9020, 0x399fe: 0x6e2c9220, 0x399ff: 0x6e225220, + // Block 0xe68, offset 0x39a00 + 0x39a00: 0x6e2c9420, 0x39a01: 0x6e2c9620, 0x39a02: 0x6e2c9820, 0x39a03: 0x6e2c9a20, + 0x39a04: 0x6e2c9c20, 0x39a05: 0x6e2c9e20, 0x39a06: 0x6e2ca020, 0x39a07: 0x6e2ca220, + 0x39a08: 0x6e34b220, 0x39a09: 0x6e34b420, 0x39a0a: 0x6e34b620, 0x39a0b: 0x6e34b820, + 0x39a0c: 0x6e3a6a20, 0x39a0d: 0x6e3a6c20, 0x39a0e: 0x6e3e4420, 0x39a0f: 0x6e3e4620, + 0x39a10: 0x6e3e4820, 0x39a11: 0x6c40da20, 0x39a12: 0x6c60f420, 0x39a13: 0x6cb1e420, + 0x39a14: 0x6ce12e20, 0x39a15: 0x6ce13020, 0x39a16: 0x6ce13220, 0x39a17: 0x6d6a7420, + 0x39a18: 0x6c40dc20, 0x39a19: 0x6c60fa20, 0x39a1a: 0x6c60fc20, 0x39a1b: 0x6cb1ee20, + 0x39a1c: 0x6cb1f020, 0x39a1d: 0x6ce13620, 0x39a1e: 0x6ce13820, 0x39a1f: 0x6ce13a20, + 0x39a20: 0x6d0fa020, 0x39a21: 0x6d0fa220, 0x39a22: 0x6d0fa420, 0x39a23: 0x6d3dd020, + 0x39a24: 0x6d3dd220, 0x39a25: 0x6d3dd420, 0x39a26: 0x6d3dd620, 0x39a27: 0x6d6a7620, + 0x39a28: 0x6d6a7820, 0x39a29: 0x6d6a7a20, 0x39a2a: 0x6d6a7c20, 0x39a2b: 0x6d6a7e20, + 0x39a2c: 0x6d93d020, 0x39a2d: 0x6d93d220, 0x39a2e: 0x6d93d420, 0x39a2f: 0x6d93d620, + 0x39a30: 0x6d93d820, 0x39a31: 0x6d93da20, 0x39a32: 0x6db74620, 0x39a33: 0x6db74820, + 0x39a34: 0x6db74a20, 0x39a35: 0x6db74c20, 0x39a36: 0x6dd59620, 0x39a37: 0x6dd59820, + 0x39a38: 0x6dee7c20, 0x39a39: 0x6dee7e20, 0x39a3a: 0x6dee8020, 0x39a3b: 0x6dee8220, + 0x39a3c: 0x6dee8420, 0x39a3d: 0x6e14a820, 0x39a3e: 0x6e14aa20, 0x39a3f: 0x6e14ac20, + // Block 0xe69, offset 0x39a40 + 0x39a40: 0x6e225820, 0x39a41: 0x6e225a20, 0x39a42: 0x6e2ca620, 0x39a43: 0x6e2ca820, + 0x39a44: 0x6e2caa20, 0x39a45: 0x6e2cac20, 0x39a46: 0x6c26fe20, 0x39a47: 0x6c40de20, + 0x39a48: 0x6c610820, 0x39a49: 0x6c610a20, 0x39a4a: 0x6c610c20, 0x39a4b: 0x6c610e20, + 0x39a4c: 0x6c611020, 0x39a4d: 0x6c611220, 0x39a4e: 0x6c611420, 0x39a4f: 0x6c873420, + 0x39a50: 0x6c873620, 0x39a51: 0x6c873820, 0x39a52: 0x6c873a20, 0x39a53: 0x6c873c20, + 0x39a54: 0x6c873e20, 0x39a55: 0x6c874020, 0x39a56: 0x6c874220, 0x39a57: 0x6c874420, + 0x39a58: 0x6c874620, 0x39a59: 0x6c874820, 0x39a5a: 0x6c874a20, 0x39a5b: 0x6c874c20, + 0x39a5c: 0x6c874e20, 0x39a5d: 0x6cb20a20, 0x39a5e: 0x6cb20c20, 0x39a5f: 0x6cb20e20, + 0x39a60: 0x6cb21020, 0x39a61: 0x6cb21220, 0x39a62: 0x6cb21420, 0x39a63: 0x6cb21620, + 0x39a64: 0x6cb21820, 0x39a65: 0x6cb21a20, 0x39a66: 0x6cb21c20, 0x39a67: 0x6cb21e20, + 0x39a68: 0x6cb22020, 0x39a69: 0x6cb22220, 0x39a6a: 0x6cb22420, 0x39a6b: 0x6cb22620, + 0x39a6c: 0x6cb22820, 0x39a6d: 0x6cb22a20, 0x39a6e: 0x6cb22c20, 0x39a6f: 0x6cb22e20, + 0x39a70: 0x6cb23020, 0x39a71: 0x6cb23220, 0x39a72: 0x6cb23420, 0x39a73: 0x6cb23620, + 0x39a74: 0x6cb23820, 0x39a75: 0x6cb23a20, 0x39a76: 0x6ce16620, 0x39a77: 0x6ce16820, + 0x39a78: 0x6ce16a20, 0x39a79: 0x6ce16c20, 0x39a7a: 0x6ce16e20, 0x39a7b: 0x6ce17020, + 0x39a7c: 0x6ce17220, 0x39a7d: 0x6ce17420, 0x39a7e: 0x6ce17620, 0x39a7f: 0x6ce17820, + // Block 0xe6a, offset 0x39a80 + 0x39a80: 0x6ce17a20, 0x39a81: 0x6ce17c20, 0x39a82: 0x6ce17e20, 0x39a83: 0x6ce18020, + 0x39a84: 0x6ce18220, 0x39a85: 0x6ce18420, 0x39a86: 0x6ce18620, 0x39a87: 0x6ce18820, + 0x39a88: 0x6ce18a20, 0x39a89: 0x6ce18c20, 0x39a8a: 0x6ce18e20, 0x39a8b: 0x6ce19020, + 0x39a8c: 0x6ce19220, 0x39a8d: 0x6ce19420, 0x39a8e: 0x6ce19620, 0x39a8f: 0x6ce19820, + 0x39a90: 0x6d0fc620, 0x39a91: 0x6d0fc820, 0x39a92: 0x6d0fca20, 0x39a93: 0x6d0fcc20, + 0x39a94: 0x6d0fce20, 0x39a95: 0x6d0fd020, 0x39a96: 0x6d0fd220, 0x39a97: 0x6d0fd420, + 0x39a98: 0x6d0fd620, 0x39a99: 0x6d0fd820, 0x39a9a: 0x6d0fda20, 0x39a9b: 0x6d0fdc20, + 0x39a9c: 0x6d0fde20, 0x39a9d: 0x6d0fe020, 0x39a9e: 0x6d0fe220, 0x39a9f: 0x6d0fe420, + 0x39aa0: 0x6d0fe620, 0x39aa1: 0x6d0fe820, 0x39aa2: 0x6d0fea20, 0x39aa3: 0x6d0fec20, + 0x39aa4: 0x6d0fee20, 0x39aa5: 0x6d0ff020, 0x39aa6: 0x6d0ff220, 0x39aa7: 0x6d0ff420, + 0x39aa8: 0x6d0ff620, 0x39aa9: 0x6d0ff820, 0x39aaa: 0x6d0ffa20, 0x39aab: 0x6d0ffc20, + 0x39aac: 0x6d0ffe20, 0x39aad: 0x6d100020, 0x39aae: 0x6d100220, 0x39aaf: 0x6d3df420, + 0x39ab0: 0x6d3df620, 0x39ab1: 0x6d3df820, 0x39ab2: 0x6d3dfa20, 0x39ab3: 0x6d3dfc20, + 0x39ab4: 0x6d3dfe20, 0x39ab5: 0x6d3e0020, 0x39ab6: 0x6d3e0220, 0x39ab7: 0x6d3e0420, + 0x39ab8: 0x6d3e0620, 0x39ab9: 0x6d3e0820, 0x39aba: 0x6d3e0a20, 0x39abb: 0x6d3e0c20, + 0x39abc: 0x6d3e0e20, 0x39abd: 0x6d3e1020, 0x39abe: 0x6d3e1220, 0x39abf: 0x6d3e1420, + // Block 0xe6b, offset 0x39ac0 + 0x39ac0: 0x6d3e1620, 0x39ac1: 0x6d3e1820, 0x39ac2: 0x6d3e1a20, 0x39ac3: 0x6d3e1c20, + 0x39ac4: 0x6d3e1e20, 0x39ac5: 0x6d3e2020, 0x39ac6: 0x6d3e2220, 0x39ac7: 0x6d3e2420, + 0x39ac8: 0x6d3e2620, 0x39ac9: 0x6d3e2820, 0x39aca: 0x6d3e2a20, 0x39acb: 0x6d3e2c20, + 0x39acc: 0x6d3e2e20, 0x39acd: 0x6d3e3020, 0x39ace: 0x6d6aa420, 0x39acf: 0x6d6aa620, + 0x39ad0: 0x6d6aa820, 0x39ad1: 0x6d6aaa20, 0x39ad2: 0x6d6aac20, 0x39ad3: 0x6d6aae20, + 0x39ad4: 0x6d6ab020, 0x39ad5: 0x6d6ab220, 0x39ad6: 0x6d6ab420, 0x39ad7: 0x6d6ab620, + 0x39ad8: 0x6d6ab820, 0x39ad9: 0x6d6aba20, 0x39ada: 0x6d6abc20, 0x39adb: 0x6d6abe20, + 0x39adc: 0x6d6ac020, 0x39add: 0x6d3e3220, 0x39ade: 0x6d6ac220, 0x39adf: 0x6d93ea20, + 0x39ae0: 0x6d6ac420, 0x39ae1: 0x6d6ac620, 0x39ae2: 0x6d6ac820, 0x39ae3: 0x6d6aca20, + 0x39ae4: 0x6d6acc20, 0x39ae5: 0x6d6ace20, 0x39ae6: 0x6d6ad020, 0x39ae7: 0x6d6ad220, + 0x39ae8: 0x6d93ec20, 0x39ae9: 0x6d93ee20, 0x39aea: 0x6d93f020, 0x39aeb: 0x6d93f220, + 0x39aec: 0x6d93f420, 0x39aed: 0x6d93f620, 0x39aee: 0x6d93f820, 0x39aef: 0x6d93fa20, + 0x39af0: 0x6d93fc20, 0x39af1: 0x6d93fe20, 0x39af2: 0x6d940020, 0x39af3: 0x6d940220, + 0x39af4: 0x6d940420, 0x39af5: 0x6d940620, 0x39af6: 0x6d940820, 0x39af7: 0x6d940a20, + 0x39af8: 0x6d940c20, 0x39af9: 0x6d940e20, 0x39afa: 0x6d941020, 0x39afb: 0x6d941220, + 0x39afc: 0x6d941420, 0x39afd: 0x6d941620, 0x39afe: 0x6d941820, 0x39aff: 0x6d941a20, + // Block 0xe6c, offset 0x39b00 + 0x39b00: 0x6d941c20, 0x39b01: 0x6d941e20, 0x39b02: 0x6d942020, 0x39b03: 0x6d942220, + 0x39b04: 0x6d942420, 0x39b05: 0x6d942620, 0x39b06: 0x6d942820, 0x39b07: 0x6d942a20, + 0x39b08: 0x6d942c20, 0x39b09: 0x6db75820, 0x39b0a: 0x6db75a20, 0x39b0b: 0x6db75c20, + 0x39b0c: 0x6db75e20, 0x39b0d: 0x6db76020, 0x39b0e: 0x6db76220, 0x39b0f: 0x6db76420, + 0x39b10: 0x6db76620, 0x39b11: 0x6db76820, 0x39b12: 0x6db76a20, 0x39b13: 0x6db76c20, + 0x39b14: 0x6db76e20, 0x39b15: 0x6db77020, 0x39b16: 0x6db77220, 0x39b17: 0x6db77420, + 0x39b18: 0x6db77620, 0x39b19: 0x6db77820, 0x39b1a: 0x6db77a20, 0x39b1b: 0x6db77c20, + 0x39b1c: 0x6db77e20, 0x39b1d: 0x6db78020, 0x39b1e: 0x6dd5a820, 0x39b1f: 0x6dd5aa20, + 0x39b20: 0x6dd5ac20, 0x39b21: 0x6dd5ae20, 0x39b22: 0x6dd5b020, 0x39b23: 0x6dd5b220, + 0x39b24: 0x6dd5b420, 0x39b25: 0x6dd5b620, 0x39b26: 0x6dd5b820, 0x39b27: 0x6dd5ba20, + 0x39b28: 0x6dd5bc20, 0x39b29: 0x6dd5be20, 0x39b2a: 0x6dd5c020, 0x39b2b: 0x6dd5c220, + 0x39b2c: 0x6dd5c420, 0x39b2d: 0x6dd5c620, 0x39b2e: 0x6dd5c820, 0x39b2f: 0x6dd5ca20, + 0x39b30: 0x6dd5cc20, 0x39b31: 0x6dd5ce20, 0x39b32: 0x6dd5d020, 0x39b33: 0x6dd5d220, + 0x39b34: 0x6dd5d420, 0x39b35: 0x6dd5d620, 0x39b36: 0x6dee9020, 0x39b37: 0x6dee9220, + 0x39b38: 0x6dee9420, 0x39b39: 0x6dee9620, 0x39b3a: 0x6dee9820, 0x39b3b: 0x6dee9a20, + 0x39b3c: 0x6dee9c20, 0x39b3d: 0x6dee9e20, 0x39b3e: 0x6deea020, 0x39b3f: 0x6deea220, + // Block 0xe6d, offset 0x39b40 + 0x39b40: 0x6deea420, 0x39b41: 0x6deea620, 0x39b42: 0x6deea820, 0x39b43: 0x6deeaa20, + 0x39b44: 0x6deeac20, 0x39b45: 0x6deeae20, 0x39b46: 0x6deeb020, 0x39b47: 0x6deeb220, + 0x39b48: 0x6deeb420, 0x39b49: 0x6deeb620, 0x39b4a: 0x6deeb820, 0x39b4b: 0x6deeba20, + 0x39b4c: 0x6deebc20, 0x39b4d: 0x6e031420, 0x39b4e: 0x6e031620, 0x39b4f: 0x6e031820, + 0x39b50: 0x6e031a20, 0x39b51: 0x6e031c20, 0x39b52: 0x6e031e20, 0x39b53: 0x6e032020, + 0x39b54: 0x6e032220, 0x39b55: 0x6e032420, 0x39b56: 0x6e032620, 0x39b57: 0x6e032820, + 0x39b58: 0x6e032a20, 0x39b59: 0x6e14b420, 0x39b5a: 0x6e14b620, 0x39b5b: 0x6e14b820, + 0x39b5c: 0x6e14ba20, 0x39b5d: 0x6e14bc20, 0x39b5e: 0x6e14be20, 0x39b5f: 0x6e14c020, + 0x39b60: 0x6e14c220, 0x39b61: 0x6e226220, 0x39b62: 0x6e226420, 0x39b63: 0x6e226620, + 0x39b64: 0x6e226820, 0x39b65: 0x6e226a20, 0x39b66: 0x6e226c20, 0x39b67: 0x6e226e20, + 0x39b68: 0x6e2cb220, 0x39b69: 0x6e2cb420, 0x39b6a: 0x6e2cb620, 0x39b6b: 0x6e2cb820, + 0x39b6c: 0x6e2cba20, 0x39b6d: 0x6e2cbc20, 0x39b6e: 0x6e34bc20, 0x39b6f: 0x6e34be20, + 0x39b70: 0x6e3a7020, 0x39b71: 0x6e3a7220, 0x39b72: 0x6e3a7420, 0x39b73: 0x6e3a7620, + 0x39b74: 0x6e3a7820, 0x39b75: 0x6e412020, 0x39b76: 0x6e432020, 0x39b77: 0x6c270420, + 0x39b78: 0x6c40e020, 0x39b79: 0x6c40e220, 0x39b7a: 0x6c611c20, 0x39b7b: 0x6c611e20, + 0x39b7c: 0x6c612020, 0x39b7d: 0x6c612220, 0x39b7e: 0x6c612420, 0x39b7f: 0x6c612620, + // Block 0xe6e, offset 0x39b80 + 0x39b80: 0x6c612820, 0x39b81: 0x6c875c20, 0x39b82: 0x6c875e20, 0x39b83: 0x6c876020, + 0x39b84: 0x6c876220, 0x39b85: 0x6c876420, 0x39b86: 0x6c876620, 0x39b87: 0x6c876820, + 0x39b88: 0x6c876a20, 0x39b89: 0x6c876c20, 0x39b8a: 0x6c876e20, 0x39b8b: 0x6c877020, + 0x39b8c: 0x6c877220, 0x39b8d: 0x6c877420, 0x39b8e: 0x6c877620, 0x39b8f: 0x6c877820, + 0x39b90: 0x6c877a20, 0x39b91: 0x6c877c20, 0x39b92: 0x6cb26420, 0x39b93: 0x6cb26620, + 0x39b94: 0x6cb26820, 0x39b95: 0x6cb26a20, 0x39b96: 0x6cb26c20, 0x39b97: 0x6cb26e20, + 0x39b98: 0x6cb27020, 0x39b99: 0x6cb27220, 0x39b9a: 0x6cb27420, 0x39b9b: 0x6cb27620, + 0x39b9c: 0x6cb27820, 0x39b9d: 0x6cb27a20, 0x39b9e: 0x6cb27c20, 0x39b9f: 0x6cb27e20, + 0x39ba0: 0x6cb28020, 0x39ba1: 0x6cb28220, 0x39ba2: 0x6cb28420, 0x39ba3: 0x6cb28620, + 0x39ba4: 0x6cb28820, 0x39ba5: 0x6cb28a20, 0x39ba6: 0x6cb28c20, 0x39ba7: 0x6cb28e20, + 0x39ba8: 0x6cb29020, 0x39ba9: 0x6cb29220, 0x39baa: 0x6cb29420, 0x39bab: 0x6cb29620, + 0x39bac: 0x6cb29820, 0x39bad: 0x6cb29a20, 0x39bae: 0x6cb29c20, 0x39baf: 0x6cb29e20, + 0x39bb0: 0x6cb2a020, 0x39bb1: 0x6cb2a220, 0x39bb2: 0x6ce1ee20, 0x39bb3: 0x6ce1f020, + 0x39bb4: 0x6ce1f220, 0x39bb5: 0x6ce1f420, 0x39bb6: 0x6ce1f620, 0x39bb7: 0x6ce1f820, + 0x39bb8: 0x6ce1fa20, 0x39bb9: 0x6ce1fc20, 0x39bba: 0x6ce1fe20, 0x39bbb: 0x6ce20020, + 0x39bbc: 0x6ce20220, 0x39bbd: 0x6ce20420, 0x39bbe: 0x6ce20620, 0x39bbf: 0x6ce20820, + // Block 0xe6f, offset 0x39bc0 + 0x39bc0: 0x6ce20a20, 0x39bc1: 0x6ce20c20, 0x39bc2: 0x6ce20e20, 0x39bc3: 0x6ce21020, + 0x39bc4: 0x6ce21220, 0x39bc5: 0x6ce21420, 0x39bc6: 0x6ce21620, 0x39bc7: 0x6ce21820, + 0x39bc8: 0x6ce21a20, 0x39bc9: 0x6ce21c20, 0x39bca: 0x6ce21e20, 0x39bcb: 0x6ce22020, + 0x39bcc: 0x6ce22220, 0x39bcd: 0x6ce22420, 0x39bce: 0x6ce22620, 0x39bcf: 0x6ce22820, + 0x39bd0: 0x6ce22a20, 0x39bd1: 0x6ce22c20, 0x39bd2: 0x6ce22e20, 0x39bd3: 0x6ce23020, + 0x39bd4: 0x6ce23220, 0x39bd5: 0x6d105020, 0x39bd6: 0x6d105220, 0x39bd7: 0x6d105420, + 0x39bd8: 0x6d105620, 0x39bd9: 0x6d105820, 0x39bda: 0x6d105a20, 0x39bdb: 0x6d105c20, + 0x39bdc: 0x6d105e20, 0x39bdd: 0x6d106020, 0x39bde: 0x6d106220, 0x39bdf: 0x6d106420, + 0x39be0: 0x6d106620, 0x39be1: 0x6d106820, 0x39be2: 0x6d106a20, 0x39be3: 0x6d106c20, + 0x39be4: 0x6d106e20, 0x39be5: 0x6d107020, 0x39be6: 0x6d107220, 0x39be7: 0x6d107420, + 0x39be8: 0x6d107620, 0x39be9: 0x6d107820, 0x39bea: 0x6d107a20, 0x39beb: 0x6d107c20, + 0x39bec: 0x6d107e20, 0x39bed: 0x6d108020, 0x39bee: 0x6d108220, 0x39bef: 0x6d108420, + 0x39bf0: 0x6d108620, 0x39bf1: 0x6d108820, 0x39bf2: 0x6d108a20, 0x39bf3: 0x6d108c20, + 0x39bf4: 0x6d108e20, 0x39bf5: 0x6d109020, 0x39bf6: 0x6d109220, 0x39bf7: 0x6d109420, + 0x39bf8: 0x6d109620, 0x39bf9: 0x6d109820, 0x39bfa: 0x6d109a20, 0x39bfb: 0x6d109c20, + 0x39bfc: 0x6d109e20, 0x39bfd: 0x6d10a020, 0x39bfe: 0x6d10a220, 0x39bff: 0x6d10a420, + // Block 0xe70, offset 0x39c00 + 0x39c00: 0x6d3e7220, 0x39c01: 0x6d3e7420, 0x39c02: 0x6d3e7620, 0x39c03: 0x6d3e7820, + 0x39c04: 0x6d3e7a20, 0x39c05: 0x6d3e7c20, 0x39c06: 0x6d3e7e20, 0x39c07: 0x6d3e8020, + 0x39c08: 0x6d3e8220, 0x39c09: 0x6d3e8420, 0x39c0a: 0x6d3e8620, 0x39c0b: 0x6d3e8820, + 0x39c0c: 0x6d3e8a20, 0x39c0d: 0x6d3e8c20, 0x39c0e: 0x6d3e8e20, 0x39c0f: 0x6d3e9020, + 0x39c10: 0x6d3e9220, 0x39c11: 0x6d3e9420, 0x39c12: 0x6d3e9620, 0x39c13: 0x6d3e9820, + 0x39c14: 0x6d3e9a20, 0x39c15: 0x6d3e9c20, 0x39c16: 0x6d3e9e20, 0x39c17: 0x6d3ea020, + 0x39c18: 0x6d3ea220, 0x39c19: 0x6d3ea420, 0x39c1a: 0x6d3ea620, 0x39c1b: 0x6d3ea820, + 0x39c1c: 0x6d3eaa20, 0x39c1d: 0x6d3eac20, 0x39c1e: 0x6d3eae20, 0x39c1f: 0x6d3eb020, + 0x39c20: 0x6d3eb220, 0x39c21: 0x6d3eb420, 0x39c22: 0x6d3eb620, 0x39c23: 0x6d3eb820, + 0x39c24: 0x6d3eba20, 0x39c25: 0x6d3ebc20, 0x39c26: 0x6d3ebe20, 0x39c27: 0x6d3ec020, + 0x39c28: 0x6d3ec220, 0x39c29: 0x6d3ec420, 0x39c2a: 0x6d3ec620, 0x39c2b: 0x6d3ec820, + 0x39c2c: 0x6d3eca20, 0x39c2d: 0x6d3ecc20, 0x39c2e: 0x6d3ece20, 0x39c2f: 0x6d3ed020, + 0x39c30: 0x6d3ed220, 0x39c31: 0x6d3ed420, 0x39c32: 0x6d3ed620, 0x39c33: 0x6d3ed820, + 0x39c34: 0x6d3eda20, 0x39c35: 0x6d6b3c20, 0x39c36: 0x6d6b3e20, 0x39c37: 0x6d6b4020, + 0x39c38: 0x6d6b4220, 0x39c39: 0x6d6b4420, 0x39c3a: 0x6d6b4620, 0x39c3b: 0x6d6b4820, + 0x39c3c: 0x6d6b4a20, 0x39c3d: 0x6d6b4c20, 0x39c3e: 0x6d6b4e20, 0x39c3f: 0x6d6b5020, + // Block 0xe71, offset 0x39c40 + 0x39c40: 0x6d6b5220, 0x39c41: 0x6d6b5420, 0x39c42: 0x6d6b5620, 0x39c43: 0x6d6b5820, + 0x39c44: 0x6d6b5a20, 0x39c45: 0x6d6b5c20, 0x39c46: 0x6d6b5e20, 0x39c47: 0x6d6b6020, + 0x39c48: 0x6d6b6220, 0x39c49: 0x6d6b6420, 0x39c4a: 0x6d6b6620, 0x39c4b: 0x6d6b6820, + 0x39c4c: 0x6d6b6a20, 0x39c4d: 0x6d6b6c20, 0x39c4e: 0x6d6b6e20, 0x39c4f: 0x6d6b7020, + 0x39c50: 0x6d6b7220, 0x39c51: 0x6d6b7420, 0x39c52: 0x6d6b7620, 0x39c53: 0x6d6b7820, + 0x39c54: 0x6d6b7a20, 0x39c55: 0x6d6b7c20, 0x39c56: 0x6d6b7e20, 0x39c57: 0x6d6b8020, + 0x39c58: 0x6d6b8220, 0x39c59: 0x6d6b8420, 0x39c5a: 0x6d6b8620, 0x39c5b: 0x6d6b8820, + 0x39c5c: 0x6d6b8a20, 0x39c5d: 0x6d946e20, 0x39c5e: 0x6d947020, 0x39c5f: 0x6d6b8c20, + 0x39c60: 0x6d947220, 0x39c61: 0x6d947420, 0x39c62: 0x6d947620, 0x39c63: 0x6d947820, + 0x39c64: 0x6d947a20, 0x39c65: 0x6d947c20, 0x39c66: 0x6d947e20, 0x39c67: 0x6d948020, + 0x39c68: 0x6d948220, 0x39c69: 0x6d948420, 0x39c6a: 0x6d948620, 0x39c6b: 0x6d948820, + 0x39c6c: 0x6d948a20, 0x39c6d: 0x6d948c20, 0x39c6e: 0x6d948e20, 0x39c6f: 0x6d949020, + 0x39c70: 0x6d949220, 0x39c71: 0x6d949420, 0x39c72: 0x6d949620, 0x39c73: 0x6d949820, + 0x39c74: 0x6d949a20, 0x39c75: 0x6d949c20, 0x39c76: 0x6d949e20, 0x39c77: 0x6d94a020, + 0x39c78: 0x6d94a220, 0x39c79: 0x6d94a420, 0x39c7a: 0x6d94a620, 0x39c7b: 0x6d94a820, + 0x39c7c: 0x6d94aa20, 0x39c7d: 0x6d94ac20, 0x39c7e: 0x6d94ae20, 0x39c7f: 0x6d94b020, + // Block 0xe72, offset 0x39c80 + 0x39c80: 0x6d94b220, 0x39c81: 0x6d94b420, 0x39c82: 0x6d94b620, 0x39c83: 0x6d94b820, + 0x39c84: 0x6d94ba20, 0x39c85: 0x6d94bc20, 0x39c86: 0x6d94be20, 0x39c87: 0x6d94c020, + 0x39c88: 0x6d94c220, 0x39c89: 0x6d94c420, 0x39c8a: 0x6d94c620, 0x39c8b: 0x6d94c820, + 0x39c8c: 0x6d94ca20, 0x39c8d: 0x6d94cc20, 0x39c8e: 0x6d94ce20, 0x39c8f: 0x6d94d020, + 0x39c90: 0x6d94d220, 0x39c91: 0x6d94d420, 0x39c92: 0x6d94d620, 0x39c93: 0x6db7ae20, + 0x39c94: 0x6db7b020, 0x39c95: 0x6db7b220, 0x39c96: 0x6db7b420, 0x39c97: 0x6db7b620, + 0x39c98: 0x6db7b820, 0x39c99: 0x6db7ba20, 0x39c9a: 0x6db7bc20, 0x39c9b: 0x6db7be20, + 0x39c9c: 0x6db7c020, 0x39c9d: 0x6db7c220, 0x39c9e: 0x6db7c420, 0x39c9f: 0x6db7c620, + 0x39ca0: 0x6db7c820, 0x39ca1: 0x6db7ca20, 0x39ca2: 0x6db7cc20, 0x39ca3: 0x6db7ce20, + 0x39ca4: 0x6db7d020, 0x39ca5: 0x6db7d220, 0x39ca6: 0x6db7d420, 0x39ca7: 0x6db7d620, + 0x39ca8: 0x6db7d820, 0x39ca9: 0x6db7da20, 0x39caa: 0x6db7dc20, 0x39cab: 0x6db7de20, + 0x39cac: 0x6db7e020, 0x39cad: 0x6db7e220, 0x39cae: 0x6db7e420, 0x39caf: 0x6db7e620, + 0x39cb0: 0x6db7e820, 0x39cb1: 0x6db7ea20, 0x39cb2: 0x6db7ec20, 0x39cb3: 0x6db7ee20, + 0x39cb4: 0x6db7f020, 0x39cb5: 0x6db7f220, 0x39cb6: 0x6db7f420, 0x39cb7: 0x6db7f620, + 0x39cb8: 0x6db7f820, 0x39cb9: 0x6db7fa20, 0x39cba: 0x6db7fc20, 0x39cbb: 0x6db7fe20, + 0x39cbc: 0x6db80020, 0x39cbd: 0x6db80220, 0x39cbe: 0x6db80420, 0x39cbf: 0x6db80620, + // Block 0xe73, offset 0x39cc0 + 0x39cc0: 0x6db80820, 0x39cc1: 0x6db80a20, 0x39cc2: 0x6db80c20, 0x39cc3: 0x6dd61420, + 0x39cc4: 0x6db80e20, 0x39cc5: 0x6dd61620, 0x39cc6: 0x6dd61820, 0x39cc7: 0x6dd61a20, + 0x39cc8: 0x6dd61c20, 0x39cc9: 0x6dd61e20, 0x39cca: 0x6dd62020, 0x39ccb: 0x6dd62220, + 0x39ccc: 0x6dd62420, 0x39ccd: 0x6dd62620, 0x39cce: 0x6dd62820, 0x39ccf: 0x6dd62a20, + 0x39cd0: 0x6dd62c20, 0x39cd1: 0x6dd62e20, 0x39cd2: 0x6dd63020, 0x39cd3: 0x6dd63220, + 0x39cd4: 0x6dd63420, 0x39cd5: 0x6dd63620, 0x39cd6: 0x6dd63820, 0x39cd7: 0x6dd63a20, + 0x39cd8: 0x6dd63c20, 0x39cd9: 0x6dd63e20, 0x39cda: 0x6dd64020, 0x39cdb: 0x6dd64220, + 0x39cdc: 0x6dd64420, 0x39cdd: 0x6dd64620, 0x39cde: 0x6dd64820, 0x39cdf: 0x6dd64a20, + 0x39ce0: 0x6dd64c20, 0x39ce1: 0x6dd64e20, 0x39ce2: 0x6dd65020, 0x39ce3: 0x6dd65220, + 0x39ce4: 0x6dd65420, 0x39ce5: 0x6dd65620, 0x39ce6: 0x6dd65820, 0x39ce7: 0x6dd65a20, + 0x39ce8: 0x6dd65c20, 0x39ce9: 0x6dd65e20, 0x39cea: 0x6dd66020, 0x39ceb: 0x6dd66220, + 0x39cec: 0x6dd66420, 0x39ced: 0x6dd66620, 0x39cee: 0x6dd66820, 0x39cef: 0x6dd66a20, + 0x39cf0: 0x6dd66c20, 0x39cf1: 0x6dd66e20, 0x39cf2: 0x6dd67020, 0x39cf3: 0x6dd67220, + 0x39cf4: 0x6dd67420, 0x39cf5: 0x6dd67620, 0x39cf6: 0x6dd67820, 0x39cf7: 0x6dd67a20, + 0x39cf8: 0x6dd67c20, 0x39cf9: 0x6dd67e20, 0x39cfa: 0x6dd68020, 0x39cfb: 0x6dd68220, + 0x39cfc: 0x6dd68420, 0x39cfd: 0x6dd68620, 0x39cfe: 0x6dd68820, 0x39cff: 0x6dd68a20, + // Block 0xe74, offset 0x39d00 + 0x39d00: 0x6dd68c20, 0x39d01: 0x6dd68e20, 0x39d02: 0x6dd69020, 0x39d03: 0x6dd69220, + 0x39d04: 0x6dd69420, 0x39d05: 0x6dd69620, 0x39d06: 0x6dd69820, 0x39d07: 0x6dd69a20, + 0x39d08: 0x6dd69c20, 0x39d09: 0x6dd69e20, 0x39d0a: 0x6deef420, 0x39d0b: 0x6deef620, + 0x39d0c: 0x6deef820, 0x39d0d: 0x6deefa20, 0x39d0e: 0x6deefc20, 0x39d0f: 0x6deefe20, + 0x39d10: 0x6def0020, 0x39d11: 0x6def0220, 0x39d12: 0x6def0420, 0x39d13: 0x6def0620, + 0x39d14: 0x6def0820, 0x39d15: 0x6def0a20, 0x39d16: 0x6def0c20, 0x39d17: 0x6def0e20, + 0x39d18: 0x6def1020, 0x39d19: 0x6def1220, 0x39d1a: 0x6dd6a020, 0x39d1b: 0x6def1420, + 0x39d1c: 0x6def1620, 0x39d1d: 0x6def1820, 0x39d1e: 0x6def1a20, 0x39d1f: 0x6def1c20, + 0x39d20: 0x6def1e20, 0x39d21: 0x6def2020, 0x39d22: 0x6def2220, 0x39d23: 0x6def2420, + 0x39d24: 0x6def2620, 0x39d25: 0x6def2820, 0x39d26: 0x6def2a20, 0x39d27: 0x6def2c20, + 0x39d28: 0x6def2e20, 0x39d29: 0x6def3020, 0x39d2a: 0x6def3220, 0x39d2b: 0x6def3420, + 0x39d2c: 0x6def3620, 0x39d2d: 0x6def3820, 0x39d2e: 0x6def3a20, 0x39d2f: 0x6def3c20, + 0x39d30: 0x6def3e20, 0x39d31: 0x6def4020, 0x39d32: 0x6def4220, 0x39d33: 0x6def4420, + 0x39d34: 0x6def4620, 0x39d35: 0x6def4820, 0x39d36: 0x6def4a20, 0x39d37: 0x6def4c20, + 0x39d38: 0x6def4e20, 0x39d39: 0x6def5020, 0x39d3a: 0x6def5220, 0x39d3b: 0x6def5420, + 0x39d3c: 0x6def5620, 0x39d3d: 0x6def5820, 0x39d3e: 0x6def5a20, 0x39d3f: 0x6def5c20, + // Block 0xe75, offset 0x39d40 + 0x39d40: 0x6def5e20, 0x39d41: 0x6e034020, 0x39d42: 0x6e034220, 0x39d43: 0x6e034420, + 0x39d44: 0x6e034620, 0x39d45: 0x6e034820, 0x39d46: 0x6e034a20, 0x39d47: 0x6e034c20, + 0x39d48: 0x6e034e20, 0x39d49: 0x6e035020, 0x39d4a: 0x6e035220, 0x39d4b: 0x6e035420, + 0x39d4c: 0x6e035620, 0x39d4d: 0x6e035820, 0x39d4e: 0x6e035a20, 0x39d4f: 0x6e035c20, + 0x39d50: 0x6e035e20, 0x39d51: 0x6e036020, 0x39d52: 0x6e036220, 0x39d53: 0x6e036420, + 0x39d54: 0x6e036620, 0x39d55: 0x6e036820, 0x39d56: 0x6e036a20, 0x39d57: 0x6e036c20, + 0x39d58: 0x6e036e20, 0x39d59: 0x6e037020, 0x39d5a: 0x6e037220, 0x39d5b: 0x6e037420, + 0x39d5c: 0x6e037620, 0x39d5d: 0x6e037820, 0x39d5e: 0x6e037a20, 0x39d5f: 0x6e037c20, + 0x39d60: 0x6e037e20, 0x39d61: 0x6e038020, 0x39d62: 0x6e038220, 0x39d63: 0x6e038420, + 0x39d64: 0x6e038620, 0x39d65: 0x6e038820, 0x39d66: 0x6e038a20, 0x39d67: 0x6e038c20, + 0x39d68: 0x6e038e20, 0x39d69: 0x6e039020, 0x39d6a: 0x6e14d420, 0x39d6b: 0x6e14d620, + 0x39d6c: 0x6e14d820, 0x39d6d: 0x6e14da20, 0x39d6e: 0x6e14dc20, 0x39d6f: 0x6e14de20, + 0x39d70: 0x6e14e020, 0x39d71: 0x6e14e220, 0x39d72: 0x6e14e420, 0x39d73: 0x6e14e620, + 0x39d74: 0x6e14e820, 0x39d75: 0x6e14ea20, 0x39d76: 0x6e14ec20, 0x39d77: 0x6e14ee20, + 0x39d78: 0x6e14f020, 0x39d79: 0x6e14f220, 0x39d7a: 0x6e14f420, 0x39d7b: 0x6e14f620, + 0x39d7c: 0x6e14f820, 0x39d7d: 0x6e14fa20, 0x39d7e: 0x6e14fc20, 0x39d7f: 0x6e14fe20, + // Block 0xe76, offset 0x39d80 + 0x39d80: 0x6e150020, 0x39d81: 0x6e228020, 0x39d82: 0x6e228220, 0x39d83: 0x6e228420, + 0x39d84: 0x6e228620, 0x39d85: 0x6e228820, 0x39d86: 0x6e228a20, 0x39d87: 0x6e228c20, + 0x39d88: 0x6e228e20, 0x39d89: 0x6e229020, 0x39d8a: 0x6e229220, 0x39d8b: 0x6e229420, + 0x39d8c: 0x6e229620, 0x39d8d: 0x6e229820, 0x39d8e: 0x6e229a20, 0x39d8f: 0x6e229c20, + 0x39d90: 0x6e229e20, 0x39d91: 0x6e22a020, 0x39d92: 0x6e22a220, 0x39d93: 0x6e22a420, + 0x39d94: 0x6e22a620, 0x39d95: 0x6e22a820, 0x39d96: 0x6e2cca20, 0x39d97: 0x6e2ccc20, + 0x39d98: 0x6e2cce20, 0x39d99: 0x6e2cd020, 0x39d9a: 0x6e2cd220, 0x39d9b: 0x6e2cd420, + 0x39d9c: 0x6e2cd620, 0x39d9d: 0x6e2cd820, 0x39d9e: 0x6e2cda20, 0x39d9f: 0x6e2cdc20, + 0x39da0: 0x6e2cde20, 0x39da1: 0x6e2ce020, 0x39da2: 0x6e2ce220, 0x39da3: 0x6e2ce420, + 0x39da4: 0x6e34ca20, 0x39da5: 0x6e34cc20, 0x39da6: 0x6e34ce20, 0x39da7: 0x6e34d020, + 0x39da8: 0x6e34d220, 0x39da9: 0x6e34d420, 0x39daa: 0x6e34d620, 0x39dab: 0x6e34d820, + 0x39dac: 0x6e34da20, 0x39dad: 0x6e34dc20, 0x39dae: 0x6e3a8620, 0x39daf: 0x6e3a8820, + 0x39db0: 0x6e3a8a20, 0x39db1: 0x6e3a8c20, 0x39db2: 0x6e3a8e20, 0x39db3: 0x6e3a9020, + 0x39db4: 0x6e3a9220, 0x39db5: 0x6e3a9420, 0x39db6: 0x6e3a9620, 0x39db7: 0x6e3a9820, + 0x39db8: 0x6e3a9a20, 0x39db9: 0x6e3a9c20, 0x39dba: 0x6e3a9e20, 0x39dbb: 0x6e3e5020, + 0x39dbc: 0x6e3e5220, 0x39dbd: 0x6e3e5420, 0x39dbe: 0x6e3e5620, 0x39dbf: 0x6e3e5820, + // Block 0xe77, offset 0x39dc0 + 0x39dc0: 0x6e3e5a20, 0x39dc1: 0x6e412620, 0x39dc2: 0x6e412820, 0x39dc3: 0x6e412a20, + 0x39dc4: 0x6e432620, 0x39dc5: 0x6e432820, 0x39dc6: 0x6e432a20, 0x39dc7: 0x6e432c20, + 0x39dc8: 0x6e448820, 0x39dc9: 0x6e448a20, 0x39dca: 0x6e448c20, 0x39dcb: 0x6e455e20, + 0x39dcc: 0x6e456020, 0x39dcd: 0x6e45dc20, 0x39dce: 0x6e470a20, 0x39dcf: 0x6c270820, + 0x39dd0: 0x6c270a20, 0x39dd1: 0x6c270c20, 0x39dd2: 0x6c612a20, 0x39dd3: 0x6c878220, + 0x39dd4: 0x6c878420, 0x39dd5: 0x6c878620, 0x39dd6: 0x6c878820, 0x39dd7: 0x6c878a20, + 0x39dd8: 0x6cb2b020, 0x39dd9: 0x6cb2b220, 0x39dda: 0x6cb2b420, 0x39ddb: 0x6cb2b620, + 0x39ddc: 0x6cb2b820, 0x39ddd: 0x6cb2ba20, 0x39dde: 0x6cb2bc20, 0x39ddf: 0x6cb2be20, + 0x39de0: 0x6cb2c020, 0x39de1: 0x6cb2c220, 0x39de2: 0x6cb2c420, 0x39de3: 0x6cb2c620, + 0x39de4: 0x6cb2c820, 0x39de5: 0x6cb2ca20, 0x39de6: 0x6cb2cc20, 0x39de7: 0x6cb2ce20, + 0x39de8: 0x6cb2d020, 0x39de9: 0x6ce24620, 0x39dea: 0x6ce24820, 0x39deb: 0x6ce24a20, + 0x39dec: 0x6ce24c20, 0x39ded: 0x6ce24e20, 0x39dee: 0x6ce25020, 0x39def: 0x6ce25220, + 0x39df0: 0x6ce25420, 0x39df1: 0x6ce25620, 0x39df2: 0x6ce25820, 0x39df3: 0x6ce25a20, + 0x39df4: 0x6ce25c20, 0x39df5: 0x6ce25e20, 0x39df6: 0x6ce26020, 0x39df7: 0x6ce26220, + 0x39df8: 0x6d10bc20, 0x39df9: 0x6d10be20, 0x39dfa: 0x6d10c020, 0x39dfb: 0x6d10c220, + 0x39dfc: 0x6d10c420, 0x39dfd: 0x6d10c620, 0x39dfe: 0x6d10c820, 0x39dff: 0x6d10ca20, + // Block 0xe78, offset 0x39e00 + 0x39e00: 0x6d10cc20, 0x39e01: 0x6d10ce20, 0x39e02: 0x6d10d020, 0x39e03: 0x6d10d220, + 0x39e04: 0x6d10d420, 0x39e05: 0x6d10d620, 0x39e06: 0x6d10d820, 0x39e07: 0x6d10da20, + 0x39e08: 0x6d3ee820, 0x39e09: 0x6d3eea20, 0x39e0a: 0x6d3eec20, 0x39e0b: 0x6d3eee20, + 0x39e0c: 0x6d3ef020, 0x39e0d: 0x6d3ef220, 0x39e0e: 0x6d3ef420, 0x39e0f: 0x6d3ef620, + 0x39e10: 0x6d3ef820, 0x39e11: 0x6d3efa20, 0x39e12: 0x6d3efc20, 0x39e13: 0x6d3efe20, + 0x39e14: 0x6d6bac20, 0x39e15: 0x6d6bae20, 0x39e16: 0x6d6bb020, 0x39e17: 0x6d6bb220, + 0x39e18: 0x6d6bb420, 0x39e19: 0x6d6bb620, 0x39e1a: 0x6d6bb820, 0x39e1b: 0x6d6bba20, + 0x39e1c: 0x6d6bbc20, 0x39e1d: 0x6d6bbe20, 0x39e1e: 0x6d6bc020, 0x39e1f: 0x6d6bc220, + 0x39e20: 0x6d6bc420, 0x39e21: 0x6d6bc620, 0x39e22: 0x6d94e820, 0x39e23: 0x6d94ea20, + 0x39e24: 0x6d94ec20, 0x39e25: 0x6d94ee20, 0x39e26: 0x6db81a20, 0x39e27: 0x6d94f020, + 0x39e28: 0x6d94f220, 0x39e29: 0x6d94f420, 0x39e2a: 0x6d94f620, 0x39e2b: 0x6d94f820, + 0x39e2c: 0x6d94fa20, 0x39e2d: 0x6d94fc20, 0x39e2e: 0x6db81c20, 0x39e2f: 0x6db81e20, + 0x39e30: 0x6db82020, 0x39e31: 0x6db82220, 0x39e32: 0x6db82420, 0x39e33: 0x6db82620, + 0x39e34: 0x6db82820, 0x39e35: 0x6db82a20, 0x39e36: 0x6db82c20, 0x39e37: 0x6db82e20, + 0x39e38: 0x6db83020, 0x39e39: 0x6dd6b220, 0x39e3a: 0x6dd6b420, 0x39e3b: 0x6dd6b620, + 0x39e3c: 0x6dd6b820, 0x39e3d: 0x6dd6ba20, 0x39e3e: 0x6dd6bc20, 0x39e3f: 0x6def7420, + // Block 0xe79, offset 0x39e40 + 0x39e40: 0x6def7620, 0x39e41: 0x6def7820, 0x39e42: 0x6def7a20, 0x39e43: 0x6def7c20, + 0x39e44: 0x6def7e20, 0x39e45: 0x6def8020, 0x39e46: 0x6def8220, 0x39e47: 0x6def8420, + 0x39e48: 0x6def8620, 0x39e49: 0x6def8820, 0x39e4a: 0x6def8a20, 0x39e4b: 0x6def8c20, + 0x39e4c: 0x6def8e20, 0x39e4d: 0x6e039e20, 0x39e4e: 0x6e03a020, 0x39e4f: 0x6e03a220, + 0x39e50: 0x6e03a420, 0x39e51: 0x6e03a620, 0x39e52: 0x6e03a820, 0x39e53: 0x6e150820, + 0x39e54: 0x6e150a20, 0x39e55: 0x6e150c20, 0x39e56: 0x6e150e20, 0x39e57: 0x6e151020, + 0x39e58: 0x6e22ae20, 0x39e59: 0x6e22b020, 0x39e5a: 0x6e22b220, 0x39e5b: 0x6e2cea20, + 0x39e5c: 0x6e2cec20, 0x39e5d: 0x6e3aa020, 0x39e5e: 0x6e3aa220, 0x39e5f: 0x6e3e5c20, + 0x39e60: 0x6c613620, 0x39e61: 0x6c613820, 0x39e62: 0x6c613a20, 0x39e63: 0x6c613c20, + 0x39e64: 0x6c613e20, 0x39e65: 0x6c614020, 0x39e66: 0x6c614220, 0x39e67: 0x6c879e20, + 0x39e68: 0x6c87a020, 0x39e69: 0x6c87a220, 0x39e6a: 0x6c87a420, 0x39e6b: 0x6c87a620, + 0x39e6c: 0x6c87a820, 0x39e6d: 0x6c87aa20, 0x39e6e: 0x6c87ac20, 0x39e6f: 0x6c87ae20, + 0x39e70: 0x6c87b020, 0x39e71: 0x6c87b220, 0x39e72: 0x6c87b420, 0x39e73: 0x6cb30020, + 0x39e74: 0x6cb30220, 0x39e75: 0x6cb30420, 0x39e76: 0x6cb30620, 0x39e77: 0x6cb30820, + 0x39e78: 0x6cb30a20, 0x39e79: 0x6cb30c20, 0x39e7a: 0x6cb30e20, 0x39e7b: 0x6cb31020, + 0x39e7c: 0x6cb31220, 0x39e7d: 0x6cb31420, 0x39e7e: 0x6cb31620, 0x39e7f: 0x6cb31820, + // Block 0xe7a, offset 0x39e80 + 0x39e80: 0x6cb31a20, 0x39e81: 0x6cb31c20, 0x39e82: 0x6cb31e20, 0x39e83: 0x6cb32020, + 0x39e84: 0x6cb32220, 0x39e85: 0x6cb32420, 0x39e86: 0x6cb32620, 0x39e87: 0x6cb32820, + 0x39e88: 0x6cb32a20, 0x39e89: 0x6cb32c20, 0x39e8a: 0x6cb32e20, 0x39e8b: 0x6cb33020, + 0x39e8c: 0x6cb33220, 0x39e8d: 0x6cb33420, 0x39e8e: 0x6ce2a020, 0x39e8f: 0x6ce2a220, + 0x39e90: 0x6ce2a420, 0x39e91: 0x6ce2a620, 0x39e92: 0x6ce2a820, 0x39e93: 0x6ce2aa20, + 0x39e94: 0x6ce2ac20, 0x39e95: 0x6ce2ae20, 0x39e96: 0x6ce2b020, 0x39e97: 0x6ce2b220, + 0x39e98: 0x6ce2b420, 0x39e99: 0x6ce2b620, 0x39e9a: 0x6ce2b820, 0x39e9b: 0x6ce2ba20, + 0x39e9c: 0x6ce2bc20, 0x39e9d: 0x6ce2be20, 0x39e9e: 0x6ce2c020, 0x39e9f: 0x6ce2c220, + 0x39ea0: 0x6ce2c420, 0x39ea1: 0x6ce2c620, 0x39ea2: 0x6ce2c820, 0x39ea3: 0x6ce2ca20, + 0x39ea4: 0x6ce2cc20, 0x39ea5: 0x6ce2ce20, 0x39ea6: 0x6ce2d020, 0x39ea7: 0x6ce2d220, + 0x39ea8: 0x6d110a20, 0x39ea9: 0x6d110c20, 0x39eaa: 0x6d110e20, 0x39eab: 0x6d111020, + 0x39eac: 0x6d111220, 0x39ead: 0x6d111420, 0x39eae: 0x6d111620, 0x39eaf: 0x6d111820, + 0x39eb0: 0x6d111a20, 0x39eb1: 0x6d111c20, 0x39eb2: 0x6d111e20, 0x39eb3: 0x6d112020, + 0x39eb4: 0x6d112220, 0x39eb5: 0x6d112420, 0x39eb6: 0x6d112620, 0x39eb7: 0x6d112820, + 0x39eb8: 0x6d112a20, 0x39eb9: 0x6d112c20, 0x39eba: 0x6d112e20, 0x39ebb: 0x6d113020, + 0x39ebc: 0x6d113220, 0x39ebd: 0x6d113420, 0x39ebe: 0x6d113620, 0x39ebf: 0x6d113820, + // Block 0xe7b, offset 0x39ec0 + 0x39ec0: 0x6d113a20, 0x39ec1: 0x6d113c20, 0x39ec2: 0x6d3f1c20, 0x39ec3: 0x6d3f1e20, + 0x39ec4: 0x6d3f2020, 0x39ec5: 0x6d3f2220, 0x39ec6: 0x6d3f2420, 0x39ec7: 0x6d3f2620, + 0x39ec8: 0x6d3f2820, 0x39ec9: 0x6d3f2a20, 0x39eca: 0x6d3f2c20, 0x39ecb: 0x6d3f2e20, + 0x39ecc: 0x6d3f3020, 0x39ecd: 0x6d3f3220, 0x39ece: 0x6d3f3420, 0x39ecf: 0x6d3f3620, + 0x39ed0: 0x6d3f3820, 0x39ed1: 0x6d3f3a20, 0x39ed2: 0x6d3f3c20, 0x39ed3: 0x6d3f3e20, + 0x39ed4: 0x6d3f4020, 0x39ed5: 0x6d3f4220, 0x39ed6: 0x6d3f4420, 0x39ed7: 0x6d3f4620, + 0x39ed8: 0x6d3f4820, 0x39ed9: 0x6d3f4a20, 0x39eda: 0x6d3f4c20, 0x39edb: 0x6d3f4e20, + 0x39edc: 0x6d3f5020, 0x39edd: 0x6d3f5220, 0x39ede: 0x6d3f5420, 0x39edf: 0x6d3f5620, + 0x39ee0: 0x6d6bfe20, 0x39ee1: 0x6d6c0020, 0x39ee2: 0x6d6c0220, 0x39ee3: 0x6d6c0420, + 0x39ee4: 0x6d6c0620, 0x39ee5: 0x6d6c0820, 0x39ee6: 0x6d6c0a20, 0x39ee7: 0x6d6c0c20, + 0x39ee8: 0x6d6c0e20, 0x39ee9: 0x6d6c1020, 0x39eea: 0x6d6c1220, 0x39eeb: 0x6d6c1420, + 0x39eec: 0x6d6c1620, 0x39eed: 0x6d6c1820, 0x39eee: 0x6d6c1a20, 0x39eef: 0x6d6c1c20, + 0x39ef0: 0x6d6c1e20, 0x39ef1: 0x6d6c2020, 0x39ef2: 0x6d6c2220, 0x39ef3: 0x6d6c2420, + 0x39ef4: 0x6d6c2620, 0x39ef5: 0x6d6c2820, 0x39ef6: 0x6d6c2a20, 0x39ef7: 0x6d6c2c20, + 0x39ef8: 0x6d6c2e20, 0x39ef9: 0x6d6c3020, 0x39efa: 0x6d6c3220, 0x39efb: 0x6d6c3420, + 0x39efc: 0x6d6c3620, 0x39efd: 0x6d6c3820, 0x39efe: 0x6d6c3a20, 0x39eff: 0x6d6c3c20, + // Block 0xe7c, offset 0x39f00 + 0x39f00: 0x6d6c3e20, 0x39f01: 0x6d6c4020, 0x39f02: 0x6d6c4220, 0x39f03: 0x6d6c4420, + 0x39f04: 0x6d6c4620, 0x39f05: 0x6d6c4820, 0x39f06: 0x6d6c4a20, 0x39f07: 0x6d952820, + 0x39f08: 0x6d952a20, 0x39f09: 0x6d952c20, 0x39f0a: 0x6d952e20, 0x39f0b: 0x6d953020, + 0x39f0c: 0x6d953220, 0x39f0d: 0x6d953420, 0x39f0e: 0x6d953620, 0x39f0f: 0x6d953820, + 0x39f10: 0x6d953a20, 0x39f11: 0x6d953c20, 0x39f12: 0x6d953e20, 0x39f13: 0x6d954020, + 0x39f14: 0x6d954220, 0x39f15: 0x6d954420, 0x39f16: 0x6d954620, 0x39f17: 0x6d954820, + 0x39f18: 0x6d954a20, 0x39f19: 0x6d954c20, 0x39f1a: 0x6d954e20, 0x39f1b: 0x6d955020, + 0x39f1c: 0x6d955220, 0x39f1d: 0x6d955420, 0x39f1e: 0x6d955620, 0x39f1f: 0x6d955820, + 0x39f20: 0x6d955a20, 0x39f21: 0x6d955c20, 0x39f22: 0x6d955e20, 0x39f23: 0x6d956020, + 0x39f24: 0x6d956220, 0x39f25: 0x6d956420, 0x39f26: 0x6d956620, 0x39f27: 0x6d956820, + 0x39f28: 0x6d956a20, 0x39f29: 0x6db85420, 0x39f2a: 0x6db85620, 0x39f2b: 0x6db85820, + 0x39f2c: 0x6db85a20, 0x39f2d: 0x6db85c20, 0x39f2e: 0x6db85e20, 0x39f2f: 0x6db86020, + 0x39f30: 0x6db86220, 0x39f31: 0x6db86420, 0x39f32: 0x6db86620, 0x39f33: 0x6db86820, + 0x39f34: 0x6db86a20, 0x39f35: 0x6db86c20, 0x39f36: 0x6db86e20, 0x39f37: 0x6db87020, + 0x39f38: 0x6db87220, 0x39f39: 0x6db87420, 0x39f3a: 0x6db87620, 0x39f3b: 0x6db87820, + 0x39f3c: 0x6db87a20, 0x39f3d: 0x6db87c20, 0x39f3e: 0x6db87e20, 0x39f3f: 0x6db88020, + // Block 0xe7d, offset 0x39f40 + 0x39f40: 0x6db88220, 0x39f41: 0x6db88420, 0x39f42: 0x6db88620, 0x39f43: 0x6db88820, + 0x39f44: 0x6db88a20, 0x39f45: 0x6db88c20, 0x39f46: 0x6db88e20, 0x39f47: 0x6db89020, + 0x39f48: 0x6db89220, 0x39f49: 0x6db89420, 0x39f4a: 0x6dd6de20, 0x39f4b: 0x6dd6e020, + 0x39f4c: 0x6dd6e220, 0x39f4d: 0x6dd6e420, 0x39f4e: 0x6dd6e620, 0x39f4f: 0x6dd6e820, + 0x39f50: 0x6dd6ea20, 0x39f51: 0x6dd6ec20, 0x39f52: 0x6dd6ee20, 0x39f53: 0x6dd6f020, + 0x39f54: 0x6dd6f220, 0x39f55: 0x6dd6f420, 0x39f56: 0x6dd6f620, 0x39f57: 0x6dd6f820, + 0x39f58: 0x6dd6fa20, 0x39f59: 0x6dd6fc20, 0x39f5a: 0x6dd6fe20, 0x39f5b: 0x6dd70020, + 0x39f5c: 0x6dd70220, 0x39f5d: 0x6dd70420, 0x39f5e: 0x6dd70620, 0x39f5f: 0x6dd70820, + 0x39f60: 0x6dd70a20, 0x39f61: 0x6dd70c20, 0x39f62: 0x6dd70e20, 0x39f63: 0x6dd71020, + 0x39f64: 0x6defaa20, 0x39f65: 0x6defac20, 0x39f66: 0x6defae20, 0x39f67: 0x6defb020, + 0x39f68: 0x6defb220, 0x39f69: 0x6defb420, 0x39f6a: 0x6defb620, 0x39f6b: 0x6defb820, + 0x39f6c: 0x6defba20, 0x39f6d: 0x6defbc20, 0x39f6e: 0x6defbe20, 0x39f6f: 0x6defc020, + 0x39f70: 0x6defc220, 0x39f71: 0x6defc420, 0x39f72: 0x6e03ba20, 0x39f73: 0x6e03bc20, + 0x39f74: 0x6e03be20, 0x39f75: 0x6e03c020, 0x39f76: 0x6e03c220, 0x39f77: 0x6e03c420, + 0x39f78: 0x6e03c620, 0x39f79: 0x6e03c820, 0x39f7a: 0x6e03ca20, 0x39f7b: 0x6e03cc20, + 0x39f7c: 0x6e03ce20, 0x39f7d: 0x6e03d020, 0x39f7e: 0x6e03d220, 0x39f7f: 0x6e03d420, + // Block 0xe7e, offset 0x39f80 + 0x39f80: 0x6e03d620, 0x39f81: 0x6e03d820, 0x39f82: 0x6e03da20, 0x39f83: 0x6e03dc20, + 0x39f84: 0x6e03de20, 0x39f85: 0x6e03e020, 0x39f86: 0x6e03e220, 0x39f87: 0x6e03e420, + 0x39f88: 0x6e152220, 0x39f89: 0x6e152420, 0x39f8a: 0x6e152620, 0x39f8b: 0x6e152820, + 0x39f8c: 0x6e152a20, 0x39f8d: 0x6e152c20, 0x39f8e: 0x6e152e20, 0x39f8f: 0x6e153020, + 0x39f90: 0x6e153220, 0x39f91: 0x6e22be20, 0x39f92: 0x6e22c020, 0x39f93: 0x6e22c220, + 0x39f94: 0x6e22c420, 0x39f95: 0x6e22c620, 0x39f96: 0x6e22c820, 0x39f97: 0x6e22ca20, + 0x39f98: 0x6e22cc20, 0x39f99: 0x6e22ce20, 0x39f9a: 0x6e22d020, 0x39f9b: 0x6e22d220, + 0x39f9c: 0x6e22d420, 0x39f9d: 0x6e22d620, 0x39f9e: 0x6e2cf220, 0x39f9f: 0x6e2cf420, + 0x39fa0: 0x6e2cf620, 0x39fa1: 0x6e2cf820, 0x39fa2: 0x6e2cfa20, 0x39fa3: 0x6e2cfc20, + 0x39fa4: 0x6e2cfe20, 0x39fa5: 0x6e2d0020, 0x39fa6: 0x6e2d0220, 0x39fa7: 0x6e2d0420, + 0x39fa8: 0x6e2d0620, 0x39fa9: 0x6e34e220, 0x39faa: 0x6e34e420, 0x39fab: 0x6e34e620, + 0x39fac: 0x6e34e820, 0x39fad: 0x6e34ea20, 0x39fae: 0x6e34ec20, 0x39faf: 0x6e34ee20, + 0x39fb0: 0x6e34f020, 0x39fb1: 0x6e34f220, 0x39fb2: 0x6e34f420, 0x39fb3: 0x6e3aa420, + 0x39fb4: 0x6e3aa620, 0x39fb5: 0x6e3e6020, 0x39fb6: 0x6e3e6220, 0x39fb7: 0x6e3e6420, + 0x39fb8: 0x6e3e6620, 0x39fb9: 0x6e413220, 0x39fba: 0x6e432e20, 0x39fbb: 0x6e413420, + 0x39fbc: 0x6e433020, 0x39fbd: 0x6e3e6820, 0x39fbe: 0x6e413620, 0x39fbf: 0x6e433220, + // Block 0xe7f, offset 0x39fc0 + 0x39fc0: 0x6e433420, 0x39fc1: 0x6e448e20, 0x39fc2: 0x6e456220, 0x39fc3: 0x6e45e020, + 0x39fc4: 0x6e471420, 0x39fc5: 0x6c40f020, 0x39fc6: 0x6c40f220, 0x39fc7: 0x6c615c20, + 0x39fc8: 0x6c87ca20, 0x39fc9: 0x6d957420, 0x39fca: 0x6e03ea20, 0x39fcb: 0x6c271e20, + 0x39fcc: 0x6c40f620, 0x39fcd: 0x6c87d220, 0x39fce: 0x6c87d420, 0x39fcf: 0x6cb34220, + 0x39fd0: 0x6cb34420, 0x39fd1: 0x6cb34620, 0x39fd2: 0x6ce2f420, 0x39fd3: 0x6ce2f620, + 0x39fd4: 0x6d115220, 0x39fd5: 0x6d115420, 0x39fd6: 0x6d115620, 0x39fd7: 0x6d115820, + 0x39fd8: 0x6d3f6e20, 0x39fd9: 0x6d3f7020, 0x39fda: 0x6d3f7220, 0x39fdb: 0x6d3f7420, + 0x39fdc: 0x6d6c5820, 0x39fdd: 0x6d6c5a20, 0x39fde: 0x6d6c5c20, 0x39fdf: 0x6d6c5e20, + 0x39fe0: 0x6d958420, 0x39fe1: 0x6d958620, 0x39fe2: 0x6d958820, 0x39fe3: 0x6d958a20, + 0x39fe4: 0x6d958c20, 0x39fe5: 0x6d958e20, 0x39fe6: 0x6d959020, 0x39fe7: 0x6d959220, + 0x39fe8: 0x6db8a020, 0x39fe9: 0x6db8a220, 0x39fea: 0x6db8a420, 0x39feb: 0x6db8a620, + 0x39fec: 0x6db8a820, 0x39fed: 0x6db8aa20, 0x39fee: 0x6db8ac20, 0x39fef: 0x6db8ae20, + 0x39ff0: 0x6dd71820, 0x39ff1: 0x6dd71a20, 0x39ff2: 0x6dd71c20, 0x39ff3: 0x6dc60820, + 0x39ff4: 0x6dcb1a20, 0x39ff5: 0x6defcc20, 0x39ff6: 0x6defce20, 0x39ff7: 0x6defd020, + 0x39ff8: 0x6defd220, 0x39ff9: 0x6defd420, 0x39ffa: 0x6e03f020, 0x39ffb: 0x6e03f220, + 0x39ffc: 0x6e03f420, 0x39ffd: 0x6e153820, 0x39ffe: 0x6e22d820, 0x39fff: 0x6e22da20, + // Block 0xe80, offset 0x3a000 + 0x3a000: 0x6e34f620, 0x3a001: 0x6e449020, 0x3a002: 0x6e456420, 0x3a003: 0x6c272220, + 0x3a004: 0x6c272420, 0x3a005: 0x6d116220, 0x3a006: 0x6d116420, 0x3a007: 0x6d116620, + 0x3a008: 0x6d6c6420, 0x3a009: 0x6d959420, 0x3a00a: 0x6defd820, 0x3a00b: 0x6e153a20, + 0x3a00c: 0x6e22dc20, 0x3a00d: 0x6c0a8220, 0x3a00e: 0x6c0a8420, 0x3a00f: 0x6c0a8620, + 0x3a010: 0x6c0a8820, 0x3a011: 0x6c151620, 0x3a012: 0x6c151820, 0x3a013: 0x6c151a20, + 0x3a014: 0x6c151c20, 0x3a015: 0x6c151e20, 0x3a016: 0x6c152020, 0x3a017: 0x6c152220, + 0x3a018: 0x6c152420, 0x3a019: 0x6c152620, 0x3a01a: 0x6c152820, 0x3a01b: 0x6c152a20, + 0x3a01c: 0x6c152c20, 0x3a01d: 0x6c152e20, 0x3a01e: 0x6c153020, 0x3a01f: 0x6c153220, + 0x3a020: 0x6c153420, 0x3a021: 0x6c153620, 0x3a022: 0x6c274620, 0x3a023: 0x6c274820, + 0x3a024: 0x6c274a20, 0x3a025: 0x6c274c20, 0x3a026: 0x6c274e20, 0x3a027: 0x6c275020, + 0x3a028: 0x6c275220, 0x3a029: 0x6c275420, 0x3a02a: 0x6c275620, 0x3a02b: 0x6c275820, + 0x3a02c: 0x6c275a20, 0x3a02d: 0x6c275c20, 0x3a02e: 0x6c275e20, 0x3a02f: 0x6c276020, + 0x3a030: 0x6c276220, 0x3a031: 0x6c276420, 0x3a032: 0x6c276620, 0x3a033: 0x6c276820, + 0x3a034: 0x6c276a20, 0x3a035: 0x6c276c20, 0x3a036: 0x6c276e20, 0x3a037: 0x6c277020, + 0x3a038: 0x6c277220, 0x3a039: 0x6c277420, 0x3a03a: 0x6c277620, 0x3a03b: 0x6c277820, + 0x3a03c: 0x6c277a20, 0x3a03d: 0x6c277c20, 0x3a03e: 0x6c277e20, 0x3a03f: 0x6c278020, + // Block 0xe81, offset 0x3a040 + 0x3a040: 0x6c278220, 0x3a041: 0x6c278420, 0x3a042: 0x6c413020, 0x3a043: 0x6c413220, + 0x3a044: 0x6c413420, 0x3a045: 0x6c413620, 0x3a046: 0x6c413820, 0x3a047: 0x6c413a20, + 0x3a048: 0x6c413c20, 0x3a049: 0x6c413e20, 0x3a04a: 0x6c414020, 0x3a04b: 0x6c414220, + 0x3a04c: 0x6c414420, 0x3a04d: 0x6c414620, 0x3a04e: 0x6c414820, 0x3a04f: 0x6c414a20, + 0x3a050: 0x6c414c20, 0x3a051: 0x6c414e20, 0x3a052: 0x6c415020, 0x3a053: 0x6c415220, + 0x3a054: 0x6c415420, 0x3a055: 0x6c415620, 0x3a056: 0x6c415820, 0x3a057: 0x6c415a20, + 0x3a058: 0x6c415c20, 0x3a059: 0x6c415e20, 0x3a05a: 0x6c416020, 0x3a05b: 0x6c416220, + 0x3a05c: 0x6c416420, 0x3a05d: 0x6c416620, 0x3a05e: 0x6c416820, 0x3a05f: 0x6c416a20, + 0x3a060: 0x6c416c20, 0x3a061: 0x6c416e20, 0x3a062: 0x6c417020, 0x3a063: 0x6c417220, + 0x3a064: 0x6c417420, 0x3a065: 0x6c619020, 0x3a066: 0x6c619220, 0x3a067: 0x6c619420, + 0x3a068: 0x6c619620, 0x3a069: 0x6c619820, 0x3a06a: 0x6c619a20, 0x3a06b: 0x6c619c20, + 0x3a06c: 0x6c619e20, 0x3a06d: 0x6c61a020, 0x3a06e: 0x6c61a220, 0x3a06f: 0x6c61a420, + 0x3a070: 0x6c61a620, 0x3a071: 0x6c61a820, 0x3a072: 0x6c61aa20, 0x3a073: 0x6c61ac20, + 0x3a074: 0x6c61ae20, 0x3a075: 0x6c61b020, 0x3a076: 0x6c61b220, 0x3a077: 0x6c61b420, + 0x3a078: 0x6c61b620, 0x3a079: 0x6c61b820, 0x3a07a: 0x6c61ba20, 0x3a07b: 0x6c61bc20, + 0x3a07c: 0x6c61be20, 0x3a07d: 0x6c61c020, 0x3a07e: 0x6c61c220, 0x3a07f: 0x6c61c420, + // Block 0xe82, offset 0x3a080 + 0x3a080: 0x6c61c620, 0x3a081: 0x6c61c820, 0x3a082: 0x6c61ca20, 0x3a083: 0x6c61cc20, + 0x3a084: 0x6c61ce20, 0x3a085: 0x6c881420, 0x3a086: 0x6c881620, 0x3a087: 0x6c881820, + 0x3a088: 0x6c881a20, 0x3a089: 0x6c881c20, 0x3a08a: 0x6c881e20, 0x3a08b: 0x6c882020, + 0x3a08c: 0x6c882220, 0x3a08d: 0x6c882420, 0x3a08e: 0x6c882620, 0x3a08f: 0x6c882820, + 0x3a090: 0x6c882a20, 0x3a091: 0x6c882c20, 0x3a092: 0x6c882e20, 0x3a093: 0x6c883020, + 0x3a094: 0x6c883220, 0x3a095: 0x6c883420, 0x3a096: 0x6c883620, 0x3a097: 0x6c883820, + 0x3a098: 0x6c883a20, 0x3a099: 0x6c883c20, 0x3a09a: 0x6c883e20, 0x3a09b: 0x6c884020, + 0x3a09c: 0x6c884220, 0x3a09d: 0x6c884420, 0x3a09e: 0x6c884620, 0x3a09f: 0x6c884820, + 0x3a0a0: 0x6c884a20, 0x3a0a1: 0x6c884c20, 0x3a0a2: 0x6c884e20, 0x3a0a3: 0x6c885020, + 0x3a0a4: 0x6c885220, 0x3a0a5: 0x6c885420, 0x3a0a6: 0x6c885620, 0x3a0a7: 0x6c885820, + 0x3a0a8: 0x6c885a20, 0x3a0a9: 0x6c885c20, 0x3a0aa: 0x6c885e20, 0x3a0ab: 0x6cb38820, + 0x3a0ac: 0x6cb38a20, 0x3a0ad: 0x6cb38c20, 0x3a0ae: 0x6cb38e20, 0x3a0af: 0x6cb39020, + 0x3a0b0: 0x6cb39220, 0x3a0b1: 0x6cb39420, 0x3a0b2: 0x6cb39620, 0x3a0b3: 0x6cb39820, + 0x3a0b4: 0x6cb39a20, 0x3a0b5: 0x6cb39c20, 0x3a0b6: 0x6cb39e20, 0x3a0b7: 0x6cb3a020, + 0x3a0b8: 0x6cb3a220, 0x3a0b9: 0x6cb3a420, 0x3a0ba: 0x6cb3a620, 0x3a0bb: 0x6cb3a820, + 0x3a0bc: 0x6cb3aa20, 0x3a0bd: 0x6cb3ac20, 0x3a0be: 0x6cb3ae20, 0x3a0bf: 0x6cb3b020, + // Block 0xe83, offset 0x3a0c0 + 0x3a0c0: 0x6cb3b220, 0x3a0c1: 0x6cb3b420, 0x3a0c2: 0x6cb3b620, 0x3a0c3: 0x6cb3b820, + 0x3a0c4: 0x6cb3ba20, 0x3a0c5: 0x6cb3bc20, 0x3a0c6: 0x6cb3be20, 0x3a0c7: 0x6cb3c020, + 0x3a0c8: 0x6cb3c220, 0x3a0c9: 0x6cb3c420, 0x3a0ca: 0x6cb3c620, 0x3a0cb: 0x6cb3c820, + 0x3a0cc: 0x6cb3ca20, 0x3a0cd: 0x6cb3cc20, 0x3a0ce: 0x6ce32c20, 0x3a0cf: 0x6cb3ce20, + 0x3a0d0: 0x6cb3d020, 0x3a0d1: 0x6cb3d220, 0x3a0d2: 0x6cb3d420, 0x3a0d3: 0x6cb3d620, + 0x3a0d4: 0x6cb3d820, 0x3a0d5: 0x6cb3da20, 0x3a0d6: 0x6cb3dc20, 0x3a0d7: 0x6cb3de20, + 0x3a0d8: 0x6cb3e020, 0x3a0d9: 0x6cb3e220, 0x3a0da: 0x6cb3e420, 0x3a0db: 0x6cb3e620, + 0x3a0dc: 0x6cb3e820, 0x3a0dd: 0x6ce32e20, 0x3a0de: 0x6ce33020, 0x3a0df: 0x6ce33220, + 0x3a0e0: 0x6cb3ea20, 0x3a0e1: 0x6ce33420, 0x3a0e2: 0x6ce33620, 0x3a0e3: 0x6ce33820, + 0x3a0e4: 0x6ce33a20, 0x3a0e5: 0x6ce33c20, 0x3a0e6: 0x6ce33e20, 0x3a0e7: 0x6ce34020, + 0x3a0e8: 0x6ce34220, 0x3a0e9: 0x6ce34420, 0x3a0ea: 0x6ce34620, 0x3a0eb: 0x6ce34820, + 0x3a0ec: 0x6ce34a20, 0x3a0ed: 0x6ce34c20, 0x3a0ee: 0x6ce34e20, 0x3a0ef: 0x6ce35020, + 0x3a0f0: 0x6ce35220, 0x3a0f1: 0x6ce35420, 0x3a0f2: 0x6ce35620, 0x3a0f3: 0x6ce35820, + 0x3a0f4: 0x6ce35a20, 0x3a0f5: 0x6ce35c20, 0x3a0f6: 0x6ce35e20, 0x3a0f7: 0x6ce36020, + 0x3a0f8: 0x6ce36220, 0x3a0f9: 0x6ce36420, 0x3a0fa: 0x6ce36620, 0x3a0fb: 0x6ce36820, + 0x3a0fc: 0x6ce36a20, 0x3a0fd: 0x6ce36c20, 0x3a0fe: 0x6ce36e20, 0x3a0ff: 0x6ce37020, + // Block 0xe84, offset 0x3a100 + 0x3a100: 0x6ce37220, 0x3a101: 0x6ce37420, 0x3a102: 0x6ce37620, 0x3a103: 0x6ce37820, + 0x3a104: 0x6ce37a20, 0x3a105: 0x6ce37c20, 0x3a106: 0x6ce37e20, 0x3a107: 0x6ce38020, + 0x3a108: 0x6ce38220, 0x3a109: 0x6ce38420, 0x3a10a: 0x6ce38620, 0x3a10b: 0x6ce38820, + 0x3a10c: 0x6ce38a20, 0x3a10d: 0x6ce38c20, 0x3a10e: 0x6ce38e20, 0x3a10f: 0x6ce39020, + 0x3a110: 0x6ce39220, 0x3a111: 0x6ce39420, 0x3a112: 0x6ce39620, 0x3a113: 0x6ce39820, + 0x3a114: 0x6ce39a20, 0x3a115: 0x6ce39c20, 0x3a116: 0x6ce39e20, 0x3a117: 0x6ce3a020, + 0x3a118: 0x6ce3a220, 0x3a119: 0x6ce3a420, 0x3a11a: 0x6ce3a620, 0x3a11b: 0x6ce3a820, + 0x3a11c: 0x6ce3aa20, 0x3a11d: 0x6d11a220, 0x3a11e: 0x6d11a420, 0x3a11f: 0x6d11a620, + 0x3a120: 0x6d11a820, 0x3a121: 0x6d11aa20, 0x3a122: 0x6d11ac20, 0x3a123: 0x6d11ae20, + 0x3a124: 0x6d11b020, 0x3a125: 0x6d11b220, 0x3a126: 0x6d11b420, 0x3a127: 0x6d11b620, + 0x3a128: 0x6d11b820, 0x3a129: 0x6d11ba20, 0x3a12a: 0x6d11bc20, 0x3a12b: 0x6d11be20, + 0x3a12c: 0x6d11c020, 0x3a12d: 0x6d11c220, 0x3a12e: 0x6d11c420, 0x3a12f: 0x6d11c620, + 0x3a130: 0x6d11c820, 0x3a131: 0x6d11ca20, 0x3a132: 0x6d11cc20, 0x3a133: 0x6d11ce20, + 0x3a134: 0x6d11d020, 0x3a135: 0x6d11d220, 0x3a136: 0x6d11d420, 0x3a137: 0x6d11d620, + 0x3a138: 0x6d11d820, 0x3a139: 0x6d11da20, 0x3a13a: 0x6d11dc20, 0x3a13b: 0x6d11de20, + 0x3a13c: 0x6d11e020, 0x3a13d: 0x6d11e220, 0x3a13e: 0x6d11e420, 0x3a13f: 0x6d11e620, + // Block 0xe85, offset 0x3a140 + 0x3a140: 0x6d11e820, 0x3a141: 0x6d11ea20, 0x3a142: 0x6d11ec20, 0x3a143: 0x6d11ee20, + 0x3a144: 0x6d11f020, 0x3a145: 0x6d11f220, 0x3a146: 0x6d3f9c20, 0x3a147: 0x6d3f9e20, + 0x3a148: 0x6d3fa020, 0x3a149: 0x6d3fa220, 0x3a14a: 0x6d3fa420, 0x3a14b: 0x6d3fa620, + 0x3a14c: 0x6d3fa820, 0x3a14d: 0x6d3faa20, 0x3a14e: 0x6d3fac20, 0x3a14f: 0x6d3fae20, + 0x3a150: 0x6d3fb020, 0x3a151: 0x6d3fb220, 0x3a152: 0x6d3fb420, 0x3a153: 0x6d3fb620, + 0x3a154: 0x6d3fb820, 0x3a155: 0x6d3fba20, 0x3a156: 0x6d3fbc20, 0x3a157: 0x6d3fbe20, + 0x3a158: 0x6d3fc020, 0x3a159: 0x6d3fc220, 0x3a15a: 0x6d3fc420, 0x3a15b: 0x6d3fc620, + 0x3a15c: 0x6d3fc820, 0x3a15d: 0x6d3fca20, 0x3a15e: 0x6d3fcc20, 0x3a15f: 0x6d3fce20, + 0x3a160: 0x6d3fd020, 0x3a161: 0x6d3fd220, 0x3a162: 0x6d3fd420, 0x3a163: 0x6d3fd620, + 0x3a164: 0x6d3fd820, 0x3a165: 0x6d3fda20, 0x3a166: 0x6d3fdc20, 0x3a167: 0x6d3fde20, + 0x3a168: 0x6d3fe020, 0x3a169: 0x6d3fe220, 0x3a16a: 0x6d3fe420, 0x3a16b: 0x6d3fe620, + 0x3a16c: 0x6d3fe820, 0x3a16d: 0x6d3fea20, 0x3a16e: 0x6d3fec20, 0x3a16f: 0x6d3fee20, + 0x3a170: 0x6d3ff020, 0x3a171: 0x6d3ff220, 0x3a172: 0x6d3ff420, 0x3a173: 0x6d3ff620, + 0x3a174: 0x6d6c8a20, 0x3a175: 0x6d6c8c20, 0x3a176: 0x6d6c8e20, 0x3a177: 0x6d6c9020, + 0x3a178: 0x6d6c9220, 0x3a179: 0x6d6c9420, 0x3a17a: 0x6d6c9620, 0x3a17b: 0x6d6c9820, + 0x3a17c: 0x6d6c9a20, 0x3a17d: 0x6d6c9c20, 0x3a17e: 0x6d6c9e20, 0x3a17f: 0x6d6ca020, + // Block 0xe86, offset 0x3a180 + 0x3a180: 0x6d6ca220, 0x3a181: 0x6d6ca420, 0x3a182: 0x6d6ca620, 0x3a183: 0x6d6ca820, + 0x3a184: 0x6d6caa20, 0x3a185: 0x6d6cac20, 0x3a186: 0x6d6cae20, 0x3a187: 0x6d6cb020, + 0x3a188: 0x6d6cb220, 0x3a189: 0x6d6cb420, 0x3a18a: 0x6d6cb620, 0x3a18b: 0x6d6cb820, + 0x3a18c: 0x6d6cba20, 0x3a18d: 0x6d6cbc20, 0x3a18e: 0x6d6cbe20, 0x3a18f: 0x6d6cc020, + 0x3a190: 0x6d6cc220, 0x3a191: 0x6d6cc420, 0x3a192: 0x6d6cc620, 0x3a193: 0x6d784820, + 0x3a194: 0x6d6cc820, 0x3a195: 0x6d6cca20, 0x3a196: 0x6d6ccc20, 0x3a197: 0x6d6cce20, + 0x3a198: 0x6d6cd020, 0x3a199: 0x6d6cd220, 0x3a19a: 0x6d6cd420, 0x3a19b: 0x6d6cd620, + 0x3a19c: 0x6d6cd820, 0x3a19d: 0x6d6cda20, 0x3a19e: 0x6d6cdc20, 0x3a19f: 0x6d6cde20, + 0x3a1a0: 0x6d6ce020, 0x3a1a1: 0x6d6ce220, 0x3a1a2: 0x6d6ce420, 0x3a1a3: 0x6d6ce620, + 0x3a1a4: 0x6d6ce820, 0x3a1a5: 0x6d95b220, 0x3a1a6: 0x6d95b420, 0x3a1a7: 0x6d95b620, + 0x3a1a8: 0x6d95b820, 0x3a1a9: 0x6d95ba20, 0x3a1aa: 0x6d95bc20, 0x3a1ab: 0x6d95be20, + 0x3a1ac: 0x6d95c020, 0x3a1ad: 0x6d95c220, 0x3a1ae: 0x6d95c420, 0x3a1af: 0x6d95c620, + 0x3a1b0: 0x6d95c820, 0x3a1b1: 0x6d95ca20, 0x3a1b2: 0x6d95cc20, 0x3a1b3: 0x6d95ce20, + 0x3a1b4: 0x6d95d020, 0x3a1b5: 0x6d95d220, 0x3a1b6: 0x6d95d420, 0x3a1b7: 0x6d95d620, + 0x3a1b8: 0x6d95d820, 0x3a1b9: 0x6d95da20, 0x3a1ba: 0x6d95dc20, 0x3a1bb: 0x6d95de20, + 0x3a1bc: 0x6d95e020, 0x3a1bd: 0x6d95e220, 0x3a1be: 0x6d95e420, 0x3a1bf: 0x6d95e620, + // Block 0xe87, offset 0x3a1c0 + 0x3a1c0: 0x6d95e820, 0x3a1c1: 0x6d95ea20, 0x3a1c2: 0x6d95ec20, 0x3a1c3: 0x6d95ee20, + 0x3a1c4: 0x6d95f020, 0x3a1c5: 0x6d95f220, 0x3a1c6: 0x6d95f420, 0x3a1c7: 0x6db8c620, + 0x3a1c8: 0x6db8c820, 0x3a1c9: 0x6db8ca20, 0x3a1ca: 0x6db8cc20, 0x3a1cb: 0x6db8ce20, + 0x3a1cc: 0x6db8d020, 0x3a1cd: 0x6db8d220, 0x3a1ce: 0x6db8d420, 0x3a1cf: 0x6db8d620, + 0x3a1d0: 0x6db8d820, 0x3a1d1: 0x6db8da20, 0x3a1d2: 0x6db8dc20, 0x3a1d3: 0x6db8de20, + 0x3a1d4: 0x6db8e020, 0x3a1d5: 0x6db8e220, 0x3a1d6: 0x6db8e420, 0x3a1d7: 0x6db8e620, + 0x3a1d8: 0x6db8e820, 0x3a1d9: 0x6db8ea20, 0x3a1da: 0x6db8ec20, 0x3a1db: 0x6db8ee20, + 0x3a1dc: 0x6db8f020, 0x3a1dd: 0x6db8f220, 0x3a1de: 0x6db8f420, 0x3a1df: 0x6db8f620, + 0x3a1e0: 0x6db8f820, 0x3a1e1: 0x6dd72620, 0x3a1e2: 0x6dd72820, 0x3a1e3: 0x6dd72a20, + 0x3a1e4: 0x6dd72c20, 0x3a1e5: 0x6dd72e20, 0x3a1e6: 0x6dd73020, 0x3a1e7: 0x6dd73220, + 0x3a1e8: 0x6dd73420, 0x3a1e9: 0x6dd73620, 0x3a1ea: 0x6dd73820, 0x3a1eb: 0x6dd73a20, + 0x3a1ec: 0x6dd73c20, 0x3a1ed: 0x6dd73e20, 0x3a1ee: 0x6dd74020, 0x3a1ef: 0x6dd74220, + 0x3a1f0: 0x6dd74420, 0x3a1f1: 0x6dd74620, 0x3a1f2: 0x6dd74820, 0x3a1f3: 0x6dd74a20, + 0x3a1f4: 0x6dd74c20, 0x3a1f5: 0x6dd74e20, 0x3a1f6: 0x6dd75020, 0x3a1f7: 0x6defe220, + 0x3a1f8: 0x6defe420, 0x3a1f9: 0x6defe620, 0x3a1fa: 0x6defe820, 0x3a1fb: 0x6defea20, + 0x3a1fc: 0x6e03e620, 0x3a1fd: 0x6defec20, 0x3a1fe: 0x6defee20, 0x3a1ff: 0x6deff020, + // Block 0xe88, offset 0x3a200 + 0x3a200: 0x6deff220, 0x3a201: 0x6deff420, 0x3a202: 0x6e03fe20, 0x3a203: 0x6e040020, + 0x3a204: 0x6e040220, 0x3a205: 0x6e040420, 0x3a206: 0x6e040620, 0x3a207: 0x6e040820, + 0x3a208: 0x6e040a20, 0x3a209: 0x6e040c20, 0x3a20a: 0x6e040e20, 0x3a20b: 0x6e041020, + 0x3a20c: 0x6e041220, 0x3a20d: 0x6e041420, 0x3a20e: 0x6e041620, 0x3a20f: 0x6e041820, + 0x3a210: 0x6e041a20, 0x3a211: 0x6e041c20, 0x3a212: 0x6e153e20, 0x3a213: 0x6e154020, + 0x3a214: 0x6e154220, 0x3a215: 0x6e154420, 0x3a216: 0x6e154620, 0x3a217: 0x6e154820, + 0x3a218: 0x6e154a20, 0x3a219: 0x6e22de20, 0x3a21a: 0x6e22e020, 0x3a21b: 0x6e22e220, + 0x3a21c: 0x6e22e420, 0x3a21d: 0x6e22e620, 0x3a21e: 0x6e22e820, 0x3a21f: 0x6e2d0c20, + 0x3a220: 0x6e2d0e20, 0x3a221: 0x6e2d1020, 0x3a222: 0x6e2d1220, 0x3a223: 0x6e2d1420, + 0x3a224: 0x6e34fa20, 0x3a225: 0x6e34fc20, 0x3a226: 0x6e3aa820, 0x3a227: 0x6e3e6a20, + 0x3a228: 0x6c00ca20, 0x3a229: 0x6c052220, 0x3a22a: 0x6c052420, 0x3a22b: 0x6c0a9220, + 0x3a22c: 0x6c0a9420, 0x3a22d: 0x6c0a9620, 0x3a22e: 0x6c0a9820, 0x3a22f: 0x6c0a9a20, + 0x3a230: 0x6c0a9c20, 0x3a231: 0x6c0a9e20, 0x3a232: 0x6c0aa020, 0x3a233: 0x6c0aa220, + 0x3a234: 0x6c0aa420, 0x3a235: 0x6c0aa620, 0x3a236: 0x6c154e20, 0x3a237: 0x6c155020, + 0x3a238: 0x6c155220, 0x3a239: 0x6c155420, 0x3a23a: 0x6c155620, 0x3a23b: 0x6c155820, + 0x3a23c: 0x6c155a20, 0x3a23d: 0x6c155c20, 0x3a23e: 0x6c155e20, 0x3a23f: 0x6c156020, + // Block 0xe89, offset 0x3a240 + 0x3a240: 0x6c156220, 0x3a241: 0x6c156420, 0x3a242: 0x6c156620, 0x3a243: 0x6c156820, + 0x3a244: 0x6c156a20, 0x3a245: 0x6c156c20, 0x3a246: 0x6c156e20, 0x3a247: 0x6c157020, + 0x3a248: 0x6c157220, 0x3a249: 0x6c157420, 0x3a24a: 0x6c157620, 0x3a24b: 0x6c157820, + 0x3a24c: 0x6c157a20, 0x3a24d: 0x6c157c20, 0x3a24e: 0x6c157e20, 0x3a24f: 0x6c158020, + 0x3a250: 0x6c158220, 0x3a251: 0x6c158420, 0x3a252: 0x6c158620, 0x3a253: 0x6c27ae20, + 0x3a254: 0x6c27b020, 0x3a255: 0x6c27b220, 0x3a256: 0x6c27b420, 0x3a257: 0x6c27b620, + 0x3a258: 0x6c27b820, 0x3a259: 0x6c27ba20, 0x3a25a: 0x6c27bc20, 0x3a25b: 0x6c27be20, + 0x3a25c: 0x6c27c020, 0x3a25d: 0x6c27c220, 0x3a25e: 0x6c27c420, 0x3a25f: 0x6c27c620, + 0x3a260: 0x6c27c820, 0x3a261: 0x6c27ca20, 0x3a262: 0x6c27cc20, 0x3a263: 0x6c27ce20, + 0x3a264: 0x6c27d020, 0x3a265: 0x6c27d220, 0x3a266: 0x6c27d420, 0x3a267: 0x6c27d620, + 0x3a268: 0x6c27d820, 0x3a269: 0x6c27da20, 0x3a26a: 0x6c27dc20, 0x3a26b: 0x6c27de20, + 0x3a26c: 0x6c27e020, 0x3a26d: 0x6c27e220, 0x3a26e: 0x6c27e420, 0x3a26f: 0x6c41a020, + 0x3a270: 0x6c41a220, 0x3a271: 0x6c41a420, 0x3a272: 0x6c41a620, 0x3a273: 0x6c41a820, + 0x3a274: 0x6c41aa20, 0x3a275: 0x6c41ac20, 0x3a276: 0x6c41ae20, 0x3a277: 0x6c41b020, + 0x3a278: 0x6c41b220, 0x3a279: 0x6c41b420, 0x3a27a: 0x6c41b620, 0x3a27b: 0x6c41b820, + 0x3a27c: 0x6c41ba20, 0x3a27d: 0x6c41bc20, 0x3a27e: 0x6c41be20, 0x3a27f: 0x6c41c020, + // Block 0xe8a, offset 0x3a280 + 0x3a280: 0x6c41c220, 0x3a281: 0x6c41c420, 0x3a282: 0x6c41c620, 0x3a283: 0x6c41c820, + 0x3a284: 0x6c41ca20, 0x3a285: 0x6c41cc20, 0x3a286: 0x6c41ce20, 0x3a287: 0x6c41d020, + 0x3a288: 0x6c41d220, 0x3a289: 0x6c41d420, 0x3a28a: 0x6c41d620, 0x3a28b: 0x6c620e20, + 0x3a28c: 0x6c621020, 0x3a28d: 0x6c621220, 0x3a28e: 0x6c621420, 0x3a28f: 0x6c621620, + 0x3a290: 0x6c621820, 0x3a291: 0x6c621a20, 0x3a292: 0x6c621c20, 0x3a293: 0x6c621e20, + 0x3a294: 0x6c622020, 0x3a295: 0x6c622220, 0x3a296: 0x6c622420, 0x3a297: 0x6c622620, + 0x3a298: 0x6c622820, 0x3a299: 0x6c622a20, 0x3a29a: 0x6c622c20, 0x3a29b: 0x6c622e20, + 0x3a29c: 0x6c623020, 0x3a29d: 0x6c623220, 0x3a29e: 0x6c623420, 0x3a29f: 0x6c623620, + 0x3a2a0: 0x6c623820, 0x3a2a1: 0x6c623a20, 0x3a2a2: 0x6c623c20, 0x3a2a3: 0x6c623e20, + 0x3a2a4: 0x6c624020, 0x3a2a5: 0x6c624220, 0x3a2a6: 0x6c624420, 0x3a2a7: 0x6c624620, + 0x3a2a8: 0x6c624820, 0x3a2a9: 0x6c624a20, 0x3a2aa: 0x6c624c20, 0x3a2ab: 0x6c889a20, + 0x3a2ac: 0x6c889c20, 0x3a2ad: 0x6c889e20, 0x3a2ae: 0x6c88a020, 0x3a2af: 0x6c88a220, + 0x3a2b0: 0x6c88a420, 0x3a2b1: 0x6c88a620, 0x3a2b2: 0x6c88a820, 0x3a2b3: 0x6c88aa20, + 0x3a2b4: 0x6c88ac20, 0x3a2b5: 0x6c88ae20, 0x3a2b6: 0x6c88b020, 0x3a2b7: 0x6c88b220, + 0x3a2b8: 0x6c88b420, 0x3a2b9: 0x6c88b620, 0x3a2ba: 0x6c88b820, 0x3a2bb: 0x6c88ba20, + 0x3a2bc: 0x6c88bc20, 0x3a2bd: 0x6c88be20, 0x3a2be: 0x6c88c020, 0x3a2bf: 0x6c88c220, + // Block 0xe8b, offset 0x3a2c0 + 0x3a2c0: 0x6c88c420, 0x3a2c1: 0x6c88c620, 0x3a2c2: 0x6c88c820, 0x3a2c3: 0x6c88ca20, + 0x3a2c4: 0x6c88cc20, 0x3a2c5: 0x6c88ce20, 0x3a2c6: 0x6c88d020, 0x3a2c7: 0x6c88d220, + 0x3a2c8: 0x6c88d420, 0x3a2c9: 0x6c88d620, 0x3a2ca: 0x6c88d820, 0x3a2cb: 0x6c88da20, + 0x3a2cc: 0x6c88dc20, 0x3a2cd: 0x6c88de20, 0x3a2ce: 0x6c88e020, 0x3a2cf: 0x6cb42a20, + 0x3a2d0: 0x6cb42c20, 0x3a2d1: 0x6cb42e20, 0x3a2d2: 0x6cb43020, 0x3a2d3: 0x6cb43220, + 0x3a2d4: 0x6cb43420, 0x3a2d5: 0x6cb43620, 0x3a2d6: 0x6cb43820, 0x3a2d7: 0x6ce3e620, + 0x3a2d8: 0x6cb43a20, 0x3a2d9: 0x6cb43c20, 0x3a2da: 0x6cb43e20, 0x3a2db: 0x6cb44020, + 0x3a2dc: 0x6cb44220, 0x3a2dd: 0x6cb44420, 0x3a2de: 0x6cb44620, 0x3a2df: 0x6cb44820, + 0x3a2e0: 0x6cb44a20, 0x3a2e1: 0x6cb44c20, 0x3a2e2: 0x6cb44e20, 0x3a2e3: 0x6cb45020, + 0x3a2e4: 0x6cb45220, 0x3a2e5: 0x6cb45420, 0x3a2e6: 0x6cb45620, 0x3a2e7: 0x6cb45820, + 0x3a2e8: 0x6cb45a20, 0x3a2e9: 0x6cb45c20, 0x3a2ea: 0x6cb45e20, 0x3a2eb: 0x6cb46020, + 0x3a2ec: 0x6cb46220, 0x3a2ed: 0x6cb46420, 0x3a2ee: 0x6cb46620, 0x3a2ef: 0x6cb46820, + 0x3a2f0: 0x6cb46a20, 0x3a2f1: 0x6cb46c20, 0x3a2f2: 0x6ce3e820, 0x3a2f3: 0x6ce3ea20, + 0x3a2f4: 0x6ce3ec20, 0x3a2f5: 0x6ce3ee20, 0x3a2f6: 0x6ce3f020, 0x3a2f7: 0x6ce3f220, + 0x3a2f8: 0x6ce3f420, 0x3a2f9: 0x6ce3f620, 0x3a2fa: 0x6ce3f820, 0x3a2fb: 0x6ce3fa20, + 0x3a2fc: 0x6ce3fc20, 0x3a2fd: 0x6ce3fe20, 0x3a2fe: 0x6ce40020, 0x3a2ff: 0x6ce40220, + // Block 0xe8c, offset 0x3a300 + 0x3a300: 0x6ce40420, 0x3a301: 0x6ce40620, 0x3a302: 0x6ce40820, 0x3a303: 0x6ce40a20, + 0x3a304: 0x6ce40c20, 0x3a305: 0x6ce40e20, 0x3a306: 0x6ce41020, 0x3a307: 0x6ce41220, + 0x3a308: 0x6ce41420, 0x3a309: 0x6ce41620, 0x3a30a: 0x6ce41820, 0x3a30b: 0x6d122220, + 0x3a30c: 0x6d122420, 0x3a30d: 0x6d122620, 0x3a30e: 0x6d122820, 0x3a30f: 0x6d122a20, + 0x3a310: 0x6d122c20, 0x3a311: 0x6d122e20, 0x3a312: 0x6d123020, 0x3a313: 0x6d123220, + 0x3a314: 0x6d123420, 0x3a315: 0x6d123620, 0x3a316: 0x6d123820, 0x3a317: 0x6d123a20, + 0x3a318: 0x6d123c20, 0x3a319: 0x6d123e20, 0x3a31a: 0x6d124020, 0x3a31b: 0x6d124220, + 0x3a31c: 0x6d124420, 0x3a31d: 0x6d124620, 0x3a31e: 0x6d124820, 0x3a31f: 0x6d124a20, + 0x3a320: 0x6d124c20, 0x3a321: 0x6d124e20, 0x3a322: 0x6d125020, 0x3a323: 0x6d125220, + 0x3a324: 0x6d125420, 0x3a325: 0x6d125620, 0x3a326: 0x6d125820, 0x3a327: 0x6d125a20, + 0x3a328: 0x6d125c20, 0x3a329: 0x6d125e20, 0x3a32a: 0x6d126020, 0x3a32b: 0x6d403020, + 0x3a32c: 0x6d403220, 0x3a32d: 0x6d403420, 0x3a32e: 0x6d403620, 0x3a32f: 0x6d403820, + 0x3a330: 0x6d403a20, 0x3a331: 0x6d403c20, 0x3a332: 0x6d403e20, 0x3a333: 0x6d404020, + 0x3a334: 0x6d404220, 0x3a335: 0x6d404420, 0x3a336: 0x6d404620, 0x3a337: 0x6d404820, + 0x3a338: 0x6d404a20, 0x3a339: 0x6d126220, 0x3a33a: 0x6d404c20, 0x3a33b: 0x6d404e20, + 0x3a33c: 0x6d405020, 0x3a33d: 0x6d405220, 0x3a33e: 0x6d405420, 0x3a33f: 0x6d405620, + // Block 0xe8d, offset 0x3a340 + 0x3a340: 0x6d405820, 0x3a341: 0x6d405a20, 0x3a342: 0x6d405c20, 0x3a343: 0x6d405e20, + 0x3a344: 0x6d406020, 0x3a345: 0x6d406220, 0x3a346: 0x6d406420, 0x3a347: 0x6d406620, + 0x3a348: 0x6d406820, 0x3a349: 0x6d406a20, 0x3a34a: 0x6d406c20, 0x3a34b: 0x6d406e20, + 0x3a34c: 0x6d407020, 0x3a34d: 0x6d407220, 0x3a34e: 0x6d407420, 0x3a34f: 0x6d407620, + 0x3a350: 0x6d407820, 0x3a351: 0x6d6d1820, 0x3a352: 0x6d6d1a20, 0x3a353: 0x6d6d1c20, + 0x3a354: 0x6d6d1e20, 0x3a355: 0x6d6d2020, 0x3a356: 0x6d6d2220, 0x3a357: 0x6d6d2420, + 0x3a358: 0x6d6d2620, 0x3a359: 0x6d6d2820, 0x3a35a: 0x6d6d2a20, 0x3a35b: 0x6d6d2c20, + 0x3a35c: 0x6d6d2e20, 0x3a35d: 0x6d6d3020, 0x3a35e: 0x6d6d3220, 0x3a35f: 0x6d6d3420, + 0x3a360: 0x6d6d3620, 0x3a361: 0x6d6d3820, 0x3a362: 0x6d6d3a20, 0x3a363: 0x6d6d3c20, + 0x3a364: 0x6d6d3e20, 0x3a365: 0x6d6d4020, 0x3a366: 0x6d6d4220, 0x3a367: 0x6d960820, + 0x3a368: 0x6d960a20, 0x3a369: 0x6d960c20, 0x3a36a: 0x6d960e20, 0x3a36b: 0x6d961020, + 0x3a36c: 0x6d961220, 0x3a36d: 0x6d961420, 0x3a36e: 0x6d961620, 0x3a36f: 0x6d961820, + 0x3a370: 0x6d961a20, 0x3a371: 0x6d961c20, 0x3a372: 0x6d961e20, 0x3a373: 0x6d962020, + 0x3a374: 0x6d962220, 0x3a375: 0x6d962420, 0x3a376: 0x6d962620, 0x3a377: 0x6d962820, + 0x3a378: 0x6d962a20, 0x3a379: 0x6d962c20, 0x3a37a: 0x6db90c20, 0x3a37b: 0x6db90e20, + 0x3a37c: 0x6db91020, 0x3a37d: 0x6db91220, 0x3a37e: 0x6db91420, 0x3a37f: 0x6db91620, + // Block 0xe8e, offset 0x3a380 + 0x3a380: 0x6db91820, 0x3a381: 0x6db91a20, 0x3a382: 0x6db91c20, 0x3a383: 0x6db91e20, + 0x3a384: 0x6db92020, 0x3a385: 0x6db92220, 0x3a386: 0x6db92420, 0x3a387: 0x6db92620, + 0x3a388: 0x6db92820, 0x3a389: 0x6db92a20, 0x3a38a: 0x6db92c20, 0x3a38b: 0x6db92e20, + 0x3a38c: 0x6db93020, 0x3a38d: 0x6dd76220, 0x3a38e: 0x6dd76420, 0x3a38f: 0x6dd76620, + 0x3a390: 0x6dd76820, 0x3a391: 0x6dd76a20, 0x3a392: 0x6dd76c20, 0x3a393: 0x6dd76e20, + 0x3a394: 0x6dd77020, 0x3a395: 0x6dd77220, 0x3a396: 0x6dd77420, 0x3a397: 0x6dd77620, + 0x3a398: 0x6dd77820, 0x3a399: 0x6deffc20, 0x3a39a: 0x6deffe20, 0x3a39b: 0x6df00020, + 0x3a39c: 0x6df00220, 0x3a39d: 0x6df00420, 0x3a39e: 0x6df00620, 0x3a39f: 0x6df00820, + 0x3a3a0: 0x6e042a20, 0x3a3a1: 0x6e042c20, 0x3a3a2: 0x6e042e20, 0x3a3a3: 0x6e043020, + 0x3a3a4: 0x6e155420, 0x3a3a5: 0x6e155620, 0x3a3a6: 0x6e155820, 0x3a3a7: 0x6e155a20, + 0x3a3a8: 0x6e22ee20, 0x3a3a9: 0x6e2d1a20, 0x3a3aa: 0x6e2d1c20, 0x3a3ab: 0x6e2d1e20, + 0x3a3ac: 0x6e2d2020, 0x3a3ad: 0x6e2d2220, 0x3a3ae: 0x6e2d2420, 0x3a3af: 0x6e3e6c20, + 0x3a3b0: 0x6c88fc20, 0x3a3b1: 0x6c88fe20, 0x3a3b2: 0x6c890020, 0x3a3b3: 0x6c890220, + 0x3a3b4: 0x6cb49620, 0x3a3b5: 0x6cb49820, 0x3a3b6: 0x6cb49a20, 0x3a3b7: 0x6cb49c20, + 0x3a3b8: 0x6cb49e20, 0x3a3b9: 0x6cb4a020, 0x3a3ba: 0x6cb4a220, 0x3a3bb: 0x6cb4a420, + 0x3a3bc: 0x6cb4a620, 0x3a3bd: 0x6cb4a820, 0x3a3be: 0x6cb4aa20, 0x3a3bf: 0x6cb4ac20, + // Block 0xe8f, offset 0x3a3c0 + 0x3a3c0: 0x6cb4ae20, 0x3a3c1: 0x6cb4b020, 0x3a3c2: 0x6cb4b220, 0x3a3c3: 0x6cb4b420, + 0x3a3c4: 0x6cb4b620, 0x3a3c5: 0x6cb4b820, 0x3a3c6: 0x6cb4ba20, 0x3a3c7: 0x6cb4bc20, + 0x3a3c8: 0x6cb4be20, 0x3a3c9: 0x6cb4c020, 0x3a3ca: 0x6cb4c220, 0x3a3cb: 0x6ce43820, + 0x3a3cc: 0x6ce43a20, 0x3a3cd: 0x6ce43c20, 0x3a3ce: 0x6ce43e20, 0x3a3cf: 0x6ce44020, + 0x3a3d0: 0x6ce44220, 0x3a3d1: 0x6ce44420, 0x3a3d2: 0x6ce44620, 0x3a3d3: 0x6ce44820, + 0x3a3d4: 0x6ce44a20, 0x3a3d5: 0x6ce44c20, 0x3a3d6: 0x6ce44e20, 0x3a3d7: 0x6ce45020, + 0x3a3d8: 0x6ce45220, 0x3a3d9: 0x6ce45420, 0x3a3da: 0x6ce45620, 0x3a3db: 0x6ce45820, + 0x3a3dc: 0x6ce45a20, 0x3a3dd: 0x6ce45c20, 0x3a3de: 0x6ce45e20, 0x3a3df: 0x6ce46020, + 0x3a3e0: 0x6ce46220, 0x3a3e1: 0x6ce46420, 0x3a3e2: 0x6ce46620, 0x3a3e3: 0x6ce46820, + 0x3a3e4: 0x6d129020, 0x3a3e5: 0x6d129220, 0x3a3e6: 0x6d129420, 0x3a3e7: 0x6d129620, + 0x3a3e8: 0x6d129820, 0x3a3e9: 0x6d129a20, 0x3a3ea: 0x6d129c20, 0x3a3eb: 0x6d129e20, + 0x3a3ec: 0x6d12a020, 0x3a3ed: 0x6d12a220, 0x3a3ee: 0x6d12a420, 0x3a3ef: 0x6d12a620, + 0x3a3f0: 0x6d12a820, 0x3a3f1: 0x6d12aa20, 0x3a3f2: 0x6d12ac20, 0x3a3f3: 0x6d12ae20, + 0x3a3f4: 0x6d12b020, 0x3a3f5: 0x6d12b220, 0x3a3f6: 0x6d12b420, 0x3a3f7: 0x6d409a20, + 0x3a3f8: 0x6d409c20, 0x3a3f9: 0x6d409e20, 0x3a3fa: 0x6d40a020, 0x3a3fb: 0x6d40a220, + 0x3a3fc: 0x6d40a420, 0x3a3fd: 0x6d40a620, 0x3a3fe: 0x6d40a820, 0x3a3ff: 0x6d40aa20, + // Block 0xe90, offset 0x3a400 + 0x3a400: 0x6d40ac20, 0x3a401: 0x6d40ae20, 0x3a402: 0x6d40b020, 0x3a403: 0x6d40b220, + 0x3a404: 0x6d40b420, 0x3a405: 0x6d40b620, 0x3a406: 0x6d40b820, 0x3a407: 0x6d40ba20, + 0x3a408: 0x6d40bc20, 0x3a409: 0x6d40be20, 0x3a40a: 0x6d40c020, 0x3a40b: 0x6d40c220, + 0x3a40c: 0x6d6d6a20, 0x3a40d: 0x6d6d6c20, 0x3a40e: 0x6d6d6e20, 0x3a40f: 0x6d6d7020, + 0x3a410: 0x6d6d7220, 0x3a411: 0x6d6d7420, 0x3a412: 0x6d6d7620, 0x3a413: 0x6d6d7820, + 0x3a414: 0x6d6d7a20, 0x3a415: 0x6d6d7c20, 0x3a416: 0x6d6d7e20, 0x3a417: 0x6d6d8020, + 0x3a418: 0x6d6d8220, 0x3a419: 0x6d6d8420, 0x3a41a: 0x6d6d8620, 0x3a41b: 0x6d6d8820, + 0x3a41c: 0x6d6d8a20, 0x3a41d: 0x6d6d8c20, 0x3a41e: 0x6d6d8e20, 0x3a41f: 0x6d6d9020, + 0x3a420: 0x6d6d9220, 0x3a421: 0x6d6d9420, 0x3a422: 0x6d6d9620, 0x3a423: 0x6d6d9820, + 0x3a424: 0x6d6d9a20, 0x3a425: 0x6d6d9c20, 0x3a426: 0x6d6d9e20, 0x3a427: 0x6d6da020, + 0x3a428: 0x6d6da220, 0x3a429: 0x6d965820, 0x3a42a: 0x6d965a20, 0x3a42b: 0x6d965c20, + 0x3a42c: 0x6d965e20, 0x3a42d: 0x6d966020, 0x3a42e: 0x6d966220, 0x3a42f: 0x6d966420, + 0x3a430: 0x6d966620, 0x3a431: 0x6d966820, 0x3a432: 0x6d966a20, 0x3a433: 0x6d966c20, + 0x3a434: 0x6d966e20, 0x3a435: 0x6d967020, 0x3a436: 0x6d967220, 0x3a437: 0x6d967420, + 0x3a438: 0x6d967620, 0x3a439: 0x6d967820, 0x3a43a: 0x6d967a20, 0x3a43b: 0x6d967c20, + 0x3a43c: 0x6d967e20, 0x3a43d: 0x6d968020, 0x3a43e: 0x6d968220, 0x3a43f: 0x6d968420, + // Block 0xe91, offset 0x3a440 + 0x3a440: 0x6d968620, 0x3a441: 0x6d968820, 0x3a442: 0x6d968a20, 0x3a443: 0x6d968c20, + 0x3a444: 0x6d968e20, 0x3a445: 0x6db95620, 0x3a446: 0x6db95820, 0x3a447: 0x6db95a20, + 0x3a448: 0x6db95c20, 0x3a449: 0x6db95e20, 0x3a44a: 0x6db96020, 0x3a44b: 0x6db96220, + 0x3a44c: 0x6db96420, 0x3a44d: 0x6db96620, 0x3a44e: 0x6db96820, 0x3a44f: 0x6db96a20, + 0x3a450: 0x6db96c20, 0x3a451: 0x6db96e20, 0x3a452: 0x6db97020, 0x3a453: 0x6db97220, + 0x3a454: 0x6db97420, 0x3a455: 0x6db97620, 0x3a456: 0x6db97820, 0x3a457: 0x6db97a20, + 0x3a458: 0x6db97c20, 0x3a459: 0x6db97e20, 0x3a45a: 0x6db98020, 0x3a45b: 0x6db98220, + 0x3a45c: 0x6db98420, 0x3a45d: 0x6db98620, 0x3a45e: 0x6db98820, 0x3a45f: 0x6db98a20, + 0x3a460: 0x6db98c20, 0x3a461: 0x6dd79220, 0x3a462: 0x6dd79420, 0x3a463: 0x6dd79620, + 0x3a464: 0x6dd79820, 0x3a465: 0x6dd79a20, 0x3a466: 0x6dd79c20, 0x3a467: 0x6dd79e20, + 0x3a468: 0x6dd7a020, 0x3a469: 0x6dd7a220, 0x3a46a: 0x6dd7a420, 0x3a46b: 0x6dd7a620, + 0x3a46c: 0x6dd7a820, 0x3a46d: 0x6dd7aa20, 0x3a46e: 0x6dd7ac20, 0x3a46f: 0x6dd7ae20, + 0x3a470: 0x6dd7b020, 0x3a471: 0x6dd7b220, 0x3a472: 0x6dd7b420, 0x3a473: 0x6dd7b620, + 0x3a474: 0x6dd7b820, 0x3a475: 0x6dd7ba20, 0x3a476: 0x6dd7bc20, 0x3a477: 0x6dd7be20, + 0x3a478: 0x6dd7c020, 0x3a479: 0x6dd7c220, 0x3a47a: 0x6dd7c420, 0x3a47b: 0x6dd7c620, + 0x3a47c: 0x6dd7c820, 0x3a47d: 0x6df01e20, 0x3a47e: 0x6df02020, 0x3a47f: 0x6df02220, + // Block 0xe92, offset 0x3a480 + 0x3a480: 0x6df02420, 0x3a481: 0x6df02620, 0x3a482: 0x6df02820, 0x3a483: 0x6df02a20, + 0x3a484: 0x6df02c20, 0x3a485: 0x6df02e20, 0x3a486: 0x6df03020, 0x3a487: 0x6df03220, + 0x3a488: 0x6df03420, 0x3a489: 0x6df03620, 0x3a48a: 0x6df03820, 0x3a48b: 0x6df03a20, + 0x3a48c: 0x6df03c20, 0x3a48d: 0x6df03e20, 0x3a48e: 0x6df04020, 0x3a48f: 0x6df04220, + 0x3a490: 0x6df04420, 0x3a491: 0x6df04620, 0x3a492: 0x6df04820, 0x3a493: 0x6df04a20, + 0x3a494: 0x6df04c20, 0x3a495: 0x6df04e20, 0x3a496: 0x6e044220, 0x3a497: 0x6e044420, + 0x3a498: 0x6e044620, 0x3a499: 0x6e044820, 0x3a49a: 0x6e044a20, 0x3a49b: 0x6e044c20, + 0x3a49c: 0x6e044e20, 0x3a49d: 0x6e045020, 0x3a49e: 0x6e045220, 0x3a49f: 0x6e045420, + 0x3a4a0: 0x6e045620, 0x3a4a1: 0x6e045820, 0x3a4a2: 0x6e045a20, 0x3a4a3: 0x6e045c20, + 0x3a4a4: 0x6e045e20, 0x3a4a5: 0x6e046020, 0x3a4a6: 0x6e156620, 0x3a4a7: 0x6e156820, + 0x3a4a8: 0x6e156a20, 0x3a4a9: 0x6e156c20, 0x3a4aa: 0x6e156e20, 0x3a4ab: 0x6e157020, + 0x3a4ac: 0x6e157220, 0x3a4ad: 0x6e157420, 0x3a4ae: 0x6e22f420, 0x3a4af: 0x6e22f620, + 0x3a4b0: 0x6e22f820, 0x3a4b1: 0x6e22fa20, 0x3a4b2: 0x6e22fc20, 0x3a4b3: 0x6e22fe20, + 0x3a4b4: 0x6e230020, 0x3a4b5: 0x6e230220, 0x3a4b6: 0x6e2d2820, 0x3a4b7: 0x6e2d2a20, + 0x3a4b8: 0x6e2d2c20, 0x3a4b9: 0x6e2d2e20, 0x3a4ba: 0x6e2d3020, 0x3a4bb: 0x6e2d3220, + 0x3a4bc: 0x6e2d3420, 0x3a4bd: 0x6e2d3620, 0x3a4be: 0x6e350a20, 0x3a4bf: 0x6e350c20, + // Block 0xe93, offset 0x3a4c0 + 0x3a4c0: 0x6e350e20, 0x3a4c1: 0x6e351020, 0x3a4c2: 0x6e351220, 0x3a4c3: 0x6e3aac20, + 0x3a4c4: 0x6e3aae20, 0x3a4c5: 0x6e3e7220, 0x3a4c6: 0x6e3e7420, 0x3a4c7: 0x6e413a20, + 0x3a4c8: 0x6e413c20, 0x3a4c9: 0x6e413e20, 0x3a4ca: 0x6e433a20, 0x3a4cb: 0x6e433c20, + 0x3a4cc: 0x6e433e20, 0x3a4cd: 0x6e45e220, 0x3a4ce: 0x6e45e420, 0x3a4cf: 0x6c890620, + 0x3a4d0: 0x6cb4c620, 0x3a4d1: 0x6cb4c820, 0x3a4d2: 0x6d40ca20, 0x3a4d3: 0x6d40cc20, + 0x3a4d4: 0x6d40ce20, 0x3a4d5: 0x6d6da620, 0x3a4d6: 0x6d6da820, 0x3a4d7: 0x6d6daa20, + 0x3a4d8: 0x6d969020, 0x3a4d9: 0x6d969220, 0x3a4da: 0x6db99220, 0x3a4db: 0x6db99420, + 0x3a4dc: 0x6db99620, 0x3a4dd: 0x6dd7cc20, 0x3a4de: 0x6e046420, 0x3a4df: 0x6e157820, + 0x3a4e0: 0x6e157a20, 0x3a4e1: 0x6e230420, 0x3a4e2: 0x6cb4ce20, 0x3a4e3: 0x6c890820, + 0x3a4e4: 0x6c890a20, 0x3a4e5: 0x6cb4d020, 0x3a4e6: 0x6ce47220, 0x3a4e7: 0x6ce47420, + 0x3a4e8: 0x6ce47620, 0x3a4e9: 0x6ce47820, 0x3a4ea: 0x6d12bc20, 0x3a4eb: 0x6d12be20, + 0x3a4ec: 0x6d40d020, 0x3a4ed: 0x6d6dac20, 0x3a4ee: 0x6d6dae20, 0x3a4ef: 0x6d6db020, + 0x3a4f0: 0x6d969420, 0x3a4f1: 0x6d969620, 0x3a4f2: 0x6db99a20, 0x3a4f3: 0x6db99c20, + 0x3a4f4: 0x6dd7d020, 0x3a4f5: 0x6dd7d220, 0x3a4f6: 0x6dd7d420, 0x3a4f7: 0x6dd7d620, + 0x3a4f8: 0x6e046820, 0x3a4f9: 0x6e157c20, 0x3a4fa: 0x6e157e20, 0x3a4fb: 0x6e3ab020, + 0x3a4fc: 0x6e456620, 0x3a4fd: 0x6c892a20, 0x3a4fe: 0x6c892c20, 0x3a4ff: 0x6c892e20, + // Block 0xe94, offset 0x3a500 + 0x3a500: 0x6c893020, 0x3a501: 0x6c893220, 0x3a502: 0x6cb50a20, 0x3a503: 0x6cb50c20, + 0x3a504: 0x6cb50e20, 0x3a505: 0x6cb51020, 0x3a506: 0x6cb51220, 0x3a507: 0x6cb51420, + 0x3a508: 0x6cb51620, 0x3a509: 0x6cb51820, 0x3a50a: 0x6ce4e420, 0x3a50b: 0x6ce4e620, + 0x3a50c: 0x6ce4e820, 0x3a50d: 0x6ce4ea20, 0x3a50e: 0x6ce4ec20, 0x3a50f: 0x6ce4ee20, + 0x3a510: 0x6ce4f020, 0x3a511: 0x6ce4f220, 0x3a512: 0x6ce4f420, 0x3a513: 0x6ce4f620, + 0x3a514: 0x6ce4f820, 0x3a515: 0x6ce4fa20, 0x3a516: 0x6ce4fc20, 0x3a517: 0x6ce4fe20, + 0x3a518: 0x6ce50020, 0x3a519: 0x6ce50220, 0x3a51a: 0x6ce50420, 0x3a51b: 0x6ce50620, + 0x3a51c: 0x6ce50820, 0x3a51d: 0x6ce50a20, 0x3a51e: 0x6ce50c20, 0x3a51f: 0x6ce50e20, + 0x3a520: 0x6ce51020, 0x3a521: 0x6ce51220, 0x3a522: 0x6ce51420, 0x3a523: 0x6ce51620, + 0x3a524: 0x6ce51820, 0x3a525: 0x6d135820, 0x3a526: 0x6d135a20, 0x3a527: 0x6d135c20, + 0x3a528: 0x6d135e20, 0x3a529: 0x6d136020, 0x3a52a: 0x6d136220, 0x3a52b: 0x6d136420, + 0x3a52c: 0x6d136620, 0x3a52d: 0x6d136820, 0x3a52e: 0x6d136a20, 0x3a52f: 0x6d136c20, + 0x3a530: 0x6d136e20, 0x3a531: 0x6d137020, 0x3a532: 0x6d137220, 0x3a533: 0x6d137420, + 0x3a534: 0x6d137620, 0x3a535: 0x6d137820, 0x3a536: 0x6d137a20, 0x3a537: 0x6d137c20, + 0x3a538: 0x6d137e20, 0x3a539: 0x6d138020, 0x3a53a: 0x6d138220, 0x3a53b: 0x6d138420, + 0x3a53c: 0x6d138620, 0x3a53d: 0x6d138820, 0x3a53e: 0x6d138a20, 0x3a53f: 0x6d138c20, + // Block 0xe95, offset 0x3a540 + 0x3a540: 0x6d138e20, 0x3a541: 0x6d139020, 0x3a542: 0x6d415a20, 0x3a543: 0x6d415c20, + 0x3a544: 0x6d415e20, 0x3a545: 0x6d416020, 0x3a546: 0x6d416220, 0x3a547: 0x6d416420, + 0x3a548: 0x6d416620, 0x3a549: 0x6d416820, 0x3a54a: 0x6d416a20, 0x3a54b: 0x6d416c20, + 0x3a54c: 0x6d416e20, 0x3a54d: 0x6d417020, 0x3a54e: 0x6d417220, 0x3a54f: 0x6d417420, + 0x3a550: 0x6d417620, 0x3a551: 0x6d417820, 0x3a552: 0x6d417a20, 0x3a553: 0x6d417c20, + 0x3a554: 0x6d417e20, 0x3a555: 0x6d418020, 0x3a556: 0x6d418220, 0x3a557: 0x6d418420, + 0x3a558: 0x6d418620, 0x3a559: 0x6d418820, 0x3a55a: 0x6d418a20, 0x3a55b: 0x6d418c20, + 0x3a55c: 0x6d418e20, 0x3a55d: 0x6d419020, 0x3a55e: 0x6d377020, 0x3a55f: 0x6d419220, + 0x3a560: 0x6d419420, 0x3a561: 0x6d419620, 0x3a562: 0x6d419820, 0x3a563: 0x6d419a20, + 0x3a564: 0x6d419c20, 0x3a565: 0x6d419e20, 0x3a566: 0x6d41a020, 0x3a567: 0x6d41a220, + 0x3a568: 0x6d41a420, 0x3a569: 0x6d41a620, 0x3a56a: 0x6d41a820, 0x3a56b: 0x6d41aa20, + 0x3a56c: 0x6d6e4a20, 0x3a56d: 0x6d6e4c20, 0x3a56e: 0x6d6e4e20, 0x3a56f: 0x6d6e5020, + 0x3a570: 0x6d6e5220, 0x3a571: 0x6d6e5420, 0x3a572: 0x6d6e5620, 0x3a573: 0x6d6e5820, + 0x3a574: 0x6d6e5a20, 0x3a575: 0x6d6e5c20, 0x3a576: 0x6d6e5e20, 0x3a577: 0x6d6e6020, + 0x3a578: 0x6d6e6220, 0x3a579: 0x6d6e6420, 0x3a57a: 0x6d6e6620, 0x3a57b: 0x6d6e6820, + 0x3a57c: 0x6d6e6a20, 0x3a57d: 0x6d6e6c20, 0x3a57e: 0x6d6e6e20, 0x3a57f: 0x6d6e7020, + // Block 0xe96, offset 0x3a580 + 0x3a580: 0x6d6e7220, 0x3a581: 0x6d6e7420, 0x3a582: 0x6d6e7620, 0x3a583: 0x6d6e7820, + 0x3a584: 0x6d6e7a20, 0x3a585: 0x6d6e7c20, 0x3a586: 0x6d6e7e20, 0x3a587: 0x6d6e8020, + 0x3a588: 0x6d6e8220, 0x3a589: 0x6d6e8420, 0x3a58a: 0x6d6e8620, 0x3a58b: 0x6d6e8820, + 0x3a58c: 0x6d6e8a20, 0x3a58d: 0x6d6e8c20, 0x3a58e: 0x6d6e8e20, 0x3a58f: 0x6d6e9020, + 0x3a590: 0x6d6e9220, 0x3a591: 0x6d6e9420, 0x3a592: 0x6d6e9620, 0x3a593: 0x6d6e9820, + 0x3a594: 0x6d6e9a20, 0x3a595: 0x6d6e9c20, 0x3a596: 0x6d6e9e20, 0x3a597: 0x6d6ea020, + 0x3a598: 0x6d6ea220, 0x3a599: 0x6d6ea420, 0x3a59a: 0x6d6ea620, 0x3a59b: 0x6d6ea820, + 0x3a59c: 0x6d6eaa20, 0x3a59d: 0x6d6eac20, 0x3a59e: 0x6d6eae20, 0x3a59f: 0x6d6eb020, + 0x3a5a0: 0x6d6eb220, 0x3a5a1: 0x6d6eb420, 0x3a5a2: 0x6d6eb620, 0x3a5a3: 0x6d6eb820, + 0x3a5a4: 0x6d6eba20, 0x3a5a5: 0x6d6ebc20, 0x3a5a6: 0x6d974620, 0x3a5a7: 0x6d974820, + 0x3a5a8: 0x6d974a20, 0x3a5a9: 0x6d974c20, 0x3a5aa: 0x6d974e20, 0x3a5ab: 0x6d975020, + 0x3a5ac: 0x6d975220, 0x3a5ad: 0x6d975420, 0x3a5ae: 0x6d975620, 0x3a5af: 0x6d975820, + 0x3a5b0: 0x6d975a20, 0x3a5b1: 0x6d975c20, 0x3a5b2: 0x6d975e20, 0x3a5b3: 0x6d976020, + 0x3a5b4: 0x6d976220, 0x3a5b5: 0x6d976420, 0x3a5b6: 0x6d976620, 0x3a5b7: 0x6d976820, + 0x3a5b8: 0x6d976a20, 0x3a5b9: 0x6d976c20, 0x3a5ba: 0x6d976e20, 0x3a5bb: 0x6d977020, + 0x3a5bc: 0x6d977220, 0x3a5bd: 0x6d977420, 0x3a5be: 0x6d977620, 0x3a5bf: 0x6d977820, + // Block 0xe97, offset 0x3a5c0 + 0x3a5c0: 0x6d977a20, 0x3a5c1: 0x6d977c20, 0x3a5c2: 0x6d977e20, 0x3a5c3: 0x6d978020, + 0x3a5c4: 0x6d978220, 0x3a5c5: 0x6d978420, 0x3a5c6: 0x6d978620, 0x3a5c7: 0x6d978820, + 0x3a5c8: 0x6d978a20, 0x3a5c9: 0x6d978c20, 0x3a5ca: 0x6d978e20, 0x3a5cb: 0x6d979020, + 0x3a5cc: 0x6d979220, 0x3a5cd: 0x6d979420, 0x3a5ce: 0x6d979620, 0x3a5cf: 0x6d979820, + 0x3a5d0: 0x6d979a20, 0x3a5d1: 0x6d979c20, 0x3a5d2: 0x6d979e20, 0x3a5d3: 0x6d97a020, + 0x3a5d4: 0x6d97a220, 0x3a5d5: 0x6d97a420, 0x3a5d6: 0x6d97a620, 0x3a5d7: 0x6d97a820, + 0x3a5d8: 0x6d97aa20, 0x3a5d9: 0x6d97ac20, 0x3a5da: 0x6d97ae20, 0x3a5db: 0x6d97b020, + 0x3a5dc: 0x6d97b220, 0x3a5dd: 0x6d97b420, 0x3a5de: 0x6d97b620, 0x3a5df: 0x6d97b820, + 0x3a5e0: 0x6d97ba20, 0x3a5e1: 0x6d97bc20, 0x3a5e2: 0x6d97be20, 0x3a5e3: 0x6d97c020, + 0x3a5e4: 0x6d97c220, 0x3a5e5: 0x6d97c420, 0x3a5e6: 0x6d97c620, 0x3a5e7: 0x6d97c820, + 0x3a5e8: 0x6d97ca20, 0x3a5e9: 0x6d97cc20, 0x3a5ea: 0x6d97ce20, 0x3a5eb: 0x6d97d020, + 0x3a5ec: 0x6d97d220, 0x3a5ed: 0x6d97d420, 0x3a5ee: 0x6d97d620, 0x3a5ef: 0x6dba2c20, + 0x3a5f0: 0x6dba2e20, 0x3a5f1: 0x6dba3020, 0x3a5f2: 0x6dba3220, 0x3a5f3: 0x6dba3420, + 0x3a5f4: 0x6dba3620, 0x3a5f5: 0x6dba3820, 0x3a5f6: 0x6dba3a20, 0x3a5f7: 0x6dba3c20, + 0x3a5f8: 0x6dba3e20, 0x3a5f9: 0x6dba4020, 0x3a5fa: 0x6dba4220, 0x3a5fb: 0x6dba4420, + 0x3a5fc: 0x6dba4620, 0x3a5fd: 0x6dba4820, 0x3a5fe: 0x6dba4a20, 0x3a5ff: 0x6dba4c20, + // Block 0xe98, offset 0x3a600 + 0x3a600: 0x6dba4e20, 0x3a601: 0x6dba5020, 0x3a602: 0x6dba5220, 0x3a603: 0x6dba5420, + 0x3a604: 0x6dba5620, 0x3a605: 0x6dba5820, 0x3a606: 0x6dba5a20, 0x3a607: 0x6dba5c20, + 0x3a608: 0x6dba5e20, 0x3a609: 0x6dba6020, 0x3a60a: 0x6dba6220, 0x3a60b: 0x6dba6420, + 0x3a60c: 0x6dba6620, 0x3a60d: 0x6dba6820, 0x3a60e: 0x6dba6a20, 0x3a60f: 0x6dba6c20, + 0x3a610: 0x6dba6e20, 0x3a611: 0x6dba7020, 0x3a612: 0x6dba7220, 0x3a613: 0x6dba7420, + 0x3a614: 0x6dba7620, 0x3a615: 0x6dba7820, 0x3a616: 0x6dba7a20, 0x3a617: 0x6dba7c20, + 0x3a618: 0x6dba7e20, 0x3a619: 0x6dba8020, 0x3a61a: 0x6dba8220, 0x3a61b: 0x6dba8420, + 0x3a61c: 0x6dba8620, 0x3a61d: 0x6dba8820, 0x3a61e: 0x6dba8a20, 0x3a61f: 0x6dba8c20, + 0x3a620: 0x6dba8e20, 0x3a621: 0x6dba9020, 0x3a622: 0x6dba9220, 0x3a623: 0x6dba9420, + 0x3a624: 0x6dba9620, 0x3a625: 0x6dba9820, 0x3a626: 0x6dba9a20, 0x3a627: 0x6dba9c20, + 0x3a628: 0x6dba9e20, 0x3a629: 0x6dbaa020, 0x3a62a: 0x6dbaa220, 0x3a62b: 0x6dbaa420, + 0x3a62c: 0x6dbaa620, 0x3a62d: 0x6dbaa820, 0x3a62e: 0x6dbaaa20, 0x3a62f: 0x6dbaac20, + 0x3a630: 0x6dbaae20, 0x3a631: 0x6dbab020, 0x3a632: 0x6dbab220, 0x3a633: 0x6dbab420, + 0x3a634: 0x6dbab620, 0x3a635: 0x6dbab820, 0x3a636: 0x6dbaba20, 0x3a637: 0x6dbabc20, + 0x3a638: 0x6dbabe20, 0x3a639: 0x6dbac020, 0x3a63a: 0x6dbac220, 0x3a63b: 0x6dbac420, + 0x3a63c: 0x6dbac620, 0x3a63d: 0x6dbac820, 0x3a63e: 0x6dbaca20, 0x3a63f: 0x6dbacc20, + // Block 0xe99, offset 0x3a640 + 0x3a640: 0x6dbace20, 0x3a641: 0x6dbad020, 0x3a642: 0x6dbad220, 0x3a643: 0x6dbad420, + 0x3a644: 0x6dbad620, 0x3a645: 0x6dbad820, 0x3a646: 0x6dbada20, 0x3a647: 0x6dd85a20, + 0x3a648: 0x6dd85c20, 0x3a649: 0x6dd85e20, 0x3a64a: 0x6dd86020, 0x3a64b: 0x6dd86220, + 0x3a64c: 0x6dd86420, 0x3a64d: 0x6dd86620, 0x3a64e: 0x6dd86820, 0x3a64f: 0x6dd86a20, + 0x3a650: 0x6dd86c20, 0x3a651: 0x6dd86e20, 0x3a652: 0x6dd87020, 0x3a653: 0x6dd87220, + 0x3a654: 0x6dd87420, 0x3a655: 0x6dd87620, 0x3a656: 0x6dd87820, 0x3a657: 0x6dd87a20, + 0x3a658: 0x6dd87c20, 0x3a659: 0x6dd87e20, 0x3a65a: 0x6dd88020, 0x3a65b: 0x6dd88220, + 0x3a65c: 0x6dd88420, 0x3a65d: 0x6dd88620, 0x3a65e: 0x6dd88820, 0x3a65f: 0x6dd88a20, + 0x3a660: 0x6dd88c20, 0x3a661: 0x6dd88e20, 0x3a662: 0x6dd89020, 0x3a663: 0x6dd89220, + 0x3a664: 0x6dd89420, 0x3a665: 0x6dd89620, 0x3a666: 0x6dd89820, 0x3a667: 0x6dd89a20, + 0x3a668: 0x6dd89c20, 0x3a669: 0x6dd89e20, 0x3a66a: 0x6dd8a020, 0x3a66b: 0x6dd8a220, + 0x3a66c: 0x6dd8a420, 0x3a66d: 0x6dd8a620, 0x3a66e: 0x6dd8a820, 0x3a66f: 0x6dd8aa20, + 0x3a670: 0x6dd8ac20, 0x3a671: 0x6dd8ae20, 0x3a672: 0x6dd8b020, 0x3a673: 0x6dd8b220, + 0x3a674: 0x6dd8b420, 0x3a675: 0x6dd8b620, 0x3a676: 0x6dd8b820, 0x3a677: 0x6dd8ba20, + 0x3a678: 0x6dd8bc20, 0x3a679: 0x6dd8be20, 0x3a67a: 0x6dd8c020, 0x3a67b: 0x6dd8c220, + 0x3a67c: 0x6dd8c420, 0x3a67d: 0x6dd8c620, 0x3a67e: 0x6dd8c820, 0x3a67f: 0x6dd8ca20, + // Block 0xe9a, offset 0x3a680 + 0x3a680: 0x6dd8cc20, 0x3a681: 0x6dd8ce20, 0x3a682: 0x6dd8d020, 0x3a683: 0x6dd8d220, + 0x3a684: 0x6dd8d420, 0x3a685: 0x6dd8d620, 0x3a686: 0x6dd8d820, 0x3a687: 0x6dd8da20, + 0x3a688: 0x6dd8dc20, 0x3a689: 0x6dd8de20, 0x3a68a: 0x6dd8e020, 0x3a68b: 0x6dd8e220, + 0x3a68c: 0x6dd8e420, 0x3a68d: 0x6dd8e620, 0x3a68e: 0x6dd8e820, 0x3a68f: 0x6df0d820, + 0x3a690: 0x6df0da20, 0x3a691: 0x6df0dc20, 0x3a692: 0x6df0de20, 0x3a693: 0x6df0e020, + 0x3a694: 0x6df0e220, 0x3a695: 0x6df0e420, 0x3a696: 0x6df0e620, 0x3a697: 0x6df0e820, + 0x3a698: 0x6df0ea20, 0x3a699: 0x6df0ec20, 0x3a69a: 0x6df0ee20, 0x3a69b: 0x6df0f020, + 0x3a69c: 0x6df0f220, 0x3a69d: 0x6df0f420, 0x3a69e: 0x6df0f620, 0x3a69f: 0x6df0f820, + 0x3a6a0: 0x6df0fa20, 0x3a6a1: 0x6df0fc20, 0x3a6a2: 0x6df0fe20, 0x3a6a3: 0x6df10020, + 0x3a6a4: 0x6df10220, 0x3a6a5: 0x6df10420, 0x3a6a6: 0x6df10620, 0x3a6a7: 0x6df10820, + 0x3a6a8: 0x6df10a20, 0x3a6a9: 0x6df10c20, 0x3a6aa: 0x6df10e20, 0x3a6ab: 0x6df11020, + 0x3a6ac: 0x6df11220, 0x3a6ad: 0x6df11420, 0x3a6ae: 0x6df11620, 0x3a6af: 0x6df11820, + 0x3a6b0: 0x6df11a20, 0x3a6b1: 0x6df11c20, 0x3a6b2: 0x6df11e20, 0x3a6b3: 0x6df12020, + 0x3a6b4: 0x6df12220, 0x3a6b5: 0x6df12420, 0x3a6b6: 0x6df12620, 0x3a6b7: 0x6df12820, + 0x3a6b8: 0x6df12a20, 0x3a6b9: 0x6df12c20, 0x3a6ba: 0x6df12e20, 0x3a6bb: 0x6df13020, + 0x3a6bc: 0x6df13220, 0x3a6bd: 0x6df13420, 0x3a6be: 0x6df13620, 0x3a6bf: 0x6df13820, + // Block 0xe9b, offset 0x3a6c0 + 0x3a6c0: 0x6df13a20, 0x3a6c1: 0x6df13c20, 0x3a6c2: 0x6df13e20, 0x3a6c3: 0x6df14020, + 0x3a6c4: 0x6df14220, 0x3a6c5: 0x6df14420, 0x3a6c6: 0x6df14620, 0x3a6c7: 0x6df14820, + 0x3a6c8: 0x6df14a20, 0x3a6c9: 0x6df14c20, 0x3a6ca: 0x6df14e20, 0x3a6cb: 0x6df15020, + 0x3a6cc: 0x6df15220, 0x3a6cd: 0x6e04e420, 0x3a6ce: 0x6e04e620, 0x3a6cf: 0x6e04e820, + 0x3a6d0: 0x6e04ea20, 0x3a6d1: 0x6e04ec20, 0x3a6d2: 0x6e04ee20, 0x3a6d3: 0x6e04f020, + 0x3a6d4: 0x6e04f220, 0x3a6d5: 0x6e15c420, 0x3a6d6: 0x6e04f420, 0x3a6d7: 0x6e04f620, + 0x3a6d8: 0x6e04f820, 0x3a6d9: 0x6e04fa20, 0x3a6da: 0x6e04fc20, 0x3a6db: 0x6e04fe20, + 0x3a6dc: 0x6e050020, 0x3a6dd: 0x6e050220, 0x3a6de: 0x6e050420, 0x3a6df: 0x6e050620, + 0x3a6e0: 0x6e050820, 0x3a6e1: 0x6e050a20, 0x3a6e2: 0x6e050c20, 0x3a6e3: 0x6e050e20, + 0x3a6e4: 0x6e051020, 0x3a6e5: 0x6e051220, 0x3a6e6: 0x6e051420, 0x3a6e7: 0x6e051620, + 0x3a6e8: 0x6e051820, 0x3a6e9: 0x6e051a20, 0x3a6ea: 0x6e051c20, 0x3a6eb: 0x6e051e20, + 0x3a6ec: 0x6e052020, 0x3a6ed: 0x6e052220, 0x3a6ee: 0x6e052420, 0x3a6ef: 0x6e052620, + 0x3a6f0: 0x6e052820, 0x3a6f1: 0x6e052a20, 0x3a6f2: 0x6e052c20, 0x3a6f3: 0x6e052e20, + 0x3a6f4: 0x6e053020, 0x3a6f5: 0x6e053220, 0x3a6f6: 0x6e053420, 0x3a6f7: 0x6e053620, + 0x3a6f8: 0x6e053820, 0x3a6f9: 0x6e053a20, 0x3a6fa: 0x6e053c20, 0x3a6fb: 0x6e053e20, + 0x3a6fc: 0x6e054020, 0x3a6fd: 0x6e054220, 0x3a6fe: 0x6e054420, 0x3a6ff: 0x6e054620, + // Block 0xe9c, offset 0x3a700 + 0x3a700: 0x6e054820, 0x3a701: 0x6e054a20, 0x3a702: 0x6e054c20, 0x3a703: 0x6e054e20, + 0x3a704: 0x6e055020, 0x3a705: 0x6e055220, 0x3a706: 0x6e055420, 0x3a707: 0x6e055620, + 0x3a708: 0x6e055820, 0x3a709: 0x6e055a20, 0x3a70a: 0x6e055c20, 0x3a70b: 0x6e055e20, + 0x3a70c: 0x6e056020, 0x3a70d: 0x6e056220, 0x3a70e: 0x6e056420, 0x3a70f: 0x6e056620, + 0x3a710: 0x6e056820, 0x3a711: 0x6e056a20, 0x3a712: 0x6e056c20, 0x3a713: 0x6e056e20, + 0x3a714: 0x6e057020, 0x3a715: 0x6e15c620, 0x3a716: 0x6e15c820, 0x3a717: 0x6e15ca20, + 0x3a718: 0x6e15cc20, 0x3a719: 0x6e15ce20, 0x3a71a: 0x6e15d020, 0x3a71b: 0x6e15d220, + 0x3a71c: 0x6e15d420, 0x3a71d: 0x6e15d620, 0x3a71e: 0x6e15d820, 0x3a71f: 0x6e15da20, + 0x3a720: 0x6e15dc20, 0x3a721: 0x6e15de20, 0x3a722: 0x6e15e020, 0x3a723: 0x6e15e220, + 0x3a724: 0x6e15e420, 0x3a725: 0x6e15e620, 0x3a726: 0x6e15e820, 0x3a727: 0x6e15ea20, + 0x3a728: 0x6e15ec20, 0x3a729: 0x6e15ee20, 0x3a72a: 0x6e15f020, 0x3a72b: 0x6e15f220, + 0x3a72c: 0x6e15f420, 0x3a72d: 0x6e15f620, 0x3a72e: 0x6e15f820, 0x3a72f: 0x6e15fa20, + 0x3a730: 0x6e15fc20, 0x3a731: 0x6e15fe20, 0x3a732: 0x6e160020, 0x3a733: 0x6e160220, + 0x3a734: 0x6e160420, 0x3a735: 0x6e160620, 0x3a736: 0x6e160820, 0x3a737: 0x6e160a20, + 0x3a738: 0x6e160c20, 0x3a739: 0x6e160e20, 0x3a73a: 0x6e161020, 0x3a73b: 0x6e161220, + 0x3a73c: 0x6e161420, 0x3a73d: 0x6e161620, 0x3a73e: 0x6e161820, 0x3a73f: 0x6e161a20, + // Block 0xe9d, offset 0x3a740 + 0x3a740: 0x6e161c20, 0x3a741: 0x6e161e20, 0x3a742: 0x6e162020, 0x3a743: 0x6e162220, + 0x3a744: 0x6e162420, 0x3a745: 0x6e162620, 0x3a746: 0x6e162820, 0x3a747: 0x6e162a20, + 0x3a748: 0x6e162c20, 0x3a749: 0x6e162e20, 0x3a74a: 0x6e163020, 0x3a74b: 0x6e163220, + 0x3a74c: 0x6e163420, 0x3a74d: 0x6e163620, 0x3a74e: 0x6e163820, 0x3a74f: 0x6e163a20, + 0x3a750: 0x6e163c20, 0x3a751: 0x6e163e20, 0x3a752: 0x6e233e20, 0x3a753: 0x6e234020, + 0x3a754: 0x6e234220, 0x3a755: 0x6e234420, 0x3a756: 0x6e234620, 0x3a757: 0x6e234820, + 0x3a758: 0x6e234a20, 0x3a759: 0x6e234c20, 0x3a75a: 0x6e234e20, 0x3a75b: 0x6e235020, + 0x3a75c: 0x6e235220, 0x3a75d: 0x6e235420, 0x3a75e: 0x6e235620, 0x3a75f: 0x6e235820, + 0x3a760: 0x6e235a20, 0x3a761: 0x6e235c20, 0x3a762: 0x6e235e20, 0x3a763: 0x6e236020, + 0x3a764: 0x6e236220, 0x3a765: 0x6e236420, 0x3a766: 0x6e236620, 0x3a767: 0x6e236820, + 0x3a768: 0x6e236a20, 0x3a769: 0x6e236c20, 0x3a76a: 0x6e236e20, 0x3a76b: 0x6e237020, + 0x3a76c: 0x6e237220, 0x3a76d: 0x6e237420, 0x3a76e: 0x6e237620, 0x3a76f: 0x6e237820, + 0x3a770: 0x6e237a20, 0x3a771: 0x6e237c20, 0x3a772: 0x6e237e20, 0x3a773: 0x6e238020, + 0x3a774: 0x6e238220, 0x3a775: 0x6e238420, 0x3a776: 0x6e238620, 0x3a777: 0x6e238820, + 0x3a778: 0x6e2d6a20, 0x3a779: 0x6e2d6c20, 0x3a77a: 0x6e2d6e20, 0x3a77b: 0x6e2d7020, + 0x3a77c: 0x6e2d7220, 0x3a77d: 0x6e2d7420, 0x3a77e: 0x6e2d7620, 0x3a77f: 0x6e2d7820, + // Block 0xe9e, offset 0x3a780 + 0x3a780: 0x6e2d7a20, 0x3a781: 0x6e2d7c20, 0x3a782: 0x6e2d7e20, 0x3a783: 0x6e2d8020, + 0x3a784: 0x6e2d8220, 0x3a785: 0x6e2d8420, 0x3a786: 0x6e2d8620, 0x3a787: 0x6e2d8820, + 0x3a788: 0x6e2d8a20, 0x3a789: 0x6e2d8c20, 0x3a78a: 0x6e2d8e20, 0x3a78b: 0x6e2d9020, + 0x3a78c: 0x6e2d9220, 0x3a78d: 0x6e2d9420, 0x3a78e: 0x6e2d9620, 0x3a78f: 0x6e2d9820, + 0x3a790: 0x6e2d9a20, 0x3a791: 0x6e2d9c20, 0x3a792: 0x6e2d9e20, 0x3a793: 0x6e2da020, + 0x3a794: 0x6e2da220, 0x3a795: 0x6e2da420, 0x3a796: 0x6e2da620, 0x3a797: 0x6e2da820, + 0x3a798: 0x6e2daa20, 0x3a799: 0x6e2dac20, 0x3a79a: 0x6e2dae20, 0x3a79b: 0x6e2db020, + 0x3a79c: 0x6e2db220, 0x3a79d: 0x6e352620, 0x3a79e: 0x6e352820, 0x3a79f: 0x6e352a20, + 0x3a7a0: 0x6e352c20, 0x3a7a1: 0x6e352e20, 0x3a7a2: 0x6e353020, 0x3a7a3: 0x6e353220, + 0x3a7a4: 0x6e353420, 0x3a7a5: 0x6e353620, 0x3a7a6: 0x6e353820, 0x3a7a7: 0x6e353a20, + 0x3a7a8: 0x6e353c20, 0x3a7a9: 0x6e353e20, 0x3a7aa: 0x6e354020, 0x3a7ab: 0x6e354220, + 0x3a7ac: 0x6e354420, 0x3a7ad: 0x6e354620, 0x3a7ae: 0x6e354820, 0x3a7af: 0x6e354a20, + 0x3a7b0: 0x6e354c20, 0x3a7b1: 0x6e354e20, 0x3a7b2: 0x6e355020, 0x3a7b3: 0x6e355220, + 0x3a7b4: 0x6e355420, 0x3a7b5: 0x6e355620, 0x3a7b6: 0x6e355820, 0x3a7b7: 0x6e355a20, + 0x3a7b8: 0x6e355c20, 0x3a7b9: 0x6e355e20, 0x3a7ba: 0x6e3ac220, 0x3a7bb: 0x6e3ac420, + 0x3a7bc: 0x6e3ac620, 0x3a7bd: 0x6e3ac820, 0x3a7be: 0x6e3aca20, 0x3a7bf: 0x6e3acc20, + // Block 0xe9f, offset 0x3a7c0 + 0x3a7c0: 0x6e3ace20, 0x3a7c1: 0x6e3ad020, 0x3a7c2: 0x6e3ad220, 0x3a7c3: 0x6e3ad420, + 0x3a7c4: 0x6e3ad620, 0x3a7c5: 0x6e3ad820, 0x3a7c6: 0x6e3ada20, 0x3a7c7: 0x6e3adc20, + 0x3a7c8: 0x6e3ade20, 0x3a7c9: 0x6e3e8420, 0x3a7ca: 0x6e3e8620, 0x3a7cb: 0x6e3e8820, + 0x3a7cc: 0x6e3e8a20, 0x3a7cd: 0x6e3e8c20, 0x3a7ce: 0x6e3e8e20, 0x3a7cf: 0x6e3e9020, + 0x3a7d0: 0x6e3e9220, 0x3a7d1: 0x6e3e9420, 0x3a7d2: 0x6e3e9620, 0x3a7d3: 0x6e3e9820, + 0x3a7d4: 0x6e3e9a20, 0x3a7d5: 0x6e3e9c20, 0x3a7d6: 0x6e3e9e20, 0x3a7d7: 0x6e3ea020, + 0x3a7d8: 0x6e3ea220, 0x3a7d9: 0x6e3ea420, 0x3a7da: 0x6e3ea620, 0x3a7db: 0x6e3ea820, + 0x3a7dc: 0x6e3eaa20, 0x3a7dd: 0x6e3eac20, 0x3a7de: 0x6e414820, 0x3a7df: 0x6e414a20, + 0x3a7e0: 0x6e414c20, 0x3a7e1: 0x6e414e20, 0x3a7e2: 0x6e415020, 0x3a7e3: 0x6e415220, + 0x3a7e4: 0x6e415420, 0x3a7e5: 0x6e415620, 0x3a7e6: 0x6e415820, 0x3a7e7: 0x6e415a20, + 0x3a7e8: 0x6e415c20, 0x3a7e9: 0x6e434820, 0x3a7ea: 0x6e434a20, 0x3a7eb: 0x6e434c20, + 0x3a7ec: 0x6e434e20, 0x3a7ed: 0x6e435020, 0x3a7ee: 0x6e435220, 0x3a7ef: 0x6e435420, + 0x3a7f0: 0x6e435620, 0x3a7f1: 0x6e3ae020, 0x3a7f2: 0x6e449820, 0x3a7f3: 0x6e449a20, + 0x3a7f4: 0x6e449c20, 0x3a7f5: 0x6e449e20, 0x3a7f6: 0x6e44a020, 0x3a7f7: 0x6e456820, + 0x3a7f8: 0x6e456a20, 0x3a7f9: 0x6e456c20, 0x3a7fa: 0x6e45e620, 0x3a7fb: 0x6e464020, + 0x3a7fc: 0x6e46d020, 0x3a7fd: 0x6e471620, 0x3a7fe: 0x6c41f620, 0x3a7ff: 0x6c41f820, + // Block 0xea0, offset 0x3a800 + 0x3a800: 0x6c629620, 0x3a801: 0x6c629820, 0x3a802: 0x6c629a20, 0x3a803: 0x6c897220, + 0x3a804: 0x6c897420, 0x3a805: 0x6c897620, 0x3a806: 0x6c897820, 0x3a807: 0x6ce56620, + 0x3a808: 0x6ce56820, 0x3a809: 0x6d13dc20, 0x3a80a: 0x6d13de20, 0x3a80b: 0x6d13e020, + 0x3a80c: 0x6d13e220, 0x3a80d: 0x6d6ef220, 0x3a80e: 0x6d41ec20, 0x3a80f: 0x6d6ef420, + 0x3a810: 0x6d980420, 0x3a811: 0x6dbb0620, 0x3a812: 0x6d980620, 0x3a813: 0x6dbb0820, + 0x3a814: 0x6dbb0a20, 0x3a815: 0x6dd90820, 0x3a816: 0x6dd90a20, 0x3a817: 0x6c280020, + 0x3a818: 0x6c280220, 0x3a819: 0x6c62aa20, 0x3a81a: 0x6cb58e20, 0x3a81b: 0x6cb59020, + 0x3a81c: 0x6cb59220, 0x3a81d: 0x6cb59420, 0x3a81e: 0x6cb59620, 0x3a81f: 0x6cb59820, + 0x3a820: 0x6cb59a20, 0x3a821: 0x6cb59c20, 0x3a822: 0x6cb59e20, 0x3a823: 0x6cb5a020, + 0x3a824: 0x6cb5a220, 0x3a825: 0x6cb5a420, 0x3a826: 0x6ce57420, 0x3a827: 0x6ce57620, + 0x3a828: 0x6ce57820, 0x3a829: 0x6ce57a20, 0x3a82a: 0x6ce57c20, 0x3a82b: 0x6ce57e20, + 0x3a82c: 0x6ce58020, 0x3a82d: 0x6ce58220, 0x3a82e: 0x6ce58420, 0x3a82f: 0x6ce58620, + 0x3a830: 0x6ce58820, 0x3a831: 0x6ce58a20, 0x3a832: 0x6d13fa20, 0x3a833: 0x6d13fc20, + 0x3a834: 0x6d13fe20, 0x3a835: 0x6d140020, 0x3a836: 0x6d140220, 0x3a837: 0x6d140420, + 0x3a838: 0x6d140620, 0x3a839: 0x6d140820, 0x3a83a: 0x6d140a20, 0x3a83b: 0x6d140c20, + 0x3a83c: 0x6d140e20, 0x3a83d: 0x6d141020, 0x3a83e: 0x6d141220, 0x3a83f: 0x6d141420, + // Block 0xea1, offset 0x3a840 + 0x3a840: 0x6d41fe20, 0x3a841: 0x6d420020, 0x3a842: 0x6d420220, 0x3a843: 0x6d420420, + 0x3a844: 0x6d420620, 0x3a845: 0x6d420820, 0x3a846: 0x6d420a20, 0x3a847: 0x6d6f0220, + 0x3a848: 0x6d6f0420, 0x3a849: 0x6d6f0620, 0x3a84a: 0x6d6f0820, 0x3a84b: 0x6d6f0a20, + 0x3a84c: 0x6d6f0c20, 0x3a84d: 0x6d6f0e20, 0x3a84e: 0x6d6f1020, 0x3a84f: 0x6d6f1220, + 0x3a850: 0x6d6f1420, 0x3a851: 0x6d6f1620, 0x3a852: 0x6d6f1820, 0x3a853: 0x6d980e20, + 0x3a854: 0x6d981020, 0x3a855: 0x6d981220, 0x3a856: 0x6d981420, 0x3a857: 0x6d981620, + 0x3a858: 0x6d981820, 0x3a859: 0x6d981a20, 0x3a85a: 0x6d981c20, 0x3a85b: 0x6d981e20, + 0x3a85c: 0x6d982020, 0x3a85d: 0x6d982220, 0x3a85e: 0x6dbb1620, 0x3a85f: 0x6dbb1820, + 0x3a860: 0x6dbb1a20, 0x3a861: 0x6dbb1c20, 0x3a862: 0x6dbb1e20, 0x3a863: 0x6dbb2020, + 0x3a864: 0x6dbb2220, 0x3a865: 0x6dd91020, 0x3a866: 0x6dd91220, 0x3a867: 0x6dd91420, + 0x3a868: 0x6dd91620, 0x3a869: 0x6dd91820, 0x3a86a: 0x6dd91a20, 0x3a86b: 0x6dd91c20, + 0x3a86c: 0x6dd91e20, 0x3a86d: 0x6df16820, 0x3a86e: 0x6df16a20, 0x3a86f: 0x6df16c20, + 0x3a870: 0x6df16e20, 0x3a871: 0x6df17020, 0x3a872: 0x6df17220, 0x3a873: 0x6e059620, + 0x3a874: 0x6e059820, 0x3a875: 0x6e059a20, 0x3a876: 0x6e059c20, 0x3a877: 0x6e059e20, + 0x3a878: 0x6e165020, 0x3a879: 0x6e165220, 0x3a87a: 0x6e165420, 0x3a87b: 0x6e239a20, + 0x3a87c: 0x6e239c20, 0x3a87d: 0x6e239e20, 0x3a87e: 0x6e23a020, 0x3a87f: 0x6e23a220, + // Block 0xea2, offset 0x3a880 + 0x3a880: 0x6e2dba20, 0x3a881: 0x6e2dbc20, 0x3a882: 0x6e356820, 0x3a883: 0x6e356a20, + 0x3a884: 0x6e3eb020, 0x3a885: 0x6e435a20, 0x3a886: 0x6e44a220, 0x3a887: 0x6c420420, + 0x3a888: 0x6c420620, 0x3a889: 0x6c62b020, 0x3a88a: 0x6c898a20, 0x3a88b: 0x6c898c20, + 0x3a88c: 0x6c898e20, 0x3a88d: 0x6c899020, 0x3a88e: 0x6c899220, 0x3a88f: 0x6c899420, + 0x3a890: 0x6cb5b420, 0x3a891: 0x6cb5b620, 0x3a892: 0x6cb5b820, 0x3a893: 0x6cb5ba20, + 0x3a894: 0x6cb5bc20, 0x3a895: 0x6cb5be20, 0x3a896: 0x6cb5c020, 0x3a897: 0x6ce5ae20, + 0x3a898: 0x6ce5b020, 0x3a899: 0x6ce5b220, 0x3a89a: 0x6ce5b420, 0x3a89b: 0x6ce5b620, + 0x3a89c: 0x6ce5b820, 0x3a89d: 0x6ce5ba20, 0x3a89e: 0x6ce5bc20, 0x3a89f: 0x6ce5be20, + 0x3a8a0: 0x6ce5c020, 0x3a8a1: 0x6ce5c220, 0x3a8a2: 0x6ce5c420, 0x3a8a3: 0x6ce5c620, + 0x3a8a4: 0x6ce5c820, 0x3a8a5: 0x6ce5ca20, 0x3a8a6: 0x6ce5cc20, 0x3a8a7: 0x6ce5ce20, + 0x3a8a8: 0x6ce5d020, 0x3a8a9: 0x6ce5d220, 0x3a8aa: 0x6ce5d420, 0x3a8ab: 0x6ce5d620, + 0x3a8ac: 0x6ce5d820, 0x3a8ad: 0x6ce5da20, 0x3a8ae: 0x6ce5dc20, 0x3a8af: 0x6ce5de20, + 0x3a8b0: 0x6ce5e020, 0x3a8b1: 0x6ce5e220, 0x3a8b2: 0x6ce5e420, 0x3a8b3: 0x6d143020, + 0x3a8b4: 0x6d143220, 0x3a8b5: 0x6d143420, 0x3a8b6: 0x6d143620, 0x3a8b7: 0x6d143820, + 0x3a8b8: 0x6d143a20, 0x3a8b9: 0x6d143c20, 0x3a8ba: 0x6d143e20, 0x3a8bb: 0x6d144020, + 0x3a8bc: 0x6d144220, 0x3a8bd: 0x6d144420, 0x3a8be: 0x6d144620, 0x3a8bf: 0x6d144820, + // Block 0xea3, offset 0x3a8c0 + 0x3a8c0: 0x6d144a20, 0x3a8c1: 0x6d144c20, 0x3a8c2: 0x6d144e20, 0x3a8c3: 0x6d145020, + 0x3a8c4: 0x6d145220, 0x3a8c5: 0x6d145420, 0x3a8c6: 0x6d145620, 0x3a8c7: 0x6d145820, + 0x3a8c8: 0x6d145a20, 0x3a8c9: 0x6d145c20, 0x3a8ca: 0x6d145e20, 0x3a8cb: 0x6d146020, + 0x3a8cc: 0x6d146220, 0x3a8cd: 0x6d422e20, 0x3a8ce: 0x6d423020, 0x3a8cf: 0x6d423220, + 0x3a8d0: 0x6d423420, 0x3a8d1: 0x6d423620, 0x3a8d2: 0x6d423820, 0x3a8d3: 0x6d423a20, + 0x3a8d4: 0x6d423c20, 0x3a8d5: 0x6d423e20, 0x3a8d6: 0x6d424020, 0x3a8d7: 0x6d424220, + 0x3a8d8: 0x6d424420, 0x3a8d9: 0x6d424620, 0x3a8da: 0x6d424820, 0x3a8db: 0x6d424a20, + 0x3a8dc: 0x6d424c20, 0x3a8dd: 0x6d424e20, 0x3a8de: 0x6d425020, 0x3a8df: 0x6d425220, + 0x3a8e0: 0x6d425420, 0x3a8e1: 0x6d425620, 0x3a8e2: 0x6d425820, 0x3a8e3: 0x6d425a20, + 0x3a8e4: 0x6d425c20, 0x3a8e5: 0x6d425e20, 0x3a8e6: 0x6d426020, 0x3a8e7: 0x6d6f3820, + 0x3a8e8: 0x6d6f3a20, 0x3a8e9: 0x6d6f3c20, 0x3a8ea: 0x6d6f3e20, 0x3a8eb: 0x6d6f4020, + 0x3a8ec: 0x6d6f4220, 0x3a8ed: 0x6d6f4420, 0x3a8ee: 0x6d6f4620, 0x3a8ef: 0x6d6f4820, + 0x3a8f0: 0x6d6f4a20, 0x3a8f1: 0x6d6f4c20, 0x3a8f2: 0x6d6f4e20, 0x3a8f3: 0x6d6f5020, + 0x3a8f4: 0x6d6f5220, 0x3a8f5: 0x6d6f5420, 0x3a8f6: 0x6d6f5620, 0x3a8f7: 0x6d6f5820, + 0x3a8f8: 0x6d6f5a20, 0x3a8f9: 0x6d6f5c20, 0x3a8fa: 0x6d6f5e20, 0x3a8fb: 0x6d6f6020, + 0x3a8fc: 0x6d6f6220, 0x3a8fd: 0x6d6f6420, 0x3a8fe: 0x6d6f6620, 0x3a8ff: 0x6d6f6820, + // Block 0xea4, offset 0x3a900 + 0x3a900: 0x6d6f6a20, 0x3a901: 0x6d6f6c20, 0x3a902: 0x6d6f6e20, 0x3a903: 0x6d6f7020, + 0x3a904: 0x6d6f7220, 0x3a905: 0x6d6f7420, 0x3a906: 0x6d6f7620, 0x3a907: 0x6d6f7820, + 0x3a908: 0x6d984e20, 0x3a909: 0x6d985020, 0x3a90a: 0x6d985220, 0x3a90b: 0x6d985420, + 0x3a90c: 0x6d985620, 0x3a90d: 0x6d985820, 0x3a90e: 0x6d985a20, 0x3a90f: 0x6d985c20, + 0x3a910: 0x6d985e20, 0x3a911: 0x6d986020, 0x3a912: 0x6d986220, 0x3a913: 0x6d986420, + 0x3a914: 0x6d986620, 0x3a915: 0x6d986820, 0x3a916: 0x6d986a20, 0x3a917: 0x6d986c20, + 0x3a918: 0x6d986e20, 0x3a919: 0x6d987020, 0x3a91a: 0x6d987220, 0x3a91b: 0x6d987420, + 0x3a91c: 0x6d987620, 0x3a91d: 0x6d987820, 0x3a91e: 0x6d987a20, 0x3a91f: 0x6d987c20, + 0x3a920: 0x6d987e20, 0x3a921: 0x6d988020, 0x3a922: 0x6d988220, 0x3a923: 0x6d988420, + 0x3a924: 0x6d988620, 0x3a925: 0x6dbb4e20, 0x3a926: 0x6dbb5020, 0x3a927: 0x6dbb5220, + 0x3a928: 0x6dbb5420, 0x3a929: 0x6dbb5620, 0x3a92a: 0x6dbb5820, 0x3a92b: 0x6dbb5a20, + 0x3a92c: 0x6dbb5c20, 0x3a92d: 0x6dbb5e20, 0x3a92e: 0x6dbb6020, 0x3a92f: 0x6dbb6220, + 0x3a930: 0x6dbb6420, 0x3a931: 0x6dbb6620, 0x3a932: 0x6dbb6820, 0x3a933: 0x6dbb6a20, + 0x3a934: 0x6dbb6c20, 0x3a935: 0x6dbb6e20, 0x3a936: 0x6dbb7020, 0x3a937: 0x6dbb7220, + 0x3a938: 0x6dbb7420, 0x3a939: 0x6dbb7620, 0x3a93a: 0x6dbb7820, 0x3a93b: 0x6dbb7a20, + 0x3a93c: 0x6dbb7c20, 0x3a93d: 0x6dbb7e20, 0x3a93e: 0x6dbb8020, 0x3a93f: 0x6dbb8220, + // Block 0xea5, offset 0x3a940 + 0x3a940: 0x6dd93220, 0x3a941: 0x6dd93420, 0x3a942: 0x6dd93620, 0x3a943: 0x6dd93820, + 0x3a944: 0x6dd93a20, 0x3a945: 0x6dd93c20, 0x3a946: 0x6dd93e20, 0x3a947: 0x6dd94020, + 0x3a948: 0x6dd94220, 0x3a949: 0x6dd94420, 0x3a94a: 0x6dd94620, 0x3a94b: 0x6dd94820, + 0x3a94c: 0x6dd94a20, 0x3a94d: 0x6dd94c20, 0x3a94e: 0x6dd94e20, 0x3a94f: 0x6dd95020, + 0x3a950: 0x6dd95220, 0x3a951: 0x6dd95420, 0x3a952: 0x6dd95620, 0x3a953: 0x6dd95820, + 0x3a954: 0x6dd95a20, 0x3a955: 0x6dd95c20, 0x3a956: 0x6dd95e20, 0x3a957: 0x6dd96020, + 0x3a958: 0x6dd96220, 0x3a959: 0x6dd96420, 0x3a95a: 0x6dd96620, 0x3a95b: 0x6dd96820, + 0x3a95c: 0x6df18020, 0x3a95d: 0x6df18220, 0x3a95e: 0x6df18420, 0x3a95f: 0x6df18620, + 0x3a960: 0x6df18820, 0x3a961: 0x6df18a20, 0x3a962: 0x6df18c20, 0x3a963: 0x6df18e20, + 0x3a964: 0x6df19020, 0x3a965: 0x6df19220, 0x3a966: 0x6df19420, 0x3a967: 0x6df19620, + 0x3a968: 0x6df19820, 0x3a969: 0x6df19a20, 0x3a96a: 0x6df19c20, 0x3a96b: 0x6df19e20, + 0x3a96c: 0x6e05aa20, 0x3a96d: 0x6e05ac20, 0x3a96e: 0x6e05ae20, 0x3a96f: 0x6e05b020, + 0x3a970: 0x6e05b220, 0x3a971: 0x6e05b420, 0x3a972: 0x6e05b620, 0x3a973: 0x6e05b820, + 0x3a974: 0x6e05ba20, 0x3a975: 0x6e05bc20, 0x3a976: 0x6e05be20, 0x3a977: 0x6e05c020, + 0x3a978: 0x6e05c220, 0x3a979: 0x6e05c420, 0x3a97a: 0x6e05c620, 0x3a97b: 0x6e05c820, + 0x3a97c: 0x6e05ca20, 0x3a97d: 0x6e05cc20, 0x3a97e: 0x6e05ce20, 0x3a97f: 0x6e05d020, + // Block 0xea6, offset 0x3a980 + 0x3a980: 0x6e05d220, 0x3a981: 0x6e05d420, 0x3a982: 0x6e05d620, 0x3a983: 0x6e166620, + 0x3a984: 0x6e166820, 0x3a985: 0x6e166a20, 0x3a986: 0x6e166c20, 0x3a987: 0x6e166e20, + 0x3a988: 0x6e167020, 0x3a989: 0x6e167220, 0x3a98a: 0x6e167420, 0x3a98b: 0x6e167620, + 0x3a98c: 0x6e167820, 0x3a98d: 0x6e167a20, 0x3a98e: 0x6e167c20, 0x3a98f: 0x6e167e20, + 0x3a990: 0x6e168020, 0x3a991: 0x6e168220, 0x3a992: 0x6e168420, 0x3a993: 0x6e168620, + 0x3a994: 0x6e23a820, 0x3a995: 0x6e168820, 0x3a996: 0x6e168a20, 0x3a997: 0x6e168c20, + 0x3a998: 0x6e23aa20, 0x3a999: 0x6e23ac20, 0x3a99a: 0x6e23ae20, 0x3a99b: 0x6e23b020, + 0x3a99c: 0x6e23b220, 0x3a99d: 0x6e23b420, 0x3a99e: 0x6e23b620, 0x3a99f: 0x6e2dbe20, + 0x3a9a0: 0x6e2dc020, 0x3a9a1: 0x6e2dc220, 0x3a9a2: 0x6e2dc420, 0x3a9a3: 0x6e2dc620, + 0x3a9a4: 0x6e2dc820, 0x3a9a5: 0x6e2dca20, 0x3a9a6: 0x6e356c20, 0x3a9a7: 0x6e356e20, + 0x3a9a8: 0x6e357020, 0x3a9a9: 0x6e357220, 0x3a9aa: 0x6e357420, 0x3a9ab: 0x6e357620, + 0x3a9ac: 0x6e357820, 0x3a9ad: 0x6e357a20, 0x3a9ae: 0x6e357c20, 0x3a9af: 0x6e3ae820, + 0x3a9b0: 0x6e3aea20, 0x3a9b1: 0x6e3aec20, 0x3a9b2: 0x6e3aee20, 0x3a9b3: 0x6e3af020, + 0x3a9b4: 0x6e3af220, 0x3a9b5: 0x6e3af420, 0x3a9b6: 0x6e357e20, 0x3a9b7: 0x6e3eb220, + 0x3a9b8: 0x6e3af620, 0x3a9b9: 0x6e3eb420, 0x3a9ba: 0x6e3eb620, 0x3a9bb: 0x6e416020, + 0x3a9bc: 0x6e44a420, 0x3a9bd: 0x6e464220, 0x3a9be: 0x6e464420, 0x3a9bf: 0x6c159a20, + // Block 0xea7, offset 0x3a9c0 + 0x3a9c0: 0x6c159c20, 0x3a9c1: 0x6c159e20, 0x3a9c2: 0x6c281420, 0x3a9c3: 0x6c281620, + 0x3a9c4: 0x6c62c620, 0x3a9c5: 0x6c62c820, 0x3a9c6: 0x6ce5f420, 0x3a9c7: 0x6ce5f620, + 0x3a9c8: 0x6ce5f820, 0x3a9c9: 0x6d147620, 0x3a9ca: 0x6d147820, 0x3a9cb: 0x6d6f8420, + 0x3a9cc: 0x6d6f8620, 0x3a9cd: 0x6dbb8820, 0x3a9ce: 0x6e05d820, 0x3a9cf: 0x6c00d020, + 0x3a9d0: 0x6c052820, 0x3a9d1: 0x6c052a20, 0x3a9d2: 0x6c052c20, 0x3a9d3: 0x6c052e20, + 0x3a9d4: 0x6c053020, 0x3a9d5: 0x6c053220, 0x3a9d6: 0x6c0ab820, 0x3a9d7: 0x6c0aba20, + 0x3a9d8: 0x6c0abc20, 0x3a9d9: 0x6c0abe20, 0x3a9da: 0x6c15b020, 0x3a9db: 0x6c15b220, + 0x3a9dc: 0x6c15b420, 0x3a9dd: 0x6c15b620, 0x3a9de: 0x6c15b820, 0x3a9df: 0x6c15ba20, + 0x3a9e0: 0x6c15bc20, 0x3a9e1: 0x6c15be20, 0x3a9e2: 0x6c15c020, 0x3a9e3: 0x6c15c220, + 0x3a9e4: 0x6c15c420, 0x3a9e5: 0x6c15c620, 0x3a9e6: 0x6c15c820, 0x3a9e7: 0x6c15ca20, + 0x3a9e8: 0x6c15cc20, 0x3a9e9: 0x6c15ce20, 0x3a9ea: 0x6c284a20, 0x3a9eb: 0x6c284c20, + 0x3a9ec: 0x6c284e20, 0x3a9ed: 0x6c285020, 0x3a9ee: 0x6c285220, 0x3a9ef: 0x6c285420, + 0x3a9f0: 0x6c285620, 0x3a9f1: 0x6c285820, 0x3a9f2: 0x6c285a20, 0x3a9f3: 0x6c285c20, + 0x3a9f4: 0x6c285e20, 0x3a9f5: 0x6c286020, 0x3a9f6: 0x6c286220, 0x3a9f7: 0x6c286420, + 0x3a9f8: 0x6c286620, 0x3a9f9: 0x6c286820, 0x3a9fa: 0x6c286a20, 0x3a9fb: 0x6c286c20, + 0x3a9fc: 0x6c286e20, 0x3a9fd: 0x6c287020, 0x3a9fe: 0x6c287220, 0x3a9ff: 0x6c287420, + // Block 0xea8, offset 0x3aa00 + 0x3aa00: 0x6c287620, 0x3aa01: 0x6c423e20, 0x3aa02: 0x6c424020, 0x3aa03: 0x6c424220, + 0x3aa04: 0x6c424420, 0x3aa05: 0x6c424620, 0x3aa06: 0x6c424820, 0x3aa07: 0x6c424a20, + 0x3aa08: 0x6c424c20, 0x3aa09: 0x6c424e20, 0x3aa0a: 0x6c425020, 0x3aa0b: 0x6c425220, + 0x3aa0c: 0x6c425420, 0x3aa0d: 0x6c425620, 0x3aa0e: 0x6c425820, 0x3aa0f: 0x6c425a20, + 0x3aa10: 0x6c425c20, 0x3aa11: 0x6c425e20, 0x3aa12: 0x6c426020, 0x3aa13: 0x6c426220, + 0x3aa14: 0x6c426420, 0x3aa15: 0x6c426620, 0x3aa16: 0x6c426820, 0x3aa17: 0x6c426a20, + 0x3aa18: 0x6c62ee20, 0x3aa19: 0x6c62f020, 0x3aa1a: 0x6c62f220, 0x3aa1b: 0x6c62f420, + 0x3aa1c: 0x6c62f620, 0x3aa1d: 0x6c62f820, 0x3aa1e: 0x6c62fa20, 0x3aa1f: 0x6c62fc20, + 0x3aa20: 0x6c62fe20, 0x3aa21: 0x6c630020, 0x3aa22: 0x6c630220, 0x3aa23: 0x6c630420, + 0x3aa24: 0x6c630620, 0x3aa25: 0x6c630820, 0x3aa26: 0x6c630a20, 0x3aa27: 0x6c630c20, + 0x3aa28: 0x6c630e20, 0x3aa29: 0x6c631020, 0x3aa2a: 0x6c631220, 0x3aa2b: 0x6c631420, + 0x3aa2c: 0x6c631620, 0x3aa2d: 0x6c631820, 0x3aa2e: 0x6c631a20, 0x3aa2f: 0x6c631c20, + 0x3aa30: 0x6c631e20, 0x3aa31: 0x6c632020, 0x3aa32: 0x6c632220, 0x3aa33: 0x6c632420, + 0x3aa34: 0x6c6bf420, 0x3aa35: 0x6c89da20, 0x3aa36: 0x6c89dc20, 0x3aa37: 0x6c89de20, + 0x3aa38: 0x6c89e020, 0x3aa39: 0x6c89e220, 0x3aa3a: 0x6c89e420, 0x3aa3b: 0x6c89e620, + 0x3aa3c: 0x6c89e820, 0x3aa3d: 0x6c89ea20, 0x3aa3e: 0x6c89ec20, 0x3aa3f: 0x6c89ee20, + // Block 0xea9, offset 0x3aa40 + 0x3aa40: 0x6c89f020, 0x3aa41: 0x6c89f220, 0x3aa42: 0x6c89f420, 0x3aa43: 0x6c89f620, + 0x3aa44: 0x6c89f820, 0x3aa45: 0x6c89fa20, 0x3aa46: 0x6c89fc20, 0x3aa47: 0x6c89fe20, + 0x3aa48: 0x6c8a0020, 0x3aa49: 0x6c8a0220, 0x3aa4a: 0x6c8a0420, 0x3aa4b: 0x6c8a0620, + 0x3aa4c: 0x6c8a0820, 0x3aa4d: 0x6c8a0a20, 0x3aa4e: 0x6c8a0c20, 0x3aa4f: 0x6c8a0e20, + 0x3aa50: 0x6c8a1020, 0x3aa51: 0x6c8a1220, 0x3aa52: 0x6c8a1420, 0x3aa53: 0x6c8a1620, + 0x3aa54: 0x6c8a1820, 0x3aa55: 0x6c8a1a20, 0x3aa56: 0x6c8a1c20, 0x3aa57: 0x6c8a1e20, + 0x3aa58: 0x6c8a2020, 0x3aa59: 0x6c8a2220, 0x3aa5a: 0x6c8a2420, 0x3aa5b: 0x6c8a2620, + 0x3aa5c: 0x6c8a2820, 0x3aa5d: 0x6c8a2a20, 0x3aa5e: 0x6cb60a20, 0x3aa5f: 0x6cb60c20, + 0x3aa60: 0x6cb60e20, 0x3aa61: 0x6cb61020, 0x3aa62: 0x6cb61220, 0x3aa63: 0x6cb61420, + 0x3aa64: 0x6cb61620, 0x3aa65: 0x6cb61820, 0x3aa66: 0x6cb61a20, 0x3aa67: 0x6cb61c20, + 0x3aa68: 0x6cb61e20, 0x3aa69: 0x6cb62020, 0x3aa6a: 0x6cb62220, 0x3aa6b: 0x6cb62420, + 0x3aa6c: 0x6cb62620, 0x3aa6d: 0x6cb62820, 0x3aa6e: 0x6cb62a20, 0x3aa6f: 0x6cb62c20, + 0x3aa70: 0x6cb62e20, 0x3aa71: 0x6cb63020, 0x3aa72: 0x6cb63220, 0x3aa73: 0x6cb63420, + 0x3aa74: 0x6cb63620, 0x3aa75: 0x6cb63820, 0x3aa76: 0x6cb63a20, 0x3aa77: 0x6cb63c20, + 0x3aa78: 0x6cb63e20, 0x3aa79: 0x6cb64020, 0x3aa7a: 0x6cb64220, 0x3aa7b: 0x6cb64420, + 0x3aa7c: 0x6cb64620, 0x3aa7d: 0x6cb64820, 0x3aa7e: 0x6cb64a20, 0x3aa7f: 0x6cb64c20, + // Block 0xeaa, offset 0x3aa80 + 0x3aa80: 0x6ce62a20, 0x3aa81: 0x6ce62c20, 0x3aa82: 0x6ce62e20, 0x3aa83: 0x6ce63020, + 0x3aa84: 0x6ce63220, 0x3aa85: 0x6ce63420, 0x3aa86: 0x6ce63620, 0x3aa87: 0x6ce63820, + 0x3aa88: 0x6ce63a20, 0x3aa89: 0x6ce63c20, 0x3aa8a: 0x6ce63e20, 0x3aa8b: 0x6ce64020, + 0x3aa8c: 0x6ce64220, 0x3aa8d: 0x6ce64420, 0x3aa8e: 0x6ce64620, 0x3aa8f: 0x6ce64820, + 0x3aa90: 0x6ce64a20, 0x3aa91: 0x6ce64c20, 0x3aa92: 0x6ce64e20, 0x3aa93: 0x6ce65020, + 0x3aa94: 0x6ce65220, 0x3aa95: 0x6ce65420, 0x3aa96: 0x6ce65620, 0x3aa97: 0x6ce65820, + 0x3aa98: 0x6ce65a20, 0x3aa99: 0x6ce65c20, 0x3aa9a: 0x6ce65e20, 0x3aa9b: 0x6ce66020, + 0x3aa9c: 0x6ce66220, 0x3aa9d: 0x6ce66420, 0x3aa9e: 0x6ce66620, 0x3aa9f: 0x6ce66820, + 0x3aaa0: 0x6ce66a20, 0x3aaa1: 0x6ce66c20, 0x3aaa2: 0x6ce66e20, 0x3aaa3: 0x6ce67020, + 0x3aaa4: 0x6ce67220, 0x3aaa5: 0x6ce67420, 0x3aaa6: 0x6ce67620, 0x3aaa7: 0x6ce67820, + 0x3aaa8: 0x6ce67a20, 0x3aaa9: 0x6ce67c20, 0x3aaaa: 0x6ce67e20, 0x3aaab: 0x6ce68020, + 0x3aaac: 0x6ce68220, 0x3aaad: 0x6ce68420, 0x3aaae: 0x6d149e20, 0x3aaaf: 0x6d14a020, + 0x3aab0: 0x6d14a220, 0x3aab1: 0x6d14a420, 0x3aab2: 0x6d14a620, 0x3aab3: 0x6d14a820, + 0x3aab4: 0x6d14aa20, 0x3aab5: 0x6d14ac20, 0x3aab6: 0x6d14ae20, 0x3aab7: 0x6d14b020, + 0x3aab8: 0x6d14b220, 0x3aab9: 0x6d14b420, 0x3aaba: 0x6d14b620, 0x3aabb: 0x6d14b820, + 0x3aabc: 0x6d14ba20, 0x3aabd: 0x6d14bc20, 0x3aabe: 0x6d14be20, 0x3aabf: 0x6d14c020, + // Block 0xeab, offset 0x3aac0 + 0x3aac0: 0x6d14c220, 0x3aac1: 0x6d14c420, 0x3aac2: 0x6d14c620, 0x3aac3: 0x6d14c820, + 0x3aac4: 0x6d14ca20, 0x3aac5: 0x6d14cc20, 0x3aac6: 0x6d14ce20, 0x3aac7: 0x6d14d020, + 0x3aac8: 0x6d14d220, 0x3aac9: 0x6d14d420, 0x3aaca: 0x6d428420, 0x3aacb: 0x6d428620, + 0x3aacc: 0x6d428820, 0x3aacd: 0x6d428a20, 0x3aace: 0x6d428c20, 0x3aacf: 0x6d428e20, + 0x3aad0: 0x6d429020, 0x3aad1: 0x6d429220, 0x3aad2: 0x6d429420, 0x3aad3: 0x6d429620, + 0x3aad4: 0x6d429820, 0x3aad5: 0x6d429a20, 0x3aad6: 0x6d429c20, 0x3aad7: 0x6d429e20, + 0x3aad8: 0x6d42a020, 0x3aad9: 0x6d42a220, 0x3aada: 0x6d42a420, 0x3aadb: 0x6d42a620, + 0x3aadc: 0x6d42a820, 0x3aadd: 0x6d42aa20, 0x3aade: 0x6d42ac20, 0x3aadf: 0x6d42ae20, + 0x3aae0: 0x6d42b020, 0x3aae1: 0x6d42b220, 0x3aae2: 0x6d42b420, 0x3aae3: 0x6d42b620, + 0x3aae4: 0x6d42b820, 0x3aae5: 0x6d42ba20, 0x3aae6: 0x6d42bc20, 0x3aae7: 0x6d42be20, + 0x3aae8: 0x6d42c020, 0x3aae9: 0x6d42c220, 0x3aaea: 0x6d6f9820, 0x3aaeb: 0x6d6f9a20, + 0x3aaec: 0x6d6f9c20, 0x3aaed: 0x6d6f9e20, 0x3aaee: 0x6d6fa020, 0x3aaef: 0x6d6fa220, + 0x3aaf0: 0x6d6fa420, 0x3aaf1: 0x6d6fa620, 0x3aaf2: 0x6d6fa820, 0x3aaf3: 0x6d6faa20, + 0x3aaf4: 0x6d6fac20, 0x3aaf5: 0x6d6fae20, 0x3aaf6: 0x6d6fb020, 0x3aaf7: 0x6d6fb220, + 0x3aaf8: 0x6d6fb420, 0x3aaf9: 0x6d6fb620, 0x3aafa: 0x6d6fb820, 0x3aafb: 0x6d6fba20, + 0x3aafc: 0x6d6fbc20, 0x3aafd: 0x6d6fbe20, 0x3aafe: 0x6d6fc020, 0x3aaff: 0x6d98a420, + // Block 0xeac, offset 0x3ab00 + 0x3ab00: 0x6d98a620, 0x3ab01: 0x6d98a820, 0x3ab02: 0x6d98aa20, 0x3ab03: 0x6d98ac20, + 0x3ab04: 0x6d98ae20, 0x3ab05: 0x6d98b020, 0x3ab06: 0x6d98b220, 0x3ab07: 0x6d98b420, + 0x3ab08: 0x6d98b620, 0x3ab09: 0x6d98b820, 0x3ab0a: 0x6d98ba20, 0x3ab0b: 0x6d98bc20, + 0x3ab0c: 0x6d98be20, 0x3ab0d: 0x6dbba020, 0x3ab0e: 0x6dbba220, 0x3ab0f: 0x6dbba420, + 0x3ab10: 0x6dbba620, 0x3ab11: 0x6dbba820, 0x3ab12: 0x6dbbaa20, 0x3ab13: 0x6dbbac20, + 0x3ab14: 0x6dbbae20, 0x3ab15: 0x6dbbb020, 0x3ab16: 0x6dd96c20, 0x3ab17: 0x6dd96e20, + 0x3ab18: 0x6dd97020, 0x3ab19: 0x6dd97220, 0x3ab1a: 0x6dd97420, 0x3ab1b: 0x6dd97620, + 0x3ab1c: 0x6dd97820, 0x3ab1d: 0x6dd97a20, 0x3ab1e: 0x6dd97c20, 0x3ab1f: 0x6dd97e20, + 0x3ab20: 0x6dd98020, 0x3ab21: 0x6dd98220, 0x3ab22: 0x6df1a620, 0x3ab23: 0x6df1a820, + 0x3ab24: 0x6df1aa20, 0x3ab25: 0x6df1ac20, 0x3ab26: 0x6e05de20, 0x3ab27: 0x6e05e020, + 0x3ab28: 0x6e05e220, 0x3ab29: 0x6e05e420, 0x3ab2a: 0x6e05e620, 0x3ab2b: 0x6e05e820, + 0x3ab2c: 0x6e169220, 0x3ab2d: 0x6e169420, 0x3ab2e: 0x6e23b820, 0x3ab2f: 0x6e23ba20, + 0x3ab30: 0x6e2dcc20, 0x3ab31: 0x6e2dce20, 0x3ab32: 0x6e3eb820, 0x3ab33: 0x6e3eba20, + 0x3ab34: 0x6e416220, 0x3ab35: 0x6e416420, 0x3ab36: 0x6d14de20, 0x3ab37: 0x6d42cc20, + 0x3ab38: 0x6d6fc220, 0x3ab39: 0x6d6fc420, 0x3ab3a: 0x6d6fc620, 0x3ab3b: 0x6d6fc820, + 0x3ab3c: 0x6d98c220, 0x3ab3d: 0x6d98c420, 0x3ab3e: 0x6d98c620, 0x3ab3f: 0x6dbbb420, + // Block 0xead, offset 0x3ab40 + 0x3ab40: 0x6dd98620, 0x3ab41: 0x6dd98820, 0x3ab42: 0x6e05ea20, 0x3ab43: 0x6e05ec20, + 0x3ab44: 0x6e23bc20, 0x3ab45: 0x6c8a3c20, 0x3ab46: 0x6c8a3e20, 0x3ab47: 0x6c8a4020, + 0x3ab48: 0x6cb66820, 0x3ab49: 0x6cb66a20, 0x3ab4a: 0x6cb66c20, 0x3ab4b: 0x6cb66e20, + 0x3ab4c: 0x6cb67020, 0x3ab4d: 0x6cb67220, 0x3ab4e: 0x6cb67420, 0x3ab4f: 0x6cb67620, + 0x3ab50: 0x6cb67820, 0x3ab51: 0x6cb67a20, 0x3ab52: 0x6ce6a020, 0x3ab53: 0x6ce6a220, + 0x3ab54: 0x6ce6a420, 0x3ab55: 0x6ce6a620, 0x3ab56: 0x6ce6a820, 0x3ab57: 0x6ce6aa20, + 0x3ab58: 0x6ce6ac20, 0x3ab59: 0x6ce6ae20, 0x3ab5a: 0x6ce6b020, 0x3ab5b: 0x6ce6b220, + 0x3ab5c: 0x6ce6b420, 0x3ab5d: 0x6ce6b620, 0x3ab5e: 0x6ce6b820, 0x3ab5f: 0x6ce6ba20, + 0x3ab60: 0x6d14f420, 0x3ab61: 0x6d14f620, 0x3ab62: 0x6d14f820, 0x3ab63: 0x6d14fa20, + 0x3ab64: 0x6d14fc20, 0x3ab65: 0x6d14fe20, 0x3ab66: 0x6d150020, 0x3ab67: 0x6d150220, + 0x3ab68: 0x6d150420, 0x3ab69: 0x6d150620, 0x3ab6a: 0x6d150820, 0x3ab6b: 0x6d150a20, + 0x3ab6c: 0x6d150c20, 0x3ab6d: 0x6d150e20, 0x3ab6e: 0x6d151020, 0x3ab6f: 0x6d151220, + 0x3ab70: 0x6d151420, 0x3ab71: 0x6d151620, 0x3ab72: 0x6d42d820, 0x3ab73: 0x6d42da20, + 0x3ab74: 0x6d42dc20, 0x3ab75: 0x6d42de20, 0x3ab76: 0x6d42e020, 0x3ab77: 0x6d42e220, + 0x3ab78: 0x6d42e420, 0x3ab79: 0x6d42e620, 0x3ab7a: 0x6d42e820, 0x3ab7b: 0x6d42ea20, + 0x3ab7c: 0x6d42ec20, 0x3ab7d: 0x6d42ee20, 0x3ab7e: 0x6d42f020, 0x3ab7f: 0x6d42f220, + // Block 0xeae, offset 0x3ab80 + 0x3ab80: 0x6d42f420, 0x3ab81: 0x6d42f620, 0x3ab82: 0x6d42f820, 0x3ab83: 0x6d42fa20, + 0x3ab84: 0x6d42fc20, 0x3ab85: 0x6d42fe20, 0x3ab86: 0x6d430020, 0x3ab87: 0x6d430220, + 0x3ab88: 0x6d430420, 0x3ab89: 0x6d430620, 0x3ab8a: 0x6d430820, 0x3ab8b: 0x6d6fd220, + 0x3ab8c: 0x6d6fd420, 0x3ab8d: 0x6d6fd620, 0x3ab8e: 0x6d6fd820, 0x3ab8f: 0x6d6fda20, + 0x3ab90: 0x6d6fdc20, 0x3ab91: 0x6d6fde20, 0x3ab92: 0x6d6fe020, 0x3ab93: 0x6d6fe220, + 0x3ab94: 0x6d6fe420, 0x3ab95: 0x6d6fe620, 0x3ab96: 0x6d6fe820, 0x3ab97: 0x6d6fea20, + 0x3ab98: 0x6d6fec20, 0x3ab99: 0x6d6fee20, 0x3ab9a: 0x6d6ff020, 0x3ab9b: 0x6d6ff220, + 0x3ab9c: 0x6d6ff420, 0x3ab9d: 0x6d6ff620, 0x3ab9e: 0x6d6ff820, 0x3ab9f: 0x6d6ffa20, + 0x3aba0: 0x6d98d020, 0x3aba1: 0x6d98d220, 0x3aba2: 0x6d98d420, 0x3aba3: 0x6d98d620, + 0x3aba4: 0x6d98d820, 0x3aba5: 0x6d98da20, 0x3aba6: 0x6d98dc20, 0x3aba7: 0x6d98de20, + 0x3aba8: 0x6d98e020, 0x3aba9: 0x6d98e220, 0x3abaa: 0x6d98e420, 0x3abab: 0x6d98e620, + 0x3abac: 0x6d98e820, 0x3abad: 0x6d98ea20, 0x3abae: 0x6d98ec20, 0x3abaf: 0x6d98ee20, + 0x3abb0: 0x6d98f020, 0x3abb1: 0x6d98f220, 0x3abb2: 0x6d98f420, 0x3abb3: 0x6d98f620, + 0x3abb4: 0x6d98f820, 0x3abb5: 0x6d98fa20, 0x3abb6: 0x6d98fc20, 0x3abb7: 0x6d98fe20, + 0x3abb8: 0x6d990020, 0x3abb9: 0x6d990220, 0x3abba: 0x6d990420, 0x3abbb: 0x6d990620, + 0x3abbc: 0x6d990820, 0x3abbd: 0x6d990a20, 0x3abbe: 0x6d990c20, 0x3abbf: 0x6dbbbc20, + // Block 0xeaf, offset 0x3abc0 + 0x3abc0: 0x6dbbbe20, 0x3abc1: 0x6dbbc020, 0x3abc2: 0x6dbbc220, 0x3abc3: 0x6dbbc420, + 0x3abc4: 0x6dbbc620, 0x3abc5: 0x6dbbc820, 0x3abc6: 0x6dbbca20, 0x3abc7: 0x6dbbcc20, + 0x3abc8: 0x6dbbce20, 0x3abc9: 0x6dbbd020, 0x3abca: 0x6dbbd220, 0x3abcb: 0x6dbbd420, + 0x3abcc: 0x6dbbd620, 0x3abcd: 0x6dbbd820, 0x3abce: 0x6dbbda20, 0x3abcf: 0x6dbbdc20, + 0x3abd0: 0x6dbbde20, 0x3abd1: 0x6dbbe020, 0x3abd2: 0x6dbbe220, 0x3abd3: 0x6dbbe420, + 0x3abd4: 0x6dbbe620, 0x3abd5: 0x6dbbe820, 0x3abd6: 0x6dbbea20, 0x3abd7: 0x6dd9a020, + 0x3abd8: 0x6dd9a220, 0x3abd9: 0x6dd9a420, 0x3abda: 0x6dd9a620, 0x3abdb: 0x6dd9a820, + 0x3abdc: 0x6dd9aa20, 0x3abdd: 0x6dd9ac20, 0x3abde: 0x6dd9ae20, 0x3abdf: 0x6dd9b020, + 0x3abe0: 0x6dd9b220, 0x3abe1: 0x6dd9b420, 0x3abe2: 0x6dd9b620, 0x3abe3: 0x6dd9b820, + 0x3abe4: 0x6df1b420, 0x3abe5: 0x6df1b620, 0x3abe6: 0x6df1b820, 0x3abe7: 0x6df1ba20, + 0x3abe8: 0x6df1bc20, 0x3abe9: 0x6df1be20, 0x3abea: 0x6df1c020, 0x3abeb: 0x6df1c220, + 0x3abec: 0x6df1c420, 0x3abed: 0x6df1c620, 0x3abee: 0x6df1c820, 0x3abef: 0x6df1ca20, + 0x3abf0: 0x6df1cc20, 0x3abf1: 0x6df1ce20, 0x3abf2: 0x6df1d020, 0x3abf3: 0x6df1d220, + 0x3abf4: 0x6e05f420, 0x3abf5: 0x6e05f620, 0x3abf6: 0x6e05f820, 0x3abf7: 0x6e05fa20, + 0x3abf8: 0x6e05fc20, 0x3abf9: 0x6e05fe20, 0x3abfa: 0x6e060020, 0x3abfb: 0x6e060220, + 0x3abfc: 0x6e060420, 0x3abfd: 0x6e060620, 0x3abfe: 0x6e060820, 0x3abff: 0x6e060a20, + // Block 0xeb0, offset 0x3ac00 + 0x3ac00: 0x6e060c20, 0x3ac01: 0x6e060e20, 0x3ac02: 0x6e061020, 0x3ac03: 0x6e061220, + 0x3ac04: 0x6e061420, 0x3ac05: 0x6e061620, 0x3ac06: 0x6e061820, 0x3ac07: 0x6e169820, + 0x3ac08: 0x6e169a20, 0x3ac09: 0x6e169c20, 0x3ac0a: 0x6e169e20, 0x3ac0b: 0x6e16a020, + 0x3ac0c: 0x6e16a220, 0x3ac0d: 0x6e16a420, 0x3ac0e: 0x6e16a620, 0x3ac0f: 0x6e16a820, + 0x3ac10: 0x6e16aa20, 0x3ac11: 0x6e16ac20, 0x3ac12: 0x6e16ae20, 0x3ac13: 0x6e23c020, + 0x3ac14: 0x6e23c220, 0x3ac15: 0x6e23c420, 0x3ac16: 0x6e23c620, 0x3ac17: 0x6e23c820, + 0x3ac18: 0x6e23ca20, 0x3ac19: 0x6e23cc20, 0x3ac1a: 0x6e23ce20, 0x3ac1b: 0x6e23d020, + 0x3ac1c: 0x6e2dd020, 0x3ac1d: 0x6e2dd220, 0x3ac1e: 0x6e2dd420, 0x3ac1f: 0x6e2dd620, + 0x3ac20: 0x6e2dd820, 0x3ac21: 0x6e2dda20, 0x3ac22: 0x6e2ddc20, 0x3ac23: 0x6e2dde20, + 0x3ac24: 0x6e2de020, 0x3ac25: 0x6e2de220, 0x3ac26: 0x6e2de420, 0x3ac27: 0x6e358420, + 0x3ac28: 0x6e358620, 0x3ac29: 0x6e358820, 0x3ac2a: 0x6e358a20, 0x3ac2b: 0x6e358c20, + 0x3ac2c: 0x6e3afc20, 0x3ac2d: 0x6e3afe20, 0x3ac2e: 0x6e3b0020, 0x3ac2f: 0x6e3ebc20, + 0x3ac30: 0x6e3ebe20, 0x3ac31: 0x6e3ec020, 0x3ac32: 0x6e435e20, 0x3ac33: 0x6e436020, + 0x3ac34: 0x6e464820, 0x3ac35: 0x6e46ee20, 0x3ac36: 0x6c632c20, 0x3ac37: 0x6c8a4220, + 0x3ac38: 0x6c8a4420, 0x3ac39: 0x6cb68420, 0x3ac3a: 0x6cb68620, 0x3ac3b: 0x6cb68820, + 0x3ac3c: 0x6cb68a20, 0x3ac3d: 0x6cb68c20, 0x3ac3e: 0x6cb68e20, 0x3ac3f: 0x6cb69020, + // Block 0xeb1, offset 0x3ac40 + 0x3ac40: 0x6cb69220, 0x3ac41: 0x6cb69420, 0x3ac42: 0x6ce6d220, 0x3ac43: 0x6ce6d420, + 0x3ac44: 0x6ce6d620, 0x3ac45: 0x6ce6d820, 0x3ac46: 0x6ce6da20, 0x3ac47: 0x6ce6dc20, + 0x3ac48: 0x6ce6de20, 0x3ac49: 0x6ce6e020, 0x3ac4a: 0x6ce6e220, 0x3ac4b: 0x6ce6e420, + 0x3ac4c: 0x6ce6e620, 0x3ac4d: 0x6ce6e820, 0x3ac4e: 0x6ce6ea20, 0x3ac4f: 0x6ce6ec20, + 0x3ac50: 0x6ce6ee20, 0x3ac51: 0x6ce6f020, 0x3ac52: 0x6d153020, 0x3ac53: 0x6d153220, + 0x3ac54: 0x6d153420, 0x3ac55: 0x6d153620, 0x3ac56: 0x6d153820, 0x3ac57: 0x6d153a20, + 0x3ac58: 0x6d153c20, 0x3ac59: 0x6d153e20, 0x3ac5a: 0x6d154020, 0x3ac5b: 0x6d154220, + 0x3ac5c: 0x6d154420, 0x3ac5d: 0x6d154620, 0x3ac5e: 0x6d154820, 0x3ac5f: 0x6d154a20, + 0x3ac60: 0x6d154c20, 0x3ac61: 0x6d154e20, 0x3ac62: 0x6d432220, 0x3ac63: 0x6d432420, + 0x3ac64: 0x6d432620, 0x3ac65: 0x6d432820, 0x3ac66: 0x6d432a20, 0x3ac67: 0x6d432c20, + 0x3ac68: 0x6d432e20, 0x3ac69: 0x6d433020, 0x3ac6a: 0x6d433220, 0x3ac6b: 0x6d433420, + 0x3ac6c: 0x6d433620, 0x3ac6d: 0x6d433820, 0x3ac6e: 0x6d433a20, 0x3ac6f: 0x6d433c20, + 0x3ac70: 0x6d433e20, 0x3ac71: 0x6d434020, 0x3ac72: 0x6d434220, 0x3ac73: 0x6d434420, + 0x3ac74: 0x6d434620, 0x3ac75: 0x6d434820, 0x3ac76: 0x6d434a20, 0x3ac77: 0x6d701420, + 0x3ac78: 0x6d701620, 0x3ac79: 0x6d701820, 0x3ac7a: 0x6d701a20, 0x3ac7b: 0x6d701c20, + 0x3ac7c: 0x6d701e20, 0x3ac7d: 0x6d702020, 0x3ac7e: 0x6d702220, 0x3ac7f: 0x6d702420, + // Block 0xeb2, offset 0x3ac80 + 0x3ac80: 0x6d702620, 0x3ac81: 0x6d702820, 0x3ac82: 0x6d702a20, 0x3ac83: 0x6d702c20, + 0x3ac84: 0x6d702e20, 0x3ac85: 0x6d703020, 0x3ac86: 0x6d703220, 0x3ac87: 0x6d703420, + 0x3ac88: 0x6d703620, 0x3ac89: 0x6d703820, 0x3ac8a: 0x6d703a20, 0x3ac8b: 0x6d703c20, + 0x3ac8c: 0x6d703e20, 0x3ac8d: 0x6d704020, 0x3ac8e: 0x6d704220, 0x3ac8f: 0x6d704420, + 0x3ac90: 0x6d704620, 0x3ac91: 0x6d704820, 0x3ac92: 0x6d993020, 0x3ac93: 0x6d993220, + 0x3ac94: 0x6d993420, 0x3ac95: 0x6d993620, 0x3ac96: 0x6d993820, 0x3ac97: 0x6d993a20, + 0x3ac98: 0x6d993c20, 0x3ac99: 0x6d993e20, 0x3ac9a: 0x6d994020, 0x3ac9b: 0x6d994220, + 0x3ac9c: 0x6d994420, 0x3ac9d: 0x6d994620, 0x3ac9e: 0x6d994820, 0x3ac9f: 0x6d994a20, + 0x3aca0: 0x6d994c20, 0x3aca1: 0x6d994e20, 0x3aca2: 0x6d995020, 0x3aca3: 0x6d995220, + 0x3aca4: 0x6d995420, 0x3aca5: 0x6d995620, 0x3aca6: 0x6d995820, 0x3aca7: 0x6d995a20, + 0x3aca8: 0x6d995c20, 0x3aca9: 0x6d995e20, 0x3acaa: 0x6d996020, 0x3acab: 0x6d996220, + 0x3acac: 0x6d996420, 0x3acad: 0x6d996620, 0x3acae: 0x6d996820, 0x3acaf: 0x6d996a20, + 0x3acb0: 0x6d996c20, 0x3acb1: 0x6d996e20, 0x3acb2: 0x6d997020, 0x3acb3: 0x6d997220, + 0x3acb4: 0x6d997420, 0x3acb5: 0x6dbc0c20, 0x3acb6: 0x6dbc0e20, 0x3acb7: 0x6dbc1020, + 0x3acb8: 0x6dbc1220, 0x3acb9: 0x6dbc1420, 0x3acba: 0x6dbc1620, 0x3acbb: 0x6dbc1820, + 0x3acbc: 0x6dbc1a20, 0x3acbd: 0x6dbc1c20, 0x3acbe: 0x6dd9d220, 0x3acbf: 0x6dbc1e20, + // Block 0xeb3, offset 0x3acc0 + 0x3acc0: 0x6dbc2020, 0x3acc1: 0x6dbc2220, 0x3acc2: 0x6dbc2420, 0x3acc3: 0x6dbc2620, + 0x3acc4: 0x6dbc2820, 0x3acc5: 0x6dbc2a20, 0x3acc6: 0x6dbc2c20, 0x3acc7: 0x6dbc2e20, + 0x3acc8: 0x6dbc3020, 0x3acc9: 0x6dbc3220, 0x3acca: 0x6dbc3420, 0x3accb: 0x6dbc3620, + 0x3accc: 0x6dbc3820, 0x3accd: 0x6dbc3a20, 0x3acce: 0x6dbc3c20, 0x3accf: 0x6dbc3e20, + 0x3acd0: 0x6dbc4020, 0x3acd1: 0x6dbc4220, 0x3acd2: 0x6dbc4420, 0x3acd3: 0x6dbc4620, + 0x3acd4: 0x6dbc4820, 0x3acd5: 0x6dbc4a20, 0x3acd6: 0x6dbc4c20, 0x3acd7: 0x6dd9d420, + 0x3acd8: 0x6dd9d620, 0x3acd9: 0x6dd9d820, 0x3acda: 0x6dd9da20, 0x3acdb: 0x6dd9dc20, + 0x3acdc: 0x6dd9de20, 0x3acdd: 0x6dd9e020, 0x3acde: 0x6dd9e220, 0x3acdf: 0x6dd9e420, + 0x3ace0: 0x6dd9e620, 0x3ace1: 0x6dd9e820, 0x3ace2: 0x6dd9ea20, 0x3ace3: 0x6dd9ec20, + 0x3ace4: 0x6dd9ee20, 0x3ace5: 0x6dd9f020, 0x3ace6: 0x6dd9f220, 0x3ace7: 0x6dd9f420, + 0x3ace8: 0x6dd9f620, 0x3ace9: 0x6dd9f820, 0x3acea: 0x6dd9fa20, 0x3aceb: 0x6dd9fc20, + 0x3acec: 0x6dd9fe20, 0x3aced: 0x6dda0020, 0x3acee: 0x6db8fa20, 0x3acef: 0x6dda0220, + 0x3acf0: 0x6dda0420, 0x3acf1: 0x6dda0620, 0x3acf2: 0x6dda0820, 0x3acf3: 0x6dda0a20, + 0x3acf4: 0x6dda0c20, 0x3acf5: 0x6dda0e20, 0x3acf6: 0x6dda1020, 0x3acf7: 0x6dda1220, + 0x3acf8: 0x6dda1420, 0x3acf9: 0x6dda1620, 0x3acfa: 0x6dda1820, 0x3acfb: 0x6df1ee20, + 0x3acfc: 0x6df1f020, 0x3acfd: 0x6df1f220, 0x3acfe: 0x6df1f420, 0x3acff: 0x6df1f620, + // Block 0xeb4, offset 0x3ad00 + 0x3ad00: 0x6df1f820, 0x3ad01: 0x6df1fa20, 0x3ad02: 0x6df1fc20, 0x3ad03: 0x6df1fe20, + 0x3ad04: 0x6df20020, 0x3ad05: 0x6df20220, 0x3ad06: 0x6df20420, 0x3ad07: 0x6df20620, + 0x3ad08: 0x6df20820, 0x3ad09: 0x6df20a20, 0x3ad0a: 0x6df20c20, 0x3ad0b: 0x6df20e20, + 0x3ad0c: 0x6df21020, 0x3ad0d: 0x6df21220, 0x3ad0e: 0x6df21420, 0x3ad0f: 0x6df21620, + 0x3ad10: 0x6df21820, 0x3ad11: 0x6df21a20, 0x3ad12: 0x6df21c20, 0x3ad13: 0x6df21e20, + 0x3ad14: 0x6df22020, 0x3ad15: 0x6df22220, 0x3ad16: 0x6df22420, 0x3ad17: 0x6df22620, + 0x3ad18: 0x6df22820, 0x3ad19: 0x6df22a20, 0x3ad1a: 0x6df22c20, 0x3ad1b: 0x6df22e20, + 0x3ad1c: 0x6df23020, 0x3ad1d: 0x6e062a20, 0x3ad1e: 0x6e062c20, 0x3ad1f: 0x6e062e20, + 0x3ad20: 0x6e063020, 0x3ad21: 0x6e063220, 0x3ad22: 0x6e063420, 0x3ad23: 0x6e063620, + 0x3ad24: 0x6e063820, 0x3ad25: 0x6e063a20, 0x3ad26: 0x6e063c20, 0x3ad27: 0x6e063e20, + 0x3ad28: 0x6e064020, 0x3ad29: 0x6e064220, 0x3ad2a: 0x6e064420, 0x3ad2b: 0x6e064620, + 0x3ad2c: 0x6e064820, 0x3ad2d: 0x6e064a20, 0x3ad2e: 0x6e064c20, 0x3ad2f: 0x6e064e20, + 0x3ad30: 0x6e065020, 0x3ad31: 0x6e065220, 0x3ad32: 0x6e065420, 0x3ad33: 0x6e065620, + 0x3ad34: 0x6e065820, 0x3ad35: 0x6e065a20, 0x3ad36: 0x6e065c20, 0x3ad37: 0x6e065e20, + 0x3ad38: 0x6e066020, 0x3ad39: 0x6e066220, 0x3ad3a: 0x6e066420, 0x3ad3b: 0x6e066620, + 0x3ad3c: 0x6e16c020, 0x3ad3d: 0x6e16c220, 0x3ad3e: 0x6e16c420, 0x3ad3f: 0x6e16c620, + // Block 0xeb5, offset 0x3ad40 + 0x3ad40: 0x6e16c820, 0x3ad41: 0x6e16ca20, 0x3ad42: 0x6e16cc20, 0x3ad43: 0x6e16ce20, + 0x3ad44: 0x6e16d020, 0x3ad45: 0x6e16d220, 0x3ad46: 0x6e16d420, 0x3ad47: 0x6e16d620, + 0x3ad48: 0x6e16d820, 0x3ad49: 0x6e16da20, 0x3ad4a: 0x6e16dc20, 0x3ad4b: 0x6e16de20, + 0x3ad4c: 0x6e16e020, 0x3ad4d: 0x6e16e220, 0x3ad4e: 0x6e16e420, 0x3ad4f: 0x6e16e620, + 0x3ad50: 0x6e16e820, 0x3ad51: 0x6e23e220, 0x3ad52: 0x6e23e420, 0x3ad53: 0x6e23e620, + 0x3ad54: 0x6e23e820, 0x3ad55: 0x6e23ea20, 0x3ad56: 0x6e23ec20, 0x3ad57: 0x6e23ee20, + 0x3ad58: 0x6e23f020, 0x3ad59: 0x6e23f220, 0x3ad5a: 0x6e23f420, 0x3ad5b: 0x6e23f620, + 0x3ad5c: 0x6e23f820, 0x3ad5d: 0x6e23fa20, 0x3ad5e: 0x6e23fc20, 0x3ad5f: 0x6e23fe20, + 0x3ad60: 0x6e240020, 0x3ad61: 0x6e240220, 0x3ad62: 0x6e240420, 0x3ad63: 0x6e240620, + 0x3ad64: 0x6e2dec20, 0x3ad65: 0x6e2dee20, 0x3ad66: 0x6e2df020, 0x3ad67: 0x6e2df220, + 0x3ad68: 0x6e2df420, 0x3ad69: 0x6e2df620, 0x3ad6a: 0x6e2df820, 0x3ad6b: 0x6e2dfa20, + 0x3ad6c: 0x6e2dfc20, 0x3ad6d: 0x6e359e20, 0x3ad6e: 0x6e35a020, 0x3ad6f: 0x6e35a220, + 0x3ad70: 0x6e35a420, 0x3ad71: 0x6e35a620, 0x3ad72: 0x6e35a820, 0x3ad73: 0x6e35aa20, + 0x3ad74: 0x6e35ac20, 0x3ad75: 0x6e3b0620, 0x3ad76: 0x6e3b0820, 0x3ad77: 0x6e3b0a20, + 0x3ad78: 0x6e3b0c20, 0x3ad79: 0x6e3b0e20, 0x3ad7a: 0x6e3b1020, 0x3ad7b: 0x6e3b1220, + 0x3ad7c: 0x6e3b1420, 0x3ad7d: 0x6e3b1620, 0x3ad7e: 0x6e3b1820, 0x3ad7f: 0x6e3ec420, + // Block 0xeb6, offset 0x3ad80 + 0x3ad80: 0x6e3ec620, 0x3ad81: 0x6e3ec820, 0x3ad82: 0x6e3eca20, 0x3ad83: 0x6e3ecc20, + 0x3ad84: 0x6e3ece20, 0x3ad85: 0x6e3ed020, 0x3ad86: 0x6e3ed220, 0x3ad87: 0x6e3ed420, + 0x3ad88: 0x6e436220, 0x3ad89: 0x6e436420, 0x3ad8a: 0x6e44a820, 0x3ad8b: 0x6e44aa20, + 0x3ad8c: 0x6e44ac20, 0x3ad8d: 0x6e44ae20, 0x3ad8e: 0x6e44b020, 0x3ad8f: 0x6e45e820, + 0x3ad90: 0x6e464a20, 0x3ad91: 0x6e464c20, 0x3ad92: 0x6e471820, 0x3ad93: 0x6e472420, + 0x3ad94: 0x6e473820, 0x3ad95: 0x6cb69820, 0x3ad96: 0x6ce6fa20, 0x3ad97: 0x6ce6fc20, + 0x3ad98: 0x6d155820, 0x3ad99: 0x6d155a20, 0x3ad9a: 0x6d155c20, 0x3ad9b: 0x6d155e20, + 0x3ad9c: 0x6d435620, 0x3ad9d: 0x6d997e20, 0x3ad9e: 0x6d998020, 0x3ad9f: 0x6dbc5420, + 0x3ada0: 0x6dda1e20, 0x3ada1: 0x6df23620, 0x3ada2: 0x6e067020, 0x3ada3: 0x6e16ec20, + 0x3ada4: 0x6e35b220, 0x3ada5: 0x6e3b1a20, 0x3ada6: 0x6c8a4820, 0x3ada7: 0x6c8a4a20, + 0x3ada8: 0x6c8a4c20, 0x3ada9: 0x6cb6a020, 0x3adaa: 0x6cb6a220, 0x3adab: 0x6cb6a420, + 0x3adac: 0x6cb6a620, 0x3adad: 0x6ce70220, 0x3adae: 0x6ce70420, 0x3adaf: 0x6ce70620, + 0x3adb0: 0x6ce70820, 0x3adb1: 0x6ce70a20, 0x3adb2: 0x6ce70c20, 0x3adb3: 0x6ce70e20, + 0x3adb4: 0x6ce71020, 0x3adb5: 0x6d156420, 0x3adb6: 0x6d156620, 0x3adb7: 0x6d435820, + 0x3adb8: 0x6d705420, 0x3adb9: 0x6d705620, 0x3adba: 0x6d705820, 0x3adbb: 0x6d705a20, + 0x3adbc: 0x6d998420, 0x3adbd: 0x6dda2020, 0x3adbe: 0x6e067420, 0x3adbf: 0x6e067620, + // Block 0xeb7, offset 0x3adc0 + 0x3adc0: 0x6e067820, 0x3adc1: 0x6e067a20, 0x3adc2: 0x6e3ed620, 0x3adc3: 0x6ce71220, + 0x3adc4: 0x6ce71420, 0x3adc5: 0x6ce71620, 0x3adc6: 0x6d156e20, 0x3adc7: 0x6d157020, + 0x3adc8: 0x6d157220, 0x3adc9: 0x6d157420, 0x3adca: 0x6d157620, 0x3adcb: 0x6d157820, + 0x3adcc: 0x6d157a20, 0x3adcd: 0x6d436420, 0x3adce: 0x6d436620, 0x3adcf: 0x6d436820, + 0x3add0: 0x6d436a20, 0x3add1: 0x6d436c20, 0x3add2: 0x6d436e20, 0x3add3: 0x6d437020, + 0x3add4: 0x6d437220, 0x3add5: 0x6d437420, 0x3add6: 0x6d437620, 0x3add7: 0x6d437820, + 0x3add8: 0x6d437a20, 0x3add9: 0x6d706020, 0x3adda: 0x6d706220, 0x3addb: 0x6d706420, + 0x3addc: 0x6d706620, 0x3addd: 0x6d706820, 0x3adde: 0x6d706a20, 0x3addf: 0x6d706c20, + 0x3ade0: 0x6d706e20, 0x3ade1: 0x6d998c20, 0x3ade2: 0x6d998e20, 0x3ade3: 0x6d999020, + 0x3ade4: 0x6d999220, 0x3ade5: 0x6d999420, 0x3ade6: 0x6d999620, 0x3ade7: 0x6d999820, + 0x3ade8: 0x6d999a20, 0x3ade9: 0x6d999c20, 0x3adea: 0x6d999e20, 0x3adeb: 0x6dbc5820, + 0x3adec: 0x6dbc5a20, 0x3aded: 0x6dbc5c20, 0x3adee: 0x6dbc5e20, 0x3adef: 0x6dbc6020, + 0x3adf0: 0x6dbc6220, 0x3adf1: 0x6dbc6420, 0x3adf2: 0x6dda2220, 0x3adf3: 0x6dda2420, + 0x3adf4: 0x6dda2620, 0x3adf5: 0x6dda2820, 0x3adf6: 0x6dda2a20, 0x3adf7: 0x6dda2c20, + 0x3adf8: 0x6df23c20, 0x3adf9: 0x6df23e20, 0x3adfa: 0x6df24020, 0x3adfb: 0x6e067e20, + 0x3adfc: 0x6e068020, 0x3adfd: 0x6e068220, 0x3adfe: 0x6e068420, 0x3adff: 0x6e068620, + // Block 0xeb8, offset 0x3ae00 + 0x3ae00: 0x6e068820, 0x3ae01: 0x6e16f620, 0x3ae02: 0x6e16f820, 0x3ae03: 0x6e16fa20, + 0x3ae04: 0x6e16fc20, 0x3ae05: 0x6e16fe20, 0x3ae06: 0x6e170020, 0x3ae07: 0x6e170220, + 0x3ae08: 0x6e170420, 0x3ae09: 0x6e170620, 0x3ae0a: 0x6e241020, 0x3ae0b: 0x6e241220, + 0x3ae0c: 0x6e2e0020, 0x3ae0d: 0x6e2e0220, 0x3ae0e: 0x6e2e0420, 0x3ae0f: 0x6e2e0620, + 0x3ae10: 0x6e2e0820, 0x3ae11: 0x6e35b620, 0x3ae12: 0x6e35b820, 0x3ae13: 0x6e3b1e20, + 0x3ae14: 0x6e3ed820, 0x3ae15: 0x6e3eda20, 0x3ae16: 0x6e417020, 0x3ae17: 0x6e417220, + 0x3ae18: 0x6e417420, 0x3ae19: 0x6e436620, 0x3ae1a: 0x6e436820, 0x3ae1b: 0x6cb6aa20, + 0x3ae1c: 0x6cb6ac20, 0x3ae1d: 0x6ce72c20, 0x3ae1e: 0x6ce72e20, 0x3ae1f: 0x6ce73020, + 0x3ae20: 0x6ce73220, 0x3ae21: 0x6d159820, 0x3ae22: 0x6d159a20, 0x3ae23: 0x6d159c20, + 0x3ae24: 0x6d159e20, 0x3ae25: 0x6d15a020, 0x3ae26: 0x6d15a220, 0x3ae27: 0x6d15a420, + 0x3ae28: 0x6d15a620, 0x3ae29: 0x6d15a820, 0x3ae2a: 0x6d15aa20, 0x3ae2b: 0x6d15ac20, + 0x3ae2c: 0x6d15ae20, 0x3ae2d: 0x6d15b020, 0x3ae2e: 0x6d15b220, 0x3ae2f: 0x6d15b420, + 0x3ae30: 0x6d15b620, 0x3ae31: 0x6d15b820, 0x3ae32: 0x6d15ba20, 0x3ae33: 0x6d15bc20, + 0x3ae34: 0x6d15be20, 0x3ae35: 0x6d15c020, 0x3ae36: 0x6d15c220, 0x3ae37: 0x6d15c420, + 0x3ae38: 0x6d43a420, 0x3ae39: 0x6d43a620, 0x3ae3a: 0x6d43a820, 0x3ae3b: 0x6d43aa20, + 0x3ae3c: 0x6d43ac20, 0x3ae3d: 0x6d43ae20, 0x3ae3e: 0x6d43b020, 0x3ae3f: 0x6d43b220, + // Block 0xeb9, offset 0x3ae40 + 0x3ae40: 0x6d43b420, 0x3ae41: 0x6d43b620, 0x3ae42: 0x6d43b820, 0x3ae43: 0x6d43ba20, + 0x3ae44: 0x6d43bc20, 0x3ae45: 0x6d43be20, 0x3ae46: 0x6d43c020, 0x3ae47: 0x6d43c220, + 0x3ae48: 0x6d43c420, 0x3ae49: 0x6d43c620, 0x3ae4a: 0x6d43c820, 0x3ae4b: 0x6d43ca20, + 0x3ae4c: 0x6d43cc20, 0x3ae4d: 0x6d43ce20, 0x3ae4e: 0x6d43d020, 0x3ae4f: 0x6d43d220, + 0x3ae50: 0x6d708c20, 0x3ae51: 0x6d708e20, 0x3ae52: 0x6d709020, 0x3ae53: 0x6d709220, + 0x3ae54: 0x6d709420, 0x3ae55: 0x6d709620, 0x3ae56: 0x6d709820, 0x3ae57: 0x6d709a20, + 0x3ae58: 0x6d709c20, 0x3ae59: 0x6d709e20, 0x3ae5a: 0x6d70a020, 0x3ae5b: 0x6d70a220, + 0x3ae5c: 0x6d70a420, 0x3ae5d: 0x6d70a620, 0x3ae5e: 0x6d70a820, 0x3ae5f: 0x6d70aa20, + 0x3ae60: 0x6d70ac20, 0x3ae61: 0x6d70ae20, 0x3ae62: 0x6d70b020, 0x3ae63: 0x6d70b220, + 0x3ae64: 0x6d70b420, 0x3ae65: 0x6d70b620, 0x3ae66: 0x6d70b820, 0x3ae67: 0x6d70ba20, + 0x3ae68: 0x6d70bc20, 0x3ae69: 0x6d99c020, 0x3ae6a: 0x6d99c220, 0x3ae6b: 0x6d99c420, + 0x3ae6c: 0x6d99c620, 0x3ae6d: 0x6d99c820, 0x3ae6e: 0x6d99ca20, 0x3ae6f: 0x6d99cc20, + 0x3ae70: 0x6d99ce20, 0x3ae71: 0x6d99d020, 0x3ae72: 0x6d99d220, 0x3ae73: 0x6d99d420, + 0x3ae74: 0x6d99d620, 0x3ae75: 0x6d99d820, 0x3ae76: 0x6d99da20, 0x3ae77: 0x6d99dc20, + 0x3ae78: 0x6d99de20, 0x3ae79: 0x6d99e020, 0x3ae7a: 0x6d99e220, 0x3ae7b: 0x6d99e420, + 0x3ae7c: 0x6d99e620, 0x3ae7d: 0x6d99e820, 0x3ae7e: 0x6d99ea20, 0x3ae7f: 0x6dbc8420, + // Block 0xeba, offset 0x3ae80 + 0x3ae80: 0x6dbc8620, 0x3ae81: 0x6dbc8820, 0x3ae82: 0x6dbc8a20, 0x3ae83: 0x6dbc8c20, + 0x3ae84: 0x6dbc8e20, 0x3ae85: 0x6dbc9020, 0x3ae86: 0x6dbc9220, 0x3ae87: 0x6dbc9420, + 0x3ae88: 0x6dbc9620, 0x3ae89: 0x6dbc9820, 0x3ae8a: 0x6dbc9a20, 0x3ae8b: 0x6dbc9c20, + 0x3ae8c: 0x6dbc9e20, 0x3ae8d: 0x6dbca020, 0x3ae8e: 0x6dbca220, 0x3ae8f: 0x6dbca420, + 0x3ae90: 0x6dbca620, 0x3ae91: 0x6dbca820, 0x3ae92: 0x6dbcaa20, 0x3ae93: 0x6dbcac20, + 0x3ae94: 0x6dbcae20, 0x3ae95: 0x6dbcb020, 0x3ae96: 0x6dbcb220, 0x3ae97: 0x6dbcb420, + 0x3ae98: 0x6dbcb620, 0x3ae99: 0x6dbcb820, 0x3ae9a: 0x6dbcba20, 0x3ae9b: 0x6dbcbc20, + 0x3ae9c: 0x6dbcbe20, 0x3ae9d: 0x6dbcc020, 0x3ae9e: 0x6dbcc220, 0x3ae9f: 0x6dda5c20, + 0x3aea0: 0x6dda5e20, 0x3aea1: 0x6dda6020, 0x3aea2: 0x6dda6220, 0x3aea3: 0x6dda6420, + 0x3aea4: 0x6dda6620, 0x3aea5: 0x6dda6820, 0x3aea6: 0x6dda6a20, 0x3aea7: 0x6dda6c20, + 0x3aea8: 0x6dda6e20, 0x3aea9: 0x6dda7020, 0x3aeaa: 0x6dda7220, 0x3aeab: 0x6dda7420, + 0x3aeac: 0x6dda7620, 0x3aead: 0x6dda7820, 0x3aeae: 0x6dda7a20, 0x3aeaf: 0x6dda7c20, + 0x3aeb0: 0x6dda7e20, 0x3aeb1: 0x6dda8020, 0x3aeb2: 0x6dda8220, 0x3aeb3: 0x6dda8420, + 0x3aeb4: 0x6dda8620, 0x3aeb5: 0x6dda8820, 0x3aeb6: 0x6dda8a20, 0x3aeb7: 0x6dda8c20, + 0x3aeb8: 0x6dda8e20, 0x3aeb9: 0x6dda9020, 0x3aeba: 0x6dda9220, 0x3aebb: 0x6dda9420, + 0x3aebc: 0x6dda9620, 0x3aebd: 0x6dda9820, 0x3aebe: 0x6dda9a20, 0x3aebf: 0x6dda9c20, + // Block 0xebb, offset 0x3aec0 + 0x3aec0: 0x6dda9e20, 0x3aec1: 0x6ddaa020, 0x3aec2: 0x6ddaa220, 0x3aec3: 0x6df25e20, + 0x3aec4: 0x6df26020, 0x3aec5: 0x6df26220, 0x3aec6: 0x6df26420, 0x3aec7: 0x6df26620, + 0x3aec8: 0x6df26820, 0x3aec9: 0x6df26a20, 0x3aeca: 0x6df26c20, 0x3aecb: 0x6df26e20, + 0x3aecc: 0x6df27020, 0x3aecd: 0x6df27220, 0x3aece: 0x6df27420, 0x3aecf: 0x6df27620, + 0x3aed0: 0x6df27820, 0x3aed1: 0x6df27a20, 0x3aed2: 0x6df27c20, 0x3aed3: 0x6df27e20, + 0x3aed4: 0x6df28020, 0x3aed5: 0x6df28220, 0x3aed6: 0x6df28420, 0x3aed7: 0x6df28620, + 0x3aed8: 0x6df28820, 0x3aed9: 0x6df28a20, 0x3aeda: 0x6df28c20, 0x3aedb: 0x6df28e20, + 0x3aedc: 0x6df29020, 0x3aedd: 0x6df29220, 0x3aede: 0x6df29420, 0x3aedf: 0x6df29620, + 0x3aee0: 0x6df29820, 0x3aee1: 0x6df29a20, 0x3aee2: 0x6df29c20, 0x3aee3: 0x6df29e20, + 0x3aee4: 0x6df2a020, 0x3aee5: 0x6df2a220, 0x3aee6: 0x6e069820, 0x3aee7: 0x6e069a20, + 0x3aee8: 0x6e069c20, 0x3aee9: 0x6e069e20, 0x3aeea: 0x6e06a020, 0x3aeeb: 0x6e06a220, + 0x3aeec: 0x6e06a420, 0x3aeed: 0x6e06a620, 0x3aeee: 0x6e06a820, 0x3aeef: 0x6e06aa20, + 0x3aef0: 0x6e06ac20, 0x3aef1: 0x6e06ae20, 0x3aef2: 0x6e06b020, 0x3aef3: 0x6e06b220, + 0x3aef4: 0x6e06b420, 0x3aef5: 0x6e06b620, 0x3aef6: 0x6e06b820, 0x3aef7: 0x6e06ba20, + 0x3aef8: 0x6e06bc20, 0x3aef9: 0x6e06be20, 0x3aefa: 0x6e06c020, 0x3aefb: 0x6e06c220, + 0x3aefc: 0x6e06c420, 0x3aefd: 0x6e06c620, 0x3aefe: 0x6e06c820, 0x3aeff: 0x6e06ca20, + // Block 0xebc, offset 0x3af00 + 0x3af00: 0x6e06cc20, 0x3af01: 0x6e06ce20, 0x3af02: 0x6e06d020, 0x3af03: 0x6e171e20, + 0x3af04: 0x6e172020, 0x3af05: 0x6e172220, 0x3af06: 0x6e172420, 0x3af07: 0x6e172620, + 0x3af08: 0x6e172820, 0x3af09: 0x6e172a20, 0x3af0a: 0x6e172c20, 0x3af0b: 0x6e172e20, + 0x3af0c: 0x6e173020, 0x3af0d: 0x6e173220, 0x3af0e: 0x6e173420, 0x3af0f: 0x6e173620, + 0x3af10: 0x6e173820, 0x3af11: 0x6e173a20, 0x3af12: 0x6e173c20, 0x3af13: 0x6e242020, + 0x3af14: 0x6e242220, 0x3af15: 0x6e242420, 0x3af16: 0x6e242620, 0x3af17: 0x6e242820, + 0x3af18: 0x6e242a20, 0x3af19: 0x6e242c20, 0x3af1a: 0x6e242e20, 0x3af1b: 0x6e243020, + 0x3af1c: 0x6e243220, 0x3af1d: 0x6e243420, 0x3af1e: 0x6e243620, 0x3af1f: 0x6e243820, + 0x3af20: 0x6e243a20, 0x3af21: 0x6e243c20, 0x3af22: 0x6e243e20, 0x3af23: 0x6e244020, + 0x3af24: 0x6e244220, 0x3af25: 0x6e2e1220, 0x3af26: 0x6e2e1420, 0x3af27: 0x6e2e1620, + 0x3af28: 0x6e2e1820, 0x3af29: 0x6e2e1a20, 0x3af2a: 0x6e2e1c20, 0x3af2b: 0x6e2e1e20, + 0x3af2c: 0x6e2e2020, 0x3af2d: 0x6e2e2220, 0x3af2e: 0x6e2e2420, 0x3af2f: 0x6e2e2620, + 0x3af30: 0x6e2e2820, 0x3af31: 0x6e2e2a20, 0x3af32: 0x6e35c220, 0x3af33: 0x6e35c420, + 0x3af34: 0x6e35c620, 0x3af35: 0x6e35c820, 0x3af36: 0x6e35ca20, 0x3af37: 0x6e35cc20, + 0x3af38: 0x6e3b2420, 0x3af39: 0x6e3b2620, 0x3af3a: 0x6e3b2820, 0x3af3b: 0x6e3b9e20, + 0x3af3c: 0x6e3b2a20, 0x3af3d: 0x6e3b2c20, 0x3af3e: 0x6e3b2e20, 0x3af3f: 0x6e3ee220, + // Block 0xebd, offset 0x3af40 + 0x3af40: 0x6e3ee420, 0x3af41: 0x6e3ee620, 0x3af42: 0x6e3ee820, 0x3af43: 0x6e3eea20, + 0x3af44: 0x6e3eec20, 0x3af45: 0x6e3eee20, 0x3af46: 0x6e3ef020, 0x3af47: 0x6e417820, + 0x3af48: 0x6e436a20, 0x3af49: 0x6e436c20, 0x3af4a: 0x6e436e20, 0x3af4b: 0x6e457020, + 0x3af4c: 0x6e464e20, 0x3af4d: 0x6e465020, 0x3af4e: 0x6e469420, 0x3af4f: 0x6e469620, + 0x3af50: 0x6e46b620, 0x3af51: 0x6e471a20, 0x3af52: 0x6ce73620, 0x3af53: 0x6d15c820, + 0x3af54: 0x6d15ca20, 0x3af55: 0x6d15cc20, 0x3af56: 0x6d15ce20, 0x3af57: 0x6d15d020, + 0x3af58: 0x6d43e420, 0x3af59: 0x6d43e620, 0x3af5a: 0x6d43e820, 0x3af5b: 0x6d43ea20, + 0x3af5c: 0x6d43ec20, 0x3af5d: 0x6d43ee20, 0x3af5e: 0x6d43f020, 0x3af5f: 0x6d43f220, + 0x3af60: 0x6d43f420, 0x3af61: 0x6d43f620, 0x3af62: 0x6d43f820, 0x3af63: 0x6d43fa20, + 0x3af64: 0x6d70c820, 0x3af65: 0x6d70ca20, 0x3af66: 0x6d70cc20, 0x3af67: 0x6d70ce20, + 0x3af68: 0x6d70d020, 0x3af69: 0x6d70d220, 0x3af6a: 0x6d70d420, 0x3af6b: 0x6d70d620, + 0x3af6c: 0x6d70d820, 0x3af6d: 0x6d70da20, 0x3af6e: 0x6d70dc20, 0x3af6f: 0x6d99f020, + 0x3af70: 0x6d99f220, 0x3af71: 0x6d99f420, 0x3af72: 0x6d99f620, 0x3af73: 0x6d99f820, + 0x3af74: 0x6d99fa20, 0x3af75: 0x6d99fc20, 0x3af76: 0x6d99fe20, 0x3af77: 0x6d9a0020, + 0x3af78: 0x6dbccc20, 0x3af79: 0x6dbcce20, 0x3af7a: 0x6dbcd020, 0x3af7b: 0x6dbcd220, + 0x3af7c: 0x6dbcd420, 0x3af7d: 0x6dbcd620, 0x3af7e: 0x6dbcd820, 0x3af7f: 0x6dbcda20, + // Block 0xebe, offset 0x3af80 + 0x3af80: 0x6dbcdc20, 0x3af81: 0x6dbcde20, 0x3af82: 0x6dbce020, 0x3af83: 0x6dbce220, + 0x3af84: 0x6dbce420, 0x3af85: 0x6ddab420, 0x3af86: 0x6ddab620, 0x3af87: 0x6ddab820, + 0x3af88: 0x6ddaba20, 0x3af89: 0x6ddabc20, 0x3af8a: 0x6ddabe20, 0x3af8b: 0x6ddac020, + 0x3af8c: 0x6ddac220, 0x3af8d: 0x6ddac420, 0x3af8e: 0x6ddac620, 0x3af8f: 0x6df2b020, + 0x3af90: 0x6df2b220, 0x3af91: 0x6df2b420, 0x3af92: 0x6df2b620, 0x3af93: 0x6df2b820, + 0x3af94: 0x6df2ba20, 0x3af95: 0x6df2bc20, 0x3af96: 0x6df2be20, 0x3af97: 0x6df2c020, + 0x3af98: 0x6e06d820, 0x3af99: 0x6e06da20, 0x3af9a: 0x6e06dc20, 0x3af9b: 0x6e06de20, + 0x3af9c: 0x6e06e020, 0x3af9d: 0x6e06e220, 0x3af9e: 0x6e06e420, 0x3af9f: 0x6e06e620, + 0x3afa0: 0x6e174620, 0x3afa1: 0x6e174820, 0x3afa2: 0x6e174a20, 0x3afa3: 0x6e174c20, + 0x3afa4: 0x6e174e20, 0x3afa5: 0x6e175020, 0x3afa6: 0x6e175220, 0x3afa7: 0x6e175420, + 0x3afa8: 0x6e244a20, 0x3afa9: 0x6e244c20, 0x3afaa: 0x6e244e20, 0x3afab: 0x6e245020, + 0x3afac: 0x6e245220, 0x3afad: 0x6e245420, 0x3afae: 0x6e2e2e20, 0x3afaf: 0x6e2e3020, + 0x3afb0: 0x6e2e3220, 0x3afb1: 0x6e2e3420, 0x3afb2: 0x6e35d220, 0x3afb3: 0x6e35d420, + 0x3afb4: 0x6e3b3020, 0x3afb5: 0x6e3ef220, 0x3afb6: 0x6e417a20, 0x3afb7: 0x6e417c20, + 0x3afb8: 0x6e417e20, 0x3afb9: 0x6e437020, 0x3afba: 0x6e44b420, 0x3afbb: 0x6e44b620, + 0x3afbc: 0x6c428220, 0x3afbd: 0x6c633820, 0x3afbe: 0x6c633a20, 0x3afbf: 0x6d15d820, + // Block 0xebf, offset 0x3afc0 + 0x3afc0: 0x6d15da20, 0x3afc1: 0x6d15e220, 0x3afc2: 0x6d15e420, 0x3afc3: 0x6d70e420, + 0x3afc4: 0x6d9a0620, 0x3afc5: 0x6dbcec20, 0x3afc6: 0x6dbcee20, 0x3afc7: 0x6dbcf020, + 0x3afc8: 0x6ddac820, 0x3afc9: 0x6df2c820, 0x3afca: 0x6df2ca20, 0x3afcb: 0x6e06ec20, + 0x3afcc: 0x6e175820, 0x3afcd: 0x6e06ee20, 0x3afce: 0x6e06f020, 0x3afcf: 0x6e175a20, + 0x3afd0: 0x6e175c20, 0x3afd1: 0x6e245620, 0x3afd2: 0x6e245820, 0x3afd3: 0x6e245a20, + 0x3afd4: 0x6e2e3820, 0x3afd5: 0x6e2e3a20, 0x3afd6: 0x6e3b3220, 0x3afd7: 0x6ce74220, + 0x3afd8: 0x6d15ec20, 0x3afd9: 0x6d15ee20, 0x3afda: 0x6d440820, 0x3afdb: 0x6d440a20, + 0x3afdc: 0x6d440c20, 0x3afdd: 0x6d440e20, 0x3afde: 0x6d70e620, 0x3afdf: 0x6d70e820, + 0x3afe0: 0x6d70ea20, 0x3afe1: 0x6d70ec20, 0x3afe2: 0x6d70ee20, 0x3afe3: 0x6d70f020, + 0x3afe4: 0x6d70f220, 0x3afe5: 0x6d70f420, 0x3afe6: 0x6d70f620, 0x3afe7: 0x6d9a0e20, + 0x3afe8: 0x6d9a1020, 0x3afe9: 0x6d9a1220, 0x3afea: 0x6d9a1420, 0x3afeb: 0x6d9a1620, + 0x3afec: 0x6d9a1820, 0x3afed: 0x6dbcf220, 0x3afee: 0x6dbcf420, 0x3afef: 0x6dbcf620, + 0x3aff0: 0x6dbcf820, 0x3aff1: 0x6ddad020, 0x3aff2: 0x6ddad220, 0x3aff3: 0x6ddad420, + 0x3aff4: 0x6ddad620, 0x3aff5: 0x6df2d420, 0x3aff6: 0x6df2d620, 0x3aff7: 0x6df2d820, + 0x3aff8: 0x6df2da20, 0x3aff9: 0x6e06f820, 0x3affa: 0x6e06fa20, 0x3affb: 0x6e06fc20, + 0x3affc: 0x6e06fe20, 0x3affd: 0x6e070020, 0x3affe: 0x6e070220, 0x3afff: 0x6e175e20, + // Block 0xec0, offset 0x3b000 + 0x3b000: 0x6e176020, 0x3b001: 0x6e176220, 0x3b002: 0x6e245e20, 0x3b003: 0x6e246020, + 0x3b004: 0x6e246220, 0x3b005: 0x6e246420, 0x3b006: 0x6e246620, 0x3b007: 0x6e2e3e20, + 0x3b008: 0x6e35d820, 0x3b009: 0x6e418020, 0x3b00a: 0x6e469820, 0x3b00b: 0x6c634220, + 0x3b00c: 0x6cb6b820, 0x3b00d: 0x6cb6ba20, 0x3b00e: 0x6cb6bc20, 0x3b00f: 0x6cb6be20, + 0x3b010: 0x6ce75020, 0x3b011: 0x6ce75220, 0x3b012: 0x6ce75420, 0x3b013: 0x6ce75620, + 0x3b014: 0x6ce75820, 0x3b015: 0x6ce75a20, 0x3b016: 0x6ce75c20, 0x3b017: 0x6ce75e20, + 0x3b018: 0x6ce76020, 0x3b019: 0x6d160e20, 0x3b01a: 0x6d161020, 0x3b01b: 0x6d161220, + 0x3b01c: 0x6d161420, 0x3b01d: 0x6d161620, 0x3b01e: 0x6d161820, 0x3b01f: 0x6d161a20, + 0x3b020: 0x6d161c20, 0x3b021: 0x6d161e20, 0x3b022: 0x6d162020, 0x3b023: 0x6d162220, + 0x3b024: 0x6d162420, 0x3b025: 0x6d162620, 0x3b026: 0x6d162820, 0x3b027: 0x6d162a20, + 0x3b028: 0x6d162c20, 0x3b029: 0x6d162e20, 0x3b02a: 0x6d163020, 0x3b02b: 0x6d163220, + 0x3b02c: 0x6d163420, 0x3b02d: 0x6d163620, 0x3b02e: 0x6d163820, 0x3b02f: 0x6d163a20, + 0x3b030: 0x6d443220, 0x3b031: 0x6d443420, 0x3b032: 0x6d443620, 0x3b033: 0x6d443820, + 0x3b034: 0x6d443a20, 0x3b035: 0x6d443c20, 0x3b036: 0x6d443e20, 0x3b037: 0x6d444020, + 0x3b038: 0x6d444220, 0x3b039: 0x6d444420, 0x3b03a: 0x6d444620, 0x3b03b: 0x6d444820, + 0x3b03c: 0x6d444a20, 0x3b03d: 0x6d444c20, 0x3b03e: 0x6d444e20, 0x3b03f: 0x6d445020, + // Block 0xec1, offset 0x3b040 + 0x3b040: 0x6d445220, 0x3b041: 0x6d445420, 0x3b042: 0x6d445620, 0x3b043: 0x6d445820, + 0x3b044: 0x6d445a20, 0x3b045: 0x6d445c20, 0x3b046: 0x6d445e20, 0x3b047: 0x6d446020, + 0x3b048: 0x6d446220, 0x3b049: 0x6d446420, 0x3b04a: 0x6d446620, 0x3b04b: 0x6d446820, + 0x3b04c: 0x6d446a20, 0x3b04d: 0x6d446c20, 0x3b04e: 0x6d446e20, 0x3b04f: 0x6d712020, + 0x3b050: 0x6d712220, 0x3b051: 0x6d712420, 0x3b052: 0x6d712620, 0x3b053: 0x6d712820, + 0x3b054: 0x6d712a20, 0x3b055: 0x6d712c20, 0x3b056: 0x6d712e20, 0x3b057: 0x6d713020, + 0x3b058: 0x6d713220, 0x3b059: 0x6d713420, 0x3b05a: 0x6d713620, 0x3b05b: 0x6d713820, + 0x3b05c: 0x6d713a20, 0x3b05d: 0x6d713c20, 0x3b05e: 0x6d713e20, 0x3b05f: 0x6d714020, + 0x3b060: 0x6d714220, 0x3b061: 0x6d714420, 0x3b062: 0x6d714620, 0x3b063: 0x6d714820, + 0x3b064: 0x6d714a20, 0x3b065: 0x6d714c20, 0x3b066: 0x6d714e20, 0x3b067: 0x6d715020, + 0x3b068: 0x6d715220, 0x3b069: 0x6d715420, 0x3b06a: 0x6d715620, 0x3b06b: 0x6d715820, + 0x3b06c: 0x6d715a20, 0x3b06d: 0x6d715c20, 0x3b06e: 0x6d9a5020, 0x3b06f: 0x6d9a5220, + 0x3b070: 0x6d9a5420, 0x3b071: 0x6d9a5620, 0x3b072: 0x6d9a5820, 0x3b073: 0x6d9a5a20, + 0x3b074: 0x6d9a5c20, 0x3b075: 0x6d9a5e20, 0x3b076: 0x6d9a6020, 0x3b077: 0x6d9a6220, + 0x3b078: 0x6d9a6420, 0x3b079: 0x6d9a6620, 0x3b07a: 0x6d9a6820, 0x3b07b: 0x6d9a6a20, + 0x3b07c: 0x6d9a6c20, 0x3b07d: 0x6d9a6e20, 0x3b07e: 0x6d9a7020, 0x3b07f: 0x6d9a7220, + // Block 0xec2, offset 0x3b080 + 0x3b080: 0x6d9a7420, 0x3b081: 0x6d9a7620, 0x3b082: 0x6d9a7820, 0x3b083: 0x6d9a7a20, + 0x3b084: 0x6d9a7c20, 0x3b085: 0x6d9a7e20, 0x3b086: 0x6d9a8020, 0x3b087: 0x6d9a8220, + 0x3b088: 0x6d9a8420, 0x3b089: 0x6d9a8620, 0x3b08a: 0x6d9a8820, 0x3b08b: 0x6d9a8a20, + 0x3b08c: 0x6d9a8c20, 0x3b08d: 0x6d9a8e20, 0x3b08e: 0x6d9a9020, 0x3b08f: 0x6d9a9220, + 0x3b090: 0x6d9a9420, 0x3b091: 0x6d9a9620, 0x3b092: 0x6d9a9820, 0x3b093: 0x6d9a9a20, + 0x3b094: 0x6d9a9c20, 0x3b095: 0x6d9a9e20, 0x3b096: 0x6d9aa020, 0x3b097: 0x6d9aa220, + 0x3b098: 0x6d9aa420, 0x3b099: 0x6d9aa620, 0x3b09a: 0x6d9aa820, 0x3b09b: 0x6d9aaa20, + 0x3b09c: 0x6d9aac20, 0x3b09d: 0x6dbd2220, 0x3b09e: 0x6dbd2420, 0x3b09f: 0x6dbd2620, + 0x3b0a0: 0x6dbd2820, 0x3b0a1: 0x6dbd2a20, 0x3b0a2: 0x6dbd2c20, 0x3b0a3: 0x6dbd2e20, + 0x3b0a4: 0x6dbd3020, 0x3b0a5: 0x6dbd3220, 0x3b0a6: 0x6dbd3420, 0x3b0a7: 0x6dbd3620, + 0x3b0a8: 0x6dbd3820, 0x3b0a9: 0x6dbd3a20, 0x3b0aa: 0x6dbd3c20, 0x3b0ab: 0x6dbd3e20, + 0x3b0ac: 0x6dbd4020, 0x3b0ad: 0x6dbd4220, 0x3b0ae: 0x6dbd4420, 0x3b0af: 0x6dbd4620, + 0x3b0b0: 0x6dbd4820, 0x3b0b1: 0x6dbd4a20, 0x3b0b2: 0x6dbd4c20, 0x3b0b3: 0x6dbd4e20, + 0x3b0b4: 0x6dbd5020, 0x3b0b5: 0x6dbd5220, 0x3b0b6: 0x6dbd5420, 0x3b0b7: 0x6dbd5620, + 0x3b0b8: 0x6dbd5820, 0x3b0b9: 0x6dbd5a20, 0x3b0ba: 0x6dbd5c20, 0x3b0bb: 0x6dbd5e20, + 0x3b0bc: 0x6dbd6020, 0x3b0bd: 0x6dbd6220, 0x3b0be: 0x6dbd6420, 0x3b0bf: 0x6dbd6620, + // Block 0xec3, offset 0x3b0c0 + 0x3b0c0: 0x6ddb0820, 0x3b0c1: 0x6ddb0a20, 0x3b0c2: 0x6ddb0c20, 0x3b0c3: 0x6ddb0e20, + 0x3b0c4: 0x6ddb1020, 0x3b0c5: 0x6ddb1220, 0x3b0c6: 0x6ddb1420, 0x3b0c7: 0x6ddb1620, + 0x3b0c8: 0x6ddb1820, 0x3b0c9: 0x6ddb1a20, 0x3b0ca: 0x6ddb1c20, 0x3b0cb: 0x6ddb1e20, + 0x3b0cc: 0x6ddb2020, 0x3b0cd: 0x6ddb2220, 0x3b0ce: 0x6ddb2420, 0x3b0cf: 0x6ddb2620, + 0x3b0d0: 0x6ddb2820, 0x3b0d1: 0x6ddb2a20, 0x3b0d2: 0x6ddb2c20, 0x3b0d3: 0x6ddb2e20, + 0x3b0d4: 0x6ddb3020, 0x3b0d5: 0x6ddb3220, 0x3b0d6: 0x6ddb3420, 0x3b0d7: 0x6ddb3620, + 0x3b0d8: 0x6ddb3820, 0x3b0d9: 0x6df30220, 0x3b0da: 0x6df30420, 0x3b0db: 0x6df30620, + 0x3b0dc: 0x6df30820, 0x3b0dd: 0x6df30a20, 0x3b0de: 0x6df30c20, 0x3b0df: 0x6df30e20, + 0x3b0e0: 0x6df31020, 0x3b0e1: 0x6df31220, 0x3b0e2: 0x6df31420, 0x3b0e3: 0x6df31620, + 0x3b0e4: 0x6df31820, 0x3b0e5: 0x6df31a20, 0x3b0e6: 0x6df31c20, 0x3b0e7: 0x6df31e20, + 0x3b0e8: 0x6df32020, 0x3b0e9: 0x6df32220, 0x3b0ea: 0x6df32420, 0x3b0eb: 0x6df32620, + 0x3b0ec: 0x6df32820, 0x3b0ed: 0x6df32a20, 0x3b0ee: 0x6df32c20, 0x3b0ef: 0x6df32e20, + 0x3b0f0: 0x6df33020, 0x3b0f1: 0x6df33220, 0x3b0f2: 0x6df33420, 0x3b0f3: 0x6e071820, + 0x3b0f4: 0x6e071a20, 0x3b0f5: 0x6e071c20, 0x3b0f6: 0x6e071e20, 0x3b0f7: 0x6e072020, + 0x3b0f8: 0x6e072220, 0x3b0f9: 0x6e072420, 0x3b0fa: 0x6e072620, 0x3b0fb: 0x6e072820, + 0x3b0fc: 0x6e072a20, 0x3b0fd: 0x6e072c20, 0x3b0fe: 0x6e072e20, 0x3b0ff: 0x6e073020, + // Block 0xec4, offset 0x3b100 + 0x3b100: 0x6e073220, 0x3b101: 0x6e073420, 0x3b102: 0x6e073620, 0x3b103: 0x6e073820, + 0x3b104: 0x6e073a20, 0x3b105: 0x6e073c20, 0x3b106: 0x6e073e20, 0x3b107: 0x6e074020, + 0x3b108: 0x6e074220, 0x3b109: 0x6e177c20, 0x3b10a: 0x6e177e20, 0x3b10b: 0x6e178020, + 0x3b10c: 0x6e178220, 0x3b10d: 0x6e178420, 0x3b10e: 0x6e178620, 0x3b10f: 0x6e178820, + 0x3b110: 0x6e178a20, 0x3b111: 0x6e178c20, 0x3b112: 0x6e178e20, 0x3b113: 0x6e179020, + 0x3b114: 0x6e179220, 0x3b115: 0x6e179420, 0x3b116: 0x6e179620, 0x3b117: 0x6e179820, + 0x3b118: 0x6e179a20, 0x3b119: 0x6e179c20, 0x3b11a: 0x6e179e20, 0x3b11b: 0x6e17a020, + 0x3b11c: 0x6e17a220, 0x3b11d: 0x6e17a420, 0x3b11e: 0x6e17a620, 0x3b11f: 0x6e247420, + 0x3b120: 0x6e247620, 0x3b121: 0x6e247820, 0x3b122: 0x6e247a20, 0x3b123: 0x6e247c20, + 0x3b124: 0x6e247e20, 0x3b125: 0x6e248020, 0x3b126: 0x6e248220, 0x3b127: 0x6e248420, + 0x3b128: 0x6e248620, 0x3b129: 0x6e248820, 0x3b12a: 0x6e248a20, 0x3b12b: 0x6e248c20, + 0x3b12c: 0x6e2e4820, 0x3b12d: 0x6e2e4a20, 0x3b12e: 0x6e2e4c20, 0x3b12f: 0x6e2e4e20, + 0x3b130: 0x6e2e5020, 0x3b131: 0x6e2e5220, 0x3b132: 0x6e2e5420, 0x3b133: 0x6e2e5620, + 0x3b134: 0x6e2e5820, 0x3b135: 0x6e2e5a20, 0x3b136: 0x6e2e5c20, 0x3b137: 0x6e2e5e20, + 0x3b138: 0x6e2e6020, 0x3b139: 0x6e2e6220, 0x3b13a: 0x6e2e6420, 0x3b13b: 0x6e2e6620, + 0x3b13c: 0x6e2e6820, 0x3b13d: 0x6e2e6a20, 0x3b13e: 0x6e35e020, 0x3b13f: 0x6e35e220, + // Block 0xec5, offset 0x3b140 + 0x3b140: 0x6e35e420, 0x3b141: 0x6e35e620, 0x3b142: 0x6e35e820, 0x3b143: 0x6e35ea20, + 0x3b144: 0x6e35ec20, 0x3b145: 0x6e35ee20, 0x3b146: 0x6e3b3c20, 0x3b147: 0x6e3b3e20, + 0x3b148: 0x6e3b4020, 0x3b149: 0x6e3ef420, 0x3b14a: 0x6e3ef620, 0x3b14b: 0x6e3ef820, + 0x3b14c: 0x6e3efa20, 0x3b14d: 0x6e3efc20, 0x3b14e: 0x6e3efe20, 0x3b14f: 0x6e418620, + 0x3b150: 0x6e418820, 0x3b151: 0x6e418a20, 0x3b152: 0x6e44b820, 0x3b153: 0x6e44ba20, + 0x3b154: 0x6e460020, 0x3b155: 0x6d447420, 0x3b156: 0x6d447620, 0x3b157: 0x6df33a20, + 0x3b158: 0x6cb6ce20, 0x3b159: 0x6cb6d020, 0x3b15a: 0x6ce77e20, 0x3b15b: 0x6ce78020, + 0x3b15c: 0x6ce78220, 0x3b15d: 0x6ce78420, 0x3b15e: 0x6ce78620, 0x3b15f: 0x6ce78820, + 0x3b160: 0x6ce78a20, 0x3b161: 0x6ce78c20, 0x3b162: 0x6d165c20, 0x3b163: 0x6d165e20, + 0x3b164: 0x6d166020, 0x3b165: 0x6d166220, 0x3b166: 0x6d166420, 0x3b167: 0x6d166620, + 0x3b168: 0x6d166820, 0x3b169: 0x6d166a20, 0x3b16a: 0x6d166c20, 0x3b16b: 0x6d166e20, + 0x3b16c: 0x6d167020, 0x3b16d: 0x6d167220, 0x3b16e: 0x6d167420, 0x3b16f: 0x6d167620, + 0x3b170: 0x6cf59620, 0x3b171: 0x6d167820, 0x3b172: 0x6d167a20, 0x3b173: 0x6d167c20, + 0x3b174: 0x6d449420, 0x3b175: 0x6d449620, 0x3b176: 0x6d449820, 0x3b177: 0x6d449a20, + 0x3b178: 0x6d449c20, 0x3b179: 0x6d449e20, 0x3b17a: 0x6d44a020, 0x3b17b: 0x6d44a220, + 0x3b17c: 0x6d44a420, 0x3b17d: 0x6d44a620, 0x3b17e: 0x6d44a820, 0x3b17f: 0x6d44aa20, + // Block 0xec6, offset 0x3b180 + 0x3b180: 0x6d44ac20, 0x3b181: 0x6d44ae20, 0x3b182: 0x6d44b020, 0x3b183: 0x6d44b220, + 0x3b184: 0x6d717620, 0x3b185: 0x6d717820, 0x3b186: 0x6d717a20, 0x3b187: 0x6d717c20, + 0x3b188: 0x6d717e20, 0x3b189: 0x6d718020, 0x3b18a: 0x6d718220, 0x3b18b: 0x6d718420, + 0x3b18c: 0x6d718620, 0x3b18d: 0x6d718820, 0x3b18e: 0x6d718a20, 0x3b18f: 0x6d718c20, + 0x3b190: 0x6d718e20, 0x3b191: 0x6d719020, 0x3b192: 0x6d719220, 0x3b193: 0x6d9aca20, + 0x3b194: 0x6d9acc20, 0x3b195: 0x6d9ace20, 0x3b196: 0x6d9ad020, 0x3b197: 0x6d9ad220, + 0x3b198: 0x6d9ad420, 0x3b199: 0x6d9ad620, 0x3b19a: 0x6d9ad820, 0x3b19b: 0x6d9ada20, + 0x3b19c: 0x6d9adc20, 0x3b19d: 0x6d9ade20, 0x3b19e: 0x6d9ae020, 0x3b19f: 0x6d9ae220, + 0x3b1a0: 0x6d9ae420, 0x3b1a1: 0x6d9ae620, 0x3b1a2: 0x6d9ae820, 0x3b1a3: 0x6d9aea20, + 0x3b1a4: 0x6d9aec20, 0x3b1a5: 0x6d9aee20, 0x3b1a6: 0x6d9af020, 0x3b1a7: 0x6d9af220, + 0x3b1a8: 0x6dbd7c20, 0x3b1a9: 0x6dbd7e20, 0x3b1aa: 0x6dbd8020, 0x3b1ab: 0x6dbd8220, + 0x3b1ac: 0x6dbd8420, 0x3b1ad: 0x6dbd8620, 0x3b1ae: 0x6dbd8820, 0x3b1af: 0x6dbd8a20, + 0x3b1b0: 0x6dbd8c20, 0x3b1b1: 0x6dbd8e20, 0x3b1b2: 0x6dbd9020, 0x3b1b3: 0x6dbd9220, + 0x3b1b4: 0x6dbd9420, 0x3b1b5: 0x6dbd9620, 0x3b1b6: 0x6dbd9820, 0x3b1b7: 0x6dbd9a20, + 0x3b1b8: 0x6dbd9c20, 0x3b1b9: 0x6dbd9e20, 0x3b1ba: 0x6dbda020, 0x3b1bb: 0x6dbda220, + 0x3b1bc: 0x6dbda420, 0x3b1bd: 0x6dbda620, 0x3b1be: 0x6dbda820, 0x3b1bf: 0x6dbdaa20, + // Block 0xec7, offset 0x3b1c0 + 0x3b1c0: 0x6dbdac20, 0x3b1c1: 0x6dbdae20, 0x3b1c2: 0x6dbdb020, 0x3b1c3: 0x6dbdb220, + 0x3b1c4: 0x6dbdb420, 0x3b1c5: 0x6ddb5620, 0x3b1c6: 0x6ddb5820, 0x3b1c7: 0x6ddb5a20, + 0x3b1c8: 0x6ddb5c20, 0x3b1c9: 0x6ddb5e20, 0x3b1ca: 0x6ddb6020, 0x3b1cb: 0x6ddb6220, + 0x3b1cc: 0x6ddb6420, 0x3b1cd: 0x6ddb6620, 0x3b1ce: 0x6df34e20, 0x3b1cf: 0x6ddb6820, + 0x3b1d0: 0x6ddb6a20, 0x3b1d1: 0x6ddb6c20, 0x3b1d2: 0x6ddb6e20, 0x3b1d3: 0x6ddb7020, + 0x3b1d4: 0x6ddb7220, 0x3b1d5: 0x6ddb7420, 0x3b1d6: 0x6ddb7620, 0x3b1d7: 0x6ddb7820, + 0x3b1d8: 0x6ddb7a20, 0x3b1d9: 0x6ddb7c20, 0x3b1da: 0x6ddb7e20, 0x3b1db: 0x6ddb8020, + 0x3b1dc: 0x6df35020, 0x3b1dd: 0x6df35220, 0x3b1de: 0x6df35420, 0x3b1df: 0x6df35620, + 0x3b1e0: 0x6df35820, 0x3b1e1: 0x6df35a20, 0x3b1e2: 0x6df35c20, 0x3b1e3: 0x6df35e20, + 0x3b1e4: 0x6df36020, 0x3b1e5: 0x6df36220, 0x3b1e6: 0x6df36420, 0x3b1e7: 0x6df36620, + 0x3b1e8: 0x6df36820, 0x3b1e9: 0x6df36a20, 0x3b1ea: 0x6df36c20, 0x3b1eb: 0x6df36e20, + 0x3b1ec: 0x6df37020, 0x3b1ed: 0x6e075620, 0x3b1ee: 0x6e075820, 0x3b1ef: 0x6e075a20, + 0x3b1f0: 0x6e075c20, 0x3b1f1: 0x6e075e20, 0x3b1f2: 0x6e076020, 0x3b1f3: 0x6e076220, + 0x3b1f4: 0x6e076420, 0x3b1f5: 0x6e076620, 0x3b1f6: 0x6e076820, 0x3b1f7: 0x6e076a20, + 0x3b1f8: 0x6e17bc20, 0x3b1f9: 0x6e17be20, 0x3b1fa: 0x6e17c020, 0x3b1fb: 0x6e17c220, + 0x3b1fc: 0x6e17c420, 0x3b1fd: 0x6e17c620, 0x3b1fe: 0x6e17c820, 0x3b1ff: 0x6e17ca20, + // Block 0xec8, offset 0x3b200 + 0x3b200: 0x6e17cc20, 0x3b201: 0x6e17ce20, 0x3b202: 0x6e17d020, 0x3b203: 0x6e17d220, + 0x3b204: 0x6e17d420, 0x3b205: 0x6e17d620, 0x3b206: 0x6e17d820, 0x3b207: 0x6e17da20, + 0x3b208: 0x6e249220, 0x3b209: 0x6e249420, 0x3b20a: 0x6e249620, 0x3b20b: 0x6e249820, + 0x3b20c: 0x6e249a20, 0x3b20d: 0x6e249c20, 0x3b20e: 0x6e2e7020, 0x3b20f: 0x6e2e7220, + 0x3b210: 0x6e2e7420, 0x3b211: 0x6e35f420, 0x3b212: 0x6e35f620, 0x3b213: 0x6e35f820, + 0x3b214: 0x6e35fa20, 0x3b215: 0x6e35fc20, 0x3b216: 0x6e3b4220, 0x3b217: 0x6e3b4420, + 0x3b218: 0x6e3b4620, 0x3b219: 0x6e3b4820, 0x3b21a: 0x6e3b4a20, 0x3b21b: 0x6e3f0020, + 0x3b21c: 0x6e3f0220, 0x3b21d: 0x6e419020, 0x3b21e: 0x6e419220, 0x3b21f: 0x6e437220, + 0x3b220: 0x6e46d220, 0x3b221: 0x6e46f220, 0x3b222: 0x6e470c20, 0x3b223: 0x6e473420, + 0x3b224: 0x6e473a20, 0x3b225: 0x6c635620, 0x3b226: 0x6c635820, 0x3b227: 0x6cb6d220, + 0x3b228: 0x6ce79020, 0x3b229: 0x6ce79220, 0x3b22a: 0x6ce79420, 0x3b22b: 0x6d168220, + 0x3b22c: 0x6d168420, 0x3b22d: 0x6d44bc20, 0x3b22e: 0x6d44be20, 0x3b22f: 0x6d9af820, + 0x3b230: 0x6dbdb820, 0x3b231: 0x6c635e20, 0x3b232: 0x6d168820, 0x3b233: 0x6d44c020, + 0x3b234: 0x6d719620, 0x3b235: 0x6ddb8820, 0x3b236: 0x6df37820, 0x3b237: 0x6df37a20, + 0x3b238: 0x6df37c20, 0x3b239: 0x6e076c20, 0x3b23a: 0x6e17de20, 0x3b23b: 0x6e17e020, + 0x3b23c: 0x6e24a220, 0x3b23d: 0x6e24a420, 0x3b23e: 0x6e45ea20, 0x3b23f: 0x6c429020, + // Block 0xec9, offset 0x3b240 + 0x3b240: 0x6c429220, 0x3b241: 0x6c429420, 0x3b242: 0x6c636620, 0x3b243: 0x6c429620, + 0x3b244: 0x6c8a6e20, 0x3b245: 0x6c8a7020, 0x3b246: 0x6c8a7220, 0x3b247: 0x6cb6de20, + 0x3b248: 0x6cb6e020, 0x3b249: 0x6cb6e220, 0x3b24a: 0x6cb6e420, 0x3b24b: 0x6cb6e620, + 0x3b24c: 0x6cb6e820, 0x3b24d: 0x6cb6ea20, 0x3b24e: 0x6cb6ec20, 0x3b24f: 0x6cb6ee20, + 0x3b250: 0x6cb6f020, 0x3b251: 0x6cb6f220, 0x3b252: 0x6cb6f420, 0x3b253: 0x6cb6f620, + 0x3b254: 0x6cb6f820, 0x3b255: 0x6ce7b020, 0x3b256: 0x6ce7b220, 0x3b257: 0x6ce7b420, + 0x3b258: 0x6ce7b620, 0x3b259: 0x6ce7b820, 0x3b25a: 0x6ce7ba20, 0x3b25b: 0x6ce7bc20, + 0x3b25c: 0x6ce7be20, 0x3b25d: 0x6ce7c020, 0x3b25e: 0x6ce7c220, 0x3b25f: 0x6ce7c420, + 0x3b260: 0x6ce7c620, 0x3b261: 0x6ce7c820, 0x3b262: 0x6ce7ca20, 0x3b263: 0x6ce7cc20, + 0x3b264: 0x6ce7ce20, 0x3b265: 0x6ce7d020, 0x3b266: 0x6ce7d220, 0x3b267: 0x6ce7d420, + 0x3b268: 0x6d16b020, 0x3b269: 0x6d16b220, 0x3b26a: 0x6d16b420, 0x3b26b: 0x6d16b620, + 0x3b26c: 0x6d16b820, 0x3b26d: 0x6d16ba20, 0x3b26e: 0x6d16bc20, 0x3b26f: 0x6d16be20, + 0x3b270: 0x6d16c020, 0x3b271: 0x6d16c220, 0x3b272: 0x6d16c420, 0x3b273: 0x6d16c620, + 0x3b274: 0x6d16c820, 0x3b275: 0x6d16ca20, 0x3b276: 0x6d16cc20, 0x3b277: 0x6d16ce20, + 0x3b278: 0x6d16d020, 0x3b279: 0x6d16d220, 0x3b27a: 0x6d16d420, 0x3b27b: 0x6d16d620, + 0x3b27c: 0x6d16d820, 0x3b27d: 0x6d16da20, 0x3b27e: 0x6d16dc20, 0x3b27f: 0x6d16de20, + // Block 0xeca, offset 0x3b280 + 0x3b280: 0x6d16e020, 0x3b281: 0x6d16e220, 0x3b282: 0x6d16e420, 0x3b283: 0x6d16e620, + 0x3b284: 0x6d16e820, 0x3b285: 0x6d16ea20, 0x3b286: 0x6d16ec20, 0x3b287: 0x6d16ee20, + 0x3b288: 0x6d16f020, 0x3b289: 0x6d44f020, 0x3b28a: 0x6d44f220, 0x3b28b: 0x6d44f420, + 0x3b28c: 0x6d44f620, 0x3b28d: 0x6d44f820, 0x3b28e: 0x6d44fa20, 0x3b28f: 0x6d44fc20, + 0x3b290: 0x6d44fe20, 0x3b291: 0x6d450020, 0x3b292: 0x6d450220, 0x3b293: 0x6d450420, + 0x3b294: 0x6d450620, 0x3b295: 0x6d450820, 0x3b296: 0x6d450a20, 0x3b297: 0x6d450c20, + 0x3b298: 0x6d450e20, 0x3b299: 0x6d451020, 0x3b29a: 0x6d451220, 0x3b29b: 0x6d451420, + 0x3b29c: 0x6d451620, 0x3b29d: 0x6d71c220, 0x3b29e: 0x6d71c420, 0x3b29f: 0x6d71c620, + 0x3b2a0: 0x6d71c820, 0x3b2a1: 0x6d71ca20, 0x3b2a2: 0x6d71cc20, 0x3b2a3: 0x6d71ce20, + 0x3b2a4: 0x6d71d020, 0x3b2a5: 0x6d71d220, 0x3b2a6: 0x6d71d420, 0x3b2a7: 0x6d71d620, + 0x3b2a8: 0x6d71d820, 0x3b2a9: 0x6d71da20, 0x3b2aa: 0x6d71dc20, 0x3b2ab: 0x6d71de20, + 0x3b2ac: 0x6d71e020, 0x3b2ad: 0x6d71e220, 0x3b2ae: 0x6d71e420, 0x3b2af: 0x6d71e620, + 0x3b2b0: 0x6d71e820, 0x3b2b1: 0x6d71ea20, 0x3b2b2: 0x6d71ec20, 0x3b2b3: 0x6d71ee20, + 0x3b2b4: 0x6d71f020, 0x3b2b5: 0x6d71f220, 0x3b2b6: 0x6d71f420, 0x3b2b7: 0x6d71f620, + 0x3b2b8: 0x6d71f820, 0x3b2b9: 0x6d71fa20, 0x3b2ba: 0x6d9b2820, 0x3b2bb: 0x6d9b2a20, + 0x3b2bc: 0x6d9b2c20, 0x3b2bd: 0x6d9b2e20, 0x3b2be: 0x6d9b3020, 0x3b2bf: 0x6d9b3220, + // Block 0xecb, offset 0x3b2c0 + 0x3b2c0: 0x6d9b3420, 0x3b2c1: 0x6d9b3620, 0x3b2c2: 0x6d9b3820, 0x3b2c3: 0x6d9b3a20, + 0x3b2c4: 0x6d9b3c20, 0x3b2c5: 0x6d9b3e20, 0x3b2c6: 0x6d9b4020, 0x3b2c7: 0x6d9b4220, + 0x3b2c8: 0x6d9b4420, 0x3b2c9: 0x6d9b4620, 0x3b2ca: 0x6d9b4820, 0x3b2cb: 0x6d9b4a20, + 0x3b2cc: 0x6d9b4c20, 0x3b2cd: 0x6d9b4e20, 0x3b2ce: 0x6d9b5020, 0x3b2cf: 0x6d9b5220, + 0x3b2d0: 0x6d9b5420, 0x3b2d1: 0x6d9b5620, 0x3b2d2: 0x6d9b5820, 0x3b2d3: 0x6d9b5a20, + 0x3b2d4: 0x6d9b5c20, 0x3b2d5: 0x6d9b5e20, 0x3b2d6: 0x6d9b6020, 0x3b2d7: 0x6d9b6220, + 0x3b2d8: 0x6d9b6420, 0x3b2d9: 0x6d9b6620, 0x3b2da: 0x6d9b6820, 0x3b2db: 0x6d9b6a20, + 0x3b2dc: 0x6d9b6c20, 0x3b2dd: 0x6d9b6e20, 0x3b2de: 0x6d9b7020, 0x3b2df: 0x6d9b7220, + 0x3b2e0: 0x6d9b7420, 0x3b2e1: 0x6d9b7620, 0x3b2e2: 0x6d9b7820, 0x3b2e3: 0x6dbde220, + 0x3b2e4: 0x6d9b7a20, 0x3b2e5: 0x6d9b7c20, 0x3b2e6: 0x6d9b7e20, 0x3b2e7: 0x6d9b8020, + 0x3b2e8: 0x6d9b8220, 0x3b2e9: 0x6d9b8420, 0x3b2ea: 0x6d9b8620, 0x3b2eb: 0x6d9b8820, + 0x3b2ec: 0x6d9b8a20, 0x3b2ed: 0x6dbde420, 0x3b2ee: 0x6dbde620, 0x3b2ef: 0x6dbde820, + 0x3b2f0: 0x6dbdea20, 0x3b2f1: 0x6dbdec20, 0x3b2f2: 0x6dbdee20, 0x3b2f3: 0x6dbdf020, + 0x3b2f4: 0x6dbdf220, 0x3b2f5: 0x6dbdf420, 0x3b2f6: 0x6dbdf620, 0x3b2f7: 0x6dbdf820, + 0x3b2f8: 0x6dbdfa20, 0x3b2f9: 0x6dbdfc20, 0x3b2fa: 0x6dbdfe20, 0x3b2fb: 0x6dbe0020, + 0x3b2fc: 0x6dbe0220, 0x3b2fd: 0x6dbe0420, 0x3b2fe: 0x6dbe0620, 0x3b2ff: 0x6dbe0820, + // Block 0xecc, offset 0x3b300 + 0x3b300: 0x6dbe0a20, 0x3b301: 0x6dbe0c20, 0x3b302: 0x6dbe0e20, 0x3b303: 0x6dbe1020, + 0x3b304: 0x6dbe1220, 0x3b305: 0x6dbe1420, 0x3b306: 0x6dbe1620, 0x3b307: 0x6dbe1820, + 0x3b308: 0x6dbe1a20, 0x3b309: 0x6dbe1c20, 0x3b30a: 0x6dbe1e20, 0x3b30b: 0x6dbe2020, + 0x3b30c: 0x6dbe2220, 0x3b30d: 0x6dbe2420, 0x3b30e: 0x6dbe2620, 0x3b30f: 0x6dbe2820, + 0x3b310: 0x6dbe2a20, 0x3b311: 0x6dbe2c20, 0x3b312: 0x6dbe2e20, 0x3b313: 0x6dbe3020, + 0x3b314: 0x6dbe3220, 0x3b315: 0x6dbe3420, 0x3b316: 0x6dbe3620, 0x3b317: 0x6dbe3820, + 0x3b318: 0x6dbe3a20, 0x3b319: 0x6ddbb220, 0x3b31a: 0x6ddbb420, 0x3b31b: 0x6ddbb620, + 0x3b31c: 0x6ddbb820, 0x3b31d: 0x6ddbba20, 0x3b31e: 0x6ddbbc20, 0x3b31f: 0x6ddbbe20, + 0x3b320: 0x6ddbc020, 0x3b321: 0x6ddbc220, 0x3b322: 0x6ddbc420, 0x3b323: 0x6ddbc620, + 0x3b324: 0x6ddbc820, 0x3b325: 0x6ddbca20, 0x3b326: 0x6ddbcc20, 0x3b327: 0x6ddbce20, + 0x3b328: 0x6ddbd020, 0x3b329: 0x6ddbd220, 0x3b32a: 0x6ddbd420, 0x3b32b: 0x6ddbd620, + 0x3b32c: 0x6ddbd820, 0x3b32d: 0x6ddbda20, 0x3b32e: 0x6ddbdc20, 0x3b32f: 0x6ddbde20, + 0x3b330: 0x6ddbe020, 0x3b331: 0x6ddbe220, 0x3b332: 0x6ddbe420, 0x3b333: 0x6ddbe620, + 0x3b334: 0x6df39620, 0x3b335: 0x6ddbe820, 0x3b336: 0x6ddbea20, 0x3b337: 0x6ddbec20, + 0x3b338: 0x6ddbee20, 0x3b339: 0x6ddbf020, 0x3b33a: 0x6ddbf220, 0x3b33b: 0x6ddbf420, + 0x3b33c: 0x6ddbf620, 0x3b33d: 0x6df39820, 0x3b33e: 0x6df39a20, 0x3b33f: 0x6df39c20, + // Block 0xecd, offset 0x3b340 + 0x3b340: 0x6df39e20, 0x3b341: 0x6df3a020, 0x3b342: 0x6df3a220, 0x3b343: 0x6df3a420, + 0x3b344: 0x6df3a620, 0x3b345: 0x6df3a820, 0x3b346: 0x6df3aa20, 0x3b347: 0x6df3ac20, + 0x3b348: 0x6df3ae20, 0x3b349: 0x6df3b020, 0x3b34a: 0x6df3b220, 0x3b34b: 0x6df3b420, + 0x3b34c: 0x6df3b620, 0x3b34d: 0x6df3b820, 0x3b34e: 0x6df3ba20, 0x3b34f: 0x6df3bc20, + 0x3b350: 0x6df3be20, 0x3b351: 0x6df3c020, 0x3b352: 0x6df3c220, 0x3b353: 0x6df3c420, + 0x3b354: 0x6df3c620, 0x3b355: 0x6df3c820, 0x3b356: 0x6df3ca20, 0x3b357: 0x6df3cc20, + 0x3b358: 0x6df3ce20, 0x3b359: 0x6df3d020, 0x3b35a: 0x6df3d220, 0x3b35b: 0x6df3d420, + 0x3b35c: 0x6df3d620, 0x3b35d: 0x6df3d820, 0x3b35e: 0x6df3da20, 0x3b35f: 0x6df3dc20, + 0x3b360: 0x6df3de20, 0x3b361: 0x6e078820, 0x3b362: 0x6e078a20, 0x3b363: 0x6e078c20, + 0x3b364: 0x6e078e20, 0x3b365: 0x6e079020, 0x3b366: 0x6e079220, 0x3b367: 0x6e079420, + 0x3b368: 0x6e079620, 0x3b369: 0x6e079820, 0x3b36a: 0x6e079a20, 0x3b36b: 0x6e079c20, + 0x3b36c: 0x6e079e20, 0x3b36d: 0x6e07a020, 0x3b36e: 0x6e07a220, 0x3b36f: 0x6e07a420, + 0x3b370: 0x6e07a620, 0x3b371: 0x6e07a820, 0x3b372: 0x6e07aa20, 0x3b373: 0x6e07ac20, + 0x3b374: 0x6e07ae20, 0x3b375: 0x6e07b020, 0x3b376: 0x6e17f420, 0x3b377: 0x6e07b220, + 0x3b378: 0x6e07b420, 0x3b379: 0x6e07b620, 0x3b37a: 0x6e07b820, 0x3b37b: 0x6e07ba20, + 0x3b37c: 0x6e07bc20, 0x3b37d: 0x6e07be20, 0x3b37e: 0x6e17f620, 0x3b37f: 0x6e17f820, + // Block 0xece, offset 0x3b380 + 0x3b380: 0x6e17fa20, 0x3b381: 0x6e17fc20, 0x3b382: 0x6e17fe20, 0x3b383: 0x6e180020, + 0x3b384: 0x6e180220, 0x3b385: 0x6e180420, 0x3b386: 0x6e180620, 0x3b387: 0x6e180820, + 0x3b388: 0x6e180a20, 0x3b389: 0x6e180c20, 0x3b38a: 0x6e180e20, 0x3b38b: 0x6e181020, + 0x3b38c: 0x6e181220, 0x3b38d: 0x6e181420, 0x3b38e: 0x6e181620, 0x3b38f: 0x6e181820, + 0x3b390: 0x6e181a20, 0x3b391: 0x6e181c20, 0x3b392: 0x6e181e20, 0x3b393: 0x6e24b620, + 0x3b394: 0x6e24b820, 0x3b395: 0x6e24ba20, 0x3b396: 0x6e24bc20, 0x3b397: 0x6e24be20, + 0x3b398: 0x6e24c020, 0x3b399: 0x6e24c220, 0x3b39a: 0x6e24c420, 0x3b39b: 0x6e24c620, + 0x3b39c: 0x6e24c820, 0x3b39d: 0x6e24ca20, 0x3b39e: 0x6e24cc20, 0x3b39f: 0x6e24ce20, + 0x3b3a0: 0x6e24d020, 0x3b3a1: 0x6e24d220, 0x3b3a2: 0x6e24d420, 0x3b3a3: 0x6e24d620, + 0x3b3a4: 0x6e2e8420, 0x3b3a5: 0x6e2e8620, 0x3b3a6: 0x6e2e8820, 0x3b3a7: 0x6e2e8a20, + 0x3b3a8: 0x6e2e8c20, 0x3b3a9: 0x6e2e8e20, 0x3b3aa: 0x6e2e9020, 0x3b3ab: 0x6e2e9220, + 0x3b3ac: 0x6e2e9420, 0x3b3ad: 0x6e360420, 0x3b3ae: 0x6e360620, 0x3b3af: 0x6e360820, + 0x3b3b0: 0x6e360a20, 0x3b3b1: 0x6e360c20, 0x3b3b2: 0x6e360e20, 0x3b3b3: 0x6e361020, + 0x3b3b4: 0x6e361220, 0x3b3b5: 0x6e361420, 0x3b3b6: 0x6e3b5020, 0x3b3b7: 0x6e3f0820, + 0x3b3b8: 0x6e3f0a20, 0x3b3b9: 0x6e3f0c20, 0x3b3ba: 0x6e3f0e20, 0x3b3bb: 0x6e44bc20, + 0x3b3bc: 0x6e457420, 0x3b3bd: 0x6e465220, 0x3b3be: 0x6c288e20, 0x3b3bf: 0x6c289020, + // Block 0xecf, offset 0x3b3c0 + 0x3b3c0: 0x6c289220, 0x3b3c1: 0x6c42a420, 0x3b3c2: 0x6c42a620, 0x3b3c3: 0x6c637820, + 0x3b3c4: 0x6c8a8020, 0x3b3c5: 0x6c8a8220, 0x3b3c6: 0x6cb70220, 0x3b3c7: 0x6c8a8420, + 0x3b3c8: 0x6cb70420, 0x3b3c9: 0x6cb70620, 0x3b3ca: 0x6ce7e020, 0x3b3cb: 0x6ce7e220, + 0x3b3cc: 0x6d170020, 0x3b3cd: 0x6d452420, 0x3b3ce: 0x6d452620, 0x3b3cf: 0x6d720220, + 0x3b3d0: 0x6c638020, 0x3b3d1: 0x6cb70e20, 0x3b3d2: 0x6cb71020, 0x3b3d3: 0x6ce7ee20, + 0x3b3d4: 0x6d170620, 0x3b3d5: 0x6d452820, 0x3b3d6: 0x6d452a20, 0x3b3d7: 0x6d452c20, + 0x3b3d8: 0x6d452e20, 0x3b3d9: 0x6d453020, 0x3b3da: 0x6d720c20, 0x3b3db: 0x6d720e20, + 0x3b3dc: 0x6d721020, 0x3b3dd: 0x6d721220, 0x3b3de: 0x6d721420, 0x3b3df: 0x6d721620, + 0x3b3e0: 0x6d721820, 0x3b3e1: 0x6d9b9020, 0x3b3e2: 0x6d9b9220, 0x3b3e3: 0x6d9b9420, + 0x3b3e4: 0x6d9b9620, 0x3b3e5: 0x6d9b9820, 0x3b3e6: 0x6d9b9a20, 0x3b3e7: 0x6d9b9c20, + 0x3b3e8: 0x6dbe4a20, 0x3b3e9: 0x6dbe4c20, 0x3b3ea: 0x6ddbfc20, 0x3b3eb: 0x6ddbfe20, + 0x3b3ec: 0x6ddc0020, 0x3b3ed: 0x6ddc0220, 0x3b3ee: 0x6de36c20, 0x3b3ef: 0x6df3e620, + 0x3b3f0: 0x6dface20, 0x3b3f1: 0x6df3e820, 0x3b3f2: 0x6e07c620, 0x3b3f3: 0x6e182220, + 0x3b3f4: 0x6e24dc20, 0x3b3f5: 0x6e2e9620, 0x3b3f6: 0x6e2e9820, 0x3b3f7: 0x6e361620, + 0x3b3f8: 0x6e3b5420, 0x3b3f9: 0x6e419c20, 0x3b3fa: 0x6c8a8c20, 0x3b3fb: 0x6d170a20, + 0x3b3fc: 0x6d170c20, 0x3b3fd: 0x6d170e20, 0x3b3fe: 0x6d453c20, 0x3b3ff: 0x6d453e20, + // Block 0xed0, offset 0x3b400 + 0x3b400: 0x6d454020, 0x3b401: 0x6d454220, 0x3b402: 0x6d721a20, 0x3b403: 0x6d454420, + 0x3b404: 0x6d454620, 0x3b405: 0x6d721c20, 0x3b406: 0x6d721e20, 0x3b407: 0x6d9ba620, + 0x3b408: 0x6d9ba820, 0x3b409: 0x6dbe5c20, 0x3b40a: 0x6dbe5e20, 0x3b40b: 0x6dbe6020, + 0x3b40c: 0x6ddc0820, 0x3b40d: 0x6ddc0a20, 0x3b40e: 0x6ddc0c20, 0x3b40f: 0x6dbe6220, + 0x3b410: 0x6ddc0e20, 0x3b411: 0x6ddc1020, 0x3b412: 0x6ddc1220, 0x3b413: 0x6df3f020, + 0x3b414: 0x6df3f220, 0x3b415: 0x6df3f420, 0x3b416: 0x6df3f620, 0x3b417: 0x6df3f820, + 0x3b418: 0x6df3fa20, 0x3b419: 0x6e07cc20, 0x3b41a: 0x6e07ce20, 0x3b41b: 0x6e07d020, + 0x3b41c: 0x6e07d220, 0x3b41d: 0x6e182620, 0x3b41e: 0x6e182820, 0x3b41f: 0x6e182a20, + 0x3b420: 0x6e182c20, 0x3b421: 0x6e182e20, 0x3b422: 0x6e24de20, 0x3b423: 0x6e24e020, + 0x3b424: 0x6e2e9c20, 0x3b425: 0x6e3f1020, 0x3b426: 0x6e437620, 0x3b427: 0x6c8a9020, + 0x3b428: 0x6cb71220, 0x3b429: 0x6ce7f620, 0x3b42a: 0x6ce7f820, 0x3b42b: 0x6ce7fa20, + 0x3b42c: 0x6ce7fc20, 0x3b42d: 0x6ce7fe20, 0x3b42e: 0x6ce80020, 0x3b42f: 0x6ce80220, + 0x3b430: 0x6d172220, 0x3b431: 0x6d172420, 0x3b432: 0x6d172620, 0x3b433: 0x6d172820, + 0x3b434: 0x6d172a20, 0x3b435: 0x6d172c20, 0x3b436: 0x6d172e20, 0x3b437: 0x6d457c20, + 0x3b438: 0x6d457e20, 0x3b439: 0x6d458020, 0x3b43a: 0x6d458220, 0x3b43b: 0x6d458420, + 0x3b43c: 0x6d458620, 0x3b43d: 0x6d458820, 0x3b43e: 0x6d458a20, 0x3b43f: 0x6d726420, + // Block 0xed1, offset 0x3b440 + 0x3b440: 0x6d458c20, 0x3b441: 0x6d458e20, 0x3b442: 0x6d459020, 0x3b443: 0x6d459220, + 0x3b444: 0x6d459420, 0x3b445: 0x6d459620, 0x3b446: 0x6d726620, 0x3b447: 0x6d459820, + 0x3b448: 0x6d459a20, 0x3b449: 0x6d459c20, 0x3b44a: 0x6d459e20, 0x3b44b: 0x6d45a020, + 0x3b44c: 0x6d45a220, 0x3b44d: 0x6d726820, 0x3b44e: 0x6d726a20, 0x3b44f: 0x6d726c20, + 0x3b450: 0x6d726e20, 0x3b451: 0x6d727020, 0x3b452: 0x6d727220, 0x3b453: 0x6d727420, + 0x3b454: 0x6d727620, 0x3b455: 0x6d727820, 0x3b456: 0x6d727a20, 0x3b457: 0x6d727c20, + 0x3b458: 0x6d727e20, 0x3b459: 0x6d728020, 0x3b45a: 0x6d728220, 0x3b45b: 0x6d728420, + 0x3b45c: 0x6d728620, 0x3b45d: 0x6d728820, 0x3b45e: 0x6d728a20, 0x3b45f: 0x6d728c20, + 0x3b460: 0x6d728e20, 0x3b461: 0x6d729020, 0x3b462: 0x6d729220, 0x3b463: 0x6d729420, + 0x3b464: 0x6d729620, 0x3b465: 0x6d729820, 0x3b466: 0x6d729a20, 0x3b467: 0x6d729c20, + 0x3b468: 0x6d729e20, 0x3b469: 0x6d72a020, 0x3b46a: 0x6d72a220, 0x3b46b: 0x6d72a420, + 0x3b46c: 0x6d72a620, 0x3b46d: 0x6d72a820, 0x3b46e: 0x6d9bde20, 0x3b46f: 0x6d9be020, + 0x3b470: 0x6d9be220, 0x3b471: 0x6d9be420, 0x3b472: 0x6d9be620, 0x3b473: 0x6d9be820, + 0x3b474: 0x6d9bea20, 0x3b475: 0x6d9bec20, 0x3b476: 0x6d9bee20, 0x3b477: 0x6d9bf020, + 0x3b478: 0x6d9bf220, 0x3b479: 0x6d9bf420, 0x3b47a: 0x6d9bf620, 0x3b47b: 0x6d9bf820, + 0x3b47c: 0x6d9bfa20, 0x3b47d: 0x6d9bfc20, 0x3b47e: 0x6d9bfe20, 0x3b47f: 0x6d9c0020, + // Block 0xed2, offset 0x3b480 + 0x3b480: 0x6d9c0220, 0x3b481: 0x6d9c0420, 0x3b482: 0x6d9c0620, 0x3b483: 0x6d9c0820, + 0x3b484: 0x6d9c0a20, 0x3b485: 0x6d9c0c20, 0x3b486: 0x6d9c0e20, 0x3b487: 0x6d9c1020, + 0x3b488: 0x6d9c1220, 0x3b489: 0x6d9c1420, 0x3b48a: 0x6d9c1620, 0x3b48b: 0x6d9c1820, + 0x3b48c: 0x6d9c1a20, 0x3b48d: 0x6d9c1c20, 0x3b48e: 0x6d9c1e20, 0x3b48f: 0x6d9c2020, + 0x3b490: 0x6d9c2220, 0x3b491: 0x6d9c2420, 0x3b492: 0x6d9c2620, 0x3b493: 0x6d9c2820, + 0x3b494: 0x6d9c2a20, 0x3b495: 0x6d9c2c20, 0x3b496: 0x6dbe9020, 0x3b497: 0x6dbe9220, + 0x3b498: 0x6dbe9420, 0x3b499: 0x6dbe9620, 0x3b49a: 0x6dbe9820, 0x3b49b: 0x6dbe9a20, + 0x3b49c: 0x6dbe9c20, 0x3b49d: 0x6dbe9e20, 0x3b49e: 0x6dbea020, 0x3b49f: 0x6dbea220, + 0x3b4a0: 0x6dbea420, 0x3b4a1: 0x6dbea620, 0x3b4a2: 0x6dbea820, 0x3b4a3: 0x6dbeaa20, + 0x3b4a4: 0x6dbeac20, 0x3b4a5: 0x6dbeae20, 0x3b4a6: 0x6dbeb020, 0x3b4a7: 0x6dbeb220, + 0x3b4a8: 0x6dbeb420, 0x3b4a9: 0x6dbeb620, 0x3b4aa: 0x6dbeb820, 0x3b4ab: 0x6dbeba20, + 0x3b4ac: 0x6dbebc20, 0x3b4ad: 0x6ddc4820, 0x3b4ae: 0x6ddc4a20, 0x3b4af: 0x6ddc4c20, + 0x3b4b0: 0x6ddc4e20, 0x3b4b1: 0x6ddc5020, 0x3b4b2: 0x6ddc5220, 0x3b4b3: 0x6ddc5420, + 0x3b4b4: 0x6ddc5620, 0x3b4b5: 0x6ddc5820, 0x3b4b6: 0x6ddc5a20, 0x3b4b7: 0x6ddc5c20, + 0x3b4b8: 0x6ddc5e20, 0x3b4b9: 0x6ddc6020, 0x3b4ba: 0x6ddc6220, 0x3b4bb: 0x6ddc6420, + 0x3b4bc: 0x6ddc6620, 0x3b4bd: 0x6ddc6820, 0x3b4be: 0x6ddc6a20, 0x3b4bf: 0x6ddc6c20, + // Block 0xed3, offset 0x3b4c0 + 0x3b4c0: 0x6ddc6e20, 0x3b4c1: 0x6ddc7020, 0x3b4c2: 0x6ddc7220, 0x3b4c3: 0x6ddc7420, + 0x3b4c4: 0x6ddc7620, 0x3b4c5: 0x6ddc7820, 0x3b4c6: 0x6ddc7a20, 0x3b4c7: 0x6ddc7c20, + 0x3b4c8: 0x6ddc7e20, 0x3b4c9: 0x6ddc8020, 0x3b4ca: 0x6ddc8220, 0x3b4cb: 0x6ddc8420, + 0x3b4cc: 0x6ddc8620, 0x3b4cd: 0x6ddc8820, 0x3b4ce: 0x6ddc8a20, 0x3b4cf: 0x6ddc8c20, + 0x3b4d0: 0x6ddc8e20, 0x3b4d1: 0x6ddc9020, 0x3b4d2: 0x6ddc9220, 0x3b4d3: 0x6ddc9420, + 0x3b4d4: 0x6ddc9620, 0x3b4d5: 0x6ddc9820, 0x3b4d6: 0x6ddc9a20, 0x3b4d7: 0x6df43420, + 0x3b4d8: 0x6df43620, 0x3b4d9: 0x6df43820, 0x3b4da: 0x6df43a20, 0x3b4db: 0x6df43c20, + 0x3b4dc: 0x6df43e20, 0x3b4dd: 0x6df44020, 0x3b4de: 0x6ddc9c20, 0x3b4df: 0x6df44220, + 0x3b4e0: 0x6df44420, 0x3b4e1: 0x6df44620, 0x3b4e2: 0x6df44820, 0x3b4e3: 0x6df44a20, + 0x3b4e4: 0x6df44c20, 0x3b4e5: 0x6df44e20, 0x3b4e6: 0x6df45020, 0x3b4e7: 0x6df45220, + 0x3b4e8: 0x6df45420, 0x3b4e9: 0x6df45620, 0x3b4ea: 0x6df45820, 0x3b4eb: 0x6df45a20, + 0x3b4ec: 0x6df45c20, 0x3b4ed: 0x6df45e20, 0x3b4ee: 0x6df46020, 0x3b4ef: 0x6df46220, + 0x3b4f0: 0x6df46420, 0x3b4f1: 0x6df46620, 0x3b4f2: 0x6df46820, 0x3b4f3: 0x6df46a20, + 0x3b4f4: 0x6df46c20, 0x3b4f5: 0x6df46e20, 0x3b4f6: 0x6df47020, 0x3b4f7: 0x6dbebe20, + 0x3b4f8: 0x6df47220, 0x3b4f9: 0x6df47420, 0x3b4fa: 0x6df47620, 0x3b4fb: 0x6df47820, + 0x3b4fc: 0x6df47a20, 0x3b4fd: 0x6e080620, 0x3b4fe: 0x6e080820, 0x3b4ff: 0x6e080a20, + // Block 0xed4, offset 0x3b500 + 0x3b500: 0x6e080c20, 0x3b501: 0x6e080e20, 0x3b502: 0x6e081020, 0x3b503: 0x6e081220, + 0x3b504: 0x6e081420, 0x3b505: 0x6e081620, 0x3b506: 0x6e081820, 0x3b507: 0x6e081a20, + 0x3b508: 0x6e081c20, 0x3b509: 0x6e081e20, 0x3b50a: 0x6e082020, 0x3b50b: 0x6e082220, + 0x3b50c: 0x6e082420, 0x3b50d: 0x6e082620, 0x3b50e: 0x6e082820, 0x3b50f: 0x6e082a20, + 0x3b510: 0x6e082c20, 0x3b511: 0x6e082e20, 0x3b512: 0x6e083020, 0x3b513: 0x6e083220, + 0x3b514: 0x6e083420, 0x3b515: 0x6e083620, 0x3b516: 0x6e083820, 0x3b517: 0x6e083a20, + 0x3b518: 0x6e083c20, 0x3b519: 0x6e083e20, 0x3b51a: 0x6e084020, 0x3b51b: 0x6e084220, + 0x3b51c: 0x6e084420, 0x3b51d: 0x6e084620, 0x3b51e: 0x6e084820, 0x3b51f: 0x6e084a20, + 0x3b520: 0x6e084c20, 0x3b521: 0x6e084e20, 0x3b522: 0x6e085020, 0x3b523: 0x6e085220, + 0x3b524: 0x6e085420, 0x3b525: 0x6e085620, 0x3b526: 0x6e085820, 0x3b527: 0x6e085a20, + 0x3b528: 0x6e085c20, 0x3b529: 0x6e085e20, 0x3b52a: 0x6e086020, 0x3b52b: 0x6e186220, + 0x3b52c: 0x6e186420, 0x3b52d: 0x6e186620, 0x3b52e: 0x6e186820, 0x3b52f: 0x6e186a20, + 0x3b530: 0x6e186c20, 0x3b531: 0x6e186e20, 0x3b532: 0x6e187020, 0x3b533: 0x6e187220, + 0x3b534: 0x6e187420, 0x3b535: 0x6e187620, 0x3b536: 0x6e187820, 0x3b537: 0x6e187a20, + 0x3b538: 0x6e187c20, 0x3b539: 0x6e187e20, 0x3b53a: 0x6e188020, 0x3b53b: 0x6e188220, + 0x3b53c: 0x6e188420, 0x3b53d: 0x6e188620, 0x3b53e: 0x6e188820, 0x3b53f: 0x6e188a20, + // Block 0xed5, offset 0x3b540 + 0x3b540: 0x6e188c20, 0x3b541: 0x6e188e20, 0x3b542: 0x6e250a20, 0x3b543: 0x6e250c20, + 0x3b544: 0x6e250e20, 0x3b545: 0x6e251020, 0x3b546: 0x6e251220, 0x3b547: 0x6e251420, + 0x3b548: 0x6e251620, 0x3b549: 0x6e251820, 0x3b54a: 0x6e251a20, 0x3b54b: 0x6e251c20, + 0x3b54c: 0x6e251e20, 0x3b54d: 0x6e252020, 0x3b54e: 0x6e252220, 0x3b54f: 0x6e252420, + 0x3b550: 0x6e252620, 0x3b551: 0x6e252820, 0x3b552: 0x6e252a20, 0x3b553: 0x6e252c20, + 0x3b554: 0x6e252e20, 0x3b555: 0x6e253020, 0x3b556: 0x6e253220, 0x3b557: 0x6e253420, + 0x3b558: 0x6e253620, 0x3b559: 0x6e253820, 0x3b55a: 0x6e253a20, 0x3b55b: 0x6e253c20, + 0x3b55c: 0x6e253e20, 0x3b55d: 0x6e254020, 0x3b55e: 0x6e2eb220, 0x3b55f: 0x6e2eb420, + 0x3b560: 0x6e2eb620, 0x3b561: 0x6e2eb820, 0x3b562: 0x6e2eba20, 0x3b563: 0x6e2ebc20, + 0x3b564: 0x6e2ebe20, 0x3b565: 0x6e2ec020, 0x3b566: 0x6e2ec220, 0x3b567: 0x6e2ec420, + 0x3b568: 0x6e2ec620, 0x3b569: 0x6e2ec820, 0x3b56a: 0x6e2eca20, 0x3b56b: 0x6e2ecc20, + 0x3b56c: 0x6e2ece20, 0x3b56d: 0x6e2ed020, 0x3b56e: 0x6e2ed220, 0x3b56f: 0x6e2ed420, + 0x3b570: 0x6e2ed620, 0x3b571: 0x6e2ed820, 0x3b572: 0x6e2eda20, 0x3b573: 0x6e2edc20, + 0x3b574: 0x6e2ede20, 0x3b575: 0x6e2ee020, 0x3b576: 0x6e362820, 0x3b577: 0x6e362a20, + 0x3b578: 0x6e362c20, 0x3b579: 0x6e362e20, 0x3b57a: 0x6e363020, 0x3b57b: 0x6e363220, + 0x3b57c: 0x6e363420, 0x3b57d: 0x6e363620, 0x3b57e: 0x6e363820, 0x3b57f: 0x6e363a20, + // Block 0xed6, offset 0x3b580 + 0x3b580: 0x6e363c20, 0x3b581: 0x6e363e20, 0x3b582: 0x6e3b5820, 0x3b583: 0x6e3b5a20, + 0x3b584: 0x6e3b5c20, 0x3b585: 0x6e3b5e20, 0x3b586: 0x6e3b6020, 0x3b587: 0x6e3b6220, + 0x3b588: 0x6e3b6420, 0x3b589: 0x6e3b6620, 0x3b58a: 0x6e3b6820, 0x3b58b: 0x6e3b6a20, + 0x3b58c: 0x6e3b6c20, 0x3b58d: 0x6e3b6e20, 0x3b58e: 0x6e3b7020, 0x3b58f: 0x6e3f1c20, + 0x3b590: 0x6e3f1e20, 0x3b591: 0x6e3f2020, 0x3b592: 0x6e3f2220, 0x3b593: 0x6e3f2420, + 0x3b594: 0x6e41ac20, 0x3b595: 0x6e41ae20, 0x3b596: 0x6e41b020, 0x3b597: 0x6e41b220, + 0x3b598: 0x6e437e20, 0x3b599: 0x6e438020, 0x3b59a: 0x6e438220, 0x3b59b: 0x6e438420, + 0x3b59c: 0x6e438620, 0x3b59d: 0x6e438820, 0x3b59e: 0x6e438a20, 0x3b59f: 0x6e44c420, + 0x3b5a0: 0x6e44c620, 0x3b5a1: 0x6e457820, 0x3b5a2: 0x6e457a20, 0x3b5a3: 0x6e45ec20, + 0x3b5a4: 0x6e45ee20, 0x3b5a5: 0x6e46f420, 0x3b5a6: 0x6c28a020, 0x3b5a7: 0x6c42c620, + 0x3b5a8: 0x6c42c820, 0x3b5a9: 0x6c42ca20, 0x3b5aa: 0x6c42cc20, 0x3b5ab: 0x6c42ce20, + 0x3b5ac: 0x6c42d020, 0x3b5ad: 0x6c42d220, 0x3b5ae: 0x6c639620, 0x3b5af: 0x6c42d420, + 0x3b5b0: 0x6c639820, 0x3b5b1: 0x6c639a20, 0x3b5b2: 0x6c639c20, 0x3b5b3: 0x6c639e20, + 0x3b5b4: 0x6c63a020, 0x3b5b5: 0x6c63a220, 0x3b5b6: 0x6c63a420, 0x3b5b7: 0x6c8aa020, + 0x3b5b8: 0x6c8aa220, 0x3b5b9: 0x6c8aa420, 0x3b5ba: 0x6c8aa620, 0x3b5bb: 0x6cb72220, + 0x3b5bc: 0x6cb72420, 0x3b5bd: 0x6cb72620, 0x3b5be: 0x6ce80e20, 0x3b5bf: 0x6ce81020, + // Block 0xed7, offset 0x3b5c0 + 0x3b5c0: 0x6ce81220, 0x3b5c1: 0x6ce81420, 0x3b5c2: 0x6ce81620, 0x3b5c3: 0x6ce81820, + 0x3b5c4: 0x6d173a20, 0x3b5c5: 0x6ce81a20, 0x3b5c6: 0x6ce81c20, 0x3b5c7: 0x6ce81e20, + 0x3b5c8: 0x6ce82020, 0x3b5c9: 0x6ce82220, 0x3b5ca: 0x6ce82420, 0x3b5cb: 0x6d173c20, + 0x3b5cc: 0x6d173e20, 0x3b5cd: 0x6d174020, 0x3b5ce: 0x6d72ac20, 0x3b5cf: 0x6d72ae20, + 0x3b5d0: 0x6ddca620, 0x3b5d1: 0x6cb73020, 0x3b5d2: 0x6cb73220, 0x3b5d3: 0x6cb73420, + 0x3b5d4: 0x6ce82e20, 0x3b5d5: 0x6ce83020, 0x3b5d6: 0x6ce83220, 0x3b5d7: 0x6ce83420, + 0x3b5d8: 0x6ce83620, 0x3b5d9: 0x6ce83820, 0x3b5da: 0x6ce83a20, 0x3b5db: 0x6ce83c20, + 0x3b5dc: 0x6d175220, 0x3b5dd: 0x6d175420, 0x3b5de: 0x6d175620, 0x3b5df: 0x6d175820, + 0x3b5e0: 0x6d175a20, 0x3b5e1: 0x6d175c20, 0x3b5e2: 0x6d175e20, 0x3b5e3: 0x6d176020, + 0x3b5e4: 0x6d176220, 0x3b5e5: 0x6d176420, 0x3b5e6: 0x6d176620, 0x3b5e7: 0x6d176820, + 0x3b5e8: 0x6d176a20, 0x3b5e9: 0x6d176c20, 0x3b5ea: 0x6d176e20, 0x3b5eb: 0x6d177020, + 0x3b5ec: 0x6d45c220, 0x3b5ed: 0x6d45c420, 0x3b5ee: 0x6d45c620, 0x3b5ef: 0x6d45c820, + 0x3b5f0: 0x6d45ca20, 0x3b5f1: 0x6d45cc20, 0x3b5f2: 0x6d45ce20, 0x3b5f3: 0x6d45d020, + 0x3b5f4: 0x6d45d220, 0x3b5f5: 0x6d45d420, 0x3b5f6: 0x6d45d620, 0x3b5f7: 0x6d45d820, + 0x3b5f8: 0x6d45da20, 0x3b5f9: 0x6d45dc20, 0x3b5fa: 0x6d45de20, 0x3b5fb: 0x6d45e020, + 0x3b5fc: 0x6d45e220, 0x3b5fd: 0x6d72c820, 0x3b5fe: 0x6d72ca20, 0x3b5ff: 0x6d72cc20, + // Block 0xed8, offset 0x3b600 + 0x3b600: 0x6d72ce20, 0x3b601: 0x6d72d020, 0x3b602: 0x6d72d220, 0x3b603: 0x6d72d420, + 0x3b604: 0x6d72d620, 0x3b605: 0x6d72d820, 0x3b606: 0x6d72da20, 0x3b607: 0x6d72dc20, + 0x3b608: 0x6d72de20, 0x3b609: 0x6d9c4c20, 0x3b60a: 0x6d9c4e20, 0x3b60b: 0x6d9c5020, + 0x3b60c: 0x6d9c5220, 0x3b60d: 0x6d9c5420, 0x3b60e: 0x6d9c5620, 0x3b60f: 0x6d9c5820, + 0x3b610: 0x6d9c5a20, 0x3b611: 0x6d9c5c20, 0x3b612: 0x6d9c5e20, 0x3b613: 0x6d9c6020, + 0x3b614: 0x6d9c6220, 0x3b615: 0x6d9c6420, 0x3b616: 0x6d9c6620, 0x3b617: 0x6dbed620, + 0x3b618: 0x6dbed820, 0x3b619: 0x6dbeda20, 0x3b61a: 0x6dbedc20, 0x3b61b: 0x6dbede20, + 0x3b61c: 0x6dbee020, 0x3b61d: 0x6dbee220, 0x3b61e: 0x6dbee420, 0x3b61f: 0x6dbee620, + 0x3b620: 0x6dbee820, 0x3b621: 0x6dbeea20, 0x3b622: 0x6dbeec20, 0x3b623: 0x6dbeee20, + 0x3b624: 0x6dbef020, 0x3b625: 0x6dbef220, 0x3b626: 0x6dbef420, 0x3b627: 0x6dbef620, + 0x3b628: 0x6dbef820, 0x3b629: 0x6dbefa20, 0x3b62a: 0x6dbefc20, 0x3b62b: 0x6dbefe20, + 0x3b62c: 0x6dbf0020, 0x3b62d: 0x6ddcb020, 0x3b62e: 0x6ddcb220, 0x3b62f: 0x6ddcb420, + 0x3b630: 0x6ddcb620, 0x3b631: 0x6ddcb820, 0x3b632: 0x6ddcba20, 0x3b633: 0x6ddcbc20, + 0x3b634: 0x6ddcbe20, 0x3b635: 0x6ddcc020, 0x3b636: 0x6ddcc220, 0x3b637: 0x6ddcc420, + 0x3b638: 0x6ddcc620, 0x3b639: 0x6ddcc820, 0x3b63a: 0x6ddcca20, 0x3b63b: 0x6ddccc20, + 0x3b63c: 0x6ddcce20, 0x3b63d: 0x6ddcd020, 0x3b63e: 0x6ddcd220, 0x3b63f: 0x6ddcd420, + // Block 0xed9, offset 0x3b640 + 0x3b640: 0x6df49220, 0x3b641: 0x6df49420, 0x3b642: 0x6df49620, 0x3b643: 0x6df49820, + 0x3b644: 0x6df49a20, 0x3b645: 0x6df49c20, 0x3b646: 0x6df49e20, 0x3b647: 0x6df4a020, + 0x3b648: 0x6df4a220, 0x3b649: 0x6e088420, 0x3b64a: 0x6e088620, 0x3b64b: 0x6e088820, + 0x3b64c: 0x6e088a20, 0x3b64d: 0x6e088c20, 0x3b64e: 0x6e088e20, 0x3b64f: 0x6e089020, + 0x3b650: 0x6e089220, 0x3b651: 0x6e089420, 0x3b652: 0x6e089620, 0x3b653: 0x6e089820, + 0x3b654: 0x6e089a20, 0x3b655: 0x6e089c20, 0x3b656: 0x6e089e20, 0x3b657: 0x6e189a20, + 0x3b658: 0x6e189c20, 0x3b659: 0x6e189e20, 0x3b65a: 0x6e18a020, 0x3b65b: 0x6e18a220, + 0x3b65c: 0x6e18a420, 0x3b65d: 0x6e18a620, 0x3b65e: 0x6e18a820, 0x3b65f: 0x6e18aa20, + 0x3b660: 0x6e254a20, 0x3b661: 0x6e254c20, 0x3b662: 0x6e254e20, 0x3b663: 0x6e255020, + 0x3b664: 0x6e255220, 0x3b665: 0x6e255420, 0x3b666: 0x6e255620, 0x3b667: 0x6e255820, + 0x3b668: 0x6e255a20, 0x3b669: 0x6e255c20, 0x3b66a: 0x6e255e20, 0x3b66b: 0x6e256020, + 0x3b66c: 0x6e2eec20, 0x3b66d: 0x6e2eee20, 0x3b66e: 0x6e2ef020, 0x3b66f: 0x6e2ef220, + 0x3b670: 0x6e2ef420, 0x3b671: 0x6e2ef620, 0x3b672: 0x6e364620, 0x3b673: 0x6e364820, + 0x3b674: 0x6e364a20, 0x3b675: 0x6e364c20, 0x3b676: 0x6e364e20, 0x3b677: 0x6e3b7620, + 0x3b678: 0x6e3b7820, 0x3b679: 0x6e3b7a20, 0x3b67a: 0x6e3b7c20, 0x3b67b: 0x6e3f2a20, + 0x3b67c: 0x6e41b620, 0x3b67d: 0x6e41b820, 0x3b67e: 0x6e438c20, 0x3b67f: 0x6d177420, + // Block 0xeda, offset 0x3b680 + 0x3b680: 0x6d177620, 0x3b681: 0x6d45e820, 0x3b682: 0x6d45ea20, 0x3b683: 0x6d45ec20, + 0x3b684: 0x6d45ee20, 0x3b685: 0x6d45f020, 0x3b686: 0x6d45f220, 0x3b687: 0x6d45f420, + 0x3b688: 0x6d45f620, 0x3b689: 0x6d45f820, 0x3b68a: 0x6d72e420, 0x3b68b: 0x6d72e620, + 0x3b68c: 0x6d72e820, 0x3b68d: 0x6d72ea20, 0x3b68e: 0x6d9c6a20, 0x3b68f: 0x6d9c6c20, + 0x3b690: 0x6d9c6e20, 0x3b691: 0x6d9c7020, 0x3b692: 0x6d9c7220, 0x3b693: 0x6d9c7420, + 0x3b694: 0x6d9c7620, 0x3b695: 0x6dbf0220, 0x3b696: 0x6dbf0420, 0x3b697: 0x6dbf0620, + 0x3b698: 0x6dbf0820, 0x3b699: 0x6dbf0a20, 0x3b69a: 0x6ddcdc20, 0x3b69b: 0x6ddcde20, + 0x3b69c: 0x6ddce020, 0x3b69d: 0x6ddce220, 0x3b69e: 0x6df4a620, 0x3b69f: 0x6df4a820, + 0x3b6a0: 0x6e08a020, 0x3b6a1: 0x6e08a220, 0x3b6a2: 0x6e08a420, 0x3b6a3: 0x6e08a620, + 0x3b6a4: 0x6e08a820, 0x3b6a5: 0x6e18ac20, 0x3b6a6: 0x6e18ae20, 0x3b6a7: 0x6e256620, + 0x3b6a8: 0x6e2efa20, 0x3b6a9: 0x6e2efc20, 0x3b6aa: 0x6e2efe20, 0x3b6ab: 0x6e365020, + 0x3b6ac: 0x6e365220, 0x3b6ad: 0x6e3b8020, 0x3b6ae: 0x6e3f2c20, 0x3b6af: 0x6e3f2e20, + 0x3b6b0: 0x6e41ba20, 0x3b6b1: 0x6e41bc20, 0x3b6b2: 0x6e438e20, 0x3b6b3: 0x6e45f020, + 0x3b6b4: 0x6ce84820, 0x3b6b5: 0x6ce84a20, 0x3b6b6: 0x6ce84c20, 0x3b6b7: 0x6ce84e20, + 0x3b6b8: 0x6ce85020, 0x3b6b9: 0x6d177c20, 0x3b6ba: 0x6d177e20, 0x3b6bb: 0x6d178020, + 0x3b6bc: 0x6d178220, 0x3b6bd: 0x6d178420, 0x3b6be: 0x6d178620, 0x3b6bf: 0x6d461620, + // Block 0xedb, offset 0x3b6c0 + 0x3b6c0: 0x6d461820, 0x3b6c1: 0x6d461a20, 0x3b6c2: 0x6d461c20, 0x3b6c3: 0x6d461e20, + 0x3b6c4: 0x6d462020, 0x3b6c5: 0x6d462220, 0x3b6c6: 0x6d462420, 0x3b6c7: 0x6d462620, + 0x3b6c8: 0x6d462820, 0x3b6c9: 0x6d462a20, 0x3b6ca: 0x6d462c20, 0x3b6cb: 0x6d462e20, + 0x3b6cc: 0x6d463020, 0x3b6cd: 0x6d463220, 0x3b6ce: 0x6d463420, 0x3b6cf: 0x6d463620, + 0x3b6d0: 0x6d463820, 0x3b6d1: 0x6d730420, 0x3b6d2: 0x6d730620, 0x3b6d3: 0x6d730820, + 0x3b6d4: 0x6d730a20, 0x3b6d5: 0x6d730c20, 0x3b6d6: 0x6d730e20, 0x3b6d7: 0x6d731020, + 0x3b6d8: 0x6d731220, 0x3b6d9: 0x6d731420, 0x3b6da: 0x6d731620, 0x3b6db: 0x6d731820, + 0x3b6dc: 0x6d731a20, 0x3b6dd: 0x6d731c20, 0x3b6de: 0x6d731e20, 0x3b6df: 0x6d732020, + 0x3b6e0: 0x6d732220, 0x3b6e1: 0x6d732420, 0x3b6e2: 0x6d732620, 0x3b6e3: 0x6d732820, + 0x3b6e4: 0x6d732a20, 0x3b6e5: 0x6d732c20, 0x3b6e6: 0x6d732e20, 0x3b6e7: 0x6d733020, + 0x3b6e8: 0x6d733220, 0x3b6e9: 0x6d733420, 0x3b6ea: 0x6d733620, 0x3b6eb: 0x6d733820, + 0x3b6ec: 0x6d733a20, 0x3b6ed: 0x6d733c20, 0x3b6ee: 0x6d733e20, 0x3b6ef: 0x6d734020, + 0x3b6f0: 0x6d9c9020, 0x3b6f1: 0x6d9c9220, 0x3b6f2: 0x6d9c9420, 0x3b6f3: 0x6d9c9620, + 0x3b6f4: 0x6d9c9820, 0x3b6f5: 0x6d9c9a20, 0x3b6f6: 0x6d9c9c20, 0x3b6f7: 0x6d9c9e20, + 0x3b6f8: 0x6d9ca020, 0x3b6f9: 0x6d9ca220, 0x3b6fa: 0x6d9ca420, 0x3b6fb: 0x6d9ca620, + 0x3b6fc: 0x6d9ca820, 0x3b6fd: 0x6d9caa20, 0x3b6fe: 0x6d9cac20, 0x3b6ff: 0x6d9cae20, + // Block 0xedc, offset 0x3b700 + 0x3b700: 0x6d9cb020, 0x3b701: 0x6d9cb220, 0x3b702: 0x6d9cb420, 0x3b703: 0x6d9cb620, + 0x3b704: 0x6d9cb820, 0x3b705: 0x6d9cba20, 0x3b706: 0x6d9cbc20, 0x3b707: 0x6dbf2220, + 0x3b708: 0x6dbf2420, 0x3b709: 0x6dbf2620, 0x3b70a: 0x6dbf2820, 0x3b70b: 0x6dbf2a20, + 0x3b70c: 0x6dbf2c20, 0x3b70d: 0x6dbf2e20, 0x3b70e: 0x6dbf3020, 0x3b70f: 0x6dbf3220, + 0x3b710: 0x6dbf3420, 0x3b711: 0x6dbf3620, 0x3b712: 0x6dbf3820, 0x3b713: 0x6dbf3a20, + 0x3b714: 0x6dbf3c20, 0x3b715: 0x6dbf3e20, 0x3b716: 0x6dbf4020, 0x3b717: 0x6dbf4220, + 0x3b718: 0x6dbf4420, 0x3b719: 0x6dbf4620, 0x3b71a: 0x6dbf4820, 0x3b71b: 0x6dbf4a20, + 0x3b71c: 0x6dbf4c20, 0x3b71d: 0x6dbf4e20, 0x3b71e: 0x6ddcfc20, 0x3b71f: 0x6ddcfe20, + 0x3b720: 0x6ddd0020, 0x3b721: 0x6ddd0220, 0x3b722: 0x6ddd0420, 0x3b723: 0x6ddd0620, + 0x3b724: 0x6ddd0820, 0x3b725: 0x6ddd0a20, 0x3b726: 0x6ddd0c20, 0x3b727: 0x6ddd0e20, + 0x3b728: 0x6ddd1020, 0x3b729: 0x6ddd1220, 0x3b72a: 0x6ddd1420, 0x3b72b: 0x6ddd1620, + 0x3b72c: 0x6ddd1820, 0x3b72d: 0x6ddd1a20, 0x3b72e: 0x6ddd1c20, 0x3b72f: 0x6ddd1e20, + 0x3b730: 0x6ddd2020, 0x3b731: 0x6ddd2220, 0x3b732: 0x6ddd2420, 0x3b733: 0x6ddd2620, + 0x3b734: 0x6ddd2820, 0x3b735: 0x6ddd2a20, 0x3b736: 0x6ddd2c20, 0x3b737: 0x6ddd2e20, + 0x3b738: 0x6ddd3020, 0x3b739: 0x6ddd3220, 0x3b73a: 0x6df4c020, 0x3b73b: 0x6df4c220, + 0x3b73c: 0x6df4c420, 0x3b73d: 0x6df4c620, 0x3b73e: 0x6df4c820, 0x3b73f: 0x6df4ca20, + // Block 0xedd, offset 0x3b740 + 0x3b740: 0x6df4cc20, 0x3b741: 0x6df4ce20, 0x3b742: 0x6df4d020, 0x3b743: 0x6df4d220, + 0x3b744: 0x6df4d420, 0x3b745: 0x6df4d620, 0x3b746: 0x6df4d820, 0x3b747: 0x6df4da20, + 0x3b748: 0x6df4dc20, 0x3b749: 0x6df4de20, 0x3b74a: 0x6df4e020, 0x3b74b: 0x6df4e220, + 0x3b74c: 0x6df4e420, 0x3b74d: 0x6df4e620, 0x3b74e: 0x6df4e820, 0x3b74f: 0x6df4ea20, + 0x3b750: 0x6df4ec20, 0x3b751: 0x6df4ee20, 0x3b752: 0x6df4f020, 0x3b753: 0x6df4f220, + 0x3b754: 0x6df4f420, 0x3b755: 0x6df4f620, 0x3b756: 0x6e08ba20, 0x3b757: 0x6e08bc20, + 0x3b758: 0x6e08be20, 0x3b759: 0x6e08c020, 0x3b75a: 0x6e08c220, 0x3b75b: 0x6e08c420, + 0x3b75c: 0x6e08c620, 0x3b75d: 0x6e08c820, 0x3b75e: 0x6e08ca20, 0x3b75f: 0x6e08cc20, + 0x3b760: 0x6e08ce20, 0x3b761: 0x6e08d020, 0x3b762: 0x6e08d220, 0x3b763: 0x6e08d420, + 0x3b764: 0x6e08d620, 0x3b765: 0x6e08d820, 0x3b766: 0x6e08da20, 0x3b767: 0x6e08dc20, + 0x3b768: 0x6e08de20, 0x3b769: 0x6e08e020, 0x3b76a: 0x6e08e220, 0x3b76b: 0x6e08e420, + 0x3b76c: 0x6e08e620, 0x3b76d: 0x6e08e820, 0x3b76e: 0x6e08ea20, 0x3b76f: 0x6e18be20, + 0x3b770: 0x6e18c020, 0x3b771: 0x6e18c220, 0x3b772: 0x6e18c420, 0x3b773: 0x6e18c620, + 0x3b774: 0x6e18c820, 0x3b775: 0x6e18ca20, 0x3b776: 0x6e18cc20, 0x3b777: 0x6e18ce20, + 0x3b778: 0x6e18d020, 0x3b779: 0x6e18d220, 0x3b77a: 0x6e18d420, 0x3b77b: 0x6e18d620, + 0x3b77c: 0x6e18d820, 0x3b77d: 0x6e18da20, 0x3b77e: 0x6e18dc20, 0x3b77f: 0x6e18de20, + // Block 0xede, offset 0x3b780 + 0x3b780: 0x6e18e020, 0x3b781: 0x6e18e220, 0x3b782: 0x6e18e420, 0x3b783: 0x6e257420, + 0x3b784: 0x6e257620, 0x3b785: 0x6e257820, 0x3b786: 0x6e257a20, 0x3b787: 0x6e257c20, + 0x3b788: 0x6e257e20, 0x3b789: 0x6e258020, 0x3b78a: 0x6e258220, 0x3b78b: 0x6e258420, + 0x3b78c: 0x6e258620, 0x3b78d: 0x6e258820, 0x3b78e: 0x6e258a20, 0x3b78f: 0x6e258c20, + 0x3b790: 0x6e258e20, 0x3b791: 0x6e259020, 0x3b792: 0x6e259220, 0x3b793: 0x6e259420, + 0x3b794: 0x6e259620, 0x3b795: 0x6e259820, 0x3b796: 0x6e259a20, 0x3b797: 0x6e259c20, + 0x3b798: 0x6e259e20, 0x3b799: 0x6e25a020, 0x3b79a: 0x6e25a220, 0x3b79b: 0x6e2f0620, + 0x3b79c: 0x6e2f0820, 0x3b79d: 0x6e2f0a20, 0x3b79e: 0x6e2f0c20, 0x3b79f: 0x6e2f0e20, + 0x3b7a0: 0x6e2f1020, 0x3b7a1: 0x6e2f1220, 0x3b7a2: 0x6e2f1420, 0x3b7a3: 0x6e2f1620, + 0x3b7a4: 0x6e2f1820, 0x3b7a5: 0x6e2f1a20, 0x3b7a6: 0x6e366020, 0x3b7a7: 0x6e366220, + 0x3b7a8: 0x6e366420, 0x3b7a9: 0x6e366620, 0x3b7aa: 0x6e366820, 0x3b7ab: 0x6e366a20, + 0x3b7ac: 0x6e366c20, 0x3b7ad: 0x6e366e20, 0x3b7ae: 0x6e367020, 0x3b7af: 0x6e367220, + 0x3b7b0: 0x6e3b8820, 0x3b7b1: 0x6e3b8a20, 0x3b7b2: 0x6e3b8c20, 0x3b7b3: 0x6e3b8e20, + 0x3b7b4: 0x6e3b9020, 0x3b7b5: 0x6e3b9220, 0x3b7b6: 0x6e3b9420, 0x3b7b7: 0x6e3b9620, + 0x3b7b8: 0x6e3b9820, 0x3b7b9: 0x6e3b9a20, 0x3b7ba: 0x6e3f3220, 0x3b7bb: 0x6e3f3420, + 0x3b7bc: 0x6e3f3620, 0x3b7bd: 0x6e3f3820, 0x3b7be: 0x6e3f3a20, 0x3b7bf: 0x6e3f3c20, + // Block 0xedf, offset 0x3b7c0 + 0x3b7c0: 0x6e3f3e20, 0x3b7c1: 0x6e41c020, 0x3b7c2: 0x6e41c220, 0x3b7c3: 0x6e41c420, + 0x3b7c4: 0x6e41c620, 0x3b7c5: 0x6e439020, 0x3b7c6: 0x6e439220, 0x3b7c7: 0x6e439420, + 0x3b7c8: 0x6e45f220, 0x3b7c9: 0x6e465420, 0x3b7ca: 0x6c8ab620, 0x3b7cb: 0x6c8ab820, + 0x3b7cc: 0x6d178c20, 0x3b7cd: 0x6d463e20, 0x3b7ce: 0x6d464020, 0x3b7cf: 0x6d464220, + 0x3b7d0: 0x6d734620, 0x3b7d1: 0x6d9cc220, 0x3b7d2: 0x6dbf5420, 0x3b7d3: 0x6ddd3a20, + 0x3b7d4: 0x6ddd3c20, 0x3b7d5: 0x6e08f020, 0x3b7d6: 0x6e18ea20, 0x3b7d7: 0x6e18ec20, + 0x3b7d8: 0x6e18ee20, 0x3b7d9: 0x6e25a620, 0x3b7da: 0x6e25a820, 0x3b7db: 0x6e2f1c20, + 0x3b7dc: 0x6e367820, 0x3b7dd: 0x6e367a20, 0x3b7de: 0x6e367c20, 0x3b7df: 0x6e439620, + 0x3b7e0: 0x6d734820, 0x3b7e1: 0x6d734a20, 0x3b7e2: 0x6d9cc420, 0x3b7e3: 0x6ddd3e20, + 0x3b7e4: 0x6e08f220, 0x3b7e5: 0x6e18f020, 0x3b7e6: 0x6e18f220, 0x3b7e7: 0x6e25aa20, + 0x3b7e8: 0x6e2f1e20, 0x3b7e9: 0x6e41cc20, 0x3b7ea: 0x6e439820, 0x3b7eb: 0x6d178e20, + 0x3b7ec: 0x6d179020, 0x3b7ed: 0x6d464820, 0x3b7ee: 0x6d464a20, 0x3b7ef: 0x6d734e20, + 0x3b7f0: 0x6d735020, 0x3b7f1: 0x6d9cca20, 0x3b7f2: 0x6d9ccc20, 0x3b7f3: 0x6d9cce20, + 0x3b7f4: 0x6d9cd020, 0x3b7f5: 0x6d9cd220, 0x3b7f6: 0x6d9cd420, 0x3b7f7: 0x6d9cd620, + 0x3b7f8: 0x6d9cd820, 0x3b7f9: 0x6dbf5820, 0x3b7fa: 0x6dbf5a20, 0x3b7fb: 0x6dbf5c20, + 0x3b7fc: 0x6dbf5e20, 0x3b7fd: 0x6dbf6020, 0x3b7fe: 0x6ddd4420, 0x3b7ff: 0x6ddd4620, + // Block 0xee0, offset 0x3b800 + 0x3b800: 0x6ddd4820, 0x3b801: 0x6ddd4a20, 0x3b802: 0x6ddd4c20, 0x3b803: 0x6df4fc20, + 0x3b804: 0x6df4fe20, 0x3b805: 0x6df50020, 0x3b806: 0x6df50220, 0x3b807: 0x6e08f620, + 0x3b808: 0x6e08f820, 0x3b809: 0x6e08fa20, 0x3b80a: 0x6e08fc20, 0x3b80b: 0x6e08fe20, + 0x3b80c: 0x6e18f820, 0x3b80d: 0x6e18fa20, 0x3b80e: 0x6e18fc20, 0x3b80f: 0x6e18fe20, + 0x3b810: 0x6e190020, 0x3b811: 0x6e190220, 0x3b812: 0x6e25b020, 0x3b813: 0x6e25b220, + 0x3b814: 0x6e25b420, 0x3b815: 0x6e25b620, 0x3b816: 0x6e2f2020, 0x3b817: 0x6e2f2220, + 0x3b818: 0x6e2f2420, 0x3b819: 0x6e2f2620, 0x3b81a: 0x6e2f2820, 0x3b81b: 0x6e2f2a20, + 0x3b81c: 0x6e2f2c20, 0x3b81d: 0x6e2f2e20, 0x3b81e: 0x6e2f3020, 0x3b81f: 0x6e2f3220, + 0x3b820: 0x6e367e20, 0x3b821: 0x6e368020, 0x3b822: 0x6e368220, 0x3b823: 0x6e368420, + 0x3b824: 0x6e3ba020, 0x3b825: 0x6e3ba220, 0x3b826: 0x6e3f4020, 0x3b827: 0x6e3f4220, + 0x3b828: 0x6e3f4420, 0x3b829: 0x6e3f4620, 0x3b82a: 0x6e3f4820, 0x3b82b: 0x6e41ce20, + 0x3b82c: 0x6e41d020, 0x3b82d: 0x6e439a20, 0x3b82e: 0x6e439c20, 0x3b82f: 0x6e44cc20, + 0x3b830: 0x6e44ce20, 0x3b831: 0x6e457c20, 0x3b832: 0x6e457e20, 0x3b833: 0x6e458020, + 0x3b834: 0x6e45f420, 0x3b835: 0x6e45f620, 0x3b836: 0x6e465620, 0x3b837: 0x6e470e20, + 0x3b838: 0x6e471020, 0x3b839: 0x6cb73a20, 0x3b83a: 0x6cb73c20, 0x3b83b: 0x6cb73e20, + 0x3b83c: 0x6cb74020, 0x3b83d: 0x6ce85220, 0x3b83e: 0x6ce85420, 0x3b83f: 0x6ce85620, + // Block 0xee1, offset 0x3b840 + 0x3b840: 0x6ce85820, 0x3b841: 0x6ce85a20, 0x3b842: 0x6ce85c20, 0x3b843: 0x6ce85e20, + 0x3b844: 0x6ce86020, 0x3b845: 0x6ce86220, 0x3b846: 0x6ce86420, 0x3b847: 0x6ce86620, + 0x3b848: 0x6ce86820, 0x3b849: 0x6ce86a20, 0x3b84a: 0x6d179420, 0x3b84b: 0x6d179620, + 0x3b84c: 0x6d179820, 0x3b84d: 0x6d179a20, 0x3b84e: 0x6d179c20, 0x3b84f: 0x6d179e20, + 0x3b850: 0x6d17a020, 0x3b851: 0x6d17a220, 0x3b852: 0x6d17a420, 0x3b853: 0x6d17a620, + 0x3b854: 0x6d17a820, 0x3b855: 0x6d17aa20, 0x3b856: 0x6d17ac20, 0x3b857: 0x6d17ae20, + 0x3b858: 0x6d17b020, 0x3b859: 0x6d17b220, 0x3b85a: 0x6d17b420, 0x3b85b: 0x6d17b620, + 0x3b85c: 0x6d17b820, 0x3b85d: 0x6d17ba20, 0x3b85e: 0x6d17bc20, 0x3b85f: 0x6d17be20, + 0x3b860: 0x6d17c020, 0x3b861: 0x6d465a20, 0x3b862: 0x6d465c20, 0x3b863: 0x6d465e20, + 0x3b864: 0x6d466020, 0x3b865: 0x6d466220, 0x3b866: 0x6d466420, 0x3b867: 0x6d466620, + 0x3b868: 0x6d466820, 0x3b869: 0x6d466a20, 0x3b86a: 0x6d466c20, 0x3b86b: 0x6d466e20, + 0x3b86c: 0x6d467020, 0x3b86d: 0x6d467220, 0x3b86e: 0x6d467420, 0x3b86f: 0x6d467620, + 0x3b870: 0x6d467820, 0x3b871: 0x6d467a20, 0x3b872: 0x6d467c20, 0x3b873: 0x6d467e20, + 0x3b874: 0x6d468020, 0x3b875: 0x6d468220, 0x3b876: 0x6d468420, 0x3b877: 0x6d468620, + 0x3b878: 0x6d468820, 0x3b879: 0x6d468a20, 0x3b87a: 0x6d736020, 0x3b87b: 0x6d736220, + 0x3b87c: 0x6d736420, 0x3b87d: 0x6d736620, 0x3b87e: 0x6d736820, 0x3b87f: 0x6d736a20, + // Block 0xee2, offset 0x3b880 + 0x3b880: 0x6d736c20, 0x3b881: 0x6d736e20, 0x3b882: 0x6d737020, 0x3b883: 0x6d737220, + 0x3b884: 0x6d737420, 0x3b885: 0x6d737620, 0x3b886: 0x6d737820, 0x3b887: 0x6d737a20, + 0x3b888: 0x6d737c20, 0x3b889: 0x6d737e20, 0x3b88a: 0x6d738020, 0x3b88b: 0x6d738220, + 0x3b88c: 0x6d9ce020, 0x3b88d: 0x6d9ce220, 0x3b88e: 0x6d9ce420, 0x3b88f: 0x6d9ce620, + 0x3b890: 0x6d9ce820, 0x3b891: 0x6d9cea20, 0x3b892: 0x6d9cec20, 0x3b893: 0x6d9cee20, + 0x3b894: 0x6d9cf020, 0x3b895: 0x6d9cf220, 0x3b896: 0x6d9cf420, 0x3b897: 0x6d9cf620, + 0x3b898: 0x6d9cf820, 0x3b899: 0x6d9cfa20, 0x3b89a: 0x6d9cfc20, 0x3b89b: 0x6d9cfe20, + 0x3b89c: 0x6d9d0020, 0x3b89d: 0x6d9d0220, 0x3b89e: 0x6d9d0420, 0x3b89f: 0x6d9d0620, + 0x3b8a0: 0x6d9d0820, 0x3b8a1: 0x6d9d0a20, 0x3b8a2: 0x6dbf6620, 0x3b8a3: 0x6dbf6820, + 0x3b8a4: 0x6dbf6a20, 0x3b8a5: 0x6dbf6c20, 0x3b8a6: 0x6dbf6e20, 0x3b8a7: 0x6dbf7020, + 0x3b8a8: 0x6dbf7220, 0x3b8a9: 0x6dbf7420, 0x3b8aa: 0x6dbf7620, 0x3b8ab: 0x6dbf7820, + 0x3b8ac: 0x6dbf7a20, 0x3b8ad: 0x6dbf7c20, 0x3b8ae: 0x6dbf7e20, 0x3b8af: 0x6dbf8020, + 0x3b8b0: 0x6dbf8220, 0x3b8b1: 0x6dbf8420, 0x3b8b2: 0x6dbf8620, 0x3b8b3: 0x6dbf8820, + 0x3b8b4: 0x6dbf8a20, 0x3b8b5: 0x6ddd6220, 0x3b8b6: 0x6ddd6420, 0x3b8b7: 0x6ddd6620, + 0x3b8b8: 0x6ddd6820, 0x3b8b9: 0x6ddd6a20, 0x3b8ba: 0x6ddd6c20, 0x3b8bb: 0x6ddd6e20, + 0x3b8bc: 0x6ddd7020, 0x3b8bd: 0x6ddd7220, 0x3b8be: 0x6ddd7420, 0x3b8bf: 0x6ddd7620, + // Block 0xee3, offset 0x3b8c0 + 0x3b8c0: 0x6ddd7820, 0x3b8c1: 0x6ddd7a20, 0x3b8c2: 0x6ddd7c20, 0x3b8c3: 0x6ddd7e20, + 0x3b8c4: 0x6ddd8020, 0x3b8c5: 0x6ddd8220, 0x3b8c6: 0x6df50820, 0x3b8c7: 0x6df50a20, + 0x3b8c8: 0x6df50c20, 0x3b8c9: 0x6df50e20, 0x3b8ca: 0x6df51020, 0x3b8cb: 0x6df51220, + 0x3b8cc: 0x6df51420, 0x3b8cd: 0x6df51620, 0x3b8ce: 0x6df51820, 0x3b8cf: 0x6df51a20, + 0x3b8d0: 0x6e090420, 0x3b8d1: 0x6e090620, 0x3b8d2: 0x6e090820, 0x3b8d3: 0x6e090a20, + 0x3b8d4: 0x6e090c20, 0x3b8d5: 0x6e090e20, 0x3b8d6: 0x6e091020, 0x3b8d7: 0x6e091220, + 0x3b8d8: 0x6e091420, 0x3b8d9: 0x6e091620, 0x3b8da: 0x6e091820, 0x3b8db: 0x6e091a20, + 0x3b8dc: 0x6e190e20, 0x3b8dd: 0x6e191020, 0x3b8de: 0x6e191220, 0x3b8df: 0x6e191420, + 0x3b8e0: 0x6e191620, 0x3b8e1: 0x6e191820, 0x3b8e2: 0x6e191a20, 0x3b8e3: 0x6e191c20, + 0x3b8e4: 0x6e191e20, 0x3b8e5: 0x6e192020, 0x3b8e6: 0x6e192220, 0x3b8e7: 0x6e192420, + 0x3b8e8: 0x6e192620, 0x3b8e9: 0x6e192820, 0x3b8ea: 0x6e192a20, 0x3b8eb: 0x6e192c20, + 0x3b8ec: 0x6e192e20, 0x3b8ed: 0x6e193020, 0x3b8ee: 0x6e25c220, 0x3b8ef: 0x6e25c420, + 0x3b8f0: 0x6e25c620, 0x3b8f1: 0x6e2f3620, 0x3b8f2: 0x6e2f3820, 0x3b8f3: 0x6e2f3a20, + 0x3b8f4: 0x6e2f3c20, 0x3b8f5: 0x6e2f3e20, 0x3b8f6: 0x6e2f4020, 0x3b8f7: 0x6e2f4220, + 0x3b8f8: 0x6e2f4420, 0x3b8f9: 0x6e2f4620, 0x3b8fa: 0x6e369020, 0x3b8fb: 0x6e369220, + 0x3b8fc: 0x6e369420, 0x3b8fd: 0x6e369620, 0x3b8fe: 0x6e369820, 0x3b8ff: 0x6e3ba420, + // Block 0xee4, offset 0x3b900 + 0x3b900: 0x6e3f4a20, 0x3b901: 0x6e3f4c20, 0x3b902: 0x6e3f4e20, 0x3b903: 0x6e3f5020, + 0x3b904: 0x6e41d220, 0x3b905: 0x6e41d420, 0x3b906: 0x6e43a020, 0x3b907: 0x6e43a220, + 0x3b908: 0x6e44d020, 0x3b909: 0x6e45f820, 0x3b90a: 0x6e465820, 0x3b90b: 0x6cb74820, + 0x3b90c: 0x6d17ce20, 0x3b90d: 0x6d17d020, 0x3b90e: 0x6d17d220, 0x3b90f: 0x6d17d420, + 0x3b910: 0x6d17d620, 0x3b911: 0x6d17d820, 0x3b912: 0x6d17da20, 0x3b913: 0x6d17dc20, + 0x3b914: 0x6d469a20, 0x3b915: 0x6d469c20, 0x3b916: 0x6d469e20, 0x3b917: 0x6d46a020, + 0x3b918: 0x6d46a220, 0x3b919: 0x6d46a420, 0x3b91a: 0x6d46a620, 0x3b91b: 0x6d46a820, + 0x3b91c: 0x6d46aa20, 0x3b91d: 0x6d46ac20, 0x3b91e: 0x6d46ae20, 0x3b91f: 0x6d46b020, + 0x3b920: 0x6d73c420, 0x3b921: 0x6d73c620, 0x3b922: 0x6d73c820, 0x3b923: 0x6d73ca20, + 0x3b924: 0x6d73cc20, 0x3b925: 0x6d73ce20, 0x3b926: 0x6d73d020, 0x3b927: 0x6d73d220, + 0x3b928: 0x6d73d420, 0x3b929: 0x6d73d620, 0x3b92a: 0x6d73d820, 0x3b92b: 0x6d73da20, + 0x3b92c: 0x6d73dc20, 0x3b92d: 0x6d73de20, 0x3b92e: 0x6d73e020, 0x3b92f: 0x6d73e220, + 0x3b930: 0x6d73e420, 0x3b931: 0x6d73e620, 0x3b932: 0x6d73e820, 0x3b933: 0x6d73ea20, + 0x3b934: 0x6d73ec20, 0x3b935: 0x6d73ee20, 0x3b936: 0x6d73f020, 0x3b937: 0x6d73f220, + 0x3b938: 0x6d73f420, 0x3b939: 0x6d73f620, 0x3b93a: 0x6d73f820, 0x3b93b: 0x6d73fa20, + 0x3b93c: 0x6d73fc20, 0x3b93d: 0x6d73fe20, 0x3b93e: 0x6d740020, 0x3b93f: 0x6d740220, + // Block 0xee5, offset 0x3b940 + 0x3b940: 0x6d740420, 0x3b941: 0x6d9d6220, 0x3b942: 0x6d9d6420, 0x3b943: 0x6d9d6620, + 0x3b944: 0x6d9d6820, 0x3b945: 0x6d9d6a20, 0x3b946: 0x6d9d6c20, 0x3b947: 0x6d9d6e20, + 0x3b948: 0x6d9d7020, 0x3b949: 0x6d9d7220, 0x3b94a: 0x6d9d7420, 0x3b94b: 0x6d9d7620, + 0x3b94c: 0x6d9d7820, 0x3b94d: 0x6d9d7a20, 0x3b94e: 0x6d9d7c20, 0x3b94f: 0x6d9d7e20, + 0x3b950: 0x6d9d8020, 0x3b951: 0x6d9d8220, 0x3b952: 0x6d9d8420, 0x3b953: 0x6d9d8620, + 0x3b954: 0x6d9d8820, 0x3b955: 0x6d9d8a20, 0x3b956: 0x6d9d8c20, 0x3b957: 0x6d9d8e20, + 0x3b958: 0x6d9d9020, 0x3b959: 0x6d9d9220, 0x3b95a: 0x6d9d9420, 0x3b95b: 0x6d9d9620, + 0x3b95c: 0x6d9d9820, 0x3b95d: 0x6d9d9a20, 0x3b95e: 0x6d9d9c20, 0x3b95f: 0x6d9d9e20, + 0x3b960: 0x6d9da020, 0x3b961: 0x6dbfd420, 0x3b962: 0x6dbfd620, 0x3b963: 0x6dbfd820, + 0x3b964: 0x6dbfda20, 0x3b965: 0x6dbfdc20, 0x3b966: 0x6dbfde20, 0x3b967: 0x6dbfe020, + 0x3b968: 0x6dbfe220, 0x3b969: 0x6dbfe420, 0x3b96a: 0x6dbfe620, 0x3b96b: 0x6dbfe820, + 0x3b96c: 0x6dbfea20, 0x3b96d: 0x6dbfec20, 0x3b96e: 0x6dbfee20, 0x3b96f: 0x6dbff020, + 0x3b970: 0x6dbff220, 0x3b971: 0x6dbff420, 0x3b972: 0x6dbff620, 0x3b973: 0x6dbff820, + 0x3b974: 0x6dbffa20, 0x3b975: 0x6dbffc20, 0x3b976: 0x6dbffe20, 0x3b977: 0x6d46b220, + 0x3b978: 0x6dc00020, 0x3b979: 0x6dc00220, 0x3b97a: 0x6dc00420, 0x3b97b: 0x6dc00620, + 0x3b97c: 0x6dc00820, 0x3b97d: 0x6dc00a20, 0x3b97e: 0x6dc00c20, 0x3b97f: 0x6dc00e20, + // Block 0xee6, offset 0x3b980 + 0x3b980: 0x6dc01020, 0x3b981: 0x6dc01220, 0x3b982: 0x6dc01420, 0x3b983: 0x6dc01620, + 0x3b984: 0x6dc01820, 0x3b985: 0x6dc01a20, 0x3b986: 0x6dc01c20, 0x3b987: 0x6dc01e20, + 0x3b988: 0x6dc02020, 0x3b989: 0x6dc02220, 0x3b98a: 0x6dc02420, 0x3b98b: 0x6dc02620, + 0x3b98c: 0x6dc02820, 0x3b98d: 0x6dddd220, 0x3b98e: 0x6dddd420, 0x3b98f: 0x6dddd620, + 0x3b990: 0x6dddd820, 0x3b991: 0x6dddda20, 0x3b992: 0x6ddddc20, 0x3b993: 0x6dddde20, + 0x3b994: 0x6ddde020, 0x3b995: 0x6ddde220, 0x3b996: 0x6ddde420, 0x3b997: 0x6ddde620, + 0x3b998: 0x6ddde820, 0x3b999: 0x6dddea20, 0x3b99a: 0x6dddec20, 0x3b99b: 0x6dddee20, + 0x3b99c: 0x6dddf020, 0x3b99d: 0x6dddf220, 0x3b99e: 0x6dddf420, 0x3b99f: 0x6dddf620, + 0x3b9a0: 0x6dddf820, 0x3b9a1: 0x6dddfa20, 0x3b9a2: 0x6dddfc20, 0x3b9a3: 0x6dddfe20, + 0x3b9a4: 0x6dde0020, 0x3b9a5: 0x6dde0220, 0x3b9a6: 0x6dde0420, 0x3b9a7: 0x6dde0620, + 0x3b9a8: 0x6dde0820, 0x3b9a9: 0x6dde0a20, 0x3b9aa: 0x6dde0c20, 0x3b9ab: 0x6dde0e20, + 0x3b9ac: 0x6dde1020, 0x3b9ad: 0x6dde1220, 0x3b9ae: 0x6dde1420, 0x3b9af: 0x6dde1620, + 0x3b9b0: 0x6dde1820, 0x3b9b1: 0x6dde1a20, 0x3b9b2: 0x6dde1c20, 0x3b9b3: 0x6dde1e20, + 0x3b9b4: 0x6dde2020, 0x3b9b5: 0x6dde2220, 0x3b9b6: 0x6dde2420, 0x3b9b7: 0x6df58620, + 0x3b9b8: 0x6df58820, 0x3b9b9: 0x6df58a20, 0x3b9ba: 0x6df58c20, 0x3b9bb: 0x6df58e20, + 0x3b9bc: 0x6df59020, 0x3b9bd: 0x6df59220, 0x3b9be: 0x6df59420, 0x3b9bf: 0x6df59620, + // Block 0xee7, offset 0x3b9c0 + 0x3b9c0: 0x6df59820, 0x3b9c1: 0x6df59a20, 0x3b9c2: 0x6df59c20, 0x3b9c3: 0x6df59e20, + 0x3b9c4: 0x6df5a020, 0x3b9c5: 0x6df5a220, 0x3b9c6: 0x6df5a420, 0x3b9c7: 0x6df5a620, + 0x3b9c8: 0x6df5a820, 0x3b9c9: 0x6df5aa20, 0x3b9ca: 0x6df5ac20, 0x3b9cb: 0x6df5ae20, + 0x3b9cc: 0x6df5b020, 0x3b9cd: 0x6df5b220, 0x3b9ce: 0x6df5b420, 0x3b9cf: 0x6df5b620, + 0x3b9d0: 0x6df5b820, 0x3b9d1: 0x6df5ba20, 0x3b9d2: 0x6df5bc20, 0x3b9d3: 0x6df5be20, + 0x3b9d4: 0x6df5c020, 0x3b9d5: 0x6df5c220, 0x3b9d6: 0x6df5c420, 0x3b9d7: 0x6df5c620, + 0x3b9d8: 0x6df5c820, 0x3b9d9: 0x6df5ca20, 0x3b9da: 0x6df5cc20, 0x3b9db: 0x6df5ce20, + 0x3b9dc: 0x6df5d020, 0x3b9dd: 0x6df5d220, 0x3b9de: 0x6df5d420, 0x3b9df: 0x6df5d620, + 0x3b9e0: 0x6df5d820, 0x3b9e1: 0x6df5da20, 0x3b9e2: 0x6df5dc20, 0x3b9e3: 0x6df5de20, + 0x3b9e4: 0x6df5e020, 0x3b9e5: 0x6df5e220, 0x3b9e6: 0x6df5e420, 0x3b9e7: 0x6df5e620, + 0x3b9e8: 0x6df5e820, 0x3b9e9: 0x6df5ea20, 0x3b9ea: 0x6df5ec20, 0x3b9eb: 0x6df5ee20, + 0x3b9ec: 0x6df5f020, 0x3b9ed: 0x6df5f220, 0x3b9ee: 0x6df5f420, 0x3b9ef: 0x6df5f620, + 0x3b9f0: 0x6df5f820, 0x3b9f1: 0x6df5fa20, 0x3b9f2: 0x6df5fc20, 0x3b9f3: 0x6df5fe20, + 0x3b9f4: 0x6df60020, 0x3b9f5: 0x6df60220, 0x3b9f6: 0x6df60420, 0x3b9f7: 0x6df60620, + 0x3b9f8: 0x6df60820, 0x3b9f9: 0x6df60a20, 0x3b9fa: 0x6df60c20, 0x3b9fb: 0x6df60e20, + 0x3b9fc: 0x6df61020, 0x3b9fd: 0x6df61220, 0x3b9fe: 0x6e097a20, 0x3b9ff: 0x6e097c20, + // Block 0xee8, offset 0x3ba00 + 0x3ba00: 0x6e097e20, 0x3ba01: 0x6e098020, 0x3ba02: 0x6e098220, 0x3ba03: 0x6e098420, + 0x3ba04: 0x6e098620, 0x3ba05: 0x6e098820, 0x3ba06: 0x6e098a20, 0x3ba07: 0x6e098c20, + 0x3ba08: 0x6e098e20, 0x3ba09: 0x6e099020, 0x3ba0a: 0x6e099220, 0x3ba0b: 0x6e099420, + 0x3ba0c: 0x6e099620, 0x3ba0d: 0x6e099820, 0x3ba0e: 0x6e099a20, 0x3ba0f: 0x6e099c20, + 0x3ba10: 0x6e099e20, 0x3ba11: 0x6e09a020, 0x3ba12: 0x6e09a220, 0x3ba13: 0x6e09a420, + 0x3ba14: 0x6e09a620, 0x3ba15: 0x6e09a820, 0x3ba16: 0x6e09aa20, 0x3ba17: 0x6e09ac20, + 0x3ba18: 0x6e09ae20, 0x3ba19: 0x6e09b020, 0x3ba1a: 0x6e09b220, 0x3ba1b: 0x6e09b420, + 0x3ba1c: 0x6e09b620, 0x3ba1d: 0x6e09b820, 0x3ba1e: 0x6e09ba20, 0x3ba1f: 0x6e09bc20, + 0x3ba20: 0x6e09be20, 0x3ba21: 0x6e09c020, 0x3ba22: 0x6e09c220, 0x3ba23: 0x6e09c420, + 0x3ba24: 0x6e09c620, 0x3ba25: 0x6e09c820, 0x3ba26: 0x6e09ca20, 0x3ba27: 0x6e09cc20, + 0x3ba28: 0x6e09ce20, 0x3ba29: 0x6e09d020, 0x3ba2a: 0x6e09d220, 0x3ba2b: 0x6e09d420, + 0x3ba2c: 0x6e09d620, 0x3ba2d: 0x6e09d820, 0x3ba2e: 0x6e09da20, 0x3ba2f: 0x6e09dc20, + 0x3ba30: 0x6e09de20, 0x3ba31: 0x6e196e20, 0x3ba32: 0x6e197020, 0x3ba33: 0x6e197220, + 0x3ba34: 0x6e197420, 0x3ba35: 0x6e197620, 0x3ba36: 0x6e197820, 0x3ba37: 0x6e197a20, + 0x3ba38: 0x6e197c20, 0x3ba39: 0x6e197e20, 0x3ba3a: 0x6e198020, 0x3ba3b: 0x6e198220, + 0x3ba3c: 0x6e198420, 0x3ba3d: 0x6e198620, 0x3ba3e: 0x6e198820, 0x3ba3f: 0x6e198a20, + // Block 0xee9, offset 0x3ba40 + 0x3ba40: 0x6e198c20, 0x3ba41: 0x6e198e20, 0x3ba42: 0x6e199020, 0x3ba43: 0x6e199220, + 0x3ba44: 0x6e199420, 0x3ba45: 0x6e199620, 0x3ba46: 0x6e199820, 0x3ba47: 0x6e199a20, + 0x3ba48: 0x6e199c20, 0x3ba49: 0x6e199e20, 0x3ba4a: 0x6e19a020, 0x3ba4b: 0x6e19a220, + 0x3ba4c: 0x6e19a420, 0x3ba4d: 0x6e19a620, 0x3ba4e: 0x6e19a820, 0x3ba4f: 0x6e19aa20, + 0x3ba50: 0x6e19ac20, 0x3ba51: 0x6e19ae20, 0x3ba52: 0x6e19b020, 0x3ba53: 0x6e19b220, + 0x3ba54: 0x6e19b420, 0x3ba55: 0x6e19b620, 0x3ba56: 0x6e19b820, 0x3ba57: 0x6e19ba20, + 0x3ba58: 0x6e19bc20, 0x3ba59: 0x6e19be20, 0x3ba5a: 0x6e19c020, 0x3ba5b: 0x6e19c220, + 0x3ba5c: 0x6e19c420, 0x3ba5d: 0x6e19c620, 0x3ba5e: 0x6e19c820, 0x3ba5f: 0x6e19ca20, + 0x3ba60: 0x6e19cc20, 0x3ba61: 0x6e19ce20, 0x3ba62: 0x6e19d020, 0x3ba63: 0x6e19d220, + 0x3ba64: 0x6e19d420, 0x3ba65: 0x6e19d620, 0x3ba66: 0x6e19d820, 0x3ba67: 0x6e19da20, + 0x3ba68: 0x6e19dc20, 0x3ba69: 0x6e19de20, 0x3ba6a: 0x6e19e020, 0x3ba6b: 0x6e19e220, + 0x3ba6c: 0x6e19e420, 0x3ba6d: 0x6e260e20, 0x3ba6e: 0x6e261020, 0x3ba6f: 0x6e261220, + 0x3ba70: 0x6e261420, 0x3ba71: 0x6e261620, 0x3ba72: 0x6e261820, 0x3ba73: 0x6e261a20, + 0x3ba74: 0x6e261c20, 0x3ba75: 0x6e261e20, 0x3ba76: 0x6e262020, 0x3ba77: 0x6e262220, + 0x3ba78: 0x6e262420, 0x3ba79: 0x6e262620, 0x3ba7a: 0x6e262820, 0x3ba7b: 0x6e262a20, + 0x3ba7c: 0x6e262c20, 0x3ba7d: 0x6e262e20, 0x3ba7e: 0x6e263020, 0x3ba7f: 0x6e263220, + // Block 0xeea, offset 0x3ba80 + 0x3ba80: 0x6e263420, 0x3ba81: 0x6e263620, 0x3ba82: 0x6e263820, 0x3ba83: 0x6e263a20, + 0x3ba84: 0x6e263c20, 0x3ba85: 0x6e263e20, 0x3ba86: 0x6e264020, 0x3ba87: 0x6e264220, + 0x3ba88: 0x6e264420, 0x3ba89: 0x6e264620, 0x3ba8a: 0x6e264820, 0x3ba8b: 0x6e264a20, + 0x3ba8c: 0x6e264c20, 0x3ba8d: 0x6e264e20, 0x3ba8e: 0x6e265020, 0x3ba8f: 0x6e265220, + 0x3ba90: 0x6e265420, 0x3ba91: 0x6e265620, 0x3ba92: 0x6e265820, 0x3ba93: 0x6e265a20, + 0x3ba94: 0x6e265c20, 0x3ba95: 0x6e265e20, 0x3ba96: 0x6e266020, 0x3ba97: 0x6e266220, + 0x3ba98: 0x6e2f7a20, 0x3ba99: 0x6e2f7c20, 0x3ba9a: 0x6e2f7e20, 0x3ba9b: 0x6e2f8020, + 0x3ba9c: 0x6e2f8220, 0x3ba9d: 0x6e2f8420, 0x3ba9e: 0x6e2f8620, 0x3ba9f: 0x6e2f8820, + 0x3baa0: 0x6e2f8a20, 0x3baa1: 0x6e2f8c20, 0x3baa2: 0x6e2f8e20, 0x3baa3: 0x6e2f9020, + 0x3baa4: 0x6e2f9220, 0x3baa5: 0x6e2f9420, 0x3baa6: 0x6e2f9620, 0x3baa7: 0x6e2f9820, + 0x3baa8: 0x6e2f9a20, 0x3baa9: 0x6e2f9c20, 0x3baaa: 0x6e2f9e20, 0x3baab: 0x6e2fa020, + 0x3baac: 0x6e2fa220, 0x3baad: 0x6e2fa420, 0x3baae: 0x6e2fa620, 0x3baaf: 0x6e2fa820, + 0x3bab0: 0x6e2faa20, 0x3bab1: 0x6e2fac20, 0x3bab2: 0x6e2fae20, 0x3bab3: 0x6e2fb020, + 0x3bab4: 0x6e2fb220, 0x3bab5: 0x6e2fb420, 0x3bab6: 0x6e2fb620, 0x3bab7: 0x6e2fb820, + 0x3bab8: 0x6e2fba20, 0x3bab9: 0x6e2fbc20, 0x3baba: 0x6e2fbe20, 0x3babb: 0x6e2fc020, + 0x3babc: 0x6e2fc220, 0x3babd: 0x6e2fc420, 0x3babe: 0x6e2fc620, 0x3babf: 0x6e2fc820, + // Block 0xeeb, offset 0x3bac0 + 0x3bac0: 0x6e2fca20, 0x3bac1: 0x6e2fcc20, 0x3bac2: 0x6e36c220, 0x3bac3: 0x6e36c420, + 0x3bac4: 0x6e36c620, 0x3bac5: 0x6e36c820, 0x3bac6: 0x6e36ca20, 0x3bac7: 0x6e36cc20, + 0x3bac8: 0x6e36ce20, 0x3bac9: 0x6e36d020, 0x3baca: 0x6e36d220, 0x3bacb: 0x6e36d420, + 0x3bacc: 0x6e36d620, 0x3bacd: 0x6e36d820, 0x3bace: 0x6e36da20, 0x3bacf: 0x6e36dc20, + 0x3bad0: 0x6e36de20, 0x3bad1: 0x6e36e020, 0x3bad2: 0x6e36e220, 0x3bad3: 0x6e36e420, + 0x3bad4: 0x6e36e620, 0x3bad5: 0x6e36e820, 0x3bad6: 0x6e36ea20, 0x3bad7: 0x6e36ec20, + 0x3bad8: 0x6e36ee20, 0x3bad9: 0x6e36f020, 0x3bada: 0x6e36f220, 0x3badb: 0x6e36f420, + 0x3badc: 0x6e36f620, 0x3badd: 0x6e36f820, 0x3bade: 0x6e36fa20, 0x3badf: 0x6e36fc20, + 0x3bae0: 0x6e36fe20, 0x3bae1: 0x6e370020, 0x3bae2: 0x6e370220, 0x3bae3: 0x6e370420, + 0x3bae4: 0x6e370620, 0x3bae5: 0x6e3bb620, 0x3bae6: 0x6e3bb820, 0x3bae7: 0x6e3bba20, + 0x3bae8: 0x6e3bbc20, 0x3bae9: 0x6e3bbe20, 0x3baea: 0x6e3bc020, 0x3baeb: 0x6e3bc220, + 0x3baec: 0x6e3bc420, 0x3baed: 0x6e3bc620, 0x3baee: 0x6e3bc820, 0x3baef: 0x6e3bca20, + 0x3baf0: 0x6e3bcc20, 0x3baf1: 0x6e3bce20, 0x3baf2: 0x6e3bd020, 0x3baf3: 0x6e3bd220, + 0x3baf4: 0x6e3bd420, 0x3baf5: 0x6e3bd620, 0x3baf6: 0x6e3bd820, 0x3baf7: 0x6e3bda20, + 0x3baf8: 0x6e3bdc20, 0x3baf9: 0x6e3bde20, 0x3bafa: 0x6e3be020, 0x3bafb: 0x6e3f6020, + 0x3bafc: 0x6e3f6220, 0x3bafd: 0x6e3f6420, 0x3bafe: 0x6e3f6620, 0x3baff: 0x6e3f6820, + // Block 0xeec, offset 0x3bb00 + 0x3bb00: 0x6e3f6a20, 0x3bb01: 0x6e3f6c20, 0x3bb02: 0x6e3f6e20, 0x3bb03: 0x6e3f7020, + 0x3bb04: 0x6e3f7220, 0x3bb05: 0x6e3f7420, 0x3bb06: 0x6e3f7620, 0x3bb07: 0x6e3f7820, + 0x3bb08: 0x6e3f7a20, 0x3bb09: 0x6e3f7c20, 0x3bb0a: 0x6e3f7e20, 0x3bb0b: 0x6e3f8020, + 0x3bb0c: 0x6e3f8220, 0x3bb0d: 0x6e41de20, 0x3bb0e: 0x6e41e020, 0x3bb0f: 0x6e41e220, + 0x3bb10: 0x6e41e420, 0x3bb11: 0x6e41e620, 0x3bb12: 0x6e41e820, 0x3bb13: 0x6e41ea20, + 0x3bb14: 0x6e41ec20, 0x3bb15: 0x6e41ee20, 0x3bb16: 0x6e41f020, 0x3bb17: 0x6e41f220, + 0x3bb18: 0x6e41f420, 0x3bb19: 0x6e41f620, 0x3bb1a: 0x6e43a420, 0x3bb1b: 0x6e43a620, + 0x3bb1c: 0x6e43a820, 0x3bb1d: 0x6e43aa20, 0x3bb1e: 0x6e43ac20, 0x3bb1f: 0x6e43ae20, + 0x3bb20: 0x6e43b020, 0x3bb21: 0x6e43b220, 0x3bb22: 0x6e43b420, 0x3bb23: 0x6e43b620, + 0x3bb24: 0x6e43b820, 0x3bb25: 0x6e43ba20, 0x3bb26: 0x6e43bc20, 0x3bb27: 0x6e44d420, + 0x3bb28: 0x6e44d620, 0x3bb29: 0x6e44d820, 0x3bb2a: 0x6e44da20, 0x3bb2b: 0x6e44dc20, + 0x3bb2c: 0x6e44de20, 0x3bb2d: 0x6e44e020, 0x3bb2e: 0x6e44e220, 0x3bb2f: 0x6e44e420, + 0x3bb30: 0x6e458420, 0x3bb31: 0x6e458620, 0x3bb32: 0x6e458820, 0x3bb33: 0x6e45fa20, + 0x3bb34: 0x6e45fc20, 0x3bb35: 0x6e465a20, 0x3bb36: 0x6e465c20, 0x3bb37: 0x6e465e20, + 0x3bb38: 0x6e466020, 0x3bb39: 0x6ce87820, 0x3bb3a: 0x6ce87a20, 0x3bb3b: 0x6ce87c20, + 0x3bb3c: 0x6d46d420, 0x3bb3d: 0x6d46d620, 0x3bb3e: 0x6d46d820, 0x3bb3f: 0x6d46da20, + // Block 0xeed, offset 0x3bb40 + 0x3bb40: 0x6d17fa20, 0x3bb41: 0x6d742620, 0x3bb42: 0x6d742820, 0x3bb43: 0x6d742a20, + 0x3bb44: 0x6d742c20, 0x3bb45: 0x6d9dce20, 0x3bb46: 0x6d9dd020, 0x3bb47: 0x6d9dd220, + 0x3bb48: 0x6d9dd420, 0x3bb49: 0x6d742e20, 0x3bb4a: 0x6dc05a20, 0x3bb4b: 0x6dc05c20, + 0x3bb4c: 0x6df63020, 0x3bb4d: 0x6e1a0020, 0x3bb4e: 0x6e2fdc20, 0x3bb4f: 0x6ce88820, + 0x3bb50: 0x6ce88a20, 0x3bb51: 0x6ce88c20, 0x3bb52: 0x6d181a20, 0x3bb53: 0x6d181c20, + 0x3bb54: 0x6d181e20, 0x3bb55: 0x6d182020, 0x3bb56: 0x6d182220, 0x3bb57: 0x6d182420, + 0x3bb58: 0x6d182620, 0x3bb59: 0x6d182820, 0x3bb5a: 0x6d182a20, 0x3bb5b: 0x6d182c20, + 0x3bb5c: 0x6d182e20, 0x3bb5d: 0x6d470020, 0x3bb5e: 0x6d470220, 0x3bb5f: 0x6d470420, + 0x3bb60: 0x6d470620, 0x3bb61: 0x6d470820, 0x3bb62: 0x6d470a20, 0x3bb63: 0x6d470c20, + 0x3bb64: 0x6d470e20, 0x3bb65: 0x6d471020, 0x3bb66: 0x6d471220, 0x3bb67: 0x6d471420, + 0x3bb68: 0x6d471620, 0x3bb69: 0x6d471820, 0x3bb6a: 0x6d471a20, 0x3bb6b: 0x6d471c20, + 0x3bb6c: 0x6d471e20, 0x3bb6d: 0x6d472020, 0x3bb6e: 0x6d472220, 0x3bb6f: 0x6d472420, + 0x3bb70: 0x6d747e20, 0x3bb71: 0x6d748020, 0x3bb72: 0x6d748220, 0x3bb73: 0x6d748420, + 0x3bb74: 0x6d748620, 0x3bb75: 0x6d748820, 0x3bb76: 0x6d748a20, 0x3bb77: 0x6d748c20, + 0x3bb78: 0x6d748e20, 0x3bb79: 0x6d749020, 0x3bb7a: 0x6d749220, 0x3bb7b: 0x6d749420, + 0x3bb7c: 0x6d749620, 0x3bb7d: 0x6d749820, 0x3bb7e: 0x6d749a20, 0x3bb7f: 0x6d749c20, + // Block 0xeee, offset 0x3bb80 + 0x3bb80: 0x6d749e20, 0x3bb81: 0x6d74a020, 0x3bb82: 0x6d74a220, 0x3bb83: 0x6d74a420, + 0x3bb84: 0x6d74a620, 0x3bb85: 0x6d74a820, 0x3bb86: 0x6d74aa20, 0x3bb87: 0x6d74ac20, + 0x3bb88: 0x6d74ae20, 0x3bb89: 0x6d74b020, 0x3bb8a: 0x6d74b220, 0x3bb8b: 0x6d74b420, + 0x3bb8c: 0x6d74b620, 0x3bb8d: 0x6d74b820, 0x3bb8e: 0x6d74ba20, 0x3bb8f: 0x6d74bc20, + 0x3bb90: 0x6d74be20, 0x3bb91: 0x6d74c020, 0x3bb92: 0x6d74c220, 0x3bb93: 0x6d74c420, + 0x3bb94: 0x6d74c620, 0x3bb95: 0x6d74c820, 0x3bb96: 0x6d74ca20, 0x3bb97: 0x6d74cc20, + 0x3bb98: 0x6d74ce20, 0x3bb99: 0x6d74d020, 0x3bb9a: 0x6d74d220, 0x3bb9b: 0x6d74d420, + 0x3bb9c: 0x6d9e4220, 0x3bb9d: 0x6d9e4420, 0x3bb9e: 0x6d9e4620, 0x3bb9f: 0x6d9e4820, + 0x3bba0: 0x6d9e4a20, 0x3bba1: 0x6d9e4c20, 0x3bba2: 0x6d9e4e20, 0x3bba3: 0x6d9e5020, + 0x3bba4: 0x6d9e5220, 0x3bba5: 0x6d9e5420, 0x3bba6: 0x6d9e5620, 0x3bba7: 0x6d9e5820, + 0x3bba8: 0x6d9e5a20, 0x3bba9: 0x6d9e5c20, 0x3bbaa: 0x6d9e5e20, 0x3bbab: 0x6d9e6020, + 0x3bbac: 0x6d9e6220, 0x3bbad: 0x6d9e6420, 0x3bbae: 0x6d9e6620, 0x3bbaf: 0x6d9e6820, + 0x3bbb0: 0x6d9e6a20, 0x3bbb1: 0x6d9e6c20, 0x3bbb2: 0x6d9e6e20, 0x3bbb3: 0x6d9e7020, + 0x3bbb4: 0x6d9e7220, 0x3bbb5: 0x6d9e7420, 0x3bbb6: 0x6d9e7620, 0x3bbb7: 0x6d9e7820, + 0x3bbb8: 0x6d9e7a20, 0x3bbb9: 0x6d9e7c20, 0x3bbba: 0x6d9e7e20, 0x3bbbb: 0x6d9e8020, + 0x3bbbc: 0x6d9e8220, 0x3bbbd: 0x6d9e8420, 0x3bbbe: 0x6d9e8620, 0x3bbbf: 0x6d9e8820, + // Block 0xeef, offset 0x3bbc0 + 0x3bbc0: 0x6d9e8a20, 0x3bbc1: 0x6d9e8c20, 0x3bbc2: 0x6d9e8e20, 0x3bbc3: 0x6d9e9020, + 0x3bbc4: 0x6d9e9220, 0x3bbc5: 0x6d9e9420, 0x3bbc6: 0x6d9e9620, 0x3bbc7: 0x6d9e9820, + 0x3bbc8: 0x6d9e9a20, 0x3bbc9: 0x6d9e9c20, 0x3bbca: 0x6d9e9e20, 0x3bbcb: 0x6d9ea020, + 0x3bbcc: 0x6d9ea220, 0x3bbcd: 0x6d9ea420, 0x3bbce: 0x6d9ea620, 0x3bbcf: 0x6d9ea820, + 0x3bbd0: 0x6d9eaa20, 0x3bbd1: 0x6d9eac20, 0x3bbd2: 0x6dc0ba20, 0x3bbd3: 0x6dc0bc20, + 0x3bbd4: 0x6dc0be20, 0x3bbd5: 0x6dc0c020, 0x3bbd6: 0x6dc0c220, 0x3bbd7: 0x6dc0c420, + 0x3bbd8: 0x6dc0c620, 0x3bbd9: 0x6dc0c820, 0x3bbda: 0x6dc0ca20, 0x3bbdb: 0x6dc0cc20, + 0x3bbdc: 0x6dc0ce20, 0x3bbdd: 0x6dc0d020, 0x3bbde: 0x6dc0d220, 0x3bbdf: 0x6dc0d420, + 0x3bbe0: 0x6dc0d620, 0x3bbe1: 0x6dc0d820, 0x3bbe2: 0x6dc0da20, 0x3bbe3: 0x6dc0dc20, + 0x3bbe4: 0x6dc0de20, 0x3bbe5: 0x6dc0e020, 0x3bbe6: 0x6dc0e220, 0x3bbe7: 0x6dc0e420, + 0x3bbe8: 0x6dc0e620, 0x3bbe9: 0x6dc0e820, 0x3bbea: 0x6dc0ea20, 0x3bbeb: 0x6dc0ec20, + 0x3bbec: 0x6dc0ee20, 0x3bbed: 0x6dc0f020, 0x3bbee: 0x6dc0f220, 0x3bbef: 0x6dc0f420, + 0x3bbf0: 0x6dc0f620, 0x3bbf1: 0x6dc0f820, 0x3bbf2: 0x6dc0fa20, 0x3bbf3: 0x6dc0fc20, + 0x3bbf4: 0x6dc0fe20, 0x3bbf5: 0x6dc10020, 0x3bbf6: 0x6dc10220, 0x3bbf7: 0x6dc10420, + 0x3bbf8: 0x6dc10620, 0x3bbf9: 0x6dc10820, 0x3bbfa: 0x6dc10a20, 0x3bbfb: 0x6dc10c20, + 0x3bbfc: 0x6dc10e20, 0x3bbfd: 0x6dc11020, 0x3bbfe: 0x6dc11220, 0x3bbff: 0x6dc11420, + // Block 0xef0, offset 0x3bc00 + 0x3bc00: 0x6dc11620, 0x3bc01: 0x6dc11820, 0x3bc02: 0x6dc11a20, 0x3bc03: 0x6dc11c20, + 0x3bc04: 0x6dc11e20, 0x3bc05: 0x6dc12020, 0x3bc06: 0x6dc12220, 0x3bc07: 0x6dc12420, + 0x3bc08: 0x6dc12620, 0x3bc09: 0x6dc12820, 0x3bc0a: 0x6dde8220, 0x3bc0b: 0x6dde8420, + 0x3bc0c: 0x6dde8620, 0x3bc0d: 0x6dde8820, 0x3bc0e: 0x6dde8a20, 0x3bc0f: 0x6dde8c20, + 0x3bc10: 0x6dde8e20, 0x3bc11: 0x6dde9020, 0x3bc12: 0x6dde9220, 0x3bc13: 0x6dde9420, + 0x3bc14: 0x6dde9620, 0x3bc15: 0x6dde9820, 0x3bc16: 0x6dde9a20, 0x3bc17: 0x6dde9c20, + 0x3bc18: 0x6dde9e20, 0x3bc19: 0x6ddea020, 0x3bc1a: 0x6ddea220, 0x3bc1b: 0x6ddea420, + 0x3bc1c: 0x6ddea620, 0x3bc1d: 0x6ddea820, 0x3bc1e: 0x6ddeaa20, 0x3bc1f: 0x6ddeac20, + 0x3bc20: 0x6ddeae20, 0x3bc21: 0x6ddeb020, 0x3bc22: 0x6ddeb220, 0x3bc23: 0x6ddeb420, + 0x3bc24: 0x6ddeb620, 0x3bc25: 0x6ddeb820, 0x3bc26: 0x6ddeba20, 0x3bc27: 0x6ddebc20, + 0x3bc28: 0x6ddebe20, 0x3bc29: 0x6ddec020, 0x3bc2a: 0x6ddec220, 0x3bc2b: 0x6ddec420, + 0x3bc2c: 0x6ddec620, 0x3bc2d: 0x6ddec820, 0x3bc2e: 0x6ddeca20, 0x3bc2f: 0x6ddecc20, + 0x3bc30: 0x6ddece20, 0x3bc31: 0x6dded020, 0x3bc32: 0x6dded220, 0x3bc33: 0x6dded420, + 0x3bc34: 0x6dded620, 0x3bc35: 0x6dded820, 0x3bc36: 0x6ddeda20, 0x3bc37: 0x6df6a020, + 0x3bc38: 0x6df6a220, 0x3bc39: 0x6df6a420, 0x3bc3a: 0x6df6a620, 0x3bc3b: 0x6df6a820, + 0x3bc3c: 0x6df6aa20, 0x3bc3d: 0x6df6ac20, 0x3bc3e: 0x6df6ae20, 0x3bc3f: 0x6df6b020, + // Block 0xef1, offset 0x3bc40 + 0x3bc40: 0x6df6b220, 0x3bc41: 0x6df6b420, 0x3bc42: 0x6df6b620, 0x3bc43: 0x6df6b820, + 0x3bc44: 0x6df6ba20, 0x3bc45: 0x6df6bc20, 0x3bc46: 0x6df6be20, 0x3bc47: 0x6df6c020, + 0x3bc48: 0x6df6c220, 0x3bc49: 0x6df6c420, 0x3bc4a: 0x6df6c620, 0x3bc4b: 0x6df6c820, + 0x3bc4c: 0x6df6ca20, 0x3bc4d: 0x6df6cc20, 0x3bc4e: 0x6df6ce20, 0x3bc4f: 0x6df6d020, + 0x3bc50: 0x6df6d220, 0x3bc51: 0x6df6d420, 0x3bc52: 0x6df6d620, 0x3bc53: 0x6df6d820, + 0x3bc54: 0x6df6da20, 0x3bc55: 0x6df6dc20, 0x3bc56: 0x6df6de20, 0x3bc57: 0x6df6e020, + 0x3bc58: 0x6df6e220, 0x3bc59: 0x6df6e420, 0x3bc5a: 0x6df6e620, 0x3bc5b: 0x6df6e820, + 0x3bc5c: 0x6df6ea20, 0x3bc5d: 0x6df6ec20, 0x3bc5e: 0x6df6ee20, 0x3bc5f: 0x6df6f020, + 0x3bc60: 0x6df6f220, 0x3bc61: 0x6df6f420, 0x3bc62: 0x6df6f620, 0x3bc63: 0x6df6f820, + 0x3bc64: 0x6df6fa20, 0x3bc65: 0x6df6fc20, 0x3bc66: 0x6df6fe20, 0x3bc67: 0x6df70020, + 0x3bc68: 0x6df70220, 0x3bc69: 0x6df70420, 0x3bc6a: 0x6df70620, 0x3bc6b: 0x6df70820, + 0x3bc6c: 0x6df70a20, 0x3bc6d: 0x6df70c20, 0x3bc6e: 0x6df70e20, 0x3bc6f: 0x6df71020, + 0x3bc70: 0x6df71220, 0x3bc71: 0x6df71420, 0x3bc72: 0x6df71620, 0x3bc73: 0x6df71820, + 0x3bc74: 0x6df71a20, 0x3bc75: 0x6df71c20, 0x3bc76: 0x6e0a4420, 0x3bc77: 0x6e0a4620, + 0x3bc78: 0x6e0a4820, 0x3bc79: 0x6e0a4a20, 0x3bc7a: 0x6e0a4c20, 0x3bc7b: 0x6e0a4e20, + 0x3bc7c: 0x6e0a5020, 0x3bc7d: 0x6e0a5220, 0x3bc7e: 0x6e0a5420, 0x3bc7f: 0x6e0a5620, + // Block 0xef2, offset 0x3bc80 + 0x3bc80: 0x6e0a5820, 0x3bc81: 0x6e0a5a20, 0x3bc82: 0x6e0a5c20, 0x3bc83: 0x6e0a5e20, + 0x3bc84: 0x6e0a6020, 0x3bc85: 0x6e0a6220, 0x3bc86: 0x6e0a6420, 0x3bc87: 0x6e0a6620, + 0x3bc88: 0x6e0a6820, 0x3bc89: 0x6e0a6a20, 0x3bc8a: 0x6e0a6c20, 0x3bc8b: 0x6e0a6e20, + 0x3bc8c: 0x6e0a7020, 0x3bc8d: 0x6e0a7220, 0x3bc8e: 0x6e0a7420, 0x3bc8f: 0x6e0a7620, + 0x3bc90: 0x6e0a7820, 0x3bc91: 0x6e0a7a20, 0x3bc92: 0x6e0a7c20, 0x3bc93: 0x6e0a7e20, + 0x3bc94: 0x6e0a8020, 0x3bc95: 0x6e0a8220, 0x3bc96: 0x6e0a8420, 0x3bc97: 0x6e0a8620, + 0x3bc98: 0x6e0a8820, 0x3bc99: 0x6e0a8a20, 0x3bc9a: 0x6e0a8c20, 0x3bc9b: 0x6e0a8e20, + 0x3bc9c: 0x6e0a9020, 0x3bc9d: 0x6e0a9220, 0x3bc9e: 0x6e0a9420, 0x3bc9f: 0x6e0a9620, + 0x3bca0: 0x6e0a9820, 0x3bca1: 0x6e0a9a20, 0x3bca2: 0x6e0a9c20, 0x3bca3: 0x6e0a9e20, + 0x3bca4: 0x6e0aa020, 0x3bca5: 0x6e0aa220, 0x3bca6: 0x6e0aa420, 0x3bca7: 0x6e0aa620, + 0x3bca8: 0x6e0aa820, 0x3bca9: 0x6e0aaa20, 0x3bcaa: 0x6e0aac20, 0x3bcab: 0x6e0aae20, + 0x3bcac: 0x6e0ab020, 0x3bcad: 0x6e0ab220, 0x3bcae: 0x6e0ab420, 0x3bcaf: 0x6e0ab620, + 0x3bcb0: 0x6e0ab820, 0x3bcb1: 0x6e0aba20, 0x3bcb2: 0x6e0abc20, 0x3bcb3: 0x6e0abe20, + 0x3bcb4: 0x6e0ac020, 0x3bcb5: 0x6e0ac220, 0x3bcb6: 0x6e0ac420, 0x3bcb7: 0x6e0ac620, + 0x3bcb8: 0x6e0ac820, 0x3bcb9: 0x6e0aca20, 0x3bcba: 0x6e1a5420, 0x3bcbb: 0x6e1a5620, + 0x3bcbc: 0x6e1a5820, 0x3bcbd: 0x6e1a5a20, 0x3bcbe: 0x6e1a5c20, 0x3bcbf: 0x6e1a5e20, + // Block 0xef3, offset 0x3bcc0 + 0x3bcc0: 0x6e1a6020, 0x3bcc1: 0x6e1a6220, 0x3bcc2: 0x6e1a6420, 0x3bcc3: 0x6e1a6620, + 0x3bcc4: 0x6e1a6820, 0x3bcc5: 0x6e1a6a20, 0x3bcc6: 0x6e1a6c20, 0x3bcc7: 0x6e1a6e20, + 0x3bcc8: 0x6e1a7020, 0x3bcc9: 0x6e1a7220, 0x3bcca: 0x6e1a7420, 0x3bccb: 0x6e1a7620, + 0x3bccc: 0x6e1a7820, 0x3bccd: 0x6e1a7a20, 0x3bcce: 0x6e1a7c20, 0x3bccf: 0x6e1a7e20, + 0x3bcd0: 0x6e1a8020, 0x3bcd1: 0x6e1a8220, 0x3bcd2: 0x6e1a8420, 0x3bcd3: 0x6e1a8620, + 0x3bcd4: 0x6e1a8820, 0x3bcd5: 0x6e1a8a20, 0x3bcd6: 0x6e1a8c20, 0x3bcd7: 0x6e1a8e20, + 0x3bcd8: 0x6e1a9020, 0x3bcd9: 0x6e1a9220, 0x3bcda: 0x6e1a9420, 0x3bcdb: 0x6e1a9620, + 0x3bcdc: 0x6e1a9820, 0x3bcdd: 0x6e1a9a20, 0x3bcde: 0x6e1a9c20, 0x3bcdf: 0x6e1a9e20, + 0x3bce0: 0x6e1aa020, 0x3bce1: 0x6e1aa220, 0x3bce2: 0x6e1aa420, 0x3bce3: 0x6e1aa620, + 0x3bce4: 0x6e1aa820, 0x3bce5: 0x6e1aaa20, 0x3bce6: 0x6e1aac20, 0x3bce7: 0x6e1aae20, + 0x3bce8: 0x6e1ab020, 0x3bce9: 0x6e1ab220, 0x3bcea: 0x6e1ab420, 0x3bceb: 0x6e1ab620, + 0x3bcec: 0x6e1ab820, 0x3bced: 0x6e26a820, 0x3bcee: 0x6e26aa20, 0x3bcef: 0x6e26ac20, + 0x3bcf0: 0x6e26ae20, 0x3bcf1: 0x6e26b020, 0x3bcf2: 0x6e26b220, 0x3bcf3: 0x6e26b420, + 0x3bcf4: 0x6e26b620, 0x3bcf5: 0x6e26b820, 0x3bcf6: 0x6e26ba20, 0x3bcf7: 0x6e26bc20, + 0x3bcf8: 0x6e26be20, 0x3bcf9: 0x6e26c020, 0x3bcfa: 0x6e26c220, 0x3bcfb: 0x6e26c420, + 0x3bcfc: 0x6e26c620, 0x3bcfd: 0x6e26c820, 0x3bcfe: 0x6e26ca20, 0x3bcff: 0x6e26cc20, + // Block 0xef4, offset 0x3bd00 + 0x3bd00: 0x6e26ce20, 0x3bd01: 0x6e26d020, 0x3bd02: 0x6e26d220, 0x3bd03: 0x6e26d420, + 0x3bd04: 0x6e26d620, 0x3bd05: 0x6e26d820, 0x3bd06: 0x6e26da20, 0x3bd07: 0x6e26dc20, + 0x3bd08: 0x6e26de20, 0x3bd09: 0x6e26e020, 0x3bd0a: 0x6e26e220, 0x3bd0b: 0x6e26e420, + 0x3bd0c: 0x6e26e620, 0x3bd0d: 0x6e26e820, 0x3bd0e: 0x6e26ea20, 0x3bd0f: 0x6e26ec20, + 0x3bd10: 0x6e26ee20, 0x3bd11: 0x6e26f020, 0x3bd12: 0x6e26f220, 0x3bd13: 0x6e26f420, + 0x3bd14: 0x6e26f620, 0x3bd15: 0x6e26f820, 0x3bd16: 0x6e26fa20, 0x3bd17: 0x6e26fc20, + 0x3bd18: 0x6e26fe20, 0x3bd19: 0x6e270020, 0x3bd1a: 0x6e270220, 0x3bd1b: 0x6e270420, + 0x3bd1c: 0x6e270620, 0x3bd1d: 0x6e270820, 0x3bd1e: 0x6e270a20, 0x3bd1f: 0x6e270c20, + 0x3bd20: 0x6e270e20, 0x3bd21: 0x6e271020, 0x3bd22: 0x6e271220, 0x3bd23: 0x6e271420, + 0x3bd24: 0x6e271620, 0x3bd25: 0x6e271820, 0x3bd26: 0x6e271a20, 0x3bd27: 0x6e271c20, + 0x3bd28: 0x6e271e20, 0x3bd29: 0x6e272020, 0x3bd2a: 0x6e272220, 0x3bd2b: 0x6e272420, + 0x3bd2c: 0x6e272620, 0x3bd2d: 0x6e272820, 0x3bd2e: 0x6e272a20, 0x3bd2f: 0x6e302220, + 0x3bd30: 0x6e302420, 0x3bd31: 0x6e302620, 0x3bd32: 0x6e302820, 0x3bd33: 0x6e302a20, + 0x3bd34: 0x6e302c20, 0x3bd35: 0x6e302e20, 0x3bd36: 0x6e303020, 0x3bd37: 0x6e303220, + 0x3bd38: 0x6e303420, 0x3bd39: 0x6e303620, 0x3bd3a: 0x6e303820, 0x3bd3b: 0x6e303a20, + 0x3bd3c: 0x6e303c20, 0x3bd3d: 0x6e303e20, 0x3bd3e: 0x6e304020, 0x3bd3f: 0x6e304220, + // Block 0xef5, offset 0x3bd40 + 0x3bd40: 0x6e304420, 0x3bd41: 0x6e304620, 0x3bd42: 0x6e304820, 0x3bd43: 0x6e304a20, + 0x3bd44: 0x6e304c20, 0x3bd45: 0x6e304e20, 0x3bd46: 0x6e305020, 0x3bd47: 0x6e305220, + 0x3bd48: 0x6e305420, 0x3bd49: 0x6e305620, 0x3bd4a: 0x6e305820, 0x3bd4b: 0x6e305a20, + 0x3bd4c: 0x6e305c20, 0x3bd4d: 0x6e305e20, 0x3bd4e: 0x6e306020, 0x3bd4f: 0x6e306220, + 0x3bd50: 0x6e306420, 0x3bd51: 0x6e306620, 0x3bd52: 0x6e306820, 0x3bd53: 0x6e306a20, + 0x3bd54: 0x6e306c20, 0x3bd55: 0x6e306e20, 0x3bd56: 0x6e307020, 0x3bd57: 0x6e307220, + 0x3bd58: 0x6e307420, 0x3bd59: 0x6e307620, 0x3bd5a: 0x6e307820, 0x3bd5b: 0x6e307a20, + 0x3bd5c: 0x6e307c20, 0x3bd5d: 0x6e307e20, 0x3bd5e: 0x6e308020, 0x3bd5f: 0x6e308220, + 0x3bd60: 0x6e308420, 0x3bd61: 0x6e308620, 0x3bd62: 0x6e308820, 0x3bd63: 0x6e308a20, + 0x3bd64: 0x6e308c20, 0x3bd65: 0x6e308e20, 0x3bd66: 0x6e309020, 0x3bd67: 0x6e309220, + 0x3bd68: 0x6e309420, 0x3bd69: 0x6e309620, 0x3bd6a: 0x6e309820, 0x3bd6b: 0x6e309a20, + 0x3bd6c: 0x6e374020, 0x3bd6d: 0x6e309c20, 0x3bd6e: 0x6e374220, 0x3bd6f: 0x6e374420, + 0x3bd70: 0x6e374620, 0x3bd71: 0x6e374820, 0x3bd72: 0x6e374a20, 0x3bd73: 0x6e374c20, + 0x3bd74: 0x6e374e20, 0x3bd75: 0x6e375020, 0x3bd76: 0x6e375220, 0x3bd77: 0x6e375420, + 0x3bd78: 0x6e375620, 0x3bd79: 0x6e375820, 0x3bd7a: 0x6e375a20, 0x3bd7b: 0x6e375c20, + 0x3bd7c: 0x6e375e20, 0x3bd7d: 0x6e376020, 0x3bd7e: 0x6e376220, 0x3bd7f: 0x6e376420, + // Block 0xef6, offset 0x3bd80 + 0x3bd80: 0x6e376620, 0x3bd81: 0x6e376820, 0x3bd82: 0x6e376a20, 0x3bd83: 0x6e376c20, + 0x3bd84: 0x6e376e20, 0x3bd85: 0x6e377020, 0x3bd86: 0x6e377220, 0x3bd87: 0x6e377420, + 0x3bd88: 0x6e377620, 0x3bd89: 0x6e377820, 0x3bd8a: 0x6e377a20, 0x3bd8b: 0x6e377c20, + 0x3bd8c: 0x6e377e20, 0x3bd8d: 0x6e378020, 0x3bd8e: 0x6e378220, 0x3bd8f: 0x6e378420, + 0x3bd90: 0x6e378620, 0x3bd91: 0x6e3bfa20, 0x3bd92: 0x6e3bfc20, 0x3bd93: 0x6e3bfe20, + 0x3bd94: 0x6e3c0020, 0x3bd95: 0x6e3c0220, 0x3bd96: 0x6e3c0420, 0x3bd97: 0x6e3c0620, + 0x3bd98: 0x6e3c0820, 0x3bd99: 0x6e3c0a20, 0x3bd9a: 0x6e3c0c20, 0x3bd9b: 0x6e3c0e20, + 0x3bd9c: 0x6e3c1020, 0x3bd9d: 0x6e3c1220, 0x3bd9e: 0x6e3c8020, 0x3bd9f: 0x6e3c1420, + 0x3bda0: 0x6e3c1620, 0x3bda1: 0x6e3c1820, 0x3bda2: 0x6e3c1a20, 0x3bda3: 0x6e3c1c20, + 0x3bda4: 0x6e3c1e20, 0x3bda5: 0x6e3c2020, 0x3bda6: 0x6e3c2220, 0x3bda7: 0x6e3c2420, + 0x3bda8: 0x6e3c2620, 0x3bda9: 0x6e3c2820, 0x3bdaa: 0x6e3c2a20, 0x3bdab: 0x6e3c2c20, + 0x3bdac: 0x6e3c2e20, 0x3bdad: 0x6e3f8c20, 0x3bdae: 0x6e3f8e20, 0x3bdaf: 0x6e3f9020, + 0x3bdb0: 0x6e3f9220, 0x3bdb1: 0x6e3f9420, 0x3bdb2: 0x6e3f9620, 0x3bdb3: 0x6e3f9820, + 0x3bdb4: 0x6e3f9a20, 0x3bdb5: 0x6e3f9c20, 0x3bdb6: 0x6e3f9e20, 0x3bdb7: 0x6e3fa020, + 0x3bdb8: 0x6e3fa220, 0x3bdb9: 0x6e3fa420, 0x3bdba: 0x6e3fa620, 0x3bdbb: 0x6e3fa820, + 0x3bdbc: 0x6e3faa20, 0x3bdbd: 0x6e3fac20, 0x3bdbe: 0x6e3fae20, 0x3bdbf: 0x6e3fb020, + // Block 0xef7, offset 0x3bdc0 + 0x3bdc0: 0x6e3fb220, 0x3bdc1: 0x6e3fb420, 0x3bdc2: 0x6e3fb620, 0x3bdc3: 0x6e420020, + 0x3bdc4: 0x6e420220, 0x3bdc5: 0x6e420420, 0x3bdc6: 0x6e420620, 0x3bdc7: 0x6e420820, + 0x3bdc8: 0x6e420a20, 0x3bdc9: 0x6e420c20, 0x3bdca: 0x6e420e20, 0x3bdcb: 0x6e421020, + 0x3bdcc: 0x6e421220, 0x3bdcd: 0x6e421420, 0x3bdce: 0x6e421620, 0x3bdcf: 0x6e421820, + 0x3bdd0: 0x6e421a20, 0x3bdd1: 0x6e421c20, 0x3bdd2: 0x6e421e20, 0x3bdd3: 0x6e422020, + 0x3bdd4: 0x6e422220, 0x3bdd5: 0x6e422420, 0x3bdd6: 0x6e422620, 0x3bdd7: 0x6e422820, + 0x3bdd8: 0x6e43c620, 0x3bdd9: 0x6e43c820, 0x3bdda: 0x6e43ca20, 0x3bddb: 0x6e43cc20, + 0x3bddc: 0x6e43ce20, 0x3bddd: 0x6e43d020, 0x3bdde: 0x6e43d220, 0x3bddf: 0x6e43d420, + 0x3bde0: 0x6e43d620, 0x3bde1: 0x6e43d820, 0x3bde2: 0x6e43da20, 0x3bde3: 0x6e43dc20, + 0x3bde4: 0x6e43de20, 0x3bde5: 0x6e44ea20, 0x3bde6: 0x6e44ec20, 0x3bde7: 0x6e44ee20, + 0x3bde8: 0x6e44f020, 0x3bde9: 0x6e44f220, 0x3bdea: 0x6e44f420, 0x3bdeb: 0x6e44f620, + 0x3bdec: 0x6e44f820, 0x3bded: 0x6e44fa20, 0x3bdee: 0x6e459220, 0x3bdef: 0x6e459420, + 0x3bdf0: 0x6e459620, 0x3bdf1: 0x6e459820, 0x3bdf2: 0x6e459a20, 0x3bdf3: 0x6e459c20, + 0x3bdf4: 0x6e460220, 0x3bdf5: 0x6e460420, 0x3bdf6: 0x6e460620, 0x3bdf7: 0x6e460820, + 0x3bdf8: 0x6e466420, 0x3bdf9: 0x6e466620, 0x3bdfa: 0x6e466820, 0x3bdfb: 0x6e469c20, + 0x3bdfc: 0x6e469e20, 0x3bdfd: 0x6e46a020, 0x3bdfe: 0x6e46d620, 0x3bdff: 0x6e46f620, + // Block 0xef8, offset 0x3be00 + 0x3be00: 0x6e46f820, 0x3be01: 0x6c63b820, 0x3be02: 0x6c63ba20, 0x3be03: 0x6c63bc20, + 0x3be04: 0x6c8ade20, 0x3be05: 0x6cb76820, 0x3be06: 0x6cb76a20, 0x3be07: 0x6cb76c20, + 0x3be08: 0x6cb76e20, 0x3be09: 0x6cb77020, 0x3be0a: 0x6cb77220, 0x3be0b: 0x6cb77420, + 0x3be0c: 0x6ce8a220, 0x3be0d: 0x6ce8a420, 0x3be0e: 0x6d184820, 0x3be0f: 0x6d473420, + 0x3be10: 0x6d473620, 0x3be11: 0x6d74f220, 0x3be12: 0x6d74f420, 0x3be13: 0x6d74f620, + 0x3be14: 0x6d74f820, 0x3be15: 0x6e0ad620, 0x3be16: 0x6d474620, 0x3be17: 0x6d474820, + 0x3be18: 0x6d750220, 0x3be19: 0x6d750420, 0x3be1a: 0x6d750620, 0x3be1b: 0x6d750820, + 0x3be1c: 0x6d9ecc20, 0x3be1d: 0x6d9ece20, 0x3be1e: 0x6d9ed020, 0x3be1f: 0x6d9ed220, + 0x3be20: 0x6d9ed420, 0x3be21: 0x6d9ed620, 0x3be22: 0x6dc14420, 0x3be23: 0x6ddef220, + 0x3be24: 0x6ddef420, 0x3be25: 0x6ddef620, 0x3be26: 0x6df73820, 0x3be27: 0x6df73a20, + 0x3be28: 0x6df73c20, 0x3be29: 0x6df73e20, 0x3be2a: 0x6df74020, 0x3be2b: 0x6df74220, + 0x3be2c: 0x6df74420, 0x3be2d: 0x6e0ada20, 0x3be2e: 0x6e0adc20, 0x3be2f: 0x6e0ade20, + 0x3be30: 0x6e0ae020, 0x3be31: 0x6e0ae220, 0x3be32: 0x6e0ae420, 0x3be33: 0x6e0ae620, + 0x3be34: 0x6e0ae820, 0x3be35: 0x6e1aca20, 0x3be36: 0x6e1acc20, 0x3be37: 0x6e1ace20, + 0x3be38: 0x6e1ad020, 0x3be39: 0x6e1ad220, 0x3be3a: 0x6e273820, 0x3be3b: 0x6e273a20, + 0x3be3c: 0x6e273c20, 0x3be3d: 0x6e273e20, 0x3be3e: 0x6e274020, 0x3be3f: 0x6e30aa20, + // Block 0xef9, offset 0x3be40 + 0x3be40: 0x6e30ac20, 0x3be41: 0x6e30ae20, 0x3be42: 0x6e30b020, 0x3be43: 0x6e379020, + 0x3be44: 0x6e379220, 0x3be45: 0x6e379420, 0x3be46: 0x6e3c3420, 0x3be47: 0x6e3c3620, + 0x3be48: 0x6e3fba20, 0x3be49: 0x6e422a20, 0x3be4a: 0x6e43e020, 0x3be4b: 0x6d185c20, + 0x3be4c: 0x6d185e20, 0x3be4d: 0x6d474c20, 0x3be4e: 0x6d474e20, 0x3be4f: 0x6d751620, + 0x3be50: 0x6d751820, 0x3be51: 0x6d751a20, 0x3be52: 0x6d751c20, 0x3be53: 0x6d751e20, + 0x3be54: 0x6d752020, 0x3be55: 0x6d752220, 0x3be56: 0x6d752420, 0x3be57: 0x6d752620, + 0x3be58: 0x6d752820, 0x3be59: 0x6d752a20, 0x3be5a: 0x6d752c20, 0x3be5b: 0x6d9eea20, + 0x3be5c: 0x6d9eec20, 0x3be5d: 0x6d9eee20, 0x3be5e: 0x6d9ef020, 0x3be5f: 0x6d9ef220, + 0x3be60: 0x6d9ef420, 0x3be61: 0x6d9ef620, 0x3be62: 0x6d9ef820, 0x3be63: 0x6d9efa20, + 0x3be64: 0x6d9efc20, 0x3be65: 0x6dc14e20, 0x3be66: 0x6dc15020, 0x3be67: 0x6dc15220, + 0x3be68: 0x6dc15420, 0x3be69: 0x6dc15620, 0x3be6a: 0x6dc15820, 0x3be6b: 0x6dc15a20, + 0x3be6c: 0x6dc15c20, 0x3be6d: 0x6dc15e20, 0x3be6e: 0x6dc16020, 0x3be6f: 0x6dc16220, + 0x3be70: 0x6dc16420, 0x3be71: 0x6dc16620, 0x3be72: 0x6dc16820, 0x3be73: 0x6dc16a20, + 0x3be74: 0x6ddf0620, 0x3be75: 0x6ddf0820, 0x3be76: 0x6ddf0a20, 0x3be77: 0x6ddf0c20, + 0x3be78: 0x6ddf0e20, 0x3be79: 0x6ddf1020, 0x3be7a: 0x6ddf1220, 0x3be7b: 0x6ddf1420, + 0x3be7c: 0x6ddf1620, 0x3be7d: 0x6ddf1820, 0x3be7e: 0x6ddf1a20, 0x3be7f: 0x6ddf1c20, + // Block 0xefa, offset 0x3be80 + 0x3be80: 0x6ddf1e20, 0x3be81: 0x6ddf2020, 0x3be82: 0x6ddf2220, 0x3be83: 0x6ddf2420, + 0x3be84: 0x6df75620, 0x3be85: 0x6df75820, 0x3be86: 0x6df75a20, 0x3be87: 0x6df75c20, + 0x3be88: 0x6df75e20, 0x3be89: 0x6df76020, 0x3be8a: 0x6df76220, 0x3be8b: 0x6df76420, + 0x3be8c: 0x6df76620, 0x3be8d: 0x6df76820, 0x3be8e: 0x6e0af420, 0x3be8f: 0x6e0af620, + 0x3be90: 0x6e0af820, 0x3be91: 0x6e0afa20, 0x3be92: 0x6e0afc20, 0x3be93: 0x6e0afe20, + 0x3be94: 0x6e0b0020, 0x3be95: 0x6e0b0220, 0x3be96: 0x6e0b0420, 0x3be97: 0x6e1ada20, + 0x3be98: 0x6e1adc20, 0x3be99: 0x6e1ade20, 0x3be9a: 0x6e1ae020, 0x3be9b: 0x6e1ae220, + 0x3be9c: 0x6e274620, 0x3be9d: 0x6e274820, 0x3be9e: 0x6e274a20, 0x3be9f: 0x6e274c20, + 0x3bea0: 0x6e274e20, 0x3bea1: 0x6e30b420, 0x3bea2: 0x6e30b620, 0x3bea3: 0x6e30b820, + 0x3bea4: 0x6e30ba20, 0x3bea5: 0x6e30bc20, 0x3bea6: 0x6e30be20, 0x3bea7: 0x6e30c020, + 0x3bea8: 0x6e30c220, 0x3bea9: 0x6e30c420, 0x3beaa: 0x6e379c20, 0x3beab: 0x6e379e20, + 0x3beac: 0x6e37a020, 0x3bead: 0x6e37a220, 0x3beae: 0x6e3c3a20, 0x3beaf: 0x6e3c3c20, + 0x3beb0: 0x6e3c3e20, 0x3beb1: 0x6e3c4020, 0x3beb2: 0x6e3c4220, 0x3beb3: 0x6e3c4420, + 0x3beb4: 0x6e3c4620, 0x3beb5: 0x6e422c20, 0x3beb6: 0x6e43e420, 0x3beb7: 0x6e43e620, + 0x3beb8: 0x6e44fc20, 0x3beb9: 0x6e460c20, 0x3beba: 0x6e46d820, 0x3bebb: 0x6e46fa20, + 0x3bebc: 0x6d186220, 0x3bebd: 0x6d186420, 0x3bebe: 0x6d186620, 0x3bebf: 0x6d186820, + // Block 0xefb, offset 0x3bec0 + 0x3bec0: 0x6d186a20, 0x3bec1: 0x6d475820, 0x3bec2: 0x6d475a20, 0x3bec3: 0x6d475c20, + 0x3bec4: 0x6d475e20, 0x3bec5: 0x6d753c20, 0x3bec6: 0x6d753e20, 0x3bec7: 0x6d754020, + 0x3bec8: 0x6d754220, 0x3bec9: 0x6d754420, 0x3beca: 0x6d754620, 0x3becb: 0x6d754820, + 0x3becc: 0x6d754a20, 0x3becd: 0x6d754c20, 0x3bece: 0x6d754e20, 0x3becf: 0x6d755020, + 0x3bed0: 0x6d755220, 0x3bed1: 0x6d755420, 0x3bed2: 0x6d755620, 0x3bed3: 0x6d755820, + 0x3bed4: 0x6d9f0c20, 0x3bed5: 0x6d9f0e20, 0x3bed6: 0x6d9f1020, 0x3bed7: 0x6d9f1220, + 0x3bed8: 0x6d9f1420, 0x3bed9: 0x6d9f1620, 0x3beda: 0x6d9f1820, 0x3bedb: 0x6cbd9220, + 0x3bedc: 0x6d9f1a20, 0x3bedd: 0x6d9f1c20, 0x3bede: 0x6d9f1e20, 0x3bedf: 0x6d9f2020, + 0x3bee0: 0x6d9f2220, 0x3bee1: 0x6d9f2420, 0x3bee2: 0x6dc17420, 0x3bee3: 0x6dc17620, + 0x3bee4: 0x6dc17820, 0x3bee5: 0x6dc17a20, 0x3bee6: 0x6dc17c20, 0x3bee7: 0x6dc17e20, + 0x3bee8: 0x6dc18020, 0x3bee9: 0x6dc18220, 0x3beea: 0x6dc18420, 0x3beeb: 0x6dc18620, + 0x3beec: 0x6dc18820, 0x3beed: 0x6ddf3220, 0x3beee: 0x6ddf3420, 0x3beef: 0x6ddf3620, + 0x3bef0: 0x6ddf3820, 0x3bef1: 0x6ddf3a20, 0x3bef2: 0x6ddf3c20, 0x3bef3: 0x6ddf3e20, + 0x3bef4: 0x6ddf4020, 0x3bef5: 0x6ddf4220, 0x3bef6: 0x6ddf4420, 0x3bef7: 0x6ddf4620, + 0x3bef8: 0x6ddf4820, 0x3bef9: 0x6ddf4a20, 0x3befa: 0x6ddf4c20, 0x3befb: 0x6ddf4e20, + 0x3befc: 0x6df77820, 0x3befd: 0x6df77a20, 0x3befe: 0x6df77c20, 0x3beff: 0x6df77e20, + // Block 0xefc, offset 0x3bf00 + 0x3bf00: 0x6df78020, 0x3bf01: 0x6df78220, 0x3bf02: 0x6df78420, 0x3bf03: 0x6df78620, + 0x3bf04: 0x6df78820, 0x3bf05: 0x6df78a20, 0x3bf06: 0x6df78c20, 0x3bf07: 0x6df78e20, + 0x3bf08: 0x6df79020, 0x3bf09: 0x6df79220, 0x3bf0a: 0x6df79420, 0x3bf0b: 0x6df79620, + 0x3bf0c: 0x6e0b0820, 0x3bf0d: 0x6e0b0a20, 0x3bf0e: 0x6e0b0c20, 0x3bf0f: 0x6e0b0e20, + 0x3bf10: 0x6e0b1020, 0x3bf11: 0x6e0b1220, 0x3bf12: 0x6e0b1420, 0x3bf13: 0x6e0b1620, + 0x3bf14: 0x6e0b1820, 0x3bf15: 0x6e0b1a20, 0x3bf16: 0x6e0b1c20, 0x3bf17: 0x6e0b1e20, + 0x3bf18: 0x6e0b2020, 0x3bf19: 0x6e0b2220, 0x3bf1a: 0x6e0b2420, 0x3bf1b: 0x6e1aea20, + 0x3bf1c: 0x6e1aec20, 0x3bf1d: 0x6e1aee20, 0x3bf1e: 0x6e1af020, 0x3bf1f: 0x6e1af220, + 0x3bf20: 0x6e1af420, 0x3bf21: 0x6e1af620, 0x3bf22: 0x6e1af820, 0x3bf23: 0x6e275820, + 0x3bf24: 0x6e275a20, 0x3bf25: 0x6e275c20, 0x3bf26: 0x6e275e20, 0x3bf27: 0x6e276020, + 0x3bf28: 0x6e276220, 0x3bf29: 0x6e276420, 0x3bf2a: 0x6e276620, 0x3bf2b: 0x6e276820, + 0x3bf2c: 0x6e276a20, 0x3bf2d: 0x6e276c20, 0x3bf2e: 0x6e276e20, 0x3bf2f: 0x6e277020, + 0x3bf30: 0x6e277220, 0x3bf31: 0x6e277420, 0x3bf32: 0x6e30ca20, 0x3bf33: 0x6e30cc20, + 0x3bf34: 0x6e30ce20, 0x3bf35: 0x6e30d020, 0x3bf36: 0x6e30d220, 0x3bf37: 0x6e30d420, + 0x3bf38: 0x6e37a620, 0x3bf39: 0x6e37a820, 0x3bf3a: 0x6e37aa20, 0x3bf3b: 0x6e37ac20, + 0x3bf3c: 0x6e37ae20, 0x3bf3d: 0x6e37b020, 0x3bf3e: 0x6e37b220, 0x3bf3f: 0x6e3fbc20, + // Block 0xefd, offset 0x3bf40 + 0x3bf40: 0x6e3fbe20, 0x3bf41: 0x6e422e20, 0x3bf42: 0x6e423020, 0x3bf43: 0x6e43e820, + 0x3bf44: 0x6e43ea20, 0x3bf45: 0x6e43ec20, 0x3bf46: 0x6e45a020, 0x3bf47: 0x6e460e20, + 0x3bf48: 0x6c8aec20, 0x3bf49: 0x6cb78e20, 0x3bf4a: 0x6cb79020, 0x3bf4b: 0x6ce8b020, + 0x3bf4c: 0x6d476020, 0x3bf4d: 0x6c63ca20, 0x3bf4e: 0x6d755c20, 0x3bf4f: 0x6d755e20, + 0x3bf50: 0x6ddf5020, 0x3bf51: 0x6d186c20, 0x3bf52: 0x6d476820, 0x3bf53: 0x6d476a20, + 0x3bf54: 0x6d476c20, 0x3bf55: 0x6d756620, 0x3bf56: 0x6d756820, 0x3bf57: 0x6d756a20, + 0x3bf58: 0x6d756c20, 0x3bf59: 0x6d756e20, 0x3bf5a: 0x6d757020, 0x3bf5b: 0x6d9f2820, + 0x3bf5c: 0x6d9f2a20, 0x3bf5d: 0x6d9f2c20, 0x3bf5e: 0x6d9f2e20, 0x3bf5f: 0x6d9f3020, + 0x3bf60: 0x6dc18c20, 0x3bf61: 0x6dc18e20, 0x3bf62: 0x6dc19020, 0x3bf63: 0x6ddf5420, + 0x3bf64: 0x6ddf5620, 0x3bf65: 0x6df79c20, 0x3bf66: 0x6df79e20, 0x3bf67: 0x6df7a020, + 0x3bf68: 0x6e0b2c20, 0x3bf69: 0x6e0b2e20, 0x3bf6a: 0x6e1afa20, 0x3bf6b: 0x6e1afc20, + 0x3bf6c: 0x6e277620, 0x3bf6d: 0x6e30d620, 0x3bf6e: 0x6e30d820, 0x3bf6f: 0x6e30da20, + 0x3bf70: 0x6e37b420, 0x3bf71: 0x6e3c4a20, 0x3bf72: 0x6e461020, 0x3bf73: 0x6d186e20, + 0x3bf74: 0x6d476e20, 0x3bf75: 0x6d757220, 0x3bf76: 0x6d757420, 0x3bf77: 0x6d757620, + 0x3bf78: 0x6d757820, 0x3bf79: 0x6d757a20, 0x3bf7a: 0x6d9f3820, 0x3bf7b: 0x6dc19a20, + 0x3bf7c: 0x6dc19c20, 0x3bf7d: 0x6dc19e20, 0x3bf7e: 0x6dc1a020, 0x3bf7f: 0x6dc1a220, + // Block 0xefe, offset 0x3bf80 + 0x3bf80: 0x6dc1a420, 0x3bf81: 0x6dc1a620, 0x3bf82: 0x6ddf5e20, 0x3bf83: 0x6ddf6020, + 0x3bf84: 0x6ddf6220, 0x3bf85: 0x6ddf6420, 0x3bf86: 0x6df7a620, 0x3bf87: 0x6df7a820, + 0x3bf88: 0x6df7aa20, 0x3bf89: 0x6df7ac20, 0x3bf8a: 0x6df7ae20, 0x3bf8b: 0x6df7b020, + 0x3bf8c: 0x6df7b220, 0x3bf8d: 0x6df7b420, 0x3bf8e: 0x6df7b620, 0x3bf8f: 0x6df7b820, + 0x3bf90: 0x6df7ba20, 0x3bf91: 0x6df7bc20, 0x3bf92: 0x6df7be20, 0x3bf93: 0x6e0b3220, + 0x3bf94: 0x6e0b3420, 0x3bf95: 0x6e0b3620, 0x3bf96: 0x6e0b3820, 0x3bf97: 0x6e0b3a20, + 0x3bf98: 0x6e0b3c20, 0x3bf99: 0x6e1b0020, 0x3bf9a: 0x6e1b0220, 0x3bf9b: 0x6e1b0420, + 0x3bf9c: 0x6e1b0620, 0x3bf9d: 0x6e1b0820, 0x3bf9e: 0x6e1b0a20, 0x3bf9f: 0x6e277820, + 0x3bfa0: 0x6e277a20, 0x3bfa1: 0x6e277c20, 0x3bfa2: 0x6e277e20, 0x3bfa3: 0x6e278020, + 0x3bfa4: 0x6e30e020, 0x3bfa5: 0x6e30e220, 0x3bfa6: 0x6e30e420, 0x3bfa7: 0x6e37b820, + 0x3bfa8: 0x6e37ba20, 0x3bfa9: 0x6e37bc20, 0x3bfaa: 0x6e3fc020, 0x3bfab: 0x6e423220, + 0x3bfac: 0x6e461220, 0x3bfad: 0x6d477020, 0x3bfae: 0x6d758220, 0x3bfaf: 0x6d758420, + 0x3bfb0: 0x6d9f3e20, 0x3bfb1: 0x6d9f4020, 0x3bfb2: 0x6d9f4220, 0x3bfb3: 0x6d9f4420, + 0x3bfb4: 0x6d9f4620, 0x3bfb5: 0x6d9f4820, 0x3bfb6: 0x6dc1aa20, 0x3bfb7: 0x6dc1ac20, + 0x3bfb8: 0x6dc1ae20, 0x3bfb9: 0x6dc1b020, 0x3bfba: 0x6dc1b220, 0x3bfbb: 0x6dc1b420, + 0x3bfbc: 0x6dc1b620, 0x3bfbd: 0x6dc1b820, 0x3bfbe: 0x6dc1ba20, 0x3bfbf: 0x6ddf6620, + // Block 0xeff, offset 0x3bfc0 + 0x3bfc0: 0x6ddf6820, 0x3bfc1: 0x6df7c020, 0x3bfc2: 0x6e0b4420, 0x3bfc3: 0x6e0b4620, + 0x3bfc4: 0x6e0b4820, 0x3bfc5: 0x6e0b4a20, 0x3bfc6: 0x6e0b4c20, 0x3bfc7: 0x6e1b1220, + 0x3bfc8: 0x6e1b1420, 0x3bfc9: 0x6e1b1620, 0x3bfca: 0x6e1b1820, 0x3bfcb: 0x6e278620, + 0x3bfcc: 0x6e30e820, 0x3bfcd: 0x6e30ea20, 0x3bfce: 0x6e30ec20, 0x3bfcf: 0x6e30ee20, + 0x3bfd0: 0x6e37be20, 0x3bfd1: 0x6e3fc220, 0x3bfd2: 0x6e3c5020, 0x3bfd3: 0x6e3fc420, + 0x3bfd4: 0x6e43ee20, 0x3bfd5: 0x6e43f020, 0x3bfd6: 0x6e43f220, 0x3bfd7: 0x6ce8bc20, + 0x3bfd8: 0x6d187220, 0x3bfd9: 0x6d477420, 0x3bfda: 0x6d477620, 0x3bfdb: 0x6d477820, + 0x3bfdc: 0x6d758c20, 0x3bfdd: 0x6d758e20, 0x3bfde: 0x6d759020, 0x3bfdf: 0x6d759220, + 0x3bfe0: 0x6d759420, 0x3bfe1: 0x6d759620, 0x3bfe2: 0x6d759820, 0x3bfe3: 0x6d759a20, + 0x3bfe4: 0x6d9f5620, 0x3bfe5: 0x6d9f5820, 0x3bfe6: 0x6d9f5a20, 0x3bfe7: 0x6d9f5c20, + 0x3bfe8: 0x6d9f5e20, 0x3bfe9: 0x6d9f6020, 0x3bfea: 0x6d9f6220, 0x3bfeb: 0x6d9f6420, + 0x3bfec: 0x6d9f6620, 0x3bfed: 0x6d9f6820, 0x3bfee: 0x6d9f6a20, 0x3bfef: 0x6d9f6c20, + 0x3bff0: 0x6d9f6e20, 0x3bff1: 0x6d9f7020, 0x3bff2: 0x6dc1cc20, 0x3bff3: 0x6dc1ce20, + 0x3bff4: 0x6dc1d020, 0x3bff5: 0x6dc1d220, 0x3bff6: 0x6dc1d420, 0x3bff7: 0x6dc1d620, + 0x3bff8: 0x6dc1d820, 0x3bff9: 0x6dc1da20, 0x3bffa: 0x6dc1dc20, 0x3bffb: 0x6dc1de20, + 0x3bffc: 0x6dc1e020, 0x3bffd: 0x6dc1e220, 0x3bffe: 0x6dc1e420, 0x3bfff: 0x6ddf7820, + // Block 0xf00, offset 0x3c000 + 0x3c000: 0x6ddf7a20, 0x3c001: 0x6ddf7c20, 0x3c002: 0x6ddf7e20, 0x3c003: 0x6ddf8020, + 0x3c004: 0x6ddf8220, 0x3c005: 0x6ddf8420, 0x3c006: 0x6ddf8620, 0x3c007: 0x6ddf8820, + 0x3c008: 0x6df7cc20, 0x3c009: 0x6df7ce20, 0x3c00a: 0x6df7d020, 0x3c00b: 0x6df7d220, + 0x3c00c: 0x6df7d420, 0x3c00d: 0x6df7d620, 0x3c00e: 0x6df7d820, 0x3c00f: 0x6df7da20, + 0x3c010: 0x6df7dc20, 0x3c011: 0x6df7de20, 0x3c012: 0x6e0b6220, 0x3c013: 0x6e0b6420, + 0x3c014: 0x6e0b6620, 0x3c015: 0x6e0b6820, 0x3c016: 0x6e0b6a20, 0x3c017: 0x6e0b6c20, + 0x3c018: 0x6e0b6e20, 0x3c019: 0x6e0b7020, 0x3c01a: 0x6e0b7220, 0x3c01b: 0x6e0b7420, + 0x3c01c: 0x6e0b7620, 0x3c01d: 0x6e0b7820, 0x3c01e: 0x6e0b7a20, 0x3c01f: 0x6e0b7c20, + 0x3c020: 0x6e0b7e20, 0x3c021: 0x6e0b8020, 0x3c022: 0x6e0b8220, 0x3c023: 0x6e1b2a20, + 0x3c024: 0x6e0b8420, 0x3c025: 0x6e1b2c20, 0x3c026: 0x6e1b2e20, 0x3c027: 0x6e1b3020, + 0x3c028: 0x6e1b3220, 0x3c029: 0x6e1b3420, 0x3c02a: 0x6e1b3620, 0x3c02b: 0x6e1b3820, + 0x3c02c: 0x6e1b3a20, 0x3c02d: 0x6e1b3c20, 0x3c02e: 0x6e1b3e20, 0x3c02f: 0x6e1b4020, + 0x3c030: 0x6e1b4220, 0x3c031: 0x6e1b4420, 0x3c032: 0x6e1b4620, 0x3c033: 0x6e1b4820, + 0x3c034: 0x6e1b4a20, 0x3c035: 0x6e1b4c20, 0x3c036: 0x6e1b4e20, 0x3c037: 0x6e1b5020, + 0x3c038: 0x6e1b5220, 0x3c039: 0x6e1b5420, 0x3c03a: 0x6e1b5620, 0x3c03b: 0x6e1b5820, + 0x3c03c: 0x6e1b5a20, 0x3c03d: 0x6e1b5c20, 0x3c03e: 0x6e278c20, 0x3c03f: 0x6e278e20, + // Block 0xf01, offset 0x3c040 + 0x3c040: 0x6e279020, 0x3c041: 0x6e279220, 0x3c042: 0x6e279420, 0x3c043: 0x6e279620, + 0x3c044: 0x6e279820, 0x3c045: 0x6e279a20, 0x3c046: 0x6e279c20, 0x3c047: 0x6e279e20, + 0x3c048: 0x6e27a020, 0x3c049: 0x6e27a220, 0x3c04a: 0x6e27a420, 0x3c04b: 0x6e27a620, + 0x3c04c: 0x6e27a820, 0x3c04d: 0x6e27aa20, 0x3c04e: 0x6e27ac20, 0x3c04f: 0x6e30f820, + 0x3c050: 0x6e30fa20, 0x3c051: 0x6e30fc20, 0x3c052: 0x6e30fe20, 0x3c053: 0x6e310020, + 0x3c054: 0x6e310220, 0x3c055: 0x6e310420, 0x3c056: 0x6e310620, 0x3c057: 0x6e310820, + 0x3c058: 0x6e37c220, 0x3c059: 0x6e37c420, 0x3c05a: 0x6e37c620, 0x3c05b: 0x6e37c820, + 0x3c05c: 0x6e37ca20, 0x3c05d: 0x6e37cc20, 0x3c05e: 0x6e37ce20, 0x3c05f: 0x6e37d020, + 0x3c060: 0x6e37d220, 0x3c061: 0x6e37d420, 0x3c062: 0x6e37d620, 0x3c063: 0x6e37d820, + 0x3c064: 0x6e37da20, 0x3c065: 0x6e37dc20, 0x3c066: 0x6e37de20, 0x3c067: 0x6e37e020, + 0x3c068: 0x6e37e220, 0x3c069: 0x6e3c5a20, 0x3c06a: 0x6e3c5c20, 0x3c06b: 0x6e3c5e20, + 0x3c06c: 0x6e3c6020, 0x3c06d: 0x6e3c6220, 0x3c06e: 0x6e3c6420, 0x3c06f: 0x6e3c6620, + 0x3c070: 0x6e3c6820, 0x3c071: 0x6e3c6a20, 0x3c072: 0x6e3c6c20, 0x3c073: 0x6e3c6e20, + 0x3c074: 0x6e3fca20, 0x3c075: 0x6e3fcc20, 0x3c076: 0x6e3fce20, 0x3c077: 0x6e3fd020, + 0x3c078: 0x6e3fd220, 0x3c079: 0x6e423620, 0x3c07a: 0x6e423820, 0x3c07b: 0x6e423a20, + 0x3c07c: 0x6e423c20, 0x3c07d: 0x6e423e20, 0x3c07e: 0x6e424020, 0x3c07f: 0x6e43f620, + // Block 0xf02, offset 0x3c080 + 0x3c080: 0x6e43f820, 0x3c081: 0x6e43fa20, 0x3c082: 0x6e43fc20, 0x3c083: 0x6e450020, + 0x3c084: 0x6e450220, 0x3c085: 0x6e45a220, 0x3c086: 0x6e45a420, 0x3c087: 0x6e466a20, + 0x3c088: 0x6e466c20, 0x3c089: 0x6e471c20, 0x3c08a: 0x6e472a20, 0x3c08b: 0x6ddf8a20, + 0x3c08c: 0x6e0b8a20, 0x3c08d: 0x6e1b6020, 0x3c08e: 0x6e1b6220, 0x3c08f: 0x6e1b6420, + 0x3c090: 0x6e310a20, 0x3c091: 0x6d477a20, 0x3c092: 0x6d759c20, 0x3c093: 0x6d759e20, + 0x3c094: 0x6dc1ea20, 0x3c095: 0x6dc1ec20, 0x3c096: 0x6dc1ee20, 0x3c097: 0x6dc1f020, + 0x3c098: 0x6dc1f220, 0x3c099: 0x6dc1f420, 0x3c09a: 0x6ddf9420, 0x3c09b: 0x6ddf9620, + 0x3c09c: 0x6ddf9820, 0x3c09d: 0x6ddf9a20, 0x3c09e: 0x6ddf9c20, 0x3c09f: 0x6ddf9e20, + 0x3c0a0: 0x6ddfa020, 0x3c0a1: 0x6df7e820, 0x3c0a2: 0x6df7ea20, 0x3c0a3: 0x6df7ec20, + 0x3c0a4: 0x6df7ee20, 0x3c0a5: 0x6df7f020, 0x3c0a6: 0x6df7f220, 0x3c0a7: 0x6e0b8c20, + 0x3c0a8: 0x6e0b8e20, 0x3c0a9: 0x6e0b9020, 0x3c0aa: 0x6e0b9220, 0x3c0ab: 0x6e0b9420, + 0x3c0ac: 0x6e1b6820, 0x3c0ad: 0x6e1b6a20, 0x3c0ae: 0x6e27b020, 0x3c0af: 0x6e27b220, + 0x3c0b0: 0x6e27b420, 0x3c0b1: 0x6e27b620, 0x3c0b2: 0x6e27b820, 0x3c0b3: 0x6e27ba20, + 0x3c0b4: 0x6e27bc20, 0x3c0b5: 0x6e27be20, 0x3c0b6: 0x6e27c020, 0x3c0b7: 0x6e311020, + 0x3c0b8: 0x6e311220, 0x3c0b9: 0x6e37e620, 0x3c0ba: 0x6e3c7420, 0x3c0bb: 0x6e3cd420, + 0x3c0bc: 0x6e3fd620, 0x3c0bd: 0x6e3c7620, 0x3c0be: 0x6e3fd820, 0x3c0bf: 0x6e424220, + // Block 0xf03, offset 0x3c0c0 + 0x3c0c0: 0x6e424420, 0x3c0c1: 0x6e43fe20, 0x3c0c2: 0x6ce8c220, 0x3c0c3: 0x6d477c20, + 0x3c0c4: 0x6d75a620, 0x3c0c5: 0x6d75a820, 0x3c0c6: 0x6d75aa20, 0x3c0c7: 0x6d9f7a20, + 0x3c0c8: 0x6ddfa220, 0x3c0c9: 0x6e27c220, 0x3c0ca: 0x6e424620, 0x3c0cb: 0x6d9f7c20, + 0x3c0cc: 0x6d9f7e20, 0x3c0cd: 0x6dc1fa20, 0x3c0ce: 0x6dc1fc20, 0x3c0cf: 0x6dc1fe20, + 0x3c0d0: 0x6ddfae20, 0x3c0d1: 0x6ddfb020, 0x3c0d2: 0x6ddfb220, 0x3c0d3: 0x6ddfb420, + 0x3c0d4: 0x6df7fa20, 0x3c0d5: 0x6df7fc20, 0x3c0d6: 0x6df7fe20, 0x3c0d7: 0x6df80020, + 0x3c0d8: 0x6df80220, 0x3c0d9: 0x6df80420, 0x3c0da: 0x6df80620, 0x3c0db: 0x6df80820, + 0x3c0dc: 0x6e0b9820, 0x3c0dd: 0x6e0b9a20, 0x3c0de: 0x6e0b9c20, 0x3c0df: 0x6e0b9e20, + 0x3c0e0: 0x6e0ba020, 0x3c0e1: 0x6e0ba220, 0x3c0e2: 0x6e1b7620, 0x3c0e3: 0x6e1b7820, + 0x3c0e4: 0x6e1b7a20, 0x3c0e5: 0x6e1b7c20, 0x3c0e6: 0x6e27c620, 0x3c0e7: 0x6e27c820, + 0x3c0e8: 0x6e27ca20, 0x3c0e9: 0x6e27cc20, 0x3c0ea: 0x6e27ce20, 0x3c0eb: 0x6e27d020, + 0x3c0ec: 0x6e27d220, 0x3c0ed: 0x6e27d420, 0x3c0ee: 0x6e311620, 0x3c0ef: 0x6e37ee20, + 0x3c0f0: 0x6e37f020, 0x3c0f1: 0x6e37f220, 0x3c0f2: 0x6e37f420, 0x3c0f3: 0x6e3c8220, + 0x3c0f4: 0x6e3c8420, 0x3c0f5: 0x6e3fdc20, 0x3c0f6: 0x6e424820, 0x3c0f7: 0x6e450620, + 0x3c0f8: 0x6d75ae20, 0x3c0f9: 0x6d75b020, 0x3c0fa: 0x6d9f8220, 0x3c0fb: 0x6d9f8420, + 0x3c0fc: 0x6d9f8620, 0x3c0fd: 0x6dc20820, 0x3c0fe: 0x6dc20a20, 0x3c0ff: 0x6dc20c20, + // Block 0xf04, offset 0x3c100 + 0x3c100: 0x6dc20e20, 0x3c101: 0x6dc21020, 0x3c102: 0x6dc21220, 0x3c103: 0x6dc21420, + 0x3c104: 0x6dc21620, 0x3c105: 0x6dc21820, 0x3c106: 0x6dc21a20, 0x3c107: 0x6dc21c20, + 0x3c108: 0x6dc21e20, 0x3c109: 0x6ddfc820, 0x3c10a: 0x6ddfca20, 0x3c10b: 0x6ddfcc20, + 0x3c10c: 0x6ddfce20, 0x3c10d: 0x6ddfd020, 0x3c10e: 0x6ddfd220, 0x3c10f: 0x6ddfd420, + 0x3c110: 0x6ddfd620, 0x3c111: 0x6ddfd820, 0x3c112: 0x6df80e20, 0x3c113: 0x6df81020, + 0x3c114: 0x6df81220, 0x3c115: 0x6df81420, 0x3c116: 0x6df81620, 0x3c117: 0x6df81820, + 0x3c118: 0x6df81a20, 0x3c119: 0x6df81c20, 0x3c11a: 0x6e0baa20, 0x3c11b: 0x6e0bac20, + 0x3c11c: 0x6e0bae20, 0x3c11d: 0x6e0bb020, 0x3c11e: 0x6e0bb220, 0x3c11f: 0x6df81e20, + 0x3c120: 0x6e0bb420, 0x3c121: 0x6e0bb620, 0x3c122: 0x6e0bb820, 0x3c123: 0x6e0bba20, + 0x3c124: 0x6e0bbc20, 0x3c125: 0x6e0bbe20, 0x3c126: 0x6e0bc020, 0x3c127: 0x6e0bc220, + 0x3c128: 0x6e1b8220, 0x3c129: 0x6e1b8420, 0x3c12a: 0x6e1b8620, 0x3c12b: 0x6e27e020, + 0x3c12c: 0x6e27e220, 0x3c12d: 0x6e27e420, 0x3c12e: 0x6e27e620, 0x3c12f: 0x6e27e820, + 0x3c130: 0x6e27ea20, 0x3c131: 0x6e27ec20, 0x3c132: 0x6e27ee20, 0x3c133: 0x6e27f020, + 0x3c134: 0x6e27f220, 0x3c135: 0x6e312420, 0x3c136: 0x6e312620, 0x3c137: 0x6e312820, + 0x3c138: 0x6e312a20, 0x3c139: 0x6e312c20, 0x3c13a: 0x6e312e20, 0x3c13b: 0x6e313020, + 0x3c13c: 0x6e313220, 0x3c13d: 0x6e313420, 0x3c13e: 0x6e313620, 0x3c13f: 0x6e380420, + // Block 0xf05, offset 0x3c140 + 0x3c140: 0x6e37f620, 0x3c141: 0x6e37f820, 0x3c142: 0x6e37fa20, 0x3c143: 0x6e37fc20, + 0x3c144: 0x6e37fe20, 0x3c145: 0x6e3c8620, 0x3c146: 0x6e3c8820, 0x3c147: 0x6e3c8a20, + 0x3c148: 0x6e3c8c20, 0x3c149: 0x6e3c8e20, 0x3c14a: 0x6e3fde20, 0x3c14b: 0x6e424a20, + 0x3c14c: 0x6e450820, 0x3c14d: 0x6e450a20, 0x3c14e: 0x6e45a620, 0x3c14f: 0x6e461420, + 0x3c150: 0x6d75b220, 0x3c151: 0x6d9f8c20, 0x3c152: 0x6d9f8e20, 0x3c153: 0x6dc22420, + 0x3c154: 0x6dc22620, 0x3c155: 0x6ddfe020, 0x3c156: 0x6ddfe220, 0x3c157: 0x6ddfe420, + 0x3c158: 0x6ddfe620, 0x3c159: 0x6ddfe820, 0x3c15a: 0x6df82620, 0x3c15b: 0x6df82820, + 0x3c15c: 0x6df82a20, 0x3c15d: 0x6df82c20, 0x3c15e: 0x6df82e20, 0x3c15f: 0x6df83020, + 0x3c160: 0x6df83220, 0x3c161: 0x6e0bc820, 0x3c162: 0x6e0bca20, 0x3c163: 0x6e0bcc20, + 0x3c164: 0x6e0bce20, 0x3c165: 0x6e1b8a20, 0x3c166: 0x6e1b8c20, 0x3c167: 0x6e1b8e20, + 0x3c168: 0x6e1b9020, 0x3c169: 0x6e1b9220, 0x3c16a: 0x6e1b9420, 0x3c16b: 0x6e1b9620, + 0x3c16c: 0x6e1b9820, 0x3c16d: 0x6e27f620, 0x3c16e: 0x6e27f820, 0x3c16f: 0x6e313c20, + 0x3c170: 0x6e313e20, 0x3c171: 0x6e314020, 0x3c172: 0x6e314220, 0x3c173: 0x6e380620, + 0x3c174: 0x6e380820, 0x3c175: 0x6e380a20, 0x3c176: 0x6e3c9420, 0x3c177: 0x6e3c9620, + 0x3c178: 0x6e3c9820, 0x3c179: 0x6e3c9a20, 0x3c17a: 0x6e3c9c20, 0x3c17b: 0x6e3fe020, + 0x3c17c: 0x6e3fe220, 0x3c17d: 0x6e3fe420, 0x3c17e: 0x6e425020, 0x3c17f: 0x6e425220, + // Block 0xf06, offset 0x3c180 + 0x3c180: 0x6e425420, 0x3c181: 0x6e45aa20, 0x3c182: 0x6e461620, 0x3c183: 0x6e466e20, + 0x3c184: 0x6d478420, 0x3c185: 0x6d9f9020, 0x3c186: 0x6dc22e20, 0x3c187: 0x6ddff020, + 0x3c188: 0x6ddff220, 0x3c189: 0x6df83620, 0x3c18a: 0x6df83820, 0x3c18b: 0x6e0bd020, + 0x3c18c: 0x6e0bd220, 0x3c18d: 0x6e27fa20, 0x3c18e: 0x6e1b9c20, 0x3c18f: 0x6e3c9e20, + 0x3c190: 0x6e3ca020, 0x3c191: 0x6e3ca220, 0x3c192: 0x6e440220, 0x3c193: 0x6e45ac20, + 0x3c194: 0x6dc23220, 0x3c195: 0x6dc23420, 0x3c196: 0x6dc23620, 0x3c197: 0x6dc23820, + 0x3c198: 0x6ddff820, 0x3c199: 0x6ddffa20, 0x3c19a: 0x6ddffc20, 0x3c19b: 0x6df84420, + 0x3c19c: 0x6df84620, 0x3c19d: 0x6df84820, 0x3c19e: 0x6df84a20, 0x3c19f: 0x6df84c20, + 0x3c1a0: 0x6df84e20, 0x3c1a1: 0x6df85020, 0x3c1a2: 0x6df85220, 0x3c1a3: 0x6df85420, + 0x3c1a4: 0x6df85620, 0x3c1a5: 0x6e0bee20, 0x3c1a6: 0x6e0bf020, 0x3c1a7: 0x6e0bf220, + 0x3c1a8: 0x6e0bf420, 0x3c1a9: 0x6e0bf620, 0x3c1aa: 0x6e0bf820, 0x3c1ab: 0x6e0bfa20, + 0x3c1ac: 0x6e0bfc20, 0x3c1ad: 0x6e0bfe20, 0x3c1ae: 0x6e0c0020, 0x3c1af: 0x6e0c0220, + 0x3c1b0: 0x6e0c0420, 0x3c1b1: 0x6e0c0620, 0x3c1b2: 0x6e0c0820, 0x3c1b3: 0x6e0c0a20, + 0x3c1b4: 0x6e0c0c20, 0x3c1b5: 0x6e0c0e20, 0x3c1b6: 0x6e0c1020, 0x3c1b7: 0x6e1bb020, + 0x3c1b8: 0x6e1bb220, 0x3c1b9: 0x6e1bb420, 0x3c1ba: 0x6e1bb620, 0x3c1bb: 0x6e1bb820, + 0x3c1bc: 0x6e1bba20, 0x3c1bd: 0x6e1bbc20, 0x3c1be: 0x6e1bbe20, 0x3c1bf: 0x6e1bc020, + // Block 0xf07, offset 0x3c1c0 + 0x3c1c0: 0x6e1bc220, 0x3c1c1: 0x6e1bc420, 0x3c1c2: 0x6e1bc620, 0x3c1c3: 0x6e1bc820, + 0x3c1c4: 0x6e1bca20, 0x3c1c5: 0x6e1bcc20, 0x3c1c6: 0x6e1bce20, 0x3c1c7: 0x6e1bd020, + 0x3c1c8: 0x6e1bd220, 0x3c1c9: 0x6e1bd420, 0x3c1ca: 0x6e1bd620, 0x3c1cb: 0x6e1bd820, + 0x3c1cc: 0x6e1bda20, 0x3c1cd: 0x6e1bdc20, 0x3c1ce: 0x6e280620, 0x3c1cf: 0x6e280820, + 0x3c1d0: 0x6e280a20, 0x3c1d1: 0x6e280c20, 0x3c1d2: 0x6e280e20, 0x3c1d3: 0x6e281020, + 0x3c1d4: 0x6e281220, 0x3c1d5: 0x6e281420, 0x3c1d6: 0x6e281620, 0x3c1d7: 0x6e281820, + 0x3c1d8: 0x6e281a20, 0x3c1d9: 0x6e281c20, 0x3c1da: 0x6e281e20, 0x3c1db: 0x6e282020, + 0x3c1dc: 0x6e282220, 0x3c1dd: 0x6e282420, 0x3c1de: 0x6e282620, 0x3c1df: 0x6e282820, + 0x3c1e0: 0x6e282a20, 0x3c1e1: 0x6e282c20, 0x3c1e2: 0x6e282e20, 0x3c1e3: 0x6e283020, + 0x3c1e4: 0x6e283220, 0x3c1e5: 0x6e315420, 0x3c1e6: 0x6e315620, 0x3c1e7: 0x6e315820, + 0x3c1e8: 0x6e315a20, 0x3c1e9: 0x6e315c20, 0x3c1ea: 0x6e315e20, 0x3c1eb: 0x6e316020, + 0x3c1ec: 0x6e316220, 0x3c1ed: 0x6e316420, 0x3c1ee: 0x6e316620, 0x3c1ef: 0x6e316820, + 0x3c1f0: 0x6e316a20, 0x3c1f1: 0x6e316c20, 0x3c1f2: 0x6e316e20, 0x3c1f3: 0x6e317020, + 0x3c1f4: 0x6e317220, 0x3c1f5: 0x6e317420, 0x3c1f6: 0x6e317620, 0x3c1f7: 0x6e317820, + 0x3c1f8: 0x6e317a20, 0x3c1f9: 0x6e381e20, 0x3c1fa: 0x6e382020, 0x3c1fb: 0x6e382220, + 0x3c1fc: 0x6e382420, 0x3c1fd: 0x6e382620, 0x3c1fe: 0x6e382820, 0x3c1ff: 0x6e382a20, + // Block 0xf08, offset 0x3c200 + 0x3c200: 0x6e382c20, 0x3c201: 0x6e382e20, 0x3c202: 0x6e383020, 0x3c203: 0x6e383220, + 0x3c204: 0x6e383420, 0x3c205: 0x6e383620, 0x3c206: 0x6e383820, 0x3c207: 0x6e383a20, + 0x3c208: 0x6e383c20, 0x3c209: 0x6e3cb020, 0x3c20a: 0x6e3cb220, 0x3c20b: 0x6e3cb420, + 0x3c20c: 0x6e3cb620, 0x3c20d: 0x6e3cb820, 0x3c20e: 0x6e3cba20, 0x3c20f: 0x6e3cbc20, + 0x3c210: 0x6e3cbe20, 0x3c211: 0x6e3cc020, 0x3c212: 0x6e3cc220, 0x3c213: 0x6e3cc420, + 0x3c214: 0x6e3cc620, 0x3c215: 0x6e3cc820, 0x3c216: 0x6e3cca20, 0x3c217: 0x6e3ccc20, + 0x3c218: 0x6e3cce20, 0x3c219: 0x6e3cd020, 0x3c21a: 0x6e3fea20, 0x3c21b: 0x6e3fec20, + 0x3c21c: 0x6e3fee20, 0x3c21d: 0x6e3ff020, 0x3c21e: 0x6e3ff220, 0x3c21f: 0x6e3ff420, + 0x3c220: 0x6e3ff620, 0x3c221: 0x6e3ff820, 0x3c222: 0x6e3ffa20, 0x3c223: 0x6e425820, + 0x3c224: 0x6e425a20, 0x3c225: 0x6e425c20, 0x3c226: 0x6e425e20, 0x3c227: 0x6e426020, + 0x3c228: 0x6e426220, 0x3c229: 0x6e426420, 0x3c22a: 0x6e426620, 0x3c22b: 0x6e426820, + 0x3c22c: 0x6e426a20, 0x3c22d: 0x6e426c20, 0x3c22e: 0x6e426e20, 0x3c22f: 0x6e427020, + 0x3c230: 0x6e440a20, 0x3c231: 0x6e440c20, 0x3c232: 0x6e440e20, 0x3c233: 0x6e441020, + 0x3c234: 0x6e441220, 0x3c235: 0x6e441420, 0x3c236: 0x6e451020, 0x3c237: 0x6e45ae20, + 0x3c238: 0x6e45b020, 0x3c239: 0x6e45b220, 0x3c23a: 0x6e45b420, 0x3c23b: 0x6e45b620, + 0x3c23c: 0x6e45b820, 0x3c23d: 0x6e461820, 0x3c23e: 0x6e461a20, 0x3c23f: 0x6e461c20, + // Block 0xf09, offset 0x3c240 + 0x3c240: 0x6e461e20, 0x3c241: 0x6e467020, 0x3c242: 0x6e467220, 0x3c243: 0x6e467420, + 0x3c244: 0x6e467620, 0x3c245: 0x6e46a620, 0x3c246: 0x6e46be20, 0x3c247: 0x6e46c020, + 0x3c248: 0x6e46c220, 0x3c249: 0x6e46c420, 0x3c24a: 0x6e46de20, 0x3c24b: 0x6e46e020, + 0x3c24c: 0x6e46fe20, 0x3c24d: 0x6e472620, 0x3c24e: 0x6e472820, 0x3c24f: 0x6d478a20, + 0x3c250: 0x6d9f9420, 0x3c251: 0x6df85c20, 0x3c252: 0x6df85e20, 0x3c253: 0x6df86020, + 0x3c254: 0x6df86220, 0x3c255: 0x6e0c1420, 0x3c256: 0x6e0c1620, 0x3c257: 0x6e0c1820, + 0x3c258: 0x6e0c1a20, 0x3c259: 0x6e1be420, 0x3c25a: 0x6e0c1c20, 0x3c25b: 0x6e0c1e20, + 0x3c25c: 0x6e283e20, 0x3c25d: 0x6e284020, 0x3c25e: 0x6e284220, 0x3c25f: 0x6e284420, + 0x3c260: 0x6e317c20, 0x3c261: 0x6e317e20, 0x3c262: 0x6e3cd220, 0x3c263: 0x6e427420, + 0x3c264: 0x6e427620, 0x3c265: 0x6e474220, 0x3c266: 0x6d9fa020, 0x3c267: 0x6e1bec20, + 0x3c268: 0x6de00220, 0x3c269: 0x6df86620, 0x3c26a: 0x6df86820, 0x3c26b: 0x6e0c2620, + 0x3c26c: 0x6e0c2820, 0x3c26d: 0x6e0c2a20, 0x3c26e: 0x6e0c2c20, 0x3c26f: 0x6e0c2e20, + 0x3c270: 0x6e0c3020, 0x3c271: 0x6e0c3220, 0x3c272: 0x6e0c3420, 0x3c273: 0x6e0c3620, + 0x3c274: 0x6e0c3820, 0x3c275: 0x6e0c3a20, 0x3c276: 0x6e1bee20, 0x3c277: 0x6e1bf020, + 0x3c278: 0x6e1bf220, 0x3c279: 0x6e1bf420, 0x3c27a: 0x6e1bf620, 0x3c27b: 0x6e1bf820, + 0x3c27c: 0x6e1bfa20, 0x3c27d: 0x6e1bfc20, 0x3c27e: 0x6e318220, 0x3c27f: 0x6e318420, + // Block 0xf0a, offset 0x3c280 + 0x3c280: 0x6e384020, 0x3c281: 0x6e3cd620, 0x3c282: 0x6e427820, 0x3c283: 0x6e427a20, + 0x3c284: 0x6e427c20, 0x3c285: 0x6e441820, 0x3c286: 0x6e441a20, 0x3c287: 0x6e45ba20, + 0x3c288: 0x6e46aa20, 0x3c289: 0x6d9fa220, 0x3c28a: 0x6e1c0220, 0x3c28b: 0x6e3cdc20, + 0x3c28c: 0x6e3cde20, 0x3c28d: 0x6e3ce020, 0x3c28e: 0x6e400020, 0x3c28f: 0x6e400220, + 0x3c290: 0x6e400420, 0x3c291: 0x6e400620, 0x3c292: 0x6e428020, 0x3c293: 0x6e441e20, + 0x3c294: 0x6e462020, 0x3c295: 0x6e46ac20, 0x3c296: 0x6e471220, + // Block 0xf0b, offset 0x3c2c0 + 0x3c2c0: 0x6c00f020, 0x3c2c1: 0x6c00f220, 0x3c2c2: 0x6c023420, 0x3c2c3: 0x6c28c220, + 0x3c2c4: 0x6c42f420, 0x3c2c5: 0x6c63d620, 0x3c2c6: 0x6c8afa20, 0x3c2c7: 0x6d75d220, + 0x3c2c8: 0x6c024020, 0x3c2c9: 0x6c42fe20, 0x3c2ca: 0x6c004c20, 0x3c2cb: 0x6c28ce20, + 0x3c2cc: 0x6c0b0c20, 0x3c2cd: 0x6c430820, 0x3c2ce: 0x6c63ee20, 0x3c2cf: 0x6c63f020, + 0x3c2d0: 0x6c05ae20, 0x3c2d1: 0x6c0b3620, 0x3c2d2: 0x6c161c20, 0x3c2d3: 0x6c161e20, + 0x3c2d4: 0x6c28f020, 0x3c2d5: 0x6c432a20, 0x3c2d6: 0x6c63fe20, 0x3c2d7: 0x6c640020, + 0x3c2d8: 0x6c8b2020, 0x3c2d9: 0x6cb7b620, 0x3c2da: 0x6cb7b820, 0x3c2db: 0x6ce8dc20, + 0x3c2dc: 0x6c162820, 0x3c2dd: 0x6cb7bc20, 0x3c2de: 0x6d18a820, 0x3c2df: 0x6d479c20, + 0x3c2e0: 0x6c05b420, 0x3c2e1: 0x6c05b620, 0x3c2e2: 0x6c164420, 0x3c2e3: 0x6c8b3c20, + 0x3c2e4: 0x6cb7d620, 0x3c2e5: 0x6d47b020, 0x3c2e6: 0x6de00c20, 0x3c2e7: 0x6c02c420, + 0x3c2e8: 0x6c0c3c20, 0x3c2e9: 0x6c0c3e20, 0x3c2ea: 0x6c0c4020, 0x3c2eb: 0x6c0c4220, + 0x3c2ec: 0x6c172220, 0x3c2ed: 0x6c172420, 0x3c2ee: 0x6c172620, 0x3c2ef: 0x6c172820, + 0x3c2f0: 0x6c172a20, 0x3c2f1: 0x6c172c20, 0x3c2f2: 0x6c172e20, 0x3c2f3: 0x6c173020, + 0x3c2f4: 0x6c173220, 0x3c2f5: 0x6c2a1c20, 0x3c2f6: 0x6c2a1e20, 0x3c2f7: 0x6c2a2020, + 0x3c2f8: 0x6c2a2220, 0x3c2f9: 0x6c2a2420, 0x3c2fa: 0x6c2a2620, 0x3c2fb: 0x6c444a20, + 0x3c2fc: 0x6c444c20, 0x3c2fd: 0x6c444e20, 0x3c2fe: 0x6c445020, 0x3c2ff: 0x6c445220, + // Block 0xf0c, offset 0x3c300 + 0x3c300: 0x6c445420, 0x3c301: 0x6c445620, 0x3c302: 0x6c445820, 0x3c303: 0x6c655c20, + 0x3c304: 0x6c655e20, 0x3c305: 0x6c656020, 0x3c306: 0x6c656220, 0x3c307: 0x6c656420, + 0x3c308: 0x6c656620, 0x3c309: 0x6c656820, 0x3c30a: 0x6c656a20, 0x3c30b: 0x6c8c4e20, + 0x3c30c: 0x6c8c5020, 0x3c30d: 0x6c8c5220, 0x3c30e: 0x6c8c5420, 0x3c30f: 0x6c8c5620, + 0x3c310: 0x6c8c5820, 0x3c311: 0x6c8c5a20, 0x3c312: 0x6c8c5c20, 0x3c313: 0x6c8c5e20, + 0x3c314: 0x6c8c6020, 0x3c315: 0x6c8c6220, 0x3c316: 0x6cb8b220, 0x3c317: 0x6cb8b420, + 0x3c318: 0x6cb8b620, 0x3c319: 0x6cb8b820, 0x3c31a: 0x6cb8ba20, 0x3c31b: 0x6cb8bc20, + 0x3c31c: 0x6cb8be20, 0x3c31d: 0x6cb8c020, 0x3c31e: 0x6cb8c220, 0x3c31f: 0x6cb8c420, + 0x3c320: 0x6ce9d620, 0x3c321: 0x6ce9d820, 0x3c322: 0x6ce9da20, 0x3c323: 0x6ce9dc20, + 0x3c324: 0x6ce9de20, 0x3c325: 0x6d19a820, 0x3c326: 0x6d19aa20, 0x3c327: 0x6d19ac20, + 0x3c328: 0x6d19ae20, 0x3c329: 0x6d19b020, 0x3c32a: 0x6d19b220, 0x3c32b: 0x6d485020, + 0x3c32c: 0x6d485220, 0x3c32d: 0x6d485420, 0x3c32e: 0x6d485620, 0x3c32f: 0x6d485820, + 0x3c330: 0x6d765e20, 0x3c331: 0x6d766020, 0x3c332: 0x6d766220, 0x3c333: 0x6d766420, + 0x3c334: 0x6d9ffc20, 0x3c335: 0x6d9ffe20, 0x3c336: 0x6da00020, 0x3c337: 0x6dc28620, + 0x3c338: 0x6dc28820, 0x3c339: 0x6dc28a20, 0x3c33a: 0x6de03c20, 0x3c33b: 0x6de03e20, + 0x3c33c: 0x6de04020, 0x3c33d: 0x6df88c20, 0x3c33e: 0x6e0c6220, 0x3c33f: 0x6c2a4a20, + // Block 0xf0d, offset 0x3c340 + 0x3c340: 0x6c446820, 0x3c341: 0x6c658420, 0x3c342: 0x6ce9ea20, 0x3c343: 0x6d486a20, + 0x3c344: 0x6d486c20, 0x3c345: 0x6d486e20, 0x3c346: 0x6de04620, 0x3c347: 0x6c658e20, + 0x3c348: 0x6c0c7620, 0x3c349: 0x6cb8f020, 0x3c34a: 0x6cea0620, 0x3c34b: 0x6d19da20, + 0x3c34c: 0x6d487020, 0x3c34d: 0x6d768220, 0x3c34e: 0x6c177e20, 0x3c34f: 0x6c178a20, + 0x3c350: 0x6c178c20, 0x3c351: 0x6c2a7220, 0x3c352: 0x6c65c020, 0x3c353: 0x6c8c9420, + 0x3c354: 0x6cb90a20, 0x3c355: 0x6d19e820, 0x3c356: 0x6c065820, 0x3c357: 0x6c0cb220, + 0x3c358: 0x6c0cb420, 0x3c359: 0x6c0cb620, 0x3c35a: 0x6c0cb820, 0x3c35b: 0x6c17b220, + 0x3c35c: 0x6c17b420, 0x3c35d: 0x6c17b620, 0x3c35e: 0x6c2a9620, 0x3c35f: 0x6c44ca20, + 0x3c360: 0x6c44cc20, 0x3c361: 0x6c44ce20, 0x3c362: 0x6c65f820, 0x3c363: 0x6c65fa20, + 0x3c364: 0x6c65fc20, 0x3c365: 0x6c65fe20, 0x3c366: 0x6c8cb620, 0x3c367: 0x6c8cb820, + 0x3c368: 0x6c8cba20, 0x3c369: 0x6cb92c20, 0x3c36a: 0x6cb92e20, 0x3c36b: 0x6cea2a20, + 0x3c36c: 0x6cea2c20, 0x3c36d: 0x6d19fc20, 0x3c36e: 0x6d489020, 0x3c36f: 0x6d769820, + 0x3c370: 0x6df8a020, 0x3c371: 0x6c0cd020, 0x3c372: 0x6c17ce20, 0x3c373: 0x6c660a20, + 0x3c374: 0x6c8cce20, 0x3c375: 0x6cea3620, 0x3c376: 0x6c067a20, 0x3c377: 0x6c2aba20, + 0x3c378: 0x6c661020, 0x3c379: 0x6cb94420, 0x3c37a: 0x6cea3820, 0x3c37b: 0x6cea3a20, + 0x3c37c: 0x6dc2b420, 0x3c37d: 0x6de05420, 0x3c37e: 0x6c0d3420, 0x3c37f: 0x6c0d3620, + // Block 0xf0e, offset 0x3c380 + 0x3c380: 0x6c0d3820, 0x3c381: 0x6c183420, 0x3c382: 0x6c183620, 0x3c383: 0x6c2b4420, + 0x3c384: 0x6c2b4620, 0x3c385: 0x6c2b4820, 0x3c386: 0x6c454820, 0x3c387: 0x6c454a20, + 0x3c388: 0x6c66a220, 0x3c389: 0x6c66a420, 0x3c38a: 0x6c8d3a20, 0x3c38b: 0x6c8d3c20, + 0x3c38c: 0x6c8d3e20, 0x3c38d: 0x6c8d4020, 0x3c38e: 0x6cb9a420, 0x3c38f: 0x6cb9a620, + 0x3c390: 0x6cb9a820, 0x3c391: 0x6cea8c20, 0x3c392: 0x6cea8e20, 0x3c393: 0x6cea9020, + 0x3c394: 0x6d48d820, 0x3c395: 0x6d76d620, 0x3c396: 0x6d76d820, 0x3c397: 0x6c187220, + 0x3c398: 0x6c187420, 0x3c399: 0x6c187620, 0x3c39a: 0x6c2b8220, 0x3c39b: 0x6c2b8420, + 0x3c39c: 0x6c458020, 0x3c39d: 0x6c66d820, 0x3c39e: 0x6c66da20, 0x3c39f: 0x6c66dc20, + 0x3c3a0: 0x6c8d6820, 0x3c3a1: 0x6cb9d020, 0x3c3a2: 0x6cb9d220, 0x3c3a3: 0x6ceabe20, + 0x3c3a4: 0x6d1aa420, 0x3c3a5: 0x6d1aa620, 0x3c3a6: 0x6d48f020, 0x3c3a7: 0x6e0c8220, + 0x3c3a8: 0x6c016620, 0x3c3a9: 0x6c0d6620, 0x3c3aa: 0x6c459e20, 0x3c3ab: 0x6cead020, + 0x3c3ac: 0x6c0d7820, 0x3c3ad: 0x6c18a020, 0x3c3ae: 0x6c18a220, 0x3c3af: 0x6c45be20, + 0x3c3b0: 0x6c670c20, 0x3c3b1: 0x6d1ac820, 0x3c3b2: 0x6df8c020, 0x3c3b3: 0x6c18bc20, + 0x3c3b4: 0x6c671e20, 0x3c3b5: 0x6c8da620, 0x3c3b6: 0x6ceaf420, 0x3c3b7: 0x6d1ad220, + 0x3c3b8: 0x6d490e20, 0x3c3b9: 0x6d491020, 0x3c3ba: 0x6da08220, 0x3c3bb: 0x6dc2de20, + 0x3c3bc: 0x6df8c420, 0x3c3bd: 0x6c037a20, 0x3c3be: 0x6c18ce20, 0x3c3bf: 0x6c672c20, + // Block 0xf0f, offset 0x3c3c0 + 0x3c3c0: 0x6d1ad820, 0x3c3c1: 0x6c2bfe20, 0x3c3c2: 0x6c45f420, 0x3c3c3: 0x6c070820, + 0x3c3c4: 0x6c190020, 0x3c3c5: 0x6c2c2420, 0x3c3c6: 0x6c2c2620, 0x3c3c7: 0x6c462420, + 0x3c3c8: 0x6c462620, 0x3c3c9: 0x6c462820, 0x3c3ca: 0x6c462a20, 0x3c3cb: 0x6c676420, + 0x3c3cc: 0x6c676620, 0x3c3cd: 0x6c676820, 0x3c3ce: 0x6c676a20, 0x3c3cf: 0x6c8dde20, + 0x3c3d0: 0x6c8de020, 0x3c3d1: 0x6cba2a20, 0x3c3d2: 0x6cba2c20, 0x3c3d3: 0x6ceb1a20, + 0x3c3d4: 0x6ceb1c20, 0x3c3d5: 0x6ceb1e20, 0x3c3d6: 0x6d1b1020, 0x3c3d7: 0x6d1b1220, + 0x3c3d8: 0x6d493620, 0x3c3d9: 0x6d493820, 0x3c3da: 0x6da08c20, 0x3c3db: 0x6df8c820, + 0x3c3dc: 0x6c463c20, 0x3c3dd: 0x6c677a20, 0x3c3de: 0x6c8dee20, 0x3c3df: 0x6cba4020, + 0x3c3e0: 0x6ceb3020, 0x3c3e1: 0x6d494220, 0x3c3e2: 0x6df8ca20, 0x3c3e3: 0x6c03b820, + 0x3c3e4: 0x6c03ba20, 0x3c3e5: 0x6c0e1a20, 0x3c3e6: 0x6c192020, 0x3c3e7: 0x6c2c5220, + 0x3c3e8: 0x6c2c5420, 0x3c3e9: 0x6c466020, 0x3c3ea: 0x6c466220, 0x3c3eb: 0x6c679620, + 0x3c3ec: 0x6c679820, 0x3c3ed: 0x6cba5820, 0x3c3ee: 0x6cba5a20, 0x3c3ef: 0x6ceb4c20, + 0x3c3f0: 0x6d1b3220, 0x3c3f1: 0x6d770a20, 0x3c3f2: 0x6c078620, 0x3c3f3: 0x6c1a4420, + 0x3c3f4: 0x6c1a4620, 0x3c3f5: 0x6c1a4820, 0x3c3f6: 0x6c2d7620, 0x3c3f7: 0x6c2d7820, + 0x3c3f8: 0x6c2d7a20, 0x3c3f9: 0x6c2d7c20, 0x3c3fa: 0x6c47c620, 0x3c3fb: 0x6c47c820, + 0x3c3fc: 0x6c47ca20, 0x3c3fd: 0x6c47cc20, 0x3c3fe: 0x6c47ce20, 0x3c3ff: 0x6c47d020, + // Block 0xf10, offset 0x3c400 + 0x3c400: 0x6c47d220, 0x3c401: 0x6c47d420, 0x3c402: 0x6c47d620, 0x3c403: 0x6c47d820, + 0x3c404: 0x6c693820, 0x3c405: 0x6c693a20, 0x3c406: 0x6c693c20, 0x3c407: 0x6c693e20, + 0x3c408: 0x6c694020, 0x3c409: 0x6c694220, 0x3c40a: 0x6c694420, 0x3c40b: 0x6c694620, + 0x3c40c: 0x6c694820, 0x3c40d: 0x6c694a20, 0x3c40e: 0x6c694c20, 0x3c40f: 0x6d770c20, + 0x3c410: 0x6c900020, 0x3c411: 0x6c900220, 0x3c412: 0x6c900420, 0x3c413: 0x6c900620, + 0x3c414: 0x6c900820, 0x3c415: 0x6c900a20, 0x3c416: 0x6c900c20, 0x3c417: 0x6c900e20, + 0x3c418: 0x6c901020, 0x3c419: 0x6c901220, 0x3c41a: 0x6c901420, 0x3c41b: 0x6c901620, + 0x3c41c: 0x6cbc2220, 0x3c41d: 0x6cbc2420, 0x3c41e: 0x6cbc2620, 0x3c41f: 0x6cbc2820, + 0x3c420: 0x6cbc2a20, 0x3c421: 0x6cbc2c20, 0x3c422: 0x6cbc2e20, 0x3c423: 0x6cbc3020, + 0x3c424: 0x6cbc3220, 0x3c425: 0x6cbc3420, 0x3c426: 0x6cbc3620, 0x3c427: 0x6cbc3820, + 0x3c428: 0x6cbc3a20, 0x3c429: 0x6cbc3c20, 0x3c42a: 0x6ced0c20, 0x3c42b: 0x6ced0e20, + 0x3c42c: 0x6ced1020, 0x3c42d: 0x6ced1220, 0x3c42e: 0x6ced1420, 0x3c42f: 0x6ced1620, + 0x3c430: 0x6ced1820, 0x3c431: 0x6ced1a20, 0x3c432: 0x6ced1c20, 0x3c433: 0x6ced1e20, + 0x3c434: 0x6ced2020, 0x3c435: 0x6ced2220, 0x3c436: 0x6ced2420, 0x3c437: 0x6ced2620, + 0x3c438: 0x6d1cd020, 0x3c439: 0x6d1cd220, 0x3c43a: 0x6d1cd420, 0x3c43b: 0x6d1cd620, + 0x3c43c: 0x6d1cd820, 0x3c43d: 0x6d1cda20, 0x3c43e: 0x6d1cdc20, 0x3c43f: 0x6d1cde20, + // Block 0xf11, offset 0x3c440 + 0x3c440: 0x6d1ce020, 0x3c441: 0x6d1ce220, 0x3c442: 0x6d1ce420, 0x3c443: 0x6d1ce620, + 0x3c444: 0x6d1ce820, 0x3c445: 0x6d4aa220, 0x3c446: 0x6d4aa420, 0x3c447: 0x6d4aa620, + 0x3c448: 0x6d4aa820, 0x3c449: 0x6d4aaa20, 0x3c44a: 0x6d4aac20, 0x3c44b: 0x6d4aae20, + 0x3c44c: 0x6d4ab020, 0x3c44d: 0x6d4ab220, 0x3c44e: 0x6d784a20, 0x3c44f: 0x6d784c20, + 0x3c450: 0x6d784e20, 0x3c451: 0x6d785020, 0x3c452: 0x6d785220, 0x3c453: 0x6d785420, + 0x3c454: 0x6d785620, 0x3c455: 0x6da17420, 0x3c456: 0x6da17620, 0x3c457: 0x6da17820, + 0x3c458: 0x6da17a20, 0x3c459: 0x6dc3ce20, 0x3c45a: 0x6dc3d020, 0x3c45b: 0x6dc3d220, + 0x3c45c: 0x6dc3d420, 0x3c45d: 0x6dc3d620, 0x3c45e: 0x6dc3d820, 0x3c45f: 0x6de0f820, + 0x3c460: 0x6de0fa20, 0x3c461: 0x6de0fc20, 0x3c462: 0x6df92220, 0x3c463: 0x6df92420, + 0x3c464: 0x6df92620, 0x3c465: 0x6e1c7020, 0x3c466: 0x6e31be20, 0x3c467: 0x6e31c020, + 0x3c468: 0x6c1a9620, 0x3c469: 0x6c2da820, 0x3c46a: 0x6c47fe20, 0x3c46b: 0x6c697c20, + 0x3c46c: 0x6c904220, 0x3c46d: 0x6c904420, 0x3c46e: 0x6ced4820, 0x3c46f: 0x6d1d1420, + 0x3c470: 0x6d786420, 0x3c471: 0x6c07c020, 0x3c472: 0x6c07c220, 0x3c473: 0x6c0f0420, + 0x3c474: 0x6c0f0620, 0x3c475: 0x6c0f0820, 0x3c476: 0x6c0f0a20, 0x3c477: 0x6c0f0c20, + 0x3c478: 0x6c1b5020, 0x3c479: 0x6c1b5220, 0x3c47a: 0x6c1b5420, 0x3c47b: 0x6c1b5620, + 0x3c47c: 0x6c1b5820, 0x3c47d: 0x6c1b5a20, 0x3c47e: 0x6c1b5c20, 0x3c47f: 0x6c1b5e20, + // Block 0xf12, offset 0x3c480 + 0x3c480: 0x6c1b6020, 0x3c481: 0x6c1b6220, 0x3c482: 0x6c1b6420, 0x3c483: 0x6c2e6e20, + 0x3c484: 0x6c2e7020, 0x3c485: 0x6c2e7220, 0x3c486: 0x6c2e7420, 0x3c487: 0x6c2e7620, + 0x3c488: 0x6c2e7820, 0x3c489: 0x6c2e7a20, 0x3c48a: 0x6c2e7c20, 0x3c48b: 0x6c48d420, + 0x3c48c: 0x6c48d620, 0x3c48d: 0x6c48d820, 0x3c48e: 0x6c48da20, 0x3c48f: 0x6c48dc20, + 0x3c490: 0x6c48de20, 0x3c491: 0x6c48e020, 0x3c492: 0x6c48e220, 0x3c493: 0x6c48e420, + 0x3c494: 0x6c6a4e20, 0x3c495: 0x6c6a5020, 0x3c496: 0x6c6a5220, 0x3c497: 0x6c6a5420, + 0x3c498: 0x6c6a5620, 0x3c499: 0x6c6a5820, 0x3c49a: 0x6c6a5a20, 0x3c49b: 0x6c6a5c20, + 0x3c49c: 0x6c6a5e20, 0x3c49d: 0x6c6a6020, 0x3c49e: 0x6c6a6220, 0x3c49f: 0x6c6a6420, + 0x3c4a0: 0x6c6a6620, 0x3c4a1: 0x6c6a6820, 0x3c4a2: 0x6c6a6a20, 0x3c4a3: 0x6c6a6c20, + 0x3c4a4: 0x6c914220, 0x3c4a5: 0x6c914420, 0x3c4a6: 0x6c914620, 0x3c4a7: 0x6c914820, + 0x3c4a8: 0x6c914a20, 0x3c4a9: 0x6c914c20, 0x3c4aa: 0x6c914e20, 0x3c4ab: 0x6c915020, + 0x3c4ac: 0x6c915220, 0x3c4ad: 0x6c915420, 0x3c4ae: 0x6c915620, 0x3c4af: 0x6c915820, + 0x3c4b0: 0x6c915a20, 0x3c4b1: 0x6c915c20, 0x3c4b2: 0x6cbd6c20, 0x3c4b3: 0x6cbd6e20, + 0x3c4b4: 0x6cbd7020, 0x3c4b5: 0x6cbd7220, 0x3c4b6: 0x6cbd7420, 0x3c4b7: 0x6cbd7620, + 0x3c4b8: 0x6cbd7820, 0x3c4b9: 0x6cbd7a20, 0x3c4ba: 0x6cbd7c20, 0x3c4bb: 0x6cbd7e20, + 0x3c4bc: 0x6cbd8020, 0x3c4bd: 0x6cbd8220, 0x3c4be: 0x6cee2e20, 0x3c4bf: 0x6cee3020, + // Block 0xf13, offset 0x3c4c0 + 0x3c4c0: 0x6cee3220, 0x3c4c1: 0x6cee3420, 0x3c4c2: 0x6cee3620, 0x3c4c3: 0x6cee3820, + 0x3c4c4: 0x6cee3a20, 0x3c4c5: 0x6cee3c20, 0x3c4c6: 0x6cee3e20, 0x3c4c7: 0x6cee4020, + 0x3c4c8: 0x6cee4220, 0x3c4c9: 0x6cee4420, 0x3c4ca: 0x6cee4620, 0x3c4cb: 0x6cee4820, + 0x3c4cc: 0x6cee4a20, 0x3c4cd: 0x6cee4c20, 0x3c4ce: 0x6d1dda20, 0x3c4cf: 0x6d1ddc20, + 0x3c4d0: 0x6d1dde20, 0x3c4d1: 0x6d1de020, 0x3c4d2: 0x6d1de220, 0x3c4d3: 0x6d1de420, + 0x3c4d4: 0x6d1de620, 0x3c4d5: 0x6d1de820, 0x3c4d6: 0x6d1dea20, 0x3c4d7: 0x6d1dec20, + 0x3c4d8: 0x6d1dee20, 0x3c4d9: 0x6d4b9420, 0x3c4da: 0x6d4b9620, 0x3c4db: 0x6d4b9820, + 0x3c4dc: 0x6d4b9a20, 0x3c4dd: 0x6d4b9c20, 0x3c4de: 0x6d4b9e20, 0x3c4df: 0x6d78f020, + 0x3c4e0: 0x6d78f220, 0x3c4e1: 0x6d78f420, 0x3c4e2: 0x6d78f620, 0x3c4e3: 0x6d78f820, + 0x3c4e4: 0x6d78fa20, 0x3c4e5: 0x6d78fc20, 0x3c4e6: 0x6da1f420, 0x3c4e7: 0x6da1f620, + 0x3c4e8: 0x6da1f820, 0x3c4e9: 0x6da1fa20, 0x3c4ea: 0x6da1fc20, 0x3c4eb: 0x6da1fe20, + 0x3c4ec: 0x6dc42820, 0x3c4ed: 0x6dc42a20, 0x3c4ee: 0x6dc42c20, 0x3c4ef: 0x6dc42e20, + 0x3c4f0: 0x6de14220, 0x3c4f1: 0x6df95020, 0x3c4f2: 0x6c6a8020, 0x3c4f3: 0x6cee5a20, + 0x3c4f4: 0x6e1c8e20, 0x3c4f5: 0x6df95420, 0x3c4f6: 0x6cee6820, 0x3c4f7: 0x6c0f2820, + 0x3c4f8: 0x6c2e9820, 0x3c4f9: 0x6c490020, 0x3c4fa: 0x6c6aa820, 0x3c4fb: 0x6c919620, + 0x3c4fc: 0x6cbdb420, 0x3c4fd: 0x6d1e2c20, 0x3c4fe: 0x6d4bb620, 0x3c4ff: 0x6d791a20, + // Block 0xf14, offset 0x3c500 + 0x3c500: 0x6e1c9020, 0x3c501: 0x6c03ee20, 0x3c502: 0x6c07fa20, 0x3c503: 0x6c0f5420, + 0x3c504: 0x6c1bbe20, 0x3c505: 0x6c1bc020, 0x3c506: 0x6c1bc220, 0x3c507: 0x6c2ee620, + 0x3c508: 0x6c2ee820, 0x3c509: 0x6c2eea20, 0x3c50a: 0x6c2eec20, 0x3c50b: 0x6c2eee20, + 0x3c50c: 0x6c2ef020, 0x3c50d: 0x6c493620, 0x3c50e: 0x6c493820, 0x3c50f: 0x6c493a20, + 0x3c510: 0x6c6ae220, 0x3c511: 0x6c6ae420, 0x3c512: 0x6c6ae620, 0x3c513: 0x6c91cc20, + 0x3c514: 0x6c91ce20, 0x3c515: 0x6c91d020, 0x3c516: 0x6cbdec20, 0x3c517: 0x6cbdee20, + 0x3c518: 0x6cbdf020, 0x3c519: 0x6ceea020, 0x3c51a: 0x6ceea220, 0x3c51b: 0x6ceea420, + 0x3c51c: 0x6d1e4c20, 0x3c51d: 0x6d1e4e20, 0x3c51e: 0x6d1e5020, 0x3c51f: 0x6d4bd820, + 0x3c520: 0x6d4bda20, 0x3c521: 0x6d4bdc20, 0x3c522: 0x6dc45220, 0x3c523: 0x6df95a20, + 0x3c524: 0x6c0fa220, 0x3c525: 0x6c0fa420, 0x3c526: 0x6c1c5220, 0x3c527: 0x6c1c5420, + 0x3c528: 0x6c1c5620, 0x3c529: 0x6c1c5820, 0x3c52a: 0x6c1c5a20, 0x3c52b: 0x6c1c5c20, + 0x3c52c: 0x6c1c5e20, 0x3c52d: 0x6c2fc020, 0x3c52e: 0x6c2fc220, 0x3c52f: 0x6c2fc420, + 0x3c530: 0x6c2fc620, 0x3c531: 0x6c4a0c20, 0x3c532: 0x6c4a0e20, 0x3c533: 0x6c4a1020, + 0x3c534: 0x6c4a1220, 0x3c535: 0x6c4a1420, 0x3c536: 0x6c6bcc20, 0x3c537: 0x6c6bce20, + 0x3c538: 0x6c6bd020, 0x3c539: 0x6c6bd220, 0x3c53a: 0x6c6bd420, 0x3c53b: 0x6c92ec20, + 0x3c53c: 0x6c92ee20, 0x3c53d: 0x6c92f020, 0x3c53e: 0x6c92f220, 0x3c53f: 0x6c92f420, + // Block 0xf15, offset 0x3c540 + 0x3c540: 0x6c92f620, 0x3c541: 0x6c92f820, 0x3c542: 0x6c92fa20, 0x3c543: 0x6c92fc20, + 0x3c544: 0x6c92fe20, 0x3c545: 0x6c930020, 0x3c546: 0x6cbf2a20, 0x3c547: 0x6cbf2c20, + 0x3c548: 0x6cbf2e20, 0x3c549: 0x6cbf3020, 0x3c54a: 0x6cbf3220, 0x3c54b: 0x6cbf3420, + 0x3c54c: 0x6cbf3620, 0x3c54d: 0x6cbf3820, 0x3c54e: 0x6cbf3a20, 0x3c54f: 0x6cbf3c20, + 0x3c550: 0x6cbf3e20, 0x3c551: 0x6cef6c20, 0x3c552: 0x6cef6e20, 0x3c553: 0x6cef7020, + 0x3c554: 0x6cef7220, 0x3c555: 0x6cef7420, 0x3c556: 0x6cef7620, 0x3c557: 0x6d1f1420, + 0x3c558: 0x6d1f1620, 0x3c559: 0x6d1f1820, 0x3c55a: 0x6d1f1a20, 0x3c55b: 0x6d1f1c20, + 0x3c55c: 0x6d1f1e20, 0x3c55d: 0x6d1f2020, 0x3c55e: 0x6d1f2220, 0x3c55f: 0x6d1f2420, + 0x3c560: 0x6d4ca820, 0x3c561: 0x6d4caa20, 0x3c562: 0x6d4cac20, 0x3c563: 0x6d4cae20, + 0x3c564: 0x6d4cb020, 0x3c565: 0x6d4cb220, 0x3c566: 0x6d79d420, 0x3c567: 0x6d79d620, + 0x3c568: 0x6d79d820, 0x3c569: 0x6d79da20, 0x3c56a: 0x6d79dc20, 0x3c56b: 0x6da29420, + 0x3c56c: 0x6dc48620, 0x3c56d: 0x6dc48820, 0x3c56e: 0x6dc48a20, 0x3c56f: 0x6dc48c20, + 0x3c570: 0x6de18c20, 0x3c571: 0x6de18e20, 0x3c572: 0x6df98420, 0x3c573: 0x6e0d4020, + 0x3c574: 0x6e0d4220, 0x3c575: 0x6e28ae20, 0x3c576: 0x6c1c7e20, 0x3c577: 0x6c1c8020, + 0x3c578: 0x6c1c8220, 0x3c579: 0x6c1c8420, 0x3c57a: 0x6c2ff820, 0x3c57b: 0x6c4a3e20, + 0x3c57c: 0x6c931c20, 0x3c57d: 0x6c931e20, 0x3c57e: 0x6c932020, 0x3c57f: 0x6cbf6020, + // Block 0xf16, offset 0x3c580 + 0x3c580: 0x6d1f3a20, 0x3c581: 0x6d79fc20, 0x3c582: 0x6da29c20, 0x3c583: 0x6da29e20, + 0x3c584: 0x6e0d4420, 0x3c585: 0x6c1cb620, 0x3c586: 0x6c1cb820, 0x3c587: 0x6c1cba20, + 0x3c588: 0x6c304020, 0x3c589: 0x6c304220, 0x3c58a: 0x6c4a8820, 0x3c58b: 0x6c4a8a20, + 0x3c58c: 0x6c4a8c20, 0x3c58d: 0x6c6c6a20, 0x3c58e: 0x6c6c6c20, 0x3c58f: 0x6c6c6e20, + 0x3c590: 0x6c6c7020, 0x3c591: 0x6c937c20, 0x3c592: 0x6c937e20, 0x3c593: 0x6c938020, + 0x3c594: 0x6cbfc620, 0x3c595: 0x6cbfc820, 0x3c596: 0x6cbfca20, 0x3c597: 0x6cbfcc20, + 0x3c598: 0x6cbfce20, 0x3c599: 0x6cbfd020, 0x3c59a: 0x6cbfd220, 0x3c59b: 0x6cefec20, + 0x3c59c: 0x6cefee20, 0x3c59d: 0x6ceff020, 0x3c59e: 0x6ceff220, 0x3c59f: 0x6ceff420, + 0x3c5a0: 0x6ceff620, 0x3c5a1: 0x6d1fa020, 0x3c5a2: 0x6d1fa220, 0x3c5a3: 0x6d1fa420, + 0x3c5a4: 0x6d1fa620, 0x3c5a5: 0x6d1fa820, 0x3c5a6: 0x6d4d1620, 0x3c5a7: 0x6d4d1820, + 0x3c5a8: 0x6d4d1a20, 0x3c5a9: 0x6d4d1c20, 0x3c5aa: 0x6d4d1e20, 0x3c5ab: 0x6d7a2820, + 0x3c5ac: 0x6d7a2a20, 0x3c5ad: 0x6d7a2c20, 0x3c5ae: 0x6d7a2e20, 0x3c5af: 0x6da2be20, + 0x3c5b0: 0x6dc4b220, 0x3c5b1: 0x6dc4b420, 0x3c5b2: 0x6dc4b620, 0x3c5b3: 0x6df9a220, + 0x3c5b4: 0x6df9a420, 0x3c5b5: 0x6e0d5a20, 0x3c5b6: 0x6e31ee20, 0x3c5b7: 0x6c0fea20, + 0x3c5b8: 0x6c939220, 0x3c5b9: 0x6c939420, 0x3c5ba: 0x6cbfe820, 0x3c5bb: 0x6d4d3420, + 0x3c5bc: 0x6d4d3620, 0x3c5bd: 0x6d7a3620, 0x3c5be: 0x6da2c620, 0x3c5bf: 0x6c1cd420, + // Block 0xf17, offset 0x3c5c0 + 0x3c5c0: 0x6c306820, 0x3c5c1: 0x6c6c9020, 0x3c5c2: 0x6c6c9220, 0x3c5c3: 0x6d1fce20, + 0x3c5c4: 0x6d4d4e20, 0x3c5c5: 0x6d7a4020, 0x3c5c6: 0x6da2d020, 0x3c5c7: 0x6cc01e20, + 0x3c5c8: 0x6cf02c20, 0x3c5c9: 0x6c1d1820, 0x3c5ca: 0x6c1d1a20, 0x3c5cb: 0x6c1d1c20, + 0x3c5cc: 0x6c30b020, 0x3c5cd: 0x6c4b0e20, 0x3c5ce: 0x6c4b1020, 0x3c5cf: 0x6c6cf020, + 0x3c5d0: 0x6c6cf220, 0x3c5d1: 0x6c940e20, 0x3c5d2: 0x6cf05e20, 0x3c5d3: 0x6cf06020, + 0x3c5d4: 0x6cf06220, 0x3c5d5: 0x6cc05a20, 0x3c5d6: 0x6cc05c20, 0x3c5d7: 0x6cc05e20, + 0x3c5d8: 0x6cc06020, 0x3c5d9: 0x6d1ffc20, 0x3c5da: 0x6d1ffe20, 0x3c5db: 0x6d4d8820, + 0x3c5dc: 0x6d4d8a20, 0x3c5dd: 0x6d7a5e20, 0x3c5de: 0x6da2e020, 0x3c5df: 0x6de1cc20, + 0x3c5e0: 0x6de1ce20, 0x3c5e1: 0x6e1cd220, 0x3c5e2: 0x6c108820, 0x3c5e3: 0x6c108a20, + 0x3c5e4: 0x6c108c20, 0x3c5e5: 0x6c108e20, 0x3c5e6: 0x6c1dcc20, 0x3c5e7: 0x6c1dce20, + 0x3c5e8: 0x6c1dd020, 0x3c5e9: 0x6c316e20, 0x3c5ea: 0x6c317020, 0x3c5eb: 0x6c317220, + 0x3c5ec: 0x6c317420, 0x3c5ed: 0x6c317620, 0x3c5ee: 0x6c317820, 0x3c5ef: 0x6c4bbe20, + 0x3c5f0: 0x6c4bc020, 0x3c5f1: 0x6c4bc220, 0x3c5f2: 0x6c4bc420, 0x3c5f3: 0x6c4bc620, + 0x3c5f4: 0x6c4bc820, 0x3c5f5: 0x6c6dd420, 0x3c5f6: 0x6c6dd620, 0x3c5f7: 0x6c6dd820, + 0x3c5f8: 0x6c6dda20, 0x3c5f9: 0x6c6ddc20, 0x3c5fa: 0x6c6dde20, 0x3c5fb: 0x6c953c20, + 0x3c5fc: 0x6c953e20, 0x3c5fd: 0x6c954020, 0x3c5fe: 0x6c954220, 0x3c5ff: 0x6c954420, + // Block 0xf18, offset 0x3c600 + 0x3c600: 0x6c954620, 0x3c601: 0x6c954820, 0x3c602: 0x6cc15e20, 0x3c603: 0x6cc16020, + 0x3c604: 0x6cc16220, 0x3c605: 0x6cc16420, 0x3c606: 0x6cc16620, 0x3c607: 0x6cc16820, + 0x3c608: 0x6cf10820, 0x3c609: 0x6cf10a20, 0x3c60a: 0x6cf10c20, 0x3c60b: 0x6cf10e20, + 0x3c60c: 0x6d20ac20, 0x3c60d: 0x6d20ae20, 0x3c60e: 0x6d20b020, 0x3c60f: 0x6d20b220, + 0x3c610: 0x6d20b420, 0x3c611: 0x6d20b620, 0x3c612: 0x6d20b820, 0x3c613: 0x6d4e4020, + 0x3c614: 0x6d4e4220, 0x3c615: 0x6d4e4420, 0x3c616: 0x6d4e4620, 0x3c617: 0x6d7acc20, + 0x3c618: 0x6d7ace20, 0x3c619: 0x6d7ad020, 0x3c61a: 0x6d7ad220, 0x3c61b: 0x6da34c20, + 0x3c61c: 0x6da34e20, 0x3c61d: 0x6da35020, 0x3c61e: 0x6de20a20, 0x3c61f: 0x6e0d9020, + 0x3c620: 0x6e1cfc20, 0x3c621: 0x6c1ddc20, 0x3c622: 0x6c4bd820, 0x3c623: 0x6c10aa20, + 0x3c624: 0x6c955620, 0x3c625: 0x6cc17620, 0x3c626: 0x6cf11620, 0x3c627: 0x6d20bc20, + 0x3c628: 0x6da35820, 0x3c629: 0x6dc50c20, 0x3c62a: 0x6e1d0220, 0x3c62b: 0x6c319020, + 0x3c62c: 0x6c1de820, 0x3c62d: 0x6cc18420, 0x3c62e: 0x6cc18620, 0x3c62f: 0x6d20be20, + 0x3c630: 0x6d7ae420, 0x3c631: 0x6d7ae620, 0x3c632: 0x6c08b820, 0x3c633: 0x6c6e4c20, + 0x3c634: 0x6c95c220, 0x3c635: 0x6c95c420, 0x3c636: 0x6c95c620, 0x3c637: 0x6c95c820, + 0x3c638: 0x6cc1ec20, 0x3c639: 0x6cc1ee20, 0x3c63a: 0x6cc1f020, 0x3c63b: 0x6d210420, + 0x3c63c: 0x6d4ea620, 0x3c63d: 0x6d7b1820, 0x3c63e: 0x6da37a20, 0x3c63f: 0x6de22a20, + // Block 0xf19, offset 0x3c640 + 0x3c640: 0x6df9e820, 0x3c641: 0x6c1e3820, 0x3c642: 0x6c95ce20, 0x3c643: 0x6c95d020, + 0x3c644: 0x6cc1fa20, 0x3c645: 0x6cf16220, 0x3c646: 0x6cf16420, 0x3c647: 0x6d4eac20, + 0x3c648: 0x6dc51e20, 0x3c649: 0x6de22e20, 0x3c64a: 0x6c10e220, 0x3c64b: 0x6c4c6420, + 0x3c64c: 0x6c1e8020, 0x3c64d: 0x6c1e8220, 0x3c64e: 0x6c323e20, 0x3c64f: 0x6c324020, + 0x3c650: 0x6c4ca820, 0x3c651: 0x6c4caa20, 0x3c652: 0x6c6eae20, 0x3c653: 0x6c6eb020, + 0x3c654: 0x6c6eb220, 0x3c655: 0x6c6eb420, 0x3c656: 0x6c6eb620, 0x3c657: 0x6c6eb820, + 0x3c658: 0x6c964820, 0x3c659: 0x6c964a20, 0x3c65a: 0x6cc26020, 0x3c65b: 0x6cc26220, + 0x3c65c: 0x6cf1a820, 0x3c65d: 0x6cf1aa20, 0x3c65e: 0x6d216620, 0x3c65f: 0x6d216820, + 0x3c660: 0x6d216a20, 0x3c661: 0x6d4efa20, 0x3c662: 0x6d4efc20, 0x3c663: 0x6d4efe20, + 0x3c664: 0x6d7b5820, 0x3c665: 0x6d7b5a20, 0x3c666: 0x6da39a20, 0x3c667: 0x6da39c20, + 0x3c668: 0x6da39e20, 0x3c669: 0x6dc53c20, 0x3c66a: 0x6de25420, 0x3c66b: 0x6e0da820, + 0x3c66c: 0x6c08d820, 0x3c66d: 0x6c1e8c20, 0x3c66e: 0x6c1e8e20, 0x3c66f: 0x6c4cc020, + 0x3c670: 0x6c6ec020, 0x3c671: 0x6c965820, 0x3c672: 0x6d217220, 0x3c673: 0x6c1ea420, + 0x3c674: 0x6c325a20, 0x3c675: 0x6c6ed220, 0x3c676: 0x6cc27820, 0x3c677: 0x6cf1b620, + 0x3c678: 0x6da3a620, 0x3c679: 0x6e1d2020, 0x3c67a: 0x6c114820, 0x3c67b: 0x6c329820, + 0x3c67c: 0x6c4d2620, 0x3c67d: 0x6c4d2820, 0x3c67e: 0x6c6ef820, 0x3c67f: 0x6c969e20, + // Block 0xf1a, offset 0x3c680 + 0x3c680: 0x6cc2a220, 0x3c681: 0x6cc2a420, 0x3c682: 0x6d21a420, 0x3c683: 0x6da3b820, + 0x3c684: 0x6e0db620, 0x3c685: 0x6e388420, 0x3c686: 0x6c115420, 0x3c687: 0x6dc55a20, + 0x3c688: 0x6c6f1020, 0x3c689: 0x6d4f3420, 0x3c68a: 0x6da3be20, 0x3c68b: 0x6c1f1a20, + 0x3c68c: 0x6c32de20, 0x3c68d: 0x6c6f5220, 0x3c68e: 0x6c6f5420, 0x3c68f: 0x6c972a20, + 0x3c690: 0x6c972c20, 0x3c691: 0x6cc2fe20, 0x3c692: 0x6cc30020, 0x3c693: 0x6cc30220, + 0x3c694: 0x6cf23e20, 0x3c695: 0x6cf24020, 0x3c696: 0x6d21fc20, 0x3c697: 0x6d21fe20, + 0x3c698: 0x6d220020, 0x3c699: 0x6d7bb020, 0x3c69a: 0x6da3d220, 0x3c69b: 0x6dc57020, + 0x3c69c: 0x6dc57220, 0x3c69d: 0x6c091e20, 0x3c69e: 0x6c11b820, 0x3c69f: 0x6c1fec20, + 0x3c6a0: 0x6c1fee20, 0x3c6a1: 0x6c1ff020, 0x3c6a2: 0x6c1ff220, 0x3c6a3: 0x6c1ff420, + 0x3c6a4: 0x6c1ff620, 0x3c6a5: 0x6c1ff820, 0x3c6a6: 0x6c33ce20, 0x3c6a7: 0x6c33d020, + 0x3c6a8: 0x6c33d220, 0x3c6a9: 0x6c33d420, 0x3c6aa: 0x6c33d620, 0x3c6ab: 0x6c33d820, + 0x3c6ac: 0x6c33da20, 0x3c6ad: 0x6c4e8e20, 0x3c6ae: 0x6c4e9020, 0x3c6af: 0x6c4e9220, + 0x3c6b0: 0x6c4e9420, 0x3c6b1: 0x6c4e9620, 0x3c6b2: 0x6c4e9820, 0x3c6b3: 0x6c4e9a20, + 0x3c6b4: 0x6c4e9c20, 0x3c6b5: 0x6c708220, 0x3c6b6: 0x6c708420, 0x3c6b7: 0x6c708620, + 0x3c6b8: 0x6c708820, 0x3c6b9: 0x6c708a20, 0x3c6ba: 0x6c708c20, 0x3c6bb: 0x6c708e20, + 0x3c6bc: 0x6c709020, 0x3c6bd: 0x6c709220, 0x3c6be: 0x6c709420, 0x3c6bf: 0x6c98a620, + // Block 0xf1b, offset 0x3c6c0 + 0x3c6c0: 0x6c98a820, 0x3c6c1: 0x6c98aa20, 0x3c6c2: 0x6c98ac20, 0x3c6c3: 0x6c98ae20, + 0x3c6c4: 0x6c98b020, 0x3c6c5: 0x6c98b220, 0x3c6c6: 0x6c98b420, 0x3c6c7: 0x6cc47620, + 0x3c6c8: 0x6cc47820, 0x3c6c9: 0x6cc47a20, 0x3c6ca: 0x6cc47c20, 0x3c6cb: 0x6cc47e20, + 0x3c6cc: 0x6cc48020, 0x3c6cd: 0x6cc48220, 0x3c6ce: 0x6cc48420, 0x3c6cf: 0x6cc48620, + 0x3c6d0: 0x6cc48820, 0x3c6d1: 0x6cc48a20, 0x3c6d2: 0x6cc48c20, 0x3c6d3: 0x6cf35c20, + 0x3c6d4: 0x6cf35e20, 0x3c6d5: 0x6cf36020, 0x3c6d6: 0x6cf36220, 0x3c6d7: 0x6cf36420, + 0x3c6d8: 0x6cf36620, 0x3c6d9: 0x6cf36820, 0x3c6da: 0x6cf36a20, 0x3c6db: 0x6cf36c20, + 0x3c6dc: 0x6cf36e20, 0x3c6dd: 0x6cf37020, 0x3c6de: 0x6cf37220, 0x3c6df: 0x6d232020, + 0x3c6e0: 0x6d232220, 0x3c6e1: 0x6d232420, 0x3c6e2: 0x6d232620, 0x3c6e3: 0x6d232820, + 0x3c6e4: 0x6d232a20, 0x3c6e5: 0x6d232c20, 0x3c6e6: 0x6d232e20, 0x3c6e7: 0x6d233020, + 0x3c6e8: 0x6d50b220, 0x3c6e9: 0x6d50b420, 0x3c6ea: 0x6d50b620, 0x3c6eb: 0x6d50b820, + 0x3c6ec: 0x6d50ba20, 0x3c6ed: 0x6d50bc20, 0x3c6ee: 0x6d7c7c20, 0x3c6ef: 0x6d7c7e20, + 0x3c6f0: 0x6d7c8020, 0x3c6f1: 0x6d7c8220, 0x3c6f2: 0x6d7c8420, 0x3c6f3: 0x6d7c8620, + 0x3c6f4: 0x6d7c8820, 0x3c6f5: 0x6d7c8a20, 0x3c6f6: 0x6d7c8c20, 0x3c6f7: 0x6da46220, + 0x3c6f8: 0x6da46420, 0x3c6f9: 0x6da46620, 0x3c6fa: 0x6dc5f620, 0x3c6fb: 0x6dc5f820, + 0x3c6fc: 0x6dc5fa20, 0x3c6fd: 0x6dc5fc20, 0x3c6fe: 0x6dc5fe20, 0x3c6ff: 0x6de2da20, + // Block 0xf1c, offset 0x3c700 + 0x3c700: 0x6de2dc20, 0x3c701: 0x6dfa5220, 0x3c702: 0x6dfa5420, 0x3c703: 0x6e0de220, + 0x3c704: 0x6e0de420, 0x3c705: 0x6e1d4e20, 0x3c706: 0x6e1d5020, 0x3c707: 0x6e28f020, + 0x3c708: 0x6e388e20, 0x3c709: 0x6c092a20, 0x3c70a: 0x6c11cc20, 0x3c70b: 0x6c4ec420, + 0x3c70c: 0x6c4ec620, 0x3c70d: 0x6c70ae20, 0x3c70e: 0x6c70b020, 0x3c70f: 0x6c98d220, + 0x3c710: 0x6c98d420, 0x3c711: 0x6cc4ac20, 0x3c712: 0x6cf3a020, 0x3c713: 0x6d236020, + 0x3c714: 0x6d7caa20, 0x3c715: 0x6d7cac20, 0x3c716: 0x6d7cae20, 0x3c717: 0x6e3d2c20, + 0x3c718: 0x6c4ef020, 0x3c719: 0x6c98e020, 0x3c71a: 0x6d50fa20, 0x3c71b: 0x6e1d5420, + 0x3c71c: 0x6c123220, 0x3c71d: 0x6c210a20, 0x3c71e: 0x6c210c20, 0x3c71f: 0x6c210e20, + 0x3c720: 0x6c211020, 0x3c721: 0x6c211220, 0x3c722: 0x6c211420, 0x3c723: 0x6c211620, + 0x3c724: 0x6c351e20, 0x3c725: 0x6c352020, 0x3c726: 0x6c352220, 0x3c727: 0x6c352420, + 0x3c728: 0x6c352620, 0x3c729: 0x6c352820, 0x3c72a: 0x6c352a20, 0x3c72b: 0x6c501620, + 0x3c72c: 0x6c501820, 0x3c72d: 0x6c501a20, 0x3c72e: 0x6c501c20, 0x3c72f: 0x6c501e20, + 0x3c730: 0x6c502020, 0x3c731: 0x6c502220, 0x3c732: 0x6c502420, 0x3c733: 0x6c502620, + 0x3c734: 0x6c720620, 0x3c735: 0x6c720820, 0x3c736: 0x6c720a20, 0x3c737: 0x6c720c20, + 0x3c738: 0x6c720e20, 0x3c739: 0x6c721020, 0x3c73a: 0x6c721220, 0x3c73b: 0x6c721420, + 0x3c73c: 0x6c721620, 0x3c73d: 0x6c721820, 0x3c73e: 0x6c721a20, 0x3c73f: 0x6c721c20, + // Block 0xf1d, offset 0x3c740 + 0x3c740: 0x6c721e20, 0x3c741: 0x6c9a7c20, 0x3c742: 0x6c9a7e20, 0x3c743: 0x6c9a8020, + 0x3c744: 0x6c9a8220, 0x3c745: 0x6c9a8420, 0x3c746: 0x6c9a8620, 0x3c747: 0x6c9a8820, + 0x3c748: 0x6c9a8a20, 0x3c749: 0x6c9a8c20, 0x3c74a: 0x6c9a8e20, 0x3c74b: 0x6c9a9020, + 0x3c74c: 0x6cc65420, 0x3c74d: 0x6cc65620, 0x3c74e: 0x6cc65820, 0x3c74f: 0x6cc65a20, + 0x3c750: 0x6cc65c20, 0x3c751: 0x6cc65e20, 0x3c752: 0x6cc66020, 0x3c753: 0x6cc66220, + 0x3c754: 0x6cc66420, 0x3c755: 0x6cc66620, 0x3c756: 0x6cc66820, 0x3c757: 0x6cf50220, + 0x3c758: 0x6cf50420, 0x3c759: 0x6cf50620, 0x3c75a: 0x6cf50820, 0x3c75b: 0x6cf50a20, + 0x3c75c: 0x6cf50c20, 0x3c75d: 0x6cf50e20, 0x3c75e: 0x6cf51020, 0x3c75f: 0x6cf51220, + 0x3c760: 0x6cf51420, 0x3c761: 0x6cf51620, 0x3c762: 0x6cf51820, 0x3c763: 0x6d24d420, + 0x3c764: 0x6d24d620, 0x3c765: 0x6d24d820, 0x3c766: 0x6d24da20, 0x3c767: 0x6d24dc20, + 0x3c768: 0x6d24de20, 0x3c769: 0x6d24e020, 0x3c76a: 0x6d24e220, 0x3c76b: 0x6d525620, + 0x3c76c: 0x6d525820, 0x3c76d: 0x6d525a20, 0x3c76e: 0x6d525c20, 0x3c76f: 0x6d525e20, + 0x3c770: 0x6d526020, 0x3c771: 0x6d526220, 0x3c772: 0x6d526420, 0x3c773: 0x6d526620, + 0x3c774: 0x6d526820, 0x3c775: 0x6d7d9820, 0x3c776: 0x6d7d9a20, 0x3c777: 0x6d7d9c20, + 0x3c778: 0x6da50420, 0x3c779: 0x6da50620, 0x3c77a: 0x6da50820, 0x3c77b: 0x6dc6a820, + 0x3c77c: 0x6dc6aa20, 0x3c77d: 0x6dc6ac20, 0x3c77e: 0x6dc6ae20, 0x3c77f: 0x6dc6b020, + // Block 0xf1e, offset 0x3c780 + 0x3c780: 0x6dc6b220, 0x3c781: 0x6de35820, 0x3c782: 0x6dfaae20, 0x3c783: 0x6e1d8e20, + 0x3c784: 0x6e291820, 0x3c785: 0x6c9a9e20, 0x3c786: 0x6c353e20, 0x3c787: 0x6d527020, + 0x3c788: 0x6c357420, 0x3c789: 0x6c506c20, 0x3c78a: 0x6c506e20, 0x3c78b: 0x6c728820, + 0x3c78c: 0x6c728a20, 0x3c78d: 0x6c9b1020, 0x3c78e: 0x6cc6fe20, 0x3c78f: 0x6cc70020, + 0x3c790: 0x6cf58a20, 0x3c791: 0x6d253e20, 0x3c792: 0x6d254020, 0x3c793: 0x6d52b620, + 0x3c794: 0x6d52b820, 0x3c795: 0x6d52ba20, 0x3c796: 0x6d52bc20, 0x3c797: 0x6d7dfe20, + 0x3c798: 0x6d7e0020, 0x3c799: 0x6d7e0220, 0x3c79a: 0x6da53c20, 0x3c79b: 0x6dc6d420, + 0x3c79c: 0x6dc6d620, 0x3c79d: 0x6e0e3820, 0x3c79e: 0x6e0e3a20, 0x3c79f: 0x6e324620, + 0x3c7a0: 0x6c214020, 0x3c7a1: 0x6c357e20, 0x3c7a2: 0x6c358020, 0x3c7a3: 0x6c507820, + 0x3c7a4: 0x6c729820, 0x3c7a5: 0x6cc70e20, 0x3c7a6: 0x6cc71020, 0x3c7a7: 0x6cc71220, + 0x3c7a8: 0x6d254220, 0x3c7a9: 0x6d254420, 0x3c7aa: 0x6d254620, 0x3c7ab: 0x6c508020, + 0x3c7ac: 0x6c72a820, 0x3c7ad: 0x6d255420, 0x3c7ae: 0x6d52d420, 0x3c7af: 0x6da54a20, + 0x3c7b0: 0x6e0e4220, 0x3c7b1: 0x6c359c20, 0x3c7b2: 0x6c35ac20, 0x3c7b3: 0x6c35ae20, + 0x3c7b4: 0x6c50aa20, 0x3c7b5: 0x6c72e420, 0x3c7b6: 0x6c72e620, 0x3c7b7: 0x6c72e820, + 0x3c7b8: 0x6c9b6a20, 0x3c7b9: 0x6cc76220, 0x3c7ba: 0x6cc76420, 0x3c7bb: 0x6cc76620, + 0x3c7bc: 0x6cc76820, 0x3c7bd: 0x6cf5ca20, 0x3c7be: 0x6d257420, 0x3c7bf: 0x6d52ee20, + // Block 0xf1f, offset 0x3c7c0 + 0x3c7c0: 0x6d52f020, 0x3c7c1: 0x6d7e2c20, 0x3c7c2: 0x6d7e2e20, 0x3c7c3: 0x6de38020, + 0x3c7c4: 0x6de38220, 0x3c7c5: 0x6dfadc20, 0x3c7c6: 0x6c219820, 0x3c7c7: 0x6c219a20, + 0x3c7c8: 0x6c363220, 0x3c7c9: 0x6c363420, 0x3c7ca: 0x6c363620, 0x3c7cb: 0x6c363820, + 0x3c7cc: 0x6c363a20, 0x3c7cd: 0x6c363c20, 0x3c7ce: 0x6c363e20, 0x3c7cf: 0x6c514420, + 0x3c7d0: 0x6c514620, 0x3c7d1: 0x6c514820, 0x3c7d2: 0x6c514a20, 0x3c7d3: 0x6c514c20, + 0x3c7d4: 0x6c514e20, 0x3c7d5: 0x6c515020, 0x3c7d6: 0x6c515220, 0x3c7d7: 0x6c515420, + 0x3c7d8: 0x6c515620, 0x3c7d9: 0x6c737220, 0x3c7da: 0x6c737420, 0x3c7db: 0x6c737620, + 0x3c7dc: 0x6c737820, 0x3c7dd: 0x6c737a20, 0x3c7de: 0x6c737c20, 0x3c7df: 0x6c737e20, + 0x3c7e0: 0x6c738020, 0x3c7e1: 0x6c738220, 0x3c7e2: 0x6c738420, 0x3c7e3: 0x6c738620, + 0x3c7e4: 0x6c738820, 0x3c7e5: 0x6c9c0220, 0x3c7e6: 0x6c9c0420, 0x3c7e7: 0x6c9c0620, + 0x3c7e8: 0x6c9c0820, 0x3c7e9: 0x6cc83e20, 0x3c7ea: 0x6cc84020, 0x3c7eb: 0x6cc84220, + 0x3c7ec: 0x6cc84420, 0x3c7ed: 0x6cc84620, 0x3c7ee: 0x6cc84820, 0x3c7ef: 0x6cf67620, + 0x3c7f0: 0x6cf67820, 0x3c7f1: 0x6cf67a20, 0x3c7f2: 0x6cf67c20, 0x3c7f3: 0x6cf67e20, + 0x3c7f4: 0x6cf68020, 0x3c7f5: 0x6cf68220, 0x3c7f6: 0x6cf68420, 0x3c7f7: 0x6cf68620, + 0x3c7f8: 0x6d25ec20, 0x3c7f9: 0x6d25ee20, 0x3c7fa: 0x6d25f020, 0x3c7fb: 0x6d25f220, + 0x3c7fc: 0x6d25f420, 0x3c7fd: 0x6d25f620, 0x3c7fe: 0x6d536220, 0x3c7ff: 0x6d536420, + // Block 0xf20, offset 0x3c800 + 0x3c800: 0x6d536620, 0x3c801: 0x6d536820, 0x3c802: 0x6d536a20, 0x3c803: 0x6d536c20, + 0x3c804: 0x6d536e20, 0x3c805: 0x6d537020, 0x3c806: 0x6da5a420, 0x3c807: 0x6d7ec620, + 0x3c808: 0x6d7ec820, 0x3c809: 0x6d7eca20, 0x3c80a: 0x6d7ecc20, 0x3c80b: 0x6d7ece20, + 0x3c80c: 0x6d7ed020, 0x3c80d: 0x6da5a620, 0x3c80e: 0x6dc73820, 0x3c80f: 0x6dc73a20, + 0x3c810: 0x6dc73c20, 0x3c811: 0x6e0e5220, 0x3c812: 0x6e0e5420, 0x3c813: 0x6e0e5620, + 0x3c814: 0x6e325620, 0x3c815: 0x6d537e20, 0x3c816: 0x6d7ee020, 0x3c817: 0x6d7ee220, + 0x3c818: 0x6de3b220, 0x3c819: 0x6c127820, 0x3c81a: 0x6c21ae20, 0x3c81b: 0x6c365620, + 0x3c81c: 0x6c518220, 0x3c81d: 0x6c518420, 0x3c81e: 0x6c73ba20, 0x3c81f: 0x6d261220, + 0x3c820: 0x6c9c3020, 0x3c821: 0x6c9c3220, 0x3c822: 0x6c9c3420, 0x3c823: 0x6cc87e20, + 0x3c824: 0x6cf6aa20, 0x3c825: 0x6cf6ac20, 0x3c826: 0x6cf6ae20, 0x3c827: 0x6cf6b020, + 0x3c828: 0x6d261420, 0x3c829: 0x6d261620, 0x3c82a: 0x6d261820, 0x3c82b: 0x6d539820, + 0x3c82c: 0x6d539a20, 0x3c82d: 0x6d7efc20, 0x3c82e: 0x6e0e5a20, 0x3c82f: 0x6e0e5c20, + 0x3c830: 0x6e325c20, 0x3c831: 0x6c222e20, 0x3c832: 0x6c223020, 0x3c833: 0x6c223220, + 0x3c834: 0x6c223420, 0x3c835: 0x6c223620, 0x3c836: 0x6c375a20, 0x3c837: 0x6c375c20, + 0x3c838: 0x6c375e20, 0x3c839: 0x6c376020, 0x3c83a: 0x6c52ae20, 0x3c83b: 0x6c52b020, + 0x3c83c: 0x6c52b220, 0x3c83d: 0x6c52b420, 0x3c83e: 0x6c52b620, 0x3c83f: 0x6c52b820, + // Block 0xf21, offset 0x3c840 + 0x3c840: 0x6c52ba20, 0x3c841: 0x6c52bc20, 0x3c842: 0x6c52be20, 0x3c843: 0x6c752a20, + 0x3c844: 0x6c752c20, 0x3c845: 0x6c752e20, 0x3c846: 0x6c753020, 0x3c847: 0x6c753220, + 0x3c848: 0x6c753420, 0x3c849: 0x6c753620, 0x3c84a: 0x6c753820, 0x3c84b: 0x6c753a20, + 0x3c84c: 0x6c753c20, 0x3c84d: 0x6c753e20, 0x3c84e: 0x6c754020, 0x3c84f: 0x6c754220, + 0x3c850: 0x6c9d8620, 0x3c851: 0x6c9d8820, 0x3c852: 0x6c9d8a20, 0x3c853: 0x6c9d8c20, + 0x3c854: 0x6c9d8e20, 0x3c855: 0x6c9d9020, 0x3c856: 0x6c9d9220, 0x3c857: 0x6c9d9420, + 0x3c858: 0x6c9d9620, 0x3c859: 0x6c9d9820, 0x3c85a: 0x6c9d9a20, 0x3c85b: 0x6c9d9c20, + 0x3c85c: 0x6c9d9e20, 0x3c85d: 0x6c9da020, 0x3c85e: 0x6c9da220, 0x3c85f: 0x6cca6620, + 0x3c860: 0x6cca6820, 0x3c861: 0x6cca6a20, 0x3c862: 0x6cca6c20, 0x3c863: 0x6cca6e20, + 0x3c864: 0x6cca7020, 0x3c865: 0x6cca7220, 0x3c866: 0x6cca7420, 0x3c867: 0x6cca7620, + 0x3c868: 0x6cca7820, 0x3c869: 0x6cca7a20, 0x3c86a: 0x6cca7c20, 0x3c86b: 0x6cca7e20, + 0x3c86c: 0x6cca8020, 0x3c86d: 0x6cca8220, 0x3c86e: 0x6cca8420, 0x3c86f: 0x6cca8620, + 0x3c870: 0x6cf88c20, 0x3c871: 0x6cf88e20, 0x3c872: 0x6cf89020, 0x3c873: 0x6cf89220, + 0x3c874: 0x6cf89420, 0x3c875: 0x6cf89620, 0x3c876: 0x6cf89820, 0x3c877: 0x6cf89a20, + 0x3c878: 0x6cf89c20, 0x3c879: 0x6cf89e20, 0x3c87a: 0x6cf8a020, 0x3c87b: 0x6cf8a220, + 0x3c87c: 0x6cf8a420, 0x3c87d: 0x6cf8a620, 0x3c87e: 0x6cf8a820, 0x3c87f: 0x6cf8aa20, + // Block 0xf22, offset 0x3c880 + 0x3c880: 0x6cf8ac20, 0x3c881: 0x6cf8ae20, 0x3c882: 0x6cf8b020, 0x3c883: 0x6cf8b220, + 0x3c884: 0x6cf8b420, 0x3c885: 0x6cf8b620, 0x3c886: 0x6cf8b820, 0x3c887: 0x6cf8ba20, + 0x3c888: 0x6d27d220, 0x3c889: 0x6d27d420, 0x3c88a: 0x6d27d620, 0x3c88b: 0x6d27d820, + 0x3c88c: 0x6d27da20, 0x3c88d: 0x6d27dc20, 0x3c88e: 0x6d27de20, 0x3c88f: 0x6d27e020, + 0x3c890: 0x6d27e220, 0x3c891: 0x6d27e420, 0x3c892: 0x6d27e620, 0x3c893: 0x6d27e820, + 0x3c894: 0x6d27ea20, 0x3c895: 0x6d27ec20, 0x3c896: 0x6d27ee20, 0x3c897: 0x6d27f020, + 0x3c898: 0x6d27f220, 0x3c899: 0x6d27f420, 0x3c89a: 0x6d27f620, 0x3c89b: 0x6d27f820, + 0x3c89c: 0x6d27fa20, 0x3c89d: 0x6d552c20, 0x3c89e: 0x6d552e20, 0x3c89f: 0x6d553020, + 0x3c8a0: 0x6d553220, 0x3c8a1: 0x6d553420, 0x3c8a2: 0x6d553620, 0x3c8a3: 0x6d553820, + 0x3c8a4: 0x6d553a20, 0x3c8a5: 0x6d553c20, 0x3c8a6: 0x6d553e20, 0x3c8a7: 0x6d554020, + 0x3c8a8: 0x6d554220, 0x3c8a9: 0x6d554420, 0x3c8aa: 0x6d554620, 0x3c8ab: 0x6d554820, + 0x3c8ac: 0x6d554a20, 0x3c8ad: 0x6d80ae20, 0x3c8ae: 0x6d80b020, 0x3c8af: 0x6d80b220, + 0x3c8b0: 0x6d80b420, 0x3c8b1: 0x6d80b620, 0x3c8b2: 0x6d80b820, 0x3c8b3: 0x6d80ba20, + 0x3c8b4: 0x6d80bc20, 0x3c8b5: 0x6d80be20, 0x3c8b6: 0x6d80c020, 0x3c8b7: 0x6d80c220, + 0x3c8b8: 0x6d80c420, 0x3c8b9: 0x6d80c620, 0x3c8ba: 0x6d80c820, 0x3c8bb: 0x6d80ca20, + 0x3c8bc: 0x6d80cc20, 0x3c8bd: 0x6da6d820, 0x3c8be: 0x6da6da20, 0x3c8bf: 0x6da6dc20, + // Block 0xf23, offset 0x3c8c0 + 0x3c8c0: 0x6da6de20, 0x3c8c1: 0x6da6e020, 0x3c8c2: 0x6da6e220, 0x3c8c3: 0x6da6e420, + 0x3c8c4: 0x6da6e620, 0x3c8c5: 0x6da6e820, 0x3c8c6: 0x6da6ea20, 0x3c8c7: 0x6da6ec20, + 0x3c8c8: 0x6da6ee20, 0x3c8c9: 0x6dc83c20, 0x3c8ca: 0x6dc83e20, 0x3c8cb: 0x6dc84020, + 0x3c8cc: 0x6dc84220, 0x3c8cd: 0x6dc84420, 0x3c8ce: 0x6dc84620, 0x3c8cf: 0x6dc84820, + 0x3c8d0: 0x6de46c20, 0x3c8d1: 0x6de46e20, 0x3c8d2: 0x6de47020, 0x3c8d3: 0x6de47220, + 0x3c8d4: 0x6de47420, 0x3c8d5: 0x6de47620, 0x3c8d6: 0x6dfb8e20, 0x3c8d7: 0x6dfb9020, + 0x3c8d8: 0x6dfb9220, 0x3c8d9: 0x6dfb9420, 0x3c8da: 0x6dfb9620, 0x3c8db: 0x6e0ed020, + 0x3c8dc: 0x6e0ed220, 0x3c8dd: 0x6e0ed420, 0x3c8de: 0x6e0ed620, 0x3c8df: 0x6e1e0620, + 0x3c8e0: 0x6e1e0820, 0x3c8e1: 0x6e1e0a20, 0x3c8e2: 0x6e297220, 0x3c8e3: 0x6e297420, + 0x3c8e4: 0x6e328c20, 0x3c8e5: 0x6e328e20, 0x3c8e6: 0x6e38d220, 0x3c8e7: 0x6e405420, + 0x3c8e8: 0x6e3d4420, 0x3c8e9: 0x6c379220, 0x3c8ea: 0x6c52f420, 0x3c8eb: 0x6c52f620, + 0x3c8ec: 0x6c9dd620, 0x3c8ed: 0x6c9dd820, 0x3c8ee: 0x6ccad020, 0x3c8ef: 0x6cf90220, + 0x3c8f0: 0x6cf90420, 0x3c8f1: 0x6d283e20, 0x3c8f2: 0x6d558220, 0x3c8f3: 0x6dfba220, + 0x3c8f4: 0x6e329220, 0x3c8f5: 0x6c37c820, 0x3c8f6: 0x6c75a420, 0x3c8f7: 0x6c9de620, + 0x3c8f8: 0x6ccaf620, 0x3c8f9: 0x6cf91c20, 0x3c8fa: 0x6cf91e20, 0x3c8fb: 0x6d284e20, + 0x3c8fc: 0x6d559820, 0x3c8fd: 0x6d80fe20, 0x3c8fe: 0x6d810020, 0x3c8ff: 0x6da71c20, + // Block 0xf24, offset 0x3c900 + 0x3c900: 0x6c534420, 0x3c901: 0x6c534620, 0x3c902: 0x6c75d820, 0x3c903: 0x6c75da20, + 0x3c904: 0x6c9e1e20, 0x3c905: 0x6ccb4820, 0x3c906: 0x6d287420, 0x3c907: 0x6da73420, + 0x3c908: 0x6c75e820, 0x3c909: 0x6c75ea20, 0x3c90a: 0x6c9b1220, 0x3c90b: 0x6c9e4620, + 0x3c90c: 0x6ccb6220, 0x3c90d: 0x6ccb6420, 0x3c90e: 0x6ccb6620, 0x3c90f: 0x6cf97a20, + 0x3c910: 0x6d55da20, 0x3c911: 0x6da74020, 0x3c912: 0x6da74220, 0x3c913: 0x6e38de20, + 0x3c914: 0x6d289220, 0x3c915: 0x6d289c20, 0x3c916: 0x6c098220, 0x3c917: 0x6c384c20, + 0x3c918: 0x6c384e20, 0x3c919: 0x6c53ac20, 0x3c91a: 0x6c53ae20, 0x3c91b: 0x6c763420, + 0x3c91c: 0x6c763620, 0x3c91d: 0x6ccbc220, 0x3c91e: 0x6ccbc420, 0x3c91f: 0x6cf9d420, + 0x3c920: 0x6d28e820, 0x3c921: 0x6d561020, 0x3c922: 0x6dc8ba20, 0x3c923: 0x6c386420, + 0x3c924: 0x6c53cc20, 0x3c925: 0x6c9ea820, 0x3c926: 0x6cf9e020, 0x3c927: 0x6d28f220, + 0x3c928: 0x6c09c820, 0x3c929: 0x6c134c20, 0x3c92a: 0x6c134e20, 0x3c92b: 0x6c135020, + 0x3c92c: 0x6c135220, 0x3c92d: 0x6c238220, 0x3c92e: 0x6c238420, 0x3c92f: 0x6c238620, + 0x3c930: 0x6c238820, 0x3c931: 0x6c398420, 0x3c932: 0x6c398620, 0x3c933: 0x6c398820, + 0x3c934: 0x6c398a20, 0x3c935: 0x6c398c20, 0x3c936: 0x6c398e20, 0x3c937: 0x6c550a20, + 0x3c938: 0x6c550c20, 0x3c939: 0x6c550e20, 0x3c93a: 0x6c551020, 0x3c93b: 0x6c551220, + 0x3c93c: 0x6c551420, 0x3c93d: 0x6c551620, 0x3c93e: 0x6c77cc20, 0x3c93f: 0x6c77ce20, + // Block 0xf25, offset 0x3c940 + 0x3c940: 0x6c77d020, 0x3c941: 0x6c77d220, 0x3c942: 0x6c77d420, 0x3c943: 0x6c77d620, + 0x3c944: 0x6c77d820, 0x3c945: 0x6c77da20, 0x3c946: 0x6c77dc20, 0x3c947: 0x6c77de20, + 0x3c948: 0x6c77e020, 0x3c949: 0x6c77e220, 0x3c94a: 0x6c77e420, 0x3c94b: 0x6c77e620, + 0x3c94c: 0x6ca0c620, 0x3c94d: 0x6ca0c820, 0x3c94e: 0x6ca0ca20, 0x3c94f: 0x6ca0cc20, + 0x3c950: 0x6ca0ce20, 0x3c951: 0x6ca0d020, 0x3c952: 0x6ca0d220, 0x3c953: 0x6ca0d420, + 0x3c954: 0x6ca0d620, 0x3c955: 0x6ca0d820, 0x3c956: 0x6ca0da20, 0x3c957: 0x6ccdb620, + 0x3c958: 0x6ccdb820, 0x3c959: 0x6ccdba20, 0x3c95a: 0x6ccdbc20, 0x3c95b: 0x6ccdbe20, + 0x3c95c: 0x6ccdc020, 0x3c95d: 0x6ccdc220, 0x3c95e: 0x6ccdc420, 0x3c95f: 0x6ccdc620, + 0x3c960: 0x6ccdc820, 0x3c961: 0x6ccdca20, 0x3c962: 0x6ccdcc20, 0x3c963: 0x6ccdce20, + 0x3c964: 0x6ccdd020, 0x3c965: 0x6ccdd220, 0x3c966: 0x6ccdd420, 0x3c967: 0x6ccdd620, + 0x3c968: 0x6ccdd820, 0x3c969: 0x6ccdda20, 0x3c96a: 0x6cfba620, 0x3c96b: 0x6cfba820, + 0x3c96c: 0x6cfbaa20, 0x3c96d: 0x6cfbac20, 0x3c96e: 0x6cfbae20, 0x3c96f: 0x6cfbb020, + 0x3c970: 0x6cfbb220, 0x3c971: 0x6cfbb420, 0x3c972: 0x6cfbb620, 0x3c973: 0x6cfbb820, + 0x3c974: 0x6cfbba20, 0x3c975: 0x6cfbbc20, 0x3c976: 0x6cfbbe20, 0x3c977: 0x6cfbc020, + 0x3c978: 0x6cfbc220, 0x3c979: 0x6cfbc420, 0x3c97a: 0x6cfbc620, 0x3c97b: 0x6cfbc820, + 0x3c97c: 0x6cfbca20, 0x3c97d: 0x6cfbcc20, 0x3c97e: 0x6cfbce20, 0x3c97f: 0x6d2ab220, + // Block 0xf26, offset 0x3c980 + 0x3c980: 0x6d2ab420, 0x3c981: 0x6d2ab620, 0x3c982: 0x6d2ab820, 0x3c983: 0x6d2aba20, + 0x3c984: 0x6d2abc20, 0x3c985: 0x6d2abe20, 0x3c986: 0x6d2ac020, 0x3c987: 0x6d2ac220, + 0x3c988: 0x6d2ac420, 0x3c989: 0x6d2ac620, 0x3c98a: 0x6d2ac820, 0x3c98b: 0x6d57e420, + 0x3c98c: 0x6d57e620, 0x3c98d: 0x6d57e820, 0x3c98e: 0x6d57ea20, 0x3c98f: 0x6d57ec20, + 0x3c990: 0x6d57ee20, 0x3c991: 0x6d57f020, 0x3c992: 0x6d57f220, 0x3c993: 0x6d57f420, + 0x3c994: 0x6d57f620, 0x3c995: 0x6d57f820, 0x3c996: 0x6d57fa20, 0x3c997: 0x6d57fc20, + 0x3c998: 0x6d57fe20, 0x3c999: 0x6d580020, 0x3c99a: 0x6d580220, 0x3c99b: 0x6d580420, + 0x3c99c: 0x6d580620, 0x3c99d: 0x6d82e420, 0x3c99e: 0x6d82e620, 0x3c99f: 0x6d82e820, + 0x3c9a0: 0x6d82ea20, 0x3c9a1: 0x6d82ec20, 0x3c9a2: 0x6d82ee20, 0x3c9a3: 0x6d82f020, + 0x3c9a4: 0x6d82f220, 0x3c9a5: 0x6d82f420, 0x3c9a6: 0x6d82f620, 0x3c9a7: 0x6d82f820, + 0x3c9a8: 0x6da85a20, 0x3c9a9: 0x6da85c20, 0x3c9aa: 0x6da85e20, 0x3c9ab: 0x6da86020, + 0x3c9ac: 0x6da86220, 0x3c9ad: 0x6da86420, 0x3c9ae: 0x6da86620, 0x3c9af: 0x6da86820, + 0x3c9b0: 0x6da86a20, 0x3c9b1: 0x6da86c20, 0x3c9b2: 0x6da86e20, 0x3c9b3: 0x6dc9aa20, + 0x3c9b4: 0x6dc9ac20, 0x3c9b5: 0x6dc9ae20, 0x3c9b6: 0x6dc9b020, 0x3c9b7: 0x6dc9b220, + 0x3c9b8: 0x6dc9b420, 0x3c9b9: 0x6dc9b620, 0x3c9ba: 0x6de56220, 0x3c9bb: 0x6de56420, + 0x3c9bc: 0x6de56620, 0x3c9bd: 0x6de56820, 0x3c9be: 0x6de56a20, 0x3c9bf: 0x6de56c20, + // Block 0xf27, offset 0x3c9c0 + 0x3c9c0: 0x6dfc4220, 0x3c9c1: 0x6dfc4420, 0x3c9c2: 0x6dfc4620, 0x3c9c3: 0x6e0f7220, + 0x3c9c4: 0x6e0f7420, 0x3c9c5: 0x6e0f7620, 0x3c9c6: 0x6e0f7820, 0x3c9c7: 0x6e0f7a20, + 0x3c9c8: 0x6e1e6a20, 0x3c9c9: 0x6e1e6c20, 0x3c9ca: 0x6e29d220, 0x3c9cb: 0x6e29d420, + 0x3c9cc: 0x6e32be20, 0x3c9cd: 0x6c09ce20, 0x3c9ce: 0x6c23ca20, 0x3c9cf: 0x6c23cc20, + 0x3c9d0: 0x6c23ce20, 0x3c9d1: 0x6c3a1620, 0x3c9d2: 0x6c3a1820, 0x3c9d3: 0x6c3a1a20, + 0x3c9d4: 0x6c3a1c20, 0x3c9d5: 0x6c3a1e20, 0x3c9d6: 0x6c3a2020, 0x3c9d7: 0x6c3a2220, + 0x3c9d8: 0x6c55d820, 0x3c9d9: 0x6c55da20, 0x3c9da: 0x6c55dc20, 0x3c9db: 0x6c55de20, + 0x3c9dc: 0x6c55e020, 0x3c9dd: 0x6c55e220, 0x3c9de: 0x6c55e420, 0x3c9df: 0x6c55e620, + 0x3c9e0: 0x6c55e820, 0x3c9e1: 0x6c55ea20, 0x3c9e2: 0x6c55ec20, 0x3c9e3: 0x6c78b820, + 0x3c9e4: 0x6c78ba20, 0x3c9e5: 0x6c78bc20, 0x3c9e6: 0x6c78be20, 0x3c9e7: 0x6c78c020, + 0x3c9e8: 0x6c78c220, 0x3c9e9: 0x6c78c420, 0x3c9ea: 0x6c78c620, 0x3c9eb: 0x6ca1ba20, + 0x3c9ec: 0x6ca1bc20, 0x3c9ed: 0x6ca1be20, 0x3c9ee: 0x6ca1c020, 0x3c9ef: 0x6ca1c220, + 0x3c9f0: 0x6ca1c420, 0x3c9f1: 0x6ca1c620, 0x3c9f2: 0x6ca1c820, 0x3c9f3: 0x6ccee820, + 0x3c9f4: 0x6cceea20, 0x3c9f5: 0x6cceec20, 0x3c9f6: 0x6cceee20, 0x3c9f7: 0x6ccef020, + 0x3c9f8: 0x6ccef220, 0x3c9f9: 0x6ccef420, 0x3c9fa: 0x6ccef620, 0x3c9fb: 0x6ccef820, + 0x3c9fc: 0x6ccefa20, 0x3c9fd: 0x6ccefc20, 0x3c9fe: 0x6ccefe20, 0x3c9ff: 0x6ccf0020, + // Block 0xf28, offset 0x3ca00 + 0x3ca00: 0x6ccf0220, 0x3ca01: 0x6ccf0420, 0x3ca02: 0x6ccf0620, 0x3ca03: 0x6ccf0820, + 0x3ca04: 0x6cfd1220, 0x3ca05: 0x6cfd1420, 0x3ca06: 0x6cfd1620, 0x3ca07: 0x6cfd1820, + 0x3ca08: 0x6cfd1a20, 0x3ca09: 0x6cfd1c20, 0x3ca0a: 0x6cfd1e20, 0x3ca0b: 0x6cfd2020, + 0x3ca0c: 0x6cfd2220, 0x3ca0d: 0x6cfd2420, 0x3ca0e: 0x6cfd2620, 0x3ca0f: 0x6cfd2820, + 0x3ca10: 0x6cfd2a20, 0x3ca11: 0x6cfd2c20, 0x3ca12: 0x6d2bba20, 0x3ca13: 0x6d2bbc20, + 0x3ca14: 0x6d2bbe20, 0x3ca15: 0x6d2bc020, 0x3ca16: 0x6d2bc220, 0x3ca17: 0x6d2bc420, + 0x3ca18: 0x6d2bc620, 0x3ca19: 0x6d2bc820, 0x3ca1a: 0x6d2bca20, 0x3ca1b: 0x6d2bcc20, + 0x3ca1c: 0x6d2bce20, 0x3ca1d: 0x6d2bd020, 0x3ca1e: 0x6d2bd220, 0x3ca1f: 0x6d2bd420, + 0x3ca20: 0x6d2bd620, 0x3ca21: 0x6d58f020, 0x3ca22: 0x6d58f220, 0x3ca23: 0x6d58f420, + 0x3ca24: 0x6d58f620, 0x3ca25: 0x6d58f820, 0x3ca26: 0x6d58fa20, 0x3ca27: 0x6d58fc20, + 0x3ca28: 0x6d58fe20, 0x3ca29: 0x6d590020, 0x3ca2a: 0x6d841620, 0x3ca2b: 0x6d841820, + 0x3ca2c: 0x6d841a20, 0x3ca2d: 0x6d841c20, 0x3ca2e: 0x6d841e20, 0x3ca2f: 0x6d842020, + 0x3ca30: 0x6d842220, 0x3ca31: 0x6d842420, 0x3ca32: 0x6d842620, 0x3ca33: 0x6d842820, + 0x3ca34: 0x6da90c20, 0x3ca35: 0x6da90e20, 0x3ca36: 0x6da91020, 0x3ca37: 0x6da91220, + 0x3ca38: 0x6da91420, 0x3ca39: 0x6da91620, 0x3ca3a: 0x6da91820, 0x3ca3b: 0x6da91a20, + 0x3ca3c: 0x6dca3020, 0x3ca3d: 0x6dca3220, 0x3ca3e: 0x6dca3420, 0x3ca3f: 0x6dca3620, + // Block 0xf29, offset 0x3ca40 + 0x3ca40: 0x6dca3820, 0x3ca41: 0x6de5d020, 0x3ca42: 0x6de5d220, 0x3ca43: 0x6dfcc420, + 0x3ca44: 0x6dfcc620, 0x3ca45: 0x6dfcc820, 0x3ca46: 0x6e1e9420, 0x3ca47: 0x6e1e9620, + 0x3ca48: 0x6e29fc20, 0x3ca49: 0x6e32cc20, 0x3ca4a: 0x6e390620, 0x3ca4b: 0x6e390820, + 0x3ca4c: 0x6e407420, 0x3ca4d: 0x6c23d820, 0x3ca4e: 0x6c561220, 0x3ca4f: 0x6ca1d820, + 0x3ca50: 0x6ccf1a20, 0x3ca51: 0x6ccf1c20, 0x3ca52: 0x6ccf1e20, 0x3ca53: 0x6ccf2020, + 0x3ca54: 0x6cfd3a20, 0x3ca55: 0x6cfd3c20, 0x3ca56: 0x6d591420, 0x3ca57: 0x6d591620, + 0x3ca58: 0x6da92c20, 0x3ca59: 0x6da92e20, 0x3ca5a: 0x6e470020, 0x3ca5b: 0x6c78dc20, + 0x3ca5c: 0x6ca1de20, 0x3ca5d: 0x6c3a4420, 0x3ca5e: 0x6ca1f620, 0x3ca5f: 0x6ccf3a20, + 0x3ca60: 0x6d592620, 0x3ca61: 0x6dca4220, 0x3ca62: 0x6c790020, 0x3ca63: 0x6ca20620, + 0x3ca64: 0x6ca20820, 0x3ca65: 0x6ccf6420, 0x3ca66: 0x6d845020, 0x3ca67: 0x6c3a6020, + 0x3ca68: 0x6ccf7020, 0x3ca69: 0x6c23fe20, 0x3ca6a: 0x6c569020, 0x3ca6b: 0x6c569220, + 0x3ca6c: 0x6c792e20, 0x3ca6d: 0x6c793020, 0x3ca6e: 0x6c793220, 0x3ca6f: 0x6ccfca20, + 0x3ca70: 0x6cfdbc20, 0x3ca71: 0x6d2c6220, 0x3ca72: 0x6d2c6420, 0x3ca73: 0x6d2c6620, + 0x3ca74: 0x6d598420, 0x3ca75: 0x6d847c20, 0x3ca76: 0x6e0fc620, 0x3ca77: 0x6c246a20, + 0x3ca78: 0x6c3b3420, 0x3ca79: 0x6ccfcc20, 0x3ca7a: 0x6c572220, 0x3ca7b: 0x6c572420, + 0x3ca7c: 0x6c79b620, 0x3ca7d: 0x6c79b820, 0x3ca7e: 0x6ca2cc20, 0x3ca7f: 0x6ca2ce20, + // Block 0xf2a, offset 0x3ca80 + 0x3ca80: 0x6ca2d020, 0x3ca81: 0x6ca2d220, 0x3ca82: 0x6cd06c20, 0x3ca83: 0x6cd06e20, + 0x3ca84: 0x6cd07020, 0x3ca85: 0x6cd07220, 0x3ca86: 0x6cfe4620, 0x3ca87: 0x6cfe4820, + 0x3ca88: 0x6d2cde20, 0x3ca89: 0x6d5a0420, 0x3ca8a: 0x6da99420, 0x3ca8b: 0x6dca8220, + 0x3ca8c: 0x6de61a20, 0x3ca8d: 0x6c13cc20, 0x3ca8e: 0x6c3b9c20, 0x3ca8f: 0x6c3b9e20, + 0x3ca90: 0x6c3ba020, 0x3ca91: 0x6c3ba220, 0x3ca92: 0x6c3ba420, 0x3ca93: 0x6c3ba620, + 0x3ca94: 0x6c3ba820, 0x3ca95: 0x6c57c220, 0x3ca96: 0x6c57c420, 0x3ca97: 0x6c7a5e20, + 0x3ca98: 0x6c7a6020, 0x3ca99: 0x6c7a6220, 0x3ca9a: 0x6c7a6420, 0x3ca9b: 0x6c7a6620, + 0x3ca9c: 0x6c7a6820, 0x3ca9d: 0x6c7a6a20, 0x3ca9e: 0x6c7a6c20, 0x3ca9f: 0x6c7a6e20, + 0x3caa0: 0x6ca37020, 0x3caa1: 0x6ca37220, 0x3caa2: 0x6ca37420, 0x3caa3: 0x6ca37620, + 0x3caa4: 0x6ca37820, 0x3caa5: 0x6ca37a20, 0x3caa6: 0x6cd14420, 0x3caa7: 0x6cd14620, + 0x3caa8: 0x6cd14820, 0x3caa9: 0x6cd14a20, 0x3caaa: 0x6cd14c20, 0x3caab: 0x6cd14e20, + 0x3caac: 0x6cd15020, 0x3caad: 0x6cd15220, 0x3caae: 0x6cd15420, 0x3caaf: 0x6cd15620, + 0x3cab0: 0x6cd15820, 0x3cab1: 0x6cd15a20, 0x3cab2: 0x6cd15c20, 0x3cab3: 0x6cff2020, + 0x3cab4: 0x6cff2220, 0x3cab5: 0x6cff2420, 0x3cab6: 0x6cff2620, 0x3cab7: 0x6cff2820, + 0x3cab8: 0x6cff2a20, 0x3cab9: 0x6cff2c20, 0x3caba: 0x6cff2e20, 0x3cabb: 0x6cff3020, + 0x3cabc: 0x6cff3220, 0x3cabd: 0x6cff3420, 0x3cabe: 0x6cff3620, 0x3cabf: 0x6cff3820, + // Block 0xf2b, offset 0x3cac0 + 0x3cac0: 0x6cff3a20, 0x3cac1: 0x6cff3c20, 0x3cac2: 0x6cff3e20, 0x3cac3: 0x6d2d6a20, + 0x3cac4: 0x6d2d6c20, 0x3cac5: 0x6d2d6e20, 0x3cac6: 0x6d2d7020, 0x3cac7: 0x6d2d7220, + 0x3cac8: 0x6d2d7420, 0x3cac9: 0x6d2d7620, 0x3caca: 0x6d2d7820, 0x3cacb: 0x6d2d7a20, + 0x3cacc: 0x6d2d7c20, 0x3cacd: 0x6d2d7e20, 0x3cace: 0x6d2d8020, 0x3cacf: 0x6d2d8220, + 0x3cad0: 0x6d5aa220, 0x3cad1: 0x6d5aa420, 0x3cad2: 0x6d5aa620, 0x3cad3: 0x6d5aa820, + 0x3cad4: 0x6d5aaa20, 0x3cad5: 0x6d5aac20, 0x3cad6: 0x6d5aae20, 0x3cad7: 0x6d855420, + 0x3cad8: 0x6d855620, 0x3cad9: 0x6d855820, 0x3cada: 0x6d855a20, 0x3cadb: 0x6d855c20, + 0x3cadc: 0x6d855e20, 0x3cadd: 0x6d856020, 0x3cade: 0x6d856220, 0x3cadf: 0x6d856420, + 0x3cae0: 0x6d856620, 0x3cae1: 0x6daa0420, 0x3cae2: 0x6daa0620, 0x3cae3: 0x6daa0820, + 0x3cae4: 0x6daa0a20, 0x3cae5: 0x6daa0c20, 0x3cae6: 0x6daa0e20, 0x3cae7: 0x6dcade20, + 0x3cae8: 0x6dcae020, 0x3cae9: 0x6de66220, 0x3caea: 0x6de66420, 0x3caeb: 0x6de66620, + 0x3caec: 0x6dfd2420, 0x3caed: 0x6dfd2620, 0x3caee: 0x6dfd2820, 0x3caef: 0x6dfd2a20, + 0x3caf0: 0x6e0ff220, 0x3caf1: 0x6e2a2c20, 0x3caf2: 0x6e32e220, 0x3caf3: 0x6c3bb020, + 0x3caf4: 0x6c57d420, 0x3caf5: 0x6cff5020, 0x3caf6: 0x6c3bc220, 0x3caf7: 0x6c57fa20, + 0x3caf8: 0x6c57fc20, 0x3caf9: 0x6c7aac20, 0x3cafa: 0x6cff8420, 0x3cafb: 0x6cff8620, + 0x3cafc: 0x6d2dd020, 0x3cafd: 0x6d5aec20, 0x3cafe: 0x6d5aee20, 0x3caff: 0x6e1ed420, + // Block 0xf2c, offset 0x3cb00 + 0x3cb00: 0x6cd1a020, 0x3cb01: 0x6c24a820, 0x3cb02: 0x6ca3ce20, 0x3cb03: 0x6cff9c20, + 0x3cb04: 0x6cff9e20, 0x3cb05: 0x6cffa020, 0x3cb06: 0x6c13d420, 0x3cb07: 0x6c24d220, + 0x3cb08: 0x6c3c1220, 0x3cb09: 0x6c588620, 0x3cb0a: 0x6c588820, 0x3cb0b: 0x6c588a20, + 0x3cb0c: 0x6c588c20, 0x3cb0d: 0x6c7b0620, 0x3cb0e: 0x6c7b0820, 0x3cb0f: 0x6c7b0a20, + 0x3cb10: 0x6c7b0c20, 0x3cb11: 0x6ca41420, 0x3cb12: 0x6ca41620, 0x3cb13: 0x6cd1fc20, + 0x3cb14: 0x6cd1fe20, 0x3cb15: 0x6cd20020, 0x3cb16: 0x6cd20220, 0x3cb17: 0x6cd20420, + 0x3cb18: 0x6cffea20, 0x3cb19: 0x6cffec20, 0x3cb1a: 0x6cffee20, 0x3cb1b: 0x6d2e0020, + 0x3cb1c: 0x6d2e0220, 0x3cb1d: 0x6d5b2a20, 0x3cb1e: 0x6d5b2c20, 0x3cb1f: 0x6d85b820, + 0x3cb20: 0x6d85ba20, 0x3cb21: 0x6d85bc20, 0x3cb22: 0x6daa6c20, 0x3cb23: 0x6dcb1c20, + 0x3cb24: 0x6dfd4620, 0x3cb25: 0x6e101a20, 0x3cb26: 0x6e101c20, 0x3cb27: 0x6daa6e20, + 0x3cb28: 0x6c58fa20, 0x3cb29: 0x6c58fc20, 0x3cb2a: 0x6c58fe20, 0x3cb2b: 0x6c590020, + 0x3cb2c: 0x6c7b9c20, 0x3cb2d: 0x6c7b9e20, 0x3cb2e: 0x6c7ba020, 0x3cb2f: 0x6ca48420, + 0x3cb30: 0x6cd2b420, 0x3cb31: 0x6cd2b620, 0x3cb32: 0x6d00ae20, 0x3cb33: 0x6d2ea020, + 0x3cb34: 0x6d2ea220, 0x3cb35: 0x6d2ea420, 0x3cb36: 0x6d5bd220, 0x3cb37: 0x6d5bd420, + 0x3cb38: 0x6daafc20, 0x3cb39: 0x6daafe20, 0x3cb3a: 0x6de6da20, 0x3cb3b: 0x6c593620, + 0x3cb3c: 0x6c593820, 0x3cb3d: 0x6c7bd020, 0x3cb3e: 0x6cd2ea20, 0x3cb3f: 0x6cd2ec20, + // Block 0xf2d, offset 0x3cb40 + 0x3cb40: 0x6d00e020, 0x3cb41: 0x6d00e220, 0x3cb42: 0x6d2ec420, 0x3cb43: 0x6d2ec620, + 0x3cb44: 0x6d5bf620, 0x3cb45: 0x6e104e20, 0x3cb46: 0x6c3c6420, 0x3cb47: 0x6c594c20, + 0x3cb48: 0x6d2eee20, 0x3cb49: 0x6d2ef020, 0x3cb4a: 0x6c596e20, 0x3cb4b: 0x6c597020, + 0x3cb4c: 0x6c7c2a20, 0x3cb4d: 0x6c7c2c20, 0x3cb4e: 0x6ca4ec20, 0x3cb4f: 0x6cd32820, + 0x3cb50: 0x6cd32a20, 0x3cb51: 0x6d012a20, 0x3cb52: 0x6d012c20, 0x3cb53: 0x6d2f0420, + 0x3cb54: 0x6d2f0620, 0x3cb55: 0x6d5c2620, 0x3cb56: 0x6d86ac20, 0x3cb57: 0x6dab4a20, + 0x3cb58: 0x6dab4c20, 0x3cb59: 0x6dcbbc20, 0x3cb5a: 0x6de70a20, 0x3cb5b: 0x6e105a20, + 0x3cb5c: 0x6e1f1420, 0x3cb5d: 0x6e331220, 0x3cb5e: 0x6e444020, 0x3cb5f: 0x6c3cae20, + 0x3cb60: 0x6c3cb020, 0x3cb61: 0x6c5a1420, 0x3cb62: 0x6c5a1620, 0x3cb63: 0x6c5a1820, + 0x3cb64: 0x6c7ccc20, 0x3cb65: 0x6c7cce20, 0x3cb66: 0x6c7cd020, 0x3cb67: 0x6c7cd220, + 0x3cb68: 0x6ca58a20, 0x3cb69: 0x6ca58c20, 0x3cb6a: 0x6ca58e20, 0x3cb6b: 0x6cd3f020, + 0x3cb6c: 0x6cd3f220, 0x3cb6d: 0x6d01ee20, 0x3cb6e: 0x6d01f020, 0x3cb6f: 0x6d01f220, + 0x3cb70: 0x6d01f420, 0x3cb71: 0x6d2fc620, 0x3cb72: 0x6d2fc820, 0x3cb73: 0x6d2fca20, + 0x3cb74: 0x6d2fcc20, 0x3cb75: 0x6d5cca20, 0x3cb76: 0x6d5ccc20, 0x3cb77: 0x6d5cce20, + 0x3cb78: 0x6d5cd020, 0x3cb79: 0x6d874c20, 0x3cb7a: 0x6d874e20, 0x3cb7b: 0x6d875020, + 0x3cb7c: 0x6dabe020, 0x3cb7d: 0x6dabe220, 0x3cb7e: 0x6dabe420, 0x3cb7f: 0x6dabe620, + // Block 0xf2e, offset 0x3cb80 + 0x3cb80: 0x6dabe820, 0x3cb81: 0x6de75020, 0x3cb82: 0x6dfdde20, 0x3cb83: 0x6e108420, + 0x3cb84: 0x6e108620, 0x3cb85: 0x6e444420, 0x3cb86: 0x6c5a2220, 0x3cb87: 0x6cd40820, + 0x3cb88: 0x6c5a3820, 0x3cb89: 0x6c5a3a20, 0x3cb8a: 0x6ca5cc20, 0x3cb8b: 0x6d022e20, + 0x3cb8c: 0x6d2ffa20, 0x3cb8d: 0x6d5cf420, 0x3cb8e: 0x6d5cf620, 0x3cb8f: 0x6dfdea20, + 0x3cb90: 0x6e108a20, 0x3cb91: 0x6c5ab820, 0x3cb92: 0x6c5aba20, 0x3cb93: 0x6c5abc20, + 0x3cb94: 0x6c7db420, 0x3cb95: 0x6c7db620, 0x3cb96: 0x6c7db820, 0x3cb97: 0x6c7dba20, + 0x3cb98: 0x6c7dbc20, 0x3cb99: 0x6ca68020, 0x3cb9a: 0x6ca68220, 0x3cb9b: 0x6ca68420, + 0x3cb9c: 0x6ca68620, 0x3cb9d: 0x6ca68820, 0x3cb9e: 0x6cd4ac20, 0x3cb9f: 0x6cd4ae20, + 0x3cba0: 0x6cd4b020, 0x3cba1: 0x6cd4b220, 0x3cba2: 0x6cd4b420, 0x3cba3: 0x6cd4b620, + 0x3cba4: 0x6d02fc20, 0x3cba5: 0x6d02fe20, 0x3cba6: 0x6d030020, 0x3cba7: 0x6d030220, + 0x3cba8: 0x6d030420, 0x3cba9: 0x6d030620, 0x3cbaa: 0x6d30b020, 0x3cbab: 0x6d30b220, + 0x3cbac: 0x6d5d8220, 0x3cbad: 0x6d5d8420, 0x3cbae: 0x6d5d8620, 0x3cbaf: 0x6d87e820, + 0x3cbb0: 0x6d87ea20, 0x3cbb1: 0x6d87ec20, 0x3cbb2: 0x6d87ee20, 0x3cbb3: 0x6d87f020, + 0x3cbb4: 0x6d87f220, 0x3cbb5: 0x6dac9820, 0x3cbb6: 0x6dac9a20, 0x3cbb7: 0x6dac9c20, + 0x3cbb8: 0x6dcc9a20, 0x3cbb9: 0x6dcc9c20, 0x3cbba: 0x6dcc9e20, 0x3cbbb: 0x6de7a420, + 0x3cbbc: 0x6de7a620, 0x3cbbd: 0x6de7a820, 0x3cbbe: 0x6e10ba20, 0x3cbbf: 0x6e2a9e20, + // Block 0xf2f, offset 0x3cbc0 + 0x3cbc0: 0x6c256020, 0x3cbc1: 0x6c256220, 0x3cbc2: 0x6c3d2820, 0x3cbc3: 0x6c3d2a20, + 0x3cbc4: 0x6c5b2420, 0x3cbc5: 0x6c5b2620, 0x3cbc6: 0x6c5b2820, 0x3cbc7: 0x6c7e2420, + 0x3cbc8: 0x6c7e2620, 0x3cbc9: 0x6c7e2820, 0x3cbca: 0x6c7e2a20, 0x3cbcb: 0x6ca6e820, + 0x3cbcc: 0x6ca6ea20, 0x3cbcd: 0x6ca6ec20, 0x3cbce: 0x6ca6ee20, 0x3cbcf: 0x6ca6f020, + 0x3cbd0: 0x6cd51220, 0x3cbd1: 0x6cd51420, 0x3cbd2: 0x6cd51620, 0x3cbd3: 0x6cd51820, + 0x3cbd4: 0x6cd51a20, 0x3cbd5: 0x6cd51c20, 0x3cbd6: 0x6cd51e20, 0x3cbd7: 0x6cd52020, + 0x3cbd8: 0x6cd52220, 0x3cbd9: 0x6cd52420, 0x3cbda: 0x6d037220, 0x3cbdb: 0x6d037420, + 0x3cbdc: 0x6d310c20, 0x3cbdd: 0x6d310e20, 0x3cbde: 0x6d311020, 0x3cbdf: 0x6d311220, + 0x3cbe0: 0x6d5dcc20, 0x3cbe1: 0x6d5dce20, 0x3cbe2: 0x6dacc820, 0x3cbe3: 0x6dccbc20, + 0x3cbe4: 0x6e333820, 0x3cbe5: 0x6dccbe20, 0x3cbe6: 0x6c140a20, 0x3cbe7: 0x6c3d6620, + 0x3cbe8: 0x6c5b8e20, 0x3cbe9: 0x6c5b9020, 0x3cbea: 0x6c7e9e20, 0x3cbeb: 0x6c7ea020, + 0x3cbec: 0x6c7ea220, 0x3cbed: 0x6c7ea420, 0x3cbee: 0x6ca76e20, 0x3cbef: 0x6ca77020, + 0x3cbf0: 0x6ca77220, 0x3cbf1: 0x6ca77420, 0x3cbf2: 0x6cd59420, 0x3cbf3: 0x6cd59620, + 0x3cbf4: 0x6cd59820, 0x3cbf5: 0x6cd59a20, 0x3cbf6: 0x6cd59c20, 0x3cbf7: 0x6cd59e20, + 0x3cbf8: 0x6cd5a020, 0x3cbf9: 0x6d042220, 0x3cbfa: 0x6d042420, 0x3cbfb: 0x6d042620, + 0x3cbfc: 0x6d31b820, 0x3cbfd: 0x6d31ba20, 0x3cbfe: 0x6d31bc20, 0x3cbff: 0x6d31be20, + // Block 0xf30, offset 0x3cc00 + 0x3cc00: 0x6d31c020, 0x3cc01: 0x6d5e6220, 0x3cc02: 0x6d5e6420, 0x3cc03: 0x6d5e6620, + 0x3cc04: 0x6d5e6820, 0x3cc05: 0x6d88b820, 0x3cc06: 0x6dad4020, 0x3cc07: 0x6dcd1820, + 0x3cc08: 0x6dcd1a20, 0x3cc09: 0x6dfe8220, 0x3cc0a: 0x6c5bd020, 0x3cc0b: 0x6c7ef420, + 0x3cc0c: 0x6ca7c020, 0x3cc0d: 0x6ca7c220, 0x3cc0e: 0x6cd60420, 0x3cc0f: 0x6cd60620, + 0x3cc10: 0x6cd60820, 0x3cc11: 0x6d048020, 0x3cc12: 0x6d048220, 0x3cc13: 0x6d048420, + 0x3cc14: 0x6d320420, 0x3cc15: 0x6d320620, 0x3cc16: 0x6d5eb420, 0x3cc17: 0x6d891820, + 0x3cc18: 0x6d891a20, 0x3cc19: 0x6d891c20, 0x3cc1a: 0x6d891e20, 0x3cc1b: 0x6dad8620, + 0x3cc1c: 0x6dcd3620, 0x3cc1d: 0x6e2ac020, 0x3cc1e: 0x6c3d9820, 0x3cc1f: 0x6c5bf420, + 0x3cc20: 0x6c7f2e20, 0x3cc21: 0x6c7f3020, 0x3cc22: 0x6ca7e420, 0x3cc23: 0x6cd63220, + 0x3cc24: 0x6cd63420, 0x3cc25: 0x6d04b220, 0x3cc26: 0x6d04b420, 0x3cc27: 0x6d322a20, + 0x3cc28: 0x6d322c20, 0x3cc29: 0x6d5ec620, 0x3cc2a: 0x6d5ec820, 0x3cc2b: 0x6d5eca20, + 0x3cc2c: 0x6d892c20, 0x3cc2d: 0x6dada420, 0x3cc2e: 0x6de81020, 0x3cc2f: 0x6e1f8420, + 0x3cc30: 0x6c3da620, 0x3cc31: 0x6c5c2c20, 0x3cc32: 0x6c7f9c20, 0x3cc33: 0x6c7f9e20, + 0x3cc34: 0x6c7fa020, 0x3cc35: 0x6c7fa220, 0x3cc36: 0x6c7fa420, 0x3cc37: 0x6c7fa620, + 0x3cc38: 0x6ca88a20, 0x3cc39: 0x6ca88c20, 0x3cc3a: 0x6ca88e20, 0x3cc3b: 0x6ca89020, + 0x3cc3c: 0x6cd6da20, 0x3cc3d: 0x6cd6dc20, 0x3cc3e: 0x6d058c20, 0x3cc3f: 0x6d058e20, + // Block 0xf31, offset 0x3cc40 + 0x3cc40: 0x6d059020, 0x3cc41: 0x6d059220, 0x3cc42: 0x6d059420, 0x3cc43: 0x6d059620, + 0x3cc44: 0x6d332a20, 0x3cc45: 0x6d332c20, 0x3cc46: 0x6d332e20, 0x3cc47: 0x6d333020, + 0x3cc48: 0x6d333220, 0x3cc49: 0x6d333420, 0x3cc4a: 0x6d5fdc20, 0x3cc4b: 0x6d5fde20, + 0x3cc4c: 0x6d5fe020, 0x3cc4d: 0x6d5fe220, 0x3cc4e: 0x6d5fe420, 0x3cc4f: 0x6d5fe620, + 0x3cc50: 0x6d8a4020, 0x3cc51: 0x6d8a4220, 0x3cc52: 0x6d8a4420, 0x3cc53: 0x6d8a4620, + 0x3cc54: 0x6d8a4820, 0x3cc55: 0x6d8a4a20, 0x3cc56: 0x6d8a4c20, 0x3cc57: 0x6d8a4e20, + 0x3cc58: 0x6daeb420, 0x3cc59: 0x6daeb620, 0x3cc5a: 0x6daeb820, 0x3cc5b: 0x6daeba20, + 0x3cc5c: 0x6daebc20, 0x3cc5d: 0x6daebe20, 0x3cc5e: 0x6daec020, 0x3cc5f: 0x6daec220, + 0x3cc60: 0x6dce5a20, 0x3cc61: 0x6dce5c20, 0x3cc62: 0x6dce5e20, 0x3cc63: 0x6dce6020, + 0x3cc64: 0x6dce6220, 0x3cc65: 0x6de8be20, 0x3cc66: 0x6de8c020, 0x3cc67: 0x6dff1a20, + 0x3cc68: 0x6e118220, 0x3cc69: 0x6e118420, 0x3cc6a: 0x6e118620, 0x3cc6b: 0x6e118820, + 0x3cc6c: 0x6e1fe020, 0x3cc6d: 0x6e2b0220, 0x3cc6e: 0x6e337e20, 0x3cc6f: 0x6e398220, + 0x3cc70: 0x6e42de20, 0x3cc71: 0x6c3db620, 0x3cc72: 0x6c3db820, 0x3cc73: 0x6c5c5a20, + 0x3cc74: 0x6c5c5c20, 0x3cc75: 0x6c7fe820, 0x3cc76: 0x6c7fea20, 0x3cc77: 0x6c7fec20, + 0x3cc78: 0x6ca8e820, 0x3cc79: 0x6ca8ea20, 0x3cc7a: 0x6ca8ec20, 0x3cc7b: 0x6ca8ee20, + 0x3cc7c: 0x6ca8f020, 0x3cc7d: 0x6cd73a20, 0x3cc7e: 0x6cd73c20, 0x3cc7f: 0x6cd73e20, + // Block 0xf32, offset 0x3cc80 + 0x3cc80: 0x6cd74020, 0x3cc81: 0x6d060220, 0x3cc82: 0x6d33ac20, 0x3cc83: 0x6d33ae20, + 0x3cc84: 0x6d33b020, 0x3cc85: 0x6d33b220, 0x3cc86: 0x6d605e20, 0x3cc87: 0x6d606020, + 0x3cc88: 0x6d606220, 0x3cc89: 0x6d8aa420, 0x3cc8a: 0x6d8aa620, 0x3cc8b: 0x6d8aa820, + 0x3cc8c: 0x6d8aaa20, 0x3cc8d: 0x6daf1a20, 0x3cc8e: 0x6daf1c20, 0x3cc8f: 0x6dceba20, + 0x3cc90: 0x6dcebc20, 0x3cc91: 0x6dcebe20, 0x3cc92: 0x6de90420, 0x3cc93: 0x6de90620, + 0x3cc94: 0x6de90820, 0x3cc95: 0x6de90a20, 0x3cc96: 0x6dff3620, 0x3cc97: 0x6e1ffa20, + 0x3cc98: 0x6e1ffc20, 0x3cc99: 0x6e1ffe20, 0x3cc9a: 0x6c3dd220, 0x3cc9b: 0x6c3dd420, + 0x3cc9c: 0x6c5c9420, 0x3cc9d: 0x6c5c9620, 0x3cc9e: 0x6c809a20, 0x3cc9f: 0x6ca99820, + 0x3cca0: 0x6ca99a20, 0x3cca1: 0x6ca99c20, 0x3cca2: 0x6cd80620, 0x3cca3: 0x6cd80820, + 0x3cca4: 0x6cd80a20, 0x3cca5: 0x6d06c220, 0x3cca6: 0x6d06c420, 0x3cca7: 0x6d06c620, + 0x3cca8: 0x6d06c820, 0x3cca9: 0x6d06ca20, 0x3ccaa: 0x6d34b420, 0x3ccab: 0x6d34b620, + 0x3ccac: 0x6d34b820, 0x3ccad: 0x6d34ba20, 0x3ccae: 0x6d34bc20, 0x3ccaf: 0x6d34be20, + 0x3ccb0: 0x6d34c020, 0x3ccb1: 0x6d34c220, 0x3ccb2: 0x6d34c420, 0x3ccb3: 0x6d617020, + 0x3ccb4: 0x6d617220, 0x3ccb5: 0x6d617420, 0x3ccb6: 0x6d617620, 0x3ccb7: 0x6d617820, + 0x3ccb8: 0x6d8b8a20, 0x3ccb9: 0x6d8b8c20, 0x3ccba: 0x6d8b8e20, 0x3ccbb: 0x6d8b9020, + 0x3ccbc: 0x6d8b9220, 0x3ccbd: 0x6dafe220, 0x3ccbe: 0x6dafe420, 0x3ccbf: 0x6dafe620, + // Block 0xf33, offset 0x3ccc0 + 0x3ccc0: 0x6dafe820, 0x3ccc1: 0x6dcf7220, 0x3ccc2: 0x6dcf7420, 0x3ccc3: 0x6dcf7620, + 0x3ccc4: 0x6dcf7820, 0x3ccc5: 0x6de99220, 0x3ccc6: 0x6de99420, 0x3ccc7: 0x6de99620, + 0x3ccc8: 0x6de99820, 0x3ccc9: 0x6de99a20, 0x3ccca: 0x6de99c20, 0x3cccb: 0x6de99e20, + 0x3cccc: 0x6dff8a20, 0x3cccd: 0x6dff8c20, 0x3ccce: 0x6dff8e20, 0x3cccf: 0x6e11fa20, + 0x3ccd0: 0x6e11fc20, 0x3ccd1: 0x6e11fe20, 0x3ccd2: 0x6e203420, 0x3ccd3: 0x6e203620, + 0x3ccd4: 0x6e203820, 0x3ccd5: 0x6e2b3020, 0x3ccd6: 0x6e39a620, 0x3ccd7: 0x6e3dd220, + 0x3ccd8: 0x6e40b420, 0x3ccd9: 0x6c050220, 0x3ccda: 0x6c25c420, 0x3ccdb: 0x6c25c620, + 0x3ccdc: 0x6c25c820, 0x3ccdd: 0x6c25ca20, 0x3ccde: 0x6c3dfc20, 0x3ccdf: 0x6c3dfe20, + 0x3cce0: 0x6c5cba20, 0x3cce1: 0x6c5cbc20, 0x3cce2: 0x6c5cbe20, 0x3cce3: 0x6c5cc020, + 0x3cce4: 0x6c80b620, 0x3cce5: 0x6c80b820, 0x3cce6: 0x6c80ba20, 0x3cce7: 0x6c80bc20, + 0x3cce8: 0x6c80be20, 0x3cce9: 0x6c80c020, 0x3ccea: 0x6ca9dc20, 0x3cceb: 0x6ca9de20, + 0x3ccec: 0x6cd84a20, 0x3cced: 0x6cd84c20, 0x3ccee: 0x6cd84e20, 0x3ccef: 0x6d06ee20, + 0x3ccf0: 0x6d06f020, 0x3ccf1: 0x6d34d820, 0x3ccf2: 0x6d34da20, 0x3ccf3: 0x6d34dc20, + 0x3ccf4: 0x6d34de20, 0x3ccf5: 0x6d618e20, 0x3ccf6: 0x6d619020, 0x3ccf7: 0x6d8ba420, + 0x3ccf8: 0x6daff020, 0x3ccf9: 0x6e120020, 0x3ccfa: 0x6d06fa20, 0x3ccfb: 0x6d34fa20, + 0x3ccfc: 0x6d61a020, 0x3ccfd: 0x6d61a220, 0x3ccfe: 0x6d8bb820, 0x3ccff: 0x6de9b220, + // Block 0xf34, offset 0x3cd00 + 0x3cd00: 0x6c3e1e20, 0x3cd01: 0x6c5cf420, 0x3cd02: 0x6c812020, 0x3cd03: 0x6caa2420, + 0x3cd04: 0x6caa2620, 0x3cd05: 0x6caa2820, 0x3cd06: 0x6d074220, 0x3cd07: 0x6d074420, + 0x3cd08: 0x6d352c20, 0x3cd09: 0x6d61c820, 0x3cd0a: 0x6d8bf020, 0x3cd0b: 0x6dcfa620, + 0x3cd0c: 0x6de9d420, 0x3cd0d: 0x6e120e20, 0x3cd0e: 0x6c3e2c20, 0x3cd0f: 0x6caa6620, + 0x3cd10: 0x6caa6820, 0x3cd11: 0x6caa6a20, 0x3cd12: 0x6caa6c20, 0x3cd13: 0x6cd8a620, + 0x3cd14: 0x6cd8a820, 0x3cd15: 0x6d077a20, 0x3cd16: 0x6d61f020, 0x3cd17: 0x6d61f220, + 0x3cd18: 0x6d61f420, 0x3cd19: 0x6d8c0a20, 0x3cd1a: 0x6db04a20, 0x3cd1b: 0x6db04c20, + 0x3cd1c: 0x6db04e20, 0x3cd1d: 0x6dcfd420, 0x3cd1e: 0x6dcfd620, 0x3cd1f: 0x6dffb020, + 0x3cd20: 0x6e204820, 0x3cd21: 0x6e204a20, 0x3cd22: 0x6c5d2c20, 0x3cd23: 0x6c818e20, + 0x3cd24: 0x6caab020, 0x3cd25: 0x6cd8ec20, 0x3cd26: 0x6cd8ee20, 0x3cd27: 0x6cd8f020, + 0x3cd28: 0x6d07a620, 0x3cd29: 0x6d07a820, 0x3cd2a: 0x6d358a20, 0x3cd2b: 0x6d623820, + 0x3cd2c: 0x6d623a20, 0x3cd2d: 0x6d8c3e20, 0x3cd2e: 0x6d8c4020, 0x3cd2f: 0x6db07020, + 0x3cd30: 0x6dd00820, 0x3cd31: 0x6dd00a20, 0x3cd32: 0x6e205420, 0x3cd33: 0x6c81a020, + 0x3cd34: 0x6c81a220, 0x3cd35: 0x6d07ac20, 0x3cd36: 0x6d359020, 0x3cd37: 0x6d624020, + 0x3cd38: 0x6dd00e20, 0x3cd39: 0x6caace20, 0x3cd3a: 0x6cd90a20, 0x3cd3b: 0x6cd90c20, + 0x3cd3c: 0x6d07be20, 0x3cd3d: 0x6d626620, 0x3cd3e: 0x6d8c6020, 0x3cd3f: 0x6dd02820, + // Block 0xf35, offset 0x3cd40 + 0x3cd40: 0x6c3e5820, 0x3cd41: 0x6c81f820, 0x3cd42: 0x6cd94820, 0x3cd43: 0x6cd94a20, + 0x3cd44: 0x6d07f620, 0x3cd45: 0x6d07f820, 0x3cd46: 0x6d07fa20, 0x3cd47: 0x6d360a20, + 0x3cd48: 0x6d360c20, 0x3cd49: 0x6d62b420, 0x3cd4a: 0x6d8c9220, 0x3cd4b: 0x6d8c9420, + 0x3cd4c: 0x6d8c9620, 0x3cd4d: 0x6d8c9820, 0x3cd4e: 0x6db0c820, 0x3cd4f: 0x6db0ca20, + 0x3cd50: 0x6dd05a20, 0x3cd51: 0x6dd05c20, 0x3cd52: 0x6dea1a20, 0x3cd53: 0x6e42ea20, + 0x3cd54: 0x6d080820, 0x3cd55: 0x6d361820, 0x3cd56: 0x6c3f1420, 0x3cd57: 0x6c3f1620, + 0x3cd58: 0x6c3f1820, 0x3cd59: 0x6c5e3020, 0x3cd5a: 0x6c5e3220, 0x3cd5b: 0x6c5e3420, + 0x3cd5c: 0x6c5e3620, 0x3cd5d: 0x6c82ce20, 0x3cd5e: 0x6c82d020, 0x3cd5f: 0x6cabd620, + 0x3cd60: 0x6cabd820, 0x3cd61: 0x6cabda20, 0x3cd62: 0x6cda6620, 0x3cd63: 0x6cda6820, + 0x3cd64: 0x6cda6a20, 0x3cd65: 0x6cda6c20, 0x3cd66: 0x6d08f220, 0x3cd67: 0x6d08f420, + 0x3cd68: 0x6d08f620, 0x3cd69: 0x6d36d620, 0x3cd6a: 0x6d36d820, 0x3cd6b: 0x6d36da20, + 0x3cd6c: 0x6d36dc20, 0x3cd6d: 0x6d36de20, 0x3cd6e: 0x6d36e020, 0x3cd6f: 0x6d634a20, + 0x3cd70: 0x6d634c20, 0x3cd71: 0x6d634e20, 0x3cd72: 0x6d635020, 0x3cd73: 0x6d635220, + 0x3cd74: 0x6d635420, 0x3cd75: 0x6d8d5020, 0x3cd76: 0x6d8d5220, 0x3cd77: 0x6d8d5420, + 0x3cd78: 0x6d8d5620, 0x3cd79: 0x6db15e20, 0x3cd7a: 0x6db16020, 0x3cd7b: 0x6db16220, + 0x3cd7c: 0x6dd0ac20, 0x3cd7d: 0x6dd0ae20, 0x3cd7e: 0x6dea6420, 0x3cd7f: 0x6dea6620, + // Block 0xf36, offset 0x3cd80 + 0x3cd80: 0x6e001420, 0x3cd81: 0x6e125820, 0x3cd82: 0x6e207c20, 0x3cd83: 0x6e2b6220, + 0x3cd84: 0x6e454220, 0x3cd85: 0x6c82da20, 0x3cd86: 0x6cda7a20, 0x3cd87: 0x6d08f820, + 0x3cd88: 0x6d36ec20, 0x3cd89: 0x6dd0b620, 0x3cd8a: 0x6cda8a20, 0x3cd8b: 0x6d636820, + 0x3cd8c: 0x6dd0ba20, 0x3cd8d: 0x6e3de620, 0x3cd8e: 0x6d090020, 0x3cd8f: 0x6d36fc20, + 0x3cd90: 0x6d36fe20, 0x3cd91: 0x6e001e20, 0x3cd92: 0x6dd0d020, 0x3cd93: 0x6e3dea20, + 0x3cd94: 0x6c3f3220, 0x3cd95: 0x6d091820, 0x3cd96: 0x6d091a20, 0x3cd97: 0x6d8d9420, + 0x3cd98: 0x6dea8420, 0x3cd99: 0x6e208420, 0x3cd9a: 0x6c5e7620, 0x3cd9b: 0x6d377220, + 0x3cd9c: 0x6d63e020, 0x3cd9d: 0x6d63e220, 0x3cd9e: 0x6db1ba20, 0x3cd9f: 0x6dd11620, + 0x3cda0: 0x6e004820, 0x3cda1: 0x6e209620, 0x3cda2: 0x6e209820, 0x3cda3: 0x6e209a20, + 0x3cda4: 0x6d8dd820, 0x3cda5: 0x6c14c620, 0x3cda6: 0x6c14c820, 0x3cda7: 0x6c268420, + 0x3cda8: 0x6c268620, 0x3cda9: 0x6c400220, 0x3cdaa: 0x6c400420, 0x3cdab: 0x6c400620, + 0x3cdac: 0x6c400820, 0x3cdad: 0x6c400a20, 0x3cdae: 0x6c5f7e20, 0x3cdaf: 0x6c5f8020, + 0x3cdb0: 0x6c5f8220, 0x3cdb1: 0x6c5f8420, 0x3cdb2: 0x6c5f8620, 0x3cdb3: 0x6c5f8820, + 0x3cdb4: 0x6c5f8a20, 0x3cdb5: 0x6c5f8c20, 0x3cdb6: 0x6c84b020, 0x3cdb7: 0x6c84b220, + 0x3cdb8: 0x6c84b420, 0x3cdb9: 0x6c84b620, 0x3cdba: 0x6c84b820, 0x3cdbb: 0x6c84ba20, + 0x3cdbc: 0x6c84bc20, 0x3cdbd: 0x6c84be20, 0x3cdbe: 0x6c84c020, 0x3cdbf: 0x6cadf420, + // Block 0xf37, offset 0x3cdc0 + 0x3cdc0: 0x6cadf620, 0x3cdc1: 0x6cadf820, 0x3cdc2: 0x6cadfa20, 0x3cdc3: 0x6cadfc20, + 0x3cdc4: 0x6cadfe20, 0x3cdc5: 0x6cae0020, 0x3cdc6: 0x6cae0220, 0x3cdc7: 0x6cae0420, + 0x3cdc8: 0x6cae0620, 0x3cdc9: 0x6cae0820, 0x3cdca: 0x6cae0a20, 0x3cdcb: 0x6cae0c20, + 0x3cdcc: 0x6cae0e20, 0x3cdcd: 0x6cae1020, 0x3cdce: 0x6cae1220, 0x3cdcf: 0x6cae1420, + 0x3cdd0: 0x6cdd2220, 0x3cdd1: 0x6cdd2420, 0x3cdd2: 0x6cdd2620, 0x3cdd3: 0x6cdd2820, + 0x3cdd4: 0x6cdd2a20, 0x3cdd5: 0x6cdd2c20, 0x3cdd6: 0x6cdd2e20, 0x3cdd7: 0x6cdd3020, + 0x3cdd8: 0x6cdd3220, 0x3cdd9: 0x6cdd3420, 0x3cdda: 0x6cdd3620, 0x3cddb: 0x6cdd3820, + 0x3cddc: 0x6cdd3a20, 0x3cddd: 0x6cdd3c20, 0x3cdde: 0x6cdd3e20, 0x3cddf: 0x6cdd4020, + 0x3cde0: 0x6cdd4220, 0x3cde1: 0x6d0b8c20, 0x3cde2: 0x6d0b8e20, 0x3cde3: 0x6d0b9020, + 0x3cde4: 0x6d0b9220, 0x3cde5: 0x6d0b9420, 0x3cde6: 0x6d0b9620, 0x3cde7: 0x6d0b9820, + 0x3cde8: 0x6d0b9a20, 0x3cde9: 0x6d0b9c20, 0x3cdea: 0x6d0b9e20, 0x3cdeb: 0x6d0ba020, + 0x3cdec: 0x6d0ba220, 0x3cded: 0x6d0ba420, 0x3cdee: 0x6d0ba620, 0x3cdef: 0x6d0ba820, + 0x3cdf0: 0x6cdd4620, 0x3cdf1: 0x6d0baa20, 0x3cdf2: 0x6d0bac20, 0x3cdf3: 0x6d0bae20, + 0x3cdf4: 0x6d0bb020, 0x3cdf5: 0x6d0bb220, 0x3cdf6: 0x6d399220, 0x3cdf7: 0x6d399420, + 0x3cdf8: 0x6d399620, 0x3cdf9: 0x6d399820, 0x3cdfa: 0x6d399a20, 0x3cdfb: 0x6d399c20, + 0x3cdfc: 0x6d399e20, 0x3cdfd: 0x6d39a020, 0x3cdfe: 0x6d39a220, 0x3cdff: 0x6d39a420, + // Block 0xf38, offset 0x3ce00 + 0x3ce00: 0x6d39a620, 0x3ce01: 0x6d39a820, 0x3ce02: 0x6d39aa20, 0x3ce03: 0x6d39ac20, + 0x3ce04: 0x6d39ae20, 0x3ce05: 0x6d39b020, 0x3ce06: 0x6d39b220, 0x3ce07: 0x6d39b420, + 0x3ce08: 0x6d65c420, 0x3ce09: 0x6d65c620, 0x3ce0a: 0x6d65c820, 0x3ce0b: 0x6d65ca20, + 0x3ce0c: 0x6d65cc20, 0x3ce0d: 0x6d65ce20, 0x3ce0e: 0x6d65d020, 0x3ce0f: 0x6d65d220, + 0x3ce10: 0x6d65d420, 0x3ce11: 0x6d65d620, 0x3ce12: 0x6d65d820, 0x3ce13: 0x6d65da20, + 0x3ce14: 0x6d65dc20, 0x3ce15: 0x6d65de20, 0x3ce16: 0x6d65e020, 0x3ce17: 0x6d65e220, + 0x3ce18: 0x6d65e420, 0x3ce19: 0x6d65e620, 0x3ce1a: 0x6d65e820, 0x3ce1b: 0x6d65ea20, + 0x3ce1c: 0x6d65ec20, 0x3ce1d: 0x6d8fb220, 0x3ce1e: 0x6d8fb420, 0x3ce1f: 0x6d8fb620, + 0x3ce20: 0x6d8fb820, 0x3ce21: 0x6d8fba20, 0x3ce22: 0x6d8fbc20, 0x3ce23: 0x6d8fbe20, + 0x3ce24: 0x6d8fc020, 0x3ce25: 0x6db37420, 0x3ce26: 0x6db37620, 0x3ce27: 0x6db37820, + 0x3ce28: 0x6db37a20, 0x3ce29: 0x6db37c20, 0x3ce2a: 0x6db37e20, 0x3ce2b: 0x6db38020, + 0x3ce2c: 0x6db38220, 0x3ce2d: 0x6db38420, 0x3ce2e: 0x6db38620, 0x3ce2f: 0x6db38820, + 0x3ce30: 0x6db38a20, 0x3ce31: 0x6db38c20, 0x3ce32: 0x6db38e20, 0x3ce33: 0x6db39020, + 0x3ce34: 0x6db39220, 0x3ce35: 0x6dd27620, 0x3ce36: 0x6dd27820, 0x3ce37: 0x6dd27a20, + 0x3ce38: 0x6dd27c20, 0x3ce39: 0x6dd27e20, 0x3ce3a: 0x6dd28020, 0x3ce3b: 0x6dd28220, + 0x3ce3c: 0x6dd28420, 0x3ce3d: 0x6dd28620, 0x3ce3e: 0x6dd28820, 0x3ce3f: 0x6dd28a20, + // Block 0xf39, offset 0x3ce40 + 0x3ce40: 0x6dd28c20, 0x3ce41: 0x6dd28e20, 0x3ce42: 0x6dd29020, 0x3ce43: 0x6dd29220, + 0x3ce44: 0x6dd29420, 0x3ce45: 0x6debc020, 0x3ce46: 0x6debc220, 0x3ce47: 0x6debc420, + 0x3ce48: 0x6debc620, 0x3ce49: 0x6debc820, 0x3ce4a: 0x6debca20, 0x3ce4b: 0x6debcc20, + 0x3ce4c: 0x6e014c20, 0x3ce4d: 0x6e014e20, 0x3ce4e: 0x6e015020, 0x3ce4f: 0x6e015220, + 0x3ce50: 0x6e133820, 0x3ce51: 0x6e133a20, 0x3ce52: 0x6e133c20, 0x3ce53: 0x6e133e20, + 0x3ce54: 0x6e211820, 0x3ce55: 0x6e211a20, 0x3ce56: 0x6e211c20, 0x3ce57: 0x6e2bd420, + 0x3ce58: 0x6e342020, 0x3ce59: 0x6e342220, 0x3ce5a: 0x6e342420, 0x3ce5b: 0x6e3e0e20, + 0x3ce5c: 0x6e3e1020, 0x3ce5d: 0x6c5f9e20, 0x3ce5e: 0x6c5fa020, 0x3ce5f: 0x6c84dc20, + 0x3ce60: 0x6cdd6220, 0x3ce61: 0x6cdd6420, 0x3ce62: 0x6d39da20, 0x3ce63: 0x6db3b220, + 0x3ce64: 0x6c403420, 0x3ce65: 0x6c5ff220, 0x3ce66: 0x6c5ff420, 0x3ce67: 0x6c857820, + 0x3ce68: 0x6c857a20, 0x3ce69: 0x6c857c20, 0x3ce6a: 0x6c857e20, 0x3ce6b: 0x6c858020, + 0x3ce6c: 0x6caf0c20, 0x3ce6d: 0x6caf0e20, 0x3ce6e: 0x6caf1020, 0x3ce6f: 0x6caf1220, + 0x3ce70: 0x6caf1420, 0x3ce71: 0x6caf1620, 0x3ce72: 0x6caf1820, 0x3ce73: 0x6cde3020, + 0x3ce74: 0x6cde3220, 0x3ce75: 0x6cde3420, 0x3ce76: 0x6cde3620, 0x3ce77: 0x6cde3820, + 0x3ce78: 0x6cde3a20, 0x3ce79: 0x6cde3c20, 0x3ce7a: 0x6cde3e20, 0x3ce7b: 0x6cde4020, + 0x3ce7c: 0x6cde4220, 0x3ce7d: 0x6d0cb020, 0x3ce7e: 0x6d0cb220, 0x3ce7f: 0x6d0cb420, + // Block 0xf3a, offset 0x3ce80 + 0x3ce80: 0x6d0cb620, 0x3ce81: 0x6d0cb820, 0x3ce82: 0x6d3afc20, 0x3ce83: 0x6d3afe20, + 0x3ce84: 0x6d3b0020, 0x3ce85: 0x6d3b0220, 0x3ce86: 0x6d3b0420, 0x3ce87: 0x6d3b0620, + 0x3ce88: 0x6d3b0820, 0x3ce89: 0x6d3b0a20, 0x3ce8a: 0x6d672e20, 0x3ce8b: 0x6d673020, + 0x3ce8c: 0x6d673220, 0x3ce8d: 0x6d673420, 0x3ce8e: 0x6d673620, 0x3ce8f: 0x6d910820, + 0x3ce90: 0x6d910a20, 0x3ce91: 0x6d910c20, 0x3ce92: 0x6d910e20, 0x3ce93: 0x6d911020, + 0x3ce94: 0x6d911220, 0x3ce95: 0x6d911420, 0x3ce96: 0x6db4be20, 0x3ce97: 0x6db4c020, + 0x3ce98: 0x6db4c220, 0x3ce99: 0x6db4c420, 0x3ce9a: 0x6dd38e20, 0x3ce9b: 0x6dd39020, + 0x3ce9c: 0x6dd39220, 0x3ce9d: 0x6dd39420, 0x3ce9e: 0x6dd39620, 0x3ce9f: 0x6dec9c20, + 0x3cea0: 0x6dec9e20, 0x3cea1: 0x6deca020, 0x3cea2: 0x6deca220, 0x3cea3: 0x6e01d420, + 0x3cea4: 0x6e01d620, 0x3cea5: 0x6e01d820, 0x3cea6: 0x6e13c220, 0x3cea7: 0x6e13c420, + 0x3cea8: 0x6e218420, 0x3cea9: 0x6e447620, 0x3ceaa: 0x6c859220, 0x3ceab: 0x6caf2420, + 0x3ceac: 0x6db4ce20, 0x3cead: 0x6caf3220, 0x3ceae: 0x6cde6820, 0x3ceaf: 0x6d675420, + 0x3ceb0: 0x6dd3a820, 0x3ceb1: 0x6e2c2020, 0x3ceb2: 0x6c605e20, 0x3ceb3: 0x6c606020, + 0x3ceb4: 0x6c606220, 0x3ceb5: 0x6c861c20, 0x3ceb6: 0x6c861e20, 0x3ceb7: 0x6c862020, + 0x3ceb8: 0x6cafd820, 0x3ceb9: 0x6cafda20, 0x3ceba: 0x6cafdc20, 0x3cebb: 0x6cafde20, + 0x3cebc: 0x6cafe020, 0x3cebd: 0x6cdef420, 0x3cebe: 0x6d0d6820, 0x3cebf: 0x6d0d6a20, + // Block 0xf3b, offset 0x3cec0 + 0x3cec0: 0x6d0d6c20, 0x3cec1: 0x6d0d6e20, 0x3cec2: 0x6d0d7020, 0x3cec3: 0x6d0d7220, + 0x3cec4: 0x6d0d7420, 0x3cec5: 0x6d3bd820, 0x3cec6: 0x6d3bda20, 0x3cec7: 0x6d67ec20, + 0x3cec8: 0x6d67ee20, 0x3cec9: 0x6d67f020, 0x3ceca: 0x6d91ae20, 0x3cecb: 0x6d91b020, + 0x3cecc: 0x6d91b220, 0x3cecd: 0x6d91b420, 0x3cece: 0x6d91b620, 0x3cecf: 0x6d91b820, + 0x3ced0: 0x6db57820, 0x3ced1: 0x6db57a20, 0x3ced2: 0x6db57c20, 0x3ced3: 0x6dd40a20, + 0x3ced4: 0x6dd40c20, 0x3ced5: 0x6decfc20, 0x3ced6: 0x6e021620, 0x3ced7: 0x6e21a020, + 0x3ced8: 0x6e2c3420, 0x3ced9: 0x6e2c3620, 0x3ceda: 0x6cafec20, 0x3cedb: 0x6d91c020, + 0x3cedc: 0x6c863c20, 0x3cedd: 0x6cdf3220, 0x3cede: 0x6d0daa20, 0x3cedf: 0x6d3c1a20, + 0x3cee0: 0x6d3c1c20, 0x3cee1: 0x6d683020, 0x3cee2: 0x6d91fe20, 0x3cee3: 0x6d920020, + 0x3cee4: 0x6dd43420, 0x3cee5: 0x6e022c20, 0x3cee6: 0x6e3a3220, 0x3cee7: 0x6e3a3420, + 0x3cee8: 0x6c607820, 0x3cee9: 0x6c607a20, 0x3ceea: 0x6c864020, 0x3ceeb: 0x6d0dae20, + 0x3ceec: 0x6d683820, 0x3ceed: 0x6db5a620, 0x3ceee: 0x6d0dd820, 0x3ceef: 0x6d0dda20, + 0x3cef0: 0x6d922e20, 0x3cef1: 0x6d923020, 0x3cef2: 0x6c868c20, 0x3cef3: 0x6c868e20, + 0x3cef4: 0x6cb10620, 0x3cef5: 0x6cb10820, 0x3cef6: 0x6ce02420, 0x3cef7: 0x6ce02620, + 0x3cef8: 0x6ce02820, 0x3cef9: 0x6ce02a20, 0x3cefa: 0x6d0eae20, 0x3cefb: 0x6d0eb020, + 0x3cefc: 0x6d3d0020, 0x3cefd: 0x6d3d0220, 0x3cefe: 0x6d3d0420, 0x3ceff: 0x6d697220, + // Block 0xf3c, offset 0x3cf00 + 0x3cf00: 0x6d697420, 0x3cf01: 0x6d92f220, 0x3cf02: 0x6d92f420, 0x3cf03: 0x6d92f620, + 0x3cf04: 0x6d92f820, 0x3cf05: 0x6d92fa20, 0x3cf06: 0x6db69220, 0x3cf07: 0x6db69420, + 0x3cf08: 0x6db69620, 0x3cf09: 0x6dd4f220, 0x3cf0a: 0x6dd4f420, 0x3cf0b: 0x6dd4f620, + 0x3cf0c: 0x6dd4f820, 0x3cf0d: 0x6dedda20, 0x3cf0e: 0x6deddc20, 0x3cf0f: 0x6dedde20, + 0x3cf10: 0x6e02b220, 0x3cf11: 0x6e02b420, 0x3cf12: 0x6e146a20, 0x3cf13: 0x6e2c7420, + 0x3cf14: 0x6e34a220, 0x3cf15: 0x6e34a420, 0x3cf16: 0x6e34a620, 0x3cf17: 0x6e3e4220, + 0x3cf18: 0x6e431c20, 0x3cf19: 0x6c0a7c20, 0x3cf1a: 0x6c14fa20, 0x3cf1b: 0x6c14fc20, + 0x3cf1c: 0x6c26d820, 0x3cf1d: 0x6c26da20, 0x3cf1e: 0x6c26dc20, 0x3cf1f: 0x6c26de20, + 0x3cf20: 0x6c26e020, 0x3cf21: 0x6c26e220, 0x3cf22: 0x6c40ac20, 0x3cf23: 0x6c40ae20, + 0x3cf24: 0x6c40b020, 0x3cf25: 0x6c40b220, 0x3cf26: 0x6c40b420, 0x3cf27: 0x6c60b620, + 0x3cf28: 0x6c60b820, 0x3cf29: 0x6c60ba20, 0x3cf2a: 0x6c60bc20, 0x3cf2b: 0x6c86b820, + 0x3cf2c: 0x6c86ba20, 0x3cf2d: 0x6c86bc20, 0x3cf2e: 0x6c86be20, 0x3cf2f: 0x6cb13420, + 0x3cf30: 0x6cb13620, 0x3cf31: 0x6cb13820, 0x3cf32: 0x6cb13a20, 0x3cf33: 0x6cb13c20, + 0x3cf34: 0x6cb13e20, 0x3cf35: 0x6ce03e20, 0x3cf36: 0x6ce04020, 0x3cf37: 0x6ce04220, + 0x3cf38: 0x6ce04420, 0x3cf39: 0x6d0ebe20, 0x3cf3a: 0x6d0ec020, 0x3cf3b: 0x6d3d1220, + 0x3cf3c: 0x6d3d1420, 0x3cf3d: 0x6d698220, 0x3cf3e: 0x6d92fe20, 0x3cf3f: 0x6db69c20, + // Block 0xf3d, offset 0x3cf40 + 0x3cf40: 0x6c60c020, 0x3cf41: 0x6cb14e20, 0x3cf42: 0x6d699420, 0x3cf43: 0x6d69b220, + 0x3cf44: 0x6dd51220, 0x3cf45: 0x6c40bc20, 0x3cf46: 0x6cb17620, 0x3cf47: 0x6d3d4a20, + 0x3cf48: 0x6d3d4c20, 0x3cf49: 0x6d933e20, 0x3cf4a: 0x6c86ee20, 0x3cf4b: 0x6d0f2420, + 0x3cf4c: 0x6d936620, 0x3cf4d: 0x6db70220, 0x3cf4e: 0x6c60da20, 0x3cf4f: 0x6c870a20, + 0x3cf50: 0x6c870c20, 0x3cf51: 0x6c870e20, 0x3cf52: 0x6cb1d820, 0x3cf53: 0x6cb1da20, + 0x3cf54: 0x6ce11420, 0x3cf55: 0x6ce11620, 0x3cf56: 0x6d0f8e20, 0x3cf57: 0x6d3dbc20, + 0x3cf58: 0x6d3dbe20, 0x3cf59: 0x6d3dc020, 0x3cf5a: 0x6d6a6820, 0x3cf5b: 0x6d6a6a20, + 0x3cf5c: 0x6d93b820, 0x3cf5d: 0x6d93ba20, 0x3cf5e: 0x6d93bc20, 0x3cf5f: 0x6db73c20, + 0x3cf60: 0x6db73e20, 0x3cf61: 0x6dd59220, 0x3cf62: 0x6dee7a20, 0x3cf63: 0x6e225420, + 0x3cf64: 0x6e225620, 0x3cf65: 0x6e2ca420, 0x3cf66: 0x6c60f620, 0x3cf67: 0x6c60f820, + 0x3cf68: 0x6cb1e620, 0x3cf69: 0x6ce13420, 0x3cf6a: 0x6d0f9620, 0x3cf6b: 0x6d93ca20, + 0x3cf6c: 0x6dd59420, 0x3cf6d: 0x6ce13c20, 0x3cf6e: 0x6d0fa620, 0x3cf6f: 0x6d6a8020, + 0x3cf70: 0x6dd59a20, 0x3cf71: 0x6cb23c20, 0x3cf72: 0x6ce19a20, 0x3cf73: 0x6d100420, + 0x3cf74: 0x6d100620, 0x3cf75: 0x6d3e3420, 0x3cf76: 0x6d3e3620, 0x3cf77: 0x6d3e3820, + 0x3cf78: 0x6d6ad420, 0x3cf79: 0x6d6ad620, 0x3cf7a: 0x6d6ad820, 0x3cf7b: 0x6d942e20, + 0x3cf7c: 0x6d943020, 0x3cf7d: 0x6db78220, 0x3cf7e: 0x6dd5d820, 0x3cf7f: 0x6dd5da20, + // Block 0xf3e, offset 0x3cf80 + 0x3cf80: 0x6c877e20, 0x3cf81: 0x6cb2a420, 0x3cf82: 0x6cb2a620, 0x3cf83: 0x6cb2a820, + 0x3cf84: 0x6ce23420, 0x3cf85: 0x6ce23620, 0x3cf86: 0x6ce23820, 0x3cf87: 0x6d10a620, + 0x3cf88: 0x6d10a820, 0x3cf89: 0x6d10aa20, 0x3cf8a: 0x6d10ac20, 0x3cf8b: 0x6d10ae20, + 0x3cf8c: 0x6d3edc20, 0x3cf8d: 0x6d3ede20, 0x3cf8e: 0x6d3ee020, 0x3cf8f: 0x6d6b8e20, + 0x3cf90: 0x6d6b9020, 0x3cf91: 0x6d6b9220, 0x3cf92: 0x6d6b9420, 0x3cf93: 0x6d6b9620, + 0x3cf94: 0x6d94d820, 0x3cf95: 0x6d94da20, 0x3cf96: 0x6d94dc20, 0x3cf97: 0x6d94de20, + 0x3cf98: 0x6d94e020, 0x3cf99: 0x6db81020, 0x3cf9a: 0x6db81220, 0x3cf9b: 0x6db81420, + 0x3cf9c: 0x6dd6a220, 0x3cf9d: 0x6dd6a420, 0x3cf9e: 0x6dd6a620, 0x3cf9f: 0x6dd6a820, + 0x3cfa0: 0x6def6020, 0x3cfa1: 0x6def6220, 0x3cfa2: 0x6def6420, 0x3cfa3: 0x6e039220, + 0x3cfa4: 0x6e039420, 0x3cfa5: 0x6e039620, 0x3cfa6: 0x6e039820, 0x3cfa7: 0x6e150220, + 0x3cfa8: 0x6e150420, 0x3cfa9: 0x6e2ce620, 0x3cfaa: 0x6d10dc20, 0x3cfab: 0x6d10de20, + 0x3cfac: 0x6d3f0020, 0x3cfad: 0x6db83220, 0x3cfae: 0x6db83420, 0x3cfaf: 0x6dd6be20, + 0x3cfb0: 0x6def9020, 0x3cfb1: 0x6e03aa20, 0x3cfb2: 0x6c87b620, 0x3cfb3: 0x6cb33620, + 0x3cfb4: 0x6ce2d420, 0x3cfb5: 0x6ce2d620, 0x3cfb6: 0x6d3f5820, 0x3cfb7: 0x6d3f5a20, + 0x3cfb8: 0x6d3f5c20, 0x3cfb9: 0x6d6c4c20, 0x3cfba: 0x6d956c20, 0x3cfbb: 0x6d956e20, + 0x3cfbc: 0x6db89620, 0x3cfbd: 0x6db89820, 0x3cfbe: 0x6dd71220, 0x3cfbf: 0x6dd71420, + // Block 0xf3f, offset 0x3cfc0 + 0x3cfc0: 0x6defc620, 0x3cfc1: 0x6e03e820, 0x3cfc2: 0x6e153420, 0x3cfc3: 0x6e469220, + 0x3cfc4: 0x6c271620, 0x3cfc5: 0x6c271820, 0x3cfc6: 0x6c271a20, 0x3cfc7: 0x6c40f420, + 0x3cfc8: 0x6c615e20, 0x3cfc9: 0x6c616020, 0x3cfca: 0x6c616220, 0x3cfcb: 0x6c87cc20, + 0x3cfcc: 0x6c87ce20, 0x3cfcd: 0x6cb34020, 0x3cfce: 0x6ce2e820, 0x3cfcf: 0x6ce2ea20, + 0x3cfd0: 0x6ce2ec20, 0x3cfd1: 0x6ce2ee20, 0x3cfd2: 0x6d114a20, 0x3cfd3: 0x6c87d020, + 0x3cfd4: 0x6d3f6420, 0x3cfd5: 0x6d6c5020, 0x3cfd6: 0x6d6c5220, 0x3cfd7: 0x6d957620, + 0x3cfd8: 0x6db89a20, 0x3cfd9: 0x6defc820, 0x3cfda: 0x6ce2f820, 0x3cfdb: 0x6d115a20, + 0x3cfdc: 0x6d115c20, 0x3cfdd: 0x6e03f620, 0x3cfde: 0x6c052020, 0x3cfdf: 0x6c153820, + 0x3cfe0: 0x6c278620, 0x3cfe1: 0x6c278820, 0x3cfe2: 0x6c417620, 0x3cfe3: 0x6c417820, + 0x3cfe4: 0x6c417a20, 0x3cfe5: 0x6c61d020, 0x3cfe6: 0x6c886020, 0x3cfe7: 0x6c886220, + 0x3cfe8: 0x6c886420, 0x3cfe9: 0x6c886620, 0x3cfea: 0x6c886820, 0x3cfeb: 0x6cb3ec20, + 0x3cfec: 0x6cb3ee20, 0x3cfed: 0x6cb3f020, 0x3cfee: 0x6cb3f220, 0x3cfef: 0x6cb3f420, + 0x3cff0: 0x6cb3f620, 0x3cff1: 0x6cb3f820, 0x3cff2: 0x6cb3fa20, 0x3cff3: 0x6ce3ac20, + 0x3cff4: 0x6ce3ae20, 0x3cff5: 0x6ce3b020, 0x3cff6: 0x6ce3b220, 0x3cff7: 0x6ce3b420, + 0x3cff8: 0x6ce3b620, 0x3cff9: 0x6ce3b820, 0x3cffa: 0x6d11f420, 0x3cffb: 0x6d11f620, + 0x3cffc: 0x6d11f820, 0x3cffd: 0x6d11fa20, 0x3cffe: 0x6d3ff820, 0x3cfff: 0x6d3ffa20, + // Block 0xf40, offset 0x3d000 + 0x3d000: 0x6d3ffc20, 0x3d001: 0x6d3ffe20, 0x3d002: 0x6d400020, 0x3d003: 0x6d400220, + 0x3d004: 0x6d6cea20, 0x3d005: 0x6d6cec20, 0x3d006: 0x6d6cee20, 0x3d007: 0x6d6cf020, + 0x3d008: 0x6d6cf220, 0x3d009: 0x6d6cf420, 0x3d00a: 0x6d6cf620, 0x3d00b: 0x6d95f620, + 0x3d00c: 0x6db8fc20, 0x3d00d: 0x6db8fe20, 0x3d00e: 0x6db90020, 0x3d00f: 0x6db90220, + 0x3d010: 0x6dd75220, 0x3d011: 0x6dd75420, 0x3d012: 0x6e041e20, 0x3d013: 0x6e042020, + 0x3d014: 0x6e042220, 0x3d015: 0x6e042420, 0x3d016: 0x6e154c20, 0x3d017: 0x6c0aa820, + 0x3d018: 0x6c158820, 0x3d019: 0x6c158a20, 0x3d01a: 0x6c27e620, 0x3d01b: 0x6c27e820, + 0x3d01c: 0x6c41d820, 0x3d01d: 0x6c624e20, 0x3d01e: 0x6c625020, 0x3d01f: 0x6c625220, + 0x3d020: 0x6c88e220, 0x3d021: 0x6c88e420, 0x3d022: 0x6c88e620, 0x3d023: 0x6cb46e20, + 0x3d024: 0x6cb47020, 0x3d025: 0x6ce41a20, 0x3d026: 0x6ce41c20, 0x3d027: 0x6d126420, + 0x3d028: 0x6d126620, 0x3d029: 0x6d126820, 0x3d02a: 0x6d6d4420, 0x3d02b: 0x6d6d4620, + 0x3d02c: 0x6d962e20, 0x3d02d: 0x6db93220, 0x3d02e: 0x6dd77a20, 0x3d02f: 0x6dd77c20, + 0x3d030: 0x6dd77e20, 0x3d031: 0x6e043220, 0x3d032: 0x6e433620, 0x3d033: 0x6c890420, + 0x3d034: 0x6d12b620, 0x3d035: 0x6d12b820, 0x3d036: 0x6d40c420, 0x3d037: 0x6d40c620, + 0x3d038: 0x6d40c820, 0x3d039: 0x6d6da420, 0x3d03a: 0x6db98e20, 0x3d03b: 0x6dd7ca20, + 0x3d03c: 0x6df05020, 0x3d03d: 0x6df05220, 0x3d03e: 0x6e157620, 0x3d03f: 0x6e2d3820, + // Block 0xf41, offset 0x3d040 + 0x3d040: 0x6ce46e20, 0x3d041: 0x6cb4d220, 0x3d042: 0x6ce47a20, 0x3d043: 0x6d40d220, + 0x3d044: 0x6db99e20, 0x3d045: 0x6df05420, 0x3d046: 0x6cb51a20, 0x3d047: 0x6cb51c20, + 0x3d048: 0x6cb51e20, 0x3d049: 0x6cb52020, 0x3d04a: 0x6ce51a20, 0x3d04b: 0x6ce51c20, + 0x3d04c: 0x6ce51e20, 0x3d04d: 0x6ce52020, 0x3d04e: 0x6ce52220, 0x3d04f: 0x6d139220, + 0x3d050: 0x6d139420, 0x3d051: 0x6d139620, 0x3d052: 0x6d139820, 0x3d053: 0x6d139a20, + 0x3d054: 0x6d139c20, 0x3d055: 0x6d41ac20, 0x3d056: 0x6d41ae20, 0x3d057: 0x6d41b020, + 0x3d058: 0x6d41b220, 0x3d059: 0x6d41b420, 0x3d05a: 0x6d41b620, 0x3d05b: 0x6d41b820, + 0x3d05c: 0x6d41ba20, 0x3d05d: 0x6d6ebe20, 0x3d05e: 0x6d6ec020, 0x3d05f: 0x6d6ec220, + 0x3d060: 0x6d6ec420, 0x3d061: 0x6d6ec620, 0x3d062: 0x6d6ec820, 0x3d063: 0x6d6eca20, + 0x3d064: 0x6d6ecc20, 0x3d065: 0x6d6ece20, 0x3d066: 0x6d97d820, 0x3d067: 0x6d97da20, + 0x3d068: 0x6d97dc20, 0x3d069: 0x6d97de20, 0x3d06a: 0x6d97e020, 0x3d06b: 0x6d97e220, + 0x3d06c: 0x6d97e420, 0x3d06d: 0x6d97e620, 0x3d06e: 0x6d97e820, 0x3d06f: 0x6d97ea20, + 0x3d070: 0x6dbadc20, 0x3d071: 0x6dbade20, 0x3d072: 0x6dbae020, 0x3d073: 0x6dbae220, + 0x3d074: 0x6dbae420, 0x3d075: 0x6dbae620, 0x3d076: 0x6dbae820, 0x3d077: 0x6dbaea20, + 0x3d078: 0x6dd8ea20, 0x3d079: 0x6dd8ec20, 0x3d07a: 0x6dd8ee20, 0x3d07b: 0x6dd8f020, + 0x3d07c: 0x6dd8f220, 0x3d07d: 0x6dd8f420, 0x3d07e: 0x6dd8f620, 0x3d07f: 0x6df15420, + // Block 0xf42, offset 0x3d080 + 0x3d080: 0x6df15620, 0x3d081: 0x6df15820, 0x3d082: 0x6df15a20, 0x3d083: 0x6df15c20, + 0x3d084: 0x6e057220, 0x3d085: 0x6e057420, 0x3d086: 0x6e057620, 0x3d087: 0x6e057820, + 0x3d088: 0x6e057a20, 0x3d089: 0x6e057c20, 0x3d08a: 0x6e057e20, 0x3d08b: 0x6e058020, + 0x3d08c: 0x6e058220, 0x3d08d: 0x6e058420, 0x3d08e: 0x6e058620, 0x3d08f: 0x6e164020, + 0x3d090: 0x6e164220, 0x3d091: 0x6e164420, 0x3d092: 0x6e164620, 0x3d093: 0x6e164820, + 0x3d094: 0x6e164a20, 0x3d095: 0x6e164c20, 0x3d096: 0x6e238a20, 0x3d097: 0x6e238c20, + 0x3d098: 0x6e238e20, 0x3d099: 0x6e239020, 0x3d09a: 0x6e239220, 0x3d09b: 0x6e2db420, + 0x3d09c: 0x6e2db620, 0x3d09d: 0x6e356020, 0x3d09e: 0x6e356220, 0x3d09f: 0x6e356420, + 0x3d0a0: 0x6e3ae220, 0x3d0a1: 0x6e3ae420, 0x3d0a2: 0x6e3ae620, 0x3d0a3: 0x6e3eae20, + 0x3d0a4: 0x6e415e20, 0x3d0a5: 0x6c27fc20, 0x3d0a6: 0x6c41fa20, 0x3d0a7: 0x6c629c20, + 0x3d0a8: 0x6c629e20, 0x3d0a9: 0x6c62a020, 0x3d0aa: 0x6c62a220, 0x3d0ab: 0x6c62a420, + 0x3d0ac: 0x6c897a20, 0x3d0ad: 0x6c897c20, 0x3d0ae: 0x6c897e20, 0x3d0af: 0x6cb57420, + 0x3d0b0: 0x6cb57620, 0x3d0b1: 0x6cb57820, 0x3d0b2: 0x6cb57a20, 0x3d0b3: 0x6cb57c20, + 0x3d0b4: 0x6cb57e20, 0x3d0b5: 0x6ce56a20, 0x3d0b6: 0x6ce56c20, 0x3d0b7: 0x6ce56e20, + 0x3d0b8: 0x6d13e420, 0x3d0b9: 0x6d13e620, 0x3d0ba: 0x6d13e820, 0x3d0bb: 0x6d13ea20, + 0x3d0bc: 0x6d13ec20, 0x3d0bd: 0x6d13ee20, 0x3d0be: 0x6d13f020, 0x3d0bf: 0x6d13f220, + // Block 0xf43, offset 0x3d0c0 + 0x3d0c0: 0x6d41ee20, 0x3d0c1: 0x6d41f020, 0x3d0c2: 0x6d41f220, 0x3d0c3: 0x6d41f420, + 0x3d0c4: 0x6d41f620, 0x3d0c5: 0x6d6ef620, 0x3d0c6: 0x6d6ef820, 0x3d0c7: 0x6d6efa20, + 0x3d0c8: 0x6d6efc20, 0x3d0c9: 0x6d980820, 0x3d0ca: 0x6d980a20, 0x3d0cb: 0x6dbb0c20, + 0x3d0cc: 0x6dbb0e20, 0x3d0cd: 0x6dbb1020, 0x3d0ce: 0x6dbb1220, 0x3d0cf: 0x6dbb1420, + 0x3d0d0: 0x6dd90c20, 0x3d0d1: 0x6dd90e20, 0x3d0d2: 0x6df16020, 0x3d0d3: 0x6e164e20, + 0x3d0d4: 0x6e2db820, 0x3d0d5: 0x6e356620, 0x3d0d6: 0x6d141620, 0x3d0d7: 0x6d6f1a20, + 0x3d0d8: 0x6c62b220, 0x3d0d9: 0x6cb5c220, 0x3d0da: 0x6ce5e620, 0x3d0db: 0x6ce5e820, + 0x3d0dc: 0x6d146420, 0x3d0dd: 0x6d146620, 0x3d0de: 0x6d146820, 0x3d0df: 0x6d146a20, + 0x3d0e0: 0x6d146c20, 0x3d0e1: 0x6d6f7a20, 0x3d0e2: 0x6d6f7c20, 0x3d0e3: 0x6d6f7e20, + 0x3d0e4: 0x6d6f8020, 0x3d0e5: 0x6d988820, 0x3d0e6: 0x6d988a20, 0x3d0e7: 0x6d988c20, + 0x3d0e8: 0x6dbb8420, 0x3d0e9: 0x6df1a020, 0x3d0ea: 0x6e168e20, 0x3d0eb: 0x6e3af820, + 0x3d0ec: 0x6c15a020, 0x3d0ed: 0x6c281820, 0x3d0ee: 0x6c281a20, 0x3d0ef: 0x6c281c20, + 0x3d0f0: 0x6c420c20, 0x3d0f1: 0x6c62ca20, 0x3d0f2: 0x6c899e20, 0x3d0f3: 0x6c89a020, + 0x3d0f4: 0x6cb5d820, 0x3d0f5: 0x6d147a20, 0x3d0f6: 0x6d147c20, 0x3d0f7: 0x6d426620, + 0x3d0f8: 0x6d426820, 0x3d0f9: 0x6dbb8a20, 0x3d0fa: 0x6c0ac020, 0x3d0fb: 0x6c15d020, + 0x3d0fc: 0x6c287820, 0x3d0fd: 0x6c287a20, 0x3d0fe: 0x6c426c20, 0x3d0ff: 0x6c426e20, + // Block 0xf44, offset 0x3d100 + 0x3d100: 0x6c427020, 0x3d101: 0x6c632620, 0x3d102: 0x6c632820, 0x3d103: 0x6c632a20, + 0x3d104: 0x6c8a2c20, 0x3d105: 0x6c8a2e20, 0x3d106: 0x6cb64e20, 0x3d107: 0x6cb65020, + 0x3d108: 0x6cb65220, 0x3d109: 0x6cb65420, 0x3d10a: 0x6cb65620, 0x3d10b: 0x6cb65820, + 0x3d10c: 0x6cb65a20, 0x3d10d: 0x6cb65c20, 0x3d10e: 0x6ce68620, 0x3d10f: 0x6ce68820, + 0x3d110: 0x6d14d620, 0x3d111: 0x6d14d820, 0x3d112: 0x6d14da20, 0x3d113: 0x6d14dc20, + 0x3d114: 0x6d42c420, 0x3d115: 0x6d42c620, 0x3d116: 0x6d42c820, 0x3d117: 0x6d42ca20, + 0x3d118: 0x6dd98420, 0x3d119: 0x6d6fca20, 0x3d11a: 0x6ce6bc20, 0x3d11b: 0x6d430a20, + 0x3d11c: 0x6dd9ba20, 0x3d11d: 0x6c8a4620, 0x3d11e: 0x6cb69620, 0x3d11f: 0x6ce6f220, + 0x3d120: 0x6ce6f420, 0x3d121: 0x6d155020, 0x3d122: 0x6d155220, 0x3d123: 0x6d434c20, + 0x3d124: 0x6d434e20, 0x3d125: 0x6d704a20, 0x3d126: 0x6d704c20, 0x3d127: 0x6d997620, + 0x3d128: 0x6d997820, 0x3d129: 0x6dbc4e20, 0x3d12a: 0x6dbc5020, 0x3d12b: 0x6dda1a20, + 0x3d12c: 0x6df23220, 0x3d12d: 0x6df23420, 0x3d12e: 0x6e066820, 0x3d12f: 0x6e066a20, + 0x3d130: 0x6e066c20, 0x3d131: 0x6e066e20, 0x3d132: 0x6e16ea20, 0x3d133: 0x6e240820, + 0x3d134: 0x6e240a20, 0x3d135: 0x6e35ae20, 0x3d136: 0x6e35b020, 0x3d137: 0x6e44b220, + 0x3d138: 0x6cb69a20, 0x3d139: 0x6d156020, 0x3d13a: 0x6d156220, 0x3d13b: 0x6d998220, + 0x3d13c: 0x6df23820, 0x3d13d: 0x6d435a20, 0x3d13e: 0x6e16ee20, 0x3d13f: 0x6e3b1c20, + // Block 0xf45, offset 0x3d140 + 0x3d140: 0x6d437c20, 0x3d141: 0x6d707020, 0x3d142: 0x6d99a020, 0x3d143: 0x6dda2e20, + 0x3d144: 0x6e170820, 0x3d145: 0x6d43d420, 0x3d146: 0x6d43d620, 0x3d147: 0x6d70be20, + 0x3d148: 0x6d70c020, 0x3d149: 0x6e06d220, 0x3d14a: 0x6e173e20, 0x3d14b: 0x6e244420, + 0x3d14c: 0x6c8a4e20, 0x3d14d: 0x6d15d220, 0x3d14e: 0x6dbce620, 0x3d14f: 0x6e06e820, + 0x3d150: 0x6e35d620, 0x3d151: 0x6c428420, 0x3d152: 0x6c8a5020, 0x3d153: 0x6ce73a20, + 0x3d154: 0x6d43fe20, 0x3d155: 0x6d440020, 0x3d156: 0x6d9a0220, 0x3d157: 0x6d15f020, + 0x3d158: 0x6d441020, 0x3d159: 0x6ddad820, 0x3d15a: 0x6e070420, 0x3d15b: 0x6e176420, + 0x3d15c: 0x6e3b3420, 0x3d15d: 0x6d163c20, 0x3d15e: 0x6d447020, 0x3d15f: 0x6d9aae20, + 0x3d160: 0x6d9ab020, 0x3d161: 0x6dbd6820, 0x3d162: 0x6ddb3a20, 0x3d163: 0x6ddb3c20, + 0x3d164: 0x6df33620, 0x3d165: 0x6e074420, 0x3d166: 0x6e074620, 0x3d167: 0x6e17a820, + 0x3d168: 0x6e248e20, 0x3d169: 0x6e35f020, 0x3d16a: 0x6c634c20, 0x3d16b: 0x6c8a6420, + 0x3d16c: 0x6cb6c820, 0x3d16d: 0x6cb6ca20, 0x3d16e: 0x6ce77020, 0x3d16f: 0x6ce77220, + 0x3d170: 0x6ce77420, 0x3d171: 0x6ce77620, 0x3d172: 0x6d164c20, 0x3d173: 0x6d164e20, + 0x3d174: 0x6d447820, 0x3d175: 0x6d447a20, 0x3d176: 0x6d447c20, 0x3d177: 0x6d716a20, + 0x3d178: 0x6d9aba20, 0x3d179: 0x6dbd6a20, 0x3d17a: 0x6e17ac20, 0x3d17b: 0x6d167e20, + 0x3d17c: 0x6d44b420, 0x3d17d: 0x6dbdb620, 0x3d17e: 0x6ddb8220, 0x3d17f: 0x6ddb8420, + // Block 0xf46, offset 0x3d180 + 0x3d180: 0x6df37220, 0x3d181: 0x6df37420, 0x3d182: 0x6df37620, 0x3d183: 0x6e249e20, + 0x3d184: 0x6e24a020, 0x3d185: 0x6e2e7620, 0x3d186: 0x6e35fe20, 0x3d187: 0x6c428a20, + 0x3d188: 0x6cb6d420, 0x3d189: 0x6ce79620, 0x3d18a: 0x6d168620, 0x3d18b: 0x6dbdba20, + 0x3d18c: 0x6dbdbe20, 0x3d18d: 0x6ce7d620, 0x3d18e: 0x6d16f220, 0x3d18f: 0x6d451820, + 0x3d190: 0x6d451a20, 0x3d191: 0x6d451c20, 0x3d192: 0x6d451e20, 0x3d193: 0x6d71fc20, + 0x3d194: 0x6dbe3c20, 0x3d195: 0x6dbe3e20, 0x3d196: 0x6dbe4020, 0x3d197: 0x6dbe4220, + 0x3d198: 0x6ddbf820, 0x3d199: 0x6df3e020, 0x3d19a: 0x6df3e220, 0x3d19b: 0x6e07c020, + 0x3d19c: 0x6e24d820, 0x3d19d: 0x6e24da20, 0x3d19e: 0x6c15d820, 0x3d19f: 0x6c289420, + 0x3d1a0: 0x6c289620, 0x3d1a1: 0x6c42a820, 0x3d1a2: 0x6c42aa20, 0x3d1a3: 0x6c42ac20, + 0x3d1a4: 0x6c637a20, 0x3d1a5: 0x6c637c20, 0x3d1a6: 0x6c8a8620, 0x3d1a7: 0x6c8a8820, + 0x3d1a8: 0x6c8a8a20, 0x3d1a9: 0x6cb70820, 0x3d1aa: 0x6cb70a20, 0x3d1ab: 0x6ce7e420, + 0x3d1ac: 0x6ce7e620, 0x3d1ad: 0x6ce7e820, 0x3d1ae: 0x6ce7ea20, 0x3d1af: 0x6ce7ec20, + 0x3d1b0: 0x6d170220, 0x3d1b1: 0x6d170420, 0x3d1b2: 0x6d720420, 0x3d1b3: 0x6d720620, + 0x3d1b4: 0x6d9b8e20, 0x3d1b5: 0x6e07c420, 0x3d1b6: 0x6d453220, 0x3d1b7: 0x6d9b9e20, + 0x3d1b8: 0x6dbe4e20, 0x3d1b9: 0x6df3ea20, 0x3d1ba: 0x6e07c820, 0x3d1bb: 0x6e361820, + 0x3d1bc: 0x6d722020, 0x3d1bd: 0x6d722220, 0x3d1be: 0x6dbe6420, 0x3d1bf: 0x6ddc1420, + // Block 0xf47, offset 0x3d1c0 + 0x3d1c0: 0x6e07d420, 0x3d1c1: 0x6e07d620, 0x3d1c2: 0x6e183020, 0x3d1c3: 0x6e24e220, + 0x3d1c4: 0x6e44be20, 0x3d1c5: 0x6d173020, 0x3d1c6: 0x6d45a420, 0x3d1c7: 0x6d45a620, + 0x3d1c8: 0x6d45a820, 0x3d1c9: 0x6d45aa20, 0x3d1ca: 0x6d9c2e20, 0x3d1cb: 0x6ddc9e20, + 0x3d1cc: 0x6ddca020, 0x3d1cd: 0x6ddca220, 0x3d1ce: 0x6ddca420, 0x3d1cf: 0x6df47c20, + 0x3d1d0: 0x6df47e20, 0x3d1d1: 0x6df48020, 0x3d1d2: 0x6e086220, 0x3d1d3: 0x6e086420, + 0x3d1d4: 0x6e086620, 0x3d1d5: 0x6e086820, 0x3d1d6: 0x6e086a20, 0x3d1d7: 0x6e254220, + 0x3d1d8: 0x6e2ee220, 0x3d1d9: 0x6e364020, 0x3d1da: 0x6e41b420, 0x3d1db: 0x6c15e020, + 0x3d1dc: 0x6c28a220, 0x3d1dd: 0x6c28a420, 0x3d1de: 0x6c42d620, 0x3d1df: 0x6c42d820, + 0x3d1e0: 0x6c63a620, 0x3d1e1: 0x6c63a820, 0x3d1e2: 0x6c8aa820, 0x3d1e3: 0x6c8aaa20, + 0x3d1e4: 0x6c8aac20, 0x3d1e5: 0x6cb72820, 0x3d1e6: 0x6cb72a20, 0x3d1e7: 0x6cb72c20, + 0x3d1e8: 0x6ce82620, 0x3d1e9: 0x6ce82820, 0x3d1ea: 0x6d174220, 0x3d1eb: 0x6d174420, + 0x3d1ec: 0x6d174620, 0x3d1ed: 0x6d45b220, 0x3d1ee: 0x6d45b420, 0x3d1ef: 0x6d72b020, + 0x3d1f0: 0x6d9c3220, 0x3d1f1: 0x6e189020, 0x3d1f2: 0x6d72e020, 0x3d1f3: 0x6ddcd620, + 0x3d1f4: 0x6ddcd820, 0x3d1f5: 0x6ce84020, 0x3d1f6: 0x6d72ec20, 0x3d1f7: 0x6d9c7820, + 0x3d1f8: 0x6cb73820, 0x3d1f9: 0x6d178820, 0x3d1fa: 0x6d178a20, 0x3d1fb: 0x6d463a20, + 0x3d1fc: 0x6d734220, 0x3d1fd: 0x6d9cbe20, 0x3d1fe: 0x6dbf5020, 0x3d1ff: 0x6dbf5220, + // Block 0xf48, offset 0x3d200 + 0x3d200: 0x6ddd3420, 0x3d201: 0x6ddd3620, 0x3d202: 0x6df4f820, 0x3d203: 0x6e18e620, + 0x3d204: 0x6d464c20, 0x3d205: 0x6d735220, 0x3d206: 0x6e190420, 0x3d207: 0x6e439e20, + 0x3d208: 0x6cb74220, 0x3d209: 0x6d17c220, 0x3d20a: 0x6d738420, 0x3d20b: 0x6d9d0c20, + 0x3d20c: 0x6dbf8c20, 0x3d20d: 0x6dbf8e20, 0x3d20e: 0x6e193220, 0x3d20f: 0x6d17de20, + 0x3d210: 0x6d46b420, 0x3d211: 0x6d740620, 0x3d212: 0x6d740820, 0x3d213: 0x6d9da220, + 0x3d214: 0x6d9da420, 0x3d215: 0x6d9da620, 0x3d216: 0x6d9da820, 0x3d217: 0x6d9daa20, + 0x3d218: 0x6dc02a20, 0x3d219: 0x6dc02c20, 0x3d21a: 0x6dc02e20, 0x3d21b: 0x6dc03020, + 0x3d21c: 0x6dc03220, 0x3d21d: 0x6dc03420, 0x3d21e: 0x6dc03620, 0x3d21f: 0x6dc03820, + 0x3d220: 0x6dde2620, 0x3d221: 0x6dde2820, 0x3d222: 0x6dde2a20, 0x3d223: 0x6dde2c20, + 0x3d224: 0x6df61420, 0x3d225: 0x6df61620, 0x3d226: 0x6df61820, 0x3d227: 0x6df61a20, + 0x3d228: 0x6e09e020, 0x3d229: 0x6e09e220, 0x3d22a: 0x6e09e420, 0x3d22b: 0x6e19e620, + 0x3d22c: 0x6e19e820, 0x3d22d: 0x6e19ea20, 0x3d22e: 0x6e19ec20, 0x3d22f: 0x6e19ee20, + 0x3d230: 0x6e266420, 0x3d231: 0x6e266620, 0x3d232: 0x6e266820, 0x3d233: 0x6e266a20, + 0x3d234: 0x6e266c20, 0x3d235: 0x6e266e20, 0x3d236: 0x6e267020, 0x3d237: 0x6e2fce20, + 0x3d238: 0x6e2fd020, 0x3d239: 0x6e2fd220, 0x3d23a: 0x6e2fd420, 0x3d23b: 0x6e2fd620, + 0x3d23c: 0x6e2fd820, 0x3d23d: 0x6e370820, 0x3d23e: 0x6e370a20, 0x3d23f: 0x6e370c20, + // Block 0xf49, offset 0x3d240 + 0x3d240: 0x6e370e20, 0x3d241: 0x6e371020, 0x3d242: 0x6e3be220, 0x3d243: 0x6e3be420, + 0x3d244: 0x6e3f8420, 0x3d245: 0x6e43be20, 0x3d246: 0x6e458a20, 0x3d247: 0x6e466220, + 0x3d248: 0x6cb74c20, 0x3d249: 0x6cb74e20, 0x3d24a: 0x6cb75020, 0x3d24b: 0x6ce87e20, + 0x3d24c: 0x6ce88020, 0x3d24d: 0x6ce88220, 0x3d24e: 0x6d17fc20, 0x3d24f: 0x6d17fe20, + 0x3d250: 0x6d180020, 0x3d251: 0x6d180220, 0x3d252: 0x6c8ac220, 0x3d253: 0x6d46dc20, + 0x3d254: 0x6d46de20, 0x3d255: 0x6d46e020, 0x3d256: 0x6d46e220, 0x3d257: 0x6d46e420, + 0x3d258: 0x6d46e620, 0x3d259: 0x6d743020, 0x3d25a: 0x6d743220, 0x3d25b: 0x6d743420, + 0x3d25c: 0x6d9dd620, 0x3d25d: 0x6d9dd820, 0x3d25e: 0x6d9dda20, 0x3d25f: 0x6d9ddc20, + 0x3d260: 0x6d9dde20, 0x3d261: 0x6d9de020, 0x3d262: 0x6dc05e20, 0x3d263: 0x6dc06020, + 0x3d264: 0x6dc06220, 0x3d265: 0x6dc06420, 0x3d266: 0x6dde3c20, 0x3d267: 0x6df63220, + 0x3d268: 0x6df63420, 0x3d269: 0x6e09f420, 0x3d26a: 0x6e09f620, 0x3d26b: 0x6e1a0220, + 0x3d26c: 0x6e267620, 0x3d26d: 0x6e2fde20, 0x3d26e: 0x6ce88e20, 0x3d26f: 0x6d74d620, + 0x3d270: 0x6d74d820, 0x3d271: 0x6d74da20, 0x3d272: 0x6d74dc20, 0x3d273: 0x6d9eae20, + 0x3d274: 0x6d9eb020, 0x3d275: 0x6d9eb220, 0x3d276: 0x6d9eb420, 0x3d277: 0x6d9eb620, + 0x3d278: 0x6dc12a20, 0x3d279: 0x6dc12c20, 0x3d27a: 0x6dc12e20, 0x3d27b: 0x6dc13020, + 0x3d27c: 0x6ddedc20, 0x3d27d: 0x6ddede20, 0x3d27e: 0x6ddee020, 0x3d27f: 0x6ddee220, + // Block 0xf4a, offset 0x3d280 + 0x3d280: 0x6ddee420, 0x3d281: 0x6df71e20, 0x3d282: 0x6df72020, 0x3d283: 0x6df72220, + 0x3d284: 0x6df72420, 0x3d285: 0x6df72620, 0x3d286: 0x6df72820, 0x3d287: 0x6df72a20, + 0x3d288: 0x6df72c20, 0x3d289: 0x6e0acc20, 0x3d28a: 0x6e0ace20, 0x3d28b: 0x6e0ad020, + 0x3d28c: 0x6e1aba20, 0x3d28d: 0x6e1abc20, 0x3d28e: 0x6e1abe20, 0x3d28f: 0x6e1ac020, + 0x3d290: 0x6e272c20, 0x3d291: 0x6e309e20, 0x3d292: 0x6e30a020, 0x3d293: 0x6e30a220, + 0x3d294: 0x6e30a420, 0x3d295: 0x6e30a620, 0x3d296: 0x6e378820, 0x3d297: 0x6e3c3020, + 0x3d298: 0x6e3fb820, 0x3d299: 0x6e459e20, 0x3d29a: 0x6c63be20, 0x3d29b: 0x6c63c020, + 0x3d29c: 0x6c63c220, 0x3d29d: 0x6c63c420, 0x3d29e: 0x6c63c620, 0x3d29f: 0x6c8ae020, + 0x3d2a0: 0x6c8ae220, 0x3d2a1: 0x6c8ae420, 0x3d2a2: 0x6c8ae620, 0x3d2a3: 0x6c8ae820, + 0x3d2a4: 0x6c8aea20, 0x3d2a5: 0x6cb77620, 0x3d2a6: 0x6cb77820, 0x3d2a7: 0x6cb77a20, + 0x3d2a8: 0x6cb77c20, 0x3d2a9: 0x6cb77e20, 0x3d2aa: 0x6cb78020, 0x3d2ab: 0x6ce8a620, + 0x3d2ac: 0x6ce8a820, 0x3d2ad: 0x6ce8aa20, 0x3d2ae: 0x6ce8ac20, 0x3d2af: 0x6ce8ae20, + 0x3d2b0: 0x6d184a20, 0x3d2b1: 0x6d184c20, 0x3d2b2: 0x6d184e20, 0x3d2b3: 0x6d185020, + 0x3d2b4: 0x6d185220, 0x3d2b5: 0x6d185420, 0x3d2b6: 0x6d473820, 0x3d2b7: 0x6d473a20, + 0x3d2b8: 0x6d473c20, 0x3d2b9: 0x6d473e20, 0x3d2ba: 0x6d474020, 0x3d2bb: 0x6d474220, + 0x3d2bc: 0x6d474420, 0x3d2bd: 0x6d74fa20, 0x3d2be: 0x6d74fc20, 0x3d2bf: 0x6d9ec220, + // Block 0xf4b, offset 0x3d2c0 + 0x3d2c0: 0x6d9ec420, 0x3d2c1: 0x6d9ec620, 0x3d2c2: 0x6d9ec820, 0x3d2c3: 0x6dc14020, + 0x3d2c4: 0x6dc14220, 0x3d2c5: 0x6ddeee20, 0x3d2c6: 0x6df73420, 0x3d2c7: 0x6dc14620, + 0x3d2c8: 0x6ddef820, 0x3d2c9: 0x6e0aea20, 0x3d2ca: 0x6d9eda20, 0x3d2cb: 0x6d186020, + 0x3d2cc: 0x6d752e20, 0x3d2cd: 0x6dc16c20, 0x3d2ce: 0x6ddf2620, 0x3d2cf: 0x6e30c620, + 0x3d2d0: 0x6df79820, 0x3d2d1: 0x6cb79220, 0x3d2d2: 0x6ce8b220, 0x3d2d3: 0x6d476220, + 0x3d2d4: 0x6d756020, 0x3d2d5: 0x6dc18a20, 0x3d2d6: 0x6dc19220, 0x3d2d7: 0x6df7a220, + 0x3d2d8: 0x6d757c20, 0x3d2d9: 0x6e0b8620, 0x3d2da: 0x6e0b8820, 0x3d2db: 0x6e1b5e20, + 0x3d2dc: 0x6d9f7420, 0x3d2dd: 0x6df7f420, 0x3d2de: 0x6e3c7820, 0x3d2df: 0x6dc1f620, + 0x3d2e0: 0x6d75ac20, 0x3d2e1: 0x6e27c420, 0x3d2e2: 0x6d477e20, 0x3d2e3: 0x6e3c9020, + 0x3d2e4: 0x6ddfea20, 0x3d2e5: 0x6e1bde20, 0x3d2e6: 0x6e283420, 0x3d2e7: 0x6e427220, + 0x3d2e8: 0x6ce8c620, 0x3d2e9: 0x6d478c20, 0x3d2ea: 0x6d478e20, 0x3d2eb: 0x6d75be20, + 0x3d2ec: 0x6d9f9620, 0x3d2ed: 0x6d9f9820, 0x3d2ee: 0x6dc24020, 0x3d2ef: 0x6ddffe20, + 0x3d2f0: 0x6e1be020, 0x3d2f1: 0x6e318020, 0x3d2f2: 0x6d75c020, 0x3d2f3: 0x6ce8c820, + 0x3d2f4: 0x6e451220, + // Block 0xf4c, offset 0x3d300 + 0x3d300: 0x6c00f420, 0x3d301: 0x6c0ae820, 0x3d302: 0x6c15fe20, 0x3d303: 0x6d189620, + 0x3d304: 0x6c011820, 0x3d305: 0x6c0b6620, 0x3d306: 0x6c060c20, 0x3d307: 0x6c2a2820, + 0x3d308: 0x6c2a2a20, 0x3d309: 0x6c656c20, 0x3d30a: 0x6c8c6420, 0x3d30b: 0x6ce9e020, + 0x3d30c: 0x6c446a20, 0x3d30d: 0x6c448e20, 0x3d30e: 0x6c44d020, 0x3d30f: 0x6c8cbc20, + 0x3d310: 0x6c454c20, 0x3d311: 0x6ceac020, 0x3d312: 0x6c18be20, 0x3d313: 0x6c2bd220, + 0x3d314: 0x6c45cc20, 0x3d315: 0x6c190220, 0x3d316: 0x6c676c20, 0x3d317: 0x6c676e20, + 0x3d318: 0x6c0e9420, 0x3d319: 0x6c47da20, 0x3d31a: 0x6d1cea20, 0x3d31b: 0x6d4ab420, + 0x3d31c: 0x6da17c20, 0x3d31d: 0x6dc3da20, 0x3d31e: 0x6e1c7220, 0x3d31f: 0x6cbd8420, + 0x3d320: 0x6d1df020, 0x3d321: 0x6d78fe20, 0x3d322: 0x6c0f2a20, 0x3d323: 0x6c1b8820, + 0x3d324: 0x6c6ae820, 0x3d325: 0x6d793620, 0x3d326: 0x6c1c6020, 0x3d327: 0x6c4a1620, + 0x3d328: 0x6c4a1820, 0x3d329: 0x6c6bd620, 0x3d32a: 0x6c6bd820, 0x3d32b: 0x6c6bda20, + 0x3d32c: 0x6cbf4020, 0x3d32d: 0x6d1f2620, 0x3d32e: 0x6d4cb420, 0x3d32f: 0x6d4cc620, + 0x3d330: 0x6d1faa20, 0x3d331: 0x6d4d2020, 0x3d332: 0x6c102620, 0x3d333: 0x6c109020, + 0x3d334: 0x6c4bca20, 0x3d335: 0x6c6de020, 0x3d336: 0x6c964c20, 0x3d337: 0x6c964e20, + 0x3d338: 0x6c4d3a20, 0x3d339: 0x6c1ffa20, 0x3d33a: 0x6c352c20, 0x3d33b: 0x6c502820, + 0x3d33c: 0x6cc66a20, 0x3d33d: 0x6cf51a20, 0x3d33e: 0x6d24e420, 0x3d33f: 0x6dc6b420, + // Block 0xf4d, offset 0x3d340 + 0x3d340: 0x6c9b6c20, 0x3d341: 0x6cf5cc20, 0x3d342: 0x6c515820, 0x3d343: 0x6c515a20, + 0x3d344: 0x6c738a20, 0x3d345: 0x6c73bc20, 0x3d346: 0x6cc88020, 0x3d347: 0x6cc88220, + 0x3d348: 0x6c376220, 0x3d349: 0x6c754420, 0x3d34a: 0x6c754620, 0x3d34b: 0x6d27fc20, + 0x3d34c: 0x6d27fe20, 0x3d34d: 0x6d554c20, 0x3d34e: 0x6d554e20, 0x3d34f: 0x6d555020, + 0x3d350: 0x6d80ce20, 0x3d351: 0x6da6f020, 0x3d352: 0x6dc84a20, 0x3d353: 0x6cf92020, + 0x3d354: 0x6d55c820, 0x3d355: 0x6c098820, 0x3d356: 0x6c12e820, 0x3d357: 0x6c77e820, + 0x3d358: 0x6ca0dc20, 0x3d359: 0x6cfbd020, 0x3d35a: 0x6cfbd220, 0x3d35b: 0x6cfbd420, + 0x3d35c: 0x6d580820, 0x3d35d: 0x6d82fa20, 0x3d35e: 0x6de56e20, 0x3d35f: 0x6c78c820, + 0x3d360: 0x6ca1ca20, 0x3d361: 0x6d2bd820, 0x3d362: 0x6c569420, 0x3d363: 0x6c3b3620, + 0x3d364: 0x6ca2d420, 0x3d365: 0x6c3baa20, 0x3d366: 0x6c7a7020, 0x3d367: 0x6cd15e20, + 0x3d368: 0x6d2d8420, 0x3d369: 0x6d5ab020, 0x3d36a: 0x6c580820, 0x3d36b: 0x6ca41820, + 0x3d36c: 0x6c7ba220, 0x3d36d: 0x6d5bd620, 0x3d36e: 0x6c7bd220, 0x3d36f: 0x6c3c7420, + 0x3d370: 0x6c597220, 0x3d371: 0x6d012e20, 0x3d372: 0x6c7cd420, 0x3d373: 0x6ca59020, + 0x3d374: 0x6c7e2c20, 0x3d375: 0x6ca6f220, 0x3d376: 0x6d883020, 0x3d377: 0x6ca77620, + 0x3d378: 0x6d042820, 0x3d379: 0x6c258820, 0x3d37a: 0x6e1f7c20, 0x3d37b: 0x6c259220, + 0x3d37c: 0x6ca7e620, 0x3d37d: 0x6d5fe820, 0x3d37e: 0x6d5fea20, 0x3d37f: 0x6d5fec20, + // Block 0xf4e, offset 0x3d380 + 0x3d380: 0x6daf1e20, 0x3d381: 0x6d617a20, 0x3d382: 0x6dcf7a20, 0x3d383: 0x6c5cc220, + 0x3d384: 0x6c80c220, 0x3d385: 0x6ca9e020, 0x3d386: 0x6cd85020, 0x3d387: 0x6daff220, + 0x3d388: 0x6c5d0a20, 0x3d389: 0x6c3e5a20, 0x3d38a: 0x6d36e220, 0x3d38b: 0x6cdaaa20, + 0x3d38c: 0x6c5f8e20, 0x3d38d: 0x6c5f9020, 0x3d38e: 0x6c84c220, 0x3d38f: 0x6cae1620, + 0x3d390: 0x6cae1820, 0x3d391: 0x6cae1a20, 0x3d392: 0x6d0bb420, 0x3d393: 0x6d0bb620, + 0x3d394: 0x6d39b620, 0x3d395: 0x6d65ee20, 0x3d396: 0x6d8fc220, 0x3d397: 0x6e01da20, + 0x3d398: 0x6d675620, 0x3d399: 0x6db4d820, 0x3d39a: 0x6cdef620, 0x3d39b: 0x6cdf0620, + 0x3d39c: 0x6e2c3a20, 0x3d39d: 0x6e221220, 0x3d39e: 0x6c14fe20, 0x3d39f: 0x6c26e420, + 0x3d3a0: 0x6c86c020, 0x3d3a1: 0x6c86c220, 0x3d3a2: 0x6ce04620, 0x3d3a3: 0x6def6620, + 0x3d3a4: 0x6c616420, 0x3d3a5: 0x6d3f6620, 0x3d3a6: 0x6db89c20, 0x3d3a7: 0x6c0a8a20, + 0x3d3a8: 0x6ce3ba20, 0x3d3a9: 0x6ce3bc20, 0x3d3aa: 0x6d95f820, 0x3d3ab: 0x6c27ea20, + 0x3d3ac: 0x6c88e820, 0x3d3ad: 0x6cb47220, 0x3d3ae: 0x6d12ba20, 0x3d3af: 0x6c626020, + 0x3d3b0: 0x6d41bc20, 0x3d3b1: 0x6dd8f820, 0x3d3b2: 0x6c27fe20, 0x3d3b3: 0x6c41fc20, + 0x3d3b4: 0x6c62a620, 0x3d3b5: 0x6c62a820, 0x3d3b6: 0x6c898020, 0x3d3b7: 0x6c898220, + 0x3d3b8: 0x6cb58020, 0x3d3b9: 0x6cb58220, 0x3d3ba: 0x6cb58420, 0x3d3bb: 0x6cb58620, + 0x3d3bc: 0x6ce57020, 0x3d3bd: 0x6d13f420, 0x3d3be: 0x6d41f820, 0x3d3bf: 0x6d41fa20, + // Block 0xf4f, offset 0x3d3c0 + 0x3d3c0: 0x6d6efe20, 0x3d3c1: 0x6df16220, 0x3d3c2: 0x6c420e20, 0x3d3c3: 0x6cb65e20, + 0x3d3c4: 0x6d70de20, 0x3d3c5: 0x6d15dc20, 0x3d3c6: 0x6c8a6620, 0x3d3c7: 0x6c428c20, + 0x3d3c8: 0x6c635a20, 0x3d3c9: 0x6c8a9220, 0x3d3ca: 0x6c42da20, 0x3d3cb: 0x6d45b620, + 0x3d3cc: 0x6d9c3420, 0x3d3cd: 0x6e19f020, 0x3d3ce: 0x6e371220, 0x3d3cf: 0x6ce88420, + 0x3d3d0: 0x6d180420, 0x3d3d1: 0x6dc06620, 0x3d3d2: 0x6df63620, 0x3d3d3: 0x6cb75420, + 0x3d3d4: 0x6d9eb820, 0x3d3d5: 0x6e272e20, 0x3d3d6: 0x6c63c820, 0x3d3d7: 0x6d750a20, + 0x3d3d8: 0x6ddfda20, 0x3d3d9: 0x6df85820, 0x3d3da: 0x6d188a20, 0x3d3db: 0x6e383e20, + 0x3d3dc: 0x6d9f9a20, 0x3d3dd: 0x6e441c20, + // Block 0xf50, offset 0x3d400 + 0x3d400: 0x6c15ea20, 0x3d401: 0x6c00fe20, 0x3d402: 0x6c000c20, 0x3d403: 0x6c0b4420, + 0x3d404: 0x6c16ba20, 0x3d405: 0x6c435e20, 0x3d406: 0x6c437820, 0x3d407: 0x6c645620, + 0x3d408: 0x6c8bba20, 0x3d409: 0x6cb81c20, 0x3d40a: 0x6d18fe20, 0x3d40b: 0x6d18ce20, + 0x3d40c: 0x6d9fac20, 0x3d40d: 0x6c0ccc20, 0x3d40e: 0x6c173820, 0x3d40f: 0x6c2a3220, + 0x3d410: 0x6e0c6420, 0x3d411: 0x6c2a5220, 0x3d412: 0x6c8c8020, 0x3d413: 0x6df89620, + 0x3d414: 0x6c02ce20, 0x3d415: 0x6c0c7820, 0x3d416: 0x6c0c7c20, 0x3d417: 0x6c02fe20, + 0x3d418: 0x6c65aa20, 0x3d419: 0x6c02ae20, 0x3d41a: 0x6c064a20, 0x3d41b: 0x6c179020, + 0x3d41c: 0x6dbc5420, 0x3d41d: 0x6c009a20, 0x3d41e: 0x6c015a20, 0x3d41f: 0x6c17da20, + 0x3d420: 0x6c2ae220, 0x3d421: 0x6c2b4a20, 0x3d422: 0x6cb95220, 0x3d423: 0x6cea4020, + 0x3d424: 0x6c0d3c20, 0x3d425: 0x6c455c20, 0x3d426: 0x6c456020, 0x3d427: 0x6cea9c20, + 0x3d428: 0x6c016420, 0x3d429: 0x6c06b820, 0x3d42a: 0x6c06ba20, 0x3d42b: 0x6c06c620, + 0x3d42c: 0x6c06d220, 0x3d42d: 0x6c2bac20, 0x3d42e: 0x6cb9f220, 0x3d42f: 0x6c18d420, + 0x3d430: 0x6c45e820, 0x3d431: 0x6c673020, 0x3d432: 0x6c673020, 0x3d433: 0x6c673020, + 0x3d434: 0x6c038e20, 0x3d435: 0x6c135e20, 0x3d436: 0x6c03a020, 0x3d437: 0x6c677e20, + 0x3d438: 0x6c8e0c20, 0x3d439: 0x6c074420, 0x3d43a: 0x6c075020, 0x3d43b: 0x6c0e3020, + 0x3d43c: 0x6c468620, 0x3d43d: 0x6c197e20, 0x3d43e: 0x6c199e20, 0x3d43f: 0x6c2c7e20, + // Block 0xf51, offset 0x3d440 + 0x3d440: 0x6c468e20, 0x3d441: 0x6c67e620, 0x3d442: 0x6c681820, 0x3d443: 0x6c8e9620, + 0x3d444: 0x6c8eb220, 0x3d445: 0x6cbaaa20, 0x3d446: 0x6cbaaa20, 0x3d447: 0x6cbad220, + 0x3d448: 0x6cbaf620, 0x3d449: 0x6cbb0620, 0x3d44a: 0x6ceb7620, 0x3d44b: 0x6d1cf220, + 0x3d44c: 0x6d1b7220, 0x3d44d: 0x6d1cf420, 0x3d44e: 0x6d1bb220, 0x3d44f: 0x6d49c620, + 0x3d450: 0x6c032820, 0x3d451: 0x6c0f0e20, 0x3d452: 0x6c486820, 0x3d453: 0x6c908220, + 0x3d454: 0x6c90b420, 0x3d455: 0x6c481220, 0x3d456: 0x6c6a6e20, 0x3d457: 0x6cbcb020, + 0x3d458: 0x6d4af820, 0x3d459: 0x6de13e20, 0x3d45a: 0x6c1b6c20, 0x3d45b: 0x6c916220, + 0x3d45c: 0x6c1b7420, 0x3d45d: 0x6c0f1e20, 0x3d45e: 0x6d1e1020, 0x3d45f: 0x6c91d420, + 0x3d460: 0x6c080620, 0x3d461: 0x6c2f9020, 0x3d462: 0x6c6b1820, 0x3d463: 0x6c6b3c20, + 0x3d464: 0x6c6b5420, 0x3d465: 0x6c495620, 0x3d466: 0x6c924e20, 0x3d467: 0x6cbdf220, + 0x3d468: 0x6cbe0e20, 0x3d469: 0x6d4c1220, 0x3d46a: 0x6de16420, 0x3d46b: 0x6de16420, + 0x3d46c: 0x6c0fdc20, 0x3d46d: 0x6c933820, 0x3d46e: 0x6cefa820, 0x3d46f: 0x6d1f5620, + 0x3d470: 0x6de19a20, 0x3d471: 0x6e3d2020, 0x3d472: 0x6c1cc220, 0x3d473: 0x6c4a9220, + 0x3d474: 0x6c114a20, 0x3d475: 0x6c01ac20, 0x3d476: 0x6c4abc20, 0x3d477: 0x6c941020, + 0x3d478: 0x6c01b620, 0x3d479: 0x6c311420, 0x3d47a: 0x6c1dd220, 0x3d47b: 0x6c6d7820, + 0x3d47c: 0x6cc0a820, 0x3d47d: 0x6c6d7c20, 0x3d47e: 0x6cf09a20, 0x3d47f: 0x6cc16a20, + // Block 0xf52, offset 0x3d480 + 0x3d480: 0x6d202220, 0x3d481: 0x6c272c20, 0x3d482: 0x6c954a20, 0x3d483: 0x6c08a020, + 0x3d484: 0x6cc17820, 0x3d485: 0x6c6e0020, 0x3d486: 0x6cc19820, 0x3d487: 0x6d4ea820, + 0x3d488: 0x6d7ae820, 0x3d489: 0x6e320a20, 0x3d48a: 0x6c4c6820, 0x3d48b: 0x6c4cac20, + 0x3d48c: 0x6c95e620, 0x3d48d: 0x6c95ec20, 0x3d48e: 0x6cc21820, 0x3d48f: 0x6d476820, + 0x3d490: 0x6c01d820, 0x3d491: 0x6c111220, 0x3d492: 0x6c111220, 0x3d493: 0x6c82fe20, + 0x3d494: 0x6c326a20, 0x3d495: 0x6c326a20, 0x3d496: 0x6c329a20, 0x3d497: 0x6d7ea620, + 0x3d498: 0x6e201a20, 0x3d499: 0x6c1ee020, 0x3d49a: 0x6c96ae20, 0x3d49b: 0x6c6f1420, + 0x3d49c: 0x6cc2ca20, 0x3d49d: 0x6c1f2220, 0x3d49e: 0x6c1f2c20, 0x3d49f: 0x6c1f6c20, + 0x3d4a0: 0x6c6fa220, 0x3d4a1: 0x6c4dbe20, 0x3d4a2: 0x6c4da620, 0x3d4a3: 0x6c6fc020, + 0x3d4a4: 0x6c97fe20, 0x3d4a5: 0x6c97a020, 0x3d4a6: 0x6d222420, 0x3d4a7: 0x6cf2ac20, + 0x3d4a8: 0x6cf2b020, 0x3d4a9: 0x6cf2ac20, 0x3d4aa: 0x6d226c20, 0x3d4ab: 0x6d4fb820, + 0x3d4ac: 0x6d7bcc20, 0x3d4ad: 0x6d4fd820, 0x3d4ae: 0x6d4fe820, 0x3d4af: 0x6da3f620, + 0x3d4b0: 0x6de28220, 0x3d4b1: 0x6de28c20, 0x3d4b2: 0x6c11c220, 0x3d4b3: 0x6c98ba20, + 0x3d4b4: 0x6c11e820, 0x3d4b5: 0x6c345020, 0x3d4b6: 0x6c349420, 0x3d4b7: 0x6c713820, + 0x3d4b8: 0x6c4fd020, 0x3d4b9: 0x6c711220, 0x3d4ba: 0x6c4f3420, 0x3d4bb: 0x6c990c20, + 0x3d4bc: 0x6c994220, 0x3d4bd: 0x6c722020, 0x3d4be: 0x6cc57a20, 0x3d4bf: 0x6cf41220, + // Block 0xf53, offset 0x3d4c0 + 0x3d4c0: 0x6cf51c20, 0x3d4c1: 0x6c998820, 0x3d4c2: 0x6d237420, 0x3d4c3: 0x6d510220, + 0x3d4c4: 0x6d23ee20, 0x3d4c5: 0x6d515a20, 0x3d4c6: 0x6d23e220, 0x3d4c7: 0x6de2ea20, + 0x3d4c8: 0x6c9ab020, 0x3d4c9: 0x6cf53820, 0x3d4ca: 0x6da53020, 0x3d4cb: 0x6c9b6e20, + 0x3d4cc: 0x6c739020, 0x3d4cd: 0x6c731620, 0x3d4ce: 0x6d7e3620, 0x3d4cf: 0x6cc7b820, + 0x3d4d0: 0x6cf5e620, 0x3d4d1: 0x6c50c220, 0x3d4d2: 0x6c448820, 0x3d4d3: 0x6c8c8820, + 0x3d4d4: 0x6cb8f420, 0x3d4d5: 0x6d258220, 0x3d4d6: 0x6c3e9420, 0x3d4d7: 0x6c3e7220, + 0x3d4d8: 0x6c73be20, 0x3d4d9: 0x6c9c2220, 0x3d4da: 0x6cf69620, 0x3d4db: 0x6c21ee20, + 0x3d4dc: 0x6c21d820, 0x3d4dd: 0x6c220c20, 0x3d4de: 0x6c365c20, 0x3d4df: 0x6c522420, + 0x3d4e0: 0x6c36a020, 0x3d4e1: 0x6c52c020, 0x3d4e2: 0x6c9c8820, 0x3d4e3: 0x6c750620, + 0x3d4e4: 0x6c9c9a20, 0x3d4e5: 0x6c740020, 0x3d4e6: 0x6cc95020, 0x3d4e7: 0x6cf6d620, + 0x3d4e8: 0x6cf70820, 0x3d4e9: 0x6d267820, 0x3d4ea: 0x6d53d620, 0x3d4eb: 0x6da63220, + 0x3d4ec: 0x6d801420, 0x3d4ed: 0x6da6f220, 0x3d4ee: 0x6e1db420, 0x3d4ef: 0x6c12b420, + 0x3d4f0: 0x6c756020, 0x3d4f1: 0x6d80d420, 0x3d4f2: 0x6e38d620, 0x3d4f3: 0x6cf90820, + 0x3d4f4: 0x6d285c20, 0x3d4f5: 0x6c9e2620, 0x3d4f6: 0x6c9e2820, 0x3d4f7: 0x6c9e2e20, + 0x3d4f8: 0x6c30b220, 0x3d4f9: 0x6d288c20, 0x3d4fa: 0x6c130620, 0x3d4fb: 0x6c393420, + 0x3d4fc: 0x6c38ac20, 0x3d4fd: 0x6c38c620, 0x3d4fe: 0x6c22c020, 0x3d4ff: 0x6c767220, + // Block 0xf54, offset 0x3d500 + 0x3d500: 0x6c546820, 0x3d501: 0x6c76b620, 0x3d502: 0x6c546e20, 0x3d503: 0x6c769a20, + 0x3d504: 0x6c76b820, 0x3d505: 0x6c76d220, 0x3d506: 0x6c771820, 0x3d507: 0x6c545420, + 0x3d508: 0x6ccc3a20, 0x3d509: 0x6cccb620, 0x3d50a: 0x6cfa0020, 0x3d50b: 0x6cccf220, + 0x3d50c: 0x6cfa8620, 0x3d50d: 0x6d29d220, 0x3d50e: 0x6c9f8020, 0x3d50f: 0x6d568820, + 0x3d510: 0x6d571a20, 0x3d511: 0x6d577a20, 0x3d512: 0x6d580a20, 0x3d513: 0x6dfbe420, + 0x3d514: 0x6de4d620, 0x3d515: 0x6de4d020, 0x3d516: 0x6e0f0220, 0x3d517: 0x6e0f1420, + 0x3d518: 0x6c23a220, 0x3d519: 0x6c239620, 0x3d51a: 0x6c554420, 0x3d51b: 0x6cb8ea20, + 0x3d51c: 0x6cfc0420, 0x3d51d: 0x6cce4a20, 0x3d51e: 0x6d582220, 0x3d51f: 0x6d838420, + 0x3d520: 0x6e443420, 0x3d521: 0x6da93020, 0x3d522: 0x6cfd5420, 0x3d523: 0x6c790420, + 0x3d524: 0x6ccf7820, 0x3d525: 0x6d2c1c20, 0x3d526: 0x6c243420, 0x3d527: 0x6cfdfc20, + 0x3d528: 0x6de60820, 0x3d529: 0x6c04fa20, 0x3d52a: 0x6c246c20, 0x3d52b: 0x6c3b5620, + 0x3d52c: 0x6c79bc20, 0x3d52d: 0x6c79bc20, 0x3d52e: 0x6cfe7820, 0x3d52f: 0x6cfea220, + 0x3d530: 0x6d2d0620, 0x3d531: 0x6d5a3420, 0x3d532: 0x6de63620, 0x3d533: 0x6c57d820, + 0x3d534: 0x6cd1a420, 0x3d535: 0x6c585a20, 0x3d536: 0x6c3be620, 0x3d537: 0x6cffb820, + 0x3d538: 0x6ca3e620, 0x3d539: 0x6cf15e20, 0x3d53a: 0x6d00b220, 0x3d53b: 0x6dab0a20, + 0x3d53c: 0x6e104820, 0x3d53d: 0x6c3c7020, 0x3d53e: 0x6c594e20, 0x3d53f: 0x6d868020, + // Block 0xf55, offset 0x3d540 + 0x3d540: 0x6c3c8820, 0x3d541: 0x6c3c8e20, 0x3d542: 0x6c3c8c20, 0x3d543: 0x6c59e420, + 0x3d544: 0x6c7c7e20, 0x3d545: 0x6c7c5e20, 0x3d546: 0x6c7c6020, 0x3d547: 0x6c7c6020, + 0x3d548: 0x6cd36020, 0x3d549: 0x6cd34020, 0x3d54a: 0x6d5c4620, 0x3d54b: 0x6d013a20, + 0x3d54c: 0x6c13ee20, 0x3d54d: 0x6c3cd620, 0x3d54e: 0x6ca5f620, 0x3d54f: 0x6d027820, + 0x3d550: 0x6d5d2820, 0x3d551: 0x6dac1020, 0x3d552: 0x6c3d1e20, 0x3d553: 0x6c7dd220, + 0x3d554: 0x6cd4fa20, 0x3d555: 0x6d30e620, 0x3d556: 0x6d30ce20, 0x3d557: 0x6c7e5e20, + 0x3d558: 0x6c5b3020, 0x3d559: 0x6d5e0420, 0x3d55a: 0x6d314e20, 0x3d55b: 0x6d885420, + 0x3d55c: 0x6cd5c620, 0x3d55d: 0x6d5eba20, 0x3d55e: 0x6d5eba20, 0x3d55f: 0x6d322e20, + 0x3d560: 0x6d323420, 0x3d561: 0x6d32de20, 0x3d562: 0x6d5f3420, 0x3d563: 0x6d894a20, + 0x3d564: 0x6d5efe20, 0x3d565: 0x6dae2820, 0x3d566: 0x6d8a5e20, 0x3d567: 0x6daece20, + 0x3d568: 0x6daee820, 0x3d569: 0x6dce7220, 0x3d56a: 0x6c5c6620, 0x3d56b: 0x6c3dc620, + 0x3d56c: 0x6cd78420, 0x3d56d: 0x6d608020, 0x3d56e: 0x6d342620, 0x3d56f: 0x6d60e220, + 0x3d570: 0x6daf6c20, 0x3d571: 0x6e399620, 0x3d572: 0x6c80d020, 0x3d573: 0x6d619e20, + 0x3d574: 0x6cd86420, 0x3d575: 0x6d073a20, 0x3d576: 0x6d8bc020, 0x3d577: 0x6e33b420, + 0x3d578: 0x6caa3220, 0x3d579: 0x6dcfe420, 0x3d57a: 0x6c3e3620, 0x3d57b: 0x6d624620, + 0x3d57c: 0x6dd02420, 0x3d57d: 0x6cd91e20, 0x3d57e: 0x6d628a20, 0x3d57f: 0x6db0a220, + // Block 0xf56, offset 0x3d580 + 0x3d580: 0x6c21a420, 0x3d581: 0x6c3e6a20, 0x3d582: 0x6c3e9e20, 0x3d583: 0x6c823c20, + 0x3d584: 0x6cd97a20, 0x3d585: 0x6cd98820, 0x3d586: 0x6ceed220, 0x3d587: 0x6d367820, + 0x3d588: 0x6d369420, 0x3d589: 0x6d538a20, 0x3d58a: 0x6da5b220, 0x3d58b: 0x6c82fe20, + 0x3d58c: 0x6cda9c20, 0x3d58d: 0x6d114c20, 0x3d58e: 0x6cdac220, 0x3d58f: 0x6c265420, + 0x3d590: 0x6c264820, 0x3d591: 0x6c3f5620, 0x3d592: 0x6c185020, 0x3d593: 0x6c3f7e20, + 0x3d594: 0x6c3f8220, 0x3d595: 0x6c3f9420, 0x3d596: 0x6c5eb620, 0x3d597: 0x6c5f1c20, + 0x3d598: 0x6c5eb420, 0x3d599: 0x6cac7420, 0x3d59a: 0x6c840620, 0x3d59b: 0x6cae1e20, + 0x3d59c: 0x6cac7620, 0x3d59d: 0x6cad0c20, 0x3d59e: 0x6cdb6e20, 0x3d59f: 0x6cdbee20, + 0x3d5a0: 0x6c84c420, 0x3d5a1: 0x6cdb3620, 0x3d5a2: 0x6cdb3a20, 0x3d5a3: 0x6cdb5820, + 0x3d5a4: 0x6cdc0c20, 0x3d5a5: 0x6d386a20, 0x3d5a6: 0x6d0a7820, 0x3d5a7: 0x6db1fa20, + 0x3d5a8: 0x6d0bbc20, 0x3d5a9: 0x6d642820, 0x3d5aa: 0x6d646c20, 0x3d5ab: 0x6d90ac20, + 0x3d5ac: 0x6d8e4820, 0x3d5ad: 0x6db27620, 0x3d5ae: 0x6e006820, 0x3d5af: 0x6e128020, + 0x3d5b0: 0x6dd1a220, 0x3d5b1: 0x6e12c220, 0x3d5b2: 0x6e20a820, 0x3d5b3: 0x6c5f9620, + 0x3d5b4: 0x6d0bc020, 0x3d5b5: 0x6db39a20, 0x3d5b6: 0x6dd29a20, 0x3d5b7: 0x6c852c20, + 0x3d5b8: 0x6cdd7820, 0x3d5b9: 0x6d0c2420, 0x3d5ba: 0x6cdd9c20, 0x3d5bb: 0x6d900a20, + 0x3d5bc: 0x6d3a1c20, 0x3d5bd: 0x6d3b0e20, 0x3d5be: 0x6d901420, 0x3d5bf: 0x6d8ffa20, + // Block 0xf57, offset 0x3d5c0 + 0x3d5c0: 0x6d668a20, 0x3d5c1: 0x6debe220, 0x3d5c2: 0x6debf020, 0x3d5c3: 0x6d912820, + 0x3d5c4: 0x6c14d220, 0x3d5c5: 0x6cafa620, 0x3d5c6: 0x6cdeaa20, 0x3d5c7: 0x6d0d0620, + 0x3d5c8: 0x6d3b2c20, 0x3d5c9: 0x6d3b6e20, 0x3d5ca: 0x6c8c8420, 0x3d5cb: 0x6e430c20, + 0x3d5cc: 0x6c867c20, 0x3d5cd: 0x6cb06c20, 0x3d5ce: 0x6cdf6620, 0x3d5cf: 0x6d0e4620, + 0x3d5d0: 0x6d925c20, 0x3d5d1: 0x6e2c4c20, 0x3d5d2: 0x6c26ec20, 0x3d5d3: 0x6cb18c20, + 0x3d5d4: 0x6cb1a420, 0x3d5d5: 0x6ce0de20, 0x3d5d6: 0x6e34b020, 0x3d5d7: 0x6c873020, + 0x3d5d8: 0x6d93fa20, 0x3d5d9: 0x6d76c820, 0x3d5da: 0x6ce1c620, 0x3d5db: 0x6d101620, + 0x3d5dc: 0x6d103a20, 0x3d5dd: 0x6c458420, 0x3d5de: 0x6c879a20, 0x3d5df: 0x6d951e20, + 0x3d5e0: 0x6d6cc620, 0x3d5e1: 0x6d95c220, 0x3d5e2: 0x6c153c20, 0x3d5e3: 0x6c625420, + 0x3d5e4: 0x6d121420, 0x3d5e5: 0x6cb46620, 0x3d5e6: 0x6d401a20, 0x3d5e7: 0x6d12da20, + 0x3d5e8: 0x6d6e0a20, 0x3d5e9: 0x6d6e0c20, 0x3d5ea: 0x6d41c020, 0x3d5eb: 0x6df0d620, + 0x3d5ec: 0x6e04bc20, 0x3d5ed: 0x6e3ac220, 0x3d5ee: 0x6ce59420, 0x3d5ef: 0x6d420c20, + 0x3d5f0: 0x6dbb3420, 0x3d5f1: 0x6dbb7220, 0x3d5f2: 0x6d6f8c20, 0x3d5f3: 0x6ce69420, + 0x3d5f4: 0x6d7a8620, 0x3d5f5: 0x6dd9cc20, 0x3d5f6: 0x6df20220, 0x3d5f7: 0x6d706220, + 0x3d5f8: 0x6dbc7220, 0x3d5f9: 0x6df24220, 0x3d5fa: 0x6e06d620, 0x3d5fb: 0x6df2ca20, + 0x3d5fc: 0x6ce74620, 0x3d5fd: 0x6d712e20, 0x3d5fe: 0x6d15fc20, 0x3d5ff: 0x6d15fc20, + // Block 0xf58, offset 0x3d600 + 0x3d600: 0x6d711820, 0x3d601: 0x6d449820, 0x3d602: 0x6c8a6820, 0x3d603: 0x6d44d220, + 0x3d604: 0x6d9b2620, 0x3d605: 0x6df3ee20, 0x3d606: 0x6d457020, 0x3d607: 0x6dbe8420, + 0x3d608: 0x6d72ba20, 0x3d609: 0x6d9c9020, 0x3d60a: 0x6e08b620, 0x3d60b: 0x6e09e620, + 0x3d60c: 0x6d745c20, 0x3d60d: 0x6dc07220, 0x3d60e: 0x6e0a0620, 0x3d60f: 0x6dc13220, + 0x3d610: 0x6e0a7420, 0x3d611: 0x6e267a20, 0x3d612: 0x6e1a6a20, 0x3d613: 0x6e421620, + 0x3d614: 0x6d751a20, 0x3d615: 0x6cb79420, 0x3d616: 0x6e0b4220, 0x3d617: 0x6ce8be20, + 0x3d618: 0x6c42e420, 0x3d619: 0x6e1b6620, 0x3d61a: 0x6d75a020, 0x3d61b: 0x6ddfac20, + 0x3d61c: 0x6d478020, 0x3d61d: 0x6e1bc220, +} + +// mainLookup: 16576 entries, 33152 bytes +// Block 0 is the null block. +var mainLookup = [16576]uint16{ + // Block 0x0, offset 0x0 + // Block 0x1, offset 0x40 + // Block 0x2, offset 0x80 + // Block 0x3, offset 0xc0 + 0x0e0: 0x1f, 0x0e1: 0x20, 0x0e2: 0x21, 0x0e3: 0x22, 0x0e4: 0x23, 0x0e5: 0x24, 0x0e6: 0x25, 0x0e7: 0x26, + 0x0e8: 0x27, 0x0e9: 0x28, 0x0ea: 0x29, 0x0eb: 0x2a, 0x0ec: 0x2b, 0x0ed: 0x2c, 0x0ee: 0x2d, 0x0ef: 0x2e, + 0x0f0: 0x2f, 0x0f1: 0x30, 0x0f2: 0x31, 0x0f3: 0x32, 0x0f4: 0x33, 0x0f5: 0x34, 0x0f6: 0x35, 0x0f7: 0x36, + 0x0f8: 0x37, 0x0f9: 0x38, 0x0fa: 0x39, 0x0fb: 0x3a, 0x0fc: 0x3b, 0x0fd: 0x3c, 0x0fe: 0x3d, 0x0ff: 0x3e, + // Block 0x4, offset 0x100 + 0x100: 0x3f, 0x101: 0x40, 0x102: 0x41, 0x103: 0x42, 0x104: 0x43, 0x105: 0x44, 0x106: 0x45, 0x107: 0x46, + 0x108: 0x47, 0x109: 0x48, 0x10a: 0x49, 0x10b: 0x4a, 0x10c: 0x4b, 0x10d: 0x4c, 0x10e: 0x4d, 0x10f: 0x4e, + 0x110: 0x4f, 0x111: 0x50, 0x112: 0x51, 0x113: 0x52, 0x114: 0x53, 0x115: 0x54, 0x116: 0x55, 0x117: 0x56, + 0x118: 0x57, 0x119: 0x58, 0x11a: 0x59, 0x11b: 0x5a, 0x11c: 0x5b, 0x11d: 0x5c, 0x11e: 0x5d, 0x11f: 0x5e, + 0x120: 0x5f, 0x121: 0x60, 0x122: 0x61, 0x123: 0x62, 0x124: 0x63, 0x125: 0x64, 0x126: 0x65, 0x127: 0x66, + 0x128: 0x67, 0x129: 0x68, 0x12a: 0x69, 0x12c: 0x6a, 0x12d: 0x6b, 0x12e: 0x6c, 0x12f: 0x6d, + 0x130: 0x6e, 0x131: 0x6f, 0x133: 0x70, 0x134: 0x71, 0x135: 0x72, 0x136: 0x73, 0x137: 0x74, + 0x138: 0x75, 0x139: 0x76, 0x13a: 0x77, 0x13b: 0x78, 0x13c: 0x79, 0x13d: 0x7a, 0x13e: 0x7b, 0x13f: 0x7c, + // Block 0x5, offset 0x140 + 0x140: 0x7d, 0x141: 0x7e, 0x142: 0x7f, 0x143: 0x80, 0x144: 0x81, 0x145: 0x82, 0x146: 0x83, 0x147: 0x84, + 0x148: 0x85, 0x149: 0x86, 0x14a: 0x87, 0x14b: 0x88, 0x14c: 0x89, 0x14d: 0x8a, 0x14e: 0x8b, 0x14f: 0x8c, + 0x150: 0x8d, 0x151: 0x8e, 0x152: 0x8f, 0x153: 0x90, 0x154: 0x91, 0x155: 0x92, 0x156: 0x93, 0x157: 0x94, + 0x158: 0x95, 0x159: 0x96, 0x15a: 0x97, 0x15b: 0x98, 0x15c: 0x99, 0x15d: 0x9a, 0x15e: 0x9b, 0x15f: 0x9c, + 0x160: 0x9d, 0x161: 0x9e, 0x162: 0x9f, 0x163: 0xa0, 0x164: 0xa1, 0x165: 0xa2, 0x166: 0xa3, 0x167: 0xa4, + 0x168: 0xa5, 0x169: 0xa6, 0x16a: 0xa7, 0x16b: 0xa8, 0x16c: 0xa9, 0x16d: 0xaa, + 0x170: 0xab, 0x171: 0xac, 0x172: 0xad, 0x173: 0xae, 0x174: 0xaf, 0x175: 0xb0, 0x176: 0xb1, 0x177: 0xb2, + 0x178: 0xb3, 0x17a: 0xb4, 0x17b: 0xb5, 0x17c: 0xb6, 0x17d: 0xb7, 0x17e: 0xb8, 0x17f: 0xb9, + // Block 0x6, offset 0x180 + 0x180: 0xba, 0x181: 0xbb, 0x182: 0xbc, 0x183: 0xbd, 0x184: 0xbe, 0x185: 0xbf, 0x186: 0xc0, 0x187: 0xc1, + 0x188: 0xc2, 0x189: 0xc3, 0x18a: 0xc4, 0x18b: 0xc5, 0x18c: 0xc6, 0x18d: 0xc7, 0x18e: 0xc8, 0x18f: 0xc9, + // Block 0x7, offset 0x1c0 + 0x1f7: 0xca, + // Block 0x8, offset 0x200 + 0x200: 0xcb, 0x201: 0xcc, 0x202: 0xcd, 0x203: 0xce, 0x204: 0xcf, 0x205: 0xd0, 0x206: 0xd1, 0x207: 0xd2, + 0x208: 0xd3, 0x209: 0xd4, 0x20a: 0xd5, 0x20b: 0xd6, 0x20c: 0xd7, 0x20d: 0xd8, 0x20e: 0xd9, 0x20f: 0xda, + 0x210: 0xdb, 0x211: 0xdc, 0x212: 0xdd, 0x213: 0xde, 0x214: 0xdf, 0x215: 0xe0, 0x216: 0xe1, 0x217: 0xe2, + 0x218: 0xe3, 0x219: 0xe4, 0x21a: 0xe5, 0x21b: 0xe6, 0x21c: 0xe7, 0x21d: 0xe8, 0x21e: 0xe9, 0x21f: 0xea, + 0x220: 0xeb, 0x221: 0xec, 0x222: 0xed, 0x223: 0xee, 0x224: 0xef, 0x225: 0xf0, 0x226: 0xf1, 0x227: 0xf2, + 0x228: 0xf3, 0x229: 0xf4, 0x22a: 0xf5, 0x22b: 0xf6, 0x22c: 0xf7, 0x22f: 0xf8, + // Block 0x9, offset 0x240 + 0x25e: 0xf9, 0x25f: 0xfa, + // Block 0xa, offset 0x280 + 0x2a4: 0xfb, 0x2a5: 0xfc, 0x2a6: 0xfd, 0x2a7: 0xfe, + 0x2a8: 0xff, 0x2a9: 0x100, 0x2aa: 0x101, 0x2ab: 0x102, 0x2ac: 0x103, 0x2ad: 0x104, 0x2ae: 0x105, 0x2af: 0x106, + 0x2b0: 0x107, 0x2b1: 0x108, 0x2b2: 0x109, 0x2b3: 0x10a, 0x2b4: 0x10b, 0x2b5: 0x10c, 0x2b6: 0x10d, 0x2b7: 0x10e, + 0x2b8: 0x10f, 0x2b9: 0x110, 0x2ba: 0x111, 0x2bb: 0x112, 0x2bc: 0x113, 0x2bd: 0x114, 0x2be: 0x115, 0x2bf: 0x116, + // Block 0xb, offset 0x2c0 + 0x2c0: 0x117, 0x2c1: 0x118, 0x2c2: 0x119, 0x2c3: 0x11a, 0x2c4: 0x11b, 0x2c5: 0x11c, 0x2c6: 0x11d, 0x2c7: 0x11e, + 0x2ca: 0x11f, 0x2cb: 0x120, 0x2cc: 0x121, 0x2cd: 0x122, 0x2ce: 0x123, 0x2cf: 0x124, + 0x2d0: 0x125, 0x2d1: 0x126, 0x2d2: 0x127, + 0x2e0: 0x128, 0x2e1: 0x129, 0x2e4: 0x12a, 0x2e6: 0x12b, + 0x2e8: 0x12c, 0x2e9: 0x12d, 0x2ec: 0x12e, 0x2ed: 0x12f, + 0x2f0: 0x130, 0x2f1: 0x131, + 0x2f9: 0x132, + // Block 0xc, offset 0x300 + 0x300: 0x133, 0x301: 0x134, 0x302: 0x135, 0x303: 0x136, 0x304: 0x137, 0x305: 0x138, 0x306: 0x139, 0x307: 0x13a, + 0x31a: 0x13b, 0x31b: 0x13c, + // Block 0xd, offset 0x340 + 0x340: 0x13d, 0x341: 0x13e, 0x342: 0x13f, 0x343: 0x140, 0x344: 0x141, 0x345: 0x142, 0x346: 0x143, 0x347: 0x144, + 0x348: 0x145, 0x349: 0x146, 0x34a: 0x147, 0x34b: 0x148, 0x34c: 0x149, 0x34d: 0x14a, + 0x350: 0x14b, 0x351: 0x14c, + // Block 0xe, offset 0x380 + 0x380: 0x14d, 0x381: 0x14e, 0x382: 0x14f, 0x383: 0x150, 0x384: 0x151, 0x385: 0x152, 0x386: 0x153, 0x387: 0x154, + 0x388: 0x155, 0x389: 0x156, 0x38a: 0x157, 0x38b: 0x158, 0x38c: 0x159, 0x38d: 0x15a, 0x38e: 0x15b, 0x38f: 0x15c, + 0x390: 0x15d, + // Block 0xf, offset 0x3c0 + 0x3e0: 0x15e, 0x3e1: 0x15f, 0x3e2: 0x160, 0x3e3: 0x161, 0x3e4: 0x162, 0x3e5: 0x163, 0x3e6: 0x164, 0x3e7: 0x165, + 0x3e8: 0x166, + 0x3fc: 0x167, 0x3fd: 0x168, 0x3fe: 0x169, + // Block 0x10, offset 0x400 + 0x400: 0x16a, + // Block 0x11, offset 0x440 + 0x440: 0x16b, 0x441: 0x16c, 0x442: 0x16d, 0x443: 0x16e, 0x444: 0x16f, 0x445: 0x170, 0x446: 0x171, 0x447: 0x172, + 0x448: 0x173, 0x449: 0x174, 0x44c: 0x175, 0x44d: 0x176, + 0x450: 0x177, 0x451: 0x178, 0x452: 0x179, 0x453: 0x17a, 0x454: 0x17b, 0x455: 0x17c, 0x456: 0x17d, 0x457: 0x17e, + 0x458: 0x17f, 0x459: 0x180, 0x45a: 0x181, 0x45b: 0x182, 0x45c: 0x183, 0x45d: 0x184, 0x45e: 0x185, 0x45f: 0x186, + // Block 0x12, offset 0x480 + 0x4b8: 0x187, 0x4b9: 0x188, 0x4ba: 0x189, 0x4bb: 0x18a, + // Block 0x13, offset 0x4c0 + 0x4c0: 0x18b, 0x4c1: 0x18c, 0x4c2: 0x18d, 0x4c3: 0x18e, 0x4c4: 0x18f, 0x4c5: 0x190, 0x4c6: 0x191, 0x4c7: 0x192, + 0x4c8: 0x193, 0x4c9: 0x194, 0x4cc: 0x195, 0x4cd: 0x196, 0x4ce: 0x197, 0x4cf: 0x198, + 0x4d0: 0x199, 0x4d1: 0x19a, 0x4d2: 0x19b, 0x4d3: 0x19c, 0x4d4: 0x19d, 0x4d5: 0x19e, 0x4d7: 0x19f, + 0x4d8: 0x1a0, 0x4d9: 0x1a1, 0x4da: 0x1a2, 0x4db: 0x1a3, 0x4dc: 0x1a4, 0x4dd: 0x1a5, + // Block 0x14, offset 0x500 + 0x520: 0x1a6, 0x521: 0x1a7, 0x522: 0x1a8, 0x523: 0x1a9, 0x524: 0x1aa, 0x525: 0x1ab, 0x526: 0x1ac, 0x527: 0x1ad, + 0x528: 0x1ae, + // Block 0x15, offset 0x540 + 0x550: 0x09, 0x551: 0x0a, 0x552: 0x0b, 0x553: 0x0c, 0x556: 0x0d, + 0x55b: 0x0e, 0x55d: 0x0f, 0x55e: 0x10, 0x55f: 0x11, + 0x56f: 0x12, + // Block 0x16, offset 0x580 + 0x580: 0x1af, 0x581: 0x1b0, 0x584: 0x1b0, 0x585: 0x1b0, 0x586: 0x1b0, 0x587: 0x1b1, + // Block 0x17, offset 0x5c0 + 0x5e0: 0x14, + // Block 0x18, offset 0x600 + 0x602: 0x01, 0x603: 0x02, 0x604: 0x03, 0x605: 0x04, 0x606: 0x05, 0x607: 0x06, + 0x608: 0x07, 0x609: 0x08, 0x60a: 0x09, 0x60b: 0x0a, 0x60c: 0x0b, 0x60d: 0x0c, 0x60e: 0x0d, 0x60f: 0x0e, + 0x610: 0x0f, 0x611: 0x10, 0x612: 0x11, 0x613: 0x12, 0x614: 0x13, 0x615: 0x14, 0x616: 0x15, 0x617: 0x16, + 0x618: 0x17, 0x619: 0x18, 0x61a: 0x19, 0x61b: 0x1a, 0x61c: 0x1b, 0x61d: 0x1c, 0x61e: 0x1d, 0x61f: 0x1e, + 0x620: 0x01, 0x621: 0x02, 0x622: 0x03, 0x623: 0x04, 0x624: 0x05, + 0x62a: 0x06, 0x62d: 0x07, 0x62f: 0x08, + 0x630: 0x13, 0x633: 0x15, + // Block 0x19, offset 0x640 + 0x640: 0x3f, 0x641: 0x40, 0x642: 0x41, 0x643: 0x42, 0x644: 0x43, 0x645: 0x44, 0x646: 0x45, 0x647: 0x46, + 0x648: 0x47, 0x649: 0x48, 0x64a: 0x49, 0x64b: 0x4a, 0x64c: 0x4b, 0x64d: 0x4c, 0x64e: 0x4d, 0x64f: 0x4e, + 0x650: 0x4f, 0x651: 0x50, 0x652: 0x51, 0x653: 0x52, 0x654: 0x53, 0x655: 0x54, 0x656: 0x55, 0x657: 0x56, + 0x658: 0x57, 0x659: 0x58, 0x65a: 0x59, 0x65b: 0x5a, 0x65c: 0x5b, 0x65d: 0x5c, 0x65e: 0x5d, 0x65f: 0x5e, + 0x660: 0x5f, 0x661: 0x60, 0x662: 0x61, 0x663: 0x62, 0x664: 0x63, 0x665: 0x64, 0x666: 0x65, 0x667: 0x66, + 0x668: 0x67, 0x669: 0x68, 0x66a: 0x69, 0x66c: 0x6a, 0x66d: 0x6b, 0x66e: 0x6c, 0x66f: 0x6d, + 0x670: 0x6e, 0x671: 0x6f, 0x673: 0x70, 0x674: 0x71, 0x675: 0x72, 0x676: 0x73, 0x677: 0x74, + 0x678: 0x1ba, 0x679: 0x1bb, 0x67a: 0x1bc, 0x67b: 0x1bd, 0x67c: 0x79, 0x67d: 0x7a, 0x67e: 0x7b, 0x67f: 0x7c, + // Block 0x1a, offset 0x680 + 0x680: 0x7d, 0x681: 0x7e, 0x682: 0x7f, 0x683: 0x80, 0x684: 0x1be, 0x685: 0x1bf, 0x686: 0x83, 0x687: 0x84, + 0x688: 0x85, 0x689: 0x86, 0x68a: 0x87, 0x68b: 0x88, 0x68c: 0x89, 0x68d: 0x8a, 0x68e: 0x8b, 0x68f: 0x8c, + 0x690: 0x8d, 0x691: 0x8e, 0x692: 0x1c0, 0x693: 0x90, 0x694: 0x91, 0x695: 0x92, 0x696: 0x93, 0x697: 0x94, + 0x698: 0x95, 0x699: 0x96, 0x69a: 0x97, 0x69b: 0x98, 0x69c: 0x99, 0x69d: 0x9a, 0x69e: 0x9b, 0x69f: 0x9c, + 0x6a0: 0x9d, 0x6a1: 0x9e, 0x6a2: 0x9f, 0x6a3: 0xa0, 0x6a4: 0xa1, 0x6a5: 0xa2, 0x6a6: 0xa3, 0x6a7: 0xa4, + 0x6a8: 0xa5, 0x6a9: 0xa6, 0x6aa: 0xa7, 0x6ab: 0xa8, 0x6ac: 0xa9, 0x6ad: 0xaa, + 0x6b0: 0xab, 0x6b1: 0xac, 0x6b2: 0xad, 0x6b3: 0xae, 0x6b4: 0xaf, 0x6b5: 0xb0, 0x6b6: 0xb1, 0x6b7: 0xb2, + 0x6b8: 0xb3, 0x6ba: 0xb4, 0x6bb: 0xb5, 0x6bc: 0xb6, 0x6bd: 0xb7, 0x6be: 0xb8, 0x6bf: 0xb9, + // Block 0x1b, offset 0x6c0 + 0x6c0: 0xba, 0x6c1: 0xbb, 0x6c2: 0xbc, 0x6c3: 0xbd, 0x6c4: 0xbe, 0x6c5: 0xbf, 0x6c6: 0xc0, 0x6c7: 0xc1, + 0x6c8: 0xc2, 0x6c9: 0xc3, 0x6ca: 0xc4, 0x6cb: 0x1c1, 0x6cc: 0xc6, 0x6cd: 0x1c2, 0x6ce: 0x1c3, 0x6cf: 0x1c4, + // Block 0x1c, offset 0x700 + 0x724: 0xfb, 0x725: 0xfc, 0x726: 0xfd, 0x727: 0xfe, + 0x728: 0xff, 0x729: 0x100, 0x72a: 0x101, 0x72b: 0x102, 0x72c: 0x1c5, 0x72d: 0x104, 0x72e: 0x105, 0x72f: 0x106, + 0x730: 0x107, 0x731: 0x108, 0x732: 0x109, 0x733: 0x10a, 0x734: 0x10b, 0x735: 0x10c, 0x736: 0x10d, 0x737: 0x10e, + 0x738: 0x10f, 0x739: 0x110, 0x73a: 0x111, 0x73b: 0x112, 0x73c: 0x113, 0x73d: 0x114, 0x73e: 0x115, 0x73f: 0x116, + // Block 0x1d, offset 0x740 + 0x740: 0x18b, 0x741: 0x18c, 0x742: 0x18d, 0x743: 0x18e, 0x744: 0x1c6, 0x745: 0x1c7, 0x746: 0x191, 0x747: 0x192, + 0x748: 0x193, 0x749: 0x194, 0x74c: 0x195, 0x74d: 0x196, 0x74e: 0x197, 0x74f: 0x198, + 0x750: 0x199, 0x751: 0x19a, 0x752: 0x19b, 0x753: 0x19c, 0x754: 0x19d, 0x755: 0x19e, 0x757: 0x19f, + 0x758: 0x1a0, 0x759: 0x1a1, 0x75a: 0x1a2, 0x75b: 0x1a3, 0x75c: 0x1a4, 0x75d: 0x1a5, + // Block 0x1e, offset 0x780 + 0x790: 0x09, 0x791: 0x0a, 0x792: 0x0b, 0x793: 0x0c, 0x796: 0x0d, + 0x79b: 0x0e, 0x79d: 0x0f, 0x79e: 0x10, 0x79f: 0x1b, + 0x7af: 0x12, + // Block 0x1f, offset 0x7c0 + 0x7c2: 0x01, 0x7c3: 0x1b4, 0x7c4: 0x1b5, 0x7c5: 0x1b6, 0x7c6: 0x1b7, 0x7c7: 0x1b8, + 0x7c8: 0x1b9, 0x7c9: 0x08, 0x7ca: 0x09, 0x7cb: 0x0a, 0x7cc: 0x0b, 0x7cd: 0x0c, 0x7ce: 0x0d, 0x7cf: 0x0e, + 0x7d0: 0x0f, 0x7d1: 0x10, 0x7d2: 0x11, 0x7d3: 0x12, 0x7d4: 0x13, 0x7d5: 0x14, 0x7d6: 0x15, 0x7d7: 0x16, + 0x7d8: 0x17, 0x7d9: 0x18, 0x7da: 0x19, 0x7db: 0x1a, 0x7dc: 0x1b, 0x7dd: 0x1c, 0x7de: 0x1d, 0x7df: 0x1e, + 0x7e0: 0x01, 0x7e1: 0x17, 0x7e2: 0x18, 0x7e3: 0x19, 0x7e4: 0x05, + 0x7ea: 0x06, 0x7ed: 0x07, 0x7ef: 0x1a, + 0x7f0: 0x1c, 0x7f3: 0x15, + // Block 0x20, offset 0x800 + 0x802: 0x01, 0x803: 0x02, 0x804: 0x03, 0x805: 0x1c8, 0x806: 0x05, 0x807: 0x06, + 0x808: 0x07, 0x809: 0x08, 0x80a: 0x09, 0x80b: 0x0a, 0x80c: 0x0b, 0x80d: 0x0c, 0x80e: 0x0d, 0x80f: 0x0e, + 0x810: 0x0f, 0x811: 0x10, 0x812: 0x11, 0x813: 0x12, 0x814: 0x13, 0x815: 0x14, 0x816: 0x15, 0x817: 0x16, + 0x818: 0x17, 0x819: 0x18, 0x81a: 0x19, 0x81b: 0x1a, 0x81c: 0x1b, 0x81d: 0x1c, 0x81e: 0x1d, 0x81f: 0x1e, + 0x820: 0x01, 0x821: 0x02, 0x822: 0x03, 0x823: 0x04, 0x824: 0x05, + 0x82a: 0x06, 0x82d: 0x07, 0x82f: 0x08, + 0x830: 0x13, 0x833: 0x15, + // Block 0x21, offset 0x840 + 0x864: 0xfb, 0x865: 0xfc, 0x866: 0xfd, 0x867: 0xfe, + 0x868: 0xff, 0x869: 0x100, 0x86a: 0x101, 0x86b: 0x102, 0x86c: 0x103, 0x86d: 0x104, 0x86e: 0x105, 0x86f: 0x1cb, + 0x870: 0x1cc, 0x871: 0x1cd, 0x872: 0x1ce, 0x873: 0x1cf, 0x874: 0x1d0, 0x875: 0x10c, 0x876: 0x10d, 0x877: 0x10e, + 0x878: 0x10f, 0x879: 0x110, 0x87a: 0x1d1, 0x87b: 0x1d2, 0x87c: 0x113, 0x87d: 0x114, 0x87e: 0x115, 0x87f: 0x116, + // Block 0x22, offset 0x880 + 0x882: 0x01, 0x883: 0x02, 0x884: 0x03, 0x885: 0x04, 0x886: 0x05, 0x887: 0x06, + 0x888: 0x07, 0x889: 0x08, 0x88a: 0x09, 0x88b: 0x0a, 0x88c: 0x0b, 0x88d: 0x0c, 0x88e: 0x0d, 0x88f: 0x0e, + 0x890: 0x0f, 0x891: 0x10, 0x892: 0x11, 0x893: 0x12, 0x894: 0x13, 0x895: 0x14, 0x896: 0x15, 0x897: 0x16, + 0x898: 0x1c9, 0x899: 0x1ca, 0x89a: 0x19, 0x89b: 0x1a, 0x89c: 0x1b, 0x89d: 0x1c, 0x89e: 0x1d, 0x89f: 0x1e, + 0x8a0: 0x01, 0x8a1: 0x02, 0x8a2: 0x03, 0x8a3: 0x04, 0x8a4: 0x05, + 0x8aa: 0x06, 0x8ad: 0x07, 0x8af: 0x1f, + 0x8b0: 0x13, 0x8b3: 0x15, + // Block 0x23, offset 0x8c0 + 0x8e0: 0x1f, 0x8e1: 0x20, 0x8e2: 0x21, 0x8e3: 0x22, 0x8e4: 0x23, 0x8e5: 0x24, 0x8e6: 0x1d3, 0x8e7: 0x1d4, + 0x8e8: 0x27, 0x8e9: 0x28, 0x8ea: 0x29, 0x8eb: 0x2a, 0x8ec: 0x2b, 0x8ed: 0x2c, 0x8ee: 0x2d, 0x8ef: 0x2e, + 0x8f0: 0x2f, 0x8f1: 0x30, 0x8f2: 0x31, 0x8f3: 0x32, 0x8f4: 0x33, 0x8f5: 0x34, 0x8f6: 0x35, 0x8f7: 0x36, + 0x8f8: 0x37, 0x8f9: 0x38, 0x8fa: 0x39, 0x8fb: 0x3a, 0x8fc: 0x3b, 0x8fd: 0x3c, 0x8fe: 0x3d, 0x8ff: 0x3e, + // Block 0x24, offset 0x900 + 0x902: 0x01, 0x903: 0x02, 0x904: 0x03, 0x905: 0x04, 0x906: 0x05, 0x907: 0x06, + 0x908: 0x07, 0x909: 0x08, 0x90a: 0x09, 0x90b: 0x0a, 0x90c: 0x0b, 0x90d: 0x0c, 0x90e: 0x0d, 0x90f: 0x0e, + 0x910: 0x0f, 0x911: 0x10, 0x912: 0x11, 0x913: 0x12, 0x914: 0x13, 0x915: 0x14, 0x916: 0x15, 0x917: 0x16, + 0x918: 0x17, 0x919: 0x18, 0x91a: 0x19, 0x91b: 0x1a, 0x91c: 0x1b, 0x91d: 0x1c, 0x91e: 0x1d, 0x91f: 0x1e, + 0x920: 0x21, 0x921: 0x02, 0x922: 0x03, 0x923: 0x04, 0x924: 0x05, + 0x92a: 0x06, 0x92d: 0x07, 0x92f: 0x08, + 0x930: 0x13, 0x933: 0x15, + // Block 0x25, offset 0x940 + 0x940: 0x3f, 0x941: 0x40, 0x942: 0x41, 0x943: 0x42, 0x944: 0x43, 0x945: 0x44, 0x946: 0x45, 0x947: 0x46, + 0x948: 0x47, 0x949: 0x48, 0x94a: 0x49, 0x94b: 0x4a, 0x94c: 0x4b, 0x94d: 0x4c, 0x94e: 0x4d, 0x94f: 0x4e, + 0x950: 0x4f, 0x951: 0x50, 0x952: 0x51, 0x953: 0x52, 0x954: 0x53, 0x955: 0x54, 0x956: 0x55, 0x957: 0x56, + 0x958: 0x57, 0x959: 0x58, 0x95a: 0x59, 0x95b: 0x5a, 0x95c: 0x5b, 0x95d: 0x5c, 0x95e: 0x5d, 0x95f: 0x5e, + 0x960: 0x5f, 0x961: 0x60, 0x962: 0x61, 0x963: 0x62, 0x964: 0x63, 0x965: 0x64, 0x966: 0x65, 0x967: 0x66, + 0x968: 0x67, 0x969: 0x68, 0x96a: 0x69, 0x96c: 0x6a, 0x96d: 0x6b, 0x96e: 0x6c, 0x96f: 0x6d, + 0x970: 0x6e, 0x971: 0x6f, 0x973: 0x70, 0x974: 0x71, 0x975: 0x72, 0x976: 0x73, 0x977: 0x74, + 0x978: 0x1de, 0x979: 0x1df, 0x97a: 0x1e0, 0x97b: 0x1e1, 0x97c: 0x79, 0x97d: 0x7a, 0x97e: 0x7b, 0x97f: 0x7c, + // Block 0x26, offset 0x980 + 0x980: 0x7d, 0x981: 0x7e, 0x982: 0x7f, 0x983: 0x80, 0x984: 0x81, 0x985: 0x1e2, 0x986: 0x83, 0x987: 0x84, + 0x988: 0x85, 0x989: 0x86, 0x98a: 0x87, 0x98b: 0x88, 0x98c: 0x89, 0x98d: 0x8a, 0x98e: 0x8b, 0x98f: 0x8c, + 0x990: 0x8d, 0x991: 0x8e, 0x992: 0x1e3, 0x993: 0x90, 0x994: 0x91, 0x995: 0x92, 0x996: 0x93, 0x997: 0x94, + 0x998: 0x95, 0x999: 0x96, 0x99a: 0x97, 0x99b: 0x98, 0x99c: 0x99, 0x99d: 0x9a, 0x99e: 0x9b, 0x99f: 0x9c, + 0x9a0: 0x9d, 0x9a1: 0x9e, 0x9a2: 0x9f, 0x9a3: 0xa0, 0x9a4: 0xa1, 0x9a5: 0xa2, 0x9a6: 0xa3, 0x9a7: 0xa4, + 0x9a8: 0xa5, 0x9a9: 0xa6, 0x9aa: 0xa7, 0x9ab: 0xa8, 0x9ac: 0xa9, 0x9ad: 0xaa, + 0x9b0: 0xab, 0x9b1: 0xac, 0x9b2: 0xad, 0x9b3: 0xae, 0x9b4: 0xaf, 0x9b5: 0xb0, 0x9b6: 0xb1, 0x9b7: 0xb2, + 0x9b8: 0xb3, 0x9ba: 0xb4, 0x9bb: 0xb5, 0x9bc: 0xb6, 0x9bd: 0xb7, 0x9be: 0xb8, 0x9bf: 0xb9, + // Block 0x27, offset 0x9c0 + 0x9c0: 0xba, 0x9c1: 0xbb, 0x9c2: 0xbc, 0x9c3: 0xbd, 0x9c4: 0xbe, 0x9c5: 0xbf, 0x9c6: 0xc0, 0x9c7: 0xc1, + 0x9c8: 0xc2, 0x9c9: 0xc3, 0x9ca: 0xc4, 0x9cb: 0xc5, 0x9cc: 0xc6, 0x9cd: 0x1e4, 0x9ce: 0xc8, 0x9cf: 0x1e5, + // Block 0x28, offset 0xa00 + 0xa00: 0x18b, 0xa01: 0x18c, 0xa02: 0x18d, 0xa03: 0x18e, 0xa04: 0x1e6, 0xa05: 0x190, 0xa06: 0x191, 0xa07: 0x192, + 0xa08: 0x193, 0xa09: 0x194, 0xa0c: 0x195, 0xa0d: 0x196, 0xa0e: 0x197, 0xa0f: 0x198, + 0xa10: 0x199, 0xa11: 0x19a, 0xa12: 0x19b, 0xa13: 0x19c, 0xa14: 0x19d, 0xa15: 0x19e, 0xa17: 0x19f, + 0xa18: 0x1a0, 0xa19: 0x1a1, 0xa1a: 0x1a2, 0xa1b: 0x1a3, 0xa1c: 0x1a4, 0xa1d: 0x1a5, + // Block 0x29, offset 0xa40 + 0xa50: 0x09, 0xa51: 0x0a, 0xa52: 0x0b, 0xa53: 0x0c, 0xa56: 0x0d, + 0xa5b: 0x0e, 0xa5d: 0x0f, 0xa5e: 0x10, 0xa5f: 0x26, + 0xa6f: 0x12, + // Block 0x2a, offset 0xa80 + 0xa82: 0x01, 0xa83: 0x1d7, 0xa84: 0x1d8, 0xa85: 0x1d9, 0xa86: 0x1da, 0xa87: 0x1db, + 0xa88: 0x1dc, 0xa89: 0x1dd, 0xa8a: 0x09, 0xa8b: 0x0a, 0xa8c: 0x0b, 0xa8d: 0x0c, 0xa8e: 0x0d, 0xa8f: 0x0e, + 0xa90: 0x0f, 0xa91: 0x10, 0xa92: 0x11, 0xa93: 0x12, 0xa94: 0x13, 0xa95: 0x14, 0xa96: 0x15, 0xa97: 0x16, + 0xa98: 0x17, 0xa99: 0x18, 0xa9a: 0x19, 0xa9b: 0x1a, 0xa9c: 0x1b, 0xa9d: 0x1c, 0xa9e: 0x1d, 0xa9f: 0x1e, + 0xaa0: 0x01, 0xaa1: 0x23, 0xaa2: 0x24, 0xaa3: 0x25, 0xaa4: 0x05, + 0xaaa: 0x06, 0xaad: 0x07, 0xaaf: 0x08, + 0xab0: 0x27, 0xab3: 0x15, + // Block 0x2b, offset 0xac0 + 0xac2: 0x01, 0xac3: 0x02, 0xac4: 0x03, 0xac5: 0x04, 0xac6: 0x05, 0xac7: 0x06, + 0xac8: 0x07, 0xac9: 0x08, 0xaca: 0x09, 0xacb: 0x0a, 0xacc: 0x0b, 0xacd: 0x0c, 0xace: 0x0d, 0xacf: 0x0e, + 0xad0: 0x1e7, 0xad1: 0x1e8, 0xad2: 0x11, 0xad3: 0x12, 0xad4: 0x13, 0xad5: 0x14, 0xad6: 0x15, 0xad7: 0x16, + 0xad8: 0x17, 0xad9: 0x18, 0xada: 0x19, 0xadb: 0x1a, 0xadc: 0x1b, 0xadd: 0x1c, 0xade: 0x1d, 0xadf: 0x1e, + 0xae0: 0x01, 0xae1: 0x02, 0xae2: 0x03, 0xae3: 0x04, 0xae4: 0x05, + 0xaea: 0x06, 0xaed: 0x07, 0xaef: 0x08, + 0xaf0: 0x13, 0xaf3: 0x15, + // Block 0x2c, offset 0xb00 + 0xb20: 0x1f, 0xb21: 0x20, 0xb22: 0x21, 0xb23: 0x22, 0xb24: 0x23, 0xb25: 0x24, 0xb26: 0x1e9, 0xb27: 0x26, + 0xb28: 0x27, 0xb29: 0x28, 0xb2a: 0x29, 0xb2b: 0x2a, 0xb2c: 0x2b, 0xb2d: 0x2c, 0xb2e: 0x2d, 0xb2f: 0x2e, + 0xb30: 0x2f, 0xb31: 0x30, 0xb32: 0x31, 0xb33: 0x32, 0xb34: 0x33, 0xb35: 0x34, 0xb36: 0x35, 0xb37: 0x36, + 0xb38: 0x37, 0xb39: 0x38, 0xb3a: 0x39, 0xb3b: 0x3a, 0xb3c: 0x3b, 0xb3d: 0x3c, 0xb3e: 0x3d, 0xb3f: 0x3e, + // Block 0x2d, offset 0xb40 + 0xb42: 0x01, 0xb43: 0x02, 0xb44: 0x03, 0xb45: 0x04, 0xb46: 0x05, 0xb47: 0x06, + 0xb48: 0x07, 0xb49: 0x08, 0xb4a: 0x09, 0xb4b: 0x0a, 0xb4c: 0x0b, 0xb4d: 0x0c, 0xb4e: 0x0d, 0xb4f: 0x0e, + 0xb50: 0x0f, 0xb51: 0x10, 0xb52: 0x11, 0xb53: 0x12, 0xb54: 0x13, 0xb55: 0x14, 0xb56: 0x15, 0xb57: 0x16, + 0xb58: 0x17, 0xb59: 0x18, 0xb5a: 0x19, 0xb5b: 0x1a, 0xb5c: 0x1b, 0xb5d: 0x1c, 0xb5e: 0x1d, 0xb5f: 0x1e, + 0xb60: 0x2a, 0xb61: 0x02, 0xb62: 0x03, 0xb63: 0x04, 0xb64: 0x05, + 0xb6a: 0x06, 0xb6d: 0x07, 0xb6f: 0x08, + 0xb70: 0x13, 0xb73: 0x15, + // Block 0x2e, offset 0xb80 + 0xb82: 0x01, 0xb83: 0x02, 0xb84: 0x1ec, 0xb85: 0x1ed, 0xb86: 0x05, 0xb87: 0x06, + 0xb88: 0x07, 0xb89: 0x08, 0xb8a: 0x09, 0xb8b: 0x0a, 0xb8c: 0x0b, 0xb8d: 0x0c, 0xb8e: 0x0d, 0xb8f: 0x0e, + 0xb90: 0x0f, 0xb91: 0x10, 0xb92: 0x11, 0xb93: 0x12, 0xb94: 0x13, 0xb95: 0x14, 0xb96: 0x15, 0xb97: 0x16, + 0xb98: 0x17, 0xb99: 0x18, 0xb9a: 0x19, 0xb9b: 0x1a, 0xb9c: 0x1b, 0xb9d: 0x1c, 0xb9e: 0x1d, 0xb9f: 0x1e, + 0xba0: 0x01, 0xba1: 0x02, 0xba2: 0x03, 0xba3: 0x04, 0xba4: 0x05, + 0xbaa: 0x06, 0xbad: 0x07, 0xbaf: 0x08, + 0xbb0: 0x13, 0xbb3: 0x15, + // Block 0x2f, offset 0xbc0 + 0xbc0: 0x3f, 0xbc1: 0x40, 0xbc2: 0x41, 0xbc3: 0x42, 0xbc4: 0x43, 0xbc5: 0x44, 0xbc6: 0x45, 0xbc7: 0x46, + 0xbc8: 0x47, 0xbc9: 0x48, 0xbca: 0x49, 0xbcb: 0x4a, 0xbcc: 0x4b, 0xbcd: 0x4c, 0xbce: 0x4d, 0xbcf: 0x4e, + 0xbd0: 0x4f, 0xbd1: 0x50, 0xbd2: 0x51, 0xbd3: 0x52, 0xbd4: 0x53, 0xbd5: 0x54, 0xbd6: 0x55, 0xbd7: 0x56, + 0xbd8: 0x57, 0xbd9: 0x58, 0xbda: 0x59, 0xbdb: 0x5a, 0xbdc: 0x5b, 0xbdd: 0x5c, 0xbde: 0x5d, 0xbdf: 0x5e, + 0xbe0: 0x5f, 0xbe1: 0x60, 0xbe2: 0x61, 0xbe3: 0x62, 0xbe4: 0x63, 0xbe5: 0x64, 0xbe6: 0x65, 0xbe7: 0x66, + 0xbe8: 0x67, 0xbe9: 0x68, 0xbea: 0x69, 0xbec: 0x6a, 0xbed: 0x6b, 0xbee: 0x6c, 0xbef: 0x6d, + 0xbf0: 0x6e, 0xbf1: 0x6f, 0xbf3: 0x70, 0xbf4: 0x71, 0xbf5: 0x72, 0xbf6: 0x73, 0xbf7: 0x74, + 0xbf8: 0x75, 0xbf9: 0x1f2, 0xbfa: 0x77, 0xbfb: 0x78, 0xbfc: 0x79, 0xbfd: 0x7a, 0xbfe: 0x7b, 0xbff: 0x7c, + // Block 0x30, offset 0xc00 + 0xc02: 0x01, 0xc03: 0x02, 0xc04: 0x1f0, 0xc05: 0x1f1, 0xc06: 0x05, 0xc07: 0x06, + 0xc08: 0x07, 0xc09: 0x08, 0xc0a: 0x09, 0xc0b: 0x0a, 0xc0c: 0x0b, 0xc0d: 0x0c, 0xc0e: 0x0d, 0xc0f: 0x0e, + 0xc10: 0x0f, 0xc11: 0x10, 0xc12: 0x11, 0xc13: 0x12, 0xc14: 0x13, 0xc15: 0x14, 0xc16: 0x15, 0xc17: 0x16, + 0xc18: 0x17, 0xc19: 0x18, 0xc1a: 0x19, 0xc1b: 0x1a, 0xc1c: 0x1b, 0xc1d: 0x1c, 0xc1e: 0x1d, 0xc1f: 0x1e, + 0xc20: 0x01, 0xc21: 0x2d, 0xc22: 0x03, 0xc23: 0x04, 0xc24: 0x05, + 0xc2a: 0x06, 0xc2d: 0x07, 0xc2f: 0x08, + 0xc30: 0x13, 0xc33: 0x15, + // Block 0x31, offset 0xc40 + 0xc40: 0x3f, 0xc41: 0x40, 0xc42: 0x41, 0xc43: 0x42, 0xc44: 0x43, 0xc45: 0x44, 0xc46: 0x45, 0xc47: 0x46, + 0xc48: 0x47, 0xc49: 0x48, 0xc4a: 0x49, 0xc4b: 0x4a, 0xc4c: 0x4b, 0xc4d: 0x4c, 0xc4e: 0x4d, 0xc4f: 0x4e, + 0xc50: 0x4f, 0xc51: 0x50, 0xc52: 0x51, 0xc53: 0x52, 0xc54: 0x53, 0xc55: 0x54, 0xc56: 0x55, 0xc57: 0x56, + 0xc58: 0x57, 0xc59: 0x58, 0xc5a: 0x59, 0xc5b: 0x5a, 0xc5c: 0x5b, 0xc5d: 0x5c, 0xc5e: 0x5d, 0xc5f: 0x5e, + 0xc60: 0x5f, 0xc61: 0x60, 0xc62: 0x61, 0xc63: 0x62, 0xc64: 0x63, 0xc65: 0x64, 0xc66: 0x65, 0xc67: 0x66, + 0xc68: 0x67, 0xc69: 0x68, 0xc6a: 0x69, 0xc6c: 0x6a, 0xc6d: 0x6b, 0xc6e: 0x6c, 0xc6f: 0x6d, + 0xc70: 0x6e, 0xc71: 0x6f, 0xc73: 0x70, 0xc74: 0x71, 0xc75: 0x72, 0xc76: 0x1fc, 0xc77: 0x74, + 0xc78: 0x75, 0xc79: 0x1fd, 0xc7a: 0x77, 0xc7b: 0x78, 0xc7c: 0x79, 0xc7d: 0x7a, 0xc7e: 0x7b, 0xc7f: 0x7c, + // Block 0x32, offset 0xc80 + 0xc80: 0x7d, 0xc81: 0x7e, 0xc82: 0x7f, 0xc83: 0x80, 0xc84: 0x1fe, 0xc85: 0x82, 0xc86: 0x83, 0xc87: 0x84, + 0xc88: 0x85, 0xc89: 0x86, 0xc8a: 0x87, 0xc8b: 0x88, 0xc8c: 0x89, 0xc8d: 0x8a, 0xc8e: 0x8b, 0xc8f: 0x8c, + 0xc90: 0x8d, 0xc91: 0x8e, 0xc92: 0x8f, 0xc93: 0x90, 0xc94: 0x91, 0xc95: 0x92, 0xc96: 0x93, 0xc97: 0x94, + 0xc98: 0x95, 0xc99: 0x96, 0xc9a: 0x97, 0xc9b: 0x98, 0xc9c: 0x99, 0xc9d: 0x9a, 0xc9e: 0x9b, 0xc9f: 0x9c, + 0xca0: 0x9d, 0xca1: 0x9e, 0xca2: 0x9f, 0xca3: 0xa0, 0xca4: 0xa1, 0xca5: 0xa2, 0xca6: 0xa3, 0xca7: 0xa4, + 0xca8: 0xa5, 0xca9: 0xa6, 0xcaa: 0xa7, 0xcab: 0xa8, 0xcac: 0xa9, 0xcad: 0xaa, + 0xcb0: 0xab, 0xcb1: 0xac, 0xcb2: 0xad, 0xcb3: 0xae, 0xcb4: 0xaf, 0xcb5: 0xb0, 0xcb6: 0xb1, 0xcb7: 0xb2, + 0xcb8: 0xb3, 0xcba: 0xb4, 0xcbb: 0xb5, 0xcbc: 0xb6, 0xcbd: 0xb7, 0xcbe: 0xb8, 0xcbf: 0xb9, + // Block 0x33, offset 0xcc0 + 0xcc2: 0x01, 0xcc3: 0x1f7, 0xcc4: 0x1f8, 0xcc5: 0x1f9, 0xcc6: 0x05, 0xcc7: 0x1fa, + 0xcc8: 0x1fb, 0xcc9: 0x08, 0xcca: 0x09, 0xccb: 0x0a, 0xccc: 0x0b, 0xccd: 0x0c, 0xcce: 0x0d, 0xccf: 0x0e, + 0xcd0: 0x0f, 0xcd1: 0x10, 0xcd2: 0x11, 0xcd3: 0x12, 0xcd4: 0x13, 0xcd5: 0x14, 0xcd6: 0x15, 0xcd7: 0x16, + 0xcd8: 0x17, 0xcd9: 0x18, 0xcda: 0x19, 0xcdb: 0x1a, 0xcdc: 0x1b, 0xcdd: 0x1c, 0xcde: 0x1d, 0xcdf: 0x1e, + 0xce0: 0x01, 0xce1: 0x2f, 0xce2: 0x30, 0xce3: 0x04, 0xce4: 0x05, + 0xcea: 0x06, 0xced: 0x07, 0xcef: 0x08, + 0xcf0: 0x13, 0xcf3: 0x15, + // Block 0x34, offset 0xd00 + 0xd00: 0x3f, 0xd01: 0x40, 0xd02: 0x41, 0xd03: 0x42, 0xd04: 0x43, 0xd05: 0x44, 0xd06: 0x45, 0xd07: 0x46, + 0xd08: 0x47, 0xd09: 0x48, 0xd0a: 0x49, 0xd0b: 0x4a, 0xd0c: 0x4b, 0xd0d: 0x4c, 0xd0e: 0x4d, 0xd0f: 0x4e, + 0xd10: 0x4f, 0xd11: 0x50, 0xd12: 0x51, 0xd13: 0x52, 0xd14: 0x53, 0xd15: 0x54, 0xd16: 0x55, 0xd17: 0x56, + 0xd18: 0x57, 0xd19: 0x58, 0xd1a: 0x59, 0xd1b: 0x5a, 0xd1c: 0x5b, 0xd1d: 0x5c, 0xd1e: 0x5d, 0xd1f: 0x5e, + 0xd20: 0x5f, 0xd21: 0x60, 0xd22: 0x61, 0xd23: 0x62, 0xd24: 0x63, 0xd25: 0x64, 0xd26: 0x65, 0xd27: 0x66, + 0xd28: 0x67, 0xd29: 0x68, 0xd2a: 0x69, 0xd2c: 0x6a, 0xd2d: 0x6b, 0xd2e: 0x6c, 0xd2f: 0x6d, + 0xd30: 0x6e, 0xd31: 0x6f, 0xd33: 0x70, 0xd34: 0x71, 0xd35: 0x72, 0xd36: 0x73, 0xd37: 0x74, + 0xd38: 0x75, 0xd39: 0x204, 0xd3a: 0x77, 0xd3b: 0x78, 0xd3c: 0x79, 0xd3d: 0x7a, 0xd3e: 0x7b, 0xd3f: 0x7c, + // Block 0x35, offset 0xd40 + 0xd42: 0x01, 0xd43: 0x201, 0xd44: 0x03, 0xd45: 0x04, 0xd46: 0x05, 0xd47: 0x202, + 0xd48: 0x203, 0xd49: 0x08, 0xd4a: 0x09, 0xd4b: 0x0a, 0xd4c: 0x0b, 0xd4d: 0x0c, 0xd4e: 0x0d, 0xd4f: 0x0e, + 0xd50: 0x0f, 0xd51: 0x10, 0xd52: 0x11, 0xd53: 0x12, 0xd54: 0x13, 0xd55: 0x14, 0xd56: 0x15, 0xd57: 0x16, + 0xd58: 0x17, 0xd59: 0x18, 0xd5a: 0x19, 0xd5b: 0x1a, 0xd5c: 0x1b, 0xd5d: 0x1c, 0xd5e: 0x1d, 0xd5f: 0x1e, + 0xd60: 0x01, 0xd61: 0x32, 0xd62: 0x03, 0xd63: 0x04, 0xd64: 0x05, + 0xd6a: 0x06, 0xd6d: 0x07, 0xd6f: 0x08, + 0xd70: 0x13, 0xd73: 0x15, + // Block 0x36, offset 0xd80 + 0xda0: 0x1f, 0xda1: 0x20, 0xda2: 0x21, 0xda3: 0x22, 0xda4: 0x23, 0xda5: 0x24, 0xda6: 0x25, 0xda7: 0x26, + 0xda8: 0x27, 0xda9: 0x28, 0xdaa: 0x29, 0xdab: 0x2a, 0xdac: 0x2b, 0xdad: 0x2c, 0xdae: 0x2d, 0xdaf: 0x2e, + 0xdb0: 0x2f, 0xdb1: 0x30, 0xdb2: 0x31, 0xdb3: 0x32, 0xdb4: 0x33, 0xdb5: 0x34, 0xdb6: 0x35, 0xdb7: 0x36, + 0xdb8: 0x37, 0xdb9: 0x38, 0xdba: 0x39, 0xdbb: 0x3a, 0xdbc: 0x205, 0xdbd: 0x206, 0xdbe: 0x207, 0xdbf: 0x3e, + // Block 0x37, offset 0xdc0 + 0xdc2: 0x01, 0xdc3: 0x02, 0xdc4: 0x03, 0xdc5: 0x04, 0xdc6: 0x05, 0xdc7: 0x06, + 0xdc8: 0x07, 0xdc9: 0x08, 0xdca: 0x09, 0xdcb: 0x0a, 0xdcc: 0x0b, 0xdcd: 0x0c, 0xdce: 0x0d, 0xdcf: 0x0e, + 0xdd0: 0x0f, 0xdd1: 0x10, 0xdd2: 0x11, 0xdd3: 0x12, 0xdd4: 0x13, 0xdd5: 0x14, 0xdd6: 0x15, 0xdd7: 0x16, + 0xdd8: 0x17, 0xdd9: 0x18, 0xdda: 0x19, 0xddb: 0x1a, 0xddc: 0x1b, 0xddd: 0x1c, 0xdde: 0x1d, 0xddf: 0x1e, + 0xde0: 0x34, 0xde1: 0x02, 0xde2: 0x03, 0xde3: 0x04, 0xde4: 0x05, + 0xdea: 0x06, 0xded: 0x07, 0xdef: 0x08, + 0xdf0: 0x13, 0xdf3: 0x15, + // Block 0x38, offset 0xe00 + 0xe00: 0x3f, 0xe01: 0x40, 0xe02: 0x41, 0xe03: 0x42, 0xe04: 0x43, 0xe05: 0x44, 0xe06: 0x45, 0xe07: 0x46, + 0xe08: 0x47, 0xe09: 0x48, 0xe0a: 0x49, 0xe0b: 0x4a, 0xe0c: 0x4b, 0xe0d: 0x4c, 0xe0e: 0x4d, 0xe0f: 0x4e, + 0xe10: 0x4f, 0xe11: 0x50, 0xe12: 0x51, 0xe13: 0x52, 0xe14: 0x53, 0xe15: 0x54, 0xe16: 0x55, 0xe17: 0x56, + 0xe18: 0x57, 0xe19: 0x58, 0xe1a: 0x59, 0xe1b: 0x5a, 0xe1c: 0x5b, 0xe1d: 0x5c, 0xe1e: 0x5d, 0xe1f: 0x5e, + 0xe20: 0x5f, 0xe21: 0x60, 0xe22: 0x61, 0xe23: 0x62, 0xe24: 0x63, 0xe25: 0x64, 0xe26: 0x65, 0xe27: 0x66, + 0xe28: 0x67, 0xe29: 0x68, 0xe2a: 0x69, 0xe2c: 0x6a, 0xe2d: 0x6b, 0xe2e: 0x6c, 0xe2f: 0x6d, + 0xe30: 0x6e, 0xe31: 0x6f, 0xe33: 0x70, 0xe34: 0x71, 0xe35: 0x72, 0xe36: 0x73, 0xe37: 0x74, + 0xe38: 0x75, 0xe39: 0x76, 0xe3a: 0x211, 0xe3b: 0x212, 0xe3c: 0x79, 0xe3d: 0x7a, 0xe3e: 0x7b, 0xe3f: 0x7c, + // Block 0x39, offset 0xe40 + 0xe40: 0x7d, 0xe41: 0x7e, 0xe42: 0x7f, 0xe43: 0x80, 0xe44: 0x81, 0xe45: 0x213, 0xe46: 0x83, 0xe47: 0x84, + 0xe48: 0x85, 0xe49: 0x86, 0xe4a: 0x87, 0xe4b: 0x88, 0xe4c: 0x89, 0xe4d: 0x8a, 0xe4e: 0x8b, 0xe4f: 0x8c, + 0xe50: 0x8d, 0xe51: 0x8e, 0xe52: 0x214, 0xe53: 0x90, 0xe54: 0x91, 0xe55: 0x92, 0xe56: 0x93, 0xe57: 0x94, + 0xe58: 0x95, 0xe59: 0x96, 0xe5a: 0x97, 0xe5b: 0x98, 0xe5c: 0x99, 0xe5d: 0x9a, 0xe5e: 0x9b, 0xe5f: 0x9c, + 0xe60: 0x9d, 0xe61: 0x9e, 0xe62: 0x9f, 0xe63: 0xa0, 0xe64: 0xa1, 0xe65: 0xa2, 0xe66: 0xa3, 0xe67: 0xa4, + 0xe68: 0xa5, 0xe69: 0xa6, 0xe6a: 0xa7, 0xe6b: 0xa8, 0xe6c: 0xa9, 0xe6d: 0xaa, + 0xe70: 0xab, 0xe71: 0xac, 0xe72: 0xad, 0xe73: 0xae, 0xe74: 0xaf, 0xe75: 0xb0, 0xe76: 0xb1, 0xe77: 0xb2, + 0xe78: 0xb3, 0xe7a: 0xb4, 0xe7b: 0xb5, 0xe7c: 0xb6, 0xe7d: 0xb7, 0xe7e: 0xb8, 0xe7f: 0xb9, + // Block 0x3a, offset 0xe80 + 0xe80: 0xba, 0xe81: 0xbb, 0xe82: 0xbc, 0xe83: 0xbd, 0xe84: 0xbe, 0xe85: 0xbf, 0xe86: 0xc0, 0xe87: 0xc1, + 0xe88: 0xc2, 0xe89: 0xc3, 0xe8a: 0xc4, 0xe8b: 0xc5, 0xe8c: 0xc6, 0xe8d: 0xc7, 0xe8e: 0xc8, 0xe8f: 0x215, + // Block 0x3b, offset 0xec0 + 0xec0: 0x18b, 0xec1: 0x18c, 0xec2: 0x18d, 0xec3: 0x18e, 0xec4: 0x216, 0xec5: 0x190, 0xec6: 0x191, 0xec7: 0x192, + 0xec8: 0x193, 0xec9: 0x194, 0xecc: 0x195, 0xecd: 0x196, 0xece: 0x197, 0xecf: 0x198, + 0xed0: 0x199, 0xed1: 0x19a, 0xed2: 0x19b, 0xed3: 0x19c, 0xed4: 0x19d, 0xed5: 0x19e, 0xed7: 0x19f, + 0xed8: 0x1a0, 0xed9: 0x1a1, 0xeda: 0x1a2, 0xedb: 0x1a3, 0xedc: 0x1a4, 0xedd: 0x1a5, + // Block 0x3c, offset 0xf00 + 0xf10: 0x09, 0xf11: 0x0a, 0xf12: 0x0b, 0xf13: 0x0c, 0xf16: 0x0d, + 0xf1b: 0x0e, 0xf1d: 0x0f, 0xf1e: 0x10, 0xf1f: 0x39, + 0xf2f: 0x12, + // Block 0x3d, offset 0xf40 + 0xf42: 0x01, 0xf43: 0x20a, 0xf44: 0x20b, 0xf45: 0x20c, 0xf46: 0x20d, 0xf47: 0x06, + 0xf48: 0x07, 0xf49: 0x20e, 0xf4a: 0x20f, 0xf4b: 0x0a, 0xf4c: 0x210, 0xf4d: 0x0c, 0xf4e: 0x0d, 0xf4f: 0x0e, + 0xf50: 0x0f, 0xf51: 0x10, 0xf52: 0x11, 0xf53: 0x12, 0xf54: 0x13, 0xf55: 0x14, 0xf56: 0x15, 0xf57: 0x16, + 0xf58: 0x17, 0xf59: 0x18, 0xf5a: 0x19, 0xf5b: 0x1a, 0xf5c: 0x1b, 0xf5d: 0x1c, 0xf5e: 0x1d, 0xf5f: 0x1e, + 0xf60: 0x01, 0xf61: 0x36, 0xf62: 0x37, 0xf63: 0x38, 0xf64: 0x05, + 0xf6a: 0x06, 0xf6d: 0x07, 0xf6f: 0x08, + 0xf70: 0x3a, 0xf73: 0x15, + // Block 0x3e, offset 0xf80 + 0xf80: 0x3f, 0xf81: 0x40, 0xf82: 0x41, 0xf83: 0x42, 0xf84: 0x43, 0xf85: 0x44, 0xf86: 0x45, 0xf87: 0x46, + 0xf88: 0x47, 0xf89: 0x48, 0xf8a: 0x49, 0xf8b: 0x4a, 0xf8c: 0x4b, 0xf8d: 0x4c, 0xf8e: 0x4d, 0xf8f: 0x4e, + 0xf90: 0x4f, 0xf91: 0x50, 0xf92: 0x51, 0xf93: 0x52, 0xf94: 0x53, 0xf95: 0x54, 0xf96: 0x55, 0xf97: 0x56, + 0xf98: 0x57, 0xf99: 0x58, 0xf9a: 0x59, 0xf9b: 0x5a, 0xf9c: 0x5b, 0xf9d: 0x5c, 0xf9e: 0x5d, 0xf9f: 0x5e, + 0xfa0: 0x5f, 0xfa1: 0x60, 0xfa2: 0x61, 0xfa3: 0x62, 0xfa4: 0x63, 0xfa5: 0x64, 0xfa6: 0x65, 0xfa7: 0x66, + 0xfa8: 0x67, 0xfa9: 0x68, 0xfaa: 0x69, 0xfac: 0x6a, 0xfad: 0x6b, 0xfae: 0x6c, 0xfaf: 0x6d, + 0xfb0: 0x6e, 0xfb1: 0x6f, 0xfb3: 0x70, 0xfb4: 0x71, 0xfb5: 0x72, 0xfb6: 0x73, 0xfb7: 0x74, + 0xfb8: 0x220, 0xfb9: 0x221, 0xfba: 0x222, 0xfbb: 0x223, 0xfbc: 0x79, 0xfbd: 0x7a, 0xfbe: 0x7b, 0xfbf: 0x224, + // Block 0x3f, offset 0xfc0 + 0xfc0: 0x225, 0xfc1: 0x226, 0xfc2: 0x7f, 0xfc3: 0x80, 0xfc4: 0x227, 0xfc5: 0x228, 0xfc6: 0x83, 0xfc7: 0x84, + 0xfc8: 0x85, 0xfc9: 0x229, 0xfca: 0x87, 0xfcb: 0x88, 0xfcc: 0x89, 0xfcd: 0x8a, 0xfce: 0x8b, 0xfcf: 0x8c, + 0xfd0: 0x8d, 0xfd1: 0x22a, 0xfd2: 0x22b, 0xfd3: 0x90, 0xfd4: 0x91, 0xfd5: 0x92, 0xfd6: 0x93, 0xfd7: 0x94, + 0xfd8: 0x95, 0xfd9: 0x96, 0xfda: 0x97, 0xfdb: 0x98, 0xfdc: 0x99, 0xfdd: 0x9a, 0xfde: 0x9b, 0xfdf: 0x9c, + 0xfe0: 0x9d, 0xfe1: 0x9e, 0xfe2: 0x9f, 0xfe3: 0xa0, 0xfe4: 0xa1, 0xfe5: 0xa2, 0xfe6: 0xa3, 0xfe7: 0xa4, + 0xfe8: 0xa5, 0xfe9: 0x22c, 0xfea: 0xa7, 0xfeb: 0xa8, 0xfec: 0xa9, 0xfed: 0xaa, + 0xff0: 0xab, 0xff1: 0xac, 0xff2: 0xad, 0xff3: 0xae, 0xff4: 0xaf, 0xff5: 0xb0, 0xff6: 0xb1, 0xff7: 0xb2, + 0xff8: 0xb3, 0xffa: 0xb4, 0xffb: 0xb5, 0xffc: 0xb6, 0xffd: 0xb7, 0xffe: 0xb8, 0xfff: 0xb9, + // Block 0x40, offset 0x1000 + 0x1000: 0xba, 0x1001: 0xbb, 0x1002: 0xbc, 0x1003: 0xbd, 0x1004: 0xbe, 0x1005: 0xbf, 0x1006: 0xc0, 0x1007: 0xc1, + 0x1008: 0x22d, 0x1009: 0x22e, 0x100a: 0x22f, 0x100b: 0x230, 0x100c: 0xc6, 0x100d: 0x231, 0x100e: 0x232, 0x100f: 0x233, + // Block 0x41, offset 0x1040 + 0x1064: 0xfb, 0x1065: 0xfc, 0x1066: 0xfd, 0x1067: 0xfe, + 0x1068: 0xff, 0x1069: 0x100, 0x106a: 0x101, 0x106b: 0x102, 0x106c: 0x234, 0x106d: 0x104, 0x106e: 0x105, 0x106f: 0x106, + 0x1070: 0x107, 0x1071: 0x108, 0x1072: 0x109, 0x1073: 0x10a, 0x1074: 0x10b, 0x1075: 0x10c, 0x1076: 0x10d, 0x1077: 0x10e, + 0x1078: 0x235, 0x1079: 0x110, 0x107a: 0x111, 0x107b: 0x112, 0x107c: 0x113, 0x107d: 0x114, 0x107e: 0x115, 0x107f: 0x116, + // Block 0x42, offset 0x1080 + 0x1080: 0x18b, 0x1081: 0x18c, 0x1082: 0x18d, 0x1083: 0x18e, 0x1084: 0x236, 0x1085: 0x237, 0x1086: 0x238, 0x1087: 0x192, + 0x1088: 0x193, 0x1089: 0x194, 0x108c: 0x195, 0x108d: 0x196, 0x108e: 0x197, 0x108f: 0x198, + 0x1090: 0x199, 0x1091: 0x19a, 0x1092: 0x19b, 0x1093: 0x19c, 0x1094: 0x19d, 0x1095: 0x19e, 0x1097: 0x19f, + 0x1098: 0x1a0, 0x1099: 0x1a1, 0x109a: 0x1a2, 0x109b: 0x1a3, 0x109c: 0x1a4, 0x109d: 0x1a5, + // Block 0x43, offset 0x10c0 + 0x10d0: 0x09, 0x10d1: 0x0a, 0x10d2: 0x0b, 0x10d3: 0x0c, 0x10d6: 0x0d, + 0x10db: 0x0e, 0x10dd: 0x0f, 0x10de: 0x10, 0x10df: 0x40, + 0x10ef: 0x12, + // Block 0x44, offset 0x1100 + 0x1102: 0x01, 0x1103: 0x219, 0x1104: 0x21a, 0x1105: 0x21b, 0x1106: 0x21c, 0x1107: 0x21d, + 0x1108: 0x21e, 0x1109: 0x08, 0x110a: 0x09, 0x110b: 0x0a, 0x110c: 0x0b, 0x110d: 0x21f, 0x110e: 0x0d, 0x110f: 0x0e, + 0x1110: 0x0f, 0x1111: 0x10, 0x1112: 0x11, 0x1113: 0x12, 0x1114: 0x13, 0x1115: 0x14, 0x1116: 0x15, 0x1117: 0x16, + 0x1118: 0x17, 0x1119: 0x18, 0x111a: 0x19, 0x111b: 0x1a, 0x111c: 0x1b, 0x111d: 0x1c, 0x111e: 0x1d, 0x111f: 0x1e, + 0x1120: 0x01, 0x1121: 0x3c, 0x1122: 0x3d, 0x1123: 0x3e, 0x1124: 0x05, + 0x112a: 0x06, 0x112d: 0x07, 0x112f: 0x3f, + 0x1130: 0x41, 0x1133: 0x15, + // Block 0x45, offset 0x1140 + 0x1142: 0x01, 0x1143: 0x02, 0x1144: 0x23b, 0x1145: 0x23c, 0x1146: 0x05, 0x1147: 0x06, + 0x1148: 0x07, 0x1149: 0x08, 0x114a: 0x09, 0x114b: 0x0a, 0x114c: 0x0b, 0x114d: 0x0c, 0x114e: 0x0d, 0x114f: 0x0e, + 0x1150: 0x0f, 0x1151: 0x10, 0x1152: 0x11, 0x1153: 0x12, 0x1154: 0x13, 0x1155: 0x14, 0x1156: 0x15, 0x1157: 0x16, + 0x1158: 0x17, 0x1159: 0x18, 0x115a: 0x19, 0x115b: 0x1a, 0x115c: 0x1b, 0x115d: 0x1c, 0x115e: 0x1d, 0x115f: 0x1e, + 0x1160: 0x01, 0x1161: 0x02, 0x1162: 0x03, 0x1163: 0x04, 0x1164: 0x05, + 0x116a: 0x06, 0x116d: 0x07, 0x116f: 0x08, + 0x1170: 0x13, 0x1173: 0x15, + // Block 0x46, offset 0x1180 + 0x1182: 0x01, 0x1183: 0x23f, 0x1184: 0x03, 0x1185: 0x04, 0x1186: 0x05, 0x1187: 0x06, + 0x1188: 0x07, 0x1189: 0x08, 0x118a: 0x09, 0x118b: 0x0a, 0x118c: 0x0b, 0x118d: 0x0c, 0x118e: 0x0d, 0x118f: 0x0e, + 0x1190: 0x0f, 0x1191: 0x10, 0x1192: 0x11, 0x1193: 0x12, 0x1194: 0x13, 0x1195: 0x14, 0x1196: 0x15, 0x1197: 0x16, + 0x1198: 0x17, 0x1199: 0x18, 0x119a: 0x19, 0x119b: 0x1a, 0x119c: 0x1b, 0x119d: 0x1c, 0x119e: 0x1d, 0x119f: 0x1e, + 0x11a0: 0x01, 0x11a1: 0x02, 0x11a2: 0x03, 0x11a3: 0x04, 0x11a4: 0x05, + 0x11aa: 0x06, 0x11ad: 0x07, 0x11af: 0x08, + 0x11b0: 0x13, 0x11b3: 0x15, + // Block 0x47, offset 0x11c0 + 0x11c0: 0x3f, 0x11c1: 0x40, 0x11c2: 0x41, 0x11c3: 0x42, 0x11c4: 0x43, 0x11c5: 0x44, 0x11c6: 0x45, 0x11c7: 0x46, + 0x11c8: 0x47, 0x11c9: 0x48, 0x11ca: 0x49, 0x11cb: 0x4a, 0x11cc: 0x4b, 0x11cd: 0x4c, 0x11ce: 0x4d, 0x11cf: 0x4e, + 0x11d0: 0x4f, 0x11d1: 0x50, 0x11d2: 0x51, 0x11d3: 0x52, 0x11d4: 0x53, 0x11d5: 0x54, 0x11d6: 0x55, 0x11d7: 0x56, + 0x11d8: 0x57, 0x11d9: 0x58, 0x11da: 0x59, 0x11db: 0x5a, 0x11dc: 0x5b, 0x11dd: 0x5c, 0x11de: 0x5d, 0x11df: 0x5e, + 0x11e0: 0x5f, 0x11e1: 0x60, 0x11e2: 0x61, 0x11e3: 0x62, 0x11e4: 0x63, 0x11e5: 0x64, 0x11e6: 0x65, 0x11e7: 0x66, + 0x11e8: 0x67, 0x11e9: 0x68, 0x11ea: 0x69, 0x11ec: 0x6a, 0x11ed: 0x6b, 0x11ee: 0x6c, 0x11ef: 0x6d, + 0x11f0: 0x6e, 0x11f1: 0x6f, 0x11f3: 0x70, 0x11f4: 0x71, 0x11f5: 0x72, 0x11f6: 0x73, 0x11f7: 0x74, + 0x11f8: 0x75, 0x11f9: 0x246, 0x11fa: 0x247, 0x11fb: 0x248, 0x11fc: 0x79, 0x11fd: 0x7a, 0x11fe: 0x7b, 0x11ff: 0x7c, + // Block 0x48, offset 0x1200 + 0x1200: 0x7d, 0x1201: 0x7e, 0x1202: 0x7f, 0x1203: 0x80, 0x1204: 0x81, 0x1205: 0x82, 0x1206: 0x83, 0x1207: 0x84, + 0x1208: 0x85, 0x1209: 0x86, 0x120a: 0x87, 0x120b: 0x88, 0x120c: 0x89, 0x120d: 0x8a, 0x120e: 0x8b, 0x120f: 0x8c, + 0x1210: 0x8d, 0x1211: 0x8e, 0x1212: 0x249, 0x1213: 0x90, 0x1214: 0x91, 0x1215: 0x92, 0x1216: 0x93, 0x1217: 0x94, + 0x1218: 0x95, 0x1219: 0x96, 0x121a: 0x97, 0x121b: 0x98, 0x121c: 0x99, 0x121d: 0x9a, 0x121e: 0x9b, 0x121f: 0x9c, + 0x1220: 0x9d, 0x1221: 0x9e, 0x1222: 0x9f, 0x1223: 0xa0, 0x1224: 0xa1, 0x1225: 0xa2, 0x1226: 0xa3, 0x1227: 0xa4, + 0x1228: 0xa5, 0x1229: 0xa6, 0x122a: 0xa7, 0x122b: 0xa8, 0x122c: 0xa9, 0x122d: 0xaa, + 0x1230: 0xab, 0x1231: 0xac, 0x1232: 0xad, 0x1233: 0xae, 0x1234: 0xaf, 0x1235: 0xb0, 0x1236: 0xb1, 0x1237: 0xb2, + 0x1238: 0xb3, 0x123a: 0xb4, 0x123b: 0xb5, 0x123c: 0xb6, 0x123d: 0xb7, 0x123e: 0xb8, 0x123f: 0xb9, + // Block 0x49, offset 0x1240 + 0x1240: 0xba, 0x1241: 0xbb, 0x1242: 0xbc, 0x1243: 0xbd, 0x1244: 0xbe, 0x1245: 0xbf, 0x1246: 0xc0, 0x1247: 0xc1, + 0x1248: 0xc2, 0x1249: 0xc3, 0x124a: 0xc4, 0x124b: 0xc5, 0x124c: 0xc6, 0x124d: 0xc7, 0x124e: 0x24a, 0x124f: 0x24b, + // Block 0x4a, offset 0x1280 + 0x1280: 0x18b, 0x1281: 0x18c, 0x1282: 0x18d, 0x1283: 0x18e, 0x1284: 0x24c, 0x1285: 0x24d, 0x1286: 0x191, 0x1287: 0x192, + 0x1288: 0x193, 0x1289: 0x194, 0x128c: 0x195, 0x128d: 0x196, 0x128e: 0x197, 0x128f: 0x198, + 0x1290: 0x199, 0x1291: 0x19a, 0x1292: 0x19b, 0x1293: 0x19c, 0x1294: 0x19d, 0x1295: 0x19e, 0x1297: 0x19f, + 0x1298: 0x1a0, 0x1299: 0x1a1, 0x129a: 0x1a2, 0x129b: 0x1a3, 0x129c: 0x1a4, 0x129d: 0x1a5, + // Block 0x4b, offset 0x12c0 + 0x12d0: 0x09, 0x12d1: 0x0a, 0x12d2: 0x0b, 0x12d3: 0x0c, 0x12d6: 0x0d, + 0x12db: 0x0e, 0x12dd: 0x0f, 0x12de: 0x10, 0x12df: 0x48, + 0x12ef: 0x12, + // Block 0x4c, offset 0x1300 + 0x1302: 0x01, 0x1303: 0x242, 0x1304: 0x03, 0x1305: 0x243, 0x1306: 0x05, 0x1307: 0x244, + 0x1308: 0x245, 0x1309: 0x08, 0x130a: 0x09, 0x130b: 0x0a, 0x130c: 0x0b, 0x130d: 0x0c, 0x130e: 0x0d, 0x130f: 0x0e, + 0x1310: 0x0f, 0x1311: 0x10, 0x1312: 0x11, 0x1313: 0x12, 0x1314: 0x13, 0x1315: 0x14, 0x1316: 0x15, 0x1317: 0x16, + 0x1318: 0x17, 0x1319: 0x18, 0x131a: 0x19, 0x131b: 0x1a, 0x131c: 0x1b, 0x131d: 0x1c, 0x131e: 0x1d, 0x131f: 0x1e, + 0x1320: 0x01, 0x1321: 0x45, 0x1322: 0x46, 0x1323: 0x47, 0x1324: 0x05, + 0x132a: 0x06, 0x132d: 0x07, 0x132f: 0x08, + 0x1330: 0x49, 0x1333: 0x15, + // Block 0x4d, offset 0x1340 + 0x1364: 0xfb, 0x1365: 0xfc, 0x1366: 0xfd, 0x1367: 0xfe, + 0x1368: 0xff, 0x1369: 0x100, 0x136a: 0x101, 0x136b: 0x102, 0x136c: 0x103, 0x136d: 0x104, 0x136e: 0x252, 0x136f: 0x106, + 0x1370: 0x253, 0x1371: 0x254, 0x1372: 0x255, 0x1373: 0x256, 0x1374: 0x257, 0x1375: 0x10c, 0x1376: 0x10d, 0x1377: 0x10e, + 0x1378: 0x10f, 0x1379: 0x110, 0x137a: 0x111, 0x137b: 0x112, 0x137c: 0x113, 0x137d: 0x114, 0x137e: 0x115, 0x137f: 0x116, + // Block 0x4e, offset 0x1380 + 0x1382: 0x01, 0x1383: 0x02, 0x1384: 0x03, 0x1385: 0x04, 0x1386: 0x05, 0x1387: 0x06, + 0x1388: 0x07, 0x1389: 0x08, 0x138a: 0x09, 0x138b: 0x0a, 0x138c: 0x0b, 0x138d: 0x0c, 0x138e: 0x0d, 0x138f: 0x0e, + 0x1390: 0x0f, 0x1391: 0x10, 0x1392: 0x11, 0x1393: 0x12, 0x1394: 0x13, 0x1395: 0x14, 0x1396: 0x15, 0x1397: 0x16, + 0x1398: 0x24e, 0x1399: 0x24f, 0x139a: 0x250, 0x139b: 0x251, 0x139c: 0x1b, 0x139d: 0x1c, 0x139e: 0x1d, 0x139f: 0x1e, + 0x13a0: 0x01, 0x13a1: 0x02, 0x13a2: 0x03, 0x13a3: 0x04, 0x13a4: 0x05, + 0x13aa: 0x06, 0x13ad: 0x07, 0x13af: 0x4b, + 0x13b0: 0x13, 0x13b3: 0x15, + // Block 0x4f, offset 0x13c0 + 0x13c0: 0x3f, 0x13c1: 0x40, 0x13c2: 0x41, 0x13c3: 0x42, 0x13c4: 0x43, 0x13c5: 0x44, 0x13c6: 0x45, 0x13c7: 0x46, + 0x13c8: 0x47, 0x13c9: 0x48, 0x13ca: 0x49, 0x13cb: 0x4a, 0x13cc: 0x4b, 0x13cd: 0x4c, 0x13ce: 0x4d, 0x13cf: 0x4e, + 0x13d0: 0x4f, 0x13d1: 0x50, 0x13d2: 0x51, 0x13d3: 0x52, 0x13d4: 0x53, 0x13d5: 0x54, 0x13d6: 0x55, 0x13d7: 0x56, + 0x13d8: 0x57, 0x13d9: 0x58, 0x13da: 0x59, 0x13db: 0x5a, 0x13dc: 0x5b, 0x13dd: 0x5c, 0x13de: 0x5d, 0x13df: 0x5e, + 0x13e0: 0x5f, 0x13e1: 0x60, 0x13e2: 0x61, 0x13e3: 0x62, 0x13e4: 0x63, 0x13e5: 0x64, 0x13e6: 0x65, 0x13e7: 0x66, + 0x13e8: 0x67, 0x13e9: 0x68, 0x13ea: 0x69, 0x13ec: 0x6a, 0x13ed: 0x6b, 0x13ee: 0x6c, 0x13ef: 0x6d, + 0x13f0: 0x6e, 0x13f1: 0x6f, 0x13f3: 0x70, 0x13f4: 0x71, 0x13f5: 0x72, 0x13f6: 0x73, 0x13f7: 0x74, + 0x13f8: 0x75, 0x13f9: 0x261, 0x13fa: 0x77, 0x13fb: 0x78, 0x13fc: 0x79, 0x13fd: 0x7a, 0x13fe: 0x7b, 0x13ff: 0x7c, + // Block 0x50, offset 0x1400 + 0x1400: 0x7d, 0x1401: 0x7e, 0x1402: 0x7f, 0x1403: 0x80, 0x1404: 0x262, 0x1405: 0x82, 0x1406: 0x83, 0x1407: 0x84, + 0x1408: 0x85, 0x1409: 0x86, 0x140a: 0x87, 0x140b: 0x88, 0x140c: 0x89, 0x140d: 0x8a, 0x140e: 0x8b, 0x140f: 0x8c, + 0x1410: 0x8d, 0x1411: 0x8e, 0x1412: 0x8f, 0x1413: 0x90, 0x1414: 0x91, 0x1415: 0x92, 0x1416: 0x93, 0x1417: 0x94, + 0x1418: 0x95, 0x1419: 0x96, 0x141a: 0x97, 0x141b: 0x98, 0x141c: 0x99, 0x141d: 0x9a, 0x141e: 0x9b, 0x141f: 0x9c, + 0x1420: 0x9d, 0x1421: 0x9e, 0x1422: 0x9f, 0x1423: 0xa0, 0x1424: 0xa1, 0x1425: 0xa2, 0x1426: 0xa3, 0x1427: 0xa4, + 0x1428: 0xa5, 0x1429: 0xa6, 0x142a: 0xa7, 0x142b: 0xa8, 0x142c: 0xa9, 0x142d: 0xaa, + 0x1430: 0xab, 0x1431: 0xac, 0x1432: 0xad, 0x1433: 0xae, 0x1434: 0xaf, 0x1435: 0xb0, 0x1436: 0xb1, 0x1437: 0xb2, + 0x1438: 0xb3, 0x143a: 0xb4, 0x143b: 0xb5, 0x143c: 0xb6, 0x143d: 0xb7, 0x143e: 0xb8, 0x143f: 0xb9, + // Block 0x51, offset 0x1440 + 0x1442: 0x01, 0x1443: 0x25a, 0x1444: 0x25b, 0x1445: 0x25c, 0x1446: 0x25d, 0x1447: 0x25e, + 0x1448: 0x25f, 0x1449: 0x08, 0x144a: 0x260, 0x144b: 0x0a, 0x144c: 0x0b, 0x144d: 0x0c, 0x144e: 0x0d, 0x144f: 0x0e, + 0x1450: 0x0f, 0x1451: 0x10, 0x1452: 0x11, 0x1453: 0x12, 0x1454: 0x13, 0x1455: 0x14, 0x1456: 0x15, 0x1457: 0x16, + 0x1458: 0x17, 0x1459: 0x18, 0x145a: 0x19, 0x145b: 0x1a, 0x145c: 0x1b, 0x145d: 0x1c, 0x145e: 0x1d, 0x145f: 0x1e, + 0x1460: 0x01, 0x1461: 0x4d, 0x1462: 0x4e, 0x1463: 0x04, 0x1464: 0x05, + 0x146a: 0x06, 0x146d: 0x07, 0x146f: 0x08, + 0x1470: 0x13, 0x1473: 0x15, + // Block 0x52, offset 0x1480 + 0x1480: 0x3f, 0x1481: 0x40, 0x1482: 0x41, 0x1483: 0x42, 0x1484: 0x43, 0x1485: 0x44, 0x1486: 0x45, 0x1487: 0x46, + 0x1488: 0x47, 0x1489: 0x48, 0x148a: 0x49, 0x148b: 0x4a, 0x148c: 0x4b, 0x148d: 0x4c, 0x148e: 0x4d, 0x148f: 0x4e, + 0x1490: 0x4f, 0x1491: 0x50, 0x1492: 0x51, 0x1493: 0x52, 0x1494: 0x53, 0x1495: 0x54, 0x1496: 0x55, 0x1497: 0x56, + 0x1498: 0x57, 0x1499: 0x58, 0x149a: 0x59, 0x149b: 0x5a, 0x149c: 0x5b, 0x149d: 0x5c, 0x149e: 0x5d, 0x149f: 0x5e, + 0x14a0: 0x5f, 0x14a1: 0x60, 0x14a2: 0x61, 0x14a3: 0x62, 0x14a4: 0x63, 0x14a5: 0x64, 0x14a6: 0x65, 0x14a7: 0x66, + 0x14a8: 0x67, 0x14a9: 0x68, 0x14aa: 0x69, 0x14ac: 0x6a, 0x14ad: 0x6b, 0x14ae: 0x6c, 0x14af: 0x6d, + 0x14b0: 0x6e, 0x14b1: 0x6f, 0x14b3: 0x70, 0x14b4: 0x71, 0x14b5: 0x72, 0x14b6: 0x1fc, 0x14b7: 0x74, + 0x14b8: 0x75, 0x14b9: 0x26a, 0x14ba: 0x26b, 0x14bb: 0x26c, 0x14bc: 0x79, 0x14bd: 0x7a, 0x14be: 0x7b, 0x14bf: 0x7c, + // Block 0x53, offset 0x14c0 + 0x14c0: 0x7d, 0x14c1: 0x7e, 0x14c2: 0x7f, 0x14c3: 0x80, 0x14c4: 0x262, 0x14c5: 0x82, 0x14c6: 0x83, 0x14c7: 0x84, + 0x14c8: 0x85, 0x14c9: 0x86, 0x14ca: 0x87, 0x14cb: 0x88, 0x14cc: 0x89, 0x14cd: 0x8a, 0x14ce: 0x8b, 0x14cf: 0x8c, + 0x14d0: 0x8d, 0x14d1: 0x8e, 0x14d2: 0x26d, 0x14d3: 0x90, 0x14d4: 0x91, 0x14d5: 0x92, 0x14d6: 0x93, 0x14d7: 0x94, + 0x14d8: 0x95, 0x14d9: 0x96, 0x14da: 0x97, 0x14db: 0x98, 0x14dc: 0x99, 0x14dd: 0x9a, 0x14de: 0x9b, 0x14df: 0x9c, + 0x14e0: 0x9d, 0x14e1: 0x9e, 0x14e2: 0x9f, 0x14e3: 0xa0, 0x14e4: 0xa1, 0x14e5: 0xa2, 0x14e6: 0xa3, 0x14e7: 0xa4, + 0x14e8: 0xa5, 0x14e9: 0xa6, 0x14ea: 0xa7, 0x14eb: 0xa8, 0x14ec: 0xa9, 0x14ed: 0xaa, + 0x14f0: 0xab, 0x14f1: 0xac, 0x14f2: 0xad, 0x14f3: 0xae, 0x14f4: 0xaf, 0x14f5: 0xb0, 0x14f6: 0xb1, 0x14f7: 0xb2, + 0x14f8: 0xb3, 0x14fa: 0xb4, 0x14fb: 0xb5, 0x14fc: 0xb6, 0x14fd: 0xb7, 0x14fe: 0xb8, 0x14ff: 0xb9, + // Block 0x54, offset 0x1500 + 0x1500: 0xba, 0x1501: 0xbb, 0x1502: 0xbc, 0x1503: 0xbd, 0x1504: 0xbe, 0x1505: 0xbf, 0x1506: 0xc0, 0x1507: 0xc1, + 0x1508: 0xc2, 0x1509: 0xc3, 0x150a: 0xc4, 0x150b: 0xc5, 0x150c: 0xc6, 0x150d: 0xc7, 0x150e: 0x26e, 0x150f: 0x24b, + // Block 0x55, offset 0x1540 + 0x1540: 0x18b, 0x1541: 0x18c, 0x1542: 0x18d, 0x1543: 0x18e, 0x1544: 0x26f, 0x1545: 0x24d, 0x1546: 0x191, 0x1547: 0x192, + 0x1548: 0x193, 0x1549: 0x194, 0x154c: 0x195, 0x154d: 0x196, 0x154e: 0x197, 0x154f: 0x198, + 0x1550: 0x199, 0x1551: 0x19a, 0x1552: 0x19b, 0x1553: 0x19c, 0x1554: 0x19d, 0x1555: 0x19e, 0x1557: 0x19f, + 0x1558: 0x1a0, 0x1559: 0x1a1, 0x155a: 0x1a2, 0x155b: 0x1a3, 0x155c: 0x1a4, 0x155d: 0x1a5, + // Block 0x56, offset 0x1580 + 0x1590: 0x09, 0x1591: 0x0a, 0x1592: 0x0b, 0x1593: 0x0c, 0x1596: 0x0d, + 0x159b: 0x0e, 0x159d: 0x0f, 0x159e: 0x10, 0x159f: 0x53, + 0x15af: 0x12, + // Block 0x57, offset 0x15c0 + 0x15c2: 0x01, 0x15c3: 0x265, 0x15c4: 0x266, 0x15c5: 0x267, 0x15c6: 0x05, 0x15c7: 0x268, + 0x15c8: 0x269, 0x15c9: 0x08, 0x15ca: 0x09, 0x15cb: 0x0a, 0x15cc: 0x0b, 0x15cd: 0x0c, 0x15ce: 0x0d, 0x15cf: 0x0e, + 0x15d0: 0x0f, 0x15d1: 0x10, 0x15d2: 0x11, 0x15d3: 0x12, 0x15d4: 0x13, 0x15d5: 0x14, 0x15d6: 0x15, 0x15d7: 0x16, + 0x15d8: 0x17, 0x15d9: 0x18, 0x15da: 0x19, 0x15db: 0x1a, 0x15dc: 0x1b, 0x15dd: 0x1c, 0x15de: 0x1d, 0x15df: 0x1e, + 0x15e0: 0x01, 0x15e1: 0x50, 0x15e2: 0x51, 0x15e3: 0x52, 0x15e4: 0x05, + 0x15ea: 0x06, 0x15ed: 0x07, 0x15ef: 0x08, + 0x15f0: 0x54, 0x15f3: 0x15, + // Block 0x58, offset 0x1600 + 0x1620: 0x1f, 0x1621: 0x20, 0x1622: 0x21, 0x1623: 0x22, 0x1624: 0x23, 0x1625: 0x24, 0x1626: 0x25, 0x1627: 0x26, + 0x1628: 0x27, 0x1629: 0x28, 0x162a: 0x272, 0x162b: 0x2a, 0x162c: 0x2b, 0x162d: 0x2c, 0x162e: 0x2d, 0x162f: 0x2e, + 0x1630: 0x2f, 0x1631: 0x30, 0x1632: 0x31, 0x1633: 0x32, 0x1634: 0x33, 0x1635: 0x34, 0x1636: 0x35, 0x1637: 0x36, + 0x1638: 0x37, 0x1639: 0x38, 0x163a: 0x39, 0x163b: 0x3a, 0x163c: 0x3b, 0x163d: 0x3c, 0x163e: 0x3d, 0x163f: 0x3e, + // Block 0x59, offset 0x1640 + 0x1642: 0x01, 0x1643: 0x02, 0x1644: 0x03, 0x1645: 0x04, 0x1646: 0x05, 0x1647: 0x06, + 0x1648: 0x07, 0x1649: 0x08, 0x164a: 0x09, 0x164b: 0x0a, 0x164c: 0x0b, 0x164d: 0x0c, 0x164e: 0x0d, 0x164f: 0x0e, + 0x1650: 0x0f, 0x1651: 0x10, 0x1652: 0x11, 0x1653: 0x12, 0x1654: 0x13, 0x1655: 0x14, 0x1656: 0x15, 0x1657: 0x16, + 0x1658: 0x17, 0x1659: 0x18, 0x165a: 0x19, 0x165b: 0x1a, 0x165c: 0x1b, 0x165d: 0x1c, 0x165e: 0x1d, 0x165f: 0x1e, + 0x1660: 0x56, 0x1661: 0x02, 0x1662: 0x03, 0x1663: 0x04, 0x1664: 0x05, + 0x166a: 0x06, 0x166d: 0x07, 0x166f: 0x08, + 0x1670: 0x13, 0x1673: 0x15, + // Block 0x5a, offset 0x1680 + 0x1682: 0x01, 0x1683: 0x02, 0x1684: 0x03, 0x1685: 0x04, 0x1686: 0x275, 0x1687: 0x06, + 0x1688: 0x07, 0x1689: 0x276, 0x168a: 0x277, 0x168b: 0x0a, 0x168c: 0x0b, 0x168d: 0x0c, 0x168e: 0x0d, 0x168f: 0x0e, + 0x1690: 0x0f, 0x1691: 0x10, 0x1692: 0x11, 0x1693: 0x12, 0x1694: 0x13, 0x1695: 0x14, 0x1696: 0x15, 0x1697: 0x16, + 0x1698: 0x17, 0x1699: 0x18, 0x169a: 0x19, 0x169b: 0x1a, 0x169c: 0x1b, 0x169d: 0x1c, 0x169e: 0x1d, 0x169f: 0x1e, + 0x16a0: 0x01, 0x16a1: 0x02, 0x16a2: 0x03, 0x16a3: 0x04, 0x16a4: 0x05, + 0x16aa: 0x06, 0x16ad: 0x07, 0x16af: 0x08, + 0x16b0: 0x13, 0x16b3: 0x15, + // Block 0x5b, offset 0x16c0 + 0x16c0: 0x3f, 0x16c1: 0x40, 0x16c2: 0x41, 0x16c3: 0x42, 0x16c4: 0x43, 0x16c5: 0x44, 0x16c6: 0x45, 0x16c7: 0x46, + 0x16c8: 0x47, 0x16c9: 0x48, 0x16ca: 0x49, 0x16cb: 0x4a, 0x16cc: 0x4b, 0x16cd: 0x4c, 0x16ce: 0x4d, 0x16cf: 0x4e, + 0x16d0: 0x4f, 0x16d1: 0x50, 0x16d2: 0x51, 0x16d3: 0x52, 0x16d4: 0x53, 0x16d5: 0x54, 0x16d6: 0x55, 0x16d7: 0x56, + 0x16d8: 0x57, 0x16d9: 0x58, 0x16da: 0x59, 0x16db: 0x5a, 0x16dc: 0x5b, 0x16dd: 0x5c, 0x16de: 0x5d, 0x16df: 0x5e, + 0x16e0: 0x5f, 0x16e1: 0x60, 0x16e2: 0x61, 0x16e3: 0x62, 0x16e4: 0x63, 0x16e5: 0x64, 0x16e6: 0x65, 0x16e7: 0x66, + 0x16e8: 0x67, 0x16e9: 0x68, 0x16ea: 0x69, 0x16ec: 0x6a, 0x16ed: 0x6b, 0x16ee: 0x6c, 0x16ef: 0x6d, + 0x16f0: 0x6e, 0x16f1: 0x6f, 0x16f3: 0x70, 0x16f4: 0x71, 0x16f5: 0x72, 0x16f6: 0x73, 0x16f7: 0x74, + 0x16f8: 0x281, 0x16f9: 0x282, 0x16fa: 0x283, 0x16fb: 0x284, 0x16fc: 0x79, 0x16fd: 0x7a, 0x16fe: 0x7b, 0x16ff: 0x7c, + // Block 0x5c, offset 0x1700 + 0x1700: 0x7d, 0x1701: 0x7e, 0x1702: 0x7f, 0x1703: 0x80, 0x1704: 0x285, 0x1705: 0x1bf, 0x1706: 0x83, 0x1707: 0x84, + 0x1708: 0x85, 0x1709: 0x86, 0x170a: 0x87, 0x170b: 0x88, 0x170c: 0x89, 0x170d: 0x8a, 0x170e: 0x8b, 0x170f: 0x8c, + 0x1710: 0x8d, 0x1711: 0x8e, 0x1712: 0x286, 0x1713: 0x90, 0x1714: 0x91, 0x1715: 0x92, 0x1716: 0x93, 0x1717: 0x94, + 0x1718: 0x95, 0x1719: 0x96, 0x171a: 0x97, 0x171b: 0x98, 0x171c: 0x99, 0x171d: 0x9a, 0x171e: 0x9b, 0x171f: 0x9c, + 0x1720: 0x9d, 0x1721: 0x9e, 0x1722: 0x9f, 0x1723: 0xa0, 0x1724: 0xa1, 0x1725: 0xa2, 0x1726: 0xa3, 0x1727: 0xa4, + 0x1728: 0xa5, 0x1729: 0xa6, 0x172a: 0xa7, 0x172b: 0xa8, 0x172c: 0xa9, 0x172d: 0xaa, + 0x1730: 0xab, 0x1731: 0xac, 0x1732: 0xad, 0x1733: 0xae, 0x1734: 0xaf, 0x1735: 0xb0, 0x1736: 0xb1, 0x1737: 0xb2, + 0x1738: 0xb3, 0x173a: 0xb4, 0x173b: 0xb5, 0x173c: 0xb6, 0x173d: 0xb7, 0x173e: 0xb8, 0x173f: 0xb9, + // Block 0x5d, offset 0x1740 + 0x1740: 0xba, 0x1741: 0xbb, 0x1742: 0xbc, 0x1743: 0xbd, 0x1744: 0xbe, 0x1745: 0xbf, 0x1746: 0xc0, 0x1747: 0xc1, + 0x1748: 0xc2, 0x1749: 0xc3, 0x174a: 0xc4, 0x174b: 0x1c1, 0x174c: 0xc6, 0x174d: 0x287, 0x174e: 0x288, 0x174f: 0x289, + // Block 0x5e, offset 0x1780 + 0x17a4: 0xfb, 0x17a5: 0xfc, 0x17a6: 0xfd, 0x17a7: 0xfe, + 0x17a8: 0xff, 0x17a9: 0x100, 0x17aa: 0x101, 0x17ab: 0x102, 0x17ac: 0x28a, 0x17ad: 0x104, 0x17ae: 0x105, 0x17af: 0x106, + 0x17b0: 0x107, 0x17b1: 0x108, 0x17b2: 0x109, 0x17b3: 0x10a, 0x17b4: 0x10b, 0x17b5: 0x10c, 0x17b6: 0x10d, 0x17b7: 0x10e, + 0x17b8: 0x10f, 0x17b9: 0x110, 0x17ba: 0x111, 0x17bb: 0x112, 0x17bc: 0x113, 0x17bd: 0x114, 0x17be: 0x115, 0x17bf: 0x116, + // Block 0x5f, offset 0x17c0 + 0x17c0: 0x18b, 0x17c1: 0x18c, 0x17c2: 0x18d, 0x17c3: 0x18e, 0x17c4: 0x28b, 0x17c5: 0x28c, 0x17c6: 0x191, 0x17c7: 0x192, + 0x17c8: 0x193, 0x17c9: 0x194, 0x17cc: 0x195, 0x17cd: 0x196, 0x17ce: 0x197, 0x17cf: 0x198, + 0x17d0: 0x199, 0x17d1: 0x19a, 0x17d2: 0x19b, 0x17d3: 0x19c, 0x17d4: 0x19d, 0x17d5: 0x19e, 0x17d7: 0x19f, + 0x17d8: 0x1a0, 0x17d9: 0x1a1, 0x17da: 0x1a2, 0x17db: 0x1a3, 0x17dc: 0x1a4, 0x17dd: 0x1a5, + // Block 0x60, offset 0x1800 + 0x1810: 0x09, 0x1811: 0x0a, 0x1812: 0x0b, 0x1813: 0x0c, 0x1816: 0x0d, + 0x181b: 0x0e, 0x181d: 0x0f, 0x181e: 0x10, 0x181f: 0x5d, + 0x182f: 0x12, + // Block 0x61, offset 0x1840 + 0x1842: 0x01, 0x1843: 0x27a, 0x1844: 0x27b, 0x1845: 0x27c, 0x1846: 0x27d, 0x1847: 0x27e, + 0x1848: 0x27f, 0x1849: 0x08, 0x184a: 0x280, 0x184b: 0x0a, 0x184c: 0x0b, 0x184d: 0x0c, 0x184e: 0x0d, 0x184f: 0x0e, + 0x1850: 0x0f, 0x1851: 0x10, 0x1852: 0x11, 0x1853: 0x12, 0x1854: 0x13, 0x1855: 0x14, 0x1856: 0x15, 0x1857: 0x16, + 0x1858: 0x17, 0x1859: 0x18, 0x185a: 0x19, 0x185b: 0x1a, 0x185c: 0x1b, 0x185d: 0x1c, 0x185e: 0x1d, 0x185f: 0x1e, + 0x1860: 0x01, 0x1861: 0x59, 0x1862: 0x5a, 0x1863: 0x5b, 0x1864: 0x05, + 0x186a: 0x06, 0x186d: 0x07, 0x186f: 0x5c, + 0x1870: 0x5e, 0x1873: 0x15, + // Block 0x62, offset 0x1880 + 0x1882: 0x01, 0x1883: 0x02, 0x1884: 0x03, 0x1885: 0x04, 0x1886: 0x05, 0x1887: 0x06, + 0x1888: 0x07, 0x1889: 0x08, 0x188a: 0x09, 0x188b: 0x0a, 0x188c: 0x0b, 0x188d: 0x0c, 0x188e: 0x0d, 0x188f: 0x0e, + 0x1890: 0x0f, 0x1891: 0x10, 0x1892: 0x11, 0x1893: 0x12, 0x1894: 0x13, 0x1895: 0x14, 0x1896: 0x15, 0x1897: 0x28d, + 0x1898: 0x17, 0x1899: 0x18, 0x189a: 0x19, 0x189b: 0x1a, 0x189c: 0x1b, 0x189d: 0x1c, 0x189e: 0x1d, 0x189f: 0x1e, + 0x18a0: 0x01, 0x18a1: 0x02, 0x18a2: 0x03, 0x18a3: 0x04, 0x18a4: 0x05, + 0x18aa: 0x06, 0x18ad: 0x07, 0x18af: 0x08, + 0x18b0: 0x13, 0x18b3: 0x15, + // Block 0x63, offset 0x18c0 + 0x18e0: 0x1f, 0x18e1: 0x20, 0x18e2: 0x21, 0x18e3: 0x22, 0x18e4: 0x28e, 0x18e5: 0x24, 0x18e6: 0x25, 0x18e7: 0x26, + 0x18e8: 0x27, 0x18e9: 0x28, 0x18ea: 0x29, 0x18eb: 0x2a, 0x18ec: 0x2b, 0x18ed: 0x2c, 0x18ee: 0x2d, 0x18ef: 0x2e, + 0x18f0: 0x2f, 0x18f1: 0x30, 0x18f2: 0x31, 0x18f3: 0x32, 0x18f4: 0x33, 0x18f5: 0x34, 0x18f6: 0x35, 0x18f7: 0x36, + 0x18f8: 0x37, 0x18f9: 0x38, 0x18fa: 0x39, 0x18fb: 0x3a, 0x18fc: 0x3b, 0x18fd: 0x3c, 0x18fe: 0x3d, 0x18ff: 0x3e, + // Block 0x64, offset 0x1900 + 0x1902: 0x01, 0x1903: 0x02, 0x1904: 0x03, 0x1905: 0x04, 0x1906: 0x05, 0x1907: 0x06, + 0x1908: 0x07, 0x1909: 0x08, 0x190a: 0x09, 0x190b: 0x0a, 0x190c: 0x0b, 0x190d: 0x0c, 0x190e: 0x0d, 0x190f: 0x0e, + 0x1910: 0x0f, 0x1911: 0x10, 0x1912: 0x11, 0x1913: 0x12, 0x1914: 0x13, 0x1915: 0x14, 0x1916: 0x15, 0x1917: 0x16, + 0x1918: 0x17, 0x1919: 0x18, 0x191a: 0x19, 0x191b: 0x1a, 0x191c: 0x1b, 0x191d: 0x1c, 0x191e: 0x1d, 0x191f: 0x1e, + 0x1920: 0x61, 0x1921: 0x02, 0x1922: 0x03, 0x1923: 0x04, 0x1924: 0x05, + 0x192a: 0x06, 0x192d: 0x07, 0x192f: 0x08, + 0x1930: 0x13, 0x1933: 0x15, + // Block 0x65, offset 0x1940 + 0x1940: 0x3f, 0x1941: 0x40, 0x1942: 0x41, 0x1943: 0x42, 0x1944: 0x43, 0x1945: 0x44, 0x1946: 0x45, 0x1947: 0x46, + 0x1948: 0x47, 0x1949: 0x48, 0x194a: 0x49, 0x194b: 0x4a, 0x194c: 0x4b, 0x194d: 0x4c, 0x194e: 0x4d, 0x194f: 0x4e, + 0x1950: 0x4f, 0x1951: 0x50, 0x1952: 0x51, 0x1953: 0x52, 0x1954: 0x53, 0x1955: 0x54, 0x1956: 0x55, 0x1957: 0x56, + 0x1958: 0x57, 0x1959: 0x58, 0x195a: 0x59, 0x195b: 0x5a, 0x195c: 0x5b, 0x195d: 0x5c, 0x195e: 0x5d, 0x195f: 0x5e, + 0x1960: 0x5f, 0x1961: 0x60, 0x1962: 0x61, 0x1963: 0x62, 0x1964: 0x63, 0x1965: 0x64, 0x1966: 0x65, 0x1967: 0x66, + 0x1968: 0x67, 0x1969: 0x68, 0x196a: 0x69, 0x196c: 0x6a, 0x196d: 0x6b, 0x196e: 0x6c, 0x196f: 0x6d, + 0x1970: 0x6e, 0x1971: 0x6f, 0x1973: 0x70, 0x1974: 0x71, 0x1975: 0x72, 0x1976: 0x73, 0x1977: 0x74, + 0x1978: 0x294, 0x1979: 0x1f2, 0x197a: 0x77, 0x197b: 0x78, 0x197c: 0x79, 0x197d: 0x7a, 0x197e: 0x7b, 0x197f: 0x7c, + // Block 0x66, offset 0x1980 + 0x1982: 0x01, 0x1983: 0x02, 0x1984: 0x291, 0x1985: 0x292, 0x1986: 0x05, 0x1987: 0x293, + 0x1988: 0x07, 0x1989: 0x08, 0x198a: 0x09, 0x198b: 0x0a, 0x198c: 0x0b, 0x198d: 0x0c, 0x198e: 0x0d, 0x198f: 0x0e, + 0x1990: 0x0f, 0x1991: 0x10, 0x1992: 0x11, 0x1993: 0x12, 0x1994: 0x13, 0x1995: 0x14, 0x1996: 0x15, 0x1997: 0x16, + 0x1998: 0x17, 0x1999: 0x18, 0x199a: 0x19, 0x199b: 0x1a, 0x199c: 0x1b, 0x199d: 0x1c, 0x199e: 0x1d, 0x199f: 0x1e, + 0x19a0: 0x01, 0x19a1: 0x63, 0x19a2: 0x03, 0x19a3: 0x04, 0x19a4: 0x05, + 0x19aa: 0x06, 0x19ad: 0x07, 0x19af: 0x08, + 0x19b0: 0x13, 0x19b3: 0x15, + // Block 0x67, offset 0x19c0 + 0x19c0: 0x3f, 0x19c1: 0x40, 0x19c2: 0x41, 0x19c3: 0x42, 0x19c4: 0x43, 0x19c5: 0x44, 0x19c6: 0x45, 0x19c7: 0x46, + 0x19c8: 0x47, 0x19c9: 0x48, 0x19ca: 0x49, 0x19cb: 0x4a, 0x19cc: 0x4b, 0x19cd: 0x4c, 0x19ce: 0x4d, 0x19cf: 0x4e, + 0x19d0: 0x4f, 0x19d1: 0x50, 0x19d2: 0x51, 0x19d3: 0x52, 0x19d4: 0x53, 0x19d5: 0x54, 0x19d6: 0x55, 0x19d7: 0x56, + 0x19d8: 0x57, 0x19d9: 0x58, 0x19da: 0x59, 0x19db: 0x5a, 0x19dc: 0x5b, 0x19dd: 0x5c, 0x19de: 0x5d, 0x19df: 0x5e, + 0x19e0: 0x5f, 0x19e1: 0x60, 0x19e2: 0x61, 0x19e3: 0x62, 0x19e4: 0x63, 0x19e5: 0x64, 0x19e6: 0x65, 0x19e7: 0x66, + 0x19e8: 0x67, 0x19e9: 0x68, 0x19ea: 0x69, 0x19ec: 0x6a, 0x19ed: 0x6b, 0x19ee: 0x6c, 0x19ef: 0x6d, + 0x19f0: 0x6e, 0x19f1: 0x6f, 0x19f3: 0x70, 0x19f4: 0x71, 0x19f5: 0x72, 0x19f6: 0x73, 0x19f7: 0x74, + 0x19f8: 0x75, 0x19f9: 0x1df, 0x19fa: 0x77, 0x19fb: 0x78, 0x19fc: 0x79, 0x19fd: 0x7a, 0x19fe: 0x7b, 0x19ff: 0x7c, + // Block 0x68, offset 0x1a00 + 0x1a02: 0x01, 0x1a03: 0x297, 0x1a04: 0x03, 0x1a05: 0x298, 0x1a06: 0x05, 0x1a07: 0x299, + 0x1a08: 0x29a, 0x1a09: 0x08, 0x1a0a: 0x09, 0x1a0b: 0x0a, 0x1a0c: 0x0b, 0x1a0d: 0x0c, 0x1a0e: 0x0d, 0x1a0f: 0x0e, + 0x1a10: 0x0f, 0x1a11: 0x10, 0x1a12: 0x11, 0x1a13: 0x12, 0x1a14: 0x13, 0x1a15: 0x14, 0x1a16: 0x15, 0x1a17: 0x16, + 0x1a18: 0x17, 0x1a19: 0x18, 0x1a1a: 0x19, 0x1a1b: 0x1a, 0x1a1c: 0x1b, 0x1a1d: 0x1c, 0x1a1e: 0x1d, 0x1a1f: 0x1e, + 0x1a20: 0x01, 0x1a21: 0x65, 0x1a22: 0x03, 0x1a23: 0x04, 0x1a24: 0x05, + 0x1a2a: 0x06, 0x1a2d: 0x07, 0x1a2f: 0x08, + 0x1a30: 0x13, 0x1a33: 0x15, + // Block 0x69, offset 0x1a40 + 0x1a42: 0x01, 0x1a43: 0x02, 0x1a44: 0x03, 0x1a45: 0x04, 0x1a46: 0x05, 0x1a47: 0x06, + 0x1a48: 0x07, 0x1a49: 0x08, 0x1a4a: 0x09, 0x1a4b: 0x0a, 0x1a4c: 0x0b, 0x1a4d: 0x0c, 0x1a4e: 0x0d, 0x1a4f: 0x0e, + 0x1a50: 0x0f, 0x1a51: 0x10, 0x1a52: 0x11, 0x1a53: 0x12, 0x1a54: 0x29b, 0x1a55: 0x14, 0x1a56: 0x29c, 0x1a57: 0x16, + 0x1a58: 0x17, 0x1a59: 0x18, 0x1a5a: 0x19, 0x1a5b: 0x1a, 0x1a5c: 0x1b, 0x1a5d: 0x1c, 0x1a5e: 0x1d, 0x1a5f: 0x1e, + 0x1a60: 0x01, 0x1a61: 0x02, 0x1a62: 0x03, 0x1a63: 0x04, 0x1a64: 0x05, + 0x1a6a: 0x06, 0x1a6d: 0x07, 0x1a6f: 0x08, + 0x1a70: 0x13, 0x1a73: 0x15, + // Block 0x6a, offset 0x1a80 + 0x1a80: 0x3f, 0x1a81: 0x40, 0x1a82: 0x41, 0x1a83: 0x42, 0x1a84: 0x43, 0x1a85: 0x44, 0x1a86: 0x45, 0x1a87: 0x46, + 0x1a88: 0x47, 0x1a89: 0x48, 0x1a8a: 0x49, 0x1a8b: 0x4a, 0x1a8c: 0x4b, 0x1a8d: 0x4c, 0x1a8e: 0x4d, 0x1a8f: 0x4e, + 0x1a90: 0x4f, 0x1a91: 0x50, 0x1a92: 0x51, 0x1a93: 0x52, 0x1a94: 0x53, 0x1a95: 0x54, 0x1a96: 0x55, 0x1a97: 0x56, + 0x1a98: 0x57, 0x1a99: 0x58, 0x1a9a: 0x59, 0x1a9b: 0x5a, 0x1a9c: 0x5b, 0x1a9d: 0x5c, 0x1a9e: 0x5d, 0x1a9f: 0x5e, + 0x1aa0: 0x5f, 0x1aa1: 0x60, 0x1aa2: 0x61, 0x1aa3: 0x62, 0x1aa4: 0x63, 0x1aa5: 0x64, 0x1aa6: 0x65, 0x1aa7: 0x66, + 0x1aa8: 0x67, 0x1aa9: 0x68, 0x1aaa: 0x69, 0x1aac: 0x6a, 0x1aad: 0x6b, 0x1aae: 0x6c, 0x1aaf: 0x6d, + 0x1ab0: 0x6e, 0x1ab1: 0x6f, 0x1ab3: 0x70, 0x1ab4: 0x71, 0x1ab5: 0x72, 0x1ab6: 0x73, 0x1ab7: 0x74, + 0x1ab8: 0x75, 0x1ab9: 0x29f, 0x1aba: 0x77, 0x1abb: 0x2a0, 0x1abc: 0x79, 0x1abd: 0x7a, 0x1abe: 0x7b, 0x1abf: 0x7c, + // Block 0x6b, offset 0x1ac0 + 0x1ac2: 0x01, 0x1ac3: 0x02, 0x1ac4: 0x03, 0x1ac5: 0x04, 0x1ac6: 0x05, 0x1ac7: 0x06, + 0x1ac8: 0x07, 0x1ac9: 0x08, 0x1aca: 0x09, 0x1acb: 0x0a, 0x1acc: 0x0b, 0x1acd: 0x0c, 0x1ace: 0x0d, 0x1acf: 0x0e, + 0x1ad0: 0x0f, 0x1ad1: 0x10, 0x1ad2: 0x11, 0x1ad3: 0x12, 0x1ad4: 0x13, 0x1ad5: 0x14, 0x1ad6: 0x15, 0x1ad7: 0x16, + 0x1ad8: 0x17, 0x1ad9: 0x18, 0x1ada: 0x19, 0x1adb: 0x1a, 0x1adc: 0x1b, 0x1add: 0x1c, 0x1ade: 0x1d, 0x1adf: 0x1e, + 0x1ae0: 0x01, 0x1ae1: 0x68, 0x1ae2: 0x03, 0x1ae3: 0x04, 0x1ae4: 0x05, + 0x1aea: 0x06, 0x1aed: 0x07, 0x1aef: 0x08, + 0x1af0: 0x13, 0x1af3: 0x15, + // Block 0x6c, offset 0x1b00 + 0x1b00: 0x3f, 0x1b01: 0x40, 0x1b02: 0x41, 0x1b03: 0x42, 0x1b04: 0x43, 0x1b05: 0x44, 0x1b06: 0x45, 0x1b07: 0x46, + 0x1b08: 0x47, 0x1b09: 0x48, 0x1b0a: 0x49, 0x1b0b: 0x4a, 0x1b0c: 0x4b, 0x1b0d: 0x4c, 0x1b0e: 0x4d, 0x1b0f: 0x4e, + 0x1b10: 0x4f, 0x1b11: 0x50, 0x1b12: 0x51, 0x1b13: 0x52, 0x1b14: 0x53, 0x1b15: 0x54, 0x1b16: 0x55, 0x1b17: 0x56, + 0x1b18: 0x57, 0x1b19: 0x58, 0x1b1a: 0x59, 0x1b1b: 0x5a, 0x1b1c: 0x5b, 0x1b1d: 0x5c, 0x1b1e: 0x5d, 0x1b1f: 0x5e, + 0x1b20: 0x5f, 0x1b21: 0x60, 0x1b22: 0x61, 0x1b23: 0x62, 0x1b24: 0x63, 0x1b25: 0x64, 0x1b26: 0x65, 0x1b27: 0x66, + 0x1b28: 0x67, 0x1b29: 0x68, 0x1b2a: 0x69, 0x1b2c: 0x6a, 0x1b2d: 0x6b, 0x1b2e: 0x6c, 0x1b2f: 0x6d, + 0x1b30: 0x6e, 0x1b31: 0x6f, 0x1b33: 0x70, 0x1b34: 0x71, 0x1b35: 0x72, 0x1b36: 0x1fc, 0x1b37: 0x74, + 0x1b38: 0x2a7, 0x1b39: 0x2a8, 0x1b3a: 0x2a9, 0x1b3b: 0x2aa, 0x1b3c: 0x79, 0x1b3d: 0x7a, 0x1b3e: 0x7b, 0x1b3f: 0x7c, + // Block 0x6d, offset 0x1b40 + 0x1b42: 0x01, 0x1b43: 0x2a3, 0x1b44: 0x2a4, 0x1b45: 0x04, 0x1b46: 0x05, 0x1b47: 0x2a5, + 0x1b48: 0x2a6, 0x1b49: 0x08, 0x1b4a: 0x09, 0x1b4b: 0x0a, 0x1b4c: 0x0b, 0x1b4d: 0x0c, 0x1b4e: 0x0d, 0x1b4f: 0x0e, + 0x1b50: 0x0f, 0x1b51: 0x10, 0x1b52: 0x11, 0x1b53: 0x12, 0x1b54: 0x13, 0x1b55: 0x14, 0x1b56: 0x15, 0x1b57: 0x16, + 0x1b58: 0x17, 0x1b59: 0x18, 0x1b5a: 0x19, 0x1b5b: 0x1a, 0x1b5c: 0x1b, 0x1b5d: 0x1c, 0x1b5e: 0x1d, 0x1b5f: 0x1e, + 0x1b60: 0x01, 0x1b61: 0x6a, 0x1b62: 0x30, 0x1b63: 0x04, 0x1b64: 0x05, + 0x1b6a: 0x06, 0x1b6d: 0x07, 0x1b6f: 0x08, + 0x1b70: 0x13, 0x1b73: 0x15, + // Block 0x6e, offset 0x1b80 + 0x1b80: 0x2ab, 0x1b81: 0x2ac, 0x1b82: 0x2ad, 0x1b83: 0x2ae, 0x1b84: 0x2af, 0x1b85: 0x2b0, 0x1b86: 0xc0, 0x1b87: 0x2b1, + 0x1b88: 0x2b2, 0x1b89: 0x2b3, 0x1b8a: 0xc4, 0x1b8b: 0x2b4, 0x1b8c: 0xc6, 0x1b8d: 0x2b5, 0x1b8e: 0xc8, 0x1b8f: 0x2b6, + // Block 0x6f, offset 0x1bc0 + 0x1bf7: 0xca, + 0x1bf8: 0x2b7, 0x1bf9: 0x2b8, 0x1bfa: 0x2b9, 0x1bfb: 0x2ba, 0x1bfc: 0x2bb, 0x1bfd: 0x2bc, 0x1bfe: 0x2bd, 0x1bff: 0x2be, + // Block 0x70, offset 0x1c00 + 0x1c00: 0x2bf, 0x1c01: 0x2c0, 0x1c02: 0x2c1, 0x1c03: 0x2c2, 0x1c04: 0x2c3, 0x1c05: 0x2c4, 0x1c06: 0x2c5, 0x1c07: 0x2c6, + 0x1c08: 0x2c7, 0x1c09: 0x2c8, 0x1c0a: 0x2c9, 0x1c0b: 0x2ca, 0x1c0c: 0x2cb, 0x1c0d: 0x2cc, 0x1c0e: 0x2cd, 0x1c0f: 0x2ce, + 0x1c10: 0x2cf, 0x1c11: 0x2d0, 0x1c12: 0x2d1, 0x1c13: 0x2d2, 0x1c14: 0x2d3, 0x1c15: 0x2d4, 0x1c16: 0x2d5, 0x1c17: 0x2d6, + 0x1c18: 0x2d7, 0x1c19: 0x2d8, 0x1c1a: 0x2d9, 0x1c1b: 0x2da, 0x1c1c: 0x2db, 0x1c1d: 0x2dc, 0x1c1e: 0x2dd, 0x1c1f: 0x2de, + 0x1c20: 0x2df, 0x1c21: 0x2e0, 0x1c22: 0x2e1, 0x1c23: 0x2e2, 0x1c24: 0x2e3, 0x1c25: 0x2e4, 0x1c26: 0x2e5, 0x1c27: 0x2e6, + 0x1c28: 0x2e7, 0x1c29: 0x2e8, 0x1c2a: 0x2e9, 0x1c2b: 0x2ea, 0x1c2c: 0x2eb, 0x1c2d: 0x2ec, 0x1c2e: 0x2ed, 0x1c2f: 0x2ee, + 0x1c30: 0x2ef, 0x1c31: 0x2f0, 0x1c32: 0x2f1, 0x1c33: 0x2f2, 0x1c34: 0x2f3, 0x1c35: 0x2f4, 0x1c36: 0x2f5, 0x1c37: 0x2f6, + 0x1c38: 0x2f7, 0x1c39: 0x2f8, 0x1c3a: 0x2f9, 0x1c3b: 0x2fa, 0x1c3c: 0x2fb, 0x1c3d: 0x2fc, 0x1c3e: 0x2fd, 0x1c3f: 0x2fe, + // Block 0x71, offset 0x1c40 + 0x1c40: 0x2ff, 0x1c41: 0x300, 0x1c42: 0x301, 0x1c43: 0x302, 0x1c44: 0x303, 0x1c45: 0x304, 0x1c46: 0x305, 0x1c47: 0x306, + 0x1c48: 0x307, 0x1c49: 0x308, 0x1c4a: 0x309, 0x1c4b: 0x30a, 0x1c4c: 0x30b, 0x1c4d: 0x30c, 0x1c4e: 0x30d, 0x1c4f: 0x30e, + 0x1c50: 0x30f, 0x1c51: 0x310, 0x1c52: 0x311, 0x1c53: 0x312, 0x1c54: 0x313, 0x1c55: 0x314, 0x1c56: 0x315, 0x1c57: 0x316, + 0x1c58: 0x317, 0x1c59: 0x318, 0x1c5a: 0x319, 0x1c5b: 0x31a, 0x1c5c: 0x31b, 0x1c5d: 0x31c, 0x1c5e: 0x31d, 0x1c5f: 0x31e, + 0x1c60: 0x31f, 0x1c61: 0x320, 0x1c62: 0x321, 0x1c63: 0x322, 0x1c64: 0x323, 0x1c65: 0x324, 0x1c66: 0x325, 0x1c67: 0x326, + 0x1c68: 0x327, 0x1c69: 0x328, 0x1c6a: 0x329, 0x1c6b: 0x32a, 0x1c6c: 0x32b, 0x1c6d: 0x32c, 0x1c6e: 0x32d, 0x1c6f: 0x32e, + 0x1c70: 0x32f, 0x1c71: 0x330, 0x1c72: 0x331, 0x1c73: 0x332, 0x1c74: 0x333, 0x1c75: 0x334, 0x1c76: 0x335, 0x1c77: 0x336, + 0x1c78: 0x337, 0x1c79: 0x338, 0x1c7a: 0x339, 0x1c7b: 0x33a, 0x1c7c: 0x33b, 0x1c7d: 0x33c, 0x1c7e: 0x33d, 0x1c7f: 0x33e, + // Block 0x72, offset 0x1c80 + 0x1c80: 0x33f, 0x1c81: 0x340, 0x1c82: 0x341, 0x1c83: 0x342, 0x1c84: 0x343, 0x1c85: 0x344, 0x1c86: 0x345, 0x1c87: 0x346, + 0x1c88: 0x347, 0x1c89: 0x348, 0x1c8a: 0x349, 0x1c8b: 0x34a, 0x1c8c: 0x34b, 0x1c8d: 0x34c, 0x1c8e: 0x34d, 0x1c8f: 0x34e, + 0x1c90: 0x34f, 0x1c91: 0x350, 0x1c92: 0x351, 0x1c93: 0x352, 0x1c94: 0x353, 0x1c95: 0x354, 0x1c96: 0x355, 0x1c97: 0x356, + 0x1c98: 0x357, 0x1c99: 0x358, 0x1c9a: 0x359, 0x1c9b: 0x35a, 0x1c9c: 0x35b, 0x1c9d: 0x35c, 0x1c9e: 0x35d, 0x1c9f: 0x35e, + 0x1ca0: 0x35f, 0x1ca1: 0x360, 0x1ca2: 0x361, 0x1ca3: 0x362, 0x1ca4: 0x363, 0x1ca5: 0x364, 0x1ca6: 0x365, 0x1ca7: 0x366, + 0x1ca8: 0x367, 0x1ca9: 0x368, 0x1caa: 0x369, 0x1cab: 0x36a, 0x1cac: 0x36b, 0x1cad: 0x36c, 0x1cae: 0x36d, 0x1caf: 0x36e, + 0x1cb0: 0x36f, 0x1cb1: 0x370, 0x1cb2: 0x371, 0x1cb3: 0x372, 0x1cb4: 0x373, 0x1cb5: 0x374, 0x1cb6: 0x375, 0x1cb7: 0x376, + 0x1cb8: 0x377, 0x1cb9: 0x378, 0x1cba: 0x379, 0x1cbc: 0x37a, 0x1cbd: 0x37b, 0x1cbe: 0x37c, 0x1cbf: 0x37d, + // Block 0x73, offset 0x1cc0 + 0x1cc0: 0x37e, 0x1cc1: 0x37f, 0x1cc2: 0x380, 0x1cc3: 0x381, 0x1cc4: 0x382, 0x1cc5: 0x383, 0x1cc6: 0x384, 0x1cc7: 0x385, + 0x1cc8: 0x386, 0x1cc9: 0x387, 0x1cca: 0x388, 0x1ccb: 0x389, 0x1ccc: 0x38a, 0x1ccd: 0x38b, 0x1cce: 0x38c, 0x1ccf: 0x38d, + 0x1cd0: 0x38e, 0x1cd1: 0x38f, 0x1cd2: 0x390, 0x1cd3: 0x391, 0x1cd4: 0x392, 0x1cd5: 0x393, 0x1cd6: 0x394, 0x1cd7: 0x395, + 0x1cd8: 0x396, 0x1cd9: 0x397, 0x1cda: 0x398, 0x1cdb: 0x399, 0x1cdc: 0x39a, 0x1cdd: 0x39b, 0x1cde: 0x39c, 0x1cdf: 0x39d, + 0x1ce0: 0x39e, 0x1ce1: 0x39f, 0x1ce2: 0x3a0, 0x1ce3: 0x3a1, 0x1ce4: 0x3a2, 0x1ce5: 0x3a3, 0x1ce6: 0x3a4, 0x1ce7: 0x3a5, + 0x1ce8: 0x3a6, 0x1ce9: 0x3a7, 0x1cea: 0x3a8, 0x1ceb: 0x3a9, 0x1cec: 0x3aa, 0x1ced: 0x3ab, 0x1cee: 0x3ac, + 0x1cf0: 0x3ad, 0x1cf1: 0x3ae, 0x1cf2: 0x3af, 0x1cf3: 0x3b0, 0x1cf4: 0x3b1, 0x1cf5: 0x3b2, 0x1cf6: 0x3b3, 0x1cf7: 0x3b4, + 0x1cf8: 0x3b5, 0x1cf9: 0x3b6, 0x1cfa: 0x3b7, 0x1cfb: 0x3b8, 0x1cfc: 0x3b9, 0x1cfd: 0x3ba, 0x1cfe: 0x3bb, 0x1cff: 0x3bc, + // Block 0x74, offset 0x1d00 + 0x1d00: 0x3bd, 0x1d01: 0x3be, 0x1d02: 0x3bf, 0x1d03: 0x3c0, 0x1d04: 0x3c1, 0x1d05: 0x3c2, 0x1d06: 0x3c3, 0x1d07: 0x3c4, + 0x1d08: 0x3c5, 0x1d09: 0x3c6, 0x1d0a: 0x3c7, 0x1d0b: 0x3c8, 0x1d0c: 0x3c9, 0x1d0d: 0x3ca, 0x1d0e: 0x3cb, 0x1d0f: 0x3cc, + 0x1d10: 0x3cd, 0x1d11: 0x3ce, 0x1d12: 0x3cf, 0x1d15: 0x3d0, 0x1d16: 0x3d1, 0x1d17: 0x3d2, + 0x1d18: 0x3d3, 0x1d19: 0x3d4, 0x1d1a: 0x3d5, 0x1d1b: 0x3d6, 0x1d1c: 0x3d7, 0x1d1d: 0x3d8, 0x1d1e: 0x3d9, 0x1d1f: 0x3da, + 0x1d20: 0x3db, 0x1d21: 0x3dc, 0x1d22: 0x3dd, 0x1d23: 0x3de, 0x1d24: 0x3df, 0x1d25: 0x3e0, 0x1d26: 0x3e1, 0x1d27: 0x3e2, + 0x1d28: 0x3e3, 0x1d29: 0x3e4, 0x1d2a: 0x3e5, 0x1d2b: 0x3e6, 0x1d2c: 0x3e7, 0x1d2d: 0x3e8, 0x1d2e: 0x3e9, 0x1d2f: 0x3ea, + 0x1d30: 0x3eb, 0x1d31: 0x3ec, 0x1d33: 0x3ed, 0x1d34: 0x3ee, 0x1d35: 0x3ef, 0x1d36: 0x3f0, 0x1d37: 0x3f1, + 0x1d38: 0x3f2, 0x1d39: 0x3f3, 0x1d3a: 0x3f4, 0x1d3b: 0x3f5, 0x1d3c: 0x3f6, 0x1d3d: 0x3f7, 0x1d3e: 0x3f8, + // Block 0x75, offset 0x1d40 + 0x1d64: 0x3f9, 0x1d65: 0x3fa, 0x1d66: 0x3fb, 0x1d67: 0x3fc, + 0x1d68: 0x3fd, 0x1d69: 0x3fe, 0x1d6a: 0x3ff, 0x1d6b: 0x400, 0x1d6c: 0x103, 0x1d6d: 0x104, 0x1d6e: 0x105, 0x1d6f: 0x106, + 0x1d70: 0x107, 0x1d71: 0x108, 0x1d72: 0x109, 0x1d73: 0x10a, 0x1d74: 0x10b, 0x1d75: 0x10c, 0x1d76: 0x10d, 0x1d77: 0x10e, + 0x1d78: 0x10f, 0x1d79: 0x110, 0x1d7a: 0x111, 0x1d7b: 0x112, 0x1d7c: 0x401, 0x1d7d: 0x402, 0x1d7e: 0x403, 0x1d7f: 0x404, + // Block 0x76, offset 0x1d80 + 0x1d80: 0x18b, 0x1d81: 0x18c, 0x1d82: 0x18d, 0x1d83: 0x18e, 0x1d84: 0x18f, 0x1d85: 0x190, 0x1d86: 0x191, 0x1d87: 0x192, + 0x1d88: 0x193, 0x1d89: 0x405, 0x1d8c: 0x195, 0x1d8d: 0x196, 0x1d8e: 0x197, 0x1d8f: 0x198, + 0x1d90: 0x199, 0x1d91: 0x19a, 0x1d92: 0x19b, 0x1d93: 0x19c, 0x1d94: 0x19d, 0x1d95: 0x19e, 0x1d97: 0x19f, + 0x1d98: 0x1a0, 0x1d99: 0x1a1, 0x1d9a: 0x1a2, 0x1d9b: 0x1a3, 0x1d9c: 0x1a4, 0x1d9d: 0x1a5, + // Block 0x77, offset 0x1dc0 + 0x1de0: 0x406, 0x1de1: 0x407, 0x1de2: 0x408, 0x1de3: 0x409, 0x1de4: 0x40a, 0x1de5: 0x40b, 0x1de6: 0x40c, 0x1de7: 0x40d, + 0x1de8: 0x40e, + // Block 0x78, offset 0x1e00 + 0x1e10: 0x09, 0x1e11: 0x0a, 0x1e12: 0x0b, 0x1e13: 0x0c, 0x1e16: 0x0d, + 0x1e1b: 0x0e, 0x1e1d: 0x0f, 0x1e1e: 0x10, 0x1e1f: 0x74, + 0x1e2f: 0x75, + // Block 0x79, offset 0x1e40 + 0x1e42: 0x01, 0x1e43: 0x02, 0x1e44: 0x03, 0x1e45: 0x04, 0x1e46: 0x05, 0x1e47: 0x06, + 0x1e48: 0x07, 0x1e49: 0x08, 0x1e4a: 0x09, 0x1e4b: 0x0a, 0x1e4c: 0x0b, 0x1e4d: 0x0c, 0x1e4e: 0x0d, 0x1e4f: 0x0e, + 0x1e50: 0x0f, 0x1e51: 0x10, 0x1e52: 0x11, 0x1e53: 0x12, 0x1e54: 0x13, 0x1e55: 0x14, 0x1e56: 0x15, 0x1e57: 0x16, + 0x1e58: 0x17, 0x1e59: 0x18, 0x1e5a: 0x19, 0x1e5b: 0x1a, 0x1e5c: 0x1b, 0x1e5d: 0x1c, 0x1e5e: 0x1d, 0x1e5f: 0x1e, + 0x1e60: 0x01, 0x1e61: 0x02, 0x1e62: 0x03, 0x1e63: 0x6c, 0x1e64: 0x6d, 0x1e65: 0x6e, 0x1e66: 0x6f, 0x1e67: 0x70, + 0x1e68: 0x71, 0x1e69: 0x72, 0x1e6a: 0x06, 0x1e6d: 0x07, 0x1e6f: 0x73, + 0x1e70: 0x76, 0x1e73: 0x15, + // Block 0x7a, offset 0x1e80 + 0x1e82: 0x01, 0x1e83: 0x02, 0x1e84: 0x03, 0x1e85: 0x04, 0x1e86: 0x05, 0x1e87: 0x06, + 0x1e88: 0x07, 0x1e89: 0x08, 0x1e8a: 0x09, 0x1e8b: 0x0a, 0x1e8c: 0x0b, 0x1e8d: 0x0c, 0x1e8e: 0x0d, 0x1e8f: 0x0e, + 0x1e90: 0x40f, 0x1e91: 0x410, 0x1e92: 0x411, 0x1e93: 0x12, 0x1e94: 0x13, 0x1e95: 0x14, 0x1e96: 0x15, 0x1e97: 0x16, + 0x1e98: 0x17, 0x1e99: 0x18, 0x1e9a: 0x19, 0x1e9b: 0x1a, 0x1e9c: 0x1b, 0x1e9d: 0x1c, 0x1e9e: 0x1d, 0x1e9f: 0x1e, + 0x1ea0: 0x01, 0x1ea1: 0x02, 0x1ea2: 0x03, 0x1ea3: 0x04, 0x1ea4: 0x05, + 0x1eaa: 0x06, 0x1ead: 0x07, 0x1eaf: 0x08, + 0x1eb0: 0x13, 0x1eb3: 0x15, + // Block 0x7b, offset 0x1ec0 + 0x1ec2: 0x01, 0x1ec3: 0x1f7, 0x1ec4: 0x414, 0x1ec5: 0x1f9, 0x1ec6: 0x05, 0x1ec7: 0x1fa, + 0x1ec8: 0x1fb, 0x1ec9: 0x08, 0x1eca: 0x09, 0x1ecb: 0x0a, 0x1ecc: 0x0b, 0x1ecd: 0x0c, 0x1ece: 0x0d, 0x1ecf: 0x0e, + 0x1ed0: 0x0f, 0x1ed1: 0x10, 0x1ed2: 0x11, 0x1ed3: 0x12, 0x1ed4: 0x13, 0x1ed5: 0x14, 0x1ed6: 0x15, 0x1ed7: 0x16, + 0x1ed8: 0x17, 0x1ed9: 0x18, 0x1eda: 0x19, 0x1edb: 0x1a, 0x1edc: 0x1b, 0x1edd: 0x1c, 0x1ede: 0x1d, 0x1edf: 0x1e, + 0x1ee0: 0x01, 0x1ee1: 0x2f, 0x1ee2: 0x30, 0x1ee3: 0x04, 0x1ee4: 0x05, + 0x1eea: 0x06, 0x1eed: 0x07, 0x1eef: 0x08, + 0x1ef0: 0x13, 0x1ef3: 0x15, + // Block 0x7c, offset 0x1f00 + 0x1f00: 0x3f, 0x1f01: 0x40, 0x1f02: 0x41, 0x1f03: 0x42, 0x1f04: 0x43, 0x1f05: 0x44, 0x1f06: 0x45, 0x1f07: 0x46, + 0x1f08: 0x47, 0x1f09: 0x48, 0x1f0a: 0x49, 0x1f0b: 0x4a, 0x1f0c: 0x4b, 0x1f0d: 0x4c, 0x1f0e: 0x4d, 0x1f0f: 0x4e, + 0x1f10: 0x4f, 0x1f11: 0x50, 0x1f12: 0x51, 0x1f13: 0x52, 0x1f14: 0x53, 0x1f15: 0x54, 0x1f16: 0x55, 0x1f17: 0x56, + 0x1f18: 0x57, 0x1f19: 0x58, 0x1f1a: 0x59, 0x1f1b: 0x5a, 0x1f1c: 0x5b, 0x1f1d: 0x5c, 0x1f1e: 0x415, 0x1f1f: 0x416, + 0x1f20: 0x5f, 0x1f21: 0x60, 0x1f22: 0x61, 0x1f23: 0x62, 0x1f24: 0x63, 0x1f25: 0x64, 0x1f26: 0x65, 0x1f27: 0x66, + 0x1f28: 0x67, 0x1f29: 0x68, 0x1f2a: 0x69, 0x1f2c: 0x6a, 0x1f2d: 0x6b, 0x1f2e: 0x6c, 0x1f2f: 0x6d, + 0x1f30: 0x6e, 0x1f31: 0x6f, 0x1f33: 0x70, 0x1f34: 0x71, 0x1f35: 0x72, 0x1f36: 0x73, 0x1f37: 0x74, + 0x1f38: 0x75, 0x1f39: 0x76, 0x1f3a: 0x77, 0x1f3b: 0x78, 0x1f3c: 0x79, 0x1f3d: 0x7a, 0x1f3e: 0x7b, 0x1f3f: 0x7c, + // Block 0x7d, offset 0x1f40 + 0x1f42: 0x01, 0x1f43: 0x02, 0x1f44: 0x03, 0x1f45: 0x04, 0x1f46: 0x05, 0x1f47: 0x06, + 0x1f48: 0x07, 0x1f49: 0x08, 0x1f4a: 0x09, 0x1f4b: 0x0a, 0x1f4c: 0x0b, 0x1f4d: 0x0c, 0x1f4e: 0x0d, 0x1f4f: 0x0e, + 0x1f50: 0x0f, 0x1f51: 0x10, 0x1f52: 0x11, 0x1f53: 0x12, 0x1f54: 0x13, 0x1f55: 0x14, 0x1f56: 0x15, 0x1f57: 0x16, + 0x1f58: 0x17, 0x1f59: 0x18, 0x1f5a: 0x19, 0x1f5b: 0x1a, 0x1f5c: 0x1b, 0x1f5d: 0x1c, 0x1f5e: 0x1d, 0x1f5f: 0x1e, + 0x1f60: 0x01, 0x1f61: 0x7a, 0x1f62: 0x03, 0x1f63: 0x04, 0x1f64: 0x05, + 0x1f6a: 0x06, 0x1f6d: 0x07, 0x1f6f: 0x08, + 0x1f70: 0x13, 0x1f73: 0x15, + // Block 0x7e, offset 0x1f80 + 0x1fa0: 0x1f, 0x1fa1: 0x20, 0x1fa2: 0x21, 0x1fa3: 0x22, 0x1fa4: 0x23, 0x1fa5: 0x24, 0x1fa6: 0x25, 0x1fa7: 0x26, + 0x1fa8: 0x27, 0x1fa9: 0x28, 0x1faa: 0x29, 0x1fab: 0x2a, 0x1fac: 0x2b, 0x1fad: 0x2c, 0x1fae: 0x2d, 0x1faf: 0x2e, + 0x1fb0: 0x2f, 0x1fb1: 0x30, 0x1fb2: 0x417, 0x1fb3: 0x418, 0x1fb4: 0x33, 0x1fb5: 0x34, 0x1fb6: 0x35, 0x1fb7: 0x36, + 0x1fb8: 0x37, 0x1fb9: 0x38, 0x1fba: 0x39, 0x1fbb: 0x3a, 0x1fbc: 0x3b, 0x1fbd: 0x3c, 0x1fbe: 0x3d, 0x1fbf: 0x3e, + // Block 0x7f, offset 0x1fc0 + 0x1fc2: 0x01, 0x1fc3: 0x02, 0x1fc4: 0x03, 0x1fc5: 0x04, 0x1fc6: 0x05, 0x1fc7: 0x06, + 0x1fc8: 0x07, 0x1fc9: 0x08, 0x1fca: 0x09, 0x1fcb: 0x0a, 0x1fcc: 0x0b, 0x1fcd: 0x0c, 0x1fce: 0x0d, 0x1fcf: 0x0e, + 0x1fd0: 0x0f, 0x1fd1: 0x10, 0x1fd2: 0x11, 0x1fd3: 0x12, 0x1fd4: 0x13, 0x1fd5: 0x14, 0x1fd6: 0x15, 0x1fd7: 0x16, + 0x1fd8: 0x17, 0x1fd9: 0x18, 0x1fda: 0x19, 0x1fdb: 0x1a, 0x1fdc: 0x1b, 0x1fdd: 0x1c, 0x1fde: 0x1d, 0x1fdf: 0x1e, + 0x1fe0: 0x7c, 0x1fe1: 0x02, 0x1fe2: 0x03, 0x1fe3: 0x04, 0x1fe4: 0x05, + 0x1fea: 0x06, 0x1fed: 0x07, 0x1fef: 0x08, + 0x1ff0: 0x13, 0x1ff3: 0x15, + // Block 0x80, offset 0x2000 + 0x2000: 0xba, 0x2001: 0xbb, 0x2002: 0xbc, 0x2003: 0xbd, 0x2004: 0xbe, 0x2005: 0xbf, 0x2006: 0xc0, 0x2007: 0xc1, + 0x2008: 0x419, 0x2009: 0x2b3, 0x200a: 0xc4, 0x200b: 0x2b4, 0x200c: 0xc6, 0x200d: 0x2b5, 0x200e: 0xc8, 0x200f: 0x2b6, + // Block 0x81, offset 0x2040 + 0x2077: 0xca, + 0x2078: 0x41a, 0x2079: 0x41b, 0x207a: 0x41c, 0x207b: 0x41d, 0x207c: 0x41e, 0x207d: 0x41f, 0x207e: 0x420, 0x207f: 0x421, + // Block 0x82, offset 0x2080 + 0x2080: 0x422, 0x2081: 0x423, 0x2082: 0x424, 0x2083: 0x425, 0x2084: 0x426, 0x2085: 0x427, 0x2086: 0x428, 0x2087: 0x429, + 0x2088: 0x42a, 0x2089: 0x42b, 0x208a: 0x42c, 0x208b: 0x42d, 0x208c: 0x42e, 0x208d: 0x42f, 0x208e: 0x430, 0x208f: 0x431, + 0x2090: 0x432, 0x2091: 0x433, 0x2092: 0x434, 0x2093: 0x435, 0x2094: 0x436, 0x2095: 0x437, 0x2096: 0x438, 0x2097: 0x439, + 0x2098: 0x43a, 0x2099: 0x43b, 0x209a: 0x43c, 0x209b: 0x43d, 0x209c: 0x43e, 0x209d: 0x43f, 0x209e: 0x440, 0x209f: 0x441, + 0x20a0: 0x442, 0x20a1: 0x443, 0x20a2: 0x444, 0x20a3: 0x445, 0x20a4: 0x446, 0x20a5: 0x447, 0x20a6: 0x448, 0x20a7: 0x449, + 0x20a8: 0x44a, 0x20a9: 0x44b, 0x20aa: 0x44c, 0x20ab: 0x44d, 0x20ac: 0x44e, 0x20ad: 0x44f, 0x20ae: 0x450, 0x20af: 0x451, + 0x20b0: 0x452, 0x20b1: 0x453, 0x20b2: 0x454, 0x20b3: 0x455, 0x20b4: 0x456, 0x20b5: 0x457, 0x20b6: 0x458, 0x20b7: 0x459, + 0x20b8: 0x45a, 0x20b9: 0x45b, 0x20ba: 0x45c, 0x20bb: 0x45d, 0x20bc: 0x45e, 0x20bd: 0x45f, 0x20be: 0x460, 0x20bf: 0x461, + // Block 0x83, offset 0x20c0 + 0x20c0: 0x462, 0x20c1: 0x463, 0x20c2: 0x464, 0x20c3: 0x465, 0x20c4: 0x466, 0x20c5: 0x467, 0x20c6: 0x468, 0x20c7: 0x469, + 0x20c8: 0x46a, 0x20c9: 0x46b, 0x20ca: 0x46c, 0x20cb: 0x46d, 0x20cc: 0x46e, 0x20cd: 0x46f, 0x20ce: 0x470, 0x20cf: 0x471, + 0x20d0: 0x472, 0x20d1: 0x473, 0x20d2: 0x474, 0x20d3: 0x475, 0x20d4: 0x476, 0x20d5: 0x477, 0x20d6: 0x478, 0x20d7: 0x479, + 0x20d8: 0x47a, 0x20d9: 0x47b, 0x20da: 0x47c, 0x20db: 0x47d, 0x20dc: 0x47e, 0x20dd: 0x47f, 0x20de: 0x480, 0x20df: 0x481, + 0x20e0: 0x482, 0x20e1: 0x483, 0x20e2: 0x484, 0x20e3: 0x485, 0x20e4: 0x486, 0x20e5: 0x487, 0x20e6: 0x488, 0x20e7: 0x489, + 0x20e8: 0x48a, 0x20e9: 0x48b, 0x20ea: 0x48c, 0x20eb: 0x48d, 0x20ec: 0x48e, 0x20ed: 0x48f, 0x20ee: 0x490, 0x20ef: 0x491, + 0x20f0: 0x492, 0x20f1: 0x493, 0x20f2: 0x494, 0x20f3: 0x495, 0x20f4: 0x496, 0x20f5: 0x497, 0x20f6: 0x498, 0x20f7: 0x499, + 0x20f8: 0x49a, 0x20f9: 0x49b, 0x20fa: 0x49c, 0x20fb: 0x49d, 0x20fc: 0x49e, 0x20fd: 0x49f, 0x20fe: 0x4a0, 0x20ff: 0x4a1, + // Block 0x84, offset 0x2100 + 0x2100: 0x4a2, 0x2101: 0x4a3, 0x2102: 0x4a4, 0x2103: 0x4a5, 0x2104: 0x4a6, 0x2105: 0x4a7, 0x2106: 0x4a8, 0x2107: 0x4a9, + 0x2108: 0x4aa, 0x2109: 0x4ab, 0x210a: 0x4ac, 0x210b: 0x4ad, 0x210c: 0x4ae, 0x210d: 0x4af, 0x210e: 0x4b0, 0x210f: 0x4b1, + 0x2110: 0x4b2, 0x2111: 0x4b3, 0x2112: 0x4b4, 0x2113: 0x4b5, 0x2114: 0x4b6, 0x2115: 0x4b7, 0x2116: 0x4b8, 0x2117: 0x4b9, + 0x2118: 0x4ba, 0x2119: 0x4bb, 0x211a: 0x4bc, 0x211b: 0x4bd, 0x211c: 0x4be, 0x211d: 0x4bf, 0x211e: 0x4c0, 0x211f: 0x4c1, + 0x2120: 0x4c2, 0x2121: 0x4c3, 0x2122: 0x4c4, 0x2123: 0x4c5, 0x2124: 0x4c6, 0x2125: 0x4c7, 0x2126: 0x4c8, 0x2127: 0x4c9, + 0x2128: 0x4ca, 0x2129: 0x4cb, 0x212a: 0x4cc, 0x212b: 0x4cd, 0x212c: 0x4ce, 0x212d: 0x4cf, 0x212e: 0x4d0, 0x212f: 0x4d1, + 0x2130: 0x4d2, 0x2131: 0x4d3, 0x2132: 0x4d4, 0x2133: 0x4d5, 0x2134: 0x4d6, 0x2135: 0x4d7, 0x2136: 0x4d8, 0x2137: 0x4d9, + 0x2138: 0x4da, 0x2139: 0x4db, 0x213a: 0x4dc, 0x213c: 0x4dd, 0x213d: 0x4de, 0x213e: 0x4df, 0x213f: 0x4e0, + // Block 0x85, offset 0x2140 + 0x2140: 0x4e1, 0x2141: 0x4e2, 0x2142: 0x4e3, 0x2143: 0x4e4, 0x2144: 0x4e5, 0x2145: 0x4e6, 0x2146: 0x4e7, 0x2147: 0x4e8, + 0x2148: 0x4e9, 0x2149: 0x4ea, 0x214a: 0x4eb, 0x214b: 0x4ec, 0x214c: 0x4ed, 0x214d: 0x4ee, 0x214e: 0x4ef, 0x214f: 0x4f0, + 0x2150: 0x4f1, 0x2151: 0x4f2, 0x2152: 0x4f3, 0x2153: 0x4f4, 0x2154: 0x4f5, 0x2155: 0x4f6, 0x2156: 0x4f7, 0x2157: 0x4f8, + 0x2158: 0x4f9, 0x2159: 0x4fa, 0x215a: 0x4fb, 0x215b: 0x4fc, 0x215c: 0x4fd, 0x215d: 0x4fe, 0x215e: 0x4ff, 0x215f: 0x500, + 0x2160: 0x501, 0x2161: 0x502, 0x2162: 0x503, 0x2163: 0x504, 0x2164: 0x505, 0x2165: 0x506, 0x2166: 0x507, 0x2167: 0x508, + 0x2168: 0x509, 0x2169: 0x50a, 0x216a: 0x50b, 0x216b: 0x50c, 0x216c: 0x50d, 0x216d: 0x50e, 0x216e: 0x50f, + 0x2170: 0x510, 0x2171: 0x511, 0x2172: 0x512, 0x2173: 0x513, 0x2174: 0x514, 0x2175: 0x515, 0x2176: 0x516, 0x2177: 0x517, + 0x2178: 0x518, 0x2179: 0x519, 0x217a: 0x51a, 0x217b: 0x51b, 0x217c: 0x51c, 0x217d: 0x51d, 0x217e: 0x51e, 0x217f: 0x51f, + // Block 0x86, offset 0x2180 + 0x2180: 0x520, 0x2181: 0x521, 0x2182: 0x522, 0x2183: 0x523, 0x2184: 0x524, 0x2185: 0x525, 0x2186: 0x526, 0x2187: 0x527, + 0x2188: 0x528, 0x2189: 0x529, 0x218a: 0x52a, 0x218b: 0x52b, 0x218c: 0x52c, 0x218d: 0x52d, 0x218e: 0x52e, 0x218f: 0x52f, + 0x2190: 0x530, 0x2191: 0x531, 0x2195: 0x532, 0x2196: 0x533, 0x2197: 0x534, + 0x2198: 0x535, 0x2199: 0x536, 0x219a: 0x537, 0x219b: 0x538, 0x219c: 0x539, 0x219d: 0x53a, 0x219e: 0x53b, 0x219f: 0x53c, + 0x21a0: 0x53d, 0x21a1: 0x53e, 0x21a2: 0x53f, 0x21a3: 0x540, 0x21a4: 0x541, 0x21a5: 0x542, 0x21a6: 0x543, 0x21a7: 0x544, + 0x21a8: 0x545, 0x21a9: 0x546, 0x21aa: 0x547, 0x21ab: 0x548, 0x21ac: 0x549, 0x21ad: 0x54a, 0x21ae: 0x54b, 0x21af: 0x54c, + 0x21b0: 0x54d, 0x21b1: 0x54e, 0x21b3: 0x54f, 0x21b4: 0x550, 0x21b5: 0x551, 0x21b6: 0x552, 0x21b7: 0x553, + 0x21b8: 0x554, 0x21b9: 0x555, 0x21ba: 0x556, 0x21bb: 0x557, 0x21bc: 0x558, 0x21bd: 0x559, 0x21be: 0x55a, + // Block 0x87, offset 0x21c0 + 0x21e4: 0x55b, 0x21e5: 0x55c, 0x21e6: 0x55d, 0x21e7: 0x55e, + 0x21e8: 0x55f, 0x21e9: 0x560, 0x21ea: 0x561, 0x21eb: 0x562, 0x21ec: 0x103, 0x21ed: 0x104, 0x21ee: 0x105, 0x21ef: 0x106, + 0x21f0: 0x107, 0x21f1: 0x108, 0x21f2: 0x109, 0x21f3: 0x10a, 0x21f4: 0x10b, 0x21f5: 0x10c, 0x21f6: 0x10d, 0x21f7: 0x10e, + 0x21f8: 0x10f, 0x21f9: 0x110, 0x21fa: 0x111, 0x21fb: 0x112, 0x21fc: 0x113, 0x21fd: 0x114, 0x21fe: 0x115, 0x21ff: 0x116, + // Block 0x88, offset 0x2200 + 0x2200: 0x18b, 0x2201: 0x18c, 0x2202: 0x18d, 0x2203: 0x18e, 0x2204: 0x18f, 0x2205: 0x190, 0x2206: 0x191, 0x2207: 0x192, + 0x2208: 0x193, 0x2209: 0x563, 0x220c: 0x195, 0x220d: 0x196, 0x220e: 0x197, 0x220f: 0x198, + 0x2210: 0x199, 0x2211: 0x19a, 0x2212: 0x19b, 0x2213: 0x19c, 0x2214: 0x19d, 0x2215: 0x19e, 0x2217: 0x19f, + 0x2218: 0x1a0, 0x2219: 0x1a1, 0x221a: 0x1a2, 0x221b: 0x1a3, 0x221c: 0x1a4, 0x221d: 0x1a5, + // Block 0x89, offset 0x2240 + 0x2260: 0x564, 0x2261: 0x565, 0x2262: 0x566, 0x2263: 0x567, 0x2264: 0x568, 0x2265: 0x569, 0x2266: 0x56a, 0x2267: 0x56b, + 0x2268: 0x56c, + // Block 0x8a, offset 0x2280 + 0x2290: 0x09, 0x2291: 0x0a, 0x2292: 0x0b, 0x2293: 0x0c, 0x2296: 0x0d, + 0x229b: 0x0e, 0x229d: 0x0f, 0x229e: 0x10, 0x229f: 0x86, + 0x22af: 0x87, + // Block 0x8b, offset 0x22c0 + 0x22c2: 0x01, 0x22c3: 0x02, 0x22c4: 0x03, 0x22c5: 0x04, 0x22c6: 0x05, 0x22c7: 0x06, + 0x22c8: 0x07, 0x22c9: 0x08, 0x22ca: 0x09, 0x22cb: 0x0a, 0x22cc: 0x0b, 0x22cd: 0x0c, 0x22ce: 0x0d, 0x22cf: 0x0e, + 0x22d0: 0x0f, 0x22d1: 0x10, 0x22d2: 0x11, 0x22d3: 0x12, 0x22d4: 0x13, 0x22d5: 0x14, 0x22d6: 0x15, 0x22d7: 0x16, + 0x22d8: 0x17, 0x22d9: 0x18, 0x22da: 0x19, 0x22db: 0x1a, 0x22dc: 0x1b, 0x22dd: 0x1c, 0x22de: 0x1d, 0x22df: 0x1e, + 0x22e0: 0x01, 0x22e1: 0x02, 0x22e2: 0x03, 0x22e3: 0x7e, 0x22e4: 0x7f, 0x22e5: 0x80, 0x22e6: 0x81, 0x22e7: 0x82, + 0x22e8: 0x83, 0x22e9: 0x84, 0x22ea: 0x06, 0x22ed: 0x07, 0x22ef: 0x85, + 0x22f0: 0x88, 0x22f3: 0x15, + // Block 0x8c, offset 0x2300 + 0x2320: 0x1f, 0x2321: 0x20, 0x2322: 0x21, 0x2323: 0x22, 0x2324: 0x56d, 0x2325: 0x24, 0x2326: 0x25, 0x2327: 0x26, + 0x2328: 0x27, 0x2329: 0x28, 0x232a: 0x29, 0x232b: 0x2a, 0x232c: 0x2b, 0x232d: 0x2c, 0x232e: 0x2d, 0x232f: 0x2e, + 0x2330: 0x2f, 0x2331: 0x30, 0x2332: 0x31, 0x2333: 0x32, 0x2334: 0x33, 0x2335: 0x34, 0x2336: 0x35, 0x2337: 0x36, + 0x2338: 0x37, 0x2339: 0x38, 0x233a: 0x39, 0x233b: 0x3a, 0x233c: 0x3b, 0x233d: 0x3c, 0x233e: 0x3d, 0x233f: 0x3e, + // Block 0x8d, offset 0x2340 + 0x2342: 0x01, 0x2343: 0x02, 0x2344: 0x03, 0x2345: 0x04, 0x2346: 0x05, 0x2347: 0x06, + 0x2348: 0x07, 0x2349: 0x08, 0x234a: 0x09, 0x234b: 0x0a, 0x234c: 0x0b, 0x234d: 0x0c, 0x234e: 0x0d, 0x234f: 0x0e, + 0x2350: 0x0f, 0x2351: 0x10, 0x2352: 0x11, 0x2353: 0x12, 0x2354: 0x13, 0x2355: 0x14, 0x2356: 0x15, 0x2357: 0x16, + 0x2358: 0x17, 0x2359: 0x18, 0x235a: 0x19, 0x235b: 0x1a, 0x235c: 0x1b, 0x235d: 0x1c, 0x235e: 0x1d, 0x235f: 0x1e, + 0x2360: 0x8a, 0x2361: 0x02, 0x2362: 0x03, 0x2363: 0x04, 0x2364: 0x05, + 0x236a: 0x06, 0x236d: 0x07, 0x236f: 0x08, + 0x2370: 0x13, 0x2373: 0x15, + // Block 0x8e, offset 0x2380 + 0x2382: 0x01, 0x2383: 0x02, 0x2384: 0x03, 0x2385: 0x04, 0x2386: 0x570, 0x2387: 0x06, + 0x2388: 0x07, 0x2389: 0x571, 0x238a: 0x09, 0x238b: 0x0a, 0x238c: 0x0b, 0x238d: 0x0c, 0x238e: 0x0d, 0x238f: 0x0e, + 0x2390: 0x0f, 0x2391: 0x10, 0x2392: 0x11, 0x2393: 0x12, 0x2394: 0x13, 0x2395: 0x14, 0x2396: 0x15, 0x2397: 0x16, + 0x2398: 0x17, 0x2399: 0x18, 0x239a: 0x19, 0x239b: 0x1a, 0x239c: 0x1b, 0x239d: 0x1c, 0x239e: 0x1d, 0x239f: 0x1e, + 0x23a0: 0x01, 0x23a1: 0x02, 0x23a2: 0x03, 0x23a3: 0x04, 0x23a4: 0x05, + 0x23aa: 0x06, 0x23ad: 0x07, 0x23af: 0x08, + 0x23b0: 0x13, 0x23b3: 0x15, + // Block 0x8f, offset 0x23c0 + 0x23c0: 0x3f, 0x23c1: 0x40, 0x23c2: 0x41, 0x23c3: 0x42, 0x23c4: 0x43, 0x23c5: 0x44, 0x23c6: 0x45, 0x23c7: 0x46, + 0x23c8: 0x47, 0x23c9: 0x48, 0x23ca: 0x49, 0x23cb: 0x4a, 0x23cc: 0x4b, 0x23cd: 0x4c, 0x23ce: 0x4d, 0x23cf: 0x4e, + 0x23d0: 0x4f, 0x23d1: 0x50, 0x23d2: 0x51, 0x23d3: 0x52, 0x23d4: 0x53, 0x23d5: 0x54, 0x23d6: 0x55, 0x23d7: 0x56, + 0x23d8: 0x57, 0x23d9: 0x58, 0x23da: 0x59, 0x23db: 0x5a, 0x23dc: 0x5b, 0x23dd: 0x5c, 0x23de: 0x5d, 0x23df: 0x5e, + 0x23e0: 0x5f, 0x23e1: 0x60, 0x23e2: 0x61, 0x23e3: 0x62, 0x23e4: 0x63, 0x23e5: 0x64, 0x23e6: 0x65, 0x23e7: 0x66, + 0x23e8: 0x67, 0x23e9: 0x68, 0x23ea: 0x69, 0x23ec: 0x6a, 0x23ed: 0x6b, 0x23ee: 0x6c, 0x23ef: 0x6d, + 0x23f0: 0x6e, 0x23f1: 0x6f, 0x23f3: 0x70, 0x23f4: 0x71, 0x23f5: 0x72, 0x23f6: 0x73, 0x23f7: 0x74, + 0x23f8: 0x75, 0x23f9: 0x57a, 0x23fa: 0x57b, 0x23fb: 0x57c, 0x23fc: 0x79, 0x23fd: 0x7a, 0x23fe: 0x7b, 0x23ff: 0x7c, + // Block 0x90, offset 0x2400 + 0x2400: 0x7d, 0x2401: 0x7e, 0x2402: 0x7f, 0x2403: 0x80, 0x2404: 0x81, 0x2405: 0x82, 0x2406: 0x83, 0x2407: 0x84, + 0x2408: 0x85, 0x2409: 0x86, 0x240a: 0x87, 0x240b: 0x88, 0x240c: 0x89, 0x240d: 0x8a, 0x240e: 0x8b, 0x240f: 0x8c, + 0x2410: 0x8d, 0x2411: 0x8e, 0x2412: 0x57d, 0x2413: 0x90, 0x2414: 0x91, 0x2415: 0x92, 0x2416: 0x93, 0x2417: 0x94, + 0x2418: 0x95, 0x2419: 0x96, 0x241a: 0x97, 0x241b: 0x98, 0x241c: 0x99, 0x241d: 0x9a, 0x241e: 0x9b, 0x241f: 0x9c, + 0x2420: 0x9d, 0x2421: 0x9e, 0x2422: 0x9f, 0x2423: 0xa0, 0x2424: 0xa1, 0x2425: 0xa2, 0x2426: 0xa3, 0x2427: 0xa4, + 0x2428: 0xa5, 0x2429: 0xa6, 0x242a: 0xa7, 0x242b: 0xa8, 0x242c: 0xa9, 0x242d: 0xaa, + 0x2430: 0xab, 0x2431: 0xac, 0x2432: 0xad, 0x2433: 0xae, 0x2434: 0xaf, 0x2435: 0xb0, 0x2436: 0xb1, 0x2437: 0xb2, + 0x2438: 0xb3, 0x243a: 0xb4, 0x243b: 0xb5, 0x243c: 0xb6, 0x243d: 0xb7, 0x243e: 0xb8, 0x243f: 0xb9, + // Block 0x91, offset 0x2440 + 0x2440: 0xba, 0x2441: 0xbb, 0x2442: 0xbc, 0x2443: 0xbd, 0x2444: 0xbe, 0x2445: 0xbf, 0x2446: 0xc0, 0x2447: 0xc1, + 0x2448: 0xc2, 0x2449: 0xc3, 0x244a: 0xc4, 0x244b: 0xc5, 0x244c: 0xc6, 0x244d: 0xc7, 0x244e: 0xc8, 0x244f: 0x57e, + // Block 0x92, offset 0x2480 + 0x2480: 0x18b, 0x2481: 0x18c, 0x2482: 0x18d, 0x2483: 0x18e, 0x2484: 0x57f, 0x2485: 0x190, 0x2486: 0x191, 0x2487: 0x192, + 0x2488: 0x193, 0x2489: 0x194, 0x248c: 0x195, 0x248d: 0x196, 0x248e: 0x197, 0x248f: 0x198, + 0x2490: 0x199, 0x2491: 0x19a, 0x2492: 0x19b, 0x2493: 0x19c, 0x2494: 0x19d, 0x2495: 0x19e, 0x2497: 0x19f, + 0x2498: 0x1a0, 0x2499: 0x1a1, 0x249a: 0x1a2, 0x249b: 0x1a3, 0x249c: 0x1a4, 0x249d: 0x1a5, + // Block 0x93, offset 0x24c0 + 0x24d0: 0x09, 0x24d1: 0x0a, 0x24d2: 0x0b, 0x24d3: 0x0c, 0x24d6: 0x0d, + 0x24db: 0x0e, 0x24dd: 0x0f, 0x24de: 0x10, 0x24df: 0x90, + 0x24ef: 0x12, + // Block 0x94, offset 0x2500 + 0x2502: 0x01, 0x2503: 0x574, 0x2504: 0x575, 0x2505: 0x576, 0x2506: 0x05, 0x2507: 0x577, + 0x2508: 0x578, 0x2509: 0x08, 0x250a: 0x09, 0x250b: 0x0a, 0x250c: 0x579, 0x250d: 0x0c, 0x250e: 0x0d, 0x250f: 0x0e, + 0x2510: 0x0f, 0x2511: 0x10, 0x2512: 0x11, 0x2513: 0x12, 0x2514: 0x13, 0x2515: 0x14, 0x2516: 0x15, 0x2517: 0x16, + 0x2518: 0x17, 0x2519: 0x18, 0x251a: 0x19, 0x251b: 0x1a, 0x251c: 0x1b, 0x251d: 0x1c, 0x251e: 0x1d, 0x251f: 0x1e, + 0x2520: 0x01, 0x2521: 0x8d, 0x2522: 0x8e, 0x2523: 0x8f, 0x2524: 0x05, + 0x252a: 0x06, 0x252d: 0x07, 0x252f: 0x08, + 0x2530: 0x91, 0x2533: 0x15, + // Block 0x95, offset 0x2540 + 0x2540: 0x3f, 0x2541: 0x40, 0x2542: 0x41, 0x2543: 0x42, 0x2544: 0x43, 0x2545: 0x44, 0x2546: 0x45, 0x2547: 0x46, + 0x2548: 0x47, 0x2549: 0x48, 0x254a: 0x49, 0x254b: 0x4a, 0x254c: 0x4b, 0x254d: 0x4c, 0x254e: 0x4d, 0x254f: 0x4e, + 0x2550: 0x4f, 0x2551: 0x50, 0x2552: 0x51, 0x2553: 0x52, 0x2554: 0x53, 0x2555: 0x54, 0x2556: 0x55, 0x2557: 0x56, + 0x2558: 0x57, 0x2559: 0x58, 0x255a: 0x59, 0x255b: 0x5a, 0x255c: 0x5b, 0x255d: 0x5c, 0x255e: 0x5d, 0x255f: 0x5e, + 0x2560: 0x5f, 0x2561: 0x60, 0x2562: 0x61, 0x2563: 0x62, 0x2564: 0x63, 0x2565: 0x64, 0x2566: 0x65, 0x2567: 0x66, + 0x2568: 0x67, 0x2569: 0x68, 0x256a: 0x69, 0x256c: 0x6a, 0x256d: 0x6b, 0x256e: 0x6c, 0x256f: 0x6d, + 0x2570: 0x6e, 0x2571: 0x6f, 0x2573: 0x70, 0x2574: 0x71, 0x2575: 0x72, 0x2576: 0x73, 0x2577: 0x74, + 0x2578: 0x75, 0x2579: 0x584, 0x257a: 0x77, 0x257b: 0x78, 0x257c: 0x79, 0x257d: 0x7a, 0x257e: 0x7b, 0x257f: 0x7c, + // Block 0x96, offset 0x2580 + 0x2582: 0x01, 0x2583: 0x02, 0x2584: 0x582, 0x2585: 0x583, 0x2586: 0x05, 0x2587: 0x06, + 0x2588: 0x07, 0x2589: 0x08, 0x258a: 0x09, 0x258b: 0x0a, 0x258c: 0x0b, 0x258d: 0x0c, 0x258e: 0x0d, 0x258f: 0x0e, + 0x2590: 0x0f, 0x2591: 0x10, 0x2592: 0x11, 0x2593: 0x12, 0x2594: 0x13, 0x2595: 0x14, 0x2596: 0x15, 0x2597: 0x16, + 0x2598: 0x17, 0x2599: 0x18, 0x259a: 0x19, 0x259b: 0x1a, 0x259c: 0x1b, 0x259d: 0x1c, 0x259e: 0x1d, 0x259f: 0x1e, + 0x25a0: 0x01, 0x25a1: 0x93, 0x25a2: 0x03, 0x25a3: 0x04, 0x25a4: 0x05, + 0x25aa: 0x06, 0x25ad: 0x07, 0x25af: 0x08, + 0x25b0: 0x13, 0x25b3: 0x15, + // Block 0x97, offset 0x25c0 + 0x25e0: 0x1f, 0x25e1: 0x20, 0x25e2: 0x21, 0x25e3: 0x22, 0x25e4: 0x23, 0x25e5: 0x24, 0x25e6: 0x25, 0x25e7: 0x26, + 0x25e8: 0x27, 0x25e9: 0x28, 0x25ea: 0x29, 0x25eb: 0x2a, 0x25ec: 0x2b, 0x25ed: 0x2c, 0x25ee: 0x2d, 0x25ef: 0x2e, + 0x25f0: 0x2f, 0x25f1: 0x30, 0x25f2: 0x31, 0x25f3: 0x32, 0x25f4: 0x585, 0x25f5: 0x586, 0x25f6: 0x35, 0x25f7: 0x36, + 0x25f8: 0x37, 0x25f9: 0x38, 0x25fa: 0x39, 0x25fb: 0x3a, 0x25fc: 0x3b, 0x25fd: 0x3c, 0x25fe: 0x3d, 0x25ff: 0x3e, + // Block 0x98, offset 0x2600 + 0x2602: 0x01, 0x2603: 0x02, 0x2604: 0x03, 0x2605: 0x04, 0x2606: 0x05, 0x2607: 0x06, + 0x2608: 0x07, 0x2609: 0x08, 0x260a: 0x09, 0x260b: 0x0a, 0x260c: 0x0b, 0x260d: 0x0c, 0x260e: 0x0d, 0x260f: 0x0e, + 0x2610: 0x0f, 0x2611: 0x10, 0x2612: 0x11, 0x2613: 0x12, 0x2614: 0x13, 0x2615: 0x14, 0x2616: 0x15, 0x2617: 0x16, + 0x2618: 0x17, 0x2619: 0x18, 0x261a: 0x19, 0x261b: 0x1a, 0x261c: 0x1b, 0x261d: 0x1c, 0x261e: 0x1d, 0x261f: 0x1e, + 0x2620: 0x95, 0x2621: 0x02, 0x2622: 0x03, 0x2623: 0x04, 0x2624: 0x05, + 0x262a: 0x06, 0x262d: 0x07, 0x262f: 0x08, + 0x2630: 0x13, 0x2633: 0x15, + // Block 0x99, offset 0x2640 + 0x2660: 0x1f, 0x2661: 0x20, 0x2662: 0x21, 0x2663: 0x22, 0x2664: 0x587, 0x2665: 0x24, 0x2666: 0x25, 0x2667: 0x26, + 0x2668: 0x27, 0x2669: 0x28, 0x266a: 0x29, 0x266b: 0x2a, 0x266c: 0x2b, 0x266d: 0x2c, 0x266e: 0x2d, 0x266f: 0x2e, + 0x2670: 0x2f, 0x2671: 0x30, 0x2672: 0x31, 0x2673: 0x32, 0x2674: 0x33, 0x2675: 0x34, 0x2676: 0x35, 0x2677: 0x36, + 0x2678: 0x37, 0x2679: 0x38, 0x267a: 0x39, 0x267b: 0x3a, 0x267c: 0x3b, 0x267d: 0x3c, 0x267e: 0x3d, 0x267f: 0x3e, + // Block 0x9a, offset 0x2680 + 0x2682: 0x01, 0x2683: 0x02, 0x2684: 0x03, 0x2685: 0x04, 0x2686: 0x05, 0x2687: 0x06, + 0x2688: 0x07, 0x2689: 0x08, 0x268a: 0x09, 0x268b: 0x0a, 0x268c: 0x0b, 0x268d: 0x0c, 0x268e: 0x0d, 0x268f: 0x0e, + 0x2690: 0x0f, 0x2691: 0x10, 0x2692: 0x11, 0x2693: 0x12, 0x2694: 0x13, 0x2695: 0x14, 0x2696: 0x15, 0x2697: 0x16, + 0x2698: 0x17, 0x2699: 0x18, 0x269a: 0x19, 0x269b: 0x1a, 0x269c: 0x1b, 0x269d: 0x1c, 0x269e: 0x1d, 0x269f: 0x1e, + 0x26a0: 0x97, 0x26a1: 0x02, 0x26a2: 0x03, 0x26a3: 0x04, 0x26a4: 0x05, + 0x26aa: 0x06, 0x26ad: 0x07, 0x26af: 0x08, + 0x26b0: 0x13, 0x26b3: 0x15, + // Block 0x9b, offset 0x26c0 + 0x26c0: 0x7d, 0x26c1: 0x7e, 0x26c2: 0x7f, 0x26c3: 0x80, 0x26c4: 0x58c, 0x26c5: 0x82, 0x26c6: 0x83, 0x26c7: 0x84, + 0x26c8: 0x85, 0x26c9: 0x86, 0x26ca: 0x87, 0x26cb: 0x88, 0x26cc: 0x89, 0x26cd: 0x8a, 0x26ce: 0x8b, 0x26cf: 0x8c, + 0x26d0: 0x8d, 0x26d1: 0x8e, 0x26d2: 0x8f, 0x26d3: 0x90, 0x26d4: 0x91, 0x26d5: 0x92, 0x26d6: 0x93, 0x26d7: 0x94, + 0x26d8: 0x95, 0x26d9: 0x96, 0x26da: 0x97, 0x26db: 0x98, 0x26dc: 0x99, 0x26dd: 0x9a, 0x26de: 0x9b, 0x26df: 0x9c, + 0x26e0: 0x9d, 0x26e1: 0x9e, 0x26e2: 0x9f, 0x26e3: 0xa0, 0x26e4: 0xa1, 0x26e5: 0xa2, 0x26e6: 0xa3, 0x26e7: 0xa4, + 0x26e8: 0xa5, 0x26e9: 0xa6, 0x26ea: 0xa7, 0x26eb: 0xa8, 0x26ec: 0xa9, 0x26ed: 0xaa, + 0x26f0: 0xab, 0x26f1: 0xac, 0x26f2: 0xad, 0x26f3: 0xae, 0x26f4: 0xaf, 0x26f5: 0xb0, 0x26f6: 0xb1, 0x26f7: 0xb2, + 0x26f8: 0xb3, 0x26fa: 0xb4, 0x26fb: 0xb5, 0x26fc: 0xb6, 0x26fd: 0xb7, 0x26fe: 0xb8, 0x26ff: 0xb9, + // Block 0x9c, offset 0x2700 + 0x2700: 0xcb, 0x2701: 0xcc, 0x2702: 0xcd, 0x2703: 0xce, 0x2704: 0xcf, 0x2705: 0xd0, 0x2706: 0xd1, 0x2707: 0xd2, + 0x2708: 0xd3, 0x2709: 0xd4, 0x270a: 0xd5, 0x270b: 0xd6, 0x270c: 0xd7, 0x270d: 0xd8, 0x270e: 0xd9, 0x270f: 0xda, + 0x2710: 0xdb, 0x2711: 0xdc, 0x2712: 0xdd, 0x2713: 0xde, 0x2714: 0xdf, 0x2715: 0xe0, 0x2716: 0xe1, 0x2717: 0xe2, + 0x2718: 0xe3, 0x2719: 0xe4, 0x271a: 0xe5, 0x271b: 0xe6, 0x271c: 0xe7, 0x271d: 0xe8, 0x271e: 0xe9, 0x271f: 0x58d, + 0x2720: 0xeb, 0x2721: 0xec, 0x2722: 0xed, 0x2723: 0xee, 0x2724: 0xef, 0x2725: 0xf0, 0x2726: 0xf1, 0x2727: 0xf2, + 0x2728: 0xf3, 0x2729: 0xf4, 0x272a: 0xf5, 0x272b: 0xf6, 0x272c: 0xf7, 0x272f: 0xf8, + // Block 0x9d, offset 0x2740 + 0x2742: 0x01, 0x2743: 0x02, 0x2744: 0x58a, 0x2745: 0x58b, 0x2746: 0x05, 0x2747: 0x06, + 0x2748: 0x07, 0x2749: 0x08, 0x274a: 0x09, 0x274b: 0x0a, 0x274c: 0x0b, 0x274d: 0x0c, 0x274e: 0x0d, 0x274f: 0x0e, + 0x2750: 0x0f, 0x2751: 0x10, 0x2752: 0x11, 0x2753: 0x12, 0x2754: 0x13, 0x2755: 0x14, 0x2756: 0x15, 0x2757: 0x16, + 0x2758: 0x17, 0x2759: 0x18, 0x275a: 0x19, 0x275b: 0x1a, 0x275c: 0x1b, 0x275d: 0x1c, 0x275e: 0x1d, 0x275f: 0x1e, + 0x2760: 0x01, 0x2761: 0x02, 0x2762: 0x99, 0x2763: 0x04, 0x2764: 0x05, + 0x276a: 0x9a, 0x276d: 0x07, 0x276f: 0x08, + 0x2770: 0x13, 0x2773: 0x15, + // Block 0x9e, offset 0x2780 + 0x2780: 0x58e, 0x2781: 0x58f, 0x2782: 0x590, 0x2783: 0x42, 0x2784: 0x43, 0x2785: 0x44, 0x2786: 0x45, 0x2787: 0x46, + 0x2788: 0x47, 0x2789: 0x48, 0x278a: 0x49, 0x278b: 0x4a, 0x278c: 0x4b, 0x278d: 0x4c, 0x278e: 0x4d, 0x278f: 0x4e, + 0x2790: 0x4f, 0x2791: 0x50, 0x2792: 0x51, 0x2793: 0x52, 0x2794: 0x53, 0x2795: 0x54, 0x2796: 0x55, 0x2797: 0x56, + 0x2798: 0x57, 0x2799: 0x58, 0x279a: 0x59, 0x279b: 0x5a, 0x279c: 0x5b, 0x279d: 0x5c, 0x279e: 0x5d, 0x279f: 0x5e, + 0x27a0: 0x5f, 0x27a1: 0x60, 0x27a2: 0x61, 0x27a3: 0x62, 0x27a4: 0x63, 0x27a5: 0x64, 0x27a6: 0x65, 0x27a7: 0x66, + 0x27a8: 0x67, 0x27a9: 0x68, 0x27aa: 0x69, 0x27ac: 0x6a, 0x27ad: 0x6b, 0x27ae: 0x6c, 0x27af: 0x6d, + 0x27b0: 0x6e, 0x27b1: 0x6f, 0x27b3: 0x70, 0x27b4: 0x71, 0x27b5: 0x72, 0x27b6: 0x73, 0x27b7: 0x74, + 0x27b8: 0x75, 0x27b9: 0x76, 0x27ba: 0x77, 0x27bb: 0x78, 0x27bc: 0x79, 0x27bd: 0x7a, 0x27be: 0x7b, 0x27bf: 0x7c, + // Block 0x9f, offset 0x27c0 + 0x27c2: 0x01, 0x27c3: 0x02, 0x27c4: 0x03, 0x27c5: 0x04, 0x27c6: 0x05, 0x27c7: 0x06, + 0x27c8: 0x07, 0x27c9: 0x08, 0x27ca: 0x09, 0x27cb: 0x0a, 0x27cc: 0x0b, 0x27cd: 0x0c, 0x27ce: 0x0d, 0x27cf: 0x0e, + 0x27d0: 0x0f, 0x27d1: 0x10, 0x27d2: 0x11, 0x27d3: 0x12, 0x27d4: 0x13, 0x27d5: 0x14, 0x27d6: 0x15, 0x27d7: 0x16, + 0x27d8: 0x17, 0x27d9: 0x18, 0x27da: 0x19, 0x27db: 0x1a, 0x27dc: 0x1b, 0x27dd: 0x1c, 0x27de: 0x1d, 0x27df: 0x1e, + 0x27e0: 0x01, 0x27e1: 0x9c, 0x27e2: 0x03, 0x27e3: 0x04, 0x27e4: 0x05, + 0x27ea: 0x06, 0x27ed: 0x07, 0x27ef: 0x08, + 0x27f0: 0x13, 0x27f3: 0x15, + // Block 0xa0, offset 0x2800 + 0x2800: 0x3f, 0x2801: 0x40, 0x2802: 0x41, 0x2803: 0x42, 0x2804: 0x43, 0x2805: 0x44, 0x2806: 0x45, 0x2807: 0x46, + 0x2808: 0x47, 0x2809: 0x48, 0x280a: 0x49, 0x280b: 0x4a, 0x280c: 0x4b, 0x280d: 0x4c, 0x280e: 0x4d, 0x280f: 0x4e, + 0x2810: 0x4f, 0x2811: 0x50, 0x2812: 0x51, 0x2813: 0x52, 0x2814: 0x53, 0x2815: 0x54, 0x2816: 0x55, 0x2817: 0x56, + 0x2818: 0x57, 0x2819: 0x58, 0x281a: 0x59, 0x281b: 0x5a, 0x281c: 0x5b, 0x281d: 0x5c, 0x281e: 0x5d, 0x281f: 0x5e, + 0x2820: 0x5f, 0x2821: 0x60, 0x2822: 0x61, 0x2823: 0x62, 0x2824: 0x63, 0x2825: 0x64, 0x2826: 0x65, 0x2827: 0x66, + 0x2828: 0x67, 0x2829: 0x68, 0x282a: 0x69, 0x282c: 0x6a, 0x282d: 0x6b, 0x282e: 0x6c, 0x282f: 0x6d, + 0x2830: 0x6e, 0x2831: 0x6f, 0x2833: 0x70, 0x2834: 0x71, 0x2835: 0x72, 0x2836: 0x73, 0x2837: 0x74, + 0x2838: 0x75, 0x2839: 0x1f2, 0x283a: 0x597, 0x283b: 0x598, 0x283c: 0x79, 0x283d: 0x7a, 0x283e: 0x7b, 0x283f: 0x7c, + // Block 0xa1, offset 0x2840 + 0x2842: 0x01, 0x2843: 0x595, 0x2844: 0x03, 0x2845: 0x596, 0x2846: 0x05, 0x2847: 0x06, + 0x2848: 0x07, 0x2849: 0x08, 0x284a: 0x09, 0x284b: 0x0a, 0x284c: 0x0b, 0x284d: 0x0c, 0x284e: 0x0d, 0x284f: 0x0e, + 0x2850: 0x0f, 0x2851: 0x10, 0x2852: 0x11, 0x2853: 0x12, 0x2854: 0x13, 0x2855: 0x14, 0x2856: 0x15, 0x2857: 0x16, + 0x2858: 0x17, 0x2859: 0x18, 0x285a: 0x19, 0x285b: 0x1a, 0x285c: 0x1b, 0x285d: 0x1c, 0x285e: 0x1d, 0x285f: 0x1e, + 0x2860: 0x01, 0x2861: 0x9e, 0x2862: 0x03, 0x2863: 0x04, 0x2864: 0x05, + 0x286a: 0x06, 0x286d: 0x07, 0x286f: 0x08, + 0x2870: 0x13, 0x2873: 0x15, + // Block 0xa2, offset 0x2880 + 0x28a0: 0x1f, 0x28a1: 0x20, 0x28a2: 0x21, 0x28a3: 0x22, 0x28a4: 0x23, 0x28a5: 0x24, 0x28a6: 0x25, 0x28a7: 0x26, + 0x28a8: 0x27, 0x28a9: 0x28, 0x28aa: 0x29, 0x28ab: 0x2a, 0x28ac: 0x59b, 0x28ad: 0x59c, 0x28ae: 0x2d, 0x28af: 0x2e, + 0x28b0: 0x2f, 0x28b1: 0x30, 0x28b2: 0x31, 0x28b3: 0x32, 0x28b4: 0x33, 0x28b5: 0x34, 0x28b6: 0x35, 0x28b7: 0x36, + 0x28b8: 0x37, 0x28b9: 0x38, 0x28ba: 0x39, 0x28bb: 0x3a, 0x28bc: 0x3b, 0x28bd: 0x3c, 0x28be: 0x3d, 0x28bf: 0x3e, + // Block 0xa3, offset 0x28c0 + 0x28c2: 0x01, 0x28c3: 0x02, 0x28c4: 0x03, 0x28c5: 0x04, 0x28c6: 0x05, 0x28c7: 0x06, + 0x28c8: 0x07, 0x28c9: 0x08, 0x28ca: 0x09, 0x28cb: 0x0a, 0x28cc: 0x0b, 0x28cd: 0x0c, 0x28ce: 0x0d, 0x28cf: 0x0e, + 0x28d0: 0x0f, 0x28d1: 0x10, 0x28d2: 0x11, 0x28d3: 0x12, 0x28d4: 0x13, 0x28d5: 0x14, 0x28d6: 0x15, 0x28d7: 0x16, + 0x28d8: 0x17, 0x28d9: 0x18, 0x28da: 0x19, 0x28db: 0x1a, 0x28dc: 0x1b, 0x28dd: 0x1c, 0x28de: 0x1d, 0x28df: 0x1e, + 0x28e0: 0xa0, 0x28e1: 0x02, 0x28e2: 0x03, 0x28e3: 0x04, 0x28e4: 0x05, + 0x28ea: 0x06, 0x28ed: 0x07, 0x28ef: 0x08, + 0x28f0: 0x13, 0x28f3: 0x15, + // Block 0xa4, offset 0x2900 + 0x2920: 0x1f, 0x2921: 0x20, 0x2922: 0x21, 0x2923: 0x22, 0x2924: 0x23, 0x2925: 0x24, 0x2926: 0x25, 0x2927: 0x26, + 0x2928: 0x59d, 0x2929: 0x59e, 0x292a: 0x29, 0x292b: 0x2a, 0x292c: 0x2b, 0x292d: 0x2c, 0x292e: 0x2d, 0x292f: 0x2e, + 0x2930: 0x2f, 0x2931: 0x30, 0x2932: 0x31, 0x2933: 0x32, 0x2934: 0x33, 0x2935: 0x34, 0x2936: 0x35, 0x2937: 0x36, + 0x2938: 0x37, 0x2939: 0x38, 0x293a: 0x39, 0x293b: 0x3a, 0x293c: 0x3b, 0x293d: 0x3c, 0x293e: 0x3d, 0x293f: 0x3e, + // Block 0xa5, offset 0x2940 + 0x2942: 0x01, 0x2943: 0x02, 0x2944: 0x03, 0x2945: 0x04, 0x2946: 0x05, 0x2947: 0x06, + 0x2948: 0x07, 0x2949: 0x08, 0x294a: 0x09, 0x294b: 0x0a, 0x294c: 0x0b, 0x294d: 0x0c, 0x294e: 0x0d, 0x294f: 0x0e, + 0x2950: 0x0f, 0x2951: 0x10, 0x2952: 0x11, 0x2953: 0x12, 0x2954: 0x13, 0x2955: 0x14, 0x2956: 0x15, 0x2957: 0x16, + 0x2958: 0x17, 0x2959: 0x18, 0x295a: 0x19, 0x295b: 0x1a, 0x295c: 0x1b, 0x295d: 0x1c, 0x295e: 0x1d, 0x295f: 0x1e, + 0x2960: 0xa2, 0x2961: 0x02, 0x2962: 0x03, 0x2963: 0x04, 0x2964: 0x05, + 0x296a: 0x06, 0x296d: 0x07, 0x296f: 0x08, + 0x2970: 0x13, 0x2973: 0x15, + // Block 0xa6, offset 0x2980 + 0x2980: 0x3f, 0x2981: 0x40, 0x2982: 0x41, 0x2983: 0x42, 0x2984: 0x43, 0x2985: 0x44, 0x2986: 0x45, 0x2987: 0x46, + 0x2988: 0x47, 0x2989: 0x48, 0x298a: 0x49, 0x298b: 0x4a, 0x298c: 0x4b, 0x298d: 0x4c, 0x298e: 0x4d, 0x298f: 0x4e, + 0x2990: 0x4f, 0x2991: 0x50, 0x2992: 0x51, 0x2993: 0x52, 0x2994: 0x53, 0x2995: 0x54, 0x2996: 0x55, 0x2997: 0x56, + 0x2998: 0x57, 0x2999: 0x58, 0x299a: 0x59, 0x299b: 0x5a, 0x299c: 0x5b, 0x299d: 0x5c, 0x299e: 0x5d, 0x299f: 0x5e, + 0x29a0: 0x5f, 0x29a1: 0x60, 0x29a2: 0x61, 0x29a3: 0x62, 0x29a4: 0x63, 0x29a5: 0x64, 0x29a6: 0x65, 0x29a7: 0x66, + 0x29a8: 0x67, 0x29a9: 0x68, 0x29aa: 0x69, 0x29ac: 0x6a, 0x29ad: 0x6b, 0x29ae: 0x6c, 0x29af: 0x6d, + 0x29b0: 0x6e, 0x29b1: 0x6f, 0x29b3: 0x70, 0x29b4: 0x71, 0x29b5: 0x72, 0x29b6: 0x73, 0x29b7: 0x74, + 0x29b8: 0x5a4, 0x29b9: 0x5a5, 0x29ba: 0x77, 0x29bb: 0x5a6, 0x29bc: 0x79, 0x29bd: 0x7a, 0x29be: 0x7b, 0x29bf: 0x7c, + // Block 0xa7, offset 0x29c0 + 0x29c2: 0x01, 0x29c3: 0x5a1, 0x29c4: 0x5a2, 0x29c5: 0x5a3, 0x29c6: 0x05, 0x29c7: 0x06, + 0x29c8: 0x07, 0x29c9: 0x08, 0x29ca: 0x09, 0x29cb: 0x0a, 0x29cc: 0x0b, 0x29cd: 0x0c, 0x29ce: 0x0d, 0x29cf: 0x0e, + 0x29d0: 0x0f, 0x29d1: 0x10, 0x29d2: 0x11, 0x29d3: 0x12, 0x29d4: 0x13, 0x29d5: 0x14, 0x29d6: 0x15, 0x29d7: 0x16, + 0x29d8: 0x17, 0x29d9: 0x18, 0x29da: 0x19, 0x29db: 0x1a, 0x29dc: 0x1b, 0x29dd: 0x1c, 0x29de: 0x1d, 0x29df: 0x1e, + 0x29e0: 0x01, 0x29e1: 0xa4, 0x29e2: 0x03, 0x29e3: 0x04, 0x29e4: 0x05, + 0x29ea: 0x06, 0x29ed: 0x07, 0x29ef: 0x08, + 0x29f0: 0x13, 0x29f3: 0x15, + // Block 0xa8, offset 0x2a00 + 0x2a00: 0x5ab, 0x2a01: 0x7e, 0x2a02: 0x7f, 0x2a03: 0x80, 0x2a04: 0x81, 0x2a05: 0x82, 0x2a06: 0x83, 0x2a07: 0x84, + 0x2a08: 0x85, 0x2a09: 0x86, 0x2a0a: 0x87, 0x2a0b: 0x88, 0x2a0c: 0x89, 0x2a0d: 0x8a, 0x2a0e: 0x8b, 0x2a0f: 0x8c, + 0x2a10: 0x8d, 0x2a11: 0x8e, 0x2a12: 0x8f, 0x2a13: 0x90, 0x2a14: 0x91, 0x2a15: 0x92, 0x2a16: 0x93, 0x2a17: 0x94, + 0x2a18: 0x95, 0x2a19: 0x96, 0x2a1a: 0x97, 0x2a1b: 0x98, 0x2a1c: 0x99, 0x2a1d: 0x9a, 0x2a1e: 0x9b, 0x2a1f: 0x9c, + 0x2a20: 0x9d, 0x2a21: 0x9e, 0x2a22: 0x9f, 0x2a23: 0xa0, 0x2a24: 0xa1, 0x2a25: 0xa2, 0x2a26: 0xa3, 0x2a27: 0xa4, + 0x2a28: 0xa5, 0x2a29: 0xa6, 0x2a2a: 0xa7, 0x2a2b: 0xa8, 0x2a2c: 0xa9, 0x2a2d: 0xaa, + 0x2a30: 0xab, 0x2a31: 0xac, 0x2a32: 0xad, 0x2a33: 0xae, 0x2a34: 0xaf, 0x2a35: 0xb0, 0x2a36: 0xb1, 0x2a37: 0xb2, + 0x2a38: 0xb3, 0x2a3a: 0xb4, 0x2a3b: 0xb5, 0x2a3c: 0xb6, 0x2a3d: 0xb7, 0x2a3e: 0xb8, 0x2a3f: 0xb9, + // Block 0xa9, offset 0x2a40 + 0x2a64: 0xfb, 0x2a65: 0xfc, 0x2a66: 0xfd, 0x2a67: 0xfe, + 0x2a68: 0xff, 0x2a69: 0x100, 0x2a6a: 0x101, 0x2a6b: 0x102, 0x2a6c: 0x103, 0x2a6d: 0x104, 0x2a6e: 0x252, 0x2a6f: 0x5ac, + 0x2a70: 0x253, 0x2a71: 0x5ad, 0x2a72: 0x5ae, 0x2a73: 0x5af, 0x2a74: 0x5b0, 0x2a75: 0x10c, 0x2a76: 0x10d, 0x2a77: 0x10e, + 0x2a78: 0x10f, 0x2a79: 0x110, 0x2a7a: 0x111, 0x2a7b: 0x112, 0x2a7c: 0x113, 0x2a7d: 0x114, 0x2a7e: 0x115, 0x2a7f: 0x116, + // Block 0xaa, offset 0x2a80 + 0x2a82: 0x01, 0x2a83: 0x02, 0x2a84: 0x03, 0x2a85: 0x04, 0x2a86: 0x05, 0x2a87: 0x06, + 0x2a88: 0x07, 0x2a89: 0x08, 0x2a8a: 0x09, 0x2a8b: 0x0a, 0x2a8c: 0x0b, 0x2a8d: 0x0c, 0x2a8e: 0x0d, 0x2a8f: 0x0e, + 0x2a90: 0x0f, 0x2a91: 0x10, 0x2a92: 0x11, 0x2a93: 0x12, 0x2a94: 0x13, 0x2a95: 0x14, 0x2a96: 0x15, 0x2a97: 0x16, + 0x2a98: 0x5a7, 0x2a99: 0x5a8, 0x2a9a: 0x5a9, 0x2a9b: 0x5aa, 0x2a9c: 0x1b, 0x2a9d: 0x1c, 0x2a9e: 0x1d, 0x2a9f: 0x1e, + 0x2aa0: 0x01, 0x2aa1: 0x02, 0x2aa2: 0xa6, 0x2aa3: 0x04, 0x2aa4: 0x05, + 0x2aaa: 0x06, 0x2aad: 0x07, 0x2aaf: 0xa7, + 0x2ab0: 0x13, 0x2ab3: 0x15, + // Block 0xab, offset 0x2ac0 + 0x2ac0: 0x3f, 0x2ac1: 0x40, 0x2ac2: 0x41, 0x2ac3: 0x42, 0x2ac4: 0x43, 0x2ac5: 0x44, 0x2ac6: 0x45, 0x2ac7: 0x46, + 0x2ac8: 0x47, 0x2ac9: 0x48, 0x2aca: 0x49, 0x2acb: 0x4a, 0x2acc: 0x4b, 0x2acd: 0x4c, 0x2ace: 0x4d, 0x2acf: 0x4e, + 0x2ad0: 0x4f, 0x2ad1: 0x50, 0x2ad2: 0x51, 0x2ad3: 0x52, 0x2ad4: 0x53, 0x2ad5: 0x54, 0x2ad6: 0x55, 0x2ad7: 0x56, + 0x2ad8: 0x57, 0x2ad9: 0x58, 0x2ada: 0x59, 0x2adb: 0x5a, 0x2adc: 0x5b, 0x2add: 0x5c, 0x2ade: 0x5d, 0x2adf: 0x5e, + 0x2ae0: 0x5f, 0x2ae1: 0x60, 0x2ae2: 0x61, 0x2ae3: 0x62, 0x2ae4: 0x63, 0x2ae5: 0x64, 0x2ae6: 0x65, 0x2ae7: 0x66, + 0x2ae8: 0x67, 0x2ae9: 0x68, 0x2aea: 0x69, 0x2aec: 0x6a, 0x2aed: 0x6b, 0x2aee: 0x6c, 0x2aef: 0x6d, + 0x2af0: 0x6e, 0x2af1: 0x6f, 0x2af3: 0x70, 0x2af4: 0x71, 0x2af5: 0x72, 0x2af6: 0x73, 0x2af7: 0x74, + 0x2af8: 0x75, 0x2af9: 0x76, 0x2afa: 0x5b7, 0x2afb: 0x78, 0x2afc: 0x79, 0x2afd: 0x7a, 0x2afe: 0x7b, 0x2aff: 0x7c, + // Block 0xac, offset 0x2b00 + 0x2b02: 0x01, 0x2b03: 0x5b3, 0x2b04: 0x5b4, 0x2b05: 0x5b5, 0x2b06: 0x05, 0x2b07: 0x06, + 0x2b08: 0x5b6, 0x2b09: 0x08, 0x2b0a: 0x09, 0x2b0b: 0x0a, 0x2b0c: 0x0b, 0x2b0d: 0x0c, 0x2b0e: 0x0d, 0x2b0f: 0x0e, + 0x2b10: 0x0f, 0x2b11: 0x10, 0x2b12: 0x11, 0x2b13: 0x12, 0x2b14: 0x13, 0x2b15: 0x14, 0x2b16: 0x15, 0x2b17: 0x16, + 0x2b18: 0x17, 0x2b19: 0x18, 0x2b1a: 0x19, 0x2b1b: 0x1a, 0x2b1c: 0x1b, 0x2b1d: 0x1c, 0x2b1e: 0x1d, 0x2b1f: 0x1e, + 0x2b20: 0x01, 0x2b21: 0xa9, 0x2b22: 0x03, 0x2b23: 0x04, 0x2b24: 0x05, + 0x2b2a: 0x06, 0x2b2d: 0x07, 0x2b2f: 0x08, + 0x2b30: 0x13, 0x2b33: 0x15, + // Block 0xad, offset 0x2b40 + 0x2b40: 0x3f, 0x2b41: 0x40, 0x2b42: 0x41, 0x2b43: 0x42, 0x2b44: 0x43, 0x2b45: 0x44, 0x2b46: 0x45, 0x2b47: 0x46, + 0x2b48: 0x47, 0x2b49: 0x48, 0x2b4a: 0x49, 0x2b4b: 0x4a, 0x2b4c: 0x4b, 0x2b4d: 0x4c, 0x2b4e: 0x4d, 0x2b4f: 0x4e, + 0x2b50: 0x4f, 0x2b51: 0x50, 0x2b52: 0x51, 0x2b53: 0x52, 0x2b54: 0x53, 0x2b55: 0x54, 0x2b56: 0x55, 0x2b57: 0x56, + 0x2b58: 0x57, 0x2b59: 0x58, 0x2b5a: 0x59, 0x2b5b: 0x5a, 0x2b5c: 0x5b, 0x2b5d: 0x5c, 0x2b5e: 0x5d, 0x2b5f: 0x5e, + 0x2b60: 0x5f, 0x2b61: 0x60, 0x2b62: 0x61, 0x2b63: 0x62, 0x2b64: 0x63, 0x2b65: 0x64, 0x2b66: 0x65, 0x2b67: 0x66, + 0x2b68: 0x67, 0x2b69: 0x68, 0x2b6a: 0x69, 0x2b6c: 0x6a, 0x2b6d: 0x6b, 0x2b6e: 0x6c, 0x2b6f: 0x6d, + 0x2b70: 0x6e, 0x2b71: 0x6f, 0x2b73: 0x70, 0x2b74: 0x71, 0x2b75: 0x72, 0x2b76: 0x1fc, 0x2b77: 0x74, + 0x2b78: 0x75, 0x2b79: 0x5c1, 0x2b7a: 0x5c2, 0x2b7b: 0x5c3, 0x2b7c: 0x79, 0x2b7d: 0x7a, 0x2b7e: 0x7b, 0x2b7f: 0x7c, + // Block 0xae, offset 0x2b80 + 0x2b82: 0x01, 0x2b83: 0x5ba, 0x2b84: 0x5bb, 0x2b85: 0x5bc, 0x2b86: 0x5bd, 0x2b87: 0x5be, + 0x2b88: 0x5bf, 0x2b89: 0x08, 0x2b8a: 0x5c0, 0x2b8b: 0x0a, 0x2b8c: 0x0b, 0x2b8d: 0x0c, 0x2b8e: 0x0d, 0x2b8f: 0x0e, + 0x2b90: 0x0f, 0x2b91: 0x10, 0x2b92: 0x11, 0x2b93: 0x12, 0x2b94: 0x13, 0x2b95: 0x14, 0x2b96: 0x15, 0x2b97: 0x16, + 0x2b98: 0x17, 0x2b99: 0x18, 0x2b9a: 0x19, 0x2b9b: 0x1a, 0x2b9c: 0x1b, 0x2b9d: 0x1c, 0x2b9e: 0x1d, 0x2b9f: 0x1e, + 0x2ba0: 0x01, 0x2ba1: 0xab, 0x2ba2: 0x4e, 0x2ba3: 0x04, 0x2ba4: 0x05, + 0x2baa: 0x06, 0x2bad: 0x07, 0x2baf: 0x08, + 0x2bb0: 0x13, 0x2bb3: 0x15, + // Block 0xaf, offset 0x2bc0 + 0x2be0: 0x1f, 0x2be1: 0x20, 0x2be2: 0x21, 0x2be3: 0x22, 0x2be4: 0x23, 0x2be5: 0x24, 0x2be6: 0x25, 0x2be7: 0x26, + 0x2be8: 0x27, 0x2be9: 0x28, 0x2bea: 0x29, 0x2beb: 0x2a, 0x2bec: 0x2b, 0x2bed: 0x2c, 0x2bee: 0x2d, 0x2bef: 0x2e, + 0x2bf0: 0x2f, 0x2bf1: 0x30, 0x2bf2: 0x31, 0x2bf3: 0x32, 0x2bf4: 0x33, 0x2bf5: 0x34, 0x2bf6: 0x5c4, 0x2bf7: 0x36, + 0x2bf8: 0x37, 0x2bf9: 0x38, 0x2bfa: 0x39, 0x2bfb: 0x3a, 0x2bfc: 0x3b, 0x2bfd: 0x3c, 0x2bfe: 0x3d, 0x2bff: 0x3e, + // Block 0xb0, offset 0x2c00 + 0x2c02: 0x01, 0x2c03: 0x02, 0x2c04: 0x03, 0x2c05: 0x04, 0x2c06: 0x05, 0x2c07: 0x06, + 0x2c08: 0x07, 0x2c09: 0x08, 0x2c0a: 0x09, 0x2c0b: 0x0a, 0x2c0c: 0x0b, 0x2c0d: 0x0c, 0x2c0e: 0x0d, 0x2c0f: 0x0e, + 0x2c10: 0x0f, 0x2c11: 0x10, 0x2c12: 0x11, 0x2c13: 0x12, 0x2c14: 0x13, 0x2c15: 0x14, 0x2c16: 0x15, 0x2c17: 0x16, + 0x2c18: 0x17, 0x2c19: 0x18, 0x2c1a: 0x19, 0x2c1b: 0x1a, 0x2c1c: 0x1b, 0x2c1d: 0x1c, 0x2c1e: 0x1d, 0x2c1f: 0x1e, + 0x2c20: 0xad, 0x2c21: 0x02, 0x2c22: 0x03, 0x2c23: 0x04, 0x2c24: 0x05, + 0x2c2a: 0x06, 0x2c2d: 0x07, 0x2c2f: 0x08, + 0x2c30: 0x13, 0x2c33: 0x15, + // Block 0xb1, offset 0x2c40 + 0x2c40: 0x3f, 0x2c41: 0x40, 0x2c42: 0x41, 0x2c43: 0x42, 0x2c44: 0x43, 0x2c45: 0x44, 0x2c46: 0x45, 0x2c47: 0x46, + 0x2c48: 0x47, 0x2c49: 0x48, 0x2c4a: 0x49, 0x2c4b: 0x4a, 0x2c4c: 0x4b, 0x2c4d: 0x4c, 0x2c4e: 0x4d, 0x2c4f: 0x4e, + 0x2c50: 0x4f, 0x2c51: 0x50, 0x2c52: 0x51, 0x2c53: 0x52, 0x2c54: 0x53, 0x2c55: 0x54, 0x2c56: 0x55, 0x2c57: 0x56, + 0x2c58: 0x57, 0x2c59: 0x58, 0x2c5a: 0x59, 0x2c5b: 0x5a, 0x2c5c: 0x5b, 0x2c5d: 0x5c, 0x2c5e: 0x5d, 0x2c5f: 0x5e, + 0x2c60: 0x5f, 0x2c61: 0x60, 0x2c62: 0x61, 0x2c63: 0x62, 0x2c64: 0x63, 0x2c65: 0x64, 0x2c66: 0x65, 0x2c67: 0x66, + 0x2c68: 0x67, 0x2c69: 0x68, 0x2c6a: 0x69, 0x2c6c: 0x6a, 0x2c6d: 0x6b, 0x2c6e: 0x6c, 0x2c6f: 0x6d, + 0x2c70: 0x6e, 0x2c71: 0x6f, 0x2c73: 0x70, 0x2c74: 0x71, 0x2c75: 0x72, 0x2c76: 0x73, 0x2c77: 0x74, + 0x2c78: 0x75, 0x2c79: 0x1f2, 0x2c7a: 0x77, 0x2c7b: 0x5c9, 0x2c7c: 0x79, 0x2c7d: 0x7a, 0x2c7e: 0x7b, 0x2c7f: 0x7c, + // Block 0xb2, offset 0x2c80 + 0x2c82: 0x01, 0x2c83: 0x5c7, 0x2c84: 0x1f0, 0x2c85: 0x1f1, 0x2c86: 0x05, 0x2c87: 0x5c8, + 0x2c88: 0x07, 0x2c89: 0x08, 0x2c8a: 0x09, 0x2c8b: 0x0a, 0x2c8c: 0x0b, 0x2c8d: 0x0c, 0x2c8e: 0x0d, 0x2c8f: 0x0e, + 0x2c90: 0x0f, 0x2c91: 0x10, 0x2c92: 0x11, 0x2c93: 0x12, 0x2c94: 0x13, 0x2c95: 0x14, 0x2c96: 0x15, 0x2c97: 0x16, + 0x2c98: 0x17, 0x2c99: 0x18, 0x2c9a: 0x19, 0x2c9b: 0x1a, 0x2c9c: 0x1b, 0x2c9d: 0x1c, 0x2c9e: 0x1d, 0x2c9f: 0x1e, + 0x2ca0: 0x01, 0x2ca1: 0xaf, 0x2ca2: 0x03, 0x2ca3: 0x04, 0x2ca4: 0x05, + 0x2caa: 0x06, 0x2cad: 0x07, 0x2caf: 0x08, + 0x2cb0: 0x13, 0x2cb3: 0x15, + // Block 0xb3, offset 0x2cc0 + 0x2cc2: 0x01, 0x2cc3: 0x02, 0x2cc4: 0x5cc, 0x2cc5: 0x292, 0x2cc6: 0x05, 0x2cc7: 0x06, + 0x2cc8: 0x07, 0x2cc9: 0x08, 0x2cca: 0x09, 0x2ccb: 0x0a, 0x2ccc: 0x0b, 0x2ccd: 0x0c, 0x2cce: 0x0d, 0x2ccf: 0x0e, + 0x2cd0: 0x0f, 0x2cd1: 0x10, 0x2cd2: 0x11, 0x2cd3: 0x12, 0x2cd4: 0x13, 0x2cd5: 0x14, 0x2cd6: 0x15, 0x2cd7: 0x16, + 0x2cd8: 0x17, 0x2cd9: 0x18, 0x2cda: 0x19, 0x2cdb: 0x1a, 0x2cdc: 0x1b, 0x2cdd: 0x1c, 0x2cde: 0x1d, 0x2cdf: 0x1e, + 0x2ce0: 0x01, 0x2ce1: 0x63, 0x2ce2: 0x03, 0x2ce3: 0x04, 0x2ce4: 0x05, + 0x2cea: 0x06, 0x2ced: 0x07, 0x2cef: 0x08, + 0x2cf0: 0x13, 0x2cf3: 0x15, + // Block 0xb4, offset 0x2d00 + 0x2d00: 0x3f, 0x2d01: 0x40, 0x2d02: 0x41, 0x2d03: 0x42, 0x2d04: 0x43, 0x2d05: 0x44, 0x2d06: 0x45, 0x2d07: 0x46, + 0x2d08: 0x47, 0x2d09: 0x48, 0x2d0a: 0x49, 0x2d0b: 0x4a, 0x2d0c: 0x4b, 0x2d0d: 0x4c, 0x2d0e: 0x4d, 0x2d0f: 0x4e, + 0x2d10: 0x4f, 0x2d11: 0x50, 0x2d12: 0x51, 0x2d13: 0x52, 0x2d14: 0x53, 0x2d15: 0x54, 0x2d16: 0x55, 0x2d17: 0x56, + 0x2d18: 0x57, 0x2d19: 0x58, 0x2d1a: 0x59, 0x2d1b: 0x5a, 0x2d1c: 0x5b, 0x2d1d: 0x5c, 0x2d1e: 0x5d, 0x2d1f: 0x5e, + 0x2d20: 0x5f, 0x2d21: 0x60, 0x2d22: 0x61, 0x2d23: 0x62, 0x2d24: 0x63, 0x2d25: 0x64, 0x2d26: 0x65, 0x2d27: 0x66, + 0x2d28: 0x67, 0x2d29: 0x68, 0x2d2a: 0x69, 0x2d2c: 0x6a, 0x2d2d: 0x6b, 0x2d2e: 0x6c, 0x2d2f: 0x6d, + 0x2d30: 0x6e, 0x2d31: 0x6f, 0x2d33: 0x70, 0x2d34: 0x71, 0x2d35: 0x72, 0x2d36: 0x73, 0x2d37: 0x74, + 0x2d38: 0x5d0, 0x2d39: 0x76, 0x2d3a: 0x77, 0x2d3b: 0x78, 0x2d3c: 0x79, 0x2d3d: 0x7a, 0x2d3e: 0x7b, 0x2d3f: 0x7c, + // Block 0xb5, offset 0x2d40 + 0x2d42: 0x01, 0x2d43: 0x5cf, 0x2d44: 0x03, 0x2d45: 0x04, 0x2d46: 0x05, 0x2d47: 0x06, + 0x2d48: 0x07, 0x2d49: 0x08, 0x2d4a: 0x09, 0x2d4b: 0x0a, 0x2d4c: 0x0b, 0x2d4d: 0x0c, 0x2d4e: 0x0d, 0x2d4f: 0x0e, + 0x2d50: 0x0f, 0x2d51: 0x10, 0x2d52: 0x11, 0x2d53: 0x12, 0x2d54: 0x13, 0x2d55: 0x14, 0x2d56: 0x15, 0x2d57: 0x16, + 0x2d58: 0x17, 0x2d59: 0x18, 0x2d5a: 0x19, 0x2d5b: 0x1a, 0x2d5c: 0x1b, 0x2d5d: 0x1c, 0x2d5e: 0x1d, 0x2d5f: 0x1e, + 0x2d60: 0x01, 0x2d61: 0xb2, 0x2d62: 0x03, 0x2d63: 0x04, 0x2d64: 0x05, + 0x2d6a: 0x06, 0x2d6d: 0x07, 0x2d6f: 0x08, + 0x2d70: 0x13, 0x2d73: 0x15, + // Block 0xb6, offset 0x2d80 + 0x2d80: 0x3f, 0x2d81: 0x40, 0x2d82: 0x41, 0x2d83: 0x42, 0x2d84: 0x43, 0x2d85: 0x44, 0x2d86: 0x45, 0x2d87: 0x46, + 0x2d88: 0x47, 0x2d89: 0x48, 0x2d8a: 0x49, 0x2d8b: 0x4a, 0x2d8c: 0x4b, 0x2d8d: 0x4c, 0x2d8e: 0x4d, 0x2d8f: 0x4e, + 0x2d90: 0x4f, 0x2d91: 0x50, 0x2d92: 0x51, 0x2d93: 0x52, 0x2d94: 0x53, 0x2d95: 0x54, 0x2d96: 0x55, 0x2d97: 0x56, + 0x2d98: 0x57, 0x2d99: 0x58, 0x2d9a: 0x59, 0x2d9b: 0x5a, 0x2d9c: 0x5b, 0x2d9d: 0x5c, 0x2d9e: 0x5d, 0x2d9f: 0x5e, + 0x2da0: 0x5f, 0x2da1: 0x60, 0x2da2: 0x61, 0x2da3: 0x62, 0x2da4: 0x63, 0x2da5: 0x64, 0x2da6: 0x65, 0x2da7: 0x66, + 0x2da8: 0x67, 0x2da9: 0x68, 0x2daa: 0x69, 0x2dac: 0x6a, 0x2dad: 0x6b, 0x2dae: 0x6c, 0x2daf: 0x6d, + 0x2db0: 0x6e, 0x2db1: 0x6f, 0x2db3: 0x70, 0x2db4: 0x71, 0x2db5: 0x72, 0x2db6: 0x1fc, 0x2db7: 0x74, + 0x2db8: 0x75, 0x2db9: 0x261, 0x2dba: 0x77, 0x2dbb: 0x5d6, 0x2dbc: 0x79, 0x2dbd: 0x7a, 0x2dbe: 0x7b, 0x2dbf: 0x7c, + // Block 0xb7, offset 0x2dc0 + 0x2dc2: 0x01, 0x2dc3: 0x5d3, 0x2dc4: 0x5d4, 0x2dc5: 0x5d5, 0x2dc6: 0x05, 0x2dc7: 0x268, + 0x2dc8: 0x25f, 0x2dc9: 0x08, 0x2dca: 0x09, 0x2dcb: 0x0a, 0x2dcc: 0x0b, 0x2dcd: 0x0c, 0x2dce: 0x0d, 0x2dcf: 0x0e, + 0x2dd0: 0x0f, 0x2dd1: 0x10, 0x2dd2: 0x11, 0x2dd3: 0x12, 0x2dd4: 0x13, 0x2dd5: 0x14, 0x2dd6: 0x15, 0x2dd7: 0x16, + 0x2dd8: 0x17, 0x2dd9: 0x18, 0x2dda: 0x19, 0x2ddb: 0x1a, 0x2ddc: 0x1b, 0x2ddd: 0x1c, 0x2dde: 0x1d, 0x2ddf: 0x1e, + 0x2de0: 0x01, 0x2de1: 0xb4, 0x2de2: 0x4e, 0x2de3: 0x04, 0x2de4: 0x05, + 0x2dea: 0x06, 0x2ded: 0x07, 0x2def: 0x08, + 0x2df0: 0x13, 0x2df3: 0x15, + // Block 0xb8, offset 0x2e00 + 0x2e00: 0x3f, 0x2e01: 0x40, 0x2e02: 0x41, 0x2e03: 0x42, 0x2e04: 0x43, 0x2e05: 0x44, 0x2e06: 0x45, 0x2e07: 0x46, + 0x2e08: 0x47, 0x2e09: 0x48, 0x2e0a: 0x49, 0x2e0b: 0x4a, 0x2e0c: 0x4b, 0x2e0d: 0x4c, 0x2e0e: 0x4d, 0x2e0f: 0x4e, + 0x2e10: 0x4f, 0x2e11: 0x50, 0x2e12: 0x51, 0x2e13: 0x52, 0x2e14: 0x53, 0x2e15: 0x54, 0x2e16: 0x55, 0x2e17: 0x56, + 0x2e18: 0x57, 0x2e19: 0x58, 0x2e1a: 0x59, 0x2e1b: 0x5a, 0x2e1c: 0x5b, 0x2e1d: 0x5c, 0x2e1e: 0x5d, 0x2e1f: 0x5e, + 0x2e20: 0x5f, 0x2e21: 0x60, 0x2e22: 0x61, 0x2e23: 0x62, 0x2e24: 0x63, 0x2e25: 0x64, 0x2e26: 0x65, 0x2e27: 0x66, + 0x2e28: 0x67, 0x2e29: 0x68, 0x2e2a: 0x69, 0x2e2c: 0x6a, 0x2e2d: 0x6b, 0x2e2e: 0x6c, 0x2e2f: 0x6d, + 0x2e30: 0x6e, 0x2e31: 0x6f, 0x2e33: 0x70, 0x2e34: 0x71, 0x2e35: 0x72, 0x2e36: 0x1fc, 0x2e37: 0x74, + 0x2e38: 0x75, 0x2e39: 0x5da, 0x2e3a: 0x26b, 0x2e3b: 0x5d6, 0x2e3c: 0x79, 0x2e3d: 0x7a, 0x2e3e: 0x7b, 0x2e3f: 0x7c, + // Block 0xb9, offset 0x2e40 + 0x2e42: 0x01, 0x2e43: 0x5d3, 0x2e44: 0x5d4, 0x2e45: 0x5d9, 0x2e46: 0x05, 0x2e47: 0x268, + 0x2e48: 0x25f, 0x2e49: 0x08, 0x2e4a: 0x09, 0x2e4b: 0x0a, 0x2e4c: 0x0b, 0x2e4d: 0x0c, 0x2e4e: 0x0d, 0x2e4f: 0x0e, + 0x2e50: 0x0f, 0x2e51: 0x10, 0x2e52: 0x11, 0x2e53: 0x12, 0x2e54: 0x13, 0x2e55: 0x14, 0x2e56: 0x15, 0x2e57: 0x16, + 0x2e58: 0x17, 0x2e59: 0x18, 0x2e5a: 0x19, 0x2e5b: 0x1a, 0x2e5c: 0x1b, 0x2e5d: 0x1c, 0x2e5e: 0x1d, 0x2e5f: 0x1e, + 0x2e60: 0x01, 0x2e61: 0xb6, 0x2e62: 0x51, 0x2e63: 0x52, 0x2e64: 0x05, + 0x2e6a: 0x06, 0x2e6d: 0x07, 0x2e6f: 0x08, + 0x2e70: 0x54, 0x2e73: 0x15, + // Block 0xba, offset 0x2e80 + 0x2ea0: 0x1f, 0x2ea1: 0x20, 0x2ea2: 0x21, 0x2ea3: 0x22, 0x2ea4: 0x23, 0x2ea5: 0x24, 0x2ea6: 0x25, 0x2ea7: 0x26, + 0x2ea8: 0x27, 0x2ea9: 0x28, 0x2eaa: 0x29, 0x2eab: 0x2a, 0x2eac: 0x2b, 0x2ead: 0x2c, 0x2eae: 0x5db, 0x2eaf: 0x2e, + 0x2eb0: 0x2f, 0x2eb1: 0x30, 0x2eb2: 0x31, 0x2eb3: 0x32, 0x2eb4: 0x33, 0x2eb5: 0x34, 0x2eb6: 0x35, 0x2eb7: 0x36, + 0x2eb8: 0x37, 0x2eb9: 0x38, 0x2eba: 0x39, 0x2ebb: 0x3a, 0x2ebc: 0x3b, 0x2ebd: 0x3c, 0x2ebe: 0x3d, 0x2ebf: 0x3e, + // Block 0xbb, offset 0x2ec0 + 0x2ec2: 0x01, 0x2ec3: 0x02, 0x2ec4: 0x03, 0x2ec5: 0x04, 0x2ec6: 0x05, 0x2ec7: 0x06, + 0x2ec8: 0x07, 0x2ec9: 0x08, 0x2eca: 0x09, 0x2ecb: 0x0a, 0x2ecc: 0x0b, 0x2ecd: 0x0c, 0x2ece: 0x0d, 0x2ecf: 0x0e, + 0x2ed0: 0x0f, 0x2ed1: 0x10, 0x2ed2: 0x11, 0x2ed3: 0x12, 0x2ed4: 0x13, 0x2ed5: 0x14, 0x2ed6: 0x15, 0x2ed7: 0x16, + 0x2ed8: 0x17, 0x2ed9: 0x18, 0x2eda: 0x19, 0x2edb: 0x1a, 0x2edc: 0x1b, 0x2edd: 0x1c, 0x2ede: 0x1d, 0x2edf: 0x1e, + 0x2ee0: 0xb8, 0x2ee1: 0x02, 0x2ee2: 0x03, 0x2ee3: 0x04, 0x2ee4: 0x05, + 0x2eea: 0x06, 0x2eed: 0x07, 0x2eef: 0x08, + 0x2ef0: 0x13, 0x2ef3: 0x15, + // Block 0xbc, offset 0x2f00 + 0x2f20: 0x1f, 0x2f21: 0x20, 0x2f22: 0x21, 0x2f23: 0x22, 0x2f24: 0x23, 0x2f25: 0x24, 0x2f26: 0x25, 0x2f27: 0x26, + 0x2f28: 0x27, 0x2f29: 0x28, 0x2f2a: 0x29, 0x2f2b: 0x2a, 0x2f2c: 0x2b, 0x2f2d: 0x2c, 0x2f2e: 0x2d, 0x2f2f: 0x2e, + 0x2f30: 0x5dc, 0x2f31: 0x30, 0x2f32: 0x31, 0x2f33: 0x32, 0x2f34: 0x33, 0x2f35: 0x34, 0x2f36: 0x35, 0x2f37: 0x36, + 0x2f38: 0x37, 0x2f39: 0x38, 0x2f3a: 0x39, 0x2f3b: 0x3a, 0x2f3c: 0x3b, 0x2f3d: 0x3c, 0x2f3e: 0x3d, 0x2f3f: 0x3e, + // Block 0xbd, offset 0x2f40 + 0x2f42: 0x01, 0x2f43: 0x02, 0x2f44: 0x03, 0x2f45: 0x04, 0x2f46: 0x05, 0x2f47: 0x06, + 0x2f48: 0x07, 0x2f49: 0x08, 0x2f4a: 0x09, 0x2f4b: 0x0a, 0x2f4c: 0x0b, 0x2f4d: 0x0c, 0x2f4e: 0x0d, 0x2f4f: 0x0e, + 0x2f50: 0x0f, 0x2f51: 0x10, 0x2f52: 0x11, 0x2f53: 0x12, 0x2f54: 0x13, 0x2f55: 0x14, 0x2f56: 0x15, 0x2f57: 0x16, + 0x2f58: 0x17, 0x2f59: 0x18, 0x2f5a: 0x19, 0x2f5b: 0x1a, 0x2f5c: 0x1b, 0x2f5d: 0x1c, 0x2f5e: 0x1d, 0x2f5f: 0x1e, + 0x2f60: 0xba, 0x2f61: 0x02, 0x2f62: 0x03, 0x2f63: 0x04, 0x2f64: 0x05, + 0x2f6a: 0x06, 0x2f6d: 0x07, 0x2f6f: 0x08, + 0x2f70: 0x13, 0x2f73: 0x15, + // Block 0xbe, offset 0x2f80 + 0x2fa0: 0x1f, 0x2fa1: 0x20, 0x2fa2: 0x21, 0x2fa3: 0x22, 0x2fa4: 0x23, 0x2fa5: 0x24, 0x2fa6: 0x25, 0x2fa7: 0x26, + 0x2fa8: 0x27, 0x2fa9: 0x28, 0x2faa: 0x29, 0x2fab: 0x2a, 0x2fac: 0x2b, 0x2fad: 0x2c, 0x2fae: 0x2d, 0x2faf: 0x2e, + 0x2fb0: 0x2f, 0x2fb1: 0x30, 0x2fb2: 0x31, 0x2fb3: 0x32, 0x2fb4: 0x33, 0x2fb5: 0x34, 0x2fb6: 0x35, 0x2fb7: 0x36, + 0x2fb8: 0x5dd, 0x2fb9: 0x5de, 0x2fba: 0x39, 0x2fbb: 0x3a, 0x2fbc: 0x3b, 0x2fbd: 0x3c, 0x2fbe: 0x3d, 0x2fbf: 0x3e, + // Block 0xbf, offset 0x2fc0 + 0x2fc2: 0x01, 0x2fc3: 0x02, 0x2fc4: 0x03, 0x2fc5: 0x04, 0x2fc6: 0x05, 0x2fc7: 0x06, + 0x2fc8: 0x07, 0x2fc9: 0x08, 0x2fca: 0x09, 0x2fcb: 0x0a, 0x2fcc: 0x0b, 0x2fcd: 0x0c, 0x2fce: 0x0d, 0x2fcf: 0x0e, + 0x2fd0: 0x0f, 0x2fd1: 0x10, 0x2fd2: 0x11, 0x2fd3: 0x12, 0x2fd4: 0x13, 0x2fd5: 0x14, 0x2fd6: 0x15, 0x2fd7: 0x16, + 0x2fd8: 0x17, 0x2fd9: 0x18, 0x2fda: 0x19, 0x2fdb: 0x1a, 0x2fdc: 0x1b, 0x2fdd: 0x1c, 0x2fde: 0x1d, 0x2fdf: 0x1e, + 0x2fe0: 0xbc, 0x2fe1: 0x02, 0x2fe2: 0x03, 0x2fe3: 0x04, 0x2fe4: 0x05, + 0x2fea: 0x06, 0x2fed: 0x07, 0x2fef: 0x08, + 0x2ff0: 0x13, 0x2ff3: 0x15, + // Block 0xc0, offset 0x3000 + 0x3000: 0x3f, 0x3001: 0x40, 0x3002: 0x41, 0x3003: 0x42, 0x3004: 0x43, 0x3005: 0x44, 0x3006: 0x45, 0x3007: 0x46, + 0x3008: 0x47, 0x3009: 0x48, 0x300a: 0x49, 0x300b: 0x4a, 0x300c: 0x4b, 0x300d: 0x4c, 0x300e: 0x4d, 0x300f: 0x4e, + 0x3010: 0x4f, 0x3011: 0x50, 0x3012: 0x51, 0x3013: 0x52, 0x3014: 0x53, 0x3015: 0x54, 0x3016: 0x55, 0x3017: 0x56, + 0x3018: 0x57, 0x3019: 0x58, 0x301a: 0x59, 0x301b: 0x5a, 0x301c: 0x5b, 0x301d: 0x5c, 0x301e: 0x5d, 0x301f: 0x5e, + 0x3020: 0x5f, 0x3021: 0x60, 0x3022: 0x61, 0x3023: 0x62, 0x3024: 0x63, 0x3025: 0x64, 0x3026: 0x65, 0x3027: 0x66, + 0x3028: 0x67, 0x3029: 0x68, 0x302a: 0x69, 0x302c: 0x6a, 0x302d: 0x6b, 0x302e: 0x6c, 0x302f: 0x6d, + 0x3030: 0x6e, 0x3031: 0x6f, 0x3033: 0x70, 0x3034: 0x71, 0x3035: 0x72, 0x3036: 0x73, 0x3037: 0x74, + 0x3038: 0x5e7, 0x3039: 0x5e8, 0x303a: 0x5e9, 0x303b: 0x5ea, 0x303c: 0x79, 0x303d: 0x7a, 0x303e: 0x7b, 0x303f: 0x7c, + // Block 0xc1, offset 0x3040 + 0x3042: 0x01, 0x3043: 0x5e1, 0x3044: 0x5e2, 0x3045: 0x5e3, 0x3046: 0x05, 0x3047: 0x5e4, + 0x3048: 0x5e5, 0x3049: 0x08, 0x304a: 0x5e6, 0x304b: 0x0a, 0x304c: 0x0b, 0x304d: 0x0c, 0x304e: 0x0d, 0x304f: 0x0e, + 0x3050: 0x0f, 0x3051: 0x10, 0x3052: 0x11, 0x3053: 0x12, 0x3054: 0x13, 0x3055: 0x14, 0x3056: 0x15, 0x3057: 0x16, + 0x3058: 0x17, 0x3059: 0x18, 0x305a: 0x19, 0x305b: 0x1a, 0x305c: 0x1b, 0x305d: 0x1c, 0x305e: 0x1d, 0x305f: 0x1e, + 0x3060: 0x01, 0x3061: 0xbe, 0x3062: 0x03, 0x3063: 0x04, 0x3064: 0x05, + 0x306a: 0x06, 0x306d: 0x07, 0x306f: 0x08, + 0x3070: 0x13, 0x3073: 0x15, + // Block 0xc2, offset 0x3080 + 0x3080: 0x3f, 0x3081: 0x40, 0x3082: 0x41, 0x3083: 0x42, 0x3084: 0x43, 0x3085: 0x44, 0x3086: 0x45, 0x3087: 0x46, + 0x3088: 0x47, 0x3089: 0x48, 0x308a: 0x49, 0x308b: 0x4a, 0x308c: 0x4b, 0x308d: 0x4c, 0x308e: 0x4d, 0x308f: 0x4e, + 0x3090: 0x4f, 0x3091: 0x50, 0x3092: 0x51, 0x3093: 0x52, 0x3094: 0x53, 0x3095: 0x54, 0x3096: 0x55, 0x3097: 0x56, + 0x3098: 0x57, 0x3099: 0x58, 0x309a: 0x59, 0x309b: 0x5a, 0x309c: 0x5b, 0x309d: 0x5c, 0x309e: 0x5d, 0x309f: 0x5e, + 0x30a0: 0x5f, 0x30a1: 0x60, 0x30a2: 0x61, 0x30a3: 0x62, 0x30a4: 0x63, 0x30a5: 0x64, 0x30a6: 0x65, 0x30a7: 0x66, + 0x30a8: 0x67, 0x30a9: 0x68, 0x30aa: 0x69, 0x30ac: 0x6a, 0x30ad: 0x6b, 0x30ae: 0x6c, 0x30af: 0x6d, + 0x30b0: 0x6e, 0x30b1: 0x6f, 0x30b3: 0x70, 0x30b4: 0x71, 0x30b5: 0x72, 0x30b6: 0x73, 0x30b7: 0x74, + 0x30b8: 0x1de, 0x30b9: 0x1df, 0x30ba: 0x77, 0x30bb: 0x1e1, 0x30bc: 0x79, 0x30bd: 0x7a, 0x30be: 0x7b, 0x30bf: 0x7c, + // Block 0xc3, offset 0x30c0 + 0x30c0: 0x7d, 0x30c1: 0x7e, 0x30c2: 0x7f, 0x30c3: 0x80, 0x30c4: 0x81, 0x30c5: 0x5ed, 0x30c6: 0x83, 0x30c7: 0x84, + 0x30c8: 0x85, 0x30c9: 0x86, 0x30ca: 0x87, 0x30cb: 0x88, 0x30cc: 0x89, 0x30cd: 0x8a, 0x30ce: 0x8b, 0x30cf: 0x8c, + 0x30d0: 0x8d, 0x30d1: 0x8e, 0x30d2: 0x8f, 0x30d3: 0x90, 0x30d4: 0x91, 0x30d5: 0x92, 0x30d6: 0x93, 0x30d7: 0x94, + 0x30d8: 0x95, 0x30d9: 0x96, 0x30da: 0x97, 0x30db: 0x98, 0x30dc: 0x99, 0x30dd: 0x9a, 0x30de: 0x9b, 0x30df: 0x9c, + 0x30e0: 0x9d, 0x30e1: 0x9e, 0x30e2: 0x9f, 0x30e3: 0xa0, 0x30e4: 0xa1, 0x30e5: 0xa2, 0x30e6: 0xa3, 0x30e7: 0xa4, + 0x30e8: 0xa5, 0x30e9: 0xa6, 0x30ea: 0xa7, 0x30eb: 0xa8, 0x30ec: 0xa9, 0x30ed: 0xaa, + 0x30f0: 0xab, 0x30f1: 0xac, 0x30f2: 0xad, 0x30f3: 0xae, 0x30f4: 0xaf, 0x30f5: 0xb0, 0x30f6: 0xb1, 0x30f7: 0xb2, + 0x30f8: 0xb3, 0x30fa: 0xb4, 0x30fb: 0xb5, 0x30fc: 0xb6, 0x30fd: 0xb7, 0x30fe: 0xb8, 0x30ff: 0xb9, + // Block 0xc4, offset 0x3100 + 0x3100: 0xba, 0x3101: 0xbb, 0x3102: 0xbc, 0x3103: 0xbd, 0x3104: 0xbe, 0x3105: 0xbf, 0x3106: 0xc0, 0x3107: 0xc1, + 0x3108: 0xc2, 0x3109: 0xc3, 0x310a: 0xc4, 0x310b: 0xc5, 0x310c: 0xc6, 0x310d: 0x1e4, 0x310e: 0xc8, 0x310f: 0xc9, + // Block 0xc5, offset 0x3140 + 0x3140: 0x18b, 0x3141: 0x18c, 0x3142: 0x18d, 0x3143: 0x18e, 0x3144: 0x5ee, 0x3145: 0x190, 0x3146: 0x191, 0x3147: 0x192, + 0x3148: 0x193, 0x3149: 0x194, 0x314c: 0x195, 0x314d: 0x196, 0x314e: 0x197, 0x314f: 0x198, + 0x3150: 0x199, 0x3151: 0x19a, 0x3152: 0x19b, 0x3153: 0x19c, 0x3154: 0x19d, 0x3155: 0x19e, 0x3157: 0x19f, + 0x3158: 0x1a0, 0x3159: 0x1a1, 0x315a: 0x1a2, 0x315b: 0x1a3, 0x315c: 0x1a4, 0x315d: 0x1a5, + // Block 0xc6, offset 0x3180 + 0x3190: 0x09, 0x3191: 0x0a, 0x3192: 0x0b, 0x3193: 0x0c, 0x3196: 0x0d, + 0x319b: 0x0e, 0x319d: 0x0f, 0x319e: 0x10, 0x319f: 0xc3, + 0x31af: 0x12, + // Block 0xc7, offset 0x31c0 + 0x31c2: 0x01, 0x31c3: 0x1d7, 0x31c4: 0x1d8, 0x31c5: 0x1d9, 0x31c6: 0x05, 0x31c7: 0x1db, + 0x31c8: 0x1dc, 0x31c9: 0x08, 0x31ca: 0x09, 0x31cb: 0x0a, 0x31cc: 0x0b, 0x31cd: 0x0c, 0x31ce: 0x0d, 0x31cf: 0x0e, + 0x31d0: 0x0f, 0x31d1: 0x10, 0x31d2: 0x11, 0x31d3: 0x12, 0x31d4: 0x13, 0x31d5: 0x14, 0x31d6: 0x15, 0x31d7: 0x16, + 0x31d8: 0x17, 0x31d9: 0x18, 0x31da: 0x19, 0x31db: 0x1a, 0x31dc: 0x1b, 0x31dd: 0x1c, 0x31de: 0x1d, 0x31df: 0x1e, + 0x31e0: 0x01, 0x31e1: 0xc0, 0x31e2: 0xc1, 0x31e3: 0xc2, 0x31e4: 0x05, + 0x31ea: 0x06, 0x31ed: 0x07, 0x31ef: 0x08, + 0x31f0: 0xc4, 0x31f3: 0x15, + // Block 0xc8, offset 0x3200 + 0x3202: 0x01, 0x3203: 0x02, 0x3204: 0x03, 0x3205: 0x04, 0x3206: 0x05, 0x3207: 0x06, + 0x3208: 0x07, 0x3209: 0x08, 0x320a: 0x09, 0x320b: 0x0a, 0x320c: 0x0b, 0x320d: 0x0c, 0x320e: 0x0d, 0x320f: 0x0e, + 0x3210: 0x0f, 0x3211: 0x10, 0x3212: 0x5ef, 0x3213: 0x12, 0x3214: 0x13, 0x3215: 0x14, 0x3216: 0x15, 0x3217: 0x16, + 0x3218: 0x17, 0x3219: 0x18, 0x321a: 0x19, 0x321b: 0x1a, 0x321c: 0x1b, 0x321d: 0x1c, 0x321e: 0x1d, 0x321f: 0x1e, + 0x3220: 0x01, 0x3221: 0x02, 0x3222: 0x03, 0x3223: 0x04, 0x3224: 0x05, + 0x322a: 0x06, 0x322d: 0x07, 0x322f: 0x08, + 0x3230: 0x13, 0x3233: 0x15, + // Block 0xc9, offset 0x3240 + 0x3264: 0xfb, 0x3265: 0xfc, 0x3266: 0xfd, 0x3267: 0xfe, + 0x3268: 0xff, 0x3269: 0x100, 0x326a: 0x101, 0x326b: 0x102, 0x326c: 0x103, 0x326d: 0x104, 0x326e: 0x252, 0x326f: 0x106, + 0x3270: 0x5f4, 0x3271: 0x5f5, 0x3272: 0x5f6, 0x3273: 0x5f7, 0x3274: 0x5f8, 0x3275: 0x10c, 0x3276: 0x10d, 0x3277: 0x10e, + 0x3278: 0x10f, 0x3279: 0x110, 0x327a: 0x111, 0x327b: 0x5f9, 0x327c: 0x113, 0x327d: 0x114, 0x327e: 0x115, 0x327f: 0x116, + // Block 0xca, offset 0x3280 + 0x3282: 0x01, 0x3283: 0x02, 0x3284: 0x03, 0x3285: 0x04, 0x3286: 0x05, 0x3287: 0x06, + 0x3288: 0x07, 0x3289: 0x08, 0x328a: 0x09, 0x328b: 0x0a, 0x328c: 0x0b, 0x328d: 0x0c, 0x328e: 0x0d, 0x328f: 0x0e, + 0x3290: 0x0f, 0x3291: 0x10, 0x3292: 0x11, 0x3293: 0x12, 0x3294: 0x13, 0x3295: 0x14, 0x3296: 0x15, 0x3297: 0x16, + 0x3298: 0x5f0, 0x3299: 0x5f1, 0x329a: 0x5f2, 0x329b: 0x5f3, 0x329c: 0x1b, 0x329d: 0x1c, 0x329e: 0x1d, 0x329f: 0x1e, + 0x32a0: 0x01, 0x32a1: 0x02, 0x32a2: 0x03, 0x32a3: 0x04, 0x32a4: 0x05, + 0x32aa: 0x06, 0x32ad: 0x07, 0x32af: 0xc7, + 0x32b0: 0x13, 0x32b3: 0x15, + // Block 0xcb, offset 0x32c0 + 0x32c0: 0x3f, 0x32c1: 0x40, 0x32c2: 0x41, 0x32c3: 0x42, 0x32c4: 0x43, 0x32c5: 0x44, 0x32c6: 0x45, 0x32c7: 0x46, + 0x32c8: 0x47, 0x32c9: 0x48, 0x32ca: 0x49, 0x32cb: 0x4a, 0x32cc: 0x4b, 0x32cd: 0x4c, 0x32ce: 0x4d, 0x32cf: 0x4e, + 0x32d0: 0x4f, 0x32d1: 0x50, 0x32d2: 0x51, 0x32d3: 0x52, 0x32d4: 0x53, 0x32d5: 0x54, 0x32d6: 0x55, 0x32d7: 0x56, + 0x32d8: 0x57, 0x32d9: 0x58, 0x32da: 0x59, 0x32db: 0x5a, 0x32dc: 0x5b, 0x32dd: 0x5c, 0x32de: 0x5d, 0x32df: 0x5e, + 0x32e0: 0x5f, 0x32e1: 0x60, 0x32e2: 0x61, 0x32e3: 0x62, 0x32e4: 0x63, 0x32e5: 0x64, 0x32e6: 0x65, 0x32e7: 0x66, + 0x32e8: 0x67, 0x32e9: 0x68, 0x32ea: 0x69, 0x32ec: 0x6a, 0x32ed: 0x6b, 0x32ee: 0x6c, 0x32ef: 0x6d, + 0x32f0: 0x6e, 0x32f1: 0x6f, 0x32f3: 0x70, 0x32f4: 0x71, 0x32f5: 0x72, 0x32f6: 0x73, 0x32f7: 0x74, + 0x32f8: 0x606, 0x32f9: 0x607, 0x32fa: 0x608, 0x32fb: 0x609, 0x32fc: 0x60a, 0x32fd: 0x60b, 0x32fe: 0x60c, 0x32ff: 0x60d, + // Block 0xcc, offset 0x3300 + 0x3302: 0x01, 0x3303: 0x5fc, 0x3304: 0x5fd, 0x3305: 0x5fe, 0x3306: 0x5ff, 0x3307: 0x600, + 0x3308: 0x601, 0x3309: 0x08, 0x330a: 0x09, 0x330b: 0x0a, 0x330c: 0x602, 0x330d: 0x603, 0x330e: 0x604, 0x330f: 0x605, + 0x3310: 0x0f, 0x3311: 0x10, 0x3312: 0x11, 0x3313: 0x12, 0x3314: 0x13, 0x3315: 0x14, 0x3316: 0x15, 0x3317: 0x16, + 0x3318: 0x17, 0x3319: 0x18, 0x331a: 0x19, 0x331b: 0x1a, 0x331c: 0x1b, 0x331d: 0x1c, 0x331e: 0x1d, 0x331f: 0x1e, + 0x3320: 0x01, 0x3321: 0xc9, 0x3322: 0x03, 0x3323: 0x04, 0x3324: 0x05, + 0x332a: 0x06, 0x332d: 0x07, 0x332f: 0x08, + 0x3330: 0x13, 0x3333: 0x15, + // Block 0xcd, offset 0x3340 + 0x3342: 0x01, 0x3343: 0x610, 0x3344: 0x03, 0x3345: 0x04, 0x3346: 0x05, 0x3347: 0x06, + 0x3348: 0x07, 0x3349: 0x08, 0x334a: 0x09, 0x334b: 0x0a, 0x334c: 0x0b, 0x334d: 0x0c, 0x334e: 0x0d, 0x334f: 0x0e, + 0x3350: 0x0f, 0x3351: 0x10, 0x3352: 0x11, 0x3353: 0x12, 0x3354: 0x13, 0x3355: 0x14, 0x3356: 0x15, 0x3357: 0x16, + 0x3358: 0x17, 0x3359: 0x18, 0x335a: 0x19, 0x335b: 0x1a, 0x335c: 0x1b, 0x335d: 0x1c, 0x335e: 0x1d, 0x335f: 0x1e, + 0x3360: 0x01, 0x3361: 0x02, 0x3362: 0x03, 0x3363: 0x04, 0x3364: 0x05, + 0x336a: 0x06, 0x336d: 0x07, 0x336f: 0x08, + 0x3370: 0x13, 0x3373: 0x15, + // Block 0xce, offset 0x3380 + 0x3380: 0x3f, 0x3381: 0x40, 0x3382: 0x41, 0x3383: 0x42, 0x3384: 0x43, 0x3385: 0x44, 0x3386: 0x45, 0x3387: 0x46, + 0x3388: 0x47, 0x3389: 0x48, 0x338a: 0x49, 0x338b: 0x4a, 0x338c: 0x4b, 0x338d: 0x4c, 0x338e: 0x4d, 0x338f: 0x4e, + 0x3390: 0x4f, 0x3391: 0x50, 0x3392: 0x51, 0x3393: 0x52, 0x3394: 0x53, 0x3395: 0x54, 0x3396: 0x55, 0x3397: 0x56, + 0x3398: 0x57, 0x3399: 0x58, 0x339a: 0x59, 0x339b: 0x5a, 0x339c: 0x5b, 0x339d: 0x5c, 0x339e: 0x5d, 0x339f: 0x5e, + 0x33a0: 0x5f, 0x33a1: 0x60, 0x33a2: 0x61, 0x33a3: 0x62, 0x33a4: 0x63, 0x33a5: 0x64, 0x33a6: 0x65, 0x33a7: 0x66, + 0x33a8: 0x67, 0x33a9: 0x68, 0x33aa: 0x69, 0x33ac: 0x6a, 0x33ad: 0x6b, 0x33ae: 0x6c, 0x33af: 0x6d, + 0x33b0: 0x6e, 0x33b1: 0x6f, 0x33b3: 0x70, 0x33b4: 0x71, 0x33b5: 0x72, 0x33b6: 0x73, 0x33b7: 0x74, + 0x33b8: 0x75, 0x33b9: 0x613, 0x33ba: 0x614, 0x33bb: 0x615, 0x33bc: 0x79, 0x33bd: 0x7a, 0x33be: 0x7b, 0x33bf: 0x7c, + // Block 0xcf, offset 0x33c0 + 0x33c2: 0x01, 0x33c3: 0x02, 0x33c4: 0x03, 0x33c5: 0x04, 0x33c6: 0x05, 0x33c7: 0x06, + 0x33c8: 0x07, 0x33c9: 0x08, 0x33ca: 0x09, 0x33cb: 0x0a, 0x33cc: 0x0b, 0x33cd: 0x0c, 0x33ce: 0x0d, 0x33cf: 0x0e, + 0x33d0: 0x0f, 0x33d1: 0x10, 0x33d2: 0x11, 0x33d3: 0x12, 0x33d4: 0x13, 0x33d5: 0x14, 0x33d6: 0x15, 0x33d7: 0x16, + 0x33d8: 0x17, 0x33d9: 0x18, 0x33da: 0x19, 0x33db: 0x1a, 0x33dc: 0x1b, 0x33dd: 0x1c, 0x33de: 0x1d, 0x33df: 0x1e, + 0x33e0: 0x01, 0x33e1: 0xcc, 0x33e2: 0x03, 0x33e3: 0x04, 0x33e4: 0x05, + 0x33ea: 0x06, 0x33ed: 0x07, 0x33ef: 0x08, + 0x33f0: 0x13, 0x33f3: 0x15, + // Block 0xd0, offset 0x3400 + 0x3400: 0x3f, 0x3401: 0x40, 0x3402: 0x41, 0x3403: 0x42, 0x3404: 0x43, 0x3405: 0x44, 0x3406: 0x45, 0x3407: 0x46, + 0x3408: 0x47, 0x3409: 0x48, 0x340a: 0x49, 0x340b: 0x4a, 0x340c: 0x4b, 0x340d: 0x4c, 0x340e: 0x4d, 0x340f: 0x4e, + 0x3410: 0x4f, 0x3411: 0x50, 0x3412: 0x51, 0x3413: 0x52, 0x3414: 0x53, 0x3415: 0x54, 0x3416: 0x55, 0x3417: 0x56, + 0x3418: 0x57, 0x3419: 0x58, 0x341a: 0x59, 0x341b: 0x5a, 0x341c: 0x5b, 0x341d: 0x5c, 0x341e: 0x5d, 0x341f: 0x5e, + 0x3420: 0x5f, 0x3421: 0x60, 0x3422: 0x61, 0x3423: 0x62, 0x3424: 0x63, 0x3425: 0x64, 0x3426: 0x65, 0x3427: 0x66, + 0x3428: 0x67, 0x3429: 0x68, 0x342a: 0x69, 0x342c: 0x6a, 0x342d: 0x6b, 0x342e: 0x6c, 0x342f: 0x6d, + 0x3430: 0x6e, 0x3431: 0x6f, 0x3433: 0x70, 0x3434: 0x71, 0x3435: 0x72, 0x3436: 0x73, 0x3437: 0x74, + 0x3438: 0x61d, 0x3439: 0x61e, 0x343a: 0x61f, 0x343b: 0x620, 0x343c: 0x79, 0x343d: 0x7a, 0x343e: 0x7b, 0x343f: 0x7c, + // Block 0xd1, offset 0x3440 + 0x3440: 0x7d, 0x3441: 0x7e, 0x3442: 0x7f, 0x3443: 0x80, 0x3444: 0x81, 0x3445: 0x82, 0x3446: 0x83, 0x3447: 0x84, + 0x3448: 0x85, 0x3449: 0x86, 0x344a: 0x87, 0x344b: 0x88, 0x344c: 0x89, 0x344d: 0x8a, 0x344e: 0x8b, 0x344f: 0x8c, + 0x3450: 0x8d, 0x3451: 0x8e, 0x3452: 0x8f, 0x3453: 0x90, 0x3454: 0x91, 0x3455: 0x92, 0x3456: 0x93, 0x3457: 0x94, + 0x3458: 0x95, 0x3459: 0x96, 0x345a: 0x97, 0x345b: 0x98, 0x345c: 0x99, 0x345d: 0x9a, 0x345e: 0x9b, 0x345f: 0x9c, + 0x3460: 0x9d, 0x3461: 0x9e, 0x3462: 0x9f, 0x3463: 0xa0, 0x3464: 0xa1, 0x3465: 0xa2, 0x3466: 0xa3, 0x3467: 0xa4, + 0x3468: 0xa5, 0x3469: 0xa6, 0x346a: 0xa7, 0x346b: 0xa8, 0x346c: 0xa9, 0x346d: 0xaa, + 0x3470: 0xab, 0x3471: 0xac, 0x3472: 0xad, 0x3473: 0xae, 0x3474: 0xaf, 0x3475: 0xb0, 0x3476: 0xb1, 0x3477: 0xb2, + 0x3478: 0xb3, 0x347a: 0x621, 0x347b: 0x622, 0x347c: 0x623, 0x347d: 0x624, 0x347e: 0x625, 0x347f: 0x626, + // Block 0xd2, offset 0x3480 + 0x3480: 0x627, 0x3481: 0xbb, 0x3482: 0xbc, 0x3483: 0xbd, 0x3484: 0xbe, 0x3485: 0xbf, 0x3486: 0x628, 0x3487: 0xc1, + 0x3488: 0x629, 0x3489: 0x62a, 0x348a: 0x62b, 0x348b: 0x62c, 0x348c: 0xc6, 0x348d: 0x62d, 0x348e: 0xc8, 0x348f: 0x62e, + 0x3490: 0x62f, 0x3491: 0x630, 0x3492: 0x631, 0x3493: 0x632, 0x3494: 0x633, 0x3495: 0x634, 0x3496: 0x635, 0x3497: 0x636, + 0x3498: 0x637, 0x3499: 0x638, 0x349a: 0x639, 0x349b: 0x63a, 0x349c: 0x63b, 0x349d: 0x63c, 0x349e: 0x63d, 0x349f: 0x63e, + 0x34a0: 0x63f, 0x34a1: 0x640, 0x34a2: 0x641, 0x34a3: 0x642, 0x34a4: 0x643, 0x34a5: 0x644, 0x34a6: 0x645, 0x34a7: 0x646, + 0x34a8: 0x647, 0x34a9: 0x648, 0x34aa: 0x649, 0x34ab: 0x64a, 0x34ac: 0x64b, 0x34ad: 0x64c, 0x34ae: 0x64d, 0x34af: 0x64e, + 0x34b0: 0x64f, 0x34b1: 0x650, 0x34b2: 0x651, 0x34b3: 0x652, 0x34b4: 0x653, 0x34b5: 0x654, 0x34b6: 0x655, 0x34b7: 0x656, + 0x34b8: 0x657, 0x34b9: 0x658, 0x34ba: 0x659, 0x34bb: 0x65a, 0x34bc: 0x65b, 0x34bd: 0x65c, 0x34be: 0x65d, 0x34bf: 0x65e, + // Block 0xd3, offset 0x34c0 + 0x34c0: 0x65f, 0x34c1: 0x660, 0x34c2: 0x661, 0x34c3: 0x662, 0x34c4: 0x663, 0x34c5: 0x664, 0x34c6: 0x665, 0x34c7: 0x666, + 0x34c8: 0x667, 0x34c9: 0x668, 0x34ca: 0x669, 0x34cb: 0x66a, 0x34cc: 0x66b, 0x34cd: 0x66c, 0x34ce: 0x66d, 0x34cf: 0x66e, + 0x34d0: 0x66f, 0x34d1: 0x670, 0x34d2: 0x671, 0x34d3: 0x672, 0x34d4: 0x673, 0x34d5: 0x674, 0x34d6: 0x675, 0x34d7: 0x676, + 0x34d8: 0x677, 0x34d9: 0x678, 0x34da: 0x679, 0x34db: 0x67a, 0x34dc: 0x67b, 0x34dd: 0x67c, 0x34de: 0x67d, 0x34df: 0x67e, + 0x34e0: 0x67f, 0x34e1: 0x680, 0x34e2: 0x681, 0x34e3: 0x682, 0x34e4: 0x683, 0x34e5: 0x684, 0x34e6: 0x685, 0x34e7: 0x686, + 0x34e8: 0x687, 0x34e9: 0x688, 0x34ea: 0x689, 0x34eb: 0x68a, 0x34ec: 0x68b, 0x34ed: 0x68c, 0x34ee: 0x68d, 0x34ef: 0x68e, + 0x34f0: 0x68f, 0x34f1: 0x690, 0x34f2: 0x691, 0x34f3: 0x692, 0x34f4: 0x693, 0x34f5: 0x694, 0x34f6: 0x695, 0x34f7: 0xca, + 0x34f8: 0x696, 0x34f9: 0x697, 0x34fa: 0x698, 0x34fb: 0x699, 0x34fc: 0x69a, 0x34fd: 0x69b, 0x34fe: 0x69c, 0x34ff: 0x69d, + // Block 0xd4, offset 0x3500 + 0x3500: 0x69e, 0x3501: 0x69f, 0x3502: 0x6a0, 0x3503: 0x6a1, 0x3504: 0x6a2, 0x3505: 0x6a3, 0x3506: 0x6a4, 0x3507: 0x6a5, + 0x3508: 0x6a6, 0x3509: 0x6a7, 0x350a: 0x6a8, 0x350b: 0x6a9, 0x350c: 0x6aa, 0x350d: 0x6ab, 0x350e: 0x6ac, 0x350f: 0x6ad, + 0x3510: 0x6ae, 0x3511: 0x6af, 0x3512: 0x6b0, 0x3513: 0x6b1, 0x3514: 0x6b2, 0x3515: 0x6b3, 0x3516: 0x6b4, 0x3517: 0x6b5, + 0x3518: 0x6b6, 0x3519: 0x6b7, 0x351a: 0x6b8, 0x351b: 0x6b9, 0x351c: 0x6ba, 0x351d: 0x6bb, 0x351e: 0x6bc, 0x351f: 0x6bd, + 0x3520: 0x6be, 0x3521: 0x6bf, 0x3522: 0x6c0, 0x3523: 0x6c1, 0x3524: 0x6c2, 0x3525: 0x6c3, 0x3526: 0x6c4, 0x3527: 0x6c5, + 0x3528: 0x6c6, 0x3529: 0x6c7, 0x352a: 0x6c8, 0x352b: 0x6c9, 0x352c: 0x6ca, 0x352d: 0x6cb, 0x352e: 0x6cc, 0x352f: 0x6cd, + 0x3530: 0x6ce, 0x3531: 0x6cf, 0x3532: 0x6d0, 0x3533: 0x6d1, 0x3534: 0x6d2, 0x3535: 0x6d3, 0x3536: 0x6d4, 0x3537: 0x6d5, + 0x3538: 0x6d6, 0x3539: 0x6d7, 0x353a: 0x6d8, 0x353b: 0x6d9, 0x353c: 0x6da, 0x353d: 0x6db, 0x353e: 0x6dc, 0x353f: 0x6dd, + // Block 0xd5, offset 0x3540 + 0x3540: 0x6de, 0x3541: 0x6df, 0x3542: 0x6e0, 0x3543: 0x6e1, 0x3544: 0x6e2, 0x3545: 0x6e3, 0x3546: 0x6e4, 0x3547: 0x6e5, + 0x3548: 0x6e6, 0x3549: 0x6e7, 0x354a: 0x6e8, 0x354b: 0x6e9, 0x354c: 0x6ea, 0x354d: 0x6eb, 0x354e: 0x6ec, 0x354f: 0x6ed, + 0x3550: 0x6ee, 0x3551: 0x6ef, 0x3552: 0x6f0, 0x3553: 0x6f1, 0x3554: 0x6f2, 0x3555: 0x6f3, 0x3556: 0x6f4, 0x3557: 0x6f5, + 0x3558: 0x6f6, 0x3559: 0x6f7, 0x355a: 0x6f8, 0x355b: 0x6f9, 0x355c: 0x6fa, 0x355d: 0x6fb, 0x355e: 0x6fc, 0x355f: 0x6fd, + 0x3560: 0x6fe, 0x3561: 0x6ff, 0x3562: 0x700, 0x3563: 0x701, 0x3564: 0x702, 0x3565: 0x703, 0x3566: 0x704, 0x3567: 0x705, + 0x3568: 0x706, 0x3569: 0x707, 0x356a: 0x708, 0x356b: 0x709, 0x356c: 0x70a, 0x356d: 0x70b, 0x356e: 0x70c, 0x356f: 0x70d, + 0x3570: 0x70e, 0x3571: 0x70f, 0x3572: 0x710, 0x3573: 0x711, 0x3574: 0x712, 0x3575: 0x713, 0x3576: 0x714, 0x3577: 0x715, + 0x3578: 0x716, 0x3579: 0x717, 0x357a: 0x718, 0x357b: 0x719, 0x357c: 0x71a, 0x357d: 0x71b, 0x357e: 0x71c, 0x357f: 0x71d, + // Block 0xd6, offset 0x3580 + 0x3580: 0x71e, 0x3581: 0x71f, 0x3582: 0x720, 0x3583: 0x721, 0x3584: 0x722, 0x3585: 0x723, 0x3586: 0x724, 0x3587: 0x725, + 0x3588: 0x726, 0x3589: 0x727, 0x358a: 0x728, 0x358b: 0x729, 0x358c: 0x72a, 0x358d: 0x72b, 0x358e: 0x72c, 0x358f: 0x72d, + 0x3590: 0x72e, 0x3591: 0x72f, 0x3592: 0x730, 0x3593: 0x731, 0x3594: 0x732, 0x3595: 0x733, 0x3596: 0x734, 0x3597: 0x735, + 0x3598: 0x736, 0x3599: 0x737, 0x359a: 0x738, 0x359b: 0x739, 0x359c: 0x73a, 0x359d: 0x73b, 0x359e: 0x73c, 0x359f: 0x73d, + 0x35a0: 0x73e, 0x35a1: 0x73f, 0x35a2: 0x740, 0x35a3: 0x741, 0x35a4: 0x742, 0x35a5: 0x743, 0x35a6: 0x744, 0x35a7: 0x745, + 0x35a8: 0x746, 0x35a9: 0x747, 0x35aa: 0x748, 0x35ab: 0x749, 0x35ac: 0x74a, 0x35ad: 0x74b, 0x35ae: 0x74c, 0x35af: 0x74d, + 0x35b0: 0x74e, 0x35b1: 0x74f, 0x35b2: 0x750, 0x35b3: 0x751, 0x35b4: 0x752, 0x35b5: 0x753, 0x35b6: 0x754, 0x35b7: 0x755, + 0x35b8: 0x756, 0x35b9: 0x757, 0x35ba: 0x758, 0x35bb: 0x759, 0x35bc: 0x75a, 0x35bd: 0x75b, 0x35be: 0x75c, 0x35bf: 0x75d, + // Block 0xd7, offset 0x35c0 + 0x35c0: 0x75e, 0x35c1: 0x75f, 0x35c2: 0x760, 0x35c3: 0x761, 0x35c4: 0x762, 0x35c5: 0x763, 0x35c6: 0x764, 0x35c7: 0x765, + 0x35c8: 0x766, 0x35c9: 0x767, 0x35ca: 0x768, 0x35cb: 0x769, 0x35cc: 0x76a, 0x35cd: 0x76b, 0x35ce: 0x76c, 0x35cf: 0x76d, + 0x35d0: 0x76e, 0x35d1: 0x76f, 0x35d2: 0x770, 0x35d3: 0x771, 0x35d4: 0x772, 0x35d5: 0x773, 0x35d6: 0x774, 0x35d7: 0x775, + 0x35d8: 0x776, 0x35d9: 0x777, 0x35da: 0x778, 0x35db: 0x779, 0x35dc: 0x77a, 0x35dd: 0x77b, 0x35de: 0x77c, 0x35df: 0x77d, + 0x35e0: 0x77e, 0x35e1: 0x77f, 0x35e2: 0x780, 0x35e3: 0x781, 0x35e4: 0x782, 0x35e5: 0x783, 0x35e6: 0x784, 0x35e7: 0x785, + 0x35e8: 0x786, 0x35e9: 0x787, 0x35ea: 0x788, 0x35eb: 0x789, 0x35ec: 0x78a, 0x35ed: 0x78b, 0x35ee: 0x78c, 0x35ef: 0x78d, + 0x35f0: 0x78e, 0x35f1: 0x78f, 0x35f2: 0x790, 0x35f3: 0x791, 0x35f4: 0x792, 0x35f5: 0x793, 0x35f6: 0x794, 0x35f7: 0x795, + 0x35f8: 0x796, 0x35f9: 0x797, 0x35fa: 0x798, 0x35fb: 0x799, 0x35fc: 0x79a, 0x35fd: 0x79b, 0x35fe: 0x79c, 0x35ff: 0x79d, + // Block 0xd8, offset 0x3600 + 0x3600: 0x79e, 0x3601: 0x79f, 0x3602: 0x7a0, 0x3603: 0x7a1, 0x3604: 0x7a2, 0x3605: 0x7a3, 0x3606: 0x7a4, 0x3607: 0x7a5, + 0x3608: 0x7a6, 0x3609: 0x7a7, 0x360a: 0x7a8, 0x360b: 0x7a9, 0x360c: 0x7aa, 0x360d: 0x7ab, 0x360e: 0x7ac, 0x360f: 0x7ad, + 0x3610: 0x7ae, 0x3611: 0x7af, 0x3612: 0x7b0, 0x3613: 0x7b1, 0x3614: 0x7b2, 0x3615: 0x7b3, 0x3616: 0x7b4, 0x3617: 0x7b5, + 0x3618: 0x7b6, 0x3619: 0x7b7, 0x361a: 0x7b8, 0x361b: 0x7b9, 0x361c: 0x7ba, 0x361d: 0x7bb, 0x361e: 0x7bc, 0x361f: 0x7bd, + 0x3620: 0x7be, 0x3621: 0x7bf, 0x3622: 0x7c0, 0x3623: 0x7c1, 0x3624: 0x7c2, 0x3625: 0x7c3, 0x3626: 0x7c4, 0x3627: 0x7c5, + 0x3628: 0x7c6, 0x3629: 0x7c7, 0x362a: 0x7c8, 0x362b: 0x7c9, 0x362c: 0x7ca, 0x362d: 0x7cb, 0x362e: 0x7cc, 0x362f: 0x7cd, + 0x3630: 0x7ce, 0x3631: 0x7cf, 0x3632: 0x7d0, 0x3633: 0x7d1, 0x3634: 0x7d2, 0x3635: 0x7d3, 0x3636: 0x7d4, 0x3637: 0x7d5, + 0x3638: 0x7d6, 0x3639: 0x7d7, 0x363a: 0x7d8, 0x363b: 0x7d9, 0x363c: 0x7da, 0x363d: 0x7db, 0x363e: 0x7dc, 0x363f: 0x7dd, + // Block 0xd9, offset 0x3640 + 0x3664: 0x7de, 0x3665: 0x7df, 0x3666: 0x7e0, 0x3667: 0x7e1, + 0x3668: 0x7e2, 0x3669: 0x7e3, 0x366a: 0x7e4, 0x366b: 0x7e5, 0x366c: 0x103, 0x366d: 0x104, 0x366e: 0x105, 0x366f: 0x106, + 0x3670: 0x107, 0x3671: 0x108, 0x3672: 0x109, 0x3673: 0x10a, 0x3674: 0x10b, 0x3675: 0x10c, 0x3676: 0x10d, 0x3677: 0x10e, + 0x3678: 0x10f, 0x3679: 0x110, 0x367a: 0x111, 0x367b: 0x112, 0x367c: 0x113, 0x367d: 0x114, 0x367e: 0x115, 0x367f: 0x116, + // Block 0xda, offset 0x3680 + 0x3680: 0x18b, 0x3681: 0x18c, 0x3682: 0x18d, 0x3683: 0x18e, 0x3684: 0x18f, 0x3685: 0x190, 0x3686: 0x191, 0x3687: 0x192, + 0x3688: 0x7e6, 0x3689: 0x7e7, 0x368c: 0x195, 0x368d: 0x196, 0x368e: 0x197, 0x368f: 0x198, + 0x3690: 0x199, 0x3691: 0x19a, 0x3692: 0x19b, 0x3693: 0x19c, 0x3694: 0x19d, 0x3695: 0x19e, 0x3697: 0x19f, + 0x3698: 0x1a0, 0x3699: 0x1a1, 0x369a: 0x1a2, 0x369b: 0x1a3, 0x369c: 0x1a4, 0x369d: 0x1a5, + // Block 0xdb, offset 0x36c0 + 0x36c0: 0x7e8, 0x36c1: 0x7e9, 0x36c2: 0x7ea, 0x36c3: 0x7eb, 0x36c4: 0x7ec, 0x36c5: 0x7ed, 0x36c6: 0x7ee, 0x36c7: 0x7ef, + 0x36c8: 0x7f0, 0x36c9: 0x7f1, 0x36ca: 0x7f2, 0x36cb: 0x7f3, 0x36cc: 0x7f4, 0x36cd: 0x7f5, 0x36ce: 0x7f6, 0x36cf: 0x7f7, + 0x36d0: 0x7f8, 0x36d1: 0x7f9, 0x36d2: 0x7fa, 0x36d3: 0x7fb, 0x36d4: 0x7fc, 0x36d5: 0x7fd, 0x36d6: 0x7fe, 0x36d7: 0x7ff, + 0x36d8: 0x800, 0x36d9: 0x801, 0x36da: 0x802, 0x36db: 0x803, 0x36dc: 0x804, 0x36dd: 0x805, 0x36de: 0x806, 0x36df: 0x807, + 0x36e0: 0x808, 0x36e1: 0x809, 0x36e2: 0x80a, 0x36e3: 0x80b, 0x36e4: 0x80c, 0x36e5: 0x80d, 0x36e6: 0x80e, 0x36e7: 0x80f, + 0x36e8: 0x810, 0x36e9: 0x811, 0x36ea: 0x812, 0x36eb: 0x813, 0x36ec: 0x814, 0x36ed: 0x815, 0x36ee: 0x816, 0x36ef: 0x817, + 0x36f0: 0x818, 0x36f1: 0x819, 0x36f2: 0x81a, 0x36f3: 0x81b, 0x36f4: 0x81c, 0x36f5: 0x81d, 0x36f6: 0x81e, 0x36f7: 0x81f, + 0x36f8: 0x820, 0x36f9: 0x821, 0x36fa: 0x822, 0x36fb: 0x823, 0x36fc: 0x824, 0x36fd: 0x825, 0x36fe: 0x826, 0x36ff: 0x827, + // Block 0xdc, offset 0x3700 + 0x3700: 0x828, 0x3701: 0x829, 0x3702: 0x82a, 0x3703: 0x82b, 0x3704: 0x82c, 0x3705: 0x82d, 0x3706: 0x82e, 0x3707: 0x82f, + 0x3708: 0x830, 0x3709: 0x831, 0x370a: 0x832, 0x370b: 0x833, 0x370c: 0x834, 0x370d: 0x835, 0x370e: 0x836, 0x370f: 0x837, + 0x3710: 0x838, 0x3711: 0x839, 0x3712: 0x83a, 0x3713: 0x83b, 0x3714: 0x83c, 0x3715: 0x83d, 0x3716: 0x83e, 0x3717: 0x83f, + 0x3718: 0x840, 0x3719: 0x841, 0x371a: 0x842, 0x371b: 0x843, 0x371c: 0x844, 0x371d: 0x845, 0x371e: 0x846, 0x371f: 0x847, + 0x3720: 0x848, 0x3721: 0x849, 0x3722: 0x84a, 0x3723: 0x84b, 0x3724: 0x84c, 0x3725: 0x84d, 0x3726: 0x84e, 0x3727: 0x84f, + 0x3728: 0x850, 0x3729: 0x851, 0x372a: 0x852, 0x372b: 0x853, 0x372c: 0x854, 0x372d: 0x855, 0x372e: 0x856, 0x372f: 0x857, + 0x3730: 0x858, 0x3731: 0x859, 0x3732: 0x85a, 0x3733: 0x85b, 0x3734: 0x85c, 0x3735: 0x85d, 0x3736: 0x85e, 0x3737: 0x85f, + 0x3738: 0x860, 0x3739: 0x861, 0x373a: 0x862, 0x373b: 0x863, 0x373c: 0x864, 0x373d: 0x865, 0x373e: 0x866, 0x373f: 0x867, + // Block 0xdd, offset 0x3740 + 0x3740: 0x868, 0x3741: 0x869, 0x3742: 0x86a, 0x3743: 0x86b, 0x3744: 0x86c, 0x3745: 0x86d, 0x3746: 0x86e, 0x3747: 0x86f, + 0x3748: 0x870, 0x3749: 0x871, 0x374a: 0x872, 0x374b: 0x873, 0x374c: 0x874, 0x374d: 0x875, 0x374e: 0x876, 0x374f: 0x877, + 0x3750: 0x878, 0x3751: 0x879, 0x3752: 0x87a, 0x3753: 0x87b, 0x3754: 0x87c, 0x3755: 0x87d, 0x3756: 0x87e, 0x3757: 0x87f, + 0x3758: 0x880, 0x3759: 0x881, 0x375a: 0x882, 0x375b: 0x883, 0x375c: 0x884, 0x375d: 0x885, 0x375e: 0x886, 0x375f: 0x887, + 0x3760: 0x888, 0x3761: 0x889, 0x3762: 0x88a, 0x3763: 0x88b, 0x3764: 0x88c, 0x3765: 0x88d, 0x3766: 0x88e, 0x3767: 0x88f, + 0x3768: 0x890, 0x3769: 0x891, 0x376a: 0x892, 0x376b: 0x893, 0x376c: 0x894, 0x376d: 0x895, 0x376e: 0x896, 0x376f: 0x897, + 0x3770: 0x898, 0x3771: 0x899, 0x3772: 0x89a, 0x3773: 0x89b, 0x3774: 0x89c, 0x3775: 0x89d, 0x3776: 0x89e, 0x3777: 0x89f, + 0x3778: 0x8a0, 0x3779: 0x8a1, 0x377a: 0x8a2, 0x377b: 0x8a3, 0x377c: 0x8a4, 0x377d: 0x8a5, 0x377e: 0x8a6, 0x377f: 0x8a7, + // Block 0xde, offset 0x3780 + 0x3780: 0x8a8, 0x3781: 0x8a9, 0x3782: 0x8aa, 0x3783: 0x8ab, 0x3784: 0x8ac, 0x3785: 0x8ad, 0x3786: 0x8ae, 0x3787: 0x8af, + 0x3788: 0x8b0, 0x3789: 0x8b1, 0x378a: 0x8b2, 0x378b: 0x8b3, 0x378c: 0x8b4, 0x378d: 0x8b5, 0x378e: 0x8b6, 0x378f: 0x8b7, + 0x3790: 0x8b8, 0x3791: 0x8b9, 0x3792: 0x8ba, 0x3793: 0x8bb, 0x3794: 0x8bc, 0x3795: 0x8bd, 0x3796: 0x8be, 0x3797: 0x8bf, + 0x3798: 0x8c0, 0x3799: 0x8c1, 0x379a: 0x8c2, 0x379b: 0x8c3, 0x379c: 0x8c4, 0x379d: 0x8c5, 0x379e: 0x8c6, 0x379f: 0x8c7, + 0x37a0: 0x8c8, 0x37a1: 0x8c9, 0x37a2: 0x8ca, 0x37a3: 0x8cb, 0x37a4: 0x8cc, 0x37a5: 0x8cd, 0x37a6: 0x8ce, 0x37a7: 0x8cf, + 0x37a8: 0x8d0, 0x37a9: 0x8d1, 0x37aa: 0x8d2, 0x37ab: 0x8d3, 0x37ac: 0x8d4, 0x37ad: 0x8d5, 0x37ae: 0x8d6, 0x37af: 0x8d7, + 0x37b0: 0x8d8, 0x37b1: 0x8d9, 0x37b2: 0x8da, 0x37b3: 0x8db, 0x37b4: 0x8dc, 0x37b5: 0x8dd, 0x37b6: 0x8de, 0x37b7: 0x8df, + 0x37b8: 0x8e0, 0x37b9: 0x8e1, 0x37ba: 0x8e2, 0x37bb: 0x8e3, 0x37bc: 0x8e4, 0x37bd: 0x8e5, 0x37be: 0x8e6, 0x37bf: 0x8e7, + // Block 0xdf, offset 0x37c0 + 0x37c0: 0x8e8, 0x37c1: 0x8e9, 0x37c2: 0x8ea, 0x37c3: 0x8eb, 0x37c4: 0x8ec, 0x37c5: 0x8ed, 0x37c6: 0x8ee, 0x37c7: 0x8ef, + 0x37c8: 0x8f0, 0x37c9: 0x8f1, 0x37ca: 0x8f2, 0x37cb: 0x8f3, 0x37cc: 0x8f4, 0x37cd: 0x8f5, 0x37ce: 0x8f6, 0x37cf: 0x8f7, + 0x37d0: 0x8f8, 0x37d1: 0x8f9, 0x37d2: 0x8fa, 0x37d3: 0x8fb, 0x37d4: 0x8fc, 0x37d5: 0x8fd, 0x37d6: 0x8fe, 0x37d7: 0x8ff, + 0x37d8: 0x900, 0x37d9: 0x901, 0x37da: 0x902, 0x37db: 0x903, 0x37dc: 0x904, 0x37dd: 0x905, 0x37de: 0x906, 0x37df: 0x907, + 0x37e0: 0x908, 0x37e1: 0x909, 0x37e2: 0x90a, 0x37e3: 0x90b, 0x37e4: 0x90c, 0x37e5: 0x90d, 0x37e6: 0x90e, 0x37e7: 0x90f, + 0x37e8: 0x910, 0x37e9: 0x911, 0x37ea: 0x912, 0x37eb: 0x913, 0x37ec: 0x914, 0x37ed: 0x915, 0x37ee: 0x916, 0x37ef: 0x917, + 0x37f0: 0x918, 0x37f1: 0x919, 0x37f2: 0x91a, 0x37f3: 0x91b, 0x37f4: 0x91c, 0x37f5: 0x91d, 0x37f6: 0x91e, 0x37f7: 0x91f, + 0x37f8: 0x920, 0x37f9: 0x921, 0x37fa: 0x922, 0x37fb: 0x923, 0x37fc: 0x924, 0x37fd: 0x925, 0x37fe: 0x926, 0x37ff: 0x927, + // Block 0xe0, offset 0x3800 + 0x3800: 0x928, 0x3801: 0x929, 0x3802: 0x92a, 0x3803: 0x92b, 0x3804: 0x92c, 0x3805: 0x92d, 0x3806: 0x92e, 0x3807: 0x92f, + 0x3808: 0x930, 0x3809: 0x931, 0x380a: 0x932, 0x380b: 0x933, 0x380c: 0x934, 0x380d: 0x935, 0x380e: 0x936, 0x380f: 0x937, + 0x3810: 0x938, 0x3811: 0x939, 0x3812: 0x93a, 0x3813: 0x93b, 0x3814: 0x93c, 0x3815: 0x93d, 0x3816: 0x93e, 0x3817: 0x93f, + 0x3818: 0x940, 0x3819: 0x941, 0x381a: 0x942, 0x381b: 0x943, 0x381c: 0x944, 0x381d: 0x945, 0x381e: 0x946, 0x381f: 0x947, + 0x3820: 0x948, 0x3821: 0x949, 0x3822: 0x94a, 0x3823: 0x94b, 0x3824: 0x94c, 0x3825: 0x94d, 0x3826: 0x94e, 0x3827: 0x94f, + 0x3828: 0x950, 0x3829: 0x951, 0x382a: 0x952, 0x382b: 0x953, 0x382c: 0x954, 0x382d: 0x955, 0x382e: 0x956, 0x382f: 0x957, + 0x3830: 0x958, 0x3831: 0x959, 0x3832: 0x95a, 0x3833: 0x95b, 0x3834: 0x95c, 0x3835: 0x95d, 0x3836: 0x95e, 0x3837: 0x95f, + 0x3838: 0x960, 0x3839: 0x961, 0x383a: 0x962, 0x383b: 0x963, 0x383c: 0x964, 0x383d: 0x965, 0x383e: 0x966, 0x383f: 0x967, + // Block 0xe1, offset 0x3840 + 0x3840: 0x968, 0x3841: 0x969, 0x3842: 0x96a, 0x3843: 0x96b, 0x3844: 0x96c, 0x3845: 0x96d, 0x3846: 0x96e, 0x3847: 0x96f, + 0x3848: 0x970, 0x3849: 0x971, 0x384a: 0x972, 0x384b: 0x973, 0x384c: 0x974, 0x384d: 0x975, 0x384e: 0x976, 0x384f: 0x977, + 0x3850: 0x978, 0x3851: 0x979, 0x3852: 0x97a, 0x3853: 0x97b, 0x3854: 0x97c, 0x3855: 0x97d, 0x3856: 0x97e, 0x3857: 0x97f, + 0x3858: 0x980, 0x3859: 0x981, 0x385a: 0x982, 0x385b: 0x983, 0x385c: 0x984, 0x385d: 0x985, 0x385e: 0x986, 0x385f: 0x987, + 0x3860: 0x988, 0x3861: 0x989, 0x3862: 0x98a, 0x3863: 0x98b, 0x3864: 0x98c, 0x3865: 0x98d, 0x3866: 0x98e, 0x3867: 0x98f, + 0x3868: 0x990, 0x3869: 0x991, 0x386a: 0x992, 0x386b: 0x993, 0x386c: 0x994, 0x386d: 0x995, 0x386e: 0x996, 0x386f: 0x997, + 0x3870: 0x998, 0x3871: 0x999, 0x3872: 0x99a, 0x3873: 0x99b, 0x3874: 0x99c, 0x3875: 0x99d, 0x3876: 0x99e, 0x3877: 0x99f, + 0x3878: 0x9a0, 0x3879: 0x9a1, 0x387a: 0x9a2, 0x387b: 0x9a3, 0x387c: 0x9a4, 0x387d: 0x9a5, 0x387e: 0x9a6, 0x387f: 0x9a7, + // Block 0xe2, offset 0x3880 + 0x3880: 0x9a8, 0x3881: 0x9a9, 0x3882: 0x9aa, 0x3883: 0x9ab, 0x3884: 0x9ac, 0x3885: 0x9ad, 0x3886: 0x9ae, 0x3887: 0x9af, + 0x3888: 0x9b0, 0x3889: 0x9b1, 0x388a: 0x9b2, 0x388b: 0x9b3, 0x388c: 0x9b4, 0x388d: 0x9b5, 0x388e: 0x9b6, 0x388f: 0x9b7, + 0x3890: 0x9b8, 0x3891: 0x9b9, 0x3892: 0x9ba, 0x3893: 0x9bb, 0x3894: 0x9bc, 0x3895: 0x9bd, 0x3896: 0x9be, 0x3897: 0x9bf, + 0x3898: 0x9c0, 0x3899: 0x9c1, 0x389a: 0x9c2, 0x389b: 0x9c3, 0x389c: 0x9c4, 0x389d: 0x9c5, 0x389e: 0x9c6, 0x389f: 0x9c7, + 0x38a0: 0x9c8, 0x38a1: 0x9c9, 0x38a2: 0x9ca, 0x38a3: 0x9cb, 0x38a4: 0x9cc, 0x38a5: 0x9cd, 0x38a6: 0x9ce, 0x38a7: 0x9cf, + 0x38a8: 0x9d0, 0x38a9: 0x9d1, 0x38aa: 0x9d2, 0x38ab: 0x9d3, 0x38ac: 0x9d4, 0x38ad: 0x9d5, 0x38ae: 0x9d6, 0x38af: 0x9d7, + 0x38b0: 0x9d8, 0x38b1: 0x9d9, 0x38b2: 0x9da, 0x38b3: 0x9db, 0x38b4: 0x9dc, 0x38b5: 0x9dd, 0x38b6: 0x9de, 0x38b7: 0x9df, + 0x38b8: 0x9e0, 0x38b9: 0x9e1, 0x38ba: 0x9e2, 0x38bb: 0x9e3, 0x38bc: 0x9e4, 0x38bd: 0x9e5, 0x38be: 0x9e6, 0x38bf: 0x9e7, + // Block 0xe3, offset 0x38c0 + 0x38c0: 0x9e8, 0x38c1: 0x9e9, 0x38c2: 0x9ea, 0x38c3: 0x9eb, 0x38c4: 0x9ec, 0x38c5: 0x9ed, 0x38c6: 0x9ee, 0x38c7: 0x9ef, + 0x38c8: 0x9f0, 0x38c9: 0x9f1, 0x38ca: 0x9f2, 0x38cb: 0x9f3, 0x38cc: 0x9f4, 0x38cd: 0x9f5, 0x38ce: 0x9f6, 0x38cf: 0x9f7, + 0x38d0: 0x9f8, 0x38d1: 0x9f9, 0x38d2: 0x9fa, 0x38d3: 0x9fb, 0x38d4: 0x9fc, 0x38d5: 0x9fd, 0x38d6: 0x9fe, 0x38d7: 0x9ff, + 0x38d8: 0xa00, 0x38d9: 0xa01, 0x38da: 0xa02, 0x38db: 0xa03, 0x38dc: 0xa04, 0x38dd: 0xa05, 0x38de: 0xa06, 0x38df: 0xa07, + 0x38e0: 0xa08, 0x38e1: 0xa09, 0x38e2: 0xa0a, 0x38e3: 0xa0b, 0x38e4: 0xa0c, 0x38e5: 0xa0d, 0x38e6: 0xa0e, 0x38e7: 0xa0f, + 0x38e8: 0xa10, 0x38e9: 0xa11, 0x38ea: 0xa12, 0x38eb: 0xa13, 0x38ec: 0xa14, 0x38ed: 0xa15, 0x38ee: 0xa16, 0x38ef: 0xa17, + 0x38f0: 0xa18, 0x38f1: 0xa19, 0x38f2: 0xa1a, 0x38f3: 0xa1b, 0x38f4: 0xa1c, 0x38f5: 0xa1d, 0x38f6: 0xa1e, 0x38f7: 0xa1f, + 0x38f8: 0xa20, 0x38f9: 0xa21, 0x38fa: 0xa22, 0x38fb: 0xa23, 0x38fc: 0xa24, 0x38fd: 0xa25, 0x38fe: 0xa26, 0x38ff: 0xa27, + // Block 0xe4, offset 0x3900 + 0x3900: 0xa28, 0x3901: 0xa29, 0x3902: 0xa2a, 0x3903: 0xa2b, 0x3904: 0xa2c, 0x3905: 0xa2d, 0x3906: 0xa2e, 0x3907: 0xa2f, + 0x3908: 0xa30, 0x3909: 0xa31, 0x390a: 0xa32, 0x390b: 0xa33, 0x390c: 0xa34, 0x390d: 0xa35, 0x390e: 0xa36, 0x390f: 0xa37, + 0x3910: 0xa38, 0x3911: 0xa39, 0x3912: 0xa3a, 0x3913: 0xa3b, 0x3914: 0xa3c, 0x3915: 0xa3d, 0x3916: 0xa3e, 0x3917: 0xa3f, + 0x3918: 0xa40, 0x3919: 0xa41, 0x391a: 0xa42, 0x391b: 0xa43, 0x391c: 0xa44, 0x391d: 0xa45, 0x391e: 0xa46, 0x391f: 0xa47, + 0x3920: 0xa48, 0x3921: 0xa49, 0x3922: 0xa4a, 0x3923: 0xa4b, 0x3924: 0xa4c, 0x3925: 0xa4d, 0x3926: 0xa4e, 0x3927: 0xa4f, + 0x3928: 0xa50, 0x3929: 0xa51, 0x392a: 0xa52, 0x392b: 0xa53, 0x392c: 0xa54, 0x392d: 0xa55, 0x392e: 0xa56, 0x392f: 0xa57, + 0x3930: 0xa58, 0x3931: 0xa59, 0x3932: 0xa5a, 0x3933: 0xa5b, 0x3934: 0xa5c, 0x3935: 0xa5d, 0x3936: 0xa5e, 0x3937: 0xa5f, + 0x3938: 0xa60, 0x3939: 0xa61, 0x393a: 0xa62, 0x393b: 0xa63, 0x393c: 0xa64, 0x393d: 0xa65, 0x393e: 0xa66, 0x393f: 0xa67, + // Block 0xe5, offset 0x3940 + 0x3940: 0xa68, 0x3941: 0xa69, 0x3942: 0xa6a, 0x3943: 0xa6b, 0x3944: 0xa6c, 0x3945: 0xa6d, 0x3946: 0xa6e, 0x3947: 0xa6f, + 0x3948: 0xa70, 0x3949: 0xa71, 0x394a: 0xa72, 0x394b: 0xa73, 0x394c: 0xa74, 0x394d: 0xa75, 0x394e: 0xa76, 0x394f: 0xa77, + 0x3950: 0xa78, 0x3951: 0xa79, 0x3952: 0xa7a, 0x3953: 0xa7b, 0x3954: 0xa7c, 0x3955: 0xa7d, 0x3956: 0xa7e, 0x3957: 0xa7f, + 0x3958: 0xa80, 0x3959: 0xa81, 0x395a: 0xa82, 0x395b: 0xa83, 0x395e: 0xa84, + 0x3961: 0xa85, 0x3962: 0xa86, + 0x3968: 0xa87, 0x396a: 0xa88, + 0x397a: 0xa89, 0x397b: 0xa8a, 0x397e: 0xa8b, + // Block 0xe6, offset 0x3980 + 0x3981: 0xa8c, 0x3982: 0xa8d, 0x3983: 0xa8e, 0x3984: 0xa8f, + 0x3988: 0xa90, 0x398b: 0xa91, 0x398c: 0xa92, 0x398d: 0xa93, 0x398f: 0xa94, + 0x3990: 0xa95, 0x3992: 0xa96, 0x3993: 0xa97, 0x3994: 0xa98, 0x3997: 0xa99, + 0x3998: 0xa9a, 0x399a: 0xa9b, 0x399b: 0xa9c, + // Block 0xe7, offset 0x39c0 + 0x39e0: 0xa9d, 0x39e1: 0xa9e, 0x39e2: 0xa9f, 0x39e3: 0xaa0, 0x39e4: 0xaa1, 0x39e5: 0xaa2, 0x39e6: 0xaa3, 0x39e7: 0xaa4, + 0x39e8: 0xaa5, + // Block 0xe8, offset 0x3a00 + 0x3a10: 0x09, 0x3a11: 0x0a, 0x3a12: 0x0b, 0x3a13: 0x0c, 0x3a16: 0x0d, + 0x3a1b: 0x0e, 0x3a1d: 0x0f, 0x3a1e: 0x10, 0x3a1f: 0xd8, + 0x3a20: 0xd9, 0x3a21: 0xda, 0x3a22: 0xdb, 0x3a23: 0xdc, 0x3a24: 0xdd, 0x3a25: 0xde, 0x3a26: 0xdf, 0x3a27: 0xe0, + 0x3a28: 0xe1, 0x3a29: 0xe2, 0x3a2a: 0xe3, 0x3a2b: 0xe4, 0x3a2f: 0xe5, + // Block 0xe9, offset 0x3a40 + 0x3a42: 0x01, 0x3a43: 0x618, 0x3a44: 0x619, 0x3a45: 0x61a, 0x3a46: 0x05, 0x3a47: 0x61b, + 0x3a48: 0x61c, 0x3a49: 0x08, 0x3a4a: 0x09, 0x3a4b: 0x0a, 0x3a4c: 0x0b, 0x3a4d: 0x0c, 0x3a4e: 0x0d, 0x3a4f: 0x0e, + 0x3a50: 0x0f, 0x3a51: 0x10, 0x3a52: 0x11, 0x3a53: 0x12, 0x3a54: 0x13, 0x3a55: 0x14, 0x3a56: 0x15, 0x3a57: 0x16, + 0x3a58: 0x17, 0x3a59: 0x18, 0x3a5a: 0x19, 0x3a5b: 0x1a, 0x3a5c: 0x1b, 0x3a5d: 0x1c, 0x3a5e: 0x1d, 0x3a5f: 0x1e, + 0x3a60: 0x01, 0x3a61: 0xce, 0x3a62: 0xcf, 0x3a63: 0xd0, 0x3a64: 0xd1, 0x3a65: 0xd2, 0x3a66: 0xd3, 0x3a67: 0xd4, + 0x3a68: 0xd5, 0x3a69: 0xd6, 0x3a6a: 0x06, 0x3a6d: 0x07, 0x3a6f: 0xd7, + 0x3a70: 0xe6, 0x3a73: 0x15, + // Block 0xea, offset 0x3a80 + 0x3a80: 0x7d, 0x3a81: 0x7e, 0x3a82: 0x7f, 0x3a83: 0x80, 0x3a84: 0x81, 0x3a85: 0x82, 0x3a86: 0x83, 0x3a87: 0x84, + 0x3a88: 0x85, 0x3a89: 0x86, 0x3a8a: 0x87, 0x3a8b: 0x88, 0x3a8c: 0x89, 0x3a8d: 0x8a, 0x3a8e: 0x8b, 0x3a8f: 0x8c, + 0x3a90: 0x8d, 0x3a91: 0x8e, 0x3a92: 0x8f, 0x3a93: 0x90, 0x3a94: 0x91, 0x3a95: 0x92, 0x3a96: 0x93, 0x3a97: 0x94, + 0x3a98: 0x95, 0x3a99: 0x96, 0x3a9a: 0x97, 0x3a9b: 0x98, 0x3a9c: 0x99, 0x3a9d: 0x9a, 0x3a9e: 0x9b, 0x3a9f: 0x9c, + 0x3aa0: 0x9d, 0x3aa1: 0x9e, 0x3aa2: 0x9f, 0x3aa3: 0xa0, 0x3aa4: 0xa1, 0x3aa5: 0xa2, 0x3aa6: 0xa3, 0x3aa7: 0xa4, + 0x3aa8: 0xa5, 0x3aa9: 0xa6, 0x3aaa: 0xa7, 0x3aab: 0xa8, 0x3aac: 0xa9, 0x3aad: 0xaa, + 0x3ab0: 0xab, 0x3ab1: 0xac, 0x3ab2: 0xad, 0x3ab3: 0xae, 0x3ab4: 0xaf, 0x3ab5: 0xb0, 0x3ab6: 0xb1, 0x3ab7: 0xb2, + 0x3ab8: 0xb3, 0x3aba: 0xaa6, 0x3abb: 0xaa7, 0x3abc: 0xaa8, 0x3abd: 0xaa9, 0x3abe: 0xaaa, 0x3abf: 0xaab, + // Block 0xeb, offset 0x3ac0 + 0x3ac0: 0xaac, 0x3ac1: 0xbb, 0x3ac2: 0xbc, 0x3ac3: 0xbd, 0x3ac4: 0xbe, 0x3ac5: 0xbf, 0x3ac6: 0xaad, 0x3ac7: 0xc1, + 0x3ac8: 0xaae, 0x3ac9: 0xaaf, 0x3aca: 0xab0, 0x3acb: 0xab1, 0x3acc: 0xc6, 0x3acd: 0xab2, 0x3ace: 0xc8, 0x3acf: 0xab3, + 0x3ad0: 0xab4, 0x3ad1: 0xab5, 0x3ad2: 0xab6, 0x3ad3: 0xab7, 0x3ad4: 0xab8, 0x3ad5: 0xab9, 0x3ad6: 0xaba, 0x3ad7: 0xabb, + 0x3ad8: 0xabc, 0x3ad9: 0xabd, 0x3ada: 0xabe, 0x3adb: 0xabf, 0x3adc: 0xac0, 0x3add: 0xac1, 0x3ade: 0xac2, 0x3adf: 0xac3, + 0x3ae0: 0xac4, 0x3ae1: 0xac5, 0x3ae2: 0xac6, 0x3ae3: 0xac7, 0x3ae4: 0xac8, 0x3ae5: 0xac9, 0x3ae6: 0xaca, 0x3ae7: 0xacb, + 0x3ae8: 0xacc, 0x3ae9: 0xacd, 0x3aea: 0xace, 0x3aeb: 0xacf, 0x3aec: 0xad0, 0x3aed: 0xad1, 0x3aee: 0xad2, 0x3aef: 0xad3, + 0x3af0: 0xad4, 0x3af1: 0xad5, 0x3af2: 0xad6, 0x3af3: 0xad7, 0x3af4: 0xad8, 0x3af5: 0xad9, 0x3af6: 0xada, 0x3af7: 0xadb, + 0x3af8: 0xadc, 0x3af9: 0xadd, 0x3afa: 0xade, 0x3afb: 0xadf, 0x3afc: 0xae0, 0x3afd: 0xae1, 0x3afe: 0xae2, 0x3aff: 0xae3, + // Block 0xec, offset 0x3b00 + 0x3b00: 0xae4, 0x3b01: 0xae5, 0x3b02: 0xae6, 0x3b03: 0xae7, 0x3b04: 0xae8, 0x3b05: 0xae9, 0x3b06: 0xaea, 0x3b07: 0xaeb, + 0x3b08: 0xaec, 0x3b09: 0xaed, 0x3b0a: 0xaee, 0x3b0b: 0xaef, 0x3b0c: 0xaf0, 0x3b0d: 0xaf1, 0x3b0e: 0xaf2, 0x3b0f: 0xaf3, + 0x3b10: 0xaf4, 0x3b11: 0xaf5, 0x3b12: 0xaf6, 0x3b13: 0xaf7, 0x3b14: 0xaf8, 0x3b15: 0xaf9, 0x3b16: 0xafa, 0x3b17: 0xafb, + 0x3b18: 0xafc, 0x3b19: 0xafd, 0x3b1a: 0xafe, 0x3b1b: 0xaff, 0x3b1c: 0xb00, 0x3b1d: 0xb01, 0x3b1e: 0xb02, 0x3b1f: 0xb03, + 0x3b20: 0xb04, 0x3b21: 0xb05, 0x3b22: 0xb06, 0x3b23: 0xb07, 0x3b24: 0xb08, 0x3b25: 0xb09, 0x3b26: 0xb0a, 0x3b27: 0xb0b, + 0x3b28: 0xb0c, 0x3b29: 0xb0d, 0x3b2a: 0xb0e, 0x3b2b: 0xb0f, 0x3b2c: 0xb10, 0x3b2d: 0xb11, 0x3b2e: 0xb12, 0x3b2f: 0xb13, + 0x3b30: 0xb14, 0x3b31: 0xb15, 0x3b32: 0xb16, 0x3b33: 0xb17, 0x3b34: 0xb18, 0x3b35: 0xb19, 0x3b36: 0xb1a, 0x3b37: 0xca, + 0x3b38: 0xb1b, 0x3b39: 0xb1c, 0x3b3a: 0xb1d, 0x3b3b: 0xb1e, 0x3b3c: 0xb1f, 0x3b3d: 0xb20, 0x3b3e: 0xb21, 0x3b3f: 0xb22, + // Block 0xed, offset 0x3b40 + 0x3b40: 0xb23, 0x3b41: 0xb24, 0x3b42: 0xb25, 0x3b43: 0xb26, 0x3b44: 0xb27, 0x3b45: 0xb28, 0x3b46: 0xb29, 0x3b47: 0xb2a, + 0x3b48: 0xb2b, 0x3b49: 0xb2c, 0x3b4a: 0xb2d, 0x3b4b: 0xb2e, 0x3b4c: 0xb2f, 0x3b4d: 0xb30, 0x3b4e: 0xb31, 0x3b4f: 0xb32, + 0x3b50: 0xb33, 0x3b51: 0xb34, 0x3b52: 0xb35, 0x3b53: 0xb36, 0x3b54: 0xb37, 0x3b55: 0xb38, 0x3b56: 0xb39, 0x3b57: 0xb3a, + 0x3b58: 0xb3b, 0x3b59: 0xb3c, 0x3b5a: 0xb3d, 0x3b5b: 0xb3e, 0x3b5c: 0xb3f, 0x3b5d: 0xb40, 0x3b5e: 0xb41, 0x3b5f: 0xb42, + 0x3b60: 0xb43, 0x3b61: 0xb44, 0x3b62: 0xb45, 0x3b63: 0xb46, 0x3b64: 0xb47, 0x3b65: 0xb48, 0x3b66: 0xb49, 0x3b67: 0xb4a, + 0x3b68: 0xb4b, 0x3b69: 0xb4c, 0x3b6a: 0xb4d, 0x3b6b: 0xb4e, 0x3b6c: 0xb4f, 0x3b6d: 0xb50, 0x3b6e: 0xb51, 0x3b6f: 0xb52, + 0x3b70: 0xb53, 0x3b71: 0xb54, 0x3b72: 0xb55, 0x3b73: 0xb56, 0x3b74: 0xb57, 0x3b75: 0xb58, 0x3b76: 0xb59, 0x3b77: 0xb5a, + 0x3b78: 0xb5b, 0x3b79: 0xb5c, 0x3b7a: 0xb5d, 0x3b7b: 0xb5e, 0x3b7c: 0xb5f, 0x3b7d: 0xb60, 0x3b7e: 0xb61, 0x3b7f: 0xb62, + // Block 0xee, offset 0x3b80 + 0x3b80: 0xb63, 0x3b81: 0xb64, 0x3b82: 0xb65, 0x3b83: 0xb66, 0x3b84: 0xb67, 0x3b85: 0xb68, 0x3b86: 0xb69, 0x3b87: 0xb6a, + 0x3b88: 0xb6b, 0x3b89: 0xb6c, 0x3b8a: 0xb6d, 0x3b8b: 0xb6e, 0x3b8c: 0xb6f, 0x3b8d: 0xb70, 0x3b8e: 0xb71, 0x3b8f: 0xb72, + 0x3b90: 0xb73, 0x3b91: 0xb74, 0x3b92: 0xb75, 0x3b93: 0xb76, 0x3b94: 0xb77, 0x3b95: 0xb78, 0x3b96: 0xb79, 0x3b97: 0xb7a, + 0x3b98: 0xb7b, 0x3b99: 0xb7c, 0x3b9a: 0xb7d, 0x3b9b: 0xb7e, 0x3b9c: 0xb7f, 0x3b9d: 0xb80, 0x3b9e: 0xb81, 0x3b9f: 0xb82, + 0x3ba0: 0xb83, 0x3ba1: 0xb84, 0x3ba2: 0xb85, 0x3ba3: 0xb86, 0x3ba4: 0xb87, 0x3ba5: 0xb88, 0x3ba6: 0xb89, 0x3ba7: 0xb8a, + 0x3ba8: 0xb8b, 0x3ba9: 0xb8c, 0x3baa: 0xb8d, 0x3bab: 0xb8e, 0x3bac: 0xb8f, 0x3bad: 0xb90, 0x3bae: 0xb91, 0x3baf: 0xb92, + 0x3bb0: 0xb93, 0x3bb1: 0xb94, 0x3bb2: 0xb95, 0x3bb3: 0xb96, 0x3bb4: 0xb97, 0x3bb5: 0xb98, 0x3bb6: 0xb99, 0x3bb7: 0xb9a, + 0x3bb8: 0xb9b, 0x3bb9: 0xb9c, 0x3bba: 0xb9d, 0x3bbb: 0xb9e, 0x3bbc: 0xb9f, 0x3bbd: 0xba0, 0x3bbe: 0xba1, 0x3bbf: 0xba2, + // Block 0xef, offset 0x3bc0 + 0x3bc0: 0xba3, 0x3bc1: 0xba4, 0x3bc2: 0xba5, 0x3bc3: 0xba6, 0x3bc4: 0xba7, 0x3bc5: 0xba8, 0x3bc6: 0xba9, 0x3bc7: 0xbaa, + 0x3bc8: 0xbab, 0x3bc9: 0xbac, 0x3bca: 0xbad, 0x3bcb: 0xbae, 0x3bcc: 0xbaf, 0x3bcd: 0xbb0, 0x3bce: 0xbb1, 0x3bcf: 0xbb2, + 0x3bd0: 0xbb3, 0x3bd1: 0xbb4, 0x3bd2: 0xbb5, 0x3bd3: 0xbb6, 0x3bd4: 0xbb7, 0x3bd5: 0xbb8, 0x3bd6: 0xbb9, 0x3bd7: 0xbba, + 0x3bd8: 0xbbb, 0x3bd9: 0xbbc, 0x3bda: 0xbbd, 0x3bdb: 0xbbe, 0x3bdc: 0xbbf, 0x3bdd: 0xbc0, 0x3bde: 0xbc1, 0x3bdf: 0xbc2, + 0x3be0: 0xbc3, 0x3be1: 0xbc4, 0x3be2: 0xbc5, 0x3be3: 0xbc6, 0x3be4: 0xbc7, 0x3be5: 0xbc8, 0x3be6: 0xbc9, 0x3be7: 0xbca, + 0x3be8: 0xbcb, 0x3be9: 0xbcc, 0x3bea: 0xbcd, 0x3beb: 0xbce, 0x3bec: 0xbcf, 0x3bed: 0xbd0, 0x3bee: 0xbd1, 0x3bef: 0xbd2, + 0x3bf0: 0xbd3, 0x3bf1: 0xbd4, 0x3bf2: 0xbd5, 0x3bf3: 0xbd6, 0x3bf4: 0xbd7, 0x3bf5: 0xbd8, 0x3bf6: 0xbd9, 0x3bf7: 0xbda, + 0x3bf8: 0xbdb, 0x3bf9: 0xbdc, 0x3bfa: 0xbdd, 0x3bfb: 0xbde, 0x3bfc: 0xbdf, 0x3bfd: 0xbe0, 0x3bfe: 0xbe1, 0x3bff: 0xbe2, + // Block 0xf0, offset 0x3c00 + 0x3c00: 0xbe3, 0x3c01: 0xbe4, 0x3c02: 0xbe5, 0x3c03: 0xbe6, 0x3c04: 0xbe7, 0x3c05: 0xbe8, 0x3c06: 0xbe9, 0x3c07: 0xbea, + 0x3c08: 0xbeb, 0x3c09: 0xbec, 0x3c0a: 0xbed, 0x3c0b: 0xbee, 0x3c0c: 0xbef, 0x3c0d: 0xbf0, 0x3c0e: 0xbf1, 0x3c0f: 0xbf2, + 0x3c10: 0xbf3, 0x3c11: 0xbf4, 0x3c12: 0xbf5, 0x3c13: 0xbf6, 0x3c14: 0xbf7, 0x3c15: 0xbf8, 0x3c16: 0xbf9, 0x3c17: 0xbfa, + 0x3c18: 0xbfb, 0x3c19: 0xbfc, 0x3c1a: 0xbfd, 0x3c1b: 0xbfe, 0x3c1c: 0xbff, 0x3c1d: 0xc00, 0x3c1e: 0xc01, 0x3c1f: 0xc02, + 0x3c20: 0xc03, 0x3c21: 0xc04, 0x3c22: 0xc05, 0x3c23: 0xc06, 0x3c24: 0xc07, 0x3c25: 0xc08, 0x3c26: 0xc09, 0x3c27: 0xc0a, + 0x3c28: 0xc0b, 0x3c29: 0xc0c, 0x3c2a: 0xc0d, 0x3c2b: 0xc0e, 0x3c2c: 0xc0f, 0x3c2d: 0xc10, 0x3c2e: 0xc11, 0x3c2f: 0xc12, + 0x3c30: 0xc13, 0x3c31: 0xc14, 0x3c32: 0xc15, 0x3c33: 0xc16, 0x3c34: 0xc17, 0x3c35: 0xc18, 0x3c36: 0xc19, 0x3c37: 0xc1a, + 0x3c38: 0xc1b, 0x3c39: 0xc1c, 0x3c3a: 0xc1d, 0x3c3b: 0xc1e, 0x3c3c: 0xc1f, 0x3c3d: 0xc20, 0x3c3e: 0xc21, 0x3c3f: 0xc22, + // Block 0xf1, offset 0x3c40 + 0x3c40: 0xc23, 0x3c41: 0xc24, 0x3c42: 0xc25, 0x3c43: 0xc26, 0x3c44: 0xc27, 0x3c45: 0xc28, 0x3c46: 0xc29, 0x3c47: 0xc2a, + 0x3c48: 0xc2b, 0x3c49: 0xc2c, 0x3c4a: 0xc2d, 0x3c4b: 0xc2e, 0x3c4c: 0xc2f, 0x3c4d: 0xc30, 0x3c4e: 0xc31, 0x3c4f: 0xc32, + 0x3c50: 0xc33, 0x3c51: 0xc34, 0x3c52: 0xc35, 0x3c53: 0xc36, 0x3c54: 0xc37, 0x3c55: 0xc38, 0x3c56: 0xc39, 0x3c57: 0xc3a, + 0x3c58: 0xc3b, 0x3c59: 0xc3c, 0x3c5a: 0xc3d, 0x3c5b: 0xc3e, 0x3c5c: 0xc3f, 0x3c5d: 0xc40, 0x3c5e: 0xc41, 0x3c5f: 0xc42, + 0x3c60: 0xc43, 0x3c61: 0xc44, 0x3c62: 0xc45, 0x3c63: 0xc46, 0x3c64: 0xc47, 0x3c65: 0xc48, 0x3c66: 0xc49, 0x3c67: 0xc4a, + 0x3c68: 0xc4b, 0x3c69: 0xc4c, 0x3c6a: 0xc4d, 0x3c6b: 0xc4e, 0x3c6c: 0xc4f, 0x3c6d: 0xc50, 0x3c6e: 0xc51, 0x3c6f: 0xc52, + 0x3c70: 0xc53, 0x3c71: 0xc54, 0x3c72: 0xc55, 0x3c73: 0xc56, 0x3c74: 0xc57, 0x3c75: 0xc58, 0x3c76: 0xc59, 0x3c77: 0xc5a, + 0x3c78: 0xc5b, 0x3c79: 0xc5c, 0x3c7a: 0xc5d, 0x3c7b: 0xc5e, 0x3c7c: 0xc5f, 0x3c7d: 0xc60, 0x3c7e: 0xc61, 0x3c7f: 0xc62, + // Block 0xf2, offset 0x3c80 + 0x3ca4: 0xc63, 0x3ca5: 0xc64, 0x3ca6: 0xc65, 0x3ca7: 0xc66, + 0x3ca8: 0xc67, 0x3ca9: 0xc68, 0x3caa: 0xc69, 0x3cab: 0xc6a, 0x3cac: 0x103, 0x3cad: 0x104, 0x3cae: 0x105, 0x3caf: 0x106, + 0x3cb0: 0x107, 0x3cb1: 0x108, 0x3cb2: 0x109, 0x3cb3: 0x10a, 0x3cb4: 0x10b, 0x3cb5: 0x10c, 0x3cb6: 0x10d, 0x3cb7: 0x10e, + 0x3cb8: 0x10f, 0x3cb9: 0x110, 0x3cba: 0x111, 0x3cbb: 0x112, 0x3cbc: 0x113, 0x3cbd: 0x114, 0x3cbe: 0x115, 0x3cbf: 0x116, + // Block 0xf3, offset 0x3cc0 + 0x3cc0: 0x18b, 0x3cc1: 0x18c, 0x3cc2: 0x18d, 0x3cc3: 0x18e, 0x3cc4: 0x18f, 0x3cc5: 0x190, 0x3cc6: 0x191, 0x3cc7: 0x192, + 0x3cc8: 0xc6b, 0x3cc9: 0xc6c, 0x3ccc: 0x195, 0x3ccd: 0x196, 0x3cce: 0x197, 0x3ccf: 0x198, + 0x3cd0: 0x199, 0x3cd1: 0x19a, 0x3cd2: 0x19b, 0x3cd3: 0x19c, 0x3cd4: 0x19d, 0x3cd5: 0x19e, 0x3cd7: 0x19f, + 0x3cd8: 0x1a0, 0x3cd9: 0x1a1, 0x3cda: 0x1a2, 0x3cdb: 0x1a3, 0x3cdc: 0x1a4, 0x3cdd: 0x1a5, + // Block 0xf4, offset 0x3d00 + 0x3d00: 0xc6d, 0x3d01: 0xc6e, 0x3d02: 0xc6f, 0x3d03: 0xc70, 0x3d04: 0xc71, 0x3d05: 0xc72, 0x3d06: 0xc73, 0x3d07: 0xc74, + 0x3d08: 0xc75, 0x3d09: 0xc76, 0x3d0a: 0xc77, 0x3d0b: 0xc78, 0x3d0c: 0xc79, 0x3d0d: 0xc7a, 0x3d0e: 0xc7b, 0x3d0f: 0xc7c, + 0x3d10: 0xc7d, 0x3d11: 0xc7e, 0x3d12: 0xc7f, 0x3d13: 0xc80, 0x3d14: 0xc81, 0x3d15: 0xc82, 0x3d16: 0xc83, 0x3d17: 0xc84, + 0x3d18: 0xc85, 0x3d19: 0xc86, 0x3d1a: 0xc87, 0x3d1b: 0xc88, 0x3d1c: 0xc89, 0x3d1d: 0xc8a, 0x3d1e: 0xc8b, 0x3d1f: 0xc8c, + 0x3d20: 0xc8d, 0x3d21: 0xc8e, 0x3d22: 0xc8f, 0x3d23: 0xc90, 0x3d24: 0xc91, 0x3d25: 0xc92, 0x3d26: 0xc93, 0x3d27: 0xc94, + 0x3d28: 0xc95, 0x3d29: 0xc96, 0x3d2a: 0xc97, 0x3d2b: 0xc98, 0x3d2c: 0xc99, 0x3d2d: 0xc9a, 0x3d2e: 0xc9b, 0x3d2f: 0xc9c, + 0x3d30: 0xc9d, 0x3d31: 0xc9e, 0x3d32: 0xc9f, 0x3d33: 0xca0, 0x3d34: 0xca1, 0x3d35: 0xca2, 0x3d36: 0xca3, 0x3d37: 0xca4, + 0x3d38: 0xca5, 0x3d39: 0xca6, 0x3d3a: 0xca7, 0x3d3b: 0xca8, 0x3d3c: 0xca9, 0x3d3d: 0xcaa, 0x3d3e: 0xcab, 0x3d3f: 0xcac, + // Block 0xf5, offset 0x3d40 + 0x3d40: 0xcad, 0x3d41: 0xcae, 0x3d42: 0xcaf, 0x3d43: 0xcb0, 0x3d44: 0xcb1, 0x3d45: 0xcb2, 0x3d46: 0xcb3, 0x3d47: 0xcb4, + 0x3d48: 0xcb5, 0x3d49: 0xcb6, 0x3d4a: 0xcb7, 0x3d4b: 0xcb8, 0x3d4c: 0xcb9, 0x3d4d: 0xcba, 0x3d4e: 0xcbb, 0x3d4f: 0xcbc, + 0x3d50: 0xcbd, 0x3d51: 0xcbe, 0x3d52: 0xcbf, 0x3d53: 0xcc0, 0x3d54: 0xcc1, 0x3d55: 0xcc2, 0x3d56: 0xcc3, 0x3d57: 0xcc4, + 0x3d58: 0xcc5, 0x3d59: 0xcc6, 0x3d5a: 0xcc7, 0x3d5b: 0xcc8, 0x3d5c: 0xcc9, 0x3d5d: 0xcca, 0x3d5e: 0xccb, 0x3d5f: 0xccc, + 0x3d60: 0xccd, 0x3d61: 0xcce, 0x3d62: 0xccf, 0x3d63: 0xcd0, 0x3d64: 0xcd1, 0x3d65: 0xcd2, 0x3d66: 0xcd3, 0x3d67: 0xcd4, + 0x3d68: 0xcd5, 0x3d69: 0xcd6, 0x3d6a: 0xcd7, 0x3d6b: 0xcd8, 0x3d6c: 0xcd9, 0x3d6d: 0xcda, 0x3d6e: 0xcdb, 0x3d6f: 0xcdc, + 0x3d70: 0xcdd, 0x3d71: 0xcde, 0x3d72: 0xcdf, 0x3d73: 0xce0, 0x3d74: 0xce1, 0x3d75: 0xce2, 0x3d76: 0xce3, 0x3d77: 0xce4, + 0x3d78: 0xce5, 0x3d79: 0xce6, 0x3d7a: 0xce7, 0x3d7b: 0xce8, 0x3d7c: 0xce9, 0x3d7d: 0xcea, 0x3d7e: 0xceb, 0x3d7f: 0xcec, + // Block 0xf6, offset 0x3d80 + 0x3d80: 0xced, 0x3d81: 0xcee, 0x3d82: 0xcef, 0x3d83: 0xcf0, 0x3d84: 0xcf1, 0x3d85: 0xcf2, 0x3d86: 0xcf3, 0x3d87: 0xcf4, + 0x3d88: 0xcf5, 0x3d89: 0xcf6, 0x3d8a: 0xcf7, 0x3d8b: 0xcf8, 0x3d8c: 0xcf9, 0x3d8d: 0xcfa, 0x3d8e: 0xcfb, 0x3d8f: 0xcfc, + 0x3d90: 0xcfd, 0x3d91: 0xcfe, 0x3d92: 0xcff, 0x3d93: 0xd00, 0x3d94: 0xd01, 0x3d95: 0xd02, 0x3d96: 0xd03, 0x3d97: 0xd04, + 0x3d98: 0xd05, 0x3d99: 0xd06, 0x3d9a: 0xd07, 0x3d9b: 0xd08, 0x3d9c: 0xd09, 0x3d9d: 0xd0a, 0x3d9e: 0xd0b, 0x3d9f: 0xd0c, + 0x3da0: 0xd0d, 0x3da1: 0xd0e, 0x3da2: 0xd0f, 0x3da3: 0xd10, 0x3da4: 0xd11, 0x3da5: 0xd12, 0x3da6: 0xd13, 0x3da7: 0xd14, + 0x3da8: 0xd15, 0x3da9: 0xd16, 0x3daa: 0xd17, 0x3dab: 0xd18, 0x3dac: 0xd19, 0x3dad: 0xd1a, 0x3dae: 0xd1b, 0x3daf: 0xd1c, + 0x3db0: 0xd1d, 0x3db1: 0xd1e, 0x3db2: 0xd1f, 0x3db3: 0xd20, 0x3db4: 0xd21, 0x3db5: 0xd22, 0x3db6: 0xd23, 0x3db7: 0xd24, + 0x3db8: 0xd25, 0x3db9: 0xd26, 0x3dba: 0xd27, 0x3dbb: 0xd28, 0x3dbc: 0xd29, 0x3dbd: 0xd2a, 0x3dbe: 0xd2b, 0x3dbf: 0xd2c, + // Block 0xf7, offset 0x3dc0 + 0x3dc0: 0xd2d, 0x3dc1: 0xd2e, 0x3dc2: 0xd2f, 0x3dc3: 0xd30, 0x3dc4: 0xd31, 0x3dc5: 0xd32, 0x3dc6: 0xd33, 0x3dc7: 0xd34, + 0x3dc8: 0xd35, 0x3dc9: 0xd36, 0x3dca: 0xd37, 0x3dcb: 0xd38, 0x3dcc: 0xd39, 0x3dcd: 0xd3a, 0x3dce: 0xd3b, 0x3dcf: 0xd3c, + 0x3dd0: 0xd3d, 0x3dd1: 0xd3e, 0x3dd2: 0xd3f, 0x3dd3: 0xd40, 0x3dd4: 0xd41, 0x3dd5: 0xd42, 0x3dd6: 0xd43, 0x3dd7: 0xd44, + 0x3dd8: 0xd45, 0x3dd9: 0xd46, 0x3dda: 0xd47, 0x3ddb: 0xd48, 0x3ddc: 0xd49, 0x3ddd: 0xd4a, 0x3dde: 0xd4b, 0x3ddf: 0xd4c, + 0x3de0: 0xd4d, 0x3de1: 0xd4e, 0x3de2: 0xd4f, 0x3de3: 0xd50, 0x3de4: 0xd51, 0x3de5: 0xd52, 0x3de6: 0xd53, 0x3de7: 0xd54, + 0x3de8: 0xd55, 0x3de9: 0xd56, 0x3dea: 0xd57, 0x3deb: 0xd58, 0x3dec: 0xd59, 0x3ded: 0xd5a, 0x3dee: 0xd5b, 0x3def: 0xd5c, + 0x3df0: 0xd5d, 0x3df1: 0xd5e, 0x3df2: 0xd5f, 0x3df3: 0xd60, 0x3df4: 0xd61, 0x3df5: 0xd62, 0x3df6: 0xd63, 0x3df7: 0xd64, + 0x3df8: 0xd65, 0x3df9: 0xd66, 0x3dfa: 0xd67, 0x3dfb: 0xd68, 0x3dfc: 0xd69, 0x3dfd: 0xd6a, 0x3dfe: 0xd6b, 0x3dff: 0xd6c, + // Block 0xf8, offset 0x3e00 + 0x3e00: 0xd6d, 0x3e01: 0xd6e, 0x3e02: 0xd6f, 0x3e03: 0xd70, 0x3e04: 0xd71, 0x3e05: 0xd72, 0x3e06: 0xd73, 0x3e07: 0xd74, + 0x3e08: 0xd75, 0x3e09: 0xd76, 0x3e0a: 0xd77, 0x3e0b: 0xd78, 0x3e0c: 0xd79, 0x3e0d: 0xd7a, 0x3e0e: 0xd7b, 0x3e0f: 0xd7c, + 0x3e10: 0xd7d, 0x3e11: 0xd7e, 0x3e12: 0xd7f, 0x3e13: 0xd80, 0x3e14: 0xd81, 0x3e15: 0xd82, 0x3e16: 0xd83, 0x3e17: 0xd84, + 0x3e18: 0xd85, 0x3e19: 0xd86, 0x3e1a: 0xd87, 0x3e1b: 0xd88, 0x3e1c: 0xd89, 0x3e1d: 0xd8a, 0x3e1e: 0xd8b, 0x3e1f: 0xd8c, + 0x3e20: 0xd8d, 0x3e21: 0xd8e, 0x3e22: 0xd8f, 0x3e23: 0xd90, 0x3e24: 0xd91, 0x3e25: 0xd92, 0x3e26: 0xd93, 0x3e27: 0xd94, + 0x3e28: 0xd95, 0x3e29: 0xd96, 0x3e2a: 0xd97, 0x3e2b: 0xd98, 0x3e2c: 0xd99, 0x3e2d: 0xd9a, 0x3e2e: 0xd9b, 0x3e2f: 0xd9c, + 0x3e30: 0xd9d, 0x3e31: 0xd9e, 0x3e32: 0xd9f, 0x3e33: 0xda0, 0x3e34: 0xda1, 0x3e35: 0xda2, 0x3e36: 0xda3, 0x3e37: 0xda4, + 0x3e38: 0xda5, 0x3e39: 0xda6, 0x3e3a: 0xda7, 0x3e3b: 0xda8, 0x3e3c: 0xda9, 0x3e3d: 0xdaa, 0x3e3e: 0xdab, 0x3e3f: 0xdac, + // Block 0xf9, offset 0x3e40 + 0x3e40: 0xdad, 0x3e41: 0xdae, 0x3e42: 0xdaf, 0x3e43: 0xdb0, 0x3e44: 0xdb1, 0x3e45: 0xdb2, 0x3e46: 0xdb3, 0x3e47: 0xdb4, + 0x3e48: 0xdb5, 0x3e49: 0xdb6, 0x3e4a: 0xdb7, 0x3e4b: 0xdb8, 0x3e4c: 0xdb9, 0x3e4d: 0xdba, 0x3e4e: 0xdbb, 0x3e4f: 0xdbc, + 0x3e50: 0xdbd, 0x3e51: 0xdbe, 0x3e52: 0xdbf, 0x3e53: 0xdc0, 0x3e54: 0xdc1, 0x3e55: 0xdc2, 0x3e56: 0xdc3, 0x3e57: 0xdc4, + 0x3e58: 0xdc5, 0x3e59: 0xdc6, 0x3e5a: 0xdc7, 0x3e5b: 0xdc8, 0x3e5c: 0xdc9, 0x3e5d: 0xdca, 0x3e5e: 0xdcb, 0x3e5f: 0xdcc, + 0x3e60: 0xdcd, 0x3e61: 0xdce, 0x3e62: 0xdcf, 0x3e63: 0xdd0, 0x3e64: 0xdd1, 0x3e65: 0xdd2, 0x3e66: 0xdd3, 0x3e67: 0xdd4, + 0x3e68: 0xdd5, 0x3e69: 0xdd6, 0x3e6a: 0xdd7, 0x3e6b: 0xdd8, 0x3e6c: 0xdd9, 0x3e6d: 0xdda, 0x3e6e: 0xddb, 0x3e6f: 0xddc, + 0x3e70: 0xddd, 0x3e71: 0xdde, 0x3e72: 0xddf, 0x3e73: 0xde0, 0x3e74: 0xde1, 0x3e75: 0xde2, 0x3e76: 0xde3, 0x3e77: 0xde4, + 0x3e78: 0xde5, 0x3e79: 0xde6, 0x3e7a: 0xde7, 0x3e7b: 0xde8, 0x3e7c: 0xde9, 0x3e7d: 0xdea, 0x3e7e: 0xdeb, 0x3e7f: 0xdec, + // Block 0xfa, offset 0x3e80 + 0x3e80: 0xded, 0x3e81: 0xdee, 0x3e82: 0xdef, 0x3e83: 0xdf0, 0x3e84: 0xdf1, 0x3e85: 0xdf2, 0x3e86: 0xdf3, 0x3e87: 0xdf4, + 0x3e88: 0xdf5, 0x3e89: 0xdf6, 0x3e8a: 0xdf7, 0x3e8b: 0xdf8, 0x3e8c: 0xdf9, 0x3e8d: 0xdfa, 0x3e8e: 0xdfb, 0x3e8f: 0xdfc, + 0x3e90: 0xdfd, 0x3e91: 0xdfe, 0x3e92: 0xdff, 0x3e93: 0xe00, 0x3e94: 0xe01, 0x3e95: 0xe02, 0x3e96: 0xe03, 0x3e97: 0xe04, + 0x3e98: 0xe05, 0x3e99: 0xe06, 0x3e9a: 0xe07, 0x3e9b: 0xe08, 0x3e9c: 0xe09, 0x3e9d: 0xe0a, 0x3e9e: 0xe0b, 0x3e9f: 0xe0c, + 0x3ea0: 0xe0d, 0x3ea1: 0xe0e, 0x3ea2: 0xe0f, 0x3ea3: 0xe10, 0x3ea4: 0xe11, 0x3ea5: 0xe12, 0x3ea6: 0xe13, 0x3ea7: 0xe14, + 0x3ea8: 0xe15, 0x3ea9: 0xe16, 0x3eaa: 0xe17, 0x3eab: 0xe18, 0x3eac: 0xe19, 0x3ead: 0xe1a, 0x3eae: 0xe1b, 0x3eaf: 0xe1c, + 0x3eb0: 0xe1d, 0x3eb1: 0xe1e, 0x3eb2: 0xe1f, 0x3eb3: 0xe20, 0x3eb4: 0xe21, 0x3eb5: 0xe22, 0x3eb6: 0xe23, 0x3eb7: 0xe24, + 0x3eb8: 0xe25, 0x3eb9: 0xe26, 0x3eba: 0xe27, 0x3ebb: 0xe28, 0x3ebc: 0xe29, 0x3ebd: 0xe2a, 0x3ebe: 0xe2b, 0x3ebf: 0xe2c, + // Block 0xfb, offset 0x3ec0 + 0x3ec0: 0xe2d, 0x3ec1: 0xe2e, 0x3ec2: 0xe2f, 0x3ec3: 0xe30, 0x3ec4: 0xe31, 0x3ec5: 0xe32, 0x3ec6: 0xe33, 0x3ec7: 0xe34, + 0x3ec8: 0xe35, 0x3ec9: 0xe36, 0x3eca: 0xe37, 0x3ecb: 0xe38, 0x3ecc: 0xe39, 0x3ecd: 0xe3a, 0x3ece: 0xe3b, 0x3ecf: 0xe3c, + 0x3ed0: 0xe3d, 0x3ed1: 0xe3e, 0x3ed2: 0xe3f, 0x3ed3: 0xe40, 0x3ed4: 0xe41, 0x3ed5: 0xe42, 0x3ed6: 0xe43, 0x3ed7: 0xe44, + 0x3ed8: 0xe45, 0x3ed9: 0xe46, 0x3eda: 0xe47, 0x3edb: 0xe48, 0x3edc: 0xe49, 0x3edd: 0xe4a, 0x3ede: 0xe4b, 0x3edf: 0xe4c, + 0x3ee0: 0xe4d, 0x3ee1: 0xe4e, 0x3ee2: 0xe4f, 0x3ee3: 0xe50, 0x3ee4: 0xe51, 0x3ee5: 0xe52, 0x3ee6: 0xe53, 0x3ee7: 0xe54, + 0x3ee8: 0xe55, 0x3ee9: 0xe56, 0x3eea: 0xe57, 0x3eeb: 0xe58, 0x3eec: 0xe59, 0x3eed: 0xe5a, 0x3eee: 0xe5b, 0x3eef: 0xe5c, + 0x3ef0: 0xe5d, 0x3ef1: 0xe5e, 0x3ef2: 0xe5f, 0x3ef3: 0xe60, 0x3ef4: 0xe61, 0x3ef5: 0xe62, 0x3ef6: 0xe63, 0x3ef7: 0xe64, + 0x3ef8: 0xe65, 0x3ef9: 0xe66, 0x3efa: 0xe67, 0x3efb: 0xe68, 0x3efc: 0xe69, 0x3efd: 0xe6a, 0x3efe: 0xe6b, 0x3eff: 0xe6c, + // Block 0xfc, offset 0x3f00 + 0x3f00: 0xe6d, 0x3f01: 0xe6e, 0x3f02: 0xe6f, 0x3f03: 0xe70, 0x3f04: 0xe71, 0x3f05: 0xe72, 0x3f06: 0xe73, 0x3f07: 0xe74, + 0x3f08: 0xe75, 0x3f09: 0xe76, 0x3f0a: 0xe77, 0x3f0b: 0xe78, 0x3f0c: 0xe79, 0x3f0d: 0xe7a, 0x3f0e: 0xe7b, 0x3f0f: 0xe7c, + 0x3f10: 0xe7d, 0x3f11: 0xe7e, 0x3f12: 0xe7f, 0x3f13: 0xe80, 0x3f14: 0xe81, 0x3f15: 0xe82, 0x3f16: 0xe83, 0x3f17: 0xe84, + 0x3f18: 0xe85, 0x3f19: 0xe86, 0x3f1a: 0xe87, 0x3f1b: 0xe88, 0x3f1c: 0xe89, 0x3f1d: 0xe8a, 0x3f1e: 0xe8b, 0x3f1f: 0xe8c, + 0x3f20: 0xe8d, 0x3f21: 0xe8e, 0x3f22: 0xe8f, 0x3f23: 0xe90, 0x3f24: 0xe91, 0x3f25: 0xe92, 0x3f26: 0xe93, 0x3f27: 0xe94, + 0x3f28: 0xe95, 0x3f29: 0xe96, 0x3f2a: 0xe97, 0x3f2b: 0xe98, 0x3f2c: 0xe99, 0x3f2d: 0xe9a, 0x3f2e: 0xe9b, 0x3f2f: 0xe9c, + 0x3f30: 0xe9d, 0x3f31: 0xe9e, 0x3f32: 0xe9f, 0x3f33: 0xea0, 0x3f34: 0xea1, 0x3f35: 0xea2, 0x3f36: 0xea3, 0x3f37: 0xea4, + 0x3f38: 0xea5, 0x3f39: 0xea6, 0x3f3a: 0xea7, 0x3f3b: 0xea8, 0x3f3c: 0xea9, 0x3f3d: 0xeaa, 0x3f3e: 0xeab, 0x3f3f: 0xeac, + // Block 0xfd, offset 0x3f40 + 0x3f40: 0xead, 0x3f41: 0xeae, 0x3f42: 0xeaf, 0x3f43: 0xeb0, 0x3f44: 0xeb1, 0x3f45: 0xeb2, 0x3f46: 0xeb3, 0x3f47: 0xeb4, + 0x3f48: 0xeb5, 0x3f49: 0xeb6, 0x3f4a: 0xeb7, 0x3f4b: 0xeb8, 0x3f4c: 0xeb9, 0x3f4d: 0xeba, 0x3f4e: 0xebb, 0x3f4f: 0xebc, + 0x3f50: 0xebd, 0x3f51: 0xebe, 0x3f52: 0xebf, 0x3f53: 0xec0, 0x3f54: 0xec1, 0x3f55: 0xec2, 0x3f56: 0xec3, 0x3f57: 0xec4, + 0x3f58: 0xec5, 0x3f59: 0xec6, 0x3f5a: 0xec7, 0x3f5b: 0xec8, 0x3f5c: 0xec9, 0x3f5d: 0xeca, 0x3f5e: 0xecb, 0x3f5f: 0xecc, + 0x3f60: 0xecd, 0x3f61: 0xece, 0x3f62: 0xecf, 0x3f63: 0xed0, 0x3f64: 0xed1, 0x3f65: 0xed2, 0x3f66: 0xed3, 0x3f67: 0xed4, + 0x3f68: 0xed5, 0x3f69: 0xed6, 0x3f6a: 0xed7, 0x3f6b: 0xed8, 0x3f6c: 0xed9, 0x3f6d: 0xeda, 0x3f6e: 0xedb, 0x3f6f: 0xedc, + 0x3f70: 0xedd, 0x3f71: 0xede, 0x3f72: 0xedf, 0x3f73: 0xee0, 0x3f74: 0xee1, 0x3f75: 0xee2, 0x3f76: 0xee3, 0x3f77: 0xee4, + 0x3f78: 0xee5, 0x3f79: 0xee6, 0x3f7a: 0xee7, 0x3f7b: 0xee8, 0x3f7c: 0xee9, 0x3f7d: 0xeea, 0x3f7e: 0xeeb, 0x3f7f: 0xeec, + // Block 0xfe, offset 0x3f80 + 0x3f80: 0xeed, 0x3f81: 0xeee, 0x3f82: 0xeef, 0x3f83: 0xef0, 0x3f84: 0xef1, 0x3f85: 0xef2, 0x3f86: 0xef3, 0x3f87: 0xef4, + 0x3f88: 0xef5, 0x3f89: 0xef6, 0x3f8a: 0xef7, 0x3f8b: 0xef8, 0x3f8c: 0xef9, 0x3f8d: 0xefa, 0x3f8e: 0xefb, 0x3f8f: 0xefc, + 0x3f90: 0xefd, 0x3f91: 0xefe, 0x3f92: 0xeff, 0x3f93: 0xf00, 0x3f94: 0xf01, 0x3f95: 0xf02, 0x3f96: 0xf03, 0x3f97: 0xf04, + 0x3f98: 0xf05, 0x3f99: 0xf06, 0x3f9a: 0xf07, 0x3f9b: 0xf08, 0x3f9c: 0xf09, 0x3f9d: 0xf0a, 0x3f9e: 0xf0b, 0x3f9f: 0xf0c, + 0x3fa0: 0xf0d, 0x3fa1: 0xf0e, 0x3fa2: 0xf0f, 0x3fa3: 0xf10, 0x3fa4: 0xf11, 0x3fa5: 0xf12, 0x3fa6: 0xf13, 0x3fa7: 0xf14, + 0x3fa8: 0xf15, 0x3fa9: 0xf16, 0x3faa: 0xf17, 0x3fab: 0xf18, 0x3fac: 0xf19, 0x3fad: 0xf1a, 0x3fae: 0xf1b, 0x3faf: 0xf1c, + 0x3fb0: 0xf1d, 0x3fb1: 0xf1e, 0x3fb2: 0xf1f, 0x3fb3: 0xf20, 0x3fb4: 0xf21, 0x3fb5: 0xf22, 0x3fb6: 0xf23, 0x3fb7: 0xf24, + 0x3fb8: 0xf25, 0x3fb9: 0xf26, 0x3fba: 0xf27, 0x3fbb: 0xf28, 0x3fbc: 0xf29, 0x3fbd: 0xf2a, 0x3fbe: 0xf2b, 0x3fbf: 0xf2c, + // Block 0xff, offset 0x3fc0 + 0x3fc0: 0xf2d, 0x3fc1: 0xf2e, 0x3fc2: 0xf2f, 0x3fc3: 0xf30, 0x3fc4: 0xf31, 0x3fc5: 0xf32, 0x3fc6: 0xf33, 0x3fc7: 0xf34, + 0x3fc8: 0xf35, 0x3fc9: 0xf36, 0x3fca: 0xf37, 0x3fcb: 0xf38, 0x3fcc: 0xf39, 0x3fcd: 0xf3a, 0x3fce: 0xf3b, 0x3fcf: 0xf3c, + 0x3fd0: 0xf3d, 0x3fd1: 0xf3e, 0x3fd2: 0xf3f, 0x3fd3: 0xf40, 0x3fd4: 0xf41, 0x3fd5: 0xf42, 0x3fd6: 0xf43, 0x3fd7: 0xf44, + 0x3fd8: 0xf45, 0x3fd9: 0xf46, 0x3fda: 0xf47, 0x3fdb: 0xf48, 0x3fdc: 0xf49, 0x3fdd: 0xf4a, 0x3fde: 0xf4b, 0x3fdf: 0xf4c, + 0x3fe0: 0xf4d, + // Block 0x100, offset 0x4000 + 0x4020: 0xf4e, 0x4021: 0xf4f, 0x4022: 0xf50, 0x4023: 0xf51, 0x4024: 0xf52, 0x4025: 0xf53, 0x4026: 0xf54, 0x4027: 0xf55, + 0x4028: 0xf56, + // Block 0x101, offset 0x4040 + 0x4050: 0x09, 0x4051: 0x0a, 0x4052: 0x0b, 0x4053: 0x0c, 0x4056: 0x0d, + 0x405b: 0x0e, 0x405d: 0x0f, 0x405e: 0x10, 0x405f: 0xf1, + 0x4060: 0xf2, 0x4061: 0xf3, 0x4062: 0xf4, 0x4063: 0xf5, 0x4064: 0xf6, 0x4065: 0xf7, 0x4066: 0xf8, 0x4067: 0xf9, + 0x4068: 0xfa, 0x4069: 0xfb, 0x406a: 0xfc, 0x406b: 0xfd, 0x406f: 0xfe, + // Block 0x102, offset 0x4080 + 0x4082: 0x01, 0x4083: 0x618, 0x4084: 0x619, 0x4085: 0x61a, 0x4086: 0x05, 0x4087: 0x61b, + 0x4088: 0x61c, 0x4089: 0x08, 0x408a: 0x09, 0x408b: 0x0a, 0x408c: 0x0b, 0x408d: 0x0c, 0x408e: 0x0d, 0x408f: 0x0e, + 0x4090: 0x0f, 0x4091: 0x10, 0x4092: 0x11, 0x4093: 0x12, 0x4094: 0x13, 0x4095: 0x14, 0x4096: 0x15, 0x4097: 0x16, + 0x4098: 0x17, 0x4099: 0x18, 0x409a: 0x19, 0x409b: 0x1a, 0x409c: 0x1b, 0x409d: 0x1c, 0x409e: 0x1d, 0x409f: 0x1e, + 0x40a0: 0x01, 0x40a1: 0xce, 0x40a2: 0xe8, 0x40a3: 0xe9, 0x40a4: 0xea, 0x40a5: 0xeb, 0x40a6: 0xec, 0x40a7: 0xed, + 0x40a8: 0xee, 0x40a9: 0xef, 0x40aa: 0x06, 0x40ad: 0x07, 0x40af: 0xf0, + 0x40b0: 0xff, 0x40b3: 0x15, +} + +// mainCTEntries: 2529 entries, 10116 bytes +var mainCTEntries = [2529]struct{ L, H, N, I uint8 }{ + {0xCE, 0x1, 1, 255}, + {0xC2, 0x0, 1, 255}, + {0xB7, 0xB7, 0, 1}, + {0x87, 0x87, 0, 2}, + {0xCC, 0x0, 2, 255}, + {0x88, 0x88, 0, 2}, + {0x86, 0x86, 0, 1}, + {0xCC, 0x0, 1, 255}, + {0x88, 0x88, 0, 1}, + {0xCD, 0x1, 1, 255}, + {0xCC, 0x0, 1, 255}, + {0x81, 0x81, 0, 1}, + {0x81, 0x81, 0, 2}, + {0xCC, 0x0, 1, 255}, + {0x86, 0x86, 0, 1}, + {0xCC, 0x0, 3, 255}, + {0x8B, 0x8B, 0, 3}, + {0x88, 0x88, 0, 2}, + {0x86, 0x86, 0, 1}, + {0xCC, 0x0, 1, 255}, + {0x8F, 0x8F, 0, 1}, + {0xD9, 0x0, 1, 255}, + {0x93, 0x95, 0, 1}, + {0xD9, 0x0, 1, 255}, + {0x94, 0x94, 0, 1}, + {0xE0, 0x0, 2, 255}, + {0xA7, 0x1, 1, 255}, + {0xA6, 0x0, 1, 255}, + {0xBE, 0xBE, 0, 1}, + {0x97, 0x97, 0, 2}, + {0xE0, 0x0, 2, 255}, + {0xAD, 0x1, 1, 255}, + {0xAC, 0x0, 1, 255}, + {0xBE, 0xBE, 0, 1}, + {0x96, 0x97, 0, 2}, + {0xE0, 0x0, 1, 255}, + {0xAF, 0x0, 1, 255}, + {0x97, 0x97, 0, 1}, + {0xE0, 0x0, 2, 255}, + {0xAF, 0x1, 1, 255}, + {0xAE, 0x0, 1, 255}, + {0xBE, 0xBE, 0, 1}, + {0x97, 0x97, 0, 2}, + {0xE0, 0x0, 1, 255}, + {0xAE, 0x0, 1, 255}, + {0xBE, 0xBE, 0, 1}, + {0xE0, 0x0, 1, 255}, + {0xB1, 0x0, 1, 255}, + {0x96, 0x96, 0, 1}, + {0xE0, 0x0, 1, 255}, + {0xB3, 0x0, 1, 255}, + {0x95, 0x95, 0, 1}, + {0xE0, 0x0, 1, 255}, + {0xB3, 0x0, 2, 255}, + {0x95, 0x96, 0, 3}, + {0x82, 0x0, 1, 2}, + {0xE0, 0x0, 1, 255}, + {0xB3, 0x0, 1, 255}, + {0x95, 0x95, 0, 1}, + {0xE0, 0x0, 2, 255}, + {0xB5, 0x1, 1, 255}, + {0xB4, 0x0, 1, 255}, + {0xBE, 0xBE, 0, 1}, + {0x97, 0x97, 0, 2}, + {0xE0, 0x0, 1, 255}, + {0xB4, 0x0, 1, 255}, + {0xBE, 0xBE, 0, 1}, + {0xE0, 0x0, 1, 255}, + {0xB7, 0x0, 3, 255}, + {0x9F, 0x9F, 0, 4}, + {0x8F, 0x0, 1, 3}, + {0x8A, 0x8A, 0, 2}, + {0xE0, 0x0, 1, 255}, + {0xB7, 0x0, 1, 255}, + {0x8A, 0x8A, 0, 1}, + {0xE0, 0x0, 1, 255}, + {0xB7, 0x0, 1, 255}, + {0x8A, 0x8A, 0, 1}, + {0xE0, 0x0, 1, 255}, + {0xB8, 0x0, 1, 255}, + {0x81, 0xAE, 0, 1}, + {0xE0, 0x0, 1, 255}, + {0xB8, 0x0, 1, 255}, + {0xB2, 0xB2, 0, 1}, + {0xE0, 0x0, 2, 255}, + {0xBB, 0xC, 1, 255}, + {0xBA, 0x0, 12, 255}, + {0xAD, 0xAE, 0, 26}, + {0xAA, 0xAB, 0, 24}, + {0xA7, 0xA7, 0, 23}, + {0xA5, 0xA5, 0, 22}, + {0xA1, 0xA3, 0, 19}, + {0x99, 0x9F, 0, 12}, + {0x94, 0x97, 0, 8}, + {0x8D, 0x8D, 0, 7}, + {0x8A, 0x8A, 0, 6}, + {0x87, 0x88, 0, 4}, + {0x84, 0x84, 0, 3}, + {0x81, 0x82, 0, 1}, + {0x9C, 0x9F, 0, 28}, + {0xE0, 0x0, 1, 255}, + {0xBA, 0x0, 1, 255}, + {0xB2, 0xB2, 0, 1}, + {0xEA, 0x0, 1, 255}, + {0xAA, 0x0, 1, 255}, + {0x80, 0xAF, 0, 1}, + {0xE0, 0x0, 2, 255}, + {0xBE, 0x7, 1, 255}, + {0xBD, 0x0, 1, 255}, + {0xB1, 0x0, 1, 255}, + {0xE0, 0x0, 2, 255}, + {0xBE, 0x2, 1, 255}, + {0xBD, 0x0, 2, 255}, + {0xB4, 0xB4, 0, 2}, + {0xB2, 0xB2, 0, 1}, + {0x80, 0x80, 0, 3}, + {0x80, 0x81, 0, 4}, + {0xE0, 0x0, 2, 255}, + {0xBE, 0x2, 1, 255}, + {0xBD, 0x0, 2, 255}, + {0xB4, 0xB4, 0, 2}, + {0xB2, 0xB2, 0, 1}, + {0x80, 0x80, 0, 3}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xAE, 0xAE, 0, 1}, + {0xF0, 0x0, 1, 255}, + {0x91, 0x0, 1, 255}, + {0x84, 0x0, 1, 255}, + {0xA7, 0xA7, 0, 1}, + {0xE1, 0x0, 1, 255}, + {0xAC, 0x0, 1, 255}, + {0xB5, 0xB5, 0, 1}, + {0xE0, 0x0, 1, 255}, + {0xA7, 0x0, 1, 255}, + {0x8D, 0x0, 1, 255}, + {0xE2, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0x8D, 0x8D, 0, 1}, + {0xE0, 0x0, 1, 255}, + {0xA7, 0x0, 1, 255}, + {0x8D, 0x0, 1, 255}, + {0xE0, 0x0, 1, 255}, + {0xA6, 0x0, 1, 255}, + {0xB7, 0xB7, 0, 1}, + {0xCC, 0x0, 1, 255}, + {0xA7, 0xA7, 0, 1}, + {0xCC, 0x0, 1, 255}, + {0x87, 0x87, 0, 1}, + {0xCC, 0x0, 1, 255}, + {0x68, 0x68, 0, 3}, + {0x48, 0x48, 0, 2}, + {0x8C, 0x8C, 0, 1}, + {0xCC, 0x0, 1, 255}, + {0x8C, 0x8C, 0, 1}, + {0x68, 0x68, 0, 1}, + {0x68, 0x68, 0, 2}, + {0x48, 0x48, 0, 1}, + {0x64, 0x64, 0, 1}, + {0x64, 0x64, 0, 2}, + {0x44, 0x44, 0, 1}, + {0x66, 0x66, 0, 1}, + {0x66, 0x66, 0, 2}, + {0x46, 0x46, 0, 1}, + {0x67, 0x67, 0, 1}, + {0x67, 0x67, 0, 2}, + {0x47, 0x47, 0, 1}, + {0xCE, 0x1, 1, 255}, + {0xC2, 0x0, 1, 255}, + {0x6C, 0x6C, 0, 3}, + {0xB7, 0xB7, 0, 1}, + {0x87, 0x87, 0, 2}, + {0xCE, 0x1, 1, 255}, + {0xC2, 0x0, 1, 255}, + {0x6C, 0x6C, 0, 4}, + {0x4C, 0x4C, 0, 3}, + {0xB7, 0xB7, 0, 1}, + {0x87, 0x87, 0, 2}, + {0xCC, 0x0, 2, 255}, + {0x8B, 0x8B, 0, 2}, + {0x88, 0x88, 0, 1}, + {0xCC, 0x0, 2, 255}, + {0x61, 0x61, 0, 3}, + {0x8A, 0x8A, 0, 2}, + {0x88, 0x88, 0, 1}, + {0xCC, 0x0, 2, 255}, + {0x61, 0x61, 0, 4}, + {0x41, 0x41, 0, 3}, + {0x8A, 0x8A, 0, 2}, + {0x88, 0x88, 0, 1}, + {0xCC, 0x0, 1, 255}, + {0xA8, 0xA8, 0, 1}, + {0xE0, 0x0, 1, 255}, + {0xBE, 0x0, 1, 255}, + {0x90, 0x91, 0, 1}, + {0xE0, 0x0, 1, 255}, + {0xBD, 0x0, 6, 255}, + {0x98, 0x42, 1, 255}, + {0x96, 0x31, 1, 255}, + {0x94, 0x1B, 1, 255}, + {0x84, 0x11, 1, 255}, + {0x82, 0x0, 1, 255}, + {0x80, 0x80, 0, 73}, + {0xE0, 0x0, 2, 255}, + {0xBE, 0xD, 1, 255}, + {0xBD, 0x0, 13, 255}, + {0xBC, 0xBC, 0, 20}, + {0xBA, 0xBA, 0, 19}, + {0xB4, 0xB4, 0, 18}, + {0xA6, 0xA6, 0, 17}, + {0xA2, 0xA3, 0, 15}, + {0xA0, 0xA0, 0, 14}, + {0x9D, 0x9D, 0, 13}, + {0x96, 0x96, 0, 12}, + {0x91, 0x91, 0, 11}, + {0x8C, 0x8C, 0, 10}, + {0x8A, 0x8A, 0, 9}, + {0x84, 0x84, 0, 8}, + {0x82, 0x82, 0, 7}, + {0xB1, 0xB2, 0, 21}, + {0xE0, 0x0, 1, 255}, + {0xBD, 0x0, 8, 255}, + {0xBC, 0xBC, 0, 30}, + {0xB4, 0xB4, 0, 29}, + {0xA2, 0xA2, 0, 28}, + {0x93, 0x93, 0, 27}, + {0x8C, 0x8C, 0, 26}, + {0x8A, 0x8A, 0, 25}, + {0x84, 0x84, 0, 24}, + {0x82, 0x82, 0, 23}, + {0xE0, 0x0, 2, 255}, + {0xBE, 0x12, 1, 255}, + {0xBD, 0x0, 11, 255}, + {0xBC, 0x0, 1, 255}, + {0xBA, 0xBA, 0, 41}, + {0xB4, 0xB4, 0, 40}, + {0xA6, 0xA6, 0, 39}, + {0xA2, 0xA3, 0, 37}, + {0xA0, 0xA0, 0, 36}, + {0x91, 0x91, 0, 35}, + {0x8C, 0x8C, 0, 34}, + {0x8A, 0x8A, 0, 33}, + {0x84, 0x84, 0, 32}, + {0x82, 0x82, 0, 31}, + {0xE0, 0x0, 1, 255}, + {0xBD, 0x0, 5, 255}, + {0xA2, 0xA2, 0, 5}, + {0x93, 0x93, 0, 4}, + {0x91, 0x91, 0, 3}, + {0x84, 0x84, 0, 2}, + {0x82, 0x82, 0, 1}, + {0xB1, 0xB2, 0, 42}, + {0xE0, 0x0, 2, 255}, + {0xBE, 0xD, 1, 255}, + {0xBD, 0x0, 13, 255}, + {0xBC, 0xBC, 0, 57}, + {0xBA, 0xBA, 0, 56}, + {0xB4, 0xB4, 0, 55}, + {0xA6, 0xA6, 0, 54}, + {0xA2, 0xA3, 0, 52}, + {0xA0, 0xA0, 0, 51}, + {0x96, 0x96, 0, 50}, + {0x93, 0x93, 0, 49}, + {0x91, 0x91, 0, 48}, + {0x8C, 0x8C, 0, 47}, + {0x8A, 0x8A, 0, 46}, + {0x84, 0x84, 0, 45}, + {0x82, 0x82, 0, 44}, + {0xB1, 0xB2, 0, 58}, + {0xE0, 0x0, 2, 255}, + {0xBE, 0x10, 1, 255}, + {0xBD, 0x0, 13, 255}, + {0xBC, 0x0, 1, 255}, + {0xBA, 0xBA, 0, 71}, + {0xB4, 0xB4, 0, 70}, + {0xB2, 0xB2, 0, 69}, + {0xA6, 0xA6, 0, 68}, + {0xA2, 0xA2, 0, 67}, + {0xA0, 0xA0, 0, 66}, + {0x9D, 0x9D, 0, 65}, + {0x93, 0x93, 0, 64}, + {0x8C, 0x8C, 0, 63}, + {0x8A, 0x8A, 0, 62}, + {0x84, 0x84, 0, 61}, + {0x82, 0x82, 0, 60}, + {0xE0, 0x0, 1, 255}, + {0xBD, 0x0, 1, 255}, + {0x91, 0x91, 0, 6}, + {0xB1, 0xB1, 0, 72}, + {0xE0, 0x0, 1, 255}, + {0xBD, 0x0, 11, 255}, + {0xA6, 0x2E, 1, 255}, + {0xA4, 0xA4, 0, 72}, + {0xA3, 0x29, 1, 255}, + {0xA2, 0x1C, 1, 255}, + {0x9E, 0x9F, 0, 70}, + {0x99, 0x99, 0, 69}, + {0x91, 0xF, 1, 255}, + {0x8F, 0x8F, 0, 68}, + {0x85, 0x85, 0, 67}, + {0x82, 0x0, 1, 255}, + {0x80, 0x80, 0, 66}, + {0xE0, 0x0, 2, 255}, + {0xBE, 0xB, 1, 255}, + {0xBD, 0x0, 11, 255}, + {0xBE, 0xBE, 0, 11}, + {0xBC, 0xBC, 0, 10}, + {0xBA, 0xBA, 0, 9}, + {0xA2, 0xA2, 0, 8}, + {0xA0, 0xA0, 0, 7}, + {0x9D, 0x9D, 0, 6}, + {0x98, 0x98, 0, 5}, + {0x91, 0x91, 0, 4}, + {0x8C, 0x8C, 0, 3}, + {0x8A, 0x8A, 0, 2}, + {0x82, 0x82, 0, 1}, + {0xB1, 0xB3, 0, 12}, + {0xE0, 0x0, 1, 255}, + {0xBD, 0x0, 11, 255}, + {0xBE, 0xBE, 0, 26}, + {0xBC, 0xBC, 0, 25}, + {0xBA, 0xBA, 0, 24}, + {0xB4, 0xB4, 0, 23}, + {0xA6, 0xA6, 0, 22}, + {0xA2, 0xA3, 0, 20}, + {0xA0, 0xA0, 0, 19}, + {0x98, 0x98, 0, 18}, + {0x8C, 0x8C, 0, 17}, + {0x8A, 0x8A, 0, 16}, + {0x82, 0x82, 0, 15}, + {0xE0, 0x0, 1, 255}, + {0xBE, 0x0, 11, 255}, + {0xB3, 0xB3, 0, 37}, + {0xAB, 0xAB, 0, 36}, + {0xA9, 0xA9, 0, 35}, + {0xA3, 0xA3, 0, 34}, + {0xA1, 0xA1, 0, 33}, + {0x9F, 0x9F, 0, 32}, + {0x99, 0x99, 0, 31}, + {0x97, 0x97, 0, 30}, + {0x94, 0x94, 0, 29}, + {0x92, 0x92, 0, 28}, + {0x90, 0x90, 0, 27}, + {0xE0, 0x0, 1, 255}, + {0xBE, 0x0, 3, 255}, + {0xA1, 0xA1, 0, 40}, + {0x9F, 0x9F, 0, 39}, + {0x95, 0x95, 0, 38}, + {0xE0, 0x0, 2, 255}, + {0xBE, 0xD, 10, 255}, + {0xBD, 0x0, 13, 255}, + {0xBE, 0xBE, 0, 54}, + {0xBC, 0xBC, 0, 53}, + {0xBA, 0xBA, 0, 52}, + {0xB4, 0xB4, 0, 51}, + {0xB2, 0xB2, 0, 50}, + {0xA2, 0xA3, 0, 48}, + {0x98, 0x98, 0, 47}, + {0x96, 0x96, 0, 46}, + {0x91, 0x91, 0, 45}, + {0x8C, 0x8C, 0, 44}, + {0x8A, 0x8A, 0, 43}, + {0x84, 0x84, 0, 42}, + {0x82, 0x82, 0, 41}, + {0xB2, 0xB3, 0, 64}, + {0xAD, 0xAD, 0, 63}, + {0xA9, 0xA9, 0, 62}, + {0xA3, 0xA3, 0, 61}, + {0xA1, 0xA1, 0, 60}, + {0x9F, 0x9F, 0, 59}, + {0x99, 0x99, 0, 58}, + {0x94, 0x94, 0, 57}, + {0x92, 0x92, 0, 56}, + {0x90, 0x90, 0, 55}, + {0xE0, 0x0, 1, 255}, + {0xBE, 0x0, 11, 255}, + {0xAB, 0xAB, 0, 12}, + {0xA8, 0xA9, 0, 10}, + {0xA6, 0xA6, 0, 9}, + {0xA3, 0xA3, 0, 8}, + {0xA1, 0xA1, 0, 7}, + {0x9F, 0x9F, 0, 6}, + {0x99, 0x99, 0, 5}, + {0x97, 0x97, 0, 4}, + {0x94, 0x94, 0, 3}, + {0x92, 0x92, 0, 2}, + {0x90, 0x90, 0, 1}, + {0xE0, 0x0, 1, 255}, + {0xBE, 0x0, 9, 255}, + {0xB7, 0xB7, 0, 10}, + {0xA6, 0xA6, 0, 9}, + {0xA4, 0xA4, 0, 8}, + {0xA1, 0xA1, 0, 7}, + {0x9F, 0x9F, 0, 6}, + {0x97, 0x97, 0, 5}, + {0x94, 0x95, 0, 3}, + {0x92, 0x92, 0, 2}, + {0x90, 0x90, 0, 1}, + {0xE0, 0x0, 1, 255}, + {0xBD, 0x0, 9, 255}, + {0x9A, 0x9B, 0, 45}, + {0x93, 0x1D, 1, 255}, + {0x91, 0x11, 1, 255}, + {0x90, 0x90, 0, 44}, + {0x89, 0x89, 0, 43}, + {0x86, 0x87, 0, 41}, + {0x84, 0x8, 1, 255}, + {0x82, 0x0, 1, 255}, + {0x81, 0x81, 0, 40}, + {0xE0, 0x0, 2, 255}, + {0xBE, 0x4, 1, 255}, + {0xBD, 0x0, 4, 255}, + {0xBC, 0xBC, 0, 5}, + {0xBA, 0xBA, 0, 4}, + {0xB4, 0xB4, 0, 3}, + {0xA2, 0xA3, 0, 1}, + {0xB1, 0xB2, 0, 6}, + {0xE0, 0x0, 1, 255}, + {0xBD, 0x0, 7, 255}, + {0xBC, 0xBC, 0, 15}, + {0xA2, 0xA3, 0, 13}, + {0xA0, 0xA0, 0, 12}, + {0x93, 0x93, 0, 11}, + {0x8C, 0x8C, 0, 10}, + {0x8A, 0x8A, 0, 9}, + {0x82, 0x82, 0, 8}, + {0xE0, 0x0, 1, 255}, + {0xBD, 0x0, 10, 255}, + {0xBC, 0xBC, 0, 25}, + {0xBA, 0xBA, 0, 24}, + {0xB4, 0xB4, 0, 23}, + {0xA2, 0xA2, 0, 22}, + {0xA0, 0xA0, 0, 21}, + {0x93, 0x93, 0, 20}, + {0x8C, 0x8C, 0, 19}, + {0x8A, 0x8A, 0, 18}, + {0x84, 0x84, 0, 17}, + {0x82, 0x82, 0, 16}, + {0xE0, 0x0, 1, 255}, + {0xBD, 0x0, 13, 255}, + {0xBE, 0xBE, 0, 39}, + {0xBC, 0xBC, 0, 38}, + {0xBA, 0xBA, 0, 37}, + {0xB4, 0xB4, 0, 36}, + {0xA2, 0xA3, 0, 34}, + {0xA0, 0xA0, 0, 33}, + {0x98, 0x98, 0, 32}, + {0x96, 0x96, 0, 31}, + {0x93, 0x93, 0, 30}, + {0x8C, 0x8C, 0, 29}, + {0x8A, 0x8A, 0, 28}, + {0x84, 0x84, 0, 27}, + {0x82, 0x82, 0, 26}, + {0xE0, 0x0, 1, 255}, + {0xBE, 0x0, 9, 255}, + {0xA8, 0xA9, 0, 10}, + {0xA6, 0xA6, 0, 9}, + {0xA3, 0xA4, 0, 7}, + {0xA1, 0xA1, 0, 6}, + {0x9F, 0x9F, 0, 5}, + {0x99, 0x99, 0, 4}, + {0x94, 0x94, 0, 3}, + {0x92, 0x92, 0, 2}, + {0x90, 0x90, 0, 1}, + {0xE0, 0x0, 1, 255}, + {0xBD, 0x0, 8, 255}, + {0x9A, 0x9B, 0, 62}, + {0x96, 0x29, 1, 255}, + {0x95, 0x95, 0, 61}, + {0x91, 0x14, 1, 255}, + {0x90, 0x90, 0, 60}, + {0x86, 0x87, 0, 58}, + {0x82, 0x0, 1, 255}, + {0x81, 0x81, 0, 57}, + {0xE0, 0x0, 2, 255}, + {0xBE, 0x10, 1, 255}, + {0xBD, 0x0, 16, 255}, + {0xBE, 0xBE, 0, 17}, + {0xBC, 0xBC, 0, 16}, + {0xBA, 0xBA, 0, 15}, + {0xB4, 0xB4, 0, 14}, + {0xB2, 0xB2, 0, 13}, + {0xA6, 0xA6, 0, 12}, + {0xA2, 0xA3, 0, 10}, + {0xA0, 0xA0, 0, 9}, + {0x98, 0x98, 0, 8}, + {0x96, 0x96, 0, 7}, + {0x93, 0x93, 0, 6}, + {0x91, 0x91, 0, 5}, + {0x8C, 0x8C, 0, 4}, + {0x8A, 0x8A, 0, 3}, + {0x84, 0x84, 0, 2}, + {0x82, 0x82, 0, 1}, + {0xB1, 0xB2, 0, 18}, + {0xE0, 0x0, 2, 255}, + {0xBE, 0x11, 1, 255}, + {0xBD, 0x0, 17, 255}, + {0xBE, 0xBE, 0, 37}, + {0xBC, 0xBC, 0, 36}, + {0xBA, 0xBA, 0, 35}, + {0xB4, 0xB4, 0, 34}, + {0xB2, 0xB2, 0, 33}, + {0xA6, 0xA6, 0, 32}, + {0xA2, 0xA3, 0, 30}, + {0xA0, 0xA0, 0, 29}, + {0x9D, 0x9D, 0, 28}, + {0x98, 0x98, 0, 27}, + {0x96, 0x96, 0, 26}, + {0x93, 0x93, 0, 25}, + {0x91, 0x91, 0, 24}, + {0x8C, 0x8C, 0, 23}, + {0x8A, 0x8A, 0, 22}, + {0x84, 0x84, 0, 21}, + {0x82, 0x82, 0, 20}, + {0xB2, 0xB2, 0, 38}, + {0xE0, 0x0, 2, 255}, + {0xBE, 0xF, 1, 255}, + {0xBD, 0x0, 15, 255}, + {0xBE, 0xBE, 0, 54}, + {0xBC, 0xBC, 0, 53}, + {0xBA, 0xBA, 0, 52}, + {0xB4, 0xB4, 0, 51}, + {0xB2, 0xB2, 0, 50}, + {0xA2, 0xA3, 0, 48}, + {0xA0, 0xA0, 0, 47}, + {0x98, 0x98, 0, 46}, + {0x96, 0x96, 0, 45}, + {0x93, 0x93, 0, 44}, + {0x91, 0x91, 0, 43}, + {0x8C, 0x8C, 0, 42}, + {0x8A, 0x8A, 0, 41}, + {0x84, 0x84, 0, 40}, + {0x82, 0x82, 0, 39}, + {0xB1, 0xB2, 0, 55}, + {0xE0, 0x0, 1, 255}, + {0xBD, 0x0, 10, 255}, + {0xA6, 0x20, 1, 255}, + {0xA4, 0xA4, 0, 52}, + {0xA1, 0xA1, 0, 51}, + {0x9E, 0x9F, 0, 49}, + {0x99, 0x99, 0, 48}, + {0x93, 0x11, 1, 255}, + {0x91, 0x0, 1, 255}, + {0x8F, 0x8F, 0, 47}, + {0x89, 0x89, 0, 46}, + {0x85, 0x85, 0, 45}, + {0xE0, 0x0, 1, 255}, + {0xBD, 0x0, 15, 255}, + {0xBE, 0xBE, 0, 16}, + {0xBC, 0xBC, 0, 15}, + {0xBA, 0xBA, 0, 14}, + {0xB4, 0xB4, 0, 13}, + {0xB2, 0xB2, 0, 12}, + {0xA6, 0xA6, 0, 11}, + {0xA2, 0xA3, 0, 9}, + {0xA0, 0xA0, 0, 8}, + {0x98, 0x98, 0, 7}, + {0x96, 0x96, 0, 6}, + {0x93, 0x93, 0, 5}, + {0x8C, 0x8C, 0, 4}, + {0x8A, 0x8A, 0, 3}, + {0x84, 0x84, 0, 2}, + {0x82, 0x82, 0, 1}, + {0xE0, 0x0, 1, 255}, + {0xBD, 0x0, 13, 255}, + {0xBE, 0xBE, 0, 29}, + {0xBC, 0xBC, 0, 28}, + {0xB4, 0xB4, 0, 27}, + {0xA6, 0xA6, 0, 26}, + {0xA0, 0xA0, 0, 25}, + {0x9D, 0x9D, 0, 24}, + {0x98, 0x98, 0, 23}, + {0x93, 0x93, 0, 22}, + {0x91, 0x91, 0, 21}, + {0x8C, 0x8C, 0, 20}, + {0x8A, 0x8A, 0, 19}, + {0x84, 0x84, 0, 18}, + {0x82, 0x82, 0, 17}, + {0xE0, 0x0, 1, 255}, + {0xBD, 0x0, 14, 255}, + {0xBC, 0xBC, 0, 44}, + {0xBA, 0xBA, 0, 43}, + {0xB4, 0xB4, 0, 42}, + {0xB2, 0xB2, 0, 41}, + {0xA6, 0xA6, 0, 40}, + {0xA2, 0xA3, 0, 38}, + {0xA0, 0xA0, 0, 37}, + {0x96, 0x96, 0, 36}, + {0x93, 0x93, 0, 35}, + {0x91, 0x91, 0, 34}, + {0x8C, 0x8C, 0, 33}, + {0x8A, 0x8A, 0, 32}, + {0x84, 0x84, 0, 31}, + {0x82, 0x82, 0, 30}, + {0xE0, 0x0, 1, 255}, + {0xBE, 0x0, 1, 255}, + {0x99, 0x99, 0, 1}, + {0xE0, 0x0, 1, 255}, + {0xBE, 0x0, 1, 255}, + {0xA4, 0xA5, 0, 1}, + {0xE0, 0x0, 2, 255}, + {0xBE, 0x9, 1, 255}, + {0xBD, 0x0, 3, 255}, + {0xB5, 0xB5, 0, 6}, + {0xB3, 0xB3, 0, 5}, + {0xB1, 0x0, 1, 4}, + {0xE0, 0x0, 2, 255}, + {0xBE, 0x2, 1, 255}, + {0xBD, 0x0, 2, 255}, + {0xB4, 0xB4, 0, 2}, + {0xB2, 0xB2, 0, 1}, + {0x80, 0x80, 0, 3}, + {0x80, 0x81, 0, 7}, + {0x7A, 0x7A, 0, 1}, + {0x7A, 0x7A, 0, 2}, + {0x5A, 0x5A, 0, 1}, + {0x62, 0x62, 0, 1}, + {0x62, 0x62, 0, 2}, + {0x42, 0x42, 0, 1}, + {0x70, 0x70, 0, 1}, + {0x70, 0x70, 0, 2}, + {0x50, 0x50, 0, 1}, + {0x79, 0x79, 0, 1}, + {0x79, 0x79, 0, 2}, + {0x59, 0x59, 0, 1}, + {0x73, 0x73, 0, 1}, + {0x73, 0x73, 0, 2}, + {0x53, 0x53, 0, 1}, + {0xCC, 0x0, 1, 255}, + {0x82, 0x82, 0, 1}, + {0xCC, 0x0, 1, 255}, + {0x83, 0x83, 0, 1}, + {0xCC, 0x0, 2, 255}, + {0x88, 0x88, 0, 2}, + {0x83, 0x83, 0, 1}, + {0xCC, 0x0, 2, 255}, + {0x8A, 0x8A, 0, 2}, + {0x88, 0x88, 0, 1}, + {0xCC, 0x0, 3, 255}, + {0x8B, 0x8B, 0, 3}, + {0x88, 0x88, 0, 2}, + {0x83, 0x83, 0, 1}, + {0xCC, 0x0, 1, 255}, + {0x67, 0x67, 0, 2}, + {0x83, 0x83, 0, 1}, + {0xCC, 0x0, 1, 255}, + {0x67, 0x67, 0, 3}, + {0x47, 0x47, 0, 2}, + {0x83, 0x83, 0, 1}, + {0xCC, 0x0, 2, 255}, + {0x8C, 0x8C, 0, 2}, + {0x81, 0x81, 0, 1}, + {0xC5, 0x2, 1, 255}, + {0x7A, 0x0, 1, 255}, + {0xCC, 0x0, 1, 255}, + {0x8C, 0x8C, 0, 1}, + {0xBE, 0xBE, 0, 2}, + {0xC5, 0x4, 1, 255}, + {0x7A, 0x2, 1, 255}, + {0x5A, 0x0, 1, 255}, + {0xCC, 0x0, 1, 255}, + {0x8C, 0x8C, 0, 1}, + {0xCC, 0x0, 1, 255}, + {0x8C, 0x8C, 0, 2}, + {0xBD, 0xBE, 0, 3}, + {0xCE, 0x1, 1, 255}, + {0xC2, 0x0, 1, 255}, + {0x6A, 0x6A, 0, 3}, + {0xB7, 0xB7, 0, 1}, + {0x87, 0x87, 0, 2}, + {0xCE, 0x1, 1, 255}, + {0xC2, 0x0, 1, 255}, + {0x6A, 0x6A, 0, 4}, + {0x4A, 0x4A, 0, 3}, + {0xB7, 0xB7, 0, 1}, + {0x87, 0x87, 0, 2}, + {0x6A, 0x6A, 0, 1}, + {0x6A, 0x6A, 0, 2}, + {0x4A, 0x4A, 0, 1}, + {0x73, 0x73, 0, 2}, + {0x63, 0x0, 1, 255}, + {0x73, 0x73, 0, 1}, + {0x73, 0x73, 0, 4}, + {0x63, 0x1, 1, 255}, + {0x53, 0x53, 0, 3}, + {0x43, 0x0, 1, 255}, + {0x53, 0x53, 0, 1}, + {0x73, 0x73, 0, 2}, + {0x7A, 0x2, 1, 4}, + {0x64, 0x0, 1, 255}, + {0x7A, 0x0, 1, 2}, + {0x73, 0x73, 0, 1}, + {0x73, 0x73, 0, 3}, + {0x7A, 0x5, 1, 8}, + {0x64, 0x3, 1, 255}, + {0x5A, 0x2, 1, 7}, + {0x44, 0x0, 1, 255}, + {0x5A, 0x0, 1, 3}, + {0x53, 0x53, 0, 1}, + {0x53, 0x53, 0, 4}, + {0x7A, 0x0, 1, 5}, + {0x73, 0x73, 0, 2}, + {0x73, 0x73, 0, 6}, + {0x79, 0x79, 0, 2}, + {0x67, 0x0, 1, 255}, + {0x79, 0x79, 0, 1}, + {0x79, 0x79, 0, 4}, + {0x67, 0x1, 1, 255}, + {0x59, 0x59, 0, 3}, + {0x47, 0x0, 1, 255}, + {0x59, 0x59, 0, 1}, + {0x79, 0x79, 0, 2}, + {0xCE, 0x2, 1, 255}, + {0xC2, 0x1, 1, 255}, + {0x79, 0x79, 0, 4}, + {0x6C, 0x0, 1, 255}, + {0x79, 0x79, 0, 1}, + {0xB7, 0xB7, 0, 2}, + {0x87, 0x87, 0, 3}, + {0xCE, 0x3, 1, 255}, + {0xC2, 0x2, 1, 255}, + {0x79, 0x79, 0, 6}, + {0x6C, 0x1, 1, 255}, + {0x59, 0x59, 0, 5}, + {0x4C, 0x0, 1, 255}, + {0x59, 0x59, 0, 1}, + {0x79, 0x79, 0, 2}, + {0xB7, 0xB7, 0, 3}, + {0x87, 0x87, 0, 4}, + {0x79, 0x79, 0, 2}, + {0x6E, 0x0, 1, 255}, + {0x79, 0x79, 0, 1}, + {0x79, 0x79, 0, 4}, + {0x6E, 0x1, 1, 255}, + {0x59, 0x59, 0, 3}, + {0x4E, 0x0, 1, 255}, + {0x59, 0x59, 0, 1}, + {0x79, 0x79, 0, 2}, + {0x7A, 0x7A, 0, 2}, + {0x73, 0x0, 1, 255}, + {0x7A, 0x7A, 0, 1}, + {0x7A, 0x7A, 0, 4}, + {0x73, 0x1, 1, 255}, + {0x5A, 0x5A, 0, 3}, + {0x53, 0x0, 1, 255}, + {0x5A, 0x5A, 0, 1}, + {0x7A, 0x7A, 0, 2}, + {0x79, 0x79, 0, 2}, + {0x74, 0x0, 1, 255}, + {0x79, 0x79, 0, 1}, + {0x79, 0x79, 0, 4}, + {0x74, 0x1, 1, 255}, + {0x59, 0x59, 0, 3}, + {0x54, 0x0, 1, 255}, + {0x59, 0x59, 0, 1}, + {0x79, 0x79, 0, 2}, + {0x7A, 0x0, 1, 255}, + {0x73, 0x73, 0, 2}, + {0x73, 0x73, 0, 1}, + {0x7A, 0x1, 1, 255}, + {0x73, 0x73, 0, 4}, + {0x5A, 0x0, 1, 255}, + {0x53, 0x53, 0, 3}, + {0x53, 0x53, 0, 1}, + {0x73, 0x73, 0, 2}, + {0xD6, 0x0, 1, 255}, + {0x82, 0x82, 0, 1}, + {0x77, 0x77, 0, 3}, + {0x68, 0x68, 0, 2}, + {0x62, 0x62, 0, 1}, + {0x77, 0x77, 0, 6}, + {0x68, 0x68, 0, 5}, + {0x62, 0x62, 0, 4}, + {0x57, 0x57, 0, 3}, + {0x48, 0x48, 0, 2}, + {0x42, 0x42, 0, 1}, + {0xCC, 0x0, 1, 255}, + {0xA3, 0xA3, 0, 1}, + {0x77, 0x77, 0, 2}, + {0x70, 0x70, 0, 1}, + {0x77, 0x77, 0, 4}, + {0x70, 0x70, 0, 3}, + {0x57, 0x57, 0, 2}, + {0x50, 0x50, 0, 1}, + {0xCC, 0x0, 1, 255}, + {0x79, 0x79, 0, 3}, + {0x77, 0x77, 0, 2}, + {0x87, 0x87, 0, 1}, + {0xCC, 0x0, 1, 255}, + {0x79, 0x79, 0, 5}, + {0x77, 0x77, 0, 4}, + {0x59, 0x59, 0, 3}, + {0x57, 0x57, 0, 2}, + {0x87, 0x87, 0, 1}, + {0xCC, 0x0, 3, 255}, + {0x8A, 0x8A, 0, 3}, + {0x88, 0x88, 0, 2}, + {0x81, 0x81, 0, 1}, + {0xCC, 0x0, 1, 255}, + {0x81, 0x81, 0, 1}, + {0xCC, 0x0, 2, 255}, + {0x88, 0x88, 0, 2}, + {0x81, 0x81, 0, 1}, + {0xE3, 0x0, 2, 255}, + {0x83, 0x1, 1, 255}, + {0x82, 0x0, 1, 255}, + {0x9D, 0x9D, 0, 1}, + {0xBC, 0xBC, 0, 2}, + {0xE3, 0x0, 1, 255}, + {0x83, 0x0, 1, 255}, + {0xBC, 0xBD, 0, 1}, + {0xE3, 0x0, 2, 255}, + {0x83, 0x7, 1, 255}, + {0x82, 0x0, 2, 255}, + {0x9D, 0x9D, 0, 3}, + {0x99, 0x0, 1, 255}, + {0xE3, 0x0, 2, 255}, + {0x83, 0x1, 1, 255}, + {0x82, 0x0, 1, 255}, + {0x9D, 0x9D, 0, 1}, + {0xBC, 0xBC, 0, 2}, + {0xBC, 0xBC, 0, 4}, + {0xE3, 0x0, 2, 255}, + {0x83, 0x4, 1, 255}, + {0x82, 0x0, 1, 255}, + {0x99, 0x0, 1, 255}, + {0xE3, 0x0, 1, 255}, + {0x83, 0x0, 1, 255}, + {0xBC, 0xBD, 0, 1}, + {0xBC, 0xBD, 0, 3}, + {0xE3, 0x0, 2, 255}, + {0x83, 0xE, 1, 255}, + {0x82, 0x0, 3, 255}, + {0x9E, 0x9E, 0, 6}, + {0x9D, 0x8, 1, 5}, + {0x99, 0x0, 1, 255}, + {0xE3, 0x0, 2, 255}, + {0x83, 0x4, 1, 255}, + {0x82, 0x0, 1, 255}, + {0x9D, 0x0, 1, 2}, + {0xE3, 0x0, 1, 255}, + {0x82, 0x0, 1, 255}, + {0x99, 0x99, 0, 1}, + {0xBC, 0xBC, 0, 3}, + {0xE3, 0x0, 1, 255}, + {0x82, 0x0, 1, 255}, + {0x99, 0x99, 0, 4}, + {0xBC, 0xBC, 0, 7}, + {0xE3, 0x0, 2, 255}, + {0x83, 0x8, 2, 255}, + {0x82, 0x0, 1, 255}, + {0x99, 0x0, 1, 255}, + {0xE3, 0x0, 1, 255}, + {0x83, 0x0, 2, 255}, + {0xBD, 0x0, 1, 3}, + {0xBC, 0xBD, 0, 2}, + {0xE3, 0x0, 1, 255}, + {0x82, 0x0, 1, 255}, + {0x99, 0x99, 0, 1}, + {0xBD, 0x0, 1, 6}, + {0xBC, 0xBE, 0, 5}, + {0xE3, 0x0, 1, 255}, + {0x82, 0x0, 1, 255}, + {0x99, 0x99, 0, 4}, + {0xE3, 0x0, 1, 255}, + {0x83, 0x0, 2, 255}, + {0xBD, 0x0, 1, 3}, + {0xBC, 0xBE, 0, 2}, + {0xE3, 0x0, 1, 255}, + {0x82, 0x0, 1, 255}, + {0x99, 0x99, 0, 1}, + {0xE3, 0x0, 2, 255}, + {0x83, 0x1, 1, 255}, + {0x82, 0x0, 1, 255}, + {0x9D, 0x9E, 0, 1}, + {0xBC, 0xBC, 0, 3}, + {0xE3, 0x0, 1, 255}, + {0x83, 0x0, 1, 255}, + {0xBC, 0xBE, 0, 1}, + {0xE3, 0x0, 2, 255}, + {0x83, 0x17, 1, 255}, + {0x82, 0x0, 4, 255}, + {0x9E, 0x9E, 0, 9}, + {0x9D, 0x10, 1, 8}, + {0x9A, 0x8, 1, 255}, + {0x99, 0x0, 1, 255}, + {0xE3, 0x0, 2, 255}, + {0x83, 0x4, 1, 255}, + {0x82, 0x0, 1, 255}, + {0x9D, 0x0, 1, 3}, + {0xE3, 0x0, 1, 255}, + {0x82, 0x0, 1, 255}, + {0x99, 0x99, 0, 1}, + {0xBC, 0xBC, 0, 4}, + {0xE3, 0x0, 2, 255}, + {0x83, 0x4, 1, 255}, + {0x82, 0x0, 1, 255}, + {0x9D, 0x0, 1, 5}, + {0xE3, 0x0, 1, 255}, + {0x82, 0x0, 1, 255}, + {0x99, 0x99, 0, 2}, + {0xBC, 0xBC, 0, 6}, + {0xE3, 0x0, 1, 255}, + {0x82, 0x0, 1, 255}, + {0x99, 0x99, 0, 7}, + {0xBC, 0xBC, 0, 10}, + {0xE3, 0x0, 2, 255}, + {0x83, 0x10, 2, 255}, + {0x82, 0x0, 2, 255}, + {0x9A, 0x7, 1, 255}, + {0x99, 0x0, 1, 255}, + {0xE3, 0x0, 1, 255}, + {0x83, 0x0, 2, 255}, + {0xBD, 0x0, 1, 4}, + {0xBC, 0xBD, 0, 3}, + {0xE3, 0x0, 1, 255}, + {0x82, 0x0, 1, 255}, + {0x99, 0x99, 0, 1}, + {0xE3, 0x0, 1, 255}, + {0x83, 0x0, 2, 255}, + {0xBD, 0x0, 1, 6}, + {0xBC, 0xBD, 0, 5}, + {0xE3, 0x0, 1, 255}, + {0x82, 0x0, 1, 255}, + {0x99, 0x99, 0, 2}, + {0xBD, 0x0, 1, 9}, + {0xBC, 0xBE, 0, 8}, + {0xE3, 0x0, 1, 255}, + {0x82, 0x0, 1, 255}, + {0x99, 0x99, 0, 7}, + {0xE3, 0x0, 2, 255}, + {0x83, 0x5, 1, 255}, + {0x82, 0x0, 2, 255}, + {0x9E, 0x9E, 0, 3}, + {0x9D, 0x0, 1, 2}, + {0xE3, 0x0, 1, 255}, + {0x82, 0x0, 1, 255}, + {0x99, 0x99, 0, 1}, + {0xBC, 0xBC, 0, 4}, + {0xE3, 0x0, 1, 255}, + {0x82, 0x0, 1, 255}, + {0x9D, 0x9D, 0, 1}, + {0xE3, 0x0, 1, 255}, + {0x83, 0x0, 1, 255}, + {0xBD, 0xBD, 0, 1}, + {0x27, 0x27, 0, 1}, + {0xE1, 0x0, 1, 255}, + {0x9F, 0x0, 1, 255}, + {0x8C, 0x8C, 0, 1}, + {0xE1, 0x0, 1, 255}, + {0x9F, 0x0, 1, 255}, + {0x86, 0x87, 0, 1}, + {0xE1, 0x0, 1, 255}, + {0x9F, 0x0, 1, 255}, + {0x86, 0x86, 0, 1}, + {0xE1, 0x0, 1, 255}, + {0x9F, 0x0, 1, 255}, + {0x87, 0x87, 0, 1}, + {0xE0, 0x0, 1, 255}, + {0xA5, 0x0, 1, 255}, + {0x8D, 0x0, 1, 255}, + {0xE0, 0x0, 1, 255}, + {0xA4, 0x0, 1, 255}, + {0xB7, 0xB7, 0, 1}, + {0x76, 0x76, 0, 8}, + {0x70, 0x70, 0, 7}, + {0x66, 0x66, 0, 6}, + {0x62, 0x62, 0, 5}, + {0x56, 0x56, 0, 4}, + {0x50, 0x50, 0, 3}, + {0x46, 0x46, 0, 2}, + {0x42, 0x42, 0, 1}, + {0x79, 0x7A, 0, 17}, + {0x73, 0x74, 0, 15}, + {0x6B, 0x6B, 0, 14}, + {0x67, 0x2, 2, 13}, + {0x64, 0x64, 0, 12}, + {0x59, 0x5A, 0, 10}, + {0x53, 0x54, 0, 8}, + {0x4B, 0x4B, 0, 7}, + {0x47, 0x0, 2, 6}, + {0x44, 0x44, 0, 5}, + {0x62, 0x62, 0, 2}, + {0x42, 0x42, 0, 1}, + {0x62, 0x62, 0, 4}, + {0x42, 0x42, 0, 3}, + {0x79, 0x7A, 0, 16}, + {0x73, 0x74, 0, 14}, + {0x6B, 0x6B, 0, 13}, + {0x67, 0x1, 2, 12}, + {0x64, 0x64, 0, 11}, + {0x59, 0x5A, 0, 9}, + {0x53, 0x54, 0, 7}, + {0x4B, 0x4B, 0, 6}, + {0x47, 0x0, 1, 5}, + {0x44, 0x44, 0, 4}, + {0x42, 0x42, 0, 1}, + {0x62, 0x62, 0, 3}, + {0x42, 0x42, 0, 2}, + {0xCC, 0x0, 2, 255}, + {0x83, 0x83, 0, 3}, + {0x80, 0x81, 0, 1}, + {0xCC, 0x0, 2, 255}, + {0xA8, 0xA8, 0, 2}, + {0x87, 0x87, 0, 1}, + {0xCC, 0x0, 2, 255}, + {0xA8, 0xA8, 0, 2}, + {0x84, 0x84, 0, 1}, + {0xCE, 0x2, 1, 255}, + {0xCC, 0x1, 1, 255}, + {0xC2, 0x0, 1, 255}, + {0xB7, 0xB7, 0, 1}, + {0xA7, 0xA7, 0, 2}, + {0x87, 0x87, 0, 3}, + {0xE0, 0x0, 1, 255}, + {0xB5, 0x0, 1, 255}, + {0x8D, 0x0, 1, 255}, + {0xE2, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0x8D, 0x8D, 0, 1}, + {0xE0, 0x0, 1, 255}, + {0xB5, 0x0, 1, 255}, + {0x8D, 0x0, 1, 255}, + {0xE2, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0x8D, 0x0, 1, 255}, + {0x20, 0x20, 0, 1}, + {0xE0, 0x0, 1, 255}, + {0xB5, 0x0, 1, 255}, + {0x8D, 0x8D, 0, 1}, + {0xE0, 0x0, 1, 255}, + {0xA5, 0x0, 1, 255}, + {0x8D, 0x0, 1, 255}, + {0xE0, 0x0, 1, 255}, + {0xA4, 0x0, 1, 255}, + {0x9E, 0x9E, 0, 1}, + {0xCC, 0x1, 1, 255}, + {0xC4, 0x0, 1, 255}, + {0xA6, 0xA7, 0, 1}, + {0x87, 0x87, 0, 3}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 2, 255}, + {0xBA, 0xBA, 0, 3}, + {0xB9, 0x0, 1, 2}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0x99, 0x0, 1, 255}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0x84, 0x0, 1, 255}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0x0, 1, 255}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB8, 0xB8, 0, 1}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 2, 255}, + {0xBA, 0x0, 1, 3}, + {0xB9, 0xBA, 0, 2}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xAF, 0x0, 1, 255}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0x95, 0x0, 1, 255}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0xBA, 0, 1}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 3, 255}, + {0xBA, 0xBA, 0, 4}, + {0xB9, 0x9, 1, 3}, + {0x80, 0x0, 1, 255}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0x0, 1, 255}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBB, 0x0, 1, 255}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xAC, 0xAC, 0, 1}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0x98, 0x0, 1, 255}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0xBA, 0, 2}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0x84, 0x0, 1, 255}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0x0, 1, 255}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB8, 0xB8, 0, 1}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 2, 255}, + {0xBA, 0xBA, 0, 3}, + {0xB9, 0x0, 1, 2}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0x99, 0x0, 1, 255}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xAE, 0xAE, 0, 1}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 2, 255}, + {0xAF, 0x0, 1, 255}, + {0xAE, 0xAE, 0, 2}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB6, 0xB6, 0, 1}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 31, 255}, + {0xB1, 0x5A, 1, 255}, + {0x9F, 0x57, 1, 255}, + {0x9E, 0x54, 1, 255}, + {0x9C, 0x51, 1, 255}, + {0x9B, 0x4E, 1, 255}, + {0x9A, 0x4B, 1, 255}, + {0x99, 0x48, 1, 255}, + {0x98, 0x45, 1, 255}, + {0x97, 0x42, 1, 255}, + {0x96, 0x3F, 1, 255}, + {0x95, 0x3C, 1, 255}, + {0x94, 0x39, 1, 255}, + {0x93, 0x36, 1, 255}, + {0x92, 0x33, 1, 255}, + {0x91, 0x30, 1, 255}, + {0x90, 0x2D, 1, 255}, + {0x8F, 0x2A, 1, 255}, + {0x8E, 0x27, 1, 255}, + {0x8D, 0x24, 1, 255}, + {0x8C, 0x21, 1, 255}, + {0x8B, 0x1E, 1, 255}, + {0x8A, 0x1B, 1, 255}, + {0x89, 0x18, 1, 255}, + {0x87, 0x15, 1, 255}, + {0x86, 0x12, 1, 255}, + {0x85, 0xF, 1, 255}, + {0x84, 0xC, 1, 255}, + {0x83, 0x9, 1, 255}, + {0x82, 0x6, 1, 255}, + {0x81, 0x3, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 61}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 63}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 65}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 67}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 69}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 71}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 73}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 75}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 77}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 79}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 81}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 83}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 85}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 87}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 89}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 91}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 93}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 95}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 97}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 99}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 101}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 103}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 105}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 107}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 109}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 111}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 113}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 115}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 117}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 119}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xAC, 0x0, 1, 255}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 30, 255}, + {0x9F, 0x57, 1, 255}, + {0x9E, 0x54, 1, 255}, + {0x9C, 0x51, 1, 255}, + {0x9B, 0x4E, 1, 255}, + {0x9A, 0x4B, 1, 255}, + {0x99, 0x48, 1, 255}, + {0x98, 0x45, 1, 255}, + {0x97, 0x42, 1, 255}, + {0x96, 0x3F, 1, 255}, + {0x95, 0x3C, 1, 255}, + {0x94, 0x39, 1, 255}, + {0x93, 0x36, 1, 255}, + {0x92, 0x33, 1, 255}, + {0x91, 0x30, 1, 255}, + {0x90, 0x2D, 1, 255}, + {0x8F, 0x2A, 1, 255}, + {0x8E, 0x27, 1, 255}, + {0x8D, 0x24, 1, 255}, + {0x8C, 0x21, 1, 255}, + {0x8B, 0x1E, 1, 255}, + {0x8A, 0x1B, 1, 255}, + {0x89, 0x18, 1, 255}, + {0x87, 0x15, 1, 255}, + {0x86, 0x12, 1, 255}, + {0x85, 0xF, 1, 255}, + {0x84, 0xC, 1, 255}, + {0x83, 0x9, 1, 255}, + {0x82, 0x6, 1, 255}, + {0x81, 0x3, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 1}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 3}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 5}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 7}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 9}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 11}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 13}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 15}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 17}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 19}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 21}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 23}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 25}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 27}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 29}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 31}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 33}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 35}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 37}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 39}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 41}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 43}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 45}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 47}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 49}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 51}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 53}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 55}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 57}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 59}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 36, 255}, + {0xAC, 0xF7, 1, 197}, + {0xAB, 0x69, 1, 196}, + {0xA1, 0x66, 1, 255}, + {0xA0, 0x63, 1, 255}, + {0x9F, 0x60, 1, 255}, + {0x9E, 0x5D, 1, 255}, + {0x9D, 0x5A, 1, 255}, + {0x9C, 0x57, 1, 255}, + {0x9B, 0x54, 1, 255}, + {0x9A, 0x51, 1, 255}, + {0x99, 0x4E, 1, 255}, + {0x98, 0x4B, 1, 255}, + {0x97, 0x48, 1, 255}, + {0x96, 0x45, 1, 255}, + {0x95, 0x42, 1, 255}, + {0x94, 0x3F, 1, 255}, + {0x93, 0x3C, 1, 255}, + {0x92, 0x39, 1, 255}, + {0x91, 0x36, 1, 255}, + {0x90, 0x33, 1, 255}, + {0x8F, 0x30, 1, 255}, + {0x8E, 0x2D, 1, 255}, + {0x8D, 0x2A, 1, 255}, + {0x8C, 0x27, 1, 255}, + {0x8B, 0x24, 1, 255}, + {0x8A, 0x21, 1, 255}, + {0x89, 0x1E, 1, 255}, + {0x88, 0x1B, 1, 255}, + {0x87, 0x18, 1, 255}, + {0x86, 0x15, 1, 255}, + {0x85, 0x12, 1, 255}, + {0x84, 0xC, 1, 255}, + {0x83, 0x9, 1, 255}, + {0x82, 0x6, 1, 255}, + {0x81, 0x3, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 131}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 133}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 135}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 137}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0x0, 1, 139}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xB9, 0, 4}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 140}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 142}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 144}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0xBA, 0, 146}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 147}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 149}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 151}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 153}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 155}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 157}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 159}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 161}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 163}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 165}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 167}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 169}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 171}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 173}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 175}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 177}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 179}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 181}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 183}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 185}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0xBA, 0, 187}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 188}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 190}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0xBA, 0, 192}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0xBA, 0, 193}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 35, 255}, + {0xBA, 0xBA, 0, 194}, + {0xA1, 0x66, 1, 255}, + {0xA0, 0x63, 1, 255}, + {0x9F, 0x60, 1, 255}, + {0x9E, 0x5D, 1, 255}, + {0x9D, 0x5A, 1, 255}, + {0x9C, 0x57, 1, 255}, + {0x9B, 0x54, 1, 255}, + {0x9A, 0x51, 1, 255}, + {0x99, 0x4E, 1, 255}, + {0x98, 0x4B, 1, 255}, + {0x97, 0x48, 1, 255}, + {0x96, 0x45, 1, 255}, + {0x95, 0x42, 1, 255}, + {0x94, 0x3F, 1, 255}, + {0x93, 0x3C, 1, 255}, + {0x92, 0x39, 1, 255}, + {0x91, 0x36, 1, 255}, + {0x90, 0x33, 1, 255}, + {0x8F, 0x30, 1, 255}, + {0x8E, 0x2D, 1, 255}, + {0x8D, 0x2A, 1, 255}, + {0x8C, 0x27, 1, 255}, + {0x8B, 0x24, 1, 255}, + {0x8A, 0x21, 1, 255}, + {0x89, 0x1E, 1, 255}, + {0x88, 0x1B, 1, 255}, + {0x87, 0x18, 1, 255}, + {0x86, 0x15, 1, 255}, + {0x85, 0x12, 1, 255}, + {0x84, 0xC, 1, 255}, + {0x83, 0x9, 1, 255}, + {0x82, 0x6, 1, 255}, + {0x81, 0x3, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 5}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 7}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 9}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 11}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0x0, 1, 13}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xB9, 0, 1}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 14}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 16}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 18}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0xBA, 0, 20}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 21}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 23}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 25}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 27}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 29}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 31}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 33}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 35}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 37}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 39}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 41}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 43}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 45}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 47}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 49}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 51}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 53}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 55}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 57}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 59}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0xBA, 0, 61}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 62}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 64}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0xBA, 0, 66}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0xBA, 0, 67}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 35, 255}, + {0xBA, 0xBA, 0, 195}, + {0xA1, 0x6A, 1, 255}, + {0xA0, 0x67, 1, 255}, + {0x9F, 0x64, 1, 255}, + {0x9E, 0x61, 1, 255}, + {0x9D, 0x5E, 1, 255}, + {0x9C, 0x5B, 1, 255}, + {0x9B, 0x58, 1, 255}, + {0x9A, 0x55, 1, 255}, + {0x99, 0x52, 1, 255}, + {0x98, 0x4F, 1, 255}, + {0x97, 0x4C, 1, 255}, + {0x96, 0x49, 1, 255}, + {0x95, 0x46, 1, 255}, + {0x94, 0x43, 1, 255}, + {0x93, 0x40, 1, 255}, + {0x92, 0x3D, 1, 255}, + {0x91, 0x3A, 1, 255}, + {0x90, 0x37, 1, 255}, + {0x8F, 0x34, 1, 255}, + {0x8E, 0x31, 1, 255}, + {0x8D, 0x2E, 1, 255}, + {0x8C, 0x2B, 1, 255}, + {0x8B, 0x28, 1, 255}, + {0x8A, 0x25, 1, 255}, + {0x89, 0x22, 1, 255}, + {0x88, 0x1F, 1, 255}, + {0x87, 0x1C, 1, 255}, + {0x86, 0x19, 1, 255}, + {0x85, 0x16, 1, 255}, + {0x84, 0x10, 1, 255}, + {0x83, 0xD, 1, 255}, + {0x82, 0xA, 1, 255}, + {0x81, 0x7, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 2, 255}, + {0xBA, 0x0, 1, 69}, + {0xB9, 0xBA, 0, 68}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBB, 0xBB, 0, 2}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 70}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 72}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 74}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0x0, 1, 76}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xB9, 0, 3}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 77}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 79}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 81}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0xBA, 0, 83}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 84}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 86}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 88}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 90}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 92}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 94}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 96}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 98}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 100}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 102}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 104}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 106}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 108}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 110}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 112}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 114}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 116}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 118}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 120}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 122}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0xBA, 0, 124}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 125}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 127}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0xBA, 0, 129}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0xBA, 0, 130}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 36, 255}, + {0xB6, 0xFE, 1, 134}, + {0xAF, 0x71, 1, 133}, + {0xA1, 0x6E, 1, 255}, + {0xA0, 0x6B, 1, 255}, + {0x9F, 0x68, 1, 255}, + {0x9E, 0x65, 1, 255}, + {0x9D, 0x62, 1, 255}, + {0x9C, 0x5F, 1, 255}, + {0x9B, 0x5C, 1, 255}, + {0x9A, 0x59, 1, 255}, + {0x99, 0x4E, 1, 255}, + {0x98, 0x4B, 1, 255}, + {0x97, 0x48, 1, 255}, + {0x96, 0x45, 1, 255}, + {0x95, 0x42, 1, 255}, + {0x94, 0x3F, 1, 255}, + {0x93, 0x3C, 1, 255}, + {0x92, 0x39, 1, 255}, + {0x91, 0x36, 1, 255}, + {0x90, 0x33, 1, 255}, + {0x8F, 0x30, 1, 255}, + {0x8E, 0x2D, 1, 255}, + {0x8D, 0x2A, 1, 255}, + {0x8C, 0x27, 1, 255}, + {0x8B, 0x24, 1, 255}, + {0x8A, 0x21, 1, 255}, + {0x89, 0x1E, 1, 255}, + {0x88, 0x1B, 1, 255}, + {0x87, 0x18, 1, 255}, + {0x86, 0x15, 1, 255}, + {0x85, 0x12, 1, 255}, + {0x84, 0xC, 1, 255}, + {0x83, 0x9, 1, 255}, + {0x82, 0x6, 1, 255}, + {0x81, 0x3, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 68}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 70}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 72}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 74}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0x0, 1, 76}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xB9, 0, 2}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 77}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 79}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 81}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0xBA, 0, 83}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 84}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 86}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 88}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 90}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 92}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 94}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 96}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 98}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 100}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 102}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 104}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 106}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 108}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 110}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 112}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 114}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 3, 255}, + {0xBA, 0x3, 1, 117}, + {0xB9, 0xBA, 0, 116}, + {0xB7, 0x0, 1, 255}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0xBA, 0, 3}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB8, 0xB8, 0, 4}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 118}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 120}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 122}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0xBA, 0, 124}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 125}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 127}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0xBA, 0, 129}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0xBA, 0, 130}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 34, 255}, + {0xA1, 0x66, 1, 255}, + {0xA0, 0x63, 1, 255}, + {0x9F, 0x60, 1, 255}, + {0x9E, 0x5D, 1, 255}, + {0x9D, 0x5A, 1, 255}, + {0x9C, 0x57, 1, 255}, + {0x9B, 0x54, 1, 255}, + {0x9A, 0x51, 1, 255}, + {0x99, 0x4E, 1, 255}, + {0x98, 0x4B, 1, 255}, + {0x97, 0x48, 1, 255}, + {0x96, 0x45, 1, 255}, + {0x95, 0x42, 1, 255}, + {0x94, 0x3F, 1, 255}, + {0x93, 0x3C, 1, 255}, + {0x92, 0x39, 1, 255}, + {0x91, 0x36, 1, 255}, + {0x90, 0x33, 1, 255}, + {0x8F, 0x30, 1, 255}, + {0x8E, 0x2D, 1, 255}, + {0x8D, 0x2A, 1, 255}, + {0x8C, 0x27, 1, 255}, + {0x8B, 0x24, 1, 255}, + {0x8A, 0x21, 1, 255}, + {0x89, 0x1E, 1, 255}, + {0x88, 0x1B, 1, 255}, + {0x87, 0x18, 1, 255}, + {0x86, 0x15, 1, 255}, + {0x85, 0x12, 1, 255}, + {0x84, 0xC, 1, 255}, + {0x83, 0x9, 1, 255}, + {0x82, 0x6, 1, 255}, + {0x81, 0x3, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 5}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 7}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 9}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 11}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0x0, 1, 13}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xB9, 0, 1}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 14}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 16}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 18}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0xBA, 0, 20}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 21}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 23}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 25}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 27}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 29}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 31}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 33}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 35}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 37}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 39}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 41}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 43}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 45}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 47}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 49}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 51}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 53}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 55}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 57}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 59}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0xBA, 0, 61}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 62}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 64}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0xBA, 0, 66}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0xBA, 0, 67}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB7, 0xB8, 0, 131}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 1}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 34, 255}, + {0xA1, 0x66, 1, 255}, + {0xA0, 0x63, 1, 255}, + {0x9F, 0x60, 1, 255}, + {0x9E, 0x5D, 1, 255}, + {0x9D, 0x5A, 1, 255}, + {0x9C, 0x57, 1, 255}, + {0x9B, 0x54, 1, 255}, + {0x9A, 0x51, 1, 255}, + {0x99, 0x4E, 1, 255}, + {0x98, 0x4B, 1, 255}, + {0x97, 0x48, 1, 255}, + {0x96, 0x45, 1, 255}, + {0x95, 0x42, 1, 255}, + {0x94, 0x3F, 1, 255}, + {0x93, 0x3C, 1, 255}, + {0x92, 0x39, 1, 255}, + {0x91, 0x36, 1, 255}, + {0x90, 0x33, 1, 255}, + {0x8F, 0x30, 1, 255}, + {0x8E, 0x2D, 1, 255}, + {0x8D, 0x2A, 1, 255}, + {0x8C, 0x27, 1, 255}, + {0x8B, 0x24, 1, 255}, + {0x8A, 0x21, 1, 255}, + {0x89, 0x1E, 1, 255}, + {0x88, 0x1B, 1, 255}, + {0x87, 0x18, 1, 255}, + {0x86, 0x15, 1, 255}, + {0x85, 0x12, 1, 255}, + {0x84, 0xC, 1, 255}, + {0x83, 0x9, 1, 255}, + {0x82, 0x6, 1, 255}, + {0x81, 0x3, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 2}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 4}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 6}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 8}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0x0, 1, 10}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xB9, 0, 1}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 11}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 13}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 15}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0xBA, 0, 17}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 18}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 20}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 22}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 24}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 26}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 28}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 30}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 32}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 34}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 36}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 38}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 40}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 42}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 44}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 46}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 48}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 50}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 52}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 54}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 56}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0xBA, 0, 58}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 59}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 61}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0xBA, 0, 63}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0xBA, 0, 64}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 35, 255}, + {0xB6, 0x71, 1, 69}, + {0xA1, 0x6E, 1, 255}, + {0xA0, 0x6B, 1, 255}, + {0x9F, 0x68, 1, 255}, + {0x9E, 0x65, 1, 255}, + {0x9D, 0x62, 1, 255}, + {0x9C, 0x5F, 1, 255}, + {0x9B, 0x5C, 1, 255}, + {0x9A, 0x59, 1, 255}, + {0x99, 0x4E, 1, 255}, + {0x98, 0x4B, 1, 255}, + {0x97, 0x48, 1, 255}, + {0x96, 0x45, 1, 255}, + {0x95, 0x42, 1, 255}, + {0x94, 0x3F, 1, 255}, + {0x93, 0x3C, 1, 255}, + {0x92, 0x39, 1, 255}, + {0x91, 0x36, 1, 255}, + {0x90, 0x33, 1, 255}, + {0x8F, 0x30, 1, 255}, + {0x8E, 0x2D, 1, 255}, + {0x8D, 0x2A, 1, 255}, + {0x8C, 0x27, 1, 255}, + {0x8B, 0x24, 1, 255}, + {0x8A, 0x21, 1, 255}, + {0x89, 0x1E, 1, 255}, + {0x88, 0x1B, 1, 255}, + {0x87, 0x18, 1, 255}, + {0x86, 0x15, 1, 255}, + {0x85, 0x12, 1, 255}, + {0x84, 0xC, 1, 255}, + {0x83, 0x9, 1, 255}, + {0x82, 0x6, 1, 255}, + {0x81, 0x3, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 4}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 6}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 8}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 10}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0x0, 1, 12}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xB9, 0, 1}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 13}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 15}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 17}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0xBA, 0, 19}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 20}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 22}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 24}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 26}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 28}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 30}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 32}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 34}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 36}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 38}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 40}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 42}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 44}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 46}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 48}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 50}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 3, 255}, + {0xBA, 0x3, 1, 53}, + {0xB9, 0xBA, 0, 52}, + {0xB7, 0x0, 1, 255}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0xBA, 0, 2}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB8, 0xB8, 0, 3}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 54}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 56}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 58}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0xBA, 0, 60}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 61}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xBA, 0, 63}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0xBA, 0, 65}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0xBA, 0, 66}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB7, 0xB8, 0, 67}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB8, 0xB8, 0, 1}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0x0, 1, 2}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xB9, 0xB9, 0, 1}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBA, 0xBA, 0, 1}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 2, 255}, + {0xBE, 0xBE, 0, 3}, + {0xBD, 0x0, 1, 2}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBE, 0xBE, 0, 1}, + {0xE1, 0x0, 1, 255}, + {0x80, 0x0, 1, 255}, + {0xBE, 0xBE, 0, 1}, + {0xE0, 0x0, 1, 255}, + {0xAD, 0x0, 1, 255}, + {0x8D, 0x0, 1, 255}, + {0xE0, 0x0, 1, 255}, + {0xAC, 0x0, 1, 255}, + {0xB7, 0xB7, 0, 1}, + {0xCC, 0x0, 2, 255}, + {0x87, 0x87, 0, 2}, + {0x81, 0x81, 0, 1}, + {0xCC, 0x0, 2, 255}, + {0x86, 0x86, 0, 2}, + {0x82, 0x82, 0, 1}, + {0xCC, 0x0, 1, 255}, + {0xA6, 0xA7, 0, 1}, + {0xCC, 0x0, 4, 255}, + {0x8A, 0x8A, 0, 5}, + {0x87, 0x88, 0, 3}, + {0x83, 0x83, 0, 2}, + {0x81, 0x81, 0, 1}, + {0xCC, 0x0, 2, 255}, + {0x83, 0x83, 0, 2}, + {0x81, 0x81, 0, 1}, + {0xCC, 0x0, 4, 255}, + {0xA8, 0xA8, 0, 5}, + {0x8B, 0x8B, 0, 4}, + {0x88, 0x88, 0, 3}, + {0x82, 0x83, 0, 1}, + {0x72, 0x72, 0, 1}, + {0x72, 0x72, 0, 2}, + {0x52, 0x52, 0, 1}, + {0xCC, 0x0, 3, 255}, + {0x8B, 0x8B, 0, 3}, + {0x88, 0x88, 0, 2}, + {0x82, 0x82, 0, 1}, + {0xE0, 0x0, 1, 255}, + {0xAF, 0x0, 1, 255}, + {0x8D, 0x0, 1, 3}, + {0xE0, 0x0, 1, 255}, + {0xAE, 0x0, 1, 255}, + {0xB7, 0x0, 1, 2}, + {0xE0, 0x0, 1, 255}, + {0xAF, 0x0, 1, 255}, + {0x8D, 0x8D, 0, 1}, + {0xE0, 0x0, 1, 255}, + {0xAF, 0x0, 1, 255}, + {0x8D, 0x8D, 0, 1}, + {0xE0, 0x0, 2, 255}, + {0xB9, 0x1, 1, 255}, + {0xB8, 0x0, 1, 255}, + {0xB2, 0xB2, 0, 1}, + {0x85, 0x85, 0, 2}, + {0xCC, 0x0, 2, 255}, + {0x84, 0x84, 0, 2}, + {0x81, 0x81, 0, 1}, + {0xDA, 0x0, 1, 255}, + {0xBE, 0xBE, 0, 1}, + {0xDA, 0x1, 1, 255}, + {0xD9, 0x0, 1, 255}, + {0x94, 0x94, 0, 1}, + {0xBE, 0xBE, 0, 2}, + {0xCC, 0x0, 2, 255}, + {0x9B, 0x9B, 0, 2}, + {0x82, 0x82, 0, 1}, + {0xCC, 0x0, 1, 255}, + {0x9B, 0x9B, 0, 1}, + {0xCC, 0x0, 1, 255}, + {0x61, 0x61, 0, 2}, + {0x88, 0x0, 1, 255}, + {0x61, 0x0, 1, 255}, + {0xCC, 0x0, 1, 255}, + {0x88, 0x88, 0, 1}, + {0xC3, 0x0, 1, 255}, + {0xA4, 0xA4, 0, 1}, + {0x65, 0x65, 0, 1}, + {0x69, 0x69, 0, 1}, + {0xCC, 0x0, 1, 255}, + {0x6F, 0x6F, 0, 2}, + {0x88, 0x0, 1, 255}, + {0x6F, 0x0, 1, 255}, + {0xCC, 0x0, 1, 255}, + {0x88, 0x88, 0, 1}, + {0xC3, 0x0, 1, 255}, + {0xB6, 0xB6, 0, 1}, + {0x63, 0x0, 1, 255}, + {0x68, 0x68, 0, 1}, + {0xCC, 0x0, 1, 255}, + {0x75, 0x75, 0, 2}, + {0x88, 0x0, 1, 255}, + {0x75, 0x0, 1, 255}, + {0xCC, 0x0, 1, 255}, + {0x88, 0x88, 0, 1}, + {0xC3, 0x0, 1, 255}, + {0xBC, 0xBC, 0, 1}, + {0xCC, 0x0, 3, 255}, + {0x8C, 0x8C, 0, 4}, + {0x84, 0x84, 0, 3}, + {0x80, 0x81, 0, 1}, + {0xCC, 0x0, 4, 255}, + {0x8C, 0x8C, 0, 8}, + {0x84, 0x84, 0, 7}, + {0x82, 0x0, 1, 255}, + {0x80, 0x81, 0, 5}, + {0xCC, 0x0, 3, 255}, + {0x8C, 0x8C, 0, 4}, + {0x84, 0x84, 0, 3}, + {0x80, 0x81, 0, 1}, + {0xCC, 0x0, 2, 255}, + {0x8C, 0x8C, 0, 2}, + {0x84, 0x84, 0, 1}, + {0xCC, 0x0, 4, 255}, + {0x8C, 0x8C, 0, 9}, + {0x88, 0x0, 1, 8}, + {0x84, 0x84, 0, 7}, + {0x80, 0x81, 0, 5}, + {0xCC, 0x0, 3, 255}, + {0x8C, 0x8C, 0, 4}, + {0x84, 0x84, 0, 3}, + {0x80, 0x81, 0, 1}, +} + +// Total size of mainTable is 1253028 bytes diff --git a/vendor/golang.org/x/text/internal/colltab/collelem.go b/vendor/golang.org/x/text/internal/colltab/collelem.go new file mode 100644 index 00000000000..396cebda273 --- /dev/null +++ b/vendor/golang.org/x/text/internal/colltab/collelem.go @@ -0,0 +1,371 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package colltab + +import ( + "fmt" + "unicode" +) + +// Level identifies the collation comparison level. +// The primary level corresponds to the basic sorting of text. +// The secondary level corresponds to accents and related linguistic elements. +// The tertiary level corresponds to casing and related concepts. +// The quaternary level is derived from the other levels by the +// various algorithms for handling variable elements. +type Level int + +const ( + Primary Level = iota + Secondary + Tertiary + Quaternary + Identity + + NumLevels +) + +const ( + defaultSecondary = 0x20 + defaultTertiary = 0x2 + maxTertiary = 0x1F + MaxQuaternary = 0x1FFFFF // 21 bits. +) + +// Elem is a representation of a collation element. This API provides ways to encode +// and decode Elems. Implementations of collation tables may use values greater +// or equal to PrivateUse for their own purposes. However, these should never be +// returned by AppendNext. +type Elem uint32 + +const ( + maxCE Elem = 0xAFFFFFFF + PrivateUse = minContract + minContract = 0xC0000000 + maxContract = 0xDFFFFFFF + minExpand = 0xE0000000 + maxExpand = 0xEFFFFFFF + minDecomp = 0xF0000000 +) + +type ceType int + +const ( + ceNormal ceType = iota // ceNormal includes implicits (ce == 0) + ceContractionIndex // rune can be a start of a contraction + ceExpansionIndex // rune expands into a sequence of collation elements + ceDecompose // rune expands using NFKC decomposition +) + +func (ce Elem) ctype() ceType { + if ce <= maxCE { + return ceNormal + } + if ce <= maxContract { + return ceContractionIndex + } else { + if ce <= maxExpand { + return ceExpansionIndex + } + return ceDecompose + } + panic("should not reach here") + return ceType(-1) +} + +// For normal collation elements, we assume that a collation element either has +// a primary or non-default secondary value, not both. +// Collation elements with a primary value are of the form +// 01pppppp pppppppp ppppppp0 ssssssss +// - p* is primary collation value +// - s* is the secondary collation value +// 00pppppp pppppppp ppppppps sssttttt, where +// - p* is primary collation value +// - s* offset of secondary from default value. +// - t* is the tertiary collation value +// 100ttttt cccccccc pppppppp pppppppp +// - t* is the tertiar collation value +// - c* is the canonical combining class +// - p* is the primary collation value +// Collation elements with a secondary value are of the form +// 1010cccc ccccssss ssssssss tttttttt, where +// - c* is the canonical combining class +// - s* is the secondary collation value +// - t* is the tertiary collation value +// 11qqqqqq qqqqqqqq qqqqqqq0 00000000 +// - q* quaternary value +const ( + ceTypeMask = 0xC0000000 + ceTypeMaskExt = 0xE0000000 + ceIgnoreMask = 0xF00FFFFF + ceType1 = 0x40000000 + ceType2 = 0x00000000 + ceType3or4 = 0x80000000 + ceType4 = 0xA0000000 + ceTypeQ = 0xC0000000 + Ignore = ceType4 + firstNonPrimary = 0x80000000 + lastSpecialPrimary = 0xA0000000 + secondaryMask = 0x80000000 + hasTertiaryMask = 0x40000000 + primaryValueMask = 0x3FFFFE00 + maxPrimaryBits = 21 + compactPrimaryBits = 16 + maxSecondaryBits = 12 + maxTertiaryBits = 8 + maxCCCBits = 8 + maxSecondaryCompactBits = 8 + maxSecondaryDiffBits = 4 + maxTertiaryCompactBits = 5 + primaryShift = 9 + compactSecondaryShift = 5 + minCompactSecondary = defaultSecondary - 4 +) + +func makeImplicitCE(primary int) Elem { + return ceType1 | Elem(primary<= 1<= %x", w, 1<= 1<= %x", w, 1<= 1<= %x", w, 1<= 1<= %x", primary, 1<= 1<= %x", secondary, 1<= 1< %x", d, d, 1<= 1< %x", tertiary, 1<> 16) + } + return uint8(ce >> 20) + } + return 0 +} + +// Primary returns the primary collation weight for ce. +func (ce Elem) Primary() int { + if ce >= firstNonPrimary { + if ce > lastSpecialPrimary { + return 0 + } + return int(uint16(ce)) + } + return int(ce&primaryValueMask) >> primaryShift +} + +// Secondary returns the secondary collation weight for ce. +func (ce Elem) Secondary() int { + switch ce & ceTypeMask { + case ceType1: + return int(uint8(ce)) + case ceType2: + return minCompactSecondary + int((ce>>compactSecondaryShift)&0xF) + case ceType3or4: + if ce < ceType4 { + return defaultSecondary + } + return int(ce>>8) & 0xFFF + case ceTypeQ: + return 0 + } + panic("should not reach here") +} + +// Tertiary returns the tertiary collation weight for ce. +func (ce Elem) Tertiary() uint8 { + if ce&hasTertiaryMask == 0 { + if ce&ceType3or4 == 0 { + return uint8(ce & 0x1F) + } + if ce&ceType4 == ceType4 { + return uint8(ce) + } + return uint8(ce>>24) & 0x1F // type 2 + } else if ce&ceTypeMask == ceType1 { + return defaultTertiary + } + // ce is a quaternary value. + return 0 +} + +func (ce Elem) updateTertiary(t uint8) Elem { + if ce&ceTypeMask == ceType1 { + // convert to type 4 + nce := ce & primaryValueMask + nce |= Elem(uint8(ce)-minCompactSecondary) << compactSecondaryShift + ce = nce + } else if ce&ceTypeMaskExt == ceType3or4 { + ce &= ^Elem(maxTertiary << 24) + return ce | (Elem(t) << 24) + } else { + // type 2 or 4 + ce &= ^Elem(maxTertiary) + } + return ce | Elem(t) +} + +// Quaternary returns the quaternary value if explicitly specified, +// 0 if ce == Ignore, or MaxQuaternary otherwise. +// Quaternary values are used only for shifted variants. +func (ce Elem) Quaternary() int { + if ce&ceTypeMask == ceTypeQ { + return int(ce&primaryValueMask) >> primaryShift + } else if ce&ceIgnoreMask == Ignore { + return 0 + } + return MaxQuaternary +} + +// Weight returns the collation weight for the given level. +func (ce Elem) Weight(l Level) int { + switch l { + case Primary: + return ce.Primary() + case Secondary: + return ce.Secondary() + case Tertiary: + return int(ce.Tertiary()) + case Quaternary: + return ce.Quaternary() + } + return 0 // return 0 (ignore) for undefined levels. +} + +// For contractions, collation elements are of the form +// 110bbbbb bbbbbbbb iiiiiiii iiiinnnn, where +// - n* is the size of the first node in the contraction trie. +// - i* is the index of the first node in the contraction trie. +// - b* is the offset into the contraction collation element table. +// See contract.go for details on the contraction trie. +const ( + maxNBits = 4 + maxTrieIndexBits = 12 + maxContractOffsetBits = 13 +) + +func splitContractIndex(ce Elem) (index, n, offset int) { + n = int(ce & (1<>= maxNBits + index = int(ce & (1<>= maxTrieIndexBits + offset = int(ce & (1<> 8) +} + +const ( + // These constants were taken from https://www.unicode.org/versions/Unicode6.0.0/ch12.pdf. + minUnified rune = 0x4E00 + maxUnified = 0x9FFF + minCompatibility = 0xF900 + maxCompatibility = 0xFAFF + minRare = 0x3400 + maxRare = 0x4DBF +) +const ( + commonUnifiedOffset = 0x10000 + rareUnifiedOffset = 0x20000 // largest rune in common is U+FAFF + otherOffset = 0x50000 // largest rune in rare is U+2FA1D + illegalOffset = otherOffset + int(unicode.MaxRune) + maxPrimary = illegalOffset + 1 +) + +// implicitPrimary returns the primary weight for the a rune +// for which there is no entry for the rune in the collation table. +// We take a different approach from the one specified in +// https://unicode.org/reports/tr10/#Implicit_Weights, +// but preserve the resulting relative ordering of the runes. +func implicitPrimary(r rune) int { + if unicode.Is(unicode.Ideographic, r) { + if r >= minUnified && r <= maxUnified { + // The most common case for CJK. + return int(r) + commonUnifiedOffset + } + if r >= minCompatibility && r <= maxCompatibility { + // This will typically not hit. The DUCET explicitly specifies mappings + // for all characters that do not decompose. + return int(r) + commonUnifiedOffset + } + return int(r) + rareUnifiedOffset + } + return int(r) + otherOffset +} diff --git a/vendor/golang.org/x/text/internal/colltab/colltab.go b/vendor/golang.org/x/text/internal/colltab/colltab.go new file mode 100644 index 00000000000..02f22477ec2 --- /dev/null +++ b/vendor/golang.org/x/text/internal/colltab/colltab.go @@ -0,0 +1,105 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package colltab contains functionality related to collation tables. +// It is only to be used by the collate and search packages. +package colltab // import "golang.org/x/text/internal/colltab" + +import ( + "sort" + + "golang.org/x/text/language" +) + +// MatchLang finds the index of t in tags, using a matching algorithm used for +// collation and search. tags[0] must be language.Und, the remaining tags should +// be sorted alphabetically. +// +// Language matching for collation and search is different from the matching +// defined by language.Matcher: the (inferred) base language must be an exact +// match for the relevant fields. For example, "gsw" should not match "de". +// Also the parent relation is different, as a parent may have a different +// script. So usually the parent of zh-Hant is und, whereas for MatchLang it is +// zh. +func MatchLang(t language.Tag, tags []language.Tag) int { + // Canonicalize the values, including collapsing macro languages. + t, _ = language.All.Canonicalize(t) + + base, conf := t.Base() + // Estimate the base language, but only use high-confidence values. + if conf < language.High { + // The root locale supports "search" and "standard". We assume that any + // implementation will only use one of both. + return 0 + } + + // Maximize base and script and normalize the tag. + if _, s, r := t.Raw(); (r != language.Region{}) { + p, _ := language.Raw.Compose(base, s, r) + // Taking the parent forces the script to be maximized. + p = p.Parent() + // Add back region and extensions. + t, _ = language.Raw.Compose(p, r, t.Extensions()) + } else { + // Set the maximized base language. + t, _ = language.Raw.Compose(base, s, t.Extensions()) + } + + // Find start index of the language tag. + start := 1 + sort.Search(len(tags)-1, func(i int) bool { + b, _, _ := tags[i+1].Raw() + return base.String() <= b.String() + }) + if start < len(tags) { + if b, _, _ := tags[start].Raw(); b != base { + return 0 + } + } + + // Besides the base language, script and region, only the collation type and + // the custom variant defined in the 'u' extension are used to distinguish a + // locale. + // Strip all variants and extensions and add back the custom variant. + tdef, _ := language.Raw.Compose(t.Raw()) + tdef, _ = tdef.SetTypeForKey("va", t.TypeForKey("va")) + + // First search for a specialized collation type, if present. + try := []language.Tag{tdef} + if co := t.TypeForKey("co"); co != "" { + tco, _ := tdef.SetTypeForKey("co", co) + try = []language.Tag{tco, tdef} + } + + for _, tx := range try { + for ; tx != language.Und; tx = parent(tx) { + for i, t := range tags[start:] { + if b, _, _ := t.Raw(); b != base { + break + } + if tx == t { + return start + i + } + } + } + } + return 0 +} + +// parent computes the structural parent. This means inheritance may change +// script. So, unlike the CLDR parent, parent(zh-Hant) == zh. +func parent(t language.Tag) language.Tag { + if t.TypeForKey("va") != "" { + t, _ = t.SetTypeForKey("va", "") + return t + } + result := language.Und + if b, s, r := t.Raw(); (r != language.Region{}) { + result, _ = language.Raw.Compose(b, s, t.Extensions()) + } else if (s != language.Script{}) { + result, _ = language.Raw.Compose(b, t.Extensions()) + } else if (b != language.Base{}) { + result, _ = language.Raw.Compose(t.Extensions()) + } + return result +} diff --git a/vendor/golang.org/x/text/internal/colltab/contract.go b/vendor/golang.org/x/text/internal/colltab/contract.go new file mode 100644 index 00000000000..25649d4f55f --- /dev/null +++ b/vendor/golang.org/x/text/internal/colltab/contract.go @@ -0,0 +1,145 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package colltab + +import "unicode/utf8" + +// For a description of ContractTrieSet, see text/collate/build/contract.go. + +type ContractTrieSet []struct{ L, H, N, I uint8 } + +// ctScanner is used to match a trie to an input sequence. +// A contraction may match a non-contiguous sequence of bytes in an input string. +// For example, if there is a contraction for , it should match +// the sequence , as combining_cedilla does +// not block combining_ring. +// ctScanner does not automatically skip over non-blocking non-starters, but rather +// retains the state of the last match and leaves it up to the user to continue +// the match at the appropriate points. +type ctScanner struct { + states ContractTrieSet + s []byte + n int + index int + pindex int + done bool +} + +type ctScannerString struct { + states ContractTrieSet + s string + n int + index int + pindex int + done bool +} + +func (t ContractTrieSet) scanner(index, n int, b []byte) ctScanner { + return ctScanner{s: b, states: t[index:], n: n} +} + +func (t ContractTrieSet) scannerString(index, n int, str string) ctScannerString { + return ctScannerString{s: str, states: t[index:], n: n} +} + +// result returns the offset i and bytes consumed p so far. If no suffix +// matched, i and p will be 0. +func (s *ctScanner) result() (i, p int) { + return s.index, s.pindex +} + +func (s *ctScannerString) result() (i, p int) { + return s.index, s.pindex +} + +const ( + final = 0 + noIndex = 0xFF +) + +// scan matches the longest suffix at the current location in the input +// and returns the number of bytes consumed. +func (s *ctScanner) scan(p int) int { + pr := p // the p at the rune start + str := s.s + states, n := s.states, s.n + for i := 0; i < n && p < len(str); { + e := states[i] + c := str[p] + // TODO: a significant number of contractions are of a form that + // cannot match discontiguous UTF-8 in a normalized string. We could let + // a negative value of e.n mean that we can set s.done = true and avoid + // the need for additional matches. + if c >= e.L { + if e.L == c { + p++ + if e.I != noIndex { + s.index = int(e.I) + s.pindex = p + } + if e.N != final { + i, states, n = 0, states[int(e.H)+n:], int(e.N) + if p >= len(str) || utf8.RuneStart(str[p]) { + s.states, s.n, pr = states, n, p + } + } else { + s.done = true + return p + } + continue + } else if e.N == final && c <= e.H { + p++ + s.done = true + s.index = int(c-e.L) + int(e.I) + s.pindex = p + return p + } + } + i++ + } + return pr +} + +// scan is a verbatim copy of ctScanner.scan. +func (s *ctScannerString) scan(p int) int { + pr := p // the p at the rune start + str := s.s + states, n := s.states, s.n + for i := 0; i < n && p < len(str); { + e := states[i] + c := str[p] + // TODO: a significant number of contractions are of a form that + // cannot match discontiguous UTF-8 in a normalized string. We could let + // a negative value of e.n mean that we can set s.done = true and avoid + // the need for additional matches. + if c >= e.L { + if e.L == c { + p++ + if e.I != noIndex { + s.index = int(e.I) + s.pindex = p + } + if e.N != final { + i, states, n = 0, states[int(e.H)+n:], int(e.N) + if p >= len(str) || utf8.RuneStart(str[p]) { + s.states, s.n, pr = states, n, p + } + } else { + s.done = true + return p + } + continue + } else if e.N == final && c <= e.H { + p++ + s.done = true + s.index = int(c-e.L) + int(e.I) + s.pindex = p + return p + } + } + i++ + } + return pr +} diff --git a/vendor/golang.org/x/text/internal/colltab/iter.go b/vendor/golang.org/x/text/internal/colltab/iter.go new file mode 100644 index 00000000000..c1b1ba81ef0 --- /dev/null +++ b/vendor/golang.org/x/text/internal/colltab/iter.go @@ -0,0 +1,178 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package colltab + +// An Iter incrementally converts chunks of the input text to collation +// elements, while ensuring that the collation elements are in normalized order +// (that is, they are in the order as if the input text were normalized first). +type Iter struct { + Weighter Weighter + Elems []Elem + // N is the number of elements in Elems that will not be reordered on + // subsequent iterations, N <= len(Elems). + N int + + bytes []byte + str string + // Because the Elems buffer may contain collation elements that are needed + // for look-ahead, we need two positions in the text (bytes or str): one for + // the end position in the text for the current iteration and one for the + // start of the next call to appendNext. + pEnd int // end position in text corresponding to N. + pNext int // pEnd <= pNext. +} + +// Reset sets the position in the current input text to p and discards any +// results obtained so far. +func (i *Iter) Reset(p int) { + i.Elems = i.Elems[:0] + i.N = 0 + i.pEnd = p + i.pNext = p +} + +// Len returns the length of the input text. +func (i *Iter) Len() int { + if i.bytes != nil { + return len(i.bytes) + } + return len(i.str) +} + +// Discard removes the collation elements up to N. +func (i *Iter) Discard() { + // TODO: change this such that only modifiers following starters will have + // to be copied. + i.Elems = i.Elems[:copy(i.Elems, i.Elems[i.N:])] + i.N = 0 +} + +// End returns the end position of the input text for which Next has returned +// results. +func (i *Iter) End() int { + return i.pEnd +} + +// SetInput resets i to input s. +func (i *Iter) SetInput(s []byte) { + i.bytes = s + i.str = "" + i.Reset(0) +} + +// SetInputString resets i to input s. +func (i *Iter) SetInputString(s string) { + i.str = s + i.bytes = nil + i.Reset(0) +} + +func (i *Iter) done() bool { + return i.pNext >= len(i.str) && i.pNext >= len(i.bytes) +} + +func (i *Iter) appendNext() bool { + if i.done() { + return false + } + var sz int + if i.bytes == nil { + i.Elems, sz = i.Weighter.AppendNextString(i.Elems, i.str[i.pNext:]) + } else { + i.Elems, sz = i.Weighter.AppendNext(i.Elems, i.bytes[i.pNext:]) + } + if sz == 0 { + sz = 1 + } + i.pNext += sz + return true +} + +// Next appends Elems to the internal array. On each iteration, it will either +// add starters or modifiers. In the majority of cases, an Elem with a primary +// value > 0 will have a CCC of 0. The CCC values of collation elements are also +// used to detect if the input string was not normalized and to adjust the +// result accordingly. +func (i *Iter) Next() bool { + if i.N == len(i.Elems) && !i.appendNext() { + return false + } + + // Check if the current segment starts with a starter. + prevCCC := i.Elems[len(i.Elems)-1].CCC() + if prevCCC == 0 { + i.N = len(i.Elems) + i.pEnd = i.pNext + return true + } else if i.Elems[i.N].CCC() == 0 { + // set i.N to only cover part of i.Elems for which prevCCC == 0 and + // use rest for the next call to next. + for i.N++; i.N < len(i.Elems) && i.Elems[i.N].CCC() == 0; i.N++ { + } + i.pEnd = i.pNext + return true + } + + // The current (partial) segment starts with modifiers. We need to collect + // all successive modifiers to ensure that they are normalized. + for { + p := len(i.Elems) + i.pEnd = i.pNext + if !i.appendNext() { + break + } + + if ccc := i.Elems[p].CCC(); ccc == 0 || len(i.Elems)-i.N > maxCombiningCharacters { + // Leave the starter for the next iteration. This ensures that we + // do not return sequences of collation elements that cross two + // segments. + // + // TODO: handle large number of combining characters by fully + // normalizing the input segment before iteration. This ensures + // results are consistent across the text repo. + i.N = p + return true + } else if ccc < prevCCC { + i.doNorm(p, ccc) // should be rare, never occurs for NFD and FCC. + } else { + prevCCC = ccc + } + } + + done := len(i.Elems) != i.N + i.N = len(i.Elems) + return done +} + +// nextNoNorm is the same as next, but does not "normalize" the collation +// elements. +func (i *Iter) nextNoNorm() bool { + // TODO: remove this function. Using this instead of next does not seem + // to improve performance in any significant way. We retain this until + // later for evaluation purposes. + if i.done() { + return false + } + i.appendNext() + i.N = len(i.Elems) + return true +} + +const maxCombiningCharacters = 30 + +// doNorm reorders the collation elements in i.Elems. +// It assumes that blocks of collation elements added with appendNext +// either start and end with the same CCC or start with CCC == 0. +// This allows for a single insertion point for the entire block. +// The correctness of this assumption is verified in builder.go. +func (i *Iter) doNorm(p int, ccc uint8) { + n := len(i.Elems) + k := p + for p--; p > i.N && ccc < i.Elems[p-1].CCC(); p-- { + } + i.Elems = append(i.Elems, i.Elems[p:k]...) + copy(i.Elems[p:], i.Elems[k:]) + i.Elems = i.Elems[:n] +} diff --git a/vendor/golang.org/x/text/internal/colltab/numeric.go b/vendor/golang.org/x/text/internal/colltab/numeric.go new file mode 100644 index 00000000000..53b819cc3d5 --- /dev/null +++ b/vendor/golang.org/x/text/internal/colltab/numeric.go @@ -0,0 +1,236 @@ +// Copyright 2014 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package colltab + +import ( + "unicode" + "unicode/utf8" +) + +// NewNumericWeighter wraps w to replace individual digits to sort based on their +// numeric value. +// +// Weighter w must have a free primary weight after the primary weight for 9. +// If this is not the case, numeric value will sort at the same primary level +// as the first primary sorting after 9. +func NewNumericWeighter(w Weighter) Weighter { + getElem := func(s string) Elem { + elems, _ := w.AppendNextString(nil, s) + return elems[0] + } + nine := getElem("9") + + // Numbers should order before zero, but the DUCET has no room for this. + // TODO: move before zero once we use fractional collation elements. + ns, _ := MakeElem(nine.Primary()+1, nine.Secondary(), int(nine.Tertiary()), 0) + + return &numericWeighter{ + Weighter: w, + + // We assume that w sorts digits of different kinds in order of numeric + // value and that the tertiary weight order is preserved. + // + // TODO: evaluate whether it is worth basing the ranges on the Elem + // encoding itself once the move to fractional weights is complete. + zero: getElem("0"), + zeroSpecialLo: getElem("0"), // U+FF10 FULLWIDTH DIGIT ZERO + zeroSpecialHi: getElem("₀"), // U+2080 SUBSCRIPT ZERO + nine: nine, + nineSpecialHi: getElem("₉"), // U+2089 SUBSCRIPT NINE + numberStart: ns, + } +} + +// A numericWeighter translates a stream of digits into a stream of weights +// representing the numeric value. +type numericWeighter struct { + Weighter + + // The Elems below all demarcate boundaries of specific ranges. With the + // current element encoding digits are in two ranges: normal (default + // tertiary value) and special. For most languages, digits have collation + // elements in the normal range. + // + // Note: the range tests are very specific for the element encoding used by + // this implementation. The tests in collate_test.go are designed to fail + // if this code is not updated when an encoding has changed. + + zero Elem // normal digit zero + zeroSpecialLo Elem // special digit zero, low tertiary value + zeroSpecialHi Elem // special digit zero, high tertiary value + nine Elem // normal digit nine + nineSpecialHi Elem // special digit nine + numberStart Elem +} + +// AppendNext calls the namesake of the underlying weigher, but replaces single +// digits with weights representing their value. +func (nw *numericWeighter) AppendNext(buf []Elem, s []byte) (ce []Elem, n int) { + ce, n = nw.Weighter.AppendNext(buf, s) + nc := numberConverter{ + elems: buf, + w: nw, + b: s, + } + isZero, ok := nc.checkNextDigit(ce) + if !ok { + return ce, n + } + // ce might have been grown already, so take it instead of buf. + nc.init(ce, len(buf), isZero) + for n < len(s) { + ce, sz := nw.Weighter.AppendNext(nc.elems, s[n:]) + nc.b = s + n += sz + if !nc.update(ce) { + break + } + } + return nc.result(), n +} + +// AppendNextString calls the namesake of the underlying weigher, but replaces +// single digits with weights representing their value. +func (nw *numericWeighter) AppendNextString(buf []Elem, s string) (ce []Elem, n int) { + ce, n = nw.Weighter.AppendNextString(buf, s) + nc := numberConverter{ + elems: buf, + w: nw, + s: s, + } + isZero, ok := nc.checkNextDigit(ce) + if !ok { + return ce, n + } + nc.init(ce, len(buf), isZero) + for n < len(s) { + ce, sz := nw.Weighter.AppendNextString(nc.elems, s[n:]) + nc.s = s + n += sz + if !nc.update(ce) { + break + } + } + return nc.result(), n +} + +type numberConverter struct { + w *numericWeighter + + elems []Elem + nDigits int + lenIndex int + + s string // set if the input was of type string + b []byte // set if the input was of type []byte +} + +// init completes initialization of a numberConverter and prepares it for adding +// more digits. elems is assumed to have a digit starting at oldLen. +func (nc *numberConverter) init(elems []Elem, oldLen int, isZero bool) { + // Insert a marker indicating the start of a number and a placeholder + // for the number of digits. + if isZero { + elems = append(elems[:oldLen], nc.w.numberStart, 0) + } else { + elems = append(elems, 0, 0) + copy(elems[oldLen+2:], elems[oldLen:]) + elems[oldLen] = nc.w.numberStart + elems[oldLen+1] = 0 + + nc.nDigits = 1 + } + nc.elems = elems + nc.lenIndex = oldLen + 1 +} + +// checkNextDigit reports whether bufNew adds a single digit relative to the old +// buffer. If it does, it also reports whether this digit is zero. +func (nc *numberConverter) checkNextDigit(bufNew []Elem) (isZero, ok bool) { + if len(nc.elems) >= len(bufNew) { + return false, false + } + e := bufNew[len(nc.elems)] + if e < nc.w.zeroSpecialLo || nc.w.nine < e { + // Not a number. + return false, false + } + if e < nc.w.zero { + if e > nc.w.nineSpecialHi { + // Not a number. + return false, false + } + if !nc.isDigit() { + return false, false + } + isZero = e <= nc.w.zeroSpecialHi + } else { + // This is the common case if we encounter a digit. + isZero = e == nc.w.zero + } + // Test the remaining added collation elements have a zero primary value. + if n := len(bufNew) - len(nc.elems); n > 1 { + for i := len(nc.elems) + 1; i < len(bufNew); i++ { + if bufNew[i].Primary() != 0 { + return false, false + } + } + // In some rare cases, collation elements will encode runes in + // unicode.No as a digit. For example Ethiopic digits (U+1369 - U+1371) + // are not in Nd. Also some digits that clearly belong in unicode.No, + // like U+0C78 TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR, have + // collation elements indistinguishable from normal digits. + // Unfortunately, this means we need to make this check for nearly all + // non-Latin digits. + // + // TODO: check the performance impact and find something better if it is + // an issue. + if !nc.isDigit() { + return false, false + } + } + return isZero, true +} + +func (nc *numberConverter) isDigit() bool { + if nc.b != nil { + r, _ := utf8.DecodeRune(nc.b) + return unicode.In(r, unicode.Nd) + } + r, _ := utf8.DecodeRuneInString(nc.s) + return unicode.In(r, unicode.Nd) +} + +// We currently support a maximum of about 2M digits (the number of primary +// values). Such numbers will compare correctly against small numbers, but their +// comparison against other large numbers is undefined. +// +// TODO: define a proper fallback, such as comparing large numbers textually or +// actually allowing numbers of unlimited length. +// +// TODO: cap this to a lower number (like 100) and maybe allow a larger number +// in an option? +const maxDigits = 1<= firstHangul && r <= lastHangul { + // TODO: performance can be considerably improved here. + n = sz + var buf [16]byte // Used for decomposing Hangul. + for b := src.nfd(buf[:0], hangulSize); len(b) > 0; b = b[sz:] { + ce, sz = t.Index.lookup(b) + w = append(w, ce) + } + return w, n + } + ce = makeImplicitCE(implicitPrimary(r)) + } + w = append(w, ce) + } else if tp == ceExpansionIndex { + w = t.appendExpansion(w, ce) + } else if tp == ceContractionIndex { + n := 0 + src.tail(sz) + if src.bytes == nil { + w, n = t.matchContractionString(w, ce, src.str) + } else { + w, n = t.matchContraction(w, ce, src.bytes) + } + sz += n + } else if tp == ceDecompose { + // Decompose using NFKD and replace tertiary weights. + t1, t2 := splitDecompose(ce) + i := len(w) + nfkd := src.properties(norm.NFKD).Decomposition() + for p := 0; len(nfkd) > 0; nfkd = nfkd[p:] { + w, p = t.appendNext(w, source{bytes: nfkd}) + } + w[i] = w[i].updateTertiary(t1) + if i++; i < len(w) { + w[i] = w[i].updateTertiary(t2) + for i++; i < len(w); i++ { + w[i] = w[i].updateTertiary(maxTertiary) + } + } + } + return w, sz +} + +func (t *Table) appendExpansion(w []Elem, ce Elem) []Elem { + i := splitExpandIndex(ce) + n := int(t.ExpandElem[i]) + i++ + for _, ce := range t.ExpandElem[i : i+n] { + w = append(w, Elem(ce)) + } + return w +} + +func (t *Table) matchContraction(w []Elem, ce Elem, suffix []byte) ([]Elem, int) { + index, n, offset := splitContractIndex(ce) + + scan := t.ContractTries.scanner(index, n, suffix) + buf := [norm.MaxSegmentSize]byte{} + bufp := 0 + p := scan.scan(0) + + if !scan.done && p < len(suffix) && suffix[p] >= utf8.RuneSelf { + // By now we should have filtered most cases. + p0 := p + bufn := 0 + rune := norm.NFD.Properties(suffix[p:]) + p += rune.Size() + if rune.LeadCCC() != 0 { + prevCC := rune.TrailCCC() + // A gap may only occur in the last normalization segment. + // This also ensures that len(scan.s) < norm.MaxSegmentSize. + if end := norm.NFD.FirstBoundary(suffix[p:]); end != -1 { + scan.s = suffix[:p+end] + } + for p < len(suffix) && !scan.done && suffix[p] >= utf8.RuneSelf { + rune = norm.NFD.Properties(suffix[p:]) + if ccc := rune.LeadCCC(); ccc == 0 || prevCC >= ccc { + break + } + prevCC = rune.TrailCCC() + if pp := scan.scan(p); pp != p { + // Copy the interstitial runes for later processing. + bufn += copy(buf[bufn:], suffix[p0:p]) + if scan.pindex == pp { + bufp = bufn + } + p, p0 = pp, pp + } else { + p += rune.Size() + } + } + } + } + // Append weights for the matched contraction, which may be an expansion. + i, n := scan.result() + ce = Elem(t.ContractElem[i+offset]) + if ce.ctype() == ceNormal { + w = append(w, ce) + } else { + w = t.appendExpansion(w, ce) + } + // Append weights for the runes in the segment not part of the contraction. + for b, p := buf[:bufp], 0; len(b) > 0; b = b[p:] { + w, p = t.appendNext(w, source{bytes: b}) + } + return w, n +} + +// TODO: unify the two implementations. This is best done after first simplifying +// the algorithm taking into account the inclusion of both NFC and NFD forms +// in the table. +func (t *Table) matchContractionString(w []Elem, ce Elem, suffix string) ([]Elem, int) { + index, n, offset := splitContractIndex(ce) + + scan := t.ContractTries.scannerString(index, n, suffix) + buf := [norm.MaxSegmentSize]byte{} + bufp := 0 + p := scan.scan(0) + + if !scan.done && p < len(suffix) && suffix[p] >= utf8.RuneSelf { + // By now we should have filtered most cases. + p0 := p + bufn := 0 + rune := norm.NFD.PropertiesString(suffix[p:]) + p += rune.Size() + if rune.LeadCCC() != 0 { + prevCC := rune.TrailCCC() + // A gap may only occur in the last normalization segment. + // This also ensures that len(scan.s) < norm.MaxSegmentSize. + if end := norm.NFD.FirstBoundaryInString(suffix[p:]); end != -1 { + scan.s = suffix[:p+end] + } + for p < len(suffix) && !scan.done && suffix[p] >= utf8.RuneSelf { + rune = norm.NFD.PropertiesString(suffix[p:]) + if ccc := rune.LeadCCC(); ccc == 0 || prevCC >= ccc { + break + } + prevCC = rune.TrailCCC() + if pp := scan.scan(p); pp != p { + // Copy the interstitial runes for later processing. + bufn += copy(buf[bufn:], suffix[p0:p]) + if scan.pindex == pp { + bufp = bufn + } + p, p0 = pp, pp + } else { + p += rune.Size() + } + } + } + } + // Append weights for the matched contraction, which may be an expansion. + i, n := scan.result() + ce = Elem(t.ContractElem[i+offset]) + if ce.ctype() == ceNormal { + w = append(w, ce) + } else { + w = t.appendExpansion(w, ce) + } + // Append weights for the runes in the segment not part of the contraction. + for b, p := buf[:bufp], 0; len(b) > 0; b = b[p:] { + w, p = t.appendNext(w, source{bytes: b}) + } + return w, n +} diff --git a/vendor/golang.org/x/text/internal/colltab/trie.go b/vendor/golang.org/x/text/internal/colltab/trie.go new file mode 100644 index 00000000000..a0eaa0d23be --- /dev/null +++ b/vendor/golang.org/x/text/internal/colltab/trie.go @@ -0,0 +1,159 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// The trie in this file is used to associate the first full character in an +// UTF-8 string to a collation element. All but the last byte in a UTF-8 byte +// sequence are used to lookup offsets in the index table to be used for the +// next byte. The last byte is used to index into a table of collation elements. +// For a full description, see go.text/collate/build/trie.go. + +package colltab + +const blockSize = 64 + +type Trie struct { + Index0 []uint16 // index for first byte (0xC0-0xFF) + Values0 []uint32 // index for first byte (0x00-0x7F) + Index []uint16 + Values []uint32 +} + +const ( + t1 = 0x00 // 0000 0000 + tx = 0x80 // 1000 0000 + t2 = 0xC0 // 1100 0000 + t3 = 0xE0 // 1110 0000 + t4 = 0xF0 // 1111 0000 + t5 = 0xF8 // 1111 1000 + t6 = 0xFC // 1111 1100 + te = 0xFE // 1111 1110 +) + +func (t *Trie) lookupValue(n uint16, b byte) Elem { + return Elem(t.Values[int(n)<<6+int(b)]) +} + +// lookup returns the trie value for the first UTF-8 encoding in s and +// the width in bytes of this encoding. The size will be 0 if s does not +// hold enough bytes to complete the encoding. len(s) must be greater than 0. +func (t *Trie) lookup(s []byte) (v Elem, sz int) { + c0 := s[0] + switch { + case c0 < tx: + return Elem(t.Values0[c0]), 1 + case c0 < t2: + return 0, 1 + case c0 < t3: + if len(s) < 2 { + return 0, 0 + } + i := t.Index0[c0] + c1 := s[1] + if c1 < tx || t2 <= c1 { + return 0, 1 + } + return t.lookupValue(i, c1), 2 + case c0 < t4: + if len(s) < 3 { + return 0, 0 + } + i := t.Index0[c0] + c1 := s[1] + if c1 < tx || t2 <= c1 { + return 0, 1 + } + o := int(i)<<6 + int(c1) + i = t.Index[o] + c2 := s[2] + if c2 < tx || t2 <= c2 { + return 0, 2 + } + return t.lookupValue(i, c2), 3 + case c0 < t5: + if len(s) < 4 { + return 0, 0 + } + i := t.Index0[c0] + c1 := s[1] + if c1 < tx || t2 <= c1 { + return 0, 1 + } + o := int(i)<<6 + int(c1) + i = t.Index[o] + c2 := s[2] + if c2 < tx || t2 <= c2 { + return 0, 2 + } + o = int(i)<<6 + int(c2) + i = t.Index[o] + c3 := s[3] + if c3 < tx || t2 <= c3 { + return 0, 3 + } + return t.lookupValue(i, c3), 4 + } + // Illegal rune + return 0, 1 +} + +// The body of lookupString is a verbatim copy of that of lookup. +func (t *Trie) lookupString(s string) (v Elem, sz int) { + c0 := s[0] + switch { + case c0 < tx: + return Elem(t.Values0[c0]), 1 + case c0 < t2: + return 0, 1 + case c0 < t3: + if len(s) < 2 { + return 0, 0 + } + i := t.Index0[c0] + c1 := s[1] + if c1 < tx || t2 <= c1 { + return 0, 1 + } + return t.lookupValue(i, c1), 2 + case c0 < t4: + if len(s) < 3 { + return 0, 0 + } + i := t.Index0[c0] + c1 := s[1] + if c1 < tx || t2 <= c1 { + return 0, 1 + } + o := int(i)<<6 + int(c1) + i = t.Index[o] + c2 := s[2] + if c2 < tx || t2 <= c2 { + return 0, 2 + } + return t.lookupValue(i, c2), 3 + case c0 < t5: + if len(s) < 4 { + return 0, 0 + } + i := t.Index0[c0] + c1 := s[1] + if c1 < tx || t2 <= c1 { + return 0, 1 + } + o := int(i)<<6 + int(c1) + i = t.Index[o] + c2 := s[2] + if c2 < tx || t2 <= c2 { + return 0, 2 + } + o = int(i)<<6 + int(c2) + i = t.Index[o] + c3 := s[3] + if c3 < tx || t2 <= c3 { + return 0, 3 + } + return t.lookupValue(i, c3), 4 + } + // Illegal rune + return 0, 1 +} diff --git a/vendor/golang.org/x/text/internal/colltab/weighter.go b/vendor/golang.org/x/text/internal/colltab/weighter.go new file mode 100644 index 00000000000..f1ec45fb509 --- /dev/null +++ b/vendor/golang.org/x/text/internal/colltab/weighter.go @@ -0,0 +1,31 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package colltab // import "golang.org/x/text/internal/colltab" + +// A Weighter can be used as a source for Collator and Searcher. +type Weighter interface { + // Start finds the start of the segment that includes position p. + Start(p int, b []byte) int + + // StartString finds the start of the segment that includes position p. + StartString(p int, s string) int + + // AppendNext appends Elems to buf corresponding to the longest match + // of a single character or contraction from the start of s. + // It returns the new buf and the number of bytes consumed. + AppendNext(buf []Elem, s []byte) (ce []Elem, n int) + + // AppendNextString appends Elems to buf corresponding to the longest match + // of a single character or contraction from the start of s. + // It returns the new buf and the number of bytes consumed. + AppendNextString(buf []Elem, s string) (ce []Elem, n int) + + // Domain returns a slice of all single characters and contractions for which + // collation elements are defined in this table. + Domain() []string + + // Top returns the highest variable primary value. + Top() uint32 +} diff --git a/vendor/golang.org/x/text/internal/internal.go b/vendor/golang.org/x/text/internal/internal.go new file mode 100644 index 00000000000..3cddbbdda8c --- /dev/null +++ b/vendor/golang.org/x/text/internal/internal.go @@ -0,0 +1,49 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Package internal contains non-exported functionality that are used by +// packages in the text repository. +package internal // import "golang.org/x/text/internal" + +import ( + "sort" + + "golang.org/x/text/language" +) + +// SortTags sorts tags in place. +func SortTags(tags []language.Tag) { + sort.Sort(sorter(tags)) +} + +type sorter []language.Tag + +func (s sorter) Len() int { + return len(s) +} + +func (s sorter) Swap(i, j int) { + s[i], s[j] = s[j], s[i] +} + +func (s sorter) Less(i, j int) bool { + return s[i].String() < s[j].String() +} + +// UniqueTags sorts and filters duplicate tags in place and returns a slice with +// only unique tags. +func UniqueTags(tags []language.Tag) []language.Tag { + if len(tags) <= 1 { + return tags + } + SortTags(tags) + k := 0 + for i := 1; i < len(tags); i++ { + if tags[k].String() < tags[i].String() { + k++ + tags[k] = tags[i] + } + } + return tags[:k+1] +} diff --git a/vendor/golang.org/x/text/internal/match.go b/vendor/golang.org/x/text/internal/match.go new file mode 100644 index 00000000000..1cc004a6d5f --- /dev/null +++ b/vendor/golang.org/x/text/internal/match.go @@ -0,0 +1,67 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package internal + +// This file contains matchers that implement CLDR inheritance. +// +// See https://unicode.org/reports/tr35/#Locale_Inheritance. +// +// Some of the inheritance described in this document is already handled by +// the cldr package. + +import ( + "golang.org/x/text/language" +) + +// TODO: consider if (some of the) matching algorithm needs to be public after +// getting some feel about what is generic and what is specific. + +// NewInheritanceMatcher returns a matcher that matches based on the inheritance +// chain. +// +// The matcher uses canonicalization and the parent relationship to find a +// match. The resulting match will always be either Und or a language with the +// same language and script as the requested language. It will not match +// languages for which there is understood to be mutual or one-directional +// intelligibility. +// +// A Match will indicate an Exact match if the language matches after +// canonicalization and High if the matched tag is a parent. +func NewInheritanceMatcher(t []language.Tag) *InheritanceMatcher { + tags := &InheritanceMatcher{make(map[language.Tag]int)} + for i, tag := range t { + ct, err := language.All.Canonicalize(tag) + if err != nil { + ct = tag + } + tags.index[ct] = i + } + return tags +} + +type InheritanceMatcher struct { + index map[language.Tag]int +} + +func (m InheritanceMatcher) Match(want ...language.Tag) (language.Tag, int, language.Confidence) { + for _, t := range want { + ct, err := language.All.Canonicalize(t) + if err != nil { + ct = t + } + conf := language.Exact + for { + if index, ok := m.index[ct]; ok { + return ct, index, conf + } + if ct == language.Und { + break + } + ct = ct.Parent() + conf = language.High + } + } + return language.Und, 0, language.No +} diff --git a/vendor/vendor.json b/vendor/vendor.json index e9de9698556..1b90ff96ecb 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -551,6 +551,18 @@ "revision": "4e0d7dc8888fbb59764060e99b7b68e77a6f9698", "revisionTime": "2018-10-14T14:49:52Z" }, + { + "checksumSHA1": "6y/Ht8J58EotTDBEIuE3+s4AnL8=", + "path": "github.com/dlclark/regexp2", + "revision": "7632a260cbaf5e7594fc1544a503456ecd0827f1", + "revisionTime": "2017-10-09T02:06:23Z" + }, + { + "checksumSHA1": "k0JXX65FspyueQ8/1i50DGRiCUk=", + "path": "github.com/dlclark/regexp2/syntax", + "revision": "7632a260cbaf5e7594fc1544a503456ecd0827f1", + "revisionTime": "2017-10-09T02:06:23Z" + }, { "checksumSHA1": "Gj+xR1VgFKKmFXYOJMnAczC3Znk=", "path": "github.com/docker/distribution/digestset", @@ -771,6 +783,41 @@ "revision": "aabc10ec26b754e797f9028f4589c5b7bd90dc20", "revisionTime": "2016-07-08T17:25:13Z" }, + { + "checksumSHA1": "tSXR3pIWOvVv0vd1HgciU6/xQZ4=", + "origin": "github.com/andrewkroh/goja", + "path": "github.com/dop251/goja", + "revision": "dd2ac4456e2073f116d6b88741d513addabe0326", + "revisionTime": "2019-01-28T17:26:24Z" + }, + { + "checksumSHA1": "M7PWqP2fxWLpKwoSTa9UEsjXO84=", + "origin": "github.com/andrewkroh/goja/ast", + "path": "github.com/dop251/goja/ast", + "revision": "dd2ac4456e2073f116d6b88741d513addabe0326", + "revisionTime": "2019-01-28T17:26:24Z" + }, + { + "checksumSHA1": "YC5Zv9wxNXg5keMD1TaT1bxi7RM=", + "origin": "github.com/andrewkroh/goja/file", + "path": "github.com/dop251/goja/file", + "revision": "dd2ac4456e2073f116d6b88741d513addabe0326", + "revisionTime": "2019-01-28T17:26:24Z" + }, + { + "checksumSHA1": "oR98Abi3BZfT5dw02gDIWdZwvFc=", + "origin": "github.com/andrewkroh/goja/parser", + "path": "github.com/dop251/goja/parser", + "revision": "dd2ac4456e2073f116d6b88741d513addabe0326", + "revisionTime": "2019-01-28T17:26:24Z" + }, + { + "checksumSHA1": "e5dVrjv6qkrLCwv6C849Em3a35I=", + "origin": "github.com/andrewkroh/goja/token", + "path": "github.com/dop251/goja/token", + "revision": "dd2ac4456e2073f116d6b88741d513addabe0326", + "revisionTime": "2019-01-28T17:26:24Z" + }, { "checksumSHA1": "rhLUtXvcmouYuBwOq9X/nYKzvNg=", "path": "github.com/dustin/go-humanize", @@ -1538,6 +1585,18 @@ "revision": "de8695c8edbf8236f30d6e1376e20b198a028d42", "revisionTime": "2017-02-09T15:13:32Z" }, + { + "checksumSHA1": "OFaReqy4hyrLlTTYFmcqkvidHsQ=", + "path": "github.com/go-sourcemap/sourcemap", + "revision": "b019cc30c1eaa584753491b0d8f8c1534bf1eb44", + "revisionTime": "2018-01-19T11:52:46Z" + }, + { + "checksumSHA1": "0E8fllZSmEqSDpUEKUZ+GyyrK5k=", + "path": "github.com/go-sourcemap/sourcemap/internal/base64vlq", + "revision": "b019cc30c1eaa584753491b0d8f8c1534bf1eb44", + "revisionTime": "2018-01-19T11:52:46Z" + }, { "checksumSHA1": "VkwT/BxZIqv+rCFwz3jjQ08IRis=", "path": "github.com/gocarina/gocsv", @@ -2281,6 +2340,18 @@ "revision": "4e4a3210bb54bb31f6ab2cdca2edcc0b50c420c1", "revisionTime": "2018-02-04T03:07:25Z" }, + { + "checksumSHA1": "ItwmJhXx51BM0Yl7uQS+sZ9bH8Q=", + "path": "golang.org/x/text/cases", + "revision": "6c92c7dc7f53607809182301b96e4cc1975143f1", + "revisionTime": "2018-12-15T14:04:16Z" + }, + { + "checksumSHA1": "dqBAMCjIiuKfNi6PIDw3Waqq1Fw=", + "path": "golang.org/x/text/collate", + "revision": "6c92c7dc7f53607809182301b96e4cc1975143f1", + "revisionTime": "2018-12-15T14:04:16Z" + }, { "checksumSHA1": "Mr4ur60bgQJnQFfJY0dGtwWwMPE=", "path": "golang.org/x/text/encoding", @@ -2341,6 +2412,18 @@ "revision": "4e4a3210bb54bb31f6ab2cdca2edcc0b50c420c1", "revisionTime": "2018-02-04T03:07:25Z" }, + { + "checksumSHA1": "tt62GtI7eLTUsBCfpMRoymqWP88=", + "path": "golang.org/x/text/internal", + "revision": "6c92c7dc7f53607809182301b96e4cc1975143f1", + "revisionTime": "2018-12-15T14:04:16Z" + }, + { + "checksumSHA1": "JRMA4AegnIJMTlFmQArcQgpNpnU=", + "path": "golang.org/x/text/internal/colltab", + "revision": "6c92c7dc7f53607809182301b96e4cc1975143f1", + "revisionTime": "2018-12-15T14:04:16Z" + }, { "checksumSHA1": "hyNCcTwMQnV6/MK8uUW9E5H0J0M=", "path": "golang.org/x/text/internal/tag", diff --git a/winlogbeat/cmd/root.go b/winlogbeat/cmd/root.go index ab075711486..437726166e4 100644 --- a/winlogbeat/cmd/root.go +++ b/winlogbeat/cmd/root.go @@ -18,10 +18,13 @@ package cmd import ( - cmd "github.com/elastic/beats/libbeat/cmd" + "github.com/elastic/beats/libbeat/cmd" "github.com/elastic/beats/libbeat/cmd/instance" + "github.com/elastic/beats/winlogbeat/beater" + + // Import the script processor. + _ "github.com/elastic/beats/libbeat/processors/script" ) -import "github.com/elastic/beats/winlogbeat/beater" // Name of this beat var Name = "winlogbeat" From 9fb274aabb3e0ea0db0456a8f094ccc1ac7648d1 Mon Sep 17 00:00:00 2001 From: Andrew Kroh Date: Fri, 15 Mar 2019 08:32:42 -0400 Subject: [PATCH 213/332] Use PYTHON_EXE env var as the python interpreter (#11212) Setting the PYTHON_EXE environment variable causes new Python virtual environments to be created using the specified interpreter. Both `make` and `mage` honor the variable. For example, `PYTHON_EXE=python2.7 make python-env`. --- CHANGELOG-developer.next.asciidoc | 2 ++ dev-tools/mage/pytest.go | 11 +++++++++-- libbeat/scripts/Makefile | 2 +- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/CHANGELOG-developer.next.asciidoc b/CHANGELOG-developer.next.asciidoc index ee7bf7729c1..0e01df75470 100644 --- a/CHANGELOG-developer.next.asciidoc +++ b/CHANGELOG-developer.next.asciidoc @@ -37,3 +37,5 @@ The list below covers the major changes between 7.0.0-beta1 and master only. - Support for Logger in the Metricset base instance. {pull}11106[11106] - Introduce processing.Support to instance.Setting. This allows Beats to fully modify the event processing. {pull}10801[10801] - Filebeat modules can now use ingest pipelines in YAML format. {pull}11209[11209] +- Added support for using PYTHON_EXE to control what Python interpreter is used + by `make` and `mage`. Example: `export PYTHON_EXE=python2.7`. {pull}11212[11212] diff --git a/dev-tools/mage/pytest.go b/dev-tools/mage/pytest.go index 9aaf8a4b4e8..cdcce4c6166 100644 --- a/dev-tools/mage/pytest.go +++ b/dev-tools/mage/pytest.go @@ -167,10 +167,17 @@ func PythonVirtualenv() (string, error) { return pythonVirtualenvDir, nil } + // If set use PYTHON_EXE env var as the python interpreter. + var args []string + if pythonExe := os.Getenv("PYTHON_EXE"); pythonExe != "" { + args = append(args, "-p", pythonExe) + } + args = append(args, ve) + // Execute virtualenv. if _, err := os.Stat(ve); err != nil { // Run virtualenv if the dir does not exist. - if err := sh.Run("virtualenv", ve); err != nil { + if err := sh.Run("virtualenv", args...); err != nil { return "", err } } @@ -181,7 +188,7 @@ func PythonVirtualenv() (string, error) { } pip := virtualenvPath(ve, "pip") - args := []string{"install"} + args = []string{"install"} if !mg.Verbose() { args = append(args, "--quiet") } diff --git a/libbeat/scripts/Makefile b/libbeat/scripts/Makefile index 5ab4a3e7233..a007eca7b29 100755 --- a/libbeat/scripts/Makefile +++ b/libbeat/scripts/Makefile @@ -250,7 +250,7 @@ load-tests: ## @testing Runs load tests # Sets up the virtual python environment .PHONY: python-env python-env: ${ES_BEATS}/libbeat/tests/system/requirements.txt - @test -d ${PYTHON_ENV} || virtualenv ${VIRTUALENV_PARAMS} ${PYTHON_ENV} + @test -d ${PYTHON_ENV} || virtualenv $(if ${PYTHON_EXE},-p ${PYTHON_EXE}) ${VIRTUALENV_PARAMS} ${PYTHON_ENV} @. ${PYTHON_ENV}/bin/activate && pip install ${PIP_INSTALL_PARAMS} -q --upgrade pip ; \ if [ -a ./tests/system/requirements.txt ] && [ ! ${ES_BEATS}/libbeat/tests/system/requirements.txt -ef ./tests/system/requirements.txt ] ; then \ . ${PYTHON_ENV}/bin/activate && pip install ${PIP_INSTALL_PARAMS} -qUr ${ES_BEATS}/libbeat/tests/system/requirements.txt -Ur ./tests/system/requirements.txt ; \ From 67ebca4b197d9342bc99ddc1729662ac4dafb301 Mon Sep 17 00:00:00 2001 From: Shaunak Kashyap Date: Fri, 15 Mar 2019 11:33:27 -0700 Subject: [PATCH 214/332] Log Kibana GET /api/status response on test failure (#11265) To help debug https://github.com/elastic/beats/issues/11261. --- metricbeat/module/kibana/stats/stats_integration_test.go | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/metricbeat/module/kibana/stats/stats_integration_test.go b/metricbeat/module/kibana/stats/stats_integration_test.go index f8cd7b9f528..e3f6ef2d0c3 100644 --- a/metricbeat/module/kibana/stats/stats_integration_test.go +++ b/metricbeat/module/kibana/stats/stats_integration_test.go @@ -40,7 +40,7 @@ func TestFetch(t *testing.T) { config := mtest.GetConfig("stats") host := config["hosts"].([]string)[0] - version, err := getKibanaVersion(host) + version, err := getKibanaVersion(t, host) if err != nil { t.Fatal("getting kibana version", err) } @@ -71,7 +71,7 @@ func TestData(t *testing.T) { config := mtest.GetConfig("stats") host := config["hosts"].([]string)[0] - version, err := getKibanaVersion(host) + version, err := getKibanaVersion(t, host) if err != nil { t.Fatal("getting kibana version", err) } @@ -92,7 +92,7 @@ func TestData(t *testing.T) { } } -func getKibanaVersion(kibanaHostPort string) (*common.Version, error) { +func getKibanaVersion(t *testing.T, kibanaHostPort string) (*common.Version, error) { resp, err := http.Get("http://" + kibanaHostPort + "/api/status") if err != nil { return nil, err @@ -112,6 +112,7 @@ func getKibanaVersion(kibanaHostPort string) (*common.Version, error) { version, err := data.GetValue("version.number") if err != nil { + t.Log("Kibana GET /api/status response:", string(body)) return nil, err } From 1f68e2b0f8968f07b33147ef80d4d050720dadf6 Mon Sep 17 00:00:00 2001 From: kaiyan-sheng Date: Fri, 15 Mar 2019 13:21:35 -0600 Subject: [PATCH 215/332] Change URLPATH grok pattern to support brackets (#11252) * Change URLPATH grok pattern to support [] * Update URIPATHWITHBRACKET with the current URIPATH * Add changelog --- CHANGELOG.next.asciidoc | 1 + .../module/iis/access/ingest/default.json | 7 ++- filebeat/module/iis/access/test/test.log | 2 + .../iis/access/test/test.log-expected.json | 58 +++++++++++++++++++ 4 files changed, 66 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index bd7a850a489..90dcb7e94fa 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -168,6 +168,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Fix a bug when converting NetFlow fields to snake_case. {pull}10950[10950] - Add on_failure handler for Zeek ingest pipelines. Fix one field name error for notice and add an additional test case. {issue}11004[11004] {pull}11105[11105] +- Change URLPATH grok pattern to support brackets. {issue}11135[11135] {pull}11252[11252] *Heartbeat* diff --git a/filebeat/module/iis/access/ingest/default.json b/filebeat/module/iis/access/ingest/default.json index 32170189a75..fc4ad753828 100644 --- a/filebeat/module/iis/access/ingest/default.json +++ b/filebeat/module/iis/access/ingest/default.json @@ -4,11 +4,14 @@ "grok": { "field": "message", "patterns":[ - "%{TIMESTAMP_ISO8601:iis.access.time} %{IPORHOST:destination.address} %{WORD:http.request.method} %{URIPATH:url.path} %{NOTSPACE:url.query} %{NUMBER:destination.port:long} %{NOTSPACE:user.name} %{IPORHOST:source.address} %{NOTSPACE:user_agent.original} %{NOTSPACE:http.request.referrer} %{NUMBER:http.response.status_code:long} %{NUMBER:iis.access.sub_status:long} %{NUMBER:iis.access.win32_status:long} %{NUMBER:temp.duration:long}", + "%{TIMESTAMP_ISO8601:iis.access.time} %{IPORHOST:destination.address} %{WORD:http.request.method} %{URIPATHWITHBRACKET:url.path} %{NOTSPACE:url.query} %{NUMBER:destination.port:long} %{NOTSPACE:user.name} %{IPORHOST:source.address} %{NOTSPACE:user_agent.original} %{NOTSPACE:http.request.referrer} %{NUMBER:http.response.status_code:long} %{NUMBER:iis.access.sub_status:long} %{NUMBER:iis.access.win32_status:long} %{NUMBER:temp.duration:long}", "%{TIMESTAMP_ISO8601:iis.access.time} %{NOTSPACE:iis.access.site_name} %{WORD:http.request.method} %{URIPATH:url.path} %{NOTSPACE:url.query} %{NUMBER:destination.port:long} %{NOTSPACE:user.name} %{IPORHOST:source.address} %{NOTSPACE:user_agent.original} %{NOTSPACE:iis.access.cookie} %{NOTSPACE:http.request.referrer} %{NOTSPACE:destination.domain} %{NUMBER:http.response.status_code:long} %{NUMBER:iis.access.sub_status:long} %{NUMBER:iis.access.win32_status:long} %{NUMBER:http.response.body.bytes:long} %{NUMBER:http.request.body.bytes:long} %{NUMBER:temp.duration:long}", "%{TIMESTAMP_ISO8601:iis.access.time} %{NOTSPACE:iis.access.site_name} %{NOTSPACE:iis.access.server_name} %{IPORHOST:destination.address} %{WORD:http.request.method} %{URIPATH:url.path} %{NOTSPACE:url.query} %{NUMBER:destination.port:long} %{NOTSPACE:user.name} %{IPORHOST:source.address} HTTP/%{NUMBER:http.version} %{NOTSPACE:user_agent.original} %{NOTSPACE:iis.access.cookie} %{NOTSPACE:http.request.referrer} %{NOTSPACE:destination.domain} %{NUMBER:http.response.status_code:long} %{NUMBER:iis.access.sub_status:long} %{NUMBER:iis.access.win32_status:long} %{NUMBER:http.response.body.bytes:long} %{NUMBER:http.request.body.bytes:long} %{NUMBER:temp.duration:long}", "%{TIMESTAMP_ISO8601:iis.access.time} \\[%{IPORHOST:destination.address}\\]\\(http://%{IPORHOST:destination.address}\\) %{WORD:http.request.method} %{URIPATH:url.path} %{NOTSPACE:url.query} %{NUMBER:destination.port:long} %{NOTSPACE:user.name} \\[%{IPORHOST:source.address}\\]\\(http://%{IPORHOST:source.address}\\) %{NOTSPACE:user_agent.original} %{NUMBER:http.response.status_code:long} %{NUMBER:iis.access.sub_status:long} %{NUMBER:iis.access.win32_status:long} %{NUMBER:temp.duration:long}" - ], + ], + "pattern_definitions": { + "URIPATHWITHBRACKET": "(?:/[A-Za-z0-9$.+!*'(){},~:;=@#%&_\\-\\[\\]]*)+" + }, "ignore_missing": true } }, { diff --git a/filebeat/module/iis/access/test/test.log b/filebeat/module/iis/access/test/test.log index d5f30c9f0c2..c054eaf6557 100644 --- a/filebeat/module/iis/access/test/test.log +++ b/filebeat/module/iis/access/test/test.log @@ -13,3 +13,5 @@ #Date: 2018-01-01 10:11:12 #Fields: date time s-sitename s-computername s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs-version cs(User-Agent) cs(Cookie) cs(Referer) cs-host sc-status sc-substatus sc-win32-status sc-bytes cs-bytes time-taken 2018-01-01 10:11:12 W3SVC1 MACHINE-NAME 127.0.0.1 GET / - 80 - 85.181.35.98 HTTP/1.1 Mozilla/5.0+(Macintosh;+Intel+Mac+OS+X+10_14_0)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/70.0.3538.102+Safari/537.36 - - example.com 200 0 0 123 456 789 +2018-12-31 12:52:33 10.44.0.136 GET / redirect:${%23req%3d%23context.get('com.opensymphony.xwork2.dispatcher.HttpServletRequest'),%23webroot%3d%23req.getSession().getServletContext().getRealPath('/'),%23resp.println(%23webroot),%23resp.flush(),%23resp.close()} 443 - 10.50.6.188 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+5.1;+Trident/4.0) - 401 0 0 0 +2018-12-31 12:52:33 10.44.0.136 GET /${#context['xwork.MethodAccessor.denyMethodExecution']=!(#_memberAccess['allowStaticMethodAccess']=true),(@java.lang.Runtime@getRuntime()).exec('ipconfig').waitFor()}.action - 443 - 10.50.6.188 Mozilla/4.0+(compatible;+MSIE+8.0;+Windows+NT+5.1;+Trident/4.0) - 404 0 2 0 diff --git a/filebeat/module/iis/access/test/test.log-expected.json b/filebeat/module/iis/access/test/test.log-expected.json index 9bc8586de20..0efae3c6dde 100644 --- a/filebeat/module/iis/access/test/test.log-expected.json +++ b/filebeat/module/iis/access/test/test.log-expected.json @@ -111,5 +111,63 @@ "user_agent.os.name": "Mac OS X", "user_agent.os.version": "10.14.0", "user_agent.version": "70.0.3538" + }, + { + "@timestamp": "2018-12-31T12:52:33.000Z", + "destination.address": "10.44.0.136", + "destination.ip": "10.44.0.136", + "destination.port": 443, + "ecs.version": "1.0.0", + "event.dataset": "iis.access", + "event.duration": 0, + "event.module": "iis", + "fileset.name": "access", + "http.request.method": "GET", + "http.request.referrer": "-", + "http.response.status_code": 401, + "iis.access.sub_status": 0, + "iis.access.win32_status": 0, + "input.type": "log", + "log.offset": 1447, + "service.type": "iis", + "source.address": "10.50.6.188", + "source.ip": "10.50.6.188", + "url.path": "/", + "url.query": "redirect:${%23req%3d%23context.get('com.opensymphony.xwork2.dispatcher.HttpServletRequest'),%23webroot%3d%23req.getSession().getServletContext().getRealPath('/'),%23resp.println(%23webroot),%23resp.flush(),%23resp.close()}", + "user.name": "-", + "user_agent.device.name": "Other", + "user_agent.name": "IE", + "user_agent.original": "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)", + "user_agent.os.name": "Windows XP", + "user_agent.version": "8.0" + }, + { + "@timestamp": "2018-12-31T12:52:33.000Z", + "destination.address": "10.44.0.136", + "destination.ip": "10.44.0.136", + "destination.port": 443, + "ecs.version": "1.0.0", + "event.dataset": "iis.access", + "event.duration": 0, + "event.module": "iis", + "fileset.name": "access", + "http.request.method": "GET", + "http.request.referrer": "-", + "http.response.status_code": 404, + "iis.access.sub_status": 0, + "iis.access.win32_status": 2, + "input.type": "log", + "log.offset": 1802, + "service.type": "iis", + "source.address": "10.50.6.188", + "source.ip": "10.50.6.188", + "url.path": "/${#context['xwork.MethodAccessor.denyMethodExecution']=!(#_memberAccess['allowStaticMethodAccess']=true),(@java.lang.Runtime@getRuntime()).exec('ipconfig').waitFor()}.action", + "url.query": "-", + "user.name": "-", + "user_agent.device.name": "Other", + "user_agent.name": "IE", + "user_agent.original": "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)", + "user_agent.os.name": "Windows XP", + "user_agent.version": "8.0" } ] \ No newline at end of file From 357c6cf20084faf9803fa771679f9fb059cf0ec5 Mon Sep 17 00:00:00 2001 From: alakahakai Date: Fri, 15 Mar 2019 13:41:01 -0700 Subject: [PATCH 216/332] Libbeat add_kubernetes_metadata processor: Missing fields replicaset.name, etc. in fields.yml (#11134) * Add Kubernetes missing fields: replica-set.name, statefulset.name and deployment.name, to libbeat add_kubernetes_metadata processor fields.yml and add a few test cases. * Remove duplicate fields in metricbeat fields.yml --- CHANGELOG.next.asciidoc | 1 + auditbeat/docs/fields.asciidoc | 30 +++++++ auditbeat/include/fields.go | 2 +- filebeat/docs/fields.asciidoc | 30 +++++++ filebeat/include/fields.go | 2 +- heartbeat/docs/fields.asciidoc | 30 +++++++ heartbeat/include/fields.go | 2 +- journalbeat/docs/fields.asciidoc | 30 +++++++ journalbeat/include/fields.go | 2 +- libbeat/common/kubernetes/metadata_test.go | 78 +++++++++++++++++++ .../add_kubernetes_metadata/_meta/fields.yml | 15 ++++ metricbeat/docs/fields.asciidoc | 60 +++++++------- metricbeat/include/fields/fields.go | 2 +- metricbeat/module/kubernetes/fields.go | 2 +- .../state_deployment/_meta/fields.yml | 4 - .../state_replicaset/_meta/fields.yml | 4 - .../state_statefulset/_meta/fields.yml | 4 - packetbeat/docs/fields.asciidoc | 30 +++++++ packetbeat/include/fields.go | 2 +- winlogbeat/docs/fields.asciidoc | 30 +++++++ winlogbeat/include/fields.go | 2 +- x-pack/functionbeat/docs/fields.asciidoc | 30 +++++++ x-pack/functionbeat/include/fields.go | 2 +- 23 files changed, 343 insertions(+), 51 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 90dcb7e94fa..d1731c1eb6c 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -141,6 +141,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Reconnections of Kubernetes watchers are now logged at debug level when they are harmless. {pull}10988[10988] - Include ip and boolean type when generating index pattern. {pull}10995[10995] - Cancelling enrollment of a beat will not enroll the beat. {issue}10150[10150] +- Add missing fields and test cases for libbeat add_kubernetes_metadata processor. {issue}11133[11133], {pull}11134[11134] *Auditbeat* diff --git a/auditbeat/docs/fields.asciidoc b/auditbeat/docs/fields.asciidoc index 90f83fba6d6..e0716dfd774 100644 --- a/auditbeat/docs/fields.asciidoc +++ b/auditbeat/docs/fields.asciidoc @@ -6336,6 +6336,36 @@ type: object Kubernetes annotations map +-- + +*`kubernetes.replicaset.name`*:: ++ +-- +type: keyword + +Kubernetes replicaset name + + +-- + +*`kubernetes.deployment.name`*:: ++ +-- +type: keyword + +Kubernetes deployment name + + +-- + +*`kubernetes.statefulset.name`*:: ++ +-- +type: keyword + +Kubernetes statefulset name + + -- *`kubernetes.container.name`*:: diff --git a/auditbeat/include/fields.go b/auditbeat/include/fields.go index a6907375f01..220d7954494 100644 --- a/auditbeat/include/fields.go +++ b/auditbeat/include/fields.go @@ -32,5 +32,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "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" + return "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" } diff --git a/filebeat/docs/fields.asciidoc b/filebeat/docs/fields.asciidoc index ef64cfb498e..abaae4dff92 100644 --- a/filebeat/docs/fields.asciidoc +++ b/filebeat/docs/fields.asciidoc @@ -6654,6 +6654,36 @@ type: object Kubernetes annotations map +-- + +*`kubernetes.replicaset.name`*:: ++ +-- +type: keyword + +Kubernetes replicaset name + + +-- + +*`kubernetes.deployment.name`*:: ++ +-- +type: keyword + +Kubernetes deployment name + + +-- + +*`kubernetes.statefulset.name`*:: ++ +-- +type: keyword + +Kubernetes statefulset name + + -- *`kubernetes.container.name`*:: diff --git a/filebeat/include/fields.go b/filebeat/include/fields.go index 7811fca474e..8434513eba6 100644 --- a/filebeat/include/fields.go +++ b/filebeat/include/fields.go @@ -32,5 +32,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "eJzsvXtzG7eSOPp/PgWuUnVl71LUw7LjaOvsXh3bSVTHdrSWvdmzmy0RnAFJRBhgAmBEM7d+3/1X6MZrHpQoR/Sxa3X+OLGGM0Cj0ehu9PNb8svpu7dnb3/8f8hLRaSyhJXcErvghsy4YKTkmhVWrEaEW7KkhsyZZJpaVpLpitgFI69eXJBaq99YYUfffEum1LCSKAnPr5k2XElyOD4YH4y/+ZacC0YNI9fccEsW1tbmZH9/zu2imY4LVe0zQY3lxT4rDLGKmGY+Z8aSYkHlnMEjN+yMM1Ga8Tff7JErtjohrDDfEGK5FezEvfANISUzhea15UrCI/KD/4b4r0++IWSPSFqxE7L7/1leMWNpVe9+Qwghgl0zcUIKpRn8rdnvDdesPCFWN/jIrmp2Qkpq8c/WfLsvqWX7bkyyXDAJaGLXTFqiNJ9z6dA3/ga+I+S9wzU38FIZv2MfraaFQ/NMqyqNMHIT84IKsSKa1ZoZJi2Xc5jIj5imG9wwoxpdsDj/2Sz7AH8jC2qIVAFaQSJ6Rkga11Q0DICOwNSqboSbxg/rJ5txbSx83wFLs4Lx6wRVzWsmuExwvfM4x/0iM6UJFQJHMGPcJ/aRVrXb9N2jg8NnewdP946evD94fnLw9OTJ8fj50yf/tZtts6BTJszgBuNuqqmjYniA/7zE51dstVS6HNjoF42xqnIv7CNOasq1iWt4QSWZMtK4I2EVoWVJKmYp4XKmdEXdIO65XxO5WKhGlHAMCyUt5ZJIZtzWIThAvu5/p0LgHhhCNSPGKocoagKkEYBXAUGTUhVXTE8IlSWZXD03E4+ODib9d7SuBS8ornKm1N6Uav8Tk9cn7sCXTeF+zvBbMWPonN2AYMs+2gEs/qA0EWru8QDk4Mfym++xgT+5N/3PI6Jqyyv+RyQ7RybXnC3dkeCSUHjbPWA6IsVNZ6xuCts4tAk1N2TJ7UI1llCZqL4Fw4gou2Dacw9S4M4WShbUMpkRvlUOiIpQsmgqKvc0oyWdCkZMU1VUr4jKDlx+CqtGWF6LuHZD2Edu3IlfsFWasJpyyUrCpVVEyfh290T8xIRQ5BelRZltkaXzmw5ATuh8LpVml3SqrtkJOTw4Ou7v3GturFuP/85ESrd0ThgtFmGV7cP63zuJfnZGZIfJ66Od/8mPKp0ziZTiufppfDDXqqlPyNEAHb1fMPwy7pI/RZ63UkKnbpORC87s0h0exz+tk2+zQPty5XBO3SEUwh27ESmZxX8oTdTUMH3ttgfJVTkyWyi3U0oTS6+YIRWjptGsci/4YeNr3cNpCJeFaEpG/sqoYwOwVkMquiJUGEV0I93Xfl5txiDQYKHjf/JL9UOaheORU5bYMVC2g59yYQLtIZJ0I6U7JwoR5GDL1hfO+3LBdM68F7SumaNAt1g4qXGpwNgdAqSnxplSVirr9jws9oSc4XSFUwTUDBcN59YdxFGCb+xIgXhFZMqoHWfn9/T8DagkXnC2F+R3nNb1vlsKL9iYJNrImW+pWEAdcF3QMwifIbVwQ5x4JXahVTNfkN8b1rjxzcpYVhki+BUjf6OzKzoi71jJkT5qrQpmDJfzsCn+ddMUC8ekX6u5sdQsCK6DXAC6PcrwIAKRIwqjtpJOB6sXrGKaikseuI4/z+yjZbJMvKh3qtee6+5ZehXmILx0R2TGmUby4cYj8hGfAQcCNmUeR7oOOo2TZLoC7SAocLTQyjjhbyzV7jxNG0smuN28nMB+uJ3wyMiYxnN6PHt6cDBrIaK7/MjO/tTSP0j+u1Nv7r7uKG4diSJhw3dLkOtTRoCMebl2eWVree7/t7FAr7XA+co5Qm8HDaH4FrJDFEFzfs1AbaHSf4Zv+58XTNSzRrhD5A61X2Ec2C4V+cEfaMKlsVQWXo3p8CPjJgam5IjEi1OSxCmrqaZeBfHLN0QyVuL9Y7ngxaI/VTzZharcZE69ztZ9NnOKb+A8sFRkSeGRmlkmiWAzS1hV21V/K2dKtXbRbdQ2dvH9qr5h+wK3cxMQY+nKECqW7j8Rt04VNItAmritXhvHb500HyfUyMizI1bTu0jifoopS6+ACOOz1sanHesSQGvzK1os3JWgj+J8nIBnf9ncAqr/w19j28juwPTM3XH3dHGUqTGF4B095kV6coMic+q/dARXshkofBR3jktuObUKmBIlktml0ldO05EMFCp36gJsqKBoNqe6BMHl5JKSZpS9j0JryvGmz5XTfGdCLd0Nzel0LbX5/YtzPyqeigRmDzb3wL2eQQZcxDAZ1RX3zsXf35KaFlfMPjKPxzALatq1VlYVSvSmwhutEyutSYOepeG6ztylKGgCAUtWU2koADMmF6piUTY3BnUcy3RFdsI1XemdpNVrNmO6BYrsLNCgmuF/9joo7uyURR0MdNAMAQgCcWDJedjmNEUOP2rTnojCBO7kNKZxCPGjJuWPSwfeb43EDQBdELW7YEQhA6MlBEtle2M6ro4btgeHLFxf46UXx9sPE0UzBTBrlBPuJmxYRaXlBWjp7KP1IoV9RGVhhBz8m8jag2Cxilxzt17+B0uavVsp06DtG24b6vfjbEZWqtFxjhkVIlAfl0GuWTZXejVyrwaOaCwXgjDpdFtPuGgbcVyzZMY6+nA4dQibcSGi0kXrWqtac2qZWN1Bq6NlqZkx21LogNxRhffE5Sf0zDfymWrK541qjFghOcM3kWMvHVqMqhjYhIhwN0Aqydn5iFBSqsptgNKEkkbyj8QoRydjQv6eMOtlBBgtklqwYETTZYApEP5k7B9MEGVtESfdDSBJsLJBowVeQSdjXk8cKJMxgjVx17iaydLrGKggKJmAgPuE37GwK9OVZeYWmSJU1PXxatH+rLUPf3U/4LUiWvb8frh7s+MHeB3oypfD58ctwHBRW5B2/vzi+OPWnHOmxgW3q8staaYvuF3BVL3Vv1HSakZFHxwlLZdM2m3B9DbTkuNkPfjeKm0X5LRimhd0AMhGWr265EZdFqrcCupwCnJ28TNxU/QgfHG6Fqxt7aYHaXBDX1BJyz6mhCpynX4dOHOmLmvFI19qW6WUnHPblMirBbXwRw+C3f+f7Agld07I3ndPxs8Oj58/ORiRHUHtzgk5fjp+evD0+8Pn5P/s9oDs4+v+2PQHw/Re4MXZT6juBfSMiFe+UQKrGZlrKhtBNbernKmuSOGYO+gcGfN8EXhmvNoghXON0rRg0jLtNa+ZUEoT2VRTpkegyi940mtMHBTBE6RerAx3/wimtSIca5OB8FbZzH0AhkMuCW2sqoCFz5kKq+1fAKbKWCX3yqK3N5rNuZLbPGnvYIabDtrev79YB9eWjpqHafCk/XvDpqyNKF7fAkN8oU2cZ+dRQAeOCMIipyy0AijJnOyNNu2z8+tj9+Ds/PpZUjw6sraixRZw8+b0xTqo88lRpb2DqG9Nco5ff5JgP2rDobT9VCCUtjctsTFMj1lFudgS93LMi8AEAeMDAMwaIQbOwb0CsWuImwamBZZFrykXdCr6x+NUTJm25BWXxjKvULXgBa19vDVLa9/aOPOWdZg4GkTglrhfC2qdjjmAV4Rzi4jNNSGcrA/EgprF1kQjYsrNQ9w87lwVSmvm7qUts/4MbyDuRSdTpJKr3EmIanrGtD4Y5k2WE1gFL/HmAH+41U2iK6lQcoZ7RUVrTqdrFFSmGzMJrt8Ol/MzbIHT/dxhuk2XtCIDBBj6UG1JOl0sHGNCNQPcPFz2AcmOJIUj2bKjqQanjGa08GC9FQ0jPgiSRxmYMAxFwDQ00zS6gZODC2/DaB0OlzqwEZO1Dq0ZecOs5gUamk1uyKaSvHpxhGZsRyEzZosFM6BlZaMTbo33ISYgHXW1Xd8tHyY30UDaBsGPqxvpnZOaVcpGcypRjTW8ZNlMXcgQJkq89ywsKGy6TJ96DbHtpcdB00DgJvSTB0HohuUmgeoRdhd7SQH3l+1x5t33CUE4F7hH9ZxK/gceel5Gl7c/ZStS8tmM6dxmAnowB0cvoXg89yyTVFrC5DXXSlZtJSrR1ukvF3FyXo7Ij0rNBUP6Jz+/+5GcleiUBpNp78D3Nednz5599913z58///7779voRAnJhbvf/5HMIveN1dNsHuLmcVhBWwzQNByVdIh6zKExe4wau3fYUWm9J2F75HAWPEhnLwP3AljDIewCyvcOj54cP3323fPvD+i0KNnsYBjiLYrsCHPu6+tDnSng8LDvsro3iN4EPpB5r25Eoz0aV6zkTdXWkrW65mUMUtimqoMcIEw4DoczD8CiSzMi9I9GsxGZF/UoHmSlScnn3FKhCkZlX9ItTWtZeEvc0qL8JfETj1sujpHRe+wHkdx6eINzK77YdmB4z0IvPi4L2alZwWc83BEjFGie9z4ob6VXs3yQLNiSGRbmXTBRZwokyCsMX41DGy8J5cohyPKK3UFAbUXH80pwWjwv22eYV3S+VZ6Snw2YLJpGEaAlNWTacGGdOB8AzdL5liBLlOXhovM2AFkE6M2zZ5GgN8SCdpktTOrDKlvzbnE30pqT8SdyEyTZbbETHJ1UVNK5096An0Q66HESjEDN2EjmRcsZycvO4xtYSfbqze5W1J6zt8Gaiiaf/XYk5sCYmYf1Nt8qch/vW/0SfX8t1+VGDsCkxmLw9j05AOOw4Aj83+0AzDclGAt9lH7nEH02L2B+DB5cgQ+uwPsB6cEVuDnOHlyBD67Ar8kVmAmxr80f2AKdbNkpeAdhvxXP4NrFPrgHH9yDD+5B8uAe/Nrcg5j/3ckAv8lw8IZZupfvTjAt+gxznHKTi/ttSQcDmeN/Li0ry6oH3ctH9CpYjCFWjcmEFWbsX5pgEk8AI1E4eOwcUVaNsZjKBIdB9OK5CfnF3bR/b5heQYQ65nBFMuKy5AUzZG/P36grugoAQRK/4POFFUOOsWw18L2vO+BAE05wcmnZXPu4cVr+5kANIrNYsIp28E9aybWmryxCIYKccrRWLSv2q/jg5jzTZEUuICnJh7jjgHCOqFyRKy6TxeIDphhUmBaF74HlGjMqHfIEQzesQ3PILgUeVVDDTErFDMuCvefWMDFL3lcqcfQ7mJ+2pB4DMmHwcEVAMyHzALYV0S1aywek5wAEef76ejBiDvvgYkM2dk5j150coFfXG+Yy4/4OeUlCOsOwo0SooASiQ0XzokUrkSRPIT2+nWTkyCfwFEdQbsuy9GGw/C1wH2nKBg5M+nVK4wfGElKbIbeGV8xdVoP3yT11A8UxUka0mmWL8OOFoWjIsCWQRBoCLXz4REqJQt2dTBlmPnkV3I9Jg6nWKkJzlXiExsuBvKops0vG3Ewhf0KWPkYi+iFxMp+ShDnShVBOyJPTsBO3oxsvS37ISmnmbtxgThIwIuarwJ95ojkANIzo7DU/bErVbmE9p5aE8opVSq+IY3KQD+OHKzPEJ4K7boRkGj38POXC+5eNU4JYiZnwdwn22MAU9MlBHjg6KWiNJSF8FmTbMeCTYqOxw2efpQPIs0ovY3IGLknYvaRdLKgkE3whZB1NUoZl3Ah31ieAkD1alpMRmXiS3wOSZ/BoxgXbKzRzhDbBVJ1QlyWOGBOwA8X5lXE3TwWWnb6QdErXXk2Nccjcw2ystrjwoG9jO17hYfAzdJEfhdyCzxc+/WyYBwKHBAE66+1KHBN2B7LdOpuDBDEZhT01TBqfBpYMVTSCGeFKIwftiIbMwF+odocb6h/MGog5i6qPmjlVaESWjNSCglnAxxsQGocUvtgGLQpWW8iB9iEIKNOC6jQiNVZZagxDr1RBm2HbGew0+O8Sa4ibjJR1yx7HAkjdffREjoP0otiGqyM5ngQFg+KaNaNAsyHVHHNVV5jT1ysZ5IkEFUh3VLlj64W3vaQiTzHzL3uUttXDGseMHHWgJlOsFdNlFWeSVMrYLBcRDKiOiJYq1VMy6E6bsgEtGY90+LNIXqqiXVWooKIAl6S37gi6irIK8OQlnS8EBSq8FzopUKUlOmBb4NNQTUUbG6QuKwnvpPwHSColeUrEJdkQu7ugyYYdc3+GEDCryBVjNWlqJFb4KK9G1cYqpKADpG08OpaJal5BxSjf2eQfHLhtl9RSw24zq30SJ8vtIX6aToZ+oaQ7ymjPn/h3JuSR4+yGWbLvxbFh9rGj52AZx8oSTnkgppkm8OH6U6myEcwAq2sdu5xPombgdrDRjtbEKhSR4jJNml/4kUTSTziN21QPLbzcZzHGUtuOcSobvYlfZ8Cn2vmSy7qxl+FHSaUyrFApu7wTK+A/bgkEt9zsw3YhCDzTIHFh8fg3c1qfZuRKqqXMy6ElOrPD5zYcSphd4u0bR88Ci+KtQW5iUVzHfhOoPc7bZbowqNvH+NyJrOvceeT4sqBO+mBpoE7E0RaNej9RsyCPaqYXtDZQIAgK58y4nDNday7tY7efmi4917fKbQAIR6viAkpWKWmsdsuHGw/YFbhdDZjcQ8jm0L9O//ri5We7tJ69dKuJ8SyZQtqBebB2zBXfiIA+WWV24w+XMvNSeM6vIeK5q5wtvRLVjdHLSDLQbBJPoTybv8xl1robdL2OPg1PJ2nMiWNNzGnSVFBdTb5MFQ2AbJspgPNuW2J5/o7+3RtL5mCpoPwe1HozG60rwZSOtbD6C69W5vd2jEdQtrax9Hd0CZadWPRPzcBnrSM1ffBKzg28ZI0aKpWTMyX7yJDnl6q4zIKHS24cpZQoscFFAAoho7pYsDIR7LSxhMcyTNqJYnYdtNHJJWpLkz4mL1hNDr8nB89Pjp6dHB5gyO+LVz+cHPy/3x4eHf/LBSsatwD8i9iFU9rxVqDx2eHYv3p44P+RTqbSFTFN4VTDWSNQkahrVoYP8L9GF385PIAysIekNPYvR+PD8dH4yNT2L4dHT9qOTtXYQm0vrsKxLz/FOg7WKoqabvzuGlKglSgdZtOWsa2Rs1JHoexMsrbgi547eRT6Ap0zykWj2SBPiiNuxJs250lx3M15E8Lc2jvNzdWlyQ7lumM6E4oOGlLfcXNFYASspseVI8622vaIjedjYjzhEqMEgGgeJ2PKB8P89Qdco3AB8Zc11NcWTHfjZSPsl1LpagP6W7uI3bdgeeF/sBKGvWVBo2gcczr1LC7iwO3l4cHBQGW2inKJ0TLeN7lSDexZheGUVIId0VcXgusuNYbPpckAMu0boBtiSTFj2TBHPTItA7HmvT9UiFA7qaO4GnbNstCju0YqXPjPO3a2uHdh+I6s/2WBUVBJ5QvX6PSFJ/uKUQlM9Jrp7Lod1XOHQ/C3OIa8m0w6TR30jcx6BtdeesUI2EX9VJyFJEJpuLFgK0a0Bdda5yDtftfBobsV/Gn1H+8Wt14AvEkxvwK0mJa7CiTTzJo7gLvBbDFpbDeTqOmelRU5bS1pd9ck00Be45N4Wex9Eh7mtpIqNKPlynOYks1oIyy5WBkn65O9IWM0Z2jdAEipwEy8JTe53eI08d44KU4JhHICpkSpJJj0z176yXdeNVrVbP+0MpbpklY7j7PjOp1qdo1ehvD6xfudx+C+kOSnn06qKhE3pyK8tXfw9OTgYOdx59huq0rhO4bkAtLGK9UNusjiWnxVeHqtIJ8y5hKkyt8Qq+HU0HFeJXjGvR7sHWs/hL9vLK0Hde07ThhimO3fR8C/ZcjUcYW2OdT7idyv4DoP3g2whQBbTGXz3HS+fnfQ3agxquCpPC9oZKGuXqvYmxk5xrzvzSyBb6B3BjbUaSLKMF+RGy38MOVZ0EvJGzTLObT+9w9nb/4nVO82ycnkM3KhAB94oVGxCVpEP5eCzmYMTaHu9c56AtVkZe+95eguPukNU1fW8cDXNBSeBxArZinGs4I/o8O+SuaWvyXm9RIGX5OlhunToqOJwNz9wJL746ewy3GWrnoREzWEWhJGzcqBaBmQ0HSFCI0fD4RZ1F62x6jXrYXHnWsORdUxGM6xzh/PXj5ej9hEc9uGJc+47cPBZS/k4h6TflXJ2t0hAhDBn5XzKdK2LWwt8dcBleHDgaIKS0WnQGRPOTo+fNaG8X4ZgzcegYZTqZLPeJc5qKXcWqIxSgc3wS5YR3Q/i6+mdlvm1XNqF0Gp7dOo4X9sgud1mjwszY3hdhrSocijaBNR7u5CyzLobhM3FgSrgV978rijXlI9Z/Zyi6h4DzMAskHjMKtKcHnViVDeYmI8oAvsouD/GZGSa1AyPCQdjDRbY6nvfdwlcNMPwE11umpnoVSPLjqsFgk5j32aM5UraD/6P2/Qz35kKo+sK6h2l7RU94Qm62/ICclLvFCZ60jtJjtZGklL0fNKWck0j+Y0y4oFmOFT2X4H2dl5FuiCHkW9Z5q6Fjy6FjdSbr6czLkvPmvuC8yY+8Ky5b74TLmHLLkvM0vuS8yQ+wKy4/qXhSC/4oP1Eux9TM3JAncr5q2qKVIc3vER4ND8gAl2TePh9FpZ5vH9lJIjX1Qa0ufOPYrxCcq04q9/Cn/faCYKhXFaZiJfGZ8Uqqobi7G+vopT7Or04gKDW0NrpmGDZd6VKZlVsAdTKtDTjvQPgdKgFoKaMhjhm8f2urUCXmMwrx9xQXW5pJqNyDXXtqEiFGAyI/ISKnVkVXDACEX+1kyZlsxCi56S3am+hS4W3LIi81/da2ZTHSLbQjOFbL7eOf/4/Nnls3YZhYdqBg/VDO4O0kM1g81x9qCnPVQz2H41Ayc/twTJ7k9+7LxqYR4yYrN2d8HnuvRuaTIJkE2c7lC586uZbTSWaO0VQdy9Uau71zZ3qOfkhZVOTcRjCF/yPVswY3gELnLvTY/6q1NxuZxDMIKPHr+xuClqyj7+GF2CDrMTaJEHmOpi4dMqVYAGxOvhigPbqTDxk9/K4Tm3RZ9vb6RNMKb5JHWgyowiM0r8AEW7MLDDM0kI6vq9oQJM43FMX+oLSyhgzpwDwFvnUqoRpHDDXhsnSTQpWcFLyGZ1uiuQUWLsyr3f2XhlxjNacbHakmj6+YLg+ORRsPVpVi6oHZGSTTmVIzLTjE1NOSJLLku1TO7/VN0O3uzB3YhtFdPo6by+mAVo+cHnE1LFQxrusApKC4eDN+o3es26K7hyKv9nWwPOFsGGO5emS2KsHipOejw+Hh/sHR4e7fkkri70W1Ro1uA/RCpn2F+H8P/sQhuuzZ8L4jCfp3unGykzIs20kba5idapXvIerQ+WQtge8JvSyOHB+PB4fNiCdlvBLqElZ4f9/qC0r9gdqgj7vrDe89Cqj+6GgMbCk1j5eAIF3q+rUaYAQ5B1puvGy/oob7ua1QbPPR5JVscRh2T2QGGSh/JAbep6KA/0UB7ooTzQl10eaGFty4r/0/v35/D3XXqHuI9iOOw4FHMhk0aLSQhMZRg4nTW2BCC1CPD6xrSb2/PDB1NVrsYDlWhvC8i4tRrtRSs+ow0mgVm76H3+/Lv1IPpgmi2d4ff+OoKbcSOUPzEhFFkqLcphaLeAy/fKUtGJeOlg9JEDFg77glGnB/SVq8PjJ8MIrphdqK3l9LVQilN1spWRyDELAGq7TFmeHmAVEWrJNCRoOxYaCkaNyQXzObGqaKoQ5xXHNr6+ys5ZCKt3Wt6rFxc7ffPYnNkRqaHQS93YQTRBm2a9tYCtd374lD2TY663m473mJP9/alQ87F/Oi5Utd+B3dRKGvbZzzlOu+lBz4H8vCf9JjjXH/UA7+c+6x7aTzvsHmhjqW3MgKn3TjF4bfThmMPG3eODtkdsu7c5gGvd9fhwnDcbCXWgvPB+7f+8VXajeYm2yu8oyNjMk3A2EcKw+G1cF38OSU0Oqujw8BW8ejmJWMS/ldK8pFpORmQCxczcP/hA+ifTurWcbabRhuS0VsqWW0xIq6XdkgRwyrM3MvV3hrWTBLfoabekgdItUUOtqW7VKTxDE6emqUzgxA8bdDSkitwYCi3nQ2EXN2Kefxf2wo+Sp312sj79Yke9BYW03jjmgl6zmGZk3KZi2HER6hxiNCEaAZgsFPYr0ESyJRFcMgMN3a6zC4m7yghGJeSotUH+s1nJxCifdLy7CyLfifXcDjwNxi5QDP50cjJ42sAn8Wblz340nGNiTM4N3maPbimmF9Jq2iEdaDqpqkZ6/GMEsLpmOnCQFD9CcBey9BwfkmHyBkPhjU8KAAmjd2pwdBOGQgGfu4Rg1NgcY4tJJad4S5vzayYxGDef1XO4WiurCiXaJYSonnKrqU5WfuLTVX3qGJQKNHgoKl5oFVKWRkCBVBgFk63w5KeXzdWqZslyxovfR2RGCzZV6mpE7JJbiw4KbsgyrxTkWE0q35SKb5JrJsusyhFER2NDwxhJ7ERsGSOHYxkEPAX7pdOxz84xXNqMoLC3GZFszCXXIUPwC9TCKW83Y7vvFim7qF2hVmU1lQZ0btiRqXLnhmvm66q1cvYnvmIUfOlT6fNy5+F5KN8zIpNwWP1PKLt42gnTVH0EPHn2vIUAz0Hs6nJ7zShP0WoFJTgheQyYdlZL/uwcK0B6aqKGLJkQnsnF9YTjlwIT2vxvHBPMKbFKiT06l8pYXjjtUZZUt5pdxmFnQi3zzXjNqJaYik5tvAXNuV00U7j/OAKBkmf7EXl7vNxzutpA2d6Txc//bN4e//TPb358+ubv+88XZ/o/z38vjv/r3/84+EtrKyJpbEG92XkZBg96WmDXVtPZjBfjX+U75taDRZWSOD35VZJfI3J+Jf9EuJyqRpa/SkL+iajGZn9xaZmWVOBfjoLSX40Ewv1V/ip/WTCZj1nRus4KB/sWrk547WFXuyrlgfr6saMokDLFJh8zci43zK4hEJrkFn/N2XKMMKyZOKBGaVIzzStmmUZAWkBvBlMCpAWB+y94Lfxk+chx0vFOl5w87lt0M1N6SXXJyss/E2eQdcWIKen+uGY/eQW51urjQAWq74/Gh+PDcbskCqeSXmKk0pYYzNnp21NyHrjDW5iKPAond7lcjh0MY6Xn+yiYoebsfuAnewhc/8H448JWIsuXv/B8BORVqE4SvjKe/1ABlSqAg4HG85bZH4RaYtE0+Jc3zsZxhZqHW1/jrbNDa+ohvJ1duG0PCCpH0xVR4NCEIuAqSF+TotWCXOpC+yMY6H7hM94C+881KvEC1w/ySSLXfzsgdNMvA2I3/Jj0My+AhwXvUdtIEahmG1fZ19+F20WSmRA+QdjHMUi0ERFAUb/RwmmSDmlO9iYN98vT3KIrJHrCA9TbQOGFI3hqIi1nTAy1dvCa0lTzgZG/4Tz5MYxF/ROGBV055tSU9YjYoh4RXl8/2+NFVY8Is8X48ZeHeVt0EL+lEIQzFDo/X5xBxrVAIbrMQwUCWb92WBw73B0jBrNbUm1YMSI1rwChXx46HdCZacAXpWm1cvg5f3ZTqoeMn/fLgtSs4FQECh7FPFgMeetdqbGORCyIWzLLCjsK48NHWEjk9hH32vLNK1dZEdZ2cmsMBqGkaIxVVczwwEGhCzg4tv1SO+VNlJzxeZNahFhFdCM3RwAxambddFmFs3bGyYxrtqRCmJHTcHUD0TuIIa7kfq1hiTBUiD8MOmSmJRomjdKxbtWSTVtQZJNAvLdQxpChoR0iT8/feGyYvNNpoIbcgEOxSvMa+41nUDg4RozI1Siv/4brNJEUTCjrguRgksJ8A4pDMRU/pi+pQt542+rvDWtwYPLq/WvIUVISqCbc9XwJ53Z7EU9OwdKkGZgGoXZVyaBuv8cHNGV99eLiDkanh7yah7yau4P0kFezOc4e8moe8mq+6ryablpNlL5t+8enGWX6XUqHh/9snUZbiupDgsNDgsNDgsNDgsP9JzgYpjkV2zUYh/u1n8zL+9vqZd1f067QQyBnq7HZyk3l6pn2eY3uYhg0p2CITiOtambGQ1E3wVWg82YC4eIJUTilgf/Uxrfu+riCfyghGITp4CXW/StdQQdiI8KYLZS2vM/3idS4cpwhD08fdyC4uefpPZBUxlhS2NKcSv5HUvaDmaf7/JY4kHyccL9nUvNigYQDF/t1PcWqmsogpZX2+mqL6DqRGnlgSOoZumCihmLbVGsq56GNjvVFbrNePFRikA54DNoB+hGMtJ67lOT4B6Sk5KB+ttIwOX1E9SBx9RYpRRZ8ASz4FnJ6D3bWThOANaSjOtx98+jDr1Iz/MrVwq9YJ/yKFMKvWBv84lXBzEMaW3R4LneePdq4yfVa5ha78Q5LuoLKJO1Sup23Obd70kFgY2zuy8v9jJZ9UEkrrhYYcOiMOq4h7W5mmSTG0pUJpY5D113skk1jVyxQEGuOjhpIShRqSkVWdD6AmwxKm5W6mm+SbPBpMWBa05UPlwAkUT0HR1puJ3sD/R+9PoHLq7WyrLDgPOGWX7fyHXt6p/9zj5iYjblH9kT8Z2PinWKPhKY+7SgK9pEVDTQ82BIqTqfQ84VhuK7fwYCVNHvvhOw3Ru9PudwPa/scJSr9ifNSKG6Uu1pARwlSUCEYZIfPNa1irqPhFRd0oENvF/j61oTQdZEf5/G0dYpO94a8U95JGLamUN2lO/qf7W/yPnQqzXfd9zHpm+2PDg6f7R083Tt68v7g+cnB05Mnx+PnT5/8V6cBxkIzWm6Wqb1u2e9hDHL2si+0j47bAV3AjLdNcDBJJwzFoQuejzD5ACkQ3Jc+XKPOyZW8oBKjq6epqaU9iUNmxQYIJVOtlgZMAiFnwwMRjuiSTUlN5yxrPKqw+Xt7N5ZKX3E5v8Swo16v6XtNNPNzkThXsCpEydZlIgtVsX0qsGVESt1K/novat9lj24Utam5DcO24aFe6IwWXHDrZGbNrxV279WqgdbzNWdF1i4K+qOEzQa7Bbxguo1NfJS6YQx6lldUrpxuVIDH3t04X724CH2V3ucg+KGxMx2YVvBiV43wxgoB/0FEQYcoN0UoFKW8vwjEqqmVdNp6EO+YlSLJxGNxPIkrOYU+uZrZaIdxGEqWfWZGWVrPlJEGygxBV/po1Bj5MMxRIoLU8R/7+Y9IeJXKMsYs5XGhUIYDru11DQ1chSBn50HaW5Wg5/VkhCoPBS1EeqT52gIYBHh2Tqzm15wKsRoRqUhFrYW8Exa5N7cwGdWsHJHpKsbS5FOd0PF0XIzLyV1u/5s0wRj2qZyKmKZ2dm5wj5XM+jbnF+x+WM7FZkE5/r2BdB1PPL46Q4wRKZSUPoBoFu1jPspBsznVJYaPGIPduNP7BruK8xji6LRAjDAtlM66Av+gNHn/4jx25gGmGcFE2ArG3d8eQVxyKPVw8fe3PrrykQkl84O6/OI8g2UMk2DFlhgT253JV6EVqx4+wva1Q9OlCc0HgSv4GBhCC9sEXyoG2DFdkZ043g4WLJ5FbS+HQnYAN6HGF/zstf/g8u0nOgVW4su1FsjYTGeKfB2eIV20JqDQTQpW4UdMETpYbuO3RhbpeoEn3X89NFhCbSrFkYZ0pxe3cQ/96CGV1L/5AoffD0todzbB2xAtHZevqLS8CDHvPlmKfcTmRJ6fpYuKu0HNGuFeu+ZuufwPllkdJSmYhvtZylcKvErHOWZUiMCrQgP8glo2V3qFzMrnqRnLhSBMQks7eG1NxolD2Iw71dUPS+taq1pzaplY3eXOhJx8W+oQ2vCx2R1uTBQdmOsYGEw15fNGNUaskJrhm6jqQKt+E5V28BhQx8ZHhIZyeFg6BoroKUcnY0L+njDryyjmFULwVLk7fcwOQLqfjP0Dn7raVuOkkwwpr7BsMEoMr3sTJ3+gBM0YwZqMSMmcyIJM0lBeOrXrAznDu50c7zut66+QzwXFz1NGnHe2+EbOcH76Zo3n7bBvXNQtkH1SqRmEBsfvNI56iGR7iGR7iGR7iGR7iGT7qiPZPjGQbLcfSRbiyBJl4fWz46YlZ+fXx+7B2fn1s6R4dGTtZwtAG4p++3PJY+c+a+xTBHvbJrZBHtJaIBQU7li7xIfilQ/FKx+KV5KH4pVfW/FKX1oE3sssaOHRLcFOoTBJ1x5j89+UHugn5HQhD9ySGlIoIaDh8y0BTTMuS1/kKVAn5GUjWcZKXGFu92aIGdjcXMDqBauYpmKL5TZehTly9qS8AhjAf8RnIO6hB7h53K21xMusJQRYdgyhhVbGEM3AXeWr10z8gHD6SgUNlmxf9XtOj2dPDw5mbYVmG8dpt8+aQ3W7Rko0pCLE/SV7qwSeQBE7hq5aqPNp/hW9YoZwS2plDJ+inyiSThwaSChLfUSalaxHUENtJoLNXrt9qpnmTBbgmzKmYQbtgm4szUq3AN/PK5nv0ZEexw2d4XmJifspmAGuXIHY0W7G5Rw6HfseYb0dLZ98x56y6YwdUPasOP7+u6Nyyr6fHRx+d0wPnz35bjp9fnT83ey2EgX330AiUHiKpfXnfyCcNr9FxQ8hwNbTPkgj8HnE6g5CLQ3cp5Yqoiddp8JY0FAisAqdiC8oBu73WDgdb3yy5afkrQoRviNFPG0g3vLGJwKLnXnw3DaW3FjNp41beag4hXurG3B7RImzUMaaYfJFK32wSvvFEizK4pfSCQ3wWdyQQq1m5JWgxvLC+5AyNMMSfO5vENOobzfGMt26FaH/4q+MWtMfghuHnZLNaCMs1ASqoxs04stCj2bgyHFMPiNSkTBG7P4xUIYwX8NennSaRQXYrRhjfI8ZGL9Dp/+YcPU7nS74MLg2fWI56scDcrbFJJ1EBy6ZKQxhJWs4JQySkoLh1LWhaxPjqEMdcdBYcWDS2vih+pT5763t2F6g+e5/hADR9oZEn0pL5+nvSuJhUO1AXRHqTg0GbzOL7c07Os91mpJG8uuXFhsfjfPKBuh6aal/6ckN2h++dbsjLvh2ACo0BOy3K4+2R8o8brf42nJPkXe4fZEeIe/bevAIfSEeIdwPbzjKCwn1rEefzS2EID24hR7cQvcD0oNbaHOcPbiFHtxCX5VbCOvhfW1uIQ812bZbaHPpvh3f0MA6H3xDD76hB98QefANfW2+oUYjx/KGgQ/vXsOf660CH969Dvd434mSmKaGkpqY8OYmsgBOTTXs5Yd3r321PP9mDHdfMDLVjGLqhFpKwqVVxBQL5pgLXpZGkJ/lv1cksPlNLABDt7n7OzQv/eXco1uLUazWv7NcLsfeKDUu1E7bLAs5MwUFQwHgs6IrDJL2QbxOI8DSfoBXDCoXq5QnS9tLIz7PBky+0BDBsJGPrk/FpEE7navY1sTf4r0hoKcNtpfQwutM03m1vc5Nu07aZpa1RgtCZ9aX5ph8O8kQbVW90zF2Tr6dhOYkvhcLKtwe6A7P2GKa+dkMRaWjfzAJ8crtp0/LgcDqxrC0W6vM9oLlG+K6uIQ2gSDhJyOyXDAI77etdiyaFUoaqxswODrqwcjxYPxpG55yNWag21h7+0+Oj5/so3n1337/S8vc+q1V7bK0w82B7lNYYbMbWKPvDwQkYmI+UlxtX5V+q6yPSOdyoDjoKK8FU8bTCUVRw2aOML2Gmnx7aAEJb0LN/QXPfcqNTyf+rTE2hfKH0rCOsa1trhPzt+JncVgK/s4lNRHQUYvxDnp+P2lj3Whrfu7o+cZkO3nfe37uhx9sgplgsNtSkM6hoU9r7owHeQTtjG+5bdwt/TW7cfSmPD5+0k8PPX7Smh/SvLZ1Bh2fhQk8vUa7BcCLv2CBgcE1RJJ36OvQVY+d/xuwc/YRCgFnbRzyWSBVBYVp7KkllfsWDmNmGMeqTRns8KkNFZ0ozDdtbHxrlE2Gi8VQjThi7KZU1TbBA6DjmxP/dccB1/IwkymzS8aSRIdkqqVCPaEjs1BB2tbeXsDo68kdGMlOh6ViGuzkZFD0IrxrWFJPV97yBTaPNMj4SA5BSyM2t2cavvfqds9VNlzIB15FEQT9gdk1jXLZK2dt99kPWSEMeo12IAZW4PxO4p5wZvxRCHc5bKBjF1TCZ7wM6atBe48Jt14owjED36THUnWXsKp/oAnkK7J+fAWGj3+0zePB3HGrueOLs3R8sUYOw/QlnYfbT8bZSXq6AX/HMQKXT3GZ7j7vqwuF6hVRsnjg3rvrnS8ttFBL34Z0yaYxbgTCZrJ6k1g+gmqnLTQR1KBfbM6SsZ/E5zrJfrbulvDzRQgM+FxdkjIKQdT1gLqgM6r557y7fpB+Q6/bsUOJuAZ89H9wIej+0/EBeYRo/Bfy4vyDRyn5+YIcHl0eYqPKUCPtMTmta8F+YdO/cbv/7ODp+HB8+DSyk0d/++n9m9cj/OZHVlypx8RHM+0fHo0PyBs15YLtHz59dXj83ONp/9lBt0TsQ9HpQagfik4/FJ3+cxD/ry06vV1Q/6PPddeIBscFv/lmz81yQqYMevB4teGv+Fdr4H+F718Ey0OhqkpJ+C7GPIZ7AuiRwpf98BWiv1kTwAigdfomDK3+xmYIfoGtkR1kY8sr9kcK18OBqeDRrllTuzjxV9HOyxWfa4rzWd2w9ui4ltawavobK2IHbPjj8taV/GsUWBGzsGWh0RSg04eFtiGAZvYtAJKOtHaSV+6jTrVKKClTltyX9HFqOgSq+qB6mCcW98r3kAyHhK/bwRvASqBlMdetjexRR38THRHl7924fzDoINn1Bx6k0e7o/hwVQjVlOkgv3J/BDAHh4tRnjA1g4o3/FVXjovWpcVvEypCbQcvyEl64DEOGKmxK50ettWb4YFxr5Ugz3cwjQ/C/7H28mYZyzdN/4ujlR6XmguGK/Q5+S04dMjENSZT5oYmRO8zScQQMlnrLbgy+fONeZ3OEtJKUEXfzNDElKb5/55k2ILDOXJvScDabz+65zI7hzZP5D8bZB5vO5dk8F9yuLjdgrjd/temsntI23bgelW86D4bbbTRH69U1/KBUxRVQqWcIL8PfA4cLf4P8m25Whf/NHW2zUNpeonw4ITMqjEMllcVC6TDfXmQGa8RuBIsMSo91XN5LjDwCZRhNGaqGPxncjjVTVXTely23zua+yo/SHWftfLnZpJ8+naBTJoxjme9/fvmz03CWxCpS0drxWcP+rQdLS90gN6sc5GbRe+ZwRRCEcaBcJ+8S3f6Efw0Mcub0hYxavRXWfR6SDscZgUKj9SHy9BLj1YuLPIeGx6QYVpjxqhJj/x7mVVPtI5GV3EtfdqysCPrNlL5+a1qm0DDEVCnBqNwQvbOEEXC/pW3vz6vMeNpw0Z+yv6NRcO8cPn95ePD9zmbg/HxBYIZ25xK/61fN1N2CMRHF7/3f8mcDA6ffo4LT1lbSoCTf+Zs5WfroVm7WAvrmfe6iu1bl8FG/0wHKMFAr35V5cKpmgG9+6kznqiQfzl72J4KA+ZoW97eoNGJ/MlX22OyfnCzYivqTIYu6nRVuNpHnuRWt+zOBbwJLRN7XdNmQw3PeInw+FZ9x2DVIvU3S/vl5cVzPYVKrhV6jhYFxQ4nuyFjiHWKIEeRtHO7CBdjHTWV9qHXdq9xP1uuAQs3Tal+rOZlxgSlh6Je5ycwiwuuCy7YVpbVwoeZj99o4CxAa2j3Nfm+4ZmVitzfsJzYxF6xb88SBApFZUAk+D+mKcSlwRx3qPQBAxhl+SFXRT8hk/5rqfaHm+773j1Dzybi/Th/u1k59/dOLvWjlt/aWrHwr6LhuqF7rUzYGgFSzmWFttSOLgvq0bcAxfVBHrbSFfmySYUl/Q2jXBGasZrS6Lww5ysURyXLBJGCBy3l2zjEw0IcA7RpbqsbuEqXh30zr3TZ4XNaNzW+gCRw4PrdiBQbAxP/OfqW9wkrFlrUJFSqs2ECU2KM/FmWIcwRddoIVHRTm0/nYS5w8NOP39pAfuGBgEkWtxpN7a9VoazTs94bJYm1mzp0pJAzo0+1iDZ48yibSxcoAw8CK9av7o1I/IGEfrabp8oqWIq40t6thUMKv9wZKGDDrOR/P8DAIhl0z98UlqAX3yUMXTUXxuIA1N0x086ZsHYwwUQeM2CcIm6zcJwCybTh0ww9wzpmg88Es+HywYYkDn4YZhrZ6YW09xsLtho29BL4UTM47UnPAutz6dKrK1TjP17/RvNSJzbhdM0mXwbjm/ifr1ZlulFh/B1vgOSZl2ICNfSO/xfuc7fmhMM4ust71nChMXamyEZt5aVqv3oh2R+qXUHLC0qreaPBCs6wUUnf0/xsAAP//bcROCQ==" + return "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" } diff --git a/heartbeat/docs/fields.asciidoc b/heartbeat/docs/fields.asciidoc index 2a212a2e68d..743ac1e13fe 100644 --- a/heartbeat/docs/fields.asciidoc +++ b/heartbeat/docs/fields.asciidoc @@ -3775,6 +3775,36 @@ type: object Kubernetes annotations map +-- + +*`kubernetes.replicaset.name`*:: ++ +-- +type: keyword + +Kubernetes replicaset name + + +-- + +*`kubernetes.deployment.name`*:: ++ +-- +type: keyword + +Kubernetes deployment name + + +-- + +*`kubernetes.statefulset.name`*:: ++ +-- +type: keyword + +Kubernetes statefulset name + + -- *`kubernetes.container.name`*:: diff --git a/heartbeat/include/fields.go b/heartbeat/include/fields.go index 79bf5a59353..568a23c8aee 100644 --- a/heartbeat/include/fields.go +++ b/heartbeat/include/fields.go @@ -32,5 +32,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "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" + return "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" } diff --git a/journalbeat/docs/fields.asciidoc b/journalbeat/docs/fields.asciidoc index 809654a5d90..e4f03837fc4 100644 --- a/journalbeat/docs/fields.asciidoc +++ b/journalbeat/docs/fields.asciidoc @@ -4179,6 +4179,36 @@ type: object Kubernetes annotations map +-- + +*`kubernetes.replicaset.name`*:: ++ +-- +type: keyword + +Kubernetes replicaset name + + +-- + +*`kubernetes.deployment.name`*:: ++ +-- +type: keyword + +Kubernetes deployment name + + +-- + +*`kubernetes.statefulset.name`*:: ++ +-- +type: keyword + +Kubernetes statefulset name + + -- *`kubernetes.container.name`*:: diff --git a/journalbeat/include/fields.go b/journalbeat/include/fields.go index da63438cf00..6e168e5e925 100644 --- a/journalbeat/include/fields.go +++ b/journalbeat/include/fields.go @@ -32,5 +32,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "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" + return "eJzsfWt3G7eS4Pf8CqxyziqeoaiHZVvRnDuzuraTaG/saCx5MnfmzhHBbjSJqBvoAGjRzJ7973tQhVc/SFG26GvvKB9ikewGCoVCVaGe35Jfz969PX/74/8gryQR0hCWc0PMnGtS8JKRnCuWmXI5ItyQBdVkxgRT1LCcTJfEzBl5/fKS1Er+xjIz+uZbMqWa5UQK+P6WKc2lIIfjg/HB+JtvyUXJqGbklmtuyNyYWp/u78+4mTfTcSarfVZSbXi2zzJNjCS6mc2YNiSbUzFj8JUdtuCszPX4m2/2yA1bnhKW6W8IMdyU7NQ+8A0hOdOZ4rXhUsBX5Af3DnFvn35DyB4RtGKnZPd/GV4xbWhV735DCCElu2XlKcmkYvBZsd8brlh+Soxq8CuzrNkpyanBj635dl9Rw/btmGQxZwLQxG6ZMEQqPuPCom/8DbxHyJXFNdfwUB7eYx+MoplFc6FkFUcY2Yl5RstySRSrFdNMGC5mMJEbMU43uGFaNipjYf7zInkBfyNzqomQHtqSBPSMkDRuadkwADoAU8u6Ke00blg3WcGVNvB+ByzFMsZvI1Q1r1nJRYTrncM57hcppCK0LHEEPcZ9Yh9oVdtN3z06OHy+d/Bs7+jp1cHJ6cGz06fH45NnT/9jN9nmkk5ZqQc3GHdTTi0Vwxf45zV+f8OWC6nygY1+2WgjK/vAPuKkplzpsIaXVJApI409EkYSmuekYoYSLgqpKmoHsd+7NZHLuWzKHI5hJoWhXBDBtN06BAfI1/53Vpa4B5pQxYg20iKKag9pAOC1R9Akl9kNUxNCRU4mNyd64tDRwaR7j9Z1yTOKqyyk3JtS5X5i4vbUHvi8yezPCX4rpjWdsTUINuyDGcDiD1KRUs4cHoAc3Fhu8x028Cf7pPt5RGRteMX/CGRnyeSWs4U9ElwQCk/bL5gKSLHTaaOazDQWbaWcabLgZi4bQ6iIVN+CYUSkmTPluAfJcGczKTJqmEgI30gLREUomTcVFXuK0ZxOS0Z0U1VULYlMDlx6CqumNLwuw9o1YR+4tid+zpZxwmrKBcsJF0YSKcLT3RPxEytLSX6VqsyTLTJ0tu4ApITOZ0Iqdk2n8padksODo+P+zv3MtbHrce/pQOmGzgij2dyvsn1Y/3Mn0s/OiOwwcXu081/pUaUzJpBSHFc/C1/MlGzqU3I0QEdXc4Zvhl1yp8jxVkro1G4ycsHCLOzhsfzTWPlWeNoXS4tzag9hWdpjNyI5M/iHVERONVO3dnuQXKUls7m0OyUVMfSGaVIxqhvFKvuAGzY81j2cmnCRlU3OyJ8ZtWwA1qpJRZeElloS1Qj7tptX6TEINFjo+B/cUt2Qem555JRFdgyUbeGnvNSe9hBJqhHCnhOJCLKwJevz530xZypl3nNa18xSoF0snNSwVGDsFgHCUWMhpRHS2D33iz0l5zhdZhUBWeCi4dzagziK8I0tKRCniEwZNePk/J5dvAGVxAnO9oLcjtO63rdL4Rkbk0gbKfPNJfOoA64LegbhBVIL18SKV2LmSjazOfm9YY0dXy+1YZUmJb9h5C+0uKEj8o7lHOmjVjJjWnMx85viHtdNNrdM+mc504bqOcF1kEtAt0MZHkQgckRh0Fbi6WD1nFVM0fKae67jzjP7YJjIIy/qneqV57p7ll77OQjP7REpOFNIPlw7RH7HC+BAwKb0k0DXXqexkkxVoB14BY5mSmor/LWhyp6naWPIBLeb5xPYD7sTDhkJ0zihx8Wzg4OihYju8gM7+6Slvxf8d6ve3H/dQdxaEkXChvcWINenjAAZ83zl8vLW8uz/t7FAp7XA+Uo5Qm8HNaH4FLJDFEEzfstAbaHCvYZPu5/nrKyLprSHyB5qt8IwsFlI8oM70IQLbajInBrT4UfaTgxMyRKJE6ckilNWU0WdCuKWr4lgLMf7x2LOs3l/qnCyM1nZyax6naz7vLCKr+c8sFRkSf4rWRgmSMkKQ1hVm2V/KwspW7toN2obu3i1rNdsn+d2dgKiDV1qQsuF/Sfg1qqCeu5JE7fVaeP4rpXm44gaEXh2wGp8FkncTTFl8REQYbxobXzcsS4BtDa/otncXgn6KE7H8Xh2l80toPrf3DW2jewOTM/tHXdPZUeJGpOVvKPHvIzfrFFkztybluByVoDCR3HnuOCGUyOBKVEimFlIdWM1HcFAobKnzsOGCopiM6pyEFxWLkmhR8nzKLSmHG/6XFrNtyjlwt7QrE7XUpuvXl64UfFURDB7sNkv7OMJZMBFNBNBXbHPXP71LalpdsPMd/rJGGZBTbtW0shMlr2p8EZrxUprUq9nKbiuM3sp8pqAx5JRVGgKwIzJpaxYkM2NRh3HMFWRHX9Nl2onavWKFUy1QBGdBWpUM9zPTgfFnZ2yoIOBDpogAEEgFiwx89scp0jhR23aEZGfwJ6cRjcWIW7UqPxxYcH7rRG4AaALonbnjShkYLSIYCFNb0zL1XHD9uCQ+etruPTiePt+omCmAGaNcsLehDWrqDA8Ay2dfTBOpLAPqCyMkIN/E1i7FyxGkltu18v/YFGztytlCrR9zU1D3X6cF2QpGxXmKGhZeurjwss1w2ZSLUf2Uc8RteFlSZiwuq0jXLSNWK6ZM20sfVicWoQVvCyD0kXrWslacWpYubyHVkfzXDGtt6XQAbmjCu+Iy03omG/gM9WUzxrZ6HKJ5AzvBI69sGjRsmJgEyKlvQFSQc4vRoSSXFZ2A6QilDSCfyBaWjoZE/LXiFknI8BoEdWCOSOKLjxMnvAnY/fFBFHWFnHC3gCiBMsbNFrgFXQy5vXEgjIZI1gTe42rmcidjoEKghQRCLhPuB3zuzJdGqbvkCmlDLo+Xi3ar7X24c/2B7xWBMue2w97b7b8AK8DXflyeHLcAgwXtQVp584vjj9uzTljcpxxs7zekmb6kpslTNVb/RspjGK07IMjheGCCbMtmN4mWnKYrAffW6nMnJxVTPGMDgDZCKOW11zL60zmW0EdTkHOL38hdooehC/PVoK1rd10IA1u6EsqaN7HVCmzVKdfBc6Myeta8sCX2lYpKWbcNDny6pIa+NCDYPf/kJ1Sip1Tsvfi6fj54fHJ04MR2Smp2Tklx8/Gzw6efX94Qv7vbg/IPr4ejk2/10zteV6c/ITqnkfPiDjlGyWwLMhMUdGUVHGzTJnqkmSWuYPOkTDPl55nhqsNUjhXKE0zJgxTTvMqSikVEU01ZWoEqvycR71Gh0ERvJLU86Xm9g9vWsv8sdYJCG+lSdwHYDjkgtDGyApY+IxJv9r+BWAqtZFiL896e6PYjEuxzZP2DmZYd9D2/vXlKri2dNQcTIMn7V8bNmVtRPH6DhjCA23iPL8IAtpzRBAWKWWhFUAKZmVvsGmfX9we2y/OL26fR8WjI2srmm0BN2/OXq6COp0cVdp7iPrWJBf49kcJ9qM2HFKZjwVCKrNuiY1maswqysstcS/LvAhM4DE+AEDRlOXAOXhQIHY1sdPAtMCy6C3lJZ2W/eNxVk6ZMuQ1F9owp1C14AWtfbw1S2vf2lg4yzpMHAwicEvcr0tqrI45gFeEc4uITTUhnKwPxJzq+dZEI2LKzkPsPPZcZVIpZu+lLbN+gTcQ+6CVKUKKZeokRDU9YVrvNXMmywmsgud4c4APdnWT4ErKpChwr2jZmtPqGhkV8cZMvOu3w+XcDFvgdL90mG7TJa3AAAGGPlRbkk6Xc8uYUM0ANw8XfUCSI0nhSLbsaLLBKYMZzX+x2oqGER8EySP3TBiGImAaKhQNbuDo4MLbMFqH/aUObMRkpUOrIG+YUTxDQ7NODdlUkNcvj9CMbSmkYCabMw1aVjI64UY7H2IE0lJX2/Xd8mFyHQykbRDcuKoRzjmpWCVNMKcS2RjNc5bM1IUMYaLEec/8gvymi/iq0xDbXnocNA4EbkI3uReEdliuI6gOYfexl2Rwf9keZ969igjCucA9qmZU8D/w0PM8uLzdKVuSnBcFU6nNBPRgDo5eQvF47hkmqDCEiVuupKjaSlSkrbNfL8PkPB+RH6WclQzpn/zy7kdynqNTGkymvQPf15yfP3/+4sWLk5OT77//vo1OlJC8tPf7P6JZ5KGxepbMQ+w8FitoiwGahqMSD1GPOTR6j1Ft9g47Kq3zJGyPHM69B+n8ledeAKs/hF1A+d7h0dPjZ89fnHx/QKdZzoqDYYi3KLIDzKmvrw91ooDDl32X1YNB9MbzgcR7tRaN5mhcsZw3VVtLVvKW5yFIYZuqDnIAP+HYH840AIsu9IjQPxrFRmSW1aNwkKUiOZ9xQ0uZMSr6km6hW8vCW+KWFuUuiR953FJxjIzeYd+L5NaXa5xb4cG2A8N5FnrxcUnITs0yXnB/RwxQoHne+aCclV4W6SBJsCXTzM87Z2WdKJAgrzB8NQytnSQUS4sgwyt2DwG1FR3PKcFx8Txvn2Fe0dlWeUp6NmCyYBpFgBZUk2nDS2PF+QBohs62BFmkLAcXnbUBSCJA18+eRIKuiQXtMluY1IVVtubd4m7ENUfjT+AmSLLbYic4OqmooDOrvQE/CXTQ4yQYgZqwkcSLljKSV52v17CS5NH17lbUnpOnwZqKJp/9diTmwJiJh/Uu3ypyH+db/RJ9fy3X5UYOwKjGYvD2AzkAw7DgCPzv7QBMN8UbC12UfucQfTYvYHoMHl2Bj67AhwHp0RW4Oc4eXYGPrsCvyRWYCLGvzR/YAp1s2Sl4D2G/Fc/gysU+ugcf3YOP7kHy6B782tyDmP/dyQBfZzh4wwzdS3fHmxZdhjlOucnF/a6kg4HM8U9Ly0qy6kH3chG9EhajiZFjMmGZHruHJpjE48GIFA4eO0uUVaMNpjLBYSh78dyE/Gpv2r83TC0hQh1zuAIZcZHzjGmyt+du1BVdeoAgib/ks7kphxxjyWrgfVd3wIJWWsHJhWEz5eLGaf6bBdWLzGzOKtrBP2kl1+q+sgiFCFLKUUq2rNivwxfr80yjFTmDpCQX4o4DwjmiYkluuIgWi/eYYlBhWhQ+B5ZrzKi0yCsZumEtmn12KfCojGqmYyqmXxbsPTealUX0vlKBo9/D/LQl9RiQCYP7KwKaCZkDsK2IbtFaPiA9ByBI89dXgxFy2AcX67OxUxq77eQAvb7dMJcZ93fIS+LTGYYdJaX0SiA6VBTPWrQSSPIM0uPbSUaWfDxPsQRltyxJHwbL3xz3kcZsYM+kf45p/MBYfGoz5NbwitnLqvc+2W/tQGGMmBEti2QRbjw/FPUZtgSSSH2ghQufiClRqLuTKcPMJ6eCuzGpN9UaSWiqEo/QeDmQVzVlZsGYncnnT4jcxUgEPyRO5lKSMEc6K6UV8uTM78Td6MbLkhuykorZGzeYk0oYEfNV4GOaaA4ADSM6ecwNG1O1W1hPqSWivGKVVEtimRzkw7jh8gTxkeBum1IwhR5+HnPh3cPaKkEsx0z4+wR7bGAK+uggDxydZLTGkhAuC7LtGHBJscHY4bLP4gHkSaWXMTkHlyTsXtQu5lSQCT7gs44mMcMybIQ96xNAyB7N88mITBzJ7wHJM/iq4CXbyxSzhDbBVB1flyWMGBKwPcW5lXE7TwWWnb6QtErXXk21tsjcw2ystrhwoG9jO17jYXAzdJEfhNycz+Yu/WyYBwKHBAFa9HYljAm7A9lunc1BgpiM/J5qJrRLA4uGKhrADHDFkb12RH1m4K9U2cMN9Q+KBmLOguojC6sKjciCkbqkYBZw8QaEhiFLV2yDZhmrDeRAuxAElGledRqRGqssNZqhVyqjzbDtDHYa/HeRNYRNRsq6Y49DAaTuPjoix0F6UWzD1ZEsT4KCQWHNilGgWZ9qjrmqS8zp65UMckSCCqQ9qtyy9czZXmKRp5D5l3wVt9XBGsYMHHWgJlOoFdNlFeeCVFKbJBcRDKiWiBYy1lPS6E6bsgEtGY+0/5hFL1XWriqU0TIDl6Sz7pR0GWQV4MlJOlcIClR4J3RioEpLdMC2wKu+morSxktdlhPeSfn3kFRS8JiIS5IhdndBk/U7Zj/6EDAjyQ1jNWlqJFZ4Ka1G1cYqpKADpG08WpaJal5Gy1G6s9E/OHDbzqmhmt1lVvsoTpbaQ9w0nQz9TAp7lNGeP3HPTMh3lrNrZsi+E8eamSeWnr1lHCtLWOWB6GYawYfrTyXzpmQaWF3r2KV8EjUDu4ONsrRWLn0RKS7ipOmFH0kk/oTT2E110MLDfRajDTXtGKe8UZv4dQZ8qp03uagbc+1/FFRIzTIZs8s7sQLu5ZZAsMtNXmwXgsAzDRIXFo+fmdX6FCM3Qi5EWg4t0pkZPrf+UMLsAm/fOHoSWBRuDWITi+Iq9htB7XHeLtOFQe0+hu+tyLpNnUeWL5fUSh8sDdSJONqiUe8nqufku5qpOa01FAiCwjkFFzOmasWFeWL3U9GF4/pG2g0A4WhkWEDOKim0UXb5cOMBuwI3ywGTuw/ZHPrr7M8vX322S+v5K7uaEM+SKKQdmAdrx9zwjQjoo1VmO/5wKTMnhWf8FiKeu8rZwilR3Ri9hCQ9zUbx5MuzuctcYq1bo+t19Gn4dhLHnFjWxKwmTUuqqsmXqaIBkG0zBXDebUssx9/Rv7u2ZA6WCkrvQa0nk9G6EkyqUAurv/BqqX9vx3h4ZWsbS39HF2DZCUX/ZAE+axWo6b1TctbwkhVqqJBWzuTsA0Oen8vsOgkezrm2lJKjxAYXASiEjKpszvJIsNPGEB7KMCkritmt10Yn16gtTfqYvGQ1OfyeHJycHj0/PTzAkN+Xr384Pfif3x4eHf/TJcsauwD8RMzcKu14K1D43eHYPXp44P6IJ1Oqiugms6ph0ZSoSNQ1y/0L+K9W2Z8OD6AM7CHJtfnT0fhwfDQ+0rX50+HR07ajUzYmk9uLq7Dsy02xioO1iqLGG7+9hmRoJYqHWbdlbGvkpNSRLzsTrS34oONODoWuQGdBedkoNsiTwogb8abNeVIYd3PehDC39k5xfXOtk0O56pgWpaSDhtR3XN8QGAGr6XFpibOttn3HxrMx0Y5wiZYlgKifRGPKe83c9Qdco3ABcZc11NfmTHXjZQPs10KqagP6W7mI3bdgeeF/sByGvWNBo2Acszp1ERZxYPfy8OBgoDJbRbnAaBnnm1zKBvaswnBKKsCO6KoLwXWXas1nQicA6fYN0A6xoJixrJmlHhGXgVhz3h9alr52Ukdx1eyWJaFH941UuHSvd+xsYe/88B1Z/+sco6Ciyuev0fENR/YVowKY6C1TyXU7qOcWh+BvsQx5N5p0mtrrG4n1DK699IYRsIu6qTjzSYRCc23AVoxo8661zkHafdHBob0VfLL6j3eLOy8AzqSYXgFaTMteBaJpZsUdwN5gtpg0tptI1HjPSoqctpa0u6ujaSCt8UmcLHY+CQdzW0ktFaP50nGYnBW0KQ25XGor66O9IWE052jdAEhpiZl4C65Tu8VZ5L1hUpwSCOUUTIlCCjDpn79yk++8bpSs2f5ZpQ1TOa12niTHdTpV7Ba9DP7xy6udJ+C+EOSnn06rKhI3p6V/au/g2enBwc6TzrHdVpXCdwzJBaSNU6obdJGFtbiq8PRWQj5lyCWIlb8hVsOqoeO0SnDBnR7sHGs/+M9rS+tBXfuOE4ZoZvr3EfBvaTK1XKFtDnV+IvsruM69dwNsIcAWY9k8O52r3+11N6q1zHgszwsama+r1yr2pkeWMe87M4vnG+idgQ21mojUzFXkRgs/THnu9VLyBs1yFq3/+cP5m//y1bt1dDK5jFwowAdeaFRsvBbRz6WgRcHQFGof76zHU01S9t5Zju7jk94wdWUVD/yZ+sLzAGLFDMV4VvBndNhXzuzyt8S8XsHgK7LUMH267GgiMHc/sOTh+Cnscpilq16ERI1SLgijemlBNAxIaLpEhIaXB8IsaifbQ9Tr1sLjLhSHouoYDGdZ54/nr56sRmykuW3Dkmbc9uHgohdy8YBJvzJn7e4QHgjvz0r5FGnbFraW+GuBSvBhQZGZoWWnQGRPOTo+fN6G8WEZgzMegYZTyZwXvMsc5EJsLdEYpYOdYBesI6qfxVdTsy3z6gU1c6/U9mlU8z82wfMqTR6WZsewOw3pUOS7YBOR9u5C89zrbhM7FgSrgV978qSjXlI1Y+Z6i6i4ghkA2aBx6GVVcnHTiVDeYmI8oAvsouD/GZGcK1AyHCQdjDRbY6lXLu4SuOl74KYqXrWTUKrvLjusFgk5jX2aMZkqaD+6j2v0sx+ZTCPrMqrsJS3WPaHR+utzQtISL1SkOlK7yU6SRtJS9JxSljPFgznNsGwOZvhYtt9Cdn6RBLqgR1Ht6aauSx5cixspN19O5twXnzX3BWbMfWHZcl98ptxjltyXmSX3JWbIfQHZcf3Lgpdf4YvVEuwqpOYkgbsVc1bVGCkOz7gIcGh+wEp2S8PhdFpZ4vH9mJIjX1Qa0ufOPQrxCVK34q9/8p/Xmol8YZyWmchVxieZrOrGYKyvq+IUujq9vMTgVt+aadhgmXZlimYV7MEUC/S0I/19oDSohaCmDEb4prG9dq2A1xDM60acU5UvqGIjcsuVaWjpCzDpEXkFlTqSKjhghCJ/aaZMCWagRU/O7lXfQmVzbliW+K8eNLOp9pFtvplCMl/vnH84eX79vF1G4bGawWM1g/uD9FjNYHOcPeppj9UMtl/NwMrPLUGy+5MbO61amIaMmKTdnfe5Lpxbmkw8ZBOrO1T2/CpmGoUlWntFEHfXanUP2uYO9Zy0sNKZDnj04UuuZwtmDI/ARe686UF/tSouFzMIRnDR42uLm6Km7OKP0SVoMTuBFnmAqS4WPq5SBWhAvB6uOLCdChM/ua0cnnNb9Pl2LW2CMc0lqQNVJhSZUOJ7KNqFgR2OSUJQ1+8NLcE0HsZ0pb6whALmzFkAnHUuphpBCjfstbaSRJGcZTyHbFaruwIZRcYu7fOdjZd6XNCKl8stiaZfLgmOT77ztj7F8jk1I5KzKadiRArF2FTnI7LgIpeL6P6P1e3gyR7cTbmtYho9ndcVswAt3/t8fKq4T8MdVkFpZnHwRv5Gb1l3BTdW5f9sa8DZAthw51J0QbRRQ8VJj8fH44O9w8OjPZfE1YV+iwrNCvz7SOUE+6sQ/u9daP21+XNB7OdzdG91I6lHpJk2wjTraJ2qBe/R+mAphO0BvymNHB6MD4/Hhy1otxXs4ltydtjvD1K5it2+irDrC+s8D6366HYIaCw8CZWPJ1Dg/bYaJQowBFknum64rI/StqtJbfDU4xFldRhxSGYPFCZ5LA/Upq7H8kCP5YEeywN92eWB5sa0rPg/XV1dwOf79A6xL4Vw2LEv5kImjSonPjCVYeB00tgSgFSlh9c1pt3cnu9fmMp8OR6oRHtXQMad1WgvW/EZbTAJzNpF78nJi9UgumCaLZ3hK3cdwc1YC+VPrCwlWUhV5sPQbgGXV9LQshPx0sHodxZYOOxzRq0e0FeuDo+fDiO4YmYut5bT10IpTtXJVkYixywAqO0yZWl6gJGklAumIEHbslBfMGpMLpnLiZVZU/k4rzC2dvVVds59WL3V8l6/vNzpm8dmzIxIDYVe6sYMognaNKutBWy9c8PH7JkUc73dtLxHn+7vT0s5G7tvx5ms9juw61oKzT77OcdpNz3oKZCf96Svg3P1Uffwfu6z7qD9uMPugNaGmkYPmHrvFYPXRh+OOWzcPT5oe8S2e5sDuFZdjw/HabMRXwfKCe+f3cc7ZTeal2ir/I6EjM00CWcTIQyL38Z18Ref1GShCg4PV8Grl5OIRfxbKc0LqsRkRCZQzMz+wQfSP5lSreVsM43WJ6e1UrbsYnxaLe2WJIBTnjyRqL8F1k4quUFPuyENlG4JGmpNVatO4TmaOBWNZQInblivoyFVpMZQaDnvC7vYEdP8O78XbpQ07bOT9ekWO+otyKf1hjHn9JaFNCNtNxXDjjNf5xCjCdEIwEQmsV+BIoItSMkF09DQ7Ta5kNirTMmogBy1NsifmpVMtHRJx7u7IPKtWE/twFNv7ALF4JOTk8HTBj6JN0t39oPhHBNjUm7wNvnqjmJ6Pq2mHdKBppOqaoTDP0YAy1umPAeJ8SMEdyFJz3EhGTptMOSf+KgAED96pwZHN2HIF/C5TwhGjc0xtphUcoa3tBm/ZQKDcdNZHYerlTQyk2W7hBBVU24UVdHKT1y6qksdg1KBGg9FxTMlfcrSCCiQllrCZEs8+fFhfbOsWbSc8ez3ESloxqZS3oyIWXBj0EHBNVmklYIsq4nlm2LxTXLLRJ5UOYLoaGxoGCKJrYjNQ+RwKIOAp2A/tzr2+QWGS+sRFPbWI5KMueDKZwh+gVo45e1mbA/dImUXtSvUqoyiQoPODTsylfbccMVcXbVWzv7EVYyCN10qfVru3H/vy/eMyMQfVvcTyi4ed0I3VR8BT5+ftBDgOIhZXm+vGeUZWq2gBCckjwHTTmrJn19gBUhHTVSTBStLx+TCevzxi4EJbf43DgnmlBgpyz06E1IbnlntUeRUtZpdhmGLUi7SzfiZUSUwFZ2acAuacTNvpnD/sQQCJc/2A/L2eL5ndbWBsr2n81/+Ub89/ukf3/z47M1f90/m5+rfL37Pjv/jX/84+FNrKwJpbEG92XnlB/d6mmfXRtGi4Nn4b+Ids+vBokpRnJ7+TZC/BeT8jfwD4WIqG5H/TRDyD0Q2JvnEhWFK0BI/WQqKnxoBhPs38Tfx65yJdMyK1nVSONi1cLXCaw+72lUxD9TVjx0FgZQoNumYgXPZYXY1gdAku/hbzhZjhGHFxB41UpGaKV4xwxQC0gJ6M5giIC0I7L/gtXCTpSOHScc7XXJyuG/RTSHVgqqc5defEmeQdMUIKenuuCY/OQW5VvLDQAWq74/Gh+PDcbskCqeCXmOk0pYYzPnZ2zNy4bnDW5iKfOdP7mKxGFsYxlLN9lEwQ83Zfc9P9hC4/hfjD3NTlUm+/KXjIyCvfHUS/5Z2/IeWUKkCOBhoPG+Z+aGUCyyaBn8542wYt5Qzf+trnHV2aE09hLezC7ftAUHlaLokEhyaUARceumrY7Sal0tdaH8EA92vvOAtsD+tUYkTuG6QjxK57t0BoRt/GRC7/seonzkBPCx4j9pGCk8127jK/vzC3y6izITwCcI+jEGijUgJFPUbzawmaZFmZW/UcL88zS24QoIn3EO9DRReWoKnOtBywsRQawevKY01Hxj5C86THsNQ1D9iuKRLy5yavB4Rk9Ujwuvb53s8q+oRYSYbP/nyMG+yDuK3FIJwjkLnl8tzyLguUYgu0lABT9Y/WyyOLe6OEYPJLanWLBuRmleA0C8PnRboxDTgitK0Wjn8kn63LtVDhNf7ZUFqlnFaegoehTxYDHnrXamxjkQoiJszwzIz8uPDS1hI5O4R99ryzSlXSRHWdnJrCAahJGu0kVXI8MBBoQs4OLbdUjvlTaQo+KyJLUKMJKoRmyOAaFkYO11S4aydcVJwxRa0LPXIariqgegdxBCXYr9WsEQYyscfeh0y0RI1E1qqULdqwaYtKJJJIN67lFqToaEtIs8u3jhs6LTTqaeG1IBDsUrzCvuNY1A4OEaMiOUorf+G69SBFLQv64LkoKPCvAbFvpiKG9OVVCFvnG3194Y1ODB5ffUz5ChJAVTj73quhHO7vYgjJ29pUgxMg1C7KmdQt9/hA5qyvn55eQ+j02NezWNezf1Besyr2Rxnj3k1j3k1X3VeTTetJkjftv3j44wy/S6lw8N/tk6jLUX1McHhMcHhMcHhMcHh4RMcNFOclts1GPv7tZvMyfu76mU9XNMu30MgZauh2cq6cvVMubxGezH0mpM3RMeRljXT46GoG+8qUGkzAX/xhCicXMM/tXatuz4s4Q9ZlgzCdPASa/+KV9CB2Ag/ZgulLe/zQyI1rBxnSMPTxx0I1vc8fQCSShhLDFuaUcH/iMq+N/N0v78jDiQdx9/vmVA8myPhwMV+VU+xqqbCS2mpnL7aIrpOpEYaGBJ7hs5ZWUOxbaoUFTPfRse4IrdJLx4qMEgHPAbtAP0ARlzPfUpy/B1SUlJQP1tpmJQ+gnoQuXqLlAILvgQWfAc5XYGdtdMEYAXpyA533zz68KvUDL9ytfAr1gm/IoXwK9YGv3hVMPGQhhYdjstdJF9t3OR6JXML3XiHJV1GRZR2Md3O2ZzbPekgsDE09+X5fkLLLqikFVcLDNh3Rh3XkHZXGCaINnSpfalj33UXu2TT0BULFMSao6MGkhJLOaVlUnTegxsNSpuVupptkmzwcTFgStGlC5cAJFE1A0daaid7A/0fnT6By6uVNCwz4Dzhht+28h17eqf7uEd0yMbcI3tl+LPR4U6xR3xTn3YUBfvAsgYaHmwJFWdT6PnCMFzX7aDHSpy9d0L2G632p1zs+7V9jhKV7sQ5KRQ2yl4toKMEyWhZMsgOnylahVxHzSte0oEOvV3g6zsTQldFflyE09YpOt0b8l55J37YmkJ1l+7on9rf5Mp3Kk133fUx6Zvtjw4On+8dPNs7enp1cHJ68Oz06fH45NnT/+g0wJgrRvPNMrVXLfsKxiDnr/pC++i4HdAFzHjbBAeTdMJQLLrg+xEmHyAFgvvShWvUKbmSl1RgdPU0NrU0p2HIpNgAoWSq5EKDScDnbDgg/BFdsCmp6YwljUclNn9v78ZCqhsuZtcYdtTrNf2giWZuLhLm8laFINm6TGQuK7ZPS2wZEVO3or/eidp3yVdrRW1sbsOwbbivF1rQjJfcWJlZ81uJ3XuVbKD1fM1ZlrSLgv4ofrPBbgEP6G5jExelrhmDnuUVFUurG2Xgsbc3ztcvL31fpasUBDc0dqYD0wpe7KoR3lgh4N+LKOgQZafwhaKk8xeBWNW1FFZb9+Ids1IEmTgsjidhJWfQJ1cxE+wwFkPRss/0KEnrmTLSQJkh6EofjBojF4Y5ikQQO/5jP/8R8Y9SkYeYpTQuFMpwwLW9rqGBa1mS8wsv7Y2M0PN6MkKVh4IWIhzSXG0BDAI8vyBG8VtOy3I5IkKSihoDeScscG9uYDKqWD4i02WIpUmnOqXj6Tgb55P73P43aYIx7FM5K0Oa2vmFxj2WIunbnF6w+2E5l5sF5bjnBtJ1HPG46gwhRiSTQrgAoiLYx1yUg2IzqnIMH9Eau3HH5zV2FechxNFqgRhhmkmVdAX+QSpy9fIidOYBphnARNgyxu1nhyAuOJR6uPzrWxdd+Z32JfO9uvzyIoFlDJNgxZYQE9udyVWhLZc9fPjta4emC+2bDwJXcDEwhGam8b5UDLBjqiI7YbwdLFhcBG0vhUJ0ANe+xhf87LR/7/LtJzp5VuLKtWbI2HRninQdjiFdtiag0E0KVuFGjBE6WG7jt0Zk8XqBJ929PTRYRG0sxRGHtKcXt3EP/eg+ldQ9+RKH3/dLaHc2wdsQzS2Xr6gwPPMx7y5Zin3A5kSOn8WLir1BFU1pH7vldrn8D5ZYHQXJmIL7WcxX8rxKhTkKWpaeV/kG+Bk1bCbVEpmVy1PThpclYQJa2sFjKzJOLMIKblVXNyytayVrxalh5fI+dybk5NtSh9CGj83ucGOC6MBcR89gqimfNbLR5RKpGd4Jqg606tdBaQePAbVsfESoL4eHpWOgiJ60dDIm5K8Rs66MYlohBE+VvdOH7ACk+8nYfeFSV9tqnLCSIeYV5g1GieF1b2LlD5SgGSNYkxHJmRVZkEnqy0vHdn0gZ3i3k+NDp3X9GfK5oPh5zIhzzhbXyBnOT9+scdIO+8ZF3QHZR5WaQWhw/E7jqMdItsdItsdItsdItsdItq86ku0jA8l2+5FkPo4sUhZePztuWnJ+cXtsvzi/uH0eFY+OrP1sAWhD0W+fljx24bLGPkawt21iG+QhrQRCQuGOlUt8LF75WLzysXgleSxe+bUVr3SlReC5xILmv7oj2MkXJunaY0z6m1QD/YSsLuSAW1BNMlmW0PD5joCmgovcFXny1Al52UiWoRKXn9s+6WMGNjcXsHrOKqZoucVyG6/9HCl7kk4B9OB/xwsQ99ADXD/p1lriedISAiw7mtBMSa2JYuCuctVrJm5AOH25hAZLpq/6ndDj4tnBQdFWaLZxnHb7rNlXt2uEQEMqQtxfsrNK4AksQ8fQZQt1Ls2/ojdME25ILbXmU/QTBdIJQwMJJamPSLOC9QhqqM2Et9kru081U5yJDHxTWjdMo13QjqVYbhfg+nlF8z060sO4vjM8zzFxPwYzwJXLEzvazbiYQadj1yOst6P50xfsGZsW7ICy59nx9y+O8in7vjg4fHFMD58/fTGdnhwdvyjuKlHw8A0kPIXHWFp3/gfCadNbVHgRAmwd7YM0Ap9HqO5QyoWG+9RCBvTE65QfCxpKeFahIvF5xcD+Hgqn441PtPyUvFUhwnWkCKcNxFva+KTEYmcOPLuNOddG8WljV+4rTuHeqgbcHkHizKU2eph80UrvrdJusQSLsrildEIDXBY3pFDLgrwuqTY8cz6kBM2wBJf768U06tuNNky1bkXov/gzo0b3h+DaYidnBW1KAzWB6uAGDfgy0KMZOHIYkxdESOLHCN0/BsoQpmvYS5NOk6gAsxVjjOsxA+N36PTvE65+r9MFL3rXpkssR/14QM62mKSV6MAlE4XBr2QFp4RBYlIwnLo2dG1iHHWoIwwaKg5MWhs/VJ8y/b21HdsLNN/9Nx8g2t6Q4FNp6Tz9XYk8DKodyBtC7anB4G1msL15R+e5jVPSQH790mLjo3Fa2QBdLy31L36zRvvDp+52xHnfDkCFhoD9duXR9kiJx+0OX1vqKXIOty/SI+R8W48eoS/EI4T74QxHaSGhnvXos7mFEKRHt9CjW+hhQHp0C22Os0e30KNb6KtyC2E9vK/NLeSgJtt2C20u3bfjGxpY56Nv6NE39OgbIo++oa/NN9Qo5FjOMPD+3c/wcbVV4P27n/093nWiJLqpoaQmJrzZiQyAU1MFe/n+3c+uWp57MoS7zxmZKkYxdUIuBOHCSKKzObPMBS9LI8jPcu9L4tn8JhaAodvcwx2aV+5y7tCtylGo1r+zWCzGzig1zuRO2ywLOTMZBUMB4LOiSwySdkG8ViPA0n6AVwwqL5cxT5a2l0Zcng2YfKEhgmYjF10fi0mDdjqToa2Ju8U7Q0BPG2wvoYXXQtFZtb3OTbtW2iaWtUaVhBbGleaYfDtJEG1kvdMxdk6+nfjmJK4XCyrcDugOz9himvl5gaLS0j+YhHhl99Ol5UBgdaNZ3K1lYnvB8g1hXVxAm0CQ8JMRWcwZhPebVjsWxTIptFENGBwt9WDkuDf+tA1PqRoz0G2svf2nx8dP99G8+i+//6llbv3WyHZZ2uHmQA8prLDZDazR9QcCEtEhHymstq9Kv5XGRaRzMVAcdJTWgsnD6YSiqH4zR5heQ3W6PTSDhLdSztwFz77KtUsn/q3RJoby+9KwlrGtbK4T8rfCa2FYCv7OBdUB0FGL8Q56fj9qY+1oK37u6PlaJzv50Ht+4YYfbIIZYTDbUpAuoKFPa+6EBzkE7YzvuG3cL/01uXH0pjw+ftpPDz1+2pof0ry2dQYtn4UJHL0GuwXAi79ggYHBNQSSt+jr0FWPnf8LsHP2AQoBJ20c0lkgVQWFaeipJaR9Fw5jYhjHqk0J7PCq8RWdKMw3bUx4apRMhovFUI0wYuimVNUmwgOg45MT93bHAdfyMJMpMwvGokSHZKqFRD2hI7NQQdrW3l7C6KvJHRjJToelYhrs5HRQ9CK8K1hST1fe8gU2jTRI+EgKQUsj1ndnGl45dbvnKhsu5AOPogiC/sDslga57JSztvvsh6QQBr1FOxADK3B6J7HfcKbdUfB3OWygY+ZUwGs89+mrXnsPCbdOKMIxA9+kw1J1n7Cqv6MJ5CuyfnwFho+/t83j0dxxp7nji7N0fLFGDs3UNZ3520/C2Un8dgP+jmN4Lh/jMu193lUX8tUrgmRxwF3Z650rLTSXC9eGdMGmIW4EwmaSepNYPoIqqy00AVSvX2zOkrGfxOc6yW627pbwi7kPDPhcXZISCkHU9YC6pAVV/HPeXd8Lt6G37dihSFwDPvo/eFnS/WfjA/IdovGfyMuL9w6l5JdLcnh0fYiNKn2NtCfkrK5L9iub/oWb/ecHz8aH48NngZ1895efrt78PMJ3fmTZjXxCXDTT/uHR+IC8kVNesv3DZ68Pj08cnvafH3RLxD4WnR6E+rHo9GPR6U+D+L9t0entgvpvfa67QjRYLvjNN3t2llMyZdCDx6kNf8ZPrYH/Gd5/6S0PmawqKeC9EPPo7wmgR5au7IerEP3NigBGAK3TN2Fo9WubIbgFtka2kI0Nr9gfMVwPB6YlD3bNmpr5qbuKdh6u+ExRnM+ohrVHx7W0hpXT31gWOmDDh+s7V/LPQWAFzMKW+UZTgE4XFtqGAJrZtwCIOtLKSV7blzrVKqGkTJ5zV9LHqukQqOqC6mGeUNwr3UMyHBK+agfXgBVBS2KuWxvZo47+JloiSp9bu38w6CDZ9QcepNHu6O4cZaVs8niQXtqP3gwB4eLUZYwNYOKN+xVV46z1qrZbxHKfm0Hz/BoeuPZD+ipsUqVHrbVmeGFcK2lJM97MA0Nwv+x9WE9DqebpXrH08qOUs5Lhit0OfkvOLDIxDanM00MTIneYoeMAGCz1jt0YfHjtXidz+LSSmBG3fpqQkhSev/dMGxBYZ65NaTiZzWX3XCfHcP1k7oVx8sKmczk2z0tultcbMNf1b206q6O0TTeuR+WbzoPhdhvN0Xp0BT/IZXYDVOoYwiv/eeBw4W+Qf9PNqnC/2aOt51KZa5QPp6SgpbaopCKbS+Xn2wvMYIXYDWCRQemxiss7iZFGoAyjKUHV8CuD27FiqorO+rLlztnsW+lRuuesnTc3m/TjpyvplJXassyrX179YjWcBTGSVLS2fFazf+nB0lI3yHqVg6wXvecWVwRBGHvKtfIu0u1P+GlgkHOrLyTU6qyw9nWfdDhOCBQarQ+Rp5MYr19epjk0PCTFsEyPl1U5ds9hXjVVLhJZir34ZsfKiqCvp/TVW9MyhfohplKWjIoN0VtEjID7LW57f16px9OGl/0p+zsaBPfO4cmrw4PvdzYD55dLAjO0O5e4Xb9ppvYWjIkobu//kn43MHD8PSg4bW0lDkrSnV/PyeJLd3KzFtDr97mL7lrmw0f9XgcowUAtXVfmwamaAb75sTNdyJy8P3/VnwgC5muaPdyi4oj9yWTeY7OfOJm3FfUnQxZ1NyvcbCLHcyta92cC3wSWiHyo6ZIhh+dUDHLRNDMPi9A47gq05qwu5RICxx504jjuiokh1bhoygdfcjLwiqnvkPQfO3EY9s5ph9WaT58Xx3XsPPa16HW1GBjX10MPXDxc2Ia4btoz4z4sl33YVLHyhcV7bRLImgs42KXigndeoqHqf8tGCVrae//OZqatT7BqZVKxvKnqlbhZuakuDALiZ6ZLZ27M9/yA3kY9Z2UdvYKrMN0Ibj6Nws4SniUL31OkZTryoLlEemcgtVPrcR8izdT13wMsMKolQHmAfkOyyD96p5whAnbLD3bXvvQESH/aOxAQpoe8ekhNnrI5LQvM9gthV75Xxjh5uwtVChlt8tberAbuTgBhn+xw/iDJItY9T/8bgieFCZzh123NqQ1bEl+Y/qfY7w1XLI+6Zfe/xE5/cDDw+50LxPA9dNe/P38V+yyCVazTGKG/NFdmfYsLe/rxqwJa8CBusrLA/aruVq064ncvJt5x9ks+3Xf80P9L9vbswd65H11eYY/CCpJ8uWAr+li0F9XREra5qnsuJ7XH9lv6tFcxKEk/bS13QHeRNB5aB+H9kBLkSY8rrDw4n7SKDc92CCz7TGD9eD+w6s8E1sX9wHI7/HBi59Jxh08UPHIhrLayDcGzIQtOyW4hosLXh/UuSTJ8sh8U2Air584OqNVQdzTBzw5y6kP2QFuY1kA8oMB+GWB7BbevdLeiaMiXpG5iJN3nEkUWde7+hBO3IpLakOlmqmNz288LXJh7DXy4gGu9rEoubvTngvIsxgm4qdE2SKCmCgR+ySRGEm15XJD9nN2uXYh98DrJbvos+E6BrEP6E5QoweKMmwD+kHrhRxGwS5XTc7nQLuY22QGjGCNTVsoFsapUnzskxU7IJ/GGUOoo9/2BjI8E7InfdUyh4A+onUalcjze1yrbz6Ri+xUVdMbUOPuIm0OL+fqabyXDfEksrSNnsf1U0mqxs0xXBW4LS/1NTq9LObvWhppGXzvzyCeutQhV66AGWlhdWLJvODu4WnvPehjdM4lf615uN1gR3PewIlGLYDde1LD1k3xJUvWLNeJ8VTYcd7b/P7ThrFvZow3nYVb1aMPZ2IbzYFaJyAnuT0vx3Pu2vigRSjmbOXGwVr49mMXnYRaBOZC4BNUIfffZeDBL2sMsAK6z94E/ozVGF7LuZeiTVW5WFCyDdvDJJIMMZ9iidX+nkiz8EHe5kri4dbUOrzcKLVmNjHh0T46fHRSHz18c5ez58fPs5CTLD58+pTTPj4uj/MXBhnFGV9DY1YNn99bHhqlGQFvybJmVMYlNcJOeM6j9ERUyLgauLl195lNWvQ95lrrkGYM/9w6Pnh67z06A7h2NdSZrdg8EZFIYJUt3IOGSyUXLcDPnTFGVzZf99Q0ZIAdP5er13QEezNDSerrmJGiwv8qet1oHuv9O3AHpBtbFAE3JN4p92oQqOpRwj50PYNr3VljmwJr46eBuCAns6VpwNnPMb4I3MePiw9jl/d4Da3dbZD8mlGC7O31Pcyx0mk4q52wGOMS4DMGtl7qUsw3BhbDi9tUW+KxryD0QxbBRFO0G8sxHwN4l0KZSmocTZXl+kn3/4pjqvDg4zKfsiBVHz/MXhf3i6PlxtmnMrN1mC1kqxeCzR+awsEr0gVLOPhV9d1rWVga5Ki5b9Z3vLUYGlbo78OVn9eB7/ZmcOXxAPS9qOCaF+GL9XeALmsHvnxd4P+snAh9LSjwQQevmPtpXry3VPZYRlKxGG1m1aFcwHfsFDUO9ArIzNeVGUV9mql0MwqnSrJvpqBjNr6F1hKGdmLpVqZyZYklLo7W5PyFycuXxXHWs4pEefm/o3fR9Q7s3q3U3+LsiFKzA8eXfDZ2hDTHJNPh/AQAA//9WeJSk" } diff --git a/libbeat/common/kubernetes/metadata_test.go b/libbeat/common/kubernetes/metadata_test.go index 8d0cd301a3e..2630a6e6d7f 100644 --- a/libbeat/common/kubernetes/metadata_test.go +++ b/libbeat/common/kubernetes/metadata_test.go @@ -32,6 +32,7 @@ func TestPodMetadata(t *testing.T) { Deployment := "Deployment" test := "test" ReplicaSet := "ReplicaSet" + StatefulSet := "StatefulSet" True := true False := false tests := []struct { @@ -91,6 +92,44 @@ func TestPodMetadata(t *testing.T) { "deployment": common.MapStr{"name": "test"}, }, }, + { + pod: &Pod{ + Metadata: &metav1.ObjectMeta{ + Labels: map[string]string{"a.key": "foo", "a": "bar"}, + Uid: &UID, + OwnerReferences: []*metav1.OwnerReference{ + { + Kind: &Deployment, + Name: &test, + Controller: &False, + }, + { + Kind: &ReplicaSet, + Name: &ReplicaSet, + Controller: &True, + }, + { + Kind: &StatefulSet, + Name: &StatefulSet, + Controller: &True, + }, + }, + }, + Spec: &v1.PodSpec{ + NodeName: &test, + }, + }, + meta: common.MapStr{ + "pod": common.MapStr{ + "name": "", + "uid": "005f3b90-4b9d-12f8-acf0-31020a840133", + }, + "node": common.MapStr{"name": "test"}, + "labels": common.MapStr{"a": common.MapStr{"value": "bar", "key": "foo"}}, + "replicaset": common.MapStr{"name": "ReplicaSet"}, + "statefulset": common.MapStr{"name": "StatefulSet"}, + }, + }, } for _, test := range tests { @@ -113,6 +152,7 @@ func TestPodMetadataDeDot(t *testing.T) { Deployment := "Deployment" test := "test" ReplicaSet := "ReplicaSet" + StatefulSet := "StatefulSet" True := true False := false tests := []struct { @@ -174,6 +214,44 @@ func TestPodMetadataDeDot(t *testing.T) { "deployment": common.MapStr{"name": "test"}, }, }, + { + pod: &Pod{ + Metadata: &metav1.ObjectMeta{ + Labels: map[string]string{"a.key": "foo", "a": "bar"}, + Uid: &UID, + OwnerReferences: []*metav1.OwnerReference{ + { + Kind: &Deployment, + Name: &test, + Controller: &False, + }, + { + Kind: &ReplicaSet, + Name: &ReplicaSet, + Controller: &True, + }, + { + Kind: &StatefulSet, + Name: &StatefulSet, + Controller: &True, + }, + }, + }, + Spec: &v1.PodSpec{ + NodeName: &test, + }, + }, + meta: common.MapStr{ + "pod": common.MapStr{ + "name": "", + "uid": "005f3b90-4b9d-12f8-acf0-31020a840133", + }, + "node": common.MapStr{"name": "test"}, + "labels": common.MapStr{"a": "bar", "a_key": "foo"}, + "replicaset": common.MapStr{"name": "ReplicaSet"}, + "statefulset": common.MapStr{"name": "StatefulSet"}, + }, + }, } for _, test := range tests { diff --git a/libbeat/processors/add_kubernetes_metadata/_meta/fields.yml b/libbeat/processors/add_kubernetes_metadata/_meta/fields.yml index 623c0795a9d..c31783b2020 100644 --- a/libbeat/processors/add_kubernetes_metadata/_meta/fields.yml +++ b/libbeat/processors/add_kubernetes_metadata/_meta/fields.yml @@ -38,6 +38,21 @@ description: > Kubernetes annotations map + - name: replicaset.name + type: keyword + description: > + Kubernetes replicaset name + + - name: deployment.name + type: keyword + description: > + Kubernetes deployment name + + - name: statefulset.name + type: keyword + description: > + Kubernetes statefulset name + - name: container.name type: keyword description: > diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index fed80ffad87..d8bf22a428b 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -12123,6 +12123,36 @@ type: object Kubernetes annotations map +-- + +*`kubernetes.replicaset.name`*:: ++ +-- +type: keyword + +Kubernetes replicaset name + + +-- + +*`kubernetes.deployment.name`*:: ++ +-- +type: keyword + +Kubernetes deployment name + + +-- + +*`kubernetes.statefulset.name`*:: ++ +-- +type: keyword + +Kubernetes statefulset name + + -- *`kubernetes.container.name`*:: @@ -13361,16 +13391,6 @@ kubernetes deployment metrics -*`kubernetes.deployment.name`*:: -+ --- -type: keyword - -Kubernetes deployment name - - --- - *`kubernetes.deployment.paused`*:: + -- @@ -13594,16 +13614,6 @@ kubernetes replica set metrics -*`kubernetes.replicaset.name`*:: -+ --- -type: keyword - -Kubernetes replica set name - - --- - [float] == replicas fields @@ -13668,16 +13678,6 @@ kubernetes stateful set metrics -*`kubernetes.statefulset.name`*:: -+ --- -type: keyword - -Kubernetes stateful set name - - --- - *`kubernetes.statefulset.created`*:: + -- diff --git a/metricbeat/include/fields/fields.go b/metricbeat/include/fields/fields.go index fb913031719..27e850fd3ad 100644 --- a/metricbeat/include/fields/fields.go +++ b/metricbeat/include/fields/fields.go @@ -32,5 +32,5 @@ func init() { // AssetLibbeatFieldsYml returns asset data. // This is the base64 encoded gzipped contents of ../libbeat/fields.yml. func AssetLibbeatFieldsYml() string { - return "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" + return "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" } diff --git a/metricbeat/module/kubernetes/fields.go b/metricbeat/module/kubernetes/fields.go index 558c3154dd5..63e6cb4a661 100644 --- a/metricbeat/module/kubernetes/fields.go +++ b/metricbeat/module/kubernetes/fields.go @@ -32,5 +32,5 @@ func init() { // AssetKubernetes returns asset data. // This is the base64 encoded gzipped contents of ../metricbeat/module/kubernetes. func AssetKubernetes() string { - return "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" + return "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" } diff --git a/metricbeat/module/kubernetes/state_deployment/_meta/fields.yml b/metricbeat/module/kubernetes/state_deployment/_meta/fields.yml index e7f5d305f2f..cc89c601abe 100644 --- a/metricbeat/module/kubernetes/state_deployment/_meta/fields.yml +++ b/metricbeat/module/kubernetes/state_deployment/_meta/fields.yml @@ -4,10 +4,6 @@ kubernetes deployment metrics release: ga fields: - - name: name - type: keyword - description: > - Kubernetes deployment name - name: paused type: boolean description: > diff --git a/metricbeat/module/kubernetes/state_replicaset/_meta/fields.yml b/metricbeat/module/kubernetes/state_replicaset/_meta/fields.yml index 3146206aa35..bca50c79d7a 100644 --- a/metricbeat/module/kubernetes/state_replicaset/_meta/fields.yml +++ b/metricbeat/module/kubernetes/state_replicaset/_meta/fields.yml @@ -4,10 +4,6 @@ kubernetes replica set metrics release: ga fields: - - name: name - type: keyword - description: > - Kubernetes replica set name - name: replicas type: group description: > diff --git a/metricbeat/module/kubernetes/state_statefulset/_meta/fields.yml b/metricbeat/module/kubernetes/state_statefulset/_meta/fields.yml index c524aa07b8f..9c499799730 100644 --- a/metricbeat/module/kubernetes/state_statefulset/_meta/fields.yml +++ b/metricbeat/module/kubernetes/state_statefulset/_meta/fields.yml @@ -4,10 +4,6 @@ kubernetes stateful set metrics release: ga fields: - - name: name - type: keyword - description: > - Kubernetes stateful set name - name: created type: long description: > diff --git a/packetbeat/docs/fields.asciidoc b/packetbeat/docs/fields.asciidoc index f2b8f6fb229..99cf6232595 100644 --- a/packetbeat/docs/fields.asciidoc +++ b/packetbeat/docs/fields.asciidoc @@ -5751,6 +5751,36 @@ type: object Kubernetes annotations map +-- + +*`kubernetes.replicaset.name`*:: ++ +-- +type: keyword + +Kubernetes replicaset name + + +-- + +*`kubernetes.deployment.name`*:: ++ +-- +type: keyword + +Kubernetes deployment name + + +-- + +*`kubernetes.statefulset.name`*:: ++ +-- +type: keyword + +Kubernetes statefulset name + + -- *`kubernetes.container.name`*:: diff --git a/packetbeat/include/fields.go b/packetbeat/include/fields.go index f4ee6816072..de43eeeb560 100644 --- a/packetbeat/include/fields.go +++ b/packetbeat/include/fields.go @@ -32,5 +32,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "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" + return "eJzsvetyGzmSMPrfT4GjjjiydynqYtnt1sbsHo2sbivaF40lT+/s9oYIVoEkWlVANYASTZ/43v0LZOJWF1KULXrsWM2PabNUBSQSicxEXn8gvx2/f3v29pf/h7yUREhDWM4NMTOuyYQXjORcscwUiwHhhsypJlMmmKKG5WS8IGbGyOnJBamU/INlZvDoBzKmmuVECnh+w5TmUpD94d5wb/joB3JeMKoZueGaGzIzptJHu7tTbmb1eJjJcpcVVBue7bJMEyOJrqdTpg3JZlRMGTyyw044K3I9fPRoh1yzxRFhmX5EiOGmYEf2hUeE5ExnileGSwGPyM/uG+K+PnpEyA4RtGRHZPv/M7xk2tCy2n5ECCEFu2HFEcmkYvBbsT9rrlh+RIyq8ZFZVOyI5NTgz8Z82y+pYbt2TDKfMQFoYjdMGCIVn3Jh0Td8BN8RcmlxzTW8lIfv2EejaGbRPFGyjCMM7MQ8o0WxIIpVimkmDBdTmMiNGKfr3TAta5WxMP/ZJPkA/0ZmVBMhPbQFCegZIGnc0KJmAHQAppJVXdhp3LBusglX2sD3LbAUyxi/iVBVvGIFFxGu9w7nuF9kIhWhRYEj6CHuE/tIy8pu+vbB3v7znb1nOwdPL/deHO09O3p6OHzx7Ol/bSfbXNAxK3TvBuNuyrGlYniA/7zC59dsMZcq79nok1obWdoXdhEnFeVKhzWcUEHGjNT2SBhJaJ6TkhlKuJhIVVI7iH3u1kQuZrIucjiGmRSGckEE03brEBwgX/u/46LAPdCEKka0kRZRVHtIAwCnHkGjXGbXTI0IFTkZXb/QI4eOFibdd7SqCp5RXOVEyp0xVe5PTNwc2QOf15n9c4LfkmlNp2wFgg37aHqw+LNUpJBThwcgBzeW23yHDfyTfdP9eUBkZXjJPwWys2Ryw9ncHgkuCIW37QOmAlLsdNqoOjO1RVshp5rMuZnJ2hAqItU3YBgQaWZMOe5BMtzZTIqMGiYSwjfSAlESSmZ1ScWOYjSn44IRXZclVQsikwOXnsKyLgyvirB2TdhHru2Jn7FFnLAcc8FywoWRRIrwdvtEvGJFIclvUhV5skWGTlcdgJTQ+VRIxa7oWN6wI7K/d3DY3bnXXBu7HvedDpRu6JQwms38KpuH9b+3Iv1sDcgWEzcHW/+THlU6ZQIpxXH14/BgqmRdHZGDHjq6nDH8MuySO0WOt1JCx3aTkQtOzNweHss/jZVvE0/7YmFxTu0hLAp77AYkZwb/IRWRY83Ujd0eJFdpyWwm7U5JRQy9ZpqUjOpasdK+4IYNr7UPpyZcZEWdM/JXRi0bgLVqUtIFoYWWRNXCfu3mVXoIAg0WOvwXt1Q3pJ5ZHjlmkR0DZVv4KS+0pz1EkqqFsOdEIoIsbMn6/Hmfz5hKmfeMVhWzFGgXCyc1LBUYu0WAcNQ4kdIIaeye+8UekTOcLrOKgJzgouHc2oM4iPANLSkQp4iMGTXD5Pwen78BlcQJzuaC3I7Tqtq1S+EZG5JIGynzzSXzqAOuC3oG4ROkFq6JFa/EzJSspzPyZ81qO75eaMNKTQp+zcivdHJNB+Q9yznSR6VkxrTmYuo3xb2u62xmmfRrOdWG6hnBdZALQLdDGR5EIHJEYdBW4ulg1YyVTNHiinuu484z+2iYyCMv6pzqpee6fZZO/RyE5/aITDhTSD5cO0Q+5hPgQMCm9JNA116nsZJMlaAdeAWOZkpqK/y1ocqep3FtyAi3m+cj2A+7Ew4ZCdN4QQ8nz/b2Jg1EtJcf2NkXLf2D4H9a9ebu6w7i1pIoEjZ8Nwe5PmYEyJjnS5eXN5Zn/38TC3RaC5yvlCN0dlATim8hO0QRNOU3DNQWKtxn+Lb784wV1aQu7CGyh9qtMAxs5pL87A404UIbKjKnxrT4kbYTA1OyROLEKYnilFVUUaeCuOVrIhjL8f4xn/Fs1p0qnOxMlnYyq14n6z6bWMXXcx5YKrIk/0hODBOkYBNDWFmZRXcrJ1I2dtFu1CZ28XJRrdg+z+3sBEQbutCEFnP7n4BbqwrqmSdN3FanjeO3VpoPI2pE4NkBq/FdJHE3xZjFV0CE8Ulj4+OOtQmgsfklzWb2StBFcTqOx7O7bG4A1X9319gmslswPbd33B2VHSRqTFbwlh5zEp+sUGSO3ZeW4HI2AYWP4s5xwQ2nRgJTokQwM5fq2mo6goFCZU+dhw0VFMWmVOUguKxckkIPkvdRaI053vS5tJrvpJBze0OzOl1Dbb48OXej4qmIYHZgsw/s6wlkwEU0E0Fdse9c/OMtqWh2zcxj/WQIs6CmXSlpZCaLzlR4o7VipTGp17MUXNeZvRR5TcBjySgqNAVghuRClizI5lqjjmOYKsmWv6ZLtRW1esUmTDVAEa0FalQz3J+dDoo7O2ZBBwMdNEEAgkAsWGLqtzlOkcKP2rQjIj+BPTm1ri1C3KhR+ePCgvdHLXADQBdE7c4bUUjPaBHBQprOmJar44btwCHz19dw6cXxdv1EwUwBzBrlhL0Ja1ZSYXgGWjr7aJxIYR9RWRggB38UWLsXLEaSG27Xyz+xqNnblTIF2r7mpqZuP84mZCFrFeaY0KLw1MeFl2uGTaVaDOyrniNqw4uCMGF1W0e4aBuxXDNn2lj6sDi1CJvwoghKF60qJSvFqWHF4g5aHc1zxbTelEIH5I4qvCMuN6FjvoHPlGM+rWWtiwWSM3wTOPbcokXLkoFNiBT2BkgFOTsfEEpyWdoNkIpQUgv+kWhp6WRIyD8iZp2MAKNFVAtmjCg69zB5wh8N3YMRoqwp4oS9AUQJltdotMAr6GjIq5EFZTREsEb2GlcxkTsdAxUEKSIQcJ9wO+Z3ZbwwTN8iUwoZdH28WjQ/a+zDX+0f8FoRLHtuP+y92fIDvA605cv+i8MGYLioDUg7d35x/GFjzimTw4ybxdWGNNMTbhYwVWf1b6QwitGiC44UhgsmzKZgeptoyWGyDnxvpTIzclwyxTPaA2QtjFpccS2vMplvBHU4BTm7eEfsFB0IT46XgrWp3XQg9W7oCRU072KqkFmq0y8DZ8rkVSV54EtNq5QUU27qHHl1QQ386ECw/f+TrUKKrSOy8+PT4fP9wxdP9wZkq6Bm64gcPhs+23v20/4L8n+2O0B28XV/bPqDZmrH8+LkT6juefQMiFO+UQLLCZkqKuqCKm4WKVNdkMwyd9A5EuZ54nlmuNoghXOF0jRjwjDlNK9JIaUioi7HTA1AlZ/xqNfoMCiCV5BqttDc/sOb1jJ/rHUCwltpEvcBGA65ILQ2sgQWPmXSr7Z7ARhLbaTYybPO3ig25VJs8qS9hxlWHbSdv50sg2tDR83B1HvS/lazMWsiile3wBBeaBLn2XkQ0J4jgrBIKQutAFIwK3uDTfvs/ObQPjg7v3keFY+WrC1ptgHcvDk+WQZ1OjmqtHcQ9Y1JzvHrzxLsB004pDKfC4RUZtUSa83UkJWUFxviXpZ5EZjAY7wHgEldFD3n4F6B2NbETgPTAsuiN5QXdFx0j8dxMWbKkFMutGFOoWrAC1r7cGOW1q61ceIs6zBxMIjALXG3KqixOmYPXhHODSI21YRwsi4QM6pnGxONiCk7D7Hz2HOVSaWYvZc2zPoTvIHYF61MEVIsUichqukJ0/qgmTNZjmAVPMebA/ywqxsFV1ImxQT3ihaNOa2ukVERb8zEu35bXM7NsAFO967FdOs2aQUGCDB0odqQdLqYWcaEaga4ebjoApIcSQpHsmFHkzVOGcxo/sFyKxpGfBAkj9wzYRiKgGloomhwA0cHF96G0TrsL3VgIyZLHVoT8oYZxTM0NOvUkE0FOT05QDO2pZAJM9mMadCyktEJN9r5ECOQlrqaru+GD5PrYCBtguDGVbVwzknFSmmCOZXI2mies2SmNmQIEyXOe+YX5DddxE+dhtj00uOgcSBwE7rJvSC0w3IdQXUIu4u9JIP7y+Y48/ZlRBDOBe5RNaWCf8JDz/Pg8nanbEFyPpkwldpMQA/m4OglFI/njmGCCkOYuOFKirKpREXaOv7tIkzO8wH5RcppwZD+ybv3v5CzHJ3SYDLtHPiu5vz8+fMff/zxxYsXP/30UxOdKCF5Ye/3n6JZ5L6xepzMQ+w8FitoiwGahqMSD1GHOdR6h1FtdvZbKq3zJGyOHM68B+nspedeAKs/hG1A+c7+wdPDZ89/fPHTHh1nOZvs9UO8QZEdYE59fV2oEwUcHnZdVvcG0RvPBxLv1Uo0moNhyXJel00tWckbnocghU2qOsgB/IRDfzjTACw61wNCP9WKDcg0qwbhIEtFcj7lhhYyY1R0Jd1cN5aFt8QNLcpdEj/zuKXiGBm9w74XyY2HK5xb4cWmA8N5FjrxcUnITsUyPuH+jhigQPO880E5K72cpIMkwZZMMz/vjBVVokCCvMLw1TC0dpJQLCyCDC/ZHQTURnQ8pwTHxfO8eYZ5Sacb5Snp2YDJgmkUAZpTTcY1L4wV5z2gGTrdEGSRshxcdNoEIIkAXT17Egm6Iha0zWxhUhdW2Zh3g7sR1xyNP4GbIMluip3g6KSkgk6t9gb8JNBBh5NgBGrCRhIvWspIXrYer2Alyaur3a2oPSdvgzUVTT67zUjMnjETD+ttvlXkPs63+i36/hquy7UcgFGNxeDte3IAhmHBEfi/2wGYboo3Froo/dYh+mpewPQYPLgCH1yB9wPSgytwfZw9uAIfXIHfkyswEWLfmz+wATrZsFPwDsJ+I57BpYt9cA8+uAcf3IPkwT34vbkHMf+7lQG+ynDwhhm6k+6ONy26DHOccp2L+21JBz2Z41+WlpVk1YPu5SJ6JSxGEyOHZMQyPXQvjTCJx4MRKRw8dpYoy1obTGWCw1B04rkJ+c3etP+smVpAhDrmcAUy4iLnGdNkZ8fdqEu68ABBEn/BpzNT9DnGktXA967ugAWtsIKTC8OmysWN0/wPC6oXmdmMlbSFf9JIrtVdZREKEaSUo5RsWLFPw4PVeabRipxBUpILcccB4RxRsSDXXESLxQdMMSgxLQrfA8s1ZlRa5BUM3bAWzT67FHhURjXTMRXTLwv2nhvNikn0vlKBo9/B/LQh9RiQCYP7KwKaCZkDsKmIbtBa3iM9eyBI89eXgxFy2HsX67OxUxq7aeUAnd6smcuM+9vnJfHpDP2OkkJ6JRAdKopnDVoJJHkM6fHNJCNLPp6nWIKyW5akD4Plb4b7SGM2sGfSr2MaPzAWn9oMuTW8ZPay6r1P9qkdKIwRM6LlJFmEG88PRX2GLYEkUh9o4cInYkoU6u5kzDDzyangbkzqTbVGEpqqxAM0XvbkVY2ZmTNmZ/L5EyJ3MRLBD4mTuZQkzJHOCmmFPDn2O3E7uvGy5IYspWL2xg3mpAJGxHwV+JkmmgNA/YhOXnPDxlTtBtZTaokoL1kp1YJYJgf5MG64PEF8JLibuhBMoYefx1x497K2ShDLMRP+LsEea5iCPjvIA0cnGa2wJITLgmw6BlxSbDB2uOyzeAB5UullSM7AJQm7F7WLGRVkhC/4rKNRzLAMG2HP+ggQskPzfDQgI0fyO0DyDB5NeMF2MsUsoY0wVcfXZQkjhgRsT3FuZdzOU4JlpyskrdK1U1GtLTJ3MBurKS4c6JvYjlM8DG6GNvKDkJvx6cyln/XzQOCQIEAnnV0JY8LuQLZba3OQIEYDv6eaCe3SwKKhigYwA1xxZK8dUZ8Z+BtV9nBD/YNJDTFnQfWRE6sKDcickaqgYBZw8QaEhiELV2yDZhmrDORAuxAElGledRqQCqss1ZqhVyqjdb/tDHYa/HeRNYRNRsq6ZY9DAaT2Pjoix0E6UWz91ZEsT4KCQWHNilGgWZ9qjrmqC8zp65QMckSCCqQ9qtyy9czZXmKRp5D5lzyK2+pgDWMGjtpTkynUimmzijNBSqlNkosIBlRLRHMZ6ylpdKeNWY+WjEfa/8yilyprVhXKaJGBS9JZdwq6CLIK8OQknSsEBSq8EzoxUKUhOmBb4FNfTUVp46Uuywlvpfx7SEopeEzEJckQ29ugyfodsz99CJiR5JqxitQVEit8lFajamIVUtAB0iYeLctENS+jxSDd2egf7Llt59RQzW4zq30WJ0vtIW6aVoZ+JoU9ymjPH7l3RuSx5eyaGbLrxLFm5omlZ28Zx8oSVnkguh5H8OH6U8q8LpgGVtc4dimfRM3A7mCtLK0VC19Eios4aXrhRxKJf8Jp7KY6aOHlLovRhppmjFNeq3X8Oj0+1daXXFS1ufJ/FFRIzTIZs8tbsQLu44ZAsMtNPmwWgsAzDRIXFo+/mdX6FCPXQs5FWg4t0pnpP7f+UMLsAm/fOHoSWBRuDWIdi+Iy9htB7XDeNtOFQe0+hudWZN2kziPLlwtqpQ+WBmpFHG3QqPeK6hl5XDE1o5WGAkFQOGfCxZSpSnFhntj9VHTuuL6RdgNAOBoZFpCzUgptlF0+3HjArsDNosfk7kM2+/51/NeTl1/t0nr20q4mxLMkCmkL5t7aMdd8LQL6bJXZjt9fysxJ4Sm/gYjntnI2d0pUO0YvIUlPs1E8+fJs7jKXWOtW6HotfRqejuKYI8uamNWkaUFVOfo2VTQAsmmmAM67aYnl+Dv6d1eWzMFSQek9qPFmMlpbgkkVamF1F14u9J/NGA+vbG1i6e/pHCw7oeifnIDPWgVq+uCUnBW8ZIkaKqSVMzn7yJDn5zK7SoKHc64tpeQoscFFAAohoyqbsTwS7Lg2hIcyTMqKYnbjtdHRFWpLoy4mL1hF9n8iey+ODp4f7e9hyO/J6c9He//vD/sHh/92wbLaLgB/ETOzSjveChQ+2x+6V/f33D/iyZSqJLrOrGo4qQtUJKqK5f4D/K9W2V/296AM7D7JtfnLwXB/eDA80JX5y/7B06ajU9Ymk5uLq7Dsy02xjIM1iqLGG7+9hmRoJYqHWTdlbGPkpNSRLzsTrS34ouNODoWuQOeE8qJWrJcnhRHX4k3r86Qw7vq8CWFu7J3i+vpKJ4dy2TGdFJL2GlLfc31NYASspselJc6m2vaYDadDoh3hEi0LAFE/icaUD5q56w+4RuEC4i5rqK/NmGrHywbYr4RU5Rr0t3QR22/B8sI/sRyGvWVBg2Acszr1JCxiz+7l/t5eT2W2knKB0TLON7mQNexZieGUVIAd0VUXgusu1ZpPhU4A0s0boB1iTjFjWTNLPSIuA7HmvD+0KHztpJbiqtkNS0KP7hqpcOE+b9nZwt754Vuy/rcZRkFFlc9fo+MXjuxLRgUw0Rumkut2UM8tDsHfYhnydjTp1JXXNxLrGVx76TUjYBd1U3HmkwiF5tqArRjR5l1rrYO0/WMLh/ZW8MXqP94tbr0AOJNiegVoMC17FYimmSV3AHuD2WDS2HYiUeM9Kyly2ljS9raOpoG0xidxstj5JBzMTSW1UIzmC8dhcjahdWHIxUJbWR/tDQmjOUPrBkBKC8zEm3Od2i2OI+8Nk+KUQChHYEoUUoBJ/+ylm3zrtFayYrvHpTZM5bTcepIc1/FYsRv0MvjXLy63noD7QpBXr47KMhI3p4V/a2fv2dHe3taT1rHdVJXC9wzJBaSNU6prdJGFtbiq8PRGQj5lyCWIlb8hVsOqocO0SvCEOz3YOdZ+9r9XltaDuvYtJwzRzHTvI+Df0mRsuULTHOr8RPav4Dr33g2whQBbjGXz7HSufrfX3ajWMuOxPC9oZL6uXqPYmx5YxrzrzCyeb6B3BjbUaiJSM1eRGy38MOWZ10vJGzTLWbT+989nb/7HV+/W0cnkMnKhAB94oVGx8VpEN5eCTiYMTaH29dZ6PNUkZe+d5eguPuk1U1eW8cDX1BeeBxBLZijGs4I/o8W+cmaXvyHm9RIGX5KlhunTRUsTgbm7gSX3x09hl8MsbfUiJGoUck4Y1QsLomFAQuMFIjR83BNmUTnZHqJeNxYed644FFXHYDjLOn85e/lkOWIjzW0aljTjtgsHF52Qi3tM+pU5a3aH8EB4f1bKp0jTtrCxxF8LVIIPC4rMDC1aBSI7ytHh/vMmjPfLGJzxCDScUuZ8wtvMQc7FxhKNUTrYCbbBOqK6WXwVNZsyr55TM/NKbZdGNf+0Dp6XafKwNDuG3WlIhyKPg01E2rsLzXOvu43sWBCsBn7t0ZOWeknVlJmrDaLiEmYAZIPGoRdlwcV1K0J5g4nxgC6wi4L/Z0ByrkDJcJC0MFJvjKVeurhL4KYfgJuqeNVOQqkeX7RYLRJyGvs0ZTJV0H5xP1foZ78wmUbWZVTZS1qse0Kj9dfnhKQlXqhIdaRmk50kjaSh6DmlLGeKB3OaYdkMzPCxbL+F7Ow8CXRBj6La0XVVFTy4FtdSbr6dzLlvPmvuG8yY+8ay5b75TLmHLLlvM0vuW8yQ+way47qXBS+/woPlEuwypOYkgbslc1bVGCkO77gIcGh+wAp2Q8PhdFpZ4vH9nJIj31Qa0tfOPQrxCVI34q9f+d8rzUS+ME7DTOQq45NMllVtMNbXVXEKXZ1OLjC41bdm6jdYpl2ZolkFezDFAj3NSH8fKA1qIagpvRG+aWyvXSvgNQTzuhFnVOVzqtiA3HBlalr4Akx6QF5CpY6kCg4Yociv9ZgpwQy06MnZnepbqGzGDcsS/9W9ZjZVPrLNN1NI5uuc848vnl89b5ZReKhm8FDN4O4gPVQzWB9nD3raQzWDzVczsPJzQ5Bsv3Jjp1UL05ARk7S78z7XuXNLk5GHbGR1h9KeX8VMrbBEa6cI4vZKre5e29yhnpMWVjrWAY8+fMn1bMGM4QG4yJ03PeivVsXlYgrBCC56fGVxU9SUXfwxugQtZkfQIg8w1cbC51WqAA2IV/0VBzZTYeKV28r+OTdFn29X0iYY01ySOlBlQpEJJX6Aol0Y2OGYJAR1/VnTAkzjYUxX6gtLKGDOnAXAWediqhGkcMNeaytJFMlZxnPIZrW6K5BRZOzSvt/aeKmHE1ryYrEh0fTuguD45LG39SmWz6gZkJyNORUDMlGMjXU+IHMucjmP7v9Y3Q7e7MBdF5sqptHReV0xC9Dyvc/Hp4r7NNx+FZRmFgdv5B/0hrVXcG1V/q+2BpwtgA13LkXnRBvVV5z0cHg43NvZ3z/YcUlcbeg3qNAswb+PVE6wvwzh/9mG1l+bvxbEfj5H91Y3knpA6nEtTL2K1qma8w6t95ZC2Bzw69LI/t5w/3C434B2U8EuviVni/3+LJWr2O2rCLu+sM7z0KiPboeAxsKjUPl4BAXeb8pBogBDkHWi64bL+iBtu5rUBk89HlFWhxH7ZHZPYZKH8kBN6nooD/RQHuihPNC3XR5oZkzDiv/q8vIcft+ld4j9KITDDn0xFzKqVTHygakMA6eTxpYApCo8vK4x7fr2fP/BWOaLYU8l2tsCMm6tRnvRiM9ogklg1jZ6X7z4cTmILphmQ2f40l1HcDNWQvmKFYUkc6mKvB/aDeDyUhpatCJeWhh9bIGFwz5j1OoBXeVq//BpP4JLZmZyYzl9DZTiVK1sZSRyzAKA2i5jlqYHGEkKOWcKErQtC/UFo4bkgrmcWJnVpY/zCmNrV19l68yH1Vst7/TkYqtrHpsyMyAVFHqpatOLJmjTrDYWsPXeDR+zZ1LMdXbT8h59tLs7LuR06J4OM1nutmDXlRSaffVzjtOue9BTIL/uSV8F5/Kj7uH92mfdQft5h90BrQ01te4x9d4pBq+JPhyz37h7uNf0iG32NgdwLbse7w/TZiO+DpQT3q/dz1tlN5qXaKP8joSMzTQJZx0hDIvfxHXxnU9qslAFh4er4NXJScQi/o2U5jlVYjQgIyhmZv/Be9I/mVKN5WwyjdYnpzVStuxifFotbZckgFOevJGovxOsnVRwg552Q2oo3RI01IqqRp3CMzRxKhrLBI7csF5HQ6pIjaHQct4XdrEjpvl3fi/cKGnaZyvr0y120FmQT+sNY87oDQtpRtpuKoYdZ77OIUYTohGAiUxivwJFBJuTggumoaHbTXIhsVeZglEBOWpNkL80K5lo6ZKOt7dB5FuxntqBx97YBYrBFycng6cNfBJvFu7sB8M5Jsak3OBt8uiWYno+raYZ0oGmk7KshcM/RgDLG6Y8B4nxIwR3IUnPcSEZOm0w5N/4rAAQP3qrBkc7YcgX8LlLCEaFzTE2mFRyjLe0Kb9hAoNx01kdh6uUNDKTRbOEEFVjbhRV0cpPXLqqSx2DUoEaD0XJMyV9ytIAKJAWWsJkCzz58WV9vahYtJzx7M8BmdCMjaW8HhAz58agg4JrMk8rBVlWE8s3xeKb5IaJPKlyBNHR2NAwRBJbEZuHyOFQBgFPwW5udeyzcwyX1gMo7K0HJBlzzpXPEPwGtXDKm83Y7rtFyjZqV6hVGUWFBp0bdmQs7bnhirm6ao2c/ZGrGAVfulT6tNy5f+7L9wzIyB9W9yeUXTzuhK7LLgKePn/RQIDjIGZxtblmlMdotYISnJA8Bkw7qSV/do4VIB01UU3mrCgckwvr8ccvBiY0+d8wJJhTYqQsduhUSG14ZrVHkVPVaHYZhp0Ucp5uxmtGlcBUdGrCLWjKzawew/3HEgiUPNsNyNvh+Y7V1XrK9h7N3v2rfnv46l/f/PLszT92X8zO1H+e/5kd/tffPu39pbEVgTQ2oN5svfSDez3Ns2uj6GTCs+Hv4j2z68GiSlGcHv0uyO8BOb+TfyFcjGUt8t8FIf9CZG2SX1wYpgQt8JeloPirFkC4v4vfxW8zJtIxS1pVSeFg18LVCq8d7GpXxjxQVz92EARSotikYwbOZYfZ1gRCk+zibzibDxGGJRN71EhFKqZ4yQxTCEgD6PVgioA0ILD/Ba+FmywdOUw63GqTk8N9g24mUs2pyll+9SVxBklXjJCS7o5r8ienIFdKfuypQPXTwXB/uD9slkThVNArjFTaEIM5O357TM49d3gLU5HH/uTO5/OhhWEo1XQXBTPUnN31/GQHges+GH6cmbJI8uUvHB8BeeWrk/ivtOM/tIBKFcDBQON5y8zPhZxj0TT4lzPOhnELOfW3vtpZZ/vW1EF4M7tw0x4QVI7GCyLBoQlFwKWXvjpGq3m51Ib2FzDQ/cYnvAH2lzUqcQLXDfJZItd92yN04196xK7/Y9TPnADuF7wHTSOFp5pNXGVf/+hvF1FmQvgEYR+HINEGpACK+oNmVpO0SLOyN2q4357mFlwhwRPuod4ECi8swVMdaDlhYqi1g9eUxpoPjPyK86THMBT1jxgu6MIypzqvBsRk1YDw6ub5Ds/KakCYyYZPvj3Mm6yF+A2FIJyh0Hl3cQYZ1wUK0XkaKuDJ+rXF4tDi7hAxmNySKs2yAal4CQj99tBpgU5MA64oTaOVw7v02apUDxE+75YFqVjGaeEpeBDyYDHkrXOlxjoSoSBuzgzLzMCPDx9hIZHbR9xpyjenXCVFWJvJrSEYhJKs1kaWIcMDB4Uu4ODYdkttlTeRYsKndWwRYiRRtVgfAUTLibHTJRXOmhknE67YnBaFHlgNV9UQvYMY4lLsVgqWCEP5+EOvQyZaomZCSxXqVs3ZuAFFMgnEexdSa9I3tEXk8fkbhw2ddjr11JAacChWaV5iv3EMCgfHiBGxGKT133CdOpCC9mVdkBx0VJhXoNgXU3FjupIq5I2zrf5ZsxoHJqeXryFHSQqgGn/XcyWcm+1FHDl5S5NiYBqE2lU5g7r9Dh/QlPX05OIORqeHvJqHvJq7g/SQV7M+zh7yah7yar7rvJp2Wk2Qvk37x+cZZbpdSvuH/2qdRhuK6kOCw0OCw0OCw0OCw/0nOGimOC02azD292s3mZP3t9XLur+mXb6HQMpWQ7OVVeXqmXJ5jfZi6DUnb4iOIy0qpod9UTfeVaDSZgL+4glROLmG/1Tate76uIB/yKJgEKaDl1j7r3gF7YmN8GM2UNrwPt8nUsPKcYY0PH3YgmB1z9N7IKmEscSwpSkV/FNU9r2Zp/38ljiQdBx/v2dC8WyGhAMX+2U9xcqKCi+lpXL6aoPoWpEaaWBI7Bk6Y0UFxbapUlRMfRsd44rcJr14qMAgHfAYNAP0AxhxPXcpyfFPSElJQf1qpWFS+gjqQeTqDVIKLPgCWPAt5HQJdtZWE4AlpCNb3H396MPvUjP8ztXC71gn/I4Uwu9YG/zmVcHEQxpadDgud548WrvJ9VLmFrrx9ku6jIoo7WK6nbM5N3vSQWBjaO7L892Ell1QSSOuFhiw74w6rCDtbmKYINrQhfaljn3XXeySTUNXLFAQK46OGkhKLOSYFknReQ9uNCitV+pquk6ywefFgClFFy5cApBE1RQcaamd7A30f3T6BC6vUtKwzIDzhBt+08h37Oid7ucO0SEbc4fsFOGftQ53ih3im/o0oyjYR5bV0PBgQ6g4HkPPF4bhum4HPVbi7J0TsltrtTvmYtev7WuUqHQnzkmhsFH2agEdJUhGi4JBdvhU0TLkOmpe8oL2dOhtA1/dmhC6LPLjPJy2VtHpzpB3yjvxw1YUqru0R//S/iaXvlNpuuuuj0nXbH+wt/98Z+/ZzsHTy70XR3vPjp4eDl88e/pfrQYYM8Vovl6m9rJlX8IY5OxlV2gfHDYDuoAZb5rgYJJWGIpFFzwfYPIBUiC4L124RpWSKzmhAqOrx7GppTkKQybFBgglYyXnGkwCPmfDAeGP6JyNSUWnLGk8KrH5e3M35lJdczG9wrCjTq/pe000c3ORMJe3KgTJ1mYiM1myXVpgy4iYuhX99U7Uvk8erRS1sbkNw7bhvl7ohGa84MbKzIrfSOzeq2QNrecrzrKkXRT0R/GbDXYLeEG3G5u4KHXNGPQsL6lYWN0oA4+9vXGenlz4vkqXKQhuaOxMB6YVvNiVA7yxQsC/F1HQIcpO4QtFSecvArGqKymstu7FO2alCDJyWByOwkqOoU+uYibYYSyGomWf6UGS1jNmpIYyQ9CVPhg1Bi4McxCJIHb8x37+A+JfpSIPMUtpXCiU4YBre1VBA9eiIGfnXtobGaHn1WiAKg8FLUQ4pLnaAhgEeHZOjOI3nBbFYkCEJCU1BvJOWODe3MBkVLF8QMaLEEuTTnVEh+NhNsxHd7n9r9MEo9+nclyENLWzc417LEXStzm9YHfDci7WC8px7/Wk6zjicdUZQoxIJoVwAUSTYB9zUQ6KTanKMXxEa+zGHd/X2FWchxBHqwVihGkmVdIV+GepyOXJeejMA0wzgImwZYzb3w5BXHAo9XDxj7cuuvKx9iXzvbp8cp7AMoRJsGJLiIltz+Sq0BaLDj789jVD04X2zQeBK7gYGEIzU3tfKgbYMVWSrTDeFhYsngRtL4VCtADXvsYX/Nlp/97l20108qzElWvNkLHp1hTpOhxDumhMQKGbFKzCjRgjdLDcxh+1yOL1Ak+6+7pvsIjaWIojDmlPL27jDvrRfSqpe/MEh9/1S2h2NsHbEM0tly+pMDzzMe8uWYp9xOZEjp/Fi4q9QU3qwr52w+1y+SeWWB0FyZiC+1nMV/K8SoU5JrQoPK/yDfAzathUqgUyK5enpg0vCsIEtLSD15ZknFiETbhVXd2wtKqUrBSnhhWLu9yZkJNvSh1CGz42u8ONCaIDcx09gynHfFrLWhcLpGb4Jqg60KpfB6UdPAbUsvEBob4cHpaOgSJ60tLJkJB/RMy6MopphRA8VfZOH7IDkO5HQ/fApa421ThhJUPMK8xrjBLD697Iyh8oQTNEsEYDkjMrsiCT1JeXju36QM7wdifH+07r+ivkc0Hx85gR55wtrpEznJ+uWeNFM+wbF3ULZJ9VagahwfFbjaMeItkeItkeItkeItkeItm+60i2zwwk2+5Gkvk4skhZeP1suWnJ2fnNoX1wdn7zPCoeLVn71QLQ+qLfvix57NxljX2OYG/axNbIQ1oKhITCHUuX+FC88qF45UPxSvJQvPJ7K17pSovAe4kFzT+6JdjJFyZp22NM+jepevoJWV3IATenmmSyKKDh8y0BTRMuclfkyVMn5GUjWYZKXH5u+6aPGVjfXMCqGSuZosUGy22c+jlS9iSdAujBf8wnIO6hB7h+0q61xPOkJQRYdjShmZJaE8XAXeWq14zcgHD6cgkNlkxX9XtBDyfP9vYmTYVmE8dpu8uafXW7Wgg0pCLE3SU7qwSewCJ0DF00UOfS/Et6zTThhlRSaz5GP1EgnTA0kFCS+og0K1iHoPraTHibvbL7VDHFmcjAN6V1zTTaBe1YiuV2Aa6fVzTfoyM9jOs7w/McE/djMANcuTyxo92Miyl0OnY9wjo7mj/9kT1j4wnbo+x5dvjTjwf5mP002dv/8ZDuP3/643j84uDwx8ltJQruv4GEp/AYS+vOf084bXqLCh9CgK2jfZBG4PMI1R0KOddwn5rLgJ54nfJjQUMJzypUJD6vGNi/h8LpeOMTDT8lb1SIcB0pwmkD8ZY2Pimw2JkDz25jzrVRfFzblfuKU7i3qga3R5A4M6mN7idftNJ7q7RbLMGiLG4prdAAl8UNKdRyQk4Lqg3PnA8pQTMsweX+ejGN+natDVONWxH6L/7KqNHdIbi22MnZhNaFgZpAVXCDBnwZ6NEMHDmMySdESOLHCN0/esoQpmvYSZNOk6gAsxFjjOsxA+O36PSfE65+p9MFH3rXpkssR/24R842mKSV6MAlE4XBr2QJp4RBYlIwnLomdE1iHLSoIwwaKg6MGhvfV58y/XtjOzYXaL79dx8g2tyQ4FNp6DzdXYk8DKodyGtC7anB4G1msL15S+e5iVPSQH7d0mLDg2Fa2QBdLw31Lz5Zof3hW7c74rxvB6BCQ8Bus/Joc6TE43aLry31FDmH2zfpEXK+rQeP0DfiEcL9cIajtJBQx3r01dxCCNKDW+jBLXQ/ID24hdbH2YNb6MEt9F25hbAe3vfmFnJQk027hdaX7pvxDfWs88E39OAbevANkQff0PfmG6oVcixnGPjw/jX8XG4V+PD+tb/Hu06URNcVlNTEhDc7kQFwKqpgLz+8f+2q5bk3Q7j7jJGxYhRTJ+RcEC6MJDqbMctc8LI0gPws970kns2vYwHou83d36F56S7nDt2qGIRq/Vvz+XzojFLDTG41zbKQM5NRMBQAPku6wCBpF8RrNQIs7Qd4xaDyYhHzZGlzacTl2YDJFxoiaDZw0fWxmDRop1MZ2pq4W7wzBHS0weYSGnidKDotN9e5adtK28SyVquC0IlxpTlGP4wSRBtZbbWMnaMfRr45ievFggq3A7rFMzaYZn42QVFp6R9MQry0++nSciCwutYs7tYisb1g+YawLi6gTSBI+NGAzGcMwvtNox2LYpkU2qgaDI6WejBy3Bt/moanVI3p6TbW3P6jw8Onu2he/Y8//9Iwt/5gZLMsbX9zoPsUVtjsBtbo+gMBieiQjxRW21Wl30rjItK56CkOOkhrweThdEJRVL+ZA0yvoTrdHppBwlshp+6CZz/l2qUT/1FrE0P5fWlYy9iWNtcJ+VvhszAsBX/nnOoA6KDBeHs9v5+1sXa0JX9u6flaJzt533t+7obvbYIZYTCbUpDOoaFPY+6EBzkEbQ1vuW3cLf01uXF0pjw8fNpNDz182pgf0rw2dQYtn4UJHL0GuwXAi3/BAgO9awgkb9HXoqsOO/8PYOfsIxQCTto4pLNAqgoK09BTS0j7LRzGxDCOVZsS2OFT4ys6UZhvXJvw1iCZDBeLoRphxNBNqaxMhAdAxzdH7uuWA67hYSZjZuaMRYkOyVRziXpCS2ahgrSpvb2A0ZeTOzCSrRZLxTTY0VGv6EV4l7Ckjq684QtsGmmQ8JEUgoZGrG/PNLx06nbHVdZfyAdeRREE/YHZDQ1y2SlnTffZz0khDHqDdiAGVuD0TmKfcKbdUfB3OWygY2ZUwGc89+mrXnsPCbdOKMIxA9+kw1J5l7Cqf6IJ5DuyfnwHho9/ts3jwdxxq7njm7N0fLNGDs3UFZ3620/C2Ul8ugZ/xzE8l49xmfY+76oL+eoVQbI44C7t9c6VFprJuWtDOmfjEDcCYTNJvUksH0GV1RbqAKrXL9ZnydhP4mudZDdbe0v4+cwHBnytLkkJhSDqOkBd0AlV/GveXT8It6E3zdihSFw9PvpPvCjo7rPhHnmMaPw3cnL+waGUvLsg+wdX+9io0tdIe0KOq6pgv7Hxr9zsPt97Ntwf7j8L7OTxr68u37we4De/sOxaPiEumml3/2C4R97IMS/Y7v6z0/3DFw5Pu8/32iViH4pO90L9UHT6oej0l0H8v7bo9GZB/XuX6y4RDZYLPnq0Y2c5ImMGPXic2vBX/NUY+N/h+xNvechkWUoB34WYR39PAD2ycGU/XIXoR0sCGAG0Vt+EvtWvbIbgFtgY2UI2NLxkn2K4Hg5MCx7smhU1syN3FW29XPKpojifUTVrjo5raQwrx3+wLHTAhh9Xt67k34PACpiFLfONpgCdLiy0CQE0s28AEHWkpZOc2o9a1SqhpEyec1fSx6rpEKjqguphnlDcK91D0h8SvmwHV4AVQUtirhsb2aGO7iZaIkrfW7l/MGgv2XUH7qXR9ujuHGWFrPN4kE7sT2+GgHBx6jLGejDxxv0VVeOs8am2W8Ryn5tB8/wKXrjyQ/oqbFKlR62xZvhgWClpSTPezANDcH/Z+biahlLN031i6eUXKacFwxW7HfyBHFtkYhpSkaeHJkTuMEOHATBY6i270fvyyr1O5vBpJTEjbvU0ISUpvH/nmdYgsNZc69JwMpvL7rlKjuHqydwHw+SDdedybJ4X3Cyu1mCuq79ad1ZHaetuXIfK150Hw+3WmqPx6hJ+kMvsGqjUMYSX/nfP4cK/Qf5NO6vC/c0ebT2TylyhfDgiE1poi0oqsplUfr6dwAyWiN0AFumVHsu4vJMYaQRKP5oSVPV/0rsdS6Yq6bQrW26dzX6VHqU7ztr6cr1JP3+6go5ZoS3LvHz38p3VcObESFLSyvJZzf6jA0tD3SCrVQ6yWvSeWVwRBGHoKdfKu0i3r/BXzyBnVl9IqNVZYe3nPulwmBAoNFrvI08nMU5PLtIcGh6SYlimh4uyGLr3MK+aKheJLMVO/LJlZUXQV1P68q1pmEL9EGMpC0bFmuidRIyA+y1ue3deqYfjmhfdKbs7GgT31v6Ll/t7P22tB867CwIzNDuXuF2/rsf2FoyJKG7vf02f9Qwc/x4UnKa2Egcl6c6v5mTxo1u5WQPo1fvcRncl8/6jfqcDlGCgkq4rc+9UdQ/f/NyZzmVOPpy97E4EAfMVze5vUXHE7mQy77DZL5zM24q6kyGLup0VrjeR47klrbozgW8CS0Te13TJkP1zKga5aJqZ+0VoHHcJWnNWFXIBgWP3OnEcd8nEkGo8qYt7X3Iy8JKpb5H0nztxGPbWafvVmi+fF8d17Dz2teh0tegZ19dDD1w8XNj6uG7aM+MuLJd9XFex8oXFO20SyIoLONilkhu4/92Lx97uHSjAQigDEzdcSVG6KMNQ+8UvPBYOhvowhZxjWjStTK2w0H4f+pKb15ItbqfDpzM9TgrKD8iry8vzAXmzuPjb6wF5z3KOtZrff3jzJPbBJmTLAreVGnfsg2DbUezPmiuW992QXLEwvyPJmVkBvGhaCrDWPhT8wMjD1qKGK6dMGoasmNJuPxX5TsHF/U3dob8lAPR223AV3vqabqyac1ll/xVrX1qgvwnC6nnTnhOr6NK3lWgtL3SXaMzh6trdE/VgtXBz6y62Zr0nAvrM2b+Ihlw97ltpqDXnfdJQE4TV896VhlrLa9KQMyKypt1QMVpchWTDZXaavu4Ej/rFx0pozxrnyFGAd3OmbBmud9DJcpAErodxQtwmBGD7wG63/JjH0CxFg8y9we9baQ/so1E02opow3sQxrLjkBmjOVODtIrN6D93fvb4sf9KS/18EAUSfhq1nXNtB84HWAQIKjPMwBMGPSwwjYXb27/JZkmaL2Q24GKveDWCJQkpEF8OC23KAuQmYca37XT7/Ttt86XfTUhJ8X0FMJjV2zUafQLOJhAHGsr5wM4k8a1Z5Xpd1iXQs9NRQOpe+VQFp6hs/Ww1h1P7cKtfXVlHWQH1A5t4LVM87CvDSRIB0mfSWHYQRA7VMqAoFbr3uL1IaeN/CRwfEkOAui3l2Kv9oCc/QzFIlcL2nYapkuUQKAyrcHWIRLFo0QRMwG9xp53Z8UKLirOXsY5U0gHDKroOgyKPp687201BmzbhZSHtEYC/vz5+2whP9PFOL/YOhvt/kony+UxeGaMYkbZj6HQKZzm9mCRHEMqpjJOoVojOBpZSQwYRnW7rzvwF12mRrwlXIXSrn8Xahd9ubm9uxi0+0zbNLRkufXHliJ1tWTJg8t7K8VwmDVjgh4KZKyjJcmWkuRVw92law+VuU7k08rtM1sw8XzldzrT5rHWluedrL641212Wls53y/ocNwWO3OGml4lU/lKm2pDwK3mrXXO9hpY549OZK8GBn/Tc8TC/Yk4XGLpbVjVkdfEoUEHcugJF2kc8e7GFJTMxA0BbOY8iumRUxIZSBNom2+8t847qLoyw5F7odstVorzCvlXpNf/dr8mP0yRMwf52vSPaj11LGHzcQGnJzEzewuwTxX33hqnxLn7Ui9SoUgFLxY5EYST3Idw9Hv9yejkg5+8u7P9/uEzSc5+gPnbxt9fpIMROHUZ6fHH6+vTkckA+nL88vjwdkJenr0/tf+MoLUmjWFLFbOVaCzmFOin+C7yZACgprUK+rSZG9qy6oZV9eP8a7xt15a8cINN1QfWMPN59ggME/ZNPkvS/MNJot9ZM6d19TEiK0HHt/zbCgez5svJYd16MYIUKL7CDEAcDAYSAgKCLWvULe+tgHHtRpBhIR2NtwZ7k0vVS+Ar8492sxRlWYdujq6nZW/ppoCK+my7YvnrNFjt43CFr1r0dTzF+dc3aulKaIXeHYKSY+wbNw2Z1Se0CaY7xSOA2SpfJDWolcdfG8UxB5TdohAfBuKNfTi+JI5Url3dpgf2LYdo4AnGmLCiutnQcPGCEu2sPjIhpqyQZr73pipZNm6VhH9e4rLpgdxyAGaZ0c5tTb6RlGUQqYheavN/Y+8uZ4hOz8/78pP11/CLqjM1Q++h7abu8ekLbLEcdumbAq5f5Bl9y02JhGojvczIvTd71tQ3DjZY1GHoZhpIKVftKsXBjVnSOXRhdMeRu00XXyStqq/b2pWQ9LpieSejvGK9Tis6j4H8PPxor7BXxHo70BGNnyH7J7nbgjpRjdxq6ijWa1MVj7qmKxgaB9vGcJ9mcj2mFNQotiAVdMAWXIseTx1xQtYjjh+FlrdJ7VtJgrZMZ2JZClRSa3ftKcdh/9lIbSmPJqK4Vg9bQie74JnlMHieapH5yFy0yHT0UNnbitWE3bFJc/20MNXZ+23Wn5xqyysQKpdkskuCDNraSQgJYlJx/Ym3Vobtj7uyTgompmTWD0vFZ7IuZeicuT7x5qi2pce2yvs0ItOyu8jkYQGr9Z6Lg/wYAAP//GKIkmg==" } diff --git a/winlogbeat/docs/fields.asciidoc b/winlogbeat/docs/fields.asciidoc index f00df7fb699..e770be92bb3 100644 --- a/winlogbeat/docs/fields.asciidoc +++ b/winlogbeat/docs/fields.asciidoc @@ -3669,6 +3669,36 @@ type: object Kubernetes annotations map +-- + +*`kubernetes.replicaset.name`*:: ++ +-- +type: keyword + +Kubernetes replicaset name + + +-- + +*`kubernetes.deployment.name`*:: ++ +-- +type: keyword + +Kubernetes deployment name + + +-- + +*`kubernetes.statefulset.name`*:: ++ +-- +type: keyword + +Kubernetes statefulset name + + -- *`kubernetes.container.name`*:: diff --git a/winlogbeat/include/fields.go b/winlogbeat/include/fields.go index e2489109500..77524516f19 100644 --- a/winlogbeat/include/fields.go +++ b/winlogbeat/include/fields.go @@ -32,5 +32,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "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" + return "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" } diff --git a/x-pack/functionbeat/docs/fields.asciidoc b/x-pack/functionbeat/docs/fields.asciidoc index 5f1aa640fbc..aaf48d378a4 100644 --- a/x-pack/functionbeat/docs/fields.asciidoc +++ b/x-pack/functionbeat/docs/fields.asciidoc @@ -3486,6 +3486,36 @@ type: object Kubernetes annotations map +-- + +*`kubernetes.replicaset.name`*:: ++ +-- +type: keyword + +Kubernetes replicaset name + + +-- + +*`kubernetes.deployment.name`*:: ++ +-- +type: keyword + +Kubernetes deployment name + + +-- + +*`kubernetes.statefulset.name`*:: ++ +-- +type: keyword + +Kubernetes statefulset name + + -- *`kubernetes.container.name`*:: diff --git a/x-pack/functionbeat/include/fields.go b/x-pack/functionbeat/include/fields.go index 90075ac94dc..9f2abff649c 100644 --- a/x-pack/functionbeat/include/fields.go +++ b/x-pack/functionbeat/include/fields.go @@ -19,5 +19,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "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" + return "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NcqHEzKhhbaopCKbSeXn2wvMYIXYDWCRXumxiss7iZFGoPSjKUFV/ye927FiqpJOu7LlztnsV+lRuuesrS/Xm/TTpyvomBXassyrX179YjWcBTGSlLSyfFazf+vA0lA3yO0qB7ld9J5bXBEEYegp18q7SLc/4V89g5xbfSGhVmeFtZ/7pMNhQqDQaL2PPJ3EeH12mebQ8JAUwzI9XJbF0L2HedVUuUhkKfbily0rK4J+O6Wv3pqGKdQPMZayYFSsid5JxAi43+K2d+eVejiuedGdsrujQXDvHL58dXjw/c564PxySWCGZucSt+s39djegjERxe39z+mznoHj70HBaWorcVCS7vztnCx+dCc3awB9+z630V3JvP+o3+sAJRiopOvK3DtV3cM3P3WmC5mTD+evuhNBwHxFs4dbVByxO5nMO2z2MyfztqLuZMii7maF603keG5Jq+5M4JvAEpEPNV0yZP+cikEummbmYREax12B1pxVhVxC4NiDThzHXTExpBpP6uLBl5wMvGLqOyT9p04chr1z2n615vPnxXEdO499LTpdLXrG9fXQAxcPF7Y+rpv2zLgPy2Uf11WsfGHxTpsEslrhnrjk2qZB64fm03Ttyer+fwAAAP//AGjLKQ==" } From 6b915a5ef0d5db356827cd9dd8d242c35740508b Mon Sep 17 00:00:00 2001 From: kaiyan-sheng Date: Fri, 15 Mar 2019 15:10:57 -0600 Subject: [PATCH 217/332] Add aws sqs overview dashboard (#11175) * Add aws sqs overview dashboard * Add sqs overview dashboard into documentation --- .../images/metricbeat-aws-sqs-overview.png | Bin 0 -> 341474 bytes .../Metricbeat-aws-sqs-overview.json | 673 ++++++++++++++++++ .../module/aws/sqs/_meta/docs.asciidoc | 7 + 3 files changed, 680 insertions(+) create mode 100644 metricbeat/docs/images/metricbeat-aws-sqs-overview.png create mode 100644 x-pack/metricbeat/module/aws/_meta/kibana/7/dashboard/Metricbeat-aws-sqs-overview.json diff --git a/metricbeat/docs/images/metricbeat-aws-sqs-overview.png b/metricbeat/docs/images/metricbeat-aws-sqs-overview.png new file mode 100644 index 0000000000000000000000000000000000000000..3d86373249dafec2a68941fdd1bc1f742f8ad26a GIT binary patch literal 341474 zcmdSBWn5Hk*EYUsK|&D_NfD3^Nof$I8wR9NnxT=70Yy56p;NjM7`g-rhi(}f1f;u$ zddKUzpa1Xw?Ye!xy?kLl%>M0jpXXY~Uh6oHHDT(ias+r3cmMzpD9Fob0>Gb-SlRcm zQU5*z6pH}x6i|?n()KjonRoLf*&xF{c>EcldqDS+#G{a-8(b?H(M;mOyhm&p{@B9< zSGDTZeGysi{dDw5(C!+`o2pbhm1|To+ul8?!PQQg}c^ zLqq65k_})nOQPYa2cZAgAHTB&V&VfmrB~fQH2>nV|J;HE4I5~D@VECwU3{n>fY#yZ zIsVe(uU7j%x5WrB#Q3it@c-M4Ku_ilz*MxwCY|T6cL}vx$%?<**njRTDN14raMLXC zsiyq*NAkZb?f{-n|NVigKc&Ir2FQsVDGHVUe#NFhEcoxkfcXIt7C8_ZA{eDr@b@d` z2KxB_GHU;9QD_J{Dsa2fdRVmne#PX#FN*)0Y>`F<{OYpGY68pOuNWV2A^6|3{fnzt zasZ5g!-E26_}|C;pY+83e<(e(&k8<;VBive@0#uV`(y2Be*OTA)*&}(X`s)<*J@55 zWOb0ZnSXFcsP+K*Aj?v8UymU6sYSJiJ;8zZUmqYUufCT9rtE0X<$q!CYk*>(TBW{8 zMN?Dy`z#AhMI9;7g2DRq?N@e<_=pXkEdQeiX%!|tw>TcoN0+>!M7)z~ks0@uQn}Ia zo~s1MXyv_v;p@dN&T_dw@2vS-qz+|5-}eQ$^+I@@Dq|%w=QuZ%T_+aX&E_VRhMuqo z%WgthD3Kc+6w)@=t8Povs0$h1PPa!+}A9%6VdR zTw zfhlRMcde?iz_94ts_KCngkyPGo(xH`x4dl1D2e01N0jq-u(W_1=)nUdH@tc7iS2u; zI%himIumt57KArN*B8uja&rWCDbJ~B2p413*9tKhCFJ}a+da1Y58wT5RLML)7{UU? zsxQ01=A=(;R{HF2D;ESocUp+srsnPluq)(7)&^&QHQ;c?-TCw10YE?m)Hm>oPFd90GzON08_{dl= zuqV?wEXI+i8U@o%t$MwANyDg0B5f6#^48Df(^H#H%!XTw!DJycx%|I72IdE9SPLnD z>Cs+R*KT~e^PWJ4FhnawD=>ZY-FpXrk!hCI-d-Sk;Ogxs{TC~%tas!oqB!}I__&76 zH{`|&kLXgYo_T(cPh5T>^X=__eKesmPuqSuzLGXs9jTP7a-F6zZ1pA}qLt|Rh(i?j zRO;2mfkFOFWdd1sP|Z?Gn##E0f)pO%L6eHm1a9j`c58Z)RaJkS*b@KKeYzwTx4 zkM3RtjSk5rP#-wG-R1G#9&Q{Hn1bRjHard8SqyUgYg20=qnj^i%j^ix-9oE$uHjbd`E+DgVELq6*^B(#y1}DyK5sxqy_K$Io8Ae6!pKr5C{? z8;IDMseWcq$KD6!#hII*ciPw!GrT$%R!tXT3j}$rOvY=mIrc zz)xtSjs3JeqZ06FyoWD#pBoC$QK|yUn-x z;RJ3Ayxk0kDLzbG=@#$!IV!zs&fjr23z&XEw~2f233?j+oJ)o62Z#vuis%`xD81fA z{#sHc3B^E%n6yL*zJ1#VW#lLJYIyA>OAJtPJH2$@T>yKsV*~^wkQu|gsf|S;f!CME zU*MUo?`-usk7F^zR!$Mce!`nqFWv3dd~Jda%#V4| z&xEqd$MU3XGf<1hm(l=MSimE3&wKSF>Jg=WtLwqsw2mEJT~fHKUA`utm>osS)ccE9 zQ?Xs4?XB@da}5|0dskRt#CopE0Tad78by*c39QB>EY~Z>Y?D=0+>um*7=n)T8tcME zj)lxPsx+d$L2q*l=@=L=8O2${pA*>rRJwq)F0R}ARIP^ig>O^^RH(M!4Vwfljlr(u z)BC7}cne+nG--kB>N%#O6OdO>n?He#w0?t=RG#8y3FU^93t`A=0 zJA~VPUInUIAJ^D0pe9o>G-9$>?i?cxZ;e9McS}B+FVM?Ibro=kOlWZ$h*EmFY($=s znC~pp_tIHk5rr%4rO&*0I~U3<0U6Ddr=pR3W#G0Y@M#v(UTQwiZo)&US7Tn6e99F< znCn{a52t|M2$UIp;Iq-BG|s4PtynA~_4V^h@JsX6dc2FMPK*Be37x9$`daET_Q?i+#xBm zj=i@XpVvyAe~&zj0JCWp0ThBIA=MU&2!37M8~fR|`)oRxD_gK_vQpI6*Cnr}|>D*wLMxhQto(i}{b>$#;`J`B(|D2Vdg8A+tLt0WH(}%h; zscLg$Rf)$qdH?oq3iS(YNNA7S|3oQh6R|Dm$il5TVtx_pU-ahNSI%k?_r0DDx3Hs@x9{L5Z;US`@sLNXngt64*aab8%QSx@NuO+*UcXs9kuIlvFHu5 zdV-qqUXACwh2J%k00~6lIg2VF@9^2?wf^`=<*8GzKQr`9X75nsnQ=O?_MZo;^F3Z+{1 z((0Zv( z$?4umiZX35AL18LTfn#6iF$^CdS2!c?h)kHB%5~Wq&$J_Cfl)?9}<7JeK(MIV@S@s zasM$(P;q?koAT7cjHKLcsZO_#!O_w0Ijg%GMx_sD3N6a_d{%o@YOTlhTHOskDw^6Y zq_gy;@HS7*4`sE77I3t~?yWwd9x3snueF(<%dyhUEVt;_H9M*mau5eJ z$R zJxGB!0i2{h(9@A`%P12vawj71xNp70ChY1o^%ZftT(%T@@qTxK7KeyhAgv(i)ZLCi zTigtm7NlG{?T}Z?1ua)CFZn%QTH4JBZ|Dk+`IczkJaL{!G1tT&LC`O*1nWq3Tf`>x zIr|-obhBmcRXq6W-<22)-6@+<3~=hHJ&bkT5-iW9-+p_Z+4@_=^i6`pcG>2mgJqo8 z9MN$HCcDVNUA%1@qC~u?Mpr$Zz6lWouY#O7{jXcqOrA&mI@kzTJU7~6f7UE3Vk-Z~ zf;Y#{w;h+~ii5XLj82yM|Am_fyc0yzUCVmrYEb*0u|Op&B2OXyRk)6|ATFBw)(C|r z{(7HduRS4X=i?V$&QTV85Yisse&^3gKqk9`HdKA)R$02gn=hN1UQl#3KgN6Hk8|uQD~C0;q{J-Qu(%tlgw+(xm)o_ARd;z z)SpzDkeyvTS!_c_A519Ojkm`BJin5xh@b(hVlimcjH&%bY-=;j*(@YS{TsSszV0Q) zX_B;DLbxwtE9p@Wp>7GoR{d{G;FNUEe5Z$CJKMiiU(pogTXE|{;JU%lGeqmJsb;Tz zqmI7Jzs2{VmUzlxu?}3U4N9r33oC6rY6hDc9qB}OnORU27uF~E&O$au6~db zY+2PxboJ04|1wepvizB6*KVfz=_sVUes$K(sqJ4-Bmh0`4~&?DpA*rFy@GBL93HJH zVV-OgdJqxeQ;SbM>tHe?VT~n%wsFST>D4?1PYuAU?hM;LKyDj9luL;?uS}Sb6@Ff! z{fO>O$HzcIFQ*oil=QgH?hTsb{!d3Ns%r!(%cv!)5Je7B_Gyff&d>KW zRe{jd*Po_gimt3aC#7O+dDpLA(f?Z*67<2gloGhD=7TxdIh*0r zYcH%#X={cR{a})~^$Mp_xaU87%4glb(K4yBnEmh})`^$Q@E_M5k0=rl?0aV<%LEib zhML|xg!B+_%zo`}DO662%I}{p8aIUb(zuup7u>ekt?4VLifY{m`61uG;e#~2B^}@3 zGS1fBmwM@YlH3Hz#fFW-lyFWrnAEbq*hU50y7g4&E17mSJPfA0@Vg@VBDWv7^%Vo@ zE*G^0-PJEZvc|fM#0Iu%G-|%?S|y@-8B`&LQ?&mB0p*Vuu(xdTbfr)qK zuIJx2GE>y)6a+39`5aX?^~42tvyXh|Cs6LwWK7cOoa*1aw5OZ&XL64h&tH#ph z=N2l!5aTP8B=;Vf;!dcLivcv)-x_jzZ@*{yg&gd|(rl~s(0x&@!s~7>aoN$%DK;zP zMsI3^y1UT!VPkHk*H-dbWc;Oxa>hmvv?&4Q<&BSY7)|f`>u3*;ztMY=5`QVf!i_W^ zJffkPsECYg;*M&mBml^`bTCyYCOTF~x1CRZ;<^!zRq#R<42$$&=$go@8AG%B{kg7! z?0GnUvOaVFsg*w$2CM(&3p~<3v*U}1qzcn3qATaaEH=yDt4r_I@ffA0;}|7r34cN!H_E+FVTXTvl7Jh!R|XT!M8=1BS&}@-wf7=6!xPxC!2hUe?d}v7SlM zb(?C9&|Dv^4#U5mmBkc^dJ67~f4hjDNlc)HSvk6L&ZKT zqR#KJfa5}R%?8&Or*GFUZ+mg&or=6+ip&N**EDV3r+697XP~{0J62~`%m!o^mlsdn zY$5p6b0&@FW6|#q4qnLr+KWD4P>NY-ZF<*TA~}%K{HEM;>LRV__ldoMVY9o@{CRi8 z<78p4vbTNP12e~OYTPm0caR#?(yy#xw%W2$TcB9p-q`@?X5&~eX+Fc@N%87e8`lS9 zoO;FAhjeK{pD89v1A|YuI~FBA?OJV|QQOUt1VO=5^b8CnHd=+9r)l--`I=tZl{!zb zjy7Q4EkAEg&-LtPnyAz2_xPHFdGf<^-OEduHCmD>VtKKCa2hs6N{2)zN3pqb8a4o^ zCZ=Y~V*6EIr^Ssd2i;q-8O0>_XuBDn(j0y+H8o6oJu@8()wA)CtDZl_XxX@f>~7JT zpMAq{ZF^a%Eo?#O{zNe5Dd~CBd%KT4QITw9;gc6(T3@|)Wi5V}K-r#UL%0gD0obzK z;Y^bkZ1O=tS$PS6yT?xm|t#Vr6BVmsncEXiE{pL-upo34%Q$)lHG5S^!BWK_2Ae3!U<2cf0 zq?FcMK`CRa zcPJ7euy`c$hbe*2+53^r!rnAI`WKY)?8P#KLaKY%GiJrFs##x2OXu7fd;Ay!CG+@2 z9~l*pu>MG6N;2};{#D#QQeyu&zd1`hrpjm7_=K7ppO|^B#`Te?*kFyFdqzi?NOu~L zeU{4RVccWkuMmwV zzzNKTiPo?cy{G6~>dK&@2#Ctf=XAL z!$bRZEA^-rij4UaSPuh_kTF+8bWUCFr5o~DoCK(sQREFy^mlpSpmWm4^OBWBj~Ch1 z&l}e@Z1)}`z-8rs2(xu?Cm)?Xr7kY9!Xzt1!i168oCB~ff0upsjIj*nzV<4gvC{5n zN4s=XlHlo+z+e4II1%eATId0YD(#{48E9gGTnvq%$j&Mc;|u?tdu59adiKYx(+_IB zNUwbt#kYxXpS-Z8s&lydw(e)WSnx!j&(V%7dmJ0Epb@IJ_;!}zQx;ACmiqEBo@^S- zG|hdHOFRkgibggZJ(t8ek6ix!b!b%cm*S%3T;EITfC%tEj^my`V`p#3v-0ca7 zkLoUMCQ_%f;Pf+hjx!A8Qz0Tu3NTVJmItfMR(IFLF?p!^sDkT;<8pgPa}EMu*QKm^WM{_wHg6hR2C<)BeeiX9GNUbC>WV)I_&^s;@hZqWpN7IgTnm15ZeXL{FU8|TIf6Zc5 zD?}=PMO4fJSKclAzS6~Dt%B`k*ZKW#Y&M!ym%Buw{zuw=l?J_JeJNrQM>Q+}In8Zd zRC!CLFi4TH!~GJ@KiA-8Ag1%`L2k%tu&$=sDZf3S-t4J~ER@_coN+pyqBcZslpqte zFE%Ih`K!&Ni-gS){^BQ;Iu$c^btY}1LeTBI?fqlV%PlCS9xmjUl78m$^W89gm**^s^jjwn`~J4Dyr1u$GER?XEnXE!)H+U-OI2c<|N<^dPdrq@-7&yHSRQMx)Wt zZShZ62RbuvJGNB$fZ4b+f8wu!>$D}^fVeU{@g=05cx(c?=26^jv^NU5t;q!)%UVxQ zRZrH8k|W*6`;!J_QAohSs(7|NPYSb@y&jr!K%AC1icx1+jgzn^yinozrXpoKez_(* zTW3RPpZpWyTId*8M$jia_1W-M=P6~KHX9M5=`nJ+co8BIIJLW&s4*R)HJs5L5Ueu5 z_MDLL_a|29;_XMel&fjbb}^kC_`GugHgxkZl6*%q=bwU`-|8~jdv$&H_s<;CRDPSH zy|eA*#gVT{j=%cj??;dgL>`@oX}-+Uh!=S2vHZ+Zl{)5K_kwP3;(l=9aBAiI!|mxp zpEAxsPfFm#Rq2D!qn@W=+|@+$uO$?p;+wb7oV)<1MX45Yo?x^N<}xgMQ!ZAtO4rA? z-|{x^LwRl3E;ps$ul4&y+Ct$epWa(?y$O3%IKjT);vMqJG#}wUz@yZr`jwxqvd9?cXi_ZEAb2n?V`CuowF zuji`W8F$%uKQOfEvj z7!J9o$A&|A8@_N8T(l3y2=eyP>XSnZxbMvoiZ3iQI3JTe_m`M2dzaC61QjQzUzN{q z;>lNHh9Wsl8cVJN-=m0kH=1`x%Qz1~l&7SR8ATbEQMkbbK3~a)j4aR6Sne9B(DlWR zs52>+o4WKn7Lx-p9nYsrW;`J;*n%75HE5%9&YvzyJ|$zmDzdDH9?sCOy@ zUan|@mF8S0Wzkzj?`Ysj{Armh&8?15P)tcNQJJr8u9U=CJ}41;3ZjlG>CkIVs$=bA z+5J*Dq=~4v6>JQ#*B6kTsm?zz?!kwPxxGh`D#R3gwiXRN^psk(ndu^6;&3t+%uD6Z z?%(eW!|qj4di|b?hqYPg7ukg9ql|$RgYunKC z+T3dJj}&G!$ptMNnv74U3o9Rx&xoyG{VTb%j$Q$m&~tU1`huZ)g*J#ag*xQv4C?ZI;!3d~aZ25M$sP=9;1_wH#*ZNC8aKDkFxX!ZWYf$Rn4$5}r?Z!-apo|m(u9q};rJIkI7XZq z|BmG0B;F}1O*q((#~cw`-bk|V$b&iEHHp{IO7VK~)zMWZ@|V{>{CU%@X7_(xR1z<* z?@GMut!Rb6K!C@Is^724QVA1}mVgjDXZth81P|e&{ui51_ar<+(OQMyV8(p6=__Js z@Y!!$;j@#}y||LY{9QY3s=YSCM`T}WI^+0jiRM5xb6`b(+I}HSOoCe5*ux!A?}QMe zE2qIJS^Qde^eS}Dof!aTv?SbBxopdf=M5hFZ9H`v{1W!2(q#-)U#$;aU}NdG$?=7^ zua0%7CmShXG?O9K3}tm@;B1Ot6DBb*fjA^!`iV=T>mUaMe^x>NKCoq=spx4l^F^;O zk>g8Kfz3FMt}+zs)D?QOMijds)|~pOmLX`O!07R{^NKwfY=7~ZHuD9DYkWwGwQ90# zR=d^YKMc9{R6$UrKcboT>g?{r{UlDaE(D`|e2?fwNh@}4iBsLH&l*PAh}cXj5tpBU zHnWN96It4$F=^h>PQ4En7Dp`!znl01%}BzfnAKg>eH3 z??$pN=A>~Arcx>B1}|R;Dj7~vhtd3pJ`>8v%hcA4UnG@H6AjTkRbky<8;qZQhF@e7 zkF<@8n^!8Y6lZ6m`|2Quy@V3_bVB0X^cpp>T1;v~k;-!Js^eFPs&trQ%2dzi0R4<6 zmC4vr7J&H*JbO;@DdW`s3#>dQKQkMnFf11_?|DtgPwuegkxhWf< zN%{q-8K{6ni2NvR$2Sth-;@w2zV?V^a!Ni@kyp@@eqF4Sy*>|6eq z6u<;_Uta4@c3TF%w4AI~T$OQFpc$0ai}>@EgS^_>n_a_S4JbY$M`{;t3*$9N$|nF2 zcnf-^hRkN$U9M&!=YfS*#9iYR#*c&ia0uD<{gBQI6Xl1{?rV|STWqYOH33oM4;&c5 zDgoNK@nBm1yu!D@@NZLR3L%H!F}ydl@NwghZDLjK?7P?HSkx8}``6M|I6(eQWi8rJ z91G)T2KTbbqRmt)TtF7nr@-t-HPkju2N!I&Sgq5#&*Lz?cjJ7Z{=GH&o^PaFNA~hh zn8>r=#YBK@Y4c2psQcY5hIa9&I)NvLF*nBL9oUsZkCbiPZ5snT_D-inh{ArV)1KJB zO#hhDjb=(e8h+elcWK+=e}kQqlf#UnS`?w|4jRr%i|=$ql1gp?sRr4Dm>uEn^n z0k1xjcf2i#^$*Lk=6Pv0N|MJ1q8krMQ-+vseKe}O?YKVv&T_KHD^C#ngp&cNmesGf zwY4tuh*Ufk+r7*qUcbgts`A{l1&^y6C&BGk+bF|ZycYeZwz9G~sb{mDbCCkQqiv05 z8xENGH2Ezg8Y&vB4UF0zafcu4_B&(Wn%PCOfStaN++G|-)I%-l(}Dy5=53$t^-1`? zf{y_1u%E`)0wg>5j$Rr)A6nANKY|mVRBjld5N}no&2N3odU1(loy35Vs!)3goRR{C zzIPc%GjHwF*g<4Tl^P3EkmuXejsD_w;v%PLOBqsu!F4W!gZj0-CRRf%t|L0g*;Xqq zBq4c03+K7jaSv3H&CSo?-7YLeeD)MdoUy`OsR!rB-9x+Elk;oM#aygY>TQ*Xb1ilA zuJ6CE4mp9JhvRT-0YtUq(eGoX(S4)^7T9t<-8zk*i1<5mhAXzmKb@SZ{Jqcbe}^SK z=A!>cmaNO`dec_afNj@1oqwaBYd!}y zxUN4YRT{I5qsV}@jd=;04kX9Ja#oA@C1n&(l5N^%*q6v3KXyA|jrzikuOGMX(rjG| z;>K~YG323HA=~7Y9SC68eoBOZ`Oan;K~!^}=C~8qmF)j`ZB_Gt@(J2e+gQcKBzUK+eC;K$zt>ffM~JF|0N z#P-=>#n>txP1!jCwJ&gK-b0x#x=Le1hu@7S_H|(pYZ|n==OQmn@mOun^t=Z3^Xp$L=@cz%Yr(3P zmQ1xP=jF?zt(r`bRV6I7dF7Ut9Nfhj$&s#Sb6D5N?T2;?)fl>!MuLX-FOPn8qO2?U z2J~|E=-FpMF|-ojMi--3JHAQ(Y}&;s-FDf^8)ep8pyzn(qK~HbX(fT z2x*#HS6#rHsp1DXE$sYY)@;ZI5gAAs`CTnevaQqm)Rk?$sS}T>9ZsiuFj6TZDoRX8 zwQT7cH@xwdzPI>X>*`4*k!Gs6wDKKN5&QGmhLEde@Ao@&XaP`i`zH6S$DMz#33C_S_2~HcGI0X~55p9sVL?2329kCiA&p*oC1x$@=!80AK-zFiIY{v}8qzeU6ZK+tFE0`?nZr=if&E<0I(d=yv**O+!|m2xH3N zhcK$9BWH^_0`|r5ddi#CmbNoUo{V3})XhEflMqIed@-SOIbJtAsdLN=`l9%m;YBS6 zGpcIb^@&q8tdX|E0&=yS2ToeRm3ovkV{UJ0QI#%)itfkwX z;Gq_(UT8Mg6S?vB_*BcCq=GIh2N5Z#i%Xo2ESa#GRZx<58gE)_@Hyv9t>4Rw%yp!0 zwK*2Rr{y>HQY!%sB?~OrmCI_^P`(}InI=oTK4cCogMtN?MsnyaoAvM43Go6&VmX-g zj024x`)C73RTJz^h2^5fj*}En)*ubs+O2tp9nN!qWMm^5hy;fA+F$`$mF^!UyYaL2 ziZI(MOA7v=;FN)sbp5JYVCI~Wd)7?-0 z_bb%(dByKa&OEw*$9;_D0FxynXwv)(uYH#uc%RS|r3;iyQtxK4o#*}=DVO>Wq8sM_ z9EqY7{A#+VO~RUNGCz3I)VlbHBFd39I>+%8%&Hpq!pz$a-;k`dUUUHykQh$JF~hKW zV@llup|nt?hUUe0`$YL(bC;Srdp62d=36K)(4lm=AwuAJ#*J7er8cY5(YB-K4A&P% zgCh#)VXYSUY2Yf1{0R^#3N+ZAKEFQNe$m~c{DWw;$^o=?r}W0Oujq&8(MifOu_{U_ zR3K*3S)9fJ)}CIXL;iH&u&aPcAV>R>@@FAELnLEbD=IAfQEHV?jg?e=G)I|uux6YZ z;s9<)O#oCZw%l)q2xq5vp*&KDWb6drzb>j#WEynZZjKe`u%b6LH?u+U^AT_H+CzOT z*^+H2)D8U9(F3~Bn@V~qGv42RhQWQ)XV5R;Q6Zib*P6I@3ir614Bn#$yvruC!>TY2 zs_d6vh>~jzL5i zkX;;A*oI75Fh*B9YO$_Qz6S_5Ve?oF1n`%VrGh5LbxqPqXSbX$uyU2B z^X$*rmOJ>_$g*FjsVb7{%wXf3yn@0_UR&s;?y^ljHmKVyYqR9D^5R8_+K3-PK|!Vy zzi}-=XiSmR(Q4wH<)RV@R)1u6Q6xR+8LgQA7yQk=b!^A|U+}vmC(l;w!AW=sh)wCV z$JiZ2G~wTa(uk~embD<2W%HPqF&Or*H4QjCPR)K}I3UP6sw><4Ds05$t*2@WPB=Vr z9|3$~X&Na1hvBI!;w%3Hx*WP9{oEY=8%@>=P^HdHB;6lBk5fe*Phrr5$3q$6*ii=3 z6cXV`8S_TJd@WjrB7i0Q}!*&q0f2`Njf2rXwB#50rw?8QK zB6O(#SQg0nvLBb|cwHIUE#68)D?U(*)V`{DKGm#-Xd*p+%-KCKbN|qyQSD&9@7q=d zinHkM8-1jar;av|#>=R)Z`pDWAUjfs@sf&&8<`)(-`=U|z1X=xo5R0f6aGd_&xM^u zlj6s!^}P`k;ErPi+za@FWm_x*LKg!DZZHAijG9HRbE{%$Tg}d(dnMC%V)6WQ+TFxyNPoeH@$lZuMq@Z zo-`LLg5Q4K{)dhpvUbZPexJ~h!;29BF>1jo&SThxpZ{V{~Auh zxjLiOF0K8s{U5(kg5R$N_`bv?4mOXR)&T-x)lyeo)C#(HO1gdmqA4$@&0Tf3HzBe~ zvqzi^hiQkQv?r=9LEHSGX>;(kiqZSc2~{y!N2*CHEo>JCpor)drxD+ME|WHyZFeJR zqYaz5t;!BcLt6L+b7JMr|&aGzdAQYQ{)~c35TBM zlt;2IPh8$lTtRt06IN@t;Zs)Vi~sg^AgSW`!z;t|BA*E2f~W0e<7H1r8qEyc>ZwJ} zpPC-Xo69GW1%eY%W@$0SdQBc|w=MpzD1-VJww?eSa@pv8{as=F>$^$eiE<+XRQ(n< z)-bdnG=u|;GpR;5)-chlWU^aM`)^DtXWD6Hk-=Hhg8%^Tq^M`rNh z=vEl(E|ltA-q&V6|Jr>sQnwt%4irhe(Z7$gd!gYaZ`ECJ~O1o}PIEw6> z&)#jHg?f?vF>FvyX;(l-`V<-L6S?m# z6jH@=si~r<=D62uEcRFua{563&-+Q`U880Y){SCN>od5YCfq60r4mUOEsR>0@Tr28FUZXzH_H#z?B-SU+ma><~-}<)UYc zTaVYs$xT#hjlXN+VJZfgKquxLD5>A%lK!=XE;xt#$-&vKNRdWi7)A8QVq3ROI%ONut{ zsti%X1U(Q5qZv?3orC@-?WPy7RXYMiAYE54E0>T6!2Grb)dp%$hx|Oi`jUu=!+7KB7ZvDZe2j^-zkxWv%Q})eEzc$;US&Y{8=HHZ2eonRW+d@aSxe93y zsw=S-S1nNwdjqSlJ<9R0^CtpL4Hj(E@5X+mY#E$sqfO}EfhV#Bn%p-{UtEX97mlv9 zlZ_D@QwoU!D1!`W@RV-iw|E*48cOh5VLIQ4c~qDHj&&dBGHLBRf(F8erx1FxE{p%P z%%MeO)EQ(g?=;I3o%>yOdCSDI&Sb4I)^r{VF8=E{Xq8e2=#mK>FXXiJpy`Y%pw>pq z3{_=rorfG5S(Xb&K>?GRp3~98*--RHXAbd&L!D!5;8<~ciZUX@60)+`G6mHBK=&7z z)UFBhl}PJ7`p9RvRB?buj80uUbkgcouWV`}Ah$^Vt(#lkI&8{%0shYvah#8^e{oXL zhmJm(01-)|nznfJVRQyn{1$Jl`WSIZ>&=yWKaxcB?IEzteHXy#e|+9GO)YhM7r3+T zvf73T<^LG(x|!g2x+V8-bU9Sf)ilw#Qlw4`{?{5{R*Tl5i)zDlYI<*9me)3x8?}Dv z7G?N7U32FFZ)6BEPpz!^V*rpPD9N3W+cy}HGC>>FZdG%isFNLvmfO~eXzj7oQV;co^CA~~+eG&QAIj!$>D;3Igo4}dgQm*hD3JY932ZWxr@x&1 z&@bUZq5t^MxE@-^?0MGm-p9g&bCuxt#m^89vL3FofV#hwPKnN<6Dx0_isV~qX zgBbu~?dOkcc6p-bx5 zRVFi)rRS*n^`+Hn@Y=yK44>X{@em`i^4|Ae+9d6gD^jl89Ae`!Y?nOy?d*UBvUQ{> zv<*GGt|@~ajn2Ab1kh+?Hcz+PYN(kwgl{Qbeu?XvpK-*Q;P3dQ54;}0^qm{|D?F4 zlFMN|%ZX2OCO}n8RLO}FPsgnWb%_R(m>ydWCKqXwCG4U`BNPv`#kHaYT2sUs$|^gG zs8_E)DOr!8Tm+ihogK0uhF*U`%q)oIlcJu!u#Bo%aA z(7atm?df3r{rekg^%OMxhLOH;|H@6N|C4RkT*fUjjd+s}h>61kZpGAFZ5iFBg^tPI z4z)1GUJtBXjzbLt#AbhJL2@k8h7>&p9cN)O$CislA?1rzSh+pEM5w==yBExGDAukJ zMEfjk9IfMPx$w%dPU2(?;@bJ1EA4y)+>Q0h0d7PN8n*~Pa(>|z@W)b*378Rg!hinB zs(}OX;GEXdJLBFlP+G!Se1VGo7~$5e#%0xKl{S(rKC`&7YTdfjN!FzZwZV_IL^R@^ zBl`u+%ltE_%u>2D?7m<*PMEe(equ0`Gw&~UB$8M*mrVo48|sz;)IZ!86Nbsul{sda zH1-tNBrOfhM8K&|py=IluVM?z_1CyGat!rqzzxWK0u-%_V(NEGkFvhNbsw(jd)#>f z+x0t|w~!okuhF{Kel>UjF1MqPtX3Dnf(d?91gIe4P92&o@De*UhJ(kVJ&z(^!~OV$ zlX7F$^TFqb*RSvK6rM}FRMtx|$@TJtXaG}S&NWk=bCV~jDJZ&w)I#3`pZrBeBd2~b05TKhB^ z>diWCjJ3>Qziv1zS=2t-o6s2wPQ=TEdym&nCS+Lb-W~@uc4l6utVMKlJaf*u?i_%Y?ln8~41vz%7|X_ON3z zp}{RxC{|j}d6=_a5LaEJ#Fl&HeCU5BLV9BpzkkFzg^`b=;0-^I$Oev}6=>j6OuUe{ z$MHqYSd{5ghjuIJmTn|&*v+SQ_a)P{B2zVfs+?_4w$h7p8sM>L704_#MUjiVE$Qa( z^Qw2$%N4yVP-z$cbsD{E@I`U0asvKA4K;za;3r}BJJi|IEcyvQ`I>mlz5dynCm{a> zcp^utpeC!LqO;9qYm4PBw%tNgmz_Kq+*Lci(|G@dhri4{lV&{;PT}E#YtBDBt3Ago z-Ub2>*!no>va4x-l7@s$F8Uo^idoK?W7^+I<7C?~pVW0$npO4?52eU1n!xNd~a1bzuXxT-1PWr%QC*li( zYF~cKVLeP1WyUn$EOGx6^#m3z%^x$`6~-nk?=^Gv8S#IgpEV!<)W7d60Q_v$G@79P zIn-(Kb4G&uV!fTvD_<%30gl8qxn8_*;TTjpeuVm02@dLqJ64<5SRp=B;dL2hJ6Uvo z`fDHM&_(tf_9W49@8)#$_igIGhdp}hDJd8MSCgPc60l9%>3Bc|>MRufvwZ_@oR9Ds zItu4&(Iiup?s8TSFAlXV9^+=BhTZV7j@NYbgZ4x`wFw@>ue@BW22&ctb}vd1|DQw(PHA#F0+%a_{Uh*Vu=d3l_OU{ha_zUG?=N=wllMZ-4A08AZp0ls zI}gsgXW{*qE_rVH5hs1Gyb8Qz$dq~TE`FDW&$x1GrI_rVZVY4+(E6&AKjt#-88urU z4%B%1UH_ELo?j9*U%3_&{l~{8p<9tU&tp@=vTY=>$kp%nA+8IDWf%rqGB@9rrj?I( zE>KP@Pk1rqKRHn1^W9HTWjq$%L|~l(-L8tW0jVK=%Q*(jip6)sdt2g1Ez0DAo$LeUw34)a@#j(K z2?%~tls^cSrx}}S1FX+y$YZoK?_48G7oxa4iYW#FL{P3hN zi%TtGkImy>e;tLJEcE^*CGIa!#eyX6?kUQbGF0JQ7@kWcDJJ& z7w(DypZdR)Zj4@!rC57`o+{cOxsh^*dDYdsI_DvguaNGQ@UtkDwW`iznz}J9H1@#K`m%1}S`b1SEJ3 z8CMZAsp{SN#%Ehi4eT!uG)7o*B++N2L#h9aaF+_wcJ}kWsJ2vI{>>e{t!jWaqR&{` z_dx+^3zns0avs-7tI-*>*$n4T7PZjHn`TCf$8s%r6ZA3f^Ba_vdcwW5An;cTE}~W+ z*A7LHOQq>PsT+iv(a)YQv|e2lID>2O9A)E^w!DuwRJD|Fx5aFy%RXoo4lNBd9_v)L z{$m}h`_z54vRK{=Pzn3;X$n5cwNG2ORo}aecw97_-S{cV{VB>1TeCfmbMi|+n1J>p z$LzBbC)@fpB};mbict4%*)$EdHEIJ40tu$mtQ2Hjy@5cPIve~)n_M)Fbckx}MAtJg zM;XyGfAv~!OVun>ev;?Y9MJO}y-FV3%N_lf9<1iO6!r+o92fvCr}RY`dHBGm<@$8I z)!k1??_(fQb5LIvP0+1TlaVx=2mxv2Wyv$=dLoPXMF<2=8f-{m1`6~#8I1h zo9y+YtodI}NAa2o<4g^Q_cET@bAYu|IIH=I|0ljj5lPc_SYZ150Q|5Qa`(s{;Sn*R zJtehN@=1|j^XB=+<{YeY#%eO4ZC)eS+oHzkH0P)j-W^f>AeS}1rQYrMY@y#QdOD|dJBruNoW$Op|{X`2!Z>?z4tlW^W8D_ z`F`K~hv5%-S!=d6=QE!*7wbO|+(2YKqySg@byUc9VyaQSb;*FSPQ8wkRA*bI`v`-w za)T#+VXQP=)dq41xs-Tq>uLcq!y_(TGaN5miUU`?mM|!zN>^6M=}zVMD|tEQV{}wELOV?W)+h7jxr9&N1(ILATh?R`K3lKR z!JI<@TZ-749bkX&xA)rqDuo-U&rxe|YZU*QUf^i~6}lQXY={&v_{4BM*n&Kl4{>{Q zhu$7_^?lgrkLybN<<+k+nIUkiv6v>hA2jn!8o>{)fL(&A&i-U{Gxa}yw$`w35}e&# zXDU_nCLt8sdP1UhrRFh_Ih6otr3^W0cEENkYA@Z-2L_aKW*)!jq-XWDfzxQ$H-d zl2gd7>RZ_}Q2usu;(1B8QOShSI{U77L`9E;A4CKk(Tu{%o~09`+`d+(?g)Jl#Norj!q*aj;`q#V(u`R1`N{mi?Fj*@fr-HL(x8qVn!E|>w| z3IIfYubgYRQn&X|utZzK#6ZNfoXG{%R5J5v;t}@Pso&_VH1_D|9Tk@gemYm}Ua}zL z3rg0KNm&4OxcPZJ650UymQnXc@Va7}jv&&rl^m?M+L{w5qiGZf@IQ^}U8|1D?DKN6 zNiFRX&Or<4P}@GX$iXZ=oyU`3?QZ#Y+$t8Dm2lNN59Fs-Feb}9n$t3}nrAZeiVT%m zB-@Q$yz@?5`5k{+#__h)}hs9s-}Bt%A4W_fEbHDpx>^>u zCLhYJZOsDloy&-;dJmO$duo35sv5!#DSFvDU~@C>NbpHekQ!6oj~M35Os|2ido7Re zoq@c}`_4Sh$m3nyv**vJ5zwGB)YJ(U;{Zt@;#q!9{eGrg$m{mltZS`70Rbw@Y4Z$c zo8?3HDG9x`rTgSOwEU`A$Z2;FpEXO!VD$hDI%8dt>;IbmF{Ea96@@rFP>GgDFh0BRGPO#=4IYn z-e7kEtGFC=@5*UhGaCNjzdhG=)c43G!LNsesq66aX1)KZf<gCGIcmT%i`G63k(NgJQ+249@6N?X8V6-cj<`6r8H&gvbAsv$g( zqF%h9cdgy*K8A>={?4JW0CXUh#qy+@z0e|Z)JNWLV-O)iYfmTq_~1meDi=Tj$U)H? z*+s`T&UjC=bGJAzUOpmU6h?=eetp)FE+5Tx$4Fk4IBZSEx4j&FDn8CvvErr!rKHGh zk>%wGuP-Ya7NZ2&ckN~ls6I5Emk{1@9cOvwHU?1wYUE91Qs~yiOHg`A*6enb=YKK1 z@i3JBr3*Ga^t94?+2byg`>Dl$?)Y`l zac%`~tq7U5$kN{JF^fVrx z22Z_J!8(<1?e2b4`>tT6A|ZU`A4|k@dM(SuUZSB~<{g21YiwKziLpDQ zU_60GJj<)~{gpu|KQ0u=i`t@D3w$NtxR_>~0qJZE(|^Y#Nx{yZJ%6WLG4xACJGD(u zaZxB!uw`GlZy}6#{*MY!7GPmJl+efAA#yl#9E7>VrWg|L`>|aW>Y;Xg0^G0f(5$Ru|>gexoWYr8Nl!qE|2w$j&wdg??uG(VC*)BoFHXrmUJY{ z0XYqHCl4__(&Nn`Y9nYQk{+04q|&?caMtxpk`XoN!bcQKQiDXbQAm^S=?gD^kG7>x ziA)dZUx&WX%Ivh>m8&MOrwF5s%su}aZA4D&AUx5Ak$T*bDouNt&%5x_KQvVThHiTr zag;84WGaTnNc+$~Zf)Zrg+Fi-) zGoucc3K4!O$cAsWt}g_ak_H?1K5Ob6qt*Y+upXJuZ*)m~_qpGa+=4-QZ0@R@d72f; zVZ+33{ofC|3U@sFE#+AIp5rwLe(##!`e+0ImQGL4wm;dNx_X({H=?Xe>Nq&~EsrK| z@cngzMB#@l>+4&&AM}gKKQ ztr^v2MQmY|ipA|apFQO?GCG`m{J$#!6tuVEkBQArE9|2(5D!m8Zw6e@_$S)W-$yux z8_`*v@cMZu0n3OM#>J`~Y+B)~o&VJu4tZOSwO1$0Z_$7nw~raG zv)~vV(2ag|9brR^H#pHaVa2ixpuyep0Up|3Ta>c-YdGHoVFiKu2PhB1T)y3|L@N9a zUG&Pd-`d9Y&<5UC=s(2X-}xvPk)-e7uO^u3_<$bnojZE-H6e%CAKga%*OsQkY4Qcy zy6ONPdd8ol^vrA;KM)^U?kT2jgvV!b!D}p|#@T^!X&rOY*ZzBR1}xj!I1HQqvx%sj z4HS%BpfWkeo;OqoxKebP{&mRHRf|dCtOx;ikO6HA>g?sI)X1Q5H!>Es7~A({)4<%^ z+#jcN_6-B*`8RL){&5D--`pr$iSqo7P@2}3I7;>+q86#?X~&?Miwla4><#BYh6^3B zM~tw#V75{SNQOl*EXm(P0QIqw#7~pK|7qCtv}Y(yK_xz^MER5WyDdm6Lla-=er*4n z>8XFbBJlVB;8_mZkrF0HL4^%T!peh|y=GU-w?OZ%6SYwh%^Lru%`N`67oky>S9Jew zvj1#a^k;8`&T={m0DR*cet4S_vbAMC>hk3yyVX!ndcG{h)}7CrMoIVn$B0TK&(1W( zTg`U?m;a04|F5`uYCyE$VSUgB%n)ffDW?NP&3DI$6)sZfWz^ATocUjv17YSa!55hT ziC~Z*4!n(VSm8hBt$$Z+*eozvR>plXii;8C`@&khZHnX~l^h?7MkpVL_nH6Aru+?m z8Ri}^sJ2v505qVOO!g%3fAImLbGL+nz(4DUxD`*N|6=*W0sg;O{;!7f|AtsjZ8mhKN*GQlVnR0t0tNE( zdYcn?Xyf%S>pNLiX)yDcez-WIpCj*fci{S!wR8>j!>hK1oa#JlChl;Qf2nkDPb#ce z{vg9=1K)Exe~QTz+vyS8a6m{Sx1oz)6wkfn4hIpR;RyTZA8%dAUcz5_^wWSCEJN)< z-xLwV8EizP7nMN&&5sRYQcz&co3=Pokm?;#8mCR74pNIN7ry^LxdI{*5WqaojDzUM zbF0j1r{_tdJQRFZN8m?~(;vH%gG{A$nGKMYYxoHPogWZ5#ZMH3zxpSk5R)@B>le*^i>sK0{oadKz#MJ1aNyQiSs zJKER(E93q1vpTe&g@`f?L~h2FVaC{{n0-LJd`{z*72G^diTNiUwRMP>UE}3J@MGM@ z{aLiix%rf*WZN2(Ly2bw&K?A>M*is~;iSI9bFFHzo#7FYcF5*CZSL6Ze2rH*PN%Gw z_o;)!3^p5(6My~Zzt#uj-HsdWCK)?de{(izO^yLSJN>rH6>Z$!M;<<$(s+Lj?+Wfh zZcS&6*K?f-oc#R!w?S4J8z~#1N80fT5+J>ZllUm&fj&?!#~oLb+IoD`V%Vypr;)xv zLcZprHxEAR>tbcyN8~sXb^&bTM%* zF^Z8mHXYMxXArfTxuy+wlNz?wQCClv3()7;gM-teQ%`&NSy<_v5X5<>4fC<^`HpfM zZ^MxUp3r8w5op9Q*Dt$zJ4<>2A9NRj4M~|(SC1Ripx=>)UUI+40mn(NCr>^7k9h4J z23o_j=)E)}{%xHX)rc$`Zc3==2+S+Q9HWWLoAbjY8kh_UrXff0PX5let`<^ITRF$x zP5_R}rzkj|S8>@jq>|FAobi_Ao$xN@%r!M~j8mqL_u zXg8|_67C{|7a7z}Joe#HE;aba-xBQvsa@TBKnw>#wr|Km1qJp!CnZ4{0kX zSzidbk`H6c?reLA7-)qjQ85Nuq3 z|M)#+(w^62#`CW=yF$hAs#icA8wv;XzkL$e?^(irr(Zv#{CyQ88Z9mj0|CIv-d6XM ziyGAPa!N~AH^rtsrdtFKWDAR&bGv`&?b(&hhvQvzDT#^P>N+}-F=wkNKTAIsgX6Bg z8X@}4la)Z>@6Pv4#!5@`-Tf`U@JUYr-?1CGRQ=CRb` zaCb-+;{C{$0$T7_tP~6SeSc>-E@~3obZEiscQ-}QY>t-tYFq@C7!*MeCFn0vk`r49 zxDPXe0BI;Id!75wV~CS*3=z>aaQ@|=e|-1wEMcuQoS+*BDSDzXpv9{5M}$_QByBVt z2lk*m?fE}GCU>rH^59JSB7Q*-VgkYW(0T;TfNuTi5~3G3O}w~3H^`s2^8ZKB zytsKyDG1HQ68Rr?#XxK^mZYOVP{^G>6+%RIfmMdPJtkk%#6&sq*LQC61KL&vS@BLw zvk;MfrTf|7k#(iRQc2&y;Hv^}U(67fnD)KDse0sY*giy(|60W>KxN$TTH?6W?&5UM z(FQY`$ZEPO64D zlM|alu+hm0&O_RJ?t|#dwB%$uFCGOZ?B+R9@ThOV=L4>`=>s%MbG_k!4e-lZtge~=rZh3fOr zl3qN+y$L@J5#Domv28Rj8m7AG{H^b0`^BaeHn}Hy`>P|f%y2=o+A}oaPrlFH`onl~ zxTmVjm*wP%!tP(cSk}oM2(m&$V!K_+bgRuRijswFH?tSH`T08!j%;ETua-3)rEP4C zR=IS3+p>wymc#5H%}M3yqT7Q-sDhkcio1>etd5m51Ui}g7*yy?P{{6w>4B;0qh@$0 zcK%U-&x$ysynQh{UWMNLnz@XByebv*y-c})ufl1Ld00HPVh1oP7vCdJ^P|X;54aAL zVj?xP>r-xjlL_0m3k+4ZtjpI4>6d#BTMpakqSd5=)$cKl#^4Tfsq=wBe>c5{7y{g< zI4r$)CbPIwEd88rb;76t!+2Xn2AH`uD-eAkZEj5N=A5#}>mrub_YjI3joDd>4)Qww z7LA^nX2Dx3bw@tw9rR^;jrDuXOv*tE`#poY8j<^J#P&gLJ;vT>d{f9qR>;1wsx;E_ zvtHnCBkCaVz}SQ;E!{DAUCv(BmC(E&A1~d;MV~8?aP)c^r4H5X{7O$gU6F&)o$qz zip{V2CHK0Pd2!IMfKcJ%Bz&0En4QxQ%aj@JaAMF;}H>HF=i_y?R6ppzY>qJERA z&`7yW;o5+>p6f`wihko^XEQ2A$nvV&7*s4=*V0FVjc9zC87?H(SrLU5DH!p}+*@_!FeL%)K?1B> z2IKi89$sL%b**MRIAN&B-{l^)AK}#SjtE1&HWefRVJ8mYG$cQGDh4-BCj7w(%^_?T z4n=*6{Ff1=SiXI!gvp2|_7xk9V5wPMd{3HaFSt6=YH!njv8Rd*G&xzHFQ>R^Jl3i( z?OaO+O55w`@lCd0`02TWfc!0dKDm_Ll=WU!5sqJfWv>XAnD>C=b)0`R^AwxzjX03s z!}+)e-bWq&tpvuljj6WZr(A8 zI14{oajC1*Y5J@w)Ti}qm^3GD0fv+p$yJ53_%)B0$}(X;+qbxYtl~IT=AK^_>Fj&V z6*X6RRnhzKhRuzU5vA(na@bB7x#!Os5?RhLC1Ju5^TrMYwMmbU{Z@+7E20sfd9d7R>VPTW9{AW`*AXg0X{AKQh#s z^O@tpPI^raY>f^fB(wXSK57KiDF7;{6G`{mSs86XJZ_u7R#b`-SjF?>bx| z6|-Brns)8_Tu8uEOE>8Tz-K z%`7JlGKG1vvDb}0XKz#izGn)-X_tP~@2x3=9nT)$pCzPNN@l+TFfAbfAA(=4?lyQ# z?&hjqNO(czzJsGA4Ke~U##)HoGq5*wD;rT#Gm;$aZR)2<6NH2MyTOj79WV-htM8WZ z0GmVs#Yo!P_12EBCeYSiMpMkkH7~#+^lzCEC*WnFx8FccxN{ZdM{NMQ*6z}Mr_siw zV$0K4Yx_ghP{dIg^`3~)XFdC-y=wHD3oCo4)~Vz($m$kP5*W91v-)7S9=S*APSk0fLbJioF5`R8*Y$@C`J%kU0oTF$7@ri{ z3^nYZhi2B@4b>8EoFc|97iOuj`&J9{l~N}QTZmf@4Cq8rsmfZ82+1GiSD3zvvm^vo z+^;OHED^}8QbKabLG``E4*Ay~T+{ZIE{o^UJhFhyMoZ04E8v4eWef4_(#}zGQl5H! zFX9dTWXJnQj22MiFQ`NAr-?gpyKBCdcHkT$_d~h+cjI;za516F-@gnr8XKVE5w2-6 zdZV@KKG@?oA|cBz^8usj9v#4eycFbyZpIJPpmTGgFJr2oOv}|B&b+CZ8_kF~8eQtY zDWI3F)YovbIo)~_8!Z(wc)~92Z8SPQIqLWfh-vQVu557d3IOyG4L2 z73mBSool0$?k?XPb8Y4+iso7+TB3o}2bfU$TVdx$vb!KrNE z+{>+@nRuRV+s+ERwsMqVovKNtBX7X=oG1eBHCt2hq*EVzf@7asD$i|mS~)DBDK?nGhrtG)GLjO}s- zZN*+}NgKb8;+ptJ{duO3-n~EK6+vMyzFUoid$}iJ&6>7*^)~eh&#eKh;@WGZ`-zu+0Qc(-dwt0#03En)kgGiD8o5 z`<7l8?$-7iEmsT1fKx5;$4Cf{)uxWCSHK_q5NT57JZjHEX&CG4m%P%- zSz;oYk_wxQPZD^<46Yu?*HCY&uhIDa`q5}q>$2lsVCX`8)>UDef5kP9H>8dmSz%S= zcl(j25!Ade8-}#EW1pzx*Vl!c*n?Y!hfl5MuRDb_ge(YSZfW0A4ob7Oqltui+BJJuf}q*zWJPa zLl2Z456Q4rQx0>?@9JzGbg#1z$ga`Cr?v(o9zo#1B|%JP?gh$wbDsMu{qJjHVm0OPPXvjg+Q2mxY8qMTcZ9Q_izb(Pg z1jr7T51ys1yRv>5O4a&=`e0|u`(&?cUUj}-$Y|roqqc7CDv!#f979L=NbMF}xra-C zt4ko?tgfPz2Rb4SMHTa%6}O2Q6O;{M3%FPLK650v);wb;7?Em0JaL3*G>Y{BZ~_4% zz0xu#5fYbC#16TswSMd%&!R<^`2E+k-A14KdfQU{LpYsA2A;RI1lKeKGDLKQOKOL9 z&8fE;#JLhee(}Hj5c1?#$lqwJf$k;f!4zZ;P)83N_Wgg#kd!R;9ZeQ94$ci|cH=CD zeJCN*D!@EJ+m_h0u?U(YC1upQKL!3t45R#Q_aaNAU#ZtDUq@JBCRJdmzdf=7tl`Xt z+YQnJ-V&Sf&rs;e{t`XRhljET#|^vea+{!|4MV;&ep{Awd=JIZUbk>-P;gPJB|qJ3 zT>NIRGwd>SVVSPPz2-+RRL>+O+8`m zEP2IkGEiWhqRk#28Sw7{*Si`31Zn0q6+?%2cN(hDRlVZQ-)^9$*d5qos~f zobQQ2B)y*s+_a%ipFQC1A!O^6pdpUxhM?UF?e(eSU269I_)Eby?s5CfwPa$($V<+Y z+<==DOw;v=*(?awZJbP&T3RFUO=fW3)qHC1f$I89wUXI>k9gX(J?(VK&MMT8&7?QU zI3X!Cw})2hN{~=ram>~dg?B^vdQf(a8<`}G9T5=gf_?>YM?=L>B8;r`rZ+;}`^tqE z9V}>!;qK9vpD}4ba6V8xWmvrBxBG6ZrBGVzeOfewv_>YoIQJBFy>P?$=~lZdQRg&E zVS-;2qr_LqF{@kc&zaPUgIrkaRx32k`SSZW#Mam=b!INFG}mGmMyoM3kdxdIWD3kh z%Z!y!r7QhPE*;VU@Bpiz`3APNeT9SmXjDca=w@=#h%xY4`=S^N3ENlqdg?vZT1=q-)Fmk@;=eG6JkUm>L;9-Q6tH=&^Q zHB_4Ty8KNtbnsEB(RDtkZ~U{Bo|=Whw04y@DL*s6QSAnRg-Le)tgOxaQ6mxX)9G); zRP_l}5lGD@RYi~f;suA{K8@4;hz4cilR z5$_zoj$2PqUs)oVmK^rO+NB(kEx$NYTCP%*n0gh~P`7vbF7cy&AI+zmLd8O_?={Is>P8R~aJ~SQ<+^~#idRZ_y zO)(0=gA*Q<_|0^3V?eI<+tYpuHB)VYd+t?2WiD)m1`aOIA399D5eKYq6)F`P9*p0U zs%C`jn#q*Fg?Su=znIln+%Z*qjws&gXr*QxOvY&48t$$1U1(<_b(~aV58ZuVUg_0q zQswsLEK(kq7#CUAd^GC8d)54cG4q*UAz1KN2)^_y6_Vw6V9wcqUpL)w!_b^g`xc}| zkOWfiLq5c6K_w?rGEV5I8RhQ1&UkS5=z!e{=O&dxr=g*7(>|dZ!8XxkO5blM=C^ia zx(S-t=I-0pBQu9`2i*UmMTRhGAA+ypII+h3vL zwD{QlASaOY-7N*u|*%tliEXq9XW;hp-?97R%NGE+dxYIn z=<0$%%*kN`5BYc>_4x={R^M8RI6+Kt!ph`zy6Y;(Ew*bSWghU5(m&)Qusku*GTrfOsy7CA3X|&Nny6wZD3AZXys_RY7ff7#RmCxO1Z^BO7 z1;0JnB_XR1=cEEPVhcvw@)!&zGwd~Q4t--cxqv{XN)WC2H%z}s^L9&enfrQPWRqFZ z_q@Ivy0kHo@mD63bQ#EG zDs+K3?qKshLr9yVtKP4{bTUf{T`0Mle|4bJ$p(!^C@HeO`w@N{(~@`LVzcx-*eN7P z7Tr>&!(J8#T)H=O2r>JfPA!FT9R^3gR;AQ*+`8-RtE_t@Ac>#)Qj1m65m%v_L(2*3 zx(ZvhqPI%M0JKFIjFH+T+jLS|idr_9|0#M}$SaXW(-s|Ppez5-*Ez&ZP?nk88TaKi zPduM48&?RGQeTj%C5mT7#?MuxF!9=@70Hl)44B`v6U70pue~Phx-yFAZT~HbN$X@uc$p{P}@Pu z5vWhgB7RVc55*iayP(R+uq76C<2A>n!l;4M&ceB3F{C)#XkWgxaNV4B-RYM|SIz7w zX4%mvy1+YUO9Qfj7uI@EF?T|AF?yqMg_`b;A-B;0-~nltc>%jKvC86W+We?&twK|5 zMbZTYu{BEvi^cAllwtQ!mToZGySdFX8Omcam=~sMc`yj;wORyrBAY}}R}nn((c63y zi&U&(o;2Ze8C&p!2bz8WwV*7Z*Q6$&L@2Kgce*HOUAY!(v7u{z^!gV@_(uaO92mVc zS(s(Hkz2gF=uf_8JQf_j{@B4Y4%=s*4N`I&GmfB?n4l-8zGANWP>Sld>p2EUToy!Itvn4goht}x~=Uuy^jUsqCVu89vOZdcx6?4iA$}!Wsw5s=Px|F z#zF%*d`~f-nd$##=N9W=`u+lQGb2U2?h}>FC)@m%^}2E=AAHxx)h(E0%q$qT<2UxY zk_0*{rTB2X!Cq_x7t>a1=a9H)+)lCwah)h=TAO}6_#=QS(6tsH5v8e`%d5il>$JX3 zfaZsQmI~s)AcqX(Yy$wv)!WmNF2Og4?Y?CUK1)|NvF8~!{)l26UTEA&u5=pvVl??k z%BPyn<#SfSPS-cDfe&6jXu+GqM0XrSg)AzD&X9_ygi$?+I@n)v5@ao)s@6+S5r>9@ z?0F>m>U=-rMlm`)AjdVJRNacFuGvvx0y$pT4Wa`1`mq^hg$)8ojP^jAZ)`(-_m>EY z=v9n?!aFE^zj-WV zsN=DIp66qyv6BmE7yG7`5$R95E4mpsbS|9Y%F4@5bTA$@V98tZh7M=^6n?(P9n>~7 z^v8YBrA-ljI9k&f8DQ<;P|{oq!%leKp^`p5-iaES+Me&G-_89*6h2mS$^$(0nJAQA z!?1TAqu*@Ls*=S7A+!=q5UE?^nTApXXX#H+X=t92WPXoL#C>|muF*a07K~alJfOTq zl8v~oR~Ft|AGn9fyWdLg{e_Ia!`LD7s>S}iUu~T!pq6z-^3vniK$Uw#ym4&+(!h!RI zx2&Mo0Iq`;$;{W~v4dm<(F-lNH>(huAG_G%Zif>gUKO)O$q6kNG| z<~lCThFjyKFa;sU+G&inUD^XvMF|>LXFh}^^^B`Ztw|f=fWXaiAv9s;-DVCvo>0J{t>2C}b zN({a?$TLbjKJM0EOiqs;`Pt(%-HWgHgOBm81lh%&|$IGcZrE}H7=K>GX^{{J(jJ>{j7`m*UID00dxSwJ%$~sV&ty1`og(9u=Y)GY@s~0PLT`G_8WjZ4&YIP$g%?!!~LCh>$6h zuBu~+5ft(c=|*1|UpgW{wN8Wfb)|v5FPk}fB%vt~68ZZd%3ms_dR51z2$^4tynq*| z8E)$Jf4QK|E>~F^pDniR64o#A@YBftAcum3#n}O)sh=o$o;J@SQw)+^6(0)YN9oRwQk*laKydW{!(r?D!Oela|vVnHmBE}D*Uc5jke9&#E za_!g3h)5a6izQIkyzyZU`$2Rb`XtFqssBh%jS#T`bIS{3!Se~Q>8zj%8gC_^P zpMHQ2QhQB%esbzelG-GJxb&44=+|_wfRrEyTt%9;HE8^gBEydLi3T^;Aw4sXnS-P2T5k2n{yCLGgWSA2*eV z!qR@0!QF3meGQJ6z4#e1aBB(c5PiWP)6@GU86=tVyu1M0$(N-Op{gAsVy6Pi4hVe# zhJB{_8@u4@AJ$oO&+uRetzXz&;znO=J}ar&I6_A$PBH~tQ*om@K?YW^wz+O@(c*-#JXabLgf-ADC(i&TT_KrC{bTps2CK; ze8H>Y{QSl-?7Arcp!~A}=8slLRSXSB*M8P1_TKtVk1avacA1gfM8A_$cX#>u?I87> z_{T^wp~auJ*|X!NXhzV7c46~IrDCFY(+YD%*fQhUK-2w#Mrm!fz}nai2~6!1!`+?d z-V1~z7!;ntM+l*b9E1!-m6Hrqug%JOL3h3@$#yu(shLl&8NVL%5j@*l8flV3>6flB z8u%7$uN)GBKhn*6JZs-7oAq+)|nQ4Wij4G=0?5Wnp!o{ z&`In;f-rQWC*I{eT?c)!SuQPTDTAtiq;?=bU!-;_SlavWrHE{ORCXP!rXufRMo9IN z>&tNRcoOqSatlb^a-qM=U@4G_|cuEw9O-pff(F`{wyd=o&Q)WdY4U5KN%Zpb5h>We4v zxXEr@oeB&{L3Ut+niN95ek3j-ng;~rrQkhLm?flKc{q4Ct|wgzy)WKW7h4dr!07Od z733(q;nG_ub`6-^G%n3xmwZQj9oYkc`^f#vs+HF1fX=kF+?hEu-hseJeMofY#+}QZ z3@@syf)t0;3Ut!fHQSjym$b%5bSe-zwAVnM{WCn(spY;b4hvBqtIskFLn;x~TA!s! zrjUxKoG4Ude@Zm7^YB|W_BF2d7&e-lKH z|E+<&BMt3I0_sJklHYhyA3Gt}_Gb!?HVuC&2%YsG-5|8Q#wf#%%x^v(@7AyNd^`(t z4X!pYh=%a)ct9)XhYU22dRab%s1E<=B=C-oCf=j+(KLlnNLn5@U!3f27 zeK%3#m7;P}%MNzqwP%}AzM#X8M0mHsA8G>HR60I>?v4@GM??JH-)U2rHT&f^r&@_N zZVn0wlnPA}g-tYo98zvaOWIFxQ|sn% z1n@MoaJrNSfNxWG1LT$YVi-c491k7?`uae3@oh=Mx00u9i)ADP!kDxXA!QdJr0hte z9KQJayMFiye}zOV$WZZK2@qQm6td&wjFm9clmubJ$`5lQdP-eMLM|CI?OBlc2#N~~ z;MUvE&%e3Au~eYjrjsRVa3nv9KKO|8ZI59TLWi6}FPS}=no^bqT7W~v#;r?~4}z#x zY7mr;2;rK*J*F`&vf1|NI8#iOts~Y*+v5c16P@}AJUFuP$*|}# z&i*DLVIQe-aYzRGA;5ilUCJjiQ&JyI!*bVIK9KB2vWF&4gl;59L|$ODGuj)yuF6;D zu87}-jgQo&qgS6I_(~&sK_9^O=4}hRgF0dZzNTG#dd8_`K~0J!B)rmxg^`+f{>8I= z84k1nC~c3hVr^;_Ia!t=6Qg_nzOEv%@}nrDkdE=)@CHBDRia3l9XR4=sT&3ml{@SZ z0JklL>z8hGIZ^fXOJ;-X^u%sBoraTm@AQI0XxM8@rhse4Y_soM3^bF)kMM6&t_hQE z)4!}mTg@DntLo+K$Yj`D3RgG^e_C4YHpWXU@Muf6XVjhQ3h0B_hk&{hYn3;hQq1sI zwbZsa%TSeZ!&A3z55S9F`31>mP_UCEH7IzFe*WSH!LyeyQD|sud-WO?6N8{%N~)YE zIA+^pB$MkTrJ5p{CEV@P$$S7Nm$xZC&>LtGc1AJ6f^jk=XR0;=ffievR*=d$`sB*n zPO9+iom-1{vJo5NP+9{%O)s{^jOd{{@4MUrugF$Ty_-v^`-II7n>VKIYwT)zA^dGT zHhTRtSAg0_N%#_h+ptY=8)ja>ZJ@Nu&=HTLAt_f{<@o_n(SneNl>H+ysYOZ|1fNq6 zo=zmgL5tbV9nqDBtslFx^9Q|S9(^Wg`&E1XOcJdvs?>aY`{x#<8%~zKEX3p_lNBsh zrtEOsF!glDRSaR|A?210K+I=n^9ck8fp%Gt9*LM5CHr;Y`B|x_S0~8(BdLSbSALY( zkUBVXz4u93Z|?4U-5_lKPD(fPt?v4gG7Jq-3!L=H+IUiuhkSQZkSOqIn4xmGrLQxg z@Nkk3I2J7-8EoNZya0hQIf+26&8j`i^-L6q}Vl$RG+E#&{$4iz(8_<@794Zg!_vWlc5*SfQkpW0j0@yk@%GPP8sAeYo?~^8x z4B*g&4Is0?_~Vr#v2TE_wRx=G8GCTByLwecS4Mq7#K`e@alBaU2KhPA&`9mdu#2P1 zX&Nj9>SrPyu$BKfN7Kqg3e#hYuqqHJE9T%*qfDx>>v~PzA$NSw(zrVK`NpO)Qqe(< zo52aL3;<1wMt8Gg1G2LPYK-Y5sC*0qYo^pOhfh;59;112Lygk~FL6q2>w_XQ)%9Ya z8+3Tye)qD_lkX||H5Me6{U#3kKFKv=93#Q+z!>(>Z;kBtaC+m_Mr5FsMMRzR3rIEi zX^an2TCGxKxsym2SF&rRV^Lu>%{jK3y>M{*`8itK)02?xl{}Q)=6R7L;r?R_qw*ON zr?E)|q7E+VgXA&OnwyA`d>8*Q>E6hI6d}`f|8ao7r!irQ=|IAdudm6DKbF-Y$)KPP zL@?A`sERkrZsu7O%nTGgVwEH?j~F#K>Tzsvp0B+~#o74#r4Qm*0CB&4Lq?!x1C;nS zEU!i)&}DNviXgiu?NIH5__?@$H;vqOS&-eyi7aFVKtp1O>h>f}xzx}Z_+d)4py)6s zlc;wkWiZ6^XMRD_eR+pY1D&%^w8RHk6s!~F6qlZV-pQvUpqH7iMQZ@>Neefk0M$Q? zmryhzXD>Zcs#K=Cc4LSN(Rli`DMm?mS(;+K*T>kQgtB4k=Ouu7uz8K(5f2F-;ZQ0Z z#~OM7g|#kkY=5FoR_~1GiEfYqQ1|A=VJzKJu9e@Xl_qA_v)2~4j%>^Qie*#AsrKW< zWU&jqrdC1m@Y^%3=k&wAx}nZ+^E}*M*8c{ZG^qsh5|fh&jUc;>7#7iNCDdz)IZKX|4hB zVf=Q9{hVAZfZ(qYH7H?kI;?7FYVH6D+VTrAx@o@?CFMu;Wu_O4bl!SRfFDNZ5d){l zMnD~em3bRTW~h~`T_<>p%S2!$rC*H9>nCW3Me7YJkF;|}Ec{K#Ov!PWGI(6N`$tTJ z1x72Te4XOlGqxg-5*3^KXk)(H?G!z!r&Wq=ZdEU=+S94Mo!K7_E|h$gDFd@e#m|bf z+lTqwntd65lw3)@Gl^q+YwXd)`nv6)8Ozw&1!?{))*AB*WRkx9i&wuzFb%(ZfN3oH zj(1%aRO)gYQNk2+%1{M77bvS(HgRYaL-)N-^3iap;h*WnS5=Gx+#rZuoi`^un~zdmCVG*k7~-W)Y1Tv zx?Z+r@&a8{PsT~X95M^-p}uT|nhs{-*L!S~<$1oSfENnq;7nc+vdRT=f{!nEmxLe#KQ>rWoFd`UB4rxFa-or3y7_pYOwl$)J^e z(4>k+b{)O;vDXz-M2yszU@3=*j(T7ub^sIXHiRS%yl%DEQG*V61h9XlY)$GTb}Y`( zftL18CZskJbMReAq#cKT88*0B-w7sOtk1)v){kn<9B)5&qoc(xRjMb>JNrb7k%xI!}; z4kfzFBv<3QeA_1KYcE1N{6z|(@0ycUb#H8CYenjnVbFxoDPqddC7_{K!7=9S_gwal zHH#>2P~UM>+A?WF>;xho=2`7H!dnaxYuZ4E90=vYd&ea`MmYC8T&`>fEfUBOUntgh z_9UG9wuNej&j*al!W>@5q^6nHwj0AWzcNx&4cFw^j8=JkqPbaS&sLIk3PAqnvCq3M z{9$ma1cN)P1l$twcy;$IfV1h16Au+XaF14Yi5L)KaBZvP*RNWsg3KT^QZ5i<5_^w^ zjI-TZUzFL-6eZX$^wb>t^%J#1LfGR}qnVgA6Q4JzaA~_K=|UyVRih!&b53BaoVhiE z<%tyaOH~E&lHFb3I+%|XI;{FaqKJ88izFu7l())tqZal?(7e9q$(W2!Zq@x9#11-3 zKqfb;juoKC^EOEuXF?XFO$Uaj^t3~#zpAKmfd?0QtMS53m5sZN0Ej)Goc=8%mB$D& zzJ0obgm*l9RW{1By#U!;nYa!l-AMw%a6wz_XA&U%UeqQkqpc}E2Q-K*xtZWKuXY8>#xY$FSantTLdz8w1N^{||d_85ZT%h7I2|ND9)@Eeg^N0~nMb zAe|zDNOwsKA{_$Kh*FXwNQa7qq;!LHHw?|YX4w0Aw)=g4e*eDrIOfn%n7QwJt*fu| zI@jtG+=WikGlMTStCEJ?Pg)}2xbc0WUuEm)-Yj$`$^HHoXx*|lUe*5gF3h~$(Pm-O z8z7p-R=h?j#ca<}moJ*2h6tfu{X)I+C{U+4jOpLSqY>0Mbl(>kvv6{c2InLvB(L`G z)@>ZnH#Ub){ahKKqiT@!?<1y*C!Vn04y9TP)c%WM%Jp6?U)mHiA@Nz=crL_T+SzJ8T4{a~**`vY7u# zNf@QQ`jRT;qoQ`AMfF5_m-vdL;YRl}@9xIo>4Usp z!QGgwcGL00*WRBkEt0E-BqXxrXM-G8@^X%80BUCKZ+u0VOrQ6YpO1doL#x?}fC{gw z^ii>DJA4NXKE(-!G1|YRXJ7oxk3Ah-s8-Jr6P3$RrU~E1TwTbTf<+RV-~5J?p-8!k zXSc9m#kuN`1`6|W{r!)AdB1Y8R_Q2PEOT7d+j2Mq9a{d2XwaO!aNAE_s^S|nbUkoh zLQ57E)W}v^_LUOvdg|*;`WnO=tE)aC&Qei)@BNxbWxVbQ&@6ft>Dgr8bmwxP zc{Od$nG`4)#XEM1jO|xa@|m^Go~7@3cCT03HD66AK7@^ytxqd!WvlM&QrnOFcvmp1nruVJOhUFus7rK1(JQPD3-_JM}M) z5Fwnmv~zR{Js5crb5T0jnBW8~mT}DTG2a4lhWZf8h&6Ad178Vwr5K>OEax3jKHT7M&ul^VxjK7k! ztK46|!;CPMFB$#{1Rk4;Fu1mbOf^6IkT~WIhp&&>o^~y^Cuk9zofKc=)V(=vTj$P{ z_iGAdZGfFgPT~1SaHdB$w|38Zc3-u>PEJqGMtK^!RbTD;RD(*4x*Bt#@zzSuk7?7|E;8)I5Q&^Rbt88C2RuN6pi2kiT|e z2H4hq>=h-&c73nT_A^Qw$q~Z;045=n9FXrVjg$O(mMrE-9L`TtS695A4suDVgfun* z0n=oW@m}6yy^}1bJVTnXVAH;gFAW#xW6x%nJM>34i`QF?lZU(m>{=KZ+kDL6`wnLw zU2-R|y|)O9y(T38^1!3^#E;k0_U^3Ps>J){W%KbPm~F=H+w{I#_gxCK?$pOx`SFddXDwgiVf-b+v58dy(hV$nVx$xG+{tb83g z_C;iXXxy7~fw?c6syiuED85%?pRS^n?Z83dl;ZQ)vXTVQYm(H&$jgZjb6n7GxC*_k z+r;&TlhmB1sAyQ)ur(Zn=zHxC#CVGv#NX26a-HysTxTr!OvQFE5G{tN4*tDf!GU14 zwAtAvMV@W4874-(U&5U$^Nvk%k@&@JulCopqMsWQ{k#i?qH7hl8g>z&g8w<5*IJIc zyu93-Ilo?{I9B}*G2oEM|dNz_ze!Ue0OvbexKgRpBCY zFhb6c{Qa1I;{Z}61%D%;6#}!l)@pIaDzfh3Fe}j}@Yj$r2{IZd8)1d)`T}tl9{!C5 z$i7wjV*dHjvvrT7)nb}buNHz?U1bhKeT6ttjiT!6%>Iw650u3U^}pP(MTI_V*hlMJ zF0D8Ya!;0CCkGG(%Yj4AWJ{fv9Vn%?Np%{|Nya|m+vIbHQwc;N41a%re{kL;}GaH*CfD#GT zUMUUx8-a!ZkbEKr!-||1T>)SKls>BO_<_UdKJzyT8QQ-VmEHk~FG(a8glR4knT6^~#ew0vZ^5gkP^}5QF zjE#tc!mQm?8fFm@4u=T}T4}JepF~J6pVOZBa%NE(quJu$>=D?qKz=CX*8Kl@)4;Po zL@Z6Bu?!}(aqL+kK768jw3BZOX5{3Pgskb|drLO}f)Lk3@w(_#qc@itM85)d>b6OcE%tiDT0XBKSgr4W00)x1j%o{+) zKc+DMISD%_ir6N$N8d0Y$?-)To$41^Z*HpUvno??WGSYu=vKxRReg0ki;ax0s=sLY zB9+ybDq(sOk*ZcRxW6;bcSf?q$^hMF2n|%a91bPY0FjdrD)e3#?_XB}MWRQbdT>83 zw&`!ZyS!Gt^a%#2(MD8V&p<>MK%X7C=nx~MJ7|Viu!7o|RI@*P%y6rpw zYyQVq6~+DML#*TBfGOe|DGuf3vV+A2O##5TQpYYw^tb)`%aZx!;(+;TDi)kSXIQJ$ z5aRGU?jeeAr>;|!k)U;aSL&$3P!~-AnUyf;H#Jt`#F~!39GcI>?TT$H4u4RY90)bO zVDz1TEj6-fj;;tMuT`J0w&oYtaqQdH$sbFd%eDIB3qcP_JRBNf ziDI^@+I+Y{;`VP`L38M52JTa@P(NnC(IX> zzy;Ib5{v-6bdy_L3ie#z$3QMw4j@#ukKT!I^*nKyC?9I=Ay3Cobh(MRX8dRh?xl1b zB4D~eq|a}QDW9vt5nOwO@{JIUH_1)~Q;P;Lt8HZjBK_gC<-Gw0}ELiY>5A>0uFEk6IDx zk7Wd)h|;^8FO|gN#X#j$(Yh-TxsR|He+_o4xZ7*~TaUki0V%o&;u9o_@4tVbBTY(n z!fg~^jgJ#I??+sZ2Is9Rf^N1<{EMLtcw5fJ$v5W)P`tLVu-N(9TgA{9F;4)B2x`fW zf2l6rrRvVA8>W!{`EZb*9gwG2@0%q5wFQ32{at2Jf~Kv*Z4(OhE~2Vz8-VFZ2zlOS zJ6d)(sq7gyfG8x@3Y?YaW~YucVM84S^eun+)x%4LW%VA3k^S>I{l+;FE;(L8E8-8) zz9WltZ5v>j*M_TdtcJJB@n{b}^cSe!qPkblulb@xm-fY>eV)@i>CVm)`THanGZFy7 z`s{xhJo&Vu-?H60uVC{kxRZPzb5iaH?`d!fBj$5G-n8k z3{@3tRSthVK0Or@DB#Ej)-|ZOK03nnAgZj4-~D33LM`{9E`N$CnDtVtkX9UN@M%zT z_bSl0J9k%=7t(zV#ORiM@1;V}+h5uyrEy*s^M7p|0QW7@{x`})zH1Fbi12O-4hfV? zX*u?(#tJZ%l-1Q$?X8U5;*+cgd99~La|5pqSKS`5yYp#q?gz@wJHYm3vs(NmLNtDG zvYUiS59{=v-*aL_dIBaBvp<3t#HCCSz9@S<1@8|rYqdu_wQ}&wE70j_D87UFkRhPe zxk=K3pP<-ol#=H^R%Q`ew%nsZKr7B{TPvu^RZIWL?4mCeY_R&>j<0{4MGzJ0d{fB$ z_Y=>tqZFeFh;Jplw?X5={Nu`7H<4rXk7WQ%Zy~5wSSGv6O%D*q-zcs-E`4)DqnD(Y zZtVPxGT4T7F_)j~g-JiX>Na-XC~MN)fs8eAW0CL<2sIiPtbY~d{r{@v<-4dc^jd;` zBIxbd#pxJi&9W9qc$5x{BvvGK~7%Ey!b{tDudgB>5=hubXwT4g|t=Vd*7$G<#S6~J%Ziy&$Uh+lsvd+{^(*R1Ji zhwB~c9svJ}2%{3w4k5jjR02l_L5Lo|DRMXI$-x@D4aH4Y{J-u(39E; zW&kEZ)alVK%U&T!l4ZyV6Om26)-1%j^!hKB{!8D9f?3_6fUp#&h$TYRhMqGl?EyKsV@njGBcOH%d|oV{)?^D>%<6=R>;RQ zbEsxkzPYKPR#g8nbNo?$5IBlQRBr+W9Wu+GVf>7|R@EI}s8L_7N1yeNT?Wy5BGH!U zLs>w=(Iay05Akc2Mqb(9iUfKa@UzQ>11wd4%zQQSzDhrX=NPHlYZd$V_kFs0`F&PD zUw!^l*k5xYRH>E=u!89K0{8M?h7m5X4GwyL{x-O67*Z{PSj5aDVJZK)J$hFpNsBWu zFuP|6N-$jCzDvI`%?N|&D=_|jQ`j$wFYk(72Z>+$Z;0aX3SrsQUm<8uxc}cxfx^xI zTdDt_$kZLv?#a5H;o0t=uPle;-(&87fTKw;+fLSQcTB{#1?I+M-=INcDoRR{%`oO|7`|83-31yK#Lo`bMc@UGImKYr+UlN8~5 z%|f8Yo42xiUIX&3QTBZJFo5wb4=>w{9Kmfs+O_+%BbS`zR-v(Gdi);p^TY_g19YzI zrGKWzZ+fUHvdfA9#4 z*#P8fu{j~Ki}yxdAwEh}Xed6>wvNeis3>7>&a~>&;C^qVs+T;N4LkUCMt;kXmAZbE z9f5*lyn99QXopTWP-|i~TM@oI6UN-b{zH2d2n)l*lg0R$K z{uN@(p5swv6u<4LTuf~2T;tb(o#r>oF)445$;ZLEuKZX314^jEdW@?*-iJQjYddc3 z%sld%949-ukz3mM!_U)gXsfgFr5O5k|(8~Q+b3i zpe~P914?1Hx0}bi^PQX*w32HlCo`ekZ{$htfqE*5QR+?Z$mDA!P8(~(_o|&Xp5dnT z!Rl=$He+q;&n7o3OP?wz##!EIFBowQgLgPu_)Zf_oiZ1Wx(FH$iPs64CxME0|Dm3k ziOl?bHnrtXU$$ep=g&WGzV+PP?YHe8tq8@O3#T}! z)pz^qzO&1nJm-gXa^#P-U*~GB5>3n!(hgc?@?#Mb)>(Nd{zCn^Tt+sBy0jZ7AJ*&a zz&HlZ%ox?wh8ULs%UxQZvI>2z@{kws3BsL+>F1@cQ{Gc2Pwo*!1CoGBOz1i2-ChJQ zDZPBcR?h{FLD;8p^{6W4eKMNgfl9I1eaZJ&fQWOX{1FJ?C-j{+m+(wdLC{H)7^uAa{<5LUDDJX>KJN>%raJ-z;!a|qw zXSfLibxC9<^o(2Tb6qN6Mg)Y0RUnjQ<+<`!e;8d71owc5>J?A4EU15jf@oOWo6Ct$ zVp*_OP3%|>SM_}%*ai{$DKbRoKrk`Xa8`i5v70(^G?#lPV^L4sqZ}!DhS?hPl#Zg< z!g&0H*1gr^`g$*?Mz2=I_ofraD&a%b&dc5sa@yfsZnp7&diJ?ujpLBv&QXF9 zWpUsY=%(6-l3Sg8%G~DY+sj9torzQ50(Znzud>nqVGXwzYXT8L1KEbADv5Q)>F! zz8Y|b{A5YcC(c)Qr2WHkL4N4hkgAeVcbg=y&I>T%01mt0=&zvH*%r&Df;#EGp(E`z@Ym8?1 z!GqCrp#pYLy@Q7+-iQ^jA+dllY7TY$gN*@c)KPJfPPE4+Np5|e&gWDWG^or>w~{Q2 zqT9J@ZtA^2=eM&TEYJZ5F48g`7Q62*G%Mi#8VCQwWaJgc(}s%T`|AzMEyM*yfnMEf ziGEb7352I$pJjgykP(9HL>G~roL2!H5S6bv*;kO;DtynjHf@PWeVhQEQ&$mQlxl_I zYGYyPKbTPiio-{{i?Nswl;^V6*E_Scx^29Vl7xJs#n0zpv(BlX9-8m;ji41OLY7gP zU24xJupzvf;1L8;DmWCe)=vpZr^#2&wC4q*F_}%AJ5&B$J1n`(&)2hG_fIN+sJ*i@ zA_fSPYR?YFN_`K31C<|+!WQ5Mh0tEiBt zZtDmcRH^O8#U&5W-&$|_nP%8Uxn6r;OoDspTIUl4s>~h8W>VG+!!1-ur31<}${1{{ z0w?Ioy>cm>+w$pKPp-|oxb@u=P^VrYW2gTSLK^N?H3=4>i@qKv9mpN&b(gjFI4D{G z%oQf1L_sh@Iy?eI#c2i+<5}U-Kk_xog+GZKTNA}5;-o`#i2k;L;N6_yrJo+%d~@fy zEt{GlSf;n!p*h|-vdI@qWbog$I-kHjL7-RfZB&Q~nDR?s*#1;mMh$H)7tieTyr z0d#h_6|+88(H_Mh3)qWQA}U+=P$Ix=3Ia~F?6C%L`&^;q-0>BY9_n<@P*C>d2kZe3!hgc(6a~X0VifkUK-$V;B`e=rZj2+3nsCP zuEQOnJ|zVO6U@er7wp1hh^PhvQEeT$zl-q2$!0@ytZG|Z+r9U)KKTLG?@&+u>xxyx zmSZKW=YchN9)7*z)PoZJA+ABt{fZ9p=&ZC?1T?%w8V38ih0e@}OBYV_e`!qfPk-tF&JV`?PZg>n|`ss!5w+-+5hX{+!rnCJL(lH$)08y81z=q9Z!vHz%haR?1i z%Za&feZ`W^<}q%B@*cjEX+6tKg+I$7-$6C03_vi*h5~z6(lf3M=7YSVz>MnZhoLjC z7mq}7r@i2lEbbT7jc3m$*m~a&$=1VbfR}Kc{G}{;w&u9(F?1$4^A#=q%}#0_pIZNMZJ=^a6x~UUC+TKi^ zC-3?ES$toC zfsZT=X9vjzhIP7o7R;+IqZT=Baax9n%Rv!(_r3!zIr>&3pEHfYVx!Fjsr6I9+?O97 zq%W*ux(sWnnDXWXcJz}`d{O1hm04W@Y=@Qpyyg=v1LwG<)nAik-@Rv>!_#)(u>#1t zASR=-=rXfK?}yh@vb1Jtg(oW+cXt;$(Fn*e+O?`2<^kCcH)$Q)_?J5!>SgWWd;bi? z=`AsUcLyw_8DA>Oy^5`Qts5*(mitts;($I*VtRnVS~&nt$TI%w-@FP;Tojn1=y*n= zCuE(z+`%j=O!=|Spw7ejmp8g~K#^|wPg^*c@(n%L0)ap-X;HZmqjn|;3u4rjMSj?l z?;n97PoVme+pAa)Wv%lqeS#cI(adF%2-nd7^%?hR*SjFlP~2PHyxo37yS^Jx-&HMV zC-c&vQ`kVp%4_7WM?3GyAd(8QE5NJqtD-1fa-GRK95O2rfKWBUfRwT3kWXT0q(}S z*iyo?KUXzvwG|N|)ofI^b3dTz?yX)1uz#z~s(B&KU0Oxl;-_yDXA#DE5yZQESww+P zaG)|QC_9HPfviyUCwH>oiIej|9cIPE4Qe58HtPDxXP#aM9Ycs27%FMk)S81B1l+hl z4TlYSxZ9iONH``UupPsq61_flQJR`#_l`gDq>G>95j!ACE>ZAJ1>5G=LCVyd zYVrJcLMc4=9)Tf!rcq&g8^CUz1_BhdFIGA_^)K9ec9)G|aW^!0C#tL^eZ_z7os@+Do!0D)6=lApJ_8{bFPyx~-dfJQy1k8wrR$U&n8X zZJKtpu65jJR=gTmQ!J?ppY+@etljLAJhA%TD$+x|;l79ddn0*7Jg}DHPmBh#WEHyv zaPhEW5HV3ndyOtQjdhGHlu4ACw#8)3s}~zefaBW3rX;%#4$jX`=D}VNCdG3}xlFn* z-ktaEVVQJF{QNK(oEx#=yfI$IaDvjGCmn!^g7sA3ncCRFJ3%j^5^$IG6PiW(7U=kx zW0?b5M9N4}!O>u?MWAm$qZP&XwHomp(_2_3XcnaIerloJeX0|%<#Djak(2ISZTmt# zU=|af%G9&<>FMEi<}BkvHi;bYRNMvMhF&u|B~I`>X{I=_+?p(T{M|}%^?bX94u}f5 zkw?dLY1j9@-S|MUIR^rr4ptOj9xma6&Kq$74 ziH(@8IdW##6Hc*(QxCxF%3U`lEd~yhN4{9sOl@Q-#Jve2EsBCKn)7FXT%!LBa42zf z>bhVjCU6u-#^H8#FIjEzqD^}`X3KwqRHT}Z$mWrztmqn$rc;xP->>LS{kNT(1=f3} z$}JO?P6i(Y>^Nx(u9AT8$P2+!qov!w0wtgNerRvedkb5~k8MWJ`4c7tjQCDa z_89oh$0n-ziv=P@9WxyVDa!|6VeZ$8PCuV07&-%nvJDtYn_6pp^nNV%PQem_jul?( zXaY`WlQ3Iq#UKx!)Ts)H64|s9r7NLtRo+ zQ#<9lA8W zeD@{E`_wvMx<)`B?j8o&5(%Sjan7a>BB^8?=xJ^VBJ&()J@~jX8 zG&iT|U~I#}fWWP-mvFAQ!G&U3tH3Rg-$q*npe>mq_u7LM2(CeIH8XrW+|55O0Tu=q zFkY6(`!pylbt}opkgC6!DOIeT9RD`IkU3=hcf#>xu_KimEsfHuHv2PHJ$%DSUa?)9 z)$bAvcMcMQAT7+U>Dyk63e<8J=9}Ufg*Un?F4WLJC?wp_2yt3Q^}iC_`{>T+Q$6Bq z{Lih@o6lJ|$&?$2}oGf&f!+75`_68=h%?391HqSX)s49v&{%{?gi0h)Hf>bfyX&>l=U z{3+?pBtSDlz83W2`4JAZPyYMa6&rNn@T|}-V>BuE9n%`N6r%5;o^=FiEPyZeD$}zj z8Dd7k)u(4*V6&i?A+ak|6&K=hsV?EQx~>|szV`(p4xP#`t`}v+Cn4(rxx1E6LGNdC zl^;DfmMPSkN#eqzAe?``<|zG2s09*Pp(d*9mRgo|kpkqs6G^X%w+tbIHIM_SKbbCb z0cOlLOz+By2oA*H`<>w%05A;C;-Jv?rs`zM2uVL?B!OgPIkS@DB8Cg=z*OXodw8z} z_$ZbvUtsTojE4s4y??54i??LzjGB-nJSRnpB3qH}unZDy$DlzPQY9S|!E={KWd!pN0f~Z5Ud66ajg?1*RX8V94RWhyzI5QS z*Uevj)gGlrp?u`QgW;>)zRJlIi8(oS? zwsPu6$pBgUCeJ}pvg-`vVxWR?JkHU1`<&L3SWX?U%TD{w@so*PDn4}nJk-K=8ME5V zJL_A-klCzf^d0SOUBrsXVW3=r)TL9snic6&(S6+r^s1fmrbVt~fj}+on2>@Ok4E&- zz+KE6*qeI+bkf>ymt9iFFZRlshCKsXyA%`rJz*Zk*ZS{2H(Z597%AChp6?g?SZg61 z(UXJxj@7f3`!t^Y>qpyi1B-}_ue}CkKS#e9lxwstw5p#%S~Qqs#kb^?2xae=MFoo2s6%U!%3W8^x^ zr#JlBJW?Sv0F{AE?OdDf*DNXIfiu%{USv>XQt<1&$MSkPPKn3<^RJ&lyT8_eJC zB5u$wJed9&c@v#oxyak2A-k`kKK@4#9|4LkDva&bo%~z<&W`(`=Hb-bB>D9T&~56e z(3kT~t8%{Ra`YPL?2r|6N(LXr>9wL zv-XL3jEqz@tUE7~>3&3O9emPK4D(ooa>aUSyYbg%r_j`%Q?wur)@J>QOJ} zXHV&7c2ehWMVy`59FWqFB?~V#h@ul(oAQAj8~B8#h5E?K2VwZ0zt6=zj#?m#a5cmT^#{S)aNaW~RYP&qM*3wh zCDjyf4_dZfhN4}^?Yq>&wLL2GRo1ADEEE=At{dZdMD(}R20m&?xG%BI+I!H6m$W?= zW#8MJGKxBH$zS3g0g^gQ@fEcv-Bw?5|M9yhLMC)?~iu$cQI9UZ~L!Yg&wP+lPYkL?3nNhE-@-OLa`?$;pVoU5tz zlMW6CpSgBO2A0!3t1fib=jY~HTceob_3EU(e zg#F!uRWOf9v(6-UmjHA1;B&L?w89mJtdgN>Y(PVUtp1Fa+;HRx@^`-L8Ippp2#%cx6(JGPtW;itz3dNZ0&?vr!qF#^L1 zEQKrTHRw39r#YPZDToYR?hdEU1{Ujm4Sn_@Kahm_%Jm&khRHvdphcl?3ewWI58S+H z*-z*dX3%&igE5dmSuvEFlqpp40NO3{jv~J(aeu|csC>AZOlqbl%2uK6+#;*)X8vW- zx#75c!P(C3rdCnPV$(1vVvj=7^6^lQ635HH;`Fy9$?WlvnhHLtlOsBORzv9LTjIp@ z^C{gyg!%u+D>w-@9G;{^40#mV$1*@`y;-3!^d*fwfuuwaH!#Gpau#4@uNX^x2YObN z7=2u!5O+g?V(HNp(i_Z(tPDhSd65sI-={GSSJR^2`=Ag+M6{`5moA;?mIW!BPAs!R zN{ett?_J;YSP%ig1g`>jntYGXbCZPx!`IE*V>v6qYMbsLIm(P2OJRlsm+a=l^^C?d zLL1N4w^`)ki;_okv8866RQp4~!GAP1>L^|U+e7E|XiJIaLl~8S0>Y5yeawE_z3wp~ zKomp)NU}9OT`u+1?ZZdqVdpGLU`6w&zFr(Cq8OK}Jqu?`o#dSyoxSdsJ(v zO~nIWx0j}5IJ;C^jV8awn;PqmamMLwP7Y@yHTslM8-KmOe5K84GB)>!bl;|b;@Jd_M0QG+I9(Ti2aA0R~2FY$(RzQ%?+ z&(Dr|rCc30jj9~78vTA0(i>i{Z^A55r<%^N9KSP|sw%v;xbGS5))KT2zFm$!7RRnG zz3qL1kBJK0IdXol))Q`1F2v_^{zC82Je;`6r#1JQ3eL*8`5-P6hy`{$e&pp0<1;}` zyUTzSkp%%P{#$E`ky>L9v}TCOeD6Mr@ebzn;r8sx{iD4^J_qklCiTkFZJ{r3A;bd0 zF{J|j_3ZvlRg{c#2T8DBc9UX`3t<=dA?#n1&($P?q1(CI%04`i>Sxn_d(DPim^RWU z+u!-3lX3kfS;?LaKZM~_+h-W1FcDC&PDuCfuy(=YnW!pV!X6_?-6UuE$ zR9I7}tQ$xrqd;M|GAQyb!_S+BwQfqOm+L5v?z?2r?J=fCIGb^G7T{L!un%i8yXrl#Gq* z!TjGq__AA9o+{@06V#j^NnnF=@UcbKkJq9HxnsL^pRQ?Q*A(%~W<$3F1A>cyAKHdW zJpa;cJ9>oUFY7T1p4}6EliONQd9X6tzM9xUFWl!$xH79zKTe25O_5I^>yE zgU?sv4@6UdZ!lZ9pL}kM#^jqcthoHgZIcWMbP1C>ge#Vm~U_-%G z$@=Wdw3Qn-as1U{gm!|keA+|muduv+&y4u3dp*Zwqhp z%cB^JmuV*;#0I=}f)IW>1t1Gp)w7jUNl8dke*lrkb*`OjZg;3KNo!L10ug;{0ZHsA z?zeiclaEf-hIduQ^3x+K*5Bc=&3r@42$G=DzH!JKG{&h=ay=Aq;kSOw5g^&YlP^d0ODNbfj)KU zGAN$ZzQXwuxL^i#=m4Gi87!bA6@#wHDFhBZ>(@wO%ye?8wXF) zPxGl%wJ07f=2{aVd|vCsXz=8{n_%X(yE|FuSu;Afs_dT~ zize81`%8`Mre?)2MAAE!Z|uz=5W_+BpyjQ91pfcl4jhDboOD?KtsSs}iINDof^(3p z-EeTY2Tj<)UU|dNJ8_Aih0bKf8kco(HeQ0V-(J{*Rc2pb_|DQPd@IIQQyU11B%|w6DZJB-T zz~Mr+hNw;goFY{E_&er+N>5p>$Bn5B8Obubd&0Rj_%5511{)0*-eMSbZ$2#wgg)|) zMTEU?fw`Gy2bSIBcrEQOB}u_~2vJypVgZk=p!Mj78$)^O_fzp46d%8DfVEh7r-YTN z4K#5=d&EByGmA1f0s_WAB|t=>QnkSqAqjHZU?z?Cc|Us%7n$5K4%b9mqsdsI9^ish z;?_P@O5$&GS^jSBEmKDiw-^`!35){@o`VV~k&~pDd=62+4x)yVKC*!V9d(brrD)4~ zSkK{zc{;}@_7L?OYzFi=@H@gX)i~nLgGAwmE+bDB9$CaWg>j_um>3|G2h46!qdv~v zrb23xq@U6Rc4z`#O2>4zpTB_ewO8dc;S4{ILDIqwIgvvqF9549@&056%n!9HNYS;w z<&|{G?kuIF*ZNfU18NHZahRQ7@PxP*Ura35>sLAS)_Zy88P-)l*Xl0uwLLcIX*NHuWDnK5V!Rg}zIiv(wB-v@#kjG7ijlt=xu1#7>ptN)-H3wdGGUw$ zut!QB=X#Ls-vGUncr8QsyBdDawm_EhhWF`DH^cX#M?v`1toT&?TLqEjKS2MHmCwBE z(Y}8*W@ZuBLd|ZMSe8+PcfD-E6iJiM@aiXp{!jNO(l$G@a%B*45*LOq2Nf(|PxSv% zu-n6Bw~aPr(1XeM7I4ize7+l^pAUm_xkF}1p-h?&?*mVgy&Y)T@=CM;o_lk>K2z!Y zYyu{BDDCPaGSte2B+E7OV@;TGP=6bna>_#=44zS66f`TI4;m`2#EnzGB^gSZP_KrH zl%XZS@@ZD95yb;hlL}AW2JgC#L_RjNUf~~)Cu1dzN}@l3Q#_6ULHLu6HhCzx^P7s) z8UHBYqiwYjO|oshj!o4(S$EWLX8a*3PDeGOUl{`#X=#=Av&}nz0DO-3 zeUI4v7odhjDo&ocgqMk^K@n5JO^v8s3@n=Oq8OLn|C!?j3LxUpe-!>YHc#W!rI5PO@Kdf7e-^}f&5i0*(7(>UHap8$G|`PE53 zE}7$#=CIdSOZ?DY+7MO#&Z>V(XlvjKJkKI=(QiJhn@VZoI`nCKoVRq#h{Dhm-k`$D z%&SRfHtkf1>`iu|87WKEyq4u_uM&%fKSqXM;|z>;FIGl{_5bQa*Bfe-Kv51ce%1Y8 zP`M~+(%}w(rTpitso%i++^v<#NFHL&h(I) zVS_rF;f$(Xx4s}{wT-oL-@6p&^BFt#hws%b)r8{tk8M%AlkC_Ccl2L-CA&_#-xv7J z2EAlL)LcKVU^-vO8klk+a;bi2yWo31n)hzy@Mzb0lM7 zw7D;mYF^yb&y6~^2Xkh=v#$%Be0Ye~igZH%@&UccAW+&4@6Nm%>hOAVT-VOwN8epD z1X5CwzQus~+mby5sZC<#N>5X-x5S4$@zAoY6lwng;fBanfhJFR=uW7&m z(9hvh;V(#^akBJ2@=;tahVL^+VC{LGR~~hH`aeAbo!FvrncA5xOI+$3L@T%SD<5VF zx{yGbgkIvOz93N3q<`ZCD$lV~XIqyW{}QqB?^-O88}E+Tc)ZmD00tB3e;^8~%jY#9 z;&3R(a{Ua-;`!mX>N3LJ1oLGusJ8C{yWe{zA=TVWT;wjY+MO)a?efJ@l->OIfu720 z`uD5EUbBsfTFX7}!1T%}|IAg1vFpb|i)`nU%f>q5nevN(Ucqp0ynD{1Y2fC#DBr`-Ch;lFw7K0KByrY_=jTsE3paYoZsY+btiHO|hY0Hp9VXA>rgr0GB2= zB}{(^Siy=NME3k}hNsh-BWUuQ-pEB;Wv>soe;cLc(IE(CwG6vT);uh?hiF4wbBwn} z^dNjmP;9X63=wZ(9>j95!b?cllyeu4=`pCE*u5$dOq!Mp3g@u=j<+mF=ehQYqUFof z*@o+lf#Nt;3a`g#%M-3s@Fjo_#-bc^q& zgKgD~-4+ssJ`sDB+TVZE1oZg{S2k2w^xdoKWBWW^LNT~s&EEZBE*K8U(S-4j9?~Xa z@O*D0T6L@N-|PT>+!RbxMrho4l$$ZwVOI}VSPZqov%`By5~fj0F!Y?{wloCML-Kc| zAN}}#d#Sb+SdeYI%ZNsf6r~8RemCu`S(ct=P(rh|+L890fXhR>xRO*HS7Nt=@1Vu- zo45fxdE^Nll~CW>j7RWB3AZWPF40gZcYW?b`V2=k5%CbikK#lWT%U%g?POKJajj+B z*6nLj3fmbgX(0{9wq09$HKJS{ri7A$ERLx|IsXdHZ=aSmDjH%RM+K2$u=#|LbEj=_ zIOYWRV4)ii8~f|go?BQm2Q~yO72SDZjPi??jDu){L9&>{^s&cK;OjPGNY`Fx7B`w! zkaSDsRC-%+-fEJ1^jqb-#-r}`ZkCHeXXYy(~FPV*`(m z%`(V<$QNtbqLis0OK*6Cem3v39{QS(Rlh)kNtXpGyP~EIT9U(`EW8}?7}+Z2jA;^a zST1+8FHmBzPkU9QPqJ#39n^)0%Fu0r-JbhE&^YwOKSfxwgEvkd|9=Sj@La&6Dq zbkIY_cc?PJT79x5D?P5-5QN=UHbVDKj zro|K)f!lNs?jVQewnAre@JafBq!KGpvPOxr$L~OL6M{F>)2-&`StHK3d2HX?1|%Apo`WxiUE{RP8Y7#-M&}Lkw!mcv)!ta5{T>9y6-IGgJ$D zTOd5lg-pJDg%Fw)^tUGEgqP621PBX>F@_1Ji|_l@q3FG3CTMNesi=M=f)&%1L8z{{ zl_^hUkZ#qOHH_D)3JUW81Eef} z2y#<&F)2au9Mns4DxLQzFQz|V ztGisj&;7~a*6+0aT~ipU3$e@lAk;=*U!7Y<#I5~s#v_Lkw?42%7I%GD&&sF>FlS}x zX@(@SJ*$SMza9~+rUSbpsu_?xDN889j7Ub)pG@?FzaQ?RSO#63O}_&tuFGU9}j?RK>qo~O{Il^tpQN%8%&32Ay92s zbwIQ3^f#f;!*nJIt`yXLr*Dsgh&NsU982r`;j1s0cog)Av`ioxMzh-(m!M8hVDE== zeWKIf>&BY&K%P3=mNhd~&4_CMI!1jovlbp$lJA+&?KZUeA#n^}@0W)nf7K%9BtRK+ zH%-JdjK%lvAOM=reCw_Agulsd1HWGM+vF)S3Z(>E^8rsnj1?hYDyYlVSIsc3t1s|D z3o!~+IGWe{)a~eG>Y^yAa_bweMs)!q0qHeOGoVJUgE%##%bR!TyxVnhL78U5Kq7SR z0ExIs)p4^vPDvX+ef!&|CoOLn&@qOcRbDJ5MV(l_v}f zfQE`I41La=zkcN`_CNSVw?T8!bT&KnJ-*~q%|5xa=i^PzkE@7$|C|E~dwxgei!6$< zoLz0$U(sHS9O%I?e|y^JhhwY?a(@2us9nwyy<(8+8kK+WF3MqQ&ZbdLC1rm|pXXI- zkJKi=LxfIvo7MUwzGTNA#%lFay6j-6;ame8%U2KuJA{MOP7xH7WEe!fPb)EU|TOeV5sn{84yY@U6!wG7Uf*qpE(14_tr!0COqRr$@6N63o$Qz{K<)4D20PSyVsndPko5QW-T>8TEezVNi$6@rxvZ6DO zaEa9kUIK(N2rH6^r-NWg1bE+pthd6^c^@-bfvG2lZVCAC6Vl?7DMYOmfPsHznSkOX zujj$qTl*HXegoGDLB?m^mW9%^k`-Q>%OqE_q(R3FxnbEu}Mb%p8TWM`w zaz8wq55_Njb0YR?xnxm15f9~=Tls7EK;d3{$wm*lZ%Q5NTYlKQvADu|QxfAU9~V;F zZm(>9&r{Fo-z4?U+43YEtZNS8`#B|5M(OPNHb+z5N$LH$S46eM8Jsa>svvhvaefmG zbYVVp*CQg!##9&xnBLo6^a-UY5ht$Pxr%sT*f|wq_5Sgi!|?Mtou%V-S<{Z=rC9c9 zkH3{nK2aJejC@uDkbz?DnLg^YMQsGgO*S;9F@!m})T*b7sdVHFqEK_7qDD~e9KbUt zfFu?4B=4J0Jp*u4{%1X~8FvEV7l$Qa{>JsAL|x;0kO}qe z_CH9g&>tYcvJUUC0W%~!1Hh%YmOmiuZ5Xiymao95!7!f7fNJ;Z%cq69eec%JuTp~w@NuM!B5C!7|b-rkuEmszM6 z9r+#w9!;~Ep{fXnp+60BGEEhAR#OhO!SI)=d|RMjr52UcYEd)@j1t$?f+^v5Dt#P3 z$ftccjWgGC0M)Ph#Ql;6QGfHQapCs}H z=?e-y%R`KrUx+jm1kQec z7(#Z7%CXRp?csaftWd6Mxe}du*03wR4U^_Xn7NUX4BohEGvO$Vafk+=ph2D*OBKLC zqgnS#8^4Y<)AY+&i&5mVUq>^k1WoQd{#HW_nQQ=P%XMnC!9cA;IO54j!`}cq7Ynjo zQA4zMt6(C?5y!CeC(+^F`j}8@)fIaR3R-cu+eMz+PYCR%7t?);(9;dGoR)h-1UA|W zmC_{*1Z^j;3rjX^b^~z3Eub2^*2Q`iHVV^A8YTAO_Pd-!HklGq_hHy~dG4Pzqj772 zqmh3P72cUJ>~Z%22pM#RF`Bswj#&My-bKheAPc*#Pq(-LofdiWp5o+ zW!rWSZ#sod2?$6it%NAuAR^r@C?ef0NQ0z^0s_)VqjYzJbV^Hicf)sH=>7ig_j%rb zz8S{ZgJS{Hp;c#{4kli=A|zu& zVADKUH_R%hAA@6Mo$Mn}rTk7Z5=Fw2RtDR;vq>UOlPaiDw4X3Al2KX0vV0a*UgQ?} zBAr|u$zUqLtwp)e-^lDzlB3NY85P!7S6!X0qZDuxWdMHluV_6v#}l~82T~5YDAzb` z*JwL9feX(N3I+X+KilAi<>^%LVFiI5dVGG2S!m9Lv)BdK%X&{88m$97i6r!6!E#$( zBJP)8S)zX(zXEk-MJog#bfooVArmockLd4{PP3LhUV>-pht4@Euv)h^le51?#jBPW z`<*Q2ZveR8>;EL?u z0t6S+5RC}L`lLFY?>E$nQy*boEZD4z8!&erLt+OM&0Zh=-B6&bC^7)W>Cqdp_t=WP zuVNG$Er%3f(HP%4N&aF5|MMcLPLZLqp&ew|D~-2DfN2(l=J`*K#RBy-ol&%`*KK4C z__T1+8=_Rl3s5^F=W45YDRePXur)J4@_`q)qLI2aE@QctE8C!!iv*q3m_wN0Z5o`Z zx45F&NN6|=vn0(PhBgGS#uyCIOe&NDnV3f{w{43-hn+_K6k|dt_lchqT(EJmS4u2c zHU*fOw1<##n9qiXlQ4fGfuoI&3~oBE4m?fM002^c<+FTICbd+B5-Ff#Ni`WvXFs75 zZY&qAUR^+6rVS9q>;=N7iOmK^IL>D^UbYY-aRES9DOh(7G?{^6h~Q$jVr5KKx02a) zJUop4iB|CH;>STF{JltfV1*S?#%N>cAeaw&%P1e#)RU~>#LId214O6go%)Q5zmS^N zn~Yt{-_;exK!2r9o_P+Iz-QaEIo-1KN}ou7i+5&YJI+CIk6Lbhyd(#|Ned-K@bY|y z4*S=9VQx!xs};I?l>*hc*qMInUP;gh`Q=_G>+3adjHS#&0k2MAV>77l>j=-Ps9Gw@Yiqm@aJQrWqb$G_=e!jLW_3h-|tIvL_B6X0B7oe|SEpvr& zFF>7HrfJLqBH${3>|RIO(EDFU#RCq_u~)%KnmZN!zYYquI2jn0PH~erJV^ff``aqZ z5*_(K3#+cBB|Kr3Mp#*4Wx*w_ZJrJm;*U?xMztX#;u_F^|MmVr9ZR$K3GSxW+8J{1efG%0 zF?G)ymq35tM`L~*N(^Tcrr|Iw1iqC`1K83Y(Bo$^DSs0FZIn; zGgmA{`}BzX!z3nv=PqdSZ~AcqAuoF(*w-x&P-BDxQGmE0m9-PdA^E1nXo5hMKp~H| z*^Y!h_VOmjiXkq)`FDbaK8L-5ZmujgG-1_;-U-6X<3E4q)Ei{dpQMH_Mqy=a=*g2o z2~4BUcVJF*soBNik91Qw%p<^@?s;0ixXEyKWU=Mc_|`aKUBf51r2@!I$`1J8i_O86 zVP7P#t&6n5SSM&7Jkc*;(@5o`rvjaqJ%j_a_+tEsECI0+AtbXM4p57}8r6W=<7_P< z1}-^G_ru9f1zeiD0rryv%c4U*LygwnVj|g7Ab~E;y)W)qnE*!WRzWP@O(*qlx|ly? zve0on)ej6&4%3iTB%M6TR>{J*%Sy1lW1={VpTTFk7Ac>=&v<>YEVNl?Ybx)wDXlU| z_|aHdp2)n1x$6_qxJ}fNx@Wb^B4jh>qrl3MMVsHx(aJS1k9H-nz4Fdp=S=)&iEHWn zW!*5GPBsDj&gfQNUYk|Wd<%HfkVc%s&?x6V?#NHzi zFb;|KDFj?p?z*f{AL_^>yu_!!6MNG}{waI^{wm1~f^7P*wJ$C}5Oy}4Y5x}0$h069 zD=6&_5BkaKnmp>yW?{0!=cf{&5qD#7*S|9aG#Rl{4Q9h!@q1ymB(bufEK>5Y_s~;+plKshnIp}69?HJ?PpGU>ZxyETZw7exa9&$=fQ~Q;Z3dM0hfG+K$Wn0 z*LeoP73N)eJv-A5^=jNZ-g{8H3Z$I;X!!ob(5PJ1AF=*|efe$Fe_kzNL>fYv;m-%4 zYLQ0$T=s`k8TJd}s`l&%7whvJi6AdTWdB+llZRynXL|>{&re2Hj2x~@w0^!Vgolun zc%DeMnsk}SV<$mHA|eu}+hgmFD9rICiG3y4Ue5BROO-p0ryM`v*33J=hWx@W&yUqZ zKe~9myyY#*J?FI!ggBoC5%Fp_Qbagc)o&}p%&V6@nGbuM*JCP;i z7ESfxIzi%kmgA*wgZt(x&S&?~Xk8r7%609&?K&1Ej+SsZc588*X^Jgatu$5!x`kPEZ z<$)*31)eP4dt6Eu>j4R`U|aaH(E2H&gF1lOa$EL?K=qc~yd#IQo&?lRT428TP0(_( zyr3EYBfy$2xi}FS)RNJN+?)Pi5C8`7@7^&?IN>I@_`JrP;U{G|mV=u9e@IeZ??eE4 zF@#%`pg-_aRgT#2aBE7NC-{^|AT1}6PeUbzY48$PPTw+C!{tKp(5l1)(-CYKV*+ld z1@wjBiR<$`UWp9Vboy;)8*PWl5CDUZbOY)`+AT4WahZV6aY0+@i%ad9!FQ-}#K(2H z2}IG6ZAd0Js60V;`86*|KG8`|UyMWIg@J$XMJ@(-{L{EE3>G;#T`GSAC`A&4Ox25;5LmJx3_oID%%|gS2?}gfSu=F^9Scz&_e{YPVDt7qYpD+ z)EBXzs5%n|m5a|oHK~tE+RFkoP=zyzYCsTWG-M}37jc8w7&fjvlK5X?3Uum{f?g2u z>JcDb38^Ir{CCR9qA*m3Ic%1UFeOK-b{#~C=nPx`V4-1GHvQ^E?w2X$lqPl#`tf7g z*Kb)WntazFJKHP^6np;)DPLMiQ|7;h`(Mz6mSNlw2Nn_aXfYg zmuH7w?)Ldv!7A34a#87n^u9ilAFI!F1W8DdBkJw@XeVR@i-|Tcbvm&8u6U zqxG%ZxZ^>=0(YJ1gJA3gt5-m~0m=l*wxb`uXvZp!;izyjLj2KC4Pn;(R+0#ZP9<*WC7 za{yZo2j?)0DsDjW>s%ZgqOcIP8vh&@m)5JP>poq=OKqDN?+$>bKL>+dH#D9E5~_h1 z0BV_!<~LXpi;8us-rBNu`8!q};zCtHXM%}OfgzM!7^)iU6Vo9DM(J6m3}W;GDjYlf z@Kw<=VG$SZ!_{1SI2O%i&LXx^>4%D2yNOS(cPkQ49wgY5d6cUq4wC4VpKF?w z)Noh0O?PeE!hg9V@}ge=zBcio3SeELxOqk1W%YGAxvVdbe(Dr)us&!{_!z~Lm#ePy zJ9l;KleMFRUEF)Hp}_%(%X4xE*UHi1?Q`P~evGi8x^VFD4=6y4Z)ZhXhoX`2)%`HQ zOZbiiDdSwJ{?c;-TwjKb1Jr3+6^+w70ssT;Ng_UvXb$rng#Pr#kM3#s|F6~r`ug_sZCESjljdkOxarL|3)OAQ(u9XBFn9!eDfx_il+!>#5WV1f0D6$OH3Aj)L{EIx^$rO;htb7S>~O*rSsK6)Z&1dv z@=N!R2iIJyAt{!<%~Cg1gZ?e%Z~Ru=57C`A_~_6 z-t9}%_nPuzf#{QQnf4-*{NAO`;v9jPJN5`Mv20zzwken2EUdlRo)c%GI7l}i?lxNk zmlYr~49Yv{tuzXl0ZAsCeBnY$0fB1k7>r^SSUg2AmvF>QKq=OtO40Zjy^3n7Q6hHH zz*tQO;EKW|21Hy=Ex-X6^GXB74)GXwmVDfQ6t_SO-6*jAflYiO6*D;dbBO)PE!d*D zz_Fsr@>i~I&A8mUVIZMRZ;959Y(R3U?C|2mwdMmxI~=<>XnC8iPvtJ7d? zD`hc%>aA-$NuYNtT$v}uLNncY7g~ap5Wjn&3uO5Q4lxIgO*g>9LGmlKf4>;$a~R%D zWQv723{A5C)lDv4vc+a;vjX~_m+}{7FDiqL(SlNvmG@+pVIUctquzSQMB73pzXFTj~vOPex;mJ3gzA0*+?CID!4B%*0&gDh+QefdZ%S?Y?2v zIT*lY6IP>O67FC#X2Ps{;&=+(FI}o022{?_p(&Dz8^Iaf0hjuST)4#V6d+HHSS$r* z25FFT96OFF+Qe}-rHb8@@EJeo>dgcmFG5J!oRSUDb?u zjO<+cD-2%Lem%BKPj|9|UMT$*5Jz-NxXaySm?&X)IMB zgvQ2N+kwS79h-ejmaAI36^v4LcAHq3SSf`-r`CKsu!1L3galL0y5Ei&-sXjY?Ds`u zSbpY?eO%nx(9>}DX+E7itWQ*5@36h}{N|JLJLm1cRg1u=ZRXBh9R&7|eM^8CZi^v3)oiPKyiThU z45UTP{c2rjI(<(++yLqcQTYQF{Px76L;W{tgiwqZ9d=n8dlC0fBB0`igja+xRHLr1 z|8w*k&?h+t&tE#`t7!xyH{#8BrCU!r6JdDXUylAnfRw@)%O(#o;f_Deo(xk8`hoKQyJ8q7*2xN-rvrSdxR_{r96(y?o zw*1TxDWKtW!_efCMCJ=i%>BnP(z()5z%O zePGQc+E95z11?KA{EoLD3-XiY675QzyzM|iL2zV^h!40x{T6Ey0Of*00gjSKzKIaG z`=Wc`#S7VyKG1hy`XbhsUmv$%{XLOXKQMeDW<1*u|HuYNyZ~it2}tUD&;OyBH@J9a z?>}>WMnr_jEtw$5zuY-s`M1d8PybL&x&*qcoP)1wUID0ECL+EXl{3r%J`-RrwgA-i zB@}fR&2q1vs!EDrB~wdj91H1?m0m+h2Z%r{(&0@G8>9VPQ<;MSXn`V5FR)zd;7YF^ zD6mxThcWmbB_x#|t?NC4x&c2jH;zDfPUW;7*O`V!gG z-EBpNn$uhO=Q+4LdX`V#KBI*y)N4hZn3a|ZHuTiSWnA;1=-sI;WCd0^ zoD>>meYa#l3C-r)!5zN%4>7;Bp6CS6Yqt?A|mUV3ylQQ||i3`{1$^MBC;IPI#rMi)U z#60N<`4wLe+(?koTC6j(fgZ4S-Kp@;+)nZ?7@vo?eR+6J066`LcxGXqWKe%lBmf=Z zw*PM67I2GJYf+L3e3e^*iE)Q2R*#-o&j`!oje+7^#YHZHO0I z(Z1=`8J99+)02%L=G>iyITSug>`FLefX1!Mme@yw@-Sme>x;NaxXLS|BC-)61oynn zqN7oO)6q)U@(|3y!u0R7*r(c=DSwo`uGODB-WdC~1mo1|jAW(CN09nd@=6PxK2zvVa3DC)hfQ$b}4BUhC(BXVt@C#uE zf8q^>SLCCiltL_&?kC9<3_1&dxv_TVWMixdg^^j&J2l|ez3iZlOI-HWiMkjmQj_O^ zmcjx62uy)!5LDKM-!0S6`R1Df0~4lPDiZ^6pn;yxiX}-;xgPmhDbQVHM|T|o`P@C# zY!#bD zvd{0^b^8p`Y%R|;_+)E#Jx}E=4N4dwZj=o1i6Tpl>XS;Ox0oo61bRH@9yjwOxmZrw zwAT{-gX&_i03Op1K8fFw7)>3dn9X{SSeK>I71}~bU$=cE98R}>+;LQoh-lLJbns*1 z*5jZGL0|(_(qI+|!5<)-nl)d0RJ)hSyei}Iw*jD&k(>@DOzhe!g!nI5A*_WDsoXIT zg{L&fw@G>9QPCP(Kv2wSdY3+L$J-L~ut0njKk=cAGv&=IVuFCZApUdc@$=wHQt{th zk7rLJBo-kvhcW`kox0{fCIt^T^bxW0>sS|j7kOi zfD_q|j8eyS&gbA#_|Qhvt(C%ky%@ikjpirYZ%vM=&KUAW0gpfV3PKkmAq1-2;dNv@ zqQ-8lTwMlh7GIy#o^`-L{%loyD&eLJhM)NkAx(**h};ID z$K@ng8z^tioS`wa7${^g>1iuL2Kmp+!qKI%Q~##Jc37143kfFcWKB?b_!OvGRJCMt zgxgVU61QrPE{~@>f!+b&5<0C4Ji3aJj6t@xuwZ}FzNpgsk56P6L#KF-z+cwg7ECIM5R^1vs)3gM>g07!V3MR&HwGlo~QB+=ePmBP+UbQ(* z3oP-*;+0c#dm%~m@jTH%K%e4?sY-|sy-q)sN)hJmL2H47d2`;)*)z+j%I5&owV)T? zX*wp+7tP@goRd+1Hq=7ynWW%E)J#LE&(+18cN8}e(X^{TOyqreusZm9saX9?XUH$C zpD9`yh$%`@ie^yNMcw4yRy>dxOW?_so0eBL4V5zE5b*Zh)i9wHY2H3%c9;wh@YKT_|=-?n`-NLOWV50GQeF(4< z-gd^;KxKd@F?6qll%7+Op?Cs*%%{c9s2rzO=jlA+>iyPa$4d$WjVtH8z~hTiG|}{j z8yHVO4XSQ8iq$adQ1@L{&Su7K_ufbTlq0P;O!DI0--0rXdbQO+hR)C`iMXNby7}Z# zms3*Y-KexDwV$>~ESu}e!Js^ftMihxj?2%xA3u;O1tnUO63m-I@OwT@n5^m7w zpDB#r%@oFDO7-FIyE{~tK^1+dI^%u0x>O6EGiX_wKO(;TT2Akb(k9;x$WC#*7LyS< zbHe|EvUsO?m`W0RrT6)0VBIq*LuodD!WOv7Dy<}w;SeqjOk4oHC+xN=Yq@;DqyklL z;XsX+L-i!0!!m1*psy#C{qT)r>~etlDqkJ!6cq3EI3dyZZBi2Hot_?Z8``U8$DLLkVvbM?E?zDSP3PAkj z@iAc(9%`rmVDn)G$N=R^ErP*&MKyf*Fsi=$n4Be(mo+re-Tf8y>uWu49A59sZ$ibd zfzM_<*`Q2KXXkB~zsq+Hb+OOZ|l5 zd=LBWn&Y!QEZgZ!pDr1|b}`R&BjzzlNlW?Tijvhxm*Hx<%#&Lqt2ESkD#;?-M2Fr7A3xy5=`_+kt)`VipgL;} zJ_1Nh3wPAp7UTl*+iyiUmAo-w{fXh|eGhRStjsho8y<$<3ImFOCH%KMCH}>ElB;VD zLUJiQ8KqS3nzBlg$cRLif`;W&wme*_4W)Fsdf;-iRm%s90|cD z$QVm#!Irx?OC}o1QO)^MY&ETGF%(M5AyLCxk3eUR&i6(wfF{AY&I`cKOT7I*Kas6F zc2SaNHyM^|T1)0Bev`2rQ<LRf#(SD3e;K-H~WJ1{KG>FH#xBTrq`akxPCgm=dr6BXa1N1(#V zz$JZj-7T z4yXti^)B}3@tYnzJK0=;gLOxqk@dOEh?4E1wu~zAt$S5F8yYNuRrNk5CMN6=vsRqs0*gz{kwv zTx2xXXLjO8M1*(NK%2n(AkgW)B^vBoK%3JH1rwy>W;x@ohun{vzfXJL6+eg-dbQ;> za?{w!j{~I zCcZVHtKE+kz<~ue=SF{qqhzhIVC8Wh+m#@ot=c9y0vr#wodb{)Ut3X0R_bmvP@y(k zyfLl>dNUNww+G%%{gON(-ag9!Y)Rcj-Xs(nZxM{DXq&(Pd1I=o?Bz#1%@Bnh83Ev* z7rkqZPm4PHC7bs@ypR5Kv{2Dxo>u3jfyC-VeP+kIm{8#qP5S9|Kb9i?Z9NTZ%~hv8 z+Xqx(;@BF#DS8)9{V7i)qaVmLylbQ^_A3@06-S@Aee&{?2~o43P>j}tUuu;s0c(?S zM3-B5`zWk*-&N${xUKhoKbdGFuP=Y~oy{_UIbfxiQSPEvgH`4`4}~L6lACoCf4+Xx zwwi|JPh;F_>$(|~(7=4LcYi36t&L~hjTcQ$`~l9x7IL5>op$;IL*F0_2B;8x194^S zXnYMddh7kVnYh{XDej0+kgxRPcF&MbNmZG>@LAS3e>_(~f@XMtbjQ;2{QP)33J|(m zu?2DBMcCfEM?KKQ-zVj~20d2x6^{RV>wsG*{-3^kBT@abql!BKZ4v3pPV@-2%ze3> z7vC*r<7%y@Yol|m%Q0+3`1fKLZ>K3#zvz(9vEjDEdlQLJp-2QAEw%&WALenQ)_02lC4C~A^<2=TkJ#SRn+$!p!WDwb80ttXI>_JwN_a!;0Gt-fem zR?w=9IRAPFNmtFRsx~=kuk4sybWX@^8iZ*Gq`=hUtrdi{7ymZ|^Nzi%`uRUs>o58D z<_jxBz3+f3EVF5%@J+A`Xz4ChqgY-<>{n`g?U!wZ{QmX~7qA@-yAZJdy2T+ZTW~*K ze=0wZl{~7d{vxf}TCE}Z_K=q}zZ5{|hftH;`;gG=sAzomxx@|X&W7_4`GnEp`4yWn zjvWNL@90S7Gv-vO-n*OxsrhxIEj~;FPrlEUYyB+-O!gH`>pJi~?WMiqP?mpPD{_*> zS6|QbZmv1d@mS;$rf&_s?hX4c1~N91p{Uph-~+eRSr;tLRUb|Q%0iWjrHVIq8xe@g zCpG1qchP&m&GZ;W)8lnmOHBy=aZsy>4x0wjo5h|FbIVu6z1YnSl#@jc-19*F6NP|; zx?rjgsxm2f;OF+skh=m}f+sUb!#Ft94bS_StFYGQ?hx`jU7d~8g)Sc{sc~&o4q!(k z)<@i$9Sen8BG|$LdHAab(>IH@t43NvcSw)1-AflKtCMLB-BL zKV#4THdvQ&Q{VBPv}j9iYSp+nv>~)DF>oR&&cM)i6KHpQ?%nluRpZskc-&Nu)6*}h z971Rg?;6h26Eal3Ew=>NphYO2lFx3ZiMbNmXdS<-p!vEQ;^1s}rlSm<=D>G+Q%ix2 zS7K6J=8e2O|I_L@%4HY2r>{t3WdcHp}%m`l=nnd8AMCrV{^&`{8n z)`oMIgN6y4fXnk_QSES8!d+qyw1T^57lVmcsoD2wqMHu6x!Dcc;e1;RQ`h!JLcqMm z{-TF(dlXGG!R<(s_BWRDfg?2HTLr$oMjRSeldjt}**H4is70}3MHpnNU*%zdoO%v& z>IS;FJq3yimZMfD1SwfrCXx3fDk9>CP62sM*s^p^6&oUc<_zCSND#W6rN`$PG5^r%^{o_;eZ?t_6;J+Wfn&ZQ0WXFMx1(5~4 zx{w=*^|WN9A$COc20!r+@lJruek6Pw0Kf~Od|L_*R0{6^6(AM3D(qsLN!idWD!iV|-(d`h!j?AQYW zj)}5)`YW-g%53P=j8`jN`%@pWtfHY?C<^6wsNd`ufVLg)MU;ZsLg| zh(O16fF9h+Z$j@$Fzx?Z;tb4jS)HNWgLpa8#}k z{1_|R_^Rpsb0GNTw?fz&gR5%Mwm%7E3tStAP+1R5*ta{M!Zv{n13#|wP1W%Q)&6ak z;L~CaU`;QVc1gtJ%>4|&f~5PWEe>Wvi-BB@)4o)`y>B5=r4A z%zTRb_Q>LwKCRpXpm#l3cX&G9NqfCqv^%o8)UBt``F z+o_&KQYkhp0J4RcMqeSetkmrvbmY1hE;~o?uZ}z>`+J>oaw}LzaZ(*(72=wWq{~vvd!aMKj1y6VdKE z3*%46-&O)ilawAH8v?cx9)vIn zF4&1kET>&EIgg9Z6HKy`Uk~p*|M68-pO?pZC7?_DnJ4+l`1Z%u zhcJGYK_k}UmcZ2oIg%-vm(n*)EF|)eBl@5C{_hWp1Q3|{5Lj@T6Tg2raIOE1aC_wk zgvMwV8-FshgGZJCZGPIdtrSumF`_VXlw_QX)HJ9bbb-owCJtC&E**eWKUo(8wEP5wghoS!0Cf^O0(9a zj=#@Ij6J6m4106 zxg93Vr_U(99dgAWmGauL+zVmd9Q2DSF=H9dRBH$?T1>#N*`wTILv=w ziwDyL0l8>SJq%bcUtT`GpeV!78}xPziazF)uYObhZ%W%u9eE=%^!N;nPgK&ZZz;zi zdm5u{Qa_EZeQQ*TOJ5KE!*W1oeRp3`0byo!Fk=w_ie8N@TE&^)MnMnp3fXf8+ev^` zy(WM6exs-p%-$Pgq!v^N3}`}i-UVWq#;Jy-I>_<4?8?v1OFIAX^y;ACQWs+H^4o|L z3%1-7&n!v1t|CL7II(hqu>!cg>A`?yGEE4ZJ3R#DoZ{BB7lYo|q4-2J=8RZ|QQ|B%zf&tTu*p)ds-$wu*8~W~h{Yrm*;UaKI$9gBU}wR5 zAT8Bo-bJZGiASD$Ya}W{f_UVU>DMHi^B%Xo!$Pa!ngpKxZ&NG-FfbFirq=mgkQTw} zBw~-$_yx+lR39MblY~!$!oRcd-_KOi=nGB=Nim2dmX4!CMdUb_?@8y_@{rbyuK^=Q z3LX$)qBgFRGX*?++HY}9!iy*gRbVT`+Wd)aWElyFkU7y7}{t*HUURXSIr<{vJAClD5X>W<~g8R~cO62nGLeemb9 zE`#sdJ{Bg0IQ9S*$7Pjp0m-mhu%4N5!)`OHbrs+wm{@`${G1~-a}zjA%1i@NuriqW7b#jE+efjdFuX z^NE5sj{3bf($Zx;KVIu9onXN5riV0x@6#_w8%;Q{WYhi7=Il_V?>b!PvW&D+%RAn{ zJyt9L65jr9$x@JM!sMVrHlzRL-v{;Y*mggR0(q|r29I?Gxj71=wjuc4(`yOpHyF41 zN)0ciK4c-E`)&(Nr9pOC#yQRqg&DW55ikF76yvpDp#ll%@Iq7=8Lfu_uxTwnoV0|u zmnjm%N==8Q0C@l7D~F#KoCh%Sc<83=_%HPdPC=v#`kYMUXSn41mIeYG@1PTYq3G%))$ zq%3P$>KDlHBaKt%v-9~XpcqeQn~a)}$m zJPDBw^d`J82~L&3C%#X|(XQ_>UZ2d|iU9%nztISO#uo=it@uN>ef76 zFTn*YsU9U?x$3r3f#^j_DNznrd*ugh{mR-T`{!P-e>XHe+Z<}hRHzW;si; zSuah}+Rn_psuFac?B|>lvR^QkNtC_wE3);LS=&YY;Nc<*11*s47LoIlud9r%%xQJV zTCX1o>}`&3FB+Xb1uk{3%G4|GBNw8i0$^_-?X`3|5)SW}#z%0g=b>9|Bi8EqpSl(3 z%5P#U5Cg7)^b}Zt1$IFlM&8N!$EvOE77LX#eP}mN(aU}OP!9%6#@D-d-2mOlar~9C zeKav*z4-hj@N9)76H`WTk;H^Yqgn1LptycI=;yw~-|(JAiATG|>@M{!8<6}WfZ2e9 zkQHDBGrb@W(mq=e-|`!QCWyl6U{KCB_>8S+zSj^TX`;RB>l107E=|Z`z&oPerJ<+~ z@DMD7jz#WkfMqH=vUD`CW{v^3<0+#u$bG-zRUiYV(pv3a2Xl57phxZ=1ul;QsiE%9 zWPmN8Dq)cmbt4v)Lr#5kGSM^RPr-3n!1Xxs0YWN?8}GgvAbnG+a{T_A?l;MPiaS(w zXnW~-yA&+9ytpj;c#nr?Z|0tSM@QszcHQdmJ|^kAWeTNl5{J31h+Ms3ktd|l= zSSLH0V~^4zI`w87{Zv%ny;*WA&^g+;Zm2!j3;nSXQKO4k|KWO!rBlt_NY6>}1Jl6P zfSph+&$Ev|Cs8^VPJR|yMy(WW55L%`?OtbAe?TA4SDf$XN-vl2S<^16z2G{?uv?`a zWUMb3gG-&jVJ8Lo^QDVJ@(SxXWBV^~9S0&nC1k?OhW(HK(Z56gqiE28-7(Wf)i0&= zID5{y&7H~cI7^S#!g!@I_bgyhuK0=J|EuptfO z@s5Ui_0hQ5BfBLTRZ1Km#fs~g-RZZ>@dJ5!b;33+$`}_98h!(w>%$RU*B|SP&biIA z_t2Sl$paC+C=*1-R_ncU`vLNaH#?u-J0N>>tse>=N`x+uN17Df z&N*Wcs4OW`rj9LGooifq=Kb*If}TN@lUu9zr~f5QxT)j9giC=y0UG|-gK;OOj;sOz z6!=TV(E9I+2OD-2LT=P5#%f+>&w#94|2=6gh4syDQ9Rx0dB`I-##J==KaT)DM19WU%m`tAU3AI`6lr} ze-xx+b%^;)kO!_BQ$oH%HK-;D$l9!56(|)@UqPigP`tl#%IZx7iA)+m1$Kd)-RB0F zGx_&gA-na$7;p*3_$yaEtWH&7_=>9Ts>%H>L??_=L#(HC=VmCI6ch*ZG}b5wV|rG>Yneu$PvLed2`)?W zdy6TwQVJ)tXdaORX;OZRcTXKa9TBSXq}&adOB*gam4+uMv(g49vRY`pzz?S(VTIAj zYQNM&TNXk`jqkWZLVI)M{bnsqBn!V~aV>{8GYZWTv3|ZyzGI=cPGQRx?0h&+(EfcG zIc*uS&1tSSrK@r&YBEw8xH9rBaqGpzc%vXkEd}54&s7d1Wbd|YVzqpsBWd}#xc-+p zP<;XX@By^xj!lB_f0X(Lfc^y5WKhBQfla{$@C503VgN_NAz`DUd&)X+7D~cSlg{F+ z3!f%pR1&B9tyN?w+qIm&9`C{>Wb%1qvSKjTpL2#kz@u^33befJ7UhBU2N4x#C?ZOP z=iU98bC3OkR*20TP>!*1fE8gc5dix_nC{k{JDyL1D6{?#5)tbucAxz2k4rr6ig%#T zt!TY17Y4aUs@uEx=W9 zo0<>3E5KxZ)U+Rx2xIHY1e*uqCa-7Qjqd)!7-Yq<;oqr8Dh;>e-}10_1f=+4UTzhz z4$2{*J*Pg+YH#6ZcF^0pn|1*UWlk(4P`&?Y6v(|rleV1?Us($E-au?fvSbJ|Kx(_l z<@6gYuDbqcZ$2%dOD6buHeBOZxBi^a$xirQOJfUIjz)00K9QF>2f2)25VF<) zeFv@U@g)^cTPUC7uk<&sv)uZ}C^3Of=Q`I;vE-UXw6}6~b#W+*qtKyEGecNFH7~YZ zPJTL=a>}J7XM)Aer3wX$FhbxQr#<rdgm8&}=`5l{d50Qw0CVnRlsViPMa0}IS_nq3dqXo2n_;MA2nLL;l{;(aC{ zbu-e1Bu_6{MZ3;ExjCk* z(CqpEuWRF^NCf7*x9}Y5tQUZ9t0^1U-SxJCBUrtG+7Cb)daB^xhkX1Yd%a|@%Wf<8 zdm}HL;$M?FGSGOf;CL2I~v0-e8#hC2;Eo5#YZXB&@y_VVwCNWC_X{3vuaDroH6 zB*a?1t8&VpbX@Ol0BV0(z*<8eF}}lO5wOB(F-Ce1)i+l6 zqvd9r%qo6IjTLCxDg55*eoAoCeYNW9U~~usj4-x@Di*!cVx6~dzr*?-Ugqgl0qQf} z+%kA9V-Q?#PNDgm`2V=Psi8O4`gkz!2a_W+nHj-*VY#=-tPLB|$&}DoUsMh$4!w^s zvOdTGhIi{pvjT#gn@hck+Zt$D)zB~%I1nE_{#0*BLyiPitXP!I-%r5ea|IC`#|d7y zy6X8Onn~?D!;30MRZDsxK2Y@;cFaAwJPR_m!C0ncLKaPVp`rcFh=)og8@O}e~?73G!){(Mlo&Ci1+gS_} z*|t;k+5pg@c+-BW+~zf{LJ>~IOjsM>y1r|}MiaDFK$LT4;NE~O^YTy67U9!MEtnz| z0I*62TD2hPW6VM^c@4)(FiUjZ;vphVc+rp#AkEO@9boX2v#dji&d~k1$@z=NTp<01 z830Mw%5e~IYaWJB3|u#U;Qu=WGNFcvcTBr;U3@IuyL&o2ovJ&q44dUS}l1%OS*iuxk7HvE`;dIqae0OMdngV2Hbm{~FBVz09d0OgrTMw$DFo?0?C`Y@o&U7QWznH1~3T$YOuUMEsC5-v(WT@(Q3~{pEBp zPPu|(U+;3+k%sa+cA4a=aW8`jZ3A#umv`jNiinTdz@jX9gd`#@mEHRtw4c`5t=K&B zXD!^+*^U%HzMx^>(}KWI$!Adhn9p2Dj4lK(uD{U>h5K4F&HeJs_Kzg5;0_)4b;A_y zb#c(DE^+V5dY0KN!zh@3^>#J^W~_|AkAQP}qewUixZHO$W7uE6uLd=Jwg4Yta^3 zN_7Qjcv|;g&pLVhJmCier4XhfTy<|N z%I?j0>5szIPZ?>ptB=^bt4{`)A1w_A+Rh)kEgpXqAh9C;G?D>hvrY9PyV%Q#EOcAe zRlQERqnbLE7S;YKZXQ6$q9vKW(Rtb#(!V0K+KaKn>%CVB zUsxEUN~~BwZQrfFr5Z%^kO`E71eY$-gey)zPI>-+y>#&KaStzuF_66=gMKQ6msj7K z{y2N#=R-J41%$KEz#hjRK1hcbIBdP+ymw#R8xUYa8*Yu%Hu#{q@~XIg_{ajQKHsWZ z1YCTFAE6|(zG&=}QVPdHHMnK=l|aJ~jz;;eueOeFyIL72rHPM+yg6o>^Q!UfUVvMQ z9NGiyts($BtK}U~)IFi)wdXZ12GSE+#38KK`RtrrB{a9zkCc?F8qID+csh^}!!h0# zVJ3z{NNObKEHnINIDN?HAflczH?&3jivttVnsqJOUo}bPkX{+23vv85Z{CY>Ly>m3o!MN+L=6*uG3`JcG^(XulYL667lO{FJnNw zi)Nwu2lMetWjB?-BbiFai_{9+vo^}%X{Yr`Ev7GZRJl}B;*RII#fBgJe zHUzT!<>(tFWRPwLjM>$0ZVd(aTgq(-0>NOM4S$WHI0m>6Wb+KmPg<=9$Q~Ojh+4Mn zqQkhrnpB|S$fp

l0JKGJ)Db>xK4Dd;QNSvs{o+vBQ8fiNMGcupGNo8Bff>|8XTy zVjWpbWHkapqw1Mnowt1r9P10yVnV|qsHML^dH8($y}sU5J=9tgP-#i8GO(RN3uxX8QU5+7pUcl6S{G zg&VPvdmVZS;VkidXAa>*y`X@@+4g=q-QF{GuIdACJzO1oo_5=s$+_Xt;lAHzyN&X* zlaw`Lsj6SHKn9<1U9!PvEqTe;>;XsMjkMr9YVQ~(TWIVcO10cHwH1je5|Xr};ZxRe ze%{3EEhP8mw8H^xsTavoOH0ww$xFxoK6i$py!7+upwS@F3j4an#lc|jBg;MV1|e#~ z>ZR;ZrIhB=3Vk1LIF0D|(lai!F<==Ydd|p{@!ce?qz(9Li==P^Muy{>?9>QR$ zI*%3rnlFwE9lIk(aozwdt8isq^~k8iROM4?lrBEO%Ictz!QQeS=2f6~M6E!sao*Kb z=bP=EwCRo|i>i%MttVy-hifVyOoDfylGS96^*mrd|BE)9vq()Qjg?#cbw zpnNg8A5x+Bv*0!T(6!`vNu@ZzY|Pv8jka+MU+!WyNC$$w3mrsJWuN949mhi~zZ3wq zf|m?rOpzW+KL6id7GPH$#Fqku-2;k2`;ZW@_lcaS^=2%%`V3TG2V~(Fgo>P)uphfV z_g(_9Oqfc&-1=2ovZr>ua^<)^g`I(c8!!^Ku$cyz^&zOB+l#E_<9TVHg_3{T@8Oe| z11=!6QV~1$7yFpl79!Zjk)LU$-&->G!cOc7L8Ro21(7n$_3r1iPIY9*`3bv){2}*K z9-h-q)-_$N2$p-t#oG_+Ob2yy-HxBc)OjSz)ShxyRN8Q;`+_Ps>U#g=I+E@KS;zVH zxuaAYuv%K#nfG@*`~K8cgWxFn(3UvjGge1j3GLH6Q$GH7`n-M$`L1P->>e3ausI}d zOtn0v=U|*ehlWG``GqU)D5Ai--&rrPvb55?O`D`)#+9%X_ZTJGRMSW)sh4H0y@IE+ zeHAA%2#J;M9sJtP&PQjTr97S1hDgUs-J&+(0llUwKkieEC!Dj)oY{mgV-6rCo{K!l zJ*&-@CZi=3kMB+Ii2~EE35Nrf_P;QBnGmy+h)G4Znf7_zvRj3Y%d>oS&?A(q9^ zeTHE)LoedQxq$QksDi^hh5o44&WhfAutUxt!_FWu{|c@9eFUUBjG#Eh`x^#?u|Z7c zp$6pZSl|@6a7T3-j71|M_zCQxcqmyBJX9NV|7A#!SY;_hkNzzW?i|;obFBGT=?l6L zGDcMv{$-ja)T`4hf`u5?WhsB##l>Uwg9x+O;xJJZtd8mr)6Yjdu3n6Pc}TA(c;ZWV zkRLEv`#R&GZq_5!bojdWx2vbNYTWrXYm(X|a5ilyLIT|;L+K*qJ z?YH~&-Rbvf*M`H<*VCT!U!O^pTi<{M6tECtp_IXH?Q)q=vbiU9x2aavM~ala7`!w* zWA>MncpUlJONwKExHykjZ3KswdGEpTWj}KFkFRv z{Q{(n{iUC}%zhLcQ%xGnjc56+^(2SxA*>iBq7=4MEpeDOjIxa45IJ(gANc{zI+*`I z%H9JU>%RRTzldxul2PGusf?^BGb=M02~pV@DKjM5D;Jd!WmEPjBiVbDk!+cnMK;+& zzw@K+@qM1}|9>3cq;N5MwU5zdFf$KBt9c#kH7xnxIut?OT}OA$Ih-nV$oM% zL~z_dy{#zL7(KIKW2T3CU|+n?)sW1a9a;S?aKFDf{N6qb^NTO+>Mco$Urt5}+06D- zZsdAK^hpiy@@=wk_c>SecPk79OT^tZYZtpr#}^ad`3f!siLE}{!PAM0!)Hd_e=R9F zn_tE`_T_n4m*&aeYImE^^}AlMe`ui8H4zLCL-;C~4&>9?ySVj9W)^ft+yx zQYx~#GBlD?%q}lI$uhmZMUYgbGnilw&(?Ai@80~DeIuU~-k9NwN;ct7@vQpU+L7<8 zw+bEF1AcBcZ}VMXb-MigS;(S`l5)ID+BEJ8N_Q*#D38rA$KpFB;8Wp0TT{zNl^szg z<>q-KRIOMpkml-}JEt;rUs+xCI3cq29Jm82ZDQFG%1>_=Dida2snWYDG|YADl|_4% zuTRBF6FuLr-SnQ<8uH37))MN|nEdufH@8`j60Y`aj$WR*dMZ_6y(OVeYKTbgNP~N- z@(ZpS0<7$o&eZF!oW0$REfUemCp1^PzO8}`MykmSh0pQ)W@;4%#|N1c3;d z@$O!P$>OT#O++V|3G=UqBX|45d}wz?A=%Rn5;eOZItJ7N7ZcV)zZ|%K51)qX#U_NM z^7mP9;>FiM(p*||>{EpQN6Q%6P5@k;qtWLqpJ`=jT>?w_Gv8WLbDWwj4E(K*9-i@S5$K3RE<$56d5^D2{Wqf~s!cHWhC!T5PFNf4v=^n&sQ#A75TMPI->EjwObwPj~WfU?c z9=7M=US=H%+%d3>Z7)GBPu=u9b+^wpVmiS?Pwc+c^uV6zl5ME>kzc&ikv#0j75A?R zEe!GeDt64TsBlS++nSb2wOW~YyVpjPVotajk(oB`9LXDL_{FLEolWmmgWbt)*0A*S zV}xEa^2fV(UF`FzsUxH9M~G3@C7x}>DJmYxe$J|RP~ zxb9wp4fKm)_eRf;=j(HSocMCa-~?O2eb3W1l9rMELey8SI4?0B+f-~Gh}m=0brZS4*z_t7t()3p5Q*?vk- zeDk%yz02il_hi#^uBKYu+s;(nonXFRb+7Qk>epLcsSW{8C{Gi5F}`pA@cU>65yJ(& zdh2DuCC5nBs*{3cF!aejb~?CCq!8_B;$({fQo5vzjv%@wZCa-jN&;k*r-4?fhuE%W z!gN~Xob2TZuO9;*|Ma66%HPh*|13wOZxGA5=e~Xfd*&mSgui{0LaREP^$oTC_U9$mm_FvPE$Q$atpfJq25X;p=RV$ntEB_7Hz8g z$br#FsWkLadJLy_4%CU;vZ&Ec5CyXXUGSk%`eMbZ+6=(DMwM1sXeXp0wmK%i^OxB3 z@ADANhF-7i+7OwxU;ZGmqeO1*Z<>EFaadv-6a~vLO$|t*x-WJoNiNEst2~&M|dX6a@1`9t^FrX%(5VGu&12YhI*g$DiOF=DutzUi(jaSDFiudQ>YH=A}Ry`&m zdFM#Idw~e08NgYt%P+V&uT+EJ$j9?2mlp2Lsv$U%XQ*ZaxN$WLhPs#f%LA||e{E2C zBlv{qGdm`7U~TaM45f^IT`Ec?h47dMAl%OTqftM^Z)IK=T)Fa;`HU2U)ONFaiu2M4 zr+eR{y*zyB<(d<^g?F^^n9+*}?Xpc`6a4cs2k3G8HKriqAuQ|9(mn%LbcM=-LSVq| z#PoW_^?)+W5d?1}cTjShS3K$hVIOT0_fzpC7TrcKfY$H;xQl3z#p zpt3rc`OUEZXRS$zlK>-7x`rm4%JuXxxN%NubY*oRq)53?;9H7( z{6o$oU&_{Hw+ASSGgTX|ce5)!Z&{4}$SEA*2XA4x*ZZtLUpYDqz8LCS!eMjL$}-29 zBsq8V_0pqE);17z@fLET4L^ccY6N^S^clAlzlh(Tj{?W)kv_U4#d82K(xLjJVnpms zUh)XzVcg*xZcHG&XC zJd|jc2{wMBSWf$zwgC^O9!J) zGRCwRS-qRuEq;RXXK$`YYJ+E))kwv4U=}P8D-54s?UR#H4n+_BZ+#ILrwRlIQIUi9tndtRM-U0}lW)V50WbRT3h1IJj$W1pq| z8$Fv%V6TVPEm#GfYW(@RcR|ym{Z7j2LG+%m=4y;2_TB^p1<(v1zKfe2JC2=+em}q2$l}Qj z*g18iGFvoUU0 zrN2z+3=Af*YGz1?#LT+#Mr0s{BU5$XyA=QF^?x`0N>biPLu7FsvM?3KREzhO(IB9X z4F2(zMIp6fJ45_&987z6{@Y-5^IL zi?+o4Z1>j1HRl1dNYU3COK=bSh_Se@g_TkGlmb)w^t(f!(bVvcDg~a)g-Na^qQ3ba zsWP5b`*Ar-x!GIcjj%dL7~X2#QDjj!&6(U96Qw*oE^=As`Ik^lNadFLk3#*N&v^U4 zJ$imHw4Zj}Ly|fmfMdlG=oTwJjG0i52?QXgFCg0M*>=kvS{xbWY&hYPz17_ji z%mQ!X^I_;L!32}Z~m$x&!CF1%AC6XiT0k1%A=m*8@uVMdte#QB{7HiujE2s zc?Lo`3g?W;Q!M0zZqlaED)?O}=*O>t6nAAXs@A7^+CTGfQiYH_ao(|^D0grP?yVb0 zz(o3Ss0->!&So1+h%FqlPue4;UcroXU#O+7tE>;8%AT{ae6-?vB1Uv46joU+a6KpI9+nG-8S zy^gjFbpm6TW-9S)sMlYQA}z}ukpV{J_%_|a2Q_UHFj6(Q5%)7oV27tyBdNZM%r0{J zuvy3sc;5CO!xw^YC}ALyc&y-VpAF+mwySp5h#J#i^U|;B{U#p?Vp7GCO>uDeP43Bb zD!L#%<(Uc^=ChQtvuSX&<5_wBG&j;{_)&a`<;!hIE7AT-K4iRh=V^-!LNnSbY{W!GFqQ84 z!dG2-R&DJWGUMNiM~&Dfz)r4KhA(1tf1?;tc(>cI?yw}GlAv18C9D7X&-3R+P)E~r z6Ay!eiBQX9JKNQ)d+H6>`Qhg}YvGCej!`{g<>vT_MNF<4i8_3qXT~=n{36nR@)xUS zdb@_k6_BX$s!Oe8XmJ=ya*tljhH&UtugqnCpG5hngFeGeGY)(w_}Xt%noATnc?_0g zG~!*p@a-fPIfG-G#UT=EQq}z9SPJX{ub-a>A@vq-+4m%Tjl;ff{;F0FK7m3JY!$O( zN@laN0o%!{T8Pf{x4vduy@xQ1RlkJnV;&lSiY@%uF!Tm;v%V!crp?c)HjJqz)Z^P2 zpI2g0*ggKPojc4*GsnMHGoD3jP@H|lASnL!E6~RYEyMPLI3=IlM91`C@&u4e-W2(< z8JST+2T4luI21Nc>eudSRwGhdcRY)opFp8*hRbw5lo0~&ym89|K|C<;YoaXXa9w== zSzI~v4%&IX0xrV5nc+;$(T}5zs-aTV7t{i`01f2*!aIZ2p=8E5-RXM);-yP{i+jC1 zOWZL$L{x5^<@cAuW(232hL*UGTJgW&(pI*q7#Azux9CfYQx?&$hZyv-rmo)+PAHOH zgwQ_|O_A2|QGNIYB_0M_D?{*IMA@evy2zd61F2RD+$86gjIt^i$fiqj@S7JCA<;9^jroX!`Imho@?l z1~qu0ju>10b5T4Rk~)LjZtvV3x>#nqHkxassgceC)c@O4t76D?g-{z46(ijb0-xux z%jtdQWcWo?;XaBKhvc?#tGALu^L6;j~o7~lK571(!uvv473MZ&{bPGrK`aGp10{@pNH zJcaxh`FJj8o>pJAdpb?Hs$HW^)Wj=t-+fa( zlg0%kef6}(84r!Is5Ds=u_qOi*hz>B2?aC8rf&Bw@_apzRnpA*9UW)=F#@-E-I#_( zal6PQd3sJ?#q#5(@4cZeR7p%18?Hkh5I%klIL+MH9@jy;e}$8vqs@ULKmQJKI1Nol zM&@pBv*Lpu^D)V5ATEFwZ(N${*IK$%=J%;mt>1U)y0UgfMm%Y*GfQJ*$6AL+cg_O~6oO zKy(qk28C0Kl+_DkHtIUX2!5Xq2vuu=^|m%d&2|e>Sc0w%LxeD}5BbW`BR?5NomhHn z9dI$RN|~ThkPXW(O9nWfa~m}Te|?Be7kbqQ#Dp*ahNcMop>vg&hqo$F;`>8mRUiI< zUDA*AMgL*wdF9;!+`tKGc;haxb$mqR^$B_UC=yx{gjZn^CCG`AbG(2Xf?&|;0a08f zX6GW@(PlQ3TY>E=EC>dPnA9#Aoe;mTBEMH}9;KfrQ2hDe8VlpqaJ5+t9G&+ zI2X4=6Vw^r9PmjWBF}?4=biGwt~*p|46dVl^%TM))mD8u@rddaz>jA9j4PW}KNlS+ z$yjM%7b*d6eiv?TAJl~9Mr!a9xM?A@hvcyR>n{%OgDdA347;zXS8s!lIXM+7_BUe6 zL37Zi^IO1s&V1f>L{H3lasC)#$CDEQWyaWsQ?kvpC=<4iXXK9xy~Q+jn}Lfkki04S z(pnvhm7W50rP4WmENspU6yr4fD$KP#H9kVR!&Ff5Pe>c zr56eT0?Q@HZP&B*fZ1BWenM{g2JClflDwj*nKfqO9NNO50nd(5HQxr%Q|p~HQy_I8 zl!Oxs*N{f<7J{L!jJ>^!yvL#P1Q5`~1^Hq3M~o4Vs!v0pMHH@?Nb8m_x+~wkdT@Wh$E`Zn#H)inyGDSXu0wK;2 z@gE02ozN@OfOc^Si~!$bY%;Fy``5EqoiAj)@$9)?EzZG zJ037UXoQ^ymy5`&qVwFOG4x7@Hh`WWIt2>bC1R#^zD`48<`5RC91nkDPo-aEQlCr| zbbD?+uZ)8^5PzMh?Up^Uwv(?W%1a|KO6`q5e{YVz7i&`hY_z5^PHtH7?o z|0HWC3T#&bUIR%)s)J#WgJRjL^p+Azb`^qD8!Emyc$vKCvB+SzuFv!hRQL2J{7AX} z8aK4dA=|r0CfkY+dXsw^DBR}x69&FZB3q9(uZ!cCOBl%DOI6Q_H2FJA(pKCpPYnsa z>p}2Fv83=2orq}wKBWgW@7^v!J6Icu5RrE3tS-lz8?gvI$zB>%E7~&N{J2Ke$4^zm z5q|2pd&^0xqJInVLysYI`u%LEWsX%5qTst*WS*cqFLUtjMOeu8CkQeJs{ODDj5SM>6ee?47q2gSV3GFk3DRb~-;MZQ(YRG~r3)U9EuK`K(C72$~fPFKoe^YV2?-BSt zvx{)+Kz>92w7f1JW<<)~h+?&8gDUAAC6icF>2$(z<=4cWEN@Y-;VP5%wDY2H_b0vw z!}{z)s2+sXA?4CdC4e5?9l!Rr zGrgqo>Bhf%(jNf`9*A_{j0s18p9JB#7Y>>$=`h4h`r)GimFn4}uPAstx5fkBK3FmN zMj&LDCo^`fmC(8P;gnNKqkK#s`~an-)p-oVFuBQ?mO8!w^CuPbN}Jx+CXJ{EI7x9i zEdw4znv&ulvdkDpeiuCHX9SYSFmbWFJF z1{+TkK9H^<@vtG>yWN@O4`NtqlZ-E z#kB1@_-^a7TIrigMS&1}Y>PD<#Sl$>#9p)i{d-G2H z&cUt533r@%(1oD`&xIs;R9!ALn?e&{G(h2lWta|8p-MjG2q9oz95{vyB&FmlTntb5 z;xSBYus}FXPv9luX8w2uZT|)gewF9_=gjRN*CfK6$DDXtH6}w=ADziMn{a(1_!0d{ zRD-yboK4ym74gxpiK{>5dB$db`pthakQ z2{l*PZ1Ur8en6eL@8`uZ$8lWPMn(D%Z&Q*{no^rWV%N&A)-SaeQshEMIGxQ^`2FbS3i-ZZ`fx+WTg>fMURT{5f)~RWo99M6WVg^F$ykP9%y%* z9`RiV#i*x_flKOLN7sr&SPC9&!z*OP!!#e13^Lq>&E^CNSFV-Bo7*5Di_Lb^|g`vOWBj9?J$$IyJl)_^x?kHR69LDSm_>l-9$@Sz`JBI!n}cmv#Jbv`Sd;g-)MrW7kzLAq|n)2Ldyq+->WbDXTF z^6rzFWP#V3Ug*Ul$e&}}5GtKQjup5O%-Gm_ky_qf+4oa&HP@1g?EqmVFVJXosvn`} zfRuZ$>jL{3)Y_4T+I{%OO{ZF;vv`Obkl}@kPQ`{+9_T)}T_Ty3#YE0?4tE=A)d#Wi z#Gf&GvLrNX1D(r0v+Ui|K*sq9lgX_WHnseC#^)Wuvlg3FOFw^YHA=;~1i295aViV# zM6_=G4hZ`TiR{E8uUQ&+u|Jwt)i{DOXAu6Y(N7|1v%Vsnnb7|5R+#Ocw|hCe8Q&~@ zvDFA#i4=7vTsnprv)2vw)!}bP0GZv^Z=kO~QWw4aRbBU$k+J_2zlW1lL6 zcRxveg?7Nh^5Q5fgLr~u{Yn7S%AUpb5ZUX4 zou~VrKLt*8z4olu1{m5ff$#~DtqsU2kHS{#=b$j#VG|qK6rAKhCk^nRxq;%hTxb?V z^#x{%A3zmo=sS#MpLiJ;{5nt)?AkAHERE(al1&m}m-ucLsr0Jr5J+ow5ZM3>?d+Fg zz;y2Yizz+aWfViYdS+{ToV#?F{l81pm4l)A11E~yU)=pUbhRuuZ~VntRQ1A_ZX={= zGQ?NPKL_o9p$mf+Vszs)cbc7;@@?}0st|e?fh!8BldFF>$pb3D`%x8QK`^573SiVz zZh(@FOzxHep~;z)?A|3)T&PazJu__yMtI2{NjzK&g>a2+%2LjqV*;i)2whd}E#BJ@ zG8 zhhHP&u59LEzA6}6^>4^LMGd(gzksW1W{A8pT~H8;|CCZi^q;~-8jWH@(FxcIDdKa| z)R_0cZh?RruX^{#WloJGznuViPb*W*#X~~=$O4}B=ETD9hxE_imu(U94#?kc2aP8^ zDP#=ffydHCM3ma+FO`N`hHj8LWkCLtywSH)C=~^zwCe+#UW%Z7rjfJ6*#%S`mOmrs zSPe@uj&2)#>6Bi|AQTQrlRvGVn;)N0?v~oZ!!ydfn(7uXNL!Z*AHVH6$7&7?CS4US z4o-IkCZ}|S)e^5pCu%%cW`;H=>5>=Ge$Z4&K_C2trRoQt9IQYDFVG{X3M$X#&(X01 z`3NSR@DFbG=RN!l$w{NVp>y5lMx9IkdKA*(!ZsmA{pdN4H(JJ)Vo>MazieJR8;>vDovt-yk#Xsh zGVjTcVk*LVL01pfX#F&1eTbO^kZK9W&~ z8-FJHb|lbpwbK7`7slv$f6RwYrZ`ZY`d~~8o7Gk z4zk&oYHLob3$ZvZS4pbd1bOuT*}uP2FO$(N0QiJ zd3cftXF1$U7!=$X(sDCafv=Fw;bpwDHXgvz0^FkbG8+#>*8}7&I_-3Tw7Nj}gTG4X z^8v)&9QhnUJg9~x74MTt>{x6{WKFjzMdxkAq%h-Zq}3Yd{8k<_QZeL^SxW0(MF>Hc z>=;~`KEzENBD$LJJwzPysRT@bc;u83)oA3s)Ul2Z_!*y1Xc5g6An79`+FZ=F%0Vba3>epF(Jj~Uh*=Mg& z=uK88o}_9SOd6Sx82rRsNM!G7c?pR1UP5L?A3e{FlgKu``#us@15yeS?i%vU@bwR; z8*U?8WVS~=&%?UtGu@qJq*(J_Yh^wgZ1rc7Bk8&CSSdp2bzjWn-T3Ep=q;Opv>)H0 zE-W=K8NEta_X%-BrsLKP?O+$i!w40EgewL^<2Uy9M&TV2Nh5>G?WtI<1^%E|yK~3g zNgpOG!zKwul7h%IwMc$=&?v>DC?$~n0CZcECqg@}t+*c}I)zxL1Heu8g&|2;9V|Hj z^p3Ejs*)OcIQIq-j8|jTIfapwQ>(VjZ`@j?oa=@p@Dlrni-)h zhA-etlZWxVtXql^w&jI4Oeahcy`rk{qPb2sY4FI+{ zi40j$=jja|ymAB!rlM$C7~T|kg?Lmom_?+&AND>j=i1M3{v(jINs0UHm^zj7SjksR zuhdR)eZV`VhKHFS=p^G&#QNeExf7q0nY2~3YUXIb`?3VSp+UpBq<80Q4JeNjgn@Ab~y~O8lElBF{~ZO z0mDU)gmkY35*v5`n0)~#&EcYWD?&N`3NV+Tp{z%olOb@^Te_3g&l6Dn6>A#o2dUk0 zs;e-_O7~3^(f1p%UPG?4awR+?R?3*0n*YZGu7^e?EkW!(AEs*6WP(nnjW)WJq*28i zb9LP3F_V3pP5T*Zn-1M=eJUE%gaPpY+U1nW41ib4{&U(G*c(H6gdnW~N-JsUP0;OS zirJH)j933K9O{cN13(c0mSS3|OY5s_O>_iF=vf|UI8%k7i%p_%xZv~P)}dn;FBQXR zN4OsFo0R|e#V37-0KKyH;kYfg(N`Fm=!mzis0|@sF+!y6%nnl(U+}T>SvBqk8|bs! z@Ca2!o`l~B@u)aHdNdJ~6$F}F`|D%AR67bNH-LYhKj`F!KRE*4k>(1QRT>W}YRsUt zmPIa2aivIqgC!gEYYT@6z3hXP32p)-%Im|;Kg9rpIF_pj8pZrA68O6*0Eh?kr!8Q> z$`!*X7!Uq7^-c|WcsP#J<}C*LoloM3#ti^*J0e7Cjb{WNp4u^^kit%Pn+&3l7q}>n zox{0L%?}l;o43Vf&SU-0CXJOIO}QXzitu^c*Twv9^ME`glxyIlvDM*Z>y)<=PO}lp z^x*zzR(SSCnWN=VV|&P4n%!_DMj3A+R$5PRxZwM>CD_yxyC`~z`pQ$PR48JHmFk3=0;aJ;Lb8nuRWNiHb5j&T)$>6&)Dl*v(3Pn6U*csO%vdazf=@J*66 z*!wB$wS8j7UKzEkr^uICra6C@1hula0e|lO-I~opMAZ_yK~Fg9YVj%Nl;`$G!#J@m zN(8Gb4QG(fx!{A#Kms zXQ(S7M;dI=YpfJ!NQDIR@vc`qSm_U-u{P2yfV+$9J@5WapmFvO1>QmLdlL%roqd5` ztd-hgv^eV@I0IYyNwP5Js~0A#w*qJ)S_T#cr$|3g5QhD#VZY-Y4{~#ouJ%_obPX@_ zVpW>qRN@BHs~u*J+v!dK zp6k50d4v>uaUHhcNwXJkZ^EjI1S^t$W0{Gbnpo$xu11YkC~EmVy`dvz-+;THj9y0cT{GkBJA4cPz|u=;{3JrYfnm>-lr1!KRTtM za@f$ifN765Q_3z(rzz8~j>|o%S}dE33zh=Vg$wJHWd@K_77K?G-vyHf;!|H`9nBzn zg>q&1{*ZMRb5J4!&5|6|g=H_R!FQK>D}b6PSL-okgpub5CWh7yI1;mp`?De+mx;Efg5Fntu|!t6b7kk z3d-xjlJYBnG?zPlZx@5_?$hH-$PUrF4v|+FAF*&fxy**AiTWPdLg%#Nz6_47q2L$L zqm8=#cmg3Oh{6}_u3-yNQY7Ed(d7UNsKtzBOdir0_x!c#31KwL5?bl>8%Iz%hSdfh ztFfaQY1HG(&{H{gVam7RnI3!2tlL-2hW%j8#})24N{qG*@J9gk4cTF;%ks#$^?@}UIBMdF?D=B2=!ojOh!>@nhvi+ zh5dwrG<~l{_0QIba$qLvgrUa!05*JWvkLC~N#lSFYE`nzJ`!ag>1#;<%8?Y=X!c_>Z!y4jz1AYX}q6-O4hWV3!!P!<@8($o#ceFT4Ky zLkZQA;K?}y^Z2cO5dDW4?*E9Kole}Fw-B)E=U@K?3~cbV?Bil(R)!F#o;@TV#MZCU zRM7^egL~}~ng+9=s!jM7uQU5= zADmbgLNEXGCd^ABhbXS=i#A8@Y&omO2VJ3>9l#mxButZ9Om@X65iN07n|IJb6S1++%;F zi3f5T_m=~tGQ{%ifjio=WW`m**Hh$?q>7Z9SqR0+u-l9|KLj42UGHoJXycmE*O{tMYgHa(G~0 zwyMIS6Xli1_(atZw;viT((ThwH!nVPa3u7w=*^!V!|u~NGQ)C~e6hr1;=_XN7bfN2 z`r2B=JH3FgMU~Q0aGW75!A z%K6bbkj1~K-e1qn3Xb;>fw^;(aj9&McYD5|J>n?`zH|YL{m^9+wHVuAq=}QqGm0VN zY63Gx8Nc82Fr0AGM7Zeu+v9ltZjoszy-S1%O1un3CO=&J{SLeZpcjhwQ4|uci9dd< zh0!986_AmT3;afQvpt+n)pRf9g57fq8%+hq82zb~_{_5};-r!evy5yuX z=^@!@-R@@4u+kbdWDv1^v`@mmda3bSWKsRPZ%JU6K@oLL0n?0YA*$_THSDjOfWD^3 z7mF{gm0?(2^|lXyv{ESiDd1F&Z#)b*F5!&dC;V|t7rr7V+(9ouX8x)4s0MNDIm?ON z6AIuxERRNEZy3V>f@GIo&Cx5Bc5amf^VE_BLa}GHq=*D45>C+=Cdu-DFNiBN(sI6t zHS+r(k9o_K;+bzDMGe*_DlZ8te`N!lr#}KR4c-TABx5(< z-F_u>7|_LI52dU2ckXUOs~I6tfEm<>^?NF~BwUiO^z}s6$O8VVeasRMY0>B2KuM=$ zzQ8c3SYQHpqPFt++=yc1!Q$hRpd$cE<{Rmg48$K18%&`GA0s%A0AwUN#%y((O@0V~ znInUDfU1iu6y$d9yk=FtwgPStpS*`M;?ILEyuY6 zAbVazmO4i*JF}&iiyfxb21@LcF=hordJ@xd4$o+64?jIJC?}Of+q#FD>hEu~z&pNW zF5~zLf@O$5NZhUn-{U59_ZVvgI(Sb7-ra(+Rj>0Yz@`z7c!1ixh|UL62he`?y=jNO zvrK8hm3fiv^XeF6c=0WZdcOhlPD3u(C!KXQ*n7Ie9r$zmM6tw$Y((?|ld%TA1I~DP zGa0bHSB>~bCyN3~cY(-~WuXyOnix^QdZux&iskJw?t7Zv^<~nxQn%My4)HxNR+u0}p)vUCk!tuIjJ#T+anL;)W_RIcIbgyXLZu z&$+t(dKpH5jEA8oB{}`E;l+<%rz zpO0jLP^0yqd5+py=qZo^>_UCNgL4~z| zqyb;GFGE9iXJg@}(XGJ+1*?bZ(E{&F31p%T369~$5p25)^YiFyL4A+yZ(K}ob-bl* zp{4ZRJ9|bCtlF;v6Qs`-;}|b!p@vtRteSl7SH11!M0^^HVmi#?$Tql*pzoP_9}jPi>z_myr8j??5TEN19}+e}BNtyDqY1 zp_W}Pu3_}DgrU!r$CzKBF6-jv9?s^$$cI1023;fQ0dFXY=iL?IqePl_KEKYyc43w9 z6OO=p=`dXN_1WdGaK_ZO5<~&JbOCd~I59M7U6IaLYvSak(rM=ODyC9C@?@x;WQ(#g zU#kwBKr3swjS0P+hwTIEja#G6&U(pQkvS>5_oXKoRwR`eDFGJ=q~`=VLG%fE1yn1) z`)>|36p=+}xyhvj?XouB6pvgL9+SJEc5~`t?F734M_$HUp-d>*Uei$)V5D@Mmd;rV z^f-WfbC7G!i)^b@?8tZFgH~1g#KB18gX&N{dH5_HmPcmZOz{voO>NYYe~de@dU~gl zcxG!{cL2h4_qR|o4x-RnHOSp`#U*xlL`Wp*oj-ulXjpSnPDA%hzPt%CvuEd&wdh>&r5FcP_*DOz>t;X)#qqHsSbY;wFSMI` zy96kmTYmqhASqYGun9f&D0 zg9VMfcPm);%faE040pTJfYuwEv?;SYb`6Z?H8G@V`xjsi&aGiso9+FmDTluH`t_c) z-$}QsiUwMAhDq>*=xsW=4-F^sT@Jr-dT+gigf4=|-RZ4IrMT&%k|7(bj7fKhA66<4 zw@;TWlm?bK5vaXZjU}vZj9a~|!2)$h2VBda66A9bdMy?_og>mnSgc^DCpOA$R%sN! z)5FnTDS+#xPF0UY22-Y#&i79q1z3nDeV38@uDxuq(kj^AROe5oeN(8rS<#ygkCs?+fsK|HW$Iw#tB;}x!$A6_00B)OoObPq@4Gdx~DU4$RLy@ zx`G*L*@0rK5{!lQLt6VE!s%~K=D3AI4rzJbZBeILt-??!K3glnHw1O2FZJyIkUY4g z%wg6tU;W-8d;kD@>mBeIh6ufiq{;BPakiL_F2YQve3`(En`P1*Q!gkPOd?>_BeK5C z4Ets&_N?QBLlrIs+=f-dnZ6Mg{kwvi&n_yhe~UEa8joU>kRScJ?h(?Yg1+d_xooyL zTpApj3`>443Qpyo4f|Z43g2aFjeW;sH(CS14pt8_Ya>n^ZqUu#LP;5osuVwN66}xa z&77zq&D0IMs7+t2w2#IZ>#^22J|>=K$6ZW`fqX`h4QfvG@li2C<`1Mv2|)53%A90R zlOa$det3o70QQrsOt!6@;$ISMnx+no^6!hC5)?{e{n{|x_x@9H#-yLsQDf2_ue1DY zj%6eYVJ+>uuQ6Ad_GjL;*i5=ZbE*uAQ_>ReGTqDF0hZJQO~FN$qki{?u?qv#Y^-XC zAr4LbEWSqKw#zcj;aHCu*R#1RD~AvmU8% zA-O1y)2hU3f3R%V>+W$!Eb%Y4SQFE-Ds{hC?`P~=yLYD@O@%(aQP5Uk~7mU6aOb1+$-6!j(1los{KrLI6Nhq}i3kf1VC()##PsG$pl zwZu0yt(nZKr&5^9T@=dfSg4tBmKAz{;oT7-4S z9RhMChAuxUoe`g+PdIx+&tfotnp>{+{>fJ`o?HnnyFyA(#R`VP~aivv)CSp4xiO{+={+EqmZ8tvI8RDgd z)AL>FvwK&0zSAvtdC{_S=vL&@oBK#mJ7o=B__So9X!~~Tq>zxHok`yX8S9Zza+RX?HM*fVxDr zCx1NHkxMV4`Pr0i=Y|iwZh4UaeC+1?crQ7vq~GxupEG($-l|n=<3m(YkJV14Yu*ZM zt1$xyRxbZj%JAOyrX}$fZBbB@P*dE2D=$kq3*LtlCS)~NEm=C}L3)w4i(Da)4LIs> zEIA?A!-8z)>Iy3(9=(tUh{&g#*C9Ldl2SGKwSGlkGycE00IeUy$buqK=)2N5Y`{a^ zYHy{+Gw!^fc|vdK+7h$%+Q6ES%ue=(*}JC`V4N>lPg`s3hBj-peOgN!K7h^F`oQ@l zwb*~;qn{EO3;DF|H3gDX1-0`ea`_cQ zl{KUUeXfQL;cMMAB17S5h^dbUC5lk@g=OicbFam;+Yk9>TvYsG1*AhHhuEPd%Hi0A zsM|=ZDAV*RqgsPCRj0v9g*1sWq0Qs;FAX*Jg9VVKAvn1dr)HcmYjLvGq2`U+@X}9> zz2&kH7>{5U6GBU$n@5bhN_~{_png|4JZShRwW?2?B$Gn$c{E@*$7Mh;`Rl1wH8V0) z@^ZtdfgltA{s)L(nrxw^PP*S^lz0kR7?C3IVB161;GAfT> z;bS_*e-B>YrFdEiZ&k+_JkHUzk}YG5JKYEwy?MGJ^oQeO)?GPkB$f|lnh$qz8y!Jq zibCHOZ8WN9wDv<{kuZkCW3bB7TxrN8-Pf|?rMKgJzeXiyB1Md@bH(I5q)qpQ8{2P% z&-=2$Qtt7N`OY!d0-^;Id-_$P&LhhLR`e;EqM$=#3%nG*K#x#sL#28DYOqAez6&A^ zmgx(WoB_g)C!iaQH5JMh81nTjW`>nN+^lJN&3vk99>RSZwZkLnVa(J?k`b7*6tnY# zg_l#ude;|}T>4G@y;9w_f6OK_vT|$Vz1&{Bqxh>knK{+HqHzL^ZD8k+!4|%B{>~xU zf9u=PH!7P)B-zRs2@-7dYMH24^XTx5sT)Mizw%WRd!g5Aa&#hiS68jubi=x*EDmCw^bal2IF3Hbje77Cqxm)jGqsWxbUlsfMOVY0alfjpw0Ya?!US4F_ zT14!wt8;cbRY$9WzbZL+rdns#&idn%7R&ZC4!ckplv8FRIfpOGT@X}F<`HvxEOLAB zt<=zcu91?3=(=J4J&G)r%~eqw*R-u}<}<~mbXrp1%dER|B`Hr$3i=Y~Zw)gp~!Z*c~?@VtdbZyMKq^HOyAB8j80V#NKSbw#k9tJ3c;bIMl!`Pd|VTfW8@$PayO zFnILPC+(;|e(5N1&?df}0H!KVHiC(x~l3In6uL8!!*y3;gse8*;bj?T}mVUL#}I&A*!?=1xfI`OCf{E0wTQuW55pud{nek2>{+ak|I}xAaDvF~k$=-w@x9<4!h8LI{odNC3YEv(= zu8kTq(>S^&3dw65%gN&84r@HOky0u#ElLFT5XVkppRS)ZOKjiY*a&~FV8d!^ak1N@C^BKbN-*Y_oQPGw9C24f{6`~})1CBYyL zNsssDrfHAwm-Eew5V|ie_?Fsq?x+}BF^pSZi7l~78>FB)Of(?aH|>Kp*^viMPL==O zZY=iv%?p-q-#hRWq4U<(UWRvTTvAVv%CJA6a#t=4_W;R+68R(viv^$WMdpD+21RY)HUpmj&(;7r zKk1!+upmdiCVZIg_gHV8WxiN&HB~v2!>Y{4Sc@+>Ney;&G-_hw@=EDndN+;EQn34> z7i@u}P13p0+EbCHXx>7-_Y)xu%NxBbhikx(a;yif#+&R0u6sWIlC*MEJ>Ot!;6OKO z|8OtqF|V>Hg&mj2o$C3XlRKLaNPH5}YcpCR=ILMPBqo>HXB+u$uhyy5dJFNtz!}}P z6&Qa{-}%c?MhezdnNwH;X(v)zJ!f$|mR`@11F6Zj9A=RMk9Takd)~IdG3EmG-GQoYP)tb0tSbU4@ zei=~pbPJZx7`yYozn3>189eZ$f_`I94A9Gkn57NfBR(9>Z=yQiRbT~Tk`!K_GU{du zBVi@*5h0JALD%#GSKvyAMVq*A{;P##&bRf2FJ0?`H9O)2<*ymsx|M@x>`pnS$FU`m zWL4)(+iIUe`Jwuy$_exGF+CvO$wbJ?O?i9Km>567`#k0&DUNe{2UMGHzKPPEYEEwN zkLqNsGwWO7-HvL1BasVeT-xX7S6Vmf+FZj6_sE|NCAj1Xb9~7+HzgIOUO=it!Yi&K>APuyQi zC#2*xvOQEM%JhaxxJ16GUi?TG>7*+qshlGMXt%hfknQgW9~V{&J!TMz>;-(P@0xdJ zerN5;2I>3Qm=~uI`Q;OqOSVWh#Bqb?4;n`V-Nex5Ck!+Wdh64`C`{^KD!|!tUpXKI(%gK0c^kef4>@(~4dKW&N z=cfA%L*00fIKji6cQmsl@JIyEwd+N^H<^Ql3@GJ}pgxSNza@8cm%@9=qtftTJf)Inzd*eN zN$j+&dW|*Rdwsp&gzz8!)Z2E zci?|tBtco@(Nf+sUR9$P-!qHKxKq+c8`jTxexaE;Afx4pGSN>^Jgli`zX;w?jqOK! zfZ(bpciDhkCcJcNe8X7%5gz3|USOA<_0=jy^UUD<&>fhh0XVU7V#fZlfYF#o@SgK2 zOauwAD3-hRxK(KEoNOBIlj+Mo+R!`gd=B`F-WcLJ0(4I4QHL)lRs6)Q{MbJF^ZHZ2 z>1t~+CYyN2XC8C&$yv!rU2z}Xnrx%^9KdoD`lwThjxQUNe$KTs>ORwz$~1Fi&Q+&mVq@XBA8RbADY=P;5+eI*#qZK0)Bg)^?U%;qDiW)>Mg? z-IqmgGhK5y*Y{PW*7^XdkPp0gNAaG#+?CgYNe#%kga@_U?Tue!r0_Z{mH?xqIICaD zp6cpd?SEtKQMJ^4ej>L%J=r)$? z&VxR&u!O8u4@eG23>5ODagGJLTja6WlNXMLiR|{ccUXqZJAO!$y1z60@*KTJ>8bjf z*K_C9tyWm*l=E3lt5fQ(^~;}gPokI{0SkU7vEbjafn%faCx5m2O}c2J#S_0*|Cp~T z1FNyOzgexr3**gAP$QdE4vmZ7j5`8q*OLv(3cFM1HC=M#Hm~B=0(&eJQtKbmbXCtb*%ev0TH}6&c1lNLR;~+7e(jCq@BC$#E1G_`N<=BE zFLGDJ#eHPH{T{<-8GJEU9x|c)Yq+ACmNoi0y$2pfdh;d<5#)EegE?;JCPokYSXoN# zemHOAI<=(;DUOzwzn3bs<%ivw*LC~xrB?+RizSNNrTYs%@+T%{I8AtrhRg=^xr3*d zYQ)CdK$PEy>g`Xqq&QTiTf=DK|6}jHgQ7~ie$h>mqy&kQ6#QKE{Hp;1&2l_*IqjYS>s}A(XTyP~BC8Jjw zomH&;h6n4 zNAfH#s+MR5J!~1v(4XqhG2pEyWr?auohsqt%<+dgUVDDcG@ z8D&Yf{&|Wvx$Sdzq6d`1HxA~M0lXpMss4#*=iV=i3J#e%s{WuC95iB*{VvGRm)r`5 z86bR>N$sN4^YE{j05Cx%TPNw7)^m`nC?^kl$v`3fQE!lKZAfwMGFiW#$;Br+t0-{$ zNR=S12P*p7MYJOR_s7VFQ-lmMx!9%XU!6XDg2v(zBlO{=`N-=7sMW%X7FOs;6Bix% z7|M(-Y?Ss|Ui&>oYZuWnh>28EqqD@g>x%W6>U+mjohc(ZjlPOO`#JHQ)@SNF6;2zcz=_2DK}0(XO^7Wzx_;I$Vywx zgd3p=t>YUhvu3zeP$hx3s%kJwO;qa^SM8Jm*hrXSY8TdFR&okI$g_e zF;{=Qeg|{t3e6Fr&J0D7=8l&$u*bko5I@+SOpz-9pU)nK>55d(9Px-Dd zf;t^(_QW%Be?F5U?j?FO-&u0{g6TH*5KyzGiS`);KDR=yV;yL1KNQv>_`4v_2Tw@* zk#jcrj%f9&Z8-3g3?I;(i4iesgl(|xF~3>vnchVZokaRw4vG09i z8bfoPY4;U*bUAPmcDrU6lQ1_<^k8?8V6{zZ190BwY@?pL#_D>5-TxH~7gcT^xv1_Wbbv zzVHQFPBF%Hq45TI(1Fauh_63qLhQWX1LRj`+GoLdFh^yT4H>LKvfo(Jk55O$rZy;i zhT)}pFNG9a57Ou8nW`f)8He|OZ4!C^tdce2eKOOu>TT~r`Xb(-NCy4rkMAnP&pvq4 zCRgbdK5Zx+@!&O>{+1cZi|{4y?K+~l3NN{%keU5~2J^+z?**D=*Q=Z3Y+p?7@9E8z zFn*~^BFl)UdPb>?VhCm!Q!am>ChKuYw1Kt2^@#6`d9Mp7AL@w2etZse-UTB8#?6B} zqfW|Y8wCN!dV{dHV+-Li4Ux(#(yZ7+SG1H@4?@jLL2dXlUDAEens4VGdW!%4Sen?{};qZkRWrS~;joV%-xA`RcESs$L& z5ZJF%!r4?%xIUUiv0ZP?S$kfsn*AMS(n%52eQ*!+!R-8((XNLFUOi;|_Ls61pt2TV)U~I?v33=aB%Gm031EjTP6g@sq4=# zEW$e}(Jugdt%M!fKbFBmxy^UHK~P>J3dS5uQyK~#3V)Q808eoOP?y}+UdfiAcW4Ga z!H6(DUc0r~LSex(H9i0f20H$1B<~VSVe|(L)q`jlv&69+roEN-Zu+KLagn>hUG~%( z294Ed3YRk*Z|vPDEe*hg6^+1`&P<4!%)@3(4JCrQsrF*Mx0OM%0w7wA#wN1@Jhb9; zf%|}_>C#?#P$~w+tZZ_vuM7v}|5%}a>i8uUS>rp+LLx~Q=#HcY6QGdH%+Nk*y8{RB zB|x>tLtZW1GY{?uP>FQNIE(OrxV^bSYWx!D9@${{@)x%K7(5qpG2sYk&14?9Q@)K! zog90-BlaOk0#q`-aj_2emwObjz8X4>WV;J7bi5dID$cpt?jvgb?ES^<`{$u)8Rw8! z>Frx)7d0=EOaF{yF;jwLPC zvAzhNwcIeB!~}K3HfTs9D3sg>6qq9f*p)C@b>LCDGnMmh|byYX*wn&zh0&>9@>w^Qm71 z@baI>WnyNWm_cU~2mkv_n~OEMJI_CSNEdSFY7o~Nw~iSC3Ezv?9Z?BGuf#7=#>y5D zm4E(0@O)G4xDeuR?g!Q0J%e%9^6@7P04gh8=Tj~%xI=zOL*pH&ZOYqIl5~fWkdgAA zNWqj{$&N}n{oLn%-kh_4$mx?P1DoT|#4R2~9`ol0L-4j5c$z5{6-)t|_xsaxD7z@8 zh$A2C^^>W>962md(+~S4jD4a?>7FOVriyp4Qc`HnMNIGSW9GZ8aaE0(OGd*-E8`%$ zomP;{hpVzw()#Y>;fVBe34-!TAA;iA5bOock-ip=-E|ky7q@SFeA;rn~Q?sWKaj8z~zK@u44es~+8 zlHOsYTVrOfYafUm$V}r0V`}kJ(X!wQo~J;yt;+Bm?I%XrS^~izkG3y#Rl}NADTNN8 zA3v!TbM6M50h+MLH5}3c9dO_Gi9@nj~shYPGl zU9Bfr-46S2Z?ANk+&uC;PUbuqaY!yS{(IBw4zZbV-)^Dv!;vt|j4ENXGh-4I@Kt_+ z2F%kd;JkMsknD;$Uh{Hu=dK@4^0cV&B8%Xy0Z@(pUiB<)gXO4i)bYFz^(Uwf7(LS> zG}IUk5I`@q0~l>iXM7JpE2(s3XRwA*J@<@z8reUW!J*8l#;Y_oNBYNpt)odyZ98N>a$ zr7>$~W3GJ(8UXoHQS)MrQ`go(OyKAnCy6|_aWZr#2%ZAF+{xE1y>Ej~IRmO55RrpXHU-toQ3@Ji5oQ3Zd|*56l37Sm#w`#`wI!H? zR_VE0LC-7olZ@X zHShNT>C*Ftar+FlcOKgjIZrKW?`0+P&|4KaE7__0l|Srh$sX30gMO%R+CFQyE5_Hs zSg;N)qhx2&SF6#x?QG((kg{pV?v9gPV5|$5(7=8BWd~4|1s6yL#twt@oDJlxJ+d72 z4s+`Kyt56M&9K7qa2^2VUrcpl%G6Jn9(#6NgAkEr6urNp+Bx2+(F~OY*%)q z1RE+xjh$Eb@CEiFj{fs94vr5%hx;hG=8XtY8&xr8h*}fW2#9b#NQiHDQzgmdrs%Rp zen=$^>h|u8xir%};_{Ziqw=7@md)d$2IY`($|C-qABW;1(rmeXxj(Wt2?UOQ$F^@* z+YJ`++?5YQDFS>jL#XAO@UpdKv z_}Krt_gaCQI)WJdr`WRyo<4q}iLaj}%A)&g#eCl&z^>I`UauyTFK57G$h${QZVxs4 zwI8F@Th1^lTLq;Y*F*Q2@qmJwVb#QD6Oi%yN;Hp#?RO5Kjv*W`r%BSv+%#f5EmLLd zb%2pz2!KSG8BtcKC^Hq4C*UydkA8PojG zM+My0<8W28RY%V{e3xj~Jsvz-11p6G5-|THJ-n()%raI{+cNFcQ}SNaAHz?89*idd zFV5zHB+sN98&af_qyHinATP{85&mbf+vNDRcZ`@j-#Mr}>g& zvQ&!qVRCx%*$22Z@rV5yT03Yy3CWfbtX$S$j@;wzdG^RvR-*| zs-E@h=7G$48^dlTjmsLL43#Vt-UnaBA*9fk`C=O7HZ&tvnJ%ZSkdG|_Io<3y^Tr7v zmknOnYe{`G9f*vJI6~9^?2>GFkuv@E5u4Lt3IWSkTSA}bmfgwr>L;V6dX8Xj=L>Os zZdBgJNi>>H1+iPo<*rxCl_RCjdJU8afpuyR2{B7ruu?m=Oq51p5KjMBX`K9^1+vZ) zAX$8)rca-3qFnNNCROAY+Gsxj?KSZQUatUgkQAnzozo|8fEBuHzCmXoz@s{^>5jU1 zPR7OpVrMJA%ASnCAJMcE^}Kvp!g@?45NyFc5}C#8j;`s~ar9EUKH|?y^kz9=-`1^h zdN=UqA)x{bLb-n3JGD?TPRHW);jJ3ga<6^-tMl-7i&e~sYK{UIB75HvI_7((wS*s( zn?9ZK&(c_9YnsmAInc~XewbVE>&`w+P4AU&y6X4WO$z)xrE3J{$f@5O3dL-+uL^fe zhkh#aKvhKuB;Rs7F0h}>LX?d;d?e1&ccF6XW=LEqMjh_4n!U})k{Y>>v66xDsGhZm zX+ATTg61ou?7KR~F;ocOBHVb{%d1+*Mtq2HlpbpEwu$@rA;uAVJG4D1?QBs%2R8@;Yq=#dm4 zzuus;_~Oo^C2Qgh_Y)gAyQA>NsB5flnTKZKxgKXa@BWUL>k{C2StznnE}o(nWEx*- zD!SVB3Wc{*@V)y2zUR)C8Y2i+w4h2ff3&k33wwpMdY z6~6t4Gz45h58UOW&FJxqXP&nF%&EM0zn1UGN6(FTUg>+QS~l74@B0@P;Os%H z>(jJ>_a=s^Wp4;@>86_d;@(B#iUcF4 zs;miQszGsw1-qN{n4Nh2HLco6sA$?tHSU%2`8HH9mrNzT}`{e0DI^`?JJnyL9ZF7Xla5KWlGR(p1v1^JaV)X0(9;FbYI% zFo!nNB16&7_iM2IFu>a$zrx*%VL%LG+b98+M?F+(xBu{LT{N+Ing_63CK&Pk&s3$q z(LaT3g=-mRW*?}nSFTF2dH{e#k}VhQFvG|bQS%Fha(6V@OL}Q#dXK8VlY8FQMIplw zz(8m^&2zyex#>K)qquI`TEp{WbVrzzkY$F9^S8t*vQVR8O@>uq9CF1r^-MW>jgN$H zp+uI%^9C>H>6_VPjHF%{26!w)1(9HEk|vuJo0Cze*qTna%Hl4U!4=!d*0aUDL`zdc z?n+|IYycKt5W)11Eoj#=0cN&O926w;1ZbIsZ@Edax$^07&ZSbErlSgZkorA_CSJk! zv4n)`BSw=ZZalpTK*s8su_nI8hhThd*m*sXX@yKEZ5>Ck3PxJoH2d~)fWxu$`gd}I zp>F-r5ITi0j&fziCvrh*pB-a3n@LaWmXNQ>E=+l+W4|C_jAl@rR5_oDruxn6!CCC8 zl$xwSQGH4wRYT=47VJ)@*kFVkMF-$6`W1L?)8B&)cT44hvSNd*eYW-U6R$HuJ`@O~ zZ#R)X3I57WThDN-kM^s3S+#3ceiC=VWA0BzOJ&G6$muDt-;as4#Ff)*gVZB^qGhaX zV4u3>;G>^mTUWrACMPYsx=zq?c~LkEv6SlKu5#zTKEn%%>PR??3??pvC`{$nDiZ#! z7zsU7RbFaj5|-a07Re8rmnH4qwGY$9JKVGqfRR8hE#UNHL5Z}GSEloUAEHJ)k(>Iz zl8&ErwK0;=#koh~K9n)$Kn!lD$?r!zahy1zYQvZ40=9MM>QaNa#JN+CeEKIP9o3P8 zHee2y)oZmcC17YN=@E(Y&u4K_kMl!Pc&i()l_^t=fDV|;d}Mb`RX?<`1bgIl5p;Ry z9#>oM1UOho&Q@`E_>@EG z(dbvvyza3wJg^F{9@cDmFEz2fp1z|lK)g4GH3p+=h%Lv0TD9INl)7&-LltPMcn6xe zA{-A9V_AsWfA`Kn`n|#Xe|Bf8Vuf;1cdU&cM}GSuN8-XJDl^V3aiKC<=p;fp{fnjs z3beZhDBNoDP9L@c4SX)#qLT3VzKoDHi*C(+#&m^HfH&h-yuylZI2hGxkRH;kMe&t? zfZ`zwTm(KFf70PIb1D1e_edbn1EE&Ha0Xw0N+;m_^t&}*7E7AV-S}K_CE27qoLuI!b+ZteA8jhPM~ok?>OC(C754)T<1{! zFDestUl>EJrB_A^Ep^-pHPSJhP|?W0wb2^)`EJ=F4}JKh2mTGKt;{By+|wn-$v5Ac zA03#IoUhVMry0;UJSoykJsvSM3T$|FzMxBT z^g4%&0>kwy86Q2|v`1np@2qhvDnj{Zp5Iv`EuVhu9y`t;;HrMnk*zoESTX2JP(OPx zKayKW@p3vcSLO{F7=U0hKHtpYa&|-MB$y;+*mxIPn0S}U-&e!HvY~`i_%`DZQ=iH$ z8ae*U+;UZK8SR4Uy%}ro6anz(RP+E>m_afb7@$FSqqQ=w)_u6TZ!Lgo1fcH6HS+h{ zpL7qrmr3L6-lr}(wWPbobfsUVg&64ROU0HN1?Jlh!%I8b70aiexZ5+8E5Ex!14+p) z#_yKNz&vsWqJVc)K!qC~m`f@dAsh5pwle$>z+<|fi>|x}~aE88%k}*xmtXHeM zHtUYOtH142cuB9S{^zli<>>qFvIV-FW`&KXId&|-u-@ki;Rgio%^8lCb0Z{$?Zuyr zFEhEKHYYiM^0MYF+SCZ&Rnbk8X*Y#(t)g3z7b~CNP@Oz5Nzb~uI(evBWufSNllJg= zcxF@|%n+_zEL+6Ig_=oWDdHPoMr0D$=Q70{vn%eRG3s?&B*XTHd+Ko98lgc*k^Rf} z-E8+4CX$A8PYUcrBT_za(Y`^{QPy;XBa8AQ*73(ER;USIDBrBvzU9jkTdePo5MLDO zJC$=R_$*pE_0-l2bloHKNNN0spl}9S!uQ#mpYHk1tJu-m4oY5Pm)&4_S2o>5-N`1V zf%aCI;ZoxqeTmK*<;=7&s(jJF6LdPXo|en_3MF9-?sKBIe~L6u4%~>L)U;j2>4JV! zE2K^T?o44Y@d$1`IwCIufo{7qCnhUZKNYjQHUY-YSp>!I6%D#$1ah=8NbAx$#1)7X zIclf@8Y#^*_9=9}zkg>L%zwUn5Slbc_i^v0JdVO`mgJ(BcE8}PB4{l22NP63gM`)B zVaN0XyKQeBMp&{ovKd^6!Z;iG`UU>S#W3xcE zqx|P~S-fR_m2dK6F$=*et+obEa3s6r>7&1o#19{db5ZFR2-p5jUV_XSIMP1d--B2* zqjuMaMR%XP;`Hx^)H>qiwE&H-KUk-fdxa{1x`~zwpGdt3(Es_0}QouHS6O@H{CWwmt${U6NWUR}&GO zGObR?`A6az3TGp+Z-2f>YI&t+@EBxbKZjZqjQgrQP@ZM>Ce61^tvX z0Urm`fPE6V8?Fxy0RN)~qp0K$-*^bowE&1@tNc-8R7fxwZKWaZdxx0u+5NlUf343z zTuNrEzh5Hbuf=SCv2*x4CRnE_CQ6gmNz}^m@rSIrY=YU>Fe@!bw(urKUoI7ewleaf#5E%0ql7>~M`39&7fM!IN0*7N32WO*AlC^*_EC2c@-0~czoprjGB%tt3 z^1Btiezb&k?Wc5f#nyYBC$x-c))a|8&5$@5PmE>G+oimk!?;IfJS) z(8&yNbiSR0t+oW+fr6nof1E>r#`vdQMMsEN1qfmeoNm^>r%o;Z=3p4OeRB60ceUE0 z{(XuEXkuh*Sga5E6C&ta(`bkF7h#WTIeNh3A)&(8`D?_CW4v%!Li0yX*z}ANoG>bN zb8lw0!wD~+ub)nM_VxA`3Jp^V62?NvS6!5u#d3Db)U=Q<5g}HUSju+~{HrMHVgv)Z zknNAb81p1hUNVhs-?YE*8_qcwJBqSk=}L-m6)WJgM42MNlC*F zoEqA9J`5ruC8uKGQzQQHi2Q;_Hx(r4RdsLgf6vzEL)e(#X7?qj!(&7BL@kP*b@B&- z5-G=uxK7|z4-69p`sAsm^VmKSmDTX|CIC%|YIvRp9q(M)?)e zF#a3;KB@32wJO7)(PK#42L9cb`0H&V_#WKM)`C147EN}~u=_!{5#NLN1)_Apy%Z4T z)<sAD?0Hsi?WF=a)qbbl^EL!rT8rKL(HSB5kyuag z$P#UA2o9wm4Q8^-U|e2kV`(57h;GP6QH&7~SuGpTLFThAr_f%qQ!$)nJ6mJK4<)-V z=z8x_0NZd z{cl(Zeq{;LFad+GNox2oYN~*0i4=blpU?0d-W?bQf z-e4crL|D1!CdEUehS4tZ#LK_P$^gA_eNO)8)0};FnIyLMMhtQ%hi2U>SeX7ata&K#j#M^_gJpLxIZ3Xr71(E3SW6Dqk9u+LJ zU|poNuwB<;KM*T>$h`xBG2q_^f!sZJXma2=%bldxcAum>n;%~@9)A#ljVHs7NU#q2 z8(Ri^-v%=lGJIq3*x+kBIG0Hqwv~dKD;Y>Xy)WbOs*EW7P^FY(Te4Z{O$66Uezx6M zH8TceW@3MYe z@f};ay#jQW8CHd9BFfN4GcVqBdm$V*j#r%L;8h-d(Ce5T%XCg_(jk@=3R9RHXd z-+AU{6MEJ<*i)%=oaO&b~F(ttEqTO4V)5n)svfczK0kT&DedG9M7u8*pvLt*=_xU>m>^ zkQNuZKo?Q-_iqersyIG2Z|2(@%!QzO7oSrzf%}pdD;vBKeL#G0tk-V@G37t~G}69n zEC*fb-l^;xjR~1@>FV!i60IJSFm2LS@%?&p;Nu&8LcOegM>_ZWw>K?3O4e4!?h9qk z`Ee1vC)dZ`l!Wk3Sxfq5Y~|=?GCL7QI_>-4y&A&2XlwYmZSfXOP8G9{gru%ZGP?O6 z-X=2nj0n-H7S^sj^ZmnAF~ge4E9eC!BvG?cCb#J1lsGvYFoQntqUcibkTeX;frx4t z@%It6tZPQ})F!B|G*wKGonM)KA2M9^$h)IPQXl^nz0B+I zw2Za`kMP@=lXc4AChV+vn5Iv~ht82L^~j|y%6v{@nig`hw%aO0&X2Ww1el@@*9>QTJbhy-6W^Mw6!7&X?h;qv3-zE4GEA%=7rv~zH#=U1wIC30 z^hEr=Xw1eyNeBm+A!OO|eyoY}nCD>C2#-*vr={Qh#{s!7g3&Zu^sGoI#YBbz;_7CMPu@r4>p z_(m^5u~IQNsb(EFvZDk>7ChmC+G;B{`(*)1Pn6HDCCYL$ws3pa5~Dkd7CnE#<~;Wxqe;X0yHh$?Ic1 zr646#@{K?jiZ>dHZ^KV9#YNi>$KrhC1 z2RKgb5$+@3U|QE(oh! zAf7XRLB$P&C{U48!KD~z7#kax8%QacxmoR*B^g?~L!@+Ax}L%)bpe z`d%28-C3#fTHBsoM*gi0<)L0&SG{>KuRmd_Xrxvm7F&j`-g#3Kh^bQDS(`Af!ubr# zqvn`&=4x!CNa~Vm<^+~_ZSZy{W!Ed*rk7f3WUs+E4-7|T*#flBwUQ!*1Kz;Rt%SI4BDCazSIF9 z?|{ajHO)i7VVv%&xuArwcr#a2NoEsEmho6TkK%F(8-Yf;!;+{ly@{;fu(N`&*|Fe~3A~>uF|tO0ggOOWVMo9EAPW zrkCUp(<0@{BP|-Jc0PA}tUi*Exw01GFaC9;ke*+qop0DxB`Dt+a-;L{H0a8I+JhK*kcp4odmt_Lhx(ULZh2( zmdr@SHIeT=*)xR>I#3}vc-{&Ph+2r-5rXL=b>lbV6pha$v(DOkX5kjk#*j4Er zA$`U1&}Ae74!|Jfc8Wx^CYwzvVY}T!Nog40!EcYSut2($Fj!+}rsrbrGYK}frAYTs zLpxYm)%$ufeHFO(b6!o6wUg~d*VksYon{r~7jYwaEo&Pzn}QXKPifz97h{^LQ;D;? z`-0y&mKJL_$P@TND)E*b$3t6;Jnkpe`XK!~9MhU_-)9G5tv^EVsD3hf%zrJg9pKOzuSqUjKa9c0sNa;U^}gmYvoe?c2E zNKq0Nms^*Wy7FOT;ZVhoyJ=&}LLtv_owKwr9OB3D4FOJ?tT$S%GcsJZlxE8Ppv7pL zotxV`gS0C*`Viiosv?&y(AMa+t$_@`rsN(eso>_-WCe#CJ0VijSd7h%C6|9)$Pn7{ zw?eAbw*k#DKemlptO_JTb|&N|M#*sR%6)znS73H1?XYiBqyR`g8O)!$X?o>4w0K{L zt@)ug?}!!V9CF*a`o~(q?2b39tk>Ss z|0W3Whb*04{x%^M(b^-*;YQ+cv|S8Bmuf=}0Vr826wgUuL4mujYO-1Tj31X43RR*f z879<4c(r*E2D#6+(yYp!%-0J7qnHw>AZ; zd>j9>z_cZj@Y8q*xi|m^xRI6rYT*k?GcQn>w)(CovO#$bA-WE67k=PGZI^kiG#VZsV1 zyN}!R5_~KJ)=GykHl7OwE1q_t1>Ml-Gfjggi?|v2D@A?`Qm%BF*^!%p zei?n8Rc|>i8$!Q#1n{h-DHm@X0Dczm>vHpC0@q9Z6>Klnx7uut^*U$wEe(`(&Ki$& zY1hiDEdO9a4`^M73Q^h+Z_pQ#fG?gq+p|?Z+B0k-sz^h<-zR+XI%rlqoSUi6et{myY=6~T3bBr8S&CIR`j*ZNY{>_lDu z2dAC&&apsMIqwLxW4yY``kYNO7_Hr7Aua&*p2B|9CwQgrWFzTv2~YY(R5;`nhdkql z{N~-q(?JukF>1ARyR#-D8C;tQnIW80ivX-H_c1H)U%9GmL*liK9<$tk7m(oZI}Il% zDga@UI`ZxM>gQdgVJSmTOs$x5f_6lToR_{0Jsxl?*9#gSF^J{GZ#XUCyd~N~hXFD1 z0h>`QOLz?7Sjf_BW($=^^^(@o9b*+11LaaVm9<|I6KFTs>oX+;I>vylZ&f>B=1j9h z2;$QAVhr+)bg)G5Cl#+T>Xv5UXu4;t=hrOU-PjOP9S~C5AbOP5xOuO(B?4ExGFBs` zJxO0#o-X8jcyNAaK7N6|BL*zYEA0gRK=i60A=sQY?4z-seGgs!GAg{9K6JEZDK2}Y zC&wT2#ftT~5@sD01wg)9zVm%3Rn^+nCxmI^kgvC?!SO@*JCsA+*X_fqwrpO(T0iDn zElU-q?7Sbo2KT7cyQ2>^z2ZOK9l+j(@}7a?!BfEEd_N|9W)BeoH90JP`{o6l*?V=b zS`zFP9Xke6DXG^RAzQZ1u^eQF!F>x5R|889>|~C<$|>1=S znz|`U@~Nq*d6`We9UW$?-DAmeS57NcT|K9prXToLyX^!E~Ghxt-tN6+Jz{&CR_ukq`}{cNGr){?r@9bjE&IZ|o_^bvta1?ba2&=0GuBja5ec95#OQ36TkPD-{!0pxeqd+X+?rttK z_871)_e$K`{-sfDcij-m$u}qWl2+?A%oNjy0aMVxNix#ir;u+kGC=P{_o^PCU_l<1 zn8pXiJ5;!pQ8zFdp`bsQDgln<(VgoGpJ8yuB%-DtGKlRqh=es)auBG@s zy*+j)96^lBqTr&0!fkQ3J2Aamw!Bs*`uu3MMlB@wHcpN^dv|Q1-_J>d2sN27qQv zOYG|TTvQlji;pcOKKCD+z@fM6BxJv39^YG$QX{|*vvWH|2`MU~8$W-aKOk=~-cqLJ z?QN`Q&j!7@-?>{0%Q_AcgMT0Rp9k;zU5SJ~M*UGMU?w`{N5OMBmsU~YjrDRAhL9&S zLG08?_$}FG067~RkNe#IlQCjAe#iZe)a+Dy-}?GNIJwRFRvxOjVG`(*Z*Kg}R%@oI zT~ALc#L`7?=>LR7W|K7)wrF=m0KYBnzumuf~Z#N_<-v}cjRT>KT3vJtgo z5GYz(pK9Kl^bY5Nvj<&;tI%kDBo8BKeZS`sJnK@_;$B7fiA%!F(>`dLA9)X8Dw_kQ zwqL%K0UC2$L>j8N`l;CLeUQUdo4goaSwTl#B!`}!-gks0QRlF;09BD~$8q3a0my!l zU0u;|oda=qudaAOj3K$jK}j4VLf3)w*+fp#2~XOVia=&V?+zd!;8r2W5Jf!biLZ6o=^yEP_tmT z&YGdgzc4k4O5(RdvLfoPETFsU&j7u(bAiqQTCAnyx$nX@n2Fpl{Z;yN zGOh7EcKF4GB9a=y+@qgTe#1`!aBts=dG#K~O`_-`(KBUb6+fC$np3H#q+XVuvaT4Q zeO6f+Am^jU3tI|PU@6`&=lv0ulT-cg9YYEza-sljNCEK%ZojJ7{yd9|xdzHiQqrMw z9*tv8iH*xYMR3(9yo^QDLY1qkGhJ(9!97}u9Ty+p`~whA$aHPj*Aq&lVV&aU9Ntq_ z8IepDms7_V&#ZIG{Ag59gIEBIX8lj2NA};;icn^n*_)iI`$(*qYg^oe7E2>**;e6RXF3-9Uug^{fd9U2SwQt-# z0wq&m#5cxms(A6Zufe|2?Xm;8BXo{Ako5!PS9A)BU?9;iR_3oyaCpsm#o*NsP+2`4 zKh=Tv=7G4RU!I~@xkOdjm%H0&a{SL3 z&hZqd#OBnO_iB8ROlhv~7A}9}5e{md_iHjXkoYD21+;cImvxRDDQ=-;v-!RcBKWRH zc%f_Pu>nWDfZM8z1i+A#5;xc4rM3fO`Gl=cMdMhDmdP5@SbEjvtCoTIx0_}I{ry$5 z?L1`Zpr|5|j>Y9D+x4{l`mUD?dqeD3fY9-~e(*{9^G;%*U8&=@y@B{6pL2!?yYqbu zlo5m3_fl$b1^$soppC!8D_Jb?4Mx4d-$)lJ^Wr@n)_CUgrfkcZ(9oa=bZ4s6DQxJb zb+CTdYi3ZjUXKhgZF(foDr2_Z(>bJs?YD11e12{jIyFS!e9K~C&^EA7P9_zU2C8i> z&xX|%0zZ$d=UcY-pFWAL1`V;o%=Pfw+i!b6Vh0c|P_gF+o|`^^g(1SuFhXrSQ-N5D zB<(<4Khr|7F=SKLxlq(K7arN~Ui~wFV_=AW_0Ztzs|0>UDUT)T^Hsdu=`6ihv2DE= z2Z=dx3t`Crlfw$YY&gAdbrM>1Ksez;xB6ZL_YVd{y4iKmbz)XZcJh((!8$%ZKFwoJ zTbUOt#<88P227yr(lXvNfVtmc2Ilj>ozC}|nYho`#XQ~;9~(@#Mjua>?=CN*8CFNd z4Bj$4;brUIR{<5_WZK=goMd_(xc4LWBgD511c(hbajSzP6{{aAHioOlunxfu26*!Y zxobD7Z_Lh*+2eRQN`wlOhukD*&SuDhdz*koXYDy^boiZc!g!^HJBNjP(K+2zxupL%vH}dNQepBtkze4As}Lh?q82w@$Vc zvxuzBM#rB9BcBoJitC+SeU*+G>&HKU87NRVBb;TwC1il!>qP@7q9hB^!Isk%x>&x~ zJ(X-EMtHL4>7kJAIh)3HkE&~RK|&pUr)qs0A8sNdj9S7J7vpJx^PK>TVNcot<@bJI z#_XoOdwIYx>ri;j7*&2PHqn3dN6RuVmM4p>n|U=z%qn(5F$8) z*Y8-MYf?cBt@zIQkS%N9;*lSb3!GwNE(R>3 zweIiNKtpvtZiQFXFIvwYjKzr?Mmx=OtwymSC~;9}0v>!dDCb@cZ<%scsKU+b#0%xS z%RB*&b=^lMAOiv3FI)C9I-pO*Zy8vSejU2^BX$r<14;J-G9VPXX&it|%v|*_X=Nz@ zubbyyZ3qWQl~3s)-?i&Mo;i($NAko9Wd*H7Gez4oPzgy^wf zPUuW=Iq$7*|DPh(%rym_q>+(4s|MeHtREMEjb@>o@`xthMV? zMs^*Yq1pS94$)*+i9&K=qgO&##DJSMa;um$tR@gWJe(Ohy%0G1P~}S9+{qf#dBRw- z4B|q_%@K;wZ5LF1^?_I)P}Y{4dyq7BrT#jorM!A8cFLu>Th0?zOH#L{yiZxZX;;Snee$a4?j1O~B9gl*GLPD49;oe@Rini0Du6dFV*$hRND*g~<+XmoH?E z#0@A*`1V~JQ29|4Uia?Z$riv9Nl0?JUXr>)-(EJV<1pW*$m{YAN7c5HpRhn&xyj1_ zrUqlNx=tiC{|i8S7eu;nJ>!RToAqat|&jyMG@B&Ic~ z1THWGXNw0oTPc)eC6XgM5(Cnqs9D;SwL@j^-c1ToITozlnOmsF)th;?W(1`CG8Sq% zZ&PgnT%Y%2?|^$PE~wANTT_6cp}16CVWCUz)c%>A{?m=9nd2yQ}XJ_Un=E~Yb#)afZgn=N6@;*QxbOkd3pw}ujttq zDEkhMzE2IsyLpX7#7{Vs4F)Cne;TfuK=15qx7r~B19w*NHnpa%CtbF}dZxBc`~H^Z zT188L*cCq9aNUOJ%+&WrT_%QhK&YNZ7{29+TdFI^fu+(F()z<30Yyf|x@)O!30eJN#3b(#Eft#%Jw$i+J_Lf8vN%|rlS3Qa zhRz=k)LkIKEtKllxd8=fd1JG*2!wJA#S%kKrdWHcb|#E%3N`XYI1p{==Q2q6l0Af|@kDdm4ZJO%HeMg$4L%X7 zRg?tQFvq~|Xz03ye2#&ru*JB95J@WgRvR7Van^cht&GH9co%DkH9D?oL3mWT1on&bR}*vDiUm zIqav3#Gr85pk2a(0#E4JtBSE1&TIfv7L4O%qns=E(@mEQk=)694TlGx0GoaC5#I~I zgc+`fpU7rk9>M9CzvU)emxzRCf|P!ZT)%9@)Dr*d*H$F2d9vz08CqutR9V@(iSSa; z9ugC>KjVY1|4Mnuzfj0ui77c+7>&U z*x4s%z5L9oswL4X6ga7xSpU&{^u#Bol`@-3%t0!ct4aBm(=1}M^lU-ZW(UnVRwTrVAXNH=6}cxAz?t@o44~wxvDa0CnYJEgPU#D% zDPC9AwY{Z@tS(~dxg59^(V3UIMhNwXq(XNPMWE#=YDEETXYLKeD33QX#l@RTJ5Bt| zfTn>$zmt%mFT4Io#9p&tvHvcs3G1}tYF*MBZyj4KMH>YhULf(UnYovqd*!C!(xV!` zU*hE;?Re=J?P2R1o7>ZKmc~U3HNGQKWg)|p!Jkb6gIPt}^abV=Dhpmenp^tdH-!75 z;D*{32yAprYvb^Q3fZ$n_d(?&j<0)zljcR@Oki&4HU?Gk%=a_@3g2Rdca@VAI@)M& zsU(XCIq5M5%Jz47DKmOVWi$*w_P8_iv5gP}GOU(rwC=Ui3!$SA&4z}(zgl5V^quqT z9GQ_X8t52U3;b$#Nd|Xt@;!xLBN@Fa2RC=d?3=E+r7~~d-kTX=))?Sqc3g?94$27o z5%uKta?2)GMYzC^%skh|jxG%(-&zah;A3q4|bPQXEIi}aW zc0LmhN;I6DIxB7>yU{qKrltp1vC|XL1RuS32%ib7VYi(5F^U1@@+#c=FyX9amF;|X za)~xM@8YsDS}~4<(Bww~Xmb#h`I&xL?nPk16nkU3n}OHdEiC=TA}O$6nQICNGkPZe z9$1srSYEqU+G}5)sr@A1Bb80GLP}-zp+O_qg*py!I0#X|A_zQdZj{Fc2788JS_{=9>|rO)6J&s2$M& zr|-_4AbK@<&13BL5EOLy5PJ%&r^lQ@M6rO2ida#x+R3Rj>C{-_AOX4ZJhu2-@Lzv< z0JPNs`T0M}gy6eoj_>ka{ zDj%1@m6pB`P<RJ`L;^s`xb3z+|lUQ+pl_e@ES2 zxN9P&8?*WLPh1B(fSLd|nGNnhi>Nw*Hco>^A4s|o>ry>%>(RBpkNEqC{{~%Zv4yfN z@Ls`@ok>%Buv_!B949U7AUp5YMLc6&i^FcY??m)uT&7f1j_T* zqmAYlY|TyU!z|?z7MF|SxP|oMOxqcI}UQy{JUY1>x7B@++JRoW`qlg2LSWNt)63n-nj4kZ`9KMQ@i>PkpL$3KUGlJ zMfy(_^lyFge}Adi%p3CjnTMUWEO~i&>Sg6C;pTXkx7X(WSFP3y54W0tj@D~!BwA#{ zZ178LnE2jeJshU=F#h(m%l{@P@dsN^Vj9D`n+viW>S3Jc&WKQa&v?PY<-B(c_qPki z9u$zvn70&cju>)vfIT`cc;_ECf@q_|Nq%<Or3gk5#B9V;)xm1Em z)DeDj4;h}|gYRuuU1gGAOr3fzST?xpe&_Jk8Pdz8-g`)PL?IXG7Rl(APalbow|YUZ zbDMdfknLezac<`OZcWf(_fqa8T{0L0+O5$~r-YC~x>ATt7a_h+XmxxzI4vlqlYCJZ zwhDwPz4(R%DshHCqLeZY@WIG8vqLpbcrV{?JcIq5{Z##PFa0BO+x~e%FSy5`>Q36? z>3CFd>X;bv`2B52E6o~cT?5;VZLmt2dCL2uD_0F8+bnf)X@^WQ*78zf@A<&fntuhH|0Oyi&QPaI2Rc7 zUPQ~8eX^-BrR*EkU3cTHV?HPS!B&6$w=U`2Rljnl`<3CitF zSb%r(UotBJs%!5xGgKELCay5Bg42884m8I7HN)xZ8wAjYKnMIZXt}d{boo>VJg89} ze18FXeTh;8=ZriB$)u~H0yoOXIHeF8S>3FjH6wu|5~ zZ)pR3PI=5}!tvefKsPBNoM`^>m;ch62U=Cpm*!Z`{A=U!A>{|3gMWHT0TbGZ*0^a| zvi+56y@|fO`>z181gU?GfVr^o?&kkdn$suY|0oSo`Tvj7{QqoeOKtxWhQ2BVcqVfVD+3dY2OlTKuRaPA(|#6AoZxuP++9N=6+qpxgFq-oZ3?Q?#E~c%d0B94_LBs%C=w|HHEMoi z6mSLvU6KPY)x`6EeEI_c?dv%4Sb75oQa(3+I4ML5lj8+ln|7UR;S+n7tr5(8q#d#z z(cV6e%L%*$#Z8n%4YpOVzPIC6MYnHwBo~4fiBZIEvi6H7%lRuw`%_;lP7Ww?Yd-Fo zRUGCv!UI9&fHgibkqZpF*_2Q?C@M2YZgP#W{`MIjBcN4-6Xg zxJp36U)BRx7EfKZ|L-v6*C8pcuy8|&HJ zAl?6YIGI8|F`Dcc6ji>INu zJ1Q;JOn8mET~^8QF_6^6vIzll=#c;-eAoD3%V@oHfSA~=VyAP^vZZZmQ&Y(y4oqce z4rp3`w^HauqLE{|T)r7GXj-HmmlsbCrX>{~Iopm}D303g@_~wJ_bM31vvSvBBboo! zHQwJ+5l-#<7VwYGo?sFkhcjZ(mK1MI;MblEezhQoWexJK>+Dp~L5dyg(%zbMeRI4b zfkJ0Z!+yfV?Y}Y4eU;2Xr$^aed-8+DK1R{9fLzMf-b7aOQJMM6)73MOHu?n)fk64J zkojph!qkm+QAcygp%vt%ukp_RR{CagJlQD)V-<-X$H2fd zKyPdZZ9$(udIZ;P1e!A2h>Mw&3|;X-Ww3twpJid{k`CXoe`Aqhw)EM3s-bq7&_528 z4pdaaa4xvO$BGJ1uK>h!L%@;gb-3)DHrhSQ+PWp*x}?^XhXtNDWf zX|e8ZHaD5ZQCx-gfV!=>UQ1A&^#J2%+U!yehQm$GP5%v!A>H^vy=0Q9P9f|s_$F1R z<+Hzw>X26G+8ivYSKjv)&}Ecm&zGap*aEl8&fs zFFa1XXZXj|-*jEhuMA8dnF^(#-E4sCXXj?N<#x3`M-qF(R8-^G1z?O=C<+hf*^Q6N zG$R9!n?e42z63$*#LnU0trNF}V-QYyVkT@>+8a*O<2J~W0=yMpdzF;Y3$fef>|Io` z?IpyL4JPB1?{zD}$**07uJ=k_dmg@Id>;@O`}&54_I(;4wog?ZL^90GeGH=13DbwU zMM-?>PqqM%yDfB7w1<1wnF|Zp>+^Ra-~*$hykwNX2z(ZMdDfx>LNYJ{e-V=7HMDYe z0@bC!+7L{;etTPUmAH(fP6K==GoasYt?k-!v=R7j&H| z=os8VGcjLlL==_A^C@JQ_{gX8#8uq!{ZaEDE&w^!r66uLuaor1C)`Gf9b;1?Z_w7I z{bR46V5IwY=1`M!CVei)-T?81R)nwtv@zRxm&o!F;h9$4OINVK!v7f~`Nw$Qpq27* z(!+ncfKr_(7F_3wLFyZ=znd)9?gb`$^jgO$WGE3bP9XY_1~RyVhq2y^NO53?Mm`E; zTozZjucqW#y~wxC7jbYf$hXcHF>o*dtjnh&JD-2D^F6Ajbgvfe`E@dMh)K(p9q~5E zd`E1@a3Uxv35-khp6#C{@OMLm#TO*9hlS^fAUI&;Xq-RwkIDpIvnZZ%n-EuBuzp=` z{L`S#Mexa$zDkxFK!^{qo@^{4CAA&1GC$gwGpH>bF;O27em$VRTkE^_R??&jR=8dz zu>VqhBrRz}1=U44iVo8LS&VB@-)6Sg3A;m}!FhOs?g5U5c zo?Y-Q)C`2vbgP{b8f0QUYqxI2xr`PH_wNDqWAmc#`{wXvM9ah)@Ai^>AZ<_uY^SP@ z$D4~8IqCvxIlC*WX8*aFuFVG?Z@odkUo)CbxJ$|3) zqk?g~!_|%WjaH6hFDspol1iurP;!bfEvRJaC->|5Oq&9n)G`~XxPGI$;36a%SkSjKceBBSkB0haMm_<7 zz~olNOpr)iGp>OcOI}#shYd?<1?{MkZz#^<8iykx%k3vI)M6L(5$GbegNzRMUw5QB z7komL62QtP$grB3P8&!;EhPZ7uXz}Co=LrUD!IlEDuRMv`RW1sdgU%cY`JtZf^*Xo zk;bVE168D}=r;0Ek&uu`w6_P>DhZJzw(2;Rl(m?E1|Ys=Xx`ag!bHu2O$lhUAEnO` zryZ~BQU=~$!vfUU%BAAYZumzC#z14$;rpf3CGw4qI*MQL3|y^DucNVfNAXjG?y5jvEOb z4c{?VNHq_B7>KItyeEOsSu@@KJB@xuBTfM!*Sk1iP~)DvGfb@&pqr_5gpDY14x-ZO zqDD64XI=0SHF9#*RLq5459h<~xldQhsy=~ea%O<@G#>fCdph`?rx}94MwvsG9McRM?fl{sGgAg2j(_(5dybCAaas0LVzx43Ip&>$yJC0B2 zG%N2hMB8e35J>gMYA z*7?iSFBCX*w(XA&}n0=HH{T;2Xa(1DmK{@eJHb>JHlXbU^H?2W)}`( zUxyh{N;KJ`x%Z}gG3LUjgtl#VnGVR$Fn0A!8$?oX?yJ9gkHCXty3oQlP#$K&^cpoQ zNr@~iul{=>Tfh?R>LAg|!B(n8SDo`0Nyp{)>p>5zpwDhqGeYeY9H+u3JQOQ7@YZJ- zp*GKk)ilY$sZ%>lOsdvQ^-r@n3p{{paoxVe*2i~c{*c+@WNz-6Z`{MY0zZD?HE3J7 zc2`{Tq^$vrZMAeMs`&Rc{01b16bqvBGA(j~nrt4;)k#=sTrXQG6cdl)<;p7G2rJ$$ z9GMz-ApPvH=1dlyzEU*7F}s|jzWl8R;QL*5?FGL?i>bDvdJ^!UKM=oyS+99|(5@ZZ zV*Wcuec^~Hj!60Xdh)GX3LzE}b<-D--0ZXJZ+5=smsCCl!wZXNNvW$E@af$Rf-)Xh^PaN= zvYflFpe?SJGB0UbIPBuWP<16~-t4~*#?vp=TFwFrAYkH|;G>7nC08}Wz@cB_avkdy0WZlw+}lXDzF`kk>UJnzr9M07^9XWLhjtZd6^j~J#T4p))QN3c z0L~{z;h?TP{7^**h?yu?OsL_E>qVORt9Sp1SwFA%XMOl4*#rPsBt1zlGM8%gV}{~C zjf{*SN2D$eE3gL+fINYUH-RUj zduUgu#u)lnt^oO$S~bTJyO0m|_^yt!F|b2}jX2S_!C~p00F_mFRo=b%$%xnCnfh1= z_6=>8Gu`9JQ&N5DdgEi4UEX}AwFL#RruBX2)?wTWPPcQ`8lG0`F5UZ=8>;3;Rlf8) z3d0xy%}CcqR&kVpU6q8?>tF@f=7}jz`@qKD>;(9U#Q&8hIL3g1=-<}zzcrvpM)JlU z@?^U5V-_!M2~7CN?MN%rQc5p+M~~?Rf0N5~iFqJ;1Eo%s@!o?9QR&j| z?_bDBP*SyHZLebqo4AN++T*-6d2s3T=c@}ZhHs5`kc?k$x<7Q^zlk#ZXrp6^lC{XO zqwQOVUB{>g1oaY`3;6LN$OUho+36{`0-38&9}}{j94?#fegq$Q{#;bzHoLuXvoisD}jBy$m* zzr5#9niqW)+zPoCE3EAe~I$CU^NvA-*@Fb@A6@6 zm##F_P7fWICZGM<*1ErCfRx5v8Z8b1{RnLE4(yx-)aqViKff@VD%f)rt*=7QcF+40 zO0+GsxiR!jQBN9(=T0u<>ru#MYqLlH-qq`u@KEyhnWy%^wd$5noERbHNnT1T@L)g7 z7tliw)M_%fujgum_@%*{5$GGD;^F~?STXj(Mm#8`&gx~A=w$oMIJ2Yg{=J)I*SS&k zH+AX>r62^;AqR?(5bz1sqTwha5Dc!bZ+y=Ai=Y10UTAYKZsNq-K-gp<&!DYTZy27Q z_Ys809|7i&T(NuxqlJk3PQbY{+g!l?Of0(JXQb@2gYtHY=4 zypzL{k>bYuwek{R3q#Cdxe?aEX(_69!sQNe&J3J5>2thz+7xg(u!Ug?! zo3p4P`D6rewnr#20`~t{pMOp_*;i@wR!UBA-E7JYgVFPpcnA5Qr@}y{H($9J?wg^U_iS~v1oo=;3rDs_1x>PK zbWlQqZc_mD)5)nRCkDB1+QiUDuUWy#{tZyo^RWZ3{4V)y_y_T@-%%YC+1Dd)*E~M6 zm-j@0g88EgHt5~_Ozeke>PPC4lFjP>Z$-m75&i=Ro2&T@eXIs#FdIR(uQl$5Eo(Lu zSK>*+Dg&&V$=WqywkP@>`_(&EUbp-7`aO+Qq@!TQ<8GwSC!iNh%_|U~4`?_)w}!o` ziMl&q8EdG-DtHCfZ+;mC+t-ChmTa4vHQlsJ!I1hD%(%In&1Tt7J<0* zGWTEL>+tr~r7KcCbHBN3x6<@+fib3EqOQ4**XGF4&8EBXg>lJT)Q>yaSL?9sE8w46 zHFG*S@=L7rMZKuf-A1LnCccN8x6=|0WCyC1SbiK;BD{V^Kd)aw$-CUX#Q?c4VB=){ zHrxt$5l?d*r$yB9>4r3gR60okd0B^?t(}og)lc}|C1ml*&4(RPTlchC3> zGC%az*#=L2pm=t8A1zUSf|-MfmVJwsleNz=DCBGXiuD7h+Z_B?V71muiPqseh0*GG zr3pz%qMNrmn)*#gOb1fqD&29$t)3AOg9iO(-lJlnXpdWtba*rY1LLY?9MZ%24&yr0 zm}7RybdpMw^0{7BrfIdCA-Pk!M<1TwX$TZ>=2tG9#%c;?jP5Cbd)HJx3VfX=n;pA6 zR@M<4y*gIlNj zu{Jgk3+YrMBQC$hxnpvK4GuVs?@Qv-=khuY^6)PxBMq@#L2*loFDX`_xq_}w&A?HJ zy_UmImr6e_EB&fpsDW5ARc@cIkTB$ivNY9s1m{oIm0BAg@@bggX0q>3R}`U?B#w^V za362=H$HRnT(vHTwD}M=h@oiZ+}lIIK3Sq@X-{$+jTOEZizVzyezu|_Il^xx&!$gD zz+<-&z`L&d!tLE-`71>>+n8?mDojUgpY<513=S7Eh7IM-QQ4&_sAtE|no&JIyqIBV zRomDFZfcUtZkTyBuHab%g{)#i0_RE#(r1#wH;ReZ-hK3#F3@O4e}@aPCmD}XpErId zd-ct7i1da@%j_efyio5IEWJKkqrNX_MN32ChYDjjDGAx~Q}HBcbz|@!L2c7m1R@n} z*&G)}i^96kT!0fZ+{XasZ1k8o;$4+vnE&}*Gf}jF%CyGLcrUy=%almd&0x_Uc)Ys$ z7pKMV;xcf2xUqrn2;*hK|MUtaMl_*vIK7BYC4X?H)=ToBWO%GYNlBM(xrd13R#00A zvzSAiwDUq4S{k{Vx|dO742n$Q@|5LltMbbH*bJ=#w|tjiSmV`=53CYHMXSu)mR7h%f<|sI_`fA$Ru@jnUnSX?+r` za#VWdgL!3|tk>jFev&%Fsr6dqzj@K~k-qGgWV>J0)ZBTii>f=>+#3 zqO+It8VRVd_@-!waa$8L!!KZ%L=)QHlXD+xS1)ZDxZGkoP=461WV9nL8|=DO^dhj= zXfz?zaTj*2a7W&^tZa@o_U?P=;^A9j7PY-n*AYI!ACfQoX*k zzKx|=p<%w6mcYLLU!X*ww{8&q+{7f}!PKExz*lfx8>i<0r-HR}SDbKyNqSfq3^x8sK*jZ{1x;%k0qQi$9=90bYJPtH1^a1(`9`n^A=j8i1K`(;bfgBDQpup?d_6t%O2`8U?uayuUwBrN!$ud%&UCC>V8+C4v&ulCnv8#+#67b9@ig zKzEsLFpGfuDztkY5$xxB29e5g<$Fh#4O?;?tW9OAa(w2V9EQ(`jW>^=3hJ22&2Y+l z7pwHqSc0aUp;AS=Hpa>$QTXnPEhs#`TY+JaKA?XQ&S4RXUiLk(|w+bOqoBvNH_%$1CWZuI#jnl&Ux zB`7S7@jo(5s#4T&7<*|e!wxUQ99!5bt0~r(x7_w^Xy)>iM8M+eCn_4muPFqgu{9$C@M00#4Xf?jyeUU3#aYVb^T+9A&>N|Wf4UC%o{qf zQKaGQI$@?5g0O*<_34Y-l@T{oY^P6MbUyX$P4}@~T z4&hW-&9w&5h30V*TN`T@CljdS^<*j+sEu4+o9~L>_#N;4@gaAGsNDT5<;0b&M4Rq( z*&)WTNkt_VX@4~`iu-Eq=vHnD`4_jVBqk#y?Qa7j;Z@2aPgH4If1OwYgW4I_bgb?`HBr%j#A!Z}C|`FAe}bD<39^J>B1i z2j3I0VQDjG*k>N#T?i$$D$6~+%U0~U49g| zWxs+KjR|R+rsxx_1b2AQGp?+7pbDBN7Gs}@SAI(zn*?rjmvK9cus~N0d5k$k5p}u64DivGKD^(gW60h#{eJi=mVy&ENt^BYu^ZAr)Tzw@r zDO{aKF71`WNabE@v_-K>Oq2~ouI^bH=UTt2S(n*vfJ?VWh8*hA_PCQC{M|=vAiSvG?EI7w_G99D;JvDo)sdj9;m1*g6I*l3&`t5Hum?^L91gTF4~f%dpwYb6zkOZmUq)zKvZM zKrV8n$2(#SV9VslYkgfKG>;Y+XWDL5iv={KVbx}`#&3t77k1*ib6JqikQ~RYE|Glo2Yom_S^XVV$=!EOkZ0rt?lz8cd$W*TIKB80q@b@-kJOl7a&n3`s(doe`?tz9y|{K*>jvl zjR;Qf|8XE|V2=w@b!E9JyfdSXKI%m>B{Ca2_=yr@pRl=nwdNYSX_O8D-b-|>BPvmW zy_61IWAR7GC3g)9Os_25ohvj|F;0H5yr-Wm>um&(%F6eH4>PpW$yKFqPOh}u^QVy_bPU8_1{t9s05eH#vp#On4HGRmz0lf&j(~| z{~2j}l&J@$`df%MyFUTVp8Nj-*jhzL8?Fx;xcoMOn3yI!KCZj2?rfxj81BX3H-0*7XT;aom zat1z!(ZL&?gUJ@be0sUB^xg%LZ5a?}&Fa%ZCALvg z04hJ0eADdx1TiJJRV-McJQXuw$`z12$J$gXqI;MsrFf zmD|Jk6h~rLIs_2i{G@C-RV(w#I?}NkwR4LhSJ;cX6Ge@z075F`cz75LT`OGSNmyW| zHz7@(;vOevY3xtFEdtD`2@uv#>#iUBmV3Wnrpm0;`*Js1)f}+jBqB;LNc3KmpLo6v z6&Lr+H=j@djsN<=EkjC>l-V&5c&zZmh*ut2y7&0DrH$1V(9VpOSS3x`TaA}X@L;B` zeWMAJYmzD8(MoPtC-ElMIOv-j&K=e7_oY#?R)iR;HS9_e~$In%5B&IKGpo$i>IIHm(K;NQjNQPOBQA+HMsfKr) z&Wn+C9|r~T$e`e`&#)ClojCO7LeLDa586<=%y;ZlHN*C+PiKhRrZX*PS{Di-uYc4w zvAo(+8o?KH@{wDQhO^A}9d4~sFzzg8IhnLl6OlfCxC8~W|Lmrj8)O~E@9>DK6dGo2 zA9e_cBtGw%#om8{2_aw6d^P*uq&YHe<$8-LoRrlYBt->9nuQKy6(A{52gd6r#vryy zH=UNHl>B=mrJm`V~HgBinH(VA~0{u-N*O_1Bhaokj~K3Q}H z3$h*F>RBW2mW2rsP%W2IDKa(Zd8M>nWl^ItRIZoKJCK%{8TuS&A~=G}^4U@$iOJdm zx=Z~%t^)GmjL@E$#X#EOg0#1i6dCoNBy+FL7i1_RF?svY!NjdVkvn!uU+@_z_cvz- zz9fUYIMna<8KiYCx>Kcz0xX|D^|4R7)TlykeFQK%W@?-KHyV5e^3{n}d^Y+#_9#!n zrCjzzn+L?5RoN>Bie-%pySJll6h%I5&G*YQsFx;;Wqao;z-WlJy9bI6)>I0XcnP7T@87q+~58stCm18G2mnBxp_ z5QyR_CrvfpA1NKoH8@g3dL@mADh{2KHWcbS@T`>~1f-;ETVxCKzUI%HWGE;W7Ufq4 zDu?-`_&hT=q!tqe0fU&H&?3*AUq&8C zzA(W!dp41&M1jmgFGr&arr*>47AZvwVdH<1l9Xt}EQ_vUxe|6{vzOB&9lcXlOz3k} z3Y`%di^DLmzu_&lMKH_1;)4a$777!I}eUo5dJ+0>1f7aK@>uR2ORfx);i8m)4VIThFnT5X$^AlT^sWxxxaz zy1JeJb8B!8K=lPfUB%rrlI`I_Q{bAHR%eV+V&Lj>E1_QLG`N{cC1Iw|cAA>`M1C?4(QK2ep_#>_m3uv0B2AJ?LK@xHUt}Tj7!$(h zM7u|P+IQZ2fy8K?$PmvFne5tJ4Htv94pH-M=u{G;WZapLLHIc#k?t4EI9K z+b7w{^6@^xGxdA`Q(A>Z4fl^B6DvFWZv#b$c=Qu$YPRYz)P_(x{TZUq7OyIg6JHJ> z2lvpnB^$c{wOTluq2F6>dq&T3va`?I)ZQVj*ko+D&+>3(Kk_DiJ%2;ht~Z-ecjGTp z`QF5;-X!Sa#B+BMUADetUlx+$?dUWg%QEc! zs>h%;Ahzb|TQzOkn?bKc4$^{Ye#?nGb+E74Z6DcaWqpx9rT8Da{f?hS3q?E!8H@uSgOLF2r!Z8-^QdY)|hr z&uEGTXN{RIeIFkeNBJ4!3QN%Ux{bXF1u#o@J#HUc@>x1+wIv?S$S64MTbVztPQ#JU zY{>MmAU?9HNk8`#L}ExlZjijy=#wa)QwZX7A(RMEaG|N(ozVO-gYB|d8^FDNdssqm zUB4~`$BJK_O|!+>fd;}B9y|(?U_x03fx()+5TtaXf9)k;1W9PK)0$ z@b1(pER@i2AO)|bfiJ@r?eIOlcz1rNE$|YxA);5<4W%Tr)GDE9Ire((e##&TRPe4U zpcl6UwlhLvlU4Tmm%vbwd9=dU0^?nT?#l3!zTnZ$w8fea@eg?HJ^fE4HIZz~ zXqP+ZrB2<4QBTf3igzt7KFmgc#lzsX9fZZuqmVHcNSS&AtMa|^n+E@H};q7#bP ztul|C-TMO<8LBkvbz?+TBtqF9vC1|4=5R{-SmU%)rW5A1R3(D29=t5+<4UvBr%5Fl z=T%TT()>_t{;V!zI0Wd+$caG)WM9JzL5-m zFk=Fhjr+Xg4{wX2yXf2e=r$-lDbqYT?0UPLSnsj*R7C!!h?zf!e7Q+-B? zxWJ%8azie&w9r^SPFMH`i!{2(ff$908#d|Pp5%`F3Iok$o#n;}jy~y%oieY~9r<59 zKlVvm-e2R7A$fGDlFe_1|6z4@jdSZB*P%B^InM%&?OEr3;Iy*}a`j&5QCWV5X(^&4 z!TwaXW=($V>9}-Kf=iP>v#XjDJ@5zEk>Dro%jCJ3b@(+HzABAK1O^k!L4DGe&;%{9k-Hy=Le z9!RukPpg>GWbCuakjt)dbGChOAhQO5jV%TN%iEYYjeY$tzpI0HL4IqX#LCvK+#A-!uD_|9n;WVIV1U}s z^a}fyIAIUds)KE}ob89bYwYr0lQ*8ytl>uUX{Kv1-}G}n zT6e3tjGy+MJw2$!X%}x`SYf{wpWDV4+}bsA5C{3{TyYxoLr{#5%WLs5kj~-ay-}41 zz@Pf8%JUr3M<9H4+arcvYNSb}DtpWk+hDTs6Pk=Ze_^h5l11lNbpR>cpo?B%+$AO4 zW09F#Pt1>HliWy2b+#+X} zF(zUwhCiBo-U-5+V)~IF51G$;)&pOVMp{W5`Kqx}o1i;mWulIbHv4vK9mA^*I}L4V z#pya<)8!nxUxw`Pbkb`am6UHa8)G*mG~qO~__M#_S`JI`{$$ph;;MkQcT)6y=a%c}b?KaD;u(VzNgV$Md=_9>P`~|Z4pU$1c3bhfU#=0<-6RukNxAuO}I$pGhE2a4J8dv$Y;%_5T90n7CXYw@Cr?&+|yBtk6`A zpOb?A26%Th~ z#aAMpA@1qi-nHr|>FIVOYutu~0+Q%1X_{019S2IKwo7q%Z-%SX@SvrtygR~^7J3H7dASERGKSsAWA@ELrVn zw|T$|W19Oo%(}%Z58)W*pYHEmlPKd^c{~$VXfhlV`AmnBG4+`j%pvy zFh1VW9|uYcd8+=Rmg`cW@zngvh&Y0GV08G zq0`g23j@wBJ^pU1aXQftENs2-Ow;VdLsGs#8te+BdRM=A;M2c;Mx)G(ec0|*c0{P| zB`n#&H}d$Y&+XV1g=7sQP#Nv0c)pl6-2)J4i@Ggd_wd#mwsd~zwp`Y257E+8JKmm* z#D?h*`weTmA2KE24uk?7^`!yxn}y+;UxrvP4Lzk;N4x!3O){!h z^$uQTI;D$>D@?l!KP2Y*@ic=n4d9hJ-n`N~+MZ4F$nrww&42Mdh(bGsaK|B=0 zbc&;1PxyxnwR~DaO}UL@o@~;K@LvIrGR*TZdqz<0#cA>-cdOw8n6f*HPF^zcwq_bE zYOL&erivt2ttLgz&7kbB--SMLQ#5W>_96*F`UUK%2X;y$1&=5RlP-Bu%1c ze8f<}x2kTpTd`hP=s97_Y9a5HdOwNgGiz9Shg`P|NxUDAtywbH-f*-NO3W9;Mt1O* z;g7xW#D3d3hOwEY4>N^DE4Dmu&{Hd`^5$Btx!`j=`Tld!=Gjg@p4kP)IC?*09+FIE zW;y2?Tr(QUdY}1ryL8hLkf8h$Z`m5L<~yDwxM&dCWGe# zum&g`A0~o&@`ha7ZIHjFXbRs=Vsjol@GFwB`;N`{=4K$R45Ka8q+{ux6@7=1V=A#$ z!yHc|xexF1)(|LD>#kyuHY2MWj`|3x%AxXv<_hT6x}!AL!^43Q9g!v-AATBuMT#n5 z!|9A3G-1;p&sY{RFhU9$tJz{gGTq%46dr?kZVT<5W4x#%vTjVvDVGgyy*5UFS|7)) z`N>E)oEp&b;74|VQycWa-H({-o0ytfMEOy(@wdG^Mw6P{3A;AVr?mCITFPN1JAe#u z%tYg|icqVx6yBI_pV~-OKI9MRTIeyj&&Bmzn?=u$E|irA53BTcPbjNFer2!NO3YkZ zOe>t9y%6d5x|o@7M$?1pzRlF7SBfj?V;3YNxf8wU726|_wPr3g4!dTy%wkFB1rfY5 zqI4Coz|@;KIP@UmUT-uZ-4zejrcf=+xYMwlEA5XDtpB1Y#np~To@_kbwEYx8Dtk-Sx)(6B^(`5ZFe(ZP(vGRzs~hNd1M+z3NRYk zv0WSQDtA#L>zj)_iI#SRTmnf5jT~w1d3JZt*sDuu3ds5vCk-a#0uhx@rYvOM_dy1OR8s_KKvN!py;$i~ z%+Y!zEi$lyc@<^*gFT>=5ntT=g^@S2-as1MYnv2dU=sn^w*GT=nY14%*2*3rKCSFAai4Z|;P-ytL?(!7ko;EbM}Qf4L2&od;N?@4 zuL?`Mqg)ZauE*91=~EV!8e^@(r)#mu4|`I4LOi@t`8otDh~DUf9uQoA78#>me|;VK zA{G$5O@9>r^CAMYKb5w{uEfqr+vabHn$0gB+VS@f=;-`)*Z^%A4Kw7$Yw-839v`Wb z(;@r0Z)TEM|N0zcTuRF72awUU@RL7pDZX9|_&gcvWfJbz!tsCJ!a_3C+yJk&&UL+j3lrjmH)a2? zZwBgs+@+rh5GLZd4&u|u_dl^el0ImOqz}>~MGWcWJNr$?=0{KpS^NOSdC}r|+`se^ z`JdI=#}Jk20VJQ3sgeWmRI;_z&ZAOa$3`*?a3PUJAgsC5D{K zCBF3KL^&T_#*e&r_81=XdX?yq4xIQRI=HE_eqa_9bL2gj{#IUOSHTZJp9OT*>erw7 ztT*3g5SppMMbN8SX<-8pS*6x7_IF181 z{~!41K)x{_JS5JOKi%=s#(s|~=y74n*a{bNKvTbc-lzW}J2?!TPolZb*@8>Rqc8)c zvY`?OjulGGc|8@bF@NM6@cMkhc-=9r@ud{R&_c`6)EiY$v#$7D@;ULJ!{9d0igDhK z1Bzd~+9w)_xP(NIUQpY&Glyfb=dDjv7oP&=H)cPtMtUZ z5W5jBz`GE&AUWq1f}DSBmPEQs$vLw1r9~bl+?MO;F2?;?!H>+n1JV`!?;Es7bSKHP zQd?*;Q>#oHk4}33hYO%#%I^Rjrq!g%2(Tt9{5(v-#K55N^a=@?e7XYWKHg&#twy)c zDCeD9G{KYO2tj*Kd7ip-s~`K=&aaG+qn$F+1Y;i!m6w_`UuN_gfAagWieLx-L?%-Q z4zKu;?i>L=qOPxSbgSQpc}Mi>_w_^}U?aOGRnFNl*Vli}u$ls7^BhBP@3?6q?i^i(-P#K(HRz<>@ZBmd1eRQ@rCityn-MllYy^ zR#;B-8%^xwTeXBeq33;T1}@V0c;8LHf+%LFkzcsz^EKS8nY^Vkg3-dlVtDVN`8Xx$ zMGAiJ2JL}X7X2REcShexP9aIt#0ZH`3O&_rkP1BckW^zSH3%kd=3xRPC@UQ>- zpd&w*1*BS!dp+(~U%@%&u#>$&ns=S}yXug^B1HH%`<06eT`TBD1GCDe%V~RSGa4}U z$@1MDRhe9Eu9du!O@3c@e*@7-753@2?@mHCT)>8Yi+!ne-qA(@ABuEOE{|f3&fA(d zI7mTYGXX&mu^CY~!?ueYxt+a7oow%#E;GKdm##c~>BGDK1aG0cq+(~h*T_ou#pFe5 z^#f=qpVPaYaq}t|Lr1;|BRbYNgC+y~!5He4vB>|XrFmQm$Y%>9tT2;RJtN{sQRAx?yt&}>Rt}zv(j#4xP=K3;$XXS<=@W|By%}2Wfz$quz8)0 zX^uVVSF>aDi}L9W%Foej{6X%r`p;Wty=Dp&?G1G%%I(6-N7Jjs=6A=TVl)bL$xa-r zk(XJVyYOX-Y_1Zrq?nhY*AE~+^?%3Je|!VVr}ahpE0j0!@F=hZq9{IMj>URu;-R!h z?YaZTmeS$=_zzpLG7fsvI%hX$fqQK#HeY*tv1COviMytCuUaH3F8 zeR!w-N^%@qIVq&bpH={S$_qXEz-HF}6wo8+yl(df!JQluOHe;ylah-CWqx(sHw#23 zZSw;(bs>A?7k2-8`T9H!MFF7)@-Pdc#44Y+pf`BOhnZy>3)1I;GhiAp?&M~uv-Zc9 z1P_9$M3BYWiy)AgXe{TFon9@&Of;5ieFJbfA^W)vV~z7CYNfx`$O=8@l_^ysE8+gz zIfc+%<1*X|>TJj1*l^I1_57))y-4NWqOmFVnkNZEAZ_3P{IJ?pb7sGt5p=HL&-4YC zg3NaG4SC){lXhI?jfORuvTBkI%fQ7A-F3f(TV&=uaga_`>MWuE;QCV*<`UH(FlU6v zg#T|Lky#!?RPDR+kYZTTdluUU{m`OasuIVQFkSaAeg+<6R8Gddz7A$3FGj}98#|>p zwgDv>wAh5Q>b$FMXb=m>R-aiOvg$5=NwTn8Z#+yaDaRRLH6h^c(V0Gt3%Z;AE0!(v55>gA^NIQF z#hU{i#K%b=%EZN!U>*9&%IK~a@#u}#vll+D-mo(d3Z~(^>qYALL_042!c8)BB9LeK z-xRJiq}Xs5J2Xe{y`$}F1_!@9WH8=D*hn+WZ@M|Gjk;MeOU)ObyW)X^Ggpk0Lb>4$ zU{c=!&JdTn!}_AUa*jip_+Yt4rGT@<;gS2u#`9fF`9$b~+XIN_=-PGG^N#nWxIb~y zmD}p)VGyMgePJ0#$YN=tPVdTj*gB=lE zw5Hr|{KdPvSPc5_HwCt=Z}#9L{Ov{_wj7Q;Z2Hv_T;LFnU#VCsmqH`|1-FRqI-H{x z+XaqkDR3U}eEP@plRph-K5uyh$6C4aK^!IK|03-#psL=!^>KKEA}R_35`uuzy$Jzn z1nH9Ql5Qm>H>iM=ba!`2HzJL6Nr!ZIY+&;3g_Hsz*Z zK1~Nuj8I+WV#D|iC=})hWtY-6%hH^9w zbF}u6EK$Gff&$wAS48{Qt@U@<3BISn-r=~?YxbKio+9s%T0?FkDv!MSn^9@tnY?_c zD`HC~rpo@)=1coQJw_a>2H~2hB2wut9@-LS=88T=&-stjlZMU9NBfs&wiD;FQ<1VY zD%rG0lKiick|Xj$EBH*zuK~IF;?X z1DVdZm6G}$x4k_7B_O+dTl3EjHiT>e0OfSpj0Sv{`2I@YPOx!#1Bd$Gt2+LpS^x3$ zpc|Ux7l#il!W0~R-K7h~(ga&4Ha1xT@dwo!MQ6eLOZA*RIJ>}Rv)FDp$CSDFJe8FQ z{k3Yc<_a@i)2^<0T+0CKC`fz_+sC`Vab2V#8D+toa+k>vr6jI{nh87gx_IBwPoKh0u}w~JCgupfh$YXe<5*pZ#e5; z?%vekv)yQD#QClqvZSVJUOB{btuaO2=a?m(?p6t*G$fAr6^(CA^vPYT3Kv2Q8W%?M z)zZ$C^OU9i9@8us)I08IkC&M$#E#wO6?pIu{DI6^>~ga0aq+hQ!;qsR}|MAhVW4``9Pdnm2Z9S>QNXD>xeTuc`Ia&zNPfumPF?!9_W))|XiGZXeC9SCo zm^dju-|WRIzlu-ycbB9}F7R=PR19z|o?r03gkQ(P2UUsSkg4k3|KnrRU&-zkl5yBQWQ6qhzL_O0Nlhkz!sI@?m?5 zQ>|Fnvki!Y)i)>z&py8c+$}~tsP?df8U34N4+r{pi9AloosyG(JKF!UDc1u%zIUQ~ zjG~4k3v5W6V*bZk{PzZT$!~I@QOE+agGdM-u%|0<6Vw`9tCdexQUp^d{j zC!7ybe2BY(+W{eB+RyX9zyHzbUtCrrJzyec!g2q_tI6J6c?XbFCnuWg`%waUBa2V4 z25R&&w@w{F9|5QHVfL2368VR#%M(=9*yVruD{c#l|79N2#E_DYGRwaF?_l%8O@^dG z5-FK#4FV&+hvLC$yByACzb^LmDW^p&3~`o4PEP*I-D)7!D|_R@ZEL1}a+b1+7Mj?VtW@f1Uy40`Bx=!u};Uq}S)z8_tdxQ0|=H z=CvWwZ05?Q!`UGQeTmcJ@Fve&->jy&wyq14CHEFuFTdWoC)#+=^uKQvNL^sX|99%* z&L3!Bpd$e$OIS34%k{KLgqWv}g(r@#$I+78&aXQ{u1;;yx4ckY$Al+^HJ z@SCVIBqD5RLgVAjj_jccwTNG zn2#oj|DzCdRQQ+IaOk}fMtZ#mwIZr`dU*1bH^mT-ZvXXR7?C)jboqCFkfexNNMjJI zd|5sT-CpI)3$k*ti~qIyb1wz5?_X28Doz>!7iQ3&G=2k2Rd2?xY$hNJm@nwnM7*Pi@YpT~fOdB= zR`CrJ9ncr<0O7G;55KM}Hyh0dS1MBlizAbw=?bFfR)wXjRm`Z0mycwPa_Tl;plG1g zUh^gY1FOc3V4D8GO%pes>s#?+P?sA16I7)-278ZOXK0plVP0=^RS(t_z~12a&N zRSjpR(F&|9#UF?Y)Gv@#O@B-sukVb`7y+?M$OBgRG zA9UXV8umoFk*c+3H;##(P*>}-p=!+IYhxq8^#?GUxF!ET9HcqY9GD1F_S+4loU_J3 zAMqRF4|7PJv21zS30LgaGZw6L+I3Zmxr&`TzhO$BE>cXLX}pgD^Zkp_i`F_z7^Q~1 z{%r*fy8#(uf5qVi7=TUx-`a=V^ncPm;NzZw%Fa+g3uKvw(Wx++f@kVm+S+2-%Nj%Y zUoiaFMU}Y@rCuF$(x;-*m#y^1HAv_Egm2BIYJ><-vAire^?{q$JMNxChXc*EJV< z2I~A4Yj+xKndDJmOWjeRmBvrZ&aTXq|92obsV9c2Y%Mi+^WLemKNN$DLu^m7o!BD9@#O)!W1Qi~N&Z70_JMKef^N? z%osN0#rBW2cRGTWLZm?WL68e9V-m6;QnIY(sLs=E6ptEJGqc=meb13AB^1~?^_)Om z^BG2uzz1Q8xO{&x-!kh11Fh3#92%8UMpBBwhMq9{`8btyO`_h7w^xYE!7N#l&QJ>f zfTx_Hq)ia$x{wdLWT`Q?*mBiNwF(1IWu6Re_&Mjd_U=I_p4jo`US!Z~oc;$Sdljzb zcGYzVbqrI4lz#Vl^7nqcH|AUQdkTgd$JS5pXry=WvSjN(t9KgST2Yn2u3oL3$y;+e z!2^D<^~AD=N9k;mf`o$Aj?#wpYBBS-7kU}P+1g4o1nh58(~79d507>N6XDyg7xQ-2 zdHo48QLu9ISKfgiG=@*8_13aN+01dRW2MH-(MkB|_1nKjkcobMc^C&OcGkv*#MWIzYn=I*oPm#LkJC--)6MC zHnP;3_ihX=+Neh*@0_}i}M ztF?pp37$(W=r#F>vKSU*BoRs9Tl*!aoWpQ}K8E)MdkcX@;nzJCgKa5WN&Ip*ugqe4 z!2J6Yg;~(G8R<~vJ`I=NhZBA(KM6po(B^nLhX#^4^l73&GNn<8ye<-;+T<2b=p36Y zlJ4$i!6xU_72~%-+W5)0M4xT#c>4lRUD)rh(0zfu6dgO5`qF5e_O5|+>iWzsm7(Cw zN;9ec>&#wXC-+12QJdxp4M9uK1myEMN$jYZu#9=We}`{5l+{q{G!=()>>DE~)o8=d zaQk_G-RV|na2Wm;9XH=(ItA= zw7>cIz@wq4Ye;q^nANzqE4y+wswb|}H0g=s@%i}CTV0 zqE@3#qGG}Hh!CVtGofTKM1~um@$zdLrEj0J&lU9+1`X*9yDNw)Tt=QEAMvsfZu7bv zi_JE;5m~7SkFEb2VKsj0sHiv=0o9qYPn0p z+Jz+T!IW`~J&c~J^s($OFlTWeBmR&_z!0pJ9)m8NAlCYqXu%|C+quv99j0diwTllr z=s(pa0)zOA9}Cf67EMnYtFQI?b+lU|`9`zxw=Y$m_L!J@$4;U7Xi1%<3*KUCc(k3I zZ(HtO*Xvba>mn}B$VeO3IK{28;*UjdX>hWGSabO22TRM@5=rMeJ2%wE0kS(_PDbua zsb+Vd#+ad*C@`eM@Z5F1Y@EfmSCnx_TDqRH&vElPKcY#TuCt`R z&PJnJ?4g*y3mm#?uR}`?A4K+E?`gi8p;PnQv&&t~v%^w~{V^Swx#g5jYBbN~VVKPh zua|URYaFsb`A{4e=_%~$T$@qzRQ6k&aoD#YUV7QFd`8d-VKaHs8J1&{bEFB0ddrNxHVUGZgAXA|x4X!b!DP@+0GI3a~U`kz{WWOvILcDKUKU)7UqcXeeCPVM%h zSm0ZG6Nbm4kMoEiE=R=FzUl~?e!~oM3N`YO z)$>NB$Qe*pl@X664pfm2Z{}JRxf_g(0a6C5lYg#+Cu%yx#CwBI>_d8B(vr4F%8dO= z>bOZ3XQWEpNe_wmBqAyD9mXBLZti_EK|HNqij1>N0^NCvUXoiAW#Oi*){l|LIS_*9 z%7fKm`t!k+*awP`s?{N=!OyCDR&j*P79PX-d!L6^K%I7|w)F!Cr&(Kuq>#&VjIQ44 zS&1l_twk^NG5;1N?}HQexsU?Gjj!sj zqVp1PpxSlR_Ujx`2Y3kED%oil_|GSnj@7^gRd1Fqhm9Dl1~-6ec*@BYfBtg`kwCXu zOHU2;-^@cv(66~-J11l?u|iGG^53>w{(Xwv$6oH2vmcZQ*z)t(ii*^ZW(ytA6?Z0g zkXNl7`OlA5y3svyJBmz8+0`w0rz;KCY@WbJe+7f)VcZii23hI;W9qp_4GLK@;$WtL z<<1C*TtFng_?SxPEwSHN>`i^3`anQgqradezn#bruDc1UxAn|MhN$*1{r|b$80D$GB(ObgB>=X%!p|MJDuYI`5DJiBo)o{>YH&Nu?UGbnMUHYO7-2pbS619C%2&naE64k;=c9Z<8q>*m4r?5h zrX!k@N7g^u3ci{3aQU!%i;2yHW#VpNK1m48 zkdZmcr}dF^IbNrbgUYl)f9AZpWZsWnXjJXkffJyZZE7ld`{erun+e}nZ zQ!ssW13#XkO7gvcQy~7n3Ty!`=AaJvXWw8FGX6}M0_YmJN_geI=^c1oR0t@nzAF)w z!~4LoE(NymzbL?Y&^M}zH~&NhW(>kf6(*h?W3A7|nwJSU8_hc3!P9y2W37NkG~8e8 z94t3i$) zh_2=yA0aax%{t=JKl8`^Ip7zi=t9KZNIrX6EK2BoIgk(696@(hDbya}R2ExokOJD<)M}TyDRjDbF@N)H=Njv{ zu9#H{v!Zw$mzg2tQ#m zoVbas&kCpDc+CX?lyHH6+xB(~e>D92PTVOf|DEqok@he$-FMHw4g(3=HUbHT00Aza zUOwYrMx1z6Izg?A&=8G&%c9p@8k(v6^NYQn z*W1(b?=^QDqt%(oM!j(S=Ep?R3(A%n#AqSn9!&k%Ox$( z7eaOcO3l#d+qkUeUN{Q^RtskCZ&c3vd1 znU8f7Uiz5rfMcI3e(zs5>XJO#cIqf9ab^?5eVDe)=Grp3KQg#9agG2jj=#z+j_NL) zSBn+%Rb^(LuxbKM=PA4l8ePgi@eAZd`7h7PAXA$0fVd;lUVYBLGg+jir>QZsox8He z1q9WwiO6c(HhrM{;cUWtg3V^G$#egA5WiVvZo=iA2l#U(5GI`l*NN>sP%F1r-W}X9 zb5jr7f8RVEq4ii@?k)n{x$i-*m_!9GKIM>HH2A`H^&kDjd~~I|j@q~*7RZ0bd;-iZ z@S>NVV3^NXBUPe}!nNJav40DMbzvz57`!WXP?|6SdA$x|4_a>>5PR(U=isou)lyBt zceez{?r(y_^xbGie8INYG<2=AuI)jw!EyaonP&la$<1NR|Aq2~!c5z}Jjr6bLTEUo z^3$EeNXaNDcL0^fXg-T2{OQ)}j88YuGX=`Pp|AUgnUHs*hkIb&XsFDALi-52$*}xn zjx02@l)rft=L_u{&EpY4-=MzCtzToXxp!L~n&)qM>N_N~YF)?Qc7`s&d##V5<=B&~ zJribbf1u8YAn5j{TI(;#s$iW;J+n<0@VsE$8FJhy-5EmMd$00axeyG!$i|s*>jMbscFv7@?z;AZKI;4Ru@eqKJ#` z~r9s8J0y=BW$xO|}U>Wx}h)vMYzrRP~$Eg3UaSsSj>@8C7p zSCM)P0_g7F`>fZvynmSA38|Lm+HT?--LZ#7XqMkx1BO&SGc6q#^L2 zNYQR7sU-z;DurU7C<_)_e8VahzPBd9DAL;MiipJX`}#g4<)sSS2WBBR2|D72%i{eU zaS(S|Izj@yOzb{_68ikdTW7$0&dohH9bZSW7R=K+Sp8vWF!;Gd-7_l&S)lZCe6osg zGu-$0;(%yZ)rD#+V#|@Tt68?OpHD?pEr>ABfjhvViceJ(vf-6v#&paqO~;fNny-yI zvVd04ThlVRK~Jn*0}A1FYiv;SOU2G>sda;&)ai}Bx`UCN^n(iFj%>6$=?nY&ii`oV z*gmLTyx2a`eXym0b`4NJ10;i*7X+c?SC#|e+15UJV8DfJE^uh?dv8Ymf@)Kj+gBn&n^u@v z#F1D)M7VipCa$KGV!o8?LYtM95y2kY_niAz4G6Q8iqga^WC5k(%FR3!n}Z&w1n*@l zRQ{3WlHXKQGD{%k6I}I6wedbAEHpI3srz{1tE2N?3Wt{-Xp&S{>!*mWlDQb3xs_JKti ztCx*ANK2{Kbfi!ZPnMg^&R$1VvrtrWO3Jo1ha-amu3Szq)Xpwq*d*Rp$l9lltSWh6o4r&13ROLAX`DI%3D1N zoC7&b10&A_%OUT&!f8T-gOeXt3wR=@Iw-NJ(A&r}2fzFM+|_Phle%ePz;0Rxc`aF{Hs$1}8(L-~=5KKireG-s@k7hAzmu z|2zP3utPl!o+xse4Z5;r67oK~hWo_d(gMxniS9-Y4+5xz! zBt)J43+g)>&cbFhUJm78gaMq|9usL1?Zod0@>@R;xOV` zYPZiy%3zMcB(?KGNXd>@y`L|XKz@WURSYD`)XR6R1MM*p%{cOT z&KOb$1hQdbstpo%>N#n9_SR&_aw{~qAg8d+1k?|YN8oKbcg64Cqj(fN<0ASdUlA!s z{`PB3B%D`ri#GGxG%%M}#kbh$lQq}0{7B_V@6+D){5*3{Oxz<_@b3Io{Jq+3EB5i} z@$m#!)*YUpvF>e}*%O!9Kq?>WKFn%{Sbjnr+Lt=U3B`{5#6&!r_r8zzP20C`zm<}d z6%F}vH>=VD#Uz4Gx#^->XNha6$AKZ>_dO59&lTT<+7rOqf&r!{!b=6Iav`cUCSPr^ z^t6NYUB8Z1zpQXPY|ak(vAfz7pDNMbKG_%edkuD$0AFR)RzrheknjZn+HzcIdngOz z4hHdNcrz%#X0kPs8A$ukV(Jk{xDx--G*fiz4iy??$;K0BRM-YHij@E^AfxpW2j>U_ z*OYT51!1#}m7kprD;DeK48l2FK}4U-92}pxZU-Svk=Qo8|9GxnH1A{2zjAJ9u^sdt z_A@T2jR&cpPy)%~2eN?Wyt-aW4g<4!fQXK&kg-l_I@FcIDDe2ui_PwsO%mR$@^;k3 z+Ck^bg|^#~((Bi+smBmq&ihF{ma|)K1aUHM`CYCBv=7=nYS!UgGF97I4^MYKtAs~s z!wiwR>@9X42mLm6lSOxXEX&8NN^={4oj38yl^^CgWK=5sq(@e+*oYf1YLsX`YrKTv z(kfH$V1KH+4*{z{g5!r&2Z{BEl<0HbC*>d7|)vQ8n-P!O2Ga)AbF`XhbJomntj&B?P1$ z_qn9O@Bo*ElZD}&*Dp+``qyan=e=}b)7~8&VpHyu1u}@)#;a%GL;}ETlJJX|QWQpf zK!2iNbD}Hzo27lJASvTVqOY&d?6hxi?gC!zh-TLJ-e(=Rz(9laq-2ke2`|5)*;VUD z^)#kGcrdJEWRFZjc!a^DA7h-1V9CQi{q?hu|D@gZ5{pRpTCO# z7=x_*T)!|}4YE4!h-CR4sL)=l8&DyJjcXMWHP>OufV!p_CR7}H*_RztD8QTX)JILt z!6d)&QdAI8zXp{p5gV}UYOMNVALykY4Qwidwzq`AUHE9hF?)UEmw3G2Xx5c}mwnyB zlNZJO@RKdC)m5yQ4j1GzZq{7xSGGR;iNAeKW*$TQ_)_n_n-EoalVL-lS>yU-2e!-1 zZZ(q{FqYy*Sch0A&k94S7pE>l7TAM_JMuMOcu7X+y$+c^=;QO+U+SW*mWqKtuV}x_ zs9RBQITofMSOqU?P5rN$35n;$d8f->G)=?)}k%S(Co2n5-m$m_g<* zvcG%=^xG!=uU_A32X9T#eX-oU!#9Wlp0D`6VcigB%-^0WG_aE)ekJEeC?tgT+-ikU zD*7yPKjy_VdNxlQ0wOwWT`#{SMeGEFz zjEsyG0!n)N#~=?@fhWnO9YIeJM9hYKQf?j?PN%Xv*d12l2$Rv%aG$xpU9Pp&=0OOF zko2OgE8nvNI*1+p9ULl>Lhb4|)yKb>8JWF*-;4j+S|V7=HVb_{kSf=pTUi>@&rS8LfkhyGII|4u~6-1)B%OUk)6A!_IfYednjI{AOh1IuBR&P}w-LtbB z=I{T!M4SZgE|5)5OG9{4(x03fjV7Jzuh+F-mOQlrCJ2E=b<(~+Q@ez~KWT62dvL8j z{5fin?CnOa*rT^d$wt%>o!wF8uhMFnU%vt`dMIFGVJ#dUPms7b zf4*{=-YQEKv#{MPl6Vz0fh@pW{JR`45uXz%LPZ7L=jo$7xq4c3BEHitvs!|UNqBCas1olAKT|oq@V5>}=(rxI*vKbAgKFsvEG~&; zDc&va;76I9w*-6QBZl8(#OV(tbN9IVN|#-ptt9Pj*X}G&TCVn|td5sv)t?TIaT-_` zIeZF3@vxyWU$zg?Okeuy%@?eZBp@n!c}rS#doQPP3Vxf5Yn{ZT*(S)^=(3tWbH-(g zq+1V&4`wwDZaxs+xo`6&GYIsrpkEDmf#eFF8EKoCNp`8H4d9IqPEJ~^p;?Qoo87K zESyz3cxlzZnJ8gGNXN>GU1|jLkp(Hbi0*9TB*829`h@$K4Y&tu@yP$<6w|1nQ7-SolB1#LyX7UDq6C#t6}Z{OIza0-OPR?!(23B4API$T=rReJjfGKaH;AOfIbjvU9VE*-IDdJCy zH63K6k}r}m=%3prip#^+p?6sZRsuFw0;R*c!gw9v9Mqb3=Aa3Ivw%h#cJz)(w}?QR=gO-;_@m=sKDkaj~)9@7}waA3yZ!0iM3!vFVYa1(;;DU|;f`t}q{G zObd(_$!eC8eZ^_^{KZ#BxvAgxEI;ZWA6Xd8c8JXHHuGtX=Ns|Ka+;hqP)7%Rq0Wzg zs+Mme=kh!+()RY-{LM`Z14F~=5$#o_VgaN|Z9EsEuU>WPEtG|qI3-_1ANxkqD75J# zW#AsH^LpRd-0Vu5-UC}L@+e|wVIh)LVePL@IgL-bR&h{{#{BD^9>~Ku?fU8NuNUDt z^&Qy2ezKD3XuN~bb1<`=D@~Ccj5v8(_g$7Wu^zwpbS;PXz;XN9dCYRyBF%x4x{&DT z)sQ*xCZ#6;6D}4j(zh62)TbEKvmbgLy*Q!Nhc^>SjG7DSsLI+}vt&Z+{`_bvmZag3 z&RsG-&<$_ww;)`P;+H(;h#W@^uX?1*;}QQ^8b{8JXMWc|}#t_hRy zEi%065eo{v*g6SQnKynkoKP^+14aDumiOqRTMDph!v#dNJNz9?ivKu1=5~OXz!oCf zypSF;tmamV3(;=(6K z(L*;q-k$o-=!V_@{3!m33*|Ez=*HQcz!F?@Z)&WN?GFDjQ&$w7KPbA-S3AefgzbCn zCsq|YjxTV2@ugXE(#2r_6QYp`YJ)w{|7_+BYRP^~=mu%^VLu%J@6dglpOTkL{jZ9s zvm3P+m!hNK-6@~6<=(*RJ8ZRM?t!fs+2a%5>kz-$3j6g|bih{p%o8H%)joo{IidL7 zv0^=;FKI&4yeRh{_iw5bGQO~9FH0X9!VA5hW~+MW)r%~~#q0Jwhl$HaSZ9^qALrU(YWCnF= zpoE>tdWOf#YNa6%b1y+8~kqaQN-_4$$GXPzZGoI_M_HxM`1m>FXCRJxsB8H=}*zA(FG(_8= zi%RQ{;zU^WP6VP%y|7rT8Qhc;b-JU;Tan1Bef8OKXCfT?0N@j5env3>N9pXpvO1YEw)f9WeDb2VeABu0H|3dZ3- zKjI(8hi8QX3F{eXro=|N#&i#W+LzLSPpPt=<+GTol1p)!bvv0qTpKz)-)W5C7Znjn zRWCQoRxhV*Zf<^|jXb}l%>=fvWR@2z;t7t=F zov+0_Zi7E|2Bdd);I5ii`3TEM#{&>r&F_F*R(xdOGe2{^yAlmY5^!kSaGWQhaY6*+)0H>QDn__ zYSz1>Y{=FHF^FFIgm1nsqaMSPmf-ggVV=Gqj=P1Q1c7Pe>--Qf5YV~(F?X*$9U4&d zoE01k_|u={0c<$7@00M=UN&b12S02Ks8H3b+zv}H%9l>1r3 zsv5=A)KtdH6B842btEs!NaeO|N=|7CMM7djup)j!^Mo^;(3R*4--Gb@?s}v}kX+B` z+GEVD2w(8A9qHaYCH;8&CeIas%1W6r;a-30Go-Y?E`Ignl^QWd-a|iczW)E=U^tgE z5H_pHDvyVCp!@Mr*J2TClDfI^EV|&v7c%K1={h*DgH)*xu#f3kS#)EUxHR%DGF)V2 zw+PuSn)ZITM~tnH7WgX{sGFvKwoJ+C)P36W;x-l*R=DQ+NS<+QeDoJCC!At^IZ7r?7WPr$8pnj@H*%Vf-AsYc{Gw}4540JXec;pj1JFE zz*$}X9E2sX9wfF22`C;Dt0~Tp!7Oj*TVw!Y0?R8ZFOSti?fNY&^G!^B{T@iF=$(PdkH`CLk1OQuVYvc zNp-DWnZ4eTcFu4?c|GLEqZxTwm@qvCtWcODBEgxVbFF4J`pf#uBzJrP&p6B}fweEO zAC?MlA^CmzL2#`(_~Hd~tr9x7gUUmUQlSCqxcYw#Kybt#HSfxx9uu}%OHp}o==nb! z+dppUN*%D#;ExgM^(RLlp+W2&yduybt!pqeJVwRGK&9~{q8PU-2{cXMf&JmP`tdTu zM`&_Br;|KKV4}c$RUGEM_pN%bB55^I%2PGclzo+fj+ z+oLp$pBY(2<8NR(zA<^cM;uX!4MswjZWKm^$HTLl&Mbs~B<6ObEP;`r&2rT^X(S)T z1KiAxt}a1UReaE$uo=1Ui%nJRd}Ox73nXLlI!v}tN8l&b?%MEayaFQBy=5ldzRI1f zTYFcfSm61vua(clK*1aCnuob~jT@8@kbL2UT^9t0!;Dpa`9Mz|ylzdEW}ZJLTK?1; z;7Zz*gvU4kO$y*N7WwmVYPWf8Ms~`-wpIBbb1wA${{$ac!`53EJRTrEPHfHzZ57Ue@uBgwhj#871&l!dGW?d{rRi{B&in89S zYpOi0s=^c^aQ!sdjsAl2g~%2M5~6OGFogy+87f7SH!D7X=T5c=`Ew`8Avc;B-p%v> z;4kPQkHxUDu!@}yjJT(ld*af7->q`kA^>6K=jmF<$=QwZQYw%?O7q3iG%@=)VE3sX zuPyk{6^=DWsYdYP*CnGY4? z1f1WQb3K50@b_3?+nhV}(#t?I0spD^V98TX6pe$ zl4WaaYt*2J&Bj&)bSJ$51!p5zNxUw&F)=a3=K%7Ma&b-Qb8Flx^sf^!T=zco%vm~$ zetLBBrDOPEcH=)575g?YDUHOZfxxNO+|K{TznseiOyhA~46x=CfI8I$<<2ibOAq!M z@RVs_Dkim3Zg}SXcPTl4pi>9g(q8x$r!Y*MUogHZ%8iV$O6^!BTj1q-#QGPmfr1Eg zH#)rX%hm{X6j*Znh#L(r8%%FH~V-^jgPbqkQv$G>_#t1^=?^%0vAlsLo6&P`0=tFBx_PZ2{IoJ(%+-Z ztsT%A{laXxKiA~djXPxH!G+urFRsfhkpR!SGJ(C)54OenG~6xJb_sJA zbREQabj26*Z8~SJ$mAD8w$3*)GvP|XtyOkvBDvp2?>sq|pp8Ed4qCsK`tObxqCPKt zp4iWVKL0%AyI04!9T|{rO-hvWTezT^lO5XEhW>}VRDT=>6XvxOG~z`96(9!^A&FaS zqXmRrQP83bW(J0bfUg$>-R}Dfoc@MKn`n!)LE30941R)T2y; zJ|M%n^%sVTzQ!=uVRqP6%RP^UwW(@WTBY2@bZrrlJCTf9xsUgRU%yV)X>`AffpH=+ z4+O6_Q|ILLb!+6A(~E_g4ie|(HA#|aQAxI#H!!y0pF=+Ixc{**61?$Y$s{*>#Vm!q z;eQwrbIqqhfEn%{q6c*91Z_-+y&C5{6w!?F^22+w-b|u*TuVEVr1ozb6-9?@oC>T5 z`tfP*BQ$9~9JfAnt@`awPJZcuWX~^>cmGE@O6Nd2`P?|3ymwDBvXn=|T_)X6=(0Na ziZ8vTZ+`hRoEs_AL+p4`iopA$tG`OfTEtxo`#>pk325nDS}N44O$E1E+jRXyjV_p$ z{-(yxvJc!@J`pPU<4;23>x{{Nv>07_szIK%(En9M1?wWJl2cp&oPkjpl6Jzuw zuwhrH^9Nq#Grlv?O-c12Av_LloC_};`j6hsS^yTYnMIfc?#n&2mdU=Nfg!AmkYe~>BLN@1bQytou={b(93EyBQd%mSe^Ke=pTIZ=o&%vfYws@ zp=rKqiJ)Ae+xam__<3vKfGI4@#=TFM>M5mTlL0)?&atF>`rzS1VZe}L;@~VP@mmwT z*IIl?aZs6p@w2F;@!VpR(qJ3xpQExN@mm@q@ovny+q$)tTMW@nOfB&44?dKEBR6^Z zN6i;h^1t(QxqykJITmfp6gf>YzTE%7kA?=RH(rvK{4efpCzi_a>5oJ-^Af02y-mT+ z(oa_K4(Fz9fO5I2KKAptg*Wl1Q zl+NV)Al@q>%WU6OG@;H`-9Irg`L#LTBpAX=%;;?h@j68_$4ojTL)V=8 ztU&V~czGNQI&1!=B4F^t9~6DCeN%mdR6v)obTjs^&{GsHMPmP%@|oiY;S3KXoA7k- z*~RZ{vm(KpjSV7K1$0yejVQ%$l;e@^jdEy0sQva@?zx@eELe_zL#cJ#InIGFv9sgu z?d_e>(#oK2&eU_ief!o`K5>II>0L|(vzxBEX}v@M+{LT2EHJy#G~<@ zkr@%`dyO9;_il$=hxKERGN6#nfpbi9%EUIjB)2bzhYtdtvY{){Dz&7dlqT5hRcJk8 z+c%>Hk*8PZhKQz#b6}VJ!!@)Mo1{9dEMN!uoygEBteZzRUo_2!H^M2nQ?zr=!>`@D zxo5mQ|8LxjYWdw(yeL*#@Y=T4vuNHC6Xw{+HN%{~;E2$pRy^f}w?~?5XnEXCZiqt^ zw^uiN7eGc}gOJ%2F!W!(+&$bF!Mx$fqE#&s|j%aO(d{2$*;IGC<`tygU zM^VEw9`i@Z(EOCrBDF!h1}y!*Vt%X+X@Q$M3pZ}0H=2a5U}garMNG=et5v;SDHcNN z@QQ_nrC9IBou~Znnob2)(={d|xe;TLr!(t^_+2k9NlR_H|yE-iJH~iF|+=@mU?P9JYK# z#l-Fsj28LOgz5C!KlILW7~&`ts`QqY%LuntQOzE1->{;G91=vRJUqiIxyg>uoxg?c z_lb$A``qe`dv`hrl|g~cKNkk4wIN(7x)o~qhAVYh+B$kAyz$~^VH;lF*SY{4A05G= z!TLSL-@=jS^lH!b*cytF@$y#0bX2F2whywPt7w0KIM(i8L>62bvKlD=*4qATe+fLf z@$n@}v1}5bjPS>q3-_%a9t(YKWO@ioQN@gb$R$W4%&-s7)=fBvJvln@4n3PJhV)+$ zunOJ$ot{lM;GQ5v5sb$=cS92?(Ef_1rgpj)^4vrx%aii9%GQjp)j{K{@qVT{TbSd6 zsx2Amwvo4wa3N-|_L7)S@k%E4Uv!%&@3+pHo(BgX-a4kTmX|q`taj*KQ=eUL-4Xl| z-J7kI%9a~d)owQihcBp=H=Ldpq3(`VFRdz=({AVSv_;X3k3wz_!JYW9=7xx9zb{(e}XK|*o@lPcZ2 zya(nxA^N+gqyEB5tmg~sM|54~4d+lRMQ|E*`%yzQU|e@ZxB}vu2#lprPg7MjRnXbk z@HZZTFAPT{MB|R(;1yB6weZ(@Q(wg+ywtGRSFwFB`v}D;HV(w|R&FCkqB_|W?e2d? zsJj?95P}i%*v|QI)f2$rnsNzcW!&rR#NwiXVvalt5x2u|J}C7;RKA-RG@Q|{cTTZ0 zE%BKh{$nc=+2Bm%97<(pfXjjfsd_HO_}{xJk$yv8Fnj^LKSq5TYX zITk%>>nTfFWa+BouUuG*@DFjlPyNmcc>y8zmGRf;C27=emFn$=SC59d5h5ZAyrnIQfn4-a<3iK z$N-z{(e4q_ojNQ^e<{@2h0OA>9!9My+=Rb!B_nG zrxT_4WlrO>CNSOt?vVsDU$^Rxg=>JyVcBc%rH=iG1N#f~|6}bfqoRDW4e166J+8)J#bmtRYCb6F#@>W4VyWBwU#{99WQ#;gQZh@aTH5b ztiQLP+><>c%4M^eqpP9gHmMMyynBKAwBptHA_>%fiC3;d(jGH-2i*QP&J*#uhSuj` zYsqmS*VT5R$~kXTc1O9EeU`Lm-v_cz$L9HIf&LE-3bCN=a%*OChGs#!jh+DBxMh3| z`<{&gu_ihSq%s5cPIcg*0lf-OJ%pru8f^hf&_p?T<;N4nAr7)4!Mk9 zP%1xe9_Z)z_D9R}(;t3(8kKfU3K(h>#Gil%r_7s( z?>*H&KiSLCDAKb-A227sY#hx$g+Z$9_IPR!kFF`$zrE-)JJ=qcUgNi&3{?RAk00M2 z#mC|G&`CU)BbD84&1Lm9fbDyLhaLbGnD6|Cr!a~bVYBDF6}KKyb8j-kp=8qSYZ12C zP!kkXfea>kIhfVbxEL!Uq@GDT6EG~^@F4DQf_k*|Rbxnj{0Lto7dIe9h*N;UB!?mRvhNLSC<;~7sPe#?;q zceXoDm-osDdP8^jvn5gqWz732JjR`Ky}~^KuiE^&-(3iT32!%nUe=bk=h0?v_tsXkb9CjG?&&Bo zuK&tQM2$fO<|fba+0g71qVxUjKMKEaD5aeK^^hdO7ClX$zOp{C@Tl9u*o+VyS@p{{ zW6c4U-=`X}5IpGn-QjNYj*hCZn|IpNo;_nJ(5`M^f&P6_qm5veU(ku1$O5MmwE!zJ zG6L_pFHT}veFVJ9VM|1MFP`~?gbDfS$@C&PeRG@C2e`8EfG+5b_Pt3uhA+%Thr?qj z+NTS_Mz#h&8lj|LQ>-gw7ny~0i*d}B!u8vGPSNGT8)JiIL@B^JzE0Vi78#D9SjX&^ z??=JlS(rN2n#>b%cFvy0I_^C__{pZ!muyr0Upe+UD!B~g?D1Q7 z!z#B#UJ6lLWqx(R+CAJDEqV2WI3&_~FJz$}ER~g-pIToDblu%CQP-s-x}cjo8{T%$=d!n90G@7XJDLT$sIz{;OAa zFMIX?@bc@m>p}|-u&LhB_?%niPz8#oorjHZFJmZSezlKI#3gxD9Nlhliln zvI{_e69G9YnPCoU*(VUoJy6cYlKCC^`6DN&{WPG$sqA(^?HbBs!god-rG+2z@vXeG;WS3;WFVV#+t%B=j74thF>TQM{{!PjkS9nxY9dW*uc% z`e{tcu7^MU-KnMScq)^01Vnb|@*jQQo}74ho`16#X^->}7@JS0PztB=^>+ zF?~tU`M$Ey=b}f*hgBD-Go>aZl-k@MY{y42^3FLs}55&ugIa6A(@dodQ(ljN)J z;JB2n&FsP_>JL~e6rdRDkOV~ejz-*`Xld+5_V>z9+}UjUZ(NWEdZ*CXM;4oLqJ*Po z@3fIqw~D9NRhejBp2*q`%j}j{|R&IT=2RHy+ zUsj2?A-QK?Hq)SpZ@~0Pfzg^~Po|AtDoAjckX^Ux1|U+FR=WT05f}g}Am8k`!g^y| zNNd(`d`V2PrJ{(Wq-1}wkLa_6bBDq_1=~r$rxWLd)i~jR2Du|H=%ygn3^Ee}4)GqF zxZFBoM1CPX4~;=Zy_{Kg`fB^ijD?TwgJUObYt@CB{Kaw>{sd`*_7hchhv5lmeQH9$ zWeXBChU5Pfl~XPZWy3`TgDNn~j{++O?D_sjXd~ubdumcscYg9*oPYi-BnL)&=k(*tfvM_1CgTbBoGh$Xd>~0v_Zy5W(sOCL%xOM zZP&@2neRIdLzOUfpV?Gl+nZT%foW^uMkmla7bPzjbU9Lk2>Lb>*CKo6+?Rj1<&zAQ zNPXAcu^lU>yg(J5six9W_CwE(Xl$CVsB*$0(v{UTi;m4Ps z8`^;Uwo9XD^^aOI-?mCTYdNMxtdVX`d+PWHQ)(KBEEH73lVoUt-~7ySy2iN~6d(A6 z_1P%gJ$Qq`>#p;kmrt_V`#J(`zyGonmar~A>R0})ldNGuoDG!eM1ff3lVB;h&ngzu zI55#q@j6Pn>L-g1McwR4REq9_e~}psMcD)dWj@S!lzXPkk#|$^G^XQ||88qKhEef0 z=*Vih+`tyFyMP`L)9W+aT*qvJVp@Bl9|Z34<4a>7$k65F(f+P1)3DzO2PIrn{Tlz5ucS3QFvToOW{k;*kd5e3*u*m zGVqnZ+czEMZneCDJlXEOwS-euuj-k)f1^J8>zO&m`}Z*=cJmI@ zLUE3Uhrm~(#C2Di#fSBFj3e0>L6#!d*+*503AyK|DW2Oc-qt&Brfzl~3nw z;hpAw3pW?*QOm-bH6kl&WuPTGSK^QSU|8QLmTH{36KLO;p}0eX8!U=*b^}@|FZ4lC zMAXyi5rAU$S1DugS!m9#oHIW2cwRl>)}ku4d-6_h3+X#vN|u2-e2wfw(txaj z1zCLc7RYR>#Tfok+jj;D8fF+EP(U4~R`GJ$0@=ej$0Vpf(OM~1ss=IM|U{%xTq?p-aD$4 zTcV|HggS+WX76>R89c6jk8A&Y_n3A0&i$v;EG<`YMQ9WJIIDK~fcT^&#PE`#KU`F%u?qqg=fk3-6w7S?!Q;WJe*AhuO3I79ERPmCo=(Xf^& z^;Te2y$h?gcmj%0o6pu{hv~q>Y1hs(`YwoRezYk-Vs$v$BIa@YPOJQZM&DcQA88tD z&)lmouL#%PIaIuEs;ca7BL6X7)jgwUMP zwhSjTW>m_73B2Zm&r*HWyAOf+oC>mLj~^FS0O<>Ss})uVV3F4^8`^rcf{3H7@L8WT z0#N%l0f?`q;$IP{b94s`fnxDfQ_sd(P)D&twmF}%_|juF_3xTA!s=8$DdpKMB}Hf* zFnu3C-;?pF4vnG9Zgp-Q-pGv~;~^wVztt7>dQa%a^;pj9<71dWO|b#ZSzQa4h*lS{ zsS6AhbX!Zz>vawfG}M^g&qF+PabO!sI$gVFHt{7IXSSyo}E~gnDN7>_vWTXB;yv_6pnl7J{}%HXsf+7B&(F zlNY|*(c_4Eh!&7mL|!G=z5MM*w}rW_TFkPksqwa2LW3`EAJ?kZfBEtX{7KWTE>%bp z?$Rh|V=Yot4*UJ$YkX01M9%UL%K*p89p8mDQ%B8*DVnQ-?XLsnx!u=;JLPA45v0x= zLrq{RVSn9dbEoB7A|K2NOW?&nUjlKC zgBZu{$;d_|cePk{1Y>Xmi1NA3f8O1k_$Gf^COB@p&=LyDOI>m7;cvwd*8}mO56GU% z1K*Tk-Bx?lLJYh3VprWBg?6QwiI@l5sj%wzK?@$E-P*Dwzyq z>!cp$$voIa5W-$lhO0(M=PMurkbU+H->PU2vtiCm|4_>diS^6LLIl*=n*76)>`#80 z+%-;isu`(t7+5|^ug`1UnfnIE=8rFe@80Vk@SnZTJl5X$DqDrE&*P!b4QHD(kV%BzJj|S-;+w%t7B86Vt6z1?SZ&>wG!vbK>5vFt<6Fib!^MLgARph# z4ne+_0fAocm*+Z=_=FFE>~e(q)=f5Sk+YHB=DAOozlD)Dp8G4NJ!w6^Ff?i3Gg=il zWhBhXW<{>c$bOcq!(LS@qTepmqoT*cErxJurfNfgudRZ1(tYD=C73Tt-npq$VFk{u zM?;P4s-ZB6!s*BDx7oMt!x;{>i3#;4A_4?Jtl@J?lx^u99u)V3&^F_8mVfIvAsPth#9M! z6Z9RktS%CXo(UNQ{Tur?D#u#hGv!?IbzWLl_P)kNP+%a-BFGE)U$`7Z`!P2l+%HB2U92%I6` zwiz+m;@)!i!;3}q1JKhr@$c*UHD__6|4{z=+Yeh}=uv2vYiD-J`$ zr%MbmqhkvbGj(T#bb!C4LAysFZ=Y!m8jc^1MaUo%xcjvqmcD&tnnNjUZS~0b!~j8o zxa(#&|C_nP=}KPZY6qD!&y+$4`Qj&0SFt`jo4Ri}O_EZ``;b}}c0A;@U&(rAtdMdt z$z@l5ZcuS|#+h7_16u?*oFqpsu=x!<75nL(qnP$$ zA6t=;&G7ahN8icsvo9EK>0IzPew;`DdGu<*o%BBG>;8Vp&iYo^W=MV7B_we2>}z0S z>m7%#8lT&8iuYK3Z8TYrho#VP#)2QUruS9sZd|EaUhVXtOVCP`=E5-Btim2m@V9R? z;?gmu-{<&3>kMMNXVDX8n)gAgu;!j{@mwG0dfO^>1nik>^2;}UE}|jn2FBba#?)bf z(}wthXfl<-DQ+7+25510*Fi=U9-lJWJ_;( zXW4*w4v^T#$@p44qAG_K`*6Q>F%ub~_9p4+JZLPI6%vP@cF5Cd!ry%a%xpQoOPw^{ zsp#(Hcz%^@E2X+WYNC!!JJufl`bCd~KTw+P{q0Wll4%<*m>;YnL-rBjB<<;*mAzuY zJ5@JVx3#Ah+ZEGY>ysnn6tn6B$a@?M30=IU_jIBes>3fhvcII6sl^WNyfN&p%=QVv z3XfyKat0T>df^tCA{~&0pMa5$%`MPbCAi;54Flt=tp5#hpQkFU8C0dPtfrBRHQ)KqC zPbBAY8>^q(1BA zl&j4gBg{(iSqU#vRUn$2wM5%dC!BU=zxt@hdGKI3;233o3EB@UmKv#(MQ|SC>{1`8 zu8;vU(v;tL*J*`tFbAOy#QJL6pdED}YT6AU15h}Q!7xKVZyGkmwo#wWNZvJof5X<)~OHd z^}ExRsVnynbdCqH&t02Xb9BCw>$$ICsTJvwmDHaHt+YpIENBVtSgL(h8E2{3S>|XF z-s$TA!@d5tf;u-W;joZ&nGCPqA90{UUtQ#D&z4xbk|MmfJz4bd6MFn7Z;XK8D2ekK zq(VvPXzRBIxv1M33+{h&$E^|^B9Vt~f`uj~_lv+Y{$RC<`S-xT=I^^_$=8Zb!s&g3 zqVPY?`2UQt5WH7QVm%d5DL_N3k15jo8{Pjb0MDm*A89$Q_CGphaJRBzV^mDB^5tY? z#O5{WR1XUsw$|A_Ph7gpxzvdWnvjPVxl^R0n4#I1{aTB)!s+Ahi~ZiH zN@l8CLAl4S&CQk5_abS#HUI6UGSCHcR?5u>u@{;xJ#op|LaM3+lSSNBPVKzHL}D^rJ} znvP3Cx^?zA(;4s<_Q3Ar9!zBHkjt_@LUOW0NSh9)AL{?b^1S5Iq82ngdLGH2%~OlJ zj=~KrSwQL3T5LSekO0~~3hA43uzZ1P$*YHb~3&YzkkGPHkCvFllNzd`5<{MqD?LH zQ;7ZP&mE;&H*P_jyK(F~*s3#LS}gdr9{eO!0<8;6qgl+}Eo2S9>(6lM>FGODFDAZS zlS=h^ae4u2)smxyx0QJwYOif{#f)NSyLopC(;A?fGCS?kukW4$fB30`vHj-BlmCf- zSfNOY^z2C-wmaH%XVWfiVgWi_L^}E8Lt=e2a0o>nh0ejwZ~c>S4i(jj3uZ3YEEIG|EzHfA|WEUWbakn)d!xo_KAq zjQQg|uis6`bCmq~_EOw2E>K9Hr!VxyB=ynP)dyzUHB1vPJbKltc_^JRUn74T4*sA# zv6daMztwrrI#x_bZ zE3OoZM90ITlTV)epcB8lytC}y!+RPD9e}^I^rUT<{9cRjdbs$Kul`#uatlapGiId% z?CDR_k^IVcs{lel%-fu;h(LkcOxxoj0-U9Q3Ar5lOgC7>XhO}?ApPt7zc>!o^=A{` z+Lp&)A5_70o--1;$%G357^%p`cH5K(r!$^8T4h-*jleESnrgcjqQhKT2x}iu{n439 zHFDqdsX{4J>tX38E*6s*f=)2m_){RFEAN@zLOQB(o^69|2=>DGH3{^Ph|rY33?yCz z{41Q96S9Ax2}9MPb+z|)fpuqb+I6<4^0fc66#aT=%MU*juS<(;DYIR3g%Kmmy~$zm zsQJjhU2hgc+sPksj9`F`@)yt}XMR~z4kNbzyap8;bP`M1&sI7A`2JKNF>X7Me6($G zB9d=vU_nps%<|R;q@wiOROl?Dh(CavkqcLf?LePy0fX4L(S2?n=@&LFWLkuHAK zeLw^%bDNGKuih~qu}IaabFZVLX3}MZH+Site$gIV`&03BjO!by!<)g z2=efcg-+{d634w1r`<6j9Lh~Q$rU?eq1;AH3`lUHBrtcOjEna^XYx&EiEL z+1adbYU>y1Y;kG}lLEPJwO5MbC>p^1)GTs@6`1s(2vd8Lm-y;K?1#z}Kl|3txRX=s z)w(?qBC{Xe#suC$^IOl;r7fkCD0u09q?}PuC zIXjK7{UiJ7&NQge{*H>VWZizdbOWSz4=;*8K15%L8vu3b<%frg$=HHE=Wcw~h`x{Q z!##AaoR?w=rcv;fK_VkWuZ>^~P~!|(bEWU`Y>p>5 z+KLpd@&>nQ8-H%^3oqErk3Vm}Eto(Y{8y}E@qw^?AjFRb-p}krNFsrLAOo4de8J1HK(%vmjj>C))Q+ql zx;#9U+I_I!TKJol%gB`IO)%-DGBqT$!+Rl8+`Xj87xQ30&{w(4HSO}+Wwh$vTf;M2 zZ_9bo07Ku~^W5upG#be8go<2D?dsNdwW0Q@QfPVg65942zVcl$_9fDVV6``=xWo4*qDp^WY$@)nqU(6_s#s8M+Tv@wCyWFuAN2}T-DKuiDCSfzD);;aHSbMAkispb-Y2M`t&$x%`hwmiF%CA z_^;(o`A?TSasNkv3piNn8}E_(r*azb*)axPVXAJ$JuMcjwgQb zcdF33jC9U}7kA%EZ1 zJ)VDR6iyQddv>h|?G6`Eor3cbXd`pVn81&}o|)?z-o7Ws1tR5h+gwPy!oyX8Y?XZnwegS9XD=z(+A*2 z_+uV0*$LglGWcw8qmr1Eh1lO9jZ_!{p@Te;exwE(vTL-Ycj(YCu59HJ)zZuV)F%In z0npQ`5A^xkz*__!ZE(4)7l{7b;?yZN(Z>YfWXKH2ltfXY?PsG87gYoa@OLktcrV1X zLLHAq10tDB(~QR-QB3K_iE#<$fAV94r`>h9nZ^k?2ytescv`Xg)IbFZ{>lP*{U6{{ zZZF_Hd90EVc&9<#|HHZeAN&y^&MPHr!XKlGG3Z2mdU;88!C0K{nF3me|TtL>CgYC5%e{XX5uykW>tt7-?r`x9FC_MB@lQQ>Dfut zeCJRMO^L40ZVgZC!;k<+f>-prgF9KR&X0~FH~#jYHt^b;%DR5x;dRlyTt5hOdjI(5 z4R88DeEio}FoU^&d8X(8?-3aPUYx3J15vsNf<4684xLBj5@s!6o?j zn3s3^r-$ADiNF8~dR7QDabiE#y1ahy$Ozn5$@1dBAiA~pY;fs1yJm|~{6V0cbet7k z2B+BUFm$qyqs99}d%EJ+O7`6FnI~PVcy$SOKIHEQF}87bSFk?)hkpdHV=l%mg@6EF z`zPPF=7GQcw?PJn^&%{p#i&Qf$ox;_(W<`e%(q+RpT^h_sSG8IN*|Mym*-0Bj2J9o@`AvOQb&@F2X zcZhAEGrNBkFV#*ftE3yQS#<$BS!?k$dyz#H#IJ2e`TW&mH4|7zLwg=KkaeqzUDU4O zA+9!wALcpJ)fs~-8+E`e3@`s;K2@@cv1pMk^J@r(7uI$=073O%&y(BXYAd_{Ic9o5 zA?BfF=l?!tA|ANTKDH7OdWj>m^&#gV5dUc>G++u|qy9k~1r{+K6DK4pzc2Voi?2jWK*P+)i)$PA0FJcGHJ zw2=R6?E$RIB@o7gfokfwngf@^R?9Sl=#@I7puO_NoL!tV`8sDlPh)5};#zQ7L79@T z)&~RKtN$x|JP3%{gb1YSc0hRGxu zHf;(23N%meh?v78nSb!?KCrfb!L>*O*7mCZu(n?k-ISgH2|4Ip>GJ#&;uyO-2&cPZ zF1_)ZAN|yi+I7iH00kz+^xylpPWFs{&$3&A0(TC(MlC61d)QF{P3^27YVjlCd#bY6 zp7VLemhx(;vpDzY38s^=O`Vq!2+_pQQY~5 zhP%%@+V%fQ8ku+xXt)(3LbrfX!x=}@*tc8V06e};_kVBQA*1s8UiS8O-$S*q3vCUr zTSUVN*lB*S&%g;Z&ueX(al&vWORjhN^(IPTGW>6Tl=y;#l9)G)^Oe4FCdDcqYwnhJ z;X&YW!Pxu1D3*PO1`?4$!O|rh3;ZPq zK9YbKCP=68jsFMR1b^8qTXm7!+f+dJvG{9XMx0;E>bj{y_bledD&BLhM4KBKr-tL7 z_cR?3o&)bH4lv&vJrsTQq{9sUE--0)F^#jku(;-Y70-EUEd1{yqy{e0KMPT8;h#oX zmm$V~z=!~m=;|8j(~opnTQ|=<*^%yaQDb-cu5u0#HRL^6*_?cr?1+e!aH%aZQ}!Tz8_}?KISABt*u3%(OQ2tXbM_LGR;}Cee;sBS z0Ek3+IUkUiV}oJH(!fG>S=j|nq719?Qji;us-Xe8MJr`&V`*v8B}imb9)**6$710! zt$a|LlI1uEC>wk|`mzVD)dvCb=V!Mc*TubAN&G5P_x|>?j9|7e;~ySVCgeU;@>Tt@=EyTNYx*i{9XR^$F~!jTG4c2RfmV&$fkIo1Uxj&(?j>b~ zpk#Nl#7HhBR@h}T1oTKPve2Q4iJ$Q&BvN@)x7D5;3{6({SBDjL7?yXSkm7$gL!qY ztF5H|3r-;n3J14=wC&Mn$v`g}5ObzRCzN7%>p#`1QwT$NMs~&$A7Z7C;H zfFblVsKF;P0}c)&MZklOpU1vf5edoc0k(m<1 z)-Y!6a%Moy+AIp4d|2bOw%~Y^Zd3-oVbDf%;7_T3D8{tDBg)EK@dag~Hhh+xQ-560 zJ@y`vq^!Oy{m1Ql!|G4gzxWDJCO$YO^Z~v~dWY@S#J8sv(b3VXpivA4M&_PtkzS(_ zak~N7T}r6S9)!rrT!5G@M@>u=-t$icTg?aZM3L=m+tShI3OnMSe`OrpX#O8UdjSvmxKRrHB93JDwm{TeH z4nEybHyoN}eU@b{jeO3^PV$#9!SE-4qz9VVko4-LPVjvfs9G12TK_jO&mohOJaB>5 zo<~1b%o|j+Zq^UaNeMvQ?H8ZK6=@<2aK>2AoB+8?%FV56H0J*gM=Q8!ZFD#HHT7~1PA5< z66nNOi;g$PNsK#V_pazh6uW3XPm)7zNrKR-{B4F|lA{)!*j@?J)Z(gWORoq3^N zT^OjaGPinzJ@W`qY^JvdZ;N?R0G^L3_V&a#Rv??0JG`q4b&u>EB3Q#v?b_fLTHm=D zol6A{oB#Z!>(^B-`T7sl&(aM@7vJl3OBsq}}H=fhIq~ z;>9ULucOg`r+cu;r+uGcTSVv&Q?2c;0EnSlUVD4JG$$M9xK24dgmsn*50VK>v8>2p z9c{y_d;L&Z4KA*|L8$+Hr}C8vvq0u5IIlbYu{M|uwjyq(6qx%7Nd5$spZ*VkgkqC( zGyoz@zZ2v7R!b9;fugyYP=j_T@L#_?i~6(I=^p<{gM!-88|ZN2M)^Rg=9#>FGnfzY z!Im~$6AHfYBsu^qmMn}tM7U1n>dTE$Rb5~c^vW9ZU5_+1gbyz zj70Gj1LG~0U!w}!TlWGLh}+f#e+a8wi%I&)@*W`1Zb|Q-9hDUAgEz)nGFL91P)fp! zTKE4Iv1q25$C_eOLye`xB^ZN|#`!vELWv~d2ULf+zC{4%ZHA_s&?WaH{WA)dYs1XV zk3aGZ-hU%}DHyaU%y%?;R!ZnSrGZpHca`#LThchv4>znAhaXfuOlLJtKB(&1PN zNbg1CijkpNt1v_y(cy9A$8l{{-!hg?udBuSFXq8z@cu;|7b0LiaXDvvIeq%G)HSvI z7teXgfT2C{^N>~AuLzR(iZUwVqVqsd6KLXn{xRb*{Y8=I(LIU3DE$Yp?&)Lv2Pw(^ zCdLST&5Xd2n<|UXdY17b_cUDu5ly8(SCRz(+oKG`gq}wg|3P+e0c3}hUvG)hlp2>5 zj7*G=8&+<|x&Qg15b(8}5-}B!{EcQ~k8(5%Ew0(3O5>0?#H zkz#Q?Era}wW)0IU@$*ne-5;A&FVUq+)5W^^=u5~!-a)!9`saXyHwrmxOBcx`0*vw< z+bN=^roBQt?liP_g?VQM>W`;i@puV0i-FJ?{W>$26latVaBmbgP1;7t9@~7vde!*u z?p&e-2%}`9s6zq6Fb9kr`$Yoko?XszBo+NNm#6)4>w_AI-RjT0>qL*6%Gfn9I+}xZ zP@frBu8AMVypkUz?vP4J6h0LA`bO`b0cDXkgu1{mE^cz|Lytf^Q1LHu{>zJNMXqEDmz~;J@1+RKtY9X2TyeL_e1gsz9 z-c8UjM=HlR*yfKIP8?`m$H#90pz@%O$2-3515Z!JN*3LgB9Hy1bZd8g6*KgvA8H4e zJ`*<%a0J#bgSCAa_j&Z$UO&dMmWfSri1T%zzMiW)o@w5xztH2#y|iC}6;;uD7q3Tp z<1!bVt_;}2^5X_iwat-zRPwZaj;PYfPF$#>93O4nmXd}4`5S~~lSzWY&@9g-X!daQ zO%Kl}+>JhTiLQ>kE@{vN!IN#q1`Rp`GofNxbj#5~_2Z_e9{vfO~kD&7v_?&lA zXu8Ls^WemIhM{)v=-PE0!nSi*R)$pqPm>_Eh#LjQ#i`$|i;cZhI=GNHg_2vq?-IG- z`9_0d+`(Y~Ck+XH4y~aoIs8Cx2m~Uf9bIgY+7V9BuD=jftAf}y_@M#bVV#Ys@u2r; z;meTla4DcWnqOH#kk;21`8k&NNV#mkq?mP%J9|=^X^taOQ_lGsJ(e{sx87XlfWdx! z2TKIcDHBD0V<4PG$(M6ZE6s8baojZeaz$I;CHXbYWmD;z%wij`CfHjEm9AjAY>xRu zVO}MV<(42N0F&}MiJO}9{+3P68e?BTeA+cU$aA{)!YmWj5H0}$=fnuqrIg~x%1twZ)fFOCAE;;jToy$ytaOeX@cJUQbezjo~_p|)BCAwyGBvDy5y zH^G58Mrp~AF;fW?j%y6+4C|JF1sxky3mt&($nV9=*<;2kK4fjxXcYwyGY$}|rhRFJ za3LRP>O2lrj_1NWOUueGxlxC0QJ_n97<0Hy3Q-t8C3``AN?DDDv-|tETro`Eso*EZ z@dJ-BSHZ-r=M$IoX}BT8t7NLWT_IYvhlj z3)2{jFNSl%CG6~q1q?DbyU-pa6JfifuD8w zsh%wjN~%EM;9%|h$*yqx*@~HS@%IhyC|@;i$yEP3ia_`-dP?AT?MbM+o4YrA@^j%g z29a55&IdO@A!KK$U<=P%Yuua<(WGGUT^x{9yk9VAr_@)W$tgZ-tB!@)^KYdkN=j=| z-;b>$8_w8~8t2(^dcM&SZKPRc#^SOw{`Qbc;0_lZBw%MdIAqsOT2{tT|3Yl{_~MN8 zo^gitV%BWQt2JCO#9bRnr}pXLxBjmi?Dxpmx27v;>rpk>ldhYR3ND0A3{3-d@=Q+K zQ#g%}9<3*Hz~HYF%9a^UTUfdigkebSlWR6Sf&xyZ)48)=LNX6}TE)$K_4+$xc&u?StVP$_&M2!<5DSrhM- zl#qaMz^cRKXlb+?p01s>)9REgj1CJrt%lsnQ_0+49bP0Xw;txj--*_)MvHV8XB50XCdjeoP( zy;0XZpt;N3{bq`f8E0-wG4(p%Vf zM#EC^NhQ9@tWl8$_I&e+mz;iPUv}#AhFDq?(xfgh94OQleoC{V!a-V{t|`y<5gj?4 z_Ju$p)6QYHj)-h^f1)d+f3bIRC?(h2oB}n*JNC^KR`U7b)D*eVtgk9N^)D%OZJh2; z!WsbY;=D1kF1xH_TZd(QN6j5T=h)SOEM*6%yK2Jffr>Q42XgE&3K1^6P?vo%5zDSK zvPGv0t&Z&c3GyKMt_=r=q1k&3@&ak7xVX_JfKil}jsqCQr4Jv^jHYP6rwCVzGwz&? z*dz!+k0WWtX~4868Lnh;Um7q3iv1+fA%FGGTM@%*BBL@$Kf`vVA)3B|LKGs@V5#%Q zQuWLs!(^pxI|#ssA9OBP&>TBEerDN@ELl3hfA*|ahaI({i-fJhR;28I2+Cw}euB$E@D4RDy|=J6>}J2!sbMhJiRp|0C~0LqhpheH4%NqzR7!FJ5!nnEh< z*9(Uaozqb+d#$MzOCylLTlW~ZTY9HGqu;#?Sz^`5EjrkCzGg8JAp_jI{a@^*4lS#z z-6{CoCb$7j>X_Il2HQ9+}#v0}QVb2p%l5fsk{`W8*7U;9BP>C@uK`glb+9tHwGr)q2#< z%COWuAuVkzE+P8;)i|;xZ=HL>b`Qtgj@!k5Ig$9Hl zLH3g#cUT3;1k@>mJgLq#>UL$~g5mFEaH{vgaIgK{fjEURUju%RmbxHeOZfed*NIJx zh+vPe>+Q#`;{CuPj-~OYzwU)&Fn#)}%+a+@5ncE1)f`K5O3t1fx?5b#K>xw=HOw73 zyFN-oi-H6Z)MckpD6*WmADwcK0e8H3T<<<}f5>p> z4sM&e0(SDr*73S!_;R1LnOO*80u=2AOdGt{FMP$_(bq@wGoJ9V?{U6_M|?+|tFoJ^ zX+FD{ug}pHs-g2SAnb(R#`4oPbi~+l`Ii>JohNtUf#7ATzne-#>balF;{r-I2!dOA z@D$jq(-)1-z2oEK6kdH&7B|xz92RwKBUl`U%b2Q5*l|c1(|p9;jv&lPIlcI5_{9)R%=nN0K%)>W09Hw_X$?#`Vx1LCgjXaOg?oE~Kp}68 zsPOw_uZBC-P2g3RRU+fMQo%AqTrijo>?s-Ay4^){HMN|7DnWq&}m{^ND0n>@7l zzQb^V%20Hy6Z&voE9vQ*UyT95!%YvCSiG82vPp)CeTUbb-CTycEOHdZeV_v0ELHDX z%}drdotlR({qVxIwG$IvP{zMCrYIV{x4L)NIi8yng;%$;uKen8rbMw~J^i|RD?l%) zD4MXHGc$2yWoPGOMfv#bdtL7&;jm(*1s;Q@rL#~hzm&5hP^LKnQ@Enz;#{V|2n5#` z;td;Xfcuc$QZSw(R-9G1-5ZAZF5j8Bl~d2}?Cc77BQI4(0B>aJ=ZDMF+_60x{0JtV zq!>&lz%~6OG0psjs3IC0mla~k2;e|!}>wwqx zJNF38W;dJIr_=*36@`=0HRQ!VQ7aj zO>g>K6+<*q+<8Lr*E>T z8+D%3q4DvZt-bOwIOCz1$=8b^z)~Yy#}fP6c&RN4h^t9)0PQpgfODjTD3!XvTP3#` z*#M`qqN<{aG*a}lab3mGtVf~;&zgWJ_R- zHaDvPT2nGJWG^@&P90y)GeS%KZ&Og@z!Rh-CGo32CgDAwt>gY#%DE8!hUVn=g0@1>wVoDh$yZ`K2n*PmmcG3P?;F8l*1M1Ij%2E$8?MF2wx z3eq7Z9RgBP(o)hO(nAO+-K9uMcf(Nc8o=Lqe&>DO=R9Yh>-}e68?ViF=KEdi zUibRkpU~s3e)4W)x^uPsAmb~x2E2-$lOkN~Dqwy60LB{Qw5>a{txpq*6*G^>2q%C0 zH3Fjz?YlPb6lr248PkeCok)lAelPDIrxYNIx&y>nx%|!GJuEb$`S?Jsm%m3}!W`>S zrEysKtFs+AA()x$;Lcb?V~QbKKsH9f!%GN@C7;HUEhQE{ZT6EK>VaN|df|5u5RN$Q z3>_EG_HUKmX);Y_r6cT20QxQorvDuAM+d7NGM>k zzyIMjzj1zM*T));K@#>jI=+V+KgJm$0{1P(kyIkiryWafN(uoRV^>b=Kji(&4@lEJ z5L!7500h?0g1yDpua?sT<_%~}c>o3Y7sS;F%#3hbUh4cBTy5ZVF=UV^6lsLX~TEVdGeX z;J(?7(>e8fc|ORMxpr#$^fzuDzR^#5T8856CbeA`XE2qWi(DS^LKY^?uC~V@U;Blx z{fsg2;^sfVa^9(t@!4D}Lx7RP{o8`9Ihqgo`71zGWMVpD9cAKXg`&ecSAV~`Yk6`b zcf4H7Rf}07UhvI}`bQr5xRBD%(=5m*Jbb%pT^rMiHr<5=uJUpF6*7#F7qK~2Hq5$^ ztaa3~=-TA3M=C`IeKd;%ilLMtbf=V>Q?IkLv-#|Wt_B2Dt$+IxyJ*+ZN~BZ6;ua^; zVjZuzT5K%ndiAWrpafd?d%z-2EF!zreZ@qnrJORm*6L*kC)dt>FWKgqhsVK2=DuOs zwYn@;=s>+yzHsmlB|{1XK@7hQ1B2qp;b3J!?Fl&u;gFKZ{Pbx8dAQ2DuMHmc`j6Y8 z#8sB7K_7zy0iiGL2g*?w;Lp&HPz6^flKVdu4-@NKjgqq9!lTbFYpas$yC}hLcf+1y zelc^XLQTzGf*ZDkxu>be?mFhrkOzIvan-ip@v%4DoqvQFmNZo~eS~n7Z6Dq>DW7^! zVX=|#CfUDaOY_E-l$z4svPkJkUoQbQiG7E8GzUWZ*#r8cC5P9^h}esZ(XNcVIkE zE{N-DUTb>SxF$Zt)pe5Ue$HM7JU74a>jChDFDDx?|CRXtHQ)2>{9 zvDwuU(grL}+AmWR*#;~k8xnZ&NbbI^N41L`jKjDlJm2ybo`pqgL#-l4h``*JN!@dDl zQwZ|XmT0Wj=s+b9oi_j86Vg<&o%^99$EL`j=IB-On$X0+H_)Ct!!-yTql?|0(++@hoM0p14N53YW-Lt7I7Kyrp~Wl0!~)5gv5I za5MSDu)OU?6sj%NJ4Pt0mUML}=uA*mG5rweW+Ve%xroz(c~qKoaKp**A+#Zw^e(1e zmA#s%ca8mucJ+H8J5R{OG72W;OrjtEx z!nuj?)Un8JvMedzk`j1t3EZ$9#i!dL5IU(am#oz^Mxs1$ z_=;!$56mG&#Kir!be;Qf3Nwqm4qbo55e zBs$oBPXIj7ieh6zn1xx#{NCfb!42#hInia2!3{Y8%bvZe>J zRiL-2-EqJGAL!{Oc{6c7@Hnw=LhDU`Po!jnn6A9 zY0%I(N=!k#0#lQj@){1#I{lrmcitMFmo<|&=CAdh-D`T+5-q~%o1+E14@{I>V}!D6 z@9K7-Wz#`Vn*TgH4xapMr;0wA+o^zWMLU)3%V}23t5>f&f;SiBt%7?5QlNq(7!^ql zP~b!f1*ViJ7T%<007s$w-gjW170;meSxC>lq>q7?4lEjxGbuXDOxt%y0t~i&?jku4 zv+Vbpe2K=Vs`T)aRbLywdmitRl`Lx#tr~r_vI^Cs)qYKYYVb^5A696} z7ecSFZl)@%c&dWQI@E$!edtz7+qJ>uV<4)Kgyrt;z9Sbz0{_-lP@`j*cnS5}N4YDQ zt=z)?AaH!WVgA1C^47M$j8&KD6_V|ijt&**%HXSE)o#TlW;^XE7>Ahc9ofkUXlbK0 zFLHV({2pJ_kjVZzcYDl1$xmHoZI{E2yDVJ|h}x&QR}pUBAK2rn;&Fe4i3MOqV%C`^ zI$Z|hHML)^M;qU>^s2tz$$tKOLUpX9H6lJfX!#>0`N^Jrs~hn|=Hvp*XnNx9R~NX^;QOdnJDIBeCX3RYPhr+ID{TcxuhTm(HL9e%eGE?E zq9he~j&mTj`)~vHP<~YF**p-ZOd%A7eRV7kzVl{ozZxzlqj5dDgGbc@$9eJ-fSl6D zHvP4U4>BK9umOOxWiKUNQ46k^Nt_r&zJWlH5eZYj!oAA~74^ zwaYVMhX}7Nha6Hn>K;2!Vv6Mzjm9cXUhllP&{RFVKl3x-3bpf%s@-Lk+Ex9ihzPHw zIgUD+B$w>jf{%?^AGb4)+=FHnHjZp=D`(n&6l5+0U6)kd0al%&=rJ*`IY|xIXx>}- z?uTbXt(hCqXofsN)OAbmXglt0yYx7Fb@+GdkfXcPyIDu>~6I)*g+qsBN=cFTz(NEymf1eN){QkZE4$H_?qFgk5dNC?zQI0Mp zg-IvlOPk`|4BhhN5DIegz})4Rk*qq+clz3M**;~a=SZ0o5>9gbitZPaI|Au}x;1fu z@4E^9%*>|PE<6E1I?m;5)EU0k91z>ap&M;EEfw>*FW)B$J5U3NA0)1M7Gun?E8gCk z8K&32jH!K|tyy`dhRS+5e@XezjQ?5eswzo8g4l_F3LTtF5QV)1lNz(rT@BT119IJb z*XhU5^F!v#4W;~JHIYwXO8V3u7)tkx=AD><4KNF!`ufM91R>EBb($`f>_bksH>H*#X6fi@pVUG`C z0FPs}4IZExa9I{bfhNE`!#Tw9Wa=`d@LjUGCvHsxU%VE(2@R~Wly=osLy`E#ZNrCi z35mI-A$IFPYkM?z>BZjCO~?zX_+!8`XqOZ_Upu`q|2J!=3I^8Bs@08=z(b>33*7gv z0(Se-NzB$YO$d`FTB3p$382=i!|g~A4BHJUauftaBgBe4NukAb1KVV}bpQ^4%roFT zLL9O89(ffQ)Taz7^A__))CG_ z->%=mQ$P^koNId}9Oh^*BB1U{>9yoaS7hCsA&nqy8_G@VgPEvx4gMF7;a^0Z8qg zT!5MyY_2!Nk?OV!y}cN;J&NMK$Bt^yM4C_~AUSian`afk2aitEN%APJ=U=X8oS>Nq zU1N0j0iD=j5|1fJ&U<|wBkx=uDF1)6Arh_fBtW9Cx^nmyEyfxSdfA5nvi_RwdgXoK zog=OJ4E@ok52nWm_gD7k7HLE8#rn)fp`7n0)7LCOA9=rLyAE8?#lI#c1fc<9dRkm? zXG@mQ{P^rMSrVSBfshfmG@$)v#cl9|g~4rtbwP{+&*+R)TV0PP)%v&kiV%Rn>vD7o z?gL}-W2vy{+Z^b$S7j|FcjZ517YU@YSYLqLo*RHF`Wm3XAuvF2Nat3xD55^~o8{+A zqrdcTS$y71-mRx!dW3k$;7`BM4QqnlebqIsnZSd0z18mfkNu|bteGmFdFXi2Jr#OX zgZzsF4luoR$R!InCt+4%eL)9PD{&~kMu#b;7N_7p`1eoqZ{?-=JXNaj#@RAOZ>iy% z7q7f@L)U8CsD1PlUTRY-K$9%DGxy~>{c|`vloKmc3Zbj$AymBwTojRC$b?@YeFdkV z-pq}({MH9U&b<0yw(X-8x%nz_+sD$08xY&kAq2cv&CbcvZWCy-^aEqiPXGHk(MEU{ zGM&YiRm-&b?jq;$4yHD6k3;7?7P2lYK^%9NwZL2z6XaL2tYl>|spjjF0eWCh0?1}h zy#3qJkc(lB{4y8gny>2(l*THqy%>ay^90(Gq zvWr%^0yBOR7j_N~ys|N8R&ZmsQ}%=^?A@gHfN@bnO*ii`^CImt;5_Z7PNeFyQid@s@4@3ibcNe4bl@ z!8IuEFHI4Z-)v{3j;#)slest06iR z0t9QL_RxW2fY4iM_T4Ar4XL8;Z=a1{hZDAoBK`1RWa#ro>{Mw_AinUXtARw1%X==@ zNxVNo@3dfkHVb}t%g6X^a|K2d9%oocB4V^fzJ+JPuSuFOzFmN-w0-|`zG&#_&cAOs z&b|iuKUr-+I%{LI#c4E4>2lZN7KrgE$T4_X`q^=10EV7esw}*0!mRuFk#c8SG`$Wk zAV4ncyj?!)T?>*64Hx^fKdS>rcxhn2Y}XSERTv_L8z(kK|5|MblZ#hoXQ5WShwyk( zAEoEOV+BQL&yd9kxK2`!io$d2huNtHh$Oy$c_b$POl40X?hAMbPbRND1`1cw!bg6Y zaCsI=Fi%Ino%ewrgJ^A$?48?|Pv6Vo8H~JkWxG~G{5HFmm`<&HxX<9oBeG3bYMA8i*xAEeeZfr)t^GV)_lI#sP)OS^MK+}_f*hn^O>3#7$l`W@0$ve8qC)V0=IHH;1vlR zW>t2!b|)oDo_X>+#qQrqfq~JX=VnTgW9k7WK)3&}+bBRwMWSM*K6v`Un z_D%9Eg{w>YSXPQmrk?t$0KmM)a zSvR6{t7%!Fi||09>2v*qW`GB}Bfk6u201xA4!vu$E5!4>A7Uge>ZfhhgdocK$hX(G zT(LjZ7VzW8kH)!EC;U9im(Ou)(BIZWBmY1R7Xu`@09vD6FiETQ3W(Tv|M4S8t)vmy zsTI6D9jektc!MB-a3e@5$My}4Gz=D4>)~$%w|RzYAhH9K(Nh5f_tqD-!BjrT(($cN zCD}hg+--Q9X-h9mMDo>Vv2CC1KZeEUf}QXi7Y8HO%s;5`4|Rai_2iA}-R3u0H(W1e zC>~y(G%(=U(W!iS=c)4nJMaXYIBX$O;>`$b6G^4eEQNI6)R=Leh~+l@+<}e{0cm*U zi&KM3x@J#l`taXSe~bIH@xtqST&GlDV9luE3m@ripPQ=v?s(firt;i21ycuVQSW2p z120gM#OwOugWEojyf>}lwtYh1#?w=}8r(>UVK{$({eRz|)<1fGBoLN($1>X$A20%v zkL97Zd-1&@@3+pH3kZqP@~(0o^Np4XwXRCa^0f!vn)&vLqV6J(6NR!3X*l&Ez?Cg0 z2us(DByW};R&jD@tUNW2>_E5=r+Xn#TAUl*E=D%<*Ac^rj-;b?#;Qye+inU_aB~JBafR|ArCmv~0kl;FKGK|lSimTdome*93L7SWagS$tQ6 zJG?vbP}dY1Io99@2+cIz}rxf1I(PkT#c=x?P&)q6~Qh= zKZ=cZD4iDC)5Q_{X)OovWABEU~|2(v|4ra*V{!@)J>3siBZh9ozPKVE8Z+ z*Oe}e^hSo^R|Nf?2R|auN%$}2Js2U{k}fCT3V3a|?Mb%ZmSJ`LPC~`&h+39po{Zh# zaR4Gsi{t8!MARF(_s8eG!$Zhf%kwx8v#v?*!}QG1m=p--8*^TfvR&*KhXvc%*lhI1 z+%IyOVd2TrxN-_`Bu~3)3-wU?70^@9wv)BTa%Vy`0EDgtxD~?ddfbhegYa zTjd|$P~Ls}%1Y;t`-C4v(lOpxiNqpCig|n%3|G3|^h7bfkF2?RUE=b@Y~ksao7h!w zYoaF*Zy=tBUX==C0ygfl^p{o6)pwj!=p8DAp~R7WfM5IH?&-uFG4!>y1q2*wpew(ZkRv=`_+z zV>Y7_eh@0|6C#elX@Ub?j)eAeZw6`bL)U-ERnOX0Ychan{@0)wH^=$85_Q(tn9x>3 zUJouK)>jXcCPIEyP6Q7prZqoEkX*Us%x_>w$rMJl4)( zXe zBJ>bzV?&{!XMT8to=v;DonVF9Y2Hn;dFPoD;P?WfiV?^se)#B-veka-e%C5R2!au> z@$~VjcVS&GDOoKkuWac~W8epiHiQ@(d%6x~~3jcSSLfF&y*2v(asPsdnZgt9(2 zYXlNJ;q2MTm5vQQHzx|`ewXVG%{8CrCPb)$kn7AAeOTz^`Y1)Bbht}keEoUJV3WOo z)VQ$z$r%o|RIRvV*hiNe6oYKc>NGMK`ntN;Z7WLCILIHPEXcXIOTgG&@AXseALkqD zTG9^wBYdH_8&9;Rt-XXu6hp1E3g&+&#e5Kp{ zkloRXP4Avn7v8(vIpQ=#`{KsjGLRg&-fJNz=lo%0pg8pcJl5kU*8{8 zMtnNyN6>W_8_T`%DqL7TI4R3scUOo<{nByoOg#I)i_x6n3TaS~aVz+mDTG?s*DiwxPBiAUbW?BsIL$^;x5haN+oQ6(+WtMjd)wo9p#XcZkOHap#K6_eFFBdE z>}PcU4-05VlizsLs3_t|*tO4x%mQi@lf06wc>4Ddn#z*5XCENu73~H#y6(EJ;i&%Q zE)k@-6L`sdf?vD*vKOFe5xAzWe{TEKd+-aL7YBAw945Y4qv^1CgLyiBXokdul)022G%9Vp;Jf`cea4O-=o4>*r2~E9eO~7Z89_WY&T!pCmw7YTl&h)l~s`Ez^59ceJc3`L{ypVzSy!9JK+U zbIFv;4-7wsb__h4M#EFBO|A2Ud*rLR&&OEr2j7cLa53NkeHqB}PMeMX<$P;n+2u=~ z5V0i1V=e~&w`skw%MH96-M~1#iJQ|7)gV?*8F&7|@1b9~cIlbI0?13h15aD1kP=9% z1>zdw18pGB>INZ|p)RS!B%O)E6wJ)b9EU(Qy*1IlihvQ{OXtNwE*JwP9> zdhl%Fa{qYmW+k}tIt2Xay`EK@J~Q*@eABp`K{Phbpjeq6@myJR-zTH4KBX4AcT{h_ z&JTk;K6Jgb8hbw{`FDA~!$c2WnX`8Swg>ejmzq%(8&BECxVHg->ozXfGKIk1PbGnQwjM zHpS!6tHhe|t_93!NoGE_)s3w!Nii{xUq*mFaF0a}gxZ6W+18@$9_`Qe+XJPe{WKa# zJ2?oofV8vhOZ7*}^F32TSC(&zq0KfoIFX z14|Z^V6VPFY!ARweepKYS^}Y|N$R|}s;6``r|-Df&x~fTADaV1TVPauIbE|WVQ#7^ zXn*57%|Hf7JrV>u{@KU(%YK5=K*G>=KNX)1ZWTcE-zg2MH{v#rZI9-*3Y56N3LxXw zueOq~%-e84`Y+LdXtZReIZ}0m8Ax}RVm}c~aw83H8-EKpaHbnc6zX3p;iF=83{4=& z`CVz#G7trg^b}>OWe6vl$GUs^kWv3Ha)Jx&u|4d(Hrb;wd~l+m8#91RIaweNOn6@O zXK5b%#VeSYaJ(*GmjH?o9WI!NI6B`r3-}o79FIN+P7i{Sx#PYfg~;YR9q&;p?moaJ zd}ZMh@^mG;$_U6m$51xA=gSU7fNmQp^+4M=Ix19sI3^Rr?SS!FHT&ILFhJb>Rf&dF zUK2ym*0xr>hIT1sb~>rfO-(cu8jD&!o3B*u053fFD zwRr9Pt*fFS3KnPDhc}ti=*DO7#QGxgg;&@{5CMs%x}wVmsxEk<3vWq2fO@T_|Nu2d4`Zi~es9f~J`}ZCl@%M8= zNYC%dZe5Jb%vYf#Y)ZfER({?DXN7H>)D?W{MnHQVXb?9(`tjpo8LFZW#DqF9Y1LkL z)pre+i=zX{$GCtb`?K$g%jqu_hwr)BwKY3)7lF3h0GM-c=dUCNLG+&(Tz1%zCnkZY zp^RXPsrY~-7%^ngD{meI*YbFN9=@Ab*)89O^atReKBBcCi}>l4+i`FSpF(XzgLtM& zHCKaMS3k)|AvvFZSRS<%+R>r6-m>PbUZCX38UD4O{1mj#)mUadtJ^+OK0DUh+dk2d zk%Wu=06`xHfB`@KtoBK|Y>NBo2~aJv4c-Pct{5{!oMU5})SiljJ z}CUH$`bV_;{^(;-Sbu`nop39>J>p7Y;5|7&Rg zyai@sskR`pGK;W?0OQeyn3*^KcJTv5tfzS@-Dw+n=pVQCDGH0#M??0Xv zo-cFfp+x%8B2r*tbHg=(4{|CfOtcY&nhay$c7Nz+ci9`!e^!$dikp zXB8T9l@B1=_0N4V>wwF!0cv~U&Wo`EglHrj@$}U+6XacRuvD4FZ(BG7NNPmFBO;)i z+3I=Z7Uh$dnHX__b3x9;l7WH2d|zg$j0TpCUSru;2@qCXh7V$#HE`B(_1~a8*4*DL zuEy~0l$D))ya@ajIU88X+}FdH2&@s@7(fkRZ;|#Evpe4l-t%XHLWCQPKR2uEn01bx zQmRuPD-BGfF!c2l_tL5?(8(36Z~3t4b|hW_v~BDyP7^)K&U6~-S^=Y;bW{oQ+Nv@e zs^PZo*XQzxVd)p446+DE@1Wp|yKJ&1dUJPxi|J$oHsF+}J(vM>fneFFO~ps|!E}p1 zU>#gn%bj;VJKGgn|F(2=bQHG$fl&K^#`$`CUU|nHI7i5!4IJ#*homghiftuPb^oai z__x-mt>qjH+xJJKt#jM*8W6sfz3b(sW4WGA@0OgeP_Mkskr@Uq5riBnykC1IYaStq4rb-GGaEyC2GMt|(^b=>GA~!L_ znFU$Jcowb=L}cKWSKo1e{GD_#xfA(fh#JlJ31@`=qg3y#Gb6^ZGb6^{J7A{Bc$MhZ*-V3z z4t-%(AEnW$vS+tn`I(-Gysuve0Rjk;oGfdJaj;kihPF8%Y(n;E%a$TTsWM$aE-vHL zLJ~qf{-Y_W!~EAy6f!4)^j`T--!g+4(jT&j57ol1F;F+$ENcy+w+8$>9?m9CY-$#Jpl;j`IKhG%F-9<3$YYTa0r~RWycSOcPbLz=#pM2N5?Ak=0j{77# z_mfPVP2`VvfI9g6bXf-XS1>Jwqo<_=;7i@CYln77g4}E%m3{~Ywi!2_r;1E$w2m?( zgxi;)2?VcW3_%*i)XSo!BSV+3JN6f_hAK`FQS>{NXDA7B=1;QT$oH~%&%;xIAkZ`5 ze4-c=g9f`c(wSdD^=W;l77%D8YTb^3w&_nV2D+fER;~5h2UFZ{ zR=EFL^<@%hG;Y(;iMuNB`xFB6D~|8#3`Ty8$p)kcD3uT$3at7!(4t zmdY744-C(*Q#rQ^Xhhv8{qSj|4>o6%!MFFsY#1HY1+6sj zFcL`1$mC=apn&3ih67wQ8=f6VZ@-Upz;>5c|*=)HMbP1+@TcBD*x)Cm2(XHuPKkUK-s^o0= z!86phk0NI@0X=@fD>Dz3>^D7Wv*zX8t7<)0vw{2cnQ#{+A@JzaLx1FZiOUSgYQz$+@+)QU5OME8i;>w`D z?mU^}6$NLJB1a<)!0+tjXiE`KA7f*vQ-%S!I1X{--Vh^*0vLkRFP0Q zZ-Rvk1VLZZ@pE(X1i8~rR+Wk^C>AaCUj2?G+i~yz4} z5g6PERx~!}FA1B?e1l;}!y8A(nBe;`FGkgVsuOb#^x{KqWVxnU zs!j`d6#hh!M2FyFG<%Ejl%Jd_6AP&4b!#yBfaMv8z+wLS8|Wts?UvNf>?MY+tgQS) zLp2KUceep4O2u&Sr6P@{iiU$JP$u3n?y&D4kE^T{WL;e2U^f4nb~4x>RdQb2*V)f0 zT)>&8tWuAtqZ8W$6b3$56c3PagFG+e{euIiJl|N7IMJ0imsvwyQ#%iOGPrxH4Mhv) zx-bG6^%)RKlHgc; zelb@#Lw}qxk|j?7@&s;HIT{ewLzC8l+Wf@!c6qx3g$0e?h_EmWpR~=S-lzOpN=rcT zrEWb4@|!i~6ctS+kA?4;FZ41oOxF{s73GXl_ySCqc+LdrgH_1cGMf|!e z$h%)>Ukgv0nH*7@35!ecywDvrgr~v1Q=$bpUFk}N&VMk~KYyjrvxXK(no1sa*oA3D za@|uz)oCJ&LmwX-Yy22K%Bn4LF{VjCwdKDrI#6~;bKK5<@y*$dRUSw~J&z5)V~WlE zsYSRS-)xP#-D*^ZS%(O94FoKi%kTX}O2?(jhGAG$-Kfa}sQ(V{AeSUc0?Ip$0+gkz zYsX_GZf+-}znxhD>y8|j>m9ZLr5jGimqk2;hrP!_|3DUbeiRy_cNLmc1$=n_A*l+? z&8l4vxK8$`@t4PIYjNxZL2{S?KX!yYo?6gpWwS^qn6AT?#ol<&!D)B9NBXqDEcXUC z^7!K=xc)-eo>Gqd8=)cV;0=tR05JqkJ%_6jO2Rq7oBkpAq4NSmB0*zFfG=Zx?!NwC zv2y>@00Ka~_4$P=7!z+VT`9DlX*Ku%l@57*IN}r&!-u0)@w~jE)r+)u!W`n}No5wg zeuUjfE$~JFuzFMsk!DGLW%qbxdZSh@6e4p$$x?>hFcBGxK#y%7=4YEu;oCl4VcfLm z3mf|{70l$HQ^8arF_DqpK%jmb5LtL%^w*7)m=*yFu8uCo(Oi?=zJL`ihY5WekVBA; z+1?8}b=e=AhSQ38ze)uTHXjXVW{oEUqUv8*e~a%_t~Et%rodeu{Sqpghi;k8w8<|( z5xpjC=SwcaO7SdUe9uzh@`25DlDq%fzkK#C$j;3F zWTXTt)G{s!M7s>aDR`fV=*FSJ_mKl8swZTMO>n6h|7K4r(=POyOsqs$4r&xzZ?tr_ z?Hdef(VL=-#8#e^=Qxu(tIoB2wC2Bqe_ED-%VC`O;NmhW@+fp1?&3LOD?ShHdt{>7 z0L6RRoGThp^v9MbvcU^4?8@CQT6&|(OVZyAtuM;gjY6)A8Cly+U3go%-+#f~PP96| z+UEW*yg+OyBo9ztp3k`s+gjsd9(iuq1{r7RWu)nsjocS<$0#b;ZR&7oeVapCxyZJO zTQgiC%k*K~?UMK-=?VFtZq>y|4v47G_zS8j*)nb+Nw-=~$|B}V-LQ~N4EZQ0ak0S2YeU5xN6re{w;2%uWQ);DPxo;1F$o5hu_~L0qY{? zxoz-1L6P_=K|*-mH0YRg65Ih+`Lg3}#1*csqxJcdClBSXH)O7~rl`y)@x({Gs}|CC zS&=il8T&{+oNzdCgX&(UYv3lvPB-I=&yyn?hdz`33S=Hg&h(d+j0qni-ck#GdwsWz zQhiV9F$C+RXo8;QN|M-S%`3am?-+l-7vA6R<*-iUHq$Hle_~4fzo&k{m>jzb_+SjO zLPoiO9hJbraI)SkU#%Hv>{_6?`yu))om37kzI{Ildxa=lMzhWz7@C z6`gWoq1Mw|9CIHyHo3huAaA^5{)G+U{M~pD|0f#{kU}OK>0Qc}Fm{pxEORz)t$yAK z(Ra98?F9il4+;Cgm~NnD?N&d&yQQ`0O@&Rtd+Sn9%?kkFUYFd9;rug;L99hZ5~lpsWor27iNFVH#czRswlQDJit9g1PSVE7de_I!KwK2|cJK;o z&$Yde2;b9}E57eNnBF~)@Bov0-)G;~z&MEaICX2cEmZ_ARfqD@_@PqWg* z2V^(qqkVp{EH~EJvFeK*#}`f1nY15qlgT}n%31j-L)Cb!@M602XI|d*fRb}7Sy~J) zbpHr^(#1W^C_gM22T!mK28$HNBvU{3L%qRiH|)r+ZNl1lEzmzMsZV15_?Vr6DO2*C z0^oht-aiAWdJmAbUZD9U$M(2t>ek%YDE_0R?ZIJ;%xlHt4WR?Y^*1@M9ZxWCg^>!R z7ta~q1It7Wy7Pe{{Wjy;nrE$;C^7M(UFcP*-@W25ROd?gPKS%7jw`JVv$o7-H;c~(?hETf1+WqEqllSBxOUj~oe(T2Q zj?eAp$+i(}?6qKL1JL%KC^m{6)9WSF1S49Mg%kL!jX?HKK>)b)xZLyE8}V1rv!?PwjRpdn(p!+UHCI_W6aJp(`~|Q=1P|m z4CAYIxF0-!fQb18YrmL;;WxnEgX~ zH;-?ICwzuovS@_WZ9L1bE}S-O;qKkX$dRI0a@x%x@#;|d6fwcwPjDb zzIEc!HD!Sw*z6WI_XR~c^nwzZe&-+1DgL!C0K4TG<@ce0OIGt!msNvb_=a^v)3WSe zt`9NXpTYr^)n;FUf1pcwJ@d$knN>q!RQdH@Xlu$m2~h^gNhwnj!ffezk+i`L=lzB- z9a$5O50qVSbyZwU#ZR-uEo;qzbc-z>vL{rjlI?W6fQ z?`GE#c1h9UqI^gWAWfbpy7$8pOz{jC6BA;Rh<&LvmWU4yQjXHK*Y9oz@ca42^GKxy z^46S?rCtM>IBQT7AjknW{IsGM^;S;jAFyZso};sDAi7GSN#oa{5l~<sS8>AW^j@{uj?kd znyrH8Mg9d2)FA~U-7x2{KYZt4jy=Q0HLJq+AMm`+uUR%26JRdKX*nkJ;K74r^dRr* z#)&E$f}N*!#0uX{bmtPd4s56%aWzIE9~DNBBIz-ao7ifv74#1e+C5cHKAftN&M^(* zZ0xBNw5_P~p8g!wcE8!|WYd~thG4R3Q^utV%`|xaB+glOVl3#uCnUsa0Q}j2lV6HX zloHkzQeLAWR7{Q(bs~!WMl63esjelZfI3ya9O}po3|ZT*OCWyGEwp~Sx^Hz#$R@0Y zC&TqQ=Mle~FVpEbpP?v9qpQxS!&0JYy;ur4M1J=YssZOSWyJY)+2U{KmHE%F%N!6M z%o;dJT;HBZfZF$3r9SuS5xCitluSaE$rynf>ppN>`JpG0336Tay?>5!tfKnXDK(}A zaPLLtxKK&CpZepe&8_Ba-bWlZ+?~6vQM^?EJ;|Y62X$5Ldx+C`s;*rw@ug<(TPFoM zA?(JuRE##un1A z61G)5j`lJtobUd1&Q+*rUfPg4Y*@Pb8X^fmcVB&W`|gFRLH*f!8%@`ImQE85woUFv znhG-=XV~Q-+|J-+lc;a8ZS)h|Kq*{CIdfwW{Ynd z-94<^deLyaJR5Id&LX9l9qn-*%JRrOlO?9%EFFP|!g=}TQ3N|(wC1q zI1MhE6Jp{G&uv|F-uh{MPlf$~&WFelHO4Jy52e(L$+rhSX1@&^`j=jqKbVE3wtyvL zH}}Oj2=xRo?$e`H3=$&dn5yM96t9lj(BaR*N< zd!iL>8VaC%9_)!dsKPMYIM7x5qyV zY3*oVg!)~U$$vJNgclQ;f8xX|czP2k7}HLX&K1T!`WoRnQ#+Opc=fXpDujq^8tUg< zDt#ZpFDXPAGnRotg+* z18;QH=c5Ks&)kRhx=ZmPujaT1*eIJ!)EX}J6P^G$J zRH~2xVoB?QM|{_xrMd1*7k_v0dXuskr3Zd9h-mW~M*OaPj?n&G;tNlLr48b|DQGBT zC*GYK$#7kYXVz1eF>n6d8cYnTA6X8Ra`VMHOi$B`J)YONjivZ?UYj!}*4>vW0{pj! zp6uuQ-^U7f>HCR>vIDR@~#nR|puIBqr%I@Q@Kk(x2M5~dF{{a?3-?Rpq(7Des zuyeQ|_Kf3~cpKmvIY5T)irsCV;>2;x$-scuFbVX1!k@9hBawQbbP{Fj(k>$gN5ojp z-Z9P9rOP1>Vje=VF#eeNbF8)iWs}=i)o$n5YKarRAcU0-^(+AZl_>fnaPZ6R=inbM#T+}c7aXKu1xc`TqAkWXKwC}dfV!;)uEs*Eek&{3jtKu%q6o=09d%6>B)f0sWT;>^awxLQu3^Z3}m+k;7Hz>o}Z`O+-IDLdw{w%2{SA_kc!n)}GGGmr8_ zqf$Z^nQ((}H(B|xA2aXgP?KdLElP>v^8I>4kV;>=u=`ao29`WSGmW~Ma&J`*`Qtt) zlgJd6#)|7Bq&c$U#(Sz8dcnIWKMpBQgOBy_up;`!dU^qcoTiU{vGppuNQSXqR=`tq-suD}Z+u{D3-Kke9oY9EQ|Sk--G&}F0< z!ShsM5okubvyP}x3_p6j3DyT;65)fS+rtBtZ2XDZuk+T@bC0Y=WqLrC3*CW~yPAYm z-*vi0b9Wvtqw}v``+N9*J|Z5)^NVBVHDBl#{HZacyv3 zp78hP`Y^6L@A@$?FIU(mC<`yFf{%JW`z8%+iaWXe*1siEXnHn$`X-QOO;5&zO_ORwYhACn ztvT$ivd{_-GcASM=aDZE2jFGN{-{ZNAupb60TV8E82TKhEG!~eD($wvA(YLr#_G;v zlh!{F()CkqR!TiJT!=1zD>bb|@?S)k1A>W7QmF76BsNUc{TX)A6@}0JP}!IO8?7+3^iw4@lnj$-zJiT`CH{3UfJ$d?ScHz_MuI-=g3 zKKZb+FWEOc^++_bO8V5IkSeWI3H#-oR93?3>}IiVWg1HnvT7-YeY|mV}tj7B+ZMQ(FT#uM!<@pRvgj54`>Hid=7^jO=AJq&nIT4;4Gde~_@B(6#**6f zG<4r1khA0!8-Y2F_zNb@-=9B?{6iEkej7XpoCgwh_v#;E=+ieuFJmPIrQQrJbp9rU zBPT+>cju(XUsAJ%_Qaq?W*XTjN^XUd18Wpzb6O1ozer2Kh<+MF9+-9SO|e0Q&*i#V zuh~j3(GQtl-TNYyggI9gpVjZLVgF**hU(RsJoO%Xu5sn@J%^hHv1%iDJgq6s`M20I zAIb$4wg1-K(Un_PuA;H&#HzurtG73f6DNLDPb6307YCtKpN>*Dd`S_ZV-kBsUakX zW|(=enPGR`|BvVW@_c)~u9Lx_%(-o%ULOVYFEa(hYY83n3V zvgnifXR=oAT!4>1%@=>a)5w=yb5aiNp<2H#JIUDkg^vyQtKJM$U)qDAl|aeJPj zNFlGzN^>y^l*a4Y_+zgOD>Vl`tG!<9uvGixE~T|FbFVfRiaA?pMHCTP&|+W=GixDL zEY(vPEiM>(dnHDsXvitdrxu-}b_T^X~TH&HYmq)2iL((Nhe?@T&E4_^4X zyDndOwID9EiDm8o9V+IR@ZR^*z1Hd}yGe=bNfy+b&0lezDJK$EzfL@R=hpWH*yA7LLTa~^uVenNaL$n8el^LD#2RHhX8Qy(@ZB3VmP5La+6?0h*Z)mv3&cP8T%X}3q{D=g@I45&gwqMPT6*4wU*+O-LgqB0CPL8u;*BU6p zRY@4$%?Zr8=x>+=#}12`&eYpHb>1wZHydtSiuZZPv9BI&^a*yazoq(`RhqJ?k58@F zF^YQVh1K&i79BC)R~VMG>z^RE_l!B4Ys~K$)_#7?{=6?mU6207M!niCve93);~PoV zl9+-KKJ?=HrWHnHX(^i8H|VZ?31czTKDk&018o&6Sg36417uGv=Kq` zL@4?0k_9TQDlo!`j2D$6$W6+7Z%7s>5qSG9;*!%!KnH@`z$s}nV92s3ON0AU*5aP~ z{Pu+7dxKA|iH+iKUEB-b1?`w!^535NAvLzvE+{&gsK_=Jd>@vv2}aWGToO}`MKRv5VS!;v78Y&G17l6WtTGWimfd`!^M-0dqsrJj$!`V@RhtrQ1b5Dk)JNH zZS?)j$_gKDsro5SN~E1+c|tKOM}8(u2N$(YF+F}vG<=*DINLWf=v`ESN%KY2%qZCC z-3*R-GOziu`2S9VNa8xss@4KVdqRyFZ(D|MEDdXby&aM07#7M}^bGe&_2bb?uV#1q zFFhX~?^LShlCflMT2a#Bd}Y<(D^6DCkxWw19&mRQ`yiD{LNBCmQ!!&_-c{AFJVKSi z`Fqmm>Bx_$dq1Na(U}OczQrC3p=_v%=(nigpE3J7O2sT>#2WP03JG&jGCgYxIOW)N8)v~p$Fq-HUy7rE zXxnF2&rLUn6@Uqj!o5U>J>O9<>!$*_OlRL*^aD8+dfIu&`yvh(2#q?aTF8XY%|S6y z<`dlKVt1lmqG=?+hw+l;!TJ7`QQ-So82WR56hl^b)~04-zjx#tDrN5k|J@7lm6(Rt z==JU*nCmpD_oqxbeNW*+Z;Yb|fdw_c##=5$pDd&jnbQC)OBwLueD17td0C4Fqvw zusqlFwCW?V=^u$ZtR$`n+)K^U|Br}kQXBG-13ORZ-s)2B(yLuxt)UeC1sCb zb9sMm1b;lTy8L$&9^O&R8@@i0mUb~0p{(%1NaQbB`n`x^;K-S&|cMQ&YxAT zD--Ha3xpDM>9Mc7)AAL5x@}m~?dqBkF+ag3AN$nlnl(KG?Fosr%#?%!N#76DgDY(` z1VHlRJ^`X(94Cqq`e9&sPP%}=iwWs@L>?oF*Dfm3gv?!%tNBZqGW*h(OYlj%<2W(? z_5VkVnvj8!ky~K0<#xTtsE3tiSl|cipHto^8A9G)yRR)KO8tBmp=QD2}pQgLa8DpkXZ2D8t7Bq>>8v{4Fr7?9+qaoq&-fU_XyHZbzROlCh`mln8d zwbkvfc1l_|h0Z`hk5yVd%Ku34eK}ak!Ux_xnP*PgK|De^IciMMd4vxE3pwaxZs5IsaaMTaY_a zE6&Ey~krEX%Jtni~xHKB2Xd_yp;JGoM+LLEl zhVE{A*HdcAHm>>Z`)l^P%j?i;SJOtn0wcTXD*LoxYrDAUb%xN8b1{Q(T-4zTR*Jjc z`$jLGFO!Ui;=`H8Ou)w)3Yp_E3&cBxkTG3$ABZ0nA0QTX9e!f*zOym?;{3+cb<7U~ z5^!!?M$a3z?rs#CySvVSPH>HTX@}npkChCM;}B1!D&(?)c(%@8;J`eXX>B7TTz7AK zC9yv^71b9op{rrKb~8Aga379;}O$TYJY-Bk?jJKu1Y$ z#Am;bMD_9K{xWdQFFi=v+l$g!>6)mnj z>fxZJ_cN6x%?qz=)|co1>KPg2Fx44fyA7KTs!(+pAGlgzzHU?HH%%Gyg1f_1|Mjry zau6;~dr3Qy;A6`P#$K0k4~-J*L8FM&DMyvnHMRz-n3MIFizoIJ(60(_HAKFJ^WNhu zle~nTxD}9pW6~f{CAAZ;yegM)xViBTPS@T!5*dQVF4OK5xhHCB5h@~y(?%8dMi~X9 zMArk+cT|sY$goeV~XaNv1gPrR+9bZk1AaWgmE#V^4Q!?ze&#eHWBLth1NH zvUO%m*)yC3VI2BJ}kDrP;+U0>#yX3TIkaj*n{yO7Uecw`sFa$;#(h_UIi{o1#XATy%x+% zSd|Q=W~9bvrc6Lqd7HY~p zkP4@Vd9p0gZ}PeAFw+Q5Kci7EWnwsXYfVMCbIPM46!|rP1KKatJP7_F+Bp@w@LA!` zio`Wbla?gVX^wbzyK}uiNU~={^6rVJicu@0>q2~Gh>(laoJ+s3zlO#`k5P|>Nk+t` zC(k@DcblMJZ!AUoR>2Gds*0>it31n|NQ!Q!w~onVY#k^p(+#na2UR{0NAYADsx^?E&sXh=4q!#1bW7>fq$67~5lC zUi`XCBkuZQ$Z@^7do2JvGV7t+`JCa$?E*}L9Qr_{e)HBOBcf@KmU?X)Nr5PQ3)j8Y zT86)%+mkv$soAA#Bwi9U#RA(YkS+4%k62PKfaA%UmBN~-EJpMp(Df~rjSZP5NgcDV#>TWI}kNT{TPZ z5*fZA@iH*D{m3nXF?_t%B8UC=Zq`|srooc#b+E)JXX?9eJ$F*QRPVxPlfhA$85m6jsOGt7x1y{EP8IZpq1J5zS7AH zI7EK_ZOWmjQU`zjybdA)xCQ3Yrw?ao1r^*j7b0HXd#5>Km9l z0aO~WAGKwZlumYk!MjrG`xw@^b6vZ2@Uh376eqJ(Am!!rxB;62Zm(qzOUkF=yq_jElw zAMY-|$tA9X?TK^Ls%`tdNxNk_HU32XW_7-D`QA#J?Sx*z?7^Z0t#nj^+E0Q;392rwzd0haaNrQwu z^u~u0uWGzVq+uupjT0a%anCcqfTtkv>Gb8}nnXpHQ)C(O@=F0E4I?VZ4{&nV=#XHt z)nhK%udOtom)^$4rU3Nni#RWY2NEE7q6X1KI;U5>ov6zrV^q{kY2Hq6NNU^CcZ%rB za_uWa`!Q-&aXHd(!Fkn~pBx8OXA1L1D$R~_6=jEnQP&`~>$6lpb3AVfk;G=1iPq^c zv#)C0hb!)BczodF-YfD@r9yaI3q43z^`+jK9@$@iSebi#u$U^%vpgw1wHEDnCyNa3 zxO`sAd-I)CIA^<*JT%9UY@+E+KoCB=r|>2y!o(|iBE!{;qPKWifFI%h5E8HSixv%k z;r`3xQ#cZ`lpCBI#4IXOMAJxI$8XlrRM;tLMUkNx%hH>vtjytn-m%vzF!>8=4Q68b zpzG6g(_B)U!0|U0lwc?==Fv^)CncYMv&8TldAlzS8FXgpadFvtGumq2Xx$cU)yd3_ zvhXNv^?ARvUOmjfwtT01zv}qV5UmNarZ!ThF|ye=LxRt}DV48k`2z6mU#o^@CMT(O z7-=zgB}MY@wX{lx%m#6oNY9+v9m|1Vb1s$%fEjK`a(iPp`t2ThOu5bL?0ym`8eiM0i7`+#cM;zV7!V!{zGxcs_;c`XM85 z@>U{o-2_Y~;Lz#d`2xZZX$!pH5T$^;5jU6w;J>^3D%kcCW!xC_(8eamWaz}eAVxzb z33-N2m}kX&Zb5umM&tJ{X=$_inAsEa2BUs7U!7i@E;HbE%`vo`yO~_&$3y;vBu>Qs z_qS&>Jyrwt+voMUqgjEc-K)QJj*wiR|8fb>v6~}DN7VosYWL`D~fkgsp|SaAG@iX5;?GJm;mx z;4p*zh`eUb(zd4gp}TQ(2;#cPNUB28iBGDTXNJLa=S;tjT|`UEBQOLL?7s2dws+WB ze4|Sy<5bA8f2L}U$Y|cOL%<=Va7QTzI(ZlRfOl1PQh9)r^EJ$*mP{| z?%8sO-_ccfvGGzEey#GocP6l*fnZFhRI`=USSW}c5sB!Xm32$0@qj6C3X-6rqT>43 zlZ;JUOT(%kEv>9(#$YSAIgUB}akGEaG(6$Z;E^rhn7SEovUk|pRAYeWvnZg}?=1dx zdH)D?74O-XWWjR=RWgL2-o0B#Wnv$K-8``_)4j!|ux)*%LfIj00uO!I1lr7qpFpC684%3>i0t2Ip~xZ#&*+`-!M!71tiAVAvgB)p+c;tp56L z3eG&&vKt`a42SjUhx2oDA^!fPG<+s+%k{BRi88}tuB%B}ybfS9C&;>-wH(1Qf|Lhg zOI8HKL7i!ib+gqcs=AIXF04uk--wz6IPNt+==^PDf9V6PyPh1}6NT zS4UowofP2SxGiU}7-#Un)ITpF6O~m`63HHNhv_rwZXyzlghyUtReB&V9{_zf2c{MS zFZ137yGO!qCtTS-*x!zYhCaBSR$V=+o0mt^=9lgM-lO_UJav0}yTf$T1%B!R`n~eZ zsw(keiyND+PYqbB?sOqYJw{(l{$`DIFJb%ism&0$9q&*|yaeaqEwY=ai@U;D-XanH z&-Sd?=a(!=Fys#&X-=Q(|Zzr+ce|ZjRawsB~0+I;HG+t5n!Q5T_f` z^LPt1!o?N8N6$#=-n=;h-R#qt0UIJMidhvuTn7W*um%HjyU_|Y;CrHYpMW(%JaW_} zxTA$<0B6k;CAHpkjn8SWtM$VWIKaAUf4Nf2E}6ubTyiHV&nG|oUH$LZA3Kh5RzU%q zZ?eC&WKjwtY=p3DD!Q0dVrFCQB5Ccac%OHlu@$zDqt^a{o(@yqyW6tyVQO*m zaw0_^GKck}trZx)#_B(Xjo48@}7h2ev(3zK`%Uw~wdR zMwhzpu4nUT(^a^x8L1j}T)jB68^R^IC-Ou}dEq@Lkfz}qe3BX-N-(_Nh1VAnqna8` zgOl57RNlc#I?JZVty4U9Z`%h-K}&u+UIPLSj+A(LC+-4bCyW~uTOvTC6m)2abnzC`i{_tDT1TL!_aGe8U~!A`rDmF zOy)oh2Q!qLB^VG;d$1!5x;1F#QP1CN6_giX?Dixa>08QFT~P3ZMIqWyJ+m*OBJP^% zue_S=>Yd4e=55((eFOdt?d?r)a(H4O4L?i9g%VozIAlFo@!ke|SaMCLTeDR#Pke=DG{lq-u8 z&?4Q0uP>4JcA<%OKwnK0FR27c?dJbpn>s^q6eBp-kY}Vq0b!}xUy4f^UpruoMhy}R zvzGY8RXzKDqFc&M7q(Q)2R4{aQ&sK-Z-ay0W51o2ST0906doiy&fRIN8%IRBg; zCuQ7c!-}zw?}V9g)F5C>ywIW^&#{vi;OnM?$j48|x0{1agXzr(VQzvF$A%5#^0;zJ zBqd~%wp#mmDv75yB-NK^>@Ky-`$U)e>)S%^%e7cf8n9>Iw7chSO|ax%6Pj5~!`zWt zzN}Q+k(wGD_N1KvTP`npudD(2IMsERYxG-m#E1j@o2)a#+=DogNeVr%{*u+yYmdw~ zO5g2a(U(RszuWdXC>^A)eqPpNx6;!u^LF@O{??2EyPt+-3@CyYtGa%PlmkYQxSfXc+ng(#t5gRSwfPD265R*w1H-nJ?Gzo3Z+}4b&E4bG-tf1R z%}Rfk2HIbtX){)(1z=KjxE~)SWPQ+Q5KkyR_9wtv{?5pcp8Cv;8UtpoPp6bHIbZBu zw1aUL;4B4Cp>tU`_k}MvieRQ&3px|o8WYi)TRZkA2!UK5kG11dK;Oz)DGta`3yEWV zZqin7BIc*S%T~_Prf_!E9>L$}$zdI)bdEd=Z*`Zfv@)`rBlWO7vY*IAxMX>IN^VhF zR%Jv)M2ubHJhzcE$Fu58sv8(IQcB1}UIQ|xe-9}42=d-jq<7HtOq4<7-kzK4$o9l5 z@(j)n$56^K=p1It!Ugp$W;}Z?Leynal-nu1qkqO4L6e6d<9v>YFy8c#O+=}wsYRXb zIw0d*S@eOaH*6UF*367?s+|WMMlKy9NVv-~bN8uW4OO1fh~FJv=xeG!pY`#Wk=`_u-&&(T&+5v2e^WK@q;xBI%pE;gOat)mZ| zs(Q?)j%u-+ly%nMp^3;nwLlTx8N+{{MLEHmtCurLBU|&?*dm{e)=JUJSjDfuSQ8%D z$}b}^_L8hYsJl}$Tze)F&#?SumuFw?7k)(DfN-wrfb|*;#L|*FJBi2Q@Co*LMgndd z?esR$w^Iy18c>U*e@kT!fQi^}mXl zZbUbR@#B-7M+E4Y3Je%Z0gCn3ReOp&dY_bob?mCua%(Yr)=_EVxNzPARL$1&JrL;a z+qat=V?TVD28%H=%B;X*G7GX(o72{(8$oUu%jvb*MHyejV-J>fW+cgI`1JIVuqs5? z2_}ljacxeswY_p0wX?8z56;JpHF;es-N(M(qTZJJu!CCP_0APq+II9ad1dUS^vgh< zI<(s5k#A~pm%y^;^k^*uey}pD{$&>?^KMIwN<8&mLJ|jTe*YE2@;5`5_XuZ%9&6$A z_7>qi1>dDe-5ZWtyd7j`gJ2QA9)__rH@&~sZuO?dWzOu(L8WIy7xJJfH#xr4*k z{IazQ8=QvNPjwW1{=&}((mIxL@Qm0De`7s;h}b1#^a6mp=9HHxQRzMHpv zFRR|W;%s)M`CzRQ2o34bWRGrUPKlxiJMk`K4{gO(Jd_=3&y{JMP@rxGWw{pqPH|&~ zN2Qz|^Y^4sO##mOb8kno&bUzPaMJbp7;%zL&*?LfqV5>bVm1x1eNIJSdTW;7mic{% zH7?Q^z9b+q0&^(6KX}o%Q+^1xZokD_RL*x3k87*ZdF=fl%(QZEsrZXQi_k_Ej?VcF ziS99qMclP4q-(5FR0_8&NN^cZk^rt+rB6=^kxAfA2gYuj_?blAZRExGvwV)T3gg`` zs2|M9?OKOLbN>1$r@u$0h3v{PYJ5j)rVhbD&nJ6ThJ-5riv5d}Xd9xE;Mx5a!{k6(^J{|i0ldyYBIQ#5Do8HHW)CWo;9c1r9ZBJ*( zO?D*f)LRl+I6D_>{nC_L5pD#~%LE)dlTN7{(0%Wjq%g-*t8Hp7-Dusf-F8GwiJZ5H zJ8$68s2m5r*{e%(T4kpyt-5o|ju9tMB^T4Dlfd=|%Jyt>G^dmk+U;KVCQ_&4l#)AA zP=gu-qNqXH{dKF9^8nm_{Sm5;SIS2+xa6*n-Je)`IHZ6$DM$BL-f)F;)|{Z3o4I`i z#^EV^ehEm?BZ^Ze5}m$-!#`WDCHG5Sr{<1i)OtyQnkxH%z1{arIr>D;y-)5tzx>pV z^OqcTa|3$BU&Mkfy+7M{kq=5mZ-8UsV}0wzxt)g1Ip^$4R(>uuW_|t~s#)=5q$PqQ zEYDyp;s#l!Hk$Lkjec1v_lw1IG<-j-*I@OO8rR_p;3V!@1Kv(DweC(TR;9QQkkFu@ z4{Bv6xJbt;UGkvqbIS)GUsTj194KaA!F(4idNY~U+mjV{Y$<(VT`R( zK}Gl!|FJe6uU;hay4o50M3<=Rz$On=unNyU2b~lia(A)a*vSCy4@*xsS20F?8rKrS z3U1IH6n&}>+)LIbS0~!I#?oxFy78N>?N}yaZ0YjK-@xdVQLH4GG}_GmSS>j%%8d@x zFsMy{W1x;VvmkpH0%jL|bBVL$blm3rg8|~?=O_{J+pqQ_md5`MTaErSA2&J(5r5qb ztc|l&i6-9@aRx{!g_9INmweT&R~zQD24(4s5YYU@M1jko)9Y=k-o_({JxbE1=b4~t~9H9#ayDb`N zxw#!06dR15c~$HFbdv4^ae2d*9Wnf@Q{4AGZZ8xcYu5UM8hc`nEoeLT0?|)w6@-t#Qns!uqSGbL=R(Sy=04;#!Qe4ZT zdOPnb0z)+C=faxzrR6QU_hG^M24@Lb;;wqK^vW z_X}*!E|#{J#ZyP@ejy|xKy+`;(SNwRls)&c-aA+dQwI2|H1Q6zfUVDVN~4_ zgWhEyo`%YNdRPZi(YEZW6cT6*skP4o;RPXWa9WAd`>0@~Du975R`WWx<#HJcF`@Rd z9iM}>>(b>UL14G&bcT~f5ZAR`y3U3A)~H$+m%>qBy*nFA0eMaouuwIZJFMjM{a|Q< z>v%tLE&%MTQ~Oaho%8$g44@_)71Ua_y6={ZoL}^f@3S`*!r~zMI2?@ZXLuqV_%5K&467T=e zA@b;hpg3`zsHXt+Fto2IbgWdB{g9$2SvQR;O1TKUTzQ*e2Z27E0Azq?o7H7-4#tMg z?1?Lg;4y!p%F;mQ>EVZ%FJ*xh7@L~`kcv9dS)TLm{+QZ=)6tc5bRawH6A+?Fa@oB0k zd6Dpa4NR-4mBsdxg;C1Fg_0z@+Jlli$%u~Ru-nE$AIH>Uc;$mYN=SgQ z{v0=Z(LiP8HZlEQh2NquwJ;JMvp!?hBz2~l8_V$)Zcj+p=j=|%&Z9z08>gqx z^BZ1Gq@;@CgmT(7~!<#Wy5WR)k!ZM~a3? zT%un5d|hBGrfXnex18fEs*V070ho<_6<>8Y*#TRwxU&$5=C_&>N~Z+y&{x%+s))Ag$wJV)4u)ao49KgdDM5> z0>F05R*>qMo!I?xNjVyEd?i_~zEd0(xXX)Tu0VYi{0d#nDQ($A7}%X?FeB4nBLq_w zLOa;j;KgFN1{9_s$pt%O)A81Fq`7ubmVeu7k_yBZ%&hd!Ne0=P*Ww>)2gJ%>vmIbK z-vY?UF$O{miczeC(2iTjiF2Aa?`1%E#wqvWB93bj@n|bk9AqHmxvNb|8v3pwCWS}8 zZReDZ@gWvk;N;?~UMs|(!O_G|$KY5GM;jN8BGdhbd@4rK;o|hg+DbziGRdMQj@}lf zZhxiDO_ml^U3KxsS)maop>cP|{z<9(9a^8{vC9~e8dO(II^+ zU9YKrEr7}O((pfT0xV)GWpoJaQXlk}r=;1ed@LD07+smiD2IhweCce8huF*f^<(Z1RX?F3Jc*%k=;Q^tb2?7t?{I4*!O> zfZTcN`rV{)C4^MWxdY;6;Jw=gYxhhc9v)qt?@UcipXlo+R0VcYC0G4;p^77ryw4N3 z@t2H6Y@Yh-ThZ>itIAbujqzxm)wQjX%OLA9Yn8N1xdO8AL1XG4H1_X6T!$B4^9S&9 zmiuL#FP_5o(!iIWST~64%2ABG!ytQ}hlkovHE7@8>!@T5fAa>#zVv&nT7$}ClXf<0 z)k>YS(6%y!x&cZet#_ahKoe)6oi(NBGHNOuFPk&0E_GQcPMBBg)-QcE<<3|Ei_k$q z&EZW3wWVJ^%p5Ce3f3I;)(8t{4lt{uK2y4t9E?YD|X2K^vii^IZw=B{(;{ zL>9_WMwVZMtT>y9;gjq|)7`dw+9KGc{Sk#mb+Vq!si)P@bB?le@naQfu*G->8_yaQ=9v{o0A|9o|R}9+1QlUSaKLM zki?=LyQMnb+mbx+K!XLv3JLtMEo)r%uC*y&O6pP)+`nD1i$Z4V*_V7IzVg^?N}RiB zRaMGZIDcidvQ%qV1)H_PTOpcM=u?m@n1#AI`sfFd3bhZvdzRR&rkiU^0h*^!7oJ^g~M~-K$xHpQ98ymOijat)Rfy zEBNhrwPmfdAGU5h_}Y~YpB@|*X1d5A@Fk&|8?;iR%r2ePGBvxg;~^Z4LHYhjMhsFa z0?}U;VSS%=w;Q|5iYolOHkLiaxglo{j;hWJL^gKsw|3!}!-ywnhIw^Elw(e1VujvR z$WWd*?G7rz8OkR7U#NoK)etHQCrIf&ISc9k=#D`MUK&Z-dR(ewEe|K9IXBX=}8F4*RPg4C<wz}wEP;*uu`+13)X1e7&dKgT&Y4S6+SY|^{Y%ArJSDgzg3a*1?J0I9YwXOkSIBt zt<+>+E)9T4?zvA{Tq46Zdw<2}_GfS?x{=#V0oST*>%1f`X*(iZc=Ni>-KepuuHE!J zN=A>3Zqqz(p)uD~U6)bkwg3U;ijOt=WtE?sDLw3lK#RQTwXVCXR=MRYHdo8{O|}K8 zmJ`RFdKFVpsg-J02UY6zOL0%4sYUO_t1<$5_0i4-e>d1l-Hwd)_xCUJ?Y9)K=V9bK z`x`8KelBmO_e(`e^{JYgslY^`Z{NlQz98t$Oo8XUqeTV?vi_nxfD58JU+g=6YL9^Q zi_>E|73Xcz530!dZ~+vH(yzD>!nhcNIJNA9^EQulaXG{an+!MP=Q)cD6Uqtb7;so; zqxBT+kM2xmyBJ~5IP`ig*3u*Z>l6nR^9*y4inUB_`OwhNhY_E=iV9Kx(KO|&r{<&{ zI9uHtCDzpN`Kjh7{76R{&ffR)rwM6=fYzsa1`3yYW2HHiZfR%zWIgJ2XfCyw+l zs*@jA-Pl|9_nu6q!m1qS<&J}<=h0LJ|A2Rx&|XdCEI7R;jME3{d@{m3%~lg~48Cq( z9$UXjDtWE(cEMnyTmomM%G1tM%m#NEI6rr{kL583>bynS<#%hvy}Fo}PL!yo6r;E>?(SyITca|*fbDv;=`%g7@h=F|^R_QZ|f(WP_} z8jK0K%s+)-91|geVpqBHKgnC zOsWuQf)M5@7X(+!HHtg(rA`ufNBg&u#{Wp;58>cxE^rkn7ifucfRy2fF#gY%kY*#0 z<}#9CstIx&xv<>P7M=|+EX zFDJ%-U)uW=zD-yLXY5IUJUG;)^H;q~N(8mQA>47I&Yy?%IW@mX-wV9lJteUMxF z+zPf`w^ieO`}}wKo)zCgclZ^g4?BvqOpb$v;SmwOJ;7i& zrP(U4`uScyD4ZMD|L2A43B=ErvPlIy@RhuEj{`h_V3wL4_a{^c2lD7})8BS=&V07d-p`bB7CqfOV)kmVU1&9s-c-R=2F z5p;jhAVIY!Ej9H!MZaR4u*#b=G@(5wt6zfZ?(7<+LOW>) zN{$q*j%xS;6VA}kwfD8}+sEyJ1?L&FC&Dr1gL@jKGX2;EMwi5*9H7^OrFMxw5eRwE z2uo8MWU(>V-2={T53F$;$CWF0Q~iQmzyxK=!Ni}g*ZZ&`|HPCs2e73pz?Nj2g5NW8 zyfYI^C8U!$(`LJea~>|)xPayHw?FhAAT|Gm0Htzn&_WXtYgeOHVmEG!8HbsxMA?>R z$-P)kEicysQy}keUEa_K%7y@~cO#)s(zZcC=tD}8QzK~H04Ed7kGj=@9+3jmRw~tS zA-l1vD&r}^%K-VZe?T#SvOTXPj^Gmz6x83^u_+y80lf@1>qyYg@x1+t>Twa!_@+uR zUlU9v0#0VCFg|Ptot9Z%WB`D#)&K0KY~#;)zrBUd9(rxVodM(E8>Kh;*B0oSoJQ;$ z=`)0XdYC6VSv}*tqTn*Oi|cM-s*i!5j6U&4WcojCV-hUVp4p47$x1;X=z$s4V6$<9X>th!2OBZ3pqNO8f zf~f|RPt6-D8YR7+R%=>V%z;Pat$1&${mq3w`TjfuxYpP4GW)4EVdu?Ca1O_Z{kdvt zPVI1A&Q7iLE-*BlS8Ctdkof$!Hx0FB0JVVk@I@vavL?L z0~$22grS~+WkLY;T-F5*X6e_YJr!P~FYo5}KpXg<`~zpajVN%? zpb-GTrf$$Ee`wA*UP9%WzINJdvvhkqi+QyPx;aV#BXOLT&Lov;S?V#WKrJ~Dx{iu1 z&Q=Jp$YW&T7Z>OmfVgQ?ww{RRqKR3)qDS*sHAFPQ*z@_s1vBTsGwDDeju?S$~oJ6O@}Cn>Wt)S-7$6@j!KD94$>hCi0HvE!FBam zw`cKw{P^*~Rr|)tWIqPJVR|t?DzAlwpiHHBzTtC=pS|6xx9%%C#hP-;UOY^_xPh%z5N>W2LqdRjc;TINghDvMmXnb9VJrqP ze(uOC4`cnqLd!12X`_n`zxuS6*!11~l9}Mva#`5dV!01nC1-dp(iR+4LALP7YuQII zbFQsgG{L}d`{i}Fcez`c!>EP+AKFgHG3^}=gI#~EC9dILf~&SOSqRa3_YY`Y{LqaC zYiyg7O$o8IU2=MF64g`7tA>wByhb;x!2qWx29+4whjoIP>G^iU=16_OA~1fbm+Fi^ zFPrNY^YDyDwh!f2n0H@2`G?`0n&u|pGB`{dIQX9POj42BkO!W(oX5g|S3(fo!Fpi&Bv-cTS zHORi0>FeVr48U0~23eHj>#JRqAqO8@@^R+S)ALp$*CTpdn%tLTQ7KlC^94!Koz4+b z#0lA`jL6#()4`5pj2*WD-7yt%tH2Z5nL9bxN_y-?FU7{oj5?A0NIdv$HhW*`PI~V8 z_IfLKY}rC`eV}Cy3H*xVe+=Q2I>8XW*e8KO=C^qe(Brhrx^6t(IJr++*YvL|^2hg7 z($j(y&kaxF0V%8 z$}DXHfqFN6d@>G1JG;4Fkk{pGOIY znB7T%Re`R@kPFxDrB(N^4>^Xq<2VhRamB%~2ivWnT|ln%jiSq3C$3OQPFVq%?n{Z# zSsKS$1)ZgeeJurW`ki3aGA1j}w$c6f0B^G?*~F`pj?eLSZZ+Y&*sL*x0*0A|a9f=NnU z7Z78O4sjE4gegWmQk6b~cNob46t0{6lM=tp@e=zg0(uj>ZS<@C5>kh?%)Mg@Lk%(_ zR;mz|_R%gJ1MZ}d_(@65d%Y$GAj)tr0zd*YooR{iwj-kRwG+0=p8>!~wIRC!P?8Z~ z0Dk5v<2nG``F7X=$@0sW|L_Dv zgmLpTY!CrZ8Ox{s`&Epv;U->xyt6I~E|(C*Wkz8Ee^|uw@yv64qeA9V`@i{doO__R z*w-yw=Q?2d+go1D`>%B*O4+HOrUOW0#2wYn_q^?L?>$KpFQwR_jzeU^p5GmDx>!?% zjKrBlRIiWc{R1c3TCfmsj%&4-Swc@O4|L{=uw+gs!6)>HUH~jtpqYAi_3vH)96kx$ z-kA!{r1)K~aqj2Kz80PAayZr#*HEk2om?^sjvxG#mluU&z(=s4nTJQpkr9XOs_-?l zhAp*M-v8qMjUvLwO$egcmVtO10qje4KrFp(T)+1_W&96`90%KO7*S*K#C3*~&qhhX z0)8i5oE126OenrsXvQ^c4w7nKveK5$Ac48fS;B%PwloWN+NyoxB*Cb&yJI}n$h@Vu zw!lYUSGO`UG88}o28Qz`#oDhk8gc!jsu>FJKYX|%;)yO}7Y8TD3IvaWl1EC`mZ?~Z zKIG$pL8)#0puR@%Rhc(UpgX1w3qYL~IMOYGE~OOmSTXXJmJtJ@j~4V-u=e%!HAh_9 zUK(bt-Kpnpo2rIwM}kI5ofG5?w=7e1j@N?9ZF8f*mRnBcDb;<4MtYa%tvD-C%d*K` z)A5SolobC{tv?+SPMa~`cP>cR;oRsPH6)Y~B^E0}{zqcuicgHL;Ide$f3jF3ju5V| zF&1C6AsJb_<-y>T=q7OXZN=tV?$0P?qNK5=>K20x+DsjKp5F3ZP|+On)CgEFa_y+L zc~P=ob}44;uB6%Gl#_8+-@!)LxBDy3pvL!HPIi=GK%|IAS>wVj4i0`Phdid}=BCQx zmN#cxfIrGQU5fd``Thct{7m1D=v4gl@i~G(oiB!{#M!TV3lm3kd zckzsCC4fe!zB-PF{zw0jpvpA^mSC&{)Rq>AL;ugo3|7?hIv%>cqk3<_o3#HiD~n%e zLsSPV8Z1KM!{g4)MFau6{HzmNt^SEd*k0RJ?` z)k;`%Ea)Z<;dA1Qe(GqJF0D6j2WI!!hlv)|YjK>fL;bx>q9rV-619K!T9zp#@81IM zT|(9Mkp*FvvQ>ks3=|}YvbSv&&frG@YsHEhBV{2<` zdr6hAWYKxWl}}lN^W3FQ0Yhbs3)%HAMPDA|jmu1ZMwnY~C|7{Z70tp6j5fo{zl-OT zhaHFdMZW(hV+Iq|(CW`04%)05HN;<#PAUUgIHg9_+<#_NaKku&?2`k2(h)aI zh$s61a=0#ROsjq3&7T+KJtX|XPS^2(=BWvg6_P5oo&8tqz@NOU@F64?46tZiUayTN zu0x--z>!xESd&h7+>noK0#jAf-S-(IfER!e%4GlCroSmIW-bCCo%BwJ{pSjY zZ&QPpLj&jlsMjkCV}sm^Fu>7{)yGJ@FzsXxEF@ke&(c-?%uWt@1n;*5ryJ;MIDfb)=09Tc;>N=$ds48S zlzRC(m;y4BZ~f2TI22?zf!nz}8r{Qx#C?dc__7B*8)U;yKZGBw={m*n?oWR1Z|#!R zB?$V*G5PJI1nrI|2j8he<^n2Tu&O{bg>|%#8nAkM*yKLf5T5XF6#kb8-J!;1r7O}z zNpO@;9Qd+#G%b!~UMC5HzQ&+g@qg?VuZk1$_~LOKv9!U6uh?J2b>9Yi`2J%F1daWB z|HM6^jEz6S#Xldkt`=wDu#=!|GnRT<0SNlrqtv4Wec^E2YOStE;wV8I;Q9P1U>TEK zBM*UPbVNoTWf>`ivI|cIZ@Sr0_rc&v5V6OQx$!C{Gq9TRy!w@+IQzF{1Yq;_WaRRZ zg2uNm(Pl!rs9k<3fm+aulA^%BzxKc1gXz2;!7{qvu}d6j86dR;xX7DW8aqoO0$i)l zmmapG1pR|RG2ava;`9e<_*c-N`y5n)K+0HCM&<%~`Fso0O^*HX(UI9eUi`^py{5U@n=Z=M^mEko|aP%FvCrKdvR(cudE9nhlLQ=-EHpS zI^sJ?hac*L$mfl-|7gMA@c|@~d3b#Qse@-dnG*x>ls@TNM?KhsLr>|XIse~KcNmhC z@tzVatMTxmUJw8Vd_%tSD8o`YT--DBu}A2L`w-RQ4R{|IFeP^v6d3TS$md5HFf-^B z!mY*Zd6w>Y)O{rJ20RNw+iCrey&$xO--<7yGUTzKlE@uR*R8V|R@Xg;Ki+lZnA zWYVN6N#sY}QG)P9Uox-N9~^ZhQUZAM1>Z`R)lU#)Cf0U#QKKi7V=DDr`c~Yr(o(S$T?yzk%`)EU<)eOSix6+FsY0TIQl|E$c%%|M zTXkWdZfSUKU_SU1FJ(Rhu9nUI+)*ksa#$;}Vc}u;-%pezfRn6#4w&1C<9G4aEqjs7 z^d1b_{y&6#FX>W32#L`=>Ot-CIY1*Yx1>bFTkhz^0+$s}t@V*GkkYbAMVUx6YN-M3 z&VCw4(6j&JI;AHF7e7W$a`vdN`x;bAL9wowjTD0IWpvjVbG3>`Bc%4P#lV$$hKU+e zAzx&+=)~FMnH`pXJbMC;`u+BFI`XIoJvGgeB9P#83ZqC}5YSUvOgBROXd57n_JP z^dp&Bkglhgna6+w&F*@Z;&J4YoYrj#R%`A0TJ6{Zwz5725*nIk#7=>w=-9P~pnz2* zz8i++1i5ufK&d7f#JQ{Dcp9dgxQ^^yyTi^8sPWgEUQor;Tt^9ij)(|3-0qh3>=jHt zZ^$xi;%5%L&<4Bc1gak7$NdkNSpHYBC}isf>8~ZCqbrT&R3Wa(`6@MAt>fX~{;h#D zz0+{?rojWX^n=LKH8#lakdm#JBAyFXy5^PJ`vy9IsDO$}S%jb< z(k)1gfiwt8w{#0bNP~zd-7TPifOHHoq|)8pHI#JsSp)9xxAB|ry3Tc-^N(9__B-oc z>se3U&;9T@P$*-NOr;2+^<8#x^;buaDw7ft;i`7suSJI|Mr5Sb7^kOk8c`wgZq0`U zbehgi66$rlMcyDFfLt3TE#EUbmY&Ba4@jl<4l6(KTCNXgiBF?^IRx^# zxEdaLbD}OLiyZ?!)U}c^VWIg~w7w2vY%eQQamW&tm2;T5*9oGPa_wtv-FuNr15-^! z)VYh9WU@p!H(8SlUdz1}Run9H9o~JMcd?CJPmczq9A*9>2+!WhtNGBq1BIeXH@g~n z1dwE}q=_JgwV)-6=6KYmjA=n&h~o3}r({ZRGl$+)Zh~8`e^X#d6mYK=WQG&LFygLc z#m7%ha8{6lwKFo9m{=fqJFk9(TIm#REXz~L5)sKLnj35iG;dB@ z_>(sZdcn|b=Qql$ubrB1O0}cb1%J5KAIlU{zOQ~v0a6~e)yVkm-YF}`G7|D+0Y)OC zX&FUD&7(p1v`Ept>wD=lP3pEw%wC69;ZG~_^R3sD5=$j+MGYhrC8`b#z@f~eBj)IU z9}vu4JpIVjZ@hQAWv6A7U)`0RCV^=ZMPBIqRsLa0;h1KscFhlu;Xg+HUnjHS4ZXXj zCE4l)?9bf6*GeH!*XgPM=*Lw*a(Dq$bhRu1@;&;SOd7TekMN9g3n}TBj-C-}6BDq1 zBh;keKO-Y|7ZHMQXA+-Qus+0uMc$4^=YML@wArqDrSFjs4-}N7i8nM71SSg$C(<5? z2@Bc^u8C!#DhwN*2jQv?g{KsJf8G5oOui8EPH93b3=Pf7Hn#M^3`lZmryW1T%EIh# z_G*{K#YI(j=f%Bk>-JwzzNBY73Etg+DK~ED1jhG&4#~;iDlS@vMpzv__kvgzcs+k= zQ#SkX-0uMls=J?Ahq2=q?nJpAg!|m;MY~}ipi)z{mUjptThG~xi-dq@Lmgl!x4XbD z=<)?@&PY3)A?rw79uj;dX>EDJ8LrPf#R5YMs(ObT&Qqq%GFp8s5*$GUX>7>5$b5JD z^M_!ACu7yIbFJ&#b$-+FweWu(*MC;@1ouM#xtHvT6Un(cyK{t}Q*%EImdhDhi?d4% znNKecj8;v>P}@7s_y$eiT1c2;^1En`4x;3e4vmn*n#Xmi2aJN(cRGGJ?-Cz#A5seF z-oBfGE>w7sfZ72NYD&{9)KOfJ21(6MC4pD-Gk`4gaC72kq_eyCT@!R+zV`LPLWH_J zX`E59Is@h0ru4o(D8LGLP$*lq%Fc!^4qK9kZp!B3AA6ljO+u@pC8o+NT#{mQUT?||Z zEyTOcG64Vr{^!U3`yZUJA3(s1EUS$3qA^it1^r)=3ZOc`v|(s`_)Y~fLI3k(|NRdu zbXS4KFL&!*=K&xucl3G+oeO#LJ4#9@1_iduwFpm3bksiob0HKYt_nmDB0gkA%--XSid3E!e-;GXB~c^g zD3!fXSRK|hS`gcP+PKtXS-D^_6N!+GElXW>-|_J(MgJ@AjRy# z4OFF-e-sl+Q)D| z@6!QgD#A9(iZAEXY-~%sWrj=Gepj@E@F69W?LU`#L{vD$poB)rUf5jG8XZ6877#e8|g( z=kBT3nNOkpmLu$FGj4gg;KsfHxBJrHd-v3_{Q;iN=ubb*+1vOj20B@-%KDJ5QRnxk zp>?gLYbbn=!y+!ESnhaXc9yyE$^2->mq+3jhoP2r&t}km?mZ# zpb8#@$;7O~Kn^klKmKqN1Es10(aOfuJyewKM`kPs5!c6#^D}X&_nWS2sy}l|f294| z2}I8W1<}LEXN3Ho4c_v-((i~GJ@Tv$?Y*Tx7kzG~P}(gKEQo-c7?kyLU(Q_r@126U zCZBYf9iqhT6H*P*XJD6>dJHeHX;^YYz0p&&kZX;*{^D*x|e`5Kx;T_XHi zGVVj_{S?DtIOq&5fMEg-eomr=Hrt-$(6~SfZTaO?FL>bYt~m#~ zJu?3@Q={cwrxCid0#Fh#aV7vPMo$j-nI^{q_S+aU&*6M;53=aR%-&!8^$IHZnm+jf zXTm4p5Jq7FV-2Be33L>)f{54Iaj%JJ#e^b1#YvHSUi5tL`N`71Y~dL8@%V!_XaBt* z?I3Zd_1%)zAZ_Hx<53vF#A;Kifx#M`GDL{`y(Kz`x`t4N_}frMMTI~U@cK?ozPxB1 z5PxFb=2K+rv{mgCZE2!sM6^8CqbimOBz#W<4NL@4J>&nPH17itw5EaIi@!`*3r=6NpW@*Ii1(T|(A;^DXl~exE9Cr?k!@|~o&(Te z!ppBu?{eJo6B1}_Ea>>}cs%j4P@1}QKT197OVgeEp?kT^}YyB?b7gMS|aG}#@ zfkwhX%y3k`QBGL})N22&#r&l!Or4qrK<-~UMl~C#n0P&M+nM2Q-e9HtchHZQN$&yX zBv|Q4acd*%^rDT5bB1E>NAZ|PBM%y20wa#gj&mdN1q+GSD%HcjOWd}Pju&zN-mDCu zDN!n!exz(NOJ*-eH)qtHc4hf@-Xgq7x%i)*%S8Mr;oX|8>_{Fz45SkBb)mZB%UNJD z%J?d&EbOQF1?j|wFC9l;t!3iv;FlPe+%DBV$}0sJoO(z2f|qaop+eD{&%wnLp5m%$ zt6f21jA{=65L&h(COUi*lgDN$O@^VQ9K|0-q|LC3AqZ>_iU+nKy7}BdgF>5s`IN}6zaH! zRe-FW@6Du(7xHB$>&PeTfpH}9>2#bMthV?HVN~#c=x62dtNTOw&_KIZZGv1nA_vyX z*vmmc<4w?f*qz?nMn!WlO|p=nUGHUbc{wT8DYQ6scoG3v*jaNdcCU*_N`}6)(21}0 z4tnC|ff%^os!PXv_SCLi&59z=9RW}U>6lB|Dv)do!)q@!e!!oPcm{Zf*_gCAYS_$D}f2AU!%OZDw~*77$F*5t$*n<69#-lj=!r zhD=NH9d>aI_S-6*sBGr$hY8RBlEQij#f3{q@ZythA-wN!)GQZ@20vh27dTY#Bw>mf zA9`6kJ`zW)-JL%A5_I~d3JFN@w@ceuE+b*lBL|z>fy_?NZf_D`(n2iB6NnSGmb&@q zm2DJeqRQ{-bY&Y~s!+PosQ2qUW!PEMZHj445Ur?)LQGBuZ-&6A1Zrv@6Q3)Yt_4C# zkDu>AQMpn=gy&1j$2x@xJsf#gGzzH?h^DXgi)ALONte%*{LVY*yeINQE_Ke_*IshS zZuPr_di|kKq+LlG{@XA{M}v=;6&$H@pNNT6zzUm=eXXP2Q;_L{LUE~|G{GM43)+H7Dp)c;MAOXY1ifg1y)%N5{V_q1~h zlH%Nou7RmV?Gq}0=}@AqsIjI7R6cQJ=0`#F?OhiB-fW67Iss(*MMfDqh>{mljdaD6 zw=2WsJMV~f^;}!omyPA^oZf}BST2|j|8T$zyw{^Kit5G9UY&f*Hx#Qp<`W+RQjd{? z$2XJkZ}q7UX?ETavADc6T%4$vS$1>8W>l2>&SaMLSSsXY z>uol>59}r7Pd>8fSYHM=<|yZ4oV^*2r0Qb(kmr6Q6Ia8;eKEGYu5=?3TjU%K*6h!1 z+RrZ`bwTxaC9eIINM^kVl(4QW3XxL*Go7m4ajErm$;5+z@)P|g-#n{He%p9gIbY-wv;amRE($*l{1R4Pmw)da-P zIAZ#FQq8RZA34~q_CU}9>}criZ`aNoDaDI(zmc_RmB1rx!0_n?aOKp^qE`kTPhunK z<G^Nov)kCq;DTWlnoi>`Vx1{N=8P}+=`7lT|T zRi%!QA8Al`YEK=awYSmL?Sl9A`gAjm&5(K2kZPi5E74^utA>!+^uS}M_4GSDmcoHK z_v-yhvT<3UYc|_io`^b;kpfZ=qFvdkPRT zn{Q^~H1y{R1hVP1-qI3q+zZY#7;d1_OwqF6F5ULw+=vG3tfFpvo8BgpO_lR0j>C3h z_fsr-RmqgYm6vTdBRO)6`*F2m=I#`O{)7Z1A4kG+-3>kL_6=V$eZ| zGGMqU12%d{m5aLmYg*aSS-I*a(KGS?U*HiV~*CESJ zADPXihh&cj^~u&IrH~E1$A>SFt?IM$GanZ+g8+H?jiRc26JD6g(&S(fENRF|Pu6d_ z%@!sQc-t&(b~Q4iM!sO=kSsHT?hcC6aK!!?tCzC|_)Vcb>0}#qsn|h!-CMdXkyPMU zEPIV%T$$`91ATS1ie5XGMq_whY7Y>VO~;&OoEAUi)f6S?dsCw{@g|_SkaTYC=1v2~ zQl;+VMDd6YjAPZx&;RykT%h!LC^u~RGiJpDA#OQ52nmB4CBDE~p_q_-PU9E4g4%ga zty*tF24+^jbOF<#Tiab0hy8~*f@aD$!f6m@H!c2H(^}4-M)H~LNA4ra*&~Cms2fT- zmRCQ0GtJJL_8`B<&D}37K4dxRBlF|6NM^tlxWodV5lxxr`x2rlE9aC{-c9YKPeaNe zb2(Box13_V;Ftm%v?kS_$xu}@feTx1HO*Np!iiLtjmRt2?4P~xzO%RL?NZNMvu5JlsG%)`5MHN;9F?YPnx|#NJHl;{v;4Qnk&Lp8hFk;@Cn$8kO-pIrahrGS>+|ygCQTr;oXU zR5o4DV)nYh@p*UZRjVE0b>;RKzBd>pZgFkAQ=Dwel4k4AceFo0nQx-p2q2hza)OCK zRXMwMoGFD=mAVX{(~~0tp)Vf&%nK*)0|ok-+BEgxC2neGfYVyj8pyYo>_BX0!p)lP zGmealgxcfwxks$~=MIM0I;P!Q$RrfW^Dm#7WZtA;eOf?U6 zDfL}BdgV81bvllA?T$w0)v-;?O88$Jj==m{iN;v*%#%(2;~u)3`ta&@eY%7#kHqO& zm#73xbE3n0m)X)9h(Fu2)qYbZ++ObOh4VyP8R4cz*=Ki-lplviZue|G=-NQ03A%`d zCEQBIoWCagUZfQ!CB7>bU9`QxUvpn9Ol1Fx-`?Q|qp$O8iC!w7xm0B{?EOa6GCR9> z(yBF=a9Tj$lt^Vw^TAfix{|e9kj z^R{n#X3F>W4L^ajcGX{{dhLfATt6d-P*DEon9X7V^kKyMPU3@HF!7_c@FQFZoMHG0GD5GF_AzV&kj(H~LxvF&%o(_VHbAzi-H73+3JBB)C zqrS>mL_}t_Mp@;}9)fr&gx)rL0gjP*Wle#!d8o{$x}h~eVsI;C-BPx&IjS6XxEs&S z=9A8yK6p|2_&$H`1U&Ai)F%_4Xz$JE!n-M!mp4Ywc` zsW#OZtNz0G4g*Z!%Zy!Sw;O|Y-I!}&Xejk|cgnK#%l-*h(w*_)7Ht(r zHJot37UlRc1iyKax1^dk922?_N~w#XDkBq^zB6wawIrCfgd?%=p4l||O zd~)5LQTb*0MJ)@{yNmo!IlZ1(x~^6;A#116bAt?)+A0wS(vRhGQ;CS1tklp;s0 zqh5$188?D9i28=|rTvGH*GYgsv~jYWKp$%fe;@o}LoT5&!{oLWjo)Q;(_r}vSGFi} zmu_9(c4o1_`nN6fe~Xe+IRICQ=e2s14QW$?PO9D5_~W#N4SX8U6zlx%qw1Vbyl3#F zr|qs=l_Lj}qv5KX!Lpt4g@Jf`F57RNlW$B$=`XQAe&o29XK9-qwR$h1{8_<{@zAVO zFRo2l3w~lV8Q=c9w4p7T0+Q*uq?XK!`iq^2h8QJ!#gaDRs~>@oZtF^H>8nQ$*)8od zW^^`FvKy@`Z5qlZN`Bc-X!K$#YT@wu@=q+eiO7#ati0;QwL?T|b|M)BDilr zjURfIn=fS1G&G{v+W9`OEOR4_HBsz#b(B(*RWpZtD&v6oFmJHQ)C;7&k9`38UJ1MR3z-m0!Kzn7waCeJYN_0ZI-TNr3$MD191W4qm1 zkDs~Q>i^6*^1xXS=XQ*gW;a$fe_1-yx?cs)nXM9eH8m~2XI}^~z01ns+h-sPu1%<9 zS?)KGZVg}VQ$z(IRds{@x>besJSe7v8nE_9@cqWtVJ89hvu#$}P)E@wRUn zOb0=rm^G6?a1%2`E zOtWpi#qr~|R*#47=87yNx%#v9TH4PvNHRB~h`cqRBaw-t=FPC{b9H5qkC|npE5n5d z`H<1Md0c`8%x?P-A4hm>mJ3)e3<$>9?ui^B&SvIN=@q9YyGn3%ZE>rVFf{D!5P9#i zeA1M+i^Oz?`lLJJocJbNdrY{RDXH0hYA{^sOxoi=)b`CYUH8u}%_KuUG+C;48fXcw zCrFTMdPm@_FLp)3<%Shdo%~X?Z2r2&6r>0QQ(fqsZeMPDLaj4_|cB5Ib6Puige=+hmZm%Ds~I^Cs1|fN&VQD)n5e>;+?$%xj#r1bS4NNSwZa$J z>sGo}UPABRShQx?1$=phHcb7jePvqeKpL;Km1?57yg z-QO+QJ~#4hX(B(rXY<}l*#tJtTY7Z#Q9{Mm`Y^W$%dg*B7m$Y6=bi_*w%KRFW)6!% z>E^D$Iy2041Q(K7wD;rEHkWo=s?7KRt_5<#ARcGf{W-Z(@10mOL@3urrsgX?OB^gYI;tgq!7})x+h}UoW_0^j^KPsYJrUi= z)t3owCY^}L@bV;X$8>~Tmc|pmRqV%C%(!M4`q!&xjHZAq;6p>-{7fDib=Y2;A-iSS z&CX{w`8_ki(L+deCZbxh=iF}00K6 zD-6I(yg7%m-9M*6;uU*~mPR17otAE0Yi{mX6j&9N$3pMCA{D`D``Oyh4(_@9u)nL6 z3_1ioep{tQx=FPJ(1(~6H*#1uPo8Aa$_hU$z)vl-8-M|a(&h5An;>OMi6Cm`yE->5 zERXnAbtOA{ou94P@GYM$Ikgj`@~yt0OZkBiYY#3&uO-sNIOSH8rsMne!JrSi_Ddo- z&ec3UNhI*g4D+mh#{E@&*SmQ)=E^VME(^{WwtGkDaC!FFGtW6Wy;T`EQNoBN-2U54 zr|r7Ww_3myc9YH@{w^*85Ytt~7d9LoysQ~tM3&sQ@5$H|x7_5|ejc!?G)z1R*L174 zGXpoeC2Bul=$)3J7EwM90gXuc5!Rt(wjkb2QU2#{%+?FayS`uh`=ZQBsGB1>Sdb!( z7nJRJRU;KW$~QwI4)2mD$N_f2ugj# zDlGtFq!DYmrgig64v&DYkWGZcbG3)zj|@CZ4n&=M#QtaVLERFQ3i>}33yv~+7%uG0p7pGh%qRAt}5 zW{jzFs{2di*15eGqx^i+*+S%>>q>V;w+J7+tXPmMK|-5Xfq$4s>}%z;bhGIAXwPDP zst83Tul-sk|6cqU69bJ&=%Dj*RZ7ql z58_Re!F&nO+6O#Lb~*n%GQ@C$9$jdC*ljM+sQg8~5!2(Bk5i=MBUP*w6&3UJvr9Ub zWqbE^Ck+0H@p_A`7AaeK9i3!F9V>fZrS^1VSuOmg%cQ5#lZ-WoCk;|Xc_38e^3$>z z(t$%Wi%QlY-Ao$~HhYho-}+H~EN7I6;@sNXT?_S(;x%{pc&-ms4|(ENLpDeewK(8o zChB`f4G#il6Gx51GU|uPhKuWo!qiO(**J}dy5LWftrpC-yN^J}DM1G4D2F-vvS(oJ z#VWV2{Zli^Nl{Dx0k~sTJ6gVfb}F9>h^F$GYKVBXu`i_cG7E~Kb!n;E%PxjPbIzpk zIxeJC@|oKIF~Oh`)PQ^}YRp?3)iNKTf%2ySWlZTCUX7cnyV<~f|5WsJDB6!dKrd$T z_oh8COaR^` zDT}M2px>2`JDhi6)cKgfMlJ<8U&$^bweZjhl!Jm$C4(=iqus4GbMphXFGkxgw05)k z6G1qn9vS>n4is>9q6*WS+6oL3gry;4tz2DLbwn>5Y+s={3vSP**5DG*EyYI(Za)y* zyj;7``k69SBuF$nGIpD(GQ8agH)qvfX}cu-Ksnz#O{J_V{!s%W{XI2=m?4@;X+wuB z^7Sm2Mx1y!bNyx{@x@J$d!Txvg-Qhj|KRX)RH591PHVWZL5)Y})W_QyT={X1U&Xj$ zbDJ#jtnTOrMB58R+_z7w{*1I*S^{ohI(E!R414!e`eDYTw_l$I(%G2O%H|}rS4#;T z)6@8plYF7tU7NAtyY_=_tT~)p%x-Ib0fB8|b5NMQHknWEGx2MZMzXG-O)o(S{^P|j z$wjzui=z%S_nq(JY!aRg& zdy&D9zvCy>R;+W`$OF$V%BG!sDXMcY0i9fa>0!0n+r<-F5R8Vy{#7K#pGB z_}=`+BZr-=*C|SsdKhu=5>M_WJWe`f-VFTXI(>-1 z0b{N8?0mkN@7Qcyo%c4c=*a7GN1meBrO6J=Z-AHLmsTS8b`Vcq@2@HtT^K02_h5kR z;B2aJC!h2*Xi^x+*xG-dR6CtQ^Z0Xwa7XvHCCB6K!UfK{rPSOxdsN-?pnr#_9#WSW}9@4O~><;UMsua$3J%!y=Vp3;IbO$jh~go6WA{slKSq*%=hdP$LAyu{(zx8TfEFkPI-r}dug@` zK^~Fs?(oe^(At`dpeW3;yVpEJVvAbHd9?lW?6TYyCbp=V7;YGKrRlZE-2D|d z8=njIG~&_pR6;(hJ6Eiop(9|LBzKxL)oAcgk;P4Xp9>c6P-Nabjw|voHDqNf(!R{% zS7dyu+~G*vdfHDy$o!4@?o_H$`z`;&3s;1bB&BROW{$El3NR}cGK=Mi8Pwho>PLDM z;c8TS5>3ZC`__X5afoJS>A2mfvIExY^clh;D23cfp=}aXXuIYU0t#(|tGaUf+N%96 zh&QnXL`Zg#Z&LSx?W#@8NOkVc=&Yc+7H6hZFv`w!gTpTE5*aJ~Sn{sj^^Q{4w|OZz zu^{V=_fEwy0AxlcMXH5|qskY_z{C=IrtRBf^Xgv7J!wjJ!NSS#bHz0uV`)h#5n6$^%%f8T;VzB2rMGTT?`+#USwq8LSIKwrIBaj2y3 zo;h;?J{cHdgC|eY#az9?}UiJsIltb+5!5@xgavd9T z4}PbA>XeUNa#WPZ-{6vT1mjwv!H>>Xb5EV}6x7LnMLFfWF$+_*C4<_6PEGQz;ROuV z!>yZeH_w8{?La-7b2in96!mD=WSVwJK6_!l_b6RSistd zGgzN%D6JPq2iYr5T4J)|AfxQ91f_4^a`PZ0+2bYco{W7g*7 z$KR#{Zoi2@$o;;jRNLK$TStcluS-^m@m05pmYcXrz>B9t>Uh=Vu@>5M!)iS>zfwbf zwSOO}O>S2@w_^uo6P1^b=7S-G+GQWrjE@vqg$Sgk!e5HYKe^5NE{;w*1bCKP1i~`% zL5g0lNQCD)!friVFZhzm?W78qtozH^~e0f5Q3u=Z(^q=x*9Qrg^Ep zJ}~oGfUcE)J+GFReH4$gETWmqEOlWQA!HWotS;zShPxt{sYu5_Zalf2yVEilG#z9A zqqt=quH>5e5#apAnsEMYJY1mPPprp7l!vVZJnZo8IZ3CcVllbtS_dM?yu)IDYG%p$ zl6?k-Qh`Mbvw2|auqt2_ZhZ{OzACo-j(oW$AK4m+WI-t5Hw%r9}f7iP%EpuH>&%tzk@K7d_%7BtAJj za{TChb3b&{$!c&2xSBe`FF$DA87Sh1kL1~k_4cIn5Z&N-!DqM0lHWcIl4as|1X|#v znQCS}jo;kYrv{AZ-VODB1ZaVsRRT7`MuSU;vOd8`E+b071ioFU3z8|{=n!*;wmr`P z=%k(|!Fo}NY_<1WiF=Bd_u`x30^**9<}xzlU6(0Tc|T!m9r-B$1*qah*rp76$)wK@ z%cNTK^)8IyE}%d(X{yDN`NtbU*W!)nUi$;0p9YfKWgG9-dJr<-oj8e^)F?Br+=a=nI04N@3!9h9S*u7-sjlAEELC)Ht zO_J#Rw`$fmQ~HxU3{xs)mI1Z%;XLx>`u$2h>H9+*ye7`oYt>}+vfJ4Udgcv-uh^>8 zTWt#~pRKJ_F8Z)2`K2p62luLxn|jytb{(b{)YNUvu}wE$i}wz*`kjJ@tgj{sTiI8f zId=x`0Kr)PkMvSs_bnj=IsEl62MWehwGJjBsVp6s#UFhli^wQZ;mq7@>DxN9ncwj{!buOB2N9sO$8RZ@z)!)N!pC7O?}|6UXT21z$i-y>R6YbB!Db zqG(@z&#N_vTX;h zrfdXZ=~v_=hqc;f-O<@O?Mj@^i|adFaH;6KXLJ?8KqiVznxR6PX7Xfv5-Qy)tp2P-QVi7ORbggCW_0m}Ax)Q(-m`}5U zxucU@dXXWc&we5mu}Gsv)&-6av>r`2NA=cu4e~WPyb%?>5}zysEAF|_vY6j&byh{v zUqnF$Y9&$D1khguWBFGP8wF16FBja9a-YX_OcV`amE)cKbQxoTAf4yO_DBR}!H8XI z!f_NMom^TlO^id0R@P5``0d*^x5(oa%8&5c7oDB=7j0~{b}sroxsaM+FcFB(#m z3cM}_;2D6sVJC(TkRd&GLjA$-{nw!E3dNHW5H_j=#01}97-K;p@43XHa<*ZS9RxMTALx+?##x-Fcr%68AnPIl`&^!^>QEc zr{`S{_wj`{?UzCv_qXgz^#ip)-Y4|j}eCY`uZI~ zVQ9fox_tRp0PfumLx>hzo7{6QbGSAi@;6~Xj?C%4r+Hs@y#E6bYd!bj-TrGTw13FS zePschKq1oW9V8%1xdIuc8WS1=H2HxH%7F*_W{7+D?~4F5FiYc8*Id0$mD2k(TCwgM zmS-7)0Ef%TDSz_#c;)H}Ac3s;aMu0-L1#VrvUafB5j*FGz*KIGSLSF&!@Ib+ot~d% z+r6>V*=1)C$gby3@|1xnw4Df`%L&GUo{1y>X_At@2C^Q2EaBn!x0BH!X9WP_%6tN# z@c@+U;aCL5fYbUs-5*ZtGq(nUDG6|>;6ZIT?K5O&R`TbGC>IS7Y`-|6K|c|sza9X7 zguXs~CvVY0^icAqlg-ftn}e)4HwdW5f1;-zcOm$*IZro=E}RkjKW#4nx|s_8cWD$` z{r|wZ|Gx&3`!YceV6Ezu$47McMG5g?7k_nvM~|B)5TW^I*Bub+qBgv2qDlWRX+PPv zl9LTrhFM~ajg&e!Qu*;|4Xr2OP$ep4<7t`lgY$&l)r9`{-a#-GDL}9VG#2qW4@Pt+ z04Se8YKSyk3lGvfQ9g{ojQgaba_}vj9uq8QB9@5fZ&^g`)u$(?Ab2h2@Jl#<2?y#& zKqm?I(n!dc9%L$yBe+Pt1YLlT@NF0U+37QTP=SH6;Glp>E>GZNS3z8GPcz|oLa+PR&rDHfT8I&2meAD{_7Gc#X2^XSvBbEQXR@xc3dVF}ux z+oWqi-pO;X)JOwrw`%8VFOncyf)^rR&g0+Mj^;7@p69$l+n=kKsUq_u0eF3s)Sjr$ zhPoLyv?N+@{@mvq`1F zW7L=KWCHZJPKUCYC}53C=rG~%hH*J&KRr6KS8pQ107UO?4m0=AyeozW&S@J!*5``F zvv}!~H^%|!8UfvD&wk8`(JQ~hq*KG{Kbe&UvdztrO-e3rD}BsrjXeB($<`zRkPi$J z2-Rbg5E4tAN030~1(yU}O6@HJ_HTE6o+kv3%8vufe=!pN2OxFz{;71t6Ego*(LEKw zi>W8Q7FSsmA@BBnD;C*rF!#UJC?{+Upk&BMq1enQda{H#5Umg3E0(I;9*JeNTIgc+ zJl1REvzB|h@9E`CrywE!!%?}^df{v5TFx$>@eYItDEY(G#sXUh^DdEQZQsdheQ>Pxj*MR?d_} z{Y_#yu-ae3ROnZ$db-*ykN4-%t@azxI6$Kq0>};j*3Us!gN5ym=^9biym2he$^Rc# z{Gt@Hk{K_QP?hB*^H5K6Hy?&i8%<-@mQZYc$T)grmfMvnKRBrb(C*)-FwxzRb2-mX z-+&$m{|lNca`8EU#ezCdS~3ZwtXT64Z{C>JoD)pP7XG9&uK#GHKz)F(OZsTU8T#?k zZ@TVOS#vnBgl*9(|CrA++Xf9qLBfHXaDV(O0h;BwUOY9XM4OluTgy^`Hu)wY)ePi; zk@B(^Jr`HTsXC6@lXQABMyDpc#OmzL{DMGlO5p%Nrah39M8{$RrD#00b4@u{+y70} z{?D?Y=T02BXP$sWM>Rf(MoMH~C^m3$&^eUS9k0Il)o7p><3nUSFjv-AMSpple-vun zX|K_Z{=zo2ZTUSX?y?X`C$>wiA9u~bWpYK~qjqlifVJrL{OtPy|DMqOF=FG|w?v#9UE_m6=D%02cZblRpW z0i|v>b>9Gn=imLg9h-?|FS6AE0IsAXDav?g2kwB-$dLein0AkM3d>DlT!SmD~5uB#2C& zchdVwcX+3QOV{TxhTMk$*!Yh;j%SNor(*qF`Secf3;7taWfT7y%T8|PjnB~DI~9^4`mFn>DVWyXjKo4t^& zf!_qZc1o#l(Eu0oven+%3gPMNeaZ)+C=IqtyYHPtbm#x!*@@A&=>p~k3aWXusl6Ft z`RU~TdNFpqclcQi){579s!~`=4>LzVtBfWNmk&D4R26ahHRih|V$_5mG z?ma3rDbBM^4r0ltB@hyEH_E`J{r%YHh}vYpCJ=NfHhSYzH|pp#e&|xW#{^ni0}*+D zMK~wg>?#<&fbz|144>a5IUB2;*n24RiDdD=`38A;f#c28Bim&+MT?)S;wipF8SsB|Jr(&8Y4ItH>QIy+HXQ3IcsF0=vI+;W_rL>L5nt)EXRZY308Qd|Uim9JfgRzl(Ph z5hM~zC3g#U^RcO?@v*HCRE^kxmfFfp%F*1Y6mzES8s9GpuH@f zr?>NKGVBZ;@t>OvO*>5@0W%j&1*jeWe~P|8D?r|X9%NKC?j8+|*yro_QO4?L&dnKe zZj0yE%OfTS!7R-in9gzj~+f4YIid>8F5fXv>brLAAy9FPL(j>DMR zvjv7fk%1!JiDL+6oGacgxKw&y2}~F1VNfY-doa{FfdGXvF)+}^&GRY9Zl)<0NCN1} z{3ZglRg1cvzwG_|$7b6^rOl`#SKQGpPU8ol5{5UcB8m2XNP_#r7K01%BYjMrl9FNp z(utXm0F!c1@e+b=7L$+RDC)6IhWgv$U9R%WFmxd&wC?1J`-1j#Zo;n|{=(QUN)81U z)1teJ1*4bPi*bZawDz|a8FyH98g7VmfT8XvR0Ia6K}VGWQQIM^+}{+=LKPRsVc1ot zfbEY~+7D1_W>p4~oVww7uv(ijO!qp=VRy~qV8^^4ZWM->2Y_EPrFNSxa_ekN1KC<0 z^vd~7W-osuM-MpvD&hRu;kzfUu&egH;cD zg{%r_??lNh4ntvAOl)rfBbiN5HV*_tDO+}6?zlu#TZ3lX7ux_H#pIsaX0m){Otwx| zhUn~K8^deN{ulT2ZdP>v<4gW0=yQR-LHUF=ViSZ}f!%tyUMZCUp=aI%ik#2M3H~gaWb_Xk!_&H#P09E;S{A?xi_f}>!+}zx4y8mXf z|4*KQ0`Js+1+fI48!|oh`2$E-$S!L5()iXQA;jrucjkp_Y{XDg7*niJaU>*$%Pa=? zT(u9DIw=LVDf!puX76xY2%d;g}UG$q{qHTnc`|0 z1(-Deks~r-RYeVyO1-=WXv9@k&VoP#AnZ5ZB%Mxq`tKCpBRQ9INm|bueeSwI ziSh1LX=AZBF*;`y$R zBm8L@C`;T*#UleF;!I0cUlf5k5xLYF8z*x?|BAG(%AIr(Q-JvfMhfrEyfG_~poOw! zY}`S`9DsNtz-&1kEG%>5LF>^BuA zFmy?8XwM0)h7h1u>#1%sk^&1)g1iOeTELv(*h248K92N3ETi{bLszB)#TWyEg9&>% z5GE_Y9IA@QEa1L(6%PRek{FK3dZSa1H)Pax0b`W z_r%cai`PG==UPZa@$+WESFN!Vkzhe(dvCU4yF9l3?GJ?d=3WtOCKSxy5Cy8FlFSDf zDiNS4HS=!&e&{k)@Qduqt^eq#I}A{#ruOk^vuJuewp)O#Sg#mu!2{Ej2S;1OAe!q zBpfw80;RrBa@&g_L}=5xCW8ku(DE8HzK+0Iir-lVVph}mMmQKRsrv%_0dIRXwGmk6v zKsBf;pl0Q$Sk&LoUqw}9`?9raHnDLDR|b4z*ld~B!d;FWpin-r|Xylx)935+=aA2yx<^Hw^eTPwKS^aj0t)j1)Rj{VL!$<> z0yW&qPvGbQ$S+uc=|^H2Dn-1Hq7lLYh!AsW74xfI;J=YX&a(fV0 zs}a`ZcH@#L;m0c8PndR>Z0a38jgK*(P~o{2o|I5VC{T4!FkdGIR8j_m^!3w}_Yows zbNk?;apuo+5R@;Ccjb$QJiNcVHVrE+v7D3H1%wRV0t*dJ2#Ya65>;*Es5Q_;S13o+ z#R<$;=+~XLQOj|U41v3PB`x@&mP$o>8Pp67Yrd#&fM zcP-Y){2}w1bI#uT+Sk6$-l?)zDI}mb!(X3b^Vd^n{3Y6C_S3ZA=X?iJ7H)svl`=Ni zl@n;6!#8jaf@_3cECm`iAu z`ernRqt6B-l%@X^jmzjzwG?mtet#sK^BNYpoeR0P?|(7pNROuVZ*4)ooUd!%?qyI0!zN3H!6 z*J@zW0a(D3qJv-j)%|zTR#9)mRL0-r!W$$PM_TVko>3D*0MJhBB>0)w07i1=Aw;=t zj=;b=qkFt~EPqOX)<5=F&LEjnCC^pnLibu99s&;jL_mLfvdS(AF~#$kr^2%pG5ii3 z#*g5%qD}>Nd0zdj>{yKt`v5a}X0;{r0mfQY1N%_Z<%=O%hqOeAZ#ZN4=l5BOcDc+q zr4%N_2(4e)@?E}#HGk8CfC)rD8^kIgC@#=li|co)kF;diG3aTs#B?y-=w02HCO$84 z9Vxu?(WbbTt}T123(SA|4Kmmh4`pmLhsI+KM$O`68|fA!^MGjR8tQU$?HX!4ZXfC@ zl5_Keg-ie1=2P$+)57mvG|&jr9Z&`U8vvtvA{#})ONic^Dq3$@+9@KQo(SVq!jCIv?Q9%5}6n-^Pd1 zOLL!jKZds?2`*wS?Yw80f}t-t%nx8{3JJn5N)@W@XTwL|-oYW2!b>NhV>va#Scjpw z?M^Dk6=~6yoNO^x?i7J}gPe@%_0%GVecYMM4IBGl6m96v$A$K`+f=3vuLSS_LpKT2 z$d}e?gF|)!{p4SY>4e!PJyR85dQ~+1Ye3gmd3FIw5=xz{x2ZL`fYaIiRHedS|X%+@(!n<;Us= z*poKWJw?15;M`rQ-?+aLc-KU-M9Gto#pdXBbqv2a-DTI2;IN(G0CMJ-tR&*2k2d(FXhii5HcyiEw0E#z;{w;HijF6LL?z-_ zbQvE}ddpF4{2be;?z`^D@F#qOL&7D+XFsz}dcC*Uh5*`8ZT0)&roeAXfvaEa#0lKV zaAA5b>jAsi^M#p-JI)q;?~E#vz1a?%Ys+v}2jbCNECp}$at6^4Oiorg&N;p9wOt>c zmjO02O#;mYeW;7Vn`LM%W4@&5L z(~k%33gpQpqlQ0yBe-h1v=gr~Rfo6a5Z2F0MEmTD-*&>N5E9RBC`KaU!6EIB)HkQR zmi+>z8T@=8=0U>Eh6|%!t_nm`dNl^<`(jsd-8e|o&c>2n?gwpA537<_Zl*5$Ir8xK ztnp0}AQhE#tpf^pbW4e}D2F#h7dA)Ef0e2uYXSV(| z#YC+0m}?)3MaS^YEC=qN9>K#psd(JqU2oIs!3%$H5A%;Gvur-!a{|N_a>S%u#4T#C zWUsXp_a2ZDiyAN+G}MHX3;xooXtqK}^S>7YNbY->zi;McsIPvyYP7d{^S6sPr0$QA z?nhOB2()Nu7Zr)zpTgRY8vhY!F%yChRdfQBfy%+!phF?*`Uw4>R&Hh~AlasCyto(B z04{E9woZPg5ADX#M=Dh{%Z8XSxVMU6NDm5*bKxcv^s4N<_q-pPdRVL&a}K0PHMR17ECMBk zVo6t88ezkR=E(CthY?3Rv(v6GmOCS|!64qxpFdM0bV%Ce=6^xet}w5x3{twJ7)Ysv zXg=OR$wCe!$F)_l=V$NV>}hwJ$hV7AWD#D(hj_0C?av_ZN3E>~ik(P>-qg8nnXdoL zcnNNLn&|d;Fd)yo@o4lZyVO75|A{pTH4etxqpt0Jao)=Ndko+1t8L5lvoutD);}}n zNh}Kb)Z(_YY-!N_Y#LC$V%6pO)Zlp_*K~FM)pJ znr=7eUwlN|oAz~z5=XNYHspVgYz+Tuntk_~UYSDolv3_yEC>pEPb9z`%dTp+=}r2+ z=p9g6{in-^*q-Qd%6t=$qG-?RIhCt_H_X4hC}yHn>;iK+dzWUIzWW zFFRdZcr>M$1ZVEmERF*sB&}T33$^g9R7xUee4M4bhyf9wTsJbe}I$L{_GT=5>i)L93&Ss1xIH+f3N*F)b?_WLO#Snw*l%jXofm+|9= z6&#$dErsdTboahN%S{^1f9LKW%%QKP{dA!m0ks%fwQmjVm$(!M6PXiAh5>iD%8?~l zlWiwg@ig@ec4pN#M;iw%FU~>;ewC?NOn!Gw8ZX|d%lh8HR{>KM_z~c*9{{q<9z+-g zxb_p)L#7}8NGN*KX)2I-Rd6q&o}0CF3xC^P$%rY$oAB`Q8VT#L3uIXF}N7u=`A%q-g~`c7s@ z_?zV%;(~#Vp|7gGo_Sl&#im`~SJJxWMK4KqR}`LqT1(wv=m;~U$qS3?{%i(DKZ600 ze4ZwjP(jCqbQYcOdMCTW3rtPSTBZIXll!k3U*)F1D)7?$Sulz=4AWje+h};Tak|Mt zq(41|OI!di(z&j+>03=AnD%PP9nI~6T_4#U76o~X9i3&6*|=iIjjsDP{Uk4e$hTJ z_~~K9F7TN9k6?}wsh;=Qy3g!`J@3!&V~?*Vpf7%Qkr56NphVpN0P$g9Z4Gp)UKWn5 z|Ima8J6}Q4Q5@j1JEw0CBKJBjOWzYy$Y-bp?>x$N}LJG1}^onXYN9}w?ajT9E` z5AMRa4SEbc1B*N+H*S6mWjR5!&?DZ;RK~+wOc_-(YYL$5=)OZh3OB6D!M_4%6fm>; z*Hz0s15NmFm2!#@ts;e`MFX_>hm*gJ@EW4eQ?Eu8v9y1k)3U!`qezw4J#*XSF#mdg zS8oC=2=@TE#`)wj;rR&I2K9(}#5R!CJ4PmZ-dE~BvkUXQ4=cl7`vJCLB>bid-&G8Z zHu2f{Oey>&?TI+y&HS60r!Htm8Rv+Gr~m?4-lYM1+}Vmsr0=5Yf=(DP2cQYWnkNyk z>!h2XwzyTH>oQ6_O*(Y&{f8xvQE_L%x;$c2Pj>e4a^xaDpUJ-96Pr>TIZMJEpilL9 zW<6f~h`VJ9#Hzc~rn}v+;@C0y1mxH@C-&8R_qrGJt)AS{nseN^`qw39Tfr-9k6`8u zG~9!NF6*T{)>Bgq$y;X=k_U3ZRWd-Nn|d7{i&oi4i@oMy%Uclm3{)?2uGYk9MXPY; z%9b^=N)>TWAD+BzR29B1(P>mNSf83+xBk8N)alZ$+RJ6jV0}$YOxPFASsaM*2Su-I zM1D4elu<7i&);w)Zj4@gT6sW4qv$FnN>!uBIyE{J$@n=m%w5D?Iy!(Th7>Il^tHt{ z7XVAI33%H~;YS$3J#gGF4x$c3qXc>SRlPVnOjQe#U zWmu6^3cyEP2z>Mzhw8v&|K?HGBPnHxLoviaVP&!NcHR$wgODrGD9Yr|#W(@&r%~UO zf49Pdl)n@{@TJ|vo&C|Uo%I7|1p?bg>Yu^xgbaw<-v4Kpny@@3_fVu9#HKi`5O5gXMHI|1rICid%%X zP1j4OuX0IlQDkUVgJQ?=pvz#Z2ekc1wchmkoU5!EX!2PJE^b$Vfx2C5q88xlqXEWR zL4eh6yR9{1jq>y>#Jf-5u~Q*c9|N>vWw1p2<~zrNlGr zQ2MQ%4)2#BoXr>ApJ^NBz7#zN4z+gD&hPgQb=Q?~;(i|x zit`3L;NuVR>Y5D*hXA^bf_kL2pBDYVlQQvEv=&IaHotVY?}w1WuEnt?kdW z@;!hCq@|_p_+*IyXodepX=ebX;oaS~{{Xf0+xO$$k2=MeA`^d8y|x-t@ByYqZM7?g z&k9eR0bM0?AFybt1l=W}rhO4picXYKa8V3nJY{NT?0B|})dpD(W?xZQ#7UcTXI#xK_a)_G3?h^D` zzcOamu6Ju3+z%(au6tEio4N1Dac%Rq)AsUP=y-1pX9?M6k#57kl43ttgeT@F>rZ zyaW5c7!27S4&|0tvgsf%5#KN$zZl?Y?`=R72_h}iyU zv0ynoeMxZ^Guy*JZ1H;Ct840kN8mjLEu2wV(<3TyV2e=`%*!M>&vuC~SOK zO~8%BF!{mXB7%|d6Ay<2mmIJ2qXU4bTp3xUa$gb2$6g))rF>7&M;k4~wX2L{KT=}* z>^PbmV|z@WRD%i(m(Q8w5VZt7CE^Iz{r4Onfph!`dk~Rr2z1&ow~HG*A)2ZQ@&50r z4&sALg}~_e(Q!y=0RD+?d512a_p(fT;Q=n1f4%z+BMxab7v0=~=A~RLlRM(ZeS=ba zMTJZE7xt2Zv%%}H!xjTS5Snyc@hgVIRra_+*x4@+-LRjlemwn^`01d#L46todTleb zVB-)TM^Y{pS5U&nu0|hm&l*ia_>^?LvBm+Z&>&0Z?x*S;rRZZaJ`zQdQw3S8YokMj zBw`Y%@A)-xIjv3XtFtk=+tC$L& z3GS(;-QSg!lvrD-d9zHz%R4&ioB7~o14j))9HC7VAoe#lK1foCp{!G-iQFg-fhq*k zFTHyL$D@zzzW2dfA&9p3j`US|xDcK2i}z<;@=j{>aw4`!K0qZ=3wv&3B0Q@URsAJ+ zx_V!zIx0=zu_usT?9F}3lBG4A^Fd^0%Z=H+8ZS-_t|P{0G=E{!1Q7QHGsnY;zOj80 zE4fQJ>*wByuJ-$v{7rO50dCG<-1t0s((9RvXB;5T;ey_c^g?bQ@8MPw>f4pRj@EEG znh=*!%bFvnu2wJpJt_|FyHH3cOwIiqm+2`KbdEsoJ5N*MuOeNQpnCOp7}8zWdx2iQ z)K>$TqYR&lEyQSER`|{{19tO&;riv?Bbcw2!AsCAr#s5i3$$(W^LrC`h>G8MrVNBF z>5{9w|6ketBMI-s|7ZdJHPcs$g3TG;z^`c$sH6&3R(Fs_(vMp$_PF4N*n+u6{e@dh z+{(7T&9>u-th3qPPdpjUiA=O|;1+y})p$N}{sZ1riTSr@F`XvO%tR77(%z2IyVtw; zz1+!DRX?gc!4+o&+0JLAlB188*0alRB8pKbzWLHG^PYl6&8%+p5tNVl^`J$pl)~4$ zQ^)l@_H$$FgVSSm(CbP~oeHlBbr*}sX(hv!nHX=RbZ@+G^%_oQt#brn*uZKoNiX^$tuNUUZNZ6Cl_oTus_I2|%kNm?e#3y^S}^ zb!4guTxQ|=TtKX9-;lGm+8r$mDzN0iQeZEhAvOg0{HA*Gh_Y@VRO4(n=qz}iCsl_A zzW<W_c&VX~tb92N>yV9$ufy*eK6Ll6@3md)v{VR@T&_BHp5J%wt z#kO)FpogWV`6wmWDs#SMZ{W^q{r?Gr%BfXsYP$rUid0t-twjo_@NaLsI5xs;A}aiNXyvS|Hl;V00aNxp94vu263?_S!3S2xYP@?n@aQl_}>X)N~k z(MpN$;Wcmv$BnN`qCO{-i*qWCXLe{_o^pxI8lH}hpOrcMP~@Mxzpf&H8=!zz0VxId zF+qt)q5SSnwHvs3kP&RMVV|CK(FpuWBarE9nk{VjRW2NzlDX}|w-cj~cZ5UNjk^^8;4(VxlTSR354 zR$}oXgv3F263)wQ&gs{t^au$020~eGkpC2V+(EFATAUUspwjekP+~Wz2Ayf8@9+bR zdzo}yAMfVIWLG3TE5C{#PWu@1F%1omB=)0?`$EXdNKao$B!0lc(0HX%w)b`8<}orB zRwe@j(}x$kas*G&vO{?oGoIYX0RIa!0CMB%prAl!2J`_IJEHDQ^<%oYTx)+C2Y06l z25nE0vtnZ`x_lc7P)-bWvbwGMGfz!aMqVhI=#zZaa}Yk*=A5Xti4tNJV8CFG>+g4a zv}bsUYuwt-I8lFEV*5=#jwL|T(2v4SXFg>)rm0`IYOyUOZRxE0D2U3;*7gtD@l9}p z(EZbyVJ6x57X(A^am8CQX_>hUFTF14bJgmDRg$ssk{QK^MW!V6)d1VjkdQB)R6zxW8VR^#uOg4j{?wI<#igKc znT+|&d)d75KHcdkeci^x4g<;uVlGn*WeBKOl0kTLKF0^xLLRh@vJ}j$CrZze`sKlR zT{xJrHXR5(ov&ZIJD(?Qr(7fz`PahpV6|6=hs7&25?RXdUe?s#F%Q1Z%1Ig-`Fq9M z+ABXZrY@$_S2x6B(Yn9*S~{7KeQ9Y~y}svRKmV^^Dm)^6dBo!mGtHGTHrB&Bj*gFW zmJi9&yP!@^T*U^8GDa;DGfl2!(xLB{&i11{&W7Om%w2by@7{R%)K&`6N5>*>bjW|f zTiA^vpyo9|3sP(l9;S%3*pg*yqk5- zvf)ta?o)+!qjC%AZ8~tMJnvI=fBqi-0o^eXss?`f$o$l^NA=%HbO-$2N$zjGVO)tP zwJl43kxMa0s3?E@G@H7=s1d^cVP~R@VEud|dh^AhHRK5St{yd}hbU4bno=r+fzP#O z5U*F0Z>tY|@&N$>`=P{L&B;P8TvIg#g@!&9PCc{A9-q=Gr@|<0T}oP^v97`ryeBkB z%J+ZjQaXo6;P|JiFjG?gUq7)Seg^S3GtAOvD{U)cVoZ-1|Jy^=)9xFo)%0E4LhQ%4 z_;`;5bmN*H^H|USIbj9rtM3YXIPDAW8~OGzz2LZq&+!GZWF{lvvo&Q)k$##Y-E|v` zC~lFU<(9psCFoml%!7e9oU*gDcrR4qM-1<4J@0!7eg57!K905-ImayfwGqvNDzX=L zGB|w91pgPO`a4rsP0=&|W6lDG76G|tJ!G#flStKaq@Q|^CLxww&@9BB@u=4RQH9nX zaS7>cI`F6p{!w)obisc}drTy)aj$;F@LmdWwkswB+5lX+5yMd2&`0>t8K^6I>RPzC z@TrhqqaG0oOhOnG@JBiRe|#ib%#RSvkN%aI>#UC7kyHwcXVyNfFekaLzWc9T+iE1B ze`lnlGgu8EF8;1#CiWwre3=djJTrbNK2qZ`XBRJG8`M3~O1qJNFTp`!=|e<>G|;fB zy3R z@S{MTUftY%r#bnpeuD=dCnu-e^XICDcQG+lw{%{=e$7_U>l@ko!&Wo^bTIeiWsmes zCy6aW=fbsREm`g0#O2942o2~%FZq}dM)UV6?<+_+`1WzK@IkN$dlEePAVN=mPmVjx z)&&Cj!xE67VqjrC1HwE!V&Ysu40{*etnVuln-22YyzHSDHZo=f0VA^-PIV2$o4Z_G zx{B%Ws?X73kN^H@j*#1feDjcnkr5NHM$h#0^op4@3N&zvbSmGbrKOq2)(#GZ_b}h# zqHK6(o)czDAt3$xAxb>D!Q=8_X;9CiKFCJ`Py0D3jP~|vrT#uGIe1!pxdLrIh&3&( zU$WD|JP;%xbr5dl-*|uKyVNULFgz%jP42GFCc^mf6ojAvql;5q(j_fklFE8R%}~{3wGM$ zXaWL)GLx=*z!7x{I2$8^_qONuf6NtwpGfE zr4_B;q!nOBkKZ*G^N1KZXG6$7ew^*z6G!JJI=l22{1^*43^>32;}Xa_1PJGK)OSbX zw9>H`89a8Y#gE@$jFr*##j&7m8Pd=D4F+cKDP0;~?2w0L!{_qET~C!}xiu88^Tcl! z+v=VD3+Vsukz?BJwg)8fJLKnpWZVxA4{sf4vmy!L#RiR`2tCikd?1y|HH0e zzVEiV!%5j7v*|U8Qf$dRY{v?t1SIplm8%KSUNm z`dNSY-^Y!*eca)an-oFkZ%h(EW32+T3VIzA6;=c%yYo?iOwR&6Aolk6-!PG$)+*t7 zjzU)7fjwI@{@)J3-n?`?%0IhhB=XnzgN3on&FX}Qdo8r~`cT?b zrdsbGwh(eT;oUwR-QT^wn}p*}huwWgA{y;ShbV~EIUy`~`|l!IUW9~1UxY1MyB3Vh zZeoQ*L|uff*ns=Y^P5k^addXAfc1WN^--(im2b#r8h=hG#*Vtj)+ z_&}Sl1MV3J(EIGKflzRulVk3kB0InRYkK~uGxX`zVyo*3IQ}~}i*aatkh(zSAEv;x zTQ(ocoImYiHXU&O^nY5#9+nZ<#^Tgl^A)`{UzdUFu_9fdwnZCA5ze{iceWUeM?taU zLro^a!+G%S>DA1#qV-y%2GBf7JpPaBG7|L+2mqh{HLm~9^G|QeMFt5pI>ySnN?(4+ zwN@*)xtnsK=Ds_kuYEkk413)_mxr;>8li+^_)N=)WH)fpjCtO}jb9@K>VH0Q@BZI&xcAi>qVT*nXm_ozOYQpdcj$Rb>6p04Q z(VJ;bq_yIPPj(&Ip$g5q5eA3USb9wVctB#=+hcofQwqKD1KO$Qj~O&;xrYo8JVkSYbbG!?ea?UqU(cd7B zlnf3hKFl=isoIp?xgtJ|d9-du^FM1Fgn&L-?pCA_DBO%-j`9Z2nBAZ?l6A{Ddm>kx zEQUoJxeYE%43q`jK@~>K0N>oz3I+jh)4!9E35igmK^QL==Dw*s+o*Or4rL80;AdN& z`=R+}e+u(YsQ&w&*X|iILnm{X?O_^?XX{_~PS45QWBp$0SN_6C^eLb~KUB{lcbyA0L0|v*lItGCtchuDRHRfw3aCDTQUL>E+Wtlxg|oUF1Q! z?KWZEEvg9^!&Hnn+Rz*EWtAB(sn|b3T!C9&{N(Jq*KzR)HSta&y1st~_V_%qTa*oC z-uB+cM=B%}jP;@@L9c2bl!cYvH)k-_<-Nkv&-zjczEkEVV! z;eVmaZ@QnQuO;&cZvo7VnV9bd4d*geM zeob<6rre>EP(s9`04RosylrUDZTp`-1VguNN-uns#xz zbTZl~uLIOHR*3llwj2ddhw$x!+`FxT*jiu_RyF%N-*LN-Fi#f0u6fj2Lw$S3fF0yT2> z3~!%5%Az33j3;QyByhFp?WN=4#4tDb+{W8g;qB#vF!e(R#ZIvz(?kLR)G?aMq0H0| zwzs|-Acc$<>%1pIZ;EV_jmmf#2qxB?o4yaKa~loJ`2~VUDs|Cp6dsQM_v>dvO2JPK zpENVyZx9y$$B2|qV=6rEUb5nk|H9`cG8DHd1kc-Co%z-G#6>7QWU4=lQO%FUG|K~BtL zJth+|uZ@y^;PvvCy2#ub$uUiHu#ju>k44G85oYCiTS!GJ3*v?DyHq>!hyNppl2Fcn zxuocbJakq8Lm7MYVYrW*viBv__@E@pQ(lDhJMzs1x?s+f2bEXs{0EyagUfL0{uXvW zEoEjIslO453imcSJuB%1JZA?GK!5!FITH@zNL8+0?RVYh&4YsWi{-PXtM9gHMk}dS z1K4bA0^%HA-BO;5KR=UxS60K%3*QSrl( zL&rt@_3xF?TgW9M_ZMwT$@4)BBE!1grBDV$Md3Cj3F16tj?-Lr%SKWmp?u_vsw{F$ z?c?J=%1o$r@IZnO;-k^T(GC#Hf+>no9p8Adej5N} zctk`w@YxTm;vM%+1(%!+>2Ukd6Grffm=7h$brV>)aZO+LPH5%qY=q7d#Zl!-5DO7q z$Xq{T*?Qf{6*o!>W&eNYXO#BJQbyaiVG<>ckn zl5W`aYCh(gF-id*b;Cn5ts`7D-6T_s%tDJP-DH&RW?fY<+gLEUMsRtur$PJ7qL zk3N=69!x76ln+TQ7DX4(m%au$NFzV}_u}LmUn7cJNcqwK67^`Ti(FLqJJQ}HQi;)8 zu_*EBj&4o$wrB$9mK6ltho-*^-O}f=R-sfAzy9faa7Py)?iL9gj;=crC{$i~n0`O^ zUoPHg^BtcmUFX%Gu8a9~=?l1-aVN%YzVqXSsS+t&H%i_RL1FKeacMHtOz*E&G6uZ$ z>k;$^m~Lc^>2_zOZg-aI{;ic;#W652V2FC3NEsQW4-3w$2}%D}M~TNZpmk3TGXu9} z&IBifovDQEQRsGTv)JGuKo2!;q8A2xS}^Uwa7R-9@g1o6h;-&|_h%gclzP#~ato7E zqn*327$_4+oMljeh)%ewaFE>Ts{OghOo4dM7v`|Q!{M8WN{S(hr-oM?;DGXijv?RpVHWEooB+whT947RNa+T_~yGZpGfX4ckeT3lxBJz zJG3A_wpJOL_py_bEj=^Esw)bUt~C;`JTKAihTgO!Uxa;AzP$B1a}u{0Ndjb>glu{r zz&$U;JpBKnr1=ex9q0ch!NP+bh-*WI?>r3e>A@1h-K(V^^9howx9Tia29asw9yakf z))~W3TNtVD{YB~ENag(9W*o51rJeX; zU_hfH#&MZ1v|lK&V!GMF{b7ec=|)5v3GQ)qrgeD8-))iL`-fO6;Q2QerT;xP!PvN>K{jDdb3iNOyX(OR7 z>A7LUE`WQlkH+dgD2s-nGet_|yx28$esSGlWArWfo{e$Ys!Qn9Sq=|GNNi+Y!F4_9 zHveGzhnV6+`B%me+5k(2KXAU+m`l2@wk$uRe$lO9(uZ=bw=EETZX~N-OLuGe%72rx z@L_ObMZJ%^$_VK9uldumbSjzb%S1iaIlRR8$@4Xe-%rjfy7$I?=mz-p>8MB&Acwo= zuu}724_|Sx-`RAa@a7g(bLZX&JH76hOPwGQrW|eEZCSWO<|ObHzQoJX+jiE7N&KBv zsqsLw_Cm83d15~UZk{IzyFHL@xAc-knRfHPk&hQkqOoV_o%S|gmF(451w}M`t@$MT zP<-{ag~HB_G|g(+{`o?GO)z{2d?6GAkB7o;JFOpHmt@GVq0cVWISz4!`$F*(`RqS1 zQbzq>eWByV#og|BqHC@zpDRS{kU|~*vH0;KY_yqWOPF0>wvCo^?{L3m$y+{M%~Yj0 zLj_v?Ak*;nS%mTa#*g#~mIX0c7Q@LxZp!~5bIW@~J}Pqh?nh3~5z`a6rR&K(2;!aW z_KFt^H{cF~5jDtIv&GyVV5+|u;Umi=}Mf}A^u>EVFo%5En<-yti zM2TwKka$3+;JxZE?~W+;{8O}$aH0DY?a(+KzFNjV%*xs0T+0kFd zu3)%!DIUm$3E=cq=mBLZxuRTK?w!}fBh6`|Fsw}5VZhu>9d2w?p)34Dz;+p({0(C9Q4-laiW5_K}kR?xlZBj!V=GzyQh6aHk^8_!;yS{@p{ire zum1fYE?tIh;IsJgZ#7<6Mh3XY{JN|cxAajd$}P_os-AX9Ugl#~KHvj(hjX6`x7{(e zpXpG7uR|})-KLMFZ(?3EWu$z{w1SPFK@+79WxQs}m*=o$2g}*__AsYXAqWQIBw8{^ zER~_JFRI_{kuY^{TuXR~xU{9*2YEdLe1f6sn?rB|fMsfC7;87`GEM$als6s$ZnsIq zXV$%f%GDcHpao3J2{mYMJ0||41;~Y225Xe||r=6$j)`-wW^%zkz4!v}^utKuAVK=2K>cU&yX zXtEd<=;pvdj$`XHVhG;oRh|Z37vr89AM`Ugv@Jd}Dzo}X(lpnXx z{C%49W{YpntiaggyUy#J*Ds+t9|ZnFH}E}^fhPdyEnTg`9%n(Ui`Azpsm})h(>lU- zk)MJ6Zqf1RRna`oPov$cIx=dG8MJdrgZL*yAg~1yqF#|w2a0uVlEbICyaTtqGF8Bz zzrJ5krwU00^JpQX&Ep{9X^r2t5K~-K`%ixKtf#LUeVku|`E?%9R#S3uPb?%Pq%*IJ zu9|Wk_1;ww;#rv^ikoYOMg#l#qH|$(Uq>qMZ&eoRtUjJ#wf&5E<*zYfDdj96!^L`z=rv3I^H!P(<#EOpzGuN|lmZG-5I2 zLJ!1VyN=?pulv5@lKs^3C>~R*&gbErhaDA#XH638c(?Rql!Trhxq;UPZF^T&L0A%x z6+V+@u`MhR`5#B+@~@7{Zl6t5=x%{>xH>wneJRCgtL~ccC(rbVg6eR<^oIRfEsj3s zJUuHHTcr>m;ERH6nfOOVMad&;)gh^9ckhF^GIrCs*c>3a*{Z|i5E@1I%|Yr>+S7OQ z?W_IMBb4L0Z|G$juj!aH7ZapEi&2HsRE%@*Z{ zZ@uwtsuqTa>%ZTWo?cqXbxpjh0v3fu+_JBjnHVlBq9cuJY>9Acu$*V~*N-1V0N zSXm)LKE|035=y<5s=wnrvusg4*@s@wnC~D8Le|V5zA#TCe(3;^Bp7d|vTe53X^;e; ztlVt5eCk8V`OshuIczET&1Y9u7*!@_u5&O{W`(LnDPPh*T?`g8=4Hjr&ZTGk(LRss zCj_A69U|qm$%0=UYsNa9xVw@Bkxcg9k>Jh^I|LCxpo&ZD8=NbbhD~OZJ+dg4Rn48b zAWO8$HAk$ywXLLOzM4vgXST?|J#!@kuEU`1-8VMzibvP)9-5E;%C>x_ zSAnF4mhT~VR`lLs?W^P$H5r}vNj9U#vXO_XtzYvnlUTmcD;Db4SJ z^0Xyf#Ub+6v>HJbta1@=Gq6*f9MYyze zhFc&ZCa5f;bWF z!q!=O%R#E~2m7dJ7jQ&*jzE8=ZD! zW3X!xN|N0KeDwdENccnK=WX4ikePSOADj`#zgT2s{-Mqo z+2u&5{27xFW+M}tiQCo^8@k-JzRc<;%oL3-j2~7W?fm4?=uJOdGa0q9 zK|#JAD%mwTGg)I}(J#9bqKSY1CC!5r3d<-B*4>w6TS}={Wb$#>{-7~--nRmcyl{iY zy1emSb6+k}2si1XQmR1UIrf*uzJ&74YKYBf1HmJqnJ}hUW-Cn2aZcT;9Tk)7jT}SA z%_EZIkw!mXN@*P((wJe$E?hax_VBaX%ToK{#4xj28zYV7M{p$dnv($WU9ckKFg;iERtp5!kX z`%sQuGqjr zvUkzXFoS_|pkHF$ck0buEY{2L>>Vc?LG}wX+cR&j9R`;ikYpkmju)e5!w)uZu7?Ud zuGYeGDORIA?OvoS)xdhgGT>}a2*jTD@+Uod$8kW@+!h?QG$b~d%N80Ky!cYjCz4lu za+h-?UmK+aha`bHN?8ms?}M+$hjk0n|ApFI#Rj)?%BjoEoX5^2JR!nG=QT494+6$R zuWE(I8DBK8-}MkWtOR^ak%G$nG3B}}+3h5nm5piN5saX>$Q4ceZ--8S9 z9UitN*J5+NUW(D{VpPz)E^W>(2ua}uGyh=3yU@Kisaqt60~i$!<8)nH;x`R=C9re1 z;zJ7P(Q7GL%9ayxc)P#F<>ChYrFHDP<%Z;DAU`VuMFk$KU#OKf3QzOE_U+(A0MCdddtCCVPmL>+j=}dAW&YzXm<`aG9LB-vt#oi z_QI~A#C3g^;)=!gt{u)wOfBe)VKR1l$h92_pLcYr8LXT)dx7LQt1Q0kq(@H3q7}4E zubh2jKz_#JbA2_kT8-Z^T=GIgsb}lN(eSGQtQg*C*1K9$?aG`iNbrumDKVC$%iCm5 zLmA~2MF+gzM7;U4*+x#HdXWx^@{ymE-O1%uSV96k=$;6L>Y_cl~Ma5jD6{vOt35+FIIHRL;fe8%FbcbVz~C$6Mo^9(zW~Lb32vko^xd z0Agz56zg9NGW_(S$P^Kr%DRVgwf~6S&4*2`NOR)q$(V0p_MzK!_g)Y;Ux2F_X~9wC z5tUnf&1D*Z2d$iI3#SuC8tYm(AcFhaTfFL{`9Wua<2PVXy@U@c%n#LvC<*xME+!{m z(;Zj83%wYZxIQkA_M~(DqSnZqXR$vpR#)S-j4z~dK}k_~7FQgo0@a^TNOL*GUEANP zwehHQV-T|>Ef%KOEFnwz7~<75n~e8CH3wpDH^!`1_n;~5813yl>^ysN<$)xDMg0ov zNj+c1b2+i|Xsh_+S&`$5S?NPq%Om%gSBB0&Um)^n=g%au$lR$m4V`|Vlj0t3?^=fA zYhT5pHkpPjLgd)arjTV>3uZP`yRT|XP9k|KAz3$S?D;tqK@aYA=0C(%DK(;csirn` z{fXXjN3YQOwCz;Z!eFsLkMnAMS-C(F_=V+l)hAqrx{c!UgI{(W@MK_TvQL^RwA;2vVM8M~h24vX?G1b#s)gxkJL$PFdzWW)V_J@cvc)q$&FZ~!#ZScabjD{2 zqrdZQDW;v^ZH^a2pMQU8NhahIlbl4CN$EA4Ik!4047=0H8L#%-JQMQrGgF~=I)bEa@F_lBwD zYNvCNV^b+nWdpPUyXl)|?03Jk%|**N3Zl-j;}#k*qem%yg`G+B=d~Yla<2W%+cMc4 zOx-*cNTu9+6tltbr5)yYk`M94$(DGGH_Qa$jX! zc69g;7wG`G@}FM2H}k&SIPMw+`AxqIkvO(OJh)*O4?ttbr#e&p3gu{5S06vde_#W4 zBi{Q#U2vtuq69ABdJ%qcC>C`p^<@AzQz7ByW{8)k=s7QhX>0pe7C)OoL(G=T3To>^ z`L+BU_Eq(TWKjzwvG^mas$r~05sX`&HERS+nkz4Ui#2+`9-M>i{pNl*(%J4=4$~O_ zG~EzfC-yD1=f@q1>Uj+V8-FyVHH5Ax)YtppxTFc#eyYMmz?YIG8_NeT_rf5r!Z(>0V$LJ7S|yN8@@5qGaP&^!3@M~MwR3_apF%9@;Az$HJ#Jg3aU$^%(Z(T; ztWORtnc2jraM{h#_TIR@fn(Fw8B(r@em9-NJIE}KLhK0j;2+_De@ma>5t>$TwM0n4 z`^t739R9k>`>O%EXSVzaz!sh(@CeJ3CjgI(c}EYeKWV;*KLn~+?L2_FL%j!nwRLq> zdVfrrBsdo$gGm26Zm_d=5gnX)L6HZG9oh3?8JR!qD_Zze2dKww&W8F*F(vwKnO?5J zh5gMmo3!{YAZp=z7Dcjt*(=>A8q?`}ql$)HQh?e)Gz<0|cSEH>e$RlO9xH@m)aM zh8CNu653*q8~Nc+uJ+e<$mt#!l*3XYfBg8KP$F25tW`$jy=a`e$YZI3iv)+;^FrnT zO(jdADBj4Cg~XAC#|0}0nS|u>$_ucG|Ic!IfB3iM{I#rJj5sdpsnvDqeDS)z#f3fI}to7Qo27w?=$*mJR3{%pzU^Xk4fx|muc zhnU@`^0EPS6YUbnz%FX@OmX1oFNnbDWr<3YPc8Xt#t3VD%AE-3HDgyp!L351JwS>q z9^W)&Ul<6u)4hmcDR#kG4V61DbGo*-R|dr-xR~!9pe^q@EhjSle+YZ)uqfN8dvpjv zkWfTARJuVLhEQHXkrWB(4(V=&5D=skkS+n~mX4uOK#=b4?iye?H{yGp-#O>~zTI?|bK3Yir|bik7l2_r`s4B}f5BSTMfmh&sC{|4nb$`9Pt}*s(hn88mPof(f0# zmlqo&29;W4V@zPSDug5c3U|9I-7riciq~mtT6iM5TYX_kfZ)eNfE7OYgM4q$`JXav zoKZI`BIAo8Ropu3Uq!#`-oPq}o1ix2X$3gf(V5}@9i0J&+10cA6FoVkd?hC06PR!K z4)LUe*c>oT5S9a{Gvs8uy>3nBrbMaath8tD)Nnaz;c+x#uzuQv%a^KtDiXi4%pU=) zRx$hDQm4++y3SJERE>a}GB#f~^$|Z#=A(dr6K)I3KM8l4&eOb(2;d0mlK+jJG~dCf z@OSmZ!g}uv)gFeBW8KWsZW$4(eJ#<+V9vnmF!v>O=r_4DPp{+fTdsl(?FF0mrHU~{j_)2!M`1=q{#J88iEFM+%L5(;r~$BBx3aPTf4YBPHm zaR}26HJN|kXF9acZnzYoL6i05I7SE7VlE+>d$3QoP%54{>xiy4>!5wzJ{_&R_1`(J zW^j^xSbJ=NVwD#QX+bA65KNqT4N8h$hIG5WiE!wQM zbo-^gDtNO^i*Fh-AdS#CyDixM^wNWQI$sstfIO3*i1bJSmi~gwWaUhjnCtSlatscc zBO+z~jRTsljlx|bw%BM_%c6NDrrG-abR4YBu6j_ps;z%0%3Va+to6btk<`iTOrNE zuwvA>_pLWRy=Qznip{@XxmWe781m?mzm~RAdrd%ix9jDr;cq{`uq7rgQomBKQDN-gFpeSI{}eYr*l-J?+ys{_`M*F`$2uyzb_tx{V82*`7Y zuQBPz1bWLI4hX$=y6Q8jtV;SS(&x;sJg@Tby@ zxo5<1*0API4`5rk$mZ(wp1n52Cym?|jsPm)=2M_pUoHqpagHwoSvSU;C&e@UP z>TN>0x|hlU7&4c*ZDv&^l}_4C!m##q&@DV#pScU8mhe=7N!XGZ=MStOsCh2O)4Nl4 z61MK+Ih&H@8AYrDOx zk{}Lq3)0EFH#r|hM?b1nxwuyBjzU(0)hQC9A$Jmc{tz0@ljr_>{3lhCDHW)96jbuA z@yfF9!GmWBBt+1IM$V`T&Q_1&Zz0$1-!Ht};HZ|*qZ9@I9@RB9MW~l0jixRKg_Dcx z9*}r>E-fAGb`)7u!~yz6fk2+Iy7d%{(>??RDazOWMxbM2(mnxb|j4mXixWUL>h{kYd1Y}1?juk@dJ0TGwI$7Jp!;Zgx+N#+ZGGY_mZUPf=MQHZd zG|&hJhx%?a#y+QNCD5L6b;Yloa$7v__DPYmBM$I_%yDV$$ukaE1Nd}H<^w+>ubxmC zSwgzqk_z@~_Q#A?cNNttkujR`{=y!MBvf0M-`}l&%!$0K3@=2i;3V`w{6S6l*?%TS z*4d4^qn)p<=cWNOP=r(--km-TFV^iV_0X#0U;fjiTTaXmb#j$WJYEYl9ZmIG28u_t zsU}5URfNPTXWW@DZIFqi@uDq8GM#yiId#d2pM8_Vk2|XEOI!=3s`1VSlYXQ08LqcY?D z!eqnT!Qd!{jp(^*wn;o(Z-5b!u&`joCS*(!y22d?hPx<)O-Ghf9BIT8~Rz6ZS0$D9fiVr2H|8-zIp zmHb?@Dhy)R>IW|0b593n+TWwlWVEm8&weu3BG2iJ)USi?zCB!E#RS-OXzlBN;?I6r$Rvnz zC&1|1V=zSmrQDpl%H}vlk-=`v^V6P~5m8a^0dDTAXYFvdP7$7vqbFhTH_$j)qHHaB zizVRI;<~^1Gh3~1l;eq-e^n(wM(S8;Rol_^B#YcpHJ2wH-W_>Vucu|<2_d9M3&$R~Kk5_)z_x0Ahq1k z0xSWC=E&G=iZVQrRK)|=FJWf*35}CGLKZMbk&%jticE2Oi zyYlWXh`vjUaG)$Dj`~C{T_BrNE$9y1eaKxMXG!mKZIkzP3y#Y^&a0ai z(Le+6eK*V#jQ2)8^_YS&m770&bHBSvY~i8+xDlVEEhEkzmV3O$>_x=x?Sm;FR7sr{ zrQpwmdFudOyrA_~Xqh|OETCDJnD%{@ar*<$y=VBy<6kU5f94RJfq@}!#;L*MtQ2tq z_8QYLGfUq$TcQq+ilp6li()Zw+8p%(8d5nDfSnSvHL)*!Fb95Y=&?EQRf@&BO;AfS zkvIh|P-W1cSqOhXOsJ^K-bqKsbBT=Jk;{L()yQ;(pS#|O-7=G$VX#X)49jgG-s zG)0{}oFJ;(ALn$$eOn|^arl*l0xK4PJ$;ngS-b&9X-IttP@K!|jZ8qUW%~i~bKyfs zNNfGcbV5;Z;b4W@%#%G_J;jm96ZJPF_iH3n2_Z(?E1>Yn(l>eNC(gn6ubfwd>T%$pJbJY=|%vZhAz+zNGP6TIp*)r)g_T zXyHA=rShkjOG7;$e&oQxhq9+r1zBSi_A~Pva74CG{qU|TU@p+HzF6nLDPV75_}s5x zyG`o2-3)*k1-^S(UyX1>5F4L^B43EVLp3uqTLrzAo}`b;BevEFwS7B59SSvX(61Rx zL*`!1Q8_xfMYk}}b=SV`DAZL|MZU-k_&NJ>miijv_Jj{YC1{7fF;diJzc=4N{u-YeY=#9?(JnU8r*u;sVH8 zjQp<|btDTE(omx`xQ7e1@;2_2yfwFCQ~xdwSb;dQ4BPfNZA|rC%YKIhWTlX0pGPE_ z{LRqfZ|`&Xi}V2uMj(YE6i@(mEt347p@CP^#*$>a?C0>AOP7H2J$N+%x*7Kfe$ZZn zVLn6viW5V05;?>`Umxr#v5U3=is_1Av5ck}3j>`8kPlxs2kPe%1K(t)UO#8@?MdLr z2NKxT$;d2+OqMLP;L|TW{54iD87>XiIqKhAv3VnE{pH7hg4fjVS-RnM;b_MDju>{A zV_4%6RA8NhqQn?eqOwD8G8x?=7^k_8k51utuhfBNJz5T+QY1>D?%#hQBh!363tLDS zdr|KtGU2;zK7w(H5Dm^%w!gYyxmvGACE)x5ctTkrxZYulPa5v#t)Mrap1PDDXF{u| zs^$u%Cs(Ro{nkE+!$0m<+Ibg?>GpHXoa&%4-mPbJhFHVEI4uGufGiq&`W`)skc{y_ zoKbr%gqu1eG6W^kTMu+PxN+!kKY4F+{1EzTfR_66r{T)AlRX#N|3Sm}I^#v*_y2?b z8Ibs+64=uP5ZK5qnv}chLa?oYV3Wgu2QDEY*ipQW<=;6IZQKUbpy9beF*Bw&G6+{#6Md^=yD-A%Ij@3w1pQ2JdZp3JG ztdWDfk;8ve2vMP0LT>~l^jQ!U72a7$TjqiM`<-PT&|$2JS`?Kc=9`ey7adhmk0EM@ z+F-?4Vshi>Gi-5WW$E^$`MlHR7}N+8Y7@rB|LppZqT~%;EdJ}CZMrYTNkH%UJ#eKQ zkN(&cn8(vIgz)n~FfcI}<^riD#l^*wzefj%WZL#lvA7m#)drj$tgN^qQV7I{tzWJ% zTq|Al0eNoCBDNlLD*hUJc$$op{3R&w3{M7U3{hn4-nWfKz!H@ip&C#czp&YfOY^P zbK;^u9i#@?>gBmzq<}&GUu58Xx}BfzDM>2pOUMS%9!Pyv%2cGnig2C1*WE9mC;Ecs z0oo0nsF?E)-jNP~!wf&wr=cixDbq{xLI8z}7?3+vlz(j*0NU+A7fz`%*lD$BuW}pUT$T=EUC!t-wXfJ>0ST=VdL5sh#S^$1py#UNBDq6 z<&8Y#0_;gC%TxtY!HP8wW-+hB{yW=Odo^D&K{oeho;v&Op(swU`c}zoEGCr%n?KF6 zAK??O7dP0^kAHx^G5XQ#M zKO-4Rz>c79I7=3BKwzMGCm~=>>y>UjT({OR<7Ep$m^T~NJ{_F$cnKHT#qkmrrZkdR z*K>)~qQd=va3^%eGa106*K4$n`CawTL!t^cAG;>6o4?{u`t*koI(n@TkX6YK(Z1&U zqUOC`2>$RvyhQ)X>)t$ANi_;qqg7bX6dH%VK3|`%7mng+eCJu!+b7*A+zx2A5+){j zfM`v#NLd8zKm8z4f@3~rASD+i)XJ8k4O?Yb&88bIJnc*Ky@RLNaU`@iFwr)wYhD@q z$7{~$FN{V9ln_(MpdBJbr8=BK&=-tk^IEh7Z$*%66};aP3`0yPsTSmYMXJ9XGpBIm zSM6ov;^wl4iSd3IA-8(AR7~{uyYiVx5%eoKB1w--y2hjb$@=jy98=;_BrFl{2GeM9 zos@JG=8I_ds|snPqZ8H@#Uo1j`I z>||dy*ZLa4k+xa7nsj4!y=sNr{I|4!fT2}9AaJr)RPsQWvsNFls&UGXlRp1>P4@<* znrpW2OVWa@D>L3)4-Gf4(D=j0j}ky_tPh~eWVwti9Lf=M0`B(&Y-YV{Qb9}~HP_P& zrAHmq0i`7F*X`w(@iqt6tTLPa2``>Urp74nbJp*!{R~97e|B=xsmJ%9)0IZS`S7BB z;NH*WTd1jeEdk#US@t(3M-UPBmnfP?b;FCuLDTqd>H|36f+>f+w}&hL@c03(_5VQ> z<xt`#eJnZPTjT;|T=wbs^lC2Rh>OWkKjH=&O9XJIqRUl)NFUEy z415{$2Vv*!eC?N?C%^`i0Fdj}PFlna4TGCr;<%x5Bn4cU1Xy1-rE^+Z^dWH0P;Jx5@|Rd7Bq)QCQO+>>GXJmU)XTl7>y2{jG*O}9hJ#E*-G z@3v)gp@F79`f2=q$#1Ge0P0K*28k z0kWeyK$2hXNy;Ozx=F&KShhe-o13-8)C)r%P`@eCo}yF!92vO>R$1iQKa-HSW_}Pd zDm;`YzvkTlajNChNepI#sK;wyCxAl|(-+pb8l`iJ;_jLe;*iFo6%XQReMcWcI@#ynabkZTsqnO z>;D4}*N0wNk~w$)oC>E&55-Z3w8Yo`*zBb_N!2@a=V58c;~|x<&TKf5^f9@_lt|H9 zQ&q}tUyr+Thy2i=vG4rNw-@;c4%uCGSjj&JQSN!X*G-h$ z{1fF80GPY{>W289uRgFoR+cq>d-XI?z!nu0Q_8T(3QLVQg_>{enQc@4lVIE(={n+1 z7h92)MBNWtQ%{v=fQ-E zDbzyM-xVyI%b|R381#co}Ko6wUHF>RB%ErTdIr(d=64O5beKfpCK*rXp-Y zI?qh+Uzd^`eb`=LPEudat{;h??pXbF^{r*837XBWuKnbsW4w4F5_lCw z=`FQ$(VZxc-0OsLK7cPJg15fPnP>i8(i z=amkKgCdlibac->Wd&u6L7^>|fX(eYFFCTvAN6xP2mTW^b~71~!0P>SJEzv9saI&1 z)=TW1x6}V0J+;WBo0qjCh$T9f^5JO$N4nWhan|Ze^vAvz&=n}Y{2=I~lKk;05#G4h z%!~1QFv%|<3+~1x;}K7n41MxIwc&g2V8xSUkQ%1}S#AJ$^V>HX4@r0uHKJ9IRE=x# z48xt)#9#-qEDvRZWV!HZiFzA<$6;bLJ2VXrif9#|H^06fAx``{uH{tfR`~ysli8Yv zWY5aV$g~1E*e40=b`sm06P=xj?%UOv(oeY;evUuPK01VlRKJB|C8=UFj$}K4JY|AE zKPmGLe@)Nrv2(|DYirM>f-r2c#gZp))kzI6Rh#>w`{fehZGvdGeO_WXYwpoJkjQpSrqd~;$*7-Q3(9m*e^J}*?>xq87;Bx5e5s?6Rw%9LU zzVV$Jd8DaSH>g%C(`@`Ad0TY)>(!y~PMy+af8IhUSC_efgwBl#8`vc0Uh5G7NqX(x79?*wcdU^eOr(ZQ{tQ&-3 z1GS;W#FGFF@mqTU4mfB{O$}B~klQYieLml=l@}rXy{Fi)RcAFNbd({!dnsII6 zBIuTZi#w1ef%%W5WKG65JI`I@<#~y{$?^U7Q3F_D29?W4PQ<9tNC#L}HSfEe{Bq!1 zw2o$=Frm||AeEUCp;dLJNVSV>1Kr`fl$1%9R(tbpL-*0N3Zjij=0pSG#-#+hqMX!(H+!ub4+L!( ztwiXzEb@fB7JI^N<;Q%I@gEb1UwG%c+H@d&htB`F(U8x2q_E0U6=^51(6&01G)o81d;YL?QnZLH0uEWY?QrrPO z7j3)aSgFgcwDf6Z1z7#!VzShfNcv1`lI2~>N|YmMhbHfuD{aSR(j8a#H01mPk~&_z z$YZ)x)lA)PD=p1B31X-Mj9Ax}@lTQo!CHLUm>>@s{7fjlB_mibpYwLdab7d$scs~1X zlg*uv1zcr!$!svE&1`W{8vLOvlR*s2K1LbE|2*u*eD$O8;Y|#r{iB&uWdTBV;_d%c zVXWlY7W_K~_0D>#kn6V|4<5!biF^s-0wox+Pc~!Ol4LhLn_auVbj<{T|3-2pD{jUNC~>YRAROUEJZj;>EgJ6aC6XN7XrZZf zh9n0~uih^|xk>Kc-|%q(%K4d*omC>PcMs`L9$#{;xWOl)D(luzr8w5tFz|t0W!;M6 zmDH;daF{>_V_v_L>pRoQ6RJYKmxI| zQGmuqYp@d?zzPQ?wWPr$-)VjLad75g z#M^GhUoh$WsdigMc9%ub)a%wpjwFA1j;w#Fx+;4AjVQGZwhTJM;64#c6LKj*Vh^$( zrwW)@sT)&OVf{89h{NZ*AJz3&*UbOV;}(PK_q+j?RQkU^?s|*ZcKh6^&OPN);pBp{ zMi)#B^$a9NGdkz)Nms1h!+ZZCuFN&PdDl50%(6G-iwosn9;EF50D|k{HKwV3bL=<5P*IKy{G>PTA-Hp zg^Dt4h@t%<4<{;3{HEj!@s|daBo?6va!iN4AVUYR0Vf#!RR2}h?Kk)b{5@3Vif`v3MB`h*GJf#^h=Wn-Fxy0;dRNGyQ&20E0# zxTtA~BjzG+>P_E2X0dzil>weIp4Gc)ySk5;B-?N~8*b=JO2K}_Pm)c$oL$THOsh7| zyH8_%zP~)ul>Cet*m2{{gBd`?ikG1(Neuy4!?yPdX z&Pb%L{q+>X|8nHn{u?P4qO>Xf4yWDXi3>60cB z_8X(1yXis&fG$)QVAe(6;v5y>ufafz?xr}3k>T`f$wYz=trU*VI@vnC9sy&RItsYB zmUU>K(s2Jin8_=9`9OswpsthZbYIK^jJ zwDk0I(g5Aip8Gg0?KbYvaqU}D*tQ32e}6w%Y$*Fa&_C_PCxx_<@xIfgt{CNj&V`kg zK>fDhG21x7;f!l3N%4|3ASLo2F-JE<-&`)N?K4fw8v~kzZHcw!@(`}gM=afF_+ zaSxsX-BNl$MmGi^2s24K!-qGtK1`jN!--N44-d_GkXOdokct61bvrljz+?Uz<9_}b z{v&=JG;W$yB>2$F@8}$U`Cd$Y-t@xy+Ek%h?u9qs@JNDscfv?UIQ9cW-h=j-f<+6P zR3zePrF#<{>`?Ma4i^b(^oHcC@kv=GzfKNG2?T(ZeL8!EDx2cD)hLYkJ_CB)wS8rm zg>oO4#W|~h^VFvs_Z93c`xkRgJ-aF_np6OZ#TwV0lK0(Y+{)vx>EXJ+yCiIw*hME| zlSOK-2c-|epWbR|WT@MUC#z01#@6_>pYseU7Wjf+RV0z-X<2p74GBkr%u(UpTpnws z(Jm(4=!`q*(OoMvjM=F~kyMoSfR+?OEk*?vnRYJov$EoVU8xeGWV}$a@T}`VH_%#s zwje4+&R|X2=CMnZd7#5^EnI&WXd0zp2F?!~^!HTcrit=4G;3v^*IEy@5P^0khLx>z zH|EDXw2ChI;V)^w$VwP_c5CWgqvqN2o{<7WO9--Z1D-Ph!p4_GuJsXXe$FNv9_XXd zO?gxq`;ZDdux10Z{`3c|0gHnCr52tcAwY1@4T?eN@tNzgXh(ca?1KjfO|1LF`+!FNh06GO3)Ck3;wV9NZ@YrA zm7cmC)``=YJ|t$}oB9&yN74IKW@{|_J@@~_$vWIYOZZFjQJJW5VQhXl%C)F%=N`Ja zy*=swC+n8u;MD#X3-Euc5_>+|s;{C*+1}2Vqf&6jT90;l0VF_86k#K`suJDqe6p8Y zcsFjzYN~-c#X@K|_2Id(0_@{$JwMLxgaT!J7-ZFknOOffJ2w=aC8z)}oS}pD*9?FR z$^1mrv9!zjD%TAnK8w=_1~VxcNKLb3jfzuuLKYPsdn16AnQsboGeUZ{{#FGjY^Q5I z0NeYb*PZmC5eoTZVRt@^iHa+q-fv#fTZ7_2*k`FG+7B~*ZX?EP%75Yho8pI(bw})S zNuucuhewC<3RzCFj0aKetxGJ!vz5OzxU-nd?;eTvvz&l!Ih+owzbyv*e0}edkbF2j z-DF^9Uf8bLV6QJ^6_E$}m8y`B(f>^#ZWL*2K<43BB%KpIzau$6MZ_@0Z9H$W>=U%h zwiD@Kd3E!fQf|kL4YD| zaFtc#Gwy7-e`^GkknL7azA74dwI-kly;Ks_xWPmZ$nUyacTbp3EN@$U{NdI-b7)4L z=2b5gS0tZw{NNkx(z4JV%uYkIl1V?*!zdMWbO1WLGlnAz>Dn{tAIoVgji(j{Y9CYW z+AqQEBK--(Wj!J`oMfH|+#g(1?{K{V>fl-g9FJNwk#qwrq}y#o!*A^9z=R_ad2Vbr z?f389^I=l@w&fg60f<;4=^M)TGekfimj{{-!r(Hy{e}K3w za@?pkDzi9v*v)`?X0zYQ)U8v60~RwVTMp*BG6*?T5i2vR_SX}!;d*zzv<6*SFxHR+ zif!n(h@X|w0s)^C)reXg`z7x6f4^-$dXB5O!%w84M@tQQNB4E<_z z0#jcN(}{CAT(!+ttHucY8a``0F8hz<7l{+ABpZ`*X0@74ObTHyY^_@8hu{aDd0tUR z-N|KlktoR3t5yTXH;m^mGq58kf&6DqU4zkvQ~ulY`}+F&%51qR1tG^<>gi4eWP-zA z6J7XWO|K{KDH4ddJNOq_AJ2IHWMVo!uC1=JrD5xJ(cD|X?hY}A(sig5X?{pe^&R_W za*1)s!htKk)8Up|WMbK1K2|Cy>H%{Ia|9dZ$fn$ml{?^nV0%ek>Zx|+JFq|`_1CZK z^JzW!y5lR{#g6CHf`t&Lim-qAU3zbe7**sT9-cp55VBK*^dxO}%+W}39UYLaGXPs(Xf*Wenkec*INdYN>-_&5=3!r(BcnwiLm_6bniXdzwLL#Wr+Y3ctq^Jk@9fI z_j;WWiZ;Y3oag$+9|5Z8C(_&&FpPB+FWUu^RW{Zz%xCFHDsKxt;=!5b`P(?5HMJPd zEi=>x+J~>!Gv;KG|BOW-3Q3DcP1lRGA}ont_c@FSIyNuM-7{5rqHu2bF)RZ~^Z=uA z+YilVzWcieTE2oYWL^2Hd-pjbLrN%_2p)?HGB$53qPZ!S|J*!^Q4xCJ2&hET3$Nh~ z;rio;Fmj(#GFT1F8hT=J-2SNGj=jokB0r34`f7Fo`YY7c1bw{HJaXYE1vdR*WX3~y z#5G(D!FioFY=2W^XQW3EZyc19(D@~6&x0*?Sr>#a9h34%F?Ux>?bzU)XisnvjVgS34!4{7j}Kvb@jwG@R*z?R;f6unzpsKU_!o|Sn7VM}? z!)0+7d!q^C@#1~da|1-V9&A%MidFG3G3RjyvZVf7~UStV`h(rF8ji~YKQckVcZU+Is!F+)6IGVH0!6U1}CvUD= z_{uYo2>EtgQme4v?Oz6GlIQa$JcN7N*#{nIR=?Kjt66)kRpAy& zQS|%)nlZkJfH?W_xn2{2#SF4&SrSL%^1C6suU}a}>m)8jsE`e#yA{g~>{jjKJ>^3V zDOMG{VyM?!9(^!4dttxjhU0$RMlsRgeDusAeWTdxlAcu?Vc&B;Aa%%o2QM ze@y@qOT7cUUxHg$Z;(%g*9p{HLMrUtH%If4X03Ynhcq;3N?D#cxH!S8JF(j&g7a&M zj|w&g4#?khaZsgikov~;N`&#wy4>0=)N<#X_30>2tMNZDPLql2XBY7}pVF+mobDKp zm_F#hTl^spB{eA?L>f z=%2w&^$Lq1#dOIf!RLbs@fveorhbuV-pjddo?+D^`G$@OOk5+-*WaKC&*^4)D}z6&yo zT{g}5nvFm)GXoY1IkoVOu9?s#T=>vcYA9O{T-25dv4Gkz>W&pY9Nx&lAKiZvfvy5% zARe!s8JF1)PD8PN@4fk6!C&5-F{1PI#fuLW8K$&yDO`7`Vf&fKE2`~v-d4^IeaOmb z6!DdT#BaHdfH0` zxqnrw9^DyxFy&zB^77REv`=re)H0ALU|}eKtUCDq;p>6^@4caT5PDkruO{8~g4M7S zI0w*~_fH&*VL!iRpyNri(mPE8aX1uQEWzAsygXULIm^tYk?>Xy8!6Je>T3Dw_TFXAGSoz47coNn5eKcGR(inzDH(6Dv?`D4YXe6tkWAa5wl@687;e8kkn2=w}AI~Z5 z&pMZrj=-*r<<>4C&cHki?YEf8OvfWRaj_-b8~?1B#9xNF(M`B7H+~z=M@zsqP*lsu z{Mblb%zAFH8EzDVd2Zl;b!G_5-^IDJpIW(-Inpy}`s>IF95clO@H>Wn7C7TUYM#?Z zqwv?f{<(Cdn*$&DB)t@Yctsa8;+wgRP(T*%xUz~N_@o0=+E%}4D6&>%G+r7g$y>2JuEE9!ze3EiVX|6@*QtWR_RusrbX63J9G!*kv0hoyNrt(} zy3edaW^;#N^VRnZc&L@8Jt_Gs8Xk=ZJuU*`Q3iAK`2!E{2tydZ*JfSmQV6(^SdM>h z7q$+Q5*PoZX)eTvPFcjq_XMIAdjw_n_6Qjm7}%SYkk?(=u8;S(w_FoZ?oCSigd#34 zcXhv{_G1%y9rWmtTqp&%G0rt;NrYMMm|Vo|`vgiOSjr6WtD@qjrrBAq#>b~`?r~@5 zf8XQF;Ohd_4m%o71y|cKmtA;O%v284P+_8VmdC1s`jBU6N zxie6t58Ev8fWPQMlAIgN?=Yoba;?A@1R&Wf)}Hq*1t6x6HScJG1tusCK*V5}#_&o$MOYrQbaR|0|IBA@4B`-Y!+L2B)Y&(ck#Y#SHxJ%?n=$kUDfF@N)c3${Z-F15fKHL zrO1Ju)t1xWxxRTFRyajxC8IQQ0Q^XMAMU{-L*c?IseQQ9Yn@}xq=g5Rh29@f+UV|> z&_L^Ao%Cn2xfaS<>?s5HN(1xXZ-jeKsj)s^C1%&@L zKYXzq-tWsE!jxd;hr^lX@tS9txlnTIDzjCSV{;YP`0P}^HN2yCNB);1BK3fKtmMN9 zFaWTU2Fv+~GJ6Tpf2Y@Uge@z>I7y#T`*|?rQPU$5o2zsIw~K%9@b}_AVPy3kQ5<#e z1nLcUn^k?&p7MaHybmXqst;IVQ8D8y#1K5f8>%il_};X(_UDp2pgzQe*vF*&xz4zk zI?3CC0KXR6$$|40-|JD?1npZ)t9xhuC>!GN?j7V5iu;1fd`*AlToC%+Q_s*601hi9H9pX$N7g)g~GmMI{I8Q8MLOORA7 z1vUpD)aAcxS2sSXK>U*Jz4cuGV7=~XOn(p9S!ha|kt7*IM$?yfyg`(^beWk0 zYmyP>5cXSQP})^LARrl_?L0?S+x&#kVD%o@hZodh#C$H5V>vi{aL)@@sA7C;&7gXd zvZ#A#;f3Z{t!Y!`_)zXP2BdBFbKZthn^2fvU>FE?5t_j+2_5}m$t|Y|HQeb>I0(rQ2v>bLfW35-ZMc}iI2_gQxM&wcgnk$&N^mU z86w;sJU}ZV#yq0ml~M}kPYIcs>(wN8 zxoi2osv)N<-2XUo=Im}6Jf+B!y|C2loXvJzPn_L7uMpBhbwSu9@J>B~b35R!T0VkKvrUl&g`hO+LhX2Xp*9 z3;Yww&;NPx))QY^zfCCOA4Y2bpKiPNOq05b#VSNchz-Z6yQZuSV4HAi+T)IVY6#)G z)h+k6@_{qeOtxPk#~q20bCA@weLKi+eU!R7D1VJM26LS7I!BzYHegD+lV;OyXS+8& z^Q^gKw-7x?TaPmJTZzAV6qJi-$v~c!kyX-B8C-=)Ozc13JEwebH}?FS%w>e7#mmbr zx}L8OnyTD*rxX;x-m6rpjyDp$#$tz~a#3g2Ybpj^w& zzA3w|$CGCs_CRNi>zVJZvN{IHIwe4z(NSJ*yNV0%vAdrt^y;d4fqys!T4CZI+v^Vq z2tvNeek~6#mCt4|6}O#fK&vuoY>BUDz?JK0YTsO$#AOibn7BMvFK!qn|X%-*VhlI(dKr`vt0=G3^LD!1BU?KL|o>}-ht^fZ#Ayq9dSD3C+! z>h9C0PhBmXx5oWY@S%lm(4F%*MxBPlSFkaLmwcuQ)B|GY59MW&6CtZEZKb;>Lo3wF zq%sZ<-fLk(KaB1xUTM{7f5e?%9r)yy zHv6DQ=07jmq1jOCY9a!3NCo#w@w&k_G}U1r_qK{;4R861Hq!tJa*n4hPn@e@FP_{P z_A&I0qhQ}?GHj%(F@dq3;1X|!qilwkh|wd-z%6Zo%dm0sk5k*@MWcBWeORfY#e_`V ziHME;0OY403JShG$0W2xh!5o|E0*X_Z)8lmca>gmMd|NH)|N8CR{*m}vDENoy;W0a zq178{vez&=qoE|iqmfW)CW-ZAcp^(!ec;ZCXgX;~gC03Ev2{k&@nh2U9rgZl6D8Y$ z`GN7k1UHp`4xT*fG?TyFV#pZ+r=uspb-}xyxq^M+NkdCZYf>!T3z^-#@(fxZ%3DU^ z7!F+ize)<$N-_}w-qt(Vz+w^6oc)nBFeD~sxfjusS$XKMFB58|=RnvE`2%cWARsH(; zhj@F(qq5VBAZQ8JOe;nUX)$~7%UR7y0OQ7s>ZQ}CLH=%NyBYFrm6i;l-?eaefhEv zp`#z6dicBaO55&=_N3a4$bA@k~WPCixAZx-kp{Rgp$u%c+3teugmj_jg0seSL4UWL8~m z)AIs9*YFMMXjvW^N?sl*yzULCsU1FiF;8DtlIDLrColN|w^4#u5 zo3d5dToo?dT=aAd>1t|fh2f=`zjKvyLIh`Idk@adkIR3~^VDa4TrnMaMr$jz1$J8%D z3TMJ509h?q=UELz^FH&NsJ3SSF)-3VAyfLnKmYur3pjUzJ3-bzX1va~sBlq&&BFm| z9&^vq&AAA0wbK=8E*Xey(>KDh$5WJG2CFKt^EZc(Cl1w6U(jb+La~ z#xd9HxKaMJs@mQ-ReDL9YU$GqBy~YoFM+RMuP0%_PD_|s&YAphc44&Iy~xRK>htrN zG{Yc*yE`Aveefv-bKCZ|7qLtyzB$UtJXYn>j6qywm5>XfCo>Br1QEO=Pabi&9dxf(EZUy=3(4$;*zCP6b%Tx-^sJj20BqxU%PsaClymkaJ;wBf z@4S$4X;qm@?pp_&C}OIPwyVGI9m1~^LjxBex_ZM0*$~J@nJWvGD|Dk(+jf7Zdrj#M z1+we->gRWky|csot8kc6_icyTg^I+?zZHY&(IaiK?&P_B^jGz0-UIM>|8UW>X9q`T z-%t87N{};sTS5>6rqFP4Va^00A^|?NdbAYmDPT7W;3(lzU-v=$q~r0dr;rscnDh-qfGwbk11(} zv0x2-->=8(!4VOzVn}&<`#Wt{G1Vp=;dPZ5lt5Ufb8Ua1PQ121^=tc+y|zCQV1K`` zd1pVOc^9T7iNUnV`@6h?@~oJZI}shMwnkB>MD`XI`Nu1Ow2}&RL~GVQ4qz|$rhvUs z=v(jMV4K}D5AN}yS3J{bXb01{DKq+jtoP;VONsTOjQpBNpkk%SWb|U{pi|I!hWm7D z)m=T^-l41DHg4w?`lGRrK8O_+o8^XARj{L5QCPUG$HFXMpT#0YqC(2WFSjzs+o~MZ zE>A)OeBZfW3PlCKGg^Jy5!kvzT7N!Oq}9Qqjdp$_0T<5#janaLcO|jD+BFp{YjSo5Vbik40Mt@-rE}3C9!5Rq+I|TKDVyF zL|N|EO0B*p;Uq71#>lLkpSrX^yvTHF(#5yMz4EBxZv_%pR`;PmE-4-aZm3r*TtHP# z5)<;=gCoohw@Wp@^CxUIB2b~wf)uDdVD>^!Uia*#aN1Bn9O`@p611+)5%WNuC3Y7v zaVEMV;J}#dZq$8e+{VDh=5B?>RG6Yc`wDbJAfv*0$7@n}_fuls^BzmvrLt zD}I-C0SIGAXknJri3Rz}C{@*!HYjH@7NJ(pp858Df9cRuoUx$%v-vbmFMQ!k7(cit zbangdw42ijyrU`#mg}St!mO*QzVsA6+UpWV-xH*VSKE`JK!o_Kt%F1qhYmY~H5X2e z)f5K6)TbMLG_J-2O?3l0Fash;M7iDHRgQq+`q#8EYX%4Mk@MGc{qoC4<&W;(X18TbYN~YX#;C*zmBU2I8XfL04RVPk+Dax z81k)fL8%@T@sH(;kW_P&*2<|iEbsZDa&y%;1?s#pX{US#p!NU#k*GX*+}_?^tcbf) zL&F^hWoVXE*nAl-(`dcK2qaF;e!Nxus;~zXAd|!p_ zbX+-5-o&+MM*-;;ec8L`>5R2jUCJv)eTECccISc&og`!0VUTH^-9>v#4HFRTjrrz< zT;dNQ6K+~6)d#r)@5Xl@cF<33E?Foq2E9o<2=>G#%X=*m)mjx?(9KXg|8Z7rBz76h zRaB=vYuA&7E%e0cNcYmsv0P8EBa*OeDcN*W4~%%`QH0&p^T$pcoMd^Mrf(f8ySh=c``n9D*+30a^=VFz(Os_Tl@wC%av#~Oed8N=aLe< z{ZhGKRqunyJOLd`;gPnZ^d*`I-Mg~ujZrd1%Y5dWy$ow7Ix)oUIzQj+iQ;;}R*1xoLOALy(}aq;Ez}w?g_q`~#5yPC@9 z*ljzs=Cp45tSRd5v=ht_AeyfQH(y*Doppdlb55uNiDKjK3!(whluryXdjA(=Zyi|P#%i?SvU>tT-ef#0E)dq?qq?zl_nYsXH z`Q{9&f4Bf%R>uh*cA!vyh7SpKT3jOGTyB5OU(_l3iIR=B?QfD@ zc)1z7Wbk7DZ)T&D@_iO_hc*@g}LjFl%^B-X(obQDZAAgX*%)QQq=Dd6g`bOcm6~?VS zR9G9~6DOXV?9h~o_oSWJNnzxk$(!!R-Bt}Wn4C12B=6?m)2>B!(|Rdtw}Bz|@u3{O zqYuuYHPQOJC*~mKj47xZsdW$ZdOL!(U#9^`={LkcFGL~b2~rgS44L5MDP>`ZUv9?h zd+(owRkU#*^N(C$o!(cR2vFes;Y~E*x6Sb9g>O+nV*>Qd1u~J2z*r6)?<_1nJ`=|* zq%fq>DE4idFc+GVjoh*TAFv$7QTG&`!|^+P?TBLHNez6kjYe9M6l59DA` z&}oB|oa1{vRe?&be4cJYwd_hfhkjR)W<}*772lh1>NmAw@sFni0>GTf+Gs9eC@j7SgX=(1w77wi>UK}F3!IF{sSs19IkJ#s^wmz-!M%* zGe3+2W6yo@53M4lBqTC5%8LxeD)e8gmn^is)7ZXW6MpEpt+nL;76_Ekh>7_uXI;5A*9OD^uM5{q0+D zaEh3kZOJbieIx0rc_G4uw$9p1Xo0Kaci&$>=>Q^CGdKCkv2lc-YhU@hZ{8D>0{}9y z91c1;>n+aAAA-Mlq>*$b5P5im`Jic_1II^_It2uiQZ?txFeXU7xkQ*hw%vRm4iUNr zW)a$i*c=t``g`6#caVM5I;D1*Y2=CqeL#xvTA+BeDIX2{OdU6fKTUTa{1(KlN4z5d z)9pX6(xi;siX;n4J5J+81}$F@v_?BVGJyxQbHx=oVhF!UwtPmK*xxV5rdvv^q z#&koV^iH!b)N-6*snrcRumxLaa8)VZLEk0CVMhP7K}$n|{4Q!~6H^U1=-gDbL324%fV& zrg?9a3qH5ELR{b~h#W_M`t`Sdf7vs!FR%i#t(Te!@?YrhoZ%R)eIMVw%)CpZm>t}Q zB4RI)6P4!o%FdIt=qd}I#qB^5Jr1|Xh=d$Boju8a1MpH^L$A|v0>qNzeZzZmQ&Y+w z#s&fF7P|Hyg@bW4$_Yqs4u>(9(Kcd@qN{I3CPGwmWskZY{WBBUvC2fun(!n+c^<|3 z6hi62MX>rk_4&3IZ_|;DHMhwsxaI}Z_%dAKO!8~2dHK!G+ge*wi?;Tha-#zB6;z(~Lhj8>s-1U5X+8CxCGXXZ}~kH-oYE6{U+O_mIjm1+yjg^L}} zhslt!0zo~*=pgi0mO}H8Fv(=@!xTPT)85#lk&U`pJID}ek)sT%9+N?3YY*5WW$-&f z_q2fKrdO%3e1Ud3!7FtQeea@x%O@{?4&Cl1zHE(%qiylEf{tM-60uJB(LW=nkLX)h z=eo2bUZHyd{H|}$NaZX}6HML}%#*&`_(zFY@jc|+c*CMcPP#=M9SLGCRV+gma-e)m z@%riu3$6F2eD-ceM@K7_%G>a~@uW$593pw1{G;~v28sGbkxmr`v=l*NRG`(^QN;}U zthZ*1;9cIaF7V?ZDN-UKG)JS zFfw*!vHG8eMV9*bZ&lHPjuUM&@L4!dsuh~Z+G**)AFyMy=hjla9ehsRU-q6;IJ9jZ z1_h-=|4$d}=Oqy>QhcBO5ILQ*E$yEDkiwQU;zKn$*-b+PM4eo!ldV$BYuh%45^VoS zA{WMlynHU(eSbj}_4oJ@e4Re3V$Sc-`j0c^ z&}&&&-8^wW%sbKp{@BAMx=&}9qv2tZJD3)Eq{uhz^{I}>c9qO>r^z7^;H^H% zH(TDVFO~Jiz0CP8DK2Vy_~C>=Orq^oOl^zjh34fuicq7UnqB&qnt6wfRaWX$Bj51Pe#aKj$>dXFG+#nI+ECvXh$r`w z3YdN!?q5b)l(pPJxvClJF?U}03`|p>Yww(%#k>=_oLf>5Xy}V`TKMqM$Md@YbI>@0#t163!H++6>|~3|y-tO_TgaX0%+y@Jc`+LXb*T`L z1`gfl#zmN5hNbE1V}}1QyF#cbPg<6w<>gyp14#x8zTOrSmDtaohgoukLGMh$t5DJv zE-^Br=xE7<_Ln4oZKy89+1t|Jy^9hR6}9H#esFfQTK2$h39%I@DWbd)Ne`5yk z!vEZ9C<5#>)n-qe)93fmXO9tjnEQ!RoE*ROOzx2J1x1JkWO|KL%t{1-Kk#O*R~fOX zj+2xzBigF1ATB|*;Mu(|Lx$h+4xt+S9$oql9V)=YdB7YP4!r?rLvM|eqxss~@7KC4 z+^cHL4>+ej@;|`!O(_@ z`Q%4r^8<;IBMh<&eS;!jJFy|4q+*RX4gdh7Fcv=kKn*Pb&9ZcVXcwxngQ?{nD|Nx$ zc_w)Af_i`Zhsk-)~zeSNM z?nS2*1*2(19`x(Th79;X+p<%lpc}$YR)p41p_DKg=N9gPuNW)v{pHBB$Qjc2A=*pB z8AcD(e(KH9nGW_$)4`6dS`!7Y2PBx$!yiB4hpg!l0CIx4IIb6Z?e2K@3n%b6ZQyM7 z4W@4zAP`X}%ir#kiV-zVB8Z=%hOGzWe2x>D^z(naA^&>9uWx2g|Ctse3puX1i5=vq zLw`8UmdO5wv9_ut@E59w4}ZLxk^pn%3nHkO zNNGf%AUek|4z|vCuF-AA94S2kVyx4!f{ctmB`qE{cF(b6D**5er@xvei4Z_G+GOrQ zE;=WneZFVsxd=qw`QUpd!&bj2EF7%XJV3m-t22LjS)g$jk#lLwq+-|il{+c6VW%MQ zOsSQnx8Nz0&!|2hCDrxV)kj~-lDyWq0u!&YEue`pow1DO3pg+DZiIdMwJ(KXxEFvX6fMZkjxQ04 ze&@-PZ&|CtNoV{ygC}&fl&*xpZ(}OUyve2?rKM54({2^u?)E!B`2*j*y9>4Qtth=D zqYZosdLFaAG11ZfiQMLv&OkD+BZ6;k?N1{3l|kPp_8D_`FI;WJ;*uKb7yLZv$e;R` zAI=&iva|i5>)v+|3UYH}lA~WQtJ0TpWCG&GRBe?JIX(mYOmasl-h7v&gd^?Gk^ZW+~Zk3rK-3mao`~jNQM(1;p;iZ8L zY+F-YlgyFl$GhF3WSZ&(p{)K5PMe=L50<(CZvU(Ofo^>zh@MgO5d^~sC;HdF_7m;>G@#%BQ;Cb@S(j;G3i0qG{`o%kV z)||TX!;O?xBJ1-$%WlDi!f6&a{Rp*I=bpL|<-aPqc;S;DXjpa~0hRxWfQjHDrxCFq z5-l{V(=m+~YhV_z7IBF96b0n}a5wrrv-kpJ>G3=Y?&>Hud%H2Z zAv5MpR;29}5%l)Pb(wC~nuG{7n*M8R?H0VNdt0s{44DEAMY})0nXNU>sZmkC233YP zgHbO+Qhb~?p~;$uL!ITu-9)42cM4PsL){$AD0RQH4%$P8cqQ%Yv!2}815LmrF(9Wl z1k$SD3?Z&5q$ySkrpMu020n@z^r3!pxMqdf@HttvveStT4ZDt_b+gD_c&V#_Y`R-0~mq&dt;*ucw@S z%j%ETK1Mt$`WTUUSvecxx;3Z~ONiSt*T8b`(ft+(JB)Up0zR(t;nrWdq!8chx~K5l zzt%mc+B6rAuJq)zlwVri3TOFA2_I$=#xANM)G$N)5}BIP6|xP!rBm2(a?vceb>#aH zxt1uA`u{m)@|*~Os$v~nPd;)6_yVG+1KTG;$lTLCBA}5%2W3lsugoAz8mgLnJTEFO zdPhx=zfn}ATOmcfbPfoBSdv}rc}+N#sWkycrO0VVhd7%?83bsmol-e%j9~*(^>>&X zs3BJR6JrkaK$k-a0Dn4JX+o8|7RXx7d8S6%Ty~Hhi+?ZgIHK@ohoDFXuR8gX$9W@l2zEyaRts!Oa zMUluFM}=_swTZGQ!QabV%JJ`)S;497=@DNel)vzjH+!F$hsEK&u(Y?qvVzkB=GzsS z{W=)M{`U{)+f8rAL&2q{VF@A+_Jb|hseYo%((u(^X6pHc>8qxSj7Kvl>?zCzkptyC4QQZAse!#>E-}^+?c~h3xK3nQWa(8 zGQ)NZWEmN6sG&hw@3_AB$5GgR0Le?Pia`bSI}r&<0GNAQ)?5R+4^xe9-16zdshiyP z%XUEguWBt3R8ZMulqL-e0Y2d1Dw9ZI$6 zb{E%Y2)Z3Ts^P#$rlJ+!7K2aUDEg9y0`VCtV97;tJ=EPm{5O@6P)HSchomevl{f6v z<4S~WT+(A6^COe-8=I}^W8X#8Cjgo0=3cyjG{9$(BsQHt-aplrBo2#&qHZjRw&-uP zq>EoJITkoC?|uk-9gIiN;t)Y!1xD9fcWhA%g-%qyaH?Pb)QYRLrrY=wvY^gw_NzT# zel;4$T7+q7cTo0|FdjcsrZibiJmB_Ym*oV&6Fi5F0urGA?@yOJ5t_ zejH9C)W#O!cnXM759Oo*?a19-z~A4$@{)W&)`i19qO6P%>w#+ki)UC@InaZqn8c$7 zTWA%VLN%!5!|TYCbOXjGBfqnHA$A;DJ?BTW8gH2kdEazk4K$m$Dtn#jJQk$ScfK(aBQ~RF8S&Pix;?AV-Wm< zlO;(1eR;9-H^!KCAQ4QHKrq6H8-5DlwweyBVaJl&IrxZKH3m5s$0E$xJPYZ+iQg$W z7di)Li&Kb!vNExN%XUPeIycwld8rb>u03PkT(%}-fdHrwDU#gB_>dV}b>8zv1`0|r z4o+9p80qcXkBL=fmxWqi@?h;!?_nL$2?k0WAl~DU{m~z!fPwC*zT(j=)z7uF4^=ek znF!}soi1ETKJ(?(qcR1Xh|ymm8mo zRKau%%yFmG%%Uo4`ZScA30`l@#^3L$ju#AU{x_Eyp@_*E=@UHdkv5i{Xg6vYi&OkC zSuUr0lhDaPK%AOw@A#Al@VN0;mG2UqQO`Y)p+>OMP^~F}&55)dPWYSE>0ED)*(u~R z)>_lCNLNOCH>crG3sR1qGm{!R7i+O&{&|c2!HD(uPm`;^^(-HVs4qsP$1f!2OlG~( zc+yp*`!3$rA|QTuZJ9W&mfm@EK6&`7ghL;)sQx6oFb=65hOx-6rzrWX-#@Ty8JjPB z^2I*q>(2S2+EOaicA}DU%0NI%o$Vys?6o*>OD@<*_a@8ZJxBkbE8qQ7-gLM@l8ZxG zr8}kIJq&s zDd3@mm%??hn;KIC3(n>b&iOrEII$IUDMF5c(Awk2rWg4I&_}3TMAz4!8H>`!4shah z-0B9o;!CaPG=Vj=nS5grnnP{xiYiRN)$6&#?UxsrHmo9{9-BV&$%4XR>M()5Thh4X zGh{9jPhqyp`J^_mRVoR~cAvOVH|LFX6@Tz#qqKtM@$e-1h`0;`}8*mu15f{#RvOD z7Vwb_`!FGBUBaae8{S)dkm0z(jGovR(hcrp4M9!8*ig2vF&b?L{PW_UHMlfT#IyMM z{z=BouiSmXXuf7qRb3o>^%HhAeFbCl4`nn+Fkv-84daCcdFT4MW=37#&v`2cd9?l9 z8J=oHOjmCf=3MU7veq8GFJe5d-ys_+NNG|SsjlaIH9G%Lu=qp3CQ_QfcMJXE3lh+D zU=UQQhpAo!5FkR7bGXqG;orX zeQrp=?l1u51GaZ^s-tkvKVsng$HM#8^fq~a>N$izvvd<78$X2F@4qg3njD(X7uRMC zyVpo4#}!$yUYZ~%2Otwrqlyxv3Ze|9Jp+2n3c5w1p)dn7H;>{zfwFj7HHj=Env~{7 zY7)N3?Q!8IAW5ewW;Me{{SzmG0;)aLCXpWw*v}D-zK4aPOUkV?`91(-_Tbe83%4J+ zbzN|$UxmvqQxGnR;L)Wzt*~9WmXf~s%I^2PZ-QJr=B+y7mIwFHMf(``EFl2hCd+jM z4)2c9ZoCE?yQ(Q8PgGtWGbc9~sBdvtDAwbqS^tUQ5zrvZlR1l=awW30k!@j*d$w;i z`A6+;oTYBuVLXmtz;(u{7>bN}U_`S9ulC=rdZ&QvaXP`2hdo15{BGELs_&m(63Z^C zmJ_g{yk5*)Rer?zdr+faC?&i2&mM1QmCEHtJl4@!K@n!@y)VzNgNev}WQG9Y&L%(9|)WCR}DHahK$E zz!knmFO#&Xf37COfRu7)=fJ7yNpe5 ze52*jM@DwR%@$KUUFxutN;w@8vhY=EiNy@7(Bw+07I#j3cA9I+juRqeNH-T(#)Ejn z2V82GjvhWxEijS4$Q+*B&+4g-j`HJemt5&(eSAdked=^$XJ_)q5ko7A=nvW7O1}Tn zswiiv-wo0AJAUjk;#dc5#j7lMqIfH!Urzi6JZ7{s^ZPNA-6LkSFoF2z$Cid>^eVkI zI3V(4#r%E5qW?Z(amoLBPYVLrS67T@s-N;=OIA<$ZbY%0#I%2PRV_g4yOUJ5w|poE zp7+Fa4y!rL3H(WUxRnk|N8mWZp~sz*j3f2$lCiIrELcqkxd20^uIEjWN)660Jz=L( zSh%pJ2>8I(+x&>0zck98$df#18A;d%|`w+%;2wA52A9xd{@0894A- z!5}bo8TrVV3XX$HCg9AbTH)CAksW%Hj*Gonn!f*fyR~fjDQ!=WxN5+l}Fd zlM)L}YF|A4UMBLs8q&YTm4J19mnyH37mJeL|9ajsG+>6iBM|>3pb3z}OA`H$RMTQ# z;>a$kej#9cx3=85N+;ho0Ul(gamuj#E@w_M*&;ZBvU(}_z+ z7neI<7COgIX{A7tCZPHs zETOJG+E<87b_G6Gk60TfhpfRd%8q@m6RW%>2Pt5(UZ=t&1T`P`-nAvz9 zTexM2$|e2KS8F8>*U43X*yl)+;%iAU>Cbnr-~eG85y%77xe6CLT6agvj&<+Ur?cUc zOpPh;BP=eOc+Pk)&VH}}WdXc&uRjk<^3^AgR6!r{e|rPw&U(r~*7=dJHsSH$IM z|ADH+#S!&%h?`9Kba%1>bURzpTxBrSLa*!Rrl?$O>!Zm>o3^)j9?Jbq)8+qu4sV!2 z@P4R2-B>|uqSBw@s)@N`7dKFd<5adagw7`LMC-W-h*$n-Z6;TX&qM3G3l^Uq$z+v_ zppllAsw)!>w;&Ax`HXvOh517b!nFNN-oNl$?KPAx8;T-IblCMWdB3BKXolG*0OMx_ zpn^oR#vhBEpz9AN1pwqn4sQ1-iRaCIiDf&8B2J<{sFdilxL@tREN^K&KK{C~LsEFLslbtlww z=d0xS=M@9$nQyQGF+v)@R}WM2ZS@cCLEGBkni?hxLs)?x-r(bK@gF$NPho>mfb8{V zyw&ykv`wxedP*S=nlJs{GPJlOEUR0L=d`QwP|*FTR=02UybhQ1^&e7nbaaD1*^@&h z+YuucApF119wB?cS6|P`Y$Xnli&IlK0v^VU%i$&yaQHxtfy5+M>uz<*dNExPuTFw zBK@O{(oBN>zxVddKlj$<-|lT(9YN0J4>|zPJgW*eb1h$<|C&*AwX9-Mcgp@LpGB@W z4k<^kCJPKf(oypY2R0OTJfKN9XD$@1A?~Wjk>u1Nf78KF-`>dP>Zyd)*Mn|plpt&7mUvm+b>-l`tx18q5&RKJ;n^k4^ z{WhD$`f!fdU&cGjqnnJ1?8`823Xk4#l{)U3nn^zS(6Tl**jV?NBfcw-V_H;d=dZRfPFGalYwY!b=52_9*@`Njk6}2lqyscsqMHVhwgRqNRiOD8o6xik#))f$&7`E@ z1B}+Tmq=@$1hQ1?`oSrFET7aQzur!2!!dkqCG@vD>HQ<4D$qykmvhh%*OgL@SM0Qb zS#TDQB$jR6n;&2J;QWJxI5S+gEggV_$iIy2+}d1#;SbpJ?9(~sosphRc<4X=T^+98 zB~Zrj4b^{!#s?IOyT>ZbN#nS~QQ%88eU4@w52os!qdD(fCy>}zjrm-bZE$e+L6;33 z1N{ysr{Xj0ie~_fuNas~IbMfF1Lr_PCl(BOw;&t5i(iju>dKC3Cdhha;dHf$V<8p#!&v_(OJ&gz9ih%~m34v*T`8NBfyc*8{rKqo)U#uF#(nmm z-K7yN75MiQnI35b?NtGu?uc}!=rt;CEr$&4{0syTEjG}CWG8Rw>jRE(rk|thkouh~ z%Xaxtu&l-JJN3JbdnCeBBdS^awZCd=n=fXgKgQjYd%Eev#ZEHm=|c=^ys}0sH^%}} z7R*;6nUxg?VndU>>lefuq`_Ch2;>CE{40Or2A*z;J?`ueiFYy}P@it>Rm8+42=4%$ z)Vn+nh;|Ai!73exU{BJ`+=xbQC>Ofc$!5uk+cchz~+gK2_k$DS2sdFxG%= z2r2vZpeq8ZAyNL%}8}pc%je% z;Ii6}Zz=iIZ-q9Lo+>gQIZJna2g4R3VK=0r_jR(Q<=$wH5Y)zowSGTi#Z1P&?hQQv z?biU6E)-GjGh_3?Gzl%Oq#tKkgoIK((PzhjfTtv}p^j0635|X_Z*s*`YT5Zu`AWlfJ#lS9a^RVE-PhgFssO$K57bLi9%|q6Mwv(j#0{ba4uPOD=7XCsbxD~>;_`}}(MuX% z{9LHmcrc@D{<2x*pUiS$ROj)_?QLvV?{14TWp6L29%lWrYY@rZ&vKr9sP8 z{qYqak~B`I{nZ3pK23044XK=WS3qE+RW5UOWX9xni)lWrQb}fN-r`q)JM_oHK1+Gc{C)OB zTd$JbCV>4e%BVO&6mmc)oD(Ab)!Ab=uNK4R-RAA zjoh-+XH?DB+Ej#NG3V4B&LcCbY|dlzJN=Y&e~?bH--pwjK#Rp7t_Li3HXTPU0U7x?#n)&XrIn3uVzLl#h?rj+ zNX^b88fcEX;eK7F9*gB`H)P({$SOOJUgkTMpBR|a*Q;T7jyzo6_J1+`WGe^y^>ZTS z^TP8p!?yN z&t<|O(z=dl{9cJVVdKD~uf{Y}cuMk5t}93LSu=8#CdwcwsZ1yS<4bbONl%^5PWO*5 z*t@PDas%}%px_kHVvXLZ0>JhH<1KJcv)?SPdFDAfbs8rW%rpmG`tVc{3?|fAV$E}# z^$%@z)FfwRW$6mX%o;dVA%Kj18K753Vi3+^99?4k+wDupR1?)Zh$>y>whm3Ut|?0UDF8va?`*sr^z{?XMte$Nam^zu1!U7Js({2RC+`gfZ?# ziXehxm=xN^AqGcw2Hs3q8#wfIU}OgOxdOsGA9_JW&WN_5PwD=k-7cpN^P5j6ob^JS49uN8DUxS549=kN@?VE+W8v2Ch}b7i2?EngO=<+n zl5Ydmg!WqYeJza|RqRgOVI>QFrCB{1fHIJM`(IH8R`B+#>34#8(ip(t+I$bD+Tvrm zxw*@M9fc<*EL`SZ31-?;my#pb&57b+Fan}e;(ZBs*#bVRfC@UZ3QSK$b#zk9RDg}w zSb-`oFx0hov&?8ns2z5alHMN7ht8bU_W|0{z3i1$=V2j!A%Z1DXjkW$@tPux`LOu7 zIjP0wQ=IPMZr#Oga+()ydutCGr!xZw9^_Mh&^=U-=j6Ul==U(MqBb5RX_l_9`PZ|t z9`>4_s9bhP!@^=~q<{cm|BvM+_AvI#Pjp51Z%v6^^3^abyo;bv%5uF)04rp}=I3pz3_w_ZG$H?sI)KzP zKqUu7wBpQonoo!Hl?ZY&29Pe0+59NBPr@s&oFj==` zM`-fN2>tM6*!Wbd>2~BSGxX5OfQb<>0J_7HzYZ@s3by}g-yUy`ephzh8_U&7F zxk()de3{q>8D6qyfX2nYOI=5w07Tn-KC|hiA+=dL`+yqdjWP?jr)$j{CsHSG21%&= zh$b)JB`Im*D>nBt8B`%QzvnD=b!zInPtE5(vXsI|Oy^Pmb{G6XtpC+<`J%r943<{r zQOIXaIM@D-DR6mLV#SbYEwJGPws3~v?d0DLg8}zR#YR{ASq32P|K^pq;Wzg^+{9VN z9s#?sZyb1A%9td4JniKj18X{7Pj-q9a`ek;RHB{p(VlWn(_A%VJ9|jkQ-)t=?pbF^ z$Kqj^J$Drj0aO~2ex1PU56AxM!_ffMk9`IR&mK&W(3PB%qYBp$k_-3a9sK>5=H19y zw(qG=b9tYKkuv*(=WSUaLoo&K1i0nhyL(s6qX^_kz}fx74olD6+J?7pkPOijaI5_^ zST(6v_)1Ssk`85~G&06gO>NWrt}(|7(_EpU4cQSM6?u~aZ%6g_ZcF&?v zB`wmaBL+_D<8y`jP+?$~o7-SHH9vwB|0zZ^b#vU2{dj*<6gA58W+u(X!r*VdGFGRD znWzO>3cm@3za_~&At`%KGbI+c`~98KpO7LB4IZ{nA23<(XXu(F(LAfTk8#w^*7{xI zy4E5Ev~7`<6fmd2{tydD{Fy`c7Fq+4RxCL=CuSA3&3yFqZ6E8)%gYmxVX7!M7xGoi z607bJ;XZ}FX*N$R7K|_O<=Ok939tPxnD&fb)RyQjE$qK+Uks{LqZf_&jO;I-AUq$; zi0Axj($dt|S?HrewYJl0Pc6Kro92mu8#OwQ34!HtG@~~F{(7)*{90THN3Q?@Hu>)W zIJ;0Fyt}J+-s9r^S2(vR&6NHY0xRC-yPITfY61U>?;oG@*Hsp5CAG_S#>dsg#_5??3SaHe?rY8Ux}rOy}^W z6UdL2gV~Mkd;6x-Zn2=u1;ZBjlqnJ(Z2CIg!P3yg%#Cq2UOdaGjZXCM zrsfcLOr$04q(@bo@RML(WjpVjlclVGOrC#Bok*8Oyx~uc!oa1xVYPrT>%{S@dznAq z#QuDiVh1<$;VM3?j!@5K)UM)4 zNzaWJjzwoYXJa0dBENpzv0^>kJ?hiEaAmu7FY_K(zQhY^#l88PMgP4woDd6VA2w!Y z?8Uw+@MxdTHQNKKFPnC?94j3Gq~J` Qy@anhhh5Sa$%qdXJuaJBK)3pmF@{5@NG z`fRp2YmbQw@w#Vz=tTu+g(gIN_ISD;C=@E(N_>y7jFUf!UJCqDduQC>1TUtwW`g{6 zIaBn%0tWv80IK%(D=<*e-`@eq*>~kvNzfcmbseI;;H4i$r()UiFX_rT^qY(D2^pD~ ztZ+g%0{}yITWx^b{JTYYh&p&TK*lj3I0*231K>TWb%7j>nQh?n4+xk&BS)sqZP`Uc zFm*L8-4G=o-Go@~ug{JLtB*TH%%M`SZ{(EIMgec-Ol7`JoX z$@og9Yr_g27x*pvy2!ssLk46#z&<(Z1}29<)K{+98@PD|Q`_Ia7aCiG_g2YmrLH9-??> zw#teEak4}h@dhd715{-}OX~N~9MnfdtwmxyryE?G0TU$XT`+6|sS2NOp>^!G($qMA7Q}s@TM`~f@>_e5W zRc2M&{-v9zzlk_6XHKYaN$9dO35&?1T|bM}{c`8WlUw>5m)+~HD$n;TC6}b3y?JUW z1CoWZ?eS;YsjQR#G!Fn36I@eH$b*E$aXKKhLaMK|Jzc>BEJovGbCCKuz)y4rhzQu; zcnwqyHOV+~^(O*S>fN4NPWaV?^sWz1BKh*DAUk+&G^2UVPa%jVNikA7uO}#Kso9f$ z6jajSOA^lw=<-+`d|_=1?w!S0okvz@&xNM+&@rxY{yRcf*k}ho$PSqE1g`AaQY+(y zvVo!(Kfoolp1x4PI|4F}%^P$2(a_LA@ESF+M{qfH= ztqU~M{Xb*#Mks$%Fp0i%<>M@DpCwp?CYq1SxEDogfsl>TgwEq+Uk;cp&n~I6j$C_x za-RXD^j5h9(V4Q3_Wl09Mp)7<=*X1)D@fVL=}45H5Kx4Q@Y&AkG_3zmT6vZRU`*d} zcK|TY>Kel`opTZ9<iHw0_rjdw$xBws?u5ACPkpc#gl_F1lR^)}bIwosu^-0;a zc)DNl==)skck4V4EV&3CMd<^H^_vi#bN~Q@)H*yL`Zn4<_9k$Jj(^nEJmxjhMUCt} zCB-%167rqt-3ofdw8#plJ3m0p*=`Qp84op7TK)Ryo(hYz{(31X599Oy*;>EG4n9Q; z?~{jJgvxr_R|BYscAOSeH@}qU5@4SjJL-u|Xx7@Y8>2Wj4W@r#YXIaNnExzheOT|U zh+`JhpYY?TyKtw!@qALRr5PYCKx?LOAd~a=43>V-on@_piGWxmPK)cz@AXwC&(se# zN*0;P`>E+nHvA=RQ@rL%nEWD35kD_Xo_iF+D%0`8@7J$i!66}H;I*$@1!FA0@l%BK z$*Z;6kF_f`F1vFxFMK|fhKJ(;qP_al5Kex6{z>zfNjzepAaIyC%oYbM)4)&e)c~4% zDbxdum7mGdXzQ;FyX;n+Y)>@=emU?qzs6j zntZ23N6}wX7`Z;?`=14nc}OA#WMD0le*!rdQRa4Fh7@U0uS3?RFOwfjtdD#VdU$Wg zK~OU15UmLF%kp^Y?M+cWmM{2Ts+bMN@k{W5RNhY zBvbV8%~Lk z(pHU}1{4rYjDNl&M&zJMtPNy{0?sw;L88;)BQ7#<+EE#5W^NrK)-$`Vz1tb7|;ps{Bzz1{+-}e4YVJHpWF1k%Y(9;?rSQJ z&70@hRDGPTXUa}(4TMG9MVx=K9L#W;?WyjapAX>DzAO<*Z&m14;rwb(st0Wjgf3O< zBFr{z8v<`#Gch3838KhScLGI}1;E=AIFO+6tXmSc z7CaCcW48y256#M2YAl#LU@@0MU+P~GbOP|vLgnrlg)D1T5DV;c>;t)L zYa~&DtEw#ol>0{OAUKyp^z?v@1qZM*qCwgjalDs>gFYOwi`gb({b+8=)0x&%vZ^h3 zbMnQrPM^)n-AkNv}A9AOU?hyWNg# zXZ-&EwKKK^PT*6d{nJn70)(nYRiD)`qf~6RY*q5i?UsQ_N{m=L_h)2%K>RWVO+5mHn@74jM)1x=9S;%XSHvTwV~n? zG0^db`D&gelX1ZR8O@{l+kMjka`OMpZ65Czc#=|v67zWO^If-$PWQ23Yi4R%Xvk#0 z04Mcgw#`0e9hbcJ%1USkP-(?UW!WEtw%Ntk(c;ALrT@ceu)U&le((co5wALZIS3$B zzGh2OwZm2APlT}|&dwoUBjP_J9+P)>4E2x9mak9O%#niLcy@^9P?Zv@+4}qfka;I_ zxuHL=g8|#`Pz z=(2xG0ca%d!t!$6Fzk_H&rcKo(@v>vBdrt(q6@ZsZfMuOdq3ls zk6}{Ac*&O-e!F@p8vz^U!u#u3cMTWcEV zx;IGDKfm3Vr1WZkJY9C8+h{iKr+G)@1n{ZhPD&2*fRNVslLx0p9iQ8ZA9}#5Ep(D9 zDtA4MAc}K!KYGBxnNi*U@qVlco9}X7cw6JhkQRpz7gqzhh1mN%7aVf7nZ40u{z zVrXtoc21XQESg<&6Z&5dZ(Tcz0T0x7*QCoPe-VAAe?1UMnxdyLGP4~|(dS%Wya3UR zKf(04o->P}|J&)*vLoPJc1p$Y9s|ZzM_5FbB4aGDdx@!GgDniCtcU#tiW*;D-4ZaB z>#lu^5Dr%K+~6@EAib}kCf=rn@!cvLm{svf#x+rPotuECSIjR}Y!yJUJw?LS_{QadbT}laiK3lVx31s7^C;KkAxU$;yudu^VSw@t^JN+}oMI-!^ zXkU7Zkf>ZT=4giGBy{k++&7nF`1C-6NTU31=!h7)c#=Qqy6LoTH9XzL?o&hiY?H%a z>NNB5)4}$vtyF%8@2f&JdpjP3wckw-h=uxL< zUzRS4xUGBF8TSbD*Euy8rB1OofW^3%F4AS({m)`3t{3C>V1wt|>TMsdtOYlA9OY{8A1Zq6OjY0G zd!EmHb86Cdb;F&Jp}#qCDq426VK;-LeP4U`^Go7D&^`#<@I}FFS^9AxHVOXjyiynU z$T=e$WG}$7q#g7+;qQ)pm{lfcjUvvv&DmmhiZLX`?=&>5OI+yBs4-@lZ|M6n+^WVg#JID&h}+xBh%y)pyTet&WRzj)NAu z$-JtKaY2oGhXTRcMHZ_QC{>lL7SC%s-q50*QuTut){c>0s=Dd*vhkaXHH_O>CEg<5Dg%Fx<`^hA} z^~OBqnV0!6mfg#Ph@xUkmALvbElen*=u9_!g>U>`GCNIKDzzQcG8YzSH$oi7yDdao zjcLJ*Xt!7|6?fdM%5E1-F;AvHmI!h|IF3<%ZHDUgqm|xFKl}XZjk|G;HFJLS4*Q?w zlDiUbz0yDF@hUuhh~CCSr{fr}a(zfxU#<>`5*!i%$N%w=I^bzF7(Jh!_nDqxPxipz zmn2b9qc6$6@gVpbtF>wMJfut3G#`vU+(5VNKz|hB(-9==LWI0IH}@o3cv@eeeCGI- zXA}FcSBGPzl`cLqzQ$!B){seumG98!z9stMWPoRada%Baain0`+2`?}Rh{g=k6I<( z$|N&ht>i|dtFE0JtNio-kFmFoi*oDQ#|M<7f{Lhw(juUANT(u#Qlio=-O|l~0U`}b zNH>y_Lk}w5g5*%rFw!|NFuy%Bp6Btr@A0iZs)$h=*tYDx8Qf=}i2+o>6TxTU4zp z^bHVXcDDk;IVUF8Xdo(_Bz`}rovmZOXslGOePgrv(zX5hcz?5 zzF$9|Fwbg#F`~c2$MIn=eH%IJF~<$2?1Uh~>`nO6DDBqF5Fb`G(I&U@B_Ft`$G1r3 z&1OyEY{1zAM#GQOnUKD43mWU_f0eNTkH_jRk9`k^3`ezU^ov%#;EBV>*|`^zPFT*y z^}JHNG$;^XYuYtaHQtIaGd>Rs9g#AoTFW?3Pai$w-ZRBVDqi?qdwsX@ z4j2?826RR)ny}ID)b!>mDiz6V(e#n&gp4Gvb%ObX?$v`#k?5*kU(6z(&jhLLO*uO; zr#H^Fqf)rV_&d*Hz6P4|EmYI0^B+kK%V<;1y}WJ&{xkj0w0;-7^Yp%g_cuE71p)tR z(FEepaND2Mi#P1)3_Zr&sbR5_$%a2Xt+?QSZmv{9ZZ3Ox|83DpEYtJC!~G0@*{FQz z&$FS@#@&H^=i|b#PT(xV^ee0-8zl$&c~)6e=?Nq*O#PsD{*~Q<@tiqn5Im*kr+vaf zpwt839iEA*V#NMOwCConeD>kp?gB8-+Mvj!;G)ubf)FfqUI07rd1|d64{X;x_2K_@(98zP f#x^#W_)L+SEs)! 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 A6#xJL literal 0 HcmV?d00001 diff --git a/x-pack/metricbeat/module/aws/_meta/kibana/7/dashboard/Metricbeat-aws-sqs-overview.json b/x-pack/metricbeat/module/aws/_meta/kibana/7/dashboard/Metricbeat-aws-sqs-overview.json new file mode 100644 index 00000000000..9f3fed654c0 --- /dev/null +++ b/x-pack/metricbeat/module/aws/_meta/kibana/7/dashboard/Metricbeat-aws-sqs-overview.json @@ -0,0 +1,673 @@ +{ + "objects": [ + { + "attributes": { + "description": "Overview of AWS SQS Metrics", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "optionsJSON": { + "hidePanelTitles": false, + "useMargins": true + }, + "panelsJSON": [ + { + "embeddableConfig": {}, + "gridData": { + "h": 8, + "i": "1", + "w": 20, + "x": 10, + "y": 0 + }, + "panelIndex": "1", + "panelRefName": "panel_0", + "version": "7.0.0-beta1" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 8, + "i": "2", + "w": 18, + "x": 30, + "y": 0 + }, + "panelIndex": "2", + "panelRefName": "panel_1", + "version": "7.0.0-beta1" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 8, + "i": "3", + "w": 24, + "x": 0, + "y": 8 + }, + "panelIndex": "3", + "panelRefName": "panel_2", + "version": "7.0.0-beta1" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 8, + "i": "4", + "w": 24, + "x": 24, + "y": 8 + }, + "panelIndex": "4", + "panelRefName": "panel_3", + "version": "7.0.0-beta1" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 8, + "i": "7", + "w": 24, + "x": 0, + "y": 16 + }, + "panelIndex": "7", + "panelRefName": "panel_4", + "version": "7.0.0-beta1" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 8, + "i": "8", + "w": 24, + "x": 24, + "y": 16 + }, + "panelIndex": "8", + "panelRefName": "panel_5", + "version": "7.0.0-beta1" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 8, + "i": "9", + "w": 10, + "x": 0, + "y": 0 + }, + "panelIndex": "9", + "panelRefName": "panel_6", + "version": "7.0.0-beta1" + } + ], + "timeRestore": false, + "title": "[Metricbeat AWS] SQS Overview", + "version": 1 + }, + "id": "234aeda0-43b7-11e9-8697-530f39afc6eb", + "migrationVersion": { + "dashboard": "7.0.0" + }, + "references": [ + { + "id": "f74eb760-41e8-11e9-b7a0-c99d9d127b61", + "name": "panel_0", + "type": "visualization" + }, + { + "id": "53730d20-437e-11e9-8697-530f39afc6eb", + "name": "panel_1", + "type": "visualization" + }, + { + "id": "1235fe50-41e7-11e9-b7a0-c99d9d127b61", + "name": "panel_2", + "type": "visualization" + }, + { + "id": "be6c4180-41e6-11e9-b7a0-c99d9d127b61", + "name": "panel_3", + "type": "visualization" + }, + { + "id": "dcd31cd0-41e5-11e9-b7a0-c99d9d127b61", + "name": "panel_4", + "type": "visualization" + }, + { + "id": "dd2f2a10-41e6-11e9-b7a0-c99d9d127b61", + "name": "panel_5", + "type": "visualization" + }, + { + "id": "b0afd3e0-43b7-11e9-8697-530f39afc6eb", + "name": "panel_6", + "type": "visualization" + } + ], + "type": "dashboard", + "updated_at": "2019-03-15T05:03:32.298Z", + "version": "WzQ1OCw1XQ==" + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "AWS SQS Messages Visible", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "axis_formatter": "number", + "axis_position": "left", + "axis_scale": "normal", + "background_color_rules": [ + { + "id": "d5b83c70-41e8-11e9-9e94-11d4d21d3f4b" + } + ], + "bar_color_rules": [ + { + "id": "d2d14920-41e8-11e9-9e94-11d4d21d3f4b" + } + ], + "gauge_color_rules": [ + { + "id": "d2163680-41e8-11e9-9e94-11d4d21d3f4b" + } + ], + "gauge_inner_width": 10, + "gauge_style": "half", + "gauge_width": 10, + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "metricbeat*", + "interval": "5m", + "series": [ + { + "axis_position": "right", + "chart_type": "line", + "color": "#68BC00", + "fill": "0", + "formatter": "number", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "label": "SQS Message Visible", + "line_width": 1, + "metrics": [ + { + "field": "aws.sqs.messages.visible", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "avg" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_mode": "terms", + "stacked": "none", + "terms_field": "aws.sqs.queue.name", + "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417", + "terms_size": "5" + } + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "@timestamp", + "type": "top_n" + }, + "title": "AWS SQS Messages Visible", + "type": "metrics" + } + }, + "id": "f74eb760-41e8-11e9-b7a0-c99d9d127b61", + "migrationVersion": { + "visualization": "7.0.0" + }, + "references": [], + "type": "visualization", + "updated_at": "2019-03-14T21:45:13.172Z", + "version": "WzI0Myw1XQ==" + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "AWS SQS Oldest Message Age in Seconds", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "axis_formatter": "number", + "axis_position": "left", + "axis_scale": "normal", + "bar_color_rules": [ + { + "id": "3e3d3610-437e-11e9-a35d-972620e4f790" + } + ], + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "metricbeat*", + "interval": "5m", + "series": [ + { + "axis_position": "right", + "chart_type": "line", + "color": "#68BC00", + "fill": 0.5, + "formatter": "number", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "label": "AWS SQS Oldest Message Age in Seconds", + "line_width": 1, + "metrics": [ + { + "field": "aws.sqs.oldest_message_age.sec", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "max" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_mode": "terms", + "stacked": "none", + "terms_field": "aws.sqs.queue.name", + "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417", + "terms_size": "5" + } + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "@timestamp", + "type": "top_n" + }, + "title": "AWS SQS Oldest Message Age in Seconds", + "type": "metrics" + } + }, + "id": "53730d20-437e-11e9-8697-530f39afc6eb", + "migrationVersion": { + "visualization": "7.0.0" + }, + "references": [], + "type": "visualization", + "updated_at": "2019-03-14T21:45:13.172Z", + "version": "WzI0NCw1XQ==" + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "AWS SQS Messages Received", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "axis_formatter": "number", + "axis_position": "left", + "axis_scale": "normal", + "background_color_rules": [ + { + "id": "1ccb6710-43b3-11e9-8c70-d17a67455a84" + } + ], + "bar_color_rules": [ + { + "id": "57cc0200-43b5-11e9-84e9-a97a63579915" + } + ], + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "metricbeat*", + "interval": "5m", + "series": [ + { + "axis_position": "right", + "chart_type": "line", + "color": "#68BC00", + "fill": "0", + "formatter": "number", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "line_width": 1, + "metrics": [ + { + "field": "aws.sqs.messages.received", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "sum" + } + ], + "point_size": 1, + "separate_axis": 0, + "series_drop_last_bucket": 1, + "split_color_mode": "rainbow", + "split_mode": "terms", + "stacked": "none", + "terms_field": "aws.sqs.queue.name", + "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417", + "terms_size": "5" + } + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "@timestamp", + "type": "timeseries" + }, + "title": "AWS SQS Messages Received", + "type": "metrics" + } + }, + "id": "1235fe50-41e7-11e9-b7a0-c99d9d127b61", + "migrationVersion": { + "visualization": "7.0.0" + }, + "references": [], + "type": "visualization", + "updated_at": "2019-03-15T04:47:42.929Z", + "version": "WzQ1Miw1XQ==" + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "AWS SQS Messages Deleted", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "axis_formatter": "number", + "axis_position": "left", + "axis_scale": "normal", + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "metricbeat*", + "interval": "5m", + "series": [ + { + "axis_position": "right", + "chart_type": "line", + "color": "#68BC00", + "fill": "0", + "formatter": "number", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "line_width": 1, + "metrics": [ + { + "field": "aws.sqs.messages.deleted", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "avg" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_color_mode": "rainbow", + "split_mode": "terms", + "stacked": "none", + "terms_field": "aws.sqs.queue.name", + "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417", + "terms_size": "5" + } + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "@timestamp", + "type": "timeseries" + }, + "title": "AWS SQS Messages Deleted", + "type": "metrics" + } + }, + "id": "be6c4180-41e6-11e9-b7a0-c99d9d127b61", + "migrationVersion": { + "visualization": "7.0.0" + }, + "references": [], + "type": "visualization", + "updated_at": "2019-03-15T04:58:33.318Z", + "version": "WzQ1Niw1XQ==" + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "AWS SQS Messages Delayed", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "axis_formatter": "number", + "axis_position": "left", + "axis_scale": "normal", + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "metricbeat*", + "interval": "5m", + "series": [ + { + "axis_position": "right", + "chart_type": "line", + "color": "#68BC00", + "fill": "0", + "formatter": "number", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "line_width": 1, + "metrics": [ + { + "field": "aws.sqs.messages.delayed", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "avg" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_color_mode": "rainbow", + "split_mode": "terms", + "stacked": "none", + "terms_field": "aws.sqs.queue.name", + "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417", + "terms_size": "5" + } + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "@timestamp", + "type": "timeseries" + }, + "title": "AWS SQS Messages Delayed", + "type": "metrics" + } + }, + "id": "dcd31cd0-41e5-11e9-b7a0-c99d9d127b61", + "migrationVersion": { + "visualization": "7.0.0" + }, + "references": [], + "type": "visualization", + "updated_at": "2019-03-14T21:45:13.172Z", + "version": "WzI0Nyw1XQ==" + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "AWS SQS Messages Not Visible", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "axis_formatter": "number", + "axis_position": "left", + "axis_scale": "normal", + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "metricbeat*", + "interval": "5m", + "series": [ + { + "axis_position": "right", + "chart_type": "line", + "color": "#68BC00", + "fill": "0", + "formatter": "number", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "line_width": 1, + "metrics": [ + { + "field": "aws.sqs.messages.not_visible", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "avg" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_color_mode": "rainbow", + "split_mode": "terms", + "stacked": "none", + "terms_field": "aws.sqs.queue.name", + "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417", + "terms_size": "5" + } + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "@timestamp", + "type": "timeseries" + }, + "title": "AWS SQS Messages Not Visible", + "type": "metrics" + } + }, + "id": "dd2f2a10-41e6-11e9-b7a0-c99d9d127b61", + "migrationVersion": { + "visualization": "7.0.0" + }, + "references": [], + "type": "visualization", + "updated_at": "2019-03-14T21:45:13.172Z", + "version": "WzI0OCw1XQ==" + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "AWS SQS Filters", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "controls": [ + { + "fieldName": "cloud.region", + "id": "1549397251041", + "indexPattern": "2c424110-43b2-11e9-8697-530f39afc6eb", + "label": "region", + "options": { + "dynamicOptions": true, + "multiselect": true, + "order": "desc", + "size": 5, + "type": "terms" + }, + "parent": "", + "type": "list" + }, + { + "fieldName": "aws.sqs.queue.name", + "id": "1549512142947", + "indexPattern": "2c424110-43b2-11e9-8697-530f39afc6eb", + "label": "queue name", + "options": { + "dynamicOptions": true, + "multiselect": true, + "order": "desc", + "size": 5, + "type": "terms" + }, + "parent": "", + "type": "list" + } + ], + "pinFilters": false, + "updateFiltersOnChange": true, + "useTimeFilter": false + }, + "title": "AWS SQS Filters", + "type": "input_control_vis" + } + }, + "id": "b0afd3e0-43b7-11e9-8697-530f39afc6eb", + "migrationVersion": { + "visualization": "7.0.0" + }, + "references": [], + "type": "visualization", + "updated_at": "2019-03-14T21:45:13.172Z", + "version": "WzI0OSw1XQ==" + } + ], + "version": "7.0.0-beta1" +} diff --git a/x-pack/metricbeat/module/aws/sqs/_meta/docs.asciidoc b/x-pack/metricbeat/module/aws/sqs/_meta/docs.asciidoc index 709674047cf..4f138a83cc3 100644 --- a/x-pack/metricbeat/module/aws/sqs/_meta/docs.asciidoc +++ b/x-pack/metricbeat/module/aws/sqs/_meta/docs.asciidoc @@ -10,3 +10,10 @@ cloudwatch:GetMetricData ec2:DescribeRegions sqs:ListQueues ---- + +[float] +=== Dashboard + +The aws sqs metricset comes with a predefined dashboard. For example: + +image::./images/metricbeat-aws-sqs-overview.png[] From e5ffcd6e3ce41d3ba8608e2f85b3e57f3970deb0 Mon Sep 17 00:00:00 2001 From: kaiyan-sheng Date: Fri, 15 Mar 2019 20:19:50 -0600 Subject: [PATCH 218/332] Add support for iis 7.5 log with different format of destination/source address (#11256) * Add support for iis 7.5 log with different destination/source address * update changelog * Add test with IPv6 ip address --- CHANGELOG.next.asciidoc | 1 + .../module/iis/access/ingest/default.json | 3 +- .../module/iis/access/test/test-iis-7.5.log | 3 + .../test/test-iis-7.5.log-expected.json | 78 +++++++++++++++++++ 4 files changed, 84 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index d1731c1eb6c..4100e235091 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -170,6 +170,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Add on_failure handler for Zeek ingest pipelines. Fix one field name error for notice and add an additional test case. {issue}11004[11004] {pull}11105[11105] - Change URLPATH grok pattern to support brackets. {issue}11135[11135] {pull}11252[11252] +- Add support for iis log with different address format. {issue}11255[11255] {pull}11256[11256] *Heartbeat* diff --git a/filebeat/module/iis/access/ingest/default.json b/filebeat/module/iis/access/ingest/default.json index fc4ad753828..3fff770432c 100644 --- a/filebeat/module/iis/access/ingest/default.json +++ b/filebeat/module/iis/access/ingest/default.json @@ -7,7 +7,8 @@ "%{TIMESTAMP_ISO8601:iis.access.time} %{IPORHOST:destination.address} %{WORD:http.request.method} %{URIPATHWITHBRACKET:url.path} %{NOTSPACE:url.query} %{NUMBER:destination.port:long} %{NOTSPACE:user.name} %{IPORHOST:source.address} %{NOTSPACE:user_agent.original} %{NOTSPACE:http.request.referrer} %{NUMBER:http.response.status_code:long} %{NUMBER:iis.access.sub_status:long} %{NUMBER:iis.access.win32_status:long} %{NUMBER:temp.duration:long}", "%{TIMESTAMP_ISO8601:iis.access.time} %{NOTSPACE:iis.access.site_name} %{WORD:http.request.method} %{URIPATH:url.path} %{NOTSPACE:url.query} %{NUMBER:destination.port:long} %{NOTSPACE:user.name} %{IPORHOST:source.address} %{NOTSPACE:user_agent.original} %{NOTSPACE:iis.access.cookie} %{NOTSPACE:http.request.referrer} %{NOTSPACE:destination.domain} %{NUMBER:http.response.status_code:long} %{NUMBER:iis.access.sub_status:long} %{NUMBER:iis.access.win32_status:long} %{NUMBER:http.response.body.bytes:long} %{NUMBER:http.request.body.bytes:long} %{NUMBER:temp.duration:long}", "%{TIMESTAMP_ISO8601:iis.access.time} %{NOTSPACE:iis.access.site_name} %{NOTSPACE:iis.access.server_name} %{IPORHOST:destination.address} %{WORD:http.request.method} %{URIPATH:url.path} %{NOTSPACE:url.query} %{NUMBER:destination.port:long} %{NOTSPACE:user.name} %{IPORHOST:source.address} HTTP/%{NUMBER:http.version} %{NOTSPACE:user_agent.original} %{NOTSPACE:iis.access.cookie} %{NOTSPACE:http.request.referrer} %{NOTSPACE:destination.domain} %{NUMBER:http.response.status_code:long} %{NUMBER:iis.access.sub_status:long} %{NUMBER:iis.access.win32_status:long} %{NUMBER:http.response.body.bytes:long} %{NUMBER:http.request.body.bytes:long} %{NUMBER:temp.duration:long}", - "%{TIMESTAMP_ISO8601:iis.access.time} \\[%{IPORHOST:destination.address}\\]\\(http://%{IPORHOST:destination.address}\\) %{WORD:http.request.method} %{URIPATH:url.path} %{NOTSPACE:url.query} %{NUMBER:destination.port:long} %{NOTSPACE:user.name} \\[%{IPORHOST:source.address}\\]\\(http://%{IPORHOST:source.address}\\) %{NOTSPACE:user_agent.original} %{NUMBER:http.response.status_code:long} %{NUMBER:iis.access.sub_status:long} %{NUMBER:iis.access.win32_status:long} %{NUMBER:temp.duration:long}" + "%{TIMESTAMP_ISO8601:iis.access.time} \\[%{IPORHOST:destination.address}\\]\\(http://%{IPORHOST:destination.address}\\) %{WORD:http.request.method} %{URIPATH:url.path} %{NOTSPACE:url.query} %{NUMBER:destination.port:long} %{NOTSPACE:user.name} \\[%{IPORHOST:source.address}\\]\\(http://%{IPORHOST:source.address}\\) %{NOTSPACE:user_agent.original} %{NUMBER:http.response.status_code:long} %{NUMBER:iis.access.sub_status:long} %{NUMBER:iis.access.win32_status:long} %{NUMBER:temp.duration:long}", + "%{TIMESTAMP_ISO8601:iis.access.time} %{IPORHOST:destination.address} %{WORD:http.request.method} %{URIPATH:url.path} %{NOTSPACE:url.query} %{NUMBER:destination.port:long} %{NOTSPACE:user.name} %{IPORHOST:source.address} %{NOTSPACE:user_agent.original} %{NUMBER:http.response.status_code:long} %{NUMBER:iis.access.sub_status:long} %{NUMBER:iis.access.win32_status:long} %{NUMBER:temp.duration:long}" ], "pattern_definitions": { "URIPATHWITHBRACKET": "(?:/[A-Za-z0-9$.+!*'(){},~:;=@#%&_\\-\\[\\]]*)+" diff --git a/filebeat/module/iis/access/test/test-iis-7.5.log b/filebeat/module/iis/access/test/test-iis-7.5.log index 750ddb8b5dd..359a6b276f5 100644 --- a/filebeat/module/iis/access/test/test-iis-7.5.log +++ b/filebeat/module/iis/access/test/test-iis-7.5.log @@ -3,3 +3,6 @@ #Date: 2018-08-28 18:24:25 #Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) sc-status sc-substatus sc-win32-status time-taken 2018-08-28 18:24:25 [10.100.220.70](http://10.100.220.70) GET / - 80 - [10.100.118.31](http://10.100.118.31) Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+6.3;+WOW64;+Trident/7.0;+.NET4.0E;+.NET4.0C;+.NET+CLR+3.5.30729;+.NET+CLR[+2.0.50727](tel:+2050727);+.NET+CLR+3.0.30729) 404 4 2 792 +2019-03-06 18:43:17 10.0.140.107 GET /health-monitoring - 80 - 10.0.140.2 - 200 0 0 15 +2019-03-06 18:43:17 10.0.140.107 GET /health-monitoring - 80 - 10.0.140.2 - 200 0 0 15 +2019-03-06 18:43:17 2001:cdba:0000:0000:0000:0000:3257:9652 GET /health-monitoring - 80 - 2001:cdba:0000:0000:0000:0000:3257:9652 - 200 0 0 15 diff --git a/filebeat/module/iis/access/test/test-iis-7.5.log-expected.json b/filebeat/module/iis/access/test/test-iis-7.5.log-expected.json index 642a6c38cd5..3459a91106a 100644 --- a/filebeat/module/iis/access/test/test-iis-7.5.log-expected.json +++ b/filebeat/module/iis/access/test/test-iis-7.5.log-expected.json @@ -26,5 +26,83 @@ "user_agent.original": "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.3; WOW64; Trident/7.0; .NET4.0E; .NET4.0C; .NET CLR 3.5.30729; .NET CLR[ 2.0.50727](tel: 2050727); .NET CLR 3.0.30729)", "user_agent.os.name": "Windows 8.1", "user_agent.version": "7.0" + }, + { + "@timestamp": "2019-03-06T18:43:17.000Z", + "destination.address": "10.0.140.107", + "destination.ip": "10.0.140.107", + "destination.port": 80, + "ecs.version": "1.0.0", + "event.dataset": "iis.access", + "event.duration": 15000000, + "event.module": "iis", + "fileset.name": "access", + "http.request.method": "GET", + "http.response.status_code": 200, + "iis.access.sub_status": 0, + "iis.access.win32_status": 0, + "input.type": "log", + "log.offset": 532, + "service.type": "iis", + "source.address": "10.0.140.2", + "source.ip": "10.0.140.2", + "url.path": "/health-monitoring", + "url.query": "-", + "user.name": "-", + "user_agent.device.name": "Other", + "user_agent.name": "Other", + "user_agent.original": "-" + }, + { + "@timestamp": "2019-03-06T18:43:17.000Z", + "destination.address": "10.0.140.107", + "destination.ip": "10.0.140.107", + "destination.port": 80, + "ecs.version": "1.0.0", + "event.dataset": "iis.access", + "event.duration": 15000000, + "event.module": "iis", + "fileset.name": "access", + "http.request.method": "GET", + "http.response.status_code": 200, + "iis.access.sub_status": 0, + "iis.access.win32_status": 0, + "input.type": "log", + "log.offset": 619, + "service.type": "iis", + "source.address": "10.0.140.2", + "source.ip": "10.0.140.2", + "url.path": "/health-monitoring", + "url.query": "-", + "user.name": "-", + "user_agent.device.name": "Other", + "user_agent.name": "Other", + "user_agent.original": "-" + }, + { + "@timestamp": "2019-03-06T18:43:17.000Z", + "destination.address": "2001:cdba:0000:0000:0000:0000:3257:9652", + "destination.ip": "2001:cdba:0000:0000:0000:0000:3257:9652", + "destination.port": 80, + "ecs.version": "1.0.0", + "event.dataset": "iis.access", + "event.duration": 15000000, + "event.module": "iis", + "fileset.name": "access", + "http.request.method": "GET", + "http.response.status_code": 200, + "iis.access.sub_status": 0, + "iis.access.win32_status": 0, + "input.type": "log", + "log.offset": 706, + "service.type": "iis", + "source.address": "2001:cdba:0000:0000:0000:0000:3257:9652", + "source.ip": "2001:cdba:0000:0000:0000:0000:3257:9652", + "url.path": "/health-monitoring", + "url.query": "-", + "user.name": "-", + "user_agent.device.name": "Other", + "user_agent.name": "Other", + "user_agent.original": "-" } ] \ No newline at end of file From 005bb608b010fa777db527738ad27b5f40086986 Mon Sep 17 00:00:00 2001 From: Andrew Cholakian Date: Sat, 16 Mar 2019 08:22:30 -0700 Subject: [PATCH 219/332] [Heartbeat] Remove extra monitor template files (#11216) In https://github.com/elastic/beats/pull/9648 the monitor generator script was removed, but its supporting files were not. This commit removes the remaining legacy files. --- heartbeat/scripts/generator/README.md | 33 ----- .../_meta/config.reference.yml.tmpl | 62 --------- .../{{monitor}}/_meta/config.yml.tmpl | 9 -- .../{{monitor}}/_meta/fields.yml.tmpl | 22 ---- .../generator/{{monitor}}/check.go.tmpl | 15 --- .../generator/{{monitor}}/config.go.tmpl | 76 ----------- .../scripts/generator/{{monitor}}/job.go.tmpl | 70 ---------- .../generator/{{monitor}}/{{monitor}}.go.tmpl | 121 ------------------ 8 files changed, 408 deletions(-) delete mode 100644 heartbeat/scripts/generator/README.md delete mode 100644 heartbeat/scripts/generator/{{monitor}}/_meta/config.reference.yml.tmpl delete mode 100644 heartbeat/scripts/generator/{{monitor}}/_meta/config.yml.tmpl delete mode 100644 heartbeat/scripts/generator/{{monitor}}/_meta/fields.yml.tmpl delete mode 100644 heartbeat/scripts/generator/{{monitor}}/check.go.tmpl delete mode 100644 heartbeat/scripts/generator/{{monitor}}/config.go.tmpl delete mode 100644 heartbeat/scripts/generator/{{monitor}}/job.go.tmpl delete mode 100644 heartbeat/scripts/generator/{{monitor}}/{{monitor}}.go.tmpl diff --git a/heartbeat/scripts/generator/README.md b/heartbeat/scripts/generator/README.md deleted file mode 100644 index f1b0b9aaec1..00000000000 --- a/heartbeat/scripts/generator/README.md +++ /dev/null @@ -1,33 +0,0 @@ -## Readme - -Code generator for Heartbeat monitors. - -In order to add a new monitor type to Heartbeat, run `make create-monitor -MONITOR=` from the Heartbeat directory. - -``` -$ cd $GOPATH/src/github.com/elastic/beats/heartbeat -$ make create-monitor MONITOR= -$ make update -$ make # build heartbeat -``` - -`make update` is required to update the import list, such that the new monitor -is compiled into Heartbeat. - -The new monitor will be added to the `monitors/active/` sub directory. - -Monitor structure: -- `config.go`: The monitor configuration options and configuration validation. -- `check.go`: The monitor validation support. -- `job.go`: Implements the ping function for connecting and validating an - endpoint. This file generates the monitor specific fields to an event. -- `.go`: The monitor entrypoint registering the factory for setting up - monitoring jobs. -- `_meta/fields.yml`: Document the monitors event field. -- `_meta/config.yml`: Minimal sample configuration file -- `_meta/config.reference.yml`: Reference configuration file. All available - settings are documented in the reference file. - -Code comments tagged with `IMPLEMENT_ME` in the go and meta files give details -on changes required to implement a new monitor type. diff --git a/heartbeat/scripts/generator/{{monitor}}/_meta/config.reference.yml.tmpl b/heartbeat/scripts/generator/{{monitor}}/_meta/config.reference.yml.tmpl deleted file mode 100644 index 1e827850fd7..00000000000 --- a/heartbeat/scripts/generator/{{monitor}}/_meta/config.reference.yml.tmpl +++ /dev/null @@ -1,62 +0,0 @@ -- type: {{monitor}} - - # Monitor name used for job name and document type - #name: {{monitor}} - - # Enable/Disable monitor - #enabled: true - - # Configure task schedule - schedule: '@every 30s' - - # list of hosts to monitor - hosts: ["localhost"] - - # list of ports to ping (used if host is given without portname) - ports: [12345] - - # SOCKS5 proxy url - #proxy_url: '' - - # Resolve hostnames locally instead on SOCKS5 server: - #proxy_use_local_resolver: false - - # Configure file json file to be watched for changes to the monitor: - #watch.poll_file: - # Path to check for updates. - #path: - - # Interval between file file changed checks. - #interval: 5s - - - # Configure IP protocol types to ping on if hostnames are configured. Ping - # all resolvable IPs if `mode` is `all`, or only one IP if `mode` is `any`. - ipv4: true - ipv6: true - mode: any - - # Configure file json file to be watched for changes to the monitor: - #watch.poll_file: - # Path to check for updates. - #path: - - # Interval between file file changed checks. - #interval: 5s - - # Total test connection and data exchange timeout - #timeout: 16s - - - # TLS/SSL connection settings: - #ssl: - # Certificate Authorities - #certificate_authorities: [''] - - # Required TLS protocols - #supported_protocols: ["TLSv1.0", "TLSv1.1", "TLSv1.2"] - - # IMPLEMENT_ME: document check/validation settings - #check: - #request: - #response: diff --git a/heartbeat/scripts/generator/{{monitor}}/_meta/config.yml.tmpl b/heartbeat/scripts/generator/{{monitor}}/_meta/config.yml.tmpl deleted file mode 100644 index 53133e52508..00000000000 --- a/heartbeat/scripts/generator/{{monitor}}/_meta/config.yml.tmpl +++ /dev/null @@ -1,9 +0,0 @@ -- type: {{monitor}} - # list of hosts to monitor - hosts: ["localhost:12345"] - - # Configure task schedule - schedule: '@every 30s' - - # Total test connection and data exchange timeout - #timeout: 16s diff --git a/heartbeat/scripts/generator/{{monitor}}/_meta/fields.yml.tmpl b/heartbeat/scripts/generator/{{monitor}}/_meta/fields.yml.tmpl deleted file mode 100644 index 4afa42447e3..00000000000 --- a/heartbeat/scripts/generator/{{monitor}}/_meta/fields.yml.tmpl +++ /dev/null @@ -1,22 +0,0 @@ -- key: {{monitor}} - title: "{{monitor|upper}} monitor" - description: - fields: - - name: {{monitor}} - type: group - description: > - {{monitor|upper}} related fields. - fields: - - name: rtt - type: group - description: > - {{monitor|upper}} layer round trip times. - fields: - - name: validate - type: group - description: > - Duration of validation step based on existing {{monitor|upper}} connection. - fields: - - name: us - type: long - description: Duration in microseconds diff --git a/heartbeat/scripts/generator/{{monitor}}/check.go.tmpl b/heartbeat/scripts/generator/{{monitor}}/check.go.tmpl deleted file mode 100644 index a992286b458..00000000000 --- a/heartbeat/scripts/generator/{{monitor}}/check.go.tmpl +++ /dev/null @@ -1,15 +0,0 @@ -package {{monitor}} - -import "net" - -// IMPLEMENT_ME: implement validator -type validator struct { -} - -func makeValidator(config *config) (*validator, error) { - return &validator{}, nil -} - -func (v *validator) Check(conn net.Conn) error { - return nil -} diff --git a/heartbeat/scripts/generator/{{monitor}}/config.go.tmpl b/heartbeat/scripts/generator/{{monitor}}/config.go.tmpl deleted file mode 100644 index 46b36a06cc4..00000000000 --- a/heartbeat/scripts/generator/{{monitor}}/config.go.tmpl +++ /dev/null @@ -1,76 +0,0 @@ -package {{monitor}} - -import ( - "time" - - "github.com/elastic/beats/libbeat/outputs/transport" - - "github.com/elastic/beats/libbeat/common/transport/tlscommon" - "github.com/elastic/beats/heartbeat/monitors" -) - -type config struct { - Name string `config:"name"` - - // connection settings - Hosts []string `config:"hosts" validate:"required"` - Ports []uint16 `config:"ports"` - Socks5 transport.ProxyConfig `config:",inline"` - Mode monitors.IPSettings `config:",inline"` - - // configure tls - TLS *tlscommon.Config `config:"ssl"` - - // configure validation - Check checkConfig `config:"check"` - Timeout time.Duration `config:"timeout"` -} - -type checkConfig struct { - Request requestConfig `config:"request"` - Response responseConfig `config:"response"` -} - -type requestConfig struct { - // IMPLEMENT_ME: configure request parameters -} - -type responseConfig struct { - // IMPLEMENT_ME: configure response parameters for validation -} - -// defaultConfig creates a new copy of the monitors default configuration. -func defaultConfig() config { - return config{ - Name: "echo", - Hosts: []string{"localhost"}, - Ports: nil, - Mode: monitors.DefaultIPSettings, - TLS: nil, - Check: checkConfig{ - Request: requestConfig{}, - Response: responseConfig{}, - }, - Timeout: 16 * time.Second, - } -} - -// IMPLEMENT_ME: implement optional config validation or remove method -func (c *config) Validate() error { - return nil -} - -// IMPLEMENT_ME: implement optional config validation or remove method -func (c *checkConfig) Validate() error { - return nil -} - -// IMPLEMENT_ME: implement optional config validation or remove method -func (c *requestConfig) Validate() error { - return nil -} - -// IMPLEMENT_ME: implement optional config validation or remove method -func (c *responseConfig) Validate() error { - return nil -} diff --git a/heartbeat/scripts/generator/{{monitor}}/job.go.tmpl b/heartbeat/scripts/generator/{{monitor}}/job.go.tmpl deleted file mode 100644 index 099b3119f56..00000000000 --- a/heartbeat/scripts/generator/{{monitor}}/job.go.tmpl +++ /dev/null @@ -1,70 +0,0 @@ -package {{monitor}} - -import ( - "net" - "time" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/outputs/transport" - - "github.com/elastic/beats/heartbeat/look" - "github.com/elastic/beats/heartbeat/reason" -) - -func pingHost( - dialer transport.Dialer, - host string, - timeout time.Duration, - validator *validator, -) (common.MapStr, reason.Reason) { - start := time.Now() - deadline := start.Add(timeout) - - // IMPLEMENT_ME: dial endpoint. Sample code uses plain TCP (optional TLS) - // connection, handling all communication in the validator. - // Libraries for other services might require the dialer or connection - // object, which is then passed to the validator. - - // connect to endpoint - conn, err := dialer.Dial("tcp", host) - if err != nil { - debugf("dial failed with: %v", err) - return nil, reason.IOFailed(err) - } - defer conn.Close() - - // no additional validation step => ping success - if validator == nil { - return common.MapStr{}, nil - } - - // set validation deadline - if err := conn.SetDeadline(deadline); err != nil { - debugf("setting connection deadline failed with: %v", err) - return nil, reason.IOFailed(err) - } - - // validate endpoint status - validateStart := time.Now() - err = validator.Check(conn) - if _, ok := err.(net.Error); ok { - // IMPLEMENT_ME: handle protocol specific IO/communication error types - - return nil, reason.IOFailed(err) - } - - // create validation event - end := time.Now() - event := common.MapStr{ - namespace: common.MapStr{ - "rtt": common.MapStr{ - "validate": look.RTT(end.Sub(validateStart)), - }, - }, - } - if err != nil { - event["error"] = reason.FailValidate(err) - } - - return event, nil -} diff --git a/heartbeat/scripts/generator/{{monitor}}/{{monitor}}.go.tmpl b/heartbeat/scripts/generator/{{monitor}}/{{monitor}}.go.tmpl deleted file mode 100644 index b0aca11956f..00000000000 --- a/heartbeat/scripts/generator/{{monitor}}/{{monitor}}.go.tmpl +++ /dev/null @@ -1,121 +0,0 @@ -package {{monitor}} - -import ( - "fmt" - "net" - "strconv" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/logp" - "github.com/elastic/beats/libbeat/outputs" - "github.com/elastic/beats/libbeat/outputs/transport" - - "github.com/elastic/beats/heartbeat/monitors" - "github.com/elastic/beats/heartbeat/monitors/active/dialchain" -) - -const ( - // internal monitor name (registry/config name) - monitorName = "{{monitor}}" - - // monitor event namespace - namespace = "{{monitor}}" - - // scheme names for `monitor.scheme` - plainScheme = "{{monitor}}" - tlsScheme = "{{monitor}}s" -) - -var debugf = logp.MakeDebug(monitorName) - -func init() { - // Register active monitor type - monitors.RegisterActive(monitorName, create) -} - -// create builds multiple monitoring jobs based on the endpoint configuration. -// For each configured endpoint, exactly one job will be generated. -func create( - info monitors.Info, - cfg *common.Config, -) ([]monitors.Job, error) { - // unpack the monitors configuration - config := defaultConfig() - if err := cfg.Unpack(&config); err != nil { - return nil, err - } - - // collect list of endpoints from configuration. - endpoints, err := collectEndpoints(&config) - if err != nil { - return nil, err - } - - validator, err := makeValidator(&config) - if err != nil { - return nil, err - } - - // load optional TLS settings - tls, err := outputs.LoadTLSConfig(config.TLS) - if err != nil { - return nil, err - } - - typ := config.Name - timeout := config.Timeout - scheme := plainScheme - if tls != nil { - scheme = tlsScheme - } - - db, err := dialchain.NewBuilder(dialchain.BuilderSettings{ - Timeout: timeout, - Socks5: config.Socks5, - TLS: tls, - }) - if err != nil { - return nil, err - } - - return dialchain.MakeDialerJobs(db, typ, scheme, endpoints, config.Mode, - func(dialer transport.Dialer, addr string) (common.MapStr, error) { - return pingHost(dialer, addr, timeout, validator) - - }) -} - -// collectEndpoints creates an array of all endpoints to be monitored. -// Each address returned matches the ":" scheme. -func collectEndpoints(config *config) ([]dialchain.Endpoint, error) { - var addrs []dialchain.Endpoint - for _, h := range config.Hosts { - ports := config.Ports - host, port, err := splitHostnamePort(h) - if err != nil { - host = h - } else { - ports = []uint16{port} - } - - if len(ports) == 0 { - return nil, fmt.Errorf("host '%v' without port configuration", host) - } - - addrs = append(addrs, dialchain.Endpoint{Host: host, Ports: ports}) - } - - return addrs, nil -} - -func splitHostnamePort(addr string) (string, uint16, error) { - host, port, err := net.SplitHostPort(addr) - if err != nil { - return "", 0, err - } - p, err := strconv.ParseUint(port, 10, 16) - if err != nil { - return "", 0, fmt.Errorf("'%v' is no valid port number in '%v'", port, addr) - } - return host, uint16(p), nil -} From 7454eee61d39c7eb83b5e95953f92e095a43d6dc Mon Sep 17 00:00:00 2001 From: Francois G Date: Mon, 18 Mar 2019 05:11:51 -0400 Subject: [PATCH 220/332] Updated link to githubbeat (#11281) The repository the documentation was previously linking to (https://github.com/jlevesy/githubbeat) is now inactive, the owner suggests using the following fork instead: https://github.com/josephlewis42/githubbeat --- libbeat/docs/communitybeats.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libbeat/docs/communitybeats.asciidoc b/libbeat/docs/communitybeats.asciidoc index df749ad83ac..4f4123e7e1b 100644 --- a/libbeat/docs/communitybeats.asciidoc +++ b/libbeat/docs/communitybeats.asciidoc @@ -48,7 +48,7 @@ https://github.com/ctindel/fastcombeat[fastcombeat]:: Periodically gather intern https://github.com/FStelzer/flowbeat[flowbeat]:: Collects, parses, and indexes http://www.sflow.org/index.php[sflow] samples. https://github.com/GeneralElectric/GABeat[gabeat]:: Collects data from Google Analytics Realtime API. https://github.com/GoogleCloudPlatform/gcsbeat[gcsbeat]:: Reads data from https://cloud.google.com/storage/[Google Cloud Storage] buckets. -https://github.com/jlevesy/githubbeat[githubbeat]:: Easily monitors GitHub repository activity. +https://github.com/josephlewis42/githubbeat[githubbeat]:: Easily monitors GitHub repository activity. https://github.com/hpcugent/gpfsbeat[gpfsbeat]:: Collects GPFS metric and quota information. https://github.com/ullaakut/hackerbeat[hackerbeat]:: Indexes the top stories of HackerNews into an ElasticSearch instance. https://github.com/YaSuenag/hsbeat[hsbeat]:: Reads all performance counters in Java HotSpot VM. From feaef40d3b38c14580c7b6e3605560cab8e2eb71 Mon Sep 17 00:00:00 2001 From: Nicolas Ruflin Date: Mon, 18 Mar 2019 12:18:35 +0100 Subject: [PATCH 221/332] [Metricbeat] Fix wrong alias in rabbitmq module (#11284) * rabbitmq.node.name was duplicated and alias pointed to itself * rabbitmq.connection.name was falsely migrated to `rabbitmq.name` Also adding tests to Filebeat and Metricbeat to ensure this does not happen again in the future. Closes https://github.com/elastic/beats/issues/11271 --- filebeat/tests/system/test_base.py | 16 ++++++++++++++ metricbeat/docs/fields.asciidoc | 19 ++-------------- metricbeat/module/rabbitmq/_meta/fields.yml | 5 ----- .../rabbitmq/connection/_meta/fields.yml | 4 +--- metricbeat/module/rabbitmq/fields.go | 2 +- .../module/rabbitmq/node/_meta/fields.yml | 6 ++--- metricbeat/tests/system/test_base.py | 22 +++++++++++++++++++ 7 files changed, 44 insertions(+), 30 deletions(-) diff --git a/filebeat/tests/system/test_base.py b/filebeat/tests/system/test_base.py index ba21f21c2f6..c4137f6c7f7 100644 --- a/filebeat/tests/system/test_base.py +++ b/filebeat/tests/system/test_base.py @@ -40,3 +40,19 @@ def test_template(self): assert exit_code == 0 assert self.log_contains('Loaded index template') assert len(es.cat.templates(name='filebeat-*', h='name')) > 0 + + @unittest.skipUnless(INTEGRATION_TESTS, "integration test") + def test_template_migration(self): + """ + Test that the template can be loaded with `setup --template` + """ + es = Elasticsearch([self.get_elasticsearch_url()]) + self.render_config_template( + elasticsearch={"host": self.get_elasticsearch_url()}, + ) + exit_code = self.run_beat(extra_args=["setup", "--template", + "-E", "setup.template.overwrite=true", "-E", "migration.enabled=true"]) + + assert exit_code == 0 + assert self.log_contains('Loaded index template') + assert len(es.cat.templates(name='filebeat-*', h='name')) > 0 diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index d8bf22a428b..e3adf042f6d 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -20516,16 +20516,6 @@ RabbitMQ module -*`rabbitmq.node.name`*:: -+ --- -type: keyword - -Node name - - --- - *`rabbitmq.vhost`*:: + -- @@ -20546,9 +20536,7 @@ connection *`rabbitmq.connection.name`*:: + -- -type: alias - -alias to: rabbitmq.name +type: keyword The name of the connection with non-ASCII characters escaped as in C. @@ -21106,13 +21094,10 @@ Number of messages which have been written to the message store. *`rabbitmq.node.name`*:: + -- -type: alias - -alias to: rabbitmq.node.name +type: keyword Node name - -- *`rabbitmq.node.proc.total`*:: diff --git a/metricbeat/module/rabbitmq/_meta/fields.yml b/metricbeat/module/rabbitmq/_meta/fields.yml index f964967e8e4..5abfd082dd8 100644 --- a/metricbeat/module/rabbitmq/_meta/fields.yml +++ b/metricbeat/module/rabbitmq/_meta/fields.yml @@ -9,11 +9,6 @@ type: group description: > fields: - - name: node.name - type: keyword - description: > - Node name - - name: vhost type: keyword description: > diff --git a/metricbeat/module/rabbitmq/connection/_meta/fields.yml b/metricbeat/module/rabbitmq/connection/_meta/fields.yml index d595cc97928..566bad10753 100644 --- a/metricbeat/module/rabbitmq/connection/_meta/fields.yml +++ b/metricbeat/module/rabbitmq/connection/_meta/fields.yml @@ -5,9 +5,7 @@ release: ga fields: - name: name - type: alias - path: rabbitmq.name - migration: true + type: keyword description: > The name of the connection with non-ASCII characters escaped as in C. - name: vhost diff --git a/metricbeat/module/rabbitmq/fields.go b/metricbeat/module/rabbitmq/fields.go index dc6b1555610..30e982f3b3f 100644 --- a/metricbeat/module/rabbitmq/fields.go +++ b/metricbeat/module/rabbitmq/fields.go @@ -32,5 +32,5 @@ func init() { // AssetRabbitmq returns asset data. // This is the base64 encoded gzipped contents of ../metricbeat/module/rabbitmq. func AssetRabbitmq() string { - return "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" + return "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" } diff --git a/metricbeat/module/rabbitmq/node/_meta/fields.yml b/metricbeat/module/rabbitmq/node/_meta/fields.yml index 11ab0f69836..dce18fec55f 100644 --- a/metricbeat/module/rabbitmq/node/_meta/fields.yml +++ b/metricbeat/module/rabbitmq/node/_meta/fields.yml @@ -111,10 +111,8 @@ description: > Number of messages which have been written to the message store. - name: name - type: alias - path: rabbitmq.node.name - migration: true - description: > + type: keyword + description: Node name - name: proc.total type: long diff --git a/metricbeat/tests/system/test_base.py b/metricbeat/tests/system/test_base.py index e5d58e0284d..146cdd064ac 100644 --- a/metricbeat/tests/system/test_base.py +++ b/metricbeat/tests/system/test_base.py @@ -75,3 +75,25 @@ def test_dashboards(self): assert exit_code == 0 assert self.log_contains("Kibana dashboards successfully loaded.") + + @unittest.skipUnless(INTEGRATION_TESTS, "integration test") + def test_migration(self): + """ + Test that the template loads when migration is enabled + """ + + es = Elasticsearch([self.get_elasticsearch_url()]) + self.render_config_template( + modules=[{ + "name": "apache", + "metricsets": ["status"], + "hosts": ["localhost"], + }], + elasticsearch={"host": self.get_elasticsearch_url()}, + ) + exit_code = self.run_beat(extra_args=["setup", "--template", + "-E", "setup.template.overwrite=true", "-E", "migration.enabled=true"]) + + assert exit_code == 0 + assert self.log_contains('Loaded index template') + assert len(es.cat.templates(name='metricbeat-*', h='name')) > 0 From 4dce54b238e5edf53f2f6a7c3f0cc85540dbf2b7 Mon Sep 17 00:00:00 2001 From: Nicolas Ruflin Date: Mon, 18 Mar 2019 14:04:59 +0100 Subject: [PATCH 222/332] [Metricbeat] Check that fields are documented in data tests (#11127) Currently we check in python tests that the fields are documented. As by now we have all the fields also available in the go code with the fields.go files it is possible to do this check in the new data tests. To prevent cyclic imports the data_test.go had to be moved to its own package. Now by default all modules are imported. Like this we don't have to add each module manually. --- metricbeat/docs/fields.asciidoc | 2 +- metricbeat/mb/testing/{ => data}/data_test.go | 79 +++++++++++++------ metricbeat/mb/testing/modules.go | 18 ++--- .../kubernetes/apiserver/_meta/fields.yml | 4 +- metricbeat/module/kubernetes/fields.go | 2 +- 5 files changed, 70 insertions(+), 35 deletions(-) rename metricbeat/mb/testing/{ => data}/data_test.go (74%) diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index e3adf042f6d..c62d528e624 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -12276,7 +12276,7 @@ Request latency, number of requests -- -*`kubernetes.apiserver.request.latency.bucket`*:: +*`kubernetes.apiserver.request.latency.bucket.*`*:: + -- type: object diff --git a/metricbeat/mb/testing/data_test.go b/metricbeat/mb/testing/data/data_test.go similarity index 74% rename from metricbeat/mb/testing/data_test.go rename to metricbeat/mb/testing/data/data_test.go index 37c2b1eb7ac..b33dd9de789 100644 --- a/metricbeat/mb/testing/data_test.go +++ b/metricbeat/mb/testing/data/data_test.go @@ -15,7 +15,7 @@ // specific language governing permissions and limitations // under the License. -package testing +package data import ( "encoding/json" @@ -31,23 +31,17 @@ import ( "testing" "github.com/mitchellh/hashstructure" - "github.com/stretchr/testify/assert" "gopkg.in/yaml.v2" + "github.com/elastic/beats/libbeat/asset" "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/mapping" "github.com/elastic/beats/metricbeat/mb" + mbtesting "github.com/elastic/beats/metricbeat/mb/testing" - // TODO: generate include file for these tests automatically moving forward - _ "github.com/elastic/beats/metricbeat/module/couchbase/cluster" - _ "github.com/elastic/beats/metricbeat/module/couchbase/node" - _ "github.com/elastic/beats/metricbeat/module/kibana/status" - _ "github.com/elastic/beats/metricbeat/module/kubernetes/apiserver" - _ "github.com/elastic/beats/metricbeat/module/kubernetes/state_node" - _ "github.com/elastic/beats/metricbeat/module/php_fpm/pool" - _ "github.com/elastic/beats/metricbeat/module/php_fpm/process" - _ "github.com/elastic/beats/metricbeat/module/rabbitmq/connection" - _ "github.com/elastic/beats/metricbeat/module/traefik/health" + _ "github.com/elastic/beats/metricbeat/include" + _ "github.com/elastic/beats/metricbeat/include/fields" ) const ( @@ -72,8 +66,8 @@ func TestAll(t *testing.T) { for _, f := range configFiles { // get module and metricset name from path s := strings.Split(f, string(os.PathSeparator)) - moduleName := s[3] - metricSetName := s[4] + moduleName := s[4] + metricSetName := s[5] configFile, err := ioutil.ReadFile(f) if err != nil { @@ -95,7 +89,11 @@ func TestAll(t *testing.T) { func getTestdataFiles(t *testing.T, url, module, metricSet, suffix string) { - ff, _ := filepath.Glob(getMetricsetPath(module, metricSet) + "/_meta/testdata/*." + suffix) + ff, err := filepath.Glob(getMetricsetPath(module, metricSet) + "/_meta/testdata/*." + suffix) + if err != nil { + t.Fatal(err) + } + var files []string for _, f := range ff { // Exclude all the expected files @@ -118,18 +116,18 @@ func runTest(t *testing.T, file string, module, metricSetName, url, suffix strin s := server(t, file, url) defer s.Close() - metricSet := newMetricSet(t, getConfig(module, metricSetName, s.URL)) + metricSet := mbtesting.NewMetricSet(t, getConfig(module, metricSetName, s.URL)) var events []mb.Event var errs []error switch v := metricSet.(type) { case mb.ReportingMetricSetV2: - metricSet := NewReportingMetricSetV2(t, getConfig(module, metricSetName, s.URL)) - events, errs = ReportingFetchV2(metricSet) + metricSet := mbtesting.NewReportingMetricSetV2(t, getConfig(module, metricSetName, s.URL)) + events, errs = mbtesting.ReportingFetchV2(metricSet) case mb.ReportingMetricSetV2Error: - metricSet := NewReportingMetricSetV2Error(t, getConfig(module, metricSetName, s.URL)) - events, errs = ReportingFetchV2Error(metricSet) + metricSet := mbtesting.NewReportingMetricSetV2Error(t, getConfig(module, metricSetName, s.URL)) + events, errs = mbtesting.ReportingFetchV2Error(metricSet) default: t.Fatalf("unknown type: %T", v) } @@ -143,7 +141,7 @@ func runTest(t *testing.T, file string, module, metricSetName, url, suffix strin var data []common.MapStr for _, e := range events { - beatEvent := StandardizeEvent(metricSet, e, mb.AddMetricSetInfo) + beatEvent := mbtesting.StandardizeEvent(metricSet, e, mb.AddMetricSetInfo) // Overwrite service.address as the port changes every time beatEvent.Fields.Put("service.address", "127.0.0.1:55555") data = append(data, beatEvent.Fields) @@ -156,6 +154,8 @@ func runTest(t *testing.T, file string, module, metricSetName, url, suffix strin return h1 < h2 }) + checkDocumented(t, data) + output, err := json.MarshalIndent(&data, "", " ") if err != nil { t.Fatal(err) @@ -190,6 +190,41 @@ func writeDataJSON(t *testing.T, data common.MapStr, module, metricSet string) { } } +// checkDocumented checks that all fields which show up in the events are documented +func checkDocumented(t *testing.T, data []common.MapStr) { + fieldsData, err := asset.GetFields("metricbeat") + if err != nil { + t.Fatal(err) + } + + fields, err := mapping.LoadFields(fieldsData) + if err != nil { + t.Fatal(err) + } + documentedFields := fields.GetKeys() + keys := map[string]interface{}{} + + for _, k := range documentedFields { + keys[k] = struct{}{} + } + + for _, d := range data { + flat := d.Flatten() + for k := range flat { + if _, ok := keys[k]; !ok { + // If a field is defined as object it can also be defined as `status_codes.*` + // So this checks if such a key with the * exists by removing the last part. + splits := strings.Split(k, ".") + prefix := strings.Join(splits[0:len(splits)-1], ".") + if _, ok := keys[prefix+".*"]; ok { + continue + } + t.Fatalf("key missing: %s", k) + } + } + } +} + // GetConfig returns config for elasticsearch module func getConfig(module, metricSet, url string) map[string]interface{} { return map[string]interface{}{ @@ -226,7 +261,7 @@ func server(t *testing.T, path string, url string) *httptest.Server { } func getModulesPath() string { - return "../../module" + return "../../../module" } func getModulePath(module string) string { diff --git a/metricbeat/mb/testing/modules.go b/metricbeat/mb/testing/modules.go index 234feee3568..ec5ebc0f532 100644 --- a/metricbeat/mb/testing/modules.go +++ b/metricbeat/mb/testing/modules.go @@ -81,10 +81,10 @@ func NewTestModule(t testing.TB, config interface{}) *TestModule { return &TestModule{RawConfig: c} } -// newMetricSet instantiates a new MetricSet using the given configuration. +// NewMetricSet instantiates a new MetricSet using the given configuration. // The ModuleFactory and MetricSetFactory are obtained from the global // Registry. -func newMetricSet(t testing.TB, config interface{}) mb.MetricSet { +func NewMetricSet(t testing.TB, config interface{}) mb.MetricSet { c, err := common.NewConfigFrom(config) if err != nil { t.Fatal(err) @@ -112,7 +112,7 @@ func newMetricSet(t testing.TB, config interface{}) mb.MetricSet { // configuration. The ModuleFactory and MetricSetFactory are obtained from the // global Registry. func NewEventFetcher(t testing.TB, config interface{}) mb.EventFetcher { - metricSet := newMetricSet(t, config) + metricSet := NewMetricSet(t, config) fetcher, ok := metricSet.(mb.EventFetcher) if !ok { @@ -126,7 +126,7 @@ func NewEventFetcher(t testing.TB, config interface{}) mb.EventFetcher { // configuration. The ModuleFactory and MetricSetFactory are obtained from the // global Registry. func NewEventsFetcher(t testing.TB, config interface{}) mb.EventsFetcher { - metricSet := newMetricSet(t, config) + metricSet := NewMetricSet(t, config) fetcher, ok := metricSet.(mb.EventsFetcher) if !ok { @@ -137,7 +137,7 @@ func NewEventsFetcher(t testing.TB, config interface{}) mb.EventsFetcher { } func NewReportingMetricSet(t testing.TB, config interface{}) mb.ReportingMetricSet { - metricSet := newMetricSet(t, config) + metricSet := NewMetricSet(t, config) reportingMetricSet, ok := metricSet.(mb.ReportingMetricSet) if !ok { @@ -158,7 +158,7 @@ func ReportingFetch(metricSet mb.ReportingMetricSet) ([]common.MapStr, []error) // NewReportingMetricSetV2 returns a new ReportingMetricSetV2 instance. Then // you can use ReportingFetchV2 to perform a Fetch operation with the MetricSet. func NewReportingMetricSetV2(t testing.TB, config interface{}) mb.ReportingMetricSetV2 { - metricSet := newMetricSet(t, config) + metricSet := NewMetricSet(t, config) reportingMetricSetV2, ok := metricSet.(mb.ReportingMetricSetV2) if !ok { @@ -171,7 +171,7 @@ func NewReportingMetricSetV2(t testing.TB, config interface{}) mb.ReportingMetri // NewReportingMetricSetV2Error returns a new ReportingMetricSetV2 instance. Then // you can use ReportingFetchV2 to perform a Fetch operation with the MetricSet. func NewReportingMetricSetV2Error(t testing.TB, config interface{}) mb.ReportingMetricSetV2Error { - metricSet := newMetricSet(t, config) + metricSet := NewMetricSet(t, config) reportingMetricSetV2Error, ok := metricSet.(mb.ReportingMetricSetV2Error) if !ok { @@ -232,7 +232,7 @@ func ReportingFetchV2Error(metricSet mb.ReportingMetricSetV2Error) ([]mb.Event, // configuration. The ModuleFactory and MetricSetFactory are obtained from the // global Registry. func NewPushMetricSet(t testing.TB, config interface{}) mb.PushMetricSet { - metricSet := newMetricSet(t, config) + metricSet := NewMetricSet(t, config) pushMetricSet, ok := metricSet.(mb.PushMetricSet) if !ok { @@ -297,7 +297,7 @@ func RunPushMetricSet(duration time.Duration, metricSet mb.PushMetricSet) ([]com // configuration. The ModuleFactory and MetricSetFactory are obtained from the // global Registry. func NewPushMetricSetV2(t testing.TB, config interface{}) mb.PushMetricSetV2 { - metricSet := newMetricSet(t, config) + metricSet := NewMetricSet(t, config) pushMetricSet, ok := metricSet.(mb.PushMetricSetV2) if !ok { diff --git a/metricbeat/module/kubernetes/apiserver/_meta/fields.yml b/metricbeat/module/kubernetes/apiserver/_meta/fields.yml index c1fb4b055d3..1947cf981d4 100644 --- a/metricbeat/module/kubernetes/apiserver/_meta/fields.yml +++ b/metricbeat/module/kubernetes/apiserver/_meta/fields.yml @@ -36,8 +36,8 @@ type: long description: > Request latency, number of requests - - name: request.latency.bucket + - name: request.latency.bucket.* type: object object_type: long description: > - Request latency histogram buckets \ No newline at end of file + Request latency histogram buckets diff --git a/metricbeat/module/kubernetes/fields.go b/metricbeat/module/kubernetes/fields.go index 63e6cb4a661..7410273e390 100644 --- a/metricbeat/module/kubernetes/fields.go +++ b/metricbeat/module/kubernetes/fields.go @@ -32,5 +32,5 @@ func init() { // AssetKubernetes returns asset data. // This is the base64 encoded gzipped contents of ../metricbeat/module/kubernetes. func AssetKubernetes() string { - return "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" + return "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" } From a2e6d3a4c0cbb56a1c758fe39081d6e30061e08d Mon Sep 17 00:00:00 2001 From: Jaime Soriano Pastor Date: Mon, 18 Mar 2019 16:48:46 +0100 Subject: [PATCH 223/332] Add process name to system auth events (#11231) --- .../module/system/auth/ingest/pipeline.json | 12 ++++++------ .../system/auth/test/test.log-expected.json | 18 ++++++++++++++---- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/filebeat/module/system/auth/ingest/pipeline.json b/filebeat/module/system/auth/ingest/pipeline.json index c6b91e067ac..a5496839970 100644 --- a/filebeat/module/system/auth/ingest/pipeline.json +++ b/filebeat/module/system/auth/ingest/pipeline.json @@ -9,12 +9,12 @@ "GREEDYMULTILINE" : "(.|\n)*" }, "patterns": [ - "%{SYSLOGTIMESTAMP:system.auth.timestamp} %{SYSLOGHOST:host.hostname} sshd(?:\\[%{POSINT:process.pid:long}\\])?: %{DATA:event.action} %{DATA:system.auth.ssh.method} for (invalid user )?%{DATA:user.name} from %{IPORHOST:source.ip} port %{NUMBER:source.port:long} ssh2(: %{GREEDYDATA:system.auth.ssh.signature})?", - "%{SYSLOGTIMESTAMP:system.auth.timestamp} %{SYSLOGHOST:host.hostname} sshd(?:\\[%{POSINT:process.pid:long}\\])?: %{DATA:event.action} user %{DATA:user.name} from %{IPORHOST:source.ip}", - "%{SYSLOGTIMESTAMP:system.auth.timestamp} %{SYSLOGHOST:host.hostname} sshd(?:\\[%{POSINT:process.pid:long}\\])?: Did not receive identification string from %{IPORHOST:system.auth.ssh.dropped_ip}", - "%{SYSLOGTIMESTAMP:system.auth.timestamp} %{SYSLOGHOST:host.hostname} sudo(?:\\[%{POSINT:process.pid:long}\\])?: \\s*%{DATA:user.name} :( %{DATA:system.auth.sudo.error} ;)? TTY=%{DATA:system.auth.sudo.tty} ; PWD=%{DATA:system.auth.sudo.pwd} ; USER=%{DATA:system.auth.sudo.user} ; COMMAND=%{GREEDYDATA:system.auth.sudo.command}", - "%{SYSLOGTIMESTAMP:system.auth.timestamp} %{SYSLOGHOST:host.hostname} groupadd(?:\\[%{POSINT:process.pid:long}\\])?: new group: name=%{DATA:group.name}, GID=%{NUMBER:group.id}", - "%{SYSLOGTIMESTAMP:system.auth.timestamp} %{SYSLOGHOST:host.hostname} useradd(?:\\[%{POSINT:process.pid:long}\\])?: new user: name=%{DATA:user.name}, UID=%{NUMBER:user.id}, GID=%{NUMBER:group.id}, home=%{DATA:system.auth.useradd.home}, shell=%{DATA:system.auth.useradd.shell}$", + "%{SYSLOGTIMESTAMP:system.auth.timestamp} %{SYSLOGHOST:host.hostname} %{DATA:process.name}(?:\\[%{POSINT:process.pid:long}\\])?: %{DATA:event.outcome} %{DATA:system.auth.ssh.method} for (invalid user )?%{DATA:user.name} from %{IPORHOST:source.ip} port %{NUMBER:source.port:long} ssh2(: %{GREEDYDATA:system.auth.ssh.signature})?", + "%{SYSLOGTIMESTAMP:system.auth.timestamp} %{SYSLOGHOST:host.hostname} %{DATA:process.name}(?:\\[%{POSINT:process.pid:long}\\])?: %{DATA:event.outcome} user %{DATA:user.name} from %{IPORHOST:source.ip}", + "%{SYSLOGTIMESTAMP:system.auth.timestamp} %{SYSLOGHOST:host.hostname} %{DATA:process.name}(?:\\[%{POSINT:process.pid:long}\\])?: Did not receive identification string from %{IPORHOST:system.auth.ssh.dropped_ip}", + "%{SYSLOGTIMESTAMP:system.auth.timestamp} %{SYSLOGHOST:host.hostname} %{DATA:process.name}(?:\\[%{POSINT:process.pid:long}\\])?: \\s*%{DATA:user.name} :( %{DATA:system.auth.sudo.error} ;)? TTY=%{DATA:system.auth.sudo.tty} ; PWD=%{DATA:system.auth.sudo.pwd} ; USER=%{DATA:system.auth.sudo.user} ; COMMAND=%{GREEDYDATA:system.auth.sudo.command}", + "%{SYSLOGTIMESTAMP:system.auth.timestamp} %{SYSLOGHOST:host.hostname} %{DATA:process.name}(?:\\[%{POSINT:process.pid:long}\\])?: new group: name=%{DATA:group.name}, GID=%{NUMBER:group.id}", + "%{SYSLOGTIMESTAMP:system.auth.timestamp} %{SYSLOGHOST:host.hostname} %{DATA:process.name}(?:\\[%{POSINT:process.pid:long}\\])?: new user: name=%{DATA:user.name}, UID=%{NUMBER:user.id}, GID=%{NUMBER:group.id}, home=%{DATA:system.auth.useradd.home}, shell=%{DATA:system.auth.useradd.shell}$", "%{SYSLOGTIMESTAMP:system.auth.timestamp} %{SYSLOGHOST:host.hostname}? %{DATA:process.name}(?:\\[%{POSINT:process.pid:long}\\])?: %{GREEDYMULTILINE:system.auth.message}" ] } diff --git a/filebeat/module/system/auth/test/test.log-expected.json b/filebeat/module/system/auth/test/test.log-expected.json index afa5e4854c5..c780956e8a5 100644 --- a/filebeat/module/system/auth/test/test.log-expected.json +++ b/filebeat/module/system/auth/test/test.log-expected.json @@ -1,13 +1,14 @@ [ { "ecs.version": "1.0.0", - "event.action": "Accepted", "event.dataset": "system.auth", "event.module": "system", + "event.outcome": "Accepted", "fileset.name": "auth", "host.hostname": "localhost", "input.type": "log", "log.offset": 0, + "process.name": "sshd", "process.pid": 3402, "service.type": "system", "source.ip": "10.0.2.2", @@ -18,13 +19,14 @@ }, { "ecs.version": "1.0.0", - "event.action": "Accepted", "event.dataset": "system.auth", "event.module": "system", + "event.outcome": "Accepted", "fileset.name": "auth", "host.hostname": "localhost", "input.type": "log", "log.offset": 152, + "process.name": "sshd", "process.pid": 7483, "service.type": "system", "source.ip": "192.168.33.1", @@ -34,13 +36,14 @@ }, { "ecs.version": "1.0.0", - "event.action": "Invalid", "event.dataset": "system.auth", "event.module": "system", + "event.outcome": "Invalid", "fileset.name": "auth", "host.hostname": "localhost", "input.type": "log", "log.offset": 254, + "process.name": "sshd", "process.pid": 3430, "service.type": "system", "source.ip": "10.0.2.2", @@ -48,13 +51,14 @@ }, { "ecs.version": "1.0.0", - "event.action": "Failed", "event.dataset": "system.auth", "event.module": "system", + "event.outcome": "Failed", "fileset.name": "auth", "host.hostname": "slave22", "input.type": "log", "log.offset": 324, + "process.name": "sshd", "process.pid": 5774, "service.type": "system", "source.geo.continent_name": "Asia", @@ -76,6 +80,7 @@ "host.hostname": "localhost", "input.type": "log", "log.offset": 420, + "process.name": "sudo", "service.type": "system", "system.auth.sudo.command": "/bin/ls", "system.auth.sudo.pwd": "/home/vagrant", @@ -91,6 +96,7 @@ "host.hostname": "slave22", "input.type": "log", "log.offset": 522, + "process.name": "sshd", "process.pid": 18406, "service.type": "system", "source.geo.continent_name": "Asia", @@ -108,6 +114,7 @@ "host.hostname": "localhost", "input.type": "log", "log.offset": 617, + "process.name": "sudo", "service.type": "system", "system.auth.sudo.command": "/bin/cat /var/log/secure", "system.auth.sudo.pwd": "/home/vagrant", @@ -123,6 +130,7 @@ "host.hostname": "precise32", "input.type": "log", "log.offset": 736, + "process.name": "sudo", "service.type": "system", "system.auth.sudo.command": "/bin/ls", "system.auth.sudo.error": "user NOT in sudoers", @@ -141,6 +149,7 @@ "host.hostname": "localhost", "input.type": "log", "log.offset": 861, + "process.name": "groupadd", "process.pid": 6991, "service.type": "system" }, @@ -153,6 +162,7 @@ "host.hostname": "localhost", "input.type": "log", "log.offset": 934, + "process.name": "useradd", "process.pid": 6995, "service.type": "system", "system.auth.useradd.home": "/usr/share/httpd", From 258c1c8419ec945967f8a9e8e9d92e166f0bb3f7 Mon Sep 17 00:00:00 2001 From: Jaime Soriano Pastor Date: Mon, 18 Mar 2019 19:04:29 +0100 Subject: [PATCH 224/332] Don't collect empty ip addresses in docker container metricset (#11247) Docker containers can have empty ip addresses if they are running in host network mode or if they are stopped. Collecting lists with empty addresses can make type mapping to fail when trying to store them as ip addresses. Fix #11225 --- CHANGELOG.next.asciidoc | 2 ++ metricbeat/module/docker/container/data.go | 4 +++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 4100e235091..b3d4e85068d 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -167,6 +167,8 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Improve detection of file deletion on Windows. {pull}10747[10747] - Fix errors in filebeat Zeek dashboard and README files. Add notice.log support. {pull}10916[10916] - Fix a bug when converting NetFlow fields to snake_case. {pull}10950[10950] +- Add on_failure handler for Zeek ingest pipelines. Fix one field name error for notice and add an additional test case. {issue}11004[11004] {pull}11105[11105] +- Fix issue preventing docker container events to be stored if the container has a network interface without ip address. {issue}11225[11225] {pull}11247[11247] - Add on_failure handler for Zeek ingest pipelines. Fix one field name error for notice and add an additional test case. {issue}11004[11004] {pull}11105[11105] - Change URLPATH grok pattern to support brackets. {issue}11135[11135] {pull}11252[11252] diff --git a/metricbeat/module/docker/container/data.go b/metricbeat/module/docker/container/data.go index c0bb07518fa..838291a751b 100644 --- a/metricbeat/module/docker/container/data.go +++ b/metricbeat/module/docker/container/data.go @@ -71,7 +71,9 @@ func eventMapping(r mb.ReporterV2, cont *types.Container, dedot bool) { func extractIPAddresses(networks *types.SummaryNetworkSettings) []string { ipAddresses := make([]string, 0, len(networks.Networks)) for _, network := range networks.Networks { - ipAddresses = append(ipAddresses, network.IPAddress) + if len(network.IPAddress) > 0 { + ipAddresses = append(ipAddresses, network.IPAddress) + } } return ipAddresses } From 96f3549fc08cf0b4d71a75162f5e80350f9835b9 Mon Sep 17 00:00:00 2001 From: Debashis Mondal <36876095+DebashisMondal@users.noreply.github.com> Date: Tue, 19 Mar 2019 15:23:24 +0530 Subject: [PATCH 225/332] [Filebeat] Fix of syslog parsing for Priority value <0> ( #11010 ) (#11288) --- CHANGELOG.next.asciidoc | 1 + filebeat/input/syslog/event.go | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index b3d4e85068d..df9e7acea81 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -173,6 +173,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d case. {issue}11004[11004] {pull}11105[11105] - Change URLPATH grok pattern to support brackets. {issue}11135[11135] {pull}11252[11252] - Add support for iis log with different address format. {issue}11255[11255] {pull}11256[11256] +- Add fix to parse syslog message with priority value 0. {issue}11010[11010] *Heartbeat* diff --git a/filebeat/input/syslog/event.go b/filebeat/input/syslog/event.go index 6a83a69d653..c5eccd6ea67 100644 --- a/filebeat/input/syslog/event.go +++ b/filebeat/input/syslog/event.go @@ -218,7 +218,7 @@ func (s *event) Priority() int { // HasPriority returns if the priority was in original event. func (s *event) HasPriority() bool { - return s.priority > 0 + return s.priority >= 0 } // Severity returns the severity, will return -1 if priority is not set. From 38c81eb4e298156cbea61d23d13d8c86f16a47a4 Mon Sep 17 00:00:00 2001 From: Nicolas Ruflin Date: Tue, 19 Mar 2019 11:19:17 +0100 Subject: [PATCH 226/332] Rename migration.enabled to migration.6_to_7.enabled (#11286) This is to make it more clear this is for the migration from 6.7 to 7.0. --- CHANGELOG.next.asciidoc | 1 + auditbeat/auditbeat.reference.yml | 4 ++-- auditbeat/auditbeat.yml | 4 ++-- filebeat/filebeat.reference.yml | 4 ++-- filebeat/filebeat.yml | 4 ++-- filebeat/tests/system/test_base.py | 2 +- filebeat/tests/system/test_index_pattern.py | 2 +- heartbeat/heartbeat.reference.yml | 4 ++-- heartbeat/heartbeat.yml | 4 ++-- journalbeat/journalbeat.reference.yml | 4 ++-- journalbeat/journalbeat.yml | 4 ++-- libbeat/_meta/config.reference.yml | 4 ++-- libbeat/_meta/config.yml | 4 ++-- libbeat/cmd/export/index_pattern.go | 11 +---------- libbeat/cmd/export/template.go | 11 +---------- libbeat/cmd/instance/beat.go | 13 ++++--------- libbeat/idxmgmt/idxmgmt.go | 2 +- libbeat/tests/system/test_migration.py | 4 ++-- metricbeat/metricbeat.reference.yml | 4 ++-- metricbeat/metricbeat.yml | 4 ++-- metricbeat/tests/system/test_base.py | 2 +- packetbeat/packetbeat.reference.yml | 4 ++-- packetbeat/packetbeat.yml | 4 ++-- winlogbeat/winlogbeat.reference.yml | 4 ++-- winlogbeat/winlogbeat.yml | 4 ++-- x-pack/auditbeat/auditbeat.reference.yml | 4 ++-- x-pack/auditbeat/auditbeat.yml | 4 ++-- x-pack/filebeat/filebeat.reference.yml | 4 ++-- x-pack/filebeat/filebeat.yml | 4 ++-- x-pack/functionbeat/functionbeat.reference.yml | 4 ++-- x-pack/functionbeat/functionbeat.yml | 4 ++-- x-pack/metricbeat/metricbeat.reference.yml | 4 ++-- x-pack/metricbeat/metricbeat.yml | 4 ++-- 33 files changed, 61 insertions(+), 83 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index df9e7acea81..edd32bcca81 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -33,6 +33,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Add `cleanup_timeout` option to docker autodiscover, to wait some time before removing configurations after a container is stopped. {issue]10374[10374] {pull}10905[10905] - On Google Cloud Engine (GCE) the add_cloud_metadata will now trim the project info from the cloud.machine.type and cloud.availability_zone. {issue}10968[10968] +- Rename `migration.enabled` config to `migration.6_to_7.enabled`. {pull}11284[11284] *Auditbeat* diff --git a/auditbeat/auditbeat.reference.yml b/auditbeat/auditbeat.reference.yml index 381b3c04b3d..62412f67731 100644 --- a/auditbeat/auditbeat.reference.yml +++ b/auditbeat/auditbeat.reference.yml @@ -1266,5 +1266,5 @@ logging.files: #================================= Migration ================================== -# This allows to enable migration aliases -#migration.enabled: false +# This allows to enable 6.7 migration aliases +#migration.6_to_7.enabled: false diff --git a/auditbeat/auditbeat.yml b/auditbeat/auditbeat.yml index 65abdbfda3e..82eb5c3919c 100644 --- a/auditbeat/auditbeat.yml +++ b/auditbeat/auditbeat.yml @@ -177,5 +177,5 @@ processors: #================================= Migration ================================== -# This allows to enable migration aliases -#migration.enabled: false +# This allows to enable 6.7 migration aliases +#migration.6_to_7.enabled: false diff --git a/filebeat/filebeat.reference.yml b/filebeat/filebeat.reference.yml index c99d05c9554..a660eb366b8 100644 --- a/filebeat/filebeat.reference.yml +++ b/filebeat/filebeat.reference.yml @@ -1977,5 +1977,5 @@ logging.files: #================================= Migration ================================== -# This allows to enable migration aliases -#migration.enabled: false +# This allows to enable 6.7 migration aliases +#migration.6_to_7.enabled: false diff --git a/filebeat/filebeat.yml b/filebeat/filebeat.yml index c06827965ff..f021664f4a2 100644 --- a/filebeat/filebeat.yml +++ b/filebeat/filebeat.yml @@ -205,5 +205,5 @@ processors: #================================= Migration ================================== -# This allows to enable migration aliases -#migration.enabled: false +# This allows to enable 6.7 migration aliases +#migration.6_to_7.enabled: false diff --git a/filebeat/tests/system/test_base.py b/filebeat/tests/system/test_base.py index c4137f6c7f7..80394e0a34e 100644 --- a/filebeat/tests/system/test_base.py +++ b/filebeat/tests/system/test_base.py @@ -51,7 +51,7 @@ def test_template_migration(self): elasticsearch={"host": self.get_elasticsearch_url()}, ) exit_code = self.run_beat(extra_args=["setup", "--template", - "-E", "setup.template.overwrite=true", "-E", "migration.enabled=true"]) + "-E", "setup.template.overwrite=true", "-E", "migration.6_to_7.enabled=true"]) assert exit_code == 0 assert self.log_contains('Loaded index template') diff --git a/filebeat/tests/system/test_index_pattern.py b/filebeat/tests/system/test_index_pattern.py index 69c0d43d20a..cc3189f02c8 100644 --- a/filebeat/tests/system/test_index_pattern.py +++ b/filebeat/tests/system/test_index_pattern.py @@ -25,7 +25,7 @@ def test_export_index_pattern_migration(self): self.render_config_template() exit_code = self.run_beat( logging_args=[], - extra_args=["export", "index-pattern", "-E", "migration.enabled:true"]) + extra_args=["export", "index-pattern", "-E", "migration.6_to_7.enabled:true"]) assert exit_code == 0 assert self.log_contains('"objects": [') diff --git a/heartbeat/heartbeat.reference.yml b/heartbeat/heartbeat.reference.yml index 2914a427fbd..a7c7be6677f 100644 --- a/heartbeat/heartbeat.reference.yml +++ b/heartbeat/heartbeat.reference.yml @@ -1410,5 +1410,5 @@ logging.files: #================================= Migration ================================== -# This allows to enable migration aliases -#migration.enabled: false +# This allows to enable 6.7 migration aliases +#migration.6_to_7.enabled: false diff --git a/heartbeat/heartbeat.yml b/heartbeat/heartbeat.yml index 150750d4a38..b8d5d428e2d 100644 --- a/heartbeat/heartbeat.yml +++ b/heartbeat/heartbeat.yml @@ -154,5 +154,5 @@ output.elasticsearch: #================================= Migration ================================== -# This allows to enable migration aliases -#migration.enabled: false +# This allows to enable 6.7 migration aliases +#migration.6_to_7.enabled: false diff --git a/journalbeat/journalbeat.reference.yml b/journalbeat/journalbeat.reference.yml index f72f40318a5..f9ad8dab8d2 100644 --- a/journalbeat/journalbeat.reference.yml +++ b/journalbeat/journalbeat.reference.yml @@ -1206,5 +1206,5 @@ logging.files: #================================= Migration ================================== -# This allows to enable migration aliases -#migration.enabled: false +# This allows to enable 6.7 migration aliases +#migration.6_to_7.enabled: false diff --git a/journalbeat/journalbeat.yml b/journalbeat/journalbeat.yml index daa8b40e0e3..6e6df31c98d 100644 --- a/journalbeat/journalbeat.yml +++ b/journalbeat/journalbeat.yml @@ -174,5 +174,5 @@ processors: #================================= Migration ================================== -# This allows to enable migration aliases -#migration.enabled: false +# This allows to enable 6.7 migration aliases +#migration.6_to_7.enabled: false diff --git a/libbeat/_meta/config.reference.yml b/libbeat/_meta/config.reference.yml index 88145350c82..6491383ac5c 100644 --- a/libbeat/_meta/config.reference.yml +++ b/libbeat/_meta/config.reference.yml @@ -1154,5 +1154,5 @@ logging.files: #================================= Migration ================================== -# This allows to enable migration aliases -#migration.enabled: false +# This allows to enable 6.7 migration aliases +#migration.6_to_7.enabled: false diff --git a/libbeat/_meta/config.yml b/libbeat/_meta/config.yml index 9364f344a39..3af7faef7ac 100644 --- a/libbeat/_meta/config.yml +++ b/libbeat/_meta/config.yml @@ -122,5 +122,5 @@ processors: #================================= Migration ================================== -# This allows to enable migration aliases -#migration.enabled: false +# This allows to enable 6.7 migration aliases +#migration.6_to_7.enabled: false diff --git a/libbeat/cmd/export/index_pattern.go b/libbeat/cmd/export/index_pattern.go index c5756c0d5de..3e0f688ffcd 100644 --- a/libbeat/cmd/export/index_pattern.go +++ b/libbeat/cmd/export/index_pattern.go @@ -49,21 +49,12 @@ func GenIndexPatternConfigCmd(settings instance.Settings) *cobra.Command { version = b.Info.Version } - var withMigration bool - if b.RawConfig.HasField("migration") { - sub, err := b.RawConfig.Child("migration", -1) - if err != nil { - fatalf("Failed to read migration setting: %+v", err) - } - withMigration = sub.Enabled() - } - // Index pattern generation v, err := common.NewVersion(version) if err != nil { fatalf("Error creating version: %+v", err) } - indexPattern, err := kibana.NewGenerator(b.Info.IndexPrefix, b.Info.Beat, b.Fields, settings.Version, *v, withMigration) + indexPattern, err := kibana.NewGenerator(b.Info.IndexPrefix, b.Info.Beat, b.Fields, settings.Version, *v, b.Config.Migration.Enabled()) if err != nil { log.Fatal(err) } diff --git a/libbeat/cmd/export/template.go b/libbeat/cmd/export/template.go index f24fbed6dee..0aafa20506f 100644 --- a/libbeat/cmd/export/template.go +++ b/libbeat/cmd/export/template.go @@ -74,16 +74,7 @@ func GenTemplateConfigCmd(settings instance.Settings) *cobra.Command { tmplCfg = template.DefaultConfig() } - var withMigration bool - if b.RawConfig.HasField("migration") { - sub, err := b.RawConfig.Child("migration", -1) - if err != nil { - fatalf("Failed to read migration setting: %+v", err) - } - withMigration = sub.Enabled() - } - - tmpl, err := template.New(b.Info.Version, index, *esVersion, tmplCfg, withMigration) + tmpl, err := template.New(b.Info.Version, index, *esVersion, tmplCfg, b.Config.Migration.Enabled()) if err != nil { fatalf("Error generating template: %+v", err) } diff --git a/libbeat/cmd/instance/beat.go b/libbeat/cmd/instance/beat.go index 520623a235d..40e647ea5dc 100644 --- a/libbeat/cmd/instance/beat.go +++ b/libbeat/cmd/instance/beat.go @@ -110,6 +110,9 @@ type beatConfig struct { // elastic stack 'setup' configurations Dashboards *common.Config `config:"setup.dashboards"` Kibana *common.Config `config:"setup.kibana"` + + // Migration config to migration from 6 to 7 + Migration *common.Config `config:"migration.6_to_7"` } var debugf = logp.MakeDebug("beat") @@ -694,14 +697,6 @@ func (b *Beat) loadDashboards(ctx context.Context, force bool) error { } if b.Config.Dashboards.Enabled() { - var withMigration bool - if b.RawConfig.HasField("migration") { - sub, err := b.RawConfig.Child("migration", -1) - if err != nil { - return fmt.Errorf("Failed to read migration setting: %+v", err) - } - withMigration = sub.Enabled() - } // Initialize kibana config. If username and password is set in elasticsearch output config but not in kibana, // initKibanaConfig will attach the ussername and password into kibana config as a part of the initialization. @@ -718,7 +713,7 @@ func (b *Beat) loadDashboards(ctx context.Context, force bool) error { // but it's assumed that KB and ES have the same minor version. v := client.GetVersion() - indexPattern, err := kibana.NewGenerator(b.Info.IndexPrefix, b.Info.Beat, b.Fields, b.Info.Version, v, withMigration) + indexPattern, err := kibana.NewGenerator(b.Info.IndexPrefix, b.Info.Beat, b.Fields, b.Info.Version, v, b.Config.Migration.Enabled()) if err != nil { return fmt.Errorf("error creating index pattern generator: %v", err) } diff --git a/libbeat/idxmgmt/idxmgmt.go b/libbeat/idxmgmt/idxmgmt.go index b2f7f38568e..6ee86354c3f 100644 --- a/libbeat/idxmgmt/idxmgmt.go +++ b/libbeat/idxmgmt/idxmgmt.go @@ -98,7 +98,7 @@ func MakeDefaultSupport(ilmSupport ilm.SupportFactory) SupportFactory { ILM *common.Config `config:"setup.ilm"` Template *common.Config `config:"setup.template"` Output common.ConfigNamespace `config:"output"` - Migration *common.Config `config:"migration"` + Migration *common.Config `config:"migration.6_to_7"` }{} if configRoot != nil { if err := configRoot.Unpack(&cfg); err != nil { diff --git a/libbeat/tests/system/test_migration.py b/libbeat/tests/system/test_migration.py index eddd6e9a96b..6f2399589bd 100644 --- a/libbeat/tests/system/test_migration.py +++ b/libbeat/tests/system/test_migration.py @@ -47,7 +47,7 @@ def test_migration_false(self): extra_args=[ "export", "template", "-E", "setup.template.fields=" + self.fields_path, - "-E", "migration.enabled=false", + "-E", "migration.6_to_7.enabled=false", ], config="libbeat.yml") @@ -64,7 +64,7 @@ def test_migration_true(self): extra_args=[ "export", "template", "-E", "setup.template.fields=" + self.fields_path, - "-E", "migration.enabled=true", + "-E", "migration.6_to_7.enabled=true", ], config="libbeat.yml") diff --git a/metricbeat/metricbeat.reference.yml b/metricbeat/metricbeat.reference.yml index d34a25c95f4..14e6ae0ec35 100644 --- a/metricbeat/metricbeat.reference.yml +++ b/metricbeat/metricbeat.reference.yml @@ -1874,5 +1874,5 @@ logging.files: #================================= Migration ================================== -# This allows to enable migration aliases -#migration.enabled: false +# This allows to enable 6.7 migration aliases +#migration.6_to_7.enabled: false diff --git a/metricbeat/metricbeat.yml b/metricbeat/metricbeat.yml index 52916c295de..ce6926f5736 100644 --- a/metricbeat/metricbeat.yml +++ b/metricbeat/metricbeat.yml @@ -149,5 +149,5 @@ processors: #================================= Migration ================================== -# This allows to enable migration aliases -#migration.enabled: false +# This allows to enable 6.7 migration aliases +#migration.6_to_7.enabled: false diff --git a/metricbeat/tests/system/test_base.py b/metricbeat/tests/system/test_base.py index 146cdd064ac..be48ff074a4 100644 --- a/metricbeat/tests/system/test_base.py +++ b/metricbeat/tests/system/test_base.py @@ -92,7 +92,7 @@ def test_migration(self): elasticsearch={"host": self.get_elasticsearch_url()}, ) exit_code = self.run_beat(extra_args=["setup", "--template", - "-E", "setup.template.overwrite=true", "-E", "migration.enabled=true"]) + "-E", "setup.template.overwrite=true", "-E", "migration.6_to_7.enabled=true"]) assert exit_code == 0 assert self.log_contains('Loaded index template') diff --git a/packetbeat/packetbeat.reference.yml b/packetbeat/packetbeat.reference.yml index 1eb03dae601..30a3e7ebb0d 100644 --- a/packetbeat/packetbeat.reference.yml +++ b/packetbeat/packetbeat.reference.yml @@ -1634,5 +1634,5 @@ logging.files: #================================= Migration ================================== -# This allows to enable migration aliases -#migration.enabled: false +# This allows to enable 6.7 migration aliases +#migration.6_to_7.enabled: false diff --git a/packetbeat/packetbeat.yml b/packetbeat/packetbeat.yml index d7b75fe695d..02b9db547cf 100644 --- a/packetbeat/packetbeat.yml +++ b/packetbeat/packetbeat.yml @@ -231,5 +231,5 @@ processors: #================================= Migration ================================== -# This allows to enable migration aliases -#migration.enabled: false +# This allows to enable 6.7 migration aliases +#migration.6_to_7.enabled: false diff --git a/winlogbeat/winlogbeat.reference.yml b/winlogbeat/winlogbeat.reference.yml index b13c6253ff8..3e2f4b3f2e3 100644 --- a/winlogbeat/winlogbeat.reference.yml +++ b/winlogbeat/winlogbeat.reference.yml @@ -1183,5 +1183,5 @@ logging.files: #================================= Migration ================================== -# This allows to enable migration aliases -#migration.enabled: false +# This allows to enable 6.7 migration aliases +#migration.6_to_7.enabled: false diff --git a/winlogbeat/winlogbeat.yml b/winlogbeat/winlogbeat.yml index f0cbb3092ed..9030a4cc12f 100644 --- a/winlogbeat/winlogbeat.yml +++ b/winlogbeat/winlogbeat.yml @@ -153,5 +153,5 @@ processors: #================================= Migration ================================== -# This allows to enable migration aliases -#migration.enabled: false +# This allows to enable 6.7 migration aliases +#migration.6_to_7.enabled: false diff --git a/x-pack/auditbeat/auditbeat.reference.yml b/x-pack/auditbeat/auditbeat.reference.yml index 25eb815890f..06409690e8a 100644 --- a/x-pack/auditbeat/auditbeat.reference.yml +++ b/x-pack/auditbeat/auditbeat.reference.yml @@ -1301,5 +1301,5 @@ logging.files: #================================= Migration ================================== -# This allows to enable migration aliases -#migration.enabled: false +# This allows to enable 6.7 migration aliases +#migration.6_to_7.enabled: false diff --git a/x-pack/auditbeat/auditbeat.yml b/x-pack/auditbeat/auditbeat.yml index bd5296e0c5f..b6b07bad222 100644 --- a/x-pack/auditbeat/auditbeat.yml +++ b/x-pack/auditbeat/auditbeat.yml @@ -199,5 +199,5 @@ processors: #================================= Migration ================================== -# This allows to enable migration aliases -#migration.enabled: false +# This allows to enable 6.7 migration aliases +#migration.6_to_7.enabled: false diff --git a/x-pack/filebeat/filebeat.reference.yml b/x-pack/filebeat/filebeat.reference.yml index dace07bf644..1d92c6bd61a 100644 --- a/x-pack/filebeat/filebeat.reference.yml +++ b/x-pack/filebeat/filebeat.reference.yml @@ -2056,5 +2056,5 @@ logging.files: #================================= Migration ================================== -# This allows to enable migration aliases -#migration.enabled: false +# This allows to enable 6.7 migration aliases +#migration.6_to_7.enabled: false diff --git a/x-pack/filebeat/filebeat.yml b/x-pack/filebeat/filebeat.yml index c06827965ff..f021664f4a2 100644 --- a/x-pack/filebeat/filebeat.yml +++ b/x-pack/filebeat/filebeat.yml @@ -205,5 +205,5 @@ processors: #================================= Migration ================================== -# This allows to enable migration aliases -#migration.enabled: false +# This allows to enable 6.7 migration aliases +#migration.6_to_7.enabled: false diff --git a/x-pack/functionbeat/functionbeat.reference.yml b/x-pack/functionbeat/functionbeat.reference.yml index 7184c2f40ac..6aa338385a5 100644 --- a/x-pack/functionbeat/functionbeat.reference.yml +++ b/x-pack/functionbeat/functionbeat.reference.yml @@ -1299,5 +1299,5 @@ logging.files: #================================= Migration ================================== -# This allows to enable migration aliases -#migration.enabled: false +# This allows to enable 6.7 migration aliases +#migration.6_to_7.enabled: false diff --git a/x-pack/functionbeat/functionbeat.yml b/x-pack/functionbeat/functionbeat.yml index 73ab5b1cca3..95051fd4386 100644 --- a/x-pack/functionbeat/functionbeat.yml +++ b/x-pack/functionbeat/functionbeat.yml @@ -275,5 +275,5 @@ processors: #================================= Migration ================================== -# This allows to enable migration aliases -#migration.enabled: false +# This allows to enable 6.7 migration aliases +#migration.6_to_7.enabled: false diff --git a/x-pack/metricbeat/metricbeat.reference.yml b/x-pack/metricbeat/metricbeat.reference.yml index 37dff29caae..40bb1694cce 100644 --- a/x-pack/metricbeat/metricbeat.reference.yml +++ b/x-pack/metricbeat/metricbeat.reference.yml @@ -1903,5 +1903,5 @@ logging.files: #================================= Migration ================================== -# This allows to enable migration aliases -#migration.enabled: false +# This allows to enable 6.7 migration aliases +#migration.6_to_7.enabled: false diff --git a/x-pack/metricbeat/metricbeat.yml b/x-pack/metricbeat/metricbeat.yml index 52916c295de..ce6926f5736 100644 --- a/x-pack/metricbeat/metricbeat.yml +++ b/x-pack/metricbeat/metricbeat.yml @@ -149,5 +149,5 @@ processors: #================================= Migration ================================== -# This allows to enable migration aliases -#migration.enabled: false +# This allows to enable 6.7 migration aliases +#migration.6_to_7.enabled: false From 68cc3fdc98ab4ac8b03e366df9c8a40907aa84f1 Mon Sep 17 00:00:00 2001 From: Alex K <8418476+fearful-symmetry@users.noreply.github.com> Date: Tue, 19 Mar 2019 08:04:35 -0500 Subject: [PATCH 227/332] Update mysql/status to ReporterV2 (#11295) --- metricbeat/module/mysql/status/status.go | 19 +++++++------- .../mysql/status/status_integration_test.go | 26 ++++++++++--------- 2 files changed, 23 insertions(+), 22 deletions(-) diff --git a/metricbeat/module/mysql/status/status.go b/metricbeat/module/mysql/status/status.go index edcc1045255..e8fd6a9ee00 100644 --- a/metricbeat/module/mysql/status/status.go +++ b/metricbeat/module/mysql/status/status.go @@ -26,18 +26,12 @@ package status import ( "database/sql" - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/module/mysql" "github.com/pkg/errors" ) -var ( - debugf = logp.MakeDebug("mysql-status") -) - func init() { mb.Registry.MustAddMetricSet("mysql", "status", New, mb.WithHostParser(mysql.ParseDSN), @@ -57,18 +51,18 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { } // Fetch fetches status messages from a mysql host. -func (m *MetricSet) Fetch() (common.MapStr, error) { +func (m *MetricSet) Fetch(reporter mb.ReporterV2) error { if m.db == nil { var err error m.db, err = mysql.NewDB(m.HostData().URI) if err != nil { - return nil, errors.Wrap(err, "mysql-status fetch failed") + return errors.Wrap(err, "mysql-status fetch failed") } } status, err := m.loadStatus(m.db) if err != nil { - return nil, err + return err } event := eventMapping(status) @@ -76,7 +70,12 @@ func (m *MetricSet) Fetch() (common.MapStr, error) { if m.Module().Config().Raw { event["raw"] = rawEventMapping(status) } - return event, nil + + reporter.Event(mb.Event{ + MetricSetFields: event, + }) + + return nil } // loadStatus loads all status entries from the given database into an array. diff --git a/metricbeat/module/mysql/status/status_integration_test.go b/metricbeat/module/mysql/status/status_integration_test.go index 7ccc0a77ef5..bc7bf8e40e9 100644 --- a/metricbeat/module/mysql/status/status_integration_test.go +++ b/metricbeat/module/mysql/status/status_integration_test.go @@ -33,12 +33,13 @@ import ( func TestFetch(t *testing.T) { compose.EnsureUp(t, "mysql") - f := mbtest.NewEventFetcher(t, getConfig(false)) - event, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() + f := mbtest.NewReportingMetricSetV2Error(t, getConfig(false)) + events, errs := mbtest.ReportingFetchV2Error(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 errors, had %d. %v\n", len(errs), errs) } - + assert.NotEmpty(t, events) + event := events[0].MetricSetFields t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) // Check event fields @@ -57,12 +58,13 @@ func TestFetch(t *testing.T) { func TestFetchRaw(t *testing.T) { compose.EnsureUp(t, "mysql") - f := mbtest.NewEventFetcher(t, getConfig(true)) - event, err := f.Fetch() - if !assert.NoError(t, err) { - t.FailNow() + f := mbtest.NewReportingMetricSetV2Error(t, getConfig(true)) + events, errs := mbtest.ReportingFetchV2Error(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 errors, had %d. %v\n", len(errs), errs) } - + assert.NotEmpty(t, events) + event := events[0].MetricSetFields t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) // Check event fields @@ -81,9 +83,9 @@ func TestFetchRaw(t *testing.T) { } func TestData(t *testing.T) { - f := mbtest.NewEventFetcher(t, getConfig(false)) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig(false)) - err := mbtest.WriteEvent(f, t) + err := mbtest.WriteEventsReporterV2Error(f, t, "") if err != nil { t.Fatal("write", err) } From d3dda318a59866d7aa703425357ca63db9f2fff4 Mon Sep 17 00:00:00 2001 From: Gil Raphaelli Date: Tue, 19 Mar 2019 11:25:15 -0400 Subject: [PATCH 228/332] update index prefix in outputconfig docs (#11300) for APM, where beatname_lc=apm-server but beat_default_index_prefix=apm --- libbeat/docs/outputconfig.asciidoc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/libbeat/docs/outputconfig.asciidoc b/libbeat/docs/outputconfig.asciidoc index 3bcd6c5f40e..2223227ded8 100644 --- a/libbeat/docs/outputconfig.asciidoc +++ b/libbeat/docs/outputconfig.asciidoc @@ -60,7 +60,7 @@ Example configuration: output.elasticsearch: hosts: ["https://localhost:9200"] - index: "{beatname_lc}-%{[{beat_version_key}]}-%{+yyyy.MM.dd}" + index: "{beat_default_index_prefix}-%{[{beat_version_key}]}-%{+yyyy.MM.dd}" ssl.certificate_authorities: ["/etc/pki/root/ca.pem"] ssl.certificate: "/etc/pki/client/cert.pem" ssl.key: "/etc/pki/client/cert.key" @@ -548,7 +548,7 @@ use in Logstash for indexing and filtering: { ... "@metadata": { <1> - "beat": "{beatname_lc}", <2> + "beat": "{beat_default_index_prefix}", <2> "version": "{stack-version}" <3> "type": "doc" <4> } @@ -557,7 +557,7 @@ use in Logstash for indexing and filtering: <1> {beatname_uc} uses the `@metadata` field to send metadata to Logstash. See the {logstash-ref}/event-dependent-configuration.html#metadata[Logstash documentation] for more about the `@metadata` field. -<2> The default is {beatname_lc}. To change this value, set the +<2> The default is {beat_default_index_prefix}. To change this value, set the <> option in the {beatname_uc} config file. <3> The beats current version. <4> The value of `type` is currently hardcoded to `doc`. It was used by previous @@ -594,7 +594,7 @@ output { of the `beat` metadata field, `%{[@metadata][version]}` sets the second part to the Beat's version, and `%{+YYYY.MM.dd}` sets the third part of the name to a date based on the Logstash `@timestamp` field. For example: -+{beatname_lc}-{version}-2017.03.29+. ++{beat_default_index_prefix}-{version}-2017.03.29+. Events indexed into Elasticsearch with the Logstash configuration shown here will be similar to events directly indexed by Beats into Elasticsearch. @@ -714,8 +714,8 @@ that when a proxy is used the name resolution occurs on the proxy server. ===== `index` The index root name to write events to. The default is the Beat name. For -example +"{beatname_lc}"+ generates +"[{beatname_lc}-]{version}-YYYY.MM.DD"+ -indices (for example, +"{beatname_lc}-{version}-2017.04.26"+). +example +"{beat_default_index_prefix}"+ generates +"[{beat_default_index_prefix}-]{version}-YYYY.MM.DD"+ +indices (for example, +"{beat_default_index_prefix}-{version}-2017.04.26"+). ===== `ssl` From d5ccedc1800bec2c30f98055bfacc25c46b5f20e Mon Sep 17 00:00:00 2001 From: Kirk Crane Date: Tue, 19 Mar 2019 11:39:56 -0400 Subject: [PATCH 229/332] avoid filebeat test failure on big endian machines (#11291) * Fix test failure of auditbeat for s390x * avoid filebeat test failure on big endian machines --- filebeat/tests/system/test_harvester.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/filebeat/tests/system/test_harvester.py b/filebeat/tests/system/test_harvester.py index 8f394f38b81..2d2f640d045 100644 --- a/filebeat/tests/system/test_harvester.py +++ b/filebeat/tests/system/test_harvester.py @@ -792,12 +792,12 @@ def test_decode_error(self): logfile = self.working_dir + "/log/test.log" - with io.open(logfile, 'w', encoding="utf-16") as file: + with io.open(logfile, 'w', encoding="utf-16le") as file: file.write(u'hello world1') file.write(u"\n") - with io.open(logfile, 'a', encoding="utf-16") as file: + with io.open(logfile, 'a', encoding="utf-16le") as file: file.write(u"\U00012345=Ra") - with io.open(logfile, 'a', encoding="utf-16") as file: + with io.open(logfile, 'a', encoding="utf-16le") as file: file.write(u"\n") file.write(u"hello world2") file.write(u"\n") From 1cdc88b876b5adb695f759525368db2b1d21a437 Mon Sep 17 00:00:00 2001 From: Jaime Soriano Pastor Date: Tue, 19 Mar 2019 18:27:57 +0100 Subject: [PATCH 230/332] Add default timeouts to metricbeat HTTP helpers (#11032) Set a default request timeout of 10 seconds to metricbeat HTTP helpers so there are less chances of leaking established connections. Add a connection timeout that defaults to two seconds so connections fail fast in case of network connectivity problems. --- CHANGELOG.next.asciidoc | 1 + metricbeat/docs/metricbeat-options.asciidoc | 10 ++++ metricbeat/helper/config.go | 40 ++++++++++++++ metricbeat/helper/http.go | 42 ++++++++------- metricbeat/helper/http_test.go | 60 +++++++++++++++++++++ 5 files changed, 133 insertions(+), 20 deletions(-) create mode 100644 metricbeat/helper/config.go diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index edd32bcca81..75d06defc4d 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -99,6 +99,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Update haproxy.* fields to map to ECS. {pull}10558[10558] {pull}10568[10568] - Collect all EC2 meta data from all instances in all states. {pull}10628[10628] - Migrate docker module to ECS. {pull}10927[10927] +- Add connection and request timeouts for HTTP helper. {pull}11032[11032] - Add new option `OpMultiplyBuckets` to scale histogram buckets to avoid decimal points in final events {pull}10994[10994] *Packetbeat* diff --git a/metricbeat/docs/metricbeat-options.asciidoc b/metricbeat/docs/metricbeat-options.asciidoc index 10e75d025e6..6b0d39fbc74 100644 --- a/metricbeat/docs/metricbeat-options.asciidoc +++ b/metricbeat/docs/metricbeat-options.asciidoc @@ -224,6 +224,16 @@ The username to use for basic authentication. The password to use for basic authentication. +[float] +==== `connect_timeout` + +Total time limit for an HTTP connection to be completed (Default: 2 seconds). + +[float] +==== `timeout` + +Total time limit for HTTP requests made by the module (Default: 10 seconds). + [float] ==== `ssl` diff --git a/metricbeat/helper/config.go b/metricbeat/helper/config.go new file mode 100644 index 00000000000..1c4c8fd6ddc --- /dev/null +++ b/metricbeat/helper/config.go @@ -0,0 +1,40 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package helper + +import ( + "time" + + "github.com/elastic/beats/libbeat/common/transport/tlscommon" +) + +// Config for an HTTP helper +type Config struct { + TLS *tlscommon.Config `config:"ssl"` + ConnectTimeout time.Duration `config:"connect_timeout"` + Timeout time.Duration `config:"timeout"` + Headers map[string]string `config:"headers"` + BearerTokenFile string `config:"bearer_token_file"` +} + +func defaultConfig() Config { + return Config{ + ConnectTimeout: 2 * time.Second, + Timeout: 10 * time.Second, + } +} diff --git a/metricbeat/helper/http.go b/metricbeat/helper/http.go index b01fa781885..1f738b97d18 100644 --- a/metricbeat/helper/http.go +++ b/metricbeat/helper/http.go @@ -25,7 +25,6 @@ import ( "io" "io/ioutil" "net/http" - "time" "github.com/pkg/errors" @@ -35,26 +34,27 @@ import ( ) type HTTP struct { - base mb.BaseMetricSet - client *http.Client // HTTP client that is reused across requests. - headers map[string]string - uri string - method string - body []byte + hostData mb.HostData + client *http.Client // HTTP client that is reused across requests. + headers map[string]string + name string + uri string + method string + body []byte } // NewHTTP creates new http helper func NewHTTP(base mb.BaseMetricSet) (*HTTP, error) { - config := struct { - TLS *tlscommon.Config `config:"ssl"` - Timeout time.Duration `config:"timeout"` - Headers map[string]string `config:"headers"` - BearerTokenFile string `config:"bearer_token_file"` - }{} + config := defaultConfig() if err := base.Module().UnpackConfig(&config); err != nil { return nil, err } + return newHTTPFromConfig(config, base.Name(), base.HostData()) +} + +// newHTTPWithConfig creates a new http helper from some configuration +func newHTTPFromConfig(config Config, name string, hostData mb.HostData) (*HTTP, error) { if config.Headers == nil { config.Headers = map[string]string{} } @@ -74,14 +74,13 @@ func NewHTTP(base mb.BaseMetricSet) (*HTTP, error) { var dialer, tlsDialer transport.Dialer - dialer = transport.NetDialer(config.Timeout) - tlsDialer, err = transport.TLSDialer(dialer, tlsConfig, config.Timeout) + dialer = transport.NetDialer(config.ConnectTimeout) + tlsDialer, err = transport.TLSDialer(dialer, tlsConfig, config.ConnectTimeout) if err != nil { return nil, err } return &HTTP{ - base: base, client: &http.Client{ Transport: &http.Transport{ Dial: dialer.Dial, @@ -91,7 +90,7 @@ func NewHTTP(base mb.BaseMetricSet) (*HTTP, error) { }, headers: config.Headers, method: "GET", - uri: base.HostData().SanitizedURI, + uri: hostData.SanitizedURI, body: nil, }, nil } @@ -107,8 +106,11 @@ func (h *HTTP) FetchResponse() (*http.Response, error) { } req, err := http.NewRequest(h.method, h.uri, reader) - if h.base.HostData().User != "" || h.base.HostData().Password != "" { - req.SetBasicAuth(h.base.HostData().User, h.base.HostData().Password) + if err != nil { + return nil, errors.Wrap(err, "failed to create HTTP request") + } + if h.hostData.User != "" || h.hostData.Password != "" { + req.SetBasicAuth(h.hostData.User, h.hostData.Password) } for k, v := range h.headers { @@ -157,7 +159,7 @@ func (h *HTTP) FetchContent() ([]byte, error) { defer resp.Body.Close() if resp.StatusCode != 200 { - return nil, fmt.Errorf("HTTP error %d in %s: %s", resp.StatusCode, h.base.Name(), resp.Status) + return nil, fmt.Errorf("HTTP error %d in %s: %s", resp.StatusCode, h.name, resp.Status) } return ioutil.ReadAll(resp.Body) diff --git a/metricbeat/helper/http_test.go b/metricbeat/helper/http_test.go index a3e5d615e4d..aee80166fa2 100644 --- a/metricbeat/helper/http_test.go +++ b/metricbeat/helper/http_test.go @@ -19,10 +19,16 @@ package helper import ( "io/ioutil" + "net/http" + "net/http/httptest" "os" "testing" + "time" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/elastic/beats/metricbeat/mb" ) func TestGetAuthHeaderFromToken(t *testing.T) { @@ -69,3 +75,57 @@ func TestGetAuthHeaderFromTokenNoFile(t *testing.T) { assert.Equal(t, "", header) assert.Error(t, err) } + +func TestTimeout(t *testing.T) { + c := make(chan struct{}) + defer close(c) + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + <-c + })) + defer ts.Close() + + cfg := defaultConfig() + cfg.Timeout = 1 * time.Nanosecond + hostData := mb.HostData{ + URI: ts.URL, + SanitizedURI: ts.URL, + } + + h, err := newHTTPFromConfig(cfg, "test", hostData) + require.NoError(t, err) + + checkTimeout(t, h) +} + +func TestConnectTimeout(t *testing.T) { + // This IP shouldn't exist, 192.0.2.0/24 is reserved for testing + uri := "http://192.0.2.42" + cfg := defaultConfig() + cfg.ConnectTimeout = 1 * time.Nanosecond + hostData := mb.HostData{ + URI: uri, + SanitizedURI: uri, + } + + h, err := newHTTPFromConfig(cfg, "test", hostData) + require.NoError(t, err) + + checkTimeout(t, h) +} + +func checkTimeout(t *testing.T, h *HTTP) { + t.Helper() + + done := make(chan struct{}) + go func() { + _, err := h.FetchResponse() + assert.Error(t, err) + done <- struct{}{} + }() + + select { + case <-done: + case <-time.After(1 * time.Second): + t.Fatal("timeout should have happened time ago") + } +} From cb23a8ed0f478e734fc5d143ff64a0e89a8f9844 Mon Sep 17 00:00:00 2001 From: Chris Mark Date: Tue, 19 Mar 2019 19:38:59 +0200 Subject: [PATCH 231/332] Coredns metricbeat module (#10585) Co-Authored-By: Ioannis Androulidakis --- CHANGELOG.next.asciidoc | 1 + metricbeat/docker-compose.yml | 4 + metricbeat/docs/fields.asciidoc | 224 ++++++++++++++++ metricbeat/docs/modules/coredns.asciidoc | 37 +++ .../docs/modules/coredns/stats.asciidoc | 17 ++ metricbeat/docs/modules_list.asciidoc | 3 + metricbeat/include/list.go | 2 + metricbeat/metricbeat.reference.yml | 6 + metricbeat/module/coredns/_meta/Dockerfile | 25 ++ .../module/coredns/_meta/config.reference.yml | 4 + metricbeat/module/coredns/_meta/config.yml | 4 + .../module/coredns/_meta/config/Corefile | 39 +++ .../coredns/_meta/config/mydomain.hosts | 4 + metricbeat/module/coredns/_meta/docs.asciidoc | 2 + metricbeat/module/coredns/_meta/env | 2 + metricbeat/module/coredns/_meta/fields.yml | 11 + metricbeat/module/coredns/doc.go | 19 ++ metricbeat/module/coredns/fields.go | 36 +++ .../coredns/stats/_meta/data_panic_event.json | 28 ++ .../stats/_meta/data_request_count_event.json | 34 +++ .../_meta/data_request_duration_ns_event.json | 54 ++++ .../stats/_meta/data_request_type_event.json | 35 +++ .../_meta/data_response_rcode_event.json | 35 +++ .../stats/_meta/data_size_bytes_event.json | 78 ++++++ .../module/coredns/stats/_meta/docs.asciidoc | 1 + .../module/coredns/stats/_meta/fields.yml | 90 +++++++ .../module/coredns/stats/_meta/test/metrics | 240 ++++++++++++++++++ .../coredns/stats/_meta/test/metrics.expected | 217 ++++++++++++++++ metricbeat/module/coredns/stats/stats.go | 53 ++++ .../coredns/stats/stats_integration_test.go | 89 +++++++ metricbeat/module/coredns/stats/stats_test.go | 37 +++ metricbeat/modules.d/coredns.yml.disabled | 7 + metricbeat/tests/system/test_coredns.py | 39 +++ x-pack/metricbeat/metricbeat.reference.yml | 6 + 34 files changed, 1483 insertions(+) create mode 100644 metricbeat/docs/modules/coredns.asciidoc create mode 100644 metricbeat/docs/modules/coredns/stats.asciidoc create mode 100644 metricbeat/module/coredns/_meta/Dockerfile create mode 100644 metricbeat/module/coredns/_meta/config.reference.yml create mode 100644 metricbeat/module/coredns/_meta/config.yml create mode 100644 metricbeat/module/coredns/_meta/config/Corefile create mode 100644 metricbeat/module/coredns/_meta/config/mydomain.hosts create mode 100644 metricbeat/module/coredns/_meta/docs.asciidoc create mode 100644 metricbeat/module/coredns/_meta/env create mode 100644 metricbeat/module/coredns/_meta/fields.yml create mode 100644 metricbeat/module/coredns/doc.go create mode 100644 metricbeat/module/coredns/fields.go create mode 100644 metricbeat/module/coredns/stats/_meta/data_panic_event.json create mode 100644 metricbeat/module/coredns/stats/_meta/data_request_count_event.json create mode 100644 metricbeat/module/coredns/stats/_meta/data_request_duration_ns_event.json create mode 100644 metricbeat/module/coredns/stats/_meta/data_request_type_event.json create mode 100644 metricbeat/module/coredns/stats/_meta/data_response_rcode_event.json create mode 100644 metricbeat/module/coredns/stats/_meta/data_size_bytes_event.json create mode 100644 metricbeat/module/coredns/stats/_meta/docs.asciidoc create mode 100644 metricbeat/module/coredns/stats/_meta/fields.yml create mode 100644 metricbeat/module/coredns/stats/_meta/test/metrics create mode 100644 metricbeat/module/coredns/stats/_meta/test/metrics.expected create mode 100644 metricbeat/module/coredns/stats/stats.go create mode 100644 metricbeat/module/coredns/stats/stats_integration_test.go create mode 100644 metricbeat/module/coredns/stats/stats_test.go create mode 100644 metricbeat/modules.d/coredns.yml.disabled create mode 100644 metricbeat/tests/system/test_coredns.py diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 75d06defc4d..aaafc097bf5 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -353,6 +353,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Add AWS SQS metricset. {pull}10684[10684] {issue}10053[10053] - Add AWS s3_request metricset. {pull}10949[10949] {issue}10055[10055] - Add s3_daily_storage metricset. {pull}10940[10940] {issue}10055[10055] +- Add `coredns` metricbeat module. {pull}10585{10585] *Packetbeat* diff --git a/metricbeat/docker-compose.yml b/metricbeat/docker-compose.yml index c987f374560..9b4a4c77852 100644 --- a/metricbeat/docker-compose.yml +++ b/metricbeat/docker-compose.yml @@ -16,6 +16,7 @@ services: - ./module/apache/_meta/env - ./module/ceph/_meta/env - ./module/consul/_meta/env + - ./module/coredns/_meta/env - ./module/couchbase/_meta/env - ./module/couchdb/_meta/env - ./module/dropwizard/_meta/env @@ -63,6 +64,9 @@ services: consul: build: ./module/consul/_meta + coredns: + build: ./module/coredns/_meta + couchbase: build: ./module/couchbase/_meta diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index c62d528e624..3fa49552947 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -20,6 +20,7 @@ grouped in the following categories: * <> * <> * <> +* <> * <> * <> * <> @@ -2565,6 +2566,229 @@ type: long Nanoseconds consumed by stop-the-world garbage collection pauses since Consul started. +-- + +[[exported-fields-coredns]] +== coredns fields + +coredns Module + + + +[float] +== coredns fields + +`coredns` contains statistics that were read from coreDNS + + + +[float] +== stats fields + +Contains statistics related to the coreDNS service + + + +*`coredns.stats.panic.count.total`*:: ++ +-- +type: long + +Total number of panics + + +-- + +*`coredns.stats.dns.request.count.total`*:: ++ +-- +type: long + +Total query count + + +-- + +*`coredns.stats.dns.request.duration.ns.bucket.*`*:: ++ +-- +type: object + +Request duration histogram buckets in nanoseconds + + +-- + +*`coredns.stats.dns.request.duration.ns.sum`*:: ++ +-- +type: long + +format: duration + +Requests duration, sum of durations in nanoseconds + + +-- + +*`coredns.stats.dns.request.duration.ns.count`*:: ++ +-- +type: long + +Requests duration, number of requests + + +-- + +*`coredns.stats.dns.request.size.bytes.bucket.*`*:: ++ +-- +type: object + +Request Size histogram buckets + + +-- + +*`coredns.stats.dns.request.size.bytes.sum`*:: ++ +-- +type: long + +Request Size histogram sum + + +-- + +*`coredns.stats.dns.request.size.bytes.count`*:: ++ +-- +type: long + +Request Size histogram count + + +-- + +*`coredns.stats.dns.request.do.count.total`*:: ++ +-- +type: long + +Number of queries that have the DO bit set + + +-- + +*`coredns.stats.dns.request.type.count.total`*:: ++ +-- +type: long + +Counter of queries per zone and type + + +-- + +*`coredns.stats.type`*:: ++ +-- +type: keyword + +Holds the query type of the request + + +-- + +*`coredns.stats.dns.response.rcode.count.total`*:: ++ +-- +type: long + +Counter of responses per zone and rcode + + +-- + +*`coredns.stats.rcode`*:: ++ +-- +type: keyword + +Holds the rcode of the response + + +-- + +*`coredns.stats.family`*:: ++ +-- +type: keyword + +The address family of the transport (1 = IP (IP version 4), 2 = IP6 (IP version 6)) + + +-- + +*`coredns.stats.dns.response.size.bytes.bucket.*`*:: ++ +-- +type: object + +Response Size histogram buckets + + +-- + +*`coredns.stats.dns.response.size.bytes.sum`*:: ++ +-- +type: long + +Response Size histogram sum + + +-- + +*`coredns.stats.dns.response.size.bytes.count`*:: ++ +-- +type: long + +Response Size histogram count + + +-- + +*`coredns.stats.server`*:: ++ +-- +type: keyword + +The server responsible for the request + + +-- + +*`coredns.stats.zone`*:: ++ +-- +type: keyword + +The zonename used for the request/response + + +-- + +*`coredns.stats.proto`*:: ++ +-- +type: keyword + +The transport of the response ("udp" or "tcp") + + -- [[exported-fields-couchbase]] diff --git a/metricbeat/docs/modules/coredns.asciidoc b/metricbeat/docs/modules/coredns.asciidoc new file mode 100644 index 00000000000..b93e6e7f646 --- /dev/null +++ b/metricbeat/docs/modules/coredns.asciidoc @@ -0,0 +1,37 @@ +//// +This file is generated! See scripts/docs_collector.py +//// + +[[metricbeat-module-coredns]] +== coredns module + +beta[] + +This is the coredns module. + + + +[float] +=== Example configuration + +The coredns module supports the standard configuration options that are described +in <>. Here is an example configuration: + +[source,yaml] +---- +metricbeat.modules: +- module: coredns + metricsets: ["stats"] + period: 10s + hosts: ["localhost:9153"] +---- + +[float] +=== Metricsets + +The following metricsets are available: + +* <> + +include::coredns/stats.asciidoc[] + diff --git a/metricbeat/docs/modules/coredns/stats.asciidoc b/metricbeat/docs/modules/coredns/stats.asciidoc new file mode 100644 index 00000000000..780b80f7ec7 --- /dev/null +++ b/metricbeat/docs/modules/coredns/stats.asciidoc @@ -0,0 +1,17 @@ +//// +This file is generated! See scripts/docs_collector.py +//// + +[[metricbeat-metricset-coredns-stats]] +=== coredns stats metricset + +beta[] + +include::../../../module/coredns/stats/_meta/docs.asciidoc[] + + +==== Fields + +For a description of each field in the metricset, see the +<> section. + diff --git a/metricbeat/docs/modules_list.asciidoc b/metricbeat/docs/modules_list.asciidoc index 11108798182..0f50974ead2 100644 --- a/metricbeat/docs/modules_list.asciidoc +++ b/metricbeat/docs/modules_list.asciidoc @@ -24,6 +24,8 @@ This file is generated! See scripts/docs_collector.py |<> |<> beta[] |image:./images/icon-no.png[No prebuilt dashboards] | .1+| .1+| |<> beta[] +|<> beta[] |image:./images/icon-no.png[No prebuilt dashboards] | +.1+| .1+| |<> beta[] |<> |image:./images/icon-no.png[No prebuilt dashboards] | .3+| .3+| |<> |<> @@ -177,6 +179,7 @@ include::modules/apache.asciidoc[] include::modules/aws.asciidoc[] include::modules/ceph.asciidoc[] include::modules/consul.asciidoc[] +include::modules/coredns.asciidoc[] include::modules/couchbase.asciidoc[] include::modules/couchdb.asciidoc[] include::modules/docker.asciidoc[] diff --git a/metricbeat/include/list.go b/metricbeat/include/list.go index eee014afda3..7caabc5c5cf 100644 --- a/metricbeat/include/list.go +++ b/metricbeat/include/list.go @@ -40,6 +40,8 @@ import ( _ "github.com/elastic/beats/metricbeat/module/ceph/pool_disk" _ "github.com/elastic/beats/metricbeat/module/consul" _ "github.com/elastic/beats/metricbeat/module/consul/agent" + _ "github.com/elastic/beats/metricbeat/module/coredns" + _ "github.com/elastic/beats/metricbeat/module/coredns/stats" _ "github.com/elastic/beats/metricbeat/module/couchbase" _ "github.com/elastic/beats/metricbeat/module/couchbase/bucket" _ "github.com/elastic/beats/metricbeat/module/couchbase/cluster" diff --git a/metricbeat/metricbeat.reference.yml b/metricbeat/metricbeat.reference.yml index 14e6ae0ec35..97dfa32d718 100644 --- a/metricbeat/metricbeat.reference.yml +++ b/metricbeat/metricbeat.reference.yml @@ -163,6 +163,12 @@ metricbeat.modules: hosts: ["localhost:8500"] +#------------------------------- coredns Module ------------------------------ +- module: coredns + metricsets: ["stats"] + period: 10s + hosts: ["localhost:9153"] + #------------------------------ Couchbase Module ----------------------------- - module: couchbase metricsets: ["bucket", "cluster", "node"] diff --git a/metricbeat/module/coredns/_meta/Dockerfile b/metricbeat/module/coredns/_meta/Dockerfile new file mode 100644 index 00000000000..8e174cf779e --- /dev/null +++ b/metricbeat/module/coredns/_meta/Dockerfile @@ -0,0 +1,25 @@ +# Start from coredns base Docker image +FROM coredns/coredns:latest + +# create an enhanced container with nc command available since coredns is based +# on scratch image making healthcheck impossible +FROM alpine:latest +COPY --from=0 /coredns /coredns +# Expose client, management, and cluster ports +# For DNS +EXPOSE 53 53/udp + +# For Prometheus metrics +EXPOSE 9153 9153/tcp + +# Copy coredns configuration in container +ADD config /etc/coredns + +RUN apk add --update --no-cache bind-tools + +# Check if the Coredns container is healthy +HEALTHCHECK --interval=5s --retries=10 CMD dig @0.0.0.0 my.domain.org +dnssec >/dev/null + +# Start coredns with custom configuration file +ENTRYPOINT ["/coredns"] +CMD ["-conf", "/etc/coredns/Corefile"] diff --git a/metricbeat/module/coredns/_meta/config.reference.yml b/metricbeat/module/coredns/_meta/config.reference.yml new file mode 100644 index 00000000000..d8155ff00e5 --- /dev/null +++ b/metricbeat/module/coredns/_meta/config.reference.yml @@ -0,0 +1,4 @@ +- module: coredns + metricsets: ["stats"] + period: 10s + hosts: ["localhost:9153"] diff --git a/metricbeat/module/coredns/_meta/config.yml b/metricbeat/module/coredns/_meta/config.yml new file mode 100644 index 00000000000..d8155ff00e5 --- /dev/null +++ b/metricbeat/module/coredns/_meta/config.yml @@ -0,0 +1,4 @@ +- module: coredns + metricsets: ["stats"] + period: 10s + hosts: ["localhost:9153"] diff --git a/metricbeat/module/coredns/_meta/config/Corefile b/metricbeat/module/coredns/_meta/config/Corefile new file mode 100644 index 00000000000..c5f606f124e --- /dev/null +++ b/metricbeat/module/coredns/_meta/config/Corefile @@ -0,0 +1,39 @@ +######################## Description and Version ########################## +# This Corefile configures multiple DNS zones and uses coreDNS plugins +# +# To run a container with the image generated from this Dockerfile, execute: +# +# docker run -m 256m \ +# --name coredns \ +# --expose=9153/tcp -p 127.0.0.1:9153:9153/tcp \ +# -v "$PWD"/config:/etc/coredns \ +# coredns:test -conf /etc/coredns/Corefile +# +# Version: 1.0 +# +########################################################################### + +# Zone1 +my.domain.org { + log + errors + auto + reload 10s + + # Use the prometheus plugin to export metrics at '/metrics' endpoint + prometheus :9153 + + # If you wish to use a standard Hosts File format, uncomment the following + # line and customize the specified file + hosts /etc/coredns/mydomain.hosts my.domain.org +} + +# Zone2 +. { + log + errors + prometheus :9153 + + # Use the forward plugin to forward traffic to external DNS servers + forward . 8.8.8.8 8.8.4.4 +} diff --git a/metricbeat/module/coredns/_meta/config/mydomain.hosts b/metricbeat/module/coredns/_meta/config/mydomain.hosts new file mode 100644 index 00000000000..defef025aa9 --- /dev/null +++ b/metricbeat/module/coredns/_meta/config/mydomain.hosts @@ -0,0 +1,4 @@ +# Hosts file for Domain: my.domain.org +# Place entries below in standard hosts file format: ipaddress hostname fqdn + +192.168.1.1 gateway.my.domain.org diff --git a/metricbeat/module/coredns/_meta/docs.asciidoc b/metricbeat/module/coredns/_meta/docs.asciidoc new file mode 100644 index 00000000000..4444dcee1f0 --- /dev/null +++ b/metricbeat/module/coredns/_meta/docs.asciidoc @@ -0,0 +1,2 @@ +This is the coredns module. + diff --git a/metricbeat/module/coredns/_meta/env b/metricbeat/module/coredns/_meta/env new file mode 100644 index 00000000000..b8ad57b40ff --- /dev/null +++ b/metricbeat/module/coredns/_meta/env @@ -0,0 +1,2 @@ +COREDNS_HOST=coredns +COREDNS_PORT=9153 diff --git a/metricbeat/module/coredns/_meta/fields.yml b/metricbeat/module/coredns/_meta/fields.yml new file mode 100644 index 00000000000..5c410353d96 --- /dev/null +++ b/metricbeat/module/coredns/_meta/fields.yml @@ -0,0 +1,11 @@ +- key: coredns + title: "coredns" + description: > + coredns Module + release: beta + fields: + - name: coredns + type: group + description: > + `coredns` contains statistics that were read from coreDNS + fields: diff --git a/metricbeat/module/coredns/doc.go b/metricbeat/module/coredns/doc.go new file mode 100644 index 00000000000..57b552972d8 --- /dev/null +++ b/metricbeat/module/coredns/doc.go @@ -0,0 +1,19 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +// Package coredns is a Metricbeat module that contains MetricSets. +package coredns diff --git a/metricbeat/module/coredns/fields.go b/metricbeat/module/coredns/fields.go new file mode 100644 index 00000000000..33487332f15 --- /dev/null +++ b/metricbeat/module/coredns/fields.go @@ -0,0 +1,36 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package coredns + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("metricbeat", "coredns", asset.ModuleFieldsPri, AssetCoredns); err != nil { + panic(err) + } +} + +// AssetCoredns returns asset data. +// This is the base64 encoded gzipped contents of ../metricbeat/module/coredns. +func AssetCoredns() string { + return "eJzElk9T2zwQxu/5FM/kRN4Bv9NOh0Nm2gscyqGUAe5FtjZExZaMdg0TPn1H/hOMY2ICzqDjSnr2p9XqsY9wR6s5EudJW54AYiSlOaZ1ZDoBNHHiTS7G2Tl+TAA06/HL6SKlCeApJcU0R0yiJsDCUKp5Xi4+glUZtZOEIauc5rj1rsjrSE+eMG7qfTdInBVlLINFiWExCUOWSvBInuBJaSy8y8pEp+dXtUIbpY0TRHgd7QPaAhXGSQ+Op1QJaYiDLKkhAZN/MAm1tncL1owubZs4V9YkUeIKK5E4UemLVc0JUmdvOxNbDlGO6yAGW2QxebhFlYh7GbTlyNN9QSz7I7kvyK9Qyg9C6MKrIBdZjuIiuSOJ/uulcfFfSqQzVQX/vJv3sqJAQ4GlYXG3XmWoYBjGwirrmBJn9XBR2+fhIntrYRfOZ0rma5D3nYPX+w/BRRZ6oQl86CCbV/mBHulhfW7dOvswHpsniuKV0Ge2zZV5os2W2YV9hxYZgHqFqZtggGfMm36F6I2+4PbhT+frRgseZaj+AC3VA5WGf/obsREwDQMGhn0g4iRovoTMyePJWYKyulTupduYaCjuaPXovN4N5KdLNZdFqew8SAWmEKlrsKVGnDvLFPnE6X1UqVWjJlenSmXmXsDNmZHqVAo/l6jC6kVYqMykq/EYrpcEpbUn5lq7wRCvLOfOCw6+4DvOLnBwdoEH8hy+dt9mh/haho9fxI9ns+G7/VQHxmWNsbsHb+KPacL9VNtdeJNoXBvuZ3rdh8PvLvlx27PSbJ6FiVMK/zyDbhLe87ggQTFoo2DSXYb/tz7b3Dtx49I8v8+Ob+BgWuh8CucxlSSfzib/AgAA///RG8xV" +} diff --git a/metricbeat/module/coredns/stats/_meta/data_panic_event.json b/metricbeat/module/coredns/stats/_meta/data_panic_event.json new file mode 100644 index 00000000000..742b910c93a --- /dev/null +++ b/metricbeat/module/coredns/stats/_meta/data_panic_event.json @@ -0,0 +1,28 @@ +{ + "@timestamp": "2017-10-12T08:05:34.853Z", + "agent": { + "hostname": "host.example.com", + "name": "host.example.com" + }, + "coredns": { + "stats": { + "panic": { + "count": { + "total": 0 + } + } + } + }, + "event": { + "dataset": "coredns.stats", + "duration": 115000, + "module": "coredns" + }, + "metricset": { + "name": "stats" + }, + "service": { + "address": "127.0.0.1:9153", + "type": "coredns" + } +} \ No newline at end of file diff --git a/metricbeat/module/coredns/stats/_meta/data_request_count_event.json b/metricbeat/module/coredns/stats/_meta/data_request_count_event.json new file mode 100644 index 00000000000..278abf6cd49 --- /dev/null +++ b/metricbeat/module/coredns/stats/_meta/data_request_count_event.json @@ -0,0 +1,34 @@ +{ + "@timestamp": "2017-10-12T08:05:34.853Z", + "agent": { + "hostname": "host.example.com", + "name": "host.example.com" + }, + "coredns": { + "stats": { + "dns": { + "request": { + "count": { + "total": 430 + } + } + }, + "family": "1", + "proto": "udp", + "server": "dns://:53", + "zone": "dropped" + } + }, + "event": { + "dataset": "coredns.stats", + "duration": 115000, + "module": "coredns" + }, + "metricset": { + "name": "stats" + }, + "service": { + "address": "127.0.0.1:9153", + "type": "coredns" + } +} \ No newline at end of file diff --git a/metricbeat/module/coredns/stats/_meta/data_request_duration_ns_event.json b/metricbeat/module/coredns/stats/_meta/data_request_duration_ns_event.json new file mode 100644 index 00000000000..32708e27cfb --- /dev/null +++ b/metricbeat/module/coredns/stats/_meta/data_request_duration_ns_event.json @@ -0,0 +1,54 @@ +{ + "@timestamp": "2017-10-12T08:05:34.853Z", + "agent": { + "hostname": "host.example.com", + "name": "host.example.com" + }, + "coredns": { + "stats": { + "dns": { + "request": { + "duration": { + "ns": { + "bucket": { + "+Inf": 430, + "1000000": 0, + "1024000000": 0, + "128000000": 0, + "16000000": 0, + "2000000": 0, + "2048000000": 427, + "250000": 0, + "256000000": 0, + "32000000": 0, + "4000000": 0, + "4096000000": 428, + "500000": 0, + "512000000": 0, + "64000000": 0, + "8000000": 0, + "8192000000": 430 + }, + "count": 430, + "sum": 870306874252 + } + } + } + }, + "server": "dns://:53", + "zone": "." + } + }, + "event": { + "dataset": "coredns.stats", + "duration": 115000, + "module": "coredns" + }, + "metricset": { + "name": "stats" + }, + "service": { + "address": "127.0.0.1:9153", + "type": "coredns" + } +} diff --git a/metricbeat/module/coredns/stats/_meta/data_request_type_event.json b/metricbeat/module/coredns/stats/_meta/data_request_type_event.json new file mode 100644 index 00000000000..154d614c14a --- /dev/null +++ b/metricbeat/module/coredns/stats/_meta/data_request_type_event.json @@ -0,0 +1,35 @@ +{ + "@timestamp": "2017-10-12T08:05:34.853Z", + "agent": { + "hostname": "host.example.com", + "name": "host.example.com" + }, + "coredns": { + "stats": { + "dns": { + "request": { + "type": { + "count": { + "total": 430 + } + } + } + }, + "server": "dns://:53", + "type": "A", + "zone": "." + } + }, + "event": { + "dataset": "coredns.stats", + "duration": 115000, + "module": "coredns" + }, + "metricset": { + "name": "stats" + }, + "service": { + "address": "127.0.0.1:9153", + "type": "coredns" + } +} \ No newline at end of file diff --git a/metricbeat/module/coredns/stats/_meta/data_response_rcode_event.json b/metricbeat/module/coredns/stats/_meta/data_response_rcode_event.json new file mode 100644 index 00000000000..0aa1da95db4 --- /dev/null +++ b/metricbeat/module/coredns/stats/_meta/data_response_rcode_event.json @@ -0,0 +1,35 @@ +{ + "@timestamp": "2017-10-12T08:05:34.853Z", + "agent": { + "hostname": "host.example.com", + "name": "host.example.com" + }, + "coredns": { + "stats": { + "dns": { + "response": { + "rcode": { + "count": { + "total": 430 + } + } + } + }, + "rcode": "SERVFAIL", + "server": "dns://:53", + "zone": "." + } + }, + "event": { + "dataset": "coredns.stats", + "duration": 115000, + "module": "coredns" + }, + "metricset": { + "name": "stats" + }, + "service": { + "address": "127.0.0.1:9153", + "type": "coredns" + } +} \ No newline at end of file diff --git a/metricbeat/module/coredns/stats/_meta/data_size_bytes_event.json b/metricbeat/module/coredns/stats/_meta/data_size_bytes_event.json new file mode 100644 index 00000000000..ecced482d6c --- /dev/null +++ b/metricbeat/module/coredns/stats/_meta/data_size_bytes_event.json @@ -0,0 +1,78 @@ +{ + "@timestamp": "2017-10-12T08:05:34.853Z", + "agent": { + "hostname": "host.example.com", + "name": "host.example.com" + }, + "coredns": { + "stats": { + "dns": { + "request": { + "size": { + "bytes": { + "bucket": { + "+Inf": 430, + "0": 0, + "100": 430, + "1023": 430, + "16000": 430, + "200": 430, + "2047": 430, + "300": 430, + "32000": 430, + "400": 430, + "4095": 430, + "48000": 430, + "511": 430, + "64000": 430, + "8291": 430 + }, + "count": 430, + "sum": 24080 + } + } + }, + "response": { + "size": { + "bytes": { + "bucket": { + "+Inf": 430, + "0": 0, + "100": 430, + "1023": 430, + "16000": 430, + "200": 430, + "2047": 430, + "300": 430, + "32000": 430, + "400": 430, + "4095": 430, + "48000": 430, + "511": 430, + "64000": 430, + "8291": 430 + }, + "count": 430, + "sum": 24080 + } + } + } + }, + "proto": "udp", + "server": "dns://:53", + "zone": "." + } + }, + "event": { + "dataset": "coredns.stats", + "duration": 115000, + "module": "coredns" + }, + "metricset": { + "name": "stats" + }, + "service": { + "address": "127.0.0.1:9153", + "type": "coredns" + } +} \ No newline at end of file diff --git a/metricbeat/module/coredns/stats/_meta/docs.asciidoc b/metricbeat/module/coredns/stats/_meta/docs.asciidoc new file mode 100644 index 00000000000..07c9f2f9fed --- /dev/null +++ b/metricbeat/module/coredns/stats/_meta/docs.asciidoc @@ -0,0 +1 @@ +This is the stats metricset of the module coredns. diff --git a/metricbeat/module/coredns/stats/_meta/fields.yml b/metricbeat/module/coredns/stats/_meta/fields.yml new file mode 100644 index 00000000000..fd9bb260b1f --- /dev/null +++ b/metricbeat/module/coredns/stats/_meta/fields.yml @@ -0,0 +1,90 @@ +- name: stats + type: group + description: > + Contains statistics related to the coreDNS service + release: beta + fields: + - name: panic.count.total + type: long + description: > + Total number of panics + - name: dns.request.count.total + type: long + description: > + Total query count + - name: dns.request.duration.ns.bucket.* + type: object + object_type: long + description: > + Request duration histogram buckets in nanoseconds + - name: dns.request.duration.ns.sum + type: long + format: duration + description: > + Requests duration, sum of durations in nanoseconds + - name: dns.request.duration.ns.count + type: long + description: > + Requests duration, number of requests + - name: dns.request.size.bytes.bucket.* + type: object + object_type: long + description: > + Request Size histogram buckets + - name: dns.request.size.bytes.sum + type: long + description: > + Request Size histogram sum + - name: dns.request.size.bytes.count + type: long + description: > + Request Size histogram count + - name: dns.request.do.count.total + type: long + description: > + Number of queries that have the DO bit set + - name: dns.request.type.count.total + type: long + description: > + Counter of queries per zone and type + - name: type + type: keyword + description: > + Holds the query type of the request + - name: dns.response.rcode.count.total + type: long + description: > + Counter of responses per zone and rcode + - name: rcode + type: keyword + description: > + Holds the rcode of the response + - name: family + type: keyword + description: > + The address family of the transport (1 = IP (IP version 4), 2 = IP6 (IP version 6)) + - name: dns.response.size.bytes.bucket.* + type: object + object_type: long + description: > + Response Size histogram buckets + - name: dns.response.size.bytes.sum + type: long + description: > + Response Size histogram sum + - name: dns.response.size.bytes.count + type: long + description: > + Response Size histogram count + - name: server + type: keyword + description: > + The server responsible for the request + - name: zone + type: keyword + description: > + The zonename used for the request/response + - name: proto + type: keyword + description: > + The transport of the response ("udp" or "tcp") diff --git a/metricbeat/module/coredns/stats/_meta/test/metrics b/metricbeat/module/coredns/stats/_meta/test/metrics new file mode 100644 index 00000000000..18b1e18df81 --- /dev/null +++ b/metricbeat/module/coredns/stats/_meta/test/metrics @@ -0,0 +1,240 @@ +# HELP coredns_build_info A metric with a constant '1' value labeled by version, revision, and goversion from which CoreDNS was built. +# TYPE coredns_build_info gauge +coredns_build_info{goversion="go1.11.4",revision="6b56a9c",version="1.3.1"} 1.0 +# HELP coredns_dns_request_count_total Counter of DNS requests made per zone, protocol and family. +# TYPE coredns_dns_request_count_total counter +coredns_dns_request_count_total{family="1",proto="udp",server="dns://:53",zone="."} 440.0 +# HELP coredns_dns_request_do_count_total Counter of DNS requests with DO bit set per zone. +# TYPE coredns_dns_request_do_count_total counter +coredns_dns_request_do_count_total{server="dns://:53",zone="."} 113.0 +# HELP coredns_dns_request_duration_seconds Histogram of the time (in seconds) each request took. +# TYPE coredns_dns_request_duration_seconds histogram +coredns_dns_request_duration_seconds_bucket{server="dns://:53",zone=".",le="0.00025"} 0.0 +coredns_dns_request_duration_seconds_bucket{server="dns://:53",zone=".",le="0.0005"} 0.0 +coredns_dns_request_duration_seconds_bucket{server="dns://:53",zone=".",le="0.001"} 0.0 +coredns_dns_request_duration_seconds_bucket{server="dns://:53",zone=".",le="0.002"} 0.0 +coredns_dns_request_duration_seconds_bucket{server="dns://:53",zone=".",le="0.004"} 0.0 +coredns_dns_request_duration_seconds_bucket{server="dns://:53",zone=".",le="0.008"} 0.0 +coredns_dns_request_duration_seconds_bucket{server="dns://:53",zone=".",le="0.016"} 0.0 +coredns_dns_request_duration_seconds_bucket{server="dns://:53",zone=".",le="0.032"} 0.0 +coredns_dns_request_duration_seconds_bucket{server="dns://:53",zone=".",le="0.064"} 424.0 +coredns_dns_request_duration_seconds_bucket{server="dns://:53",zone=".",le="0.128"} 437.0 +coredns_dns_request_duration_seconds_bucket{server="dns://:53",zone=".",le="0.256"} 438.0 +coredns_dns_request_duration_seconds_bucket{server="dns://:53",zone=".",le="0.512"} 440.0 +coredns_dns_request_duration_seconds_bucket{server="dns://:53",zone=".",le="1.024"} 440.0 +coredns_dns_request_duration_seconds_bucket{server="dns://:53",zone=".",le="2.048"} 440.0 +coredns_dns_request_duration_seconds_bucket{server="dns://:53",zone=".",le="4.096"} 440.0 +coredns_dns_request_duration_seconds_bucket{server="dns://:53",zone=".",le="8.192"} 440.0 +coredns_dns_request_duration_seconds_bucket{server="dns://:53",zone=".",le="+Inf"} 440.0 +coredns_dns_request_duration_seconds_sum{server="dns://:53",zone="."} 21.712619368 +coredns_dns_request_duration_seconds_count{server="dns://:53",zone="."} 440.0 +# HELP coredns_dns_request_size_bytes Size of the EDNS0 UDP buffer in bytes (64K for TCP). +# TYPE coredns_dns_request_size_bytes histogram +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="0.0"} 0.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="100.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="200.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="300.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="400.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="511.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="1023.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="2047.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="4095.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="8291.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="16000.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="32000.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="48000.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="64000.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="+Inf"} 440.0 +coredns_dns_request_size_bytes_sum{proto="udp",server="dns://:53",zone="."} 22880.0 +coredns_dns_request_size_bytes_count{proto="udp",server="dns://:53",zone="."} 440.0 +# HELP coredns_dns_request_type_count_total Counter of DNS requests per type, per zone. +# TYPE coredns_dns_request_type_count_total counter +coredns_dns_request_type_count_total{server="dns://:53",type="A",zone="."} 440.0 +# HELP coredns_dns_response_rcode_count_total Counter of response status codes. +# TYPE coredns_dns_response_rcode_count_total counter +coredns_dns_response_rcode_count_total{rcode="NOERROR",server="dns://:53",zone="."} 440.0 +# HELP coredns_dns_response_size_bytes Size of the returned response in bytes. +# TYPE coredns_dns_response_size_bytes histogram +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="0.0"} 0.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="100.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="200.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="300.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="400.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="511.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="1023.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="2047.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="4095.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="8291.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="16000.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="32000.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="48000.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="64000.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="+Inf"} 440.0 +coredns_dns_response_size_bytes_sum{proto="udp",server="dns://:53",zone="."} 29480.0 +coredns_dns_response_size_bytes_count{proto="udp",server="dns://:53",zone="."} 440.0 +# HELP coredns_forward_request_count_total Counter of requests made per upstream. +# TYPE coredns_forward_request_count_total counter +coredns_forward_request_count_total{to="8.8.4.4:53"} 200.0 +coredns_forward_request_count_total{to="8.8.8.8:53"} 240.0 +# HELP coredns_forward_request_duration_seconds Histogram of the time each request took. +# TYPE coredns_forward_request_duration_seconds histogram +coredns_forward_request_duration_seconds_bucket{to="8.8.4.4:53",le="0.00025"} 0.0 +coredns_forward_request_duration_seconds_bucket{to="8.8.4.4:53",le="0.0005"} 0.0 +coredns_forward_request_duration_seconds_bucket{to="8.8.4.4:53",le="0.001"} 0.0 +coredns_forward_request_duration_seconds_bucket{to="8.8.4.4:53",le="0.002"} 0.0 +coredns_forward_request_duration_seconds_bucket{to="8.8.4.4:53",le="0.004"} 0.0 +coredns_forward_request_duration_seconds_bucket{to="8.8.4.4:53",le="0.008"} 0.0 +coredns_forward_request_duration_seconds_bucket{to="8.8.4.4:53",le="0.016"} 0.0 +coredns_forward_request_duration_seconds_bucket{to="8.8.4.4:53",le="0.032"} 0.0 +coredns_forward_request_duration_seconds_bucket{to="8.8.4.4:53",le="0.064"} 191.0 +coredns_forward_request_duration_seconds_bucket{to="8.8.4.4:53",le="0.128"} 198.0 +coredns_forward_request_duration_seconds_bucket{to="8.8.4.4:53",le="0.256"} 199.0 +coredns_forward_request_duration_seconds_bucket{to="8.8.4.4:53",le="0.512"} 200.0 +coredns_forward_request_duration_seconds_bucket{to="8.8.4.4:53",le="1.024"} 200.0 +coredns_forward_request_duration_seconds_bucket{to="8.8.4.4:53",le="2.048"} 200.0 +coredns_forward_request_duration_seconds_bucket{to="8.8.4.4:53",le="4.096"} 200.0 +coredns_forward_request_duration_seconds_bucket{to="8.8.4.4:53",le="8.192"} 200.0 +coredns_forward_request_duration_seconds_bucket{to="8.8.4.4:53",le="+Inf"} 200.0 +coredns_forward_request_duration_seconds_sum{to="8.8.4.4:53"} 9.960059515000003 +coredns_forward_request_duration_seconds_count{to="8.8.4.4:53"} 200.0 +coredns_forward_request_duration_seconds_bucket{to="8.8.8.8:53",le="0.00025"} 0.0 +coredns_forward_request_duration_seconds_bucket{to="8.8.8.8:53",le="0.0005"} 0.0 +coredns_forward_request_duration_seconds_bucket{to="8.8.8.8:53",le="0.001"} 0.0 +coredns_forward_request_duration_seconds_bucket{to="8.8.8.8:53",le="0.002"} 0.0 +coredns_forward_request_duration_seconds_bucket{to="8.8.8.8:53",le="0.004"} 0.0 +coredns_forward_request_duration_seconds_bucket{to="8.8.8.8:53",le="0.008"} 0.0 +coredns_forward_request_duration_seconds_bucket{to="8.8.8.8:53",le="0.016"} 0.0 +coredns_forward_request_duration_seconds_bucket{to="8.8.8.8:53",le="0.032"} 0.0 +coredns_forward_request_duration_seconds_bucket{to="8.8.8.8:53",le="0.064"} 233.0 +coredns_forward_request_duration_seconds_bucket{to="8.8.8.8:53",le="0.128"} 239.0 +coredns_forward_request_duration_seconds_bucket{to="8.8.8.8:53",le="0.256"} 239.0 +coredns_forward_request_duration_seconds_bucket{to="8.8.8.8:53",le="0.512"} 240.0 +coredns_forward_request_duration_seconds_bucket{to="8.8.8.8:53",le="1.024"} 240.0 +coredns_forward_request_duration_seconds_bucket{to="8.8.8.8:53",le="2.048"} 240.0 +coredns_forward_request_duration_seconds_bucket{to="8.8.8.8:53",le="4.096"} 240.0 +coredns_forward_request_duration_seconds_bucket{to="8.8.8.8:53",le="8.192"} 240.0 +coredns_forward_request_duration_seconds_bucket{to="8.8.8.8:53",le="+Inf"} 240.0 +coredns_forward_request_duration_seconds_sum{to="8.8.8.8:53"} 11.636399849999993 +coredns_forward_request_duration_seconds_count{to="8.8.8.8:53"} 240.0 +# HELP coredns_forward_response_rcode_count_total Counter of requests made per upstream. +# TYPE coredns_forward_response_rcode_count_total counter +coredns_forward_response_rcode_count_total{rcode="NOERROR",to="8.8.4.4:53"} 200.0 +coredns_forward_response_rcode_count_total{rcode="NOERROR",to="8.8.8.8:53"} 240.0 +# HELP coredns_forward_sockets_open Gauge of open sockets per upstream. +# TYPE coredns_forward_sockets_open gauge +coredns_forward_sockets_open{to="8.8.4.4:53"} 2.0 +coredns_forward_sockets_open{to="8.8.8.8:53"} 1.0 +# HELP coredns_panic_count_total A metrics that counts the number of panics. +# TYPE coredns_panic_count_total counter +coredns_panic_count_total 0.0 +# HELP go_gc_duration_seconds A summary of the GC invocation durations. +# TYPE go_gc_duration_seconds summary +go_gc_duration_seconds{quantile="0.0"} 4.1132e-05 +go_gc_duration_seconds{quantile="0.25"} 8.4991e-05 +go_gc_duration_seconds{quantile="0.5"} 0.00012054 +go_gc_duration_seconds{quantile="0.75"} 0.000154605 +go_gc_duration_seconds{quantile="1.0"} 0.003588725 +go_gc_duration_seconds_sum 0.053824534 +go_gc_duration_seconds_count 398.0 +# HELP go_goroutines Number of goroutines that currently exist. +# TYPE go_goroutines gauge +go_goroutines 22.0 +# HELP go_info Information about the Go environment. +# TYPE go_info gauge +go_info{version="go1.11.4"} 1.0 +# HELP go_memstats_alloc_bytes Number of bytes allocated and still in use. +# TYPE go_memstats_alloc_bytes gauge +go_memstats_alloc_bytes 2.9178e+06 +# HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed. +# TYPE go_memstats_alloc_bytes_total counter +go_memstats_alloc_bytes_total 6.3592992e+07 +# HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table. +# TYPE go_memstats_buck_hash_sys_bytes gauge +go_memstats_buck_hash_sys_bytes 1.453846e+06 +# HELP go_memstats_frees_total Total number of frees. +# TYPE go_memstats_frees_total counter +go_memstats_frees_total 295524.0 +# HELP go_memstats_gc_cpu_fraction The fraction of this program's available CPU time used by the GC since the program started. +# TYPE go_memstats_gc_cpu_fraction gauge +go_memstats_gc_cpu_fraction 7.482469694306849e-06 +# HELP go_memstats_gc_sys_bytes Number of bytes used for garbage collection system metadata. +# TYPE go_memstats_gc_sys_bytes gauge +go_memstats_gc_sys_bytes 2.371584e+06 +# HELP go_memstats_heap_alloc_bytes Number of heap bytes allocated and still in use. +# TYPE go_memstats_heap_alloc_bytes gauge +go_memstats_heap_alloc_bytes 2.9178e+06 +# HELP go_memstats_heap_idle_bytes Number of heap bytes waiting to be used. +# TYPE go_memstats_heap_idle_bytes gauge +go_memstats_heap_idle_bytes 6.1497344e+07 +# HELP go_memstats_heap_inuse_bytes Number of heap bytes that are in use. +# TYPE go_memstats_heap_inuse_bytes gauge +go_memstats_heap_inuse_bytes 4.661248e+06 +# HELP go_memstats_heap_objects Number of allocated objects. +# TYPE go_memstats_heap_objects gauge +go_memstats_heap_objects 16744.0 +# HELP go_memstats_heap_released_bytes Number of heap bytes released to OS. +# TYPE go_memstats_heap_released_bytes gauge +go_memstats_heap_released_bytes 6.1308928e+07 +# HELP go_memstats_heap_sys_bytes Number of heap bytes obtained from system. +# TYPE go_memstats_heap_sys_bytes gauge +go_memstats_heap_sys_bytes 6.6158592e+07 +# HELP go_memstats_last_gc_time_seconds Number of seconds since 1970 of last garbage collection. +# TYPE go_memstats_last_gc_time_seconds gauge +go_memstats_last_gc_time_seconds 1.5511302733947928e+09 +# HELP go_memstats_lookups_total Total number of pointer lookups. +# TYPE go_memstats_lookups_total counter +go_memstats_lookups_total 0.0 +# HELP go_memstats_mallocs_total Total number of mallocs. +# TYPE go_memstats_mallocs_total counter +go_memstats_mallocs_total 312268.0 +# HELP go_memstats_mcache_inuse_bytes Number of bytes in use by mcache structures. +# TYPE go_memstats_mcache_inuse_bytes gauge +go_memstats_mcache_inuse_bytes 6912.0 +# HELP go_memstats_mcache_sys_bytes Number of bytes used for mcache structures obtained from system. +# TYPE go_memstats_mcache_sys_bytes gauge +go_memstats_mcache_sys_bytes 16384.0 +# HELP go_memstats_mspan_inuse_bytes Number of bytes in use by mspan structures. +# TYPE go_memstats_mspan_inuse_bytes gauge +go_memstats_mspan_inuse_bytes 68096.0 +# HELP go_memstats_mspan_sys_bytes Number of bytes used for mspan structures obtained from system. +# TYPE go_memstats_mspan_sys_bytes gauge +go_memstats_mspan_sys_bytes 81920.0 +# HELP go_memstats_next_gc_bytes Number of heap bytes when next garbage collection will take place. +# TYPE go_memstats_next_gc_bytes gauge +go_memstats_next_gc_bytes 4.950384e+06 +# HELP go_memstats_other_sys_bytes Number of bytes used for other system allocations. +# TYPE go_memstats_other_sys_bytes gauge +go_memstats_other_sys_bytes 1.25181e+06 +# HELP go_memstats_stack_inuse_bytes Number of bytes in use by the stack allocator. +# TYPE go_memstats_stack_inuse_bytes gauge +go_memstats_stack_inuse_bytes 950272.0 +# HELP go_memstats_stack_sys_bytes Number of bytes obtained from system for stack allocator. +# TYPE go_memstats_stack_sys_bytes gauge +go_memstats_stack_sys_bytes 950272.0 +# HELP go_memstats_sys_bytes Number of bytes obtained from system. +# TYPE go_memstats_sys_bytes gauge +go_memstats_sys_bytes 7.2284408e+07 +# HELP go_threads Number of OS threads created. +# TYPE go_threads gauge +go_threads 16.0 +# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds. +# TYPE process_cpu_seconds_total counter +process_cpu_seconds_total 19.48 +# HELP process_max_fds Maximum number of open file descriptors. +# TYPE process_max_fds gauge +process_max_fds 1.048576e+06 +# HELP process_open_fds Number of open file descriptors. +# TYPE process_open_fds gauge +process_open_fds 12.0 +# HELP process_resident_memory_bytes Resident memory size in bytes. +# TYPE process_resident_memory_bytes gauge +process_resident_memory_bytes 1.507328e+07 +# HELP process_start_time_seconds Start time of the process since unix epoch in seconds. +# TYPE process_start_time_seconds gauge +process_start_time_seconds 1.55103964665e+09 +# HELP process_virtual_memory_bytes Virtual memory size in bytes. +# TYPE process_virtual_memory_bytes gauge +process_virtual_memory_bytes 1.462272e+08 +# HELP process_virtual_memory_max_bytes Maximum amount of virtual memory available in bytes. +# TYPE process_virtual_memory_max_bytes gauge +process_virtual_memory_max_bytes -1.0 diff --git a/metricbeat/module/coredns/stats/_meta/test/metrics.expected b/metricbeat/module/coredns/stats/_meta/test/metrics.expected new file mode 100644 index 00000000000..ef2093b6410 --- /dev/null +++ b/metricbeat/module/coredns/stats/_meta/test/metrics.expected @@ -0,0 +1,217 @@ +[ + { + "RootFields": null, + "ModuleFields": null, + "MetricSetFields": { + "dns": { + "response": { + "rcode": { + "count": { + "total": 440 + } + } + } + }, + "rcode": "NOERROR", + "server": "dns://:53", + "zone": "." + }, + "Index": "", + "ID": "", + "Namespace": "", + "Timestamp": "0001-01-01T00:00:00Z", + "Error": null, + "Host": "", + "Service": "", + "Took": 0 + }, + { + "RootFields": null, + "ModuleFields": null, + "MetricSetFields": { + "panic": { + "count": { + "total": 0 + } + } + }, + "Index": "", + "ID": "", + "Namespace": "", + "Timestamp": "0001-01-01T00:00:00Z", + "Error": null, + "Host": "", + "Service": "", + "Took": 0 + }, + { + "RootFields": null, + "ModuleFields": null, + "MetricSetFields": { + "dns": { + "request": { + "do": { + "count": { + "total": 113 + } + }, + "duration": { + "ns": { + "bucket": { + "+Inf": 440, + "1000000": 0, + "1024000000": 440, + "128000000": 437, + "16000000": 0, + "2000000": 0, + "2048000000": 440, + "250000": 0, + "256000000": 438, + "32000000": 0, + "4000000": 0, + "4096000000": 440, + "500000": 0, + "512000000": 440, + "64000000": 424, + "8000000": 0, + "8192000000": 440 + }, + "count": 440, + "sum": 21712619368 + } + } + } + }, + "server": "dns://:53", + "zone": "." + }, + "Index": "", + "ID": "", + "Namespace": "", + "Timestamp": "0001-01-01T00:00:00Z", + "Error": null, + "Host": "", + "Service": "", + "Took": 0 + }, + { + "RootFields": null, + "ModuleFields": null, + "MetricSetFields": { + "dns": { + "request": { + "size": { + "bytes": { + "bucket": { + "+Inf": 440, + "0": 0, + "100": 440, + "1023": 440, + "16000": 440, + "200": 440, + "2047": 440, + "300": 440, + "32000": 440, + "400": 440, + "4095": 440, + "48000": 440, + "511": 440, + "64000": 440, + "8291": 440 + }, + "count": 440, + "sum": 22880 + } + } + }, + "response": { + "size": { + "bytes": { + "bucket": { + "+Inf": 440, + "0": 0, + "100": 440, + "1023": 440, + "16000": 440, + "200": 440, + "2047": 440, + "300": 440, + "32000": 440, + "400": 440, + "4095": 440, + "48000": 440, + "511": 440, + "64000": 440, + "8291": 440 + }, + "count": 440, + "sum": 29480 + } + } + } + }, + "proto": "udp", + "server": "dns://:53", + "zone": "." + }, + "Index": "", + "ID": "", + "Namespace": "", + "Timestamp": "0001-01-01T00:00:00Z", + "Error": null, + "Host": "", + "Service": "", + "Took": 0 + }, + { + "RootFields": null, + "ModuleFields": null, + "MetricSetFields": { + "dns": { + "request": { + "count": { + "total": 440 + } + } + }, + "family": "1", + "proto": "udp", + "server": "dns://:53", + "zone": "." + }, + "Index": "", + "ID": "", + "Namespace": "", + "Timestamp": "0001-01-01T00:00:00Z", + "Error": null, + "Host": "", + "Service": "", + "Took": 0 + }, + { + "RootFields": null, + "ModuleFields": null, + "MetricSetFields": { + "dns": { + "request": { + "type": { + "count": { + "total": 440 + } + } + } + }, + "server": "dns://:53", + "type": "A", + "zone": "." + }, + "Index": "", + "ID": "", + "Namespace": "", + "Timestamp": "0001-01-01T00:00:00Z", + "Error": null, + "Host": "", + "Service": "", + "Took": 0 + } +] diff --git a/metricbeat/module/coredns/stats/stats.go b/metricbeat/module/coredns/stats/stats.go new file mode 100644 index 00000000000..d688e10021d --- /dev/null +++ b/metricbeat/module/coredns/stats/stats.go @@ -0,0 +1,53 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package stats + +import ( + "github.com/elastic/beats/metricbeat/helper/prometheus" + "github.com/elastic/beats/metricbeat/mb" +) + +var mapping = &prometheus.MetricsMapping{ + Metrics: map[string]prometheus.MetricMap{ + "coredns_panic_count_total": prometheus.Metric("panic.count.total"), + "coredns_dns_request_count_total": prometheus.Metric("dns.request.count.total"), + "coredns_dns_request_duration_seconds": prometheus.Metric( + "dns.request.duration.ns", + prometheus.OpMultiplyBuckets(1000000000)), + "coredns_dns_request_size_bytes": prometheus.Metric("dns.request.size.bytes"), + "coredns_dns_request_do_count_total": prometheus.Metric("dns.request.do.count.total"), + "coredns_dns_request_type_count_total": prometheus.Metric("dns.request.type.count.total"), + "coredns_dns_response_size_bytes": prometheus.Metric("dns.response.size.bytes"), + "coredns_dns_response_rcode_count_total": prometheus.Metric("dns.response.rcode.count.total"), + }, + + Labels: map[string]prometheus.LabelMap{ + "server": prometheus.KeyLabel("server"), + "zone": prometheus.KeyLabel("zone"), + "type": prometheus.KeyLabel("type"), + "rcode": prometheus.KeyLabel("rcode"), + "proto": prometheus.KeyLabel("proto"), + "family": prometheus.KeyLabel("family"), + }, +} + +func init() { + mb.Registry.MustAddMetricSet("coredns", "stats", + prometheus.MetricSetBuilder(mapping), + mb.WithHostParser(prometheus.HostParser)) +} diff --git a/metricbeat/module/coredns/stats/stats_integration_test.go b/metricbeat/module/coredns/stats/stats_integration_test.go new file mode 100644 index 00000000000..c7766ff91e0 --- /dev/null +++ b/metricbeat/module/coredns/stats/stats_integration_test.go @@ -0,0 +1,89 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +// +build integration + +package stats + +import ( + "fmt" + "os" + "testing" + + "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/tests/compose" + mbtest "github.com/elastic/beats/metricbeat/mb/testing" +) + +func TestData(t *testing.T) { + compose.EnsureUp(t, "coredns") + // TODO: Use this function to find if an event is the wanted one + eventIs := func(eventType string) func(e common.MapStr) bool { + return func(e common.MapStr) bool { + hasEvent, _ := e.HasKey(eventType) + return hasEvent + } + } + dataFiles := []struct { + eventType string + path string + }{ + {"coredns.stats.panic.count.total", "./_meta/data_panic_event.json"}, + {"coredns.stats.dns.request.count.total", "./_meta/data_request_count_event.json"}, + {"coredns.stats.dns.request.size.bytes", "./_meta/data_size_bytes_event.json"}, + {"coredns.stats.dns.request.duration.ns", "./_meta/data_request_duration_ns_event.json"}, + {"coredns.stats.dns.response.rcode", "./_meta/data_response_rcode_event.json"}, + {"coredns.stats.dns.request.type", "./_meta/data_request_type_event.json"}, + } + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + + for _, df := range dataFiles { + t.Run(fmt.Sprintf("event type:%s", df.eventType), func(t *testing.T) { + err := mbtest.WriteEventsReporterV2Cond(f, t, df.path, eventIs(df.eventType)) + if err != nil { + t.Fatal("write", err) + } + }) + } + +} + +func getConfig() map[string]interface{} { + return map[string]interface{}{ + "module": "coredns", + "metricsets": []string{"stats"}, + "hosts": []string{GetEnvHost() + ":" + GetEnvPort()}, + } +} + +func GetEnvHost() string { + host := os.Getenv("COREDNS_HOST") + + if len(host) == 0 { + host = "127.0.0.1" + } + return host +} + +func GetEnvPort() string { + port := os.Getenv("COREDNS_PORT") + + if len(port) == 0 { + port = "9153" + } + return port +} diff --git a/metricbeat/module/coredns/stats/stats_test.go b/metricbeat/module/coredns/stats/stats_test.go new file mode 100644 index 00000000000..053ed67b17a --- /dev/null +++ b/metricbeat/module/coredns/stats/stats_test.go @@ -0,0 +1,37 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package stats + +import ( + "testing" + + "github.com/elastic/beats/metricbeat/helper/prometheus/ptest" +) + +const testFile = "_meta/test/metrics" + +func TestEventMapping(t *testing.T) { + ptest.TestMetricSet(t, "coredns", "stats", + ptest.TestCases{ + { + MetricsFile: "./_meta/test/metrics", + ExpectedFile: "./_meta/test/metrics.expected", + }, + }, + ) +} diff --git a/metricbeat/modules.d/coredns.yml.disabled b/metricbeat/modules.d/coredns.yml.disabled new file mode 100644 index 00000000000..644a62bc4b7 --- /dev/null +++ b/metricbeat/modules.d/coredns.yml.disabled @@ -0,0 +1,7 @@ +# Module: coredns +# Docs: https://www.elastic.co/guide/en/beats/metricbeat/master/metricbeat-module-coredns.html + +- module: coredns + metricsets: ["stats"] + period: 10s + hosts: ["localhost:9153"] diff --git a/metricbeat/tests/system/test_coredns.py b/metricbeat/tests/system/test_coredns.py new file mode 100644 index 00000000000..ac3a03d4328 --- /dev/null +++ b/metricbeat/tests/system/test_coredns.py @@ -0,0 +1,39 @@ +import os +import metricbeat +import unittest + +COREDNS_FIELDS = metricbeat.COMMON_FIELDS + ["coredns"] + + +class Test(metricbeat.BaseTest): + + COMPOSE_SERVICES = ['coredns'] + + @unittest.skipUnless(metricbeat.INTEGRATION_TESTS, "integration test") + def test_stats(self): + """ + coredns stats test + """ + self.render_config_template(modules=[{ + "name": "coredns", + "metricsets": ["stats"], + "hosts": self.get_hosts(), + "period": "5s", + }]) + proc = self.start_beat() + self.wait_until(lambda: self.output_lines() > 0) + proc.check_kill_and_wait() + self.assert_no_logged_warnings() + + output = self.read_output_json() + self.assertGreater(len(output), 0) + + for evt in output: + self.assert_fields_are_documented(evt) + self.assertItemsEqual(self.de_dot(COREDNS_FIELDS), evt.keys(), evt) + + def get_hosts(self): + return ["{}:{}".format( + os.getenv('COREDNS_HOST', 'localhost'), + os.getenv('COREDNS_PORT', '9153') + )] diff --git a/x-pack/metricbeat/metricbeat.reference.yml b/x-pack/metricbeat/metricbeat.reference.yml index 40bb1694cce..f2e684c4981 100644 --- a/x-pack/metricbeat/metricbeat.reference.yml +++ b/x-pack/metricbeat/metricbeat.reference.yml @@ -183,6 +183,12 @@ metricbeat.modules: hosts: ["localhost:8500"] +#------------------------------- Coredns Module ------------------------------- +- module: coredns + metricsets: ["stats"] + period: 10s + hosts: ["localhost:9153"] + #------------------------------ Couchbase Module ------------------------------ - module: couchbase metricsets: ["bucket", "cluster", "node"] From 55aba204236ddee9233f74fc2f2e6eb183c2bc50 Mon Sep 17 00:00:00 2001 From: Shaunak Kashyap Date: Tue, 19 Mar 2019 10:51:58 -0700 Subject: [PATCH 232/332] Update schema version in monitoring index name (#11315) * Update schema version in monitoring index name * Update tests --- metricbeat/helper/elastic/elastic.go | 2 +- metricbeat/helper/elastic/elastic_test.go | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/metricbeat/helper/elastic/elastic.go b/metricbeat/helper/elastic/elastic.go index 207768a2491..e7cc0827ab4 100644 --- a/metricbeat/helper/elastic/elastic.go +++ b/metricbeat/helper/elastic/elastic.go @@ -77,7 +77,7 @@ func (p Product) String() string { // MakeXPackMonitoringIndexName method returns the name of the monitoring index for // a given product { elasticsearch, kibana, logstash, beats } func MakeXPackMonitoringIndexName(product Product) string { - const version = "6" + const version = "7" return fmt.Sprintf(".monitoring-%v-%v-mb", product.xPackMonitoringIndexString(), version) } diff --git a/metricbeat/helper/elastic/elastic_test.go b/metricbeat/helper/elastic/elastic_test.go index 83c8830365e..71cf1d6023f 100644 --- a/metricbeat/helper/elastic/elastic_test.go +++ b/metricbeat/helper/elastic/elastic_test.go @@ -35,22 +35,22 @@ func TestMakeXPackMonitoringIndexName(t *testing.T) { { "Elasticsearch monitoring index", Elasticsearch, - ".monitoring-es-6-mb", + ".monitoring-es-7-mb", }, { "Kibana monitoring index", Kibana, - ".monitoring-kibana-6-mb", + ".monitoring-kibana-7-mb", }, { "Logstash monitoring index", Logstash, - ".monitoring-logstash-6-mb", + ".monitoring-logstash-7-mb", }, { "Beats monitoring index", Beats, - ".monitoring-beats-6-mb", + ".monitoring-beats-7-mb", }, } From 44c40c9d066f2ddf61c8cc2d2e9dd093e3866f02 Mon Sep 17 00:00:00 2001 From: Shaunak Kashyap Date: Tue, 19 Mar 2019 12:07:28 -0700 Subject: [PATCH 233/332] Use different monitoring bulk API paths depending on ES version (#11203) Resolves #9480. Starting Elasticsearch 7.0.0, Beats should ship their monitoring data to the `_monitoring/bulk` Elasticsearch API endpoint. Prior to 7.0.0, `_xpack/monitoring/_bulk` should be used. This PR implements this version-based conditional logic. I used Wireshark to look at the ES API endpoints being hit. Running this PR with ES 8.0.0 or ES 7.0.0, I confirmed that the `POST _monitoring/bulk` endpoint was being hit: Screen Shot 2019-03-14 at 10 55 52 AM And running this PR with ES 6.7.0, I confirmed that the `POST _xpack/monitoring/_bulk` endpoint was being hit: Screen Shot 2019-03-14 at 10 56 42 AM --- .../monitoring/report/elasticsearch/client.go | 3 +- libbeat/outputs/elasticsearch/bulkapi.go | 67 +++++++++++++++++++ 2 files changed, 69 insertions(+), 1 deletion(-) diff --git a/libbeat/monitoring/report/elasticsearch/client.go b/libbeat/monitoring/report/elasticsearch/client.go index b23b6255e29..63be94cf324 100644 --- a/libbeat/monitoring/report/elasticsearch/client.go +++ b/libbeat/monitoring/report/elasticsearch/client.go @@ -135,7 +135,8 @@ func (c *publishClient) Publish(batch publisher.Batch) error { // Currently one request per event is sent. Reason is that each event can contain different // interval params and X-Pack requires to send the interval param. - _, err = c.es.BulkWith("_xpack", "monitoring", params, nil, bulk[:]) + _, err = c.es.SendMonitoringBulk(params, bulk[:]) + if err != nil { failed = append(failed, event) reason = err diff --git a/libbeat/outputs/elasticsearch/bulkapi.go b/libbeat/outputs/elasticsearch/bulkapi.go index 91eb5a298a3..f013c2a113a 100644 --- a/libbeat/outputs/elasticsearch/bulkapi.go +++ b/libbeat/outputs/elasticsearch/bulkapi.go @@ -23,6 +23,8 @@ import ( "io/ioutil" "net/http" "strings" + + "github.com/elastic/beats/libbeat/common" ) // MetaBuilder creates meta data for bulk requests @@ -77,6 +79,41 @@ func (conn *Connection) BulkWith( return readQueryResult(result.raw) } +// SendMonitoringBulk creates a HTTP request to the X-Pack Monitoring API containing a bunch of +// operations and sends them to Elasticsearch. The request is retransmitted up to max_retries +// before returning an error. +func (conn *Connection) SendMonitoringBulk( + params map[string]string, + body []interface{}, +) (*QueryResult, error) { + if len(body) == 0 { + return nil, nil + } + + enc := conn.encoder + enc.Reset() + if err := bulkEncode(enc, nil, body); err != nil { + return nil, err + } + + if !conn.version.IsValid() { + if err := conn.Connect(); err != nil { + return nil, err + } + } + + requ, err := newMonitoringBulkRequest(conn.version, conn.URL, params, enc) + if err != nil { + return nil, err + } + + _, result, err := conn.sendBulkRequest(requ) + if err != nil { + return nil, err + } + return readQueryResult(result.raw) +} + func newBulkRequest( urlStr string, index, docType string, @@ -88,6 +125,36 @@ func newBulkRequest( return nil, err } + return newBulkRequestWithPath(urlStr, path, params, body) +} + +func newMonitoringBulkRequest( + esVersion common.Version, + urlStr string, + params map[string]string, + body bodyEncoder, +) (*bulkRequest, error) { + var path string + var err error + if esVersion.Major < 7 { + path, err = makePath("_xpack", "monitoring", "_bulk") + } else { + path, err = makePath("_monitoring", "bulk", "") + } + + if err != nil { + return nil, err + } + + return newBulkRequestWithPath(urlStr, path, params, body) +} + +func newBulkRequestWithPath( + urlStr string, + path string, + params map[string]string, + body bodyEncoder, +) (*bulkRequest, error) { url := addToURL(urlStr, path, "", params) var reader io.Reader From 57f8b5c4124bcff0b7dd5a2f7bff357e0c289040 Mon Sep 17 00:00:00 2001 From: Alex K <8418476+fearful-symmetry@users.noreply.github.com> Date: Tue, 19 Mar 2019 15:18:22 -0500 Subject: [PATCH 234/332] [metricbeat] implement Close() for docker metricsets (#11294) * implement Close() for docker metricsets --- CHANGELOG.next.asciidoc | 1 + metricbeat/module/docker/container/container.go | 7 +++++++ metricbeat/module/docker/cpu/cpu.go | 6 ++++++ metricbeat/module/docker/diskio/diskio.go | 6 ++++++ metricbeat/module/docker/healthcheck/healthcheck.go | 6 ++++++ metricbeat/module/docker/image/image.go | 6 ++++++ metricbeat/module/docker/info/info.go | 6 ++++++ metricbeat/module/docker/memory/memory.go | 6 ++++++ metricbeat/module/docker/network/network.go | 6 ++++++ 9 files changed, 50 insertions(+) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index aaafc097bf5..8d75baa11a2 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -207,6 +207,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Add documentation about jolokia autodiscover fields. {issue}10925[10925] {pull}10979[10979] - Add missing aws.ec2.instance.state.name into fields.yml. {issue}11219[11219] {pull}11221[11221] - Fix ec2 metricset to collect metrics from Cloudwatch with the same timestamp. {pull}11142[11142] +- Fix potential memory leak in stopped docker metricsets {pull}11294[11294] *Packetbeat* diff --git a/metricbeat/module/docker/container/container.go b/metricbeat/module/docker/container/container.go index 6032493e755..06fa64d7db1 100644 --- a/metricbeat/module/docker/container/container.go +++ b/metricbeat/module/docker/container/container.go @@ -38,6 +38,7 @@ func init() { ) } +// MetricSet type defines all fields of the MetricSet type MetricSet struct { mb.BaseMetricSet dockerClient *client.Client @@ -76,3 +77,9 @@ func (m *MetricSet) Fetch(r mb.ReporterV2) { } eventsMapping(r, containers, m.dedot) } + +//Close stops the metricset +func (m *MetricSet) Close() error { + + return m.dockerClient.Close() +} diff --git a/metricbeat/module/docker/cpu/cpu.go b/metricbeat/module/docker/cpu/cpu.go index a7dd10cf892..05cc0c99665 100644 --- a/metricbeat/module/docker/cpu/cpu.go +++ b/metricbeat/module/docker/cpu/cpu.go @@ -84,3 +84,9 @@ func (m *MetricSet) Fetch(r mb.ReporterV2) { formattedStats := m.cpuService.getCPUStatsList(stats, m.dedot) eventsMapping(r, formattedStats) } + +//Close stops the metricset +func (m *MetricSet) Close() error { + + return m.dockerClient.Close() +} diff --git a/metricbeat/module/docker/diskio/diskio.go b/metricbeat/module/docker/diskio/diskio.go index d300e92d3e4..fd3d66bf10b 100644 --- a/metricbeat/module/docker/diskio/diskio.go +++ b/metricbeat/module/docker/diskio/diskio.go @@ -75,3 +75,9 @@ func (m *MetricSet) Fetch(r mb.ReporterV2) { formattedStats := m.blkioService.getBlkioStatsList(stats, m.dedot) eventsMapping(r, formattedStats) } + +//Close stops the metricset +func (m *MetricSet) Close() error { + + return m.dockerClient.Close() +} diff --git a/metricbeat/module/docker/healthcheck/healthcheck.go b/metricbeat/module/docker/healthcheck/healthcheck.go index 64c710140e8..8ac122fdfbe 100644 --- a/metricbeat/module/docker/healthcheck/healthcheck.go +++ b/metricbeat/module/docker/healthcheck/healthcheck.go @@ -76,3 +76,9 @@ func (m *MetricSet) Fetch(r mb.ReporterV2) { } eventsMapping(r, containers, m) } + +//Close stops the metricset +func (m *MetricSet) Close() error { + + return m.dockerClient.Close() +} diff --git a/metricbeat/module/docker/image/image.go b/metricbeat/module/docker/image/image.go index 3a5a9f82187..3cb96c12c96 100644 --- a/metricbeat/module/docker/image/image.go +++ b/metricbeat/module/docker/image/image.go @@ -78,3 +78,9 @@ func (m *MetricSet) Fetch() ([]common.MapStr, error) { return eventsMapping(images, m.dedot), nil } + +//Close stops the metricset +func (m *MetricSet) Close() error { + + return m.dockerClient.Close() +} diff --git a/metricbeat/module/docker/info/info.go b/metricbeat/module/docker/info/info.go index a8d6f9b5da6..43a8da63bad 100644 --- a/metricbeat/module/docker/info/info.go +++ b/metricbeat/module/docker/info/info.go @@ -67,3 +67,9 @@ func (m *MetricSet) Fetch() (common.MapStr, error) { return eventMapping(&info), nil } + +//Close stops the metricset +func (m *MetricSet) Close() error { + + return m.dockerClient.Close() +} diff --git a/metricbeat/module/docker/memory/memory.go b/metricbeat/module/docker/memory/memory.go index 240ac448f0b..142e6b1af67 100644 --- a/metricbeat/module/docker/memory/memory.go +++ b/metricbeat/module/docker/memory/memory.go @@ -75,3 +75,9 @@ func (m *MetricSet) Fetch(r mb.ReporterV2) { memoryStats := m.memoryService.getMemoryStatsList(stats, m.dedot) eventsMapping(r, memoryStats) } + +//Close stops the metricset +func (m *MetricSet) Close() error { + + return m.dockerClient.Close() +} diff --git a/metricbeat/module/docker/network/network.go b/metricbeat/module/docker/network/network.go index 78b908dd47b..7635abc6df2 100644 --- a/metricbeat/module/docker/network/network.go +++ b/metricbeat/module/docker/network/network.go @@ -77,3 +77,9 @@ func (m *MetricSet) Fetch(r mb.ReporterV2) { formattedStats := m.netService.getNetworkStatsPerContainer(stats, m.dedot) eventsMapping(r, formattedStats) } + +//Close stops the metricset +func (m *MetricSet) Close() error { + + return m.dockerClient.Close() +} From 57c98914eacd78160ee1a9ac75894ebdf32d4fb2 Mon Sep 17 00:00:00 2001 From: Jaime Soriano Pastor Date: Tue, 19 Mar 2019 21:24:47 +0100 Subject: [PATCH 235/332] Stop waiting for signals on closed outleters (#11263) Outleters start a goroutine to handle the finalization of filebeat. If the outleter is closed by other means the goroutine will be kept running even if it has nothing to do, leaking goroutines. Stop this goroutine if the outleter is closed. --- CHANGELOG.next.asciidoc | 1 + filebeat/channel/interface.go | 1 + filebeat/channel/outlet.go | 7 +++++++ filebeat/channel/util.go | 12 ++++++++++-- filebeat/input/log/input_other_test.go | 1 + 5 files changed, 20 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 8d75baa11a2..9c0571ae1e1 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -170,6 +170,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Fix errors in filebeat Zeek dashboard and README files. Add notice.log support. {pull}10916[10916] - Fix a bug when converting NetFlow fields to snake_case. {pull}10950[10950] - Add on_failure handler for Zeek ingest pipelines. Fix one field name error for notice and add an additional test case. {issue}11004[11004] {pull}11105[11105] +- Fix goroutine leak happening when harvesters are dynamically stopped. {pull}11263[11263] - Fix issue preventing docker container events to be stored if the container has a network interface without ip address. {issue}11225[11225] {pull}11247[11247] - Add on_failure handler for Zeek ingest pipelines. Fix one field name error for notice and add an additional test case. {issue}11004[11004] {pull}11105[11105] diff --git a/filebeat/channel/interface.go b/filebeat/channel/interface.go index 82e5a82af37..877b818870a 100644 --- a/filebeat/channel/interface.go +++ b/filebeat/channel/interface.go @@ -32,5 +32,6 @@ type Connector func(*common.Config, *common.MapStrPointer) (Outleter, error) // Outleter is the outlet for an input type Outleter interface { Close() error + Done() <-chan struct{} OnEvent(data *util.Data) bool } diff --git a/filebeat/channel/outlet.go b/filebeat/channel/outlet.go index d130cf9ceeb..c0fe2b0c9e3 100644 --- a/filebeat/channel/outlet.go +++ b/filebeat/channel/outlet.go @@ -27,6 +27,7 @@ type outlet struct { wg eventCounter client beat.Client isOpen atomic.Bool + done chan struct{} } func newOutlet(client beat.Client, wg eventCounter) *outlet { @@ -34,6 +35,7 @@ func newOutlet(client beat.Client, wg eventCounter) *outlet { wg: wg, client: client, isOpen: atomic.MakeBool(true), + done: make(chan struct{}), } return o } @@ -41,11 +43,16 @@ func newOutlet(client beat.Client, wg eventCounter) *outlet { func (o *outlet) Close() error { isOpen := o.isOpen.Swap(false) if isOpen { + close(o.done) return o.client.Close() } return nil } +func (o *outlet) Done() <-chan struct{} { + return o.done +} + func (o *outlet) OnEvent(d *util.Data) bool { if !o.isOpen.Load() { return false diff --git a/filebeat/channel/util.go b/filebeat/channel/util.go index 134765c4cd8..aec2132fa20 100644 --- a/filebeat/channel/util.go +++ b/filebeat/channel/util.go @@ -71,6 +71,10 @@ func (o *subOutlet) Close() error { return nil } +func (o *subOutlet) Done() <-chan struct{} { + return o.done +} + func (o *subOutlet) OnEvent(d *util.Data) bool { o.mutex.Lock() @@ -114,8 +118,12 @@ func (o *subOutlet) OnEvent(d *util.Data) bool { func CloseOnSignal(outlet Outleter, sig <-chan struct{}) Outleter { if sig != nil { go func() { - <-sig - outlet.Close() + select { + case <-outlet.Done(): + return + case <-sig: + outlet.Close() + } }() } return outlet diff --git a/filebeat/input/log/input_other_test.go b/filebeat/input/log/input_other_test.go index 3a36cb6040d..bdaba0c7d2a 100644 --- a/filebeat/input/log/input_other_test.go +++ b/filebeat/input/log/input_other_test.go @@ -169,3 +169,4 @@ type TestOutlet struct{} func (o TestOutlet) OnEvent(event *util.Data) bool { return true } func (o TestOutlet) Close() error { return nil } +func (o TestOutlet) Done() <-chan struct{} { return nil } From e531d105461e5ea2d9866c7ef82a073d92399485 Mon Sep 17 00:00:00 2001 From: Michal Pristas Date: Wed, 20 Mar 2019 10:04:38 +0100 Subject: [PATCH 236/332] Regenerate UUID of a Beat when meta.json is empty (#11086) * treat empty meta as non existent * test made parallel friendly * changelog plus typos in beats.go * perform atomic write of meta.json --- CHANGELOG.next.asciidoc | 1 + libbeat/cmd/instance/beat.go | 26 ++++++++++++++++++-------- libbeat/cmd/instance/beat_test.go | 23 +++++++++++++++++++++++ 3 files changed, 42 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 9c0571ae1e1..e61829cabdd 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -33,6 +33,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Add `cleanup_timeout` option to docker autodiscover, to wait some time before removing configurations after a container is stopped. {issue]10374[10374] {pull}10905[10905] - On Google Cloud Engine (GCE) the add_cloud_metadata will now trim the project info from the cloud.machine.type and cloud.availability_zone. {issue}10968[10968] +- Empty `meta.json` file will be treated as a missing meta file. {issue}8558[8558] - Rename `migration.enabled` config to `migration.6_to_7.enabled`. {pull}11284[11284] *Auditbeat* diff --git a/libbeat/cmd/instance/beat.go b/libbeat/cmd/instance/beat.go index 40e647ea5dc..f76f2047cf1 100644 --- a/libbeat/cmd/instance/beat.go +++ b/libbeat/cmd/instance/beat.go @@ -24,6 +24,7 @@ import ( "errors" "flag" "fmt" + "io" "math" "math/big" "math/rand" @@ -104,7 +105,7 @@ type beatConfig struct { Pipeline pipeline.Config `config:",inline"` Monitoring *common.Config `config:"xpack.monitoring"` - // central managmenet settings + // central management settings Management *common.Config `config:"management"` // elastic stack 'setup' configurations @@ -569,7 +570,8 @@ func (b *Beat) configure(settings Settings) error { // log paths values to help with troubleshooting logp.Info(paths.Paths.String()) - err = b.loadMeta() + metaPath := paths.Resolve(paths.Data, "meta.json") + err = b.loadMeta(metaPath) if err != nil { return err } @@ -613,12 +615,11 @@ func (b *Beat) configure(settings Settings) error { return err } -func (b *Beat) loadMeta() error { +func (b *Beat) loadMeta(metaPath string) error { type meta struct { UUID uuid.UUID `json:"uuid"` } - metaPath := paths.Resolve(paths.Data, "meta.json") logp.Debug("beat", "Beat metadata path: %v", metaPath) f, err := openRegular(metaPath) @@ -628,7 +629,7 @@ func (b *Beat) loadMeta() error { if err == nil { m := meta{} - if err := json.NewDecoder(f).Decode(&m); err != nil { + if err := json.NewDecoder(f).Decode(&m); err != nil && err != io.EOF { f.Close() return fmt.Errorf("Beat meta file reading error: %v", err) } @@ -650,12 +651,21 @@ func (b *Beat) loadMeta() error { return fmt.Errorf("Failed to create Beat meta file: %s", err) } - err = json.NewEncoder(f).Encode(meta{UUID: b.Info.ID}) - f.Close() + encodeErr := json.NewEncoder(f).Encode(meta{UUID: b.Info.ID}) + err = f.Sync() + if err != nil { + return fmt.Errorf("Beat meta file failed to write: %s", err) + } + + err = f.Close() if err != nil { return fmt.Errorf("Beat meta file failed to write: %s", err) } + if encodeErr != nil { + return fmt.Errorf("Beat meta file failed to write: %s", encodeErr) + } + // move temporary file into final location err = file.SafeFileRotate(metaPath, tempFile) return err @@ -699,7 +709,7 @@ func (b *Beat) loadDashboards(ctx context.Context, force bool) error { if b.Config.Dashboards.Enabled() { // Initialize kibana config. If username and password is set in elasticsearch output config but not in kibana, - // initKibanaConfig will attach the ussername and password into kibana config as a part of the initialization. + // initKibanaConfig will attach the username and password into kibana config as a part of the initialization. kibanaConfig, err := initKibanaConfig(b.Config) if err != nil { return fmt.Errorf("error initKibanaConfig: %v", err) diff --git a/libbeat/cmd/instance/beat_test.go b/libbeat/cmd/instance/beat_test.go index 751995ffaa2..9ea780ed4b3 100644 --- a/libbeat/cmd/instance/beat_test.go +++ b/libbeat/cmd/instance/beat_test.go @@ -20,6 +20,8 @@ package instance import ( + "io/ioutil" + "os" "testing" "github.com/elastic/beats/libbeat/cfgfile" @@ -92,3 +94,24 @@ func TestInitKibanaConfig(t *testing.T) { assert.Equal(t, "https", protocol) assert.Equal(t, "127.0.0.1:5601", host) } + +func TestEmptyMetaJson(t *testing.T) { + b, err := NewBeat("filebeat", "testidx", "0.9") + if err != nil { + panic(err) + } + + // prepare empty meta file + metaFile, err := ioutil.TempFile("../test", "meta.json") + assert.Equal(t, nil, err, "Unable to create temporary meta file") + + metaPath := metaFile.Name() + metaFile.Close() + defer os.Remove(metaPath) + + // load metadata + err = b.loadMeta(metaPath) + + assert.Equal(t, nil, err, "Unable to load meta file properly") + assert.NotEqual(t, uuid.Nil, b.Info.ID, "Beats UUID is not set") +} From 9ff83926cf59ec7e1fd8f9e1aa882fd7fef9f43e Mon Sep 17 00:00:00 2001 From: Adrian Serrano Date: Wed, 20 Mar 2019 14:36:45 +0100 Subject: [PATCH 237/332] Move x-pack dashboards images to x-pack dir (#11317) Some modules under x-pack had their dashboards images below the OSS beat directory. This PR moves those images under x-pack. --- .../_meta}/images/kibana-iptables-ubiquiti.png | Bin .../iptables/_meta}/images/kibana-iptables.png | Bin .../suricata/_meta}/images/kibana-suricata.png | Bin .../_meta}/images/metricbeat-aws-ec2-overview.png | Bin 4 files changed, 0 insertions(+), 0 deletions(-) rename {filebeat/docs => x-pack/filebeat/module/iptables/_meta}/images/kibana-iptables-ubiquiti.png (100%) rename {filebeat/docs => x-pack/filebeat/module/iptables/_meta}/images/kibana-iptables.png (100%) rename {filebeat/docs => x-pack/filebeat/module/suricata/_meta}/images/kibana-suricata.png (100%) rename {metricbeat/docs => x-pack/metricbeat/module/aws/_meta}/images/metricbeat-aws-ec2-overview.png (100%) diff --git a/filebeat/docs/images/kibana-iptables-ubiquiti.png b/x-pack/filebeat/module/iptables/_meta/images/kibana-iptables-ubiquiti.png similarity index 100% rename from filebeat/docs/images/kibana-iptables-ubiquiti.png rename to x-pack/filebeat/module/iptables/_meta/images/kibana-iptables-ubiquiti.png diff --git a/filebeat/docs/images/kibana-iptables.png b/x-pack/filebeat/module/iptables/_meta/images/kibana-iptables.png similarity index 100% rename from filebeat/docs/images/kibana-iptables.png rename to x-pack/filebeat/module/iptables/_meta/images/kibana-iptables.png diff --git a/filebeat/docs/images/kibana-suricata.png b/x-pack/filebeat/module/suricata/_meta/images/kibana-suricata.png similarity index 100% rename from filebeat/docs/images/kibana-suricata.png rename to x-pack/filebeat/module/suricata/_meta/images/kibana-suricata.png diff --git a/metricbeat/docs/images/metricbeat-aws-ec2-overview.png b/x-pack/metricbeat/module/aws/_meta/images/metricbeat-aws-ec2-overview.png similarity index 100% rename from metricbeat/docs/images/metricbeat-aws-ec2-overview.png rename to x-pack/metricbeat/module/aws/_meta/images/metricbeat-aws-ec2-overview.png From b0a2eb4811d62b861aa22e574898b9221e569a5c Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Wed, 20 Mar 2019 10:44:09 -0400 Subject: [PATCH 238/332] Check license x-pack (#11296) * Check License for basic or better --- CHANGELOG.next.asciidoc | 1 + libbeat/outputs/elasticsearch/client.go | 12 ++++- .../outputs/elasticsearch/elasticsearch.go | 34 ++++++++++++++ .../elasticsearch/elasticsearch_test.go | 25 +++++++++++ x-pack/functionbeat/beater/functionbeat.go | 6 +-- x-pack/functionbeat/beater/license.go | 14 ------ x-pack/functionbeat/core/license_client.go | 2 +- .../functionbeat/core/license_client_test.go | 2 +- x-pack/libbeat/cmd/inject.go | 5 +++ .../licenser/callback_watcher.go | 0 .../licenser/callback_watcher_test.go | 0 .../licenser/check.go | 9 +++- .../licenser/check_test.go | 0 .../licenser/elastic_fetcher.go | 7 ++- .../elastic_fetcher_integration_test.go | 4 +- .../licenser/elastic_fetcher_test.go | 21 ++++++++- x-pack/libbeat/licenser/es_callback.go | 44 +++++++++++++++++++ .../licenser/license.go | 0 .../licenser/license_test.go | 0 .../licenser/licensetype_string.go | 0 .../licenser/manager.go | 0 .../licenser/manager_test.go | 0 .../licenser/state_string.go | 0 .../licenser/testdata/x-pack-trial-6.4.0.json | 0 .../licenser/testdata/xpack-6.4.0.json | 0 .../licenser/types.go | 0 26 files changed, 160 insertions(+), 26 deletions(-) delete mode 100644 x-pack/functionbeat/beater/license.go rename x-pack/{functionbeat => libbeat}/licenser/callback_watcher.go (100%) rename x-pack/{functionbeat => libbeat}/licenser/callback_watcher_test.go (100%) rename x-pack/{functionbeat => libbeat}/licenser/check.go (79%) rename x-pack/{functionbeat => libbeat}/licenser/check_test.go (100%) rename x-pack/{functionbeat => libbeat}/licenser/elastic_fetcher.go (96%) rename x-pack/{functionbeat => libbeat}/licenser/elastic_fetcher_integration_test.go (93%) rename x-pack/{functionbeat => libbeat}/licenser/elastic_fetcher_test.go (89%) create mode 100644 x-pack/libbeat/licenser/es_callback.go rename x-pack/{functionbeat => libbeat}/licenser/license.go (100%) rename x-pack/{functionbeat => libbeat}/licenser/license_test.go (100%) rename x-pack/{functionbeat => libbeat}/licenser/licensetype_string.go (100%) rename x-pack/{functionbeat => libbeat}/licenser/manager.go (100%) rename x-pack/{functionbeat => libbeat}/licenser/manager_test.go (100%) rename x-pack/{functionbeat => libbeat}/licenser/state_string.go (100%) rename x-pack/{functionbeat => libbeat}/licenser/testdata/x-pack-trial-6.4.0.json (100%) rename x-pack/{functionbeat => libbeat}/licenser/testdata/xpack-6.4.0.json (100%) rename x-pack/{functionbeat => libbeat}/licenser/types.go (100%) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index e61829cabdd..0c835775af5 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -35,6 +35,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d info from the cloud.machine.type and cloud.availability_zone. {issue}10968[10968] - Empty `meta.json` file will be treated as a missing meta file. {issue}8558[8558] - Rename `migration.enabled` config to `migration.6_to_7.enabled`. {pull}11284[11284] +- Beats Xpack now checks for Basic license on connect. {pull}11296[11296] *Auditbeat* diff --git a/libbeat/outputs/elasticsearch/client.go b/libbeat/outputs/elasticsearch/client.go index 5230f3c57a3..42f9e69939b 100644 --- a/libbeat/outputs/elasticsearch/client.go +++ b/libbeat/outputs/elasticsearch/client.go @@ -225,6 +225,16 @@ func NewClient( } client.Connection.onConnectCallback = func() error { + globalCallbackRegistry.mutex.Lock() + defer globalCallbackRegistry.mutex.Unlock() + + for _, callback := range globalCallbackRegistry.callbacks { + err := callback(client) + if err != nil { + return err + } + } + if onConnect != nil { onConnect.mutex.Lock() defer onConnect.mutex.Unlock() @@ -721,7 +731,7 @@ func (conn *Connection) Ping() (string, error) { } debugf("Ping status code: %v", status) - logp.Info("Connected to Elasticsearch version %s", response.Version.Number) + logp.Info("Attempting to connect to Elasticsearch version %s", response.Version.Number) return response.Version.Number, nil } diff --git a/libbeat/outputs/elasticsearch/elasticsearch.go b/libbeat/outputs/elasticsearch/elasticsearch.go index f604190c31c..323f4c88a35 100644 --- a/libbeat/outputs/elasticsearch/elasticsearch.go +++ b/libbeat/outputs/elasticsearch/elasticsearch.go @@ -61,6 +61,31 @@ type callbacksRegistry struct { // XXX: it would be fantastic to do this without a package global var connectCallbackRegistry = newCallbacksRegistry() +// NOTE(ph): We need to refactor this, right now this is the only way to ensure that every calls +// to an ES cluster executes a callback. +var globalCallbackRegistry = newCallbacksRegistry() + +// RegisterGlobalCallback register a global callbacks. +func RegisterGlobalCallback(callback connectCallback) (uuid.UUID, error) { + globalCallbackRegistry.mutex.Lock() + defer globalCallbackRegistry.mutex.Unlock() + + // find the next unique key + var key uuid.UUID + var err error + exists := true + for exists { + key, err = uuid.NewV4() + if err != nil { + return uuid.Nil, err + } + _, exists = globalCallbackRegistry.callbacks[key] + } + + globalCallbackRegistry.callbacks[key] = callback + return key, nil +} + func newCallbacksRegistry() callbacksRegistry { return callbacksRegistry{ callbacks: make(map[uuid.UUID]connectCallback), @@ -99,6 +124,15 @@ func DeregisterConnectCallback(key uuid.UUID) { delete(connectCallbackRegistry.callbacks, key) } +// DeregisterGlobalCallback deregisters a callback for the elasticsearch output +// specified by its key. If a callback does not exist, nothing happens. +func DeregisterGlobalCallback(key uuid.UUID) { + globalCallbackRegistry.mutex.Lock() + defer globalCallbackRegistry.mutex.Unlock() + + delete(globalCallbackRegistry.callbacks, key) +} + func makeES( im outputs.IndexManager, beat beat.Info, diff --git a/libbeat/outputs/elasticsearch/elasticsearch_test.go b/libbeat/outputs/elasticsearch/elasticsearch_test.go index db5a4a7d493..0fd3ae91db3 100644 --- a/libbeat/outputs/elasticsearch/elasticsearch_test.go +++ b/libbeat/outputs/elasticsearch/elasticsearch_test.go @@ -46,3 +46,28 @@ func TestConnectCallbacksManagement(t *testing.T) { t.Fatalf("third callback cannot be retrieved") } } + +func TestGlobalConnectCallbacksManagement(t *testing.T) { + f0 := func(client *Client) error { fmt.Println("i am function #0"); return nil } + f1 := func(client *Client) error { fmt.Println("i am function #1"); return nil } + f2 := func(client *Client) error { fmt.Println("i am function #2"); return nil } + + _, err := RegisterGlobalCallback(f0) + if err != nil { + t.Fatalf("error while registering callback: %v", err) + } + id1, err := RegisterGlobalCallback(f1) + if err != nil { + t.Fatalf("error while registering callback: %v", err) + } + id2, err := RegisterGlobalCallback(f2) + if err != nil { + t.Fatalf("error while registering callback: %v", err) + } + + t.Logf("removing second callback") + DeregisterGlobalCallback(id1) + if _, ok := globalCallbackRegistry.callbacks[id2]; !ok { + t.Fatalf("third callback cannot be retrieved") + } +} diff --git a/x-pack/functionbeat/beater/functionbeat.go b/x-pack/functionbeat/beater/functionbeat.go index b62e8cd704d..db0965e2834 100644 --- a/x-pack/functionbeat/beater/functionbeat.go +++ b/x-pack/functionbeat/beater/functionbeat.go @@ -20,8 +20,8 @@ import ( "github.com/elastic/beats/x-pack/functionbeat/config" "github.com/elastic/beats/x-pack/functionbeat/core" _ "github.com/elastic/beats/x-pack/functionbeat/include" // imports features - "github.com/elastic/beats/x-pack/functionbeat/licenser" "github.com/elastic/beats/x-pack/functionbeat/provider" + "github.com/elastic/beats/x-pack/libbeat/licenser" ) var ( @@ -82,7 +82,7 @@ func (bt *Functionbeat) Run(b *beat.Beat) error { defer manager.Stop() // Wait until we receive the initial license. - if err := licenser.WaitForLicense(bt.ctx, bt.log, manager, checkLicense); err != nil { + if err := licenser.WaitForLicense(bt.ctx, bt.log, manager, licenser.BasicAndAboveOrTrial); err != nil { return err } @@ -156,7 +156,7 @@ func makeClientFactory(log *logp.Logger, manager *licenser.Manager, pipeline bea // Make the client aware of the current license, the client will accept sending events to the // pipeline until the client is closed or if the license change and is not valid. - licenseAware := core.NewLicenseAwareClient(client, checkLicense) + licenseAware := core.NewLicenseAwareClient(client, licenser.BasicAndAboveOrTrial) if err := manager.AddWatcher(licenseAware); err != nil { return nil, err } diff --git a/x-pack/functionbeat/beater/license.go b/x-pack/functionbeat/beater/license.go deleted file mode 100644 index 1294a9331c4..00000000000 --- a/x-pack/functionbeat/beater/license.go +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one -// or more contributor license agreements. Licensed under the Elastic License; -// you may not use this file except in compliance with the Elastic License. - -package beater - -import ( - "github.com/elastic/beats/libbeat/logp" - "github.com/elastic/beats/x-pack/functionbeat/licenser" -) - -func checkLicense(log *logp.Logger, license licenser.License) bool { - return licenser.CheckBasic(log, license) || licenser.CheckTrial(log, license) -} diff --git a/x-pack/functionbeat/core/license_client.go b/x-pack/functionbeat/core/license_client.go index bcccc2bdf11..6d499987deb 100644 --- a/x-pack/functionbeat/core/license_client.go +++ b/x-pack/functionbeat/core/license_client.go @@ -10,7 +10,7 @@ import ( "github.com/elastic/beats/libbeat/beat" "github.com/elastic/beats/libbeat/common/atomic" "github.com/elastic/beats/libbeat/logp" - "github.com/elastic/beats/x-pack/functionbeat/licenser" + "github.com/elastic/beats/x-pack/libbeat/licenser" ) var errInvalidLicense = errors.New("invalid license detected, cannot publish events") diff --git a/x-pack/functionbeat/core/license_client_test.go b/x-pack/functionbeat/core/license_client_test.go index e5b90f2d0ac..e4f92001f10 100644 --- a/x-pack/functionbeat/core/license_client_test.go +++ b/x-pack/functionbeat/core/license_client_test.go @@ -11,7 +11,7 @@ import ( "github.com/elastic/beats/libbeat/beat" "github.com/elastic/beats/libbeat/logp" - "github.com/elastic/beats/x-pack/functionbeat/licenser" + "github.com/elastic/beats/x-pack/libbeat/licenser" ) type dummySyncClient struct{ EventCount int } diff --git a/x-pack/libbeat/cmd/inject.go b/x-pack/libbeat/cmd/inject.go index 715f3d2df5c..b55427ae403 100644 --- a/x-pack/libbeat/cmd/inject.go +++ b/x-pack/libbeat/cmd/inject.go @@ -6,12 +6,17 @@ package cmd import ( "github.com/elastic/beats/libbeat/cmd" + "github.com/elastic/beats/libbeat/logp" // register central management + "github.com/elastic/beats/x-pack/libbeat/licenser" _ "github.com/elastic/beats/x-pack/libbeat/management" ) +const licenseDebugK = "license" + // AddXPack extends the given root folder with XPack features func AddXPack(root *cmd.BeatsRootCmd, name string) { + licenser.Enforce(logp.NewLogger(licenseDebugK), licenser.BasicAndAboveOrTrial) root.AddCommand(genEnrollCmd(name, "")) } diff --git a/x-pack/functionbeat/licenser/callback_watcher.go b/x-pack/libbeat/licenser/callback_watcher.go similarity index 100% rename from x-pack/functionbeat/licenser/callback_watcher.go rename to x-pack/libbeat/licenser/callback_watcher.go diff --git a/x-pack/functionbeat/licenser/callback_watcher_test.go b/x-pack/libbeat/licenser/callback_watcher_test.go similarity index 100% rename from x-pack/functionbeat/licenser/callback_watcher_test.go rename to x-pack/libbeat/licenser/callback_watcher_test.go diff --git a/x-pack/functionbeat/licenser/check.go b/x-pack/libbeat/licenser/check.go similarity index 79% rename from x-pack/functionbeat/licenser/check.go rename to x-pack/libbeat/licenser/check.go index 422ba88c85b..b41383f27e1 100644 --- a/x-pack/functionbeat/licenser/check.go +++ b/x-pack/libbeat/licenser/check.go @@ -19,6 +19,7 @@ func CheckTrial(log *logp.Logger, license License) bool { log.Error("Trial license is expired") return false } + log.Info("Trial license active") return true } return false @@ -27,10 +28,11 @@ func CheckTrial(log *logp.Logger, license License) bool { // CheckLicenseCover check that the current license cover the requested license. func CheckLicenseCover(licenseType LicenseType) func(*logp.Logger, License) bool { return func(log *logp.Logger, license License) bool { - log.Debugf("Checking that license cover %s", licenseType) + log.Debug("Checking that license covers %s", licenseType) if license.Cover(licenseType) && license.IsActive() { return true } + log.Infof("License is active for %s", licenseType) return false } } @@ -48,3 +50,8 @@ func Validate(log *logp.Logger, license License, checks ...CheckFunc) bool { } return false } + +// BasicAndAboveOrTrial return true if the license is basic or if the license is trial and active. +func BasicAndAboveOrTrial(log *logp.Logger, license License) bool { + return CheckBasic(log, license) || CheckTrial(log, license) +} diff --git a/x-pack/functionbeat/licenser/check_test.go b/x-pack/libbeat/licenser/check_test.go similarity index 100% rename from x-pack/functionbeat/licenser/check_test.go rename to x-pack/libbeat/licenser/check_test.go diff --git a/x-pack/functionbeat/licenser/elastic_fetcher.go b/x-pack/libbeat/licenser/elastic_fetcher.go similarity index 96% rename from x-pack/functionbeat/licenser/elastic_fetcher.go rename to x-pack/libbeat/licenser/elastic_fetcher.go index 7b8d05fd625..854591ccb08 100644 --- a/x-pack/functionbeat/licenser/elastic_fetcher.go +++ b/x-pack/libbeat/licenser/elastic_fetcher.go @@ -114,13 +114,18 @@ func (f *ElasticFetcher) Fetch() (*License, error) { status, body, err := f.client.Request("GET", xPackURL, "", params, nil) // When we are running an OSS release of elasticsearch the _xpack endpoint will return a 405, // "Method Not Allowed", so we return the default OSS license. + if status == http.StatusBadRequest { + f.log.Debug("Received 'Bad request' (400) response from server, fallback to OSS license") + return OSSLicense, nil + } + if status == http.StatusMethodNotAllowed { f.log.Debug("Received 'Method Not allowed' (405) response from server, fallback to OSS license") return OSSLicense, nil } if status == http.StatusUnauthorized { - return nil, errors.New("Unauthorized access, could not connect to the xpack endpoint, verify your credentials") + return nil, errors.New("unauthorized access, could not connect to the xpack endpoint, verify your credentials") } if status != http.StatusOK { diff --git a/x-pack/functionbeat/licenser/elastic_fetcher_integration_test.go b/x-pack/libbeat/licenser/elastic_fetcher_integration_test.go similarity index 93% rename from x-pack/functionbeat/licenser/elastic_fetcher_integration_test.go rename to x-pack/libbeat/licenser/elastic_fetcher_integration_test.go index b8def938cc3..73e978361bd 100644 --- a/x-pack/functionbeat/licenser/elastic_fetcher_integration_test.go +++ b/x-pack/libbeat/licenser/elastic_fetcher_integration_test.go @@ -27,8 +27,8 @@ func getTestClient() *elasticsearch.Client { client, err := elasticsearch.NewClient(elasticsearch.ClientSettings{ URL: host, Index: outil.MakeSelector(), - Username: cli.GetEnvOr("ES_USER", ""), - Password: cli.GetEnvOr("ES_PASS", ""), + Username: "myelastic", // NOTE: I will refactor this in a followup PR + Password: "changeme", Timeout: 60 * time.Second, CompressionLevel: 3, }, nil) diff --git a/x-pack/functionbeat/licenser/elastic_fetcher_test.go b/x-pack/libbeat/licenser/elastic_fetcher_test.go similarity index 89% rename from x-pack/functionbeat/licenser/elastic_fetcher_test.go rename to x-pack/libbeat/licenser/elastic_fetcher_test.go index 4c71008ce29..708ae1d833f 100644 --- a/x-pack/functionbeat/licenser/elastic_fetcher_test.go +++ b/x-pack/libbeat/licenser/elastic_fetcher_test.go @@ -35,7 +35,7 @@ func newServerClientPair(t *testing.T, handler http.HandlerFunc) (*httptest.Serv } func TestParseJSON(t *testing.T) { - t.Run("OSS release of Elasticsearch", func(t *testing.T) { + t.Run("OSS release of Elasticsearch (Code: 405)", func(t *testing.T) { h := func(w http.ResponseWriter, r *http.Request) { http.Error(w, "Method Not Allowed", 405) } @@ -52,6 +52,23 @@ func TestParseJSON(t *testing.T) { assert.Equal(t, OSSLicense, oss) }) + t.Run("OSS release of Elasticsearch (Code: 400)", func(t *testing.T) { + h := func(w http.ResponseWriter, r *http.Request) { + http.Error(w, "Bad Request", 400) + } + s, c := newServerClientPair(t, h) + defer s.Close() + defer c.Close() + + fetcher := NewElasticFetcher(c) + oss, err := fetcher.Fetch() + if assert.NoError(t, err) { + return + } + + assert.Equal(t, OSSLicense, oss) + }) + t.Run("malformed JSON", func(t *testing.T) { h := func(w http.ResponseWriter, r *http.Request) { w.Write([]byte("hello bad JSON")) @@ -75,7 +92,7 @@ func TestParseJSON(t *testing.T) { fetcher := NewElasticFetcher(c) _, err := fetcher.Fetch() - assert.Equal(t, err.Error(), "Unauthorized access, could not connect to the xpack endpoint, verify your credentials") + assert.Equal(t, err.Error(), "unauthorized access, could not connect to the xpack endpoint, verify your credentials") }) t.Run("any error from the server", func(t *testing.T) { diff --git a/x-pack/libbeat/licenser/es_callback.go b/x-pack/libbeat/licenser/es_callback.go new file mode 100644 index 00000000000..f854bfd9d85 --- /dev/null +++ b/x-pack/libbeat/licenser/es_callback.go @@ -0,0 +1,44 @@ +// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one +// or more contributor license agreements. Licensed under the Elastic License; +// you may not use this file except in compliance with the Elastic License. + +package licenser + +import ( + "fmt" + + "github.com/pkg/errors" + + "github.com/elastic/beats/libbeat/logp" + "github.com/elastic/beats/libbeat/outputs/elasticsearch" +) + +// Enforce setups the corresponding callbacks in libbeat to verify the license on the +// remote elasticsearch cluster. +func Enforce(log *logp.Logger, checks ...CheckFunc) { + cb := func(client *elasticsearch.Client) error { + fetcher := NewElasticFetcher(client) + license, err := fetcher.Fetch() + + if err != nil { + return errors.Wrapf(err, "cannot retrieve the elasticsearch license") + } + + if license == OSSLicense { + return errors.New("This Beat requires the default distribution of Elasticsearch. Please " + + "upgrade to the default distribution of Elasticsearch from elastic.co, or downgrade to " + + "the oss-only distribution of beats") + } + + if !Validate(log, *license, checks...) { + return fmt.Errorf( + "invalid license found, requires a basic or a valid trial license and received %s", + license.Get(), + ) + } + + return nil + } + + elasticsearch.RegisterGlobalCallback(cb) +} diff --git a/x-pack/functionbeat/licenser/license.go b/x-pack/libbeat/licenser/license.go similarity index 100% rename from x-pack/functionbeat/licenser/license.go rename to x-pack/libbeat/licenser/license.go diff --git a/x-pack/functionbeat/licenser/license_test.go b/x-pack/libbeat/licenser/license_test.go similarity index 100% rename from x-pack/functionbeat/licenser/license_test.go rename to x-pack/libbeat/licenser/license_test.go diff --git a/x-pack/functionbeat/licenser/licensetype_string.go b/x-pack/libbeat/licenser/licensetype_string.go similarity index 100% rename from x-pack/functionbeat/licenser/licensetype_string.go rename to x-pack/libbeat/licenser/licensetype_string.go diff --git a/x-pack/functionbeat/licenser/manager.go b/x-pack/libbeat/licenser/manager.go similarity index 100% rename from x-pack/functionbeat/licenser/manager.go rename to x-pack/libbeat/licenser/manager.go diff --git a/x-pack/functionbeat/licenser/manager_test.go b/x-pack/libbeat/licenser/manager_test.go similarity index 100% rename from x-pack/functionbeat/licenser/manager_test.go rename to x-pack/libbeat/licenser/manager_test.go diff --git a/x-pack/functionbeat/licenser/state_string.go b/x-pack/libbeat/licenser/state_string.go similarity index 100% rename from x-pack/functionbeat/licenser/state_string.go rename to x-pack/libbeat/licenser/state_string.go diff --git a/x-pack/functionbeat/licenser/testdata/x-pack-trial-6.4.0.json b/x-pack/libbeat/licenser/testdata/x-pack-trial-6.4.0.json similarity index 100% rename from x-pack/functionbeat/licenser/testdata/x-pack-trial-6.4.0.json rename to x-pack/libbeat/licenser/testdata/x-pack-trial-6.4.0.json diff --git a/x-pack/functionbeat/licenser/testdata/xpack-6.4.0.json b/x-pack/libbeat/licenser/testdata/xpack-6.4.0.json similarity index 100% rename from x-pack/functionbeat/licenser/testdata/xpack-6.4.0.json rename to x-pack/libbeat/licenser/testdata/xpack-6.4.0.json diff --git a/x-pack/functionbeat/licenser/types.go b/x-pack/libbeat/licenser/types.go similarity index 100% rename from x-pack/functionbeat/licenser/types.go rename to x-pack/libbeat/licenser/types.go From 5b6cedb5bf8edc958a0cbd34db257e61d81c1867 Mon Sep 17 00:00:00 2001 From: Adrian Serrano Date: Wed, 20 Mar 2019 16:20:59 +0100 Subject: [PATCH 239/332] Revert "Move x-pack dashboards images to x-pack dir (#11317)" (#11344) This reverts commit 9ff83926cf59ec7e1fd8f9e1aa882fd7fef9f43e. --- .../docs}/images/kibana-iptables-ubiquiti.png | Bin .../docs}/images/kibana-iptables.png | Bin .../docs}/images/kibana-suricata.png | Bin .../docs}/images/metricbeat-aws-ec2-overview.png | Bin 4 files changed, 0 insertions(+), 0 deletions(-) rename {x-pack/filebeat/module/iptables/_meta => filebeat/docs}/images/kibana-iptables-ubiquiti.png (100%) rename {x-pack/filebeat/module/iptables/_meta => filebeat/docs}/images/kibana-iptables.png (100%) rename {x-pack/filebeat/module/suricata/_meta => filebeat/docs}/images/kibana-suricata.png (100%) rename {x-pack/metricbeat/module/aws/_meta => metricbeat/docs}/images/metricbeat-aws-ec2-overview.png (100%) diff --git a/x-pack/filebeat/module/iptables/_meta/images/kibana-iptables-ubiquiti.png b/filebeat/docs/images/kibana-iptables-ubiquiti.png similarity index 100% rename from x-pack/filebeat/module/iptables/_meta/images/kibana-iptables-ubiquiti.png rename to filebeat/docs/images/kibana-iptables-ubiquiti.png diff --git a/x-pack/filebeat/module/iptables/_meta/images/kibana-iptables.png b/filebeat/docs/images/kibana-iptables.png similarity index 100% rename from x-pack/filebeat/module/iptables/_meta/images/kibana-iptables.png rename to filebeat/docs/images/kibana-iptables.png diff --git a/x-pack/filebeat/module/suricata/_meta/images/kibana-suricata.png b/filebeat/docs/images/kibana-suricata.png similarity index 100% rename from x-pack/filebeat/module/suricata/_meta/images/kibana-suricata.png rename to filebeat/docs/images/kibana-suricata.png diff --git a/x-pack/metricbeat/module/aws/_meta/images/metricbeat-aws-ec2-overview.png b/metricbeat/docs/images/metricbeat-aws-ec2-overview.png similarity index 100% rename from x-pack/metricbeat/module/aws/_meta/images/metricbeat-aws-ec2-overview.png rename to metricbeat/docs/images/metricbeat-aws-ec2-overview.png From daefdb5312fe04ccaa1ac2e2745ee94d4bf00d54 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?No=C3=A9mi=20V=C3=A1nyi?= Date: Wed, 20 Mar 2019 20:57:46 +0100 Subject: [PATCH 240/332] Add list of valid encodings with short description (#11285) --- .../input-common-harvester-options.asciidoc | 58 +++++++++++++++++-- 1 file changed, 53 insertions(+), 5 deletions(-) diff --git a/filebeat/docs/inputs/input-common-harvester-options.asciidoc b/filebeat/docs/inputs/input-common-harvester-options.asciidoc index b9fa634b4cb..8f161006416 100644 --- a/filebeat/docs/inputs/input-common-harvester-options.asciidoc +++ b/filebeat/docs/inputs/input-common-harvester-options.asciidoc @@ -14,11 +14,59 @@ The file encoding to use for reading data that contains international characters. See the encoding names http://www.w3.org/TR/encoding/[recommended by the W3C for use in HTML5]. -Here are some sample encodings from W3C recommendation: - - * plain, latin1, utf-8, utf-16be-bom, utf-16be, utf-16le, big5, gb18030, - gbk, hz-gb-2312, - * euc-kr, euc-jp, iso-2022-jp, shift-jis, and so on +Valid encodings: + + * `plain`: plain ASCII encoding + * `utf-8` or `utf8`: UTF-8 encoding + * `gbk`: simplified Chinese charaters + * `iso8859-6e`: ISO8859-6E, Latin/Arabic + * `iso8859-6i`: ISO8859-6I, Latin/Arabic + * `iso8859-8e`: ISO8859-8E, Latin/Hebrew + * `iso8859-8i`: ISO8859-8I, Latin/Hebrew + * `iso8859-1`: ISO8859-1, Latin-1 + * `iso8859-2`: ISO8859-2, Latin-2 + * `iso8859-3`: ISO8859-3, Latin-3 + * `iso8859-4`: ISO8859-4, Latin-4 + * `iso8859-5`: ISO8859-5, Latin/Cyrillic + * `iso8859-6`: ISO8859-6, Latin/Arabic + * `iso8859-7`: ISO8859-7, Latin/Greek + * `iso8859-8`: ISO8859-8, Latin/Hebrew + * `iso8859-9`: ISO8859-9, Latin-5 + * `iso8859-10`: ISO8859-10, Latin-6 + * `iso8859-13`: ISO8859-13, Latin-7 + * `iso8859-14`: ISO8859-14, Latin-8 + * `iso8859-15`: ISO8859-15, Latin-9 + * `iso8859-16`: ISO8859-16, Latin-10 + * `cp437`: IBM CodePage 437 + * `cp850`: IBM CodePage 850 + * `cp852`: IBM CodePage 852 + * `cp855`: IBM CodePage 855 + * `cp858`: IBM CodePage 858 + * `cp860`: IBM CodePage 860 + * `cp862`: IBM CodePage 862 + * `cp863`: IBM CodePage 863 + * `cp865`: IBM CodePage 865 + * `cp866`: IBM CodePage 866 + * `ebcdic-037`: IBM CodePage 037 + * `ebcdic-1040`: IBM CodePage 1140 + * `ebcdic-1047`: IBM CodePage 1047 + * `koi8r`: KOI8-R, Russian (Cyrillic) + * `koi8u`: KOI8-U, Ukranian (Cyrillic) + * `macintosh`: Macintosh encoding + * `macintosh-cyrillic`: Macintosh Cyrillic encoding + * `windows1250`: Windows1250, Central and Eastern European + * `windows1251`: Windows1251, Russian, Serbian (Cyrillic) + * `windows1252`: Windows1252, Legacy + * `windows1253`: Windows1253, Modern Greek + * `windows1254`: Windows1254, Turkish + * `windows1255`: Windows1255, Hebrew + * `windows1256`: Windows1256, Arabic + * `windows1257`: Windows1257, Estonian, Latvian, Lithuanian + * `windows1258`: Windows1258, Vietnamese + * `windows874`: Windows874, ISO/IEC 8859-11, Latin/Thai + * `utf-16-bom`: UTF-16 with required BOM + * `utf-16be-bom`: big endian UTF-16 with required BOM + * `utf-16le-bom`: little endian UTF-16 with required BOM The `plain` encoding is special, because it does not validate or transform any input. From 783aca0f243529376c8e5e4f035e5dc0d288af20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20=C3=81lvarez?= Date: Thu, 21 Mar 2019 10:57:19 +0100 Subject: [PATCH 241/332] have a conservative default for keystore overwrite (#11335) --- libbeat/cmd/keystore.go | 4 ++-- libbeat/common/config.go | 2 +- libbeat/keystore/file_keystore.go | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libbeat/cmd/keystore.go b/libbeat/cmd/keystore.go index b482c1260ab..706efd5b6ca 100644 --- a/libbeat/cmd/keystore.go +++ b/libbeat/cmd/keystore.go @@ -104,7 +104,7 @@ func genAddKeystoreCmd(settings instance.Settings) *cobra.Command { func genRemoveKeystoreCmd(settings instance.Settings) *cobra.Command { return &cobra.Command{ Use: "remove", - Short: "remove secret", + Short: "Remove secret", Run: cli.RunWith(func(cmd *cobra.Command, args []string) error { store, err := getKeystore(settings) if err != nil { @@ -136,7 +136,7 @@ func createKeystore(settings instance.Settings, force bool) error { } if store.IsPersisted() == true && force == false { - response := terminal.PromptYesNo("A keystore already exists, Overwrite?", true) + response := terminal.PromptYesNo("A keystore already exists, Overwrite?", false) if response == true { err := store.Create(true) if err != nil { diff --git a/libbeat/common/config.go b/libbeat/common/config.go index 4a9cb851466..b1d6eadd8b9 100644 --- a/libbeat/common/config.go +++ b/libbeat/common/config.go @@ -432,7 +432,7 @@ func OwnerHasExclusiveWritePerms(name string) error { perm := info.Mode().Perm() if fileUID != 0 && euid != fileUID { - return fmt.Errorf(`config file ("%v") must be owned by the beat user `+ + return fmt.Errorf(`config file ("%v") must be owned by the user identifier `+ `(uid=%v) or root`, name, euid) } diff --git a/libbeat/keystore/file_keystore.go b/libbeat/keystore/file_keystore.go index 3f530a58120..fb1aa15c590 100644 --- a/libbeat/keystore/file_keystore.go +++ b/libbeat/keystore/file_keystore.go @@ -389,7 +389,7 @@ func (k *FileKeystore) checkPermissions(f string) error { perm := info.Mode().Perm() if fileUID != 0 && euid != fileUID { - return fmt.Errorf(`config file ("%v") must be owned by the beat user `+ + return fmt.Errorf(`config file ("%v") must be owned by the user identifier `+ `(uid=%v) or root`, f, euid) } From a9f567b4a43fe9978a6d1671cb1e10357b0972ea Mon Sep 17 00:00:00 2001 From: Tudor Golubenco Date: Thu, 21 Mar 2019 10:59:55 +0100 Subject: [PATCH 242/332] Adding categorization fields for the system/auth module (#11334) * Adding categorization fields for the system/auth module This PR adds the following fields for the SSH login events: * `event.category: authentication` * `event.action: ssh_login` * `event.type` either `authentication_success` or `authentication_failure` The `event.outcome` is currently not quite ECS compliant, but I didn't touch it to avoid a breaking change. The PR doesn't attempt to categorize other logs besides the SSH login attempts, so it's a subset of #9905, but it's what we need for the UI. * Normalized event.outcome and brought back `system.auth.ssh.event`. * changelog --- CHANGELOG.next.asciidoc | 3 ++- dev-tools/ecs-migration.yml | 5 ---- filebeat/docs/fields.asciidoc | 5 ++-- filebeat/module/system/auth/_meta/fields.yml | 7 ++--- .../module/system/auth/ingest/pipeline.json | 11 ++++++-- .../system/auth/test/test.log-expected.json | 26 +++++++++++++++---- filebeat/module/system/fields.go | 2 +- 7 files changed, 40 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 0c835775af5..b0d02623166 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -174,7 +174,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Add on_failure handler for Zeek ingest pipelines. Fix one field name error for notice and add an additional test case. {issue}11004[11004] {pull}11105[11105] - Fix goroutine leak happening when harvesters are dynamically stopped. {pull}11263[11263] - Fix issue preventing docker container events to be stored if the container has a network interface without ip address. {issue}11225[11225] {pull}11247[11247] -- Add on_failure handler for Zeek ingest pipelines. Fix one field name error for notice and add an additional test +- Add on_failure handler for Zeek ingest pipelines. Fix one field name error for notice and add an additional test case. {issue}11004[11004] {pull}11105[11105] - Change URLPATH grok pattern to support brackets. {issue}11135[11135] {pull}11252[11252] - Add support for iis log with different address format. {issue}11255[11255] {pull}11256[11256] @@ -300,6 +300,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Change Suricata module pipeline to handle `destination.domain` being set if a reverse DNS processor is used. {issue}10510[10510] - Add the `network.community_id` flow identifier to field to the IPTables, Suricata, and Zeek modules. {pull}11005[11005] - Add support for loading custom NetFlow and IPFIX field definitions to netflow input. {pull}10945[10945] +- Added categorization fields for SSH login events in the system/auth fileset. {pull}11334[11334] *Heartbeat* diff --git a/dev-tools/ecs-migration.yml b/dev-tools/ecs-migration.yml index f12e7db4f37..2b55db8d50d 100644 --- a/dev-tools/ecs-migration.yml +++ b/dev-tools/ecs-migration.yml @@ -486,11 +486,6 @@ alias: true beat: filebeat -- from: system.auth.ssh.event - to: event.action - alias: true - beat: filebeat - - from: system.auth.program to: process.name alias: true diff --git a/filebeat/docs/fields.asciidoc b/filebeat/docs/fields.asciidoc index abaae4dff92..aec1f328044 100644 --- a/filebeat/docs/fields.asciidoc +++ b/filebeat/docs/fields.asciidoc @@ -13261,9 +13261,10 @@ The client IP from SSH connections that are open and immediately dropped. *`system.auth.ssh.event`*:: + -- -type: alias +example: Accepted + +The SSH event as found in the logs (Accepted, Invalid, Failed, etc.) -alias to: event.action -- diff --git a/filebeat/module/system/auth/_meta/fields.yml b/filebeat/module/system/auth/_meta/fields.yml index ece161df3ab..de859681432 100644 --- a/filebeat/module/system/auth/_meta/fields.yml +++ b/filebeat/module/system/auth/_meta/fields.yml @@ -43,9 +43,10 @@ The client IP from SSH connections that are open and immediately dropped. - name: event - type: alias - path: event.action - migration: true + example: Accepted + description: > + The SSH event as found in the logs (Accepted, Invalid, Failed, etc.) + - name: ip type: alias path: source.ip diff --git a/filebeat/module/system/auth/ingest/pipeline.json b/filebeat/module/system/auth/ingest/pipeline.json index a5496839970..c1fc3db92d5 100644 --- a/filebeat/module/system/auth/ingest/pipeline.json +++ b/filebeat/module/system/auth/ingest/pipeline.json @@ -9,8 +9,8 @@ "GREEDYMULTILINE" : "(.|\n)*" }, "patterns": [ - "%{SYSLOGTIMESTAMP:system.auth.timestamp} %{SYSLOGHOST:host.hostname} %{DATA:process.name}(?:\\[%{POSINT:process.pid:long}\\])?: %{DATA:event.outcome} %{DATA:system.auth.ssh.method} for (invalid user )?%{DATA:user.name} from %{IPORHOST:source.ip} port %{NUMBER:source.port:long} ssh2(: %{GREEDYDATA:system.auth.ssh.signature})?", - "%{SYSLOGTIMESTAMP:system.auth.timestamp} %{SYSLOGHOST:host.hostname} %{DATA:process.name}(?:\\[%{POSINT:process.pid:long}\\])?: %{DATA:event.outcome} user %{DATA:user.name} from %{IPORHOST:source.ip}", + "%{SYSLOGTIMESTAMP:system.auth.timestamp} %{SYSLOGHOST:host.hostname} %{DATA:process.name}(?:\\[%{POSINT:process.pid:long}\\])?: %{DATA:system.auth.ssh.event} %{DATA:system.auth.ssh.method} for (invalid user )?%{DATA:user.name} from %{IPORHOST:source.ip} port %{NUMBER:source.port:long} ssh2(: %{GREEDYDATA:system.auth.ssh.signature})?", + "%{SYSLOGTIMESTAMP:system.auth.timestamp} %{SYSLOGHOST:host.hostname} %{DATA:process.name}(?:\\[%{POSINT:process.pid:long}\\])?: %{DATA:system.auth.ssh.event} user %{DATA:user.name} from %{IPORHOST:source.ip}", "%{SYSLOGTIMESTAMP:system.auth.timestamp} %{SYSLOGHOST:host.hostname} %{DATA:process.name}(?:\\[%{POSINT:process.pid:long}\\])?: Did not receive identification string from %{IPORHOST:system.auth.ssh.dropped_ip}", "%{SYSLOGTIMESTAMP:system.auth.timestamp} %{SYSLOGHOST:host.hostname} %{DATA:process.name}(?:\\[%{POSINT:process.pid:long}\\])?: \\s*%{DATA:user.name} :( %{DATA:system.auth.sudo.error} ;)? TTY=%{DATA:system.auth.sudo.tty} ; PWD=%{DATA:system.auth.sudo.pwd} ; USER=%{DATA:system.auth.sudo.user} ; COMMAND=%{GREEDYDATA:system.auth.sudo.command}", "%{SYSLOGTIMESTAMP:system.auth.timestamp} %{SYSLOGHOST:host.hostname} %{DATA:process.name}(?:\\[%{POSINT:process.pid:long}\\])?: new group: name=%{DATA:group.name}, GID=%{NUMBER:group.id}", @@ -61,6 +61,13 @@ "target_field": "source.geo", "ignore_failure": true } + }, + { + "script": { + "lang": "painless", + "ignore_failure": true, + "source": "if (ctx.system.auth.ssh.event == \"Accepted\") { if (!ctx.containsKey(\"event\")) { ctx.event = [:]; } ctx.event.type = \"authentication_success\"; ctx.event.category = \"authentication\"; ctx.event.action = \"ssh_login\"; ctx.event.outcome = \"success\"; } else if (ctx.system.auth.ssh.event == \"Invalid\" || ctx.system.auth.ssh.event == \"Failed\") { if (!ctx.containsKey(\"event\")) { ctx.event = [:]; } ctx.event.type = \"authentication_failure\"; ctx.event.category = \"authentication\"; ctx.event.action = \"ssh_login\"; ctx.event.outcome = \"failure\"; }" + } } ], "on_failure" : [{ diff --git a/filebeat/module/system/auth/test/test.log-expected.json b/filebeat/module/system/auth/test/test.log-expected.json index c780956e8a5..b33632f39fd 100644 --- a/filebeat/module/system/auth/test/test.log-expected.json +++ b/filebeat/module/system/auth/test/test.log-expected.json @@ -3,7 +3,11 @@ "ecs.version": "1.0.0", "event.dataset": "system.auth", "event.module": "system", - "event.outcome": "Accepted", + "system.auth.ssh.event": "Accepted", + "event.outcome": "success", + "event.category": "authentication", + "event.action": "ssh_login", + "event.type": "authentication_success", "fileset.name": "auth", "host.hostname": "localhost", "input.type": "log", @@ -21,7 +25,11 @@ "ecs.version": "1.0.0", "event.dataset": "system.auth", "event.module": "system", - "event.outcome": "Accepted", + "system.auth.ssh.event": "Accepted", + "event.outcome": "success", + "event.category": "authentication", + "event.action": "ssh_login", + "event.type": "authentication_success", "fileset.name": "auth", "host.hostname": "localhost", "input.type": "log", @@ -38,7 +46,11 @@ "ecs.version": "1.0.0", "event.dataset": "system.auth", "event.module": "system", - "event.outcome": "Invalid", + "system.auth.ssh.event": "Invalid", + "event.outcome": "failure", + "event.category": "authentication", + "event.action": "ssh_login", + "event.type": "authentication_failure", "fileset.name": "auth", "host.hostname": "localhost", "input.type": "log", @@ -53,7 +65,11 @@ "ecs.version": "1.0.0", "event.dataset": "system.auth", "event.module": "system", - "event.outcome": "Failed", + "system.auth.ssh.event": "Failed", + "event.outcome": "failure", + "event.category": "authentication", + "event.action": "ssh_login", + "event.type": "authentication_failure", "fileset.name": "auth", "host.hostname": "slave22", "input.type": "log", @@ -170,4 +186,4 @@ "user.id": "48", "user.name": "apache" } -] \ No newline at end of file +] diff --git a/filebeat/module/system/fields.go b/filebeat/module/system/fields.go index a34fbdc06d7..4cfa76bf8c7 100644 --- a/filebeat/module/system/fields.go +++ b/filebeat/module/system/fields.go @@ -32,5 +32,5 @@ func init() { // AssetSystem returns asset data. // This is the base64 encoded gzipped contents of module/system. func AssetSystem() string { - return "eJzsmM9u4zYQxu9+ioEve1o/gA9FgQWKFug/ILn05GXIkTRYiiOQo3XUpy8oyY5iUw6luO0lOhmWZn4fP3HIET/DN+z2ELogWG8AhMTiHrYP/R/bDYDBoD01Quz28MMGAOA3Nq1FKNhDo3wgV44JwHIJBVkMuw1AqNjLQbMrqNyD+BY3AAWhNWHf5/kMTtU4ocdLugb3UHpum/GfhIJ4/dRngsJzDVJhUkK8psQpVbVSnf9McW+wU/xfybXPfVb29LeKIVHMWUdKy1SPUI1BVN28unsSpiypcHGnUVLt4dOP58hPFw/UVHo1aB/tv8ZWHCT+WkiNYbuZ2Bxs47n0ql5IbTxrDGG3FkpmJfA6ModXYwiqXGptOiqH1wb0C2ExZImdSW4IVRJ7WU0wUwJTx6TiS6tvluFwPVYIDw8/9+WHTkgP9Tek28EX5eAJgR0CF7BtVAhH9mYL7GHbtE+W9DfstrsZVYFKp6T1lyZlCjuHR3hcKrQldAIDOK7Ac2DjuWnQHOjSxZPDiRtZkkYFv/w5rF/ROs3OoY5hAaRSAioKbtCBcgaortGQErTdSdUuPSle1ON3dDIjPDUjT3Oyj9upXsvVI7fq4AU9a9gtbuDWa9wlYvOgDfs1wx2xyeisMnxRUCLPjjxVjHPlOM2p2Qk5dHJILBNvj/FqnCXyLiPnbctfC2yd+O5AgQ+azd0kZmTNF2l5WJLuI+5mtnxRHktid8f3+lbCBS+VpLvnhLuZbrFj951qOUmX7cet4ewN+Y39YmxzQ4OaCtIgPKzPAbRHJWjgqes3ta+R+hU017Vy5nJHu73to/d82bkA4LOqGzv2NfD7H49Arh8b+mtns7a9nnNqsGI2rQIOXw+t4ZN2KBRZvBrCuVGXbh398fEvOFboE0QKgM+oW5nHNseVfZFuvY+bvSGPWth37xCR6DAn78kzX29hWRpF+RJleNHCcKxIV0mB4UiiK3LlnMLx2ZVWjaCTDfCdVC9hpteZ2qJM+uPiX625Ebyy7CpOLIhTbTM2xTgo2Br0/SlAlOLwOHxMzPXQFVq7BmawUK2VIcEN3Aw3uei/3ZTNfRfl9oLt1QdjNjURmccsVzH7+bkEmqyAPsv/UgIn8soaWDk/BtfeMUH+o5c1OWOzXG4uWQvOu76wE0UujH6+OnizPD0C/DjySmI/jrzeeeT1TwAAAP//TwGvPg==" + return "eJzsmM2O2zYQx+9+ioEvaYFED+BD0SJA0AD9AnYvPTlcciQRoTgCOVqv+vQF9bHRypRNad3msjoZkmd+fw05H+IH+IrtAXzrGasdAGs2eID9XXdjvwNQ6KXTNWuyB/hpBwDwO6nGIOTkoBbOa1sMDsBQAbk26LMdgC/J8VGSzXVxAHYN7gByjUb5Q+fnA1hR4YQeLm5rPEDhqKmHOxEF4frUeYLcUQVcYlRCuKbEKVU0XD7fjHEvsGP837Rtnjqv5PQ/IpgEMc86YlqmelhX6FlU9YunozBhtPCzJ7Xg8gDvfn62fDf7Q6ULJ3rtQ/jPsSV5Dr9WUoNZtmCbgq0dFU5UK6m1I4neZ1uhWm0Enlum8Cr0XhRrQxu3SuE1Ht1KWDBZE84o1/syip1nEyykwDRiXNI81BfTsL/uS4S7u1+79EPLWvb517vL4KOw8IBAFoFy2NfC+xM5tQdysK+bB6PlV2z32YIqrwsruHHzICUKezYP8FAqpNFoGXpwqMBLYOWorlEd9TyKY4QjD5IkDQo+/9XXrxA6SdaiDGYeuBQMIgiu0YKwCnRVodKC0bSjqiy+Kb6px0e0fCYAn0RVhybzi5RYM75itTsACA85NUGj7aIbii78MHp/D5/tozBavYdPQptwA1lmP14TvxjyWC6N2eSpcRKziO2l9J0UKHLnAUvGRq2TEvmbggJp8c1j6byU0FOfkixri5aPkUJz/R3P3rNAyhJ8Xg75S4GNZdcetaejJHUziQle00Ua6ovabcRd9JYuymGhyd5wXa85XLGomttbbriL7lZH7LZbLcXpuo7eKEpu6Vfq9TAo+xqlzrUEpr5we5AOBaOCh7Yr3F8C9QtIqiph1bwnXh4c0Dmazz6TXhPGHPjjz/vQIwIF3Xlkk9pOxxlHtOBNCo/990ejaNQOeddqlto6c7uNfn//N5xKdBGi9oBPKBtextanjb1WNs6FTqu0Q8nk2leIiMyok3VyROctLEkjC1cg9wvNBKdSyzIq0J80y1LbYknh8N+NoRpAYxjgUYtOwsK0NA2LUPHPk/805wbwxrQrKVIQp9oWwhTsICej0HXnCEGKxVP/ObI0hZdozBaYwlw0hnsHF3AL3GjRvz6ULX1Zpc6CzdknZzI1YpnGLDYxu/25BhrNgM7Ld0mBkbwxBzbujz5qr9gg/9NiTU7pDBW7OWvFidlHsiy09UM8XxzdGZoeIr4dmkWxb4dmrzw0+zcAAP//vfvB9g==" } From 4588257c72c07cf100d192ee549f8721a9da2323 Mon Sep 17 00:00:00 2001 From: Jaime Soriano Pastor Date: Thu, 21 Mar 2019 11:03:43 +0100 Subject: [PATCH 243/332] Fix authentication in HTTP helper (#11353) After the refactor done in #11032, baseData was not being passed to the HTTP helper, so authentication was not working. Added a test to avoid regressions here. Fix #11351 --- metricbeat/helper/http.go | 1 + metricbeat/helper/http_test.go | 42 ++++++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) diff --git a/metricbeat/helper/http.go b/metricbeat/helper/http.go index 1f738b97d18..a8d910a1043 100644 --- a/metricbeat/helper/http.go +++ b/metricbeat/helper/http.go @@ -81,6 +81,7 @@ func newHTTPFromConfig(config Config, name string, hostData mb.HostData) (*HTTP, } return &HTTP{ + hostData: hostData, client: &http.Client{ Transport: &http.Transport{ Dial: dialer.Dial, diff --git a/metricbeat/helper/http_test.go b/metricbeat/helper/http_test.go index aee80166fa2..21b4ce69729 100644 --- a/metricbeat/helper/http_test.go +++ b/metricbeat/helper/http_test.go @@ -113,6 +113,48 @@ func TestConnectTimeout(t *testing.T) { checkTimeout(t, h) } +func TestAuthentication(t *testing.T) { + expectedUser := "elastic" + expectedPassword := "super1234" + ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + user, password, ok := r.BasicAuth() + if !ok || user != expectedUser || password != expectedPassword { + w.WriteHeader(http.StatusUnauthorized) + } + })) + defer ts.Close() + + cfg := defaultConfig() + + // Unauthorized + hostData := mb.HostData{ + URI: ts.URL, + SanitizedURI: ts.URL, + } + h, err := newHTTPFromConfig(cfg, "test", hostData) + require.NoError(t, err) + + response, err := h.FetchResponse() + response.Body.Close() + assert.NoError(t, err) + assert.Equal(t, http.StatusUnauthorized, response.StatusCode, "response status code") + + // Authorized + hostData = mb.HostData{ + URI: ts.URL, + SanitizedURI: ts.URL, + User: expectedUser, + Password: expectedPassword, + } + h, err = newHTTPFromConfig(cfg, "test", hostData) + require.NoError(t, err) + + response, err = h.FetchResponse() + response.Body.Close() + assert.NoError(t, err) + assert.Equal(t, http.StatusOK, response.StatusCode, "response status code") +} + func checkTimeout(t *testing.T, h *HTTP) { t.Helper() From f76f2936bd12c96b4312cdb89a2b2f88d03d0302 Mon Sep 17 00:00:00 2001 From: Jaime Soriano Pastor Date: Thu, 21 Mar 2019 11:13:13 +0100 Subject: [PATCH 244/332] Don't use multiline options in Logstash module with json format (#11346) --- CHANGELOG.next.asciidoc | 1 + filebeat/module/logstash/log/config/log.yml | 3 ++ .../log/test/logstash-json.log-expected.json | 34 +++++++++++++++++-- 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index b0d02623166..22953397fc6 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -179,6 +179,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Change URLPATH grok pattern to support brackets. {issue}11135[11135] {pull}11252[11252] - Add support for iis log with different address format. {issue}11255[11255] {pull}11256[11256] - Add fix to parse syslog message with priority value 0. {issue}11010[11010] +- Don't apply multiline rules in Logstash json logs. {pull}11346[11346] *Heartbeat* diff --git a/filebeat/module/logstash/log/config/log.yml b/filebeat/module/logstash/log/config/log.yml index e1671a4afb0..8ecf4e1db78 100644 --- a/filebeat/module/logstash/log/config/log.yml +++ b/filebeat/module/logstash/log/config/log.yml @@ -4,10 +4,13 @@ paths: - {{$path}} {{ end }} exclude_files: [".gz$"] + +{{ if eq .format "plain" }} multiline: pattern: ^\[[0-9]{4}-[0-9]{2}-[0-9]{2} negate: true match: after +{{ end }} {{ if .convert_timezone }} processors: diff --git a/filebeat/module/logstash/log/test/logstash-json.log-expected.json b/filebeat/module/logstash/log/test/logstash-json.log-expected.json index 898cc27bb96..38a8070b44f 100644 --- a/filebeat/module/logstash/log/test/logstash-json.log-expected.json +++ b/filebeat/module/logstash/log/test/logstash-json.log-expected.json @@ -6,9 +6,6 @@ "event.module": "logstash", "fileset.name": "log", "input.type": "log", - "log.flags": [ - "multiline" - ], "log.level": "INFO", "log.offset": 0, "logstash.log.log_event.count": 1, @@ -28,5 +25,36 @@ "logstash.log.thread": "Ruby-0-Thread-1: /Users/mat/work/elastic/releases/6.5.1/logstash/lib/bootstrap/environment.rb:6", "message": "Pipelines running", "service.type": "logstash" + }, + { + "@timestamp": "2019-01-07T21:25:22.538Z", + "ecs.version": "1.0.0", + "event.dataset": "logstash.log", + "event.module": "logstash", + "fileset.name": "log", + "input.type": "log", + "log.level": "INFO", + "log.offset": 357, + "logstash.log.log_event.pipeline_id": "main", + "logstash.log.log_event.thread": "#", + "logstash.log.module": "logstash.pipeline", + "logstash.log.thread": "[main]>worker7", + "message": "Pipeline has terminated", + "service.type": "logstash" + }, + { + "@timestamp": "2019-01-07T21:25:22.594Z", + "ecs.version": "1.0.0", + "event.dataset": "logstash.log", + "event.module": "logstash", + "fileset.name": "log", + "input.type": "log", + "log.level": "INFO", + "log.offset": 566, + "logstash.log.log_event.port": 9600, + "logstash.log.module": "logstash.agent", + "logstash.log.thread": "Api Webserver", + "message": "Successfully started Logstash API endpoint", + "service.type": "logstash" } ] \ No newline at end of file From 33164eb6d6bd6e6d8a8926a7f93ce6fa444bc3d6 Mon Sep 17 00:00:00 2001 From: Chris Mark Date: Thu, 21 Mar 2019 12:53:58 +0200 Subject: [PATCH 245/332] Replace dashboard screenshot (#11356) Signed-off-by: Chris --- .../docs/images/filebeat_nats_dashboard.png | Bin 289124 -> 237606 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/filebeat/docs/images/filebeat_nats_dashboard.png b/filebeat/docs/images/filebeat_nats_dashboard.png index 5028e92244c77a5ccf160824cde0e7319f5403b8..62663036d282e0fb1e28459f97e2165de2d0f558 100644 GIT binary patch literal 237606 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�PZWs~!N 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�{yv+i{l7ZfdSQ3WBTysj?&~vL9-_oF> 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 DAmX}~ literal 289124 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

K(Cx(iDR$Jl|Gm`mYn56mLo~XWsI|^R#M$ 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 Date: Thu, 21 Mar 2019 12:43:12 +0100 Subject: [PATCH 246/332] Try to avoid flakiness on http helper timeout tests (#11345) Block the response only during a time or till the conext is done. Close body if a request object is returned. --- metricbeat/helper/http_test.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/metricbeat/helper/http_test.go b/metricbeat/helper/http_test.go index 21b4ce69729..e931b3f85a5 100644 --- a/metricbeat/helper/http_test.go +++ b/metricbeat/helper/http_test.go @@ -77,10 +77,11 @@ func TestGetAuthHeaderFromTokenNoFile(t *testing.T) { } func TestTimeout(t *testing.T) { - c := make(chan struct{}) - defer close(c) ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - <-c + select { + case <-time.After(5 * time.Nanosecond): + case <-r.Context().Done(): + } })) defer ts.Close() @@ -160,8 +161,11 @@ func checkTimeout(t *testing.T, h *HTTP) { done := make(chan struct{}) go func() { - _, err := h.FetchResponse() + response, err := h.FetchResponse() assert.Error(t, err) + if response != nil { + response.Body.Close() + } done <- struct{}{} }() From 8696d2c85810c022bb7b9d2ddb5d83405d89c1b0 Mon Sep 17 00:00:00 2001 From: Alex K <8418476+fearful-symmetry@users.noreply.github.com> Date: Thu, 21 Mar 2019 08:10:38 -0500 Subject: [PATCH 247/332] [Metricbeat] Migrate mysql/galera_status to ReporterV2 (#11324) * Migrate mysql/galera_status to ReporterV2 --- .../module/mysql/galera_status/status.go | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/metricbeat/module/mysql/galera_status/status.go b/metricbeat/module/mysql/galera_status/status.go index babe8b48ecc..ba95a43f3a1 100644 --- a/metricbeat/module/mysql/galera_status/status.go +++ b/metricbeat/module/mysql/galera_status/status.go @@ -27,18 +27,13 @@ package galera_status import ( "database/sql" - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/logp" + "github.com/elastic/beats/libbeat/common/cfgwarn" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/module/mysql" "github.com/pkg/errors" ) -var ( - debugf = logp.MakeDebug("mysql-galera-status") -) - // init registers the MetricSet with the central registry. func init() { mb.Registry.MustAddMetricSet("mysql", "galera_status", New, @@ -55,23 +50,24 @@ type MetricSet struct { // New create a new instance of the MetricSet // Loads query_mode config setting from the config file func New(base mb.BaseMetricSet) (mb.MetricSet, error) { + cfgwarn.Experimental("The galera_status metricset is experimental.") return &MetricSet{BaseMetricSet: base}, nil } // Fetch methods implements the data gathering and data conversion to the right format // It returns the event which is then forward to the output. -func (m *MetricSet) Fetch() (common.MapStr, error) { +func (m *MetricSet) Fetch(reporter mb.ReporterV2) error { if m.db == nil { var err error m.db, err = mysql.NewDB(m.HostData().URI) if err != nil { - return nil, errors.Wrap(err, "Galera-status fetch failed") + return errors.Wrap(err, "Galera-status fetch failed") } } status, err := m.loadStatus(m.db) if err != nil { - return nil, err + return err } event := eventMapping(status) @@ -79,7 +75,12 @@ func (m *MetricSet) Fetch() (common.MapStr, error) { if m.Module().Config().Raw { event["raw"] = rawEventMapping(status) } - return event, nil + + reporter.Event(mb.Event{ + MetricSetFields: event, + }) + + return nil } // loadStatus loads all status entries from the given database into an array. From 6865403b24322a0ac3bdd5c05e75380e8ac16f57 Mon Sep 17 00:00:00 2001 From: Adrian Serrano Date: Thu, 21 Mar 2019 15:02:03 +0100 Subject: [PATCH 248/332] Fix Winlogbeat escaping CRLF and TAB characters (#11357) Previous fix (#11006) made Winlogbeat escape CRLF control characters which are expected in Windows event logs. Fixes #11328 --- CHANGELOG.next.asciidoc | 1 + winlogbeat/sys/event_test.go | 21 ++++++----------- winlogbeat/sys/xmlreader.go | 2 +- winlogbeat/tests/system/test_eventlogging.py | 24 ++++++++++++++++++++ winlogbeat/tests/system/test_wineventlog.py | 24 ++++++++++++++++++++ 5 files changed, 57 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 22953397fc6..0049d16aa35 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -223,6 +223,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d *Winlogbeat* - Prevent Winlogbeat from dropping events with invalid XML. {pull}11006{11006} +- Fix Winlogbeat escaping CR, LF and TAB characters. {issue}11328[11328] {pull}11357[11357] *Functionbeat* diff --git a/winlogbeat/sys/event_test.go b/winlogbeat/sys/event_test.go index c77c05c2ea3..c9c1af3a756 100644 --- a/winlogbeat/sys/event_test.go +++ b/winlogbeat/sys/event_test.go @@ -21,6 +21,7 @@ import ( "encoding/json" "encoding/xml" "fmt" + "strings" "testing" "time" @@ -168,21 +169,13 @@ func TestXML(t *testing.T) { } } +// Tests that control characters other than CR and LF are escaped +// when the event is decoded. func TestInvalidXML(t *testing.T) { - eventXML := fmt.Sprintf(` - - - - {00000000-0000-0000-0000-000000000000} - じゃあ宇宙カウボーイ。。。%s - - - -`, "\x1b") - _, err := UnmarshalEventXML([]byte(eventXML)) - if !assert.NoError(t, err) { - assert.Equal(t, err.Error(), "XML syntax error on line 6: illegal character code U+001B") - } + evXML := strings.Replace(allXML, "%1", "\t \n\x1b", -1) + ev, err := UnmarshalEventXML([]byte(evXML)) + assert.Equal(t, nil, err) + assert.Equal(t, "Creating WSMan shell on server with ResourceUri: \t\r\n\\u001b", ev.Message) } func BenchmarkXMLUnmarshal(b *testing.B) { diff --git a/winlogbeat/sys/xmlreader.go b/winlogbeat/sys/xmlreader.go index 8eb23e1ce14..ba51c90dcd5 100644 --- a/winlogbeat/sys/xmlreader.go +++ b/winlogbeat/sys/xmlreader.go @@ -58,7 +58,7 @@ func (r *xmlSafeReader) Read(d []byte) (n int, err error) { } for i := 0; i < len(r.buf); { code, size := utf8.DecodeRune(r.buf[i:]) - if unicode.IsControl(code) { + if !unicode.IsSpace(code) && unicode.IsControl(code) { n = copy(d, r.buf[:i]) r.buf = r.buf[n+1:] r.code = []byte(fmt.Sprintf("\\u%04x", code)) diff --git a/winlogbeat/tests/system/test_eventlogging.py b/winlogbeat/tests/system/test_eventlogging.py index 455d154ecc0..e772b5b9ceb 100644 --- a/winlogbeat/tests/system/test_eventlogging.py +++ b/winlogbeat/tests/system/test_eventlogging.py @@ -234,3 +234,27 @@ def test_processors(self): evts = self.read_events(config) self.assertTrue(len(evts), 1) self.assertNotIn("message", evts[0]) + + def test_multiline_events(self): + """ + eventlogging - Event with newlines and control characters + """ + msg = """ +A trusted logon process has been registered with the Local Security Authority. +This logon process will be trusted to submit logon requests. + +Subject: + +Security ID: SYSTEM +Account Name: MS4\x1e$ +Account Domain: WORKGROUP +Logon ID: 0x3e7 +Logon Process Name: IKE""" + self.write_event_log(msg) + evts = self.read_events() + self.assertTrue(len(evts), 1) + self.assertEqual(unicode(self.api), evts[0]["winlog.api"], evts[0]) + self.assertNotIn("event.original", evts[0], msg=evts[0]) + self.assertIn("message", evts[0], msg=evts[0]) + self.assertNotIn("\\u000a", evts[0]["message"], msg=evts[0]) + self.assertEqual(unicode(msg), evts[0]["message"].decode('unicode-escape'), msg=evts[0]) diff --git a/winlogbeat/tests/system/test_wineventlog.py b/winlogbeat/tests/system/test_wineventlog.py index df649fd1453..61649c86507 100644 --- a/winlogbeat/tests/system/test_wineventlog.py +++ b/winlogbeat/tests/system/test_wineventlog.py @@ -388,3 +388,27 @@ def test_processors(self): evts = self.read_events(config) self.assertTrue(len(evts), 1) self.assertNotIn("message", evts[0]) + + def test_multiline_events(self): + """ + wineventlog - Event with newlines and control characters + """ + msg = """ +A trusted logon process has been registered with the Local Security Authority. +This logon process will be trusted to submit logon requests. + +Subject: + +Security ID: SYSTEM +Account Name: MS4\x1e$ +Account Domain: WORKGROUP +Logon ID: 0x3e7 +Logon Process Name: IKE""" + self.write_event_log(msg) + evts = self.read_events() + self.assertTrue(len(evts), 1) + self.assertEqual(unicode(self.api), evts[0]["winlog.api"], msg=evts[0]) + self.assertNotIn("event.original", evts[0], msg=evts[0]) + self.assertIn("message", evts[0], msg=evts[0]) + self.assertNotIn("\\u000a", evts[0]["message"], msg=evts[0]) + self.assertEqual(unicode(msg), evts[0]["message"].decode('unicode-escape'), msg=evts[0]) From 02d29c6f9eff1d97c1dbfa9bf14c3175023c4de5 Mon Sep 17 00:00:00 2001 From: Lukas Olson Date: Thu, 21 Mar 2019 13:34:21 -0700 Subject: [PATCH 249/332] Default Beats Kibana dashboards to KQL instead of Lucene (#11268) Closes https://github.com/elastic/beats/issues/10969. In Kibana as of 7.0, the default query language is no longer Lucene, but KQL (Kibana Query Language). This PR updates all of the JSON objects to use the new language, and modifies any existing queries to the new syntax (if needed - most of them stayed the same). --- .../auditbeat-kernel-executions.json | 12 +- .../dashboard/auditbeat-kernel-overview.json | 6 +- .../7/dashboard/auditbeat-kernel-sockets.json | 18 +- .../7/dashboard/auditbeat-file-integrity.json | 99 +- .../kibana/7/dashboard/Filebeat-apache.json | 17 +- .../kibana/7/dashboard/Filebeat-auditd.json | 35 +- .../dashboard/Filebeat-haproxy-overview.json | 10 +- .../dashboard/Filebeat-icinga-debug-log.json | 13 +- .../7/dashboard/Filebeat-icinga-main-log.json | 11 +- .../Filebeat-icinga-startup-errors.json | 16 +- .../kibana/7/dashboard/Filebeat-iis.json | 14 +- .../7/dashboard/Filebeat-Kafka-overview.json | 10 +- .../7/dashboard/Filebeat-logstash-log.json | 8 +- .../dashboard/Filebeat-logstash-slowlog.json | 12 +- .../dashboard/Filebeat-Mongodb-overview.json | 8 +- .../kibana/7/dashboard/Filebeat-mysql.json | 17 +- .../7/dashboard/Filebeat-nats-overview.json | 20 +- .../7/dashboard/Filebeat-nginx-logs.json | 17 +- .../7/dashboard/Filebeat-nginx-overview.json | 854 +++++++++--------- .../7/dashboard/osquery-compliance.json | 22 +- .../kibana/7/dashboard/osquery-rootkit.json | 8 +- .../Filebeat-Postgresql-overview.json | 6 +- .../Filebeat-Postgresql-slowlogs.json | 11 +- .../kibana/7/dashboard/Filebeat-redis.json | 34 +- .../Filebeat-auth-sudo-commands.json | 21 +- .../Filebeat-new-users-and-groups.json | 21 +- .../Filebeat-ssh-login-attempts.json | 27 +- .../kibana/7/dashboard/Filebeat-syslog.json | 13 +- .../dashboard/Filebeat-traefik-overview.json | 37 +- .../7/dashboard/Journalbeat-overview.json | 10 +- libbeat/dashboards/modify_json_test.go | 4 +- libbeat/kibana/testdata/beat-6.json | 2 +- libbeat/kibana/testdata/fields.yml | 10 +- .../dashboard/Metricbeat-apache-overview.json | 13 +- .../dashboard/Metricbeat-docker-overview.json | 29 +- .../dashboard/Metricbeat-golang-overview.json | 63 +- .../dashboard/Metricbeat-haproxy-backend.json | 2 +- .../Metricbeat-haproxy-frontend.json | 2 +- .../Metricbeat-haproxy-http-backend.json | 2 +- .../Metricbeat-haproxy-http-frontend.json | 2 +- .../Metricbeat-haproxy-http-server.json | 2 +- .../Metricbeat-haproxy-overview.json | 2 +- .../Metricbeat-haproxy-visualizations.json | 8 +- .../dashboard/Metricbeat-kafka-overview.json | 4 +- .../Metricbeat-kubernetes-apiserver.json | 2 +- .../Metricbeat-kubernetes-overview.json | 86 +- .../Metricbeat-mongodb-overview.json | 13 +- .../dashboard/Metricbeat-mysql-overview.json | 9 +- .../7/dashboard/Metricbeat-nats-overview.json | 26 +- .../dashboard/metricbeat-nginx-overview.json | 2 +- .../Metricbeat-rabbitmq-overview.json | 13 +- .../dashboard/Metricbeat-redis-overview.json | 17 +- .../Metricbeat-containers-overview.json | 45 +- .../7/dashboard/Metricbeat-host-overview.json | 168 +--- .../dashboard/Metricbeat-system-overview.json | 96 +- .../dashboard/Metricbeat-uwsgi-overview.json | 4 +- .../dashboard/metricbeat-windows-service.json | 14 +- .../Metricbeat-zookeeper-overview.json | 12 +- .../7/dashboard/Packetbeat-cassandra.json | 81 +- .../kibana/7/dashboard/Packetbeat-dhcpv4.json | 4 +- .../7/dashboard/Packetbeat-dns-overview.json | 25 +- .../7/dashboard/Packetbeat-dns-tunneling.json | 13 +- .../kibana/7/dashboard/Packetbeat-flows.json | 28 +- .../kibana/7/dashboard/Packetbeat-http.json | 39 +- .../7/dashboard/Packetbeat-mongodb.json | 33 +- .../kibana/7/dashboard/Packetbeat-mysql.json | 41 +- .../kibana/7/dashboard/Packetbeat-nfs.json | 31 +- .../7/dashboard/Packetbeat-overview.json | 45 +- .../kibana/7/dashboard/Packetbeat-pgsql.json | 36 +- .../kibana/7/dashboard/Packetbeat-thrift.json | 32 +- .../kibana/7/dashboard/Packetbeat-tls.json | 89 +- packetbeat/docs/filtering.asciidoc | 4 +- .../7/dashboard/Winlogbeat-overview.json | 43 +- .../auditbeat-system-host-dashboard.json | 2 +- .../auditbeat-system-login-dashboard.json | 16 +- .../auditbeat-system-overview-dashboard.json | 32 +- .../auditbeat-system-package-dashboard.json | 16 +- .../auditbeat-system-process-dashboard.json | 18 +- .../auditbeat-system-socket-dashboard.json | 24 +- .../auditbeat-system-user-dashboard.json | 16 +- .../filebeat-network-flows-top-n.json | 16 +- .../Metricbeat-mssql-performance.json | 12 +- .../Metricbeat-mssql-transaction_log.json | 18 +- 83 files changed, 1040 insertions(+), 1733 deletions(-) diff --git a/auditbeat/module/auditd/_meta/kibana/7/dashboard/auditbeat-kernel-executions.json b/auditbeat/module/auditd/_meta/kibana/7/dashboard/auditbeat-kernel-executions.json index 6fe85f307d8..765e625b878 100644 --- a/auditbeat/module/auditd/_meta/kibana/7/dashboard/auditbeat-kernel-executions.json +++ b/auditbeat/module/auditd/_meta/kibana/7/dashboard/auditbeat-kernel-executions.json @@ -7,7 +7,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -63,7 +63,7 @@ "filter": [], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -115,7 +115,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -231,8 +231,8 @@ "highlightAll": true, "index": "auditbeat-*", "query": { - "language": "lucene", - "query": "*" + "language": "kuery", + "query": "" }, "version": true } @@ -258,7 +258,7 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true diff --git a/auditbeat/module/auditd/_meta/kibana/7/dashboard/auditbeat-kernel-overview.json b/auditbeat/module/auditd/_meta/kibana/7/dashboard/auditbeat-kernel-overview.json index fcad7083c3f..452017e32a6 100644 --- a/auditbeat/module/auditd/_meta/kibana/7/dashboard/auditbeat-kernel-overview.json +++ b/auditbeat/module/auditd/_meta/kibana/7/dashboard/auditbeat-kernel-overview.json @@ -82,7 +82,7 @@ "filter": [], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -191,7 +191,7 @@ "highlightAll": true, "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true @@ -218,7 +218,7 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true diff --git a/auditbeat/module/auditd/_meta/kibana/7/dashboard/auditbeat-kernel-sockets.json b/auditbeat/module/auditd/_meta/kibana/7/dashboard/auditbeat-kernel-sockets.json index 5df146f0413..00681daf5ff 100644 --- a/auditbeat/module/auditd/_meta/kibana/7/dashboard/auditbeat-kernel-sockets.json +++ b/auditbeat/module/auditd/_meta/kibana/7/dashboard/auditbeat-kernel-sockets.json @@ -35,7 +35,7 @@ } ], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -129,7 +129,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -223,7 +223,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -388,7 +388,7 @@ "filter": [], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -545,7 +545,7 @@ "highlightAll": true, "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true @@ -652,7 +652,7 @@ "highlightAll": true, "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true @@ -782,7 +782,7 @@ "highlightAll": true, "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true @@ -809,8 +809,8 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", - "query": "*" + "language": "kuery", + "query": "" }, "version": true } diff --git a/auditbeat/module/file_integrity/_meta/kibana/7/dashboard/auditbeat-file-integrity.json b/auditbeat/module/file_integrity/_meta/kibana/7/dashboard/auditbeat-file-integrity.json index 3031ed31941..97e11626c35 100644 --- a/auditbeat/module/file_integrity/_meta/kibana/7/dashboard/auditbeat-file-integrity.json +++ b/auditbeat/module/file_integrity/_meta/kibana/7/dashboard/auditbeat-file-integrity.json @@ -8,14 +8,8 @@ "filter": [], "index": "auditbeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "default_field": "*", - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -114,14 +108,8 @@ "filter": [], "index": "auditbeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "default_field": "*", - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -253,14 +241,8 @@ "filter": [], "index": "auditbeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "default_field": "*", - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -315,14 +297,8 @@ "filter": [], "index": "auditbeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "default_field": "*", - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -377,15 +353,9 @@ "filter": [], "index": "auditbeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "default_field": "*", + "language": "kuery", "query": "event.action:updated OR event.action:attributes_modified" } - } - } } }, "savedSearchId": "a380a060-cb44-11e7-9835-2f31fe08873b-ecs", @@ -540,8 +510,8 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", - "query": "*" + "language": "kuery", + "query": "" } } }, @@ -639,14 +609,8 @@ "filter": [], "index": "auditbeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "default_field": "*", - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -744,14 +708,8 @@ "filter": [], "index": "auditbeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "default_field": "*", - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -835,15 +793,9 @@ "filter": [], "index": "auditbeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "default_field": "*", + "language": "kuery", "query": "event.action:deleted" } - } - } } }, "savedSearchId": "a380a060-cb44-11e7-9835-2f31fe08873b-ecs", @@ -897,15 +849,9 @@ "filter": [], "index": "auditbeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "default_field": "*", + "language": "kuery", "query": "event.action:created" } - } - } } }, "savedSearchId": "a380a060-cb44-11e7-9835-2f31fe08873b-ecs", @@ -992,7 +938,7 @@ "highlightAll": true, "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true @@ -1019,13 +965,8 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } diff --git a/filebeat/module/apache/_meta/kibana/7/dashboard/Filebeat-apache.json b/filebeat/module/apache/_meta/kibana/7/dashboard/Filebeat-apache.json index 565551631cd..0459a890331 100644 --- a/filebeat/module/apache/_meta/kibana/7/dashboard/Filebeat-apache.json +++ b/filebeat/module/apache/_meta/kibana/7/dashboard/Filebeat-apache.json @@ -448,11 +448,9 @@ }, "index": "filebeat-*", "query": { - "query_string": { - "analyze_wildcard": true, + "language": "kuery", "query": "event.dataset:apache.error" } - } } }, "sort": [ @@ -494,11 +492,9 @@ }, "index": "filebeat-*", "query": { - "query_string": { - "analyze_wildcard": true, + "language": "kuery", "query": "event.dataset:apache.access" } - } } }, "sort": [ @@ -521,13 +517,8 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } diff --git a/filebeat/module/auditd/_meta/kibana/7/dashboard/Filebeat-auditd.json b/filebeat/module/auditd/_meta/kibana/7/dashboard/Filebeat-auditd.json index 4c8e9d8111c..e45db5bb334 100644 --- a/filebeat/module/auditd/_meta/kibana/7/dashboard/Filebeat-auditd.json +++ b/filebeat/module/auditd/_meta/kibana/7/dashboard/Filebeat-auditd.json @@ -8,10 +8,8 @@ "filter": [], "index": "filebeat-*", "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } + "language": "kuery", + "query": "" } } }, @@ -63,11 +61,9 @@ "filter": [], "index": "filebeat-*", "query": { - "query_string": { - "analyze_wildcard": true, + "language": "kuery", "query": "event.action:EXECVE" } - } } }, "title": "Top Exec Commands [Filebeat Auditd] ECS", @@ -156,10 +152,8 @@ "filter": [], "index": "filebeat-*", "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } + "language": "kuery", + "query": "" } } }, @@ -232,10 +226,8 @@ "filter": [], "index": "filebeat-*", "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } + "language": "kuery", + "query": "" } } }, @@ -295,10 +287,8 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "query_string": { - "analyze_wildcard": true, + "language": "kuery", "query": "event.dataset:auditd.log" - } }, "version": true } @@ -323,13 +313,8 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } diff --git a/filebeat/module/haproxy/_meta/kibana/7/dashboard/Filebeat-haproxy-overview.json b/filebeat/module/haproxy/_meta/kibana/7/dashboard/Filebeat-haproxy-overview.json index bb605e9a680..66fe61ed6cd 100644 --- a/filebeat/module/haproxy/_meta/kibana/7/dashboard/Filebeat-haproxy-overview.json +++ b/filebeat/module/haproxy/_meta/kibana/7/dashboard/Filebeat-haproxy-overview.json @@ -8,7 +8,7 @@ "filter": [], "index": "filebeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -72,7 +72,7 @@ "filter": [], "index": "filebeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -136,7 +136,7 @@ "filter": [], "index": "filebeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -219,7 +219,7 @@ "filter": [], "index": "filebeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -361,7 +361,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } diff --git a/filebeat/module/icinga/_meta/kibana/7/dashboard/Filebeat-icinga-debug-log.json b/filebeat/module/icinga/_meta/kibana/7/dashboard/Filebeat-icinga-debug-log.json index cb05cb4f74e..281bea5dfa7 100644 --- a/filebeat/module/icinga/_meta/kibana/7/dashboard/Filebeat-icinga-debug-log.json +++ b/filebeat/module/icinga/_meta/kibana/7/dashboard/Filebeat-icinga-debug-log.json @@ -211,8 +211,8 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "language": "lucene", - "query": "*" + "language": "kuery", + "query": "" }, "version": true } @@ -237,13 +237,8 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } diff --git a/filebeat/module/icinga/_meta/kibana/7/dashboard/Filebeat-icinga-main-log.json b/filebeat/module/icinga/_meta/kibana/7/dashboard/Filebeat-icinga-main-log.json index 835c015de58..bc3dba222bd 100644 --- a/filebeat/module/icinga/_meta/kibana/7/dashboard/Filebeat-icinga-main-log.json +++ b/filebeat/module/icinga/_meta/kibana/7/dashboard/Filebeat-icinga-main-log.json @@ -142,7 +142,7 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true @@ -235,13 +235,8 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } diff --git a/filebeat/module/icinga/_meta/kibana/7/dashboard/Filebeat-icinga-startup-errors.json b/filebeat/module/icinga/_meta/kibana/7/dashboard/Filebeat-icinga-startup-errors.json index 5a4799e7037..0a26774f97b 100644 --- a/filebeat/module/icinga/_meta/kibana/7/dashboard/Filebeat-icinga-startup-errors.json +++ b/filebeat/module/icinga/_meta/kibana/7/dashboard/Filebeat-icinga-startup-errors.json @@ -76,13 +76,8 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, + "language": "kuery", "query": "log.level:critical" - } - } }, "version": true } @@ -107,13 +102,8 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } diff --git a/filebeat/module/iis/_meta/kibana/7/dashboard/Filebeat-iis.json b/filebeat/module/iis/_meta/kibana/7/dashboard/Filebeat-iis.json index ef507875a55..205467e7b60 100644 --- a/filebeat/module/iis/_meta/kibana/7/dashboard/Filebeat-iis.json +++ b/filebeat/module/iis/_meta/kibana/7/dashboard/Filebeat-iis.json @@ -8,7 +8,7 @@ "filter": [], "index": "filebeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -75,7 +75,7 @@ "filter": [], "index": "filebeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -203,7 +203,7 @@ "filter": [], "index": "filebeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -275,7 +275,7 @@ "filter": [], "index": "filebeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -347,7 +347,7 @@ "filter": [], "index": "filebeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -475,7 +475,7 @@ "filter": [], "index": "filebeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -550,7 +550,7 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true diff --git a/filebeat/module/kafka/_meta/kibana/7/dashboard/Filebeat-Kafka-overview.json b/filebeat/module/kafka/_meta/kibana/7/dashboard/Filebeat-Kafka-overview.json index 6abfc572c16..252eaa7670b 100644 --- a/filebeat/module/kafka/_meta/kibana/7/dashboard/Filebeat-Kafka-overview.json +++ b/filebeat/module/kafka/_meta/kibana/7/dashboard/Filebeat-Kafka-overview.json @@ -140,8 +140,8 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "language": "lucene", - "query": "_exists_:kafka.log.trace.class" + "language": "kuery", + "query": "kafka.log.trace.class:*" }, "version": true } @@ -225,8 +225,8 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "language": "lucene", - "query": "*" + "language": "kuery", + "query": "" }, "version": true } @@ -377,7 +377,7 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true diff --git a/filebeat/module/logstash/_meta/kibana/7/dashboard/Filebeat-logstash-log.json b/filebeat/module/logstash/_meta/kibana/7/dashboard/Filebeat-logstash-log.json index 7bae7158ff2..3c7c93bc7b4 100644 --- a/filebeat/module/logstash/_meta/kibana/7/dashboard/Filebeat-logstash-log.json +++ b/filebeat/module/logstash/_meta/kibana/7/dashboard/Filebeat-logstash-log.json @@ -7,7 +7,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -60,7 +60,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -249,7 +249,7 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true @@ -275,7 +275,7 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true diff --git a/filebeat/module/logstash/_meta/kibana/7/dashboard/Filebeat-logstash-slowlog.json b/filebeat/module/logstash/_meta/kibana/7/dashboard/Filebeat-logstash-slowlog.json index 9311f33ad24..2975ad68224 100644 --- a/filebeat/module/logstash/_meta/kibana/7/dashboard/Filebeat-logstash-slowlog.json +++ b/filebeat/module/logstash/_meta/kibana/7/dashboard/Filebeat-logstash-slowlog.json @@ -71,7 +71,7 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true @@ -95,7 +95,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -148,7 +148,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -275,7 +275,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -440,7 +440,7 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true @@ -466,7 +466,7 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true diff --git a/filebeat/module/mongodb/_meta/kibana/7/dashboard/Filebeat-Mongodb-overview.json b/filebeat/module/mongodb/_meta/kibana/7/dashboard/Filebeat-Mongodb-overview.json index bce38f2b3a7..e3978aca6be 100644 --- a/filebeat/module/mongodb/_meta/kibana/7/dashboard/Filebeat-Mongodb-overview.json +++ b/filebeat/module/mongodb/_meta/kibana/7/dashboard/Filebeat-Mongodb-overview.json @@ -7,7 +7,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -71,7 +71,7 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "log.level: F or log.level: W" }, "version": true @@ -105,7 +105,7 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "log.level: *" }, "version": true @@ -131,7 +131,7 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true diff --git a/filebeat/module/mysql/_meta/kibana/7/dashboard/Filebeat-mysql.json b/filebeat/module/mysql/_meta/kibana/7/dashboard/Filebeat-mysql.json index 8ac1322da08..4d92705711f 100644 --- a/filebeat/module/mysql/_meta/kibana/7/dashboard/Filebeat-mysql.json +++ b/filebeat/module/mysql/_meta/kibana/7/dashboard/Filebeat-mysql.json @@ -414,8 +414,8 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "language": "lucene", - "query": "*" + "language": "kuery", + "query": "" }, "version": true } @@ -618,8 +618,8 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "language": "lucene", - "query": "*" + "language": "kuery", + "query": "" }, "version": true } @@ -644,13 +644,8 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } diff --git a/filebeat/module/nats/_meta/kibana/7/dashboard/Filebeat-nats-overview.json b/filebeat/module/nats/_meta/kibana/7/dashboard/Filebeat-nats-overview.json index ee758f0a3bc..3d6311c6721 100644 --- a/filebeat/module/nats/_meta/kibana/7/dashboard/Filebeat-nats-overview.json +++ b/filebeat/module/nats/_meta/kibana/7/dashboard/Filebeat-nats-overview.json @@ -8,7 +8,7 @@ "filter": [], "index": "filebeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -130,7 +130,7 @@ "filter": [], "index": "filebeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "service.type: nats" } } @@ -249,7 +249,7 @@ "filter": [], "index": "filebeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -368,7 +368,7 @@ "filter": [], "index": "filebeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -480,7 +480,7 @@ "filter": [], "index": "filebeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "service.type: nats" } } @@ -538,7 +538,7 @@ "filter": [], "index": "filebeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "service.type: nats" } } @@ -596,7 +596,7 @@ "filter": [], "index": "filebeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -654,7 +654,7 @@ "filter": [], "index": "filebeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "service.type: nats" } } @@ -774,7 +774,7 @@ "filter": [], "index": "filebeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "service.type: nats" } } @@ -913,7 +913,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } diff --git a/filebeat/module/nginx/_meta/kibana/7/dashboard/Filebeat-nginx-logs.json b/filebeat/module/nginx/_meta/kibana/7/dashboard/Filebeat-nginx-logs.json index 8c75d52dfc5..b25c6da5482 100644 --- a/filebeat/module/nginx/_meta/kibana/7/dashboard/Filebeat-nginx-logs.json +++ b/filebeat/module/nginx/_meta/kibana/7/dashboard/Filebeat-nginx-logs.json @@ -27,8 +27,8 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "language": "lucene", - "query": "event.module:nginx AND _exists_:message" + "language": "kuery", + "query": "event.module:nginx AND message:*" }, "version": true } @@ -73,8 +73,8 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "language": "lucene", - "query": "event.module:nginx AND _exists_:url.original" + "language": "kuery", + "query": "event.module:nginx AND url.original:*" }, "version": true } @@ -200,13 +200,8 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } diff --git a/filebeat/module/nginx/_meta/kibana/7/dashboard/Filebeat-nginx-overview.json b/filebeat/module/nginx/_meta/kibana/7/dashboard/Filebeat-nginx-overview.json index 2841bfcd99e..af3f0024867 100644 --- a/filebeat/module/nginx/_meta/kibana/7/dashboard/Filebeat-nginx-overview.json +++ b/filebeat/module/nginx/_meta/kibana/7/dashboard/Filebeat-nginx-overview.json @@ -2,690 +2,676 @@ "objects": [ { "attributes": { - "description": "", + "description": "", "kibanaSavedObjectMeta": { "searchSourceJSON": { - "filter": [], - "index": "filebeat-*", + "filter": [], + "index": "filebeat-*", "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } + "language": "kuery", + "query": "" } } - }, - "title": "Browsers breakdown [Filebeat Nginx] ECS", - "uiStateJSON": {}, - "version": 1, + }, + "title": "Browsers breakdown [Filebeat Nginx] ECS", + "uiStateJSON": {}, + "version": 1, "visState": { "aggs": [ { - "enabled": true, - "id": "1", - "params": {}, - "schema": "metric", + "enabled": true, + "id": "1", + "params": {}, + "schema": "metric", "type": "count" - }, + }, { - "enabled": true, - "id": "2", + "enabled": true, + "id": "2", "params": { - "field": "user_agent.name", - "order": "desc", - "orderBy": "1", + "field": "user_agent.name", + "order": "desc", + "orderBy": "1", "size": 5 - }, - "schema": "segment", + }, + "schema": "segment", "type": "terms" - }, + }, { - "enabled": true, - "id": "3", + "enabled": true, + "id": "3", "params": { - "field": "nginx.access.user_agent.major", - "order": "desc", - "orderBy": "1", + "field": "nginx.access.user_agent.major", + "order": "desc", + "orderBy": "1", "size": 5 - }, - "schema": "segment", + }, + "schema": "segment", "type": "terms" } - ], - "listeners": {}, + ], + "listeners": {}, "params": { - "addLegend": true, - "addTooltip": true, - "isDonut": true, - "legendPosition": "bottom", + "addLegend": true, + "addTooltip": true, + "isDonut": true, + "legendPosition": "bottom", "shareYAxis": true - }, - "title": "Nginx Access Browsers ECS", + }, + "title": "Nginx Access Browsers ECS", "type": "pie" } - }, - "id": "Nginx-Access-Browsers-ecs", - "type": "visualization", + }, + "id": "Nginx-Access-Browsers-ecs", + "type": "visualization", "version": 1 - }, + }, { "attributes": { - "description": "", + "description": "", "kibanaSavedObjectMeta": { "searchSourceJSON": { - "filter": [], - "index": "filebeat-*", + "filter": [], + "index": "filebeat-*", "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } + "language": "kuery", + "query": "" } } - }, - "title": "Operating systems breakdown [Filebeat Nginx] ECS", - "uiStateJSON": {}, - "version": 1, + }, + "title": "Operating systems breakdown [Filebeat Nginx] ECS", + "uiStateJSON": {}, + "version": 1, "visState": { "aggs": [ { - "enabled": true, - "id": "1", - "params": {}, - "schema": "metric", + "enabled": true, + "id": "1", + "params": {}, + "schema": "metric", "type": "count" - }, + }, { - "enabled": true, - "id": "2", + "enabled": true, + "id": "2", "params": { - "field": "user_agent.os.name", - "order": "desc", - "orderBy": "1", + "field": "user_agent.os.name", + "order": "desc", + "orderBy": "1", "size": 5 - }, - "schema": "segment", + }, + "schema": "segment", "type": "terms" - }, + }, { - "enabled": true, - "id": "3", + "enabled": true, + "id": "3", "params": { - "field": "nginx.access.user_agent.os_major", - "order": "desc", - "orderBy": "1", + "field": "nginx.access.user_agent.os_major", + "order": "desc", + "orderBy": "1", "size": 5 - }, - "schema": "segment", + }, + "schema": "segment", "type": "terms" } - ], - "listeners": {}, + ], + "listeners": {}, "params": { - "addLegend": true, - "addTooltip": true, - "isDonut": true, - "legendPosition": "bottom", + "addLegend": true, + "addTooltip": true, + "isDonut": true, + "legendPosition": "bottom", "shareYAxis": true - }, - "title": "Nginx Access OSes ECS", + }, + "title": "Nginx Access OSes ECS", "type": "pie" } - }, - "id": "Nginx-Access-OSes-ecs", - "type": "visualization", + }, + "id": "Nginx-Access-OSes-ecs", + "type": "visualization", "version": 1 - }, + }, { "attributes": { - "description": "", + "description": "", "kibanaSavedObjectMeta": { "searchSourceJSON": { "filter": [] } - }, - "savedSearchId": "Filebeat-Nginx-module-ecs", - "title": "Access Map [Filebeat Nginx] ECS", + }, + "savedSearchId": "Filebeat-Nginx-module-ecs", + "title": "Access Map [Filebeat Nginx] ECS", "uiStateJSON": { "mapCenter": [ - 12.039320557540572, + 12.039320557540572, -0.17578125 ] - }, - "version": 1, + }, + "version": 1, "visState": { "aggs": [ { - "enabled": true, - "id": "1", - "params": {}, - "schema": "metric", + "enabled": true, + "id": "1", + "params": {}, + "schema": "metric", "type": "count" - }, + }, { - "enabled": true, - "id": "2", + "enabled": true, + "id": "2", "params": { - "autoPrecision": true, + "autoPrecision": true, "field": "source.geo.location" - }, - "schema": "segment", + }, + "schema": "segment", "type": "geohash_grid" } - ], - "listeners": {}, + ], + "listeners": {}, "params": { - "addTooltip": true, - "heatBlur": 15, - "heatMaxZoom": 16, - "heatMinOpacity": 0.1, - "heatNormalizeData": true, - "heatRadius": 25, - "isDesaturated": true, - "legendPosition": "bottomright", + "addTooltip": true, + "heatBlur": 15, + "heatMaxZoom": 16, + "heatMinOpacity": 0.1, + "heatNormalizeData": true, + "heatRadius": 25, + "isDesaturated": true, + "legendPosition": "bottomright", "mapCenter": [ - 15, + 15, 5 - ], - "mapType": "Scaled Circle Markers", - "mapZoom": 2, + ], + "mapType": "Scaled Circle Markers", + "mapZoom": 2, "wms": { - "enabled": false, + "enabled": false, "options": { - "attribution": "Maps provided by USGS", - "format": "image/png", - "layers": "0", - "styles": "", - "transparent": true, + "attribution": "Maps provided by USGS", + "format": "image/png", + "layers": "0", + "styles": "", + "transparent": true, "version": "1.3.0" - }, + }, "url": "https://basemap.nationalmap.gov/arcgis/services/USGSTopo/MapServer/WMSServer" } - }, - "title": "Nginx Access Map ECS", + }, + "title": "Nginx Access Map ECS", "type": "tile_map" } - }, - "id": "Nginx-Access-Map-ecs", - "type": "visualization", + }, + "id": "Nginx-Access-Map-ecs", + "type": "visualization", "version": 1 - }, + }, { "attributes": { - "description": "", + "description": "", "kibanaSavedObjectMeta": { "searchSourceJSON": {} - }, - "title": "Response codes over time [Filebeat Nginx] ECS", - "uiStateJSON": {}, - "version": 1, + }, + "title": "Response codes over time [Filebeat Nginx] ECS", + "uiStateJSON": {}, + "version": 1, "visState": { - "aggs": [], + "aggs": [], "params": { - "axis_formatter": "number", - "axis_position": "left", - "filter": "event.module:nginx AND fileset.name:access", - "id": "61ca57f0-469d-11e7-af02-69e470af7417", - "index_pattern": "filebeat-*", - "interval": "auto", - "legend_position": "bottom", + "axis_formatter": "number", + "axis_position": "left", + "filter": "event.module:nginx AND fileset.name:access", + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "filebeat-*", + "interval": "auto", + "legend_position": "bottom", "series": [ { - "axis_position": "right", - "chart_type": "bar", - "color": "#68BC00", - "fill": 0.5, - "formatter": "number", - "id": "61ca57f1-469d-11e7-af02-69e470af7417", - "label": "", - "line_width": 1, + "axis_position": "right", + "chart_type": "bar", + "color": "#68BC00", + "fill": 0.5, + "formatter": "number", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "label": "", + "line_width": 1, "metrics": [ { - "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", "type": "count" } - ], - "point_size": 1, - "seperate_axis": 0, + ], + "point_size": 1, + "seperate_axis": 0, "split_filters": [ { - "color": "#68BC00", - "filter": "http.response.status_code:[200 TO 299]", - "id": "5acdc750-a29d-11e7-a062-a1c3587f4874", + "color": "#68BC00", + "filter": "http.response.status_code:[200 TO 299]", + "id": "5acdc750-a29d-11e7-a062-a1c3587f4874", "label": "200s" - }, + }, { - "color": "rgba(252,196,0,1)", - "filter": "http.response.status_code:[300 TO 399]", - "id": "6efd2ae0-a29d-11e7-a062-a1c3587f4874", + "color": "rgba(252,196,0,1)", + "filter": "http.response.status_code:[300 TO 399]", + "id": "6efd2ae0-a29d-11e7-a062-a1c3587f4874", "label": "300s" - }, + }, { - "color": "rgba(211,49,21,1)", - "filter": "http.response.status_code:[400 TO 499]", - "id": "76089a90-a29d-11e7-a062-a1c3587f4874", + "color": "rgba(211,49,21,1)", + "filter": "http.response.status_code:[400 TO 499]", + "id": "76089a90-a29d-11e7-a062-a1c3587f4874", "label": "400s" - }, + }, { - "color": "rgba(171,20,158,1)", - "filter": "http.response.status_code:[500 TO 599]", - "id": "7c7929d0-a29d-11e7-a062-a1c3587f4874", + "color": "rgba(171,20,158,1)", + "filter": "http.response.status_code:[500 TO 599]", + "id": "7c7929d0-a29d-11e7-a062-a1c3587f4874", "label": "500s" } - ], - "split_mode": "filters", - "stacked": "stacked", - "terms_field": "http.response.status_code", + ], + "split_mode": "filters", + "stacked": "stacked", + "terms_field": "http.response.status_code", "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417" } - ], - "show_grid": 1, - "show_legend": 1, - "time_field": "@timestamp", + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "@timestamp", "type": "timeseries" - }, - "title": "Response codes over time [Filebeat Nginx] ECS", + }, + "title": "Response codes over time [Filebeat Nginx] ECS", "type": "metrics" } - }, - "id": "b70b1b20-a1f4-11e7-928f-5dbe6f6f5519-ecs", - "type": "visualization", + }, + "id": "b70b1b20-a1f4-11e7-928f-5dbe6f6f5519-ecs", + "type": "visualization", "version": 7 - }, + }, { "attributes": { - "description": "", + "description": "", "kibanaSavedObjectMeta": { "searchSourceJSON": {} - }, - "title": "Top pages [Filebeat Nginx] ECS", - "uiStateJSON": {}, - "version": 1, + }, + "title": "Top pages [Filebeat Nginx] ECS", + "uiStateJSON": {}, + "version": 1, "visState": { - "aggs": [], + "aggs": [], "params": { - "axis_formatter": "number", - "axis_position": "left", + "axis_formatter": "number", + "axis_position": "left", "bar_color_rules": [ { "id": "6252c320-a1f5-11e7-92ba-5d0b8663aece" } - ], - "filter": "event.module:nginx AND fileset.name:access", - "id": "61ca57f0-469d-11e7-af02-69e470af7417", - "index_pattern": "filebeat-*", - "interval": "auto", + ], + "filter": "event.module:nginx AND fileset.name:access", + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "filebeat-*", + "interval": "auto", "series": [ { - "axis_position": "right", - "chart_type": "line", - "color": "#68BC00", - "fill": 0.5, - "formatter": "number", - "id": "61ca57f1-469d-11e7-af02-69e470af7417", - "line_width": 1, + "axis_position": "right", + "chart_type": "line", + "color": "#68BC00", + "fill": 0.5, + "formatter": "number", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "line_width": 1, "metrics": [ { - "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", "type": "count" } - ], - "point_size": 1, - "seperate_axis": 0, - "split_mode": "terms", - "stacked": "none", - "terms_field": "url.original", - "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417", + ], + "point_size": 1, + "seperate_axis": 0, + "split_mode": "terms", + "stacked": "none", + "terms_field": "url.original", + "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417", "value_template": "" } - ], - "show_grid": 1, - "show_legend": 1, - "time_field": "@timestamp", + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "@timestamp", "type": "top_n" - }, - "title": "Top pages [Filebeat Nginx] ECS", + }, + "title": "Top pages [Filebeat Nginx] ECS", "type": "metrics" } - }, - "id": "9184fa00-a1f5-11e7-928f-5dbe6f6f5519-ecs", - "type": "visualization", + }, + "id": "9184fa00-a1f5-11e7-928f-5dbe6f6f5519-ecs", + "type": "visualization", "version": 3 - }, + }, { "attributes": { - "description": "", + "description": "", "kibanaSavedObjectMeta": { "searchSourceJSON": {} - }, - "title": "Errors over time [Filebeat Nginx] ECS", - "uiStateJSON": {}, - "version": 1, + }, + "title": "Errors over time [Filebeat Nginx] ECS", + "uiStateJSON": {}, + "version": 1, "visState": { - "aggs": [], + "aggs": [], "params": { - "axis_formatter": "number", - "axis_position": "left", - "filter": "event.module:nginx AND fileset.name:error", - "id": "61ca57f0-469d-11e7-af02-69e470af7417", - "index_pattern": "filebeat-*", - "interval": "auto", - "legend_position": "bottom", + "axis_formatter": "number", + "axis_position": "left", + "filter": "event.module:nginx AND fileset.name:error", + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "filebeat-*", + "interval": "auto", + "legend_position": "bottom", "series": [ { - "axis_position": "right", - "chart_type": "bar", - "color": "rgba(211,49,21,1)", - "fill": 0.5, - "formatter": "number", - "id": "61ca57f1-469d-11e7-af02-69e470af7417", - "line_width": 1, + "axis_position": "right", + "chart_type": "bar", + "color": "rgba(211,49,21,1)", + "fill": 0.5, + "formatter": "number", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "line_width": 1, "metrics": [ { - "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", "type": "count" } - ], - "point_size": 1, - "seperate_axis": 0, - "split_mode": "terms", - "stacked": "none", - "terms_field": "log.level", + ], + "point_size": 1, + "seperate_axis": 0, + "split_mode": "terms", + "stacked": "none", + "terms_field": "log.level", "terms_order_by": "61ca57f2-469d-11e7-af02-69e470af7417" } - ], - "show_grid": 1, - "show_legend": 1, - "time_field": "@timestamp", + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "@timestamp", "type": "timeseries" - }, - "title": "Errors over time [Filebeat Nginx] ECS", + }, + "title": "Errors over time [Filebeat Nginx] ECS", "type": "metrics" } - }, - "id": "46322e50-a1f6-11e7-928f-5dbe6f6f5519-ecs", - "type": "visualization", + }, + "id": "46322e50-a1f6-11e7-928f-5dbe6f6f5519-ecs", + "type": "visualization", "version": 5 - }, + }, { "attributes": { - "description": "", + "description": "", "kibanaSavedObjectMeta": { "searchSourceJSON": {} - }, - "title": "Data Volume [Filebeat Nginx] ECS", - "uiStateJSON": {}, - "version": 1, + }, + "title": "Data Volume [Filebeat Nginx] ECS", + "uiStateJSON": {}, + "version": 1, "visState": { - "aggs": [], + "aggs": [], "params": { - "axis_formatter": "number", - "axis_position": "left", - "filter": "event.module: nginx AND fileset.name: access", - "id": "61ca57f0-469d-11e7-af02-69e470af7417", - "index_pattern": "filebeat-*", - "interval": "auto", - "legend_position": "bottom", + "axis_formatter": "number", + "axis_position": "left", + "filter": "event.module: nginx AND fileset.name: access", + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "filebeat-*", + "interval": "auto", + "legend_position": "bottom", "series": [ { - "axis_position": "right", - "chart_type": "line", - "color": "#68BC00", - "fill": 0.5, - "formatter": "bytes", - "id": "61ca57f1-469d-11e7-af02-69e470af7417", - "label": "", - "line_width": 1, + "axis_position": "right", + "chart_type": "line", + "color": "#68BC00", + "fill": 0.5, + "formatter": "bytes", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "label": "", + "line_width": 1, "metrics": [ { - "field": "http.response.body.bytes", - "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "field": "http.response.body.bytes", + "id": "61ca57f2-469d-11e7-af02-69e470af7417", "type": "sum" } - ], - "point_size": 1, - "seperate_axis": 0, + ], + "point_size": 1, + "seperate_axis": 0, "split_filters": [ { - "color": "#68BC00", - "filter": "http.response.status_code:[200 TO 299]", - "id": "7c343c20-a29e-11e7-a062-a1c3587f4874", + "color": "#68BC00", + "filter": "http.response.status_code:[200 TO 299]", + "id": "7c343c20-a29e-11e7-a062-a1c3587f4874", "label": "200s" } - ], - "split_mode": "everything", - "stacked": "none", + ], + "split_mode": "everything", + "stacked": "none", "terms_field": null } - ], - "show_grid": 1, - "show_legend": 1, - "time_field": "@timestamp", + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "@timestamp", "type": "timeseries" - }, - "title": "Data Volume [Filebeat Nginx] ECS", + }, + "title": "Data Volume [Filebeat Nginx] ECS", "type": "metrics" } - }, - "id": "0dd6f320-a29f-11e7-928f-5dbe6f6f5519-ecs", - "type": "visualization", + }, + "id": "0dd6f320-a29f-11e7-928f-5dbe6f6f5519-ecs", + "type": "visualization", "version": 2 - }, + }, { "attributes": { - "description": "", + "description": "", "kibanaSavedObjectMeta": { "searchSourceJSON": {} - }, - "title": "Dashboards [Filebeat Nginx] ECS", - "uiStateJSON": {}, - "version": 1, + }, + "title": "Dashboards [Filebeat Nginx] ECS", + "uiStateJSON": {}, + "version": 1, "visState": { - "aggs": [], + "aggs": [], "params": { - "fontSize": 12, + "fontSize": 12, "markdown": "[Nginx logs overview](#/dashboard/55a9e6e0-a29e-11e7-928f-5dbe6f6f5519-ecs) | [Nginx access and error logs](#/dashboard/046212a0-a2a1-11e7-928f-5dbe6f6f5519-ecs)" - }, - "title": "Dashboards [Filebeat Nginx] ECS", + }, + "title": "Dashboards [Filebeat Nginx] ECS", "type": "markdown" } - }, - "id": "97109780-a2a5-11e7-928f-5dbe6f6f5519-ecs", - "type": "visualization", + }, + "id": "97109780-a2a5-11e7-928f-5dbe6f6f5519-ecs", + "type": "visualization", "version": 1 - }, + }, { "attributes": { "columns": [ - "url.original", - "http.request.method", - "http.response.status_code", - "http.request.referrer", + "url.original", + "http.request.method", + "http.response.status_code", + "http.request.referrer", "http.response.body.bytes" - ], - "description": "", - "hits": 0, + ], + "description": "", + "hits": 0, "kibanaSavedObjectMeta": { "searchSourceJSON": { - "filter": [], + "filter": [], "highlight": { "fields": { "*": {} - }, - "fragment_size": 2147483647, + }, + "fragment_size": 2147483647, "post_tags": [ "@/kibana-highlighted-field@" - ], + ], "pre_tags": [ "@kibana-highlighted-field@" - ], + ], "require_field_match": false - }, - "highlightAll": true, - "index": "filebeat-*", + }, + "highlightAll": true, + "index": "filebeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "event.module:nginx" - } - } - }, + "language": "kuery", + "query": "event.module:nginx" + }, "version": true } - }, + }, "sort": [ - "@timestamp", + "@timestamp", "desc" - ], - "title": "Nginx logs [Filebeat Nginx] ECS", + ], + "title": "Nginx logs [Filebeat Nginx] ECS", "version": 1 - }, - "id": "Filebeat-Nginx-module-ecs", - "type": "search", + }, + "id": "Filebeat-Nginx-module-ecs", + "type": "search", "version": 2 - }, + }, { "attributes": { - "description": "Dashboard for the Filebeat Nginx module", - "hits": 0, + "description": "Dashboard for the Filebeat Nginx module", + "hits": 0, "kibanaSavedObjectMeta": { "searchSourceJSON": { - "filter": [], - "highlightAll": true, + "filter": [], + "highlightAll": true, "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } - }, + "language": "kuery", + "query": "" + }, "version": true } - }, + }, "optionsJSON": { "darkTheme": false - }, + }, "panelsJSON": [ { - "col": 10, - "id": "Nginx-Access-Browsers-ecs", - "panelIndex": 3, - "row": 12, - "size_x": 3, - "size_y": 3, + "col": 10, + "id": "Nginx-Access-Browsers-ecs", + "panelIndex": 3, + "row": 12, + "size_x": 3, + "size_y": 3, "type": "visualization" - }, + }, { - "col": 7, - "id": "Nginx-Access-OSes-ecs", - "panelIndex": 4, - "row": 12, - "size_x": 3, - "size_y": 3, + "col": 7, + "id": "Nginx-Access-OSes-ecs", + "panelIndex": 4, + "row": 12, + "size_x": 3, + "size_y": 3, "type": "visualization" - }, + }, { - "col": 1, - "id": "Nginx-Access-Map-ecs", - "panelIndex": 8, - "row": 2, - "size_x": 12, - "size_y": 4, + "col": 1, + "id": "Nginx-Access-Map-ecs", + "panelIndex": 8, + "row": 2, + "size_x": 12, + "size_y": 4, "type": "visualization" - }, + }, { - "col": 1, - "id": "b70b1b20-a1f4-11e7-928f-5dbe6f6f5519-ecs", - "panelIndex": 13, - "row": 6, - "size_x": 12, - "size_y": 3, + "col": 1, + "id": "b70b1b20-a1f4-11e7-928f-5dbe6f6f5519-ecs", + "panelIndex": 13, + "row": 6, + "size_x": 12, + "size_y": 3, "type": "visualization" - }, + }, { - "col": 7, - "id": "9184fa00-a1f5-11e7-928f-5dbe6f6f5519-ecs", - "panelIndex": 14, - "row": 9, - "size_x": 6, - "size_y": 3, + "col": 7, + "id": "9184fa00-a1f5-11e7-928f-5dbe6f6f5519-ecs", + "panelIndex": 14, + "row": 9, + "size_x": 6, + "size_y": 3, "type": "visualization" - }, + }, { - "col": 1, - "id": "46322e50-a1f6-11e7-928f-5dbe6f6f5519-ecs", - "panelIndex": 15, - "row": 9, - "size_x": 6, - "size_y": 3, + "col": 1, + "id": "46322e50-a1f6-11e7-928f-5dbe6f6f5519-ecs", + "panelIndex": 15, + "row": 9, + "size_x": 6, + "size_y": 3, "type": "visualization" - }, + }, { - "col": 1, - "id": "0dd6f320-a29f-11e7-928f-5dbe6f6f5519-ecs", - "panelIndex": 16, - "row": 12, - "size_x": 6, - "size_y": 3, + "col": 1, + "id": "0dd6f320-a29f-11e7-928f-5dbe6f6f5519-ecs", + "panelIndex": 16, + "row": 12, + "size_x": 6, + "size_y": 3, "type": "visualization" - }, + }, { - "col": 1, - "id": "97109780-a2a5-11e7-928f-5dbe6f6f5519-ecs", - "panelIndex": 17, - "row": 1, - "size_x": 12, - "size_y": 1, + "col": 1, + "id": "97109780-a2a5-11e7-928f-5dbe6f6f5519-ecs", + "panelIndex": 17, + "row": 1, + "size_x": 12, + "size_y": 1, "type": "visualization" } - ], - "timeRestore": false, - "title": "[Filebeat Nginx] Overview ECS", + ], + "timeRestore": false, + "title": "[Filebeat Nginx] Overview ECS", "uiStateJSON": { "P-4": { "vis": { "legendOpen": true } - }, + }, "P-8": { "mapBounds": { "bottom_right": { - "lat": -7.362466865535738, + "lat": -7.362466865535738, "lon": 245.39062500000003 - }, + }, "top_left": { - "lat": 77.07878389624943, + "lat": 77.07878389624943, "lon": -245.74218750000003 } - }, + }, "mapCenter": [ - 50.51342652633956, + 50.51342652633956, -0.17578125 - ], + ], "mapCollar": { "bottom_right": { - "lat": -49.583095, + "lat": -49.583095, "lon": 180 - }, + }, "top_left": { - "lat": 90, + "lat": 90, "lon": -180 - }, + }, "zoom": 2 - }, + }, "mapZoom": 2 } - }, + }, "version": 1 - }, - "id": "55a9e6e0-a29e-11e7-928f-5dbe6f6f5519-ecs", - "type": "dashboard", + }, + "id": "55a9e6e0-a29e-11e7-928f-5dbe6f6f5519-ecs", + "type": "dashboard", "version": 6 } - ], + ], "version": "6.0.0-beta2" } diff --git a/filebeat/module/osquery/_meta/kibana/7/dashboard/osquery-compliance.json b/filebeat/module/osquery/_meta/kibana/7/dashboard/osquery-compliance.json index 0642a853b46..55f205759ef 100644 --- a/filebeat/module/osquery/_meta/kibana/7/dashboard/osquery-compliance.json +++ b/filebeat/module/osquery/_meta/kibana/7/dashboard/osquery-compliance.json @@ -42,8 +42,8 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "language": "lucene", - "query": "*" + "language": "kuery", + "query": "" }, "version": true } @@ -67,7 +67,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -174,8 +174,8 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "language": "lucene", - "query": "*" + "language": "kuery", + "query": "" }, "version": true } @@ -199,7 +199,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -312,7 +312,7 @@ } ], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -459,8 +459,8 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "language": "lucene", - "query": "*" + "language": "kuery", + "query": "" }, "version": true } @@ -519,7 +519,7 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true @@ -546,7 +546,7 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true diff --git a/filebeat/module/osquery/_meta/kibana/7/dashboard/osquery-rootkit.json b/filebeat/module/osquery/_meta/kibana/7/dashboard/osquery-rootkit.json index 17b5b234e55..0ceb7c9e8a7 100644 --- a/filebeat/module/osquery/_meta/kibana/7/dashboard/osquery-rootkit.json +++ b/filebeat/module/osquery/_meta/kibana/7/dashboard/osquery-rootkit.json @@ -31,7 +31,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -97,7 +97,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -267,7 +267,7 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true @@ -294,7 +294,7 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true diff --git a/filebeat/module/postgresql/_meta/kibana/7/dashboard/Filebeat-Postgresql-overview.json b/filebeat/module/postgresql/_meta/kibana/7/dashboard/Filebeat-Postgresql-overview.json index 375fc4d56d1..ad349eece92 100644 --- a/filebeat/module/postgresql/_meta/kibana/7/dashboard/Filebeat-Postgresql-overview.json +++ b/filebeat/module/postgresql/_meta/kibana/7/dashboard/Filebeat-Postgresql-overview.json @@ -106,8 +106,8 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "language": "lucene", - "query": "*" + "language": "kuery", + "query": "" }, "version": true } @@ -257,7 +257,7 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true diff --git a/filebeat/module/postgresql/_meta/kibana/7/dashboard/Filebeat-Postgresql-slowlogs.json b/filebeat/module/postgresql/_meta/kibana/7/dashboard/Filebeat-Postgresql-slowlogs.json index af7add6a6ee..d5203c91d0d 100644 --- a/filebeat/module/postgresql/_meta/kibana/7/dashboard/Filebeat-Postgresql-slowlogs.json +++ b/filebeat/module/postgresql/_meta/kibana/7/dashboard/Filebeat-Postgresql-slowlogs.json @@ -7,7 +7,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene" + "language": "kuery", + "query": "" } } }, @@ -168,8 +169,8 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "language": "lucene", - "query": "event.duration:>30000000" + "language": "kuery", + "query": "event.duration>30000000" }, "version": true } @@ -201,7 +202,7 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "event.duration:*" }, "version": true @@ -227,7 +228,7 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", + "language": "kuery", "query": "postgresql.log.query:*" }, "version": true diff --git a/filebeat/module/redis/_meta/kibana/7/dashboard/Filebeat-redis.json b/filebeat/module/redis/_meta/kibana/7/dashboard/Filebeat-redis.json index 4cd6acabd6e..931f2cbf962 100644 --- a/filebeat/module/redis/_meta/kibana/7/dashboard/Filebeat-redis.json +++ b/filebeat/module/redis/_meta/kibana/7/dashboard/Filebeat-redis.json @@ -9,13 +9,8 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, + "language": "kuery", "query": "event.dataset:redis.log" - } - } }, "version": true } @@ -82,13 +77,8 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, + "language": "kuery", "query": "event.dataset:redis.log" - } - } }, "version": true } @@ -292,8 +282,8 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "language": "lucene", - "query": "*" + "language": "kuery", + "query": "" }, "version": true } @@ -450,13 +440,8 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, + "language": "kuery", "query": "event.dataset:redis.slowlog" - } - } }, "version": true } @@ -481,13 +466,8 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } diff --git a/filebeat/module/system/_meta/kibana/7/dashboard/Filebeat-auth-sudo-commands.json b/filebeat/module/system/_meta/kibana/7/dashboard/Filebeat-auth-sudo-commands.json index d17f7526b2e..a1a216b87d2 100644 --- a/filebeat/module/system/_meta/kibana/7/dashboard/Filebeat-auth-sudo-commands.json +++ b/filebeat/module/system/_meta/kibana/7/dashboard/Filebeat-auth-sudo-commands.json @@ -76,10 +76,8 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "query_string": { - "analyze_wildcard": true, - "query": "_exists_:system.auth.sudo.error" - } + "language": "kuery", + "query": "system.auth.sudo.error:*" } } }, @@ -255,10 +253,8 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "query_string": { - "analyze_wildcard": true, - "query": "_exists_:system.auth.sudo" - } + "language": "kuery", + "query": "system.auth.sudo:*" } } }, @@ -282,13 +278,8 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } diff --git a/filebeat/module/system/_meta/kibana/7/dashboard/Filebeat-new-users-and-groups.json b/filebeat/module/system/_meta/kibana/7/dashboard/Filebeat-new-users-and-groups.json index 327a4e3c093..85f53dc3f8b 100644 --- a/filebeat/module/system/_meta/kibana/7/dashboard/Filebeat-new-users-and-groups.json +++ b/filebeat/module/system/_meta/kibana/7/dashboard/Filebeat-new-users-and-groups.json @@ -519,10 +519,8 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "query_string": { - "analyze_wildcard": true, - "query": "_exists_:system.auth.useradd" - } + "language": "kuery", + "query": "system.auth.useradd:*" } } }, @@ -551,10 +549,8 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "query_string": { - "analyze_wildcard": true, - "query": "_exists_:system.auth.groupadd" - } + "language": "kuery", + "query": "system.auth.groupadd:*" } } }, @@ -578,13 +574,8 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } diff --git a/filebeat/module/system/_meta/kibana/7/dashboard/Filebeat-ssh-login-attempts.json b/filebeat/module/system/_meta/kibana/7/dashboard/Filebeat-ssh-login-attempts.json index 0a7b456771c..9536b53fc0f 100644 --- a/filebeat/module/system/_meta/kibana/7/dashboard/Filebeat-ssh-login-attempts.json +++ b/filebeat/module/system/_meta/kibana/7/dashboard/Filebeat-ssh-login-attempts.json @@ -9,11 +9,9 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "query_string": { - "analyze_wildcard": true, + "language": "kuery", "query": "event.action:Accepted" } - } } }, "title": "Successful SSH logins [Filebeat System] ECS", @@ -169,11 +167,9 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "query_string": { - "analyze_wildcard": true, + "language": "kuery", "query": "event.action:Failed OR event.action:Invalid" } - } } }, "title": "SSH users of failed login attempts [Filebeat System] ECS", @@ -225,11 +221,9 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "query_string": { - "analyze_wildcard": true, + "language": "kuery", "query": "event.action:Failed OR event.action:Invalid" } - } } }, "title": "SSH failed login attempts source locations [Filebeat System] ECS", @@ -316,10 +310,8 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "query_string": { - "analyze_wildcard": true, - "query": "event.dataset:system.auth AND _exists_:event.action" - } + "language": "kuery", + "query": "event.dataset:system.auth AND event.action:*" } } }, @@ -366,13 +358,8 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } diff --git a/filebeat/module/system/_meta/kibana/7/dashboard/Filebeat-syslog.json b/filebeat/module/system/_meta/kibana/7/dashboard/Filebeat-syslog.json index cd137b4c410..2af4dc6453b 100644 --- a/filebeat/module/system/_meta/kibana/7/dashboard/Filebeat-syslog.json +++ b/filebeat/module/system/_meta/kibana/7/dashboard/Filebeat-syslog.json @@ -159,11 +159,9 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "query_string": { - "analyze_wildcard": true, + "language": "kuery", "query": "event.dataset:system.syslog" } - } } }, "sort": [ @@ -209,13 +207,8 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } diff --git a/filebeat/module/traefik/_meta/kibana/7/dashboard/Filebeat-traefik-overview.json b/filebeat/module/traefik/_meta/kibana/7/dashboard/Filebeat-traefik-overview.json index 7edb0d63278..f293620863a 100644 --- a/filebeat/module/traefik/_meta/kibana/7/dashboard/Filebeat-traefik-overview.json +++ b/filebeat/module/traefik/_meta/kibana/7/dashboard/Filebeat-traefik-overview.json @@ -8,10 +8,8 @@ "filter": [], "index": "filebeat-*", "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } + "language": "kuery", + "query": "" } } }, @@ -76,10 +74,8 @@ "filter": [], "index": "filebeat-*", "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } + "language": "kuery", + "query": "" } } }, @@ -220,10 +216,8 @@ "filter": [], "index": "filebeat-*", "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } + "language": "kuery", + "query": "" } } }, @@ -309,11 +303,9 @@ }, "index": "filebeat-*", "query": { - "query_string": { - "analyze_wildcard": true, + "language": "kuery", "query": "event.dataset:traefik.access" } - } } }, "title": "Sent Byte Size [Filebeat Traefik] ECS", @@ -477,11 +469,9 @@ }, "index": "filebeat-*", "query": { - "query_string": { - "analyze_wildcard": true, + "language": "kuery", "query": "event.module:traefik" } - } } }, "sort": [ @@ -501,17 +491,12 @@ "hits": 0, "kibanaSavedObjectMeta": { "searchSourceJSON": { - "filter": [ - { + "filter": [], "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } + "language": "kuery", + "query": "" } } - ] - } }, "optionsJSON": { "darkTheme": false diff --git a/journalbeat/_meta/kibana/7/dashboard/Journalbeat-overview.json b/journalbeat/_meta/kibana/7/dashboard/Journalbeat-overview.json index 86a18d6ccbe..eb3a584bd16 100644 --- a/journalbeat/_meta/kibana/7/dashboard/Journalbeat-overview.json +++ b/journalbeat/_meta/kibana/7/dashboard/Journalbeat-overview.json @@ -8,7 +8,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -103,8 +103,8 @@ "highlightAll": true, "indexRefName": "kibanaSavedObjectMeta.searchSourceJSON.index", "query": { - "language": "lucene", - "query": "syslog.facility:0 AND syslog.priority:\\u003c4" + "language": "kuery", + "query": "syslog.facility:0 AND syslog.priority<4" }, "version": true } @@ -147,7 +147,7 @@ "highlightAll": true, "indexRefName": "kibanaSavedObjectMeta.searchSourceJSON.index", "query": { - "language": "lucene", + "language": "kuery", "query": "syslog.facility:4" }, "version": true @@ -190,7 +190,7 @@ "highlightAll": true, "indexRefName": "kibanaSavedObjectMeta.searchSourceJSON.index", "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true diff --git a/libbeat/dashboards/modify_json_test.go b/libbeat/dashboards/modify_json_test.go index 6874c5ba194..d7e54827ba8 100644 --- a/libbeat/dashboards/modify_json_test.go +++ b/libbeat/dashboards/modify_json_test.go @@ -53,13 +53,13 @@ func TestReplaceStringInDashboard(t *testing.T) { { content: common.MapStr{ "kibanaSavedObjectMeta": map[string]interface{}{ - "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"beat.name:\\\"CHANGEME_HOSTNAME\\\"\",\"language\":\"lucene\"}}"}}, + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"beat.name:\\\"CHANGEME_HOSTNAME\\\"\",\"language\":\"kuery\"}}"}}, old: "CHANGEME_HOSTNAME", new: "hostname.local", expected: common.MapStr{ "kibanaSavedObjectMeta": map[string]interface{}{ - "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"beat.name:\\\"hostname.local\\\"\",\"language\":\"lucene\"}}"}}, + "searchSourceJSON": "{\"filter\":[],\"highlightAll\":true,\"version\":true,\"query\":{\"query\":\"beat.name:\\\"hostname.local\\\"\",\"language\":\"kuery\"}}"}}, }, } diff --git a/libbeat/kibana/testdata/beat-6.json b/libbeat/kibana/testdata/beat-6.json index a58173ffad3..8fa5ad28cf1 100644 --- a/libbeat/kibana/testdata/beat-6.json +++ b/libbeat/kibana/testdata/beat-6.json @@ -2,7 +2,7 @@ "objects": [ { "attributes": { - "fieldFormatMap": "{\"long\":{\"id\":\"url\",\"params\":{\"inputFormat\":\"string\",\"labelTemplate\":\"long template\",\"outputFormat\":\"float\",\"outputPrecision\":5,\"urlTemplate\":\"_a=(query:(language:lucene,query:'context.app.name:\\\"{{value}}\\\"'))\"}},\"alias\":{\"id\":\"url\",\"params\":{\"inputFormat\":\"string\",\"labelTemplate\":\"long template\",\"outputFormat\":\"float\",\"outputPrecision\":5,\"urlTemplate\":\"_a=(query:(language:lucene,query:'context.app.name:\\\"{{value}}\\\"'))\"}}}", + "fieldFormatMap": "{\"long\":{\"id\":\"url\",\"params\":{\"inputFormat\":\"string\",\"labelTemplate\":\"long template\",\"outputFormat\":\"float\",\"outputPrecision\":5,\"urlTemplate\":\"_a=(query:(language:kuery,query:'context.app.name:\\\"{{value}}\\\"'))\"}},\"alias\":{\"id\":\"url\",\"params\":{\"inputFormat\":\"string\",\"labelTemplate\":\"long template\",\"outputFormat\":\"float\",\"outputPrecision\":5,\"urlTemplate\":\"_a=(query:(language:kuery,query:'context.app.name:\\\"{{value}}\\\"'))\"}}}", "fields": "[{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"long\",\"scripted\":false,\"searchable\":true,\"type\":\"number\"},{\"aggregatable\":false,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"multifield_field\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"multifield_field.keyword\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":false,\"analyzed\":false,\"count\":0,\"doc_values\":false,\"indexed\":false,\"name\":\"_id\",\"scripted\":false,\"searchable\":false,\"type\":\"string\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":false,\"indexed\":false,\"name\":\"_type\",\"scripted\":false,\"searchable\":true,\"type\":\"string\"},{\"aggregatable\":false,\"analyzed\":false,\"count\":0,\"doc_values\":false,\"indexed\":false,\"name\":\"_index\",\"scripted\":false,\"searchable\":false,\"type\":\"string\"},{\"aggregatable\":false,\"analyzed\":false,\"count\":0,\"doc_values\":false,\"indexed\":false,\"name\":\"_score\",\"scripted\":false,\"searchable\":false,\"type\":\"number\"},{\"aggregatable\":false,\"analyzed\":false,\"count\":0,\"doc_values\":false,\"indexed\":false,\"name\":\"blob\",\"scripted\":false,\"searchable\":false,\"type\":\"binary\"},{\"aggregatable\":true,\"analyzed\":false,\"count\":0,\"doc_values\":true,\"indexed\":true,\"name\":\"alias\",\"scripted\":false,\"searchable\":true,\"type\":\"number\"}]", "timeFieldName": "@timestamp", "title": "beat-*", diff --git a/libbeat/kibana/testdata/fields.yml b/libbeat/kibana/testdata/fields.yml index 7de76298eaa..246d1072961 100644 --- a/libbeat/kibana/testdata/fields.yml +++ b/libbeat/kibana/testdata/fields.yml @@ -1,7 +1,7 @@ - key: test title: Test fields.yml kibana: - source_filters: + source_filters: - user.name - url.* fields: @@ -13,17 +13,17 @@ type: text - name: long - type: long + type: long format: url input_format: string - output_format: float + output_format: float output_precision: 5 label_template: "long template" url_template: - min_version: 5.0.0 value: "_a=(query:(query_string:(analyze_wildcard:!t,query:'error.grouping_key:%22{{value}}%22')))" - min_version: 6.0.0 - value: "_a=(query:(language:lucene,query:'context.app.name:\"{{value}}\"'))" + value: "_a=(query:(language:kuery,query:'context.app.name:\"{{value}}\"'))" - name: alias type: alias @@ -32,7 +32,7 @@ - key: with source filter title: Test kibana: - source_filters: + source_filters: - user.email fields: - name: multifield_field diff --git a/metricbeat/module/apache/_meta/kibana/7/dashboard/Metricbeat-apache-overview.json b/metricbeat/module/apache/_meta/kibana/7/dashboard/Metricbeat-apache-overview.json index 05fd491afe0..70bc6f01dcd 100644 --- a/metricbeat/module/apache/_meta/kibana/7/dashboard/Metricbeat-apache-overview.json +++ b/metricbeat/module/apache/_meta/kibana/7/dashboard/Metricbeat-apache-overview.json @@ -636,11 +636,9 @@ }, "index": "metricbeat-*", "query": { - "query_string": { - "analyze_wildcard": true, + "language": "kuery", "query": "event.module: apache" } - } } }, "sort": [ @@ -663,13 +661,8 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } diff --git a/metricbeat/module/docker/_meta/kibana/7/dashboard/Metricbeat-docker-overview.json b/metricbeat/module/docker/_meta/kibana/7/dashboard/Metricbeat-docker-overview.json index 1d8faa43ed7..45857eabff5 100644 --- a/metricbeat/module/docker/_meta/kibana/7/dashboard/Metricbeat-docker-overview.json +++ b/metricbeat/module/docker/_meta/kibana/7/dashboard/Metricbeat-docker-overview.json @@ -367,11 +367,9 @@ }, "index": "metricbeat-*", "query": { - "query_string": { - "analyze_wildcard": true, + "language": "kuery", "query": "event.module:docker AND metricset.name:cpu" } - } } }, "title": "CPU usage [Metricbeat Docker] ECS", @@ -530,11 +528,9 @@ }, "index": "metricbeat-*", "query": { - "query_string": { - "analyze_wildcard": true, + "language": "kuery", "query": "event.module:docker AND metricset.name:memory" } - } } }, "title": "Memory usage [Metricbeat Docker] ECS", @@ -690,11 +686,9 @@ }, "index": "metricbeat-*", "query": { - "query_string": { - "analyze_wildcard": true, + "language": "kuery", "query": "event.module:docker AND metricset.name:network" } - } } }, "title": "Network IO [Metricbeat Docker] ECS", @@ -864,11 +858,9 @@ }, "index": "metricbeat-*", "query": { - "query_string": { - "analyze_wildcard": true, + "language": "kuery", "query": "event.module:docker" } - } } }, "sort": [ @@ -888,16 +880,11 @@ "hits": 0, "kibanaSavedObjectMeta": { "searchSourceJSON": { - "filter": [ - { + "filter": [], "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } - } - ], + "language": "kuery", + "query": "" + }, "highlightAll": true, "version": true } diff --git a/metricbeat/module/golang/_meta/kibana/7/dashboard/Metricbeat-golang-overview.json b/metricbeat/module/golang/_meta/kibana/7/dashboard/Metricbeat-golang-overview.json index 8761996a326..df7a3fcb1dd 100644 --- a/metricbeat/module/golang/_meta/kibana/7/dashboard/Metricbeat-golang-overview.json +++ b/metricbeat/module/golang/_meta/kibana/7/dashboard/Metricbeat-golang-overview.json @@ -7,13 +7,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -41,13 +36,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -75,13 +65,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -109,13 +94,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -143,13 +123,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -177,13 +152,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -213,13 +183,8 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } diff --git a/metricbeat/module/haproxy/_meta/kibana/7/dashboard/Metricbeat-haproxy-backend.json b/metricbeat/module/haproxy/_meta/kibana/7/dashboard/Metricbeat-haproxy-backend.json index 8e63c868b7b..76f6a25be5c 100644 --- a/metricbeat/module/haproxy/_meta/kibana/7/dashboard/Metricbeat-haproxy-backend.json +++ b/metricbeat/module/haproxy/_meta/kibana/7/dashboard/Metricbeat-haproxy-backend.json @@ -9,7 +9,7 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true diff --git a/metricbeat/module/haproxy/_meta/kibana/7/dashboard/Metricbeat-haproxy-frontend.json b/metricbeat/module/haproxy/_meta/kibana/7/dashboard/Metricbeat-haproxy-frontend.json index 83f91be2ecd..cdc97a3c1a3 100644 --- a/metricbeat/module/haproxy/_meta/kibana/7/dashboard/Metricbeat-haproxy-frontend.json +++ b/metricbeat/module/haproxy/_meta/kibana/7/dashboard/Metricbeat-haproxy-frontend.json @@ -9,7 +9,7 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true diff --git a/metricbeat/module/haproxy/_meta/kibana/7/dashboard/Metricbeat-haproxy-http-backend.json b/metricbeat/module/haproxy/_meta/kibana/7/dashboard/Metricbeat-haproxy-http-backend.json index 24a8cd5f448..4bbc8b9ca79 100644 --- a/metricbeat/module/haproxy/_meta/kibana/7/dashboard/Metricbeat-haproxy-http-backend.json +++ b/metricbeat/module/haproxy/_meta/kibana/7/dashboard/Metricbeat-haproxy-http-backend.json @@ -9,7 +9,7 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true diff --git a/metricbeat/module/haproxy/_meta/kibana/7/dashboard/Metricbeat-haproxy-http-frontend.json b/metricbeat/module/haproxy/_meta/kibana/7/dashboard/Metricbeat-haproxy-http-frontend.json index 8be2d4cced9..dc44cd2255c 100644 --- a/metricbeat/module/haproxy/_meta/kibana/7/dashboard/Metricbeat-haproxy-http-frontend.json +++ b/metricbeat/module/haproxy/_meta/kibana/7/dashboard/Metricbeat-haproxy-http-frontend.json @@ -9,7 +9,7 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true diff --git a/metricbeat/module/haproxy/_meta/kibana/7/dashboard/Metricbeat-haproxy-http-server.json b/metricbeat/module/haproxy/_meta/kibana/7/dashboard/Metricbeat-haproxy-http-server.json index 5d59ab73099..56e2abefbec 100644 --- a/metricbeat/module/haproxy/_meta/kibana/7/dashboard/Metricbeat-haproxy-http-server.json +++ b/metricbeat/module/haproxy/_meta/kibana/7/dashboard/Metricbeat-haproxy-http-server.json @@ -9,7 +9,7 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true diff --git a/metricbeat/module/haproxy/_meta/kibana/7/dashboard/Metricbeat-haproxy-overview.json b/metricbeat/module/haproxy/_meta/kibana/7/dashboard/Metricbeat-haproxy-overview.json index 3a0af4d69f2..c3803a48dbb 100644 --- a/metricbeat/module/haproxy/_meta/kibana/7/dashboard/Metricbeat-haproxy-overview.json +++ b/metricbeat/module/haproxy/_meta/kibana/7/dashboard/Metricbeat-haproxy-overview.json @@ -9,7 +9,7 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true diff --git a/metricbeat/module/haproxy/_meta/kibana/7/dashboard/Metricbeat-haproxy-visualizations.json b/metricbeat/module/haproxy/_meta/kibana/7/dashboard/Metricbeat-haproxy-visualizations.json index 0c89814c26a..78332e26515 100644 --- a/metricbeat/module/haproxy/_meta/kibana/7/dashboard/Metricbeat-haproxy-visualizations.json +++ b/metricbeat/module/haproxy/_meta/kibana/7/dashboard/Metricbeat-haproxy-visualizations.json @@ -240,7 +240,7 @@ "id": "978f2660-4735-11e8-b619-8f82b8185e96" } ], - "drilldown_url": "../app/kibana#/dashboard/8cc50a50-47e0-11e8-bc13-1397384faad3-ecs?_a=(query:(language:lucene,query:'haproxy.stat.service_name:\"{{ key }}\"'))", + "drilldown_url": "../app/kibana#/dashboard/8cc50a50-47e0-11e8-bc13-1397384faad3-ecs?_a=(query:(language:kuery,query:'haproxy.stat.service_name:\"{{ key }}\"'))", "filter": "haproxy.stat.component_type:(2 OR 3)", "id": "61ca57f0-469d-11e7-af02-69e470af7417", "index_pattern": "metricbeat-*", @@ -1159,7 +1159,7 @@ "id": "50830800-47d9-11e8-9db9-274c7a5e25e4" } ], - "drilldown_url": "../app/kibana#/dashboard/8cc50a50-47e0-11e8-bc13-1397384faad3-ecs?_a=(query:(language:lucene,query:'haproxy.stat.service_name:\"{{ key }}\"'))", + "drilldown_url": "../app/kibana#/dashboard/8cc50a50-47e0-11e8-bc13-1397384faad3-ecs?_a=(query:(language:kuery,query:'haproxy.stat.service_name:\"{{ key }}\"'))", "filter": "", "id": "61ca57f0-469d-11e7-af02-69e470af7417", "ignore_global_filter": 0, @@ -1227,7 +1227,7 @@ "id": "4aeddd40-47dc-11e8-9db9-274c7a5e25e4" } ], - "drilldown_url": "../app/kibana#/dashboard/0836a4b0-47bd-11e8-bc13-1397384faad3-ecs?_a=(query:(language:lucene,query:'haproxy.stat.proxy.name:\"{{ key }}\"'))", + "drilldown_url": "../app/kibana#/dashboard/0836a4b0-47bd-11e8-bc13-1397384faad3-ecs?_a=(query:(language:kuery,query:'haproxy.stat.proxy.name:\"{{ key }}\"'))", "id": "61ca57f0-469d-11e7-af02-69e470af7417", "index_pattern": "metricbeat-*", "interval": "auto", @@ -1291,7 +1291,7 @@ "id": "b81d8640-47dc-11e8-9a25-99b107967d82" } ], - "drilldown_url": "../app/kibana#/dashboard/e9057ae0-47c5-11e8-bc13-1397384faad3-ecs?_a=(query:(language:lucene,query:'haproxy.stat.proxy.name:\"{{ key }}\"'))", + "drilldown_url": "../app/kibana#/dashboard/e9057ae0-47c5-11e8-bc13-1397384faad3-ecs?_a=(query:(language:kuery,query:'haproxy.stat.proxy.name:\"{{ key }}\"'))", "id": "61ca57f0-469d-11e7-af02-69e470af7417", "index_pattern": "metricbeat-*", "interval": "auto", diff --git a/metricbeat/module/kafka/_meta/kibana/7/dashboard/Metricbeat-kafka-overview.json b/metricbeat/module/kafka/_meta/kibana/7/dashboard/Metricbeat-kafka-overview.json index c86935cd7a4..51d276089ff 100644 --- a/metricbeat/module/kafka/_meta/kibana/7/dashboard/Metricbeat-kafka-overview.json +++ b/metricbeat/module/kafka/_meta/kibana/7/dashboard/Metricbeat-kafka-overview.json @@ -494,7 +494,7 @@ ], "index": "metricbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -560,7 +560,7 @@ "filter": [], "index": "metricbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } diff --git a/metricbeat/module/kubernetes/_meta/kibana/7/dashboard/Metricbeat-kubernetes-apiserver.json b/metricbeat/module/kubernetes/_meta/kibana/7/dashboard/Metricbeat-kubernetes-apiserver.json index ae02bfe3ea9..6e59ef91f53 100644 --- a/metricbeat/module/kubernetes/_meta/kibana/7/dashboard/Metricbeat-kubernetes-apiserver.json +++ b/metricbeat/module/kubernetes/_meta/kibana/7/dashboard/Metricbeat-kubernetes-apiserver.json @@ -266,7 +266,7 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true diff --git a/metricbeat/module/kubernetes/_meta/kibana/7/dashboard/Metricbeat-kubernetes-overview.json b/metricbeat/module/kubernetes/_meta/kibana/7/dashboard/Metricbeat-kubernetes-overview.json index 788394b8111..5396af8467a 100644 --- a/metricbeat/module/kubernetes/_meta/kibana/7/dashboard/Metricbeat-kubernetes-overview.json +++ b/metricbeat/module/kubernetes/_meta/kibana/7/dashboard/Metricbeat-kubernetes-overview.json @@ -7,12 +7,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -80,9 +76,8 @@ "searchSourceJSON": { "filter": [], "query": { - "query_string": { - "query": "*" - } + "language": "kuery", + "query": "" } } }, @@ -207,9 +202,8 @@ "searchSourceJSON": { "filter": [], "query": { - "query_string": { - "query": "*" - } + "language": "kuery", + "query": "" } } }, @@ -288,9 +282,8 @@ "searchSourceJSON": { "filter": [], "query": { - "query_string": { - "query": "*" - } + "language": "kuery", + "query": "" } } }, @@ -372,12 +365,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -504,9 +493,8 @@ "searchSourceJSON": { "filter": [], "query": { - "query_string": { - "query": "*" - } + "language": "kuery", + "query": "" } } }, @@ -599,9 +587,8 @@ "searchSourceJSON": { "filter": [], "query": { - "query_string": { - "query": "*" - } + "language": "kuery", + "query": "" } } }, @@ -694,9 +681,8 @@ "searchSourceJSON": { "filter": [], "query": { - "query_string": { - "query": "*" - } + "language": "kuery", + "query": "" } } }, @@ -775,9 +761,8 @@ "searchSourceJSON": { "filter": [], "query": { - "query_string": { - "query": "*" - } + "language": "kuery", + "query": "" } } }, @@ -858,12 +843,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -944,9 +925,8 @@ "searchSourceJSON": { "filter": [], "query": { - "query_string": { - "query": "*" - } + "language": "kuery", + "query": "" } } }, @@ -1027,12 +1007,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -1100,9 +1076,8 @@ "searchSourceJSON": { "filter": [], "query": { - "query_string": { - "query": "*" - } + "language": "kuery", + "query": "" } } }, @@ -1187,13 +1162,8 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } diff --git a/metricbeat/module/mongodb/_meta/kibana/7/dashboard/Metricbeat-mongodb-overview.json b/metricbeat/module/mongodb/_meta/kibana/7/dashboard/Metricbeat-mongodb-overview.json index c7e78a01221..1fdd15196bf 100644 --- a/metricbeat/module/mongodb/_meta/kibana/7/dashboard/Metricbeat-mongodb-overview.json +++ b/metricbeat/module/mongodb/_meta/kibana/7/dashboard/Metricbeat-mongodb-overview.json @@ -1099,11 +1099,9 @@ }, "index": "metricbeat-*", "query": { - "query_string": { - "analyze_wildcard": true, + "language": "kuery", "query": "event.module:mongodb" } - } } }, "sort": [ @@ -1126,13 +1124,8 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } diff --git a/metricbeat/module/mysql/_meta/kibana/7/dashboard/Metricbeat-mysql-overview.json b/metricbeat/module/mysql/_meta/kibana/7/dashboard/Metricbeat-mysql-overview.json index 93f84529c01..8acfa464fdc 100644 --- a/metricbeat/module/mysql/_meta/kibana/7/dashboard/Metricbeat-mysql-overview.json +++ b/metricbeat/module/mysql/_meta/kibana/7/dashboard/Metricbeat-mysql-overview.json @@ -531,13 +531,8 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } diff --git a/metricbeat/module/nats/_meta/kibana/7/dashboard/Metricbeat-nats-overview.json b/metricbeat/module/nats/_meta/kibana/7/dashboard/Metricbeat-nats-overview.json index da25f98f318..7ff6121a2f6 100644 --- a/metricbeat/module/nats/_meta/kibana/7/dashboard/Metricbeat-nats-overview.json +++ b/metricbeat/module/nats/_meta/kibana/7/dashboard/Metricbeat-nats-overview.json @@ -8,7 +8,7 @@ "filter": [], "index": "metricbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -137,7 +137,7 @@ "filter": [], "index": "metricbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -203,7 +203,7 @@ "filter": [], "index": "metricbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -269,7 +269,7 @@ "filter": [], "index": "metricbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -335,7 +335,7 @@ "filter": [], "index": "metricbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -524,7 +524,7 @@ "filter": [], "index": "metricbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -731,7 +731,7 @@ "filter": [], "index": "metricbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -850,7 +850,7 @@ "filter": [], "index": "metricbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -991,7 +991,7 @@ "filter": [], "index": "metricbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -1110,7 +1110,7 @@ "filter": [], "index": "metricbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -1251,7 +1251,7 @@ "filter": [], "index": "metricbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -1370,7 +1370,7 @@ "filter": [], "index": "metricbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -1490,7 +1490,7 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true diff --git a/metricbeat/module/nginx/_meta/kibana/7/dashboard/metricbeat-nginx-overview.json b/metricbeat/module/nginx/_meta/kibana/7/dashboard/metricbeat-nginx-overview.json index 6bcb9219353..ba0af75e029 100644 --- a/metricbeat/module/nginx/_meta/kibana/7/dashboard/metricbeat-nginx-overview.json +++ b/metricbeat/module/nginx/_meta/kibana/7/dashboard/metricbeat-nginx-overview.json @@ -382,7 +382,7 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true diff --git a/metricbeat/module/rabbitmq/_meta/kibana/7/dashboard/Metricbeat-rabbitmq-overview.json b/metricbeat/module/rabbitmq/_meta/kibana/7/dashboard/Metricbeat-rabbitmq-overview.json index e6517467a5a..2bd4b044025 100644 --- a/metricbeat/module/rabbitmq/_meta/kibana/7/dashboard/Metricbeat-rabbitmq-overview.json +++ b/metricbeat/module/rabbitmq/_meta/kibana/7/dashboard/Metricbeat-rabbitmq-overview.json @@ -359,11 +359,9 @@ }, "index": "metricbeat-*", "query": { - "query_string": { - "analyze_wildcard": true, + "language": "kuery", "query": "event.module:rabbitmq" } - } } }, "sort": [ @@ -386,13 +384,8 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } diff --git a/metricbeat/module/redis/_meta/kibana/7/dashboard/Metricbeat-redis-overview.json b/metricbeat/module/redis/_meta/kibana/7/dashboard/Metricbeat-redis-overview.json index 1efa33513f0..7ab339ad910 100644 --- a/metricbeat/module/redis/_meta/kibana/7/dashboard/Metricbeat-redis-overview.json +++ b/metricbeat/module/redis/_meta/kibana/7/dashboard/Metricbeat-redis-overview.json @@ -683,11 +683,9 @@ }, "index": "metricbeat-*", "query": { - "query_string": { - "analyze_wildcard": true, + "language": "kuery", "query": "event.module:redis" } - } } }, "sort": [ @@ -707,16 +705,11 @@ "hits": 0, "kibanaSavedObjectMeta": { "searchSourceJSON": { - "filter": [ - { + "filter": [], "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } - } - ], + "language": "kuery", + "query": "" + }, "highlightAll": true, "version": true } diff --git a/metricbeat/module/system/_meta/kibana/7/dashboard/Metricbeat-containers-overview.json b/metricbeat/module/system/_meta/kibana/7/dashboard/Metricbeat-containers-overview.json index af128666072..75bfe06ab6f 100644 --- a/metricbeat/module/system/_meta/kibana/7/dashboard/Metricbeat-containers-overview.json +++ b/metricbeat/module/system/_meta/kibana/7/dashboard/Metricbeat-containers-overview.json @@ -8,13 +8,8 @@ "filter": [], "index": "metricbeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -125,13 +120,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -160,13 +150,8 @@ "filter": [], "index": "metricbeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -368,13 +353,8 @@ "filter": [], "index": "metricbeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -467,13 +447,8 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } diff --git a/metricbeat/module/system/_meta/kibana/7/dashboard/Metricbeat-host-overview.json b/metricbeat/module/system/_meta/kibana/7/dashboard/Metricbeat-host-overview.json index 3094b6247de..cc59f16e9dc 100644 --- a/metricbeat/module/system/_meta/kibana/7/dashboard/Metricbeat-host-overview.json +++ b/metricbeat/module/system/_meta/kibana/7/dashboard/Metricbeat-host-overview.json @@ -7,9 +7,8 @@ "searchSourceJSON": { "filter": [], "query": { - "query_string": { - "query": "*" - } + "language": "kuery", + "query": "" } } }, @@ -133,12 +132,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -238,9 +233,8 @@ "searchSourceJSON": { "filter": [], "query": { - "query_string": { - "query": "*" - } + "language": "kuery", + "query": "" } } }, @@ -364,12 +358,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -491,12 +481,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -565,12 +551,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -651,12 +633,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -819,12 +797,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -936,12 +910,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -1012,12 +982,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -1132,12 +1098,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -1220,12 +1182,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -1350,12 +1308,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -1480,12 +1434,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -1565,13 +1515,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -1599,12 +1544,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -1687,9 +1628,8 @@ "searchSourceJSON": { "filter": [], "query": { - "query_string": { - "query": "*" - } + "language": "kuery", + "query": "" } } }, @@ -1773,12 +1713,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -1883,12 +1819,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -1972,12 +1904,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -2042,12 +1970,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -2113,10 +2037,8 @@ "filter": [], "index": "metricbeat-*", "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } + "language": "kuery", + "query": "" } } }, @@ -2225,7 +2147,7 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", + "language": "kuery", "query": "host.name:\"CHANGEME_HOSTNAME\"" }, "version": true diff --git a/metricbeat/module/system/_meta/kibana/7/dashboard/Metricbeat-system-overview.json b/metricbeat/module/system/_meta/kibana/7/dashboard/Metricbeat-system-overview.json index 267175eeb06..2b4106f75e1 100644 --- a/metricbeat/module/system/_meta/kibana/7/dashboard/Metricbeat-system-overview.json +++ b/metricbeat/module/system/_meta/kibana/7/dashboard/Metricbeat-system-overview.json @@ -7,13 +7,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -42,13 +37,8 @@ "filter": [], "index": "metricbeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -131,12 +121,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -168,7 +154,7 @@ "value": 0.85 } ], - "drilldown_url": "../app/kibana#/dashboard/79ffd6e0-faa0-11e6-947f-177f697178b8-ecs?_a=(query:(query_string:(analyze_wildcard:!t,query:'host.name:\"{{key}}\"')))", + "drilldown_url": "../app/kibana#/dashboard/79ffd6e0-faa0-11e6-947f-177f697178b8-ecs?_a=(query:(language:kuery,query:'host.name:\"{{key}}\"'))", "filter": "", "id": "31e5afa0-1b1c-11e7-b09e-037021c4f8df", "index_pattern": "metricbeat-*", @@ -218,12 +204,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -255,7 +237,7 @@ "value": 0.85 } ], - "drilldown_url": "../app/kibana#/dashboard/79ffd6e0-faa0-11e6-947f-177f697178b8-ecs?_a=(query:(query_string:(analyze_wildcard:!t,query:'host.name:\"{{key}}\"')))", + "drilldown_url": "../app/kibana#/dashboard/79ffd6e0-faa0-11e6-947f-177f697178b8-ecs?_a=(query:(language:kuery,query:'host.name:\"{{key}}\"'))", "filter": "", "id": "31e5afa0-1b1c-11e7-b09e-037021c4f8df", "index_pattern": "metricbeat-*", @@ -306,13 +288,8 @@ "filter": [], "index": "metricbeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -412,12 +389,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -542,12 +515,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -672,12 +641,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -782,12 +747,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -870,12 +831,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -992,13 +949,8 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } diff --git a/metricbeat/module/uwsgi/_meta/kibana/7/dashboard/Metricbeat-uwsgi-overview.json b/metricbeat/module/uwsgi/_meta/kibana/7/dashboard/Metricbeat-uwsgi-overview.json index 8be3fc93f42..49cd8c6f6c6 100644 --- a/metricbeat/module/uwsgi/_meta/kibana/7/dashboard/Metricbeat-uwsgi-overview.json +++ b/metricbeat/module/uwsgi/_meta/kibana/7/dashboard/Metricbeat-uwsgi-overview.json @@ -101,7 +101,7 @@ "highlightAll": true, "index": "metricbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "event.module: uwsgi" }, "version": true @@ -127,7 +127,7 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true diff --git a/metricbeat/module/windows/_meta/kibana/7/dashboard/metricbeat-windows-service.json b/metricbeat/module/windows/_meta/kibana/7/dashboard/metricbeat-windows-service.json index c5d8f012d2f..23e0fb6afb4 100644 --- a/metricbeat/module/windows/_meta/kibana/7/dashboard/metricbeat-windows-service.json +++ b/metricbeat/module/windows/_meta/kibana/7/dashboard/metricbeat-windows-service.json @@ -8,7 +8,7 @@ "filter": [], "index": "metricbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -186,7 +186,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -256,7 +256,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -326,7 +326,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -480,7 +480,7 @@ } ], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -629,7 +629,7 @@ "highlightAll": true, "index": "metricbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true @@ -655,7 +655,7 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true diff --git a/metricbeat/module/zookeeper/_meta/kibana/7/dashboard/Metricbeat-zookeeper-overview.json b/metricbeat/module/zookeeper/_meta/kibana/7/dashboard/Metricbeat-zookeeper-overview.json index b310e8c1aaf..6f6725d2679 100644 --- a/metricbeat/module/zookeeper/_meta/kibana/7/dashboard/Metricbeat-zookeeper-overview.json +++ b/metricbeat/module/zookeeper/_meta/kibana/7/dashboard/Metricbeat-zookeeper-overview.json @@ -7,7 +7,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -69,7 +69,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -131,7 +131,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -193,7 +193,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -301,7 +301,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -403,7 +403,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } diff --git a/packetbeat/_meta/kibana/7/dashboard/Packetbeat-cassandra.json b/packetbeat/_meta/kibana/7/dashboard/Packetbeat-cassandra.json index 1e05fc32df6..a8f3c2a4cf8 100644 --- a/packetbeat/_meta/kibana/7/dashboard/Packetbeat-cassandra.json +++ b/packetbeat/_meta/kibana/7/dashboard/Packetbeat-cassandra.json @@ -8,10 +8,8 @@ "filter": [], "index": "packetbeat-*", "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } + "language": "kuery", + "query": "" } } }, @@ -78,10 +76,8 @@ "filter": [], "index": "packetbeat-*", "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } + "language": "kuery", + "query": "" } } }, @@ -136,10 +132,8 @@ "filter": [], "index": "packetbeat-*", "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } + "language": "kuery", + "query": "" } } }, @@ -280,10 +274,8 @@ "filter": [], "index": "packetbeat-*", "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } + "language": "kuery", + "query": "" } } }, @@ -349,10 +341,8 @@ "filter": [], "index": "packetbeat-*", "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } + "language": "kuery", + "query": "" } } }, @@ -419,10 +409,8 @@ "filter": [], "index": "packetbeat-*", "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } + "language": "kuery", + "query": "" } } }, @@ -496,10 +484,8 @@ "filter": [], "index": "packetbeat-*", "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } + "language": "kuery", + "query": "" } } }, @@ -573,10 +559,8 @@ "filter": [], "index": "packetbeat-*", "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } + "language": "kuery", + "query": "" } } }, @@ -661,10 +645,8 @@ "filter": [], "index": "packetbeat-*", "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } + "language": "kuery", + "query": "" } } }, @@ -743,13 +725,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -854,13 +831,8 @@ "highlightAll": true, "index": "packetbeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } @@ -944,13 +916,8 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } diff --git a/packetbeat/_meta/kibana/7/dashboard/Packetbeat-dhcpv4.json b/packetbeat/_meta/kibana/7/dashboard/Packetbeat-dhcpv4.json index 07ec987ea88..465dd064e35 100644 --- a/packetbeat/_meta/kibana/7/dashboard/Packetbeat-dhcpv4.json +++ b/packetbeat/_meta/kibana/7/dashboard/Packetbeat-dhcpv4.json @@ -299,7 +299,7 @@ "highlightAll": true, "index": "packetbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true @@ -534,7 +534,7 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true diff --git a/packetbeat/_meta/kibana/7/dashboard/Packetbeat-dns-overview.json b/packetbeat/_meta/kibana/7/dashboard/Packetbeat-dns-overview.json index 6e7b98a1d17..e405997a9d1 100644 --- a/packetbeat/_meta/kibana/7/dashboard/Packetbeat-dns-overview.json +++ b/packetbeat/_meta/kibana/7/dashboard/Packetbeat-dns-overview.json @@ -7,7 +7,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -103,7 +103,7 @@ "filter": [], "index": "packetbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -254,13 +254,8 @@ "filter": [], "index": "packetbeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -365,7 +360,7 @@ }, "index": "packetbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -451,7 +446,7 @@ }, "index": "packetbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -523,7 +518,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -699,7 +694,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -830,7 +825,7 @@ "highlightAll": true, "index": "packetbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true @@ -856,7 +851,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } diff --git a/packetbeat/_meta/kibana/7/dashboard/Packetbeat-dns-tunneling.json b/packetbeat/_meta/kibana/7/dashboard/Packetbeat-dns-tunneling.json index 060b6869a00..af6a32a08d5 100644 --- a/packetbeat/_meta/kibana/7/dashboard/Packetbeat-dns-tunneling.json +++ b/packetbeat/_meta/kibana/7/dashboard/Packetbeat-dns-tunneling.json @@ -152,7 +152,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -311,14 +311,9 @@ "filter": [], "index": "packetbeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, + "language": "kuery", "query": "type:dns" } - } - } } }, "title": "Top Domains by Data Volume ECS", @@ -449,7 +444,7 @@ "highlightAll": true, "index": "packetbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true @@ -476,7 +471,7 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", + "language": "kuery", "query": "NOT dns.question.type:PTR" }, "version": true diff --git a/packetbeat/_meta/kibana/7/dashboard/Packetbeat-flows.json b/packetbeat/_meta/kibana/7/dashboard/Packetbeat-flows.json index 94457a40ee1..1f28f6bf919 100644 --- a/packetbeat/_meta/kibana/7/dashboard/Packetbeat-flows.json +++ b/packetbeat/_meta/kibana/7/dashboard/Packetbeat-flows.json @@ -7,7 +7,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -154,13 +154,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -190,7 +185,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -320,7 +315,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -467,7 +462,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -596,13 +591,8 @@ "highlightAll": true, "index": "packetbeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, + "language": "kuery", "query": "type: flow" - } - } }, "version": true } @@ -628,8 +618,8 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", - "query": "*" + "language": "kuery", + "query": "" }, "version": true } diff --git a/packetbeat/_meta/kibana/7/dashboard/Packetbeat-http.json b/packetbeat/_meta/kibana/7/dashboard/Packetbeat-http.json index ec5b2bd0635..c5f32d9438a 100644 --- a/packetbeat/_meta/kibana/7/dashboard/Packetbeat-http.json +++ b/packetbeat/_meta/kibana/7/dashboard/Packetbeat-http.json @@ -170,13 +170,8 @@ }, "index": "packetbeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "http.response.status_code: [300 TO *]" - } - } + "language": "kuery", + "query": "http.response.status_code >= 300" } } }, @@ -365,7 +360,7 @@ }, "index": "packetbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -513,13 +508,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -549,7 +539,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -614,7 +604,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -698,7 +688,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -802,8 +792,8 @@ "highlightAll": true, "index": "packetbeat-*", "query": { - "language": "lucene", - "query": "*" + "language": "kuery", + "query": "" }, "version": true } @@ -829,13 +819,8 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } diff --git a/packetbeat/_meta/kibana/7/dashboard/Packetbeat-mongodb.json b/packetbeat/_meta/kibana/7/dashboard/Packetbeat-mongodb.json index 3059b71ff10..1d63607382d 100644 --- a/packetbeat/_meta/kibana/7/dashboard/Packetbeat-mongodb.json +++ b/packetbeat/_meta/kibana/7/dashboard/Packetbeat-mongodb.json @@ -7,13 +7,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -1091,8 +1086,8 @@ "highlightAll": true, "index": "packetbeat-*", "query": { - "language": "lucene", - "query": "*" + "language": "kuery", + "query": "" }, "version": true } @@ -1166,13 +1161,8 @@ "highlightAll": true, "index": "packetbeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } @@ -1246,13 +1236,8 @@ "highlightAll": true, "index": "packetbeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, + "language": "kuery", "query": "request: \"writeConcern w 0\"" - } - } }, "version": true } @@ -1278,8 +1263,8 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", - "query": "*" + "language": "kuery", + "query": "" }, "version": true } diff --git a/packetbeat/_meta/kibana/7/dashboard/Packetbeat-mysql.json b/packetbeat/_meta/kibana/7/dashboard/Packetbeat-mysql.json index 65a0672a894..7fd2a0cdfe7 100644 --- a/packetbeat/_meta/kibana/7/dashboard/Packetbeat-mysql.json +++ b/packetbeat/_meta/kibana/7/dashboard/Packetbeat-mysql.json @@ -277,13 +277,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -742,12 +737,7 @@ "filters": [ { "input": { - "query": { - "query_string": { - "analyze_wildcard": true, "query": "method: SELECT" - } - } } }, { @@ -930,13 +920,8 @@ "highlightAll": true, "index": "packetbeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } @@ -1008,13 +993,8 @@ "highlightAll": true, "index": "packetbeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } @@ -1040,13 +1020,8 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } diff --git a/packetbeat/_meta/kibana/7/dashboard/Packetbeat-nfs.json b/packetbeat/_meta/kibana/7/dashboard/Packetbeat-nfs.json index 698cd6f84c2..5530e30965e 100644 --- a/packetbeat/_meta/kibana/7/dashboard/Packetbeat-nfs.json +++ b/packetbeat/_meta/kibana/7/dashboard/Packetbeat-nfs.json @@ -796,13 +796,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -878,13 +873,8 @@ "highlightAll": true, "index": "packetbeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } @@ -1006,13 +996,8 @@ "highlightAll": true, "index": "packetbeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } @@ -1038,8 +1023,8 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", - "query": "*" + "language": "kuery", + "query": "" }, "version": true } diff --git a/packetbeat/_meta/kibana/7/dashboard/Packetbeat-overview.json b/packetbeat/_meta/kibana/7/dashboard/Packetbeat-overview.json index 592341242be..ac4d8eb6e0c 100644 --- a/packetbeat/_meta/kibana/7/dashboard/Packetbeat-overview.json +++ b/packetbeat/_meta/kibana/7/dashboard/Packetbeat-overview.json @@ -159,7 +159,7 @@ ], "index": "packetbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -767,13 +767,8 @@ "filter": [], "index": "packetbeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -1011,13 +1006,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -1211,7 +1201,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -1384,8 +1374,8 @@ "highlightAll": true, "index": "packetbeat-*", "query": { - "language": "lucene", - "query": "*" + "language": "kuery", + "query": "" }, "version": true } @@ -1463,7 +1453,7 @@ "highlightAll": true, "index": "packetbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true @@ -1568,7 +1558,7 @@ "highlightAll": true, "index": "packetbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true @@ -1642,7 +1632,7 @@ "highlightAll": true, "index": "packetbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true @@ -1691,13 +1681,8 @@ "highlightAll": true, "index": "packetbeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } @@ -1723,8 +1708,8 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", - "query": "*" + "language": "kuery", + "query": "" }, "version": true } diff --git a/packetbeat/_meta/kibana/7/dashboard/Packetbeat-pgsql.json b/packetbeat/_meta/kibana/7/dashboard/Packetbeat-pgsql.json index d33eae63988..77022b5a8d7 100644 --- a/packetbeat/_meta/kibana/7/dashboard/Packetbeat-pgsql.json +++ b/packetbeat/_meta/kibana/7/dashboard/Packetbeat-pgsql.json @@ -7,13 +7,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -621,12 +616,7 @@ "filters": [ { "input": { - "query": { - "query_string": { - "analyze_wildcard": true, "query": "method: SELECT" - } - } } }, { @@ -954,8 +944,8 @@ "highlightAll": true, "index": "packetbeat-*", "query": { - "language": "lucene", - "query": "*" + "language": "kuery", + "query": "" }, "version": true } @@ -1027,13 +1017,8 @@ "highlightAll": true, "index": "packetbeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } @@ -1059,13 +1044,8 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } diff --git a/packetbeat/_meta/kibana/7/dashboard/Packetbeat-thrift.json b/packetbeat/_meta/kibana/7/dashboard/Packetbeat-thrift.json index 92761197e56..26569a1081f 100644 --- a/packetbeat/_meta/kibana/7/dashboard/Packetbeat-thrift.json +++ b/packetbeat/_meta/kibana/7/dashboard/Packetbeat-thrift.json @@ -7,13 +7,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -504,13 +499,8 @@ "highlightAll": true, "index": "packetbeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, + "language": "kuery", "query": "type: thrift" - } - } }, "version": true } @@ -608,13 +598,8 @@ "highlightAll": true, "index": "packetbeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, + "language": "kuery", "query": "type: thrift" - } - } }, "version": true } @@ -640,13 +625,8 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } diff --git a/packetbeat/_meta/kibana/7/dashboard/Packetbeat-tls.json b/packetbeat/_meta/kibana/7/dashboard/Packetbeat-tls.json index a3563dd1f13..c076d0f3523 100644 --- a/packetbeat/_meta/kibana/7/dashboard/Packetbeat-tls.json +++ b/packetbeat/_meta/kibana/7/dashboard/Packetbeat-tls.json @@ -7,13 +7,8 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -43,7 +38,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -204,7 +199,7 @@ ], "index": "packetbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -285,13 +280,8 @@ ], "index": "packetbeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -370,7 +360,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -425,7 +415,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -480,7 +470,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -535,7 +525,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -601,7 +591,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -684,7 +674,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -766,7 +756,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -834,7 +824,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -927,7 +917,7 @@ } ], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -1072,13 +1062,8 @@ "highlightAll": true, "index": "packetbeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } @@ -1126,13 +1111,8 @@ "highlightAll": true, "index": "packetbeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } @@ -1180,13 +1160,8 @@ "highlightAll": true, "index": "packetbeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } @@ -1234,13 +1209,8 @@ "highlightAll": true, "index": "packetbeat-*", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } @@ -1288,7 +1258,7 @@ "highlightAll": true, "index": "packetbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true @@ -1354,7 +1324,7 @@ "highlightAll": true, "index": "packetbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true @@ -1381,13 +1351,8 @@ "filter": [], "highlightAll": true, "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" }, "version": true } diff --git a/packetbeat/docs/filtering.asciidoc b/packetbeat/docs/filtering.asciidoc index 2c4a1edf272..ee1735259db 100644 --- a/packetbeat/docs/filtering.asciidoc +++ b/packetbeat/docs/filtering.asciidoc @@ -147,14 +147,14 @@ type: mysql AND method: INSERT AND status: Error ------------------------------------------------- -Lucene also supports parentheses to group sub-queries. +Kibana Query Language (KQL) also supports parentheses to group sub-queries. To search for either INSERT or UPDATE queries with a response time greater than or equal to 30ms: [source,yaml] --------------------------------------------------------------------------- -(method: INSERT OR method: UPDATE) AND event.duration: [30000000 TO *] +(method: INSERT OR method: UPDATE) AND event.duration >= 30000000 --------------------------------------------------------------------------- diff --git a/winlogbeat/_meta/kibana/7/dashboard/Winlogbeat-overview.json b/winlogbeat/_meta/kibana/7/dashboard/Winlogbeat-overview.json index 8e0d457e481..c6af3d3a991 100644 --- a/winlogbeat/_meta/kibana/7/dashboard/Winlogbeat-overview.json +++ b/winlogbeat/_meta/kibana/7/dashboard/Winlogbeat-overview.json @@ -8,10 +8,8 @@ "searchSourceJSON": { "filter": [], "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } + "language": "kuery", + "query": "" } } }, @@ -137,8 +135,8 @@ "filter": [], "indexRefName": "kibanaSavedObjectMeta.searchSourceJSON.index", "query": { - "language": "lucene", - "query": "*" + "language": "kuery", + "query": "" } } }, @@ -340,10 +338,8 @@ "filter": [], "indexRefName": "kibanaSavedObjectMeta.searchSourceJSON.index", "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } + "language": "kuery", + "query": "" } } }, @@ -389,13 +385,8 @@ "filter": [], "indexRefName": "kibanaSavedObjectMeta.searchSourceJSON.index", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -503,13 +494,8 @@ "filter": [], "indexRefName": "kibanaSavedObjectMeta.searchSourceJSON.index", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, @@ -617,13 +603,8 @@ "filter": [], "indexRefName": "kibanaSavedObjectMeta.searchSourceJSON.index", "query": { - "language": "lucene", - "query": { - "query_string": { - "analyze_wildcard": true, - "query": "*" - } - } + "language": "kuery", + "query": "" } } }, diff --git a/x-pack/auditbeat/module/system/_meta/kibana/7/dashboard/auditbeat-system-host-dashboard.json b/x-pack/auditbeat/module/system/_meta/kibana/7/dashboard/auditbeat-system-host-dashboard.json index a8934c0cc6c..c3294edb8bb 100644 --- a/x-pack/auditbeat/module/system/_meta/kibana/7/dashboard/auditbeat-system-host-dashboard.json +++ b/x-pack/auditbeat/module/system/_meta/kibana/7/dashboard/auditbeat-system-host-dashboard.json @@ -673,7 +673,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } diff --git a/x-pack/auditbeat/module/system/_meta/kibana/7/dashboard/auditbeat-system-login-dashboard.json b/x-pack/auditbeat/module/system/_meta/kibana/7/dashboard/auditbeat-system-login-dashboard.json index f663f846bc5..9f0962a44c1 100644 --- a/x-pack/auditbeat/module/system/_meta/kibana/7/dashboard/auditbeat-system-login-dashboard.json +++ b/x-pack/auditbeat/module/system/_meta/kibana/7/dashboard/auditbeat-system-login-dashboard.json @@ -35,7 +35,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -127,7 +127,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -244,7 +244,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -371,7 +371,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -472,7 +472,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -626,7 +626,7 @@ "highlightAll": true, "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true @@ -761,7 +761,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -793,7 +793,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } diff --git a/x-pack/auditbeat/module/system/_meta/kibana/7/dashboard/auditbeat-system-overview-dashboard.json b/x-pack/auditbeat/module/system/_meta/kibana/7/dashboard/auditbeat-system-overview-dashboard.json index 24c0db47fe6..9f9caede566 100644 --- a/x-pack/auditbeat/module/system/_meta/kibana/7/dashboard/auditbeat-system-overview-dashboard.json +++ b/x-pack/auditbeat/module/system/_meta/kibana/7/dashboard/auditbeat-system-overview-dashboard.json @@ -128,7 +128,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -221,7 +221,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -314,7 +314,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -407,7 +407,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -500,7 +500,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -702,7 +702,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -819,7 +819,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -937,7 +937,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -1055,7 +1055,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -1173,7 +1173,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -1291,7 +1291,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -1409,7 +1409,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -1527,7 +1527,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -1869,7 +1869,7 @@ "highlightAll": true, "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true @@ -1894,7 +1894,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -2083,7 +2083,7 @@ } ], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } diff --git a/x-pack/auditbeat/module/system/_meta/kibana/7/dashboard/auditbeat-system-package-dashboard.json b/x-pack/auditbeat/module/system/_meta/kibana/7/dashboard/auditbeat-system-package-dashboard.json index 4d6ba67e0f9..c34fc4dbc16 100644 --- a/x-pack/auditbeat/module/system/_meta/kibana/7/dashboard/auditbeat-system-package-dashboard.json +++ b/x-pack/auditbeat/module/system/_meta/kibana/7/dashboard/auditbeat-system-package-dashboard.json @@ -7,7 +7,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -66,7 +66,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -185,7 +185,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -413,7 +413,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -504,7 +504,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -657,7 +657,7 @@ "highlightAll": true, "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true @@ -710,7 +710,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -781,7 +781,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } diff --git a/x-pack/auditbeat/module/system/_meta/kibana/7/dashboard/auditbeat-system-process-dashboard.json b/x-pack/auditbeat/module/system/_meta/kibana/7/dashboard/auditbeat-system-process-dashboard.json index d66cc3f5f2b..eb2f14e8ac5 100644 --- a/x-pack/auditbeat/module/system/_meta/kibana/7/dashboard/auditbeat-system-process-dashboard.json +++ b/x-pack/auditbeat/module/system/_meta/kibana/7/dashboard/auditbeat-system-process-dashboard.json @@ -35,7 +35,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -154,7 +154,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -272,7 +272,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -373,7 +373,7 @@ "highlightAll": true, "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true @@ -536,7 +536,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -682,7 +682,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -781,7 +781,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -852,7 +852,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -884,7 +884,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } diff --git a/x-pack/auditbeat/module/system/_meta/kibana/7/dashboard/auditbeat-system-socket-dashboard.json b/x-pack/auditbeat/module/system/_meta/kibana/7/dashboard/auditbeat-system-socket-dashboard.json index 5e5453ac6e0..8c026219dd3 100644 --- a/x-pack/auditbeat/module/system/_meta/kibana/7/dashboard/auditbeat-system-socket-dashboard.json +++ b/x-pack/auditbeat/module/system/_meta/kibana/7/dashboard/auditbeat-system-socket-dashboard.json @@ -7,7 +7,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -66,7 +66,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -185,7 +185,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -303,7 +303,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -395,7 +395,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -494,7 +494,7 @@ "highlightAll": true, "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true @@ -547,7 +547,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -693,7 +693,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -791,7 +791,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -889,7 +889,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -987,7 +987,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -1058,7 +1058,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } diff --git a/x-pack/auditbeat/module/system/_meta/kibana/7/dashboard/auditbeat-system-user-dashboard.json b/x-pack/auditbeat/module/system/_meta/kibana/7/dashboard/auditbeat-system-user-dashboard.json index b1da37ad033..6c9bf47ca93 100644 --- a/x-pack/auditbeat/module/system/_meta/kibana/7/dashboard/auditbeat-system-user-dashboard.json +++ b/x-pack/auditbeat/module/system/_meta/kibana/7/dashboard/auditbeat-system-user-dashboard.json @@ -35,7 +35,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -154,7 +154,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -272,7 +272,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -363,7 +363,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -454,7 +454,7 @@ ], "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -608,7 +608,7 @@ "highlightAll": true, "index": "auditbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true @@ -743,7 +743,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -775,7 +775,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } diff --git a/x-pack/filebeat/input/netflow/_meta/kibana/7/dashboard/filebeat-network-flows-top-n.json b/x-pack/filebeat/input/netflow/_meta/kibana/7/dashboard/filebeat-network-flows-top-n.json index 87aff4a1f13..a2a47fdd5cc 100644 --- a/x-pack/filebeat/input/netflow/_meta/kibana/7/dashboard/filebeat-network-flows-top-n.json +++ b/x-pack/filebeat/input/netflow/_meta/kibana/7/dashboard/filebeat-network-flows-top-n.json @@ -7,7 +7,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -153,7 +153,7 @@ } ], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -216,7 +216,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -298,7 +298,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -410,7 +410,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -522,7 +522,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -733,7 +733,7 @@ "highlightAll": true, "index": "filebeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" }, "version": true @@ -759,7 +759,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } diff --git a/x-pack/metricbeat/module/mssql/_meta/kibana/7/dashboard/Metricbeat-mssql-performance.json b/x-pack/metricbeat/module/mssql/_meta/kibana/7/dashboard/Metricbeat-mssql-performance.json index b65a2604be4..4d99733002e 100644 --- a/x-pack/metricbeat/module/mssql/_meta/kibana/7/dashboard/Metricbeat-mssql-performance.json +++ b/x-pack/metricbeat/module/mssql/_meta/kibana/7/dashboard/Metricbeat-mssql-performance.json @@ -8,7 +8,7 @@ "filter": [], "index": "metricbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -136,7 +136,7 @@ "filter": [], "index": "metricbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -264,7 +264,7 @@ "filter": [], "index": "metricbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -392,7 +392,7 @@ "filter": [], "index": "metricbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -525,7 +525,7 @@ "filter": [], "index": "metricbeat-*", "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -656,7 +656,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } diff --git a/x-pack/metricbeat/module/mssql/_meta/kibana/7/dashboard/Metricbeat-mssql-transaction_log.json b/x-pack/metricbeat/module/mssql/_meta/kibana/7/dashboard/Metricbeat-mssql-transaction_log.json index d9954220128..b195ad3c4dc 100644 --- a/x-pack/metricbeat/module/mssql/_meta/kibana/7/dashboard/Metricbeat-mssql-transaction_log.json +++ b/x-pack/metricbeat/module/mssql/_meta/kibana/7/dashboard/Metricbeat-mssql-transaction_log.json @@ -7,7 +7,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -78,7 +78,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -143,7 +143,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -208,7 +208,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -273,7 +273,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -338,7 +338,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -403,7 +403,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -468,7 +468,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } @@ -520,7 +520,7 @@ "searchSourceJSON": { "filter": [], "query": { - "language": "lucene", + "language": "kuery", "query": "" } } From d36eb5a293ab2abc963168e9c6184c6e912f9877 Mon Sep 17 00:00:00 2001 From: Andrew Kroh Date: Thu, 21 Mar 2019 18:11:42 -0400 Subject: [PATCH 250/332] Add ability to use existing processors from script processor (#11260) * Add JS require with modules This adds a `require` function to the JS runtime that scripts can call to import "modules". Some standard modules that are added in this PR are - `processor` - You can construct beat processors in JS (e.g. `new processor.Dissect({...})`). - `console` - You can write to beat's logger. - `path` - You can parse win32 and posix paths. The `processor` module supports constructing: - `AddCloudMetadata` - `AddDockerMetadata` - `AddHostMetadata` - `AddKubernetesMetadata` - `AddLocale` - `AddProcessMetadata` - `CommunityID` - `DecodeJSONFields` - `Dissect` - `DNS` * Add github.com/dop251/goja_nodejs to vendor --- CHANGELOG.next.asciidoc | 2 +- NOTICE.txt | 20 ++ .../processors/actions/decode_json_fields.go | 5 +- .../actions/decode_json_fields_test.go | 2 +- .../add_cloud_metadata/add_cloud_metadata.go | 5 +- .../provider_alibaba_cloud_test.go | 2 +- .../provider_aws_ec2_test.go | 2 +- .../provider_azure_vm_test.go | 2 +- .../provider_digital_ocean_test.go | 2 +- .../provider_google_gce_test.go | 2 +- .../provider_openstack_nova_test.go | 2 +- .../provider_tencent_cloud_test.go | 2 +- .../add_docker_metadata.go | 5 +- .../add_host_metadata/add_host_metadata.go | 5 +- .../add_host_metadata_test.go | 12 +- .../add_kubernetes_metadata/kubernetes.go | 5 +- libbeat/processors/add_locale/add_locale.go | 5 +- .../processors/add_locale/add_locale_test.go | 4 +- .../add_process_metadata.go | 5 +- .../add_process_metadata_test.go | 4 +- libbeat/processors/dissect/processor.go | 5 +- libbeat/processors/dissect/processor_test.go | 10 +- libbeat/processors/dns/dns.go | 5 +- .../script/javascript/beatevent_v0.go | 4 +- .../javascript/module/console/console.go | 89 ++++++ .../javascript/module/console/console_test.go | 76 ++++++ .../script/javascript/module/include.go | 26 ++ .../script/javascript/module/path/path.go | 74 +++++ .../javascript/module/path/path_test.go | 105 +++++++ .../script/javascript/module/path/windows.go | 245 +++++++++++++++++ .../javascript/module/processor/processor.go | 134 +++++++++ .../module/processor/processor_test.go | 257 ++++++++++++++++++ .../javascript/module/require/require.go | 37 +++ vendor/github.com/dop251/goja_nodejs/LICENSE | 13 + .../dop251/goja_nodejs/require/module.go | 161 +++++++++++ .../dop251/goja_nodejs/util/module.go | 102 +++++++ vendor/vendor.json | 12 + 37 files changed, 1405 insertions(+), 43 deletions(-) create mode 100644 libbeat/processors/script/javascript/module/console/console.go create mode 100644 libbeat/processors/script/javascript/module/console/console_test.go create mode 100644 libbeat/processors/script/javascript/module/include.go create mode 100644 libbeat/processors/script/javascript/module/path/path.go create mode 100644 libbeat/processors/script/javascript/module/path/path_test.go create mode 100644 libbeat/processors/script/javascript/module/path/windows.go create mode 100644 libbeat/processors/script/javascript/module/processor/processor.go create mode 100644 libbeat/processors/script/javascript/module/processor/processor_test.go create mode 100644 libbeat/processors/script/javascript/module/require/require.go create mode 100644 vendor/github.com/dop251/goja_nodejs/LICENSE create mode 100644 vendor/github.com/dop251/goja_nodejs/require/module.go create mode 100644 vendor/github.com/dop251/goja_nodejs/util/module.go diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 0049d16aa35..f309326613d 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -256,7 +256,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Add output test to kafka output {pull}10834[10834] - Add ip fields to default_field in Elasticsearch template. {pull}11035[11035] - Gracefully shut down on SIGHUP {pull}10704[10704] -- Add `script` processor that supports using Javascript to process events. {pull}10850[10850] +- Add `script` processor that supports using Javascript to process events. {pull}10850[10850] {pull}11260[11260] *Auditbeat* diff --git a/NOTICE.txt b/NOTICE.txt index b2c2b35f504..e61cbe1a20b 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -504,6 +504,26 @@ WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEM COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +-------------------------------------------------------------------- +Dependency: github.com/dop251/goja_nodejs +Revision: adff31b136e6b7e044712aab7236a775e1bd085e +License type (autodetected): MIT +./vendor/github.com/dop251/goja_nodejs/LICENSE: +-------------------------------------------------------------------- +Copyright (c) 2016 Dmitry Panov + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + -------------------------------------------------------------------- Dependency: github.com/dustin/go-humanize Revision: 259d2a102b871d17f30e3cd9881a642961a1e486 diff --git a/libbeat/processors/actions/decode_json_fields.go b/libbeat/processors/actions/decode_json_fields.go index d8832858dac..5f01d0c2c64 100644 --- a/libbeat/processors/actions/decode_json_fields.go +++ b/libbeat/processors/actions/decode_json_fields.go @@ -58,12 +58,13 @@ var debug = logp.MakeDebug("filters") func init() { processors.RegisterPlugin("decode_json_fields", - configChecked(newDecodeJSONFields, + configChecked(NewDecodeJSONFields, requireFields("fields"), allowedFields("fields", "max_depth", "overwrite_keys", "process_array", "target", "when"))) } -func newDecodeJSONFields(c *common.Config) (processors.Processor, error) { +// NewDecodeJSONFields construct a new decode_json_fields processor. +func NewDecodeJSONFields(c *common.Config) (processors.Processor, error) { config := defaultConfig err := c.Unpack(&config) diff --git a/libbeat/processors/actions/decode_json_fields_test.go b/libbeat/processors/actions/decode_json_fields_test.go index 15afb944988..cdfe3ff3ff4 100644 --- a/libbeat/processors/actions/decode_json_fields_test.go +++ b/libbeat/processors/actions/decode_json_fields_test.go @@ -202,7 +202,7 @@ func TestTargetRootOption(t *testing.T) { func getActualValue(t *testing.T, config *common.Config, input common.MapStr) common.MapStr { logp.TestingSetup() - p, err := newDecodeJSONFields(config) + p, err := NewDecodeJSONFields(config) if err != nil { logp.Err("Error initializing decode_json_fields") t.Fatal(err) diff --git a/libbeat/processors/add_cloud_metadata/add_cloud_metadata.go b/libbeat/processors/add_cloud_metadata/add_cloud_metadata.go index 8b2c697efb6..23dbf6c28ac 100644 --- a/libbeat/processors/add_cloud_metadata/add_cloud_metadata.go +++ b/libbeat/processors/add_cloud_metadata/add_cloud_metadata.go @@ -49,7 +49,7 @@ var debugf = logp.MakeDebug("filters") // init registers the add_cloud_metadata processor. func init() { - processors.RegisterPlugin("add_cloud_metadata", newCloudMetadata) + processors.RegisterPlugin("add_cloud_metadata", New) } type schemaConv func(m map[string]interface{}) common.MapStr @@ -299,7 +299,8 @@ func setupFetchers(c *common.Config) ([]*metadataFetcher, error) { return fetchers, nil } -func newCloudMetadata(c *common.Config) (processors.Processor, error) { +// New constructs a new add_cloud_metadata processor. +func New(c *common.Config) (processors.Processor, error) { config := struct { Timeout time.Duration `config:"timeout"` // Amount of time to wait for responses from the metadata services. }{ diff --git a/libbeat/processors/add_cloud_metadata/provider_alibaba_cloud_test.go b/libbeat/processors/add_cloud_metadata/provider_alibaba_cloud_test.go index c5f65dada8c..a35fb5c3de3 100644 --- a/libbeat/processors/add_cloud_metadata/provider_alibaba_cloud_test.go +++ b/libbeat/processors/add_cloud_metadata/provider_alibaba_cloud_test.go @@ -62,7 +62,7 @@ func TestRetrieveAlibabaCloudMetadata(t *testing.T) { t.Fatal(err) } - p, err := newCloudMetadata(config) + p, err := New(config) if err != nil { t.Fatal(err) } diff --git a/libbeat/processors/add_cloud_metadata/provider_aws_ec2_test.go b/libbeat/processors/add_cloud_metadata/provider_aws_ec2_test.go index f8dfc6d6695..aaf249fe842 100644 --- a/libbeat/processors/add_cloud_metadata/provider_aws_ec2_test.go +++ b/libbeat/processors/add_cloud_metadata/provider_aws_ec2_test.go @@ -70,7 +70,7 @@ func TestRetrieveAWSMetadata(t *testing.T) { t.Fatal(err) } - p, err := newCloudMetadata(config) + p, err := New(config) if err != nil { t.Fatal(err) } diff --git a/libbeat/processors/add_cloud_metadata/provider_azure_vm_test.go b/libbeat/processors/add_cloud_metadata/provider_azure_vm_test.go index bfcf09e06c1..23133a4b387 100644 --- a/libbeat/processors/add_cloud_metadata/provider_azure_vm_test.go +++ b/libbeat/processors/add_cloud_metadata/provider_azure_vm_test.go @@ -67,7 +67,7 @@ func TestRetrieveAzureMetadata(t *testing.T) { t.Fatal(err) } - p, err := newCloudMetadata(config) + p, err := New(config) if err != nil { t.Fatal(err) } diff --git a/libbeat/processors/add_cloud_metadata/provider_digital_ocean_test.go b/libbeat/processors/add_cloud_metadata/provider_digital_ocean_test.go index a72ae3ad7df..3237b6ec838 100644 --- a/libbeat/processors/add_cloud_metadata/provider_digital_ocean_test.go +++ b/libbeat/processors/add_cloud_metadata/provider_digital_ocean_test.go @@ -101,7 +101,7 @@ func TestRetrieveDigitalOceanMetadata(t *testing.T) { t.Fatal(err) } - p, err := newCloudMetadata(config) + p, err := New(config) if err != nil { t.Fatal(err) } diff --git a/libbeat/processors/add_cloud_metadata/provider_google_gce_test.go b/libbeat/processors/add_cloud_metadata/provider_google_gce_test.go index b76dbc9d4c6..bfb2f89d219 100644 --- a/libbeat/processors/add_cloud_metadata/provider_google_gce_test.go +++ b/libbeat/processors/add_cloud_metadata/provider_google_gce_test.go @@ -140,7 +140,7 @@ func TestRetrieveGCEMetadata(t *testing.T) { t.Fatal(err) } - p, err := newCloudMetadata(config) + p, err := New(config) if err != nil { t.Fatal(err) } diff --git a/libbeat/processors/add_cloud_metadata/provider_openstack_nova_test.go b/libbeat/processors/add_cloud_metadata/provider_openstack_nova_test.go index 547136459fe..bb2c0b4b28a 100644 --- a/libbeat/processors/add_cloud_metadata/provider_openstack_nova_test.go +++ b/libbeat/processors/add_cloud_metadata/provider_openstack_nova_test.go @@ -66,7 +66,7 @@ func TestRetrieveOpenstackNovaMetadata(t *testing.T) { t.Fatal(err) } - p, err := newCloudMetadata(config) + p, err := New(config) if err != nil { t.Fatal(err) } diff --git a/libbeat/processors/add_cloud_metadata/provider_tencent_cloud_test.go b/libbeat/processors/add_cloud_metadata/provider_tencent_cloud_test.go index 20e77113f08..c7868148ad1 100644 --- a/libbeat/processors/add_cloud_metadata/provider_tencent_cloud_test.go +++ b/libbeat/processors/add_cloud_metadata/provider_tencent_cloud_test.go @@ -62,7 +62,7 @@ func TestRetrieveQCloudMetadata(t *testing.T) { t.Fatal(err) } - p, err := newCloudMetadata(config) + p, err := New(config) if err != nil { t.Fatal(err) } diff --git a/libbeat/processors/add_docker_metadata/add_docker_metadata.go b/libbeat/processors/add_docker_metadata/add_docker_metadata.go index ecf7a44278a..244a2710890 100644 --- a/libbeat/processors/add_docker_metadata/add_docker_metadata.go +++ b/libbeat/processors/add_docker_metadata/add_docker_metadata.go @@ -48,7 +48,7 @@ const ( var processCgroupPaths = cgroup.ProcessCgroupPaths func init() { - processors.RegisterPlugin(processorName, newDockerMetadataProcessor) + processors.RegisterPlugin(processorName, New) } type addDockerMetadata struct { @@ -63,7 +63,8 @@ type addDockerMetadata struct { dedot bool // If set to true, replace dots in labels with `_`. } -func newDockerMetadataProcessor(cfg *common.Config) (processors.Processor, error) { +// New constructs a new add_docker_metadata processor. +func New(cfg *common.Config) (processors.Processor, error) { return buildDockerMetadataProcessor(cfg, docker.NewWatcher) } diff --git a/libbeat/processors/add_host_metadata/add_host_metadata.go b/libbeat/processors/add_host_metadata/add_host_metadata.go index d1c00ed4c50..883d06fe225 100644 --- a/libbeat/processors/add_host_metadata/add_host_metadata.go +++ b/libbeat/processors/add_host_metadata/add_host_metadata.go @@ -36,7 +36,7 @@ import ( ) func init() { - processors.RegisterPlugin("add_host_metadata", newHostMetadataProcessor) + processors.RegisterPlugin("add_host_metadata", New) } type addHostMetadata struct { @@ -53,7 +53,8 @@ const ( processorName = "add_host_metadata" ) -func newHostMetadataProcessor(cfg *common.Config) (processors.Processor, error) { +// New constructs a new add_host_metadata processor. +func New(cfg *common.Config) (processors.Processor, error) { config := defaultConfig() if err := cfg.Unpack(&config); err != nil { return nil, errors.Wrapf(err, "fail to unpack the %v configuration", processorName) diff --git a/libbeat/processors/add_host_metadata/add_host_metadata_test.go b/libbeat/processors/add_host_metadata/add_host_metadata_test.go index c60d2f2c3af..750fbc4670a 100644 --- a/libbeat/processors/add_host_metadata/add_host_metadata_test.go +++ b/libbeat/processors/add_host_metadata/add_host_metadata_test.go @@ -40,7 +40,7 @@ func TestConfigDefault(t *testing.T) { testConfig, err := common.NewConfigFrom(map[string]interface{}{}) assert.NoError(t, err) - p, err := newHostMetadataProcessor(testConfig) + p, err := New(testConfig) switch runtime.GOOS { case "windows", "darwin", "linux": assert.NoError(t, err) @@ -83,7 +83,7 @@ func TestConfigNetInfoEnabled(t *testing.T) { }) assert.NoError(t, err) - p, err := newHostMetadataProcessor(testConfig) + p, err := New(testConfig) switch runtime.GOOS { case "windows", "darwin", "linux": assert.NoError(t, err) @@ -129,7 +129,7 @@ func TestConfigName(t *testing.T) { testConfig, err := common.NewConfigFrom(config) assert.NoError(t, err) - p, err := newHostMetadataProcessor(testConfig) + p, err := New(testConfig) require.NoError(t, err) newEvent, err := p.Run(event) @@ -163,7 +163,7 @@ func TestConfigGeoEnabled(t *testing.T) { testConfig, err := common.NewConfigFrom(config) assert.NoError(t, err) - p, err := newHostMetadataProcessor(testConfig) + p, err := New(testConfig) require.NoError(t, err) newEvent, err := p.Run(event) @@ -192,7 +192,7 @@ func TestPartialGeo(t *testing.T) { testConfig, err := common.NewConfigFrom(config) assert.NoError(t, err) - p, err := newHostMetadataProcessor(testConfig) + p, err := New(testConfig) require.NoError(t, err) newEvent, err := p.Run(event) @@ -233,7 +233,7 @@ func TestGeoLocationValidation(t *testing.T) { }) require.NoError(t, err) - _, err = newHostMetadataProcessor(conf) + _, err = New(conf) if location.valid { require.NoError(t, err) diff --git a/libbeat/processors/add_kubernetes_metadata/kubernetes.go b/libbeat/processors/add_kubernetes_metadata/kubernetes.go index 414d98b0b44..a8f50bd77cb 100644 --- a/libbeat/processors/add_kubernetes_metadata/kubernetes.go +++ b/libbeat/processors/add_kubernetes_metadata/kubernetes.go @@ -41,7 +41,7 @@ type kubernetesAnnotator struct { } func init() { - processors.RegisterPlugin("add_kubernetes_metadata", newKubernetesAnnotator) + processors.RegisterPlugin("add_kubernetes_metadata", New) // Register default indexers Indexing.AddIndexer(PodNameIndexerName, NewPodNameIndexer) @@ -52,7 +52,8 @@ func init() { Indexing.AddMatcher(FieldFormatMatcherName, NewFieldFormatMatcher) } -func newKubernetesAnnotator(cfg *common.Config) (processors.Processor, error) { +// New constructs a new add_kubernetes_metadata processor. +func New(cfg *common.Config) (processors.Processor, error) { config := defaultKubernetesAnnotatorConfig() err := cfg.Unpack(&config) diff --git a/libbeat/processors/add_locale/add_locale.go b/libbeat/processors/add_locale/add_locale.go index f2f3844e773..2e0eb81c4a5 100644 --- a/libbeat/processors/add_locale/add_locale.go +++ b/libbeat/processors/add_locale/add_locale.go @@ -52,10 +52,11 @@ func (t TimezoneFormat) String() string { } func init() { - processors.RegisterPlugin("add_locale", newAddLocale) + processors.RegisterPlugin("add_locale", New) } -func newAddLocale(c *common.Config) (processors.Processor, error) { +// New constructs a new add_locale processor. +func New(c *common.Config) (processors.Processor, error) { config := struct { Format string `config:"format"` }{ diff --git a/libbeat/processors/add_locale/add_locale_test.go b/libbeat/processors/add_locale/add_locale_test.go index cb90e023bdc..e1b11610984 100644 --- a/libbeat/processors/add_locale/add_locale_test.go +++ b/libbeat/processors/add_locale/add_locale_test.go @@ -87,7 +87,7 @@ func TestTimezoneFormat(t *testing.T) { func getActualValue(t *testing.T, config *common.Config, input common.MapStr) common.MapStr { logp.TestingSetup() - p, err := newAddLocale(config) + p, err := New(config) if err != nil { logp.Err("Error initializing add_locale") t.Fatal(err) @@ -102,7 +102,7 @@ func BenchmarkConstruct(b *testing.B) { input := common.MapStr{} - p, err := newAddLocale(testConfig) + p, err := New(testConfig) if err != nil { b.Fatal(err) } diff --git a/libbeat/processors/add_process_metadata/add_process_metadata.go b/libbeat/processors/add_process_metadata/add_process_metadata.go index 7f394dff8e9..e600da7bb5d 100644 --- a/libbeat/processors/add_process_metadata/add_process_metadata.go +++ b/libbeat/processors/add_process_metadata/add_process_metadata.go @@ -71,10 +71,11 @@ type processMetadataProvider interface { } func init() { - processors.RegisterPlugin(processorName, newProcessMetadataProcessor) + processors.RegisterPlugin(processorName, New) } -func newProcessMetadataProcessor(cfg *common.Config) (processors.Processor, error) { +// New constructs a new add_process_metadata processor. +func New(cfg *common.Config) (processors.Processor, error) { return newProcessMetadataProcessorWithProvider(cfg, &procCache) } diff --git a/libbeat/processors/add_process_metadata/add_process_metadata_test.go b/libbeat/processors/add_process_metadata/add_process_metadata_test.go index c7dbfc094a2..8f76c5ec685 100644 --- a/libbeat/processors/add_process_metadata/add_process_metadata_test.go +++ b/libbeat/processors/add_process_metadata/add_process_metadata_test.go @@ -430,7 +430,7 @@ func TestSelf(t *testing.T) { if err != nil { t.Fatal(err) } - proc, err := newProcessMetadataProcessor(config) + proc, err := New(config) if err != nil { t.Fatal(err) } @@ -463,7 +463,7 @@ func TestBadProcess(t *testing.T) { if err != nil { t.Fatal(err) } - proc, err := newProcessMetadataProcessor(config) + proc, err := New(config) if err != nil { t.Fatal(err) } diff --git a/libbeat/processors/dissect/processor.go b/libbeat/processors/dissect/processor.go index eb6f29240b2..d47b595e06c 100644 --- a/libbeat/processors/dissect/processor.go +++ b/libbeat/processors/dissect/processor.go @@ -34,10 +34,11 @@ type processor struct { } func init() { - processors.RegisterPlugin("dissect", newProcessor) + processors.RegisterPlugin("dissect", NewProcessor) } -func newProcessor(c *common.Config) (processors.Processor, error) { +// NewProcessor constructs a new dissect processor. +func NewProcessor(c *common.Config) (processors.Processor, error) { config := defaultConfig err := c.Unpack(&config) if err != nil { diff --git a/libbeat/processors/dissect/processor_test.go b/libbeat/processors/dissect/processor_test.go index 7f7fbbb1b44..f822db1d6e3 100644 --- a/libbeat/processors/dissect/processor_test.go +++ b/libbeat/processors/dissect/processor_test.go @@ -84,7 +84,7 @@ func TestProcessor(t *testing.T) { return } - processor, err := newProcessor(c) + processor, err := NewProcessor(c) if !assert.NoError(t, err) { return } @@ -113,7 +113,7 @@ func TestFieldDoesntExist(t *testing.T) { return } - processor, err := newProcessor(c) + processor, err := NewProcessor(c) if !assert.NoError(t, err) { return } @@ -163,7 +163,7 @@ func TestFieldAlreadyExist(t *testing.T) { return } - processor, err := newProcessor(c) + processor, err := NewProcessor(c) if !assert.NoError(t, err) { return } @@ -187,7 +187,7 @@ func TestErrorFlagging(t *testing.T) { return } - processor, err := newProcessor(c) + processor, err := NewProcessor(c) if !assert.NoError(t, err) { return } @@ -216,7 +216,7 @@ func TestErrorFlagging(t *testing.T) { return } - processor, err := newProcessor(c) + processor, err := NewProcessor(c) if !assert.NoError(t, err) { return } diff --git a/libbeat/processors/dns/dns.go b/libbeat/processors/dns/dns.go index fb6daad56b0..d1c93a36f24 100644 --- a/libbeat/processors/dns/dns.go +++ b/libbeat/processors/dns/dns.go @@ -39,7 +39,7 @@ const logName = "processor.dns" var instanceID = atomic.MakeUint32(0) func init() { - processors.RegisterPlugin("dns", newDNSProcessor) + processors.RegisterPlugin("dns", New) } type processor struct { @@ -48,7 +48,8 @@ type processor struct { log *logp.Logger } -func newDNSProcessor(cfg *common.Config) (processors.Processor, error) { +// New constructs a new DNS processor. +func New(cfg *common.Config) (processors.Processor, error) { c := defaultConfig if err := cfg.Unpack(&c); err != nil { return nil, errors.Wrap(err, "fail to unpack the dns configuration") diff --git a/libbeat/processors/script/javascript/beatevent_v0.go b/libbeat/processors/script/javascript/beatevent_v0.go index c97ba95c8d5..fa942079336 100644 --- a/libbeat/processors/script/javascript/beatevent_v0.go +++ b/libbeat/processors/script/javascript/beatevent_v0.go @@ -90,7 +90,9 @@ func (e *beatEventV0) init() { func (e *beatEventV0) reset(b *beat.Event) error { e.inner = b e.cancelled = false - return e.obj.Set("fields", e.vm.ToValue(e.inner.Fields)) + e.obj.Set("_private", e) + e.obj.Set("fields", e.vm.ToValue(e.inner.Fields)) + return nil } // Wrapped returns the wrapped beat.Event. diff --git a/libbeat/processors/script/javascript/module/console/console.go b/libbeat/processors/script/javascript/module/console/console.go new file mode 100644 index 00000000000..92188f230c4 --- /dev/null +++ b/libbeat/processors/script/javascript/module/console/console.go @@ -0,0 +1,89 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package console + +import ( + "github.com/dop251/goja" + "github.com/dop251/goja_nodejs/require" + "github.com/pkg/errors" + + "github.com/elastic/beats/libbeat/logp" + + // Require the util module for handling the log format arguments. + _ "github.com/dop251/goja_nodejs/util" +) + +// Console is a module that enables logging via the logp package (Beat logger). +type Console struct { + runtime *goja.Runtime + util *goja.Object +} + +func (c *Console) makeLogFunc(level logp.Level) func(call goja.FunctionCall) goja.Value { + return func(call goja.FunctionCall) goja.Value { + if format, ok := goja.AssertFunction(c.util.Get("format")); ok { + ret, err := format(c.util, call.Arguments...) + if err != nil { + panic(err) + } + + log := logp.L().Named("processor.javascript") + switch level { + case logp.DebugLevel: + log.Debug(ret.String()) + case logp.InfoLevel: + log.Info(ret.String()) + case logp.WarnLevel: + log.Warn(ret.String()) + case logp.ErrorLevel: + log.Error(ret.String()) + default: + panic(errors.Errorf("unhandled logp.Level: %v", level)) + } + } else { + panic(c.runtime.NewTypeError("util.format is not a function")) + } + + return nil + } +} + +// Require registers the module with the runtime. +func Require(runtime *goja.Runtime, module *goja.Object) { + c := &Console{ + runtime: runtime, + } + + c.util = require.Require(runtime, "util").(*goja.Object) + + o := module.Get("exports").(*goja.Object) + o.Set("debug", c.makeLogFunc(logp.DebugLevel)) + o.Set("info", c.makeLogFunc(logp.InfoLevel)) + o.Set("log", c.makeLogFunc(logp.InfoLevel)) + o.Set("warn", c.makeLogFunc(logp.WarnLevel)) + o.Set("error", c.makeLogFunc(logp.ErrorLevel)) +} + +// Enable adds console to the given runtime. +func Enable(runtime *goja.Runtime) { + runtime.Set("console", require.Require(runtime, "console")) +} + +func init() { + require.RegisterNativeModule("console", Require) +} diff --git a/libbeat/processors/script/javascript/module/console/console_test.go b/libbeat/processors/script/javascript/module/console/console_test.go new file mode 100644 index 00000000000..48fe4165c07 --- /dev/null +++ b/libbeat/processors/script/javascript/module/console/console_test.go @@ -0,0 +1,76 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package console + +import ( + "testing" + + "github.com/stretchr/testify/assert" + "go.uber.org/zap" + + "github.com/elastic/beats/libbeat/beat" + "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/logp" + "github.com/elastic/beats/libbeat/processors/script/javascript" + + // Register require module. + _ "github.com/elastic/beats/libbeat/processors/script/javascript/module/require" +) + +func TestConsole(t *testing.T) { + const script = ` +var console = require('console'); + +function process(evt) { + console.debug("TestConsole Debug"); + console.log("TestConsole Log/Info"); + console.info("TestConsole Info %j", evt.fields); + console.warn("TestConsole Warning [%s]", evt.fields.message); + console.error("TestConsole Error processing event: %j", evt.fields); +} +` + + logp.DevelopmentSetup(logp.ToObserverOutput()) + p, err := javascript.NewFromConfig(javascript.Config{Source: script}, nil) + if err != nil { + t.Fatal(err) + } + + _, err = p.Run(&beat.Event{Fields: common.MapStr{"message": "hello world!"}}) + if err != nil { + t.Fatal(err) + } + + logs := logp.ObserverLogs().FilterMessageSnippet("TestConsole").TakeAll() + if assert.Len(t, logs, 5) { + assert.Contains(t, logs[0].Message, "Debug") + assert.Equal(t, logs[0].Level, zap.DebugLevel) + + assert.Contains(t, logs[1].Message, "Log/Info") + assert.Equal(t, logs[1].Level, zap.InfoLevel) + + assert.Contains(t, logs[2].Message, "Info") + assert.Equal(t, logs[2].Level, zap.InfoLevel) + + assert.Contains(t, logs[3].Message, "Warning") + assert.Equal(t, logs[3].Level, zap.WarnLevel) + + assert.Contains(t, logs[4].Message, "Error") + assert.Equal(t, logs[4].Level, zap.ErrorLevel) + } +} diff --git a/libbeat/processors/script/javascript/module/include.go b/libbeat/processors/script/javascript/module/include.go new file mode 100644 index 00000000000..96951e3008c --- /dev/null +++ b/libbeat/processors/script/javascript/module/include.go @@ -0,0 +1,26 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package module + +import ( + // Register javascript modules. + _ "github.com/elastic/beats/libbeat/processors/script/javascript/module/console" + _ "github.com/elastic/beats/libbeat/processors/script/javascript/module/path" + _ "github.com/elastic/beats/libbeat/processors/script/javascript/module/processor" + _ "github.com/elastic/beats/libbeat/processors/script/javascript/module/require" +) diff --git a/libbeat/processors/script/javascript/module/path/path.go b/libbeat/processors/script/javascript/module/path/path.go new file mode 100644 index 00000000000..13937701eb0 --- /dev/null +++ b/libbeat/processors/script/javascript/module/path/path.go @@ -0,0 +1,74 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package path + +import ( + "path" + "path/filepath" + "runtime" + + "github.com/dop251/goja" + "github.com/dop251/goja_nodejs/require" +) + +// Require registers the path module that provides utilities for working with +// file and directory paths. It can be accessed using: +// +// // javascript +// var path = require('path'); +// +func Require(vm *goja.Runtime, module *goja.Object) { + setPosix := func(o *goja.Object) *goja.Object { + o.Set("basename", path.Base) + o.Set("dirname", path.Dir) + o.Set("extname", path.Ext) + o.Set("isAbsolute", path.IsAbs) + o.Set("normalize", path.Clean) + o.Set("sep", '/') + return o + } + + setWin32 := func(o *goja.Object) *goja.Object { + o.Set("basename", win32.Base) + o.Set("dirname", win32.Dir) + o.Set("extname", filepath.Ext) + o.Set("isAbsolute", win32.IsAbs) + o.Set("normalize", win32.Clean) + o.Set("sep", win32Separator) + return o + } + + o := module.Get("exports").(*goja.Object) + o.Set("posix", setPosix(vm.NewObject())) + o.Set("win32", setWin32(vm.NewObject())) + + if runtime.GOOS == "windows" { + setWin32(o) + } else { + setPosix(o) + } +} + +// Enable adds path to the given runtime. +func Enable(runtime *goja.Runtime) { + runtime.Set("path", require.Require(runtime, "path")) +} + +func init() { + require.RegisterNativeModule("path", Require) +} diff --git a/libbeat/processors/script/javascript/module/path/path_test.go b/libbeat/processors/script/javascript/module/path/path_test.go new file mode 100644 index 00000000000..f1288d92aa3 --- /dev/null +++ b/libbeat/processors/script/javascript/module/path/path_test.go @@ -0,0 +1,105 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package path_test + +import ( + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/elastic/beats/libbeat/beat" + "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/processors/script/javascript" + + _ "github.com/elastic/beats/libbeat/processors/script/javascript/module/path" + _ "github.com/elastic/beats/libbeat/processors/script/javascript/module/require" +) + +func TestWin32(t *testing.T) { + const script = ` +var path = require('path'); + +function process(evt) { + var filename = "C:\\Windows\\system32\\..\\system32\\system32.dll"; + evt.Put("result", { + raw: filename, + basename: path.win32.basename(filename), + dirname: path.win32.dirname(filename), + extname: path.win32.extname(filename), + isAbsolute: path.win32.isAbsolute(filename), + normalize: path.win32.normalize(filename), + sep: path.win32.sep, + }); +} +` + + p, err := javascript.NewFromConfig(javascript.Config{Source: script}, nil) + if err != nil { + t.Fatal(err) + } + + evt, err := p.Run(&beat.Event{Fields: common.MapStr{}}) + if err != nil { + t.Fatal(err) + } + + fields := evt.Fields.Flatten() + assert.Equal(t, "system32.dll", fields["result.basename"]) + assert.Equal(t, `C:\Windows\system32`, fields["result.dirname"]) + assert.Equal(t, ".dll", fields["result.extname"]) + assert.Equal(t, true, fields["result.isAbsolute"]) + assert.Equal(t, `C:\Windows\system32\system32.dll`, fields["result.normalize"]) + assert.EqualValues(t, '\\', fields["result.sep"]) +} + +func TestPosix(t *testing.T) { + const script = ` +var path = require('path'); + +function process(evt) { + var filename = "/usr/lib/../lib/libcurl.so"; + evt.Put("result", { + raw: filename, + basename: path.posix.basename(filename), + dirname: path.posix.dirname(filename), + extname: path.posix.extname(filename), + isAbsolute: path.posix.isAbsolute(filename), + normalize: path.posix.normalize(filename), + sep: path.posix.sep, + }); +} +` + + p, err := javascript.NewFromConfig(javascript.Config{Source: script}, nil) + if err != nil { + t.Fatal(err) + } + + evt, err := p.Run(&beat.Event{Fields: common.MapStr{}}) + if err != nil { + t.Fatal(err) + } + + fields := evt.Fields.Flatten() + assert.Equal(t, "libcurl.so", fields["result.basename"]) + assert.Equal(t, "/usr/lib", fields["result.dirname"]) + assert.Equal(t, ".so", fields["result.extname"]) + assert.Equal(t, true, fields["result.isAbsolute"]) + assert.Equal(t, "/usr/lib/libcurl.so", fields["result.normalize"]) + assert.EqualValues(t, '/', fields["result.sep"]) +} diff --git a/libbeat/processors/script/javascript/module/path/windows.go b/libbeat/processors/script/javascript/module/path/windows.go new file mode 100644 index 00000000000..76ed4906848 --- /dev/null +++ b/libbeat/processors/script/javascript/module/path/windows.go @@ -0,0 +1,245 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package path + +import "strings" + +const ( + win32Separator = '\\' +) + +var win32 = windowsFilepath{} + +type windowsFilepath struct{} + +// IsAbs reports whether the path is absolute. +func (win windowsFilepath) IsAbs(path string) (b bool) { + l := win.volumeNameLen(path) + if l == 0 { + return false + } + path = path[l:] + if path == "" { + return false + } + return win.isPathSeparator(path[0]) +} + +func (win windowsFilepath) Base(path string) string { + if path == "" { + return "." + } + // Strip trailing slashes. + for len(path) > 0 && win.isPathSeparator(path[len(path)-1]) { + path = path[0 : len(path)-1] + } + // Throw away volume name + path = path[len(win.volumeName(path)):] + // Find the last element + i := len(path) - 1 + for i >= 0 && !win.isPathSeparator(path[i]) { + i-- + } + if i >= 0 { + path = path[i+1:] + } + // If empty now, it had only slashes. + if path == "" { + return string('\\') + } + return path +} + +func (win windowsFilepath) Dir(path string) string { + vol := win.volumeName(path) + i := len(path) - 1 + for i >= len(vol) && !win.isPathSeparator(path[i]) { + i-- + } + dir := win.Clean(path[len(vol) : i+1]) + if dir == "." && len(vol) > 2 { + // must be UNC + return vol + } + return vol + dir +} + +// isWindowsPathSeparator reports whether c is a directory separator character. +func (windowsFilepath) isPathSeparator(c uint8) bool { + // NOTE: Windows accept / as path separator. + return c == '\\' || c == '/' +} + +func (win windowsFilepath) volumeName(path string) string { + return path[:win.volumeNameLen(path)] +} + +// volumeNameLen returns length of the leading volume name on Windows. +// It returns 0 elsewhere. +func (win windowsFilepath) volumeNameLen(path string) int { + if len(path) < 2 { + return 0 + } + // with drive letter + c := path[0] + if path[1] == ':' && ('a' <= c && c <= 'z' || 'A' <= c && c <= 'Z') { + return 2 + } + // is it UNC? https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx + if l := len(path); l >= 5 && win.isPathSeparator(path[0]) && win.isPathSeparator(path[1]) && + !win.isPathSeparator(path[2]) && path[2] != '.' { + // first, leading `\\` and next shouldn't be `\`. its server name. + for n := 3; n < l-1; n++ { + // second, next '\' shouldn't be repeated. + if win.isPathSeparator(path[n]) { + n++ + // third, following something characters. its share name. + if !win.isPathSeparator(path[n]) { + if path[n] == '.' { + break + } + for ; n < l; n++ { + if win.isPathSeparator(path[n]) { + break + } + } + return n + } + break + } + } + } + return 0 +} + +func (win windowsFilepath) Clean(path string) string { + originalPath := path + volLen := win.volumeNameLen(path) + path = path[volLen:] + if path == "" { + if volLen > 1 && originalPath[1] != ':' { + // should be UNC + return win.FromSlash(originalPath) + } + return originalPath + "." + } + rooted := win.isPathSeparator(path[0]) + + // Invariants: + // reading from path; r is index of next byte to process. + // writing to buf; w is index of next byte to write. + // dotdot is index in buf where .. must stop, either because + // it is the leading slash or it is a leading ../../.. prefix. + n := len(path) + out := lazybuf{path: path, volAndPath: originalPath, volLen: volLen} + r, dotdot := 0, 0 + if rooted { + out.append(win32Separator) + r, dotdot = 1, 1 + } + + for r < n { + switch { + case win.isPathSeparator(path[r]): + // empty path element + r++ + case path[r] == '.' && (r+1 == n || win.isPathSeparator(path[r+1])): + // . element + r++ + case path[r] == '.' && path[r+1] == '.' && (r+2 == n || win.isPathSeparator(path[r+2])): + // .. element: remove to last separator + r += 2 + switch { + case out.w > dotdot: + // can backtrack + out.w-- + for out.w > dotdot && !win.isPathSeparator(out.index(out.w)) { + out.w-- + } + case !rooted: + // cannot backtrack, but not rooted, so append .. element. + if out.w > 0 { + out.append(win32Separator) + } + out.append('.') + out.append('.') + dotdot = out.w + } + default: + // real path element. + // add slash if needed + if rooted && out.w != 1 || !rooted && out.w != 0 { + out.append(win32Separator) + } + // copy element + for ; r < n && !win.isPathSeparator(path[r]); r++ { + out.append(path[r]) + } + } + } + + // Turn empty string into "." + if out.w == 0 { + out.append('.') + } + + return win.FromSlash(out.string()) +} + +func (windowsFilepath) FromSlash(path string) string { + return strings.Replace(path, "/", string(win32Separator), -1) +} + +// A lazybuf is a lazily constructed path buffer. +// It supports append, reading previously appended bytes, +// and retrieving the final string. It does not allocate a buffer +// to hold the output until that output diverges from s. +type lazybuf struct { + path string + buf []byte + w int + volAndPath string + volLen int +} + +func (b *lazybuf) index(i int) byte { + if b.buf != nil { + return b.buf[i] + } + return b.path[i] +} + +func (b *lazybuf) append(c byte) { + if b.buf == nil { + if b.w < len(b.path) && b.path[b.w] == c { + b.w++ + return + } + b.buf = make([]byte, len(b.path)) + copy(b.buf, b.path[:b.w]) + } + b.buf[b.w] = c + b.w++ +} + +func (b *lazybuf) string() string { + if b.buf == nil { + return b.volAndPath[:b.volLen+b.w] + } + return b.volAndPath[:b.volLen] + string(b.buf[:b.w]) +} diff --git a/libbeat/processors/script/javascript/module/processor/processor.go b/libbeat/processors/script/javascript/module/processor/processor.go new file mode 100644 index 00000000000..0c48764eec6 --- /dev/null +++ b/libbeat/processors/script/javascript/module/processor/processor.go @@ -0,0 +1,134 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package processor + +import ( + "github.com/dop251/goja" + "github.com/dop251/goja_nodejs/require" + "github.com/pkg/errors" + + "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/processors" + "github.com/elastic/beats/libbeat/processors/actions" + "github.com/elastic/beats/libbeat/processors/add_cloud_metadata" + "github.com/elastic/beats/libbeat/processors/add_docker_metadata" + "github.com/elastic/beats/libbeat/processors/add_host_metadata" + "github.com/elastic/beats/libbeat/processors/add_kubernetes_metadata" + "github.com/elastic/beats/libbeat/processors/add_locale" + "github.com/elastic/beats/libbeat/processors/add_process_metadata" + "github.com/elastic/beats/libbeat/processors/communityid" + "github.com/elastic/beats/libbeat/processors/dissect" + "github.com/elastic/beats/libbeat/processors/dns" + "github.com/elastic/beats/libbeat/processors/script/javascript" +) + +// newConstructor returns a JS constructor function. The constructor wraps a +// beat processor constructor. The javascript constructor must be passed a value +// that can be treated as the processor's config. +func newConstructor( + s *goja.Runtime, + constructor processors.Constructor, +) func(call goja.ConstructorCall) *goja.Object { + return func(call goja.ConstructorCall) *goja.Object { + a0 := call.Argument(0) + if a0 == nil { + panic(s.ToValue("constructor requires a configuration arg")) + } + + commonConfig, err := common.NewConfigFrom(a0.Export()) + if err != nil { + panic(s.NewGoError(err)) + } + + p, err := constructor(commonConfig) + if err != nil { + panic(s.NewGoError(err)) + } + + bp := &beatProcessor{s, p} + call.This.Set("Run", bp.Run) + return nil + } +} + +// beatProcessor wraps a beat processor for javascript. +type beatProcessor struct { + runtime *goja.Runtime + p processors.Processor +} + +func (bp *beatProcessor) Run(call goja.FunctionCall) goja.Value { + if len(call.Arguments) != 1 { + panic(bp.runtime.NewGoError(errors.New("Run requires one argument"))) + } + + e, ok := call.Argument(0).ToObject(bp.runtime).Get("_private").Export().(javascript.Event) + if !ok { + panic(bp.runtime.NewGoError(errors.New("arg 0 must be an Event"))) + } + + if e.IsCancelled() { + return goja.Null() + } + + beatEvent, err := bp.p.Run(e.Wrapped()) + if err != nil { + panic(bp.runtime.NewGoError(err)) + } + + if beatEvent == nil { + e.Cancel() + return goja.Null() + } + + return e.JSObject() +} + +// Require registers the processor module that exposes constructors for beat +// processors from javascript. +// +// // javascript +// var processor = require('processor'); +// var chopLog = new processor.Dissect({tokenizer: "%{key}: %{value}"}); +// +func Require(runtime *goja.Runtime, module *goja.Object) { + o := module.Get("exports").(*goja.Object) + + // Create constructors for most of the Beat processors. + // Note that script to avoid nesting. And some of the actions like rename + // and add_tags are omitted because those can be done natively in JS. + o.Set("AddCloudMetadata", newConstructor(runtime, add_cloud_metadata.New)) + o.Set("AddDockerMetadata", newConstructor(runtime, add_docker_metadata.New)) + o.Set("AddHostMetadata", newConstructor(runtime, add_host_metadata.New)) + o.Set("AddKubernetesMetadata", newConstructor(runtime, add_kubernetes_metadata.New)) + o.Set("AddLocale", newConstructor(runtime, add_locale.New)) + o.Set("AddProcessMetadata", newConstructor(runtime, add_process_metadata.New)) + o.Set("CommunityID", newConstructor(runtime, communityid.New)) + o.Set("DecodeJSONFields", newConstructor(runtime, actions.NewDecodeJSONFields)) + o.Set("Dissect", newConstructor(runtime, dissect.NewProcessor)) + o.Set("DNS", newConstructor(runtime, dns.New)) +} + +// Enable adds path to the given runtime. +func Enable(runtime *goja.Runtime) { + runtime.Set("processor", require.Require(runtime, "processor")) +} + +func init() { + require.RegisterNativeModule("processor", Require) +} diff --git a/libbeat/processors/script/javascript/module/processor/processor_test.go b/libbeat/processors/script/javascript/module/processor/processor_test.go new file mode 100644 index 00000000000..679398300e5 --- /dev/null +++ b/libbeat/processors/script/javascript/module/processor/processor_test.go @@ -0,0 +1,257 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package processor + +import ( + "os" + "runtime" + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/elastic/beats/libbeat/beat" + "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/logp" + "github.com/elastic/beats/libbeat/processors/script/javascript" + + _ "github.com/elastic/beats/libbeat/processors/script/javascript/module/require" +) + +func testEvent() *beat.Event { + return &beat.Event{ + Fields: common.MapStr{ + "source": common.MapStr{ + "ip": "192.0.2.1", + }, + "destination": common.MapStr{ + "ip": "192.0.2.1", + }, + "network": common.MapStr{ + "transport": "igmp", + }, + "message": "key=hello", + }, + } +} + +func TestNewProcessorAddHostMetadata(t *testing.T) { + const script = ` +var processor = require('processor'); + +var addHostMetadata = new processor.AddHostMetadata({"netinfo.enabled": true}); + +function process(evt) { + addHostMetadata.Run(evt); +} +` + + logp.TestingSetup() + p, err := javascript.NewFromConfig(javascript.Config{Source: script}, nil) + if err != nil { + t.Fatal(err) + } + + evt, err := p.Run(testEvent()) + if err != nil { + t.Fatal(err) + } + + _, err = evt.GetValue("host.hostname") + assert.NoError(t, err) +} + +func TestNewProcessorAddLocale(t *testing.T) { + const script = ` +var processor = require('processor'); + +var addLocale = new processor.AddLocale(); + +function process(evt) { + addLocale.Run(evt); +} +` + + logp.TestingSetup() + p, err := javascript.NewFromConfig(javascript.Config{Source: script}, nil) + if err != nil { + t.Fatal(err) + } + + evt, err := p.Run(testEvent()) + if err != nil { + t.Fatal(err) + } + + _, err = evt.GetValue("event.timezone") + assert.NoError(t, err) +} + +func TestNewProcessorAddProcessMetadata(t *testing.T) { + const script = ` +var processor = require('processor'); + +var addProcessMetadata = new processor.AddProcessMetadata({ + match_pids: "process.pid", + overwrite_keys: true, +}); + +function process(evt) { + addProcessMetadata.Run(evt); +} +` + + logp.TestingSetup() + p, err := javascript.NewFromConfig(javascript.Config{Source: script}, nil) + if err != nil { + t.Fatal(err) + } + + evt := &beat.Event{Fields: common.MapStr{"process": common.MapStr{"pid": os.Getppid()}}} + evt, err = p.Run(evt) + if err != nil { + t.Fatal(err) + } + + _, err = evt.GetValue("process.name") + assert.NoError(t, err) + t.Logf("%+v", evt.Fields) +} + +func TestNewProcessorCommunityID(t *testing.T) { + const script = ` +var processor = require('processor'); + +var communityID = new processor.CommunityID(); + +function process(evt) { + communityID.Run(evt); +} +` + + logp.TestingSetup() + p, err := javascript.NewFromConfig(javascript.Config{Source: script}, nil) + if err != nil { + t.Fatal(err) + } + + evt, err := p.Run(testEvent()) + if err != nil { + t.Fatal(err) + } + + id, _ := evt.GetValue("network.community_id") + assert.Equal(t, "1:15+Ly6HsDg0sJdTmNktf6rko+os=", id) +} + +func TestNewProcessorDecodeJSONFields(t *testing.T) { + const script = ` +var processor = require('processor'); + +var decodeJSON = new processor.DecodeJSONFields({ + fields: ["message"], + target: "", +}); + +function process(evt) { + decodeJSON.Run(evt); +} +` + + logp.TestingSetup() + p, err := javascript.NewFromConfig(javascript.Config{Source: script}, nil) + if err != nil { + t.Fatal(err) + } + + evt := testEvent() + evt.PutValue("message", `{"hello": "world"}`) + + _, err = p.Run(evt) + if err != nil { + t.Fatal(err) + } + + v, _ := evt.GetValue("hello") + assert.Equal(t, "world", v) +} + +func TestNewProcessorDissect(t *testing.T) { + const script = ` +var processor = require('processor'); + +var chopLog = new processor.Dissect({ + tokenizer: "key=%{key}", + field: "message", +}); + +function process(evt) { + chopLog.Run(evt); +} +` + + logp.TestingSetup() + p, err := javascript.NewFromConfig(javascript.Config{Source: script}, nil) + if err != nil { + t.Fatal(err) + } + + evt, err := p.Run(testEvent()) + if err != nil { + t.Fatal(err) + } + + key, _ := evt.GetValue("dissect.key") + assert.Equal(t, "hello", key) +} + +func TestNewProcessorDNS(t *testing.T) { + if runtime.GOOS == "windows" { + t.Skip("Windows requires explicit DNS server configuration") + } + + const script = ` +var processor = require('processor'); + +var dns = new processor.DNS({ + type: "reverse", + fields: { + "source.ip": "source.domain", + "destination.ip": "destination.domain" + }, + tag_on_failure: ["_dns_reverse_lookup_failed"], +}); + +function process(evt) { + dns.Run(evt); + if (evt.Get().tags[0] !== "_dns_reverse_lookup_failed") { + throw "missing tag" + } +} +` + + logp.TestingSetup() + p, err := javascript.NewFromConfig(javascript.Config{Source: script}, nil) + if err != nil { + t.Fatal(err) + } + + _, err = p.Run(testEvent()) + if err != nil { + t.Fatal(err) + } +} diff --git a/libbeat/processors/script/javascript/module/require/require.go b/libbeat/processors/script/javascript/module/require/require.go new file mode 100644 index 00000000000..e9da5e9076e --- /dev/null +++ b/libbeat/processors/script/javascript/module/require/require.go @@ -0,0 +1,37 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package require + +import ( + "github.com/dop251/goja_nodejs/require" + "github.com/pkg/errors" + + "github.com/elastic/beats/libbeat/processors/script/javascript" +) + +func init() { + javascript.AddSessionHook("require", func(s javascript.Session) { + reg := require.NewRegistryWithLoader(loadSource) + reg.Enable(s.Runtime()) + }) +} + +// loadSource disallows loading custom modules from file. +func loadSource(path string) ([]byte, error) { + return nil, errors.Errorf("cannot load %v, only built-in modules are supported", path) +} diff --git a/vendor/github.com/dop251/goja_nodejs/LICENSE b/vendor/github.com/dop251/goja_nodejs/LICENSE new file mode 100644 index 00000000000..8c27a941092 --- /dev/null +++ b/vendor/github.com/dop251/goja_nodejs/LICENSE @@ -0,0 +1,13 @@ +Copyright (c) 2016 Dmitry Panov + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/vendor/github.com/dop251/goja_nodejs/require/module.go b/vendor/github.com/dop251/goja_nodejs/require/module.go new file mode 100644 index 00000000000..156712a874f --- /dev/null +++ b/vendor/github.com/dop251/goja_nodejs/require/module.go @@ -0,0 +1,161 @@ +package require + +import ( + js "github.com/dop251/goja" + + "errors" + "fmt" + "io/ioutil" + "path/filepath" + "sync" +) + +type ModuleLoader func(*js.Runtime, *js.Object) +type SourceLoader func(path string) ([]byte, error) + +var ( + InvalidModuleError = errors.New("Invalid module") + IllegalModuleNameError = errors.New("Illegal module name") +) + +var native map[string]ModuleLoader + +// Registry contains a cache of compiled modules which can be used by multiple Runtimes +type Registry struct { + sync.Mutex + compiled map[string]*js.Program + + srcLoader SourceLoader +} + +type RequireModule struct { + r *Registry + runtime *js.Runtime + modules map[string]*js.Object +} + +func NewRegistryWithLoader(srcLoader SourceLoader) *Registry { + return &Registry{ + srcLoader: srcLoader, + } +} + +// Enable adds the require() function to the specified runtime. +func (r *Registry) Enable(runtime *js.Runtime) *RequireModule { + rrt := &RequireModule{ + r: r, + runtime: runtime, + modules: make(map[string]*js.Object), + } + + runtime.Set("require", rrt.require) + return rrt +} + +func (r *Registry) getCompiledSource(p string) (prg *js.Program, err error) { + r.Lock() + defer r.Unlock() + + prg = r.compiled[p] + if prg == nil { + srcLoader := r.srcLoader + if srcLoader == nil { + srcLoader = ioutil.ReadFile + } + if s, err1 := srcLoader(p); err1 == nil { + source := "(function(module, exports) {" + string(s) + "\n})" + prg, err = js.Compile(p, source, false) + if err == nil { + if r.compiled == nil { + r.compiled = make(map[string]*js.Program) + } + r.compiled[p] = prg + } + } else { + err = err1 + } + } + return +} + +func (r *RequireModule) loadModule(path string, jsModule *js.Object) error { + + if ldr, exists := native[path]; exists { + ldr(r.runtime, jsModule) + return nil + } + + prg, err := r.r.getCompiledSource(path) + + if err != nil { + return err + } + + f, err := r.runtime.RunProgram(prg) + if err != nil { + return err + } + + if call, ok := js.AssertFunction(f); ok { + jsExports := jsModule.Get("exports") + + // Run the module source, with "jsModule" as the "module" variable, "jsExports" as "this"(Nodejs capable). + _, err = call(jsExports, jsModule, jsExports) + if err != nil { + return err + } + } else { + return InvalidModuleError + } + + return nil +} + +func (r *RequireModule) require(call js.FunctionCall) js.Value { + ret, err := r.Require(call.Argument(0).String()) + if err != nil { + panic(r.runtime.NewGoError(err)) + } + return ret +} + +// Require can be used to import modules from Go source (similar to JS require() function). +func (r *RequireModule) Require(p string) (ret js.Value, err error) { + p = filepath.Clean(p) + if p == "" { + err = IllegalModuleNameError + return + } + module := r.modules[p] + if module == nil { + module = r.runtime.NewObject() + module.Set("exports", r.runtime.NewObject()) + r.modules[p] = module + err = r.loadModule(p, module) + if err != nil { + delete(r.modules, p) + err = fmt.Errorf("Could not load module '%s': %v", p, err) + return + } + } + ret = module.Get("exports") + return +} + +func Require(runtime *js.Runtime, name string) js.Value { + if r, ok := js.AssertFunction(runtime.Get("require")); ok { + mod, err := r(js.Undefined(), runtime.ToValue(name)) + if err != nil { + panic(err) + } + return mod + } + panic(runtime.NewTypeError("Please enable require for this runtime using new(require.Require).Enable(runtime)")) +} + +func RegisterNativeModule(name string, loader ModuleLoader) { + if native == nil { + native = make(map[string]ModuleLoader) + } + native[name] = loader +} diff --git a/vendor/github.com/dop251/goja_nodejs/util/module.go b/vendor/github.com/dop251/goja_nodejs/util/module.go new file mode 100644 index 00000000000..5e59a087622 --- /dev/null +++ b/vendor/github.com/dop251/goja_nodejs/util/module.go @@ -0,0 +1,102 @@ +package util + +import ( + "bytes" + "github.com/dop251/goja" + "github.com/dop251/goja_nodejs/require" +) + +type Util struct { + runtime *goja.Runtime +} + +func (u *Util) format(f rune, val goja.Value, w *bytes.Buffer) bool { + switch f { + case 's': + w.WriteString(val.String()) + case 'd': + w.WriteString(val.ToNumber().String()) + case 'j': + if json, ok := u.runtime.Get("JSON").(*goja.Object); ok { + if stringify, ok := goja.AssertFunction(json.Get("stringify")); ok { + res, err := stringify(json, val) + if err != nil { + panic(err) + } + w.WriteString(res.String()) + } + } + case '%': + w.WriteByte('%') + return false + default: + w.WriteByte('%') + w.WriteRune(f) + return false + } + return true +} + +func (u *Util) Format(b *bytes.Buffer, f string, args ...goja.Value) { + pct := false + argNum := 0 + for _, chr := range f { + if pct { + if argNum < len(args) { + if u.format(chr, args[argNum], b) { + argNum++ + } + } else { + b.WriteByte('%') + b.WriteRune(chr) + } + pct = false + } else { + if chr == '%' { + pct = true + } else { + b.WriteRune(chr) + } + } + } + + for _, arg := range args[argNum:] { + b.WriteByte(' ') + b.WriteString(arg.String()) + } +} + +func (u *Util) js_format(call goja.FunctionCall) goja.Value { + var b bytes.Buffer + var fmt string + + if arg := call.Argument(0); !goja.IsUndefined(arg) { + fmt = arg.String() + } + + var args []goja.Value + if len(call.Arguments) > 0 { + args = call.Arguments[1:] + } + u.Format(&b, fmt, args...) + + return u.runtime.ToValue(b.String()) +} + +func Require(runtime *goja.Runtime, module *goja.Object) { + u := &Util{ + runtime: runtime, + } + obj := module.Get("exports").(*goja.Object) + obj.Set("format", u.js_format) +} + +func New(runtime *goja.Runtime) *Util { + return &Util{ + runtime: runtime, + } +} + +func init() { + require.RegisterNativeModule("util", Require) +} diff --git a/vendor/vendor.json b/vendor/vendor.json index 1b90ff96ecb..a259d36cee5 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -818,6 +818,18 @@ "revision": "dd2ac4456e2073f116d6b88741d513addabe0326", "revisionTime": "2019-01-28T17:26:24Z" }, + { + "checksumSHA1": "uamJV//FmbK8VqZ8BmZ0Wzi0zM4=", + "path": "github.com/dop251/goja_nodejs/require", + "revision": "adff31b136e6b7e044712aab7236a775e1bd085e", + "revisionTime": "2017-10-11T08:15:05Z" + }, + { + "checksumSHA1": "TB6Dp0Oqeu7i+qPLv5DukMEqlvE=", + "path": "github.com/dop251/goja_nodejs/util", + "revision": "adff31b136e6b7e044712aab7236a775e1bd085e", + "revisionTime": "2017-10-11T08:15:05Z" + }, { "checksumSHA1": "rhLUtXvcmouYuBwOq9X/nYKzvNg=", "path": "github.com/dustin/go-humanize", From 80c930cc63d97f2a002dc034e7ca812bc5ef91cd Mon Sep 17 00:00:00 2001 From: Chris Mark Date: Fri, 22 Mar 2019 09:08:30 +0200 Subject: [PATCH 251/332] Add testdata for stats metricset of coredns (#11332) Signed-off-by: Chris Signed-off-by: Chris Mark --- .../docs/modules/coredns/stats.asciidoc | 6 + .../module/coredns/stats/_meta/data.json | 74 ++++++ .../coredns/stats/_meta/data_panic_event.json | 28 -- .../stats/_meta/data_request_count_event.json | 34 --- .../_meta/data_request_duration_ns_event.json | 54 ---- .../stats/_meta/data_request_type_event.json | 35 --- .../_meta/data_response_rcode_event.json | 35 --- .../stats/_meta/data_size_bytes_event.json | 78 ------ .../coredns/stats/_meta/test/metrics.expected | 217 ---------------- .../coredns/stats/_meta/testdata/config.yml | 3 + .../stats/_meta/testdata/do_count_total.plain | 3 + .../do_count_total.plain-expected.json | 31 +++ .../coredns/stats/_meta/testdata/docs.plain | 38 +++ .../_meta/testdata/docs.plain-expected.json | 75 ++++++ .../_meta/testdata/panic_count_total.plain | 3 + .../panic_count_total.plain-expected.json | 25 ++ .../prometheus_full_output.plain} | 0 ...prometheus_full_output.plain-expected.json | 241 ++++++++++++++++++ .../_meta/testdata/rcode_count_total.plain | 3 + .../rcode_count_total.plain-expected.json | 32 +++ .../_meta/testdata/request_count_total.plain | 3 + .../request_count_total.plain-expected.json | 31 +++ .../_meta/testdata/request_duration.plain | 21 ++ .../request_duration.plain-expected.json | 51 ++++ .../stats/_meta/testdata/request_size.plain | 19 ++ .../testdata/request_size.plain-expected.json | 50 ++++ .../testdata/request_type_count_total.plain | 3 + ...quest_type_count_total.plain-expected.json | 32 +++ .../stats/_meta/testdata/response_size.plain | 19 ++ .../response_size.plain-expected.json | 50 ++++ .../coredns/stats/stats_integration_test.go | 89 ------- metricbeat/module/coredns/stats/stats_test.go | 37 --- 32 files changed, 813 insertions(+), 607 deletions(-) create mode 100644 metricbeat/module/coredns/stats/_meta/data.json delete mode 100644 metricbeat/module/coredns/stats/_meta/data_panic_event.json delete mode 100644 metricbeat/module/coredns/stats/_meta/data_request_count_event.json delete mode 100644 metricbeat/module/coredns/stats/_meta/data_request_duration_ns_event.json delete mode 100644 metricbeat/module/coredns/stats/_meta/data_request_type_event.json delete mode 100644 metricbeat/module/coredns/stats/_meta/data_response_rcode_event.json delete mode 100644 metricbeat/module/coredns/stats/_meta/data_size_bytes_event.json delete mode 100644 metricbeat/module/coredns/stats/_meta/test/metrics.expected create mode 100644 metricbeat/module/coredns/stats/_meta/testdata/config.yml create mode 100644 metricbeat/module/coredns/stats/_meta/testdata/do_count_total.plain create mode 100644 metricbeat/module/coredns/stats/_meta/testdata/do_count_total.plain-expected.json create mode 100644 metricbeat/module/coredns/stats/_meta/testdata/docs.plain create mode 100644 metricbeat/module/coredns/stats/_meta/testdata/docs.plain-expected.json create mode 100644 metricbeat/module/coredns/stats/_meta/testdata/panic_count_total.plain create mode 100644 metricbeat/module/coredns/stats/_meta/testdata/panic_count_total.plain-expected.json rename metricbeat/module/coredns/stats/_meta/{test/metrics => testdata/prometheus_full_output.plain} (100%) create mode 100644 metricbeat/module/coredns/stats/_meta/testdata/prometheus_full_output.plain-expected.json create mode 100644 metricbeat/module/coredns/stats/_meta/testdata/rcode_count_total.plain create mode 100644 metricbeat/module/coredns/stats/_meta/testdata/rcode_count_total.plain-expected.json create mode 100644 metricbeat/module/coredns/stats/_meta/testdata/request_count_total.plain create mode 100644 metricbeat/module/coredns/stats/_meta/testdata/request_count_total.plain-expected.json create mode 100644 metricbeat/module/coredns/stats/_meta/testdata/request_duration.plain create mode 100644 metricbeat/module/coredns/stats/_meta/testdata/request_duration.plain-expected.json create mode 100644 metricbeat/module/coredns/stats/_meta/testdata/request_size.plain create mode 100644 metricbeat/module/coredns/stats/_meta/testdata/request_size.plain-expected.json create mode 100644 metricbeat/module/coredns/stats/_meta/testdata/request_type_count_total.plain create mode 100644 metricbeat/module/coredns/stats/_meta/testdata/request_type_count_total.plain-expected.json create mode 100644 metricbeat/module/coredns/stats/_meta/testdata/response_size.plain create mode 100644 metricbeat/module/coredns/stats/_meta/testdata/response_size.plain-expected.json delete mode 100644 metricbeat/module/coredns/stats/stats_integration_test.go delete mode 100644 metricbeat/module/coredns/stats/stats_test.go diff --git a/metricbeat/docs/modules/coredns/stats.asciidoc b/metricbeat/docs/modules/coredns/stats.asciidoc index 780b80f7ec7..95ec886d6d7 100644 --- a/metricbeat/docs/modules/coredns/stats.asciidoc +++ b/metricbeat/docs/modules/coredns/stats.asciidoc @@ -15,3 +15,9 @@ include::../../../module/coredns/stats/_meta/docs.asciidoc[] For a description of each field in the metricset, see the <> section. +Here is an example document generated by this metricset: + +[source,json] +---- +include::../../../module/coredns/stats/_meta/data.json[] +---- diff --git a/metricbeat/module/coredns/stats/_meta/data.json b/metricbeat/module/coredns/stats/_meta/data.json new file mode 100644 index 00000000000..f7181c2915e --- /dev/null +++ b/metricbeat/module/coredns/stats/_meta/data.json @@ -0,0 +1,74 @@ +{ + "@timestamp": "2019-03-01T08:05:34.853Z", + "coredns": { + "stats": { + "dns": { + "request": { + "size": { + "bytes": { + "bucket": { + "+Inf": 440, + "0": 0, + "100": 440, + "1023": 440, + "16000": 440, + "200": 440, + "2047": 440, + "300": 440, + "32000": 440, + "400": 440, + "4095": 440, + "48000": 440, + "511": 440, + "64000": 440, + "8291": 440 + }, + "count": 440, + "sum": 22880 + } + } + }, + "response": { + "size": { + "bytes": { + "bucket": { + "+Inf": 440, + "0": 0, + "100": 440, + "1023": 440, + "16000": 440, + "200": 440, + "2047": 440, + "300": 440, + "32000": 440, + "400": 440, + "4095": 440, + "48000": 440, + "511": 440, + "64000": 440, + "8291": 440 + }, + "count": 440, + "sum": 29480 + } + } + } + }, + "proto": "udp", + "server": "dns://:53", + "zone": "." + } + }, + "event": { + "dataset": "coredns.stats", + "duration": 115000, + "module": "coredns" + }, + "metricset": { + "name": "stats" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "coredns" + } +} \ No newline at end of file diff --git a/metricbeat/module/coredns/stats/_meta/data_panic_event.json b/metricbeat/module/coredns/stats/_meta/data_panic_event.json deleted file mode 100644 index 742b910c93a..00000000000 --- a/metricbeat/module/coredns/stats/_meta/data_panic_event.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "@timestamp": "2017-10-12T08:05:34.853Z", - "agent": { - "hostname": "host.example.com", - "name": "host.example.com" - }, - "coredns": { - "stats": { - "panic": { - "count": { - "total": 0 - } - } - } - }, - "event": { - "dataset": "coredns.stats", - "duration": 115000, - "module": "coredns" - }, - "metricset": { - "name": "stats" - }, - "service": { - "address": "127.0.0.1:9153", - "type": "coredns" - } -} \ No newline at end of file diff --git a/metricbeat/module/coredns/stats/_meta/data_request_count_event.json b/metricbeat/module/coredns/stats/_meta/data_request_count_event.json deleted file mode 100644 index 278abf6cd49..00000000000 --- a/metricbeat/module/coredns/stats/_meta/data_request_count_event.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "@timestamp": "2017-10-12T08:05:34.853Z", - "agent": { - "hostname": "host.example.com", - "name": "host.example.com" - }, - "coredns": { - "stats": { - "dns": { - "request": { - "count": { - "total": 430 - } - } - }, - "family": "1", - "proto": "udp", - "server": "dns://:53", - "zone": "dropped" - } - }, - "event": { - "dataset": "coredns.stats", - "duration": 115000, - "module": "coredns" - }, - "metricset": { - "name": "stats" - }, - "service": { - "address": "127.0.0.1:9153", - "type": "coredns" - } -} \ No newline at end of file diff --git a/metricbeat/module/coredns/stats/_meta/data_request_duration_ns_event.json b/metricbeat/module/coredns/stats/_meta/data_request_duration_ns_event.json deleted file mode 100644 index 32708e27cfb..00000000000 --- a/metricbeat/module/coredns/stats/_meta/data_request_duration_ns_event.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "@timestamp": "2017-10-12T08:05:34.853Z", - "agent": { - "hostname": "host.example.com", - "name": "host.example.com" - }, - "coredns": { - "stats": { - "dns": { - "request": { - "duration": { - "ns": { - "bucket": { - "+Inf": 430, - "1000000": 0, - "1024000000": 0, - "128000000": 0, - "16000000": 0, - "2000000": 0, - "2048000000": 427, - "250000": 0, - "256000000": 0, - "32000000": 0, - "4000000": 0, - "4096000000": 428, - "500000": 0, - "512000000": 0, - "64000000": 0, - "8000000": 0, - "8192000000": 430 - }, - "count": 430, - "sum": 870306874252 - } - } - } - }, - "server": "dns://:53", - "zone": "." - } - }, - "event": { - "dataset": "coredns.stats", - "duration": 115000, - "module": "coredns" - }, - "metricset": { - "name": "stats" - }, - "service": { - "address": "127.0.0.1:9153", - "type": "coredns" - } -} diff --git a/metricbeat/module/coredns/stats/_meta/data_request_type_event.json b/metricbeat/module/coredns/stats/_meta/data_request_type_event.json deleted file mode 100644 index 154d614c14a..00000000000 --- a/metricbeat/module/coredns/stats/_meta/data_request_type_event.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "@timestamp": "2017-10-12T08:05:34.853Z", - "agent": { - "hostname": "host.example.com", - "name": "host.example.com" - }, - "coredns": { - "stats": { - "dns": { - "request": { - "type": { - "count": { - "total": 430 - } - } - } - }, - "server": "dns://:53", - "type": "A", - "zone": "." - } - }, - "event": { - "dataset": "coredns.stats", - "duration": 115000, - "module": "coredns" - }, - "metricset": { - "name": "stats" - }, - "service": { - "address": "127.0.0.1:9153", - "type": "coredns" - } -} \ No newline at end of file diff --git a/metricbeat/module/coredns/stats/_meta/data_response_rcode_event.json b/metricbeat/module/coredns/stats/_meta/data_response_rcode_event.json deleted file mode 100644 index 0aa1da95db4..00000000000 --- a/metricbeat/module/coredns/stats/_meta/data_response_rcode_event.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "@timestamp": "2017-10-12T08:05:34.853Z", - "agent": { - "hostname": "host.example.com", - "name": "host.example.com" - }, - "coredns": { - "stats": { - "dns": { - "response": { - "rcode": { - "count": { - "total": 430 - } - } - } - }, - "rcode": "SERVFAIL", - "server": "dns://:53", - "zone": "." - } - }, - "event": { - "dataset": "coredns.stats", - "duration": 115000, - "module": "coredns" - }, - "metricset": { - "name": "stats" - }, - "service": { - "address": "127.0.0.1:9153", - "type": "coredns" - } -} \ No newline at end of file diff --git a/metricbeat/module/coredns/stats/_meta/data_size_bytes_event.json b/metricbeat/module/coredns/stats/_meta/data_size_bytes_event.json deleted file mode 100644 index ecced482d6c..00000000000 --- a/metricbeat/module/coredns/stats/_meta/data_size_bytes_event.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "@timestamp": "2017-10-12T08:05:34.853Z", - "agent": { - "hostname": "host.example.com", - "name": "host.example.com" - }, - "coredns": { - "stats": { - "dns": { - "request": { - "size": { - "bytes": { - "bucket": { - "+Inf": 430, - "0": 0, - "100": 430, - "1023": 430, - "16000": 430, - "200": 430, - "2047": 430, - "300": 430, - "32000": 430, - "400": 430, - "4095": 430, - "48000": 430, - "511": 430, - "64000": 430, - "8291": 430 - }, - "count": 430, - "sum": 24080 - } - } - }, - "response": { - "size": { - "bytes": { - "bucket": { - "+Inf": 430, - "0": 0, - "100": 430, - "1023": 430, - "16000": 430, - "200": 430, - "2047": 430, - "300": 430, - "32000": 430, - "400": 430, - "4095": 430, - "48000": 430, - "511": 430, - "64000": 430, - "8291": 430 - }, - "count": 430, - "sum": 24080 - } - } - } - }, - "proto": "udp", - "server": "dns://:53", - "zone": "." - } - }, - "event": { - "dataset": "coredns.stats", - "duration": 115000, - "module": "coredns" - }, - "metricset": { - "name": "stats" - }, - "service": { - "address": "127.0.0.1:9153", - "type": "coredns" - } -} \ No newline at end of file diff --git a/metricbeat/module/coredns/stats/_meta/test/metrics.expected b/metricbeat/module/coredns/stats/_meta/test/metrics.expected deleted file mode 100644 index ef2093b6410..00000000000 --- a/metricbeat/module/coredns/stats/_meta/test/metrics.expected +++ /dev/null @@ -1,217 +0,0 @@ -[ - { - "RootFields": null, - "ModuleFields": null, - "MetricSetFields": { - "dns": { - "response": { - "rcode": { - "count": { - "total": 440 - } - } - } - }, - "rcode": "NOERROR", - "server": "dns://:53", - "zone": "." - }, - "Index": "", - "ID": "", - "Namespace": "", - "Timestamp": "0001-01-01T00:00:00Z", - "Error": null, - "Host": "", - "Service": "", - "Took": 0 - }, - { - "RootFields": null, - "ModuleFields": null, - "MetricSetFields": { - "panic": { - "count": { - "total": 0 - } - } - }, - "Index": "", - "ID": "", - "Namespace": "", - "Timestamp": "0001-01-01T00:00:00Z", - "Error": null, - "Host": "", - "Service": "", - "Took": 0 - }, - { - "RootFields": null, - "ModuleFields": null, - "MetricSetFields": { - "dns": { - "request": { - "do": { - "count": { - "total": 113 - } - }, - "duration": { - "ns": { - "bucket": { - "+Inf": 440, - "1000000": 0, - "1024000000": 440, - "128000000": 437, - "16000000": 0, - "2000000": 0, - "2048000000": 440, - "250000": 0, - "256000000": 438, - "32000000": 0, - "4000000": 0, - "4096000000": 440, - "500000": 0, - "512000000": 440, - "64000000": 424, - "8000000": 0, - "8192000000": 440 - }, - "count": 440, - "sum": 21712619368 - } - } - } - }, - "server": "dns://:53", - "zone": "." - }, - "Index": "", - "ID": "", - "Namespace": "", - "Timestamp": "0001-01-01T00:00:00Z", - "Error": null, - "Host": "", - "Service": "", - "Took": 0 - }, - { - "RootFields": null, - "ModuleFields": null, - "MetricSetFields": { - "dns": { - "request": { - "size": { - "bytes": { - "bucket": { - "+Inf": 440, - "0": 0, - "100": 440, - "1023": 440, - "16000": 440, - "200": 440, - "2047": 440, - "300": 440, - "32000": 440, - "400": 440, - "4095": 440, - "48000": 440, - "511": 440, - "64000": 440, - "8291": 440 - }, - "count": 440, - "sum": 22880 - } - } - }, - "response": { - "size": { - "bytes": { - "bucket": { - "+Inf": 440, - "0": 0, - "100": 440, - "1023": 440, - "16000": 440, - "200": 440, - "2047": 440, - "300": 440, - "32000": 440, - "400": 440, - "4095": 440, - "48000": 440, - "511": 440, - "64000": 440, - "8291": 440 - }, - "count": 440, - "sum": 29480 - } - } - } - }, - "proto": "udp", - "server": "dns://:53", - "zone": "." - }, - "Index": "", - "ID": "", - "Namespace": "", - "Timestamp": "0001-01-01T00:00:00Z", - "Error": null, - "Host": "", - "Service": "", - "Took": 0 - }, - { - "RootFields": null, - "ModuleFields": null, - "MetricSetFields": { - "dns": { - "request": { - "count": { - "total": 440 - } - } - }, - "family": "1", - "proto": "udp", - "server": "dns://:53", - "zone": "." - }, - "Index": "", - "ID": "", - "Namespace": "", - "Timestamp": "0001-01-01T00:00:00Z", - "Error": null, - "Host": "", - "Service": "", - "Took": 0 - }, - { - "RootFields": null, - "ModuleFields": null, - "MetricSetFields": { - "dns": { - "request": { - "type": { - "count": { - "total": 440 - } - } - } - }, - "server": "dns://:53", - "type": "A", - "zone": "." - }, - "Index": "", - "ID": "", - "Namespace": "", - "Timestamp": "0001-01-01T00:00:00Z", - "Error": null, - "Host": "", - "Service": "", - "Took": 0 - } -] diff --git a/metricbeat/module/coredns/stats/_meta/testdata/config.yml b/metricbeat/module/coredns/stats/_meta/testdata/config.yml new file mode 100644 index 00000000000..ab6bf241654 --- /dev/null +++ b/metricbeat/module/coredns/stats/_meta/testdata/config.yml @@ -0,0 +1,3 @@ +type: http +url: "/metrics" +suffix: plain diff --git a/metricbeat/module/coredns/stats/_meta/testdata/do_count_total.plain b/metricbeat/module/coredns/stats/_meta/testdata/do_count_total.plain new file mode 100644 index 00000000000..b4cc3c1f1eb --- /dev/null +++ b/metricbeat/module/coredns/stats/_meta/testdata/do_count_total.plain @@ -0,0 +1,3 @@ +# HELP coredns_dns_request_do_count_total Counter of DNS requests with DO bit set per zone. +# TYPE coredns_dns_request_do_count_total counter +coredns_dns_request_do_count_total{server="dns://:53",zone="."} 113.0 diff --git a/metricbeat/module/coredns/stats/_meta/testdata/do_count_total.plain-expected.json b/metricbeat/module/coredns/stats/_meta/testdata/do_count_total.plain-expected.json new file mode 100644 index 00000000000..4f854e03be4 --- /dev/null +++ b/metricbeat/module/coredns/stats/_meta/testdata/do_count_total.plain-expected.json @@ -0,0 +1,31 @@ +[ + { + "coredns": { + "stats": { + "dns": { + "request": { + "do": { + "count": { + "total": 113 + } + } + } + }, + "server": "dns://:53", + "zone": "." + } + }, + "event": { + "dataset": "coredns.stats", + "duration": 115000, + "module": "coredns" + }, + "metricset": { + "name": "stats" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "coredns" + } + } +] \ No newline at end of file diff --git a/metricbeat/module/coredns/stats/_meta/testdata/docs.plain b/metricbeat/module/coredns/stats/_meta/testdata/docs.plain new file mode 100644 index 00000000000..1efc76bc8b0 --- /dev/null +++ b/metricbeat/module/coredns/stats/_meta/testdata/docs.plain @@ -0,0 +1,38 @@ +# HELP coredns_dns_response_size_bytes Size of the returned response in bytes. +# TYPE coredns_dns_response_size_bytes histogram +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="0.0"} 0.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="100.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="200.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="300.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="400.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="511.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="1023.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="2047.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="4095.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="8291.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="16000.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="32000.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="48000.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="64000.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="+Inf"} 440.0 +coredns_dns_response_size_bytes_sum{proto="udp",server="dns://:53",zone="."} 29480.0 +coredns_dns_response_size_bytes_count{proto="udp",server="dns://:53",zone="."} 440.0 +# HELP coredns_dns_request_size_bytes Size of the EDNS0 UDP buffer in bytes (64K for TCP). +# TYPE coredns_dns_request_size_bytes histogram +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="0.0"} 0.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="100.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="200.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="300.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="400.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="511.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="1023.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="2047.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="4095.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="8291.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="16000.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="32000.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="48000.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="64000.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="+Inf"} 440.0 +coredns_dns_request_size_bytes_sum{proto="udp",server="dns://:53",zone="."} 22880.0 +coredns_dns_request_size_bytes_count{proto="udp",server="dns://:53",zone="."} 440.0 diff --git a/metricbeat/module/coredns/stats/_meta/testdata/docs.plain-expected.json b/metricbeat/module/coredns/stats/_meta/testdata/docs.plain-expected.json new file mode 100644 index 00000000000..38f2248d7d6 --- /dev/null +++ b/metricbeat/module/coredns/stats/_meta/testdata/docs.plain-expected.json @@ -0,0 +1,75 @@ +[ + { + "coredns": { + "stats": { + "dns": { + "request": { + "size": { + "bytes": { + "bucket": { + "+Inf": 440, + "0": 0, + "100": 440, + "1023": 440, + "16000": 440, + "200": 440, + "2047": 440, + "300": 440, + "32000": 440, + "400": 440, + "4095": 440, + "48000": 440, + "511": 440, + "64000": 440, + "8291": 440 + }, + "count": 440, + "sum": 22880 + } + } + }, + "response": { + "size": { + "bytes": { + "bucket": { + "+Inf": 440, + "0": 0, + "100": 440, + "1023": 440, + "16000": 440, + "200": 440, + "2047": 440, + "300": 440, + "32000": 440, + "400": 440, + "4095": 440, + "48000": 440, + "511": 440, + "64000": 440, + "8291": 440 + }, + "count": 440, + "sum": 29480 + } + } + } + }, + "proto": "udp", + "server": "dns://:53", + "zone": "." + } + }, + "event": { + "dataset": "coredns.stats", + "duration": 115000, + "module": "coredns" + }, + "metricset": { + "name": "stats" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "coredns" + } + } +] \ No newline at end of file diff --git a/metricbeat/module/coredns/stats/_meta/testdata/panic_count_total.plain b/metricbeat/module/coredns/stats/_meta/testdata/panic_count_total.plain new file mode 100644 index 00000000000..97e4299051d --- /dev/null +++ b/metricbeat/module/coredns/stats/_meta/testdata/panic_count_total.plain @@ -0,0 +1,3 @@ +# HELP coredns_panic_count_total A metrics that counts the number of panics. +# TYPE coredns_panic_count_total counter +coredns_panic_count_total 42.0 diff --git a/metricbeat/module/coredns/stats/_meta/testdata/panic_count_total.plain-expected.json b/metricbeat/module/coredns/stats/_meta/testdata/panic_count_total.plain-expected.json new file mode 100644 index 00000000000..c13297036e0 --- /dev/null +++ b/metricbeat/module/coredns/stats/_meta/testdata/panic_count_total.plain-expected.json @@ -0,0 +1,25 @@ +[ + { + "coredns": { + "stats": { + "panic": { + "count": { + "total": 42 + } + } + } + }, + "event": { + "dataset": "coredns.stats", + "duration": 115000, + "module": "coredns" + }, + "metricset": { + "name": "stats" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "coredns" + } + } +] \ No newline at end of file diff --git a/metricbeat/module/coredns/stats/_meta/test/metrics b/metricbeat/module/coredns/stats/_meta/testdata/prometheus_full_output.plain similarity index 100% rename from metricbeat/module/coredns/stats/_meta/test/metrics rename to metricbeat/module/coredns/stats/_meta/testdata/prometheus_full_output.plain diff --git a/metricbeat/module/coredns/stats/_meta/testdata/prometheus_full_output.plain-expected.json b/metricbeat/module/coredns/stats/_meta/testdata/prometheus_full_output.plain-expected.json new file mode 100644 index 00000000000..8865794ce31 --- /dev/null +++ b/metricbeat/module/coredns/stats/_meta/testdata/prometheus_full_output.plain-expected.json @@ -0,0 +1,241 @@ +[ + { + "coredns": { + "stats": { + "panic": { + "count": { + "total": 0 + } + } + } + }, + "event": { + "dataset": "coredns.stats", + "duration": 115000, + "module": "coredns" + }, + "metricset": { + "name": "stats" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "coredns" + } + }, + { + "coredns": { + "stats": { + "dns": { + "request": { + "size": { + "bytes": { + "bucket": { + "+Inf": 440, + "0": 0, + "100": 440, + "1023": 440, + "16000": 440, + "200": 440, + "2047": 440, + "300": 440, + "32000": 440, + "400": 440, + "4095": 440, + "48000": 440, + "511": 440, + "64000": 440, + "8291": 440 + }, + "count": 440, + "sum": 22880 + } + } + }, + "response": { + "size": { + "bytes": { + "bucket": { + "+Inf": 440, + "0": 0, + "100": 440, + "1023": 440, + "16000": 440, + "200": 440, + "2047": 440, + "300": 440, + "32000": 440, + "400": 440, + "4095": 440, + "48000": 440, + "511": 440, + "64000": 440, + "8291": 440 + }, + "count": 440, + "sum": 29480 + } + } + } + }, + "proto": "udp", + "server": "dns://:53", + "zone": "." + } + }, + "event": { + "dataset": "coredns.stats", + "duration": 115000, + "module": "coredns" + }, + "metricset": { + "name": "stats" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "coredns" + } + }, + { + "coredns": { + "stats": { + "dns": { + "request": { + "count": { + "total": 440 + } + } + }, + "family": "1", + "proto": "udp", + "server": "dns://:53", + "zone": "." + } + }, + "event": { + "dataset": "coredns.stats", + "duration": 115000, + "module": "coredns" + }, + "metricset": { + "name": "stats" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "coredns" + } + }, + { + "coredns": { + "stats": { + "dns": { + "response": { + "rcode": { + "count": { + "total": 440 + } + } + } + }, + "rcode": "NOERROR", + "server": "dns://:53", + "zone": "." + } + }, + "event": { + "dataset": "coredns.stats", + "duration": 115000, + "module": "coredns" + }, + "metricset": { + "name": "stats" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "coredns" + } + }, + { + "coredns": { + "stats": { + "dns": { + "request": { + "type": { + "count": { + "total": 440 + } + } + } + }, + "server": "dns://:53", + "type": "A", + "zone": "." + } + }, + "event": { + "dataset": "coredns.stats", + "duration": 115000, + "module": "coredns" + }, + "metricset": { + "name": "stats" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "coredns" + } + }, + { + "coredns": { + "stats": { + "dns": { + "request": { + "do": { + "count": { + "total": 113 + } + }, + "duration": { + "ns": { + "bucket": { + "+Inf": 440, + "1000000": 0, + "1024000000": 440, + "128000000": 437, + "16000000": 0, + "2000000": 0, + "2048000000": 440, + "250000": 0, + "256000000": 438, + "32000000": 0, + "4000000": 0, + "4096000000": 440, + "500000": 0, + "512000000": 440, + "64000000": 424, + "8000000": 0, + "8192000000": 440 + }, + "count": 440, + "sum": 21712619368 + } + } + } + }, + "server": "dns://:53", + "zone": "." + } + }, + "event": { + "dataset": "coredns.stats", + "duration": 115000, + "module": "coredns" + }, + "metricset": { + "name": "stats" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "coredns" + } + } +] \ No newline at end of file diff --git a/metricbeat/module/coredns/stats/_meta/testdata/rcode_count_total.plain b/metricbeat/module/coredns/stats/_meta/testdata/rcode_count_total.plain new file mode 100644 index 00000000000..4b38b061981 --- /dev/null +++ b/metricbeat/module/coredns/stats/_meta/testdata/rcode_count_total.plain @@ -0,0 +1,3 @@ +# HELP coredns_dns_response_rcode_count_total Counter of response status codes. +# TYPE coredns_dns_response_rcode_count_total counter +coredns_dns_response_rcode_count_total{rcode="NOERROR",server="dns://:53",zone="."} 440.0 diff --git a/metricbeat/module/coredns/stats/_meta/testdata/rcode_count_total.plain-expected.json b/metricbeat/module/coredns/stats/_meta/testdata/rcode_count_total.plain-expected.json new file mode 100644 index 00000000000..05c945bc0bf --- /dev/null +++ b/metricbeat/module/coredns/stats/_meta/testdata/rcode_count_total.plain-expected.json @@ -0,0 +1,32 @@ +[ + { + "coredns": { + "stats": { + "dns": { + "response": { + "rcode": { + "count": { + "total": 440 + } + } + } + }, + "rcode": "NOERROR", + "server": "dns://:53", + "zone": "." + } + }, + "event": { + "dataset": "coredns.stats", + "duration": 115000, + "module": "coredns" + }, + "metricset": { + "name": "stats" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "coredns" + } + } +] \ No newline at end of file diff --git a/metricbeat/module/coredns/stats/_meta/testdata/request_count_total.plain b/metricbeat/module/coredns/stats/_meta/testdata/request_count_total.plain new file mode 100644 index 00000000000..9a7e0e905e0 --- /dev/null +++ b/metricbeat/module/coredns/stats/_meta/testdata/request_count_total.plain @@ -0,0 +1,3 @@ +# HELP coredns_dns_request_count_total Counter of DNS requests made per zone, protocol and family. +# TYPE coredns_dns_request_count_total counter +coredns_dns_request_count_total{family="1",proto="udp",server="dns://:53",zone="."} 440.0 diff --git a/metricbeat/module/coredns/stats/_meta/testdata/request_count_total.plain-expected.json b/metricbeat/module/coredns/stats/_meta/testdata/request_count_total.plain-expected.json new file mode 100644 index 00000000000..f8107cdf790 --- /dev/null +++ b/metricbeat/module/coredns/stats/_meta/testdata/request_count_total.plain-expected.json @@ -0,0 +1,31 @@ +[ + { + "coredns": { + "stats": { + "dns": { + "request": { + "count": { + "total": 440 + } + } + }, + "family": "1", + "proto": "udp", + "server": "dns://:53", + "zone": "." + } + }, + "event": { + "dataset": "coredns.stats", + "duration": 115000, + "module": "coredns" + }, + "metricset": { + "name": "stats" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "coredns" + } + } +] \ No newline at end of file diff --git a/metricbeat/module/coredns/stats/_meta/testdata/request_duration.plain b/metricbeat/module/coredns/stats/_meta/testdata/request_duration.plain new file mode 100644 index 00000000000..717f371d331 --- /dev/null +++ b/metricbeat/module/coredns/stats/_meta/testdata/request_duration.plain @@ -0,0 +1,21 @@ +# HELP coredns_dns_request_duration_seconds Histogram of the time (in seconds) each request took. +# TYPE coredns_dns_request_duration_seconds histogram +coredns_dns_request_duration_seconds_bucket{server="dns://:53",zone=".",le="0.00025"} 0.0 +coredns_dns_request_duration_seconds_bucket{server="dns://:53",zone=".",le="0.0005"} 0.0 +coredns_dns_request_duration_seconds_bucket{server="dns://:53",zone=".",le="0.001"} 0.0 +coredns_dns_request_duration_seconds_bucket{server="dns://:53",zone=".",le="0.002"} 0.0 +coredns_dns_request_duration_seconds_bucket{server="dns://:53",zone=".",le="0.004"} 0.0 +coredns_dns_request_duration_seconds_bucket{server="dns://:53",zone=".",le="0.008"} 0.0 +coredns_dns_request_duration_seconds_bucket{server="dns://:53",zone=".",le="0.016"} 0.0 +coredns_dns_request_duration_seconds_bucket{server="dns://:53",zone=".",le="0.032"} 0.0 +coredns_dns_request_duration_seconds_bucket{server="dns://:53",zone=".",le="0.064"} 424.0 +coredns_dns_request_duration_seconds_bucket{server="dns://:53",zone=".",le="0.128"} 437.0 +coredns_dns_request_duration_seconds_bucket{server="dns://:53",zone=".",le="0.256"} 438.0 +coredns_dns_request_duration_seconds_bucket{server="dns://:53",zone=".",le="0.512"} 440.0 +coredns_dns_request_duration_seconds_bucket{server="dns://:53",zone=".",le="1.024"} 440.0 +coredns_dns_request_duration_seconds_bucket{server="dns://:53",zone=".",le="2.048"} 440.0 +coredns_dns_request_duration_seconds_bucket{server="dns://:53",zone=".",le="4.096"} 440.0 +coredns_dns_request_duration_seconds_bucket{server="dns://:53",zone=".",le="8.192"} 440.0 +coredns_dns_request_duration_seconds_bucket{server="dns://:53",zone=".",le="+Inf"} 440.0 +coredns_dns_request_duration_seconds_sum{server="dns://:53",zone="."} 21.712619368 +coredns_dns_request_duration_seconds_count{server="dns://:53",zone="."} 440.0 diff --git a/metricbeat/module/coredns/stats/_meta/testdata/request_duration.plain-expected.json b/metricbeat/module/coredns/stats/_meta/testdata/request_duration.plain-expected.json new file mode 100644 index 00000000000..051528b9e7e --- /dev/null +++ b/metricbeat/module/coredns/stats/_meta/testdata/request_duration.plain-expected.json @@ -0,0 +1,51 @@ +[ + { + "coredns": { + "stats": { + "dns": { + "request": { + "duration": { + "ns": { + "bucket": { + "+Inf": 440, + "1000000": 0, + "1024000000": 440, + "128000000": 437, + "16000000": 0, + "2000000": 0, + "2048000000": 440, + "250000": 0, + "256000000": 438, + "32000000": 0, + "4000000": 0, + "4096000000": 440, + "500000": 0, + "512000000": 440, + "64000000": 424, + "8000000": 0, + "8192000000": 440 + }, + "count": 440, + "sum": 21712619368 + } + } + } + }, + "server": "dns://:53", + "zone": "." + } + }, + "event": { + "dataset": "coredns.stats", + "duration": 115000, + "module": "coredns" + }, + "metricset": { + "name": "stats" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "coredns" + } + } +] \ No newline at end of file diff --git a/metricbeat/module/coredns/stats/_meta/testdata/request_size.plain b/metricbeat/module/coredns/stats/_meta/testdata/request_size.plain new file mode 100644 index 00000000000..4048c7190dc --- /dev/null +++ b/metricbeat/module/coredns/stats/_meta/testdata/request_size.plain @@ -0,0 +1,19 @@ +# HELP coredns_dns_request_size_bytes Size of the EDNS0 UDP buffer in bytes (64K for TCP). +# TYPE coredns_dns_request_size_bytes histogram +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="0.0"} 0.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="100.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="200.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="300.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="400.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="511.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="1023.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="2047.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="4095.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="8291.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="16000.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="32000.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="48000.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="64000.0"} 440.0 +coredns_dns_request_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="+Inf"} 440.0 +coredns_dns_request_size_bytes_sum{proto="udp",server="dns://:53",zone="."} 22880.0 +coredns_dns_request_size_bytes_count{proto="udp",server="dns://:53",zone="."} 440.0 diff --git a/metricbeat/module/coredns/stats/_meta/testdata/request_size.plain-expected.json b/metricbeat/module/coredns/stats/_meta/testdata/request_size.plain-expected.json new file mode 100644 index 00000000000..8acbd403326 --- /dev/null +++ b/metricbeat/module/coredns/stats/_meta/testdata/request_size.plain-expected.json @@ -0,0 +1,50 @@ +[ + { + "coredns": { + "stats": { + "dns": { + "request": { + "size": { + "bytes": { + "bucket": { + "+Inf": 440, + "0": 0, + "100": 440, + "1023": 440, + "16000": 440, + "200": 440, + "2047": 440, + "300": 440, + "32000": 440, + "400": 440, + "4095": 440, + "48000": 440, + "511": 440, + "64000": 440, + "8291": 440 + }, + "count": 440, + "sum": 22880 + } + } + } + }, + "proto": "udp", + "server": "dns://:53", + "zone": "." + } + }, + "event": { + "dataset": "coredns.stats", + "duration": 115000, + "module": "coredns" + }, + "metricset": { + "name": "stats" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "coredns" + } + } +] \ No newline at end of file diff --git a/metricbeat/module/coredns/stats/_meta/testdata/request_type_count_total.plain b/metricbeat/module/coredns/stats/_meta/testdata/request_type_count_total.plain new file mode 100644 index 00000000000..8bab9797496 --- /dev/null +++ b/metricbeat/module/coredns/stats/_meta/testdata/request_type_count_total.plain @@ -0,0 +1,3 @@ +# HELP coredns_dns_request_type_count_total Counter of DNS requests per type, per zone. +# TYPE coredns_dns_request_type_count_total counter +coredns_dns_request_type_count_total{server="dns://:53",type="A",zone="."} 440.0 diff --git a/metricbeat/module/coredns/stats/_meta/testdata/request_type_count_total.plain-expected.json b/metricbeat/module/coredns/stats/_meta/testdata/request_type_count_total.plain-expected.json new file mode 100644 index 00000000000..975b31d8421 --- /dev/null +++ b/metricbeat/module/coredns/stats/_meta/testdata/request_type_count_total.plain-expected.json @@ -0,0 +1,32 @@ +[ + { + "coredns": { + "stats": { + "dns": { + "request": { + "type": { + "count": { + "total": 440 + } + } + } + }, + "server": "dns://:53", + "type": "A", + "zone": "." + } + }, + "event": { + "dataset": "coredns.stats", + "duration": 115000, + "module": "coredns" + }, + "metricset": { + "name": "stats" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "coredns" + } + } +] \ No newline at end of file diff --git a/metricbeat/module/coredns/stats/_meta/testdata/response_size.plain b/metricbeat/module/coredns/stats/_meta/testdata/response_size.plain new file mode 100644 index 00000000000..ff374bced35 --- /dev/null +++ b/metricbeat/module/coredns/stats/_meta/testdata/response_size.plain @@ -0,0 +1,19 @@ +# HELP coredns_dns_response_size_bytes Size of the returned response in bytes. +# TYPE coredns_dns_response_size_bytes histogram +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="0.0"} 0.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="100.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="200.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="300.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="400.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="511.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="1023.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="2047.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="4095.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="8291.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="16000.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="32000.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="48000.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="64000.0"} 440.0 +coredns_dns_response_size_bytes_bucket{proto="udp",server="dns://:53",zone=".",le="+Inf"} 440.0 +coredns_dns_response_size_bytes_sum{proto="udp",server="dns://:53",zone="."} 29480.0 +coredns_dns_response_size_bytes_count{proto="udp",server="dns://:53",zone="."} 440.0 diff --git a/metricbeat/module/coredns/stats/_meta/testdata/response_size.plain-expected.json b/metricbeat/module/coredns/stats/_meta/testdata/response_size.plain-expected.json new file mode 100644 index 00000000000..4e90b48d793 --- /dev/null +++ b/metricbeat/module/coredns/stats/_meta/testdata/response_size.plain-expected.json @@ -0,0 +1,50 @@ +[ + { + "coredns": { + "stats": { + "dns": { + "response": { + "size": { + "bytes": { + "bucket": { + "+Inf": 440, + "0": 0, + "100": 440, + "1023": 440, + "16000": 440, + "200": 440, + "2047": 440, + "300": 440, + "32000": 440, + "400": 440, + "4095": 440, + "48000": 440, + "511": 440, + "64000": 440, + "8291": 440 + }, + "count": 440, + "sum": 29480 + } + } + } + }, + "proto": "udp", + "server": "dns://:53", + "zone": "." + } + }, + "event": { + "dataset": "coredns.stats", + "duration": 115000, + "module": "coredns" + }, + "metricset": { + "name": "stats" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "coredns" + } + } +] \ No newline at end of file diff --git a/metricbeat/module/coredns/stats/stats_integration_test.go b/metricbeat/module/coredns/stats/stats_integration_test.go deleted file mode 100644 index c7766ff91e0..00000000000 --- a/metricbeat/module/coredns/stats/stats_integration_test.go +++ /dev/null @@ -1,89 +0,0 @@ -// Licensed to Elasticsearch B.V. under one or more contributor -// license agreements. See the NOTICE file distributed with -// this work for additional information regarding copyright -// ownership. Elasticsearch B.V. licenses this file to you under -// the Apache License, Version 2.0 (the "License"); you may -// not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -// +build integration - -package stats - -import ( - "fmt" - "os" - "testing" - - "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/tests/compose" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestData(t *testing.T) { - compose.EnsureUp(t, "coredns") - // TODO: Use this function to find if an event is the wanted one - eventIs := func(eventType string) func(e common.MapStr) bool { - return func(e common.MapStr) bool { - hasEvent, _ := e.HasKey(eventType) - return hasEvent - } - } - dataFiles := []struct { - eventType string - path string - }{ - {"coredns.stats.panic.count.total", "./_meta/data_panic_event.json"}, - {"coredns.stats.dns.request.count.total", "./_meta/data_request_count_event.json"}, - {"coredns.stats.dns.request.size.bytes", "./_meta/data_size_bytes_event.json"}, - {"coredns.stats.dns.request.duration.ns", "./_meta/data_request_duration_ns_event.json"}, - {"coredns.stats.dns.response.rcode", "./_meta/data_response_rcode_event.json"}, - {"coredns.stats.dns.request.type", "./_meta/data_request_type_event.json"}, - } - f := mbtest.NewReportingMetricSetV2(t, getConfig()) - - for _, df := range dataFiles { - t.Run(fmt.Sprintf("event type:%s", df.eventType), func(t *testing.T) { - err := mbtest.WriteEventsReporterV2Cond(f, t, df.path, eventIs(df.eventType)) - if err != nil { - t.Fatal("write", err) - } - }) - } - -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "coredns", - "metricsets": []string{"stats"}, - "hosts": []string{GetEnvHost() + ":" + GetEnvPort()}, - } -} - -func GetEnvHost() string { - host := os.Getenv("COREDNS_HOST") - - if len(host) == 0 { - host = "127.0.0.1" - } - return host -} - -func GetEnvPort() string { - port := os.Getenv("COREDNS_PORT") - - if len(port) == 0 { - port = "9153" - } - return port -} diff --git a/metricbeat/module/coredns/stats/stats_test.go b/metricbeat/module/coredns/stats/stats_test.go deleted file mode 100644 index 053ed67b17a..00000000000 --- a/metricbeat/module/coredns/stats/stats_test.go +++ /dev/null @@ -1,37 +0,0 @@ -// Licensed to Elasticsearch B.V. under one or more contributor -// license agreements. See the NOTICE file distributed with -// this work for additional information regarding copyright -// ownership. Elasticsearch B.V. licenses this file to you under -// the Apache License, Version 2.0 (the "License"); you may -// not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -package stats - -import ( - "testing" - - "github.com/elastic/beats/metricbeat/helper/prometheus/ptest" -) - -const testFile = "_meta/test/metrics" - -func TestEventMapping(t *testing.T) { - ptest.TestMetricSet(t, "coredns", "stats", - ptest.TestCases{ - { - MetricsFile: "./_meta/test/metrics", - ExpectedFile: "./_meta/test/metrics.expected", - }, - }, - ) -} From 09a8fa8aa088fecb15d474a14cdbdce29e97565a Mon Sep 17 00:00:00 2001 From: Christoph Wurm Date: Fri, 22 Mar 2019 11:24:44 +0000 Subject: [PATCH 252/332] [Auditbeat] Login dataset: Add event category and type (#11339) Adds `event.category: authentication` and `event.type: authentication_success` (or `authentication_failure`). --- CHANGELOG.next.asciidoc | 1 + .../module/system/login/_meta/data.json | 18 +++---- x-pack/auditbeat/module/system/login/login.go | 4 ++ .../module/system/login/login_test.go | 51 ++++++++++++++++++- 4 files changed, 63 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index f309326613d..f6827fd9548 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -269,6 +269,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Add `entity_id` fields. {pull}10500[10500] - Add seven dashboards for the system module. {pull}10511[10511] - Move System module to beta. {pull}10800[10800] +- Login dataset: Add event category and type. {pull}11339[11339] *Filebeat* diff --git a/x-pack/auditbeat/module/system/login/_meta/data.json b/x-pack/auditbeat/module/system/login/_meta/data.json index 3518c24535a..ea9482e9d76 100644 --- a/x-pack/auditbeat/module/system/login/_meta/data.json +++ b/x-pack/auditbeat/module/system/login/_meta/data.json @@ -1,20 +1,18 @@ { "@timestamp": "2017-10-12T08:05:34.853Z", - "agent": { - "hostname": "host.example.com", - "name": "host.example.com" - }, "event": { "action": "user_login", + "category": "authentication", "dataset": "login", "kind": "event", "module": "system", - "origin": "/var/log/wtmp.1", - "outcome": "success" + "origin": "/var/log/wtmp", + "outcome": "success", + "type": "authentication_success" }, - "message": "Login by user vagrant (UID: 1000) on pts/1 (PID: 17559) from 10.0.2.2 (IP: 10.0.2.2)", + "message": "Login by user vagrant (UID: 1000) on pts/2 (PID: 14962) from 10.0.2.2 (IP: 10.0.2.2)", "process": { - "pid": 17559 + "pid": 14962 }, "service": { "type": "system" @@ -25,6 +23,6 @@ "user": { "id": 1000, "name": "vagrant", - "terminal": "pts/1" + "terminal": "pts/2" } -} +} \ No newline at end of file diff --git a/x-pack/auditbeat/module/system/login/login.go b/x-pack/auditbeat/module/system/login/login.go index 064157e7d3a..69891182210 100644 --- a/x-pack/auditbeat/module/system/login/login.go +++ b/x-pack/auditbeat/module/system/login/login.go @@ -202,9 +202,13 @@ func (ms *MetricSet) loginEvent(loginRecord *LoginRecord) mb.Event { switch loginRecord.Type { case userLoginRecord: + event.RootFields.Put("event.category", "authentication") event.RootFields.Put("event.outcome", "success") + event.RootFields.Put("event.type", "authentication_success") case userLoginFailedRecord: + event.RootFields.Put("event.category", "authentication") event.RootFields.Put("event.outcome", "failure") + event.RootFields.Put("event.type", "authentication_failure") } return event diff --git a/x-pack/auditbeat/module/system/login/login_test.go b/x-pack/auditbeat/module/system/login/login_test.go index 30926cbf7be..6634c39e0a6 100644 --- a/x-pack/auditbeat/module/system/login/login_test.go +++ b/x-pack/auditbeat/module/system/login/login_test.go @@ -31,6 +31,7 @@ func TestData(t *testing.T) { config["login.wtmp_file_pattern"] = "../../../tests/files/wtmp" config["login.btmp_file_pattern"] = "" f := mbtest.NewReportingMetricSetV2(t, config) + defer f.(*MetricSet).utmpReader.bucket.DeleteBucket() events, errs := mbtest.ReportingFetchV2(f) if len(errs) > 0 { @@ -43,11 +44,50 @@ func TestData(t *testing.T) { t.Fatalf("only one event expected, got %d", len(events)) } + events[0].RootFields.Put("event.origin", "/var/log/wtmp") fullEvent := mbtest.StandardizeEvent(f, events[0], core.AddDatasetToEvent) mbtest.WriteEventToDataJSON(t, fullEvent, "") } -func TestFailedLogins(t *testing.T) { +func TestWtmp(t *testing.T) { + if byteOrder != binary.LittleEndian { + t.Skip("Test only works on little-endian systems - skipping.") + } + + defer abtest.SetupDataDir(t)() + + config := getBaseConfig() + config["login.wtmp_file_pattern"] = "../../../tests/files/wtmp" + config["login.btmp_file_pattern"] = "" + f := mbtest.NewReportingMetricSetV2(t, config) + defer f.(*MetricSet).utmpReader.bucket.DeleteBucket() + + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("received error: %+v", errs[0]) + } + + if len(events) == 0 { + t.Fatal("no events were generated") + } else if len(events) != 1 { + t.Fatalf("only one event expected, got %d", len(events)) + } + + // utmpdump: [7] [14962] [ts/2] [vagrant ] [pts/2 ] [10.0.2.2 ] [10.0.2.2 ] [2019-01-24T09:51:51,367964+00:00] + checkFieldValue(t, events[0].RootFields, "event.kind", "event") + checkFieldValue(t, events[0].RootFields, "event.category", "authentication") + checkFieldValue(t, events[0].RootFields, "event.action", "user_login") + checkFieldValue(t, events[0].RootFields, "event.outcome", "success") + checkFieldValue(t, events[0].RootFields, "event.type", "authentication_success") + checkFieldValue(t, events[0].RootFields, "process.pid", 14962) + checkFieldValue(t, events[0].RootFields, "source.ip", "10.0.2.2") + checkFieldValue(t, events[0].RootFields, "user.name", "vagrant") + checkFieldValue(t, events[0].RootFields, "user.terminal", "pts/2") + assert.True(t, events[0].Timestamp.Equal(time.Date(2019, 1, 24, 9, 51, 51, 367964000, time.UTC)), + "Timestamp is not equal: %+v", events[0].Timestamp) +} + +func TestBtmp(t *testing.T) { if byteOrder != binary.LittleEndian { t.Skip("Test only works on little-endian systems - skipping.") } @@ -58,6 +98,7 @@ func TestFailedLogins(t *testing.T) { config["login.wtmp_file_pattern"] = "" config["login.btmp_file_pattern"] = "../../../tests/files/btmp_ubuntu1804" f := mbtest.NewReportingMetricSetV2(t, config) + defer f.(*MetricSet).utmpReader.bucket.DeleteBucket() events, errs := mbtest.ReportingFetchV2(f) if len(errs) > 0 { @@ -72,8 +113,10 @@ func TestFailedLogins(t *testing.T) { // utmpdump: [6] [03307] [ ] [root ] [ssh:notty ] [10.0.2.2 ] [10.0.2.2 ] [2019-02-20T17:42:26,000000+0000] checkFieldValue(t, events[0].RootFields, "event.kind", "event") + checkFieldValue(t, events[0].RootFields, "event.category", "authentication") checkFieldValue(t, events[0].RootFields, "event.action", "user_login") checkFieldValue(t, events[0].RootFields, "event.outcome", "failure") + checkFieldValue(t, events[0].RootFields, "event.type", "authentication_failure") checkFieldValue(t, events[0].RootFields, "process.pid", 3307) checkFieldValue(t, events[0].RootFields, "source.ip", "10.0.2.2") checkFieldValue(t, events[0].RootFields, "user.id", 0) @@ -85,8 +128,10 @@ func TestFailedLogins(t *testing.T) { // The second UTMP entry in the btmp test file is a duplicate of the first, this is what Ubuntu 18.04 generates. // utmpdump: [6] [03307] [ ] [root ] [ssh:notty ] [10.0.2.2 ] [10.0.2.2 ] [2019-02-20T17:42:26,000000+0000] checkFieldValue(t, events[1].RootFields, "event.kind", "event") + checkFieldValue(t, events[0].RootFields, "event.category", "authentication") checkFieldValue(t, events[1].RootFields, "event.action", "user_login") checkFieldValue(t, events[1].RootFields, "event.outcome", "failure") + checkFieldValue(t, events[0].RootFields, "event.type", "authentication_failure") checkFieldValue(t, events[1].RootFields, "process.pid", 3307) checkFieldValue(t, events[1].RootFields, "source.ip", "10.0.2.2") checkFieldValue(t, events[1].RootFields, "user.id", 0) @@ -97,8 +142,10 @@ func TestFailedLogins(t *testing.T) { // utmpdump: [7] [03788] [/0 ] [elastic ] [pts/0 ] [ ] [0.0.0.0 ] [2019-02-20T17:45:08,447344+0000] checkFieldValue(t, events[2].RootFields, "event.kind", "event") + checkFieldValue(t, events[0].RootFields, "event.category", "authentication") checkFieldValue(t, events[2].RootFields, "event.action", "user_login") checkFieldValue(t, events[2].RootFields, "event.outcome", "failure") + checkFieldValue(t, events[0].RootFields, "event.type", "authentication_failure") checkFieldValue(t, events[2].RootFields, "process.pid", 3788) checkFieldValue(t, events[2].RootFields, "source.ip", "0.0.0.0") checkFieldValue(t, events[2].RootFields, "user.name", "elastic") @@ -108,8 +155,10 @@ func TestFailedLogins(t *testing.T) { // utmpdump: [7] [03788] [/0 ] [UNKNOWN ] [pts/0 ] [ ] [0.0.0.0 ] [2019-02-20T17:45:15,765318+0000] checkFieldValue(t, events[3].RootFields, "event.kind", "event") + checkFieldValue(t, events[0].RootFields, "event.category", "authentication") checkFieldValue(t, events[3].RootFields, "event.action", "user_login") checkFieldValue(t, events[3].RootFields, "event.outcome", "failure") + checkFieldValue(t, events[0].RootFields, "event.type", "authentication_failure") checkFieldValue(t, events[3].RootFields, "process.pid", 3788) checkFieldValue(t, events[3].RootFields, "source.ip", "0.0.0.0") contains, err := events[3].RootFields.HasKey("user.id") From 4b9f9456ecbb589bc910c8c0c6ae7df66049017c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?No=C3=A9mi=20V=C3=A1nyi?= Date: Fri, 22 Mar 2019 14:56:05 +0100 Subject: [PATCH 253/332] New processor: copy_fields (#11303) A new processor is introduced as part of support for keeping orignal messages. Options and naming follows the convention of other processors. ### `copy_fields` This processor copies one field to another. Example configuration is below: ```yaml processors: - copy_fields: fields: - from: message to: event.original fail_on_error: false ignore_missing: true ``` --- CHANGELOG.next.asciidoc | 3 +- auditbeat/auditbeat.reference.yml | 10 ++ filebeat/filebeat.reference.yml | 10 ++ heartbeat/heartbeat.reference.yml | 10 ++ journalbeat/journalbeat.reference.yml | 10 ++ libbeat/_meta/config.reference.yml | 10 ++ libbeat/processors/actions/copy_fields.go | 108 +++++++++++++ .../processors/actions/copy_fields_test.go | 145 ++++++++++++++++++ libbeat/processors/actions/rename.go | 6 +- libbeat/processors/actions/rename_test.go | 6 + metricbeat/metricbeat.reference.yml | 10 ++ packetbeat/packetbeat.reference.yml | 10 ++ winlogbeat/winlogbeat.reference.yml | 10 ++ x-pack/auditbeat/auditbeat.reference.yml | 10 ++ x-pack/filebeat/filebeat.reference.yml | 10 ++ .../functionbeat/functionbeat.reference.yml | 10 ++ x-pack/metricbeat/metricbeat.reference.yml | 10 ++ 17 files changed, 385 insertions(+), 3 deletions(-) create mode 100644 libbeat/processors/actions/copy_fields.go create mode 100644 libbeat/processors/actions/copy_fields_test.go diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index f6827fd9548..86cb4ef1926 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -256,7 +256,8 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Add output test to kafka output {pull}10834[10834] - Add ip fields to default_field in Elasticsearch template. {pull}11035[11035] - Gracefully shut down on SIGHUP {pull}10704[10704] -- Add `script` processor that supports using Javascript to process events. {pull}10850[10850] {pull}11260[11260] +- New processor: `copy_fields`. {pull}11303[11303] +- Add `error.message` to events when `fail_on_error` is set in `rename` and `copy_fields` processors. {pull}11303[11303] *Auditbeat* diff --git a/auditbeat/auditbeat.reference.yml b/auditbeat/auditbeat.reference.yml index 62412f67731..a67509d1efe 100644 --- a/auditbeat/auditbeat.reference.yml +++ b/auditbeat/auditbeat.reference.yml @@ -329,6 +329,16 @@ auditbeat.modules: # max_depth: 1 # target: "" # overwrite_keys: false +# +# The following example copies the value of message to message_copied +# +#processors: +#- copy_fields: +# fields: +# - from: message +# to: message_copied +# fail_on_error: true +# ignore_missing: false #============================= Elastic Cloud ================================== diff --git a/filebeat/filebeat.reference.yml b/filebeat/filebeat.reference.yml index a660eb366b8..352e575eeec 100644 --- a/filebeat/filebeat.reference.yml +++ b/filebeat/filebeat.reference.yml @@ -1040,6 +1040,16 @@ filebeat.inputs: # max_depth: 1 # target: "" # overwrite_keys: false +# +# The following example copies the value of message to message_copied +# +#processors: +#- copy_fields: +# fields: +# - from: message +# to: message_copied +# fail_on_error: true +# ignore_missing: false #============================= Elastic Cloud ================================== diff --git a/heartbeat/heartbeat.reference.yml b/heartbeat/heartbeat.reference.yml index a7c7be6677f..e5317c15121 100644 --- a/heartbeat/heartbeat.reference.yml +++ b/heartbeat/heartbeat.reference.yml @@ -473,6 +473,16 @@ heartbeat.scheduler: # max_depth: 1 # target: "" # overwrite_keys: false +# +# The following example copies the value of message to message_copied +# +#processors: +#- copy_fields: +# fields: +# - from: message +# to: message_copied +# fail_on_error: true +# ignore_missing: false #============================= Elastic Cloud ================================== diff --git a/journalbeat/journalbeat.reference.yml b/journalbeat/journalbeat.reference.yml index f9ad8dab8d2..f48abb827a9 100644 --- a/journalbeat/journalbeat.reference.yml +++ b/journalbeat/journalbeat.reference.yml @@ -269,6 +269,16 @@ setup.template.settings: # max_depth: 1 # target: "" # overwrite_keys: false +# +# The following example copies the value of message to message_copied +# +#processors: +#- copy_fields: +# fields: +# - from: message +# to: message_copied +# fail_on_error: true +# ignore_missing: false #============================= Elastic Cloud ================================== diff --git a/libbeat/_meta/config.reference.yml b/libbeat/_meta/config.reference.yml index 6491383ac5c..7224aa9e5f5 100644 --- a/libbeat/_meta/config.reference.yml +++ b/libbeat/_meta/config.reference.yml @@ -217,6 +217,16 @@ # max_depth: 1 # target: "" # overwrite_keys: false +# +# The following example copies the value of message to message_copied +# +#processors: +#- copy_fields: +# fields: +# - from: message +# to: message_copied +# fail_on_error: true +# ignore_missing: false #============================= Elastic Cloud ================================== diff --git a/libbeat/processors/actions/copy_fields.go b/libbeat/processors/actions/copy_fields.go new file mode 100644 index 00000000000..95f39d5137b --- /dev/null +++ b/libbeat/processors/actions/copy_fields.go @@ -0,0 +1,108 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package actions + +import ( + "fmt" + + "github.com/pkg/errors" + + "github.com/elastic/beats/libbeat/beat" + "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/logp" + "github.com/elastic/beats/libbeat/processors" +) + +type copyFields struct { + config copyFieldsConfig +} + +type copyFieldsConfig struct { + Fields []fromTo `config:"fields"` + IgnoreMissing bool `config:"ignore_missing"` + FailOnError bool `config:"fail_on_error"` +} + +func init() { + processors.RegisterPlugin("copy_fields", + configChecked(newCopyFields, + requireFields("fields"), + ), + ) +} + +func newCopyFields(c *common.Config) (processors.Processor, error) { + config := copyFieldsConfig{ + IgnoreMissing: false, + FailOnError: true, + } + err := c.Unpack(&config) + if err != nil { + return nil, fmt.Errorf("failed to unpack the configuration of copy processor: %s", err) + } + + f := ©Fields{ + config: config, + } + return f, nil +} + +func (f *copyFields) Run(event *beat.Event) (*beat.Event, error) { + var backup common.MapStr + if f.config.FailOnError { + backup = event.Fields.Clone() + } + + for _, field := range f.config.Fields { + err := f.copyField(field.From, field.To, event.Fields) + if err != nil && f.config.FailOnError { + errMsg := fmt.Errorf("Failed to copy fields in copy_fields processor: %s", err) + logp.Debug("copy_fields", errMsg.Error()) + event.Fields = backup + event.PutValue("error.message", errMsg.Error()) + return event, err + } + } + + return event, nil +} + +func (f *copyFields) copyField(from string, to string, fields common.MapStr) error { + exists, _ := fields.HasKey(to) + if exists { + return fmt.Errorf("target field %s already exists, drop or rename this field first", to) + } + + value, err := fields.GetValue(from) + if err != nil { + if f.config.IgnoreMissing && errors.Cause(err) == common.ErrKeyNotFound { + return nil + } + return fmt.Errorf("could not fetch value for key: %s, Error: %s", from, err) + } + + _, err = fields.Put(to, value) + if err != nil { + return fmt.Errorf("could not copy value to %s: %v, %+v", to, value, err) + } + return nil +} + +func (f *copyFields) String() string { + return "copy_fields=" + fmt.Sprintf("%+v", f.config.Fields) +} diff --git a/libbeat/processors/actions/copy_fields_test.go b/libbeat/processors/actions/copy_fields_test.go new file mode 100644 index 00000000000..a3de4ae1947 --- /dev/null +++ b/libbeat/processors/actions/copy_fields_test.go @@ -0,0 +1,145 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package actions + +import ( + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/elastic/beats/libbeat/beat" + "github.com/elastic/beats/libbeat/common" +) + +func TestCopyFields(t *testing.T) { + + var tests = map[string]struct { + FromTo fromTo + Input common.MapStr + Expected common.MapStr + }{ + "copy string from message to message_copied": { + FromTo: fromTo{ + From: "message", + To: "message_copied", + }, + Input: common.MapStr{ + "message": "please copy this line", + }, + Expected: common.MapStr{ + "message": "please copy this line", + "message_copied": "please copy this line", + }, + }, + "copy string from nested key nested.message to top level field message_copied": { + FromTo: fromTo{ + From: "nested.message", + To: "message_copied", + }, + Input: common.MapStr{ + "nested": common.MapStr{ + "message": "please copy this line", + }, + }, + Expected: common.MapStr{ + "nested": common.MapStr{ + "message": "please copy this line", + }, + "message_copied": "please copy this line", + }, + }, + "copy string from fieldname with dot to message_copied": { + FromTo: fromTo{ + From: "dotted.message", + To: "message_copied", + }, + Input: common.MapStr{ + "dotted.message": "please copy this line", + }, + Expected: common.MapStr{ + "dotted.message": "please copy this line", + "message_copied": "please copy this line", + }, + }, + "copy number from fieldname with dot to dotted message.copied": { + FromTo: fromTo{ + From: "message.original", + To: "message.copied", + }, + Input: common.MapStr{ + "message.original": 42, + }, + Expected: common.MapStr{ + "message.original": 42, + "message": common.MapStr{ + "copied": 42, + }, + }, + }, + "copy number from hierarchical message.original to top level message which fails": { + FromTo: fromTo{ + From: "message.original", + To: "message", + }, + Input: common.MapStr{ + "message": common.MapStr{ + "original": 42, + }, + }, + Expected: common.MapStr{ + "message": common.MapStr{ + "original": 42, + }, + }, + }, + "copy number from hierarchical message.original to top level message": { + FromTo: fromTo{ + From: "message.original", + To: "message", + }, + Input: common.MapStr{ + "message.original": 42, + }, + Expected: common.MapStr{ + "message.original": 42, + "message": 42, + }, + }, + } + + for name, test := range tests { + t.Run(name, func(t *testing.T) { + p := copyFields{ + copyFieldsConfig{ + Fields: []fromTo{ + test.FromTo, + }, + }, + } + + event := &beat.Event{ + Fields: test.Input, + } + + newEvent, err := p.Run(event) + assert.NoError(t, err) + + assert.Equal(t, test.Expected, newEvent.Fields) + }) + } +} diff --git a/libbeat/processors/actions/rename.go b/libbeat/processors/actions/rename.go index bd39f93ab74..7eded9bf23f 100644 --- a/libbeat/processors/actions/rename.go +++ b/libbeat/processors/actions/rename.go @@ -75,8 +75,10 @@ func (f *renameFields) Run(event *beat.Event) (*beat.Event, error) { for _, field := range f.config.Fields { err := f.renameField(field.From, field.To, event.Fields) if err != nil && f.config.FailOnError { - logp.Debug("rename", "Failed to rename fields, revert to old event: %s", err) + errMsg := fmt.Errorf("Failed to rename fields in processor: %s", err) + logp.Debug("rename", errMsg.Error()) event.Fields = backup + event.PutValue("error.message", errMsg.Error()) return event, err } } @@ -108,7 +110,7 @@ func (f *renameFields) renameField(from string, to string, fields common.MapStr) _, err = fields.Put(to, value) if err != nil { - return fmt.Errorf("could not put value: %s: %v, %+v", to, value, err) + return fmt.Errorf("could not put value: %s: %v, %v", to, value, err) } return nil } diff --git a/libbeat/processors/actions/rename_test.go b/libbeat/processors/actions/rename_test.go index cfdce8a3595..125986e8a15 100644 --- a/libbeat/processors/actions/rename_test.go +++ b/libbeat/processors/actions/rename_test.go @@ -92,6 +92,9 @@ func TestRenameRun(t *testing.T) { Output: common.MapStr{ "a": 2, "b": "q", + "error": common.MapStr{ + "message": "Failed to rename fields in processor: target field b already exists, drop or rename this field first", + }, }, error: true, FailOnError: true, @@ -188,6 +191,9 @@ func TestRenameRun(t *testing.T) { Output: common.MapStr{ "a": 9, "c": 10, + "error": common.MapStr{ + "message": "Failed to rename fields in processor: could not put value: a.c: 10, expected map but type is int", + }, }, error: true, IgnoreMissing: false, diff --git a/metricbeat/metricbeat.reference.yml b/metricbeat/metricbeat.reference.yml index 97dfa32d718..bc30e786090 100644 --- a/metricbeat/metricbeat.reference.yml +++ b/metricbeat/metricbeat.reference.yml @@ -943,6 +943,16 @@ metricbeat.modules: # max_depth: 1 # target: "" # overwrite_keys: false +# +# The following example copies the value of message to message_copied +# +#processors: +#- copy_fields: +# fields: +# - from: message +# to: message_copied +# fail_on_error: true +# ignore_missing: false #============================= Elastic Cloud ================================== diff --git a/packetbeat/packetbeat.reference.yml b/packetbeat/packetbeat.reference.yml index 30a3e7ebb0d..63263147f22 100644 --- a/packetbeat/packetbeat.reference.yml +++ b/packetbeat/packetbeat.reference.yml @@ -697,6 +697,16 @@ packetbeat.ignore_outgoing: false # max_depth: 1 # target: "" # overwrite_keys: false +# +# The following example copies the value of message to message_copied +# +#processors: +#- copy_fields: +# fields: +# - from: message +# to: message_copied +# fail_on_error: true +# ignore_missing: false #============================= Elastic Cloud ================================== diff --git a/winlogbeat/winlogbeat.reference.yml b/winlogbeat/winlogbeat.reference.yml index 3e2f4b3f2e3..fb8853f30cb 100644 --- a/winlogbeat/winlogbeat.reference.yml +++ b/winlogbeat/winlogbeat.reference.yml @@ -246,6 +246,16 @@ winlogbeat.event_logs: # max_depth: 1 # target: "" # overwrite_keys: false +# +# The following example copies the value of message to message_copied +# +#processors: +#- copy_fields: +# fields: +# - from: message +# to: message_copied +# fail_on_error: true +# ignore_missing: false #============================= Elastic Cloud ================================== diff --git a/x-pack/auditbeat/auditbeat.reference.yml b/x-pack/auditbeat/auditbeat.reference.yml index 06409690e8a..60c5fa02fa9 100644 --- a/x-pack/auditbeat/auditbeat.reference.yml +++ b/x-pack/auditbeat/auditbeat.reference.yml @@ -364,6 +364,16 @@ auditbeat.modules: # max_depth: 1 # target: "" # overwrite_keys: false +# +# The following example copies the value of message to message_copied +# +#processors: +#- copy_fields: +# fields: +# - from: message +# to: message_copied +# fail_on_error: true +# ignore_missing: false #============================= Elastic Cloud ================================== diff --git a/x-pack/filebeat/filebeat.reference.yml b/x-pack/filebeat/filebeat.reference.yml index 1d92c6bd61a..dc315b4f67c 100644 --- a/x-pack/filebeat/filebeat.reference.yml +++ b/x-pack/filebeat/filebeat.reference.yml @@ -1119,6 +1119,16 @@ filebeat.inputs: # max_depth: 1 # target: "" # overwrite_keys: false +# +# The following example copies the value of message to message_copied +# +#processors: +#- copy_fields: +# fields: +# - from: message +# to: message_copied +# fail_on_error: true +# ignore_missing: false #============================= Elastic Cloud ================================== diff --git a/x-pack/functionbeat/functionbeat.reference.yml b/x-pack/functionbeat/functionbeat.reference.yml index 6aa338385a5..67679ba65df 100644 --- a/x-pack/functionbeat/functionbeat.reference.yml +++ b/x-pack/functionbeat/functionbeat.reference.yml @@ -362,6 +362,16 @@ functionbeat.provider.aws.functions: # max_depth: 1 # target: "" # overwrite_keys: false +# +# The following example copies the value of message to message_copied +# +#processors: +#- copy_fields: +# fields: +# - from: message +# to: message_copied +# fail_on_error: true +# ignore_missing: false #============================= Elastic Cloud ================================== diff --git a/x-pack/metricbeat/metricbeat.reference.yml b/x-pack/metricbeat/metricbeat.reference.yml index f2e684c4981..8d72144103c 100644 --- a/x-pack/metricbeat/metricbeat.reference.yml +++ b/x-pack/metricbeat/metricbeat.reference.yml @@ -972,6 +972,16 @@ metricbeat.modules: # max_depth: 1 # target: "" # overwrite_keys: false +# +# The following example copies the value of message to message_copied +# +#processors: +#- copy_fields: +# fields: +# - from: message +# to: message_copied +# fail_on_error: true +# ignore_missing: false #============================= Elastic Cloud ================================== From a5de499d63d76e5f90e3540140f833d1104acd00 Mon Sep 17 00:00:00 2001 From: Alex K <8418476+fearful-symmetry@users.noreply.github.com> Date: Fri, 22 Mar 2019 09:07:40 -0500 Subject: [PATCH 254/332] [Metricbeat] migrate golang module to ReporterV2 error (#11382) * migrate golang module to ReporterV2 error --- metricbeat/module/golang/expvar/expvar.go | 13 +++++-------- .../module/golang/expvar/expvar_integration_test.go | 8 ++++---- metricbeat/module/golang/heap/heap.go | 13 ++++++------- .../module/golang/heap/heap_integration_test.go | 8 ++++---- 4 files changed, 19 insertions(+), 23 deletions(-) diff --git a/metricbeat/module/golang/expvar/expvar.go b/metricbeat/module/golang/expvar/expvar.go index 776fa243380..78fdbc0ff7b 100644 --- a/metricbeat/module/golang/expvar/expvar.go +++ b/metricbeat/module/golang/expvar/expvar.go @@ -18,7 +18,7 @@ package expvar import ( - "github.com/elastic/beats/libbeat/logp" + "github.com/pkg/errors" "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" @@ -26,8 +26,6 @@ import ( "github.com/elastic/beats/metricbeat/module/golang" ) -var logger = logp.NewLogger("golang.expvar") - const ( defaultScheme = "http" defaultPath = "/debug/vars" @@ -85,13 +83,10 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // Fetch methods implements the data gathering and data conversion to the right format // It returns the event which is then forward to the output. In case of an error, a // descriptive error must be returned. -func (m *MetricSet) Fetch(reporter mb.ReporterV2) { +func (m *MetricSet) Fetch(reporter mb.ReporterV2) error { json, err := m.http.FetchJSON() - if err != nil { - logger.Error(err) - reporter.Error(err) - return + return errors.Wrap(err, "error in http fetch") } //flatten cmdline @@ -101,4 +96,6 @@ func (m *MetricSet) Fetch(reporter mb.ReporterV2) { MetricSetFields: json, Namespace: m.Module().Name() + "." + m.namespace, }) + + return nil } diff --git a/metricbeat/module/golang/expvar/expvar_integration_test.go b/metricbeat/module/golang/expvar/expvar_integration_test.go index 8ee3cceaf69..d5b808ec963 100644 --- a/metricbeat/module/golang/expvar/expvar_integration_test.go +++ b/metricbeat/module/golang/expvar/expvar_integration_test.go @@ -32,9 +32,9 @@ import ( func TestData(t *testing.T) { compose.EnsureUp(t, "golang") - f := mbtest.NewReportingMetricSetV2(t, getConfig()) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig()) - err := mbtest.WriteEventsReporterV2(f, t, "") + err := mbtest.WriteEventsReporterV2Error(f, t, "") if !assert.NoError(t, err) { t.FailNow() } @@ -43,9 +43,9 @@ func TestData(t *testing.T) { func TestFetch(t *testing.T) { compose.EnsureUp(t, "golang") - f := mbtest.NewReportingMetricSetV2(t, getConfig()) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig()) - events, errs := mbtest.ReportingFetchV2(f) + events, errs := mbtest.ReportingFetchV2Error(f) if len(errs) > 0 { t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } diff --git a/metricbeat/module/golang/heap/heap.go b/metricbeat/module/golang/heap/heap.go index 2aa848c3398..206f84dd56d 100644 --- a/metricbeat/module/golang/heap/heap.go +++ b/metricbeat/module/golang/heap/heap.go @@ -20,6 +20,8 @@ package heap import ( "encoding/json" + "github.com/pkg/errors" + "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" @@ -76,25 +78,22 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // Fetch methods implements the data gathering and data conversion to the right format // It returns the event which is then forward to the output. In case of an error, a // descriptive error must be returned. -func (m *MetricSet) Fetch(reporter mb.ReporterV2) { +func (m *MetricSet) Fetch(reporter mb.ReporterV2) error { data, err := m.http.FetchContent() if err != nil { - logger.Error(err) - reporter.Error(err) - return + return errors.Wrap(err, "error in http fetch") } var stats Stats err = json.Unmarshal(data, &stats) if err != nil { - logger.Error(err) - reporter.Error(err) - return + return errors.Wrap(err, "error unmarshalling json") } reporter.Event(mb.Event{ MetricSetFields: eventMapping(stats, m), }) + return nil } diff --git a/metricbeat/module/golang/heap/heap_integration_test.go b/metricbeat/module/golang/heap/heap_integration_test.go index 7ec2a5e6f2c..6576979141b 100644 --- a/metricbeat/module/golang/heap/heap_integration_test.go +++ b/metricbeat/module/golang/heap/heap_integration_test.go @@ -32,9 +32,9 @@ import ( func TestData(t *testing.T) { compose.EnsureUp(t, "golang") - f := mbtest.NewReportingMetricSetV2(t, getConfig()) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig()) - err := mbtest.WriteEventsReporterV2(f, t, "") + err := mbtest.WriteEventsReporterV2Error(f, t, "") if !assert.NoError(t, err) { t.FailNow() } @@ -43,9 +43,9 @@ func TestData(t *testing.T) { func TestFetch(t *testing.T) { compose.EnsureUp(t, "golang") - f := mbtest.NewReportingMetricSetV2(t, getConfig()) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig()) - events, errs := mbtest.ReportingFetchV2(f) + events, errs := mbtest.ReportingFetchV2Error(f) if len(errs) > 0 { t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } From 98e0dbe35d1dab6d9a7c469096dcac0fe700187f Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Fri, 22 Mar 2019 10:42:02 -0700 Subject: [PATCH 255/332] Make geoip steps generic and move to libbeat (#10947) * Make geoip steps generic and move to libbeat * Add changes from review * Add topic to all the beats --- auditbeat/docs/configuring-howto.asciidoc | 3 + auditbeat/docs/images/coordinate-map.png | Bin 0 -> 370029 bytes filebeat/docs/configuring-howto.asciidoc | 3 + filebeat/docs/images/coordinate-map.png | Bin 0 -> 370029 bytes heartbeat/docs/configuring-howto.asciidoc | 3 + heartbeat/docs/images/coordinate-map.png | Bin 0 -> 370029 bytes journalbeat/docs/configuring-howto.asciidoc | 3 + journalbeat/docs/images/coordinate-map.png | Bin 0 -> 370029 bytes libbeat/docs/shared-geoip.asciidoc | 142 ++++++++++++++++++ metricbeat/docs/configuring-howto.asciidoc | 3 + metricbeat/docs/images/coordinate-map.png | Bin 0 -> 370029 bytes packetbeat/docs/configuring-howto.asciidoc | 4 +- packetbeat/docs/images/coordinate-map.png | Bin 0 -> 370029 bytes packetbeat/docs/images/kibana-update-map.png | Bin 471980 -> 0 bytes packetbeat/docs/index.asciidoc | 1 + packetbeat/docs/packetbeat-geoip.asciidoc | 98 ------------ winlogbeat/docs/configuring-howto.asciidoc | 3 + winlogbeat/docs/images/coordinate-map.png | Bin 0 -> 370029 bytes .../docs/configuring-howto.asciidoc | 4 + .../docs/images/coordinate-map.png | Bin 0 -> 370029 bytes 20 files changed, 167 insertions(+), 100 deletions(-) create mode 100644 auditbeat/docs/images/coordinate-map.png create mode 100644 filebeat/docs/images/coordinate-map.png create mode 100644 heartbeat/docs/images/coordinate-map.png create mode 100644 journalbeat/docs/images/coordinate-map.png create mode 100644 libbeat/docs/shared-geoip.asciidoc create mode 100644 metricbeat/docs/images/coordinate-map.png create mode 100644 packetbeat/docs/images/coordinate-map.png delete mode 100644 packetbeat/docs/images/kibana-update-map.png delete mode 100644 packetbeat/docs/packetbeat-geoip.asciidoc create mode 100644 winlogbeat/docs/images/coordinate-map.png create mode 100644 x-pack/functionbeat/docs/images/coordinate-map.png diff --git a/auditbeat/docs/configuring-howto.asciidoc b/auditbeat/docs/configuring-howto.asciidoc index bd86c9566db..0f6fd289c6f 100644 --- a/auditbeat/docs/configuring-howto.asciidoc +++ b/auditbeat/docs/configuring-howto.asciidoc @@ -28,6 +28,7 @@ The following topics describe how to configure {beatname_uc}: * <> * <> * <> +* <<{beatname_lc}-geoip>> * <> * <> * <> @@ -62,6 +63,8 @@ include::./auditbeat-filtering.asciidoc[] include::{libbeat-dir}/docs/shared-config-ingest.asciidoc[] +include::{libbeat-dir}/docs/shared-geoip.asciidoc[] + include::{libbeat-dir}/docs/shared-path-config.asciidoc[] include::{libbeat-dir}/docs/shared-kibana-config.asciidoc[] diff --git a/auditbeat/docs/images/coordinate-map.png b/auditbeat/docs/images/coordinate-map.png new file mode 100644 index 0000000000000000000000000000000000000000..8ac69fe747cfda15ef0eddcf617e18914409b970 GIT binary patch literal 370029 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

VC(~Wk}*sj{oYoO>%PA;~k!E#ln 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�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�Y)=cFN$-E4 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͜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 mfguYFSzyQlLly{F;Qs+MHH%8#Dv;>_0000> * <> * <> +* <<{beatname_lc}-geoip>> * <> * <> * <> @@ -72,6 +73,8 @@ include::./filebeat-filtering.asciidoc[] include::{libbeat-dir}/docs/shared-config-ingest.asciidoc[] +include::{libbeat-dir}/docs/shared-geoip.asciidoc[] + include::{libbeat-dir}/docs/shared-path-config.asciidoc[] include::{libbeat-dir}/docs/shared-kibana-config.asciidoc[] diff --git a/filebeat/docs/images/coordinate-map.png b/filebeat/docs/images/coordinate-map.png new file mode 100644 index 0000000000000000000000000000000000000000..8ac69fe747cfda15ef0eddcf617e18914409b970 GIT binary patch literal 370029 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

VC(~Wk}*sj{oYoO>%PA;~k!E#ln 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�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�Y)=cFN$-E4 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͜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 mfguYFSzyQlLly{F;Qs+MHH%8#Dv;>_0000> * <> * <> +* <<{beatname_lc}-geoip>> * <> * <> * <> @@ -59,6 +60,8 @@ include::./heartbeat-filtering.asciidoc[] include::{libbeat-dir}/docs/shared-config-ingest.asciidoc[] +include::{libbeat-dir}/docs/shared-geoip.asciidoc[] + include::{libbeat-dir}/docs/shared-path-config.asciidoc[] include::{libbeat-dir}/docs/shared-kibana-config.asciidoc[] diff --git a/heartbeat/docs/images/coordinate-map.png b/heartbeat/docs/images/coordinate-map.png new file mode 100644 index 0000000000000000000000000000000000000000..8ac69fe747cfda15ef0eddcf617e18914409b970 GIT binary patch literal 370029 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

VC(~Wk}*sj{oYoO>%PA;~k!E#ln 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�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�Y)=cFN$-E4 z(}_h}#GI7bx21K`vw{9}tOy!+$JWS+)I3LwpKS#G{$uPDCq-M0Y$}L)qQG+%-5P(O z1J{K$BJTJ`L5y)0U09S$P@GS!x3GYL$n(3%jbyKQiiS^YKY+7bk=h>H5whBW6j2TS zsmS=o3i#6*)Y{d~J_3sLXWq_;(CEJTY^Hdrilm|_vloL4Bxluto5y`Pp+!l)DD2m! z=AIq8)a{BauUR3^FWVJ;<-+;~a_3KmkJH83?1dUJJo#5@)|sI`STf*lW@i5hp`NDK~ByI8twwKY1cAHMJNfIH~xnvP;P*QsTq z3dM>&+;JF3$=y-s(hDw+N}rNH=KAyDA=dBCHl$xCD_nhMU?nR<;14ndzf1)aNvZZOtVQegGM~2rQ+xdB*Q7zY^Pk-Kkhdj( z=0)1XmJH{D&7<lvBXd?%ACI1>rWlaTkZ zF_o&)cY#7&=_Alrsw*{q|EM2{;M7r|%Q<@pSpU?+IC0e3M-8`N+6v&^3NLU`_$y0T zmb=+&LR}J_KFFkdjTMAY{0pRfoBa#N@dxC}NopKgtt?ruoF>`-h)~Cvh#XFc+pUUp zez7;M$t@B~_1S~_PmA7FHgZ`%-5L|$q(jnwds^gGWA53E8{CqtnGkwU^ooSLlKcI zWT)QObB}-%EK63unf6D~4J=7$jX?@v#}?7fb4s-xUQX#?X~hf~ zKYgD`USfF}c?Z~$RiP%Ik|D;m%G)NO(7QN)ZF{HX&W!gcliWXpvnxx(6=RfZv>o>< zZ5=Y0LdZgr8uAVFlM05Bb~&>9&C2HQ#igz!w2d-OrYG>_2g+rXxhl^|5#qD~`Khpd zr5;O8x$@f?35H?}8nF*RhBwMG`Hq6I>igzRwnSGApdi8MEm!02TBFqF+ zF}JS|W?0;gK&DJfLEFMz(g3~Vj-8SI_s&DtB5s*#@kjk_J}TmgBmZ_I@wI92Z7GjCnVMemz@V|uUvXNJ2v zqwfrSqvxmb_QZZP`Q2E-?mhF(`!n`qUfI9yGCC+M{w$Xx8Z!r)-iHtMB=xYs&E}_$ zIh21H2kKGPAqB}kpWZr-7I!STuH7g)JU&f}R#=}G;t(OZJmeR}t%oL4!$5ODt5mTO z{95jsaHoCCa~3NDY$bBkr%)FoaU6QEyMIi)Q%)Vmp~`jY27E-6kY}B2c?tU2@TS3d z%lcd+tWi?yTkU<6G_-&$U(pX=PbUR)?E4{?nez$8xWGixd)Tq<^44AJM6v-0+P4I^o+rpH$ai z;+~P{6CF@ZR6hY`%)#@@>l$R(G(@@EzE`nU*mDFJAspEoenu|E52p6Sy!1#w;u=?j ztI5Al@2(DeE?hTk>uhR`y&&1bS z{al1Qq?s99aa9d&6rz0?f$0_no6ule@y zUkp+w!(njl^EJAf{`d^5$+`14^7V`dC(A&iFF5&n_80w0B;#If?{GUd0&YR|(U}5d z-nei3!_L^60s~ge;yR63Ny$&UF$M3G8iF_*LgvS^keZ|+d4<&JPbS+vxUF@TUY&dR zgrubyEB<85m}|Aso{>x8{_Bld^zq=k7?468*QAb5Cb`y?_^%qM3PXL|XG$HTzLGqH zhWOFkoYjf939_?!CUcULh1R`+N;jfZ3jZJ27!mbhGg9X`tder}t46AUOu7OL9Zw9Y ztl8k9acAd0or6E|_}k$7M`VI#A7&)?!E3Wp-5>tAWMu9Wg=%veS}!rfo!86xo~}Y> zwB3)DO8ko6HX0=Px(ZIK^8(Nc6ZgNH zGv?Msd0xt4X*jZaeBF3F1F69CX!9-D2Wi6u6ZB57+2h+fw3wUP5Asl$4D`)f=((Q5 zl)RaUnzdgXpd0`;*F(EMB*}2a`Qy;Pg#jW3H7Vo-Zexq!z7fw!eQ_P@s4$rKZT`h0 z8c=q1r^sGbcnW|q6fc2T_qG6cA~!PxfYJ7jplSNqe$%+W%zh?Sp5e!~Ci>#|Q@@|; z23}^DWR~52MqS=b6E&|rTH~7`q{78v6RRaAvoAg#XCG&76*MzO=k5LD+6(kNA;m5A zXf^vPylpUy&R0|zO7bxbf!$$=HY-z%-pPqFJ{?BBUr#lE%RfG}J&3`pa+WKLTYZw( zRLR(gPEp$P>>HR>^%pfy;^^HKk$vts&O37`TippJ`8i>_xBn zTG?-4G0rqikmcaWtMQ_Qh<-loH)->h*bb8k{nO;C7Vi5b{~4FRwh1r32jcIi8*W6P z$63zPH=-I|mCX9BPVoxCcP?q{$CK~L+chqXKh0TqK_J!9Mwb7k& zH91iSHCe&Ga?kbd`8~lN;nm2v2PMfl6Pel+Cs%(n$k8 zUlp7p*A3~U2anzd!OxzDt#;kHevhk6WTy1Sv@hg3=|q*&>!EttW}x@D9E*lqVSnF( zK|6%xa`Hn^95~~P-eBJ@BI5^U8PWAfA-nIaxjB@GXfA$&AR914f8cos*a8{EIjtJQ zeYWmx+UTLbJ+0!S{pw7?A( z#Ni=zhTZp1RfH*mj5b7a0!1LQvjy#K%t%&%n|p1JMkMJ7Kwsi#lm2Mz75q#7n=Xe| zKt`$LL;;|A&r;ZqUddbH3NX5$OkjnL-P$w$+U%R=SuP)(e-6aP8;GLDjJ6X7zJN}4 zaxxsw+Zc=MN_;)GCw*tjXRIr^u+G`-3acSGU+xFVcqz>FC@SXTlWsD~AA-?ckFR99 zta0a4`yVlm-XFT~j5qJKl*))~cWAf6J(<7JnKS!`*g4&A?pkmP+M{E;kr-H-GLVvY z%1N^iEWH26l%;b*!s0CpX{{`fy3-AOe=xz-Ao$Y{+=A@~Sls;K!36ytrC6+UD$&Xu z;AIHe>fv6{+LVF>|Lx>1RqyTsvjrxf*qvj2>}U9(u>ym(V5}Y`^z<9bh6e!@m3{QF z>Q4E}MwdR|I1(?hG$QDW9RGf5&?&rrv=`VpS00cYW9K<#*r1+~;Kjsp)4QxAR%q3L z-EqQ_TC+UZ{mcSS7}y9^8oAoUCp-E_oOR(AvyKN3;vri%=Jud#Z675MKgde8R)|f!ZZ>nvEjY?vjNup=7^=DL6NhQ> zVbt+4P3|`pZ#HeyEviVA6D7r0?J0rLk%sngKK%>ZNcBI%zkxp zYm^rP8^f-Ni7&eo7hkkX9sE4dj7K0yTa{YS^ z-^dKq^xvma6$X}FRD)>FQo#albJ4Owj3XbmmaXR^zQ?jA<)7Pd{{R5UX{Wc_4VID> z{kV+H_%}TqQ9s_pxC=4LSW3!jr!QzKTrS^4df9#5$mk+YRzuMJ-aqt z!bqx%B|+S-vBI%-z~oIjd2_Xhcq>Qu9psLW5UAQ5H)(BFY;M8iC4z`R>NVsOJ@}w^ z*d#^I1mim5s;>KwU$Rb1UwFr;<;Dht$gM|2EcdT@^X3K*8zIQej%4mu#JQF~%xfD* zqbR@7z0=A~{&W(*jgfCS?{mCWvi?WP1Ij&FU&4v8Hp)tKMtG4HN*#9RaYF5Sjw)Uo z1oU69yyt|bzfw(!l*_mDR$6H#R?70l9D;+gFs0f$aK2Gpk@~<@HC>>_g257)rPfoX z^}8V2a4Vo0<)v=8qe(~cmbr5W-gsNp*dBhk7c}<^=c({F!WddhpXRx|=hHR&&T-%$ zgV_4>wS8e0k0C)3{#3obwbH_kk`-jw;rG~?a;?0$l-na1e?Jr zUK&!y47|={_9%&I916ahqpft7XHt3#7dG9&zt5mH9|`&&uUT0nTc-3NZ%2M}QJ(3l z*5{>XFHELe8^vO{rrDLqvpm}gX7xvPp4$2Kj^@8=4#W6q-aVJV6Lq&1e%J|CC{oY9 z{aBV~U&LIWpZ&oU?sdk#p13?7U65rzB;R_~dSUxJk`KC&>PqPX2!UC9SFNuNqrWRl z*bQpknCo?Z3hP8`pRih4nYn1^OyATQEwT$wiQ`I7uf3L@KXxu{^s9xS0|kfP0EOkB zDrcs5Fjc1aE+J=8gI}$R9e!3E{k?@c4H2oLRY?2-Ej5WUpH?z=ImobV#bIkJ1fn;N z0lUs4>R5g8SVJ=z)iSUk6>+hh85XuLAi$>`sELTC*RF)Z8^3$9aLIItq z@S=(ncqZHpWUF-~fcnz`fr+#+~wz`|Gh%()CC$){Esy z5AtM_qm&zpB*F3v8jYP|O<=P=|FO2i!KOzUFH zX@0P1u72h$Vs0d{I>Zrvy0K%7p|H1>T+Cc-@046@qSnmc#RQl56NOs2&yO5$T`X@? zc6V^nXvH*tFS`@)MeYUcWTks?ZlQCA-G38Ip5DpAoJ7o3BbLFp5C^&2^adDm$Brsu z=dAS@;b!M`GFz1acCkJ=(n7e(WY;>~2fq2>EY_} z_Omob+LWwCZrK@l_gP}C`i)m>;KvlFSc{ zvL>=k;eo(2WQb{3WreDgiI98)k*`lUPVIJmR4sbwsXa-EZM(^5?1=txaT?j9ff>*O0UIQa0a19mv)KUCecsY92%jHC1qSi}DoY*|Gpwc1oCZ2*a;fa{|lR z=<3qN<1sAFx&%3`zo?JZ-eqmz^whHsdWK1@zlZ@OY^NHMQE1^|@tP~PHNk#8ZK)<> zqr>g(-Yn%G^($2K&7~Oc8Ev#)rgG0A;bMM{0Bh&n=Q1mCN%8*gzcQw+nnlTbZr|d@ z97ji+DRGIK*5y%*I_@!V8Opr%Ssn5Qom?^&140qJnjQ`mv?yqVJTG~RIhV? zxxo&|bnHyqy9!<@FuA{|WVEQZBLL>*fH%t|V&5SI$yW2x{uXi3G-KpaK|txS50lQz z&Y;OZ0QHbONJlIbT&8ac)YypaH)#lvUAzGoJ874@sk&PGdp$+GcJDEZ&%*plF7$Ze zVJC!i$w1(}g{I39ss4(MMonUJEUJBgm7Qn0VkeQS`>Rn%(Ga1TV-xVXJM%7+OejZ7 z?(C)1@}DdqRjg0Z&rPnF?AHA*~`z3 z?;N6ch5aSayGIeMTFd_PLZ{;-iCt9%Na5-!o^+QwHzCn<#&Ei)9$VtBp@%Ka=`o)8 z@#q|O_7nB}DM%45m;{h|{VGaOw5t*~5Qe!4?ELWq6lSb(Fr?ZEsO)Eg&148jsM)a) zMwV^>T6z6!T$oH`Wj^0qpX{x{Lhfq~77=2O?haJJCXDw=`T%6N!5JfKPHKT;AumJ? z{FL}odOD6tO3$cmQhJ(6btqL97bcB%AhDhMKAR?-5NMd#XQ_d$F-0qf7tn7c@2Lnj z=X940Kr$NaCqlz;_MVxc!gXo4C1}5uGyP42Ke2hI2t(ZwW6sm7gW0Pc7(s{oRCyZ; zu_)h~I0ojX^f_J}?WAJPR9m&qqfnfpAdDip8ADE=TWIfXZI?&UZ#N>8>zd#SCKs~- zb8Q61;1aVM>4vi`&tP9FPl6_svggib&YE}XF|M$a)EUZ<(^d@P=Ws@Ha0&XH&#<|9 z>42%A?HbWmQPhbcQK1J=OkdakZkPBB>BqCIDEjktd+o#8F~vC8f z1G*7^xV=^=%&6wScMvx4&Gqr&!j1GPk9!?izp9-G7HdXMtGlyxJRy!^BA<0`o4v3GE0hf|9x8= zoL+2d{zs9?E-W@%CELAZy&cuf^&nTw4jDTlv3xq>AqJk!eHwOysdX&x53H!VRpm+wyk7m}$J-^5 zp6sGs758(LimJ6e{Tu^wSm8g3-3k!N&&Axo9i_Bw4notQthREE3>tIhH^3*vkgZK zn`g{7Za0(&O^AZoDa{~qNNegq z3FG#~3YFeM@6YXQ(hZdqd})zhd@LW>GxZPQbCQVIDQKM`@2$>Z;1?+RJo)$lcaUSoI^$(^hduvi zyNr+QF#LtV_GnQ0a?Ih)NmZYYx05dVxIb3dpIZ-dkhfWyRVjRw%bfbB5og8d^85tn zkmPMZir!G69wk_N6Q8BrzZ1`gUamf!QMURlTS4^)Ml%ohoK_k#RC*S1KH2)IgM>EO z!59-SJN@4ntYA*!zFj$o?Y5EpdoxKWy(J)}p9aOWks}b&i9OP%(JS!15wCJP`7+>> zGc>5YOyPaFubvFg;Y*c(O=ZRN7=g=sp9-m<)n4yhtp+UW>=|Ak#74L579-m5efplm z7_|~vMcR{Xc6;+j)|URw>EDFZ(6JL^Dkr8ahNOHb-eE}-UPq4f{n*FYZRXWdDMB`+ z-DGh$L!~wQ(uY;*jM&qHZ>NUsk#mgE-ZBg&@A7-W_qITEAW(rQGeoGhj1W48=*=)4FgvY22oa>|{p>1Y^k47%oct z#eQci_>6#2NV9w=;rCYgeDM#<&Od>)PM@A~4-*t>$S$&i_hq$bjywNBxM;FcX0KL* z{s`MUoJN}a5jv$fLw+}*PVa?vxlKZGx9*LZ`@P!6Fc3o1!>n$WrWl_A+@iwZ|1?R; zuoz$OO#{f}1L%U<_$#2tm(BX;vk+ZAHuwEc*QBUx+3l!@Z{F=&5Ds9JeEo`|ss9P{ zKKd~GjJa{K@XOS@V4&MdWyB^0QHt$WG~K?;i5;<)amji2(lJNOqC_%K&bE6{$-`&B z_R>X%G+K$=jq>yKT2A*2+4fr|pp&bk?s+%}MOvke&Z{hM9PG70qj|OejqT||8iWlk z*mN;wNz>1aV`!Kni96Xx`!(V*0T|_4c~J%>x@iy{cHl9NYAN*Yk0;K?Q1GJL>tvI4 z49a@Tjv=~tfEX?<<8A|oSy4woH4j<5j5p_7tiNe+eP*b@U8eqYf*s67nVva4o#VbJ zpJAueUo4>*!0`Q{oqjOcspf2hyi)-7_Vx0*Xrvmq&M|D162y^RYdaHTaLkq>yZ@>k zm~DC_=(siBm%5eRzkthJY@pYuAthPa+sTo%#UQ(=R))un-K5z@5Ig16(S)5sK^(YF ztVW#;WaaqB_nubc+tcd+j-Kbg?o;w*Gz!)WV5<5BA0pVasDl0&B2-n%zHV(a;uJ*^d zC~dQs=ZmSJp(a)4aoZJ#1*&eL=_Ge!%Zc&IPKAf-ySbZ{sFPQh-mAJV*C~y-J|R7k z6$6Uu9u(~voQ0j6He&mPB>pjm8SYen^TxVM4(i6&T5G zf_!=n+Q3I#jMqzrNPIi$@IHBgFeqW>Zh$`ZIqpb1l^8G$>+mXB-E>CP{yTJ~PJ-x> z^F&Z*iO6$pe+`>4d{ywcyRp74av+wwpV^hmrGshf-TBAkJeO>|*!lT|WevrN)&C;K zU%cUhs^wpl#wd~3N~qf_YO)9BMVb&}tlk1~QKnEB=}Fw1^Zkpt5_-f%vcHea`9jnj z%Sz2a|&4 zDBONpj1=;7El0}fT-t_j&vbP-@f(e7*b4Aec*0Kq|GNM}+9wNoMLwCP0F6igc+7d? ztChWbdO9N}@bJT)pz%z1v0rybGtM^IV!R(5;``D~HNNY;K44Aq;TvzFPh6}v0(dg9 zOldL~f27F+ge3jgW7-v`E-)CP=flOQG5dh;tbXEBkFi!ElCvZ`&HCgev#XXa&VPP* z#2k)TlY{I%dSjMh>kSni!rlONVaLVoRh45K7>T~W}fnk;G*ss z>;MdT3&B(EYY`_9(jg4k<%9HD_h6Gd2JQpBza&d7FV~*BK$5)6?&*{|K<=AK`6nSy z!#dY|6&}(~Rq%lxvpk*-OYw=vV1quAmp`$2Cm``j+ZqR_x{By{!=3uz(^oXp5Ys=( z@=mft$9>f^BWyEFt&WtX?SC&qFlXEsW!$9iN149KEi_*#8|lX()bv#BwAZyea@ve( z0*v;lr;pi=EMsN-Vhx@ly6ixw{^AHl?A`4L@io7TR(k`xWg?4)Yrgwiu=5f2*i6~| zw?b3kDo?L4G4$3-x!dJ;muc>(O!kH*Jv$d+2RGT5N z^ySh$4YT^D!3%;M-ItiQU7mpSjtDqh2S^i!iu(W+&8>OWMi|Tb z57#kqSu>>$^V*Qd1LX2X6*1J9cv1BaeUf#iDq+2BW<)|C(P68aMBM zVlkQg*H~XoU7ra&zU4B|J?T@Ttfc#yA$P(?%7JO4i}T5=I){^m>m{~B-M6NW(@Od) zwI;R~%62f6&63l-wOx9#o=0C9=3cx?`t%tUL)6w}~ z*P+H$xn|XgiiRwWK*P1f=)aGqIaQT(k^}5(hc)EILMzU{wRDzkRnUkY>}m zkZb?zcjI_++HL6=^P$e8zi{Am1!~ve@PlQCu#X+3skw?R2c6p}*ji=0wxGrs?*Y`n7u*73M+nq>@K>LW z*R*>(yz}qZi_S;Lf}!1JR43}`P{$kg*E2&}@1q3S09n5?D#nmQ?7NZVw`{BfR`ObD zyh1keJ(k9iou2{~S5%cO)__4CD+5)4V6}<6*zQh5)>M5HDwGvOjG6|Q# ziwaw)>eX~~8x8&nYLkb5zbea^Y=0PjESfXX?xm4&9nr02u{4i!{@C z5P%l3p+E@Jng|nEZ8AhW40L}bm1%U{n@XoEL7aS7@(Zfui6KgVd=gGgH!)! zKX+mbu}`rh^{ha}DDPWLT$Y9ByvxJM517CwY*s-SK5RaB?zF$Ly{hA0(@C##k$8T_ ze!SKRXKiQj#I&Ya^-&8=az#Ht4Z2YvzIvIY)%YNO0H^`qE&}JpJ6|3K6p~+wQP_r2 z?2SUZ#jaSQZuS`2s=LeM~>5gf& zuq55iHFcGnXF{FM>i$s=%eLL@ZpX$RD|86egcUU*p;4R5U1J=tB#M)SUDNy6A zmL+FHG2f#l3!Vg{;*Aepsm&g=`){?(h$7w6IQ{T!{oiHjGf=%)35ri zJ)jM%8q;RxxFa8v=Z>Yh0(OVLQd`bk*iK}rK9i$#+-w0t!n?+MKPTqy(%=W_@i~?s zuBsEN@gmK`4!(`ZDA)`;*KslQlbL`KW)8}$c4z4wsgftrU(=zhuUzpg>;rU zV4tQe7=8|UXKB(4J{oLS5R{#1*J#wHUijyI-;se>6J~pZn^o zZj`K=UI%$%Bj7-w`&s{Anci=xXHcxQieqzN=KvM0x`75e&D zFPqBg4>?HKLicqf!x}-A8_x>%35$TC+`_hd)8s z(jvmB@YiQmY-sxVD}lG}tHQ*`=P1sX3tL%9w20{xof)Fq43Xm}&Qg**RPrQpv5Y$Q z#dIi2Ay%_QOE=j=OESdL8Oys&Wn|@6Ijt(z&BJ{Ua_o~*Z$afzb3%|Mp*p$ksDflN z?-I7Y;uc70P)}pq͜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 mfguYFSzyQlLly{F;Qs+MHH%8#Dv;>_0000> * <> * <> +* <<{beatname_lc}-geoip>> * <> * <> * <> @@ -48,6 +49,8 @@ include::./filtering.asciidoc[] include::{libbeat-dir}/docs/shared-config-ingest.asciidoc[] +include::{libbeat-dir}/docs/shared-geoip.asciidoc[] + include::{libbeat-dir}/docs/shared-path-config.asciidoc[] include::{libbeat-dir}/docs/shared-kibana-config.asciidoc[] diff --git a/journalbeat/docs/images/coordinate-map.png b/journalbeat/docs/images/coordinate-map.png new file mode 100644 index 0000000000000000000000000000000000000000..8ac69fe747cfda15ef0eddcf617e18914409b970 GIT binary patch literal 370029 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

VC(~Wk}*sj{oYoO>%PA;~k!E#ln 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�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�Y)=cFN$-E4 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͜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 mfguYFSzyQlLly{F;Qs+MHH%8#Dv;>_0000>. + +2. In the {beatname_uc} config file, configure the {es} output to use the +pipeline. Specify the pipeline ID in the `pipeline` option under +`output.elasticsearch`. For example: ++ +[source,yaml] +------------------------------------------------------------------------------- +output.elasticsearch: + hosts: ["localhost:9200"] + pipeline: geoip-info +------------------------------------------------------------------------------- + +3. Run {beatname_uc}. Remember to use `sudo` if the config file is owned by +root. ++ +["source","sh",subs="attributes"] +------------------------------------------------------------------------------- +./{beatname_lc} -e +------------------------------------------------------------------------------- ++ +If the lookups succeed, the events are enriched with `geo_point` fields, such as +`client.geo.location` and `host.geo.location`, that you can use to populate +visualizations in {kib}. + +ifeval::["{beatname_lc}"=="packetbeat"] +As a convenience, the {beatname_uc} index template already has mappings defined +for `client.geo.location`, `source.geo.location`, `destination.geo.location`, +`server.geo.location`, and `host.geo.location`. The mappings ensure that each +field, when it exists, gets indexed as a `geo_point`. +endif::[] + +If you add a field that's not already defined as a `geo_point` in the +index template, add a mapping so the field gets indexed correctly. + +[float] +[id="{beatname_lc}-visualizing-location"] +=== Visualize locations + +To visualize the location of IP addresses, you can +ifdef::has_map[] +<> (if +you haven't already), or +endif::has_map[] +create a new {kibana-ref}/tilemap.html[coordinate map] in {kib} and select the +location field, for example `client.geo.location` or `host.geo.location`, as +the Geohash. + +[role="screenshot"] +image:./images/coordinate-map.png[Coordinate map in {kib}] diff --git a/metricbeat/docs/configuring-howto.asciidoc b/metricbeat/docs/configuring-howto.asciidoc index 25e793afcc4..398c35eb173 100644 --- a/metricbeat/docs/configuring-howto.asciidoc +++ b/metricbeat/docs/configuring-howto.asciidoc @@ -30,6 +30,7 @@ The following topics describe how to configure {beatname_uc}: * <> * <> * <> +* <<{beatname_lc}-geoip>> * <> * <> * <> @@ -62,6 +63,8 @@ include::./metricbeat-filtering.asciidoc[] include::{libbeat-dir}/docs/shared-config-ingest.asciidoc[] +include::{libbeat-dir}/docs/shared-geoip.asciidoc[] + include::{libbeat-dir}/docs/shared-path-config.asciidoc[] include::{libbeat-dir}/docs/shared-kibana-config.asciidoc[] diff --git a/metricbeat/docs/images/coordinate-map.png b/metricbeat/docs/images/coordinate-map.png new file mode 100644 index 0000000000000000000000000000000000000000..8ac69fe747cfda15ef0eddcf617e18914409b970 GIT binary patch literal 370029 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

VC(~Wk}*sj{oYoO>%PA;~k!E#ln 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�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�Y)=cFN$-E4 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͜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 mfguYFSzyQlLly{F;Qs+MHH%8#Dv;>_0000> * <> * <> -* <> +* <<{beatname_lc}-geoip>> * <> * <> * <> @@ -59,7 +59,7 @@ include::./packetbeat-filtering.asciidoc[] include::{libbeat-dir}/docs/shared-config-ingest.asciidoc[] -include::./packetbeat-geoip.asciidoc[] +include::{libbeat-dir}/docs/shared-geoip.asciidoc[] include::{libbeat-dir}/docs/shared-path-config.asciidoc[] diff --git a/packetbeat/docs/images/coordinate-map.png b/packetbeat/docs/images/coordinate-map.png new file mode 100644 index 0000000000000000000000000000000000000000..8ac69fe747cfda15ef0eddcf617e18914409b970 GIT binary patch literal 370029 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

VC(~Wk}*sj{oYoO>%PA;~k!E#ln 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�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�Y)=cFN$-E4 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͜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 diff --git a/packetbeat/docs/index.asciidoc b/packetbeat/docs/index.asciidoc index 336c1888fb1..71176055309 100644 --- a/packetbeat/docs/index.asciidoc +++ b/packetbeat/docs/index.asciidoc @@ -14,6 +14,7 @@ include::{asciidoc-dir}/../../shared/attributes.asciidoc[] :discuss_forum: beats/{beatname_lc} :beat_default_index_prefix: {beatname_lc} :has_ml_jobs: yes +:has_map: :deb_os: :rpm_os: :mac_os: diff --git a/packetbeat/docs/packetbeat-geoip.asciidoc b/packetbeat/docs/packetbeat-geoip.asciidoc deleted file mode 100644 index e411ef4371d..00000000000 --- a/packetbeat/docs/packetbeat-geoip.asciidoc +++ /dev/null @@ -1,98 +0,0 @@ -[[packetbeat-geoip]] -== Export GeoIP Information - -You can use Packetbeat along with the -{ref}/geoip-processor.html[GeoIP Processor] in Elasticsearch -to export geographic location information about source IPs for incoming HTTP -requests. Then you can use this info to visualize the location of your -clients on a map in Kibana. - -The geoIP processor module adds information about the geographical location of -IP addresses, based on data from the Maxmind GeoLite2 City Database. Because the -module uses a geoIP database that's installed on Elasticsearch, you don't need -to install a geoIP database on the machines running Beats. - -NOTE: If your use case involves using Logstash, you can use the -{logstash-ref}/plugins-filters-geoip.html[GeoIP filter] available in Logstash -instead of using the ingest module. However, using the ingest module is the -simplest approach when you don't require the additional processing power of -Logstash. - -[float] -[[packetbeat-configuring-geoip]] -=== Configuring the ingest geoIP processor module - -To configure Packetbeat and the ingest geoIP processor: - -1. Define an ingest node pipeline that uses a `geoip` processor to add location -info to the event. For example, you can use the Console in Kibana to create the -following pipeline: -+ --- -[source,json] -------------------------------------------------------------------------------- -PUT _ingest/pipeline/geoip-info -{ - "description": "Add geoip info", - "processors": [ - { - "geoip": { - "field": "client.ip", - "target_field": "client.geo", - "ignore_failure": true - } - } - ] -} -------------------------------------------------------------------------------- -//CONSOLE --- -+ -This pipeline adds a `client.geo.location` field of type `geo_point` to the -event. The ID of the pipeline is `geoip-info`. `client.ip` is the output field -in Packetbeat that contains the IP address of the client. You set -`ignore_failure` to `true` so that the pipeline will continue processing events -when it encounters an event that doesn't have a `client.ip` field. -+ -See -{ref}/geoip-processor.html[Using the geoip Processor in a Pipeline] -for more options. - -2. In the Packetbeat config file, configure the Elasticsearch output to use the -pipeline. Specify the pipeline ID in the `pipeline` option under -`output.elasticsearch`. For example: -+ -[source,yaml] -------------------------------------------------------------------------------- -output.elasticsearch: - hosts: ["localhost:9200"] - pipeline: geoip-info -------------------------------------------------------------------------------- - -3. Run Packetbeat, passing in the configuration file that you updated earlier. -+ -[source,shell] -------------------------------------------------------------------------------- -sudo ./packetbeat -e -c packetbeat.yml -------------------------------------------------------------------------------- -+ -The event that's sent to Elasticsearch should now include a -`client.geo.location` field. - -[float] -[[packetbeat-visualizing-location]] -=== Visualizing the location of your Packetbeat clients - -To visualize the location of your Packetbeat clients, you can either -<> (if -you haven't already), or create a new {kibana-ref}/tilemap.html[coordinate map] -in Kibana and use the `client.geo.location` field as the Geohash. - -[role="screenshot"] -image:./images/kibana-update-map.png[Update Packetbeat client location map in Kibana] - -TIP: If the map in the dashboard reports "no results found", and you don't see -`client.geo.location` in the list of available Geohash fields, try refreshing -the field list in Kibana. On the Management tab, select the `packetbeat-*` -index pattern, and refresh the field list to pick up any fields that were added -by the ingest geoIP processor. diff --git a/winlogbeat/docs/configuring-howto.asciidoc b/winlogbeat/docs/configuring-howto.asciidoc index c1da6d510c9..811254f037f 100644 --- a/winlogbeat/docs/configuring-howto.asciidoc +++ b/winlogbeat/docs/configuring-howto.asciidoc @@ -25,6 +25,7 @@ The following topics describe how to configure Winlogbeat: * <> * <> * <> +* <<{beatname_lc}-geoip>> * <> * <> * <> @@ -53,6 +54,8 @@ include::./winlogbeat-filtering.asciidoc[] include::{libbeat-dir}/docs/shared-config-ingest.asciidoc[] +include::{libbeat-dir}/docs/shared-geoip.asciidoc[] + include::{libbeat-dir}/docs/shared-path-config.asciidoc[] include::{libbeat-dir}/docs/shared-kibana-config.asciidoc[] diff --git a/winlogbeat/docs/images/coordinate-map.png b/winlogbeat/docs/images/coordinate-map.png new file mode 100644 index 0000000000000000000000000000000000000000..8ac69fe747cfda15ef0eddcf617e18914409b970 GIT binary patch literal 370029 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 mfguYFSzyQlLly{F;Qs+MHH%8#Dv;>_0000> * <> * <> +* <<{beatname_lc}-geoip>> * <> * <> * <> @@ -53,6 +54,9 @@ include::./filtering.asciidoc[] [role="xpack"] include::{libbeat-dir}/docs/shared-config-ingest.asciidoc[] +[role="xpack"] +include::{libbeat-dir}/docs/shared-geoip.asciidoc[] + [role="xpack"] include::{libbeat-dir}/docs/shared-kibana-config.asciidoc[] diff --git a/x-pack/functionbeat/docs/images/coordinate-map.png b/x-pack/functionbeat/docs/images/coordinate-map.png new file mode 100644 index 0000000000000000000000000000000000000000..8ac69fe747cfda15ef0eddcf617e18914409b970 GIT binary patch literal 370029 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

VC(~Wk}*sj{oYoO>%PA;~k!E#ln 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�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�Y)=cFN$-E4 z(}_h}#GI7bx21K`vw{9}tOy!+$JWS+)I3LwpKS#G{$uPDCq-M0Y$}L)qQG+%-5P(O z1J{K$BJTJ`L5y)0U09S$P@GS!x3GYL$n(3%jbyKQiiS^YKY+7bk=h>H5whBW6j2TS zsmS=o3i#6*)Y{d~J_3sLXWq_;(CEJTY^Hdrilm|_vloL4Bxluto5y`Pp+!l)DD2m! z=AIq8)a{BauUR3^FWVJ;<-+;~a_3KmkJH83?1dUJJo#5@)|sI`STf*lW@i5hp`NDK~ByI8twwKY1cAHMJNfIH~xnvP;P*QsTq z3dM>&+;JF3$=y-s(hDw+N}rNH=KAyDA=dBCHl$xCD_nhMU?nR<;14ndzf1)aNvZZOtVQegGM~2rQ+xdB*Q7zY^Pk-Kkhdj( z=0)1XmJH{D&7<lvBXd?%ACI1>rWlaTkZ zF_o&)cY#7&=_Alrsw*{q|EM2{;M7r|%Q<@pSpU?+IC0e3M-8`N+6v&^3NLU`_$y0T zmb=+&LR}J_KFFkdjTMAY{0pRfoBa#N@dxC}NopKgtt?ruoF>`-h)~Cvh#XFc+pUUp zez7;M$t@B~_1S~_PmA7FHgZ`%-5L|$q(jnwds^gGWA53E8{CqtnGkwU^ooSLlKcI zWT)QObB}-%EK63unf6D~4J=7$jX?@v#}?7fb4s-xUQX#?X~hf~ zKYgD`USfF}c?Z~$RiP%Ik|D;m%G)NO(7QN)ZF{HX&W!gcliWXpvnxx(6=RfZv>o>< zZ5=Y0LdZgr8uAVFlM05Bb~&>9&C2HQ#igz!w2d-OrYG>_2g+rXxhl^|5#qD~`Khpd zr5;O8x$@f?35H?}8nF*RhBwMG`Hq6I>igzRwnSGApdi8MEm!02TBFqF+ zF}JS|W?0;gK&DJfLEFMz(g3~Vj-8SI_s&DtB5s*#@kjk_J}TmgBmZ_I@wI92Z7GjCnVMemz@V|uUvXNJ2v zqwfrSqvxmb_QZZP`Q2E-?mhF(`!n`qUfI9yGCC+M{w$Xx8Z!r)-iHtMB=xYs&E}_$ zIh21H2kKGPAqB}kpWZr-7I!STuH7g)JU&f}R#=}G;t(OZJmeR}t%oL4!$5ODt5mTO z{95jsaHoCCa~3NDY$bBkr%)FoaU6QEyMIi)Q%)Vmp~`jY27E-6kY}B2c?tU2@TS3d z%lcd+tWi?yTkU<6G_-&$U(pX=PbUR)?E4{?nez$8xWGixd)Tq<^44AJM6v-0+P4I^o+rpH$ai z;+~P{6CF@ZR6hY`%)#@@>l$R(G(@@EzE`nU*mDFJAspEoenu|E52p6Sy!1#w;u=?j ztI5Al@2(DeE?hTk>uhR`y&&1bS z{al1Qq?s99aa9d&6rz0?f$0_no6ule@y zUkp+w!(njl^EJAf{`d^5$+`14^7V`dC(A&iFF5&n_80w0B;#If?{GUd0&YR|(U}5d z-nei3!_L^60s~ge;yR63Ny$&UF$M3G8iF_*LgvS^keZ|+d4<&JPbS+vxUF@TUY&dR zgrubyEB<85m}|Aso{>x8{_Bld^zq=k7?468*QAb5Cb`y?_^%qM3PXL|XG$HTzLGqH zhWOFkoYjf939_?!CUcULh1R`+N;jfZ3jZJ27!mbhGg9X`tder}t46AUOu7OL9Zw9Y ztl8k9acAd0or6E|_}k$7M`VI#A7&)?!E3Wp-5>tAWMu9Wg=%veS}!rfo!86xo~}Y> zwB3)DO8ko6HX0=Px(ZIK^8(Nc6ZgNH zGv?Msd0xt4X*jZaeBF3F1F69CX!9-D2Wi6u6ZB57+2h+fw3wUP5Asl$4D`)f=((Q5 zl)RaUnzdgXpd0`;*F(EMB*}2a`Qy;Pg#jW3H7Vo-Zexq!z7fw!eQ_P@s4$rKZT`h0 z8c=q1r^sGbcnW|q6fc2T_qG6cA~!PxfYJ7jplSNqe$%+W%zh?Sp5e!~Ci>#|Q@@|; z23}^DWR~52MqS=b6E&|rTH~7`q{78v6RRaAvoAg#XCG&76*MzO=k5LD+6(kNA;m5A zXf^vPylpUy&R0|zO7bxbf!$$=HY-z%-pPqFJ{?BBUr#lE%RfG}J&3`pa+WKLTYZw( zRLR(gPEp$P>>HR>^%pfy;^^HKk$vts&O37`TippJ`8i>_xBn zTG?-4G0rqikmcaWtMQ_Qh<-loH)->h*bb8k{nO;C7Vi5b{~4FRwh1r32jcIi8*W6P z$63zPH=-I|mCX9BPVoxCcP?q{$CK~L+chqXKh0TqK_J!9Mwb7k& zH91iSHCe&Ga?kbd`8~lN;nm2v2PMfl6Pel+Cs%(n$k8 zUlp7p*A3~U2anzd!OxzDt#;kHevhk6WTy1Sv@hg3=|q*&>!EttW}x@D9E*lqVSnF( zK|6%xa`Hn^95~~P-eBJ@BI5^U8PWAfA-nIaxjB@GXfA$&AR914f8cos*a8{EIjtJQ zeYWmx+UTLbJ+0!S{pw7?A( z#Ni=zhTZp1RfH*mj5b7a0!1LQvjy#K%t%&%n|p1JMkMJ7Kwsi#lm2Mz75q#7n=Xe| zKt`$LL;;|A&r;ZqUddbH3NX5$OkjnL-P$w$+U%R=SuP)(e-6aP8;GLDjJ6X7zJN}4 zaxxsw+Zc=MN_;)GCw*tjXRIr^u+G`-3acSGU+xFVcqz>FC@SXTlWsD~AA-?ckFR99 zta0a4`yVlm-XFT~j5qJKl*))~cWAf6J(<7JnKS!`*g4&A?pkmP+M{E;kr-H-GLVvY z%1N^iEWH26l%;b*!s0CpX{{`fy3-AOe=xz-Ao$Y{+=A@~Sls;K!36ytrC6+UD$&Xu z;AIHe>fv6{+LVF>|Lx>1RqyTsvjrxf*qvj2>}U9(u>ym(V5}Y`^z<9bh6e!@m3{QF z>Q4E}MwdR|I1(?hG$QDW9RGf5&?&rrv=`VpS00cYW9K<#*r1+~;Kjsp)4QxAR%q3L z-EqQ_TC+UZ{mcSS7}y9^8oAoUCp-E_oOR(AvyKN3;vri%=Jud#Z675MKgde8R)|f!ZZ>nvEjY?vjNup=7^=DL6NhQ> zVbt+4P3|`pZ#HeyEviVA6D7r0?J0rLk%sngKK%>ZNcBI%zkxp zYm^rP8^f-Ni7&eo7hkkX9sE4dj7K0yTa{YS^ z-^dKq^xvma6$X}FRD)>FQo#albJ4Owj3XbmmaXR^zQ?jA<)7Pd{{R5UX{Wc_4VID> z{kV+H_%}TqQ9s_pxC=4LSW3!jr!QzKTrS^4df9#5$mk+YRzuMJ-aqt z!bqx%B|+S-vBI%-z~oIjd2_Xhcq>Qu9psLW5UAQ5H)(BFY;M8iC4z`R>NVsOJ@}w^ z*d#^I1mim5s;>KwU$Rb1UwFr;<;Dht$gM|2EcdT@^X3K*8zIQej%4mu#JQF~%xfD* zqbR@7z0=A~{&W(*jgfCS?{mCWvi?WP1Ij&FU&4v8Hp)tKMtG4HN*#9RaYF5Sjw)Uo z1oU69yyt|bzfw(!l*_mDR$6H#R?70l9D;+gFs0f$aK2Gpk@~<@HC>>_g257)rPfoX z^}8V2a4Vo0<)v=8qe(~cmbr5W-gsNp*dBhk7c}<^=c({F!WddhpXRx|=hHR&&T-%$ zgV_4>wS8e0k0C)3{#3obwbH_kk`-jw;rG~?a;?0$l-na1e?Jr zUK&!y47|={_9%&I916ahqpft7XHt3#7dG9&zt5mH9|`&&uUT0nTc-3NZ%2M}QJ(3l z*5{>XFHELe8^vO{rrDLqvpm}gX7xvPp4$2Kj^@8=4#W6q-aVJV6Lq&1e%J|CC{oY9 z{aBV~U&LIWpZ&oU?sdk#p13?7U65rzB;R_~dSUxJk`KC&>PqPX2!UC9SFNuNqrWRl z*bQpknCo?Z3hP8`pRih4nYn1^OyATQEwT$wiQ`I7uf3L@KXxu{^s9xS0|kfP0EOkB zDrcs5Fjc1aE+J=8gI}$R9e!3E{k?@c4H2oLRY?2-Ej5WUpH?z=ImobV#bIkJ1fn;N z0lUs4>R5g8SVJ=z)iSUk6>+hh85XuLAi$>`sELTC*RF)Z8^3$9aLIItq z@S=(ncqZHpWUF-~fcnz`fr+#+~wz`|Gh%()CC$){Esy z5AtM_qm&zpB*F3v8jYP|O<=P=|FO2i!KOzUFH zX@0P1u72h$Vs0d{I>Zrvy0K%7p|H1>T+Cc-@046@qSnmc#RQl56NOs2&yO5$T`X@? zc6V^nXvH*tFS`@)MeYUcWTks?ZlQCA-G38Ip5DpAoJ7o3BbLFp5C^&2^adDm$Brsu z=dAS@;b!M`GFz1acCkJ=(n7e(WY;>~2fq2>EY_} z_Omob+LWwCZrK@l_gP}C`i)m>;KvlFSc{ zvL>=k;eo(2WQb{3WreDgiI98)k*`lUPVIJmR4sbwsXa-EZM(^5?1=txaT?j9ff>*O0UIQa0a19mv)KUCecsY92%jHC1qSi}DoY*|Gpwc1oCZ2*a;fa{|lR z=<3qN<1sAFx&%3`zo?JZ-eqmz^whHsdWK1@zlZ@OY^NHMQE1^|@tP~PHNk#8ZK)<> zqr>g(-Yn%G^($2K&7~Oc8Ev#)rgG0A;bMM{0Bh&n=Q1mCN%8*gzcQw+nnlTbZr|d@ z97ji+DRGIK*5y%*I_@!V8Opr%Ssn5Qom?^&140qJnjQ`mv?yqVJTG~RIhV? zxxo&|bnHyqy9!<@FuA{|WVEQZBLL>*fH%t|V&5SI$yW2x{uXi3G-KpaK|txS50lQz z&Y;OZ0QHbONJlIbT&8ac)YypaH)#lvUAzGoJ874@sk&PGdp$+GcJDEZ&%*plF7$Ze zVJC!i$w1(}g{I39ss4(MMonUJEUJBgm7Qn0VkeQS`>Rn%(Ga1TV-xVXJM%7+OejZ7 z?(C)1@}DdqRjg0Z&rPnF?AHA*~`z3 z?;N6ch5aSayGIeMTFd_PLZ{;-iCt9%Na5-!o^+QwHzCn<#&Ei)9$VtBp@%Ka=`o)8 z@#q|O_7nB}DM%45m;{h|{VGaOw5t*~5Qe!4?ELWq6lSb(Fr?ZEsO)Eg&148jsM)a) zMwV^>T6z6!T$oH`Wj^0qpX{x{Lhfq~77=2O?haJJCXDw=`T%6N!5JfKPHKT;AumJ? z{FL}odOD6tO3$cmQhJ(6btqL97bcB%AhDhMKAR?-5NMd#XQ_d$F-0qf7tn7c@2Lnj z=X940Kr$NaCqlz;_MVxc!gXo4C1}5uGyP42Ke2hI2t(ZwW6sm7gW0Pc7(s{oRCyZ; zu_)h~I0ojX^f_J}?WAJPR9m&qqfnfpAdDip8ADE=TWIfXZI?&UZ#N>8>zd#SCKs~- zb8Q61;1aVM>4vi`&tP9FPl6_svggib&YE}XF|M$a)EUZ<(^d@P=Ws@Ha0&XH&#<|9 z>42%A?HbWmQPhbcQK1J=OkdakZkPBB>BqCIDEjktd+o#8F~vC8f z1G*7^xV=^=%&6wScMvx4&Gqr&!j1GPk9!?izp9-G7HdXMtGlyxJRy!^BA<0`o4v3GE0hf|9x8= zoL+2d{zs9?E-W@%CELAZy&cuf^&nTw4jDTlv3xq>AqJk!eHwOysdX&x53H!VRpm+wyk7m}$J-^5 zp6sGs758(LimJ6e{Tu^wSm8g3-3k!N&&Axo9i_Bw4notQthREE3>tIhH^3*vkgZK zn`g{7Za0(&O^AZoDa{~qNNegq z3FG#~3YFeM@6YXQ(hZdqd})zhd@LW>GxZPQbCQVIDQKM`@2$>Z;1?+RJo)$lcaUSoI^$(^hduvi zyNr+QF#LtV_GnQ0a?Ih)NmZYYx05dVxIb3dpIZ-dkhfWyRVjRw%bfbB5og8d^85tn zkmPMZir!G69wk_N6Q8BrzZ1`gUamf!QMURlTS4^)Ml%ohoK_k#RC*S1KH2)IgM>EO z!59-SJN@4ntYA*!zFj$o?Y5EpdoxKWy(J)}p9aOWks}b&i9OP%(JS!15wCJP`7+>> zGc>5YOyPaFubvFg;Y*c(O=ZRN7=g=sp9-m<)n4yhtp+UW>=|Ak#74L579-m5efplm z7_|~vMcR{Xc6;+j)|URw>EDFZ(6JL^Dkr8ahNOHb-eE}-UPq4f{n*FYZRXWdDMB`+ z-DGh$L!~wQ(uY;*jM&qHZ>NUsk#mgE-ZBg&@A7-W_qITEAW(rQGeoGhj1W48=*=)4FgvY22oa>|{p>1Y^k47%oct z#eQci_>6#2NV9w=;rCYgeDM#<&Od>)PM@A~4-*t>$S$&i_hq$bjywNBxM;FcX0KL* z{s`MUoJN}a5jv$fLw+}*PVa?vxlKZGx9*LZ`@P!6Fc3o1!>n$WrWl_A+@iwZ|1?R; zuoz$OO#{f}1L%U<_$#2tm(BX;vk+ZAHuwEc*QBUx+3l!@Z{F=&5Ds9JeEo`|ss9P{ zKKd~GjJa{K@XOS@V4&MdWyB^0QHt$WG~K?;i5;<)amji2(lJNOqC_%K&bE6{$-`&B z_R>X%G+K$=jq>yKT2A*2+4fr|pp&bk?s+%}MOvke&Z{hM9PG70qj|OejqT||8iWlk z*mN;wNz>1aV`!Kni96Xx`!(V*0T|_4c~J%>x@iy{cHl9NYAN*Yk0;K?Q1GJL>tvI4 z49a@Tjv=~tfEX?<<8A|oSy4woH4j<5j5p_7tiNe+eP*b@U8eqYf*s67nVva4o#VbJ zpJAueUo4>*!0`Q{oqjOcspf2hyi)-7_Vx0*Xrvmq&M|D162y^RYdaHTaLkq>yZ@>k zm~DC_=(siBm%5eRzkthJY@pYuAthPa+sTo%#UQ(=R))un-K5z@5Ig16(S)5sK^(YF ztVW#;WaaqB_nubc+tcd+j-Kbg?o;w*Gz!)WV5<5BA0pVasDl0&B2-n%zHV(a;uJ*^d zC~dQs=ZmSJp(a)4aoZJ#1*&eL=_Ge!%Zc&IPKAf-ySbZ{sFPQh-mAJV*C~y-J|R7k z6$6Uu9u(~voQ0j6He&mPB>pjm8SYen^TxVM4(i6&T5G zf_!=n+Q3I#jMqzrNPIi$@IHBgFeqW>Zh$`ZIqpb1l^8G$>+mXB-E>CP{yTJ~PJ-x> z^F&Z*iO6$pe+`>4d{ywcyRp74av+wwpV^hmrGshf-TBAkJeO>|*!lT|WevrN)&C;K zU%cUhs^wpl#wd~3N~qf_YO)9BMVb&}tlk1~QKnEB=}Fw1^Zkpt5_-f%vcHea`9jnj z%Sz2a|&4 zDBONpj1=;7El0}fT-t_j&vbP-@f(e7*b4Aec*0Kq|GNM}+9wNoMLwCP0F6igc+7d? ztChWbdO9N}@bJT)pz%z1v0rybGtM^IV!R(5;``D~HNNY;K44Aq;TvzFPh6}v0(dg9 zOldL~f27F+ge3jgW7-v`E-)CP=flOQG5dh;tbXEBkFi!ElCvZ`&HCgev#XXa&VPP* z#2k)TlY{I%dSjMh>kSni!rlONVaLVoRh45K7>T~W}fnk;G*ss z>;MdT3&B(EYY`_9(jg4k<%9HD_h6Gd2JQpBza&d7FV~*BK$5)6?&*{|K<=AK`6nSy z!#dY|6&}(~Rq%lxvpk*-OYw=vV1quAmp`$2Cm``j+ZqR_x{By{!=3uz(^oXp5Ys=( z@=mft$9>f^BWyEFt&WtX?SC&qFlXEsW!$9iN149KEi_*#8|lX()bv#BwAZyea@ve( z0*v;lr;pi=EMsN-Vhx@ly6ixw{^AHl?A`4L@io7TR(k`xWg?4)Yrgwiu=5f2*i6~| zw?b3kDo?L4G4$3-x!dJ;muc>(O!kH*Jv$d+2RGT5N z^ySh$4YT^D!3%;M-ItiQU7mpSjtDqh2S^i!iu(W+&8>OWMi|Tb z57#kqSu>>$^V*Qd1LX2X6*1J9cv1BaeUf#iDq+2BW<)|C(P68aMBM zVlkQg*H~XoU7ra&zU4B|J?T@Ttfc#yA$P(?%7JO4i}T5=I){^m>m{~B-M6NW(@Od) zwI;R~%62f6&63l-wOx9#o=0C9=3cx?`t%tUL)6w}~ z*P+H$xn|XgiiRwWK*P1f=)aGqIaQT(k^}5(hc)EILMzU{wRDzkRnUkY>}m zkZb?zcjI_++HL6=^P$e8zi{Am1!~ve@PlQCu#X+3skw?R2c6p}*ji=0wxGrs?*Y`n7u*73M+nq>@K>LW z*R*>(yz}qZi_S;Lf}!1JR43}`P{$kg*E2&}@1q3S09n5?D#nmQ?7NZVw`{BfR`ObD zyh1keJ(k9iou2{~S5%cO)__4CD+5)4V6}<6*zQh5)>M5HDwGvOjG6|Q# ziwaw)>eX~~8x8&nYLkb5zbea^Y=0PjESfXX?xm4&9nr02u{4i!{@C z5P%l3p+E@Jng|nEZ8AhW40L}bm1%U{n@XoEL7aS7@(Zfui6KgVd=gGgH!)! zKX+mbu}`rh^{ha}DDPWLT$Y9ByvxJM517CwY*s-SK5RaB?zF$Ly{hA0(@C##k$8T_ ze!SKRXKiQj#I&Ya^-&8=az#Ht4Z2YvzIvIY)%YNO0H^`qE&}JpJ6|3K6p~+wQP_r2 z?2SUZ#jaSQZuS`2s=LeM~>5gf& zuq55iHFcGnXF{FM>i$s=%eLL@ZpX$RD|86egcUU*p;4R5U1J=tB#M)SUDNy6A zmL+FHG2f#l3!Vg{;*Aepsm&g=`){?(h$7w6IQ{T!{oiHjGf=%)35ri zJ)jM%8q;RxxFa8v=Z>Yh0(OVLQd`bk*iK}rK9i$#+-w0t!n?+MKPTqy(%=W_@i~?s zuBsEN@gmK`4!(`ZDA)`;*KslQlbL`KW)8}$c4z4wsgftrU(=zhuUzpg>;rU zV4tQe7=8|UXKB(4J{oLS5R{#1*J#wHUijyI-;se>6J~pZn^o zZj`K=UI%$%Bj7-w`&s{Anci=xXHcxQieqzN=KvM0x`75e&D zFPqBg4>?HKLicqf!x}-A8_x>%35$TC+`_hd)8s z(jvmB@YiQmY-sxVD}lG}tHQ*`=P1sX3tL%9w20{xof)Fq43Xm}&Qg**RPrQpv5Y$Q z#dIi2Ay%_QOE=j=OESdL8Oys&Wn|@6Ijt(z&BJ{Ua_o~*Z$afzb3%|Mp*p$ksDflN z?-I7Y;uc70P)}pq͜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 mfguYFSzyQlLly{F;Qs+MHH%8#Dv;>_0000 Date: Fri, 22 Mar 2019 20:01:07 +0100 Subject: [PATCH 256/332] Report faulting file when config reload fails (#11304) * fixed error format to include faulting file,some go lint issues * changelog updated * review round 1 * not breaking --- CHANGELOG.next.asciidoc | 1 + libbeat/cfgfile/reload.go | 7 ++++++- libbeat/template/load.go | 4 +++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 86cb4ef1926..16f43d97714 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -146,6 +146,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Include ip and boolean type when generating index pattern. {pull}10995[10995] - Cancelling enrollment of a beat will not enroll the beat. {issue}10150[10150] - Add missing fields and test cases for libbeat add_kubernetes_metadata processor. {issue}11133[11133], {pull}11134[11134] +- Report faulting file when config reload fails. {pull}[11304]11304 *Auditbeat* diff --git a/libbeat/cfgfile/reload.go b/libbeat/cfgfile/reload.go index a1624835217..df613e8255c 100644 --- a/libbeat/cfgfile/reload.go +++ b/libbeat/cfgfile/reload.go @@ -35,6 +35,7 @@ import ( ) var ( + // DefaultDynamicConfig provides default behavior for a Runner. DefaultDynamicConfig = DynamicConfig{ Reload: Reload{ Period: 10 * time.Second, @@ -58,16 +59,20 @@ type DynamicConfig struct { Reload Reload `config:"reload"` } +// Reload defines reload behavior and frequency type Reload struct { Period time.Duration `config:"period"` Enabled bool `config:"enabled"` } +// RunnerFactory is used for creating of new Runners type RunnerFactory interface { Create(p beat.Pipeline, config *common.Config, meta *common.MapStrPointer) (Runner, error) CheckConfig(config *common.Config) error } +// Runner is a simple interface providing a simple way to +// Start and Stop Reloader type Runner interface { // We include fmt.Stringer here because we do log debug messages that must print // something for the given Runner. We need Runner implementers to consciously implement a @@ -220,7 +225,7 @@ func (rl *Reloader) loadConfigs(files []string) ([]*reload.ConfigWithMeta, error configs, err := LoadList(file) if err != nil { errs = append(errs, err) - logp.Err("Error loading config: %s", err) + logp.Err("Error loading config from file '%s', error %v", file, err) continue } diff --git a/libbeat/template/load.go b/libbeat/template/load.go index 008ed430758..6e4288a760a 100644 --- a/libbeat/template/load.go +++ b/libbeat/template/load.go @@ -29,13 +29,15 @@ import ( "github.com/elastic/beats/libbeat/paths" ) -// TemplateLoader is a subset of the Elasticsearch client API capable of +// ESClient is a subset of the Elasticsearch client API capable of // loading the template. type ESClient interface { Request(method, path string, pipeline string, params map[string]string, body interface{}) (int, []byte, error) GetVersion() common.Version } +// Loader is a template loader capable of loading the template using +// Elasticsearch Client API type Loader struct { config TemplateConfig client ESClient From f94182e552e9e1f379c2bafe097a13bc9f17e5b8 Mon Sep 17 00:00:00 2001 From: Andrew Kroh Date: Fri, 22 Mar 2019 15:22:05 -0400 Subject: [PATCH 257/332] Register javascript modules (#11384) Register modules with the script processor. --- libbeat/processors/script/processor.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libbeat/processors/script/processor.go b/libbeat/processors/script/processor.go index e6d410b027a..640659ecbfb 100644 --- a/libbeat/processors/script/processor.go +++ b/libbeat/processors/script/processor.go @@ -25,6 +25,9 @@ import ( "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/processors" "github.com/elastic/beats/libbeat/processors/script/javascript" + + // Register javascript modules with the processor. + _ "github.com/elastic/beats/libbeat/processors/script/javascript/module" ) func init() { From be1a9d7e11804ce473ff0a5db8a17b7b97ff6130 Mon Sep 17 00:00:00 2001 From: Michal Pristas Date: Mon, 25 Mar 2019 09:59:59 +0100 Subject: [PATCH 258/332] decode_json_field: do not process arrays when flag not set (#11318) * wong assumption? * indicate skip for arrays * changelog * make one liner * not marking as breaking change --- CHANGELOG.next.asciidoc | 1 + .../processors/actions/decode_json_fields.go | 5 +- .../actions/decode_json_fields_test.go | 47 +++++++++++++++++++ 3 files changed, 51 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 16f43d97714..44db08ace8d 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -146,6 +146,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Include ip and boolean type when generating index pattern. {pull}10995[10995] - Cancelling enrollment of a beat will not enroll the beat. {issue}10150[10150] - Add missing fields and test cases for libbeat add_kubernetes_metadata processor. {issue}11133[11133], {pull}11134[11134] +- decode_json_field: do not process arrays when flag not set. {pull}11318[11318] - Report faulting file when config reload fails. {pull}[11304]11304 *Auditbeat* diff --git a/libbeat/processors/actions/decode_json_fields.go b/libbeat/processors/actions/decode_json_fields.go index 5f01d0c2c64..684648e169c 100644 --- a/libbeat/processors/actions/decode_json_fields.go +++ b/libbeat/processors/actions/decode_json_fields.go @@ -52,6 +52,7 @@ var ( MaxDepth: 1, ProcessArray: false, } + errProcessingSkipped = errors.New("processing skipped") ) var debug = logp.MakeDebug("filters") @@ -150,7 +151,7 @@ func unmarshal(maxDepth int, text string, fields *interface{}, processArray bool var tmp interface{} err := unmarshal(maxDepth, str, &tmp, processArray) if err != nil { - return v, false + return v, err == errProcessingSkipped } return tmp, true @@ -167,7 +168,7 @@ func unmarshal(maxDepth int, text string, fields *interface{}, processArray bool // We want to process arrays here case []interface{}: if !processArray { - break + return errProcessingSkipped } for i, v := range O { diff --git a/libbeat/processors/actions/decode_json_fields_test.go b/libbeat/processors/actions/decode_json_fields_test.go index cdfe3ff3ff4..50309652dfb 100644 --- a/libbeat/processors/actions/decode_json_fields_test.go +++ b/libbeat/processors/actions/decode_json_fields_test.go @@ -199,6 +199,53 @@ func TestTargetRootOption(t *testing.T) { assert.Equal(t, expected.String(), actual.String()) } +func TestArrayWithArraysDisabled(t *testing.T) { + input := common.MapStr{ + "msg": `{ + "arrayOfMap": "[{\"a\":\"b\"}]" + }`, + } + + testConfig, _ = common.NewConfigFrom(map[string]interface{}{ + "fields": fields, + "max_depth": 10, + "process_array": false, + }) + + actual := getActualValue(t, testConfig, input) + + expected := common.MapStr{ + "msg": common.MapStr{ + "arrayOfMap": "[{\"a\":\"b\"}]", + }, + } + + assert.Equal(t, expected.String(), actual.String()) +} +func TestArrayWithArraysEnabled(t *testing.T) { + input := common.MapStr{ + "msg": `{ + "arrayOfMap": "[{\"a\":\"b\"}]" + }`, + } + + testConfig, _ = common.NewConfigFrom(map[string]interface{}{ + "fields": fields, + "max_depth": 10, + "process_array": true, + }) + + actual := getActualValue(t, testConfig, input) + + expected := common.MapStr{ + "msg": common.MapStr{ + "arrayOfMap": []common.MapStr{common.MapStr{"a": "b"}}, + }, + } + + assert.Equal(t, expected.String(), actual.String()) +} + func getActualValue(t *testing.T, config *common.Config, input common.MapStr) common.MapStr { logp.TestingSetup() From cbd7749f5077a4ad8437ed60de78c14d822fe0ed Mon Sep 17 00:00:00 2001 From: Christoph Wurm Date: Mon, 25 Mar 2019 10:04:22 +0000 Subject: [PATCH 259/332] Remove IP fields from default_field in Elasticsearch template. (#11402) --- CHANGELOG.next.asciidoc | 1 + libbeat/template/processor.go | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 44db08ace8d..0909f2e7cdd 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -148,6 +148,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Add missing fields and test cases for libbeat add_kubernetes_metadata processor. {issue}11133[11133], {pull}11134[11134] - decode_json_field: do not process arrays when flag not set. {pull}11318[11318] - Report faulting file when config reload fails. {pull}[11304]11304 +- Remove IP fields from default_field in Elasticsearch template. *Auditbeat* diff --git a/libbeat/template/processor.go b/libbeat/template/processor.go index 4d316c52892..72dae2a6eae 100644 --- a/libbeat/template/processor.go +++ b/libbeat/template/processor.go @@ -102,7 +102,7 @@ func (p *Processor) Process(fields mapping.Fields, path string, output common.Ma } switch field.Type { - case "", "keyword", "text", "ip": + case "", "keyword", "text": addToDefaultFields(&field) } From aed1b61d1f526a5a724f05cc9c3ed3a46a03e29e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Berfin=20Sar=C4=B1?= Date: Mon, 25 Mar 2019 15:43:18 +0300 Subject: [PATCH 260/332] migrate couchdb module to ReporterV2 error (#11411) --- metricbeat/module/couchdb/server/server.go | 13 +++++-------- .../couchdb/server/server_integration_test.go | 10 +++++----- metricbeat/module/couchdb/server/server_test.go | 8 ++++---- 3 files changed, 14 insertions(+), 17 deletions(-) diff --git a/metricbeat/module/couchdb/server/server.go b/metricbeat/module/couchdb/server/server.go index a3f4200493e..216bbee3f35 100644 --- a/metricbeat/module/couchdb/server/server.go +++ b/metricbeat/module/couchdb/server/server.go @@ -18,8 +18,9 @@ package server import ( + "github.com/pkg/errors" + "github.com/elastic/beats/libbeat/common/cfgwarn" - "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" @@ -37,8 +38,6 @@ var ( }.Build() ) -var logger = logp.NewLogger("couchdb.server") - func init() { mb.Registry.MustAddMetricSet("couchdb", "server", New, mb.WithHostParser(hostParser), @@ -74,16 +73,14 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // Fetch methods implements the data gathering and data conversion to the right // format. It publishes the event which is then forwarded to the output. In case // of an error set the Error field of mb.Event or simply call report.Error(). -func (m *MetricSet) Fetch(reporter mb.ReporterV2) { +func (m *MetricSet) Fetch(reporter mb.ReporterV2) error { content, err := m.http.FetchContent() if err != nil { - logger.Error(err) - reporter.Error(err) - return + return errors.Wrap(err, "error in http fetch") } event, _ := eventMapping(content) reporter.Event(mb.Event{MetricSetFields: event}) - return + return nil } diff --git a/metricbeat/module/couchdb/server/server_integration_test.go b/metricbeat/module/couchdb/server/server_integration_test.go index d1b806ea17f..bb00bdb87e7 100644 --- a/metricbeat/module/couchdb/server/server_integration_test.go +++ b/metricbeat/module/couchdb/server/server_integration_test.go @@ -32,8 +32,8 @@ import ( func TestFetch(t *testing.T) { compose.EnsureUp(t, "couchdb") - f := mbtest.NewReportingMetricSetV2(t, getConfig()) - events, errs := mbtest.ReportingFetchV2(f) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig()) + events, errs := mbtest.ReportingFetchV2Error(f) if len(errs) > 0 { t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } @@ -45,14 +45,14 @@ func TestFetch(t *testing.T) { func TestData(t *testing.T) { compose.EnsureUp(t, "couchdb") - f := mbtest.NewReportingMetricSetV2(t, getConfig()) - events, errs := mbtest.ReportingFetchV2(f) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig()) + events, errs := mbtest.ReportingFetchV2Error(f) if len(errs) > 0 { t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } assert.NotEmpty(t, events) - if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { + if err := mbtest.WriteEventsReporterV2Error(f, t, ""); err != nil { t.Fatal("write", err) } } diff --git a/metricbeat/module/couchdb/server/server_test.go b/metricbeat/module/couchdb/server/server_test.go index b012d09e3e9..dd13ee45bed 100644 --- a/metricbeat/module/couchdb/server/server_test.go +++ b/metricbeat/module/couchdb/server/server_test.go @@ -50,8 +50,8 @@ func TestFetchEventContent(t *testing.T) { "metricsets": []string{"server"}, "hosts": []string{server.URL}, } - f := mbtest.NewReportingMetricSetV2(t, config) - events, errs := mbtest.ReportingFetchV2(f) + f := mbtest.NewReportingMetricSetV2Error(t, config) + events, errs := mbtest.ReportingFetchV2Error(f) if len(errs) > 0 { t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } @@ -81,10 +81,10 @@ func TestFetchTimeout(t *testing.T) { "timeout": "50ms", } - f := mbtest.NewReportingMetricSetV2(t, config) + f := mbtest.NewReportingMetricSetV2Error(t, config) start := time.Now() - events, errs := mbtest.ReportingFetchV2(f) + events, errs := mbtest.ReportingFetchV2Error(f) if len(errs) == 0 { t.Fatalf("Expected an error, had %d. %v\n", len(errs), errs) } From 06f0b951e1e5b04d2a81fa0bb03f44cc5e647fd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Berfin=20Sar=C4=B1?= Date: Mon, 25 Mar 2019 15:44:06 +0300 Subject: [PATCH 261/332] migrate etcd module to ReporterV2 error (#11413) --- metricbeat/module/etcd/leader/leader.go | 12 +++++------- .../module/etcd/leader/leader_integration_test.go | 10 +++++----- metricbeat/module/etcd/leader/leader_test.go | 4 ++-- metricbeat/module/etcd/self/self.go | 13 ++++++------- .../module/etcd/self/self_integration_test.go | 10 +++++----- metricbeat/module/etcd/self/self_test.go | 4 ++-- metricbeat/module/etcd/store/store.go | 13 ++++++------- .../module/etcd/store/store_integration_test.go | 10 +++++----- metricbeat/module/etcd/store/store_test.go | 4 ++-- 9 files changed, 38 insertions(+), 42 deletions(-) diff --git a/metricbeat/module/etcd/leader/leader.go b/metricbeat/module/etcd/leader/leader.go index ec5ee1f1394..1bd7a3a910d 100644 --- a/metricbeat/module/etcd/leader/leader.go +++ b/metricbeat/module/etcd/leader/leader.go @@ -18,7 +18,8 @@ package leader import ( - "github.com/elastic/beats/libbeat/logp" + "github.com/pkg/errors" + "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" @@ -36,8 +37,6 @@ var ( }.Build() ) -var logger = logp.NewLogger("etcd.leader") - func init() { mb.Registry.MustAddMetricSet("etcd", "leader", New, mb.WithHostParser(hostParser), @@ -69,15 +68,14 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // Fetch methods implements the data gathering and data conversion to the right // format. It publishes the event which is then forwarded to the output. In case // of an error set the Error field of mb.Event or simply call report.Error(). -func (m *MetricSet) Fetch(reporter mb.ReporterV2) { +func (m *MetricSet) Fetch(reporter mb.ReporterV2) error { content, err := m.http.FetchContent() if err != nil { - logger.Error(err) - reporter.Error(err) - return + return errors.Wrap(err, "error in http fetch") } reporter.Event(mb.Event{ MetricSetFields: eventMapping(content), }) + return nil } diff --git a/metricbeat/module/etcd/leader/leader_integration_test.go b/metricbeat/module/etcd/leader/leader_integration_test.go index f9cfe680796..e7a069a9567 100644 --- a/metricbeat/module/etcd/leader/leader_integration_test.go +++ b/metricbeat/module/etcd/leader/leader_integration_test.go @@ -36,8 +36,8 @@ func TestFetch(t *testing.T) { compose.EnsureUp(t, "etcd") - f := mbtest.NewReportingMetricSetV2(t, getConfig()) - events, errs := mbtest.ReportingFetchV2(f) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig()) + events, errs := mbtest.ReportingFetchV2Error(f) if len(errs) > 0 { t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } @@ -48,14 +48,14 @@ func TestFetch(t *testing.T) { func TestData(t *testing.T) { compose.EnsureUp(t, "etcd") - f := mbtest.NewReportingMetricSetV2(t, getConfig()) - events, errs := mbtest.ReportingFetchV2(f) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig()) + events, errs := mbtest.ReportingFetchV2Error(f) if len(errs) > 0 { t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } assert.NotEmpty(t, events) - if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { + if err := mbtest.WriteEventsReporterV2Error(f, t, ""); err != nil { t.Fatal("write", err) } } diff --git a/metricbeat/module/etcd/leader/leader_test.go b/metricbeat/module/etcd/leader/leader_test.go index fd3377fd796..990c0bca43f 100644 --- a/metricbeat/module/etcd/leader/leader_test.go +++ b/metricbeat/module/etcd/leader/leader_test.go @@ -57,8 +57,8 @@ func TestFetchEventContent(t *testing.T) { "hosts": []string{server.URL}, } - f := mbtest.NewReportingMetricSetV2(t, config) - events, errs := mbtest.ReportingFetchV2(f) + f := mbtest.NewReportingMetricSetV2Error(t, config) + events, errs := mbtest.ReportingFetchV2Error(f) if len(errs) > 0 { t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } diff --git a/metricbeat/module/etcd/self/self.go b/metricbeat/module/etcd/self/self.go index 65f84356538..179208a9b2d 100644 --- a/metricbeat/module/etcd/self/self.go +++ b/metricbeat/module/etcd/self/self.go @@ -18,7 +18,8 @@ package self import ( - "github.com/elastic/beats/libbeat/logp" + "github.com/pkg/errors" + "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" @@ -43,8 +44,6 @@ func init() { ) } -var logger = logp.NewLogger("etcd.self") - type MetricSet struct { mb.BaseMetricSet http *helper.HTTP @@ -70,15 +69,15 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // Fetch methods implements the data gathering and data conversion to the right // format. It publishes the event which is then forwarded to the output. In case // of an error set the Error field of mb.Event or simply call report.Error(). -func (m *MetricSet) Fetch(reporter mb.ReporterV2) { +func (m *MetricSet) Fetch(reporter mb.ReporterV2) error { content, err := m.http.FetchContent() if err != nil { - logger.Error(err) - reporter.Error(err) - return + return errors.Wrap(err, "error in http fetch") } reporter.Event(mb.Event{ MetricSetFields: eventMapping(content), }) + + return nil } diff --git a/metricbeat/module/etcd/self/self_integration_test.go b/metricbeat/module/etcd/self/self_integration_test.go index 90e0b77b41e..3bf00e37145 100644 --- a/metricbeat/module/etcd/self/self_integration_test.go +++ b/metricbeat/module/etcd/self/self_integration_test.go @@ -32,8 +32,8 @@ import ( func TestFetch(t *testing.T) { compose.EnsureUp(t, "etcd") - f := mbtest.NewReportingMetricSetV2(t, getConfig()) - events, errs := mbtest.ReportingFetchV2(f) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig()) + events, errs := mbtest.ReportingFetchV2Error(f) if len(errs) > 0 { t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } @@ -45,14 +45,14 @@ func TestFetch(t *testing.T) { func TestData(t *testing.T) { compose.EnsureUp(t, "etcd") - f := mbtest.NewReportingMetricSetV2(t, getConfig()) - events, errs := mbtest.ReportingFetchV2(f) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig()) + events, errs := mbtest.ReportingFetchV2Error(f) if len(errs) > 0 { t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } assert.NotEmpty(t, events) - if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { + if err := mbtest.WriteEventsReporterV2Error(f, t, ""); err != nil { t.Fatal("write", err) } } diff --git a/metricbeat/module/etcd/self/self_test.go b/metricbeat/module/etcd/self/self_test.go index ec69fc10acb..2640107659c 100644 --- a/metricbeat/module/etcd/self/self_test.go +++ b/metricbeat/module/etcd/self/self_test.go @@ -56,8 +56,8 @@ func TestFetchEventContent(t *testing.T) { "metricsets": []string{"self"}, "hosts": []string{server.URL}, } - f := mbtest.NewReportingMetricSetV2(t, config) - events, errs := mbtest.ReportingFetchV2(f) + f := mbtest.NewReportingMetricSetV2Error(t, config) + events, errs := mbtest.ReportingFetchV2Error(f) if len(errs) > 0 { t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } diff --git a/metricbeat/module/etcd/store/store.go b/metricbeat/module/etcd/store/store.go index 7c86c258cea..4fff19e00e0 100644 --- a/metricbeat/module/etcd/store/store.go +++ b/metricbeat/module/etcd/store/store.go @@ -18,7 +18,8 @@ package store import ( - "github.com/elastic/beats/libbeat/logp" + "github.com/pkg/errors" + "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" @@ -36,8 +37,6 @@ var ( }.Build() ) -var logger = logp.NewLogger("etcd.store") - func init() { mb.Registry.MustAddMetricSet("etcd", "store", New, mb.WithHostParser(hostParser), @@ -69,15 +68,15 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // Fetch methods implements the data gathering and data conversion to the right // format. It publishes the event which is then forwarded to the output. In case // of an error set the Error field of mb.Event or simply call report.Error(). -func (m *MetricSet) Fetch(reporter mb.ReporterV2) { +func (m *MetricSet) Fetch(reporter mb.ReporterV2) error { content, err := m.http.FetchContent() if err != nil { - logger.Error(err) - reporter.Error(err) - return + return errors.Wrap(err, "error in http fetch") } reporter.Event(mb.Event{ MetricSetFields: eventMapping(content), }) + + return nil } diff --git a/metricbeat/module/etcd/store/store_integration_test.go b/metricbeat/module/etcd/store/store_integration_test.go index 932ed5d4925..fcea89e6616 100644 --- a/metricbeat/module/etcd/store/store_integration_test.go +++ b/metricbeat/module/etcd/store/store_integration_test.go @@ -34,8 +34,8 @@ func TestFetch(t *testing.T) { logp.TestingSetup() compose.EnsureUp(t, "etcd") - f := mbtest.NewReportingMetricSetV2(t, getConfig()) - events, errs := mbtest.ReportingFetchV2(f) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig()) + events, errs := mbtest.ReportingFetchV2Error(f) if len(errs) > 0 { t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } @@ -45,14 +45,14 @@ func TestFetch(t *testing.T) { func TestData(t *testing.T) { compose.EnsureUp(t, "etcd") - f := mbtest.NewReportingMetricSetV2(t, getConfig()) - events, errs := mbtest.ReportingFetchV2(f) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig()) + events, errs := mbtest.ReportingFetchV2Error(f) if len(errs) > 0 { t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } assert.NotEmpty(t, events) - if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { + if err := mbtest.WriteEventsReporterV2Error(f, t, ""); err != nil { t.Fatal("write", err) } } diff --git a/metricbeat/module/etcd/store/store_test.go b/metricbeat/module/etcd/store/store_test.go index 511d50c41bd..7d0353280fc 100644 --- a/metricbeat/module/etcd/store/store_test.go +++ b/metricbeat/module/etcd/store/store_test.go @@ -60,8 +60,8 @@ func TestFetchEventContent(t *testing.T) { "hosts": []string{server.URL}, } - f := mbtest.NewReportingMetricSetV2(t, config) - events, errs := mbtest.ReportingFetchV2(f) + f := mbtest.NewReportingMetricSetV2Error(t, config) + events, errs := mbtest.ReportingFetchV2Error(f) if len(errs) > 0 { t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } From 32056e49442ee5609a33a9b4bca3e4a39598dbe1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Berfin=20Sar=C4=B1?= Date: Mon, 25 Mar 2019 15:44:28 +0300 Subject: [PATCH 262/332] migrate memcached module to ReporterV2 error (#11415) --- metricbeat/module/memcached/stats/stats.go | 16 +++++----------- .../memcached/stats/stats_integration_test.go | 10 +++++----- 2 files changed, 10 insertions(+), 16 deletions(-) diff --git a/metricbeat/module/memcached/stats/stats.go b/metricbeat/module/memcached/stats/stats.go index 398fc890e35..be66dfc3e68 100644 --- a/metricbeat/module/memcached/stats/stats.go +++ b/metricbeat/module/memcached/stats/stats.go @@ -22,13 +22,11 @@ import ( "net" "strings" - "github.com/elastic/beats/libbeat/logp" + "github.com/pkg/errors" "github.com/elastic/beats/metricbeat/mb" ) -var logger = logp.NewLogger("memcached.stats") - func init() { mb.Registry.MustAddMetricSet("memcached", "stats", New, mb.DefaultMetricSet(), @@ -48,20 +46,16 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // Fetch methods implements the data gathering and data conversion to the right // format. It publishes the event which is then forwarded to the output. In case // of an error set the Error field of mb.Event or simply call report.Error(). -func (m *MetricSet) Fetch(reporter mb.ReporterV2) { +func (m *MetricSet) Fetch(reporter mb.ReporterV2) error { conn, err := net.DialTimeout("tcp", m.Host(), m.Module().Config().Timeout) if err != nil { - logger.Error(err) - reporter.Error(err) - return + return errors.Wrap(err, "error in fetch") } defer conn.Close() _, err = conn.Write([]byte("stats\n")) if err != nil { - logger.Error(err) - reporter.Error(err) - return + return errors.Wrap(err, "error in connection") } scanner := bufio.NewScanner(conn) @@ -85,5 +79,5 @@ func (m *MetricSet) Fetch(reporter mb.ReporterV2) { reporter.Event(mb.Event{MetricSetFields: event}) - return + return nil } diff --git a/metricbeat/module/memcached/stats/stats_integration_test.go b/metricbeat/module/memcached/stats/stats_integration_test.go index 40a0a1e6ffc..9ac77eb4eef 100644 --- a/metricbeat/module/memcached/stats/stats_integration_test.go +++ b/metricbeat/module/memcached/stats/stats_integration_test.go @@ -32,14 +32,14 @@ import ( func TestData(t *testing.T) { compose.EnsureUp(t, "memcached") - f := mbtest.NewReportingMetricSetV2(t, getConfig()) - events, errs := mbtest.ReportingFetchV2(f) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig()) + events, errs := mbtest.ReportingFetchV2Error(f) if len(errs) > 0 { t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } assert.NotEmpty(t, events) - if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { + if err := mbtest.WriteEventsReporterV2Error(f, t, ""); err != nil { t.Fatal("write", err) } } @@ -47,8 +47,8 @@ func TestData(t *testing.T) { func TestFetch(t *testing.T) { compose.EnsureUp(t, "memcached") - f := mbtest.NewReportingMetricSetV2(t, getConfig()) - events, errs := mbtest.ReportingFetchV2(f) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig()) + events, errs := mbtest.ReportingFetchV2Error(f) if len(errs) > 0 { t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } From e7758da8a51c836aa8b51363f69e072367027839 Mon Sep 17 00:00:00 2001 From: Alex K <8418476+fearful-symmetry@users.noreply.github.com> Date: Mon, 25 Mar 2019 08:03:34 -0500 Subject: [PATCH 263/332] move couchbase module to ReporterV2 error (#11396) --- metricbeat/module/couchbase/bucket/bucket.go | 13 +++++-------- .../couchbase/bucket/bucket_integration_test.go | 10 +++++----- metricbeat/module/couchbase/bucket/bucket_test.go | 4 ++-- metricbeat/module/couchbase/cluster/cluster.go | 13 ++++++------- .../couchbase/cluster/cluster_integration_test.go | 4 ++-- metricbeat/module/couchbase/node/node.go | 13 +++++-------- .../module/couchbase/node/node_integration_test.go | 4 ++-- 7 files changed, 27 insertions(+), 34 deletions(-) diff --git a/metricbeat/module/couchbase/bucket/bucket.go b/metricbeat/module/couchbase/bucket/bucket.go index 03b36fd2359..3f06a9760f7 100644 --- a/metricbeat/module/couchbase/bucket/bucket.go +++ b/metricbeat/module/couchbase/bucket/bucket.go @@ -18,7 +18,8 @@ package bucket import ( - "github.com/elastic/beats/libbeat/logp" + "github.com/pkg/errors" + "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" @@ -36,8 +37,6 @@ var ( }.Build() ) -var logger = logp.NewLogger("couchbase.bucket") - // init registers the MetricSet with the central registry. // The New method will be called after the setup of the module and before starting to fetch data func init() { @@ -68,12 +67,10 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // Fetch methods implements the data gathering and data conversion to the right // format. It publishes the event which is then forwarded to the output. In case // of an error set the Error field of mb.Event or simply call report.Error(). -func (m *MetricSet) Fetch(reporter mb.ReporterV2) { +func (m *MetricSet) Fetch(reporter mb.ReporterV2) error { content, err := m.http.FetchContent() if err != nil { - logger.Error(err) - reporter.Error(err) - return + return errors.Wrap(err, "error in fetch") } events := eventsMapping(content) @@ -81,5 +78,5 @@ func (m *MetricSet) Fetch(reporter mb.ReporterV2) { reporter.Event(mb.Event{MetricSetFields: event}) } - return + return nil } diff --git a/metricbeat/module/couchbase/bucket/bucket_integration_test.go b/metricbeat/module/couchbase/bucket/bucket_integration_test.go index 5317e513ccf..3c80bbcc980 100644 --- a/metricbeat/module/couchbase/bucket/bucket_integration_test.go +++ b/metricbeat/module/couchbase/bucket/bucket_integration_test.go @@ -32,8 +32,8 @@ import ( func TestFetch(t *testing.T) { compose.EnsureUp(t, "couchbase") - f := mbtest.NewReportingMetricSetV2(t, getConfig()) - events, errs := mbtest.ReportingFetchV2(f) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig()) + events, errs := mbtest.ReportingFetchV2Error(f) if len(errs) > 0 { t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } @@ -45,14 +45,14 @@ func TestFetch(t *testing.T) { func TestData(t *testing.T) { compose.EnsureUp(t, "couchbase") - f := mbtest.NewReportingMetricSetV2(t, getConfig()) - events, errs := mbtest.ReportingFetchV2(f) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig()) + events, errs := mbtest.ReportingFetchV2Error(f) if len(errs) > 0 { t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } assert.NotEmpty(t, events) - if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { + if err := mbtest.WriteEventsReporterV2Error(f, t, ""); err != nil { t.Fatal("write", err) } } diff --git a/metricbeat/module/couchbase/bucket/bucket_test.go b/metricbeat/module/couchbase/bucket/bucket_test.go index 9ef8ddbb82a..62934d6472b 100644 --- a/metricbeat/module/couchbase/bucket/bucket_test.go +++ b/metricbeat/module/couchbase/bucket/bucket_test.go @@ -53,8 +53,8 @@ func TestFetchEventContents(t *testing.T) { "hosts": []string{server.URL}, } - f := mbtest.NewReportingMetricSetV2(t, config) - events, errs := mbtest.ReportingFetchV2(f) + f := mbtest.NewReportingMetricSetV2Error(t, config) + events, errs := mbtest.ReportingFetchV2Error(f) if len(errs) > 0 { t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } diff --git a/metricbeat/module/couchbase/cluster/cluster.go b/metricbeat/module/couchbase/cluster/cluster.go index 735ef159930..556b3766982 100644 --- a/metricbeat/module/couchbase/cluster/cluster.go +++ b/metricbeat/module/couchbase/cluster/cluster.go @@ -18,7 +18,8 @@ package cluster import ( - "github.com/elastic/beats/libbeat/logp" + "github.com/pkg/errors" + "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" @@ -36,8 +37,6 @@ var ( }.Build() ) -var logger = logp.NewLogger("couchbase.cluster") - // init registers the MetricSet with the central registry. // The New method will be called after the setup of the module and before starting to fetch data func init() { @@ -68,15 +67,15 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // Fetch methods implements the data gathering and data conversion to the right // format. It publishes the event which is then forwarded to the output. In case // of an error set the Error field of mb.Event or simply call report.Error(). -func (m *MetricSet) Fetch(reporter mb.ReporterV2) { +func (m *MetricSet) Fetch(reporter mb.ReporterV2) error { content, err := m.http.FetchContent() if err != nil { - logger.Error(err) - reporter.Error(err) - return + return errors.Wrap(err, "error in fetch") } reporter.Event(mb.Event{ MetricSetFields: eventMapping(content), }) + + return nil } diff --git a/metricbeat/module/couchbase/cluster/cluster_integration_test.go b/metricbeat/module/couchbase/cluster/cluster_integration_test.go index dd1812388a5..4e4060646a6 100644 --- a/metricbeat/module/couchbase/cluster/cluster_integration_test.go +++ b/metricbeat/module/couchbase/cluster/cluster_integration_test.go @@ -32,8 +32,8 @@ import ( func TestFetch(t *testing.T) { compose.EnsureUp(t, "couchbase") - f := mbtest.NewReportingMetricSetV2(t, getConfig()) - events, errs := mbtest.ReportingFetchV2(f) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig()) + events, errs := mbtest.ReportingFetchV2Error(f) if len(errs) > 0 { t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } diff --git a/metricbeat/module/couchbase/node/node.go b/metricbeat/module/couchbase/node/node.go index 84a0dad9fd9..5ad637aa8b4 100644 --- a/metricbeat/module/couchbase/node/node.go +++ b/metricbeat/module/couchbase/node/node.go @@ -18,7 +18,8 @@ package node import ( - "github.com/elastic/beats/libbeat/logp" + "github.com/pkg/errors" + "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" @@ -36,8 +37,6 @@ var ( }.Build() ) -var logger = logp.NewLogger("couchbase.node") - // init registers the MetricSet with the central registry. // The New method will be called after the setup of the module and before starting to fetch data func init() { @@ -68,12 +67,10 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // Fetch methods implements the data gathering and data conversion to the right // format. It publishes the event which is then forwarded to the output. In case // of an error set the Error field of mb.Event or simply call report.Error(). -func (m *MetricSet) Fetch(reporter mb.ReporterV2) { +func (m *MetricSet) Fetch(reporter mb.ReporterV2) error { content, err := m.http.FetchContent() if err != nil { - logger.Error(err) - reporter.Error(err) - return + return errors.Wrap(err, "error in fetch") } events := eventsMapping(content) @@ -81,5 +78,5 @@ func (m *MetricSet) Fetch(reporter mb.ReporterV2) { reporter.Event(mb.Event{MetricSetFields: event}) } - return + return nil } diff --git a/metricbeat/module/couchbase/node/node_integration_test.go b/metricbeat/module/couchbase/node/node_integration_test.go index 3612e63238a..fb55a8a91c4 100644 --- a/metricbeat/module/couchbase/node/node_integration_test.go +++ b/metricbeat/module/couchbase/node/node_integration_test.go @@ -32,8 +32,8 @@ import ( func TestFetch(t *testing.T) { compose.EnsureUp(t, "couchbase") - f := mbtest.NewReportingMetricSetV2(t, getConfig()) - events, errs := mbtest.ReportingFetchV2(f) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig()) + events, errs := mbtest.ReportingFetchV2Error(f) if len(errs) > 0 { t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } From 65a20db3b77c43bec6e2808d024856f00dda7ca1 Mon Sep 17 00:00:00 2001 From: Alex K <8418476+fearful-symmetry@users.noreply.github.com> Date: Mon, 25 Mar 2019 08:10:29 -0500 Subject: [PATCH 264/332] [metricbeat] Migrate vsphere/datastore to ReporterV2 (#11401) * migrate vsphere/datastore to ReporterV2 --- .../module/vsphere/datastore/datastore.go | 23 ++++++++++++------- .../vsphere/datastore/datastore_test.go | 16 +++++++------ 2 files changed, 24 insertions(+), 15 deletions(-) diff --git a/metricbeat/module/vsphere/datastore/datastore.go b/metricbeat/module/vsphere/datastore/datastore.go index b9772ecbb83..55d24b3ed8d 100644 --- a/metricbeat/module/vsphere/datastore/datastore.go +++ b/metricbeat/module/vsphere/datastore/datastore.go @@ -21,6 +21,8 @@ import ( "context" "net/url" + "github.com/pkg/errors" + "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/common/cfgwarn" "github.com/elastic/beats/metricbeat/mb" @@ -36,12 +38,14 @@ func init() { ) } +// MetricSet type defines all fields of the MetricSet type MetricSet struct { mb.BaseMetricSet HostURL *url.URL Insecure bool } +// New create a new instance of the MetricSet func New(base mb.BaseMetricSet) (mb.MetricSet, error) { cfgwarn.Beta("The vsphere datastore metricset is beta") @@ -69,16 +73,17 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { }, nil } -func (m *MetricSet) Fetch() ([]common.MapStr, error) { +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(reporter mb.ReporterV2) error { ctx, cancel := context.WithCancel(context.Background()) defer cancel() - var events []common.MapStr - client, err := govmomi.NewClient(ctx, m.HostURL, m.Insecure) if err != nil { - return nil, err + return errors.Wrap(err, "error in NewClient") } defer client.Logout(ctx) @@ -90,7 +95,7 @@ func (m *MetricSet) Fetch() ([]common.MapStr, error) { v, err := mgr.CreateContainerView(ctx, c.ServiceContent.RootFolder, []string{"Datastore"}, true) if err != nil { - return nil, err + return errors.Wrap(err, "error in CreateContainerView") } defer v.Destroy(ctx) @@ -99,7 +104,7 @@ func (m *MetricSet) Fetch() ([]common.MapStr, error) { var dst []mo.Datastore err = v.Retrieve(ctx, []string{"Datastore"}, []string{"summary"}, &dst) if err != nil { - return nil, err + return errors.Wrap(err, "error in Retrieve") } for _, ds := range dst { @@ -126,8 +131,10 @@ func (m *MetricSet) Fetch() ([]common.MapStr, error) { }, } - events = append(events, event) + reporter.Event(mb.Event{ + MetricSetFields: event, + }) } - return events, nil + return nil } diff --git a/metricbeat/module/vsphere/datastore/datastore_test.go b/metricbeat/module/vsphere/datastore/datastore_test.go index 9e2589a2438..22de33f0386 100644 --- a/metricbeat/module/vsphere/datastore/datastore_test.go +++ b/metricbeat/module/vsphere/datastore/datastore_test.go @@ -35,13 +35,15 @@ func TestFetchEventContents(t *testing.T) { ts := model.Service.NewServer() defer ts.Close() - f := mbtest.NewEventsFetcher(t, getConfig(ts)) - events, err := f.Fetch() - if err != nil { - t.Fatal("fetch error", err) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig(ts)) + events, errs := mbtest.ReportingFetchV2Error(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } - event := events[0] + assert.NotEmpty(t, events) + + event := events[0].MetricSetFields t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event.StringToPrint()) @@ -83,9 +85,9 @@ func TestData(t *testing.T) { ts := model.Service.NewServer() defer ts.Close() - f := mbtest.NewEventsFetcher(t, getConfig(ts)) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig(ts)) - if err := mbtest.WriteEvents(f, t); err != nil { + if err := mbtest.WriteEventsReporterV2Error(f, t, ""); err != nil { t.Fatal("write", err) } } From 4267241180493228917c07271bcc2d94b2dab42c Mon Sep 17 00:00:00 2001 From: Pablo Mercado Date: Mon, 25 Mar 2019 16:26:40 +0100 Subject: [PATCH 265/332] Add Namespace to prometheus helper mappings (#11424) Add Namespace to prometheus helper mappings --- CHANGELOG-developer.next.asciidoc | 1 + metricbeat/helper/prometheus/prometheus.go | 10 ++++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/CHANGELOG-developer.next.asciidoc b/CHANGELOG-developer.next.asciidoc index 0e01df75470..dd7e81c82d7 100644 --- a/CHANGELOG-developer.next.asciidoc +++ b/CHANGELOG-developer.next.asciidoc @@ -39,3 +39,4 @@ The list below covers the major changes between 7.0.0-beta1 and master only. - Filebeat modules can now use ingest pipelines in YAML format. {pull}11209[11209] - Added support for using PYTHON_EXE to control what Python interpreter is used by `make` and `mage`. Example: `export PYTHON_EXE=python2.7`. {pull}11212[11212] +- Prometheus helper for metricbeat contains now `Namespace` field for `prometheus.MetricsMappings` {pull}11424[11424] diff --git a/metricbeat/helper/prometheus/prometheus.go b/metricbeat/helper/prometheus/prometheus.go index 27456b09f4b..62404e795d4 100644 --- a/metricbeat/helper/prometheus/prometheus.go +++ b/metricbeat/helper/prometheus/prometheus.go @@ -93,9 +93,12 @@ func (p *prometheus) GetFamilies() ([]*dto.MetricFamily, error) { // MetricsMapping defines mapping settings for Prometheus metrics, to be used with `GetProcessedMetrics` type MetricsMapping struct { - // Metrics translates from from prometheus metric name to Metricbeat fields + // Metrics translates from prometheus metric name to Metricbeat fields Metrics map[string]MetricMap + // Namespace for metrics managed by this mapping + Namespace string + // Labels translate from prometheus label names to Metricbeat fields Labels map[string]LabelMap @@ -213,7 +216,10 @@ func (p *prometheus) ReportProcessedMetrics(mapping *MetricsMapping, r mb.Report return } for _, event := range events { - r.Event(mb.Event{MetricSetFields: event}) + r.Event(mb.Event{ + MetricSetFields: event, + Namespace: mapping.Namespace, + }) } } From 4ec5d138e403a363f893b08c3534860c757cfd2e Mon Sep 17 00:00:00 2001 From: Jaime Soriano Pastor Date: Mon, 25 Mar 2019 17:26:27 +0100 Subject: [PATCH 266/332] Add support to MySQL 8 extra fields in slow log (#11417) Add test files for MySQL 8, Percona 8 and MariaDB 10.3 to filebeat mysql module. Add support for MySQL 8 extra fields in slow log. Update compatibility notes. Closes #10257 --- CHANGELOG.next.asciidoc | 1 + filebeat/docs/fields.asciidoc | 124 +++++++++++++++++- filebeat/docs/modules/mysql.asciidoc | 4 +- filebeat/module/mysql/_meta/docs.asciidoc | 4 +- .../mysql/error/test/mysql-ubuntu-8.0.15.log | 12 ++ filebeat/module/mysql/fields.go | 2 +- .../module/mysql/slowlog/_meta/fields.yml | 51 ++++++- .../module/mysql/slowlog/ingest/pipeline.json | 2 +- .../mysql/slowlog/test/mariadb-10.3.13.log | 18 +++ .../slowlog/test/mysql-ubuntu-8.0.15.log | 19 +++ .../mysql-ubuntu-8.0.15.log-expected.json | 67 ++++++++++ .../slowlog/test/percona-ubuntu-8.0.15.log | 32 +++++ .../percona-ubuntu-8.0.15.log-expected.json | 73 +++++++++++ 13 files changed, 401 insertions(+), 8 deletions(-) create mode 100644 filebeat/module/mysql/error/test/mysql-ubuntu-8.0.15.log create mode 100644 filebeat/module/mysql/slowlog/test/mariadb-10.3.13.log create mode 100644 filebeat/module/mysql/slowlog/test/mysql-ubuntu-8.0.15.log create mode 100644 filebeat/module/mysql/slowlog/test/mysql-ubuntu-8.0.15.log-expected.json create mode 100644 filebeat/module/mysql/slowlog/test/percona-ubuntu-8.0.15.log create mode 100644 filebeat/module/mysql/slowlog/test/percona-ubuntu-8.0.15.log-expected.json diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 0909f2e7cdd..7bdff1ed2ab 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -308,6 +308,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Add the `network.community_id` flow identifier to field to the IPTables, Suricata, and Zeek modules. {pull}11005[11005] - Add support for loading custom NetFlow and IPFIX field definitions to netflow input. {pull}10945[10945] - Added categorization fields for SSH login events in the system/auth fileset. {pull}11334[11334] +- Add support for MySQL 8.0 slow logs and tests also for Percona 8.0 and MariaDB 10.3. {pull}11417[11417] *Heartbeat* diff --git a/filebeat/docs/fields.asciidoc b/filebeat/docs/fields.asciidoc index aec1f328044..72fbb9982b2 100644 --- a/filebeat/docs/fields.asciidoc +++ b/filebeat/docs/fields.asciidoc @@ -7273,7 +7273,19 @@ type: long format: bytes -The size of the query result. +The number of bytes sent to client. + + +-- + +*`mysql.slowlog.bytes_received`*:: ++ +-- +type: long + +format: bytes + +The number of bytes received from client. -- @@ -7454,6 +7466,46 @@ type: long Number of merge passes executed for the query. +-- + +*`mysql.slowlog.sort_merge_passes`*:: ++ +-- +type: long + +Number of merge passes that the sort algorithm has had to do. + + +-- + +*`mysql.slowlog.sort_range_count`*:: ++ +-- +type: long + +Number of sorts that were done using ranges. + + +-- + +*`mysql.slowlog.sort_rows`*:: ++ +-- +type: long + +Number of sorted rows. + + +-- + +*`mysql.slowlog.sort_scan_count`*:: ++ +-- +type: long + +Number of sorts that were done by scanning the table. + + -- *`mysql.slowlog.log_slow_rate_type`*:: @@ -7474,6 +7526,76 @@ type: keyword Slow log rate limit, a value of 100 means that one in a hundred queries or sessions are being logged. +-- + +*`mysql.slowlog.read_first`*:: ++ +-- +type: long + +The number of times the first entry in an index was read. + + +-- + +*`mysql.slowlog.read_last`*:: ++ +-- +type: long + +The number of times the last key in an index was read. + + +-- + +*`mysql.slowlog.read_key`*:: ++ +-- +type: long + +The number of requests to read a row based on a key. + + +-- + +*`mysql.slowlog.read_next`*:: ++ +-- +type: long + +The number of requests to read the next row in key order. + + +-- + +*`mysql.slowlog.read_prev`*:: ++ +-- +type: long + +The number of requests to read the previous row in key order. + + +-- + +*`mysql.slowlog.read_rnd`*:: ++ +-- +type: long + +The number of requests to read a row based on a fixed position. + + +-- + +*`mysql.slowlog.read_rnd_next`*:: ++ +-- +type: long + +The number of requests to read the next row in the data file. + + -- [float] diff --git a/filebeat/docs/modules/mysql.asciidoc b/filebeat/docs/modules/mysql.asciidoc index eeef90b2639..c04f8afa0b0 100644 --- a/filebeat/docs/modules/mysql.asciidoc +++ b/filebeat/docs/modules/mysql.asciidoc @@ -16,8 +16,8 @@ include::../include/what-happens.asciidoc[] [float] === Compatibility -The +{modulename}+ module was tested with logs from MySQL 5.5 and 5.7, -MariaDB 10.1 and 10.2, and Percona 5.7. +The +{modulename}+ module was tested with logs from MySQL 5.5, 5.7 and 8.0, +MariaDB 10.1, 10.2 and 10.3, and Percona 5.7 and 8.0. On Windows, the module was tested with MySQL installed from the Chocolatey repository. diff --git a/filebeat/module/mysql/_meta/docs.asciidoc b/filebeat/module/mysql/_meta/docs.asciidoc index 2737f441839..1ad7b8bd560 100644 --- a/filebeat/module/mysql/_meta/docs.asciidoc +++ b/filebeat/module/mysql/_meta/docs.asciidoc @@ -11,8 +11,8 @@ include::../include/what-happens.asciidoc[] [float] === Compatibility -The +{modulename}+ module was tested with logs from MySQL 5.5 and 5.7, -MariaDB 10.1 and 10.2, and Percona 5.7. +The +{modulename}+ module was tested with logs from MySQL 5.5, 5.7 and 8.0, +MariaDB 10.1, 10.2 and 10.3, and Percona 5.7 and 8.0. On Windows, the module was tested with MySQL installed from the Chocolatey repository. diff --git a/filebeat/module/mysql/error/test/mysql-ubuntu-8.0.15.log b/filebeat/module/mysql/error/test/mysql-ubuntu-8.0.15.log new file mode 100644 index 00000000000..3b05f21997b --- /dev/null +++ b/filebeat/module/mysql/error/test/mysql-ubuntu-8.0.15.log @@ -0,0 +1,12 @@ +2019-03-24T13:44:25.484123Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.15) initializing of server in progress as process 1640 +2019-03-24T13:44:27.924508Z 5 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option. +2019-03-24T13:44:29.065309Z 0 [System] [MY-013170] [Server] /usr/sbin/mysqld (mysqld 8.0.15) initializing of server has completed +2019-03-24T13:44:31.085670Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.15) starting as process 1688 +2019-03-24T13:44:31.533096Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed. +2019-03-24T13:44:31.534587Z 0 [Warning] [MY-011810] [Server] Insecure configuration for --pid-file: Location '/tmp' in the path is accessible to all OS users. Consider choosing a different directory. +2019-03-24T13:44:31.555406Z 6 [System] [MY-013172] [Server] Received SHUTDOWN from user boot. Shutting down mysqld (Version: 8.0.15). +2019-03-24T13:44:33.236624Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.15) MySQL Community Server - GPL. +2019-03-24T13:44:34.072713Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.15) starting as process 1834 +2019-03-24T13:44:34.406962Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed. +2019-03-24T13:44:34.420123Z 0 [System] [MY-010931] [Server] /usr/sbin/mysqld: ready for connections. Version: '8.0.15' socket: '/var/run/mysqld/mysqld.sock' port: 3306 MySQL Community Server - GPL. +2019-03-24T13:44:34.572158Z 0 [System] [MY-011323] [Server] X Plugin ready for connections. Socket: '/var/run/mysqld/mysqlx.sock' bind-address: '::' port: 33060 diff --git a/filebeat/module/mysql/fields.go b/filebeat/module/mysql/fields.go index d81d7f79f7d..0e53ab01b33 100644 --- a/filebeat/module/mysql/fields.go +++ b/filebeat/module/mysql/fields.go @@ -32,5 +32,5 @@ func init() { // AssetMysql returns asset data. // This is the base64 encoded gzipped contents of module/mysql. func AssetMysql() string { - return "eJzEmM+P27gOx+/zVxB9l/eAqdN3eHhADgtsWyy2QLvAogX26DIWbWsji64oTyb96xeSnR+N5cSZTlofCnRi8fshLVIUX8KatktotvLF3AF47Q0t4cWH7cc/37+4A1AkhdOt12yX8MsdAMAHVp0hKNlBi060rcDXBHEJGK6g1IYkuwOQmp3PC7alrpbgXUd3AKUmo2QZTb0Eiw0d5MPjty0toXLctcNfEgzh+S0agtJxMwUQnmO9Y01fO0KVa7X/Zadt2FZHf5yQD8+nmqBga6kIvwK7wSq8exvjE7C+dOS22UienGM3kj52+4L2G7YetZXBwdM4RPshGpIdLTsNxqWAHMjQaJSTX1r09fDxsqnVja4c9vzDBhgrG3ogc6Wq4SpLrZuj15AIVnStn8lVU3o7LTG8MVzd8EsHhas+tOFinXvdUCZUJINQGkZ/8ssZQBhSARvurAcuIVg/7H7YoPak9ikRAMAzrAjwAbXBlaEsWBhZfUDTEWgBbUGoYKvkHlAAe8RQe1rW1oPtmhW5LOmv443kQvbUo2S2z3S11wuuBuvgyHfOkoLVNpX0Ixp6xEZbSqfasxBJgfYKICxLKvwtgRpWutSziFZbT9d9sZJdg35YeT2q6K8Ut+1+xzqSzvg0XnzjCSIhT894/RMKrxQ1NZiUXdN2w+7U6Bw3o03Y1OT6EnDwGzYoQI9UdJ5UOghF5xxZn3dC7vm43vRWATtfk/W6wFCOgsZ9+FeFYqTIkwtJCVgUJAKt0w/aUEWSwRu0oHRZkjtU3742hZoWDKXdMSg+J+csP58z71E8HI54IbJp8bU2ZiKjnxZFVvsscYTCFnT5TZWXQfPAM51AeYFFTXmt00m+YjaE9jrCv2ryNR31XRBFIlmtJ9LZN23uwxH0/BwInpqWHbotRIlIsttxjoTNA12qhnu+nG2utKxvGS9LpALdt9gCHPa/rC8Qntappx4ff+yPjhFI4QgPvYSWRDU+xgrQP5xtCNYJ46WvGw6h2ZBzD7wR/sfdUTcvsGnoeMFid4PM3VkGbr1u9Nd4gu2z5jzN7fLjPBWgVaD903KndZqd9tv8S0fdTUrQTgGiwoE6fOidYxOB7YzJQyN5C6xgfCiKQSJyDRHc3RMudUyR72/Wt+MLxs+Twb8tg7aKHklgE3qefXDDYvlPGr0hV1HeosgNClM0Dr3xfb81NZCAb26GVR5cyx16ygPIM/aG2zYWnt11FYIGGN1ofx+yJ+yBFcFnIRHN9vOutzi8NjKpBbBtTbhUtBQ6objyHtjB5+hlNKL98JbEt2a7n9L8Dv8/pvzGoYvkEv776hU0hFbA1+iBLYVLL0LdWeVIRW492iwAvHdcAB3BisKt2HBVTfZh/4La+1aWi8Vms8lacgVbzApuFoqLxfD/l0Lugdzif9n/F0pjZVm8LmQRA0SPnqwildW+MenbjLWsVsnwnY4+ZgTvdATiyKDXoXdieGctv30NZCttT/dragxyTOnd4/jmBBc+9Aze8HxyaAX7yeC7t5MImnOXczv+sGcqwUyCQ0VosYo9uwJuqb8WSnYeKdVZXIQ615bMhH4dlvasqnNxwnM9/Aa1T0y3LvLP4Ps9prGtQl3xzOu+k0cFaMzumFDosb8oimeHFU3jOiryOJD7EcjJiVxQPxPP2DX8HDrPQNYP95MhzfsmJnRc/QBxf7yxLcbzw/Bou7PcnfkOYZNJaB+9tsX4qPl+N39tW8ePuolNdrEblEbZYeIweNw7lDqqk4V2clIyPTiK84qw+gkjo5olfShOywl3rqBMcYOjVm2OpD49LGYKjtZNid39EwAA//+S3DeD" + return "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" } diff --git a/filebeat/module/mysql/slowlog/_meta/fields.yml b/filebeat/module/mysql/slowlog/_meta/fields.yml index 8f3bb259018..fdd2d9f20e0 100644 --- a/filebeat/module/mysql/slowlog/_meta/fields.yml +++ b/filebeat/module/mysql/slowlog/_meta/fields.yml @@ -24,7 +24,12 @@ type: long format: bytes description: > - The size of the query result. + The number of bytes sent to client. + - name: bytes_received + type: long + format: bytes + description: > + The number of bytes received from client. - name: query description: > The slow query. @@ -98,6 +103,22 @@ type: long description: > Number of merge passes executed for the query. + - name: sort_merge_passes + type: long + description: > + Number of merge passes that the sort algorithm has had to do. + - name: sort_range_count + type: long + description: > + Number of sorts that were done using ranges. + - name: sort_rows + type: long + description: > + Number of sorted rows. + - name: sort_scan_count + type: long + description: > + Number of sorts that were done by scanning the table. - name: log_slow_rate_type type: keyword description: > @@ -108,6 +129,34 @@ description: > Slow log rate limit, a value of 100 means that one in a hundred queries or sessions are being logged. + - name: read_first + type: long + description: > + The number of times the first entry in an index was read. + - name: read_last + type: long + description: > + The number of times the last key in an index was read. + - name: read_key + type: long + description: > + The number of requests to read a row based on a key. + - name: read_next + type: long + description: > + The number of requests to read the next row in key order. + - name: read_prev + type: long + description: > + The number of requests to read the previous row in key order. + - name: read_rnd + type: long + description: > + The number of requests to read a row based on a fixed position. + - name: read_rnd_next + type: long + description: > + The number of requests to read the next row in the data file. # https://www.percona.com/doc/percona-server/5.7/diagnostics/slow_extended.html - name: innodb diff --git a/filebeat/module/mysql/slowlog/ingest/pipeline.json b/filebeat/module/mysql/slowlog/ingest/pipeline.json index 4849863bf05..9a3076f874f 100644 --- a/filebeat/module/mysql/slowlog/ingest/pipeline.json +++ b/filebeat/module/mysql/slowlog/ingest/pipeline.json @@ -4,7 +4,7 @@ "grok": { "field": "message", "patterns":[ - "^# User@Host: %{USER:user.name}(\\[%{USER:mysql.slowlog.current_user}\\])? @ %{HOSTNAME:source.domain}? \\[%{IP:source.ip}?\\]%{METRICSPACE}(Id:%{SPACE}%{NUMBER:mysql.thread_id:long}%{METRICSPACE})?(Thread_id:%{SPACE}%{NUMBER:mysql.thread_id}%{METRICSPACE})?(Schema:%{SPACE}%{WORD:mysql.slowlog.schema}?%{METRICSPACE})?(Last_errno: %{NUMBER:mysql.slowlog.last_errno:long}%{METRICSPACE})?(Killed: %{NUMBER:mysql.slowlog.killed:long}%{METRICSPACE})?(QC_hit: %{WORD:mysql.slowlog.query_cache_hit}%{METRICSPACE})?(Query_time: %{NUMBER:temp.duration:float}%{METRICSPACE})?(Lock_time: %{NUMBER:mysql.slowlog.lock_time.sec:float}%{METRICSPACE})?(Rows_sent: %{NUMBER:mysql.slowlog.rows_sent:long}%{METRICSPACE})?(Rows_examined: %{NUMBER:mysql.slowlog.rows_examined:long}%{METRICSPACE})?(Rows_affected: %{NUMBER:mysql.slowlog.rows_affected:long}%{METRICSPACE})?(Bytes_sent: %{NUMBER:mysql.slowlog.bytes_sent:long}%{METRICSPACE})?(Tmp_tables: %{NUMBER:mysql.slowlog.tmp_tables:long}%{METRICSPACE})?(Tmp_disk_tables: %{NUMBER:mysql.slowlog.tmp_disk_tables}%{METRICSPACE})?(Tmp_table_sizes: %{NUMBER:mysql.slowlog.tmp_table_sizes:long}%{METRICSPACE})?(InnoDB_trx_id: %{WORD:mysql.slowlog.innodb.trx_id}%{METRICSPACE})?(QC_Hit: %{WORD:mysql.slowlog.query_cache_hit}%{METRICSPACE})?(Full_scan: %{WORD:mysql.slowlog.full_scan}%{METRICSPACE})?(Full_join: %{WORD:mysql.slowlog.full_join}%{METRICSPACE})?(Tmp_table: %{WORD:mysql.slowlog.tmp_table}%{METRICSPACE})?(Tmp_table_on_disk: %{WORD:mysql.slowlog.tmp_table_on_disk}%{METRICSPACE})?(Filesort: %{WORD:mysql.slowlog.filesort}%{METRICSPACE})?(Filesort_on_disk: %{WORD:mysql.slowlog.filesort_on_disk}%{METRICSPACE})?(Merge_passes: %{NUMBER:mysql.slowlog.merge_passes:long}%{METRICSPACE})?(Priority_queue: %{WORD:mysql.slowlog.priority_queue}%{METRICSPACE})?(No InnoDB statistics available for this query%{METRICSPACE})?(InnoDB_IO_r_ops: %{NUMBER:mysql.slowlog.innodb.io_r_ops:long}%{METRICSPACE})?(InnoDB_IO_r_bytes: %{NUMBER:mysql.slowlog.innodb.io_r_bytes:long}%{METRICSPACE})?(InnoDB_IO_r_wait: %{NUMBER:mysql.slowlog.innodb.io_r_wait.sec:float}%{METRICSPACE})?(InnoDB_rec_lock_wait: %{NUMBER:mysql.slowlog.innodb.rec_lock_wait.sec:float}%{METRICSPACE})?(InnoDB_queue_wait: %{NUMBER:mysql.slowlog.innodb.queue_wait.sec:float}%{METRICSPACE})?(InnoDB_pages_distinct: %{NUMBER:mysql.slowlog.innodb.pages_distinct:long}%{METRICSPACE})?(Log_slow_rate_type: %{WORD:mysql.slowlog.log_slow_rate_type}%{METRICSPACE})?(Log_slow_rate_limit: %{NUMBER:mysql.slowlog.log_slow_rate_limit:long}%{METRICSPACE})?%{EXPLAIN}?(use %{WORD:mysql.slowlog.schema};\n)?SET timestamp=%{NUMBER:mysql.slowlog.timestamp:long};\n%{GREEDYMULTILINE:mysql.slowlog.query}" + "^# User@Host: %{USER:user.name}(\\[%{USER:mysql.slowlog.current_user}\\])? @ %{HOSTNAME:source.domain}? \\[%{IP:source.ip}?\\]%{METRICSPACE}(Id:%{SPACE}%{NUMBER:mysql.thread_id:long}%{METRICSPACE})?(Thread_id:%{SPACE}%{NUMBER:mysql.thread_id}%{METRICSPACE})?(Schema:%{SPACE}%{WORD:mysql.slowlog.schema}?%{METRICSPACE})?(Last_errno: %{NUMBER:mysql.slowlog.last_errno:long}%{METRICSPACE})?(Killed: %{NUMBER:mysql.slowlog.killed:long}%{METRICSPACE})?(QC_hit: %{WORD:mysql.slowlog.query_cache_hit}%{METRICSPACE})?(Query_time: %{NUMBER:temp.duration:float}%{METRICSPACE})?(Lock_time: %{NUMBER:mysql.slowlog.lock_time.sec:float}%{METRICSPACE})?(Rows_sent: %{NUMBER:mysql.slowlog.rows_sent:long}%{METRICSPACE})?(Rows_examined: %{NUMBER:mysql.slowlog.rows_examined:long}%{METRICSPACE})?(Rows_affected: %{NUMBER:mysql.slowlog.rows_affected:long}%{METRICSPACE})?(Thread_id: %{NUMBER:mysql.thread_id}%{METRICSPACE})?(Errno: %{NUMBER:mysql.slowlog.last_errno:long}%{METRICSPACE})?(Killed: %{NUMBER:mysql.slowlog.killed:long}%{METRICSPACE})?(Bytes_received: %{NUMBER:mysql.slowlog.bytes_received:long}%{METRICSPACE})?(Bytes_sent: %{NUMBER:mysql.slowlog.bytes_sent:long}%{METRICSPACE})?(Read_first: %{NUMBER:mysql.slowlog.read_first:long}%{METRICSPACE})?(Read_last: %{NUMBER:mysql.slowlog.read_last:long}%{METRICSPACE})?(Read_key: %{NUMBER:mysql.slowlog.read_key:long}%{METRICSPACE})?(Read_next: %{NUMBER:mysql.slowlog.read_next:long}%{METRICSPACE})?(Read_prev: %{NUMBER:mysql.slowlog.read_prev:long}%{METRICSPACE})?(Read_rnd: %{NUMBER:mysql.slowlog.read_rnd:long}%{METRICSPACE})?(Read_rnd_next: %{NUMBER:mysql.slowlog.read_rnd_next:long}%{METRICSPACE})?(Sort_merge_passes: %{NUMBER:mysql.slowlog.sort_merge_passes:long}%{METRICSPACE})?(Sort_range_count: %{NUMBER:mysql.slowlog.sort_range_count:long}%{METRICSPACE})?(Sort_rows: %{NUMBER:mysql.slowlog.sort_rows:long}%{METRICSPACE})?(Sort_scan_count: %{NUMBER:mysql.slowlog.sort_scan_count:long}%{METRICSPACE})?(Created_tmp_disk_tables: %{NUMBER:mysql.slowlog.tmp_disk_tables:long}%{METRICSPACE})?(Created_tmp_tables: %{NUMBER:mysql.slowlog.tmp_tables:long}%{METRICSPACE})?(Tmp_tables: %{NUMBER:mysql.slowlog.tmp_tables:long}%{METRICSPACE})?(Tmp_disk_tables: %{NUMBER:mysql.slowlog.tmp_disk_tables}%{METRICSPACE})?(Tmp_table_sizes: %{NUMBER:mysql.slowlog.tmp_table_sizes:long}%{METRICSPACE})?(Start: %{TIMESTAMP_ISO8601:event.start}%{METRICSPACE})?(End: %{TIMESTAMP_ISO8601:event.end}%{METRICSPACE})?(InnoDB_trx_id: %{WORD:mysql.slowlog.innodb.trx_id}%{METRICSPACE})?(QC_Hit: %{WORD:mysql.slowlog.query_cache_hit}%{METRICSPACE})?(Full_scan: %{WORD:mysql.slowlog.full_scan}%{METRICSPACE})?(Full_join: %{WORD:mysql.slowlog.full_join}%{METRICSPACE})?(Tmp_table: %{WORD:mysql.slowlog.tmp_table}%{METRICSPACE})?(Tmp_table_on_disk: %{WORD:mysql.slowlog.tmp_table_on_disk}%{METRICSPACE})?(Filesort: %{WORD:mysql.slowlog.filesort}%{METRICSPACE})?(Filesort_on_disk: %{WORD:mysql.slowlog.filesort_on_disk}%{METRICSPACE})?(Merge_passes: %{NUMBER:mysql.slowlog.merge_passes:long}%{METRICSPACE})?(Priority_queue: %{WORD:mysql.slowlog.priority_queue}%{METRICSPACE})?(No InnoDB statistics available for this query%{METRICSPACE})?(InnoDB_IO_r_ops: %{NUMBER:mysql.slowlog.innodb.io_r_ops:long}%{METRICSPACE})?(InnoDB_IO_r_bytes: %{NUMBER:mysql.slowlog.innodb.io_r_bytes:long}%{METRICSPACE})?(InnoDB_IO_r_wait: %{NUMBER:mysql.slowlog.innodb.io_r_wait.sec:float}%{METRICSPACE})?(InnoDB_rec_lock_wait: %{NUMBER:mysql.slowlog.innodb.rec_lock_wait.sec:float}%{METRICSPACE})?(InnoDB_queue_wait: %{NUMBER:mysql.slowlog.innodb.queue_wait.sec:float}%{METRICSPACE})?(InnoDB_pages_distinct: %{NUMBER:mysql.slowlog.innodb.pages_distinct:long}%{METRICSPACE})?(Log_slow_rate_type: %{WORD:mysql.slowlog.log_slow_rate_type}%{METRICSPACE})?(Log_slow_rate_limit: %{NUMBER:mysql.slowlog.log_slow_rate_limit:long}%{METRICSPACE})?%{EXPLAIN}?(use %{WORD:mysql.slowlog.schema};\n)?SET timestamp=%{NUMBER:mysql.slowlog.timestamp:long};\n%{GREEDYMULTILINE:mysql.slowlog.query}" ], "pattern_definitions" : { "GREEDYMULTILINE": "(.|\n)*", diff --git a/filebeat/module/mysql/slowlog/test/mariadb-10.3.13.log b/filebeat/module/mysql/slowlog/test/mariadb-10.3.13.log new file mode 100644 index 00000000000..b7d8ff94aa4 --- /dev/null +++ b/filebeat/module/mysql/slowlog/test/mariadb-10.3.13.log @@ -0,0 +1,18 @@ +/usr/sbin/mysqld, Version: 10.3.13-MariaDB-1:10.3.13+maria~bionic-log (mariadb.org binary distribution). started with: +Tcp port: 3306 Unix socket: /var/run/mysqld/mysqld.sock +Time Id Command Argument +# Time: 190324 16:03:00 +# User@Host: root[root] @ localhost [] +# Thread_id: 37 Schema: employees QC_hit: No +# Query_time: 2.461578 Lock_time: 0.000196 Rows_sent: 10 Rows_examined: 3145718 +# Rows_affected: 0 Bytes_sent: 319 +# Tmp_tables: 1 Tmp_disk_tables: 0 Tmp_table_sizes: 4026528 +# Full_scan: Yes Full_join: No Tmp_table: Yes Tmp_table_on_disk: No +# Filesort: Yes Filesort_on_disk: No Merge_passes: 0 Priority_queue: Yes +use employees; +SET timestamp=1553443380; +SELECT last_name, MAX(salary) AS salary FROM employees + INNER JOIN salaries ON employees.emp_no = salaries.emp_no + GROUP BY last_name + ORDER BY salary DESC + LIMIT 10; diff --git a/filebeat/module/mysql/slowlog/test/mysql-ubuntu-8.0.15.log b/filebeat/module/mysql/slowlog/test/mysql-ubuntu-8.0.15.log new file mode 100644 index 00000000000..2e70932a424 --- /dev/null +++ b/filebeat/module/mysql/slowlog/test/mysql-ubuntu-8.0.15.log @@ -0,0 +1,19 @@ +/usr/sbin/mysqld, Version: 8.0.15 (MySQL Community Server - GPL). started with: +Tcp port: 3306 Unix socket: /var/run/mysqld/mysqld.sock +Time Id Command Argument +# Time: 2019-03-24T14:01:47.811234Z +# User@Host: root[root] @ localhost [] Id: 14 +# Query_time: 2.475469 Lock_time: 0.000287 Rows_sent: 10 Rows_examined: 3145718 +use employees; +SET timestamp=1553436105; +SELECT last_name, MAX(salary) AS salary FROM employees INNER JOIN salaries ON employees.emp_no = salaries.emp_no GROUP BY last_name ORDER BY salary DESC LIMIT 10; +# Time: 2019-03-24T14:04:53.713951Z +# User@Host: root[root] @ localhost [] Id: 16 +# Query_time: 2.631844 Lock_time: 0.000145 Rows_sent: 10 Rows_examined: 3145718 Thread_id: 16 Errno: 0 Killed: 0 Bytes_received: 0 Bytes_sent: 312 Read_first: 1 Read_last: 0 Read_key: 3144072 Read_next: 2844047 Read_prev: 0 Read_rnd: 10 Read_rnd_next: 301663 Sort_merge_passes: 0 Sort_range_count: 0 Sort_rows: 10 Sort_scan_count: 1 Created_tmp_disk_tables: 0 Created_tmp_tables: 1 Start: 2019-03-24T14:04:51.082107Z End: 2019-03-24T14:04:53.713951Z +use employees; +SET timestamp=1553436291; +SELECT last_name, MAX(salary) AS salary FROM employees + INNER JOIN salaries ON employees.emp_no = salaries.emp_no + GROUP BY last_name + ORDER BY salary DESC + LIMIT 10; diff --git a/filebeat/module/mysql/slowlog/test/mysql-ubuntu-8.0.15.log-expected.json b/filebeat/module/mysql/slowlog/test/mysql-ubuntu-8.0.15.log-expected.json new file mode 100644 index 00000000000..7e81a656595 --- /dev/null +++ b/filebeat/module/mysql/slowlog/test/mysql-ubuntu-8.0.15.log-expected.json @@ -0,0 +1,67 @@ +[ + { + "@timestamp": "2019-03-24T14:01:45.000Z", + "ecs.version": "1.0.0", + "event.dataset": "mysql.slowlog", + "event.duration": 2475469000, + "event.module": "mysql", + "fileset.name": "slowlog", + "input.type": "log", + "log.flags": [ + "multiline" + ], + "log.offset": 217, + "mysql.slowlog.current_user": "root", + "mysql.slowlog.lock_time.sec": 0.000287, + "mysql.slowlog.query": "SELECT last_name, MAX(salary) AS salary FROM employees INNER JOIN salaries ON employees.emp_no = salaries.emp_no GROUP BY last_name ORDER BY salary DESC LIMIT 10;", + "mysql.slowlog.rows_examined": 3145718, + "mysql.slowlog.rows_sent": 10, + "mysql.slowlog.schema": "employees", + "mysql.thread_id": 14, + "service.type": "mysql", + "source.domain": "localhost", + "user.name": "root" + }, + { + "@timestamp": "2019-03-24T14:04:51.000Z", + "ecs.version": "1.0.0", + "event.dataset": "mysql.slowlog", + "event.duration": 2631844000, + "event.end": "2019-03-24T14:04:53.713951Z", + "event.module": "mysql", + "event.start": "2019-03-24T14:04:51.082107Z", + "fileset.name": "slowlog", + "input.type": "log", + "log.flags": [ + "multiline" + ], + "log.offset": 589, + "mysql.slowlog.bytes_received": 0, + "mysql.slowlog.bytes_sent": 312, + "mysql.slowlog.current_user": "root", + "mysql.slowlog.killed": 0, + "mysql.slowlog.last_errno": 0, + "mysql.slowlog.lock_time.sec": 0.000145, + "mysql.slowlog.query": "SELECT last_name, MAX(salary) AS salary FROM employees\n INNER JOIN salaries ON employees.emp_no = salaries.emp_no\n GROUP BY last_name\n ORDER BY salary DESC\n LIMIT 10;", + "mysql.slowlog.read_first": 1, + "mysql.slowlog.read_key": 3144072, + "mysql.slowlog.read_last": 0, + "mysql.slowlog.read_next": 2844047, + "mysql.slowlog.read_prev": 0, + "mysql.slowlog.read_rnd": 10, + "mysql.slowlog.read_rnd_next": 301663, + "mysql.slowlog.rows_examined": 3145718, + "mysql.slowlog.rows_sent": 10, + "mysql.slowlog.schema": "employees", + "mysql.slowlog.sort_merge_passes": 0, + "mysql.slowlog.sort_range_count": 0, + "mysql.slowlog.sort_rows": 10, + "mysql.slowlog.sort_scan_count": 1, + "mysql.slowlog.tmp_disk_tables": 0, + "mysql.slowlog.tmp_tables": 1, + "mysql.thread_id": "16", + "service.type": "mysql", + "source.domain": "localhost", + "user.name": "root" + } +] \ No newline at end of file diff --git a/filebeat/module/mysql/slowlog/test/percona-ubuntu-8.0.15.log b/filebeat/module/mysql/slowlog/test/percona-ubuntu-8.0.15.log new file mode 100644 index 00000000000..05fc70e1b7f --- /dev/null +++ b/filebeat/module/mysql/slowlog/test/percona-ubuntu-8.0.15.log @@ -0,0 +1,32 @@ +/usr/sbin/mysqld, Version: 8.0.15-5 (Percona Server (GPL), Release '5', Revision 'f8a9e99'). started with: +Tcp port: 3306 Unix socket: /var/run/mysqld/mysqld.sock +Time Id Command Argument +# Time: 2019-03-24T16:22:43.836524Z +# User@Host: root[root] @ localhost [] Id: 182 +# Schema: employees Last_errno: 0 Killed: 0 +# Query_time: 2.746607 Lock_time: 0.000138 Rows_sent: 10 Rows_examined: 3145718 Rows_affected: 0 +# Bytes_sent: 312 +use employees; +SET timestamp=1553444561; +SELECT last_name, MAX(salary) AS salary FROM employees INNER JOIN salaries ON employees.emp_no = salaries.emp_no GROUP BY last_name ORDER BY salary DESC LIMIT 10; +/usr/sbin/mysqld, Version: 8.0.15-5 (Percona Server (GPL), Release '5', Revision 'f8a9e99'). started with: +Tcp port: 0 Unix socket: /var/run/mysqld/mysqld.sock +Time Id Command Argument +# Time: 2019-03-24T16:26:04.482151Z +# User@Host: root[root] @ localhost [] Id: 8 +# Schema: employees Last_errno: 0 Killed: 0 +# Query_time: 3.133066 Lock_time: 0.000190 Rows_sent: 10 Rows_examined: 3145718 Rows_affected: 0 +# Bytes_sent: 312 Tmp_tables: 1 Tmp_disk_tables: 0 Tmp_table_sizes: 0 +# InnoDB_trx_id: 0 +# Full_scan: Yes Full_join: No Tmp_table: Yes Tmp_table_on_disk: No +# Filesort: Yes Filesort_on_disk: No Merge_passes: 0 +# InnoDB_IO_r_ops: 5491 InnoDB_IO_r_bytes: 89964544 InnoDB_IO_r_wait: 0.003183 +# InnoDB_rec_lock_wait: 0.000000 InnoDB_queue_wait: 0.000000 +# InnoDB_pages_distinct: 6122 +use employees; +SET timestamp=1553444761; +SELECT last_name, MAX(salary) AS salary FROM employees + INNER JOIN salaries ON employees.emp_no = salaries.emp_no + GROUP BY last_name + ORDER BY salary DESC + LIMIT 10; diff --git a/filebeat/module/mysql/slowlog/test/percona-ubuntu-8.0.15.log-expected.json b/filebeat/module/mysql/slowlog/test/percona-ubuntu-8.0.15.log-expected.json new file mode 100644 index 00000000000..555739ca182 --- /dev/null +++ b/filebeat/module/mysql/slowlog/test/percona-ubuntu-8.0.15.log-expected.json @@ -0,0 +1,73 @@ +[ + { + "@timestamp": "2019-03-24T16:22:41.000Z", + "ecs.version": "1.0.0", + "event.dataset": "mysql.slowlog", + "event.duration": 2746607000, + "event.module": "mysql", + "fileset.name": "slowlog", + "input.type": "log", + "log.flags": [ + "multiline" + ], + "log.offset": 244, + "mysql.slowlog.bytes_sent": 312, + "mysql.slowlog.current_user": "root", + "mysql.slowlog.killed": 0, + "mysql.slowlog.last_errno": 0, + "mysql.slowlog.lock_time.sec": 0.000138, + "mysql.slowlog.query": "SELECT last_name, MAX(salary) AS salary FROM employees INNER JOIN salaries ON employees.emp_no = salaries.emp_no GROUP BY last_name ORDER BY salary DESC LIMIT 10;\n/usr/sbin/mysqld, Version: 8.0.15-5 (Percona Server (GPL), Release '5', Revision 'f8a9e99'). started with:\nTcp port: 0 Unix socket: /var/run/mysqld/mysqld.sock\nTime Id Command Argument", + "mysql.slowlog.rows_affected": 0, + "mysql.slowlog.rows_examined": 3145718, + "mysql.slowlog.rows_sent": 10, + "mysql.slowlog.schema": "employees", + "mysql.thread_id": 182, + "service.type": "mysql", + "source.domain": "localhost", + "user.name": "root" + }, + { + "@timestamp": "2019-03-24T16:26:01.000Z", + "ecs.version": "1.0.0", + "event.dataset": "mysql.slowlog", + "event.duration": 3133066000, + "event.module": "mysql", + "fileset.name": "slowlog", + "input.type": "log", + "log.flags": [ + "multiline" + ], + "log.offset": 920, + "mysql.slowlog.bytes_sent": 312, + "mysql.slowlog.current_user": "root", + "mysql.slowlog.filesort": true, + "mysql.slowlog.filesort_on_disk": false, + "mysql.slowlog.full_join": false, + "mysql.slowlog.full_scan": true, + "mysql.slowlog.innodb.io_r_bytes": 89964544, + "mysql.slowlog.innodb.io_r_ops": 5491, + "mysql.slowlog.innodb.io_r_wait.sec": 0.003183, + "mysql.slowlog.innodb.pages_distinct": 6122, + "mysql.slowlog.innodb.queue_wait.sec": 0.0, + "mysql.slowlog.innodb.rec_lock_wait.sec": 0.0, + "mysql.slowlog.innodb.trx_id": "0", + "mysql.slowlog.killed": 0, + "mysql.slowlog.last_errno": 0, + "mysql.slowlog.lock_time.sec": 0.00019, + "mysql.slowlog.merge_passes": 0, + "mysql.slowlog.query": "SELECT last_name, MAX(salary) AS salary FROM employees\n INNER JOIN salaries ON employees.emp_no = salaries.emp_no\n GROUP BY last_name\n ORDER BY salary DESC\n LIMIT 10;", + "mysql.slowlog.rows_affected": 0, + "mysql.slowlog.rows_examined": 3145718, + "mysql.slowlog.rows_sent": 10, + "mysql.slowlog.schema": "employees", + "mysql.slowlog.tmp_disk_tables": "0", + "mysql.slowlog.tmp_table": true, + "mysql.slowlog.tmp_table_on_disk": false, + "mysql.slowlog.tmp_table_sizes": 0, + "mysql.slowlog.tmp_tables": 1, + "mysql.thread_id": 8, + "service.type": "mysql", + "source.domain": "localhost", + "user.name": "root" + } +] \ No newline at end of file From fef8ec45429158374b14170cf3c151860968500c Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Mon, 25 Mar 2019 11:23:36 -0700 Subject: [PATCH 267/332] Add link to docs about adding geoip info (#11395) --- packetbeat/docs/gettingstarted.asciidoc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packetbeat/docs/gettingstarted.asciidoc b/packetbeat/docs/gettingstarted.asciidoc index 783ffaf521d..791b6c7379b 100644 --- a/packetbeat/docs/gettingstarted.asciidoc +++ b/packetbeat/docs/gettingstarted.asciidoc @@ -325,5 +325,8 @@ include::{libbeat-dir}/docs/opendashboards.asciidoc[] The dashboards are provided as examples. We recommend that you {kibana-ref}/dashboard.html[customize] them to meet your needs. +TIP: To populate the client locations map in the overview dashboard, follow the +steps described in <<{beatname_lc}-geoip>>. + [role="screenshot"] image:./images/packetbeat-statistics.png[Packetbeat statistics] From 766c694f409a04da1709656e833e6e3a46576c34 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Mon, 25 Mar 2019 15:07:12 -0700 Subject: [PATCH 268/332] Link to infrastructure monitoring docs from Beats docs (#10954) * Link to infrastructure monitoring docs from Beats docs * Add links that point to the infrastructure monitoring guide * Add changes from review --- filebeat/docs/index.asciidoc | 1 + libbeat/docs/dashboards.asciidoc | 7 +++++++ libbeat/docs/gettingstarted.asciidoc | 4 ++++ libbeat/docs/overview.asciidoc | 7 +++++++ metricbeat/docs/index.asciidoc | 1 + 5 files changed, 20 insertions(+) diff --git a/filebeat/docs/index.asciidoc b/filebeat/docs/index.asciidoc index 92307bdd403..84cc0313d54 100644 --- a/filebeat/docs/index.asciidoc +++ b/filebeat/docs/index.asciidoc @@ -15,6 +15,7 @@ include::{asciidoc-dir}/../../shared/attributes.asciidoc[] :beat_default_index_prefix: {beatname_lc} :has_ml_jobs: yes :has_central_config: +:has_solutions: :deb_os: :rpm_os: :mac_os: diff --git a/libbeat/docs/dashboards.asciidoc b/libbeat/docs/dashboards.asciidoc index 96bf17b5527..4353d6631b1 100644 --- a/libbeat/docs/dashboards.asciidoc +++ b/libbeat/docs/dashboards.asciidoc @@ -9,6 +9,13 @@ //// include::../../libbeat/docs/dashboards.asciidoc[] ////////////////////////////////////////////////////////////////////////// +ifdef::has_solutions[] +TIP: For deeper observability into your infrastructure, use the +{infra-guide}/infrastructure-ui-overview.html[Infrastructure] and +{infra-guide}/logs-ui-overview.html[Logs] UIs in {kib}. For setup details, see +the {infra-guide}/index.html[Infrastructure Monitoring Guide]. +endif::has_solutions[] + {beatname_uc} comes packaged with example Kibana dashboards, visualizations, and searches for visualizing {beatname_uc} data in Kibana. Before you can use the dashboards, you need to create the index pattern, +{beat_default_index_prefix}-*+, and diff --git a/libbeat/docs/gettingstarted.asciidoc b/libbeat/docs/gettingstarted.asciidoc index a72e3fb8476..4240998cd1a 100644 --- a/libbeat/docs/gettingstarted.asciidoc +++ b/libbeat/docs/gettingstarted.asciidoc @@ -26,3 +26,7 @@ After installing the {stack}, see the {beats} getting started guides: * {packetbeat-ref}/packetbeat-getting-started.html[Packetbeat] * {winlogbeat-ref}/winlogbeat-getting-started.html[Winlogbeat] +If you're planning to use the +{infra-guide}/infrastructure-ui-overview.html[Infrastructure] and +{infra-guide}/logs-ui-overview.html[Logs] UIs in {kib}, also see the +{infra-guide}/index.html[Infrastructure Monitoring Guide]. diff --git a/libbeat/docs/overview.asciidoc b/libbeat/docs/overview.asciidoc index c6971991406..f3358182fbe 100644 --- a/libbeat/docs/overview.asciidoc +++ b/libbeat/docs/overview.asciidoc @@ -28,6 +28,13 @@ image:./images/beats-platform.png[Beats Platform] To get started, see <>. +Want to get up and running quickly with infrastructure metrics monitoring and +centralized log analytics? Try out the +{infra-guide}/infrastructure-ui-overview.html[Infrastructure] and +{infra-guide}/logs-ui-overview.html[Logs] UIs +in {kib}. For setup details, see the {infra-guide}/index.html[Infrastructure +Monitoring Guide]. + [float] === Need to capture other kinds of data? diff --git a/metricbeat/docs/index.asciidoc b/metricbeat/docs/index.asciidoc index b40ef29a7c0..41af77ab88d 100644 --- a/metricbeat/docs/index.asciidoc +++ b/metricbeat/docs/index.asciidoc @@ -15,6 +15,7 @@ include::{asciidoc-dir}/../../shared/attributes.asciidoc[] :beat_default_index_prefix: {beatname_lc} :has_ml_jobs: yes :has_central_config: +:has_solutions: :deb_os: :rpm_os: :mac_os: From 493a158dc3bc22e09b36f5a7b88f15a737cae514 Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Mon, 25 Mar 2019 15:09:02 -0700 Subject: [PATCH 269/332] Fix minor typos (#11408) --- x-pack/functionbeat/docs/getting-started.asciidoc | 3 ++- x-pack/functionbeat/docs/overview.asciidoc | 1 - 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/x-pack/functionbeat/docs/getting-started.asciidoc b/x-pack/functionbeat/docs/getting-started.asciidoc index 670764eff49..9f45f132777 100644 --- a/x-pack/functionbeat/docs/getting-started.asciidoc +++ b/x-pack/functionbeat/docs/getting-started.asciidoc @@ -120,7 +120,8 @@ uploaded. For example: {beatname_lc}.provider.aws.deploy_bucket: "functionbeat-deploy" ---- -. Define the functions that want to deploy. For each function, you must specify: +. Define the functions that you want to deploy. For each function, you must +specify: + [horizontal] `name`:: A unique name for the Lambda function. diff --git a/x-pack/functionbeat/docs/overview.asciidoc b/x-pack/functionbeat/docs/overview.asciidoc index 1651a218d6d..63a56fe36df 100644 --- a/x-pack/functionbeat/docs/overview.asciidoc +++ b/x-pack/functionbeat/docs/overview.asciidoc @@ -15,7 +15,6 @@ responds to the triggers defined for the following event sources: * https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/WhatIsCloudWatchLogs.html[CloudWatch Logs] * https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html[Amazon Simple Queue Service (SQS)] -* https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/welcome.html[Amazon Simple Queue Service (SQS)] * https://docs.aws.amazon.com/kinesis/latest/APIReference/Welcome.html[Kinesis] include::{libbeat-dir}/docs/shared-libbeat-description.asciidoc[] From 53500aa518bda87f34bcfc081b7e20633732c8cb Mon Sep 17 00:00:00 2001 From: DeDe Morton Date: Mon, 25 Mar 2019 15:52:18 -0700 Subject: [PATCH 270/332] Remove beta tag (#11352) --- libbeat/docs/shared-ilm.asciidoc | 2 -- 1 file changed, 2 deletions(-) diff --git a/libbeat/docs/shared-ilm.asciidoc b/libbeat/docs/shared-ilm.asciidoc index acfc479266c..0698e5f7eae 100644 --- a/libbeat/docs/shared-ilm.asciidoc +++ b/libbeat/docs/shared-ilm.asciidoc @@ -2,8 +2,6 @@ [role="xpack"] == Set up index lifecycle management -beta[] - You can use the {ref}/getting-started-index-lifecycle-management.html[index lifecycle management] feature in {es} to manage your {beatname_uc} indices as they age. For example, instead of having {beatname_uc} create daily indices From f98f2f4d25ec5830ccc097a3cc8d4c7810fce20e Mon Sep 17 00:00:00 2001 From: alakahakai Date: Mon, 25 Mar 2019 18:04:07 -0700 Subject: [PATCH 271/332] Filebeat coredns module (#11200) * Add Filebeat coredns module --- CHANGELOG.next.asciidoc | 1 + filebeat/docs/fields.asciidoc | 109 ++++ filebeat/docs/modules/coredns.asciidoc | 37 ++ filebeat/docs/modules_list.asciidoc | 2 + x-pack/filebeat/filebeat.reference.yml | 10 + x-pack/filebeat/include/list.go | 1 + x-pack/filebeat/module/coredns/README.md | 160 ++++++ .../filebeat/module/coredns/_meta/config.yml | 8 + .../module/coredns/_meta/docs.asciidoc | 24 + .../filebeat/module/coredns/_meta/fields.yml | 57 +++ .../images/Coredns_Overview_Dashboard.jpg | Bin 0 -> 256863 bytes .../dashboard/Coredns-Overview-Dashboard.json | 464 ++++++++++++++++++ x-pack/filebeat/module/coredns/fields.go | 23 + .../module/coredns/log/config/coredns.yml | 7 + .../coredns/log/ingest/pipeline-entry.json | 101 ++++ .../coredns/log/ingest/pipeline-json.json | 42 ++ .../log/ingest/pipeline-plaintext.json | 23 + .../filebeat/module/coredns/log/manifest.yml | 15 + .../module/coredns/log/test/coredns-json.log | 3 + .../log/test/coredns-json.log-expected.json | 101 ++++ .../module/coredns/log/test/coredns.log | 2 + .../log/test/coredns.log-expected.json | 68 +++ x-pack/filebeat/module/coredns/module.yml | 3 + .../filebeat/modules.d/coredns.yml.disabled | 11 + 24 files changed, 1272 insertions(+) create mode 100644 filebeat/docs/modules/coredns.asciidoc create mode 100644 x-pack/filebeat/module/coredns/README.md create mode 100644 x-pack/filebeat/module/coredns/_meta/config.yml create mode 100644 x-pack/filebeat/module/coredns/_meta/docs.asciidoc create mode 100644 x-pack/filebeat/module/coredns/_meta/fields.yml create mode 100644 x-pack/filebeat/module/coredns/_meta/images/Coredns_Overview_Dashboard.jpg create mode 100644 x-pack/filebeat/module/coredns/_meta/kibana/8/dashboard/Coredns-Overview-Dashboard.json create mode 100644 x-pack/filebeat/module/coredns/fields.go create mode 100644 x-pack/filebeat/module/coredns/log/config/coredns.yml create mode 100644 x-pack/filebeat/module/coredns/log/ingest/pipeline-entry.json create mode 100644 x-pack/filebeat/module/coredns/log/ingest/pipeline-json.json create mode 100644 x-pack/filebeat/module/coredns/log/ingest/pipeline-plaintext.json create mode 100644 x-pack/filebeat/module/coredns/log/manifest.yml create mode 100644 x-pack/filebeat/module/coredns/log/test/coredns-json.log create mode 100644 x-pack/filebeat/module/coredns/log/test/coredns-json.log-expected.json create mode 100644 x-pack/filebeat/module/coredns/log/test/coredns.log create mode 100644 x-pack/filebeat/module/coredns/log/test/coredns.log-expected.json create mode 100644 x-pack/filebeat/module/coredns/module.yml create mode 100644 x-pack/filebeat/modules.d/coredns.yml.disabled diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 7bdff1ed2ab..b952c9dc0c4 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -309,6 +309,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Add support for loading custom NetFlow and IPFIX field definitions to netflow input. {pull}10945[10945] - Added categorization fields for SSH login events in the system/auth fileset. {pull}11334[11334] - Add support for MySQL 8.0 slow logs and tests also for Percona 8.0 and MariaDB 10.3. {pull}11417[11417] +- New Filebeat coredns module to ingest coredns logs. It supports both native coredns deployment and coredns deployment in kubernetes. {pull}11200[11200] *Heartbeat* diff --git a/filebeat/docs/fields.asciidoc b/filebeat/docs/fields.asciidoc index 72fbb9982b2..d4b5e29fcea 100644 --- a/filebeat/docs/fields.asciidoc +++ b/filebeat/docs/fields.asciidoc @@ -16,6 +16,7 @@ grouped in the following categories: * <> * <> * <> +* <> * <> * <> * <> @@ -1125,6 +1126,114 @@ type: alias alias to: cloud.region +-- + +[[exported-fields-coredns]] +== Coredns fields + +Module for handling logs produced by coredns + + + +[float] +== coredns fields + +coredns fields after normalization + + + +*`coredns.id`*:: ++ +-- +type: keyword + +id of the DNS transaction + + +-- + +*`coredns.query.size`*:: ++ +-- +type: integer + +format: bytes + +size of the DNS query + + +-- + +*`coredns.query.class`*:: ++ +-- +type: keyword + +DNS query class + + +-- + +*`coredns.query.name`*:: ++ +-- +type: keyword + +DNS query name + + +-- + +*`coredns.query.type`*:: ++ +-- +type: keyword + +DNS query type + + +-- + +*`coredns.response.code`*:: ++ +-- +type: keyword + +DNS response code + + +-- + +*`coredns.response.flags`*:: ++ +-- +type: keyword + +DNS response flags + + +-- + +*`coredns.response.size`*:: ++ +-- +type: integer + +format: bytes + +size of the DNS response + + +-- + +*`coredns.dnssec_ok`*:: ++ +-- +type: boolean + +dnssec flag + + -- [[exported-fields-docker-processor]] diff --git a/filebeat/docs/modules/coredns.asciidoc b/filebeat/docs/modules/coredns.asciidoc new file mode 100644 index 00000000000..6e6d9040e7b --- /dev/null +++ b/filebeat/docs/modules/coredns.asciidoc @@ -0,0 +1,37 @@ +//// +This file is generated! See scripts/docs_collector.py +//// + +[[filebeat-module-coredns]] +[role="xpack"] + +:modulename: coredns +:has-dashboards: true + +== Coredns Module + +This is a filebeat module for coredns. It supports both standalone coredns deployment and +coredns deployment in Kubernetes. Standalone coredns deployment uses the log fileset, while +Kubernetes coredns deployment uses the kubernetes fileset. + +[float] +=== Compatibility + +Although this module has been developed against Kubernetes v1.13.x, it is expected to work +with other versions of Kubernetes. + +[float] +=== Example dashboard + +This module comes with a sample dashboard. + +[role="screenshot"] +image::./images/Coredns_Overview_Dashboard.jpg[] + + +[float] +=== Fields + +For a description of each field in the module, see the +<> section. + diff --git a/filebeat/docs/modules_list.asciidoc b/filebeat/docs/modules_list.asciidoc index ea3b3d74997..f7e808fddab 100644 --- a/filebeat/docs/modules_list.asciidoc +++ b/filebeat/docs/modules_list.asciidoc @@ -5,6 +5,7 @@ This file is generated! See scripts/docs_collector.py * <> * <> * <> + * <> * <> * <> * <> @@ -33,6 +34,7 @@ This file is generated! See scripts/docs_collector.py include::modules-overview.asciidoc[] include::modules/apache.asciidoc[] include::modules/auditd.asciidoc[] +include::modules/coredns.asciidoc[] include::modules/elasticsearch.asciidoc[] include::modules/haproxy.asciidoc[] include::modules/icinga.asciidoc[] diff --git a/x-pack/filebeat/filebeat.reference.yml b/x-pack/filebeat/filebeat.reference.yml index dc315b4f67c..28cafb25cd2 100644 --- a/x-pack/filebeat/filebeat.reference.yml +++ b/x-pack/filebeat/filebeat.reference.yml @@ -82,6 +82,16 @@ filebeat.modules: # can be added under this section. #input: +#------------------------------- Coredns Module ------------------------------- +- module: coredns + # Fileset for native deployment + log: + enabled: true + + # Set custom paths for the log files. If left empty, + # Filebeat will choose the paths depending on your OS. + #var.paths: + #---------------------------- Elasticsearch Module ---------------------------- - module: elasticsearch # Server log diff --git a/x-pack/filebeat/include/list.go b/x-pack/filebeat/include/list.go index c6332bde38f..b3df5fd1519 100644 --- a/x-pack/filebeat/include/list.go +++ b/x-pack/filebeat/include/list.go @@ -9,6 +9,7 @@ package include import ( // Import packages that need to register themselves. _ "github.com/elastic/beats/x-pack/filebeat/input/netflow" + _ "github.com/elastic/beats/x-pack/filebeat/module/coredns" _ "github.com/elastic/beats/x-pack/filebeat/module/iptables" _ "github.com/elastic/beats/x-pack/filebeat/module/netflow" _ "github.com/elastic/beats/x-pack/filebeat/module/suricata" diff --git a/x-pack/filebeat/module/coredns/README.md b/x-pack/filebeat/module/coredns/README.md new file mode 100644 index 00000000000..8aeaad3a211 --- /dev/null +++ b/x-pack/filebeat/module/coredns/README.md @@ -0,0 +1,160 @@ +# Coredns Module + +This is a filebeat module for coredns. It supports both standalone coredns deployment and +coredns deployment in Kubernetes. + +## Caveats + +* Module is to be considered _beta_. + +## Download and install Filebeat + +Grab the filebeat binary from elastic.co, and install it by following the instructions. + +## Deployment Scenario #1: coredns native deployment + +Make sure to update coredns configuration to enable log plugin. This module assumes that coredns log +entries will be written to /var/log/coredns.log. Should it be not the case, please point the module +log path to the path of the log file. + +Update filebeat.yml to point to Elasticsearch and Kibana. +Setup Filebeat. +``` +./filebeat setup --modules coredns -e +``` + +Enable the Filebeat coredns module +``` +./filebeat modules enable coredns +``` + +Start Filebeat +``` +./filebeat -e +``` + +Now, the Coredns logs and dashboard should appear in Kibana. + + +## Deployment Scenario #2: coredns for kubernetes + +For Kubernetes deployment, the filebeat daemon-set yaml file needs to be deployed to the +Kubernetes cluster. Sample configuration files is provided under the `beats/deploy/filebeat` +directory, and can be deployed by doing the following: +``` +kubectl apply -f filebeat +``` + +#### Note the following section in the ConfigMap, make changes to the yaml file if necessary +``` + filebeat.autodiscover: + providers: + - type: kubernetes + hints.enabled: true + default.disable: true + + processors: + - add_kubernetes_metadata: + in_cluster: true +``` + +This enables auto-discovery and hints for filebeat. When default.disable is set to true (default value is false), it will disable log harvesting for the pod/container, unless it has specific annotations enabled. This gives users more granular control on kubernetes log ingestion. The `add_kubernetes_metadata` processor will add enrichment data for Kubernetes to the ingest logs. + +#### Note the following section in the DaemonSet, make changes to the yaml file if necessary +``` +apiVersion: extensions/v1beta1 +kind: DaemonSet +metadata: + name: filebeat + namespace: kube-system + labels: + k8s-app: filebeat +spec: + template: + metadata: + labels: + k8s-app: filebeat + spec: + serviceAccountName: filebeat + terminationGracePeriodSeconds: 30 + containers: + - name: filebeat + image: docker.elastic.co/beats/filebeat:%VERSION% + args: [ + "sh", "-c", "filebeat setup -e --modules coredns -c /etc/filebeat.yml && filebeat -e -c /etc/filebeat.yml" + ] + env: + # Edit the following values to reflect your setup accordingly + - name: ELASTICSEARCH_HOST + value: 192.168.99.1 + - name: ELASTICSEARCH_USERNAME + value: elastic + - name: ELASTICSEARCH_PASSWORD + value: changeme + - name: KIBANA_HOST + value: 192.168.99.1 +``` + +The module setup step can also be done separately without Kubernetes if applicable, and in that case, the args can be simplified to: +``` + args: [ + "sh", "-c", "filebeat -e -c /etc/filebeat.yml" + ] +``` + +### Note that you probably need to update the coredns configmap to enable logging, and coredns deployment to add proper annotations. + +##### Sample ConfigMap for coredns: + +``` +apiVersion: v1 +data: + Corefile: | + .:53 { + log + errors + health + kubernetes cluster.local in-addr.arpa ip6.arpa { + pods verified + endpoint_pod_names + upstream + fallthrough in-addr.arpa ip6.arpa + } + prometheus :9153 + proxy . /etc/resolv.conf + cache 30 + loop + reload + loadbalance + } +kind: ConfigMap +metadata: + creationTimestamp: "2019-01-31T21:02:57Z" + name: coredns + namespace: kube-system + resourceVersion: "185717" + selfLink: /api/v1/namespaces/kube-system/configmaps/coredns + uid: 95a5d5cb-259b-11e9-8e5d-080027971f3c +``` + +#### Sample Deployment for coredns. Note the annotations. + +``` +apiVersion: extensions/v1beta1 +kind: Deployment +metadata: + name: coredns +spec: + replicas: 2 + template: + metadata: + annotations: + "co.elastic.logs/module": "coredns" + "co.elastic.logs/fileset": "log" + "co.elastic.logs/disable": "false" + labels: + k8s-app: coredns + spec: + +``` + diff --git a/x-pack/filebeat/module/coredns/_meta/config.yml b/x-pack/filebeat/module/coredns/_meta/config.yml new file mode 100644 index 00000000000..d9ef777bde5 --- /dev/null +++ b/x-pack/filebeat/module/coredns/_meta/config.yml @@ -0,0 +1,8 @@ +- module: coredns + # Fileset for native deployment + log: + enabled: true + + # Set custom paths for the log files. If left empty, + # Filebeat will choose the paths depending on your OS. + #var.paths: diff --git a/x-pack/filebeat/module/coredns/_meta/docs.asciidoc b/x-pack/filebeat/module/coredns/_meta/docs.asciidoc new file mode 100644 index 00000000000..613b05bca4c --- /dev/null +++ b/x-pack/filebeat/module/coredns/_meta/docs.asciidoc @@ -0,0 +1,24 @@ +[role="xpack"] + +:modulename: coredns +:has-dashboards: true + +== Coredns Module + +This is a filebeat module for coredns. It supports both standalone coredns deployment and +coredns deployment in Kubernetes. Standalone coredns deployment uses the log fileset, while +Kubernetes coredns deployment uses the kubernetes fileset. + +[float] +=== Compatibility + +Although this module has been developed against Kubernetes v1.13.x, it is expected to work +with other versions of Kubernetes. + +[float] +=== Example dashboard + +This module comes with a sample dashboard. + +[role="screenshot"] +image::./images/Coredns_Overview_Dashboard.jpg[] diff --git a/x-pack/filebeat/module/coredns/_meta/fields.yml b/x-pack/filebeat/module/coredns/_meta/fields.yml new file mode 100644 index 00000000000..7bc11ae1470 --- /dev/null +++ b/x-pack/filebeat/module/coredns/_meta/fields.yml @@ -0,0 +1,57 @@ +- key: coredns + title: Coredns + description: > + Module for handling logs produced by coredns + fields: + - name: coredns + type: group + description: > + coredns fields after normalization + fields: + - name: id + type: keyword + description: > + id of the DNS transaction + + - name: query.size + type: integer + format: bytes + description: > + size of the DNS query + + - name: query.class + type: keyword + description: > + DNS query class + + - name: query.name + type: keyword + description: > + DNS query name + + - name: query.type + type: keyword + description: > + DNS query type + + - name: response.code + type: keyword + description: > + DNS response code + + - name: response.flags + type: keyword + description: > + DNS response flags + + - name: response.size + type: integer + format: bytes + description: > + size of the DNS response + + - name: dnssec_ok + type: boolean + description: > + dnssec flag + \ No newline at end of file diff --git a/x-pack/filebeat/module/coredns/_meta/images/Coredns_Overview_Dashboard.jpg b/x-pack/filebeat/module/coredns/_meta/images/Coredns_Overview_Dashboard.jpg new file mode 100644 index 0000000000000000000000000000000000000000..70921fa9bafb24da9a3e19bbbede5d0e43c0f0f0 GIT binary patch literal 256863 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[Bw9{NT%$a*%@=bZRmRBRfcwEMj= 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 I_Sd2R2XERsUH||9 literal 0 HcmV?d00001 diff --git a/x-pack/filebeat/module/coredns/_meta/kibana/8/dashboard/Coredns-Overview-Dashboard.json b/x-pack/filebeat/module/coredns/_meta/kibana/8/dashboard/Coredns-Overview-Dashboard.json new file mode 100644 index 00000000000..d72e943e141 --- /dev/null +++ b/x-pack/filebeat/module/coredns/_meta/kibana/8/dashboard/Coredns-Overview-Dashboard.json @@ -0,0 +1,464 @@ +{ + "objects": [ + { + "attributes": { + "description": "", + "hits": 0, + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "" + } + } + }, + "optionsJSON": { + "hidePanelTitles": false, + "useMargins": true + }, + "panelsJSON": [ + { + "embeddableConfig": {}, + "gridData": { + "h": 14, + "i": "1", + "w": 41, + "x": 4, + "y": 7 + }, + "panelIndex": "1", + "panelRefName": "panel_0", + "version": "8.0.0-SNAPSHOT" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 7, + "i": "2", + "w": 20, + "x": 4, + "y": 0 + }, + "panelIndex": "2", + "panelRefName": "panel_1", + "version": "8.0.0-SNAPSHOT" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 7, + "i": "3", + "w": 21, + "x": 24, + "y": 0 + }, + "panelIndex": "3", + "panelRefName": "panel_2", + "version": "8.0.0-SNAPSHOT" + }, + { + "embeddableConfig": {}, + "gridData": { + "h": 6, + "i": "4", + "w": 41, + "x": 4, + "y": 21 + }, + "panelIndex": "4", + "panelRefName": "panel_3", + "version": "8.0.0-SNAPSHOT" + } + ], + "timeRestore": false, + "title": "Coredns Overview Dashboard", + "version": 1 + }, + "id": "53aa1f70-443e-11e9-8548-ab7fbe04f038", + "migrationVersion": { + "dashboard": "7.0.0" + }, + "references": [ + { + "id": "3ad75810-4429-11e9-8548-ab7fbe04f038", + "name": "panel_0", + "type": "visualization" + }, + { + "id": "9dc640e0-4432-11e9-8548-ab7fbe04f038", + "name": "panel_1", + "type": "visualization" + }, + { + "id": "75743f70-443c-11e9-8548-ab7fbe04f038", + "name": "panel_2", + "type": "visualization" + }, + { + "id": "cfde7fb0-443d-11e9-8548-ab7fbe04f038", + "name": "panel_3", + "type": "visualization" + } + ], + "type": "dashboard", + "updated_at": "2019-03-11T20:43:54.420Z", + "version": "WzE0ODgsM10=" + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "indexRefName": "kibanaSavedObjectMeta.searchSourceJSON.index", + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "Top Domains [Coredns]", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [ + { + "enabled": true, + "id": "1", + "params": {}, + "schema": "metric", + "type": "count" + }, + { + "enabled": true, + "id": "2", + "params": { + "field": "coredns.query.name", + "missingBucket": false, + "missingBucketLabel": "Missing", + "order": "desc", + "orderBy": "1", + "otherBucket": false, + "otherBucketLabel": "Other", + "size": 10 + }, + "schema": "segment", + "type": "terms" + } + ], + "params": { + "maxFontSize": 72, + "metric": { + "accessor": 0, + "aggType": "count", + "format": { + "id": "number" + }, + "params": {} + }, + "minFontSize": 18, + "orientation": "single", + "scale": "linear", + "showLabel": true + }, + "title": "Top Domains [Coredns]", + "type": "tagcloud" + } + }, + "id": "3ad75810-4429-11e9-8548-ab7fbe04f038", + "migrationVersion": { + "visualization": "7.0.0" + }, + "references": [ + { + "id": "8d890080-413c-11e9-8548-ab7fbe04f038", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization", + "updated_at": "2019-03-11T18:12:28.303Z", + "version": "WzE0ODMsM10=" + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "indexRefName": "kibanaSavedObjectMeta.searchSourceJSON.index", + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "Total DNS Queries [Coredns]", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [ + { + "enabled": true, + "id": "1", + "params": {}, + "schema": "metric", + "type": "count" + } + ], + "params": { + "addLegend": false, + "addTooltip": true, + "metric": { + "colorSchema": "Green to Red", + "colorsRange": [ + { + "from": 0, + "to": 10000 + } + ], + "invertColors": false, + "labels": { + "show": true + }, + "metricColorMode": "None", + "percentageMode": false, + "style": { + "bgColor": false, + "bgFill": "#000", + "fontSize": 60, + "labelColor": false, + "subText": "" + }, + "useRanges": false + }, + "type": "metric" + }, + "title": "Total DNS Queries [Coredns]", + "type": "metric" + } + }, + "id": "9dc640e0-4432-11e9-8548-ab7fbe04f038", + "migrationVersion": { + "visualization": "7.0.0" + }, + "references": [ + { + "id": "8d890080-413c-11e9-8548-ab7fbe04f038", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization", + "updated_at": "2019-03-11T19:19:39.757Z", + "version": "WzE0ODQsM10=" + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "indexRefName": "kibanaSavedObjectMeta.searchSourceJSON.index", + "query": { + "language": "kuery", + "query": "" + } + } + }, + "title": "Unique Domains [Coredns]", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [ + { + "enabled": true, + "id": "1", + "params": { + "customLabel": "Unique Domains", + "field": "coredns.query.name" + }, + "schema": "metric", + "type": "cardinality" + } + ], + "params": { + "addLegend": false, + "addTooltip": true, + "metric": { + "bucket": { + "accessor": 0, + "aggType": "terms", + "format": { + "id": "terms", + "params": { + "id": "string", + "missingBucketLabel": "Missing", + "otherBucketLabel": "Other" + } + }, + "params": {} + }, + "colorSchema": "Green to Red", + "colorsRange": [ + { + "from": 0, + "to": 10000 + } + ], + "invertColors": false, + "labels": { + "show": true + }, + "metricColorMode": "None", + "metrics": [ + { + "accessor": 0, + "aggType": "cardinality", + "format": { + "id": "number" + }, + "params": {} + } + ], + "percentageMode": false, + "style": { + "bgColor": false, + "bgFill": "#000", + "fontSize": 60, + "labelColor": false, + "subText": "" + }, + "useRanges": false + }, + "type": "metric" + }, + "title": "Unique Domains [Coredns]", + "type": "metric" + } + }, + "id": "75743f70-443c-11e9-8548-ab7fbe04f038", + "migrationVersion": { + "visualization": "7.0.0" + }, + "references": [ + { + "id": "8d890080-413c-11e9-8548-ab7fbe04f038", + "name": "kibanaSavedObjectMeta.searchSourceJSON.index", + "type": "index-pattern" + } + ], + "type": "visualization", + "updated_at": "2019-03-12T01:26:19.218Z", + "version": "WzE0OTMsM10=" + }, + { + "attributes": { + "description": "", + "kibanaSavedObjectMeta": { + "searchSourceJSON": { + "filter": [], + "query": { + "language": "kuery", + "query": "tags:\"coredns\"" + } + } + }, + "title": "Time Series Visualizer [Coredns]", + "uiStateJSON": {}, + "version": 1, + "visState": { + "aggs": [], + "params": { + "axis_formatter": "number", + "axis_position": "left", + "axis_scale": "normal", + "background_color_rules": [ + { + "id": "65ad37b0-443f-11e9-94ba-69b05a5f82b8" + } + ], + "bar_color_rules": [ + { + "id": "e1f6cda0-443e-11e9-94ba-69b05a5f82b8" + } + ], + "default_index_pattern": "filebeat-*", + "gauge_color_rules": [ + { + "id": "6996a6e0-443f-11e9-94ba-69b05a5f82b8" + } + ], + "gauge_inner_width": 10, + "gauge_style": "half", + "gauge_width": 10, + "id": "61ca57f0-469d-11e7-af02-69e470af7417", + "index_pattern": "", + "interval": "auto", + "series": [ + { + "axis_position": "right", + "chart_type": "line", + "color": "#68BC00", + "fill": 0.5, + "filter": "fileset.name:kubernetes", + "formatter": "number", + "id": "61ca57f1-469d-11e7-af02-69e470af7417", + "label": "CoreDNS Kubernetes", + "line_width": 1, + "metrics": [ + { + "id": "61ca57f2-469d-11e7-af02-69e470af7417", + "type": "count" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_mode": "filter", + "stacked": "none", + "terms_field": "fileset.name" + }, + { + "axis_position": "right", + "chart_type": "line", + "color": "#68BC00", + "fill": 0.5, + "filter": "fileset.name:log", + "formatter": "number", + "id": "3c8999f0-443f-11e9-94ba-69b05a5f82b8", + "label": "CoreDNS Native", + "line_width": 1, + "metrics": [ + { + "id": "3c8999f1-443f-11e9-94ba-69b05a5f82b8", + "type": "count" + } + ], + "point_size": 1, + "separate_axis": 0, + "split_mode": "filter", + "stacked": "none" + } + ], + "show_grid": 1, + "show_legend": 1, + "time_field": "@timestamp", + "type": "timeseries" + }, + "title": "Time Series Visualizer [Coredns]", + "type": "metrics" + } + }, + "id": "cfde7fb0-443d-11e9-8548-ab7fbe04f038", + "migrationVersion": { + "visualization": "7.0.0" + }, + "references": [], + "type": "visualization", + "updated_at": "2019-03-11T20:51:52.103Z", + "version": "WzE0ODksM10=" + } + ], + "version": "8.0.0-SNAPSHOT" +} \ No newline at end of file diff --git a/x-pack/filebeat/module/coredns/fields.go b/x-pack/filebeat/module/coredns/fields.go new file mode 100644 index 00000000000..2275e8e05c2 --- /dev/null +++ b/x-pack/filebeat/module/coredns/fields.go @@ -0,0 +1,23 @@ +// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one +// or more contributor license agreements. Licensed under the Elastic License; +// you may not use this file except in compliance with the Elastic License. + +// Code generated by beats/dev-tools/cmd/asset/asset.go - DO NOT EDIT. + +package coredns + +import ( + "github.com/elastic/beats/libbeat/asset" +) + +func init() { + if err := asset.SetFields("filebeat", "coredns", asset.ModuleFieldsPri, AssetCoredns); err != nil { + panic(err) + } +} + +// AssetCoredns returns asset data. +// This is the base64 encoded gzipped contents of module/coredns. +func AssetCoredns() string { + return "eJy00kFugzAQheE9p3gXSA7Aopt22256gMqxB2LF8dAZo4qcvsIEApIVqYm6S0ae78eIHU401LAs5KJWQPIpUI3XZeBIrfgueY41XioAeGfXB0LDgqOJLvjYInCr6IRdb8nhMKzIxlNwWlfADtGcaZ0D0tBRjVa47/L/Qg/zwpWCaRIJIsvZBH8x49l88Fa6tby7GlPoRMMPyzwrxgDvwA3SkfD28YkkJqqxubKhv3uSYa/+QpuEj4lakuusGZ8y1TgMifR+dpTW4eyXkjYY1b9fazExAQV5/P0MnPcL7og94+b9jSukHUelvWX3ID0TyERZb4JpH3zVCz8ZZf//vp45kQ9s4i6qkv3i0yZ8YA5k4v3ItJpvtMyq3wAAAP//8MJAFA==" +} diff --git a/x-pack/filebeat/module/coredns/log/config/coredns.yml b/x-pack/filebeat/module/coredns/log/config/coredns.yml new file mode 100644 index 00000000000..c085c9e3aab --- /dev/null +++ b/x-pack/filebeat/module/coredns/log/config/coredns.yml @@ -0,0 +1,7 @@ +type: log +paths: +{{ range $i, $path := .paths }} + - {{$path}} +{{ end }} +tags: {{.tags}} +processors: diff --git a/x-pack/filebeat/module/coredns/log/ingest/pipeline-entry.json b/x-pack/filebeat/module/coredns/log/ingest/pipeline-entry.json new file mode 100644 index 00000000000..bea5c11f4ed --- /dev/null +++ b/x-pack/filebeat/module/coredns/log/ingest/pipeline-entry.json @@ -0,0 +1,101 @@ +{ + "description": "Pipeline for normalizing Kubernetes coredns logs", + "processors": [ + { + "pipeline": { + "if": "ctx.message.charAt(0) == (char)(\"{\")", + "name": "{< IngestPipeline "pipeline-json" >}" + } + }, + { + "pipeline": { + "if": "ctx.message.charAt(0) != (char)(\"{\")", + "name": "{< IngestPipeline "pipeline-plaintext" >}" + } + }, + { + "script": { + "lang": "painless", + "source": "ctx.event.created = ctx['@timestamp']; ctx['@timestamp'] = ctx['timestamp']; ctx.remove('timestamp');", + "ignore_failure" : true + } + }, + { + "script": { + "lang": "painless", + "source": "ctx['source'] = new HashMap(); if (ctx.temp.source.charAt(0) == (char)(\"[\")) { def p = ctx.temp.source.indexOf (']'); def l = ctx.temp.source.length(); ctx.source.address = ctx.temp.source.substring(1, p); ctx.source.port = ctx.temp.source.substring(p+2, l);} else { def p = ctx.temp.source.indexOf (':'); def l = ctx.temp.source.length(); ctx.source.address = ctx.temp.source.substring(0, p); ctx.source.port = ctx.temp.source.substring(p+1, l);} ctx.remove('temp');", + "if": "ctx.temp?.source != null" + } + }, + { + "set": { + "field": "source.ip", + "value": "{{source.address}}", + "if": "ctx.source?.address != null" + } + }, + { + "convert" : { + "field" : "source.port", + "type": "integer" + } + }, + { + "convert" : { + "field" : "coredns.duration", + "type": "double" + } + }, + { + "convert" : { + "field" : "coredns.query.size", + "type": "long" + } + }, + { + "convert" : { + "field" : "coredns.response.size", + "type": "long" + } + }, + { + "convert" : { + "field" : "coredns.dnssec_ok", + "type": "boolean" + } + }, + { + "uppercase": { + "field": "coredns.response.flags" + } + }, + { + "split": { + "field": "coredns.response.flags", + "separator": "," + } + }, + { + "script": { + "lang": "painless", + "source": "ctx.event.duration = Math.round(ctx.coredns.duration * params.scale)", + "params": { + "scale": 1000000000 + }, + "if": "ctx.coredns?.duration != null" + } + }, + { + "remove": { + "field": "coredns.duration", + "ignore_missing": true + } + } + ], + "on_failure" : [{ + "set" : { + "field" : "error.message", + "value" : "{{ _ingest.on_failure_message }}" + } + }] +} diff --git a/x-pack/filebeat/module/coredns/log/ingest/pipeline-json.json b/x-pack/filebeat/module/coredns/log/ingest/pipeline-json.json new file mode 100644 index 00000000000..40364fa0b6d --- /dev/null +++ b/x-pack/filebeat/module/coredns/log/ingest/pipeline-json.json @@ -0,0 +1,42 @@ +{ + "description": "Pipeline for dissecting message field in JSON logs", + "processors": [ + { + "json" : { + "field" : "message", + "target_field" : "json" + } + }, + { + "dissect": { + "field": "json.message", + "pattern": "%{timestamp} [%{log.level}] %{temp.source} - %{coredns.id} \"%{coredns.query.type} %{coredns.query.class} %{coredns.query.name} %{network.transport} %{coredns.query.size} %{coredns.dnssec_ok} %{bufsize}\" %{coredns.response.code} %{coredns.response.flags} %{coredns.response.size} %{coredns.duration}s" + } + }, + { + "remove": { + "field": ["message"], + "ignore_failure" : true + } + }, + { + "rename": { + "field": "json.message", + "target_field": "message", + "ignore_failure" : true + } + }, + { + "remove": { + "field": ["json", "bufsize"], + "ignore_failure" : true + } + } + ], + "on_failure" : [{ + "set" : { + "field" : "error.message", + "value" : "{{ _ingest.on_failure_message }}" + } + }] +} diff --git a/x-pack/filebeat/module/coredns/log/ingest/pipeline-plaintext.json b/x-pack/filebeat/module/coredns/log/ingest/pipeline-plaintext.json new file mode 100644 index 00000000000..f1b0c1d26ea --- /dev/null +++ b/x-pack/filebeat/module/coredns/log/ingest/pipeline-plaintext.json @@ -0,0 +1,23 @@ +{ + "description": "Pipeline for dissecting text in plaintext logs", + "processors": [ + { + "dissect": { + "field": "message", + "pattern": "%{timestamp} [%{log.level}] %{temp.source} - %{coredns.id} \"%{coredns.query.type} %{coredns.query.class} %{coredns.query.name} %{network.transport} %{coredns.query.size} %{coredns.dnssec_ok} %{bufsize}\" %{coredns.response.code} %{coredns.response.flags} %{coredns.response.size} %{coredns.duration}s" + } + }, + { + "remove": { + "field": ["bufsize"], + "ignore_failure" : true + } + } + ], + "on_failure" : [{ + "set" : { + "field" : "error.message", + "value" : "{{ _ingest.on_failure_message }}" + } + }] +} diff --git a/x-pack/filebeat/module/coredns/log/manifest.yml b/x-pack/filebeat/module/coredns/log/manifest.yml new file mode 100644 index 00000000000..34997379524 --- /dev/null +++ b/x-pack/filebeat/module/coredns/log/manifest.yml @@ -0,0 +1,15 @@ +module_version: 1.0 + +var: + - name: paths + default: + # Change this if it is not "/var/log/coredns.log" in native deployment mode + - /var/log/coredns.log + - name: tags + default: [coredns] + +ingest_pipeline: + - ingest/pipeline-entry.json + - ingest/pipeline-json.json + - ingest/pipeline-plaintext.json +input: config/coredns.yml diff --git a/x-pack/filebeat/module/coredns/log/test/coredns-json.log b/x-pack/filebeat/module/coredns/log/test/coredns-json.log new file mode 100644 index 00000000000..9a2f9b6dea4 --- /dev/null +++ b/x-pack/filebeat/module/coredns/log/test/coredns-json.log @@ -0,0 +1,3 @@ +{"message":"2019-02-12T00:27:28.903Z [INFO] 172.17.0.4:36413 - 21583 \"A IN httpbin.org.cluster.local. udp 43 false 512\" NXDOMAIN qr,rd,ra 136 0.000102078s", "stream": "stdout", "time": "2019-02-12T00:27:28.903433597Z", "kubernetes": { "container": { "name": "coredns" }, "node": { "name": "minikube" }, "pod": { "uid": "d57d545e-2a9d-11e9-995f-08002730e0dc", "name": "coredns-86c58d9df4-jwhsg" }, "namespace": "kube-system", "replicaset": { "name": "coredns-86c58d9df4" }, "labels": { "pod-template-hash": "86c58d9df4", "k8s-app": "kube-dns" } } } +{"message":"2019-03-19T02:57:23.213Z [INFO] 172.17.0.9:37723 - 6966 \"A IN httpbin.org. udp 29 false 512\" NOERROR qr,rd,ra 83 0.000082083s\n","stream":"stdout","time":"2019-03-19T02:57:23.214583742Z", "kubernetes": { "container": { "name": "coredns" }, "node": { "name": "minikube" }, "pod": { "uid": "d57d545e-2a9d-11e9-995f-08002730e0dc", "name": "coredns-86c58d9df4-jwhsg" }, "namespace": "kube-system", "replicaset": { "name": "coredns-86c58d9df4" }, "labels": { "pod-template-hash": "86c58d9df4", "k8s-app": "kube-dns" } } } +{"message":"2019-03-11T07:16:34.013Z [INFO] [::1]:37915 - 62762 \"AAAA IN czbaoyu.com. udp 29 false 512\" NOERROR qr,rd,ra 100 0.00006286s\n","stream":"stdout","time":"2019-03-11T07:16:34.013970788Z", "kubernetes": { "container": { "name": "coredns" }, "node": { "name": "minikube" }, "pod": { "uid": "d57d545e-2a9d-11e9-995f-08002730e0dc", "name": "coredns-86c58d9df4-jwhsg" }, "namespace": "kube-system", "replicaset": { "name": "coredns-86c58d9df4" }, "labels": { "pod-template-hash": "86c58d9df4", "k8s-app": "kube-dns" } } } diff --git a/x-pack/filebeat/module/coredns/log/test/coredns-json.log-expected.json b/x-pack/filebeat/module/coredns/log/test/coredns-json.log-expected.json new file mode 100644 index 00000000000..3764287da3c --- /dev/null +++ b/x-pack/filebeat/module/coredns/log/test/coredns-json.log-expected.json @@ -0,0 +1,101 @@ +[ + { + "@timestamp": "2019-02-12T00:27:28.903Z", + "coredns.dnssec_ok": false, + "coredns.id": "21583", + "coredns.query.class": "IN", + "coredns.query.name": "httpbin.org.cluster.local.", + "coredns.query.size": 43, + "coredns.query.type": "A", + "coredns.response.code": "NXDOMAIN", + "coredns.response.flags": [ + "QR", + "RD", + "RA" + ], + "coredns.response.size": 136, + "ecs.version": "1.0.0", + "event.dataset": "coredns.log", + "event.duration": 102078, + "event.module": "coredns", + "fileset.name": "log", + "input.type": "log", + "log.level": "INFO", + "log.offset": 0, + "message": "2019-02-12T00:27:28.903Z [INFO] 172.17.0.4:36413 - 21583 \"A IN httpbin.org.cluster.local. udp 43 false 512\" NXDOMAIN qr,rd,ra 136 0.000102078s", + "network.transport": "udp", + "service.type": "coredns", + "source.address": "172.17.0.4", + "source.ip": "172.17.0.4", + "source.port": 36413, + "tags": [ + "coredns" + ] + }, + { + "@timestamp": "2019-03-19T02:57:23.213Z", + "coredns.dnssec_ok": false, + "coredns.id": "6966", + "coredns.query.class": "IN", + "coredns.query.name": "httpbin.org.", + "coredns.query.size": 29, + "coredns.query.type": "A", + "coredns.response.code": "NOERROR", + "coredns.response.flags": [ + "QR", + "RD", + "RA" + ], + "coredns.response.size": 83, + "ecs.version": "1.0.0", + "event.dataset": "coredns.log", + "event.duration": 82083, + "event.module": "coredns", + "fileset.name": "log", + "input.type": "log", + "log.level": "INFO", + "log.offset": 550, + "message": "2019-03-19T02:57:23.213Z [INFO] 172.17.0.9:37723 - 6966 \"A IN httpbin.org. udp 29 false 512\" NOERROR qr,rd,ra 83 0.000082083s\n", + "network.transport": "udp", + "service.type": "coredns", + "source.address": "172.17.0.9", + "source.ip": "172.17.0.9", + "source.port": 37723, + "tags": [ + "coredns" + ] + }, + { + "@timestamp": "2019-03-11T07:16:34.013Z", + "coredns.dnssec_ok": false, + "coredns.id": "62762", + "coredns.query.class": "IN", + "coredns.query.name": "czbaoyu.com.", + "coredns.query.size": 29, + "coredns.query.type": "AAAA", + "coredns.response.code": "NOERROR", + "coredns.response.flags": [ + "QR", + "RD", + "RA" + ], + "coredns.response.size": 100, + "ecs.version": "1.0.0", + "event.dataset": "coredns.log", + "event.duration": 62860, + "event.module": "coredns", + "fileset.name": "log", + "input.type": "log", + "log.level": "INFO", + "log.offset": 1081, + "message": "2019-03-11T07:16:34.013Z [INFO] [::1]:37915 - 62762 \"AAAA IN czbaoyu.com. udp 29 false 512\" NOERROR qr,rd,ra 100 0.00006286s\n", + "network.transport": "udp", + "service.type": "coredns", + "source.address": "::1", + "source.ip": "::1", + "source.port": 37915, + "tags": [ + "coredns" + ] + } +] \ No newline at end of file diff --git a/x-pack/filebeat/module/coredns/log/test/coredns.log b/x-pack/filebeat/module/coredns/log/test/coredns.log new file mode 100644 index 00000000000..ede11815be5 --- /dev/null +++ b/x-pack/filebeat/module/coredns/log/test/coredns.log @@ -0,0 +1,2 @@ +2019-03-06T08:55:28.903Z [INFO] 172.17.0.4:36413 - 21583 "A IN httpbin.org.cluster.local. udp 43 false 512" NXDOMAIN qr,rd,ra 136 0.000102078s +2019-03-18T22:13:36.289-07:00 [INFO] [::1]:57413 - 14639 "A IN www.yahoo.com. udp 42 false 4096" NOERROR qr,rd,ra 188 0.020948545s diff --git a/x-pack/filebeat/module/coredns/log/test/coredns.log-expected.json b/x-pack/filebeat/module/coredns/log/test/coredns.log-expected.json new file mode 100644 index 00000000000..2b86692ec8e --- /dev/null +++ b/x-pack/filebeat/module/coredns/log/test/coredns.log-expected.json @@ -0,0 +1,68 @@ +[ + { + "@timestamp": "2019-03-06T08:55:28.903Z", + "coredns.dnssec_ok": false, + "coredns.id": "21583", + "coredns.query.class": "IN", + "coredns.query.name": "httpbin.org.cluster.local.", + "coredns.query.size": 43, + "coredns.query.type": "A", + "coredns.response.code": "NXDOMAIN", + "coredns.response.flags": [ + "QR", + "RD", + "RA" + ], + "coredns.response.size": 136, + "ecs.version": "1.0.0", + "event.dataset": "coredns.log", + "event.duration": 102078, + "event.module": "coredns", + "fileset.name": "log", + "input.type": "log", + "log.level": "INFO", + "log.offset": 0, + "message": "2019-03-06T08:55:28.903Z [INFO] 172.17.0.4:36413 - 21583 \"A IN httpbin.org.cluster.local. udp 43 false 512\" NXDOMAIN qr,rd,ra 136 0.000102078s", + "network.transport": "udp", + "service.type": "coredns", + "source.address": "172.17.0.4", + "source.ip": "172.17.0.4", + "source.port": 36413, + "tags": [ + "coredns" + ] + }, + { + "@timestamp": "2019-03-18T22:13:36.289-07:00", + "coredns.dnssec_ok": false, + "coredns.id": "14639", + "coredns.query.class": "IN", + "coredns.query.name": "www.yahoo.com.", + "coredns.query.size": 42, + "coredns.query.type": "A", + "coredns.response.code": "NOERROR", + "coredns.response.flags": [ + "QR", + "RD", + "RA" + ], + "coredns.response.size": 188, + "ecs.version": "1.0.0", + "event.dataset": "coredns.log", + "event.duration": 20948545, + "event.module": "coredns", + "fileset.name": "log", + "input.type": "log", + "log.level": "INFO", + "log.offset": 143, + "message": "2019-03-18T22:13:36.289-07:00 [INFO] [::1]:57413 - 14639 \"A IN www.yahoo.com. udp 42 false 4096\" NOERROR qr,rd,ra 188 0.020948545s", + "network.transport": "udp", + "service.type": "coredns", + "source.address": "::1", + "source.ip": "::1", + "source.port": 57413, + "tags": [ + "coredns" + ] + } +] \ No newline at end of file diff --git a/x-pack/filebeat/module/coredns/module.yml b/x-pack/filebeat/module/coredns/module.yml new file mode 100644 index 00000000000..e52f7f3de7f --- /dev/null +++ b/x-pack/filebeat/module/coredns/module.yml @@ -0,0 +1,3 @@ +dashboards: +- id: 53aa1f70-443e-11e9-8548-ab7fbe04f038 + file: Coredns-Overview-Dashboard.json \ No newline at end of file diff --git a/x-pack/filebeat/modules.d/coredns.yml.disabled b/x-pack/filebeat/modules.d/coredns.yml.disabled new file mode 100644 index 00000000000..d4a871455fd --- /dev/null +++ b/x-pack/filebeat/modules.d/coredns.yml.disabled @@ -0,0 +1,11 @@ +# Module: coredns +# Docs: https://www.elastic.co/guide/en/beats/filebeat/master/filebeat-module-coredns.html + +- module: coredns + # Fileset for native deployment + log: + enabled: true + + # Set custom paths for the log files. If left empty, + # Filebeat will choose the paths depending on your OS. + #var.paths: From a08c1a880df1eaf0afa7bb79a4d46edf9e754be5 Mon Sep 17 00:00:00 2001 From: Ray Qiu Date: Mon, 25 Mar 2019 19:44:56 -0700 Subject: [PATCH 272/332] Fix image for docs build (#11460) Fix coredns image in docs.asciidoc for docs build --- CHANGELOG.next.asciidoc | 1 + .../docs/images/kibana-coredns.jpg | Bin .../module/coredns/_meta/docs.asciidoc | 2 +- .../coredns/_meta/images/kibana-coredns.jpg | Bin 0 -> 256863 bytes 4 files changed, 2 insertions(+), 1 deletion(-) rename x-pack/filebeat/module/coredns/_meta/images/Coredns_Overview_Dashboard.jpg => filebeat/docs/images/kibana-coredns.jpg (100%) create mode 100644 x-pack/filebeat/module/coredns/_meta/images/kibana-coredns.jpg diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index b952c9dc0c4..375169878d3 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -183,6 +183,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Add support for iis log with different address format. {issue}11255[11255] {pull}11256[11256] - Add fix to parse syslog message with priority value 0. {issue}11010[11010] - Don't apply multiline rules in Logstash json logs. {pull}11346[11346] +- Fix coredns image in docs.asciidoc for docs build. {pull}11460[11460] *Heartbeat* diff --git a/x-pack/filebeat/module/coredns/_meta/images/Coredns_Overview_Dashboard.jpg b/filebeat/docs/images/kibana-coredns.jpg similarity index 100% rename from x-pack/filebeat/module/coredns/_meta/images/Coredns_Overview_Dashboard.jpg rename to filebeat/docs/images/kibana-coredns.jpg diff --git a/x-pack/filebeat/module/coredns/_meta/docs.asciidoc b/x-pack/filebeat/module/coredns/_meta/docs.asciidoc index 613b05bca4c..30573326e88 100644 --- a/x-pack/filebeat/module/coredns/_meta/docs.asciidoc +++ b/x-pack/filebeat/module/coredns/_meta/docs.asciidoc @@ -21,4 +21,4 @@ with other versions of Kubernetes. This module comes with a sample dashboard. [role="screenshot"] -image::./images/Coredns_Overview_Dashboard.jpg[] +image:./images/kibana-coredns.jpg[] diff --git a/x-pack/filebeat/module/coredns/_meta/images/kibana-coredns.jpg b/x-pack/filebeat/module/coredns/_meta/images/kibana-coredns.jpg new file mode 100644 index 0000000000000000000000000000000000000000..70921fa9bafb24da9a3e19bbbede5d0e43c0f0f0 GIT binary patch literal 256863 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[Bw9{NT%$a*%@=bZRmRBRfcwEMj= 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 I_Sd2R2XERsUH||9 literal 0 HcmV?d00001 From b3af1f61712fe9629aa219b135ee3093b187673a Mon Sep 17 00:00:00 2001 From: Ray Qiu Date: Mon, 25 Mar 2019 20:26:18 -0700 Subject: [PATCH 273/332] Fix docs build (#11461) * Fix docs build again --- CHANGELOG.next.asciidoc | 2 +- filebeat/docs/modules/coredns.asciidoc | 2 +- x-pack/filebeat/module/coredns/_meta/docs.asciidoc | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 375169878d3..80d42fecd27 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -183,7 +183,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Add support for iis log with different address format. {issue}11255[11255] {pull}11256[11256] - Add fix to parse syslog message with priority value 0. {issue}11010[11010] - Don't apply multiline rules in Logstash json logs. {pull}11346[11346] -- Fix coredns image in docs.asciidoc for docs build. {pull}11460[11460] +- Fix coredns image in docs.asciidoc for docs build. {pull}11460[11460] {pull}11461[11461] *Heartbeat* diff --git a/filebeat/docs/modules/coredns.asciidoc b/filebeat/docs/modules/coredns.asciidoc index 6e6d9040e7b..ce1c95b27af 100644 --- a/filebeat/docs/modules/coredns.asciidoc +++ b/filebeat/docs/modules/coredns.asciidoc @@ -26,7 +26,7 @@ with other versions of Kubernetes. This module comes with a sample dashboard. [role="screenshot"] -image::./images/Coredns_Overview_Dashboard.jpg[] +image::./images/kibana-coredns.jpg[] [float] diff --git a/x-pack/filebeat/module/coredns/_meta/docs.asciidoc b/x-pack/filebeat/module/coredns/_meta/docs.asciidoc index 30573326e88..b980046ff56 100644 --- a/x-pack/filebeat/module/coredns/_meta/docs.asciidoc +++ b/x-pack/filebeat/module/coredns/_meta/docs.asciidoc @@ -21,4 +21,4 @@ with other versions of Kubernetes. This module comes with a sample dashboard. [role="screenshot"] -image:./images/kibana-coredns.jpg[] +image::./images/kibana-coredns.jpg[] From a174425cb45c406a748b290dd2ef892c731cdac7 Mon Sep 17 00:00:00 2001 From: Jaime Soriano Pastor Date: Tue, 26 Mar 2019 11:19:50 +0100 Subject: [PATCH 274/332] Fix metrics appending in prometheus collector (#11398) Update method of common.MapStr doesn't update nested maps so we were overwriting existing metrics. Fix fields definition to add wildcard so fields match. Add testdata. --- metricbeat/docs/fields.asciidoc | 4 +- metricbeat/module/prometheus/_meta/fields.yml | 6 +- .../prometheus/collector/_meta/data.json | 14 +- .../collector/_meta/testdata/config.yml | 3 + .../collector/_meta/testdata/docs.plain | 6 + .../_meta/testdata/docs.plain-expected.json | 25 ++ .../_meta/testdata/etcd-3.3.10-partial.plain | 214 +++++++++++++ .../etcd-3.3.10-partial.plain-expected.json | 239 +++++++++++++++ .../testdata/prometheus-2.6.0-partial.plain | 135 +++++++++ ...ometheus-2.6.0-partial.plain-expected.json | 283 ++++++++++++++++++ .../module/prometheus/collector/collector.go | 10 +- .../collector/collector_integration_test.go | 65 ---- metricbeat/module/prometheus/fields.go | 2 +- 13 files changed, 922 insertions(+), 84 deletions(-) create mode 100644 metricbeat/module/prometheus/collector/_meta/testdata/config.yml create mode 100644 metricbeat/module/prometheus/collector/_meta/testdata/docs.plain create mode 100644 metricbeat/module/prometheus/collector/_meta/testdata/docs.plain-expected.json create mode 100644 metricbeat/module/prometheus/collector/_meta/testdata/etcd-3.3.10-partial.plain create mode 100644 metricbeat/module/prometheus/collector/_meta/testdata/etcd-3.3.10-partial.plain-expected.json create mode 100644 metricbeat/module/prometheus/collector/_meta/testdata/prometheus-2.6.0-partial.plain create mode 100644 metricbeat/module/prometheus/collector/_meta/testdata/prometheus-2.6.0-partial.plain-expected.json delete mode 100644 metricbeat/module/prometheus/collector/collector_integration_test.go diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index 3fa49552947..15653f1e5f6 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -20707,7 +20707,7 @@ Stats scraped from a Prometheus endpoint. -*`prometheus.labels`*:: +*`prometheus.labels.*`*:: + -- type: object @@ -20717,7 +20717,7 @@ Prometheus metric labels -- -*`prometheus.metrics`*:: +*`prometheus.metrics.*`*:: + -- type: object diff --git a/metricbeat/module/prometheus/_meta/fields.yml b/metricbeat/module/prometheus/_meta/fields.yml index d0f8a48c2fa..c6d1f9a1746 100644 --- a/metricbeat/module/prometheus/_meta/fields.yml +++ b/metricbeat/module/prometheus/_meta/fields.yml @@ -7,14 +7,14 @@ settings: ["ssl", "http"] fields: # Order is important here, labels will match first, the rest are double - - name: prometheus.labels + - name: prometheus.labels.* type: object object_type: keyword description: > Prometheus metric labels - - name: prometheus.metrics + - name: prometheus.metrics.* type: object object_type: double object_type_mapping_type: "*" description: > - Prometheus metric \ No newline at end of file + Prometheus metric diff --git a/metricbeat/module/prometheus/collector/_meta/data.json b/metricbeat/module/prometheus/collector/_meta/data.json index 6f63e95343c..75b369afa69 100644 --- a/metricbeat/module/prometheus/collector/_meta/data.json +++ b/metricbeat/module/prometheus/collector/_meta/data.json @@ -1,9 +1,5 @@ { - "@timestamp": "2017-10-12T08:05:34.853Z", - "agent": { - "hostname": "host.example.com", - "name": "host.example.com" - }, + "@timestamp": "2019-03-01T08:05:34.853Z", "event": { "dataset": "prometheus.collector", "duration": 115000, @@ -14,15 +10,15 @@ }, "prometheus": { "labels": { - "interval": "15s" + "listener_name": "http" }, "metrics": { - "prometheus_target_interval_length_seconds_count": 1, - "prometheus_target_interval_length_seconds_sum": 15.000226176 + "net_conntrack_listener_conn_accepted_total": 3, + "net_conntrack_listener_conn_closed_total": 0 } }, "service": { - "address": "172.29.0.2:9090", + "address": "127.0.0.1:55555", "type": "prometheus" } } \ No newline at end of file diff --git a/metricbeat/module/prometheus/collector/_meta/testdata/config.yml b/metricbeat/module/prometheus/collector/_meta/testdata/config.yml new file mode 100644 index 00000000000..ab6bf241654 --- /dev/null +++ b/metricbeat/module/prometheus/collector/_meta/testdata/config.yml @@ -0,0 +1,3 @@ +type: http +url: "/metrics" +suffix: plain diff --git a/metricbeat/module/prometheus/collector/_meta/testdata/docs.plain b/metricbeat/module/prometheus/collector/_meta/testdata/docs.plain new file mode 100644 index 00000000000..e1639901d26 --- /dev/null +++ b/metricbeat/module/prometheus/collector/_meta/testdata/docs.plain @@ -0,0 +1,6 @@ +# HELP net_conntrack_listener_conn_accepted_total Total number of connections opened to the listener of a given name. +# TYPE net_conntrack_listener_conn_accepted_total counter +net_conntrack_listener_conn_accepted_total{listener_name="http"} 3 +# HELP net_conntrack_listener_conn_closed_total Total number of connections closed that were made to the listener of a given name. +# TYPE net_conntrack_listener_conn_closed_total counter +net_conntrack_listener_conn_closed_total{listener_name="http"} 0 diff --git a/metricbeat/module/prometheus/collector/_meta/testdata/docs.plain-expected.json b/metricbeat/module/prometheus/collector/_meta/testdata/docs.plain-expected.json new file mode 100644 index 00000000000..60ee88f5f0e --- /dev/null +++ b/metricbeat/module/prometheus/collector/_meta/testdata/docs.plain-expected.json @@ -0,0 +1,25 @@ +[ + { + "event": { + "dataset": "prometheus.collector", + "duration": 115000, + "module": "prometheus" + }, + "metricset": { + "name": "collector" + }, + "prometheus": { + "labels": { + "listener_name": "http" + }, + "metrics": { + "net_conntrack_listener_conn_accepted_total": 3, + "net_conntrack_listener_conn_closed_total": 0 + } + }, + "service": { + "address": "127.0.0.1:55555", + "type": "prometheus" + } + } +] \ No newline at end of file diff --git a/metricbeat/module/prometheus/collector/_meta/testdata/etcd-3.3.10-partial.plain b/metricbeat/module/prometheus/collector/_meta/testdata/etcd-3.3.10-partial.plain new file mode 100644 index 00000000000..eae96e07c3a --- /dev/null +++ b/metricbeat/module/prometheus/collector/_meta/testdata/etcd-3.3.10-partial.plain @@ -0,0 +1,214 @@ +# HELP etcd_debugging_mvcc_db_compaction_keys_total Total number of db keys compacted. +# TYPE etcd_debugging_mvcc_db_compaction_keys_total counter +etcd_debugging_mvcc_db_compaction_keys_total 0 +# HELP etcd_debugging_mvcc_db_total_size_in_bytes Total size of the underlying database physically allocated in bytes. Use etcd_mvcc_db_total_size_in_bytes +# TYPE etcd_debugging_mvcc_db_total_size_in_bytes gauge +etcd_debugging_mvcc_db_total_size_in_bytes 20480 +# HELP etcd_debugging_mvcc_delete_total Total number of deletes seen by this member. +# TYPE etcd_debugging_mvcc_delete_total counter +etcd_debugging_mvcc_delete_total 0 +# HELP etcd_debugging_mvcc_events_total Total number of events sent by this member. +# TYPE etcd_debugging_mvcc_events_total counter +etcd_debugging_mvcc_events_total 0 +# HELP etcd_debugging_mvcc_keys_total Total number of keys. +# TYPE etcd_debugging_mvcc_keys_total gauge +etcd_debugging_mvcc_keys_total 0 +# HELP etcd_debugging_mvcc_pending_events_total Total number of pending events to be sent. +# TYPE etcd_debugging_mvcc_pending_events_total gauge +etcd_debugging_mvcc_pending_events_total 0 +# HELP etcd_debugging_mvcc_put_total Total number of puts seen by this member. +# TYPE etcd_debugging_mvcc_put_total counter +etcd_debugging_mvcc_put_total 0 +# HELP etcd_debugging_mvcc_range_total Total number of ranges seen by this member. +# TYPE etcd_debugging_mvcc_range_total counter +etcd_debugging_mvcc_range_total 0 +# HELP etcd_debugging_mvcc_slow_watcher_total Total number of unsynced slow watchers. +# TYPE etcd_debugging_mvcc_slow_watcher_total gauge +etcd_debugging_mvcc_slow_watcher_total 0 +# HELP etcd_debugging_mvcc_txn_total Total number of txns seen by this member. +# TYPE etcd_debugging_mvcc_txn_total counter +etcd_debugging_mvcc_txn_total 0 +# HELP etcd_debugging_mvcc_watch_stream_total Total number of watch streams. +# TYPE etcd_debugging_mvcc_watch_stream_total gauge +etcd_debugging_mvcc_watch_stream_total 0 +# HELP etcd_debugging_mvcc_watcher_total Total number of watchers. +# TYPE etcd_debugging_mvcc_watcher_total gauge +etcd_debugging_mvcc_watcher_total 0 +# HELP etcd_debugging_server_lease_expired_total The total number of expired leases. +# TYPE etcd_debugging_server_lease_expired_total counter +etcd_debugging_server_lease_expired_total 0 +# HELP etcd_debugging_store_expires_total Total number of expired keys. +# TYPE etcd_debugging_store_expires_total counter +etcd_debugging_store_expires_total 0 +# HELP etcd_debugging_store_reads_total Total number of reads action by (get/getRecursive), local to this member. +# TYPE etcd_debugging_store_reads_total counter +etcd_debugging_store_reads_total{action="getRecursive"} 1 +# HELP etcd_debugging_store_watch_requests_total Total number of incoming watch requests (new or reestablished). +# TYPE etcd_debugging_store_watch_requests_total counter +etcd_debugging_store_watch_requests_total 0 +# HELP etcd_debugging_store_watchers Count of currently active watchers. +# TYPE etcd_debugging_store_watchers gauge +etcd_debugging_store_watchers 0 +# HELP etcd_debugging_store_writes_total Total number of writes (e.g. set/compareAndDelete) seen by this member. +# TYPE etcd_debugging_store_writes_total counter +etcd_debugging_store_writes_total{action="create"} 1 +etcd_debugging_store_writes_total{action="set"} 2 +# HELP etcd_grpc_proxy_cache_hits_total Total number of cache hits +# TYPE etcd_grpc_proxy_cache_hits_total gauge +etcd_grpc_proxy_cache_hits_total 0 +# HELP etcd_grpc_proxy_cache_keys_total Total number of keys/ranges cached +# TYPE etcd_grpc_proxy_cache_keys_total gauge +etcd_grpc_proxy_cache_keys_total 0 +# HELP etcd_grpc_proxy_cache_misses_total Total number of cache misses +# TYPE etcd_grpc_proxy_cache_misses_total gauge +etcd_grpc_proxy_cache_misses_total 0 +# HELP etcd_grpc_proxy_events_coalescing_total Total number of events coalescing +# TYPE etcd_grpc_proxy_events_coalescing_total counter +etcd_grpc_proxy_events_coalescing_total 0 +# HELP etcd_grpc_proxy_watchers_coalescing_total Total number of current watchers coalescing +# TYPE etcd_grpc_proxy_watchers_coalescing_total gauge +etcd_grpc_proxy_watchers_coalescing_total 0 +# HELP etcd_mvcc_db_total_size_in_bytes Total size of the underlying database physically allocated in bytes. +# TYPE etcd_mvcc_db_total_size_in_bytes gauge +etcd_mvcc_db_total_size_in_bytes 20480 +# HELP etcd_mvcc_db_total_size_in_use_in_bytes Total size of the underlying database logically in use in bytes. +# TYPE etcd_mvcc_db_total_size_in_use_in_bytes gauge +etcd_mvcc_db_total_size_in_use_in_bytes 16384 +# HELP etcd_network_client_grpc_received_bytes_total The total number of bytes received from grpc clients. +# TYPE etcd_network_client_grpc_received_bytes_total counter +etcd_network_client_grpc_received_bytes_total 0 +# HELP etcd_network_client_grpc_sent_bytes_total The total number of bytes sent to grpc clients. +# TYPE etcd_network_client_grpc_sent_bytes_total counter +etcd_network_client_grpc_sent_bytes_total 0 +# HELP etcd_server_go_version Which Go version server is running with. 1 for 'server_go_version' label with current version. +# TYPE etcd_server_go_version gauge +etcd_server_go_version{server_go_version="go1.10.4"} 1 +# HELP etcd_server_has_leader Whether or not a leader exists. 1 is existence, 0 is not. +# TYPE etcd_server_has_leader gauge +etcd_server_has_leader 1 +# HELP etcd_server_health_failures The total number of failed health checks +# TYPE etcd_server_health_failures counter +etcd_server_health_failures 0 +# HELP etcd_server_health_success The total number of successful health checks +# TYPE etcd_server_health_success counter +etcd_server_health_success 0 +# HELP etcd_server_heartbeat_send_failures_total The total number of leader heartbeat send failures (likely overloaded from slow disk). +# TYPE etcd_server_heartbeat_send_failures_total counter +etcd_server_heartbeat_send_failures_total 0 +# HELP etcd_server_id Server or member ID in hexadecimal format. 1 for 'server_id' label with current ID. +# TYPE etcd_server_id gauge +etcd_server_id{server_id="8e9e05c52164694d"} 1 +# HELP etcd_server_is_leader Whether or not this member is a leader. 1 if is, 0 otherwise. +# TYPE etcd_server_is_leader gauge +etcd_server_is_leader 1 +# HELP etcd_server_leader_changes_seen_total The number of leader changes seen. +# TYPE etcd_server_leader_changes_seen_total counter +etcd_server_leader_changes_seen_total 1 +# HELP etcd_server_proposals_applied_total The total number of consensus proposals applied. +# TYPE etcd_server_proposals_applied_total gauge +etcd_server_proposals_applied_total 4 +# HELP etcd_server_proposals_committed_total The total number of consensus proposals committed. +# TYPE etcd_server_proposals_committed_total gauge +etcd_server_proposals_committed_total 4 +# HELP etcd_server_proposals_failed_total The total number of failed proposals seen. +# TYPE etcd_server_proposals_failed_total counter +etcd_server_proposals_failed_total 0 +# HELP etcd_server_proposals_pending The current number of pending proposals to commit. +# TYPE etcd_server_proposals_pending gauge +etcd_server_proposals_pending 0 +# HELP etcd_server_quota_backend_bytes Current backend storage quota size in bytes. +# TYPE etcd_server_quota_backend_bytes gauge +etcd_server_quota_backend_bytes 2.147483648e+09 +# HELP etcd_server_read_indexes_failed_total The total number of failed read indexes seen. +# TYPE etcd_server_read_indexes_failed_total counter +etcd_server_read_indexes_failed_total 0 +# HELP etcd_server_slow_apply_total The total number of slow apply requests (likely overloaded from slow disk). +# TYPE etcd_server_slow_apply_total counter +etcd_server_slow_apply_total 0 +# HELP etcd_server_slow_read_indexes_total The total number of pending read indexes not in sync with leader's or timed out read index requests. +# TYPE etcd_server_slow_read_indexes_total counter +etcd_server_slow_read_indexes_total 0 +# HELP etcd_server_version Which version is running. 1 for 'server_version' label with current version. +# TYPE etcd_server_version gauge +etcd_server_version{server_version="3.3.10"} 1 +# HELP go_goroutines Number of goroutines that currently exist. +# TYPE go_goroutines gauge +go_goroutines 76 +# HELP go_info Information about the Go environment. +# TYPE go_info gauge +go_info{version="go1.10.4"} 1 +# HELP go_memstats_alloc_bytes Number of bytes allocated and still in use. +# TYPE go_memstats_alloc_bytes gauge +go_memstats_alloc_bytes 5.187216e+06 +# HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed. +# TYPE go_memstats_alloc_bytes_total counter +go_memstats_alloc_bytes_total 5.818832e+06 +# HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table. +# TYPE go_memstats_buck_hash_sys_bytes gauge +go_memstats_buck_hash_sys_bytes 1.444537e+06 +# HELP go_memstats_frees_total Total number of frees. +# TYPE go_memstats_frees_total counter +go_memstats_frees_total 5341 +# HELP go_memstats_gc_cpu_fraction The fraction of this program's available CPU time used by the GC since the program started. +# TYPE go_memstats_gc_cpu_fraction gauge +go_memstats_gc_cpu_fraction 0.06982921260067133 +# HELP go_memstats_gc_sys_bytes Number of bytes used for garbage collection system metadata. +# TYPE go_memstats_gc_sys_bytes gauge +go_memstats_gc_sys_bytes 413696 +# HELP go_memstats_heap_alloc_bytes Number of heap bytes allocated and still in use. +# TYPE go_memstats_heap_alloc_bytes gauge +go_memstats_heap_alloc_bytes 5.187216e+06 +# HELP go_memstats_heap_idle_bytes Number of heap bytes waiting to be used. +# TYPE go_memstats_heap_idle_bytes gauge +go_memstats_heap_idle_bytes 811008 +# HELP go_memstats_heap_inuse_bytes Number of heap bytes that are in use. +# TYPE go_memstats_heap_inuse_bytes gauge +go_memstats_heap_inuse_bytes 6.660096e+06 +# HELP go_memstats_heap_objects Number of allocated objects. +# TYPE go_memstats_heap_objects gauge +go_memstats_heap_objects 27762 +# HELP go_memstats_heap_released_bytes Number of heap bytes released to OS. +# TYPE go_memstats_heap_released_bytes gauge +go_memstats_heap_released_bytes 0 +# HELP go_memstats_heap_sys_bytes Number of heap bytes obtained from system. +# TYPE go_memstats_heap_sys_bytes gauge +go_memstats_heap_sys_bytes 7.471104e+06 +# HELP go_memstats_last_gc_time_seconds Number of seconds since 1970 of last garbage collection. +# TYPE go_memstats_last_gc_time_seconds gauge +go_memstats_last_gc_time_seconds 1.5534302814931297e+09 +# HELP go_memstats_lookups_total Total number of pointer lookups. +# TYPE go_memstats_lookups_total counter +go_memstats_lookups_total 55 +# HELP go_memstats_mallocs_total Total number of mallocs. +# TYPE go_memstats_mallocs_total counter +go_memstats_mallocs_total 33103 +# HELP go_memstats_mcache_inuse_bytes Number of bytes in use by mcache structures. +# TYPE go_memstats_mcache_inuse_bytes gauge +go_memstats_mcache_inuse_bytes 6944 +# HELP go_memstats_mcache_sys_bytes Number of bytes used for mcache structures obtained from system. +# TYPE go_memstats_mcache_sys_bytes gauge +go_memstats_mcache_sys_bytes 16384 +# HELP go_memstats_mspan_inuse_bytes Number of bytes in use by mspan structures. +# TYPE go_memstats_mspan_inuse_bytes gauge +go_memstats_mspan_inuse_bytes 58520 +# HELP go_memstats_mspan_sys_bytes Number of bytes used for mspan structures obtained from system. +# TYPE go_memstats_mspan_sys_bytes gauge +go_memstats_mspan_sys_bytes 65536 +# HELP go_memstats_next_gc_bytes Number of heap bytes when next garbage collection will take place. +# TYPE go_memstats_next_gc_bytes gauge +go_memstats_next_gc_bytes 8.4788e+06 +# HELP go_memstats_other_sys_bytes Number of bytes used for other system allocations. +# TYPE go_memstats_other_sys_bytes gauge +go_memstats_other_sys_bytes 1.289791e+06 +# HELP go_memstats_stack_inuse_bytes Number of bytes in use by the stack allocator. +# TYPE go_memstats_stack_inuse_bytes gauge +go_memstats_stack_inuse_bytes 1.114112e+06 +# HELP go_memstats_stack_sys_bytes Number of bytes obtained from system for stack allocator. +# TYPE go_memstats_stack_sys_bytes gauge +go_memstats_stack_sys_bytes 1.114112e+06 +# HELP go_memstats_sys_bytes Number of bytes obtained from system. +# TYPE go_memstats_sys_bytes gauge +go_memstats_sys_bytes 1.181516e+07 +# HELP go_threads Number of OS threads created. +# TYPE go_threads gauge +go_threads 13 diff --git a/metricbeat/module/prometheus/collector/_meta/testdata/etcd-3.3.10-partial.plain-expected.json b/metricbeat/module/prometheus/collector/_meta/testdata/etcd-3.3.10-partial.plain-expected.json new file mode 100644 index 00000000000..74706ab9b39 --- /dev/null +++ b/metricbeat/module/prometheus/collector/_meta/testdata/etcd-3.3.10-partial.plain-expected.json @@ -0,0 +1,239 @@ +[ + { + "event": { + "dataset": "prometheus.collector", + "duration": 115000, + "module": "prometheus" + }, + "metricset": { + "name": "collector" + }, + "prometheus": { + "labels": { + "action": "create" + }, + "metrics": { + "etcd_debugging_store_writes_total": 1 + } + }, + "service": { + "address": "127.0.0.1:55555", + "type": "prometheus" + } + }, + { + "event": { + "dataset": "prometheus.collector", + "duration": 115000, + "module": "prometheus" + }, + "metricset": { + "name": "collector" + }, + "prometheus": { + "labels": { + "action": "set" + }, + "metrics": { + "etcd_debugging_store_writes_total": 2 + } + }, + "service": { + "address": "127.0.0.1:55555", + "type": "prometheus" + } + }, + { + "event": { + "dataset": "prometheus.collector", + "duration": 115000, + "module": "prometheus" + }, + "metricset": { + "name": "collector" + }, + "prometheus": { + "labels": { + "server_id": "8e9e05c52164694d" + }, + "metrics": { + "etcd_server_id": 1 + } + }, + "service": { + "address": "127.0.0.1:55555", + "type": "prometheus" + } + }, + { + "event": { + "dataset": "prometheus.collector", + "duration": 115000, + "module": "prometheus" + }, + "metricset": { + "name": "collector" + }, + "prometheus": { + "labels": { + "server_version": "3.3.10" + }, + "metrics": { + "etcd_server_version": 1 + } + }, + "service": { + "address": "127.0.0.1:55555", + "type": "prometheus" + } + }, + { + "event": { + "dataset": "prometheus.collector", + "duration": 115000, + "module": "prometheus" + }, + "metricset": { + "name": "collector" + }, + "prometheus": { + "labels": { + "action": "getRecursive" + }, + "metrics": { + "etcd_debugging_store_reads_total": 1 + } + }, + "service": { + "address": "127.0.0.1:55555", + "type": "prometheus" + } + }, + { + "event": { + "dataset": "prometheus.collector", + "duration": 115000, + "module": "prometheus" + }, + "metricset": { + "name": "collector" + }, + "prometheus": { + "metrics": { + "etcd_debugging_mvcc_db_compaction_keys_total": 0, + "etcd_debugging_mvcc_db_total_size_in_bytes": 20480, + "etcd_debugging_mvcc_delete_total": 0, + "etcd_debugging_mvcc_events_total": 0, + "etcd_debugging_mvcc_keys_total": 0, + "etcd_debugging_mvcc_pending_events_total": 0, + "etcd_debugging_mvcc_put_total": 0, + "etcd_debugging_mvcc_range_total": 0, + "etcd_debugging_mvcc_slow_watcher_total": 0, + "etcd_debugging_mvcc_txn_total": 0, + "etcd_debugging_mvcc_watch_stream_total": 0, + "etcd_debugging_mvcc_watcher_total": 0, + "etcd_debugging_server_lease_expired_total": 0, + "etcd_debugging_store_expires_total": 0, + "etcd_debugging_store_watch_requests_total": 0, + "etcd_debugging_store_watchers": 0, + "etcd_grpc_proxy_cache_hits_total": 0, + "etcd_grpc_proxy_cache_keys_total": 0, + "etcd_grpc_proxy_cache_misses_total": 0, + "etcd_grpc_proxy_events_coalescing_total": 0, + "etcd_grpc_proxy_watchers_coalescing_total": 0, + "etcd_mvcc_db_total_size_in_bytes": 20480, + "etcd_mvcc_db_total_size_in_use_in_bytes": 16384, + "etcd_network_client_grpc_received_bytes_total": 0, + "etcd_network_client_grpc_sent_bytes_total": 0, + "etcd_server_has_leader": 1, + "etcd_server_health_failures": 0, + "etcd_server_health_success": 0, + "etcd_server_heartbeat_send_failures_total": 0, + "etcd_server_is_leader": 1, + "etcd_server_leader_changes_seen_total": 1, + "etcd_server_proposals_applied_total": 4, + "etcd_server_proposals_committed_total": 4, + "etcd_server_proposals_failed_total": 0, + "etcd_server_proposals_pending": 0, + "etcd_server_quota_backend_bytes": 2147483648, + "etcd_server_read_indexes_failed_total": 0, + "etcd_server_slow_apply_total": 0, + "etcd_server_slow_read_indexes_total": 0, + "go_goroutines": 76, + "go_memstats_alloc_bytes": 5187216, + "go_memstats_alloc_bytes_total": 5818832, + "go_memstats_buck_hash_sys_bytes": 1444537, + "go_memstats_frees_total": 5341, + "go_memstats_gc_cpu_fraction": 0.06982921260067133, + "go_memstats_gc_sys_bytes": 413696, + "go_memstats_heap_alloc_bytes": 5187216, + "go_memstats_heap_idle_bytes": 811008, + "go_memstats_heap_inuse_bytes": 6660096, + "go_memstats_heap_objects": 27762, + "go_memstats_heap_released_bytes": 0, + "go_memstats_heap_sys_bytes": 7471104, + "go_memstats_last_gc_time_seconds": 1553430281.4931297, + "go_memstats_lookups_total": 55, + "go_memstats_mallocs_total": 33103, + "go_memstats_mcache_inuse_bytes": 6944, + "go_memstats_mcache_sys_bytes": 16384, + "go_memstats_mspan_inuse_bytes": 58520, + "go_memstats_mspan_sys_bytes": 65536, + "go_memstats_next_gc_bytes": 8478800, + "go_memstats_other_sys_bytes": 1289791, + "go_memstats_stack_inuse_bytes": 1114112, + "go_memstats_stack_sys_bytes": 1114112, + "go_memstats_sys_bytes": 11815160, + "go_threads": 13 + } + }, + "service": { + "address": "127.0.0.1:55555", + "type": "prometheus" + } + }, + { + "event": { + "dataset": "prometheus.collector", + "duration": 115000, + "module": "prometheus" + }, + "metricset": { + "name": "collector" + }, + "prometheus": { + "labels": { + "version": "go1.10.4" + }, + "metrics": { + "go_info": 1 + } + }, + "service": { + "address": "127.0.0.1:55555", + "type": "prometheus" + } + }, + { + "event": { + "dataset": "prometheus.collector", + "duration": 115000, + "module": "prometheus" + }, + "metricset": { + "name": "collector" + }, + "prometheus": { + "labels": { + "server_go_version": "go1.10.4" + }, + "metrics": { + "etcd_server_go_version": 1 + } + }, + "service": { + "address": "127.0.0.1:55555", + "type": "prometheus" + } + } +] \ No newline at end of file diff --git a/metricbeat/module/prometheus/collector/_meta/testdata/prometheus-2.6.0-partial.plain b/metricbeat/module/prometheus/collector/_meta/testdata/prometheus-2.6.0-partial.plain new file mode 100644 index 00000000000..136196b72c2 --- /dev/null +++ b/metricbeat/module/prometheus/collector/_meta/testdata/prometheus-2.6.0-partial.plain @@ -0,0 +1,135 @@ +# HELP go_gc_duration_seconds A summary of the GC invocation durations. +# TYPE go_gc_duration_seconds summary +go_gc_duration_seconds{quantile="0"} 3.8386e-05 +go_gc_duration_seconds{quantile="0.25"} 4.2803e-05 +go_gc_duration_seconds{quantile="0.5"} 6.0618e-05 +go_gc_duration_seconds{quantile="0.75"} 0.004392391 +go_gc_duration_seconds{quantile="1"} 0.004392391 +go_gc_duration_seconds_sum 0.004534198 +go_gc_duration_seconds_count 4 +# HELP go_goroutines Number of goroutines that currently exist. +# TYPE go_goroutines gauge +go_goroutines 35 +# HELP go_info Information about the Go environment. +# TYPE go_info gauge +go_info{version="go1.11.3"} 1 +# HELP go_memstats_alloc_bytes Number of bytes allocated and still in use. +# TYPE go_memstats_alloc_bytes gauge +go_memstats_alloc_bytes 1.0558112e+07 +# HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed. +# TYPE go_memstats_alloc_bytes_total counter +go_memstats_alloc_bytes_total 1.408776e+07 +# HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table. +# TYPE go_memstats_buck_hash_sys_bytes gauge +go_memstats_buck_hash_sys_bytes 1.447018e+06 +# HELP go_memstats_frees_total Total number of frees. +# TYPE go_memstats_frees_total counter +go_memstats_frees_total 15673 +# HELP go_memstats_gc_cpu_fraction The fraction of this program's available CPU time used by the GC since the program started. +# TYPE go_memstats_gc_cpu_fraction gauge +go_memstats_gc_cpu_fraction 0.0008429952574435172 +# HELP go_memstats_gc_sys_bytes Number of bytes used for garbage collection system metadata. +# TYPE go_memstats_gc_sys_bytes gauge +go_memstats_gc_sys_bytes 2.379776e+06 +# HELP go_memstats_heap_alloc_bytes Number of heap bytes allocated and still in use. +# TYPE go_memstats_heap_alloc_bytes gauge +go_memstats_heap_alloc_bytes 1.0558112e+07 +# HELP go_memstats_heap_idle_bytes Number of heap bytes waiting to be used. +# TYPE go_memstats_heap_idle_bytes gauge +go_memstats_heap_idle_bytes 5.4042624e+07 +# HELP go_memstats_heap_inuse_bytes Number of heap bytes that are in use. +# TYPE go_memstats_heap_inuse_bytes gauge +go_memstats_heap_inuse_bytes 1.2214272e+07 +# HELP go_memstats_heap_objects Number of allocated objects. +# TYPE go_memstats_heap_objects gauge +go_memstats_heap_objects 61771 +# HELP go_memstats_heap_released_bytes Number of heap bytes released to OS. +# TYPE go_memstats_heap_released_bytes gauge +go_memstats_heap_released_bytes 0 +# HELP go_memstats_heap_sys_bytes Number of heap bytes obtained from system. +# TYPE go_memstats_heap_sys_bytes gauge +go_memstats_heap_sys_bytes 6.6256896e+07 +# HELP go_memstats_last_gc_time_seconds Number of seconds since 1970 of last garbage collection. +# TYPE go_memstats_last_gc_time_seconds gauge +go_memstats_last_gc_time_seconds 1.5534303161488917e+09 +# HELP go_memstats_lookups_total Total number of pointer lookups. +# TYPE go_memstats_lookups_total counter +go_memstats_lookups_total 0 +# HELP go_memstats_mallocs_total Total number of mallocs. +# TYPE go_memstats_mallocs_total counter +go_memstats_mallocs_total 77444 +# HELP go_memstats_mcache_inuse_bytes Number of bytes in use by mcache structures. +# TYPE go_memstats_mcache_inuse_bytes gauge +go_memstats_mcache_inuse_bytes 6912 +# HELP go_memstats_mcache_sys_bytes Number of bytes used for mcache structures obtained from system. +# TYPE go_memstats_mcache_sys_bytes gauge +go_memstats_mcache_sys_bytes 16384 +# HELP go_memstats_mspan_inuse_bytes Number of bytes in use by mspan structures. +# TYPE go_memstats_mspan_inuse_bytes gauge +go_memstats_mspan_inuse_bytes 127984 +# HELP go_memstats_mspan_sys_bytes Number of bytes used for mspan structures obtained from system. +# TYPE go_memstats_mspan_sys_bytes gauge +go_memstats_mspan_sys_bytes 131072 +# HELP go_memstats_next_gc_bytes Number of heap bytes when next garbage collection will take place. +# TYPE go_memstats_next_gc_bytes gauge +go_memstats_next_gc_bytes 1.8390112e+07 +# HELP go_memstats_other_sys_bytes Number of bytes used for other system allocations. +# TYPE go_memstats_other_sys_bytes gauge +go_memstats_other_sys_bytes 1.201294e+06 +# HELP go_memstats_stack_inuse_bytes Number of bytes in use by the stack allocator. +# TYPE go_memstats_stack_inuse_bytes gauge +go_memstats_stack_inuse_bytes 851968 +# HELP go_memstats_stack_sys_bytes Number of bytes obtained from system for stack allocator. +# TYPE go_memstats_stack_sys_bytes gauge +go_memstats_stack_sys_bytes 851968 +# HELP go_memstats_sys_bytes Number of bytes obtained from system. +# TYPE go_memstats_sys_bytes gauge +go_memstats_sys_bytes 7.2284408e+07 +# HELP go_threads Number of OS threads created. +# TYPE go_threads gauge +go_threads 14 +# HELP net_conntrack_dialer_conn_attempted_total Total number of connections attempted by the given dialer a given name. +# TYPE net_conntrack_dialer_conn_attempted_total counter +net_conntrack_dialer_conn_attempted_total{dialer_name="alertmanager"} 0 +net_conntrack_dialer_conn_attempted_total{dialer_name="default"} 0 +net_conntrack_dialer_conn_attempted_total{dialer_name="prometheus"} 1 +# HELP net_conntrack_dialer_conn_closed_total Total number of connections closed which originated from the dialer of a given name. +# TYPE net_conntrack_dialer_conn_closed_total counter +net_conntrack_dialer_conn_closed_total{dialer_name="alertmanager"} 0 +net_conntrack_dialer_conn_closed_total{dialer_name="default"} 0 +net_conntrack_dialer_conn_closed_total{dialer_name="prometheus"} 0 +# HELP net_conntrack_dialer_conn_established_total Total number of connections successfully established by the given dialer a given name. +# TYPE net_conntrack_dialer_conn_established_total counter +net_conntrack_dialer_conn_established_total{dialer_name="alertmanager"} 0 +net_conntrack_dialer_conn_established_total{dialer_name="default"} 0 +net_conntrack_dialer_conn_established_total{dialer_name="prometheus"} 1 +# HELP net_conntrack_listener_conn_accepted_total Total number of connections opened to the listener of a given name. +# TYPE net_conntrack_listener_conn_accepted_total counter +net_conntrack_listener_conn_accepted_total{listener_name="http"} 3 +# HELP net_conntrack_listener_conn_closed_total Total number of connections closed that were made to the listener of a given name. +# TYPE net_conntrack_listener_conn_closed_total counter +net_conntrack_listener_conn_closed_total{listener_name="http"} 0 +# HELP process_cpu_seconds_total Total user and system CPU time spent in seconds. +# TYPE process_cpu_seconds_total counter +process_cpu_seconds_total 0.14 +# HELP process_max_fds Maximum number of open file descriptors. +# TYPE process_max_fds gauge +process_max_fds 1.048576e+06 +# HELP process_open_fds Number of open file descriptors. +# TYPE process_open_fds gauge +process_open_fds 13 +# HELP process_resident_memory_bytes Resident memory size in bytes. +# TYPE process_resident_memory_bytes gauge +process_resident_memory_bytes 3.5934208e+07 +# HELP process_start_time_seconds Start time of the process since unix epoch in seconds. +# TYPE process_start_time_seconds gauge +process_start_time_seconds 1.5534303054e+09 +# HELP process_virtual_memory_bytes Virtual memory size in bytes. +# TYPE process_virtual_memory_bytes gauge +process_virtual_memory_bytes 1.50646784e+08 +# HELP process_virtual_memory_max_bytes Maximum amount of virtual memory available in bytes. +# TYPE process_virtual_memory_max_bytes gauge +process_virtual_memory_max_bytes -1 +# HELP prometheus_api_remote_read_queries The current number of remote read queries being executed or waiting. +# TYPE prometheus_api_remote_read_queries gauge +prometheus_api_remote_read_queries 0 diff --git a/metricbeat/module/prometheus/collector/_meta/testdata/prometheus-2.6.0-partial.plain-expected.json b/metricbeat/module/prometheus/collector/_meta/testdata/prometheus-2.6.0-partial.plain-expected.json new file mode 100644 index 00000000000..664c058add5 --- /dev/null +++ b/metricbeat/module/prometheus/collector/_meta/testdata/prometheus-2.6.0-partial.plain-expected.json @@ -0,0 +1,283 @@ +[ + { + "event": { + "dataset": "prometheus.collector", + "duration": 115000, + "module": "prometheus" + }, + "metricset": { + "name": "collector" + }, + "prometheus": { + "labels": { + "quantile": "0.25" + }, + "metrics": { + "go_gc_duration_seconds": 0.000042803 + } + }, + "service": { + "address": "127.0.0.1:55555", + "type": "prometheus" + } + }, + { + "event": { + "dataset": "prometheus.collector", + "duration": 115000, + "module": "prometheus" + }, + "metricset": { + "name": "collector" + }, + "prometheus": { + "labels": { + "quantile": "0" + }, + "metrics": { + "go_gc_duration_seconds": 0.000038386 + } + }, + "service": { + "address": "127.0.0.1:55555", + "type": "prometheus" + } + }, + { + "event": { + "dataset": "prometheus.collector", + "duration": 115000, + "module": "prometheus" + }, + "metricset": { + "name": "collector" + }, + "prometheus": { + "labels": { + "quantile": "1" + }, + "metrics": { + "go_gc_duration_seconds": 0.004392391 + } + }, + "service": { + "address": "127.0.0.1:55555", + "type": "prometheus" + } + }, + { + "event": { + "dataset": "prometheus.collector", + "duration": 115000, + "module": "prometheus" + }, + "metricset": { + "name": "collector" + }, + "prometheus": { + "labels": { + "dialer_name": "default" + }, + "metrics": { + "net_conntrack_dialer_conn_attempted_total": 0, + "net_conntrack_dialer_conn_closed_total": 0, + "net_conntrack_dialer_conn_established_total": 0 + } + }, + "service": { + "address": "127.0.0.1:55555", + "type": "prometheus" + } + }, + { + "event": { + "dataset": "prometheus.collector", + "duration": 115000, + "module": "prometheus" + }, + "metricset": { + "name": "collector" + }, + "prometheus": { + "labels": { + "dialer_name": "prometheus" + }, + "metrics": { + "net_conntrack_dialer_conn_attempted_total": 1, + "net_conntrack_dialer_conn_closed_total": 0, + "net_conntrack_dialer_conn_established_total": 1 + } + }, + "service": { + "address": "127.0.0.1:55555", + "type": "prometheus" + } + }, + { + "event": { + "dataset": "prometheus.collector", + "duration": 115000, + "module": "prometheus" + }, + "metricset": { + "name": "collector" + }, + "prometheus": { + "labels": { + "dialer_name": "alertmanager" + }, + "metrics": { + "net_conntrack_dialer_conn_attempted_total": 0, + "net_conntrack_dialer_conn_closed_total": 0, + "net_conntrack_dialer_conn_established_total": 0 + } + }, + "service": { + "address": "127.0.0.1:55555", + "type": "prometheus" + } + }, + { + "event": { + "dataset": "prometheus.collector", + "duration": 115000, + "module": "prometheus" + }, + "metricset": { + "name": "collector" + }, + "prometheus": { + "labels": { + "quantile": "0.5" + }, + "metrics": { + "go_gc_duration_seconds": 0.000060618 + } + }, + "service": { + "address": "127.0.0.1:55555", + "type": "prometheus" + } + }, + { + "event": { + "dataset": "prometheus.collector", + "duration": 115000, + "module": "prometheus" + }, + "metricset": { + "name": "collector" + }, + "prometheus": { + "labels": { + "quantile": "0.75" + }, + "metrics": { + "go_gc_duration_seconds": 0.004392391 + } + }, + "service": { + "address": "127.0.0.1:55555", + "type": "prometheus" + } + }, + { + "event": { + "dataset": "prometheus.collector", + "duration": 115000, + "module": "prometheus" + }, + "metricset": { + "name": "collector" + }, + "prometheus": { + "labels": { + "listener_name": "http" + }, + "metrics": { + "net_conntrack_listener_conn_accepted_total": 3, + "net_conntrack_listener_conn_closed_total": 0 + } + }, + "service": { + "address": "127.0.0.1:55555", + "type": "prometheus" + } + }, + { + "event": { + "dataset": "prometheus.collector", + "duration": 115000, + "module": "prometheus" + }, + "metricset": { + "name": "collector" + }, + "prometheus": { + "labels": { + "version": "go1.11.3" + }, + "metrics": { + "go_info": 1 + } + }, + "service": { + "address": "127.0.0.1:55555", + "type": "prometheus" + } + }, + { + "event": { + "dataset": "prometheus.collector", + "duration": 115000, + "module": "prometheus" + }, + "metricset": { + "name": "collector" + }, + "prometheus": { + "metrics": { + "go_gc_duration_seconds_count": 4, + "go_gc_duration_seconds_sum": 0.004534198, + "go_goroutines": 35, + "go_memstats_alloc_bytes": 10558112, + "go_memstats_alloc_bytes_total": 14087760, + "go_memstats_buck_hash_sys_bytes": 1447018, + "go_memstats_frees_total": 15673, + "go_memstats_gc_cpu_fraction": 0.0008429952574435172, + "go_memstats_gc_sys_bytes": 2379776, + "go_memstats_heap_alloc_bytes": 10558112, + "go_memstats_heap_idle_bytes": 54042624, + "go_memstats_heap_inuse_bytes": 12214272, + "go_memstats_heap_objects": 61771, + "go_memstats_heap_released_bytes": 0, + "go_memstats_heap_sys_bytes": 66256896, + "go_memstats_last_gc_time_seconds": 1553430316.1488917, + "go_memstats_lookups_total": 0, + "go_memstats_mallocs_total": 77444, + "go_memstats_mcache_inuse_bytes": 6912, + "go_memstats_mcache_sys_bytes": 16384, + "go_memstats_mspan_inuse_bytes": 127984, + "go_memstats_mspan_sys_bytes": 131072, + "go_memstats_next_gc_bytes": 18390112, + "go_memstats_other_sys_bytes": 1201294, + "go_memstats_stack_inuse_bytes": 851968, + "go_memstats_stack_sys_bytes": 851968, + "go_memstats_sys_bytes": 72284408, + "go_threads": 14, + "process_cpu_seconds_total": 0.14, + "process_max_fds": 1048576, + "process_open_fds": 13, + "process_resident_memory_bytes": 35934208, + "process_start_time_seconds": 1553430305.4, + "process_virtual_memory_bytes": 150646784, + "process_virtual_memory_max_bytes": -1, + "prometheus_api_remote_read_queries": 0 + } + }, + "service": { + "address": "127.0.0.1:55555", + "type": "prometheus" + } + } +] \ No newline at end of file diff --git a/metricbeat/module/prometheus/collector/collector.go b/metricbeat/module/prometheus/collector/collector.go index e16bdf6cc53..51cbfa1ee86 100644 --- a/metricbeat/module/prometheus/collector/collector.go +++ b/metricbeat/module/prometheus/collector/collector.go @@ -79,7 +79,9 @@ func (m *MetricSet) Fetch(reporter mb.ReporterV2) { for _, promEvent := range promEvents { labelsHash := promEvent.LabelsHash() if _, ok := eventList[labelsHash]; !ok { - eventList[labelsHash] = common.MapStr{} + eventList[labelsHash] = common.MapStr{ + "metrics": common.MapStr{}, + } // Add labels if len(promEvent.labels) > 0 { @@ -87,9 +89,9 @@ func (m *MetricSet) Fetch(reporter mb.ReporterV2) { } } - eventList[labelsHash].Update(common.MapStr{ - "metrics": promEvent.data, - }) + // Not checking anything here because we create these maps some lines before + metrics := eventList[labelsHash]["metrics"].(common.MapStr) + metrics.Update(promEvent.data) } } diff --git a/metricbeat/module/prometheus/collector/collector_integration_test.go b/metricbeat/module/prometheus/collector/collector_integration_test.go deleted file mode 100644 index 98d9169ae1d..00000000000 --- a/metricbeat/module/prometheus/collector/collector_integration_test.go +++ /dev/null @@ -1,65 +0,0 @@ -// Licensed to Elasticsearch B.V. under one or more contributor -// license agreements. See the NOTICE file distributed with -// this work for additional information regarding copyright -// ownership. Elasticsearch B.V. licenses this file to you under -// the Apache License, Version 2.0 (the "License"); you may -// not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, -// software distributed under the License is distributed on an -// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -// KIND, either express or implied. See the License for the -// specific language governing permissions and limitations -// under the License. - -// +build integration - -package collector - -import ( - "os" - "testing" - - "github.com/elastic/beats/libbeat/tests/compose" - mbtest "github.com/elastic/beats/metricbeat/mb/testing" -) - -func TestData(t *testing.T) { - compose.EnsureUp(t, "prometheus") - - ms := mbtest.NewReportingMetricSetV2(t, getConfig()) - err := mbtest.WriteEventsReporterV2(ms, t, "") - if err != nil { - t.Fatal(err) - } -} - -func getConfig() map[string]interface{} { - return map[string]interface{}{ - "module": "prometheus", - "metricsets": []string{"collector"}, - "hosts": []string{getPrometheusEnvHost() + ":" + getPrometheusEnvPort()}, - "namespace": "collector", - } -} - -func getPrometheusEnvHost() string { - host := os.Getenv("PROMETHEUS_HOST") - - if len(host) == 0 { - host = "127.0.0.1" - } - return host -} - -func getPrometheusEnvPort() string { - port := os.Getenv("PROMETHEUS_PORT") - - if len(port) == 0 { - port = "9090" - } - return port -} diff --git a/metricbeat/module/prometheus/fields.go b/metricbeat/module/prometheus/fields.go index d4c3f017f04..23d94ffe4c5 100644 --- a/metricbeat/module/prometheus/fields.go +++ b/metricbeat/module/prometheus/fields.go @@ -32,5 +32,5 @@ func init() { // AssetPrometheus returns asset data. // This is the base64 encoded gzipped contents of ../metricbeat/module/prometheus. func AssetPrometheus() string { - return "eJyUkU1u6zAMhPc+xUBv95DkAFr0Ci3QZVEEikXbbPQHkkGQ2xeJjdQBsmi1E78RORpucaSLR5OaySY6aQcYWyIP93Yvug6IpL1wM67F46UDgHcLptBeQqOIQWpGwM8rUImtcrFdB+hUxfZ9LQOPHkNISh0glCgoeYzhqiEzLqN6fDjV5DZwk1lznx0wMKWo/jb3H14lkoAVnFsVC8UwkdAGKRwoKc6cEnKwfsLAoraBTQQhNQQhxHo6JLr12qKETOsEdnOPGwXs0sijHr6ot6U0X/YzOdLlXCUu6ElI17PKJJMJ91jNeOJgFv3Wwuo3D2SfQ2tcxkXm/rs/uryT7cOivgMAAP//FvGzhQ==" + return "eJyUkc1qwzAQhO9+ikG9hSQPoENfoYUeSwmKtba30R+7G0LeviQ2aQIttLppv9FoNNrgQGePJjWTTXTUDjC2RB7u9TZ0HRBJe+FmXIvHcwcAbxZMob2ERhGD1IyA71OgElvlYtsO0KmK7fpaBh49hpCUOkAoUVDyGMNFQ2ZcRvV4d6rJreEms+Y+OmBgSlH99d4nvEgkASs4tyoWimEioTVS2FNSnDgl5GD9hIFFbQ2bCEJqCEKI9bhPdPXaoIRM9w1sZ4/t6soBOzfyqPtP6m0ZzZvdTA50PlWJC/qhpsu6ayWTCfdL0t8yzKK/h7h70QPZ5dAal3GRuZX7Z84b2Tx81lcAAAD//3hXtDU=" } From 2f51a076d525ebeab81d64dd820c1de1c4ef8cf1 Mon Sep 17 00:00:00 2001 From: Christoph Wurm Date: Tue, 26 Mar 2019 14:47:21 +0400 Subject: [PATCH 275/332] [Auditbeat] System module: Shorten entity ids (#11405) As discussed in https://github.com/elastic/beats/issues/11348, this shortens down entity IDs to base64-encoded 12 bytes. It makes quite the difference. I've also used the opportunity to finally standardize the `TestData` functions to (hopefully) always generate the same data (or at least to get closer to that), regardless of which system they are run on. Resolves https://github.com/elastic/beats/issues/11348. --- CHANGELOG.next.asciidoc | 1 + x-pack/auditbeat/module/system/entity_hash.go | 11 ++- .../module/system/package/_meta/data.json | 10 +-- .../module/system/process/_meta/data.json | 20 ++--- .../module/system/process/process_test.go | 80 ++++++++++--------- .../module/system/socket/_meta/data.json | 15 ++-- .../module/system/socket/socket_test.go | 24 ++++++ .../module/system/user/_meta/data.json | 32 +++----- x-pack/auditbeat/module/system/user/user.go | 10 ++- .../auditbeat/module/system/user/user_test.go | 39 ++++++++- 10 files changed, 146 insertions(+), 96 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 80d42fecd27..ef4c598d325 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -50,6 +50,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Rename `event.type` to `auditd.message_type` in auditd module because event.type is reserved for future use by ECS. {pull}10536[10536] - Rename `auditd.messages` to `event.original` and `auditd.warnings` to `error.message`. {pull}10577[10577] - Process dataset: Only report processes with executable. {pull}11232[11232] +- Shorten entity IDs. {pull}11405[11405] *Filebeat* diff --git a/x-pack/auditbeat/module/system/entity_hash.go b/x-pack/auditbeat/module/system/entity_hash.go index ce968a7b461..1927d928eb2 100644 --- a/x-pack/auditbeat/module/system/entity_hash.go +++ b/x-pack/auditbeat/module/system/entity_hash.go @@ -6,7 +6,7 @@ package system import ( "crypto/sha256" - "encoding/hex" + "encoding/base64" "hash" ) @@ -20,7 +20,12 @@ func NewEntityHash() EntityHash { return EntityHash{sha256.New()} } -// Sum returns the hash as a string. +// Sum returns the base64 representation of the hash, +// truncated to 12 bytes. func (h *EntityHash) Sum() string { - return hex.EncodeToString(h.Hash.Sum(nil)) + hash := h.Hash.Sum(nil) + if len(hash) > 12 { + hash = hash[:12] + } + return base64.RawStdEncoding.EncodeToString(hash) } diff --git a/x-pack/auditbeat/module/system/package/_meta/data.json b/x-pack/auditbeat/module/system/package/_meta/data.json index 5071146db3b..6d6b67342fb 100644 --- a/x-pack/auditbeat/module/system/package/_meta/data.json +++ b/x-pack/auditbeat/module/system/package/_meta/data.json @@ -1,13 +1,9 @@ { "@timestamp": "2017-10-12T08:05:34.853Z", - "agent": { - "hostname": "host.example.com", - "name": "host.example.com" - }, "event": { "action": "existing_package", "dataset": "package", - "id": "ed069c3f-1d30-4e17-845b-cc915cf108b4", + "id": "5cafbacd-9288-4022-be30-521db563f669", "kind": "state", "module": "system" }, @@ -18,11 +14,11 @@ "system": { "audit": { "package": { - "entity_id": "c2c455d9f99375d9fefc61da52fa93778976d54b1964164778058980531d77dc", + "entity_id": "wsRV2fmTddn+/GHa", "installtime": "2018-08-30T18:41:23.85657356+01:00", "name": "zstd", "summary": "Zstandard is a real-time compression algorithm", - "url": "http://zstd.net/", + "url": "https://facebook.github.io/zstd/", "version": "1.3.5" } } diff --git a/x-pack/auditbeat/module/system/process/_meta/data.json b/x-pack/auditbeat/module/system/process/_meta/data.json index dc7d3b23d5a..abd1e7d5d68 100644 --- a/x-pack/auditbeat/module/system/process/_meta/data.json +++ b/x-pack/auditbeat/module/system/process/_meta/data.json @@ -1,27 +1,23 @@ { "@timestamp": "2017-10-12T08:05:34.853Z", - "agent": { - "hostname": "host.example.com", - "name": "host.example.com" - }, "event": { - "action": "process_started", + "action": "process_stopped", "dataset": "process", "kind": "event", "module": "system" }, - "message": "Process zsh (PID: 12936) by user elastic STARTED", + "message": "Process zsh (PID: 9086) by user elastic STOPPED", "process": { "args": [ "zsh" ], - "entity_id": "e2e0c5f51b093b71afed6af23debc906090d2f2f2afa9b930bf7e0803a6b53d5", + "entity_id": "+fYshazplsMYlr0y", "executable": "/bin/zsh", "name": "zsh", - "pid": 12936, - "ppid": 3858, - "start": "2019-01-21T15:01:54.782288Z", - "working_directory": "/Users/elastic" + "pid": 9086, + "ppid": 9085, + "start": "2019-01-01T00:00:01Z", + "working_directory": "/home/elastic" }, "service": { "type": "system" @@ -46,4 +42,4 @@ "id": "1000" } } -} +} \ No newline at end of file diff --git a/x-pack/auditbeat/module/system/process/process_test.go b/x-pack/auditbeat/module/system/process/process_test.go index d5aed7306fa..a0999947a11 100644 --- a/x-pack/auditbeat/module/system/process/process_test.go +++ b/x-pack/auditbeat/module/system/process/process_test.go @@ -22,6 +22,12 @@ func TestData(t *testing.T) { defer abtest.SetupDataDir(t)() f := mbtest.NewReportingMetricSetV2(t, getConfig()) + + // Set lastState and add test process to cache so it will be reported as stopped. + f.(*MetricSet).lastState = time.Now() + p := testProcess() + f.(*MetricSet).cache.DiffAndUpdateCache(convertToCacheable([]*Process{p})) + events, errs := mbtest.ReportingFetchV2(f) if len(errs) > 0 { t.Fatalf("received error: %+v", errs[0]) @@ -31,7 +37,7 @@ func TestData(t *testing.T) { t.Fatal("no events were generated") } - fullEvent := mbtest.StandardizeEvent(f, events[0], core.AddDatasetToEvent) + fullEvent := mbtest.StandardizeEvent(f, events[len(events)-1], core.AddDatasetToEvent) mbtest.WriteEventToDataJSON(t, fullEvent, "") } @@ -45,37 +51,9 @@ func getConfig() map[string]interface{} { func TestProcessEvent(t *testing.T) { ms := mbtest.NewReportingMetricSetV2(t, getConfig()).(*MetricSet) - process := Process{ - Info: types.ProcessInfo{ - Name: "zsh", - PID: 9086, - PPID: 9085, - CWD: "/home/elastic", - Exe: "/bin/zsh", - Args: []string{"zsh"}, - StartTime: time.Date(2019, 1, 1, 0, 0, 1, 0, time.UTC), - }, - UserInfo: &types.UserInfo{ - UID: "1002", - EUID: "1002", - SUID: "1002", - GID: "1002", - EGID: "1002", - SGID: "1002", - }, - User: &user.User{ - Uid: "1002", - Username: "elastic", - }, - Group: &user.Group{ - Gid: "1002", - Name: "elastic", - }, - } eventType := eventTypeEvent eventAction := eventActionProcessStarted - - event := ms.processEvent(&process, eventType, eventAction) + event := ms.processEvent(testProcess(), eventType, eventAction) containsError, err := event.RootFields.HasKey("error") if assert.NoError(t, err) { @@ -94,14 +72,14 @@ func TestProcessEvent(t *testing.T) { "process.args": []string{"zsh"}, "process.start": "2019-01-01 00:00:01 +0000 UTC", - "user.id": "1002", + "user.id": "1000", "user.name": "elastic", - "user.group.id": "1002", + "user.group.id": "1000", "user.group.name": "elastic", - "user.effective.id": "1002", - "user.effective.group.id": "1002", - "user.saved.id": "1002", - "user.saved.group.id": "1002", + "user.effective.id": "1000", + "user.effective.group.id": "1000", + "user.saved.id": "1000", + "user.saved.group.id": "1000", } for expFieldName, expFieldValue := range expectedRootFields { value, err := event.RootFields.GetValue(expFieldName) @@ -116,6 +94,36 @@ func TestProcessEvent(t *testing.T) { } } +func testProcess() *Process { + return &Process{ + Info: types.ProcessInfo{ + Name: "zsh", + PID: 9086, + PPID: 9085, + CWD: "/home/elastic", + Exe: "/bin/zsh", + Args: []string{"zsh"}, + StartTime: time.Date(2019, 1, 1, 0, 0, 1, 0, time.UTC), + }, + UserInfo: &types.UserInfo{ + UID: "1000", + EUID: "1000", + SUID: "1000", + GID: "1000", + EGID: "1000", + SGID: "1000", + }, + User: &user.User{ + Uid: "1000", + Username: "elastic", + }, + Group: &user.Group{ + Gid: "1000", + Name: "elastic", + }, + } +} + func TestPutIfNotEmpty(t *testing.T) { mapstr := common.MapStr{} diff --git a/x-pack/auditbeat/module/system/socket/_meta/data.json b/x-pack/auditbeat/module/system/socket/_meta/data.json index 6ae45ea0863..60c87c66d3f 100644 --- a/x-pack/auditbeat/module/system/socket/_meta/data.json +++ b/x-pack/auditbeat/module/system/socket/_meta/data.json @@ -1,21 +1,16 @@ { "@timestamp": "2017-10-12T08:05:34.853Z", - "agent": { - "hostname": "host.example.com", - "name": "host.example.com" - }, "destination": { "ip": "10.0.2.15", "port": 22 }, "event": { - "action": "existing_socket", + "action": "socket_closed", "dataset": "socket", - "id": "6aff69f8-7267-4604-9701-d7b67a7c65bc", - "kind": "state", + "kind": "event", "module": "system" }, - "message": "Inbound socket (10.0.2.2:55270 -\u003e 10.0.2.15:22) OPEN by process sshd (PID: 22799) and user root (UID: 0)", + "message": "Inbound socket (10.0.2.2:55270 -\u003e 10.0.2.15:22) CLOSED by process sshd (PID: 22799) and user root (UID: 0)", "network": { "direction": "inbound", "type": "ipv4" @@ -28,7 +23,7 @@ "type": "system" }, "socket": { - "entity_id": "d85bf25935c0ebbabc053024d4954ddd78979bd1390364ac46395c390ed7a6df" + "entity_id": "fIj66YRoGyoe8dML" }, "source": { "ip": "10.0.2.2", @@ -38,4 +33,4 @@ "id": 0, "name": "root" } -} +} \ No newline at end of file diff --git a/x-pack/auditbeat/module/system/socket/socket_test.go b/x-pack/auditbeat/module/system/socket/socket_test.go index 5588cccf16e..e7fbeeeb60b 100644 --- a/x-pack/auditbeat/module/system/socket/socket_test.go +++ b/x-pack/auditbeat/module/system/socket/socket_test.go @@ -12,19 +12,28 @@ import ( "strconv" "strings" "testing" + "time" "github.com/stretchr/testify/assert" "github.com/elastic/beats/auditbeat/core" abtest "github.com/elastic/beats/auditbeat/testing" + sock "github.com/elastic/beats/metricbeat/helper/socket" "github.com/elastic/beats/metricbeat/mb" mbtest "github.com/elastic/beats/metricbeat/mb/testing" + "github.com/elastic/gosigar/sys/linux" ) func TestData(t *testing.T) { defer abtest.SetupDataDir(t)() f := mbtest.NewReportingMetricSetV2(t, getConfig()) + + // Set lastState and add test process to cache so it will be reported as stopped. + f.(*MetricSet).lastState = time.Now() + s := testSocket() + f.(*MetricSet).cache.DiffAndUpdateCache(convertToCacheable([]*Socket{s})) + events, errs := mbtest.ReportingFetchV2(f) if len(errs) > 0 { t.Fatalf("received error: %+v", errs[0]) @@ -39,6 +48,21 @@ func TestData(t *testing.T) { mbtest.WriteEventToDataJSON(t, fullEvent, "") } +func testSocket() *Socket { + return &Socket{ + Family: linux.AF_INET, + LocalIP: net.IPv4(10, 0, 2, 15), + LocalPort: 22, + RemoteIP: net.IPv4(10, 0, 2, 2), + RemotePort: 55270, + Direction: sock.Inbound, + UID: 0, + Username: "root", + ProcessPID: 22799, + ProcessName: "sshd", + } +} + func TestFetch(t *testing.T) { defer abtest.SetupDataDir(t)() diff --git a/x-pack/auditbeat/module/system/user/_meta/data.json b/x-pack/auditbeat/module/system/user/_meta/data.json index 65a49cd5073..963c64f3d89 100644 --- a/x-pack/auditbeat/module/system/user/_meta/data.json +++ b/x-pack/auditbeat/module/system/user/_meta/data.json @@ -1,17 +1,12 @@ { "@timestamp": "2017-10-12T08:05:34.853Z", - "agent": { - "hostname": "host.example.com", - "name": "host.example.com" - }, "event": { - "action": "existing_user", + "action": "user_added", "dataset": "user", - "id": "11b3b49c-79a1-4983-aea9-3257a3073a71", - "kind": "state", + "kind": "event", "module": "system" }, - "message": "Existing user elastic (UID: 1002, Groups: elastic,docker)", + "message": "New user elastic (UID: 1001, Groups: elastic,docker)", "service": { "type": "system" }, @@ -19,31 +14,26 @@ "audit": { "user": { "dir": "/home/elastic", - "gid": "1002", + "gid": "1001", "group": [ { - "gid": "1002", + "gid": "1001", "name": "elastic" }, { - "gid": "999", + "gid": "1002", "name": "docker" } ], "name": "elastic", - "password": { - "last_changed": "2018-12-07T00:00:00Z", - "type": "shadow_password" - }, - "shell": "/usr/bin/zsh", - "uid": "1002", - "user_information": ",,," + "shell": "/bin/bash", + "uid": "1001" } } }, "user": { - "entity_id": "4a80efe9ab38d1bb28aaa207d03ef24a702602d0ae55cc4661946fa1d8eee6b5", - "id": "1002", + "entity_id": "FgDfgeDptvvfdX+L", + "id": "1001", "name": "elastic" } -} +} \ No newline at end of file diff --git a/x-pack/auditbeat/module/system/user/user.go b/x-pack/auditbeat/module/system/user/user.go index 2086486a248..9e97717a198 100644 --- a/x-pack/auditbeat/module/system/user/user.go +++ b/x-pack/auditbeat/module/system/user/user.go @@ -466,10 +466,12 @@ func userMessage(user *User, action eventAction) string { func fmtGroups(groups []*user.Group) string { var b strings.Builder - b.WriteString(groups[0].Name) - for _, group := range groups[1:] { - b.WriteString(",") - b.WriteString(group.Name) + if len(groups) > 0 { + b.WriteString(groups[0].Name) + for _, group := range groups[1:] { + b.WriteString(",") + b.WriteString(group.Name) + } } return b.String() diff --git a/x-pack/auditbeat/module/system/user/user_test.go b/x-pack/auditbeat/module/system/user/user_test.go index 64b367322cf..4ad88015949 100644 --- a/x-pack/auditbeat/module/system/user/user_test.go +++ b/x-pack/auditbeat/module/system/user/user_test.go @@ -7,7 +7,9 @@ package user import ( + "os/user" "testing" + "time" "github.com/elastic/beats/auditbeat/core" abtest "github.com/elastic/beats/auditbeat/testing" @@ -18,6 +20,12 @@ func TestData(t *testing.T) { defer abtest.SetupDataDir(t)() f := mbtest.NewReportingMetricSetV2(t, getConfig()) + + // Set lastState and add test process to cache so it will be reported as stopped. + f.(*MetricSet).lastState = time.Now() + u := testUser() + f.(*MetricSet).cache.DiffAndUpdateCache(convertToCacheable([]*User{u})) + events, errs := mbtest.ReportingFetchV2(f) if len(errs) > 0 { t.Fatalf("received error: %+v", errs[0]) @@ -27,9 +35,34 @@ func TestData(t *testing.T) { t.Fatal("no events were generated") } - // The first user (events[0]) is usually root, the last one should be more interesting. - fullEvent := mbtest.StandardizeEvent(f, events[len(events)-1], core.AddDatasetToEvent) - mbtest.WriteEventToDataJSON(t, fullEvent, "") + for _, e := range events { + if name, _ := e.RootFields.GetValue("user.name"); name == "elastic" { + fullEvent := mbtest.StandardizeEvent(f, e, core.AddDatasetToEvent) + mbtest.WriteEventToDataJSON(t, fullEvent, "") + return + } + } + + t.Fatal("user not found") +} + +func testUser() *User { + return &User{ + Name: "elastic", + UID: "9999", + GID: "1001", + Groups: []*user.Group{ + &user.Group{ + Gid: "1001", + Name: "elastic", + }, + &user.Group{ + Gid: "1002", + Name: "docker", + }, + }, + Dir: "/home/elastic", + } } func getConfig() map[string]interface{} { From bf8ebafa2ebedc7c7d3ccc5b03e9fe6ed2be5fa1 Mon Sep 17 00:00:00 2001 From: Pablo Mercado Date: Tue, 26 Mar 2019 13:07:02 +0100 Subject: [PATCH 276/332] Task/use etcd metrics endpoint (#11280) Add Etcd V3 metrics from the /metrics endpoint --- metricbeat/docs/fields.asciidoc | 216 +++ metricbeat/docs/modules/etcd.asciidoc | 12 +- metricbeat/docs/modules/etcd/metrics.asciidoc | 23 + metricbeat/docs/modules_list.asciidoc | 3 +- metricbeat/include/list.go | 1 + metricbeat/module/etcd/_meta/config.yml | 1 + metricbeat/module/etcd/_meta/docs.asciidoc | 8 +- metricbeat/module/etcd/_meta/fields.yml | 6 + metricbeat/module/etcd/fields.go | 2 +- metricbeat/module/etcd/leader/_meta/data.json | 5 +- .../module/etcd/leader/_meta/docs.asciidoc | 1 + metricbeat/module/etcd/leader/leader.go | 3 + .../module/etcd/metrics/_meta/data.json | 103 ++ .../module/etcd/metrics/_meta/docs.asciidoc | 2 + .../module/etcd/metrics/_meta/fields.yml | 114 ++ .../module/etcd/metrics/_meta/test/metrics | 1256 +++++++++++++++++ .../etcd/metrics/_meta/test/metrics.expected | 102 ++ .../etcd/metrics/_meta/testdata/config.yml | 3 + .../etcd/metrics/_meta/testdata/metrics.plain | 1256 +++++++++++++++++ .../testdata/metrics.plain-expected.json | 104 ++ metricbeat/module/etcd/metrics/doc.go | 21 + metricbeat/module/etcd/metrics/metrics.go | 58 + .../etcd/metrics/metrics_integration_test.go | 87 ++ .../module/etcd/metrics/metrics_test.go | 39 + metricbeat/module/etcd/self/_meta/data.json | 11 +- .../module/etcd/self/_meta/docs.asciidoc | 1 + metricbeat/module/etcd/self/self.go | 3 + metricbeat/module/etcd/store/_meta/data.json | 11 +- .../module/etcd/store/_meta/docs.asciidoc | 1 + metricbeat/module/etcd/store/store.go | 3 + metricbeat/module/etcd/test_etcd.py | 1 + metricbeat/modules.d/etcd.yml.disabled | 1 + 32 files changed, 3434 insertions(+), 24 deletions(-) create mode 100644 metricbeat/docs/modules/etcd/metrics.asciidoc create mode 100644 metricbeat/module/etcd/metrics/_meta/data.json create mode 100644 metricbeat/module/etcd/metrics/_meta/docs.asciidoc create mode 100644 metricbeat/module/etcd/metrics/_meta/fields.yml create mode 100644 metricbeat/module/etcd/metrics/_meta/test/metrics create mode 100644 metricbeat/module/etcd/metrics/_meta/test/metrics.expected create mode 100644 metricbeat/module/etcd/metrics/_meta/testdata/config.yml create mode 100644 metricbeat/module/etcd/metrics/_meta/testdata/metrics.plain create mode 100644 metricbeat/module/etcd/metrics/_meta/testdata/metrics.plain-expected.json create mode 100644 metricbeat/module/etcd/metrics/doc.go create mode 100644 metricbeat/module/etcd/metrics/metrics.go create mode 100644 metricbeat/module/etcd/metrics/metrics_integration_test.go create mode 100644 metricbeat/module/etcd/metrics/metrics_test.go diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index 15653f1e5f6..eae44f4e302 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -9501,6 +9501,16 @@ etcd Module +*`etcd.api_version`*:: ++ +-- +type: keyword + +Etcd API version for metrics retrieval + + +-- + [float] == leader fields @@ -9582,6 +9592,212 @@ type: keyword ID of actual leader +-- + +[float] +== server fields + +Server metrics from the Etcd V3 /metrics endpoint + + + +*`etcd.server.has_leader`*:: ++ +-- +type: byte + +Whether a leader exists in the cluster + + +-- + +*`etcd.server.leader_changes.count`*:: ++ +-- +type: long + +Number of leader changes seen at the cluster + + +-- + +*`etcd.server.proposals_committed.count`*:: ++ +-- +type: long + +Number of consensus proposals commited + + +-- + +*`etcd.server.proposals_pending.count`*:: ++ +-- +type: long + +Number of consensus proposals pending + + +-- + +*`etcd.server.proposals_failed.count`*:: ++ +-- +type: long + +Number of consensus proposals failed + + +-- + +*`etcd.server.grpc_started.count`*:: ++ +-- +type: long + +Number of sent gRPC requests + + +-- + +*`etcd.server.grpc_handled.count`*:: ++ +-- +type: long + +Number of received gRPC requests + + +-- + +[float] +== disk fields + +Disk metrics from the Etcd V3 /metrics endpoint + + + +*`etcd.disk.mvcc_db_total_size.bytes`*:: ++ +-- +type: long + +format: bytes + +Size of stored data at MVCC + + +-- + +*`etcd.disk.wal_fsync_duration.ns.bucket.*`*:: ++ +-- +type: object + +Latency for writing ahead logs to disk + + +-- + +*`etcd.disk.wal_fsync_duration.ns.count`*:: ++ +-- +type: long + +Write ahead logs count + + +-- + +*`etcd.disk.wal_fsync_duration.ns.sum`*:: ++ +-- +type: long + +Write ahead logs latency sum + + +-- + +*`etcd.disk.backend_commit_duration.ns.bucket.*`*:: ++ +-- +type: object + +Latency for writing backend changes to disk + + +-- + +*`etcd.disk.backend_commit_duration.ns.count`*:: ++ +-- +type: long + +Backend commits count + + +-- + +*`etcd.disk.backend_commit_duration.ns.sum`*:: ++ +-- +type: long + +Backend commits latency sum + + +-- + +[float] +== memory fields + +Memory metrics from the Etcd V3 /metrics endpoint + + + +*`etcd.memory.go_memstats_alloc.bytes`*:: ++ +-- +type: long + +format: bytes + +Memory allocated bytes as of MemStats Go + + +-- + +[float] +== network fields + +Network metrics from the Etcd V3 /metrics endpoint + + + +*`etcd.network.client_grpc_sent.bytes`*:: ++ +-- +type: long + +format: bytes + +gRPC sent bytes total + + +-- + +*`etcd.network.client_grpc_received.bytes`*:: ++ +-- +type: long + +format: bytes + +gRPC received bytes total + + -- [float] diff --git a/metricbeat/docs/modules/etcd.asciidoc b/metricbeat/docs/modules/etcd.asciidoc index 5442fa90be2..4681a7a0a46 100644 --- a/metricbeat/docs/modules/etcd.asciidoc +++ b/metricbeat/docs/modules/etcd.asciidoc @@ -5,9 +5,13 @@ This file is generated! See scripts/docs_collector.py [[metricbeat-module-etcd]] == Etcd module -This is the Etcd Module. The Etcd module uses https://coreos.com/etcd/docs/latest/v2/api.html [Etcd v2 API] to collect metrics. +This module targets Etcd V2 and V3. -The default metricsets are `leader`, `self` and `store`. +When using V2, metrics are collected using https://coreos.com/etcd/docs/latest/v2/api.html[Etcd v2 API]. +When using V3, metrics are retrieved from the `/metrics` endpoint as intended for https://coreos.com/etcd/docs/latest/metrics.html[Etcd v3] + +When using V3, metricsest are bundled into `metrics` +When using V2, metricsets available are `leader`, `self` and `store`. [float] === Compatibility @@ -40,12 +44,16 @@ The following metricsets are available: * <> +* <> + * <> * <> include::etcd/leader.asciidoc[] +include::etcd/metrics.asciidoc[] + include::etcd/self.asciidoc[] include::etcd/store.asciidoc[] diff --git a/metricbeat/docs/modules/etcd/metrics.asciidoc b/metricbeat/docs/modules/etcd/metrics.asciidoc new file mode 100644 index 00000000000..641033e51b8 --- /dev/null +++ b/metricbeat/docs/modules/etcd/metrics.asciidoc @@ -0,0 +1,23 @@ +//// +This file is generated! See scripts/docs_collector.py +//// + +[[metricbeat-metricset-etcd-metrics]] +=== Etcd metrics metricset + +beta[] + +include::../../../module/etcd/metrics/_meta/docs.asciidoc[] + + +==== Fields + +For a description of each field in the metricset, see the +<> section. + +Here is an example document generated by this metricset: + +[source,json] +---- +include::../../../module/etcd/metrics/_meta/data.json[] +---- diff --git a/metricbeat/docs/modules_list.asciidoc b/metricbeat/docs/modules_list.asciidoc index 0f50974ead2..8a4baadcafc 100644 --- a/metricbeat/docs/modules_list.asciidoc +++ b/metricbeat/docs/modules_list.asciidoc @@ -58,7 +58,8 @@ This file is generated! See scripts/docs_collector.py |<> |image:./images/icon-no.png[No prebuilt dashboards] | .1+| .1+| |<> |<> |image:./images/icon-no.png[No prebuilt dashboards] | -.3+| .3+| |<> +.4+| .4+| |<> +|<> beta[] |<> |<> |<> |image:./images/icon-yes.png[Prebuilt dashboards are available] | diff --git a/metricbeat/include/list.go b/metricbeat/include/list.go index 7caabc5c5cf..663e0fb3fc2 100644 --- a/metricbeat/include/list.go +++ b/metricbeat/include/list.go @@ -75,6 +75,7 @@ import ( _ "github.com/elastic/beats/metricbeat/module/envoyproxy/server" _ "github.com/elastic/beats/metricbeat/module/etcd" _ "github.com/elastic/beats/metricbeat/module/etcd/leader" + _ "github.com/elastic/beats/metricbeat/module/etcd/metrics" _ "github.com/elastic/beats/metricbeat/module/etcd/self" _ "github.com/elastic/beats/metricbeat/module/etcd/store" _ "github.com/elastic/beats/metricbeat/module/golang" diff --git a/metricbeat/module/etcd/_meta/config.yml b/metricbeat/module/etcd/_meta/config.yml index 6acceb2a9c2..e09008e37de 100644 --- a/metricbeat/module/etcd/_meta/config.yml +++ b/metricbeat/module/etcd/_meta/config.yml @@ -3,6 +3,7 @@ # - leader # - self # - store + # - metrics period: 10s hosts: ["localhost:2379"] #username: "user" diff --git a/metricbeat/module/etcd/_meta/docs.asciidoc b/metricbeat/module/etcd/_meta/docs.asciidoc index c008bb665fd..ad99d74039d 100644 --- a/metricbeat/module/etcd/_meta/docs.asciidoc +++ b/metricbeat/module/etcd/_meta/docs.asciidoc @@ -1,6 +1,10 @@ -This is the Etcd Module. The Etcd module uses https://coreos.com/etcd/docs/latest/v2/api.html [Etcd v2 API] to collect metrics. +This module targets Etcd V2 and V3. -The default metricsets are `leader`, `self` and `store`. +When using V2, metrics are collected using https://coreos.com/etcd/docs/latest/v2/api.html[Etcd v2 API]. +When using V3, metrics are retrieved from the `/metrics` endpoint as intended for https://coreos.com/etcd/docs/latest/metrics.html[Etcd v3] + +When using V3, metricsest are bundled into `metrics` +When using V2, metricsets available are `leader`, `self` and `store`. [float] === Compatibility diff --git a/metricbeat/module/etcd/_meta/fields.yml b/metricbeat/module/etcd/_meta/fields.yml index a26e08a0684..edb3fecf193 100644 --- a/metricbeat/module/etcd/_meta/fields.yml +++ b/metricbeat/module/etcd/_meta/fields.yml @@ -10,3 +10,9 @@ description: > `etcd` contains statistics that were read from Etcd fields: + - name: api_version + type: keyword + description: > + Etcd API version for metrics retrieval + + diff --git a/metricbeat/module/etcd/fields.go b/metricbeat/module/etcd/fields.go index 38e667616d8..a5007b95794 100644 --- a/metricbeat/module/etcd/fields.go +++ b/metricbeat/module/etcd/fields.go @@ -32,5 +32,5 @@ func init() { // AssetEtcd returns asset data. // This is the base64 encoded gzipped contents of ../metricbeat/module/etcd. func AssetEtcd() string { - return "eJzMl8+O2zYQxu9+ioEvbYHGD+BDL0kOPRQogtyKohmTnyxiKVIhh3b89gVl2StZknfXUpDosFjI5MffzHD+6B094bQliNIrIjFisaX1R1F6vSLSiCqYWox3W/pjRUTNSvrL62SxIgqw4Igt7XlFFCFi3D5u6Z91jHb9O61LkXr974qoMLA6bhuNd+S4wvXU/MipzirBp7p9M3J2fr7kTV9IeSdsXKQoLCaKUZGkZKEjAiiANRXBV/Tx+YguQZfCgjXC9fUYyx2e/Ly/wDTOOet1wDadxX2HXZ5btC5e4a31R4S4UT45ib1FU7AvAOfncwlyqdohkC+oYGOhiZ2mmJRCjEWy9IkLoU9/v6eArwlReqZMgd+D37Tigw0XQ4wT7HvRGDXnHuPrYbLRc0lax01TDP8ZZ7IscOq0VHip1SPxBFYl1UAg40hKkLIpysC21wez1d7wAYH3mPRhVGyh/yusZ3mDrEohwA13zJSt+JupUrW4rHF3Zacu0q3iVTAKO81Bf8DBcI7v24kna9vz3iecjj7oe7fqzw+5NLCSxPZWalBGI2yxXBHNaouVUHNr5as9MMirnD3Jma8JZDScmMIgUOFD80uFXE/vZ/zZj8YVfjMvOsOcNzrHq0nwcwZdetEN1wROFA4iprrN5xlEmSUr0rFELj0mkvMadOSmcweBfokq1csicZWLf+OoDJYJWy+VHGkHuMmr3iXMf5f0k4ltlH6Jfe3R0wPUYcN1DafbhnPuaaNE4wXoBaLn0eB8zLWxdaKYHVYHnzvxRBwbzh07fTRaysAy7rM7lffVmLuTIFKdJy8o73SH08QMAnMwbk+/XuoteWdPv01j10/77wp8dejjzKPwEU5/37sxZkQzfPevRrzt4T3Cn+FWZJDGv20FaLy7oc95zYFtahYlp1EYB03eUTRuby+F/jJH3YzFPTN/+C1a3sZxY39s85himvD8QzwwUiJcuoUP18ltOAuJD5gzDOWPs0ak+31rnLIpB9UVPlTNZEi880kaT/kaoXk3moslO22h581Re0x+wU1Xk97mkS+u8Z0TCTXj/Dj/fA0LwcME7fZ5DKnWPIOh3T6PQQXMYWi3z2TwVc0B7HQ8cv04S19mKaaZN2Ug9HauUV18q03AG8aBUZUjiyoR7pv1fwAAAP//Jlp0/Q==" + return "eJzMmU9v28gOwO/+FEQur+/h1e/wbjkssJsWiwKbomiL9rBYqPQMZc1mNKMOKbvup1+M/jiy9SdO5LjVoQ0sDfkbkuKQ1Eu4o901kCi9ABAjlq7h6rUofbUA0MQqmEKMd9fwywIAqifh1uvS0gIgkCVkuoY1LgCYRIxb8zX8ecVsr/4LV5lIcfXXAiA1ZDVfVzJegsOc9lrjJbsiSgm+LJpfBnTH60tc9AWUd4LGMbCgGBajGCRDgS0FgkCoIQ0+h9f3KroEXQosTLKhwMa7/b0W6I52Wx905/cRrHhFXfDruzfQSIPUB8hJQoQL8X/aoF0segSWUFPoKe9a4wHVN605KvfU8jqmWXYePnRZex0bp4uXemv9lgIvlS+d8MFDY7APAMfrY0bgynxFAXwKKRpLGtBp4FIpYk5LC+8xFXj/7gYCfS2J5WArY+BT8MtGeG9BuxHjhNYH3hjczhTj6TBx03NJGsONU/T/GGayKOTU7lzuhUYeiAdClUFBFMA4kIxA2ZKlt7fTndnIXuKGAq5p1Ias0JJOUutRHiFWlSGQ66+YKTbHbyYv87OLNW5S7FggHUvcC2RBpzHoV7QxKIeJ8UTi0dwGE8kVjqPqzauYGlBJifZYVC+NMoXNvDT6oZKwz9nVCRKjtcrsn/4P/2vvkNOFNwcBss+rK5JTM2uGnEwYaLWT48h+4J37nJFkFADbM4C+GRYee+smPJaoDN2amkw1iGe9Wz8O7+0+2zd4jRJgIgcop0MWwRee0XKifJ4bEdLPRKq8Y3Jc8r1OqHWSPpWxIKeNW1+QsNF4KmB9hlyQr1Y4jbcOhUpYMDyfc5mcwHr61OwhZej081krkCKzIf0QVoukDd/NyXmvDN9dLuPlG6USvUrEC9qEzXdaxiw3XFMOmDH1IUepU+PxogdM/MF8p8rn4gNp0CgYU87tp5ubaadv0SYp75xKdBmq43DpeLkq1R3J8j+D5H71N6nj2Kh/TJ4aIn805VTsKrbBxE4LMIudjvVrjlXWQSg8YivnDOTPwQh1ufrCH0HGvarmbFxtddpVMUi2QnVHTjcHzc8XAw3f/iw9KRAmNnXOaPitZavUnBwME3Tni4hjtsmA2Ocvyn3Yzcm3t5WEy2XctU9yyllQOEFrvbpYwm12WilFIV3LAOSYhW8p/xCZ4Hc/bm1HsvVh1vH2thZxOXsra8hJUhcv5ORi5q7qhaqgqe1cHbHTWaDL2tYdl+XdVztDzPeNnU3nxMDhdCxKO9tszBy3rye3tj2DxKAsnflaEhhNTkxqKFSZPt7JKRaIp3RuxqV+Oa/t7jvL6PjSVu1ZPRppO7gjrhGcqooXkx+3szOIIkuUCNuMYndrGJzXBFushsKh256NUJXFeZEwj8dbZagIFgkbK2XIsIo97tgMo0sY/z2nnQw3XvoXH8oe1B5IbZZYxAayaT4mKoLhydIDRPcz31rNvsnpeDEarAheEfOIHyvOFTq9NVqygL1RyYMjtZMx69xUUAAm5Z3ucBpuUlisxF60gzTwzu7+PY5d3K2fFXhv0KczD8IzOf28sTG0ieq7zmFo8PFw9oDwZ4gKrgcw8KLJAJV1l/AxPrNBW1YPlU5Tahxp8A7YuLVtE307BTv63nGwzR8eReff4/Bmf+zhMcY0Yvkn8ZCpxratHcN+JN+vhcQHmlMMfcyoFtL9dGqcsmV0qqsLOuMd4MqX9UTWF1Q3YIPvYjsOm1VHrWn009x4NjlYPPApbXjlyAs1Qz/P16/JktCTCZrl8xjKQuMMhmb5PAYVaA5Ds3wmg88LDIRO8xaLp7McijkX08xI6Ql6PNegXPpWmECPKAcGpWxRVEZhelv/BAAA//+7EUCM" } diff --git a/metricbeat/module/etcd/leader/_meta/data.json b/metricbeat/module/etcd/leader/_meta/data.json index ee5f566cd85..cea2e1a5638 100644 --- a/metricbeat/module/etcd/leader/_meta/data.json +++ b/metricbeat/module/etcd/leader/_meta/data.json @@ -1,10 +1,7 @@ { "@timestamp": "2017-10-12T08:05:34.853Z", - "agent": { - "hostname": "host.example.com", - "name": "host.example.com" - }, "etcd": { + "api_version": "2", "leader": { "followers": {}, "leader": "8e9e05c52164694d" diff --git a/metricbeat/module/etcd/leader/_meta/docs.asciidoc b/metricbeat/module/etcd/leader/_meta/docs.asciidoc index 2e44f7399c6..8c42912c999 100644 --- a/metricbeat/module/etcd/leader/_meta/docs.asciidoc +++ b/metricbeat/module/etcd/leader/_meta/docs.asciidoc @@ -1 +1,2 @@ This is the leader metricset of the module etcd. +This metrics is being read from the Etcd V2 endpoint and won't show any activity regarding Etcd V3. diff --git a/metricbeat/module/etcd/leader/leader.go b/metricbeat/module/etcd/leader/leader.go index 1bd7a3a910d..51c10007515 100644 --- a/metricbeat/module/etcd/leader/leader.go +++ b/metricbeat/module/etcd/leader/leader.go @@ -20,6 +20,7 @@ package leader import ( "github.com/pkg/errors" + "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" @@ -28,6 +29,7 @@ import ( const ( defaultScheme = "http" defaultPath = "/v2/stats/leader" + apiVersion = "2" ) var ( @@ -76,6 +78,7 @@ func (m *MetricSet) Fetch(reporter mb.ReporterV2) error { reporter.Event(mb.Event{ MetricSetFields: eventMapping(content), + ModuleFields: common.MapStr{"api_version": apiVersion}, }) return nil } diff --git a/metricbeat/module/etcd/metrics/_meta/data.json b/metricbeat/module/etcd/metrics/_meta/data.json new file mode 100644 index 00000000000..3c412d309d6 --- /dev/null +++ b/metricbeat/module/etcd/metrics/_meta/data.json @@ -0,0 +1,103 @@ +{ + "@timestamp": "2017-10-12T08:05:34.853Z", + "etcd": { + "api_version": "3", + "disk": { + "backend_commit_duration": { + "ns": { + "bucket": { + "+Inf": 7, + "1000000": 5, + "1024000000": 7, + "128000000": 7, + "16000000": 7, + "2000000": 7, + "2048000000": 7, + "256000000": 7, + "32000000": 7, + "4000000": 7, + "4096000000": 7, + "512000000": 7, + "64000000": 7, + "8000000": 7, + "8192000000": 7 + }, + "count": 7, + "sum": 4332557 + } + }, + "mvcc_db_total_size": { + "bytes": 41369600 + }, + "wal_fsync_duration": { + "ns": { + "bucket": { + "+Inf": 3, + "1000000": 0, + "1024000000": 3, + "128000000": 3, + "16000000": 2, + "2000000": 0, + "2048000000": 3, + "256000000": 3, + "32000000": 3, + "4000000": 0, + "4096000000": 3, + "512000000": 3, + "64000000": 3, + "8000000": 2, + "8192000000": 3 + }, + "count": 3, + "sum": 40943916.00000001 + } + } + }, + "memory": { + "go_memstats_alloc": { + "bytes": 9952840 + } + }, + "network": { + "client_grpc_received": { + "bytes": 0 + }, + "client_grpc_sent": { + "bytes": 0 + } + }, + "server": { + "grpc_handled": { + "count": 0 + }, + "grpc_started": { + "count": 0 + }, + "has_leader": 1, + "leader_changes": { + "count": 1 + }, + "proposals_committed": { + "count": 110024 + }, + "proposals_failed": { + "count": 0 + }, + "proposals_pending": { + "count": 0 + } + } + }, + "event": { + "dataset": "etcd", + "duration": 115000, + "module": "etcd" + }, + "metricset": { + "name": "metrics" + }, + "service": { + "address": "127.0.0.1:2379", + "type": "etcd" + } +} \ No newline at end of file diff --git a/metricbeat/module/etcd/metrics/_meta/docs.asciidoc b/metricbeat/module/etcd/metrics/_meta/docs.asciidoc new file mode 100644 index 00000000000..a28f2ad9857 --- /dev/null +++ b/metricbeat/module/etcd/metrics/_meta/docs.asciidoc @@ -0,0 +1,2 @@ +This is the metrics endpoint metricset of the etcd module. +This metrics is being read from the Etcd V3 endpoint and won't show any activity regarding Etcd V2. \ No newline at end of file diff --git a/metricbeat/module/etcd/metrics/_meta/fields.yml b/metricbeat/module/etcd/metrics/_meta/fields.yml new file mode 100644 index 00000000000..a8743009164 --- /dev/null +++ b/metricbeat/module/etcd/metrics/_meta/fields.yml @@ -0,0 +1,114 @@ +- name: server + type: group + description: > + Server metrics from the Etcd V3 /metrics endpoint + release: beta + fields: + - name: has_leader + type: byte + description: > + Whether a leader exists in the cluster + + - name: leader_changes.count + type: long + description: > + Number of leader changes seen at the cluster + + - name: proposals_committed.count + type: long + description: > + Number of consensus proposals commited + + - name: proposals_pending.count + type: long + description: > + Number of consensus proposals pending + + - name: proposals_failed.count + type: long + description: > + Number of consensus proposals failed + + - name: grpc_started.count + type: long + description: > + Number of sent gRPC requests + + - name: grpc_handled.count + type: long + description: > + Number of received gRPC requests + +- name: disk + type: group + description: > + Disk metrics from the Etcd V3 /metrics endpoint + release: beta + fields: + - name: mvcc_db_total_size.bytes + type: long + format: bytes + description: > + Size of stored data at MVCC + + - name: wal_fsync_duration.ns.bucket.* + type: object + object_type: long + description: > + Latency for writing ahead logs to disk + + - name: wal_fsync_duration.ns.count + type: long + description: > + Write ahead logs count + + - name: wal_fsync_duration.ns.sum + type: long + description: > + Write ahead logs latency sum + + - name: backend_commit_duration.ns.bucket.* + type: object + object_type: long + description: > + Latency for writing backend changes to disk + + - name: backend_commit_duration.ns.count + type: long + description: > + Backend commits count + + - name: backend_commit_duration.ns.sum + type: long + description: > + Backend commits latency sum + +- name: memory + type: group + description: > + Memory metrics from the Etcd V3 /metrics endpoint + release: beta + fields: + - name: go_memstats_alloc.bytes + type: long + format: bytes + description: > + Memory allocated bytes as of MemStats Go + +- name: network + type: group + description: > + Network metrics from the Etcd V3 /metrics endpoint + release: beta + fields: + - name: client_grpc_sent.bytes + type: long + format: bytes + description: > + gRPC sent bytes total + + - name: client_grpc_received.bytes + type: long + format: bytes + description: > + gRPC received bytes total \ No newline at end of file diff --git a/metricbeat/module/etcd/metrics/_meta/test/metrics b/metricbeat/module/etcd/metrics/_meta/test/metrics new file mode 100644 index 00000000000..5b67f3fe431 --- /dev/null +++ b/metricbeat/module/etcd/metrics/_meta/test/metrics @@ -0,0 +1,1256 @@ +# HELP etcd_debugging_mvcc_db_compaction_keys_total Total number of db keys compacted. +# TYPE etcd_debugging_mvcc_db_compaction_keys_total counter +etcd_debugging_mvcc_db_compaction_keys_total 0 +# HELP etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds Bucketed histogram of db compaction pause duration. +# TYPE etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds histogram +etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1"} 0 +etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2"} 0 +etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4"} 0 +etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="8"} 0 +etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="16"} 0 +etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="32"} 0 +etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="64"} 0 +etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="128"} 0 +etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="256"} 0 +etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="512"} 0 +etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1024"} 0 +etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2048"} 0 +etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4096"} 0 +etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="+Inf"} 0 +etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_sum 0 +etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_count 0 +# HELP etcd_debugging_mvcc_db_compaction_total_duration_milliseconds Bucketed histogram of db compaction total duration. +# TYPE etcd_debugging_mvcc_db_compaction_total_duration_milliseconds histogram +etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="100"} 0 +etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="200"} 0 +etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="400"} 0 +etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="800"} 0 +etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="1600"} 0 +etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="3200"} 0 +etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="6400"} 0 +etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="12800"} 0 +etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="25600"} 0 +etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="51200"} 0 +etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="102400"} 0 +etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="204800"} 0 +etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="409600"} 0 +etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="819200"} 0 +etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="+Inf"} 0 +etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_sum 0 +etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_count 0 +# HELP etcd_debugging_mvcc_db_total_size_in_bytes Total size of the underlying database physically allocated in bytes. Use etcd_mvcc_db_total_size_in_bytes +# TYPE etcd_debugging_mvcc_db_total_size_in_bytes gauge +etcd_debugging_mvcc_db_total_size_in_bytes 24576 +# HELP etcd_debugging_mvcc_delete_total Total number of deletes seen by this member. +# TYPE etcd_debugging_mvcc_delete_total counter +etcd_debugging_mvcc_delete_total 0 +# HELP etcd_debugging_mvcc_events_total Total number of events sent by this member. +# TYPE etcd_debugging_mvcc_events_total counter +etcd_debugging_mvcc_events_total 0 +# HELP etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds Bucketed histogram of index compaction pause duration. +# TYPE etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds histogram +etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="0.5"} 0 +etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1"} 0 +etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="2"} 0 +etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="4"} 0 +etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="8"} 0 +etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="16"} 0 +etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="32"} 0 +etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="64"} 0 +etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="128"} 0 +etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="256"} 0 +etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="512"} 0 +etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1024"} 0 +etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="+Inf"} 0 +etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_sum 0 +etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_count 0 +# HELP etcd_debugging_mvcc_keys_total Total number of keys. +# TYPE etcd_debugging_mvcc_keys_total gauge +etcd_debugging_mvcc_keys_total 0 +# HELP etcd_debugging_mvcc_pending_events_total Total number of pending events to be sent. +# TYPE etcd_debugging_mvcc_pending_events_total gauge +etcd_debugging_mvcc_pending_events_total 0 +# HELP etcd_debugging_mvcc_put_total Total number of puts seen by this member. +# TYPE etcd_debugging_mvcc_put_total counter +etcd_debugging_mvcc_put_total 0 +# HELP etcd_debugging_mvcc_range_total Total number of ranges seen by this member. +# TYPE etcd_debugging_mvcc_range_total counter +etcd_debugging_mvcc_range_total 0 +# HELP etcd_debugging_mvcc_slow_watcher_total Total number of unsynced slow watchers. +# TYPE etcd_debugging_mvcc_slow_watcher_total gauge +etcd_debugging_mvcc_slow_watcher_total 0 +# HELP etcd_debugging_mvcc_txn_total Total number of txns seen by this member. +# TYPE etcd_debugging_mvcc_txn_total counter +etcd_debugging_mvcc_txn_total 0 +# HELP etcd_debugging_mvcc_watch_stream_total Total number of watch streams. +# TYPE etcd_debugging_mvcc_watch_stream_total gauge +etcd_debugging_mvcc_watch_stream_total 0 +# HELP etcd_debugging_mvcc_watcher_total Total number of watchers. +# TYPE etcd_debugging_mvcc_watcher_total gauge +etcd_debugging_mvcc_watcher_total 0 +# HELP etcd_debugging_server_lease_expired_total The total number of expired leases. +# TYPE etcd_debugging_server_lease_expired_total counter +etcd_debugging_server_lease_expired_total 0 +# HELP etcd_debugging_snap_save_marshalling_duration_seconds The marshalling cost distributions of save called by snapshot. +# TYPE etcd_debugging_snap_save_marshalling_duration_seconds histogram +etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.001"} 0 +etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.002"} 0 +etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.004"} 0 +etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.008"} 0 +etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.016"} 0 +etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.032"} 0 +etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.064"} 0 +etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.128"} 0 +etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.256"} 0 +etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.512"} 0 +etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="1.024"} 0 +etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="2.048"} 0 +etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="4.096"} 0 +etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="8.192"} 0 +etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="+Inf"} 0 +etcd_debugging_snap_save_marshalling_duration_seconds_sum 0 +etcd_debugging_snap_save_marshalling_duration_seconds_count 0 +# HELP etcd_debugging_snap_save_total_duration_seconds The total latency distributions of save called by snapshot. +# TYPE etcd_debugging_snap_save_total_duration_seconds histogram +etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.001"} 0 +etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.002"} 0 +etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.004"} 0 +etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.008"} 0 +etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.016"} 0 +etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.032"} 0 +etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.064"} 0 +etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.128"} 0 +etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.256"} 0 +etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.512"} 0 +etcd_debugging_snap_save_total_duration_seconds_bucket{le="1.024"} 0 +etcd_debugging_snap_save_total_duration_seconds_bucket{le="2.048"} 0 +etcd_debugging_snap_save_total_duration_seconds_bucket{le="4.096"} 0 +etcd_debugging_snap_save_total_duration_seconds_bucket{le="8.192"} 0 +etcd_debugging_snap_save_total_duration_seconds_bucket{le="+Inf"} 0 +etcd_debugging_snap_save_total_duration_seconds_sum 0 +etcd_debugging_snap_save_total_duration_seconds_count 0 +# HELP etcd_debugging_store_expires_total Total number of expired keys. +# TYPE etcd_debugging_store_expires_total counter +etcd_debugging_store_expires_total 0 +# HELP etcd_debugging_store_reads_total Total number of reads action by (get/getRecursive), local to this member. +# TYPE etcd_debugging_store_reads_total counter +etcd_debugging_store_reads_total{action="get"} 1 +etcd_debugging_store_reads_total{action="getRecursive"} 2 +# HELP etcd_debugging_store_watch_requests_total Total number of incoming watch requests (new or reestablished). +# TYPE etcd_debugging_store_watch_requests_total counter +etcd_debugging_store_watch_requests_total 0 +# HELP etcd_debugging_store_watchers Count of currently active watchers. +# TYPE etcd_debugging_store_watchers gauge +etcd_debugging_store_watchers 0 +# HELP etcd_debugging_store_writes_total Total number of writes (e.g. set/compareAndDelete) seen by this member. +# TYPE etcd_debugging_store_writes_total counter +etcd_debugging_store_writes_total{action="create"} 1 +etcd_debugging_store_writes_total{action="set"} 4 +# HELP etcd_disk_backend_commit_duration_seconds The latency distributions of commit called by backend. +# TYPE etcd_disk_backend_commit_duration_seconds histogram +etcd_disk_backend_commit_duration_seconds_bucket{le="0.001"} 4 +etcd_disk_backend_commit_duration_seconds_bucket{le="0.002"} 4 +etcd_disk_backend_commit_duration_seconds_bucket{le="0.004"} 6 +etcd_disk_backend_commit_duration_seconds_bucket{le="0.008"} 6 +etcd_disk_backend_commit_duration_seconds_bucket{le="0.016"} 6 +etcd_disk_backend_commit_duration_seconds_bucket{le="0.032"} 6 +etcd_disk_backend_commit_duration_seconds_bucket{le="0.064"} 6 +etcd_disk_backend_commit_duration_seconds_bucket{le="0.128"} 6 +etcd_disk_backend_commit_duration_seconds_bucket{le="0.256"} 6 +etcd_disk_backend_commit_duration_seconds_bucket{le="0.512"} 6 +etcd_disk_backend_commit_duration_seconds_bucket{le="1.024"} 6 +etcd_disk_backend_commit_duration_seconds_bucket{le="2.048"} 6 +etcd_disk_backend_commit_duration_seconds_bucket{le="4.096"} 6 +etcd_disk_backend_commit_duration_seconds_bucket{le="8.192"} 6 +etcd_disk_backend_commit_duration_seconds_bucket{le="+Inf"} 6 +etcd_disk_backend_commit_duration_seconds_sum 0.005161901 +etcd_disk_backend_commit_duration_seconds_count 6 +# HELP etcd_disk_backend_defrag_duration_seconds The latency distribution of backend defragmentation. +# TYPE etcd_disk_backend_defrag_duration_seconds histogram +etcd_disk_backend_defrag_duration_seconds_bucket{le="0.1"} 0 +etcd_disk_backend_defrag_duration_seconds_bucket{le="0.2"} 0 +etcd_disk_backend_defrag_duration_seconds_bucket{le="0.4"} 0 +etcd_disk_backend_defrag_duration_seconds_bucket{le="0.8"} 0 +etcd_disk_backend_defrag_duration_seconds_bucket{le="1.6"} 0 +etcd_disk_backend_defrag_duration_seconds_bucket{le="3.2"} 0 +etcd_disk_backend_defrag_duration_seconds_bucket{le="6.4"} 0 +etcd_disk_backend_defrag_duration_seconds_bucket{le="12.8"} 0 +etcd_disk_backend_defrag_duration_seconds_bucket{le="25.6"} 0 +etcd_disk_backend_defrag_duration_seconds_bucket{le="51.2"} 0 +etcd_disk_backend_defrag_duration_seconds_bucket{le="102.4"} 0 +etcd_disk_backend_defrag_duration_seconds_bucket{le="204.8"} 0 +etcd_disk_backend_defrag_duration_seconds_bucket{le="409.6"} 0 +etcd_disk_backend_defrag_duration_seconds_bucket{le="+Inf"} 0 +etcd_disk_backend_defrag_duration_seconds_sum 0 +etcd_disk_backend_defrag_duration_seconds_count 0 +# HELP etcd_disk_backend_snapshot_duration_seconds The latency distribution of backend snapshots. +# TYPE etcd_disk_backend_snapshot_duration_seconds histogram +etcd_disk_backend_snapshot_duration_seconds_bucket{le="0.01"} 0 +etcd_disk_backend_snapshot_duration_seconds_bucket{le="0.02"} 0 +etcd_disk_backend_snapshot_duration_seconds_bucket{le="0.04"} 0 +etcd_disk_backend_snapshot_duration_seconds_bucket{le="0.08"} 0 +etcd_disk_backend_snapshot_duration_seconds_bucket{le="0.16"} 0 +etcd_disk_backend_snapshot_duration_seconds_bucket{le="0.32"} 0 +etcd_disk_backend_snapshot_duration_seconds_bucket{le="0.64"} 0 +etcd_disk_backend_snapshot_duration_seconds_bucket{le="1.28"} 0 +etcd_disk_backend_snapshot_duration_seconds_bucket{le="2.56"} 0 +etcd_disk_backend_snapshot_duration_seconds_bucket{le="5.12"} 0 +etcd_disk_backend_snapshot_duration_seconds_bucket{le="10.24"} 0 +etcd_disk_backend_snapshot_duration_seconds_bucket{le="20.48"} 0 +etcd_disk_backend_snapshot_duration_seconds_bucket{le="40.96"} 0 +etcd_disk_backend_snapshot_duration_seconds_bucket{le="81.92"} 0 +etcd_disk_backend_snapshot_duration_seconds_bucket{le="163.84"} 0 +etcd_disk_backend_snapshot_duration_seconds_bucket{le="327.68"} 0 +etcd_disk_backend_snapshot_duration_seconds_bucket{le="655.36"} 0 +etcd_disk_backend_snapshot_duration_seconds_bucket{le="+Inf"} 0 +etcd_disk_backend_snapshot_duration_seconds_sum 0 +etcd_disk_backend_snapshot_duration_seconds_count 0 +# HELP etcd_disk_wal_fsync_duration_seconds The latency distributions of fsync called by wal. +# TYPE etcd_disk_wal_fsync_duration_seconds histogram +etcd_disk_wal_fsync_duration_seconds_bucket{le="0.001"} 0 +etcd_disk_wal_fsync_duration_seconds_bucket{le="0.002"} 0 +etcd_disk_wal_fsync_duration_seconds_bucket{le="0.004"} 0 +etcd_disk_wal_fsync_duration_seconds_bucket{le="0.008"} 2 +etcd_disk_wal_fsync_duration_seconds_bucket{le="0.016"} 2 +etcd_disk_wal_fsync_duration_seconds_bucket{le="0.032"} 2 +etcd_disk_wal_fsync_duration_seconds_bucket{le="0.064"} 3 +etcd_disk_wal_fsync_duration_seconds_bucket{le="0.128"} 3 +etcd_disk_wal_fsync_duration_seconds_bucket{le="0.256"} 3 +etcd_disk_wal_fsync_duration_seconds_bucket{le="0.512"} 3 +etcd_disk_wal_fsync_duration_seconds_bucket{le="1.024"} 3 +etcd_disk_wal_fsync_duration_seconds_bucket{le="2.048"} 3 +etcd_disk_wal_fsync_duration_seconds_bucket{le="4.096"} 3 +etcd_disk_wal_fsync_duration_seconds_bucket{le="8.192"} 3 +etcd_disk_wal_fsync_duration_seconds_bucket{le="+Inf"} 3 +etcd_disk_wal_fsync_duration_seconds_sum 0.071772434 +etcd_disk_wal_fsync_duration_seconds_count 3 +# HELP etcd_grpc_proxy_cache_hits_total Total number of cache hits +# TYPE etcd_grpc_proxy_cache_hits_total gauge +etcd_grpc_proxy_cache_hits_total 0 +# HELP etcd_grpc_proxy_cache_keys_total Total number of keys/ranges cached +# TYPE etcd_grpc_proxy_cache_keys_total gauge +etcd_grpc_proxy_cache_keys_total 0 +# HELP etcd_grpc_proxy_cache_misses_total Total number of cache misses +# TYPE etcd_grpc_proxy_cache_misses_total gauge +etcd_grpc_proxy_cache_misses_total 0 +# HELP etcd_grpc_proxy_events_coalescing_total Total number of events coalescing +# TYPE etcd_grpc_proxy_events_coalescing_total counter +etcd_grpc_proxy_events_coalescing_total 0 +# HELP etcd_grpc_proxy_watchers_coalescing_total Total number of current watchers coalescing +# TYPE etcd_grpc_proxy_watchers_coalescing_total gauge +etcd_grpc_proxy_watchers_coalescing_total 0 +# HELP etcd_mvcc_db_total_size_in_bytes Total size of the underlying database physically allocated in bytes. +# TYPE etcd_mvcc_db_total_size_in_bytes gauge +etcd_mvcc_db_total_size_in_bytes 24576 +# HELP etcd_mvcc_db_total_size_in_use_in_bytes Total size of the underlying database logically in use in bytes. +# TYPE etcd_mvcc_db_total_size_in_use_in_bytes gauge +etcd_mvcc_db_total_size_in_use_in_bytes 24576 +# HELP etcd_mvcc_hash_duration_seconds The latency distribution of storage hash operation. +# TYPE etcd_mvcc_hash_duration_seconds histogram +etcd_mvcc_hash_duration_seconds_bucket{le="0.01"} 0 +etcd_mvcc_hash_duration_seconds_bucket{le="0.02"} 0 +etcd_mvcc_hash_duration_seconds_bucket{le="0.04"} 0 +etcd_mvcc_hash_duration_seconds_bucket{le="0.08"} 0 +etcd_mvcc_hash_duration_seconds_bucket{le="0.16"} 0 +etcd_mvcc_hash_duration_seconds_bucket{le="0.32"} 0 +etcd_mvcc_hash_duration_seconds_bucket{le="0.64"} 0 +etcd_mvcc_hash_duration_seconds_bucket{le="1.28"} 0 +etcd_mvcc_hash_duration_seconds_bucket{le="2.56"} 0 +etcd_mvcc_hash_duration_seconds_bucket{le="5.12"} 0 +etcd_mvcc_hash_duration_seconds_bucket{le="10.24"} 0 +etcd_mvcc_hash_duration_seconds_bucket{le="20.48"} 0 +etcd_mvcc_hash_duration_seconds_bucket{le="40.96"} 0 +etcd_mvcc_hash_duration_seconds_bucket{le="81.92"} 0 +etcd_mvcc_hash_duration_seconds_bucket{le="163.84"} 0 +etcd_mvcc_hash_duration_seconds_bucket{le="+Inf"} 0 +etcd_mvcc_hash_duration_seconds_sum 0 +etcd_mvcc_hash_duration_seconds_count 0 +# HELP etcd_mvcc_hash_rev_duration_seconds The latency distribution of storage hash by revision operation. +# TYPE etcd_mvcc_hash_rev_duration_seconds histogram +etcd_mvcc_hash_rev_duration_seconds_bucket{le="0.01"} 0 +etcd_mvcc_hash_rev_duration_seconds_bucket{le="0.02"} 0 +etcd_mvcc_hash_rev_duration_seconds_bucket{le="0.04"} 0 +etcd_mvcc_hash_rev_duration_seconds_bucket{le="0.08"} 0 +etcd_mvcc_hash_rev_duration_seconds_bucket{le="0.16"} 0 +etcd_mvcc_hash_rev_duration_seconds_bucket{le="0.32"} 0 +etcd_mvcc_hash_rev_duration_seconds_bucket{le="0.64"} 0 +etcd_mvcc_hash_rev_duration_seconds_bucket{le="1.28"} 0 +etcd_mvcc_hash_rev_duration_seconds_bucket{le="2.56"} 0 +etcd_mvcc_hash_rev_duration_seconds_bucket{le="5.12"} 0 +etcd_mvcc_hash_rev_duration_seconds_bucket{le="10.24"} 0 +etcd_mvcc_hash_rev_duration_seconds_bucket{le="20.48"} 0 +etcd_mvcc_hash_rev_duration_seconds_bucket{le="40.96"} 0 +etcd_mvcc_hash_rev_duration_seconds_bucket{le="81.92"} 0 +etcd_mvcc_hash_rev_duration_seconds_bucket{le="163.84"} 0 +etcd_mvcc_hash_rev_duration_seconds_bucket{le="+Inf"} 0 +etcd_mvcc_hash_rev_duration_seconds_sum 0 +etcd_mvcc_hash_rev_duration_seconds_count 0 +# HELP etcd_network_client_grpc_received_bytes_total The total number of bytes received from grpc clients. +# TYPE etcd_network_client_grpc_received_bytes_total counter +etcd_network_client_grpc_received_bytes_total 0 +# HELP etcd_network_client_grpc_sent_bytes_total The total number of bytes sent to grpc clients. +# TYPE etcd_network_client_grpc_sent_bytes_total counter +etcd_network_client_grpc_sent_bytes_total 0 +# HELP etcd_server_go_version Which Go version server is running with. 1 for 'server_go_version' label with current version. +# TYPE etcd_server_go_version gauge +etcd_server_go_version{server_go_version="go1.10.8"} 1 +# HELP etcd_server_has_leader Whether or not a leader exists. 1 is existence, 0 is not. +# TYPE etcd_server_has_leader gauge +etcd_server_has_leader 1 +# HELP etcd_server_health_failures The total number of failed health checks +# TYPE etcd_server_health_failures counter +etcd_server_health_failures 0 +# HELP etcd_server_health_success The total number of successful health checks +# TYPE etcd_server_health_success counter +etcd_server_health_success 0 +# HELP etcd_server_heartbeat_send_failures_total The total number of leader heartbeat send failures (likely overloaded from slow disk). +# TYPE etcd_server_heartbeat_send_failures_total counter +etcd_server_heartbeat_send_failures_total 0 +# HELP etcd_server_id Server or member ID in hexadecimal format. 1 for 'server_id' label with current ID. +# TYPE etcd_server_id gauge +etcd_server_id{server_id="8e9e05c52164694d"} 1 +# HELP etcd_server_is_leader Whether or not this member is a leader. 1 if is, 0 otherwise. +# TYPE etcd_server_is_leader gauge +etcd_server_is_leader 1 +# HELP etcd_server_leader_changes_seen_total The number of leader changes seen. +# TYPE etcd_server_leader_changes_seen_total counter +etcd_server_leader_changes_seen_total 1 +# HELP etcd_server_proposals_applied_total The total number of consensus proposals applied. +# TYPE etcd_server_proposals_applied_total gauge +etcd_server_proposals_applied_total 8 +# HELP etcd_server_proposals_committed_total The total number of consensus proposals committed. +# TYPE etcd_server_proposals_committed_total gauge +etcd_server_proposals_committed_total 8 +# HELP etcd_server_proposals_failed_total The total number of failed proposals seen. +# TYPE etcd_server_proposals_failed_total counter +etcd_server_proposals_failed_total 0 +# HELP etcd_server_proposals_pending The current number of pending proposals to commit. +# TYPE etcd_server_proposals_pending gauge +etcd_server_proposals_pending 0 +# HELP etcd_server_quota_backend_bytes Current backend storage quota size in bytes. +# TYPE etcd_server_quota_backend_bytes gauge +etcd_server_quota_backend_bytes 2.147483648e+09 +# HELP etcd_server_read_indexes_failed_total The total number of failed read indexes seen. +# TYPE etcd_server_read_indexes_failed_total counter +etcd_server_read_indexes_failed_total 0 +# HELP etcd_server_slow_apply_total The total number of slow apply requests (likely overloaded from slow disk). +# TYPE etcd_server_slow_apply_total counter +etcd_server_slow_apply_total 0 +# HELP etcd_server_slow_read_indexes_total The total number of pending read indexes not in sync with leader's or timed out read index requests. +# TYPE etcd_server_slow_read_indexes_total counter +etcd_server_slow_read_indexes_total 0 +# HELP etcd_server_version Which version is running. 1 for 'server_version' label with current version. +# TYPE etcd_server_version gauge +etcd_server_version{server_version="3.3.12"} 1 +# HELP etcd_snap_db_fsync_duration_seconds The latency distributions of fsyncing .snap.db file +# TYPE etcd_snap_db_fsync_duration_seconds histogram +etcd_snap_db_fsync_duration_seconds_bucket{le="0.001"} 0 +etcd_snap_db_fsync_duration_seconds_bucket{le="0.002"} 0 +etcd_snap_db_fsync_duration_seconds_bucket{le="0.004"} 0 +etcd_snap_db_fsync_duration_seconds_bucket{le="0.008"} 0 +etcd_snap_db_fsync_duration_seconds_bucket{le="0.016"} 0 +etcd_snap_db_fsync_duration_seconds_bucket{le="0.032"} 0 +etcd_snap_db_fsync_duration_seconds_bucket{le="0.064"} 0 +etcd_snap_db_fsync_duration_seconds_bucket{le="0.128"} 0 +etcd_snap_db_fsync_duration_seconds_bucket{le="0.256"} 0 +etcd_snap_db_fsync_duration_seconds_bucket{le="0.512"} 0 +etcd_snap_db_fsync_duration_seconds_bucket{le="1.024"} 0 +etcd_snap_db_fsync_duration_seconds_bucket{le="2.048"} 0 +etcd_snap_db_fsync_duration_seconds_bucket{le="4.096"} 0 +etcd_snap_db_fsync_duration_seconds_bucket{le="8.192"} 0 +etcd_snap_db_fsync_duration_seconds_bucket{le="+Inf"} 0 +etcd_snap_db_fsync_duration_seconds_sum 0 +etcd_snap_db_fsync_duration_seconds_count 0 +# HELP etcd_snap_db_save_total_duration_seconds The total latency distributions of v3 snapshot save +# TYPE etcd_snap_db_save_total_duration_seconds histogram +etcd_snap_db_save_total_duration_seconds_bucket{le="0.1"} 0 +etcd_snap_db_save_total_duration_seconds_bucket{le="0.2"} 0 +etcd_snap_db_save_total_duration_seconds_bucket{le="0.4"} 0 +etcd_snap_db_save_total_duration_seconds_bucket{le="0.8"} 0 +etcd_snap_db_save_total_duration_seconds_bucket{le="1.6"} 0 +etcd_snap_db_save_total_duration_seconds_bucket{le="3.2"} 0 +etcd_snap_db_save_total_duration_seconds_bucket{le="6.4"} 0 +etcd_snap_db_save_total_duration_seconds_bucket{le="12.8"} 0 +etcd_snap_db_save_total_duration_seconds_bucket{le="25.6"} 0 +etcd_snap_db_save_total_duration_seconds_bucket{le="51.2"} 0 +etcd_snap_db_save_total_duration_seconds_bucket{le="+Inf"} 0 +etcd_snap_db_save_total_duration_seconds_sum 0 +etcd_snap_db_save_total_duration_seconds_count 0 +# HELP go_gc_duration_seconds A summary of the GC invocation durations. +# TYPE go_gc_duration_seconds summary +go_gc_duration_seconds{quantile="0"} 7.0458e-05 +go_gc_duration_seconds{quantile="0.25"} 7.0458e-05 +go_gc_duration_seconds{quantile="0.5"} 0.000145406 +go_gc_duration_seconds{quantile="0.75"} 0.000145406 +go_gc_duration_seconds{quantile="1"} 0.000145406 +go_gc_duration_seconds_sum 0.000215864 +go_gc_duration_seconds_count 2 +# HELP go_goroutines Number of goroutines that currently exist. +# TYPE go_goroutines gauge +go_goroutines 67 +# HELP go_info Information about the Go environment. +# TYPE go_info gauge +go_info{version="go1.10.8"} 1 +# HELP go_memstats_alloc_bytes Number of bytes allocated and still in use. +# TYPE go_memstats_alloc_bytes gauge +go_memstats_alloc_bytes 3.13024e+06 +# HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed. +# TYPE go_memstats_alloc_bytes_total counter +go_memstats_alloc_bytes_total 5.769024e+06 +# HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table. +# TYPE go_memstats_buck_hash_sys_bytes gauge +go_memstats_buck_hash_sys_bytes 1.445851e+06 +# HELP go_memstats_frees_total Total number of frees. +# TYPE go_memstats_frees_total counter +go_memstats_frees_total 9522 +# HELP go_memstats_gc_cpu_fraction The fraction of this program's available CPU time used by the GC since the program started. +# TYPE go_memstats_gc_cpu_fraction gauge +go_memstats_gc_cpu_fraction -6.017098463381069e-08 +# HELP go_memstats_gc_sys_bytes Number of bytes used for garbage collection system metadata. +# TYPE go_memstats_gc_sys_bytes gauge +go_memstats_gc_sys_bytes 479232 +# HELP go_memstats_heap_alloc_bytes Number of heap bytes allocated and still in use. +# TYPE go_memstats_heap_alloc_bytes gauge +go_memstats_heap_alloc_bytes 3.13024e+06 +# HELP go_memstats_heap_idle_bytes Number of heap bytes waiting to be used. +# TYPE go_memstats_heap_idle_bytes gauge +go_memstats_heap_idle_bytes 2.33472e+06 +# HELP go_memstats_heap_inuse_bytes Number of heap bytes that are in use. +# TYPE go_memstats_heap_inuse_bytes gauge +go_memstats_heap_inuse_bytes 4.841472e+06 +# HELP go_memstats_heap_objects Number of allocated objects. +# TYPE go_memstats_heap_objects gauge +go_memstats_heap_objects 24205 +# HELP go_memstats_heap_released_bytes Number of heap bytes released to OS. +# TYPE go_memstats_heap_released_bytes gauge +go_memstats_heap_released_bytes 0 +# HELP go_memstats_heap_sys_bytes Number of heap bytes obtained from system. +# TYPE go_memstats_heap_sys_bytes gauge +go_memstats_heap_sys_bytes 7.176192e+06 +# HELP go_memstats_last_gc_time_seconds Number of seconds since 1970 of last garbage collection. +# TYPE go_memstats_last_gc_time_seconds gauge +go_memstats_last_gc_time_seconds 1.5523196603041317e+09 +# HELP go_memstats_lookups_total Total number of pointer lookups. +# TYPE go_memstats_lookups_total counter +go_memstats_lookups_total 60 +# HELP go_memstats_mallocs_total Total number of mallocs. +# TYPE go_memstats_mallocs_total counter +go_memstats_mallocs_total 33727 +# HELP go_memstats_mcache_inuse_bytes Number of bytes in use by mcache structures. +# TYPE go_memstats_mcache_inuse_bytes gauge +go_memstats_mcache_inuse_bytes 20832 +# HELP go_memstats_mcache_sys_bytes Number of bytes used for mcache structures obtained from system. +# TYPE go_memstats_mcache_sys_bytes gauge +go_memstats_mcache_sys_bytes 32768 +# HELP go_memstats_mspan_inuse_bytes Number of bytes in use by mspan structures. +# TYPE go_memstats_mspan_inuse_bytes gauge +go_memstats_mspan_inuse_bytes 63840 +# HELP go_memstats_mspan_sys_bytes Number of bytes used for mspan structures obtained from system. +# TYPE go_memstats_mspan_sys_bytes gauge +go_memstats_mspan_sys_bytes 81920 +# HELP go_memstats_next_gc_bytes Number of heap bytes when next garbage collection will take place. +# TYPE go_memstats_next_gc_bytes gauge +go_memstats_next_gc_bytes 6.109984e+06 +# HELP go_memstats_other_sys_bytes Number of bytes used for other system allocations. +# TYPE go_memstats_other_sys_bytes gauge +go_memstats_other_sys_bytes 2.304285e+06 +# HELP go_memstats_stack_inuse_bytes Number of bytes in use by the stack allocator. +# TYPE go_memstats_stack_inuse_bytes gauge +go_memstats_stack_inuse_bytes 1.409024e+06 +# HELP go_memstats_stack_sys_bytes Number of bytes obtained from system for stack allocator. +# TYPE go_memstats_stack_sys_bytes gauge +go_memstats_stack_sys_bytes 1.409024e+06 +# HELP go_memstats_sys_bytes Number of bytes obtained from system. +# TYPE go_memstats_sys_bytes gauge +go_memstats_sys_bytes 1.2929272e+07 +# HELP go_threads Number of OS threads created. +# TYPE go_threads gauge +go_threads 22 +# HELP grpc_server_handled_total Total number of RPCs completed on the server, regardless of success or failure. +# TYPE grpc_server_handled_total counter +grpc_server_handled_total{grpc_code="Aborted",grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +# HELP grpc_server_msg_received_total Total number of RPC stream messages received on the server. +# TYPE grpc_server_msg_received_total counter +grpc_server_msg_received_total{grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_msg_received_total{grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_msg_received_total{grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +# HELP grpc_server_msg_sent_total Total number of gRPC stream messages sent by the server. +# TYPE grpc_server_msg_sent_total counter +grpc_server_msg_sent_total{grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_msg_sent_total{grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_msg_sent_total{grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +# HELP grpc_server_started_total Total number of RPCs started on the server. +# TYPE grpc_server_started_total counter +grpc_server_started_total{grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_started_total{grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_started_total{grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 diff --git a/metricbeat/module/etcd/metrics/_meta/test/metrics.expected b/metricbeat/module/etcd/metrics/_meta/test/metrics.expected new file mode 100644 index 00000000000..96e7d78a5bf --- /dev/null +++ b/metricbeat/module/etcd/metrics/_meta/test/metrics.expected @@ -0,0 +1,102 @@ +[ + { + "RootFields": null, + "ModuleFields": null, + "MetricSetFields": { + "api_version": "3", + "disk": { + "backend_commit_duration": { + "ns": { + "bucket": { + "+Inf": 6, + "1000000": 4, + "1024000000": 6, + "128000000": 6, + "16000000": 6, + "2000000": 4, + "2048000000": 6, + "256000000": 6, + "32000000": 6, + "4000000": 6, + "4096000000": 6, + "512000000": 6, + "64000000": 6, + "8000000": 6, + "8192000000": 6 + }, + "count": 6, + "sum": 5161901 + } + }, + "mvcc_db_total_size": { + "bytes": 24576 + }, + "wal_fsync_duration": { + "ns": { + "bucket": { + "+Inf": 3, + "1000000": 0, + "1024000000": 3, + "128000000": 3, + "16000000": 2, + "2000000": 0, + "2048000000": 3, + "256000000": 3, + "32000000": 2, + "4000000": 0, + "4096000000": 3, + "512000000": 3, + "64000000": 3, + "8000000": 2, + "8192000000": 3 + }, + "count": 3, + "sum": 71772434 + } + } + }, + "memory": { + "go_memstats_alloc": { + "bytes": 3130240 + } + }, + "network": { + "client_grpc_received": { + "bytes": 0 + }, + "client_grpc_sent": { + "bytes": 0 + } + }, + "server": { + "grpc_handled": { + "count": 0 + }, + "grpc_started": { + "count": 0 + }, + "has_leader": 1, + "leader_changes": { + "count": 1 + }, + "proposals_committed": { + "count": 8 + }, + "proposals_failed": { + "count": 0 + }, + "proposals_pending": { + "count": 0 + } + } + }, + "Index": "", + "ID": "", + "Namespace": "etcd", + "Timestamp": "0001-01-01T00:00:00Z", + "Error": null, + "Host": "", + "Service": "", + "Took": 0 + } +] \ No newline at end of file diff --git a/metricbeat/module/etcd/metrics/_meta/testdata/config.yml b/metricbeat/module/etcd/metrics/_meta/testdata/config.yml new file mode 100644 index 00000000000..ab6bf241654 --- /dev/null +++ b/metricbeat/module/etcd/metrics/_meta/testdata/config.yml @@ -0,0 +1,3 @@ +type: http +url: "/metrics" +suffix: plain diff --git a/metricbeat/module/etcd/metrics/_meta/testdata/metrics.plain b/metricbeat/module/etcd/metrics/_meta/testdata/metrics.plain new file mode 100644 index 00000000000..5b67f3fe431 --- /dev/null +++ b/metricbeat/module/etcd/metrics/_meta/testdata/metrics.plain @@ -0,0 +1,1256 @@ +# HELP etcd_debugging_mvcc_db_compaction_keys_total Total number of db keys compacted. +# TYPE etcd_debugging_mvcc_db_compaction_keys_total counter +etcd_debugging_mvcc_db_compaction_keys_total 0 +# HELP etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds Bucketed histogram of db compaction pause duration. +# TYPE etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds histogram +etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1"} 0 +etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2"} 0 +etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4"} 0 +etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="8"} 0 +etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="16"} 0 +etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="32"} 0 +etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="64"} 0 +etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="128"} 0 +etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="256"} 0 +etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="512"} 0 +etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="1024"} 0 +etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="2048"} 0 +etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="4096"} 0 +etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_bucket{le="+Inf"} 0 +etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_sum 0 +etcd_debugging_mvcc_db_compaction_pause_duration_milliseconds_count 0 +# HELP etcd_debugging_mvcc_db_compaction_total_duration_milliseconds Bucketed histogram of db compaction total duration. +# TYPE etcd_debugging_mvcc_db_compaction_total_duration_milliseconds histogram +etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="100"} 0 +etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="200"} 0 +etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="400"} 0 +etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="800"} 0 +etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="1600"} 0 +etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="3200"} 0 +etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="6400"} 0 +etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="12800"} 0 +etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="25600"} 0 +etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="51200"} 0 +etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="102400"} 0 +etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="204800"} 0 +etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="409600"} 0 +etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="819200"} 0 +etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_bucket{le="+Inf"} 0 +etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_sum 0 +etcd_debugging_mvcc_db_compaction_total_duration_milliseconds_count 0 +# HELP etcd_debugging_mvcc_db_total_size_in_bytes Total size of the underlying database physically allocated in bytes. Use etcd_mvcc_db_total_size_in_bytes +# TYPE etcd_debugging_mvcc_db_total_size_in_bytes gauge +etcd_debugging_mvcc_db_total_size_in_bytes 24576 +# HELP etcd_debugging_mvcc_delete_total Total number of deletes seen by this member. +# TYPE etcd_debugging_mvcc_delete_total counter +etcd_debugging_mvcc_delete_total 0 +# HELP etcd_debugging_mvcc_events_total Total number of events sent by this member. +# TYPE etcd_debugging_mvcc_events_total counter +etcd_debugging_mvcc_events_total 0 +# HELP etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds Bucketed histogram of index compaction pause duration. +# TYPE etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds histogram +etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="0.5"} 0 +etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1"} 0 +etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="2"} 0 +etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="4"} 0 +etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="8"} 0 +etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="16"} 0 +etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="32"} 0 +etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="64"} 0 +etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="128"} 0 +etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="256"} 0 +etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="512"} 0 +etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="1024"} 0 +etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_bucket{le="+Inf"} 0 +etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_sum 0 +etcd_debugging_mvcc_index_compaction_pause_duration_milliseconds_count 0 +# HELP etcd_debugging_mvcc_keys_total Total number of keys. +# TYPE etcd_debugging_mvcc_keys_total gauge +etcd_debugging_mvcc_keys_total 0 +# HELP etcd_debugging_mvcc_pending_events_total Total number of pending events to be sent. +# TYPE etcd_debugging_mvcc_pending_events_total gauge +etcd_debugging_mvcc_pending_events_total 0 +# HELP etcd_debugging_mvcc_put_total Total number of puts seen by this member. +# TYPE etcd_debugging_mvcc_put_total counter +etcd_debugging_mvcc_put_total 0 +# HELP etcd_debugging_mvcc_range_total Total number of ranges seen by this member. +# TYPE etcd_debugging_mvcc_range_total counter +etcd_debugging_mvcc_range_total 0 +# HELP etcd_debugging_mvcc_slow_watcher_total Total number of unsynced slow watchers. +# TYPE etcd_debugging_mvcc_slow_watcher_total gauge +etcd_debugging_mvcc_slow_watcher_total 0 +# HELP etcd_debugging_mvcc_txn_total Total number of txns seen by this member. +# TYPE etcd_debugging_mvcc_txn_total counter +etcd_debugging_mvcc_txn_total 0 +# HELP etcd_debugging_mvcc_watch_stream_total Total number of watch streams. +# TYPE etcd_debugging_mvcc_watch_stream_total gauge +etcd_debugging_mvcc_watch_stream_total 0 +# HELP etcd_debugging_mvcc_watcher_total Total number of watchers. +# TYPE etcd_debugging_mvcc_watcher_total gauge +etcd_debugging_mvcc_watcher_total 0 +# HELP etcd_debugging_server_lease_expired_total The total number of expired leases. +# TYPE etcd_debugging_server_lease_expired_total counter +etcd_debugging_server_lease_expired_total 0 +# HELP etcd_debugging_snap_save_marshalling_duration_seconds The marshalling cost distributions of save called by snapshot. +# TYPE etcd_debugging_snap_save_marshalling_duration_seconds histogram +etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.001"} 0 +etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.002"} 0 +etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.004"} 0 +etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.008"} 0 +etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.016"} 0 +etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.032"} 0 +etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.064"} 0 +etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.128"} 0 +etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.256"} 0 +etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="0.512"} 0 +etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="1.024"} 0 +etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="2.048"} 0 +etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="4.096"} 0 +etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="8.192"} 0 +etcd_debugging_snap_save_marshalling_duration_seconds_bucket{le="+Inf"} 0 +etcd_debugging_snap_save_marshalling_duration_seconds_sum 0 +etcd_debugging_snap_save_marshalling_duration_seconds_count 0 +# HELP etcd_debugging_snap_save_total_duration_seconds The total latency distributions of save called by snapshot. +# TYPE etcd_debugging_snap_save_total_duration_seconds histogram +etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.001"} 0 +etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.002"} 0 +etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.004"} 0 +etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.008"} 0 +etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.016"} 0 +etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.032"} 0 +etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.064"} 0 +etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.128"} 0 +etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.256"} 0 +etcd_debugging_snap_save_total_duration_seconds_bucket{le="0.512"} 0 +etcd_debugging_snap_save_total_duration_seconds_bucket{le="1.024"} 0 +etcd_debugging_snap_save_total_duration_seconds_bucket{le="2.048"} 0 +etcd_debugging_snap_save_total_duration_seconds_bucket{le="4.096"} 0 +etcd_debugging_snap_save_total_duration_seconds_bucket{le="8.192"} 0 +etcd_debugging_snap_save_total_duration_seconds_bucket{le="+Inf"} 0 +etcd_debugging_snap_save_total_duration_seconds_sum 0 +etcd_debugging_snap_save_total_duration_seconds_count 0 +# HELP etcd_debugging_store_expires_total Total number of expired keys. +# TYPE etcd_debugging_store_expires_total counter +etcd_debugging_store_expires_total 0 +# HELP etcd_debugging_store_reads_total Total number of reads action by (get/getRecursive), local to this member. +# TYPE etcd_debugging_store_reads_total counter +etcd_debugging_store_reads_total{action="get"} 1 +etcd_debugging_store_reads_total{action="getRecursive"} 2 +# HELP etcd_debugging_store_watch_requests_total Total number of incoming watch requests (new or reestablished). +# TYPE etcd_debugging_store_watch_requests_total counter +etcd_debugging_store_watch_requests_total 0 +# HELP etcd_debugging_store_watchers Count of currently active watchers. +# TYPE etcd_debugging_store_watchers gauge +etcd_debugging_store_watchers 0 +# HELP etcd_debugging_store_writes_total Total number of writes (e.g. set/compareAndDelete) seen by this member. +# TYPE etcd_debugging_store_writes_total counter +etcd_debugging_store_writes_total{action="create"} 1 +etcd_debugging_store_writes_total{action="set"} 4 +# HELP etcd_disk_backend_commit_duration_seconds The latency distributions of commit called by backend. +# TYPE etcd_disk_backend_commit_duration_seconds histogram +etcd_disk_backend_commit_duration_seconds_bucket{le="0.001"} 4 +etcd_disk_backend_commit_duration_seconds_bucket{le="0.002"} 4 +etcd_disk_backend_commit_duration_seconds_bucket{le="0.004"} 6 +etcd_disk_backend_commit_duration_seconds_bucket{le="0.008"} 6 +etcd_disk_backend_commit_duration_seconds_bucket{le="0.016"} 6 +etcd_disk_backend_commit_duration_seconds_bucket{le="0.032"} 6 +etcd_disk_backend_commit_duration_seconds_bucket{le="0.064"} 6 +etcd_disk_backend_commit_duration_seconds_bucket{le="0.128"} 6 +etcd_disk_backend_commit_duration_seconds_bucket{le="0.256"} 6 +etcd_disk_backend_commit_duration_seconds_bucket{le="0.512"} 6 +etcd_disk_backend_commit_duration_seconds_bucket{le="1.024"} 6 +etcd_disk_backend_commit_duration_seconds_bucket{le="2.048"} 6 +etcd_disk_backend_commit_duration_seconds_bucket{le="4.096"} 6 +etcd_disk_backend_commit_duration_seconds_bucket{le="8.192"} 6 +etcd_disk_backend_commit_duration_seconds_bucket{le="+Inf"} 6 +etcd_disk_backend_commit_duration_seconds_sum 0.005161901 +etcd_disk_backend_commit_duration_seconds_count 6 +# HELP etcd_disk_backend_defrag_duration_seconds The latency distribution of backend defragmentation. +# TYPE etcd_disk_backend_defrag_duration_seconds histogram +etcd_disk_backend_defrag_duration_seconds_bucket{le="0.1"} 0 +etcd_disk_backend_defrag_duration_seconds_bucket{le="0.2"} 0 +etcd_disk_backend_defrag_duration_seconds_bucket{le="0.4"} 0 +etcd_disk_backend_defrag_duration_seconds_bucket{le="0.8"} 0 +etcd_disk_backend_defrag_duration_seconds_bucket{le="1.6"} 0 +etcd_disk_backend_defrag_duration_seconds_bucket{le="3.2"} 0 +etcd_disk_backend_defrag_duration_seconds_bucket{le="6.4"} 0 +etcd_disk_backend_defrag_duration_seconds_bucket{le="12.8"} 0 +etcd_disk_backend_defrag_duration_seconds_bucket{le="25.6"} 0 +etcd_disk_backend_defrag_duration_seconds_bucket{le="51.2"} 0 +etcd_disk_backend_defrag_duration_seconds_bucket{le="102.4"} 0 +etcd_disk_backend_defrag_duration_seconds_bucket{le="204.8"} 0 +etcd_disk_backend_defrag_duration_seconds_bucket{le="409.6"} 0 +etcd_disk_backend_defrag_duration_seconds_bucket{le="+Inf"} 0 +etcd_disk_backend_defrag_duration_seconds_sum 0 +etcd_disk_backend_defrag_duration_seconds_count 0 +# HELP etcd_disk_backend_snapshot_duration_seconds The latency distribution of backend snapshots. +# TYPE etcd_disk_backend_snapshot_duration_seconds histogram +etcd_disk_backend_snapshot_duration_seconds_bucket{le="0.01"} 0 +etcd_disk_backend_snapshot_duration_seconds_bucket{le="0.02"} 0 +etcd_disk_backend_snapshot_duration_seconds_bucket{le="0.04"} 0 +etcd_disk_backend_snapshot_duration_seconds_bucket{le="0.08"} 0 +etcd_disk_backend_snapshot_duration_seconds_bucket{le="0.16"} 0 +etcd_disk_backend_snapshot_duration_seconds_bucket{le="0.32"} 0 +etcd_disk_backend_snapshot_duration_seconds_bucket{le="0.64"} 0 +etcd_disk_backend_snapshot_duration_seconds_bucket{le="1.28"} 0 +etcd_disk_backend_snapshot_duration_seconds_bucket{le="2.56"} 0 +etcd_disk_backend_snapshot_duration_seconds_bucket{le="5.12"} 0 +etcd_disk_backend_snapshot_duration_seconds_bucket{le="10.24"} 0 +etcd_disk_backend_snapshot_duration_seconds_bucket{le="20.48"} 0 +etcd_disk_backend_snapshot_duration_seconds_bucket{le="40.96"} 0 +etcd_disk_backend_snapshot_duration_seconds_bucket{le="81.92"} 0 +etcd_disk_backend_snapshot_duration_seconds_bucket{le="163.84"} 0 +etcd_disk_backend_snapshot_duration_seconds_bucket{le="327.68"} 0 +etcd_disk_backend_snapshot_duration_seconds_bucket{le="655.36"} 0 +etcd_disk_backend_snapshot_duration_seconds_bucket{le="+Inf"} 0 +etcd_disk_backend_snapshot_duration_seconds_sum 0 +etcd_disk_backend_snapshot_duration_seconds_count 0 +# HELP etcd_disk_wal_fsync_duration_seconds The latency distributions of fsync called by wal. +# TYPE etcd_disk_wal_fsync_duration_seconds histogram +etcd_disk_wal_fsync_duration_seconds_bucket{le="0.001"} 0 +etcd_disk_wal_fsync_duration_seconds_bucket{le="0.002"} 0 +etcd_disk_wal_fsync_duration_seconds_bucket{le="0.004"} 0 +etcd_disk_wal_fsync_duration_seconds_bucket{le="0.008"} 2 +etcd_disk_wal_fsync_duration_seconds_bucket{le="0.016"} 2 +etcd_disk_wal_fsync_duration_seconds_bucket{le="0.032"} 2 +etcd_disk_wal_fsync_duration_seconds_bucket{le="0.064"} 3 +etcd_disk_wal_fsync_duration_seconds_bucket{le="0.128"} 3 +etcd_disk_wal_fsync_duration_seconds_bucket{le="0.256"} 3 +etcd_disk_wal_fsync_duration_seconds_bucket{le="0.512"} 3 +etcd_disk_wal_fsync_duration_seconds_bucket{le="1.024"} 3 +etcd_disk_wal_fsync_duration_seconds_bucket{le="2.048"} 3 +etcd_disk_wal_fsync_duration_seconds_bucket{le="4.096"} 3 +etcd_disk_wal_fsync_duration_seconds_bucket{le="8.192"} 3 +etcd_disk_wal_fsync_duration_seconds_bucket{le="+Inf"} 3 +etcd_disk_wal_fsync_duration_seconds_sum 0.071772434 +etcd_disk_wal_fsync_duration_seconds_count 3 +# HELP etcd_grpc_proxy_cache_hits_total Total number of cache hits +# TYPE etcd_grpc_proxy_cache_hits_total gauge +etcd_grpc_proxy_cache_hits_total 0 +# HELP etcd_grpc_proxy_cache_keys_total Total number of keys/ranges cached +# TYPE etcd_grpc_proxy_cache_keys_total gauge +etcd_grpc_proxy_cache_keys_total 0 +# HELP etcd_grpc_proxy_cache_misses_total Total number of cache misses +# TYPE etcd_grpc_proxy_cache_misses_total gauge +etcd_grpc_proxy_cache_misses_total 0 +# HELP etcd_grpc_proxy_events_coalescing_total Total number of events coalescing +# TYPE etcd_grpc_proxy_events_coalescing_total counter +etcd_grpc_proxy_events_coalescing_total 0 +# HELP etcd_grpc_proxy_watchers_coalescing_total Total number of current watchers coalescing +# TYPE etcd_grpc_proxy_watchers_coalescing_total gauge +etcd_grpc_proxy_watchers_coalescing_total 0 +# HELP etcd_mvcc_db_total_size_in_bytes Total size of the underlying database physically allocated in bytes. +# TYPE etcd_mvcc_db_total_size_in_bytes gauge +etcd_mvcc_db_total_size_in_bytes 24576 +# HELP etcd_mvcc_db_total_size_in_use_in_bytes Total size of the underlying database logically in use in bytes. +# TYPE etcd_mvcc_db_total_size_in_use_in_bytes gauge +etcd_mvcc_db_total_size_in_use_in_bytes 24576 +# HELP etcd_mvcc_hash_duration_seconds The latency distribution of storage hash operation. +# TYPE etcd_mvcc_hash_duration_seconds histogram +etcd_mvcc_hash_duration_seconds_bucket{le="0.01"} 0 +etcd_mvcc_hash_duration_seconds_bucket{le="0.02"} 0 +etcd_mvcc_hash_duration_seconds_bucket{le="0.04"} 0 +etcd_mvcc_hash_duration_seconds_bucket{le="0.08"} 0 +etcd_mvcc_hash_duration_seconds_bucket{le="0.16"} 0 +etcd_mvcc_hash_duration_seconds_bucket{le="0.32"} 0 +etcd_mvcc_hash_duration_seconds_bucket{le="0.64"} 0 +etcd_mvcc_hash_duration_seconds_bucket{le="1.28"} 0 +etcd_mvcc_hash_duration_seconds_bucket{le="2.56"} 0 +etcd_mvcc_hash_duration_seconds_bucket{le="5.12"} 0 +etcd_mvcc_hash_duration_seconds_bucket{le="10.24"} 0 +etcd_mvcc_hash_duration_seconds_bucket{le="20.48"} 0 +etcd_mvcc_hash_duration_seconds_bucket{le="40.96"} 0 +etcd_mvcc_hash_duration_seconds_bucket{le="81.92"} 0 +etcd_mvcc_hash_duration_seconds_bucket{le="163.84"} 0 +etcd_mvcc_hash_duration_seconds_bucket{le="+Inf"} 0 +etcd_mvcc_hash_duration_seconds_sum 0 +etcd_mvcc_hash_duration_seconds_count 0 +# HELP etcd_mvcc_hash_rev_duration_seconds The latency distribution of storage hash by revision operation. +# TYPE etcd_mvcc_hash_rev_duration_seconds histogram +etcd_mvcc_hash_rev_duration_seconds_bucket{le="0.01"} 0 +etcd_mvcc_hash_rev_duration_seconds_bucket{le="0.02"} 0 +etcd_mvcc_hash_rev_duration_seconds_bucket{le="0.04"} 0 +etcd_mvcc_hash_rev_duration_seconds_bucket{le="0.08"} 0 +etcd_mvcc_hash_rev_duration_seconds_bucket{le="0.16"} 0 +etcd_mvcc_hash_rev_duration_seconds_bucket{le="0.32"} 0 +etcd_mvcc_hash_rev_duration_seconds_bucket{le="0.64"} 0 +etcd_mvcc_hash_rev_duration_seconds_bucket{le="1.28"} 0 +etcd_mvcc_hash_rev_duration_seconds_bucket{le="2.56"} 0 +etcd_mvcc_hash_rev_duration_seconds_bucket{le="5.12"} 0 +etcd_mvcc_hash_rev_duration_seconds_bucket{le="10.24"} 0 +etcd_mvcc_hash_rev_duration_seconds_bucket{le="20.48"} 0 +etcd_mvcc_hash_rev_duration_seconds_bucket{le="40.96"} 0 +etcd_mvcc_hash_rev_duration_seconds_bucket{le="81.92"} 0 +etcd_mvcc_hash_rev_duration_seconds_bucket{le="163.84"} 0 +etcd_mvcc_hash_rev_duration_seconds_bucket{le="+Inf"} 0 +etcd_mvcc_hash_rev_duration_seconds_sum 0 +etcd_mvcc_hash_rev_duration_seconds_count 0 +# HELP etcd_network_client_grpc_received_bytes_total The total number of bytes received from grpc clients. +# TYPE etcd_network_client_grpc_received_bytes_total counter +etcd_network_client_grpc_received_bytes_total 0 +# HELP etcd_network_client_grpc_sent_bytes_total The total number of bytes sent to grpc clients. +# TYPE etcd_network_client_grpc_sent_bytes_total counter +etcd_network_client_grpc_sent_bytes_total 0 +# HELP etcd_server_go_version Which Go version server is running with. 1 for 'server_go_version' label with current version. +# TYPE etcd_server_go_version gauge +etcd_server_go_version{server_go_version="go1.10.8"} 1 +# HELP etcd_server_has_leader Whether or not a leader exists. 1 is existence, 0 is not. +# TYPE etcd_server_has_leader gauge +etcd_server_has_leader 1 +# HELP etcd_server_health_failures The total number of failed health checks +# TYPE etcd_server_health_failures counter +etcd_server_health_failures 0 +# HELP etcd_server_health_success The total number of successful health checks +# TYPE etcd_server_health_success counter +etcd_server_health_success 0 +# HELP etcd_server_heartbeat_send_failures_total The total number of leader heartbeat send failures (likely overloaded from slow disk). +# TYPE etcd_server_heartbeat_send_failures_total counter +etcd_server_heartbeat_send_failures_total 0 +# HELP etcd_server_id Server or member ID in hexadecimal format. 1 for 'server_id' label with current ID. +# TYPE etcd_server_id gauge +etcd_server_id{server_id="8e9e05c52164694d"} 1 +# HELP etcd_server_is_leader Whether or not this member is a leader. 1 if is, 0 otherwise. +# TYPE etcd_server_is_leader gauge +etcd_server_is_leader 1 +# HELP etcd_server_leader_changes_seen_total The number of leader changes seen. +# TYPE etcd_server_leader_changes_seen_total counter +etcd_server_leader_changes_seen_total 1 +# HELP etcd_server_proposals_applied_total The total number of consensus proposals applied. +# TYPE etcd_server_proposals_applied_total gauge +etcd_server_proposals_applied_total 8 +# HELP etcd_server_proposals_committed_total The total number of consensus proposals committed. +# TYPE etcd_server_proposals_committed_total gauge +etcd_server_proposals_committed_total 8 +# HELP etcd_server_proposals_failed_total The total number of failed proposals seen. +# TYPE etcd_server_proposals_failed_total counter +etcd_server_proposals_failed_total 0 +# HELP etcd_server_proposals_pending The current number of pending proposals to commit. +# TYPE etcd_server_proposals_pending gauge +etcd_server_proposals_pending 0 +# HELP etcd_server_quota_backend_bytes Current backend storage quota size in bytes. +# TYPE etcd_server_quota_backend_bytes gauge +etcd_server_quota_backend_bytes 2.147483648e+09 +# HELP etcd_server_read_indexes_failed_total The total number of failed read indexes seen. +# TYPE etcd_server_read_indexes_failed_total counter +etcd_server_read_indexes_failed_total 0 +# HELP etcd_server_slow_apply_total The total number of slow apply requests (likely overloaded from slow disk). +# TYPE etcd_server_slow_apply_total counter +etcd_server_slow_apply_total 0 +# HELP etcd_server_slow_read_indexes_total The total number of pending read indexes not in sync with leader's or timed out read index requests. +# TYPE etcd_server_slow_read_indexes_total counter +etcd_server_slow_read_indexes_total 0 +# HELP etcd_server_version Which version is running. 1 for 'server_version' label with current version. +# TYPE etcd_server_version gauge +etcd_server_version{server_version="3.3.12"} 1 +# HELP etcd_snap_db_fsync_duration_seconds The latency distributions of fsyncing .snap.db file +# TYPE etcd_snap_db_fsync_duration_seconds histogram +etcd_snap_db_fsync_duration_seconds_bucket{le="0.001"} 0 +etcd_snap_db_fsync_duration_seconds_bucket{le="0.002"} 0 +etcd_snap_db_fsync_duration_seconds_bucket{le="0.004"} 0 +etcd_snap_db_fsync_duration_seconds_bucket{le="0.008"} 0 +etcd_snap_db_fsync_duration_seconds_bucket{le="0.016"} 0 +etcd_snap_db_fsync_duration_seconds_bucket{le="0.032"} 0 +etcd_snap_db_fsync_duration_seconds_bucket{le="0.064"} 0 +etcd_snap_db_fsync_duration_seconds_bucket{le="0.128"} 0 +etcd_snap_db_fsync_duration_seconds_bucket{le="0.256"} 0 +etcd_snap_db_fsync_duration_seconds_bucket{le="0.512"} 0 +etcd_snap_db_fsync_duration_seconds_bucket{le="1.024"} 0 +etcd_snap_db_fsync_duration_seconds_bucket{le="2.048"} 0 +etcd_snap_db_fsync_duration_seconds_bucket{le="4.096"} 0 +etcd_snap_db_fsync_duration_seconds_bucket{le="8.192"} 0 +etcd_snap_db_fsync_duration_seconds_bucket{le="+Inf"} 0 +etcd_snap_db_fsync_duration_seconds_sum 0 +etcd_snap_db_fsync_duration_seconds_count 0 +# HELP etcd_snap_db_save_total_duration_seconds The total latency distributions of v3 snapshot save +# TYPE etcd_snap_db_save_total_duration_seconds histogram +etcd_snap_db_save_total_duration_seconds_bucket{le="0.1"} 0 +etcd_snap_db_save_total_duration_seconds_bucket{le="0.2"} 0 +etcd_snap_db_save_total_duration_seconds_bucket{le="0.4"} 0 +etcd_snap_db_save_total_duration_seconds_bucket{le="0.8"} 0 +etcd_snap_db_save_total_duration_seconds_bucket{le="1.6"} 0 +etcd_snap_db_save_total_duration_seconds_bucket{le="3.2"} 0 +etcd_snap_db_save_total_duration_seconds_bucket{le="6.4"} 0 +etcd_snap_db_save_total_duration_seconds_bucket{le="12.8"} 0 +etcd_snap_db_save_total_duration_seconds_bucket{le="25.6"} 0 +etcd_snap_db_save_total_duration_seconds_bucket{le="51.2"} 0 +etcd_snap_db_save_total_duration_seconds_bucket{le="+Inf"} 0 +etcd_snap_db_save_total_duration_seconds_sum 0 +etcd_snap_db_save_total_duration_seconds_count 0 +# HELP go_gc_duration_seconds A summary of the GC invocation durations. +# TYPE go_gc_duration_seconds summary +go_gc_duration_seconds{quantile="0"} 7.0458e-05 +go_gc_duration_seconds{quantile="0.25"} 7.0458e-05 +go_gc_duration_seconds{quantile="0.5"} 0.000145406 +go_gc_duration_seconds{quantile="0.75"} 0.000145406 +go_gc_duration_seconds{quantile="1"} 0.000145406 +go_gc_duration_seconds_sum 0.000215864 +go_gc_duration_seconds_count 2 +# HELP go_goroutines Number of goroutines that currently exist. +# TYPE go_goroutines gauge +go_goroutines 67 +# HELP go_info Information about the Go environment. +# TYPE go_info gauge +go_info{version="go1.10.8"} 1 +# HELP go_memstats_alloc_bytes Number of bytes allocated and still in use. +# TYPE go_memstats_alloc_bytes gauge +go_memstats_alloc_bytes 3.13024e+06 +# HELP go_memstats_alloc_bytes_total Total number of bytes allocated, even if freed. +# TYPE go_memstats_alloc_bytes_total counter +go_memstats_alloc_bytes_total 5.769024e+06 +# HELP go_memstats_buck_hash_sys_bytes Number of bytes used by the profiling bucket hash table. +# TYPE go_memstats_buck_hash_sys_bytes gauge +go_memstats_buck_hash_sys_bytes 1.445851e+06 +# HELP go_memstats_frees_total Total number of frees. +# TYPE go_memstats_frees_total counter +go_memstats_frees_total 9522 +# HELP go_memstats_gc_cpu_fraction The fraction of this program's available CPU time used by the GC since the program started. +# TYPE go_memstats_gc_cpu_fraction gauge +go_memstats_gc_cpu_fraction -6.017098463381069e-08 +# HELP go_memstats_gc_sys_bytes Number of bytes used for garbage collection system metadata. +# TYPE go_memstats_gc_sys_bytes gauge +go_memstats_gc_sys_bytes 479232 +# HELP go_memstats_heap_alloc_bytes Number of heap bytes allocated and still in use. +# TYPE go_memstats_heap_alloc_bytes gauge +go_memstats_heap_alloc_bytes 3.13024e+06 +# HELP go_memstats_heap_idle_bytes Number of heap bytes waiting to be used. +# TYPE go_memstats_heap_idle_bytes gauge +go_memstats_heap_idle_bytes 2.33472e+06 +# HELP go_memstats_heap_inuse_bytes Number of heap bytes that are in use. +# TYPE go_memstats_heap_inuse_bytes gauge +go_memstats_heap_inuse_bytes 4.841472e+06 +# HELP go_memstats_heap_objects Number of allocated objects. +# TYPE go_memstats_heap_objects gauge +go_memstats_heap_objects 24205 +# HELP go_memstats_heap_released_bytes Number of heap bytes released to OS. +# TYPE go_memstats_heap_released_bytes gauge +go_memstats_heap_released_bytes 0 +# HELP go_memstats_heap_sys_bytes Number of heap bytes obtained from system. +# TYPE go_memstats_heap_sys_bytes gauge +go_memstats_heap_sys_bytes 7.176192e+06 +# HELP go_memstats_last_gc_time_seconds Number of seconds since 1970 of last garbage collection. +# TYPE go_memstats_last_gc_time_seconds gauge +go_memstats_last_gc_time_seconds 1.5523196603041317e+09 +# HELP go_memstats_lookups_total Total number of pointer lookups. +# TYPE go_memstats_lookups_total counter +go_memstats_lookups_total 60 +# HELP go_memstats_mallocs_total Total number of mallocs. +# TYPE go_memstats_mallocs_total counter +go_memstats_mallocs_total 33727 +# HELP go_memstats_mcache_inuse_bytes Number of bytes in use by mcache structures. +# TYPE go_memstats_mcache_inuse_bytes gauge +go_memstats_mcache_inuse_bytes 20832 +# HELP go_memstats_mcache_sys_bytes Number of bytes used for mcache structures obtained from system. +# TYPE go_memstats_mcache_sys_bytes gauge +go_memstats_mcache_sys_bytes 32768 +# HELP go_memstats_mspan_inuse_bytes Number of bytes in use by mspan structures. +# TYPE go_memstats_mspan_inuse_bytes gauge +go_memstats_mspan_inuse_bytes 63840 +# HELP go_memstats_mspan_sys_bytes Number of bytes used for mspan structures obtained from system. +# TYPE go_memstats_mspan_sys_bytes gauge +go_memstats_mspan_sys_bytes 81920 +# HELP go_memstats_next_gc_bytes Number of heap bytes when next garbage collection will take place. +# TYPE go_memstats_next_gc_bytes gauge +go_memstats_next_gc_bytes 6.109984e+06 +# HELP go_memstats_other_sys_bytes Number of bytes used for other system allocations. +# TYPE go_memstats_other_sys_bytes gauge +go_memstats_other_sys_bytes 2.304285e+06 +# HELP go_memstats_stack_inuse_bytes Number of bytes in use by the stack allocator. +# TYPE go_memstats_stack_inuse_bytes gauge +go_memstats_stack_inuse_bytes 1.409024e+06 +# HELP go_memstats_stack_sys_bytes Number of bytes obtained from system for stack allocator. +# TYPE go_memstats_stack_sys_bytes gauge +go_memstats_stack_sys_bytes 1.409024e+06 +# HELP go_memstats_sys_bytes Number of bytes obtained from system. +# TYPE go_memstats_sys_bytes gauge +go_memstats_sys_bytes 1.2929272e+07 +# HELP go_threads Number of OS threads created. +# TYPE go_threads gauge +go_threads 22 +# HELP grpc_server_handled_total Total number of RPCs completed on the server, regardless of success or failure. +# TYPE grpc_server_handled_total counter +grpc_server_handled_total{grpc_code="Aborted",grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Aborted",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="AlreadyExists",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Canceled",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DataLoss",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="DeadlineExceeded",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="FailedPrecondition",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Internal",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="InvalidArgument",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="NotFound",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OK",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="OutOfRange",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="PermissionDenied",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="ResourceExhausted",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unauthenticated",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unavailable",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unimplemented",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_handled_total{grpc_code="Unknown",grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +# HELP grpc_server_msg_received_total Total number of RPC stream messages received on the server. +# TYPE grpc_server_msg_received_total counter +grpc_server_msg_received_total{grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_msg_received_total{grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_msg_received_total{grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_received_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +# HELP grpc_server_msg_sent_total Total number of gRPC stream messages sent by the server. +# TYPE grpc_server_msg_sent_total counter +grpc_server_msg_sent_total{grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_msg_sent_total{grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_msg_sent_total{grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_msg_sent_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 +# HELP grpc_server_started_total Total number of RPCs started on the server. +# TYPE grpc_server_started_total counter +grpc_server_started_total{grpc_method="Alarm",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="AuthDisable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="AuthEnable",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="Authenticate",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="Check",grpc_service="grpc.health.v1.Health",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="Compact",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="Defragment",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="DeleteRange",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="Hash",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="HashKV",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="LeaseGrant",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="LeaseKeepAlive",grpc_service="etcdserverpb.Lease",grpc_type="bidi_stream"} 0 +grpc_server_started_total{grpc_method="LeaseLeases",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="LeaseRevoke",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="LeaseTimeToLive",grpc_service="etcdserverpb.Lease",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="MemberAdd",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="MemberList",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="MemberRemove",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="MemberUpdate",grpc_service="etcdserverpb.Cluster",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="MoveLeader",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="Put",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="Range",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="RoleAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="RoleDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="RoleGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="RoleGrantPermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="RoleList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="RoleRevokePermission",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="Snapshot",grpc_service="etcdserverpb.Maintenance",grpc_type="server_stream"} 0 +grpc_server_started_total{grpc_method="Status",grpc_service="etcdserverpb.Maintenance",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="Txn",grpc_service="etcdserverpb.KV",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="UserAdd",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="UserChangePassword",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="UserDelete",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="UserGet",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="UserGrantRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="UserList",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="UserRevokeRole",grpc_service="etcdserverpb.Auth",grpc_type="unary"} 0 +grpc_server_started_total{grpc_method="Watch",grpc_service="etcdserverpb.Watch",grpc_type="bidi_stream"} 0 diff --git a/metricbeat/module/etcd/metrics/_meta/testdata/metrics.plain-expected.json b/metricbeat/module/etcd/metrics/_meta/testdata/metrics.plain-expected.json new file mode 100644 index 00000000000..689f6983dba --- /dev/null +++ b/metricbeat/module/etcd/metrics/_meta/testdata/metrics.plain-expected.json @@ -0,0 +1,104 @@ +[ + { + "etcd": { + "api_version": "3", + "disk": { + "backend_commit_duration": { + "ns": { + "bucket": { + "+Inf": 6, + "1000000": 4, + "1024000000": 6, + "128000000": 6, + "16000000": 6, + "2000000": 4, + "2048000000": 6, + "256000000": 6, + "32000000": 6, + "4000000": 6, + "4096000000": 6, + "512000000": 6, + "64000000": 6, + "8000000": 6, + "8192000000": 6 + }, + "count": 6, + "sum": 5161901 + } + }, + "mvcc_db_total_size": { + "bytes": 24576 + }, + "wal_fsync_duration": { + "ns": { + "bucket": { + "+Inf": 3, + "1000000": 0, + "1024000000": 3, + "128000000": 3, + "16000000": 2, + "2000000": 0, + "2048000000": 3, + "256000000": 3, + "32000000": 2, + "4000000": 0, + "4096000000": 3, + "512000000": 3, + "64000000": 3, + "8000000": 2, + "8192000000": 3 + }, + "count": 3, + "sum": 71772434 + } + } + }, + "memory": { + "go_memstats_alloc": { + "bytes": 3130240 + } + }, + "network": { + "client_grpc_received": { + "bytes": 0 + }, + "client_grpc_sent": { + "bytes": 0 + } + }, + "server": { + "grpc_handled": { + "count": 0 + }, + "grpc_started": { + "count": 0 + }, + "has_leader": 1, + "leader_changes": { + "count": 1 + }, + "proposals_committed": { + "count": 8 + }, + "proposals_failed": { + "count": 0 + }, + "proposals_pending": { + "count": 0 + } + } + }, + "event": { + "dataset": "etcd", + "duration": 115000, + "module": "etcd" + }, + "metricset": { + "name": "metrics" + }, + "service": { + "address": "127.0.0.1:55555", + "type": "etcd" + } + } +] \ No newline at end of file diff --git a/metricbeat/module/etcd/metrics/doc.go b/metricbeat/module/etcd/metrics/doc.go new file mode 100644 index 00000000000..f241052e802 --- /dev/null +++ b/metricbeat/module/etcd/metrics/doc.go @@ -0,0 +1,21 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +/* +Package metrics contain Etcd V3 metrics endpoint fetching and reporting +*/ +package metrics diff --git a/metricbeat/module/etcd/metrics/metrics.go b/metricbeat/module/etcd/metrics/metrics.go new file mode 100644 index 00000000000..ce4e9591338 --- /dev/null +++ b/metricbeat/module/etcd/metrics/metrics.go @@ -0,0 +1,58 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package metrics + +import ( + "github.com/elastic/beats/metricbeat/helper/prometheus" + "github.com/elastic/beats/metricbeat/mb" +) + +func init() { + mapping := &prometheus.MetricsMapping{ + Metrics: map[string]prometheus.MetricMap{ + // Server + "etcd_server_has_leader": prometheus.Metric("server.has_leader"), + "etcd_server_leader_changes_seen_total": prometheus.Metric("server.leader_changes.count"), + "etcd_server_proposals_committed_total": prometheus.Metric("server.proposals_committed.count"), + "etcd_server_proposals_pending": prometheus.Metric("server.proposals_pending.count"), + "etcd_server_proposals_failed_total": prometheus.Metric("server.proposals_failed.count"), + "grpc_server_started_total": prometheus.Metric("server.grpc_started.count"), + "grpc_server_handled_total": prometheus.Metric("server.grpc_handled.count"), + + // Disk + "etcd_mvcc_db_total_size_in_bytes": prometheus.Metric("disk.mvcc_db_total_size.bytes"), + "etcd_disk_wal_fsync_duration_seconds": prometheus.Metric("disk.wal_fsync_duration.ns", + prometheus.OpMultiplyBuckets(1000000000)), + "etcd_disk_backend_commit_duration_seconds": prometheus.Metric("disk.backend_commit_duration.ns", + prometheus.OpMultiplyBuckets(1000000000)), + + // Memory + "go_memstats_alloc_bytes": prometheus.Metric("memory.go_memstats_alloc.bytes"), + + // Network + "etcd_network_client_grpc_sent_bytes_total": prometheus.Metric("network.client_grpc_sent.bytes"), + "etcd_network_client_grpc_received_bytes_total": prometheus.Metric("network.client_grpc_received.bytes"), + }, + ExtraFields: map[string]string{"api_version": "3"}, + Namespace: "etcd", + } + + mb.Registry.MustAddMetricSet("etcd", "metrics", + prometheus.MetricSetBuilder(mapping), + mb.WithHostParser(prometheus.HostParser)) +} diff --git a/metricbeat/module/etcd/metrics/metrics_integration_test.go b/metricbeat/module/etcd/metrics/metrics_integration_test.go new file mode 100644 index 00000000000..35a7e64e4d5 --- /dev/null +++ b/metricbeat/module/etcd/metrics/metrics_integration_test.go @@ -0,0 +1,87 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +// +build integration + +package metrics + +import ( + "os" + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/elastic/beats/libbeat/logp" + + "github.com/elastic/beats/libbeat/tests/compose" + mbtest "github.com/elastic/beats/metricbeat/mb/testing" +) + +func TestFetch(t *testing.T) { + logp.TestingSetup() + + compose.EnsureUp(t, "etcd") + + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) + } + assert.NotEmpty(t, events) + t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), events[0]) +} + +func TestData(t *testing.T) { + compose.EnsureUp(t, "etcd") + + f := mbtest.NewReportingMetricSetV2(t, getConfig()) + events, errs := mbtest.ReportingFetchV2(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) + } + assert.NotEmpty(t, events) + + if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { + t.Fatal("write", err) + } +} + +func getConfig() map[string]interface{} { + return map[string]interface{}{ + "module": "etcd", + "metricsets": []string{"metrics"}, + "hosts": []string{GetEnvHost() + ":" + GetEnvPort()}, + } +} + +func GetEnvHost() string { + host := os.Getenv("ETCD_HOST") + + if len(host) == 0 { + host = "127.0.0.1" + } + return host +} + +func GetEnvPort() string { + port := os.Getenv("ETCD_PORT") + + if len(port) == 0 { + port = "2379" + } + return port +} diff --git a/metricbeat/module/etcd/metrics/metrics_test.go b/metricbeat/module/etcd/metrics/metrics_test.go new file mode 100644 index 00000000000..9dfc5888f30 --- /dev/null +++ b/metricbeat/module/etcd/metrics/metrics_test.go @@ -0,0 +1,39 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +// +build !integration + +package metrics + +import ( + "testing" + + "github.com/elastic/beats/metricbeat/helper/prometheus/ptest" +) + +const testFile = "_meta/test/metrics" + +func TestEventMapping(t *testing.T) { + ptest.TestMetricSet(t, "etcd", "metrics", + ptest.TestCases{ + { + MetricsFile: "./_meta/test/metrics", + ExpectedFile: "./_meta/test/metrics.expected", + }, + }, + ) +} diff --git a/metricbeat/module/etcd/self/_meta/data.json b/metricbeat/module/etcd/self/_meta/data.json index 3da6ec65805..05af9e040f9 100644 --- a/metricbeat/module/etcd/self/_meta/data.json +++ b/metricbeat/module/etcd/self/_meta/data.json @@ -1,16 +1,13 @@ { "@timestamp": "2017-10-12T08:05:34.853Z", - "agent": { - "hostname": "host.example.com", - "name": "host.example.com" - }, "etcd": { + "api_version": "2", "self": { "id": "8e9e05c52164694d", "leaderinfo": { "leader": "8e9e05c52164694d", - "starttime": "2019-02-18T21:42:23.191073075Z", - "uptime": "23m12.747903053s" + "starttime": "2019-03-25T18:00:33.457653099+01:00", + "uptime": "20.338096195s" }, "name": "default", "recv": { @@ -27,7 +24,7 @@ "bandwidthrate": 0, "pkgrate": 0 }, - "starttime": "2019-02-18T21:42:21.490011868Z", + "starttime": "2019-03-25T18:00:32.755273186+01:00", "state": "StateLeader" } }, diff --git a/metricbeat/module/etcd/self/_meta/docs.asciidoc b/metricbeat/module/etcd/self/_meta/docs.asciidoc index 14d75706b60..1b779d12f56 100644 --- a/metricbeat/module/etcd/self/_meta/docs.asciidoc +++ b/metricbeat/module/etcd/self/_meta/docs.asciidoc @@ -1 +1,2 @@ This is the self metricset of the module etcd. +This metrics is being read from the Etcd V2 endpoint and won't show any activity regarding Etcd V3. diff --git a/metricbeat/module/etcd/self/self.go b/metricbeat/module/etcd/self/self.go index 179208a9b2d..39e42d32e0a 100644 --- a/metricbeat/module/etcd/self/self.go +++ b/metricbeat/module/etcd/self/self.go @@ -20,6 +20,7 @@ package self import ( "github.com/pkg/errors" + "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" @@ -28,6 +29,7 @@ import ( const ( defaultScheme = "http" defaultPath = "/v2/stats/self" + apiVersion = "2" ) var ( @@ -77,6 +79,7 @@ func (m *MetricSet) Fetch(reporter mb.ReporterV2) error { reporter.Event(mb.Event{ MetricSetFields: eventMapping(content), + ModuleFields: common.MapStr{"api_version": apiVersion}, }) return nil diff --git a/metricbeat/module/etcd/store/_meta/data.json b/metricbeat/module/etcd/store/_meta/data.json index c74e5adaf74..e5f862e5a4f 100644 --- a/metricbeat/module/etcd/store/_meta/data.json +++ b/metricbeat/module/etcd/store/_meta/data.json @@ -1,10 +1,7 @@ { "@timestamp": "2017-10-12T08:05:34.853Z", - "agent": { - "hostname": "host.example.com", - "name": "host.example.com" - }, "etcd": { + "api_version": "2", "store": { "compareanddelete": { "fail": 0, @@ -26,12 +23,12 @@ "count": 0 }, "gets": { - "fail": 3, - "success": 0 + "fail": 4, + "success": 2 }, "sets": { "fail": 0, - "success": 4 + "success": 12 }, "update": { "fail": 0, diff --git a/metricbeat/module/etcd/store/_meta/docs.asciidoc b/metricbeat/module/etcd/store/_meta/docs.asciidoc index fdec57b8600..6a4dc701490 100644 --- a/metricbeat/module/etcd/store/_meta/docs.asciidoc +++ b/metricbeat/module/etcd/store/_meta/docs.asciidoc @@ -1 +1,2 @@ This is the store metricset of the module etcd. +This metrics is being read from the Etcd V2 endpoint and won't show any activity regarding Etcd V3. \ No newline at end of file diff --git a/metricbeat/module/etcd/store/store.go b/metricbeat/module/etcd/store/store.go index 4fff19e00e0..513cf2f4288 100644 --- a/metricbeat/module/etcd/store/store.go +++ b/metricbeat/module/etcd/store/store.go @@ -20,6 +20,7 @@ package store import ( "github.com/pkg/errors" + "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" @@ -28,6 +29,7 @@ import ( const ( defaultScheme = "http" defaultPath = "/v2/stats/store" + apiVersion = "2" ) var ( @@ -76,6 +78,7 @@ func (m *MetricSet) Fetch(reporter mb.ReporterV2) error { reporter.Event(mb.Event{ MetricSetFields: eventMapping(content), + ModuleFields: common.MapStr{"api_version": apiVersion}, }) return nil diff --git a/metricbeat/module/etcd/test_etcd.py b/metricbeat/module/etcd/test_etcd.py index 9441c6e6d75..f1bbc2ff4ff 100644 --- a/metricbeat/module/etcd/test_etcd.py +++ b/metricbeat/module/etcd/test_etcd.py @@ -16,6 +16,7 @@ class Test(metricbeat.BaseTest): "leader", "self", "store", + "metrics", ]) @unittest.skipUnless(metricbeat.INTEGRATION_TESTS, "integration test") def test_metricset(self, metricset): diff --git a/metricbeat/modules.d/etcd.yml.disabled b/metricbeat/modules.d/etcd.yml.disabled index 83927098538..5a6fa8cd179 100644 --- a/metricbeat/modules.d/etcd.yml.disabled +++ b/metricbeat/modules.d/etcd.yml.disabled @@ -6,6 +6,7 @@ # - leader # - self # - store + # - metrics period: 10s hosts: ["localhost:2379"] #username: "user" From d834ac4b1d03f2ecc16921620bcf935a8c0974f3 Mon Sep 17 00:00:00 2001 From: moooofly Date: Tue, 26 Mar 2019 20:30:25 +0800 Subject: [PATCH 277/332] bugfix: fix a typo in libbeat/outputs/transport/client.go (#11242) * bugfix: fix a typo in libbeat/outputs/transport/client.go --- CHANGELOG.next.asciidoc | 1 + libbeat/outputs/transport/client.go | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index ef4c598d325..e356b44dd00 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -150,6 +150,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - decode_json_field: do not process arrays when flag not set. {pull}11318[11318] - Report faulting file when config reload fails. {pull}[11304]11304 - Remove IP fields from default_field in Elasticsearch template. +- Fix a typo in libbeat/outputs/transport/client.go by updating `c.conn.LocalAddr()` to `c.conn.RemoteAddr()`. {pull}11242[11242] *Auditbeat* diff --git a/libbeat/outputs/transport/client.go b/libbeat/outputs/transport/client.go index 8313b592e10..7855dfc106e 100644 --- a/libbeat/outputs/transport/client.go +++ b/libbeat/outputs/transport/client.go @@ -174,7 +174,7 @@ func (c *Client) LocalAddr() net.Addr { func (c *Client) RemoteAddr() net.Addr { conn := c.getConn() if conn != nil { - return c.conn.LocalAddr() + return c.conn.RemoteAddr() } return nil } From ca63bef261b8beece69859672ccf2b1e2a6d6fe2 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Tue, 26 Mar 2019 08:31:36 -0400 Subject: [PATCH 278/332] CM Breaking changes in 6.7 (#11434) * CM Breaking changes in 6.7 Add a note concerning the breaking change of 6.7 for Central Management and mention the migration tool. --- libbeat/docs/breaking.asciidoc | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/libbeat/docs/breaking.asciidoc b/libbeat/docs/breaking.asciidoc index 8cc1f24fa50..21721e3240c 100644 --- a/libbeat/docs/breaking.asciidoc +++ b/libbeat/docs/breaking.asciidoc @@ -12,6 +12,7 @@ changes, but there are breaking changes between major versions (e.g. 5.x to See the following topics for a description of breaking changes: * <> +* <> * <> * <> * <> @@ -29,6 +30,14 @@ upgrade the Beats to version 7.0. {see-relnotes} include::./field-name-changes.asciidoc[] +[[breaking-changes-6.7]] +=== Breaking changes in 6.7 + +The data structure used to store Beats central management data in Kibana has changed. As a result of the +template changes, enrolled Beats and configuration tags created prior to 6.7 will not work until you migrate them to the new format. +To migrate to the new format, use the https://github.com/elastic/migrate-management-beats/releases[migration tool] we've created. +For more information, see the https://github.com/elastic/migrate-management-beats/blob/master/README.md[documentation] about the tool. {see-relnotes} + [[breaking-changes-6.3]] === Breaking changes in 6.3 @@ -78,7 +87,7 @@ as recommended in the {logstash-ref}/plugins-inputs-beats.html[Beats input plugin] documentation. This results in a `host` field in 6.2 indices, and a `host.name` field in 6.3 indices. There are no mapping conflicts, but any visualizations or searches that use `host` will no longer show results for -6.3 indices. +6.3 indices. *What do you need to change?* @@ -121,7 +130,7 @@ index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" For more information, see the documentation for the {logstash-ref}/plugins-inputs-beats.html[Beats input plugin]. -* Or, in the Beats config file, configure Beats to drop all `host.*` fields: +* Or, in the Beats config file, configure Beats to drop all `host.*` fields: + [source,yaml] ---- @@ -140,7 +149,7 @@ With this configuration, Beats drops the `host` fields before sending the event to Logstash, and Logstash adds a default `host` field, as it did with previous Beats versions. This approach resolves the mapping conflict, but you should plan to migrate your Logstash configurations to use `host.name` in -future releases. +future releases. [[beats-template-non-versioned-indices]] ===== Use case: You use the Beats index template and your indices are not versioned @@ -151,7 +160,7 @@ pattern to create versioned indices. You cannot resolve the problem by dropping the `host.*` fields, because Logstash will add a default `host` field, resulting in a mapping conflict with the -`host` field defined as an object in the index template. +`host` field defined as an object in the index template. *What do you need to change?* From 5fcfa55c4e6bd3290a2cb3e66c8d34097a4a594e Mon Sep 17 00:00:00 2001 From: Jaime Soriano Pastor Date: Tue, 26 Mar 2019 13:49:54 +0100 Subject: [PATCH 279/332] Remove jessie-updates repo from metricbeat docker images (#11463) --- metricbeat/module/apache/_meta/Dockerfile | 1 + metricbeat/module/apache/_meta/Dockerfile.2.4.12 | 1 + metricbeat/module/mongodb/_meta/Dockerfile | 1 + metricbeat/module/nginx/_meta/Dockerfile | 1 + 4 files changed, 4 insertions(+) diff --git a/metricbeat/module/apache/_meta/Dockerfile b/metricbeat/module/apache/_meta/Dockerfile index b6239b871f9..06b9d21c98c 100644 --- a/metricbeat/module/apache/_meta/Dockerfile +++ b/metricbeat/module/apache/_meta/Dockerfile @@ -1,4 +1,5 @@ FROM httpd:2.4.20 +RUN sed -i "/jessie-updates/d" /etc/apt/sources.list RUN apt-get update && apt-get install -y curl HEALTHCHECK --interval=1s --retries=90 CMD curl -f http://localhost COPY ./httpd.conf /usr/local/apache2/conf/httpd.conf diff --git a/metricbeat/module/apache/_meta/Dockerfile.2.4.12 b/metricbeat/module/apache/_meta/Dockerfile.2.4.12 index f35ea2d95c0..8170e61ba4d 100644 --- a/metricbeat/module/apache/_meta/Dockerfile.2.4.12 +++ b/metricbeat/module/apache/_meta/Dockerfile.2.4.12 @@ -1,4 +1,5 @@ FROM httpd:2.4.12 +RUN sed -i "/jessie-updates/d" /etc/apt/sources.list RUN apt-get update && apt-get install -y curl HEALTHCHECK --interval=1s --retries=90 CMD curl -f http://localhost COPY ./httpd.conf /usr/local/apache2/conf/httpd.conf diff --git a/metricbeat/module/mongodb/_meta/Dockerfile b/metricbeat/module/mongodb/_meta/Dockerfile index 958ff456ce4..22ccbf5d16f 100644 --- a/metricbeat/module/mongodb/_meta/Dockerfile +++ b/metricbeat/module/mongodb/_meta/Dockerfile @@ -1,3 +1,4 @@ FROM mongo:3.4 +RUN sed -i "/jessie-updates/d" /etc/apt/sources.list RUN apt-get update && apt-get install -y netcat HEALTHCHECK --interval=1s --retries=90 CMD nc -z localhost 27017 diff --git a/metricbeat/module/nginx/_meta/Dockerfile b/metricbeat/module/nginx/_meta/Dockerfile index 855362ca156..1edda281c62 100755 --- a/metricbeat/module/nginx/_meta/Dockerfile +++ b/metricbeat/module/nginx/_meta/Dockerfile @@ -1,4 +1,5 @@ FROM nginx:1.9 +RUN sed -i "/jessie-updates/d" /etc/apt/sources.list RUN apt-get update && apt-get install -y curl HEALTHCHECK --interval=1s --retries=90 CMD curl -f http://localhost/server-status COPY ./nginx.conf /etc/nginx/ From 289fc230aa862f4dcbfa7a10843c1a071242d196 Mon Sep 17 00:00:00 2001 From: Alex K <8418476+fearful-symmetry@users.noreply.github.com> Date: Tue, 26 Mar 2019 08:23:19 -0500 Subject: [PATCH 280/332] [metricbeat] migrate vsphere/host to ReporterV2 (#11403) * migrate vsphere/host to ReporterV2 --- metricbeat/module/vsphere/host/data.go | 8 +++--- metricbeat/module/vsphere/host/host.go | 29 +++++++++++---------- metricbeat/module/vsphere/host/host_test.go | 18 ++++++------- 3 files changed, 28 insertions(+), 27 deletions(-) diff --git a/metricbeat/module/vsphere/host/data.go b/metricbeat/module/vsphere/host/data.go index 6b2b5c2a172..642f1230298 100644 --- a/metricbeat/module/vsphere/host/data.go +++ b/metricbeat/module/vsphere/host/data.go @@ -24,8 +24,8 @@ import ( ) func eventMapping(hs mo.HostSystem) common.MapStr { - totalCpu := int64(hs.Summary.Hardware.CpuMhz) * int64(hs.Summary.Hardware.NumCpuCores) - freeCpu := int64(totalCpu) - int64(hs.Summary.QuickStats.OverallCpuUsage) + totalCPU := int64(hs.Summary.Hardware.CpuMhz) * int64(hs.Summary.Hardware.NumCpuCores) + freeCPU := int64(totalCPU) - int64(hs.Summary.QuickStats.OverallCpuUsage) usedMemory := int64(hs.Summary.QuickStats.OverallMemoryUsage) * 1024 * 1024 freeMemory := int64(hs.Summary.Hardware.MemorySize) - usedMemory @@ -36,10 +36,10 @@ func eventMapping(hs mo.HostSystem) common.MapStr { "mhz": hs.Summary.QuickStats.OverallCpuUsage, }, "total": common.MapStr{ - "mhz": totalCpu, + "mhz": totalCPU, }, "free": common.MapStr{ - "mhz": freeCpu, + "mhz": freeCPU, }, }, "memory": common.MapStr{ diff --git a/metricbeat/module/vsphere/host/host.go b/metricbeat/module/vsphere/host/host.go index 526c3747856..4717a02cb35 100644 --- a/metricbeat/module/vsphere/host/host.go +++ b/metricbeat/module/vsphere/host/host.go @@ -27,7 +27,6 @@ import ( "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/common/cfgwarn" - "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/mb" "github.com/vmware/govmomi" @@ -38,20 +37,20 @@ import ( "github.com/vmware/govmomi/vim25/types" ) -var logger = logp.NewLogger("vsphere") - func init() { mb.Registry.MustAddMetricSet("vsphere", "host", New, mb.DefaultMetricSet(), ) } +// MetricSet type defines all fields of the MetricSet type MetricSet struct { mb.BaseMetricSet HostURL *url.URL Insecure bool } +// New create a new instance of the MetricSet func New(base mb.BaseMetricSet) (mb.MetricSet, error) { cfgwarn.Beta("The vsphere host metricset is beta") @@ -79,16 +78,17 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { }, nil } -func (m *MetricSet) Fetch() ([]common.MapStr, error) { +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(reporter mb.ReporterV2) error { ctx, cancel := context.WithCancel(context.Background()) defer cancel() - var events []common.MapStr - client, err := govmomi.NewClient(ctx, m.HostURL, m.Insecure) if err != nil { - return nil, err + return errors.Wrap(err, "error in NewClient") } defer client.Logout(ctx) @@ -100,7 +100,7 @@ func (m *MetricSet) Fetch() ([]common.MapStr, error) { v, err := mgr.CreateContainerView(ctx, c.ServiceContent.RootFolder, []string{"HostSystem"}, true) if err != nil { - return nil, err + return errors.Wrap(err, "error in CreateContainerView") } defer v.Destroy(ctx) @@ -109,7 +109,7 @@ func (m *MetricSet) Fetch() ([]common.MapStr, error) { var hst []mo.HostSystem err = v.Retrieve(ctx, []string{"HostSystem"}, []string{"summary"}, &hst) if err != nil { - return nil, err + return errors.Wrap(err, "error in Retrieve") } for _, hs := range hst { @@ -127,24 +127,25 @@ func (m *MetricSet) Fetch() ([]common.MapStr, error) { event.Put("memory.free.bytes", int64(hs.Summary.Hardware.MemorySize)-(int64(hs.Summary.QuickStats.OverallMemoryUsage)*1024*1024)) event.Put("memory.total.bytes", hs.Summary.Hardware.MemorySize) } else { - logger.Debug("'Hardware' or 'Summary' data not found. This is either a parsing error from vsphere library, an error trying to reach host/guest or incomplete information returned from host/guest") + m.Logger().Debug("'Hardware' or 'Summary' data not found. This is either a parsing error from vsphere library, an error trying to reach host/guest or incomplete information returned from host/guest") } if hs.Summary.Host != nil { networkNames, err := getNetworkNames(ctx, c, hs.Summary.Host.Reference()) if err != nil { - logger.Debugf("error trying to get network names: %s", err.Error()) + m.Logger().Debugf("error trying to get network names: %s", err.Error()) } else { if len(networkNames) > 0 { event["network_names"] = networkNames } } } - - events = append(events, event) + reporter.Event(mb.Event{ + MetricSetFields: event, + }) } - return events, nil + return nil } func getNetworkNames(ctx context.Context, c *vim25.Client, ref types.ManagedObjectReference) ([]string, error) { diff --git a/metricbeat/module/vsphere/host/host_test.go b/metricbeat/module/vsphere/host/host_test.go index 78f29e3349e..ce0d7fda80f 100644 --- a/metricbeat/module/vsphere/host/host_test.go +++ b/metricbeat/module/vsphere/host/host_test.go @@ -29,7 +29,6 @@ import ( func TestFetchEventContents(t *testing.T) { model := simulator.ESX() - err := model.Create() if err := model.Create(); err != nil { t.Fatal(err) } @@ -37,14 +36,15 @@ func TestFetchEventContents(t *testing.T) { ts := model.Service.NewServer() defer ts.Close() - f := mbtest.NewEventsFetcher(t, getConfig(ts)) - - events, err := f.Fetch() - if err != nil { - t.Fatal("fetch error", err) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig(ts)) + events, errs := mbtest.ReportingFetchV2Error(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } - event := events[0] + assert.NotEmpty(t, events) + + event := events[0].MetricSetFields t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event.StringToPrint()) @@ -82,9 +82,9 @@ func TestData(t *testing.T) { ts := model.Service.NewServer() defer ts.Close() - f := mbtest.NewEventsFetcher(t, getConfig(ts)) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig(ts)) - if err := mbtest.WriteEvents(f, t); err != nil { + if err := mbtest.WriteEventsReporterV2Error(f, t, ""); err != nil { t.Fatal("write", err) } } From 6bff9a64b4f18101f62842a9885b2c904ce45c6b Mon Sep 17 00:00:00 2001 From: Michal Pristas Date: Tue, 26 Mar 2019 16:25:49 +0100 Subject: [PATCH 281/332] decode_json_field: process objects and arrays only (#11312) * process objects and arrays only * changelog * table tests for depth * added array into testcase * moved to fixes * added structure check & decoder error check --- CHANGELOG.next.asciidoc | 1 + .../processors/actions/decode_json_fields.go | 14 +++ .../actions/decode_json_fields_test.go | 87 +++++++++++++++++++ 3 files changed, 102 insertions(+) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index e356b44dd00..b8b65e1c137 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -147,6 +147,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Include ip and boolean type when generating index pattern. {pull}10995[10995] - Cancelling enrollment of a beat will not enroll the beat. {issue}10150[10150] - Add missing fields and test cases for libbeat add_kubernetes_metadata processor. {issue}11133[11133], {pull}11134[11134] +- decode_json_field: process objects and arrays only {pull}11312[11312] - decode_json_field: do not process arrays when flag not set. {pull}11318[11318] - Report faulting file when config reload fails. {pull}[11304]11304 - Remove IP fields from default_field in Elasticsearch template. diff --git a/libbeat/processors/actions/decode_json_fields.go b/libbeat/processors/actions/decode_json_fields.go index 684648e169c..74d7311f1aa 100644 --- a/libbeat/processors/actions/decode_json_fields.go +++ b/libbeat/processors/actions/decode_json_fields.go @@ -20,6 +20,7 @@ package actions import ( "encoding/json" "fmt" + "io" "strings" "github.com/pkg/errors" @@ -146,6 +147,8 @@ func unmarshal(maxDepth int, text string, fields *interface{}, processArray bool str, isString := v.(string) if !isString { return v, false + } else if !isStructured(str) { + return str, false } var tmp interface{} @@ -193,6 +196,10 @@ func decodeJSON(text string, to *interface{}) error { return errors.New("multiple json elements found") } + if _, err := dec.Token(); err != nil && err != io.EOF { + return err + } + switch O := interface{}(*to).(type) { case map[string]interface{}: jsontransform.TransformNumbers(O) @@ -203,3 +210,10 @@ func decodeJSON(text string, to *interface{}) error { func (f decodeJSONFields) String() string { return "decode_json_fields=" + strings.Join(f.fields, ", ") } + +func isStructured(s string) bool { + s = strings.TrimSpace(s) + end := len(s) - 1 + return end > 0 && ((s[0] == '[' && s[end] == ']') || + (s[0] == '{' && s[end] == '}')) +} diff --git a/libbeat/processors/actions/decode_json_fields_test.go b/libbeat/processors/actions/decode_json_fields_test.go index 50309652dfb..13aa10a00c3 100644 --- a/libbeat/processors/actions/decode_json_fields_test.go +++ b/libbeat/processors/actions/decode_json_fields_test.go @@ -18,6 +18,7 @@ package actions import ( + "fmt" "testing" "github.com/stretchr/testify/assert" @@ -199,6 +200,67 @@ func TestTargetRootOption(t *testing.T) { assert.Equal(t, expected.String(), actual.String()) } +func TestNotJsonObjectOrArray(t *testing.T) { + var cases = []struct { + MaxDepth int + Expected common.MapStr + }{ + { + MaxDepth: 1, + Expected: common.MapStr{ + "msg": common.MapStr{ + "someDate": "2016-09-28T01:40:26.760+0000", + "someNumber": 1475026826760, + "someNumberAsString": "1475026826760", + "someString": "foobar", + "someString2": "2017 is awesome", + "someMap": "{\"a\":\"b\"}", + "someArray": "[1,2,3]", + }, + }, + }, + { + MaxDepth: 10, + Expected: common.MapStr{ + "msg": common.MapStr{ + "someDate": "2016-09-28T01:40:26.760+0000", + "someNumber": 1475026826760, + "someNumberAsString": "1475026826760", + "someString": "foobar", + "someString2": "2017 is awesome", + "someMap": common.MapStr{"a": "b"}, + "someArray": []int{1, 2, 3}, + }, + }, + }, + } + + for _, testCase := range cases { + t.Run(fmt.Sprintf("TestNotJsonObjectOrArrayDepth-%v", testCase.MaxDepth), func(t *testing.T) { + input := common.MapStr{ + "msg": `{ + "someDate": "2016-09-28T01:40:26.760+0000", + "someNumberAsString": "1475026826760", + "someNumber": 1475026826760, + "someString": "foobar", + "someString2": "2017 is awesome", + "someMap": "{\"a\":\"b\"}", + "someArray": "[1,2,3]" + }`, + } + + testConfig, _ = common.NewConfigFrom(map[string]interface{}{ + "fields": fields, + "process_array": true, + "max_depth": testCase.MaxDepth, + }) + + actual := getActualValue(t, testConfig, input) + assert.Equal(t, testCase.Expected.String(), actual.String()) + }) + } +} + func TestArrayWithArraysDisabled(t *testing.T) { input := common.MapStr{ "msg": `{ @@ -222,6 +284,7 @@ func TestArrayWithArraysDisabled(t *testing.T) { assert.Equal(t, expected.String(), actual.String()) } + func TestArrayWithArraysEnabled(t *testing.T) { input := common.MapStr{ "msg": `{ @@ -246,6 +309,30 @@ func TestArrayWithArraysEnabled(t *testing.T) { assert.Equal(t, expected.String(), actual.String()) } +func TestArrayWithInvalidArray(t *testing.T) { + input := common.MapStr{ + "msg": `{ + "arrayOfMap": "[]]" + }`, + } + + testConfig, _ = common.NewConfigFrom(map[string]interface{}{ + "fields": fields, + "max_depth": 10, + "process_array": true, + }) + + actual := getActualValue(t, testConfig, input) + + expected := common.MapStr{ + "msg": common.MapStr{ + "arrayOfMap": "[]]", + }, + } + + assert.Equal(t, expected.String(), actual.String()) +} + func getActualValue(t *testing.T, config *common.Config, input common.MapStr) common.MapStr { logp.TestingSetup() From 49f160921b46d6bee7a08733cc2c1f2ce3f5bad3 Mon Sep 17 00:00:00 2001 From: Brandon Morelli Date: Tue, 26 Mar 2019 11:39:14 -0700 Subject: [PATCH 282/332] docs: remove reference to beats (#11436) --- libbeat/docs/repositories.asciidoc | 10 +++++----- libbeat/docs/shared-beats-attributes.asciidoc | 1 + 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/libbeat/docs/repositories.asciidoc b/libbeat/docs/repositories.asciidoc index 9f6e91f6ff0..1c5823b7374 100644 --- a/libbeat/docs/repositories.asciidoc +++ b/libbeat/docs/repositories.asciidoc @@ -27,13 +27,13 @@ to sign all our packages. It is available from https://pgp.mit.edu. ifeval::["{release-state}"=="unreleased"] -Version {stack-version} of Beats has not yet been released. +Version {stack-version} of {repo} has not yet been released. endif::[] ifeval::["{release-state}"!="unreleased"] -To add the Beats repository for APT: +To add the {repo} repository for APT: . Download and install the Public Signing Key: + @@ -102,13 +102,13 @@ endif::[] ifeval::["{release-state}"=="unreleased"] -Version {stack-version} of Beats has not yet been released. +Version {stack-version} of {repo} has not yet been released. endif::[] ifeval::["{release-state}"!="unreleased"] -To add the Beats repository for YUM: +To add the {repo} repository for YUM: . Download and install the public signing key: + @@ -155,7 +155,7 @@ running: sudo yum install {beatname_pkg} -------------------------------------------------- -. To configure the Beat to start automatically during boot, run: +. To configure {beatname_uc} to start automatically during boot, run: + ["source","sh",subs="attributes"] -------------------------------------------------- diff --git a/libbeat/docs/shared-beats-attributes.asciidoc b/libbeat/docs/shared-beats-attributes.asciidoc index c5ccfa35a9f..370994dd25d 100644 --- a/libbeat/docs/shared-beats-attributes.asciidoc +++ b/libbeat/docs/shared-beats-attributes.asciidoc @@ -11,3 +11,4 @@ :beat_monitoring_version: 6.2 :beat_version_key: agent.version :access_role: {beat_default_index_prefix}_reader +:repo: Beats From 7982422bbe3993dd5228bcb8d571f1b48bdb5dc9 Mon Sep 17 00:00:00 2001 From: Mario Castro Date: Tue, 26 Mar 2019 21:00:13 +0100 Subject: [PATCH 283/332] [Metricbeat] Migrate Aerospike namespace Metricset to use ReporterV2 interface (#10984) --- .../aerospike/namespace/_meta/data.json | 20 ++++++++++-------- .../module/aerospike/namespace/namespace.go | 21 ++++++++----------- .../namespace/namespace_integration_test.go | 21 +++++++++++++++---- 3 files changed, 37 insertions(+), 25 deletions(-) diff --git a/metricbeat/module/aerospike/namespace/_meta/data.json b/metricbeat/module/aerospike/namespace/_meta/data.json index 8285d45da82..cda9bc06e5e 100644 --- a/metricbeat/module/aerospike/namespace/_meta/data.json +++ b/metricbeat/module/aerospike/namespace/_meta/data.json @@ -57,8 +57,8 @@ }, "name": "test", "node": { - "host": "172.18.0.4:3000", - "name": "BB9040012AC4202" + "host": "172.26.0.2:3000", + "name": "BB902001AAC4202" }, "objects": { "master": 0, @@ -67,14 +67,16 @@ "stop_writes": false } }, - "beat": { - "hostname": "host.example.com", - "name": "host.example.com" + "event": { + "dataset": "aerospike.namespace", + "duration": 115000, + "module": "aerospike" }, "metricset": { - "host": "aerospike:3000", - "module": "aerospike", - "name": "namespace", - "rtt": 115 + "name": "namespace" + }, + "service": { + "address": "172.26.0.2:3000", + "type": "aerospike" } } \ No newline at end of file diff --git a/metricbeat/module/aerospike/namespace/namespace.go b/metricbeat/module/aerospike/namespace/namespace.go index f3afee04fa5..61b80a40530 100644 --- a/metricbeat/module/aerospike/namespace/namespace.go +++ b/metricbeat/module/aerospike/namespace/namespace.go @@ -24,7 +24,6 @@ import ( "github.com/pkg/errors" "github.com/elastic/beats/libbeat/common" - "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/module/aerospike" ) @@ -67,27 +66,25 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { }, nil } -// Fetch methods implements the data gathering and data conversion to the right format -// It returns the event which is then forward to the output. In case of an error, a -// descriptive error must be returned. -func (m *MetricSet) Fetch() ([]common.MapStr, error) { - var events []common.MapStr - +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(reporter mb.ReporterV2) error { if err := m.connect(); err != nil { - return nil, err + return errors.Wrap(err, "error connecting to Aerospike") } for _, node := range m.client.GetNodes() { info, err := as.RequestNodeInfo(node, "namespaces") if err != nil { - logp.Err("Failed to retrieve namespaces from node %s", node.GetName()) + m.Logger().Error("Failed to retrieve namespaces from node %s", node.GetName()) continue } for _, namespace := range strings.Split(info["namespaces"], ";") { info, err := as.RequestNodeInfo(node, "namespace/"+namespace) if err != nil { - logp.Err("Failed to retrieve metrics for namespace %s from node %s", namespace, node.GetName()) + m.Logger().Error("Failed to retrieve metrics for namespace %s from node %s", namespace, node.GetName()) continue } @@ -98,11 +95,11 @@ func (m *MetricSet) Fetch() ([]common.MapStr, error) { "name": node.GetName(), } - events = append(events, data) + reporter.Event(mb.Event{MetricSetFields: data}) } } - return events, nil + return nil } // create an aerospike client if it doesn't exist yet diff --git a/metricbeat/module/aerospike/namespace/namespace_integration_test.go b/metricbeat/module/aerospike/namespace/namespace_integration_test.go index 03fd7ed4397..fcbd812d13d 100644 --- a/metricbeat/module/aerospike/namespace/namespace_integration_test.go +++ b/metricbeat/module/aerospike/namespace/namespace_integration_test.go @@ -22,19 +22,32 @@ package namespace import ( "testing" + "github.com/stretchr/testify/assert" + "github.com/elastic/beats/libbeat/tests/compose" mbtest "github.com/elastic/beats/metricbeat/mb/testing" "github.com/elastic/beats/metricbeat/module/aerospike" ) func TestData(t *testing.T) { + f := mbtest.NewReportingMetricSetV2Error(t, getConfig()) + if err := mbtest.WriteEventsReporterV2Error(f, t, ""); err != nil { + t.Fatal("write", err) + } +} + +func TestFetch(t *testing.T) { compose.EnsureUp(t, "aerospike") - f := mbtest.NewEventsFetcher(t, getConfig()) - err := mbtest.WriteEvents(f, t) - if err != nil { - t.Fatal("write", err) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig()) + events, errs := mbtest.ReportingFetchV2Error(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } + assert.NotEmpty(t, events) + event := events[0].MetricSetFields + + t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event) } func getConfig() map[string]interface{} { From 8e18bad0378bf38b462cad11a5ab76482c191ad6 Mon Sep 17 00:00:00 2001 From: Alex K <8418476+fearful-symmetry@users.noreply.github.com> Date: Wed, 27 Mar 2019 08:07:40 -0500 Subject: [PATCH 284/332] [metricbeat] migrate vsphere/virtualmachine to ReporterV2 (#11475) * migrate vsphere/virtualmachine to ReporterV2 --- .../vsphere/virtualmachine/virtualmachine.go | 120 ++++++++---------- .../virtualmachine/virtualmachine_test.go | 15 ++- 2 files changed, 61 insertions(+), 74 deletions(-) diff --git a/metricbeat/module/vsphere/virtualmachine/virtualmachine.go b/metricbeat/module/vsphere/virtualmachine/virtualmachine.go index 7474f3d319d..0b1248b850f 100644 --- a/metricbeat/module/vsphere/virtualmachine/virtualmachine.go +++ b/metricbeat/module/vsphere/virtualmachine/virtualmachine.go @@ -22,11 +22,9 @@ import ( "fmt" "net/url" "strings" - "sync" "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/libbeat/common/cfgwarn" - "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/mb" "github.com/pkg/errors" @@ -39,14 +37,13 @@ import ( "github.com/vmware/govmomi/vim25/types" ) -var logger = logp.NewLogger("vsphere") - func init() { mb.Registry.MustAddMetricSet("vsphere", "virtualmachine", New, mb.DefaultMetricSet(), ) } +// MetricSet type defines all fields of the MetricSet type MetricSet struct { mb.BaseMetricSet HostURL *url.URL @@ -54,6 +51,7 @@ type MetricSet struct { GetCustomFields bool } +// New create a new instance of the MetricSet func New(base mb.BaseMetricSet) (mb.MetricSet, error) { cfgwarn.Beta("The vsphere virtualmachine metricset is beta") @@ -85,15 +83,16 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { }, nil } -func (m *MetricSet) Fetch() ([]common.MapStr, error) { +// Fetch methods implements the data gathering and data conversion to the right +// format. It publishes the event which is then forwarded to the output. In case +// of an error set the Error field of mb.Event or simply call report.Error(). +func (m *MetricSet) Fetch(reporter mb.ReporterV2) error { ctx, cancel := context.WithCancel(context.Background()) defer cancel() - var events []common.MapStr - client, err := govmomi.NewClient(ctx, m.HostURL, m.Insecure) if err != nil { - return nil, err + return errors.Wrap(err, "error in NewClient") } defer client.Logout(ctx) @@ -106,7 +105,7 @@ func (m *MetricSet) Fetch() ([]common.MapStr, error) { var err error customFieldsMap, err = setCustomFieldsMap(ctx, c) if err != nil { - return nil, err + return errors.Wrap(err, "error in setCustomFieldsMap") } } @@ -115,7 +114,7 @@ func (m *MetricSet) Fetch() ([]common.MapStr, error) { v, err := mgr.CreateContainerView(ctx, c.ServiceContent.RootFolder, []string{"VirtualMachine"}, true) if err != nil { - return nil, err + return errors.Wrap(err, "error in CreateContainerView") } defer v.Destroy(ctx) @@ -124,72 +123,60 @@ func (m *MetricSet) Fetch() ([]common.MapStr, error) { var vmt []mo.VirtualMachine err = v.Retrieve(ctx, []string{"VirtualMachine"}, []string{"summary"}, &vmt) if err != nil { - return nil, err + return errors.Wrap(err, "error in Retrieve") } - var wg sync.WaitGroup - var mutex sync.Mutex - for _, vm := range vmt { - wg.Add(1) + freeMemory := (int64(vm.Summary.Config.MemorySizeMB) * 1024 * 1024) - (int64(vm.Summary.QuickStats.GuestMemoryUsage) * 1024 * 1024) - go func(vm mo.VirtualMachine, c *vim25.Client) { + event := common.MapStr{} - defer wg.Done() + event["name"] = vm.Summary.Config.Name + event.Put("cpu.used.mhz", vm.Summary.QuickStats.OverallCpuUsage) + event.Put("memory.used.guest.bytes", int64(vm.Summary.QuickStats.GuestMemoryUsage)*1024*1024) + event.Put("memory.used.host.bytes", int64(vm.Summary.QuickStats.HostMemoryUsage)*1024*1024) + event.Put("memory.total.guest.bytes", int64(vm.Summary.Config.MemorySizeMB)*1024*1024) + event.Put("memory.free.guest.bytes", freeMemory) - freeMemory := (int64(vm.Summary.Config.MemorySizeMB) * 1024 * 1024) - (int64(vm.Summary.QuickStats.GuestMemoryUsage) * 1024 * 1024) - - event := common.MapStr{} + if vm.Summary.Runtime.Host != nil { + event["host"] = vm.Summary.Runtime.Host.Value + } else { + m.Logger().Debug("'Host', 'Runtime' or 'Summary' data not found. This is either a parsing error " + + "from vsphere library, an error trying to reach host/guest or incomplete information returned " + + "from host/guest") + } - event["name"] = vm.Summary.Config.Name - event.Put("cpu.used.mhz", vm.Summary.QuickStats.OverallCpuUsage) - event.Put("memory.used.guest.bytes", int64(vm.Summary.QuickStats.GuestMemoryUsage)*1024*1024) - event.Put("memory.used.host.bytes", int64(vm.Summary.QuickStats.HostMemoryUsage)*1024*1024) - event.Put("memory.total.guest.bytes", int64(vm.Summary.Config.MemorySizeMB)*1024*1024) - event.Put("memory.free.guest.bytes", freeMemory) + // Get custom fields (attributes) values if get_custom_fields is true. + if m.GetCustomFields && vm.Summary.CustomValue != nil { + customFields := getCustomFields(vm.Summary.CustomValue, customFieldsMap) - if vm.Summary.Runtime.Host != nil { - event["host"] = vm.Summary.Runtime.Host.Value - } else { - logger.Debug("'Host', 'Runtime' or 'Summary' data not found. This is either a parsing error " + - "from vsphere library, an error trying to reach host/guest or incomplete information returned " + - "from host/guest") + if len(customFields) > 0 { + event["custom_fields"] = customFields } + } else { + m.Logger().Debug("custom fields not activated or custom values not found/parse in Summary data. This " + + "is either a parsing error from vsphere library, an error trying to reach host/guest or incomplete " + + "information returned from host/guest") + } - // Get custom fields (attributes) values if get_custom_fields is true. - if m.GetCustomFields && vm.Summary.CustomValue != nil { - customFields := getCustomFields(vm.Summary.CustomValue, customFieldsMap) - - if len(customFields) > 0 { - event["custom_fields"] = customFields - } + if vm.Summary.Vm != nil { + networkNames, err := getNetworkNames(c, vm.Summary.Vm.Reference()) + if err != nil { + m.Logger().Debug(err.Error()) } else { - logger.Debug("custom fields not activated or custom values not found/parse in Summary data. This " + - "is either a parsing error from vsphere library, an error trying to reach host/guest or incomplete " + - "information returned from host/guest") - } - - if vm.Summary.Vm != nil { - networkNames, err := getNetworkNames(c, vm.Summary.Vm.Reference()) - if err != nil { - logger.Debug(err.Error()) - } else { - if len(networkNames) > 0 { - event["network_names"] = networkNames - } + if len(networkNames) > 0 { + event["network_names"] = networkNames } } + } - mutex.Lock() - events = append(events, event) - mutex.Unlock() - }(vm, c) + reporter.Event(mb.Event{ + MetricSetFields: event, + }) } - wg.Wait() - - return events, nil + return nil } func getCustomFields(customFields []types.BaseCustomFieldValue, customFieldsMap map[int32]string) common.MapStr { @@ -258,15 +245,14 @@ func setCustomFieldsMap(ctx context.Context, client *vim25.Client) (map[int32]st if err != nil { return nil, errors.Wrap(err, "failed to get custom fields manager") - } else { - field, err := customFieldsManager.Field(ctx) - if err != nil { - return nil, errors.Wrap(err, "failed to get custom fields") - } + } + field, err := customFieldsManager.Field(ctx) + if err != nil { + return nil, errors.Wrap(err, "failed to get custom fields") + } - for _, def := range field { - customFieldsMap[def.Key] = def.Name - } + for _, def := range field { + customFieldsMap[def.Key] = def.Name } return customFieldsMap, nil diff --git a/metricbeat/module/vsphere/virtualmachine/virtualmachine_test.go b/metricbeat/module/vsphere/virtualmachine/virtualmachine_test.go index 4baf8f0a84b..1c1eee7d995 100644 --- a/metricbeat/module/vsphere/virtualmachine/virtualmachine_test.go +++ b/metricbeat/module/vsphere/virtualmachine/virtualmachine_test.go @@ -37,13 +37,14 @@ func TestFetchEventContents(t *testing.T) { ts := model.Service.NewServer() defer ts.Close() - f := mbtest.NewEventsFetcher(t, getConfig(ts)) - events, err := f.Fetch() - if err != nil { - t.Fatal("fetch error", err) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig(ts)) + events, errs := mbtest.ReportingFetchV2Error(f) + if len(errs) > 0 { + t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } - event := events[0] + assert.NotEmpty(t, events) + event := events[0].MetricSetFields t.Logf("%s/%s event: %+v", f.Module().Name(), f.Name(), event.StringToPrint()) @@ -81,9 +82,9 @@ func TestData(t *testing.T) { ts := model.Service.NewServer() defer ts.Close() - f := mbtest.NewEventsFetcher(t, getConfig(ts)) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig(ts)) - if err := mbtest.WriteEvents(f, t); err != nil { + if err := mbtest.WriteEventsReporterV2Error(f, t, ""); err != nil { t.Fatal("write", err) } } From 6d1847363c544b6f6beb5269106c1873fa811488 Mon Sep 17 00:00:00 2001 From: Jaime Soriano Pastor Date: Wed, 27 Mar 2019 14:29:56 +0100 Subject: [PATCH 285/332] Try again to fix flakyness in HTTP timeout test (#11437) --- metricbeat/helper/http_test.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/metricbeat/helper/http_test.go b/metricbeat/helper/http_test.go index e931b3f85a5..27a8419b3d9 100644 --- a/metricbeat/helper/http_test.go +++ b/metricbeat/helper/http_test.go @@ -77,16 +77,17 @@ func TestGetAuthHeaderFromTokenNoFile(t *testing.T) { } func TestTimeout(t *testing.T) { + c := make(chan struct{}) ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { select { - case <-time.After(5 * time.Nanosecond): + case <-c: case <-r.Context().Done(): } })) defer ts.Close() cfg := defaultConfig() - cfg.Timeout = 1 * time.Nanosecond + cfg.Timeout = 1 * time.Millisecond hostData := mb.HostData{ URI: ts.URL, SanitizedURI: ts.URL, @@ -96,6 +97,7 @@ func TestTimeout(t *testing.T) { require.NoError(t, err) checkTimeout(t, h) + close(c) } func TestConnectTimeout(t *testing.T) { From 8f1fa59c507fcee1b705b45f9f7dfa5b088e537a Mon Sep 17 00:00:00 2001 From: Jaime Soriano Pastor Date: Wed, 27 Mar 2019 14:42:51 +0100 Subject: [PATCH 286/332] Add autodiscover to libbeat modules list in fields generator (#11474) Add autodiscover providers to the list of libbeat modules in fields generator. Move jolokia autodiscover fields added in #10925 to the provider. --- auditbeat/docs/fields.asciidoc | 78 +++++++++++++++++++ auditbeat/include/fields.go | 2 +- filebeat/docs/fields.asciidoc | 78 +++++++++++++++++++ filebeat/include/fields.go | 2 +- heartbeat/docs/fields.asciidoc | 78 +++++++++++++++++++ heartbeat/include/fields.go | 2 +- journalbeat/docs/fields.asciidoc | 78 +++++++++++++++++++ journalbeat/include/fields.go | 2 +- .../providers/jolokia/_meta/fields.yml | 33 ++++++++ libbeat/generator/fields/fields.go | 15 ++-- .../fields/module_fields_collector.go | 1 + metricbeat/docs/fields.asciidoc | 8 ++ metricbeat/include/fields/fields.go | 2 +- metricbeat/module/jolokia/_meta/fields.yml | 28 ------- metricbeat/module/jolokia/fields.go | 2 +- packetbeat/docs/fields.asciidoc | 78 +++++++++++++++++++ packetbeat/include/fields.go | 2 +- winlogbeat/docs/fields.asciidoc | 78 +++++++++++++++++++ winlogbeat/include/fields.go | 2 +- x-pack/functionbeat/docs/fields.asciidoc | 78 +++++++++++++++++++ x-pack/functionbeat/include/fields.go | 2 +- 21 files changed, 607 insertions(+), 42 deletions(-) create mode 100644 libbeat/autodiscover/providers/jolokia/_meta/fields.yml diff --git a/auditbeat/docs/fields.asciidoc b/auditbeat/docs/fields.asciidoc index e0716dfd774..30c0bf0bfc2 100644 --- a/auditbeat/docs/fields.asciidoc +++ b/auditbeat/docs/fields.asciidoc @@ -20,6 +20,7 @@ grouped in the following categories: * <> * <> * <> +* <> * <> * <> * <> @@ -6268,6 +6269,83 @@ example: 18D109 OS build information. +-- + +[[exported-fields-jolokia-autodiscover]] +== Jolokia Discovery autodiscover provider fields + +Metadata from Jolokia Discovery added by the jolokia provider. + + + +*`jolokia.agent.version`*:: ++ +-- +type: keyword + +Version number of jolokia agent. + + +-- + +*`jolokia.agent.id`*:: ++ +-- +type: keyword + +Each agent has a unique id which can be either provided during startup of the agent in form of a configuration parameter or being autodetected. If autodected, the id has several parts: The IP, the process id, hashcode of the agent and its type. + + +-- + +*`jolokia.server.product`*:: ++ +-- +type: keyword + +The container product if detected. + + +-- + +*`jolokia.server.version`*:: ++ +-- +type: keyword + +The container's version (if detected). + + +-- + +*`jolokia.server.vendor`*:: ++ +-- +type: keyword + +The vendor of the container the agent is running in. + + +-- + +*`jolokia.url`*:: ++ +-- +type: keyword + +The URL how this agent can be contacted. + + +-- + +*`jolokia.secured`*:: ++ +-- +type: boolean + +Whether the agent was configured for authentication or not. + + -- [[exported-fields-kubernetes-processor]] diff --git a/auditbeat/include/fields.go b/auditbeat/include/fields.go index 220d7954494..08f6f5755e5 100644 --- a/auditbeat/include/fields.go +++ b/auditbeat/include/fields.go @@ -32,5 +32,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "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" + return "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" } diff --git a/filebeat/docs/fields.asciidoc b/filebeat/docs/fields.asciidoc index d4b5e29fcea..266270e4d19 100644 --- a/filebeat/docs/fields.asciidoc +++ b/filebeat/docs/fields.asciidoc @@ -25,6 +25,7 @@ grouped in the following categories: * <> * <> * <> +* <> * <> * <> * <> @@ -6500,6 +6501,83 @@ type: keyword The rule set name. +-- + +[[exported-fields-jolokia-autodiscover]] +== Jolokia Discovery autodiscover provider fields + +Metadata from Jolokia Discovery added by the jolokia provider. + + + +*`jolokia.agent.version`*:: ++ +-- +type: keyword + +Version number of jolokia agent. + + +-- + +*`jolokia.agent.id`*:: ++ +-- +type: keyword + +Each agent has a unique id which can be either provided during startup of the agent in form of a configuration parameter or being autodetected. If autodected, the id has several parts: The IP, the process id, hashcode of the agent and its type. + + +-- + +*`jolokia.server.product`*:: ++ +-- +type: keyword + +The container product if detected. + + +-- + +*`jolokia.server.version`*:: ++ +-- +type: keyword + +The container's version (if detected). + + +-- + +*`jolokia.server.vendor`*:: ++ +-- +type: keyword + +The vendor of the container the agent is running in. + + +-- + +*`jolokia.url`*:: ++ +-- +type: keyword + +The URL how this agent can be contacted. + + +-- + +*`jolokia.secured`*:: ++ +-- +type: boolean + +Whether the agent was configured for authentication or not. + + -- [[exported-fields-kafka]] diff --git a/filebeat/include/fields.go b/filebeat/include/fields.go index 8434513eba6..ad53907da5f 100644 --- a/filebeat/include/fields.go +++ b/filebeat/include/fields.go @@ -32,5 +32,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "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" + return "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" } diff --git a/heartbeat/docs/fields.asciidoc b/heartbeat/docs/fields.asciidoc index 743ac1e13fe..158867863db 100644 --- a/heartbeat/docs/fields.asciidoc +++ b/heartbeat/docs/fields.asciidoc @@ -20,6 +20,7 @@ grouped in the following categories: * <> * <> * <> +* <> * <> * <> * <> @@ -3707,6 +3708,83 @@ type: long Duration in microseconds +-- + +[[exported-fields-jolokia-autodiscover]] +== Jolokia Discovery autodiscover provider fields + +Metadata from Jolokia Discovery added by the jolokia provider. + + + +*`jolokia.agent.version`*:: ++ +-- +type: keyword + +Version number of jolokia agent. + + +-- + +*`jolokia.agent.id`*:: ++ +-- +type: keyword + +Each agent has a unique id which can be either provided during startup of the agent in form of a configuration parameter or being autodetected. If autodected, the id has several parts: The IP, the process id, hashcode of the agent and its type. + + +-- + +*`jolokia.server.product`*:: ++ +-- +type: keyword + +The container product if detected. + + +-- + +*`jolokia.server.version`*:: ++ +-- +type: keyword + +The container's version (if detected). + + +-- + +*`jolokia.server.vendor`*:: ++ +-- +type: keyword + +The vendor of the container the agent is running in. + + +-- + +*`jolokia.url`*:: ++ +-- +type: keyword + +The URL how this agent can be contacted. + + +-- + +*`jolokia.secured`*:: ++ +-- +type: boolean + +Whether the agent was configured for authentication or not. + + -- [[exported-fields-kubernetes-processor]] diff --git a/heartbeat/include/fields.go b/heartbeat/include/fields.go index 568a23c8aee..5961f84a9fc 100644 --- a/heartbeat/include/fields.go +++ b/heartbeat/include/fields.go @@ -32,5 +32,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "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" + return "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" } diff --git a/journalbeat/docs/fields.asciidoc b/journalbeat/docs/fields.asciidoc index e4f03837fc4..51495bffb48 100644 --- a/journalbeat/docs/fields.asciidoc +++ b/journalbeat/docs/fields.asciidoc @@ -18,6 +18,7 @@ grouped in the following categories: * <> * <> * <> +* <> * <> * <> @@ -4111,6 +4112,83 @@ example: 18D109 OS build information. +-- + +[[exported-fields-jolokia-autodiscover]] +== Jolokia Discovery autodiscover provider fields + +Metadata from Jolokia Discovery added by the jolokia provider. + + + +*`jolokia.agent.version`*:: ++ +-- +type: keyword + +Version number of jolokia agent. + + +-- + +*`jolokia.agent.id`*:: ++ +-- +type: keyword + +Each agent has a unique id which can be either provided during startup of the agent in form of a configuration parameter or being autodetected. If autodected, the id has several parts: The IP, the process id, hashcode of the agent and its type. + + +-- + +*`jolokia.server.product`*:: ++ +-- +type: keyword + +The container product if detected. + + +-- + +*`jolokia.server.version`*:: ++ +-- +type: keyword + +The container's version (if detected). + + +-- + +*`jolokia.server.vendor`*:: ++ +-- +type: keyword + +The vendor of the container the agent is running in. + + +-- + +*`jolokia.url`*:: ++ +-- +type: keyword + +The URL how this agent can be contacted. + + +-- + +*`jolokia.secured`*:: ++ +-- +type: boolean + +Whether the agent was configured for authentication or not. + + -- [[exported-fields-kubernetes-processor]] diff --git a/journalbeat/include/fields.go b/journalbeat/include/fields.go index 6e168e5e925..e8f192f341c 100644 --- a/journalbeat/include/fields.go +++ b/journalbeat/include/fields.go @@ -32,5 +32,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "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" + return "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" } diff --git a/libbeat/autodiscover/providers/jolokia/_meta/fields.yml b/libbeat/autodiscover/providers/jolokia/_meta/fields.yml new file mode 100644 index 00000000000..9684203473c --- /dev/null +++ b/libbeat/autodiscover/providers/jolokia/_meta/fields.yml @@ -0,0 +1,33 @@ +- key: jolokia-autodiscover + title: Jolokia Discovery autodiscover provider + description: > + Metadata from Jolokia Discovery added by the jolokia provider. + fields: + - name: jolokia.agent.version + type: keyword + description: > + Version number of jolokia agent. + - name: jolokia.agent.id + type: keyword + description: > + Each agent has a unique id which can be either provided during startup of the agent in form of a configuration parameter or being autodetected. If autodected, the id has several parts: The IP, the process id, hashcode of the agent and its type. + - name: jolokia.server.product + type: keyword + description: > + The container product if detected. + - name: jolokia.server.version + type: keyword + description: > + The container's version (if detected). + - name: jolokia.server.vendor + type: keyword + description: > + The vendor of the container the agent is running in. + - name: jolokia.url + type: keyword + description: > + The URL how this agent can be contacted. + - name: jolokia.secured + type: boolean + description: > + Whether the agent was configured for authentication or not. diff --git a/libbeat/generator/fields/fields.go b/libbeat/generator/fields/fields.go index e9a4d7c9235..b26bf7e36a3 100644 --- a/libbeat/generator/fields/fields.go +++ b/libbeat/generator/fields/fields.go @@ -78,12 +78,17 @@ func collectCommonFiles(esBeatsPath, beatPath string, fieldFiles []*YmlFile) ([] return nil, err } files = append(files, ymls...) - libbeatModulesPath := filepath.Join(esBeatsPath, "libbeat/processors") - libbeatFieldFiles, err := CollectModuleFiles(libbeatModulesPath) - if err != nil { - return nil, err + libbeatModulesPaths := []string{ + filepath.Join(esBeatsPath, "libbeat/processors"), + filepath.Join(esBeatsPath, "libbeat/autodiscover/providers"), + } + for _, libbeatModulesPath := range libbeatModulesPaths { + libbeatFieldFiles, err := CollectModuleFiles(libbeatModulesPath) + if err != nil { + return nil, err + } + files = append(files, libbeatFieldFiles...) } - files = append(files, libbeatFieldFiles...) } // Fields for custom beats last, to enable overriding more generically defined fields diff --git a/libbeat/generator/fields/module_fields_collector.go b/libbeat/generator/fields/module_fields_collector.go index 3a787b0bcb9..5c55dea5829 100644 --- a/libbeat/generator/fields/module_fields_collector.go +++ b/libbeat/generator/fields/module_fields_collector.go @@ -23,6 +23,7 @@ import ( ) var indentByModule = map[string]int{ + "providers": 0, "processors": 0, "module": 8, "active": 8, diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index eae44f4e302..22a78b69c98 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -36,6 +36,7 @@ grouped in the following categories: * <> * <> * <> +* <> * <> * <> * <> @@ -11709,6 +11710,13 @@ jolokia contains metrics exposed via jolokia agent +[[exported-fields-jolokia-autodiscover]] +== Jolokia Discovery autodiscover provider fields + +Metadata from Jolokia Discovery added by the jolokia provider. + + + *`jolokia.agent.version`*:: + -- diff --git a/metricbeat/include/fields/fields.go b/metricbeat/include/fields/fields.go index 27e850fd3ad..673f9ff6b88 100644 --- a/metricbeat/include/fields/fields.go +++ b/metricbeat/include/fields/fields.go @@ -32,5 +32,5 @@ func init() { // AssetLibbeatFieldsYml returns asset data. // This is the base64 encoded gzipped contents of ../libbeat/fields.yml. func AssetLibbeatFieldsYml() string { - return "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" + return "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" } diff --git a/metricbeat/module/jolokia/_meta/fields.yml b/metricbeat/module/jolokia/_meta/fields.yml index 90e90b774ec..c70f3a505c7 100644 --- a/metricbeat/module/jolokia/_meta/fields.yml +++ b/metricbeat/module/jolokia/_meta/fields.yml @@ -11,31 +11,3 @@ description: > jolokia contains metrics exposed via jolokia agent fields: - - name: agent.version - type: keyword - description: > - Version number of jolokia agent. - - name: agent.id - type: keyword - description: > - Each agent has a unique id which can be either provided during startup of the agent in form of a configuration parameter or being autodetected. If autodected, the id has several parts: The IP, the process id, hashcode of the agent and its type. - - name: server.product - type: keyword - description: > - The container product if detected. - - name: server.version - type: keyword - description: > - The container's version (if detected). - - name: server.vendor - type: keyword - description: > - The vendor of the container the agent is running in. - - name: url - type: keyword - description: > - The URL how this agent can be contacted. - - name: secured - type: boolean - description: > - Whether the agent was configured for authentication or not. diff --git a/metricbeat/module/jolokia/fields.go b/metricbeat/module/jolokia/fields.go index aef6948238f..62f2b0fd69b 100644 --- a/metricbeat/module/jolokia/fields.go +++ b/metricbeat/module/jolokia/fields.go @@ -32,5 +32,5 @@ func init() { // AssetJolokia returns asset data. // This is the base64 encoded gzipped contents of ../metricbeat/module/jolokia. func AssetJolokia() string { - return "eJyslM2O2zoMhfd5ioNs7i0wkwfworsupuiiKPqzKIpCkeiIM7bkklQy8/aFbGfGQZq2QKpdGPqcTxTJWzzQU4P73OUHdivA2DpqsH47RdYrIJB64cE4pwavVwAw/4s+h9LRCtCYxb77nFreNWhdpzUq1JFTarCr0kpmnHba4OtatVvfYB3NhvW3FdAydUGbUfwWyfW0hKrHnoYqJLkMc+QXXNOZP4TPyRwnRU8m7BX0OGSlgD275yS3o2Tzx0uKJcmYs9mTKOe0MJqYHujpkCUs4hfJgM+TCFLptyTI7SnI5oI3h+ts3zgfJylEp3AoiX8UAgccIvsI7xK2BGKLJBgk7zlQQCjCaQc1J1aGimuRZiFOaLP0NTjWuuVdEVfdMThxPVm9oGBLVcIVy4GMvFHY4K6dA/XnzSjKYURT2pO4rkqYNvgYCXfvp4xBsidVcLipqdHnQKdILgWw6Vih81IqyZ5kM0gOxdt1Ba1cc39N9aqS4BbPd7xk/0/a6MT+P8Usiv8XBK9+g5BClusJJp3jE7yUY9EjCikp1QbgdM5TpLue4tOHd4j5AIuss+3czSPRpcfwReh8qrY5d+TS37l/iTSOy8t9D06fR4FCnY/a55GSsZ9GIwtSPpnzaQP3j2csy2X3B5LjQr7vH4/bjpYdfrqJj+e4734GAAD//5W+yCU=" + return "eJx8kFFOwzAQRP99ipG/6QX8wQG4AkLISjbptrbX8m5RensUkoARqPM5uzN6mhOudA+4SJIrRwcYW6IA/7I53gEj6dC4GksJeHYAsF+RZbwlcoCepdn7IGXiOWCKSVe3UaKoFDCv1UpmXGYNePWqyT/Bn82qf3PAxJRGDV/lJ5SYqYdaZfe6FjW51d35h2vTHsQgxSIXRSZrPChoqaI04oPj91Ocqdge7ik2km2dvHTtf0EewvyMdcnLQULWffxe6dDB8hkAAP//TGJ6CQ==" } diff --git a/packetbeat/docs/fields.asciidoc b/packetbeat/docs/fields.asciidoc index 99cf6232595..905cde7f991 100644 --- a/packetbeat/docs/fields.asciidoc +++ b/packetbeat/docs/fields.asciidoc @@ -25,6 +25,7 @@ grouped in the following categories: * <> * <> * <> +* <> * <> * <> * <> @@ -5683,6 +5684,83 @@ type: long The response code. +-- + +[[exported-fields-jolokia-autodiscover]] +== Jolokia Discovery autodiscover provider fields + +Metadata from Jolokia Discovery added by the jolokia provider. + + + +*`jolokia.agent.version`*:: ++ +-- +type: keyword + +Version number of jolokia agent. + + +-- + +*`jolokia.agent.id`*:: ++ +-- +type: keyword + +Each agent has a unique id which can be either provided during startup of the agent in form of a configuration parameter or being autodetected. If autodected, the id has several parts: The IP, the process id, hashcode of the agent and its type. + + +-- + +*`jolokia.server.product`*:: ++ +-- +type: keyword + +The container product if detected. + + +-- + +*`jolokia.server.version`*:: ++ +-- +type: keyword + +The container's version (if detected). + + +-- + +*`jolokia.server.vendor`*:: ++ +-- +type: keyword + +The vendor of the container the agent is running in. + + +-- + +*`jolokia.url`*:: ++ +-- +type: keyword + +The URL how this agent can be contacted. + + +-- + +*`jolokia.secured`*:: ++ +-- +type: boolean + +Whether the agent was configured for authentication or not. + + -- [[exported-fields-kubernetes-processor]] diff --git a/packetbeat/include/fields.go b/packetbeat/include/fields.go index de43eeeb560..0887b6a9907 100644 --- a/packetbeat/include/fields.go +++ b/packetbeat/include/fields.go @@ -32,5 +32,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "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" + return "eJzsvetyGzmSKPy/nwKfOuKTvUtRF8tutzZm92hkdbfO+KKx5O2d3dkQwSqQRKsKqAZQpNknzrufQCZudSFF2aLHjtX8mDZLVUAikchM5PV78uvp+7cXb3/+/8grSYQ0hOXcEDPjmkx4wUjOFctMsRwQbsiCajJlgilqWE7GS2JmjJyfXZFKyd9YZgbffU/GVLOcSAHP50xpLgU5HB4MD4bffU8uC0Y1I3OuuSEzYyp9sr8/5WZWj4eZLPdZQbXh2T7LNDGS6Ho6ZdqQbEbFlMEjO+yEsyLXw+++2yO3bHlCWKa/I8RwU7AT+8J3hORMZ4pXhksBj8hP7hvivj75jpA9ImjJTsju/zK8ZNrQstr9jhBCCjZnxQnJpGLwW7Hfa65YfkKMqvGRWVbshOTU4M/GfLuvqGH7dkyymDEBaGJzJgyRik+5sOgbfgffEXJtcc01vJSH79hHo2hm0TxRsowjDOzEPKNFsSSKVYppJgwXU5jIjRin690wLWuVsTD/xST5AP9GZlQTIT20BQnoGSBpzGlRMwA6AFPJqi7sNG5YN9mEK23g+xZYimWMzyNUFa9YwUWE673DOe4XmUhFaFHgCHqI+8Q+0rKym757dHD4Yu/g+d7Rs+uDlycHz0+eHQ9fPn/2n7vJNhd0zArdu8G4m3JsqRge4D9v8PktWy6kyns2+qzWRpb2hX3ESUW50mENZ1SQMSO1PRJGEprnpGSGEi4mUpXUDmKfuzWRq5msixyOYSaFoVwQwbTdOgQHyNf+77QocA80oYoRbaRFFNUe0gDAuUfQKJfZLVMjQkVORrcv9ciho4VJ9x2tqoJnFFc5kXJvTJX7ExPzE3vg8zqzf07wWzKt6ZStQbBhH00PFn+SihRy6vAA5ODGcpvvsIF/sm+6Pw+IrAwv+R+B7CyZzDlb2CPBBaHwtn3AVECKnU4bVWemtmgr5FSTBTczWRtCRaT6BgwDIs2MKcc9SIY7m0mRUcNEQvhGWiBKQsmsLqnYU4zmdFwwouuypGpJZHLg0lNY1oXhVRHWrgn7yLU98TO2jBOWYy5YTrgwkkgR3m6fiF9YUUjyq1RFnmyRodN1ByAldD4VUrEbOpZzdkIOD46Ouzv3mmtj1+O+04HSDZ0SRrOZX2XzsP7XTqSfnQHZYWJ+tPPf6VGlUyaQUhxXPw0PpkrW1Qk56qGj6xnDL8MuuVPkeCsldGw3GbngxCzs4bH801j5NvG0L5YW59QewqKwx25AcmbwH1IROdZMze32ILlKS2YzaXdKKmLoLdOkZFTXipX2BTdseK19ODXhIivqnJE/M2rZAKxVk5IuCS20JKoW9ms3r9JDEGiw0OE/uaW6IfXM8sgxi+wYKNvCT3mhPe0hklQthD0nEhFkYUvW58/7YsZUyrxntKqYpUC7WDipYanA2C0ChKPGiZRGSGP33C/2hFzgdJlVBOQEFw3n1h7EQYRvaEmBOEVkzKgZJuf39PINqCROcDYX5HacVtW+XQrP2JBE2kiZby6ZRx1wXdAzCJ8gtXBNrHglZqZkPZ2R32tW2/H1UhtWalLwW0b+Qie3dEDes5wjfVRKZkxrLqZ+U9zrus5mlkm/llNtqJ4RXAe5AnQ7lOFBBCJHFAZtJZ4OVs1YyRQtbrjnOu48s4+GiTzyos6pXnmu22fp3M9BeG6PyIQzheTDtUPkEz4BDgRsSj8NdO11GivJVAnagVfgaKaktsJfG6rseRrXhoxwu3k+gv2wO+GQkTCNl/R48vzgYNJARHv5gZ191tI/CP67VW/uv+4gbi2JImHDdwuQ62NGgIx5vnJ5eWN59v+3sUCntcD5SjlCZwc1ofgWskMUQVM+Z6C2UOE+w7fdn2esqCZ1YQ+RPdRuhWFgs5DkJ3egCRfaUJE5NabFj7SdGJiSJRInTkkUp6yiijoVxC1fE8FYjvePxYxns+5U4WRnsrSTWfU6WffFxCq+nvPAUpEl+UdyYpggBZsYwsrKLLtbOZGysYt2o7axi9fLas32eW5nJyDa0KUmtFjY/wTcWlVQzzxp4rY6bRy/tdJ8GFEjAs8OWI3vIom7KcYsvgIijE8aGx93rE0Ajc0vaTazV4IuitNxPJ7dZXMLqP53d41tIrsF0wt7x91T2VGixmQFb+kxZ/HJGkXm1H1pCS5nE1D4KO4cF9xwaiQwJUoEMwupbq2mIxgoVPbUedhQQVFsSlUOgsvKJSn0IHkfhdaY402fS6v5Tgq5sDc0q9M11Obrs0s3Kp6KCGYHNvvAvp5ABlxEMxHUFfvO1d/ekopmt8w80U+HMAtq2pWSRmay6EyFN1orVhqTej1LwXWd2UuR1wQ8loyiQlMAZkiuZMmCbK416jiGqZLs+Gu6VDtRq1dswlQDFNFaoEY1w/3Z6aC4s2MWdDDQQRMEIAjEgiWmfpvjFCn8qE07IvIT2JNT69oixI0alT8uLHi/1QI3AHRB1O68EYX0jBYRLKTpjGm5Om7YHhwyf30Nl14cb99PFMwUwKxRTtibsGYlFYZnoKWzj8aJFPYRlYUBcvDvAmv3gsVIMud2vfwPFjV7u1KmQNvX3NTU7cfFhCxlrcIcE1oUnvq48HLNsKlUy4F91XNEbXhRECasbusIF20jlmvmTBtLHxanFmETXhRB6aJVpWSlODWsWN5Dq6N5rpjW21LogNxRhXfE5SZ0zDfwmXLMp7WsdbFEcoZvAsdeWLRoWTKwCZHC3gCpIBeXA0JJLku7AVIRSmrBPxItLZ0MCflbxKyTEWC0iGrBjBFFFx4mT/ijoXswQpQ1RZywN4AowfIajRZ4BR0NeTWyoIyGCNbIXuMqJnKnY6CCIEUEAu4Tbsf8royXhuk7ZEohg66PV4vmZ419+LP9A14rgmXP7Ye9N1t+gNeBtnw5fHncAAwXtQVp584vjj9szDllcphxs7zZkmZ6xs0Spuqs/o0URjFadMGRwnDBhNkWTG8TLTlM1oHvrVRmRk5LpnhGe4CshVHLG67lTSbzraAOpyAXV++InaID4dnpSrC2tZsOpN4NPaOC5l1MFTJLdfpV4EyZvKkkD3ypaZWSYspNnSOvLqiBHx0Idv8P2Smk2Dkhez88G744PH757GBAdgpqdk7I8fPh84PnPx6+JP93twNkF18Px6Y/aKb2PC9O/oTqnkfPgDjlGyWwnJCpoqIuqOJmmTLVJckscwedI2GeZ55nhqsNUjhXKE0zJgxTTvOaFFIqIupyzNQAVPkZj3qNDoMieAWpZkvN7T+8aS3zx1onILyVJnEfgOGQC0JrI0tg4VMm/Wq7F4Cx1EaKvTzr7I1iUy7FNk/ae5hh3UHb++vZKri2dNQcTL0n7a81G7Mmonh1BwzhhSZxXlwGAe05IgiLlLLQCiAFs7I32LQvLufH9sHF5fxFVDxasrak2RZw8+b0bBXU6eSo0t5D1DcmucSvP0mwHzXhkMp8KhBSmXVLrDVTQ1ZSXmyJe1nmRWACj/EeACZ1UfScgwcFYlcTOw1MCyyLzikv6LjoHo/TYsyUIedcaMOcQtWAF7T24dYsrV1r48RZ1mHiYBCBW+J+VVBjdcwevCKcW0RsqgnhZF0gZlTPtiYaEVN2HmLnsecqk0oxey9tmPUneAOxL1qZIqRYpk5CVNMTpvVBM2eyHMEqeI43B/hhVzcKrqRMignuFS0ac1pdI6Mi3piJd/22uJybYQuc7l2L6dZt0goMEGDoQrUl6XQ1s4wJ1Qxw83DRBSQ5khSOZMOOJmucMpjR/IPVVjSM+CBIHrlnwjAUAdPQRNHgBo4OLrwNo3XYX+rARkxWOrQm5A0zimdoaNapIZsKcn52hGZsSyETZrIZ06BlJaMTbrTzIUYgLXU1Xd8NHybXwUDaBMGNq2rhnJOKldIEcyqRtdE8Z8lMbcgQJkqc98wvyG+6iJ86DbHppcdB40DgJnSTe0Foh+U6guoQdh97SQb3l+1x5t3riCCcC9yjakoF/wMPPc+Dy9udsiXJ+WTCVGozAT2Yg6OXUDyee4YJKgxhYs6VFGVTiYq0dfrrVZic5wPys5TTgiH9k3fvfyYXOTqlwWTaOfBdzfnFixc//PDDy5cvf/zxxyY6UULywt7v/4hmkYfG6mkyD7HzWKygLQZoGo5KPEQd5lDrPUa12TtsqbTOk7A9crjwHqSLV557Aaz+ELYB5XuHR8+On7/44eWPB3Sc5Wxy0A/xFkV2gDn19XWhThRweNh1WT0YRG88H0i8V2vRaI6GJct5XTa1ZCXnPA9BCttUdZAD+AmH/nCmAVh0oQeE/lErNiDTrBqEgywVyfmUG1rIjFHRlXQL3VgW3hK3tCh3SfzE45aKY2T0DvteJDcernFuhRebDgznWejExyUhOxXL+IT7O2KAAs3zzgflrPRykg6SBFsyzfy8M1ZUiQIJ8grDV8PQ2klCsbQIMrxk9xBQW9HxnBIcF8/z5hnmJZ1ulaekZwMmC6ZRBGhBNRnXvDBWnPeAZuh0S5BFynJw0WkTgCQCdP3sSSTomljQNrOFSV1YZWPeLe5GXHM0/gRugiS7LXaCo5OSCjq12hvwk0AHHU6CEagJG0m8aCkjedV6vIaVJK+ud7ei9py8DdZUNPnsNyMxe8ZMPKx3+VaR+zjf6tfo+2u4LjdyAEY1FoO3H8gBGIYFR+D/bAdguineWOii9FuH6It5AdNj8OgKfHQFPgxIj67AzXH26Ap8dAV+S67ARIh9a/7ABuhky07Bewj7rXgGVy720T346B58dA+SR/fgt+YexPzvVgb4OsPBG2boXro73rToMsxxyk0u7nclHfRkjn9eWlaSVQ+6l4volbAYTYwckhHL9NC9NMIkHg9GpHDw2FmiLGttMJUJDkPRiecm5Fd70/69ZmoJEeqYwxXIiIucZ0yTvT13oy7p0gMESfwFn85M0ecYS1YD37u6Axa0wgpOLgybKhc3TvPfLKheZGYzVtIW/kkjuVZ3lUUoRJBSjlKyYcU+Dw/W55lGK3IGSUkuxB0HhHNExZLcchEtFh8wxaDEtCh8DyzXmFFpkVcwdMNaNPvsUuBRGdVMx1RMvyzYe240KybR+0oFjn4P89OW1GNAJgzurwhoJmQOwKYiukVreY/07IEgzV9fDUbIYe9drM/GTmls3soBOp9vmMuM+9vnJfHpDP2OkkJ6JRAdKopnDVoJJHkK6fHNJCNLPp6nWIKyW5akD4Plb4b7SGM2sGfSr2MaPzAWn9oMuTW8ZPay6r1P9qkdKIwRM6LlJFmEG88PRX2GLYEkUh9o4cInYkoU6u5kzDDzyangbkzqTbVGEpqqxAM0XvbkVY2ZWTBmZ/L5EyJ3MRLBD4mTuZQkzJHOCmmFPDn1O3E3uvGy5IYspWL2xg3mpAJGxHwV+JkmmgNA/YhOXnPDxlTtBtZTaokoL1kp1ZJYJgf5MG64PEF8JLh5XQim0MPPYy68e1lbJYjlmAl/n2CPDUxBnxzkgaOTjFZYEsJlQTYdAy4pNhg7XPZZPIA8qfQyJBfgkoTdi9rFjAoywhd81tEoZliGjbBnfQQI2aN5PhqQkSP5PSB5Bo8mvGB7mWKW0EaYquPrsoQRQwK2pzi3Mm7nKcGy0xWSVunaq6jWFpl7mI3VFBcO9G1sxzkeBjdDG/lByM34dObSz/p5IHBIEKCTzq6EMWF3INuttTlIEKOB31PNhHZpYNFQRQOYAa44steOqM8M/JUqe7ih/sGkhpizoPrIiVWFBmTBSFVQMAu4eANCw5CFK7ZBs4xVBnKgXQgCyjSvOg1IhVWWas3QK5XRut92BjsN/rvIGsImI2XdscehAFJ7Hx2R4yCdKLb+6kiWJ0HBoLBmxSjQrE81x1zVJeb0dUoGOSJBBdIeVW7ZeuZsL7HIU8j8Sx7FbXWwhjEDR+2pyRRqxbRZxYUgpdQmyUUEA6olooWM9ZQ0utPGrEdLxiPtf2bRS5U1qwpltMjAJemsOwVdBlkFeHKSzhWCAhXeCZ0YqNIQHbAt8KmvpqK08VKX5YS3Uv49JKUUPCbikmSI3V3QZP2O2Z8+BMxIcstYReoKiRU+SqtRNbEKKegAaROPlmWimpfRYpDubPQP9ty2c2qoZneZ1T6Jk6X2EDdNK0M/k8IeZbTnj9w7I/LEcnbNDNl34lgz89TSs7eMY2UJqzwQXY8j+HD9KWVeF0wDq2scu5RPomZgd7BWltaKpS8ixUWcNL3wI4nEP+E0dlMdtPByl8VoQ00zximv1SZ+nR6fautLLqra3Pg/CiqkZpmM2eWtWAH3cUMg2OUmHzYLQeCZBokLi8ffzGp9ipFbIRciLYcW6cz0n1t/KGF2gbdvHD0JLAq3BrGJRXEV+42gdjhvm+nCoHYfw3Mrsuap88jy5YJa6YOlgVoRR1s06v1C9Yw8qZia0UpDgSAonDPhYspUpbgwT+1+KrpwXN9IuwEgHI0MC8hZKYU2yi4fbjxgV+Bm2WNy9yGbff86/fPZqy92ab14ZVcT4lkShbQFc2/tmFu+EQF9sspsx+8vZeak8JTPIeK5rZwtnBLVjtFLSNLTbBRPvjybu8wl1ro1ul5Ln4anozjmyLImZjVpWlBVjr5OFQ2AbJopgPNuW2I5/o7+3bUlc7BUUHoParyZjNaWYFKFWljdhZdL/XszxsMrW9tY+nu6AMtOKPonJ+CzVoGaPjglZw0vWaGGCmnlTM4+MuT5ucxukuDhnGtLKTlKbHARgELIqMpmLI8EO64N4aEMk7KimM29Njq6QW1p1MXkFavI4Y/k4OXJ0YuTwwMM+T07/+nk4P///vDo+F+uWFbbBeAvYmZWacdbgcJnh0P36uGB+0c8mVKVRNeZVQ0ndYGKRFWx3H+A/9Uq+9PhAZSBPSS5Nn86Gh4Oj4ZHujJ/Ojx61nR0ytpkcntxFZZ9uSlWcbBGUdR447fXkAytRPEw66aMbYyclDryZWeitQVfdNzJodAV6JxQXtSK9fKkMOJGvGlznhTG3Zw3IcyNvVNc397o5FCuOqaTQtJeQ+p7rm8JjIDV9Li0xNlU256w4XRItCNcomUBIOqn0ZjyQTN3/QHXKFxA3GUN9bUZU+142QD7jZCq3ID+Vi5i9y1YXvgfLIdh71jQIBjHrE49CYs4sHt5eHDQU5mtpFxgtIzzTS5lDXtWYjglFWBHdNWF4LpLteZToROAdPMGaIdYUMxY1sxSj4jLQKw57w8tCl87qaW4ajZnSejRfSMVrtznLTtb2Ds/fEvW/zrDKKio8vlrdPzCkX3JqAAmOmcquW4H9dziEPwtliHvRpNOXXl9I7GewbWX3jICdlE3FWc+iVBorg3YihFt3rXWOki7P7RwaG8Fn63+493izguAMymmV4AG07JXgWiaWXEHsDeYLSaN7SYSNd6zkiKnjSXt7upoGkhrfBIni51PwsHcVFILxWi+dBwmZxNaF4ZcLbWV9dHekDCaC7RuAKS0wEy8Bdep3eI08t4wKU4JhHICpkQhBZj0L165yXfOayUrtn9aasNUTsudp8lxHY8Vm6OXwb9+db3zFNwXgvzyy0lZRuLmtPBv7R08Pzk42HnaOrbbqlL4niG5gLRxSnWNLrKwFlcVns4l5FOGXIJY+RtiNawaOkyrBE+404OdY+0n/3ttaT2oa99ywhDNTPc+Av4tTcaWKzTNoc5PZP8KrnPv3QBbCLDFWDbPTufqd3vdjWotMx7L84JG5uvqNYq96YFlzPvOzOL5BnpnYEOtJiI1cxW50cIPU154vZS8QbOcRet//XTx5r999W4dnUwuIxcK8IEXGhUbr0V0cynoZMLQFGpfb63HU01S9t5Zju7jk94wdWUVD3xNfeF5ALFkhmI8K/gzWuwrZ3b5W2Jer2DwFVlqmD5dtDQRmLsbWPJw/BR2OczSVi9CokYhF4RRvbQgGgYkNF4iQsPHPWEWlZPtIep1a+Fxl4pDUXUMhrOs8+eLV09XIzbS3LZhSTNuu3Bw0Qm5eMCkX5mzZncID4T3Z6V8ijRtC1tL/LVAJfiwoMjM0KJVILKjHB0fvmjC+LCMwRmPQMMpZc4nvM0c5EJsLdEYpYOdYBesI6qbxVdRsy3z6iU1M6/UdmlU8z82wfMqTR6WZsewOw3pUORJsIlIe3ehee51t5EdC4LVwK89etpSL6maMnOzRVRcwwyAbNA49LIsuLhtRShvMTEe0AV2UfD/DEjOFSgZDpIWRuqtsdRrF3cJ3PQDcFMVr9pJKNWTqxarRUJOY5+mTKYK2s/u5xr97Gcm08i6jCp7SYt1T2i0/vqckLTECxWpjtRsspOkkTQUPaeU5UzxYE4zLJuBGT6W7beQXVwmgS7oUVR7uq6qggfX4kbKzdeTOffVZ819hRlzX1m23FefKfeYJfd1Zsl9jRlyX0F2XPey4OVXeLBagl2H1JwkcLdkzqoaI8XhHRcBDs0PWMHmNBxOp5UlHt9PKTnyVaUhfencoxCfIHUj/voX/3utmcgXxmmYiVxlfJLJsqoNxvq6Kk6hq9PZFQa3+tZM/QbLtCtTNKtgD6ZYoKcZ6e8DpUEtBDWlN8I3je21awW8hmBeN+KMqnxBFRuQOVempoUvwKQH5BVU6kiq4IARivylHjMlmIEWPTm7V30Llc24YVniv3rQzKbKR7b5ZgrJfJ1z/vHli5sXzTIKj9UMHqsZ3B+kx2oGm+PsUU97rGaw/WoGVn5uCZLdX9zYadXCNGTEJO3uvM914dzSZOQhG1ndobTnVzFTKyzR2imCuLtWq3vQNneo56SFlU51wKMPX3I9WzBjeAAucudND/qrVXG5mEIwgoseX1vcFDVlF3+MLkGL2RG0yANMtbHwaZUqQAPiVX/Fge1UmPjFbWX/nNuiz7draROMaS5JHagyociEEj9A0S4M7HBMEoK6fq9pAabxMKYr9YUlFDBnzgLgrHMx1QhSuGGvtZUkiuQs4zlks1rdFcgoMnZp329tvNTDCS15sdySaHp3RXB88sTb+hTLZ9QMSM7GnIoBmSjGxjofkAUXuVxE93+sbgdvduCui20V0+jovK6YBWj53ufjU8V9Gm6/Ckozi4M38jc6Z+0V3FqV/4utAWcLYMOdS9EF0Ub1FSc9Hh4PD/YOD4/2XBJXG/otKjQr8O8jlRPsr0L4f7Sh9dfmLwWxn8/RvdWNpB6QelwLU6+jdaoWvEPrvaUQtgf8pjRyeDA8PB4eNqDdVrCLb8nZYr8/SeUqdvsqwq4vrPM8NOqj2yGgsfAoVD4eQYH3eTlIFGAIsk503XBZH6RtV5Pa4KnHI8rqMGKfzO4pTPJYHqhJXY/lgR7LAz2WB/q6ywPNjGlY8X+5vr6E3/fpHWI/CuGwQ1/MhYxqVYx8YCrDwOmksSUAqQoPr2tMu7k9338wlvly2FOJ9q6AjDur0V414jOaYBKYtY3ely9/WA2iC6bZ0hm+dtcR3Iy1UP7CikKShVRF3g/tFnB5LQ0tWhEvLYw+scDCYZ8xavWArnJ1ePysH8ElMzO5tZy+Bkpxqla2MhI5ZgFAbZcxS9MDjCSFXDAFCdqWhfqCUUNyxVxOrMzq0sd5hbG1q6+yc+HD6q2Wd352tdM1j02ZGZAKCr1UtelFE7RpVlsL2Hrvho/ZMynmOrtpeY8+2d8fF3I6dE+HmSz3W7DrSgrNvvg5x2k3PegpkF/2pK+Dc/VR9/B+6bPuoP20w+6A1oaaWveYeu8Vg9dEH47Zb9w9Pmh6xLZ7mwO4Vl2PD4dpsxFfB8oJ79fu552yG81LtFF+R0LGZpqEs4kQhsVv47r4zic1WaiCw8NV8OrkJGIR/0ZK84IqMRqQERQzs//gPemfTKnGcraZRuuT0xopW3YxPq2WtksSwClP3kjU3wnWTiq4QU+7ITWUbgkaakVVo07hBZo4FY1lAkduWK+jIVWkxlBoOe8Lu9gR0/w7vxdulDTts5X16RY76CzIp/WGMWd0zkKakbabimHHma9ziNGEaARgIpPYr0ARwRak4IJpaOg2Ty4k9ipTMCogR60J8udmJRMtXdLx7i6IfCvWUzvw2Bu7QDH47ORk8LSBT+LN0p39YDjHxJiUG7xNHt1RTM+n1TRDOtB0Upa1cPjHCGA5Z8pzkBg/QnAXkvQcF5Kh0wZD/o1PCgDxo7dqcLQThnwBn/uEYFTYHGOLSSWneEub8jkTGIybzuo4XKWkkZksmiWEqBpzo6iKVn7i0lVd6hiUCtR4KEqeKelTlgZAgbTQEiZb4smPL+vbZcWi5Yxnvw/IhGZsLOXtgJgFNwYdFFyTRVopyLKaWL4pFt8kcybypMoRREdjQ8MQSWxFbB4ih0MZBDwF+7nVsS8uMVxaD6Cwtx6QZMwFVz5D8CvUwilvNmN76BYpu6hdoVZlFBUadG7YkbG054Yr5uqqNXL2R65iFHzpUunTcuf+uS/fMyAjf1jdn1B28bgTui67CHj24mUDAY6DmOXN9ppRnqLVCkpwQvIYMO2klvzFJVaAdNRENVmwonBMLqzHH78YmNDkf8OQYE6JkbLYo1MhteGZ1R5FTlWj2WUYdlLIRboZrxlVAlPRqQm3oCk3s3oM9x9LIFDybD8gb4/ne1ZX6ynbezJ798/67fEv//zm5+dv/rb/cnah/uPy9+z4P//6x8GfGlsRSGML6s3OKz+419M8uzaKTiY8G/5dvGd2PVhUKYrTk78L8veAnL+TfyJcjGUt8r8LQv6JyNokv7gwTAla4C9LQfFXLYBw/y7+Ln6dMZGOWdKqSgoHuxauVnjtYVe7MuaBuvqxgyCQEsUmHTNwLjvMriYQmmQXP+dsMUQYVkzsUSMVqZjiJTNMISANoDeDKQLSgMD+F7wWbrJ05DDpcKdNTg73DbqZSLWgKmf5zefEGSRdMUJKujuuyZ+cglwp+bGnAtWPR8PD4eGwWRKFU0FvMFJpSwzm4vTtKbn03OEtTEWe+JO7WCyGFoahVNN9FMxQc3bf85M9BK77YPhxZsoiyZe/cnwE5JWvTuK/0o7/0AIqVQAHA43nLTM/FXKBRdPgX844G8Yt5NTf+mpnne1bUwfhzezCbXtAUDkaL4kEhyYUAZde+uoYreblUhvan8FA9yuf8AbYn9eoxAlcN8gniVz3bY/QjX/pEbv+j1E/cwK4X/AeNY0Unmq2cZV9/YO/XUSZCeEThH0cgkQbkAIo6jeaWU3SIs3K3qjhfn2aW3CFBE+4h3obKLyyBE91oOWEiaHWDl5TGms+MPIXnCc9hqGof8RwQZeWOdV5NSAmqwaEV/MXezwrqwFhJhs+/fowb7IW4rcUgnCBQufd1QVkXBcoRBdpqIAn69cWi0OLu2PEYHJLqjTLBqTiJSD060OnBToxDbiiNI1WDu/SZ+tSPUT4vFsWpGIZp4Wn4EHIg8WQt86VGutIhIK4OTMsMwM/PnyEhUTuHnGvKd+ccpUUYW0mt4ZgEEqyWhtZhgwPHBS6gINj2y21Vd5Eigmf1rFFiJFE1WJzBBAtJ8ZOl1Q4a2acTLhiC1oUemA1XFVD9A5iiEuxXylYIgzl4w+9DploiZoJLVWoW7Vg4wYUySQQ711IrUnf0BaRp5dvHDZ02unUU0NqwKFYpXmF/cYxKBwcI0bEcpDWf8N16kAK2pd1QXLQUWFeg2JfTMWN6UqqkDfOtvp7zWocmJxfv4YcJSmAavxdz5VwbrYXceTkLU2KgWkQalflDOr2O3xAU9bzs6t7GJ0e82oe82ruD9JjXs3mOHvMq3nMq/mm82raaTVB+jbtH59mlOl2Ke0f/ot1Gm0oqo8JDo8JDo8JDo8JDg+f4KCZ4rTYrsHY36/dZE7e31Uv6+GadvkeAilbDc1W1pWrZ8rlNdqLodecvCE6jrSsmB72Rd14V4FKmwn4iydE4eQa/lNp17rr4xL+IYuCQZgOXmLtv+IVtCc2wo/ZQGnD+/yQSA0rxxnS8PRhC4L1PU8fgKQSxhLDlqZU8D+isu/NPO3nd8SBpOP4+z0TimczJBy42K/qKVZWVHgpLZXTVxtE14rUSANDYs/QGSsqKLZNlaJi6tvoGFfkNunFQwUG6YDHoBmgH8CI67lPSY5/QEpKCuoXKw2T0kdQDyJXb5BSYMFXwILvIKdrsLO2mgCsIB3Z4u6bRx9+k5rhN64WfsM64TekEH7D2uBXrwomHtLQosNxucvk0cZNrlcyt9CNt1/SZVREaRfT7ZzNudmTDgIbQ3Nfnu8ntOyCShpxtcCAfWfUYQVpdxPDBNGGLrUvdey77mKXbBq6YoGCWHF01EBSYiHHtEiKzntwo0Fps1JX002SDT4tBkwpunThEoAkqqbgSEvtZG+g/6PTJ3B5lZKGZQacJ9zweSPfsaN3up97RIdszD2yV4R/1jrcKfaIb+rTjKJgH1lWQ8ODLaHidAw9XxiG67od9FiJs3dOyH6t1f6Yi32/ti9RotKdOCeFwkbZqwV0lCAZLQoG2eFTRcuQ66h5yQva06G3DXx1Z0LoqsiPy3DaWkWnO0PeK+/ED1tRqO7SHv1z+5tc+06l6a67PiZds/3RweGLvYPne0fPrg9enhw8P3l2PHz5/Nl/thpgzBSj+WaZ2quWfQ1jkItXXaF9dNwM6AJmvG2Cg0laYSgWXfB8gMkHSIHgvnThGlVKruSMCoyuHsemluYkDJkUGyCUjJVcaDAJ+JwNB4Q/ogs2JhWdsqTxqMTm783dWEh1y8X0BsOOOr2mHzTRzM1FwlzeqhAkW5uJzGTJ9mmBLSNi6lb01ztR+z55tFbUxuY2DNuG+3qhE5rxghsrMys+l9i9V8kaWs9XnGVJuyjoj+I3G+wW8IJuNzZxUeqaMehZXlKxtLpRBh57e+M8P7vyfZWuUxDc0NiZDkwreLErB3hjhYB/L6KgQ5SdwheKks5fBGJVV1JYbd2Ld8xKEWTksDgchZWcQp9cxUyww1gMRcs+04MkrWfMSA1lhqArfTBqDFwY5iASQez4j/38B8S/SkUeYpbSuFAowwHX9qqCBq5FQS4uvbQ3MkLPq9EAVR4KWohwSHO1BTAI8OKSGMXnnBbFckCEJCU1BvJOWODe3MBkVLF8QMbLEEuTTnVCh+NhNsxH97n9b9IEo9+nclqENLWLS417LEXStzm9YHfDcq42C8px7/Wk6zjicdUZQoxIJoVwAUSTYB9zUQ6KTanKMXxEa+zGHd/X2FWchxBHqwVihGkmVdIV+CepyPXZZejMA0wzgImwZYzb3w5BXHAo9XD1t7cuuvKJ9iXzvbp8dpnAMoRJsGJLiIltz+Sq0BbLDj789jVD04X2zQeBK7gYGEIzU3tfKgbYMVWSnTDeDhYsngRtL4VCtADXvsYX/Nlp/97l20108qzElWvNkLHp1hTpOhxDumpMQKGbFKzCjRgjdLDcxm+1yOL1Ak+6+7pvsIjaWIojDmlPL27jHvrRfSqpe/MMh9/3S2h2NsHbEM0tly+pMDzzMe8uWYp9xOZEjp/Fi4q9QU3qwr4253a5/A+WWB0FyZiC+1nMV/K8SoU5JrQoPK/yDfAzathUqiUyK5enpg0vCsIEtLSD11ZknFiETbhVXd2wtKqUrBSnhhXL+9yZkJNvSx1CGz42u8ONCaIDcx09gynHfFrLWhdLpGb4Jqg60KpfB6UdPAbUsvEBob4cHpaOgSJ60tLJkJC/Rcy6MopphRA8VfZOH7IDkO5HQ/fApa421ThhJUPMK8xrjBLD697Iyh8oQTNEsEYDkjMrsiCT1JeXju36QM7wdifHh07r+jPkc0Hx85gR55wtrpEznJ+uWeNlM+wbF3UHZJ9UagahwfFbjaMeI9keI9keI9keI9keI9m+6Ui2Twwk2+1Gkvk4skhZeP1suWnJxeX82D64uJy/iIpHS9Z+sQC0vui3z0seu3RZY58i2Js2sQ3ykFYCIaFwx8olPhavfCxe+Vi8kjwWr/zWile60iLwXmJB84/uCHbyhUna9hiT/k2qnn5CVhdywC2oJpksCmj4fEdA04SL3BV58tQJedlIlqESl5/bvuljBjY3F7BqxkqmaLHFchvnfo6UPUmnAHrwn/AJiHvoAa6ftmst8TxpCQGWHU1opqTWRDFwV7nqNSM3IJy+XEKDJdNV/V7S48nzg4NJU6HZxnHa7bJmX92uFgINqQhxd8nOKoEnsAgdQ5cN1Lk0/5LeMk24IZXUmo/RTxRIJwwNJJSkPiLNCtYhqL42E95mr+w+VUxxJjLwTWldM412QTuWYrldgOvnFc336EgP4/rO8DzHxP0YzABXLk/saDfjYgqdjl2PsM6O5s9+YM/ZeMIOKHuRHf/4w1E+Zj9ODg5/OKaHL579MB6/PDr+YXJXiYKHbyDhKTzG0rrz3xNOm96iwocQYOtoH6QR+DxCdYdCLjTcpxYyoCdep/xY0FDCswoVic8rBvbvoXA63vhEw0/JGxUiXEeKcNpAvKWNTwosdubAs9uYc20UH9d25b7iFO6tqsHtESTOTGqj+8kXrfTeKu0WS7Aoi1tKKzTAZXFDCrWckPOCasMz50NK0AxLcLm/Xkyjvl1rw1TjVoT+iz8zanR3CK4tdnI2oXVhoCZQFdygAV8GejQDRw5j8gkRkvgxQvePnjKE6Rr20qTTJCrAbMUY43rMwPgtOv3HhKvf63TBh9616RLLUT/ukbMNJmklOnDJRGHwK1nBKWGQmBQMp64JXZMYBy3qCIOGigOjxsb31adM/97Yju0Fmu/+uw8QbW5I8Kk0dJ7urkQeBtUO5C2h9tRg8DYz2N68pfPM45Q0kF+3tNjwaJhWNkDXS0P9i0/WaH/41t2OOO/bAajQELDfrDzaHCnxuN3ha0s9Rc7h9lV6hJxv69Ej9JV4hHA/nOEoLSTUsR59MbcQgvToFnp0Cz0MSI9uoc1x9ugWenQLfVNuIayH9625hRzUZNtuoc2l+3Z8Qz3rfPQNPfqGHn1D5NE39K35hmqFHMsZBj68fw0/V1sFPrx/7e/xrhMl0XUFJTUx4c1OZACciirYyw/vX7tqee7NEO4+Y2SsGMXUCbkQhAsjic5mzDIXvCwNID/LfS+JZ/ObWAD6bnMPd2heucu5Q7cqBqFa/85isRg6o9QwkztNsyzkzGQUDAWAz5IuMUjaBfFajQBL+wFeMai8WMY8WdpcGnF5NmDyhYYImg1cdH0sJg3a6VSGtibuFu8MAR1tsLmEBl4nik7L7XVu2rXSNrGs1aogdGJcaY7R96ME0UZWOy1j5+j7kW9O4nqxoMLtgG7xjC2mmV9MUFRa+geTEC/tfrq0HAisrjWLu7VMbC9YviGsiwtoEwgSfjQgixmD8H7TaMeiWCaFNqoGg6OlHowc98afpuEpVWN6uo01t//k+PjZPppX/+33PzXMrd8b2SxL298c6CGFFTa7gTW6/kBAIjrkI4XVdlXpt9K4iHQueoqDDtJaMHk4nVAU1W/mANNrqE63h2aQ8FbIqbvg2U+5dunEv9XaxFB+XxrWMraVzXVC/lb4LAxLwd+5oDoAOmgw3l7P7ydtrB1txZ9ber7WyU4+9J5fuuF7m2BGGMy2FKRLaOjTmDvhQQ5BO8M7bhv3S39NbhydKY+Pn3XTQ4+fNeaHNK9tnUHLZ2ECR6/BbgHw4l+wwEDvGgLJW/S16KrDzv8N2Dn7CIWAkzYO6SyQqoLCNPTUEtJ+C4cxMYxj1aYEdvjU+IpOFOYb1ya8NUgmw8ViqEYYMXRTKisT4QHQ8c2R+7rlgGt4mMmYmQVjUaJDMtVCop7QklmoIG1rb69g9NXkDoxkp8VSMQ12dNIrehHeFSypoytv+QKbRhokfCSFoKER67szDa+dut1xlfUX8oFXUQRBf2A2p0EuO+Ws6T77KSmEQedoB2JgBU7vJPYJZ9odBX+XwwY6ZkYFfMZzn77qtfeQcOuEIhwz8E06LJX3Cav6B5pAviHrxzdg+PhH2zwezR13mju+OkvHV2vk0Ezd0Km//SScncSnG/B3HMNz+RiXae/zrrqQr14RJIsD7tpe71xpoZlcuDakCzYOcSMQNpPUm8TyEVRZbaEOoHr9YnOWjP0kvtRJdrO1t4RfznxgwJfqkpRQCKKuA9QVnVDFv+Td9YNwGzpvxg5F4urx0f/Bi4LuPx8ekCeIxn8hZ5cfHErJuytyeHRziI0qfY20p+S0qgr2Kxv/hZv9FwfPh4fDw+eBnTz5yy/Xb14P8JufWXYrnxIXzbR/eDQ8IG/kmBds//D5+eHxS4en/RcH7RKxj0Wne6F+LDr9WHT68yD+H1t0erug/nuX664QDZYLfvfdnp3lhIwZ9OBxasOf8Vdj4H+F78+85SGTZSkFfBdiHv09AfTIwpX9cBWiv1sRwAigtfom9K1+bTMEt8DGyBayoeEl+yOG6+HAtODBrllRMztxV9HWyyWfKorzGVWz5ui4lsawcvwby0IHbPhxc+dK/jUIrIBZ2DLfaArQ6cJCmxBAM/sGAFFHWjnJuf2oVa0SSsrkOXclfayaDoGqLqge5gnFvdI9JP0h4at2cA1YEbQk5rqxkR3q6G6iJaL0vbX7B4P2kl134F4abY/uzlFWyDqPB+nM/vRmCAgXpy5jrAcTb9xfUTXOGp9qu0Us97kZNM9v4IUbP6SvwiZVetQaa4YPhpWSljTjzTwwBPeXvY/raSjVPN0nll5+lnJaMFyx28HvyalFJqYhFXl6aELkDjN0GACDpd6xG70vr93rZA6fVhIz4tZPE1KSwvv3nmkDAmvNtSkNJ7O57J6b5Biun8x9MEw+2HQux+Z5wc3yZgPmuv6rTWd1lLbpxnWofNN5MNxuozkar67gB7nMboFKHUN45X/3HC78G+TftLMq3N/s0dYzqcwNyocTMqGFtqikIptJ5efbC8xghdgNYJFe6bGKyzuJkUag9KMpQVX/J73bsWKqkk67suXO2exX6VG656ytLzeb9NOnK+iYFdqyzOt3r95ZDWdBjCQlrSyf1ezfOrA01A2yXuUg60XvhcUVQRCGnnKtvIt0+wv+6hnkwuoLCbU6K6z93CcdDhMChUbrfeTpJMb52VWaQ8NDUgzL9HBZFkP3HuZVU+UikaXYi1+2rKwI+npKX701DVOoH2IsZcGo2BC9k4gRcL/Fbe/OK/VwXPOiO2V3R4Pg3jl8+erw4MedzcB5d0VghmbnErfrt/XY3oIxEcXt/V/SZz0Dx78HBaeprcRBSbrz6zlZ/OhObtYAev0+t9Fdybz/qN/rACUYqKTrytw7Vd3DNz91pkuZkw8Xr7oTQcB8RbOHW1QcsTuZzDts9jMn87ai7mTIou5mhZtN5HhuSavuTOCbwBKRDzVdMmT/nIpBLppm5mERGsddgdacVYVcQuDYg04cx10xMaQaT+riwZecDLxi6jsk/adOHIa9c9p+tebz58VxHTuPfS06XS16xvX10AMXDxe2Pq6b9sy4D8tlHzdVrHxh8U6bBLJa4f5NFvKW0z1aG5lzncl5qn7/b/wreeX+siTpeyS5Vd55P+8ZKpV5Do4w5CoDmHtviEaGpm3wHtYjb/bDZCt7PfcAJMa//jn5OqPjKjsSzWbOWTcDG2hwoTZrjDPuSzRbJOQkr7E7uaHK1FXDfAeqnlQl5qsF+xe4iyuqaMkMgwo8YwYWK7tv0C2cYXgTPrA/MZqJ5wCaZnMoT1NRZTRG8FxcDkjaEYHnA3CRg5OiARIVOdbmB6tUHwpdEbVKybzOzP0Ree2SQ/HsumEIn5CwtnXTfjK5NKbd1cGe/SSZ+ekdUyf99e45s+ucl+TG4vITWtChiEk7ldjD4aP67z37h/evycxer6A8AUznqBUgWYf0LO3833MRWDHrryGU2a8P6yYgibtLE63NjAnjm9i7ENdgVwRze2JY9L97p+xtSoR6eYjQYmLOlRSlO3qhpJVfXqyHDmWvCrlAqGllLMyr+FliUFqzB2mVj3SmJ0mfjAH55fr6ckDeLK/++npA3rOcYwn69x/ePI3t/QnZscDtpDZr+yCYrBX7veaK5X2Gn3h8QdAkqsAa4EXTAIotRKCOEQZUtxY1XDtl0gdp7VktSyryvYKLh5u6I1ZXANDbRMgVruzrJbRuzlUNS9asfWXfkSYI6+dNW+mso0vfLae1vNA0pzGHK9f5QNSDTRDMnbvYmvWBCOgTZ/8sGnJtBu6kodacD0lDTRDWz3tfGmotr0lDzjfCmu4QxWhxE3KoV5mf+5quuBfaWvFaaC8a58hRgI/eSNkyWK2gQe8gyccJ44RwdMgr8fkqbvkxPatZYQuZe4Pft7K52EejaDSB04ZTNIxlxyEzRnOmBmlxrtF/7P3k8WP/lVYw+yAKJPw0GSXn2g6cD7C2GRScQeUWWvMMnDZISmqyWVK9ABK2cLE3vBrBkoRVWi2+HBbalAXITbIn7trp9vv32uZrv5uQaefbpWCMvjfXNtqfXEwgvD1UKYOdScL2s8q18K1LoGeno4DUvfEZWE5R2fnJag7n9uFOv7qyibIC6gf2JlyleNhXhpMksO0eCtqFyKEIENTaw6gFrklBtfG/BI4P+W5A3ZZyaOFzEJtpZ4pBBih2JTZMlSyH/AdYhSuvJopliyZgAn6HAnthxwuddy5exfJ4SWMfe393GBR5PH3d2eYFbV4eVmXqJBfN16dvG1HXPozz5cHR8PB3MlE+TdMrYxQDbfcMnU7hLKf2luQIQpWocRKsD0knwFJqSIyk013dmb/gOq1dOOEqRKT2s1i78Lu9iM3NuCMUpE1zK4ZLX1w7YmdbVgyYvLd2PJcgCI7FoWDmBipN3Rhp7gTcfZqWprrfVK46xn0maxbUWDtdzrT5pHWlJTU2XlxrtvssLZ3vjvU5bgocucNNrxOp/LlMtSHh1/JWu+Z6Ay1zxqczV1kIP+m542Ha2IIuMSOhrGpIVuVRoIK4dXXXtE/k8GILKwFjYpO2ch5FdMmoiH3yCHSDt99b5h3VXRhhxb3Q7ZYrsHuD7fhS6+W7vyQ/zpPoK/vbtcRpP3adrvBxA6UlMzO5kZUGFPf9OVPjffyoF6lRpQKWio3WwkjuQ7h7PPn5/HpALt9d2f//cJ1UHXiK+tjVX1+ngxA7dRjpydX56/Oz6wH5cPnq9Pp8QF6dvz63/42jtCSNYklxxrVrLeQUyj/5L/BmAqCktAplBDQxsmfVDa3sw/vXeN+oK3/lAJmuC6pn5Mn+Uxwg6J98kmQ1h5FG+7VmSu8fYp5lhI5r/7cRDmTPl5XHuvNiBCsUroIdhPA+iIsGBARd1Kpf2DIMbUNFkWIgHY21BXuSItxL4Wvwj3ezFmdYh22PrqZmb+mngYr4brpg++otW+7hcYdiAO7teIrxq1vW1pXSxN97mv8wTxV6Is7qktoF0hzDLMEbni6TG9RK4q6N45mCgpbQ3xNyDEY/n18TRyo3Lp3cAvsnw7RxBOJMWVAzcuU4eMAId9ceGBGz8UkyXnvTFS2brhjDPm5wWXU5PNHCrpvbnAZZWJZBpCJ2ocn7jb2/nik+MXvvL8/aX8cvos7YzCCKLuW2J78nYtdy1KHrcb5+mW/wJTct1tuCsGUn89KaBL5ka7jRsgZDL8NQUqFqXykWbsyKLrC5rKvx3u0l6xoURm3V3r6UrMcF0zMJbWvjdUrRRRT87+FHY4W9It7DkZ5gbHjbL9ndDtyTcuxOQ7PERu/NeMw9VdHY99Q+XvAkSf0JrbD0qgWxoEum4FLkePKYC6qWcfwwvKxVes9K+kZ2Ep7bUqiSQrMHXykO+49eakNpLBnVtWLQ8T7RHd8kj8mTRJPUT++jRaajh3rtTrw27IZNiuu/jaHGzu+67vRcQ9aZWIMTFD5oYyupj4K9FvgfrK06dHfMnX1SMDE1s2auDT6L7X5T78T1mTdPtSU1rl3WdxmBVt1VPgUDSK3/SBT8vwAAAP//wR+2mg==" } diff --git a/winlogbeat/docs/fields.asciidoc b/winlogbeat/docs/fields.asciidoc index e770be92bb3..d1c9a1ff132 100644 --- a/winlogbeat/docs/fields.asciidoc +++ b/winlogbeat/docs/fields.asciidoc @@ -18,6 +18,7 @@ grouped in the following categories: * <> * <> * <> +* <> * <> * <> * <> @@ -3601,6 +3602,83 @@ example: 18D109 OS build information. +-- + +[[exported-fields-jolokia-autodiscover]] +== Jolokia Discovery autodiscover provider fields + +Metadata from Jolokia Discovery added by the jolokia provider. + + + +*`jolokia.agent.version`*:: ++ +-- +type: keyword + +Version number of jolokia agent. + + +-- + +*`jolokia.agent.id`*:: ++ +-- +type: keyword + +Each agent has a unique id which can be either provided during startup of the agent in form of a configuration parameter or being autodetected. If autodected, the id has several parts: The IP, the process id, hashcode of the agent and its type. + + +-- + +*`jolokia.server.product`*:: ++ +-- +type: keyword + +The container product if detected. + + +-- + +*`jolokia.server.version`*:: ++ +-- +type: keyword + +The container's version (if detected). + + +-- + +*`jolokia.server.vendor`*:: ++ +-- +type: keyword + +The vendor of the container the agent is running in. + + +-- + +*`jolokia.url`*:: ++ +-- +type: keyword + +The URL how this agent can be contacted. + + +-- + +*`jolokia.secured`*:: ++ +-- +type: boolean + +Whether the agent was configured for authentication or not. + + -- [[exported-fields-kubernetes-processor]] diff --git a/winlogbeat/include/fields.go b/winlogbeat/include/fields.go index 77524516f19..c00bf54181a 100644 --- a/winlogbeat/include/fields.go +++ b/winlogbeat/include/fields.go @@ -32,5 +32,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "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" + return "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" } diff --git a/x-pack/functionbeat/docs/fields.asciidoc b/x-pack/functionbeat/docs/fields.asciidoc index aaf48d378a4..ec601ba76da 100644 --- a/x-pack/functionbeat/docs/fields.asciidoc +++ b/x-pack/functionbeat/docs/fields.asciidoc @@ -18,6 +18,7 @@ grouped in the following categories: * <> * <> * <> +* <> * <> * <> @@ -3418,6 +3419,83 @@ example: 18D109 OS build information. +-- + +[[exported-fields-jolokia-autodiscover]] +== Jolokia Discovery autodiscover provider fields + +Metadata from Jolokia Discovery added by the jolokia provider. + + + +*`jolokia.agent.version`*:: ++ +-- +type: keyword + +Version number of jolokia agent. + + +-- + +*`jolokia.agent.id`*:: ++ +-- +type: keyword + +Each agent has a unique id which can be either provided during startup of the agent in form of a configuration parameter or being autodetected. If autodected, the id has several parts: The IP, the process id, hashcode of the agent and its type. + + +-- + +*`jolokia.server.product`*:: ++ +-- +type: keyword + +The container product if detected. + + +-- + +*`jolokia.server.version`*:: ++ +-- +type: keyword + +The container's version (if detected). + + +-- + +*`jolokia.server.vendor`*:: ++ +-- +type: keyword + +The vendor of the container the agent is running in. + + +-- + +*`jolokia.url`*:: ++ +-- +type: keyword + +The URL how this agent can be contacted. + + +-- + +*`jolokia.secured`*:: ++ +-- +type: boolean + +Whether the agent was configured for authentication or not. + + -- [[exported-fields-kubernetes-processor]] diff --git a/x-pack/functionbeat/include/fields.go b/x-pack/functionbeat/include/fields.go index 9f2abff649c..64da533cbc5 100644 --- a/x-pack/functionbeat/include/fields.go +++ b/x-pack/functionbeat/include/fields.go @@ -19,5 +19,5 @@ func init() { // AssetFieldsYml returns asset data. // This is the base64 encoded gzipped contents of fields.yml. func AssetFieldsYml() string { - return "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NcqHEzKhhbaopCKbSeXn2wvMYIXYDWCRXumxiss7iZFGoPSjKUFV/ye927FiqpJOu7LlztnsV+lRuuesrS/Xm/TTpyvomBXassyrX179YjWcBTGSlLSyfFazf+vA0lA3yO0qB7ld9J5bXBEEYegp18q7SLc/4V89g5xbfSGhVmeFtZ/7pMNhQqDQaL2PPJ3EeH12mebQ8JAUwzI9XJbF0L2HedVUuUhkKfbily0rK4J+O6Wv3pqGKdQPMZayYFSsid5JxAi43+K2d+eVejiuedGdsrujQXDvHL58dXjw/c564PxySWCGZucSt+s39djegjERxe39z+mznoHj70HBaWorcVCS7vztnCx+dCc3awB9+z630V3JvP+o3+sAJRiopOvK3DtV3cM3P3WmC5mTD+evuhNBwHxFs4dbVByxO5nMO2z2MyfztqLuZMii7maF603keG5Jq+5M4JvAEpEPNV0yZP+cikEummbmYREax12B1pxVhVxC4NiDThzHXTExpBpP6uLBl5wMvGLqOyT9p04chr1z2n615vPnxXEdO499LTpdLXrG9fXQAxcPF7Y+rpv2zLgPy2Uf11WsfGHxTpsEslrhnrjk2qZB64fm03Ttyer+fwAAAP//AGjLKQ==" + return "eJzsvXtzHDeSOPi/PwWOjjhKu83mQ5Qsc2N2j0PJNm8kmStS651db7DRVehumFVAGUCx1b647/4LZCZQqEfzIbM1Uiznj7FYXQUkEonMRD6/Zb8cv393+u7H/4u90kxpx0QuHXMLadlMFoLl0ojMFasRk44tuWVzoYThTuRsumJuIdjrk3NWGf2byNzom2/ZlFuRM63g+bUwVmrF9sd7473xN9+ys0JwK9i1tNKxhXOVPdrdnUu3qKfjTJe7ouDWyWxXZJY5zWw9nwvrWLbgai7gkR92JkWR2/E33+ywK7E6YiKz3zDmpCvEkX/hG8ZyYTMjKye1gkfsB/qG0ddH3zC2wxQvxRHb/n+cLIV1vKy2v2GMsUJci+KIZdoI+NuI32tpRH7EnKnxkVtV4ojl3OGfrfm2X3Endv2YbLkQCtAkroVyTBs5l8qjb/wNfMfYhce1tPBSHr8TH53hmUfzzOiyGWHkJ5YZL4oVM6IywgrlpJrDRDRiM93ghlldm0zE+U9nyQf4G1twy5QO0BYsomeEpHHNi1oA0BGYSld14aehYWmymTTWwfcdsIzIhLxuoKpkJQqpGrjeE85xv9hMG8aLAkewY9wn8ZGXld/07YO9/Rc7e893Dp5d7L082nt+9Oxw/PL5s//aTra54FNR2MENxt3UU0/F8AD/eYnPr8RqqU0+sNEntXW69C/sIk4qLo2Nazjhik0Fq/2RcJrxPGelcJxJNdOm5H4Q/5zWxM4Xui5yOIaZVo5LxZSwfusQHCBf/7/josA9sIwbwazTHlHcBkgjAK8Dgia5zq6EmTCucja5emknhI4OJuk7XlWFzDiucqb1zpQb+kmo6yN/4PM68z8n+C2FtXwubkCwEx/dABZ/0IYVek54AHKgsWjzCRv4k3+Tfh4xXTlZyj8i2XkyuZZi6Y+EVIzD2/6BMBEpfjrrTJ252qOt0HPLltItdO0YVw3Vt2AYMe0WwhD3YBnubKZVxp1QCeE77YEoGWeLuuRqxwie82khmK3LkpsV08mBS09hWRdOVkVcu2Xio7T+xC/EqpmwnEolciaV00yr+Hb3RPwkikKzX7Qp8mSLHJ/fdABSQpdzpY245FN9LY7Y/t7BYX/n3kjr/HroOxsp3fE5EzxbhFW2D+t/bzX0szViW0JdH2z9T3pU+VwopBTi6sfxwdzoujpiBwN0dLEQ+GXcJTpFxFs541O/ycgFZ27pD4/nn87Lt1mgfbXyOOf+EBaFP3YjlguH/9CG6akV5tpvD5Kr9mS20H6ntGGOXwnLSsFtbUTpX6Bh42vdw2mZVFlR54L9VXDPBmCtlpV8xXhhNTO18l/TvMaOQaDBQsf/REulIe3C88ipaNgxULaHn8vCBtpDJJlaKX9ONCLIw5asL5z35UKYlHkveFUJT4F+sXBS41KBsXsEKKLGmdZOaef3PCz2iJ3idJlXBPQMFw3n1h/EUQPf2JMCI0VkKrgbJ+f3+OwtqCQkONsLoh3nVbXrlyIzMWYNbaTMN9cioA64LugZTM6QWqRlXrwytzC6ni/Y77Wo/fh2ZZ0oLSvklWB/47MrPmLvRS6RPiqjM2GtVPOwKfS6rbOFZ9Jv9Nw6bhcM18HOAd2EMjyIQOSIwqitNKdDVAtRCsOLSxm4Dp1n8dEJlTe8qHeq157r7ll6HeZgMvdHZCaFQfKRlhD5RM6AAwGbsk8jXQedxksyU4J2EBQ4nhltvfC3jht/nqa1YxPcbplPYD/8ThAyEqbxkh/Onu/tzVqI6C4/srM/tfQPSv7u1Zv7rzuKW0+iSNjw3RLk+lQwIGOZr11e3lqe//9NLJC0FjhfKUfo7aBlHN9CdogiaC6vBagtXNFn+Db9vBBFNasLf4j8oaYVxoHdUrMf6EAzqazjKiM1psOPrJ8YmJInEhKnrBGnouKGkwpCy7dMCZHj/WO5kNmiP1U82Zku/WRevU7WfTrzim/gPLBUZEnhkZ45oVghZo6JsnKr/lbOtG7tot+oTezixaq6YfsCt/MTMOv4yjJeLP1/Im69KmgXgTRxW0kbx2+9NB83qFGRZ0esNu8iidMUU9G8AiJMzlob3+xYlwBam1/ybOGvBH0Up+MEPNNlcwOo/g+6xraR3YHphb/j7pjsIFFjskJ29JiT5skNiswxfekJLhczUPg47pxU0knuNDAlzpRwS22uvKajBChU/tQF2FBBMWLOTQ6Cy8slrewoeR+F1lTiTV9qr/nOCr30NzSv07XU5ouTMxoVT0UDZg82/8C/nkAGXMQKFdUV/87539+ximdXwj2xT8cwC2raldFOZ7roTYU3Wi9WWpMGPcvAdV34S1HQBAKWnOHKcgBmzM51KaJsri3qOE6Ykm2Fa7o2W41Wb8RMmBYoqrNAi2oG/Uw6KO7sVEQdDHTQBAEIAvNgqXnY5maKFH7UpomIwgT+5NS29gihURvlTyoP3m+1wg0AXRC1u2BEYQOjNQhW2vXG9FwdN2wHDlm4vsZLL463GyaKZgpg1ign/E3YipIrJzPQ0sVHRyJFfERlYYQc/JvI2oNgcZpdS79e+YdoNHu/UmFA27fS1Zz243TGVro2cY4ZL4pAfVIFuebEXJvVyL8aOKJ1siiYUF63JcJF24jnmrmwztOHx6lH2EwWRVS6eFUZXRnJnShW99DqeJ4bYe2mFDogd1ThibhoQmK+kc+UUzmvdW2LFZIzfBM59tKjxepSgE2IFf4GyBU7PRsxznJd+g3QhnFWK/mRWe3pZMzY3xvMkowAo0WjFiwEM3wZYAqEPxnTgwmirC3ilL8BNBIsr9FogVfQyVhWEw/KZIxgTfw1rhIqJx0DFQStGiDgPkE7FnZlunLC3iJTCh11fbxatD9r7cNf/Q94rYiWPdoPf2/2/ACvA135sv/ysAUYLmoD0o7OL44/bs05F3qcSbe63JBmeiLdCqbqrf6tVs4IXvTB0cpJJZTbFEzvEi05TtaD7502bsGOS2FkxgeArJUzq0tp9WWm842gDqdgp+c/Mz9FD8KT47VgbWo3CaTBDT3hiud9TBU6S3X6deDMhb6stIx8qW2V0mouXZ0jry64gz96EGz/f2yr0GrriO1892z8Yv/w5bO9EdsquNs6YofPx8/3nn+//5L9/9s9IPv4ejg2/cEKsxN4cfITqnsBPSNGyjdKYD1jc8NVXXAj3SplqiuWeeYOOkfCPE8Cz4xXG6RwaVCaZkI5YUjzmhVaG6bqcirMCFT5hWz0GhsHRfAKVi1WVvp/BNNaFo61TUB4p13iPgDDoVSM106XwMLnQofV9i8AU22dVjt51tsbI+ZSq02etPcww00HbeffT9bBtaGjRjANnrR/r8VUtBElq1tgiC+0ifP0LArowBFBWKSUhVYArYSXvdGmfXp2fegfnJ5dv2gUj46sLXm2Ady8PT5ZB3U6Oaq09xD1rUnO8OtPEuwHbTi0cZ8KhDbupiXWVpixKLksNsS9PPNiMEHA+AAAs7ooBs7BgwKxbZmfBqYFlsWvuSz4tOgfj+NiKoxjr6WyTpBC1YIXtPbxxiytfWvjjCzrMHE0iMAtcbcquPM65gBeEc4NIjbVhHCyPhALbhcbE42IKT8P8/P4c5VpY4S/l7bM+jO8gfgXvUxRWq1SJyGq6QnT+mAFmSwnsAqZ480B/vCrm0RXUqbVDPeKF605va6RcdXcmFlw/Xa4HM2wAU73c4fp1l3SigwQYOhDtSHpdL7wjAnVDHDzSNUHJDmSHI5ky46ma5wymtHCg/VWNIz4YEgeeWDCMBQD09DM8OgGbhxceBtG63C41IGNmK11aM3YW+GMzNDQbFNDNlfs9ckBmrE9hcyEyxbCgpaVjM6ks+RDbID01NV2fbd8mNJGA2kbBBrX1Iqck0aU2kVzKtO1szIXyUxdyBAmzsh7FhYUNl01n5KG2PbS46DNQOAmpMmDIPTDStuASgi7j70kg/vL5jjz9kWDIJwL3KNmzpX8Aw+9zKPLm07ZiuVyNhMmtZmAHizB0cs4Hs8dJxRXjgl1LY1WZVuJamjr+JfzOLnMR+xHreeFQPpnP7//kZ3m6JQGk2nvwPc15xcvXnz33XcvX778/vvv2+hECSkLf7//ozGLPDRWj5N5mJ/HYwVtMUDTcFSaQ9RjDrXdEdy6nf2OSkuehM2Rw2nwIJ2+CtwLYA2HsAuo3Nk/eHb4/MV3L7/f49MsF7O9YYg3KLIjzKmvrw91ooDDw77L6sEgehv4QOK9uhGN7mBcilzWZVtLNvpa5jFIYZOqDnKAMOE4HM40AIsv7YjxP2ojRmyeVaN4kLVhuZxLxwudCa76km5pW8vCW+KGFkWXxE88bqk4RkZP2A8iufXwBudWfLHtwCDPQi8+LgnZqUQmZzLcESMUaJ4nHxRZ6fUsHSQJthRWhHkXoqgSBRLkFYavxqEtSUK18ghyshT3EFAb0fFICW4WL/P2GZYln2+Up6RnAyaLplEEaMktm9aycF6cD4Dm+HxDkDWURXDxeRuAJAL05tmTSNAbYkG7zBYmpbDK1rwb3I1mzY3xJ3ITJNlNsRMcnZVc8bnX3oCfRDrocRKMQE3YSOJFSxnJq87jG1hJ8urN7lbUnpO3wZqKJp/ddiTmwJiJh/U23ypyH/Ktfom+v5br8k4OwEaNxeDtB3IAxmHBEfi/2wGYbkowFlKUfucQfTYvYHoMHl2Bj67AhwHp0RV4d5w9ugIfXYFfkyswEWJfmz+wBTrbsFPwHsJ+I57BtYt9dA8+ugcf3YPs0T34tbkHMf+7kwF+k+HgrXB8J92dYFqkDHOc8i4X99uSDgYyx/9cWlaSVQ+6F0X0aliMZU6P2URkdkwvTTCJJ4DRUDh47DxRlrV1mMoEh6HoxXMz9ou/af9eC7OCCHXM4YpkJFUuM2HZzg7dqEu+CgBBEn8h5wtXDDnGktXA91R3wINWeMEplRNzQ3HjPP/NgxpEZrYQJe/gn7WSa21fWYRCBCnlGKNbVuzX8cHNeaaNFTmDpCQKcccB4RxxtWJXUjUWiw+YYlBiWhS+B5ZrzKj0yCsEumE9mkN2KfCojFthm1TMsCzYe+msKGaN95UrHP0e5qcNqceATBg8XBHQTCgIwLYiukFr+YD0HIAgzV9fD0bMYR9cbMjGTmnsupMD9Pr6jrnMuL9DXpKQzjDsKCl0UALRoWJk1qKVSJLHkB7fTjLy5BN4iicov2VJ+jBY/ha4j7zJBg5M+k2Txg+MJaQ2Q26NLIW/rAbvk3/qB4pjNBnRepYsgsYLQ/GQYcsgiTQEWlD4RJMShbo7mwrMfCIVnMbkwVTrNOOpSjxC4+VAXtVUuKUQfqaQP6FyipGIfkicjFKSMEc6K7QX8uw47MTt6MbLEg1ZaiP8jRvMSQWMiPkq8GeaaA4ADSM6eY2GbVK1W1hPqaVBeSlKbVbMMznIh6Hh8gTxDcFd14USBj38ssmFp5etV4JEjpnw9wn2uIMp6JODPHB0lvEKS0JQFmTbMUBJsdHYQdlnzQGUSaWXMTsFlyTsXqNdLLhiE3whZB1NmgzLuBH+rE8AITs8zycjNiGS3wGSF/BoJguxkxnhCW2CqTqhLkscMSZgB4qjlUk/TwmWnb6Q9ErXTsWt9cjcwWystrgg0DexHa/xMNAMXeRHIbeQ8wWlnw3zQOCQIEBnvV2JY8LuQLZbZ3OQICajsKdWKEtpYI2hikcwI1zNyEE74iEz8Bdu/OGG+gezGmLOouqjZ14VGrGlYFXBwSxA8QaMxyELKrbBs0xUDnKgKQQBZVpQnUaswipLtRXolcp4PWw7g50G/13DGuImI2XdssexAFJ3H4nIcZBeFNtwdSTPk6BgUFyzERxoNqSaY67qCnP6eiWDiEhQgfRHVXq2npHtpSnyFDP/kkfNthKscczIUQdqMsVaMV1WcapYqa1LchHBgOqJaKmbekoW3WlTMaAl45EOf2aNlyprVxXKeJGBS5KsOwVfRVkFeCJJR4WgQIUnodMEqrREB2wLfBqqqRjrgtQVOZOdlP8ASamVbBJxWTLE9jZosmHH/J8hBMxpdiVExeoKiRU+SqtRtbEKKegAaRuPnmWimpfxYpTubOMfHLht59xxK24zq30SJ0vtITRNJ0M/08ofZbTnT+idCXviObsVju2SOLbCPfX0HCzjWFnCKw/M1tMGfLj+lDqvC2GB1bWOXconUTPwO1gbT2vFKhSRkqqZNL3wI4k0P+E0flMJWni5z2Ks464d45TX5i5+nQGfaudLqaraXYYfFVfaikw32eWdWAH6uCUQ/HKTD9uFIPBMg8SFxePfwmt9RrArpZcqLYfW0JkbPrfhUMLsCm/fOHoSWBRvDeouFsV17LcBtcd5u0wXBvX7GJ97kXWdOo88Xy64lz5YGqgTcbRBo95P3C7Yk0qYBa8sFAiCwjkzqebCVEYq99Tvp+FL4vpO+w0A4eh0XEAuSq2sM375cOMBu4J0qwGTewjZHPrX8V9PXn22S+vpK7+aGM+SKKQdmAdrx1zJOxHQJ6vMfvzhUmYkhefyGiKeu8rZkpSoboxeQpKBZhvxFMqz0WUusdbdoOt19Gl4OmnGnHjWJLwmzQtuysmXqaIBkG0zBXDeTUss4u/o372xZA6WCkrvQa03k9G6EkybWAurv/ByZX9vx3gEZWsTS3/Pl2DZiUX/9Ax81iZS0wdScm7gJWvUUKW9nMnFR4E8P9fZZRI8nEvrKSVHiQ0uAlAIBTfZQuQNwU5rx2Qsw2S8KBbXQRudXKK2NOlj8lxUbP97tvfy6ODF0f4ehvyevP7haO///nb/4PBfzkVW+wXgX8wtvNKOtwKDz/bH9Or+Hv2jOZnalMzWmVcNZ3WBikRViTx8gP+1JvvL/h6Ugd1nuXV/ORjvjw/GB7Zyf9k/eNZ2dOraZXpzcRWefdEU6zhYqyhqc+P315AMrUTNYbZtGdsaOSl1FMrONNYWfJG4E6GQCnTOuCxqIwZ5UhzxTrzp7jwpjnt33oQwt/bOSHt1aZNDue6YzgrNBw2p76W9YjACVtOT2hNnW217IsbzMbNEuMzqAkC0Txtjygcr6PoDrlG4gNBlDfW1hTDdeNkI+6XSprwD/a1dxPY7sLzIP0QOw96yoFE0jnmdehYXsef3cn9vb6AyW8mlwmgZ8k2udA17VmI4JVdgR6TqQnDd5dbKubIJQLZ9A/RDLDlmLFvhqUc1y0CskfeHF0WondRRXK24Fkno0X0jFc7p846dLe5dGL4j639ZYBRUo/KFa3TzBZF9KbgCJnotTHLdjuq5xyH4WzxD3m5MOnUV9I3EegbXXn4lGNhFaSopQhKhstI6sBUj2oJrrXOQtr/r4NDfCv60+o93i1svAGRSTK8ALablrwKNaWbNHcDfYDaYNLadSNTmnpUUOW0taXvbNqaBtMYnI1lMPgmCua2kFkbwfEUcJhczXheOna+sl/WNvSFhNKdo3QBIeYGZeEtpU7vFccN746Q4JRDKEZgSlVZg0j99RZNvva6NrsTucWmdMDkvt54mx3U6NeIavQzh9fOLrafgvlDsp5+OyrIhbsmL8NbO3vOjvb2tp51ju6kqhe8FkgtIG1Kqa3SRxbVQVXh+rSGfMuYSNJW/IVbDq6HjtErwTJIeTI61H8LfN5bWg7r2HScMs8L17yPg37Js6rlC2xxKfiL/K7jOg3cDbCHAFpuyeX46qt8ddDdurc5kU54XNLJQV69V7M2OPGPeJTNL4BvonYEN9ZqItoIqcqOFH6Y8DXope4tmOY/W//7h9O3/hOrdtnEyUUYuFOADLzQqNkGL6OdS8NlMoCnUv95ZT6CapOw9WY7u45O+Y+rKOh74hofC8wBiKRzHeFbwZ3TYVy788jfEvF7B4Guy1DB9uuhoIjB3P7Dk4fgp7HKcpatexESNQi+Z4HblQXQCSGi6QoTGjwfCLCqS7THqdWPhcWdGQlF1DIbzrPPH01dP1yO2oblNw5Jm3PbhkKoXcvGASb86F+3uEAGI4M9K+RRr2xY2lvjrgUrw4UHRmeNFp0BkTzk63H/RhvFhGQMZj0DDKXUuZ7LLHPRSbSzRGKWDn2AbrCOmn8VXcbcp8+oZd4ug1PZp1Mo/7oLndZo8LM2P4Xca0qHYk2gT0f7uwvM86G4TPxYEq4Ffe/K0o15yMxfucoOouIAZANmgcdhVWUh11YlQ3mBiPKAL7KLg/xmxXBpQMgiSDkbqjbHUC4q7BG76Abipaa7aSSjVk/MOq0VCTmOf5kKnCtqP9OcN+tmPQqeRdRk3/pLW1D3hjfU35ISkJV64SnWkdpOdJI2kpeiRUpYLI6M5zYlsAWb4pmy/h+z0LAl0QY+i2bF1VRUyuhbvpNx8OZlzX3zW3BeYMfeFZct98Zlyj1lyX2aW3JeYIfcFZMf1LwtBfsUH6yXYRUzNSQJ3S0FW1SZSHN6hCHBofiAKcc3j4SStLPH4fkrJkS8qDelz5x7F+ARtW/HXP4W/bzQThcI4LTMRVcZnmS6r2mGsL1Vxil2dTs4xuDW0Zho2WKZdmRqzCvZgagr0tCP9Q6A0qIWgpgxG+KaxvX6tgNcYzEsjLrjJl9yIEbuWxtW8CAWY7Ii9gkodSRUcMEKxv9VTYZRw0KInF/eqb2GyhXQiS/xXD5rZVIXIttBMIZmvd84/vnxx+aJdRuGxmsFjNYP7g/RYzeDuOHvU0x6rGWy+moGXnxuCZPsnGjutWpiGjLik3V3wuS7JLc0mAbKJ1x1Kf36NcLXBEq29IojbN2p1D9rmDvWctLDSsY14DOFL1LMFM4ZH4CInb3rUX72KK9UcghEoevzG4qaoKVP8MboEPWYn0CIPMNXFwqdVqgANSFbDFQc2U2HiJ9rK4Tk3RZ/vbqRNMKZRkjpQZUKRCSV+gKJdGNhBTBKCun6veQGm8TgmlfrCEgqYM+cBIOtck2oEKdyw19ZLEsNykckcslm97gpk1DB27d/vbLy24xkvZbHakGj6+Zzh+OxJsPUZkS+4G7FcTCVXIzYzQkxtPmJLqXK9bNz/TXU7eLMHd11sqphGT+elYhag5QefT0gVD2m4wyoozzwO3urf+LXoruDKq/yfbQ04WwQb7lyGL5l1Zqg46eH4cLy3s79/sENJXF3oN6jQrMF/iFROsL8O4f/ZhTZcmz8XxGE+onuvG2k7YvW0Vq6+ida5WcoerQ+WQtgc8Helkf298f7heL8F7aaCXUJLzg77/UEbqtgdqghTX1jyPLTqo/shoLHwJFY+nkCB9+tylCjAEGSd6Lrxsj5K264mtcFTj0cjq+OIQzJ7oDDJY3mgNnU9lgd6LA/0WB7oyy4PtHCuZcX/6eLiDP6+T+8Q/1EMhx2HYi5sUptiEgJTBQZOJ40tAUhTBHipMe3d7fnhg6nOV+OBSrS3BWTcWo32vBWf0QaTwaxd9L58+d16ECmYZkNn+IKuI7gZN0L5kygKzZbaFPkwtBvA5YV2vOhEvHQw+sQDC4d9IbjXA/rK1f7hs2EEl8It9MZy+looxak62cpI5JgFALVdpiJND3CaFXopDCRoexYaCkaN2bmgnFid1WWI84pjW6qvsnUawuq9lvf65Hyrbx6bCzdiFRR6qWo3iCZo02w2FrD1noZvsmdSzPV20/Mee7S7Oy30fExPx5kudzuw20orKz77Ocdp73rQUyA/70m/Cc71Rz3A+7nPOkH7aYedgLaOu9oOmHrvFYPXRh+OOWzcPdxre8Q2e5sDuNZdj/fHabORUAeKhPcb+vNW2Y3mJd4qv6MhYzNNwrmLEIbFb+K6+HNIavJQRYcHVfDq5SRiEf9WSvOSGzUZsQkUM/P/kAPpn8KY1nI2mUYbktNaKVt+MSGtlndLEsApT95I1N8Z1k4qpENPu2M1lG6JGmrFTatO4SmaOA1vygROaNigoyFVpMZQaDkfCrv4EdP8u7AXNEqa9tnJ+qTFjnoLCmm9ccwFvxYxzcj6TcWw4yzUOcRoQjQCCJVp7FdgmBJLVkglLDR0u04uJP4qUwiuIEetDfKfzUpmVlPS8fY2iHwv1lM78DQYu0Ax+NPJyeBpA5/E2xWd/Wg4x8SYlBu8Sx7dUkwvpNW0QzrQdFKWtSL8YwSwvhYmcJAmfoThLiTpORSSYdMGQ+GNTwoACaN3anB0E4ZCAZ/7hGBU2Bxjg0klx3hLm8troTAYN52VOFxltNOZLtolhLiZSme4aaz8jNJVKXUMSgVaPBSlzIwOKUsjoEBeWA2TrfDkNy/bq1UlGsuZzH4fsRnPxFTrqxFzS+kcOiikZcu0UpBnNU35pqb4JrsWKk+qHEF0NDY0jJHEXsTmMXI4lkHAU7Cbex379AzDpe0ICnvbEUvGXEoTMgS/QC2cy3YztodukbKN2hVqVc5wZUHnhh2Zan9upBFUV62Vsz+hilHwJaXSp+XOw/NQvmfEJuGw0k8ou2SzE7Yu+wh49uJlCwHEQdzqcnPNKI/RagUlOCF5DJh2Ukv+9AwrQBI1ccuWoiiIycX1hOPXBCa0+d84Jphz5rQudvhcaetk5rVHlXPTanYZh50VepluxhvBjcJUdO7iLWgu3aKewv3HEwiUPNuNyNuR+Y7X1QbK9h4tfv5n++7wp39+++Pzt3/ffbk4Nf959nt2+F///sfeX1pbEUljA+rN1qsweNDTArt2hs9mMhv/qt4Lvx4sqtSI06NfFfs1IudX9k9MqqmuVf6rYuyfmK5d8pdUThjFC/zLU1DzV62AcH9Vv6pfFkKlY5a8qpLCwdTC1QuvHexqVzZ5oFQ/dhQFUqLYpGNGzuWH2bYMQpP84q+lWI4RhjUTB9RowyphZCmcMAhIC+i7wdQA0oLA/xe8FjRZOnKcdLzVJSfCfYtuZtosuclFfvln4gySrhgxJZ2Oa/ITKciV0R8HKlB9fzDeH++P2yVRJFf8EiOVNsRgTo/fHbOzwB3ewVTsSTi5y+Vy7GEYazPfRcEMNWd3Az/ZQeD6D8YfF64sknz5c+IjIK9CdZLwlSX+wwuoVAEcDDSed8L9UOglFk2Df5FxNo5b6Hm49dVknR1aUw/h7ezCTXtAUDmarpgGhyYUAddB+tomWi3IpS60P4KB7hc5ky2w/1yjEhK4NMgniVz6dkDoNr8MiN3wY6OfkQAeFrwHbSNFoJpNXGXffBduF43MhPAJJj6OQaKNWAEU9RvPvCbpkeZlb6PhfnmaW3SFRE94gHoTKDz3BM9tpOWEiaHWDl5T3tR8EOxvOE96DGNR/wbDBV955lTn1Yi5rBoxWV2/2JFZWY2YcNn46ZeHeZd1EL+hEIRTFDo/n59CxnWBQnSZhgoEsn7jsTj2uDtEDCa3pMqKbMQqWQJCvzx0eqAT0wAVpWm1cvg5fXZTqoeKn/fLglQik7wIFDyKebAY8ta7UmMdiVgQNxdOZG4UxoePsJDI7SPutOUbKVdJEdZ2cmsMBuEsq63TZczwwEGhCzg4tmmpnfImWs3kvG5ahDjNTK3ujgBm9cz56ZIKZ+2Mk5k0YsmLwo68hmtqiN5BDEmtdisDS4ShQvxh0CETLdEKZbWJdauWYtqCIpkE4r0LbS0bGtoj8vjsLWHDpp1OAzWkBhyOVZrX2G+IQeHgGDGiVqO0/huu00ZSsKGsC5KDbRTmG1AciqnQmFRShb0l2+rvtahxYPb64g3kKGkFVBPuelTCud1ehMgpWJqMANMg1K7KBdTtJ3xAU9bXJ+f3MDo95tU85tXcH6THvJq74+wxr+Yxr+arzqvpptVE6du2f3yaUabfpXR4+M/WabSlqD4mODwmODwmODwmODx8goMVRvJiswbjcL+myUje31Yv6+GadoUeAilbjc1WbipXLwzlNfqLYdCcgiG6GWlVCTseiroJrgKTNhMIF0+Iwskt/Key1Lrr4wr+oYtCQJgOXmL9v5or6EBsRBizhdKW9/khkRpXjjOk4enjDgQ39zx9AJJKGEsTtjTnSv7RKPvBzNN9fkscSDpOuN8LZWS2QMKBi/26nmJlxVWQ0tqQvtoiuk6kRhoY0vQMXYiigmLb3Biu5qGNjqMit0kvHq4wSAc8Bu0A/QhGs577lOT4B6SkpKB+ttIwKX1E9aDh6i1Siiz4HFjwLeR0AXbWThOANaSjO9z97tGHX6Vm+JWrhV+xTvgVKYRfsTb4xauCiYc0tuggLneWPLpzk+u1zC124x2WdBlXjbRr0u3I5tzuSQeBjbG5r8x3E1qmoJJWXC0w4NAZdVxB2t3MCcWs4ysbSh2HrrvYJZvHrligIFYSHTWQlFjoKS+SovMB3MagdLdSV/O7JBt8WgyYMXxF4RKAJG7m4EhL7WRvof8j6RO4vMpoJzIHzhPp5HUr37Gnd9KfO8zGbMwdtlPEf9Y23il2WGjq046iEB9FVkPDgw2h4ngKPV8EhuvSDgasNLP3Tshubc3uVKrdsLbPUaKSThxJobhR/moBHSVYxotCQHb43PAy5jpaWcqCD3To7QJf3ZoQui7y4yyetk7R6d6Q98o7CcNWHKq7dEf/s/1NLkKn0nTXqY9J32x/sLf/Ymfv+c7Bs4u9l0d7z4+eHY5fPn/2X50GGAsjeH63TO11y76AMdjpq77QPjhsB3QBM940wcEknTAUjy54PsLkA6RAcF9SuEaVkis74Qqjq6dNU0t3FIdMig0wzqZGLy2YBELOBgERjuhSTFnF5yJpPKqx+Xt7N5baXEk1v8Swo16v6QdNNKO5WJwrWBWiZOsykYUuxS4vsGVEk7rV+OtJ1L5PHt0oapvmNgLbhod6oTOeyUI6LzMrea2xe6/RNbSer6TIknZR0B8lbDbYLeAF221sQlHqVgjoWV5ytfK6UQYee3/jfH1yHvoqXaQg0NDYmQ5MK3ixK0d4Y4WA/yCioEOUnyIUitLkLwKxaiutvLYexDtmpSg2ISyOJ3Elx9An1wgX7TAeQ41lX9hRktYzFayGMkPQlT4aNUYUhjlqiKDp+I/9/EcsvMpVHmOW0rhQKMMB1/aqggauRcFOz4K0d7qBXlaTEao8HLQQRUij2gIYBHh6xpyR15IXxWrElGYldw7yTkTk3tLBZNyIfMSmqxhLk051xMfTcTbOJ/e5/d+lCcawT+W4iGlqp2cW91irpG9zesHuh+Wc3y0oh94bSNch4qHqDDFGJNNKUQDRLNrHKMrBiDk3OYaPWIvduJv3LXYVlzHE0WuBGGGaaZN0Bf5BG3ZxchY78wDTjGAibJmQ/m9CkFQSSj2c//0dRVc+saFkflCXT84SWMYwCVZsiTGx3ZmoCm2x6uEjbF87NF3Z0HwQuALFwDCeuTr4UjHATpiSbcXxtrBg8SxqeykUqgO4DTW+4GfS/oPLt5/oFFgJlWvNkLHZzhTpOoghnbcm4NBNClZBIzYROlhu47daZc31Ak86fT00WIPaphRHM6Q/vbiNO+hHD6mk9OYJDr8bltDubIK3IZ57Ll9y5WQWYt4pWUp8xOZExM+ai4q/Qc3qwr92Lf1y5R8isToqlgkD97MmXynwKhPnmPGiCLwqNMDPuBNzbVbIrChPzTpZFEwoaGkHr63JOPEIm0mvutKwvKqMrozkThSr+9yZkJNvSh1CGz42u8ONiaIDcx0Dgymncl7r2hYrpGb4Jqo60KrfRqUdPAbcs/ER46EcHpaOgSJ62tPJmLG/N5ilMopphRA8Vf5OH7MDkO4nY3pAqattNU55ydDkFeY1RonhdW/i5Q+UoBkjWJMRy4UXWZBJGspLN+36QM7IbifHh07r+ivkc0Hx8yYjjpwt1MgZzk/frPGyHfaNi7oFsk8qNYPQ4PidxlGPkWyPkWyPkWyPkWyPkWxfdSTbJwaSbfcjyUIcWUNZeP3suGnZ6dn1oX9wenb9olE8OrL2swWgDUW//bnksTPKGvsUwd62id0hD2ktEBoKd6xd4mPxysfilY/FK9lj8cqvrXgllRaB9xILWnh0S7BTKEzStce49DdtBvoJeV2IgFtyyzJdFNDw+ZaApplUORV5CtQJedlIlrESV5jbvxliBu5uLhDVQpTC8GKD5TZehzlS9qRJAQzgP5EzEPfQA9w+7dZaknnSEgIsO5bxzGhrmRHgrqLqNRMaEE5frqHBkuurfi/54ez53t6srdBs4jht91lzqG5XK4WGVIS4v2SySuAJLGLH0FULdZTmX/IrYZl0rNLWyin6iSLpxKGBhJLUR6RZJXoENdRmItjsjd+nShgpVAa+KWtrYdEu6McyIvcLoH5ejfkeHelx3NAZXuaYuN8EM8CVKxA72s2kmkOnY+oR1tvR/Nl34rmYzsQeFy+yw++/O8in4vvZ3v53h3z/xbPvptOXB4ffzW4rUfDwDSQChTextHT+B8Jp01tU/BACbIn2QRqBzyNWdyj00sJ9aqkjeprrVBgLGkoEVmEa4guKgf89Fk7HG59q+Sllq0IEdaSIpw3EW9r4pMBiZwSe38ZcWmfktPYrDxWncG9NDW6PKHEW2jo7TL5opQ9WaVosw6IstJROaABlcUMKtZ6x1wW3TmbkQ0rQDEug3N8gplHfrq0TpnUrQv/FXwV3tj+EtB47uZjxunBQE6iKbtCILwc9moEjxzHljCnNwhix+8dAGcJ0DTtp0mkSFeA2YoyhHjMwfodO/zHh6vc6XfBhcG1SYjnqxwNytsUkvUQHLpkoDGElazglDNIkBcOpa0PXJsZRhzrioLHiwKS18UP1KdPfW9uxuUDz7f8IAaLtDYk+lZbO09+VhodBtQN9xbg/NRi8LRy2N+/oPNfNlDySX7+02PhgnFY2QNdLS/1rntyg/eFbtzvigm8HoEJDwG678mh7pMTjdouvLfUUkcPti/QIkW/r0SP0hXiEcD/IcJQWEupZjz6bWwhBenQLPbqFHgakR7fQ3XH26BZ6dAt9VW4hrIf3tbmFCGq2abfQ3aX7ZnxDA+t89A09+oYefUPs0Tf0tfmGaoMciwwDH96/gT/XWwU+vH8T7vHUiZLZuoKSmpjw5idyAE7FDezlh/dvqFoevRnD3ReCTY3gmDqhl4pJ5TSz2UJ45oKXpRHkZ9H3mgU2fxcLwNBt7uEOzSu6nBO6TTGK1fq3lsvlmIxS40xvtc2ykDOTcTAUAD5LvsIgaQri9RoBlvYDvGJQebFq8mR5e2mM8mzA5AsNEawYUXR9U0watNO5jm1N6BZPhoCeNtheQguvM8Pn5eY6N217aZtY1mpTMD5zVJpj8u0kQbTT1VbH2Dn5dhKak1AvFlS4CegOz9hgmvnpDEWlp38wCcnS7yel5UBgdW1Fs1urxPaC5RviuqSCNoEg4ScjtlwICO93rXYsRmRaWWdqMDh66sHI8WD8aRueUjVmoNtYe/uPDg+f7aJ59d9+/0vL3Pqt0+2ytMPNgR5SWGGzG1gj9QcCErExHymutq9Kv9OOItKlGigOOkprweTxdEJR1LCZI0yv4TbdHp5Bwluh53TB859KS+nEv9XWNaH8oTSsZ2xrm+vE/K34WRyWg79zyW0EdNRivIOe30/aWD/amp87er61yU4+9J6f0fCDTTAbGNymFKQzaOjTmjvhQYSgrfEtt437pb8mN47elIeHz/rpoYfPWvNDmtemzqDnszAB0Wu0WwC8+AsWGBhcQyR5j74OXfXY+b8BOxcfoRBw0sYhnQVSVVCYxp5aSvtv4TAmhnGs2pTADp+6UNGJw3zT2sW3RslkuFgM1Ygjxm5KZeUaeAB0fHNCX3cccC0PM5sKtxSikeiQTLXUqCd0ZBYqSJva23MYfT25AyPZ6rBUTIOdHA2KXoR3DUvq6cobvsCmkQYJH0khaGnE9vZMwwtSt3uusuFCPvAqiiDoDyyueZTLpJy13Wc/JIUw+DXagQRYgdM7iX8ihaWjEO5y2EDHLbiCz2Qe0leD9h4TbkkowjED3yRhqbxPWNU/0ATyFVk/vgLDxz/a5vFo7rjV3PHFWTq+WCOHFeaSz8PtJ+HsrHl6B/6OYwQu38Rl+vs8VRcK1SuiZCHgLvz1jkoLLfSS2pAuxTTGjUDYTFJvEstHcOO1hTqCGvSLu7Nk7CfxuU4yzdbdEnm2CIEBn6tLUkIhiLoeUOd8xo38nHfXD4o29LodO9QQ14CP/g9ZFHz3+XiPPUE0/gs7OftAKGU/n7P9g8t9bFQZaqQ9ZcdVVYhfxPRv0u2+2Hs+3h/vP4/s5Mnffrp4+2aE3/wosiv9lFE00+7+wXiPvdVTWYjd/eev9w9fEp52X+x1S8Q+Fp0ehPqx6PRj0ek/B/H/2qLTmwX1P/pcd41o8Fzwm292/CxHbCqgBw+pDX/Fv1oD/yt8fxIsD5kuS63guxjzGO4JoEcWVPaDKkR/syaAEUDr9E0YWv2NzRBoga2RPWRjJ0vxRxOuhwPzQka7ZsXd4oiuop2XSzk3HOdzphbt0XEtrWH19DeRxQ7Y8MflrSv51yiwImZhy0KjKUAnhYW2IYBm9i0AGh1p7SSv/UedapVQUibPJZX08Wo6BKpSUD3ME4t7pXvIhkPC1+3gDWA1oCUx162N7FFHfxM9EaXv3bh/MOgg2fUHHqTR7uh0jrJC13lzkE78n8EMAeHinDLGBjDxln5F1ThrfWr9Fok85GbwPL+EFy7DkKEKmzbpUWutGT4YV0Z70mxu5pEh0C87H2+moVTzpE88vfyo9bwQuGLawW/ZsUcmpiEVeXpoYuSOcHwcAYOl3rIbgy/fuNfJHCGtpMmIu3mamJIU37/3THcgsM5cd6XhZDbK7rlMjuHNk9EH4+SDu85FbF4W0q0u78Bcb/7qrrMSpd1143pUftd5MNzuTnO0Xl3DD3KdXQGVEkN4Ff4eOFz4G+TfdLMq6Dd/tO1CG3eJ8uGIzXhhPSq5yhbahPl2IjNYI3YjWGxQeqzj8iQx0giUYTQlqBr+ZHA71kxV8nlfttw6m/8qPUr3nLXz5d0m/fTpCj4VhfUs8+LnVz97DWfJnGYlrzyfteLferC01A12s8rBbha9px5XDEEYB8r18q6h25/wr4FBTr2+kFArWWH95yHpcJwQKDRaHyJPkhivT87THBoZk2JEZsershjTe5hXzQ1FImu103zZsbIi6DdT+vqtaZlCwxBTrQvB1R3RO2swAu63Ztv782o7ntay6E/Z39EouLf2X77a3/t+627g/HzOYIZ25xLa9at66m/BmIhCe/+39NnAwM3vUcFpayvNoCzd+Zs5WfPRrdysBfTN+9xFd6Xz4aN+rwOUYKDS1JV5cKp6gG9+6kxnOmcfTl/1J4KA+YpnD7eoZsT+ZDrvsdk/OVmwFfUnQxZ1Oyu820TEc0te9WcC3wSWiHyo6ZIhh+c0AnLRrHAPi9Bm3DVozUVV6BUEjj3oxM24ayaGVONZXTz4kpOB10x9i6T/1InjsLdOO6zW/Pl5cVxi501fi15Xi4FxQz30yMXjhW2I66Y9M+7DcsXHuypWobB4r00CW69w/6YLfSX5Dq+dzqXN9HWqfv+/+Ct7Rb+sWPoeS26Vt97PB4ZKZR7BEYdcZwCj98ZoZGjbBu9hPQpmP0y28tfzAEBi/BueU95kdFxnR+LZgpx1C7CBRhdqu8a4kKFEs0dCzvIau5M7blxdtcx3oOppU2K+WrR/gbu44oaXwgmowDMVYLHy+wbdwgWGN+ED/ydGM8kcQLPiGsrTVNw4ixE8p2cjlnZEkPkIXOTgpGiBxFWOtfnBKjWEQiqiVhmd15m7PyIvKDkUzy4Nw+SMxbXdNO0nk0tr2m0b7dlPkpmf3jJ10l/vnjNT57wkNxaXn9CCjUVMuqnEAY4Q1X/v2T+8f8MW/noF5QlgOqJWgOQmpGdp5/+Bi8CaWX+JocxhfVg3AUmcLk28dguhXGhiTyGuga3NqGZA207/Q/tpOn3Cbv5PAAAA///Jq104" } From 276f19e9a07b57d24537db5b2934128a8339904c Mon Sep 17 00:00:00 2001 From: Radovan Ondas Date: Wed, 27 Mar 2019 15:43:20 +0100 Subject: [PATCH 287/332] Add new community beats to the list. Owmbeat and Safecastbeat. (#11480) --- libbeat/docs/communitybeats.asciidoc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libbeat/docs/communitybeats.asciidoc b/libbeat/docs/communitybeats.asciidoc index 4f4123e7e1b..9a344f8d25e 100644 --- a/libbeat/docs/communitybeats.asciidoc +++ b/libbeat/docs/communitybeats.asciidoc @@ -78,6 +78,7 @@ https://github.com/2Fast2BCn/nginxupstreambeat[nginxupstreambeat]:: Reads upstre https://github.com/mschneider82/nsqbeat[nsqbeat]:: Reads data from a NSQ topic. https://github.com/eBay/nvidiagpubeat[nvidiagpubeat]:: Uses nvidia-smi to grab metrics of NVIDIA GPUs. https://github.com/aristanetworks/openconfigbeat[openconfigbeat]:: Streams data from http://openconfig.net[OpenConfig]-enabled network devices +https://github.com/radoondas/owmbeat[owmbeat]:: Open Weather Map beat to pull weather data from all around the world and store and visualize them in Elastic Stack https://github.com/joehillen/packagebeat[packagebeat]:: Collects information about system packages from package managers. https://github.com/WuerthIT/perfstatbeat[perfstatbeat]:: Collect performance metrics on the AIX operating system. @@ -92,6 +93,7 @@ https://github.com/voigt/redditbeat[redditbeat]:: Collects new Reddit Submission https://github.com/chrsblck/redisbeat[redisbeat]:: Used for Redis monitoring. https://github.com/consulthys/retsbeat[retsbeat]:: Collects counts of http://www.reso.org[RETS] resource/class records from https://en.wikipedia.org/wiki/Multiple_listing_service[Multiple Listing Service] (MLS) servers. https://github.com/yourdream/rsbeat[rsbeat]:: Ships redis slow logs to elasticsearch and analyze by Kibana. +https://github.com/radoondas/safecastbeat[safecastbeat]:: Pulls data from Safecast API and store them in Elasticsearch. https://github.com/martinhoefling/saltbeat[saltbeat]:: Reads events from salt master event bus. https://github.com/benben/serialbeat[serialbeat]:: Reads from a serial device. https://github.com/Corwind/servicebeat[servicebeat]:: Send services status to Elasticsearch From c8c32b9f6382ab1906b1f7c9f407e0c91ebfe83e Mon Sep 17 00:00:00 2001 From: matthagenbuch Date: Wed, 27 Mar 2019 10:54:52 -0400 Subject: [PATCH 288/332] add yarnbeat (#11486) --- libbeat/docs/communitybeats.asciidoc | 1 + 1 file changed, 1 insertion(+) diff --git a/libbeat/docs/communitybeats.asciidoc b/libbeat/docs/communitybeats.asciidoc index 9a344f8d25e..20d2dc23026 100644 --- a/libbeat/docs/communitybeats.asciidoc +++ b/libbeat/docs/communitybeats.asciidoc @@ -114,3 +114,4 @@ https://github.com/phenomenes/varnishlogbeat[varnishlogbeat]:: Reads log data fr https://github.com/phenomenes/varnishstatbeat[varnishstatbeat]:: Reads stats data from a Varnish instance and ships it to Elasticsearch. https://gitlab.com/msvechla/vaultbeat[vaultbeat]:: Collects performance metrics and statistics from Hashicorp's Vault. https://github.com/eskibars/wmibeat[wmibeat]:: Uses WMI to grab your favorite, configurable Windows metrics. +https://github.com/IBM/yarnbeat[yarnbeat]:: Polls YARN and MapReduce APIs for cluster and application metrics. From 72aa56d7f3c5ce4aae52f63f34dc2e2d7604fef9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Berfin=20Sar=C4=B1?= Date: Thu, 28 Mar 2019 10:33:44 +0300 Subject: [PATCH 289/332] migrate docker module to ReporterV2 error (#11462) --- metricbeat/module/docker/container/container.go | 12 ++++-------- .../docker/container/container_integration_test.go | 6 +++--- metricbeat/module/docker/cpu/cpu.go | 12 ++++-------- metricbeat/module/docker/cpu/cpu_integration_test.go | 6 +++--- metricbeat/module/docker/diskio/diskio.go | 12 ++++-------- .../module/docker/diskio/diskio_integration_test.go | 6 +++--- metricbeat/module/docker/healthcheck/data.go | 3 ++- metricbeat/module/docker/healthcheck/healthcheck.go | 12 ++++-------- .../healthcheck/healthcheck_integration_test.go | 6 +++--- metricbeat/module/docker/memory/memory.go | 12 ++++-------- .../module/docker/memory/memory_integration_test.go | 6 +++--- metricbeat/module/docker/network/network.go | 12 ++++-------- .../docker/network/network_integration_test.go | 4 ++-- 13 files changed, 43 insertions(+), 66 deletions(-) diff --git a/metricbeat/module/docker/container/container.go b/metricbeat/module/docker/container/container.go index 06fa64d7db1..8f84dc3eda2 100644 --- a/metricbeat/module/docker/container/container.go +++ b/metricbeat/module/docker/container/container.go @@ -24,13 +24,10 @@ import ( "github.com/docker/docker/client" "github.com/pkg/errors" - "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/module/docker" ) -var logger = logp.NewLogger("docker.container") - func init() { mb.Registry.MustAddMetricSet("docker", "container", New, mb.WithHostParser(docker.HostParser), @@ -66,16 +63,15 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // Fetch returns a list of all containers as events. // This is based on https://docs.docker.com/engine/reference/api/docker_remote_api_v1.24/#/list-containers. -func (m *MetricSet) Fetch(r mb.ReporterV2) { +func (m *MetricSet) Fetch(r mb.ReporterV2) error { // Fetch a list of all containers. containers, err := m.dockerClient.ContainerList(context.Background(), types.ContainerListOptions{}) if err != nil { - err = errors.Wrap(err, "failed to get docker containers list") - logger.Error(err) - r.Error(err) - return + return errors.Wrap(err, "failed to get docker containers list") } eventsMapping(r, containers, m.dedot) + + return nil } //Close stops the metricset diff --git a/metricbeat/module/docker/container/container_integration_test.go b/metricbeat/module/docker/container/container_integration_test.go index 321a727fa43..cd1dd4afcc3 100644 --- a/metricbeat/module/docker/container/container_integration_test.go +++ b/metricbeat/module/docker/container/container_integration_test.go @@ -28,14 +28,14 @@ import ( ) func TestData(t *testing.T) { - f := mbtest.NewReportingMetricSetV2(t, getConfig()) - events, errs := mbtest.ReportingFetchV2(f) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig()) + events, errs := mbtest.ReportingFetchV2Error(f) if len(errs) > 0 { t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } assert.NotEmpty(t, events) - if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { + if err := mbtest.WriteEventsReporterV2Error(f, t, ""); err != nil { t.Fatal("write", err) } } diff --git a/metricbeat/module/docker/cpu/cpu.go b/metricbeat/module/docker/cpu/cpu.go index 05cc0c99665..a9fcbbc77b8 100644 --- a/metricbeat/module/docker/cpu/cpu.go +++ b/metricbeat/module/docker/cpu/cpu.go @@ -21,13 +21,10 @@ import ( "github.com/docker/docker/client" "github.com/pkg/errors" - "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/module/docker" ) -var logger = logp.NewLogger("docker.cpu") - func init() { mb.Registry.MustAddMetricSet("docker", "cpu", New, mb.WithHostParser(docker.HostParser), @@ -72,17 +69,16 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { } // Fetch returns a list of docker CPU stats. -func (m *MetricSet) Fetch(r mb.ReporterV2) { +func (m *MetricSet) Fetch(r mb.ReporterV2) error { stats, err := docker.FetchStats(m.dockerClient, m.Module().Config().Timeout) if err != nil { - err = errors.Wrap(err, "failed to get docker stats") - logger.Error(err) - r.Error(err) - return + return errors.Wrap(err, "failed to get docker stats") } formattedStats := m.cpuService.getCPUStatsList(stats, m.dedot) eventsMapping(r, formattedStats) + + return nil } //Close stops the metricset diff --git a/metricbeat/module/docker/cpu/cpu_integration_test.go b/metricbeat/module/docker/cpu/cpu_integration_test.go index 1dad5cb1dd8..9fe62182550 100644 --- a/metricbeat/module/docker/cpu/cpu_integration_test.go +++ b/metricbeat/module/docker/cpu/cpu_integration_test.go @@ -28,14 +28,14 @@ import ( ) func TestData(t *testing.T) { - f := mbtest.NewReportingMetricSetV2(t, getConfig()) - events, errs := mbtest.ReportingFetchV2(f) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig()) + events, errs := mbtest.ReportingFetchV2Error(f) if len(errs) > 0 { t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } assert.NotEmpty(t, events) - if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { + if err := mbtest.WriteEventsReporterV2Error(f, t, ""); err != nil { t.Fatal("write", err) } } diff --git a/metricbeat/module/docker/diskio/diskio.go b/metricbeat/module/docker/diskio/diskio.go index fd3d66bf10b..fbfadc09052 100644 --- a/metricbeat/module/docker/diskio/diskio.go +++ b/metricbeat/module/docker/diskio/diskio.go @@ -21,13 +21,10 @@ import ( "github.com/docker/docker/client" "github.com/pkg/errors" - "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/module/docker" ) -var logger = logp.NewLogger("docker.diskio") - func init() { mb.Registry.MustAddMetricSet("docker", "diskio", New, mb.WithHostParser(docker.HostParser), @@ -63,17 +60,16 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { } // Fetch creates list of events with diskio stats for all containers. -func (m *MetricSet) Fetch(r mb.ReporterV2) { +func (m *MetricSet) Fetch(r mb.ReporterV2) error { stats, err := docker.FetchStats(m.dockerClient, m.Module().Config().Timeout) if err != nil { - err = errors.Wrap(err, "failed to get docker stats") - logger.Error(err) - r.Error(err) - return + return errors.Wrap(err, "failed to get docker stats") } formattedStats := m.blkioService.getBlkioStatsList(stats, m.dedot) eventsMapping(r, formattedStats) + + return nil } //Close stops the metricset diff --git a/metricbeat/module/docker/diskio/diskio_integration_test.go b/metricbeat/module/docker/diskio/diskio_integration_test.go index 21e3b20c20d..c694475d721 100644 --- a/metricbeat/module/docker/diskio/diskio_integration_test.go +++ b/metricbeat/module/docker/diskio/diskio_integration_test.go @@ -28,14 +28,14 @@ import ( ) func TestData(t *testing.T) { - f := mbtest.NewReportingMetricSetV2(t, getConfig()) - events, errs := mbtest.ReportingFetchV2(f) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig()) + events, errs := mbtest.ReportingFetchV2Error(f) if len(errs) > 0 { t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } assert.NotEmpty(t, events) - if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { + if err := mbtest.WriteEventsReporterV2Error(f, t, ""); err != nil { t.Fatal("write", err) } } diff --git a/metricbeat/module/docker/healthcheck/data.go b/metricbeat/module/docker/healthcheck/data.go index 673e15a7323..5f0c8dbc9cc 100644 --- a/metricbeat/module/docker/healthcheck/data.go +++ b/metricbeat/module/docker/healthcheck/data.go @@ -22,6 +22,7 @@ import ( "strings" "github.com/docker/docker/api/types" + "github.com/pkg/errors" "github.com/elastic/beats/libbeat/common" "github.com/elastic/beats/metricbeat/mb" @@ -41,7 +42,7 @@ func eventMapping(r mb.ReporterV2, cont *types.Container, m *MetricSet) { container, err := m.dockerClient.ContainerInspect(context.TODO(), cont.ID) if err != nil { - logger.Error("Error inspecting container %v: %v", cont.ID, err) + errors.Wrapf(err, "Error inspecting container %v", cont.ID) return } diff --git a/metricbeat/module/docker/healthcheck/healthcheck.go b/metricbeat/module/docker/healthcheck/healthcheck.go index 8ac122fdfbe..c1af433a0dd 100644 --- a/metricbeat/module/docker/healthcheck/healthcheck.go +++ b/metricbeat/module/docker/healthcheck/healthcheck.go @@ -24,13 +24,10 @@ import ( "github.com/docker/docker/client" "github.com/pkg/errors" - "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/module/docker" ) -var logger = logp.NewLogger("docker.healthcheck") - func init() { mb.Registry.MustAddMetricSet("docker", "healthcheck", New, mb.WithHostParser(docker.HostParser), @@ -65,16 +62,15 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // Fetch returns a list of all containers as events. // This is based on https://docs.docker.com/engine/reference/api/docker_remote_api_v1.24/#/list-containers. -func (m *MetricSet) Fetch(r mb.ReporterV2) { +func (m *MetricSet) Fetch(r mb.ReporterV2) error { // Fetch a list of all containers. containers, err := m.dockerClient.ContainerList(context.TODO(), types.ContainerListOptions{}) if err != nil { - err = errors.Wrap(err, "failed to get docker containers list") - logger.Error(err) - r.Error(err) - return + return errors.Wrap(err, "failed to get docker containers list") } eventsMapping(r, containers, m) + + return nil } //Close stops the metricset diff --git a/metricbeat/module/docker/healthcheck/healthcheck_integration_test.go b/metricbeat/module/docker/healthcheck/healthcheck_integration_test.go index 79dfeb00ab7..e2510f883b8 100644 --- a/metricbeat/module/docker/healthcheck/healthcheck_integration_test.go +++ b/metricbeat/module/docker/healthcheck/healthcheck_integration_test.go @@ -28,14 +28,14 @@ import ( ) func TestData(t *testing.T) { - f := mbtest.NewReportingMetricSetV2(t, getConfig()) - events, errs := mbtest.ReportingFetchV2(f) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig()) + events, errs := mbtest.ReportingFetchV2Error(f) if len(errs) > 0 { t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } assert.NotEmpty(t, events) - if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { + if err := mbtest.WriteEventsReporterV2Error(f, t, ""); err != nil { t.Fatal("write", err) } } diff --git a/metricbeat/module/docker/memory/memory.go b/metricbeat/module/docker/memory/memory.go index 142e6b1af67..142de586a19 100644 --- a/metricbeat/module/docker/memory/memory.go +++ b/metricbeat/module/docker/memory/memory.go @@ -21,13 +21,10 @@ import ( "github.com/docker/docker/client" "github.com/pkg/errors" - "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/module/docker" ) -var logger = logp.NewLogger("docker.memory") - func init() { mb.Registry.MustAddMetricSet("docker", "memory", New, mb.WithHostParser(docker.HostParser), @@ -63,17 +60,16 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { } // Fetch creates a list of memory events for each container. -func (m *MetricSet) Fetch(r mb.ReporterV2) { +func (m *MetricSet) Fetch(r mb.ReporterV2) error { stats, err := docker.FetchStats(m.dockerClient, m.Module().Config().Timeout) if err != nil { - err = errors.Wrap(err, "failed to get docker stats") - logger.Error(err) - r.Error(err) - return + return errors.Wrap(err, "failed to get docker stats") } memoryStats := m.memoryService.getMemoryStatsList(stats, m.dedot) eventsMapping(r, memoryStats) + + return nil } //Close stops the metricset diff --git a/metricbeat/module/docker/memory/memory_integration_test.go b/metricbeat/module/docker/memory/memory_integration_test.go index e77284614f0..69a9ea0c814 100644 --- a/metricbeat/module/docker/memory/memory_integration_test.go +++ b/metricbeat/module/docker/memory/memory_integration_test.go @@ -28,14 +28,14 @@ import ( ) func TestData(t *testing.T) { - f := mbtest.NewReportingMetricSetV2(t, getConfig()) - events, errs := mbtest.ReportingFetchV2(f) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig()) + events, errs := mbtest.ReportingFetchV2Error(f) if len(errs) > 0 { t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } assert.NotEmpty(t, events) - if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { + if err := mbtest.WriteEventsReporterV2Error(f, t, ""); err != nil { t.Fatal("write", err) } } diff --git a/metricbeat/module/docker/network/network.go b/metricbeat/module/docker/network/network.go index 7635abc6df2..a9b0b54c60d 100644 --- a/metricbeat/module/docker/network/network.go +++ b/metricbeat/module/docker/network/network.go @@ -21,13 +21,10 @@ import ( "github.com/docker/docker/client" "github.com/pkg/errors" - "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/module/docker" ) -var logger = logp.NewLogger("docker.network") - func init() { mb.Registry.MustAddMetricSet("docker", "network", New, mb.WithHostParser(docker.HostParser), @@ -65,17 +62,16 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { } // Fetch methods creates a list of network events for each container. -func (m *MetricSet) Fetch(r mb.ReporterV2) { +func (m *MetricSet) Fetch(r mb.ReporterV2) error { stats, err := docker.FetchStats(m.dockerClient, m.Module().Config().Timeout) if err != nil { - err = errors.Wrap(err, "failed to get docker stats") - logger.Error(err) - r.Error(err) - return + return errors.Wrap(err, "failed to get docker stats") } formattedStats := m.netService.getNetworkStatsPerContainer(stats, m.dedot) eventsMapping(r, formattedStats) + + return nil } //Close stops the metricset diff --git a/metricbeat/module/docker/network/network_integration_test.go b/metricbeat/module/docker/network/network_integration_test.go index f110d0d7794..015bf40a5fa 100644 --- a/metricbeat/module/docker/network/network_integration_test.go +++ b/metricbeat/module/docker/network/network_integration_test.go @@ -26,8 +26,8 @@ import ( ) func TestData(t *testing.T) { - ms := mbtest.NewReportingMetricSetV2(t, getConfig()) - err := mbtest.WriteEventsReporterV2(ms, t, "") + ms := mbtest.NewReportingMetricSetV2Error(t, getConfig()) + err := mbtest.WriteEventsReporterV2Error(ms, t, "") if err != nil { t.Fatal("write", err) } From 4126841fda758e6a2fb1993da8dd41e6aa6f16cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Berfin=20Sar=C4=B1?= Date: Thu, 28 Mar 2019 12:13:45 +0300 Subject: [PATCH 290/332] migrate haproxy module to ReporterV2 error (#11446) --- metricbeat/module/haproxy/info/info.go | 11 +++++------ .../module/haproxy/info/info_integration_test.go | 8 ++++---- metricbeat/module/haproxy/stat/stat.go | 11 +++++------ .../module/haproxy/stat/stat_integration_test.go | 8 ++++---- 4 files changed, 18 insertions(+), 20 deletions(-) diff --git a/metricbeat/module/haproxy/info/info.go b/metricbeat/module/haproxy/info/info.go index b9bb5ab36aa..ad2b996c0d2 100644 --- a/metricbeat/module/haproxy/info/info.go +++ b/metricbeat/module/haproxy/info/info.go @@ -52,19 +52,18 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { } // Fetch fetches info stats from the haproxy service. -func (m *MetricSet) Fetch(r mb.ReporterV2) { +func (m *MetricSet) Fetch(reporter mb.ReporterV2) error { hapc, err := haproxy.NewHaproxyClient(m.HostData().URI) if err != nil { - r.Error(errors.Wrap(err, "failed creating haproxy client")) - return + return errors.Wrap(err, "failed creating haproxy client") } res, err := hapc.GetInfo() if err != nil { - r.Error(errors.Wrap(err, "failed fetching haproxy info")) - return + return errors.Wrap(err, "failed fetching haproxy info") } - eventMapping(res, r) + eventMapping(res, reporter) + return nil } diff --git a/metricbeat/module/haproxy/info/info_integration_test.go b/metricbeat/module/haproxy/info/info_integration_test.go index b085ea13096..ca251f9d0ed 100644 --- a/metricbeat/module/haproxy/info/info_integration_test.go +++ b/metricbeat/module/haproxy/info/info_integration_test.go @@ -32,8 +32,8 @@ import ( func TestFetch(t *testing.T) { compose.EnsureUp(t, "haproxy") - f := mbtest.NewReportingMetricSetV2(t, getConfig()) - events, errs := mbtest.ReportingFetchV2(f) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig()) + events, errs := mbtest.ReportingFetchV2Error(f) assert.Empty(t, errs) if !assert.NotEmpty(t, events) { @@ -49,8 +49,8 @@ func TestData(t *testing.T) { compose.EnsureUp(t, "haproxy") config := getConfig() - f := mbtest.NewReportingMetricSetV2(t, config) - err := mbtest.WriteEventsReporterV2(f, t, ".") + f := mbtest.NewReportingMetricSetV2Error(t, config) + err := mbtest.WriteEventsReporterV2Error(f, t, ".") if err != nil { t.Fatal("write", err) } diff --git a/metricbeat/module/haproxy/stat/stat.go b/metricbeat/module/haproxy/stat/stat.go index 1daa4b32841..8e39bd6148d 100644 --- a/metricbeat/module/haproxy/stat/stat.go +++ b/metricbeat/module/haproxy/stat/stat.go @@ -52,18 +52,17 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { } // Fetch methods returns a list of stats metrics. -func (m *MetricSet) Fetch(r mb.ReporterV2) { +func (m *MetricSet) Fetch(reporter mb.ReporterV2) error { hapc, err := haproxy.NewHaproxyClient(m.HostData().URI) if err != nil { - r.Error(errors.Wrap(err, "failed creating haproxy client")) - return + return errors.Wrap(err, "failed creating haproxy client") } res, err := hapc.GetStat() if err != nil { - r.Error(errors.Wrap(err, "failed fetching haproxy stat")) - return + return errors.Wrap(err, "failed fetching haproxy stat") } - eventMapping(res, r) + eventMapping(res, reporter) + return nil } diff --git a/metricbeat/module/haproxy/stat/stat_integration_test.go b/metricbeat/module/haproxy/stat/stat_integration_test.go index bc4f3258b53..3538ea007dd 100644 --- a/metricbeat/module/haproxy/stat/stat_integration_test.go +++ b/metricbeat/module/haproxy/stat/stat_integration_test.go @@ -32,8 +32,8 @@ import ( func TestFetch(t *testing.T) { compose.EnsureUp(t, "haproxy") - f := mbtest.NewReportingMetricSetV2(t, getConfig()) - events, errs := mbtest.ReportingFetchV2(f) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig()) + events, errs := mbtest.ReportingFetchV2Error(f) assert.Empty(t, errs) if !assert.NotEmpty(t, events) { @@ -49,8 +49,8 @@ func TestData(t *testing.T) { compose.EnsureUp(t, "haproxy") config := getConfig() - f := mbtest.NewReportingMetricSetV2(t, config) - err := mbtest.WriteEventsReporterV2(f, t, ".") + f := mbtest.NewReportingMetricSetV2Error(t, config) + err := mbtest.WriteEventsReporterV2Error(f, t, ".") if err != nil { t.Fatal("write", err) } From 8cceee613b704910bcf388e29248d009f8d754d5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Berfin=20Sar=C4=B1?= Date: Thu, 28 Mar 2019 12:15:57 +0300 Subject: [PATCH 291/332] migrate envoyproxy module to ReporterV2 error (#11412) --- metricbeat/module/envoyproxy/server/server.go | 13 +++++-------- .../envoyproxy/server/server_integration_test.go | 10 +++++----- metricbeat/module/envoyproxy/server/server_test.go | 8 ++++---- 3 files changed, 14 insertions(+), 17 deletions(-) diff --git a/metricbeat/module/envoyproxy/server/server.go b/metricbeat/module/envoyproxy/server/server.go index c61488f535a..4ae21ba062a 100644 --- a/metricbeat/module/envoyproxy/server/server.go +++ b/metricbeat/module/envoyproxy/server/server.go @@ -18,7 +18,8 @@ package server import ( - "github.com/elastic/beats/libbeat/logp" + "github.com/pkg/errors" + "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" @@ -36,8 +37,6 @@ var ( }.Build() ) -var logger = logp.NewLogger("envoyproxy.server") - func init() { mb.Registry.MustAddMetricSet("envoyproxy", "server", New, mb.WithHostParser(hostParser), @@ -69,16 +68,14 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // Fetch methods implements the data gathering and data conversion to the right // format. It publishes the event which is then forwarded to the output. In case // of an error set the Error field of mb.Event or simply call report.Error(). -func (m *MetricSet) Fetch(reporter mb.ReporterV2) { +func (m *MetricSet) Fetch(reporter mb.ReporterV2) error { content, err := m.http.FetchContent() if err != nil { - logger.Error(err) - reporter.Error(err) - return + return errors.Wrap(err, "error in http fetch") } event, _ := eventMapping(content) reporter.Event(mb.Event{MetricSetFields: event}) - return + return nil } diff --git a/metricbeat/module/envoyproxy/server/server_integration_test.go b/metricbeat/module/envoyproxy/server/server_integration_test.go index 6ea592b0aad..cbf316666ec 100644 --- a/metricbeat/module/envoyproxy/server/server_integration_test.go +++ b/metricbeat/module/envoyproxy/server/server_integration_test.go @@ -32,8 +32,8 @@ import ( func TestFetch(t *testing.T) { compose.EnsureUp(t, "envoyproxy") - f := mbtest.NewReportingMetricSetV2(t, getConfig()) - events, errs := mbtest.ReportingFetchV2(f) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig()) + events, errs := mbtest.ReportingFetchV2Error(f) if len(errs) > 0 { t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } @@ -45,14 +45,14 @@ func TestFetch(t *testing.T) { func TestData(t *testing.T) { compose.EnsureUp(t, "envoyproxy") - f := mbtest.NewReportingMetricSetV2(t, getConfig()) - events, errs := mbtest.ReportingFetchV2(f) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig()) + events, errs := mbtest.ReportingFetchV2Error(f) if len(errs) > 0 { t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } assert.NotEmpty(t, events) - if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { + if err := mbtest.WriteEventsReporterV2Error(f, t, ""); err != nil { t.Fatal("write", err) } } diff --git a/metricbeat/module/envoyproxy/server/server_test.go b/metricbeat/module/envoyproxy/server/server_test.go index 6cf0ed8f93e..3aed848c2c1 100644 --- a/metricbeat/module/envoyproxy/server/server_test.go +++ b/metricbeat/module/envoyproxy/server/server_test.go @@ -93,8 +93,8 @@ func TestFetchEventContent(t *testing.T) { "hosts": []string{server.URL}, } - f := mbtest.NewReportingMetricSetV2(t, config) - events, errs := mbtest.ReportingFetchV2(f) + f := mbtest.NewReportingMetricSetV2Error(t, config) + events, errs := mbtest.ReportingFetchV2Error(f) if len(errs) > 0 { t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } @@ -131,10 +131,10 @@ func TestFetchTimeout(t *testing.T) { "timeout": "50ms", } - f := mbtest.NewReportingMetricSetV2(t, config) + f := mbtest.NewReportingMetricSetV2Error(t, config) start := time.Now() - events, errs := mbtest.ReportingFetchV2(f) + events, errs := mbtest.ReportingFetchV2Error(f) if len(errs) == 0 { t.Fatalf("Expected an error, had %d. %v\n", len(errs), errs) } From 4be9bbf1149c94e63b105b5070502fb87e3fdd80 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Berfin=20Sar=C4=B1?= Date: Thu, 28 Mar 2019 12:16:41 +0300 Subject: [PATCH 292/332] migrate consul module to ReporterV2 error (#11440) --- metricbeat/module/consul/agent/agent.go | 14 ++++++-------- .../module/consul/agent/agent_integration_test.go | 4 ++-- .../module/consul/agent/data_integration_test.go | 6 +++--- 3 files changed, 11 insertions(+), 13 deletions(-) diff --git a/metricbeat/module/consul/agent/agent.go b/metricbeat/module/consul/agent/agent.go index aa353ada434..c1fa03ae127 100644 --- a/metricbeat/module/consul/agent/agent.go +++ b/metricbeat/module/consul/agent/agent.go @@ -18,8 +18,9 @@ package agent import ( + "github.com/pkg/errors" + "github.com/elastic/beats/libbeat/common/cfgwarn" - "github.com/elastic/beats/libbeat/logp" "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/mb/parse" @@ -70,19 +71,15 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // Fetch methods implements the data gathering and data conversion to the right // format. It publishes the event which is then forwarded to the output. In case // of an error set the Error field of mb.Event or simply call report.Error(). -func (m *MetricSet) Fetch(report mb.ReporterV2) { +func (m *MetricSet) Fetch(report mb.ReporterV2) error { content, err := m.http.FetchContent() if err != nil { - logp.Error(err) - report.Error(err) - return + return errors.Wrap(err, "error in http fetch") } mappings, err := eventMapping(content) if err != nil { - logp.Error(err) - report.Error(err) - return + return errors.Wrap(err, "error in event mapping") } for _, m := range mappings { @@ -90,4 +87,5 @@ func (m *MetricSet) Fetch(report mb.ReporterV2) { MetricSetFields: m, }) } + return nil } diff --git a/metricbeat/module/consul/agent/agent_integration_test.go b/metricbeat/module/consul/agent/agent_integration_test.go index 970db3b00a8..82beb66d32d 100644 --- a/metricbeat/module/consul/agent/agent_integration_test.go +++ b/metricbeat/module/consul/agent/agent_integration_test.go @@ -39,8 +39,8 @@ func TestFetch(t *testing.T) { compose.EnsureUp(t, "consul") - f := mbtest.NewReportingMetricSetV2(t, consul.GetConfig([]string{"agent"})) - events, errs := mbtest.ReportingFetchV2(f) + f := mbtest.NewReportingMetricSetV2Error(t, consul.GetConfig([]string{"agent"})) + events, errs := mbtest.ReportingFetchV2Error(f) if len(errs) > 0 { t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } diff --git a/metricbeat/module/consul/agent/data_integration_test.go b/metricbeat/module/consul/agent/data_integration_test.go index bffe36098be..ffe787a4ecd 100644 --- a/metricbeat/module/consul/agent/data_integration_test.go +++ b/metricbeat/module/consul/agent/data_integration_test.go @@ -33,14 +33,14 @@ import ( func TestData(t *testing.T) { t.Skip("Skipping `data.json` generation test") - f := mbtest.NewReportingMetricSetV2(t, consul.GetConfig([]string{"agent"})) - events, errs := mbtest.ReportingFetchV2(f) + f := mbtest.NewReportingMetricSetV2Error(t, consul.GetConfig([]string{"agent"})) + events, errs := mbtest.ReportingFetchV2Error(f) if len(errs) > 0 { t.Fatalf("Expected 0 error, had %d. %v\n", len(errs), errs) } assert.NotEmpty(t, events) - if err := mbtest.WriteEventsReporterV2(f, t, ""); err != nil { + if err := mbtest.WriteEventsReporterV2Error(f, t, ""); err != nil { t.Fatal("write", err) } } From 5764e89b189ecda2f59d8db3f63f5dc7b632fae9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Berfin=20Sar=C4=B1?= Date: Thu, 28 Mar 2019 12:17:41 +0300 Subject: [PATCH 293/332] migrate php_fpm module to ReporterV2 error (#11459) --- metricbeat/module/php_fpm/pool/pool.go | 16 ++++++++-------- .../module/php_fpm/pool/pool_integration_test.go | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/metricbeat/module/php_fpm/pool/pool.go b/metricbeat/module/php_fpm/pool/pool.go index 2fe4cad0a2f..ae346086d42 100644 --- a/metricbeat/module/php_fpm/pool/pool.go +++ b/metricbeat/module/php_fpm/pool/pool.go @@ -20,6 +20,8 @@ package pool import ( "encoding/json" + "github.com/pkg/errors" + "github.com/elastic/beats/metricbeat/helper" "github.com/elastic/beats/metricbeat/mb" "github.com/elastic/beats/metricbeat/module/php_fpm" @@ -53,24 +55,22 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { } // Fetch gathers data for the pool metricset -func (m *MetricSet) Fetch(report mb.ReporterV2) { +func (m *MetricSet) Fetch(reporter mb.ReporterV2) error { content, err := m.HTTP.FetchContent() if err != nil { - report.Error(err) - return + return errors.Wrap(err, "error in http fetch") } var stats map[string]interface{} err = json.Unmarshal(content, &stats) if err != nil { - report.Error(err) - return + return errors.Wrap(err, "error unmarshalling json") } event, err := schema.Apply(stats) if err != nil { - report.Error(err) - return + return errors.Wrap(err, "error in event mapping") } - report.Event(mb.Event{ + reporter.Event(mb.Event{ MetricSetFields: event, }) + return nil } diff --git a/metricbeat/module/php_fpm/pool/pool_integration_test.go b/metricbeat/module/php_fpm/pool/pool_integration_test.go index 9ace6ed2391..2251669f9fe 100644 --- a/metricbeat/module/php_fpm/pool/pool_integration_test.go +++ b/metricbeat/module/php_fpm/pool/pool_integration_test.go @@ -32,8 +32,8 @@ import ( func TestFetch(t *testing.T) { compose.EnsureUp(t, "phpfpm") - f := mbtest.NewReportingMetricSetV2(t, getConfig()) - events, errs := mbtest.ReportingFetchV2(f) + f := mbtest.NewReportingMetricSetV2Error(t, getConfig()) + events, errs := mbtest.ReportingFetchV2Error(f) assert.Empty(t, errs) if !assert.NotEmpty(t, events) { From dcd98bd3a18a8ba1a4308c5985089a6a6ab844a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Berfin=20Sar=C4=B1?= Date: Thu, 28 Mar 2019 12:18:10 +0300 Subject: [PATCH 294/332] migrate traefik module to ReporterV2 error (#11458) --- metricbeat/module/traefik/health/health.go | 8 ++++---- .../module/traefik/health/health_integration_test.go | 2 +- metricbeat/module/traefik/health/health_test.go | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/metricbeat/module/traefik/health/health.go b/metricbeat/module/traefik/health/health.go index 78d04438ef5..619d4444db9 100644 --- a/metricbeat/module/traefik/health/health.go +++ b/metricbeat/module/traefik/health/health.go @@ -63,11 +63,10 @@ func New(base mb.BaseMetricSet) (mb.MetricSet, error) { // Fetch methods gather data, convert it to the right format, and publish it. // If there are errors, those are published instead. -func (m *MetricSet) Fetch(report mb.ReporterV2) { +func (m *MetricSet) Fetch(reporter mb.ReporterV2) error { data, err := m.http.FetchJSON() if err != nil { - report.Error(errors.Wrap(err, "failed to sample health")) - return + return errors.Wrap(err, "failed to sample health") } metricSetFields, _ := eventMapping(data) @@ -77,5 +76,6 @@ func (m *MetricSet) Fetch(report mb.ReporterV2) { } event.RootFields.Put("service.name", "traefik") - report.Event(event) + reporter.Event(event) + return nil } diff --git a/metricbeat/module/traefik/health/health_integration_test.go b/metricbeat/module/traefik/health/health_integration_test.go index 7147b590c52..aa2a15308bf 100644 --- a/metricbeat/module/traefik/health/health_integration_test.go +++ b/metricbeat/module/traefik/health/health_integration_test.go @@ -48,7 +48,7 @@ func TestFetch(t *testing.T) { makeBadRequest(config) - ms := mbtest.NewReportingMetricSetV2(t, config) + ms := mbtest.NewReportingMetricSetV2Error(t, config) reporter := &mbtest.CapturingReporterV2{} ms.Fetch(reporter) diff --git a/metricbeat/module/traefik/health/health_test.go b/metricbeat/module/traefik/health/health_test.go index 0671f2cece9..bec941dffea 100644 --- a/metricbeat/module/traefik/health/health_test.go +++ b/metricbeat/module/traefik/health/health_test.go @@ -49,7 +49,7 @@ func TestFetchEventContents(t *testing.T) { "hosts": []string{server.URL}, } - fetcher := mbtest.NewReportingMetricSetV2(t, config) + fetcher := mbtest.NewReportingMetricSetV2Error(t, config) reporter := &mbtest.CapturingReporterV2{} fetcher.Fetch(reporter) From 1342d5ffc3a6d7b7d8e55fde91d0b09a442c1087 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 28 Mar 2019 08:43:21 -0400 Subject: [PATCH 295/332] Add the timestamp when creating the backup file (#11034) Fixes: #10031 --- CHANGELOG.next.asciidoc | 1 + x-pack/libbeat/management/enroll.go | 5 ++++- x-pack/libbeat/tests/system/test_management.py | 9 ++++++--- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index b8b65e1c137..24d9c6324d2 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -152,6 +152,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Report faulting file when config reload fails. {pull}[11304]11304 - Remove IP fields from default_field in Elasticsearch template. - Fix a typo in libbeat/outputs/transport/client.go by updating `c.conn.LocalAddr()` to `c.conn.RemoteAddr()`. {pull}11242[11242] +- Management configuration backup file will now have a timestamps in their name. {pull}11034[11034] *Auditbeat* diff --git a/x-pack/libbeat/management/enroll.go b/x-pack/libbeat/management/enroll.go index bd5eb740869..1265d57fc46 100644 --- a/x-pack/libbeat/management/enroll.go +++ b/x-pack/libbeat/management/enroll.go @@ -7,6 +7,7 @@ package management import ( "fmt" "os" + "time" "github.com/pkg/errors" @@ -52,8 +53,10 @@ func Enroll( configFile := cfgfile.GetDefaultCfgfile() + ts := time.Now().Unix() + // backup current settings: - backConfigFile := configFile + ".bak" + backConfigFile := configFile + "." + string(ts) + ".bak" fmt.Println("Saving a copy of current settings to " + backConfigFile) err = file.SafeFileRotate(backConfigFile, configFile) if err != nil { diff --git a/x-pack/libbeat/tests/system/test_management.py b/x-pack/libbeat/tests/system/test_management.py index 76d68279cb8..e62e6443567 100644 --- a/x-pack/libbeat/tests/system/test_management.py +++ b/x-pack/libbeat/tests/system/test_management.py @@ -1,5 +1,6 @@ import sys import os +import glob import json import requests import string @@ -39,6 +40,8 @@ def test_enroll(self): Enroll the beat in Kibana Central Management """ + assert len(glob.glob(os.path.join(self.working_dir, "mockbeat.yml.*.bak"))) == 0 + # We don't care about this as it will be replaced by enrollment # process: config_path = os.path.join(self.working_dir, "mockbeat.yml") @@ -61,9 +64,9 @@ def test_enroll(self): assert config_content != new_content # Settings backup has been created - assert os.path.isfile(os.path.join( - self.working_dir, "mockbeat.yml.bak")) - backup_content = open(config_path + ".bak", 'r').read() + backup_file = glob.glob(os.path.join(self.working_dir, "mockbeat.yml.*.bak"))[0] + assert os.path.isfile(backup_file) + backup_content = open(backup_file).read() assert config_content == backup_content @unittest.skipIf(not INTEGRATION_TESTS, From a07dec3541025f95724a5712cd0e319c7242dc44 Mon Sep 17 00:00:00 2001 From: Pier-Hugues Pellerin Date: Thu, 28 Mar 2019 09:25:36 -0400 Subject: [PATCH 296/332] Beats CM now handle the new response format from Kibana. (#11377) Format is defined in https://github.com/elastic/kibana/issues/27408 Main objective is to easier bubbling or errors and messages. ``` export interface ReturnType { error?: { message: string; code?: number; }; success: boolean; } ``` --- x-pack/libbeat/management/api/auth_client.go | 8 +-- .../management/api/auth_client_test.go | 18 ++++--- x-pack/libbeat/management/api/client.go | 12 ++--- .../libbeat/management/api/configuration.go | 3 +- .../management/api/configuration_test.go | 3 +- x-pack/libbeat/management/api/doc.go | 7 +-- x-pack/libbeat/management/api/enroll.go | 14 +++-- x-pack/libbeat/management/api/enroll_test.go | 7 +-- .../libbeat/management/api/event_reporter.go | 2 +- x-pack/libbeat/management/api/response.go | 53 +++++++++++++++++++ x-pack/libbeat/management/manager_test.go | 18 +++---- .../libbeat/tests/system/test_management.py | 4 +- 12 files changed, 107 insertions(+), 42 deletions(-) create mode 100644 x-pack/libbeat/management/api/response.go diff --git a/x-pack/libbeat/management/api/auth_client.go b/x-pack/libbeat/management/api/auth_client.go index 66a073d42ea..cb9f5113944 100644 --- a/x-pack/libbeat/management/api/auth_client.go +++ b/x-pack/libbeat/management/api/auth_client.go @@ -33,13 +33,13 @@ type EventRequest struct { // EventAPIResponse is the top level response for the events endpoints. type EventAPIResponse struct { - Response []EventResponse `json:"response"` + BaseResponse + Response []EventResponse `json:"results"` } // EventResponse is the indiviual response for each event request. type EventResponse struct { - Success bool `json:"success"` - Reason string `json:"reason"` + BaseResponse } // AuthClienter is the interface exposed by the auth client and is useful for testing without calling @@ -102,7 +102,7 @@ func (c *AuthClient) SendEvents(requests []EventRequest) error { var errors multierror.Errors for _, response := range resp.Response { if !response.Success { - errors = append(errors, fmt.Errorf("error sending event, reason: %+v", response.Reason)) + errors = append(errors, fmt.Errorf("error sending event, reason: %+v", response.Error.Message)) } } diff --git a/x-pack/libbeat/management/api/auth_client_test.go b/x-pack/libbeat/management/api/auth_client_test.go index 4e37b2edac4..340a98847e7 100644 --- a/x-pack/libbeat/management/api/auth_client_test.go +++ b/x-pack/libbeat/management/api/auth_client_test.go @@ -100,7 +100,7 @@ func TestReportEvents(t *testing.T) { } apiResponse := EventAPIResponse{ - Response: []EventResponse{EventResponse{Success: true}}, + Response: []EventResponse{EventResponse{BaseResponse: BaseResponse{Success: true}}}, } w.WriteHeader(http.StatusOK) @@ -118,10 +118,12 @@ func TestReportEvents(t *testing.T) { t.Run("bubble up any errors", func(t *testing.T) { server, client := newServerClientPair(t, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.WriteHeader(http.StatusBadRequest) - response := struct { - Message string - }{ - Message: "bad request", + response := BaseResponse{ + Success: false, + Error: ErrorResponse{ + Message: "bad request", + Code: http.StatusBadRequest, + }, } json.NewEncoder(w).Encode(response) })) @@ -139,8 +141,8 @@ func TestReportEvents(t *testing.T) { server, client := newServerClientPair(t, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { apiResponse := EventAPIResponse{ Response: []EventResponse{ - EventResponse{Success: true}, - EventResponse{Success: false}, + EventResponse{BaseResponse: BaseResponse{Success: true}}, + EventResponse{BaseResponse: BaseResponse{Success: false}}, }, } w.WriteHeader(http.StatusOK) @@ -163,7 +165,7 @@ func TestReportEvents(t *testing.T) { server, client := newServerClientPair(t, http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { apiResponse := EventAPIResponse{ Response: []EventResponse{ - EventResponse{Success: true}, + EventResponse{BaseResponse: BaseResponse{Success: true}}, }, } w.WriteHeader(http.StatusOK) diff --git a/x-pack/libbeat/management/api/client.go b/x-pack/libbeat/management/api/client.go index 75ad65a3504..154244c96df 100644 --- a/x-pack/libbeat/management/api/client.go +++ b/x-pack/libbeat/management/api/client.go @@ -96,12 +96,10 @@ func (c *Client) request(method, extraPath string, return statusCode, err } -func extractError(result []byte) error { - var kibanaResult struct { - Message string +func extractError(b []byte) error { + var result BaseResponse + if err := json.Unmarshal(b, &result); err != nil { + return errors.Wrap(err, "error while parsing Kibana response") } - if err := json.Unmarshal(result, &kibanaResult); err != nil { - return errors.Wrap(err, "parsing Kibana response") - } - return errors.New(kibanaResult.Message) + return errors.New(result.Error.Message) } diff --git a/x-pack/libbeat/management/api/configuration.go b/x-pack/libbeat/management/api/configuration.go index 8c161e9fb2c..f29b1d041cc 100644 --- a/x-pack/libbeat/management/api/configuration.go +++ b/x-pack/libbeat/management/api/configuration.go @@ -80,7 +80,8 @@ func (c *configResponse) UnmarshalJSON(b []byte) error { // Configuration retrieves the list of configuration blocks from Kibana func (c *AuthClient) Configuration() (ConfigBlocks, error) { resp := struct { - ConfigBlocks []*configResponse `json:"configuration_blocks"` + BaseResponse + ConfigBlocks []*configResponse `json:"list"` }{} url := fmt.Sprintf("/api/beats/agent/%s/configuration", c.BeatUUID) statusCode, err := c.Client.request("GET", url, nil, c.headers(), &resp) diff --git a/x-pack/libbeat/management/api/configuration_test.go b/x-pack/libbeat/management/api/configuration_test.go index 3a0c8a1f997..94fed11f17f 100644 --- a/x-pack/libbeat/management/api/configuration_test.go +++ b/x-pack/libbeat/management/api/configuration_test.go @@ -13,6 +13,7 @@ import ( "github.com/stretchr/testify/assert" ) +// {"list":[{"id":"6c385a04-f315-489e-9208-c87f41911782","type":"filebeat.inputs","config":{"paths":["/tmp/hello.log"]},"tag":"89be4cfd-6249-4ac2-abe2-8f82520ba435"},{"id":"315ff7e9-ae24-4c99-a9d0-ed4314bc8e60","type":"output","config":{"_sub_type":"elasticsearch","username":"elastic","password":"changeme"},"tag":"89be4cfd-6249-4ac2-abe2-8f82520ba435"}],"success":true} func TestConfiguration(t *testing.T) { beatUUID, err := uuid.NewV4() if err != nil { @@ -26,7 +27,7 @@ func TestConfiguration(t *testing.T) { // Check enrollment token is correct assert.Equal(t, "thisismyenrollmenttoken", r.Header.Get("kbn-beats-access-token")) - fmt.Fprintf(w, `{"configuration_blocks":[{"type":"filebeat.modules","config":{"_sub_type":"apache2"}},{"type":"metricbeat.modules","config":{"_sub_type":"system","period":"10s"}}]}`) + fmt.Fprintf(w, `{"success": true, "list":[{"type":"filebeat.modules","config":{"_sub_type":"apache2"}},{"type":"metricbeat.modules","config":{"_sub_type":"system","period":"10s"}}]}`) })) defer server.Close() diff --git a/x-pack/libbeat/management/api/doc.go b/x-pack/libbeat/management/api/doc.go index 3bcdfee78ad..c0a95acfc8c 100644 --- a/x-pack/libbeat/management/api/doc.go +++ b/x-pack/libbeat/management/api/doc.go @@ -13,7 +13,8 @@ Translations: Type: output { - "configuration_blocks": [ + "success": true, + "list": [ { "config": { @@ -42,8 +43,8 @@ YAML representation: Type: *.modules { - "configuration_blocks": [ - + "success": true, + "list": [ { "config": { "_sub_type": "system" diff --git a/x-pack/libbeat/management/api/enroll.go b/x-pack/libbeat/management/api/enroll.go index e5331bcf910..a347737f9af 100644 --- a/x-pack/libbeat/management/api/enroll.go +++ b/x-pack/libbeat/management/api/enroll.go @@ -14,18 +14,24 @@ import ( ) type enrollResponse struct { - AccessToken string `json:"access_token"` + BaseResponse + AccessToken string `json:"item"` } func (e *enrollResponse) Validate() error { - if len(e.AccessToken) == 0 { + if !e.Success || len(e.AccessToken) == 0 { return errors.New("empty access_token") } return nil } -// Enroll a beat in central management, this call returns a valid access token to retrieve configurations -func (c *Client) Enroll(beatType, beatName, beatVersion, hostname string, beatUUID uuid.UUID, enrollmentToken string) (string, error) { +// Enroll a beat in central management, this call returns a valid access token to retrieve +// configurations +func (c *Client) Enroll( + beatType, beatName, beatVersion, hostname string, + beatUUID uuid.UUID, + enrollmentToken string, +) (string, error) { params := common.MapStr{ "type": beatType, "name": beatName, diff --git a/x-pack/libbeat/management/api/enroll_test.go b/x-pack/libbeat/management/api/enroll_test.go index 38f9404f601..c10d925bd1e 100644 --- a/x-pack/libbeat/management/api/enroll_test.go +++ b/x-pack/libbeat/management/api/enroll_test.go @@ -49,7 +49,7 @@ func TestEnrollValid(t *testing.T) { assert.Equal(t, "6.3.0", request.Version) assert.Equal(t, "beatname", request.Name) - fmt.Fprintf(w, `{"access_token": "fooo"}`) + fmt.Fprintf(w, `{"success": true, "item": "fooo"}`) })) defer server.Close() @@ -67,11 +67,12 @@ func TestEnrollError(t *testing.T) { responseCode int }{ "invalid enrollment token": { - body: `{"message": "Invalid enrollment token"}`, + body: `{"success": false, "error": { "message": "Invalid enrollment token", "code": 400 }}`, responseCode: 400, }, + //NOTE(ph): I believe this is now fixed in the API. "invalid token response": { - body: `{"access_token": ""}`, + body: `{"success": true, "item": ""}`, responseCode: 200, }, } diff --git a/x-pack/libbeat/management/api/event_reporter.go b/x-pack/libbeat/management/api/event_reporter.go index 298786b70eb..f349d9433ad 100644 --- a/x-pack/libbeat/management/api/event_reporter.go +++ b/x-pack/libbeat/management/api/event_reporter.go @@ -13,7 +13,7 @@ import ( "github.com/elastic/beats/libbeat/logp" ) -var debugK = "event_reporter" +const debugK = "event_reporter" // EventReporter is an object that will periodically send asyncronously events to the // CM events endpoints. diff --git a/x-pack/libbeat/management/api/response.go b/x-pack/libbeat/management/api/response.go new file mode 100644 index 00000000000..cb28924bb25 --- /dev/null +++ b/x-pack/libbeat/management/api/response.go @@ -0,0 +1,53 @@ +// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one +// or more contributor license agreements. Licensed under the Elastic License; +// you may not use this file except in compliance with the Elastic License. + +package api + +import "fmt" + +// Action are the actions executed on the API. +type Action int + +// List of the valid Actions executed by the API. +//go:generate stringer -type=LicenseType -linecomment=true +const ( + Created Action = iota + 1 // created +) + +var mapStringToAction = map[string]Action{ + "created": Created, +} + +// UnmarshalJSON unmarshal an action string into a constant. +func (a *Action) UnmarshalJSON(b []byte) error { + k := string(b) + if len(b) <= 2 { + return fmt.Errorf( + "invalid string for action type, received: '%s'", + k, + ) + } + v, found := mapStringToAction[k[1:len(k)-1]] + if !found { + return fmt.Errorf( + "unknown action '%s' returned from the API, valid actions are: 'created'", + k, + ) + } + *a = v + return nil +} + +// BaseResponse the common response from all the API calls. +type BaseResponse struct { + Action Action `json:"action,omitempty"` + Success bool `json:"success"` + Error ErrorResponse `json:"error,omitempty"` +} + +// ErrorResponse contains human readable and machine readable information when an error happens. +type ErrorResponse struct { + Message string `json:"message"` + Code int `json:"code"` +} diff --git a/x-pack/libbeat/management/manager_test.go b/x-pack/libbeat/management/manager_test.go index 0c0fca537f8..1ada01bfdb3 100644 --- a/x-pack/libbeat/management/manager_test.go +++ b/x-pack/libbeat/management/manager_test.go @@ -49,13 +49,13 @@ func TestConfigManager(t *testing.T) { i := 0 responses := []string{ // Initial load - `{"configuration_blocks":[{"type":"test.block","config":{"module":"apache2"}}]}`, + `{"success": true, "list":[{"type":"test.block","config":{"module":"apache2"}}]}`, // No change, no reload - `{"configuration_blocks":[{"type":"test.block","config":{"module":"apache2"}}]}`, + `{"success": true, "list":[{"type":"test.block","config":{"module":"apache2"}}]}`, // Changed, reload - `{"configuration_blocks":[{"type":"test.block","config":{"module":"system"}}]}`, + `{"success": true, "list":[{"type":"test.block","config":{"module":"system"}}]}`, } mux.Handle(fmt.Sprintf("/api/beats/agent/%s/configuration", id), http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, responses[i]) @@ -128,10 +128,10 @@ func TestRemoveItems(t *testing.T) { i := 0 responses := []string{ // Initial load - `{"configuration_blocks":[{"type":"test.blocks","config":{"module":"apache2"}}]}`, + `{"success": true, "list":[{"type":"test.blocks","config":{"module":"apache2"}}]}`, // Return no blocks - `{"configuration_blocks":[]}`, + `{"success": true, "list":[]}`, } mux.Handle(fmt.Sprintf("/api/beats/agent/%s/configuration", id), http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { fmt.Fprintf(w, responses[i]) @@ -206,7 +206,7 @@ func TestUnEnroll(t *testing.T) { mux := http.NewServeMux() i := 0 responses := []http.HandlerFunc{ // Initial load - responseText(`{"configuration_blocks":[{"type":"test.blocks","config":{"module":"apache2"}}]}`), + responseText(`{"success": true, "list":[{"type":"test.blocks","config":{"module":"apache2"}}]}`), http.NotFound, } @@ -277,9 +277,9 @@ func TestBadConfig(t *testing.T) { mux := http.NewServeMux() i := 0 responses := []http.HandlerFunc{ // Initial load - responseText(`{"configuration_blocks":[{"type":"output","config":{"_sub_type": "console", "path": "/tmp/bad"}}]}`), + responseText(`{"success": true, "list":[{"type":"output","config":{"_sub_type": "console", "path": "/tmp/bad"}}]}`), // will not resend new events - responseText(`{"configuration_blocks":[{"type":"output","config":{"_sub_type": "console", "path": "/tmp/bad"}}]}`), + responseText(`{"success": true, "list":[{"type":"output","config":{"_sub_type": "console", "path": "/tmp/bad"}}]}`), // recover on call http.NotFound, } @@ -406,7 +406,7 @@ func addEventsReporterHandle(mux *http.ServeMux, uuid uuid.UUID) *collectEventRe resp := api.EventAPIResponse{Response: make([]api.EventResponse, len(requests))} for i := 0; i < len(requests); i++ { - resp.Response[i] = api.EventResponse{Success: true} + resp.Response[i] = api.EventResponse{BaseResponse: api.BaseResponse{Success: true}} } json.NewEncoder(w).Encode(resp) diff --git a/x-pack/libbeat/tests/system/test_management.py b/x-pack/libbeat/tests/system/test_management.py index e62e6443567..0be0ea03b78 100644 --- a/x-pack/libbeat/tests/system/test_management.py +++ b/x-pack/libbeat/tests/system/test_management.py @@ -14,7 +14,9 @@ from base import BaseTest -INTEGRATION_TESTS = os.environ.get('INTEGRATION_TESTS', False) +# Disable because waiting artifacts from https://github.com/elastic/kibana/pull/31660 +# INTEGRATION_TESTS = os.environ.get('INTEGRATION_TESTS', False) +INTEGRATION_TESTS = False TIMEOUT = 2 * 60 From e044c9ca5545c065c741aeb3e0f34ff5a9a1bf90 Mon Sep 17 00:00:00 2001 From: Andrew Kroh Date: Thu, 28 Mar 2019 12:04:58 -0400 Subject: [PATCH 297/332] Update github.com/elastic/go-sysinfo (#11494) Fixes #11490 Fixes #9134 --- CHANGELOG.next.asciidoc | 1 + NOTICE.txt | 2 +- .../go-sysinfo/providers/linux/container.go | 5 +++ .../go-sysinfo/providers/linux/machineid.go | 32 +++++++++++++++++-- .../elastic/go-sysinfo/providers/linux/os.go | 5 +-- vendor/vendor.json | 30 ++++++++--------- 6 files changed, 54 insertions(+), 21 deletions(-) diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 24d9c6324d2..6be3fb0cfa4 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -153,6 +153,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Remove IP fields from default_field in Elasticsearch template. - Fix a typo in libbeat/outputs/transport/client.go by updating `c.conn.LocalAddr()` to `c.conn.RemoteAddr()`. {pull}11242[11242] - Management configuration backup file will now have a timestamps in their name. {pull}11034[11034] +- Fixed OS family classification in `add_host_metadata` for Amazon Linux, Raspbian, and RedHat Linux. {issue}9134[9134] {pull}11494[11494] *Auditbeat* diff --git a/NOTICE.txt b/NOTICE.txt index e61cbe1a20b..362e7671bd7 100644 --- a/NOTICE.txt +++ b/NOTICE.txt @@ -713,7 +713,7 @@ Apache License 2.0 -------------------------------------------------------------------- Dependency: github.com/elastic/go-sysinfo -Revision: 59ef8c0eae46c0929e3b219ac86368d4b5934f91 +Revision: ab4f04edfc3d6b3864f5f06a068ddab9ad79774f License type (autodetected): Apache-2.0 ./vendor/github.com/elastic/go-sysinfo/LICENSE.txt: -------------------------------------------------------------------- diff --git a/vendor/github.com/elastic/go-sysinfo/providers/linux/container.go b/vendor/github.com/elastic/go-sysinfo/providers/linux/container.go index 45a8e9b6f36..cfacf013d12 100644 --- a/vendor/github.com/elastic/go-sysinfo/providers/linux/container.go +++ b/vendor/github.com/elastic/go-sysinfo/providers/linux/container.go @@ -21,6 +21,7 @@ import ( "bufio" "bytes" "io/ioutil" + "os" "github.com/pkg/errors" ) @@ -31,6 +32,10 @@ const procOneCgroup = "/proc/1/cgroup" func IsContainerized() (bool, error) { data, err := ioutil.ReadFile(procOneCgroup) if err != nil { + if os.IsNotExist(err) { + return false, nil + } + return false, errors.Wrap(err, "failed to read process cgroups") } diff --git a/vendor/github.com/elastic/go-sysinfo/providers/linux/machineid.go b/vendor/github.com/elastic/go-sysinfo/providers/linux/machineid.go index b5ff0538564..a84d085c9ea 100644 --- a/vendor/github.com/elastic/go-sysinfo/providers/linux/machineid.go +++ b/vendor/github.com/elastic/go-sysinfo/providers/linux/machineid.go @@ -27,11 +27,37 @@ import ( "github.com/elastic/go-sysinfo/types" ) +var ( + // Possible (current and historic) locations of the machine-id file. + // These will be searched in order. + machineIDFiles = []string{"/etc/machine-id", "/var/lib/dbus/machine-id", "/var/db/dbus/machine-id"} +) + func MachineID() (string, error) { - id, err := ioutil.ReadFile("/etc/machine-id") + var contents []byte + var err error + + for _, file := range machineIDFiles { + contents, err = ioutil.ReadFile(file) + if err != nil { + if os.IsNotExist(err) { + // Try next location + continue + } + + // Return with error on any other error + return "", errors.Wrapf(err, "failed to read %v", file) + } + + // Found it + break + } + if os.IsNotExist(err) { + // None of the locations existed return "", types.ErrNotImplemented } - id = bytes.TrimSpace(id) - return string(id), errors.Wrap(err, "failed to read machine-id") + + contents = bytes.TrimSpace(contents) + return string(contents), nil } diff --git a/vendor/github.com/elastic/go-sysinfo/providers/linux/os.go b/vendor/github.com/elastic/go-sysinfo/providers/linux/os.go index a54c1d3258a..d4daedd506f 100644 --- a/vendor/github.com/elastic/go-sysinfo/providers/linux/os.go +++ b/vendor/github.com/elastic/go-sysinfo/providers/linux/os.go @@ -47,9 +47,10 @@ var ( versionRegexp = regexp.MustCompile(versionGrok) ) +// familyMap contains a mapping of family -> []platforms. var familyMap = map[string][]string{ - "redhat": {"redhat", "fedora", "centos", "scientific", "oraclelinux", "amazon"}, - "debian": {"debian", "ubuntu"}, + "redhat": {"redhat", "fedora", "centos", "scientific", "oraclelinux", "amzn", "rhel"}, + "debian": {"debian", "ubuntu", "raspbian"}, "suse": {"suse", "sles", "opensuse"}, } diff --git a/vendor/vendor.json b/vendor/vendor.json index a259d36cee5..8099dea0aa4 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -1026,44 +1026,44 @@ { "checksumSHA1": "QhFIpuHPaV6hKejKcc2wm6y4MSQ=", "path": "github.com/elastic/go-sysinfo", - "revision": "59ef8c0eae46c0929e3b219ac86368d4b5934f91", - "revisionTime": "2019-01-07T12:18:35Z" + "revision": "ab4f04edfc3d6b3864f5f06a068ddab9ad79774f", + "revisionTime": "2019-03-27T18:53:17Z" }, { "checksumSHA1": "GiZCjX17K265TtamGZZw4R2Jwbk=", "path": "github.com/elastic/go-sysinfo/internal/registry", - "revision": "59ef8c0eae46c0929e3b219ac86368d4b5934f91", - "revisionTime": "2019-01-07T12:18:35Z" + "revision": "ab4f04edfc3d6b3864f5f06a068ddab9ad79774f", + "revisionTime": "2019-03-27T18:53:17Z" }, { "checksumSHA1": "ovafihHzpBx9Y7+lZh9X5KwNCvE=", "path": "github.com/elastic/go-sysinfo/providers/darwin", - "revision": "59ef8c0eae46c0929e3b219ac86368d4b5934f91", - "revisionTime": "2019-01-07T12:18:35Z" + "revision": "ab4f04edfc3d6b3864f5f06a068ddab9ad79774f", + "revisionTime": "2019-03-27T18:53:17Z" }, { - "checksumSHA1": "AK76ZxnuvK02Dfpmj7b2TD/aiSI=", + "checksumSHA1": "OyI+VwDiT4UZjncsDr1GYg1xcdw=", "path": "github.com/elastic/go-sysinfo/providers/linux", - "revision": "59ef8c0eae46c0929e3b219ac86368d4b5934f91", - "revisionTime": "2019-01-07T12:18:35Z" + "revision": "ab4f04edfc3d6b3864f5f06a068ddab9ad79774f", + "revisionTime": "2019-03-27T18:53:17Z" }, { "checksumSHA1": "RWLvcP1w9ynKbuCqiW6prwd+EDU=", "path": "github.com/elastic/go-sysinfo/providers/shared", - "revision": "59ef8c0eae46c0929e3b219ac86368d4b5934f91", - "revisionTime": "2019-01-07T12:18:35Z" + "revision": "ab4f04edfc3d6b3864f5f06a068ddab9ad79774f", + "revisionTime": "2019-03-27T18:53:17Z" }, { "checksumSHA1": "aF05MEkMjbRekzHlwFxmd5WBpeY=", "path": "github.com/elastic/go-sysinfo/providers/windows", - "revision": "59ef8c0eae46c0929e3b219ac86368d4b5934f91", - "revisionTime": "2019-01-07T12:18:35Z" + "revision": "ab4f04edfc3d6b3864f5f06a068ddab9ad79774f", + "revisionTime": "2019-03-27T18:53:17Z" }, { "checksumSHA1": "MLQioPEjULYbNqqCjfB1/cux08E=", "path": "github.com/elastic/go-sysinfo/types", - "revision": "59ef8c0eae46c0929e3b219ac86368d4b5934f91", - "revisionTime": "2019-01-07T12:18:35Z" + "revision": "ab4f04edfc3d6b3864f5f06a068ddab9ad79774f", + "revisionTime": "2019-03-27T18:53:17Z" }, { "checksumSHA1": "bNf3GDGhZh86bfCIMM5c5AYfo3g=", From 32eb8d1f09577b30d61e4c226d2490f275da7ea0 Mon Sep 17 00:00:00 2001 From: Adrian Serrano Date: Thu, 28 Mar 2019 17:17:09 +0100 Subject: [PATCH 298/332] [Filebeat] Cisco ASA module (#11171) This adds a cisco module to x-pack/filebeat. The only fileset currently, asa, will ingest Cisco ASA logs received over syslog. Closes #9200 --- CHANGELOG.next.asciidoc | 1 + filebeat/docs/fields.asciidoc | 184 ++ filebeat/docs/modules/cisco.asciidoc | 103 + filebeat/docs/modules_list.asciidoc | 2 + x-pack/filebeat/filebeat.reference.yml | 17 + x-pack/filebeat/include/list.go | 1 + x-pack/filebeat/module/cisco/README.md | 6 + x-pack/filebeat/module/cisco/_meta/config.yml | 15 + .../filebeat/module/cisco/_meta/docs.asciidoc | 90 + x-pack/filebeat/module/cisco/_meta/fields.yml | 10 + .../cisco/_meta/images/kibana-cisco-asa.png | Bin 0 -> 813426 bytes .../7/dashboard/Filebeat-Cisco-ASA.json | 1045 ++++++++ .../module/cisco/asa/_meta/fields.yml | 87 + .../module/cisco/asa/config/input.yml | 23 + .../module/cisco/asa/ingest/pipeline.yml | 472 ++++ x-pack/filebeat/module/cisco/asa/manifest.yml | 30 + x-pack/filebeat/module/cisco/asa/test/asa.log | 268 ++ .../cisco/asa/test/asa.log-expected.json | 2315 +++++++++++++++++ .../module/cisco/asa/test/filtered.log | 2 + .../cisco/asa/test/filtered.log-expected.json | 20 + .../filebeat/module/cisco/asa/test/sample.log | 72 + .../cisco/asa/test/sample.log-expected.json | 1792 +++++++++++++ x-pack/filebeat/module/cisco/fields.go | 23 + x-pack/filebeat/module/cisco/module.yml | 3 + 24 files changed, 6581 insertions(+) create mode 100644 filebeat/docs/modules/cisco.asciidoc create mode 100644 x-pack/filebeat/module/cisco/README.md create mode 100644 x-pack/filebeat/module/cisco/_meta/config.yml create mode 100644 x-pack/filebeat/module/cisco/_meta/docs.asciidoc create mode 100644 x-pack/filebeat/module/cisco/_meta/fields.yml create mode 100644 x-pack/filebeat/module/cisco/_meta/images/kibana-cisco-asa.png create mode 100644 x-pack/filebeat/module/cisco/_meta/kibana/7/dashboard/Filebeat-Cisco-ASA.json create mode 100644 x-pack/filebeat/module/cisco/asa/_meta/fields.yml create mode 100644 x-pack/filebeat/module/cisco/asa/config/input.yml create mode 100644 x-pack/filebeat/module/cisco/asa/ingest/pipeline.yml create mode 100644 x-pack/filebeat/module/cisco/asa/manifest.yml create mode 100644 x-pack/filebeat/module/cisco/asa/test/asa.log create mode 100644 x-pack/filebeat/module/cisco/asa/test/asa.log-expected.json create mode 100644 x-pack/filebeat/module/cisco/asa/test/filtered.log create mode 100644 x-pack/filebeat/module/cisco/asa/test/filtered.log-expected.json create mode 100644 x-pack/filebeat/module/cisco/asa/test/sample.log create mode 100644 x-pack/filebeat/module/cisco/asa/test/sample.log-expected.json create mode 100644 x-pack/filebeat/module/cisco/fields.go create mode 100644 x-pack/filebeat/module/cisco/module.yml diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index 6be3fb0cfa4..793c94615b1 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -316,6 +316,7 @@ https://github.com/elastic/beats/compare/v7.0.0-alpha2...master[Check the HEAD d - Added categorization fields for SSH login events in the system/auth fileset. {pull}11334[11334] - Add support for MySQL 8.0 slow logs and tests also for Percona 8.0 and MariaDB 10.3. {pull}11417[11417] - New Filebeat coredns module to ingest coredns logs. It supports both native coredns deployment and coredns deployment in kubernetes. {pull}11200[11200] +- New module for Cisco ASA logs. {issue}9200[9200] {pull}11171[11171] *Heartbeat* diff --git a/filebeat/docs/fields.asciidoc b/filebeat/docs/fields.asciidoc index 266270e4d19..84463b69ab3 100644 --- a/filebeat/docs/fields.asciidoc +++ b/filebeat/docs/fields.asciidoc @@ -15,6 +15,7 @@ grouped in the following categories: * <> * <> * <> +* <> * <> * <> * <> @@ -1047,6 +1048,189 @@ type: alias alias to: agent.hostname +-- + +[[exported-fields-cisco]] +== Cisco fields + +Module for handling Cisco network device logs. + + + +[float] +== cisco fields + +Fields from Cisco logs. + + + +[float] +== asa fields + +Fields for Cisco ASA Firewall. + + + +*`cisco.asa.message_id`*:: ++ +-- +type: keyword + +The Cisco ASA message identifier. + + +-- + +*`cisco.asa.suffix`*:: ++ +-- +type: keyword + +example: session + +Optional suffix after %ASA identifier. + + +-- + +*`cisco.asa.source_interface`*:: ++ +-- +type: keyword + +Source interface for the flow or event. + + +-- + +*`cisco.asa.destination_interface`*:: ++ +-- +type: keyword + +Destination interface for the flow or event. + + +-- + +*`cisco.asa.list_id`*:: ++ +-- +type: keyword + +Name of the Access Control List that matched this event. + + +-- + +*`cisco.asa.source_username`*:: ++ +-- +type: keyword + +Name of the user that is the source for this event. + + +-- + +*`cisco.asa.destination_username`*:: ++ +-- +type: keyword + +Name of the user that is the destination for this event. + + +-- + +*`cisco.asa.mapped_source_ip`*:: ++ +-- +type: ip + +The translated source IP address. + + +-- + +*`cisco.asa.mapped_source_port`*:: ++ +-- +type: long + +The translated source port. + + +-- + +*`cisco.asa.mapped_destination_ip`*:: ++ +-- +type: ip + +The translated destination IP address. + + +-- + +*`cisco.asa.mapped_destination_port`*:: ++ +-- +type: long + +The translated destination port. + + +-- + +*`cisco.asa.threat_level`*:: ++ +-- +type: keyword + +Threat level for malware / botnet traffic. One of very-low, low, moderate, high or very-high. + + +-- + +*`cisco.asa.threat_category`*:: ++ +-- +type: keyword + +Category for the malware / botnet traffic. For example: virus, botnet, trojan, etc. + + +-- + +*`cisco.asa.connection_id`*:: ++ +-- +type: keyword + +Unique identifier for a flow. + + +-- + +*`cisco.asa.icmp_type`*:: ++ +-- +type: short + +ICMP type. + + +-- + +*`cisco.asa.icmp_code`*:: ++ +-- +type: short + +ICMP code. + + -- [[exported-fields-cloud]] diff --git a/filebeat/docs/modules/cisco.asciidoc b/filebeat/docs/modules/cisco.asciidoc new file mode 100644 index 00000000000..ce4036e7fa5 --- /dev/null +++ b/filebeat/docs/modules/cisco.asciidoc @@ -0,0 +1,103 @@ +//// +This file is generated! See scripts/docs_collector.py +//// + +[[filebeat-module-cisco]] +[role="xpack"] + +:modulename: cisco +:has-dashboards: true + +== Cisco module + +This is a module for Cisco network device's logs. Currently supports the `asa` +fileset for Cisco ASA firewall logs received over syslog or read from a file. + +Cisco ASA devices also support exporting flow records using NetFlow, which is +supported by the {filebeat-ref}/filebeat-module-netflow.html[netflow module] in +{beatname_uc}. + +include::../include/what-happens.asciidoc[] + +[float] +=== Compatibility + +This module requires the {plugins}/ingest-geoip.html[ingest-geoip] +Elasticsearch plugin. + +include::../include/running-modules.asciidoc[] + +[float] +=== Example dashboard + +This module comes with a sample dashboard: + +[role="screenshot"] +image::./images/kibana-cisco-asa.png[] + +include::../include/configuring-intro.asciidoc[] + +The module is by default configured to run via syslog on port 9001. However +it can also be configured to read from a file path. See the following example. + +["source","yaml",subs="attributes"] +----- +- module: cisco + asa: + enabled: true + var.paths: ["/var/log/cisco-asa.log"] + var.input: "file" +----- + +:fileset_ex: asa + +include::../include/config-option-intro.asciidoc[] + +[float] +==== `asa` fileset settings + +Example config: + +[source,yaml] +---- + asa: + var.log_level: 5 +---- + +include::../include/var-paths.asciidoc[] + +*`var.log_level`*:: + +An integer between 1 and 7 that allows to filter messages based on the +severity level. The different severity levels supported by the Cisco ASA are: + +[width="30%",cols="^1,2",options="header"] +|=========================== +| log_level | severity +| 1 | Alert +| 2 | Critical +| 3 | Error +| 4 | Warning +| 5 | Notification +| 6 | Informational +| 7 | Debugging +|=========================== + +A value of 7 (default) will not filter any messages. A lower value will drop +any messages with a severity level higher than the specified value. For +example, `var.log_level: 3` will allow messages of level 1 (Alert), 2 (Critical) +and 3 (Error). All other messages will be dropped. + +:has-dashboards!: + +:fileset_ex!: + +:modulename!: + + +[float] +=== Fields + +For a description of each field in the module, see the +<> section. + diff --git a/filebeat/docs/modules_list.asciidoc b/filebeat/docs/modules_list.asciidoc index f7e808fddab..79320965fd2 100644 --- a/filebeat/docs/modules_list.asciidoc +++ b/filebeat/docs/modules_list.asciidoc @@ -5,6 +5,7 @@ This file is generated! See scripts/docs_collector.py * <> * <> * <> + * <> * <> * <> * <> @@ -34,6 +35,7 @@ This file is generated! See scripts/docs_collector.py include::modules-overview.asciidoc[] include::modules/apache.asciidoc[] include::modules/auditd.asciidoc[] +include::modules/cisco.asciidoc[] include::modules/coredns.asciidoc[] include::modules/elasticsearch.asciidoc[] include::modules/haproxy.asciidoc[] diff --git a/x-pack/filebeat/filebeat.reference.yml b/x-pack/filebeat/filebeat.reference.yml index 28cafb25cd2..484c46b2b7a 100644 --- a/x-pack/filebeat/filebeat.reference.yml +++ b/x-pack/filebeat/filebeat.reference.yml @@ -82,6 +82,23 @@ filebeat.modules: # can be added under this section. #input: +#-------------------------------- Cisco Module -------------------------------- +- module: cisco + asa: + enabled: true + + # Set which input to use between syslog (default) or file. + #var.input: + + # Set custom paths for the log files. If left empty, + # Filebeat will choose the paths depending on your OS. + #var.paths: + + # Set the log level from 1 (alerts only) to 7 (include all messages). + # Messages with a log level higher than the specified will be dropped. + # See https://www.cisco.com/c/en/us/td/docs/security/asa/syslog/b_syslog/syslogs-sev-level.html + #var.log_level: 7 + #------------------------------- Coredns Module ------------------------------- - module: coredns # Fileset for native deployment diff --git a/x-pack/filebeat/include/list.go b/x-pack/filebeat/include/list.go index b3df5fd1519..2541405ea0d 100644 --- a/x-pack/filebeat/include/list.go +++ b/x-pack/filebeat/include/list.go @@ -9,6 +9,7 @@ package include import ( // Import packages that need to register themselves. _ "github.com/elastic/beats/x-pack/filebeat/input/netflow" + _ "github.com/elastic/beats/x-pack/filebeat/module/cisco" _ "github.com/elastic/beats/x-pack/filebeat/module/coredns" _ "github.com/elastic/beats/x-pack/filebeat/module/iptables" _ "github.com/elastic/beats/x-pack/filebeat/module/netflow" diff --git a/x-pack/filebeat/module/cisco/README.md b/x-pack/filebeat/module/cisco/README.md new file mode 100644 index 00000000000..47f420f83ec --- /dev/null +++ b/x-pack/filebeat/module/cisco/README.md @@ -0,0 +1,6 @@ +# Cisco module + +## Caveats + +* Module is to be considered _beta_. + diff --git a/x-pack/filebeat/module/cisco/_meta/config.yml b/x-pack/filebeat/module/cisco/_meta/config.yml new file mode 100644 index 00000000000..f6e53cb0d64 --- /dev/null +++ b/x-pack/filebeat/module/cisco/_meta/config.yml @@ -0,0 +1,15 @@ +- module: cisco + asa: + enabled: true + + # Set which input to use between syslog (default) or file. + #var.input: + + # Set custom paths for the log files. If left empty, + # Filebeat will choose the paths depending on your OS. + #var.paths: + + # Set the log level from 1 (alerts only) to 7 (include all messages). + # Messages with a log level higher than the specified will be dropped. + # See https://www.cisco.com/c/en/us/td/docs/security/asa/syslog/b_syslog/syslogs-sev-level.html + #var.log_level: 7 diff --git a/x-pack/filebeat/module/cisco/_meta/docs.asciidoc b/x-pack/filebeat/module/cisco/_meta/docs.asciidoc new file mode 100644 index 00000000000..2c04b0c3a46 --- /dev/null +++ b/x-pack/filebeat/module/cisco/_meta/docs.asciidoc @@ -0,0 +1,90 @@ +[role="xpack"] + +:modulename: cisco +:has-dashboards: true + +== Cisco module + +This is a module for Cisco network device's logs. Currently supports the `asa` +fileset for Cisco ASA firewall logs received over syslog or read from a file. + +Cisco ASA devices also support exporting flow records using NetFlow, which is +supported by the {filebeat-ref}/filebeat-module-netflow.html[netflow module] in +{beatname_uc}. + +include::../include/what-happens.asciidoc[] + +[float] +=== Compatibility + +This module requires the {plugins}/ingest-geoip.html[ingest-geoip] +Elasticsearch plugin. + +include::../include/running-modules.asciidoc[] + +[float] +=== Example dashboard + +This module comes with a sample dashboard: + +[role="screenshot"] +image::./images/kibana-cisco-asa.png[] + +include::../include/configuring-intro.asciidoc[] + +The module is by default configured to run via syslog on port 9001. However +it can also be configured to read from a file path. See the following example. + +["source","yaml",subs="attributes"] +----- +- module: cisco + asa: + enabled: true + var.paths: ["/var/log/cisco-asa.log"] + var.input: "file" +----- + +:fileset_ex: asa + +include::../include/config-option-intro.asciidoc[] + +[float] +==== `asa` fileset settings + +Example config: + +[source,yaml] +---- + asa: + var.log_level: 5 +---- + +include::../include/var-paths.asciidoc[] + +*`var.log_level`*:: + +An integer between 1 and 7 that allows to filter messages based on the +severity level. The different severity levels supported by the Cisco ASA are: + +[width="30%",cols="^1,2",options="header"] +|=========================== +| log_level | severity +| 1 | Alert +| 2 | Critical +| 3 | Error +| 4 | Warning +| 5 | Notification +| 6 | Informational +| 7 | Debugging +|=========================== + +A value of 7 (default) will not filter any messages. A lower value will drop +any messages with a severity level higher than the specified value. For +example, `var.log_level: 3` will allow messages of level 1 (Alert), 2 (Critical) +and 3 (Error). All other messages will be dropped. + +:has-dashboards!: + +:fileset_ex!: + +:modulename!: diff --git a/x-pack/filebeat/module/cisco/_meta/fields.yml b/x-pack/filebeat/module/cisco/_meta/fields.yml new file mode 100644 index 00000000000..8209de0cd6f --- /dev/null +++ b/x-pack/filebeat/module/cisco/_meta/fields.yml @@ -0,0 +1,10 @@ +- key: cisco + title: Cisco + description: > + Module for handling Cisco network device logs. + fields: + - name: cisco + type: group + description: > + Fields from Cisco logs. + fields: diff --git a/x-pack/filebeat/module/cisco/_meta/images/kibana-cisco-asa.png b/x-pack/filebeat/module/cisco/_meta/images/kibana-cisco-asa.png new file mode 100644 index 0000000000000000000000000000000000000000..ad51be22046cfe7a3c5f7f2a703aa15f24ec844a GIT binary patch literal 813426 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%0Dm_WgY@f8O>9OCPv`zyo`qy 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%0D~gsQvWacp`2fX7RAy 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

VC(~Wk}*sj{oYoO>%PA;~k!E#ln zlXK$P!E13e>6Uo*$LzhCZgLvp>G&3XYX=QVS%CnKLEMuk&y-XD&f9N{?%&Pr5$?&& zU7MkvU-hIPwx}P17K7Vn zdhzAMj_J1v^uWrV9XZQG8glV3M!o&cb8oNEUm-A8w4r%Fk=djTZAp7xPo=9#TlF*F zCP>Ws-^dvdJLqzrdw^?2A7leKqseq)?u z0v1E=u!!$Y{Zz-j?~fzKsp-y`hV-WkS7WH}jCMU}4l$#F=3$4w;H~pdl|=wp&htwP zRxWUG$+Yv&k%|(Qd^_2mH?V%E1MU2kdF?KncZFEj!@}8S~(*@ek-H6Xz_8nyb~#VeE~mcE6moVa$r+` ztBwX&;Y><-@gTi8p>%o>$KrPFZu-8`{y{3fIp3|3&Ewckjd6~jz3(`|n&OpjRyK8z}L%+u}iAb2ZMZ%?ppnnlY}D{9X>cLw^hFt>BASNIKlU?3}zzLdz}_5 zJr2iKwxww>=KkGuY|YHEk!Q}HtwVb3U(|`Ud=s5rzH+QL$Y;ic<7$@CZ*b5y44%dR z<3Ieimf|`*#-Tv&(mna(shTl$2e4(s>dj=vswC4Ofgz7&r`q=4XBn?OekJ1}vJL!} z*J>DB3$!Q4;&AjfW|jwFrN;-yNdM(%99s@8dd>Qw?NUxdzL4d{-r4uMZ{NPMwY_7% z0rDnEIRc-5{>A^#-n+%Y2LQ+>Km4?V*$%$#oZs5P&=@B&W^ zLPDSh1hj?`gTw=m3_Q?-5C{Q-V8jC;btBCK%xJoM&gpaMs#7X>k6>CMTSRvlAsXC>_0nQQQks0L^zPz*m zPm^G+K9O~V$K`VuEaE7CrT;t+OG|zwah*4;j~?0uv;A&V&V`ugUzf6*_$h0KVf8w7 z>V*5}M^Z$&k_n{=rFC+0T5T{_v1k(tbdUG4K*2rN@I6eYj~qGd{*%t5_Usf-P;wTo za9G56WDFfYcFaoW#S52AOZpmC8Uka5X-=ll@CU9WYAd2eb+TF>Q!H8lo4moR!f{fX zIFoo(iyDVz{eiN|J;gu!`A5cwC-n4i+(jeCh5jqV^;qNM6CMkUlQ+e8pbN_8rLV3? zQNQH{Vm2=JX}qIU6VJHed^p!@?UNslE;D&BEHzLz`a1JAi$g3xpoAm;uy{n7yXv$Q zJk*6_VR*b}0eoNzQtdQGn`LvYr0p`MAegxe?g)I6%hNon|W;iNv$AHDGfmG=L-yn5Hr4`xv? zj7EyIu%V0w>mkz;7k_oKxQ4t83oeIWMZ_GFi@uW?mla8GMnA9_gZvm)|BwtP< z{{4$h5IKtVXeS5UR8)tpV3mtnc&|iDtBaj0QhdQAc_ow+f zf0cFZDhK7~`iEEenTvw!nD7_4C^njLW~B6`MhVUNzL0h3GU$w8k63})2NG}dSn0_BTw zrZHBJ-*UVV7j=lS-4)lxr+RQTX$g`6@+=3Zc{OEWf)nkysvtuTuBhNR zs1>2%$9hkh;Pn~$>RHFf)K8PatNZ!XQgJrCvB24z1A?yb&J2`?c zTg3lVE`C!BXc3FF+QCsDLCAfmen+2Vp@n|J(T-8|O%_z>V`Ts~LiXElzgZz9qiAB5 z``Kr)Q;I^3Fi6OGi#)>u@$_BJLE?M|PpAmg2;zeRLNoIoM( zVt@x>`c94;=*2EnT!V8@*Xq3S%F1q*k+}xTA&EC0|BO9$VOTtXmR$iFA+~WoFvH1{ zCtM%ejO&ZoiN>K6X}J&d?AbH(cy#6+_6?o6O6Z|>_1=H)9h-;K{+vlfiP}w?i+orOAB` z?!eN)_qD6sIfsHLXAtNW@<6;JF6DXRq70fpI%EZC;kifUP36z91suK-vLJI)%)g~P zKM~1xznn78) zmw9onWdfN7Ec06EZQv5u!_k8pJdpS6bLv32(98SNo zp7eztR_c)Tq^#<3ZWnMQ{eZo0B$Qs8S?D(k0VX@_N{-1v5ehGNnsNQkUG2_s{)aOV z?Nv|U4hwW_1|et5VcKbeIxNq(DGp}B)dWA)itQ8i8=F*#jwrktimsopns4G@#0Z8s z3Zu_6Sqtp9B*fVo%s#yvT$h@@#yE+cYdH?l4mLuGO~>e$3{=I_KL{xOx76oYfu$dA z-n7#TB{)#SjEnR!*^n&+i6jyI8Pijg3!X7yL$F5SfvzmJP&O759%{!4c14vJx zIAX_rV=4I*%lGS+08SkQSf*eB=je=>ltvfRT5{E85})~^W%V*IjLihM)2ekC%?g5x0#;1<`#RM zbU$%YO*ERf1Si^?_9S0}QFTHgj$K^fdskS|m@c!k%V$sk3_>Iy&V5cvNgbC!j!7ox zY7x}gMM7as#Wefs1lO#K_uILGq;U=71r(`h-7rIC10s(6un=69qgBMO?Wf1+ z60v_1>ycH!xg-6L#S6v@{g(35)_8PgETNoCOk7oa-S-Y9bL82xr!^+n{bffz`gFqN z8#+CZSv`V0^MS2`JO{D(sWDV1Mk%8&&=1Iyn z+L;}ZgESnSQBHMcqeD@}1p2=CN0=zfGqjFMoIZWR$}aHuuvoz24COz6{(=*1%Mp#b)Y9o|Oo|0Uj1E@Jq%Lbi6!%RVLS8+7tP&=^kl3mM;e<^DT?% zERJE#wO|n0IO<86C`a%}$rhULABmRC`;wd$A11|~M~ZnH_~a#c4$^nmoJD+FR&aW? zo4Pmkg3~w_(&cDId7{;Hn&bI7KI?Q$lFcRnNo;EwjfU zgY<9;LW_Pqd8#h2@B$~>g=a!nd6g&%uK1?4LCAk5bpFKwZ54+S(UJWDO0>XHyxx1Wn2h10fQtNm*0cnl6FwsFr4Ij-8iXBkf2vj%0XDTo@%?g^G1$d z9_pE$z8y!$WM=|%)Vp$%zF89i3MuCzx5)&El`xdvTk>#tORnc1-n~=ZxhZqLx}PMx zg}&*QFLXr(CaTj@;S7uZ+XNCUHL z4BIe0X@gI4082&lRYiw4joK_Z(_-SxRW8@%NtsD&!+Kc`NNMn*iWGc=O9BfaHsuzP znKZA+p%9*McS~2!`hO#uJN02UDF_F7I)Qgf@l!`Td1CGo&l^VzUtZg!IMMQlOKa{ zntlUlU=#PcEdpZvO}NX&*|j*AFs1#0_ZTf>~6jF<{J_)*80pI3N$-i2&m;u-k_6dqb8mj6eFA-@yxN-n1B4$Sve$aSKHlA--wT#Q-SMkS}-1 zFm0wg0GoaTEwfFFEZ;q@AO%oBu;RHZD;(wpJfgq%?%Qq$SjC+?cjQd$)9Nc-^MtZX z+n+go$_~MhU81d6=qSbYUIA%8yz<_Ve+aBwGZCa9LvVWQ=e7lSjP>O<)=UUuzKgMH_cm;zKg+!QWXo+ zPrYc}#mf^8b341X$gj|byz~gJA!3Z*)~3zGja#Jy&ThfI* zgy@+8t5JA~;1wFPlQ>l{XI89-b!R%wAx)U9_A-ajh`D)U4#5Zw?r-n)91WOdbzxh+7Y2L?cetHbd zX}1vP4V>9~bpKBEbmvHQ^EM`tx^GdtCal^Hn`odFjN!37XwwFy#mgzX44CDxdx}6X ztUXs20)NA^-t`8DU@H}}MP9?YsiU|v$pVfTuWXSSR z7M}4U%{i@1lksHX8BzKpu7wsWXa1aQ)@MS}N}E(&H3!PFEmmv0eO`>;IVR zqyyW}17nljS)5WG92@gBLoC{0g+TwM?G|ct#t#dePOGt}ZZa?|1Z!Z%SBOBV? z7yK-`u!zOZE@xvokI&97fx09=>nbbnd?l6^jag88^jH>CcOKe5%SO?6wL>bi$dji} zpO9De-afMJULS^0C`Ds#)SUwcZ)WkB~k49!p zBk#a>?n~DRM^$Sz?;~e0-Xq;0xZqiCT;?s?sf1NNleP@YjRVGV^A5}RDsWYxqH4YV zI|yb;uSVfbo9Q)q@QB<@)@p55Z%Y%n0-GN(r}}$;_dl%umw)(=s=xnV|AXr9{+<88 zCYadY|Jk4YsQT~z`~TSjKs#Um?_e|(4uxlpganrTW5BmMJ3J8+{y8|dG zTo6xrxzluHvvwbKW@OuTo&VBh>&Fl6m7s_RMb7_)!U4`Q&_)cRzW!b$AdXAt9m+9L zq*>Hs4WdcghBYvrgmq-5(W|Ch!{B6Gk&oVpAj(e8%uQV*^5k*#MB@T4r3d!z*2VY7 zJ$dEM0p%^*6nbO&ix*kWRWq)vEGiv}m@>bBdD6s6x09yC0Yx z;U7=k+|i5!vqJ~=RC~1Yo=lN=c4^rCI(g)PcWvm884#?w0^_E3P*I3?%V7%rXsh}T z=WIP@NlxcbK9pMe6%(8om{zu91=~D8@uW|ZCtoPX5@1kvxm&s`&{z2o==of`g_mgh zJ8&pEJe5$w^$Y#!!r8JUixma(C~(ZUkVLnT4?S7#dU#f$?tn2DKSyeY^6}pKogc zl4A|~T)z1{kGk9zEm;UaHj45O!us9&m8O8tbZfz8f9=>2`0(4?ntSeP!RFEZd*0oA zUk=%@JYaskCKF%!+=wjDhP79YKllTVBfq&J+Px8+}`3K=!%KJ8K%EXy$aC0sjXI+dj7M_#sMf=5k=HnkyOnEmV8ZghT z7ti9@1Mda~#UYbC(WV2*uw1chX}*d76c*9p>#=a2{eo}$TAO!J4{(DKylvb== z{(;kSOOd~XyP7ylIt{}~IxqCT3{@pWgc-?~|a*NP2I%mgHlWhtDw zOvLMxAr-SGuI?NvM4uTP9jX!P=)sCF2Q0WrjVjbjDMaBJpn_3`JIY>otd_v@Svrh3!? zf$gE3IFXMPaKci`jM91dz^EsL_D-pR6@MrTeFP_CD7)air(KwB+M!J+Gqe-CF)&NU z9upPHDrG{kM0r42M<6*Yv#Q-YWtuF(lzg1S`kP`pS1h_x(OL? z;G;Ya@B}^ZE-YQ*^+JD{h}dO@U){d@&^w}Xwusk~WF^3t{qZK1tj68hlQ??Bt&bX}-`KI$bI7rYOc zFXV)3yBB_Zj#qft(WQ?8n+2vU2l!SlytF`yqn)#7zbA!voAE6KpYerzyIfQFA?t9lJm9COiJQf4|x(;gjos?$qb* zj%_+@zLa&3Z;lB>qtc(*4aVCmXDaQ8OZ3W}D9&H9BgLX#!WdRJc3$!tG1_J+0j2z? zEY-%xCwwfYjgM{t-@J1Drbf|A?JRHablL=M!TmrAKTdwQI~K(qx_uW`mjW#E;+&AS z;`j@5ga)nWlbgDR>b9=f;%c8WXHMCKp9Laz^tt+n@Wxp@6thTz!>9g*7TOQ1CSbD= zitNJp4i4h%zf^yy?>+V5Ct7G{XB9L34I7_TI5%TXX8bcoOaqAWnga3$*EXT-V&aT{ zlklPqAFkZil#OE_m}29Q42wY)I8crkGY;WP$SbxwQwvi&<}$1nZ^>@}{p_(8_ozEE zG$R}Rhs90ai2=m7-h(gaEYnNxO5V~XgJit()pICypne$#+`jp&z$p|xoGLv;%=TNu;gg(hX3Ph0rm_TR0vOL4!ntq;tQ@?=Pz5eES(SmOQG~E*}d>9&% zgV5~o22j#Vm{Kf>5FA3$rTz3Wb4A|Hzf5GTm@#4f&ENfDbyo-Dft{vKotf&FR<4C- zjn38qhkSVC!b>#OL#Uu!y~>23iqI0}uZgL&bXY>lyE6^poj)7hT(L) zXzhEBYx*^vQITam+c*O*?VyCvPe@&kKAb^662JgB!%I56<+2(#D`vvkE7Mq&XV;Py zdNT_O_lg0R^AEMkze~=AQm9=HNa_epF_C5WVj&aY9&NJz%fV{0nxP_GQU1e64vVoy zVb;rx_<%e%UyuWb>yx@mQacWe4Fs)8nKq&%KhUb?q|QiB$)p@17KU|I3h|!NQF&I} z>vL+D7jvF^ROVUWAkAXwPrE@2J_`lt$1XDW-C=%6Ab*LA=PUjhoJM zc)uLrjP^_?fi)+Ac}B`DlM@UV;SwR{z62lmNC?YnM;Ms?1D{VHa~2%;d6fft?N&c! zhnIBD1R{qXuW2R$;bgZPQ@K#EfggCt;&H|JR4~ubxN}+f&A_jjzl!GH^dUm@rHH2# z$-MjGH1NUI$uknJzy%)(1bz?4sWK?IJX-uzXE9wCg|n_pAD>zPXI|A{oT8LT zgsGTd4aEsu^WeIk;8tY_mJ9c@KhQ)c*Q zD%LUXd+B(hov-Ui1&Y*(L;EfCC#}kq)Dw@qKmUu5w99-^rm|d%6xJ+VaLc^kJujaE zj8^#X9Vuz-^s@-+dvaxcf#twMEy$deqPs_n#GGGc&f$adMBB6I!to&%-j5zV;(o^h zN(P*5a;N?1?(JfMYkfQi9~r}(q-EZ3<2QYKVq!u(CGMAHP9;1OzxndZYt`mJ!7hD{4VDfa4Q?Lie;`cjxyxjoO4TW?x}G!vVQ!| zx)^Q%n2!@|OxuMFVmx)F`*HTerCw+>l-YBielG?mpxbhfb;x?|9EKD4(k_A)w3m=4 zeO*sgrmqY|nV=Vi%{kw&kO}J0D7+RvrRkc$ijRb3j1>%+$wGm~<($ty`ak~9>i7QU z?^OTS|NX}jMDKVK#>?9u|M5Sr{>oqZ7n<_}B|OT>>IfBE&+3|BAyPmj)H3J=)E0$>?OUf^aYDzCE0xS&^f04~cn2&YQ4e4JJW)u2K|2Pm)Q0QVrA#P!va z293>iqD&*|>CT}FmGvY(SERt{&cw?)Bu)$0iZAI0Oy~st+yNdorh9VtpXW%jBWsmzu}!*8-dNW&agr{>l5lEVlp*Oi6sHPop3%Xl7FExJ z2GG{LNQIb>v&D}G@W!Dy1vmI{Utt@^W5!8+Y9i1N={u9^r#Q;Nn>T0L>3gdg%tLh- zG-rf&?%Gj3l#ut?XXj4xts@cem@nnzhaD4?Y36yH-*9abdEq|@y*;Iw9TJ_F!#l2&4J<-}f88?gzkGSZ zWrEIFq#Toi!7dHL>JITBc9d|WbzP>WoY`Z{V>;a~W0tl2c6$h}16@^vo3ThAZwGig zbokufxrysC$h&ep> zU!OUBvUbL{Msw{GpXG-Tn@IUXA#{0(zOpuCXyWG0p-j?s$T(gx54Pp*p>t@d z(=0Tfl{nSI;roemklZtW4qd8#(W@ubU7Xw#mUTIYk}qk*+`OQEp}C1M?D<1=oTr=g zP2EV35gLWJr??53Vo@^z0z>CwUmB#zRcCI0*-TX(7V_1 z^^>3eMfDH=r~kH7;SE@!P+36&pMq5&o00VhLRlymgoQX6l3@Hsge}!ID(pJw8xLtT zav5?$^aR#&iJinG{c>Fq|wblyzAw&URh0p5UY|?X%ZOTjGY{WT3dy)kI3T zrol4kr{1jpGG*0OL=WZNc8{)^WLkyb%Sz-m zDX;hDbXCsQ?bXS%Z&)y8az_ZI-Fd#RRqkurIhnY8S%T%xYIL6*&PZVd7m6Z%G{;He zTIuiJh#d}@vRs!5JXct8U+I>O>$LNuGr0;V&^WE4tr3Rt#JNqY%_zQ@O=CWf;}YVj zPc|FR9^-;RoImyRI?)`(Wlkns)3?LX7eYE7cA+u(aAbiZvt7FY2*10e7~?Jcrp|}) zo<96i3k}pU@eJY_;KrN=rd@{QMeq#bN_x32E-wgrbs@jUwqTNe9!`yfhNrY}=GZnZ zx^UJLu4&kT)Ad*gXAPHf5)voR@UVIHd=;GHT`rSo*GF05F^#}K3@7pGCnY~NZImbL zTE?LOq7dDc$^C8d3l_ZgNFm}HHhb?Btd$Ow|!20dWh6y zaevP~&$+*^REE(#asO!S&c=Mibur^IrDnnHh!*7FJzIR7rLuFK^XD&CJAQq;9rn?W zQMz--W}&mdDz+A$WQwivNF7*Y-Jo%KP{$w;RMicO@X}|LFG$IuJ>NKc+Piz3L@O-R zkUj|HVIc#!yCmd~$$tV$an{v|ia)%kPn;Dz7A#pbn-JYlqTbW>QeAbRtb^bcpuc-u zfC4C?v<=o4D5Vdjq}sYn3q#Ns3y2plw&)YQp8mqP;A$bx!_!YmgVn-^AAan`qz}IL zZna+5Qz5gk$cdRWiq9|W&Tf*JK8fk~6Yc0iFBYXxZl|=MeqjH89kqJ9ntjNQ>V)sF z#!(j58032$0bc?ryth=IyBhDBEj`zBr4+YXu#kcB>+z`eN{g&vWrGi3^~PAI-_Xuk zA8~(8vM(izZ15FbF5%2Wj-T6`3Rl!c0HeU=@2OoEOib|oLTmAKBJz{ zinw7oiSN=c66U;}{P ztaf!r$+=Kb^|a=8>HPDze(!gyzx0FOh*jk}#Z8@=`1k((zf=A85C2;AxBrcQ-77C$ znJEthik-{4bd(3;>zng&SxNG{66B#^MacI|R)ekrVE}-u44IGbh#CZUc{sr}45#A< z)@3lxh3eAAnRU+kzApNKH_m-L^K~+oCFo;%k3zvDMVYA2N(4_znxJ3^%Lx<%<%Jbv zzN23RLmLJUdUHRdJqAnAqBi|KX;|+5ILgk>2vq7K3$)_H4kOp@z^D<_xq4@dOb0V; zltPFyMjcRoM>O9&OEn2|EOn zH}7h}Y}S2ZulPaiZq6&ovR|N#vimtcepP~#uiR)&rtL>RvaBj7BP0&8Q7tG7$^t&z|k_!u#i+e__8pT>nI#*AbGx z(5@L6Ka>+W2R;GM;Aq9ElP6uSVY~wvoXzFhLl_1MZ>c2H=I|46AmcsO-2bSS0}?;q zjA_!eL(W-U^LECOXV82`nl5=h^DY;s;R<#c66QiUhm~ikby+MR_fi81IIrog8RT%UmBs^9qa52}+|c^MXuIq!G<+F$Loi;W}Qa`P@X-)iApEx5z#*~VEi7=(L1b7B(gCZb4U;=ENWv6zmm zS*z7Fwf)PN+!x!oHv`xu1FH?;{G8oAedvW#$;fim(z;OA`ZGx6zdIy!+R3A>i-B?J=BLSQ+L zGCyONU6-jFH*J>8jt_zN5n`OB*VqyUaFG}AIz4`6!m26aps(S=N3HDWcUk793>^=)1ku6*<${;o!@5Qb0hoS zGW3 z9IUY*in8LX=hSEE-$O6TJ3jNcu3AxrPVp0vuYg;Nw12^oz{%%l=)C zRjd&?!)f8$t^Yt3Fqz$ZYI&mE%a50ne#9A|oXdxwXl5z=F**?`H#>b~@X%VIe4;V$*1$4|7gtaoMKBz^mL31hi&s|9yhc~%SOE5nWE z7MOndsvx_tGD?hHk2EGssmRkyu!yIv>X850fBGLUB4s8CM#Kaut2XL0 zFXZG|uD+0nvc@+ZZhogDo+QhS1NQ60nRRL7jQ6irmq9dG4V<(W{|FYOWFEFdPJvh@ z+bh8YMfd6KbTxD9s-H)89IrNR-leopo#*TLV@0XHQ!V?|Qp&-=D+eF+UhWtggcn*) z-@d06?dKNm7^hF9bfM@YF!8-rPIN-~jUDSb??#4_he`7`DZTgZ-jVs?SJjs~3$s_I zm?N7Hd2(Or@(!wp-wPRwAUK9WutbTpCrtI5uP#mc-q3SzzM;uh^--EnKKaa(87r>+ zK^~K((BI!WXJ=OkQS7wxp$EcF+!OUX+i1Hc=m$8wVrK>a0eu2c3%URR3pkVmPo3*@ zK3&DFW_0EU446|#kU+*mjjMj?ujFBa#-Xw-nNI=Oe3QZ{l>Lw2D}i&Va90~=G*w+; z3a7AqoH2*cCWJxs>%!>_YO`2z#%WaezMy|1NVQ=({WAVgwg*}a!X%jSjg`aB?dz(W zTf{G)?3AF!*k+FV!n$Iiucq(p({UW*{#NmlAYH}+7ab^ zF;225A3N5Q+HpHBbH#^R=wks7oH(e$yfi$k<1u~2M-6;U)cR10aAt%ei5VS>gj3?1 zEKqITv8&px^R;{TXi-4U`&jVmDjT@qx6mA(B62J$01MhdPZkeo3(obj3x>DXudYq| zh!61Y-j`Q;{=w4J&Y0w$I()#_zyM=80sQnocDz}@9Z}nr{B1cfUo{V9dZ@OT(NPt~ z2MYu2YU6AXvvYpqa{?mJ-{Ge$RP2<@VDn_xGr%5}2 z3x5Of2*wj~0FG8UPDaSG(4E|`3IJssuiNqEoJBl!N;qZScD}{Nb>UoW-lgCK4|SpJ zgr($NZh2tF=9>l00(<*HRzn1)%qk{-Om*I6obyG@s{I8Ag$L&v9VTW+ zDyf$QA>Ki@+^GyYPA{312x66erUArL7ru$JE?u`u83*WcrO|Npj`BDZIO9c}hvIn{ z+%>YvMo`KQupmys%er8*p7jI|dDH%VsW_E2>e5xu1#r@l`8Nz_n|_p+K$!_B2m;{W z-tpbAshYg>|5TTL`iIrrgR6?u#ol|)RcC+jZ&$m=zAqZ2^5E>>%0CDk2v;bf2$#zZ ztXM)u%n2RTf4L3^$6N@ZT*tuVgHXecBZ31o<{UCtb>MCBmdth7;b55HQFcUSI(l%g zO}l>a@n_YipPrWhxz47AtZ3KG7WnidS`h&*OnzxsCOa<>EVp9Hha%3^LkvkK5u8SG zKK8O!*KvGJ5v7>BPW z4t&cUXYdPPQ?YqCGY(w(=U&*bYQVhI##!=4<%Lf4 zLxgg!szTY=wgP?%=o`1C#9q?**v(p~dG`EiwQ0-V>g;d*L3QKW)#}EK&a=N{5llj; zcmRQGSP<6nriuc|`C6{anb28&yq8knJyQ4(@NY^XgPNR&$CMLVdo30q$9erZ7ptQ4PJS_r+Pb9poJ1k1T$>H~bPJKCnB4xFFI zEEOKGn{%}~FAWcbAM%NE;Xzw`MMCTi?cP3+GS0YVh$w;iD4y8y9M9q!ZB*8$S8ged z!iB=mcxQnO9^0L^mn)x0$3no279CI!xC{1{c66`k*acPq@G=%iD4XRTjUzZM{2E?O z`*=_%z(szOYff~#Hg!vPnBVncA?J@-Xr``TM__!ivwlt9u5U`=rySu?8xvAl<)~25 zfV%U|^+1@cVxGQDi!&mn+mA&H@^kA0RzS>SC^);ci2LRnrzJ*6X;$9_AAN^8leWwG z7kSExvO7aJC1@AM#g|$P#@Yded9iKY4e{Ii7FyDOIWK!n&b+wyn?ScmvMwGprjLsr13+}}d%a59cF`}qze1w{^waw; zoM39xFY!ew)HW&u=d8AD-crrY{G|H$pZq7){=H+>+i(4jR(79N7tjBw`sn}tgX%Ya z?;liKb{tXq!sS{5`4)ZOlecID8?G=I8L)$}nCfsQ5XUF`GzlY2(?_}LCj*LNS0F8c zZv;ekd@;)zQF>s|yH1}x<}+khv_kunpZ}sdsI#+UI!_l09eLMVpiE&GL4HbJY1x%M zs4J4#jp(T}Mz`oc(1+Dk6lXjnGvUB|@j#8B%`pkQp7#2DOeUn!|9OFT?DEcReketD z&btL(Y}gR}nX&_mx^I`V%fuDDqJL7PANO$9imR}(3migdpavghhHt^Y%87#%j7Klr zG4jMl%x7zU!qsn#F|jb%o6{2IQOW~xiULRS8(ca_Nr56O>Y;e~3lAjRIv(H3|VlIzhCXLJ+Rob;WmjJ3Z{mAcyJH@%YiPIIQZGx)4 z4i9Eo2jf>{9CwI0pbw{c+yI<|>RI3f4RwJp@sGmesF8ZcPt~lcC-|W%{8$;=_2dOK z&|mri<-94S?VR#QQh2<`ChL~_YaeM$>V^pI_C20^RNa@LyK&Q&YJ(JgFF44F7`wY0w0j62^LRsM zP}{IjMTO}zDi^w>=! z+pL6ACc;{Ie9fRNZWF$j6LNg;4gAfUH+WYH@5SCJl>)d-(90=~^H3HnlDOK3`G323 z^w{2=Ry^UU^cSv&;y8*(YzKk#fwfwUK(XDTMTVruPAM7$;IWvoZR0vGuSor zhvLfbq=_@;9}si|@G!o~2fQ@n?MV77@e1YflTSYP0vTubPsqxG;|E+XMu1QinU2++ZP47uf;ulq0k*H532*@9BL-7w4Tp2FU^Qw(tn=_2Uinq z)c8Vk%3xgTJUIun=k1)&;5RXEv#?XoiGoB<^R~oUclr`8xJtO5w`y6RJ_`=xsSD-0 z2noGC=ia0V^LCUr>Ok6zTRP5q4mBR?)r}MV!hERJa6e( zt5JAu4kS1&S2$VbERzUgGj`%(g`I{LwS_kzZKOqoZ$|^=}sni4NgI3 z05zSgzzJL{9HiGLaq6*G7v<+JVoW?qlW|!W%43`=Y!7FzE*7qb;B-9rI&ntFPq-y* zhv6*i0zI>yJaQFL4DzVY#Hate&63{v;D^3W1Ce*@)?L+~{?q@hx_;r0s?)#mx4-oY zFYWLC&DeT{fWrFX1w%Gyx>Qi~85BPlz|*HMwcE=D>Jl)tf^LO&hfJJzKd3(W^z&+5 zS8$wr=V@aCrYhKM5U;OXJkMDub~z9N&73I`gJ>CnKFpaJgc{&wKoG}_k#l^k($cRY z#AJloTkl=w3hLl79tT{Qz**tYkAzAiy)C4B}hP7kM2g-brc9ur-FsLk&u}Iey_`gp7m#CC-;M&KygLleDIR zvc?<${|o#LZ&cnk&IWD^XTuv+&n}!Qoa>T&st+e+P`-vA*L6vr(TP)(G;cKAetrxs zsAuA&o+bULC%;X<(r+oX`Hbug_mCxx8(=U%#BpgM9f0!S*`UFKA$6WXtctg8(@TrHhPvwAU z)>o0a@2D;2wBs@v_=wl%(V3`t% z_5$D?4PVMSVQGS5YgtCL1m1R;bnem){;nM|3;r6ET?&b%5snDCFP$rG4(!`i?brEA z+OZv|3+2z49DAgru9!08E90T8niyAiWOB@yLkS}!E&QY7cfKF=El@Oz`UdT=R`V0P zgo9H5^1X+~8Bk=o8VtUNr4?2pER2kaIJ0=wfh!HDwUs@@)N~rC+q?ZKg>j z70zB=8o8&dE-H`bSj7#($=pmmfP<`8)`h$bR_aKaGBna9Jco=Ct)l5STK`K{>s2`f zup2TX+Aous)d-V1vtxp&iV!mxoH~yR?0+f{w1EV1Rwq^^Ab2(cl}^S8j1Y#RM&wJP zC`tqkVh{^a$>+QfTff~YYFZ&&k(a=8iPN1CfC`;BX$;5Hh&`N{p1KHPH%=NwVXYkK z(1=-2aDt04ALoF&ICZ2?oK(;BZR(k2?Z!EnwgYfBa1l-^Zzv2@3-hFHBN8AU-O#Gw zXthqJ%`bIz0AcgUc6sOAUd=wZCW86ZxBAZ(DQh@VVUWH`;B4Bf1W5Tn!oj%i(8F;U zUP{f>)wgimVIg(>rfT1TgVmHASxsKOT8$k#>`8+iOiYe3BV#A|=%Ibpe%&|99k?Dq zuTU_r)-!hNF$O5kV{wj;FlaJGAZAiKdbD=zVqOvV>0&mAFofe8yr15dStGkfw81v* z%n)8^@#T)*Z`=bCS2o4oM(xMkjU z9OW`E0;oa*x4@Zj&BKz0TJ7!PQ(2cjoaT-2zrdm5HaOe$Y}duSvF20E`dv7K4v?Wo zBlBbBbA5%Md|A)oIO!*pl~g_;zY6Btn#pfO5Z~nVJs~t0GAz$H{U$tI$pVQRp!1|bsluiN+yd?m?7h2 z=k)25zV|hGc8L!-2=XW(bI-K!B{Tf(I#)`$5N_E;p4HVuZ@>MPoL%jefGg!pi(KFW zHcT01n|EhUpRz-kTapbv`uG#K3+Bk+1$^?zrWyflV z1&oVdO^8u!s1Eszs+{i$7rW8Sxh!~oT>;Z#`W@wgFYnRLt*hHnpd6zeQ69g%r_B!R z-Q@-G3%91L9jYT{`70H$Fv9$Qlll%;MwE##tUXo=_v?Z~o!a%`w~tS;SR&p!F>&3V zj^8-TSU>8;ve#9<#p0pNe3&2k#=-?Yg>?&y<%0r81}4S3;_Pmiyf+Il^&AR3LX6Mg z{qO+N_3&bS5_1pZS3@%5YQ*G)*6u@fSsC}}RlGxKh6%t^c+ZDGT+T22F6W(Lb0}&1 zaMnDs1}m801wOis;1+t+Ae_k`QwAyL(2O&U0x*SjJrZZa1t)t0eRXNoGw0?KF8LED z^=sONyfq`CY&jp0h7lWd;8$^m*M(3)=p<0W=a*Dc81D<6S7LJba{QX_B0D@LhZrju zxWsz=>ZH#av6@C>P*f(gb*`~n#toE(r@Rm>c7mfY5QI+#D&Gqbr56`bBGRpe;~dzOF#a zA#`H`Hgo4;j4iEFZqjZI?YdcI+$$jjOM*QTSa<7lMUHW(iqk_o zdE{W6l&QZi1r0iIHuO=xcF4K}TOodN^vis}gO8N;EaP}?w_CYd zggh)A7%NX?*2~cW&fa=X6^{Kh|p=7aRO8q#?PqSmy!F|a~Ehqg3d1#@)0>@RI^}~c2zRKbUXI6b?S3IbH z>}noYJg^zpl+Oyi>c*(>@GKCLH|nBAJDqiAC!7TW%*roMOvQb3 z846|_Ujc6QA5~uPZ`2%uzG6JmNblU#y0#R#xQA_CeVEpMn6emMn^Y0 zy!=xBUO~j5`3JkDf~@}X>(74ji|Y6hUC=E@4}|3o_9WU(O}JMyL2j1G2&=MmJmNBB zqfp=|UsqhF?tLfx-kaXjusBlnaQ5=#6P+W8m+$g>7~ElTr1|HswQx}i)s}nYx+%vj2glN?PGiV%f-Ih{` z6PuBB^2oS|8Zp6O_Q)<0%pGRWnPi-j*z{B7d90lfJUy~gfzWp9)N!5N>Q@n#uSpVY^7NI z&8xO`|Lm&HugVx5R?l+mwrMmhj5gFW%GtFpWi?0snFX zu(;p;D=C4@zrf-LpMEAD@mS7-&bZ#xv&pkSrAdd= z8+MK#ieDkbrh@bEk^CTx9h|o)1s{2;u{!6V^6oIBp6Gqfxa!gE8Rjd>8f)S2`s-@&8wPV{Eihh5QU zvOuAn8A#9Wqj%o4=!YW4yS-}n(S7@?b(^(wDrb*Zu1v_}{GN9IkLoIJDVFC|cR7DKr|nyaf+Y10_RjG@exeD^dT?3ClGVZ3HBIKjnY&N1x} zj*E^z`q7{JEHBnZEI4sh7tbiyA-A%iuo%eSj5JtKjgL>LAI;eeoSktNesE%ULB|1v(yh_z~n-J0*YifB+jpndPiVr_Ez zj@ykR4>>LqcJ@z{TXq(iEpT#&oG>H)`K&|f&Ae^A;Nu;76#R_E8s6!@0*YI$2n$c* zO<3i38*YCb)av|uU$R;gvn9iRcilOZSv{{ps6r3D)za<&HZNKCOd z2{y`Z6rj#W;<`L86cCHTw;QmGBmJ=W)rebZoKP_6)*^!5mvvo@y0l?Zx0S#N9Is;0 zzjXF)&%s}>-uoN>MfJsx|9blD-{IvpG?py=+>?nv&`u3M|~YGUd;MNZ$)^wu0&&)%p4-UdmF7U3()lBqft`ESp@V3q_Gua_f zGI=3j=k7|o-!He%Q)2QC8pF$lJ1k$~OlqxET}qt5UJbazV7@M#;3?}mtV~OZqZ2SG z+d@KPPFVDr&(p!b*nlF$;?ao4&5j*ATG@c#9oSjG1a?$4fUAvLbmm?2 zFxQpc(2<54+BLy5`sq_A+~zpT;;I+Sh%wE6{8VTEHGZHO^uU1)i&ua4&ws4^H*A@~ zJdfP4lwCJqp+NuO2j356PGv+vpVCeYbS!D__ELHo0efuE>Zk_Zn(;M&!ueQdjd5Nx zt7imS=th3141ql}CkiE*l&fHbq5Bud;mrdg{r%wpSh`r=a%RGITtRs)h^Zx9^2VN9G88~$C zV1=V0?hk#{zE_rIvCq&P9*c=Kv|nhx=z>eVF{wZQ#RV((M~)uWq9_(dk{d;F9rWeP>~c=b3w4L)Z&tzBZ4F z{;vgn_0ce2W<0R?#b}7&?y62(<|Sqj+@-{kb~WI(VP=`A3pH!UuS8wiFquw6(gOQ@ zobXZeRQ+uf-Y~aRHYu5OCI_YCJ%wcA@&qAa6y}_s*bq>YvyjiAV~1W0o2c-3Y%N^z zfJQhaEe(!IB@<$HIud{nI99p!5L?#qo^nM6lwW1a$|oURUN8_x;yMsdKEBDr6jJ8R z_|7<`g-H-foPMD{4NjIBg}a2i8aQ26+J$;{;9N{ynDRxUzOquEtV_F|36t;T;sidy ztK6Q%G0S>Z?K}S0q~v~3&EC7Bm0H~uxbwJ}>=wm+`>!OTzIbS+GnPUR?_Xcg%D4nD zghI@A5W;xI>B7D}+kGWbdzGxYYg6TBHS+P}ISIoXm6n|o&bnX{Bokr@ll1ygnKrkD zm>dT2DbjvRQ3?!8u9& zd&)|il+~9y+ecpNhM6KeJY2&>plpw|`!g*|l6w+Xo~!OGJ|H9^tXo)88pd~;sb;zR z`@9e+lyMo)JMd&2=@|DV&me8aJKvD;n>>TX1wxq*a1gmA9)GzKM}7lZ;tIQ zxQVk}7s}d?GsVNTVx$R2C9a7OvS~A&ByG=Jb)QB-q^=(GKa!6USwq ze8}U3^Sq2d;NQ~1)#smIup*lRF=g1Hol}k=a7D~N`;&j}A&qz9Q&O6T1@aR3q8tQv zmJm$Guix~p^hWKhWjf-i3m@8rda%Gnf5h|hjCT62P0e^g4Sqo%Vyu&&{(&hYJ_+{8 z4*|XiOs~2Oz602a zI9`mipaJ2V_m^FAOtp_4J*w*m5BQw&ZT)7~oXw|Gr%r0IdAIA4W9*w(i{N)yfY2Y_ ze&?;~i8kDJ=}zrk+J)Uex@%w`!y(>P9W!9T-d8G0{>VN=ea+)kVfrXs$vjU3(6t3)5di zRtP+Oc~b^aS(bv6v0)jc3ui$;bO`FUqBt!Nn4HZYn=3Nsn2@3@de z8VC=xmol&;yIzNC*Gkx>5s8PO0W1U>k_wD=Zzx14i9U;4H!$ERAV6bvl`}2C)nueJ zMn!&L+fBbZMj&u5-t!^QF-yga@+VF=H1O&Um1QMgz5)F@w;$ylk_fV#L$g&T7a zm-H)XYnb2^y`65EI1|SP7C5{!U~p1ko@#Yk=0W@3HLckB{bf;hso@r_s-x6dxS>s6 zb3ox^9PHKoi`R7@W3;2pYc!7WxSTt?SuENc1sMU1;y#ht&^=vCuvbbctDBhhJe=K9 z@1TU)-YyBcEQn?GSjogm%YB(9qwI>^>YU+e-DTMG7^@=LX%41-oEa`DLmBv#0rNn1 zXPIFEkfP_O?1A8Qy4LIzI5e=(#H-vJO=?3lQb3|;7j~##**-PQmOHl zJVV2{8K0CX$3#=kdYm=<#(Xi#A4*P4IOHwI8A}gl(j`uw^#LbJORxp~t%J@ve7xO)^+$U8|lqRn7I&}E3Oa*n;SI(@s!U&T`g!v3CQgbIKi(cf<_TW74 z2j6>7`EJM*^r{u#DeV-apmbdiLf>V#1Z50oS+oN%xLcKLKe&PjIg~o!ZFRGFFtX3{=elxAdwIImuA&|+Vn=gx7qgM|vUO)8X}y*_*9 zv=#$5X>sI|X~zNt3mQqsHvHB64K4T#3lZJl)}*J;Vy24cew?P64$zT7ra&9hj;6QY zy!xMnO@HT82I8Ra^zxp)V(2=)$Q&xcKn5 zgbU|b{Jb6cs0;u4=FkE4?8K?8IS*1Giq*&<{Gcv+-(8njXpDR@_cpRtP1`=4z|$w@ zP;y1+!%1CQzDfFNq&9Pjlum*A=iJQip2DkEf-tON1j7hMVr5l|(KAi*#OE%~vyA{o zjIAdfRlqC?I4*ao*^4fEZ@4f#<+5T}cQ#yn11CG05{6?a<%z-yHgGAi0&obVr?Vun z`OP!25W#WA7Ih&Ho!gUSorZUb+i>-R4wf#(Gmd=uJPfDvws2SpI^p+hs^AoufKjTb=LO2%!OkDK+vN*pm>Z(AWO#EluL1(v6{Fp z(__8lYzs`99R<$Calb7NVs>r|=M5;uD3myU!U2>mK9moo^o9h1OWJ`#vHr`y`GM~T zEyn`o*e<~f9+TsuDM$T4FPa0kgz%ek&cfLl?@lQ%yD|tl)B*aU=wi;SF6-T!@oUq* zYJi0_%(bY8Cmivea@^&!$4c@s;mtB-nH6QaQM8Q9G1~Bq&hetYjk2eF(6sCe3*kh; zbA<|?vN)VE;SI!DjNhzFub!@`N(#@5e?m+pPHkgTq>MUShkpvu+T%26tbcwq@;U9anyTroSRtd215ucM}$2!}hZcj>* zV@XloxuvZh$&8s{!vb6^hV@oGoL*@u{}usc*B!ocN4s8Fh8#Jt*SoCHf{^v~k4650 z24kbUZEdzVT)d-2B4Vy(L7KAWozI5rU>YBzOltuFJ!A9bOrhrH_hOriu2x>tP>WJ=YhsZU>>4B;tK$o z1H~GB2qhZ72;2&hqY0SEMtp-8**2|6m{AvtleVzrphECm%H5Wh^^SheeAUPx%HdhN zj?1#QW&M&DkvFM^rq_qFkb8hdIbxn)4Fr1t06+jqL_t)r z`J?Me<;3Tc_6gT@fu>rViF7Kr5>Xe@nhu3*qap#AKMoBi@v4JXFd&o}osd}=1`Ire z3JDRNj5Kr@c4$FFV`2+W0m?wyECg{$M2HouE49fYh1DklJHJ|aL5QU+SWK%dfF_NZ z8fDN6uu;Lp8}SIUjtGJ~mGbJ9%L6Xup~ID>&7ERkDXM`_nGz?@H1Kk80=JEm^0?!G z6WIFBuvnb!x=_!uF7t3g!=LO2x@$A z8uE)zFU$M$efM$V5mFv#6&drXciwr+X3VsE(Zxw7;j(|>!!PSU;6V7n{0K$YWfu%j zIGSjfY=B9CXJKBA(*0D|Ta914sk2uPI zQeS=JSMh_#Qq40Gu5rd#qCCLujr{)cn`KI-O<9wUOn!^TsoFCRsV}smeG?~iN#5A2 zC$W*DjnjOprk`Qfd|rTqzFAM>41V0kNs>PL)p-|#vuv|Yoaz&nBehQ=5fC@l3)TG_nI0DXG2M8kFI1#+cn_wT6`Puc}+RDulC+sc6wg zm_Fm6j$NjM2gjTl6K$0Ewc5d4vthH$0EIw$zZ7K^qH^`xEO78Q`zC~aDT}a|s*i!F4&XAw3TK?#Yq_zOj4vE-T02%J%1Zp#UA(Wk={` z*PZ_Fc~EuEz6m^b)$lFAt~6(>iCYLy(=BMQB6vLMcRN47i94#ZrZ&UX&O3KQ@77`o zPK$U)8uLiOWH*ZAA^T;TjxyASSD;++NB9!wkns(He;1rw?OdO933T*DuB@Yft>iUC z%c)G#2B%>3VXT?1>c)|q>g&+^n-=I_l$D)boZd0MvD{!Rf7=4IX8}LTuCc)X)|kjT zF;Z|;8BXhD9fM4uG0`ax=)Ff)@(kq#7stHt1fPpijOQ(KMh9PKu^ssXhn{zJh8&Ol zjBP?#)P(1Ffr+_S57~Dpv*%IDUf?7zyffux($ACURaWO!9CRQ}&P>T0^~#E}lFVf6du3n`*Nm-!8gZkjU`NDt9NfT9rb7RDZg znh@1-4OZ#jxsR)uJCO>$%&|U$XChtp)|? zwe0jTR&ZKHUx`(4?%E569C(#deS+PvJu-d93;U?PZ%g>_q6&;e9}kbZpg4uOeC z!8M~Ekhdvw5#Ph9mzeex<%J%ZXDCi~^U9{L^Cj#8ogeeP+kVM7qm?)Yvtl^iPiwg9 z&uPwF7q&MCP_LS=XPuh5@M57j_jjB;jab-05yUYLb6ia9TI|s~b|qup)9$H?#Uz~b zAWoC+YPWTr{1J?e>YTg!Z_#8~ta;z$XU72HiQv90-Z^4(y_l;ofxRiEw%VYpfwpmX z`4%q*r9j345j(bcE-w{ccBQ;yD|n2Pn|B`g_yKsJ>SL9k#UkppZTl`cv$|J({ONi3 zEj<3B7~Pnfwkap$64P4fig`191|Bcsn%5AABCw}c9OE1urpt0NC1s1n@>8cy_!^^7 zggG1etoll4PRDh<&QqmJfsgX#c;uOo{yix8T3G?CMLx-(GBxr*(PuI`VZjq=7tZ8e zoxELrb?HmB*-W)v<>uV-P93-4%yjN*r(&3J27SYKcJI*jO5(ei=|`W5w&Sm_=M(*) z9c>N0xifshpt{nBvX7CTg^&C4z>hT%XRm3;cA)&UABv(aZzROojI|yI;Af#^BMUQv z&vi%K`AmN)akb$t<+p`g0S6v*%*8vAz&H`o_vq{~$}V)tU9rT$JFcX|F9aU_zexc) z9n*YwSBoWhIaZDI>1v6uuhc9+PigEzKa^gqFjlHZC z7XrUVPC=HSFS*kxz6=e|(75n8RXXGftlM_z>~0hE-k9_UujBODIn57PpmChbJ_Q7u zH1H{cWsTMx8t*f{HJ>?8#JRjAE&}iJQ@r+LzNeaPS%Cz}|Axs5%f*@S`{w2XCpwgA zN5VQ}d4}U8acveZnqrwmzRc_Ps`**MjWHP58ikk0X7bQ;^nqwB@#+vNRY>c^Lh{1r zKLwsR8nr+Y%5ASY(OiL6NK{c834BKC-_)LpdR0Qt(FLVk3KyY^2w6!dX#F95SDu75 zD317HaEHZx({O&%>VlB7L02rm9KH*$j{=*rIo3UyDQ#C6 zHhxK8;%w(17B>toB`JC5Qs6GPF26E3hs*)$6pb>}ra8YisK0Im!*kAC-4fEGigp^oi{6=$%ibfTDd7A#RuyV|aHI4-__zhzOIfh+NoW#wE z&F$3KVX+<=hkD_^gd<%y#7p62^c9rd48!J7@^kzSUkEG=GA9fQq(#2v)(foGvYq*+ z|8k2B^8;ZRPSR)IE?mR-!q7Ou72qzA#8F2K-MaG6s#D+pH>>?8e_P`_ zt}H>g*rl_A@0>d&6G%K~iyvq_lmD57LxijS5?nYJc=FgG3r}2E^6XhC1vrz)9jB$# zm=#sbk3ffcUF_0!^8|PYOb?+ST<|0B!swg0@4|N!SS$r{a5D5MVWAx$2x>{vY3g}%a zyC}JgH-x$;GS_D@i8J=3<9sVuYH`&J0$$nI!TmxXz8^?f!|@Z2<;paan{hS59kKex zxr*V)F(rY;X2v_aep{vVUcYj=`tn4%7=<^Yd>=fl>+mGM&`#S$n++0F zUP!PeU;=#o`jnK12Uh4Y4@GfbulC?>R@$&%0CV$&Ow&~c(wkGNLN zysVIevTwG*00T!=c&0_Lnwh!dg+~-~TjWJ^IvZ*6evKjcwe6rX)WH0O1G4Gq+fuA3$3{CW!wi{o+MILc>^X2yzBs?_U^>LS;@>KcWlz1Q zAF+VR7$Gm$W3f|t@?`jBSWKA$$?E@wzK3-7oqMuB`~18-mZQ+?NQ1@<9~M3s&%HoJ z^~Wa&uMWR6K0fMcKI=7PK%1JeBZ=()DZ>ux_km$y{fAc zwQz_Mk0N_V9?>5@7T?f92@7WMX%^&hP6fYwhBB)0%;GDnTV?H&7f zn>VtsRPrOJ&Mh2MDBO~#;3Km&zk8v^M7d7hycnD%{_mbwh5`()49#p!L-Jv(+2c(RL?MF1^yqrdHszGDJg?2mLh%Yyb|WRe$}HPLTN{o-rPAm}SvnL!gaVVB)El zJnO_D%8udztat*T3q|wWl?lIlUNs6Z>GJV_QUCV}nXs`!_H^!EHF@!m zs{7L)S9=csR(0U?@3@`V-MDz^vW1p?6729scuQt(^dWWwZpbq%4kMmQ_&q$f4`}Xh zIFG1aVNHYHfw04(8oSSwoAHd$PawV&DtVXV+G$(yWuJ#9^zjp=Wh@cealFeh+J!Ut zR4n+-D~}4qt{%&SWQw;f0NVQn^ywnN)& z7|uG5(ss@PiU)RAoNV`z7L@m@1pE_O-)VdPSx>hOaeXU{_Z`%0gBF_OVA3TG=wbLkKNkXRhF|ODXFom z+nXb4Kk_lYpXy8*)&rPfW6npNnYU@D3<7DTnsaC0?%3df)7tLlICh3uXt=-rz-(LkIR$2j$QT^IG0>P0eMQT%SLG z!MnWK$5Al3@Alxq{Z=@sFYYG?T`Cf9h{i8=WY(jZ>Y*ZlPIxA>H zU*NkPXft36diBMHi{5G9s$E)?8m^roU#~4AH|<_O&PhkWbxs z>^{agqD+SmAGB$6IW~ut?RCcCNRI2g=pT#)79BR~`b`urLO3Ff5DA>!OU`~^?fER=m)LiTyaD}CjP7Ca`kP=Xo% z#?4!*9eZ@fA1ej%!}~fKFgGz}xq;nX_z66O1(VP*V*CU@DS2E_gZ8k03q7D5Z{Lc? za~%C~hpwzYWUh``Gv|51hY2%YpKoY^5}rk%4Shyf-;|xPM;j)eXwQ?0lf3OX-ZgxR z_?B)mTn6dQ`E9rh;moo^tv1e_Bf8@T%RSU3;kL^|++yT`K{zch3Pv|v%@9;rp{MXN zap>c-R%#@OjIwKD>l?wC-(wO0jvWd!6hnB$KTO~gnn0&?R&d=Kn7$@m{+U^-vlL3L z2~9a`L6V(etn5`>SBS=^yaYNL-k*sh@V@CByi~`5ID~A#Bnt0R861YQ$y?wo;m*Tp zGw>eHz#HYAhqI_lSx?d#uIRu&GlQZo3*n@V8~O=WUp-d>r>8jeBTNnyO8Q}{_ejbS zOaf-|U3k3|pe^|5kNZAt@12azyQ<^w{%h5}+n-ej&;BjN>v|Fib|1@x@vHHxGMPML z$19UswZA?&Ro%IL+dDk;HO>^it!pk$9%sdPg-pvdE;%oW;NxQ!B2)DF-q_ZQh7squ zr)~(vsmw!Ns@vD+87q3vxN)573Ty}Q8b!yL(hKKPTr^i1BY=X{*S*e>c>=H(f_*TC2Bq)+pXd7vJ@C2h%z0%e|~XVPap zaqYS=xg~AQkCi_2I$zeagJ+Nz_zp!~7Q(5byFN{ukrz5DWLaHLa1vMWDb86k9-zll z?M&MHxOVSeNP$EF@T4mE2mo0R176?{XZtXJg%+do-izRb5_C}JmnDj+Kwu2?bG3F4QO(W5bdLrztlQ;Es>kgZ)i5e^xt8x2vmHCVaevJ_Q}l%YhQ-HIM7QT9kC-jOs7=mp;Bt ziyX8YcygQ!$_QPN<+#h0MN)Q<-<7jMaH70kyLMg2W1h=A9+;cG+eu%+>>X4hY+-XNaED~LjB?0pfJL=G4xo3;%OYj%U#;!i?w9~ypM5H;uIjyJLw0g#Ob(s@&I?Z2M>cT@TR2Cy!otM7tLdh ztPg(^0`e}5Gvo})V_d?Y{i>`>C;gPR3n#Ejd7v#T%$Gri;f($dOaf&hzyEnm_vYv1 zxskF^c$H2WAudfz_fq3Ggx0l0ngqG>&NnO;T7L5}@R*ucu^n*@bxs_=i4gjFh z>k8TKuM6Kd4o^*NzUX^Q0NZ5#!+gJH?S|^uyZ>rkWQ`MzD|VQ!Nw^r(4#DOvTdNO0 zIbTg{r5MvhnE054z9UCGsn`(#R&tJf=0Z}7*e?8fT3R&0|Q0z2E0DS&kFigGN` zsrJbTk_(BL&BwjMkhNlhY zQwjH_uK$X0HXkPnfcaFGLEpW4YC=&wG?>R52k;DVh9U|a<ZO}of-tDm%1{Dv!t01 z`aoysM|B`y(%m!=OujigjNr9yt_#I>UK5~mm4Y}cym4xMPp7%%157GsGdB$SH1VnISZwirSP${2XEQAQ#<3PXBOQSB&i60W2HV{uSFaT-BmvCDld2BDl- z;g~7TSgTt%v@>p13L5g9eas`?<&tnD*@O~4lMKQU3)+nG5-_cO>#a9U8+hMy-7`$P zefHUTneBe*XRcrx(QYw(cI$(UzA6eBv3Qa=d;O1gWfz%#F(F!h^5KlV&I5y^BOm?Z zljgZk3W$^v5&-`@$!7`jngjEUiDATR9}%5!86^zOPlSI^R1->(?$J> zzJmgWl20G*3YZvUYJBO-aiyKLf{l_z9_Y__L9xXu0VNuG1B-I;p&l9`R_rk&h4!QJ zC9zZ9Z|P6an10Ic@niXvfY$tuG2B(6!SApr?qzWc7Sg49>N*7|I(~4gL9` zDLc5as1$t+`tlwR=Fskj=2^xO*9Os7*r}&4L3-*8z1X>B5g@EYwBRHdN5rF`c{@a& zxE75b|IH4_h+1S+|Df++J@Wba3qB@6A7O#u)X9_8-G`5>Tl#F!&N=7My(p)?Wpi+S zGY`U0|AmU>{5vRYJJk;>~V-o=(ADF=$P2F~|4^LJZ&;fVU)Iw& zg}H9Cat@%(!*ND=$pcPybu$1j^2#Bb7JMGaq;ivX4N$@`$0VMddKQc3#DM;!!R(3FiZ)!3u{D9-dir1{Qsp9nK9KFmh*d0+FxrPXQ)R|px%6$3qxOXE- zZ{yge*4*!|qCS_>M0!kx@z6ReSn!szy&Kx9 zA23(qMm*-F-W)0r61HcpJg(P56nzF61;Ly0_re-0CMYlLtp52=er8&5B^%fOtdUQI zDc?uDt=g~MzwYs%HWI))n2le%DyLcUman^&cS+efd3axSZDK-ZvKJ-XBev21xsUdq z>CPg-u~VnCvwYN6Hz<}UTnP%b}s0_Cj;rC z?}t)K-{Oic7J()vuG@T`G|-xU!x`b3|DU}#jj?OX?)wg>;#5V}#F>1Y-`KCa-GlVH z^a;Hx| zpf>#E$>VnSH3L{F+;^n?@dKzpzC8!lhvW1PjJ@CUg~f+d0OiLr_<{EUD6&l?w#B-fx&Rn;lH6}LNqA%wakruGSp4C1yPs0{(>#)gw<*NhBsz#Q~irLDzV3O z@}URu=eDM!^YNai!Kkqr&_H}6PVA0RQ;)OOPUSSU;e;2gG5m)NoL;?9XtEh8FP@T5 zw~er2HnPS}Sz0Bi=fxpGuQxzIbh$W9P4XjE4`r5@f0<9iVCCH{gIrHwNP&2Q@t(iy z){|TYN@w*$PTbyI!`YB@oozPEyfWiJC;l}#5I8l1O0!9`3+U!b0}vKe2d+-s(mmL> z?cf#mfkm4|gKo1C;>NiWy(uq}(FPqhg^jM%baax zhE@sSAff;4b;Eh3b2lbhSQ-t&kX_WJ^^(PI?#+F$%dSJ3o0*oQwJm#IGmto1z(XuU zL-RVt`I2>7r!|Pi9%g2@_A4*TSve4irNP|A``mLUvuD+LN4Hrz$P71h@EiODucIz+ zXkni(C;D;^CiV=Oq{Tri&I#A-PllH%?ahwT3i(k7>1q=b-n)+x`MRe3l;me5qUkxifS z@7aIA1`^h*qfZ%bkb`ve*wO4w&GNpd8CzyQpk+)aNI%r`(EdHyL9NDN`6f;e<=v;{ zm|U#{E(RQ~YQ+xiHf7EXb)++bDj(#heSTR3JIo}W(abH*Yy@C(e=mG-_bhaCuon*Y z=;)~7f9upca(wsMKmhRgYYWJmK?_QOw9}FwgDC7F#?fGJH1N273ppLp<@#o3}NP;{o*H29JQHW>=NZce#-Yr z4U|7yI?kRwXTHE~ts1}v(l0o6;&66YgE_2P8oP1ZcxB~7EF+Hos9TBLmMd-4Gh{+J zTm6=-2v)!K&8(1h&o>rY?x=j|5n3B;9kK`$+#MJEm~nfa%JQyKC@L0^=ZhBih4Jlh(4 z8q%DGocLfO8m9OS_V^yppeTN$l%WhuiHrR4tmfr+Q(PNP@_FaQ3nqmV@Zw1vA^n|x zPvhEfl1JqaBtA+Z;Kef{JHHuZu*?xv(6eluf<&1Zj&70)JgfbMNZ9!^ZEr4nuePXxB|rB>hK}S_HqE-E?{;6VPNL-? z23qaNVER4%joE3^`L)AY&r8tN#%HAA z86o8@{Z4%RZsG+yfee-_KiZ2ATYgS+*_af3ijnm-N*eKXd?Em#*}ggHU%wm!28RH{ zlFZlNIAwat(m~qFl?3c4gFUl0qne*6s=*#;U^NOIsi4(uF8De)OL5Rm=Up&ay39%z z_LW5%o>+4qsM298a#qe>9=EjAEv`D^Fcu}#pO)R~3r-~YsGB%-)-50ba0HB{pqq54 z93Aur`VMZKAUf!r&^s-sk3+3kqKGp*tAAY60zTfop@9QBGMwT}UB?llBfnAbSep1i zbllZUEqmvn!yJC$unvu$Ec0dWG1o^i8<@(*h|E8@N0~wU?V8bJMkZu#GeTmDI2gBn z2D25$qW>O{Otu`@o!#25!2(Huq&Sc00kheBXE{0pBFGJU<&L4YeP|{ZNB-2??`n2) zy9N+XW*c?g(%8gp&~@1`D`1Xk)Dky*Fngkn2Btv31&21BVU#@^Ztl*0bR4D zywZPUL5MsnK)dQ$gSKAiBQ0AxE@?#wyt2G|UQ5@R#pd^3=`efxsjKXv-J;cJseP<# zC&3Hcy110K^n2t1HV!QVWULaQ!p1w&*b-)y4|2zbc_|PRIPIJLj*k>i`rT6I<@hMt zP*8u^?Kb>Z%Ozw|7gv@M?HGL(weQJ518FFaDqOdQUP7fQ9%np?j%4oq+NeDZf#(G7 zqJa(gHUh2&rk5Z(Z6t>gS-wLH0p`>1{?xjlbkgmM#rj7ZA8Qc@)+Y&W8?9@_%SQ<( zdgqQ6jtP#VR*Fn(`KFdv9y@wirxYKxPR~j@nwTH%hrFr-jc~%yab_uT{JcRI(mb@u zHsZ`_l#|3Q3e0@69l=*kIUMj&rNBWRoY>2{`xPFz2I#<^5p#0s%n^3zpr(G!qOc5l zMkhW`>5s$Y2nJCfIQ`U996I2;J|^#k(slr z%QRX)eLLGGdf4}i94?Pf+Wp=vv15Ra`oBfnG5C%n?}v+N22*_WtMlsv$wpS~2fQ*% zx?MB0Y?HwDOp6z0kD)m%8Zx)vdZDl8L|f;&j~UCu1{NNWk7F6`;)<6?U;c8T5Z;mf|9(TLxh;z=zJeL zxJS#Wx0$m^eg+sQcbipLS%{q?zza^|i!VNBCu`5nX?9!vIQCz&a)-UZ4BU{eF7W=Q z24E)icVFi`ynpVJ-AVfJ{@rXwGmez~F3siwgX?Yr4zs-sZ0yq3mz&Z9uB_U#XWX0^ zWWZn&0bX(D`NNUDrGd{k-#TRj2-Jarfr0E<&7^bEH1QDvPyAla(^;(YBWs7(DYPKWnFsWRo3R&|7B%V*AN=Mp2~jp@BQQK=+PtD zU-`>FoqhUKpRfj?Ei26qOD8eN544wtfKuzf3@J=`ZVW)x2zU(X+*vmIm7!Y5k(c*P zaqwSlKqDV`!tg8=Ck)sKa%9xA1Gfn$iMvNEcx$85; z4`NbJG25`E-}W3Y=zzm*Tl+QZ{2;ralcepmUXUxSUpH@#GvzR(PBRBUEju6sWk$~Y zEhVISy|WzD;!2P}mq?ya}p zv1O{v^fD_Mr$w_omwmY`bH{1#*Ir?qV`yVA2`3tw+57u6JXsQ8MaE^#)L$CAVY8$R zG9A@G&8Q9`O9O2nd-^%uoCCU8j{nk&&zt^`E><|u7E*DsXBRH(GbB0mbOp3i2S0e7ioW_o}{)R(%v#tVrQN)9g(>(%juP@>)0 z^-&EP(9T$><*of-&&pSR^&jb^!gJaCr_W~J{N}f^S6=yS_OpNKr?MaV?59d2btM2o z2!2~;WLhL;M9UdXfglA_#Qe!`XtY@%zKbFL=mhYj!Lj{IBvc@8#32;o18(FajVWT~ z`XKU!LZ&!@8+i?6T z-xV9OT{2Fcs$C~r;Ih<-k^d_ne2~5Vhu_HF{myr@8&@u8_ceMptkLr0AOCpv@~f|A zhhKcr4sGEOmX!yVqv-U%t6$A-y#2ps6PmRg+9ikAWI%~N4IicisLphvjRX!fx=i`kU8p^6Hh@74llWw=z%b3kM*0Ei;>-JO)Eg z$LaNgdIsGo&Zys(KB;HmwK(jF)iI~D1h)yN2qrJQ7*5$^o&?^79I80c;?z#n^3nrN z;C9)@T=o`+9E_Td?So!IEl$yFydWQ?2^sLNRA!0%6s0)w)s&gycwdwmctvvwE&%jb zwTJ7MjM*rQw71LqK!F z<{#YGRu9d(t=qWSoH!g}mf=R)cm@pGA_7}C;GK9I=(n=*16lesOFqbQ>U=*nvtuzc z@01vbC4Yd6rNw)-9~Os``)oM?3care>N88a2NVIt%y2Q=|KR?h&GeqpUQ1@?C?gxh z7L6?LWSRH(zyF5SZ>}j~&-0;!2Qu#RMSoc4%{4j<62uZ^mS#g6OP7yo1qG`FLS9w6 zp8kG3B|v%6t}~E*`Pxkp$x1D*^SLM6;s=;PIps{fXa6_*_c@sA*s;S_XIPOC!K<8~ zOTg-eD;g}jse_^zhy;eUlQPuRb_Y75ZSi*7(*T#aQX48bjVtNbPZoleDx+0oQOE-cEZ)nh1fD-&J1BR;#@OMm4UAQ$!XxffaV%=&>5y zv0w05w4vfZZJSFtY41g9x!>b$rSVX~8N6WIBTw+!hBM{G%d7>b=mmZRmv5)fL~(X- z=51)6xNvyYteSwZ;xL~w%{v(3*%nTpK9l{@SN?%5O<=T!K!f{xU;BFY%|H6%?1z8o zQ`z7A8-FeP%%?wD3x<6g*5Tk<4iN!5n_*FEScE2+i{M5&zg|P{(|CkSK=E84oxJv& zcoSSlF-UK59AF`*mx4Aqy1;yZwA_*}2XZv5iK?5qFmf6V^m-~Q|D_LcFh zzi+EX&)7S*E_-ibF8keu|1I03&drbf%ui=O`{gfZM_zha#!;QjT#klh$sagE>$80) z{(`_f$c7JoE{EXqT{5_*8CE0#P8nr}1*3%y(Yd9ggf>Pno!7f~i%z3w1mZA?(ML1G zoz^o;M49LHH`Psna6_Eii)uY}-}Ta;%TPUKT9Gn@pyueFUS zT=M1RV&&te2$9%~d&stnPhjVT8!~3UC%Q>mmZnZl-qh*AT+8JvQw-=bK7e;~%1=S3 z!;iCo{fpI2I6(xQe(ni{EH8U+n~6i#!Hd@ouFp|BZ3ELjSUs-+CGuI@E%;WR@TtED zrtLw%%g`HX1NzqGwW*1|xFSB{mGxszrdo7!uoUoa^BS)XH znO@^3$1|%Xylh*b!)B+tixxVIINJ{dpV@7kyFDX2t&@o(xDMw@|BwmyYtq?NqY`94 z(kFZjY0z|9j@ujB%gfC6ULC@4xgtD^V;vJ`vJCZp;d;JFO z!xT5zgU~zDvM>1j-8-fm$eUSr$|othWyv7u;KbW2DmNTf9AF&Lwt&WPh}BM&i`T*X z+P}+EYcJP6@d0f9Si(Ie{?GvqCwuO>6SkzA{F9o+J*C5}W^@`ahY;=BHDY?fHF)$x z`2Ez`Z7Ye#GY-3RO#@r3TDh%rIZ$c_@~FdXCD^GMe1h36J?AxB`u=IH5|EvF>BSdp z*}96q6li1TWp6KEo6xD$GqxR|PcXwKN8(bu6K!2yQOv&4Zp)4UAKgvsne|$Q2VJ!| zeYYSu=yFOE6E)Z<2Km^QK%P?jn&Tv26Wq2q@V4>-ZL&QfCU^oKp$)FZDVefba6ZZB zd0TPPJ|I6&nh(smj9PJG&y1B60lX)z&(Y2T|KoUHasU-^eRvG0s6O^A5%v;2z@o&V?m{R6wSz0To< zfqPnF%8}D*2F&Y*b8p=44Q780*(+dV(I&hIHjVE$-oL*=FxgDn{mMmO(Q))VV*5L#;aKU88N1B}G z4qjrUrW}{xl#DbaUxbeQ1kcJWiBu{^z|Xz*{p?@=gTI@N>9CS#_a4t){nVey2DFq7 z8IT`(X79{q7sfAUU;h{XDtqng-^l)pfAUYVSAOCrZ0TEpY#Cor`jLa5&xQ}YBDo>+ zGJVSc`7}$95}+}R!170{>pF}^>Z{JI%HHgY>%QxPci7Q~PEOSoWiXvbXRG?BIO6Mc zzN?-kr;S3_THpk3T7T2)P4Wj z%TML20;t1DS(eHywZ}zVZX1(002(jitJO~Rq9+O5pa;E!X80oDu)O=;X`MEFL9>jU z5WDxsNM42iw5+|!HGdi>ZCbA0oHt%XZH;G}0x zZRY!|beO}d2t&H|2tB%U=eo+1edMf;*lJ6dhlhv7r_0IURxsOq^k_z#eg;k-|f@+DV%uBzIC=Wur!_}?l-3w zwC!P6wrMkmnQ3oqZU=#f4vg!x`fHjkzNP*Cm=gv}%x>{Rp{?Bs+i3k``U;-K@=5UE)k3R!{TwN7`1LEL~a|oL3F)+!WUh@-mTd%F2q;bG*Yt#Nqwa=8=w8G(aWO4*p zE2xHv;GZs3;)@p++xcLr*Wdg5|AUR(RSj6AB0r7iGdg9kEr63zZ7&S(RC&jW0`P{K zI1~!OBAf^zFn%M1Xvp~uT=EfE>KvU5d%-&jLhpgg)QIEs*bpYamV>hcm!X7CNO7*y zGT@Y#UU61=2|k-}0ypHxtXeZpjlN?j@(^(OS;cAZO7cT`9ZnfN9((WI>^J}0FK4so zuVk-2_iDCpXtx;-Y0|7q?%cD)`T!O=4HkwrB8am*Za*^BGpplyeBiWvdY9G*;2GQ;C&sk| zw+Eb{>EcE3f+i7cMw@hm5>Cml3#U5O%Hn)dck~y*>b4?z(}gpUpEe*Z6Q=;@+ZBv1 zAqpD?4NJjEdSr`5wu3*avMu-|L4BD4qYGy$TMd_#+W0)K8K>(PI*9`oju*~4hgIEC zXAY-@j@NPn<#mgzaU?rBP8?7~xkZ^-yQE0kKrwFVTt~g_3R@X^0v*KLH8pzavmbKO z)mZ~3gL}xiswd{Q;IGEhf0meF??XoZa#o6Jm^p85Zq5NE2xg`e&OR(Q;)w3F+1 zC{JdU=xC>9xDr_ahk=FT$BwGJH~YP(+B?fkEcf+R^#xqe#Pa0VbO6;|%{*_Glfpq| z+>3fc_w>%`)NKO$bXk$bAm_BMs=A_UW;o4xR(p22W@u9NXhgH$dvt0uGr8!%)9~a; zAel}Ds0HW&~Ub(zV_)$W406;TayOP z9{?^ZKsITAxImd6k_LT@Hk9vaf8OjGZHwNs*VgPz0vP?aGyqh5TCV~w+bdXU!s?Wv z9d5S*1pEOb4U6JjZhIy=mf!D*zJe%iXhY$bQ117v1gG0CV79f*b!BGdl9yRpp1>-V zS#C3E!62V zV)S~47uf9IfndXAt*V$YtRQ#hqJZL=?$ZTZyoYGur6J-_a0(+05y#V`%G^dgd6t8d zd{y}b%y>4#ZN|AcFJ(TVgRnTx)sY`g^@19{-}<$Gl-)jiA^USL{b;tWZ@cu1&S<%@ zqcdm5M`b^-bs+n5FaHPG?|$!V*+19P=Kub8ekU6}a6ra&r8BcA)?*gXc_ZsFq;1Kf zQpf1hx3a10Z)HOVKA+vXGpLTwT()auhb?)U&>ebQ=T7IDl^@lU8$&Na+f*M&Q?0+G zkG$1-R*LfvF;Kcqg%Zby){w*pd?b~6^=&=lwEjnhSx`6in z!e>jhzip!*Mud%|%$SA6Q5e%~NwkB^0Q>iVAEjH?FVa9a^$F*Z6PlqF$Hww2J`K(C z^Kymn84XOq>#(lFu~XDF~Oz~|Q_ITic{ zHmbi-AJ7W#E0HZ7TVS9|F|+O1+CS;o&dDi@eX`MEZ_34*V zM>$R_?)$I3p_7LDv*X8)YQO4PbNa68RPJkkEHZ017Cldz@BmfJiqFj1Slr8Q3 z7U}nqBZq7v;{EqeYr^6^)AJD>@aQwQWvrA9`@)&MJtk*)SSL?&?GdMaGviCZ@nvv` zL2hP(Z)!4x!4cC#=_X6(IlbENuP(R$OQZg2>PIC3bdu%Ee*M`-+XjKHUP2Tb?Xn6M`ncnjE7{R>UUYEwthQR*Y@)<-mEZ*4Qg~Sk zPUL`HglGODuNsgp8M(?he@ThywU`dREm|Mt2B<8Q5D+7MKlh*h_3Rhl{8j4=704q& z{$yY8?p?bo>EdBD002M$NklCutS;a}C{o23#YWDsgek1$b@mI0|oynS{ zKmBU<+yBe|oc-M2|L+vDQis>TKNcS>{lbFZzsE_c8o|^N_z!KlZDQ3Q3rc$HDXvj zrvEt1HY+VzvL_CQkvn}oC_&n@&EGEeU>PypuQdfwVZn=)*xBRK?xZ=o0pRUbB1O{?qT;tS{G9 z4GI2Yg9|CWPx5!FF!FxV1Lf@XWm?Pbr&WG9qQ0^OT_N6s25nU4=neb-v1bgFFsOt+ zL@?dZJ5FE^XO}p1f8VYl)0;7!A;6(m3<3eagCn4n>p|zOf2&I$X`14A&vllptSDGg zrg7~-XN68UyKVUcNA=m1hjeXmi^aF)U2fc3;aoA?P&2e9DWLQ_I4mR;uW)$n9Usc< z-<4Ef=m4;!Yq8q;>W{pVeg5-5lzr{@|44xFt1?`#jywDFMh6G9Y;j)2u6;i05LN3Z_|{slms=;6nh##W zPAxU>a%HgAIDwz?66FVO9zCHMT=0RjO^0|& zdv@WGcLQ?pnL*_@|BOcEBaoM6(hQc-iR3j-QFjS2QaZ$_V(@D zau!E*@A%DZ{MuNyePCy{9@$nxS}sJHTs0de(G)myjvJ-@CaI-E>Prr8Vs+G}rV3H3>v?OiI(#_$vLfsUa6*psGq?+Ic@ z^}|#wIY-BZP78MK`{kmo1OEuHkuDhUp^ zx_|qe;@VzEpK+xpBb7PGQe>^vgk4-GDP}8g>!eMLhOuIXHn|XUo^J zuh4{ZxiV_Y2d*|=+Tz;aw#CuldCSr!TW@a)hu4>w%J|uPMxOm2l@-TB4+YP}w`yRd z?r(hQuVml)HVjM631!2TY0bZPkc19LFV(}I*SoWY2L zUINOPPNx%(uz3P=q0lwCP>DmyWJNOIHNX?FPpWlLws4ai0cT>&1eBfju=c+cVN zci;Sj?9A)0XP^8Je^e=#)}b-rkI{!YyHn@0*T42F*?rw-I6QhVo4t8Dd-D&zkv;p$ z-_G`*{EO1lCyz%uuA8@wX3xL+ceCqPUe6wE`&c%+AYIex+Z;T>>`;Wf2FFi(Qa__E zp_>vyslG&qc_}&%V1X&=d4cJ}2u9AqJW${@;y@4$_B>vaM$=9eY`2?B?iW$<#)4EOHFcasD8b9j&rT*?M{ zFef^v<$f1*-O_-Tx?&IJv7@q!P7_O@2SgAjGcOjvZE%zj zaLmRW*gYb+aM*i*_N`m{wB&d}1G57*s}%A|q2TcE(E&Vke%YJ+P|JI9Y*~`YxdfbW zydVI21n4PM*zJWO0DP`A-Ta}UKdc7(GTD04kbCrMeY z)#!~B+w`9A=-0Ro!Q=jB?sjINg%O_}JBJFr1|PW4DFST(`j+bb()tQUg4;dW9_|g_ zzI9u+Q#Q=(yo}RL^8N$2s&*TC~N>+tU^fZwQAok`WAriJ*B#9M87! zsZV_(`}05cXS09vZ+}}$gErez7nZz?=z0T23%QS%k;vL0*ntOUmvUEeslepy5oapm zjY8x%g;!zGI6xY|!^k6qbq2>9#k7Ef4MU-P#aD+OK8M8>I*5PQ9Hwywy}s z-tSBA{9oCAduWN@e0UyhzT}Y_y1cg$$Gx4`cljaVl4(%)FBmaET}I+sfE~`a5`5dDs#- z$(2(o&6bj0|Lia}1J=U_y2z=!%p9BE+x@HV5RpB~7rhNfDb*81p<(Bu za~HZxUXwq3B43p&Y@~YfP<+Z~#~fQ)@Y87>-q~-?6#Gt@!L@y*ax^()h-HYkZr`;f z&2(CcvvR>E34VbS0u(rnQ?IRjS!@g%(L-(@ht z=ogWk?7Cfd+ERQ?0UmCN#(p^v@IpYw+?#B)HD#=MPkQzvvNvzDI`ZDmmJR*jtNZ8oK0g+CPy4=?4dQ+TLSkXj!5? zB|8qU@PGq?K2XP~3t~-wI;TTUJPs^@yL4F^Juxv+IJ~?^uE6HrUuJ^8{q65%mvp){ z@4)*w1o*Mqh>ouUK~^U;(2KJhdb$c=9~lUA1e>^9OVYP#u!4HMpnbR;aL3jJx1Y2v z>gP#MNN;VLo_tq9=L2{C9^JJ&cBLElK;+Z}`0h|}$+r*;3r=#kx|E}3i$PRGWR)>g?0CV@2Jm+-rbmsRZdw6>wp z1D__pN*_da%HBhtzEiJ};d0BYmQS^3xk!wTQd>v{g|H^z#dbz0JPd?y^h2=mlNW;C z+li4b^T=2G1jc{%H~+eg+8sK0FgtYUfc_5Ja+&Qi!i?Uu1sX9UP89{^GxgWIdnPig zOZJX^02ICnQ5A&AFv#PbRW#87EUp0JbV!0Ji{M~%i8DdKa}k$xGz5n<5ge`xPRTuQ zE~7keiqqgCz&s8N6uK1(w5ozd98cpj=cOAb&Y|d4h2Sa>yVgN@j296D-ZoxB5f;M< zMJ4&=IIHsO;`dK-x{Zx0Tt!8)H|~ zs3-KhjP3&+2lr6C*vR-v}%Vs}Fhq{9PqDEAisK3;746YenuP!B>H>XGW>~voV z#_M)o&!|gD9Eyzrwhk3>MSKS*cB@mDB=ZVR4!^6zNtpl_{MKky>UKEnfiuc5t-rvn z)-&kAF7%2Ma^X>Ah!0GC$2Q{p5Xv}_d&M^PfD;7eGD~sNsJXsEztiLPm;#0u9GeGf ztO&q?ZnKTRP09>f32B*i^dxX9cMeyYqM2FCVtj_3s*|5tR4Hd&nGt7uR0WE7PEh8I z0UW@K+OtS!|Jbp^_6!;wYx^f1!D-b2_J6UDlfzvor-0#Yop%tB3-6HtPk2Eg`R+2Z zUoJnz5pQ-rmmfR;1066Nl!VIVexjSe!AWCAWs{uH9n3lj4Nfh1n4zW4Ql2a`jxr(+ z_=dBf2l~8S1RgkXi0Bw{C6UYXmJZ^&Y5Qw|g?^|TE1b0P)J@48x+cPt*6{+h*KUjze-tneAnnDc8q<14jgh z82Megbj40^W_dMzzCF60YVzi!=~&=EW?X5+paKVZvCNw~J*PpSz!zyB)f2~tdt_&! zkpTnS2VT~J<K3FsOA?gQwQ^h#8hAZ&;Z3Z2&3PcXXZ#W)@0Msw%4^7!+gW#9dwAwN)p8zi{%1X8woGR*(j#nyfciabk@c zc{}YkZD`bcvS?%jPZZPJu6CCQjwWAK!XbV1(owtJ>oZz;;g6Ii*!n>$bDNc(gE{_kmz-+_W z1Q(kXb}GebdLS$oFW82!2Io@Ctl$$F0oU+L?)q)*q{@Q#;7$96&=#TaKvkaBcp!YG zS0?>Np_K9=jT8xb2*-~f&3^gs{5L(MEGKcihSVwuxcO(of*=C)@ZLIgVp6Y+Ig6yT zr+CpyKsXd+6g;q~c)&HmiNQ{scdp2bzyfX#)+#c22^6LkazRoX&JJ8rD%c%G1Qv8u zdEq@FA(iH_5e1`nj`=Cd6qJXUe$tdw!8@eZW|kLiN)654Q*2T7SS>U*C$2J2+- zxvIcR(?HmV!xU^_Dos=H&iR9^U;BSP3Sr%PjS_Af$!5piRHtA;hdQy$>7lM|xFK2f z>531Q{YR-hxg6itU3(L{OOH`p^p1vt27>`B%AN{g^*3kL>Na&0jmULA#Ncs0i-kl= zx~bo;*Q$%ko7NT5dOZ`&Mw|{8GJx9)&J-@jHKiwwGwsg#lmvzX*g5+C%IW(qfWe}aUI##%P(*$Z^cffHq2zC4&@!$0cfO5n#xSn z7jgAC!{$<^LaPQZLf|z0f+Welu=A3c$zIQDnMM2H@j4wB87M!UV4OqlDn)-EV*eEv z$LU%Q=r*vF*NnXBo!|DMr%&9WyblTh=n{7moXsq-0E_eZ^P-^@Ois;zrX}pjZ zS>^G{hphz1W(}axNu%yTgMrMK`XU=Tm+VKq-Zy2-bVrAF_w4NT6(!v*Awj+*<(w(*{5CS@FGKIub&a^?CG3QC*Srqiw@{S zM*N`z>vNldJg@0$pKA})PADITU>!Voz;zJ@6mWVuMf`x49$(kYDfivZi7p&d?#g}s z`DZojyVYQmKJ<(4)j-@;;kzQ|bV3d^@}X_!-qd&A{lIi;Le~?G$Qi-OK6B=rPN%+} z?bbCzEZgQVDjaMM?1F~-k{4GIu|)c!9Ao4PEyx^acgKKE0M~cgg*LjXbgtEJ%GBG7 zwZhPW3*TJRL*cW}ovj33qMbBP!Z*$&z(%6GJGE3FXOUT84v}M^n>Yrt80=#Z1^te| zAmX}p9Ac`$x7-^U(KTG#`_rZQ(s4x&?$~CB=Pl%Ih}&vky;8FC5-9cCZBDrj0I$_E zm9rfRD4M4kbm5;2+VEh%=-=sOk&}u3LnnWnGH#|uAMH3hc06#RTV~Jlx*bxW?e#dN ztn_<$Uup-GH?1epx508&`#td4jMHhM{gJ3FZz$hlI0G(pu>~llr>+kYd!7meWJMC?(8-?~RhN<5cl21ieuAHj=55IK9siHB z*Ux_~d-JugWqbFXP{-tEcJ}P+*}iB0YPNOYfXUxl7Z)CsARf~77JL>w>baprK*Pp_nw*Pu8+%U1x*zXV)I zX#^KZB90fWI1_x4IY-%wleE;qw6TG2@Di4X(>n@kiUh&o0IQ9ci09c>W;kIqkk;1` zXrKpNC)wTr#zMsLql*`1=3W7)yG4{R172I7hFTb){Qaud@X?)Vb-3p*k8AezmL1$QBF7h+d|(QPH@Yj%mDA-iGs(ha9*A=%JJS;3SuFwF zU{3Ewtt2m-p$F6B+^M=7D@9v=iJCUB*t)_q@K&Kg4b8@n;X)uJDFytJzM;dK-HO1lxu>pIsh zGsK9qeCEt~>C&w6$+Bp84H=Bd5k}tJ$%}0G&RxF8j~$VdJ8bWm&Aq2TbCTbCKf7?@ zvd!p1CA@*d`W{jQmNuV1f5EP9YNE@zTl-Jy6SMptkWX3nSDON6HqUD{1rFoMXZD+} zuQrYk10Kt@sm~0QaWEyzfe8$FF;T{~gcyGMd2Y`-RG~lXH@Q9Y0W|p>ie@k%?m>^# zY**mAIL<-9exfgg=rcq*f9LugY0@}lFnhV_VLqUzNZ_*4h12D2;2|%1ps)>#feGw& z*!&W_{72X!$GNmNH0&EJrR^D@gNJygxWVavyoFll+kWM7d?#yfoLNmZPhnP4{+~LPwUx ztJVAhZfHnDT0y$v(2j0E_d%SGknhs3h;}dua_q-XZ<>i@5nZ*M>fB3PkS|QSqF*hh3ND%TgtUIliI6pojP?OXhWGLW+syk zEoWNLk-`ANYqWL9g#bPA9tW?F`**dUmd+#jpo4vKIJR2_i{-*N&vX(w--+vk-qDti zxm%Oj@C(OvwN7UVB^^=n-&V&HnGnp`&Sz2ST;9}SQqzM8S{@O z*%}WTxU}Vr^Apx-r9Jf-PjBD1Y+?3?ld9?5`hYg@81Q6Zgp*KbbrljbFE=#kfYZB2 zvp$p;v!@re50-%l?&xG6G6!PW%nP&$4&^nYykok~2M3yKhWI@#=YQe0t`)g?)Aj{| zlT%=s6`#?P=8YOez_DAt&0$Ok?q-w8SJEH^%W;;2q!K4dfflqqm=WLY9TIqA!l z!+}Od{hHZBCIoQzNk`dN%)Vpf%i&%=JLb*?v%sU81qRj!ADp$BbnY|efUh5zpmJu` zUX$LkDU+%zo9rr_D8na34sN41TKQAYQD0UrT-Rycobb+JZs_v{8|?Ef5-D$ClW@qk zZP{x3|Eb&6z!nqk_(neK^*s&fXj7=hk)J`cO`EjTTuyHPw#{ZQ*`m^8XWsGGqGGK%NQ;5L`1!xb8p4c}w10K|1T z)B03$cneC&s6R}rbi))Zja&2YIZhK}jVyx!n5zcph4Q*Mi&28MI5@8XTgad;@7m#9 z883CTh76kdTp7+3E`uf8v<&&>AN@l1d;jcz%ATFmvM*gz&{=}0@?-CZ{@J)*MeuaC zW_7~vdzatKe(10MOt$-(XM8jr5}))SrP*`r3)%3#&twa;>6MdPF(~LG|GfULO+5o?w^axm)`Syko9qH3(@s07s=;_!7EUu%CX*^megn6) z{yqwvlwOT++wJk+V+^ zPMk_FGnE}$C}BAqUml!x9H5@Gbl`Bb==d^&!Kw)IAZOy4QJ_JmgT~%Ccq5*b66P2w z9s0>^<-**IZb2B(K~C=Ml9m}lh7`F{2WJUq1ZUfMqB8?+tis?*AzdpYr`>7R6-1V* z`vbVnXH8sQkD&XW1~EAd3f?w}PxxQ}U}n~rH5v>Pgm@LG{Hp;)Ryf7CwU-#V!aH=^&z{-8%Xno#faT|xb>BC$r#RHy4@}TeOWC+)WtoK@)@&p< zM)YYfDzaqe6^G4bzQL9(vuye7+4JTAGOK$+P9WFn5TFmIcu3bQGP63a8R0R(W?3;# z8#3Z=vA`@CD`4*L)ajux}po(gU;!3>8i0ip zeDB^tJBW*`kZ_tw7mjn9{-gMvWz5G9?X_#rSUPVrZawJC<0uOs%+o%64Q|Y;-d?z( zRU?{-rDijLhpMdCv(9dyJFbJ;4x##u6N>&&SB2P@r`48L*d+vl;H%@!5>iVuZL( zM;49q1hsjc7ZPZI$seqzmVxHa9BYc%e`9LiO17luGcn{7n!nJUbTaGg-TP<9{ zEWs6Q8nHT@i)_`k43YWFFZzA3i@*bPw_A5pM z)4U%UoMxwGPxP;r&ldUhB-|bK1fJ>W0d>t=F zYm3co<0azYp-WFfetDdAx*(TTC?PxA741Fc04nw+;zSG#4%>A!I0&}&M0tQ8f8ZfM z4gfOnwn8V?YUXi7d&cN2Dv8MtXRHVks?{2O0Aq_BBU(fOv-c54dYp4kGvyE^4iq8) z2?vu|TV`2sd}!X0LDUD6gK%4h~&9c<^BMg7&rIs9qh{6+dEOP>x)uKY^VwG21>W+6>wo2KFY zasv2qaChw3VU8uUy}p0i2T_>a=N{o3a&+1AyRa~?S?m)fhd9M+^yTGNM-%v{6PzY} z@WB4;;~#&~^wFK;4i7G0X4$qHeHSiVvSrfH${t?^VFG?UQ#w8h-*K`w>NIke?pl46 z>^c&90yz}%*R_(10YD$<+GqoYV$145$+n3-$`w6`b{m7mwh`rzy9mlbD#N)I%Di&`)CDoaC80nXmRHC3f*KW+r9e>Dr?ng=JL@M z%3KFDg#LxzQuhheGwPBO`)@t1?h&WIs7FMSB(+na^BDIq`emHh67qRn`LJ+;k5IK! zU3`)b+VnsK1bE@K*&?LJ4@DAP@TqqxpLWn7=@dc^_FW&?MFSXd$Q}6l!`=p5!>PCe zu0}+QI3?x;`3_(0WyTc{*mDAT>g-hTV))<(qQD8g{DMqkXP2Q6LcO3e-GnSK=3DA$udm5J~D_uy(iO-vDW{YL2TeHn_?3mSc z&Mdp|`?K!TeNQGWF~ zmiCr%+NzmkKe%dx?vmE>dkxt5Y01;scfb3Z=?pWjM~)n_YlWJ4?FI7&?b&89fighO zgs|P!{FDLCI5X&Dx&rAt-}%0M@0T+|Jt9BXEJb~)=6}+EM>$&?@PsqNwgCpWxoeyH z$*KwTsAylY83~X2X>rJaKhmNzgeHCQ?S_JhO$9)nHrh~X&s}Yan7e;RRtD#GL$*z~ zLa@|&fmJx_j}BbVUieNHblrTw0;eRaGT z9`P8mFr1>ttu5`KK&k!|bmjKgW$yVbuE5!`EsOR+a(nDJp~SVaL3pr2iQ zMjX$Op?z1$c&kJ%z##|!&hNtEm9AN&kF4{Z4nRIDqDTsgeMLUXOxD#6eOgb?)jJR` z)$);Yq2RYZO!2@79Wg2ceO$Ld0Y{r@rGS_QO+Dr zDK1YJ@d39BrzkMRR%V_ZoQ@|{b}^j5C6I10oR%>EDB)CI^4H>|ved{gaH0#1vZcx+ zoIC_CCfh1b8JU;A@Z;GRzj7=4tzY}c**8voBYWwYm$G4`TA$%h^x<{LkBIaAG9TJ$*g_5i8I0^Q%R=$d$XGoS{bsCd^bcK) z`kU%4ET?rT^ue@3z>B!3zajv=H2u%((rV$fnk~cyFTLOt{m|<55xdm`pR_m(`sFqy z>Naq~Ce+ta)m>z}44k&oN5mC4bJ;GA)9q9vPT36n-H?Gu>#fWrTN9Q5qeD@i;Az(r z#ez}YVE6gs%33Fn*`21L;}+H|9g^!nmu ztc(iqK*u$7-#VYvH^p%f9*){Z!2vf8G5}awNq`UDZ`G{f(F1$3U895QhHQo19nDvAp@?FMlk12cyPae0K-czUE%U*l^ zO>=yJby(Y&plyTt3CpFa3HOKjo;roXmNo3dq+o4v;T)dVGUf^G*~QuA+9FjwtFvG( zYz99<8SQJ{@6Nv?C-&rTWh6@hvBd|rVn)mEITL|ZAPk6*KH311vRY;!*$0lD8yeVZ z@VIJ?fivtc16;nc#xRi8g4spUH>Fh%<61ewwg9$+u=3FRE@hnLrcA9|^$~nx+8?Iv zwqO!Rx~29(uwezCZT)U+q7uRbb%no@o$s};Ws>OdVy%>5MF4KW%TjTsyeMy3erX?0 z*yt?ep^6i`%scEdvVl)vnJ!dhl$VY{DjZ%I=m<(l5LQkc4Gen=8Cm6|#kB}j5Mx3r zVI$Co+dzAB5=e325@dZ}5_%vq#J@EQ(Wv zbn~({IJqn9m7o1<+2FqY*;oJhKh6H=d;dP$q5Bg@`bRYax6OE&ThRWj=^NR^>}0n4 zxf9u!fB7F~KlY_BnLe--?P++jBtW%f#FvgXip+>_N9U!wwRNdde-oDJ6!)z2l{#u2 zYSFV6IH^O-cvb6C7tWj)>?(GF>f5my9Y(wOq@LzhBkH!<3}vaq2_&0Ugr*#<;|!aT z+r~VOM}bp$%*nC5o_jHz#KTJ!CvfRZr)3uOc%0kg!cOHfB#u0V{A4?5$buQ-+He-U z_|zFhrbT@(Wi9-Hm7K__NSC3EqCjF4xiJqroZ zwnRP4^#s}HA=)zuBGD6%?8vX&o*^>=`%__=!TY|xyuDW((WF2c=n!=&4dC1;`c3B* z?`7aAz`02>-LiSR9X>OoD}p!#X``Irq2Wg%iPIO>9LGR?;={6;!q4VCq z-O)bOx%oLO($-mMrW{JnBd~+3Opm=D7dE5I9=olH z6)DtvWW)d$_6fPMESUi@Y{!%i-D4{WxkZ~v7i1zE=k>1lM z5eRq8WykFxEENdOFsIAohm2jnN$~e&$|9V2dC^Ro^%odXI*;+JY)i|qIQWm%f3>AGPiGTk9+F(K!C#Hd{%IJ zHp?4)A~$eGAB87_mB`oSS1+T`hQxc#6+;aJ^znz`LcT$0g5QW(-49m?yMn-ocf7WP zH>Val;t$+rF7>Vxi1%M87fO%@6Np}z0wq^jkfsFJ0T)>#pEuS*5J>VA5#NL};;oZW zKsp7=kAEur>}Nlhz4}u>nSJ($KW&FpJ#}`G-jfqp0z}oD*Cp~C z=EI4KjL3Rt&?_ivCo?7etLm8Z*;bcSwQF^roYb`@{cFQXz9$W5xBctrNK^f7WZ zeu5pI(g9^M4cW@7HkMg4&Ssk{U}l0^%ZvigI}Sk>Wof*~x#-p*huLK3my6SIqbF)$ z*)K}ylV0zV-J)|Qtk$;BC?DKAssoj#vdQaX*{$o>vW*A#6waQt15Wb%>~uCaeM_f1`-!T9!&-tY_||qR&wV+s z=d|2-UMDFtvzf}M(oHb%;N0r^qQgBeIyua! zj?ZfPrTpd&;W^EYadps3FFkMenX82ujNz~-@GX_zI{fJ2*tKgq#A_nkvuBqrqfX&+ z_wEJledi=>ZxgilTmzx3ikQ~2bFS8+d|uS7F4sPtKYua1b!$okOCu;s9m>c09V8=@ z>soS8$9x;7534==CB#xwse(20#0dXpE(XM z+uaxxVb60ofeu$&IaJr#m&>(C=~86|A~|6h9b~WvUE=^eY~dB%jgF1jYb#*Z>l(G2 zcCxf6wOM3v&Fac9p5%is@CD8~|H9(n2WFGNdxFR7dsn~5hE1i;$8LGMsHKxVsM-C1@5N!Hn?qZz-@xLmN*x~+eFi1yl@|4 zzYbRU;h+9X*=K(8Kgs5%Ze@40?1@fGpGJAN4D8UBJvU%yFJ3i$U?zqART$H!;qjIL zHPZI-XvCLBi<4iORk2Yxm1`QjUN_g_FUu0Xv<&2)yr; zuJ4j_@!ZMd+4o<2Lk_@o%~}mdl2v^&6Um`JEKfal?6A$~LMI1M-BzcO*@|1b#%Du5 za}wpiGrl(w)E3_qSCu=oSZ7f)h!3=%mKkX7B_^1YE7@(N1DMm(1h-C47?fv;yo|Bj(5NGF1 z*j9~>Jww(wd7Kda^3fOVBxBO{8d$E$63R(kJ@w4KQM>l4Nw0f_8R?McHLWzjAwPcN znC*+@9j7s`R)AMvqJ!tpT{M|dSyw`xI`xk3Wj<(*aCwH_l04QQr~v(1wlgqL)~wr)H5;wO!4r-q^_Kx| zoXNUCx+eZ@a!tZwU~Ezj>VlkH9A4@gaX2=tRAEI8cv4$Hzi?EC{|!sVw!%g<+`K() zdv95~JTWr=g9P zwm4uI`3-HB$2YZS&GKu@w;0YgdfVb2B~At^oHif8g_a1sPlMZGe^)NWG}WX0USD4x zB}Gqhuc8EO*_wJLUJV^>KdHMd8F}Gg7f#gU2zf@oH^^|6 zReBYPdkSh<5}@p8Eao)B!bs_a99{w=qtWqP7T~9uo=V^`kpRsSGrG(qFvDAISgT~> z%yCcYraooYL_YB1pJ znKN?yCUl4H9_!2oZ19r~hwZZDIj#egX0(Lz(7^+CAQf>0_CR0LvdYcs0FMssunxAp zmqUGDPCVE7aH{iC1NgUTV3!WN51y<}3n#GIln$xlS|S`TW^{Q5KTD;vEb`@>?|Hg#(NnA!VuJH3(jwpXOtOI;zU!KJDa7L(XtXQ|Gpsyc#j%I8V_cDkvGBM2o}HN zokcwT_)sK(E^;3xBeRqfjg9Z+(K4XClO6Rf)xRk3lt^q1p)Rh_dEzT|H0&1|QH^WE zN$mqJp&qB#(K@*8I0ZM~Z&QW4b~rn>u?uHnH*0xO6(;T8_qng z(atL#e(3a6?Qt8Q$b~a32DWd>c4&6DnipQ{0=k$kpRG%?l6TO2Lx%%BI;>Mi9?{#7)gMo;h>Y95Y?%Zz*jN{fc4Tp$siTv5H}x-LH!yziZd1EqRCD z)e7*)jQvG9)K{)vH3x-32XGMr7f)u*_U+q~UA=nE4$a!NYs5~?PSd1xQEzb28Nk?P z0~zW5>on!l?~h6X)_0RSVGp;eoH*NHTK%;JtyDla_`|X6scjJq>g5CF*(7@gO#f5= zSO2I}IKs@#Vna5`&T-J~gz7DS1Xi+OpZD(?wm#&p;T<;9d+zeM(ZUQdTL(V4aMiYX zU>CP(iF1cm?+btnTB>at@2zbSuGEHryS+cq+%}VUx&0pM4tTMqReB;0_*Fi57reB^ zwZW~AYwq`evz^by^`r?Whb&VrjlASGubAP5c?7rKA_P`Xd&heU8KuoLL3lMV%Ew=G z@B=+qBG4AB@NDEo4Td;)Ag|Z&0`w8sP^y3t4k)x)0gF}(Y6Ph)suvc5KhmJwiZtO6 z>3O4|$l%Hzao{9>gtRetoQOJaXa(2c>rEF<@j`(R94E@!ft&JD!fE7ooL++)Mx??^ z7f!qSrGpdWv-UWBgI7t^ag-*xA#HLzY8%}IZ zUS{yng;V8Jyer}KnKT-)Dld++!%J6r=H-p1RPB68ex^fiZ@>XuX73DVu9L2R8uj0( z<)1n=bf;z#=+uS%a^l)QZN^S@L4ey6t{~RRQ~b`eoG_cUlb~@Dn9tv7gu+SyH#x_*Rl?UDli`Ry_SK1b4 zTl;hX-A2K~7SkUH{jmC~`1QKlaIFk1gy7-%cc=j3dWPpYfo1v9{ik%xI*rr~p(yTBf*f!hT_VGLIpVYRYIlXm!cI*^< zcKR4qxLxg;$pO9het^kJbQAaex9g(Gf@F#{wsd-?ywu^0cDoyHf)gWO@|D{A zJtdq==xdeuG@QtzQ!vB_y_`~wJ_euBcTollg~JN~i$s_JP-lbLT>_b z_Aou(JfLzkAeXd6kOs$`TnsA>lb-0PHFo)N_*MNgV=XSbbU`|1x+$Yb(W{0P*~$x)eCUtG^zzMnhfR0!K;@c!bmBr|-~I(Ao=57!`zqm$Yt6Ms+y3?nPF$j8pj{ zEy640mz0^|5KY+i5>CmhkO^@D)g(W15(g|o$eQvL6oI7-kx4}kD5^riXYm``*nm?w z=#=+s37lP%p}{l;a`LPOZ?O;fVs?++HsO{@)yhAb3FSU*IgaU1~zZdiMu)+ zOEwUW8Bp4x4j?DPGAQ-#>GK+tn#%^X?Ad0WQFjqTU9tMA@2PG=KjrOhC~0%OM%t0q z1d_{L?+X1>S{(sx@}kCAeT1sKe2K7wT?`H-mgLQK7Xg%XL20lVUI;ZfiBkv~koRpZ znY}SSmOZ?;V24i)4-Yy&O2_q0V`JkPcjvPI_Qdg{8F%My->&_ZQVWsR6@a~6juEach+=tFuzIiY|3{rxs`ZDqNNxPi~%S2)wa-nMm{ zIsVM%5?2k#iF9`~IK!+u>6!xhnc+QpR7=s%p3g36KQHA|2e%2v)Aws50qOy5{x$78 z$G&i;0d<15pMf@JPUr7vsj$khRJS1~ucux1SnqvFv6dW%tq~r|8()M~A^lp(F{G22 zncZbJne8PkXXYjdoAl83HwOD|YKHmB_++->hE7a|-v9tW07*naR69T1%?r)%oVjf9 zd~YuHoR&lXq^jYRa%Gy?DQFi>=qog&wlVrO<@T&&dkUK;_$3<#FV-&R{hsKbfY3yP zeJi)2SQ+RnY;{u`s{GOKsp2%+#fP<_RbD8M6eoP=IE`;7jL(`j)MaG!2@dH^rh%gg zC*|AK@2Qbr1!t54@+a7DzFX6h>k4Hic@aX#?1w%IYlEV8hz5`Yq(C=l6L$cJjMe7{ zr_W^H{N}f8FGe+v-x#-7UioZYl)Xd1)|g50parEfdhER$PJZ);2M?n$V&Igzu%MGP z)|n z^pC3}pw~v{^8_)9QQ%a3gy5xDoL%zEahi-1`SpS`%4IP=yKpv?8KZB=$rM}%sOi9Z zvB@cZ^V#LG>pI=}4nK8|q%H@S3?|k1Vt5C1fPpV1lxB5A6C!%do~o#tg?RUmek~h2 z{qM3PpZw3W6QB7nO~)TILJM-x$2raD+TD8^Vf9&EuHbrZ}thEaD12lR6l@I8JYDLVmsCEZ}N6ScERySc9{!%&d5WVKFuxaM8RRF zbdBAfK5%$(NI9$r=Zd|HA+MeQERqO*4(f2Ad0jbk@8TsWlD=qYd7e*)Epy1!Ki`%P-q9qj}4 zv#H;m*57+70Ej?$zvFpM6BiJN=~sMt8_J-y2H4f_o6+)o>M%GC@87LK7TIYnT_(<) za5=x%^hZ6#xg;M0E5Kxsiy<4v;3qj_=t(t@M~nJ zEl)EW1M(n0p&n<>OCbTzO&%%$WGs#onRf{8S$^u`mF0)*JG7!$ zX-Ii-gRu;pU1b)AKzu5WeyD7e=@AEnoc`ckcJ93eYY^=uJ&o+)ugs|Nedd`1*7@Md z1v)W=v;w8HKl1M;RyFPmx3YV8b@0dRL{2La9XUR7I&%V8Le6FEjH2d|H zO=i0qa2n0vOt|rSW=I?PBwu&^^}4+npTt+S!`>O+&9ZHV8)eok+h+N}rAxOSV``e_4@3N0jj(V#Fx~Zm^qqDx%Fl3uR%MvxP4z@wWZMpfJnk&0 zqpWrTCzm`|H6u>hJfm4yuFrY%&9}7&bB!f!V=5aQ&7d=d^Xz8Vlex-ihG z0rt+rA{9Fi)Zra^e^d4Tj%HR1d#v}>b~~=`F&(9Ir@%xFust7dv|o4Kh75<8tE+HW znMG!)vLBA6r*vgjCo<3LRA(kbsE;`0z~Q^W5~O0QRZcH)X?a6Ou%d5P&kN2Jf&C#( zeSe@iF6A?Ab&R_lCf{YvO7y^c8_t01cDW20I~VZFF?yTwqIA{1{z`BPGzhx-Jt@v^ zJC95kmtXJ+-{9d7e}gh1bi;)d5?XZP@RCt)$yl^wQarW&7AS`NtG`&~Phg`&A!vwn zI-MraxiUHx!C*Ws-V^buz{rjlxc~P279%Y;g^dV315WiBN#Z@fOW*y4C8Ggof=hy? zxPTW=1E!Dkcj-F`kdGd1ILU*JQDQzyA>hR`B0ImAFTb_MiCMg-jvLHv**cIN&?qCb zD0DP1V01QEV#Udkbo_>ghb?|k7n0K;Gb&AIhmqr^J>|&3WfA7kJFsboDrC0eCwjAC zbN1{jznJYl`h{$0-)9VWtg=`!{8a?NKnHgUUepW+onuZyq!Z&tr;G^sRdt>ep<|}M zN|T0&YpcJD!CkKvDd;>FE5LW)cJK$@h$C&2%~%{K(3*H@!&xsQgSI01JsCJd_H{NR z;zAZYBSai+7NfZ_0GBp?G>U#EMdb2lk+)(SDLuN>Xb;!g*j>A!K%RBcPhive8q@VR zI0Ae(5CYB>T|wuffR>N|n}pNLfj~G1%r2fdaa?xKPYdQGTx=qz_2Q6m8t|4a%sOJ@ zsVABCC~wiyz&pAt_fB?OrxQ=JA76n^NUGN%J8O4f%$W1j*mvtbVrIqZWJWq{!zMX| zOe7 zo9)m6Q3ns~H%F8`yx3agbL!N)_8c4>RNPMSQeK*itmstj-!o*L?dVV&K7BCo%76x^ z4WB!AF}tW)_xIlWAp688UseaayeByFto0MwFcE{!t>AC-s+SlFHh?AeRI+W)V7c6nyn}M22GxH3`eF{Q0Ll#HUHt)v6$03;?W$jc zTFT7!H4d_3@SXk$@M-rqX`e53v925gpWz0Y=t=|eW`}rR6KDDKzK)l+xDwt5xRJj~ zPrR?g8F1ZfcJmUjB3<>jvsv#ek!NjicEb(&dco=K2ZJIpFyee$xw#;MO>5tx4J&Jx zm2U{lJBuA7L}USDO}+@DD}RB!$#HIh2aU}8c`*JgAe$r+n{q`{=I=MWE;nUOw)i@XRd59H25 zIznl{p^g(iJM|(>vHb6JxcaqscVOgMn>BctEbm-C)YZ+2te6GjFo=7SGb5u?ZJhL)<$2760(U8a4jFqmS-OmqgR?gxo5RY7?Yd)pkFKntvk$FHgSgXF>hv@<#?w!0&WT;zPH7Z zrihmTFn!RIs?WIhX7P+;g?zwG{FEF(W+?f)#bAKShxiK@FJIVZ5$B!Set99Oa=e_Kzmhc|d9kVH~)jVtYn}J^BgO2hHUY3HB zd@KpY$whWZ`Nrg=Kv3_1;z(_q)a9XYEiPxObs zrcf7$9`K%e!;_WM=rDV7Y1g5FG~EBYQG-)fCxycD7_QLG2CPa`M^POuRS0cq)*=r4 zYXP?n=33!gG2Eii$~slci}WKx;qcl!-Y0-CU?{5X<>}Fw1>j{rMME5P#CFXMTFOuj z(1V($9a++#`0#-t_7Q-B83RE){Itcj!)0{08zy1{b}L*etyMrHr9@9VPG4Hq$>rbR z>~CvEx5_8o)S&Y=-m$a~hQnVOo?!53F;e=ny< z(xAE_rPJ(sCJo7^b)VpQEq&XmD=Y>Fcbc5%& zNNbaSUb8>!jp1-Gj`ydri8`1XnqKP}<(1}xY6dI_b#cAGE%Ze7BjAvaKa5))TyU<) zW(a7tZiAbK`9sAi95ZnGBXM+om#uMJv<9&ZjgHx2T=3DKo<- z9(MHW5EeSTFtmg~N023$*C%e6^R!=w7_nS7I&08qbi%+AVfR7?Ga5M6SLJZu)<7Tj zj?;&!w=ci^qB(D=oa$f_&vNeVGn=z1EptXDkq6Dvi!Rx+)D-;>TTq3|`+m*Hu#gs5 zIGk@^zLZVKP9HgX)CLA{gjuo}^*@CXofG=rv&}A*T9lLf-?+;jc z`W>+;W$pR_KH3>{@s_UC!yd4r$n-1)^C5g^DJOU@$a&;E6%N>1%HHAymD!Z8bqd+R z3-IPNIDGWTVI7RMO}`gsgfe7>)#WQ!Y?kg5pU}*=21M#)V&$F7>$(Q7DHrxg*QH$? zb2SCTdifdMravry4I4^&;(K6i!Q7i<=CD*96pmxsmV7yj9r@FJj9JrSAKe`})G+7uEg6b>&2 z3?}U;ZV8BZe%pJC!@%VnuhE09k>NB%5P$;2wM1eHdi2NBgHLJmop%xbSL;4G0}0mml<$_|$v9g38D(m06WfOCh$n z6Om)-8Ij$rQFjJQ813W01Yk2$b8ydScI4<02|&wnuV1%WUryy@Pgl^u=peylD?S*( zJbCh%W<>VcJ7#@ZDtPMccWs1|I~wU={-6Z(i=~b?ZO<+`$DT<#nw_#n7RVEWXL3~@ z^dK$ouqmny1|#&Aye@mJfDA1>9)6=`-VI@r7`;ww0TYYi^Cnd9VL2`=>N zA8<=J4esJN4HkKYJHo2qtkmt4&qkc0xslIAekq^8jWVO2t+PW4J9RW<3(n|t7@rcE z+alzL_$ufJsrK~Dt#$HzJ z#jp;2qVu%WFgrVIwuL)LnN7qAAb^ShUuzkFkCU}uOPkM}Id4uccJ6>|7%NkH4a|~^ zYI!m?a9%UL$i;QQZM@aNyv%@kPuGv!l3n0RxIQfen>-P*W4k)I z(p}mu*Di7QH>sAY{=&1zx|dU1ZP}LoMiUYHG;ztG58@cKU6#jRR&@XLr?0*1C+!C+ zaWuuYWL7e-XiG9)oNwrSFOvzZ_%c8%(+6jhKPeaXoGsohyU9t{B?f)4MVoEzckkWx zqzra4>%=V%zJB@T_t70Wgk-SH>h&N0__fPB+xD5%VIpBx-k=8`95|QsahOV%UFMN7 zaQBIJoQwVVrqum-PAhiNp5X{7AdxI3__q z-hTqp*KS+Bk~w81L$;y(PCdCI5FX;Ny&HG#t4vb|g$I1nWxc?69<`bm=UBTV8nPX< zor})#wx#MTnAhmTKs)K{eh)nAue7I<&#^Ytc`LX*IBS|JxTXARoYGG6pLol@mLkV^ zAwKzJOqlu2OVzF$7I=GfwtD#u;1oXKX9)Q=vWJ|8&yYQ~OQ?J7yr6(@{)O+-vBS!5rCc? zbXX+thy;UzN;-&kDol&a}*Q`Na!0T z;!Iku?t+Jg_v^2}bQ)H1a;2AT&L3N_EkG0uRl#=PSMACcea#v;<3y*y9mf)`WKOLC zB$vt5jlLOvp(`pVzLSo$1#*Sl^`>ioC0yBb(h3a9QH91ZYkL3(wADBn996a{Tu~fC zE*>~39sdYUSK?IS$v6e8x12>sX&k3fm}c_LgcJCld?T;mN6gUd32!x?l|;SP$@ zHY>P2I9)%>80my(gBhGn|Ac-zT?mcyqMVrohUF8aP6x6EDJU15rv&eFbqE<$q^xEI z58b|cM}t=ep2&rI^r;34?C#(SILezHHVG)5A$Q^`oy>xVI)tsxtfVvediRdAdE9}i zqa8am$krhBl?Ku{pz)3p4Z^wWlhtRgB!N$Y2QexGoE?Uy&FYZT;eLE?*XX%$?AQIU ztkg2#=Ug`S$pGzB?b6}QF2`274wFz9G#xo|NCV$JI^J@}4z1YcjBkj;hYomqEjxtL zzD-QehiyReyMI3hi}S3i_JCXP)jRvQIDPum=+L8;(O>@jy?Mu8x9TdZNjyM1tFb@- z{F^3<@9LVR*ex!b3s65W6nkUonJ(Z0nZ4e|`FL>-^)HtFk~oIFd{u9>AP`uo6e zo1nN1X=msm>Lk@m_a6D|E;`z(dLjE5q$L1{-ig3ke~!<#rG>M>;pAm-~GMMLtI|b*g@}vH*$Q2rJidNywc3~RMMReB1Y5jtC zF8P_O!1hK~ zye6%Bfi!0c%6$0@WEw9j8fK9aCjw&NLPyB|Wh4<-(OM}k1&}j3@L?kimW>7jgHJcs z1zhsNT__fV6i%I?1ZTn>$JxZWu?MbbnS?VG-tf}K8HK5fbBLEN&XgnH(2cD7a1swM z=orIa7$-*L{$0pn3}=u0(6Qw+ht6s~MKJW1IN^he4p;V%w8B7RM*1x@T(U(vI9%mK zr;V*O=tp94r{{pK@8Eibp@97O%fKxCS6aDYhX2x~t9t!TtH7t-xy>|uV`mx4{P}LZ zzM~9DDLjaTsMPc=9`0!sob5ilbzdG0O4wg`?@Zfc+wj%0`L)71PdO9KWf(8p4KH1r7rC{JW+`Xj zL4LlHK{>MyOPrL!sHe&}L8cDt)mf)L>6GnKXW(t=Q!ov8UY*GZ*uF~fvz=6JK=1-R zGunyj3~Kk3LD~uSZC=&p5TZPA&QxAL)iLJoUD8eqz+q5u@!};7hVHnI!8zWC+PVt8 z(EZ}2Xu5RSZ7S!7=MAt<=aoMKI@rDQjpg%D+ZGu>FkoVJeuq|k_G|PIJkNqDwGnkw znS-`}mjPYA4&88GLo?Jbp8%<=Q9CVzZ_8;)Tnj-!$R5TgP44UOODL!$@rg z+lMb*zN-6bAB>J1-Rdm#mnegTS?tUSSNTCd3a`;z6@^1H9Q$;6?xLXGWM!8Lf-leL zet1t#NPm*ew7gwd{C=XX_UF!>*F?mAd22p3wVZ$tIWx${DI1dx7tUWAJ&^OQ(;C1t zX#pMVs$hZ|{g2bdH8h%l+Nr*QYy{cU7GmR*0x1E1ovjH@`uYJ5(OGvboq4Pn{TSX4 z^_j?>p)Sd05aWVu35~!z0tSF^%8ZUEKK`%&^ZywAxBvDpPFuXLA2EfLrlc!E<~Sm#|7%jN>E+ zFz9FoOnxU$Xd(}kO~x6sT1hYRPG0)?Y;X#6!>6!VU&6@@Jb^+#&Zp$3e{^K}aQ4a% z1{L^9oB=oF4&E+K(gO>fiFwo3mS4kXFHZ7Fa9|$S84}f?O#|G!TIFTtkrjhYn>gzg z6C>}08+?zo+VM;?yHt<_k-{e*GY9gpor`M~UTE9&MK!*3gt%Li%9enB=>U_KMwLpL z@4z=Rs#ZeVjox5S*farI1^vVZUUz7;#RrEo*bi>{St%jkGrdDjoULJ1J0_O20-~!| z4z6fhp*u3Hu;|`Q5z7ip;4pac#HtIPt?2-(3|5s4v86u2#VQJAQN|^m$-V@ywlUiR zWtfcBw+bzo0|E?`W*~X5Xv9>?(^DZkq^zL$B-~^WGa@HQ3SDt_y1I3zF;8uCD zzO;Gc6p@tAfGfa?%yLG2A5PvAvTP^LS>-2egE$*n14m!k9>j^@rHfK$v*46;tuyeK zyo~Ftu>1s6a*`Tm2~QM3IJTok8s+oXSU56_?a!iF1Q+QdeP{1mY;G z>|)@mt-ZRpmUm_7{)ShaRI%lit;5IUSm(%*gB}cJ-CgE?U(evCK4K+}feHhz)duvj zb<0K%7`V!a>zW>DVgNher>)E!De20m4`54&ee?5$z!-*C;oE+G4%_PME z-I<&;9MUT6(9FP<0T*ffWBndSIIijsSU!5zJBi3LfTqYx`yM%p0dHgsX30b@6vNC(#wD8Z?{B~T zYQ*270m3}y5RmAcx{)l2$Lv*RqE`#&w1z9#sh$DS@R+QhF4I2quTp~i_Udw3x&GPeBi3|53Xuig#HZ%&+If9-W9 z8f607hNOEIb++hN!XF5MObgqbV zUUVLiTg;%}(yGCEKkrgU@bKZo-Wr!PCJIPdEjdKp9=SXuG?sH|X?1Ax`gVc3#UPA>ABIwE8=8)P)XU~7j~p0SH* zw2f=9!NbZg-r~6zoVqegK1Wb^kIuMPcZHhqlOGo};O3g2J-U(!`Uv2)Jxj>cH+C{ahfjR463o5DOenC@ zEik;EJAfZ~Bad5JVLm8%AxGZNDtC~Q7QM1_3p!rEer3m!c)w;h!+-qeUv*ynh;(|& z6BAwAnvZlQTegmN%t#}=l!2enI1hhi{`dWy^iINy4dkG0QX1aFGwBX#vVcFfkKfd- z4lguWj)nJ4E~V_ySGN>2ak9^<-A1M?EHTN2{{SZ6=__Q~lD_xeh6?#=a6LumJdqU=;)f~n-UUD+;qBzlY!U$>_dS;RzwxT|e74vtvE4+>pd2s9orrh;S|+RARH?GPeh?bJ>DV7?waP0lWTWz6Dn zKpCQG(YV#X6+!P^ev9Bl$9T@h@ULs|xuk(O1I-n!T*k%cuk}u@@n5i2@wuE*Ec-XI zSxvyH2@XuoU%04F?vhq3jzuR&_c*$Ppjl?Nu-((0wajeOD9>`{tE36Nvs%m`loi+; zckgSf&?|NDwe3%hF{>6dC^+0Wc8I~Lu2b2%q=tI09eKUg#q3k$X^^?*ABbG>k` z7u*lQ%Lm6Pdya|PuyIU&h^B5Fzd5^#0=J*jrl`&aKXF1wy{nS~n7z2y?oxvDw(f#}PjqkJ1J{j$n)1@mn%K#LPl(rlDZNVnBYpibK1dX$_B4?ohA9xJs4&XDM7&>BHU4CZ)&ZIJBk@ok@mw&MR zY?bUdt9@C=jBrNAt_!xIbC!LVCVRGsheg9Q8nFjxVnTtmOf)gLXX1cu^y~fJ9EabbsQ*>&RWAwiFf%lK6LUAhI3K* zVf0jbTz7Hy%1v)=g5iSp(&ej?VpuPc`_wTV;!FGjBAAy{~h0E}fc? zV$jQMC$nt~?hlA>8X7uCn>NKD02`v=aWU326Iwj;o&l^oIFccq1J2uX&mEn#CBaKGvWY+6W8lY!!L`E8s*nSx+rW@4Wfm2TpKw8%FdXHllg`yXbl55L)H6$)cX|Lq9_|rk`z)}*_b~+MWCiWg zWvwV`OD#_PqNJ`Zb&Ik~oq`@1fHF~tOc#ZPwyD>csN*_1Z@10Bx2O!unpWyjI) zs`I%6KJ9{gfVFwrHUzyGDJ!UK$HXxgla{3I2DXRdfm&l?PiQ)CH_?>e(7Quhfw?}2 zEB9y%X{(rs<)#9JPj8Dw4F)_66kkbJhYlSYeR2%1)J(3{UBxNb#-kZTBM)dtZmiOx z|9J!QVKDoUt@@vy7#-H}0qh3;@Z`KKy3s2u$^Y@6--+&RqksLEZ*60w;cqPi^uWih zTet1li`^ePHOPG`nWFpSCyvTn`h&Yc9kXI65(LUy1{yl{atR(JKIGUgNr-wrBBIT*}$S&_2bU6ujj;e~IEhIyM5+W+k_~V?jK1?rl}voMYXg#t=EKCgAAg zU;pKg-uA^AJ{sf0>Ll=C-~?XoGmfX#^fx8E8{(H&mUlE%$Z<9ALT2{UjuhqIcw|>p2`4EWjPabEn8WnoB!eHV;l{T^OebMz7ETMJ;+Vt`}$2;owJ)C7;ygI1_PPRWbI$?ZF8x$cbr^ zZigFvr7ePUgVKp$<8i)9e%MLkBQjz3@ku-|i6eA*Nt~8XVM7T&+AZ3T9{Gu0pq6p) z#m+0=8 zQpygMCDo6tgoTc=m(caRbYUXYaXVEr60q$u@UchuarcWf>5&ihAV4aUUm1Juv8m?$=rgyej8D zOaknY{bhX$9%#hLAdb7pmw8JXW_<=0_RC$v7cXA1!$y2hV7us`Dr&}wee)Zi541On z%8GnA`uas%$Qh)5`Ne5XLU8VK@qQ#L)OU5q@;>R1c9p?%2HISBf*-c7-xcmlI>U{f zarT$NFq1)HbD3-LZybQ#(@OreYc~Y*t=o3mTCRXvUe-j5c7*I+-aTTKADrMuCLcqf zv~hhS?KpNt`)|E>h@36t>*ma~pT4k-hkv!0K(rKwi| zMqJv8^H+Jv?>PM?&@%b6l5GpF-p$p9PQVGC7CjZNUS4`|LMr`%;InN5Ex5F26`$ZV zFGU;5yIF8X-oVLoDL;PCiW6MxBR`-{u!R|L!b1jZbb8+~QrFXVVI=CjXc~sqAA&bG zO88cmgnsqr9XVUr7dhAX^Ln+4m4=~B3bY$mOzfr(qef8~To~wZRK~||_#i}Qlg>zV zUP=W!4f!fS$zK$1&Id5Sh)AHd;8IzuV_d`4@1zO18#Y!Ihn`EEh*V(PIF+WRS8#G0 z-MlzOObxfhY1pQ<;sqL1=(;#D>Zv%*Pc&4{KM7~WsG=Q|t%Z{cvmErcWa|!jAzN@F zZ-p*S!<9`^Xk2h40UGCxTXoN)279;Vu6~<397hiB^MLQwU3qI(=Yo6N;FiJgq*-36(=tk& zh5Ymgbm8QC7$@{FXf;04inf-{OcSsIo_;zWo?gGMcoClDWeM9899Gmw3k}5KVVF9D zLB-zXZQibDJ&{(ENEa_&wtiU2V+&=Jk%|GOAtdkd>*M)MT3L1a*n%hUREMpV?63{4 zEPAM2E;uJ-J1OM~M|*qZ$nfM5U7B>$M7O^=0Ms-KVlAjH?K2#4+7+V{WP1-D^h6}d&=G@5u3fsRc4^m6d7M>UUc$j1E7A+di#;;nI(hP>w%wbN{Mw%78CS7hDgn=->78QpdR>G?yif7kIP zW%j+zoZruh6zrSx#sB{A|6}y)Z_@qqXR6QS3H!T&J~e9<&J!1#k7CRMVGlsqFF zwleQ~qT>OwRr(%EK65}vw4bQ^;`SGim5j@y>#cYrh7UT7m^8<4u<_KiBOYC~nI zRoc*zJ|j(q({KgPbSNe9I7E#0w;!k5gPMj49`xu>y(L4@$HX=ioMZ>5>FMIE=&5;8 zx-QP__t1t${Z;W<@&b~QPbDT_2{-kdaxdfT3=G=frOL~*(+ufM{yxy>B%N8d!0htb z)7Ju*{}sGIL+0g~c={kDi2$F$E5C>6CB7c;Qb-L;0w(~3%+WZ-R<7SKT=vy3r%tZk z>!XoWALlNqV$%7G9XOBBznBG~!yOFR)wb^DHGwjqG>8<0(^YBdtRs9EG!$Ol(qdke zhP+V-6{mC#0svkNf^-MBTgV7cNfwbbw)Q9 zobVia3mr1xqqD>8C0l&=X+Ib++c-;` zZ_Cein{`G+iPi=uG-XJf(MW_|V5bgxrY;ITXT(Wn*K;%uvJCi_}?z6M6)<)>$K4@)2sdm7Va;x+boWA3DoGUK)PtQ?}mo%sGDery~>{ z%2<_v7ma}xu+zu~TtHK9mNg-DVBaoH)UsCO+A+&BP=3{l27g zt#XF_xxR=ZU>(suF(J#Yob?P0;y(ZUROPYx^60+&T732OSEDaJJLy5sqPXFg?a`e7 z-LIWYcvZf3?Yedt+#4|={E57UuQq^#fh_XoPTo5@M)cj?A4Z>?Jg$NK2@glC)mJ8}87Q*@3yLjxn4LOxO7PnD($4#Selg+C z-?Ttmgp)cZ&U4T-Ef3ByIby(3E9xRvkSUPawvZov5}JND{l=zmLwwx^&_JrrCM|tC z$`3lO+ilv1N~A#Lk+hTA(3x;n^g<&6dTd`R>xNtQ6{@n_#R(m-Nk7SPz|>!tPvDX^ z+feX1C~pgA$tQpnYPgD{Pi~xg-;$rw&eiV`6!bPEzoc~tr}Ygj6+Oudw4g&1tGEnZ z`SHHA6XR4q!$p=l-nU_cY(aeMA>Jb+^?|`*86x?U14p*XJ!Vfd z=={I`o;`{a<{=mdX&h|PykOMcAhd+ag{=VO$Y0?9PwPbdc!ktR4TlKX=nio z@F5!A!V{j39T)Xb7*B=5!c<-Yg&~E_Z=msxG{8?`5Jw1{8ayE^1skQG=y-uM;998A zQ^h4t;5Tq1GI2&;loY&FS!c$%Q8OBDAPbz}A~ZOIqF$VqVq~TQfu3o6j^UI9QwEFS zq=OnXOq8u=i`qI1UC*L3b!!AaDiazXIu6@(mW!}OE2Nw~WxE?QnymEPy8B3tkIr;y z_VVD$Zm;xUW9t#<_%OTt*YAGttnfGAeC5Wn#KpBiSFYcYW2y&wtyNuZhxVoImAzW_ zR1%7Hd8jg%wpmv|j>FCwD61q&--~)4zi`f%D5B(I;Nb}v(Z%q<(e~&$dN%g z`6)|TAj19{Tj_&K9?B6m*yROUfkB1h3b7&I-^nUPM$diQO=-Me-+N8wvU%aej&T4|K`)#>Tm{L?5orn9HeZ~ zS-0LyUaXZKKCxTtTX4qhWL#${qtwYH`MEr(3Vb84v(&2$7J}~4Xr~9@km*=E0@niRR#*YqHzWuNBOWXtMK#CM@vVzy#e1?dT!RdIjX%7nlV7QqGl-|3eKfuj+`3uWMn@EBhoD z9)itLPax z%g%f5^1Y+2(C5xw8eO@1)sxdVZr=1a+t8sOWgI+s-IEiaeRj$dUaS&7)k-)MU^w~0 zITl-)4@idG<;;LO>kf97aSRDN+oL+>(@##0UTNURJ;rRO=4|%`EgB(vjyGk#r1gD& z&x)UPtn$tp=wDry{|~n66F39z`da$Wwk2Wl9{Bvd8)&!RYJ~}3Bfw??2^rJ&7_NY| z+ZNt8af3K1gQ6=-?@${GjfShTOX%W^K2yXc&KhpTC*v35#`++74}3*B&It5joW@(i z&Dds4gDg10GL4s{r-3WE)9R&`F6PoQk*ofRkOHdTcT93`JaI0HWNYj7s*Q~8v5 zy4RCr-oe^U>e__IEkB_*Hi}e&fd0g;w-Fkdq6%N;C7!9hFhBhThUn{0)B->@RH|Tfx3n zb=GMUM#*E^5m>MXXeomS3zCy7c4oaO#!5h^j6a{_Rlcs|(oTkOf(IH)oTj7VO;IiT zYsaJInL4LgCN^%C<3QOi zcgeriQJfvBTTdQ++qze{k50FBibz}UOEc*m{V#SK;lOdPXxhq79*E4!XHv$_dvJ4> z_V?e;dWH9hR!AQ|dF->br?mRX;F^K;TFM+);AIfY8D7q*b5{H+%N}`s*|H_0bXM zKg3V^1$Xa1wteTsz1vagtQ$((jq*T=jgWEZn>gw;bjJb$b#q;Q^xO^PC1jd1KH>7N z+n({R%v-kG#6<`i$yMBX@(qQ<*W%?9O+C0kd8U=Y$0Q|f(-r!P+bjFPk}4m3KsB~ zJ&&!IT%)qhv(XHAF`{IS48j%=txRaFfPsayjvfD~VT?yL@O$ETH3;_u;6$mFB*!Qo z;*-RE#*;t>`IMYXS!W);KUSPnj12GT@IF-|ysUF6Y-xjDymubhyX?Um&KkCEWDDcS zjzq3&8!>mr;mFE{UoyLf&v?CDUcTg+X|_w|7HC!@?x=xyr*cK7h|Ag~{a(z2`mA*3 zi3QtCyF#8NZ;6xvFV`U5QRnffI*V+>dZw*+IJ3eg={(vYmgq*7ePLdl31c-j_F-_Y zPZ|9%ytM5mb;9?MUWVexJH*RSTpwJ@dUkxtySXwzx+2<yk;Eb|%uT0k0tb65TGe9$kq!^_`3ojD zHIVe(!Ap&kqq*U)G6TD97z|-sceUFn>=Y8;X|i86zT!PmA-%Ce_DVY3s})jq)MWV} zE%~@po*hf1->-Xh)06%@B+_ZbPJYz{?2G3oN8CwlyPpFH?bx|<=SMf?OzKa6{90bi z4|t*l56P_ZQjDN^Jp#0{J()iSvm70|diDC~soYym2W9n@i7w>Kgb{5WgVywF&6#Hg@$`4;UtnYO&**P#-Lh%)Slgq|{dPmX zI3Cn~J$9=OK_>U^ov5#QmfA7^0^SZe|^dBh3)pp|~Nq zLvibcb2V_W6N}$XG=twpzwp9O2Jrd5tbghiUI>VQBAG#}$}unXOyx)g#e3P32ftLmG`;o)YOsorD+oM zrM45_9esN2peGfpV!f8=r^3Q+w&-s~6R(utJNGr{)gS@e)N4)J#3H~O4Z3I(E?m($ z)g6!IU~#`4s*#QzNvxi+RhvOC^)csvPaQwx_H8N=RRRXO^xc@q`CZp4aTo8r0eXPJ z8Q9nXxZVA@xY{lxob}wiu;)$B`~UO*$u_omWj4Jv z({AD53|Vk*GOI$A_rLt*d;8g7pp5e=7JWkYTyIGKf(bPo+i^51ymKGabyQ307hgFt zs%iiLKmbWZK~%nU-CnR6%>MD)uS~;}Cr>ONXk^9v;-$+zhl*?@!heWBS-bb}vG1B@ z@}9{iPdG*gerh{8BnMf;VorIJ3 ztAYC=a8BX{J|@NSeo;Qlyx2);D-}wTG%LJ5gQiMCNgcrl&u_GMo&f|Eh|dG+90G-2 zLtqlPvLH5RI?Rw>PyoCyoH(VA*_(h_D?ks-+AIks0~KJ}66`#{_0=K&bVs@O+ z(;!9Og~HFHR3uK zt4#XK;UYzEo8Vro#3_hbiZr9cDLeaCG&_3uHTiU74CfiA~41{e_Z;Y42FHy>H9C&_*_^iXEpr_iJaJAG)# zW5>&qChne$?mXBwI;wgsX;=-eMe{PT$!aq@jUMS-Zy8+I$X=;q8BpEVz?LndK9j8p zQ+C|ERy~L^;dRUAEndNf*IhH}n87VubkE6yGPc5sCcBRokqHBv1KJvmW2o={_T%V( z|KI-2HxraRz0YTyP_dFqpbWDTdt4rr*>e3ztNu(jpVf-=D@`bHH5LPP99FTS%MK1! zfoW$RJ(BY+ox3F-uh!HdpR63$yJ~e;Y1p=m4)$pBmla^n`~LFl+0ikrHgj&9m1k%G zHWN@hiz@$LMAl~NBmICgb{ud_3>H1urR?c%mUf$T-8K|fc~5z9S+0Kb9#Ph93w;fx zD+6&8+fZdDz7HolYWk|M=ey?S}r{+btkWU}Z zrVVZAfsRFWR^wdjeorC4@$rRhL3#oA#6BECR;X8aNsPia>LT8Vir*Lw{}2ZQ-85v< zk`4uB@YV&5ScTihRu6a)I7X>IGJ%WWhKRuv$`BkBLJY9=7#(hTHe|xS%HntAHvq3d zP``HJNdqzcdXFI!{9P3Ur*~ZBvv5!dNED0{nAIQ5mVBillNPv(-~={d5u6xbDsmE^ zsfCQMdFkR5EXTohSAJE;7COP1gUEzg%N7N*rdJ`&`1Qca0FZxSO9f6*VB1WcK~WMU z1#*5%ZJ$?eY1G-4`&wsqKG9|Mhcz3^tT>$q?3tCD?RAGW}XIe&py+q~3K z*jU*~U1vU~E3^I_V8AU?q6rx9zXC6UuW8@O%06WKF|oiPO68;xrE~Djl5s z6u#N}sar%5M;7Z6^XD zGOd?NMq@b9cPYOCoP#>6ajJbl27(D*LfU-t(y|lDk&Y(!>$1aRGyWl*Yvc|s9oe^X zdKDpdB?TO|mcCY+$L_pRUiWLua>H>Y(TXWUaS`vjWmUX?)zUMpT0Pvy93-GDOq|(tnUHOIw zXSQ2@$UvRAnU0O?j~F0eb6J-VziFc!7rxyjy0txBJ877}g+ClJvhw&=>DeVjozNW+ zB-}2Kw1vOPjv4H(Xh8SnmtWiQ5^W&1(-(N#XXDUH9sN0zLfZL&e~RZC1abw?hYTr0 zXkY-#$|`d5nO(I}3~;%p7jM6;n0u00ywF~=Z5dhOdHL(Fzm!Z^(TzHSx`Y8Rf%3#v zKI|H!d__AM*I+Rz#$cC#Onv;%1u(7(r=1~^N$nZ$9j7!;)o+U(rW&qTj^r!a7Nu2!x;>)}utQ96DnFRP$zQe)*ht#R zJneS&b10wKenpPqF51^Bd7%xJ$+dWC$xjHgl!80u2cLs&=s>?`uno2NX4IJo3Z1!E zB;t_K?0v0TXI-3VP&zJkMv@Hf4`2fdmX&zTvPB-`o1q@?VhlvWJb@(4X0XD_jX(zE zjwBpN=xRVP6lPxx6zMBaLBQ??<=wnN9e(mE4){4B_DkhAY_dhYFX#y)8Yt*=he@4Z z{t7rNfe&AtC&zII@3SlrH%~x^TrGr4{ylQU);Hh<_K6e6?Md?1 z?c2WM;L)RpKGU^x&%V(PIl@@2owx#(?xM_=@)I|dUH!}QQrmTpoj@zIm`h8X<$XE2 zp}T=ePb2?AlLc%I2Upe^-uWRJY|_>|$_fpjia7#KjMg!534MGLSC-%S73G6GwJqqG z-5><&DIPP<4Uge8eAYO7%JyP7EkWZ1_at7RueWTY1u>dsX(FGhjze6+r*h4|X*%oT z%-`Uc6=!WH70z0I6YL~()|BnU$v1i3MpX4l88?&8260B+Sjx}VRpI1J-F_x%R2P(i z38(WHF52_zRyhg6fGTsc{Xs7sH_q_Ud1EUxTNLRiU%GTf_iF#-?U9`4`_LWyk}saw zwX#pE(zoQrHaqLxG#~nR=*yZ~b5iJt;-v6_j*T#}$!|Jde6ym;5th7%ea(^23Q+dN zK$cZp22l*c@s03Q^(-OEId{v46Hn48ivxqJhic1i$lLJigGWX?wSD%UCTC)h9Gxi! zu-JUqeaM+|_*w%z27K5Ej+5A8OK{t(b`l&psN+5L+7k`5nf&HRKsNxB0bM$#V!JM| z^4{uh`uF`CS_rx7%QJ&fc3KgK4*vGHAM8o_=+Ptktuv_F$$@>QkBto*n%x}aNtijP zLk0|#@dBNz#Nf%0dG2fVlk1dN4c@I);eVt+9}7{(;9p|^^$Tc~Q&w5ebHymO6f#LW zulm+SJ&%`N$_4@Xk`h})FO&`P^GsCPhGrc35~s4cvry)pw+&6WG0=_jWFGaHano=H zA5o^deRAS}N?&0^XG{ZJ;^DcJfe;&a^0^lMo?c$SU*RfoQnJ>f-_wf|;Mu{`BfOV7 z^B`7fEDs5;k)LFQ3~e(ZA3ihGy#Rm(z=*U#Rqq6@GAsa@5;qz zvr&WH9NoEj%vxz!(TWSW!Dr&+ zT?XV%qX;iudXvvVoFccI57;T&lpkVG+0TqqaK`xzUixsRE%f7*zGVx;d`MAWRL=x}t_m;4J^X48X(o zxexKA2EIp+99Bble{}xJ4V^vQ61FPJ>?AK{Uz%24J|4Lip zG@UMI(E(!h`-ZlC1Md@U=e(=)Iyi%&0mwknqCS9LN+j?IIUwb^fh(JLTvJ|3Ued19 zzR26~GP#`f*+PR8@wLm6EKl@?{DyH>bw*X!Ku_8{eA19ll3y=Q%BSn1ab6leE1Z=a zyEyygM_!V5aXRlDILor#$ZuF@%{5b@cW@>zX_KWsQ+~rbLk8orO`Y}Oq)u=Uzv-kZ zUNoO{&~U=|hd+GgZHj5DO^UEpI{(m4pwrAbUbZ-Mx8|?E{yw^`yFfqx?34$@PV|94 z;Dhb3c#*|V0C#`0HM5q<2d1w^Po2DuVf!}S{=meXCLggz&{0=0py8f#yv*Z>??VO3 z6oYc^DP{3s=Z>wTr&=8yy`W8tv$2%n3^|aXaMLbrdb@LU=`0SHT~BVY8Tc8WsyKJ9tC8$Rp)^B?Tc%d;;kljWm9bFzIF5V=nJjx!gn{YTZFrN z@dZGA!JWMSD1qGvct*#5xT}{y|2jk2@Ag1e@*+h2AAMEy(``eMqx-RvyW1nB$@atT zw(NRR8=7s)P`?qJy=|!a16WIc8yfwax;-oGY6$1_Hgtd&l}T)`#%by-!b*n9i~LlM z;i;C9@)NUg$4`96~~2XH^kywlq_!aUvxM#)BS7gslMxuUBvFR7zWIl!C1`(bo-%#oJ>SdkEMz|wnGcZuc}kgSTxLxqhZNJMEZPwBRDxcwNWk&lGz8Zo>`vb>onYKw5@fxK@%fKvSuFxJL{G3eqG#p$B76 zxJggKwZR9N3Knn!@DNV&Eh@i3oWkAarQvg}al$aHBERIB`{ZzJ!e2OGk^?IhzL-IO z=ap6*g5Vt!2Pdp%mh={)9D4)@9g|rDx?>i3^&d(WtRP^6>F9RluyGS1aO9O9dPH zrC6riTtq9-F56XF^V7kZ6hOZKK!OAB8(#Wto`i<4yiLyPo%8Ei|K1fdhbh01(GX7I zS7nuOlb*G}IjQ`vMrY%EPM06D=;EyTv-}jV@2;JcI!m3CFJ+Xn?cB@2I<&kY&(AdFTt2RaRse$d)k5wB>uu5ijN3-^m2;lc!HT;C-M$ z!xtJjA3B65=gp6K%4LEwcrSC3nXKaw9=uHk)?2L6bba>Ds$u4`gT z^RGIO%Q;=j4RSm{)J z`aPtvZj>PNBK^oqoSrAN+s+HliU#oW&fof2s0}qeZJfYswP*U>#hDgkIlycc+PqBe z_ds{I-(B+pO)~ISzen#9_At&iFPR7OhH>`EFZ4;i)#wa9-&Ex>CK;k^LX&N*qi^1u zS$)-0QKG?0VOwHZ891>_DVg)&OXqwyY~mf(gh0fAem820T;(U`jIbh9PcTk?{xy+G z5R)B3%$k>{T2TbldWEB^0&fGIi9F-E^FBOk#ea?cp0@u6s z3Y0bea%B`+!ztW2#%Xp!4&(<9n>I2(+0Z>?3*;kyVo=nUjcgC!2i%kV^;ikM^z(|F0or4M$n+0QF*KLpN6vY*E1qAnwIj%v>Q!5PfLOU=3cOcIBdg9sMC6hHTL>GMs(}i7Ti~M&5pPWI|GT zzr^%ni+Zm&YK>mf;bx^1UkwE6Rj#jkryZ)VRX@=Vuv+?|0y^5Mc8F_zo;;M7VD0c3 z$&Um2$;p7GFQ!EX)xQV#FOOcmc<$?W*rCAoT+*`jnfMrthHM$czTt(8pZXck)sHnm z-n4C}2HIM^l`|}N7$pOuCObu+!t3uQ7TTgVE}K-JNoF#Y7lql935~;BA@X3^@GawgunAtD?keIOpcM zX{2u;%YgXSt=m55eB#7$Im=21Rv)uurqf1W3TK};?%ekTVD^=$li5mtWM#MOUnZ9r zJY{m^Z-V|*`oUpshH^u z;iw7wKXhP^&iAfw$A~hQ4Z@tPt$T80$MBib%63WQM1|9?Xx`b`2ekkz1>|7|2%RoM z(XRRTKR^B{f%TFAwnv8xXH}cEq(vF-20CT@bsNWSy7D(^v3UlP-+XhX_D1_yD`{7* zTvKQGvIfM@wEBZXD_v8fmA4NW@X&lf1M|z5uKMopYuavlNY~KdwH6*+Cw?dbSu$M1 zki3-oq|dQunL)oC6skTapmXYcR-LZPC&8ipyS>||%(sSQ4T3@foQvHmdhi0iVaxW> z0c|y2TEgj5B_Gj?0b|d*HQ3xO-w-!7@M56$>8B?~2ag^bJ=frs5UU-2^anD*_UWJT zz@USj3A?nFnzV%M!}&+z)DPqoIRpO-tx{gq&K@R%_o!S6kQ`rK(wWrTp5#P+PvjMx z-46G(y1PgAZ{z{^qyD5U;A9e+ZkE?;J4n(>B*y~K18o@Rdbzr2N%hIelgE8#nSm@a z#v?jMqfUMHNpF2Z8c#k5{#~8(MOK`7{un047EuhQf#>imx+|J1h{T?qa4}&5Z}elZ zRVKf=(vaIP+IAMEfnAc$_Rl>3l)$(IFtH4Ei%ezcSs1KY0mF?7Q(axf zQ9-(m(tE`yKB{ETAS!*#ND6e7A0*@>M8|^kRVKZ6C15zb1!v%OC96HyOicE5NSv>N zOTj8b8P}JWN(YMIEh_XTH#4C8gNkm!E8+IxBz`j7wZ{q7!@Nw!IgOXpS(ne5aY}+= z3*?9}E6(|KR`Dq`LplR4@zBBcrH7B7`|Q*K%~Vq}@KUA)Zn6L`;x8D*V@i_RCc#z#Y| zSI;$>Kz!II^+s&fV>@f^9*O#793LPPXTL2>E~CIiztd#Yg$p0hO6bP%Zb*K^IF+|L z$J7ruY_~sdGM`zN=H(Mz`D_b(N=n@h$S^O_HuTv^(u1t}d6`^Bhj3XPn?MDm|#jiO01R<<*BNR`qGr?=Y4j4 zUBR9=Z(n*QC~-{4neC(*@Vm51_e!>K{mw({J8T$-dT(5}b5+qv-M`M=y~@}Jdfnb( zJxq#x_0=Ej@%zW0ejnY{cKPMcKQ$j!1xso5ZX?>Nms&}@e*L-!XL~fEapLG9Pt4-* zD(h#;Aptq?=sHXfyr*m^rj}9NkI>ukHng%0!SHS#wV}^t_rG1ZuJfw8*68dx)gzlm zCv^1ZrFIfL#c|!khmXALV_8R_j>r*K+FqNE7&PD3pc&8543xPm_>9gAOC@uM z631GX%W1?Q6Y3HiSl+z*$Tq{uE?eQTXXx3bT?_lPU7z}ut@STeF0)U74N|w)?P?)_ z@tS&Ce_)^u6%J@Yyj{D_wxur){)hV@*`AH}bBEwU3-RELa@kgVmczAdLlY-F4Z-b? zo7@K(;uBm$@*9d9f;$u^u}asKUSv=3QwGbHL<-G-SH_7EZq)g)zAzwz}; zU7aVVQqqmA-()~9Hgr#`yLjK`?pwSHZwgKR3>M-g)%5T(RmYMK#wI6rb-`1JcJ-WY_f!nb|`_+%r)ku>6E3F_u(24BAR&MzO+u8B!I zI*=*5E!fJ8FAT0Xdn`R7Z*)9wy+Hkit$>emnPFZynQzu_${EL%aCCN84$|=L!PRH@ z?eJu(>Usvg`*!0e1$%rcKL?zF4qL;Xnh?(=&DdJjL!>MFAl-IyC@$?5*tWp}ZY$1O zogJskQmZ{H`X^Oc>BGsp?1N0}Yjyc_z821bHniXqQ75mKd8a=$C_mw|KIfEQ;GEo_ z8pLTC_4iei56iad_r&UJSX0WEo`&@euT>qF^Ao9xanMk#93*<41g7h zBwZ1DfJY@tUcFO<5t%^2%Df1V(JMrRP@`Uiak z;DR$~h`cpU6-L7$UVk-Q@>W6tC+QQe>THF8oj7?z=)(yu0T*RU*lMT7aaMUJ;;a}K zjuIzuhjCVNsNh--llZLYPd>YF^LLF?VyCjMd8zrFf^!a?wQ#1LlsG5xA|Zu`w$c{b zc7nbLiNp4%-|&RfD(>6EyC4HOR(l^k-Y|M@`wE-d;Ms8QJbdl#Z*(eF_Ab|UZQ!f? zz{?#S=*BiXc2d#b)ft@j+KD1;&s7=a*?IL4W*v5qcUx?wfeXB%{8nX)GK$mGToX^K1GloS~-< z+{7u`$eW?$lXp4T9l~jPp}obYC@pxQp=5As3oUROF8L~*LCccL_FkUMoX*c0M9+ z>^P`{ulE_C7o40iynFASSEir7dZufYe#UgvL0vK*9z1EV&Y54fsb0Q(#gl@R={@3! zyNDU!X9s(2_*lIxFjMsYNGqJLUTL7d64(5sjESd2!2bpv>dpZj9c!OCRNaqbtNU8L z!>>bIp9y7szcC30FKm@%Fm>%;XUs{`2Y|1{bWL zz4oe_cvT&ITgP#p>fEhMy%3C-v#OmCOvfo@)JxPgl(eRv;x}>Z3R%(_V{Gb>wqEbh zWXdPU54*f=l6PKqJuv9TeS_5hG z85iY)K`uJ^@{7}+eAuCF(a5D6fKS>#{pnkmofkTP%}Vbx9en^6Tbr{?m3e^$xTJwN zbik1byu&|G{d4f3jwc+Cfi^IhxLR$11K95J!eAGhx^(@v9anBqy}3>0#gospCsiQ- zR{8Q^TR1!BSPjO$a>A38JiE`XXUkvl*s0qg<#C)Cx6Ngo-V11JYywJP+it5k-WiUV zuw4U3@96Kq6KPvG6-kO|I1N{Q3H}-9gf_H`({RW7AmccJPw3@kO>l<%==mTYUUVH!Yw^8W=*}ITk}?x#ju5{APZK#!t0rp z${=7Y1Mia=jGjTI1t!3o)mYFVf+R-oLaR=ce%iQVB`S=}ou8_M1#CLdz$G8#@STN> z_uvi12zFVZsyL7Y&Sbs9slo&t$03Z$*&sL*u5pqdLaRWYl9$}7O*C=j)q`i&5GaL+ z5OEDJbV~bhW+!+UXF^T5m}A9DffKyYntWRR1uw~G;2f7<$>%sP6;2yco0s*(DUPLY z;hP}8KAk0>VSix{$c9ksOwWCGLIXkP=D9jMT<3tSp5VkocFB9}k9>5HcqZM&Yqz{I zz;zP5TZ@1fNVe5MFJ)p#XIW8YWd;6*&qjW@{!e+iaS;#JbC1o#2lC^uv4z75-2fBFXeaH@(g||=MzhUNI>7bR48Q=WX`3gZo4~=H>+C+sO z(0TGg9gx9tsCXg1Th5RJ1Wv*UTxcb46UK3l!7Xu0J{e3;fwK*lw!5e^x;RA(c9(ok z#F=uhkWzBPE~`4a1-FA!F8exx&fSnJ>Ta1OX0+?kX*V_7f+M=?v&j55l^9&rc{;v${Z^gze09!H_%k zO9pI?tC_CLYw%+Y5VkMlY^lLXS=q8h`j;*_i?~-?(m8urR4WN;-M^6~w!!4c-+%gL z^q+tJ&I4ZVYdx^CqPVT9Ltl-~%E1*Yg?I!2%OPk0&-UQlGCM$kcnfvem z{r??(`|a1&S>ecoY|#p>!<^3Z~%3Qi~#pQXsY~|v`xJw-U;tcD|nLoH( z2Bi5vT}KNae9~Uyi-X1(dhV-_!kPD%n$5sj8ooSuuNKpYkW<~q)dV-NIO2qNW+o4! zZ$tkM`)lfQ+phB3E-U*Ch+)@dyA8}TfOBHIEqRq~DDX3sIJ2KoLI!U36$Wv3+R%h+ zISOCMC$MIm-yt{g(#1(>PI{776p(xdT;*z5iL#IEE0|rJUHNr!PL`i!JJ1Kg=GGqP zbe$zm+Iq`F-^i!z43P!x!xaoL0i(vL-^3*?D4OC}2H+CNXPiZ3;>`F- zaEEXX!8Ph?r8?2hiW9?2(UP|-gGsyu&cqhqxhl`EAzoze9r-n~oz7<$XFKmC*^c83 zTS!_b@kxBqk1_I=Eg*lG7in{7>xt#<-1kdg9pCx&vSKWr!9DtD*BpyLe<#3xF4 z-leNtcB+E~D&+E5okq$V4qguIRl}|Hbav?6a7QD9c5i3XZ?-pWl*12T68LlAG{Xzx_$w7GA~)Sjkm%L975Q4{GZ6PGajDt=-N_V31AJLDOcdTEN5C*v|7tx>g%u1c+l$en4*srTUK`Q zAbalI1>X}&M;qEcm$zvKxU7nkhJgUr&D>H)pF3RHzMU(+ljJao4P=9@q#pU6H-Phz zRzqB_)^$BxT3G|-cbE@+_1k*EXOA;JVpEtdi2G7W=2 zJh`({&x*1qzywoba$ATeXjb_tZ`W_!(7R|ip^-r*J5oN=Ib(L0u+^G+g>uP#;GaA@ zt}?kiK*i)J;Nytuo(9!+jHbaYThkd5K$~qyKenr1!1ns&#}Jhl{o~_@38;HICcrn> z7jkq7*#aM%>9zqm`RDk~_@mVZ2$AhOS*UQ5Z``iIHMy_Q!r6ffJpES?j7}U8*#{ZN zsT|^O8lQEY1Bwh4Tz-z>gbvdLPm|?mxIuVA6)n)i&tYE3+mbEmXOLguY*Rcd&T;w8 zhcoG8*9rYL}2XVG5yM#-@ z>E_M2zzL{|T0@PGGEKgAs)})n2f{By=IP>u4`^T;PNvE4%wPU)J(Hlq*@YWX4edjG zcGGr$_u&Nc5Ki(?MrM^?8|UouEAxF!I8$aJf<_NXueZz6&~0Vl6$3E}Oy(n9>TIJr zfjo02<-X1^tMZH8Y$K7==10b-%~KI2-DR5c9eKiRLoS})kPPVX zv9*sgcDLk|;*mOmZz|fh%0nd$JQWOsg`HYa*)9*(G?c8ea0c3gcLB}{6r7g7ia)l> zABb5kPCAo*;_^Az9M@UCFL^0>kJbV*MS(d*)CY(v*5T7OOJQFe>&)5-X^mpmp?)GgONVd&}Bo3G!+pnVI*zdhL z(@y$k3ot9U%rK{oPfE*s(tiH=DQ#U`)>i6Eqo05N)!Pw2KmC~p1tlLtaAu7I9%uZn zsWW{=E3*t>8KAOq$o5G(pIHuh=6o+(X&Jn7ZkKJAbm&QgPWWSWio6VRuWCj3#?4#) zJFHd4W5oFvGtUCYDH%+-@TESW({7RX{Cx)s_ohZut@_PF&dpDP2e+W!taR& z1nPAT=#L2zwktDfVR9rJo*!%5HUs!uw{Lq}EjpcKKMdXu>ROo52F_bPR=TF&R8D@4BZ0{ZR_yWizHOV%;LE00G#PSO&hR)Ifn8HBIYRNbAO0?%1g~6H zQ=e{Ur;wFtnE>K$Y8;>4&^1Gx(Pq$(?Xfb8?fBX&wf)cp4_)}cQq)NMxJI`mGrXcB zSNx#FI6*Af#@ridQI>SfYk!$<5?qi>imUS~&HHXck-%EwOkU7SH)I^|%jfbp?}y@s z;I5_4k_Nt~;UqrO<=_{dvfbi212wt}kUm>e;Q&aaPSg3IfIH|b(pA6paxkCZP6|W$ z$TJkbrg19W2n(2N3b$f>2CEXYK`pKH@OJd@(IaoCMmMF7!AaeNd|5StCh89T@=g)xefsQ~kAf_# z{u#Y~F?w__c8l=-ZMC9^d^bwxoO>h>aO^KZgO?@A9J$+`u??L;-LfRdTy6(u;bQ&L zKr4fqG9VM2jPagHi5oX=*;_Dr>9b|npx*X`rT7MBDdQ4$J`crrZo8#bcy2iGmT2}re+;9lCZ}WDq%I?^)V{}+{&(`jF19nK+WXm+?aaqaVzp~Fx?ilnkS+RG|c00B@ zdgO@k95hbquhgT3$Ev zMIe(baxkBe48;${eF&UG^bEzVMz-$<#U+d-cjj2Nl})QL;+p|Gd7B{K^_!VzW|!$Ga)&7c@|PRc zVcHbuby@A@O#Snh&+M_00mdH9P9qzx_Fz^V?~HhJWbm8Y2LliCZR(6}oj{thzUjs% zuM69P&_h8N?hwwQxFLF`@vzG2q3?&5EvUxubKn=gyutoGbmychbPncPEu`K1YQg@ksk8qGqzRIsb=MgJ4Lz5 zg_UatU~IEw`}1^OqGP;UE3<6x%#L;93Ei@KrZ!p2MtOEL<5dNFR|)j7BZXBc=))5; zp0OFMbLJI!=Z+0*g{}+(!Dla(?nTsp!58(8yzy##;C*ZYOwZ5^)TCLv3X=Msr^7cX#)uj8j_4|KBrM6gQTk(JkftTdT_s2 z0F!oLQUsY~VBmwEK9=xIZ4;iRIh)GhjQ$iupCh{07`hqwaXSNpx4e!Jd%Jb}t|wct zTdw?Kke~d{!W(HRV`t8M;Q{q`-~DZL_WT8(&1M@uWrFzAr#~D0qyg-Oix=(jn)igz zNn;!6jPu;&#WVbGzh4+_*TmD&<0pJiIOmed!(`yHw*6z{IB8?B%PKB?T;kywPt{E5 zq3al2>!l{Bi3_}_6FH6BO15Y8U*f!OoCO9}<^|3q8|#aM--O#2KNL3$P8jLiaj;sr zeY7S$;2e_QP~Ju3-Y3ovqB9i->{4cITkYDI$4ZJP)C1md7^Dm~epC|1#(R{7A-96w z(SX#AV&^Ivke7Mca+U#j*X z5f0M>O$-W@kM}&|48pts*FpWDWB;OA3AhM_*V3H!&{us zY5>o9;A0x}9@SQ7>J3!ZCnD_BUVb$&XVNd>2EAm`la;9N>X|fAhPsh1(M}$=NVy?% zqyvB2C2twzyu6`1QL9yKU;_Jz>h+imLBHhv*n;{dny{e`v#O}NHyrCEqJJjsJlAj zD{`#MNwzS~!TP?zk=reu@4k5Lj^#uBz_x7U!m}P?qG%%ym)LHPeQ4XS+OnHBuj@Li zr`}$S{}0!w9T8lO z#OiVebjY<86OWGe<*R2huJXCG71W?;NIC&3V z>u4?8&;lniZ%Wd58(PX1{mvr4u58UqiF2UelQ$rwK4-;g8Fl3MK6K`@(uD*WnV~o6 zb{!_>OI{)li4+4~rFEw05K80-OMiS5$P{gWESa==uZ156r^W4!oHBvXzf~LZkKnxe zrX$aD3$7{>4}!1&{bfA)0*>M-eELhcjuUJ;xGkJrdX+G7I&bn);}m^@n;~&9pz$o1 zDuN9fpb4?hhOt!>`shyi?lJM$;sqIrM+Wy)0@*P$y@J6z8eZ^_kH0#ul3&u`{FVG{ z@Jcv@lVj3A>*6G@CmRwcG&-H|uSRETIDIsGg3jOr*;+p0dl8&NI_t`>tnED*!Buw*ej%WMWuCuVaG-FRg1dNgw^Vy@bNp|9` z##(7*WtNo_8nTie9K1Z!IUTO>Kt4?zl?7#ifl`!1;u60r68+}v2{MaDGG>oS$AFd@ zW44E_?A_%%`t~hvAHC6b=V$6D+?R7Jw%56|0S7+4(ne|0nLPcrN6O0P!4dSh_=%3F z&`g`siU`G1Hub3A))jPDanM9Ovb2sB2TszlY6Km;Cw=P8>6FJqMZ@jE>4u|?({Kd~ z8(~YNZH(U~PRllFSOBMBhwT<{J2-3kRkRPvPkc|~6IM&vmV5#`_{55YP$A?@T|J;P zN4DXH&O}dTeq-`eJ>`|UN>{{}I5}^=b^DIdkrO9;ww~>Wpdol$ojbGOe5oc}vbblIbAnAB(M}5v%GmMa$2>R=M>{ul&+j>3 zy~1|w!y1@n9i-%j6=kz&(|ONd6RIEOyL?qAEF;Mo7Ll|z{71UT7SD8;r~p{SgErD) zFE6z6%V3xly%+#A6nzX&)Uiw`P{**9HF-_i;Dh5f_?Td@iz7j{$2RqV>OaN1oQdBk z+bJL7sKaP4&_|>#%Nate%e@5}J08H#dCe=DL||7BZ4Y%mtBFi1(4mH=Wwiy+^PvOX zk=Od54P&w;>I$_<{1abH#A4Ul;ADBxr;4z_p1u$0Dj>G@lXlU7tYg)k)=y{s=!FS82Bq*0+@K)pM`%F~&==*jSqy?#+XZc?jEH#Bb=y#6mjhSY-;`6- z^U7P*Z}g*z0)ggKhB~&RD1?l zXf1F8Uw?@cn@V0voaSW)oXDI2ZRBxKKKF~jrC_*IaSrr*26RT9lDv%JG);~i9TQmL6uBp-t2UOIFY+BxxkP|Fge?&|HOkIrSl9t{vaarf)jq( zS~-q03gT=yC4mYqCPqO`9Q?*H$!o7Blg{>Sxoi;s(3@$I9sHCyp${1*FTn>hto=Cq z_#BttIL_=Gf{9S#O!*MZ$e;j~;DJ{Q9|F2Am9jnj4_26}Xc{CfFRa%|Ow zaY3CSz8a@YZ<`wJ?OMSs1G;BhGPb-&t0dUctbs;{>o8bhU{VF%dwCHZS@!IMNYcmm~4YbJ|hM<~7iMtF#$6R?d2HCcLT<7UC@1zyTLJ+fdk83#Vn< z)){E(I%68n3FQpDY&%O{#&Gt+mHayTtYusA;!Yl*fv*s7D_d}y2B&qWG*flf!P(Xs zZGeCzFXESuXDwSMN5o6gQ|fG&I-i?#{_^d{Eu-Z>yH~9LAkV(6 z>XK)*`~hdbt|h|5GlN!Ee1~8XM<*I5N(a?RzbVH*SFc_3>eMZrCC0H8-iM)$t5I^3c8@oP>*f2wAp$=cUpSvd*9vDHLAmy)MtZ8Q9Ih z02f$z!R9y&>8k9R?7e-Xb0}w>y4X7 zcQk+}T=4opzBjOE&b50|O+<$l(T8lpoVEMi zD9UA{QkZ3>gzkd~Z!4}EC$!tM=t@&+*iL;Sk4^HJO$4XtD z1uvni=mU$^ik`9!^<;U$XM?lSv+8RCoT7sgXP1|*{IIT&&;mM}gj4j?<4^|cq8*xB zW0NYcD>R5#s0Y08ng*T3nQ7Tu&aMLtSy_Ef4-z`6dZU$43PLSRDG(wE2mnQ99B_F@ z;7d^<5P=~FbfiFuq+l7b;>ZV1?)%+1C(bmgHqL1L0%y}%04KBvl^JHXlz|R(v8~87 zC9MN|VpQZYAAqWOY51&gcK9?s6 zR(R=Tu|k@I-mcASyFp{~Q3|DtC}&v42JNsg&)7|vN((Pr&u;5n5-SIBc95V{da-hl>>w$_!_vDEpKdI$*5EF*sg&9X7pbBQxwl zLlg~Q;T1BjE33;{56-$i!R9MnU*}JTiCga2A!69O`Goj5(loiWB z(U}*%+I+UgE&*RRh`g>lXs153!Ktt7bo@sFKH*4ubepzI2Bj60a-rblR0*__~B#) z8{ZElS?`-h@TI;f zPYiaTi~Eq7B*ZSd+rTmRJF469vWtDPN}ctAzXcOM-2tZ_(tnpT+7JC%zjZl-g6M}O z9b;vid=x;1?90(F!*-yBiC4~qLJJEA95>jeHix(m6}TRWvU5|%d02ghCqmZqJa5pI zdajG819_p4@eCN>Zqe3v9pibSNn<9sv60=oIDa3qaE6`_pqGsl0`ncoY#Q=4N0+g0z~mP4=`ckX-DfBTkgwhP)< z+6r%9*Ecx5@~(c%PW4TAL48`*)!nuw`%_u&k(Kogn-khlWI(^CuFH`MfkXRg^Rq=B=NpG7bu&aV7AI%8#&t-EZ|J+z-eV>Bq- z|9D7O^gsi))o`Cu82+ZCuvaU?;WhE03axZgWkH?697cSFhiV&R>pu1i_6tAS)VL$}Y42 z42l^9<0K9qB_Ry z%I7)?DNTSo7f#VIz)R8{b<_aPE-wq{EO4cz(KzUtV;p03Mpc&95GNuCF;Eu`=uC0r zZ9qj2FjRK1Wy%l(f%OjPj!p@8abnx>P?+1?=<#m+htr?=UQfI%a~AjSfBywZ`${8l zFz8`2iB2=;YjIF@K<8%}>~ggbY1S$L3p_cIFb`bFK$qcsXNOm;FJHc9ug*BPVwIAW ztNo&#?aq|(wWNI(TCtJs8qjNMu_=e5V*uGeCco?E=+sl^T-TOh^nBvT%6nVs%{l>j zP#3Zi{y=p$EBOqFSaCd{GuoWf&a}xdoj>o|QN7N9hyEG$EjF}BzX!PBNIbLjK{#^7 zF&YQ*#*@k?=icMIX!Yv7ez73H^<39)>rP{DvkoU(KEqn^n0!JQ_R9)7RnjKuBI9_^ zWH;Ze64MXl`wyQUlk>Fxb{BZ$=g!=}e)ogvc%wWxzWd|1UwK07yYGLHL%oOcvizHl zBpmbEcf3+LtBigLNE`U1T&xyPAY98c|(qbm<|3!RZ42W$s+>WGoxF{#6q zTx{Eat2Pxrny@x)D0G!=sF<(qZ)$r6Jyal7KyJ0{^=?wT-R6VL!3$4Qagw@_16Df; zC%n{gMIP{s;hd)pE#U&Ggx!)~sjmiSi>3wS2kp~!2EGX3TMVZ#F&UtbuK59y=8Ps+O*o%O>6=MYV+i!*dS z#)2F52?n@kIAsSk>a37nyQ!^j`W;(#W3_ZAjlJsYrpg{8bMOTNK(6?~!!awPoU4HL zGO)VUX9{$9cF3vJie}Q=IU+X=C+BvlAfiLmt~?i&5zxy9$9Qz3Neoii4pxz?2hL5| zl5NjH7h9a4i`N7DmotPGP z9x6+V;taTLT_hjVaITfkN_-y-rwygga%ZSdMD$ygi!Gb+{);RZErDH0jQ`FK=r*0X z^Ig0~1>K9|M2}2B;UtQ!zj$fIdn=t>oY%0b$5~xG#J<+GVVpxgRh`#`4rp4d04=}+ z=Yaz&E`y7}4>@TPPY!r?=zdeKF54Z3%fZJK-c%4wH6;UD6xEZ5MLo}pcis5SN9 zHl*{9FEp6oIvuu%9y_#et;Fm4u&lr_dt^o3#$blQHj^88zrHPfvny(=&Uc?Yd0YeC z{jnvra}`e31D-%s--N+UzAFijcf7$~$3tJ9Oy#y{rhIMK)ZeVEvZdB%cxC7BGth5i zM>TaLWQWCmhiq_vo^J_kot|)3)eq1C(-Dv_2cNA>jYB z4h`Gs+Fi;x*fXR#-PMgztIf%iI zQzLJIZS!%ae8Ao1lXn@vsQkwAeQccOM;~J}ZFby3II99iL+zy+C6}+?)qbkIlT*i6 zRHU9C%Miy5^zP>5Dx4Cd`v}z4ixOFT>UMdh;$y&&R+Cj+8mighlC{Hy=1=;q-nr z**JG+vZT%fLuA~7Kx2_ZW@t={`%T5bY|fId57{I5EN!OK%jxFeqa%DqOM_Vo%+g^x z$;fak0`g`SYNI%yj|MqQGdWq9P91w8nLTEE!xoW0E)wzPgX{E-PlDI9FTUA34$Tb2 zJ=H;bZ{IDu6FClab}X=&x#iSdIzhI7wJZ4M{@~l1x#x~u>X(CB#(Lu9G0E(tbse3W zXs(qyXND2q$p8g*g10I8fhyy1%dP;5BJ%hQ4%q*!LmSy|M7GE> z?VV@B-$Q3xp--F;?ZY8o6gY`3I=pT$P!Lp5QZNXF#sguh0iihNYoZZLf|z0^Z3;5u z7$GPNB=N+VK$U3xM2XXTg$Xmja#R;%I_u-p zdk>&zGj%3-X(uI4_$H)`!mih$Gv#HJl8Tc~B(t$xz4P|e+sVnJhuv5~mWu{P(ixQn z0wb|>?wAG56CHO}TM1&1)OI&=-Y5-Asu;<2sPJQl>Qcb{FS{bZcWx@INpM~bolUBsnmSbj}sc&GfpPVxLgjfS_cG?*k_ zkEmjY|EJZq0UC9LeS5VOTOD=|KcVBBxPc3;wN8~b=^-CDOPl9K#<%#C{V8=F7v(JN zI_S@QjuRZdQ+^o-PJGx9PV%(-R*<54o!3OIeQbqOc^AhR zdoZ;>TQhZ>vHE+{@+n3u4;7xu@~iB%^iwsoStbQXIX<#2{(BHE=$rMJbV~4^cw7;?NH-W zLRM)|rkRD^y+3D)=|FGy!FcTX#WueE=1bYms#pLaeei6kIsNOi_aF^4$hP#LT6&qsT}YDdQj$=dmPF zKr0@{D9NND48^6C383yJ16~4dJ?Bk^wWFN%#9QN6`a^rG(3Vfi&i>Y%{J8=b}2p`IQw<3nv}%MRhh}Cne48L}LSMjC%^ z7-@u^0u8ZxjO?K_o(k9)T$tZKs6*d=EFTyJO z!xpfgmR`~}3tLSaLmbe9{gIdQwqJYQcWQ?Atr`Oyz(pmC9LVmFIYrjra#Y@T-nbo^2s zfA4=fxajE zp#@IG*Kn05$}hGA2{C}?)Ky%qGySgNDxLianG}#gpUxsK=4KG7TBFJ(WJi6spHRjk9-rUiJ7S=c2v zMmG&`0f_qL)TxtR;{4lhS03f__g2FdVgn;p=t{{P(rvRm>g@+MA`<=*9#vQhyeoy)JdcS+N} zLq$6vj}kY}ME13(X4RpUvgq+`fI! zzfbAJ^otiSc(nn`pV{tkNc9=|N0-2%4)nL`Tn@Ct7jjq_^ieOyY%dd4QC|fGjm?`L zJ}N$;H)W7?BQM%;PFvvQHz)S)+PT{UM5KA5`WX56@Jd!7U_({jgljl_6gWdBMLk)? znNcS#;%3#MEx4d5>enJJ=_&a%tq8ZmNg6-vE89KsJM4;Qrzqf(#WrRwDnSu98)w*s zap+?^ji10!>xH;3&Jr$h+k`W9R>qMR+FE>yU~G{<8SvGtm0!rb5vR`?ybR);Q)k9g z$*;jFs?2b_>GpZbJ2q%iIaSArGjwMbMw_Ozq z?+JD+`i91qjASSuRIZa&(i(2cpobUp*@H72FAis#mljTFO7RKKyg0!NA0?j+&gr-= zPG3_4vQlR=_#DSM&1dq`ZzqM$#0T_rc}YEV`E2ph(HSr(G$qa&Zeb_zLPg3bJxkR% z-IEICfR+*+(6vQ$LRSv4q^K@turpUc58DOnpkUFM;lP?D!KBdzEoET#mx}S))vK~c zRhruKMf$Y|54;zQt4hHXpX2^vXn@S_b;vm7n~V)6o-^NG40$ z_juNU<;rh$P)21UB3rPOhEp<42RcL6;^CDJY1y$?%el4OD(`fp>||h`_szTKZonW@ zX>y|UQ z5C!Uw7zhDw`d!C#^-|~zJ0ks72AOPCC&p|j4eHGf$dqy)jVeh48Ei3M$-^rxnWPMf z%Y3y--6v6_`P3eB6;EhqPC7r)LH6+hrW7 znXzN!=nl zMP8+2IWd8m-n1LP(1)TWgB?Cq`;V*FCmdGAyKW%gE3Iy#%-z+|Q&nZE1Su1~)B@{$I+x2sdB@+yXagT2{0o8z&ql|9(!)2I`PgQ!X(~5Qs7nQgy)}10wEzX-o&Y3&_u(I!jpmo zk2{wbD+0~gAp-(uRY5>N2WQgjq~tGf0vB2>oDNRXgA-by!_I(j11fOpH}`j1$yHq9 z1b)p+#_8Mg6I{4w&zIp>@$=%WuY5|lqJg}G#F@k(uuNRbvX391Y*QoRt>93}!#{oo=bMdxAVVkl*gwUgAq=X~Kt&hP5Dh=2 zWQMU{cUQ76lEDe%BtpSF7zct8t5jlD!0V-qz?m}2c-sQ!E= zS;0-1fiv)yI1_G-v(Q=QomXe1hnEcCF`wwDifhTJl22(TnKyYMUzbmKNqVWcq`FVuqng3 zc26=-`E3?bUrV<&s#q6^*aMx4o4O+Dfd&N`p>`)!r5964+vI7F{5sn$Zt8y79r9x* zb;t89&91GjJ#^=xK}>^I%ThIi%lQK=PhHlscMci5t-aVBI(6yNMR$<8_E`Qts5_;( zlIo8?u6yY-GyM!=;$!eMtaQ1mfz>D47fLyxL$`Nt98?7@ZZk=DDdyxQ%URZENw@v0 z%D3|kwY3bmYEV}hfkznyezrlfm?ci)@iMfPeT|po$RKdewpO4v?Tgv?yPDPHH0GDD zboHKOL)`(aSz)#^0E7CEd$*~>xbym{d=G=% zhmY!dFYOoccBM)$_L0i-Mgz_ei!NL@>bus9d1`UGtQ+$`LLIiL1_yN zX<)Ae%UzR1J>Rqt8~|vJRZ! z1+MK(&s{qi!&%C2icfKqd22pX@D)z$Ot=Se&XAvkZhgW7A>@ahglq$D#PON*^tO8{ z8ydBfL7g=?Q!k0N#;Lrt^`SZJC_E!_C!{YT-oN!hUS)HrJG>S;Z!^ZJCG6_A5o$D) zh8&>ccL;<$23jGBtcuILdI2F#AbmxFUM8^_4=jRl`?=9DFrBjpCv*(s44MJIv>7oRVL06-~(}c!zL?jKj$!eJQ`0IF+HRGxB8kI5_9i*`S?N z^xB>V^a(#hyuj~RoQ&87FJbK3DccbqIzKpX8YeWAp1*jl2Gw5OMR>qVlC6V6mMPOk zzL~kCLAAR2!1r8!qkTTRv}_qo(Mf!**_wm824wB&eRl-oI6NGBBd3JG_+wg)g9j#`@1t%^$(Eq^TM${7?&Jg~@{0r&*o zkq#)(f-R)oW@^&VNT@rz1GZoXUzRiBE&ZPn79Yt=kkwPpB4SE@nGaCNCFu;%!7I~0>)0zRcjMBSvD_8Y&2UxBBhsB9R%^;p#V z8wR)lfbf@hC%^vsyO(X#nYhS(z*>g6s+nA72r2VvFVwpXT)yC-APpE|Tg=$5slyy6 zYU?mDbxMHy_%R)=S6ID$5_>h#8-9llFP*Pwqzw}e-lMv*i9?R==z1zn%H~iiwzSa2 zU{;sT2HR$Uhd*cKS=t|7DE(hzNnZG!ez=ZvCq(uPp%l!*8;_Mi7)#&S3)isHKda5C z<StpoFxLsB_aE;&@fjCUZTSH> zetI0IxzR`HnqTwcoR%NuD0mpfX_Qf)=Y*^2FZl2J zxUji^U3Yl9#PYiv5WEGeWe{B?C8OPZi^c&bgfOj4;ueKFmT#-z{ylKQ%ilwO|7bX~ z0ze+!Fs7HWIN36C6#az;z%2ycbk-z+IsUdk-GX~A@gAzmVKrW}gOk!rMb zI8Y1+-Fw%DU_zhw8C87u(F#@R6p44on3oDe=_7V=pF#e_nXt<5MQwgI-06l%;_bJ; zh#itIvDQbSvxJx5qkN*5(k3$#aP@vj{^0arDK;!4?xr2X*-cxZtl`k8oP5xUwc3BW zx~i)}blNR@UqzAkOftjb{p)4s4LnnJp^N>l(IADx%?-ef1KXnP!s1p3R%kqtzk;`1 zuDR7XKNfs=VwvZ)Yu7ax`D*f&mV=%-^NH<(4kh~yX{?vFNFF+tOWXEp*{TLGb?@mj zU9H4jxO7lhIYNh)fr;mO4}500Sm|?3%UFSR@!|!g+cy`R=$zBBIh5#zW}x41*NPN% zzPKidjvS?zP7FBf_E-TKdim=MV{xQk)Q641B@Pef!B;K&jX@~r+ZMMvNx^_;7X%hic4Xw zgAA2MQ!IlITgR!BwhYXs(&(ZxW!8d2st##66tfaEz8Fb+q=QYEC16Qj;s6z8p>zfr zm+;5R3TcMofs=7`IJzO@y6^ez^vVx?eW9BdT$z-(q0r4oI&knl^Y!5zivvaA7Wq@a7 z$n52Po$5{}jXQK@#T!POI!2#)=--BcE(idh$QF13wZKl_Q3qhdVWkbEq_=s~JZ&TnC<8^bmQjPLd1~X-`3kD5JTTQHS?I}p ziy&4a+|$X!3|2hTiOgt?dKFo>aR-{dcO?O1@ndn&!>PpJCeX2aq}2d-MB5YHj)2cY zr^i;7H8Xo^^3%`1Xi#JS%iw$V%W1D==l3+jaKpQi~%mxGV+O-?54!GrP5!q{;dbZPV$c?ypaEj0vO=<{AdU|n+$8^+Ng>y=N;6!-(-^B^l z9>tp_TlAueu?)5R`gAq}XUYg$SV(7mII*GsqB@(h&6fP=w8h_UE#IZV#4G@J5mNDU zmov-Ls0ddM?f0E|K460mt>lr1lRVH8typHKy}X(oK7Hayy)2pr>Tkba)}{7$T@GIf zp7#>#{cGunJ%*f8`Q(+#wJPLgRgiQKv(u6E@!R`rq@UC=D&d*(K+~#Q{%iXqzGGwf z1ndldFcqiwZuAmY$tUfz#;F&S&u$}eGjR$%Vh*1ndI^0vEd#}k@zNL9DrX(}m3;P> zrP=bEiE~P}m9HM+WnrB)aIH`2tqisN&?mSvQV*^>B#c;^RL3|4K4I8S3Y>xq-sf5_ z`1Hx6$%S*LCl@YgrbH^m_Q20o9#=K1$Bgfnmo9oaA(T)aX&5q-8M6|g);0h&q&csG z85rc;7wE(sRj28JI@8RGveyosFA_>SZ}4${Co_gGwTJI`)tOoh{ya3{OPG23{rAgW zetG`awmJx%PH@v$86hR0;Iu* zuSn=)U)hfe-BXkq)8az@_(UPo2>IU2Kp}HN}cD0bG}} z0tR^hk?T-o%O8WYoD{r&-^TWbzfrkmW^+}YsOz`y`($92cE^eYI$1I6T8PN-NXW3tyau%oSEb?m=x1UF5`g+6a2(6<)`WEPM7IA45B!vb>Va!Do2F{w{ug zUViS0XLT=qanYS!?(t<`bOdxhbpssmbZ=d91B z+He&weK>&+pIaqA;9Is7_9AQ<&PslL?Vi!LmIOdq`bW~4&p8;hg;?Q;NSh9?n8*0G zqs=Pd@beItZ90L}UcZi1oSw5oYy**^aLDO^Q53;>RT@xc#vw5NIj-m|*YVI%kwU%< zB~1{J%F290I31rjeYAJu^g!c+H-uB~Qx5CKsl4FcHVda%gqIA^lQ@wT&Z(4Nm(R?Z za^M^J!CT7De7e9^5f#ps&L{*5;KUh}aV?z@=afooT7%E7&cI2&dF_N5$;4^6|HwKM zZz)?uQR<9?#>9$wA&%xgd@%~F1y_DUN0tWGW1Sw%K^mOE%zhWHWuXG4VvobPv^-hy zkJMn~3ZkYlL&KZvEZ)3%?PXIerM`Lnnj7bImf7E% zw!@viyLZb4NPjdIm{I0B2d+8r-a#o7-Kj>AUx14U<}=GSR-pWiEmW0)@`lYv;|AU{ zU)m-DVmK!C-7ec9zd@YBPd);s4o~(cE@$I7IhZmU-Y^A>V2)FkDQC$`sZaDLByF53 zEARrJctdO#XSXIFk%9>9)YEpWDMzQAeuRrwMwR0qyR2GDGFz*&rSAs@$?W8rM+ zOwX}m)Q$oc;L`##b8 z6CEDZU5cMTN%vgkHm?h^PBL=fn>?@&ZSl;0w-4$FK6NJ>82JZ?>(_5+hUn?!!UZ~? z9JV$9c!RI84fc$(LWCv0mo9x#bsjbdSlO9r|M}-%wIB7Ke(5?gbt>s7{yhRS@sBj< z!2wlgPJdz&QXdSuEbE+wC(+{bV(Y|V9Yn?6%6SGj=CKKgz!uQKGYt%I zdOgdRf$srO#i93rRoRE%g{|`54cBM5sm8y} z#96_`HzGgU64WWT?>(IC*CB6Q8@5QG&SY8nEx~~X+6#Ns5oC#Pm#=hxu;%(f>CLqG zA8Knwd$bae5+gh3)w8&->j3La@UW5B8brBqcU6aF=^!)FLSR2HSLVSxgDlKOv%mYX zI;#wneeuNw>)nah@xlGy-+lMZJ=N^*X$_RTT3+($ z;?QThg`=gjf)~&un&i{>{;57oA7vYpebsg%p4xRl9LV}wr(&<@429#G$!3<9L&T5? zd$)IU0y;P)M{p5Jy=-P33ZHdbwcxYXS;>p&DC=$OTQW0o-Fh2+XE_6|e%F>#$ZtdK zp1KaTh^BS66*yIgiq)EzQ9BV?S(dsw%Y3z+RPsaaVM9?~;H=y38PXYPOFQuoUKRlx zul3#6o|4Qm)E(X+iY1g`0Hm?QS4s@R1nH&!DGiMj?t}`*TBQ}TG%6V68G}ec=tVGI z5s+}flMX2H)NvRXa0(iX({N!lXvlp1II+#3y@czuA~5roab27Z+%3XMA?uMJiV9;1 zIrzCpww8%>W-b-q<|Qh*l224%{f^+I(H?Ly)X*p00iH2>$5r$}R~u)K&enxEcYCAs;H}lqDm!Gz6HFSHm zPEXFA;+hMU!2oAG7Lh(ummJD+^X}T@p-wM_&iw}tsOoEMUau@qK$QBntQBXy2tyO+ z;w!qshKR5ABDy#c(zq+Qb)218JFbOOKP;9(oPj5GR>Kv}cvd_BU1Hk2l=P5-^wuHI z)nDC+v;ZX&!Hrr&B~U!J_#EJ+hMP3?$u@Bc<`7OunBsE^r+@=1c`0yubX0LIolyaT zv&)P5%(5N&4ta)Mq(4@++D`g$LQf3jrM&zGe8lLxhFjp|Jv329f^W%PlO^1HeM+aH zFKI6vaw-EeWXzJ%;Qs#mpC&*3^f#ZFd+XM1FWEb7S;?>w zeez(i0h><-qgYNjs{@z(bHEi#pecj9wFLT=me;=1DXLd=Pd1(2#DR}M7ySNAr>=82 z(pCj%gC-8bp(FRD_O;R}-K@ZA$hWlu<%kC47(k%o&T??%{V@Z4K3Bv0_U*eq0T&u# zCOX7!&GU)e4y2%iAT`YHIFw%p88>Aog0)hcdPWR=Sp}VV(J=n;54nV}- zC=FQ#Yro|3K%L&iWm$3gsLBg)_|3njY*+rz__6bL96k)%5@*7Vw!$1ZCA4gOc5wph zna-J5d-SBDSMBRg=r?xtSWBwugC}3$1cra}%!`hlIL^(@;X1Ubx5EYj zgUvkC0i7oVl(r4>U<((k6nvdxWmn+jFKrCjiiD~T&AKIQv$VgaZfS7VdXdc=jsRJ| zf>+0Zuhg07tl<`QOVU%vwd&9YXDz=1r}fY(XULhq$VYq)SNT$Ye-E72FZA%wI+0JP z`cZma%dh4WS?Z6F^nN^@_2YCM53Q1A$XRVg@dJI`z6oV7L*3zp0dgV?MmIB15jalo zXp{qt=y0NnQ@jPJ0s^uGjTLTOQulipc4 z>!ouQPGGpC330;h!x?a+B48%2l+oNcg)3y&kCV8P&l;y_lhj){kyFZ6K%FmT5OL^5 zvajVQ;}s;Z|O8h4okW4 z`RD3<$5lQlznZ3k7wg5;#x?}#@6#FYDf_ksrRO{0LN{fUAn7W56UV#8XGC0yGs||` zAF{MS_0@+H|Ao`cy?ekWa?e82v7dGgo4{wRBYHTnF)1+Ru+7KY9xWt0Z%)XXkqn&-OY7=JF` z>!9>c=tIABW;sNQyEtERHH-G|Ve7YU-*#hg|NbR+HtA?G(6vVm#ON6A^Abp&w<^H* zUCqAI@!~p^Sa!HM*pM%W=pl!5=gwA3$-`#Q$;S>{5yY7Yu^MLQK;-VV3pE( zg3x*9RE&CwfA~p?We}C^jKo>;l5wPUXSOTbf|rc9&k@7u*?ub9jR>KV1MfL_a;LTe z?s~V=on(BI|D;dy%A08Q)LU(-h<&UpT5&ROK+a|0H?O1>545qI`iW+ZIaQj~Ca+b8 zV_&ot4r!&!Q?(VC6;C+HOJBW{btp0lI}+wfw$?ZHj{N+(shja-@cTh4H|XGUQudN; zn>-9eva}mNITI(a!8e6-ybkTFx06o+bUC8FPn|&*wqsimFI}9jcX;1ZZztU3rEDvt z{A!%$MSv8#I4$FnPn0S-E{Zd49=Jn%ws2NDgRU|8jq#cArsQYYPRlRtWERd^ejS}5 z`x>YFJ+wE};bm4_d<5LkcUv!Dj!<`a5q92_RmGvD8W64>gl-5(r~r@O0ZLJ6r_Szp zrNJ*?TnMfX6MUs;!U=|1IKd?3qC`~7=;y^br8CNdDhni<9kH@7rEIsW(%836chf2@GXfk=!SxGk zkDjXmp=CsBEE72BhK44yHp~uj1p=ec1Up2&^_MbWY3C0={N#5m?cA>=QWrkeH43kF zs-kdVLs88EA@Y%zzbRhCMH8pQJ@NyF8xZ<#EHmK}8~Q8lI$;jsw0$TaaJg2jD?ebi zaZ*9cH;F&fAlvEkGL4gz4aM`|6gjx#k0w9({Mb0bM?ij5KpCtnBK6mmtzP;+4J(UO zDwFrgthPCRSZ9XY$i1Z(!RGgF=`oiR)<8NB=$iX0DW^aD__OVtnP2u=QZ9%u190aF zS*9{A`RGV8yZK0sTsoAT?7OU4ne$(tQz!PImJeUn(%J)_A!e3%X^Df40z$(dzuPpB zrf_qKa^dgCk9BXUWJHMgTE@9`S2wMPc{&65MrQBP3;Vm* zG{8rrjnk>I0hW#KROjKyk)yf;eMz0u*y150);1IE(bNG+Zx6rsQrdZS5xUh3r)DT` z-CLVH&=p88HTc4S4IOJbD|Ax8k6*#2O1omfGwcyRMSR0G@9p>WYN`&E{nUPHoo%gF zeI^_QO4Bk6XV6O-rnXd@(dWbL)ZofnA7aF^X6T(az%zLm*g_}ft0pS=Oq?5OgQ(In ze<@e^^fRP(>a$#pA?)H)-4)%=kR=xR5xn>G9RnD87OY2)9(#ae*5DF81lxT0@UimJ zun)+r3VE(UYE~Ms4S|&l43s?<+$9a30T-GNN=~#1-fJ+0-$L&1;6=3cv>Qz?>Cj7I zWVXME6sO^``AGntVTyOk*R|WLlU*9fKYrw}SBr3RG{zHk01B&>R@-JxQ;AdZGspT^ zZyh?OGt(g|ERz;B!3#*i+r>GL{DKc%mFd_3$~0GY}W@8_}7g8rsQ9NLl1}yz?g?u58D3HjL9y3cVPh zJ`z`cPo?XzlT15HXTfH}=cxQj+D33f-^TiK7>(Jz-JazOvgBO7G;WYLF zCrhKsu;n;~58afZ!AT>%&8L`f(%_{XS3^+}?7pfiBR!wVXBTIc-U;==UNQEnAK1Uw zGYY(i#-tOSHqSdeqjy&wG0*TgzsHG;CI3yea zxx^FiS=B)qfR1j5zsj)C7qoIn*mHI8SU$`w^$>pxAy^=jb)%VVX4Y@tx#Lde7Z)#B zA9OB`>v}ij#GnlW6}N6&o18v#MxCq!TB^zYx*AN>jM_5|HhQ4OZ)z*cFmtkDvRnB{>>(a5bYZ|4ir1D;mOC)^MOVLq6ua{3br1om%*Yd>HZ{tItYU@$64N z91;&d@_80c(sprLhLUHjuo<>n@^-`CYI!UjUeCleB5G)=gq1V`BcHq9WgO2TBRa1% zq#GZS=|V*f(tP6Eox&_!WKb|Zz2kdH2i@({9{Iak;(ty1^Uv!Vq8x~h)XgX988G|H zUw<$y_z>g4<;^zTE$v1{MNdUn z*G|Bm^0B9`mIPBea)u-|&ly_#9y@E{x9X`xTv@iqASs@uLzY0$m zXX1+Q>AEFp<-3oU%-^fC0_SiYxA1=q_q6`>(=WQ7 zy&eyt^cC!NbS;EcCF}!c)%<)EOL>62nMdyB>_E7HDOxSVlTkc*dh3#;45li3y zxctZDQym(1aOt2sy)?9tb;`G-N6ljyH26{ek^W1IO*Iou)^#%vN@{5o6jZezed@cLjHh(CyLes!P5@{Yv;bQtUw;S}-1G<|%W z!?c8y$KuE0$lZ<4a@H3Y*y6LBuZ(LO0`h7!SUzVSFS)LM)HA%^w;%^y77)_7!qj)p zfK>VXg`p-eD$xe5Y+P~vtMYaUNx0-8ZyBJ4f0!bLs0<}eoIx4>?l_^iL+@7b3C{@^ zsSo0mA$0YY@&>xiwx_GU! z@>I+0xPpjL-aR{ZPxfi4^JMovE!))Wl9o$8)@;i)Epc9Z@Mv=X?)}NCItT38WB(u> z0#34x5M`Q^C$TXhsouB0#`K-G*;lqpUhoNBzYsGg;cvQen~f9rwt4xR_c~m{KCEz_ za6E>S!&#Ug?&ni^tL43v!D(KandPClUbv$;3xC|jshS4c1P@At5+*mJhr`tU)yC6}ppYl_DBoD;)m%;Eg z1YpQyQfcU<$!!1{)Saq__O`;AD4gs!za5hYXFS^J$T^C zQb+5vq_xjZQbxp$@kty@^P!i$>0G^tyy2a&Bwx%u>Fi&Bqvl1P-NPQ#u3kt#-X7S3 zI#f7azV+Q-mZCnx{3&n$5=PQw3W%S&Ar7B7vA{vmXxrIZvR z!pGBDBZFBu*QK+fJd|+5PNJ+}W5n^D4Jn?fP^kQ#YsvB*UEP2kIg~*g002M$NklljaV@7 zS;pGLg&#@Ul(21ovaj5aM6u3%;KES?m%!c-y4o2J9pnQpdVa4h6;6$|3j+`J49wF1*7B`m!yc z7x6%V{FH-VOyR8LM@s2zdrN1;4dArgBX3sn6-w)3CQiu!`AXnzobW;%yZ}(&H7`n@ zx(=M?$muMD$`*JVm0RRz5ARO#&5RufRI!)s{{2-i`(rN~ojjpY!*Qqf^6IW$N%8jW zJDSaV?2cYzYn7d$m^lJ8-Mn?njaZf_(rKhKOQ(rId@JZDTMY6)@-)IF!cG6gW%j%BHntlA+-+s4TkQXzL-p8i~F?;%+s=-O4 znJo&OlFaf#2D;YP9(uNjlU*--e%`0Oe*eSIlN+aS_IqUL3Bcg4bjhL>{a#PWa13lr%jbUY`P87 z_!{8zM|sIm*4q(BDHGNTW|q+`pQN#j1fy&Z&`_-XiM&)z5BLUfLcoJ_Bwc@3$LqS!>8MTUhUcnbO67rdrAA54cPw<_7 zs2Rz4D z4*7sfXx*n(9{2=kBS3F_@DTcD#?|k6gA6K~qdsf&JtjY(r7a|%yh~n7KK))FOIl%e z=)k_oy@yXV2(MXZ>Dn+v1AdxWY;L81U~JWXys%B+lnLjipD8>GNcn5VI&m%H6zAXiHt_si;h&0gvQX0I;)I{zGw1_H@W$KZO^@|+ zFQ1YT8=R%f%DG4mCENhOr`{JhCF8KY;B5?N&_|IAdeH+l#x^Pr1^5`mNqiuRwAFL+ zG89+iZ1DoGm5lVhB|j4~n-|k6x@%qvdirsi0n^@+ANa|O=TsPz-xSUb=?orcld&)IUtVTCk)viG)8AG?V_=H$5lGy znLo=#@W7dT`k}(1DpT-6_Upw-`6Q69YxCfBgOE6I>o3z9TcwvW&a_tcm%P-SUGNZB z$q#5P--!Lu`7H1x&Jr#f_wOnlQc0T!r#tRdoarraCjB8v=n)lTI;(hTaF#mbIdnvW zBx#+A6WWA#&`v6x<^>yX@oDja!i}JeGft)BH}~+aXy%T?QdsuO$;eNi#(rAL#*Le| zJtIm-@Z8xmo-t*q?Y(>Vy()svW!eJQ2eHSU<-#;7OME7x_<&v-bS!~o9~~WCI=n2C zCaynV1)2#_$Cl;HyLRpIox4}Bab?L-&(gBbo=z|w$8W#=sznE#CzeP6*FY%0g9lof z;oYM_E%pvG%Y1)z)jEduKYjQ0OAj~ z|2Tc>xaBj(cRyd^N<6a+o0(%~@sJBMQP8rL0p8IegMSPfl;M#EH2(6JA2h4R_ zDevy^YL9NU5+~~FfDUYVFqMgMABHbNrs*HZopx%U4;;!%|aG|MNw;%`de9&MBHpGgmrz&?l zv@fx=?_INq zMnV^^^{4dN9#~f$YJkyBGF<9hh2#ZW=<*p^T#)Lr*D7Z{b!cs4*o|nF@mLq+%d)?2 zoE@D(^;lbf5uKH?HQybav)WpHI7|7_+#1to7w44EkV&-VC;3)(l6}_Fu7Sr@oP^Tm z`CWH-F+NIfDvd}2?{Nko`0ye2MM>s%1T25fkw)_Q&$;5Gi6ea&bVg%f6wH9z9C1!O z?}>*e2xhjV3=Q0AoVg?=1zhHw7bn8ar51^I2&XGem41(E)sc1&kOI9t4|17{;!WH0%(WE-{% zzd2IawuNDxB`>|USv8Vo>1NedY@&x zTh3^tEot-72hqwQF*HdS4W?{y$vH52cG(U?tHsdR!nDl`qxguVu5_uaGU(BbUIEU% zdH6Yk$Q(d&8x@K`oZ#~+$j zb;>NA-f|{ty)ehpQ)Zt%d#e4|_awJl?i_si<;9wI1}=X7>2L0Q|M_3OHD7eJ)->aL zP<(UH-&hFw?DLE|%gEpA(6Cb{j!Zu6lFroe#Rg~~QSOj8s|WC#%wvQ6Y1P}%G;g~{IN^zV zT7B4@mbjK3IPeaI$10~jKuj<&X$EXFH1g}I1CmcAh8H?aWk_4cCs2a(P|r}EeJ0*56%*D!kvk;Q=gG9%I}E%ErPRXgUqT! zZG)AN+3l7m0sxSNTgxx_EOFwm)_3b-YoeK?aB;#f9X!p*owXY0rg4Ci`vMmbB_%J`>vLG}@-grjVd9>s$JUsWkEBdnRt)C+i-o!j>A z_2iD0nZD4KNQbrLa<>|mj0Us(iHa#I`?6%ugA+MGnNad4=HbD=kdbhMpEpx{D&BF* zcI(3&`oIZX`EF#tK=7{=FwTmZxCmeUvSDU4r)eZhnCOoQ)BOw<13TnM-RI} z^-8lQj|2q1PH8{spZ@fXXJ!x{?|##sH?IC*PaO?0WE$6nEKRPcLCRG^XU?2Xvg>b& z+8sn@{$6Uv^w6Qho^_=GTN_uv0Ro!)0INBecRD>NfxX5iQZ{g7F5?Z;)NjK=rV2f8Xs2T6Tc`JnyG z2b6xCvKNvI9S`nL=C0-s+jdS?b=qNOT`uJ-?5ndp4Ad=PV<|2TYQE{9@XS(Z zECch|az70NaCiBH)kzu78h%8;E;MJ!&QeZ+PTI(kbPdh|>KuDXYMg{#5F z^?+RHNYOE379E+VeImE?n|>!b@GnDIhmx<9pZ#L$j69ONeZCO#4P4Ry7aFNo>1e0F zC7$;&+msm5W8{T40y<{$W}AG(eyspuYr-Q9#vR|UeaxCX5*X>2)mb_K@6GGUQ?1N; z^yIni8oTABB9UDPemlK~oS!xf(x zpt9B>cnwZ?pK>RG`BXk+ifp{r;#{Mw z<(qFxoh8oTZJ3w!)}e-5+d^M`R<#Fu+CAg)8?MhvUf{LGCv_-gej%N04$k$pd&1^t z>n!|VrYpVUI+O92@_kJj5czHpA(`VA)Zv)X2-!Awr+|j}1 zHzCvHev0xP&m_Z1mm%{+e1BZvBt=CnPY_>xmpI`*Q*H&$#Jd$ZfnCB)K4;-1KJ~ye zA@hd(hGk3IA)H$wzoe_g`7v~cvj$Iwq=VmE!KdMl;0(OOdKuLxnFo1M=RyUZ#t#*I zQ=NrPFshF81U}2}9;re7N~6P9HOs|4pv^fwF-3QMf!SB`G1JVRJ!ZM+l(BS? zCAsX){pzbr#{bv9{-_GP56bYnHjTsSG6p(1=#JT4PHSd%l9?s`HX2wmzM?&c$d(!N ztytEK{%PQFAQ|}Rywx2tZ?|(E|yPQN9Y@0)dWnSdmvNV1uIwfYbpCaHS`avlYVdQu~yx@ zbeShju%H1LfQZN#Kx6Qz^2x;ng1u>ln0%Yv)`BDOw(4y>_y%#Zs_3Q4!>aC?J*ZVi z^Bk6jzR+)!dl8UCR5T{7A-{^iP8?}UUQ#E#cRsaML*DAZ31LDBy~HouSTU#x86HIM z7*ys>n`F}Hwd!6CZ>WPO*s@XTLToW+@)-dAAYZa`a!`Y4V5ft>e_vy(z~Zo~@4x@q zd-6GH{4?FifRAJFEC<~kl6^C?TNeb?;sc>Zo4lS|U2StfInKJysipkn$ukJZg(KGKi!LIMS7>(-%u z@7SPe({NS<4dSc>j2!;aaHei5v5d>M;)As7=B3KpYkw7T%TM(;`p$I5lk!tK-wj-) zZ@xkS^$c%B^fw|iQyLK*m&QnZ_jl%r@5VW{-_Oc79{*3AdWYAb$^ z=ldtljmdo@@{7FaE&kdHL~nK!n$hL?V*u?E-KhtS64NfZDCj_mcJ%@`LC5nnAgL_l}le9+(_Da#W4fLz-RNuS19! zG1d|D` zThC*1SU7GDoK$+)3Hv7B$~JD^zCXEl^M+^7zW(}icZQffA(U-WW>4uTv*)&~I6u+# zA-8m`&b4dTJu?_r7sU*Zm$4cS9qlEZta_xi$CjBJI172#(l{w6g0)ua6Lzp>|rIUTr14|;AA>sfmA8vKzu;sTAM3^MYC~1^KKi4WT zyZY&;XWf`DVUxBiqcVQ%8GB*|DNo+!swVC|<~`S~v6q>_3{InG4|Dne&Nzq}#rb5) z9&JvY_I_mP^x^8A$?{=!E`(d&tWZrG9(2%&*{7wOJga}?=>(pcp=8F6&H(#~UuYKh zJ+p@Duw?Myq>t{4H{`3H1TRx{zyE90+wekN#1e4)IWxVdv@#=g)aA;*)!8LaHg+3% zOs8Hn4rLpFdig?2tcNUOr^MBeoO*A1K-5 z%(Y`0wVB*keN4w}N!vB>J)AqRy86KPT;sFOojdCl6g)Hb@=P|*VOV$99=Ws33Ie$3 z($@VA1sO);NL0uLoq?MJZ{NM+xtbhP8ZSB5faFot<*!BiE0v>MNdpK5{k*b41KAKi zinqX-bmsTM`8vELy!>7m?ij8ALvRM0SYChFkZfzPoiZx9*HIPP(x=oNUMd|Txr`@|^IT$C}Uij?HWUnekrcSS1xjMOXe{HgB?~*EGEfb}aFvBm*YYV&8 zKwQ=-lq_A|rG1vUg!+y;yVq~%z#ffIpFDkL@?4|RCyyQ0-IsekIt~0R>2#9uNB7hS z&{w>#B5j|lH?zF36vq{DWv|V9jiL((vn&KJr5Y$pj9L@cYxCrBUT`~qMI;dli^3f% zgEibO!U-emr+u&|qmiYQ$gd3f8#^K7 z?;Yx>&?%+k%IxHt4v^uHsfU`4VvvZL6gspknpHe;;%E<cv~a!;e4PPLC=cx-!tg zE{86vI=VK%F>& zGZdU(@ihL~xA^?Ub00*uL;D0DA}`IzGGGt~RlRm+m$IL>2;6#0%Mg;{J+k>sCp5Ff z_^Jj#7>N7!tBbZTR>`DEVM8p})mvU@xXV90 zC;jQil0@Qc)dN1v@f(N(&z9g6Ty(~)JbQClUQP#SDA*)0iviQv5T78GjNr2iz6;l@ zRjM+babz-SCbHqcI;-M%`&Q-u{_R_n_itWJR*s$YVSCYxZLk`IX7FRh%3I&#Oh-MD;9qJn^vvJ_V=hs)&q*X5P;{((R|C98BqtC{$TW3IHxIp;e;z(zq}y*H|5oGd%CE+$hf?;uC(OgkSiT|K+$h{WoX|Tazm2wm zdvzw8#RGP27g`9$Nnuc^y$jBqwjI;yX;=s(*ZEJm0mX5Uf;U40OGcc=V?pW_d97T1 zmP<&8ry!9HxTS+H<4BOBc}iL<9-Iz75g80soW3^$XEc%vxT2#Er}1`h4)MaFJG7}v z*`^HOa|&kxmp#R0g_C+o*{%ntL?65?h!dU{)fu=M=1yMz9(Dr#kWt#ndgNE?Y|1tZ zxSOl9=%DqMhZ#6=KKx^!88(Lfg$+hI=YCQ~)(EHf(j{EWukvBB&`j_v+4jk=6*r0#9}Z1H4-c6a zeTCx>UQE+EaVFf9cktQ3rI{0_Fc)@G@oD*aMvPqjc9OIbAAB^tc$rt)U%?CI44gC? zv4wYPKmlj3X8X3QG5tg{sOWwFj=g|&Al`b*7X#lM7PG33E_d19)Lv8?m~>LvJI9_m zW=`m&(!pbPQHTu**fc&5Yru$3Bxw>~&i=Ag`q4y(WGU=Zhln)ZzgOuDeNpz_s3CYy z`%U*Bc%uVejw(&;7j(uAegGf-kjI4!pLvFvL%43-*rzgi&nrA~_HYMAh36qGKO#B zkS=D6p$j~}U%uiQ_Ve0<%;~*c^Ys1qKPh>1wAph@9&C4!06(18&7NkKqccFTTlb-I zm*|r0-MSWDI_>*41IHf+s=U*Z&3(J~$gi=QW*9U6hmHU~30SUQl)m&Qyodh2Hi+W{ zzO2s%+gj^wgACw=8^l@SoVN~z5%UNT1-v))4l;Nu-+gpoPc>zj!3Ac6>HO``p-=PT z4EZ&6=&ZI@>I=1nPOv8VQZXF^CHNeZKkcXDwLj5qT?f$VRGt^=oIZW@aB@^j?DuGS zJONpPhjQrOmJvFqoF$^JMs~aWSi7~EE|SL z2FTbe3)u8|=!`H{pOtaY^-2SD3;;6g46WVzjC$7B49Qo4M>_{V2pa2`E4!H0hNd&} zVQNC^6SItvQ0!45+^^YL(zHC1fA>ESp{~=He2$mY;z+xF^1Al z0V{bywp}|Zbtb8s%#u&?&Lcl`RtECaGU~Mjd~4*WJG{KW5k=!RA_0QH3I6tD9PHu7 z6Y+4ZKwes*bY@8FczqL_Fc5&_l-BVXr}xPMa54_K&|t%=(xy;|Q%Zd-h|{zJMIe&i z_!+!V5cE6fg^!BQ0;luAcgd&nQQ=JSNq*BBNM_;`%!F&FDQb`(`PiG3ahC0X{7iEP zCkGZA^r`9uwU8XvcGKOiHxXkjt*d2Q^(QnED{47D_Af;E=Ua3=gbaL~C?uQjD?gplV zL|QtcEL&uWGy9S4^UYypD5ie#53%RjRc1&T6k_I@XKd>2ySF}Uic_bNNzy)s4SBKe z_uf67mMnfwXgTJkOBdbQ+^fUz7!>&Bm)|TGW~A5`%gNU4@uhRifB_A6I^lF=fBN}X z$z->e5@XlE=RhxJg70b8eZRh$K|ZWbG6QAMxwN!RhkSiE`H%njiw7zG_y7Jk?YsS4 z^i%HAI>xx@j{|qw0|x`K%pLullFvGEWZ7p9;A7Z#*=@A)f{PL}OiIPvjLTjG?B&t0EEZw4Wwd~j;- z6ZvJXvY`W92I>>;H@- zP%W=#Tc~|e0T-RwH!8pD2mKDM;1A=lsyC{m*g9}Z<@(91cM~Q?Q|@S=kaY`m>~QZf z?BRtvl-srP>aeyQoH=_&*P!XnUIq3*U-{#fwjsS%9mLGAP7Bux6!xr#7f)XL{BdAK zcBVr)tR2zrdPy>-T#D)1wn&Gala6nmUdZ2Z_69zad>POkGrSBG9MHK1)Va{fed)9} z@XripAZz2T@Z;}VHecZcF6L9#p|*L!OROnBr{$yK1$mZy5|!l)KBjb5;0!Pw`H7H4 zaMt=xoRX1wfK)wa8zkw=ILoKRspmeO!6$rWT+(h`&4H7AEu5A745z?Z!)=$9N`C!(mN?y*6+Hb1vW=xB+m`(1!MT2&B|WucXyKgJ znUvP6v-gYINk@Ktc2eSmUIGPgA)TqAWqa?j6YLWGVw;0FU0#p@RP^X9A`FLW1A4*N z#Yt{#K5-(yA)MF=<&8=P`q~ahG%JqaIKh0utc8{pvPW%ICnkP+`k0nZ9n=zMEj4@j zd~#ifNbTCQZ*pAAJE?r}2?WX`G;t~;BW}nc9i?$%^C>@lGt0^zq{?J!7`L@ga!n2U zBiaXvIPf)8*zD1TMmvK*={#c}bZ}Xk%^oXo(|`=W7P*#pE~z8EYqFvW7g>7m*qdiA zpU6IC7rur(rToxKTYjN4=~pS?eIh%7Khv#u_ES|H4t@}>^0Hb6K*%?ACViU^#Z^M< zg)2RCl_#PicNgb-<;}Rp7LZRL&QfQTF5rgnTX4~J30JZs7^dV7FZ19``61USn-}`H zH6Y6`@&k6zgPkB2+q&(n!D+kHN&w;+(4etQ!wMDc-1dI*(@(#cK4x&y$xWSfiv4n( z4a*420Bu~UL1&cfd`Qm$SMClLvB%IX= z&{zKWLo>*?b^XXEwtZ$1nf;`rc=p_B;oEQevT^T>8~A_+W}2^SZ!LGpGJAPhGo=g= zaQMxNc%XrrR~`+aLKpc5uPp!mo9^;u_VtS|F1T|_UOK0&B>Ai4L}%Cg`t<%!-+d$8 z$J`O-;4bb1mUOgN_Nmjcq#RlJx)n9MnWTrkk;5#PA4lnB}#AiOYV7m{o(oC;p z0w1x@SSNR@EC_TI+a8=HFIk_}Hg7&FUi6$gtN9eX)R}ETzx#C7iW4y<&X)W{_ms}+ zc26bSL7Z8K!fdpA5Si(bEZ2*(tFvA{Q?C|q;6!A|kAa=Q*_B^mClxPs+1799&nkMsbIAE40(H$2%P$7 zS}Ucsajs8ii4*z7$Y%h>&`SB?L<474m|J{?{FDF@nE!+ej5aUx>#P?iMom~$XVR7B z-qD$tREYjsCq2AO;S?>Sd|F1>iR3e&Gh{Z3Q!tWVq#KS&Wyx|V@>(d_0NA05oyOb_ zErohLxqSWJKNiS35-wpf$~o3Bivl2_zY z!bWd`Q^JMB7Tf}-QnvDuHuMm1nc)b#Cnm~L(z-63;x70E3Jtr)zrkB6gK4!Pb35V5))Bn)30BpoAP zWJAY=6RGJmvYZ4tl$Z`p?~YD;(H$4_)P`?7@YF}o%prQ=zZ9H zKtT?)Up}y2vTpa3altFL-ts4u5tk*(F=Yi8E*Sbx4*Qc)oB?2!$8hb=6AuKiVu?XH%0}oj>Ia=7)uI>MOnQ07P6*gT z%8&Q__3BLT9Yho2fHzjXV8hHP=PA>`#a0kt;$%>VfycMysb6^zez4;4$IS;dhw|u!+gejd>I58XsY7EyY z!CAnq^4pIo-f*jTN~XNwJID$q+N)J`Gs6oJWUOPHx_YN)nB49?AT+W-5(GrDC`jdT z+7?I>Q6VL*gWf08{D#ONts&5FOp_vU@>R%urq@x$*S^=;S64aPxGkCaaevMe0FeR z7vRlM@)$G{xRajGcE(t}MFmDN1=}Nms z>S;F+-ii~C?a-95A)O^nbh*kS_*-znQ^0P;74HLg;-tLshL7NMiciH1!&Tfs+3v~@ zEVvWX#SbGMz^S-Fe=Hv{OixtWbWXu_XKmFL9y7Vov5h*6!=WzgkR@gg(LXbkEb~RD z2W7WhJ;Utf8QCX|$}*6KSw8+UynVaJGn%(FYnu&nI+!%xIW3qD_91nQm$ZkEhAbVv zA2sXD>C$wZe-|BGrIRzz33s!;*{4f+V~~M8t_(EM@!Y1vaDMvfZ(eo`O|F`Od|0bK^a4t@{=3p!ImA2C-yRrcX zEzAF~W5FXQA|`w+bc2hUxbr=cQicTpKCXTUA%W^#ldA?D+^djex3)MH5Z`||VU3fyK9DK+iD_d3QG_efYg_}G|L+F#=SRCp3%Rt)r)4-PC zX4EWy4E8}^q&N=KV^1wJp36IyRL||1+*halq4p)au1f;Yaz##!lQuA`fHbE~C-cUg zRpsOE>A3a>*#Lul$xD|WBHf0l@Vrwe6yNB@^{UBCn`x&aS2E6`zOfP%p) zmh>lH^8&g0m-v)STZy>#i~&ZLp$CubN8T&{N_)cFk)%^P@Zg8rgxSYS9ap6-sD)LB zT7IG>1NrK_dO4=EG7g~05AR+7CeS{eZ8^?HFOV^$Gso$pbe6Jhbe2%3ak_k>55cjm=s5%Smw~qo=LmvdwT6vLf-*z-EwT6?BS&2% zV|f>i19vdrFw>$3MHP&$FOJk(0e1}M$HfV@t&?9rpIeJ_Sbi=n3)@0JFJZSI7w0Vb z&BG^jhu(qKgg#p^=T5JsP*r8dXzYW>&nCC-u1@xGr-I4b- zBFkYhk5y^Y@jZL$*yP=-=aVbH{yI5x?$gOHNDyOx%o{N%KkjxlD_4LI+9OMzC!EMR}& zz?Tk%KAmOSjrrA&k8@OhR(8L17v(ebtr=eFg&9AV+=k~B>OqtZ?nlZKpeN z%$~B>n79n^$qY0DLl2mBQwRP}|MIQ(HMYC9H@2o?p@1| zfxBbco6VpJzLWI)AsfC4d@{KBK%EwTFw2#3j<53Y+zkn@`<~ykl}H5_HO3Q z!pRWpt@{tvAyj>%WxE_O$dX;^9Xg2w{2|+DxLWFn$}*iU{>p|m>1NY3%nRkuf5O|f zwMG4L(4Es)e0r*&< zv8>e+OFq=CC}4t95bbLo+&@?X&W5V ztT#O5-QR{$!7|VSZvO6mf9$#i{QtyB-HB0lEibf_w$Rm8{vMa#aQh_SqJZ$L{Lave zGmOzm>e`8S7+{&16uiU88<5WDkBs9-x3CgN$h>247l{M*$Hs{a`e=ogt>Uu}r|}hf z>7!{;dXkr}Y(EChK3>ztHajl)+-$f*a^Fh%fs?Qiosl0qVrdkm{go=DhuTZ0G2O|J zm${1Lz~to7L!PO{zuZy7v%E?Tk`G#*`AU0$-9S-ezH$ek zX$2bp%bG>ot;Qky@-BVx%6tC29IcgdV?Ws2K}Q~YVwBw-chSyl!5cN=AHIC1(foIl z-5SheFI}GGyr}&_ZSwHn#m3-+u$lg5sJxVN-wd2ou5_w67?iz&%LjDEuHI!}X*i88 zmaIN{^hmaNN1faKY7}acn8dW<|l8_WXjMGNLA~ za6QpJ);J}ceDKXaJ(l)vMWB;O=WJsWjJ9W@R zL#O%t^YdELd)ghpgpuFQP<`M7xYmaQpML)3S0D8C*T4Sgjy|1gX1xhz-txHuGx`N> zw{)cvS4PpHzIgG1W{FR=uwW$bU=fw-m9yzl5-f*TrC*ru7UgPNVD zypV=j^Bib-sZP($yAOOoUv`Ayd7kpnSN(Y%Z1+f1DBM5l;>r_0ywxK4Sg* zf$~}(k{N;ejwkZQt9Z|E>fHSr$l(5Kp5L#1@Ya$zNU$2r&?*k}`9%H^T;%&_9Xh8z zE4ibG45c0LuB+2BezW4hGp4h#xJBu~@!>hK;b!~z)Awr|bH;%S$ZecKKCXv0Nf`&^L7a+&57N+>Sr<X%CBGiomhvlk0jB@4{vF0Te3m$Sd2znk@?%7> z)F-IY7Pd-fB~I|cU~MN`q_Zy0QhrgE)~_?{*)oz|%|@j&I&%b%m{oBZPniaHZ{A7{ zjzbQ5AUh-IoO*ih(@#BHqU>He#-UCRRbe0DzC=~H?A;Yo&th1Iis$6i)jPM{kvw_) zh#UFj9}nsv%a70)ci9#Z&{PI^*hrxB!7?xab2Y+_9lMQ#Lo$B*^>-hZ@ztdZKK=5w zdPU4!(2nN&Z7eteNrc#u8fleQuAYVlAXt}_Yc3<0kpZy8$u+GMCh7S*%(x>3m zIK_u;LA<2@s^cm?hH*xDK_~E82KWFj!7|{vuutT`KQ|<;)X*%rhHMj9-8j=$!JUPZ zW%q<>KDDe)D-k$|hKAxnb$YS6HSL$hFxWH8KHi^xQm0HE-5-AV*`33~+K+ni;^$sk z3msztnR1%&mCIKJ|A1#|Q)b-Bx>NhaS;FcQ!v*MoXrRO6(@ZP6DSz298pAbDT$COYge1!32VMDu9yw2fdtX`ZN@o|E!Q~~v>KGH4 zJ*UISvStP-#fH*^&+GC@Ug(8$<+O~{(@(M7rH(Y#qh!*lJ-_jQa z57NDsF$4GfnG^2daW6f;K}_~BoE+rGzKlFf%ZQ2(^42)TrxLb!E&VZfi6^gPI00`T zFIcnzY_swWuGcEuV>rRVl4tbGAjW+y;|KA+z56}Lk>sNnI=p*Se%Yf8t;m+Jxpiov zv%(g@1D|C%8|`r&!b{iY(Q(o=H%?h3W|aBnv6DuAQoPMN z3Wf7Z1_X3HC0pzZ8hdc+byLpBTZAaT>5BqaNiQ}_enQ>h4PscTthZGxgd-S&oNwy+Q;8FT4Huj$90_+l zIAOs!E4&;EA+QdkIF+803u}7x%>F+_&bv~6PE+tXjT6HPq_c3AaB&Eck6g&7aS~HF z9beGf(V3kggef4uTAw|55hS~%gQuoKH~VVw=z z$rMiUowk`eQ*o&5WIml)+Je)z6G@=ZSskau;KNo3WnPz2;uRP2BVKw@S+k=MU5wlw z(Xz}#hYuSc?>UX}sTv~$mYtb?<;336>1!P{a8>t6I%4Z-%FM`!MQ z0GlP1lgWKwX~NxtyhBb@k{nD!1GZwblY910V6p6)<%0(_D*#M_aYzQt!ZF&-3AJv# zs`12LGET5YMx-MkN{Pj?%<_#~En5*s=?%I=pQ)F~7rrmx6t=)T9~EH5+?38LxPt5? zp|c^JjV+MQwot;AJdIx;m6wX&N<(@=mlv`JPAr841)s{3WuGX+kR9aS!_pV2s4A!` ztIlH>;uHDNK_D;GI9u{!9LToKrxQ&6fN!3 z(&f9=Ud5_0Pa5hmER7k~=g*%RXXahxn@(UXJ$|Y3bHFp!*REdo(m@V>f}fOC!Z&V} zKgt2+f>~d#QDJ#52Q*O*$%k#FugSb)-x7-haQNfiT$X!Zy>{KRd0fxrRTpDG2IAm> z<;CB~=PYZ@`5i4S{zWs%@W9gOE{_9X7Ji-Zk&FF@Can1;aHZ8*4WfL0;e2##MJv~^ zJkZR(+>9FiaZf5RT>skUC9E0ko~)a}(XG!Y-Pn4-Yv+@?^M+sYe+K0ib2_CLP zMY-~YzlZiIKPA5;&{f$fI?d& zaR$AH3u$Je(J$q&7iap-T2Js()d7OBZF|G(7*5AwtW^+u*26qFJu5Gru{8aj&ijB? z+D3e{5118JoC(4bXHL>*>j`a(7nQ+_Ff zT4z;UgR_wzL`2J{q6b@nNWa%d0hbi;44f);Z6`Bv0=Lo`nLkLDU?yZ3}+vH`+P85Op*E%cswA<;? zS;^-ZPSO!y;w0 zp(ICgrE4a%E@;^TXrL82yrkVR8?$}9eZF0@J3AzsWb1}jRVWm+#{S=b{6u&}Mnq)^ zG|3q{kd=|)e)Msz96`JU8}+}QpV)7Ut-*^@I(RD|nv=8GGr$bp`ev=aK-}sU-7DU3 z0X#udy5pY&!c^`!SBD-ln}#j#uB>T~`tt0-y}PpuXHRM$`ENZ#hYx=8$tUWB>6CIE zu=HT{fjd*oY9h~6Ko9J3W#2EeQXGaw9odE*S~c*>OEbac%2-SPdB)e6y?UVr0*ypw z3G2Mr;#mI)KA0u@NmmVBQwR5%Ih#uIF{Q6tj^-;huD|rdi!DzPRE;n9x_s zK>lZThp?V5hH%$#TqX4N*I)RcFlN%Z^Opm!4r%Y^I%*z74Q~vLQAV6rdGVLO{LR-O zef`zvdUrHBn}d+s`x3qIVc$0gS}_w&*>#}kn{t4AQ`a8rV4gDY#ybLKl*<$Q?Z)cu zejY@Jcx&3JsRK$rGr6XJn6bG=P=DEPx^7-a~%pz(c)9rp_ZlQ*K*JXW`oj*WRWfNrqY0-Dukl)EKa1BkNM2C8%Z+tPzW6Bgd{+#HJ?wHNJeec2S zjs^hOyUlDpWj94C3Quh_cYdWCLTxkay{1{gk(~G)*n;N(?&x-kCP1;$4Wa;7ZIGHK5>ug>+9l zqkuI0A}hR8&w2FWX#fB~07*naR8db8-zT+xP&FH4s~1#n<-Fc z!U0p`HNVP0jFzFvPMp%#csD~6+VeD{z}pDTl%?he%r(C$=P*s_pvY;vRQdx?;sq8* zH_!eXj+*)#qZ#&`*B@{Rn|KS_hNfXf5>H4uQx@X-GZA^Yp>fWv+ma5|VIL)@*D@y zqx2Vi8r|DZ%KOwi?+mN&zR!bqahrAh8k>#Mlx>(TAx)OY&?4}rk%jmoXY$*`Ib|y& zu<0j(x62Ry(9jg#)D3XZ+^C$u5y&Tv{`9+>w@aMsfG)4l^z|L`7wp4cIvQ7}boCIv z#fhQVpJxt@daRSi*^hZZs}DFenLWT$0lP9o%IqR(*`JF4)Zw{S4sbmO4UC7{Z~8_Z zVD^IE*VRYJ^-`yl-qBw61BZ2(l=2ZLJNs@@@r=IK3-G|fSAYH6w>nJe*6fU~%)!5( z>hxj;lgMLVe))M>F_9JytSnvT6`9YF5s`qTT2>+7%9EhQ68bUI|vqMlB>kS=uqZJr6V{YLEq-D2cO zjUPmMa5ErvQ@*bXTPr{I`XD*Z40xqH%xUg@nnAC~B3}ElfZO~gP0?uRDs{-x(zgKR z&zPJo+3VFfpPdG9^3Li<3fAmc)`=5iT+9*nlwq1p}~u?ir!QAO&km; zbnq&@R{%|3mC3L#szBPS^>b>;+?0N`~pP-A_J~e|Ne)fDc-nV zq}Jb}aw1*YQQf)pc6_#D z@4?yX)0eXsH||WP}e)WYwDH>nwhRso@@urK&-!&4um&t zKU9Xj(Ta!%51-hM&vaTbw+TGco_NZ3+NJ_Ge7`wOxollPtyeZeucc|GtQXq5aV=4a zS2{}nkBXV(*HYG=59ReHjlFH~}-?VPauNm)3d zpM&60Q9-5eu&001=Gln;3X&DnDV}aR}oD0&d zSn*@ak7Sl^;U~-7+Me1|qy>Ao$CLf#s82d_Maa*Xt}H{I6NGl9R^2J;L5u_pY~ zba?rdNF6iqr(syjAnbs}`0K$=;hl;DF9L}(9_PXo>}KO2^7o**S$?PBLY8oZIpyia z6zpc>g62P#&0H8)zFO>WnxVgOn=OKuG~vTtJXz`2^5^rqct`SJpI>M&i}qR# ze)jy*aa=TH!Prf|LrXBvcwZNLBMF$28DW-e(m?mpA-x=i?_#TeQBblZn@%;e#{Dvl zvX~CW0gY%sU3;KTv6g~rR*Kn#eQL162TMFTk@xDgduqUH23dQa`+Q9L81j_Dy5=pP zw`4OI90<;x{}X6Resn(+c+b+wT|4*9cB#|DAvsrXExSW zA+yI$9hvRdV9uU>`?V$DP%|LLxWpUnKfitdq4Lzb+1V3Xwo4M z`PCjDfX1@z3|OCQ+tz$&ng%>s9fJdf6J@gI`|r^P`A4V80!g`x4-{mT1lQuwb zI5wa@OnIS4dVXi;i)X(lj*sBT`*)YuW-B_tiqq?DFU2wQ>kf>b>yYsEyZU)bmdQBi z^k^mCt{Z8p&5-)kX)PLk7be&;Hf9ac~>2!D#sQ-=Q zcHOT{kxo4nKNUxnLt!-pr`*!)J8dboPg8iO;wJI_U1&-R;ke3 z!WEn_F&w`&n+@X(IX)E4F}#zyozmY_oQO^0E%AeTSOD)J+@dsvf2iOY^`TATb%CS8 zhz1B1*LDO>ay@_koKb ztd~*Og>CG~yfu5YwmSR#vro0$ddW+qsO(*y$l?!I?#~{tuFNi8x}sI%Di>Vz30!2uYKrx||ArRrmUyQKxy|PG)sq zd-j5>z8*c%y_*8MtEHH`cI}y+(@YKnFELULrox@lfD=FBj!I7U-7S9EDnKUuPG?DdI@ zr#x??AI0zVudz7ZceRx%w^nbD;f0^EI4NdamZ>-)9K(ywSQe}GL-rv~4(B&I4}DI^ zS?~_)r%Q7vjdd@+r|M9AfzCJAC2@x^c{VvBF6FY$R7Z;I*}Glw{*3bLo7Ztr6N58{ zHCVE1x5^zY^<~*T`mAXut|4B*PyA$D4<9gfAesaGD3gw=PFqq3mjMyvV4(1%Zfba~ zWzFoVekA_*CQoEOua~5{9U$8!KYV-1_-@Lz*BTgq>l+_-sk6JAboylYP;#!PALzGS zBscMG*b)7$7dM7?AvvdLj#zvlyj}5{U+c-TnR}|WvhWtcyYMX6@=GJW1+GURBuVAx{(TwHBF1VyG=d!9Yp@PZ+hz3KaqESRH$?WG} zU~=}wzEI&*lo}%%iLXX|dAHS&c>z3Bk}E5#UXsdHCpF(mr+tUL@@;$*M~C5r_6i?A zzT)N5EJb{xJ)2xXvtP5v_7UmlmtU^Ue%5RqjVmvU*32$(pnR;^nicKCysa6e(^~%e z*{A2#Iodyasq1I%>sljD4n6)nC7C?AffR+uCMv0wNZO(D7@*b!e76O3ERd zC0@soqD5;NQibz=QkQ>SS-Nt{|3+kK_!*&zy=vHwoMN;y+bKEU7K0maUAIW~j+`Y9 z+%%lA6DR1dX!eMuu4hjj^Q;ClF8ego%j~Dj>1$9PY6&tO818m{qcZiKI&p8`syE3N8Z)iZlw@9Bh6I@FvN&WQ9;-95cu9cgA9EuY?zw_CrZjT^e<9V-pg z()Wx?mNf{#@57pP zzH&J_di-`XLk_^6=BL^^z&rL9U%P(8u&e^1^GjaFTVp10IM^i@jiwnWQbVokiU5bCmmc)^5%dce1L%h z%A(IdzoLPICHqq128OG1?r28qjT~s7IiDA8$1hNa&b2}6w!*fy zd)hj5j;8oUUxa=e1hX@^UXmCgQ6B(HaeXPM%>c+;GfRU^$@1;4HD>A5?!as>;^^yEb zc_+)jnkMP;y?GFxv3i^Mwmm=89^f!4O`&50F?9d_J?|;L_|YlXeb7qL$*Zqb{ymf5 zBO?QPv`IY>3?T*U4}fA*)@x)N1f5W(k*AR#+`F5z0t^mVD~sYgaw-XWAoSZOyh|Oy zL(=3uA>(+SuR|B5DZHr+5Gf?y^=NL%W>YjFT*cQuza^Ro*TEa@M#~w>C56MUXS1Ye z_mZ#BCL8Wg#=vxxDQ$;W8HkQbXK;!p+77(q`rC-jl4f6)&DyLl=bS9!e?6K?;z0g&K_H!G z=F7ZI;SA5j6TAcm9V_sPBkh|w8aq-KjScG$SbYe=FIyZEHgM9gry_Gh-6^;CkIMz~ zOC{WGyuvpPPzo%Tq*6H-(bRZ&TlN^g@lwY-I+TdUHS#=u^4LqH>D-W>y?=Lg@Xd+i z$7feGYqO+IO6r7JW;#YUZr$^KVh%ZC`6Pi#oQ@26U`;qsRr)acvt5e*u*Z9ye4R^l zYPcg)v4acbyqG8)}1;@^{1QnJcA!Rm~#;dT?8M>pIVV{;o>D2nEiD9zHLuu zmxipD$ZG~@zh+-w%Fpl%z;vj87h~!C%LZQxaCGX%bVG!9G&d0 zmcT(LgAO^f_git z#X&ks*yy;Q&#+zUzh4K`bxZmP+d2rQEq!D@b9|{op+{kqc>6Sg&$?xbCfW+T70nv2 z=r{SSN3+G->KuNMw=YXAC%o0|9!cu|mQ(Z`r|-rWDt=m;!7sR`Xr}IhW>rrj3$W!I zox^kbBHtW@w(@Y->|?DEIi*=py;6FORjJ;2t%fxyHOX>aX9Xy!2cO+}Ex4iW_JVkVE}^EG&wK-y@%f(LQN|Wn z`3RxIZ-sZqR2|xflcLgQ>@)S=Vx>WUopuj?sduTruvaCEY?tkx)SvP8{G<~nI(?gU zXrecfNSbptlgvZ;H|o$HnaU2S;qZjQJU}G>11KeHc<%l_4i(lv(SA{M@laYL?fhLkq{3nzhOOkF`APrQHA7C$pd4 z<*}WnRKg zgch&LXVD}BgLmFfD8IuOrDVeaKbX&e29<2_RydPp;ssITyF7yjeiE-9T{e35V_r@- z@~D(mFEu)V8R25U72gY*tt<^q(veRUI*o8>TKS3-?}?WVFLKlH$B#G^hka)E*PhK@ z&emr8HG4{ey;_FLp;sv@FqDm!OSBFjj_ZY({o5(N5AETgD)A}2{%IwLFn!J-LBbR|N5PlBLA#3;$3NJU~}jed!xVn@`@VCEW4JzRG#ttS{-GU z7!z1Z{^L(S`?U9yy6y;G9z1xcgXh%Yy?%3cOEa^`!Bt3XYhb`DWn>_W*;_jOw{G3_ zQtJyB&bi#Ut--NZ(mAU=xbv5jyHoF!FUXa6%!vLlK*2!71Nl*Q_^~&Bl6jl7$ld6g zxKba1FMZRvr3=z!d&(}1pD1180ah=pV`^w(h&LRx6wkXZ-spe`D7(N8KCC}h zZ`&?PhcCD+RB8s~p1gXY)lO@^BIv0)yZ_Js`+q#>!{9M#A2YM7L7cPNg0Mr&t|{a8 zX;6qf5c(2zCFB|22&q5(r0;+3n2R?2lb^{`z;*f%$f-JDsBdDpejQrTbUqugndywg zHFc=U)6{KOmZ*DBwr#K=P1k3|h9M_blEU=gb*LW3Y?k>9KIZB(bT%PN>aV3~hI=$a z7Vy_LlQDT!?9%$*dTkJBQg6@euWnP$>(72NA`3L_+me@W+Bp<|=+Jb`s7oRL)*tiE zpQc5Ma3P=&WW3%{IA;N^trHR$BS)sgQKP`ev5TS#a&Q61cNX3@5LCsSM}QOu!x*56 zQ?zN4X?gE>y{zy$L+dv*ou-N#rD?n|BN7=AIaAOsP59wc(+qwo7$m>q5_VF~9!;D% z@G8P_(ovCfm?kEa{-{DKngNR=4d}MQYn(;DWXgcsB+YHK*}QH?{6q}XNTAWPp3NAH zna5jZse1a`4x6RD7Nr@wpR!pi=a`?2)0A=KC(?lZggnYe4(!oH=U-Poq~LWpgY_W) zm&j8oE~#<2odG(`l5jB4vKpnUs}J3f#!oURTX<%MSs_lV z-KTw3awM_$&NDLXu{^2weVG_9Ycsd)Qy#>v+y z6G+o9kKvdymAKSj^5eKto|sS3bX+56z=3-gC$!4OZ#Db!>h%sCBz4|C#c86*mHGr{ zmQmtLG+CY)2zTgS&D}cT+Z`P`ZVIl?oEM8v>AmX!#jz~9qd&bPP86gT{ZqpM-Z%`7 zJ#)lyr4dS_e59_RQTjrS=d0=zAJ_52ADubrj{K3G z^{gpr=&Z9U0{>o;|3i=W9O%Xt0hTR4)IGCLpRzQXWy(8+^MVGQj#_6SPp|@<{wov% z6b{LY|Nig4cYb33G_$POlKYK+))s>o>U7dE#}3TqvV@ycra9@BjseT9p>tFxTjwd& z%!D60es}iyrx$Fao0^@bV@&zMUAf4`(sc&H=W77Rfr8?~DE{U(xSo zXaXPkm=Z~OuGa<`t3y@UYK2JLQF~Wg7~uV+u0vs!2>V_SAKa(BtNXn*Gs>(#4vfuM z-p`?VTv`j}T{aA+U<>{oSd*k_+z(g4zN+w$kDH)r4ecvbJ8%uXrq9MLu&W~Ql^ zc4~Uk`jgEwzz;Uh^0>|?$V!<8`?PcMm#im)SIWPT6F(a4n-p6&ejQMN>xFx9pe zU9m`LTBAztjNNcYtQbVmW>P;9glA@ynR0J_6Q@s+OHY7CJkE_#!et#5c!kSx`j*Ej zqJ{3@CB6t9cnc5uF+~&Qpwu?NPl)YrErA%N*@=N&3=wRgkCxM}oMSXY7ed;jNqQkS zi(PJ#W;Ap>+T&F5r`GK}&DKufY#1-_9o_2Ppe%a3Q@l>wtk!KyGe{O?6`JVJexu*> za<+alFH6M1<@z@3VosZx1xDx!FMLhwFZ^W8W~o2xw!#^B!%zHr!!*%Rn9F+wDxXh3 z8K&9l2>-%n_$VJL;3oe9-19%n0<-v`^2)r9EQ#T2UqClrmSfO>bxLTK0B%W?KezQ8 z`dlYNxT;y%Q>RY3(@J^5hlVHz$Ixi`MUC1EAL)7rrKK@TB~GIr{zzv#3m;|0BQ=_j zs{@ShfQN=K_oH&kD-Bg0*7JIpgykse3#USSk??7 z4Vtvap#A_9zDxs;gJmP>w##PVa@kKg4_f`%te?o@RH_-QTliE6S=u<$%<@?J4p(VC zko4Hha_S46M@T-QrD!poF~m>OEV_+!C9fvlM(@PJvu44>!>(O)xMGPr{P2!oehRE< zB7;Kc&yPkUYnmt05P)m!+t8Fu7AE|zKv%Nh*T8F)!d}gas$q&I!9&>q>SzF{LYJSi z-;e!+G(y>nd_XcR65tUZC!cUCbsj|JnO4PduoYVc*c*!+wcfE8d4rV^4EhicPwyJJr0^w6Qh zv%TUg_BL}r_>wy7N8G9B&@5(+Icc2+BXrJcd%{;=#%bI)M27(Ywk&YX5IF3cg{Lu5 zSOU+??rn8=Q3A8=@E(n6>NELEr+tF&gs+fZEBvM3R>Q7Cl_TtC6LrfxUg3h4aE<0| z(F>aWI$*K-Y?vnb6xt#^RGy5|Z28rcUZnxy0iPA1GG2&>+IOa@bZD;jwN|&%vvsQk zB?OyF{BM@+x|ZG-Nb@D!YgeAd8?%r<2$9j=>HNz+2Uz&!r1GAzi1d)0sW1 zLl2MWjE7a#2b|PS9>FhIKF>8htjIX5rS{Mx&>7>oy;C*HpoS(s>y+__XJ%Z@uXI)W zkY2WBj}6lTA|r=W9oL}FZt==?18}ga;4wj&RWh|7PpUTymK^xY@xFZPrq$rpjmttrb>H? zM~6AQc7}{}{%YWRKEEE#^ta8>gaPLZyG$$1`ZSAQ+fOQ4CgluUnP#zBN4LT?=9}my zKkM79;zz_fvLLT$2QJZrCcMaT=F5e!X*4FP4lgg9u`@5Clm2q$B~8# zxCs@UAKCC*0;5TUgcq-R6Yu6|R_O{*`HJ*oG)ZKoIyJJO?D9ijQ#466jF%Yn&^lEj zOi4^)ao0L=OQy&Iigl0+8 z#hW%OwyyNIsGmUJy8i$+!=s1f+#F4y3a{ncFXE*iEyqZlAm!6xGxBEWv0dtB*h+r| zp}+X!!k?O^gtRw5$tzu7fLa9bQsEJ@fx#@;>61&dL)w3|-2r-xO0(RUa)?xQvGkz3Ub%nsdFTqd$+7ik1v|MU63!wI-*q|V6qT%7 zve_uju=h}T4E>GLG|&1IvZ&4|FKRh?1>S7l4#ip71y;!X#1{>Pp*Rw(OH&k6*U*d* zxEnd~{f6t3B)`%Y`AtgkLq436le|f}%Xe1f0*tb_%7eU%5al2yv%Dq0B^!K06Tjjg zgEPC|YqnCeMo+ZQcYklzsD|r5(}2Br@e{wke*K1Lm(ax*Uwz@dw~y43qyx-qhW(n^ zsYB)`>rN57cL)FZzD~Qyb7PyL6L|ad(~ms}MW_6?T2{;{*K3-AVt+5QvIOAZ{af+M z$_tieqXRk|_ci-WJBRzcS6Y%#j~M0u9RJxiOJRX(h}`B$!drgt2W*LAlc zIq0M;YZ*M9T|9x#uFD)V*Ze6y9~f$%x7N}hl0f4NA>UxVUD9l-4mDfF2S;hPxg>ov zZPcY1JO;|~GHhDT$eVS$2VI7U;a8(HCu9)@F{k`e=`&?t#z*qvdnGMj{WfyO zK{EZG>$au2p3UmK-KR;N>3k?YEHi$ikn+^9EoZ?~3ZB}^odEDVj=$EPM^{YyFMLnVJu<9?eRBLfkOJQ=`8rnj>*ZvthbmHiboKj>uv;Cuok@ z%!S)Okj+xJWQt*Xh9tkH&06o1l`vHKB!B3BoL?nJC>ZYf5nzo!^y38LNv8rzN(v(G zmOrY!t4q2%CFv8l)liXl2lIiJBGQ;;riOey)TpMB`9>q{-+%vu8p@xzflKFnC@t@3 zWH37g-CRIXas1YNGf8MHD)c-pEK>)H#C@C<;2*#_wLWgXB@`FQeNH@$R}LabW$gi zPvM=48>7G8drrLGrN%$`kO3(UisLXjLh1*)?76>pZ`mEzQ>RY2vwA{Hyg4nKP6pc; z&=YtLYG95TEkdYUmXIEp-C}w4AO7$=Z+XagCmi{M{@L?=^X>!Ng6$N{$TvX*#(Wdn z&R#ZodTRrjIiZoWjp1oHKN!ol(1b>xr*WE%EI{>qx``W+6Iq}YU@gtQEF}SqnX?8j zzk4)EQ`9>cm$AS>#~*MMJivlr6feXpn!Zm~omEysvhV)(y;aZLvP7A|5SBS}wGVX& zs{wTEw0!TiuO8#NEM|mhxI>S#Fz8s;%RfVw_*>JZ>EGv({9w6+3kX&X9aIOGCD!;R z_2hwl>cCbVYWCjW)M0bPeXM~YR=I$OJj1nUOD|sggl5oXDBN`PV4Ep{>FQ6PH((7{ zcuZW4Oa-a?WEm+rYP^lDN_-u+kj*N)C2aab!-sG?PW-g(o;Gzp!R{o@kako@#?$9# z0h;Y$ugOU$Bh(jv=VS?1L#_pB2G+jKHb=Aeg~YI~{`!6*hRnL&XSv#!(@WM1<86mm znIM)|B%5#HKXOKagC6RTvS9eW zoWYM^S)$sbDTWr;-xy8n4lhBGA=+u=0kDODj5G`~P#GUl$CMeJJ32t; z%$ZZ3&F$-rLu6>sa(xI(%s9Mi=oD4(A|J~&Z{NP_Ms(OO>;ev!bFyri(e`h@{lR;E z>Ex2Pfg{a#-+gbp(-~&=i$ifdvm@Nx&*%e6BnPyB`?_sxhT{2O*$g=4PjGZ* zDI`Pq0(!!SLMCL(P}{5zTl)!q-BQHXqFM48tk%BJ(kvs)wJdU?MQP6S)5G7wUss84hziE5H3mw9BOl6Z~!m>s8E#K`6@Mpj_lo!kbuNTk*=N52p>iq|gd@vFB zv9dq24sBlQ`HA@M*t*vSY2d{CPT8amh7*043v>CQZY$tp1F-2|J(}Rf#|ZuQz!c3U zPI(j`nxxrlD+Eo9xY0I9*gngtKFxLYSIU!G&UA%NKC}O1OxTQg1Zf)X)@B=rlpk=l~6pr{AcqWVt@|5r^ynhi+I_eNqEJxtghgFAwa~XTay;#gBE~ z1t*V31hhC6{`Jz^81yZ&FI=C&eZ?;ACF%%xwP)6mBFWh-yW}IZCpf!+kn+}j6X5I6 z+ARD%VMqhbwhrY@3v16CYxgL!uFqQKQ>)2w8H zP^E_{n&Qak5(s*}4(-uIKNZ@p{`xe5mHzNivUV-!x-{`y{M%*11kIWm(G!T_BJX$0 zRpQ(x=Ru(tLOL9;E0<9*OHUg66QD0q`DJgDVe75<^K zMo!5~ePaCyE@Al|l%*IrWT8@t%$ab|jkqpN-n&s}ycmIuA`1Eq2$?xx1-^j(5DS`o z8d)S~+i43O4AN|17q{6$ej;8{@1Z~ZWWr|F!I1vMU{98goEx-R>XznV=)F% zr))+XJn=o~CnY|7q3b8W`Qtnoei95|`mhP{;DysDE2uDo9&rS^=NZQv3N83CO^)t& zyty-8mkWw!$r;IrVacEma_SXGirP}heYE5&_~n`s8VShvOpR|UXHJ5}UoC4%N5_-K zMc$!0R=LAJBl2`k!9_=v*&|MU<-i{H`90LqE@pc;G>4_pA8TJQ=?L%#PjrgG1uUKL zyru}AxL)FzM)lWpr3`lz$7sFm0)RqR*vORmOuN+V^La%<-)2%k)0hNH9zHQ@Go>fE z{KKZjPBl&YiPF)LBy?zs2zfWWAj*uErV>jQ!zW&qL+K~bWPe;!w}?jiz42ADP;I!9 zM>o(6Rt(FlI8X-eLVv(Fc(d#?FC><3DH};$`Fx)yHmYUG;i~kx)Pre4x29=XsI19j z%2%cd#mr}=BIlKZ5-K34a*ushUxn9@1%CL{I%-Gp(Lq;#*s`v(V35I?H*a33(HpA~ z*n4~S%o*)bjoHlS+Go!G)%|L~vPY1CB-r4vH}<@8cP$;orKPx6mO-cIFP`gU^TVD& zg}+}vXa@S=Azg{0du{Kn=mho4){|$+#65bU!NgujR(~AO)&{gppyP2&`xN0jecury zf9xavGm@aZ_T9~;qs!^osr$^g3EjQFgu+LO5S1AB~4?#a42{Uqz{ zyl$*yLBqAM;zat%&R|V5b(A#I_ekTQGOz9o5?|A#f=HbvEZ+`eG)sK)lW^qyA)4@# zWn)|ahJk=hc)#hG>%)hwSdd=n0hr1-N9T0Ckq*A1UZvB_ zM^tTB+?uj6Y#n-_Zfb0%GMv4^x2|8G9o5+sXSFn$xV-{m02VmnBhN6n6%tVI-O+O9 z{py^bJEsE|OI=`w^@sA56Qhw4e5~FHno%B;4qr%{q|IEPNqec^)F0`A$6KNcVe6W& z-J;Do1jyz1te1Ly6L6&e)iw*7rOqlgGcD0`sLE>IOtyQf`V749dUa^x#S-|4EmHJA z9G||;x-;K%UymmET%UngWk}|;p*Bd$GGw!i10SJ7 zv+_Tk-{#QR+cdFr*H1_^Z?iJ!K4>$QouOUhr%j$dHe4=9M^0IHcp-|i%ST_WLKH{u znF?CBgxM%GWIT!mBAC)|QFZ1356+C0FdM>PNHUI{T<^&Y#JRwrRie%eAq$W;PVWS7 zJj9phMQKv`S;eB)r72|a#g|1&ekc#6AXb@(XonxCRbm-6WkFV@3jWXmjXLlZ88$ ze|je0y;nYK3a$a0z1RLdY}pn9!cpu3%g#%tS#+dlp;Q_bUbvEU7dk3w^_vLF2GV3f ziRey?@4bCJd;LO(6vNmwd-2_iVCPcV&51xZ>32i`qNLJ7fYs zOCV!UAJ@5@aOaq1k|}e}>?S>yq|vZp#NPL%zSW4nBC+i|lwNdI+br|3gi=b%SoB}p zOurRFMPGN;Y~K-^IZp_W^Ew5ULQOOMWRRw)(eSX7ke5Xx;lwWEobM8Bv!cUJ$5lXtE@iEI zm_)_h;;_H!orGEtU0go(m z^m8zRbWNNqEd7Qi={RWS_~HF7-=95u>b>aPfqUihXQ1?84u>+qFDDTID>QlT)8uzW^Bsruhyi=7;@~Uzk>4uiAWglFd?!%Dl5C!4woky> z>W{oFni6G*rX{T9tnd!iq2yI0LeAtHUIy)=bd)_2SNIhibtoOd^cTu10td;_Nu(pm zJ-zJ5J*~PR!+!7aR%cT<-~mNGe58BfwQ}gE>-V$|_>Jog$7h)kOiF(SbCI0Q}p z(O?q4K@$ERb^(7w6CmLy)HZAEN!k&c0S0)ZKhlB+nu^E{VLNymG#Fem(jHCosCRJV zI!aIAGOv0bvl(=puE+ws+ggw*G}fi5%!aPpi5d6^nxNJHR!*fef8wofgY@<1j&@T{ z1#Zg%zrshE(bpeTk+VxviS^!p7oh2RVrU4YZudYl^MUM(9wIB8>U)y zcyTTOY~&Kj7ljQD&wK6*b3FKQV&xo0{U8=h=$i&n35L}(1u{zP#6eG=WY~?a0>^t` zvvE^1438V3X=~JY*QE)sWGEH>#W?5&eh8MMFAF*%4mqW#I`m~3mJ_2$zZ3>xC*xa$ zX6O&tmg*!;B}0F}MWztni`uNnxh0ySKj#az{=`>pGyCO&HnaYU8tf;g9?&Ae_268+VF>eyD zvbckNNO~tYPB`lTP11mGrF|SFT+0{#+`4W{6N9X>zt0Smb0@cMN~hqA~2fywbS+Q@@c9KWj@( zZ*;iN^VuJM|C`xG9VkbhlnP_n zry9-VFJ`aUN6%fs$XX9XZIs>2V>$bk@Zep0{B(Bh_I-6up1Dq?6M(+38F?7{(oWL+ zRDwB(PXU{dJP2%CG`Q`o1i~a)!U#=O<_mwNFBpP0*AKsb47sR--JIZV6%Uwho0(Ul!hF zpyaFT(7K!gjzC?7Z#sA?nq?>JhD=0S)JdTH}4of z`JH#?bfZDakbLqDpX9saS}j4HvZ{OlZ%B*&2*|@7#4mJc7xg7^Z{#3ubCO1Mxdw@C zN8CXSPPB@CkOhAfa_Q=|_dY|9yR2CqB~S@tJPF&>q0sErp_4SFf!a@;pZYXMWLcLcvPeE~T8l;0zHhpJl7gh1ZVzbSRq`Y| zB*}8YIzV?5`h#ZrAEv=B1pB7!*l19ZDj97*;`%ge{UOT~O%EEQfB6G?ZOT7%(6@`d z&n&e|niI$hi#R*G1($N70T!7bUXnTD(Jvx4g6TP&Duff~cI1NAW4DuVSIMS(=$a?EIrN5kwV>hCXl@f@u~b!s|xlY-n1RF*&hqi~^hB0yLXr;4!dx z%8(9+{^bRdrAxEcA6=C?mN;ft0Ufj%5&F1rs%VmWQJdi_Ew|g{Cm^LU0QLyA&CpL9 z6ZV{vb5WaZoF@96*I#Y3rlXUB=)2J^?_|@u@UG<~Ix3!^lX1`-!b?F)z8AuU@PeNp zZ1w{hcSp2TmlGcM>^!Uew0CB|{CwT}YUyZRx$;@~ity6`rn0Vi4{XzaDbNB&`v)Jc ziQiqGQRN+l@$dfaH?tc{H+B8c4R?HBzIv(j?`B_q@wxBIWF{&P+?b{m4HFKxVmUH1 znREvD)PXF3fAqs5axuEkVK(g3+NDu#?1Md#BZJ-;|A(*{wl-ch9y*=Y1!>|Y6!f*M z$bfIbH^CKEJlanpFUeg7XaZ*)fOsyChHsA2Y|5z~P4SauW1l8vm-7UAAEX%-Ct@N` zM;60Mcp~)Nv6+51G>bjK5g}+Y(7*^jdbbVG4shr|pD3Uv>J~Q~z#5ogBg-jd!6tlo zPYV2(L7#W8M1y>%e+M;S6!-QbKEDsn{^LLXT@B7SRs7nu8}8K3W@m(Zm-nvBKe4S<&$a<~N z$^d3F*^=>0CxV~Yp;=xGS_0{*Q&|PXAnySU+~8O2-DL*Ue9++)TJwgF*;TqYET`}? zd&=Qh2TmPx2le|Oe$s$+EMdk+*tYQH7gt>0UAlD9GquqVi0wV_G8EV*#1%@+yoN19 zx1?qD2XLH<&K91x@Ahl3jl0ZscewPx4EP?&AY&-)F0IPY?FAaNX7G);l!W#-9W-dM zYJ)nH-*kKl$Zxyp8@>1IGv1|LDXSANuxU^0Ug_%mZM=FHmh064dfU{Y8>Ly=S~j;t zn4^gt7*?U9M5vU zCW;3uNs*4G@zRMMpqcSXxLKN}`}d+LLEXtpIm-8xER%5|jP*yM+YbplM{^7Mt8F$- zQ%+r5bem|-$s(a!Imc-_M!wnvKaTq*>A;KcZZFM(SNNy(H<2IEY)_Wd0r?R~GB^b@ zdrXi)RQWS6OJ$cPZ#!lD>Eo@UJWIGk71jxj@^TOd;qrltvlChZ`M1A)KcjNJzr1Yv z%ocrq<+3}fbbR~EeQUh+Gd!`Eh&w^qkH<1bMufvQlpV~j?$fOAXKK_Q^-R@MEn#HF zl@aP#c3GEEHTL0WD%3cz2U`uN+00w^7_#h<`%yCA5!L_zKmbWZK~$qcQ0GUTdE2U& ze?OGX;5%*F_rI;sL{U~%@xQKqA|LUtPZOX5xiR1DO}yw&G@?|n@TGoj?b()bq<^n{t_Nr5bZrl( zz0wFJh?MePxntrtXntR3zUE~9Um%0(ii5+W8um;5Yx!(hT2a?XbPb3o8U;iLo{L3 zJP*<=umf@?UgX?PnvMQMU|N6OIuvcCoOAk%$dFTd&AjAJlR8;MG+OAlRR!DN6>OI( zT8It|9kyuD$Djg-RQbv<4l|?!SOq#8>@{aLlfAw8)?*Fc&}n35%N;{2RzL$Z(Gi^q z_+mDh&L?MFoZ#>^MMi#zHaztyeB~;RmW|?1?F&BvOXvH}eH~t>{Ko7xI4EPN%b*2q z_bYQQSPCtC4`cOFVkI)U8k3gBpzz*kcFsMWxw|^GU^ZqwQv+|QcnkFj*1NNMxnQ;1^%V%4lX$kQ$g*n~o zU8}#I$5%ABBFlO-v;4EnrTvsV^QcgSU)d5W8Pew#PRA74pl^0hi(7A^8E-i&(8RS=A=`ap8xV?lD78J=9 zC)`QMa!ER_*$AKHPeRdoy`XCmxPSAQI<=nF5fGII_X98j%#zJhnw6!%W4SJsXO2!& z`BJ8FxSgO{B~22JNJwl~ps_*&>g>s5=8q0A{8C{5EBw#W0QDxzZXnL zJitqR7>HsiKlvkrlUG3e#s}%_Ue;Cw4x}37NCa6Ld|vsNhBJ-ZB0!@4VBc;aY6b`% z&!0cnY{?0NJ9IsY?i<#AN4`1Wh8eLlXU_VN9@;c~24$My7@7=xFElP{>O$9T zN=rwV4&@OI60fZ7^DHNEF-ry~<6cd@$KG0&1i#a*T?{fGE(2dcX6Tm(`5xTi*Xa@kbTme>q?rm4Tmzg+|)ObhZAlv5$&;B1y6CEz3 zzfvHi&JDMq{`z`fn5Gi;VQXKQio?f7ePJr@pMd7V`WupS#Ac~ibVkLKdzjz7+cSHu z3e}a$2(0<3;x?jtI?^=Qk88;i%afXpHTV>`)`X9Pcw?^+_t<{>-4Cc;J!VqwJ&I+0IZQKTE^dOGjDsN@Wr-xulB2Y#wOY6?b8B1p}2P zcN)4d3)H{LUn*wyGQHO97^C47VDJI2uhkHu+(n0Ik9U4rpp5J1C4nwhExm=ZQ z?E45Tg>}k|sW|kLKHrA}*A(nj+&XysG?~%CC-7Yd;U-uP9H4{-j^7o(*`bYO(J)ON z07Kot4AE(w?#gTs<-k~g9K0-R@BK3^8~)92zn+oLIzb8E$bau?(2De@mA9Mvr;~8| ze;^n87{C4Dsv6DOlc@W3k&*W-%VcTskJs;d1}K(O?)E!QqCKMR1C1WaQpk;P$V@iN zqHPBOK9#+Gxp~hsy!+YefL@e;>rmUQpT|ho=&iD6!Z&ex(TAPFTgTOYGKcq{oF?)# zI+~JYC@%B;g1V&+j?6Q#V)d^)k^J}d{Se5T`5ZuKJr&S-c^;+7EZ~XkB z>bLv4Kbq%#s>5Cho@LP<#u<{8x&#`cMV@)9Z_f(Xh_~>}a_g6>%jo!u6Q*vX{u0d> zYKI_`dgY!O6w3}V@Ep(CUZC^;W{27-FC!0ibgMFvat{4duTw-~kDWU-a4e+YU=J{L zJF89@=<>2?<#X!Kw>o@_@&O%n@CwhAJ>hU6A5*%G;H_ycsvLc@=K|D)4{<%Zu8 z-?Ugmak94!y?~rtGs)~frvQ~eYQL86-p!`(tVAQvm`3@7?=cZVXga*iIDmwnFb+ka zqQvPi77c2gj5s@=($mPaBkP^lQ7a9B^nAj}6^HYeIO1!(ypIv9mL{;!g_cK<3P1TC zc;d!rLIb!y&4lmM^n1zX3^IYYPqUGQ0!IJ(c;U05>17)hB+v=62gG z{jaZE^oM`(Jw!9(H)FFYn&g3X{bUn1YiMrJPrNKvE=4ErEr&wrANST#*@gd6aZpi& z?`58_|B=tgOJn>hUJABfqengocW~b!kIa^0hOE#8(lkNO%+g-D@|h2l+N%rfRU*#5 z|Ncks>*X*gco+)cVL$Ei@+qGtd03;$pJ}gA24rHN5M|d>&F~yi<+oR(*pGFs!=oq9 z>>tc>F~h}vBiK5B=D3z!wTFcyE@X31qKf;B-qJU8S?YCGd#M9SmI2Bp7M&> zat0Egzj&?6U8lQ>C+wBHrS8#J*fU1flR4f;W1?#_;vI)<`mp4OGNpsJ_;r@4ojAb& zAAT}GQ}M`>yw+o0m8r``vFld4T4gsyd*|=rV)FOcCvuXHRs9j%HvPkmE|19Nph2-*gl><(ZBzv~J#AQ6~jj z8st+M#;T3J?rj_FIasD*)8c=4=5{#u)%9|ompBvT$w)%n(~ zXp^h^y3aBJ+NoRH5+ypD@0{IRS@TM%^Jh-XxPoV{?h!0?d3G?NM~9-e8T!vq)5Kp` zN=^N8RB7^=WFLq)h1WEso8rb<~q3eG{GuO^25sZWyz8 zz6271gv<#u{L2tZ(XZmvE-sW7V-SaNGXM)y;ze=LDR}i3hBR#9IMN$0i4w11fotLl zUZ;zfHcFpn&<}?uuE8sqK21ADO;c&|DDpmDD^6)?OdwXs1|xx&Ws9kUhNja>P8|x7 zvZQevIR!sT6GCo;75(XV+5+C8nPG}%7LcP|HS>@^<0*rq?((S;WRf9a^NYF{t?n6oF3`lQ+C z%vh_#&Wf8C8o913YkU)42|TN*AzM-26r1T??PIl08^0DT_R#+(G(J}Fiiqt2ucS?y z;C4gHC)@-$ctHlb+E0k(H}HN|quN(a_*d|6Sp7~K@C!}e2Tjpe{2X5BC0^yL%qylN znu(Y19q6khFr9?ccdbACosYOd9Lw40PcOhVPBY?7U+J^_ToP5-LpeFOfG$`Nmw4BS;x^?JgPj%owfK|h1$Aj4?P1^ z-W#vH*yyE?_yhgM3l2)A*Xs2C=l}Po+3nl9BUByQomx(O`~CyxY3@};cgRBL_`Q~a z-no5CjqsVu7dpKgZ|rlx*GuKcYu9hi_8(sI9{gNp+OGqkZU4gOtq1%`4^_RLon4~w z>AK$Lw{0v$Ve8hf!JDW5nugKJhWc)4@+ZY1{nW$fAe7 zUq@UkOZZ>pg+`X1oIw+0g{BxwymK^RP5P5K;;*Fd$udZj4!qi0uJD8(yw=~MG|8mE z>7UC5X!c+mx;ApA6;QD^MM+(U(jIa7rX&nVag7r;r@?+x*IIE<6{`{IdLpPA0kNonU`Z>1B-rkvs#xmnVD@4+M2HK&B5zh79%77oa8Pp7nV@Zx*X+*?*# z*_Vaol$K}vg!Csb+{tD(@}TNcmN~-@omU>_2EG~WcF|6x;3x`!HxB$nB`+P{tOMYMfV^~iGcF}B5zOpy1OFfRWc(GRE@AW4adN;`vivDizA;Lu~GMpC1}vD{GHt4>cRb z($giKpi8Ao=mbck{&w{Qcr_6tL*9YMK9~Cd%XaGB@RH^d}s=YxO=rQ*yxrFmwC})*X#Pllb5}27y|A|X>Q!fJP1WsHgjt(NWMTb_w^AYVarel8cAQ@YaS^qJM!ci-y{ z@MEWD2esdjrKji|pT{fE5%zRIXL{(^v($A&5DQ%2X2606d5M>$=i3SbGG3*#U(eAD zx$IX-v)~0MvnE;ZKxdeyIGn>Pe#JX^rOEdlIa{Bv>oW;c+HkbPy7@EW=Ic-?0a8WI zKFy-Ps(f=k63m<|x)_x0Jv-`lqxo5frVzQTVOCH)J5LDD7{AzzFl6s0uC}-Ag67#D zyvM6~-Z&pIxOq?Y&jB6gbU;hx6V}M}=cx9|9?=XY%XWXcb>B0->>Z~*WuI=gryBhg znha#VdH=>8KCUHW-|c2Pyh!;%13$~Fk7qZu%7KB}16nzSu82cdtgNCAW1x+troLZS zavs#c6f@Ku*!W0Gv*`rGH+ldTzeK-%A43PM*kH>Pt1I|d`;kBmAH2QRAzG`}(~>&B z*n?GFWYwo!PbhxDhu_v7ZA^+PYjdy@I1o+v&F`(IRav?9$i_ zISStOX;Ln_h56SmMy*d3ZlsN>)X;{ppRoGthX zh7!){jJKv4@}Y)}(gbhOpLMcPnsYjW!J=DX*5kaKwJa187`M@1rQ48YUQW~O>kl)^ ziRbt!cByG@)Mm}{k3LQGU2Im{Gi9l14$BgbO955;LgSm#V~rQp61HNqMwY%^GCxev zOrM9pjrhqp&7!})pA?&+Gb+CvObF>C@1~BN*9Pqp1$$AL3k#QodeK?#DSx9NA=A;I z;<*$721QP2^#iYHfM2_I!^q0pyAh0O`r>{H?-ODgS$n)#(1z{k*kbWpKNV7JW* zBCgPI;}rp&wv^?Hccq|r@ZcbRsc7&MH<(q)HE~LizDZgxs1IK-q~*@CTnI{BO|$9< z3Z#!$Ao5+MDP?(J?a~~S#d5;9D&)Fs)O(iCp-}28FL+8hg&bL2e^_miN0Vk<7QI!v zzW$=z6mB(w-S8ODtztXn6u6@-f+s5EQZ8UL{e~A;*80t?iS?6s#e-!DBy+koKd$G| zd(;oWvr2$j9sD{^PzMEZsD?%|Gq%87)~UzjQTFHZO@7P3p>sd!E?an{v&%}1)ivF7 ztyvyUfBw)NUif&hx;FdsH{WTnYTxXCeR;(P-ZA66U!C65S}F2E<=Sg44QHk&3?HFW z9fL!4odmkthxEfXvrQG3Wh$g)^{$`jWx@{CXN}*=hWKUT?9*gmrRIrpDf1^d>NuQX zie|>)r`guZvZject^vH}7eU{teW%84!>?X3nE_8jayEEP6CDqiZ$mT_b_Wf0HH7DA ziXUvy(ZPVt7+eHa|D8t{;x`O2Z*O#vaq5ha$DU|4QTiaAIyzzO(>?#{xI4T7(EW?P z=v3~u44OGry~B1M4r_a$Jei@kH+dO3y!=zL(8=0tV0QMdI^{C9@}gEii625K>802B z%{PZxouAo4Z2S| z6c;v8zLdWmJ$%3&Vd~;%&y>$qrg0!79r1m8Noy*uH!1J1`z|e|iZU~38=oYg{ynUE z8ryJn(o5~Hrj!0&F!&$okc$s~ZCT%U`z=t*b}lQK+(s%)(D}!a(2&^@jygW^f?L@~HX=DQ7>A zc4U!VREtTM#ryO-%eX#GA(a1MJ9E@_czNN`?ru5z3?#QUuakP4903dn)0zuoH8SYiz{i(K6<~PDw%$uK!2gxnX6Z?`HtLA zKKXd|r5dbM^zcbId-n9~6YU-R>BpaSsMR;#KS+m{N{$9BmDJg@r+g^I!?m^989i@j zpux}e2~@gA)kx->C1C8g?FV?K1AAW$aMCd9j7pa@`pyh(xA7k{W*kaFWp`K=YClkx z(rK6q_`(sv9?&Q`4F(z=d=n^3)I5+bu}%c6oj&HbBV|U6hSsHO_ySm5aa1^Yw<$mA z!{K|y?%*VVm%na1P536R{C-RpWFCpLE-+FRk|uQ~`_F1E)N)SIq~Wwf4W0}&92LGD zBO~=)$744JK**17An7|;9IoqXdydN~yLo>vq(j1o%A0f&In)K3l;`Zjy{&7$n607H zNFHSdmlYVR4Te8al#Xeffp+Chu7;&EQnd=JD=B1sbZWn%QNR_u~s^ z-O0Uo|GxI{uKBcfRzaZMC@Z2t3}3*}DP;fusZ%F>)zY0i_hvt;oVh0*oL9$})1K?j zeJuldow8v?`FCaQ`Rvr$bDp)LbAoZG^P(|?7apNM6qj}< zO&{-6+~yz~6DanrKUPf#lkksNB>@}e(i7jLvv15)_|tNH&lO>CydYUo&` zDIcIqSWov;_RctP(3xVp3QK({i>VXYuET&UGo*B|8=^tlf06H`>Kc3;9M844oI1;c zJtbYOBWU8Y1ms|_milC)0h|o(vhs-46x3ava&yN!t&BPttD;=SqrV-qmzpU@ChAJ| z*-|zlKd_Yf%3`id$!m0=qq8Kgi6kEj?v<8s@7BHqx8=2p16cAW1HkBk_6GxdyQL5I zD|4uvPlOg70_o6?2phle_hk@8fo&12R5^9*u%CGsdxKwTa9JH`;d|o&O3_q#Ldg7J zUvs(Y*AZ79iDN(}d9}=vkpWGf(-#sFPK{Uc7cvzZ9i?g7^LeS3Gi4d3 ziEj<((J7kFk5&H++%-)ZE6Mr0(UE=;#n{TUcTlnm9(@cLCTh!YL` zX^Z+`E{Qa-129{O+X^hah0D(~H5KQ8E zDY)&>ANXA$>$?tqSHGy9r+BL4-l=eTp%GB_@^E21S0;R-CBUw9RbXc$`o@i$nw@#* zJ#d#UexjMAOR9X^&Mu_c6UZS{Z`5$Ts{?VK>Xg{yCyuLwcu19+4&2aT8{d5Mty0Da zE3-P=8K^kv7|@A4rvs(jxl{$H*K+|K>{jD}*`r;@cd3)0YbDemX7s$@@B#sqH|eSH znPqcFXb$UQFKA%Ac%p`bDs>u3@X0qb(R9MSKTW8Rhk(_mY)t}JI8HtPX9~9Vg+Am| z9BHTUPQ^{(or+T}=*C5#&-^_FI~9k9X_JkGDOrfCKhViAMRUf5?Emoc8+g;hOjFu8Plxs}FpL)S-iibXxOCl@kYN&(r{C<_ms3izGN^ zplAs54m@;jk&Djz)oV9r-{|as<>i&xMU_j(b#FLnGVlbRTlZGH43kDT*D)dgkX;wG zOXAP(DLB$h#eayn|4uZwDvKNH@(J|ZxA~TIFXxI`eh!hyN+u?J$hUWuU#TZf9Mx?E zl}{p%gW#FfWl1z=PH>Mc%bn@4an%oX5&2z?@BOR5&5#fSbxEx) z6-r~=`rf0DXGhCBbQiMe&TYxB*B-PY4Fk0vAX9ygOmt*<&o(BOSkoDXcaP=j4+9J6 zjV%h+S>cRlJ`C)6Kux%oS5{}=|8Q+~;Lu^6K~ip?Q2NwC0quOHpZG*>$;j`tX~wkx z@&WORJ}7U|=~$SDZBu@TIIw>xyi@v{iZefzEAczS5U)8COq!;{i;nqJu*Q+fuaPEl zzNg}+;vj}uhwvsG_^0AOMBIm>iDFx`K&90k&l{CxA^i=|tm$r)X4+*6ZZonhg7@!1 zbGvP}h@3+-w`8*b=I^MF;g=qLbgK5x5Wjda%YNA#Lm_?Pj7FqYsgjlkGBdh2nLSeB zeeS%L5Pp45jmqQANOOxl{GUB}zxmCVvrF3BOUTA0&#RhE{jWd%$qjW*kzLY~=j4g_ ztp-Mw8Rg|*3qDkiLw=TYnE7S77J;%dM$2^yHI0laP_9w=(>Z1-VC*;IzmJITQy z;)8|}jf>Yu54pqpTpb){4X`C6-tge%*_w?`o#i+D^yPGE4A4Lv?ee+&Q@O~CbR`$5UDM>9g?58Fd{m_hP^TOVI=$M?2o zd$0a-&HIA69_=IHOUKRi z39_y2o<(#!L=!$2fgRL)0P}atb^*WsgUR`i0Tq_^GLXbl=Q}%AHK4TL9X3++1MtkW zvZ9FkcUfB(2yf)$9-P@nowm<66~y6IQ64CJ%UUpzCrv z_`sm6J6c-(_?fPO6aJ-x`?UOd$;-l9NxDy-{Z;uxNB`;LN1ADVIy-Ufh_5$X(?C4+ zvDoN^wyaFuS&zslx&-uV_r}RXp}}K@gdKw;-BjFE zyd~OBnh-0pj`1``6F9Uq2AA4wT591)avqI-BoNBtJ^!M|-6|deRG2s)4i`3UjcQoM z5rC~7J@9HdUWtQVho<02!#ih(qEz11cyWvxu8td~*~+pVG?9&^4nAmPOqQZQ%d!n} znx^!C?nm`EK{IuWgbsS2 zlx2eER&3VrJCR4pwdmfN7-kj5_$42+#OUtr`>IGZI(qpdSJsaoKk=!{D;f>`RGm{A zk?gsp(VF=D(E9_O1DY|){ki-mU?XrsZ%Liv!+caBZ&!d0*RatjSW;);xJK2zoOc}p zg*~V80XBL{o@-F@I~{12BWD?v@l=)sWb4Oen))03jBcM)g-c@yd!eOWYMex8Tc_Bn z(Lq^FNSx52f%8D4-ZbJ}W++L@nd!j4u%C$MIsm(fUq_i??hGC@S&}V&^`@^2X85CS z33=c(`8BUo<)4s(-##te3CFvjOPw`DGi70xA#_f*AQ-OX(U7I(CvoyURK~Ts4Vp$M zyh^T5%Gs|&BhG0`{mas_48c!T2S7QQRU-EFzum1tC^bB ziiUQ8#gbs~5{zH|Lq`$Y=#Ag=taf(!-$JC4fl|L}+3={$g&n)Q8T z-+-|5pm?V7&rB2F5u)va|Ffr=Z3iqJJ*3qmmp{AYdizg*{>yA-<$-6m?SBHKqg&0w$3;p`t^?ECj2&Gu_IEXJ$c{6K~<6I+ZpF?!SKH3*>HuX z@hW~0?*z>uS)`ySGYU;`)_AksxScd>SqAgqHr1iXOCal;X3_t8_8!vxRM|+5qD*E; z6g}Z@Pt_^AcKhD!!r7BPs7g_DLG0MKSkC-RojL}3*t&q-A3cuQRk&|gIVipIIV&cf z>%h5K5fo+q1I-e%)S2bG;NUPy2FpG=bJ7D_>}w@YkcTM8Sl0o4{WZ_<&$V6mwNKag zelyr4S}bAanmuMU;e&!u&1Dw*kvf$RbOjjuJe64`7yF+%R1YAX zT&*_4VRc+1P2i=zdn{SFX@S{gp>tq0)X^gcY)f=>`oxjR&Tc>k!<^OoO z5OqsKPjs*iumorlm+^s9c=fLz*YSD5Y=kDTDa#<-c0IDOZKptDHDkO4T; z6cT8FG-GRJk{-oorLsQFR+f#@%))z)rg@FZh&bewn@Y}BKdHYVS*%mxKuj`ms)65= zG%H7z2^u)_P}yvVW;!DzJ2qQ@rttyRr)fP%dc9wdCeGQ|44Rf-55dlypCrw#*bILo zlQjO&37^?3@mJVrn0wz?1POBNwa zo`(1ZFY$ZWaf~UjD`j6iCD1yhBMqLxT@9duwV4(TH%_D;HMsCb-O%P6+GzNy$qIJmx3FH)T1` z#s5;r&iBqrrbuG*L_AeamJ5gitLc~K(0(04lCG`*O|!^?M3tEKoh(-kU1Y)RaFK`A z#4pNm{1=AEM{Qo}6_$>?Au9eTzw(~qFXJL1!3k(YvY>K;DG z8*N<|aQF%Vbq1V&S`Ige_1-c~(A>#EF=8nEB+@r{g|6Gy3g0yqaHk-8VOeM>j?yfC zskC#lpof%2@f)i{g;%iFpCFSZ&}IIF-#MDnXG2qI!>&aRDRi=}HE1(n1Kv6>G-)&w z%%c+62l$QErF-lac?Ua&ETpGgsCB&QIV| z@4=@}+9lq_`_w1zSn3^hdKoOxJ75THe!(}KinT0q$!>VmZs>>zr{kIrW5*4 zB<4LI-rG5iK$%qD7pK=nBb2mcz*IJh_L_T~Td*G8Q3Zm=x_Dzmz=aHS@M<+OoViGg z65vfA@DSX(c}WbWk2}U7CRxzKNH2H8fEjH2I#Ar5$N#(K<4 zXxZnJru64_dGQnCkts7ezKdM`twR`4cJga`ixc~e;2l@-8)?b=qA5HFe4T>!!@Pa% z3*%Q+(XnLc>9c3EBWg%Bqm(*f(l=xDyHC@2RW?O~ zF3M5xwQ@?MLwJRV{6M)2|8*V(zL}MkJ{y{PK(@?#*|R`Se7B|M+v;SK$Z#QqDYR>BTEGp!OY{ef`zt**OhLv2T|Z6f~Bh@#G0h zc)4z5zqb(F(K2GL|2eNE#o&PcuOB$2otdJ2-beSRZ~mr+?vvT?fA?EmZFXc`c94y| z`IP&+8F(rpAj{FCOS9i=AM?*z+RTa7&s2V$KYxDqP%}3#q#Ji4q)(TdwQltcnzYNX z-$q`6PS$l&pm71m2is?viXhmG!IkV}+c(mlNt55kqqHi=%|nG3n}cUzngy?YlR87c zr7Y0c_bq3kIVMZeL=W=T!k-`|W3;u9v+~V8O?@A&{U-;*#q{l8i^BJ_a)FZ73B+3QSIp~Yd*y}et-HE($XIWc@ zPPl$;(nQKk?r&CHiKKN;$CnvNeiG1qmbvhf z40>QC1$m;@gY7LsmQng4J*Ol?8(epnSKUctSu=HzJL4*2d{VvAWE;foTmKl*W;p7|YvH&HI2V^(gV zAIh#hyENGMjysG6Cq2bz7y9$B$|j2I;YBARBvA2F@+kE95XZ;9AUNoP-aamv9N_S8 z;uIR272V+*Lp1w&bTOKd&s^qGF7))5e&TrY9{Ld9DM!lUcl0$Ctmh^-R2^QBVGyCQ zP);ov3a!jAjC5FOl97OdoB=2-F-1`%ao~y$rHG;&jH7f8!fCw5%}Ac$Q5+uypSmT6 zHIU@x!gX9tQ>GfEDYP(WVUs4xn4%eYaZd4zA}f9zCwREaJAb=)qrhSG)E${dPRU{! z6)*W2)tJL;-OTH6il&s?$PzRQUX&-)9;*1e*=& zcGPC!n?bW{Gv1}ouWK_35ZROuVajH;ERFu;6NHAQ9&p`3Sw{TC`HTunaGB2-jPjt3 z-i2Qm|5K{k|C&4sET78flV6x?@Tx<)UlrGprIWMgPan@7>V((7{Pk~|*?pjy6i#g3 z?FKWjsS}}HC~#Wr9i1Ti%hl`Bzpnhzy@SjaXJLI*SE6hb=NMrslRdi+Nwg@`i}}Wq zZ|i$#a%%J1qi0QHY7qkAVT+`kPlG?RC+Uoqa*<~qYPOeUYOWYca?;rE^;>g&Jzpqg zxxAD7JL)IYALNPjYo#|%;bz3!bw`PVY$w0ycNcHc#5YBEz&B|OaFvDgV2xMw!UxIQ zW6}1;YrWV+wjCk|M2x_ za0*s37;kY%;Cy1M(y<7>jw4^XoY%Kh>$sXGax&xTMwcj`(jiYT)sb6$@8hR^ zKDdc|#`0%6zu>1)yH5jH95lzQCrf~N|Mv)xrJ=o~yRm=#=@&OFfA?=+x)Z(#Kh}W; zdZa%7cLKh*q$`Km!^`1USFhff-Mn*uc5vzVY_~etbUav^={i7msdYGzH^^v}o48&@IPH9;|$5ie}Ug#W(R=@=8$_aso@R zUkhjB3wj@M_mjJj@PG|3ljd9paowAok7q-imkj^m1?avOWYL{(tt~vs;eiO4lqH!h1{aB(*59&FXvay6gVD z`EB!crh8gy8HxfuEa5#s7|#2=J9cDbR%TY6!a1ZwF@QQ%nLD=M;WA7zqn*6T2T!4y z26=YtRdc{iv*=vojtoj3blwwnBmG$1nYPL>zC2WlVAXEP)4IJYRYI+PqjR0m-_Wz z)C9Xl~S3Dv(!ss7$PQ!L0%S)`w1WrZje5Lo33SycCv@&O)k? zwZU$>Ag8}rs5=g7M)P?kuv_q?3b{}xlA`>KIr!2kBYzvpHcZ|t+yRK zMcUK{KBK{{JSWPT^;9P8hkjHZB>ABJsz+{m7Mb(qH$R6H`C=J*Dg!zYUOX3NlEd>2Gsb^c!6g4J{oRXgJ ziVyGZ+_RfQZuV$~^x@*m3m0?<%LDJ7Cl85t)Uv7q-+uVPdkYScVnrzA=Vw3BY@PiJXh&aa!s)ct9mqA7xtWpKa~y4kk4JTzsc@-zHD1~QeCeI3^*0Z$+C(;VU=SZl z69BsW24-#(JfmOL)s4_hdEw338dTZD+O+ffE-CCDJgJxZ^}PID^5W-c$Kb2MX^{ch5tsovt5;Z- z%<3k#EHFFFVOtz5c}l0)b0Fl@QfFvCd)^)XSj6jnWj({zC{T^q`qZE*U`{vVXlgh6+#j5xZ`AkHHiBMPQG_5Z+XV&0@h+A<**|7jbKz?j}69!+um8d(>F>q}D~0 z?cUw0mtiA%hOVI}l?;bla2hZJCk~tX?Qegr28E;j={Uacj$&H@Rt6J4$jd=AJca$u zNB^{V^Uc@YP)2tJSzX)oD%A;6e>bxtdbR4?6W_j+1|I_eODdLnB`^`D_xTvu^}xy$AgP0U$64#q|d}S>gplK;IuP5 zSF{g1p{LZ_iE@wCCVeJ%h26Vy*IF4Ewnwhr8c;Lf%|tw`!kugLr(n>hE@%@2a^83S z?3qq)rf$A?O~0RMwpR~=m6yRVb+_e}tRYuRA!ME7Ic0lj&7Ca)yroMS;yvlC@Zvqa z-)V4({mI8blcm!v`(;TpGDCaJKO46#Blb&6ARBV=+5d8%RupJfQSu-YdyF4Gx~YS& z9(d~mv%WqAFOl2tE)3ecqrcIchdF%X)mB&67T8bAvt5r#J_fmj8Q0WxXLPm)eXJ|j zZ>#qc^%FkFUpzQqmfAKSaG&xg*@ixAQRiUfo1?oEKBMW3`ft390<(=vd5pZF(U>l_ zb5Xbsc=0F36{!M>uQqcJKz_Vb5{%l^!ni*LH`Wa95YJK;wnNxX@oeeN@to5oR2H=`zOiReUywi&Hvn=6!=cd>9brAPGBhpv}Mj%g3@^=i_R~6+fWIDXI7G-(S4{ z?mIr+nR{t}XhzEK6$F0GdVNo0pC>of-y{@Ww5(jOPM{8fH2igRMtH<>-%inUl0qjefXwydw3>3PWMOQ8BBjr`;C>A zo{a|e+Yr{b9-?<`Tb8A&&<@s(JnY%^8Ut{>8=3*ojk|g<{6Ygpy_a1NE90RQD|Bi% z-eL{)sj}+F98AF4;tus}@u1hj-6zms_VTy9(_3wbW+uG{UUHIek5)`_2-7p=@xY#i zTbX8flBMO_@@!$PzcW8RWW@_b_=xru!yg;I#$ZwP;7grg&%8^t^hom!P8zT~0C zux`po{ltM?%mDL1A=6O4w8biTYro9f;tuJ~#R>RxxCtBMiMM0|r>*b|oIrHh4dOwl z$`kNfQoJsorQysB6$FIyG6H?KPbo~vT+{)U@rB?g87&@pqQMl565FJfE>A)@9TplS zVEN&mr|_eBDEG;;if8|+%8>4mXA7UzWuPZ`q}V?pyGa+8wX}9fU1Itjqo*zUdOD;V z8w6b{Gwg?X5-)7j@|?2Y7*E`_+J2k!9QsV$WS@0-j{7X*Z_H;23!Z)ZRQqkVf&1q{8kWn&qwU<0k^Xsc<7ljQTDk87eDy)MLiwOh5^{7 z>B^OBnl;vmi`pxgd^V-^Gu~zvzGKL&GO&#X=Q{2?JYGFe5 zemRF#v^|**y8KSM88ay_u>5eZ*KQTOq!k0al(f**%$}Flm6^nr?i5d9x(!IW^E^vA z)0f1d8i{riStUx#56NOrrC@?fq%H{;Smg;JJ|)ri0^?pwmn?ht?pqu?dD<%}u4@@H z%ja_WA}A!=Ro~yKW6jCP9P%`^#5vf)8{31u&53r^^^@Xqn@J}*I*(pvE@k+KE*|*G z=qzoOA)VDW)vxvXJ)J*6#x~&FXVR%{w*%gm2kvZzXBgfOEJ*QS@5% z7}GOJPxV1iG-(gp(7c~K+t~EIcBZ zMNi!=`*M-DADz&isxw*`WnTX)N9gLmaAU8l51JBf24>gw$}H+e@Y$Ne>-1RW%rzed zbup8wdQ(KXmvsspoR1$$tuA@r{ehvLkzIBm#+K`2LjHyw9>s|_3VMI3MG z-X2eicCiEZA%(mvc_P!$e%7<&Ic2|HmWu{EcyNpeYNfB@-4Tega`m7h5jn9JT7JR1VP;+sT_OtDE=Mm}PmluMpk zp2)%;BRWgOKUt&wP%a}!%md)Etrt=r%WhcUl5;grp5_Nl7-1f0TL6_$q{)(G`vFrv zX`ulU@^UHLs!pKnld?=(6XewgT(F?)PC#kTXrE4;I_X)XQ+hSedA)Cw6tB+;T&}4H z`0!e=-~H~7KE?R34tL^So6M*11cnb=Kel-{`7P3VrHJ0mdHlHEk9&7<>Do=dqjWpo z44>Wr06+jqL_t(%c~OZa{ttD^D!vFihW&dJ%@Fl6z9pwpr#6sIwFdno^EVONCN4G?y@-S9YM1&}xCH`7nkhSGG zXwO2Ij;C#a?H~%SXt_KPy}dS+EZyp&Ru|)~;5p_qGaT}i&)OJAwW&T6+S|649itHY zQFdGgi%jsL|LmDO-Gjd25LaSf1y3RJQUn&%H`BA4lujD%L7`mu{>-KyD8g*jp9AS*a$uhcCi^U z*Lq&Rsi)EXo=%=Vsclgwb%-dhjpCI~^x@K<;MMj_LZ|(Z-!Q{V{FO4A54s)mvK{|c z^&9(T^c8uQm`|R_iayJ60;Eg5SSaPJ7&UY)ecc@jpPg5g-$nHd8c_IY2-~k#ijBAnyJTAH86`!Tt*pI|D{8HC|5B<{Vy&RiR;i=^wSAaZ~OnHrk&ETPApXnMN{IfX) z0@_s|{TTBsi!$<_Jf23=W4Ido z=Nvm_0cH^JDRC78!7fgS8~d0*B1m-I#R->P8O`6s7_mj(2(Z9|L>qrKHg%r_%;mfA zq&%2+!;|ae15W$~R}r5u03=-xdFrOi8LIF*>(w6JLMQd?!Av&j+Fm9T)U2yIc4It& z(dlD39kc0KK9_Y-y;}56-6-4st#51;EIYgBHF)q&d1Vs3P;kS(bnf=5Lv>28>)5Z3 zGfNQpFpJA4e?#-im8+O=!GUsdkQ{fTp5kQnzx?H|i_dk6^0jN%7e|lAJAUo^V!z0} z`CmHe%!+*e#n*aA=^Y*5b4q*QkC-5Gy=o#x_wSEq|C}oOLW2nuPFp8^uG_ffe!s5n zd=?gWj-Vr-M0?hcTjxl+x(J>S1`^j<9)Ka2dFmV0`OQEYm~nNTc)%=gp_8&E-0eq+ zDI-ns6sIMg3aahknKD7Er{@UIG5e*?b9x#kTacGjbs6JX49~+q+E3yx%V-Z*7k#>2 zAi^f=6EUrR!Mr)^3NFd=r?ZRBF25u4f@`m9V8_4+KFmyVa`LewabOe!HQHnnGI+2o zUBKnR@<|;mb?)@B#UYh>61Gq^;K5bo314$R?S-uUx(H3sOFWb>b;$=^x*d7}(?|b% zZ98!2_w^KC{TuRxiERWO;UQzoGhuw^Z~IqyNzC#-Q9X+v{a$kJiI($YZ+Pk-cEaC0 z$Y-$0Lj>}`@6MgOi;EX8FL*$B_AGCX7*FV_>`RGPBYpbSWsR|7Nji3lCEsxS9^YQ;y1% zu+(LlXQ4a7Gi|%de(-DQu4}))4WC7v@Jw)}o-%8z=T?2T6elI-9h)2YjMtA3<7DWw zu{a?XmV8#qV8+Q5-SioD$iZ&*99&14{@w5YAT{+GEOi(;>G|BbvrBZhdV?jM zAAj^q&xHMlW}C0+9l>wt@Sc|dsz6o0n(1;!Rx)O1Z>zMOU+OSO;IJ5$HDXKX5r6ix z4BXl_>eLR_#sapn&qUMr8-He5!F;1WQw+u1E)*N^Y}*|Gpb#;v) z-J^`bTbRb}=^_~VjP*}?x)5WMX^f}q1<5tmo*9Su6Fd_u4q81&>86buo)jQro;1dD zNVmsRI#M1|&qJ&GSyhn z4eqvjk|+DJ>2LZP@a(~=o^c;or7Jn1IaePK?dN))_CE^)2eala7$R^+0reYY8@Z5wsAsipu^;}izM6DomYDs;FP~F4=pm-+En)*Y z&?6u8hCU-Ua|=i0kB2*{(vas=dnVJ)`pk9J%y?+FJV3mpp3ihU;|$rU6WTrq`u63G zheMF+2D}(YpLB-3p$rrtQWikI)8H6PDEcT50nUY(aZ|r+Y~$+I_bizlfw2k!<2n^M z*Wi!SU5}^fHasmy(%pb(8Z?gR9@n$#QuJtfTB9xL+1X_mOJyLw%6>Lt;8pu6)Om(g zaqZ(N+jcxzKDU<73eSv_?erNsWNcL1nxBM|PCcGOJq6#?XGyo`Git;k&$*cQQSOc1 z$8>4pBzeZnTHj~$<)O2YUSFp&NUTtnRi^k~{Ot~gZKppYaWq$chcM)!(PViIONH2@ zLSws?^g;~)avag#U7l)Ef&H9*TnjMk=Y~@Lb=h&qM_uk^v4}Sl^YkA4x{oHVv;6v- z`+P`lBdE(&Mu^wA+l$R9o@7nBEFGPyaL>uPzOZm529w@6ry2*14 z*4ATaPu`T%WmWAcl9Ozm5&QM*PG0`IY-2+@H^r_6H`{XCcZ9CyFTB5u&MvR#Nck;9 z^M{!T9!l|^?9V^{YVrR2@5o$quGCT1jK$r%_ZPqT#rt}#(K+W~`5$?i?Y(vD&bADA z(czFfoge-Bmy7Efcz^ZvrNujMz2QT*zR_Vb$2Gfk{`5(8Cbw1xHEKEp=-1!@e8>ln zFzBtR*cRU*(>Sb+&3>NE$Mn+FfvCsjQgx=ZbA2czz`E(H$~5#xM|IQ=lv55#j!7s~uvdeRQLUn_gdZtSzh z=Ii24^?}Fg#`H@kFYy=gCXTZ_H8j#_N%5}i4|KZzA1{3EHkeocoYsRI{6X8yK2io> zywZj?+S^vd1^*n_C%@nx=}0}m0ZXsxFuUE#$IK!3N$8F|ZH%?8waY?@F%P2X`xGAF zXDoOtjEGe&^&4%I?ym2ZqsYS`)%NEGDcha6G9G-XhuPlnLWfU*V_wkJ$Mw8Sg#KKU z_-=VZ7hSLyTPJuBVEL5EeG=+c=@u(nJFSaU${PKjhqkQl$Z9o~Z-LZX^Gb@OyqM#P;RUXBl|4fZQ==^o=kIe z=U_8>;+WQ6TjNP3(Mj0-B2cGo3y&Ydeyuz|6i@iHX(#j?^V#}5e*~XVxhYPt#crL9 zNKKx;;hXzyN*MPxu^+QPEQ7st_2y#Fn`$sLLx{~*B`Wk&>Y%bj=$=l5eX0{!8T9^~ zeq0NDr+rFnRiP1%J)I#>>(Ti*nU49fvXpfB-aIxp=E&@(=z zoHpfU-nRYr6>`ZJf3@vH3*+|~UD^$vuHV%`Ds+(9w>Fhnru^=^Z!P}%*DpMa%a#Ua zig>!t@;eT+Vt+3uwo|qbspEJ@gI+psuacm}OyxsupI|nbrN(sHKht3P(&ejqjoB~# z&daMe@0!*5GbdsOWdo*kZttqo&#Wr_ptLQdxNbFB7dEteE7llnQ@SnQ7~SN%Do*C~ z9MWCIGvTYs!%pygRi9OSIh`0xUF!WbsJ>g+yp8&0w8euQxNU0TV>V(i$Sae0AVr-` z`FN~X0zH0m&)XBB#SATj0S448+2?(;CsdYw&-{eXKv)lo&g(>BW+9IpI^g%S-?+^I zRLn?g*0s)TB9-i+x`XAx)FG6cVc9^oHl;4yXB!0wiDR32<}&Qez>8UC$4x_|+E%c@ zk37uoK3BcKU_E0EKFM>q@&mpJgS_poGS4#R6MAq){lbIa`w#Wj0(~FQep&{S%swY( zdph!WTJ`#^&NR8H8FK0l@IL?MnrCj$Y8mbMGsitSa89pr^@ck+AM3?-eP4jyv^n~^j zUEQE_KW-B=oTAAR!2QZo z&jcAGy2d@0rG53y<;CZpeeRRoiO=ZJ?OOctlMC*oo;!EWbbTljz;bBg*c+VEtLE)#0|G_Y$2KLRZ!@(&X;t=NqNt9XFV zTPS#l0Pj|+b8h?9ti#L4fW&!XE$NT#ekm{DWtv$G^x?!3C3OpNrZjqLGQf3kcJeIVje)$c(P_xt-VW^H~5chS(QJxT^)g_i)cG+84 zlwT7mf5Ns=7kN&jQ?;iH9nDk(9fLkI0y;cP9WZ^ZOmyZx{P4Y+4?U_b^=|xNTLv>v za_hzkIj>#6wfKMj^Y@Dhp{l_vmxDO zdHOsJmsphJRk}n6JmgxBE>yen-swWzBIydA#1Q{VoUGyrQSyxQ41U08^<0A|lt>m! z^jzxo%^lNTQ(ntzyfGVvPi!d5)aB{hA?(xI7TGdS$fJR(3NaIT3`T=51Dg=kGnA^J zJP2Yo*dGlWB^&!rIj}Z-uuEG8?s;|+9>4NIgs~>qUzqi73b-Uf?NjsS`bpu}A1h88{8bH4Fghj$}O^}7Ep&Gvl zSO=U;5{0X){JEc|h84O)SjSUz z^lzCbgT$x+fT1hj9ZzJ6&Q8lS=~9R*PvMagW@8tg64(n1I=b7yQw2S29|n?kVI%p{ zoyY-CWJNZDc*$qPz&d&kd17~cOc(tJJkw_`I4ZFj3)pFOoUG?FDJ!G{w{$o2S&wJ6A92E`D`#UdKjt%GE$NxD2>@TD-6#EB@{k`JIdUEM;ZN{M zEHffj!oP*KaJi;uh%i(D)eMYyR)3gPMcTOyPrbg_TUR97WKaEi!3M2e{U9WuM;1VxoF6F^F z6atEP=OI4uL)48W{)hwd=3g&PlvlT14g*Gg6ZJfFh^(kHwCs+$h<|R)l^Z<$L9Q{L z#7?bqB`b6tn?1S_o9-Mn`XDQHoMT=2EfYEvd4eZ2sV|82$muegdJ5?FP!N5tF_x-cQh`qH&g>HOY zpI{?hr$mOS6GS?pS6dv_Ln`O3SE3{e?yo2@GY>43(P!C zuKFY5WSnO&h6+!Xf!0_^UErzsVK2DAPHh`H)Mbfh(Qz2Jv-U$reaN#8&#V({+q7SZ zDtzfLBK8Y(DK8Uxx=wIu3Pp#y*#6Lkp1$xKdBXPia=m_T$_uGp-H54+tfnh@sjq_v zxnnbq3Kl~DHIyA|To(!1qI|EEF zXQqOZyjS$_iCItH)qeLr%c$8e`ckvFcMPZZAeSs2UehW6rq3Wb9-Km#v`71cJ#g0b zUA^1;$zyF*P@8r4_N~S4m(Lb^R9<;C7_+Cy$6-#HkSW>+-H}MhYaMloKRehOJ`=58 zKUesyNMWySBoSAlUgaUdorij@k)}&;>oBV?v|Jgz88pHZJMfJR(8Oo_W=5A7WV_a7 z*^WHNJ;S?qaa!+AW)}9LXWgGh%*uY|D*Px9QATA?@5zCuA z%_r#=p72OR17F3n)uj$%Djv{cgHj;Ttjg5ztPV78Pz4wM_yyICS1g-!Tb^JQ6NUZ8 zcoun}JLHKigJ<}gJXKbU6uKl&?4$o-qoPY2#2s#z51!^?J%eNFvK5~ZGv;rdJ6*kv;^%KV*Vong{p#y)7MCwy@nJfg63eXAPd!maZrr)I_*VNE zis$#uE%)Z_px@i!MILU0)+=#=7b;PKmK zyT+XEWCq2uc}lOElnv>{pxUn+?53|F&!_WQ@T)!(dIt+yL%N0&S3yXbA|I48ZqXxo z;!I#Yy5%}$4Hy_fcgV9x7v4_9Sf3}ijVr*AXI>*sh~AVHafNR_M!L#Cx2YqLmpV*1()rF z;kzO)JUX6SE%VG31UMsg>3Bw+8v7rkj-o$L*{8lDA4_5>w_X~{09n7eAN60%AU zelD9QZ+MW1y0B0aW7tps$b+8Pje*(v_Urr&o^1d>Zgb6VQA6g}UenTUeZJE&?mHUv zvW)qz-h+Gh!4tp!kv0>&)}KPQO|dH{DKis{o!G}q-NjyMnh0iD8O*-a3Ei{_#9T{< zI+|EPnoJ%B!f()?VFi500cEy}tr2qZ@R23eoJP+QZ0b2^VlPs)pMH$>t<$#oz!)0^ zV)%gHZOo7Q4Bhl^rO%`<0>Of%>d6zDB>P)%CRbwS-M5VZ3}LF_Qy1eQzH5?1L7X1M4EEcjxO3_v?XawIM= z6fsXrl(_NDEno>xyvoy090-@h>v$&JF&LI7Sce9$bPG=`wkb~>9DybpT!@=_QYyyi zRz1@`@l9Uzx1TEBvYzB4rM&P&KX6z1%n}yAAS$@4e14vA{cG!mgt4~;KhuFu z8>Gxr-!uR@GjmVx<*S@{(j`nSx z4$G`CdkcTc3A^9dQmk8=S?Bb}6YBV%RtJJ*XY1OZeUD#VxvoyfGd0F>q9-;>pW^Ga z;)L>D>H@;Y_{53sr!19bi6QQ1z3Qmqe!-<2ByQk!FysTq$N9x4@t|YaMBG-MBQc*m zsms*Fg%0}e)$;?o)Y%~qoupD$2J#H;$MtI}qmT9U-}2};->sf4PhcpR_Ny@QLswFZ ziw!3A1g3xB(V3zhKYExww>i6Ea+F!EdiCmbJI;+Z(qRw{)WO`Ln0Jl4KqJ*bJL+@C*+Ok%2U3TkMA& zv31`sC8no*COrF$_-b%lpN;awXQgdv<*BiNJX1VZ#7XEfqo?Rj@uaLsjiO6aR@UO# zr)wLO*hH6Up8dL}+F)It1H0G0R^=H>gDD$4uc%BIbUc$T{Hr{gU*k70VxB=-$}e~5f5aXuxtImrQwGKKF@+L|7!VB( zz&fT^BE`U*x|l&U@A&TOIP`i)TN7B_wP)W!O}l9y@v&oiSiWEM8ANyO7kOQ;t`%d; zdJfCzoX=_;6`y5XBM;{m_@gDs%m#Chfx90Nmp*#h);vpn%{}b$Q1uuy*ChI8p0O1S zdvQ3{QynA{G%tbJKAG)PX<}K*<`V0$nZC2_@JTCzvin?YX zoh9}BAE#l=eDb3oT6PdKM%-umJQSlq3Pp7godhmSOK@d#A|Fq!3=>^C=dLIP#pn#6 zEg{#Y3w_ZQjQciZ(nStn%FD;yjRFh4!F0$IVbFyH4~*FH1Xk!y@HD3WNUKSn1W&7H z^6cqiBNZDpJkfE|ev*AkPk8cFD0S(0M&M!F3`E&eAupM5F1l3B_8fjC&Sd{_HTzxd*-#nr3dn)e4EyyuQBv%HrsUa9$w z{1g3yEogk-(4iRkdG6q$F%$6az$-do@`)PTgL+yTOUUAB{#cxt#xPEZUHc^J8#me! zVkO2RPTT>a7HeUmMeI?`zF&&XpzG{Io~8Xj|L;rOC0#f2x^I!xD8YA07kDbjrqg1oPgzioohqTE3YidL>*%r z=8cJO?80f!yc<(mOyr8&`1p|a@KOid)@lbPvVI#Hk9F4%P65Z<8KO_ZB%6H{2fa_vkje- zH(;Tk{XNQ4xv*^*qQ^6BA0XMJG*I0JOA`m$_}`H?mY9a{U@w)nHeA9&L|#jfcORGwy!02B(XG3T1N)OE%Qa%WwH48V~! z{>bk9CgB7MgQ)pB|8SoKL8i+0?9$QKhEEsR^iH=!X5 zSJ31z3F0wR;%=2E_=$@^dr+cD37g|d_O0j{`GZNN+pukU&eB!JT(jTO49e5?vpc;f zJ9Bn6FuxhPKl@C!k^%Ls(ea)Z+-aY^Qk+Og${B@T#dEPs9rIS+sd9#HQ{@cUFcy5T z#4&Y1@+2oqWq8#IvqtE$PNIWBUOJ}G;5YC1ym;}lW?Y_osWUT1bbuKkb5iW5fBnqM zq2GMt^~L+|zw3i*sFUunym#M?wRx{2-`{ecgS<}0cBV72zN9>q_~POZYP{?-lf>4gt?)cfC+254G^&*&!h<-V!hS7g`vi@F4H_sSA-_% zisw{)9Oa=O_nl1eWNBY1qxv0#R%|F3JR8&wFWTRhCo(47jrzd%9ZWV7zcF3tbiH`7 zdvW{TL!Z>j>xtGav+$ovbOxD`<->rQvdio%d&}6ua7-QCc!g2yOB>@!XXuHRDSP0j z_@L9pZ}O(iTK@2Sp(Teev=sWe^g4O+ln1OaYtz+(rS-d_$Y3JV|4! z+^^DQWt%in9^k)IJfZD+rMMt?LN`Fx*t8#l3Ia0Ys`R9bt#zV{?6fU3R@-9rgZ1G* z&y_2BsG>t(h*1Wt_qG4+xK2ZUU9Ti#ApFJ~XZ6aXGiFVGI)ij(=r~`#a#aJ}SUqw_ zd*;}u&TEHwpXgY6{P>Y*K3%-^)*Fk18mN-)+`gm1Yj+B5)D_WbWrpdYWWx^d;v4~b zf#mtkZ+^YFr@e&?nCa9_*?#JN$~On!2^f5Lg6K-n-WX2?AFp|~Eglpy_@Z1fh>J2Dzu9`jKrXk>c;M3r()=8nZ&FVNNbre= zGV!}bo})RY%N#C!6lO>{r-bFS@vy$dh~Gn==*)~N^(}QF^$NJI^Hj&N7nORCRW=OZ z&}l49+;-M^SUgZon$*S2I8)EUi$2p7{?z@XH3#1bSn{3v9`cl_YpMfY9FR{KDpWuG zgjBFG2RN9aCJt?f3H%Bpyj^+p9hh+F4r#9go9Bs0J3x0*Piwq0JY~P((^a^&gM;n2 z-;cv{EKb_^8|s;`*;v@XXGwSC7}~&R>+qb_bAsnuWoe>}A`>Ti!gtE{t&NCN22UJ{ zKFw7aP&|w*E}JWeh102!+vD*h-uX>CW>UsmtYW zFD4s_%?O3AEgQyd>N3q!(rH>wn)dY+VWJHDY1~(YVHgZtl4XUfi{L;W@sa6UQsZh&AHtzkc_JvSQG zI~|y_Z{L0mzVBahEIXDK#rQ(hAT?eEOvdybXyHWWCY zO=3uhS^+TE*BU7+5^Now1jtw)Zk{JvZ>EdwG{;l%IM(l3N0&L<&gxls4ogDvoWiv( zlprC(yG`q~>zl|MJjeaL4$oO#Cj6rCoAkGN3OYVmW19@yA(ccs_w!;Z^ay#ER}qkX zte?wj4`Ks43_hXxP%D;Tuy-%zGWOz|u3&wSK(#9qWBr3Mo`Dte?ANmG(|XMi2WoP_ z9nB{`%s83!r-)b<<>i!SEgv)v^%l6`)vYnfP~TJSGFevgobVZC9bcJt!z+KTrVHWm zGCFHNf~e?gakmxB?aNyfvRtJifp_hqVDN`U1o&Wv%*Zl zaU|hJa3)Q#fkPMi1e_<+i}F2~pBP0jB_43oCI1Ld^xz+jWNXhJ-BF(CUrq=dp*zMi zW$JiF=Q?%WHlA9~-d6thl`D`H_8Zf)*xoWu>FHwG=V@Iy&2Wc&rl@c%jQMPeClz1% zj3pVZ-ND(!XKl=n$7b*(*5NrC^C+PWN(m!Q=6tr2=PUUv${MnuPiv#(OBv;L0i`-d zT$fGCD1|&5g~Uxf`(;o@iBojFrOqm+0&;4zNNhR5lff$=_`dhvJ6;ZXVE+Nl2%YjQ z4E)=~HM7FJ?&zCuF6s1EW|HEBXJEtpE$%5!{ z_7k-!V__^#0x$MIGT?|93v9zCc#@;zX;F>Ti$CFx@kGYjwhUr(o@c}d=OOS)p}M@= zWmzeD~g6 zmvL5eoY%?hJhyGfzJ;>UY1}pFz5bv8Z2X+v{%L+yj@O|hxR2ps3B42b-g*&h6;z0 zgqxT9J?S&rUfkngs4|!?_XH%CNF7h8Mp;Qbu7TI`0G{q8JYdOFu^@O0OI+fl`LTj}3Wm&7B_&@UCY^sS>F z>tZ)?&2y%o+w!CYd0**sWZC7_DIAyye`YGroaAJ7y%I?GI2?+P_u08UCKg20A zXRq2ArE|rp-AGOqTJ$U+;R`vEo_P> zwE8>?`2fJcH=q^EnLBvmwe80kPvfeen=mL4m)I0L4egh*LVp-1=BfMk2YSjTNwqL^q-4RdzLFi{pRsly;T?2>g@MZKfCS|_9f;!L%LuH@ z3qA=R($1AvURM}-^gqL~M^`X#ZFKVtW5X}$P=R59l{}#(gOM_C2Ei;(I~R_@6PUv=KI$<%t}vo+aRWdP*PrWne$@kharj87GzQx;&Tc zMb_K5FRi2a=yiDL#7_rIeBTZsZ^quzU+|oNVkG#SOu*rjO zUP1EaTdyy^{_3Ka9@3G{3bA1w2i9l?_^YqRB9?PtnmnemrKH+Wh|rziA@a z%lb_3eYke>js_9hGo+cYY>?Vmn2Qr^h3_3h`b~87VxhpuN9w`k!(EE8^w~5|@FI4z zUL`g?SQZWQ9YJgp04^_y#E zV|h(R`lhgaS6<`EPy@MjqtI zgucu`^U0KO@BPlW;2p;$18~|b_9l~ucZ>QYRKbCnhx5j7^+232VSt$3fd+oa*zMQV z@~1ohCe)`}c+l>ozrZa~L`W;G*VnR4b8&*bAUEI{x^z5wNQ543do~rDEzfEbbTOO8 zexp2>V}4zp+0RIxZM(hXvr+&<){rU8P<&c!kB;CPCQI>Ct#Z%b&>+D->szkDt2V+1 z6ZKRpFaD0}&h}g5DH*H3)oydfhjg(#tu8~`59;I4B_@ z=ko~A(>#g4W&05;>^o&kgvPatBRm-QgLMsfr4Q$aaBvnYydLWnN>6oaJHOes0q-0f z(@)_?ZuyXT8EOm4tOn;Zeo0%TDnL{Iqq{!K>-GGI)JAsIF*-vbN>bT zWy35~cDQI#A%|0CX#Oc*J{e6#^YlutTb@=#`B3)aa&?O;H>REXTPv~I-!Iya!y1*KqsplL|3U}HM+m7)}8zCR?q>H^0 zmb&o0y*>-Q=XfI5l+S=|>a!kC>H0ktcoQeD>a$V%$$u^%GjW2?=mZdhb3RkJI%Ze; zY{;|tm^g0jmvO>3en0<%55N7|S{XS)jvG zqn9uDYH+0)9qn~_^r;>bIP5AQM*)xkPm#_IS8}w^Cs!5N0@4ow%mQfyC{N>XN zUJCt8ooPDDZ@%${mP5a>IH@I%=Wh@w` zJkxO!^$oa=xe_NtHgqzEpgW9{jK49S$ki*qC2lkRS{QtZO;YF*^|9#+=3Y_4^o=eO z$9X$Fu|??=kXLwoq#Y4&yL3FGeD%vi;R#+47nLH9zFYfcI|_XX-q%xNaB!7*3NLvg zr}|ZvJLNGhK7*%ewKh;Gw?9J$Pv?jpZ4H_xU1mt=Ao|2k-QTW6Y<;hHOIj`wrBnFm z(W8hf$tA^oaMcGNyu09&iCNgsKKo+9fcMVbJ30$M2Wd%0mLBse4ffsYxs~mZIOxf8 zXkKRqKI9LnydTm-t`Bu`GpE0kXDksTeEJEmQ_rg&leJt<3Oe>f_C4&yGmIG|>PpHE zcZzNGgIL7ZoPvwbumwx9d2I_zA=&y77$r_bgYp6%pHZKQ3GrpRlEbl}zxHS4iB3@F zyDOhlak83cqf7D>-CDLY{sufN-I3T#Se8-j-HT1@GSG8Fp3t>FRqnAXJgfb<9{4N< zTj4K!Hic^+4RBk3i%qo=bb#4r;)oB4$+UyZiR-WeGhM~soV?1DbTh_Ue&Y$fO#8tT+a1!N_V7V%oj7$| zvhDIrF7+7$QDkLs>UxcL-s(Q(O=vz*nzKfDI{^b$PNeSaS8RZM16>$2^U6Q^HACGf&Fz4vbP*3|*qo zWSnfb&!9_!|CrCv7oG$N?~ZmwzA4+bN-0al-wN=st?Y}{pj&Muysn%XXq)D#gEzHbl$X-e zseYA&+_!Gs_F(s*UKcVp*lp=Ed-TsAf22KucRka?-oQ(jFMBrW{JC?BbLYwH-q|PJh1k?YE1!w2bk{gNk+ap|@VOF1)P?B138tfTM;%dh8ns-*OM z#vl)$B~RNCLQ6cmw$3qX_!e-{#764cP*f4~#xJm4-G;7|x67p6D9&O=pKG zf7f~nI@FEWPxwyOWtk_usgS$AKDbdXT3w=kOIYh~Y*hR`$}{WLI5>*K>rSX|aZuYa zDBtKpe=X#&r0OR`|B)+RIYweh@@=g?yQ2g2*oRA*6Yq^Ye_QS3@_L}k;I;DO?pIKkQ86b9XJ+6y;$dVPD+J}>7(CpKVm``2$ zu&A%7R944H(v5nd<2fBC$uo2j6YQf;=!vlSO0Ol7zwiV1ZFk)n+Rrcvsw_@*z{?Gm zhg68bCl_P9GP+sBkg`UEP(iG#)%3C}G~?32#^OiKuUI zNulIcc@}IjhHjg(Ft4JE{wagyD6*K=fNtm+x%s;}PxS7%wsbLKOSgsnQ1<&Vc-r%MsO8(}$kEbhD;B7LN_5`z3 zl4V3RF3j}uWOUO+<#$K3JS>ZZ4)VA|GC>eH%a~avNdoW2ja&NM(Ei?w?nraE4F}mU z06ueuS?F3FPEh^(yUnt%hnh{IQ%S?l3=@N1UG`FVnh=pMW$QNe{4KyP;b&Tcm6!qE zgH6yS7kz};*o4+3&(aXWP-$JBG)KEf;x^;lF+ahRw#ITO*4 zhvai@%dmWc(bWs3?Jn~4VdHHm?fFUVv8U5W8{GGJLukXFJYZtR^{uzwR9TIXVsAZl z!hY?;pDVk-h}B>G;scjk-nY#__ch_Be^M;2iE()GknQca-*mb6tB*7TbWwYRKYT9^ zxf{lH(wO`%<$(IMwGS~yvhUF?lLa5y;=rB4wQL+kHHKl$5ZQbfrw{4JyBr55K4B0;4o_X?>pX z8Lw-gHpP?J9@=j!JmDJsU8YS!SNN^A(X_m-PY95bTKmCkv<+Q{r}K>4Xvh=R>)K&; zjE(a|#clC-Q=Tlh^$hzl1J52>-d%e{`}#?g75qcnHkFW#!|5(xzrDDA>%Ira?Avc2 zp2H#IdT2lJ*$Q+>%cpZ7O}~a&WGEP?MvN6w*m~VN`>4^#0M#2g!x24ogMgF1Btdc9z(686S11S+3-Rn<5 z{V#*7&1>A6v;SiX=H)?>gZgkc4^jt4hsqT0PQiAH?wlSw#dD|V{usLaqww4gpJ6Lk z9)t3f6$(6tY0kcLFz8It^{mRvcl8+BJ<89cDVi>!$2jgY(84=e;cY)TvX8 zFTeb1arNrAYV=+#zSW*TI?8mgp`SSG^4K&Ve3I9gzc!`Y;;~2Ri3S8Q*yTW;sN?(1 zTZ=L6Pjb!0!W<0TsW@2$o1;4iTSa$Ho}Ho#&-jEr;FD>N=cX`dx46U`PwV$+x$cp} zI?-I61@{M1h;94+URwuFXtwrOOB6HamjHtsoWlO=U;oO7)GJF8IsEIX%GoK=0@N%U>=m{_v+y7XS0#|J4t_5_iCA16-QAy7iR`I?(rK!V=04j86MNk#`T{*K6uPPJ$V{So_wnEAZP-u zk4Io3>nKcs3_D{DWbR}&b`U9l6E;eBhG!pdhOT5;(j*lT+N}KsdcY<52B=RtVIsQ3 zvya=yo3-t_Je6;2x-|YoxPh*z7M!EX002M$Nkln zUq@4%p}RKE34YKw$4R)#*g&Mz!?*(=umg$<&xU}PjV775Dbe!qua#q~q=|_**lPK` zyYwB{uggQQYu9e*AhyT;{PnM&>EX^EznbW*_WVD1^i)foZ!9ic_}qi%cn|M7lCXr3 zeB;JRy_Vuu`AZ1(;+^G>=T05-%oJ34=z!_@ro(18B%d?8=z22D0{aS%P)AbGnT2gx9o8js3=W1~Px=Z4?=tFaLBr z4b0pAPM9G}d}m~mvok7xD1Q@Rm1i&=)n&}~^LqBk_{4bHEFQ)^(ZkxiY9oga%a3Xg zJS$Te_--XJXnm@EyTll$(jU}p?Niks!<6#2F_tS(_iIMDn?;Uxlo{Tq&$K~C2pw*} zoV9TczoDHvJVSdTC2S0@r8}g#zR$MCGv!(0SETOX({#shqq>bKTZT`Uhp77!Z;EHY z>wuSv*OjoolbJW~Q<*AIqO%l8){FdVbaG!x`{V~16r zPddx_v<*6yuH*q{>pVlQnC0k#E@eee^F)rOa~Sf%lP5gg^f@viGsXcDk&v->dMH%&nel^TekZxunG7d!^4Nc`p0R z{=)XcS+bw*r_WaM9E+3UGnRU!4N%8COU#e*M4pU=DW6T1hr)9#PSS?RB9W?0+&4_$ zSlo7RY(Fb+6Jt>?jL=0F(L=O5_Z}`z>WSg0e5}DXhwHHHo0BB>9PG!;R%lM;rStD4%raNT zy?reN^e5F=C_bBw6M#*M_)?7{`lIEgjd}1Io>|V2qvc69WaWc|!1Ehe<*DBpPlfCf zjQp*h5!b{f@;3H{AG9TJ;=q-B=%&B+89zIoNR{$XpTyvWdrLfvF7R|JbeWAzJphn2e}+LbNBAu z#n*aB^+1PJz0_eC3K~hk2;Q ztV}~T$#>rZvN~m--naSqiB54Xr`MAqebV|YZJV%^*$0&g2Y&3^?Y%=-uFCR)FlY&0 z^r!lMV3BA!!p?Cnf6=B6WW8a0xro9XZ=gR^=+Dhxos9sTTcN?xa9@DWc%pnF4;)> z_xfq@9>^4andXU@&|T))+P+WMKAW>WFvn(7H;NBnBZInjl4^_F+PC}Q@l)aOuHM)VxThI7ThG!4 zv_69`I=&Q6Cd`4%r?hH=rM1)<_w@k#ndENUmSLROU&YtZatw(!-(zL8XFug{?Vh-= z?z2AK9#83+WfXY>mZwmI*Yyde><6A@m5!99u`=4@sr*ZN3Ku`rHWZ>t(Dm6;`rZ1> zFnng)a@CvRrPC5d50DfqjXc+WKcU$LGz=|f{38a`Pw>)YS)O|q-T;HJl9dd+?mz() z4#aBRAeJm>`$xaPP4Ph^VD4Dp=(j*f1?aE5uJlM*V}U{z1eNFx(^B5V1O z7YeE-a(H; zGLi5BK>TApmv}l`54|3Odj!;{)CE`7T=fBJ+z$7@AqVr%??=Cy0z`V~VT z=+ssAN+AGydh8BaO_4|O1zAL;E4>9xX_%U8@R=`B0I_xeGo$S3*C!6l#~jS zUtkxd+xJ_ZphFuv_%q8k25Yw?Ll3-4SHDvx?&AYGYUy8H{>>+3<$)J7wVc>&YswIu zy3R~4%bl6MeEs^(#Uah)ym|iJ#kV^A>f*)A<-Oboq_4d(sy7e@sjq2I z|AUuLwcUzAM_ACd#fM3u+7_#ds;<*#yta;xJU-3(-I?@&v9<2v7A2jvJmzo+8~Ubd6@nxs@UbSXYdp61x`OkMn{!GT@VchI4r z^>j^{kr$e}#`e(T;aSoRw&Vz9k*3nMZByEi2^)s(m4Bi>hF$CL;7Kg_E>%s>-@sd* zecOvx~UZWXbqjD^7x}>GkY~z)ecp+)6zY z>~dDh1NZ6-FOD-}3G^hQZkU4tK{vW*KghPUQ`;>N_zrl-P_P+hWA@7d3>tn&Di9JN_41?=@1_`xMI3f zoS9X6O;5|^8GY3Gmi<=w%yqRoS-W&nX2uD&B2C7L;2mAnQ{*l21RiCM_``n*<9_-w zc$U~y-Ylc!X?eP=3*IYB@|)?9xA3Gsf+i=qW(N!yndL!BNR_G!=25E^dWvuI ztaYyH@+@b_Wj!R1koxlI2LD<;v4OAoq13{#L#-Pn5MD~3Q9qj}d@2mt!po7&flt+;t?2|2)rrTQ`i`NnJ#nG8EPII8W=+#C)}%kV4P!*%;5%4_`X3G^@5Rwheny zx}wkIUzs0U>o;^93&r-(nrcJWt{WwP@RT10{vP9*0}F{_o8hHijM2xG6WwP(m&V_m z%xyheT?V!v=UM9c0Z({@?W1k6EV2!4p|{?sERc}ZN#EFzy7c%-tw<4^EkHc1<2}1u zNsy$^#0)ZH4L<}{43Us&Nze3|^5moscFMY&{F$)XevelcUTXbRum8Jo`@X=#7z>|a zGcldyIrN#RG-XM)rCvuCVo_<8&&U%o%`eK$a%>KHlGAjH&lsCTJnP^tE$b%uh*{Gu za`fm9;w1PF>xB|0NY(06<3viz&NVi(J(K*DTQS!+OUcQWwvKv1;yNYWxEc(22?Pog z%9AiO&aMM7&lI4f^|e8=;#U#3@^mnaD**^Fk-&0RsL}TpW3a{#-N&v_9d4{p4cw$4Swt6DB z{tG2+5rKpC!wBfO6`tUe(r4z0U5C1){lsVJvmVb;`-Pr8pP6gwv2#A_@howIzwp~m z`OIF!hD~hlNSw$M5eIOD-!jiAXG9Tk)5YJY&m?b_wQ3{b*-pesi523D59SQM9gGSD zT`5XDVa5hYlUvAJ>jedNcI<&wo>W}=M_vw1dZfdXKEHTPPi>DcP8~bqm&MZ=&DaHZ zn0TUk?dF}u*Lwf%OW{-Q=JF5m=dPiHT<6c9*DFtMd+(17j+1B`X5&P4)^eOg3}x)Kae^!ne=cd3X*o8R zVX2GT4`h};NjIwgVcd3lisNQHT}Gi>8esG6JQrm}vcgKYQyyyMTFxY^UtvSJ(1(9n zetADTujj)rX@jaK{u0^cb_buic)C-7jWe09;>-S28LBYRI;_*nIWuEtBk$Fz<5x~# zX8AJj+5Pt0>$2+$b$oSNv;I9+$MTs}zNeXAUVC=(_)*tA)G2I%V5u`Rzu1UQGI&|$ z(oSRF*ot>{^2(B|3#$Eu5VkGlq462ffUlW7I-(9aop{QhmuTv{P2Xxj&U-+4(DwYr za}Ubl<#MQu#Lp5>l`mq3I&~>dP*MpQrs6~uwqOIgg(s0?p1pEk%8FnWlO6>l#ZUev|ftC-&275Q@o|{cJn& zq->&Z+CTl```8cRiXCd%25(GW@wI0LbtCfHK7y0r)zul%2BC|2j`|z>!E?+nQ7?$W z5?yGbPxZ@;zgs<9e^aMKor?q+3-AEI7&(q=X7s2|T4q`BFv0(k zmLDI~smPotPZ=h!>(tVA4sqtLvG*HiPm0#F#jU#!v_Dw0y-oQAx9W*5jnB}Ry}IoC z&3;eItAv9e!XYQ+l>U-!qKpwIS$^d=5DHT8EIz9|iKa-%jjc$IlQn$?&)^?z=q5hn zm6Q02*aV-T+q)+Q>(J&OHbh@v>z?@%Bf~h+wPRj7j>SnWXEjbb8`X9a8|af;fe8ncukn6At5N;C6iA zfx!YsoJC&qmPR(Tp(#fw$r8<$XDUusQz&$TZl{ak4NtBqlyP6*qdbcp$cL3nT9>Eu z4R}H#ZJfc#HO}eTZw1d?>b!LJ>-5~J{dznRZcY1PnJkb$6weUvhxb_YxHXD_w+|KFQppo1j@jmO zve3EX{hU{C+}6W2&1PuOimf}ZWZV)x7@zoKra}*vWK&Ll<$x+yvE=)%Gge!^EP1?s z`<~_Dp&PNlhm_x=Jmu42S*dX%+|=KM^amN;CYx@=b&u{!p4L)`{W_uL>DPNT!PN33 zpZ$^oS&mW{nKwO`PNG@{t*0POJ=EtZLcKOgTvet>qxKUopwxwUbCf66LJ#qz%{=4v~8faK>A0|%F-zQ)nU-z8J_66 z+?ljKDhAZ6Q)$jd^ROA7VwPn9TksoNnKrlWJWuG-N)rS8=CCU4t>$IN67RQssJ(W# zZr$>LbSvcti_rdktv$D&eEOMBT>f{xR)|jO6%BMRYd79bFP=Wq zUi_1Oc!fAoMaU7 zV3ei2EUR9Xz(vDD@o==lEtokKex202nBB*)Z)y%)<*G zFb;jr>KHu;+1)H}ALEINPxuc@w6h;QV zymo*?C>Z>n)T;(gXdwHVI^1N_2aZ-yRZVTTE40?$>hey6S z_#{jQSZdD{I8qhB2&|K5t2`mUe!T!7cP8WS4s@!Oy9S(@eNCq|0=vsFMO%x zzAqPV>!fA+AISISo9Fd;-EqUKh`#ye(&FyDdyCIL`$7ZWJByD${zx;y`?Z(%b?x_i zxcL0@uW;((qyO{21V2$9D7QTMjZJRfy}!6}{f=fZo_cmRXD)!Zwn@3;TZh(YUm!~^ z+dSZ`O4Mn))cMa&Y|;g9NNZi#9IhiIoKQtum+qWAKNL^+q`W(&3wjPqQZ3u!zo{MO zY%~V@d*wOh7wpCZAr7Bnmhkw|{hGbi{&o#kSXnxs^m;M|x;d*jpLuO4vBco%thQKj z;N4B_yX7@S%sd0*JBtg0)MI*8606NtB?i+6wEBd41Ul%RahtevakLfK4;d%O#lr@c zH^)iTnw&#F_2*Jg^lNq9iY}}0s3++^ii2nTU%p^#OQgh|ia&5jb-+u7uZO0Z!4C%o znb?2vLIYiv7P6#(B_FTJp*%T?8B7>0aXnj}`7|EQ?GurC>=`0zM4~-={>9WRWk5}G`O6)`iDRMNr%52a)EdPN#kr=5rak7SK;-8;>v!^?mko9O=ltfnR?`R8w+_azgyU=#!1q|25D2i^L~EY zMhZ^v?bF3v{Efkqw&|4^8s*u*67G7TENN_I<9FI`$WzJ~R`WM>QQ^5wKKbO+#h?HDsosJ6OU=F>vuw_wKhWV5 ziTY@l9(+Aq{J;P8-;1xmy14k&FW%SciZ>Q#G&`F%&%AuY|JT3%mCGmtUS3mlPlMls z2hZtqVDaGx?|U!ro!fVNe1it@r9FaL(s*01O?#p~&fWWuTweC6v+A=2RC&HsEVvyg zNU0y~BoZH1US_G%Hc5Nx8xP$pJmJ5u=s)E%=(Icun9(?KJ^thLd$5m$tTyQBBG^>_ zZeADKq=?&UOYunB^KCO0>dOO-)&0i8voOS0!H@5C`b<&&3c7Kp>WtKb?~I-NHVoeQ zbOV2{!*h&o?GFrirao)+nW(1*wnrXLOFylL)hvg-e(SE={Ie%n%FGh+=_FL|-DOa^ zQ^|u_J@jMNl2f4X-h1pr?vRV6x5&>a%*XU#Yn^oH;C`JreasKfIKYZnBz1l3t;I?D zGvgz_+c?R4`E7>g3GeZ-Nz%=_HF4)+Q$cOg&vllZ>8Kq16v=(^PQ(LWBLKmSP4hTnx2YiYy z&>>GA&Vx)t`-N?TC-$4=i3N-OV3X_KTb>zo)wUx%tt*v2@-;q_@b*o$pWvJMY+28+ z?-Wn$jdj9j-+KlCQ;LpK)upj5dIn8mbKGb6Br2vcJ+WWti~X>B((LiXep(Kdeswq|~RCNg0i6Iwh8>jfBHf zKg0Ap=*HfP%98*rsf}G46J~RH4<7H_d-C+@;?lL7o|QcK;oF+2(Gxu3-qLBSe17|z zUwdH6y`4ztkm>B%(|R}Ww+jZnlt`9C#>{i(`1|K z#-JVBB_W@(!~W2vOwqnj|Fi0Zy?|>c+3AV4gz>62 z^tNY2ujexni#D|3DSj@?$}0hFue5a=Cj^whJwKqgRnT{|0WDqqMo(pkHnfF}^F##8 zTiVdw*oyYI7$J0-;aT)0=G{RRA~Z?J8g-Ths(MzQOS%MJk7sQ|=XD9pww#Hl+R(Hs zMnkN*K2vA=z)jnSeJF?heg^j`D|~l-!_ME8Cwhj`Yx{dO&(JmfEmhSH6#Jp)1W(hI zkF(DdF&2nJo*a+lQ-q72S&oiqX)-63AJk+S^~_Ptmd2Su>4ok6=CDijp-fkQ&aj}4 zJgk8#p95O)MZM?u^~$Y#4dcPq`sMtH=p0ghZzm#%2oL<}A1c44j1KLWV+ig?oCrg< zPoKFi=OJ8B>iI0k0qDCGpN;WER?8rfEi1MYQ=*ysw0}|HBM!!RCS6c1kMOcQ5GPTK zb$YhtEOnv2Vhav-<82+xz%!2WYv^>g${sC4N7hPLJ~yuJRld|uCDj2h)&-Gu^-LQd zKXSlFc(bJFs$gvFrcvPCSkPiho7yOY$qbb*8jGm3DvXM;yvq*7Ye83j8$v?DpZpXM zJ6FFQ8<@BpkDh~=O1I!;1BLt*wiTYrTY1Vb=z<%ewH8luBd+*^i#$U;t3wPE4|uln z!c(wOp2{bLVp}R60>0ykj1IseJHE9YKx^zb##0%q&wBEV*stZ8{)X49`K)`Q;|g_+ zIKkM~MP94^mJPT+YCm9A&t?0yKC6CG{`4ofm1pC#HjbC$M83elYR;&m4(**v z&^~_r_~Kvx_2b1K{_y9;161Ikcf0lZj)w?(U`d@$LrJ}aKhbYppV8R1 zK6A{MdOzZXayJzxUA?*$p4o}4Wm|QTAIOwgY|G1XZ1#Cde1x-%t6~!w*W#%dho;*d zQRWqGG*)R_%cqCKB>ygS(*}DH%0;Sc>wr10+E{$$YxGXp1*a-Ej9Q&?Ci*>|!X-Pn z*`6icIM7GSZ%>?9yz}}gweN>Cn2ec8%G3S(_Z%k{y7z}V6`I@(9XTNP{?#Ek5B znhm*n?fT;1RqlTK+h4gKVw?2jnZ9uQBsnaqvSAzE(M!S(k$4y9lf@T0E&iqkyUOK3 zHF|J>4tC<PaOIpOiUJ-NOxSoy`Q)*crQ z8%sLtg?x?^(TegAoz(O_n)h%^oVd*@KFz#z>hO2!*~4pif@_|l4S(KM%zG=Jl*eEp^Fq<;)!fTH2kxi_2hLSv`n^Nfmz-_ zQaoc5$}_ZN%u*)F?{-r6ty|IC@)vpOGelgpHtKi+gLY?o3)=9cF6#U}W{GeT z9-7F}`9=Ok5v66G;!z&1hn`bB!KJ(iUTE_Wn|7TtKs~V&2_5cfUoKmDUO#)vvyfZi z!wl`4drvMNs?K_%nM4M<97MO3gbb7;Y)V|FZO7we%6=slgjD?^TketVsr`pOOJ5`B z=001dD;LI-krI38g72&wza2x%Jb~kXx0B^JvQ=HAg=f$kx(P!U2DXO|>|LB;C4k1H z_<=We5SK4sYK5TM8*B`ZVL8j#!VbiDraItdz{CeeFTZ=KY5fPDX~C#Z)Y)XPOW;CW zx2){$U9lg}v%{ij2dGhlJc1|F=rjqhz+moCxbmb?e4?4eCOp7HS<{ukbSO|L3oE$B z+agcsra{qTlBeimhn8pR0^X9Il2w`ifA-#kU2fyb+HFcC#hgWnR1QvKkNrJ!@16hu z3%&{V*phAK#GFZqLE>HS+O>fK8mJEE98%J#$Uf-CuG(v-N8+F;M?#Sw%8UEoA0L2Z0vEIC@AObx2?}I z-ov&sHkfPrYzcG9epP+g)MpGHNmKQVS9cI=wY;4!ilt1{cXw*4u!^u^KT2WY^mjif z;6>xm%(v9h(37~XXvIb~W>`2}IT|CnBy?1Ue z&S~I^&UZC-o5C7=_`(9)2CV%9o)4!&r;ykap|3%$Ncl$?Y zp{w82mnokmO}@$Yuk+a;PNF?V=4{LRnD1jDF#8x9Vn+OReL#g-$8{ek+hc}pslOTX z(O$ILi~&syqW$Z2iTV&VVoJ{zCcLR1uJ>BruPacl51f1YebH008dHq2o^`Y$5Bj9t zqo1TMg`SkfwoJ<0hX|7k*!u5@XUG?KLRq3*C(603V({UA?(5NRLj3#R{n|^R59~i+ zd;_liCvfZR=#Yu;-)a*6<)v#{#(d9rw_nmu&TKrD30soT6}e;JD4TfM^CC{^j^C^elX9%&t$8ZaRER`w&Yw3nr*Y}Uqw zr9Dl;1P6T>Q)IF&Bwx1Gd4B51T}77bet#ra@=fJxpTjq_l?ou;C01S02Pci|XvB$v zMDp6tl0WPhw(H^~eWoLEOCnB!@3ubcZ|c>Uly9qgKwWMuIPwu9%*NLjxeLY$@vXtovLTphs@|gF;W+KQNiLY z&#m3OtGg-^2H_o~3LtsP3XzK|p;lZ!2y|)Jz2d=i<$+G(3Z@G9dq+b`C97J#^Bd=b z>F+KR4O7yfV^ls(OjzVHO>-*)Gfwlng*ng##9kKxFY75=kZQhhrpHX32!afbbi}g# zhL}Id4ll6gND01{X9Ck1^e3^**VlqV8o0{!sGyGwG|;o~g{U;`vqB?7Wj}tlFu~o% zXP`Ndb*ya*9@4fkckVN6HPn-skIJ)bKeXIA=A_SNFvAKxX8J7Za@3)$qsTo@oN+xu zaIVl7-}BSDq>q^2D&yOnH*5i=TeUWb5UaffV_;Ya?HK?Zku*_eZ?p;?#0XMKAz z@EJar-kFH%VVtNl>)N6c^J~Y+2vZ=~J!7E8bgYzkr0StOWI=0C^bXZqH)2L@9PudDr z@YZk2^H1B&dT@Z9Imff|yxxOlhUCV6X+xcG;x|jkE@=}d?$W;d`m5cBEy#RAyPESl zF9t&NX(TQX{onulUtVI&MX6U`eZ~2pfBNZXiz`>JE#7+b4KF!9sH^q-{_~&zx;U@L z2YAL8Sy+0^)%>wM2AKJS3=g$yCpLOf7j|?|`Q^;4O5+01Ej_Etoo4PBWDGEQBH3O# zrv1=0Iv?NsNE!c#==mSz_d&#%10?p$ghqDp@A8;2z-}OeLQpWsP598@LgSs?{z|M zUT5_5aPf_PBMXmAd~@Z7H^+odTR4~C0i8FeY?CN^N_&mm)oQg^hD!{I7wkrLlv9oY zfRv|>6HX z>7sZ=jl|@l6L;y^MVr#}3p_qT*?qbw%sIZtC-krFhaTh!{z301ypXJx(yEeYu;& zRwewEzMqZcZfdY`LeJifC!qXho@X1Eiz#d(#fMc9Z@&4u>ks1y^8W63ztx>vE>s=t zmQr8T^L4jx-Co?(rc&UYK7G=8$5><8>fhk=&fTk5u6eS|=35afIrNJ`;9X7LuSy># z`^ZH5!ZFiaEa0B0_Kj6*j4peWhuxq#C%#C zP_jca?ZvZ7#N9yi@`DK!&(0s_m1A2@X4ln$S1R#L@DtjKst&a3Qi}%eUihrlr?0|{ zIZa%a@`YecQt>_ZZ|SnCj#^K(&m5WPaw8~ta*nZ$eJn<`O{OsG{$w!WML8N^Hm4Ft z3r>YWxMv!z2=X&cIO&)4iv@nMK-&VeLu@$lBAZTd!A*_ac@1W-UAw7QjeP1mN4#sZ zZp_*odn$GC?%lh(TYT3`V;C^s(7QTs-?{5Mx-_6H*<|A?o>x43=8Oi@N4CQ1QJ?L% zSdzzkLYLq1`D`Wm1?|UT0fvA)JNLa};-=nzeU#Vt=oz=Eol>bIylUs9b|&R{-&M;H zsfSq?c{Z3ksHD96%S9tTq|D3YmwLvX-p@Y!!aF~+0o5i6UcU0Li8gmz69XP}wG6Uv zX_EW#7ni(4EST&=!a!{&3H#6{@s3a?vD`6Vl_=xagz4fMZOqhUcNLFc=)YLtr(gl< z9qkI6y74L>em~CyK6Q@v?vS3xjY;0#N(A0n?rf_~W1>y_^qkGGCkoT9(ay7UnY3H& zn#V5U7j1RSn`qN_lDgi7B|UT=2%m}XoXb1Cc|MQXaWN?#2T)I=xW>K1;sa z`*Rv|t@x9IQ@AaEuOsgi&y)w7PSI;jHn5_j;B_JA&z{n*vM*~l)~~!{vzHpzj#=|N z?qm}C!3Y0XT-8AP`0-=9;}pwenAmdlm*?wl-@dJ962Ec>#T_dK@jsQs63<(D)|uxN zeJ84n?Vp9u@M)d)1d~1qkf}P_qPa-l&y8h;pXHSfXfdGgfNvM`;yc@)K|`m?elEwk zDLs99UY7wTJmBm9`#gF5Rxxt@)?L5;>)6C(jsE?e95M8H+12Q*Osi3nR-cn9u<4(;PQlf;Ik?Y(6^&)G49E-$TyZT zX(G(W=8psuJM6?~=-SpZ`p|K-uV*7zFWa~7&&IY-UD`6W$7w$vOddUS6XR!Jd0c>< zm``o-ero)@7YSRjT4n5qy}(MIxm)uct*YT7BYOzYca39goj95Dbr+jk)X|K;DZXpX zF9w*jAM{62M|mT`BwsSj&{CIiIewc)gvof^NggDhp68o-Ql_8qY61!&UmXEaEMn%a z^PT`9Y$knY&Wd3?Jm8kIXq|APbC-ccSwyU9IGBGdk*?(jAvYu-KSatVGUa%vIff+M z)*kYm$1J)`V2ZuQM@=?AN23v}U%4>sy`VY7lVFc|5HgHspeqx{f*(ZHl_$wQj5 zADEd2_G|cz{L7fdXGPZJxe=zkxtl)2PRL1|%<8!*CYu6??>IKm*H^M;Fjx63{h2=N z{8{m35JiQa)MY}?DNN+#e8?)9r4M{vhebLLb-M|uRQ5#n`t=)nCCVFqEy@wy9jc$v z#Rj|v=|A*7(3>}J+9qk2)bUv!sddrbtwzO0ey_1!xx#L=JoADt?ay-D$Y->-!XL+p zydhx<-_n-bXO)Os#fiBRvnw!*E=|l)JB4V;cMzLnOc@b+q)Ja=%8>2)(7+^y2x9MM z3nu)Ou&skzv_KtVlCNtsD96X5ME^0_PAP+Z1}5!^v4T5TT-dp<2_Z{-4{IVgcb6CW zHc99h`w*;GYQHw8dhNB>yrIqKUwr9j^#AaO-}ypR+GiCfCg;4`jJRiaXeZg{w%)JH zZtrZW!n48Ng&BJ&VH;whwyg=}Ptwr`+ZW53N*UU6j@*4LpGGAokHDPIom>$1>-Z!`j?(HIv@cqdL8 z$-fN>4P(cqPj%kp+s34EF1i%VqK#$6i7PSFMnw;BS7FwC$s3mdVi)L|7J7%G=t*7z z3YlDPgo*67--OS`e201t?U%MoOeC1Xgx=Y2fI026#00Ai|r+G#9yhSoUwe$V_k~8@F5{n*3l)*DsRoF!?oVQH~broW=_-t zL4VUY-HG+SATM`rzyA8t;_SIIi}&7pM|YEs4ko*BLY^~cPHQurbH3}egufo#j&dQx zeQkL0K!ar8rQLvAF0&G0X*pb~_xof1xFkxqp z+}+{bo^dfH%4g>EFEYyk@{%V%{5HDIB_H%iK8_RdrH*I)1UK_eW0o-p^2}h? zHUXoSXNcMNXOozPk^2t&AuzG?m@gQ;&(_C;*FaAUWE&KF`d43fpz@iPH*izl^n5KZ za#I%DA+Ko@?NrJHofMcVTgJJRH=knPSFstq{L3V4zIMHe9u92>) zdN4>QDha&ZeW^?UK(hiWYv2i5%<9FHUAKTO2BB=u_~TVR(GkGUn97%iU{^EB&0&gY zL&cRp3mm@uz>( zmBQ2q&hw1k6>U(%J3fycLz&Ie_3Jmi5fw`(d3kxp*%TMv4azc0bbO{sPQInPQ`hvK zPzKbmo;$58=>4_HIa$!<{)2~$OV@7s*+T9-S$3Hz+w$}SaozTrbe6N+P6=?WIKkJW zIB{&MJbd;7le(}Grj$aakY~f#EcL-1dDmt{3^Jh-=TcW>TglbiuVBgxt}iMZ^(NXu z%Ts8)LWnpQ1D%OFh`-$~RG6k^UBTwcPrdIj#lw75)>w6WqD_ujq5Z+`v0>Pf6< zK=-3sW_n`(`Vb?0a$xCzkxiHMBu*5c=&%u{;sG15LpnUy zi%m=Da>gXqCF8zPY&zx(4Vef%Y~xx){nS4&mvouxlQ4t+*)O8IjCd{i488@^ucVZZ zGgh;m3d|_WE3_;VvEZ^g@AgJ+sQS>TzkMING&Yo0=1VRn(}%AAi1HX zF4>2s?Wg69xbA4_Z|ge5Oumzt_!~X3oyvlVjQEfC?U0_!r$3^dIe6ej-?gMaKEQ=l zmHQ>Fwg7fIp{3s6K76b;ORGIfk(`@!b+n3;O?^gw$E|qR{WkHHG+;Z-QYSnfkgs{< zLhfE1R{P1F`v)3RI5tZiB_?>j*6mJ-lObQ>i+{$^pgyb-^BJ2A8>42=v!QI=Wq(;l9rfoBA*S%59F{eTVm3Hm`~VbJxub_ z5J+3wsG&=-!9Y(iLtM+g7AAUIPs-w#mTi}P<_eIQmHpsV`z&HXL4{3}pyA_nFkg@& z>*&&9;$$%FY$igHpf@ph(PtZBru}4-b@WuW4SYsSht)IY2R@U|)Ff)Kn}~spR8Q21 zc0Lo0dW0RF@V6Q}QfK=@b6ujdHZ|yJdt#xhXQgb?{8q5?lJw-e60`Ulz2M8Fmxh(b zlRK6dFTT29Ir7(Ef8&j-n2aBC<&N`MeFRvasF1;9BV(@`&Z8z+P9Y;PZHg(^v zM$GL`VT#?z4?pf=ozaBazYBfpfQsMg9mLdQ28zDepz_gHM~UQ13^FE~!nC&)BitQg z6$kGt$9}vq15-L4lnEd38(NG9X7q$EtXWK9DT}PZpXt~HhH(aUB`_ri{}h|(G^Y!g zljD;X=A6%pj7?pNo{5R9d@Lh&Kv90%_SS@7rYGO%&!+2=ORH?!-h5}}#V-+eOE$u0 zg%&o_54DXMyJLA}=w(c|3ni}UJH-M=!Z+LbfnO36+dHfNim%&j`IRzkV0Ze&5nlkN zuCj9CC9TXzO9AmqTF(Ns*K7pnM;!EQFL9RfN33=I$H-^tliHu|ci^DBbsgn5JbfOq zX5z&3;_KwgIEy9MPrkpeyY{CShcw1ww|+lbR(KL(zIZs|TVuLSDD46`#1{HZVM3dX zO`WG?_OIq59^9=&UU)&9v|pjS3;;^igjd3FQiU`5rx=o8$QpD628eb0g-3w856CkJ z8NyI$NR-QzG=9@S*a(GK)2vLvtIP5|j3&OF6g{T%7QS^km(huBFtaTD(ztxDDKnb2x`OybWSZ!ykLPyO;JwYS_5 zvu=ry0#R1$N&U*nu#32uOWSr+m>pl0rMx?7AER8_eXczwSGEIVOc`L%??BJI!FO3t z&bysZtlZL_hU416>b#cQaemX}Ix630UtcV_k`1-*m?oufUO4A^3m;Z~1QsKvsztnHJ_M8Vr8! znAQngR@rEqa(jts-pgwE%wFgM&u5KkydC-sxn19i{8mDL=IY>1Fe$qieAAzC zN2G6zxueT2te=1WrSI0#IdhkXR~518&D(FiUWs)qFJgH{``3{!;n=f)8TgC|acQYN)K$^Q&VDOI6x|5s4u^rTLsslK1 zfDVJlP3CIw-ui4(KAqglIC++sV6}8vMT3rOIM(r#F+ZhCn?_$Y@9Vj;oae#_0~?ml zALG4|D^@;?Wn-|z25&rOz&oqq<<&Ujj5EJIsMZCYoTM_);Z;TVn83Mwa+#GlzHrv|-Gx=ouLt94OrfrzQPg%2E9=E|)<*n5H`L!Z)JUM7(@wU0ukZG5&)*%sd^+CH@{y2`ltP7`t-kz&Go`ouA{ zV-FYizf)VLyD7dC?I-%mcryhl$0@#bmZ`QY=`EVu@G2a^$uxyo)}A;^H{s3O&vjvP z_)4~dZG0YDG{EX$CK`s0MpxX+LouhMTfk8Uo`0g>nx--6Y+(j}SdL|GV+P;tF~de1 zVXEV_GgjDdYTz16TerZJ?b`NZz`%fc*=cRez42Kce;e6$rJnO~vSZ9G?6+5#>%=_% zo~kb`nP}`{7PcHKt1;KJJym*1TzE2e6{hi>DX!w_b^%32HVj}(7XP^5@ChsVJ zNgcsE@4U5m^Uc>g*@h)|{tIj-?C4C5oJ-J{@PDi41HZa@bMZ(^k^DU7a`o-n@~Qg0 zTRz*Sj?TBaq4hX6Eh{7$XIvJ0VKMTIX;EYqO}X@Z9uvq~mlo!FeB1I+0dd(fW(2@? zx&&s{Z{#GUulbH`i5K1_dsTONc}|bGTPGnCldq3H`gC#m^5w-L?RI|h#0h>FxNNmS@#iVLQwmM-cGiyD{k#Vs>f_lJseL8$K)cBjCq_>ExN1_^eJHeMQ+R z+qe4Aywev+&-OXiZ;oRlFw#T#lj$FQ|rrqSP+_T7+8Ar> zqh~48ZecN&Vdwb$viYzD93rd}C-X5Byf%$ZN)ZeApZ4pf?9Vc1?n)o@Mbdbj0zWWT zsZ-YPDVes3O?ambvX0hxgsy4}nI_xS7^{Yby9sY>L`8w@BxABmumOhhFzk}P^OI$C zC?>7Dh9rfv;^N1GD(5MMp~DyDeYIBSlkP3_%hiKe_EpoO5m<>Sel(WJ6WBIpT(!k8 zV6u8M8^zRR3bW^nxr>c-GI3X8s!Vo%Q}*jH^$bVd_+wXJU6K9lmrXE>?JZ-&XFNAj zV_Fwqh3yH4^@^d}i@$yFp`ZC{dgP?LVf03Bl#K3@W^^|^`#sn5{I`F1 zo$H))pZoKAzuuMygn$6AWz}fK*#Yo#q61)Fg_&qH;MiS4%{Ls$_8hTe!!8o8;__IE zn72HKZU067=OhFR@38wH@RV-gFX}yIlNh{QE7{*KgsOTL`VA+alhPV_LB5J z`daczmD?+0h%XV`(KOm6uXTTcmhme{rl5x~$V}KJIL_(MjUTthoZK4B3*DXv+y`jY zWAu~Rl#>cF#k}SE;rm5*#lvxBpUiT&P_Nh{<{7ttrp&Td#S^Z_A57hZqPY%C&t|9Q zrFU0jIp-U|<+#X>P02Qt)aa@yPB6%JTaoxVYozZC^pTMF)eHCk=2^GF6QL|pu>x0C zD18}g&6xBPCc8d6nW(Fw+~+0zXE-Oqo5QrW+?_G6Kj;L*Vva~(4V7A<{609!W;!$) z-8e1W0rE}{K~_oaF3P1;;n_qFwQ5VapV5lDR};rQu7LCmT}JAGsmz zR!$~Hh<~16k2#&`gI6!vSQ+%5!VYJu75pa{{YDC+k$vE&yRXZ-dK>OK-t-^&87fSM z0Z{TS=6fs*6+YSHE^+&@K&0Ubt9eVuqaVcyhe8y`LhD-eDpy~rybiap71%;NVdttJ z7AzS4MQhzKCk>f@6a>1Dq{!s@o<0DOn;MO<1%cv}naC1@Q;Yl3D;K-%XD{whPi{%%v8_Z`@z+nIYB z4-vF~WVfC%S%V&EsewvHv88;oqW{v9427`%3)LGqi9ceoazYwoaG=GLfr0*53lo_) zu)m9uaK+ao0? zi>gNEd(J}pzS(X4arG*{_n6zkUb!91Y#%Fn6{EPMtAknRul6sXzj#Y?xRett0x99> z3IGWg=AR2|@>+tj)uQjdQS0^o@0uU(U+9IE-XKR&A{!@9nSjL#(R7Edijs^MxL4KY zoEfaddvX!fxHgRIIz~2{>VmUjSAM5hcb>c!pVL(Q3v^#sD|ch_;?@I(ZB-gwJpt6- z!l)Hh_`}Q}t476!ey7L%17jzQi)4Ni^+d#Nt`9VtV=$p z{hQh)h(|F4iToMUdIk$noKy-4Cd~Z?lgZx7{LQ`(fhXymLG`@aB|Bim)z8Smz~C18 ze8hR(YYX>MTD*TbWhtFOF?VT<*6^RIe`wjf$?V?&pMT@AOvb`hts1AM6aVWe3%s*9 zRWWjdD~(ZcC;ZN|W~x`$(8K2J=N3oPPt5CD%qm{VE2Z3DO_E7E``@>Eo@6c%`G-(V zH|7k)PDWJCi4nNCdUX})e(u4a0!U2Z$5kCuABF!ubG=cCe7_XzkkX=Y-*8-I>&*f; z?Nr6m?dlzROj%O`2x1^W=?3zRQT%7eVh`!N!c^3z$3ee;1s^0j47b&)5m`;~U>`A= z@x;z~mR56}*mrKq8V_CU6|Ish`tJH;7iykB0Hg1kWq4v-$>ooLC!pxwN#rd?}E$l^{HLCC0+d&AY{->}bam z%)^6L-J34>mrQ3Dg>Iw z&hlz74Y+cMkbb1}+w0p`rtS2{!ru(LA8}^LvpzJjG+0;C8{Q!l5)>8U3#{nld&pHA zz5fJ|a|z^5$bQ6P(!bb6?48W}IJ(pfZwx>7{gbj=AE;zk2IRIZ(sU^-DsEy+ zEKF}pug^VWF(^~W3axvoFD;@tXU@h6v?amj<7^;CUPJtJU z-00Fuc!R5orN^L}(wz&_&#a_sFkKQf&A&98IB6cBTdbK}tiC3VX6JFsx$iomC94$E zImX=uw^O#?WyKPtprAMFCK;Zj@lp8=4+mU>Lr$2US)swaI4f^i4mh>JglFhJ5sHWpE*i+`6L4Mmk zUKy{0HWHbWRT*w%{Nh>FYW|y+qRAJ2XQzoreGmR6%4bG{@9*%c1V0NO$R$mE5tF{K z-@&LrCc3|_U5mlSp_@{_0MmTeNx9CYE4eErEi0nEaOcu~cIAEyg&9kK4#z_v+8_dY(tHU~m|>qp$mm>p}c3n(l^md*$0T?XxV}+AmW2OY2*m!-p9*NBa4Y4CTt~675jk;YE-& zMS-5&&FwCYn}wcubxV$Yv|&1_kx92LH9@UzJYij+>(DHjpI{wyLVLT*RJSq{*mLLOt7F5~;*qla$3 zip5k(3w6x_m?aHF%KCLuJw4J-INT2V?hG7_YyQU8|7-QI*O2%;0AMwQc3e$QsC!<> zL=cvBNn%B9PgzduGP4z$znsvSlFyCJ7FF4f^%usRP5M9H$Ia~ z<-Exe0e2g7N+aO5UT|2;_7uF6)17bI+6W#kL)`%hjLx#8qb`iDnmK#=4eit;a3W&K zuWA}ES!5@)p0K;M1keOJ>)ESaz4!m;_pPe4T1`8kmO3g)HB%9#x445R^Eiy;GN!) z9(=|8C-D@YpDls}rqZpboBY%S-SUzJlY#0LhqmsI=_oPI*opVri^!^#ra3fP@3?T^ z##63UmT~6GDsVJKo~CzLRI1mbueR>uiO`qjnk`SAOre!m>Ue(1m$>`~V%q<#z?!`0 z=$EScb0gAOCI!>8+FGg05qv{tUnW&$L*dVHQ3(#JH#0XpF8*Z_&5WBL#uTLr&Sw{I z`r?f&R1DVn+yfNd|6%L4_5BX7cKB^in#;o2Jb{wKJN9WHTIKm!vffeY=)WU~ULQD@ z;0!5nLpfJhk7%}rS>RGWJ(AbC{=zCC$-&lqxq$mFT;^Z0^Uw653?P=(t09051)de$L3{K!-c^~kw}n?wevPqzJ>=&m$9Z@R7Mi@`rY|V7;fIOD1A9|>wS%N6|lZ`GrpE7&g`007Zh-4gu zJa~Drk@1!5r-L=mOU={6ye2uAHUu}<%A*Js=tT7tvSLrX9#knvemt|k|0zwIrsPcS zJ_a?P?MnZJ++p3aYj)1*-ruHnu|mqhM8-71W8B{|W2#f7sgL{q;dC_uxVN3E+y)K) zmxaMX2zrUQxG>1{aIfCp;;+`mbzEoli(l_)(&Yse?K9ugm<}EakrB=b0RfgG?YS3C zP4*FC4z^Mvon2O~?w27B={i%GD9Gx`;wnFQHhLe^29^`Ml4gVnVP!kPU0M6@w51Is zgtbE=#5S)xB8qdd-$xhM-_Mtk*Pe*vHonZ!TF<$tO!qJ1D;sq*9ijBAkcTPqs2ChQ z3Pl}6CkguJW~78UE&P=zH>i_b*%#cS;%>=a8wjNgxW872K;Ez9bk}W9j!)Aa9)UA= z|4KBiRJ)1eM#$4gDb<`YD3gGT+kHwWNYSIUnwNglczW{KDXhmw1dIcaCqbAny*h)xqdY?-&N`$Z24wW?JG%^ z?jW6{sC|s)o^p;hH8hf6;3(%1 zwbkL+^6!gOXFu6f%lG~M? ztDKD~E%g4CivwRykA*9cgv75lXtudnVc9J6mrE@f4^VC~FlG^e-ky9{Cn=j=z$z(z z%p225Jf9uYmP_M)eb7MWcC}>l`#?12v1>sSuQivUMtA_^#i0p)>wh`y_YaLLGbvJaGgow zqErZK*|d?K#gV*^0#)|;+?&)0N7D9>oGT>%4N%g`u$o-7U4XyQoZ&|VLt-%Z&5p5d6r zs%C+zs_N%qu=Y>Z{i!wCf1cNE&2#AKdKCZgCZl=LCo#x`uxoyN;7fEJXI3(pAEV}1Z(F>a&*N}7Xx4qK za5HEbryX8-vu02){X1X)G+&*TfCv8HrEpRClR2i^PdhyMQJDS_i9lq{gGJZ*bFa3I z0ozr*PL;bBb{!67G#;_#wtN>vyYnI$lQRwtljx?R_7nO{*X{9&V`|nkyI&Z(6l<&O zrLwjBgJYs+;oD;%#9=lzGo9?3V%GLuWOD(p*hUHFalFgbqS0Tw%gFF#N#6m+WDLJ> ztZS)K!A8*SP{CTws>E7Nu8LWQrvZ#*k#AjG8ZTaOt)^Di_^}c!wW6=G_o0m;@(rr6 z^|0q5a=W^Psn;WeHg%}2X9Q?H*D9SLp-Lef)s8HTnz9}(j-H=d_ zq`mnUdjA!YO~@yC)lMaC3R;!QtYhVuxQU5UUE6TB2DLp|tG6`}9{O#NA>S`3xVYtkF-ST!k|D zA)luF+H^PK_sOk3(rz;WIr!++rgUIz%3hIc@8yq}G>HTt>vK0h5^pEXu!b|Q+(TKZ z#bC8>CB`hLVXxK9t)`=HFfvNd=ztQ>Z{_v0#a(e5RP3H=R5=LT&2UbD z8O6Q3QuD5-a7nY(tX-(OSH`Ln?sdLrGZ9DYT#jy=%bh(qWrTYJqn zG9khZ_3xboS8H7dkKTZKPMfAgZ4}Y4tslULKG{T^VuMgy1&I-I)y=!K&8c2eCNNCp4tCo%OU}y?N^^5rZbQw;7c_ zYDqh=G>f)c&f67*`^oozWlw%u5LHTaH`e&;JTs}OO=Q>6@H*0ib9T;5uM}BKmN=O_ zD}VU+LN;mIIW_mSmaX?>cY3v7REo#97Q#?8xKLn<nO!J_v;S>`Y7q#kIkH6XzlH&;B?+YJ{2;W2^D1={f=vkNabm;_vwUGtk~t4 zVJV;;gB<0n!A`0)!l(q-*p#5mo)6!0OEYeVbd?a*eDlPbYxrj+yt-2rdk?rY8;8DZ z>-BFRk39DMq9{H)1Kwm?ENe4d6R4t}ddnvg7C*#djyrRcf$Er>v8xW1q2{{4TbOZZ zE5`62R+R0mWH%Fn3@DbM;QvC;I;V0VvrG*8ldDn2iv0HjshF=$DzVA9PnGwOY1lZr zzqs-?O8K>ui9(jMw5E~5j{WRyRvtU(K{O19%`GkDTd1*(~=7jC@CQ3ap2OO-0d-tJ}gk z&sh^NqQ#fwtZq#~tcFG72Xvs2C&R2|!EDlcx+m^`B9zyr*tI)`ZjyIny*24Jm6ne(a zm88iEj-Im2yh{@35ZQhyy3L$futx2g#BzKi(H|i&-{?At={cr(ebjot&}^xVLUiMB zH!2ew_pWZDimQ~XT7{$xiMW{N-t+x{?OyIC{vw3iX+9%C0|ws-s_BEwMU#GI`{CS^ zEKD;M11(>syxUSUj~9%d9T?0#i(XyQ<_6bIPf$pyK`yaevj<`JHjsrVE(S+*cTB*A zN95LpCgLD!x$yfz^D%3>pnNBcZS+F3w$@U4Q0P%z$ zW{gs}`nB}zos1IDlCiLAxL>sEwQ&8ou!g@)y3PeTM;%fZ#B^MX9LCiMaJp9EHC1NO zQswQjB^BMD1U9D>dUlsIqmt-hCIKJ)s+WJ>68NhU!oI!Uoh!;|dUmH(^0oHo`t^{& zY^69Q9ji9IipeZy3Q@x2H)q8exow@)ow=8$aQavrva1#x-{VMCZD?*aFzKGxnGOxK zlro4Ci_EoN5v4kuA2-QROc@Fu`zZ9`{anG)`-gt+-Rj!kEZ=?MV9#&VmWc#?`NB?4 zQE>3y25~K7S!8|n*L%gS_JRb+M#8_u!KA7h_)hkni8}~g-r;F9Fa^()m;cx;Lc1{z z?FLe;f1&z-{>eR!ksv2``QzL;J46&D|EBq04a>jIDXg(3F<^f2Dfn@>D)1Z zm|Q1Vtlba_bqX{qllY;cBaiYL zRw!0W9qbIKU|Hq2MFX<1MEIxRUKtA3I?Nvl%C4c^5C78EY?Wivsdl>DN?jgmx{Tq1 zjugM9=uDHQc4m+rp5KeAm8y!w-$mlDTUCW&@Zr0>TS^^!G|AT9f1X@*m80XbI&OYM z`7rB(&!h8y=8;bLmVn!~t1*4lf#JEM4+4{W_3!gn5X2#^DZo+g_t*yrIxWd5g2l99QRi(j}# zJabo4qD40P7H6E^azS(4^))xN$|tIx=SsezZ6(`l#1A2Io0cml@5f8 z_~jOy2%Gc*;i@+i7;0tPPm9r$?v~_$XmXBS1*yaGsg9n9oMu8{Hb#Fa2F5gnXGDZ1 zigyU?&5xvZ6R=9Cp ziajUHoV3FJTcLA8&g<7CHtbCQYRrD9ib)$L{+`K_e8e*PIq+?{5RRU4 zz~?)_G|8zOysE;-(=*OT$TqOxf6oJ|OCX}utSYeQ(9hJYV|C^P&d;aIgw9xweZY7#;T&~UwURgg<{yG+O)2FIDY=8sZW7q z>MwO5fMRb^@Vd+o^|#^kN)3+|hvLJGPoz%%@IA+m4}no=y8FF)ndHV+ZME~9XU;Fj za2NA~8@02|+H4@d*kP2x5N|Xb;59I>u@>wUYqFS1sOQDXjc(SbcwX_=r#NiSVZOU{ zZ!)y?de0!~@a~qt$MHPeLkCeKnhhT3wifD65df#&*fDv4|GQn&HIeX$#_|Q>RA;^; zVI-tU^8>Nn!t95k4z{rI+Ci{3d0W9~tE-Pho@`JIwvB5rKplii}NInbUMW#}yni*4#2YrxwGf7L=^UvR)k8yJ@|B7*EklzL%REhwx*Y&LP0#+^FNrFpO5qH z42j6{cHh6jcl2BS^K9mgVC)NYgSF6l;#m!v6@ou+6DEA5w`O<5n&0`m8X#>Dte8Gl zFP3JuFuS4Uw3|68-+iE$|_-oa>0%a?{TALL5Yb2rR-FGOM`0&uO&f+}X%-a>LM)b4)>bRZgm`^Tte+nP8^KTTy+hF*ZJL}6QH%*!q)zwRAA*P3!;JS+P3dJB@3PXIMgSbs|g zbRSl1V$hJ1%ArtlRu@y2|BLfiin!ZjlLDiTniGZ z(-QSKjN1?;XLUVgu^E)1NHa=*%U>)mPQ@CQ2I&%>E}QlbOd70<}NVCm-DP_{r*-?>N^`=XG00 z)CBS^?FHJtgh#$=laX{M~$w<0^h>fekEV) zocajKuRdWQGLt&YFa%9aoRTwN0B)&bxjdt{Gcp z$!@S%-38qGo9*`HXuDxqe>(aKk>ch39xz5Fuo+&ICY;T+E)c6TjhG&Enhq_GP&7cN zJ!IH+#dZyM_ZNWhP=rEoad$aPHiNX=7l%HO$y>Q{nEvu%uxoYy@hA0T^O=cAq*Qb~ z+q}W9Z3$VhF2}lo;Dt*&RCF1@ALORVXQI~BOvrPZ%F${zVO%Hf8X$}quXTPlDd>V3 zroYO0`XxDoV{(~#3&>Kf}6xHt; zJ=0DFEQk4><>8M`x(S{CSvb8MUM@{C`spd#FQ^Ca%`i#=-(hb(TVL$dV354aO_;Z4 zo~cqvpT?!1RBdcq@7A!*!;�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�Y)=cFN$-E4 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͜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